📄 sentence.cpp
字号:
temp_number[ 2 ] = 0x00;
temp_number[ 0 ] = temp_string[ 0 ];
temp_number[ 1 ] = temp_string[ 1 ];
int hours = ::_ttoi( temp_number );
temp_number[ 0 ] = temp_string[ 2 ];
temp_number[ 1 ] = temp_string[ 3 ];
int minutes = ::_ttoi( temp_number );
temp_number[ 0 ] = temp_string[ 4 ];
temp_number[ 1 ] = temp_string[ 5 ];
int seconds = ::_ttoi( temp_number );
int year = return_value.GetYear();
int month = return_value.GetMonth();
int day = return_value.GetDay();
return_value = CTime( year, month, day, hours, minutes, seconds );
}
return( return_value );
}
TRANSDUCER_TYPE SENTENCE::TransducerType( int field_number ) const
{
CString field_data;
field_data = Field( field_number );
if ( field_data == TEXT( "A" ) )
{
return( AngularDisplacementTransducer );
}
else if ( field_data == TEXT( "D" ) )
{
return( LinearDisplacementTransducer );
}
else if ( field_data == TEXT( "C" ) )
{
return( TemperatureTransducer );
}
else if ( field_data == TEXT( "F" ) )
{
return( FrequencyTransducer );
}
else if ( field_data == TEXT( "N" ) )
{
return( ForceTransducer );
}
else if ( field_data == TEXT( "P" ) )
{
return( PressureTransducer );
}
else if ( field_data == TEXT( "R" ) )
{
return( FlowRateTransducer );
}
else if ( field_data == TEXT( "T" ) )
{
return( TachometerTransducer );
}
else if ( field_data == TEXT( "H" ) )
{
return( HumidityTransducer );
}
else if ( field_data == TEXT( "V" ) )
{
return( VolumeTransducer );
}
else
{
return( TransducerUnknown );
}
}
FAA_MODE_INDICATOR SENTENCE::FAAMode( int field_number ) const
{
CString field_data;
field_data = Field( field_number );
if ( field_data == TEXT( "A" ) )
{
return( Autonomous );
}
else if ( field_data == TEXT( "D" ) )
{
return( Differential );
}
else if ( field_data == TEXT( "E" ) )
{
return( Estimated );
}
else if ( field_data == TEXT( "M" ) )
{
return( Manual );
}
else if ( field_data == TEXT( "S" ) )
{
return( Simulated );
}
else if ( field_data == TEXT( "N" ) )
{
return( NotValid );
}
else if ( field_data == TEXT( "V" ) )
{
return( Invalid );
}
else
{
return( FAAModeUnknown );
}
}
/*
** Operators
*/
SENTENCE::operator CString() const
{
return( Sentence );
}
const SENTENCE& SENTENCE::operator = ( const SENTENCE& source )
{
Sentence = source.Sentence;
return( *this );
}
const SENTENCE& SENTENCE::operator = ( const CString& source )
{
Sentence = source;
return( *this );
}
const SENTENCE& SENTENCE::operator += ( const CString& source )
{
Sentence += ",";
Sentence += source;
return( *this );
}
const SENTENCE& SENTENCE::operator += ( double value )
{
CString temp_string;
temp_string.Format( TEXT( "%.3f" ), value );
Sentence += TEXT( "," );
Sentence += temp_string;
return( *this );
}
const SENTENCE& SENTENCE::operator += ( COMMUNICATIONS_MODE mode )
{
Sentence += TEXT( "," );
switch( mode )
{
case F3E_G3E_SimplexTelephone:
Sentence += TEXT( "d" );
break;
case F3E_G3E_DuplexTelephone:
Sentence += TEXT( "e" );
break;
case J3E_Telephone:
Sentence += TEXT( "m" );
break;
case H3E_Telephone:
Sentence += TEXT( "o" );
break;
case F1B_J2B_FEC_NBDP_TelexTeleprinter:
Sentence += TEXT( "q" );
break;
case F1B_J2B_ARQ_NBDP_TelexTeleprinter:
Sentence += TEXT( "s" );
break;
case F1B_J2B_ReceiveOnlyTeleprinterDSC:
Sentence += TEXT( "w" );
break;
case A1A_MorseTapeRecorder:
Sentence += TEXT( "x" );
break;
case A1A_MorseKeyHeadset:
Sentence += TEXT( "{" );
break;
case F1C_F2C_F3C_FaxMachine:
Sentence += TEXT( "|" );
break;
}
return( *this );
}
const SENTENCE& SENTENCE::operator += ( TRANSDUCER_TYPE transducer )
{
Sentence += TEXT( "," );
switch( transducer )
{
case TemperatureTransducer:
Sentence += TEXT( "C" );
break;
case AngularDisplacementTransducer:
Sentence += TEXT( "A" );
break;
case LinearDisplacementTransducer:
Sentence += TEXT( "D" );
break;
case FrequencyTransducer:
Sentence += TEXT( "F" );
break;
case ForceTransducer:
Sentence += TEXT( "N" );
break;
case PressureTransducer:
Sentence += TEXT( "P" );
break;
case FlowRateTransducer:
Sentence += TEXT( "R" );
break;
case TachometerTransducer:
Sentence += TEXT( "T" );
break;
case HumidityTransducer:
Sentence += TEXT( "H" );
break;
case VolumeTransducer:
Sentence += TEXT( "V" );
break;
}
return( *this );
}
const SENTENCE& SENTENCE::operator += ( FAA_MODE_INDICATOR faa_mode_indicator )
{
Sentence += TEXT( "," );
switch( faa_mode_indicator )
{
case Autonomous:
Sentence += TEXT( "A" );
break;
case Differential:
Sentence += TEXT( "D" );
break;
case Estimated:
Sentence += TEXT( "E" );
break;
case Manual:
Sentence += TEXT( "M" );
break;
case Simulated:
Sentence += TEXT( "S" );
break;
case NotValid:
Sentence += TEXT( "N" );
break;
case Invalid:
Sentence += TEXT( "V" );
break;
}
return( *this );
}
const SENTENCE& SENTENCE::operator += ( NORTHSOUTH northing )
{
Sentence += TEXT( "," );
if ( northing == North )
{
Sentence += TEXT( "N" );
}
else if ( northing == South )
{
Sentence += TEXT( "S" );
}
return( *this );
}
const SENTENCE& SENTENCE::operator += ( int value )
{
CString temp_string;
temp_string.Format( TEXT( "%d" ), value );
Sentence += TEXT( "," );
Sentence += temp_string;
return( *this );
}
const SENTENCE& SENTENCE::operator += ( EASTWEST easting )
{
Sentence += TEXT( "," );
if ( easting == East )
{
Sentence += TEXT( "E" );
}
else if ( easting == West )
{
Sentence += TEXT( "W" );
}
return( *this );
}
const SENTENCE& SENTENCE::operator += ( NMEA0183_BOOLEAN boolean )
{
Sentence += TEXT( "," );
if ( boolean == True )
{
Sentence += TEXT( "A" );
}
else if ( boolean == False )
{
Sentence += TEXT( "V" );
}
return( *this );
}
const SENTENCE& SENTENCE::operator += ( LATLONG& source )
{
source.Write( *this );
return( *this );
}
const SENTENCE& SENTENCE::operator += ( const CTime time )
{
CString temp_string = time.Format( TEXT( "%H%M%S" ) );
Sentence += TEXT( "," );
Sentence += temp_string;
return( *this );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -