通信の処理 More...
Go to the source code of this file.
Classes | |
struct | urg_connection_t |
通信リソース More... | |
Enumerations | |
enum | { URG_CONNECTION_TIMEOUT = -1 } |
定数定義 More... | |
enum | urg_connection_type_t { URG_SERIAL, URG_ETHERNET } |
通信タイプ More... | |
Functions | |
void | connection_close (urg_connection_t *connection) |
切断 More... | |
int | connection_open (urg_connection_t *connection, urg_connection_type_t connection_type, const char *device, long baudrate_or_port) |
接続 More... | |
int | connection_read (urg_connection_t *connection, char *data, int max_size, int timeout) |
受信 More... | |
int | connection_readline (urg_connection_t *connection, char *data, int max_size, int timeout) |
改行文字までの受信 More... | |
int | connection_set_baudrate (urg_connection_t *connection, long baudrate) |
int | connection_write (urg_connection_t *connection, const char *data, int size) |
送信 More... | |
通信の処理
Definition in file urg_connection.h.
anonymous enum |
定数定義
Enumerator | |
---|---|
URG_CONNECTION_TIMEOUT |
タイムアウトが発生したときの戻り値 |
Definition at line 24 of file urg_connection.h.
通信タイプ
Enumerator | |
---|---|
URG_SERIAL |
シリアル, USB 接続 |
URG_ETHERNET |
イーサーネット接続 |
Definition at line 32 of file urg_connection.h.
void connection_close | ( | urg_connection_t * | connection | ) |
切断
デバイスとの接続を切断する。
[in,out] | connection | 通信リソース |
Definition at line 33 of file urg_connection.c.
int connection_open | ( | urg_connection_t * | connection, |
urg_connection_type_t | connection_type, | ||
const char * | device, | ||
long | baudrate_or_port | ||
) |
接続
指定されたデバイスに接続する。
[in,out] | connection | 通信リソース |
[in] | connection_type | 接続タイプ |
[in] | device | 接続名 |
[in] | baudrate_or_port | ボーレート / ポート番号 |
0 | 正常 |
<0 | エラー |
connection_type には
を指定する。
device, baudrate_or_port の指定は connection_type により指定できる値が異なる。 例えば、シリアル通信の場合は以下のようになる。
Example
また、イーサーネット通信の場合は以下のようになる。
Example
Definition at line 13 of file urg_connection.c.
int connection_read | ( | urg_connection_t * | connection, |
char * | data, | ||
int | max_size, | ||
int | timeout | ||
) |
受信
データを受信する。
[in,out] | connection | 通信リソース |
[in] | data | 受信データを格納するバッファ |
[in] | max_size | 受信データを格納できるバイト数 |
[in] | timeout | タイムアウト時間 [msec] |
>=0 | 受信データ数 |
<0 | エラー |
timeout に負の値を指定した場合、タイムアウトは発生しない。
1 文字も受信しなかったときは URG_CONNECTION_TIMEOUT を返す。
Example
Definition at line 80 of file urg_connection.c.
int connection_readline | ( | urg_connection_t * | connection, |
char * | data, | ||
int | max_size, | ||
int | timeout | ||
) |
改行文字までの受信
改行文字までのデータを受信する。
[in,out] | connection | 通信リソース |
[in] | data | 受信データを格納するバッファ |
[in] | max_size | 受信データを格納できるバイト数 |
[in] | timeout | タイムアウト時間 [msec] |
>=0 | 受信データ数 |
<0 | エラー |
data には、'\0' 終端された文字列が max_size を越えないバイト数だけ格納される。 つまり、受信できる文字のバイト数は、最大で max_size - 1 となる。
改行文字は '\r' または '\n' とする。
受信した最初の文字が改行の場合は、0 を返し、1 文字も受信しなかったときは URG_CONNECTION_TIMEOUT を返す。
Definition at line 95 of file urg_connection.c.
int connection_set_baudrate | ( | urg_connection_t * | connection, |
long | baudrate | ||
) |
ボーレートを設定する
Definition at line 47 of file urg_connection.c.
int connection_write | ( | urg_connection_t * | connection, |
const char * | data, | ||
int | size | ||
) |
送信
データを送信する。
[in,out] | connection | 通信リソース |
[in] | data | 送信データ |
[in] | size | 送信バイト数 |
>=0 | 送信データ数 |
<0 | エラー |
Example
Definition at line 65 of file urg_connection.c.