Commit b524ca1f authored by garciay's avatar garciay
Browse files

STF525: Test AtsCAM, AtsDENM is secured mode

parent bb1cf15e
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -52,6 +52,8 @@ public: //! \publicsection
  static const std::string& longitude;             //! Test system Longitude parameter name
  static const std::string& expiry;                //! Test system GeoNetworking Lifetime parameter name (in ms)
  
  static const std::string& station_id;            //! To indicate to the peer ITS_Container::stationID
  
  static const std::string& device_mode;           //! To indicate to the lower layer to act as a standalone device
  static const std::string& secured_mode;          //! To indicate to the lower layer to apply signature on message exchanges as defined in IEEE 1609.2 & ETSI TS 102 965
  static const std::string& encrypted_mode;        //! To indicate to the lower layer to apply encryption on message exchanges as defined in IEEE 1609.2 & ETSI TS 102 965
+2 −0
Original line number Diff line number Diff line
@@ -45,6 +45,8 @@ const std::string& Params::longitude = std::string("longitude");
const std::string& Params::ll_address = std::string("ll_address");
const std::string& Params::expiry = std::string("expiry");

const std::string& Params::station_id = std::string("station_id");

const std::string& Params::device_mode = std::string("device_mode");
const std::string& Params::secured_mode = std::string("secured_mode");
const std::string& Params::encrypted_mode = std::string("encrypted_mode");
+1 −1
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ public: //! \publicsection
   * \param[in] p_type \todo
   * \param[in] p_param \todo
   */
  http_layer() : Layer(), _params(), _headers(nullptr) {};
  http_layer() : layer(), _params(), _headers(nullptr) {};
  /*!
   * \brief Specialised constructor
   *        Create a new instance of the http_layer class
+37 −15
Original line number Diff line number Diff line
@@ -8,39 +8,61 @@ UpperTesterCamLayer::UpperTesterCamLayer(const std::string & p_type, const std::
  loggers::get_instance().log(">>> UpperTesterCamLayer::UpperTesterCamLayer: %s, %s", to_string().c_str(), param.c_str());
  // Setup parameters
  Params::convert(_params, param);
  Params::const_iterator it = _params.find(Params::loopback);
  if (it == _params.cend()) {
    _params.insert(std::pair<std::string, std::string>(Params::loopback, "0"));
  }
}

void UpperTesterCamLayer::sendMsg(const LibItsCam__TypesAndValues::UtCamInitialize& send_par, Params& params){
  loggers::get_instance().log_msg(">>> UpperTesterCamLayer::sendMsg", send_par);

  if (_params[Params::loopback].compare("1") == 0) {
    LibItsCam__TypesAndValues::UtCamResults ut_cam_results;
    ut_cam_results.utCamInitializeResult() = BOOLEAN(true);
    to_all_upper_ports(ut_cam_results, params);
  } else {
    // Encode UpperTester PDU
    OCTETSTRING data;
    _codec.encode((const Record_Type &)send_par, data);
    // Update parameters
    send_data(data, params);
  }
}

void UpperTesterCamLayer::sendMsg(const LibItsCam__TypesAndValues::UtCamChangePosition& send_par, Params& params)
{
  loggers::get_instance().log_msg(">>> UpperTesterCamLayer::sendMsg", send_par);

  if (_params[Params::loopback].compare("1") == 0) {
    LibItsCam__TypesAndValues::UtCamResults ut_cam_results;
    ut_cam_results.utCamChangePositionResult() = BOOLEAN(true);
    to_all_upper_ports(ut_cam_results, params);
  } else {
    // Encode UpperTester PDU
    OCTETSTRING data;
    _codec.encode((const Record_Type &)send_par, data);
    // Update parameters
    send_data(data, params);
  }
}

void UpperTesterCamLayer::sendMsg(const LibItsCam__TypesAndValues::UtCamTrigger& send_par, Params& params)
{
  loggers::get_instance().log_msg(">>> UpperTesterCamLayer::sendMsg", send_par);

  if (_params[Params::loopback].compare("1") == 0) {
    LibItsCam__TypesAndValues::UtCamResults ut_cam_results;
    ut_cam_results.utCamTriggerResult() = BOOLEAN(true);
    to_all_upper_ports(ut_cam_results, params);
  } else {
    // Encode UpperTester PDU
    OCTETSTRING data;
    _codec.encode(send_par, data);
    // Update parameters
    send_data(data, params);
  }
}

void UpperTesterCamLayer::send_data(OCTETSTRING& data, Params& params) {
  loggers::get_instance().log_msg(">>> UpperTesterCamLayer::send_data: ", data);
+77 −30
Original line number Diff line number Diff line
@@ -8,72 +8,119 @@ UpperTesterDenmLayer::UpperTesterDenmLayer(const std::string & p_type, const std
  loggers::get_instance().log(">>> UpperTesterDenmLayer::UpperTesterDenmLayer: %s, %s", to_string().c_str(), param.c_str());
  // Setup parameters
  Params::convert(_params, param);
  Params::const_iterator it = _params.find(Params::loopback);
  if (it == _params.cend()) {
    _params.insert(std::pair<std::string, std::string>(Params::loopback, "0"));
  }
  it = _params.find(Params::station_id);
  if (it == _params.cend()) {
    _params.insert(std::pair<std::string, std::string>(Params::station_id, "12345"));
  }
}

void UpperTesterDenmLayer::sendMsg(const LibItsDenm__TypesAndValues::UtDenmInitialize& send_par, Params& params){
  loggers::get_instance().log_msg(">>> UpperTesterDenmLayer::sendMsg", send_par);

  if (_params[Params::loopback].compare("1") == 0) {
    LibItsDenm__TypesAndValues::UtDenmResults ut_denm_results;
    ut_denm_results.utDenmInitializeResult() = BOOLEAN(true);
    to_all_upper_ports(ut_denm_results, params);
  } else {
    // Encode UpperTester PDU
    OCTETSTRING data;
    _codec.encode((const Record_Type &)send_par, data);
    // Update parameters
    send_data(data, params);
  }
}

void UpperTesterDenmLayer::sendMsg(const LibItsDenm__TypesAndValues::UtDenmChangePosition& send_par, Params& params)
{
  loggers::get_instance().log_msg(">>> UpperTesterDenmLayer::sendMsg", send_par);

  if (_params[Params::loopback].compare("1") == 0) {
    LibItsDenm__TypesAndValues::UtDenmResults ut_denm_results;
    ut_denm_results.utDenmChangePositionResult() = BOOLEAN(true);
    to_all_upper_ports(ut_denm_results, params);
  } else {
    // Encode UpperTester PDU
    OCTETSTRING data;
    _codec.encode((const Record_Type &)send_par, data);
    // Update parameters
    send_data(data, params);
  }
}

void UpperTesterDenmLayer::sendMsg(const LibItsDenm__TypesAndValues::UtDenmChangePseudonym& send_par, Params& params)
{
  loggers::get_instance().log_msg(">>> UpperTesterDenmLayer::sendMsg", send_par);

  if (_params[Params::loopback].compare("1") == 0) {
    LibItsDenm__TypesAndValues::UtDenmResults ut_denm_results;
    ut_denm_results.utDenmChangePseudonymResult() = BOOLEAN(true);
    to_all_upper_ports(ut_denm_results, params);
  } else {
    // Encode UpperTester PDU
    OCTETSTRING data;
    _codec.encode((const Record_Type &)send_par, data);
    // Update parameters
    send_data(data, params);
  }
}

void UpperTesterDenmLayer::sendMsg(const LibItsDenm__TypesAndValues::UtDenmTrigger& send_par, Params& params)
{
  loggers::get_instance().log_msg(">>> UpperTesterDenmLayer::sendMsg", send_par);

  if (_params[Params::loopback].compare("1") == 0) {
    LibItsDenm__TypesAndValues::UtDenmTriggerResult trigger_result(true, ITS__Container::ActionID(std::stoi(_params[Params::station_id]), 1));
    LibItsDenm__TypesAndValues::UtDenmResults ut_denm_results;
    ut_denm_results.utDenmTriggerResult() = trigger_result;
    to_all_upper_ports(ut_denm_results, params);
  } else {
    // Encode UpperTester PDU
    OCTETSTRING data;
    _codec.encode((const Record_Type &)send_par, data);
    // Update parameters
    send_data(data, params);
  }
}


void UpperTesterDenmLayer::sendMsg(const LibItsDenm__TypesAndValues::UtDenmUpdate& send_par, Params& params)
{
  loggers::get_instance().log_msg(">>> UpperTesterDenmLayer::sendMsg", send_par);

  if (_params[Params::loopback].compare("1") == 0) {
    LibItsDenm__TypesAndValues::UtDenmUpdateResult update_result(true, ITS__Container::ActionID(std::stoi(_params[Params::station_id]), 1));
    LibItsDenm__TypesAndValues::UtDenmResults ut_denm_results;
    ut_denm_results.utDenmUpdateResult() = update_result;
    to_all_upper_ports(ut_denm_results, params);
  } else {
    // Encode UpperTester PDU
    OCTETSTRING data;
    _codec.encode((const Record_Type &)send_par, data);
    // Update parameters
    send_data(data, params);
  }
}

void UpperTesterDenmLayer::sendMsg(const LibItsDenm__TypesAndValues::UtDenmTermination& send_par, Params& params)
{
  loggers::get_instance().log_msg(">>> UpperTesterDenmLayer::sendMsg", send_par);

  if (_params[Params::loopback].compare("1") == 0) {
    LibItsDenm__TypesAndValues::UtDenmResults ut_denm_results;
    ut_denm_results.utDenmTerminationResult() = BOOLEAN(true);
    to_all_upper_ports(ut_denm_results, params);
  } else {
    // Encode UpperTester PDU
    OCTETSTRING data;
    _codec.encode((const Record_Type &)send_par, data);
    // Update parameters
    send_data(data, params);
  }
}

void UpperTesterDenmLayer::send_data(OCTETSTRING& data, Params& params) {
  loggers::get_instance().log_msg(">>> UpperTesterDenmLayer::send_data: ", data);