Commit e0bda735 authored by YannGarcia's avatar YannGarcia
Browse files

Bug fixed in Layers

parent 09a4180b
Loading
Loading
Loading
Loading
+18 −14
Original line number Diff line number Diff line
@@ -31,20 +31,22 @@ btp_layer::btp_layer(const std::string &p_type, const std::string &param)
  }
}

void btp_layer::sendMsg(const LibItsBtp__TypesAndValues::BtpReq &p, params_its &params) {
void btp_layer::sendMsg(const LibItsBtp__TypesAndValues::BtpReq &p, params &p_params) {
  loggers::get_instance().log(">>> btp_layer::sendMsg");
  // params.log();

  // Encode BTP PDU
  OCTETSTRING data;
  _codec.encode(p.msgOut(), data);
  send_data(data, params);
  send_data(data, p_params);
}

void btp_layer::send_data(OCTETSTRING &data, params_its &params) {
void btp_layer::send_data(OCTETSTRING &data, params &p_params) {
  loggers::get_instance().log_msg(">>> btp_layer::send_data: ", data);
  params.log();  // TODO To be removed
  _params.log(); // TODO To be removed
  //p_params.log();  // TODO To be removed
  //_params.log(); // TODO To be removed

  params_its &params = static_cast<params_its&>(p_params);

  if (_device_mode) {
    LibItsBtp__TypesAndValues::BtpHeader header;
@@ -79,32 +81,34 @@ void btp_layer::send_data(OCTETSTRING &data, params_its &params) {
  send_to_all_layers(data, params);
}

void btp_layer::receive_data(OCTETSTRING &data, params_its &p_params) {
void btp_layer::receive_data(OCTETSTRING &data, params &p_params) {
  loggers::get_instance().log_msg(">>> btp_layer::receive_data: ", data);
  //p_params.log();

  // Decode the payload
  params_its &params = static_cast<params_its&>(p_params);
  LibItsBtp__TypesAndValues::BtpInd p;
  loggers::get_instance().log("btp_layer::receive_data: Looking for %s", params_its::gn_next_header.c_str());
  params_its::const_iterator it = p_params.find(params_its::gn_next_header);
  if (it != p_params.cend()) {
  params_its::const_iterator it = params.find(params_its::gn_next_header);
  if (it != params.cend()) {
    loggers::get_instance().log("btp_layer::receive_data: Call set_btp_type with %s/%d", it->second.c_str(),
                                (it->second.compare("2") == 0) ? btp_codec::btpB : btp_codec::btpA);
    _codec.set_btp_type((it->second.compare("2") == 0) ? btp_codec::btpB : btp_codec::btpA);
  }
  _codec.decode(data, p.msgIn(), &p_params);
  _codec.decode(data, p.msgIn(), &params);

  // Pass the BTP raw payload to the upper layers if any
  it = p_params.find(params_its::btp_payload);
  if (it != p_params.cend()) {
  it = params.find(params_its::btp_payload);
  if (it != params.cend()) {
    loggers::get_instance().log("btp_layer::receive_data: btp_payload=%s", it->second.c_str());
    OCTETSTRING os(str2oct(CHARSTRING(it->second.c_str())));
    receive_to_all_layers(os, p_params);
    receive_to_all_layers(os, params);
  } else {
    loggers::get_instance().warning("btp_layer::receive_data: No payload to pass to upper layers");
  }
  // Pass it to the ports if any
  // p_params.log();
  to_all_upper_ports(p, static_cast<const params&>(p_params));
  // params.log();
  to_all_upper_ports(p, p_params);
}

btp_layer_factory btp_layer_factory::_f;
+3 −3
Original line number Diff line number Diff line
@@ -48,7 +48,7 @@ public: //! \publicsection
   * \param[in] p_btp_req The BTP message to be sent
   * \param[in] p_params Some parameters to overwrite default value of the lower layers parameters
   */
  void sendMsg(const LibItsBtp__TypesAndValues::BtpReq &p_btp_req, params_its &p_param);
  void sendMsg(const LibItsBtp__TypesAndValues::BtpReq &p_btp_req, params &p_params);

  /*!
   * \virtual
@@ -57,7 +57,7 @@ public: //! \publicsection
   * \param[in] p_data The data to be sent
   * \param[in] p_params Some parameters to overwrite default value of the lower layers parameters
   */
  virtual void send_data(OCTETSTRING &data, params_its &params);
  virtual void send_data(OCTETSTRING &data, params& p_params);
  /*!
   * \virtual
   * \fn void receive_data(OCTETSTRING& data, params& params);
@@ -65,5 +65,5 @@ public: //! \publicsection
   * \param[in] p_data The bytes formated data received
   * \param[in] p_params Some lower layers parameters values when data was received
   */
  virtual void receive_data(OCTETSTRING &data, params_its &info);
  virtual void receive_data(OCTETSTRING &data, params& p_params);
}; // End of class btp_layer
+5 −3
Original line number Diff line number Diff line
@@ -34,13 +34,13 @@ void cam_layer::sendMsg(const LibItsCam__TypesAndValues::CamReq &p, params_its &
  send_data(data, _params);
}

void cam_layer::send_data(OCTETSTRING &data, params_its &params) {
void cam_layer::send_data(OCTETSTRING &data, params &p_params) {
  loggers::get_instance().log_msg(">>> cam_layer::send_data: ", data);

  send_to_all_layers(data, params);
  send_to_all_layers(data, p_params);
}

void cam_layer::receive_data(OCTETSTRING &data, params_its &params) {
void cam_layer::receive_data(OCTETSTRING &data, params &p_params) {
  loggers::get_instance().log_msg(">>> cam_layer::receive_data: ", data);

  // Sanity check
@@ -51,6 +51,8 @@ void cam_layer::receive_data(OCTETSTRING &data, params_its &params) {
  }

  // Decode the payload
  params_its &params = static_cast<params_its&>(p_params);

  LibItsCam__TypesAndValues::CamInd p;
  _codec.decode(data, p.msgIn());
  if (!p.msgIn().is_bound()) {
+2 −2
Original line number Diff line number Diff line
@@ -59,7 +59,7 @@ public: //! \publicsection
   * \param[in] p_data The data to be sent
   * \param[in] p_params Some parameters to overwrite default value of the lower layers parameters
   */
  virtual void send_data(OCTETSTRING &data, params_its &params);
  virtual void send_data(OCTETSTRING &data, params &params);
  /*!
   * \virtual
   * \fn void receive_data(OCTETSTRING& data, params& params);
@@ -67,7 +67,7 @@ public: //! \publicsection
   * \param[in] p_data The bytes formated data received
   * \param[in] p_params Some lower layers parameters values when data was received
   */
  virtual void receive_data(OCTETSTRING &data, params_its &info);
  virtual void receive_data(OCTETSTRING &data, params &info);

  int enable_secured_mode(const std::string &p_certificate_id, const boolean p_enforce_security);

+5 −3
Original line number Diff line number Diff line
@@ -32,13 +32,13 @@ void denm_layer::sendMsg(const LibItsDenm__TypesAndValues::DenmReq &p, params_it
  send_data(data, _params);
}

void denm_layer::send_data(OCTETSTRING &data, params_its &params) {
void denm_layer::send_data(OCTETSTRING &data, params &p_params) {
  loggers::get_instance().log_msg(">>> denm_layer::send_data: ", data);
  // params.log();
  send_to_all_layers(data, params);
  send_to_all_layers(data, p_params);
}

void denm_layer::receive_data(OCTETSTRING &data, params_its &params) {
void denm_layer::receive_data(OCTETSTRING &data, params &p_params) {
  loggers::get_instance().log_msg(">>> denm_layer::receive_data: ", data);

  // Sanity check
@@ -49,6 +49,8 @@ void denm_layer::receive_data(OCTETSTRING &data, params_its &params) {
  }

  // Decode the payload
  params_its &params = static_cast<params_its&>(p_params);

  LibItsDenm__TypesAndValues::DenmInd p;
  _codec.decode(data, p.msgIn());
  if (!p.msgIn().is_bound()) {
Loading