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)
 切断
int connection_open (urg_connection_t *connection, urg_connection_type_t connection_type, const char *device, long baudrate_or_port)
 接続
int connection_read (urg_connection_t *connection, char *data, int max_size, int timeout)
 受信
int connection_readline (urg_connection_t *connection, char *data, int max_size, int timeout)
 改行文字までの受信
int connection_set_baudrate (urg_connection_t *connection, long baudrate)
int connection_write (urg_connection_t *connection, const char *data, int size)
 送信

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

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.

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.

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.

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.

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 
)

送信

データを送信する。

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.



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