#include <mutex>
#include <vector>
#include <thread>
+#include <algorithm>
#include <wrap-json.h>
#include <systemd/sd-event.h>
#include <ctl-config.h>
application_t *application = (application_t*) ctrlConfig->external;
int active_message_set;
+ json_object *dev_mapping = nullptr;
const char *diagnotic_bus = nullptr;
if(wrap_json_unpack(json_obj, "{si, ss}",
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))
.loadCB=PluginConfig,
.handle=nullptr,
.actions=nullptr},
+ [2]={.key=nullptr , .uid=nullptr, .info=nullptr,
+ .loadCB=nullptr,
+ .handle=nullptr,
+ .actions=nullptr},
};
///*****************************************************************************
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)
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");
- message->set_flags(CAN_FD_FRAME);
+ message->set_flags(CAN_PROTOCOL_WITH_FD_FRAME);
message->set_maxdlen(CANFD_MAX_DLEN);
}
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");
"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 !}",
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);
return -1;
}
-
- can_bus_manager.set_can_devices();
can_bus_manager.start_threads();
utils::signals_manager_t& sm = utils::signals_manager_t::instance();