ATHOS Benutzertreffen

Preview:

DESCRIPTION

ATHOS Benutzertreffen. Report of the Lab Glashütten, 12.Oktober 2006 HighQSoft GmbH, Karst Schaap karst.schaap@HighQSoft.de www.highqsoft.de / www.highqsoft.com. 12.Oktober 2006 - 1. Themen. Aktueller Stand der Entwicklung Kundenspezifische Projekte Geplante Entwicklungen - PowerPoint PPT Presentation

Citation preview

ATHOS Benutzertreffen

12.Oktober 2006 - 1

Report of the Lab

Glashütten, 12.Oktober 2006

HighQSoft GmbH, Karst Schaapkarst.schaap@HighQSoft.dewww.highqsoft.de / www.highqsoft.com

Themen

12.Oktober 2006 - 2

• Aktueller Stand der Entwicklung

• Kundenspezifische Projekte

• Geplante Entwicklungen

• Zugriff auf Massendaten

Aktueller Stand der Entwicklung

12.Oktober 2006 - 3

• Allgemeine Erweiterungen

• Operating System Support

• ASAM ODS 5.1

• Model Mapping

Aktueller Stand der Entwicklung

12.Oktober 2006 - 4

• Allgemeine Erweiterungen– Extended Query– DT_ENUM– ID und Referenzen als DT_LONGLONG– Korrektur der Basisattribute bei AoExternal

Component– CorbaFileServer

Aktueller Stand der Entwicklung

12.Oktober 2006 - 5

• Operating System Support– Windows 2000 (32-Bit)– Windows XP (32-Bit)– Windows 2003 (32-Bit)– Linux, Suse 10 (32-Bit)– Linux, Suse 10, RedHat (64-Bit)

Aktueller Stand der Entwicklung

12.Oktober 2006 - 6

Windows Linux 32-Bit Linux 64-Bit

AsamCommander Ja Ja Ja

Avalon Ja Ja, nur 32 Id. Ja

Ascoba Ja Ja. Ja

AOP3Server Ja Nein Nein

Mme (Oracle 9.2) Ja Ja Ja

XATF Ja Ja Ja

ATF Ja Ja Ja

AVL3 Ja Ja Ja

Esql Ja Nein Nein

Aktueller Stand der Entwicklung

12.Oktober 2006 - 7

• ASAM ODS 5.1– Verbesserung der Dokumentation.– Verbesserung ATF/XML.– Neue OO-API Methoden.– Neue OO-API Funktionalität.

• ASAM ODS 5.1.1– Mehrere identische ‚Based Relations‘ an ein

Element.

Aktueller Stand der Entwicklung

12.Oktober 2006 - 8

• Neue OO-API Methoden ODS 5.1– Interface AoSession

• createCoSession()• getUser()

– Interface ApplicationElement• getRelationByBaseName()

– Interface BaseRelation• getInverseRelationName()

– Interface BaseAttribute• getEnumerationDefinition()

– Enum SelOpcode• IS_NULL, // Value is NULL• IS_NOT_NULL // Value is not NULL

Aktueller Stand der Entwicklung

12.Oktober 2006 - 9

• Neue OO-API Funktionalität– Interface ApplElemAccess

• getInstances()• getInstancesExt()• updateInstances()

The values of the local column instances are part of the result set when the following criteria all fit:

• Only when the attributes id, generation_parameters, values, flags are requested, as soon as any other attributes are requested the values are not reported.

• The values of the local column must all belong to exactly one instance of AoMeasurement

• The server can be configured to a use not more than a specified amount of memory. As soon as a result set exceeds this limit, an exception will be thrown.

• For the rest no iterator is required.

Aktueller Stand der Entwicklung

12.Oktober 2006 - 10

• Mehrere identische ‚Based Relations‘ an ein Element

UnitUnderTest

UnitUnderTestPart_1 UnitUnderTestPart_2

UUT (parent) UUT (parent)

Parts_1(Children)

Parts_2(Children)

Aktueller Stand der Entwicklung

12.Oktober 2006 - 11

• Geänderte OO-API Methoden ODS 5.1.1– Interface ApplicationElementAlt:

ApplicationRelation getRelationByBaseName( in Name baseRelName) raises (AoException);

Neu:ApplicationRelationSequence getRelationsByBaseName( in Name baseRelName) raises (AoException);

Aktueller Stand der Entwicklung

12.Oktober 2006 - 12

• Model Mapper– Umstellung von TCL auf Java– Konfigurationsfiles mit XML, Prüfung durch XSD– Einbindung Query mit HQLX

Der neue Model Mapper wird nur bei neuen Kunden-projekten eingesetzt, der aktuelle Model Mapper wird weiterhin gewartet und für realisierte Projekte auch erweitert.

Kundenspezifische Projekte

12.Oktober 2006 - 13

• Datalogger• PAK Import / Export• Archivierung externe Dateien• Co-Server für Einheiten-Umrechnung• Beratung und Prototyp Erstellung

Geplante Entwicklungen

12. Oktober 2006 - 14

• ASAM ODS 5.1.1 Sobald ODS 5.1.1 vom TAB verabschiedet ist,

wird der Avalon auf diese Version umgestellt.

• Kundenspezifische Projekte

Zugriff auf Massendaten

12. Oktober 2006 - 15

Verschiedene Möglichkeiten:– Interface ValueMatrix– Interface InstanceElement– Interface InstanceElement mit Auslesen

von ExternalComponent Dateien– Interface ApplElemAccess

Zugriff auf Massendaten

12. Oktober 2006 - 16

ValueMatrix– Aufbau der ValueMatrix von SubMatrix oder

Measurement.– Werte immer im MeasurementQuantity

Datentyp.– Zugriff der Daten über Zeilen (Vector), Spalten

