Change subscribed signals search to check filters as well ('Low Level CAN Service')

Description

Currently, the 'Low Level CAN Service' is checking for duplicate signals using only the 'name' of the signal. So, when an already subscribed signal is requested for a new subscription, filter is ignore and the new subscription will receive the same data as the previously subscribed subscription.

Technical details : 
To handle correctly multiple subscription with different filters for the same signal, a method called 'isSignalSubscriptionCorresponding' should be added in 'low_can_socket_t' class. This method will take an 'std::shared_ptr<can_signal_t>' and and 'event_filter_t' as parameter and return a boolean at 'true' if parameters are corresponding to the current 'subscription' object.

This method should be used in 'subscribe_unsubscribe_can_signals' function of 'low-can-cb.cpp' file. By doing that, a new subscription object (and therefore, a new SocketCAN socket) will be created if the filters is not the same as the previously subscribed subscription.

Environment

None

Activity

Show:

Walt Miner 
July 2, 2018 at 12:02 AM

Close for FF RC1

Fixed

Details

Assignee

Reporter

Fix versions

Labels

Contract ID

Components

Priority

Created March 8, 2018 at 2:41 PM
Updated July 2, 2018 at 12:02 AM
Resolved March 22, 2018 at 1:37 PM