#include "can-signals.hpp"
#include "can-message.hpp"
#include "can-bus-dev.hpp"
+#include "../obd2/active-diagnostic-request.hpp"
#include "../low-can-binding.hpp"
void can_decode_message();
std::thread th_decoding_; /// < thread that'll handle decoding a can frame
- bool is_decoding_; /// < boolean member controling thread while loop
+ bool is_decoding_ = false; /// < boolean member controling thread while loop
void can_event_push();
std::thread th_pushing_; /// < thread that'll handle pushing decoded can frame to subscribers
- bool is_pushing_; /// < boolean member controling thread while loop
+ bool is_pushing_ = false; /// < boolean member controling thread while loop
std::condition_variable new_can_message_cv_; /// < condition_variable use to wait until there is a new CAN message to read
std::mutex can_message_mutex_; /// < mutex protecting the can_message_q_ queue.
std::condition_variable new_decoded_can_message_; /// < condition_variable use to wait until there is a new vehicle message to read from the queue vehicle_message_q_
std::mutex decoded_can_message_mutex_; /// < mutex protecting the vehicle_message_q_ queue.
- std::queue <openxc_VehicleMessage> vehicle_message_q_; /// < queue that'll store openxc_VehicleMessage to pushed
+ std::queue <openxc_VehicleMessage> vehicle_message_q_; /// < queue that'll store openxc_VehicleMessage to pushed
std::vector<std::shared_ptr<can_bus_dev_t>> can_devices_; /// < Can device map containing all can_bus_dev_t objects initialized during init_can_dev function
void start_threads();
void stop_threads();
+ int process_can_signals(can_message_t& can_message);
+ int process_diagnostic_signals(active_diagnostic_request_t* adr, const can_message_t& can_message);
+
can_message_t next_can_message();
void push_new_can_message(const can_message_t& can_msg);
std::mutex& get_can_message_mutex();
const std::vector<std::shared_ptr<can_bus_dev_t>>& get_can_devices() const;
};
-