You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
CubeSatSim/TelemEncoding.h

547 lines
11 KiB

/*
* TelemEncoding.h
*
* Created on: Feb 3, 2014
* Author: fox
*/
#ifndef TELEMENCODING_H_
#define TELEMENCODING_H_
void update_rs(
unsigned char parity[32], // 32-byte encoder state; zero before each frame
unsigned char c // Current data byte to update
);
#define CHARACTER_BITS 10
#define CHARACTERS_PER_LONGWORD 3
#define CHARACTER_MASK ((1<<CHARACTER_BITS)-1)
#define SYNC_CHARACTER -1
#define PARITY_BYTES_PER_CODEWORD 32U // Number of parity symbols in frame
#define NP 32U //For Phil's code
#define DATA_BYTES_PER_CODE_WORD 223
#endif /* TELEMENCODING_H_ */
int Encode_8b10b[][256] = {
// RD = -1 cases
{
/* 00 */ 0x274,
/* 01 */ 0x1d4,
/* 02 */ 0x2d4,
/* 03 */ 0x71b,
/* 04 */ 0x354,
/* 05 */ 0x69b,
/* 06 */ 0x59b,
/* 07 */ 0x78b,
/* 08 */ 0x394,
/* 09 */ 0x65b,
/* 0a */ 0x55b,
/* 0b */ 0x74b,
/* 0c */ 0x4db,
/* 0d */ 0x6cb,
/* 0e */ 0x5cb,
/* 0f */ 0x174,
/* 10 */ 0x1b4,
/* 11 */ 0x63b,
/* 12 */ 0x53b,
/* 13 */ 0x72b,
/* 14 */ 0x4bb,
/* 15 */ 0x6ab,
/* 16 */ 0x5ab,
/* 17 */ 0x3a4,
/* 18 */ 0x334,
/* 19 */ 0x66b,
/* 1a */ 0x56b,
/* 1b */ 0x364,
/* 1c */ 0x4eb,
/* 1d */ 0x2e4,
/* 1e */ 0x1e4,
/* 1f */ 0x2b4,
/* 20 */ 0x679,
/* 21 */ 0x5d9,
/* 22 */ 0x6d9,
/* 23 */ 0x319,
/* 24 */ 0x759,
/* 25 */ 0x299,
/* 26 */ 0x199,
/* 27 */ 0x389,
/* 28 */ 0x799,
/* 29 */ 0x259,
/* 2a */ 0x159,
/* 2b */ 0x349,
/* 2c */ 0x0d9,
/* 2d */ 0x2c9,
/* 2e */ 0x1c9,
/* 2f */ 0x579,
/* 30 */ 0x5b9,
/* 31 */ 0x239,
/* 32 */ 0x139,
/* 33 */ 0x329,
/* 34 */ 0x0b9,
/* 35 */ 0x2a9,
/* 36 */ 0x1a9,
/* 37 */ 0x7a9,
/* 38 */ 0x739,
/* 39 */ 0x269,
/* 3a */ 0x169,
/* 3b */ 0x769,
/* 3c */ 0x0e9,
/* 3d */ 0x6e9,
/* 3e */ 0x5e9,
/* 3f */ 0x6b9,
/* 40 */ 0x675,
/* 41 */ 0x5d5,
/* 42 */ 0x6d5,
/* 43 */ 0x315,
/* 44 */ 0x755,
/* 45 */ 0x295,
/* 46 */ 0x195,
/* 47 */ 0x385,
/* 48 */ 0x795,
/* 49 */ 0x255,
/* 4a */ 0x155,
/* 4b */ 0x345,
/* 4c */ 0x0d5,
/* 4d */ 0x2c5,
/* 4e */ 0x1c5,
/* 4f */ 0x575,
/* 50 */ 0x5b5,
/* 51 */ 0x235,
/* 52 */ 0x135,
/* 53 */ 0x325,
/* 54 */ 0x0b5,
/* 55 */ 0x2a5,
/* 56 */ 0x1a5,
/* 57 */ 0x7a5,
/* 58 */ 0x735,
/* 59 */ 0x265,
/* 5a */ 0x165,
/* 5b */ 0x765,
/* 5c */ 0x0e5,
/* 5d */ 0x6e5,
/* 5e */ 0x5e5,
/* 5f */ 0x6b5,
/* 60 */ 0x673,
/* 61 */ 0x5d3,
/* 62 */ 0x6d3,
/* 63 */ 0x31c,
/* 64 */ 0x753,
/* 65 */ 0x29c,
/* 66 */ 0x19c,
/* 67 */ 0x38c,
/* 68 */ 0x793,
/* 69 */ 0x25c,
/* 6a */ 0x15c,
/* 6b */ 0x34c,
/* 6c */ 0x0dc,
/* 6d */ 0x2cc,
/* 6e */ 0x1cc,
/* 6f */ 0x573,
/* 70 */ 0x5b3,
/* 71 */ 0x23c,
/* 72 */ 0x13c,
/* 73 */ 0x32c,
/* 74 */ 0x0bc,
/* 75 */ 0x2ac,
/* 76 */ 0x1ac,
/* 77 */ 0x7a3,
/* 78 */ 0x733,
/* 79 */ 0x26c,
/* 7a */ 0x16c,
/* 7b */ 0x763,
/* 7c */ 0x0ec,
/* 7d */ 0x6e3,
/* 7e */ 0x5e3,
/* 7f */ 0x6b3,
/* 80 */ 0x272,
/* 81 */ 0x1d2,
/* 82 */ 0x2d2,
/* 83 */ 0x71d,
/* 84 */ 0x352,
/* 85 */ 0x69d,
/* 86 */ 0x59d,
/* 87 */ 0x78d,
/* 88 */ 0x392,
/* 89 */ 0x65d,
/* 8a */ 0x55d,
/* 8b */ 0x74d,
/* 8c */ 0x4dd,
/* 8d */ 0x6cd,
/* 8e */ 0x5cd,
/* 8f */ 0x172,
/* 90 */ 0x1b2,
/* 91 */ 0x63d,
/* 92 */ 0x53d,
/* 93 */ 0x72d,
/* 94 */ 0x4bd,
/* 95 */ 0x6ad,
/* 96 */ 0x5ad,
/* 97 */ 0x3a2,
/* 98 */ 0x332,
/* 99 */ 0x66d,
/* 9a */ 0x56d,
/* 9b */ 0x362,
/* 9c */ 0x4ed,
/* 9d */ 0x2e2,
/* 9e */ 0x1e2,
/* 9f */ 0x2b2,
/* a0 */ 0x67a,
/* a1 */ 0x5da,
/* a2 */ 0x6da,
/* a3 */ 0x31a,
/* a4 */ 0x75a,
/* a5 */ 0x29a,
/* a6 */ 0x19a,
/* a7 */ 0x38a,
/* a8 */ 0x79a,
/* a9 */ 0x25a,
/* aa */ 0x15a,
/* ab */ 0x34a,
/* ac */ 0x0da,
/* ad */ 0x2ca,
/* ae */ 0x1ca,
/* af */ 0x57a,
/* b0 */ 0x5ba,
/* b1 */ 0x23a,
/* b2 */ 0x13a,
/* b3 */ 0x32a,
/* b4 */ 0x0ba,
/* b5 */ 0x2aa,
/* b6 */ 0x1aa,
/* b7 */ 0x7aa,
/* b8 */ 0x73a,
/* b9 */ 0x26a,
/* ba */ 0x16a,
/* bb */ 0x76a,
/* bc */ 0x0ea,
/* bd */ 0x6ea,
/* be */ 0x5ea,
/* bf */ 0x6ba,
/* c0 */ 0x676,
/* c1 */ 0x5d6,
/* c2 */ 0x6d6,
/* c3 */ 0x316,
/* c4 */ 0x756,
/* c5 */ 0x296,
/* c6 */ 0x196,
/* c7 */ 0x386,
/* c8 */ 0x796,
/* c9 */ 0x256,
/* ca */ 0x156,
/* cb */ 0x346,
/* cc */ 0x0d6,
/* cd */ 0x2c6,
/* ce */ 0x1c6,
/* cf */ 0x576,
/* d0 */ 0x5b6,
/* d1 */ 0x236,
/* d2 */ 0x136,
/* d3 */ 0x326,
/* d4 */ 0x0b6,
/* d5 */ 0x2a6,
/* d6 */ 0x1a6,
/* d7 */ 0x7a6,
/* d8 */ 0x736,
/* d9 */ 0x266,
/* da */ 0x166,
/* db */ 0x766,
/* dc */ 0x0e6,
/* dd */ 0x6e6,
/* de */ 0x5e6,
/* df */ 0x6b6,
/* e0 */ 0x271,
/* e1 */ 0x1d1,
/* e2 */ 0x2d1,
/* e3 */ 0x71e,
/* e4 */ 0x351,
/* e5 */ 0x69e,
/* e6 */ 0x59e,
/* e7 */ 0x78e,
/* e8 */ 0x391,
/* e9 */ 0x65e,
/* ea */ 0x55e,
/* eb */ 0x74e,
/* ec */ 0x4de,
/* ed */ 0x6ce,
/* ee */ 0x5ce,
/* ef */ 0x171,
/* f0 */ 0x1b1,
/* f1 */ 0x637,
/* f2 */ 0x537,
/* f3 */ 0x72e,
/* f4 */ 0x4b7,
/* f5 */ 0x6ae,
/* f6 */ 0x5ae,
/* f7 */ 0x3a1,
/* f8 */ 0x331,
/* f9 */ 0x66e,
/* fa */ 0x56e,
/* fb */ 0x361,
/* fc */ 0x4ee,
/* fd */ 0x2e1,
/* fe */ 0x1e1,
/* ff */ 0x2b1,
}, // RD = +1 cases
{
/* 00 */ 0x58b,
/* 01 */ 0x62b,
/* 02 */ 0x52b,
/* 03 */ 0x314,
/* 04 */ 0x4ab,
/* 05 */ 0x294,
/* 06 */ 0x194,
/* 07 */ 0x074,
/* 08 */ 0x46b,
/* 09 */ 0x254,
/* 0a */ 0x154,
/* 0b */ 0x344,
/* 0c */ 0x0d4,
/* 0d */ 0x2c4,
/* 0e */ 0x1c4,
/* 0f */ 0x68b,
/* 10 */ 0x64b,
/* 11 */ 0x234,
/* 12 */ 0x134,
/* 13 */ 0x324,
/* 14 */ 0x0b4,
/* 15 */ 0x2a4,
/* 16 */ 0x1a4,
/* 17 */ 0x45b,
/* 18 */ 0x4cb,
/* 19 */ 0x264,
/* 1a */ 0x164,
/* 1b */ 0x49b,
/* 1c */ 0x0e4,
/* 1d */ 0x51b,
/* 1e */ 0x61b,
/* 1f */ 0x54b,
/* 20 */ 0x189,
/* 21 */ 0x229,
/* 22 */ 0x129,
/* 23 */ 0x719,
/* 24 */ 0x0a9,
/* 25 */ 0x699,
/* 26 */ 0x599,
/* 27 */ 0x479,
/* 28 */ 0x069,
/* 29 */ 0x659,
/* 2a */ 0x559,
/* 2b */ 0x749,
/* 2c */ 0x4d9,
/* 2d */ 0x6c9,
/* 2e */ 0x5c9,
/* 2f */ 0x289,
/* 30 */ 0x249,
/* 31 */ 0x639,
/* 32 */ 0x539,
/* 33 */ 0x729,
/* 34 */ 0x4b9,
/* 35 */ 0x6a9,
/* 36 */ 0x5a9,
/* 37 */ 0x059,
/* 38 */ 0x0c9,
/* 39 */ 0x669,
/* 3a */ 0x569,
/* 3b */ 0x099,
/* 3c */ 0x4e9,
/* 3d */ 0x119,
/* 3e */ 0x219,
/* 3f */ 0x149,
/* 40 */ 0x185,
/* 41 */ 0x225,
/* 42 */ 0x125,
/* 43 */ 0x715,
/* 44 */ 0x0a5,
/* 45 */ 0x695,
/* 46 */ 0x595,
/* 47 */ 0x475,
/* 48 */ 0x065,
/* 49 */ 0x655,
/* 4a */ 0x555,
/* 4b */ 0x745,
/* 4c */ 0x4d5,
/* 4d */ 0x6c5,
/* 4e */ 0x5c5,
/* 4f */ 0x285,
/* 50 */ 0x245,
/* 51 */ 0x635,
/* 52 */ 0x535,
/* 53 */ 0x725,
/* 54 */ 0x4b5,
/* 55 */ 0x6a5,
/* 56 */ 0x5a5,
/* 57 */ 0x055,
/* 58 */ 0x0c5,
/* 59 */ 0x665,
/* 5a */ 0x565,
/* 5b */ 0x095,
/* 5c */ 0x4e5,
/* 5d */ 0x115,
/* 5e */ 0x215,
/* 5f */ 0x145,
/* 60 */ 0x18c,
/* 61 */ 0x22c,
/* 62 */ 0x12c,
/* 63 */ 0x713,
/* 64 */ 0x0ac,
/* 65 */ 0x693,
/* 66 */ 0x593,
/* 67 */ 0x473,
/* 68 */ 0x06c,
/* 69 */ 0x653,
/* 6a */ 0x553,
/* 6b */ 0x743,
/* 6c */ 0x4d3,
/* 6d */ 0x6c3,
/* 6e */ 0x5c3,
/* 6f */ 0x28c,
/* 70 */ 0x24c,
/* 71 */ 0x633,
/* 72 */ 0x533,
/* 73 */ 0x723,
/* 74 */ 0x4b3,
/* 75 */ 0x6a3,
/* 76 */ 0x5a3,
/* 77 */ 0x05c,
/* 78 */ 0x0cc,
/* 79 */ 0x663,
/* 7a */ 0x563,
/* 7b */ 0x09c,
/* 7c */ 0x4e3,
/* 7d */ 0x11c,
/* 7e */ 0x21c,
/* 7f */ 0x14c,
/* 80 */ 0x58d,
/* 81 */ 0x62d,
/* 82 */ 0x52d,
/* 83 */ 0x312,
/* 84 */ 0x4ad,
/* 85 */ 0x292,
/* 86 */ 0x192,
/* 87 */ 0x072,
/* 88 */ 0x46d,
/* 89 */ 0x252,
/* 8a */ 0x152,
/* 8b */ 0x342,
/* 8c */ 0x0d2,
/* 8d */ 0x2c2,
/* 8e */ 0x1c2,
/* 8f */ 0x68d,
/* 90 */ 0x64d,
/* 91 */ 0x232,
/* 92 */ 0x132,
/* 93 */ 0x322,
/* 94 */ 0x0b2,
/* 95 */ 0x2a2,
/* 96 */ 0x1a2,
/* 97 */ 0x45d,
/* 98 */ 0x4cd,
/* 99 */ 0x262,
/* 9a */ 0x162,
/* 9b */ 0x49d,
/* 9c */ 0x0e2,
/* 9d */ 0x51d,
/* 9e */ 0x61d,
/* 9f */ 0x54d,
/* a0 */ 0x18a,
/* a1 */ 0x22a,
/* a2 */ 0x12a,
/* a3 */ 0x71a,
/* a4 */ 0x0aa,
/* a5 */ 0x69a,
/* a6 */ 0x59a,
/* a7 */ 0x47a,
/* a8 */ 0x06a,
/* a9 */ 0x65a,
/* aa */ 0x55a,
/* ab */ 0x74a,
/* ac */ 0x4da,
/* ad */ 0x6ca,
/* ae */ 0x5ca,
/* af */ 0x28a,
/* b0 */ 0x24a,
/* b1 */ 0x63a,
/* b2 */ 0x53a,
/* b3 */ 0x72a,
/* b4 */ 0x4ba,
/* b5 */ 0x6aa,
/* b6 */ 0x5aa,
/* b7 */ 0x05a,
/* b8 */ 0x0ca,
/* b9 */ 0x66a,
/* ba */ 0x56a,
/* bb */ 0x09a,
/* bc */ 0x4ea,
/* bd */ 0x11a,
/* be */ 0x21a,
/* bf */ 0x14a,
/* c0 */ 0x186,
/* c1 */ 0x226,
/* c2 */ 0x126,
/* c3 */ 0x716,
/* c4 */ 0x0a6,
/* c5 */ 0x696,
/* c6 */ 0x596,
/* c7 */ 0x476,
/* c8 */ 0x066,
/* c9 */ 0x656,
/* ca */ 0x556,
/* cb */ 0x746,
/* cc */ 0x4d6,
/* cd */ 0x6c6,
/* ce */ 0x5c6,
/* cf */ 0x286,
/* d0 */ 0x246,
/* d1 */ 0x636,
/* d2 */ 0x536,
/* d3 */ 0x726,
/* d4 */ 0x4b6,
/* d5 */ 0x6a6,
/* d6 */ 0x5a6,
/* d7 */ 0x056,
/* d8 */ 0x0c6,
/* d9 */ 0x666,
/* da */ 0x566,
/* db */ 0x096,
/* dc */ 0x4e6,
/* dd */ 0x116,
/* de */ 0x216,
/* df */ 0x146,
/* e0 */ 0x58e,
/* e1 */ 0x62e,
/* e2 */ 0x52e,
/* e3 */ 0x311,
/* e4 */ 0x4ae,
/* e5 */ 0x291,
/* e6 */ 0x191,
/* e7 */ 0x071,
/* e8 */ 0x46e,
/* e9 */ 0x251,
/* ea */ 0x151,
/* eb */ 0x348,
/* ec */ 0x0d1,
/* ed */ 0x2c8,
/* ee */ 0x1c8,
/* ef */ 0x68e,
/* f0 */ 0x64e,
/* f1 */ 0x231,
/* f2 */ 0x131,
/* f3 */ 0x321,
/* f4 */ 0x0b1,
/* f5 */ 0x2a1,
/* f6 */ 0x1a1,
/* f7 */ 0x45e,
/* f8 */ 0x4ce,
/* f9 */ 0x261,
/* fa */ 0x161,
/* fb */ 0x49e,
/* fc */ 0x0e1,
/* fd */ 0x51e,
/* fe */ 0x61e,
/* ff */ 0x54e,
} };

Powered by TurnKey Linux.