(57)【要約】      （修正有）【課題】  ネットワークに接続され、低消費電力化、小型化、低コスト化を実現するべく、備えるべき可変メモリの容量を小さくすることができるコマンド処理装置及びコマンド処理装置の制御方法を提供する。【解決手段】  複数の要素データからなるコマンドデータを、前記要素データを順に受信していくことによって受信するコマンド受信部と、前記コマンドデータの解釈プロセスにおける処理の状態遷移のパターンを記憶する状態遷移パターン記憶部と、前記コマンドデータの解釈プロセスにおいて、前記要素データを１つずつ順番に処理し、前記要素データを１つ処理する度に前記状態遷移パターンに従って前記解釈プロセスにおける処理の状態を遷移させる状態遷移部と、前記状態遷移部により最終的に決まる状態に応じて定まる制御を実行する制御部と、を備える。【選択図】    図１
2005128888.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置から送信される複数の要素データからなるコマンドデータを、前記要素データを順に受信していくことによって受信するコマンド受信部と、
前記コマンドデータの解釈プロセスにおける処理の状態遷移のパターンを記憶する状態遷移パターン記憶部と、
前記コマンドデータの解釈プロセスにおいて、前記要素データを１つずつ順番に処理し、前記要素データを１つ処理する度に前記状態遷移パターンに従って前記解釈プロセスにおける処理の状態を遷移させる状態遷移部と、
前記状態遷移部により最終的に決まる状態に応じて定まる制御を実行する制御部と、
を備えることを特徴とするコマンド処理装置。
【請求項２】
請求項１に記載のコマンド処理装置であって、
前記コマンド受信部が受信する要素データを記憶する要素データ記憶部を備え、
前記要素データ記憶部は、前記コマンドデータを構成する複数の要素データうち一部のみを記憶すること、
を特徴とするコマンド処理装置。
【請求項３】
請求項１又は２に記載のコマンド処理装置であって、
前記状態遷移部が遷移させる状態を、前記コマンドデータに付与される識別情報に対応付けて記憶する状態記憶部を備え、
前記コマンド受信部は、複数の前記要素データ群に分割された前記コマンドデータを、前記要素データ群の夫々について、前記要素データを１つずつ順番に受信することにより受信し、
前記状態遷移部は、前記要素データ群の夫々に付帯する前記識別情報に対応する状態を前記状態記憶部から読み出し、前記読み出した状態を前記状態遷移パターンに従って遷移させ、前記遷移させた状態を前記状態記憶部に記憶すること、
を特徴とするコマンド処理装置。
【請求項４】
請求項１又は２に記載のコマンド処理装置であって、
無線を介した通信を行う無線通信インタフェースを備え、
前記コマンド受信部は、前記無線通信インタフェースを介して前記要素データを受信すること、
を特徴とするコマンド処理装置。
【請求項５】
請求項３に記載のコマンド処理装置であって、
前記コマンド受信部は、ＴＣＰ／ＩＰプロトコルに従い、ＩＰデータグラムとして前記コマンドデータを受信し、
前記識別情報は、前記受信部が前記通信経路を介して受信する前記ＩＰデータグラムのヘッダ部分に指定される識別子であること、
を特徴とするコマンド処理装置。
【請求項６】
請求項１又は２に記載のコマンド処理装置であって、
家電機器と通信可能に接続する通信インタフェースを備え、
前記制御部は、前記状態遷移部により最終的に決定される状態に応じて、前記通信インタフェースを介して前記家電機器の前記動作に関する制御を行うこと、
を特徴とするコマンド処理装置。
【請求項７】
請求項６に記載のコマンド処理装置であって、
前記通信経路を介して前記情報処理装置にデータを送信する送信部を備え、
前記制御部は、前記状態遷移部により最終的に決定される状態に応じて、前記インタフェースを介して前記家電機器から情報を受信し、前記送信部を介して前記家電機器から受信した情報を前記情報処理装置に送信すること、
を特徴とするコマンド処理装置。
【請求項８】
請求項１又は２に記載のコマンド処理装置であって、
センサ機器と接続する通信インタフェースと、
前記通信経路を介して前記情報処理装置にデータを送信する送信部とを備え、
前記制御部は、前記通信インタフェースを介して前記センサの検知結果を受信し、
前記制御部は、前記状態遷移部により最終的に決定される状態に応じて、前記検知結果を前記送信部を介して前記情報処理装置に送信すること、
を特徴とするコマンド処理装置。
【請求項９】
プロセッサと、メモリと、情報処理装置と通信するための通信インタフェースと、被制御装置を制御するための制御部とを備えるコマンド処理装置の制御方法であって、
前記通信インタフェースが、情報処理装置から送信される複数の要素データからなるコマンドデータを、前記要素データを順に受信していくことによって受信し、
前記メモリが、前記コマンドデータの解釈プロセスにおける処理の状態遷移のパターンを記憶し、
前記プロセッサが、前記コマンドデータの解釈プロセスにおいて、前記要素データを１つずつ順番に処理するとともに、前記要素データを１つ処理する度に前記状態遷移パターンに従って前記解釈プロセスにおける処理の状態を遷移させ、
前記制御部が、前記状態遷移パターンによる前記遷移により最終的に決まる状態に応じて定まる制御を実行すること、
を特徴とするコマンド処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コマンド処理装置及びコマンド処理装置の制御方法に関する。
【背景技術】
【０００２】
電子機器間を有線や無線にて相互に接続する方式としては、例えば、Internet Protocol(IP)などの様々な方式が規格化されており、前記方式に準拠したコマンド処理装置を内蔵する電子機器が数多く製品化されている。また、前記コマンド処理装置を、携帯型情報機器、携帯電話、ＡＶ(Audio Visual)家電機器、白物家電機器、各種センサ機器、設備機器、大型計算機、パーソナルコンピュータ等、様々な機器に搭載することが検討されている。このうち、例えば、携帯型の電子機器、小型の家電機器、センサ機器等をネットワークに接続するためのコマンド処理装置は、小型かつ低消費電力であることが求められる。また、白物家電や設備系の機器に実装されるコマンド処理装置については低コストであることが求められる。
【０００３】
ここでネットワーク上での通信においては、パケットとよばれる数バイトから数キロバイトのメッセージがコマンド処理装置間でやり取りされる。そして、コマンド処理装置は、前記パケットの送受信に際し、前記パケットを、例えば、ＲＡＭ（Random Access Memory）等の可変メモリに格納する。このため、コマンド処理装置はパケットを格納しておくために充分な記憶容量を有するメモリを備えていることが必要であり、そのために低消費電力化、小型化、低コスト化が難しいという問題があった。ここで、例えば、特許文献１には、受信した通信データのうちヘッダ部の処理を簡略化することにより備えるべきメモリの容量を小さくする技術が開示されている。
【特許文献１】特開２００３−９９３４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に開示されている技術では、パケットにおけるヘッダ部を記憶しない分、可変メモリ領域を節約できるが、パケットの大部分を構成するペイロード部については依然として可変メモリ領域に格納されるため、コマンド処理装置の低消費電力化、小型化、低コスト化を実現するための方策としては必ずしも充分ではない。  
本発明は、このような事情に鑑みてなされたものであり、備えるべき可変メモリの容量を小さくすることができるコマンド処理装置及びコマンド処理装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成する本発明のうち主たる発明は、コマンド処理装置であって、情報処理装置から送信される複数の要素データからなるコマンドデータを、前記要素データを順に受信していくことによって受信するコマンド受信部と、前記コマンドデータの解釈プロセスにおける処理の状態遷移（ステートの遷移）のパターンを記憶する状態遷移パターン記憶部と、前記コマンドデータの解釈プロセスにおいて、前記要素データを１つずつ順番に処理し、前記要素データを１つ処理する度に前記状態遷移パターンに従って前記解釈プロセスにおける処理の状態を遷移させる状態遷移部と、前記状態遷移部により最終的に決まる状態に応じて定まる制御を実行する制御部と、を備えることとする。
【０００６】
コマンドデータとは、例えば、後述するパケットである。前記要素データとは、例えば、コマンドデータを構成するバイトデータ列の１バイトのデータであり、例えば、後述する１文字が前記要素データに相当する。前記コマンドデータの解釈プロセスにおける状態遷移のパターンとは、例えば、オートマトンを構成する処理の状態（ステート）の集合であって、例えば、プログラムとして記述されるアルゴリズムによって表現される。前記情報処理装置とは、例えば、家電製品を遠隔操作するためのリモコンである。前記コマンド処理装置とは、例えば、家電製品等に組み込まれ、通信によるコマンドデータを受信する装置である。前記制御とは、例えば、前記リモコンから無線や赤外線によって伝送されるコマンドデータに応じて、照明機器等の家電製品のスイッチをオンオフさせる制御のことである。
【０００７】
本発明によれば、コマンド処理装置はコマンドデータを構成する要素データを受信順に１つ処理する度に状態を遷移させる。従って、コマンド処理装置は、コマンドデータを構成する複数の要素データのうちの一部のみを記憶しておく分の記憶容量を有するメモリを備えていればよく、コマンド処理装置の低消費電力化、小型化、及び低コスト化を図ることができる。
【０００８】
また、本発明によれば、コマンド処理装置は、順に要素データを受信していき、受信した要素データを１つずつ順番に処理していく。これにより、例えば、コマンド処理装置は各要素データを受信しつつコマンドデータの解釈処理を進めていくことができる。また、コマンド処理装置はコマンドデータを受信し終わるのを待たずに、前記コマンドデータについての解釈プロセスを開始することができる。従って、コマンド処理装置のコマンドデータを解釈する処理にかかる時間を短縮することができる。
【発明の効果】
【０００９】
本発明によれば、備えるべき可変メモリの容量を小さくすることができるコマンド処理装置及びコマンド処理装置の制御方法を提供することができる。
【発明を実施するための最良の形態】
【００１０】
＝＝＝第１の実施の形態＝＝＝
図１は本発明の第１の実施の形態に係るコマンド処理装置に接続した照明機器を含むシステム構成の一例を示したものである。本システムは、情報処理装置としてのコントロール装置３１０とコマンド処理装置３０１とを含んで構成されている。コントロール装置３１０とコマンド処理装置３０１とは、無線ネットワーク３０９により通信可能に接続されている。
【００１１】
コントロール装置３１０は、コマンド処理装置３０１の制御や監視を行うことにより照明機器３０８を制御するための装置である。コントロール装置３１０は、具体的には、例えば、赤外線や電波等の無線通信によってコマンドデータを送信するリモコン等である。コントロール装置３１０は、ＣＰＵやメモリを備えるパーソナルコンピュータ等のコンピュータとすることもできる。また、例えば、外部の照度の変化によって自動的に照明機器をコントロールするような、専用の制御機器とすることもできる。
【００１２】
コマンド処理装置３０１は、ネットワークモジュール３０２、プロトコル処理プロセッサ３０３、電源回路３０４、アンテナ３０５、及びインタフェース３０６を含んで構成される。コマンド処理装置３０１は、照明機器３０８と通信可能に接続することにより、当該照明機器３０８をネットワーク経由で制御できるようにする装置である。
【００１３】
ネットワークモジュール３０２は、アンテナ３０５と接続されており、無線ネットワーク３０９との間での無線通信を行なう。また、ネットワークモジュール３０２はバッファメモリ（要素データ記憶部）３１１を有し、無線ネットワーク３０９から受信したデータをバッファメモリ３１１に記憶する。本実施の形態において、ネットワークモジュール３０２の備えるバッファメモリ３１１は１バイトの記憶容量とする。コマンド処理装置３０１が無線ネットワーク３０９からパケットを受信するときに、ネットワークモジュール３０２は、データを１バイトずつ受信し、受信した１バイトのデータをバッファメモリ３１１に記憶する。
【００１４】
プロトコル処理プロセッサ３０３は、ネットワークモジュール３０２を制御し、無線ネットワーク３０９に対するパケット（コマンドデータ）の送受信制御を行なう。プロトコル処理プロセッサ３０３は、パケットの受信時には、ネットワークモジュール３０２が受信してバッファメモリ３１１に記憶したデータを１バイトずつ受け取る。プロトコル処理プロセッサ３０３は、内部にプロセッサ３２１、固定メモリ３２２、可変メモリ３２３を備える。固定メモリ３２２はプログラムやデータを記憶する、ＲＯＭやフラッシュメモリ等の不揮発性のメモリである。可変メモリ３２３は、プロセッサ３２１が適宜データを記憶する、ＲＡＭ等のメモリである。プロセッサ３２１は、固定メモリ３２２に記憶されたプログラムを可変メモリ３２３に読み出し、読み出したプログラムを実行することにより、後述するコマンドデータの解釈処理や、照明機器３０８を点灯する制御を行う機能等を実現する。
【００１５】
電源回路３０４は、プロセッサ３０３およびネットワークモジュール３０２などコマンド処理装置３０１上の各部へ電源を供給するものである。  
アンテナ３０５は、ネットワークモジュール３０２が出力する電気信号を電波として放出したり、または電波を受信し電気信号としてネットワークモジュール３０２へ入力したりして、無線ネットワーク３０９に対してデータの送受信を行うものである。  
インタフェース３０６は、プロセッサ３２１の電気信号と照明機器３０８の電気信号を相互に変換するものであり、本実施の形態では、電気信号により照明機器３０８の電源をオンオフ制御するスイッチである。照明機器３０８は照明装置であり、一般的な家電機器である。プロセッサ３２１は、インタフェース３０６を制御することにより、照明機器３０８のスイッチをオンオフすることができる。
【００１６】
なお、本実施の形態において、コマンド処理装置３０１はアンテナ３０５により無線ネットワーク３０９に接続しているが、アンテナ３０５に替えて赤外線発光装置および赤外線受光装置を用いることにより、赤外線受光および赤外線出力の組み合わせによる赤外線無線ネットワークを構成することも可能である。また、コマンド処理装置３０１は、アンテナ３０５に替えてネットワーク用のコネクタを用いることにより、イーサネット（登録商標）や公衆電話回線等の電気的な信号による通信経路に接続するようにすることもできる。また、コマンド処理装置３０１のアンテナ３０５に替えてシリアル通信インタフェース、ＵＳＢインタフェース、赤外線リモコンインタフェース等を用いることにより、コントロール装置３１０と直接接続する形態とすることもできる。
【００１７】
また、本実施の形態において、コマンド処理装置３０１に接続する照明機器３０８は照明装置を例に示しているが、これは照明装置に限るものではなく、照明装置に替えて、エアコン、冷蔵庫といった白物系家電、センサ、ドアやスイッチといった設備系機器、テレビ等のＡＶ系機器等とすることもできる。
【００１８】
また、本実施の形態において、インタフェース３０６は照明機器３０８の電源をオンオフ制御するスイッチとしているが、これに限らず、例えば、シリアル通信インタフェース、ＵＳＢインタフェース、赤外線リモコンインタフェースなどの、照明機器３０８に接続してコマンドを送信することにより照明機器３０８を制御するためのインタフェースとしてもよい。例えば、プロセッサ３２１がインタフェース３０６を介して照明機器３０８を制御するコマンドを送信し、照明機器３０８がそのコマンドを受信して、スイッチのオンオフ等の動作を行うようにできる。
【００１９】
また、例えば、インタフェース３０６を赤外線リモコンインタフェースなどの無線通信用のものにして、コマンド処理装置３０１と照明機器３０８とを物理的に離れた位置に配することができる。さらに、コマンド処理装置３０１は照明機器３０８と着脱可能に取り付けられるようにしてもよい。例えば、ネットワーク経由で制御される考慮がされていない機器にコマンド処理装置３０１を取り付けることにより、その機器をネットワーク経由で制御できるようにすることができる。
【００２０】
また、図１において、コマンド処理装置３０１は照明機器３０８とは分離しているが、照明機器３０８の中に内蔵されるようにしてもよい。
【００２１】
＝＝＝処理説明＝＝＝
図２は本実施の形態における、コマンド処理装置３０１の起動時に行われる処理の流れを示すフローチャートである。このフローチャートで示される処理は、プロセッサ３２１が固定メモリ３２２に格納されているプログラムを可変メモリ３２３に読み出して実行することによって実現されるものである。
【００２２】
ステップ４０１では、ネットワークモジュール３０２にリセット信号を送信し、ネットワークモジュール３０２を初期化する。ステップ４０２では、ネットワークモジュール３０２にパケット受信ありか否かを問い合わせ、パケットが受信されていなければ、ステップ４０２に戻る。パケットが受信されていれば、ステップ４０６に進む。ステップ４０６では、後述する状態遷移パターンにおける現在のステート（以下、実行ステート位置と称する）をステート５０１に変更する。ステップ４０３では、ネットワークモジュール３０２に到着したパケットの１バイトのデータ（１文字）をネットワークモジュール３０２から受け取る。なお、本実施の形態では、１文字は１バイト分のデータであるものとして説明するが、１文字を１６ビット、２４ビットあるいは３２ビット等、任意の長さのデータとしてもよい。ステップ４０４では、受け取った１文字の内容に応じて、後述する図３に示すステートを遷移させる。ステップ４０５では、受け取った１文字がパケットの最後尾の文字であるかどうかを判断する。受け取った１文字がパケットの最後尾の文字であれば、ステップ４０２に戻る。受け取った１文字が最後尾の文字でなければ、ステップ４０３に進み、上記の処理を繰り返す。
【００２３】
図３は図２のステップ４０４において行われる処理の状態の遷移パターンを示す図である。５０１〜５１６は状態遷移パターン中のステートを表している。状態遷移パターンは、上記のプロセッサ３２１が実行するプログラムに含まれるアルゴリズムによって表現される。つまり、状態遷移パターンは、上記プログラムとして固定メモリ３２２（状態遷移パターン記憶部）に記憶されている。上記の状態遷移パターン上における現在のステートの位置を示す情報が、後述する実行ステート位置記憶領域７０３に記憶されている。図２に示したフローチャートのステップ４０４では、プロセッサ３２１が、後述する実行ステート位置記憶領域７０３に記憶されているステートに対応する処理を１つだけ実行し、図３で示す状態遷移パターンに従ってステートが遷移する。上記ステートに対応する処理は、例えば、各ステートに対応づけて固定メモリ３２２に予め記憶しておいたプログラムを、プロセッサ３２１が可変メモリ３２３に読み出して実行することにより実現される。また、各ステートと、受け取る１文字と、遷移先のステートとを対応付けた表を固定メモリ３２２に記憶しておき、プロセッサ３２１が適宜その表を参照するようにしてもよい。もちろん、プロセッサ３２１が実行するプログラムの中で、各ステートと、受け取る文字とに応じて実行する処理やステートを遷移させる先を、条件分岐として組み込むようにしてもよい。
【００２４】
以下に各ステートにおける処理の詳細を説明する。  
図３において「Ａ」の表記で示されるステート５０６、５１０および５１４では、単に現在のステートを次のステートに遷移させるだけの処理を行う。例えば、実行ステート位置がステート５０６である場合、実行ステート位置をステート５０７に変更するだけの処理が行われる。同様に、実行ステート位置がステート５１０である場合、実行ステート位置をステート５１１に変更するだけの処理が行われる。
【００２５】
図３において「Ｂ」の表記で示されるステート５０３、５０４、５０５、５０７、５０８、５１１および５１２では、受け取った文字の内容に応じて、次に遷移させるステートを決定する。例えば、実行ステート位置がステート５０５である場合、受け取った１文字の内容が「０１」であれば、実行ステート位置をステート５０６に変更する処理が行われる。受け取った１文字の内容が「０２」であれば、実行ステート位置をステート５１０に変更する処理が行われる。受け取った１文字の内容が「０３」であれば、実行ステート位置をステート５１４に変更する処理が行われる。受け取った１文字の内容がそれ以外の場合には、実行ステート位置をステート５１６に変更する処理が行われる。  
同様に、実行ステート位置がステート５０３である場合、受け取った１文字の内容が「００」であれば、実行ステート位置をステート５０４に変更する処理が行われる。受け取った１文字の内容がそれ以外の場合には、実行ステート位置をステート５１６に変更する処理が行われる。
【００２６】
図３において「Ｃ」の表記で示されるステート５０１および５０２では、受け取った１文字を可変メモリ３２３の所定のメモリエリアに保存し、次のステートに遷移させる処理を行う。受け取った１文字をメモリエリアのどの部分に保持するかはステートによって異なる。例えば、ステート５０１において、受け取った１文字は、後述する送信元アドレス記憶領域の第１バイトである領域７０１に、ステート５０２においては、後述する送信元アドレス記憶領域の第２バイトである領域７０２に、それぞれ格納される。例えば、実行ステート位置がステート５０１である場合、受け取った１文字を送信元アドレス記憶領域の第１バイトである領域７０１に格納し、実行ステート位置をステート５０２に変更する。同様に、実行ステート位置がステート５０２である場合、受け取った１文字を送信元アドレス記憶領域の第２バイトである領域７０２に格納し、実行ステート位置をステート５０３に変更する。
【００２７】
図３において「Ｄ」の表記で示されるステート５１６はステートの遷移先のない状態であり、何も処理を行わない。実行ステート位置がステート５１６になると、コマンド処理装置３０１はパケットの残りの文字を読み飛ばし、何も処理しないようになる。これにより、コマンド処理装置３０１が予期しないデータを含む等のエラーパケットを受信した場合に、誤動作などの不具合を防ぐことができる。
【００２８】
図３において、ステート５０９、５１３、５１５は、状態遷移の結果、最終的に決まるステートである。ステート５０９、５１３、５１５の枠内に、これらのステートにおいて実行される制御を示している。ステート５０９では、インタフェース３０６を通して照明機器３０８を点灯させ、応答を生成し、ネットワークモジュール３０２に送信することにより、送信元であるコントロール装置３１０に応答を返す。ステート５１３では、インタフェース３０６を通して照明機器３０８を消灯させ、応答を生成し、ネットワークモジュール３０２に送信することにより、送信元であるコントロール装置３１０に応答を返す。ステート５１５では、応答を生成し、ネットワークモジュール３０２に送信することにより、送信元であるコントロール装置３１０に応答を返す。
【００２９】
＝＝＝パケットの構成について＝＝＝
図４に、図３に示した状態遷移パターンに従うことにより、コマンド処理装置３０１が行うべき制御を決定可能なパケットの構成と具体例を示す。パケット６０１は、照明機器３０８を点灯させるためのパケットである。パケット６０２は、照明機器３０８を消灯させるためのパケットである。パケット６０３は、コマンド処理装置３０１が接続する機器が照明装置であるか否かを問い合わせるパケットである。
【００３０】
送信元アドレス格納領域６１０にはパケットの送信元のアドレスが格納されている。本実施の形態において、コントロール装置３１０を表すアドレスは「０００１」とし、このアドレスが送信元として送信元アドレス格納領域６１０に格納されている。送信先アドレス格納領域６１１にはパケットの送信先のアドレスが格納されている。本実施の形態において、コマンド処理装置３０１を表すアドレスは「０００２」とし、このアドレスが送信先として送信先アドレス格納領域６１１に格納されている。機器コード格納領域６１２にはこのパケットの送信先となる機器の種別を示す機器コードが格納されている。本実施の形態において、照明機器３０８が照明装置であることを示す機器コードは「０１」としている。なお、機器が照明装置であるか否かを問い合わせるパケット６０３は、機器コード格納領域６１２を省略することができる。コマンド格納領域６１３には処理すべき制御を示す値が格納されている。本実施の形態において、照明の点灯は「０１」、消灯は「０２」としている。
【００３１】
例えば、コマンド処理装置３０１がパケット６０２を受け取った場合、図２のフローチャートにおけるステップ４０３、４０４、４０５を１度繰り返す毎に、図３に示す実行ステート位置は、５０１、５０２、５０３、５０４、５０５、５１０、５１１、５１２、５１３と順に遷移する。これにより、ステート５１３に応じて定まる制御、すなわち、照明を消灯する制御が実行される。  
例えば、送信先のアドレスが格納されている送信先アドレス格納領域６１１に対して、送信先アドレスがコマンド処理装置３０１を表すネットワークアドレスである「０００２」ではなかった場合、例えば、「０１０３」が格納されているようなパケットをコマンド処理装置３０１が受け取った場合、図２のフローチャートにおけるステップ４０３、４０４、４０５を１度繰り返す毎に、図３に示す実行ステート位置は、５０１、５０２、５０３、５１６、５１６、５１６、５１６、５１６と遷移する。つまり、コマンド処理装置３０１がこのパケットを受け取っても、何ら照明を操作するような制御は行われない。  
このように、図２、図３に示す方式の組み合わせにより、コマンド処理装置３０１は図４に示すパケットに格納されたコマンドを正しく解釈できる。
【００３２】
なお、コマンド処理装置３０１は、接続している照明機器３０８の機器コードを予め固定メモリ３２２や可変メモリ３２３に記憶しておくものとする。コマンド処理装置３０１は、ステート５１５における「応答生成」処理では、この予め記憶している機器コードをコントロール装置３１０に送信する。ただし、コマンド処理装置３０１は、照明機器３０８とインタフェース３０６を介して通信可能に接続し、機器コードを照明機器３０８から取得するようにしてもよい。この場合、コマンド処理装置３０１は、例えば、照明機器３０８に機器コードを問い合わせるコマンドを送信し、その応答を受信することによって照明機器３０８の機器コードを取得し、取得した機器コードを可変メモリ３２３に記憶しておくようにできる。
【００３３】
＝＝＝データ構造について＝＝＝
図５は本実施の形態における図２、図３に示す処理において、可変メモリ３２３に格納されるデータ構造について示した図である。
【００３４】
送信元アドレス記憶領域は、２バイトの大きさがあり、パケットのデータ送信アドレス格納領域６１０に格納されているデータを格納するために使われる領域であり、先頭から１バイト目である領域７０１と先頭から２バイト目である領域７０２からなる。領域７０１は、図２におけるステップ４０３にてネットワークモジュール３０２に到着したパケットから受け取った１文字が格納される領域であり、また、領域７０２は、ネットワークモジュール３０２に到着したパケットから受け取った１文字が格納される領域である。
【００３５】
実行ステート位置記憶領域７０３は、１バイトの大きさがあり、図３に示す処理を実行する際の実行ステート位置情報、すなわち、状態遷移パターン上における現在のステートの位置を示す情報を格納するための領域である。図２のフローチャートにおけるステップ４０３、４０４、４０５の実行を繰り返す度に、実行ステート位置記憶領域７０３は参照および変更がなされる。本実施の形態においては遷移パターン中のステートの数が２５６個以下であるために、それぞれを独立したコードで表現するのに充分な大きさとして、１バイトのサイズとしている。実行ステート位置記憶領域７０３のサイズはこれに限るものではなく、２バイト、３バイト、４バイト、あるいは８バイトなど、任意の大きさの領域とすることができる。また、ステートの位置情報として、各ステップで実行されるプログラムが格納されているメモリのアドレスを示すポインタなどを用いることもできる。ステートの位置情報としてプログラムが格納されているメモリのアドレスを用いることにより、プロセッサ３２１は容易かつ迅速にステートに応じた処理を実行することができる。
【００３６】
以上に説明したように、コマンド処理装置３０１は、コマンドデータを構成する要素データを受信順に１つ処理する度に状態を遷移させる。すなわち、ネットワークモジュール３０２が１文字を受信する度に、プロセッサ３２１が１文字を受け取り、処理することができる。従って、コマンド処理装置３０１は、コマンドデータを構成する複数の文字（要素データ）のうちの一部のみを記憶しておく分の記憶容量を有するメモリを備えていればよく、例えば、ネットワークモジュール３０２が受信するデータを一時的に記憶するバッファメモリ３１１は１文字を記憶できるだけあればよい。よって、コマンド処理装置３０１の低消費電力化、小型化、及び低コスト化を図ることができる。また、コマンド処理装置３０１は、順に文字（要素データ）を受信していき、受信した文字を１文字ずつ順に処理していく。これにより、例えば、コマンド処理装置３０１は、各文字を受信しつつコマンドデータの解釈処理を進めていくことができる。また、コマンド処理装置３０１はコマンドデータを受信し終わるのを待たずに、前記コマンドデータについての解釈プロセスを開始することができる。従って、コマンド処理装置のコマンドデータを解釈する処理にかかる時間を短縮することができる。
【００３７】
一般的に、コマンド処理装置３０１でパケットを受信する処理においては、受信したパケットをいったん可変メモリ３２３にコピーし、その後、可変メモリ３２３上に記憶されたパケットに対して処理を行う。この方法では、例えば、図４におけるパケット６０１、６０２、６０３におけるパケットを処理するためには、８バイトのメモリが必要である。しかし、図２、図３に示した本実施の形態によれば、パケットの全長を保持するだけの可変メモリ３２３の記憶領域を必要とせず、送信元アドレス記憶領域の２バイト（７０１及び７０２）と実行ステート位置記憶領域の１バイト（７０３）の合計３バイトだけでよい。よって、コマンド処理装置３０１が備えるべき可変メモリ３２３の容量を小さくすることができる。
【００３８】
また、コマンド処理装置３０１の通信においては、一般的に、受信すべきパケットのサイズは、予めわからないことが多い。従って、コマンド処理装置３０１は、受信したパケットのサイズが、受信可能な最大サイズよりも大きい不正なパケットである場合も考慮しなければならない。コマンド処理装置３０１がパケットを受信した際に可変メモリ３２３にパケットの全長をコピーするようにすると、例えば、パケットのメモリとして８バイトの領域しか確保していないときに、９バイト以上の大きさのパケットを受け取ると、パケットを格納するための正しい領域ではない９バイト目のアドレスにパケットのデータが書き込まれるという、いわゆるバッファオーバフローが生じる。これにより、不正なパケットを受け取ったコマンド処理装置が誤動作することが起こりえる。これは現在セキュリティホールとして、既存のネットワーク機器に多く見られる問題である。この問題に対し、ネットワークモジュール３０２によってやり取りできる最大のパケットサイズが充分に格納できるだけのメモリを可変メモリ３２３の領域に確保し、その領域に対してパケットを全て転送する方式が多く用いられ、その結果、大量の可変メモリが必要となっている。
【００３９】
しかし、本実施の形態のコマンド処理装置３０１では、パケット全体を可変メモリ３２３にコピーしない。また、受信したデータをメモリに対して書き込む際に、領域の先頭から相対的なアドレスに対してデータを書き込むようなことをせず、送信元アドレス記憶領域７０１及び７０２等の予め設定されたアドレスにデータを書き込む。そのため、このようなバッファオーバフローの問題は一切起こらない。
【００４０】
さらに、一般的な方式では、パケットの全体の受信を行った後にパケットの解釈を開始していたのに対し、本方式では、パケットの先頭データを受け取るとすぐにパケットの解釈を開始する。そのため、パケットを受信してから、コマンド処理装置３０１内において照明機器３０８に対する制御が動作するまでの時間を短縮することができる。特に、小型のプロセッサを用いた場合は単位時間あたりに処理できる命令の数が大型のプロセッサに比べて小さく、そのため、一般的な方式を小型のプロセッサで行った場合、パケット全体を受信している間はパケットの解釈を行わないので、応答時間がかかりすぎることがある。しかし、本発明による方式を用いることにより、パケットを受信しつつ、そのパケットの解釈処理も行われていくので、プロセッサ３２１を効率的に動作させることが可能となり、小型のプロセッサにおいても充分に迅速な応答時間を得ることができるようになる。
【００４１】
＝＝＝第２の実施の形態＝＝＝
次に、本発明の第２の実施の形態として、第１の実施の形態よりもより複雑なプロトコル、すなわちより複雑なパケット形式を処理することができる本発明のコマンド処理装置３０１を説明する。本実施の形態においては、コマンド処理装置３０１の構成は第１の実施の形態の図１で示した構成と同様であるが、固定メモリ３２２に格納されているプログラムが異なっている。
【００４２】
ＴＣＰ／ＩＰ（Transmission Control Protocol/ Internet Protocol）などの一般のプロトコルでは複数のプロトコルレイヤーから構成されており、より下位のプロトコルのパケット中のペイロード部分に、より上位のプロトコルで規定されるパケットを格納することが一般的に行われている。
【００４３】
＝＝＝パケットの構成について＝＝＝
本実施の形態におけるコマンド処理装置３０１が行うべき制御を決定可能なパケットの構成を図６に示す。このパケットは図４に示した各種パケット、すなわち、照明を点灯させるためのパケット６０１、照明を消灯させるためのパケット６０２、及び機器が照明装置であるかどうかを問い合わせるパケット６０３を転送するためのパケットである。
【００４４】
送信元ハードウエアアドレス格納領域８０１には送信元ハードウエアドレスが格納されている。本実施の形態において、送信元ハードウエアアドレスは「０１０１」としている。送信先ハードウエアアドレス格納領域８０２には送信先ハードウエアアドレスが格納されている。本実施の形態において、コマンド処理装置３０１を表すハードウエアアドレスは「０１０２」としており、このアドレスが送信先ハードウエアアドレス８０２に格納されている。
【００４５】
上位レイヤーフォーマットＩＤ８０３は上位レイヤーのフォーマットＩＤが格納されている。上位レイヤーのフォーマットＩＤとは、ペイロード部分に格納される上位レイヤーのパケットがどのようなプロトコルによるものかを識別するための識別子である。本実施の形態において、上位レイヤーとは図４に示した各種パケットを規定するプロトコルである。このプロトコルのＩＤ（識別子）として、「０１」を割り当てている。
【００４６】
メッセージＩＤ格納領域８０４はメッセージＩＤを格納する領域である。メッセージＩＤとは、上位レイヤーのパケットを識別するための識別子である。一般に、より下位のプロトコルでは上位のパケットを分割して送信することを許しており、本実施の形態においても、図４に示した各種パケットのデータ列を複数のパケットに格納して送信することを許している。複数のパケットに分割した際に、もとのパケットに組み立てることができるように、もともと１つのパケットであったデータに対しては同じ値を、もともと別のパケットであったデータに対しては異なる値を識別子として用いる方法が広く用いられている。メッセージＩＤはこの識別子を表す値である。
【００４７】
オフセット格納領域８０５にはオフセット値が格納されている。オフセット値とは、パケットを複数に分割した際に、分割したパケットが元の分割する前のパケットの先頭から何バイト目に位置するかを示す値（オフセット量）である。  
ペイロード長格納領域８０６はペイロード領域８０７のサイズを表す値が格納される。ペイロード領域８０７は上位レイヤーのパケットを格納する領域である。本実施の形態においては図４に示した各種パケットのデータ列がそのまま、あるいは分割されてその一部が格納される。
【００４８】
図７は、本実施の形態におけるパケット構成において有効なメッセージの一例を示したものである。単一パケットによる照明点灯メッセージ９０１は照明点灯メッセージ６０１をペイロード領域８０７にもつパケットである。ペイロード長格納領域８０６に格納されているペイロード長は照明点灯メッセージ６０１のサイズである「８」、すなわち「００−０８」である。オフセット格納領域８０５に格納されるオフセット量は、このパケットのペイロードに照明点灯メッセージ６０１の先頭から格納されていることから「０」、すなわち「００−００」である。またメッセージＩＤ格納領域８０４に設定されている「０１−２３」はパケット９０１のメッセージＩＤである。このメッセージＩＤにより、コマンド処理装置３０１は、パケット９０１と、パケット９０２及び９０３とが異なるパケットであるということを判別することができる。
【００４９】
複数パケットによる照明点灯メッセージ９０２及び９０３はそれぞれ、図４に示した照明点灯メッセージ６０１が２分割され、先頭４バイトのデータがペイロード領域８０７に格納されているパケット、及び先頭４バイトのデータを除いた残り４バイトのデータがペイロード領域８０７に格納されているパケットである。
【００５０】
複数パケットによる照明点灯メッセージ９０２において、ペイロード長格納領域８０６に格納されているペイロード長は、そのサイズである「４」、すなわち「００−０４」である。オフセット格納領域８０５に格納されるオフセット量は、このパケットのペイロードに照明点灯メッセージ６０１の先頭から格納されていることから「０」、すなわち「００−００」である。またメッセージＩＤ格納領域には「３４−５６」が格納されている。これは後続するパケット９０３に格納されている値と同一であり、この値によりこの２つのパケットがもともと１つのパケットであることを示している。複数パケットによる照明点灯メッセージ９０３において、ペイロード長格納領域８０６に格納されているペイロード長はそのサイズである「４」、すなわち「００−０４」である。オフセット格納領域８０５に格納されるオフセット量は、このパケットのペイロードに照明点灯メッセージ６０１の４バイト目から格納されていることから「４」、すなわち「００−０４」である。
【００５１】
本実施の形態におけるコマンド処理装置３０１は、このような複雑なパケットのデータ構成を処理することも可能である。固定メモリ３２２に格納されているプログラムの処理の流れは図２で示したフローチャートと同様である。ただし、ステップ４０６では、実行ステート位置情報をステート１００１に変更する。ステップ４０４では、以下の図８に示す処理を進める。
【００５２】
図８は本実施の形態における、図２のステップ４０４における処理の状態遷移パターンを示す図である。  
図８において「Ａ」の表記で示されるステート１００５では、単に現在のステートを次のステートに遷移させるだけの処理を行う。  
図８において「Ｂ」の表記で示されるステート１００３、１００４、１００６、１００９及び１０１０では、受け取った文字の内容によって次に遷移させるステートを決定する。すなわち、例えば、実行ステート位置がステート１００３である場合、受け取った１文字の内容が「０１」であれば、実行ステート位置をステート１００４に変更し、それ以外の内容であれば、実行ステート位置をステート１０９９に変更する処理が行われる。  
図８において「Ｃ」の表記で示されるステート１００１、１００２、１１０３、１０１１及び１０１２では、受け取った文字を可変メモリ３２３の所定のメモリエリアに保存し、次のステートに遷移させる処理を行う。受け取った文字をメモリエリアのどの部分に保持するかはステートによって異なる。例えば、ステート１００１では、後述する、送信元ハードウエアアドレス記憶領域の第１バイトである領域１１０１に受け取った文字を格納する。  
図８において「Ｄ」の表記で示されるステート１０９９では、なにも処理を行わない。図８において「Ｅ」の表記で示されるステート１００８では、図１０に示すフローチャートの処理を行う。図８において「Ｆ」の表記で示されるステート１０１３では、図１１に示すフローチャートの処理を行う。
【００５３】
＝＝＝データ構造について＝＝＝
図９は本実施の形態において、可変メモリ３２３に格納されるデータ構造について示した図である。
【００５４】
実行ステート位置記憶領域１１００は１バイトの大きさがあり、図８に示す状態遷移パターン上における現在のステートの位置を示す情報を格納するための領域である。送信元ハードウエアアドレス記憶領域１１０１、１１０２は２バイトの大きさがあり、パケットにおける送信元ハードウエアアドレスを記憶する。この値は、応答処理などにおいて一般的に必要となる。メッセージＩＤ記憶領域１１０３、１１０４は２バイトの大きさがあり、パケットのメッセージＩＤを記憶する。ペイロード長記憶領域１１０５、１１０６は２バイトの大きさがあり、パケットにおけるペイロード長を記憶するとともに、パケットを処理するごとに減算し、処理すべき残りサイズとしても用いる。
【００５５】
メッセージＩＤテーブル１１２０は、メッセージＩＤ１１０７、オフセット１１０８、送信元アドレス１１０９、実行ステート位置１１１０の項目を備えるレコードからなるテーブルである。メッセージＩＤテーブル１１２０は、コマンド処理装置３０１が現在パケットの受信途上、すなわち、分割されたパケットに対して先頭部分のパケットはすでに受信したが、後続するパケットをまだ受信していない際に、すでに受信したパケットに関する情報を格納しているテーブルである。メッセージＩＤ１１０７、オフセット１１０８はパケットのメッセージＩＤ格納領域８０４、オフセット格納領域８０５にそれぞれ対応しており、送信元アドレス１１０９、実行ステート位置１１１０は送信元アドレス記憶領域７０１、７０２、実行ステート位置記憶領域７０３にそれぞれ対応している。
【００５６】
図１０はステート１００８において行われる処理の流れを示すフローチャートである。この処理もまた、固定メモリ３２２に格納されているプログラムをプロセッサ３２１が実行することによって実現される。
【００５７】
ステップ１２００では、受け取った１文字を記憶領域１１０４に格納する。ステップ１２０１では、メッセージＩＤ記憶領域１１０３、１１０４に格納されているメッセージＩＤを読み出し、この値をメッセージＩＤテーブル１１２０から探す。ステップ１２０２では、メッセージＩＤが見つかった場合はステップ１２０７に進み、見つからなかった場合はステップ１２０３に進む。
【００５８】
ステップ１２０３では、メッセージＩＤテーブル１１２０の空きのレコードを探す。メッセージＩＤテーブル１１２０において、空きのレコードは実行ステート位置１１１０に無効値が設定される。本実施の形態において、空きを示す無効値は「−１」としている。また、メッセージＩＤテーブル１１２０で空きのレコードを示すために、レコードに使用中フラグの項目を設け、使用中フラグ欄に設定された値によって当該レコードが空きであるかどうかを判断するようにしてもよい。
【００５９】
ステップ１２０４では、空きのレコードが見つかった場合はステップ１２０５に進む。見つからなかった場合は、ステップ１２０６に進む。  
ステップ１２０５では、見つけた空きのレコードを初期化する。すなわち、メッセージＩＤ領域１１０７には、メッセージＩＤ記憶領域１１０３、１１０４に格納されているメッセージＩＤを設定し、オフセットの領域１１０８に「０」を設定する。また、実行ステート位置の領域１１１０にステート５０１を表す値を設定する。  
ステップ１２０６では、実行ステート位置をステート１０９９に変更する。すなわち、実行ステート記憶領域１１００にステート１０９９を表す値を設定する。ステップ１２０７では、実行ステート位置をステート１００９に変更する。すなわち、実行ステート記憶領域１１００にステート１００９を表す値を設定する。
【００６０】
図１１はステート１０１３において行われる処理の流れを示すフローチャートである。この処理もまた、固定メモリ３２２に格納されているプログラムをプロセッサ３２１が実行することによって実現される。  
ステップ１３０１では、ペイロード記憶領域１１０５、１１０６に格納されている値を読み出す。ここで読み出した値を「ａ」とする。ステップ１３０２では、「ａ」と「０」を比較し、等しい場合は、ステップ１３０５に進む。等しくない場合は、ステップ１３０３に進む。
【００６１】
ステップ１３０３では、ペイロード記憶領域１１０５、１１０６に「ａ−１」を計算した結果を格納する。すなわち、ペイロード記憶領域１１０５、１１０６に格納されている値を「１」減算する。ステップ１３０４では、図３に示す状態遷移パターンに従い、ステートを１つ遷移する。ただし、本実施の形態では、図３の状態遷移パターンにおいて、送信元アドレス記憶領域７０１、７０２及び実行ステート位置記憶領域７０３を参照または変更する処理は、それぞれメッセージＩＤテーブル１１２０の該当レコードの送信元アドレス１１０９および実行ステート位置１１１０を参照または変更する処理に置き換える。また、ステート５０９、５１３、５１５に到達した場合は、メッセージＩＤテーブル１１２０の該当レコードを空き（未使用）とする。すなわち、実行ステート位置記憶領域７０３に「−１」を格納する。  
ステップ１３０５では、実行ステート位置をステート１０９９に変更する。すなわち、実行ステート記憶領域１１００にステート１０９９を表す値を設定する。
【００６２】
コマンド処理装置３０１がパケット９０１を受け取る場合、図２のフローチャートにおけるステップ４０３、４０４、４０５を１度繰り返す毎に、図８に示す実行ステート位置は、１００１、１００２、１００３、１００４、１００５、１００６、１００７、１００８と遷移する。図１０のフローチャートにおいてステップ１２００、１２０１、１２０２、１２０３、１２０４、１２０５、１２０７と進み、さらにステートは、１００９、１０１０、１０１１、１０１２、１０１３と遷移する。この時点で、ペイロード記憶領域１１０５、１１０６に格納されている値は「８」であり、図１１の、ステップ１３０１、１３０２、１３０３、１３０４が８回繰り返さる。その結果パケット６０１を受信した時と同様の処理がなされ、照明の点灯制御が実行される。
【００６３】
同様に、コマンド処理装置３０１がパケット９０２を受け取る場合、図２のフローチャートにおけるステップ４０３、４０４、４０５を１度繰り返す毎に、図８に示す実行ステート位置は１００１、１００２、１００３、１００４、１００５、１００６、１００７、１００８と順に遷移する。図１０のフローチャートにおいてステップ１２００、１２０１、１２０２、１２０３、１２０４、１２０５、１２０７と進み、さらに実行ステート位置は、１００９、１０１０、１０１１、１０１２、１０１３と順に遷移する。この時点で、ペイロード記憶領域１１０５、１１０６に格納されている値は「４」であり、図１１の、ステップ１３０１、１３０２、１３０３、１３０４が４回繰り返される。
【００６４】
その後、コマンド処理装置３０１がパケット９０３を受け取ると、図２のフローチャートにおけるステップ４０３、４０４、４０５を１度繰り返す毎に、図８に示す実行ステート位置は１００１、１００２、１００３、１００４、１００５、１００６、１００７、１００８と遷移する。図１０のフローチャートにおいてステップ１２００、１２０１、１２０２、１２０７と進み、さらに実行ステート位置は、１００９、１０１０、１０１１、１０１２、１０１３と遷移する。この時点で、ペイロード記憶領域１１０５、１１０６に格納されている値は「４」であり、図１１の、ステップ１３０１、１３０２、１３０３、１３０４が４回繰り返される。その結果、パケット９０２とパケット９０３をあわせて、結果パケット６０１を受信した時と同様の処理がなされ、照明の点灯制御が行われる。
【００６５】
なお、本実施の形態のコマンド処理装置３０１は、例えば、フラグメント化されたパケットの処理中に別のパケットを受信した場合（例えば、パケット９０２、９０１、９０３の順番にパケットを受信した場合）でも正しく動作する。また、本実施の形態のコマンド処理装置３０１は、このように同時に多数の、また全体のサイズが不明なパケットを処理しているにも関わらず、全パケットサイズに比べてわずかな記憶容量の可変メモリ３２３の記憶領域しか必要としていない。
【００６６】
本実施の形態のコマンド処理装置３０１によれば、例えば、ＴＣＰ／ＩＰ等のプロトコルに従ったパケット通信によりフラグメント化されたコマンドデータを受信するような場合において、コマンドデータに付与される識別情報であるメッセージＩＤに対応付けて状態遷移パターン中の状態を記憶しておく。そのため、複数の要素データ群に分割されたコマンドデータについても状態を順次遷移させることが可能である。従って、コマンド処理装置３０１は、コマンドデータを構成する全ての要素データを受信するまで待つことなく、複数に分割されたコマンドデータの解釈を進めることができる。また、コマンド処理装置３０１が、複数の送信元からのコマンドデータが混在するネットワークを介して分割されたコマンドデータを受信する場合には、複数のコマンドデータの断片が混在して伝達されることも起こりうるが、本実施の形態のコマンド処理装置３０１は、このような場合においても、コマンドデータの全体を受信するまで待つことなく、コマンドデータの解釈を進めることができる。
【００６７】
また、一般にコマンド処理装置３０１がフラグメントパケットを受信した場合には、まずフラグメント化されたパケットを全て受信し、それをメモリ上で連結した後にパケットの解釈が行なわれる。ところが、フラグメントされたパケットの最初のフラグメントされたパケットを受信した際には、分割される前のパケットサイズがわからないため、非常に大きなメモリバッファを用意して処理する必要がある。本実施の形態のコマンド処理装置３０１は、フラグメントされた最初のパケットの先頭データを受け取るとすぐにパケットの解釈を開始する。このため、パケットを受信してから実際の機器が動作するまでの時間を大幅に短縮され、その結果、小型のプロセッサにおいても充分な性能を得ることができる。また、フラグメントされる前の元のパケットサイズに関わらず、わずかな記憶容量の可変メモリ３２３の記憶領域だけでパケットの解釈処理を行うことができる。
【００６８】
以上説明したように、本実施の形態のコマンド処理装置３０１によれば、通信の受信処理において必要な可変メモリの容量を小さくできる。また低処理能力のプロセッサでも高速にパケットの解釈処理が可能となる。従って、小型、低消費電力、低コストなコマンド処理装置３０１を実現することができる。
【００６９】
本実施の形態のコマンド処理装置３０１によれば、特にプロセッサにおける通信プロトコル処理において、パケットを可変メモリ３２３にほとんど転送することなく、逐次的にプロセッサが処理することができる。従って、コマンド処理装置３０１の備えるべき可変メモリ３２３の記憶容量を小さくすることができる。これにより、コマンド処理装置３０１を小型化し、かつ低消費電力での動作させることが可能となる。また、パケットを順次部分的に解釈していくことで応答時間が短縮される。このため、小型のプロセッサを利用した場合でも高速な応答を実現することが可能となる。また、コマンド処理装置３０１を小型化することが可能となる。
【００７０】
以上のとおり、本実施の形態のコマンド処理装置３０１によれば、小型・低消費電力・低コストなコマンド処理装置３０１を実現することができる。
【００７１】
＝＝＝変形例＝＝＝
上述した実施の形態は、あくまでも本発明の実施の形態の一例であり、本件発明の範囲内で任意に変形可能である。以下、その変形例についてその他の例を示す。
【００７２】
上述した実施の形態では、コマンド処理装置３０１の一例として照明機器を示したが、例えばヘッドセットや携帯型ゲーム機等、その他の携帯型電子機器にも適用可能であることは勿論である。また、小型の機器に関わらず、据え置き型の電子機器であっても良い。
【００７３】
上述した実施の形態では、独自のパケットフォーマットについて例示しているが、ＴＣＰ／ＩＰ（Transmission Control Protocol/ Internet Protocol）や、ＨＴＴＰ(HyperText Transfer Protocol)等に対する、例えば、アドレス処理、フラグメント処理、上位プロトコル処理等の解析処理においても、まったく同様に本発明を適用することができる。本発明をＴＣＰ／ＩＰプロトコルのＩＰパケットの解析に応用することにより、特殊なプロトコルを用いることなく、一般に広く使われているＴＣＰ／ＩＰプロトコルを用いてコマンド処理装置３０１に対するコマンドデータを伝達することができる。
【００７４】
また、コマンド処理装置３０１には、例えば、人感センサ、温度センサ、湿度センサ、ガス漏れセンサなどのセンサを接続する接続部を設けるようにしてもよい。この場合、コマンド処理装置３０１はセンサの検知結果を受信し、無線ネットワーク３０９を通じてコントロール装置３１０に検知結果を送信するようにできる。もちろん上記のセンサにコマンド処理装置３０１を組み込む構成にしてもよい。
【００７５】
また、コマンド処理装置３０１に、ＬＥＤやブザーや液晶ディスプレイなどの出力機器を設けてもよい。これにより、コマンド処理装置３０１は、例えば、上記センサの検知結果を、ネットワーク経由での通知のみならず、出力機器に出力することもできる。
【００７６】
なお、コマンド処理装置３０１とそれに接続される機器は物理的に一体化することもできる。
【図面の簡単な説明】
【００７７】
【図１】本発明の一実施の形態に係る、コマンド処理装置３０１の一例である照明機器を用いたシステムの構成を示す図である。
【図２】本発明の第１の実施の形態に係る、コマンド処理装置３０１の起動時に行われる処理の流れを示すフローチャートである。
【図３】本発明の第１の実施の形態に係る、ステップ４０４の処理の状態の遷移パターンを示す図である。
【図４】本発明の第１の実施の形態に係る、コマンド処理装置３０１が行うべき制御を決定可能なパケットの構成及び具体例を示す図である。
【図５】本発明の第１の実施の形態に係る、可変メモリ３２３に格納されるデータ構造を示す図である。
【図６】本発明の第２の実施の形態に係る、コマンド処理装置３０１が行うべき制御を決定可能なパケットの構成を示す図である。
【図７】本発明の第２の実施の形態に係る、パケット構成において有効なメッセージの例を示す図である。
【図８】本発明の第２の実施の形態に係る、ステップ４０４の処理の状態遷移パターンを示す図である。
【図９】本発明の第２の実施の形態に係る、可変メモリ３２３に格納されるデータ構造について示した図である。
【図１０】本発明の第２の実施の形態に係る、ステート１００８において行われる処理の流れを示すフローチャートである。
【図１１】本発明の第２の実施の形態に係る、ステート１１０３において行われる処理の流れを示すフローチャートである。
【符号の説明】
【００７８】
３０１  コマンド処理装置
３０２  ネットワークモジュール
３０３  プロトコル処理プロセッサ
３０４  電源回路
３０５  アンテナ
３０６  インタフェース
３１１  バッファメモリ
３２１  プロセッサ
３２２  固定メモリ
３２３  可変メモリ
３０８  照明機器
３１０  コントロール装置
３０９  無線ネットワーク
【図１】
2005128888.tif 000003
【図２】
2005128888.tif 000004
【図３】
2005128888.tif 000005
【図４】
2005128888.tif 000006
【図５】
2005128888.tif 000007
【図６】
2005128888.tif 000008
【図７】
2005128888.tif 000009
【図８】
2005128888.tif 000010
【図９】
2005128888.tif 000011
【図１０】
2005128888.tif 000012
【図１１】
2005128888.tif 000013