240 likes | 355 Views
Level 0b Design Review. Gregory J. Paxton SOFIE Operations Manager GATS, Inc. Outline. Program Requirements. Read in telemetry data SOFIE Instrument data Spacecraft attitude Process science data by event Convert internal relative timers to absolute time based on first event time
E N D
Level 0b Design Review Gregory J. Paxton SOFIE Operations Manager GATS, Inc.
Program Requirements • Read in telemetry data • SOFIE Instrument data • Spacecraft attitude • Process science data by event • Convert internal relative timers to absolute time based on first event time • Report data quality errors • Create ancillary event header data • Begin/End Event • Begin/End Occ (Occultation) • Begin/End Cal (Calibration) • Event Number • Event Type • Event Table Number • Orbit Number
Program Requirements • Write data to output in accordance with: • Level 0b File Format Document • Level 0b to Level 1 Interface Control Document
Design Overview Level0bMain CVTEntry GATSIngest Level0bListener CVTEntry Level0bOutput Event? CVTEntry Yes No CVTEntry Event Level0bASCIIOutput Level0bDBOutput
Main Module • Entry point into the program • Creates and initializes telemetry processing objects • GATSIngest • Reads the input telemetry • Stores each telemetry packet’s parameters and values into a CVT (Current Value Table) Entry • Alerts any CVTListeners of known packet types • Level0bListener • Cleans up objects at program termination
Listener Module • Inherited from the CVTListener class of the GATSIngest library • CVT -> Current Value Table or a list of the current parameter values available from the current packet • Serves as an interface between the Level 0b program and the GATSIngest library • Creates and initializes the Level0bOutput object • Receives a CVTEntry from the GATSIngest library • Passes the CVTEntry to Level0bOutput for processing
Output Module • Primarily used to direct output • Creates, initializes, and passes a CVTEntry to any number of output formatting objects specified in configuration • Level0bASCIIOutput • Level0bDBOutput • Creates and initializes an event object if event mode is specified in configuration • Adds each incoming CVTEntry to the event object • Calls processEvent() method when all CVTEntries for an event are added • Passes the event object to output formatting object(s) specified in configuration
Event Overview Occ Begin Occ End Dither Balance Cal Begin Cal End
Data Collection Housekeeping System Diagnostic OrbitNumber EventCommand EventTag Event Overview APID? CVTEntry Event OrbitNumberTable CommandHistoryTable EventTable
Event Module • Main purpose is to store all entries for an event in one place to make the processing algorithm considerably less complex • Stores each CVTEntry in APID-specific vectors • Simplifies processing all entries of one type • Design leans more towards output to database tables • Distinction between database tables are by type • Creates and initializes processing “helper” objects • OrbitNumberTable • CommandHistoryTable • EventTable
Event Module • Performs time processing on all data collection samples • Finds initial spacecraft, SOFIE, and first detector timestamps • Creates an initial, absolute event time from which all other times are relative • Uses the initial, absolute event time, current packet spacecraft timestamp, current packet SOFIE timestamp, and current sample timestamp to determine the absolute time of the current sample • Detects data gaps • Uses the packet header’s SSC (Source Sequence Count) to locate gaps • Does not take into account SSC rollover • Rollover stats by type • DC – 1½ days (Forty-Five 115 second events) • HK – 2¾ days
Command History Table Module • Finds the event command that started the current event • The event command contains: • Event start time • Used to find Orbit number • Used as a time base for the event table • Event table number • Used to find the event table associated with the current event
Command History Table Module set sofie sunset_event with eventNo 1, eventTime 814913580, table 2 set sofie sunset_event with eventNo 2, eventTime 814913820, table 1 set sofie sunset_event with eventNo 3, eventTime 814914240, table 5 set sofie sunset_event with eventNo 4, eventTime 814914540, table 4 set sofie sunset_event with eventNo 5, eventTime 814916640, table 6 set sofie sunset_event with eventNo 6, eventTime 814916880, table 1 set sofie sunset_event with eventNo 7, eventTime 814918688, table 1 set sofie sunset_event with eventNo 8, eventTime 814919100, table 2 set sofie sunset_event with eventNo 9, eventTime 814919340, table 6
Orbit Number Table Module • Uses the event start time from the command history table to find the orbit number associated with the current event • Orbit number is one of the event identifiers
Orbit Number Table Module # Orbit Number File # # Orbit# Time (GPS) # ------ ---------- 1 814913000 2 814918400 3 814923800 4 814929200 5 814934600 6 814940000 7 814945400 8 814950800 9 814956200 10 814961600 11 814967000 12 814972400 13 814977800 14 814983200 15 814988600 16 814994000 17 814999400 18 815004800 19 815010200 20 815015600
Event Table Module • Uses the event table number from the command history table to find the event table associated with the current event • Uses the event start time from the command history table as a time base for the event table • All times in an event table are relative to the beginning of the event • Each event table contains at least one of the following event tags • Event begin • Cal begin/end • Occ begin/end • Balance
Event Table Module # Event Tags: # # Time Type Param1 Param2 Param3 Param4 # ---- ---- ------ ------ ------ ------ # TAG 4 Event Begin # TAG 7 Occ Begin # TAG 58 Occ End # TAG 59 Balance 1 # TAG 59 Balance 2 # TAG 59 Balance 3 # TAG 59 Balance 4 # TAG 59 Balance 5 # TAG 59 Balance 6 # TAG 59 Balance 7 # TAG 59 Balance 8 # TAG 60 Balance 9 # TAG 60 Balance 10 # TAG 60 Balance 11 # TAG 60 Balance 12 # TAG 60 Balance 13 # TAG 60 Balance 14 # TAG 60 Balance 15 # TAG 60 Balance 16 # TAG 61 Cal Begin # TAG 124 Cal End
ASCII Output Module • Formats CVTEntry data for output to an ASCII file • Event • Receives an event object from Level0bOutput • Formats and outputs the event header • Formats and outputs each event CVTEntry in type priority and time order • Event Tag • Data Collection • Housekeeping • Non-Event • Receives a CVTEntry from the Level0bOutput • Formats and outputs the CVTEntry
DB Output Module • Formats CVTEntry data for output to a database • Event • Receives an event object from Level0bOutput • Formats and writes each event CVTEntry to its appropriate table • Event Header data to the event ancillary table • Event Tag data to the event tag table • Data Collection data to the data collection table • Housekeeping data to the housekeeping table • System data to the system table • Diagnostic data to the diagnostic table • Spacecraft attitude information to the spacecraft table • Non-Event • Same as event except for event header and event tag data
Documentation • Level 0b File Format Document • Version 1.0 • Level 0b Database Format Document • Currently called Level 0b to Level 1 Interface Control Document • Doxygen Output • SOFIE POC User’s Guide
Testing • SOFIE Calibration • AIM Integration & Testing • SOFIE Data Processing Center End to End Testing