eSEAT_core.py
Simple Wiki Based Contents Management System
ソフトウェア関連 >> RTコンポーネント関連 >> eSEAT_v2.5 >> eSEATのファイル構成クラスについて >> eSEAT_core.py

eSEAT/core.py

このファイルには、eSEATの本体のクラスおよび関数が記載されています。また、SeatmlParser.py を execfile関数を使ってロードしています。

SeatLoggerクラス

このクラスは、eSEAT内でエラー出力等を行うためのクラスです。
  • class SeatLogger()
    • __init__(name)
      コンストラクタ
    • setFlag(msg)
      info関数での情報出力を制御するためのフラグの設定
    • info(msg)
      msgを標準出力に出力
    • error(msg)
      msgに”ERROR:”を付加し、標準エラー出力に出力
    • warn(msg)
      msgに”WARN:”を付加し、標準エラー出力に出力

eSEAT_Coreクラス

このクラスは、eSEATの本体です。状態遷移、コマンド実行等の関数が定義されています。アダプタとして、SocketAdaptorとWebAdapterを提供します。
  • class eSEAT_Core()
    • __init__(manager)
      コンストラクタ
    • exit_comp()
      WebAdaptorを終了し、1秒待つ
    • setLogFlag(flg)
      loggerのinfo関数での情報出力を制御するためのフラグの設定
    • createSocketPort(name, host, port)
      TCP Socketの入出力ポートを作成
    • createWebAdaptor(name, port, index, white_list="", dirname="html")
      Webアダプタの入出力ポートを作成。portで設定されたポート番号でHTTPサービスを行う。indexには、デフォルトのドキュメントを設定し、HTMLを配置するディレクトリをdirnameに設定する。
    • initRosNode()
      ROSノードの初期化。ROSのadaptorを生成するときに、内部でコールされる
    • createRosPublisher(name, datatype, size)
      ROSのPublisherを生成する
    • ros_publish(name, val)
      ROSのPublisherからデータ(val)を配信する
    • createRosSubscriber(name, datatype, callback)
      ROSのSubscriverを生成する
    • createRosServer(name, srv_name, srv_type, srv_impl, fname)
      ROSのServiceのサーバーを生成する
    • createRosClient(name, srv_name, srv_type)
      ROSのServiceのクライアントを生成する
    • callRosService(name, *args)
      ROSのServiceのクライアントを介してServiceを呼び出す
    • createAdaptor(compname, tag)
      eSEATのデータ入出力ポートを作成。内部では、craeteSocketPort、createWebAdaptorを呼び出している。
    • send(name,data, code='utf-8')
      データポート、WebAdaptor等へデータを送信する
    • sendto(name,data)
      データポート、WebAdaptor等へデータを送信する
    • get_result(val)
      データポート、WebAdaptor等へ送信するためのデータをセットする。主にscriptタグ内で使用する。
    • get_in_data()
      データポート等で受信したデータを得る。主にscriptタグ内で使用する。
    • get_web_data()
      WebAdaptorで受信したデータを得る。主にscriptタグ内で使用する。
    • onData(name, data)
      データポート、WebAdaptorでデータを受信時に呼ばれるコールバック関数
    • processResult(name, s)
      onDataメンバ関数から呼ばれるコマンド処理のメイン処理関数
    • processExec(name, s)
      onExecutionなどの周期処理関数から呼ばれるコマンド処理関数
    • processActivated(flag=False)
      eSEATがActivateされるときに設定された処理を実行する
    • processDeactivated(sname=None, flag=False)
      eSEATがDeactivateされるときに設定された処理を実行する
    • processTimeout(sname=None, flag=False)
      timeoutの処理が設定された場合に、その処理を実行する
    • resetTimer()
      timeoutのためのタイマーをリセットする
    • setTimeout(sec)
      timeoutのためのタイマーをsec秒に設定する
    • isTimeout()
      timeoutしたかどうかを確認する
    • processJuliusResult(host, s)
      音声認識Juliusのコマンドモードの結果を処理する関数。processResult関数内から呼ばれる。
    • initDataIn(data)
      Adaptorの入出力データを格納する変数の初期化
    • processOnDataIn(name, data)
      データポートからの入力データの処理関数。processResult関数内から呼ばれる。
    • lookupWithDefault(state, name, s, flag=True)
      入力データに対応したコマンドを登録テーブルから呼び出す。
    • lookupCommand(state, name, s)
      入力データに対応したコマンドを登録テーブルから呼び出す。
    • getStates()
      現在の内部状態を取得する
    • setStartState(name)
      eSEAT開始時の内部状態を設定する。
    • countStates()
      eSEATの内部状態の数を返す。
    • inStates(name)
      nameという内部状態が既に存在するかどうかを判定
    • initStartState(name)
      eSEATの開始時の内部状態を初期化する
    • create_state(name)
      nameという内部状態を作成する
    • stateTransfer(newstate)
      eSEATの内部状態を遷移させる。
    • loadSEATML(f)
    • callComet(tag, cmds)
      WebAdaptorからのコールバック関数。現在は、何もしていない。
    • getSubprocessList()
      shell要素で実行されたコマンドの実行中のサブプロセスのリストを得る
    • killSubprocess(pid=None)
      shell要素で実行されたコマンドの実行中のサブプロセスを終了させる
    • finalizeSEAT()
      eSEATの終了処理。SocketPort, WebAdaptorがあれば、通信経路を閉じる

