Functions
urg_connection.c File Reference

通信の処理 More...

#include "urg_c/urg_connection.h"
Include dependency graph for urg_connection.c:

Go to the source code of this file.

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...
 

Detailed Description

通信の処理

Author
Satofumi KAMIMURA
Id
urg_connection.c,v 0caa22c18f6b 2010/12/30 03:36:32 Satofumi

Definition in file urg_connection.c.

Function Documentation

◆ connection_close()

void connection_close ( urg_connection_t connection)

切断

デバイスとの接続を切断する。

Parameters
[in,out]connection通信リソース
connection_close(&connection);
See also
connection_open()

Definition at line 33 of file urg_connection.c.

◆ connection_open()

int connection_open ( urg_connection_t connection,
urg_connection_type_t  connection_type,
const char *  device,
long  baudrate_or_port 
)

接続

指定されたデバイスに接続する。

Parameters
[in,out]connection通信リソース
[in]connection_type接続タイプ
[in]device接続名
[in]baudrate_or_portボーレート / ポート番号
Return values
0正常
<0エラー

connection_type には

  • URG_SERIAL ... シリアル通信
  • URG_ETHERNET .. イーサーネット通信

を指定する。

device, baudrate_or_port の指定は connection_type により指定できる値が異なる。 例えば、シリアル通信の場合は以下のようになる。

Example

connection_t connection;
if (! connection_open(&connection, URG_SERIAL, "COM1", 115200)) {
return 1;
}

また、イーサーネット通信の場合は以下のようになる。

Example

connection_t connection;
if (! connection_open(&connection, URG_ETHERNET, "192.168.0.10", 10940)) {
return 1;
}
See also
connection_close()

Definition at line 13 of file urg_connection.c.

◆ connection_read()

int connection_read ( urg_connection_t connection,
char *  data,
int  max_size,
int  timeout 
)

受信

データを受信する。

Parameters
[in,out]connection通信リソース
[in]data受信データを格納するバッファ
[in]max_size受信データを格納できるバイト数
[in]timeoutタイムアウト時間 [msec]
Return values
>=0受信データ数
<0エラー

timeout に負の値を指定した場合、タイムアウトは発生しない。

1 文字も受信しなかったときは URG_CONNECTION_TIMEOUT を返す。

Example

enum {
BUFFER_SIZE = 256,
TIMEOUT_MSEC = 1000,
};
char buffer[BUFFER_SIZE];
n = connection_read(&connection, buffer, BUFFER_SIZE, TIMEOUT_MSEC);
See also
connection_write(), connection_readline()

Definition at line 80 of file urg_connection.c.

◆ connection_readline()

int connection_readline ( urg_connection_t connection,
char *  data,
int  max_size,
int  timeout 
)

改行文字までの受信

改行文字までのデータを受信する。

Parameters
[in,out]connection通信リソース
[in]data受信データを格納するバッファ
[in]max_size受信データを格納できるバイト数
[in]timeoutタイムアウト時間 [msec]
Return values
>=0受信データ数
<0エラー

data には、'\0' 終端された文字列が max_size を越えないバイト数だけ格納される。 つまり、受信できる文字のバイト数は、最大で max_size - 1 となる。

改行文字は '\r' または '\n' とする。

受信した最初の文字が改行の場合は、0 を返し、1 文字も受信しなかったときは URG_CONNECTION_TIMEOUT を返す。

See also
connection_write(), connection_read()

Definition at line 95 of file urg_connection.c.

◆ connection_set_baudrate()

int connection_set_baudrate ( urg_connection_t connection,
long  baudrate 
)

ボーレートを設定する

Definition at line 47 of file urg_connection.c.

◆ connection_write()

int connection_write ( urg_connection_t connection,
const char *  data,
int  size 
)

送信

データを送信する。

Parameters
[in,out]connection通信リソース
[in]data送信データ
[in]size送信バイト数
Return values
>=0送信データ数
<0エラー

Example

n = connection_write(&connection, "QT\n", 3);
See also
connection_read(), connection_readline()

Definition at line 65 of file urg_connection.c.

connection_close
void connection_close(urg_connection_t *connection)
切断
Definition: urg_connection.c:33
BUFFER_SIZE
@ BUFFER_SIZE
Definition: urg_sensor.c:27
connection_open
int connection_open(urg_connection_t *connection, urg_connection_type_t connection_type, const char *device, long baudrate_or_port)
接続
Definition: urg_connection.c:13
connection_read
int connection_read(urg_connection_t *connection, char *data, int max_size, int timeout)
受信
Definition: urg_connection.c:80
URG_SERIAL
@ URG_SERIAL
シリアル, USB 接続
Definition: urg_connection.h:33
URG_ETHERNET
@ URG_ETHERNET
イーサーネット接続
Definition: urg_connection.h:34
connection_write
int connection_write(urg_connection_t *connection, const char *data, int size)
送信
Definition: urg_connection.c:65


urg_c
Author(s): Satofumi Kamimura , Katsumi Kimoto, Adrian Boeing
autogenerated on Wed Mar 2 2022 01:08:11