# SFBHWSerial Class Reference

The object supporting 'hardware level' serial operations on the SFB. More...

`#include <SFBHWSerialBoard.h>`

Collaboration diagram for SFBHWSerial:

[legend]

## Public Member Functions
| SFBHWSerial (int face)
SFBFrame & | getFrame ()
void | putcBlocking (const u8 byte)
bool | getPreferOddParity ()
u8 | getPreferredBaudCode ()
void | setPreferredBaudCode (u8 code)
u8 | getLowBaudCode ()
u8 | getHighBaudCode ()
void | setHighBaudCode (u8 code)
void | predispatch ()
void | start (u32 baud, bool oddParity=false)
void | stop ()
void | setBaudRate (u32 baud, bool oddParity=false)
void | checkTx ()
u32 | getFD ()
SFBRxByteBuffer & | getRx ()
SFBTxByteBuffer & | getTx ()
| SFBHWSerial (int face)
void | setNoiseParameters (u32 byteErrorOdds, u32 nextErrorOdds)
SFBFrame & | getFrame ()
void | putcBlocking (const u8 byte)
bool | getPreferOddParity ()
u8 | getPreferredBaudCode ()
u8 | getLowBaudCode ()
u8 | getHighBaudCode ()
void | setPreferredBaudCode (u8 code)
void | setLowBaudCode (u8 code)
void | setHighBaudCode (u8 code)
void | predispatch ()
void | start (u32 baud, bool oddParity=false)
void | stop ()
void | setBaudRate (u32 baud, bool isOddParity=false)
void | checkTx ()
void * | getUFD ()
void | setUFD (void *newUFD)
bool | canRead ()
int | readByte ()
void | forceRxSync ()
SFBRxByteBuffer & | getRx ()
SFBTxByteBuffer & | getTx ()
## Static Public Member Functions
static u32 | getFirstFace ()
static bool | moreFaces (u32 face)
static u32 | nextFace (u32 face)
static SFBSerial & | getFace (u32 face)
static void | reinitAll ()
static u32 | getFirstFace ()
static bool | moreFaces (u32 face)
static u32 | nextFace (u32 face)
static char | faceCode (u32 face)
static SFBSerial & | getFace (u32 face)
static void | startup_initialization ()
## Friends
void | Uart0Handler ()
void | Uart1Handler ()
void | Uart2Handler ()
void | Uart3Handler ()

## Detailed Description

The object supporting 'hardware level' serial operations on the SFB.

The object supporting 'hardware level' serial operations on the host.

WARNING! There are two classes _both_ named 'SFBHWSerial'; this one for SFB serial communication, defined in SFBHWSerialBoard.h and SFBHWSerialBoard.cpp, and another one for host-side communication, defined in SFBHWSerialPortable.h and SFBHWSerialPortable.cpp. Only one definition is seen on any particular compilation, due to conditional compilation in SFBHWSerial.h. This definition is used if HOST_MODE is _not_ defined.

This is awkward, but was done to avoid inheritance, with its associated complexities and additional vtable pointers.

WARNING! There are two classes _both_ named 'SFBHWSerial'; this one for host-side communication, defined in SFBHWSerialPortable.h and SFBHWSerialPortable.cpp, and another one for SFB on-board communication, defined in SFBHWSerialBoard.h and SFBHWSerialBoard.cpp. Only one definition is seen on any particular compilation, due to conditional compilation in SFBHWSerial.h. This definition is used if HOST_MODE is defined.

This is awkward, but was done to avoid inheritance, with its associated complexities and additional vtable pointers.

The documentation for this class was generated from the following files:

- src/include/SFBHWSerialBoard.h
- src/include/SFBHWSerialPortable.h
- src/components/board/SFBHWSerialBoard.cpp
- src/components/host/SFBHWSerialPortable.cpp