Commit graph

52 commits

Author SHA1 Message Date
Fred Sundvik
a08bcea998 Don't accept remote objects with the wrong size
Fixes memory corruption when the crc happens to match, but the size
doesn't.
2016-05-15 11:58:20 +03:00
Fred Sundvik
3b422d2ac4 Add debug print for serial link errors
This is disabled by default
2016-05-15 11:36:39 +03:00
Fred Sundvik
59657355d2 Master mode remains active
It remains active even if the USB link is suspended or otherwise
temporarilly goes down.
2016-03-13 21:38:51 +02:00
Fred Sundvik
f7275f0ede Configurable baud setting 2016-03-12 22:37:04 +02:00
Fred Sundvik
d835ad91a3 Resend the keyboard state every ms
In case there's some errors on the link, and the packet gets lost
2016-03-12 20:08:08 +02:00
Fred Sundvik
32f0171d39 Fix crash when receiving unregistered remotes 2016-03-12 19:41:34 +02:00
Fred Sundvik
11bd4ba0dd Remote object callable from many places
Change init_transport to add_remote_objects, so that it can be
called many times from different places.
2016-03-12 19:35:09 +02:00
Fred Sundvik
168c5b679f Call remote matrix update, when the matrix changes 2016-02-28 23:58:47 +02:00
Fred Sundvik
6fe6d111bf Send the keyboard matrix over the serial link 2016-02-28 22:52:30 +02:00
Fred Sundvik
d8d4622802 Improve serial link initialization, and add driver 2016-02-28 21:46:29 +02:00
Fred Sundvik
46482460fa Some small fixes for the serial update loop 2016-02-28 15:52:03 +02:00
Fred Sundvik
9cb139adc4 Add simple loop for updating the serial link 2016-02-27 22:28:35 +02:00
Fred Sundvik
36e4869531 Create a thread for the serial link 2016-02-21 23:52:00 +02:00
Fred Sundvik
6873b17117 Support for Chibios compilation
Remove some warnings, change the include paths.
2016-02-21 23:17:59 +02:00
Fred Sundvik
8cbfe79dd9 Add master to single slave transport 2016-02-21 21:47:40 +02:00
Fred Sundvik
7b88b8b7e1 Add slave to master transport 2016-02-21 21:32:01 +02:00
Fred Sundvik
64b7efeb72 Add proper initialization of transport buffers 2016-02-21 21:15:42 +02:00
Fred Sundvik
415ab91c9d Add master to slave transport 2016-02-21 21:04:42 +02:00
Fred Sundvik
fe1db50fc3 Writing signals events 2016-02-21 18:51:10 +02:00
Fred Sundvik
2710361cd8 Change the triple buffer object interface 2016-02-21 18:30:04 +02:00
Fred Sundvik
679bfe7c54 More transport WIP 2016-02-21 17:33:31 +02:00
Fred Sundvik
4ee6eadf9e Local and remote objects WIP 2016-02-21 12:53:51 +02:00
Fred Sundvik
b7059d35f9 Working triple buffering 2016-02-21 01:07:44 +02:00
Fred Sundvik
8e2d70d11f Simplify the triple buffer implementation 2016-02-21 00:44:25 +02:00
Fred Sundvik
4bb5733cdc Updates to triple buffer 2016-02-20 23:40:52 +02:00
Fred Sundvik
50edb3d90c Add first version of triple buffered object 2016-02-20 22:22:42 +02:00
Fred Sundvik
c78eefba49 Add first transport tests 2016-02-20 15:49:31 +02:00
Fred Sundvik
ea346125e8 Add some validation for invalid router destinations 2016-02-20 15:28:42 +02:00
Fred Sundvik
532f98eef6 Support for other links sending to master 2016-02-20 15:14:40 +02:00
Fred Sundvik
c28e19c546 First link sending to master 2016-02-20 15:02:53 +02:00
Fred Sundvik
82b5037b9d Add master send to specific destinations 2016-02-20 14:52:17 +02:00
Fred Sundvik
cee5406ed7 Add complete master broadcast test 2016-02-20 14:32:26 +02:00
Fred Sundvik
4b9fccc756 Start implement router 2016-02-20 13:59:48 +02:00
Fred Sundvik
5a1600e24f Add link parameter 2016-02-20 12:06:23 +02:00
Fred Sundvik
419908e5ef Hide the byte stuffer state inside it 2016-02-17 09:07:38 +02:00
Fred Sundvik
8d50880686 Use memcpy instead of cast to avoid alignment issues 2016-02-14 21:49:31 +02:00
Fred Sundvik
f22d2543b1 Rename route_frame to route_incoming_frame 2016-02-14 21:34:40 +02:00
Fred Sundvik
0eb62c4ce6 Rename recv_frame to validator_recv_frame 2016-02-14 21:33:14 +02:00
Fred Sundvik
2a6696bd3d Add validator send frame 2016-02-14 21:31:01 +02:00
Fred Sundvik
62058329ff Add crc32 validation of received frames 2016-02-14 21:13:16 +02:00
Fred Sundvik
a3ec3bbef8 Start implement frame validator 2016-02-14 20:45:59 +02:00
Fred Sundvik
713465fb41 Add some full round trip tests
Mostly to ensure that the receive and send framing works the same
way. Especially for the special case with 254 non-zeros.
2016-02-14 20:07:51 +02:00
Fred Sundvik
6956c177da Add byte stuffing send support for large frames 2016-02-14 19:56:22 +02:00
Fred Sundvik
2f3ea76428 Fix name of some unit tests 2016-02-14 19:03:34 +02:00
Fred Sundvik
f3beeb0270 Hanlde sending of zero bytes for small packets 2016-02-14 18:59:01 +02:00
Fred Sundvik
a089eaa868 Add sending of small frames with no zeroes 2016-02-14 17:45:25 +02:00
Fred Sundvik
26537474ae Add byte stuffer recv handling of too long frames 2016-02-14 15:57:44 +02:00
Fred Sundvik
e8cb6d8023 Bytestuffer recv handling of long frames 2016-02-14 15:28:57 +02:00
Fred Sundvik
eefb5b5634 Mutiple frame handling for byte stuffer
Also handles unexpected data.
2016-02-14 14:25:54 +02:00
Fred Sundvik
ce3a21cbea Implement receive of valid small byte stuffed frames 2016-02-14 14:04:51 +02:00