urg_serial.h
Go to the documentation of this file.
1 #ifndef URG_SERIAL_H
2 #define URG_SERIAL_H
3 
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16 
17 #include "urg_c/urg_detect_os.h"
18 
19 #if defined(URG_WINDOWS_OS)
20 #include <windows.h>
21 #elif defined(ANDROID)
22 #include <termios.h>
23 #define tcdrain(fd) ioctl(fd, TCSBRK, 1)
24 #else
25 #include <termios.h>
26 #include <sys/select.h>
27 #endif
28 #include "urg_ring_buffer.h"
29 
30 
31 enum {
34 
36 };
37 
38 
40 typedef struct
41 {
42 #if defined(URG_WINDOWS_OS)
43  HANDLE hCom;
44  int current_timeout;
45 #else
46  int fd;
47  struct termios sio;
48 #endif
49 
51  char buffer[RING_BUFFER_SIZE];
52  char has_last_ch;
53  char last_ch;
54 } urg_serial_t;
55 
56 
58 extern int serial_open(urg_serial_t *serial, const char *device, long baudrate);
59 
60 
62 extern void serial_close(urg_serial_t *serial);
63 
64 
66 extern int serial_set_baudrate(urg_serial_t *serial, long baudrate);
67 
68 
70 extern int serial_write(urg_serial_t *serial, const char *data, int size);
71 
72 
74 extern int serial_read(urg_serial_t *serial,
75  char *data, int max_size, int timeout);
76 
77 
79 extern int serial_readline(urg_serial_t *serial,
80  char *data, int max_size, int timeout);
81 
82 
84 extern int serial_error(urg_serial_t *serial,
85  char *error_message, int max_size);
86 
87 #ifdef __cplusplus
88 }
89 #endif
90 
91 #endif /* !URG_SERIAL_H */
シリアル通信用
Definition: urg_serial.h:40
OS の検出.
int serial_write(urg_serial_t *serial, const char *data, int size)
データを送信する
ring_buffer_t ring
Definition: urg_serial.h:50
int serial_error(urg_serial_t *serial, char *error_message, int max_size)
エラー文字列を格納して返す
リングバッファ
int serial_set_baudrate(urg_serial_t *serial, long baudrate)
ボーレートを設定する
char last_ch
Definition: urg_serial.h:53
void serial_close(urg_serial_t *serial)
接続を閉じる
char has_last_ch
Definition: urg_serial.h:52
リングバッファの管理情報
int serial_open(urg_serial_t *serial, const char *device, long baudrate)
接続を開く
int serial_readline(urg_serial_t *serial, char *data, int max_size, int timeout)
改行までのデータを受信する
Definition: urg_serial.c:40
int serial_read(urg_serial_t *serial, char *data, int max_size, int timeout)
データを受信する


urg_c
Author(s): Satofumi Kamimura , Katsumi Kimoto, Adrian Boeing
autogenerated on Thu Jun 6 2019 19:27:49