Commit a3dc17ba authored by YannGarcia's avatar YannGarcia
Browse files

Add support forAtsMBR

parent 492e26e9
Loading
Loading
Loading
Loading
+40 −0
Original line number Diff line number Diff line
#include "LibItsMbr_EncdecDeclarations.hh"

#include "etsi_ts103759_data_codec.hh"

#include "loggers.hh"

namespace LibItsMbr__EncdecDeclarations {

  /*BITSTRING fx__enc__CAM(const CAM__PDU__Descriptions::CAM &p_cam) {
    cam_pdu_codec asn_codec;
    BITSTRING b;
    int rc = asn_codec.encode(p_cam, b);
    if (rc) {
      return b;
    }
    return int2bit(0, 1);
    }*/

  BITSTRING fx__enc__EtsiTs103759Data(const EtsiTs103759Core::EtsiTs103759Data &p_etsi_ts_102941_data) {
    loggers::get_instance().log_msg(">>> fx__enc__EtsiTs103759Data: ", p_etsi_ts_102941_data);

    etsi_ts103759_data_codec codec;
    OCTETSTRING              os;
    if (codec.encode(p_etsi_ts_102941_data, os) == -1) {
      loggers::get_instance().warning("fx__enc__EtsiTs103759Data: -1 result code was returned");
      return int2bit(0, 1);
    }

    return oct2bit(os);
  }

  INTEGER fx__dec__EtsiTs103759Data(BITSTRING &b, EtsiTs103759Core::EtsiTs103759Data &p_etsi_ts_102941_data) {
    loggers::get_instance().log_msg(">>> fx__dec__EtsiTs103759Data: ", b);

    etsi_ts103759_data_codec codec;
    OCTETSTRING              is = bit2oct(b);
    if (codec.decode(is, p_etsi_ts_102941_data) == -1) {
      loggers::get_instance().warning("fx__dec__EtsiTs103759Data: -1 result code was returned");
      return -1;
    }

    return 0;
  }


} // End of namespace LibItsMbr__EncdecDeclarations
+3 −1
Original line number Diff line number Diff line
@@ -11,6 +11,8 @@
#include "uppertester_cam_codec.hh"
#include "uppertester_denm_codec.hh"
#include "uppertester_geonetworking_codec.hh"
#include "uppertester_pki_codec.hh"
#include "uppertester_mbr_codec.hh"
#include "uppertester_ivim_codec.hh"
#include "uppertester_mapem_spatem_codec.hh"

@@ -937,7 +939,7 @@ int ConfigRsuSimulatorLayer::process_ut_mbr_trigger(const OCTETSTRING &data, par
    LibItsMbr__TypesAndValues::UtMbrTrigger p;
    loggers::get_instance().error("ConfigRsuSimulatorLayer::process_ut_mbr_trigger: To be implemented");
    if (msg_id == uppertester_mbr_codec::c_utMbrTriggerIdMbObs) {
      p.idMbObs() = OCTETSTRING(1, 1 + static_cast<const unsigned char *>(data));
      p.idMbObs() = INTEGER(1, 1 + static_cast<const unsigned char *>(data));
    }

    // Pass it to the ports if any
+28 −0
Original line number Diff line number Diff line
#include "etsi_ts103759_data_codec.hh"

#include "loggers.hh"

int etsi_ts103759_data_codec::encode(const EtsiTs103759Core::EtsiTs103759Data &p_etsi_ts_103759_data, OCTETSTRING &p_data) {
  loggers::get_instance().log(">>> etsi_ts103759_data_codec::encode: %s", p_etsi_ts_103759_data.get_descriptor()->name);

  BITSTRING b;
  TTCN_EncDec::clear_error();
  TTCN_Buffer buffer;
  p_etsi_ts_103759_data.encode(*p_etsi_ts_103759_data.get_descriptor(), buffer, TTCN_EncDec::CT_OER);
  p_data = OCTETSTRING(buffer.get_len(), buffer.get_data());
  loggers::get_instance().log_msg("etsi_ts103759_data_codec::encode: ", p_data);

  return 0;
}

int etsi_ts103759_data_codec::decode(const OCTETSTRING &p_data, EtsiTs103759Core::EtsiTs103759Data &p_etsi_ts_103759_data, params *p_params) {
  loggers::get_instance().log_msg(">>> etsi_ts103759_data_codec::decode: ", p_data);

  TTCN_EncDec::clear_error();
  TTCN_Buffer decoding_buffer(p_data);
  //  _params = params;
  p_etsi_ts_103759_data.decode(*p_etsi_ts_103759_data.get_descriptor(), decoding_buffer, TTCN_EncDec::CT_OER);

  loggers::get_instance().log_msg("<<< etsi_ts103759_data_codec::decode: ", (const Base_Type &)p_etsi_ts_103759_data);
  return 0;
}
+15 −0
Original line number Diff line number Diff line
#pragma once

#include "codec_gen.hh"
#include "params.hh"

#include "EtsiTs103759Core.hh"

class etsi_ts103759_data_codec : public codec_gen<EtsiTs103759Core::EtsiTs103759Data, EtsiTs103759Core::EtsiTs103759Data> {
public:
  explicit etsi_ts103759_data_codec() : codec_gen<EtsiTs103759Core::EtsiTs103759Data, EtsiTs103759Core::EtsiTs103759Data>(){};
  virtual ~etsi_ts103759_data_codec(){};

  virtual int encode(const EtsiTs103759Core::EtsiTs103759Data &p_etsi_ts_10291_data, OCTETSTRING &p_data);
  virtual int decode(const OCTETSTRING &p_data, EtsiTs103759Core::EtsiTs103759Data &p_etsi_ts_10291_data, params *p_params = NULL);
}; // End of class etsi_ts103759_data_codec
+1 −1
Original line number Diff line number Diff line
sources := 
sources := etsi_ts103759_data_codec.cc
includes := .
Loading