bool BEC::Parse( const SENTENCE& sentence ) { /* ** BEC - Bearing & Distance to Waypoint - Dead Reckoning ** 12 ** 1 2 3 4 5 6 7 8 9 10 11| 13 ** | | | | | | | | | | | | | ** $--BEC,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x.x,T,x.x,M,x.x,N,c--c*hh<CR><LF> */ /* ** First we check the checksum... */ if ( sentence.IsChecksumBad( 13 ) == True ) { SetErrorMessage( "Invalid Checksum" ); return( false ); } UTCTime = sentence.Field( 1 ); Time = sentence.Time( 1 ); Position.Parse( 2, 3, 4, 5, sentence ); BearingTrue = sentence.Double( 6 ); BearingMagnetic = sentence.Double( 8 ); DistanceNauticalMiles = sentence.Double( 10 ); To = sentence.Field( 12 ); return( true ); }
bool TRF::Parse( const SENTENCE& sentence ) { /* ** TRF - TRANSIT Fix Data ** 13 ** 1 2 3 4 5 6 7 8 9 10 11 12| ** | | | | | | | | | | | | | ** $--TRF,hhmmss.ss,xxxxxx,llll.ll,a,yyyyy.yy,a,x.x,x.x,x.x,x.x,xxx,A*hh<CR><LF> ** ** Field Number: ** 1) UTC Time ** 2) Date, ddmmyy ** 3) Latitude ** 4) N or S ** 5) Longitude ** 6) E or W ** 7) Elevation Angle ** 8) Number of iterations ** 9) Number of Doppler intervals ** 10) Update distance, nautical miles ** 11) Satellite ID ** 12) Data Validity ** 13) Checksum */ /* ** First we check the checksum... */ if ( sentence.IsChecksumBad( 13 ) == True ) { SetErrorMessage( "Invalid Checksum" ); return( false ); } UTCTime = sentence.Field( 1 ); Time = sentence.Time( 1 ); Date = sentence.Field( 2 ); Position.Parse( 3, 4, 5, 6, sentence ); ElevationAngle = sentence.Double( 7 ); NumberOfIterations = sentence.Double( 8 ); NumberOfDopplerIntervals = sentence.Double( 9 ); UpdateDistanceNauticalMiles = sentence.Double( 10 ); SatelliteID = sentence.Integer( 11 ); IsDataValid = sentence.Boolean( 12 ); return( true ); }