#include <urgCtrl.h>
Public Types | |
enum | { VEND = 3, PROD, FIRM, PROT, SERI, DefaultTimeout = -1 } |
enum | { LineLength = 64 + 16 } |
バージョン情報の取得 More... | |
Public Member Functions | |
urgParams_t & | getParameters (void) |
センサのパラメータ情報を返す | |
const char * | what (void) |
エラー状態を示す文字列を返す | |
void | setHandstand (bool on) |
センサの取り付け状態を設定 | |
virtual int | connect (const char *device, long baudrate=DefaultBaudrate, bool autoCapture=URG::AutoCapture) |
デバイスを指定してセンサ接続を行う | |
int | connectSocket (const char *host, short port, bool autoCapture) |
ソケットに対して接続 | |
virtual int | connect (int argc, char *argv[], bool autoCapture=URG::AutoCapture) |
引数、および b5conf.txt の内容を評価してセンサへの接続を行う | |
virtual int | connect (bool autoCapture=true) |
b5conf.txt の内容を評価してセンサへの接続を行う | |
virtual void | disconnect (void) |
センサとの接続を切断する | |
virtual bool | isConnected (void) |
センサと接続しているかを返す | |
void | set_recvTimeout (int timeout=DefaultTimeout) |
受信時のタイムアウトを指定 | |
virtual int | getVersionInfo (char lines[][LineLength]) |
int | capture (int first_index, int last_index, int group=1) |
センサデータの取得 | |
int | capture (int group=1) |
int | getCaptureTimes (void) |
センサからデータを取得した回数を返す | |
void | convert (void) |
測定データを展開 | |
void | convert (const VXV::Position3D &crd_position) |
測定データを指定位置に展開 | |
void | convert (const VXV::TicksPositionInterface &position) |
測定データを展開 | |
Public Attributes | |
long | length [SenseSteps] |
センサからの測定データが格納される | |
Protected Types | |
enum | { SenseSteps = (1024 * 270 / 360) + 1 } |
Protected Member Functions | |
void | initTicksInfo (void) |
時刻合わせ処理の初期化 | |
virtual unsigned long | getHostTicks (void) |
ホスト側のタイムスタンプを取得 | |
virtual void | beginTimeAdjust (void) |
タイムスタンプ合わせモードの開始 | |
virtual unsigned long | getURGTimestamp (void) |
URG のタイムスタンプを取得. | |
virtual void | endTimeAdjust (void) |
タイムスタンプ合わせモードの終了 | |
long * | getLengthData (void) |
測定データが格納された配列へのポインタを返す | |
bool | parseArgs (int *ret_value, int argc, char *argv[], bool autoCapture) |
引数渡しのオプションを処理する | |
void | checkVersion (void) |
バージョン情報からドライバの挙動を決定する | |
virtual int | raw_capture (long length[], int first_index, int last_index, int group, unsigned long *raw_timestamp=NULL) |
URG からデータ取得を行う. | |
Protected Attributes | |
bool | to_simulator |
bool | enableTimestamp |
urgParams_t | params |
センサのパラメータ情報を格納する | |
Friends | |
class | URG_Simulator |
class | URGCtrlTest |
autoCapture.cpp, and oneScan.cpp.
Definition at line 23 of file urgCtrl.h.
anonymous enum |
unsigned long URGCtrl::getURGTimestamp | ( | void | ) | [protected, virtual] |
URG のタイムスタンプを取得.
タイムスタンプ |
Definition at line 78 of file urgTicksCtrl.cpp.
References URGCapture::recv_line(), and URGCapture::send().
Referenced by initTicksInfo().
long* URGCtrl::getLengthData | ( | void | ) | [inline, protected, virtual] |
測定データが格納された配列へのポインタを返す
Implements URGInterface.
Definition at line 102 of file urgCtrl.h.
References length.
bool URGCtrl::parseArgs | ( | int * | ret_value, | |
int | argc, | |||
char * | argv[], | |||
bool | autoCapture | |||
) | [protected] |
引数渡しのオプションを処理する
ret_value | [i] 接続が行われた場合の戻り値が格納される | |
argc | [i] 引数の個数 | |
argv | [i] 引数文字列を格納した配列 | |
autoCapture | [i] 接続の際の urg_capture_mode_page を指定 |
true | ret_value が有効な場合 | |
false | ret_value が無効な場合 |
Definition at line 111 of file urgCtrl.cpp.
References connect(), and to_simulator.
Referenced by connect().
int URGCtrl::raw_capture | ( | long | length[], | |
int | first_index, | |||
int | last_index, | |||
int | group, | |||
unsigned long * | raw_timestamp = NULL | |||
) | [protected, virtual] |
URG からデータ取得を行う.
length | [o] 取得データを格納する配列 | |
first_index | [i] 測定データの要求開始位置 | |
last_index | [i] 測定データの要求終了位置 | |
group | [i] グルーピングを行うデータ個数 | |
raw_timestamp | [o] センサのタイムスタンプ値 |
戻り値 | > 0 取得したデータ配列の添え字の最大値 | |
戻り値 | < 0 エラー |
Definition at line 234 of file urgCtrl.cpp.
References URGCapture::capture(), and params.
Referenced by capture().
urgParams_t& URGCtrl::getParameters | ( | void | ) | [inline, virtual] |
const char * URGCtrl::what | ( | void | ) | [virtual] |
エラー状態を示す文字列を返す
URGCtrl urg; if (urg.connect(argc, argv, URG::AutoCapture) < 0) { // 接続に失敗した場合、エラーメッセージを表示して終了 printf("URGCtrl::connect: %s\n", urg.what()); exit(1); } ...
Implements URGInterface.
Definition at line 55 of file urgCtrl.cpp.
void URGCtrl::setHandstand | ( | bool | on | ) |
センサの取り付け状態を設定
on | [i] センサが天地逆に取り付けられている場合、true を指定 |
Definition at line 60 of file urgCtrl.cpp.
int URGCtrl::connect | ( | const char * | device, | |
long | baudrate = DefaultBaudrate , |
|||
bool | autoCapture = URG::AutoCapture | |||
) | [virtual] |
デバイスを指定してセンサ接続を行う
autoCapture | [i] 接続の際の urg_capture_mode_page を指定 | |
device | [i] 接続デバイス名 | |
baudrate | [i] 接続ボーレート |
0 | 正常終了 | |
戻り値 | < 0 エラー |
Implements URGInterface.
Definition at line 65 of file urgCtrl.cpp.
References checkVersion(), URGCapture::connect(), disconnect(), enableTimestamp, initTicksInfo(), URGCapture::laser(), and URGCapture::what().
Referenced by connect(), and parseArgs().
int URGCtrl::connectSocket | ( | const char * | host, | |
short | port, | |||
bool | autoCapture | |||
) |
ソケットに対して接続
autoCapture | [i] 接続の際の urg_capture_mode_page を指定 | |
host | [i] 接続ホスト | |
port | [i] 接続ポート |
0 | 正常終了 | |
戻り値 | < 0 エラー |
Definition at line 203 of file urgCtrl.cpp.
References checkVersion(), URGCapture::connectSocket(), disconnect(), enableTimestamp, initTicksInfo(), and URGCapture::what().
Referenced by connect().
int URGCtrl::connect | ( | int | argc, | |
char * | argv[], | |||
bool | autoCapture = URG::AutoCapture | |||
) | [virtual] |
引数、および b5conf.txt の内容を評価してセンサへの接続を行う
引数は、argv[1] から評価される
argc | [i] 引数の個数 | |
argv | [i] 引数文字列を格納した配列 | |
autoCapture | [i] 接続の際の urg_capture_mode_page を指定 |
Implements URGInterface.
Reimplemented in mURGCtrl.
Definition at line 163 of file urgCtrl.cpp.
References connect(), disconnect(), and parseArgs().
int URGCtrl::connect | ( | bool | autoCapture = true |
) | [virtual] |
b5conf.txt の内容を評価してセンサへの接続を行う
autoCapture | [i] 接続の際の urg_capture_mode_page を指定 |
Reimplemented in mURGCtrl.
Definition at line 175 of file urgCtrl.cpp.
References connectSocket(), VXV::createArgs(), VXV::deleteArgs(), disconnect(), parseArgs(), VXV::searchFile(), and to_simulator.
void URGCtrl::disconnect | ( | void | ) | [virtual] |
センサとの接続を切断する
Implements URGInterface.
Definition at line 220 of file urgCtrl.cpp.
Referenced by connect(), and connectSocket().
bool URGCtrl::isConnected | ( | void | ) | [virtual] |
センサと接続しているかを返す
Reimplemented in mURGCtrl.
Definition at line 229 of file urgCtrl.cpp.
References URGCapture::isConnected().
Referenced by capture(), and getCaptureTimes().
void URGCtrl::set_recvTimeout | ( | int | timeout = DefaultTimeout |
) |
受信時のタイムアウトを指定
timeout | [i] タイムアウト時間 [msec] |
Definition at line 342 of file urgCtrl.cpp.
References URGCapture::set_recvTimeout().
int URGCtrl::capture | ( | int | first_index, | |
int | last_index, | |||
int | group = 1 | |||
) | [virtual] |
センサデータの取得
URGCapture::capture の説明を参照のこと
first_index | [i] 測定データの要求開始位置 | |
last_index | [i] 測定データの要求終了位置 | |
group | [i] グルーピングを行うデータ個数 |
戻り値 | > 0 取得したデータ配列の添え字の最大値 | |
戻り値 | < 0 エラー |
Implements URGInterface.
Definition at line 242 of file urgCtrl.cpp.
References enableTimestamp, TicksCtrlInterface::getModuleTicks(), isConnected(), length, params, raw_capture(), and URGInterface::urgParams_t::sense_steps.
Referenced by capture().
int URGCtrl::capture | ( | int | group = 1 |
) | [virtual] |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
group | [i] グルーピングを行うデータ個数 |
Implements URGInterface.
Definition at line 271 of file urgCtrl.cpp.
References capture(), params, and URGInterface::urgParams_t::sense_steps.
int URGCtrl::getCaptureTimes | ( | void | ) |
センサからデータを取得した回数を返す
Reimplemented in mURGCtrl.
Definition at line 276 of file urgCtrl.cpp.
References URGCapture::getCaptureTimes(), and isConnected().
void URGCtrl::convert | ( | void | ) |
測定データを展開
変換位置は、capture 時の推定自己位置が用いられる
Definition at line 284 of file urgCtrl.cpp.
Referenced by convert().
void URGCtrl::convert | ( | const VXV::Position3D & | crd_position | ) |
測定データを指定位置に展開
crd_position | [i] 変換位置 |
Definition at line 289 of file urgCtrl.cpp.
References TicksPosition::add(), and convert().
void URGCtrl::convert | ( | const VXV::TicksPositionInterface & | position | ) |
測定データを展開
position | [i] 時刻付きの変換位置 |
Definition at line 306 of file urgCtrl.cpp.
References convert(), VXV::createConvertMatrix(), VXV::TicksPositionInterface::getPosition(), URGInterface::index2rad(), length, URGInterface::urgParams_t::length_max, URGInterface::urgParams_t::length_min, params, URGInterface::urgParams_t::sense_steps, VXV::Grid::x, VXV::Grid::y, and VXV::Position3D::z.
bool URGCtrl::to_simulator [protected] |
シミュレータへの接続
Definition at line 65 of file urgCtrl.h.
Referenced by connect(), mURGCtrl::connect(), and parseArgs().
bool URGCtrl::enableTimestamp [protected] |
タイムスタンプ利用可能
Definition at line 66 of file urgCtrl.h.
Referenced by capture(), checkVersion(), connect(), mURGCtrl::connect(), and connectSocket().