PropWare  3.0.0.229
C++ objects and CMake build system for Parallax Propeller
fdserial.h
Go to the documentation of this file.
1 
34 #ifndef __FDSerial_H
35 #define __FDSerial_H
36 
37 #include "simpletext.h"
38 
39 #ifdef __cplusplus
40 extern "C"
41 {
42 #endif
43 
51 typedef text_t fdserial;
52 
56 #define FDSERIAL_BUFF_MASK 0x3f
57 
61 #define FDSERIAL_MODE_NONE 0
62 
66 #define FDSERIAL_MODE_INVERT_RX 1
67 
71 #define FDSERIAL_MODE_INVERT_TX 2
72 
77 #define FDSERIAL_MODE_OPENDRAIN_TX 4
78 
82 #define FDSERIAL_MODE_IGNORE_TX_ECHO 8
83 
87 #define FDSERIAL_MODE_RX_ONLY 16
88 
92 #define FDSERIAL_MODE_ECHO_RX_TO_TX 32
93 
97 typedef struct fdserial_struct
98 { int rx_head; int rx_tail; int tx_head; int tx_tail; int rx_pin; int tx_pin; int mode; int ticks; char *buffptr; //char rxOnly;
109 } fdserial_st;
110 
131 fdserial *fdserial_open(int rxpin, int txpin, int mode, int baudrate);
132 
138 void fdserial_close(fdserial *term);
139 
149 int fdserial_rxCheck(fdserial *term);
150 
156 void fdserial_rxFlush(fdserial *term);
157 
166 int fdserial_rxReady(fdserial *term);
167 
178 int fdserial_rxTime(fdserial *term, int ms);
179 
188 int fdserial_rxChar(fdserial *term);
189 
199 int fdserial_rxCount(fdserial *term);
200 
206 int fdserial_rxPeek(fdserial *term);
207 
218 int fdserial_txChar(fdserial *term, int txbyte);
219 
227 int fdserial_txEmpty(fdserial *term);
228 
232 void fdserial_txFlush(fdserial *term);
233 
234 #ifdef __cplusplus
235 }
236 #endif
237 
238 #endif
239 /* __FDSerial_H */
240 
241 
fdserial_rxReady
int fdserial_rxReady(fdserial *term)
Check if a byte is ready in the receive buffer.
Definition: fdserial_utils.c:25
fdserial_struct::tx_pin
int tx_pin
Definition: fdserial.h:104
fdserial_rxPeek
int fdserial_rxPeek(fdserial *term)
Get a byte from the receive buffer without changing the pointers. The function does not block.
Definition: fdserial_utils.c:61
fdserial_struct::rx_head
int rx_head
Definition: fdserial.h:99
fdserial_rxTime
int fdserial_rxTime(fdserial *term, int ms)
Gets a byte from the receive buffer if available, or wait for up to timeout ms to receive a byte.
Definition: fdserial_utils.c:37
fdserial_txChar
int fdserial_txChar(fdserial *term, int txbyte)
Send a byte by adding it to the transmit buffer.
Definition: fdserial.c:176
fdserial_struct::tx_tail
int tx_tail
Definition: fdserial.h:102
fdserial_rxChar
int fdserial_rxChar(fdserial *term)
Get a byte from the receive buffer, or if it's emtpy, wait until a byte is received.
Definition: fdserial.c:164
fdserial_struct::rx_tail
int rx_tail
Definition: fdserial.h:100
fdserial_txEmpty
int fdserial_txEmpty(fdserial *term)
Check if the transmit buffer is empty.
Definition: fdserial.c:135
fdserial_struct::rx_pin
int rx_pin
Definition: fdserial.h:103
fdserial_struct::ticks
int ticks
Definition: fdserial.h:106
fdserial_rxCount
int fdserial_rxCount(fdserial *term)
Get number of bytes available in the receive buffer without receiving any. NOTE: This function is not...
Definition: fdserial_utils.c:79
fdserial_struct
Defines fdserial interface structure of 9 contiguous longs + buffers.
Definition: fdserial.h:97
simpletext.h
This library provides a collection of functions for communicating with text devices such as SimpleIDE...
fdserial_rxFlush
void fdserial_rxFlush(fdserial *term)
Empties the receive buffer.
Definition: fdserial_utils.c:14
fdserial_txFlush
void fdserial_txFlush(fdserial *term)
Remove any bytes that might be waiting in the transmit buffer.
Definition: fdserial_utils.c:51
fdserial_struct::mode
int mode
Definition: fdserial.h:105
text_struct
Structure that contains data used by simple text device libraries.
Definition: simpletext.h:81
ms
int ms
Propeller system clock ticks in 1 millisecond (ms).
Definition: timeTicks.c:20
fdserial_open
fdserial * fdserial_open(int rxpin, int txpin, int mode, int baudrate)
Open a full duplex serial connection.
Definition: fdserial.c:20
fdserial_struct::buffptr
char * buffptr
Definition: fdserial.h:107
fdserial_rxCheck
int fdserial_rxCheck(fdserial *term)
Gets a byte from the receive buffer if available, but does not wait if there's nothing in the buffer.
Definition: fdserial.c:146
fdserial_close
void fdserial_close(fdserial *term)
Stop stops the cog running the native assembly driver.
Definition: fdserial.c:115
fdserial_st
struct fdserial_struct fdserial_st
Defines fdserial interface structure of 9 contiguous longs + buffers.
fdserial_struct::tx_head
int tx_head
Definition: fdserial.h:101
fdserial
text_t fdserial
Defines text_t data type as fdserial to allow declarations like fdserial *MyDevice....
Definition: fdserial.h:51