クラス MapManager::XmlIF

MapManagerのXml読み書きを行う部分を分離した実装クラス [詳細]

MapManager::XmlIFのコラボレーション図

Collaboration graph
[凡例]

すべてのメンバ一覧

Public メソッド

 XmlIF (MapManager *mgr)
 コンストラクタ。
void setIOQueue (Queue_t *xmlq, Queue_t *resultq)
 入出力に用いるqueueを設定する。
void emitDestination (const QPointF &pos) const
 GUIから指定された目的地をXMLとして書き出す
void emitLocation (const QPointF &pos, qreal theta) const
 GUIから指定された現在地XMLとして書き出す
void try_dequeue ()
 入力queueをのぞき,有ればdequeして処理する。 timerから呼ばれる。
void setPotentialRange (double pot_min, double pot_max)
 Pseudo Color表示のための値をセット。
bool processXml (const string &xml, bool ask_overwrite=false)
 XML処理のエントリポイント。ヘッダをパースして下請け関数をdispatch
bool readXmlHeader (istream &is, baseRTC::Header &ihdr)
 XMLのヘッダを読み込む
void invalidateCurpos ()
 現在地を無効化
bool getCurrentPos (QPointF &pos) const
 現在地が有れば返す

Static Public 変数

static const char CURPOS_LAYER_NAME [] = "CurrentPosition"

Private メソッド

MapLayermkDestinationLayer (const baseRTC::Header &hdr, istream &is)
 現在地layerを表す名前
MapLayermkSelfPosLayer (const baseRTC::Header &hdr, istream &is)
 processXmlの下請け関数。現在地レイヤーを生成
MapLayermkPathLayer (const baseRTC::Header &hdr, istream &is)
 processXmlの下請け関数。経路レイヤーを生成
MapLayermkPotentialLayer (const baseRTC::Header &hdr, istream &is)
 processXmlの下請け関数。ポテンシャルレイヤを作成
MapLayermkGridMapLayer (const baseRTC::Header &hdr, istream &is)
 processXmlの下請け関数。確率グリッドレイヤを作成
MapLayerproc_CommandString (const baseRTC::Header &hdr, istream &is)
 processXmlの下請け関数。CommandStringのtypeを見て処理する。
MapLayermkTextLayer (const string &arg)
 proc_CommandStringの下請け関数。text layerを生成
void calc_color_tbl ()
 偽色表示のためのテーブル作成

Private 変数

Queue_txmlq_
 このqueueからxmlを読む
Queue_tresultq_
 このqueueへ結果を出す
MapManagermgr_
 自分を生成したMapManagerへの参照
QVector< QRgb > tbl_
 pseudo color table
qreal pot_min_
 偽色表示の際,これ以下の値は最低値と見なし同色とする
qreal pot_max_
 偽色表示の際,これ以上の値は最高値と見なし同色とする
Localization curpos_
 現在位置
bool have_cur_pos_
 現在位置が設定されたかどうか
time_t last_path_time_

Static Private 変数

static const char NAME [] = "MapViewer"
 XML送信ヘッダのnameの値
static const int N_COLOR_TBL_ENTRY = 1024
 カラーテーブルの大きさ


説明

MapManagerのXml読み書きを行う部分を分離した実装クラス

コンストラクタとデストラクタ

MapManager::XmlIF::XmlIF ( MapManager mgr  ) 

コンストラクタ。

引数:
[in] 自身を生成したMapManagerへの参照 


関数

void MapManager::XmlIF::setIOQueue ( Queue_t xmlq,
Queue_t resultq 
)

入出力に用いるqueueを設定する。

引数:
[in] xmlq このクラスがxmlを読み込むqueue。RTCはこれに書き込む
[in] resultq このクラスが出力を書込むqueue RTCはここから読む

void MapManager::XmlIF::emitDestination ( const QPointF &  pos  )  const

GUIから指定された目的地をXMLとして書き出す

引数:
[in] pos 書き出す目的地情報

void MapManager::XmlIF::emitLocation ( const QPointF &  pos,
qreal  theta 
) const

GUIから指定された現在地XMLとして書き出す

引数:
[in] pos 書き出す目的地情報
[in] theta 方位[rad]

void MapManager::XmlIF::try_dequeue (  ) 

入力queueをのぞき,有ればdequeして処理する。 timerから呼ばれる。

void MapManager::XmlIF::setPotentialRange ( double  pot_min,
double  pot_max 
)

Pseudo Color表示のための値をセット。

引数:
[in] pot_min これ以下のポテンシャルは最低値として同じ色にする
[in] pot_max これ以下のポテンシャルは最高値として同じ色にする

bool MapManager::XmlIF::processXml ( const string &  xml,
bool  ask_overwrite = false 
)

