 |
Serial Wombat Arduino Library
|
Go to the documentation of this file.
113 int16_t
begin(uint32_t baudRate, uint8_t
pin, uint8_t rxPin, uint8_t txPin,uint8_t HWinterface = 1 )
118 if (HWinterface == 2)
125 else if (HWinterface == 1)
182 uint8_t tx[8] = { 201,
_pin,
_pinMode, 0,0x55,0x55,0x55,0x55 };
193 uint8_t tx[8] = { 202,
_pin,
_pinMode, 1,0x55,0x55,0x55,0x55 };
224 uint8_t tx[8] = { 203,
_pin,
_pinMode,0x55,0x55,0x55,0x55,0x55 };
249 uint8_t tx[8] = { 201,
_pin,
_pinMode,1,data,0x55,0x55,0x55 };
266 size_t write(
const uint8_t* buffer,
size_t size)
268 size_t bytesAvailable = 0;
270 uint32_t timeoutMillis = millis() +
timeout;
272 for (bytesSent = 0; bytesSent < size ;)
275 while (bytesAvailable < 4)
277 uint8_t peektx[8] = { 203,
_pin,
_pinMode,0x55,0x55,0x55,0x55,0x55 };
280 bytesAvailable = peekrx[3];
281 if (timeoutMillis < millis())
287 timeoutMillis = millis() +
timeout;
289 while (bytesSent < size && bytesAvailable > 0)
292 if ((size - bytesSent) < 7 || bytesAvailable < 7)
294 uint8_t tx[8] = { 201,
_pin,
_pinMode,0,0x55,0x55,0x55,0x55 };
298 for (txLen = 0; txLen < 4 && txLen < bytesAvailable && bytesSent < size; ++txLen)
300 tx[4 + txLen] = buffer[bytesSent];
305 bytesAvailable = rx[3];
309 uint8_t tx[8] = {
_tx7Command, 0x55,0x55,0x55,0x55,0x55,0x55,0x55 };
312 for (txLen = 0; txLen < 7 ; ++txLen)
314 tx[1 + txLen] = buffer[bytesSent];
330 uint8_t peektx[8] = { 203,
_pin,
_pinMode,0x55,0x55,0x55,0x55,0x55 };
348 int bytesAvailable = 0;
349 uint32_t timeoutMillis = millis() +
timeout;
350 while (length > 0 && timeoutMillis > millis())
360 uint8_t tx[8] = { 202,
_pin,
_pinMode, (uint8_t) bytecount,0x55,0x55,0x55,0x55 };
363 bytesAvailable = rx[3];
365 if (bytesAvailable == 0)
371 timeoutMillis = millis() +
timeout;
373 uint8_t bytesReturned = bytecount;
374 if (rx[3] < bytecount)
376 bytesReturned = rx[3];
378 for (
int i = 0; i < bytesReturned; ++i)
380 buffer[index] = rx[i + 4];
387 while (bytesAvailable >= 7 && length >= 7)
389 uint8_t tx[8] = {
_rx7Command, 0x55,0x55,0x55,0x55,0x55,0x55,0x55 };
392 for (
int i = 0; i <7; ++i)
394 buffer[index] = rx[i + 1];
494 int16_t
begin(uint32_t baudRate, uint8_t
pin, uint8_t rxPin, uint8_t txPin, uint16_t userMemoryOffset, uint16_t rxLength, uint16_t txLength)
546 int16_t rxoffset = 0;
556 userMemoryOffset += rxoffset;
564 int16_t txoffset = 0;
574 userMemoryOffset += txoffset;
584 if (result < 0)
return (result);
589 if (result < 0)
return (result);
591 return (txoffset + rxoffset);
597 int16_t
begin(uint32_t baudRate, uint8_t
pin, uint8_t rxPin, uint8_t txPin, uint8_t HWinterface) =
delete;
611 size_t write(
const uint8_t* buffer,
size_t size)
Class for a Serial Wombat chip. Each Serial Wombat chip on a project should have its own instance.
Definition: SerialWombat.h:286
uint8_t _txPin
Definition: SerialWombatUART.h:422
size_t write(uint8_t data)
Write a byte to the Serial Wombat Queue /.
Definition: SerialWombatQueue.h:140
size_t write(const uint8_t *buffer, size_t size)
Write bytes to the SerialWombatUART for Transmit.
Definition: SerialWombatUART.h:266
@ PIN_MODE_UART1_RX_TX
(23)
Definition: SerialWombat.h:262
uint16_t startIndex
Definition: SerialWombatQueue.h:392
uint8_t _rxPin
Definition: SerialWombatUART.h:421
@ COMMAND_UART0_RX_7BYTES
(0xB1)
SerialWombatUART(SerialWombatChip &serialWombat)
Constructor for the SerialWombatUART class. Only one instance is allowed per SerialWombatChip 4B.
Definition: SerialWombatUART.h:102
SerialWombatSWUART(SerialWombatChip &serialWombatChip)
Definition: SerialWombatUART.h:484
SerialWombatChip & _sw
Definition: SerialWombatPin.h:134
@ PIN_MODE_SW_UART
(13)
Definition: SerialWombat.h:254
SerialWombatQueue txQueue
SerialWombatQueue created on the Serial Wombat chip for data to be sent by the SerialWombatSWUART.
Definition: SerialWombatUART.h:623
size_t write(uint8_t data)
Write a byte to the SerialWombatUART for Transmit.
Definition: SerialWombatUART.h:247
void flush()
Discard all received bytes.
Definition: SerialWombatUART.h:212
int16_t begin(uint32_t baudRate, uint8_t pin, uint8_t rxPin, uint8_t txPin, uint8_t HWinterface=1)
Definition: SerialWombatUART.h:113
@ COMMAND_UART1_TX_7BYTES
(0xB2)
SerialWombatQueue rxQueue
SerialWombatQueue created on the Serial Wombat chip for data received by the SerialWombatSWUART.
Definition: SerialWombatUART.h:619
A class for the Serial Wombat 4B or SW18AB chips which creates an I2C to UART Bridge.
Definition: SerialWombatUART.h:94
int availableForWrite()
Queries the SerialWombatUART for the amount of free TX queue space.
Definition: SerialWombatUART.h:328
int available()
Queries the SerialWombatUART for number bytes available to read.
Definition: SerialWombatUART.h:180
Describes a Serial Wombat Pin. Is base class for other pin modes.
Definition: SerialWombatPin.h:38
size_t readBytes(char *buffer, size_t length)
Reads a specified number of bytes from the SerialWombatUART RX queue.
Definition: SerialWombatUART.h:345
int16_t begin(uint16_t index, uint16_t length, SerialWombatQueueType qtype=SerialWombatQueueType::QUEUE_TYPE_RAM_BYTE)
Initialize a Serial Wombat Queue (RAM Bytes) in User Memory Area on Serial Wombat Chip / /.
Definition: SerialWombatQueue.h:61
int read()
Reads a byte from the SerialWombatUART.
Definition: SerialWombatUART.h:191
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
void setTimeout(long timeout_mS)
Definition: SerialWombatUART.h:409
uint8_t _rx7Command
Definition: SerialWombatUART.h:427
int peek()
Query the SerialWombatUART for the next avaialble byte, but don't remove it from the queue.
Definition: SerialWombatUART.h:222
uint8_t pin()
Returns the current SW pin number. Used primarily for virtual calls by derived classes.
Definition: SerialWombatPin.h:121
uint8_t _tx7Command
Definition: SerialWombatUART.h:426
@ COMMAND_UART1_RX_7BYTES
(0xB3)
uint8_t _pin
Definition: SerialWombatPin.h:133
uint32_t timeout
Definition: SerialWombatUART.h:424
uint8_t _baudMarker
Definition: SerialWombatUART.h:423
#define SW_LE16(_a)
Convert a uint16_t to two bytes in little endian format for array initialization.
Definition: SerialWombat.h:41
int16_t begin(uint32_t baudRate, uint8_t pin, uint8_t rxPin, uint8_t txPin, uint16_t userMemoryOffset, uint16_t rxLength, uint16_t txLength)
Definition: SerialWombatUART.h:494
A Class representing a Queue in the User Ram area on the Serial Wombat Chip.
Definition: SerialWombatQueue.h:41
uint8_t _pinMode
Definition: SerialWombatUART.h:425
size_t write(const uint8_t *buffer, size_t size)
Write bytes to the SerialWombatUART for Transmit.
Definition: SerialWombatUART.h:611
@ PIN_MODE_UART_RX_TX
(17)
Definition: SerialWombat.h:258
@ COMMAND_UART0_TX_7BYTES
(0xB0)
A class for the Serial Wombat 4B or SW18AB chips which creates a software based UART on the SW18AB.
Definition: SerialWombatUART.h:478