Advertisement
Guest User

makeyMate.h

a guest
Feb 28th, 2013
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.05 KB | None | 0 0
  1. /*
  2. makeyMate.h
  3. by: Jim Lindblom
  4. SparkFun Electronics
  5. date: October 9, 2012
  6. license: This code is beerware: feel free to use it, with or without attribution,
  7. in your own projects. If you find it helpful, buy me a beer next time you see me
  8. at the local pub.
  9.  
  10. Defines HID scan codes for ASCII characters
  11. Definition for makeyMateClass class.
  12. */
  13.  
  14. #ifndef makeyMate_H
  15. #define makeyMate_H
  16.  
  17. #define SHIFT 0x80
  18. const uint8_t asciiToScanCode[128] =
  19. {
  20. 0x00, // NUL
  21. 0x00, // SOH
  22. 0x00, // STX
  23. 0x00, // ETX
  24. 0x00, // EOT
  25. 0x00, // ENQ
  26. 0x00, // ACK
  27. 0x00, // BEL
  28. 0x2a, // BS Backspace
  29. 0x2b, // TAB Tab
  30. 0x28, // LF Enter
  31. 0x00, // VT
  32. 0x00, // FF
  33. 0x00, // CR
  34. 0x00, // SO
  35. 0x00, // SI
  36. 0x00, // DEL
  37. 0x00, // DC1
  38. 0x00, // DC2
  39. 0x00, // DC3
  40. 0x00, // DC4
  41. 0x00, // NAK
  42. 0x00, // SYN
  43. 0x00, // ETB
  44. 0x00, // CAN
  45. 0x00, // EM
  46. 0x00, // SUB
  47. 0x00, // ESC
  48. 0x00, // FS
  49. 0x00, // GS
  50. 0x00, // RS
  51. 0x00, // US
  52. 0x2c, // ' '
  53. 0x1e|SHIFT, // !
  54. 0x34|SHIFT, // "
  55. 0x20|SHIFT, // #
  56. 0x21|SHIFT, // $
  57. 0x22|SHIFT, // %
  58. 0x24|SHIFT, // &
  59. 0x34, // '
  60. 0x26|SHIFT, // (
  61. 0x27|SHIFT, // )
  62. 0x25|SHIFT, // *
  63. 0x2e|SHIFT, // +
  64. 0x36, // ,
  65. 0x2d, // -
  66. 0x37, // .
  67. 0x38, // /
  68. 0x27, // 0
  69. 0x1e, // 1
  70. 0x1f, // 2
  71. 0x20, // 3
  72. 0x21, // 4
  73. 0x22, // 5
  74. 0x23, // 6
  75. 0x24, // 7
  76. 0x25, // 8
  77. 0x26, // 9
  78. 0x33|SHIFT, // :
  79. 0x33, // ;
  80. 0x36|SHIFT, // <
  81. 0x2e, // =
  82. 0x37|SHIFT, // >
  83. 0x38|SHIFT, // ?
  84. 0x1f|SHIFT, // @
  85. 0x04|SHIFT, // A
  86. 0x05|SHIFT, // B
  87. 0x06|SHIFT, // C
  88. 0x07|SHIFT, // D
  89. 0x08|SHIFT, // E
  90. 0x09|SHIFT, // F
  91. 0x0a|SHIFT, // G
  92. 0x0b|SHIFT, // H
  93. 0x0c|SHIFT, // I
  94. 0x0d|SHIFT, // J
  95. 0x0e|SHIFT, // K
  96. 0x0f|SHIFT, // L
  97. 0x10|SHIFT, // M
  98. 0x11|SHIFT, // N
  99. 0x12|SHIFT, // O
  100. 0x13|SHIFT, // P
  101. 0x14|SHIFT, // Q
  102. 0x15|SHIFT, // R
  103. 0x16|SHIFT, // S
  104. 0x17|SHIFT, // T
  105. 0x18|SHIFT, // U
  106. 0x19|SHIFT, // V
  107. 0x1a|SHIFT, // W
  108. 0x1b|SHIFT, // X
  109. 0x1c|SHIFT, // Y
  110. 0x1d|SHIFT, // Z
  111. 0x2f, // [
  112. 0x31, // bslash
  113. 0x30, // ]
  114. 0x23|SHIFT, // ^
  115. 0x2d|SHIFT, // _
  116. 0x35, // `
  117. 0x04, // a
  118. 0x05, // b
  119. 0x06, // c
  120. 0x07, // d
  121. 0x08, // e
  122. 0x09, // f
  123. 0x0a, // g
  124. 0x0b, // h
  125. 0x0c, // i
  126. 0x0d, // j
  127. 0x0e, // k
  128. 0x0f, // l
  129. 0x10, // m
  130. 0x11, // n
  131. 0x12, // o
  132. 0x13, // p
  133. 0x14, // q
  134. 0x15, // r
  135. 0x16, // s
  136. 0x17, // t
  137. 0x18, // u
  138. 0x19, // v
  139. 0x1a, // w
  140. 0x1b, // x
  141. 0x1c, // y
  142. 0x1d, // z
  143. 0x2f|SHIFT, //
  144. 0x31|SHIFT, // |
  145. 0x30|SHIFT, // }
  146. 0x35|SHIFT, // ~
  147. 0 // DEL
  148. };
  149.  
  150. class makeyMateClass
  151. {
  152. private:
  153. char rxBuffer[64];
  154. uint8_t enterCommandMode(void);
  155. uint8_t setKeyboardMouseMode(void);
  156. uint8_t setHIDMode(void);
  157. uint8_t reboot(void);
  158. uint8_t bluetoothCheckReceive(char * src, char * expected, int bufferSize);
  159. uint8_t bluetoothReceive(char * dest);
  160. uint8_t setName(char * name);
  161. uint8_t keyCodes[6];
  162. uint8_t modifiers;
  163.  
  164. public:
  165. makeyMateClass();
  166. uint8_t begin(char * name);
  167. uint8_t connect();
  168. uint8_t connect(char * address);
  169. uint8_t keyPress(uint8_t k);
  170. uint8_t keyRelease(uint8_t k);
  171. void moveMouse(uint8_t b, uint8_t x, uint8_t y);
  172. };
  173.  
  174.  
  175. #endif // makeyMate_H
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement