Serial Wombat Arduino Library
SerialWombatUART.h
Go to the documentation of this file.
1 #pragma once
2 #include "Stream.h"
3 #include "SerialWombat.h"
70  public Stream, public SerialWombatPin
71 {
72 public:
75  SerialWombatUART(SerialWombatChip& serialWombat);
76 
77 
84  int16_t begin(uint32_t baudRate, uint8_t pin, uint8_t rxPin, uint8_t txPin,uint8_t HWinterface = 1 );
87  int available();
90  int read();
92  void flush();
95  int peek();
105  size_t write(uint8_t data);
106 
117  size_t write(const uint8_t* buffer, size_t size);
118 
121  int availableForWrite();
122 
131  size_t readBytes(char* buffer, size_t length);
132 
133 
134  void setTimeout(long timeout_mS);
135 protected:
136  uint8_t _rxPin = 255;
137  uint8_t _txPin = 255;
138  uint8_t _baudMarker = 0;
139  uint32_t timeout = 5000;
143 };
144 
145 
146 
194 {
195 
196 public:
197 
198 
199  SerialWombatSWUART(SerialWombatChip& serialWombatChip);
200 
208  int16_t begin(uint32_t baudRate, uint8_t pin, uint8_t rxPin, uint8_t txPin, uint16_t userMemoryOffset, uint16_t rxLength, uint16_t txLength);
209 
210 
212  int16_t begin(uint32_t baudRate, uint8_t pin, uint8_t rxPin, uint8_t txPin, uint8_t HWinterface) = delete;
213 
224  size_t write(const uint8_t* buffer, size_t size);
225 
230 private:
231  using SerialWombatUART::begin; //make parent class begin unavaialble
232 
233 };
234 
SerialWombatChip
Class for a Serial Wombat chip. Each Serial Wombat chip on a project should have its own instance.
Definition: SerialWombat.h:279
SerialWombatUART::_txPin
uint8_t _txPin
Definition: SerialWombatUART.h:137
SerialWombatUART::_rxPin
uint8_t _rxPin
Definition: SerialWombatUART.h:136
SerialWombatCommands::COMMAND_UART0_RX_7BYTES
@ COMMAND_UART0_RX_7BYTES
(0xB1)
SerialWombatUART::SerialWombatUART
SerialWombatUART(SerialWombatChip &serialWombat)
Constructor for the SerialWombatUART class. Only one instance is allowed per SerialWombatChip 4B.
Definition: SerialWombatUART.cpp:4
SerialWombatSWUART::SerialWombatSWUART
SerialWombatSWUART(SerialWombatChip &serialWombatChip)
Definition: SerialWombatUART.cpp:269
SerialWombatPin::_sw
SerialWombatChip & _sw
Definition: SerialWombat.h:1566
SerialWombatSWUART::txQueue
SerialWombatQueue txQueue
SerialWombatQueue created on the Serial Wombat chip for data to be sent by the SerialWombatSWUART.
Definition: SerialWombatUART.h:229
SerialWombatUART::write
size_t write(uint8_t data)
Write a byte to the SerialWombatUART for Transmit.
Definition: SerialWombatUART.cpp:122
SerialWombatUART::flush
void flush()
Discard all received bytes.
Definition: SerialWombatUART.cpp:100
SerialWombatUART::begin
int16_t begin(uint32_t baudRate, uint8_t pin, uint8_t rxPin, uint8_t txPin, uint8_t HWinterface=1)
Initalize the SerialWombatUART.
Definition: SerialWombatUART.cpp:9
SerialWombatSWUART::rxQueue
SerialWombatQueue rxQueue
SerialWombatQueue created on the Serial Wombat chip for data received by the SerialWombatSWUART.
Definition: SerialWombatUART.h:227
SerialWombat.h
SerialWombatUART
A class for the Serial Wombat 4B or SW18AB chips which creates an I2C to UART Bridge.
Definition: SerialWombatUART.h:69
SerialWombatUART::availableForWrite
int availableForWrite()
Queries the SerialWombatUART for the amount of free TX queue space.
Definition: SerialWombatUART.cpp:188
SerialWombatUART::available
int available()
Queries the SerialWombatUART for number bytes available to read.
Definition: SerialWombatUART.cpp:73
SerialWombatPin
Describes a Serial Wombat Pin. Is base class for other pin modes.
Definition: SerialWombat.h:1470
SerialWombatUART::readBytes
size_t readBytes(char *buffer, size_t length)
Reads a specified number of bytes from the SerialWombatUART RX queue.
Definition: SerialWombatUART.cpp:208
SerialWombatUART::read
int read()
Reads a byte from the SerialWombatUART.
Definition: SerialWombatUART.cpp:81
SerialWombatUART::setTimeout
void setTimeout(long timeout_mS)
Definition: SerialWombatUART.cpp:196
SerialWombatUART::_rx7Command
uint8_t _rx7Command
Definition: SerialWombatUART.h:142
SerialWombatUART::peek
int peek()
Query the SerialWombatUART for the next avaialble byte, but don't remove it from the queue.
Definition: SerialWombatUART.cpp:107
SerialWombatPin::pin
uint8_t pin()
Returns the current SW pin number. Used primarily for virtual calls by derived classes.
Definition: SerialWombat.h:1553
SerialWombatUART::_tx7Command
uint8_t _tx7Command
Definition: SerialWombatUART.h:141
SerialWombatUART::timeout
uint32_t timeout
Definition: SerialWombatUART.h:139
SerialWombatUART::_baudMarker
uint8_t _baudMarker
Definition: SerialWombatUART.h:138
SerialWombatSWUART::begin
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.cpp:273
SerialWombatQueue
A Class representing a Queue in the User Ram area on the Serial Wombat Chip.
Definition: SerialWombatQueue.h:39
SerialWombatUART::_pinMode
uint8_t _pinMode
Definition: SerialWombatUART.h:140
SerialWombatSWUART::write
size_t write(const uint8_t *buffer, size_t size)
Write bytes to the SerialWombatUART for Transmit.
Definition: SerialWombatUART.cpp:373
PIN_MODE_UART_RX_TX
@ PIN_MODE_UART_RX_TX
(17)
Definition: SerialWombat.h:253
SerialWombatCommands::COMMAND_UART0_TX_7BYTES
@ COMMAND_UART0_TX_7BYTES
(0xB0)
SerialWombatSWUART
A class for the Serial Wombat 4B or SW18AB chips which creates a software based UART on the SW18AB.
Definition: SerialWombatUART.h:193