Commit 6f675d0f authored by YannGarcia's avatar YannGarcia
Browse files

Enhance LEAP delay

parent 9385bd82
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -23,7 +23,8 @@ geonetworking_layer::geonetworking_layer(const std::string &p_type, const std::s
  : t_layer<LibItsGeoNetworking__TestSystem::GeoNetworkingPort>(p_type), _params(), _codec(), _beacon(nullptr), _gbc_packet(nullptr), _shb_packet(nullptr),
    _tsb_packet(nullptr), _uni_packet(nullptr), _ls_reply(nullptr), _location_table(),
    _pass_beacon_table(), _device_mode{false}, _process_packet_handling{false}, _secured_mode{false}, _encrypted_mode{false}, _enable_security_checks{false},
    _sendData(), _timerid{0}, _sev{0}, _its{0}, _freq_nanosecs(0), _mask{0}, _sa{0}, _sequence_number{0}, _latitude{0}, _longitude{0}, _force_certificate{false} {
    _sendData(), _timerid{0}, _sev{0}, _its{0}, _freq_nanosecs(0), _mask{0}, _sa{0}, _sequence_number{0}, _latitude{0}, _longitude{0}, _force_certificate{false},
    _leap_delay_us(4000/*Add 4 leap seconds to convert to TAI (as Feb 2019)*/) {
  loggers::get_instance().log(">>> geonetworking_layer::geonetworking_layer: %s, %s", to_string().c_str(), p_param.c_str());

  init(p_type, p_param);
@@ -139,6 +140,10 @@ void geonetworking_layer::init(const std::string &p_type, const std::string &p_p
  if (it == _params.cend()) {
    _params.insert(std::pair<std::string, std::string>(params_its::its_aid, "FFFFFFFFFFFF"));
  }
  it = _params.find(params_its::leap_delay_us);
  if (it != _params.cend()) {
    _leap_delay_us = std::atoi(it->second);
  }

  // Set up default security parameters value
  if (_secured_mode || _encrypted_mode) {
@@ -166,8 +171,8 @@ void geonetworking_layer::init(const std::string &p_type, const std::string &p_p
  loggers::get_instance().log("geonetworking_layer::init: Register %s/%p", p_type.c_str(), this);
  registration<geonetworking_layer>::get_instance().add_item(p_type, this);

  // Add 4 leap seconds to convert to TAI (as Feb 2019)
  base_time::get_instance().set_leap_delay_us(4 * 1000000); // TODO Set it as parameter
  // Add leap seconds to convert to TAI
  base_time::get_instance().set_leap_delay_us(_leap_delay_us);
} // End of init_params

void geonetworking_layer::sendMsg(const LibItsGeoNetworking__TypesAndValues::GeoNetworkingReq &p, params &p_params) {
+1 −0
Original line number Diff line number Diff line
@@ -73,6 +73,7 @@ class geonetworking_layer : public t_layer<LibItsGeoNetworking__TestSystem::GeoN
  int                                                    _latitude;
  int                                                    _longitude;
  bool                                                   _force_certificate;
  unsigned int                                           _leap_delay_us;

  /*!
   * \brief Create and initialize a BasicHeader object
+2 −0
Original line number Diff line number Diff line
@@ -78,6 +78,8 @@ public: //! \publicsection
  static const std::string& mqtt_protocol;  //! Uu interafce MQTT protocol name
  static const std::string& mqtt_client_id; //! Uu interafce MQTT client identity

  static const std::string& leap_delay_us;  //! Leap seconds to convert to TAI. Default: 4us

  /*!
   * \brief Default constructor
   *        Create a new instance of the params_its class
+13 −11
Original line number Diff line number Diff line
@@ -68,3 +68,5 @@ const std::string& params_its::pc5_layer = std::string("pc5_layer");
const std::string& params_its::mqtt_topics            = std::string("mqtt_topics");
const std::string& params_its::mqtt_protocol          = std::string("mqtt_protocol");
const std::string& params_its::mqtt_client_id         = std::string("mqtt_client_id");

const std::string& params_its::leap_delay_us          = std::string("leap_delay_us");