summaryrefslogtreecommitdiffstats
path: root/src/can/can-bus.cpp
AgeCommit message (Collapse)AuthorFilesLines
2017-04-11Handle cancel active diag requet when there are no more subscribersRomain Forlot1-1/+2
When push events if there is no more subscribers to that event then call a function that will cleanup that request from diagnostic manager queue. Change-Id: I8153701074453444a5bba6f1374401bdf230f7e6 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-04-11Fix: Empty every queue before unlock mutex.Romain Forlot1-18/+25
Make sure that we finish to process every message in queue before refill them cause' CAN read run faster than decoding and pushing event. So it's a try to get all message processed. Change-Id: Idce2bc4d79920adc2bf478177c4e3defed39867b Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-04-11Erase compilation WARNING.Romain Forlot1-1/+1
Useless tests and type cast about numbers. Change-Id: I6fe13b7dfec8529520730f83e83d2dd3da3a674c Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-03-20Fix: Avoid segfault if diagnostic bus isn't correctly set.Romain Forlot1-0/+3
There is a segfault when binding configuration doesn't matches configuration generated. Improve general CAN bus device initialization. Change-Id: I17ea94ee54841d09ac63a7ffad303a88d99e0173 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-03-17Comments fixes, typo and formating.Romain Forlot1-118/+86
No more warning when generate the docs and all comments follow the same formating. Change-Id: I80d4c5c2d64401c2e53a550c60155680c4f968ce Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-03-16Fix: decoded name will be prefixed as at subscription.Romain Forlot1-1/+1
Reason is that the simple message is used to match a subscribed signals in the map. So it has to be the same that at the subscription. Change-Id: Ie9504583948027523a7288b5e4a20707c49b6d59 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-03-16Include cleaningRomain Forlot1-0/+1
Change-Id: I5df96540400b833e684001f8fc5fa33ff1892bae Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-03-16Fix commentsRomain Forlot1-2/+1
Change-Id: Ia838d06885bc95196c5afc3668c0b028cb0f2763 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-03-16Small fixesRomain Forlot1-1/+0
Align frequency type to float and removed useless code. Change-Id: I13d9407808c42ece0d3fd761351752ad661e01e0 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-03-16Finalization of decoding part of diagnostic messages.Romain Forlot1-30/+9
Diagnostic request must have a name to be subscribed. Else, we can't decode or event push for now. Change-Id: I0901a71da31320d8598e512614437aceb552713d Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-03-16Simplification of checking Diagnostic response.Romain Forlot1-1/+1
A CAN message will be considered as a Diagnostic response when its arbitration ID is between standardized 0x7E8 and 0x7EF. Checking which request belong to that response will done in later methods Change-Id: I7a093edf44b62a4552b90fe3d8935f94dc677cf4 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-03-16Revert accessing CAN device with a map indexing on dev nameRomain Forlot1-8/+22
Main reason for that behavior revert is because of generator that rely on CAN device name and so we have point on these object by specify the device name. Instead of shared pointer between objects, instead binding is based on device name. With a device name you can get the shared pointer on it using new static method from can_bus_t object. Change-Id: I331e0ad8d03c88a15c697d12a9fce3699b0cd962 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-03-16Search signals against name not generic_name. It's madeRomain Forlot1-1/+1
to get able to get difference between classic CAN messages and diagnostic messages based on name signals prefix. Change-Id: I696facc58f38150e0457d519dcabffba750a8db3 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-03-16Improve Doxygen comments and formating.Romain Forlot1-7/+32
Change-Id: Ia39e78aca00a49c7cee5e42d26ba1ef2b49d3709 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-03-16Improve: DEBUG messages.Romain Forlot1-1/+1
Change-Id: Ib52f22e7bc5bc5d14edbb31ad6006caee23c4098 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-03-16Search into generic_name as well as name + prefix, butRomain Forlot1-1/+1
always register generic_name into subscribed_signals. It will be the output on event and make easier to find the subscribed signals into the map without prefix. Change-Id: Iaf0060bedb54003b0c77121afd2bd35d832dba25 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-03-16Get decoding diagnostic request from decoding thread of can_bus_tRomain Forlot1-31/+91
Decoding divided in 2 subfunctions dedicated to decode either pure CAN messages or diagnostic (obd2) message. About now, a diagnostic request has a name then it will be pushed on the event_queue as a SimpleMessage. Without name full details of diagnostic response will be pushed as diagnostic response. This behavior follows the one from OpenXC. Change-Id: I255f3f6487fa9511ea47c74606014995a7b0f720 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-03-16Fix: set to microsecond frequency check of diag requestRomain Forlot1-5/+0
Change-Id: I871ff68afd7f398d4c7d3a550c8926c1f7e67cb3 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-03-16Default value about thread state set at false.Romain Forlot1-10/+1
Change-Id: I1934aa4d9a9d945a32d8e369cf0f36b1e06d3f34 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-03-16Fix: wrong location to make the increment because we useRomain Forlot1-1/+1
the device after so... This was total crap ! Change-Id: I9bb43c3f75c613a5927f342b3c574871c0eb65bb Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-03-16Make diagnostic manager initialization processus.Romain Forlot1-5/+5
It is initiliazed with by default the first CAN bus device in the CAN bus device list from CAN bus manager. The object is instancied at configuration_t object first invokation and after all CAN buses has been initialized then the diag manager is initialized too. Change-Id: I4894f2c62f575676c34efec3608b97de8c5326e1 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-03-16Manage prefix on CAN and OBD2 prefix. Searching signalsRomain Forlot1-1/+1
is made on generic_name (without prefix) and returned vector of string is filled with name with prefix. Then you can process on them based upon their name differently. OBD2 signals will generated recurring request on diagnostic manager and decoding will not be handled the same way too. Change-Id: I2c5239ef49661941a0a748debe0bd536b2954b3a Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-03-16Instead of a global pointer, config is now a Singleton.Romain Forlot1-2/+2
Change-Id: I0cfc34f330c531ba5f070542a1cb723be4bcc70a Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-03-16Also initialize the id_ renamed address_ member. This memberRomain Forlot1-1/+1
is mapped to the address node from json Change-Id: Ied13067723552c2396337a9f85fe5e1418ba8caf Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-03-16Fix: used new created classes.Romain Forlot1-1/+1
Change-Id: Ib0188ac952f64b3bc2203c0310a21de380c75854 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-03-16Use the new created class and their respectivesRomain Forlot1-7/+9
methods to get their attributes. Change-Id: Ib96031388356541615cd2c428d3ad1a73c79e215 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-03-16Use static method now as they are all static. No needRomain Forlot1-3/+1
to instanciate an object to decode now. Change-Id: Id9bf378642ad66b7b4f39d909678ecc5ebb756cc Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-03-16Change all old struct name to the new class.Romain Forlot1-2/+2
Change-Id: I8aa4430117c401182ef458a06a2aeb08957db1bb Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-03-16Cleaning old can_bus_dev_t now implementedRomain Forlot1-148/+16
separatly Change-Id: I4529100f118afe25aee747d36a77dc5b533878a5 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh> Conflicts: src/can/can-bus.hpp
2017-03-16separation of can_bus_t and can_bus_dev_t and use of the new socket class.Loïc Collignon1-71/+4
Change-Id: I5f292ab18737fa48259f357d660fed27fb8fb4be Signed-off-by: Loïc Collignon <loic.collignon@iot.bzh>
2017-03-16It isn't needed to initialize diag managerRomain Forlot1-3/+2
for each can_bus_dev_t instance Indeed, generator will write the diag manager objects statically with the correct can_bus_dev_t instance to use. Change-Id: Ib52d93bff576ef962dc141f5936133e878977017
2017-03-16Introducing diagnostic manager class.Romain Forlot1-4/+4
It will hold communication through uds-c lib allowing to communication with diagnostic protocol obd2. It is attached to can_bus_dev_t class 'cause it must regularly send CAN message through it. Change-Id: I2d9d8dfaca10e9865bf82b0ae83e65490ca982f8 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-03-16Include file changes, typo and renaming operation.Romain Forlot1-8/+8
Change-Id: I6643333cfcc8bea120496c53f1cd3b8596e33398 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-03-16Beginning of work on obd2 object andRomain Forlot1-0/+556
files reorganization. Change-Id: Idaa7ad05c45d734ce771506fd6e41f1a09a6ac66 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>