COSA
An Object-Oriented Platform for Arduino Programming
Block4B5BCodec.cpp
Go to the documentation of this file.
1 
21 #include "Block4B5BCodec.hh"
22 
23 /*
24  * Calculating the start symbol JK (5-bits per symbol):
25  * 0x18, 0x11 => 11000.10001 => 10001.11000 => 10.0011.1000 => 0x238
26  */
27 const uint8_t Block4B5BCodec::s_preamble[] __PROGMEM = {
28  0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x18, 0x11
29 };
30 
31 const uint8_t Block4B5BCodec::s_symbols[] __PROGMEM = {
32  0b11110,
33  0b01001,
34  0b10100,
35  0b10101,
36  0b01010,
37  0b01011,
38  0b01110,
39  0b01111,
40  0b10010,
41  0b10011,
42  0b10110,
43  0b10111,
44  0b11010,
45  0b11011,
46  0b11100,
47  0b11101
48 };
49 
50 const uint8_t Block4B5BCodec::s_codes[] __PROGMEM = {
51  0xff, // 0: 0b00000
52  0xff, // 1: 0b00001
53  0xff, // 2: 0b00010
54  0xff, // 3: 0b00011
55  0xff, // 4: 0b00100
56  0xff, // 5: 0b00101
57  0xff, // 6: 0b00110
58  0xff, // 7: 0b00111
59 
60  0xff, // 8: 0b01000
61  1, // 9: 0b01001
62  4, // 10: 0b01010
63  5, // 11: 0b01011
64  0xff, // 12: 0b01100
65  0xff, // 13: 0b01101
66  6, // 14: 0b01110
67  7, // 15: 0b01111
68 
69  0xff, // 16: 0b10000
70  0xff, // 17: 0b10001
71  8, // 18: 0b10010
72  9, // 19: 0b10011
73  2, // 20: 0b10100
74  3, // 21: 0b10101
75  10, // 22: 0b10110
76  11, // 23: 0b10111
77 
78  0xff, // 24: 0b11000
79  0xff, // 25: 0b11001
80  12, // 26: 0b11010
81  13, // 27: 0b11011
82  14, // 28: 0b11100
83  15, // 29: 0b11101
84  0, // 30: 0b11110
85  0xff // 31: 0b11111
86 };
87 
88 
const uint8_t Block4B5BCodec::s_preamble[] __PROGMEM