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);
81  int16_t begin(uint32_t baudRate,uint8_t pin, uint8_t rxPin, uint8_t txPin);
82 
89  int16_t begin(uint32_t baudRate, uint8_t pin, uint8_t rxPin, uint8_t txPin,uint8_t HWinterface );
92  int available();
95  int read();
97  void flush();
100  int peek();
110  size_t write(uint8_t data);
111 
122  size_t write(const uint8_t* buffer, size_t size);
123 
126  int availableForWrite();
127 
136  size_t readBytes(char* buffer, size_t length);
137 
138 
139  void setTimeout(long timeout_mS);
140 protected:
141  uint8_t _rxPin = 255;
142  uint8_t _txPin = 255;
143  uint8_t _baudMarker = 0;
144  uint32_t timeout = 5000;
148 };
149 
150 
151 
199 {
200 
201 public:
202 
203 
204  SerialWombatSWUART(SerialWombatChip& serialWombatChip);
205 
213  int16_t begin(uint32_t baudRate, uint8_t pin, uint8_t rxPin, uint8_t txPin, uint16_t userMemoryOffset, uint16_t rxLength, uint16_t txLength);
214 
215 
217  int16_t begin(uint32_t baudRate, uint8_t pin, uint8_t rxPin, uint8_t txPin, uint8_t HWinterface) = delete;
218 
229  size_t write(const uint8_t* buffer, size_t size);
230 
235 private:
236  using SerialWombatUART::begin; //make parent class begin unavaialble
237 
238 };
239 
SerialWombatChip
Class for a Serial Wombat chip. Each Serial Wombat chip on a project should have its own instance.
Definition: SerialWombat.h:265
SerialWombatUART::_txPin
uint8_t _txPin
Definition: SerialWombatUART.h:142
SerialWombatUART::_rxPin
uint8_t _rxPin
Definition: SerialWombatUART.h:141
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:790
SerialWombatSWUART::txQueue
SerialWombatQueue txQueue
SerialWombatQueue created on the Serial Wombat chip for data to be sent by the SerialWombatSWUART.
Definition: SerialWombatUART.h:234
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
SerialWombatSWUART::rxQueue
SerialWombatQueue rxQueue
SerialWombatQueue created on the Serial Wombat chip for data received by the SerialWombatSWUART.
Definition: SerialWombatUART.h:232
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:719
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:147
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:781
SerialWombatUART::_tx7Command
uint8_t _tx7Command
Definition: SerialWombatUART.h:146
SerialWombatUART::timeout
uint32_t timeout
Definition: SerialWombatUART.h:144
SerialWombatUART::_baudMarker
uint8_t _baudMarker
Definition: SerialWombatUART.h:143
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:145
SerialWombatUART::begin
int16_t begin(uint32_t baudRate, uint8_t pin, uint8_t rxPin, uint8_t txPin)
Initalize the SerialWombatUART.
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:243
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:198