XML処理のエントリポイント。ヘッダをパースして下請け関数をdispatch

引数:
[in] xml 処理するXMLが格納された文字列
[in] ask_overwrite 同名のレイヤが有ったとき確認するかどうか

bool MapManager::XmlIF::readXmlHeader ( istream &  is,
baseRTC::Header ihdr 
)

XMLのヘッダを読み込む

引数:
is 入力ストリーム
ihdr ここにヘッダを読み込む
戻り値:
成功したかどうか

void MapManager::XmlIF::invalidateCurpos (  ) 

現在地を無効化

bool MapManager::XmlIF::getCurrentPos ( QPointF &  pos  )  const

現在地が有れば返す

引数:
[out] pos 現在地があればここに返される
戻り値:
false 現在地は設定されていない。引数posは不変
true 現在地が引数posに返された

MapLayer * MapManager::XmlIF::mkDestinationLayer ( const baseRTC::Header hdr,
istream &  is 
) [private]

現在地layerを表す名前

processXmlの下請け関数。目的地レイヤーを生成

引数:
[in] hdr 受信したヘッダ
[in] is XMLを読むためのストリーム
戻り値:
nonnull 生成されたレイヤへのポインタ
NULL パースエラーなどで生成されなかった場合

MapLayer * MapManager::XmlIF::mkSelfPosLayer ( const baseRTC::Header hdr,
istream &  is 
) [private]

processXmlの下請け関数。現在地レイヤーを生成

引数:
[in] hdr 受信したヘッダ
[in] is XMLを読むためのストリーム
戻り値:
nonnull 生成されたレイヤへのポインタ
NULL パースエラーなどで生成されなかった場合

MapLayer * MapManager::XmlIF::mkPathLayer ( const baseRTC::Header hdr,
istream &  is 
) [private]

processXmlの下請け関数。経路レイヤーを生成

引数:
[in] is XMLを読むためのストリーム
[in] hdr 受信したヘッダ
戻り値:
nonnull 生成されたレイヤへのポインタ
NULL パースエラーなどで生成されなかった場合

MapLayer * MapManager::XmlIF::mkPotentialLayer ( const baseRTC::Header hdr,
istream &  is 
) [private]

processXmlの下請け関数。ポテンシャルレイヤを作成

引数:
[in] hdr 受信したヘッダ
[in] is XMLを読むためのストリーム
戻り値:
nonnull 生成されたレイヤへのポインタ
NULL パースエラーなどで生成されなかった場合

MapLayer * MapManager::XmlIF::mkGridMapLayer ( const baseRTC::Header hdr,
istream &  is 
) [private]

processXmlの下請け関数。確率グリッドレイヤを作成

引数:
[in] hdr 受信したヘッダ
[in] is XMLを読むためのストリーム
戻り値:
nonnull 生成されたレイヤへのポインタ
NULL パースエラーなどで生成されなかった場合

MapLayer * MapManager::XmlIF::proc_CommandString ( const baseRTC::Header hdr,
istream &  is 
) [private]

processXmlの下請け関数。CommandStringのtypeを見て処理する。

引数:
[in] hdr 受信したヘッダ
[in] is XMLを読むためのストリーム
戻り値:
nonnull 生成されたレイヤへのポインタ(もしあったら)
NULL パースエラーなどで生成されなかった場合

MapLayer* MapManager::XmlIF::mkTextLayer ( const string &  arg  )  [private]

proc_CommandStringの下請け関数。text layerを生成

引数:
[in] arg コマンドの引数文字列
戻り値:
nonnull 生成されたレイヤへのポインタ(もしあったら)
NULL パースエラーなどで生成されなかった場合

void MapManager::XmlIF::calc_color_tbl (  )  [private]

偽色表示のためのテーブル作成


変数

const char MapManager::XmlIF::CURPOS_LAYER_NAME = "CurrentPosition" [static]

このqueueからxmlを読む

このqueueへ結果を出す

自分を生成したMapManagerへの参照

const char MapManager::XmlIF::NAME = "MapViewer" [static, private]

XML送信ヘッダのnameの値

const int MapManager::XmlIF::N_COLOR_TBL_ENTRY = 1024 [static, private]

カラーテーブルの大きさ

QVector<QRgb> MapManager::XmlIF::tbl_ [private]

pseudo color table

qreal MapManager::XmlIF::pot_min_ [private]

偽色表示の際,これ以下の値は最低値と見なし同色とする

qreal MapManager::XmlIF::pot_max_ [private]

偽色表示の際,これ以上の値は最高値と見なし同色とする

現在位置

現在位置が設定されたかどうか


このクラスの説明は次のファイルから生成されました:

マップビューワコンポーネントに対してThu Jun 17 20:24:08 2010に生成されました。  doxygen 1.5.5