aboutsummaryrefslogtreecommitdiffstats
path: root/low-can-binding/binding
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2019-11-05 15:37:47 +0100
committerRomain Forlot <romain.forlot@iot.bzh>2019-11-05 15:37:47 +0100
commit97d6ea3b70ffdda9519df3781f98acbe5b00699e (patch)
tree5f29ef5143da83fcab0f1193064265e263c3a28c /low-can-binding/binding
parent00cc4da050294f6ecc44a2e541af3ce52bed9474 (diff)
subscription: Optimizing opening sockets
Also review some aligment and make more space between bool ops Change-Id: Id1880cbde10cc8deec66a6be163d8a012dbaa0f9 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'low-can-binding/binding')
-rw-r--r--low-can-binding/binding/application-generated.cpp272
-rw-r--r--low-can-binding/binding/low-can-cb.cpp22
-rw-r--r--low-can-binding/binding/low-can-subscription.cpp30
3 files changed, 24 insertions, 300 deletions
diff --git a/low-can-binding/binding/application-generated.cpp b/low-can-binding/binding/application-generated.cpp
index f4d2635d..5ad5951a 100644
--- a/low-can-binding/binding/application-generated.cpp
+++ b/low-can-binding/binding/application-generated.cpp
@@ -5,7 +5,7 @@
application_t::application_t()
: can_bus_manager_{utils::config_parser_t{"/etc/dev-mapping.conf"}}
, message_set_{
- {std::make_shared<message_set_t>(message_set_t{0,"AGL Virtual Car",
+ {std::make_shared<message_set_t>(message_set_t{0,"example",
{ // beginning message_definition_ vector
{std::make_shared<message_definition_t>(message_definition_t{"ls",0x21,"",0,2,frequency_clock_t(5.00000f),true,
{ // beginning signals vector
@@ -120,23 +120,7 @@ application_t::application_t()
""// unit
})},
{std::make_shared<signal_t> (signal_t{
- "steering_wheel.cruise.set",// generic_name
- 51,// bit_position
- 1,// bit_size
- 1.00000f,// factor
- 0.00000f,// offset
- 0,// min_value
- 0,// max_value
- frequency_clock_t(0.00000f),// frequency
- true,// send_same
- false,// force_send_changed
- {
- },// states
- false,// writable
decoder_t::decode_boolean,// decoder
- nullptr,// encoder
- false,// received
- std::make_pair<bool, int>(false, 0),// multiplex
false,// is_big_endian
false,// is_signed
""// unit
@@ -852,258 +836,6 @@ application_t::application_t()
}, // end message_definition vector
{ // beginning diagnostic_messages_ vector
- {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
- 4,
- "engine.load",
- 0,
- 0,
- UNIT::INVALID,
- 5.00000f,
- decoder_t::decode_obd2_response,
- nullptr,
- true,
- false
- })}
-, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
- 5,
- "engine.coolant.temperature",
- 0,
- 0,
- UNIT::INVALID,
- 1.00000f,
- decoder_t::decode_obd2_response,
- nullptr,
- true,
- false
- })}
-, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
- 10,
- "fuel.pressure",
- 0,
- 0,
- UNIT::INVALID,
- 1.00000f,
- decoder_t::decode_obd2_response,
- nullptr,
- true,
- false
- })}
-, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
- 11,
- "intake.manifold.pressure",
- 0,
- 0,
- UNIT::INVALID,
- 1.00000f,
- decoder_t::decode_obd2_response,
- nullptr,
- true,
- false
- })}
-, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
- 12,
- "engine.speed",
- 0,
- 0,
- UNIT::INVALID,
- 5.00000f,
- decoder_t::decode_obd2_response,
- nullptr,
- true,
- false
- })}
-, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
- 13,
- "vehicle.speed",
- 0,
- 0,
- UNIT::INVALID,
- 5.00000f,
- decoder_t::decode_obd2_response,
- nullptr,
- true,
- false
- })}
-, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
- 15,
- "intake.air.temperature",
- 0,
- 0,
- UNIT::INVALID,
- 1.00000f,
- decoder_t::decode_obd2_response,
- nullptr,
- true,
- false
- })}
-, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
- 16,
- "mass.airflow",
- 0,
- 0,
- UNIT::INVALID,
- 5.00000f,
- decoder_t::decode_obd2_response,
- nullptr,
- true,
- false
- })}
-, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
- 17,
- "throttle.position",
- 0,
- 0,
- UNIT::INVALID,
- 5.00000f,
- decoder_t::decode_obd2_response,
- nullptr,
- true,
- false
- })}
-, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
- 31,
- "running.time",
- 0,
- 0,
- UNIT::INVALID,
- 1.00000f,
- decoder_t::decode_obd2_response,
- nullptr,
- true,
- false
- })}
-, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
- 45,
- "EGR.error",
- 0,
- 0,
- UNIT::INVALID,
- 0.00000f,
- decoder_t::decode_obd2_response,
- nullptr,
- true,
- false
- })}
-, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
- 47,
- "fuel.level",
- 0,
- 0,
- UNIT::INVALID,
- 1.00000f,
- decoder_t::decode_obd2_response,
- nullptr,
- true,
- false
- })}
-, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
- 51,
- "barometric.pressure",
- 0,
- 0,
- UNIT::INVALID,
- 1.00000f,
- decoder_t::decode_obd2_response,
- nullptr,
- true,
- false
- })}
-, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
- 70,
- "ambient.air.temperature",
- 0,
- 0,
- UNIT::INVALID,
- 1.00000f,
- decoder_t::decode_obd2_response,
- nullptr,
- true,
- false
- })}
-, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
- 76,
- "commanded.throttle.position",
- 0,
- 0,
- UNIT::INVALID,
- 1.00000f,
- decoder_t::decode_obd2_response,
- nullptr,
- true,
- false
- })}
-, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
- 82,
- "ethanol.fuel.percentage",
- 0,
- 0,
- UNIT::INVALID,
- 1.00000f,
- decoder_t::decode_obd2_response,
- nullptr,
- true,
- false
- })}
-, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
- 90,
- "accelerator.pedal.position",
- 0,
- 0,
- UNIT::INVALID,
- 5.00000f,
- decoder_t::decode_obd2_response,
- nullptr,
- true,
- false
- })}
-, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
- 91,
- "hybrid.battery-pack.remaining.life",
- 0,
- 0,
- UNIT::INVALID,
- 5.00000f,
- decoder_t::decode_obd2_response,
- nullptr,
- true,
- false
- })}
-, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
- 92,
- "engine.oil.temperature",
- 0,
- 0,
- UNIT::INVALID,
- 1.00000f,
- decoder_t::decode_obd2_response,
- nullptr,
- true,
- false
- })}
-, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
- 94,
- "engine.fuel.rate",
- 0,
- 0,
- UNIT::INVALID,
- 1.00000f,
- decoder_t::decode_obd2_response,
- nullptr,
- true,
- false
- })}
-, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
- 99,
- "engine.torque",
- 0,
- 0,
- UNIT::INVALID,
- 1.00000f,
- decoder_t::decode_obd2_response,
- nullptr,
- true,
- false
- })}
} // end diagnostic_messages_ vector
})} // end message_set entry
@@ -1132,7 +864,7 @@ application_t::application_t()
const std::string application_t::get_diagnostic_bus() const
{
- return "hs";
+ return diagnostic_manager_.get_bus_device_name();;
}
diff --git a/low-can-binding/binding/low-can-cb.cpp b/low-can-binding/binding/low-can-cb.cpp
index fd57867c..8bb595e9 100644
--- a/low-can-binding/binding/low-can-cb.cpp
+++ b/low-can-binding/binding/low-can-cb.cpp
@@ -111,7 +111,7 @@ int read_message(sd_event_source *event_source, int fd, uint32_t revents, void *
}
// check if error or hangup
- if ((revents & (EPOLLERR|EPOLLRDHUP|EPOLLHUP)) != 0)
+ if ((revents & (EPOLLERR | EPOLLRDHUP | EPOLLHUP)) != 0)
{
sd_event_source_unref(event_source);
can_subscription->get_socket()->close();
@@ -193,11 +193,11 @@ static int add_to_event_loop(std::shared_ptr<low_can_subscription_t>& can_subscr
}
static int subscribe_unsubscribe_diagnostic_messages(afb_req_t request,
- bool subscribe,
- list_ptr_diag_msg_t diagnostic_messages,
- struct event_filter_t& event_filter,
- map_subscription& s,
- bool perm_rec_diag_req)
+ bool subscribe,
+ list_ptr_diag_msg_t diagnostic_messages,
+ struct event_filter_t& event_filter,
+ map_subscription& s,
+ bool perm_rec_diag_req)
{
int rets = 0;
application_t& app = application_t::instance();
@@ -258,10 +258,10 @@ static int subscribe_unsubscribe_diagnostic_messages(afb_req_t request,
}
static int subscribe_unsubscribe_signals(afb_req_t request,
- bool subscribe,
- list_ptr_signal_t signals,
- struct event_filter_t& event_filter,
- map_subscription& s)
+ bool subscribe,
+ list_ptr_signal_t signals,
+ struct event_filter_t& event_filter,
+ map_subscription& s)
{
int rets = 0;
for(const auto& sig: signals)
@@ -589,7 +589,7 @@ static void write_raw_frame(afb_req_t request, const std::string& bus_name, mess
if( !sf.signals.empty() )
{
AFB_DEBUG("ID WRITE RAW : %d",sf.signals.front()->get_message()->get_id());
- if(flags&BCM_PROTOCOL)
+ if(flags & BCM_PROTOCOL)
{
if(sf.signals.front()->get_message()->is_fd())
{
diff --git a/low-can-binding/binding/low-can-subscription.cpp b/low-can-binding/binding/low-can-subscription.cpp
index e9ee198b..1e22d260 100644
--- a/low-can-binding/binding/low-can-subscription.cpp
+++ b/low-can-binding/binding/low-can-subscription.cpp
@@ -366,27 +366,21 @@ int low_can_subscription_t::open_socket(low_can_subscription_t &subscription, co
{
if(flags & BCM_PROTOCOL)
{
- if( subscription.signal_ != nullptr)
- {
- subscription.socket_ = std::make_shared<utils::socketcan_bcm_t>();
- ret = subscription.socket_->open(subscription.signal_->get_message()->get_bus_device_name());
- }
- else if (! subscription.diagnostic_message_ .empty())
- {
- subscription.socket_ = std::make_shared<utils::socketcan_bcm_t>();
- ret = subscription.socket_->open(application_t::instance().get_diagnostic_manager().get_bus_device_name());
- }
- else if ( !bus_name.empty())
- {
- subscription.socket_ = std::make_shared<utils::socketcan_bcm_t>();
- ret = subscription.socket_->open(bus_name);
- }
+ subscription.socket_ = std::make_shared<utils::socketcan_bcm_t>();
+ if( subscription.signal_ )
+ ret = subscription.socket_->open(subscription.signal_->get_message()->get_bus_device_name());
+ else if(! subscription.diagnostic_message_.empty())
+ ret = subscription.socket_->open(application_t::instance().get_diagnostic_bus());
+ else if(! bus_name.empty())
+ ret = subscription.socket_->open(bus_name);
+
subscription.index_ = (int)subscription.socket_->socket();
}
#ifdef USE_FEATURE_ISOTP
else if(flags & ISOTP_PROTOCOL)
{
- if(subscription.signal_ != nullptr)
+ std::shared_ptr<utils::socketcan_isotp_t> socket = std::make_shared<utils::socketcan_isotp_t>();
+ if(subscription.signal_ )
{
canid_t rx = NO_CAN_ID;
canid_t tx = NO_CAN_ID;
@@ -400,13 +394,11 @@ int low_can_subscription_t::open_socket(low_can_subscription_t &subscription, co
rx = subscription.signal_->get_message()->get_id();
tx = subscription.get_tx_id();
}
- std::shared_ptr<utils::socketcan_isotp_t> socket = std::make_shared<utils::socketcan_isotp_t>();
ret = socket->open(subscription.signal_->get_message()->get_bus_device_name(),rx,tx);
subscription.socket_ = socket;
}
- else if(!bus_name.empty())
+ else if(! bus_name.empty())
{
- std::shared_ptr<utils::socketcan_isotp_t> socket = std::make_shared<utils::socketcan_isotp_t>();
ret = socket->open(bus_name, subscription.get_rx_id(),subscription.get_tx_id());
subscription.socket_ = socket;
}