SysIo  1.9.0
Embedded Library and tools
include/sysio/serial.h
1 
9 #ifndef _SYSIO_SERIAL_H_
10 #define _SYSIO_SERIAL_H_
11 #include <termios.h>
12 #include <sysio/defs.h>
13 
14 #ifdef __cplusplus
15  extern "C" {
16 #endif
17 /* ========================================================================== */
18 
34 #define EBADBAUD (-2)
35 
40 typedef enum {
41  SERIAL_DATABIT_5 = 5,
42  SERIAL_DATABIT_6 = 6,
43  SERIAL_DATABIT_7 = 7,
44  SERIAL_DATABIT_8 = 8,
45  SERIAL_DATABIT_UNKNOWN = -1
47 
52 typedef enum {
53  SERIAL_PARITY_NONE = 'N',
54  SERIAL_PARITY_EVEN = 'E',
55  SERIAL_PARITY_ODD = 'O',
56  SERIAL_PARITY_SPACE = 'S',
57  SERIAL_PARITY_MARK = 'M',
58  SERIAL_PARITY_UNKNOWN = -1
60 
65 typedef enum {
66  SERIAL_STOPBIT_ONE = 1,
67  SERIAL_STOPBIT_TWO = 2,
68  SERIAL_STOPBIT_ONEHALF = 3,
69  SERIAL_STOPBIT_UNKNOWN
71 
78 typedef enum {
79 
85  SERIAL_FLOW_UNKNOWN = -1
86 } eSerialFlow;
87 
88 /* structures =============================================================== */
92 typedef struct xSerialIos {
93  long baud;
96  eSerialStopBits sbits;
98  int flag;
99 } xSerialIos;
100 
101 /* internal public functions ================================================ */
102 
113 int iSerialOpen (const char *device, xSerialIos * xIos);
114 
115 
125 void vSerialClose (int fd);
126 
134 void vSerialFlush (int fd);
135 
142 int iSerialDataAvailable (int fd);
143 
151 int iSerialPoll (int fd, int timeout_ms);
152 
160 int iSerialSetAttr (int fd, const xSerialIos * xIos);
161 
169 int iSerialGetAttr (int fd, xSerialIos * xIos);
170 
184 const char * sSerialAttrToStr (const xSerialIos * xIos);
185 
192 bool bSerialFdIsValid (int fd);
193 
200 int iSerialGetBaudrate (int fd);
201 
209 
217 
224 eSerialStopBits eSerialGetStopBits (int fd);
225 
232 eSerialFlow eSerialGetFlow (int fd);
233 
240 int iSerialSetBaudrate (int fd, int iBaudrate);
241 
248 int iSerialSetDataBits (int fd, eSerialDataBits eDataBits);
249 
256 int iSerialSetParity (int fd, eSerialParity eParity);
257 
264 int iSerialSetStopBits (int fd, eSerialStopBits eStopBits);
265 
272 int iSerialSetFlow (int fd, eSerialFlow eNewFlow);
273 
279 const char * sSerialGetFlowStr (int fd);
280 
295 const char * sSerialAttrStr (int fd);
296 
304 int iSerialTermiosSetAttr (struct termios * ts, const xSerialIos * xIos);
305 
313 int iSerialTermiosGetAttr (const struct termios * ts, xSerialIos * xIos);
314 
318 int iSerialTermiosSetBaudrate (struct termios * ts, int iBaudrate);
319 
323 int iSerialTermiosSetDataBits (struct termios * ts, eSerialDataBits eDataBits);
324 
328 int iSerialTermiosSetParity (struct termios * ts, eSerialParity eParity);
329 
333 int iSerialTermiosSetStopBits (struct termios * ts, eSerialStopBits eStopBits);
334 
340 int iSerialTermiosSetFlow (struct termios * ts, eSerialFlow eFlow);
341 
345 int iSerialTermiosGetBaudrate (const struct termios * ts);
346 
350 int iSerialTermiosGetDataBits (const struct termios * ts);
351 
355 int iSerialTermiosGetStopBits (const struct termios * ts);
356 
360 int iSerialTermiosGetParity (const struct termios * ts);
361 
367 int iSerialTermiosGetFlow (const struct termios * ts);
368 
382 const char * sSerialTermiosToStr (const struct termios * ts);
383 
387 double dSerialTermiosFrameDuration (const struct termios * ts, size_t ulSize);
388 
392 const char * sSerialFlowToStr (eSerialFlow eFlow);
393 
397 const char * sSerialParityToStr (eSerialParity eParity);
398 
402 const char * sSerialDataBitsToStr (eSerialDataBits eDataBits);
403 
407 const char * sSerialStopBitsToStr (eSerialStopBits eStopBits);
408 
412 int iSerialSpeedToInt (speed_t speed);
413 
417 speed_t eSerialIntToSpeed (int baud);
418 
424 double dSerialFrameDuration (int fd, size_t ulSize);
425 
430 /* ========================================================================== */
431 #ifdef __cplusplus
432  }
433 #endif
434 #endif /* _SYSIO_SERIAL_H_ */
int iSerialTermiosGetDataBits(const struct termios *ts)
int iSerialTermiosSetBaudrate(struct termios *ts, int iBaudrate)
eSerialFlow eSerialGetFlow(int fd)
double dSerialFrameDuration(int fd, size_t ulSize)
const char * sSerialFlowToStr(eSerialFlow eFlow)
eSerialDataBits eSerialGetDataBits(int fd)
eSerialStopBits sbits
int iSerialSetFlow(int fd, eSerialFlow eNewFlow)
int iSerialDataAvailable(int fd)
eSerialFlow flow
int iSerialTermiosGetBaudrate(const struct termios *ts)
int iSerialOpen(const char *device, xSerialIos *xIos)
double dSerialTermiosFrameDuration(const struct termios *ts, size_t ulSize)
int iSerialSetDataBits(int fd, eSerialDataBits eDataBits)
int iSerialTermiosGetStopBits(const struct termios *ts)
void vSerialFlush(int fd)
int iSerialTermiosSetAttr(struct termios *ts, const xSerialIos *xIos)
int iSerialTermiosSetParity(struct termios *ts, eSerialParity eParity)
eSerialStopBits
Nombre de bits de stop.
struct xSerialIos xSerialIos
eSerialParity parity
int iSerialTermiosGetFlow(const struct termios *ts)
eSerialParity
Parité
const char * sSerialAttrStr(int fd)
int iSerialTermiosSetStopBits(struct termios *ts, eSerialStopBits eStopBits)
const char * sSerialTermiosToStr(const struct termios *ts)
bool bSerialFdIsValid(int fd)
Vérifie si le descripteur de fichier est valide.
eSerialStopBits eSerialGetStopBits(int fd)
const char * sSerialParityToStr(eSerialParity eParity)
int iSerialGetAttr(int fd, xSerialIos *xIos)
const char * sSerialGetFlowStr(int fd)
eSerialDataBits dbits
int iSerialTermiosGetParity(const struct termios *ts)
int iSerialSetBaudrate(int fd, int iBaudrate)
eSerialDataBits
Nombre de bits de données.
speed_t eSerialIntToSpeed(int baud)
eSerialParity eSerialGetParity(int fd)
int iSerialSetAttr(int fd, const xSerialIos *xIos)
int iSerialSetParity(int fd, eSerialParity eParity)
int iSerialPoll(int fd, int timeout_ms)
const char * sSerialAttrToStr(const xSerialIos *xIos)
eSerialFlow
Type de contrôle de flux.
int iSerialSpeedToInt(speed_t speed)
int iSerialTermiosSetFlow(struct termios *ts, eSerialFlow eFlow)
int iSerialGetBaudrate(int fd)
int iSerialTermiosGetAttr(const struct termios *ts, xSerialIos *xIos)
int iSerialTermiosSetDataBits(struct termios *ts, eSerialDataBits eDataBits)
int iSerialSetStopBits(int fd, eSerialStopBits eStopBits)
const char * sSerialStopBitsToStr(eSerialStopBits eStopBits)
void vSerialClose(int fd)
const char * sSerialDataBitsToStr(eSerialDataBits eDataBits)