(MeaPoint) und Bereiche.– Einheit ist bei Column zu erfragen.

Zugriff auf Massendaten

12. Oktober 2006 - 17

z.B:Measurement meaObj = ieMea.upcastMeasurement();ValueMatrix vmObj = meaObj.getValueMatrix();if (vmObj != null) { Column cols[] = vmObj.getColumns("*"); for (int i = 0; i < cols.length; i++) { TS_ValueSeq values = vmObj.getValueVector(cols[i], 0, 0); } vmObj.destroy();}

Zugriff auf Massendaten

12. Oktober 2006 - 18

InstanceElement– Navigation von Measurement auf SubMatrix weiter auf

Local Column– Auslesen der Attribute sequence_representation,

values, raw_datatype, generation_parameters, global_flag und flags von AoLocalColumn

– Auslesen des Attributes datatype von AoMeasurementQuantity

– Auswertung der sequence_represenation– Nur Zugriff auf alle Daten einer Local Column– Einheit wird mit geliefert.

Zugriff auf Massendaten

12. Oktober 2006 - 19

Sequence_RepresenationExplicit, Daten liegen explizit vor in korrektem Datentyp.Implicit_Constant, Ein Wert bei ‚values‘, der für alle Werte zu verwenden

ist.Implicit_Linear, Zwei Werte bei ‚values‘, Anfangswert und Offset zur

Berechnung der Werte.Implicit_Saw, Drei Werte bei ‚values‘, Anfangswert und Offset und

Maximum zur Berechnung der Werte.Raw_Linear, Raw_Polynomial und Raw_Linear_Calibrated, Daten liegen

in raw_datatype vor, die generation_parameters werden zur Umrechnung gebraucht.

External_Component, Raw_Linear_External, Raw_Polynomial_External und Raw_Linear_Calibrated_External identisch wie Explicit, Raw_Linear, Raw_Polynomial und Raw_Linear_Calibrated der Daten werden von dem Server aus der externen Datei geladen.

Zugriff auf Massendaten

12. Oktober 2006 - 20

z.B.:InstanceElementIterator ieSubIter = ieMea.getRelatedInstances(arMeaSub, "*");if (ieSubIter != null) { InstanceElement ieSub; do { ieSub = ieSubIter.nextOne(); if (ieSub != null) { InstanceElementIterator ieLccIter = ieSub.getRelatedInstances(arSubLcc, "*"); if (ieLccIter != null) { InstanceElement ieLcc; do { ieLcc = ieLccIter.nextOne(); if (ieLcc != null) { NameValueUnit values = ieLcc.getValueByBaseName("values");

Zugriff auf Massendaten

12. Oktober 2006 - 21

ieLcc.destroy(); } } while (ieLcc != null); ieLccIter.destroy(); } ieSub.destroy(); } } while (ieSub != null); ieSubIter.destroy();}

Zugriff auf Massendaten

12. Oktober 2006 - 22

InstanceElement mit Auslesen von ExternalComponent Dateien

– Wie bei InstanceElement.– Nur für sequence_represenation

External_Component, Raw_Linear_External, Raw_Polynomial_External und Raw_Linear_Calibrated_External

– weitere Navigation auf AoExternalComponent.– Zugriff von Client auf Dateien.– Auswertung der Basisattribute von

AoExternalComponent

Zugriff auf Massendaten

12. Oktober 2006 - 23

ApplElemAccess– Neu in ODS 5.1– Zugriff auf Werte von mehreren Local Columns

in eine Anfrage.– Attribute Auswertung wie bei InstanceElement– Implementierung für getInstances()– Beschränkungen wie oben angegeben– Nur ein Datentyp pro Anfrage

Zugriff auf Massendaten

12. Oktober 2006 - 24

z.B.:// Build query for the request of the valuesQueryStructure qs = new QueryStructure();// Get the Id of the application elementsT_LONGLONG aeSubId = aeSub.getId();T_LONGLONG aeLccId = aeLcc.getId();// Deternime the number of attributesApplicationAttribute aaLccId = aeLcc.getAttributeByBaseName("id");String aaLccIdName = aaLccId.getName();ApplicationAttribute aaLccName = aeLcc.getAttributeByBaseName("name");String aaLccNameName = aaLccName.getName();ApplicationAttribute aaLccValues = aeLcc.getAttributeByBaseName("values");

Zugriff auf Massendaten

12. Oktober 2006 - 25

// Report the attributes of the localcolumnqs.anuSeq = new AIDNameUnitId[2];qs.anuSeq[0] = createAIDNameUnitId(aeLccId, aaLccIdName);qs.anuSeq[1] = createAIDNameUnitId(aeLccId, aaLccValues.getName());// Conditions Name of Localcolumnqs.condSeq = new SelValue[1];qs.condSeq[0] = createSelValue(aeLccId, aaLccNameName, SelOpcode.LIKE);qs.condSeq[0].value.u.stringVal("*");// No operationqs.operSeq = new SelOperator[0];// No order byqs.orderBy = new SelOrder[0];// Related instance submatrixqs.relInst = new ElemId();qs.relInst.aid = aeSubId;qs.relName = arSubLcc.getRelationName();

Zugriff auf Massendaten

12. Oktober 2006 - 26

InstanceElementIterator ieSubIter = ieMea.getRelatedInstances(arMeaSub, "*");if (ieSubIter != null) { InstanceElement ieSub = null; do { ieSub = ieSubIter.nextOne(); if (ieSub != null) { qs.relInst.iid = ieSub.getId(); ElemResultSet res[] = aea.getInstances(qs, 0); ieSub.destroy(); } } while (ieSub != null);

ieSubIter.destroy();}

Vielen Dank für Ihre Aufmerksamkeit

Recommended