bpsk-demod/src/varcode.c

269 lines
8.8 KiB
C

#include <stdint.h>
char varcode_to_char(uint32_t c) {
switch (c) {
case 683: return '\x00';
case 731: return '\x01';
case 749: return '\x02';
case 887: return '\x03';
case 747: return '\x04';
case 863: return '\x05';
case 751: return '\x06';
case 765: return '\x07';
case 767: return '\x08';
case 239: return '\x09';
case 29: return '\x0A';
case 879: return '\x0B';
case 733: return '\x0C';
case 31: return '\x0D';
case 885: return '\x0E';
case 939: return '\x0F';
case 759: return '\x10';
case 757: return '\x11';
case 941: return '\x12';
case 943: return '\x13';
case 859: return '\x14';
case 875: return '\x15';
case 877: return '\x16';
case 855: return '\x17';
case 891: return '\x18';
case 893: return '\x19';
case 951: return '\x1A';
case 853: return '\x1B';
case 861: return '\x1C';
case 955: return '\x1D';
case 763: return '\x1E';
case 895: return '\x1F';
case 1: return ' ';
case 511: return '!';
case 351: return '"';
case 501: return '#';
case 475: return '$';
case 725: return '%';
case 699: return '&';
case 383: return '\'';
case 251: return '(';
case 247: return ')';
case 367: return '*';
case 479: return '+';
case 117: return ',';
case 53: return '-';
case 87: return '.';
case 431: return '/';
case 183: return '0';
case 189: return '1';
case 237: return '2';
case 255: return '3';
case 375: return '4';
case 347: return '5';
case 363: return '6';
case 429: return '7';
case 427: return '8';
case 439: return '9';
case 245: return ':';
case 445: return ';';
case 493: return '<';
case 85: return '=';
case 471: return '>';
case 687: return '?';
case 701: return '@';
case 125: return 'A';
case 235: return 'B';
case 173: return 'C';
case 181: return 'D';
case 119: return 'E';
case 219: return 'F';
case 253: return 'G';
case 341: return 'H';
case 127: return 'I';
case 509: return 'J';
case 381: return 'K';
case 215: return 'L';
case 187: return 'M';
case 221: return 'N';
case 171: return 'O';
case 213: return 'P';
case 477: return 'Q';
case 175: return 'R';
case 111: return 'S';
case 109: return 'T';
case 343: return 'U';
case 437: return 'V';
case 349: return 'W';
case 373: return 'X';
case 379: return 'Y';
case 685: return 'Z';
case 503: return '[';
case 495: return '\\';
case 507: return ']';
case 703: return '^';
case 365: return '_';
case 735: return '`';
case 11: return 'a';
case 95: return 'b';
case 47: return 'c';
case 45: return 'd';
case 3: return 'e';
case 61: return 'f';
case 91: return 'g';
case 43: return 'h';
case 13: return 'i';
case 491: return 'j';
case 191: return 'k';
case 27: return 'l';
case 59: return 'm';
case 15: return 'n';
case 7: return 'o';
case 63: return 'p';
case 447: return 'q';
case 21: return 'r';
case 23: return 's';
case 5: return 't';
case 55: return 'u';
case 123: return 'v';
case 107: return 'w';
case 223: return 'x';
case 93: return 'y';
case 469: return 'z';
case 695: return '{';
case 443: return '|';
case 693: return '}';
case 727: return '~';
case 949: return '\x7F';
}
return '\0';
}
const char *char_to_varcode(char c) {
switch (c) {
case '\x00': return "1010101011";
case '\x01': return "1011011011";
case '\x02': return "1011101101";
case '\x03': return "1101110111";
case '\x04': return "1011101011";
case '\x05': return "1101011111";
case '\x06': return "1011101111";
case '\x07': return "1011111101";
case '\x08': return "1011111111";
case '\x09': return "11101111";
case '\x0A': return "11101";
case '\x0B': return "1101101111";
case '\x0C': return "1011011101";
case '\x0D': return "11111";
case '\x0E': return "1101110101";
case '\x0F': return "1110101011";
case '\x10': return "1011110111";
case '\x11': return "1011110101";
case '\x12': return "1110101101";
case '\x13': return "1110101111";
case '\x14': return "1101011011";
case '\x15': return "1101101011";
case '\x16': return "1101101101";
case '\x17': return "1101010111";
case '\x18': return "1101111011";
case '\x19': return "1101111101";
case '\x1A': return "1110110111";
case '\x1B': return "1101010101";
case '\x1C': return "1101011101";
case '\x1D': return "1110111011";
case '\x1E': return "1011111011";
case '\x1F': return "1101111111";
case ' ': return "1";
case '!': return "111111111";
case '"': return "101011111";
case '#': return "111110101";
case '$': return "111011011";
case '%': return "1011010101";
case '&': return "1010111011";
case '\'': return "101111111";
case '(': return "11111011";
case ')': return "11110111";
case '*': return "101101111";
case '+': return "111011111";
case ',': return "1110101";
case '-': return "110101";
case '.': return "1010111";
case '/': return "110101111";
case '0': return "10110111";
case '1': return "10111101";
case '2': return "11101101";
case '3': return "11111111";
case '4': return "101110111";
case '5': return "101011011";
case '6': return "101101011";
case '7': return "110101101";
case '8': return "110101011";
case '9': return "110110111";
case ':': return "11110101";
case ';': return "110111101";
case '<': return "111101101";
case '=': return "1010101";
case '>': return "111010111";
case '?': return "1010101111";
case '@': return "1010111101";
case 'A': return "1111101";
case 'B': return "11101011";
case 'C': return "10101101";
case 'D': return "10110101";
case 'E': return "1110111";
case 'F': return "11011011";
case 'G': return "11111101";
case 'H': return "101010101";
case 'I': return "1111111";
case 'J': return "111111101";
case 'K': return "101111101";
case 'L': return "11010111";
case 'M': return "10111011";
case 'N': return "11011101";
case 'O': return "10101011";
case 'P': return "11010101";
case 'Q': return "111011101";
case 'R': return "10101111";
case 'S': return "1101111";
case 'T': return "1101101";
case 'U': return "101010111";
case 'V': return "110110101";
case 'W': return "101011101";
case 'X': return "101110101";
case 'Y': return "101111011";
case 'Z': return "1010101101";
case '[': return "111110111";
case '\\': return "111101111";
case ']': return "111111011";
case '^': return "1010111111";
case '_': return "101101101";
case '`': return "1011011111";
case 'a': return "1011";
case 'b': return "1011111";
case 'c': return "101111";
case 'd': return "101101";
case 'e': return "11";
case 'f': return "111101";
case 'g': return "1011011";
case 'h': return "101011";
case 'i': return "1101";
case 'j': return "111101011";
case 'k': return "10111111";
case 'l': return "11011";
case 'm': return "111011";
case 'n': return "1111";
case 'o': return "111";
case 'p': return "111111";
case 'q': return "110111111";
case 'r': return "10101";
case 's': return "10111";
case 't': return "101";
case 'u': return "110111";
case 'v': return "1111011";
case 'w': return "1101011";
case 'x': return "11011111";
case 'y': return "1011101";
case 'z': return "111010101";
case '{': return "1010110111";
case '|': return "110111011";
case '}': return "1010110101";
case '~': return "1011010111";
case '\x7F': return "1110110101";
}
return "";
}