eSEAT_Guiクラス

このクラスは、eSEATのTkを用いたGUI関連の機能を提供するクラスです。
  • class eSEAT_Gui()
    • __init__(manager)
      コンストラクタ
    • hasGUI()
      ロードしたSEATMLファイルでGUIアイテムが含まれているかどうかを判定する
    • mkcallback(name)
      Buttonに対応したコールバック関数の登録を行う
    • mkinputcallback(name)
      input(一行入力用Guiアイテム)にコールバック関数の登録を行う
    • newFrame(name)
      nameという内部状態に対するフレームを作成する。
    • setTitle(name)
      GUIパネルのタイトル名を設定する。
    • addFrame(name, txt, h, w, relief, fg, bg, cspan=1, rspan=1, frame='')
      SEATMLを解析時eSEAT_Nodeクラスによばれ、nameという内部状態にFrameを追加する。(実際には、Frameは作成されない)
    • addLabelframe(name, txt, h, w, labelanchor, relief, fg, bg, cspan=1, rspan=1, frame='')
      SEATMLを解析時eSEAT_Nodeクラスによばれ、nameという内部状態にLabelFrameを追加する。(実際には、LabelFrameは作成されない)
    • addButton(name, txt, fg, bg, w, cspan=1, rspan=1, frame='')
      SEATMLを解析時eSEAT_Nodeクラスによばれ、nameという内部状態にbuttonを追加する。(実際には、buttonは作成されない)
    • addEntry(name, txt, w, val=' ', cspan=1, rspan=1, frame='')
      SEATMLを解析時によばれ、nameという内部状態にentry(一行入力)を追加する。(実際には、entryは作成されない)
    • addText(name, txt, w, h, cspan=1, rspan=1, val="", frame='')
      SEATMLを解析時によばれ、nam**その他の関数eという内部状態にtext(複数行入力)を追加する。(実際には、textは作成されない)
    • addLabel(name, txt, fg, bg, cspan=1, rspan=1, frame='')
      SEATMLを解析時によばれ、nameという内部状態にlabelを追加する。(実際には、labelは作成されない)
    • addCombobox(name, txt, txtlist, val, cspan=1, rspan=1, frame='')
      SEATMLを解析時によばれ、nameという内部状態にcomboboxを追加する。(実際には、comboboxは作成されない)
    • addCheckbutton(name, txt, cspan=1, rspan=1, frame='')
      SEATMLを解析時によばれ、nameという内部状態にcheckbuttonを追加する。(実際には、checkbuttonは作成されない)
    • addScale(name, txt, frm, to, res, ori, cspan=1, rspan=1, frame='')
      SEATMLを解析時によばれ、nameという内部状態にscale(スライダー)を追加する。(実際には、scaleは作成されない)
    • addListbox(name, txt, txtlist, height, cspan=1, rspan=1, frame='')
      SEATMLを解析時によばれ、nameという内部状態にlistboxを追加する。(実際には、listboxは作成されない)
    • addRadiobutton(name, txt, var, val, cspan=1, rspan=1, frame='')
      SEATMLを解析時によばれ、nameという内部状態にradiobuttonを追加する。(実際には、radiobuttonは作成されない)
    • addBreak(name, frame='')
      SEATMLを解析時によばれ、nameという内部状態に改行を追加する。(実際には、改行というGUIアイテムはない)
    • addSpace(name, n, frame='')
      SEATMLを解析時によばれ、nameという内部状態にn個の空白を追加する。(実際には、空白というGUIアイテムはない)
    • createFrameItem(frame, sname, name, h, w, r, fg="#000000", bg="#cccccc", cspan=1, rspan=1)
      frameのGUIアイテムを作成する
    • createLabelFrameItem(frame, sname, name, h, w, anchor, r, fg="#000000", bg="#cccccc", cspan=1, rspan=1)
      labelframeのGUIアイテムを作成する
    • createButtonItem(frame, sname, name, fg="#000000", bg="#cccccc", w=None, cspan=1, rspan=1)
      buttonのGUIアイテムを作成する
    • setButtonConfig(eid, **cfg)
      eidで指定されたButtonの設定を行う
    • createEntryItem(frame, sname, name, eid, w, val='', cspan=1, rspan=1)
      entry(一行入力)のGUIアイテムを作成する
    • bind_commands_to_entry(enty, name, eid)
      entryに対して<RETURN>押下時のイベント処理の関連付けを行う
    • getEntry(eid)
      eidのentry内の文字列を取得する
    • setEntry(eid, txt="")
      eidで指定したentryの内容をtxtに置き換える
    • createTextItem(fname, sname, name, eid, w, h, cspan=1, rspan=1, txt="")
      Text(複数行入力)のGUIアイテムを作成する
    • getText(eid)
      eidで指定されたTextの内容を取得する
    • unsetSelText(eid)
      eidで指定されたTextの内容をすべてクリアする
    • getSelText(eid)
      eidで指定されたTextで選択状態にある行の位置を取得する。
    • nextSelText(eid)
      eidで指定されたTextの選択状態を次の行に移動させる
    • prevSelText(eid)
      eidで指定されたTextの選択状態を前の行に移動させる
    • getSelTextLine(eid)
      eidで指定されたTextで選択状態にある行の内容を取得する。
    • setSelText(eid, n=1)
      eidで指定されたTextでnで指定された行を選択状態にする。
    • getNthLine(eid, n=1)
      eidで指定されたTextで開始行からnで指定された行の内容を取得する。
    • getLastLine(anagerクラスeid, n=1)
      eidで指定されたTextで最下行からnで指定された行の内容を取得する。
    • getCurrentIndex(eid)
      eidで指定されたTextで選択状態にある行の位置を取得する。
    • setCurrentIndex(eid, n=1)
      eidで指定されたTextでn行目を選択状態に設定する。
    • appendText(eid, txt="")
      eidで指定されたTextにtxtの文字列を追加する。
    • insertText(eid, pos, txt="")
      eidで指定されたTextでposで指定された位置にtxtを挿入する
    • clearText(eid)
      eidで指定されたTextの内容をすべて消去する
    • createComboboxItem(frame, sname, name, nameList, val="", cspan=1, rspan=1)
      comboboxのGUIアイテムを作成する
    • getComboboxValue(eid)
      eidで指定されたcomboboxの選択されている値を得る
    • createCheckButtonItem(frame, sname, name, cspan=1, rspan=1)
      checkbuttonのGUIアイテムを作成する
    • getCheckValue(eid)
      eidで指定されたcheckbuttonの現在値を得る(0 or 1)
    • createListboxItem(frame, sname, name, txtlist, height, cspan=1, rspan=1))
      listboxのGUIアイテムを作成する
    • getListboxValue(eid)
      eidで指定されたlistboxの選択されている値を得る
    • createScaleItem(frame, sname, name, frm, to, res, ori, cspan=1, rspan=1))
      scaleのGUIアイテムを作成する
    • getScaleValue(eid)
      eidで指定されたscaleの 現在値を得る
    • setScaleValue(eid,val)
      eidで指定されたscaleの 現在値をvalに設定する
    • createRadiobuttonItem(frame, sname, name, var, val, cspan=1, rspan=1))
      radiobuttonのGUIアイテムを作成する
    • getRadioValue(eid)
      eidで指定されたradiobuttonの 現在値を得る
    • createLabelItem(frame, sname, name, fg="#ffffff", bg="#444444", cspan=1, rspan=1)
      snameの状態のLabelを作成する
    • setLabelConfig(eid, **cfg)
      eidで指定されたLabelの設定を行う
    • getFrameName(itm, name)
      GUI部品を配置すべきFrameの名前を得る。packItemsメソッドの中で呼ばれる
    • packItems(name)
      nameの内部状態のGUIの配置を生成する
    • createGuiPanel(name)
      nameの内部状態に対応するGUIパネルを生成する
    • stateChanged(event=None, *args)
      内部状態遷移時のGUIパネルを変更する
    • showFrame(name)
      nameの内部状態に対応するフレームを表示する
    • hideFrame(name)
      nameの内部状態に対応するフレームを隠す
    • startGuiLoop()
      Tkのイベントループを開始する

