説明

デバイス制御プログラム、情報処理装置およびデバイス制御方法

【課題】利用するデバイスの指定を容易に行えるようにすること。
【解決手段】第1の記憶手段1cは、制御情報2を記憶する。第2の記憶手段1dは、デバイス1gを制御するための1または複数のプログラムと1または複数の文字列との対応関係を示す定義情報3を記憶する。判定手段1eは、受け付ける操作入力に応じた文字列2aを含む画面情報に基づいて表示装置1aに表示された画面への操作入力に対して、文字列2aを含む制御情報2が第1の記憶手段1cに登録されたことを検出すると定義情報3に示される何れかの文字列が、制御情報2に含まれているか判定する。制御手段1fは、定義情報3で示される文字列3aが制御情報2に含まれていると判定されたとき、定義情報3を参照して、判定された該文字列3aに対応付けられたプログラム3bを呼び出すことで、デバイス1gを制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はデバイス制御プログラム、情報処理装置およびデバイス制御方法に関する。
【背景技術】
【0002】
情報処理装置には種々のデバイスが設けられる。情報処理装置は各種のデバイスを利用することで、データの入出力や他の情報処理装置とのデータ通信等、種々の処理を行う。
近年では、携帯可能な情報処理装置(携帯端末装置)にも多様なデバイスが設けられ、多機能化が進んでいる。例えば、携帯端末装置に撮像用のデバイスを設け、携帯端末装置で静止画や動画を生成可能にしたものがある。また、例えば、携帯端末装置に近距離無線通信用のデバイスを設け、当該デバイスによりスキャナやプリンタ等の外部機器と通信することで、外部機器を利用可能とし、拡張性を向上させたものがある。
【0003】
ここで、サーバ装置に接続された情報処理装置では、情報処理装置に設けられたデバイスをサーバ装置の指示により動作させるものがある。例えば、携帯端末装置がセンタ側のコンピュータからダウンロードしたプログラムを用いて携帯端末装置に接続された外部機器を制御することで、センタ側のデータ処理に応じた外部機器の制御を実現する方法が提案されている(例えば、特許文献1参照)。
【0004】
なお、例えば、クライアント装置でのドキュメントファイルの作成・更新を検出したときに、該ファイルをサーバ装置に自動的にアップロードし、その後、クライアント装置から削除する方法も提案されている(例えば、特許文献2参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2002−74238号公報
【特許文献2】特開2010−266933号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、情報処理システムでは、サーバ装置が提供するグラフィカルユーザインタフェースを情報処理装置に設けられた表示装置に表示させ、当該インタフェースに従った操作をユーザに行わせるものがある。例えば、Webシステムでは、情報処理装置が備えるWebブラウザがサーバ装置からダウンロードした画面情報により、グラフィカルユーザインタフェースを生成し、ユーザによる操作入力を受け付ける。
【0007】
このような情報処理システムでも、グラフィカルユーザインタフェースに対する操作に応じて、サーバ装置が指定するデバイスを動作させて、所定の処理を行わせたいという要求がある。その場合、サーバ装置が指定するデバイスの制御を、情報処理装置側での操作に応じて行う仕組みを、どのようにして実現するか問題となる。
【0008】
一側面では、本発明は、利用するデバイスの指定を容易に行えるようにしたデバイス制御プログラム、情報処理装置およびデバイス制御方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
一実施態様によれば、デバイス制御プログラムが提供される。このデバイス制御プログラムは、受け付ける操作入力に応じた文字列を含む画面情報に基づいて表示装置に表示された画面への操作入力に対して、文字列を含む制御情報が第1の記憶手段に登録されたことを検出すると、第2の記憶手段に記憶された、デバイスを制御するための1またはそれ以上のプログラムと1またはそれ以上の文字列との対応関係を示す定義情報に示される何れかの文字列が、制御情報に含まれているか判定し、定義情報で示される何れかの文字列が含まれていると判定されたとき、定義情報を参照して、判定された該文字列に対応付けられたプログラムを呼び出すことで、デバイスを制御する、処理をコンピュータに実行させる。
【0010】
また、一実施態様によれば、第1の記憶手段と第2の記憶手段と判定手段と制御手段とを有する情報処理装置が提供される。第1の記憶手段は、所定の文字列を含む制御情報を記憶する。第2の記憶手段は、デバイスを制御するための1またはそれ以上のプログラムと1またはそれ以上の文字列との対応関係を示す定義情報を記憶する。判定手段は、受け付ける操作入力に応じた文字列を含む画面情報に基づいて表示装置に表示された画面への操作入力に対して、文字列を含む制御情報が第1の記憶手段に登録されたことを検出すると、定義情報に示される何れかの文字列が、制御情報に含まれているか判定する。制御手段は、定義情報で示される何れかの文字列が含まれていると判定されたとき、定義情報を参照して、判定された該文字列に対応付けられたプログラムを呼び出すことで、デバイスを制御する。
【0011】
また、一実施対象によれば、コンピュータが実行するデバイス制御方法が提供される。このデバイス制御方法では、受け付ける操作入力に応じた文字列を含む画面情報に基づいて表示装置に表示された画面への操作入力に対して、文字列を含む制御情報が第1の記憶手段に登録されたことを検出すると、第2の記憶手段に記憶された、デバイスを制御するための1またはそれ以上のプログラムと1またはそれ以上の文字列との対応関係を示す定義情報に示される何れかの文字列が、制御情報に含まれているか判定する。定義情報で示される何れかの文字列が含まれていると判定されたとき、定義情報を参照して、判定された該文字列に対応付けられたプログラムを呼び出すことで、デバイスを制御する。
【発明の効果】
【0012】
一実施態様によれば、利用するデバイスの指定を容易に行える。
【図面の簡単な説明】
【0013】
【図1】第1の実施の形態の情報処理装置を示す図である。
【図2】第2の実施の形態の情報処理システムを示す図である。
【図3】クライアントのハードウェア例を示す図である。
【図4】第2の実施の形態のクライアントのソフトウェア例を示す図である。
【図5】ローカルストレージの例を示す図である。
【図6】プログラム定義ファイルの例を示す図である。
【図7】業務支援画面の例を示す図である。
【図8】業務支援画面のHTMLファイルの記述例を示す図である。
【図9】スクリプトの記述例を示す図である。
【図10】クライアントの処理例を示すフローチャートである。
【図11】デバイス実行制御の処理例を示すフローチャートである。
【図12】デバイス停止制御の処理例を示すフローチャートである。
【図13】撮像部の制御例を示すシーケンス図である。
【図14】撮像部の制御例を示すシーケンス図(続き)である。
【図15】バーコード読取の制御例を示すシーケンス図である。
【図16】バーコード読取の制御例を示すシーケンス図(続き)である。
【図17】第3の実施の形態のクライアントのソフトウェア例を示す図である。
【発明を実施するための形態】
【0014】
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理装置を示す図である。情報処理装置1は、表示装置1a、画面情報処理手段1b、第1の記憶手段1c、第2の記憶手段1d、判定手段1e、制御手段1fおよびデバイス1gを有する。
【0015】
表示装置1aは、画面情報処理手段1bにより生成された画面を表示する。
画面情報処理手段1bは、画面情報に基づいて、表示装置1aに表示させる画面を生成する。画面情報処理手段1bが生成する画面は、所定の操作入力を受け付けるためのGUI(Graphical User Interface)である。画面情報は、GUIを記述可能な形式のデータである。画面情報の形式には、例えばHTML(HyperText Markup Language)やXML(Extensible Markup Language)などが考えられる。画面情報は、複数のファイルを含んでもよい。例えば、1またはそれ以上のHTMLファイルと1またはそれ以上のスクリプトファイルを含んでいてもよい。スクリプトファイルは、該HTMLファイルで記述した要素に対する操作入力に応じた処理を記述したファイルである。スクリプトファイルは、例えばJavaScript(登録商標)で記述されたファイルでもよい。
【0016】
画面情報処理手段1bは、例えば、ネットワークを介して情報処理装置1と接続されたサーバ装置(図示を省略)から画面情報を取得できる。画面情報処理手段1bは、画面に対する操作入力に応じて、画面情報に含まれる所定の文字列2aを含む制御情報2を第1の記憶手段1cに登録する。画面情報には、例えば、第1の記憶手段1cに登録する文字列が、受け付ける操作入力の内容ごとに定義される。
【0017】
第1の記憶手段1cは、所定の文字列を含む制御情報2を記憶する。例えば、制御情報2には、文字列2a“abcde”が含まれている。
第2の記憶手段1dは、デバイス1gを制御するための1またはそれ以上のプログラムと1またはそれ以上の文字列との対応関係を示す定義情報3を記憶する。例えば、定義情報3には、文字列3a(“abcde”)およびプログラム3b(/program/device1g.dat)が含まれる。例えば、文字列3aとプログラム3bとが“=”(イコール)記号によって対応付けられている。
【0018】
第1の記憶手段1cおよび第2の記憶手段1dは、SSD(Solid State Drive)およびHDD(Hard Disk Drive)などのディスク装置によって実装されてもよい。第1の記憶手段1cおよび第2の記憶手段1dは、同じディスク装置上の異なる記憶領域によって実装されてもよい。
【0019】
判定手段1eは、画面情報処理手段1bにより、制御情報2が第1の記憶手段1cに登録されたことを検出すると、第2の記憶手段1dに記憶された定義情報3に示される何れかの文字列が制御情報2に含まれているか判定する。制御情報2には、文字列2a“abcde”が含まれている。このとき、文字列2aは、文字列3aに一致する。よって、この場合、判定手段1eは、定義情報3に示される文字列3aが制御情報2に含まれていると判定する。
【0020】
制御手段1fは、定義情報3で示される何れかの文字列が含まれていると判定されたとき、定義情報3を参照して、判定された文字列に対応付けられたプログラムを呼び出すことでデバイスを制御する。例えば、制御手段1fは、文字列3aが制御情報2に含まれていると判定された場合、定義情報3を参照して、文字列3aに対応付けられたプログラム3bを呼び出すことでデバイスを制御する。プログラム3bはデバイス1gを制御するためのプログラムである。
【0021】
デバイス1gは、所定の機能を実現するための装置である。例えば、静止画や動画を撮像するための撮像装置や有線・無線の通信を実現するための通信装置である。また、通信装置によって通信可能な、情報処理装置1の外部のデバイスでもよい。その場合、制御手段1fは、呼び出したプログラムにより、通信装置を介して外部のデバイスを制御する。
【0022】
なお、画面情報処理手段1bは、例えばウェブ(Web)ページを閲覧するためのブラウザにより実現されてもよい。また、判定手段1eおよび制御手段1fをブラウザに含めてもよい。
【0023】
また、情報処理装置1は、CPU(Central Processing Unit)などのプロセッサとRAM(Random Access Memory)などのメモリとを備えてもよく、メモリに記憶されたプログラムをプロセッサが実行するコンピュータであってもよい。
【0024】
情報処理装置1によれば、判定手段1eにより、画面情報処理手段1bが表示装置1aに表示された画面に対する操作入力に応じた制御情報2が第1の記憶手段1cに登録したことが検出される。判定手段1eにより、第2の記憶手段に記憶された定義情報3に示される何れかの文字列が、制御情報2に含まれているか判定される。定義情報3で示される何れかの文字列が含まれていると判定されたとき、制御手段1fにより、定義情報3が参照され、判定された文字列3aに対応付けられたプログラム3bを呼び出すことで、デバイス1gが制御される。
【0025】
これにより、利用するデバイスの指定を容易に行える。具体的には、画面情報処理手段1bが、第1の記憶手段1cに登録した制御情報2に含まれる文字列により、情報処理装置1で動作させるデバイスを指定できる。例えば、画面情報処理手段1bは、ブラウザの機能を用いることができる。ブラウザは、情報処理装置1で一般的に利用可能なソフトウェアである。このため、例えば、サーバ装置側で制御対象のデバイスの指定を追加・変更したい場合には、制御情報2に含める文字列の変更で対応可能である。よって、サーバ装置や情報処理装置1においてアプリケーションプログラム(以下、単にアプリケーションという)などの変更を伴わずに、デバイス指定の設定を容易に行える。
【0026】
[第2の実施の形態]
図2は、第2の実施の形態の情報処理システムを示す図である。第2の実施の形態の情報処理システムは、情報機器(例えば、コンピュータやその周辺機器)の保守業務を支援する。この情報処理システムでは、クライアント装置(以下、単にクライアントという)で取得した保守内容をサーバ装置(以下、単にサーバという)で一元管理する。この情報処理システムは、クライアント装置(以下、単にクライアントという)100およびサーバ装置(以下、単にサーバという)200を含む。クライアント100およびサーバ200は、ネットワーク10および基地局11を介して接続されている。クライアント100と基地局11とは無線で接続され、移動通信で用いられる所定の周波数帯を用いて通信する。クライアント100は、Wi−Fi(Wireless - Fidelity、登録商標)などで無線LAN接続を行えるものでもよい。その場合、クライアント100は、ネットワーク10と直接的または間接的に接続されたアクセスポイント(図示を省略)を介してサーバ200にアクセスしてもよい。
【0027】
クライアント100は、保守作業を行う保守員が所持する携帯端末装置である。クライアント100は、静止画または動画を撮像する撮像部を備えている。保守員は、該撮像部によって保守対象の情報機器の静止画または動画を撮像できる。
【0028】
また、クライアント100は、バーコードリーダ12と近距離無線通信により接続可能である。近距離無線通信の例としては、IrDA(Infrared Data Association)通信、Bluetooth(登録商標)、Wi−FiおよびZigbee(登録商標)などがある。以下では、近距離無線通信の一例としてBluetoothを示して説明する。
【0029】
バーコードリーダ12は、保守対象の情報機器に付されたバーコードの情報を読み取るスキャナ装置である。バーコードリーダ12は、クライアント100とBluetoothにより通信可能である。バーコードリーダ12は、読み取ったバーコードの情報をクライアント100に送信できる。
【0030】
サーバ200は、クライアント100から受信した画像データやバーコードのデータなどを管理する。サーバ200は、Webサーバ機能を有しており、保守業務を支援するGUIを記述した画面情報(HTMLファイル)をクライアント100に提供する。例えば、サーバ200は、業務支援画面のURL(Uniform Resource Locator)を指定したHTTP(HyperText Transfer Protocol)リクエストをクライアント100から受信する。サーバ200は、該リクエストに対する応答として、業務支援のGUIを記述したHTMLファイルをクライアント100に送信する。
【0031】
ここで、クライアント100はWebブラウザを実行可能である。Webブラウザは、サーバ200から受信したHTMLファイルを解析して、クライアント100上のディスプレイにGUIを表示させる。保守員は、GUIに従った操作入力を行うことで、クライアント100の撮像部やバーコードリーダ12に所定の情報を取得させることができる。また、クライアント100により、取得した情報をサーバ200へ送信させることができる。
【0032】
なお、クライアント100は、バーコードリーダ12を用いて情報を取得する場合、バーコードリーダ12および基地局11との通信を行う。このとき、クライアント100は、移動通信と近距離無線通信との2種類の通信方式を利用する。この場合、両方の通信方式を同時に利用するのが困難なことがある。同時利用により、クライアント100が高負荷状態となる、電力消費が過大となる、などの問題が生じるためである。そこで、クライアント100は、一方の通信方式を利用する場合に、他方の通信方式による通信を行わないよう制御する。具体的には、クライアント100は、通常時は基地局11と接続して、音声通話や電子メールなどを待ち受ける。一方、保守作業などで必要な場合に、移動通信を切断し、Bluetoothによる近距離無線通信を行う。Bluetoothによるデータ通信が完了すると、Bluetoothによる通信を切断し、移動通信を再開する。
【0033】
図3は、クライアントのハードウェア例を示す図である。クライアント100は、CPU101、ROM(Read Only Memory)102、RAM103、移動通信部104、アンテナ104a,105a、近距離無線通信部105、記録媒体読取部106、撮像部107、画像信号処理部108、ディスプレイ108a、入力信号処理部109、タッチパネル109a、キーパッド109b、音声信号処理部110、マイク110aおよびスピーカ110bを有する。各ユニットがクライアント100のバスに接続されている。
【0034】
CPU101は、クライアント100の情報処理を制御するプロセッサである。CPU101は、ROM102やRAM103などに記憶されているプログラムやデータの少なくとも一部を読み出し、RAM103に展開してプログラムを実行する。なお、クライアント100は、複数のプロセッサを設けて、プログラムを分散して実行してもよい。
【0035】
ROM102は、クライアント100の起動時に実行されるBIOS(Basic Input / Output System)プログラムなどの所定のプログラムを記憶する。ROM102は、書き換え可能な不揮発性メモリであってもよい。
【0036】
RAM103は、CPU101が実行するプログラムや処理に用いるデータを一時的に記憶する揮発性メモリである。なお、クライアント100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えていてもよい。
【0037】
移動通信部104は、無線信号処理を行い、基地局11と移動通信網を介した無線通信を実現する。具体的には、移動通信部104は、基地局11からアンテナ104aを介して受信した信号を復調・復号し、得られた受信データをCPU101に出力する。また、移動通信部104は、CPU101から取得した送信データを符号化・変調し、得られた送信信号をアンテナ104aを介して基地局11へ送信する。
【0038】
近距離無線通信部105は、無線信号処理を行い、バーコードリーダ12とのBluetoothによる無線通信を実現する。具体的には、近距離無線通信部105は、CPU101から取得した送信データを符号化・変調し、得られた送信信号をアンテナ105aを介してバーコードリーダ12へ送信する。また、近距離無線通信部105は、バーコードリーダ12からアンテナ105aを介して受信した信号を復調・復号し、得られた受信データをCPU101に出力する。
【0039】
記録媒体読取部106は、記録媒体13に記憶されたデータを読み取り、また、記録媒体13に格納する。記録媒体13としては、例えば、半導体メモリを使用できる。
撮像部107は、静止画または動画を撮像する。
【0040】
画像信号処理部108は、CPU101の命令に従って、ディスプレイ108aに画像を出力する。ディスプレイ108aとしては、例えば、液晶ディスプレイを用いることができる。
【0041】
入力信号処理部109は、タッチパネル109aに対するタッチ操作やキーパッド109bに対するキー押下を検出すると、該タッチ操作や押下されたキーなどを示す入力信号を取得し、CPU101に出力する。
【0042】
音声信号処理部110は、マイク110aから音声アナログ信号を取得し、所定の信号変換処理を行ってCPU101に音声データを出力する。また、音声信号処理部110は、CPU101から音声データを取得し、所定の信号変換処理を行ってスピーカ110bに音声再生させる。
【0043】
図4は、第2の実施の形態のクライアントのソフトウェア例を示す図である。図4に示すユニットの一部または全部は、クライアント100が実行するプログラムのモジュールであってもよい。また、図4に示すユニットの一部または全部は、FPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)などの電子回路であってもよい。
【0044】
クライアント100は、ファイルI/O(Input / Output)部120、記憶部130、Webブラウザ140、デバイス処理部150を有する。
ファイルI/O部120は、Webブラウザ140およびデバイス処理部150が読み書き可能な記憶領域である。ファイルI/O部120としては、例えば、HTML5で標準化が検討されているローカルストレージ(LocalStorage)、WebSQLDataBaseおよびローカルディレクトリの任意のファイルなどが考えられる。以下では、ローカルストレージを想定する。
【0045】
記憶部130は、プログラム定義ファイルを記憶する。プログラム定義ファイルは、文字列とデバイス制御用のプログラムとの対応関係を定義したものである。
Webブラウザ140は、サーバ200から取得したHTMLファイルに基づき、ディスプレイ108aに業務メニューなどの画面を表示させる。Webブラウザ140は、該画面に対し、タッチパネル109aやキーパッド109bを用いた所定の操作入力を受け付ける。すると、Webブラウザ140は、ファイルI/O部120に該操作入力に応じた所定の文字列を含む制御情報を登録する。
【0046】
デバイス処理部150は、ファイルI/O部120に登録された制御情報に基づき、クライアント100で利用可能なデバイスを制御する。例えば、移動通信部104、近距離無線通信部105(近距離無線通信部105を介して通信するバーコードリーダ12)および撮像部107の制御を行う。デバイス処理部150は、判定部151および制御部152を有する。
【0047】
判定部151は、ファイルI/O部120を監視する。判定部151は、Webブラウザ140によりファイルI/O部120に制御情報が登録されたことを検出する。すると、判定部151は、記憶部130に記憶されたプログラム定義ファイルを参照して、プログラム定義ファイルで示される所定の文字列が、制御情報に含まれているかを判定する。
【0048】
制御部152は、判定部151によりプログラム定義ファイルで示される文字列が制御情報に含まれていると判定されると、プログラム定義ファイルを参照して、該文字列に対応するプログラムを特定する。制御部152は、特定したプログラムを呼び出すことで、デバイスを制御する。
【0049】
また、制御部152は、デバイスからデータを取得する。例えば、撮像部107から撮像部107が撮像して得た画像データを取得する。また、例えば、バーコードリーダ12が読み取ったバーコードの値を近距離無線通信部105から取得する。制御部152は、デバイスから受け取ったデータまたは該データを示す情報を、ファイルI/O部120に格納する。所定のアプリケーションにより、デバイスから取得したデータに基づく処理を実行させるためである。例えば、Webブラウザ140は、デバイスから取得したデータをディスプレイ108aに表示させることができる。また、Webブラウザ140は、選択されたデータをサーバ200に送信することができる。
【0050】
ここで、第2の実施の形態のクライアント100は、第1の実施の形態の情報処理装置1の一例である。また、判定部151は、判定手段1eの一例である。制御部152は、制御手段1fの一例である。
【0051】
図5は、ローカルストレージの例を示す図である。ローカルストレージ121は、ファイルI/O部120に格納される。ローカルストレージ121は、KVS(Key-Value Store)であり、キー(key)と値(value)とのペアでデータを格納する。
【0052】
ローカルストレージ121には、Webブラウザ140および制御部152により複数種類の情報が登録される。該情報には、第1の制御情報121a、第2の制御情報121bおよび格納データ121cが含まれる。第1の制御情報121aおよび第2の制御情報121bは、Webブラウザ140により登録され、デバイス処理部150の処理に利用される。格納データ121cは、制御部152により登録され、Webブラウザ140の処理に利用される。
【0053】
第1の制御情報121aは、デバイス制御に関する指示を登録したものである。具体的には、keyとしてデバイス制御の命令の種別(実行/停止)(以下、命令種別ということがある)を登録する。valueとしてデバイス制御用のプログラムを特定するための文字列を登録する。
【0054】
例えば、第1の制御情報121aには、(key,value)のペア(Execute,Camera)が登録され得る。keyである“Execute”は、デバイスによる処理の実行指示であることを示す。なお、デバイスによる処理の停止指示は“Stop”の文字列で記述する。valueである“Camera”は、デバイス制御用のプログラムを特定するための文字列を示す。
【0055】
第2の制御情報121bは、デバイス制御に用いるパラメータを登録したものである。具体的には、keyとして設定する変数に対応する文字列を登録する。valueとしてパラメータに設定する値を登録する。
【0056】
例えば、第2の制御情報121bには、(key,value)のペア(param1,600x400)が登録され得る。keyである“param1”は、プログラム定義ファイルで定義されるparam1のパラメータに、valueの値“600x400”を設定することを示す。
【0057】
また、例えば、第2の制御情報121bには、(key,value)のペア(param2,3)が登録され得る。keyである“param2”は、プログラム定義ファイルで定義されるparam2のパラメータに、valueの値“3”を設定することを示す。
【0058】
格納データ121cは、撮像部107やバーコードリーダ12が取得したデータ(または該データを示す情報)を登録したものである。具体的には、keyとして格納したデータの種別(パス、データ本体およびエンコード形式など)を登録する。valueとして取得したデータを示す情報(パスの内容、データ本体およびエンコードしたデータ本体)を登録する。格納データ121cとしては、例えば図5(A)(B)(C)で示すような情報が登録され得る。
【0059】
例えば図5(A)では格納データ121cとして(key,value)のペア(path,.../img/common/img001.jpg)が登録され得る。keyである“path”は、valueに格納された情報が、デバイスにより取得されたデータ本体へのパスであることを示す。valueである“.../img/common/img001.jpg”は、デバイスにより取得されたデータ本体へのパスである。
【0060】
また、例えば図5(B)では格納データ121cとして(key,value)のペア(data,328931)が登録され得る。keyである“data”は、valueに格納された情報が、デバイスにより取得されたデータ本体であることを示す。valueである“328931”は、デバイスにより取得されたデータ本体である。
【0061】
また、例えば図5(C)で示すように、格納データ121cとして(key,value)のペア(base64,LS0tIW5nHJ・・・)が登録され得る。keyである“base64”は、valueに格納された情報が、デバイスにより取得したデータ本体をBase64でエンコードしたものであることを示す。valueである“LS0tIW5nHJ・・・”は、デバイスにより取得されたデータ本体をBase64によりエンコードしたものである。例えば、制御部152は、valueにバイナリデータを格納できない場合に画像などのバイナリデータをBase64でエンコードしてから、ローカルストレージ121に登録してもよい。
【0062】
なお、WebSQLDatabaseやローカルディレクトリの任意のファイルを用いる場合でも、ローカルストレージ121と同様のデータ構造を実装できる。ローカルディレクトリの任意のファイルを用いる場合には、例えば、CSV(Comma Separated Values)形式やXML形式のファイルを用いてもよい。
【0063】
HTML5で規定されるローカルストレージ121、WebSQLDataBaseおよびローカルディレクトリの任意のファイルなどは、データの有効期限の有無や設定値を任意に設定可能である。データを永続的に保持することも可能である。また、複数の異なるWebページやアプリケーションからのアクセスについても、制限の有無や制限範囲を任意に設定可能である。このため、任意のアプリケーションから容易にアクセス可能である。ここで、例えば、cookieを利用することも考えられる。しかし、cookieを利用する場合、有効期限、アクセス制限、サイズおよび個数などの仕様上の制約があり、扱い難い。これに対し、本実施の形態のようにローカルストレージ121などを用いることで、cookieに課されるような制約を受けずに、複数のアプリケーションにより各種データを容易に扱える。
【0064】
図6は、プログラム定義ファイルの例を示す図である。プログラム定義ファイル131は、記憶部130に格納される。プログラム定義ファイル131は、文字列とデバイス制御用のプログラムとの対応付けを定義した定義情報である。また、プログラム定義ファイル131には、該プログラムを実行する際に用いるパラメータも定義される。プログラム定義ファイル131には、レコード131a,131b,131c,131d,131e,131f,131g,131h,131i,131j,131kが含まれる。
【0065】
レコード131a,131e,131iは、該レコードよりも下の行に属するレコードの種別を示すものである。例えば、レコード131aには、“[Command][Execute]”と記述されている。これは、レコード131b,131c,131dが、命令種別“Execute”(動作実行)に対応するデバイス制御用のプログラムを定義した情報であることを示す。
【0066】
具体的には、レコード131bには、“Camera(1)=/program/ExecCamera.dat”と記述されている。これは、“Camera”という文字列に対してデバイス制御用のプログラム“/program/ExecCamera.dat”を対応付けたものであり、該プログラムがデバイスによる処理を実行する際に呼び出すものであることを示す。ここで、レコード131bで示されるプログラムは、撮像部107による静止画の撮像を制御するプログラムである。また、左辺の“Camera”の文字列に付加された“(1)”の文字列は、該プログラムが、撮像部107による一連の処理の最初に呼び出すものであることを示す。例えば、該プログラムの次に呼び出すプログラムに対応する文字列には、“(2)”を付す。更にその次であれば“(3)”を付す。単一のプログラムを呼び出して処理を行う場合には、“(1)”を付したレコードのみを定義する。
【0067】
レコード131c,131dも、レコード131bと同様の記述方法である。ここで、レコード131cは、移動通信部104の停止および近距離無線通信部105の起動を制御するプログラムを示すものとする。レコード131dは、バーコードリーダ12でのバーコードの読み取り、読み取ったコードのクライアント100への送信を制御するプログラムを示すものとする。このように、データ取得の一連の処理におけるデバイスの実行/停止を複数のプログラムに記述し、実行する順番を“(1)”、“(2)”のように記述する。
【0068】
また、例えば、レコード131eには、“[Command][Stop]”と記述されている。これは、レコード131fが、命令種別“Stop”(動作停止)に対応するデバイス制御用のプログラムを定義した情報であることを示す。
【0069】
具体的には、レコード131fには、“Camera(1)=/program/StopCamera.dat”と記述されている。これは、“Camera”という文字列に対してデバイス制御用のプログラム“/program/StopCamera.dat”を対応付けたものであり、該プログラムがデバイスの動作を停止する際に呼び出すものであることを示す。ここで、レコード131fで示されるプログラムは、撮像部107の動作停止を制御するプログラムである。なお、左辺の“Camera”の文字列に付加された“(1)”の文字列の示す意味は、レコード131bと同様である。
【0070】
レコード131g,131hも、レコード131fと同様の記述方法である。ここで、レコード131gは、バーコードリーダ12の停止を制御するプログラムを示すものとする。レコード131hは、近距離無線通信部105の停止および移動通信部104の起動を制御するプログラムを示すものとする。
【0071】
また、例えば、レコード131iには、“[parameteres][Execute]”と記述されている。これは、レコード131j,131kが、命令種別“Execute”に対応するデバイス制御用のプログラムを実行する際に、そのプログラムに入力するパラメータを定義した情報であることを示す。
【0072】
具体的には、レコード131jには、“Camera(1)=param1(size),param2(frequency)”と記述されている。これは、“Camera”という文字列に対して、命令種別“Execute”の制御用プログラム(レコード131bに対応)を実行する場合に、該プログラムに入力するパラメータを定義している。より具体的には、“param1”で指定された値は、該プログラム中のパラメータ“size”に設定すること、“param2”で指定された値は該プログラム中のパラメータ“frequency”に設定すること、を示す。ここで、パラメータ“size”は、撮像部107により撮像される画像データのサイズ(幅×高さの画素数)を示す。また、パラメータ“frequency”は、撮像部107による撮像の回数を示す。
【0073】
レコード131kも、レコード131jと同様の記述方法である。ここで、レコード131kは、レコード131cで示されるプログラムを実行する際に入力するパラメータを定義したものである。より具体的には、“param1”で指定された値は該プログラム中のパラメータ“mode”に設定すること、“param2”で指定された値は該プログラム中のパラメータ“connect”に設定することを示す。ここで、パラメータ“mode”は、接続のための所定のモードを指定する情報である。パラメータ“connect”は、Bluetooth接続に用いるプロファイルなどを指定する情報である。
【0074】
なお、“BScan”の文字列に対応付けられた制御用プログラムはレコード131c,131dの2種類存在している。これに対し、レコード131c,131kでは、左辺の“BScan”に付加された文字列“(1)”が一致している。これによって、レコード131c,131kを対応付けることができる。
【0075】
更に、パラメータの入力が不要な場合には、パラメータの定義は記述されない。また、制御用プログラムに対して定義するパラメータの数は、1つでもよいし、2つ以上の複数個でもよい。
【0076】
図7は、業務支援画面の例を示す図である。図7(A)は業務支援画面300を例示している。図7(B)は業務支援画面300aを例示している。
業務支援画面300は、取得するデータを選択するための画面である。保守員は、Webブラウザ140上で、業務支援画面300のURLを指定する。すると、Webブラウザ140は、サーバ200から該URLに対応するHTMLファイルを取得し、業務支援画面300をディスプレイ108aに表示させる。業務支援画面300には、撮像ボタン310、バーコード読取ボタン320および終了ボタン330が表示されている。
【0077】
撮像ボタン310は、保守対象の情報機器を撮像部107で撮像し、静止画のデータを取得するためのボタンである。バーコード読取ボタン320は、保守対象の情報機器に付されたバーコードを、バーコードリーダ12により読み取り、読取結果を取得するためのボタンである。終了ボタン330は、業務支援画面300を閉じて作業を終了するためのボタンである。終了ボタン330は、撮像ボタン310またはバーコード読取ボタン320を押下した後で、各ボタンによって実行された処理を終了するためのボタンとして用いてもよい。
【0078】
業務支援画面300aは、撮像ボタン310が押下された後、撮像部107が取得した静止画のデータを閲覧・選択するための画面である。例えば、業務支援画面300aの領域310aには、画像311a,312a,313aが表示されている。例えば、保守員は、領域310aに対してフリック操作(例えば、左右方向)する。すると、Webブラウザ140は領域310a内の表示をスクロールする(何れかの画像を中央に配置させる)。また、例えば、保守員は、画像311a,312a,313aに対してタップ操作する。すると、Webブラウザ140は、タップされた画像の選択を受け付け、該画像を更に拡大表示する、あるいは、サーバ200に送信する、などの処理を行う。
【0079】
図8は、業務支援画面のHTMLファイルの記述例を示す図である。HTMLファイル400では、業務支援画面300で示した表示内容に対応する記述を抜粋している。HTMLファイル400は、記述410,420を含む。
【0080】
記述410は、撮像ボタン310を記述したものである。撮像ボタン310が押下されたときに、所定のディレクトリに配置されたスクリプトファイル“Camera.js”内に定義された関数“ExecCamera()”を実行することを示す。
【0081】
記述420は、バーコード読取ボタン320を記述したものである。バーコード読取ボタン320が押下されたときに、所定のディレクトリに配置されたスクリプトファイル“BScan.js”内に定義された関数“ExecBScan()”を実行することを示す。
【0082】
図9は、スクリプトの記述例を示す図である。図9(A)はスクリプトファイル500(“Camera.js”)を示す。図9(B)はスクリプトファイル600(BScan.js)を示す。スクリプトファイル500,600は、例えば、JavaScript形式で記述される。
【0083】
スクリプトファイル500は、関数“ExecCamera()”、“StopCamera()”および“selectImg()”を含む。関数“ExecCamera()”は、撮像部107の実行制御を行うときに用いる関数である。関数“StopCamera()”は、撮像部107の停止制御を行うときに用いる関数である。関数“selectImg()”は、撮像部107が取得した画像データの表示および選択受付に用いる関数である。
【0084】
例えば、関数“ExecCamera()”は、コード510,520,530を含む。コード510,520,530は、(key,value)ペアをローカルストレージ121に登録する処理を記述したものである。
【0085】
コード510は、(Execute,Camera)を登録する処理である。コード520は、(param1,600x400)を登録する処理である。コード530は、(param2,3)を登録する処理である。
【0086】
なお、コード520,530の何れかまたは両方を含まなくてもよい。パラメータが指定されない場合には、制御部152は、デフォルトの設定によって撮像部107を制御する。
【0087】
また、例えば、関数“StopCamera()”は、コード540を含む。コード540は、(key,value)のペア(Stop,Camera)をローカルストレージ121に登録する処理である。
【0088】
スクリプトファイル600は、関数“ExecBScan()”および“StopBScan()”を含む。関数“ExecBScan()”は、バーコードリーダ12によるバーコード読取を行うときに用いる関数である。関数“StopBScan()”は、バーコード読取を終了するときに用いる関数である。関数“ExecBScan()”は、コード610,620,630を含む。コード610,620,630は、(key,value)ペアをローカルストレージ121に登録する処理を記述したものである。
【0089】
コード610は、(Execute,BScan)を登録する処理である。コード620は、(param1,mode01)を登録する処理である。コード630は、(param2,profile01)を登録する処理である。
【0090】
なお、コード620,630の何れかまたは両方を含まなくてもよい。パラメータが指定されない場合には、制御部152は、予め設定されたデフォルトのパラメータを用いて、移動通信部104、近距離無線通信部105およびバーコードリーダ12を制御する。
【0091】
また、例えば、関数“StopBScan()”は、コード640を含む。コード640は、(key,value)のペア(Stop,BScan)をローカルストレージ121に登録する処理である。
【0092】
また、スクリプトファイル500,600に記述された関数は、HTMLファイル400内に記述されてもよい。
次に、以上の構成のクライアント100の処理手順を説明する。以下の説明では、撮像部107で画像データを取得し、サーバ200へアップロードする制御を例示する。
【0093】
図10は、クライアントの処理例を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。なお、ステップS11の処理の直前では、ローカルストレージ121内のデータは全てクリアされているものとする。
【0094】
(ステップS11)Webブラウザ140は、サーバ200からHTMLファイル400を受信する。Webブラウザ140は、HTMLファイル400に基づいて、業務支援画面300をディスプレイ108aに表示させる。
【0095】
(ステップS12)Webブラウザ140は、保守員による撮像ボタン310へのタップ操作を受け付ける。
(ステップS13)Webブラウザ140は、ローカルストレージ121に制御情報を登録する。具体的には、(key,value)のペア(Execute,Camera)を登録する。また、(param1,600x400)および(param2,3)を登録する。
【0096】
(ステップS14)判定部151は、ローカルストレージ121を監視している。判定部151は、ステップS13でローカルストレージ121に(key,value)=(Execute,Camera)の制御情報が登録されたことを検出する。すると、プログラム定義ファイル131を参照し、命令種別“Execute”に係る制御用プログラムに対応する文字列が、key“Execute”のvalueに含まれるか判定する。含まれる場合、処理をステップS15に進める。含まれない場合、処理を終了する。ここで、「制御用プログラムに対応する文字列」とは、レコード131b、131c、131dの左辺の文字列のうち“()”記号と“()”記号内の数値を除く文字列である。ここでは、key“Execute”に対して、value“Camera”がローカルストレージ121に登録されている。このとき、判定部151は、プログラム定義ファイル131のレコード131bの左辺で示される文字列“Camera”が、制御情報に含まれると判定する。
【0097】
(ステップS15)判定部151は、制御情報で指定された文字列に対応する制御用プログラムを特定する。具体的には、判定部151は、レコード131bの左辺の文字列“Camera”に対応する“/program/ExecCamera.dat”を特定する。判定部151は、特定したプログラムを制御部152に通知する。
【0098】
(ステップS16)制御部152は、プログラム定義ファイル131を参照し、ステップS15で特定したプログラム(レコード131b)に対応するパラメータ定義用の文字列“param1”および“param2”を特定する(レコード131jに相当)。そして、制御部152は、ローカルストレージ121のkeyにパラメータ定義用の文字列を指定して、そのvalueを取得する。これによって、制御部152は、パラメータ“size”の設定値“600x400”およびパラメータ“frequency”の設定値“3”を得る。なお、パラメータ定義用の文字列がプログラム定義ファイル131内に定義されていない場合、あるいは、定義されていてもローカルストレージ121に対応するkeyが登録されていない場合には、本ステップをスキップしてステップS18に進む。
【0099】
(ステップS17)制御部152は、判定部151から通知されたプログラムを呼び出して、撮像部107を制御する。詳細は後述する。
(ステップS18)制御部152は、撮像部107から画像データを取得する。例えば、撮像部107が3回撮像を行っていれば、制御部152は画像データを3つ取得する。制御部152は、所定のディレクトリ(例えば、“.../img/common/”)に画像データ(例えば、ファイル名“img001.jpg”)を書込む。複数の画像データがあれば、ファイル名を変更して複数の画像データを書込む。
【0100】
(ステップS19)制御部152は、画像データのパスをローカルストレージ121に登録する。具体的には、(key,value)のペア(path,.../img/common/img001.jpg)を登録する。keyである“path”は、valueが画像データへのパスを示す情報であることを示す。複数の画像データがあれば、複数のパスを登録する。
【0101】
(ステップS20)Webブラウザ140は、ローカルストレージ121に新たな情報が登録されたことを検出する。すると、Webブラウザ140は、撮像部107の停止を指示する制御情報をローカルストレージ121に登録する。判定部151は、該制御情報の登録を検出すると、ステップS14,S15と同様の処理を行う。制御部152は、判定部151の判定結果に基づいて、撮像部107の停止を制御する。詳細は後述する。
【0102】
(ステップS21)Webブラウザ140は、keyとして“path”を指定して、ローカルストレージ121からパスの情報を取得する。Webブラウザ140は、該パスの指定に沿って、画像データを取得する。Webブラウザ140は、取得した画像データに基づいて、画像データを選択させるための業務支援画面300aを生成する。Webブラウザ140は、業務支援画面300aをディスプレイ108aに表示させる。
【0103】
(ステップS22)Webブラウザ140は、保守員による画像の選択操作(タップ操作)の入力を受け付ける。例えば、画像312aの選択操作の入力を受け付ける。
(ステップS23)Webブラウザ140は、選択された画像312aに対応する画像データをサーバ200にアップロードする。アップロードのための処理は、例えば、HTMLファイル400に予め記述される。
【0104】
(ステップS24)Webブラウザ140は、ローカルストレージ121に格納されたデータを全て削除する。
ここで、ステップS19では、画像データへのパスに代えて、データ本体、あるいは、データ本体をBase64などにエンコードしたデータをローカルストレージ121に登録してもよい。その場合、keyには、格納したデータに応じて“data”や“base64”などの文字列を登録する(図5参照)。なお、データ形式として、例えば“base64”が指定されていた場合、Webブラウザ140は、ローカルストレージ121から取得したデータをBase64でデコードすることでデータ本体を復元し得る。何れの形式でデータをローカルストレージ121に格納するかは、制御部152に予め設定される。
【0105】
次に、ステップS17のデバイス実行制御の手順を説明する。
図11は、デバイス実行制御の処理例を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
【0106】
(ステップS31)制御部152は、判定部151から通知された撮像部107の制御用プログラムを呼び出す。このとき、ステップS16で取得したパラメータがある場合には、該パラメータを呼び出したプログラムに入力する。該プログラムはCPU101により実行され、撮像部107が起動・実行制御される。
【0107】
(ステップS32)撮像部107は、保守対象の情報機器を撮像する。撮像方法は、例えば、ステップS31で入力されたパラメータにより指定される。例えば、“size”に“600x400”が入力された場合、幅600ピクセル、高さ400ピクセルの解像度で撮像する。また、例えば、“frequency”に“3”が入力された場合、所定の時間間隔で3回撮像する。
【0108】
(ステップS33)撮像部107は、撮像した画像データを制御部152に出力する。例えば、3回撮像していれば、画像データを3つ出力する。
このようにして、クライアント100は、業務支援画面300に対する操作に応じた制御情報をローカルストレージ121に登録する。クライアント100は、ローカルストレージ121内の制御情報に応じたデバイス制御用のプログラムを呼び出して、デバイスを制御する。
【0109】
次に、ステップS20のデバイス停止制御の手順を説明する。
図12は、デバイス停止制御の処理例を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
【0110】
(ステップS41)Webブラウザ140は、ローカルストレージ121に画像データのパスが登録されたことを検出すると、撮像部107の停止用の制御情報をローカルストレージ121に登録する。具体的には、(key,value)のペア(Stop,Camera)を登録する。
【0111】
(ステップS42)判定部151は、ステップS41でローカルストレージ121に(key,value)=(Stop,Camera)の制御情報が登録されたことを検出する。すると、プログラム定義ファイル131を参照し、命令種別“Stop”に係る制御用プログラムに対応する文字列“Camera”が、ローカルストレージ121内のkey“Stop”に対するvalueとして含まれることを検出する。
【0112】
(ステップS43)判定部151は、制御情報で指定された文字列に対応する命令種別“Stop”の制御用プログラムを特定する。具体的には、判定部151は、レコード131fの左辺の文字列“Camera”に対応する“/program/StopCamera.dat”を特定する。判定部151は、特定したプログラムを制御部152に通知する。
【0113】
(ステップS44)制御部152は、判定部151から通知された撮像部107の制御用プログラムを呼び出す。なお、本例では、ステップS41でローカルストレージ121にパラメータの登録がなされないものとしている。これに対し、停止制御を行う場合であっても、実行制御の場合と同様に、パラメータを指定してもよい。
【0114】
(ステップS45)制御部152が呼び出したプログラムがCPU101により実行され、撮像部107が停止される。
このようにして、クライアント100は、デバイスによってデータが取得されたことを検出し、該デバイスを停止するための制御情報をローカルストレージ121に登録する。
【0115】
なお、デバイス停止制御の処理は、例えば、画像データのアップロードを完了した直後など、別のタイミングで実行してもよい。例えば、図10において、ステップS20は、ステップS21〜S23の何れかのステップの処理が完了した直後に実行されてもよい。また、例えば、ステップS20はステップS21〜S23と並行に実行されてもよい。
【0116】
次に、撮像部107の制御を行う際の構成間の関係を具体的に説明する。
図13は、撮像部の制御例を示すシーケンス図である。以下、図13に示す処理をステップ番号に沿って説明する。
【0117】
(ステップST101)判定部151は、ローカルストレージ121を定期的に監視している。判定部151は、ローカルストレージ121の更新をチェックする。本ステップの段階では、ローカルストレージ121には何れの情報も登録されていない。このため、判定部151は更新を検出しない。
【0118】
(ステップST102)サーバ200は、Webブラウザ140からのリクエストに応じて、業務支援画面300のHTMLファイル400を送信する。Webブラウザ140は、サーバ200からHTMLファイル400を受信する。
【0119】
(ステップST103)Webブラウザ140は、業務支援画面300をディスプレイ108aに表示させる。Webブラウザ140は、撮像ボタン310に対するタップ操作を受け付ける。Webブラウザ140は、制御情報(key,value)=(Execute,Camera)などをローカルストレージ121に登録する。すると、Webブラウザ140は、ローカルストレージ121の所定周期での更新監視を開始する。
【0120】
(ステップST104)判定部151は、ローカルストレージ121の更新をチェックする。判定部151は、ローカルストレージ121が更新されたことを検出する。
(ステップST105)判定部151は、ステップST103でWebブラウザ140が登録した制御情報をローカルストレージ121から取得する。
【0121】
(ステップST106)判定部151は、プログラム定義ファイル131に含まれる(命令種別“Execute”に係る)文字列“Camera”が制御情報のkey“Execute”に対応するvalueに含まれると判定する。すると、判定部151は、プログラム定義ファイル131を参照して、文字列“Camera”に対応する制御用プログラム(レコード131bに対応)を制御部152に通知する。
【0122】
(ステップST107)Webブラウザ140は、ローカルストレージ121の更新をチェックする。本ステップの段階では、ローカルストレージ121は更新されていない。このため、Webブラウザ140は更新を検出しない。
【0123】
(ステップST108)制御部152は、判定部151から通知された制御用プログラムを呼び出して、撮像部107による情報機器の撮像を制御する。制御情報としてパラメータが指定されている場合には、該パラメータを制御用プログラムに入力して撮像部107を制御する。
【0124】
(ステップST109)制御部152は、撮像部107が生成した画像データを取得する。
(ステップST110)制御部152は、撮像部107が生成した画像データを所定のディレクトリに格納する。制御部152は、該画像データのパスをローカルストレージ121に登録する。例えば、(key,value)=(path,.../img/common/img001.jpg)である。
【0125】
(ステップST111)Webブラウザ140は、ローカルストレージ121の更新をチェックする。Webブラウザ140は、ローカルストレージ121が更新されたことを検出する。Webブラウザ140は、監視を停止する。
【0126】
(ステップST112)Webブラウザ140は、制御情報(key,value)=(Stop,Camera)をローカルストレージ121に登録する。すると、判定部151および制御部152により、撮像部107の停止制御が開始される(後述する)。
【0127】
(ステップST113)Webブラウザ140は、ローカルストレージ121から新たに登録された画像データのパスを取得する。
(ステップST114)Webブラウザ140は、該パスから画像データを取得して、サーバ200に送信する。サーバ200は、該画像データを受信して、所定の記憶部に格納する。
【0128】
(ステップST115)Webブラウザ140は、ローカルストレージ121に格納されたデータ(制御情報や取得されたデータ)を消去する。
次に、ステップST112から派生する撮像部107の停止制御を説明する。
【0129】
図14は、撮像部の制御例を示すシーケンス図(続き)である。以下、図14に示す処理をステップ番号に沿って説明する。
(ステップST121)判定部151は、ローカルストレージ121の更新をチェックする。判定部151は、ローカルストレージ121が更新されたことを検出する。なお、本ステップは、ステップST114よりも前に実行される。
【0130】
(ステップST122)判定部151は、Webブラウザ140がステップST112で登録した制御情報をローカルストレージ121から取得する。
(ステップST123)判定部151は、プログラム定義ファイル131に含まれる(命令種別“Stop”に係る)文字列“Camera”が制御情報のkey“Stop”に対応するvalueに含まれると判定する。すると、判定部151は、プログラム定義ファイル131を参照して、文字列“Camera”に対応する制御用プログラム(レコード131fに対応)を制御部152に通知する。
【0131】
(ステップST124)制御部152は、判定部151から通知された制御プログラムを呼び出して、撮像部107を停止させる。
このようにして、クライアント100は、撮像部107の一連の制御を行う。
【0132】
次に、移動通信部104、近距離無線通信部105およびバーコードリーダ12を制御し、情報機器に付されたバーコードを読み取る処理の例を説明する。
図15は、バーコード読取の制御例を示すシーケンス図である。以下、図15に示す処理をステップ番号に沿って説明する。
【0133】
(ステップST131)判定部151は、ローカルストレージ121を定期的に監視している。判定部151は、ローカルストレージ121の更新をチェックする。本ステップの段階では、ローカルストレージ121には何れの情報も登録されていない。このため、判定部151は更新を検出しない。
【0134】
(ステップST132)サーバ200は、Webブラウザ140からのリクエストに応じて、業務支援画面300のHTMLファイル400を送信する。Webブラウザ140は、サーバ200からHTMLファイル400を受信する。
【0135】
(ステップST133)Webブラウザ140は、業務支援画面300をディスプレイ108aに表示させる。Webブラウザ140は、バーコード読取ボタン320に対するタップ操作を受け付ける。Webブラウザ140は、制御情報(key,value)=(Execute,BScan)などをローカルストレージ121に登録する。すると、Webブラウザ140は、ローカルストレージ121の所定周期での更新監視を開始する。
【0136】
(ステップST134)判定部151は、ローカルストレージ121の更新をチェックする。判定部151は、ローカルストレージ121が更新されたことを検出する。
(ステップST135)判定部151は、ステップST133でWebブラウザ140が登録した制御情報をローカルストレージ121から取得する。
【0137】
(ステップST136)判定部151は、プログラム定義ファイル131に含まれる(命令種別“Execute”に係る)文字列“BScan”が制御情報のkey“Execute”に対応するvalueに含まれると判定する。すると、判定部151は、プログラム定義ファイル131を参照して、文字列“BScan”に対応する制御用プログラム(レコード131c,131dに対応)を“()”で定義された順番にしたがって、制御部152に通知する。
【0138】
(ステップST137)Webブラウザ140は、ローカルストレージ121の更新をチェックする。本ステップの段階では、ローカルストレージ121は更新されていない。このため、Webブラウザ140は更新を検出しない。
【0139】
(ステップST138)制御部152は、判定部151から通知された最初の制御用プログラム(/program/ExecBT.dat)を呼び出して、移動通信部104を停止させる。
【0140】
(ステップST139)制御部152は、更に該プログラムにより、近距離無線通信部105を起動し、バーコードリーダ12との通信を確立させる。
(ステップST140)制御部152は、判定部151から通知された次の制御用プログラム(/program/ExecBR.dat)を呼び出し、近距離無線通信部105を介したバーコードリーダ12のバーコード読取を制御する。なお、ステップST138〜ST140において、制御情報としてパラメータが指定されている場合には、該パラメータを対応する各制御用プログラムに入力して各デバイスを制御する。
【0141】
(ステップST141)制御部152は、近距離無線通信部105を介してバーコードリーダ12が読み取ったコードデータ(例えば、“328931”)を取得する。
(ステップST142)制御部152は、取得した読取データをローカルストレージ121に登録する。例えば、(key,value)=(data,328931)である。
【0142】
(ステップST143)Webブラウザ140は、ローカルストレージ121の更新をチェックする。Webブラウザ140は、ローカルストレージ121が更新されたことを検出する。Webブラウザ140は、監視を停止する。
【0143】
(ステップST144)Webブラウザ140は、制御情報(key,value)=(Stop,BScan)をローカルストレージ121に登録する。すると、判定部151および制御部152により、バーコードリーダ12の停止制御が開始される(後述する)。
【0144】
(ステップST145)Webブラウザ140は、ローカルストレージ121から新たに登録された読取データを取得する。このとき、読取データのkeyに“data”が指定されているため、Webブラウザ140は該読取データをデータ本体であると認識できる。
【0145】
(ステップST146)Webブラウザ140は、取得した読取データをサーバ200に送信する。サーバ200は、該読取データを受信して、所定の記憶部に格納する。
(ステップST147)Webブラウザ140は、ローカルストレージ121に格納されたデータ(制御情報や取得されたデータ)を消去する。
【0146】
次に、ステップST144から派生するバーコード読取処理の停止制御を説明する。
図16は、バーコード読取の制御例を示すシーケンス図(続き)である。以下、図16に示す処理をステップ番号に沿って説明する。
【0147】
(ステップST151)判定部151は、ローカルストレージ121の更新をチェックする。判定部151は、ローカルストレージ121が更新されたことを検出する。なお、本ステップはステップST147よりも前に実行される。
【0148】
(ステップST152)判定部151は、Webブラウザ140がステップST144で登録した制御情報をローカルストレージ121から取得する。
(ステップST153)判定部151は、プログラム定義ファイル131に含まれる(命令種別“Stop”に係る)文字列“BScan”が制御情報のkey“Stop”に対応するvalueに含まれると判定する。すると、判定部151は、プログラム定義ファイル131を参照して、文字列“BScan”に対応する制御用プログラム(レコード131g,131hに対応)を“()”で定義された順番にしたがって、制御部152に通知する。
【0149】
(ステップST154)制御部152は、判定部151から通知された最初の制御用プログラム(/program/StopBR.dat)を呼び出して、近距離無線通信部105とバーコードリーダ12との通信を切断させる。
【0150】
(ステップST155)制御部152は、判定部151から通知された次の制御用プログラム(/program/StopBT.dat)を呼び出して、近距離無線通信部105を停止させる。
【0151】
(ステップST156)制御部152は、更に該プログラムにより、移動通信部104を起動する。
このようにして、クライアント100はバーコード読取を制御する。
【0152】
以上のように、サーバ200は、クライアント100で利用させたいデバイスをHTMLファイル400の記述により指定できる。HTMLファイル400は、Webブラウザ140で解析できる。Webブラウザ140は、クライアント100で一般的に利用可能なソフトウェアである。このため、例えば、サーバ200でデバイスの指定を追加・変更したい場合には、制御情報(key−valueペア)の設定値、あるいは、スクリプト中の関数の変更で対応可能である。よって、クライアント100やサーバ200においてアプリケーションなどの変更を伴わずに、デバイス指定の設定を容易に行える。更に、クライアント100は、プログラム定義ファイル131で定義された順番に沿ってプログラムを呼び出すことで、複数のデバイスによる一連の処理を実行できる。これにより、サーバ200から複数のデバイスを用いた制御の指定も容易に行える。
【0153】
また、呼び出し対象のプログラムに入力させるパラメータを指定することもできる。具体的には、パラメータを示す文字列“param”などをkeyとして、ローカルストレージ121に登録する。制御部152は、該keyとプログラム定義ファイル131とを参照して、登録されたパラメータが何れのプログラムに入力すべきものであるかを判断する。このようにして、デバイス指定に加えて、該デバイスを制御する際のパラメータの指定も容易に行える。
【0154】
また、制御部152は、ローカルストレージ121にデバイスが取得したデータに関する情報を格納する。これによって、他のアプリケーションによる該データを用いた処理を容易に実現することもできる。
【0155】
その際、制御部152は、格納するデータをvalueに、データ形式をkeyに設定する。これによって、アプリケーションは該データのデータ形式を容易に識別できる。例えば、keyに“path”が登録されていれば、データのパスであると識別できる。また、例えばkeyに“data”が登録されていれば、データ本体であると識別できる。また、例えばkeyに“base64”が登録されていれば、Base64でエンコードされたデータであると識別できる。これら以外の他のデータ形式を登録してもよい。具体的には、データの属性(例えば、データが備品コードであることを示す情報など)、取り扱い方(サーバ送信用およびサーバ非送信用など)などを登録することも考えられる。
【0156】
[第3の実施の形態]
次に、第3の実施の形態を説明する。前述の第2の実施の形態との相違点を主に説明し、同様の事項の説明を省略する。
【0157】
第2の実施の形態では、デバイス処理部150の機能をWebブラウザとは別個のアプリケーションにより実装する例を説明した。一方、デバイス処理部150の機能をWebブラウザに設けてもよい。そこで、第3の実施の形態では、デバイス処理部150の機能をWebブラウザに設ける場合を例示する。
【0158】
ここで、第3の実施の形態の情報処理システムの全体構成は、図2で説明した第2の実施の形態の情報処理システムの全体構成と同様である。また、第3の実施の形態のクライアントのハードウェア例は、図3で説明した第2の実施の形態のクライアント100のハードウェア例と同様である。なお、第3の実施の形態のクライアントを第2の実施の形態のクライアント100と区別して、クライアント100aと称する。
【0159】
図17は、第3の実施の形態のクライアントのソフトウェア例を示す図である。図17に示すユニットの一部または全部は、クライアント100aが実行するプログラムのモジュールであってもよい。また、図4に示すユニットの一部または全部は、FPGAやASICなどの電子回路であってもよい。
【0160】
クライアント100aは、ファイルI/O部120、記憶部130およびWebブラウザ140aを有する。
ファイルI/O部120および記憶部130は、図4で同一の符号および名称を付して説明した第2の実施の形態の構成と同一である。
【0161】
Webブラウザ140aは、HTML処理部141、判定部142および制御部143を有する。
HTML処理部141は、サーバ200から取得したHTMLファイルに基づき、ディスプレイ108aに業務メニューなどの画面を表示させる。HTML処理部141は、該画面に対し、タッチパネル109aやキーパッド109bを用いた所定の操作入力を受け付ける。すると、HTML処理部141は、ファイルI/O部120に該操作入力に応じた所定の文字列を含む制御情報を登録する。すなわち、HTML処理部141は、図4で説明した第2の実施の形態のWebブラウザ140の主な機能を担う。
【0162】
判定部142は、ファイルI/O部120を監視する。判定部142は、HTML処理部141によりファイルI/O部120に制御情報が登録されたことを検出する。すると、判定部142は、記憶部130に記憶されたプログラム定義ファイルを参照して、プログラム定義ファイルで示される文字列が、制御情報に含まれているかを判定する。
【0163】
制御部143は、判定部142によりプログラム定義ファイルで示される文字列が制御情報に含まれていると判定されると、プログラム定義ファイルを参照して、該文字列に対応するプログラムを特定する。制御部143は、特定したプログラムを呼び出すことで、移動通信部104、近距離無線通信部105および撮像部107などのデバイスを制御する。
【0164】
また、制御部143は、デバイスからデータを取得する。例えば、撮像部107から撮像部107が撮像して得た画像データを取得する。また、例えば、バーコードリーダ12が読み取ったバーコードの値を近距離無線通信部105から取得する。制御部143は、デバイスから受け取ったデータを示す情報を、ファイルI/O部120に格納する。HTML処理部141により、デバイスから取得したデータに基づく処理を実行させるためである。例えば、HTML処理部141は、デバイスから取得したデータをディスプレイ108aに表示させることができる。また、HTML処理部141は、選択されたデータをサーバ200に送信することができる。
【0165】
ここで、第3の実施の形態のクライアント100aは、第1の実施の形態の情報処理装置1の一例である。また、判定部142は、判定手段1eの一例である。制御部143は、制御手段1fの一例である。
【0166】
このような構成のクライアント100aもクライアント100と同様の処理を実行可能である。具体的には、第2の実施の形態の判定部151の処理を判定部142が行う。また、第2の実施の形態の制御部152の処理を制御部143が行う。
【0167】
このように、判定部142および制御部143の機能をWebブラウザ140aに設けてもよい。この場合にも、第2の実施の形態と同様の効果を得ることができる。
以上、本発明のデバイス制御プログラム、情報処理装置およびデバイス制御方法を図示の実施の形態に基づいて説明したが、これらに限定されるものではなく、各部の構成は同様の機能を有する任意の構成のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。更に、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【符号の説明】
【0168】
1 情報処理装置
1a 表示装置
1b 画面情報処理手段
1c 第1の記憶手段
1d 第2の記憶手段
1e 判定手段
1f 制御手段
1g デバイス
2 制御情報
2a,3a 文字列
3 定義情報
3b プログラム

