summaryrefslogtreecommitdiffstats
path: root/CAN-binder/low-can-binding/binding
AgeCommit message (Collapse)AuthorFilesLines
2017-06-07Fix: unsubscribe from 1 app remove diagnostic reqRomain Forlot1-2/+0
Let the function on_no_client do the cleaning of the remaining active diagnostic requests. Change-Id: I6fc2477d53200e3475f62cd453804827172a99c0 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-07Separate low_can_subscription class from callbacksRomain Forlot4-274/+296
Change-Id: I682cacca1af53f898ac4c428f823562c50e7cce4 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-06Update signals.json and generated files.Romain Forlot1-12/+14
Adding fake windows signals, Fix wrong bit_position about doors (not fake signal) In fact all signals are fake except of doors signals and OBD2 diagnostic messages. Change-Id: Ia5877bb9720b11b0ff3593788d3e79324b0fa44e Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-02Remove pointer generator that make memory leaks.Romain Forlot2-20/+0
Only have 1 place where to generate a pointer from a DiagnosticRequest is in low-can-cb.cpp when subscribing. Else now using reference instead of raw pointer. Change-Id: I7fd2f3d30afa90017b945e6b711922036123b6d3 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-02Get diag manager's socket into subscription objRomain Forlot3-104/+226
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-02Fix: Handle several subscriptions to a signalRomain Forlot1-26/+46
Change-Id: I460bae0056761f6468ca4dc55a594f1529d53c83 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-02Adding accessor to diagnostic msg shared ptr.Romain Forlot2-0/+6
Change-Id: I9d32239b3ebd762ab3a337fc734d504ee8dc8c5f Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-02Change way to validate a subscription objectRomain Forlot1-1/+1
Better to check validity of 2 differents type of signals used and checks that its event is valid. Change-Id: I1435bbe81a43fd80eae049d43b5e37fc8f893074 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-01Left over renaming variableRomain Forlot1-3/+3
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-01CleaningRomain Forlot1-13/+10
Change-Id: I73e9acf8b3a28db2134cf1f4bcb1b2aa7fd224fc Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-01Use UDS PID has key to record subscriptionsRomain Forlot1-1/+3
can_signal_t use socket number but has for OBD2 diagnostic request there is only 1 socket to listen all response then we use PID has key to find the subscription later on the processing. Change-Id: I5f0554e1a4ac43e1046d9b7b7f9bb00d3a753562 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-01Simplify processing eventRomain Forlot2-10/+23
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: segfault subscribing diagnostic messagesRomain Forlot2-7/+7
Wrong object used when subscribing. Change-Id: I356c8cedc57191268ce3ea1838999fbe03472ae2 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-01Fix: get signal name no matter type of signal.Romain Forlot2-11/+16
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-01Using isnan to define frequency.Romain Forlot1-1/+1
Change-Id: Iba93089dc982644898540b286892c436229f38d2 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-01Missing pragma once...Romain Forlot1-0/+2
Change-Id: I3088089af5a817ed68ef0276869a01d7323e6ae7 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-01Split function to call 1 function by signal types.Romain Forlot1-19/+31
From signals found process each vector into a separated function Change-Id: I0c622508eb98a7284606b4f75c825ba48e3fe227 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-01Fix diagnostic message subscription.Romain Forlot2-2/+11
Change-Id: I490ee639e5d524a142e2fbbd928725b7268178aa Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-01Adding windows CAN signals.Romain Forlot1-1/+77
These signals is not the reals ones. Change-Id: I5f30fcab09f22488a8085f44eb22a97b67214339 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-01Use default signal frequency if no filter providedRomain Forlot1-1/+4
Change-Id: I60bc1cdd62a75b539684032bbb58c38256149944 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-01Fix: Don't processing filter argumentRomain Forlot1-5/+5
Filter is a separate json object to get, so using request arguments to retrieve it. Change-Id: I0e672a747c95ef5e7ed17dd184697265a18add9c Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-01Use ptr to can_signal instead of copying some membersRomain Forlot2-91/+28
Change-Id: Ie827559c7da462f59bfe4af8af824f4616c2dd5b Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-01Missing var declarationRomain Forlot1-1/+1
Change-Id: Icbb18bcdeae1d928d3981d21fc547d2940b198bd Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-01Fix: use of isnan() from std libRomain Forlot1-1/+1
Change-Id: I40ecb409ec1361faa6df8585332f319508bcb464 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-06-01manage unset values with NANJosé Bollo2-7/+4
Change-Id: I144bc110864f507e57d5e4b7f03ee1c0aa61ff63 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-06-01optimise flowJosé Bollo1-56/+31
Change-Id: I56d796531120236591f00fdf7a30f0a4495cbef2 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-06-01Reworked subscription to integrate filtering.Romain Forlot4-74/+346
- 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 Forlot5-29/+26
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-24Fix memory leaksRomain Forlot1-0/+4
Change-Id: I4a33b6d5f1f3b73af113aff62b024329b0ed5288 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-23Static code review fixes.Romain Forlot3-6/+9
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-23Implement filtering on subscription. WIPRomain Forlot2-17/+60
Change-Id: I232bdfe75335d0266d582b4974d8378632aceeae Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-22Logical bus name mapped to device name using conf file.Romain Forlot1-5/+5
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-19Set parent from configuration_generated objects.Romain Forlot1-1/+21
Change-Id: I8f07084c6364347ebad3e029b89aeef93129cce3 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-19Adjust method signature to be more efficient.Romain Forlot2-6/+6
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 Forlot2-3/+3
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-19Use shared_ptr for can_message_set too.Romain Forlot3-9/+8
Change-Id: I3ba4881d5fc01a69d55e101b9a07c2019dda1d4b Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-19Finish config parser retrieving device mapping.Romain Forlot1-0/+1
Change-Id: Ia43f9c0edf09ff9a1c009f198bdad10a6b44b249 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-19FormatRomain Forlot1-1/+0
Change-Id: If3a381a4a07c117b9b1cc48ba3a6b4af2d7bdc69 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-19New generated files using updated generatorRomain Forlot1-307/+443
Change-Id: I5778c07d1e92e52413e3020ee281a38c7cc0f1ef Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-19Include diagnostic_message_t into can_message_set.Romain Forlot3-11/+9
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-20/+36
Change-Id: I5d3f2a8628ace464ad25989346cc76682c591bd8 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-19Remove can-bus-dev following RAW->BCM sockets migrationRomain Forlot3-18/+7
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-19one event source by socket added to systemd event loop.Romain Forlot1-0/+1
Get back to the first solution, moving this variable declaration was a mistake. Change-Id: I1af78d93bfc8f759ecf1a849adddbe1d52c27466 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-19Adding also diagnostic request to systemd event loopRomain Forlot2-7/+27
As for CAN signal, monitoring diagnostic request messages is now handled by systemD io event loop. Socket reading is common for all OBD2 signals and handled by the diagnostic manager. systemd callback function lies in binding callback which in turns call read_socket method of diagnostic manager. Processing is little bit different from classic CAN messages so it is a separate callback function. Lot of cleaning to do now... Change-Id: I4d2ada0beb5d3348736dfdf3c56a7cb875a1c6c7 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-19Remove unused and useless members.Romain Forlot1-1/+1
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-19Fix wrong signature, better with const ref... Was forgottenRomain Forlot1-5/+4
Change-Id: I2d3f7525bb85c051c43aeda6b9cc1be0f3e270c8 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-19Implement unsubscribe like subscribe.Romain Forlot1-18/+31
New redundant function creation to mutualize code between two operations. Change-Id: I8516c2c6d2f0c1d5cf89244ea23b831530e84a5f Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-05-11Massive use of shared_ptr about signal and diag message. WIPRomain Forlot4-47/+47
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 Forlot3-127/+107
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-10Implement setting last_value at message definition level.Romain Forlot2-2/+2
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>