Commit 492e26e9 authored by YannGarcia's avatar YannGarcia
Browse files

First build of AtsMBR

parent 856557d6
Loading
Loading
Loading
Loading
+63 −2
Original line number Diff line number Diff line
@@ -185,6 +185,36 @@ void ConfigRsuSimulatorLayer::sendMsg(const LibItsPki__TypesAndValues::UtPkiTrig
  send_data(os, params);
}

void ConfigRsuSimulatorLayer::sendMsg(const LibItsMbr__TypesAndValues::UtMbrResults &send_par, params &params) {
  loggers::get_instance().log_msg(">>> ConfigRsuSimulatorLayer::sendMsg: ", send_par);

  TTCN_Buffer encoding_buffer;
  if (send_par.ischosen(LibItsMbr__TypesAndValues::UtMbrResults::ALT_utMbrInitializeResult)) {
    encoding_buffer.put_c(static_cast<const unsigned char>(uppertester_mbr_codec::c_utMbrInitializeResult));
    encoding_buffer.put_c((unsigned char)static_cast<const boolean>(send_par.utMbrInitializeResult()));
  } else if (send_par.ischosen(LibItsMbr__TypesAndValues::UtMbrResults::ALT_utMbrTriggerResult)) {
    encoding_buffer.put_c(static_cast<const unsigned char>(uppertester_mbr_codec::c_utMbrTriggerResult));
    encoding_buffer.put_c((unsigned char)static_cast<const boolean>(send_par.utMbrTriggerResult()));
  } else {
    loggers::get_instance().warning("ConfigRsuSimulatorLayer::sendMsg: Unsupported UtMbrResults variant");
    return;
  }

  OCTETSTRING os(encoding_buffer.get_len(), encoding_buffer.get_data());
  send_data(os, params);
}

void ConfigRsuSimulatorLayer::sendMsg(const LibItsMbr__TypesAndValues::UtMbrEventInd &send_par, params &params) {
  loggers::get_instance().log_msg(">>> ConfigRsuSimulatorLayer::sendMsg: ", send_par);

  TTCN_Buffer encoding_buffer;
  encoding_buffer.put_c(static_cast<const unsigned char>(uppertester_mbr_codec::c_utMbrEventInd));
  encoding_buffer.put_c(static_cast<const unsigned char>(send_par.state()));

  OCTETSTRING os(encoding_buffer.get_len(), encoding_buffer.get_data());
  send_data(os, params);
}

void ConfigRsuSimulatorLayer::sendMsg(const LibItsIvim__TypesAndValues::UtIvimResults &send_par, params &params) {
  loggers::get_instance().log_msg(">>> ConfigRsuSimulatorLayer::sendMsg: ", send_par);

@@ -423,6 +453,8 @@ void ConfigRsuSimulatorLayer::receive_data(OCTETSTRING &data, params &params) {
  } else if ((id == uppertester_pki_codec::c_utPkiTriggerEnrolmentRequest) ||
             (id == uppertester_pki_codec::c_utPkiTriggerAuthorizationRequest)) { // Receive an UtPkiTrigger
    process_ut_pki_trigger(data, params);
  } else if (id == uppertester_mbr_codec::c_utMbrTriggerIdMbObs) { // Receive an UtMbrTrigger
    process_ut_mbr_trigger(data, params);
  } else {
    loggers::get_instance().warning("ConfigRsuSimulatorLayer::receive_data: Unsupported tag %02x", id);
  }
@@ -854,9 +886,9 @@ int ConfigRsuSimulatorLayer::process_ut_pki_trigger(const OCTETSTRING &data, par

  if (_params[std::string("ut")].compare("pki") == 0) {
    unsigned char msg_id = *static_cast<const unsigned char *>(data);
    loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_geonetworking_trigger: msg_id=%02x", msg_id);
    loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_mbr_trigger: msg_id=%02x", msg_id);
    OCTETSTRING payload(data.lengthof() - 1, 1 + static_cast<const unsigned char *>(data));
    loggers::get_instance().log_msg("ConfigRsuSimulatorLayer::process_ut_geonetworking_trigger: payload:", payload);
    loggers::get_instance().log_msg("ConfigRsuSimulatorLayer::process_ut_mbr_trigger: payload:", payload);
    TTCN_EncDec::clear_error();
    TTCN_Buffer decoding_buffer(payload);

@@ -889,6 +921,35 @@ int ConfigRsuSimulatorLayer::process_ut_pki_trigger(const OCTETSTRING &data, par
  return 0;
}

int ConfigRsuSimulatorLayer::process_ut_mbr_trigger(const OCTETSTRING &data, params &params) {
  loggers::get_instance().log(">>> ConfigRsuSimulatorLayer::process_ut_mbr_trigger");

  params::const_iterator it = _params.find("ut");
  if (it == _params.cend()) {
    loggers::get_instance().warning("ConfigRsuSimulatorLayer::process_ut_mbr_trigger: CF layer's ut parameter is missing");
    return -1;
  }

  if (_params[std::string("ut")].compare("mbr") == 0) {
    unsigned char msg_id = *static_cast<const unsigned char *>(data);
    loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_mbr_trigger: msg_id=%02x", msg_id);

    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));
    }

    // Pass it to the ports if any
    to_all_upper_ports(p, params);
  } else {
    loggers::get_instance().warning("ConfigRsuSimulatorLayer::process_ut_mbr_trigger: Unsupported protocol");
    return -1;
  }

  return 0;
}

