From ad53e9977f88576bfb7daf022f21877142aea26f Mon Sep 17 00:00:00 2001 From: jwillmartin Date: Fri, 8 Mar 2024 15:12:43 -0500 Subject: [PATCH] On branch j2735-2024-upgrade Your branch is up to date with 'origin/j2735-2024-upgrade'. Changes to be committed: modified: src/tmx/Asn_J2735/include/asn_j2735_r2024/DSRCmsgID.h modified: src/tmx/Asn_J2735/include/asn_j2735_r2024/NodeOffsetPointXY.h modified: src/tmx/Asn_J2735/src/r2024/BasicSafetyMessage.c modified: src/tmx/TmxApi/tmx/messages/IvpJ2735.c modified: src/tmx/TmxApi/tmx/messages/IvpJ2735.h modified: src/tmx/TmxApi/tmx/messages/SaeJ2735Traits.hpp modified: src/tmx/tmx.doxyfile --- .../include/asn_j2735_r2024/DSRCmsgID.h | 134 ++++++++-------- .../asn_j2735_r2024/NodeOffsetPointXY.h | 19 ++- .../Asn_J2735/src/r2024/BasicSafetyMessage.c | 2 +- src/tmx/TmxApi/tmx/messages/IvpJ2735.c | 145 ++++++++++++++++-- src/tmx/TmxApi/tmx/messages/IvpJ2735.h | 95 ++++++++---- .../TmxApi/tmx/messages/SaeJ2735Traits.hpp | 2 +- src/tmx/tmx.doxyfile | 2 +- 7 files changed, 288 insertions(+), 111 deletions(-) diff --git a/src/tmx/Asn_J2735/include/asn_j2735_r2024/DSRCmsgID.h b/src/tmx/Asn_J2735/include/asn_j2735_r2024/DSRCmsgID.h index f7a882f4a..32a3d8423 100644 --- a/src/tmx/Asn_J2735/include/asn_j2735_r2024/DSRCmsgID.h +++ b/src/tmx/Asn_J2735/include/asn_j2735_r2024/DSRCmsgID.h @@ -22,24 +22,24 @@ extern "C" { typedef long DSRCmsgID_t; /* Implementation */ -#define DSRCmsgID_reservedMessageId_D ((DSRCmsgID_t)0) -#define DSRCmsgID_alaCarteMessage_D ((DSRCmsgID_t)1) -#define DSRCmsgID_basicSafetyMessage_D ((DSRCmsgID_t)2) -#define DSRCmsgID_basicSafetyMessageVerbose_D ((DSRCmsgID_t)3) -#define DSRCmsgID_commonSafetyRequest_D ((DSRCmsgID_t)4) -#define DSRCmsgID_emergencyVehicleAlert_D ((DSRCmsgID_t)5) -#define DSRCmsgID_intersectionCollision_D ((DSRCmsgID_t)6) -#define DSRCmsgID_mapData_D ((DSRCmsgID_t)7) -#define DSRCmsgID_nmeaCorrections_D ((DSRCmsgID_t)8) -#define DSRCmsgID_probeDataManagement_D ((DSRCmsgID_t)9) -#define DSRCmsgID_probeVehicleData_D ((DSRCmsgID_t)10) -#define DSRCmsgID_roadSideAlert_D ((DSRCmsgID_t)11) -#define DSRCmsgID_rtcmCorrections_D ((DSRCmsgID_t)12) -#define DSRCmsgID_signalPhaseAndTimingMessage_D ((DSRCmsgID_t)13) -#define DSRCmsgID_signalRequestMessage_D ((DSRCmsgID_t)14) -#define DSRCmsgID_signalStatusMessage_D ((DSRCmsgID_t)15) -#define DSRCmsgID_travelerInformation_D ((DSRCmsgID_t)16) -#define DSRCmsgID_uperFrame_D ((DSRCmsgID_t)17) +// #define DSRCmsgID_reservedMessageId_D ((DSRCmsgID_t)0) +// #define DSRCmsgID_alaCarteMessage_D ((DSRCmsgID_t)1) +// #define DSRCmsgID_basicSafetyMessage_D ((DSRCmsgID_t)2) +// #define DSRCmsgID_basicSafetyMessageVerbose_D ((DSRCmsgID_t)3) +// #define DSRCmsgID_commonSafetyRequest_D ((DSRCmsgID_t)4) +// #define DSRCmsgID_emergencyVehicleAlert_D ((DSRCmsgID_t)5) +// #define DSRCmsgID_intersectionCollision_D ((DSRCmsgID_t)6) +// #define DSRCmsgID_mapData_D ((DSRCmsgID_t)7) +// #define DSRCmsgID_nmeaCorrections_D ((DSRCmsgID_t)8) +// #define DSRCmsgID_probeDataManagement_D ((DSRCmsgID_t)9) +// #define DSRCmsgID_probeVehicleData_D ((DSRCmsgID_t)10) +// #define DSRCmsgID_roadSideAlert_D ((DSRCmsgID_t)11) +// #define DSRCmsgID_rtcmCorrections_D ((DSRCmsgID_t)12) +// #define DSRCmsgID_signalPhaseAndTimingMessage_D ((DSRCmsgID_t)13) +// #define DSRCmsgID_signalRequestMessage_D ((DSRCmsgID_t)14) +// #define DSRCmsgID_signalStatusMessage_D ((DSRCmsgID_t)15) +// #define DSRCmsgID_travelerInformation_D ((DSRCmsgID_t)16) +// #define DSRCmsgID_uperFrame_D ((DSRCmsgID_t)17) extern asn_per_constraints_t asn_PER_type_DSRCmsgID_constr_1; extern asn_TYPE_descriptor_t asn_DEF_DSRCmsgID; asn_struct_free_f DSRCmsgID_free; @@ -55,55 +55,55 @@ per_type_decoder_f DSRCmsgID_decode_uper; per_type_encoder_f DSRCmsgID_encode_uper; per_type_decoder_f DSRCmsgID_decode_aper; per_type_encoder_f DSRCmsgID_encode_aper; -#define DSRCmsgID_mapData ((DSRCmsgID_t)18) -#define DSRCmsgID_signalPhaseAndTimingMessage ((DSRCmsgID_t)19) -#define DSRCmsgID_basicSafetyMessage ((DSRCmsgID_t)20) -#define DSRCmsgID_commonSafetyRequest ((DSRCmsgID_t)21) -#define DSRCmsgID_emergencyVehicleAlert ((DSRCmsgID_t)22) -#define DSRCmsgID_intersectionCollision ((DSRCmsgID_t)23) -#define DSRCmsgID_nmeaCorrections ((DSRCmsgID_t)24) -#define DSRCmsgID_probeDataManagement ((DSRCmsgID_t)25) -#define DSRCmsgID_probeVehicleData ((DSRCmsgID_t)26) -#define DSRCmsgID_roadSideAlert ((DSRCmsgID_t)27) -#define DSRCmsgID_rtcmCorrections ((DSRCmsgID_t)28) -#define DSRCmsgID_signalRequestMessage ((DSRCmsgID_t)29) -#define DSRCmsgID_signalStatusMessage ((DSRCmsgID_t)30) -#define DSRCmsgID_travelerInformation ((DSRCmsgID_t)31) -#define DSRCmsgID_personalSafetyMessage ((DSRCmsgID_t)32) -#define DSRCmsgID_roadSafetyMessage ((DSRCmsgID_t)33) -#define DSRCmsgID_roadWeatherMessage ((DSRCmsgID_t)34) -#define DSRCmsgID_probeDataConfigMessage ((DSRCmsgID_t)35) -#define DSRCmsgID_probeDataReportMessage ((DSRCmsgID_t)36) -#define DSRCmsgID_tollAdvertisementMessage ((DSRCmsgID_t)37) -#define DSRCmsgID_tollUsageMessage ((DSRCmsgID_t)38) -#define DSRCmsgID_tollUsageAckMessage ((DSRCmsgID_t)39) -#define DSRCmsgID_cooperativeControlMessage ((DSRCmsgID_t)40) -#define DSRCmsgID_sensorDataSharingMessage ((DSRCmsgID_t)41) -#define DSRCmsgID_maneuverSharingAndCoordinatingMessage ((DSRCmsgID_t)42) -#define DSRCmsgID_roadGeometryAndAttributes ((DSRCmsgID_t)43) -#define DSRCmsgID_personalSafetyMessage2 ((DSRCmsgID_t)44) -#define DSRCmsgID_trafficSignalPhaseAndTiming ((DSRCmsgID_t)45) -#define DSRCmsgID_signalControlAndPrioritizationRequest ((DSRCmsgID_t)46) -#define DSRCmsgID_signalControlAndPrioritizationStatus ((DSRCmsgID_t)47) -#define DSRCmsgID_roadUserChargingConfigMessage ((DSRCmsgID_t)48) -#define DSRCmsgID_roadUserChargingReportMessage ((DSRCmsgID_t)49) -#define DSRCmsgID_trafficLightStatusMessage ((DSRCmsgID_t)50) -#define DSRCmsgID_testMessage00 ((DSRCmsgID_t)240) -#define DSRCmsgID_testMessage01 ((DSRCmsgID_t)241) -#define DSRCmsgID_testMessage02 ((DSRCmsgID_t)242) -#define DSRCmsgID_testMessage03 ((DSRCmsgID_t)243) -#define DSRCmsgID_testMessage04 ((DSRCmsgID_t)244) -#define DSRCmsgID_testMessage05 ((DSRCmsgID_t)245) -#define DSRCmsgID_testMessage06 ((DSRCmsgID_t)246) -#define DSRCmsgID_testMessage07 ((DSRCmsgID_t)247) -#define DSRCmsgID_testMessage08 ((DSRCmsgID_t)248) -#define DSRCmsgID_testMessage09 ((DSRCmsgID_t)249) -#define DSRCmsgID_testMessage10 ((DSRCmsgID_t)250) -#define DSRCmsgID_testMessage11 ((DSRCmsgID_t)251) -#define DSRCmsgID_testMessage12 ((DSRCmsgID_t)252) -#define DSRCmsgID_testMessage13 ((DSRCmsgID_t)253) -#define DSRCmsgID_testMessage14 ((DSRCmsgID_t)254) -#define DSRCmsgID_testMessage15 ((DSRCmsgID_t)255) +// #define DSRCmsgID_mapData ((DSRCmsgID_t)18) +// #define DSRCmsgID_signalPhaseAndTimingMessage ((DSRCmsgID_t)19) +// #define DSRCmsgID_basicSafetyMessage ((DSRCmsgID_t)20) +// #define DSRCmsgID_commonSafetyRequest ((DSRCmsgID_t)21) +// #define DSRCmsgID_emergencyVehicleAlert ((DSRCmsgID_t)22) +// #define DSRCmsgID_intersectionCollision ((DSRCmsgID_t)23) +// #define DSRCmsgID_nmeaCorrections ((DSRCmsgID_t)24) +// #define DSRCmsgID_probeDataManagement ((DSRCmsgID_t)25) +// #define DSRCmsgID_probeVehicleData ((DSRCmsgID_t)26) +// #define DSRCmsgID_roadSideAlert ((DSRCmsgID_t)27) +// #define DSRCmsgID_rtcmCorrections ((DSRCmsgID_t)28) +// #define DSRCmsgID_signalRequestMessage ((DSRCmsgID_t)29) +// #define DSRCmsgID_signalStatusMessage ((DSRCmsgID_t)30) +// #define DSRCmsgID_travelerInformation ((DSRCmsgID_t)31) +// #define DSRCmsgID_personalSafetyMessage ((DSRCmsgID_t)32) +// #define DSRCmsgID_roadSafetyMessage ((DSRCmsgID_t)33) +// #define DSRCmsgID_roadWeatherMessage ((DSRCmsgID_t)34) +// #define DSRCmsgID_probeDataConfigMessage ((DSRCmsgID_t)35) +// #define DSRCmsgID_probeDataReportMessage ((DSRCmsgID_t)36) +// #define DSRCmsgID_tollAdvertisementMessage ((DSRCmsgID_t)37) +// #define DSRCmsgID_tollUsageMessage ((DSRCmsgID_t)38) +// #define DSRCmsgID_tollUsageAckMessage ((DSRCmsgID_t)39) +// #define DSRCmsgID_cooperativeControlMessage ((DSRCmsgID_t)40) +// #define DSRCmsgID_sensorDataSharingMessage ((DSRCmsgID_t)41) +// #define DSRCmsgID_maneuverSharingAndCoordinatingMessage ((DSRCmsgID_t)42) +// #define DSRCmsgID_roadGeometryAndAttributes ((DSRCmsgID_t)43) +// #define DSRCmsgID_personalSafetyMessage2 ((DSRCmsgID_t)44) +// #define DSRCmsgID_trafficSignalPhaseAndTiming ((DSRCmsgID_t)45) +// #define DSRCmsgID_signalControlAndPrioritizationRequest ((DSRCmsgID_t)46) +// #define DSRCmsgID_signalControlAndPrioritizationStatus ((DSRCmsgID_t)47) +// #define DSRCmsgID_roadUserChargingConfigMessage ((DSRCmsgID_t)48) +// #define DSRCmsgID_roadUserChargingReportMessage ((DSRCmsgID_t)49) +// #define DSRCmsgID_trafficLightStatusMessage ((DSRCmsgID_t)50) +// #define DSRCmsgID_testMessage00 ((DSRCmsgID_t)240) +// #define DSRCmsgID_testMessage01 ((DSRCmsgID_t)241) +// #define DSRCmsgID_testMessage02 ((DSRCmsgID_t)242) +// #define DSRCmsgID_testMessage03 ((DSRCmsgID_t)243) +// #define DSRCmsgID_testMessage04 ((DSRCmsgID_t)244) +// #define DSRCmsgID_testMessage05 ((DSRCmsgID_t)245) +// #define DSRCmsgID_testMessage06 ((DSRCmsgID_t)246) +// #define DSRCmsgID_testMessage07 ((DSRCmsgID_t)247) +// #define DSRCmsgID_testMessage08 ((DSRCmsgID_t)248) +// #define DSRCmsgID_testMessage09 ((DSRCmsgID_t)249) +// #define DSRCmsgID_testMessage10 ((DSRCmsgID_t)250) +// #define DSRCmsgID_testMessage11 ((DSRCmsgID_t)251) +// #define DSRCmsgID_testMessage12 ((DSRCmsgID_t)252) +// #define DSRCmsgID_testMessage13 ((DSRCmsgID_t)253) +// #define DSRCmsgID_testMessage14 ((DSRCmsgID_t)254) +// #define DSRCmsgID_testMessage15 ((DSRCmsgID_t)255) #ifdef __cplusplus } diff --git a/src/tmx/Asn_J2735/include/asn_j2735_r2024/NodeOffsetPointXY.h b/src/tmx/Asn_J2735/include/asn_j2735_r2024/NodeOffsetPointXY.h index 484fea058..7c79e6a15 100644 --- a/src/tmx/Asn_J2735/include/asn_j2735_r2024/NodeOffsetPointXY.h +++ b/src/tmx/Asn_J2735/include/asn_j2735_r2024/NodeOffsetPointXY.h @@ -19,13 +19,17 @@ #include "Node-XY-28b.h" #include "Node-XY-32b.h" #include "Node-LLmD-64b.h" -#include "RegionalExtension.h" +// #include "RegionalExtension.h" #include "constr_CHOICE.h" +#include "asn_SEQUENCE_OF.h" #ifdef __cplusplus extern "C" { #endif +/* Forward declarations */ +struct Reg_NodeOffsetPointXY; + /* Dependencies */ typedef enum NodeOffsetPointXY_PR { NodeOffsetPointXY_PR_NOTHING, /* No components present */ @@ -50,7 +54,15 @@ typedef struct NodeOffsetPointXY { Node_XY_28b_t node_XY5; Node_XY_32b_t node_XY6; Node_LLmD_64b_t node_LatLon; - Reg_NodeOffsetPointXY_t regional; + // Reg_NodeOffsetPointXY_t regional; + + struct NodeOffsetPointXY__regional { + A_SEQUENCE_OF(struct Reg_NodeOffsetPointXY) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *regional; + } choice; /* Context for parsing across buffer boundaries */ @@ -67,5 +79,8 @@ extern asn_per_constraints_t asn_PER_type_NodeOffsetPointXY_constr_1; } #endif +/* Referred external types */ +#include "RegionalExtension.h" + #endif /* _NodeOffsetPointXY_H_ */ #include "asn_internal.h" diff --git a/src/tmx/Asn_J2735/src/r2024/BasicSafetyMessage.c b/src/tmx/Asn_J2735/src/r2024/BasicSafetyMessage.c index a788c3bbd..891be7e09 100644 --- a/src/tmx/Asn_J2735/src/r2024/BasicSafetyMessage.c +++ b/src/tmx/Asn_J2735/src/r2024/BasicSafetyMessage.c @@ -111,7 +111,7 @@ static asn_TYPE_member_t asn_MBR_partII_3[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_BSMpartIIExtension, + &asn_DEF_CCMpartIIExtension, 0, { #if !defined(ASN_DISABLE_OER_SUPPORT) diff --git a/src/tmx/TmxApi/tmx/messages/IvpJ2735.c b/src/tmx/TmxApi/tmx/messages/IvpJ2735.c index 03001a1e7..17d633022 100644 --- a/src/tmx/TmxApi/tmx/messages/IvpJ2735.c +++ b/src/tmx/TmxApi/tmx/messages/IvpJ2735.c @@ -31,6 +31,43 @@ #include #include #include +#if SAEJ2735_SPEC > 2024 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#endif static asn_TYPE_descriptor_t *getTypeDescriptorFromMsgId(e_DSRCmsgID msgId); static const char *getMessageSubTypeFromMsgId(e_DSRCmsgID msgId); @@ -42,35 +79,39 @@ asn_TYPE_descriptor_t *getTypeDescriptorFromMsgId(e_DSRCmsgID msgId) { // case DSRCmsgID_alaCarteMessage: return &asn_DEF_AlaCarte; case DSRCmsgID_basicSafetyMessage: return &asn_DEF_BasicSafetyMessage; -#if SAEJ2735_SPEC < 63 + #if SAEJ2735_SPEC < 63 case DSRCmsgID_basicSafetyMessageVerbose: return &asn_DEF_BasicSafetyMessageVerbose; -#endif + #endif case DSRCmsgID_commonSafetyRequest: return &asn_DEF_CommonSafetyRequest; case DSRCmsgID_emergencyVehicleAlert: return &asn_DEF_EmergencyVehicleAlert; + #if SAEJ2735_SPEC < 2024 case DSRCmsgID_intersectionCollisionAlert: return &asn_DEF_IntersectionCollision; + #else + case DSRCmsgID_intersectionCollision: return &asn_DEF_IntersectionCollision; + #endif case DSRCmsgID_mapData: return &asn_DEF_MapData; case DSRCmsgID_nmeaCorrections: -#if SAEJ2735_SPEC < 63 + #if SAEJ2735_SPEC < 63 return &asn_DEF_NMEA_Corrections; -#else + #else return &asn_DEF_NMEAcorrections; -#endif + #endif case DSRCmsgID_probeDataManagement: return &asn_DEF_ProbeDataManagement; case DSRCmsgID_probeVehicleData: return &asn_DEF_ProbeVehicleData; case DSRCmsgID_roadSideAlert: return &asn_DEF_RoadSideAlert; case DSRCmsgID_rtcmCorrections: -#if SAEJ2735_SPEC < 63 + #if SAEJ2735_SPEC < 63 return &asn_DEF_RTCM_Corrections; -#else + #else return &asn_DEF_RTCMcorrections; -#endif + #endif case DSRCmsgID_signalPhaseAndTimingMessage: return &asn_DEF_SPAT; case DSRCmsgID_signalRequestMessage: -#if SAEJ2735_SPEC < 63 + #if SAEJ2735_SPEC < 63 return &asn_DEF_SignalRequestMsg; -#else + #else return &asn_DEF_SignalRequestMessage; -#endif + #endif case DSRCmsgID_signalStatusMessage: return &asn_DEF_SignalStatusMessage; case DSRCmsgID_travelerInformation: return &asn_DEF_TravelerInformation; default: break; @@ -85,10 +126,14 @@ const char *getMessageSubTypeFromMsgId(e_DSRCmsgID msgId) { // case DSRCmsgID_alaCarteMessage: return "ACM"; case DSRCmsgID_basicSafetyMessage: return "BSM"; + #if SAEJ2735_SPEC < 2024 case DSRCmsgID_basicSafetyMessageVerbose: return "BSMV"; + case DSRCmsgID_intersectionCollisionAlert: return "IC"; + #else + case DSRCmsgID_intersectionCollision: return "ICA"; + #endif case DSRCmsgID_commonSafetyRequest: return "CSR"; case DSRCmsgID_emergencyVehicleAlert: return "EVA"; - case DSRCmsgID_intersectionCollisionAlert: return "IC"; case DSRCmsgID_mapData: return "MAP"; case DSRCmsgID_nmeaCorrections: return "NMEA"; case DSRCmsgID_probeDataManagement: return "PDM"; @@ -99,6 +144,27 @@ const char *getMessageSubTypeFromMsgId(e_DSRCmsgID msgId) case DSRCmsgID_signalRequestMessage: return "SRM"; case DSRCmsgID_signalStatusMessage: return "SSM"; case DSRCmsgID_travelerInformation: return "TIM"; + #if SAEJ2735_SPEC > 2024 + case DSRCmsgID_personalSafetyMessage: return "PSM"; + case DSRCmsgID_roadSafetyMessage: return "RSM"; + case DSRCmsgID_roadWeatherMessage: return "RWM"; + case DSRCmsgID_probeDataConfigMessage: return "PDC"; + case DSRCmsgID_probeDataReportMessage: return "PDR"; + case DSRCmsgID_tollAdvertisementMessage: return "TAM"; + case DSRCmsgID_tollUsageMessage: return "TUM"; + case DSRCmsgID_tollUsageAckMessage: return "TUMack"; + case DSRCmsgID_cooperativeControlMessage: return "CCM"; + case DSRCmsgID_sensorDataSharingMessage: return "SDSM"; + case DSRCmsgID_maneuverSharingAndCoordinatingMessage: return "MSCM"; + case DSRCmsgID_roadGeometryAndAttributes: return "RGA"; + case DSRCmsgID_personalSafetyMessage2: return "PSM2"; + case DSRCmsgID_trafficSignalPhaseAndTiming: return "TSPaT"; + case DSRCmsgID_signalControlAndPrioritizationRequest: return "SCPR"; + case DSRCmsgID_signalControlAndPrioritizationStatus: return "SCPS"; + case DSRCmsgID_roadUserChargingConfigMessage: return "RUCCM"; + case DSRCmsgID_roadUserChargingReportMessage: return "RUCRM"; + case DSRCmsgID_trafficLightStatusMessage: return "TLSM"; + #endif default: break; } @@ -111,10 +177,14 @@ const char *getMessageDescriptionFromMsgId(e_DSRCmsgID msgId) { // case DSRCmsgID_alaCarteMessage: return "DSRC AlaCarte Message"; case DSRCmsgID_basicSafetyMessage: return "DSRC Basic Safety Message"; + #if SAEJ2735_SPEC < 2024 case DSRCmsgID_basicSafetyMessageVerbose: return "DSRC Basic Safety Message Verbose"; + case DSRCmsgID_intersectionCollisionAlert: return "DSRC Intersection Collision"; + #else + case DSRCmsgID_intersectionCollision: return "DSRC Intersection Collision"; + #endif case DSRCmsgID_commonSafetyRequest: return "DSRC Common Safety Request"; case DSRCmsgID_emergencyVehicleAlert: return "DSRC Emergency Vehicle Alert"; - case DSRCmsgID_intersectionCollisionAlert: return "DSRC Intersection Collision"; case DSRCmsgID_mapData: return "DSRC Map Data"; case DSRCmsgID_nmeaCorrections: return "DSRC NMEA Corrections"; case DSRCmsgID_probeDataManagement: return "DSRC Probe Data Management"; @@ -125,6 +195,27 @@ const char *getMessageDescriptionFromMsgId(e_DSRCmsgID msgId) case DSRCmsgID_signalRequestMessage: return "DSRC Signal Request Message"; case DSRCmsgID_signalStatusMessage: return "DSRC Signal Status Message"; case DSRCmsgID_travelerInformation: return "DSRC Traveler Information Message"; + #if SAEJ2735_SPEC > 2024 + case DSRCmsgID_personalSafetyMessage: return "DSRC Personal Safety Message"; + case DSRCmsgID_roadSafetyMessage: return "DSRC Road Safety Message"; + case DSRCmsgID_roadWeatherMessage: return "DSRC Road Weather Message"; + case DSRCmsgID_probeDataConfigMessage: return "DSRC Probe Data Config Message"; + case DSRCmsgID_probeDataReportMessage: return "DSRC Probe Data Report Message"; + case DSRCmsgID_tollAdvertisementMessage: return "DSRC Toll Advertisement Message"; + case DSRCmsgID_tollUsageMessage: return "DSRC Toll Usage Message"; + case DSRCmsgID_tollUsageAckMessage: return "DSRC Toll Usage Ack Message"; + case DSRCmsgID_cooperativeControlMessage: return "DSRC Cooperative Control Message"; + case DSRCmsgID_sensorDataSharingMessage: return "DSRC Sensor Data Sharing Message"; + case DSRCmsgID_maneuverSharingAndCoordinatingMessage: return "DSRC Maneuver Sharing And Coordinating Message"; + case DSRCmsgID_roadGeometryAndAttributes: return "DSRC Road Geometry And Attributes"; + case DSRCmsgID_personalSafetyMessage2: return "DSRC Personal Safety Message2"; + case DSRCmsgID_trafficSignalPhaseAndTiming: return "DSRC Traffic Signal Phase And Timing"; + case DSRCmsgID_signalControlAndPrioritizationRequest: return "DSRC Signal Control And Prioritization Request"; + case DSRCmsgID_signalControlAndPrioritizationStatus: return "DSRC Signal Control And Prioritization Status"; + case DSRCmsgID_roadUserChargingConfigMessage: return "DSRC Road User Charging Config Message"; + case DSRCmsgID_roadUserChargingReportMessage: return "DSRC Road User Charging Report Message"; + case DSRCmsgID_trafficLightStatusMessage: return "DSRC Traffic Light Status Message"; + #endif default: break; } @@ -135,7 +226,11 @@ e_DSRCmsgID getMsgIdFromMessageSubType(const char *subtype) { assert(subtype != NULL); if (subtype == NULL) + #if SAEJ2735_SPEC < 2024 return DSRCmsgID_reserved; + #else + return DSRCmsgID_reservedMessageId_D; + #endif int i; for(i = 0; i <= 255; i++) @@ -145,7 +240,11 @@ e_DSRCmsgID getMsgIdFromMessageSubType(const char *subtype) return i; } + #if SAEJ2735_SPEC < 2024 return DSRCmsgID_reserved; + #else + return DSRCmsgID_reservedMessageId_D; + #endif } e_DSRCmsgID getMsgIdFromRaw(uint8_t *msg, unsigned int msgLength) @@ -164,7 +263,11 @@ e_DSRCmsgID getMsgIdFromRaw(uint8_t *msg, unsigned int msgLength) return msg[i + 2]; } + #if SAEJ2735_SPEC < 2024 return DSRCmsgID_reserved; + #else + return DSRCmsgID_reservedMessageId_D; + #endif } int ivpJ2735_isJ2735Msg(IvpMessage *msg) @@ -244,7 +347,11 @@ IvpJ2735Msg *ivpJ2735_getJ2735Msg(IvpMessage *msg) //vvv the actual working part of the code vvv e_DSRCmsgID msgId = getMsgIdFromMessageSubType(msg->subtype); + #if SAEJ2735_SPEC < 2024 if (msgId == DSRCmsgID_reserved) + #else + if (msgId == DSRCmsgID_reservedMessageId_D) + #endif return NULL; asn_TYPE_descriptor_t *typeDescriptor = getTypeDescriptorFromMsgId(msgId); @@ -328,7 +435,11 @@ IvpMessage *ivpJ2735_createMsgFromEncoded(uint8_t *msg, unsigned int msgLength, if (payload != NULL) { e_DSRCmsgID msgId = getMsgIdFromRaw(msg, msgLength); + #if SAEJ2735_SPEC < 2024 if (msgId != DSRCmsgID_reserved) + #else + if (msgId != DSRCmsgID_reservedMessageId_D) + #endif { const char *subtype = getMessageSubTypeFromMsgId(msgId); assert(subtype != NULL); @@ -386,7 +497,11 @@ IvpJ2735EncodedMsg *ivpJ2735_getJ2735EncodedMsg(IvpMessage *msg) //vvv the actual working part of the code vvv e_DSRCmsgID msgId = getMsgIdFromMessageSubType(msg->subtype); + #if SAEJ2735_SPEC < 2024 if (msgId == DSRCmsgID_reserved) + #else + if (msgId == DSRCmsgID_reservedMessageId_D) + #endif return NULL; int payloadLength = strlen(msg->payload->valuestring)/2; @@ -436,7 +551,11 @@ IvpJ2735Msg *ivpJ2735_decode(uint8_t *msg, unsigned int msgLength) //vvv the actual working part of the code vvv e_DSRCmsgID msgId = getMsgIdFromRaw(msg, msgLength); + #if SAEJ2735_SPEC < 2024 if (msgId == DSRCmsgID_reserved) + #else + if (msgId == DSRCmsgID_reservedMessageId_D) + #endif return NULL; asn_TYPE_descriptor_t *typeDescriptor = getTypeDescriptorFromMsgId(msgId); diff --git a/src/tmx/TmxApi/tmx/messages/IvpJ2735.h b/src/tmx/TmxApi/tmx/messages/IvpJ2735.h index eef5455d8..65f95af74 100644 --- a/src/tmx/TmxApi/tmx/messages/IvpJ2735.h +++ b/src/tmx/TmxApi/tmx/messages/IvpJ2735.h @@ -14,7 +14,7 @@ #include #ifndef SAEJ2735_SPEC -#define SAEJ2735_SPEC 2020 +#define SAEJ2735_SPEC 2024 #endif #include @@ -30,31 +30,74 @@ extern "C" #if SAEJ2735_SPEC >= 63 /* Dependencies */ typedef enum DSRCmsgID { - DSRCmsgID_reserved = 0, - DSRCmsgID_alaCarteMessage = 1, - DSRCmsgID_basicSafetyMessage = 2, - DSRCmsgID_basicSafetyMessageVerbose = 3, - DSRCmsgID_commonSafetyRequest = 4, - DSRCmsgID_emergencyVehicleAlert = 5, - DSRCmsgID_intersectionCollisionAlert = 6, - DSRCmsgID_mapData = 7, - DSRCmsgID_nmeaCorrections = 8, - DSRCmsgID_probeDataManagement = 9, - DSRCmsgID_probeVehicleData = 10, - DSRCmsgID_roadSideAlert = 11, - DSRCmsgID_rtcmCorrections = 12, - DSRCmsgID_signalPhaseAndTimingMessage = 13, - DSRCmsgID_signalRequestMessage = 14, - DSRCmsgID_signalStatusMessage = 15, - DSRCmsgID_travelerInformation = 16, - DSRCmsgID_testmessage00 = 17, - DSRCmsgID_testmessage01 = 18, - DSRCmsgID_testmessage02 = 19, - DSRCmsgID_testmessage03 = 20, - DSRCmsgID_testmessage04 = 21, - DSRCmsgID_testmessage05 = 22, - DSRCmsgID_testMessage06 = 23, - DSRCmsgID_testMessage07 = 24 + DSRCmsgID_reservedMessageId_D = 0, + DSRCmsgID_alaCarteMessage_D = 1, + DSRCmsgID_basicSafetyMessage_D = 2, + DSRCmsgID_basicSafetyMessageVerbose_D = 3, + DSRCmsgID_commonSafetyRequest_D = 4, + DSRCmsgID_emergencyVehicleAlert_D = 5, + DSRCmsgID_intersectionCollision_D = 6, + DSRCmsgID_mapData_D = 7, + DSRCmsgID_nmeaCorrections_D = 8, + DSRCmsgID_probeDataManagement_D = 9, + DSRCmsgID_probeVehicleData_D = 10, + DSRCmsgID_roadSideAlert_D = 11, + DSRCmsgID_rtcmCorrections_D = 12, + DSRCmsgID_signalPhaseAndTimingMessage_D = 13, + DSRCmsgID_signalRequestMessage_D = 14, + DSRCmsgID_signalStatusMessage_D = 15, + DSRCmsgID_travelerInformation_D = 16, + DSRCmsgID_uperFrame_D = 17, + DSRCmsgID_mapData = 18, + DSRCmsgID_signalPhaseAndTimingMessage = 19, + DSRCmsgID_basicSafetyMessage = 20, + DSRCmsgID_commonSafetyRequest = 21, + DSRCmsgID_emergencyVehicleAlert = 22, + DSRCmsgID_intersectionCollision = 23, + DSRCmsgID_nmeaCorrections = 24, + DSRCmsgID_probeDataManagement = 25, + DSRCmsgID_probeVehicleData = 26, + DSRCmsgID_roadSideAlert = 27, + DSRCmsgID_rtcmCorrections = 28, + DSRCmsgID_signalRequestMessage = 29, + DSRCmsgID_signalStatusMessage = 30, + DSRCmsgID_travelerInformation = 31, + DSRCmsgID_personalSafetyMessage = 32, + DSRCmsgID_roadSafetyMessage = 33, + DSRCmsgID_roadWeatherMessage = 34, + DSRCmsgID_probeDataConfigMessage = 35, + DSRCmsgID_probeDataReportMessage = 36, + DSRCmsgID_tollAdvertisementMessage = 37, + DSRCmsgID_tollUsageMessage = 38, + DSRCmsgID_tollUsageAckMessage = 39, + DSRCmsgID_cooperativeControlMessage = 40, + DSRCmsgID_sensorDataSharingMessage = 41, + DSRCmsgID_maneuverSharingAndCoordinatingMessage = 42, + DSRCmsgID_roadGeometryAndAttributes = 43, + DSRCmsgID_personalSafetyMessage2 = 44, + DSRCmsgID_trafficSignalPhaseAndTiming = 45, + DSRCmsgID_signalControlAndPrioritizationRequest = 46, + DSRCmsgID_signalControlAndPrioritizationStatus = 47, + DSRCmsgID_roadUserChargingConfigMessage = 48, + DSRCmsgID_roadUserChargingReportMessage = 49, + DSRCmsgID_trafficLightStatusMessage = 50, + DSRCmsgID_testMessage00 = 240, + DSRCmsgID_testMessage01 = 241, + DSRCmsgID_testMessage02 = 242, + DSRCmsgID_testMessage03 = 243, + DSRCmsgID_testMessage04 = 244, + DSRCmsgID_testMessage05 = 245, + DSRCmsgID_testMessage06 = 246, + DSRCmsgID_testMessage07 = 247, + DSRCmsgID_testMessage08 = 248, + DSRCmsgID_testMessage09 = 249, + DSRCmsgID_testMessage10 = 250, + DSRCmsgID_testMessage11 = 251, + DSRCmsgID_testMessage12 = 252, + DSRCmsgID_testMessage13 = 253, + DSRCmsgID_testMessage14 = 254, + DSRCmsgID_testMessage15 = 255 + /* * Enumeration is extensible */ diff --git a/src/tmx/TmxApi/tmx/messages/SaeJ2735Traits.hpp b/src/tmx/TmxApi/tmx/messages/SaeJ2735Traits.hpp index 114b78f75..d258d438f 100644 --- a/src/tmx/TmxApi/tmx/messages/SaeJ2735Traits.hpp +++ b/src/tmx/TmxApi/tmx/messages/SaeJ2735Traits.hpp @@ -14,7 +14,7 @@ #include #ifndef SAEJ2735_SPEC -#define SAEJ2735_SPEC 2020 +#define SAEJ2735_SPEC 2024 #endif #define DEFINE_MEMBER_CHECKER(member) \ diff --git a/src/tmx/tmx.doxyfile b/src/tmx/tmx.doxyfile index 4e72c5532..13e0ba8a9 100644 --- a/src/tmx/tmx.doxyfile +++ b/src/tmx/tmx.doxyfile @@ -1935,7 +1935,7 @@ INCLUDE_FILE_PATTERNS = # recursively expanded use the := operator instead of the = operator. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. -PREDEFINED = SAEJ2735_SPEC=2020 +PREDEFINED = SAEJ2735_SPEC=2024 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this # tag can be used to specify a list of macro names that should be expanded. The