URGCtrl Class Reference

URG 操作クラス. More...

#include <urgCtrl.h>

Inheritance diagram for URGCtrl:

Inheritance graph
[legend]
Collaboration diagram for URGCtrl:

Collaboration graph
[legend]

List of all members.

Public Types

enum  {
  VEND = 3, PROD, FIRM, PROT,
  SERI, DefaultTimeout = -1
}
enum  { LineLength = 64 + 16 }
 バージョン情報の取得 More...

Public Member Functions

urgParams_tgetParameters (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


Detailed Description

URG 操作クラス.
Examples:

autoCapture.cpp, and oneScan.cpp.

Definition at line 23 of file urgCtrl.h.


Member Enumeration Documentation

anonymous enum

バージョン情報の取得

SCIP の V コマンドの応答を格納して返す。配列サイズは、64 x 8 以上を要する。

Parameters:
lines [i] V コマンド応答が改行区切りで格納される
Return values:
読み込んだ情報の行数 

Definition at line 235 of file urgCtrl.h.


Member Function Documentation

unsigned long URGCtrl::getURGTimestamp ( void   )  [protected, virtual]

URG のタイムスタンプを取得.

Todo:
説明を記述
Return values:
タイムスタンプ 

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]

測定データが格納された配列へのポインタを返す

Todo:
説明を記述

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]

引数渡しのオプションを処理する

Todo:
説明を記述
argv[] は 0 番目から評価される

Parameters:
ret_value [i] 接続が行われた場合の戻り値が格納される
argc [i] 引数の個数
argv [i] 引数文字列を格納した配列
autoCapture [i] 接続の際の urg_capture_mode_page を指定
Return values:
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 からデータ取得を行う.

Todo:
説明を記述
Parameters:
length [o] 取得データを格納する配列
first_index [i] 測定データの要求開始位置
last_index [i] 測定データの要求終了位置
group [i] グルーピングを行うデータ個数
raw_timestamp [o] センサのタイムスタンプ値
Return values:
戻り値 > 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]

センサのパラメータ情報を返す

Todo:
説明を記述

Implements URGInterface.

Definition at line 158 of file urgCtrl.h.

const char * URGCtrl::what ( void   )  [virtual]

エラー状態を示す文字列を返す

Todo:
説明を記述、各 what での説明を統一
Returns:
センサ状態を示す文字列
使用例
    URGCtrl urg;
    if (urg.connect(argc, argv, URG::AutoCapture) < 0) {
      // 接続に失敗した場合、エラーメッセージを表示して終了
      printf("URGCtrl::connect: %s\n", urg.what());
      exit(1);
    }
    ...

Implements URGInterface.

Examples:
autoCapture.cpp, and oneScan.cpp.

Definition at line 55 of file urgCtrl.cpp.

void URGCtrl::setHandstand ( bool  on  ) 

センサの取り付け状態を設定

Todo:
説明を記述
Parameters:
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]

デバイスを指定してセンサ接続を行う

Todo:
説明を記述
Parameters:
autoCapture [i] 接続の際の urg_capture_mode_page を指定
device [i] 接続デバイス名
baudrate [i] 接続ボーレート
Return values:
0 正常終了
戻り値 < 0 エラー

Implements URGInterface.

Examples:
autoCapture.cpp, and oneScan.cpp.

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 
)

ソケットに対して接続

Todo:
説明を記述
Parameters:
autoCapture [i] 接続の際の urg_capture_mode_page を指定
host [i] 接続ホスト
port [i] 接続ポート
Return values:
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] から評価される

Todo:
説明を記述
Parameters:
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 の内容を評価してセンサへの接続を行う

Todo:
説明を記述
Parameters:
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]

センサとの接続を切断する

Todo:
説明を記述

Implements URGInterface.

Definition at line 220 of file urgCtrl.cpp.

Referenced by connect(), and connectSocket().

bool URGCtrl::isConnected ( void   )  [virtual]

センサと接続しているかを返す

Todo:
説明を記述

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  ) 

受信時のタイムアウトを指定

Parameters:
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 の説明を参照のこと

Parameters:
first_index [i] 測定データの要求開始位置
last_index [i] 測定データの要求終了位置
group [i] グルーピングを行うデータ個数
Return values:
戻り値 > 0 取得したデータ配列の添え字の最大値
戻り値 < 0 エラー

Implements URGInterface.

Examples:
autoCapture.cpp, noAdjust.cpp, oneScan.cpp, simuPosUse.cpp, stopToObstacle.cpp, and ticksPosUse.cpp.

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.

Parameters:
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   ) 

センサからデータを取得した回数を返す

Todo:
説明を記述

Reimplemented in mURGCtrl.

Examples:
autoCapture.cpp.

Definition at line 276 of file urgCtrl.cpp.

References URGCapture::getCaptureTimes(), and isConnected().

void URGCtrl::convert ( void   ) 

測定データを展開

変換位置は、capture 時の推定自己位置が用いられる

Examples:
noAdjust.cpp, simuPosUse.cpp, stopToObstacle.cpp, and ticksPosUse.cpp.

Definition at line 284 of file urgCtrl.cpp.

Referenced by convert().

void URGCtrl::convert ( const VXV::Position3D crd_position  ) 

測定データを指定位置に展開

Todo:
説明を記述
Parameters:
crd_position [i] 変換位置

Definition at line 289 of file urgCtrl.cpp.

References TicksPosition::add(), and convert().

void URGCtrl::convert ( const VXV::TicksPositionInterface position  ) 


Member Data Documentation

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


The documentation for this class was generated from the following files:

Generated on Mon Apr 13 22:52:07 2009 by  doxygen 1.5.7.1