aboutsummaryrefslogtreecommitdiffstats
path: root/CAN-binder/low-can-binding/can
AgeCommit message (Collapse)AuthorFilesLines
2017-06-07Cleanup include and prepare to switch binding v2Romain Forlot2-11/+0
Change-Id: I032e8ec32c3ff5b2464f2802dd93683752316049 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-07Improve reliability on multi-threading.Romain Forlot2-51/+48
- Limits call to signals_manager and subscribed signals map - Unlock and lock mutex in the right order to avoid possible dead locks. Change-Id: Ifb152af833ad8bdde5dc4fc3a27b1a7c27046523 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-07Fix: c++11 detected and not applied from configRomain Forlot1-1/+1
Change-Id: Iedf1f88e142a3f579ada3794b1f0f8813105d880 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-07Separate low_can_subscription class from callbacksRomain Forlot1-1/+1
Change-Id: I682cacca1af53f898ac4c428f823562c50e7cce4 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-02Let the thread to be managed outside the binding.Romain Forlot1-4/+2
Change-Id: Ib905a3e0ea58a32761c4dda4a391c1d7b311c12a Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-02Get diag manager's socket into subscription objRomain Forlot1-1/+5
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 <romain.forlot@iot.bzh>
2017-06-01Implement minimum and maximum subscription filtersRomain Forlot1-2/+6
Change-Id: I6b027cdb37e425e185b8d2278ae775f857ff96bc Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-01Left over renaming variableRomain Forlot1-2/+1
Following change from configuration_t to application_t some variable name doesn't correspond now : conf -> app Change-Id: I56c3a83113777a43af9024a9bc9b53f705b60b0f Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-01Simplify processing eventRomain Forlot1-10/+10
Set afb_event into subscription object then there is no more std::pair used t access it, better use a method from low_can_subscription_t class Change-Id: Ic0772d97c18ca8899821cf3ce175166bbe0be660 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-01Fix: get signal name no matter type of signal.Romain Forlot1-3/+3
One method to return name depending upon which type it is, can or diagnostic. Change-Id: I1e96f88654e14316d3afe527fa6fa0d8ddbf410d Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-01Implement method to filter messages before pushingRomain Forlot2-36/+42
Change-Id: I94223ebead4a011a1fb56ed0c3676c433e01319b Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-01Retrieve signal last value and timestamp at once.Romain Forlot2-0/+7
Change-Id: I8401030ece94b5e397b6d2b71b29ff4e435d1486 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-01Clearer call to methodRomain Forlot2-5/+5
Change-Id: Ibf37a46989ac8d84a56aa43873fdb8bb0e601304 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-01Remove reverse find can_signal from can_messageRomain Forlot1-19/+18
There is no need to search against can_signal with CAN arbitration id because a pointer to the signal it maintained through the low_can_subscription_t object now. Change-Id: Ia8b3c7074ff86f7e2a8f3ed503ea1abed3bfe51b Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-01CleaningRomain Forlot1-19/+0
Change-Id: Iba8c7929ced1e2492de94e3a2b1c98dd4eb70b6b Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-01Reworked subscription to integrate filtering.Romain Forlot6-77/+47
- Creation of an object which old the subscription context (filter, signal) : low_can_subscription_t - Move socket from can_signal_t to this new object. - Adding a member to can_message_t to transport subscription_id to be able to retrieve it with all the context through running. Change-Id: I87be8cd6c3c93a81040357920d8c081a316800c3 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-01Renaming configuration to applicationRomain Forlot3-5/+5
It is more accurate to name it application because all its members aren't modifiable at runtime (without talking of last_value_ member and few others). Change-Id: Ica0d33dfd9c26cfdea019c2f41ed07777fb36d39 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-23Static code review fixes.Romain Forlot8-21/+21
Several style errors and mistakes mostly on constructor and passing arguments as ref. Change-Id: I2ca921d6aa70b9074392bb7779ade35bebf7bd8d Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-22Logical bus name mapped to device name using conf file.Romain Forlot3-1/+10
Store CAN device map without prefixed section name and add methods to get the mapped device name. Change-Id: I03ebc175c67b2251016863b0d69a45a816a81d25 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-19Using reference make std::move useless.Romain Forlot2-3/+3
Change-Id: I9b9b6a2fbaecae8acc4f8f1eef0ea8d2f084fb9f Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-19Set parent from configuration_generated objects.Romain Forlot2-17/+2
Change-Id: I8f07084c6364347ebad3e029b89aeef93129cce3 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-19Added timestamp to received CAN messagesRomain Forlot5-10/+32
and store into frequency_clock_t. Change-Id: If209070298bd9df49297fdcbed554770e1bc0e4a Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-19Adjust method signature to be more efficient.Romain Forlot6-37/+26
Return vector reference and doesn't return const ref. Change-Id: Ibcbc1d72e4baf1a7b8bf017d36d6d37d25312d6d Signed-off-by: Romain Forlot <romain.forlot@iot.bzh> # Conflicts: # CAN-binder/low-can-binding/can/can-signals.hpp
2017-05-19Change method name to signify that it is an aggregate.Romain Forlot1-1/+1
As can_message_definitions got the exact same name but the one from can_message_set is an aggregate of all can_message_definition. So it is clearer using a different name. Change-Id: Ieb9e4d3291f3dc460eb352d8b8fe5a7cf479e687 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-19Finish config parser retrieving device mapping.Romain Forlot2-4/+10
Change-Id: Ia43f9c0edf09ff9a1c009f198bdad10a6b44b249 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-19FormatRomain Forlot2-3/+2
Change-Id: If3a381a4a07c117b9b1cc48ba3a6b4af2d7bdc69 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-19Explicit move of objects vector at list initilizationRomain Forlot1-2/+2
Change-Id: I5dc5ab4fa249c6677b188b6dea9d282a097a3250 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-19Improve objects construction.Romain Forlot2-10/+10
Use of a ref to initialize bus_ string member. const value doesn't make sense. Change-Id: I96f504ee11a754b3130289d27afa02a6fa811014 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-19Don't collide with application framework ERROR in some configuration.Romain Forlot2-7/+7
Change-Id: Idd600a47960850cd4afc553fdb79f5c57f93f64b Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-19Include diagnostic_message_t into can_message_set.Romain Forlot6-9/+27
Change-Id: I7372e469752dd8e90dc9431b9e5c67df12f56c29 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-19Make and use a single function to read incoming CAN messagesRomain Forlot2-11/+0
Change-Id: I5d3f2a8628ace464ad25989346cc76682c591bd8 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-19Be able to return index or can bus name.Romain Forlot1-2/+4
Use a vector of string pair that map index on vector and pair map logical bus name with linux device name. Change-Id: I627e6f715f7466d835d8729e21d9e4198111c1fb Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-19Remove can-bus-dev following RAW->BCM sockets migrationRomain Forlot5-352/+28
No needs to get RAW socket for now, so can_bus_dev_t class is useless and now removed from project. Change-Id: I37b3e187ef28ba393beae7a99da4f422f74a298e Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-19Use common timer method to get BCM timeval values.Romain Forlot1-5/+3
Change-Id: I3c4364d6038bd60546726fba940f043f5abcb6d2 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-19Use raw pointer to point on parent object.Romain Forlot5-10/+10
Shared pointer on value is a wrong way because once they is no more object refering to a parent then the pointer on it is destoyed. Not a big deal here but we better have to use raw pointer. Change-Id: I58deeb9e82c446ea135be87c11f405da54cc5bff Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-19Remove unused and useless members.Romain Forlot2-20/+0
These members was imported from OpenXC project which was in C so they need to know array size. As we use vector we doesn't need them anymore. We can retrieve count using size() vector method Change-Id: Iefd0266d400097ab2dae813aca196c8e3b9bc368 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-19Message definition can return ref instead of value.Romain Forlot2-2/+2
Little optimization that will pass a ref instead of a copy value. Change-Id: I62fbaaa2fb01cf809e60b592a3d91f06d7235205 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-19Fix: vector throw length error exception.Romain Forlot1-3/+4
Message set count members as to be changed because now useless... This is left part from OpenXC port. Change-Id: I3a3dc6091b49eabf0d17324634406bd7b0edafb2 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-19FormatRomain Forlot1-1/+0
Change-Id: Idc49593fdc1a039c6a03626115e4156a629e4e65 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-11Resolv include circular dependencies.Romain Forlot3-3/+2
Change-Id: I038677d688c64e87ae86dd2af245f87f5c40e317 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-11Massive use of shared_ptr about signal and diag message. WIPRomain Forlot6-21/+21
Vector of shared_ptr is made to shared ownership about object around project. This is the default returned value by getter methods when lookup and manipulating them. Change-Id: Id37947bb5994b629f4bf3faecc5ffac81c55e1e6 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-10Use a tree instead of separated object lists. WIPRomain Forlot8-28/+138
Now we respect JSON description file, which is can_message_set contains can_message_definition which contains can_signals. Diagnostic messages aren't processed for now. Change-Id: I94aaf5eded14dd84395bd4fd749df58dee5f533e Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-10CleaningRomain Forlot1-6/+1
Change-Id: I23b862e748e13e7ba69743c8a9d3abb0be36c4bc Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-10CAN message will not be modified once read.Romain Forlot3-3/+3
So use const value Change-Id: I81f9a4766d71116e2f3a2af8785b1bd1c69e2c20 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-10Don't trigger timeout monitoring on signal.Romain Forlot1-1/+1
Change-Id: Ib84c365207e32f71fc4cb7e350f99d147317fa08 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-10Implement setting last_value at message definition level.Romain Forlot7-2/+20
In addition to signal last_values, now message last value is also set. Change-Id: I87c2be3e4e68073d7708b2ddf681889576337410 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-10Keeping RAW sockets for compatibilityRomain Forlot2-56/+1
And reset can_reader to can_bus_dev_t like the old behavior because BCM sockets has been implemented at signals level not device. Change-Id: I715a19ff65bf9d7231c73b66c1ee95b3f41f8ed0 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-10Fix: Avoid returning negative value that's stop watch socketRomain Forlot2-4/+2
Even if the frame read is wrong doesn't mean that socket is compromise only that communication on CAN bus is difficult, maybe temporary. On en EPOLL err code, or hangup, just close and restart the socket and reset the filter. Change-Id: I61f146fd269bb2524f09e1f2ed89d93e83166136 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-05FormatRomain Forlot1-1/+1
Change-Id: I1c080f961f62a6816b0c36e960ae1ecbeb7fa00d Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-05Get back to device dedicated raw_socketRomain Forlot3-2/+15
Change-Id: Ibec47106f8510e92a017fc08aeb2eeaeef2884e5 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>