Loading ccsrc/EncDec/LibItsCps_Encdec.cc +28 −28 Original line number Diff line number Diff line Loading @@ -8,11 +8,11 @@ namespace LibItsCps__EncdecDeclarations { /**************************************************** * @desc External function to encode a CpsReq type * @desc External function to encode a CpmReq type * @param value to encode * @return encoded value ****************************************************/ BITSTRING fx__enc__CpsReq(const LibItsCps__TypesAndValues::CpsReq &p_cpsReq) { BITSTRING fx__enc__CpsReq(const LibItsCps__TypesAndValues::CpmReq &p_cpsReq) { loggers::get_instance().log_msg(">>> fx__enc__CpsReq: ", p_cpsReq); cps_codec codec; Loading @@ -26,11 +26,11 @@ namespace LibItsCps__EncdecDeclarations { } /**************************************************** * @desc External function to decode a CpsReq type * @desc External function to decode a CpmReq type * @param value to encode * @return encoded value ****************************************************/ INTEGER fx__dec__CpsReq(BITSTRING &b, LibItsCps__TypesAndValues::CpsReq &p) { INTEGER fx__dec__CpsReq(BITSTRING &b, LibItsCps__TypesAndValues::CpmReq &p) { loggers::get_instance().log(">>> fx__dec__CpsReq"); // Sanity check Loading @@ -51,7 +51,7 @@ namespace LibItsCps__EncdecDeclarations { return 0; } INTEGER fx__dec__CpsInd(BITSTRING &b, LibItsCps__TypesAndValues::CpsInd &p_cpsInd) { INTEGER fx__dec__CpsInd(BITSTRING &b, LibItsCps__TypesAndValues::CpmInd &p_cpsInd) { loggers::get_instance().log(">>> fx__dec__CpsInd"); // Sanity check Loading @@ -64,11 +64,11 @@ namespace LibItsCps__EncdecDeclarations { OCTETSTRING is = bit2oct(b); // Calculate the size of the lower layers information int s = (LibItsCps__TypesAndValues::CpsInd_gnNextHeader_raw_.fieldlength + LibItsCps__TypesAndValues::CpsInd_gnHeaderType_raw_.fieldlength + LibItsCps__TypesAndValues::CpsInd_gnHeaderSubtype_raw_.fieldlength + LibItsCps__TypesAndValues::CpsInd_gnLifetime_raw_.fieldlength + LibItsCps__TypesAndValues::CpsInd_gnTrafficClass_raw_.fieldlength + LibItsCps__TypesAndValues::CpsInd_btpDestinationPort_raw_.fieldlength + LibItsCps__TypesAndValues::CpsInd_btpInfo_raw_.fieldlength + LibItsCps__TypesAndValues::CpsInd_ssp_raw_.fieldlength + LibItsCps__TypesAndValues::CpsInd_its__aid_raw_.fieldlength) / int s = (LibItsCps__TypesAndValues::CpmInd_gnNextHeader_raw_.fieldlength + LibItsCps__TypesAndValues::CpmInd_gnHeaderType_raw_.fieldlength + LibItsCps__TypesAndValues::CpmInd_gnHeaderSubtype_raw_.fieldlength + LibItsCps__TypesAndValues::CpmInd_gnLifetime_raw_.fieldlength + LibItsCps__TypesAndValues::CpmInd_gnTrafficClass_raw_.fieldlength + LibItsCps__TypesAndValues::CpmInd_btpDestinationPort_raw_.fieldlength + LibItsCps__TypesAndValues::CpmInd_btpInfo_raw_.fieldlength + LibItsCps__TypesAndValues::CpmInd_ssp_raw_.fieldlength + LibItsCps__TypesAndValues::CpmInd_its__aid_raw_.fieldlength) / 8; // Decode CA message if (codec.decode(OCTETSTRING(is.lengthof() - s, static_cast<const unsigned char *>(is)), cps) == -1) { Loading @@ -80,91 +80,91 @@ namespace LibItsCps__EncdecDeclarations { TTCN_Buffer decoding_buffer(OCTETSTRING(s, static_cast<const unsigned char *>(is) + is.lengthof() - s)); loggers::get_instance().log_to_hexa("fx__dec__CpsInd: ", decoding_buffer); // gnNextHeader if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpsInd_gnNextHeader_raw_.fieldlength / 8)) { if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpmInd_gnNextHeader_raw_.fieldlength / 8)) { p_cpsInd.gnNextHeader().set_to_omit(); } else { OCTETSTRING os; os.decode(LibItsCps__TypesAndValues::CpsInd_gnNextHeader_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); os.decode(LibItsCps__TypesAndValues::CpmInd_gnNextHeader_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); p_cpsInd.gnNextHeader() = oct2int(os); } loggers::get_instance().log_msg("fx__dec__CpsInd: gnNextHeader=", p_cpsInd.gnNextHeader()); loggers::get_instance().log_to_hexa("fx__dec__CpsInd: ", decoding_buffer); // gnHeaderType if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpsInd_gnHeaderType_raw_.fieldlength / 8)) { if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpmInd_gnHeaderType_raw_.fieldlength / 8)) { p_cpsInd.gnHeaderType().set_to_omit(); } else { OCTETSTRING os; os.decode(LibItsCps__TypesAndValues::CpsInd_gnHeaderType_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); os.decode(LibItsCps__TypesAndValues::CpmInd_gnHeaderType_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); p_cpsInd.gnHeaderType() = oct2int(os); } loggers::get_instance().log_msg("fx__dec__CpsInd: gnHeaderType=", p_cpsInd.gnHeaderType()); loggers::get_instance().log_to_hexa("fx__dec__CpsInd: ", decoding_buffer); // gnHeaderSubtype if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpsInd_gnHeaderSubtype_raw_.fieldlength / 8)) { if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpmInd_gnHeaderSubtype_raw_.fieldlength / 8)) { p_cpsInd.gnHeaderSubtype().set_to_omit(); } else { OCTETSTRING os; os.decode(LibItsCps__TypesAndValues::CpsInd_gnHeaderSubtype_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); os.decode(LibItsCps__TypesAndValues::CpmInd_gnHeaderSubtype_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); p_cpsInd.gnHeaderSubtype() = oct2int(os); } loggers::get_instance().log_msg("fx__dec__CpsInd: gnHeaderSubtype=", p_cpsInd.gnHeaderSubtype()); loggers::get_instance().log_to_hexa("fx__dec__CpsInd: ", decoding_buffer); // gnLifetime if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpsInd_gnLifetime_raw_.fieldlength / 8)) { if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpmInd_gnLifetime_raw_.fieldlength / 8)) { p_cpsInd.gnLifetime().set_to_omit(); } else { INTEGER i; i.decode(LibItsCps__TypesAndValues::CpsInd_gnLifetime_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); i.decode(LibItsCps__TypesAndValues::CpmInd_gnLifetime_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); p_cpsInd.gnLifetime() = i; } loggers::get_instance().log_msg("fx__dec__CpsInd: gnLifetime=", p_cpsInd.gnLifetime()); loggers::get_instance().log_to_hexa("fx__dec__CpsInd: ", decoding_buffer); // gnTrafficClass if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpsInd_gnTrafficClass_raw_.fieldlength / 8)) { if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpmInd_gnTrafficClass_raw_.fieldlength / 8)) { p_cpsInd.gnTrafficClass().set_to_omit(); } else { OCTETSTRING os; os.decode(LibItsCps__TypesAndValues::CpsInd_gnTrafficClass_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); os.decode(LibItsCps__TypesAndValues::CpmInd_gnTrafficClass_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); p_cpsInd.gnTrafficClass() = oct2int(os); } loggers::get_instance().log_msg("fx__dec__CpsInd: gnTrafficClass=", p_cpsInd.gnTrafficClass()); loggers::get_instance().log_to_hexa("fx__dec__CpsInd: ", decoding_buffer); // btpDestinationPort if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpsInd_btpDestinationPort_raw_.fieldlength / 8)) { if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpmInd_btpDestinationPort_raw_.fieldlength / 8)) { p_cpsInd.btpDestinationPort().set_to_omit(); } else { INTEGER i; i.decode(LibItsCps__TypesAndValues::CpsInd_btpDestinationPort_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); i.decode(LibItsCps__TypesAndValues::CpmInd_btpDestinationPort_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); p_cpsInd.btpDestinationPort() = i; } loggers::get_instance().log_msg("fx__dec__CpsInd: btpDestinationPort=", p_cpsInd.btpDestinationPort()); loggers::get_instance().log_to_hexa("fx__dec__CpsInd: ", decoding_buffer); // btpInfo if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpsInd_btpInfo_raw_.fieldlength / 8)) { if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpmInd_btpInfo_raw_.fieldlength / 8)) { p_cpsInd.btpInfo().set_to_omit(); } else { INTEGER i; i.decode(LibItsCps__TypesAndValues::CpsInd_btpInfo_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); i.decode(LibItsCps__TypesAndValues::CpmInd_btpInfo_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); p_cpsInd.btpInfo() = i; } loggers::get_instance().log_msg("fx__dec__CpsInd: btpInfo=", p_cpsInd.btpInfo()); loggers::get_instance().log_to_hexa("fx__dec__CpsInd: ", decoding_buffer); // ssp if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpsInd_ssp_raw_.fieldlength / 8)) { if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpmInd_ssp_raw_.fieldlength / 8)) { p_cpsInd.ssp().set_to_omit(); } else { BITSTRING bs; bs.decode(LibItsCps__TypesAndValues::CpsInd_ssp_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); bs.decode(LibItsCps__TypesAndValues::CpmInd_ssp_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); p_cpsInd.ssp() = bs; } loggers::get_instance().log_msg("fx__dec__CpsInd: ssp=", p_cpsInd.ssp()); loggers::get_instance().log_to_hexa("fx__dec__CpsInd: ", decoding_buffer); // its__aid if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpsInd_its__aid_raw_.fieldlength / 8)) { if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpmInd_its__aid_raw_.fieldlength / 8)) { p_cpsInd.its__aid().set_to_omit(); } else { INTEGER i; i.decode(LibItsCps__TypesAndValues::CpsInd_its__aid_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); i.decode(LibItsCps__TypesAndValues::CpmInd_its__aid_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); p_cpsInd.its__aid() = i; } loggers::get_instance().log_msg("fx__dec__CpsInd: its_aid=", p_cpsInd.its__aid()); Loading ccsrc/Ports/LibIts_ports/CPS_ports/CpsPort.cc +2 −2 Original line number Diff line number Diff line Loading @@ -69,7 +69,7 @@ namespace LibItsCps__TestSystem { void CpsPort::user_stop() {} void CpsPort::outgoing_send(const LibItsCps__TypesAndValues::CpsReq &send_par) { void CpsPort::outgoing_send(const LibItsCps__TypesAndValues::CpmReq &send_par) { loggers::get_instance().log_msg(">>> CpsPort::outgoing_send: payload=", send_par); float duration; Loading @@ -79,7 +79,7 @@ namespace LibItsCps__TestSystem { loggers::get_instance().set_stop_time(_time_key, duration); } void CpsPort::receiveMsg(const LibItsCps__TypesAndValues::CpsInd &p_ind, const params& p_params) { void CpsPort::receiveMsg(const LibItsCps__TypesAndValues::CpmInd &p_ind, const params& p_params) { //loggers::get_instance().log_msg(">>> CpsPort::receive_msg: ", p_ind); const params_its& p = static_cast<const params_its&>(p_params); loggers::get_instance().log(">>> CpsPort::receive_msg: %s", p.station_id.c_str()); Loading ccsrc/Ports/LibIts_ports/CPS_ports/CpsPort.hh +2 −2 Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ namespace LibItsCps__TestSystem { void set_parameter(const char *parameter_name, const char *parameter_value); void receiveMsg(const LibItsCps__TypesAndValues::CpsInd&, const params&); void receiveMsg(const LibItsCps__TypesAndValues::CpmInd&, const params&); private: /* void Handle_Fd_Event(int fd, boolean is_readable, Loading @@ -45,7 +45,7 @@ namespace LibItsCps__TestSystem { void user_start(); void user_stop(); void outgoing_send(const LibItsCps__TypesAndValues::CpsReq &send_par); void outgoing_send(const LibItsCps__TypesAndValues::CpmReq &send_par); }; } // namespace LibItsCps__TestSystem Loading ccsrc/Protocols/CPS/cps_codec.hh +1 −1 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ class BITSTRING; //! Forward declaration of TITAN class class OCTETSTRING; //! Forward declaration of TITAN class namespace CPS__PDU__Descriptions { //! Forward declaration of asn1c CPS class namespace CPM__PDU__Descriptions { //! Forward declaration of asn1c CPS class class CollectivePerceptionMessage; } Loading ccsrc/Protocols/CPS_layers/cps_layer.cc +4 −4 Original line number Diff line number Diff line Loading @@ -13,15 +13,15 @@ cps_layer::cps_layer(const std::string &p_type, const std::string ¶m) : t_la loggers::get_instance().log(">>> cps_layer::cps_layer: %s, %s", to_string().c_str(), param.c_str()); // Setup parameters params::convert(_params, param); _params.insert(std::make_pair<std::string, std::string>("its_aid", "36")); // ETSI TS 102 965 V2.1.1 (2021-11) _params.insert(std::make_pair<std::string, std::string>("payload_type", "2")); // CA message id - See ETSI TS 102 894 _params.insert(std::make_pair<std::string, std::string>("its_aid", "639")); // ETSI TS 102 965 V2.1.1 (2021-11) _params.insert(std::make_pair<std::string, std::string>("payload_type", "2")); // CP message id - See ETSI TS 102 894 // Register this object for AdapterControlPort loggers::get_instance().log("cps_layer::cps_layer: Register %s/%p", p_type.c_str(), this); registration<cps_layer>::get_instance().add_item(p_type, this); } void cps_layer::sendMsg(const LibItsCps__TypesAndValues::CpsReq &p, params_its ¶ms) { void cps_layer::sendMsg(const LibItsCps__TypesAndValues::CpmReq &p, params_its ¶ms) { loggers::get_instance().log_msg(">>> cps_layer::sendMsg: ", p); // Encode CPS PDU Loading Loading @@ -53,7 +53,7 @@ void cps_layer::receive_data(OCTETSTRING &data, params &p_params) { // Decode the payload params_its ¶ms = static_cast<params_its&>(p_params); LibItsCps__TypesAndValues::CpsInd p; LibItsCps__TypesAndValues::CpmInd p; _codec.decode(data, p.msgIn()); if (!p.msgIn().is_bound()) { // Discard it Loading Loading
ccsrc/EncDec/LibItsCps_Encdec.cc +28 −28 Original line number Diff line number Diff line Loading @@ -8,11 +8,11 @@ namespace LibItsCps__EncdecDeclarations { /**************************************************** * @desc External function to encode a CpsReq type * @desc External function to encode a CpmReq type * @param value to encode * @return encoded value ****************************************************/ BITSTRING fx__enc__CpsReq(const LibItsCps__TypesAndValues::CpsReq &p_cpsReq) { BITSTRING fx__enc__CpsReq(const LibItsCps__TypesAndValues::CpmReq &p_cpsReq) { loggers::get_instance().log_msg(">>> fx__enc__CpsReq: ", p_cpsReq); cps_codec codec; Loading @@ -26,11 +26,11 @@ namespace LibItsCps__EncdecDeclarations { } /**************************************************** * @desc External function to decode a CpsReq type * @desc External function to decode a CpmReq type * @param value to encode * @return encoded value ****************************************************/ INTEGER fx__dec__CpsReq(BITSTRING &b, LibItsCps__TypesAndValues::CpsReq &p) { INTEGER fx__dec__CpsReq(BITSTRING &b, LibItsCps__TypesAndValues::CpmReq &p) { loggers::get_instance().log(">>> fx__dec__CpsReq"); // Sanity check Loading @@ -51,7 +51,7 @@ namespace LibItsCps__EncdecDeclarations { return 0; } INTEGER fx__dec__CpsInd(BITSTRING &b, LibItsCps__TypesAndValues::CpsInd &p_cpsInd) { INTEGER fx__dec__CpsInd(BITSTRING &b, LibItsCps__TypesAndValues::CpmInd &p_cpsInd) { loggers::get_instance().log(">>> fx__dec__CpsInd"); // Sanity check Loading @@ -64,11 +64,11 @@ namespace LibItsCps__EncdecDeclarations { OCTETSTRING is = bit2oct(b); // Calculate the size of the lower layers information int s = (LibItsCps__TypesAndValues::CpsInd_gnNextHeader_raw_.fieldlength + LibItsCps__TypesAndValues::CpsInd_gnHeaderType_raw_.fieldlength + LibItsCps__TypesAndValues::CpsInd_gnHeaderSubtype_raw_.fieldlength + LibItsCps__TypesAndValues::CpsInd_gnLifetime_raw_.fieldlength + LibItsCps__TypesAndValues::CpsInd_gnTrafficClass_raw_.fieldlength + LibItsCps__TypesAndValues::CpsInd_btpDestinationPort_raw_.fieldlength + LibItsCps__TypesAndValues::CpsInd_btpInfo_raw_.fieldlength + LibItsCps__TypesAndValues::CpsInd_ssp_raw_.fieldlength + LibItsCps__TypesAndValues::CpsInd_its__aid_raw_.fieldlength) / int s = (LibItsCps__TypesAndValues::CpmInd_gnNextHeader_raw_.fieldlength + LibItsCps__TypesAndValues::CpmInd_gnHeaderType_raw_.fieldlength + LibItsCps__TypesAndValues::CpmInd_gnHeaderSubtype_raw_.fieldlength + LibItsCps__TypesAndValues::CpmInd_gnLifetime_raw_.fieldlength + LibItsCps__TypesAndValues::CpmInd_gnTrafficClass_raw_.fieldlength + LibItsCps__TypesAndValues::CpmInd_btpDestinationPort_raw_.fieldlength + LibItsCps__TypesAndValues::CpmInd_btpInfo_raw_.fieldlength + LibItsCps__TypesAndValues::CpmInd_ssp_raw_.fieldlength + LibItsCps__TypesAndValues::CpmInd_its__aid_raw_.fieldlength) / 8; // Decode CA message if (codec.decode(OCTETSTRING(is.lengthof() - s, static_cast<const unsigned char *>(is)), cps) == -1) { Loading @@ -80,91 +80,91 @@ namespace LibItsCps__EncdecDeclarations { TTCN_Buffer decoding_buffer(OCTETSTRING(s, static_cast<const unsigned char *>(is) + is.lengthof() - s)); loggers::get_instance().log_to_hexa("fx__dec__CpsInd: ", decoding_buffer); // gnNextHeader if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpsInd_gnNextHeader_raw_.fieldlength / 8)) { if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpmInd_gnNextHeader_raw_.fieldlength / 8)) { p_cpsInd.gnNextHeader().set_to_omit(); } else { OCTETSTRING os; os.decode(LibItsCps__TypesAndValues::CpsInd_gnNextHeader_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); os.decode(LibItsCps__TypesAndValues::CpmInd_gnNextHeader_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); p_cpsInd.gnNextHeader() = oct2int(os); } loggers::get_instance().log_msg("fx__dec__CpsInd: gnNextHeader=", p_cpsInd.gnNextHeader()); loggers::get_instance().log_to_hexa("fx__dec__CpsInd: ", decoding_buffer); // gnHeaderType if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpsInd_gnHeaderType_raw_.fieldlength / 8)) { if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpmInd_gnHeaderType_raw_.fieldlength / 8)) { p_cpsInd.gnHeaderType().set_to_omit(); } else { OCTETSTRING os; os.decode(LibItsCps__TypesAndValues::CpsInd_gnHeaderType_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); os.decode(LibItsCps__TypesAndValues::CpmInd_gnHeaderType_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); p_cpsInd.gnHeaderType() = oct2int(os); } loggers::get_instance().log_msg("fx__dec__CpsInd: gnHeaderType=", p_cpsInd.gnHeaderType()); loggers::get_instance().log_to_hexa("fx__dec__CpsInd: ", decoding_buffer); // gnHeaderSubtype if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpsInd_gnHeaderSubtype_raw_.fieldlength / 8)) { if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpmInd_gnHeaderSubtype_raw_.fieldlength / 8)) { p_cpsInd.gnHeaderSubtype().set_to_omit(); } else { OCTETSTRING os; os.decode(LibItsCps__TypesAndValues::CpsInd_gnHeaderSubtype_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); os.decode(LibItsCps__TypesAndValues::CpmInd_gnHeaderSubtype_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); p_cpsInd.gnHeaderSubtype() = oct2int(os); } loggers::get_instance().log_msg("fx__dec__CpsInd: gnHeaderSubtype=", p_cpsInd.gnHeaderSubtype()); loggers::get_instance().log_to_hexa("fx__dec__CpsInd: ", decoding_buffer); // gnLifetime if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpsInd_gnLifetime_raw_.fieldlength / 8)) { if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpmInd_gnLifetime_raw_.fieldlength / 8)) { p_cpsInd.gnLifetime().set_to_omit(); } else { INTEGER i; i.decode(LibItsCps__TypesAndValues::CpsInd_gnLifetime_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); i.decode(LibItsCps__TypesAndValues::CpmInd_gnLifetime_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); p_cpsInd.gnLifetime() = i; } loggers::get_instance().log_msg("fx__dec__CpsInd: gnLifetime=", p_cpsInd.gnLifetime()); loggers::get_instance().log_to_hexa("fx__dec__CpsInd: ", decoding_buffer); // gnTrafficClass if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpsInd_gnTrafficClass_raw_.fieldlength / 8)) { if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpmInd_gnTrafficClass_raw_.fieldlength / 8)) { p_cpsInd.gnTrafficClass().set_to_omit(); } else { OCTETSTRING os; os.decode(LibItsCps__TypesAndValues::CpsInd_gnTrafficClass_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); os.decode(LibItsCps__TypesAndValues::CpmInd_gnTrafficClass_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); p_cpsInd.gnTrafficClass() = oct2int(os); } loggers::get_instance().log_msg("fx__dec__CpsInd: gnTrafficClass=", p_cpsInd.gnTrafficClass()); loggers::get_instance().log_to_hexa("fx__dec__CpsInd: ", decoding_buffer); // btpDestinationPort if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpsInd_btpDestinationPort_raw_.fieldlength / 8)) { if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpmInd_btpDestinationPort_raw_.fieldlength / 8)) { p_cpsInd.btpDestinationPort().set_to_omit(); } else { INTEGER i; i.decode(LibItsCps__TypesAndValues::CpsInd_btpDestinationPort_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); i.decode(LibItsCps__TypesAndValues::CpmInd_btpDestinationPort_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); p_cpsInd.btpDestinationPort() = i; } loggers::get_instance().log_msg("fx__dec__CpsInd: btpDestinationPort=", p_cpsInd.btpDestinationPort()); loggers::get_instance().log_to_hexa("fx__dec__CpsInd: ", decoding_buffer); // btpInfo if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpsInd_btpInfo_raw_.fieldlength / 8)) { if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpmInd_btpInfo_raw_.fieldlength / 8)) { p_cpsInd.btpInfo().set_to_omit(); } else { INTEGER i; i.decode(LibItsCps__TypesAndValues::CpsInd_btpInfo_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); i.decode(LibItsCps__TypesAndValues::CpmInd_btpInfo_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); p_cpsInd.btpInfo() = i; } loggers::get_instance().log_msg("fx__dec__CpsInd: btpInfo=", p_cpsInd.btpInfo()); loggers::get_instance().log_to_hexa("fx__dec__CpsInd: ", decoding_buffer); // ssp if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpsInd_ssp_raw_.fieldlength / 8)) { if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpmInd_ssp_raw_.fieldlength / 8)) { p_cpsInd.ssp().set_to_omit(); } else { BITSTRING bs; bs.decode(LibItsCps__TypesAndValues::CpsInd_ssp_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); bs.decode(LibItsCps__TypesAndValues::CpmInd_ssp_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); p_cpsInd.ssp() = bs; } loggers::get_instance().log_msg("fx__dec__CpsInd: ssp=", p_cpsInd.ssp()); loggers::get_instance().log_to_hexa("fx__dec__CpsInd: ", decoding_buffer); // its__aid if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpsInd_its__aid_raw_.fieldlength / 8)) { if (decoding_buffer.get_read_len() < static_cast<size_t>(LibItsCps__TypesAndValues::CpmInd_its__aid_raw_.fieldlength / 8)) { p_cpsInd.its__aid().set_to_omit(); } else { INTEGER i; i.decode(LibItsCps__TypesAndValues::CpsInd_its__aid_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); i.decode(LibItsCps__TypesAndValues::CpmInd_its__aid_descr_, decoding_buffer, TTCN_EncDec::CT_RAW); p_cpsInd.its__aid() = i; } loggers::get_instance().log_msg("fx__dec__CpsInd: its_aid=", p_cpsInd.its__aid()); Loading
ccsrc/Ports/LibIts_ports/CPS_ports/CpsPort.cc +2 −2 Original line number Diff line number Diff line Loading @@ -69,7 +69,7 @@ namespace LibItsCps__TestSystem { void CpsPort::user_stop() {} void CpsPort::outgoing_send(const LibItsCps__TypesAndValues::CpsReq &send_par) { void CpsPort::outgoing_send(const LibItsCps__TypesAndValues::CpmReq &send_par) { loggers::get_instance().log_msg(">>> CpsPort::outgoing_send: payload=", send_par); float duration; Loading @@ -79,7 +79,7 @@ namespace LibItsCps__TestSystem { loggers::get_instance().set_stop_time(_time_key, duration); } void CpsPort::receiveMsg(const LibItsCps__TypesAndValues::CpsInd &p_ind, const params& p_params) { void CpsPort::receiveMsg(const LibItsCps__TypesAndValues::CpmInd &p_ind, const params& p_params) { //loggers::get_instance().log_msg(">>> CpsPort::receive_msg: ", p_ind); const params_its& p = static_cast<const params_its&>(p_params); loggers::get_instance().log(">>> CpsPort::receive_msg: %s", p.station_id.c_str()); Loading
ccsrc/Ports/LibIts_ports/CPS_ports/CpsPort.hh +2 −2 Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ namespace LibItsCps__TestSystem { void set_parameter(const char *parameter_name, const char *parameter_value); void receiveMsg(const LibItsCps__TypesAndValues::CpsInd&, const params&); void receiveMsg(const LibItsCps__TypesAndValues::CpmInd&, const params&); private: /* void Handle_Fd_Event(int fd, boolean is_readable, Loading @@ -45,7 +45,7 @@ namespace LibItsCps__TestSystem { void user_start(); void user_stop(); void outgoing_send(const LibItsCps__TypesAndValues::CpsReq &send_par); void outgoing_send(const LibItsCps__TypesAndValues::CpmReq &send_par); }; } // namespace LibItsCps__TestSystem Loading
ccsrc/Protocols/CPS/cps_codec.hh +1 −1 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ class BITSTRING; //! Forward declaration of TITAN class class OCTETSTRING; //! Forward declaration of TITAN class namespace CPS__PDU__Descriptions { //! Forward declaration of asn1c CPS class namespace CPM__PDU__Descriptions { //! Forward declaration of asn1c CPS class class CollectivePerceptionMessage; } Loading
ccsrc/Protocols/CPS_layers/cps_layer.cc +4 −4 Original line number Diff line number Diff line Loading @@ -13,15 +13,15 @@ cps_layer::cps_layer(const std::string &p_type, const std::string ¶m) : t_la loggers::get_instance().log(">>> cps_layer::cps_layer: %s, %s", to_string().c_str(), param.c_str()); // Setup parameters params::convert(_params, param); _params.insert(std::make_pair<std::string, std::string>("its_aid", "36")); // ETSI TS 102 965 V2.1.1 (2021-11) _params.insert(std::make_pair<std::string, std::string>("payload_type", "2")); // CA message id - See ETSI TS 102 894 _params.insert(std::make_pair<std::string, std::string>("its_aid", "639")); // ETSI TS 102 965 V2.1.1 (2021-11) _params.insert(std::make_pair<std::string, std::string>("payload_type", "2")); // CP message id - See ETSI TS 102 894 // Register this object for AdapterControlPort loggers::get_instance().log("cps_layer::cps_layer: Register %s/%p", p_type.c_str(), this); registration<cps_layer>::get_instance().add_item(p_type, this); } void cps_layer::sendMsg(const LibItsCps__TypesAndValues::CpsReq &p, params_its ¶ms) { void cps_layer::sendMsg(const LibItsCps__TypesAndValues::CpmReq &p, params_its ¶ms) { loggers::get_instance().log_msg(">>> cps_layer::sendMsg: ", p); // Encode CPS PDU Loading Loading @@ -53,7 +53,7 @@ void cps_layer::receive_data(OCTETSTRING &data, params &p_params) { // Decode the payload params_its ¶ms = static_cast<params_its&>(p_params); LibItsCps__TypesAndValues::CpsInd p; LibItsCps__TypesAndValues::CpmInd p; _codec.decode(data, p.msgIn()); if (!p.msgIn().is_bound()) { // Discard it Loading