eSEAT_Nodeクラス

eSEATのコンポーネントクラス。RTMの機能を使わない場合に使用する。ROSのみでeSEAT_Nodeコマンド実行時に、このクラスのインスタンスが生成される。
  • class eSEAT_Node(eSEAT_Core, eSEAT_Gui)
    • __init__(infoflag=False)
      コンストラクタ
    • exit(flag=False)
      eSEAT_Nodeを終了する。
    • setRate(hz)
      周期実行における周期の設定。ROSの場合にはrospy.Rateを生成する。
    • sleep()
      周期実行のためのSleep。ROSの場合のrospy.Rate.sleep()と同じ
    • setInstanceName(name)
      eSEAT_Nodeのインスタンス名の設定。RTCと互換性のためのメソッド
    • getInstanceName()
      eSEAT_Nodeのインスタンス名の取得。RTCと互換性のためのメソッド
    • onInitialize()
      RTCと互換性のためのメソッド。内部では何もしない
    • onActivated(ec_id)
      RTCと互換性のためのメソッド。processActivateをコールする
    • onDeactivated(ec_id)
      RTCと互換性のためのメソッド。processDeactivatedをコールする
    • onFinalize(ec_id)
      RTCと互換性のためのメソッド。finalizeSEATをコールする
    • onShutdown(ec_id)
      RTCと互換性のためのメソッド。内部では何もしない
    • onExecute(ec_id)
      周期実行を行うメソッド。<onexec>で設定された処理を実行する

