X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fcan-bus.hpp;h=991bf62c652de77e6439d86bb79d90d7967fcd5a;hb=5800150cb6611075b712c0104773335550dd66e6;hp=302514d89ec702f8eacd5ca84453366633468b2f;hpb=2e93fc880e497ac553111ba27f2de4b44ea94027;p=apps%2Fagl-service-can-low-level.git diff --git a/src/can-bus.hpp b/src/can-bus.hpp index 302514d8..991bf62c 100644 --- a/src/can-bus.hpp +++ b/src/can-bus.hpp @@ -36,6 +36,8 @@ #define CAN_ACTIVE_TIMEOUT_S 30 +class can_bus_dev_t; + /** * @class can_bus_t * @brief Object used to handle decoding and manage event queue to be pushed. @@ -81,6 +83,8 @@ class can_bus_t { bool has_vehicle_message_; /*!< boolean members that control whether or not there is openxc_VehicleMessage into the queue */ std::queue vehicle_message_q_; /*!< queue that'll store openxc_VehicleMessage to pushed */ + std::map> can_devices_m_; /*!< Can device map containing all can_bus_dev_t objects initialized during init_can_dev function*/ + public: /** * @brief Class constructor @@ -88,7 +92,7 @@ class can_bus_t { * @param struct afb_binding_interface *interface between daemon and binding * @param int file handle to the json configuration file. */ - can_bus_t(int& conf_file); + can_bus_t(int conf_file); /** * @brief Will initialize can_bus_dev_t objects after reading @@ -152,11 +156,17 @@ class can_bus_t { void push_new_can_message(const can_message_t& can_msg); /** - * @brief Return a boolean telling if there is any can_message into the queue + * @brief return can_message_mutex_ member * - * @return true if there is at least a can_message_t, false if not. + * @return return can_message_mutex_ member */ std::mutex& get_can_message_mutex(); + + /** + * @brief return new_can_message_ member + * + * @return return new_can_message_ member + */ std::condition_variable& get_new_can_message(); @@ -173,8 +183,16 @@ class can_bus_t { * @param the const reference openxc_VehicleMessage object to push into the queue */ void push_new_vehicle_message(const openxc_VehicleMessage& v_msg); + + /** + * @brief Return a map with the can_bus_dev_t initialized + * + * @return map can_bus_dev_m_ map + */ + std::map> get_can_devices(); }; + /** * @class can_bus_dev_t * @@ -264,13 +282,7 @@ class can_bus_dev_t { int send_can_message(can_message_t& can_msg); }; -/** - * @brief Return an array of the metadata for the 2 CAN buses you want to - * monitor. The size of this array is fixed at 2. - */ -can_bus_dev_t getCanBuses(); - -/** +/** TODO: implement this function as method into can_bus class * @fn void pre_initialize(can_bus_dev_t* bus, bool writable, can_bus_dev_t* buses, const int busCount); * @brief Pre initialize actions made before CAN bus initialization * @@ -282,7 +294,7 @@ can_bus_dev_t getCanBuses(); */ void pre_initialize(can_bus_dev_t* bus, bool writable, can_bus_dev_t* buses, const int busCount); -/** +/** TODO: implement this function as method into can_bus class * @fn void post_initialize(can_bus_dev_t* bus, bool writable, can_bus_dev_t* buses, const int busCount); * @brief Post-initialize actions made after CAN bus initialization * @@ -294,7 +306,7 @@ void pre_initialize(can_bus_dev_t* bus, bool writable, can_bus_dev_t* buses, con */ void post_initialize(can_bus_dev_t* bus, bool writable, can_bus_dev_t* buses, const int busCount); -/** +/** TODO: implement this function as method into can_bus class * @fn bool isBusActive(can_bus_dev_t* bus); * @brief Check if the device is connected to an active CAN bus, i.e. it's * received a message in the recent past. @@ -304,31 +316,12 @@ void post_initialize(can_bus_dev_t* bus, bool writable, can_bus_dev_t* buses, co */ bool isBusActive(can_bus_dev_t* bus); -/** +/** TODO: implement this function as method into can_bus class + * * @fn void logBusStatistics(can_bus_dev_t* buses, const int busCount); * @brief Log transfer statistics about all active CAN buses to the debug log. * * @param[in] buses - an array of active CAN buses. * @param[in] busCount - the length of the buses array. */ -void logBusStatistics(can_bus_dev_t* buses, const int busCount); - -/** - * @fn void can_decode_message(can_bus_t& can_bus); - * - * @brief Thread function used to decode can messages read into the can_message_q_ - * - * @param[in] can_bus_t object used to pop can_message_q_ queue and fill decoded message - * into vehicle_message_q_ queue. - */ -void can_decode_message(can_bus_t& can_bus); - -/** - * @fn void can_decode_message(can_bus_t& can_bus); - * - * @brief Thread function used to push afb_event - * - * @param[in] can_bus_t object used to pop can_message_q_ queue and fill decoded message - * into vehicle_message_q_ queue. - */ -void can_event_push(can_bus_t& can_bus); \ No newline at end of file +void logBusStatistics(can_bus_dev_t* buses, const int busCount); \ No newline at end of file