Jörg Hohensohn | 6a4e4c8 | 2003-11-30 11:37:43 +0000 | [diff] [blame] | 1 | // A general definition for the required UART functionality. |
| 2 | // This will be used to gain platform abstraction. |
| 3 | |
| 4 | #ifndef _UART_H |
| 5 | #define _UART_H |
| 6 | |
| 7 | // data types |
| 8 | |
| 9 | typedef void* tUartHandle; |
| 10 | #define INVALID_UART_HANDLE (tUartHandle)-1 |
| 11 | |
| 12 | typedef enum |
| 13 | { |
| 14 | eNOPARITY, |
| 15 | eODDPARITY, |
| 16 | eEVENPARITY, |
| 17 | eMARKPARITY, |
| 18 | eSPACEPARITY, |
| 19 | } tParity; |
| 20 | |
| 21 | typedef enum |
| 22 | { |
| 23 | eONESTOPBIT, |
| 24 | eONE5STOPBITS, |
| 25 | eTWOSTOPBITS, |
| 26 | } tStopBits; |
| 27 | |
| 28 | |
| 29 | // prototypes |
| 30 | |
| 31 | tUartHandle UartOpen( // returns NULL on error |
| 32 | char* szPortName); // COMx for windows |
| 33 | |
| 34 | bool UartConfig( // returns true on success, false on error |
| 35 | tUartHandle handle, // the handle returned from UartOpen() |
| 36 | long lBaudRate, // must be one of the "standard" baudrates |
| 37 | tParity nParity, // what kind of parity |
| 38 | tStopBits nStopBits, // how many stop bits |
| 39 | int nByteSize); // size of the "payload", can be 5 to 8 |
| 40 | |
| 41 | long UartWrite( // returns how much data was actually transmitted |
| 42 | tUartHandle handle, // the handle returned from UartOpen() |
| 43 | unsigned char* pData, // pointer to the data to be transmitted |
| 44 | long lSize); // how many bytes |
| 45 | |
| 46 | long UartRead( // returns how much data was actually received |
| 47 | tUartHandle handle, // the handle returned from UartOpen() |
| 48 | unsigned char* pBuffer, // pointer to the destination |
| 49 | long lSize); // how many bytes to read (pBuffer must have enough room) |
| 50 | |
| 51 | |
| 52 | void UartClose(tUartHandle handle); |
| 53 | |
| 54 | |
| 55 | |
Jens Arnold | c519e63 | 2004-11-19 22:44:45 +0000 | [diff] [blame] | 56 | #endif // _UART_H |
| 57 | |