第 6 章 システム設計
6.2 処理ユニット
図6.2に処理ユニットのソフトウェア構成を示す.処理ユニットは,データベース管理・
機器制御部,態取得・処理部,通信部,LD DB部,Sensor DB部,IR DB部,StateTable,
ユーザインターフェース部から構成される.
処理ユニットでは,センサデータベースが保持する状態情報を,LegacyDeviceデータ ベースが保持する部分状態機械の状態と組み合わせ,部分状態機械ごとの遷移関数に基 づいて状態の遷移を行う.例えば,センサデータベースの状態情報が「PLAY」の場合,
「PLAY」がどの部分状態機械に対するイベントであるかselectorを用いて判定を行い,そ の結果得たplayer/recorder部分状態機械の状態が「STOP」であったら,両者を組み合
わせてplayer/recoder部分状態機械の遷移関数を呼び出し,次の遷移先「PLAY」に遷移
する.
LegacyDeviceデータベースでは,部分状態機械を観測しているセンサのセンサIDを保
持しており,センサIDを指定することで,センサデータベースの状態情報を参照するこ とができる.例えば,部分状態機械にplayer/recorderを持つVTRの場合,LegacyDevice データベースで保持しているセンサIDを利用して,センサデータベースを参照し状態情 報を取得する.IRセンサやカメラセンサなど1つのセンサで複数の部分状態機械の状態 が観測可能な場合,複数の部分状態機械でセンサIDを共有することができる.
6.2.1 manager
システム内に存在するmanagerの役割について説明する.
データベース管理・機器制御部
• controlmanager
状態取得のために必要なフィルタの切替や,ユーザの指示による状態変更などといっ た機器の制御を行う.
• eventmanager
eventmanagerは,本システムで中心となるmanagerであり,他managerに対して,
図 6.2: ソフトウェア構成
• statemanager
イベントに基づく態遷移表の更新やLD DBの参照・更新,部分状態機械の選択,制 御命令の変換など,状態遷移表やデータベースの管理を行う.
通信部
• messagemanager
他規格との通信に関係した処理を行う.他規格からの問い合わせや制御命令などに 応じたイベントの発行をeventmanagerに要求する.
6.2.2 状態取得・処理部
状態取得・処理部では,リモコンを用いた赤外線信号による機器制御,電源コントロー ラによる電源のON/OFF,センサ信号の受信・変換,センサ情報の変換といった処理を
6.2.3 statetable
状態遷移表は,一般的・メーカ別遷移表であるGeneral statetableと機種別遷移表であ るParticular statetable の2種類に分けられる.General statetableは部分状態機械ごと に定義しており,現在の部分状態機械の状態と入力で遷移関数を呼び出し,状態の遷移先 を取得することができる.
Particular statetableはGeneral statetableを元に作成する.General statetableを参照 して,その情報を一時的にParticular statetableとして書き込み,自動遷移表書き換えシー ケンスを実行して依存性を持つ箇所の再定義を行う.
6.2.4 データベース
データベースは,LegacyDeviceのIDやLegacyDeviceが保持する各部分状態機械の状 態,センサIDといった情報を保持しているLegacyDeviceデータベースと,センサIDや 状態情報などセンサに関係した情報を保持しているセンサデータベース及び,赤外線信 号・状態情報の変換のための情報を保持する赤外線データベースの3種類から構成される.
LegacyDeviceデータベース
LegacyDevice自体には,機器の名称やIDといった自己の持つ情報を外部に通知する機
能が備わっていないため,何らかの形でこれらの情報を管理・保持する必要がある.本研 究では,処理ユニット内にLegacyDeviceデータベースを配置し状態管理を行う,
LegacyDeviceデータベースは,機器のID・種類・メーカ名など機器固有の情報と,そ
の機器が保持する部分状態機械及び部分状態機械の状態を取得するためのセンサIDから 構成される.データベースのテーブル情報は図6.3に示すものである.
図 6.3: LegacyDeviceデータベースのテーブル情報
sensorデータベース
し,センサ関連の情報を一元的に管理している.センサデータベースは,sensorID,セン サ名,状態情報,単位から構成されている.センサデータベースでは,一定時間で更新さ れる最新の状態情報を保持している.表にセンサデータベースの構造とデータの一例を 示す.
sensorID sensor名 状態情報 単位
1 温度センサ state temp28 ℃
表 6.1: センサデータベースのテーブル情報例
赤外線データベース
赤外線データベースは,赤外線センサで受信した信号を,状態情報に変換するために利 用する.よって,赤外線データベースは,赤外線センサから得られる情報と,状態情報を 対応させたものになっている.変換後得られた状態情報はsensorデータベースに書き込 まれる.赤外線センサから得られる情報は,赤外線フォーマットと赤外線のデータで構成 されている.赤外線フォーマットは,家電協及びNECフォーマットでのカスタムコード 部にあたり,どのメーカの家電製品かを示す.赤外線信号のデータは,家電協フォーマッ トでのデータ部にあたり,機器操作を行う命令を表している.
command irformat irdata
状態情報 赤外線信号フォーマット 赤外線信号のデータ 表 6.2: 赤外線データベースのテーブル情報
6.2.5 イベントの処理
レガシーデバイスの制御を行った際の,イベント処理の流れを説明する.まず,ユー ザがリモコン操作によりLegacyDeviceの操作を行い,その赤外線信号を処理ユニットの 状態取得・処理部によって捕捉する.赤外線信号は,状態取得・処理部でIR DBを参照 して状態情報に変換を行いセンサDBに書き込まれる.次に,センサDBの状態情報と
LD DBの現在の部分状態機械の状態に基づいて,状態遷移表を参照して次の遷移先を取
得し,LD DBを更新する.カメラなど他のセンサが存在する場合,他のセンサから状態
捉したら,内部遷移イベントを発生させ状態遷移表に基づいて状態遷移を行い,再び,遷 移後の状態が内部遷移条件と合致していないかどうか判定を行う.以上のようにして状態 遷移が行われる.
このイベント処理の流れは,赤外線センサを中心にした状態取得を考えた場合であり,
例外制御や障害などに対応する場合は,他センサによる状態監視を一定時間間隔で行う必 要がある.
図 6.4: イベント処理