[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3760: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3184)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3762: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3184)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3763: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3184)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3764: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3184)
ASAM-GDI Forum • Thema anzeigen - Flexibilisierung des Handlings von Einheiten

Flexibilisierung des Handlings von Einheiten

Hier werden Anregungen für die LAPI-Version 2.0 gesammelt und diskutiert.

Flexibilisierung des Handlings von Einheiten

Beitragvon MMerwald » Donnerstag 22. April 2010, 13:07

Derzeit wird laut LAPI-Spec das Problem der Umrechnung von beliebigen "User-Einheiten" in die für die LAPI vorgesehenen SI-Einheiten in die Anwendungssoftware verlagert.
Mein Vorschlag ist an dieser Stelle, dieses Thema in die LAPI einzubringen. Denkbar wäre eine Funktion, die aufgrund von Schemainformationen beliebige Einheiten in SI-Einheiten umrechnet.

Unter ist ein Konzeptvorschlag abgelegt.

Mit der Bitte um Kritik!
MMerwald
 
Beiträge: 37
Registriert: Dienstag 21. Juli 2009, 11:19

Re: Flexibilisierung des Handlings von Einheiten

Beitragvon DrRobertPatzke » Donnerstag 22. April 2010, 19:10

Ich muss gestehen, dass ich das Polynom und dessen Anwendung noch nicht verstanden habe.
Da muss ich nochmal in Ruhe drüber nachdenken, ich klammer das im folgenden einfach mal aus.

Die Elementdefinition in Units.xsd ist nicht korrekt.
Die Tags müssen sich öffnen und schließen (wie Klammern):
z.B.:
<xs:complexType name="Units">
<xs:attribute name="Factor" type="xs:string"/>
.....
etc.

Wenn wir den Einheitenbezeichner (rpm) als Elementnamen verwenden, dann können wir möglicherweise nicht alle Einheitenbezeichner verwenden (Namen sind nur alphanumerisch und ein paar Sonderzeichen).
Das müssen wir also vorab mal prüfen.
Also der Einheitenname "l/h" geht sicher nicht.

Das wesentliche Problem liegt aber darin, dass wir die Möglichkeit der universellen Anwendbarkeit von Auswahllisten verlieren, so, wie wir zur Zeit die Combo-Boxen direkt auf die Enumerationen abbilden.
Es ist also nach diesem Ansatz auf jeden Fall eine Prozedur im Konfigurator erforderlich, in der das Schema ausgewertet und die Einschränkung der in der Messaufgabe verwendbaren Einheiten an der Typenliste aus dem Schema orientiert.

Obwohl ich ein Verfechter des Schema-Einsatzes für alles Mögliche bin, schlage ich deshalb hier ein anderes Vorgehen vor:
In unserem Basis-Schema (Name will ich jetzt noch nicht festlegen) wird nur der Einheitentyp definiert, und zwar wie folgt:

<xs:element name="Unit">
<xs:complexType>
<xs:attribute name="Name" type="xs:string"/>
<xs:attribute name="Factor" type="xs:string"/>
<xs:attribute name="Offset" type="xs:string"/>
<xs:attribute name="Polynomial" type="xs:string"/>
</xs:complexType>
</xs:element>

<xs:element name="UnitList">
<xs:complexType>
<xs:sequence>
<xs:element ref="Unit" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>

Wir pflegen dann eine davon abgeleitete XML-Datei, die nun die Einheiten in Zeilen enthält:

<UnitList>
<unit Name="rpm" Factor="1/60" Offset="0" Polynomial="...."/>
<unit Name="km/h" Factor="5/18" Offset="0" Polynomial="...."/>
.......
</UnitList>

Da entfällt natürlich die automatische Kontrolle des Wertevorrates über das Schema, es muss, wie oben erwähnt, eine Prozedur installiert werden.

Vielleicht finden wir eine Lösung über Enumerationen aus definierte Listen, also z.B. in der Form:

<xs:simpleType name="Units">
<xs:restriction base="4Strings">
<xs:enumeration value="rpm 1/16 0 ...."/>
<xs:enumeration value="km/h 5/18 0 ...."/>
....
</xs:restriction>
</xs:simpleType>

Damit würde dieses Schema wieder regulierend für die Auswahl der Typen wirksam.
Die Prozedur zur Anzeige der Einheit in der ComboBox würde sich auf das Unterdrücken der letzten 3 Strings in der Zeile beschränken.

Ist jetzt drauflosgetippt, ich habe obige Schemas nicht getestet.

Mit freundichen Grüßen,
Robert Patzke
DrRobertPatzke
 
Beiträge: 36
Registriert: Mittwoch 22. Juli 2009, 09:25

Re: Flexibilisierung des Handlings von Einheiten

Beitragvon MMerwald » Montag 26. April 2010, 09:50

MMerwald
 
Beiträge: 37
Registriert: Dienstag 21. Juli 2009, 11:19

Re: Flexibilisierung des Handlings von Einheiten

Beitragvon DrRobertPatzke » Montag 26. April 2010, 10:59

Das geht schon so, habe ich auch nicht grundsätzlich infrage gestellt.
Ich habe da immer noch so eine "akademische" Altlast, indem ich versuche, die Regularien für die Datenbehandlung aus dem XML-Schema abzuleiten und nicht aus Sondervereinbarungen.
Wenn wir also im Schema einen Datentyp über Enumeration vordefinieren, dann kann die Anwendung nur einen Wert aus dieser Liste benutzen. Das hätte mit LAPI gar nichts zu tun.
Die (gut verwendbare) import-Funktion für die XML-Datei ist aber eine LAPI-Festlegung und muss entsprechend "gepflegt" werden.
Bislang haben wir immer gute Kompromisse gefunden.
Wobei mir hier gerade einfällt, dass ich das für LAPI 1.1 völlig vergessen habe, diese import-Funktion gehört auch dazu.
Das beschreibe ich dann gleich systematisch und wir können mit den Einheiten Bezug darauf nehmen.

Mit freundlichen Grüßen,
Robert Patzke
DrRobertPatzke
 
Beiträge: 36
Registriert: Mittwoch 22. Juli 2009, 09:25


Zurück zu Version 2.0

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron