X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=low-can-binding%2Fbinding%2Fapplication.hpp;h=c445c899ce841329da98976d38c9725ee88cf8f1;hb=HEAD;hp=93494872941082a738442da6de4c82e8589f124a;hpb=985fe9e5689a8c411fdd69d044e5ba4d9e4955bf;p=apps%2Fagl-service-can-low-level.git diff --git a/low-can-binding/binding/application.hpp b/low-can-binding/binding/application.hpp index 93494872..c445c899 100644 --- a/low-can-binding/binding/application.hpp +++ b/low-can-binding/binding/application.hpp @@ -23,17 +23,21 @@ #include #include "../can/can-bus.hpp" -#include "../can/can-message-set.hpp" -#include "../can/can-signals.hpp" +#include "../can/message-set.hpp" +#include "../can/signals.hpp" #include "../diagnostic/diagnostic-manager.hpp" +#ifdef USE_FEATURE_J1939 + #include "../utils/socketcan-j1939/socketcan-j1939-data.hpp" + #include "../utils/socketcan-j1939/socketcan-j1939-addressclaiming.hpp" +#endif /// -/// @brief Class representing a configuration attached to the binding. +/// @brief Class represents a configuration attached to the binding. /// -/// It regroups all needed objects instance from other class -/// that will be used along the binding life. It gets a global vision +/// It regroups all object instances from other classes +/// that will be used through the binding life. It receives a global vision /// on which signals are implemented for that binding. -/// Here, it is only the definition of the class with predefined accessors +/// Here, only the definition of the class is given with predefined accessors /// methods used in the binding. /// /// It will be the reference point to needed objects. @@ -41,47 +45,60 @@ class application_t { private: - can_bus_t can_bus_manager_; ///< instanciate the CAN bus manager. It's the one in charge of initialize the CAN bus devices. + can_bus_t can_bus_manager_; ///< instanciate the CAN bus manager. It's responsible of initializing the CAN bus devices. diagnostic_manager_t diagnostic_manager_; ///< Diagnostic manager use to manage diagnostic message communication. uint8_t active_message_set_ = 0; ///< Which is the active message set ? Default to 0. - std::vector > can_message_set_; ///< Vector holding all message set from JSON signals description file - - std::map > can_devices_; ///< Map containing all independant opened CAN sockets, key is the socket int value. + std::vector > message_set_; ///< Vector holding all message set from JSON signals description file + std::map > can_devices_; ///< Map containing all independant opened CAN sockets, key is the socket int value. +#ifdef USE_FEATURE_J1939 + std::shared_ptr subscription_address_claiming_; ///< Subscription holding the socketcan J1939 which is in charge of handling the address claiming protocol + //std::shared_ptr socket_address_claiming_; +#endif application_t(); ///< Private constructor with implementation generated by the AGL generator. + void set_parents(std::shared_ptr new_message_set); public: static application_t& instance(); can_bus_t& get_can_bus_manager(); - std::map >& get_can_devices(); - - const std::string get_diagnostic_bus() const; + std::map >& get_can_devices(); diagnostic_manager_t& get_diagnostic_manager() ; uint8_t get_active_message_set() const; - std::vector > get_can_message_set(); + int add_message_set(std::shared_ptr new_message_set); - std::vector > get_all_can_signals(); + std::vector > get_message_set(); - std::vector >& get_diagnostic_messages(); + vect_ptr_signal_t get_all_signals(); + + vect_ptr_diag_msg_t get_diagnostic_messages(); const std::vector& get_signals_prefix() const; - std::vector >& get_can_message_definition(); + vect_ptr_msg_def_t get_messages_definition(); + + std::shared_ptr get_message_definition(uint32_t id); uint32_t get_signal_id(diagnostic_message_t& sig) const; - uint32_t get_signal_id(can_signal_t& sig) const; + uint32_t get_signal_id(signal_t& sig) const; - bool isEngineOn(); + bool is_engine_on(); void set_active_message_set(uint8_t id); +#ifdef USE_FEATURE_J1939 + std::shared_ptr get_socket_address_claiming(); + + std::shared_ptr get_subscription_address_claiming(); + + void set_subscription_address_claiming(std::shared_ptr new_subscription); +#endif /* /// TODO: implement this function as method into can_bus class /// @brief Pre initialize actions made before CAN bus initialization @@ -101,4 +118,3 @@ class application_t bool isBusActive(can_bus_dev_t* bus); */ }; -