72 Commits

Author SHA1 Message Date
Pavel Kirienko
697a55aebb Refactoring: Frame Index field size increased, Trnasfer ID field size reduced. NodeID class added, Frame class rewritten with stricter runtime checks. All tests were updated accordingly. 2014-02-17 12:35:12 +04:00
Pavel Kirienko
20778f1acb Better explanation of frame filtering logic 2014-02-15 21:08:45 +04:00
Pavel Kirienko
06d757b78e Tests refactoring - mocks and helpers were separated from testing logic 2014-02-15 21:04:12 +04:00
Pavel Kirienko
e7ce9fb586 Extra logging in TransferListener 2014-02-14 19:34:34 +04:00
Pavel Kirienko
20c828912f Dispatcher class, tests to come 2014-02-14 19:19:23 +04:00
Pavel Kirienko
69fa8643d4 Added RxCanFrame::toString() 2014-02-14 18:45:49 +04:00
Pavel Kirienko
d81a96beb2 TransferListener::cleanup() test 2014-02-14 15:53:28 +04:00
Pavel Kirienko
02cbd60efe Outgoing Transfer ID registry 2014-02-14 15:04:26 +04:00
Pavel Kirienko
96f8c9aa09 TransferListenerBase holds its DataTypeDescriptor, which is needed for the upcoming dispatcher class 2014-02-13 14:06:59 +04:00
Pavel Kirienko
328f98e605 Typo 2014-02-13 13:04:50 +04:00
Pavel Kirienko
2d2116f624 TransferListener implemented and tested 2014-02-13 13:01:08 +04:00
Pavel Kirienko
f78a2a452c Removing the buffer after handleIncomingTransfer() 2014-02-12 13:40:54 +04:00
Pavel Kirienko
4a7efc19d0 Fixed specialization of TransferBufferManager<0, 0> 2014-02-12 13:29:31 +04:00
Pavel Kirienko
a1ead1b90b TransferListener implemented, tests to be added 2014-02-12 13:27:49 +04:00
Pavel Kirienko
5ceaafe419 TransferReceiver: on-the-fly CRC extraction from multi frame transfers saves 2 to 3 bytes of payload buffers 2014-02-12 12:34:48 +04:00
Pavel Kirienko
0533539c7c Starting refactoring of the receiving logic 2014-02-12 10:49:32 +04:00
Pavel Kirienko
0bc62a74c9 TransferListener partially implemented 2014-02-11 21:55:36 +04:00
Pavel Kirienko
0acf1b976b Explicit specialization for empty TransferBuffer (for single frame transfers) 2014-02-11 21:44:43 +04:00
Pavel Kirienko
5be2801fa1 Dynamic buffer size limitation 2014-02-11 21:26:18 +04:00
Pavel Kirienko
031f90f326 Added TransferBufferAccessor, saves few bytes on stack/heap 2014-02-11 20:13:19 +04:00
Pavel Kirienko
25d285e209 Map<>, TransferBufferManager - isEmpty() calls for runtime checks 2014-02-11 19:56:09 +04:00
Pavel Kirienko
bb215d3c15 Map<>, TransferBufferManager - isEmpty() calls for runtime checks 2014-02-11 19:50:15 +04:00
Pavel Kirienko
fe2126536d TransferReceiver: removed field for buffer manager key in order to save some memory (at least 2 bytes) 2014-02-11 19:27:52 +04:00
Pavel Kirienko
8a007c8522 Fixed destruction/copying of TransferReceiver 2014-02-11 19:18:43 +04:00
Pavel Kirienko
4c1a4a32c7 Map<>::insert() --> Value*, saves one lookup for TransferListener::handleFrame() 2014-02-11 19:11:36 +04:00
Pavel Kirienko
445ec8173c IncomingTransfer for single frame and multi frame transfers 2014-02-11 18:08:20 +04:00
Pavel Kirienko
55ea9963f0 Minor renaming in TransferReceiver 2014-02-11 15:34:19 +04:00
Pavel Kirienko
afd265e8c6 TransferReceiver made 32 bit less in size 2014-02-11 14:51:23 +04:00
Pavel Kirienko
557278c6ac Added tests for UTC transfer timestamping 2014-02-11 14:41:24 +04:00
Pavel Kirienko
696451baca RX frames have two timestamps: monotonic - for protocol timings management; utc - for application-level timestamping 2014-02-11 14:32:45 +04:00
Pavel Kirienko
b8f6bf3ffa Minor renaming in DataTypeDescriptor 2014-02-11 13:55:50 +04:00
Pavel Kirienko
d4e4f1a416 Added CRC initializing constructor 2014-02-11 12:36:54 +04:00
Pavel Kirienko
78ff31f9ad TransferBufferManager: using TransferBufferManagerKey instead of plain Node ID, this allows to distinguish transfers of different type from the same Node ID, which is necessary for message broadcasting/unicasting 2014-02-11 12:21:25 +04:00
Pavel Kirienko
149ac87a54 TransferReceiver - new tests, fixed logic 2014-02-10 20:35:35 +04:00
Pavel Kirienko
dae9718903 Cleaner copyableness of transfer buffers 2014-02-10 18:51:50 +04:00
Pavel Kirienko
e9680c04d0 TransferReceiver - fixed assignment operator 2014-02-10 18:50:39 +04:00
Pavel Kirienko
b2adf25485 Transfer receiver 2014-02-10 18:35:58 +04:00
Pavel Kirienko
12111e63d4 Frame::toString() with tests 2014-02-10 13:39:27 +04:00
Pavel Kirienko
6c76e8a25d Transfer buffer: removed timestamps and cleanup() 2014-02-09 21:35:35 +04:00
Pavel Kirienko
017863a32d Explicit noncopyableness, static_assert.hpp --> util.hpp 2014-02-09 21:28:10 +04:00
Pavel Kirienko
56a69a4ba0 Typo 2014-02-07 19:55:02 +04:00
Pavel Kirienko
070e85d2ab Removed TransferIDRegistry in favor of Map<> 2014-02-06 22:26:55 +04:00
Pavel Kirienko
ad51ca5c0d KV container for TransferID 2014-02-06 22:23:51 +04:00
Pavel Kirienko
7ed9c43e95 DataTypeDescriptor, DataTypeHash 2014-02-06 15:50:14 +04:00
Pavel Kirienko
544940fd6b CRC16 class 2014-02-06 15:30:16 +04:00
Pavel Kirienko
cc991efdc6 CanIOManager::send() unblocks as soon as the frame was transmitted, instead of waiting for the entire queue to flush 2014-02-06 12:41:09 +04:00
Pavel Kirienko
805fea8234 Added prefix TRANSFER_TYPE_ to enum TransferType 2014-02-06 12:24:24 +04:00
Pavel Kirienko
46657e8449 TransferIDRegistry - grouping by data type kind instead of transfer type 2014-02-06 12:23:20 +04:00
Pavel Kirienko
261dd546cd Implemented TransferBufferManager 2014-02-06 00:08:51 +04:00
Pavel Kirienko
690e0257dc cppcheck: removed flag --inconclusive as it was producing some stupid false positives 2014-02-06 00:08:18 +04:00