Commit b540583e authored by Yann Garcia's avatar Yann Garcia
Browse files

Bug fixed for TITAN built-in OER encoding

parent 67983cb8
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -5,9 +5,6 @@
        },
        {
            "path": "../../frameworks/titan/titan.core"
        },
        {
            "path": "../TS.ITS.TTF_T036"
        }
    ]
}
 No newline at end of file
+1 −1
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@ avm_layer::avm_layer(const std::string &p_type, const std::string &param) : t_la
  loggers::get_instance().log(">>> avm_layer::avm_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>(static_cast<std::string>(params_its::its_aid), "71"));     // ETSI TS 102 965 V2.4.1 
  _params.insert(std::make_pair<std::string, std::string>(static_cast<std::string>(params_its::its_aid), "638"));     // ETSI TS 102 965 V2.4.1 
  _params.insert(std::make_pair<std::string, std::string>(static_cast<std::string>(params_its::payload_type), "19")); // MVM message id:19 - See ETSI TS 102 894
                                                                                                                      // MIM message id:18 - See ETSI TS 102 894

+6 −6
Original line number Diff line number Diff line
@@ -184,7 +184,7 @@ int geonetworking_codec::decode_(Base_Type &type, const TTCN_Typedescriptor_t &f
        return -1;
      }
    } // End of 'for' statement
    // Save p_data for upper layer
    // Save data for upper layer
    if (std::string(r.get_descriptor()->name).compare("@LibItsGeoNetworking_TypesAndValues.Lifetime") == 0) {
      LibItsGeoNetworking__TypesAndValues::Lifetime &l    = static_cast<LibItsGeoNetworking__TypesAndValues::Lifetime &>(r);
      unsigned int                                   base = 0;
@@ -215,14 +215,14 @@ int geonetworking_codec::decode_(Base_Type &type, const TTCN_Typedescriptor_t &f
    // loggers::get_instance().log("geonetworking_codec::decode_ (else): processing type %s/%s - optional:%d", type.get_descriptor()->name,
    // field_descriptor.name, type.is_optional());
    if (std::string(field_descriptor.name).compare("@LibItsGeoNetworking_TypesAndValues.CommonHeader.nextHeader") == 0) {
      // Decode NextHeader p_data structure
      // Decode NextHeader data structure
      type.decode(field_descriptor, decoding_buffer, TTCN_EncDec::CT_RAW);
      // Store NextHeader field value and continue decoding
      _dc.set_next_header((unsigned int)dynamic_cast<const Enum_Type &>(type).as_int());
    } else if (std::string(field_descriptor.name).compare("@LibItsGeoNetworking_TypesAndValues.CommonHeader.headerTST") == 0) {
      decode_headerTST(static_cast<LibItsGeoNetworking__TypesAndValues::HeaderTST &>(type), decoding_buffer);
    } else if (std::string(field_descriptor.name).compare("@LibItsGeoNetworking_TypesAndValues.GnNonSecuredPacket.extendedHeader") == 0) {
      // Decode ExtendedHeader p_data structure
      // Decode ExtendedHeader data structure
      LibItsGeoNetworking__TypesAndValues::ExtendedHeader e;
      decode_extendedHeader(e, decoding_buffer);
      if (e.is_bound()) {
@@ -233,7 +233,7 @@ int geonetworking_codec::decode_(Base_Type &type, const TTCN_Typedescriptor_t &f
        dynamic_cast<OPTIONAL<LibItsGeoNetworking__TypesAndValues::ExtendedHeader> &>(type).set_to_omit();
      }
    } else if (std::string(field_descriptor.name).compare("@LibItsGeoNetworking_TypesAndValues.GnNonSecuredPacket.payload") == 0) {
      // Decode raw payload p_data structure
      // Decode raw payload data structure
      OCTETSTRING s(decoding_buffer.get_len() - decoding_buffer.get_pos(), decoding_buffer.get_data() + decoding_buffer.get_pos());
      // loggers::get_instance().log_msg("geonetworking_codec::decode_: s=", s);
      const unsigned char *p = static_cast<const unsigned char *>(s);
@@ -266,7 +266,7 @@ int geonetworking_codec::decode_(Base_Type &type, const TTCN_Typedescriptor_t &f
        dynamic_cast<OPTIONAL<LibItsGeoNetworking__TypesAndValues::GnRawPayload> &>(type).set_to_omit();
      }
    } else if (std::string(field_descriptor.name).compare("@LibItsGeoNetworking_TypesAndValues.CommonHeader.plLength") == 0) {
      // Decode plLength p_data structure
      // Decode plLength data structure
      type.decode(field_descriptor, decoding_buffer, TTCN_EncDec::CT_RAW);
      // Store playload length and continue decoding
      _dc.set_length((unsigned int)static_cast<int>(dynamic_cast<const INTEGER &>(type)));
@@ -335,7 +335,7 @@ int geonetworking_codec::encode_extendedHeader(const LibItsGeoNetworking__TypesA
int geonetworking_codec::decode_headerTST(LibItsGeoNetworking__TypesAndValues::HeaderTST &u, TTCN_Buffer &decoding_buffer) {
  // loggers::get_instance().log(">>> geonetworking_codec::decode_headerTST: processing %s", u.get_descriptor()->name);

  // Decode HeaderTST p_data structure
  // Decode HeaderTST data structure
  _dc.set_header_type(*(decoding_buffer.get_data() + decoding_buffer.get_pos()) >> 4);
  _dc.set_header_sub_type(*(decoding_buffer.get_data() + decoding_buffer.get_pos()) & 0x0F);
  // loggers::get_instance().log("geonetworking_codec::decode_: headerTST selectors: _dc.header_type = %d - _dc.header_sub_type = %d", _dc.get_header_type(),
+1 −1
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@ pim_layer::pim_layer(const std::string &p_type, const std::string &param) : t_la
  loggers::get_instance().log(">>> pim_layer::pim_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>(static_cast<std::string>(params_its::its_aid), "71"));     // ETSI TS 102 965 V2.4.1 
  _params.insert(std::make_pair<std::string, std::string>(static_cast<std::string>(params_its::its_aid), "1621"));     // ETSI TS 102 965 V2.4.1 
  _params.insert(std::make_pair<std::string, std::string>(static_cast<std::string>(params_its::payload_type), "19")); // PIM message id:18 - See ETSI TS 102 894

  // Register this object for AdapterControlPort
+2 −2
Original line number Diff line number Diff line
@@ -13,8 +13,8 @@ saem_layer::saem_layer(const std::string &p_type, const std::string &param) : t_
  loggers::get_instance().log(">>> saem_layer::saem_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>(static_cast<std::string>(params_its::its_aid), "71"));     // ETSI TS 102 965 V2.4.1 
  _params.insert(std::make_pair<std::string, std::string>(static_cast<std::string>(params_its::payload_type), "19")); // SAEM message id:18 - See ETSI TS 102 894
  _params.insert(std::make_pair<std::string, std::string>(static_cast<std::string>(params_its::its_aid), "540801"));     // ETSI TS 102 965 V2.4.1 
  _params.insert(std::make_pair<std::string, std::string>(static_cast<std::string>(params_its::payload_type), "15")); // SAEM message id:15 - See ETSI TS 102 894

  // Register this object for AdapterControlPort
  loggers::get_instance().log("saem_layer::saem_layer: Register %s/%p", p_type.c_str(), this);
Loading