16#include <unordered_map>
23#include <linux/can/bcm.h>
26#include <sys/socket.h>
30#include <nlohmann/json.hpp>
53 std::unordered_map<std::string, nlohmann::json>
m_canInfo;
60 std::atomic<bool> m_isListening;
Class that handles message listening over a SocketCAN interface.
Definition: can_listener.h:46
pthread_t m_listenCanBusId
Definition: can_listener.h:56
~CanListener()
Destructs a CanListener object.
Definition: can_listener.cc:32
int m_rawCanSocket
Definition: can_listener.h:59
const std::string CAN_JSON_NAME
Definition: can_listener.h:49
const std::string CAN_INTERFACE_NAME
Definition: can_listener.h:48
void updateJSONProcedure()
Thread procedure for updating the global JSON object.
Definition: can_listener.cc:79
static const constexpr unsigned int UPDATE_CAN_JSON_PERIOD_MS
Definition: can_listener.h:51
void listenCanBusProcedure()
Thread procedure for listening to the CAN bus.
Definition: can_listener.cc:36
void canMessageHandler(uint32_t id, const uint8_t *data)
Handles receiving new CAN messages.
Definition: can_message_handler.cc:788
pthread_t m_updateJSONId
Definition: can_listener.h:57
CanListener()
Constructs a CanListener object.
Definition: can_listener.cc:26
std::unordered_map< std::string, nlohmann::json > m_canInfo
Definition: can_listener.h:53
void listenCanBus()
Initiate the CAN Bus listener on a Raw SocketCAN port.
Definition: can_listener.cc:113
pthread_mutex_t m_mutex
Definition: can_listener.h:55