 |
Serial Wombat Arduino Library
|
Go to the documentation of this file.
199 int16_t
begin(uint8_t clockPin, uint8_t dataPin, uint8_t bufferMode = 0, uint8_t queueMode = 0, uint16_t queueAddress = 0xFFFF, uint8_t pullUpDown = 0)
218 if (queueAddress != 0xFFFF)
241 uint8_t tx[8] = { 201,
_pin,
_pinMode, 0,0x55,0x55,0x55,0x55 };
252 uint8_t tx[8] = { 202,
_pin,
_pinMode, 1,0x55,0x55,0x55,0x55 };
282 uint8_t tx[8] = { 203,
_pin,
_pinMode,0x55,0x55,0x55,0x55,0x55 };
316 size_t write(
const uint8_t* buffer,
size_t size)
343 int bytesAvailable = 0;
344 uint32_t timeoutMillis = millis() +
timeout;
345 while (length > 0 && timeoutMillis > millis())
354 uint8_t tx[8] = { 202,
_pin,
_pinMode, (uint8_t)bytecount,0x55,0x55,0x55,0x55 };
357 bytesAvailable = rx[3];
359 if (bytesAvailable == 0)
365 timeoutMillis = millis() +
timeout;
367 uint8_t bytesReturned = bytecount;
368 if (rx[3] < bytecount)
370 bytesReturned = rx[3];
372 for (
int i = 0; i < bytesReturned; ++i)
374 buffer[index] = rx[i + 4];
388 uint8_t tx[8] = { 207,
_pin,
_pinMode, startValue,0x55,0x55,0x55,0x55 };
398 for (
int i = 3; i < 8; ++i)
404 buffer[i - 3] = rx[i];
430 if (scanCode >= 0x80)
435 const uint8_t KBSCSet2[][2] =
569 return ( KBSCSet2[scanCode][ 1]);
572 return ( KBSCSet2[scanCode][0]);
590 if (buffer[0] == scanCode)
void flush()
Discard all bytes from the SerialWombatPS2Keyboard queue.
Definition: SerialWombatPS2Keyboard.h:271
@ SCANCODE_KPMINUS
Definition: SerialWombatPS2Keyboard.h:117
int availableForWrite()
Number of bytes avaialble to write to SerialWombatPS2Keyboard queue. Returns 0.
Definition: SerialWombatPS2Keyboard.h:325
@ SCANCODE_KP9
Definition: SerialWombatPS2Keyboard.h:113
@ SCANCODE_KPPLUS
Definition: SerialWombatPS2Keyboard.h:118
@ SCANCODE_K
Definition: SerialWombatPS2Keyboard.h:71
@ SCANCODE_KPPERIOD
Definition: SerialWombatPS2Keyboard.h:116
@ SCANCODE_DELETE
Definition: SerialWombatPS2Keyboard.h:94
@ SCANCODE_3
Definition: SerialWombatPS2Keyboard.h:40
Class for a Serial Wombat chip. Each Serial Wombat chip on a project should have its own instance.
Definition: SerialWombat.h:286
@ SCANCODE_QUOTE
Definition: SerialWombatPS2Keyboard.h:74
size_t write(const uint8_t *buffer, size_t size)
Write bytes to the SerialWombatPS2Keyboard queue (Does nothing)
Definition: SerialWombatPS2Keyboard.h:316
@ SCANCODE_KPSLASH
Definition: SerialWombatPS2Keyboard.h:107
@ SCANCODE_Q
Definition: SerialWombatPS2Keyboard.h:52
@ SCANCODE_PERIOD
Definition: SerialWombatPS2Keyboard.h:85
@ SCANCODE_Z
Definition: SerialWombatPS2Keyboard.h:77
SerialWombatPS2Keyboard(SerialWombatChip &serialWombat)
Constructor for the SerialWombatPS2Keyboard class.
Definition: SerialWombatPS2Keyboard.h:189
@ CONFIGURE_PIN_MODE0
(200)
@ SCANCODE_2
Definition: SerialWombatPS2Keyboard.h:39
@ SCANCODE_EQUALS
Definition: SerialWombatPS2Keyboard.h:49
@ SCANCODE_RIGHTARROW
Definition: SerialWombatPS2Keyboard.h:102
@ SCANCODE_F5
Definition: SerialWombatPS2Keyboard.h:125
@ SCANCODE_F3
Definition: SerialWombatPS2Keyboard.h:123
uint8_t scanCodeToAscii(uint8_t scanCode, bool shiftActive=false)
convernts a set 2 Scan Code to Ascii
Definition: SerialWombatPS2Keyboard.h:427
@ SCANCODE_LEFTBRACKET
Definition: SerialWombatPS2Keyboard.h:62
@ SCANCODE_F12
Definition: SerialWombatPS2Keyboard.h:132
SerialWombatChip & _sw
Definition: SerialWombatPin.h:134
void setTimeout(long timeout_mS)
implemented to fulfill Stream requirement.
Definition: SerialWombatPS2Keyboard.h:412
@ SCANCODE_END
Definition: SerialWombatPS2Keyboard.h:97
@ SCANCODE_LEFTSHIFT
Definition: SerialWombatPS2Keyboard.h:76
@ SCANCODE_RIGHTBRACKET
Definition: SerialWombatPS2Keyboard.h:63
@ SCANCODE_4
Definition: SerialWombatPS2Keyboard.h:41
@ SCANCODE_V
Definition: SerialWombatPS2Keyboard.h:80
bool isKeyPressed(PS2KeyboardScanCode scanCode)
Definition: SerialWombatPS2Keyboard.h:599
@ PIN_MODE_PS2KEYBOARD
(32)
Definition: SerialWombat.h:271
@ SCANCODE_KP7
Definition: SerialWombatPS2Keyboard.h:104
@ SCANCODE_CAPSLOCK
Definition: SerialWombatPS2Keyboard.h:64
@ SCANCODE_O
Definition: SerialWombatPS2Keyboard.h:60
@ SCANCODE_F4
Definition: SerialWombatPS2Keyboard.h:124
@ SCANCODE_INSERT
Definition: SerialWombatPS2Keyboard.h:93
@ SCANCODE_KP6
Definition: SerialWombatPS2Keyboard.h:114
@ SCANCODE_SCROLLLOCK
Definition: SerialWombatPS2Keyboard.h:134
@ SCANCODE_KP3
Definition: SerialWombatPS2Keyboard.h:115
@ SCANCODE_F8
Definition: SerialWombatPS2Keyboard.h:128
@ SCANCODE_PRINTSCREEN
Definition: SerialWombatPS2Keyboard.h:133
@ SCANCODE_HOME
Definition: SerialWombatPS2Keyboard.h:96
@ SCANCODE_KP5
Definition: SerialWombatPS2Keyboard.h:109
@ SCANCODE_N
Definition: SerialWombatPS2Keyboard.h:82
@ SCANCODE_ENTER
Definition: SerialWombatPS2Keyboard.h:75
@ SCANCODE_6
Definition: SerialWombatPS2Keyboard.h:43
@ SCANCODE_SEMICOLON
Definition: SerialWombatPS2Keyboard.h:73
@ SCANCODE_PAGEUP
Definition: SerialWombatPS2Keyboard.h:100
uint8_t _pin
Definition: SerialWombatPS2Keyboard.h:604
@ SCANCODE_KPENTER
Definition: SerialWombatPS2Keyboard.h:119
@ SCANCODE_F6
Definition: SerialWombatPS2Keyboard.h:126
@ SCANCODE_RIGHTALT
Definition: SerialWombatPS2Keyboard.h:91
@ SCANCODE_I
Definition: SerialWombatPS2Keyboard.h:59
@ SCANCODE_X
Definition: SerialWombatPS2Keyboard.h:78
@ SCANCODE_F9
Definition: SerialWombatPS2Keyboard.h:129
int16_t readCurrentScanCodes(uint8_t *buffer, uint8_t startValue)
Definition: SerialWombatPS2Keyboard.h:386
@ SCANCODE_RIGHTSHIFT
Definition: SerialWombatPS2Keyboard.h:87
@ SCANCODE_DOWNARROW
Definition: SerialWombatPS2Keyboard.h:99
@ SCANCODE_F2
Definition: SerialWombatPS2Keyboard.h:122
@ SCANCODE_D
Definition: SerialWombatPS2Keyboard.h:67
Describes a Serial Wombat Pin. Is base class for other pin modes.
Definition: SerialWombatPin.h:38
@ SCANCODE_DASH
Definition: SerialWombatPS2Keyboard.h:48
@ SCANCODE_J
Definition: SerialWombatPS2Keyboard.h:70
@ SCANCODE_B
Definition: SerialWombatPS2Keyboard.h:81
@ SCANCODE_F11
Definition: SerialWombatPS2Keyboard.h:131
uint8_t _pinMode
Definition: SerialWombatPin.h:135
@ SCANCODE_RIGHTCTRL
Definition: SerialWombatPS2Keyboard.h:92
@ SCANCODE_LEFTARROW
Definition: SerialWombatPS2Keyboard.h:95
@ SCANCODE_F1
Definition: SerialWombatPS2Keyboard.h:121
int sendPacket(uint8_t tx[], uint8_t rx[])
Send an 8 byte packet to the Serial Wombat chip and wait for 8 bytes back.
Definition: SerialWombat.cpp:115
@ SCANCODE_9
Definition: SerialWombatPS2Keyboard.h:46
@ SCANCODE_KP1
Definition: SerialWombatPS2Keyboard.h:106
@ SCANCODE_7
Definition: SerialWombatPS2Keyboard.h:44
@ SCANCODE_TAB
Definition: SerialWombatPS2Keyboard.h:51
size_t write(uint8_t data)
Write a byte to the SerialWombatPS2Keyboard queue (Does Nothing)
Definition: SerialWombatPS2Keyboard.h:302
@ SCANCODE_A
Definition: SerialWombatPS2Keyboard.h:65
@ SCANCODE_F7
Definition: SerialWombatPS2Keyboard.h:127
@ SCANCODE_W
Definition: SerialWombatPS2Keyboard.h:53
@ SCANCODE_KPASTERISK
Definition: SerialWombatPS2Keyboard.h:112
@ SCANCODE_8
Definition: SerialWombatPS2Keyboard.h:45
@ SCANCODE_ESC
Definition: SerialWombatPS2Keyboard.h:120
@ SCANCODE_T
Definition: SerialWombatPS2Keyboard.h:56
@ SCANCODE_KP8
Definition: SerialWombatPS2Keyboard.h:108
@ SCANCODE_G
Definition: SerialWombatPS2Keyboard.h:68
bool isKeyPressed(uint8_t scanCode)
Check to see if a key is currently pressed (pin mode must be configured for bitfield mode)
Definition: SerialWombatPS2Keyboard.h:580
@ SCANCODE_PAGEDOWN
Definition: SerialWombatPS2Keyboard.h:101
A class for the Serial Wombat SW18AB chips which recieves input from IBM PS2 Keyboards.
Definition: SerialWombatPS2Keyboard.h:181
@ SCANCODE_LEFTCTRL
Definition: SerialWombatPS2Keyboard.h:88
@ SCANCODE_KP2
Definition: SerialWombatPS2Keyboard.h:110
@ SCANCODE_COMMA
Definition: SerialWombatPS2Keyboard.h:84
@ SCANCODE_R
Definition: SerialWombatPS2Keyboard.h:55
@ SCANCODE_1
Definition: SerialWombatPS2Keyboard.h:38
@ SCANCODE_SPACEBAR
Definition: SerialWombatPS2Keyboard.h:90
@ SCANCODE_BACKSPACE
Definition: SerialWombatPS2Keyboard.h:50
@ SCANCODE_C
Definition: SerialWombatPS2Keyboard.h:79
@ SCANCODE_0
Definition: SerialWombatPS2Keyboard.h:47
#define SW_LE16(_a)
Convert a uint16_t to two bytes in little endian format for array initialization.
Definition: SerialWombat.h:41
@ SCANCODE_KP0
Definition: SerialWombatPS2Keyboard.h:111
@ SCANCODE_5
Definition: SerialWombatPS2Keyboard.h:42
@ SCANCODE_U
Definition: SerialWombatPS2Keyboard.h:58
@ SCANCODE_F10
Definition: SerialWombatPS2Keyboard.h:130
@ SCANCODE_KP4
Definition: SerialWombatPS2Keyboard.h:105
@ SCANCODE_NUMLOCK
Definition: SerialWombatPS2Keyboard.h:103
int peek()
Query the SerialWombatPS2Keyboard queue for the next avaialble byte, but don't remove it from the que...
Definition: SerialWombatPS2Keyboard.h:280
@ SCANCODE_S
Definition: SerialWombatPS2Keyboard.h:66
@ SCANCODE_BACKSLASH
Definition: SerialWombatPS2Keyboard.h:135
@ SCANCODE_LEFTALT
Definition: SerialWombatPS2Keyboard.h:89
@ SCANCODE_L
Definition: SerialWombatPS2Keyboard.h:72
@ SCANCODE_M
Definition: SerialWombatPS2Keyboard.h:83
@ CONFIGURE_PIN_MODE6
(206)
@ SCANCODE_OPENSINGLEQUOTE
Definition: SerialWombatPS2Keyboard.h:37
PS2KeyboardScanCode
Definition: SerialWombatPS2Keyboard.h:35
@ SCANCODE_H
Definition: SerialWombatPS2Keyboard.h:69
int available()
Queries the SerialWombatPS2Keyboard for number bytes available to read.
Definition: SerialWombatPS2Keyboard.h:239
int16_t begin(uint8_t clockPin, uint8_t dataPin, uint8_t bufferMode=0, uint8_t queueMode=0, uint16_t queueAddress=0xFFFF, uint8_t pullUpDown=0)
Initalize the SerialWombatPS2Keyboard.
Definition: SerialWombatPS2Keyboard.h:199
uint32_t timeout
Definition: SerialWombatPS2Keyboard.h:606
@ SCANCODE_E
Definition: SerialWombatPS2Keyboard.h:54
int read()
Reads a byte from the SerialWombatPS2Keyboard queue.
Definition: SerialWombatPS2Keyboard.h:250
@ SCANCODE_UPARROW
Definition: SerialWombatPS2Keyboard.h:98
@ SCANCODE_SLASH
Definition: SerialWombatPS2Keyboard.h:86
@ SCANCODE_Y
Definition: SerialWombatPS2Keyboard.h:57
@ SCANCODE_P
Definition: SerialWombatPS2Keyboard.h:61
size_t readBytes(char *buffer, size_t length)
Reads a specified number of bytes from the SerialWombatPS2Keyboard queue queue.
Definition: SerialWombatPS2Keyboard.h:340