Commit Graph

55 Commits

Author SHA1 Message Date
Fred Sundvik
a20d513e3c Add function to check if the keyboard is a master 2016-05-15 19:28:15 +03:00
Fred Sundvik
a0297a892e Rename system to serial_link
Also combined driver.h with serial_link.h
2016-05-15 13:38:59 +03:00
Fred Sundvik
b4ab61171e Configurable serializer thread priority 2016-05-15 12:59:50 +03:00
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