GSFC SEDS Schema

22
GSFC SEDS Schema Overview & Major Differences Kevin Rice NASA/GSFC CCSDS Fall 2013

description

GSFC SEDS Schema. Overview & Major Differences Kevin Rice NASA/GSFC CCSDS Fall 2013. Agenda. What We Did What We May Do Major Elemental Differences in Diagrams. What We Did. Some Initial Goals. Try to solve “our” problem first - PowerPoint PPT Presentation

Transcript of GSFC SEDS Schema

Page 1: GSFC SEDS Schema

GSFC SEDS Schema

Overview & Major DifferencesKevin Rice

NASA/GSFC CCSDS Fall 2013

Page 2: GSFC SEDS Schema

Agenda

• What We Did• What We May Do• Major Elemental Differences in Diagrams

Page 3: GSFC SEDS Schema

What We Did

Page 4: GSFC SEDS Schema

Some Initial Goals

• Try to solve “our” problem first– Definitely interested in data types and packet descriptions

that are found in C FSW header files– Could be interested in other SOIS aspects

• Gain increased understanding of SOIS concepts by being “hands on”

• Replace Sam Price’s XSD with SOIS or SOIS-like XSD• Experiment

– Multiple schemas? • Improve emerging standard

– Hopefully

Page 5: GSFC SEDS Schema

One GSFC Problem Space

• FSW already exists– C and C-header (“.h”) files

• But annotated – Holds “metadata” not storable in C directly

• units, calibrator, limit, apid, etc…

– Sam Price “invention” as C has no annotation itself• In comments as “@keyword value” largely

– Parsable, Sam has tool• Desire:

– Build independent metadata, feed development or test tool chains• History

– Replace “in house” XML solution, move towards SOIS

Page 6: GSFC SEDS Schema

Concept

Annotated .C or .H

Files

XML Metadata

Tool ChainMetadata

Directions of Definite Interest:RedBlueGreenBlueRed, BlueGreen

Docs

Page 7: GSFC SEDS Schema

Example of Annotation/*! * @ingroup MESSAGES * @brief An example message for Power point. * @apid 135 */typedef struct Basic_M{ /*! * @is_packet_header */

CCSDS_Telemetry_Header packet_header; //CCSDS Packet Header/*! * @brief Temp of the baseplate the ram is attached to. * @polynomial [1566.7676,-18.85822,-.17372, 0.00229, 0.00001] * @units fahrenheit * @red_limit [-Inf,-20), (120,Inf] * @yellow_limit [-20,-15), (115,120] */int32_t cpu_temp;

/*! * @brief Receiver Position * @coordinate_frame ECEF * @unit meter */ double position[3];};

Page 8: GSFC SEDS Schema

Initial Efforts

• Pre-existing XML solution• XTCE– Found it difficult to readily understand and apply

• SciSys Schema– Found it difficult to readily understand and apply

Created new schema for just data typesAttempted to “evolve” over time towards SOIS

solution, adding functionality, some experimentation

Page 9: GSFC SEDS Schema

Some New Goals

• Narrow syntax– XTCE is very general– Closer to C data types plus annotation

• Go towards typical programming language terms– Parameter Variable– ParameterType DataType

• Copy XTCE concepts but fix items if there are known issues

• Simplify if possible• Flatten if possible

Page 10: GSFC SEDS Schema

Results• Experimentation

– 8 major versions! -- numerous minor versions

– Ex. Tried a three schema split• But, in the end (for now):

– Consists of the overall structure of SciSys schema– But is hand created, has its own schema types– Is flatter and has a different “ref” mechanism– New data types– And a myriad of other “efficiencies”, “improvements”

• All SciSys Examples Converted over using Software Tool– NPAL, FOG, Hydra Star Tracker, Dot. Example, etc…

• GSFC GPS metadata converted to it (but this is just the data types)• Lives in NASA GITHUB Account• Self Evaluation

– A derivative work that needs further refinement and thinking– We need to understand SOIS concepts more deeply

Page 11: GSFC SEDS Schema

What We May Do

Page 12: GSFC SEDS Schema

Some Ideas

• Further clean up of schema– A number of areas need further refinement

• Possibly experiment again w/multiple schema solutions

• Expand GPS metadata into it– Generate GPS .h/.c files, compare to hand created

version• Validate Sci Sys Examples– Possibly round-trip back to sci sys format– Maybe use them directly in a tool

Page 13: GSFC SEDS Schema

Schema Diagrams

Page 14: GSFC SEDS Schema

Removed AncillaryData and AliasSet, capped short description at 128.

Page 15: GSFC SEDS Schema

Import other packages in another SEDS instance

Version, schema version, authorship log

Basically the same as SciSys

Name change. Flatter XML, but hierarchical references:NPAL.DAS::BatV1

Name change

Page 16: GSFC SEDS Schema

More C-like

Place to say a “struct” is a packet.Give APIDs

Very similar to SciSys. Parameter is now Variable, uses the term “prototype” instead of Command.Probably change…

Also very similar to SciSys. DataType, Variable as above

Page 17: GSFC SEDS Schema

Just a list mainly…

May remove or re-think…

Abstract data type

“Packed” or masksMore…

Page 18: GSFC SEDS Schema

But only one more…

Bitfields and unions are also “struct-like” in syntax

Page 19: GSFC SEDS Schema

Most of the other data types are similar.

But wait!? Where are units, cal, etc…?

Page 20: GSFC SEDS Schema

Variables refer to DataTypes. But attributes are child elements aligned with type. Hence an IntegerVariable should have an IntegerDataType, and its various attributes should be aligned with it (e.g. initialValue is an xs:integer). Experimental…

But wait!? The units, cal, etc…again!?

Page 21: GSFC SEDS Schema

XTCE keeps the bulk of this at the type. But typical .H definition re-uses “UINT32” and although the annotation changed – new units, new cal or limit, etc… Experimental!

They are in the variable area…

Page 22: GSFC SEDS Schema

Suggest Now Using XMLSpy for Viewing Additional Changes If

there is Time and Interest…