Several style errors and mistakes mostly on constructor and passing arguments
as ref.
Change-Id: I2ca921d6aa70b9074392bb7779ade35bebf7bd8d
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
18 files changed:
-std::shared_ptr<diagnostic_message_t> configuration_t::get_diagnostic_message(std::string message_name) const
+std::shared_ptr<diagnostic_message_t> configuration_t::get_diagnostic_message(const std::string& message_name) const
{
struct utils::signals_found found;
found = utils::signals_manager_t::instance().find_signals(build_DynamicField(message_name));
{
struct utils::signals_found found;
found = utils::signals_manager_t::instance().find_signals(build_DynamicField(message_name));
-DiagnosticRequest* configuration_t::get_request_from_diagnostic_message(std::string message_name) const
+DiagnosticRequest* configuration_t::get_request_from_diagnostic_message(const std::string& message_name) const
{
std::shared_ptr<diagnostic_message_t> diag_msg = get_diagnostic_message(message_name);
if( diag_msg != nullptr && diag_msg->get_supported())
{
std::shared_ptr<diagnostic_message_t> diag_msg = get_diagnostic_message(message_name);
if( diag_msg != nullptr && diag_msg->get_supported())
void set_active_message_set(uint8_t id);
void set_active_message_set(uint8_t id);
- std::shared_ptr<diagnostic_message_t> get_diagnostic_message(std::string message_name) const;
- DiagnosticRequest* get_request_from_diagnostic_message(std::string message_name) const;
+ std::shared_ptr<diagnostic_message_t> get_diagnostic_message(const std::string& message_name) const;
+ DiagnosticRequest* get_request_from_diagnostic_message(const std::string& message_name) const;
/*
/// TODO: implement this function as method into can_bus class
/// @brief Pre initialize actions made before CAN bus initialization
/*
/// TODO: implement this function as method into can_bus class
/// @brief Pre initialize actions made before CAN bus initialization
-static void push_n_notify(const can_message_t cm)
+static void push_n_notify(const can_message_t& cm)
{
can_bus_t& cbm = configuration_t::instance().get_can_bus_manager();
std::lock_guard<std::mutex> can_message_lock(cbm.get_can_message_mutex());
{
can_bus_t& cbm = configuration_t::instance().get_can_bus_manager();
std::lock_guard<std::mutex> can_message_lock(cbm.get_can_message_mutex());
///
static int subscribe_unsubscribe_signals(struct afb_req request, bool subscribe, const struct utils::signals_found& signals)
{
///
static int subscribe_unsubscribe_signals(struct afb_req request, bool subscribe, const struct utils::signals_found& signals)
{
//TODO: Implement way to dynamically call the right function no matter
// how much signals types we have.
//TODO: Implement way to dynamically call the right function no matter
// how much signals types we have.
for(const auto& sig : signals.diagnostic_messages)
{
for(const auto& sig : signals.diagnostic_messages)
{
diagnostic_manager_t& diag_m = conf.get_diagnostic_manager();
DiagnosticRequest* diag_req = conf.get_request_from_diagnostic_message(sig->get_name());
diagnostic_manager_t& diag_m = conf.get_diagnostic_manager();
DiagnosticRequest* diag_req = conf.get_request_from_diagnostic_message(sig->get_name());
args = afb_req_json(request);
if (args == NULL || !json_object_object_get_ex(args, "event", &event))
{
args = afb_req_json(request);
if (args == NULL || !json_object_object_get_ex(args, "event", &event))
{
+ event = json_object_new_string("*");
+ parse_filter(event, &event_filter);
ret["*"] = event_filter;
}
else if (json_object_get_type(event) != json_type_array)
ret["*"] = event_filter;
}
else if (json_object_get_type(event) != json_type_array)
std::vector<std::pair<std::string, std::string> > can_devices_;
public:
std::vector<std::pair<std::string, std::string> > can_devices_;
public:
- can_bus_t(utils::config_parser_t conf_file);
+ explicit can_bus_t(utils::config_parser_t conf_file);
can_bus_t(can_bus_t&&);
void set_can_devices();
can_bus_t(can_bus_t&&);
void set_can_devices();
/// always succeeds.
///
openxc_DynamicField decoder_t::noopDecoder(can_signal_t& signal,
/// always succeeds.
///
openxc_DynamicField decoder_t::noopDecoder(can_signal_t& signal,
- const std::vector<std::shared_ptr<can_signal_t> > signals, float value, bool* send)
+ const std::vector<std::shared_ptr<can_signal_t> >& signals, float value, bool* send)
{
openxc_DynamicField decoded_value = build_DynamicField(value);
{
openxc_DynamicField decoded_value = build_DynamicField(value);
/// decoder always succeeds.
///
openxc_DynamicField decoder_t::booleanDecoder(can_signal_t& signal,
/// decoder always succeeds.
///
openxc_DynamicField decoder_t::booleanDecoder(can_signal_t& signal,
- const std::vector<std::shared_ptr<can_signal_t> > signals, float value, bool* send)
+ const std::vector<std::shared_ptr<can_signal_t> >& signals, float value, bool* send)
{
openxc_DynamicField decoded_value = build_DynamicField(value == 0.0 ? false : true);
{
openxc_DynamicField decoded_value = build_DynamicField(value == 0.0 ? false : true);
/// @return Return value is undefined.
///
openxc_DynamicField decoder_t::ignoreDecoder(can_signal_t& signal,
/// @return Return value is undefined.
///
openxc_DynamicField decoder_t::ignoreDecoder(can_signal_t& signal,
- const std::vector<std::shared_ptr<can_signal_t> > signals, float value, bool* send)
+ const std::vector<std::shared_ptr<can_signal_t> >& signals, float value, bool* send)
{
if(send)
*send = false;
{
if(send)
*send = false;
/// return value is undefined.
///
openxc_DynamicField decoder_t::stateDecoder(can_signal_t& signal,
/// return value is undefined.
///
openxc_DynamicField decoder_t::stateDecoder(can_signal_t& signal,
- const std::vector<std::shared_ptr<can_signal_t> > signals, float value, bool* send)
+ const std::vector<std::shared_ptr<can_signal_t> >& signals, float value, bool* send)
{
const std::string signal_state = signal.get_states((uint8_t)value);
openxc_DynamicField decoded_value = build_DynamicField(signal_state);
{
const std::string signal_state = signal.get_states((uint8_t)value);
openxc_DynamicField decoded_value = build_DynamicField(signal_state);
/// string or boolean.
///
openxc_DynamicField decoder_t::translateSignal(can_signal_t& signal, const can_message_t& message,
/// string or boolean.
///
openxc_DynamicField decoder_t::translateSignal(can_signal_t& signal, const can_message_t& message,
- const std::vector<std::shared_ptr<can_signal_t> > signals, bool* send)
+ const std::vector<std::shared_ptr<can_signal_t> >& signals, bool* send)
{
float value = decoder_t::parseSignalBitfield(signal, message);
DEBUG(binder_interface, "%s: Decoded message from parseSignalBitfield: %f", __FUNCTION__, value);
{
float value = decoder_t::parseSignalBitfield(signal, message);
DEBUG(binder_interface, "%s: Decoded message from parseSignalBitfield: %f", __FUNCTION__, value);
signal.set_received(true);
// Don't send if they is no changes
signal.set_received(true);
// Don't send if they is no changes
- if ((signal.get_last_value() == value && !signal.get_send_same()) || !send )
+ if ((signal.get_last_value() == value && !signal.get_send_same()) || !*send )
/// string or boolean. If 'send' is false, the return value is undefined.
///
openxc_DynamicField decoder_t::decodeSignal( can_signal_t& signal,
/// string or boolean. If 'send' is false, the return value is undefined.
///
openxc_DynamicField decoder_t::decodeSignal( can_signal_t& signal,
- float value, const std::vector<std::shared_ptr<can_signal_t> > signals, bool* send)
+ float value, const std::vector<std::shared_ptr<can_signal_t> >& signals, bool* send)
{
SignalDecoder decoder = signal.get_decoder() == nullptr ?
noopDecoder : signal.get_decoder();
{
SignalDecoder decoder = signal.get_decoder() == nullptr ?
noopDecoder : signal.get_decoder();
/// not be decoded.
///
openxc_DynamicField decoder_t::decodeSignal( can_signal_t& signal,
/// not be decoded.
///
openxc_DynamicField decoder_t::decodeSignal( can_signal_t& signal,
- const can_message_t& message, const std::vector<std::shared_ptr<can_signal_t> > signals, bool* send)
+ const can_message_t& message, const std::vector<std::shared_ptr<can_signal_t> >& signals, bool* send)
{
float value = parseSignalBitfield(signal, message);
return decodeSignal(signal, value, signals, send);
{
float value = parseSignalBitfield(signal, message);
return decodeSignal(signal, value, signals, send);
public:
static float parseSignalBitfield(can_signal_t& signal, const can_message_t& message);
public:
static float parseSignalBitfield(can_signal_t& signal, const can_message_t& message);
- static openxc_DynamicField stateDecoder(can_signal_t& signal, const std::vector<std::shared_ptr<can_signal_t> > signals,
+ static openxc_DynamicField stateDecoder(can_signal_t& signal, const std::vector<std::shared_ptr<can_signal_t> >& signals,
float value, bool* send);
float value, bool* send);
- static openxc_DynamicField booleanDecoder(can_signal_t& signal, const std::vector<std::shared_ptr<can_signal_t> > signals,
+ static openxc_DynamicField booleanDecoder(can_signal_t& signal, const std::vector<std::shared_ptr<can_signal_t> >& signals,
float value, bool* send);
float value, bool* send);
- static openxc_DynamicField ignoreDecoder(can_signal_t& signal, const std::vector<std::shared_ptr<can_signal_t> > signals,
+ static openxc_DynamicField ignoreDecoder(can_signal_t& signal, const std::vector<std::shared_ptr<can_signal_t> >& signals,
float value, bool* send);
float value, bool* send);
- static openxc_DynamicField noopDecoder(can_signal_t& signal, const std::vector<std::shared_ptr<can_signal_t> > signals,
+ static openxc_DynamicField noopDecoder(can_signal_t& signal, const std::vector<std::shared_ptr<can_signal_t> >& signals,
float value, bool* send);
static openxc_DynamicField translateSignal(can_signal_t& signal, const can_message_t& message,
float value, bool* send);
static openxc_DynamicField translateSignal(can_signal_t& signal, const can_message_t& message,
- const std::vector<std::shared_ptr<can_signal_t> > signals, bool* send);
+ const std::vector<std::shared_ptr<can_signal_t> >& signals, bool* send);
static openxc_DynamicField decodeSignal(can_signal_t& signal, const can_message_t& message,
static openxc_DynamicField decodeSignal(can_signal_t& signal, const can_message_t& message,
- const std::vector<std::shared_ptr<can_signal_t> > signals, bool* send);
+ const std::vector<std::shared_ptr<can_signal_t> >& signals, bool* send);
static openxc_DynamicField decodeSignal(can_signal_t& signal, float value,
static openxc_DynamicField decodeSignal(can_signal_t& signal, float value,
- const std::vector<std::shared_ptr<can_signal_t> > signals, bool* send);
+ const std::vector<std::shared_ptr<can_signal_t> >& signals, bool* send);
static float decode_obd2_response(const DiagnosticResponse* response, float parsed_payload);
static float decode_obd2_response(const DiagnosticResponse* response, float parsed_payload);
can_message_set_t::can_message_set_t(
uint8_t index,
can_message_set_t::can_message_set_t(
uint8_t index,
- const std::string name,
+ const std::string& name,
const std::vector<std::shared_ptr<can_message_definition_t> >& can_messages_definition,
const std::vector<std::shared_ptr<diagnostic_message_t> >& diagnostic_messages)
: index_{index}
const std::vector<std::shared_ptr<can_message_definition_t> >& can_messages_definition,
const std::vector<std::shared_ptr<diagnostic_message_t> >& diagnostic_messages)
: index_{index}
public:
can_message_set_t(
uint8_t index,
public:
can_message_set_t(
uint8_t index,
- const std::string name,
+ const std::string& name,
const std::vector<std::shared_ptr<can_message_definition_t> >& can_messages_definition,
const std::vector<std::shared_ptr<diagnostic_message_t> >& diagnostic_messages);
const std::vector<std::shared_ptr<can_message_definition_t> >& can_messages_definition,
const std::vector<std::shared_ptr<diagnostic_message_t> >& diagnostic_messages);
can_message_format_t format,
bool rtr_flag,
uint8_t flags,
can_message_format_t format,
bool rtr_flag,
uint8_t flags,
- std::vector<uint8_t> data,
+ std::vector<uint8_t>& data,
uint64_t timestamp)
: maxdlen_{maxdlen},
id_{id},
uint64_t timestamp)
: maxdlen_{maxdlen},
id_{id},
- can_message_t(uint8_t maxdlen, uint32_t id, uint8_t length, can_message_format_t format, bool rtr_flag_, uint8_t flags, std::vector<uint8_t> data, uint64_t timestamp);
+ can_message_t(uint8_t maxdlen, uint32_t id, uint8_t length, can_message_format_t format, bool rtr_flag_, uint8_t flags, std::vector<uint8_t>& data, uint64_t timestamp);
uint32_t get_id() const;
bool get_rtr_flag_() const;
uint32_t get_id() const;
bool get_rtr_flag_() const;
/// @return a decoded value in an openxc_DynamicField struct.
///
typedef openxc_DynamicField (*SignalDecoder)(can_signal_t& signal,
/// @return a decoded value in an openxc_DynamicField struct.
///
typedef openxc_DynamicField (*SignalDecoder)(can_signal_t& signal,
- const std::vector<std::shared_ptr<can_signal_t> > signals, float value, bool* send);
+ const std::vector<std::shared_ptr<can_signal_t> >& signals, float value, bool* send);
///
/// @brief: The type signature for a CAN signal encoder.
///
/// @brief: The type signature for a CAN signal encoder.
#define MICRO 1000000
diagnostic_manager_t::diagnostic_manager_t()
#define MICRO 1000000
diagnostic_manager_t::diagnostic_manager_t()
+ : initialized_{false}, event_source_{nullptr}
{}
/// @brief Diagnostic manager isn't initialized at launch but after
{}
/// @brief Diagnostic manager isn't initialized at launch but after
vsnprintf(buffer, 256, format, args);
DEBUG(binder_interface, "%s: %s", __FUNCTION__, buffer);
vsnprintf(buffer, 256, format, args);
DEBUG(binder_interface, "%s: %s", __FUNCTION__, buffer);
}
/// @brief The type signature for a... OpenXC TODO: not used yet.
}
/// @brief The type signature for a... OpenXC TODO: not used yet.
if(entry != nullptr)
{
if(diagnostic_request_equals(&entry->get_handle()->request, request))
if(entry != nullptr)
{
if(diagnostic_request_equals(&entry->get_handle()->request, request))
- {
- return entry;
- break;
- }
/// @return true if the request was added successfully. Returns false if there
/// wasn't a free active request entry, if the frequency was too high or if the
/// CAN acceptance filters could not be configured,
/// @return true if the request was added successfully. Returns false if there
/// wasn't a free active request entry, if the frequency was too high or if the
/// CAN acceptance filters could not be configured,
-active_diagnostic_request_t* diagnostic_manager_t::add_request(DiagnosticRequest* request, const std::string name,
+active_diagnostic_request_t* diagnostic_manager_t::add_request(DiagnosticRequest* request, const std::string& name,
bool wait_for_multiple_responses, const DiagnosticResponseDecoder decoder,
const DiagnosticResponseCallback callback)
{
bool wait_for_multiple_responses, const DiagnosticResponseDecoder decoder,
const DiagnosticResponseCallback callback)
{
active_diagnostic_request_t* find_recurring_request(const DiagnosticRequest* request);
// Subscription parts
active_diagnostic_request_t* find_recurring_request(const DiagnosticRequest* request);
// Subscription parts
- active_diagnostic_request_t* add_request(DiagnosticRequest* request, const std::string name,
+ active_diagnostic_request_t* add_request(DiagnosticRequest* request, const std::string& name,
bool waitForMultipleResponses, const DiagnosticResponseDecoder decoder,
const DiagnosticResponseCallback callback);
bool validate_optional_request_attributes(float frequencyHz);
bool waitForMultipleResponses, const DiagnosticResponseDecoder decoder,
const DiagnosticResponseCallback callback);
bool validate_optional_request_attributes(float frequencyHz);
-diagnostic_message_t::diagnostic_message_t(uint8_t pid, const std::string generic_name, const int min,
+diagnostic_message_t::diagnostic_message_t(uint8_t pid, const std::string& generic_name, const int min,
const int max, enum UNIT unit, float frequency, DiagnosticResponseDecoder decoder,
DiagnosticResponseCallback callback, bool supported)
const int max, enum UNIT unit, float frequency, DiagnosticResponseDecoder decoder,
DiagnosticResponseCallback callback, bool supported)
- : pid_{pid}, generic_name_{generic_name}, min_{min}, max_{max}, unit_{unit},
+ : parent_{nullptr}, pid_{pid}, generic_name_{generic_name}, min_{min}, max_{max}, unit_{unit},
frequency_{frequency}, decoder_{decoder}, callback_{callback}, supported_{supported}
{}
frequency_{frequency}, decoder_{decoder}, callback_{callback}, supported_{supported}
{}
public:
const char* generic_name = generic_name_.c_str();
public:
const char* generic_name = generic_name_.c_str();
- diagnostic_message_t(uint8_t pid, const std::string generic_name, const int min, const int max, enum UNIT unit, float frequency,
+ diagnostic_message_t(uint8_t pid, const std::string& generic_name, const int min, const int max, enum UNIT unit, float frequency,
DiagnosticResponseDecoder decoder, DiagnosticResponseCallback callback, bool supported);
uint32_t get_pid();
DiagnosticResponseDecoder decoder, DiagnosticResponseCallback callback, bool supported);
uint32_t get_pid();
public:
config_parser_t(config_parser_t&&) = default;
config_parser_t(const config_parser_t&) = default;
public:
config_parser_t(config_parser_t&&) = default;
config_parser_t(const config_parser_t&) = default;
- config_parser_t(std::string conf_file);
+ explicit config_parser_t(std::string conf_file);
const std::string& filepath() const;
bool check_conf();
const std::string& filepath() const;
bool check_conf();
long long int system_time_us()
{
struct timespec t_usec;
long long int system_time_us()
{
struct timespec t_usec;
- long long int timestamp_usec;
+ long long int timestamp_usec = 0;
if(!::clock_gettime(CLOCK_MONOTONIC, &t_usec))
timestamp_usec = (t_usec.tv_nsec / 1000ll) + (t_usec.tv_sec* 1000000ll);
if(!::clock_gettime(CLOCK_MONOTONIC, &t_usec))
timestamp_usec = (t_usec.tv_nsec / 1000ll) + (t_usec.tv_sec* 1000000ll);
long long int system_time_ms()
{
struct timespec t_msec;
long long int system_time_ms()
{
struct timespec t_msec;
- long long int timestamp_msec;
+ long long int timestamp_msec = 0;
if(!::clock_gettime(CLOCK_MONOTONIC, &t_msec))
timestamp_msec = (t_msec.tv_nsec / 1000000ll) + (t_msec.tv_sec* 1000ll);
if(!::clock_gettime(CLOCK_MONOTONIC, &t_msec))
timestamp_msec = (t_msec.tv_nsec / 1000000ll) + (t_msec.tv_sec* 1000ll);
long long int system_time_s()
{
struct timespec t_sec;
long long int system_time_s()
{
struct timespec t_sec;
- long long int timestamp_sec;
+ long long int timestamp_sec = 0;
if(!::clock_gettime(CLOCK_MONOTONIC, &t_sec))
timestamp_sec = t_sec.tv_sec;
if(!::clock_gettime(CLOCK_MONOTONIC, &t_sec))
timestamp_sec = t_sec.tv_sec;
public:
frequency_clock_t();
public:
frequency_clock_t();
- frequency_clock_t(float frequency);
+ explicit frequency_clock_t(float frequency);
frequency_clock_t(float frequency, uint64_t last_tick, time_function_t time_function);
float get_frequency() const;
frequency_clock_t(float frequency, uint64_t last_tick, time_function_t time_function);
float get_frequency() const;