aboutsummaryrefslogtreecommitdiffstats
path: root/CAN-binder/low-can-binding/binding/low-can-cb.cpp
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2017-06-01 09:43:43 +0200
committerRomain Forlot <romain.forlot@iot.bzh>2017-06-01 18:40:05 +0200
commit80740ea1082b3034fa5003b812e063063a873d7c (patch)
treee11d9e0b23a930ae591372de9248d68416100542 /CAN-binder/low-can-binding/binding/low-can-cb.cpp
parent07cf0fca41024a41ba035f6e817a9590b686a992 (diff)
Fix: get signal name no matter type of signal.
One method to return name depending upon which type it is, can or diagnostic. Change-Id: I1e96f88654e14316d3afe527fa6fa0d8ddbf410d Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'CAN-binder/low-can-binding/binding/low-can-cb.cpp')
-rw-r--r--CAN-binder/low-can-binding/binding/low-can-cb.cpp21
1 files changed, 13 insertions, 8 deletions
diff --git a/CAN-binder/low-can-binding/binding/low-can-cb.cpp b/CAN-binder/low-can-binding/binding/low-can-cb.cpp
index eed0d76..297c377 100644
--- a/CAN-binder/low-can-binding/binding/low-can-cb.cpp
+++ b/CAN-binder/low-can-binding/binding/low-can-cb.cpp
@@ -59,8 +59,8 @@ low_can_subscription_t::low_can_subscription_t(struct event_filter_t event_filte
: event_filter_{event_filter}
{}
-low_can_subscription_t::low_can_subscription_t(struct event_filter_t event_filter, std::shared_ptr<diagnostic_message_t> diagnostic_message)
- : event_filter_{event_filter}, diagnostic_message_{diagnostic_message}
+low_can_subscription_t::low_can_subscription_t(struct event_filter_t event_filter, std::shared_ptr<active_diagnostic_request_t> active_diagnostic_request)
+ : active_diagnostic_request_{active_diagnostic_request}, event_filter_{event_filter}
{}
low_can_subscription_t::low_can_subscription_t( low_can_subscription_t&& s)
@@ -90,9 +90,14 @@ const std::shared_ptr<can_signal_t> low_can_subscription_t::get_can_signal() con
return can_signal_;
}
-const std::string low_can_subscription_t::get_sig_name() const
+const std::string low_can_subscription_t::get_name() const
{
- return can_signal_->get_name();
+ if (can_signal_ != nullptr)
+ return can_signal_->get_name();
+ if (active_diagnostic_request_ != nullptr)
+ return active_diagnostic_request_->get_name() ;
+
+ return "";
}
float low_can_subscription_t::get_frequency() const
@@ -241,7 +246,7 @@ int read_message(sd_event_source *s, int fd, uint32_t revents, void *userdata)
{
can_subscription->get_socket().close();
can_subscription->create_rx_filter();
- NOTICE(binder_interface, "%s: Recreated RX_SETUP BCM job for can_subscription: %s", __FUNCTION__, can_subscription->get_sig_name().c_str());
+ NOTICE(binder_interface, "%s: Recreated RX_SETUP BCM job for can_subscription: %s", __FUNCTION__, can_subscription->get_name().c_str());
}
else
{
@@ -266,7 +271,7 @@ static int make_subscription_unsubscription(struct afb_req request, std::shared_
/* Make the subscription or unsubscription to the event */
if (((subscribe ? afb_req_subscribe : afb_req_unsubscribe)(request, s[can_subscription->get_index()].second)) < 0)
{
- ERROR(binder_interface, "%s: Operation goes wrong for signal: %s", __FUNCTION__, can_subscription->get_sig_name().c_str());
+ ERROR(binder_interface, "%s: Operation goes wrong for signal: %s", __FUNCTION__, can_subscription->get_name().c_str());
return -1;
}
return 0;
@@ -275,11 +280,11 @@ static int make_subscription_unsubscription(struct afb_req request, std::shared_
static int create_event_handle(std::shared_ptr<low_can_subscription_t>& can_subscription, std::map<int, std::pair<std::shared_ptr<low_can_subscription_t>, struct afb_event> >& s)
{
int sub_index = can_subscription->get_index();
- struct afb_event event = afb_daemon_make_event(binder_interface->daemon, can_subscription->get_sig_name().c_str());
+ struct afb_event event = afb_daemon_make_event(binder_interface->daemon, can_subscription->get_name().c_str());
s[sub_index] = std::make_pair(can_subscription, event);
if (!afb_event_is_valid(s[sub_index].second))
{
- ERROR(binder_interface, "%s: Can't create an event for %s, something goes wrong.", __FUNCTION__, can_subscription->get_sig_name().c_str());
+ ERROR(binder_interface, "%s: Can't create an event for %s, something goes wrong.", __FUNCTION__, can_subscription->get_name().c_str());
return -1;
}
return 0;