From 4ab2164774bdb9a29b2f180a9013c26c0155628d Mon Sep 17 00:00:00 2001 From: Romain Forlot Date: Fri, 2 Jun 2017 19:45:01 +0200 Subject: Get diag manager's socket into subscription obj Subscription index map is the socket ID which implies the following: - All diagnostic messages subscriptions are stored into a vector holding diagnostic_message and there is 1 socket for all like the diag manager did. - Reworked workflow to open a BCM socket and adding an RX filter more flexible. - Separated methods to handle on_no_clients event. - Cleaning diagnostic manager code to remove all unneeded stuff now. - Embed diagnostic response in VehicleMessage decoded message to be able transmits the PID in event push thread. This is needed by to correctly handle case when there is no clients subscribed to an AFB event. Else we can't find the diagnostic message to remove from low_can_subscription vector. Change-Id: Iab13fd556cda3c69827bcd67f3a23a03cb6a2cf2 Signed-off-by: Romain Forlot --- CAN-binder/low-can-binding/binding/low-can-hat.hpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'CAN-binder/low-can-binding/binding/low-can-hat.hpp') diff --git a/CAN-binder/low-can-binding/binding/low-can-hat.hpp b/CAN-binder/low-can-binding/binding/low-can-hat.hpp index a1c8dad1..632dbc90 100644 --- a/CAN-binder/low-can-binding/binding/low-can-hat.hpp +++ b/CAN-binder/low-can-binding/binding/low-can-hat.hpp @@ -20,6 +20,7 @@ #include #include +#include #include extern "C" @@ -31,7 +32,10 @@ extern "C" struct afb_binding_interface; extern const struct afb_binding_interface *binder_interface; -void on_no_clients(const std::string& message); +class low_can_subscription_t; + +void on_no_clients(std::shared_ptr can_subscription); +void on_no_clients(std::shared_ptr can_subscription, uint32_t pid); int read_message(sd_event_source *s, int fd, uint32_t revents, void *userdata); void subscribe(struct afb_req request); -- cgit 1.2.3-korg