RC_Simulator.....By Jafar Qutteineh with mods to connect my Futaba 9C to \'RC Helicopter\' by http://www.alphamacsoftware.com/

Dependencies:   mbed

Committer:
cbayley
Date:
Thu Dec 15 03:24:33 2011 +0000
Revision:
0:65b9d8f621d2
Initial

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cbayley 0:65b9d8f621d2 1 /* asciihid.h */
cbayley 0:65b9d8f621d2 2 /* ASCII to HID Keyboard lookup table */
cbayley 0:65b9d8f621d2 3 /* Copyright (c) Phil Wright 2008 */
cbayley 0:65b9d8f621d2 4
cbayley 0:65b9d8f621d2 5 #ifndef HIDTABLE_H
cbayley 0:65b9d8f621d2 6 #define HIDTABLE_H
cbayley 0:65b9d8f621d2 7
cbayley 0:65b9d8f621d2 8 /* Default is UK keyboard layout */
cbayley 0:65b9d8f621d2 9 /* #define US_KEYBOARD */
cbayley 0:65b9d8f621d2 10
cbayley 0:65b9d8f621d2 11 /* Modifiers */
cbayley 0:65b9d8f621d2 12 #define SHIFT (1<<1)
cbayley 0:65b9d8f621d2 13
cbayley 0:65b9d8f621d2 14 typedef struct {
cbayley 0:65b9d8f621d2 15 unsigned char usage;
cbayley 0:65b9d8f621d2 16 unsigned char modifier;
cbayley 0:65b9d8f621d2 17 } KEYMAP;
cbayley 0:65b9d8f621d2 18
cbayley 0:65b9d8f621d2 19 #ifdef US_KEYBOARD
cbayley 0:65b9d8f621d2 20 /* US keyboard (as HID standard) */
cbayley 0:65b9d8f621d2 21 #define KEYMAP_SIZE (128)
cbayley 0:65b9d8f621d2 22 const KEYMAP keymap[KEYMAP_SIZE] = {
cbayley 0:65b9d8f621d2 23 {0, 0}, /* NUL */
cbayley 0:65b9d8f621d2 24 {0, 0}, /* SOH */
cbayley 0:65b9d8f621d2 25 {0, 0}, /* STX */
cbayley 0:65b9d8f621d2 26 {0, 0}, /* ETX */
cbayley 0:65b9d8f621d2 27 {0, 0}, /* EOT */
cbayley 0:65b9d8f621d2 28 {0, 0}, /* ENQ */
cbayley 0:65b9d8f621d2 29 {0, 0}, /* ACK */
cbayley 0:65b9d8f621d2 30 {0, 0}, /* BEL */
cbayley 0:65b9d8f621d2 31 {0x2a, 0}, /* BS */ /* Keyboard Delete (Backspace) */
cbayley 0:65b9d8f621d2 32 {0x2b, 0}, /* TAB */ /* Keyboard Tab */
cbayley 0:65b9d8f621d2 33 {0x28, 0}, /* LF */ /* Keyboard Return (Enter) */
cbayley 0:65b9d8f621d2 34 {0, 0}, /* VT */
cbayley 0:65b9d8f621d2 35 {0, 0}, /* FF */
cbayley 0:65b9d8f621d2 36 {0, 0}, /* CR */
cbayley 0:65b9d8f621d2 37 {0, 0}, /* SO */
cbayley 0:65b9d8f621d2 38 {0, 0}, /* SI */
cbayley 0:65b9d8f621d2 39 {0, 0}, /* DEL */
cbayley 0:65b9d8f621d2 40 {0, 0}, /* DC1 */
cbayley 0:65b9d8f621d2 41 {0, 0}, /* DC2 */
cbayley 0:65b9d8f621d2 42 {0, 0}, /* DC3 */
cbayley 0:65b9d8f621d2 43 {0, 0}, /* DC4 */
cbayley 0:65b9d8f621d2 44 {0, 0}, /* NAK */
cbayley 0:65b9d8f621d2 45 {0, 0}, /* SYN */
cbayley 0:65b9d8f621d2 46 {0, 0}, /* ETB */
cbayley 0:65b9d8f621d2 47 {0, 0}, /* CAN */
cbayley 0:65b9d8f621d2 48 {0, 0}, /* EM */
cbayley 0:65b9d8f621d2 49 {0, 0}, /* SUB */
cbayley 0:65b9d8f621d2 50 {0, 0}, /* ESC */
cbayley 0:65b9d8f621d2 51 {0, 0}, /* FS */
cbayley 0:65b9d8f621d2 52 {0, 0}, /* GS */
cbayley 0:65b9d8f621d2 53 {0, 0}, /* RS */
cbayley 0:65b9d8f621d2 54 {0, 0}, /* US */
cbayley 0:65b9d8f621d2 55 {0x2c, 0}, /* */
cbayley 0:65b9d8f621d2 56 {0x1e, SHIFT}, /* ! */
cbayley 0:65b9d8f621d2 57 {0x34, SHIFT}, /* " */
cbayley 0:65b9d8f621d2 58 {0x20, SHIFT}, /* # */
cbayley 0:65b9d8f621d2 59 {0x21, SHIFT}, /* $ */
cbayley 0:65b9d8f621d2 60 {0x22, SHIFT}, /* % */
cbayley 0:65b9d8f621d2 61 {0x24, SHIFT}, /* & */
cbayley 0:65b9d8f621d2 62 {0x34, 0}, /* ' */
cbayley 0:65b9d8f621d2 63 {0x26, SHIFT}, /* ( */
cbayley 0:65b9d8f621d2 64 {0x27, SHIFT}, /* ) */
cbayley 0:65b9d8f621d2 65 {0x25, SHIFT}, /* * */
cbayley 0:65b9d8f621d2 66 {0x2e, SHIFT}, /* + */
cbayley 0:65b9d8f621d2 67 {0x36, 0}, /* , */
cbayley 0:65b9d8f621d2 68 {0x2d, 0}, /* - */
cbayley 0:65b9d8f621d2 69 {0x37, 0}, /* . */
cbayley 0:65b9d8f621d2 70 {0x38, 0}, /* / */
cbayley 0:65b9d8f621d2 71 {0x27, 0}, /* 0 */
cbayley 0:65b9d8f621d2 72 {0x1e, 0}, /* 1 */
cbayley 0:65b9d8f621d2 73 {0x1f, 0}, /* 2 */
cbayley 0:65b9d8f621d2 74 {0x20, 0}, /* 3 */
cbayley 0:65b9d8f621d2 75 {0x21, 0}, /* 4 */
cbayley 0:65b9d8f621d2 76 {0x22, 0}, /* 5 */
cbayley 0:65b9d8f621d2 77 {0x23, 0}, /* 6 */
cbayley 0:65b9d8f621d2 78 {0x24, 0}, /* 7 */
cbayley 0:65b9d8f621d2 79 {0x25, 0}, /* 8 */
cbayley 0:65b9d8f621d2 80 {0x26, 0}, /* 9 */
cbayley 0:65b9d8f621d2 81 {0x33, SHIFT}, /* : */
cbayley 0:65b9d8f621d2 82 {0x33, 0}, /* ; */
cbayley 0:65b9d8f621d2 83 {0x36, SHIFT}, /* < */
cbayley 0:65b9d8f621d2 84 {0x2e, 0}, /* = */
cbayley 0:65b9d8f621d2 85 {0x37, SHIFT}, /* > */
cbayley 0:65b9d8f621d2 86 {0x38, SHIFT}, /* ? */
cbayley 0:65b9d8f621d2 87 {0x1f, SHIFT}, /* @ */
cbayley 0:65b9d8f621d2 88 {0x04, SHIFT}, /* A */
cbayley 0:65b9d8f621d2 89 {0x05, SHIFT}, /* B */
cbayley 0:65b9d8f621d2 90 {0x06, SHIFT}, /* C */
cbayley 0:65b9d8f621d2 91 {0x07, SHIFT}, /* D */
cbayley 0:65b9d8f621d2 92 {0x08, SHIFT}, /* E */
cbayley 0:65b9d8f621d2 93 {0x09, SHIFT}, /* F */
cbayley 0:65b9d8f621d2 94 {0x0a, SHIFT}, /* G */
cbayley 0:65b9d8f621d2 95 {0x0b, SHIFT}, /* H */
cbayley 0:65b9d8f621d2 96 {0x0c, SHIFT}, /* I */
cbayley 0:65b9d8f621d2 97 {0x0d, SHIFT}, /* J */
cbayley 0:65b9d8f621d2 98 {0x0e, SHIFT}, /* K */
cbayley 0:65b9d8f621d2 99 {0x0f, SHIFT}, /* L */
cbayley 0:65b9d8f621d2 100 {0x10, SHIFT}, /* M */
cbayley 0:65b9d8f621d2 101 {0x11, SHIFT}, /* N */
cbayley 0:65b9d8f621d2 102 {0x12, SHIFT}, /* O */
cbayley 0:65b9d8f621d2 103 {0x13, SHIFT}, /* P */
cbayley 0:65b9d8f621d2 104 {0x14, SHIFT}, /* Q */
cbayley 0:65b9d8f621d2 105 {0x15, SHIFT}, /* R */
cbayley 0:65b9d8f621d2 106 {0x16, SHIFT}, /* S */
cbayley 0:65b9d8f621d2 107 {0x17, SHIFT}, /* T */
cbayley 0:65b9d8f621d2 108 {0x18, SHIFT}, /* U */
cbayley 0:65b9d8f621d2 109 {0x19, SHIFT}, /* V */
cbayley 0:65b9d8f621d2 110 {0x1a, SHIFT}, /* W */
cbayley 0:65b9d8f621d2 111 {0x1b, SHIFT}, /* X */
cbayley 0:65b9d8f621d2 112 {0x1c, SHIFT}, /* Y */
cbayley 0:65b9d8f621d2 113 {0x1d, SHIFT}, /* Z */
cbayley 0:65b9d8f621d2 114 {0x2f, 0}, /* [ */
cbayley 0:65b9d8f621d2 115 {0x31, 0}, /* \ */
cbayley 0:65b9d8f621d2 116 {0x30, 0}, /* ] */
cbayley 0:65b9d8f621d2 117 {0x23, SHIFT}, /* ^ */
cbayley 0:65b9d8f621d2 118 {0x2d, SHIFT}, /* _ */
cbayley 0:65b9d8f621d2 119 {0x35, 0}, /* ` */
cbayley 0:65b9d8f621d2 120 {0x04, 0}, /* a */
cbayley 0:65b9d8f621d2 121 {0x05, 0}, /* b */
cbayley 0:65b9d8f621d2 122 {0x06, 0}, /* c */
cbayley 0:65b9d8f621d2 123 {0x07, 0}, /* d */
cbayley 0:65b9d8f621d2 124 {0x08, 0}, /* e */
cbayley 0:65b9d8f621d2 125 {0x09, 0}, /* f */
cbayley 0:65b9d8f621d2 126 {0x0a, 0}, /* g */
cbayley 0:65b9d8f621d2 127 {0x0b, 0}, /* h */
cbayley 0:65b9d8f621d2 128 {0x0c, 0}, /* i */
cbayley 0:65b9d8f621d2 129 {0x0d, 0}, /* j */
cbayley 0:65b9d8f621d2 130 {0x0e, 0}, /* k */
cbayley 0:65b9d8f621d2 131 {0x0f, 0}, /* l */
cbayley 0:65b9d8f621d2 132 {0x10, 0}, /* m */
cbayley 0:65b9d8f621d2 133 {0x11, 0}, /* n */
cbayley 0:65b9d8f621d2 134 {0x12, 0}, /* o */
cbayley 0:65b9d8f621d2 135 {0x13, 0}, /* p */
cbayley 0:65b9d8f621d2 136 {0x14, 0}, /* q */
cbayley 0:65b9d8f621d2 137 {0x15, 0}, /* r */
cbayley 0:65b9d8f621d2 138 {0x16, 0}, /* s */
cbayley 0:65b9d8f621d2 139 {0x17, 0}, /* t */
cbayley 0:65b9d8f621d2 140 {0x18, 0}, /* u */
cbayley 0:65b9d8f621d2 141 {0x19, 0}, /* v */
cbayley 0:65b9d8f621d2 142 {0x1a, 0}, /* w */
cbayley 0:65b9d8f621d2 143 {0x1b, 0}, /* x */
cbayley 0:65b9d8f621d2 144 {0x1c, 0}, /* y */
cbayley 0:65b9d8f621d2 145 {0x1d, 0}, /* z */
cbayley 0:65b9d8f621d2 146 {0x2f, SHIFT}, /* { */
cbayley 0:65b9d8f621d2 147 {0x31, SHIFT}, /* | */
cbayley 0:65b9d8f621d2 148 {0x30, SHIFT}, /* } */
cbayley 0:65b9d8f621d2 149 {0x35, SHIFT}, /* ~ */
cbayley 0:65b9d8f621d2 150 {0,0}, /* DEL */
cbayley 0:65b9d8f621d2 151 };
cbayley 0:65b9d8f621d2 152
cbayley 0:65b9d8f621d2 153 #else
cbayley 0:65b9d8f621d2 154 /* UK keyboard */
cbayley 0:65b9d8f621d2 155 #define KEYMAP_SIZE (128)
cbayley 0:65b9d8f621d2 156 const KEYMAP keymap[KEYMAP_SIZE] = {
cbayley 0:65b9d8f621d2 157 {0, 0}, /* NUL */
cbayley 0:65b9d8f621d2 158 {0, 0}, /* SOH */
cbayley 0:65b9d8f621d2 159 {0, 0}, /* STX */
cbayley 0:65b9d8f621d2 160 {0, 0}, /* ETX */
cbayley 0:65b9d8f621d2 161 {0, 0}, /* EOT */
cbayley 0:65b9d8f621d2 162 {0, 0}, /* ENQ */
cbayley 0:65b9d8f621d2 163 {0, 0}, /* ACK */
cbayley 0:65b9d8f621d2 164 {0, 0}, /* BEL */
cbayley 0:65b9d8f621d2 165 {0x2a, 0}, /* BS */ /* Keyboard Delete (Backspace) */
cbayley 0:65b9d8f621d2 166 {0x2b, 0}, /* TAB */ /* Keyboard Tab */
cbayley 0:65b9d8f621d2 167 {0x28, 0}, /* LF */ /* Keyboard Return (Enter) */
cbayley 0:65b9d8f621d2 168 {0, 0}, /* VT */
cbayley 0:65b9d8f621d2 169 {0, 0}, /* FF */
cbayley 0:65b9d8f621d2 170 {0, 0}, /* CR */
cbayley 0:65b9d8f621d2 171 {0, 0}, /* SO */
cbayley 0:65b9d8f621d2 172 {0, 0}, /* SI */
cbayley 0:65b9d8f621d2 173 {0, 0}, /* DEL */
cbayley 0:65b9d8f621d2 174 {0, 0}, /* DC1 */
cbayley 0:65b9d8f621d2 175 {0, 0}, /* DC2 */
cbayley 0:65b9d8f621d2 176 {0, 0}, /* DC3 */
cbayley 0:65b9d8f621d2 177 {0, 0}, /* DC4 */
cbayley 0:65b9d8f621d2 178 {0, 0}, /* NAK */
cbayley 0:65b9d8f621d2 179 {0, 0}, /* SYN */
cbayley 0:65b9d8f621d2 180 {0, 0}, /* ETB */
cbayley 0:65b9d8f621d2 181 {0, 0}, /* CAN */
cbayley 0:65b9d8f621d2 182 {0, 0}, /* EM */
cbayley 0:65b9d8f621d2 183 {0, 0}, /* SUB */
cbayley 0:65b9d8f621d2 184 {0, 0}, /* ESC */
cbayley 0:65b9d8f621d2 185 {0, 0}, /* FS */
cbayley 0:65b9d8f621d2 186 {0, 0}, /* GS */
cbayley 0:65b9d8f621d2 187 {0, 0}, /* RS */
cbayley 0:65b9d8f621d2 188 {0, 0}, /* US */
cbayley 0:65b9d8f621d2 189 {0x2c, 0}, /* */
cbayley 0:65b9d8f621d2 190 {0x1e, SHIFT}, /* ! */
cbayley 0:65b9d8f621d2 191 {0x1f, SHIFT}, /* " */
cbayley 0:65b9d8f621d2 192 {0x32, 0}, /* # */
cbayley 0:65b9d8f621d2 193 {0x21, SHIFT}, /* $ */
cbayley 0:65b9d8f621d2 194 {0x22, SHIFT}, /* % */
cbayley 0:65b9d8f621d2 195 {0x24, SHIFT}, /* & */
cbayley 0:65b9d8f621d2 196 {0x34, 0}, /* ' */
cbayley 0:65b9d8f621d2 197 {0x26, SHIFT}, /* ( */
cbayley 0:65b9d8f621d2 198 {0x27, SHIFT}, /* ) */
cbayley 0:65b9d8f621d2 199 {0x25, SHIFT}, /* * */
cbayley 0:65b9d8f621d2 200 {0x2e, SHIFT}, /* + */
cbayley 0:65b9d8f621d2 201 {0x36, 0}, /* , */
cbayley 0:65b9d8f621d2 202 {0x2d, 0}, /* - */
cbayley 0:65b9d8f621d2 203 {0x37, 0}, /* . */
cbayley 0:65b9d8f621d2 204 {0x38, 0}, /* / */
cbayley 0:65b9d8f621d2 205 {0x27, 0}, /* 0 */
cbayley 0:65b9d8f621d2 206 {0x1e, 0}, /* 1 */
cbayley 0:65b9d8f621d2 207 {0x1f, 0}, /* 2 */
cbayley 0:65b9d8f621d2 208 {0x20, 0}, /* 3 */
cbayley 0:65b9d8f621d2 209 {0x21, 0}, /* 4 */
cbayley 0:65b9d8f621d2 210 {0x22, 0}, /* 5 */
cbayley 0:65b9d8f621d2 211 {0x23, 0}, /* 6 */
cbayley 0:65b9d8f621d2 212 {0x24, 0}, /* 7 */
cbayley 0:65b9d8f621d2 213 {0x25, 0}, /* 8 */
cbayley 0:65b9d8f621d2 214 {0x26, 0}, /* 9 */
cbayley 0:65b9d8f621d2 215 {0x33, SHIFT}, /* : */
cbayley 0:65b9d8f621d2 216 {0x33, 0}, /* ; */
cbayley 0:65b9d8f621d2 217 {0x36, SHIFT}, /* < */
cbayley 0:65b9d8f621d2 218 {0x2e, 0}, /* = */
cbayley 0:65b9d8f621d2 219 {0x37, SHIFT}, /* > */
cbayley 0:65b9d8f621d2 220 {0x38, SHIFT}, /* ? */
cbayley 0:65b9d8f621d2 221 {0x34, SHIFT}, /* @ */
cbayley 0:65b9d8f621d2 222 {0x04, SHIFT}, /* A */
cbayley 0:65b9d8f621d2 223 {0x05, SHIFT}, /* B */
cbayley 0:65b9d8f621d2 224 {0x06, SHIFT}, /* C */
cbayley 0:65b9d8f621d2 225 {0x07, SHIFT}, /* D */
cbayley 0:65b9d8f621d2 226 {0x08, SHIFT}, /* E */
cbayley 0:65b9d8f621d2 227 {0x09, SHIFT}, /* F */
cbayley 0:65b9d8f621d2 228 {0x0a, SHIFT}, /* G */
cbayley 0:65b9d8f621d2 229 {0x0b, SHIFT}, /* H */
cbayley 0:65b9d8f621d2 230 {0x0c, SHIFT}, /* I */
cbayley 0:65b9d8f621d2 231 {0x0d, SHIFT}, /* J */
cbayley 0:65b9d8f621d2 232 {0x0e, SHIFT}, /* K */
cbayley 0:65b9d8f621d2 233 {0x0f, SHIFT}, /* L */
cbayley 0:65b9d8f621d2 234 {0x10, SHIFT}, /* M */
cbayley 0:65b9d8f621d2 235 {0x11, SHIFT}, /* N */
cbayley 0:65b9d8f621d2 236 {0x12, SHIFT}, /* O */
cbayley 0:65b9d8f621d2 237 {0x13, SHIFT}, /* P */
cbayley 0:65b9d8f621d2 238 {0x14, SHIFT}, /* Q */
cbayley 0:65b9d8f621d2 239 {0x15, SHIFT}, /* R */
cbayley 0:65b9d8f621d2 240 {0x16, SHIFT}, /* S */
cbayley 0:65b9d8f621d2 241 {0x17, SHIFT}, /* T */
cbayley 0:65b9d8f621d2 242 {0x18, SHIFT}, /* U */
cbayley 0:65b9d8f621d2 243 {0x19, SHIFT}, /* V */
cbayley 0:65b9d8f621d2 244 {0x1a, SHIFT}, /* W */
cbayley 0:65b9d8f621d2 245 {0x1b, SHIFT}, /* X */
cbayley 0:65b9d8f621d2 246 {0x1c, SHIFT}, /* Y */
cbayley 0:65b9d8f621d2 247 {0x1d, SHIFT}, /* Z */
cbayley 0:65b9d8f621d2 248 {0x2f, 0}, /* [ */
cbayley 0:65b9d8f621d2 249 {0x64, 0}, /* \ */
cbayley 0:65b9d8f621d2 250 {0x30, 0}, /* ] */
cbayley 0:65b9d8f621d2 251 {0x23, SHIFT}, /* ^ */
cbayley 0:65b9d8f621d2 252 {0x2d, SHIFT}, /* _ */
cbayley 0:65b9d8f621d2 253 {0x35, 0}, /* ` */
cbayley 0:65b9d8f621d2 254 {0x04, 0}, /* a */
cbayley 0:65b9d8f621d2 255 {0x05, 0}, /* b */
cbayley 0:65b9d8f621d2 256 {0x06, 0}, /* c */
cbayley 0:65b9d8f621d2 257 {0x07, 0}, /* d */
cbayley 0:65b9d8f621d2 258 {0x08, 0}, /* e */
cbayley 0:65b9d8f621d2 259 {0x09, 0}, /* f */
cbayley 0:65b9d8f621d2 260 {0x0a, 0}, /* g */
cbayley 0:65b9d8f621d2 261 {0x0b, 0}, /* h */
cbayley 0:65b9d8f621d2 262 {0x0c, 0}, /* i */
cbayley 0:65b9d8f621d2 263 {0x0d, 0}, /* j */
cbayley 0:65b9d8f621d2 264 {0x0e, 0}, /* k */
cbayley 0:65b9d8f621d2 265 {0x0f, 0}, /* l */
cbayley 0:65b9d8f621d2 266 {0x10, 0}, /* m */
cbayley 0:65b9d8f621d2 267 {0x11, 0}, /* n */
cbayley 0:65b9d8f621d2 268 {0x12, 0}, /* o */
cbayley 0:65b9d8f621d2 269 {0x13, 0}, /* p */
cbayley 0:65b9d8f621d2 270 {0x14, 0}, /* q */
cbayley 0:65b9d8f621d2 271 {0x15, 0}, /* r */
cbayley 0:65b9d8f621d2 272 {0x16, 0}, /* s */
cbayley 0:65b9d8f621d2 273 {0x17, 0}, /* t */
cbayley 0:65b9d8f621d2 274 {0x18, 0}, /* u */
cbayley 0:65b9d8f621d2 275 {0x19, 0}, /* v */
cbayley 0:65b9d8f621d2 276 {0x1a, 0}, /* w */
cbayley 0:65b9d8f621d2 277 {0x1b, 0}, /* x */
cbayley 0:65b9d8f621d2 278 {0x1c, 0}, /* y */
cbayley 0:65b9d8f621d2 279 {0x1d, 0}, /* z */
cbayley 0:65b9d8f621d2 280 {0x2f, SHIFT}, /* { */
cbayley 0:65b9d8f621d2 281 {0x64, SHIFT}, /* | */
cbayley 0:65b9d8f621d2 282 {0x30, SHIFT}, /* } */
cbayley 0:65b9d8f621d2 283 {0x32, SHIFT}, /* ~ */
cbayley 0:65b9d8f621d2 284 {0,0}, /* DEL */
cbayley 0:65b9d8f621d2 285 };
cbayley 0:65b9d8f621d2 286 #endif
cbayley 0:65b9d8f621d2 287
cbayley 0:65b9d8f621d2 288
cbayley 0:65b9d8f621d2 289 #endif