📄 expid.cpp
字号:
#include "nmea0183.h"
#pragma hdrstop
/*
** Author: Samuel R. Blackburn
** Internet: sam_blackburn@pobox.com
**
** You can use it any way you like as long as you don't try to sell it.
**
** Copyright, 1996, Samuel R. Blackburn
**
** $Workfile: expid.cpp $
** $Revision: 4 $
** $Modtime: 10/10/98 2:59p $
*/
CString expand_talker_id( const CString &identifier )
{
CString expanded_identifier;
char first_character = 0x00;
char second_character = 0x00;
first_character = identifier[ 0 ];
second_character = identifier[ 1 ];
/*
** Set up our default return value
*/
expanded_identifier = "Unknown - ";
expanded_identifier += identifier;
switch( first_character )
{
case 'A': // AG, AP
switch( second_character )
{
case 'G': // AG
expanded_identifier = "Autopilot - General";
break;
case 'P': // AP
expanded_identifier = "Autopilot - Magnetic";
break;
}
break;
case 'C': // CD, CS, CT, CV, CX and CC,CM
switch( second_character )
{
case 'C': // CC
expanded_identifier = "Commputer - Programmed Calculator (outdated)";
break;
case 'D': // CD
expanded_identifier = "Communications - Digital Selective Calling (DSC)";
break;
case 'M': // CM
expanded_identifier = "Computer - Memory Data (outdated)";
break;
case 'S': // CS
expanded_identifier = "Communications - Satellite";
break;
case 'T': // CT
expanded_identifier = "Communications - Radio-Telephone (MF/HF)";
break;
case 'V': // CV
expanded_identifier = "Communications - Radio-Telephone (VHF)";
break;
case 'X': // CX
expanded_identifier = "Communications - Scanning Receiver";
break;
}
break;
case 'D': // DE, DF
switch( second_character )
{
case 'E': // DE
expanded_identifier = "DECCA Navigation";
break;
case 'F': // DF
expanded_identifier = "Direction Finder";
break;
}
break;
case 'E': // EC, EP, ER
switch( second_character )
{
case 'C': // EC
expanded_identifier = "Electronic Chart Display & Information System (ECDIS)";
break;
case 'P': // EP
expanded_identifier = "Emergency Position Indicating Beacon (EPIRB)";
break;
case 'R': // ER
expanded_identifier = "Engine Room Monitoring Systems";
break;
}
break;
case 'G': // GP
switch( second_character )
{
case 'P': // GP
expanded_identifier = "Global Positioning System (GPS)";
break;
}
break;
case 'H': // HC, HE, HN
switch( second_character )
{
case 'C': // HC
expanded_identifier = "Heading - Magnetic Compass";
break;
case 'E': // HE
expanded_identifier = "Heading - North Seeking Gyro";
break;
case 'N': // HN
expanded_identifier = "Heading - Non North Seeking Gyro";
break;
}
break;
case 'I': // II, IN
switch( second_character )
{
case 'I': // II
expanded_identifier = "Integrated Instrumentation";
break;
case 'N': // IN
expanded_identifier = "Integrated Navigation";
break;
}
break;
case 'L': // LA, LC
switch( second_character )
{
case 'A': // LA
expanded_identifier = "Loran A";
break;
case 'C': // LC
expanded_identifier = "Loran C";
break;
}
break;
case 'M': // MP
switch( second_character )
{
case 'P': // MP
expanded_identifier = "Microwave Positioning System (outdated)";
break;
}
break;
case 'O': // OM, OS
switch( second_character )
{
case 'M': // OM
expanded_identifier = "OMEGA Navigation System";
break;
case 'S': // OS
expanded_identifier = "Distress Alarm System (outdated)";
break;
}
break;
case 'P': // P
break;
case 'R': // RA
switch( second_character )
{
case 'A': // RA
expanded_identifier = "RADAR and/or ARPA";
break;
}
break;
case 'S': // SD, SN, SS
switch( second_character )
{
case 'D': // SD
expanded_identifier = "Sounder, Depth";
break;
case 'N': // SN
expanded_identifier = "Electronic Positioning System, other/general";
break;
case 'S': // SS
expanded_identifier = "Sounder, Scanning";
break;
}
break;
case 'T': // TI, TR
switch( second_character )
{
case 'I': // TI
expanded_identifier = "Turn Rate Indicator";
break;
case 'R': // TR
expanded_identifier = "TRANSIT Navigation System";
break;
}
break;
case 'V': // VD, VM, VW
switch( second_character )
{
case 'D': // VD
expanded_identifier = "Velocity Sensor, Doppler, other/general";
break;
case 'M': // VM
expanded_identifier = "Velocity Sensor, Speed Log, Water, Magnetic";
break;
case 'W': // VW
expanded_identifier = "Velocity Sensor, Speed Log, Water, Mechanical";
break;
}
break;
case 'W': // WI
switch( second_character )
{
case 'I': // WI
expanded_identifier = "Weather Instruments";
break;
}
break;
case 'Y': // YC, YD, YF, YL, YP, YR, YT, YV, YX
switch( second_character )
{
case 'C': // YC
expanded_identifier = "Transducer - Temperature (outdated)";
break;
case 'D': // YD
expanded_identifier = "Transducer - Displacement, Angular or Linear (outdated)";
break;
case 'F': // YF
expanded_identifier = "Transducer - Frequency (outdated)";
break;
case 'L': // YL
expanded_identifier = "Transducer - Level (outdated)";
break;
case 'P': // YP
expanded_identifier = "Transducer - Pressure (outdated)";
break;
case 'R': // YR
expanded_identifier = "Transducer - Flow Rate (outdated)";
break;
case 'T': // YT
expanded_identifier = "Transducer - Tachometer (outdated)";
break;
case 'V': // YV
expanded_identifier = "Transducer - Volume (outdated)";
break;
case 'X': // YX
expanded_identifier = "Transducer";
break;
}
break;
case 'Z': // ZA, ZC, ZQ, ZV
switch( second_character )
{
case 'A': // ZA
expanded_identifier = "Timekeeper - Atomic Clock";
break;
case 'C': // ZC
expanded_identifier = "Timekeeper - Chronometer";
break;
case 'Q': // ZQ
expanded_identifier = "Timekeeper - Quartz";
break;
case 'V': // ZV
expanded_identifier = "Timekeeper - Radio Update, WWV or WWVH";
break;
}
break;
}
return( expanded_identifier );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -