@@ -129,6 +129,7 @@ async function parseDataflashLogFile(
129129 // File data
130130 } else if ( messageName === "MSG" ) {
131131 // MSG data
132+ // TODO: Use "VER" message for this data
132133 const text = splitLineData [ 2 ] ?. trim ( )
133134
134135 if ( aircraftType === null && text ) {
@@ -139,43 +140,39 @@ async function parseDataflashLogFile(
139140 aircraftType = "copter"
140141 }
141142 }
142- } else {
143- // Message data
144- const formatMessage = formatMessages [ messageName ]
145- if ( formatMessage ) {
146- if ( ! messages [ messageName ] ) {
147- messages [ messageName ] = [ ]
148- }
143+ }
149144
150- const messageObj : MessageObject = {
151- name : messageName ,
152- }
145+ // Message data
146+ const formatMessage = formatMessages [ messageName ]
147+ if ( formatMessage ) {
148+ if ( ! messages [ messageName ] ) {
149+ messages [ messageName ] = [ ]
150+ }
151+
152+ const messageObj : MessageObject = {
153+ name : messageName ,
154+ }
153155
154- const fields = formatMessage . fields
155- const format = formatMessage . format
156- const fieldsLength = fields . length
157-
158- for (
159- let i = 0 ;
160- i < fieldsLength && i < splitLineData . length - 1 ;
161- i ++
162- ) {
163- const field = fields [ i ]
164- const formatType = format [ i ]
165- const value = splitLineData [ i + 1 ] ?. trim ( )
166-
167- if ( value !== undefined && value !== "" ) {
168- if ( stringTypes . has ( formatType ) ) {
169- messageObj [ field ] = value
170- } else {
171- const numValue = parseFloat ( value )
172- messageObj [ field ] = isNaN ( numValue ) ? 0 : numValue
173- }
156+ const fields = formatMessage . fields
157+ const format = formatMessage . format
158+ const fieldsLength = fields . length
159+
160+ for ( let i = 0 ; i < fieldsLength && i < splitLineData . length - 1 ; i ++ ) {
161+ const field = fields [ i ]
162+ const formatType = format [ i ]
163+ const value = splitLineData [ i + 1 ] ?. trim ( )
164+
165+ if ( value !== undefined && value !== "" ) {
166+ if ( stringTypes . has ( formatType ) ) {
167+ messageObj [ field ] = value
168+ } else {
169+ const numValue = parseFloat ( value )
170+ messageObj [ field ] = isNaN ( numValue ) ? 0 : numValue
174171 }
175172 }
176-
177- ; ( messages [ messageName ] as MessageObject [ ] ) . push ( messageObj )
178173 }
174+
175+ ; ( messages [ messageName ] as MessageObject [ ] ) . push ( messageObj )
179176 }
180177
181178 const now = Date . now ( )
@@ -696,8 +693,12 @@ export async function getMessages(
696693
697694 for ( let j = 0 ; j < len ; j ++ ) {
698695 const point = series [ j ]
696+ // Use UtcTimeUS if available, otherwise fall back to TimeUS
697+ const timeValue =
698+ point . UtcTimeUS !== undefined ? point . UtcTimeUS : point . TimeUS
699+
699700 // making sure all the entries are numbers
700- x [ j ] = typeof point . TimeUS === "number" ? point . TimeUS : 0
701+ x [ j ] = typeof timeValue === "number" ? timeValue : 0
701702 y [ j ] = typeof point [ fieldName ] === "number" ? point [ fieldName ] : 0
702703 }
703704
@@ -712,6 +713,27 @@ export async function getMessages(
712713 return datasets
713714}
714715
716+ export async function getMessageDataForTable (
717+ _event : unknown ,
718+ requestedMessage : string ,
719+ ) : Promise < MessageObject [ ] | { success : false ; error : string } > {
720+ if ( ! logData ) {
721+ console . error ( "getMessageDataForTable: logData is null or undefined." )
722+ return { success : false , error : "Log data not loaded." }
723+ }
724+
725+ if ( ! requestedMessage . trim ( ) ) {
726+ return { success : false , error : "Invalid message type." }
727+ }
728+
729+ const series = logData [ requestedMessage ] as MessageObject [ ]
730+ if ( ! Array . isArray ( series ) || series . length === 0 ) {
731+ return { success : false , error : "No data available for this message type." }
732+ }
733+
734+ return series
735+ }
736+
715737export async function saveParamsToFile (
716738 _event : unknown ,
717739 filePath : string ,
0 commit comments