@@ -435,6 +435,31 @@ test('decodes Label H1 Preamble POS variant 1 with offset', () => {
435435 expect ( decodeResult . remaining . text ) . toBe ( ',30628,320' ) ;
436436} ) ;
437437
438+ test ( 'decodes Label H1 Preamble POS variant 9' , ( ) => {
439+ const decoder = new MessageDecoder ( ) ;
440+ const decoderPlugin = new Label_H1_POS ( decoder ) ;
441+
442+ // https://app.airframes.io/messages/3110992692
443+ const text = 'POSN39164W077259,FORKL,231828,51,THRET,231917,TOOPR,P16,1726,167,/TS231828,2807244841' ;
444+ const decodeResult = decoderPlugin . decode ( { text : text } ) ;
445+ console . log ( JSON . stringify ( decodeResult , null , 2 ) ) ;
446+
447+ expect ( decodeResult . decoded ) . toBe ( true ) ;
448+ expect ( decodeResult . decoder . decodeLevel ) . toBe ( 'partial' ) ;
449+ expect ( decodeResult . decoder . name ) . toBe ( 'label-h1-pos' ) ;
450+ expect ( decodeResult . formatted . description ) . toBe ( 'Position Report' ) ;
451+ expect ( decodeResult . formatted . items . length ) . toBe ( 4 ) ;
452+ expect ( decodeResult . formatted . items [ 0 ] . label ) . toBe ( 'Aircraft Position' ) ;
453+ expect ( decodeResult . formatted . items [ 0 ] . value ) . toBe ( '39.164 N, 77.259 W' ) ;
454+ expect ( decodeResult . formatted . items [ 1 ] . label ) . toBe ( 'Aircraft Route' ) ;
455+ expect ( decodeResult . formatted . items [ 1 ] . value ) . toBe ( 'FORKL@2024-07-28T23:18:28Z > THRET@2024-07-28T23:19:17Z > TOOPR' ) ;
456+ expect ( decodeResult . formatted . items [ 2 ] . label ) . toBe ( 'Outside Air Temperature (C)' ) ;
457+ expect ( decodeResult . formatted . items [ 2 ] . value ) . toBe ( '16' ) ;
458+ expect ( decodeResult . formatted . items [ 3 ] . label ) . toBe ( 'Message Checksum' ) ;
459+ expect ( decodeResult . formatted . items [ 3 ] . value ) . toBe ( '0x4841' ) ;
460+ expect ( decodeResult . remaining . text ) . toBe ( ',51,1726,167,/TS231828' ) ;
461+ } ) ;
462+
438463test ( 'decodes Label H1 Preamble /.POS variant 2' , ( ) => {
439464 const decoder = new MessageDecoder ( ) ;
440465 const decoderPlugin = new Label_H1_POS ( decoder ) ;
0 commit comments