j1939: don't process signals using same bus
[apps/agl-service-can-low-level.git] / low-can-binding / binding / application.cpp
index a85b518..d22633f 100644 (file)
@@ -52,32 +52,49 @@ uint8_t application_t::get_active_message_set() const
        return active_message_set_;
 }
 
-std::vector<std::shared_ptr<can_message_set_t> > application_t::get_can_message_set()
+std::vector<std::shared_ptr<message_set_t> > application_t::get_message_set()
 {
-       return can_message_set_;
+       return message_set_;
 }
 
-std::vector<std::shared_ptr<can_signal_t> > application_t::get_all_can_signals()
+vect_ptr_signal_t application_t::get_all_signals()
 {
-       return can_message_set_[active_message_set_]->get_all_can_signals();
+       return message_set_[active_message_set_]->get_all_signals();
 }
 
-std::vector<std::shared_ptr<diagnostic_message_t> >& application_t::get_diagnostic_messages()
+vect_ptr_diag_msg_t application_t::get_diagnostic_messages()
 {
-       return can_message_set_[active_message_set_]->get_diagnostic_messages();
+       return message_set_[active_message_set_]->get_diagnostic_messages();
 }
 
-std::vector<std::shared_ptr<can_message_definition_t> >& application_t::get_can_message_definition()
+vect_ptr_msg_def_t application_t::get_messages_definition()
 {
-       return can_message_set_[active_message_set_]->get_can_message_definition();
+       return message_set_[active_message_set_]->get_messages_definition();
 }
 
+
+std::shared_ptr<message_definition_t> application_t::get_message_definition(uint32_t id)
+{
+       std::shared_ptr<message_definition_t> ret = nullptr;
+       vect_ptr_msg_def_t messages_definition = get_messages_definition();
+       for(std::shared_ptr<message_definition_t> &msg_def : messages_definition)
+       {
+               if(msg_def->get_id() == id)
+               {
+                       ret = msg_def;
+                       break;
+               }
+       }
+       return ret;
+}
+
+
 uint32_t application_t::get_signal_id(diagnostic_message_t& sig) const
 {
        return sig.get_pid();
 }
 
-uint32_t application_t::get_signal_id(can_signal_t& sig) const
+uint32_t application_t::get_signal_id(signal_t& sig) const
 {
        return sig.get_message()->get_id();
 }
@@ -95,12 +112,12 @@ bool application_t::isEngineOn()
        bool engine_on = false;
        uint64_t last_timestamp_in_s;
 
-       if(sf.can_signals.size() == 1)
+       if(sf.signals.size() == 1)
        {
-               last_timestamp_in_s = sf.can_signals.front()->get_last_value_with_timestamp().second
+               last_timestamp_in_s = sf.signals.front()->get_last_value_with_timestamp().second
                                                / MICROSECONDS_IN_SECOND;
 
-               if(sf.can_signals.front()->get_last_value_with_timestamp().first > 0 &&
+               if(sf.signals.front()->get_last_value_with_timestamp().first > 0 &&
                   std::difftime(std::time(nullptr), last_timestamp_in_s) < ENGINE_VALUE_TIMEOUT)
                {
                        engine_on = true;
@@ -137,3 +154,22 @@ bool application_t::isEngineOn()
 
        return engine_on;
 }
+
+#ifdef USE_FEATURE_J1939
+std::shared_ptr<utils::socketcan_t> application_t::get_socket_address_claiming()
+{
+       return subscription_address_claiming_->get_socket();
+}
+
+std::shared_ptr<low_can_subscription_t> application_t::get_subscription_address_claiming()
+{
+       return subscription_address_claiming_;
+}
+
+
+void application_t::set_subscription_address_claiming(std::shared_ptr<low_can_subscription_t> new_subscription)
+{
+       subscription_address_claiming_ = new_subscription;
+}
+
+#endif
\ No newline at end of file