Managerクラス

eSEAT_Nodeのインスタンス生成と実行を管理するクラス。RTMの機能を使わない場合に使用する。ROSのみでeSEAT_Nodeコマンド実行時に、このクラスのインスタンスが生成される。
  • class Manager()
    • __init__(mlfile=None)
      コンストラクタ
    • parseArgs(flag=True)
      コマンドライン引数のオプション処理
    • initModule()
      SEATMLのファイルを読み込み、eSEAT_Nodeのインスタンスを生成する
    • start()
      eSEAT_Nodeの周期実行スレッドを開始する
    • exit()
      eSEAT_Nodeの周期実行スレッドを停止し、eSEATを終了させる
    • stop()
      eSEAT_Nodeの周期実行スレッドを停止する
    • mainloop()
      eSEAT_Nodeの周期実行スレッドの実行ループ
    • startLoop(flag=False)
      flagが真であればeSEAT_Nodeの周期実行スレッドを別スレッドで起動させる、そうでない場合はmainloopメソッドをコールする

その他の関数

getGlobals()
モジュールの大域変数を格納した配列を返す。内部的には、globals()を呼び出している。
setGlobals(name, val)
nameという大域変数にvalを割り当てる。
daemonize()
プロセスのデーモン化するための関数
main_node(mlfile=None, daemon=False)
OpenRTM-aistの機能を使わないメイン関数