📄 nmea_dcn.c
字号:
#include <stdlib.h>#include <string.h>#include "NMEA_Lib.h"#if (NMEA_INCLUDE_DCN == 1)#include "NMEA_DCN.h"BOOL NMEA_ParseDCNSentence(CHAR * sentence, struct NMEAObject_t * NMEAObject, UINT32 * flags){ UINT32 sentence_index = 3; BOOL ret_val = NMEA_FAILURE; if('D' == sentence[0] && 'C' == sentence[1] && 'N' == sentence[2]) { sentenceToCHAR(sentence, &NMEAObject->DCNObject.DeccaChainIdentifier, &sentence_index, NMEA_DCN_DECCACHAINIDENTIFIER, flags); sentenceToCHAR(sentence, &NMEAObject->DCNObject.RedZoneIdentifier, &sentence_index, NMEA_DCN_REDZONEIDENTIFIER, flags); sentenceToPOINT(sentence, &NMEAObject->DCNObject.RedLineOfPosition, &sentence_index, NMEA_DCN_REDLINEOFPOSITION, flags); sentenceToCHAR(sentence, &NMEAObject->DCNObject.RedMasterLineStatus, &sentence_index, NMEA_DCN_REDMASTERLINESTATUS, flags); sentenceToCHAR(sentence, &NMEAObject->DCNObject.GreenZoneIdentifier, &sentence_index, NMEA_DCN_GREENZONEIDENTIFIER, flags); sentenceToPOINT(sentence, &NMEAObject->DCNObject.GreenLineOfPosition, &sentence_index, NMEA_DCN_GREENLINEOFPOSITION, flags); sentenceToCHAR(sentence, &NMEAObject->DCNObject.GreenMasterLineStatus, &sentence_index, NMEA_DCN_GREENMASTERLINESTATUS, flags); sentenceToCHAR(sentence, &NMEAObject->DCNObject.PurpleZoneIdentifier, &sentence_index, NMEA_DCN_PURPLEZONEIDENTIFIER, flags); sentenceToPOINT(sentence, &NMEAObject->DCNObject.PurpleLineOfPosition, &sentence_index, NMEA_DCN_PURPLELINEOFPOSITION, flags); sentenceToCHAR(sentence, &NMEAObject->DCNObject.PurpleMasterLineStatus, &sentence_index, NMEA_DCN_PURPLEMASTERLINESTATUS, flags); sentenceToCHAR(sentence, &NMEAObject->DCNObject.RedLineNavigationUse, &sentence_index, NMEA_DCN_REDLINENAVIGATIONUSE, flags); sentenceToCHAR(sentence, &NMEAObject->DCNObject.GreenLineNavigationUse, &sentence_index, NMEA_DCN_GREENLINENAVIGATIONUSE, flags); sentenceToCHAR(sentence, &NMEAObject->DCNObject.PurpleLineNavigationUse, &sentence_index, NMEA_DCN_PURPLELINENAVIGATIONUSE, flags); sentenceToPOINT(sentence, &NMEAObject->DCNObject.PositionUncertainity, &sentence_index, NMEA_DCN_POSITIONUNCERTAINITY, flags); sentenceToCHAR(sentence, &NMEAObject->DCNObject.NauticalMiles, &sentence_index, NMEA_DCN_NAUTICALMILES, flags); sentenceToCHAR(sentence, &NMEAObject->DCNObject.FixDataBasis, &sentence_index, NMEA_DCN_FIXDATABASIS, flags); } return ret_val;}BOOL NMEA_CreateDCNSentence(CHAR * sentence, struct NMEAObject_t * NMEAObject, UINT32 * flags){ UINT32 sentence_index = 3; BOOL ret_val = NMEA_FAILURE; sentence[0] = 'D'; sentence[1] = 'C'; sentence[2] = 'N'; sentenceFromCHAR(sentence, &NMEAObject->DCNObject.DeccaChainIdentifier, &sentence_index, NMEA_DCN_DECCACHAINIDENTIFIER, flags); sentenceFromCHAR(sentence, &NMEAObject->DCNObject.RedZoneIdentifier, &sentence_index, NMEA_DCN_REDZONEIDENTIFIER, flags); sentenceFromPOINT(sentence, &NMEAObject->DCNObject.RedLineOfPosition, &sentence_index, NMEA_DCN_REDLINEOFPOSITION, flags); sentenceFromCHAR(sentence, &NMEAObject->DCNObject.RedMasterLineStatus, &sentence_index, NMEA_DCN_REDMASTERLINESTATUS, flags); sentenceFromCHAR(sentence, &NMEAObject->DCNObject.GreenZoneIdentifier, &sentence_index, NMEA_DCN_GREENZONEIDENTIFIER, flags); sentenceFromPOINT(sentence, &NMEAObject->DCNObject.GreenLineOfPosition, &sentence_index, NMEA_DCN_GREENLINEOFPOSITION, flags); sentenceFromCHAR(sentence, &NMEAObject->DCNObject.GreenMasterLineStatus, &sentence_index, NMEA_DCN_GREENMASTERLINESTATUS, flags); sentenceFromCHAR(sentence, &NMEAObject->DCNObject.PurpleZoneIdentifier, &sentence_index, NMEA_DCN_PURPLEZONEIDENTIFIER, flags); sentenceFromPOINT(sentence, &NMEAObject->DCNObject.PurpleLineOfPosition, &sentence_index, NMEA_DCN_PURPLELINEOFPOSITION, flags); sentenceFromCHAR(sentence, &NMEAObject->DCNObject.PurpleMasterLineStatus, &sentence_index, NMEA_DCN_PURPLEMASTERLINESTATUS, flags); sentenceFromCHAR(sentence, &NMEAObject->DCNObject.RedLineNavigationUse, &sentence_index, NMEA_DCN_REDLINENAVIGATIONUSE, flags); sentenceFromCHAR(sentence, &NMEAObject->DCNObject.GreenLineNavigationUse, &sentence_index, NMEA_DCN_GREENLINENAVIGATIONUSE, flags); sentenceFromCHAR(sentence, &NMEAObject->DCNObject.PurpleLineNavigationUse, &sentence_index, NMEA_DCN_PURPLELINENAVIGATIONUSE, flags); sentenceFromPOINT(sentence, &NMEAObject->DCNObject.PositionUncertainity, &sentence_index, NMEA_DCN_POSITIONUNCERTAINITY, flags); sentenceFromCHAR(sentence, &NMEAObject->DCNObject.NauticalMiles, &sentence_index, NMEA_DCN_NAUTICALMILES, flags); sentenceFromCHAR(sentence, &NMEAObject->DCNObject.FixDataBasis, &sentence_index, NMEA_DCN_FIXDATABASIS, flags); return ret_val;}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -