(57)【要約】      （修正有）【課題】インターネット接続環境がない場合や家電機器が動作していない場合にも、ソフトウェアをダウンロード可能な家電機器アダプタを得る。【解決手段】家電機器アダプタは、家電機器と接続する機器インタフェース部と、ネットワーク上のコントローラや他機器と接続するネットワークインタフェース部と、パソコンやワークステーションと接続する汎用インタフェース部と、予め決められた手順に従い、前記３つのインタフェース部から家電機器アダプタの制御ソフトウェアをダウンロードするダウンロード制御部とを備える。【選択図】図１
2006127432.tif 000002
【特許請求の範囲】
【請求項１】
家電機器と接続する機器インタフェース部と、ネットワーク上のコントローラや他機器と接続するネットワークインタフェース部と、パソコンやワークステーションと接続する汎用インタフェース部と、予め決められた手順に従い、前記３つのインタフェース部から家電機器アダプタの制御ソフトウェアをダウンロードするダウンロード制御部とを備えたことを特徴とする家電機器アダプタ。
【請求項２】
前記ダウンロード制御部は、制御ソフトウェアをダウンロードする場合には、家電機器より固有情報を取得し、前記固有情報に変更があった場合にのみダウンロードを実行することを特徴とする請求項１記載の家電機器アダプタ。
【請求項３】
前記家電機器アダプタに予め組み込まれているソフトウェアと、ダウンロードされる家電機器アダプタ制御ソフトウェアは、それぞれが所有する関数の識別子とその格納アドレスの組を記述したアドレステーブルをお互いにアクセス可能な共有メモリ上に保持することを特徴とする請求項１記載の家電機器アダプタ。
【請求項４】
前記家電機器アダプタに予め組み込まれているソフトウェアと、ダウンロードされる家電機器アダプタ制御ソフトウェアがお互いに呼び合う関数の引数と、返り値は、少なくともデータ数、データ長、データ型、データ値の情報を含むデータ構造記述言語で記載されていることを特徴とする請求項１記載の家電機器アダプタ。
【請求項５】
前記家電機器アダプタに予め組み込まれているソフトウェアとのインタフェース(API)を公開するインタプリタを搭載し、ダウンロード制御部はインタプリタコードをダウンロード後にインタプリタへ実行権を移すことを特徴とする請求項１記載の家電機器アダプタ。
【請求項６】
家電機器と接続する機器インタフェース部と、
ネットワーク上のコントローラや他機器と接続するネットワークインタフェース部と、
前記機器インタフェース部から家電機器アダプタの制御ソフトウェアをダウンロードするダウンロード制御部と、
ネットワークを介して前記ネットワークインタフェース部で受信したネットワーク固有のコマンドを当該コマンドの体系に依存しない仮想オブジェクトモデルに変換すると共に、前記仮想オブジェクトモデルを前記ネットワーク固有のコマンドに変換して前記ネットワークインタフェース部に送信するコマンド変換部とを備え、
ダウンロードされた前記アダプタ制御ソフトウェアは、前記機器インタフェース部で受信した家電機器固有のコマンドを前記仮想オブジェクトモデルに変換して前記コマンド変換部に送信すると共に、前記コマンド変換部から送信された前記仮想オブジェクトモデルを家電機器固有のコマンドに変換して前記機器インタフェース部に送信し、
前記アダプタ制御ソフトウェアと前記コマンド変換部との間では、前記仮想オブジェクトモデルを受け渡すことを特徴とする家電機器アダプタ。
【請求項７】
前記仮想オブジェクトモデルは、家電機器で送受信されるコマンドの体系にも依存しないことを特徴とする請求項６記載の家電機器アダプタ。
【請求項８】
前記コマンド変換部と前記アダプタ制御ソフトウェアとは、それぞれコマンド変換処理部を有すると共に、
前記コマンド変換部と前記アダプタ制御ソフトウェアとの少なくとも一方は、コマンド変換テーブルを有し、
前記コマンド変換部と前記アダプタ制御ソフトウェアとの少なくとも一方は、コマンド変換関数ルーチンを有することを特徴とする請求項６又は請求項７に記載の家電機器アダプタ。
【請求項９】
家電機器と接続する機器インタフェース部と、
ネットワーク上のコントローラや他機器と接続するネットワークインタフェース部と、
前記機器インタフェース部から家電機器アダプタの制御ソフトウェアをダウンロードするダウンロード制御部とを備え、
ダウンロードされた前記アダプタ制御ソフトウェアは、前記機器インタフェース部で受信した家電機器固有のコマンドを当該コマンドの体系に依存しない仮想オブジェクトモデルに変換して前記ネットワークインタフェース部に送信すると共に、ネットワークを介して前記ネットワークインタフェース部で受信した仮想オブジェクトモデルを家電機器固有のコマンドに変換して前記機器インタフェース部に送信し、
前記アダプタ制御ソフトウェアと前記ネットワークインタフェース部との間では、前記仮想オブジェクトモデルを受け渡すことを特徴とする家電機器アダプタ。
【請求項１０】
前記アダプタ制御ソフトウェアは、コマンド変換処理部と、コマンド変換テーブルと、コマンド変換関数ルーチンとを有することを特徴とする請求項９記載の家電機器アダプタ。
【請求項１１】
家電機器と接続する機器インタフェース部と、
ネットワーク上のコントローラや他機器と接続するネットワークインタフェース部と、
前記機器インタフェース部から家電機器アダプタの制御ソフトウェアをダウンロードするダウンロード制御部と、
ネットワークを介して前記ネットワークインタフェース部で受信したネットワーク固有のコマンドを当該コマンドの体系に依存しない仮想オブジェクトモデルに変換すると共に、前記仮想オブジェクトモデルを前記ネットワーク固有のコマンドに変換して前記ネットワークインタフェース部に送信するコマンド変換部とを備え、
ダウンロードされた前記アダプタ制御ソフトウェアは、前記機器インタフェース部で受信した前記仮想オブジェクトモデルを前記コマンド変換部に送信すると共に、前記コマンド変換部から送信された前記仮想オブジェクトモデルを前記機器インタフェース部に送信し、
前記アダプタ制御ソフトウェアと前記コマンド変換部との間では、前記仮想オブジェクトモデルを受け渡すことを特徴とする家電機器アダプタ。
【請求項１２】
前記コマンド変換部は、コマンド変換処理部と、コマンド変換テーブルと、コマンド変換関数ルーチンとを有することを特徴とする請求項１１記載の家電機器アダプタ。
【請求項１３】
前記コマンド変換部が有する前記コマンド変換テーブルおよびコマンド変換関数ルーチンは、前記アダプタ制御ソフトウェアによって設定されることを特徴とする請求項８又は請求項１２に記載の家電機器アダプタ。
【請求項１４】
家電機器と接続する機器インタフェース部と、
ネットワーク上のコントローラや他機器と接続するネットワークインタフェース部とを備え、
前記機器インタフェース部で受信する家電機器固有のコマンドと、前記ネットワークインタフェース部で受信するネットワーク固有のコマンドとを、これらのコマンドの体系に依存しない仮想オブジェクトモデルにそれぞれ変換して、相互に受け渡すことを特徴とする家電機器アダプタ。
【請求項１５】
仮想オブジェクトモデルのコマンド体系は、アクセス機器を特定する識別子と、データの種類と、データの値とから構成されることを特徴とする請求項６から請求項１４のいずれか一項に記載の家電機器アダプタ。
【請求項１６】
機器インタフェース部のコマンドとネットワークインタフェース部のコマンドの対応を入力し、入力された対応の組から前記コマンド変換テーブルを初期化するソースコードを含むアダプタ制御ソフトウェアのソースコードを自動生成する家電機器アダプタのソフトウェア開発装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、制御ソフトウェアをダウンロード・実行する方式を採用した、家電機器をネットワークに接続するための家電機器アダプタおよびソフトウェア開発装置に関するものである。
【背景技術】
【０００２】
家電機器をインターネットやホームネットワークなどのネットワークに接続する際には、家電機器のコストアップを避けるために、家電機器アダプタを使用する形態を取っている。従来の家電機器アダプタは、家電機器とのインタフェース仕様がメーカ毎、機種毎に異なるために、特定機種専用のアダプタとして開発されていた。しかし、在庫や流通のコストアップとなるために、機種専用のソフトウェアをあとから家電機器アダプタへダウンロードする方式が提案されている。主に家電機器より機種情報を取得し、機種情報に基づきインターネット上に公開されたサーバより機種に対応した専用ソフトウェアをダウンロードするようにしている。（例えば、特許文献１）。また、家電機器内に予め専用ソフトウェアを搭載しておき、家電機器アダプタが家電機器よりダウンロードする方式も提案されている。(例えば、非特許文献１)
【０００３】
【特許文献１】特開２００４−２２９２６６号公報（第１―１１頁、第１図）
【非特許文献１】「エコーネット規格書ver3.20」エコーネットコンソーシアム,2004年1月8日,第7部ECHONET通信装置仕様 第8章ECHONETミドルウェアアダプタ p8-4
【発明の開示】
【発明が解決しようとする課題】
【０００４】
インターネット接続環境が無い場合や、工事の都合上で家電機器の電源を入れられない場合など、家電機器アダプタにソフトウェアをダウンロードすることができない。
また、家電機器の故障時には、ソフトウェアを入れ替える必要がある。
また、実行可能なソフトウェアは、アドレス解決（関数や変数のアドレス決定）がされているため呼び出しが可能であるが、家電機器アダプタにダウンロードされたソフトウェアと既に組み込まれているソフトウェアとが分割されているため、お互いに呼び出しあうための仕組みが必要である。
また、ソフトウェア開発において、関数呼び出しの引数、及び戻り値の数、及び型チェックはコンパイラやリンカが通常実施している。ダウンロード型のプログラムでは、分割されるためにこれらのチェックは開発者に任されることになる。誤った引数、戻り値のソフトウェアをダウンロードした場合、家電機器アダプタは暴走し、実行不可能な状態に陥る。
さらに、ダウンロードするソフトウェアは、家電機器アダプタのCPUや、構成に依存したものとなるため、１台の家電機器に対して、家電機器アダプタの種類分だけソフトウェアを開発しなければならない。
また、ダウンロードするソフトウェアにネットワークに依存したコードが入っていると、ネットワークを変更した場合にダウンロードソフトウェアも変更しなければならず、同じ家電機器に対してネットワークの種類に応じた数だけダウンロードソフトウェアを作成する必要がある。
また、新しい家電機器を開発する度に、ダウンロードソフトウェアを作成するには、開発の労力を要する。
【０００５】
この発明は、上記のような課題を解決するためになされたもので、インターネット接続環境がない場合や家電機器が動作していない場合にも、ソフトウェアをダウンロード可能な家電機器アダプタを得ることを目的とする。
また、故障などで家電機器を交換した場合にも対応したソフトウェアをダウンロードする家電機器アダプタを得ることを目的とする。
また、ダウンロードソフトウェアと既に組み込まれたソフトウェアの間で呼び出しが可能で、ダウンロードソフトウェアの引数、戻り値の数、型チェックを行える家電機器アダプタを得ることを目的とする。
さらに、家電機器アダプタのCPUや構成に依存しないソフトウェアを実行可能な家電機器アダプタを得ることを目的とする。
また、ネットワークが変更になっても、ダウンロードソフトウェアの変更の必要がない家電機器アダプタを得ることを目的とする。
さらに、新しい家電機器を開発した際に、ダウンロードソフトウェアを自動生成するソフトウェア開発装置を得ることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係る家電機器アダプタは、家電機器と接続する機器インタフェース部と、ネットワーク上のコントローラや他機器と接続するネットワークインタフェース部と、パソコンやワークステーションと接続する汎用インタフェース部と、予め決められた手順に従い、前記３つのインタフェース部から家電機器アダプタの制御ソフトウェアをダウンロードするダウンロード制御部とを備えたものである。
【発明の効果】
【０００７】
この発明の家電機器アダプタは、家電機器と接続する機器インタフェース、ネットワークと接続するネットワークインタフェース、パソコンと接続する汎用インタフェースを備え、予め決められた手順に従い、３つのインタフェースのいずれかからソフトウェアをダウンロードするように構成したため、インターネット接続環境がない場合や、家電機器がない場合にも汎用インタフェースを介してパソコンなどから家電機器アダプタのソフトウェアをダウンロードが行えるという効果がある。
また、動作開始時に、家電機器よりメーカ名、機種名、型名、シリアル番号などの機器固有情報を取得し、これらの情報が変更されていた場合にダウンロードを実行するようにしたため、故障などが原因で家電機器を交換した場合にもダウンロードが行えるという効果がある。
また、ダウンロードソフトウェアと既に組み込まれているソフトウェアのそれぞれが所有する関数とその格納アドレスをアクセス可能な共有メモリに保持しているため、お互いに呼び出しを行えるという効果がある。
また、引数、戻り値を、少なくともデータ数、データ型、データ長、データ値の情報を含むデータ構造記述言語で記述するため、これらの数、型のチェックを行えるという効果がある。
さらに、家電機器アダプタに既に組み込まれているソフトウェアを利用するためのAPIを備えたインタプリタを搭載し、ダウンロードソフトウェアはインタプリタ上で動作するインタプリタコードで記述したため、CPUや構成に依存しないソフトウェアの実行を行えるという効果がある。
また、ネットワークを介してネットワークインタフェース部で受信したネットワーク固有のコマンドは、コマンド変換部によって、当該コマンドの体系に依存しない仮想オブジェクトモデルに変換されると共に、機器インタフェース部で受信した家電機器固有のコマンドは、ダウンロードされたアダプタ制御ソフトウェアによって、仮想オブジェクトモデルに変換される。このため、コマンド変換部とアダプタ制御ソフトウェアとの間では、ネットワークを伝送するコマンドの体系に依存しない仮想オブジェクトモデルを用いてコマンドの受け渡しを行うことができる。その結果、ダウンロードソフトウェアであるアダプタ制御ソフトウェアは、現在接続中のネットワークの種類を意識することなく、コマンドの送受信が行えるという効果がある。
また、ダウンロードソフトウェア上で、家電機器との通信処理と、ネットワークコマンドへの変換処理を全て行う構成をとることができ、ダウンロードソフトウェアを容易に開発することが可能であるという効果がある。
また、家電機器との通信コマンドとネットワーク通信コマンドとの変換処理を全て家電機器アダプタに組み込まれたソフトウェアとして実現する構成をとることができ、ダウンロードソフトウェアのコード量を最小限に押さえることができるという効果がある。
また、変換処理で使用する変換テーブルや変換関数ルーチンをダウンロードソフトウェアから設定できるようにしたため、家電機器アダプタに組み込まれたソフトウェアで変換処理を実行する際にも家電機器アダプタの組み込みソフトウェアに変更の必要がないという効果がある。
また、変換関数ルーチンを使用した変換処理は、ダウンロードソフトウェア側で実行する構成をとることができ、家電機器アダプタの組み込みソフトウェア側に関数を登録して実行するような複雑な仕組みが不要であるという効果がある。
また、変換処理に必要な変換関数ルーチンはダウンロードソフトウェア側に保持し、家電機器アダプタの組み込みソフトウェアで変換処理を実行する際には、ダウンロードソフトウェアに保持されている変換関数ルーチンを使用できるような構成にしたため、家電機器アダプタの組み込みソフトウェア側に関数を登録して実行するような複雑な仕組みが不要であるという効果がある。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
図１はこの発明の実施の形態における家電機器アダプタの機能ブロック図を示すものである。
図において、家電機器アダプタ１は、UART(Universal Asynchronous Receiver Transmitter)等で実現される機器インタフェース５を介して家電機器２と、ホームネットワークのネットワーク６を介してコントローラ３と、USBで実現する汎用インタフェース７を介してパソコン４と接続されている。
家電機器アダプタ１内には、前記３つのインタフェースのそれぞれの送受信動作を行う、機器インタフェース部１ａ、ネットワークインタフェース部１ｂ、汎用インタフェース部１ｃがあり、これらは、ソフトウェアをダウンロードするタイミング、プロトコルを含むダウンロード制御部１ｄに接続されている。
アドレステーブル１ｅには、家電機器アダプタ１に搭載されている、機器インタフェース部１ａ、ネットワークインタフェース部１ｂ、ダウンロード制御部１ｄなどのソフトウェアが公開するアプリケーションプログラムインタフェース(API)の格納アドレスが登録されている。
アダプタ制御ソフトウェア１ｆは、ダウンロード制御部１ｄにより機器インタフェース５、ネットワーク６、汎用インタフェース７のいずれからダウンロードされ追加されるソフトウェアである。
【０００９】
汎用インタフェース７は、USBの他に、LAN、RS-232Cなどのシリアル通信、パラレル通信などを利用しても同様に構成することができる。ネットワーク６はホームネットワークの他に、構内LANやインターネットであっても同じように構成することができる。
【００１０】
図２は、ダウンロード制御部１ｄの動作フローチャート図である。家電機器アダプタ１に電源が投入されると、ステップＳ２１から実行される。ステップＳ２１では、家電機器より型名を取得し、前回取得した型名から変更があったかを判定する。初回の電源投入時には型名は記憶されていないので、変更されたと判断する。変更されていない場合は、既に制御ソフトウェアはダウンロード済みなので、ステップＳ２８で、ダウンロードされているアダプタ制御ソフトウェアへジャンプする。
【００１１】
型名に変更があった場合は、ステップＳ２２へ進み、家電機器２に対してダウンロードソフトウェアを保持しているかを問い合わせる。ECHONET規格書に記載されている”機器インタフェース情報認識シーケンス”を用いて保持の有無を確認する。保持している場合には、家電機器２より制御ソフトウェアのダウンロードを行い、所定のメモリ領域に格納する。ステップＳ２８へ進み、ダウンロードしたアダプタ制御ソフトウェアへジャンプする。
【００１２】
図３は本実施例における家電機器アダプタのメモリマップを示す。アドレス0x3000からがアダプタ制御ソフトウェア用に割り当てられており、ダウンロードしたアダプタ制御ソフトウェアは、ここに格納される。
【００１３】
図２に戻り、ステップＳ２２にて家電機器にダウンロードソフトウェアがなかった場合には、ステップＳ２１にて家電機器に問い合わせた型名を用いて、ネットワーク６上のコントローラ３に対してダウンロードソフトウェアを保持しているかを問い合わせる。（ステップＳ２３）保持している場合は、ステップＳ２６にて制御ソフトウェアをダウンロードし、所定のメモリ領域へ格納する。ステップＳ２８へ進み、ダウンロードしたアダプタ制御ソフトウェアへジャンプする。
【００１４】
ネットワーク６が構内LANやインターネットの場合には、予めアダプタ内に保持しているメーカ毎のインターネットアドレス（ＵＲＬ）にアクセスして制御ソフトウェアの保持を確認するような構成をとることもできる。
【００１５】
ステップＳ２３にて制御ソフトウェアを保持していない場合には、ステップＳ２４へ進み、汎用インタフェース７を介してパソコンに制御ソフトウェアの保持を確認する。保持している場合には、ステップＳ２７にてダウンロードし、所定のメモリ領域へ格納する。ステップＳ２８へ進み、ダウンロードしたアダプタ制御ソフトウェアへジャンプする。
【００１６】
パソコン４にソフトウェアがない場合、または汎用インタフェース７にパソコン４が接続されていない場合には、ダウンロード可能となるまで、ステップＳ２４を実行する。
【００１７】
図４は、ダウンロードされた制御ソフトウェアの機能ブロック図である。機器インタフェース制御ソフトウェア１ｆ−１は、機器インタフェース部１ａへの通信パラメータ設定および機器インタフェース部１ａを用いたプロトコルのソフトウェアである。コマンド変換ソフトウェア１ｆ−２は、機器インタフェース５とネットワーク６を流れるコマンドの変換を実行するソフトウェアである。アダプタ制御ソフトウェアアドレステーブル１ｆ−３は、本制御ソフトウェアが公開するアプリケーションプログラムインタフェース（ＡＰＩ）の格納アドレスを示す関数アドレスの一覧である。
【００１８】
図３に戻り、制御ソフトウェアは、アドレス0x3000番地から格納される。アダプタ制御ソフトウェアアドレステーブルから格納されるため、アダプタに既に組み込まれているソフトウェアからは、0x3000から始まるアドレステーブルから呼び出したいアドレスの格納アドレスを検索し、ジャンプすることができる。
【００１９】
図５は、0x2000番地から格納されているソフトウェアのアドレステーブルの例である。本テーブルは、アダプタに既に組み込まれているソフトウェアが公開する関数に関するものである。メソッド名をキーとして、格納アドレスを検索できるテーブルとなっている。native_net_set メソッドは、ネットワークインタフェース部から設定コマンドを送信するための関数であり、その格納アドレスは、0x1030 であることを示している。ダウンロードされた制御ソフトウェアは、メソッド名からアドレスを検索し、該当番地にジャンプする。
【００２０】
関数を呼び合う場合の引数及び戻り値は、データ構造定義言語である、ASN.1(Abstract Syntax Notation One)を使用して表現する。図６は、アダプタ制御ソフトウェア１ｆからネットワークインタフェース部１ｂに対して、家電機器の運転状態を操作する場合に渡される引数のデータ構造を表す図である。引数(Arg)は、objectID, propertyID, status の３つのオブジェクトの集合(SEQUENCE)で表され、objectID は、INTEGER 型のデータ、propertyID は、家電機器の属性を表すINTEGER型のデータ、status は、運転状態を表す BOOLEAN 型のデータである。
機種を表す classID と、インスタンスを表す instanceID から構成される
【００２１】
objectID が機種を表す classID と、インスタンスを表す instanceID から構成され、
エアコンの classID が、0x50、instanceID が 0x02、運転状態の propertyID が 0x05、運転中の statusが 0x10 である場合の引数の実態を図７に示す。呼び出し元プログラムは、図７に示すバイト列をスタックに積み、関数を呼び出す。呼び出し先関数は、スタックからバイト列を取り出し、ASN.1の変換規則によりデータ構造とデータの値を確認し、関数を実行する。
ダウンロードされたアダプタ制御ソフトウェアは、このように機器インタフェース部１ａ、ネットワークインタフェース部１ｂのメソッドを呼び出しながら、コマンドを変換し、アダプタとしての動作を行う。
【００２２】
本実施の形態では、データ構造定義言語として、ASN.1を使用したが、XML(eXtensible Markup Language)で引数、戻り値のデータ構造を表現しても同様に構成することが可能である。
【００２３】
実施の形態２．
次に、家電機器アダプタにインタプリタを搭載し、インタプリタコードで記述されたアダプタ制御ソフトウェアをダウンロード、実行する場合の実施の形態を示す。
図８は、インタプリタを搭載した家電機器アダプタの機能ブロック図である。図１と比較して、インタプリタ１ｇがコードを解析し、メソッド呼び出しを行うため、アドレステーブル１ｅがなくなっている。また、ＣＰＵ依存のマシン語で構成されるアダプタ制御ソフトウェア１ｆは、インタプリタコードで構成されるアダプタ制御ソフトウェア１ｈとなっている。インタプリタ１ｇは、機器インタフェース部１ａのメソッドを機器ＡＰＩ１ｉとして、ネットワークインタフェース部１ｂのメソッドをネットワークＡＰＩ１ｊとして、アダプタ制御ソフトウェア１ｈに公開している。アダプタ制御ソフトウェア１ｈは、機器ＡＰＩ１ｉ、ネットワークＡＰＩ１ｊを利用して記述されたコードとなる。
【００２４】
図９は、インタプリタを搭載した場合のダウンロード制御部１ｄの動作フローを表す図である。ステップＳ９１からステップＳ９７までは図２のステップＳ２１からステップＳ２７までと同一である。家電機器より取得した型名に変更があれば、家電機器２、ネットワーク６、パソコン４の順にダウンロードを行い、ソフトウェアを所定のアドレスへ格納する。ダウンロード、メモリへの格納を行ったあとは、ステップＳ９８にてインタプリタへジャンプし、実行権を移す。
【００２５】
図１０は本実施例における家電機器アダプタのメモリマップを示す。アドレス0x3000からがアダプタ制御ソフトウェア用に割り当てられており、ダウンロードしたアダプタ制御ソフトウェアは、ここに格納される。
【００２６】
図９のステップＳ９８が実行されると、家電機器アダプタは 0x2000 番地から格納されているインタプリタへジャンプする。本実施例では、小型で、拡張実装が可能であるインタプリタFORTH を使用している。FORTHはスタックを利用したインタプリタで、コードは逆ポーランド記法で記述するため、構文解析はプログラマが行う。そのため、インタプリタの小型実装が可能である。また、ワード拡張機能を有しているため、機器API、ネットワークAPIの拡張も可能である。
【００２７】
図１１は、FORTHインタプリタのワード拡張機能を使用したネットワークAPIの例である。net_set メソッドは、ネットワーク上の機器のプロパティを設定するAPI、net_get メソッドは、ネットワーク上の機器のプロパティを取得するAPIである。括弧内の"--"より前に記述されているものが引数、"--"より後ろに記述されているものが戻り値となる。引数は関数の呼び出し元が呼び出し前にスタックに積む順番に記載されている。また、戻り値は、呼び出し元に戻ってきたときのスタックの内容を示している。例えば、net_set メソッドを呼び出す場合は、設定値 value 、プロパティID propertyID、オブジェクトID objectIDを順にスタックに積み、net_setメソッドを呼び出す。net_set メソッドでは、引数に指定された情報を用いて、送信電文を作成し、ネットワークインタフェース部１ｂの設定メソッドを呼び出し、送信する。net_set メソッドは実行結果をスタックに積んで呼び出し元に戻る。呼び出し元では、スタックからstatusを取り出し、結果に応じた処理を行う。
【００２８】
インタプリタコードで記述されたアダプタ制御ソフトウェアは、このように機器ＡＰＩ、ネットワークＡＰＩのメソッドを呼び出しながら、コマンドを変換し、アダプタとしての動作を行う。
【００２９】
実施の形態３．
図１２は、仮想オブジェクトモデルをインタフェースとして用いた家電機器アダプタの機能を示すブロック図である。図８と比較して、仮想オブジェクトモデルをネットワークインタフェースのコマンドに変換するコマンド変換部１ｋが追加されている。インタプリタ１ｇは、コマンド変換部１ｋのメソッドをコマンド変換ＡＰＩ１ｌとしてアダプタ制御ソフトウェア１ｈに公開している。アダプタ制御ソフトウェア１ｈは、機器ＡＰＩ１ｉ、コマンド変換ＡＰＩ１ｌを利用して記述されたコードとなる。
【００３０】
図１３は、アダプタ制御ソフトウェア１ｈと、コマンド変換部１ｋの機能を示すブロック図である。アダプタ制御ソフトウェア１ｈは、機器インタフェース１ａを介して家電機器２と通信コマンド（家電機器２のコマンド体系に依存）を送受信する機器インタフェース送受信部１ｈ−１と、家電機器２との通信コマンドと仮想オブジェクト（家電機器２およびネットワーク６のコマンド体系に非依存）とを変換する仮想オブジェクト変換部１ｈ−２から構成される。コマンド変換部１ｋは、ネットワークインタフェース１ｂを介してコントローラ３と通信コマンド（ネットワーク６のコマンド体系に依存）を送受信するネットワークインタフェース送受信部１ｋ−２と、コントローラ３の通信コマンドと仮想オブジェクトとを変換するネットワークコマンド変換部１ｋ−１とから構成される。仮想オブジェクト変換部１ｈ−２と、ネットワークコマンド変換部１ｋ−１とは、コマンド変換ＡＰＩ１ｌを介して接続され、仮想オブジェクトを用いてアクセスされる。
【００３１】
図１４は、アダプタ制御ソフトウェア１ｈと、コマンド変換部１ｋの機能を示すブロック図である。アダプタ制御ソフトウェア１ｈの仮想オブジェクト変換部１ｈ−２には、変換処理を実行するコマンド変換処理部と、処理の際に使用されるコマンド変換テーブルと、コマンド変換関数ルーチンが搭載される。同様に、コマンド変換部１ｋのネットワークコマンド変換部１ｋ−１には、変換処理を実行するコマンド変換処理部と、処理の際に使用されるコマンド変換テーブルと、コマンド変換関数ルーチンが搭載される。
【００３２】
図１５は、家電機器２と家電機器アダプタ１間で通信される通信コマンド（家電機器固有のコマンド）、およびコントローラ３と家電機器アダプタ１間で通信される通信コマンド（ネットワーク固有のコマンド）の体系を示す図である。通信コマンドは１バイトで構成され、上位４ビットと下位４ビットに分けられている。上位４ビットは、データの種類を表し、エアコンの場合、図に示すように、運転状態、運転モード、設定温度などが割り当てられる。また、下位４ビットは、データの種類毎に意味が異なり、上位４ビットが運転状態の場合は、0x0が停止を、0x1が運転の状態を表す。同様に、運転モードの場合には、0x0が冷房、0x1が暖房を、設定温度の場合には、0x0が20℃、以後プラス１されると１℃ずつプラスし、0xaが30℃を意味する。
【００３３】
図１６は、コマンド変換部１ｋとアダプタ制御ソフトウェア１ｈとの間で通信される仮想オブジェクトモデル（家電機器２およびネットワーク６を伝送する通信コマンドの体系に依存しない仮想オブジェクトモデル）の体系を示す図である。通信コマンドは３バイトのオブジェクトモデルで構成され、１バイト目がアクセス機器を表すオブジェクト、２バイト目がデータの種類を表すプロパティ、３バイト目がデータの値を表すプロパティ値となっている。エアコンの場合には、１バイト目は0x40固定、２バイト目は、運転状態が0x30、運転モードが0x40、設定温度が0x50となっている。３バイト目は、プロパティによって異なり、運転状態では、0x11が停止、0x22が運転、運転モードでは、0x10が冷房、0x20が暖房、設定温度では、0x14が20℃から始まり、0x1Eが30℃を表している。
【００３４】
コマンド変換処理部（図１４参照）の処理に使用されるコマンド変換テーブルは、図１７のようになる。例えば、機器インタフェース側の通信コマンドが、0x21の場合、仮想オブジェクトモデルは、オブジェクトx040(エアコン)、プロパティ0x40(運転モード)、データ0x20(暖房)のように変換に使用される。
【００３５】
コマンド変換関数ルーチン（図１４参照）は、設定温度のように変換は同じ規則で行われているが、１対１で変換テーブルを作成するとテーブルが大きくなってしまう場合に使用する。本実施の形態における設定温度の場合の変換関数ルーチンを図１８に記す。（１）はＣ言語で記述した例、（２）は逆ポーランド記法を用いたＦＯＲＴＨ言語で記述した例である。それぞれ機器インタフェース側の通信コマンドの値０ｘ３０を入力すると、ネットワークインタフェース側の通信コマンドの０ｘ１４（１０進数の２０）が出力されるようになっている。
【００３６】
図１９は、家電機器２から送信され機器インタフェース部１ａで受信した通信コマンドを、アダプタ制御ソフトウェア１ｈのコマンド変換処理部（図１４参照）で仮想オブジェクトモデルに変換する際のフローチャートを示す図である。機器インタフェース送受信部１ｈ−１から通信コマンドが渡されて処理は開始する。ステップＳ１９１では、コマンド変換テーブルを用いて受信した通信コマンドを、仮想オブジェクトのオブジェクトとプロパティに変換する。例えば、通信コマンドが０ｘ２１の場合、オブジェクトは０ｘ４０、プロパティは０ｘ４０となり、通信コマンドが０ｘ３１の場合、オブジェクトは０ｘ４０、プロパティは０ｘ５０となる。
【００３７】
ステップＳ１９２で、通信コマンドが０ｘ３０未満か、以上かで処理が分かれる。０ｘ３０未満の場合、コマンド変換テーブルにより値の変換を行い（ステップＳ１９３）、０ｘ３０以上の場合は、設定温度なのでコマンド変換関数ルーチンによる変換を行う（ステップＳ１９４）。例えば、通信コマンドが０ｘ２１の場合、値はコマンド変換テーブルより０ｘ２０となり、通信コマンドが０ｘ３１の場合、値はコマンド変換関数ルーチンにより、０ｘ１５となる。
【００３８】
以上の変換処理によって、機器インタフェース部１ａで受信した家電機器２固有の通信コマンドが、家電機器２で送受信される通信コマンドの体系に依存しない仮想オブジェクトモデルに変換される。同様に、ネットワーク６を介してネットワークインタフェース部１ｂで受信したネットワーク固有の通信コマンドが、コマンド変換部１ｋによって、ネットワーク６で伝送されるコマンドの体系に依存しない仮想オブジェクトモデルに変換される。このため、コマンド変換部１ｋとアダプタ制御ソフトウェア１ｈとの間では、家電機器２で送受信される通信コマンドおよびネットワーク６を伝送するコマンドの体系に依存しない仮想オブジェクトモデルを用いてコマンドの受け渡しを行うことができる。その結果、ダウンロードソフトウェアであるアダプタ制御ソフトウェア１ｈは、現在接続中のネットワーク６の種類を意識することなく、コマンドの送受信が行えるという効果が発揮される。
特に、図１５に示した通信コマンドは、家電機器２或いはネットワーク６に固有の体系を有しているため、別の家電機器２或いはネットワーク６と接続を変更した場合には、通信コマンドの体系が大きく異なる（例えば、上位２ビットがデータの種類を表し、下位６ビットが運転状態を表すなど）。これに対し、図１６に示した仮想オブジェクトモデルは、図１５の通信コマンドの体系に依存しない中間的なコマンド体系を有しているため、一旦、仮想オブジェクトモデルに変換して、アダプタ制御ソフトウェア１ｈとコマンド変換部１ｋとの間で受け渡すことにより、別の家電機器２或いはネットワーク６と接続を変更した場合であっても、新たなアダプタ制御ソフトウェア１ｈをダウンロードすることなしに、継続してコマンドの送受信を行うことが可能となる。
なお、通信コマンドから仮想オブジェクトモデルへの変換は、以下の事情により、容易に行える。すなわち、アダプタ制御ソフトウェア１ｈは、家電機器２からダウンロードされるソフトウェアであるため、アダプタ制御ソフトウェア１ｈの中に、家電機器２固有のコマンド体系についての情報を有している。このため、家電機器２から送信されるコマンドを仮想オブジェクトモデルに変換するのは、アダプタ制御ソフトウェア１ｈにとっては容易である。また、家電機器アダプタ１自体がネットワーク６に依存しているため、家電機器アダプタ１内のコマンド変換部１ｋは、ネットワーク６固有のコマンド体系についての情報を有している。このため、ネットワーク６を介して送信されるコマンドを仮想オブジェクトモデルに変換するのは、コマンド変換部１ｋにとっては容易である。
以上の基本的な技術思想は、以下説明する各実施の形態についても同様である。
【００３９】
実施の形態４．
図２０は、ネットワークインタフェース１ｂのコマンドがオブジェクトモデルに基づいていて、仮想オブジェクトモデルにネットワークインタフェースのオブジェクトモデルを適用した場合のアダプタ制御ソフトウェア１ｈと、コマンド変換部１ｋの機能を示すブロック図である。オブジェクトモデルが等しいために、コマンド変換部１ｋにはネットワークコマンド変換部１ｋ−１はなく、ネットワークインタフェース送受信部１ｋ−２のみとなっている。また、アダプタ制御ソフトウェアの仮想オブジェクト変換部１ｈ−２には、変換処理を実行するコマンド変換処理部と、処理の際に使用されるコマンド変換テーブルと、コマンド変換関数ルーチンが搭載される。
【００４０】
図２１は、家電機器２と家電機器アダプタ１間で通信される通信コマンドの体系を示す図である。通信コマンドは１バイトで構成され、上位４ビットと下位４ビットに分けられている。上位４ビットは、データの種類を表し、エアコンの場合、図に示すように、運転状態、運転モード、設定温度などが割り当てられる。また、下位４ビットは、データの種類毎に意味が異なり、上位４ビットが運転状態の場合は、0x0が停止を、0x1が運転の状態を表す。同様に、運転モードの場合には、0x0が冷房、0x1が暖房を、設定温度の場合には、0x0が20℃、以後プラス１されると１℃ずつプラスし、0xaが30℃を意味する。
【００４１】
図２２は、コントローラ３と家電機器アダプタ１間で通信される通信コマンドの体系を示す図である。通信コマンドは３バイトのオブジェクトモデルで構成され、１バイト目がアクセス機器を表すオブジェクト、２バイト目がデータの種類を表すプロパティ、３バイト目がデータの値を表すプロパティ値となっている。エアコンの場合には、１バイト目は0x40固定、２バイト目は、運転状態が0x30、運転モードが0x40、設定温度が0x50となっている。３バイト目は、プロパティによって異なり、運転状態では、0x11が停止、0x22が運転、運転モードでは、0x10が冷房、0x20が暖房、設定温度では、0x14が20℃から始まり、0x1Eが30℃を表している。
【００４２】
コマンド変換処理部（図２０参照）の処理に使用されるコマンド変換テーブルは、図２３のようになる。例えば、機器インタフェース側の通信コマンドが、0x21の場合、ネットワークインタフェース側のオブジェクトモデルは、オブジェクトx040(エアコン)、プロパティ0x40(運転モード)、データ0x20(暖房)のように変換に使用される。
【００４３】
コマンド変換関数ルーチン（図２０参照）は、設定温度のように変換は同じ規則で行われているが、１対１で変換テーブルを作成するとテーブルが大きくなってしまう場合に使用する。本実施の形態における設定温度の場合の変換関数ルーチンを図２４に記す。（１）はＣ言語で記述した例、（２）は逆ポーランド記法を用いたＦＯＲＴＨ言語で記述した例である。それぞれ機器インタフェース側の通信コマンドの値０ｘ３０を入力すると、ネットワークインタフェース側の通信コマンドの０ｘ１４（１０進数の２０）が出力されるようになっている。
【００４４】
図２５は、家電機器２から送信され機器インタフェース部１ａで受信した通信コマンドを、アダプタ制御ソフトウェア１ｈのコマンド変換処理部（図２０参照）で仮想オブジェクトモデルに変換する際のフローチャートを示す図である。機器インタフェース送受信部１ｈ−１から通信コマンドが渡されて処理は開始する。ステップＳ１９１では、コマンド変換テーブルを用いて受信した通信コマンドを、仮想オブジェクトのオブジェクトとプロパティに変換する。例えば、通信コマンドが０ｘ２１の場合、オブジェクトは０ｘ４０、プロパティは０ｘ４０となり、通信コマンドが０ｘ３１の場合、オブジェクトは０ｘ４０、プロパティは０ｘ５０となる。
【００４５】
ステップＳ１９２で、通信コマンドが０ｘ３０未満か、以上かで処理が分かれる。０ｘ３０未満の場合、コマンド変換テーブルにより値の変換を行い（ステップＳ１９３）、０ｘ３０以上の場合は、設定温度なのでコマンド変換関数ルーチンによる変換を行う（ステップＳ１９４）。例えば、通信コマンドが０ｘ２１の場合、値はコマンド変換テーブルより０ｘ２０となり、通信コマンドが０ｘ３１の場合、値はコマンド変換関数ルーチンにより、０ｘ１５となる。
【００４６】
以上の変換処理によって、機器インタフェース部１ａで受信した家電機器２固有の通信コマンドが、当該通信コマンドの体系に依存しない仮想オブジェクトモデルに変換される。このため、コマンド変換部１ｋとアダプタ制御ソフトウェア１ｈとの間では、家電機器２で送受信される通信コマンドの体系に依存しない仮想オブジェクトモデルを用いて通信コマンドの受け渡しを行うことができる。その結果、コマンド変換部１ｋは、現在接続中の家電機器２の種類を意識することなく、通信コマンドの送受信が行えるという効果が発揮される。
【００４７】
実施の形態５．
図２６は、機器インタフェース１ａのコマンドがオブジェクトモデルに基づいていて、仮想オブジェクトに機器インタフェースのオブジェクトモデルを適用した場合のアダプタ制御ソフトウェア１ｈと、コマンド変換部１ｋの機能を示すブロック図である。オブジェクトモデルが等しいために、アダプタ制御ソフトウェア１ｈには仮想オブジェクト変換部１ｈ−２はなく、機器インタフェース送受信部１ｈ−１のみとなっている。また、コマンド変換部１ｋのネットワークコマンド変換部１ｋ−１には、変換処理を実行するコマンド変換処理部と、処理の際に使用されるコマンド変換テーブルと、コマンド変換関数ルーチンが搭載されている。
【００４８】
図２７は、家電機器と家電機器アダプタ間で通信されるコマンドの体系を示す図である。コマンドは３バイトのオブジェクトモデルで構成され、１バイト目がアクセス機器を表すオブジェクトを、２バイト目がデータの種類を表すプロパティ、３バイト目がデータの値を表すプロパティ値となっている。エアコンの場合には、１バイト目は０ｘ４０固定、２バイト目は、運転状態が０ｘ３０、運転モードが０ｘ４０、設定温度が０ｘ５０となっている。３バイト目は、プロパティによって異なり、運転状態では、０ｘ１１が停止、０ｘ２２が運転、運転モードでは、０ｘ１０が冷房、０ｘ２０が暖房、設定温度では、０ｘ１４が２０℃から始まり、０ｘ１Ｅが３０℃を表している。
【００４９】
図２８は、コントローラと家電機器アダプタ間で通信される通信コマンドの体系を示す図である。通信コマンドは１バイトで構成され、上位４ビットと下位４ビットに分けられている。上位４ビットは、データの種類を表し、エアコンの場合、図に示すように、運転状態、運転モード、設定温度などが割り当てられる。また、下位４ビットは、データの種類毎に意味が異なり、上位４ビットが運転状態の場合は、０ｘ０が停止を、０ｘ１が運転の状態を表す。同様に、運転モードの場合には、０ｘ０が冷房、０ｘ１が暖房を、設定温度の場合には、０ｘ０が２０℃、以後プラス１されると１℃ずつプラスし、０ｘａが３０℃を意味する。
【００５０】
コマンド変換処理部（図２６参照）に使用されるコマンド変換テーブルおよびコマンド変換関数ルーチンは、図２９のように表される。例えば、機器インタフェース側のオブジェクトモデルが、オブジェクトx040(エアコン)、プロパティ0x40(運転モード)、データ0x20(暖房)の場合、ネットワークインタフェース側の通信コマンドは、0x21のように変換に使用される。また、設定温度のように変換関数ルーチンを使用したほうがよい場合、プロパティ０ｘ５０の行のように、値には、式を代入し変換関数ルーチンを表す。この場合の式は、０ｘ１４（１０進数の２０）が０ｘ３０に変換されるような関数となっている。家電機器アダプタには予め、プラス（＋）、マイナス（−）などの四則演算の計算ルーチンは組み込まれており、上記関数式を評価し、実行する。
【００５１】
図３０は、仮想オブジェクトモデルからネットワークインタフェースコマンドへ変換する場合のコマンド変換部１ｋのフローチャートを表す図である。コマンドＡＰＩ１ｌを介してアダプタ制御ソフトウェア１ｈから、仮想オブジェクトデータを受け取ると処理を開始し、ステップＳ２４１では、プロパティが０ｘ５０未満かを判断する。０ｘ５０未満の場合は、コマンド変換テーブルによる変換を行い、０ｘ５０以上なら、コマンド変換テーブルと、変換関数ルーチンを用いて、変換を行う。例えば、オブジェクト０ｘ４０、プロパティ０ｘ３０、値０ｘ２２の場合は、変換テーブルにより、１バイト目を０ｘ１１に変換する。また、オブジェクト０ｘ４０、プロパティ０ｘ５０、値０ｘ１５の場合は、変換関数ルーチンにより、１バイト目を０ｘ３１（０ｘ１５−０ｘ１４＋０ｘ３０）に変換する。
【００５２】
コマンド変換部１ｋは、家電機器アダプタに予め組み込まれたソフトウェアであるために変更はできない。変換規則を変えられるように、コマンド変換テーブル、コマンド変換関数ルーチンは、コマンド変換ＡＰＩ１ｌを介してダウンロードされるアダプタ制御ソフトウェア１ｈから設定することが可能となっている。図３１は、コマンド変換ＡＰＩを使用して、コマンド変換テーブル、コマンド変換関数ルーチンを設定する例を示す図である。（１）がＣ言語を使用した場合、（２）が逆ポーランド記法を用いたＦＯＲＴＨ言語を使用した場合の例である。図２９のコマンド変換テーブルの１行ずつを、コマンド変換ＡＰＩを介して登録している。
【００５３】
以上の変換処理によって、ネットワーク６で伝送される通信コマンドの体系に依存しない仮想オブジェクトモデルが、コマンド変換部１ｋによって、ネットワーク固有の通信コマンド（ネットワークインタフェース側の通信コマンド）に変換される。このため、コマンド変換部１ｋとアダプタ制御ソフトウェア１ｈとの間では、ネットワーク６を伝送する通信コマンドの体系に依存しない仮想オブジェクトモデルを用いてコマンドの受け渡しを行うことができる。その結果、ダウンロードソフトウェアであるアダプタ制御ソフトウェア１ｈは、現在接続中のネットワーク６の種類を意識することなく、コマンドの送受信が行えるという効果が発揮される。
【００５４】
実施の形態６．
図３２は、アダプタ制御ソフトウェア１ｈと、コマンド変換部１ｋの機能を示すブロック図である。アダプタ制御ソフトウェア１ｈの仮想オブジェクト変換部１ｈ−２には、コマンド変換関数ルーチンと、それを用いて機器インタフェースのコマンドを仮想オブジェクトに変換するコマンド変換処理部があり、コマンド変換部１ｋのネットワークコマンド変換部１ｋ−１には、コマンド変換テーブルと、それを用いて仮想オブジェクトをネットワークインタフェースコマンドに変換するコマンド変換処理部がある。
【００５５】
本実施の形態における機器インタフェースのコマンド体系、およびネットワークインタフェースのコマンド体系は、図１５および図１６に示すものと同じである。
また、仮想オブジェクト変換部１ｈ−２の中の、コマンド変換関数ルーチンも、図１８と同様である。
【００５６】
図３３は、仮想オブジェクト変換部１ｈ−２のコマンド変換処理部のフローチャートを示す図である。機器インタフェース送受信部１ｈ−１を介して機器インタフェースの通信コマンドを受信すると処理を開始する。ステップＳ２７１で、受信した機器インタフェースのコマンドが０ｘ３０未満の場合には、値の変換は行わない（ステップＳ２７２）。通信コマンドが０ｘ３０以上の場合は、ステップＳ２７３で、データが設定温度のため、コマンド変換関数ルーチンを用いて値の変換を行う。たとえば、通信コマンドが０ｘ３０の場合は、変換後の値は０ｘ１４となる。ステップＳ２７４では、受信した機器インタフェース側の通信コマンドを仮想オブジェクトモデルに変換する。ここでは、オブジェクトを０ｘ４０に、プロパティを通信コマンドの上位4ビットを符号なし１バイトコードに読み替えたものに、値を通信コマンドの下位４ビットを符号なし１バイトコードに読み替えたものに変換する。例えば、通信コマンドが０ｘ２１の場合は、オブジェクトが０ｘ４０、プロパティが０ｘ０２、値が０ｘ０１となる。
【００５７】
図３４は、ネットワークコマンド変換部１ｋ−１のコマンド変換テーブルを表す図である。仮想オブジェクトのオブジェクト、プロパティ、値と、ネットワークインタフェース側の通信コマンドのオブジェクト、プロパティ、値の対応を表している。例えば、仮想オブジェクトのオブジェクトが０ｘ４０、プロパティが０ｘ０２、値が０ｘ０１は、ネットワークインタフェース側の通信コマンドのオブジェクトが０ｘ４０、プロパティが０ｘ４０、値が０ｘ２０に変換される。
【００５８】
図３５は、コマンド変換ＡＰＩを使用して、コマンド変換テーブルを設定する例を示す図である。（１）がＣ言語を使用した場合、（２）が逆ポーランド記法を用いたＦＯＲＴＨ言語を使用した場合の例である。図３４のコマンド変換テーブルの１行ずつを、コマンド変換ＡＰＩを介して登録している。
【００５９】
以上の変換処理によって、機器インタフェース部１ａで受信した家電機器２固有の通信コマンドが、家電機器２で送受信される通信コマンドの体系に依存しない仮想オブジェクトモデルに変換される。同様に、ネットワーク６を介してネットワークインタフェース部１ｂで受信したネットワーク固有の通信コマンドが、コマンド変換部１ｋによって、ネットワーク６で伝送される通信コマンドの体系に依存しない仮想オブジェクトモデルに変換される。このため、コマンド変換部１ｋとアダプタ制御ソフトウェア１ｈとの間では、家電機器２で送受信される通信コマンドおよびネットワーク６を伝送する通信コマンドの体系に依存しない仮想オブジェクトモデルを用いてコマンドの受け渡しを行うことができる。その結果、ダウンロードソフトウェアであるアダプタ制御ソフトウェア１ｈは、現在接続中のネットワーク６の種類を意識することなく、コマンドの送受信が行えるという効果が発揮される。
【００６０】
実施の形態７．
図３６は、機器インタフェース１ａのコマンドがオブジェクトモデルに基づいていて、仮想オブジェクトに機器インタフェースのオブジェクトモデルを適用した場合のアダプタ制御ソフトウェア１ｈと、コマンド変換部１ｋの機能を示すブロック図である。オブジェクトモデルが等しいために、アダプタ制御ソフトウェア１ｈには仮想オブジェクト変換部１ｈ−２はなく、コマンド変換関数ルーチンのみがある。また、コマンド変換部のネットワークコマンド変換部１ｋ−１には、変換処理を実行するコマンド変換処理部と、処理の際に使用されるコマンド変換テーブルと、コマンド変換関数ルーチンを検索するためのコマンド変換関数テーブルが搭載されている。
【００６１】
本実施の形態における機器インタフェースコマンドの体系および、ネットワークインタフェースコマンドの体系は、図２７および図２８と同じである。仮想オブジェクト変換部１ｈ−２のコマンド変換関数ルーチンも図３３と同じ構成となる。
【００６２】
図３７は、本実施の形態におけるネットワークコマンド変換部１ｋ−１のコマンド変換テーブルおよびコマンド変換関数テーブルを示す図である。コマンド変換テーブルは、これまでの実施例と同じ構成である。仮想オブジェクトモデルのプロパティが０ｘ５０の場合は、値の欄に“ＦＵＮＣ１”の文字が入っていて、ＦＵＮＣ１という変換関数ルーチンを使用することを表している。
また、図３８はコマンド変換関数テーブルを示し、ＦＵＮＣ１という変換関数ルーチンは、アダプタ制御ソフトウェアの１２７行目、１例から始まるコードであることを示している。
【００６３】
これらにより、ネットワークコマンド変換部１ｋ−１のコマンド変換処理部は、プロパティが０ｘ５０であった場合には、アダプタ制御ソフトウェアの１２７行、１列目からのコードを利用して変換処理を行う。例えば、機器インタフェース側の通信コマンドのオブジェクトが０ｘ４０、プロパティが０ｘ５０、値が０ｘ１６の場合は、コマンド変換テーブルと、コマンド変換関数ルーチンを用いて、ネットワークコマンドが０ｘ３２に変換される。
【００６４】
コマンド変換部１ｋのコマンド変換テーブルおよびコマンド変換関数テーブルは、これまでの実施の形態と同様に、コマンド変換ＡＰＩを使用して設定が可能である。
【００６５】
図３９は、本実施の形態における家電機器アダプタへダウンロードするアダプタ制御ソフトウェアを自動生成する開発ソフトウェアの入力画面の例を示す図である。図２６に示すアダプタ制御ソフトウェア１ｈを生成する場合について説明する。
画面では、機器インタフェースコマンドと、仮想オブジェクト（ネットワークインタフェースコマンド）の対応を入力している。例えば、１行目は、機器インタフェースコマンドの１バイト目が０ｘ１０の時は、ネットワーク印フェースコマンドのオブジェクトはｘ０ｘ４０、プロパティは０ｘ３０、値は０ｘ１１という対応付けを行っている。
【００６６】
図４０は、アダプタ制御ソフトウェア生成ソフトウェアの機能ブロックを示す図である。
図３９の入力画面で入力が完了すると、図４０のアダプタ制御ソフトウェア生成ソフトウェアが起動され、始めに初期化モジュール生成部により、入力されたコマンド対応表から、コマンド対応表を初期化するモジュールを生成する。コマンド対応表の１列ずつを取り出し、左の列から順番に、コマンド対応表を初期化するサブルーチンの引数に入れていく。生成されたコマンド対応表初期化モジュールは、図３５のようになる。
【００６７】
図４０に戻り、モジュール結合部が、機器インタフェース部とのインタフェースモジュール、コマンド変換部とのインタフェースモジュールと、前記コマンド対応表初期化モジュールを結合して、アダプタ制御ソフトウェアを生成する。機器インタフェース部とのインタフェースモジュールは家電機器に依存したモジュールとなっているためアダプタ制御ソフトウェアを生成する際に変更する必要はない。また、コマンド変換部とのインタフェースモジュールも予め決められているため変更する必要はない。これらの変更が不要なモジュールは、アダプタ制御ソフトウェア生成部に予めテンプレートとして登録されていて、アダプタ制御ソフトウェア生成時に、モジュール結合部により利用される。
【図面の簡単な説明】
【００６８】
【図１】この発明の実施の形態１を示す家電機器アダプタの機能ブロック図である。
【図２】この発明の実施の形態１を示す家電機器アダプタのダウンロード制御部のフローチャートである。
【図３】この発明の実施の形態１を示す家電機器アダプタのメモリマップを示す図である。
【図４】この発明の実施の形態１を示す家電機器アダプタのアダプタ制御ソフトウェアの機能ブロック図である。
【図５】この発明の実施の形態１を示す家電機器アダプタのアドレステーブルを示す図である。
【図６】この発明の実施の形態１を示す家電機器アダプタによる引数の構造表現を示す図である。
【図７】この発明の実施の形態１を示す家電機器アダプタの引数の実態を示す図である。
【図８】この発明の実施の形態２を示す家電機器アダプタの機能ブロック図である。
【図９】この発明の実施の形態２を示す家電機器アダプタのダウンロード制御部のフローチャートである。
【図１０】この発明の実施の形態２を示す家電機器アダプタのメモリマップを示す図である。
【図１１】この発明の実施の形態２を示す家電機器アダプタのインタプリタＡＰＩの一例を示す図である。
【図１２】この発明の実施の形態３を示す家電機器アダプタの機能を示すブロック図である。
【図１３】アダプタ制御ソフトウェアとコマンド変換部の機能を示すブロック図である。
【図１４】アダプタ制御ソフトウェアとコマンド変換部の機能を示すブロック図である。
【図１５】家電機器と家電機器アダプタ間で通信されるコマンドおよびコントローラと家電機器アダプタ間で通信されるコマンドの体系を示す図である。
【図１６】コマンド変換部とアダプタ制御ソフトウェアとの間で通信される仮想オブジェクトモデルの体系を示す図である。
【図１７】コマンド変換テーブルの構成を示す図である。
【図１８】変換関数ルーチンの構成を示す図である。
【図１９】機器インタフェース部で受信したコマンドを仮想オブジェクトモデルに変換する際のフローチャートを示す図である。
【図２０】アダプタ制御ソフトウェアとコマンド変換部の機能を示すブロック図である。
【図２１】家電機器と家電機器アダプタ間で通信されるコマンドの体系を示す図である。
【図２２】コントローラと家電機器アダプタ間で通信されるコマンドの体系を示す図である。
【図２３】コマンド変換テーブルの構成を示す図である。
【図２４】変換関数ルーチンの構成を示す図である。
【図２５】機器インタフェース部で受信したコマンドを仮想オブジェクトモデルに変換する際のフローチャートを示す図である。
【図２６】アダプタ制御ソフトウェアとコマンド変換部の機能を示すブロック図である。
【図２７】家電機器と家電機器アダプタ間で通信されるコマンドの体系を示す図である。
【図２８】コントローラと家電機器アダプタ間で通信されるコマンドの体系を示す図である。
【図２９】コマンド変換テーブルおよびコマンド変換関数ルーチンを示す図である。
【図３０】仮想オブジェクトモデルからネットワークインタフェースコマンドへ変換する場合のコマンド変換部のフローチャートを表す図である。
【図３１】コマンド変換ＡＰＩを使用して、コマンド変換テーブル、コマンド変換関数ルーチンを設定する例を示す図である。
【図３２】アダプタ制御ソフトウェアとコマンド変換部の機能を示すブロック図である。
【図３３】仮想オブジェクト変換部のコマンド変換処理部のフローチャートを示す図である。
【図３４】ネットワークコマンド変換部のコマンド変換テーブルを表す図である。
【図３５】コマンド変換ＡＰＩを使用して、コマンド変換テーブルを設定する例を示す図である。
【図３６】アダプタ制御ソフトウェアとコマンド変換部の機能を示すブロック図である。
【図３７】コマンド変換テーブルおよびコマンド変換関数テーブルを示す図である。
【図３８】コマンド変換関数テーブルを示す図である。
【図３９】家電機器アダプタへダウンロードするアダプタ制御ソフトウェアを自動生成する開発ソフトウェアの入力画面の例を示す図である。
【図４０】アダプタ制御ソフトウェア生成ソフトウェアの機能ブロックを示す図である。
【符号の説明】
【００６９】
１  家電機器アダプタ、  １ａ  機器インタフェース部、  １ｂ  ネットワークインタフェース部、  １ｃ  汎用インタフェース部、  １ｄ  ダウンロード制御部、  １ｅ  アドレステーブル、  １ｆ  アダプタ制御ソフトウェア、  １ｆ−１  機器インタフェース制御ソフトウェア、  １ｆ−２  コマンド変換ソフトウェア、  １ｆ−３  アダプタ制御ソフトウェアアドレステーブル、  １ｇ  インタプリタ、  １ｈ  アダプタ制御ソフトウェア（インタプリタコード）、  １ｈ−１  機器インタフェース送受信部、  １ｈ−２  仮想オブジェクト変換部、  １ｉ  機器ＡＰＩ、  １ｊ  ネットワークＡＰＩ、  １ｋ  コマンド変換部、  １ｋ−１  ネットワークコマンド変換部、１ｋ−２  ネットワークインタフェース送受信部、  ２  家電機器、  ３  コントローラ、  ４  パソコン。
【図１】
2006127432.tif 000003
【図２】
2006127432.tif 000004
【図３】
2006127432.tif 000005
【図４】
2006127432.tif 000006
【図５】
2006127432.tif 000007
【図６】
2006127432.tif 000008
【図７】
2006127432.tif 000009
【図８】
2006127432.tif 000010
【図９】
2006127432.tif 000011
【図１０】
2006127432.tif 000012
【図１１】
2006127432.tif 000013
【図１２】
2006127432.tif 000014
【図１３】
2006127432.tif 000015
【図１４】
2006127432.tif 000016
【図１５】
2006127432.tif 000017
【図１６】
2006127432.tif 000018
【図１７】
2006127432.tif 000019
【図１８】
2006127432.tif 000020
【図１９】
2006127432.tif 000021
【図２０】
2006127432.tif 000022
【図２１】
2006127432.tif 000023
【図２２】
2006127432.tif 000024
【図２３】
2006127432.tif 000025
【図２４】
2006127432.tif 000026
【図２５】
2006127432.tif 000027
【図２６】
2006127432.tif 000028
【図２７】
2006127432.tif 000029
【図２８】
2006127432.tif 000030
【図２９】
2006127432.tif 000031
【図３０】
2006127432.tif 000032
【図３１】
2006127432.tif 000033
【図３２】
2006127432.tif 000034
【図３３】
2006127432.tif 000035
【図３４】
2006127432.tif 000036
【図３５】
2006127432.tif 000037
【図３６】
2006127432.tif 000038
【図３７】
2006127432.tif 000039
【図３８】
2006127432.tif 000040
【図３９】
2006127432.tif 000041
【図４０】
2006127432.tif 000042