JP6109997B1 - ソフトウェア生成システム、情報処理装置およびプログラム - Google Patents

ソフトウェア生成システム、情報処理装置およびプログラム Download PDF

Info

Publication number
JP6109997B1
JP6109997B1 JP2016146801A JP2016146801A JP6109997B1 JP 6109997 B1 JP6109997 B1 JP 6109997B1 JP 2016146801 A JP2016146801 A JP 2016146801A JP 2016146801 A JP2016146801 A JP 2016146801A JP 6109997 B1 JP6109997 B1 JP 6109997B1
Authority
JP
Japan
Prior art keywords
code
target device
control target
information
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016146801A
Other languages
English (en)
Other versions
JP2018018227A (ja
Inventor
杉浦 隆幸
隆幸 杉浦
昌也 上床
昌也 上床
成海 平井
成海 平井
由基 水野
由基 水野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NetAgent Co Ltd
Original Assignee
NetAgent Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NetAgent Co Ltd filed Critical NetAgent Co Ltd
Priority to JP2016146801A priority Critical patent/JP6109997B1/ja
Application granted granted Critical
Publication of JP6109997B1 publication Critical patent/JP6109997B1/ja
Publication of JP2018018227A publication Critical patent/JP2018018227A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】制御対象機器の通信機能を制御して当該制御対象機器を制御する命令を受け付けたり当該制御対象機器から情報を出力したりさせるソフトウェアを簡易に生成する。【解決手段】ファームウェア生成システムは、制御対象機器の情報を受け付けて当該制御対象機器の通信機能を制御するためのソフトウェアを生成するファームウェア生成サーバ20と、制御対象機器の情報をファームウェア生成サーバ20に送信する利用者端末と、を備える。利用者端末は、制御対象機器の情報をファームウェア生成サーバ20へ送信し、ファームウェア生成サーバ20は、利用者端末から送信された制御対象機器の情報を予め定められた第1のコードのフォーマットに適用して第1のコードを生成するソースコード生成部22と、ソースコード生成部22により生成された第1のコードおよび予め用意された第2のコードに基づいて、制御対象機器の通信機能を制御するソフトウェアを生成するファームウェア生成部23と、を備える。【選択図】図5

Description

本発明は、ソフトウェア生成システム、情報処理装置およびプログラムに関する。
近年、インターネットの普及に伴い、あらゆるものをネットワークに接続するIoT(Internet of Things)という概念が提案されている。例えば家電等の電気機器をネットワークに接続し、これらの電気機器を制御する技術が知られている。
例えば、エアコンディショナ等の家電を制御する技術として、特許文献1には、電気機器に制御信号を送信するためのコントローラであって、携帯端末から送信された電気機器に対する指示を、サーバから受信するための通信部と、電気機器に対する制御信号を記憶するための記憶部と、プロセッサとを備え、プロセッサは、通信部から受信した電気機器に対する指示を電気機器に送信するとともに、サーバとの接続が継続されていないと判断した場合には、電気機器に対して、記憶部に記憶された制御信号であって、当該電気機器の特定の状態に対応する制御信号を送信するように構成されている、コントローラが開示されている。
また、例えば、照明器具を制御する技術として、特許文献2には、外部機器から照明光の制御を行う情報を含む制御信号を無線方式または有線方式により受信する通信部と通信部が受信した制御信号を点灯制御信号に変換する信号変換部とを有する通信ユニットと、光源を点灯させる点灯回路部と点灯制御信号に基づいて点灯回路部を制御する点灯制御部とを有する点灯ユニットと、を備え、点灯ユニットと接続する通信ユニットは、外部機器が送信する制御信号の信号方式に応じて通信方式が異なる通信ユニットと交換可能なことを特徴とする点灯装置が開示されている。
特開2015−198424号公報 特開2015−109196号公報
家電等の電気機器をネットワークに接続させ、このネットワークを介して電気機器を外部から制御したり、電気機器から情報を出力させたりするには、この電気機器に通信機能を持たせ、電気機器の制御装置やセンサとの間で情報交換を行うことが必要となる。そして、電気機器には多くの種類が存在し、様々な機能が設けられているため、電気機器の通信機能を制御するソフトウェアは、制御しようとする電気機器の種類や機能に応じて個別に生成されていた。このようなソフトウェアを人手で生成する作業には、一般に、非常に多くの時間と手間がかかる。そのため、かかるソフトウェアを手軽に生成する手段の提供が望まれていた。
本発明の目的は、制御対象機器の通信機能を制御して当該制御対象機器を制御する命令を受け付けたり当該制御対象機器から情報を出力したりさせるソフトウェアを簡易に生成することを目的とする。
かかる目的のもと、本発明は、制御対象機器の情報を受け付けて当該制御対象機器の通信機能を制御するためのソフトウェアを生成するサーバと、前記制御対象機器の情報を前記サーバに送信する端末装置と、を備え、前記サーバは、前記端末装置から送信された前記制御対象機器の情報を予め定められた第1のコードのフォーマットに適用して第1のコードを生成するコード生成部と、前記コード生成部により生成された前記第1のコードおよび予め用意された第2のコードに基づいて、前記制御対象機器の通信機能を制御するソフトウェアを生成するソフトウェア生成部と、を備えることを特徴とする、ソフトウェア生成システムを提供する。
また、前記端末装置は、前記制御対象機器に関して前記ソフトウェアを生成するために特定を要する項目をメニュー表示する表示手段と、前記表示手段により表示されたメニューに基づき、前記項目を選択することにより前記制御対象機器の情報を入力する操作を受け付ける操作受け付け手段と、を備えることを特徴とする。
さらに、本発明は、制御対象機器の情報を受け付ける受付部と、予め定められた第1のコードのフォーマットを格納したフォーマット格納部と、予め定められた第2のコードを格納したコード格納部と、前記受付部により受け付けた前記制御対象機器の情報を前記フォーマット格納部に格納された前記第1のコードのフォーマットに適用して第1のコードを生成するコード生成部と、前記コード生成部により生成された前記第1のコードおよび前記コード格納部から読み出した前記第2のコードに基づいて、前記制御対象機器の通信機能を制御するソフトウェアを生成するソフトウェア生成部と、を備えることを特徴とする、情報処理装置を提供する。
また、前記受付部により受け付けた前記制御対象機器の情報は、当該制御対象機器の種類および特定の機能の情報を含み、前記コード生成部により生成される前記第1のコードは、前記制御対象機器の種類および前記特定の機能を前記第1のコードのフォーマットに則って記述したコードであり、前記コード格納部に格納された前記第2のコードは、前記第1のコードを参照して実行する手続きが記述された、記述内容が前記制御対象機器の種類および当該制御対象機器の機能によらない固定的なコードであることを特徴とする。
さらに、前記コード格納部に格納された前記第2のコードは、前記制御対象機器の通信機能を制御し、当該制御対象機器の機能を実現する機能実現手段のうち、前記第1のコードに記述された機能についての機能実現手段との間で情報交換を行うための手続きが記述されたコードであることを特徴とする。
そして、本発明は、コンピュータを、制御対象機器の情報を受け付ける受付手段と、記憶装置から予め定められた第1のコードのフォーマットを読み出し、前記受付手段により受け付けた前記制御対象機器の情報を当該第1のコードのフォーマットに適用して第1のコードを生成するコード生成手段と、記憶装置から予め定められた第2のコードを読み出し、当該第2のコードおよび前記コード生成手段により生成された前記第1のコードに基づいて、前記制御対象機器の通信機能を制御するソフトウェアを生成するソフトウェア生成手段として、機能させることを特徴とする、プログラムを提供する。
本発明によれば、制御対象機器の通信機能を制御して当該制御対象機器を制御する命令を受け付けたり当該制御対象機器から情報を出力したりさせるソフトウェアを簡易に生成することができる。
本実施の形態の背景について説明するための図である。 本実施の形態に係るファームウェア生成システムの全体構成例を示した図である。 本実施の形態に係るファームウェア生成サーバ又は利用者端末として用いられるコンピュータのハードウェア構成例を示す図である。 本実施の形態に係る利用者端末の機能構成例を示したブロック図である。 本実施の形態に係るファームウェア生成サーバの機能構成例を示したブロック図である。 利用者入力情報の一例を示す図である。 (a)〜(c)は、利用者入力情報を入力する際に表示される画面の一例を示す図である。 (a)〜(c)は、利用者入力情報を入力する際に表示される画面の一例を示す図である。 (a),(b)は、利用者入力情報を入力する際に表示される画面の一例を示す図である。 (a),(b)は、利用者入力情報を入力する際に表示される画面の一例を示す図である。 (c)〜(e)は、利用者入力情報を入力する際に表示される画面の一例を示す図である。 (a),(b)は、利用者入力情報を入力する際に表示される画面の一例を示す図である。 利用者入力情報の変換に用いられるキーの一例を示す図である。 (a)は、サーバ送信用データに適用されるソースコード生成用フォーマットの一例を示す図である。(b)は、ソースコード(データ部)の一例を示す図である。 (a),(b)は、ファームウェア生成部により生成されるファームウェアのコードの一例を示す概念図である。 ファームウェア生成システムにおいてファームウェアを生成する処理手順の一例を示したフローチャートである。
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
<背景>
まず、本実施の形態の背景について説明する。
近年、例えば家電等の電気機器をネットワークに接続し、これらの電気機器を制御するために、ホームネットワーク用の通信規格の業界標準化が進められている。そして、複数のメーカーで共通的に使用される通信規格が作成され、マルチベンダでの相互接続環境が整備されつつある。このような共通の通信規格には、例えばECHONET Lite(登録商標)があり、一般社団法人エコーネットコンソーシアムによって標準化が図られている。このような通信規格を用いることにより、ユーザの操作によって家電等の電気機器を制御することができる。
図1は、本実施の形態の背景について説明するための図である。端末装置100は、ユーザが使用する端末であり、例えば、PC(personal computer)や携帯情報端末(いわゆる、スマートフォンやタブレット端末等)などを例示することができる。電気機器200は、制御対象の電気機器であり、例えば、エアコンディショナや照明器具、冷蔵庫などの家電を例示することができる。ネットワーク300は、端末装置100と電気機器200との間の情報通信に用いられる通信手段であり、例えば、インターネットを例示することができる。
このような構成において、ユーザが端末装置100を操作することにより、ネットワーク300を介して端末装置100から電気機器200を制御したり、電気機器200から端末装置100へ情報を送信させたりするには、電気機器200に通信機能を持たせ、電気機器200の制御装置やセンサとの間で情報交換を行うことが必要になる。そこで、電気機器200の通信機能を制御して、電気機器200を制御する命令を受け付けたり電気機器200から情報を出力したりさせるためのソフトウェアが用いられる。このようなソフトウェアをインストールした通信制御基板400を電気機器200に搭載することにより、電気機器200の通信機能の制御が行われる。なお、電気機器200の通信機能の制御については、通信制御基板400を搭載することにより新たに電気機器200に備えられた通信機能を制御する場合もあれば、通信制御基板400の搭載前から電気機器200に備えられている通信機能を制御する場合もあるものとする。
さらに説明すると、図1に示すように、通信制御基板400には、上述したような電気機器200の通信機能を制御するためのソフトウェアである家電制御用ソフトウェアに加えて、通信モジュール制御用ソフトウェアおよび通信モジュールが含まれる。この通信モジュールとしては、例えばBluetooth(登録商標)モジュールを用いることができる。ここで、Bluetoothモジュールは、無線通信規格のモジュールであり、端末装置100のような外部機器と無線通信を行うためのものである。なお、本実施の形態では、Bluetoothモジュールを用いた構成に限られるものではなく、例えば、Wi−Fi(Wireless Fidelity)(登録商標)、Zigbeeなどの他の無線通信規格のモジュールを用いても良い。さらに、無線通信規格のモジュールを用いる構成に限られず、有線の通信規格を備えたモジュールを用いても良い。また、通信モジュール制御用ソフトウェアは、家電制御用ソフトウェアとBluetoothモジュールとの間でデータの送受信を行うためのソフトウェアである。図示の例では、通信モジュール制御用ソフトウェアにおけるプロトコルの一例として、IPv6(Internet Protocol Version 6)、6LoWPAN(IPv6 over Low power Wireless Personal Area Networks)を用いている。なお、通信モジュール制御用ソフトウェアにて用いるプロトコルについても、IPv6、6LoWPAN等のプロトコルに限られるものではなく、家電制御用ソフトウェアがデータの送受信を行うために使用可能なプロトコルであれば、どのようなプロトコルを用いても良い。
このように構成された通信制御基板400は、家電制御用ソフトウェアの制御により、端末装置100からの制御信号を受け付けて電気機器200の機能実行手段を制御したり、機能実行手段から取得した情報を端末装置100へ出力したりする。ここで、機能実行手段としては、電気機器200の各種の機能を制御する制御装置、種々の動作を実行するアクチュエータ、電気機器200の動作に関する情報を取得する種々のセンサ等を例示することができる。例えば、電気機器200がエアコンディショナの場合について説明する。エアコンディショナ内には、独自の機能プログラムにより、例えば温度を設定したり風量を設定したりするための制御装置が予め搭載されている。そして、家電制御用ソフトウェアにより制御される通信制御基板400が、端末装置100から受信した温度設定命令や風量設定命令を制御装置に送って温度や風量の設定をさせたり、センサから温度や風量の設定値や測定値を取得して端末装置100へ送信したりすることができるようになる。
そして、本実施の形態では、ユーザが画面に従って入力することにより、上述したような電気機器の通信機能を制御するための家電制御用ソフトウェアを生成するソフトウェア生成システムを提供する。また、本実施の形態では、電気機器の通信機能を制御するためのソフトウェアの一例として、電気機器の通信機能を制御するために電気機器に組み込まれるソフトウェアであるファームウェアを例にして説明する。
なお、以下では、特に家電を制御するための通信規格であるECHONET Liteを用いて説明するが、このような構成に限られるものではない。本実施の形態に係るファームウェア生成システム1は、ECHONET Lite以外の他の通信規格を用いて、家電を含む種々の電気機器を制御する場合にも適用することができる。また、以下では、ファームウェア生成システム1により生成される家電制御用のファームウェアを、単に「ファームウェア」と称する場合がある。
<ファームウェア生成システムの全体構成>
次に、本実施の形態に係るファームウェア生成システム1の全体構成について説明する。図2は、本実施の形態に係るファームウェア生成システム1の全体構成例を示した図である。図示するように、このファームウェア生成システム1は、利用者端末10とファームウェア生成サーバ20とがネットワーク30を介して接続されることにより構成される。
利用者端末10は、ファームウェア生成システム1を利用する利用者が操作するコンピュータ装置であり、例えば、PCや携帯情報端末等が例示される。この利用者端末10は、ファームウェアを生成するために利用者が入力した情報(以下、利用者入力情報と称する)を受け付ける。この利用者入力情報には、例えば、ファームウェアがインストールされた通信制御基板400(図1参照)により実現される通信機能を介して制御しようとする対象の機器(以下、対象機器と称する)の種類を指定する情報や、対象機器における制御しようとする機能を指定する情報が含まれる。そして、利用者端末10は、受け付けた利用者入力情報をファームウェア生成サーバ20にて識別可能(処理可能)な形式へ変換して、ファームウェア生成サーバ20へ送信する。以下では、利用者入力情報に変換を施した変換後のデータを、「サーバ送信用データ」と称する。本実施の形態では、制御対象機器の情報をサーバに送信する端末装置の一例として、利用者端末10が用いられる。
情報処理装置の一例としてのファームウェア生成サーバ20は、対象機器の通信機能を制御するためのファームウェアを生成するコンピュータ装置であり、例えば、PC、ワークステーション等が例示される。このファームウェア生成サーバ20は、利用者端末10から受信したサーバ送信用データを基に、ファームウェアを生成する。本実施の形態では、制御対象機器の通信機能を制御するためのソフトウェアを生成するサーバの一例として、ファームウェア生成サーバ20が用いられる。
ネットワーク30は、利用者端末10とファームウェア生成サーバ20との間の情報通信に用いられる通信手段であり、例えば、インターネット、LAN(Local Area Network)等である。
<ハードウェア構成>
次に、本実施の形態に係るファームウェア生成サーバ20および利用者端末10のハードウェア構成について説明する。図3は、本実施の形態に係るファームウェア生成サーバ20又は利用者端末10として用いられるコンピュータのハードウェア構成例を示す図である。
図示するように、ファームウェア生成サーバ20は、演算手段であるCPU(Central Processing Unit)20aと、主記憶手段であるメモリ20cを備える。また、外部デバイスとして、磁気ディスク装置(HDD:Hard Disk Drive)20g、ネットワークインタフェース20f、ディスプレイ装置を含む表示機構20d、音声機構20h、キーボードやマウス等の入力デバイス20i等を備える。
図3に示す構成例では、メモリ20cおよび表示機構20dは、システムコントローラ20bを介してCPU20aに接続されている。また、ネットワークインタフェース20f、磁気ディスク装置20g、音声機構20hおよび入力デバイス20iは、I/Oコントローラ20eを介してシステムコントローラ20bと接続されている。各構成要素は、システム・バスや入出力バス等の各種のバスによって接続される。
また、図3において、磁気ディスク装置20gにはOSのプログラムやアプリケーション・プログラムが格納されている。そして、これらのプログラムがメモリ20cに読み込まれてCPU20aに実行されることにより、ファームウェア生成サーバ20の各種機能が実現される。
なお、図3は、本実施の形態が適用されるのに好適なコンピュータのハードウェア構成を例示するに過ぎない。本実施の形態は、ファームウェアを生成する装置に広く適用できるものであり、図示の構成においてのみ本実施の形態が実現されるのではない。
<利用者端末の機能構成>
次に、利用者端末10の機能構成について説明する。図4は、本実施の形態に係る利用者端末10の機能構成例を示したブロック図である。
図示するように、利用者端末10は、利用者が入力した利用者入力情報を受け付ける入力情報受付部11と、受け付けた利用者入力情報をサーバ送信用データへ変換するデータ変換部12と、サーバ送信用データをファームウェア生成サーバ20へ送信するデータ送信部13とを備える。
入力情報受付部11は、利用者が入力した利用者入力情報を受け付ける。より具体的には、利用者は、例えば利用者端末10の表示機構により表示画面に表示される画面上で、対象機器を選択したり、対象機器において制御しようとする機能を選択したりすることにより、利用者入力情報を入力する。付言すると、対象機器に関してファームウェアを生成するために特定を要する項目がメニュー表示されるため、利用者は、表示されたメニューに基づき項目を選択して情報を入力すれば良い。利用者入力情報、および利用者入力情報を入力する際の画面の詳細については、後述する。本実施の形態では、入力情報受付部11は、表示手段、操作受け付け手段の一例として捉えることもできる。
データ変換部12は、入力情報受付部11が受け付けた利用者入力情報を、サーバ送信用データへ変換する。サーバ送信用データの詳細については、後述する。
データ送信部13は、データ変換部12により生成されたサーバ送信用データを、ファームウェア生成サーバ20へ送信する。
なお、図4に示す利用者端末10を構成する各機能部は、ソフトウェアとハードウェア資源とが協働することにより実現される。具体的には、利用者端末10を図3に示したコンピュータにて実現した場合、例えば、磁気ディスク装置20gに格納されているOSのプログラムやアプリケーション・プログラムが、メモリ20cに読み込まれてCPU20aに実行されることにより、入力情報受付部11、データ変換部12、データ送信部13の各機能が実現される。
<ファームウェア生成サーバの機能構成>
次に、ファームウェア生成サーバ20の機能構成について説明する。図5は、本実施の形態に係るファームウェア生成サーバ20の機能構成例を示したブロック図である。
図示するように、ファームウェア生成サーバ20は、主にデータの処理に関わる機能部として、サーバ送信用データを受け付けるデータ受付部21と、サーバ送信用データを基に、後述するソースコード(データ部)を生成するソースコード生成部22と、ソースコード(データ部)と後述するソースコード(手続き部)とを結合してファームウェアを生成するファームウェア生成部23とを備える。また、ファームウェア生成サーバ20は、主にデータの格納に関わる機能部として、後述するソースコード生成用フォーマットを格納するフォーマット格納部24と、ソースコード(手続き部)を格納するソースコード格納部25とを備える。
データ受付部21は、利用者端末10からサーバ送信用データを受け付ける。本実施の形態では、制御対象機器の情報を受け付ける受付部の一例として、データ受付部21が用いられる。
ソースコード生成部22は、フォーマット格納部24から、ソースコード(データ部)を生成するために使用するフォーマット(以下、ソースコード生成用フォーマットと称する)を取得する。そして、ソースコード生成部22は、サーバ送信用データをソースコード生成用フォーマットに適用し、ソースコード生成用フォーマットに適合するようにサーバ送信用データを変換して、ソースコード(データ部)を生成する。ソースコード生成部22がソースコード(データ部)を生成する処理の詳細については、後述する。本実施の形態では、予め定められた第1のコードのフォーマットの一例として、ソースコード生成用フォーマットが用いられる。また、第1のコードの一例として、ソースコード(データ部)が用いられる。さらに、第1のコードを生成するコード生成部の一例として、ソースコード生成部22が用いられる。
ファームウェア生成部23は、ソースコード格納部25から、予め定められたコードであるソースコード(手続き部)を取得する。このソースコード(手続き部)は、ソースコード(データ部)を参照して実行する手続きが記述されたコードである。さらに説明すると、このソースコード(手続き部)は、ソースコード(データ部)に記述された対象機器の機能を実現する機能実現手段との間で情報交換を行うための手続きが記述されたコードである。
そして、ファームウェア生成部23は、取得したソースコード(手続き部)と、ソースコード生成部22により生成されたソースコード(データ部)とを結合して、ファームウェアのソースコードを生成する。また、ファームウェア生成部23は、生成したソースコードをコンパイルして、ファームウェアを生成する。そして、ファームウェア生成部23は、生成したファームウェアを利用者端末10へ送信する。本実施の形態では、予め用意された第2のコードの一例として、ソースコード(手続き部)が用いられる。また、制御対象機器の通信機能を制御するソフトウェアを生成するソフトウェア生成部の一例として、ファームウェア生成部23が用いられる。
付言すると、ソースコード生成部22が生成するソースコード(データ部)は、利用者が入力した利用者入力情報に応じて内容が変わる。一方で、ソースコード(手続き部)は、利用者が入力した利用者入力情報によらず一定である。言い換えると、ソースコード(手続き部)は、その記述内容が対象機器の種類および対象機器の機能によらない固定的なコードである。即ち、ソースコード(手続き部)は、ソースコード(データ部)がどのような内容であっても対応できるように、予め定められている。ソースコード(手続き部)の詳細については、後述する。
フォーマット格納部24は、ソースコード生成用フォーマットを格納する。本実施の形態では、第1のコードのフォーマットを格納したフォーマット格納部の一例として、フォーマット格納部24が用いられる。
ソースコード格納部25は、ソースコード(手続き部)を格納する。本実施の形態では、第2のコードを格納したコード格納部の一例として、ソースコード格納部25が用いられる。
なお、図5に示すファームウェア生成サーバ20を構成する各機能部は、ソフトウェアとハードウェア資源とが協働することにより実現される。具体的には、ファームウェア生成サーバ20を図3に示したコンピュータにて実現した場合、磁気ディスク装置20gに格納されているOSのプログラムやアプリケーション・プログラムが、メモリ20cに読み込まれてCPU20aに実行されることにより、データ受付部21、ソースコード生成部22、ファームウェア生成部23の各機能が実現される。また、フォーマット格納部24、ソースコード格納部25は、メモリ20cや磁気ディスク装置20g等の記憶手段により実現される。
<利用者入力情報の説明>
次に、利用者が画面上で入力する利用者入力情報について説明する。図6は、利用者入力情報の一例を示す図である。図示の例は、対象機器が「単機能照明」の場合の利用者入力情報である。「単機能照明」とは、電源のON・OFF設定や照度レベル設定等の単純な機能しか持たない照明機器である。
より具体的には、「機器種別」は、対象機器の種別を示す。図示の例では「単機能照明」を示している。「機能種別」は、対象機器において制御しようとする機能の種別を示す。図示の例では「動作状態」の機能を示している。「動作状態」とは、電源のON・OFF設定の機能である。「命令種別」は、該当機能において使用する命令の種別を示す。図示の例では、「動作状態」の機能において、取得命令(即ち、単機能照明から情報を取得する命令)、操作命令(即ち、単機能照明を操作する命令)を使用することを示している。
「インタフェース種別」は、ファームウェアと対象機器(ここでは、単機能照明)との間のインタフェースの種別を示す。そして、「取得用」は、取得命令にて用いられるインタフェースの種別を示し、「操作用」は、操作命令にて用いられるインタフェースの種別を示す。さらに、「ピンタイプ」は、インタフェースにおけるピンの入出力を示す。「I/O関数」は、インタフェースにて対象機器から値を読み込む場合の手続き(又は、対象機器に値を書き込む場合の手続き)を定めた関数を示す。「変数」は、インタフェースに関する変数であり、インタフェースのピンタイプによって、変数の種類や数は変化する。
図示の例では、取得用のインタフェースは「GPIO(General Purpose Input/Output)」であり、「GET_GPIO」の関数を使用する。また、ピンタイプが「GPIO」の場合、「変数」はインタフェースにて用いるピン番号になる。そこで、「PIN27」のピン(ピン番号が27番のピン)を指定している。また、操作用のインタフェースも「GPIO」であり、「SET_GPIO」の関数を使用し、「PIN27」のピンを指定している。
ただし、本実施の形態において、利用者入力情報は、図6に示す構成に限られるものではない。例えば、Bluetooth、Wi−Fi、Zigbeeなどの無線通信規格のモジュールを利用者が選択して、利用者入力情報として入力しても良い。
<利用者入力情報を入力する際の画面の説明>
次に、利用者入力情報を入力する際に表示される画面について説明する。図7〜図11は、利用者入力情報を入力する際に表示される画面の一例を示す図である。ここでは、対象機器が「電動ブラインド・日よけ」という家電の場合について説明する。
まず、利用者が利用者端末10からファームウェア生成サーバ20にアクセスすると、ファームウェア生成サーバ20から画面の情報が送信される。そして、利用者端末10にて利用者入力情報を入力するための画面が表示される。ここでは、まず、図7(a)に示す画面が表示される。図示のように、「センサ関連機器」、「空調関連機器」、「住宅・設備関連機器」など、機器のグループが一覧で示される。これらのグループについては、ECHONET Liteで規定されている。
次に、利用者が例えば「住宅・設備関連機器」のボタン1Aを選択すると、図7(b)に示す画面が表示される。ここでは、「電動ブラインド・日よけ」、「電動シャッター」、「電動雨戸・シャッター」など、「住宅・設備関連機器」のグループに含まれる機器が一覧で示される。各グループにどのような機器が分類されるかについては、ECHONET Liteで規定されている。利用者は、この一覧の中から「電動ブラインド・日よけ」のボタン1Bを選択すれば良い。なお、ここで選択される「電動ブラインド・日よけ」の情報は、図6に示す利用者入力情報の中の「機器種別」に対応する情報である。
利用者が「電動ブラインド・日よけ」を選択すると、次に、図7(c)に示す画面が表示される。この画面は、対象機器(ここでは、電動ブラインド・日よけ)の情報(デバイス情報)の入力を受け付ける画面である。入力される情報は、「メーカーコード」、「事業場コード」、「商品コード」、「製造番号」、「製造年月日」である。「メーカーコード」は、対象機器のメーカーコードであり、エコーネットコンソーシアムより付与される。「事業場コード」は、各メーカーの事業場のコードであり、メーカー毎に規定されている。「商品コード」は、商品毎(機器毎)のコードであり、メーカー毎に規定されている。「製造番号」は、各商品(各機器)に付与される製造番号であり、メーカー毎に規定されている。「製造年月日」は、対象機器を製造した日付であり、メーカー毎に規定されている。なお、ここで選択される情報については図6の例には示していないが、これらの情報も、利用者入力情報としてファームウェア生成サーバ20に送信される。
利用者がこれらの情報を入力すると、次に、図8(a)に示す画面が表示される。ここでは、オプションとして選択可能な必須項目(以下、オプション必須と称する)が示される。このオプション必須は、機器の種別(例えば、電動ブラインド・日よけ)毎にECHONET Liteで規定されている項目である。図示の例では「エネルギー」、「快適生活支援」という2つのオプション必須が示されている。例えば、利用者が「エネルギー」の項目1Cを選択すると、以降の設定において、エネルギーの消費を抑制する機能を制御するための設定が行われる。
利用者がオプション必須の選択可否を入力すると、次に、図8(b)に示す画面が表示される。ここでは、対象機器に対する操作項目が一覧で示される。言い換えると、対象機器において制御しようとする機能として選択可能な機能が、操作項目として一覧で示される。利用者は、この一覧の中から、対象機器において制御しようとする機能を選択(チェック)すれば良い。
ここで、操作項目によっては、すでに選択済み(チェック済み)で変更できないようになっている項目(以下、必須項目と称する)も存在する。図示の例では、「動作状態」、「異常発生状態」、「開閉動作設定」が必須項目であり、選択済みになっている。この必須項目についても、機器の種別(例えば、電動ブラインド・日よけ)毎にECHONET Liteで規定されている。即ち、例えば「電動ブラインド・日よけ」については、「動作状態」、「異常発生状態」、「開閉動作設定」の機能が必須であることがECHONET Liteで規定されているといえる。なお、ここで選択される「動作状態」、「異常発生状態」、「開閉動作設定」などの操作項目の情報は、図6に示す利用者入力情報の中の「機能種別」に対応する情報である。
利用者が操作項目を選択すると、次に、図8(c)に示す画面が表示される。この画面は、操作項目毎に、「取得」、「操作」、「状態変更時通知」を実装するか否か(実装又は未実装)を選択する画面である。ここで、「取得」、「操作」、「状態変更時通知」を実装するか否かの情報は、図6に示す利用者入力情報の中の「命令種別」に対応する情報である。即ち、「取得」は、単機能照明から情報を取得する命令を示す。「操作」は、単機能照明を操作する命令を示す。なお、「状態変更時通知」は、対象機器が自機の状態変更を通知する命令を示す。この命令は、対象機器の状態が変化した場合に、状態が変更したことを対象機器から自発的に外部の機器に通知するための命令である。
そして、画面上では、各操作項目の「取得」、「操作」、「状態変更時通知」に設けられた円の図形を左右に移動させることにより、実装するか否かの選択が行われる。例えば、「動作状態」の「取得」では、円の図形1Dが右に移動した状態にあり、「実装」が選択されている。一方、「動作状態」の「操作」では、円の図形1Eが左に移動した状態にあり、「未実装」が選択されている。ここで、利用者が「実装」を選択する場合には、円の図形1Eを図中右方向に移動させれば良い。
なお、ECHONET Liteの規定により、「実装」、「未実装」の設定が固定で決まっており、変更できない項目も存在する。図示の例では、「動作状態」の「取得」、「状態変更時通知」では、円の図形を移動させることはできず、「実装」で固定されている。同様に、「異常発生状態」の「取得」、「状態変更時通知」は「実装」で固定されており、「操作」は「未実装」で固定されている。さらに、「開閉動作設定」の「取得」、「操作」、「状態変更時通知」は「実装」で固定されている。付言すると、利用者が、例えば、「動作状態」の「取得」の項目にある図形1Dを選択すると、図9(a)に示す画面が表示される。図9(a)の画面では、「実装」、「未実装」の設定変更が禁止されている旨のメッセージが示されている。
そして、利用者が各操作項目の「取得」、「操作」、「状態変更時通知」について「実装」、「未実装」の選択を完了すると、次に、図9(b)に示す画面が表示される。この画面は、「実装」が選択された操作項目についての設定を行う画面である。図8(c)に示す例では、「動作状態」の「取得」および「状態変更時通知」、「異常発生状態」の「取得」および「状態変更時通知」、「開閉動作設定」の「取得」、「操作」および「状態変更時通知」、の合計7つの操作項目で「実装」が選択されている。そこで、図9(b)に示す画面上では、これらの7つの項目についての設定が行われる。
例えば、「動作状態」の「取得」について設定を行う場合、利用者が図9(b)に示す設定ボタン1Fを選択すると、図10−1(a)に示す画面が表示される。ここでは、「ピンタイプ」、「関数(処理関数)」、「変数」の設定が行われる。ここで設定される「ピンタイプ」、「関数」、「変数」の情報は、図6に示す利用者入力情報の中の「インタフェース種別」の各項目に対応する情報である。
そして、図10−1(b)に示すように、ピンタイプとしては、例えば、「未接続」、「GPIO」、「SPI(Serial Peripheral Interface)」、「I2C(Inter-Integrated Circuit)」、「IR(Infrared)」が候補として表示され、利用者は表示された候補の中から使用するピンタイプを選択すれば良い。また、図10−2(c)に示すように、関数についても1又は複数の候補が表示され、利用者は表示された候補の中から使用する関数を選択すれば良い。さらに、図10−2(d)に示すように、変数についても1又は複数の候補が表示される。図示の例では、変数としてピン番号の候補が示されている。例えば、ピン番号の27番を選択する場合、利用者は「PIN27」を選択すれば良い。最終的には、図10−2(e)に示すように、選択した各項目の内容が表示される。利用者は、表示された内容で問題なければ「完了」のボタン1Gを選択する。このようにして、「動作状態」の「取得」についての設定が行われる。
同様に、「異常発生状態」の「取得」、「開閉動作設定」の「取得」および「操作」についても、「ピンタイプ」、「関数」、「変数」の設定が行われる。
また、「状態変更時通知」については、対象機器が自機の状態の変更有無を確認する間隔(ポーリング間隔)の設定が行われる。このポーリング間隔の設定により、対象機器は、ポーリング間隔毎に自機の状態の変更有無を確認し、状態変更がある場合には外部の機器へ通知するように制御される。図11(a)に示す例では、利用者の入力によりポーリング間隔が100ミリ秒として設定されている。
そして、利用者は、全ての操作項目(ここでは、7つの操作項目)の設定を行った後、「FINISH」のボタン1Hを選択すると、利用者入力情報の入力が完了し、図11(b)に示す画面が表示される。
<サーバ送信用データの説明>
次に、図12を参照しながら、利用者端末10のデータ変換部12が生成するサーバ送信用データについて説明する。ここでは、データ変換部12が、図6に示す利用者入力情報を変換して、サーバ送信用データを生成するものとして説明する。
図12は、利用者入力情報の変換に用いられるキーの一例を示す図である。このようなキーは、ECHONET Liteにて規定されている。また、本実施の形態において独自に規定したキーも存在する。図12に示すキーのうち、「0x0201」、「0x0001」のキーは、本実施の形態において独自に規定したキーであり、その他のキーはECHONET Liteにて規定されたものである。
より具体的には、「0x02」のキーは、「単機能照明」のclass_groupコードを意味し、「単機能照明」が属しているグループである「住宅・設備関連機器」のキーを示す。「0x91」のキーは、「単機能照明」のclassコードを意味し、「単機能照明」のキーを示す。「0x01」のキーは、「単機能照明」のinstanceコードを意味し、対象機器を一意に識別するために付与されるキーである。instanceコードが付与されることにより、1つのファームウェアで複数の対象機器の通信機能を制御する場合であっても、ファームウェアにてそれぞれの対象機器を識別できるようになる。
また、「0x80」のキーは、「単機能照明」のpropertyコードを意味し、「単機能照明」の機能種別である「動作状態」を意味するキーである。「get」のキーは、命令種別である「取得」を意味するキーである。「set」のキーは、命令種別である「操作」を意味するキーである。「0x0201」のキーは、GPIOで用いられる取得用のI/O関数のコードを意味するキーである。「0x0001」のキーは、GPIOで用いられる操作用のI/O関数のコードを意味するキーである。「27」は、インタフェースで用いられるピン番号を意味するキーである。「GPIO」は、インタフェースで用いられるピンの入出力(GPIO)を意味するキーである。
そして、サーバ送信用データは、図12に示すキーを用いて、図6に示す利用者入力情報を変換することにより生成される。
より具体的には、例えば、サーバ送信用データには、「住宅・設備関連機器」、「単機能照明」のキーである「0x02」、「0x91」のキーの情報が含まれている。これは、図6に示す利用者入力情報の「機器種別」の「単機能照明」の情報に対応する。また、例えば、GPIOで用いられる取得用のI/O関数のキーである「0x0201」のキーの情報が含まれている。さらに、例えば、GPIOで用いられる操作用のI/O関数のキーである「0x0001」のキーの情報が含まれている。これらは、図6の利用者入力情報の「I/O関数」の「GET_GPIO」、「SET_GPIO」の情報に対応する。その他、サーバ送信用データには、図12に示す「0x01」、「0x80」、「get」、「set」、「27」、「GPIO」のキーの情報が含まれている。
このようにして、データ変換部12は、キーを用いて利用者入力情報を変換し、サーバ送信用データを生成する。なお、図12に示すような各種のキーの一覧は、例えば、利用者端末10が利用者入力情報を入力するための画面を読み込む際に、ファームウェア生成サーバ20から利用者端末10へ送信される。
<ソースコード生成部による処理の説明>
次に、図13(a)、(b)を参照しながら、ソースコード生成部22による処理について説明する。ここでは、ソースコード生成部22が、図12に示すキーを基に生成されるサーバ送信用データからソースコード(データ部)を生成するものとして説明する。
図13(a)は、サーバ送信用データに適用されるソースコード生成用フォーマットの一例を示す図である。このソースコード生成用フォーマットは、ECHONET Liteで規定されているものではなく、本実施の形態において独自に規定したものである。
ここで、「機器種別」は、対象機器を識別するための情報を含むフォーマットである。「命令種別」は、命令の種別を識別するための情報を含むフォーマットである。「機能種別」は、対象機器において制御しようとする機能の種別を識別するための情報を含むフォーマットである。「データ種別」は、データ形式を識別するための情報を含むフォーマットである。ここで、データ形式とは、例えば、データの型、データが取り得る値の範囲などであり、ECHONET Liteで規定されているものもあれば、利用者が独自に定めたものもあるものとする。「インタフェース種別」は、対象機器との間でデータを送受信する際のインタフェースに関する情報を含むフォーマットである。
また、図13(b)は、ソースコード(データ部)の一例を示す図である。図13(b)に示すソースコード(データ部)は、図12に示すキーを基に生成されるサーバ送信用データに、図13(a)のソースコード生成用フォーマットを適用することにより生成される。
より具体的には、例えば、図13(a)のフォーマット「機器種別」には、対象機器を識別するための情報として、「class_group」、「class」、「instance」のコードが定められている。また、図12に示すキーを基に生成されるサーバ送信用データには、「class_group」として「0x02」、「class」として「単機能照明」のclassコードである「0x91」、「instance」として「0x01」が含まれている。そこで、「機器種別」のフォーマットの「class_group」、「class」、「instance」を、「0x02」、「0x91」、「0x01」で置換する。このようにして、図13(b)に示すソースコード(データ部)のデータa1のコードが生成される。
同様に、「命令種別」、「機能種別」、「データ種別」、「インタフェース種別」の各フォーマットについて、サーバ送信用データの該当コードで置換することにより、ソースコード(データ部)が生成される。ここで、「命令種別」のフォーマットを置換することにより、図13(b)に示すデータa2のコードが生成される。「機能種別」のフォーマットを置換することにより、図13(b)に示すデータa3のコードが生成される。「データ種別」のフォーマットを置換することにより、図13(b)に示すデータa4のコードが生成される。「インタフェース種別」のフォーマットを置換することにより、図13(b)に示すデータa5のコードが生成される。
なお、ソースコード生成用フォーマットの各フォーマットでは、フォーマット間で関係のある情報同士が対応付けられている。そのため、各フォーマットから生成されるソースコード(データ部)のデータ(図示の例ではデータa1〜データa5)についても、データ間で関係のある情報同士が対応付けられている。
例えば、ソースコード(データ部)のデータa1には、1又は複数の対象機器の情報が記述される。ここで、ソースコード(データ部)のデータa2には命令種別の情報が記述されるが、データa1に記述されたどの対象機器の命令種別かがわかるように、対象機器と命令種別とを対応付けて記述される。さらに、ソースコード(データ部)のデータa3には機能の情報が記述されるが、どの対象機器のどの命令種別を使用する機能かがわかるように、データa1の対象機器及びデータa2の命令種別と対応付けて、機能の情報が記述される。同様に、データa4、データa5でも、データ間で関係のある情報同士が対応付けられる。
また、ここでは、ソースコード生成用フォーマットとして、「機器種別」、「命令種別」、「機能種別」、「データ種別」、「インタフェース種別」の5つのフォーマットについて説明した。このうち、「機器種別」、「命令種別」、「機能種別」、「データ種別」の4つのフォーマットは、サーバ送信用データの内容によらず共通に用いられる。一方、「インタフェース種別」は、使用するインタフェースに応じたフォーマットが用いられる。例えば、「GPIO」のインタフェースが使用される場合には、「GPIO」用のフォーマットが用いられる。また、例えば、「SPI」のインタフェースが使用される場合には、「SPI」用のフォーマットが用いられる。
このようにして、ソースコード生成部22は、サーバ送信用データに対してソースコード生成用フォーマットを適用して、ソースコード(データ部)を生成する。付言すると、ソースコード(データ部)は、対象機器の種類および特定の機能をソースコード生成用フォーマットに則って記述されたコードであると捉えることができる。また、本実施の形態において、対象機器において制御しようとする機能は、特定の機能の一例として用いられる。
<ファームウェア生成部による処理の説明>
次に、図14(a),(b)を参照しながら、ファームウェア生成部23による処理について説明する。図14(a),(b)は、ファームウェア生成部23により生成されるファームウェアのコードの一例を示す概念図である。
図14(a)に示すソースコード(データ部)は、利用者が入力した利用者入力情報に応じて、ソースコード生成部22により生成されたものである。図示の例は、サーバ送信用データを「機器種別」のソースコード生成用フォーマットに適用して生成されたソースコード(データ部)を示している。より具体的には、利用者が、対象機器としてエアコンおよび冷蔵庫を選択した場合を示している。
また、図14(a)に示すソースコード(手続き部)は、ソースコード格納部25に格納されているものであり、利用者入力情報によらず一定である。図示の例では、「機器種別」に対応したソースコード(手続き部)を示しており、利用者がどのような機器を対象機器として選択したとしても対応できるように、予め定められている。例えば、図示のソースコード(手続き部)の3行目「全機器共通手続き(受信データ)」は、ファームウェアが外部からデータを受信した場合に、その受信データに基づいてどのような種類の家電についても実行できるように記述されたコードである。
また、図14(b)に示すソースコード(データ部)も、利用者が入力した利用者入力情報に応じて、ソースコード生成部22により生成されたものである。図示の例は、サーバ送信用データを「機能種別」のソースコード生成用フォーマットに適用して生成されたソースコード(データ部)を示している。より具体的には、利用者が、エアコンにて制御しようとする機能として、「温度自動」、「冷房モード」、「消費電力」を選択し、冷蔵庫にて制御しようとする機能として、「ドア開閉」、「急速冷蔵」、「消費電力」を選択した場合を示している。
また、図14(b)に示すソースコード(手続き部)も、ソースコード格納部25に格納されているものであり、利用者入力情報によらず一定である。図示の例では、「機能種別」に対応したソースコード(手続き部)を示しており、利用者がどのような機器を対象機器として選択し、対象機器において制御しようとする機能としてどのような機能を選択したとしても対応できるように、予め定められている。例えば、図示のソースコード(手続き部)の3行目「全機能共通手続き(受信データ)」は、ファームウェアが外部からデータを受信した場合に、その受信データに基づいてどのような家電の機能についても実行できるように記述されたコードである。
このように、ソースコード(データ部)は、各ソースコード生成用フォーマットに応じて生成され、それと対応するソースコード(手続き部)が予め定められている。図14(a)に示すソースコードは、「機器種別」に対応するソースコード(データ部)およびソースコード(手続き部)であり、図14(b)に示すソースコードは、「機能種別」に対応するソースコード(データ部)およびソースコード(手続き部)である。また、図14には示していないが、「命令種別」に対応するソースコード(データ部)およびソースコード(手続き部)、「データ種別」に対応するソースコード(データ部)およびソースコード(手続き部)、「インタフェース種別」に対応するソースコード(データ部)およびソースコード(手続き部)なども存在する。そして、ファームウェア生成部23は、これらの各フォーマットに対応するソースコード(データ部)とソースコード(手続き部)とを全て足し合わせる(結合する)ことにより、ファームウェアのソースコードを生成する。付言すると、ファームウェアのソースコードは、ソースコード(データ部)とソースコード(手続き部)とが分離して記述されたコードであると捉えることができる。
次に、ファームウェア生成部23により生成されたファームウェアが実際に動作する場合の処理について説明する。ここでは、一例として、利用者が、エアコンを操作する入力を行い、そのデータ(以下、受信データAと称することとする)をファームウェアが受信したものとして説明する。
ファームウェアの処理としては、「機器種別」、「命令種別」、「機能種別」、「データ種別」、「インタフェース種別」に対応するそれぞれのソースコード(手続き部)の処理が順番に実行される。
初めに、「機器種別」に対応するソースコード(手続き部)の処理が実行される。その際、「機器種別」に対応するソースコード(データ部)が参照される。ここでは、受信データAで対象機器として指定されたエアコンが、ソースコード(データ部)に記述されているか否かの検査(判定)などが行われる。図14(a)に示す例では、エアコンはソースコード(データ部)に記述されているため、次の処理に進む。一方、受信データAで操作対象として指定された機器がソースコード(データ部)に記述されていない場合には、例えばファームウェアからエラーが返されて処理が終了する。
次に「命令種別」に対応するソースコード(手続き部)の処理が実行される。その際、「命令種別」に対応するソースコード(データ部)が参照される。ここでは、受信データAで指定された命令種別(即ち、エアコンの命令種別)が、ソースコード(データ部)に記述されているか否かの検査などが行われる。また、上述したように、ソースコード(データ部)では、関係のある情報同士が対応付けられている。即ち、ソースコード(データ部)には、各家電と命令種別とが対応付けて記述されている。そのため、ここでは、ソースコード(データ部)の中で、エアコンの命令種別が記述された箇所を参照して、検査を行えば良い。なお、「機器種別」に対応するソースコード(手続き部)からは、ソースコード(データ部)の中でエアコンの命令種別が記述された箇所を参照するように指示される。そのため、「命令種別」に対応するソースコード(手続き部)の処理では、該当箇所を参照することができる。
次に「機能種別」に対応するソースコード(手続き部)の処理が実行される。その際、「機能種別」に対応するソースコード(データ部)が参照される。ここでは、受信データAで指定された機能(即ち、エアコンの機能)が、ソースコード(データ部)に記述されているか否かの検査などが行われる。上述したように、機能に関しても、各家電及び命令種別の情報と対応付けて記述されている。そのため、ここでは、ソースコード(データ部)の中で、エアコン(及び命令種別)に対応する機能が記述された箇所を参照して、検査を行えば良い。なお、「命令種別」に対応するソースコード(手続き部)からは、ソースコード(データ部)の中でエアコン(及び命令種別)に対応する機能が記述された箇所を参照するように指示される。そのため、「機能種別」に対応するソースコード(手続き部)の処理では、該当箇所を参照することができる。
例えば、図14(b)に示す例の場合、受信データAで指定されたエアコンの機能が、「温度自動」、「冷房モード」、「消費電力」の何れかに該当するか順番にチェックする。ここで、受信データAの機能がどの機能にも該当しなければ、エラーとなり処理は終了する。一方、受信データAの機能が、例えば「温度自動」の機能に該当する場合、次の「データ種別」、「インタフェース種別」の処理に進む。
同様に、「データ種別」に対応するソースコード(手続き部)の処理が実行される際には、「データ種別」に対応するソースコード(データ部)が参照される。ここでは、受信データAが、ソースコード(データ部)に記述されたデータ形式を満たすか否かの検査などが行われる。さらに、「インタフェース種別」に対応するソースコード(手続き部)の処理が実行される際には、「インタフェース種別」に対応するソースコード(データ部)が参照される。ここでは、受信データAで指定されたデータ送受信の方法が、ソースコード(データ部)に記述されているか否かの検査などが行われる。受信データAで指定されたデータ送受信の方法がソースコード(データ部)に記述されていれば、その送受信の方法で、エアコンに対してデータの送受信が開始される。
<ファームウェア生成システム全体の処理の流れ>
次に、ファームウェア生成システム1全体の処理の流れについて説明する。図15は、ファームウェア生成システム1においてファームウェアを生成する処理手順の一例を示したフローチャートである。ここで、ステップ101〜ステップ103の処理は、利用者端末10による処理に該当する。また、ステップ104〜ステップ106の処理は、ファームウェア生成サーバ20の処理に該当する。
まず、利用者が利用者端末10の画面上で利用者入力情報を入力することにより、入力情報受付部11は、利用者入力情報を受け付ける(ステップ101)。次に、データ変換部12は、受け付けた利用者入力情報に対応するキーを用いて、利用者入力情報を変換してサーバ送信用データを生成する(ステップ102)。次に、データ送信部13は、生成されたサーバ送信用データをファームウェア生成サーバ20へ送信する(ステップ103)。
次に、データ受付部21は、利用者端末10からサーバ送信用データを受け付ける(ステップ104)。次に、ソースコード生成部22は、フォーマット格納部24に格納されているソースコード生成用フォーマットを取得する。そして、ソースコード生成部22は、取得したソースコード生成用フォーマットを用いて、利用者端末10から受け付けたサーバ送信用データを変換してソースコード(データ部)を生成する(ステップ105)。次に、ファームウェア生成部23は、ソースコード格納部25からソースコード(手続き部)を取得する。そして、ファームウェア生成部23は、取得したソースコード(手続き部)と、生成されたソースコード(データ部)とを足し合わせて、ファームウェアを生成する(ステップ106)。そして、本処理フローは終了する。
また、ファームウェアが生成された後には、例えば、利用者が利用者端末10にてファームウェアを取得する操作を行うことにより、生成されたファームウェアがファームウェア生成サーバ20から利用者端末10へ送信される。利用者は、送信されてきたファームウェアを、例えば通信制御基板にインストールし、その通信制御基板を対象機器に搭載することにより、対象機器の通信機能が制御される。ただし、通信制御基板を対象機器に搭載する構成に限られるものではなく、例えば、対象機器を制御する他の制御装置に通信制御基板を搭載して、この制御装置がファームウェアにより対象機器の通信機能を制御することとしても良い。
なお、本実施の形態では、対象機器に、対象機器の各種の機能を制御する制御装置等が備えられているものとして説明したが、対象機器の中には、例えばLED(Light Emitting Diode)照明のように制御装置等を備えていない単純な構成のものも存在する。このような単純な構成の対象機器の場合、ファームウェアは、例えば、利用者端末10から受信した命令に従って、対象機器の動作を制御する。即ち、この場合、ファームウェアは、対象機器の通信機能を制御するとともに、対象機器の動作を制御するものとして捉えることができる。
以上説明したように、本実施の形態に係るファームウェア生成システム1では、利用者が操作したい機器の種類や機能等を画面上で選択することにより、選択された機器や機能に対応したファームウェアが生成される。その際、ファームウェア生成サーバ20のファームウェア生成部23は、利用者入力情報に応じて生成されたソースコード(データ部)と、予め定められたソースコード(手続き部)とを足し合わせることにより、ファームウェアを生成する。
また、例えば、ECHONET Liteの規定により、対象機器の候補として新しい機器が追加されたり、対象機器において制御しようとする機能として新しい機能が追加されたりした場合、図12に示すキーのclassコードやpropertyコードが追加される。しかし、ソースコード生成用フォーマットおよびソースコード(手続き部)は変更しなくて良く、そのままのものを用いれば良い。即ち、新しい機器や機能に対応するファームウェアを生成する場合であっても、ソースコード生成部22は、ソースコード生成用フォーマットを用いて、利用者が画面上で選択した機器や機能に対応したソースコード(データ部)を生成する。そして、ファームウェア生成部23は、生成されたソースコード(データ部)とソースコード(手続き部)とを足し合わせることにより、ファームウェアを生成する。
なお、本実施の形態では、利用者端末10がサーバ送信用データをファームウェア生成サーバ20へ送信し、ファームウェア生成サーバ20がファームウェアを生成する構成としたが、このような構成に限られるものではない。例えば、利用者端末10が、ファームウェア生成サーバ20の機能を有し、利用者端末10にてファームウェアを生成するような構成であっても良い。言い換えると、利用者端末10が、ファームウェア生成サーバ20のデータ受付部21、ソースコード生成部22、ファームウェア生成部23、フォーマット格納部24、ソースコード格納部25等の機能を備えることとしても良い。この場合、利用者端末10は、情報処理装置の一例として捉えることができる。
また、本発明の実施の形態を実現するプログラムは、磁気記録媒体(磁気テープ、磁気ディスクなど)、光記録媒体(光ディスクなど)、光磁気記録媒体、半導体メモリなどのコンピュータが読取可能な記録媒体に記憶した状態で提供し得る。また、インターネットなどの通信手段を用いて提供することも可能である。
以上、本発明の実施の形態について説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、種々の変更又は改良を加えたものも、本発明の技術的範囲に含まれることは、特許請求の範囲の記載から明らかである。
1…ファームウェア生成システム、10…利用者端末、11…入力情報受付部、12…データ変換部、13…データ送信部、20…ファームウェア生成サーバ、21…データ受付部、22…ソースコード生成部、23…ファームウェア生成部、24…フォーマット格納部、25…ソースコード格納部

Claims (6)

  1. 制御対象機器の情報を受け付けて当該制御対象機器の通信機能を制御するためのソフトウェアを生成するサーバと、
    前記制御対象機器の情報を前記サーバに送信する端末装置と、を備え、
    前記サーバは、
    前記端末装置から送信された前記制御対象機器の情報を、制御対象機器の通信機能を制御するためのデータの型と当該データが取り得る値の範囲とを指定した予め定められた第1のコードのフォーマットに適用して第1のコードを生成するコード生成部と、
    前記コード生成部により生成された前記第1のコードおよび予め用意された第2のコードに基づいて、前記制御対象機器の通信機能を制御するソフトウェアを生成するソフトウェア生成部と、を備え
    前記制御対象機器の情報は、当該制御対象機器の種類および特定の機能の情報を含み、
    前記第2のコードは、前記第1のコードを参照して前記制御対象機器に前記特定の機能を実行させる手続きが記述された、記述内容が当該制御対象機器の種類および当該制御対象機器の機能によらない固定的なコードであって、当該手続きは、当該制御対象機器の通信機能を制御するものとして受信したデータが前記型と前記範囲とを満たすか否かを検査する処理を含むことを特徴とする、ソフトウェア生成システム。
  2. 前記端末装置は、
    前記制御対象機器に関して前記ソフトウェアを生成するために特定を要する項目をメニュー表示する表示手段と、
    前記表示手段により表示されたメニューに基づき、前記項目を選択することにより前記制御対象機器の情報を入力する操作を受け付ける操作受け付け手段と、
    を備えることを特徴とする、請求項1に記載のソフトウェア生成システム。
  3. 前記制御対象機器の情報は、前記項目に応じた複数の種別に分類され、
    前記第1のコードは、前記複数の種別の種別毎に予め定められた前記第1のコードのフォーマットに則って、当該複数の種別の種別毎に記述され、
    前記第2のコードは、前記複数の種別の種別毎に記述されたコードであって、
    前記ソフトウェア生成部は、前記コード生成部により生成された前記第1のコードと前記第2のコードとを前記複数の種別の種別毎に対応させて前記ソフトウェアを生成することを特徴とする、請求項2に記載のソフトウェア生成システム。
  4. 制御対象機器の情報を受け付ける受付部と、
    制御対象機器の通信機能を制御するためのデータの型と当該データが取り得る値の範囲とを指定した予め定められた第1のコードのフォーマットを格納したフォーマット格納部と、
    予め定められた第2のコードを格納したコード格納部と、
    前記受付部により受け付けた前記制御対象機器の情報を前記フォーマット格納部に格納された前記第1のコードのフォーマットに適用して第1のコードを生成するコード生成部と、
    前記コード生成部により生成された前記第1のコードおよび前記コード格納部から読み出した前記第2のコードに基づいて、前記制御対象機器の通信機能を制御するソフトウェアを生成するソフトウェア生成部と、を備え
    前記制御対象機器の情報は、当該制御対象機器の種類および特定の機能の情報を含み、
    前記コード格納部に格納された前記第2のコードは、前記第1のコードを参照して前記制御対象機器に前記特定の機能を実行させる手続きが記述された、記述内容が当該制御対象機器の種類および当該制御対象機器の機能によらない固定的なコードであって、当該手続きは、当該制御対象機器の通信機能を制御するものとして受信したデータが前記型と前記範囲とを満たすか否かを検査する処理を含むことを特徴とする、情報処理装置。
  5. 前記コード格納部に格納された前記第2のコードは、前記制御対象機器の通信機能を制御し、当該制御対象機器の機能を実現する機能実現手段のうち、前記第1のコードに記述された機能についての機能実現手段との間で情報交換を行うための手続きが記述されたコードであることを特徴とする、請求項4に記載の情報処理装置。
  6. コンピュータを、
    制御対象機器の情報を受け付ける受付手段と、
    記憶装置から、制御対象機器の通信機能を制御するためのデータの型と当該データが取り得る値の範囲とを指定した予め定められた第1のコードのフォーマットを読み出し、前記受付手段により受け付けた前記制御対象機器の情報を当該第1のコードのフォーマットに適用して第1のコードを生成するコード生成手段と、
    記憶装置から予め定められた第2のコードを読み出し、当該第2のコードおよび前記コード生成手段により生成された前記第1のコードに基づいて、前記制御対象機器の通信機能を制御するソフトウェアを生成するソフトウェア生成手段として、機能させ
    前記制御対象機器の情報は、当該制御対象機器の種類および特定の機能の情報を含み、
    記憶装置に記憶された前記第2のコードは、前記第1のコードを参照して前記制御対象機器に前記特定の機能を実行させる手続きが記述された、記述内容が当該制御対象機器の種類および当該制御対象機器の機能によらない固定的なコードであって、当該手続きは、当該制御対象機器の通信機能を制御するものとして受信したデータが前記型と前記範囲とを満たすか否かを検査する処理を含むことを特徴とする、プログラム。
JP2016146801A 2016-07-26 2016-07-26 ソフトウェア生成システム、情報処理装置およびプログラム Active JP6109997B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016146801A JP6109997B1 (ja) 2016-07-26 2016-07-26 ソフトウェア生成システム、情報処理装置およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016146801A JP6109997B1 (ja) 2016-07-26 2016-07-26 ソフトウェア生成システム、情報処理装置およびプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2017043648A Division JP6207782B1 (ja) 2017-03-08 2017-03-08 ソフトウェア生成システム、情報処理装置およびプログラム

Publications (2)

Publication Number Publication Date
JP6109997B1 true JP6109997B1 (ja) 2017-04-05
JP2018018227A JP2018018227A (ja) 2018-02-01

Family

ID=58666459

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016146801A Active JP6109997B1 (ja) 2016-07-26 2016-07-26 ソフトウェア生成システム、情報処理装置およびプログラム

Country Status (1)

Country Link
JP (1) JP6109997B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7023440B1 (ja) * 2021-07-06 2022-02-21 三菱電機株式会社 プログラミング支援装置、プログラミング支援方法、およびプログラミング支援プログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7116152B2 (ja) * 2020-12-25 2022-08-09 伊藤忠商事株式会社 学用品販売システム、学用品販売方法および学用品販売プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006215826A (ja) * 2005-02-03 2006-08-17 Mitsubishi Electric Corp プログラムコード生成支援装置及び方法並びにプログラムコード生成支援方法のプログラム
JP2011133936A (ja) * 2009-12-22 2011-07-07 Kyocera Mita Corp アプリケーションプログラム生成方法および画像形成装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006215826A (ja) * 2005-02-03 2006-08-17 Mitsubishi Electric Corp プログラムコード生成支援装置及び方法並びにプログラムコード生成支援方法のプログラム
JP2011133936A (ja) * 2009-12-22 2011-07-07 Kyocera Mita Corp アプリケーションプログラム生成方法および画像形成装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7023440B1 (ja) * 2021-07-06 2022-02-21 三菱電機株式会社 プログラミング支援装置、プログラミング支援方法、およびプログラミング支援プログラム
WO2023281630A1 (ja) * 2021-07-06 2023-01-12 三菱電機株式会社 プログラミング支援装置、プログラミング支援方法、およびプログラミング支援プログラム

Also Published As

Publication number Publication date
JP2018018227A (ja) 2018-02-01

Similar Documents

Publication Publication Date Title
US11171803B2 (en) Smart home communications architecture
US7882256B2 (en) Gateway device and control device
US20100121968A1 (en) System and method for automating operations of household systems from remote applications
US20100138007A1 (en) Apparatus and method for integration and setup of home automation
US20210281613A1 (en) Method and computing device for converting data received via multiple protocols and outputting the converted data via other protocols
JP6473743B2 (ja) コンフィギュレーション接続装置
JP6193460B1 (ja) ソフトウェアの提供方法、情報処理装置およびプログラム
US10962947B2 (en) Device for remotely controlling an appliance
Salikhov et al. Experience of using bluetooth low energy to develop a sensor data exchange system based on the nrf52832 microcontroller
JP3757669B2 (ja) 分散システムの設定方法
JP6207782B1 (ja) ソフトウェア生成システム、情報処理装置およびプログラム
JP6109997B1 (ja) ソフトウェア生成システム、情報処理装置およびプログラム
Kooijman Building Wireless Sensor Networks Using Arduino
US9560167B2 (en) Network system, communication method, server, and terminal
EP3378192A1 (en) Managing communication between gateway and building automation device by installing protocol software in gateway
US20130227098A1 (en) Setting system, server, terminal device, setting method, and setting program
US11880191B2 (en) Remote activation of the wireless service interface of a control device via a bus system
JP2013207705A (ja) 制御装置
KR20180054157A (ko) 신규 사물인터넷(IOT, Internet Of Things) 단말 관리 방법 및 장치
JP2009217671A (ja) 制御装置及びその方法
US10693959B2 (en) Residential automation system, equipment and process that is easy to install, configure and use
KR20230118702A (ko) 단말 장치, 기기 관리 서버, 정보 처리 시스템, 정보 처리 방법 및 기억 매체
WO2016084234A1 (ja) 通信機器、通信アダプタ、通信システム、通信パラメータ応答方法及びプログラム
JP7369967B2 (ja) 制御装置、クラウドコンピュータ、情報処理システム、及び、情報処理方法
JP2011191880A (ja) 厨房機器言語変換装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170126

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170308

R150 Certificate of patent or registration of utility model

Ref document number: 6109997

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250