X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=low-can-binding%2Fbinding%2Fapplication.hpp;h=7b4732c06232c82d5b92d576d0cc22569b012e78;hb=refs%2Fchanges%2F98%2F23198%2F6;hp=92aca38231026daaa03545861b2775c9fb73ff02;hpb=2eb313e5330dbfa1b6eab146b3698d8ffe054347;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 92aca382..7b4732c0 100644 --- a/low-can-binding/binding/application.hpp +++ b/low-can-binding/binding/application.hpp @@ -23,9 +23,13 @@ #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 represents a configuration attached to the binding. @@ -45,10 +49,13 @@ class application_t 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. public: @@ -56,7 +63,7 @@ class application_t can_bus_t& get_can_bus_manager(); - std::map >& get_can_devices(); + std::map >& get_can_devices(); const std::string get_diagnostic_bus() const; @@ -64,24 +71,35 @@ class application_t 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_message_set(); - std::vector > get_all_can_signals(); + vect_ptr_signal_t get_all_signals(); - std::vector >& get_diagnostic_messages(); + 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 +119,3 @@ class application_t bool isBusActive(can_bus_dev_t* bus); */ }; -