【特許請求の範囲】
【請求項1】
受け付ける操作入力に応じた文字列を含む画面情報に基づいて表示装置に表示された画面への前記操作入力に対して、前記文字列を含む制御情報が第1の記憶手段に登録されたことを検出すると、第2の記憶手段に記憶された、デバイスを制御するための1またはそれ以上のプログラムと1またはそれ以上の文字列との対応関係を示す定義情報に示される何れかの文字列が、前記制御情報に含まれているか判定し、
前記定義情報で示される何れかの文字列が含まれていると判定されたとき、前記定義情報を参照して、判定された該文字列に対応付けられたプログラムを呼び出すことで、デバイスを制御する、
処理をコンピュータに実行させるデバイス制御プログラム。
【請求項2】
前記画面情報および前記制御情報は、操作入力に応じたデバイスに対する命令の種別を含み、
前記定義情報には、デバイスに対する命令の種別ごとに前記対応関係が定義され、
前記制御情報に含まれる命令の種別に応じた前記定義情報内の前記対応関係を参照して、該対応関係に示される何れかの文字列が、前記制御情報に含まれているか判定する、
請求項1記載のデバイス制御プログラム。
【請求項3】
前記命令の種別には、前記デバイスを用いた処理の実行および停止が含まれる、請求項2記載のデバイス制御プログラム。
【請求項4】
前記定義情報には、前記文字列に対して複数のプログラムと複数のプログラムそれぞれを実行する順序とが対応付けられており、
前記制御情報に前記文字列が含まれる場合、前記定義情報に設定された順序で当該複数のプログラムそれぞれを呼び出すことで、複数のデバイスを順次制御する、
請求項1乃至3の何れか一項に記載のデバイス制御プログラム。
【請求項5】
前記画面情報および前記制御情報は、操作入力に応じた1またはそれ以上のパラメータに対する設定情報を含み、
前記定義情報には、文字列と1またはそれ以上のパラメータとの対応付けが定義され、
前記定義情報で示される何れかの文字列が前記制御情報に含まれていると判定されたとき、前記定義情報を参照して、判定された該文字列に対応付けられたパラメータに、前記制御情報に含まれる前記設定情報を設定して、該パラメータを呼び出したプログラムに入力し、実行することで、デバイスを制御する、
請求項1乃至4の何れか一項に記載のデバイス制御プログラム。
【請求項6】
呼び出したプログラムによりデバイスを制御することで、該デバイスが取得したデータを取得し、該データまたは該データを示す情報の何れかである格納データと前記格納データが該データまたは該データを示す情報の何れであるかを示す情報とを対応付けて前記第1の記憶手段に格納する、請求項1乃至5の何れか一項に記載のデバイス制御プログラム。
【請求項7】
前記制御情報は、前記画面情報を処理するウェブブラウザにより前記第1の記憶手段に登録される、請求項1乃至6の何れか一項に記載のデバイス制御プログラム。
【請求項8】
前記第1の記憶手段は、HTML5で規定されるローカルストレージ、ウェブSQLデータベースまたは任意のローカルディレクトリの何れかである、請求項7記載のデバイス制御プログラム。
【請求項9】
所定の文字列を含む制御情報を記憶する第1の記憶手段と、
デバイスを制御するための1またはそれ以上のプログラムと1またはそれ以上の文字列との対応関係を示す定義情報を記憶する第2の記憶手段と、
受け付ける操作入力に応じた文字列を含む画面情報に基づいて表示装置に表示された画面への前記操作入力に対して、前記文字列を含む前記制御情報が第1の記憶手段に登録されたことを検出すると、前記定義情報に示される何れかの文字列が、前記制御情報に含まれているか判定する判定手段と、
前記定義情報で示される何れかの文字列が含まれていると判定されたとき、前記定義情報を参照して、判定された該文字列に対応付けられたプログラムを呼び出すことで、デバイスを制御する制御手段と、
を有する情報処理装置。
【請求項10】
コンピュータが実行するデバイス制御方法であって、
受け付ける操作入力に応じた文字列を含む画面情報に基づいて表示装置に表示された画面への前記操作入力に対して、前記文字列を含む制御情報が第1の記憶手段に登録されたことを検出すると、第2の記憶手段に記憶された、デバイスを制御するための1またはそれ以上のプログラムと1またはそれ以上の文字列との対応関係を示す定義情報に示される何れかの文字列が、前記制御情報に含まれているか判定し、
前記定義情報で示される何れかの文字列が含まれていると判定されたとき、前記定義情報を参照して、判定された該文字列に対応付けられたプログラムを呼び出すことで、デバイスを制御する、
デバイス制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2013−77151(P2013−77151A)
【公開日】平成25年4月25日(2013.4.25)
【国際特許分類】
【出願番号】特願2011−216413(P2011−216413)
【出願日】平成23年9月30日(2011.9.30)
【出願人】(399076998)株式会社富士通ビー・エス・シー (56)
【Fターム(参考)】