Code Review
/
apps
/
agl-service-can-low-level.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
decoder/encoder: typo
[apps/agl-service-can-low-level.git]
/
low-can-binding
/
binding
/
low-can-cb.cpp
diff --git
a/low-can-binding/binding/low-can-cb.cpp
b/low-can-binding/binding/low-can-cb.cpp
index
c2f4b78
..
79108a7
100644
(file)
--- a/
low-can-binding/binding/low-can-cb.cpp
+++ b/
low-can-binding/binding/low-can-cb.cpp
@@
-24,6
+24,7
@@
#include <mutex>
#include <vector>
#include <thread>
#include <mutex>
#include <vector>
#include <thread>
+#include <algorithm>
#include <wrap-json.h>
#include <systemd/sd-event.h>
#include <ctl-config.h>
#include <wrap-json.h>
#include <systemd/sd-event.h>
#include <ctl-config.h>
@@
-52,20
+53,16
@@
int config_low_can(afb_api_t apiHandle, CtlSectionT *section, json_object *json_obj)
{
AFB_DEBUG("Config %s", json_object_to_json_string(json_obj));
int config_low_can(afb_api_t apiHandle, CtlSectionT *section, json_object *json_obj)
{
AFB_DEBUG("Config %s", json_object_to_json_string(json_obj));
- CtlConfigT *ctrlConfig;
-
- ctrlConfig = (CtlConfigT *) afb_api_get_userdata(apiHandle);
- if(! ctrlConfig)
- return -1;
+ CtlConfigT *ctrlConfig = (CtlConfigT *) afb_api_get_userdata(apiHandle);
+ int active_message_set = 0;
+ json_object *dev_mapping = nullptr;
+ const char *diagnotic_bus = nullptr;
- if(! ctrlConfig->external)
+ if(! ctrlConfig
|| ! ctrlConfig
->external)
return -1;
application_t *application = (application_t*) ctrlConfig->external;
return -1;
application_t *application = (application_t*) ctrlConfig->external;
- int active_message_set;
- const char *diagnotic_bus = nullptr;
-
if(wrap_json_unpack(json_obj, "{si, ss}",
"active_message_set", &active_message_set,
"diagnostic_bus", &diagnotic_bus))
if(wrap_json_unpack(json_obj, "{si, ss}",
"active_message_set", &active_message_set,
"diagnostic_bus", &diagnotic_bus))
@@
-73,6
+70,12
@@
int config_low_can(afb_api_t apiHandle, CtlSectionT *section, json_object *json_
application->set_active_message_set((uint8_t)active_message_set);
application->set_active_message_set((uint8_t)active_message_set);
+ if(wrap_json_unpack(json_obj, "{so}",
+ "dev-mapping", &dev_mapping))
+ return -1;
+
+ application->get_can_bus_manager().set_can_devices(dev_mapping);
+
/// Initialize Diagnostic manager that will handle obd2 requests.
/// We pass by default the first CAN bus device to its Initialization.
if(! application_t::instance().get_diagnostic_manager().initialize(diagnotic_bus))
/// Initialize Diagnostic manager that will handle obd2 requests.
/// We pass by default the first CAN bus device to its Initialization.
if(! application_t::instance().get_diagnostic_manager().initialize(diagnotic_bus))
@@
-188,7
+191,7
@@
static int subscribe_unsubscribe_diagnostic_messages(afb_req_t request,
event_filter.frequency = event_filter.frequency == 0 ? sig->get_frequency() : event_filter.frequency;
std::shared_ptr<low_can_subscription_t> can_subscription;
event_filter.frequency = event_filter.frequency == 0 ? sig->get_frequency() : event_filter.frequency;
std::shared_ptr<low_can_subscription_t> can_subscription;
- auto it =
std::find_if(s.begin(), s.end(), [&sig](std::pair<int, std::shared_ptr<low_can_subscription_t> > sub)
+ auto it = std::find_if(s.begin(), s.end(), [&sig](std::pair<int, std::shared_ptr<low_can_subscription_t> > sub)
{
return (! sub.second->get_diagnostic_message().empty());
});
{
return (! sub.second->get_diagnostic_message().empty());
});
@@
-526,7
+529,7
@@
static int send_message(message_t *message, const std::string& bus_name, uint32_
cd[bus_name]->set_signal(signal);
cd[bus_name]->set_signal(signal);
- if(flags&
BCM
_PROTOCOL)
+ if(flags&
CAN
_PROTOCOL)
return low_can_subscription_t::tx_send(*cd[bus_name], message, bus_name);
#ifdef USE_FEATURE_ISOTP
else if(flags&ISOTP_PROTOCOL)
return low_can_subscription_t::tx_send(*cd[bus_name], message, bus_name);
#ifdef USE_FEATURE_ISOTP
else if(flags&ISOTP_PROTOCOL)
@@
-552,12
+555,12
@@
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( !sf.signals.empty() )
{
AFB_DEBUG("ID WRITE RAW : %d", sf.signals.front()->get_message()->get_id());
- if(flags &
BCM
_PROTOCOL)
+ if(flags &
CAN
_PROTOCOL)
{
if(sf.signals.front()->get_message()->is_fd())
{
AFB_DEBUG("CANFD_MAX_DLEN");
{
if(sf.signals.front()->get_message()->is_fd())
{
AFB_DEBUG("CANFD_MAX_DLEN");
- message->set_flags(CAN_FD_FRAME);
+ message->set_flags(CAN_
PROTOCOL_WITH_
FD_FRAME);
message->set_maxdlen(CANFD_MAX_DLEN);
}
else
message->set_maxdlen(CANFD_MAX_DLEN);
}
else
@@
-591,7
+594,7
@@
static void write_raw_frame(afb_req_t request, const std::string& bus_name, mess
}
else
{
}
else
{
- if(flags&
BCM
_PROTOCOL)
+ if(flags&
CAN
_PROTOCOL)
afb_req_fail(request, "Invalid", "Frame BCM");
else if(flags&J1939_PROTOCOL)
afb_req_fail(request, "Invalid", "Frame J1939");
afb_req_fail(request, "Invalid", "Frame BCM");
else if(flags&J1939_PROTOCOL)
afb_req_fail(request, "Invalid", "Frame J1939");
@@
-631,7
+634,7
@@
static void write_frame(afb_req_t request, const std::string& bus_name, json_obj
"can_data", &can_data))
{
message = new can_message_t(0, id, length, false, 0, data, 0);
"can_data", &can_data))
{
message = new can_message_t(0, id, length, false, 0, data, 0);
- write_raw_frame(request, bus_name, message, can_data,
BCM
_PROTOCOL, event_filter);
+ write_raw_frame(request, bus_name, message, can_data,
CAN
_PROTOCOL, event_filter);
}
#ifdef USE_FEATURE_J1939
else if(!wrap_json_unpack(json_value, "{si, si, so !}",
}
#ifdef USE_FEATURE_J1939
else if(!wrap_json_unpack(json_value, "{si, si, so !}",
@@
-688,7
+691,7
@@
static void write_signal(afb_req_t request, const std::string& name, json_object
else if(sig->get_message()->is_isotp())
flags = ISOTP_PROTOCOL;
else
else if(sig->get_message()->is_isotp())
flags = ISOTP_PROTOCOL;
else
- flags =
BCM
_PROTOCOL;
+ flags =
CAN
_PROTOCOL;
// cfd = encoder_t::build_frame(sig, value);
message_t *message = encoder_t::build_message(sig, value, false, false);
// cfd = encoder_t::build_frame(sig, value);
message_t *message = encoder_t::build_message(sig, value, false, false);
@@
-865,7
+868,6
@@
int init_binding(afb_api_t api)
return -1;
}
return -1;
}
- can_bus_manager.set_can_devices();
can_bus_manager.start_threads();
utils::signals_manager_t& sm = utils::signals_manager_t::instance();
can_bus_manager.start_threads();
utils::signals_manager_t& sm = utils::signals_manager_t::instance();