int ConfigRsuSimulatorLayer::process_ut_mapem_spatem_trigger(const OCTETSTRING &data, params &params) {
  loggers::get_instance().log_msg(">>> ConfigRsuSimulatorLayer::process_ut_mapem_spatem_trigger", data);

+3 −0
Original line number Diff line number Diff line
@@ -45,6 +45,8 @@ public:
  void sendMsg(const LibItsDenm__TypesAndValues::UtDenmEventInd &send_par, params &params);
  void sendMsg(const LibItsPki__TypesAndValues::UtPkiResults &send_par, params &params);
  void sendMsg(const LibItsPki__TypesAndValues::UtPkiTriggerInd &send_par, params &params);
  void sendMsg(const LibItsMbr__TypesAndValues::UtMbrResults &send_par, params &params);
  void sendMsg(const LibItsMbr__TypesAndValues::UtMbrEventInd &send_par, params &params);
  void sendMsg(const LibItsIvim__TypesAndValues::UtIvimResults &send_par, params &params);
  void sendMsg(const LibItsIvim__TypesAndValues::UtIvimEventInd &send_par, params &params);
  void sendMsg(const LibItsMapemSpatem__TypesAndValues::UtMapemSpatemResults &send_par, params &params);
@@ -70,6 +72,7 @@ private:
  int process_ut_denm_termination(const OCTETSTRING &data, params &params);
  int process_ut_geonetworking_trigger(const OCTETSTRING &data, params &params);
  int process_ut_pki_trigger(const OCTETSTRING &data, params &params);
  int process_ut_mbr_trigger(const OCTETSTRING &data, params &params);
  int process_ut_ivim_trigger(const OCTETSTRING &data, params &params);
  int process_ut_ivim_update(const OCTETSTRING &data, params &params);
  int process_ut_ivim_termination(const OCTETSTRING &data, params &params);
+38 −0
Original line number Diff line number Diff line
@@ -153,6 +153,24 @@ namespace ItsRSUsSimulator__TestSystem {
    loggers::get_instance().set_stop_time(_time_key, duration);
  }

  void ConfigRsuSimulatorPort::outgoing_send(const LibItsMbr__TypesAndValues::UtMbrResults &send_par) {
    loggers::get_instance().log_msg(">>> ConfigRsuSimulatorPort::outgoing_send: payload=", send_par);

    float duration;
    loggers::get_instance().set_start_time(_time_key);
    static_cast<ConfigRsuSimulatorLayer *>(_layer)->sendMsg(send_par, _layer_params);
    loggers::get_instance().set_stop_time(_time_key, duration);
  }

  void ConfigRsuSimulatorPort::outgoing_send(const LibItsMbr__TypesAndValues::UtMbrEventInd &send_par) {
    loggers::get_instance().log_msg(">>> ConfigRsuSimulatorPort::outgoing_send: payload=", send_par);

    float duration;
    loggers::get_instance().set_start_time(_time_key);
    static_cast<ConfigRsuSimulatorLayer *>(_layer)->sendMsg(send_par, _layer_params);
    loggers::get_instance().set_stop_time(_time_key, duration);
  }

  void ConfigRsuSimulatorPort::outgoing_send(const LibItsIvim__TypesAndValues::UtIvimResults &send_par) {
    loggers::get_instance().log_msg(">>> ConfigRsuSimulatorPort::outgoing_send: payload=", send_par);

@@ -353,6 +371,26 @@ namespace ItsRSUsSimulator__TestSystem {
    incoming_message(p_ind);
  }

  void ConfigRsuSimulatorPort::receiveMsg(const LibItsMbr__TypesAndValues::UtMbrInitialize &p_ind, const params &p_params) {
    loggers::get_instance().log_msg(">>> ConfigRsuSimulatorPort::receive_msg: ", p_ind);
    // Sanity check
    if (!p_ind.is_bound()) {
      return;
    }

    incoming_message(p_ind);
  }

  void ConfigRsuSimulatorPort::receiveMsg(const LibItsMbr__TypesAndValues::UtMbrTrigger &p_ind, const params &p_params) {
    loggers::get_instance().log_msg(">>> ConfigRsuSimulatorPort::receive_msg: ", p_ind);
    // Sanity check
    if (!p_ind.is_bound()) {
      return;
    }

    incoming_message(p_ind);
  }

  void ConfigRsuSimulatorPort::receiveMsg(const LibItsIvim__TypesAndValues::UtIvimInitialize &p_ind, const params &p_params) {
    loggers::get_instance().log_msg(">>> ConfigRsuSimulatorPort::receive_msg: ", p_ind);
    // Sanity check
+4 −0
Original line number Diff line number Diff line
@@ -29,6 +29,8 @@ namespace ItsRSUsSimulator__TestSystem {
    void receiveMsg(const LibItsDenm__TypesAndValues::UtDenmTermination &p_ind, const params &p_params);
    void receiveMsg(const LibItsPki__TypesAndValues::UtPkiInitialize &p_ind, const params &p_params);
    void receiveMsg(const LibItsPki__TypesAndValues::UtPkiTrigger &p_ind, const params &p_params);
    void receiveMsg(const LibItsMbr__TypesAndValues::UtMbrInitialize &p_ind, const params &p_params);
    void receiveMsg(const LibItsMbr__TypesAndValues::UtMbrTrigger &p_ind, const params &p_params);
    void receiveMsg(const LibItsIvim__TypesAndValues::UtIvimInitialize &p_ind, const params &p_params);
    void receiveMsg(const LibItsIvim__TypesAndValues::UtIvimTrigger &p_ind, const params &p_params);
    void receiveMsg(const LibItsIvim__TypesAndValues::UtIvimUpdate &p_ind, const params &p_params);
@@ -82,6 +84,8 @@ namespace ItsRSUsSimulator__TestSystem {
    void outgoing_send(const LibItsDenm__TypesAndValues::UtDenmEventInd &send_par);
    void outgoing_send(const LibItsPki__TypesAndValues::UtPkiResults &send_par);
    void outgoing_send(const LibItsPki__TypesAndValues::UtPkiTriggerInd &send_par);
    void outgoing_send(const LibItsMbr__TypesAndValues::UtMbrResults &send_par);
    void outgoing_send(const LibItsMbr__TypesAndValues::UtMbrEventInd &send_par);
    void outgoing_send(const LibItsIvim__TypesAndValues::UtIvimResults &send_par);
    void outgoing_send(const LibItsIvim__TypesAndValues::UtIvimEventInd &send_par);
    void outgoing_send(const LibItsMapemSpatem__TypesAndValues::UtMapemSpatemResults &send_par);
+2 −0
Original line number Diff line number Diff line
sources := 
includes := .
Loading