56 Commits

Author SHA1 Message Date
Pavel Kirienko
a19dfd56dc Linux makeNode() helper overload 2016-06-13 00:46:13 +03:00
Pavel Kirienko
f86a4b98d1 SocketCAN: Setting correct errno when throwing AllIfacesDownException 2016-01-28 01:06:29 +03:00
Pavel Kirienko
3d0186c547 SocketCAN doc comments 2016-01-28 00:54:22 +03:00
Pavel Kirienko
597e0b4356 SocketCAN: Proper error reporting from openSocket() 2016-01-28 00:50:28 +03:00
Pavel Kirienko
587088bb18 Refactored SocketCAN select() call; fixes #83
Features:
- The driver will throw if it's fed a non-existing or malfunctioning interface during initialization
- When an interface becomes down/disconnected while the node is running, the driver will silently
  exclude it from the IO loop and continue to run on the remaining interfaces.
- When all interfaces become down/disconnected, the driver will throw AllIfacesDownException() from
  SocketCanDriver::select().
2016-01-28 00:12:27 +03:00
Pavel Kirienko
cbd36a4a5b Linux SocketCAN: Fixed hasReadyTx() - now checking whether the driver will be ready to release further frames from the queue 2016-01-27 14:31:05 +03:00
Pavel Kirienko
f9a10b1a81 Linux SocketCAN: Fixed handling of outgoing frames. The old logic was handling writes incorrectly, losing frames if the socket was not writable. 2016-01-27 13:56:43 +03:00
Pavel Kirienko
ff13fa866f Linux driver copyright update 2015-12-27 20:01:22 +03:00
Pavel Kirienko
288478fa4a Linux driver: Avoiding use of cstdint from global scope, using proper loops 2015-12-27 19:41:12 +03:00
Ilia
7236370409 checkHWFilters arg by reference.
loopback checked first
2015-12-27 14:38:00 +00:00
Ilia
73f0a9074d uncrustify applied 2015-12-21 00:34:38 +00:00
Ilia
292b06c2d8 pull request corrections 2015-12-20 22:53:19 +00:00
Ilia
a2ed997cb4 socketcan HW filters moved to userspace 2015-12-14 00:20:35 +00:00
Pavel Kirienko
50ce241ba0 SocketCAN: default max_frames_in_socket_tx_queue reduced to 2 2015-11-05 12:01:29 +03:00
Pavel Kirienko
531433a326 Fixed makeApplicationID() (rookie mistake) 2015-09-25 01:47:39 +03:00
Pavel Kirienko
335cd6622a uavcan_linux::makeApplicationID() - instance_id made optional 2015-09-25 00:38:55 +03:00
Pavel Kirienko
f94649f1cc SocketCAN driver: Fixed frame reordering 2015-07-13 15:44:03 +03:00
Pavel Kirienko
8d923fee4c Modified CAN driver API: Passing the next pending TX frames into the select() call to facilitate proper prioritization in the driver 2015-07-05 18:46:21 +03:00
Pavel Kirienko
7b44bf8822 Safer virtual methods; this breaks compatibility with GCC 4.6 2015-06-09 23:05:49 +03:00
Pavel Kirienko
9ac2813cea Cleaner type definitions in Linux driver 2015-06-09 22:58:00 +03:00
Pavel Kirienko
c793ab4177 Linux driver fix 2015-06-09 19:01:54 +03:00
Pavel Kirienko
2b8517905d Linux driver: Refactored node instantiation helpers 2015-06-08 21:30:48 +03:00
Pavel Kirienko
25371abe3b Partially complete test of a multithreaded application Linux. It works, but it doesn't use iface sharing yet. 2015-06-08 14:59:44 +03:00
Pavel Kirienko
e289a1e09c uavcan_linux::makeApplicationID() 2015-05-26 01:22:26 +03:00
Pavel Kirienko
282b995c1e Partially refactored ServiceClient, tests are failing, the code is totally broken 2015-05-15 18:41:38 +03:00
Pavel Kirienko
0253933f75 Linux driver: added system_utils.hpp with a helper class that reads Linux machine ID 2015-05-11 21:54:16 +03:00
Pavel Kirienko
a9e70a97a3 Typo 2014-07-27 17:16:17 +04:00
Pavel Kirienko
9d36eef359 Fixed timeouts in uavcan_linux::BlockingServiceClient 2014-07-15 14:18:22 +04:00
Pavel Kirienko
476d8b8513 libuavcan docs 2014-07-15 14:11:06 +04:00
Pavel Kirienko
dc347f658b SocketCAN driver: Node::getDriverPack() 2014-07-09 12:19:40 +04:00
Pavel Kirienko
ea19fea568 uavcan_linux::Node::makeBlockingServiceClient() 2014-04-29 13:59:11 +04:00
Pavel Kirienko
ae26afdc9f Blocking service caller 2014-04-28 00:33:08 +04:00
Pavel Kirienko
b7b53630d1 Linux driver: verbose exception with error code 2014-04-20 20:45:26 +04:00
Pavel Kirienko
f31d46ea6c Explicit void cast for unused return values 2014-04-19 17:45:03 +04:00
Pavel Kirienko
799846de02 Scope hiding fixes 2014-04-19 16:32:42 +04:00
Pavel Kirienko
c4c77ea321 Fixed typedef reuse 2014-04-19 15:52:17 +04:00
Pavel Kirienko
ace2cf9d0e Error codes are constants, not enum. That fixes another MISRA violation. 2014-04-19 14:13:55 +04:00
Pavel Kirienko
1853f5c73c Explicit constructors 2014-04-18 19:37:08 +04:00
Pavel Kirienko
c17a2bbd5b Fixed Linux driver: SocketCan driver adds time offset from the provided clock instance, which fixes time synchronization in PerDriverPrivate clock adjustment mode 2014-04-17 16:14:39 +04:00
Pavel Kirienko
c772cea438 Typos in Linux driver 2014-04-16 23:07:25 +04:00
Pavel Kirienko
6435c82d06 Linux driver got default logger that dumps everything into stderr 2014-04-11 19:02:24 +04:00
Pavel Kirienko
18c4f60a46 Fixed select() in Linux driver 2014-04-01 12:00:21 +04:00
Pavel Kirienko
0309d13eae Linux SOcketCAN driver: strict ordering of received CAN frames; added debug header for tests 2014-04-01 02:29:57 +04:00
Pavel Kirienko
c80e0388eb Linux helpers 2014-03-31 20:23:26 +04:00
Pavel Kirienko
788d7348b6 Linux: Auto-detecting clock adjustment mode 2014-03-31 19:52:43 +04:00
Pavel Kirienko
eafdc82b4b SocketCanIface can maintain arbitrary number of frames pending in socket TX queue, which improves performance. By default, max_frames_in_socket_tx_queue = 3. 2014-03-31 17:57:01 +04:00
Pavel Kirienko
39933ba41d Finished Linux driver 2014-03-31 17:13:33 +04:00
Pavel Kirienko
b941c6293c Linux SocketCAN driver (not finished yet) 2014-03-31 00:38:09 +04:00
Pavel Kirienko
c5d4b81009 SystemClockDriver --> SystemClock 2014-03-30 19:55:17 +04:00
Pavel Kirienko
3df6f958f7 Added clock test, superheader uavcan_linux.hpp 2014-03-30 18:58:30 +04:00