56 lines
1.4 KiB
C
56 lines
1.4 KiB
C
|
// A general definition for the required UART functionality.
|
||
|
// This will be used to gain platform abstraction.
|
||
|
|
||
|
#ifndef _UART_H
|
||
|
#define _UART_H
|
||
|
|
||
|
// data types
|
||
|
|
||
|
typedef void* tUartHandle;
|
||
|
#define INVALID_UART_HANDLE (tUartHandle)-1
|
||
|
|
||
|
typedef enum
|
||
|
{
|
||
|
eNOPARITY,
|
||
|
eODDPARITY,
|
||
|
eEVENPARITY,
|
||
|
eMARKPARITY,
|
||
|
eSPACEPARITY,
|
||
|
} tParity;
|
||
|
|
||
|
typedef enum
|
||
|
{
|
||
|
eONESTOPBIT,
|
||
|
eONE5STOPBITS,
|
||
|
eTWOSTOPBITS,
|
||
|
} tStopBits;
|
||
|
|
||
|
|
||
|
// prototypes
|
||
|
|
||
|
tUartHandle UartOpen( // returns NULL on error
|
||
|
char* szPortName); // COMx for windows
|
||
|
|
||
|
bool UartConfig( // returns true on success, false on error
|
||
|
tUartHandle handle, // the handle returned from UartOpen()
|
||
|
long lBaudRate, // must be one of the "standard" baudrates
|
||
|
tParity nParity, // what kind of parity
|
||
|
tStopBits nStopBits, // how many stop bits
|
||
|
int nByteSize); // size of the "payload", can be 5 to 8
|
||
|
|
||
|
long UartWrite( // returns how much data was actually transmitted
|
||
|
tUartHandle handle, // the handle returned from UartOpen()
|
||
|
unsigned char* pData, // pointer to the data to be transmitted
|
||
|
long lSize); // how many bytes
|
||
|
|
||
|
long UartRead( // returns how much data was actually received
|
||
|
tUartHandle handle, // the handle returned from UartOpen()
|
||
|
unsigned char* pBuffer, // pointer to the destination
|
||
|
long lSize); // how many bytes to read (pBuffer must have enough room)
|
||
|
|
||
|
|
||
|
void UartClose(tUartHandle handle);
|
||
|
|
||
|
|
||
|
|
||
|
#endif // _UART_H
|