JP2007140983A - リモート操作端末装置 - Google Patents

リモート操作端末装置 Download PDF

Info

Publication number
JP2007140983A
JP2007140983A JP2005334812A JP2005334812A JP2007140983A JP 2007140983 A JP2007140983 A JP 2007140983A JP 2005334812 A JP2005334812 A JP 2005334812A JP 2005334812 A JP2005334812 A JP 2005334812A JP 2007140983 A JP2007140983 A JP 2007140983A
Authority
JP
Japan
Prior art keywords
template
operation terminal
data
information
remote operation
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.)
Pending
Application number
JP2005334812A
Other languages
English (en)
Inventor
Shigeki Hirooka
茂樹 弘岡
Shigeki Mori
重樹 森
Satoru Mamiya
悟 間宮
Naoko Yamamoto
直子 山本
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2005334812A priority Critical patent/JP2007140983A/ja
Publication of JP2007140983A publication Critical patent/JP2007140983A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】多種のデバイスと操作端末自体に適したUIを生成することを目的とする。
【解決手段】デバイスとネットワークにより接続された、前記デバイスを操作するリモート操作端末装置であって、前記デバイスよりデバイス情報を取得する取得手段と、前記デバイスに対応したデバイステンプレートと、前記取得手段で取得したデバイス情報に基づいて、前記デバイステンプレートを編集する編集手段とを有することを特徴とするリモート操作端末装置等、を提供する。
【選択図】図1

Description

本発明はリモート操作端末装置に関し、例えばデバイスから取得したデバイス情報を利用して、ユーザインタフェースを構築する際に用いて好適な技術に関する。
従来、ネットワークを介してデバイスの操作を行う際、操作端末は、予め操作対象であるデバイスについて、操作信号を送るための通信プロトコル、操作信号の意味、操作信号自体の送信手続き、操作範囲情報及びデバイスからのフィードバック信号を処理する手続きなどの情報を知っている必要があった。
即ち、操作端末においては、操作対象のデバイス個別に対応したレイアウト情報を含むユーザインタフェース(以下UIと略す)を構成する為の、専用の操作用アプリケーションが必要であった。この為、操作用アプリケーションの追加や変更ができない操作端末の場合は、新たな種類のデバイスに応じて新たな操作端末が必要であった。
この様な不便を解決する為に、ネットワーク及びプロトコルとして広く標準として使用されている物を利用し、デバイスを種別に応じて分類分けし、同じデバイス種別のものについては、共通の操作を共通のUIで操作するリモート操作の仕組みが存在している。
例えば、UPnPの仕組みを使用する事で、デバイス及び操作端末のネットワークにおける発見、探索、能力交換、制御、応答、及び表示機能などの手続きを共通化する事が可能となる。これにより、デバイス及び操作端末がUPnPに対応しており、尚且つ操作端末が操作可能なデバイス種別のものであれば、デバイスのメーカーや機種形式に関わらず、リモート操作を行う事が可能となっている。
この時、操作端末は、同一のデバイス種別のデバイスであっても、例えば機能の有無や操作のパラメータ範囲など、各デバイス固有の機能差異を吸収する為に、UIを構成して操作を行う前に、操作をしようとするデバイスのデバイス情報を取得する。そして、その内容に基づき操作アプリケーション内の条件判定により、最終的なUIの構成を行っていた。あるいは、デバイスから前記デバイスに適した標準的な文書形式のUIデータを得ることにより、UIを構成していた。
また、前記の様な標準に依らず、操作端末において、UIを構成する為のデバイス情報として、より多種多様の情報を取得する事で、デバイスの状態変化や、複数のデバイスによる協調動作に対応する為に動的にUIを構成する為の数々の技術が開示されている。
操作されるデバイス自身が操作画面を構成する為のGUI部品を保持し、また当該GUI部品は自身の機能を示すアプリケーション情報を保持し、操作端末は、デバイスより前述のGUI部品を読み込み、前記アプリケーション情報を用いてUIを構成する。これにより、各デバイスの各機能に適したUIを操作端末において動的に構成する事で、各デバイスを統合的に動作させる技術が開示されている(例えば、特許文献1参照)。
また、複数のデバイスを操作端末において制御する際に、当該制御を仲介するサーバを設け、複数のデバイスの状態関連情報を含むデバイス情報を当該仲介サーバで取得する。そして、該仲介サーバにおいて、前述の状態関連情報に基づき、UIを構成する為の定義データを端末装置に送信する事で、複数のデバイスを統合して制御する為のUIを構成する技術が開示されている(例えば、特許文献2参照)。
また、操作端末とは別のデバイス管理装置において、デバイスより取得したデバイス情報をXML(eXtensible Markup Language)データとして保持する。そして、UIを表示する様に操作端末から要求された際には、デバイスに関連する情報及び制御端末に関連する情報に基づいて選択された、XMLデータ変換の為の情報を含むスタイルシートをテンプレートの如く利用して前述のXMLデータを変換する。そして、これを操作端末において表示する技術が開示されている(例えば、特許文献3参照)。
特開2000−333269号公報 特開2003−280731号公報 特開2004−185541号公報
しかし、前記のUPnPの仕組みを利用する事で、操作端末で構成されるUIは、同一の操作端末上においては、UI部品やレイアウト等のUIの見た目や操作感がメーカーや機種形式に関わらず同一のものとなる為に、UIによる差別化が図り辛いものであった。
さらに、操作が可能なはずのデバイス種別のデバイスであっても、操作端末が知らない機能や、新たなデバイス種別のデバイスについては、操作アプリケーションにおける条件判定が行えない。その結果、操作端末内のアプリケーションを変更しない限り、当該デバイスの新機能や新デバイスの操作自体行う事は出来なかった。
さらに、デバイスから該デバイスに適した標準的な文書形式のUIデータを得ることによりUIを構成する場合は、デバイスが保持している操作端末によらないUIデータを利用するため、操作端末の画面サイズなどによって操作性の悪いものになる場合があった。
さらに、特許文献1においては、操作されるデバイス自身がGUI部品及び当該GUI部品の機能情報を保持し、操作端末がこれらのオブジェクトを読み込む事でUIを構成する。このため、多くのUIの為の画面を持つデバイスの場合は、デバイスの持つデータ量及び操作端末に送るデータ量が莫大な物となってしまうという問題点があった。また、操作端末においても、GUI部品の機能情報を理解し、これに基づいて実行する仕組みが必要となる。さらに、操作端末上で、簡単にUIのGUI部品等のデザインを変更する事は不可能であるという問題点もあった。
さらに、特許文献2においては、デバイスと操作端末の他に、統合されたUIを構成する為の仲介サーバが必要である。また、仲介サーバは予め決められたデバイス同士の組み合わせにしか対応しておらず、それ以外のデバイスではUIが構成されないという問題点があった。また、デバイスの状態関連情報は仲介サーバで使用される為に、操作端末において状態関連情報を基にUIの変更が行えないという問題点もあった。
さらに、特許文献3においては、操作端末とは別のデバイス管理装置が必要であり、また、当該デバイス管理装置においては、デバイスの状態によりテンプレートを選択変更する構成である。このため、デバイス管理装置においてテンプレートが選択された後は、操作端末においては、デバイスの状態やユーザ操作に基づき、テンプレートを選択変更し、UIを変更する事が出来ないという問題点があった。また、デバイス情報によりテンプレートを選択するのみであるため、情報の表示は可能であるが、デバイスの操作を行うことが困難であった。
さらに、デバイスを操作するための画面をいくつかの画面に分けるためには、予め各画面およびそれらの間の遷移がアプリケーション中にハードコードされている必要があった。あるいはデバイスから画面間の遷移情報を含む各画面に応じたデータを受信する必要があった。
本発明は前述の問題点に鑑み、操作端末のアプリケーションを変更することなしに多種のデバイスと操作端末自体に適したUIを生成する。さらにデバイスの機種や個体に応じてUIを生成すること、また、操作端末やユーザに応じてUIを複数画面から構成し、デバイスからの情報には含まれない画面間の遷移を可能とすることを目的としている。
本発明は前記目的を達成するために、デバイスとネットワークにより接続された、前記デバイスを操作するリモート操作端末装置であって、前記デバイスよりデバイス情報を取得する取得手段と、前記デバイスに対応したデバイステンプレートと、前記取得手段で取得したデバイス情報に基づいて、前記デバイステンプレートを編集する編集手段とを有することを特徴とするリモート操作端末装置等、を提供する。
本発明によれば、デバイスを操作する為のUIがデバイス情報及びデバイステンプレートから構築される為に、操作端末のプログラムを変更する事無く、デバイステンプレートを入れ替える事で、UIの変更が可能となる。
また、デバイステンプレート中に、デバイス情報に記載の操作コマンドと、デバイステンプレートに記載のUI部品との対応情報、及び、デバイスIDを格納する為の格納場所を含み、さらに、当該格納場所にデバイスIDを格納する手段を持つ事で、デバイスの種別に応じたレイアウトやUI部品を使用したUIを構築出来ると共に、複数ある同種のデバイスの内、特定のデバイスを特定することでインタラクティブなUIが実現出来る効果がある。
また、デバイステンプレートに、構築されるUIにおけるUI部品の有無及びUIのレイアウトを変更する為の条件記述を含む事で、同一のデバイステンプレートを用いた場合でも、デバイス情報中の機能や状態の記述に基づき、個々のデバイスに適した、異なるUI部品やレイアウトからなるUIを構築することが可能となる
また、デバイステンプレートに、構築されるUIにおけるUI部品の有無及びUIのレイアウトを変更する為の条件記述を含む事で、同一のデバイステンプレートを用いた場合でも、デバイス情報中の機能や状態の記述に基づき、個々のデバイスに適した、異なるUI部品やレイアウトからなるUIを構築することが可能となる
また、デバイステンプレートを画面毎に複数のデバイステンプレートから構成し、該デバイステンプレート中に他のデバイステンプレートへの遷移のためのUI部品の記述を含む事により、操作端末やユーザに応じてUIを複数画面から構成し、デバイスからの情報には含まれない該画面間の遷移を可能とする。これにより、操作端末の表示装置があまり広くない場合にUIの構成要素の数を減らすことによる視認性や、UIの理解容易性、目的の操作を行うためのUI部品の検索性が向上する。
(第1の実施形態)
以下、図面を参照して本発明の好適な実施形態を詳細に説明する。
図1は本実施形態の全体構成の一例を示す図である。
図1において、101、102、106、107はそれぞれ機器(被操作対象のデバイス)であり、103、105はそれぞれ機器の操作を行う操作端末である。104は機器および操作端末を接続し、それらの間でデータおよび命令のやり取りを行うためのネットワークである。操作端末103、105はそれぞれ、ネットワーク104を通じて操作コマンドを送ることにより、機器101、102、106、107を操作する。
図2は本実施形態における操作端末のハードウェア構成の一例を示すブロック図である。
202はCPUであり、各種処理のための演算や論理判断等を行い、バス201に接続された各構成要素を制御する。本操作端末には、プログラムメモリとデータメモリを含むメモリが搭載されている。プログラムメモリには、フローチャートにつき後述する処理手順を含むCPUによる制御のためのプログラムを格納する。メモリはROM203であっても良いし外部記憶装置などからプログラムがロードされるRAM204であっても良い。
205はデータやプログラムを記憶しておくための不揮発性メモリやハードディスクなどの記憶装置である。206はユーザからの情報を入力するための入力装置であり、この装置はマウス、タッチパネル、キーボードなどある。208は分析されたデータ出力情報を出力する出力装置であり、CRTや液晶表示器などの表示装置である。207はネットワークI/Fであり、ネットワークで接続された他のデバイスとのやり取りを行う。
図3は、本実施形態における全体の構成の一例を表わす図である。
301は操作端末であり、302はデバイスである。デバイス302はデバイス情報303を有しており、操作端末301からの要求に応じてネットワークを経由してデバイス情報303を操作端末301に送信する。
デバイス情報303は、ネットワークカメラ、ビデオ、プリンタなどといったデバイス種別307と、そのデバイスを操作するための操作コマンド308と、個々のデバイス固有のデバイスID315を含む。
操作端末301は、デバイス情報303を元にUIを構成するためのUIデータ312を動的に生成するためのテンプレート305を有する。テンプレートには、その一種としてデバイステンプレート306があり、該デバイステンプレートはデバイスIDの格納場所311と、UI部品310と、UI部品と操作コマンドの対応情報309を含む。
デバイスIDの格納場所311は、デバイス情報303中のデバイスID315によって補完されるべきであることを示しており、生成されるUIがどのデバイスのUIであるのかを識別するために使用される。
UI部品310は、実際に表示されるUI上のボタン、スライダ、リストボックスなどの部品である。UI部品310と操作コマンドの対応情報309は、どのUI部品310を操作するとどの操作コマンド308がデバイス302に対して発行されるかという対応関係を表わす情報である。
また、操作端末301は、デバイス種別307とデバイステンプレート306との対応関係を表わす種別・テンプレートの組314を複数含む種別・テンプレート対応テーブル304を有する。316は、操作端末が生成したUIデータ312からUIを構築するブラウザであり、出力313に対して表示を行う。
図4は、本実施形態におけるUI生成処理の流れの一例を示すフローチャートである。図4において、ステップS401からステップS407は各ステップを表わす。
まず、操作端末はデバイス302にデバイス情報303を要求し、デバイス302からデバイス情報303を取得する(ステップS401)。次に、取得したデバイス情報303からデバイス種別307を取り出し(ステップS402)、デバイス種別307を用いて、デバイス302に対応するデバイステンプレート305を検索する(ステップS403)。
そして、検索の結果、デバイス種別307に対応するデバイステンプレート305が存在するか否かを判断する(ステップS404)。対応するデバイステンプレート305が存在する場合には、デバイステンプレート305を入力とし、UIデータ領域を新たに出力とする入出力の設定を行った(ステップS405)後に、UIデータ生成処理を行う(ステップS406)。
それから、UIデータ312によりUIを構築・表示し(ステップS407)、処理を終了する。ステップS404の判断の結果、ステップS402で得たデバイス種別307に対応するデバイステンプレート305が存在しない場合には、処理を終了する。
図7は、本実施形態におけるデバイス302のデバイス情報303のXMLデータの一例を示す図である。
図7において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。行番号0708にある7Aはデバイス情報におけるデバイス種別を示す記述である。このうち"urn:schemas-canon-org:device:NetworkCamera:1"が実際のデバイス種別を示す文字列である。行番号0709にある7Bはデバイス名を示す記述である。このうち"Catharine"が実際のデバイス名を示す文字列である。行番号0717にある7CはデバイスIDを示す記述である。このうち"uuid:upnp-canon-nc1_1_0-00008522CD3A"が実際のデバイスIDを示す文字列である。行番号0724にある7Dはデバイスを操作するための操作サービスを示すXMLデータへのリンクを示している。
図9は、本実施形態における種別・テンプレート対応テーブル304の一例を示す図である。
図9において、900は種別・テンプレート対応テーブル全体であり、種別・テンプレート対応テーブル304を具体的に表わしたものである。種別・テンプレート対応テーブル900はファイルとして記憶装置205中に保持されており、更新することが可能である。910、920はそれぞれ1組のデバイスの種別とデバイステンプレートファイルの対応関係を表わしており、種別・テンプレート組314を具体的に表わしたものである。
911、921はそれぞれ、1つのデバイス種別を表わしており、共にデバイス種別307を具体的に表わしたものである。912、922はそれぞれ、1つのデバイステンプレートを表わしており、共にデバイステンプレート206に対応している。これらは、記憶装置205に保存されており、それぞれの文字列はファイル名を表わしている。
すなわち、図9はデバイス種別が911であれば、デバイステンプレート912が選択され、デバイス種別が921であれば、デバイステンプレート922が選択されることを表わしている。
図11は、本実施形態における対応テンプレート検索処理の流れの一例を示すフローチャートである。図11において、ステップS1101からステップS1105は各ステップを表わす。
まず、種別・テンプレート対応テーブル900にまだデバイス種別307とテンプレート305の組が存在するか否かを判断する(ステップS1101)。存在するならば該デバイス種別307とテンプレート305の組を得て(ステップS1102)、その中のデバイス種別307を得る(ステップS1103)。
次に、該デバイス種別307がステップS402で得たデバイス種別に一致するか否かを判断する(ステップS1104)。一致するならばステップS1102で得たデバイス種別307とテンプレート305の組からデバイステンプレート306を得て、対応するデバイステンプレートとして(ステップS1105)、処理を終了する。
ステップS1104の判断の結果、両デバイスの種別が一致しない場合には、ステップS1101の判断に戻る。ステップS1101の判断の結果、種別・テンプレート対応テーブル900にもうデバイス種別とテンプレートの組が存在しないならば、処理を終了する。
すなわち本処理は、本実施形態においてはデバイス種別が"urn:schemas-canon-org:device:NetworkCamera:1"であるデバイス種別とテンプレートの組910を種別・テンプレート対応テーブル900から検索する。そして、デバイス種別とテンプレートの組910を得て、対応するデバイステンプレート306のファイル名として「ネットワークカメラテンプレート」を返す。
図6は、本実施形態におけるデバイステンプレート306の一例としてXMLデータを示す図である。
図6において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。行番号0608、0615、0617、0619の6A〜6Dは、それぞれデバイス情報303中のデバイスIDの格納場所を意味する特別な変数($uid)である。行番号0622の6Eは、デバイス情報中のデバイス名の格納場所を意味する特別な変数($devName)である。
また、行番号0614から0619は、デバイスに対して操作コマンドが発行されることを示している。例えば、行番号0615の6Gは"method="CameraControlPan""となっており、この行が実行された時に発行される操作コマンドが"CameraControlPan"であることを示している。また、行番号0614には6Fに示すように本データ中で一意な識別子として"pan"が与えられている。
また、6I、6J、6Kには、UIを構成するUI部品310についての記述がある。6I〜6Kはそれぞれ特定の範囲からの選択を行うUI部品"xforms:range"を表わしている。そして、それぞれのレイアウト情報および現在の値を保持しているデータモデルへの参照と、値が変更された場合にどの操作コマンドが発行されるかの対応情報がふくまれている。
例えば6D中の行番号0635中の6Hは"submission="pan" "となっており、UI部品"xforms:range"の値が変更された場合に識別子が"pan"である行を実行することが示されている。すなわち、0614行の6Fと0635行の6Hの記述により、6IのUI部品310と6Gの操作コマンド"CameraControlPan"が対応付けられている。よって、このデバイステンプレート306中には、デバイス情報303に記載の操作コマンドとデバイステンプレート306に記載のUIを構成するUI部品との対応情報が含まれている。
図8は、本実施形態におけるデバイスを操作するための操作サービスを示すデバイス情報の一例としてXMLデータを示す図である。
図8において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図8は、図7において7Dで表わされた操作サービスを示すデバイス情報である。
図8において、8A、8B、8Cはそれぞれ別の操作コマンドを表わしており、それぞれの操作コマンド名がCameraControlPan、CameraControlTilt、CameraControlZoomであること及びそれぞれの操作コマンドの引数などを示している。また、8Dは状態変数を示しており、その名称がMotionDetectがあることを示している。
図5は、本実施形態におけるUI生成処理の流れを示すフローチャートである。図5において、ステップS501からステップS509は各ステップを表わす。
まず、ステップS405で設定された入力において現在の位置が入力の終端に達しているか否かを判断し(ステップS501)、まだ終端に達していない場合には、構文上の1行を読み込む(ステップS502)。
次に、読み込んだ行中にデバイスIDの格納場所311が含まれているか否かを判断する(ステップS503)。デバイスIDの格納場所311が含まれている場合には、ステップS401で得たデバイス情報303中から得たデバイスIDを得る(ステップS504)。そして、バッファに読み込んだ行中のデバイスIDの格納場所311に実際のデバイスIDを挿入する(ステップS505)。ステップS503の判断の結果、デバイスIDの格納場所311が含まれていない場合には、ステップS506の判断に移る。
次に、読み込んだ行中にデバイス名の格納場所が含まれているか否かを判断する(ステップS506)。デバイス名の格納場所が含まれている場合には、ステップS401で得たデバイス情報中から得たデバイス名を得て(ステップS507)、バッファに読み込んだ行中のデバイス名の格納場所に実際のデバイス名を挿入する(ステップS508)。ステップS506の判断の結果、デバイス名の格納場所が含まれていない場合には、ステップS509の処理に移る。
そして、バッファ中の読み込んだ行をUIデータ312に書き込んだ(ステップS509)後ステップS501の判断に戻り、一連の処理を繰り返す。ステップS501の判断の結果、すべての行の処理を終えて、デバイステンプレート306の終端に達した場合には、処理を終了する。
すなわち本処理においては、ステップS405で入力に設定された図6のようなデバイステンプレートを、ステップS502において1行ずつ読み込む。図6の行番号0608、0615、0617、0619においては、ステップS503の判断において行中にデバイスIDの格納場所($uid)が含まれている。このため、ステップS504において図7のデバイス情報に含まれるデバイスID("uuid:upnp-canon-nc1_1_0-00008522CD3A")を得て、ステップS505で該格納場所に該デバイスIDを格納する。すなわち、文字列"$uid"を"uuid:upnp-canon-nc1_1_0-00008522CD3A"に置換する。
これらの行においては、デバイス名の格納場所は行中に含まれていないので、ステップS506の判断において判定結果が否となる。そして、ステップS509の処理に移り、デバイスIDが補完されたデータがUIデータ312に追加され、ステップS501の判断に戻る。
図6の行番号0622においては、ステップS503の判断においてデバイスIDの格納場所が行中に含まれないため、判断結果が否となり、ステップS506の判断に移る。ステップS506の判断においては、行中にデバイス名の格納場所($devName)が含まれている。このため、ステップS507において図7のデバイス情報303に含まれるデバイス名("Catharine")を得て、ステップS508で該格納場所に該デバイス名を格納する。すなわち、文字列"$devName"を"Catharine"に置換する。そして、ステップS509において、デバイス名が補完されたデータがUIデータ312に追加され、ステップS501の判断に戻る。
他の行はステップS503、ステップS506の判断とも偽となるので、ステップS509においてそのままUIデータに追加される。図6のテンプレートが行番号0650に達すると、ステップS501の判断において、デバイステンプレート306の現在の位置がテンプレートの終端に達しているので、処理を終了する。この結果、本処理によって図6のようなデバイステンプレート306から図10のようなUIデータ312を生成することが出来る。
図10は、本実施形態におけるUIデータ生成処理によって生成されたUIデータ312の一例としてXMLデータを示す図である。
図10において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。UIデータ312は図6のデバイステンプレート306を基に、図7のデバイス情報303を用いて図5のUIデータ生成処理によって生成されるものであり、UIデータ312に該当する。
図10において、10A、10B、10C、10Dはそれぞれデバイステンプレート306中の6A、6B、6C、6Dがデバイス情報303中のデバイスID(7C)により補完されたものである。10Eはデバイステンプレート306中の6Eがデバイス情報303中のデバイス名7Bにより補完されたものである。
このUIデータ312をブラウザ216に渡すことによりUIが構築され、出力313によりUIが表示される。
図17は、本実施形態におけるデバイスと表示されるUIとの関係を示す図である。
図17において、図17(a)のように操作端末1705に対してデバイスとしてネットワークカメラ1706とが接続されている。この場合には、デバイスの種別がネットワークカメラを表わすデバイス種別(本実施形態においては"urn:schemas-canon-org:device:NetworkCamera:1")である。それゆえ、これまでに説明した流れで図10のようなUIデータ312が生成され、それを基にブラウザ316により1701のようなUIが構築される。
UI1701において、1702はカメラの横方向の回転を表わすUI部品であり、図10の行番号1033から1035に記載の特定の範囲からの選択を行うUI部品を表わす要素"xforms:range"から生成されたものである。同様に1703、1704はそれぞれカメラのズーム、縦方向の回転を表わすUI部品であり、図10の行番号1039から1041、1045〜1047に記載の特定の範囲からの選択を行うUI部品を表わす要素"xforms:range"から生成される。
一方、図17(b)は操作端末1712に対してデバイスとしてビデオ1713が接続されている。この場合には、デバイスの種別がビデオを表わすデバイス種別(本実施形態においては"urn:schemas-canon-org:device:Video:1")である。それゆえ図9の種別・テンプレート対応テーブル900中からデバイステンプレート922が選択され、同様の処理で対応するUIデータ312が生成され、それを基にブラウザ316により1711のようなUIが構築される。
以上のように、本実施形態においては、デバイスを操作する為のUIは、デバイス情報及びデバイステンプレートから構築される為に、操作端末のプログラムを変更する事無く、デバイステンプレートを入れ替える事でUIの変更が可能になる。また、個々のデバイスの識別子をUIデータ中に埋め込むことにより、UIからの個々の機器の操作が可能となる。
(第2の実施形態)
本実施形態においては、構築されるUIにおけるUI部品の有無及びUIのレイアウトを変更する為の条件記述をデバイステンプレートに含む場合について、図面を参照しながら説明する。なお、ブロック図は第1の実施形態と同様である。
図12は、本実施形態におけるデバイステンプレート306の一例としてXMLデータを示す図である。
図12において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。12A〜12G、12I、12Jは、それぞれ図8に示したデバイス302を操作するための操作サービスを示すデバイス情報303中に、操作コマンドが存在するか否かによって生成するUIデータ312を変えるための条件の記述部分である。このうち、行番号1210、1220、1246はすべて同様の記述となっている。
XMLの属性の記述"control="CameraControlPan""のうち、属性名"control"は条件文がデバイス情報303中の操作コマンドを対象とすることを表わしている。また、"CameraControlPan"は操作コマンド名が"CameraControlPan"であることを示している。
そして、XMLの要素名"ui_template:ifexist"が属性で示したものがデバイス情報303中に存在するならば、該要素の子要素を解釈し、必要に応じてUIデータ312に追加するという条件を表わしている。すなわち、行番号1210、1220、1246はすべて、デバイス情報303中に"CameraControlPan"という操作コマンドが存在するならば、それぞれの子要素を解釈し、必要に応じてUIデータ312に追加するという条件文である。
同様に、行番号1213、1224、1266はすべて、デバイス情報303中に"CameraControlTilt"という操作コマンドが存在するならば、それぞれの子要素を解釈し、必要に応じてUIデータに追加するという条件文である。行番号1216、1228、1273はすべて、デバイス情報303中に"CameraControlZoom"という操作コマンドが存在するならば、それぞれの子要素を解釈し、必要に応じてUIデータ312に追加するという条件文である。これにより、12G、12I、12Jの条件文の子要素として記述されている特定の範囲からの選択を行うUI部品"xforms:range"はそれぞれの条件が満たされた場合にはUI上に存在するが、条件が満たされない場合には存在しないことになる。
また、12Hはデバイス情報303中の状態変数の値によって生成するUIデータ312を変えるための条件の記述部分である。このうち、行番号1255のXMLの属性の記述"variable="MotionDetect""は、条件文の対象となる状態変数名が"MotionDetect"であることを示しており、"value="1""は、条件文の指定する値が"1"であることを示している。そして、XMLの要素名"ui_template:ifcond"が属性で示した状態変数の値の条件が満たされているならば、該要素の子要素をUIデータ312に追加するという条件を表わしている。すなわち行番号1255は、図8に示したデバイスを操作するための操作サービスを示すデバイス情報303中の状態変数"MotionDetect"の値が"1"であるならば、子要素をUIデータ312解釈し、必要に応じてに追加するという条件文である。
また、12Kは変数の定義部である。行番号1243、1244共に、要素名"ui_template:variable"は変数の定義であることを示しており、属性名"name"は変数名を、"value"は変数の初期値を表わしている。すなわち、行番号1243は"$x"という名前で初期値は97である変数の定義を、行番号1244は"$y"という名前で初期値は381である変数の定義を表わしている。12M、12Oはそれぞれ式を表わしており、12Mは12Kで定義した変数$xに50を加算する式を表わしており、12Oは12Kで定義した変数$yに50を加算する式を表わしている。
12L、12N、12Pはすべて同様の記述となっており、"x="$x""と"y="$y""との2つのXMLの属性の記述をあわせたものである。このうち、"x="$x""はX座標として変数$xの値を使うことを意味しており、"y="$y""はY座標として変数$yの値を使うことを意味している。
すなわち、行番号1247および1274の要素名"xforms:range"で表わされる特定の範囲からの選択を行うUI部品310のXおよびY座標は、それぞれその時点の変数$x、$yの値によって変わる事を表わしている。
したがって、12Gおよび12Hの条件ブロックの条件文が成立するか否かに応じて、それぞれ12M、12Oの式が実行されるか否かが変わることを表わしている。そして、それによって行番号1259の画像および行番号1274の特定の範囲からの選択を行うUI部品310のレイアウトが変わることを表わしている。
図13は、本実施形態におけるUI生成処理の流れを示すフローチャートである。図13において、ステップS1301からステップS1318は各ステップを表わす。
まず、あらかじめ本処理の外部で設定された入力において現在の位置が入力の終端に達しているか否かを判断し(ステップS1301)、まだ終端に達していない場合には、構文上の1行を読み込む(ステップS1302)。
次に、読み込んだ行が条件文であるか否かを判断し(ステップS1303)、該判断の結果、条件文ではない場合には、読み込んだ行が変数の定義であるか否かを判断する(ステップS1304)。該判断の結果、読み込んだ行が変数の定義ではない場合には、読み込んだ行が子要素が変数の式であることを示す行か否かを判断する(ステップS1305)。
該判断の結果、読み込んだ行が子要素が変数の式あることを示す行でない場合には、読み込んだ行中にデバイスIDの格納場所が含まれているか否かを判断する(ステップS1306)。デバイスIDの格納場所が含まれている場合には、ステップS401で得たデバイス情報中から得たデバイスIDを得て(ステップS1307)、バッファに読み込んだ行中のデバイスIDの格納場所に実際のデバイスIDを挿入する(ステップS1308)。ステップS1306の判断の結果、デバイスIDの格納場所が含まれていない場合には、ステップS1309の判断に移る。
次に、読み込んだ行中にデバイス名の格納場所が含まれているか否かを判断する(ステップS1309)。デバイス名の格納場所が含まれている場合には、ステップS401で得たデバイス情報中から得たデバイス名を得て(ステップS1310)、バッファに読み込んだ行中のデバイス名の格納場所に実際のデバイス名を挿入する(ステップS1311)。ステップS1309の判断の結果、デバイス名の格納場所が含まれていない場合には、ステップS1312の処理に移る。
次に、変数があるならば該変数に現在の値を格納する処理を行い(ステップS1312)、バッファ中の読み込んだ行をUIデータに書き込んだ(ステップS1313)後、ステップS1301の判断に戻り、一連の処理を繰り返す。
ステップS1303の判断の結果、読み込んだ行が条件文である場合には、該条件文とその子要素の処理を行った(ステップS1314)後、ステップS1301の判断に戻る。ステップS1304の判断の結果、読み込んだ行が変数の定義である場合には、該変数の変数名とその初期値を登録する処理を行った(ステップS1315)後、ステップS1301の判断に戻る。
ステップS1305の判断の結果、読み込んだ行が子要素が変数の式であることを示す行である場合には、さらに1行を読み込む(ステップS1316)。そして、読み込んだ行が子要素が変数の式であることを示す要素の終端を示す行であるか否かを判断する(ステップS1317)。
ステップS1317の判断の結果、読み込んだ行が子要素が変数の式であることを示す要素の終端を示す行でない場合には、読み込んだ行は変数の式であるので、該変数の式の処理を行い(ステップS1318)、ステップS1316の処理に戻る。ステップS1317の判断の結果、読み込んだ行が子要素が変数の式であることを示す要素の終端を示す行である場合には、ステップS1301の判断に戻る。
ステップS1301の判断の結果、すべての行の処理を終えて、入力の終端に達した場合には、処理を終了する。
図14は本実施例における条件文とその子要素の処理の流れを示すフローチャートである。図14において、ステップS1401からステップS1411は各ステップを表わす。
まず、読み込んだ行が操作コマンドの有無に関する条件文であるか否かを判断する(ステップS1401)。該判断の結果、読み込んだ行が操作コマンドの有無に関する条件文ではない場合には、読み込んだ行が状態変数の有無に関する条件文であるか否かを判断する(ステップS1402)。
該判断の結果、読み込んだ行が状態変数の有無に関する条件文ではない場合には、読み込んだ行が状態変数の値に関する条件文であるか否かを判断する(ステップS1403)。該判断の結果、読み込んだ行が状態変数の値に関する条件文である場合には、ステップS401で得たデバイス情報中から得た状態変数の値を得て(ステップS1404)、条件文が満たされているか否かを判断する(ステップS1405)。同様に、ステップS1401の判断の結果、読み込んだ行が操作コマンドの有無に関する条件文である場合には、ステップS401で得たデバイス情報303中から得た操作コマンドの一覧から指定された操作コマンドを検索する(ステップS1410)。
ステップS1402の判断の結果、読み込んだ行が状態変数の有無に関する条件文である場合には、ステップS401で得たデバイス情報中から得た状態変数の一覧から指定された状態変数を検索する(ステップS1411)。そして、条件文が満たされているか否かを判断する(ステップS1405)。
ステップS1405の判断の結果、読み込んだ行の条件文が満たされているならば、該条件の範囲の保存処理を行い(ステップS1406)、該保存された条件の範囲を新たな入力とする設定を行う(ステップS1407)。その後、該入力すなわち保存された条件の範囲に対して本UIデータ処理を再帰的に実行する(ステップS1408)。そして、保存した条件の範囲を破棄し(ステップS1409)、処理を終了する。ステップS1405の判断の結果、読み込んだ行の条件文が満たされていない場合には、該条件の範囲を読み飛ばした(ステップS1412)後、処理を終了する。
図15は、本実施形態における条件の範囲保存処理の流れを示すフローチャートである。図15において、ステップS1501からステップS1505は各ステップを表わす。
まず、条件の範囲保存用のファイルを開き(ステップS1501)、入力から1行を読み込む(ステップS1502)。次に、入力が終端に達しているか否かを判断し(ステップS1503)、入力が終端に達していないならば、読み込んだ行を条件の範囲保存用のファイルに書き込み(ステップS1504)、ステップS1502の処理に戻る。ステップS1503の判断の結果、入力が終端に達したならば、条件の範囲保存用のファイルを閉じて(ステップS1505)、処理を終了する。
図16は、本実施形態における変数に現在の値を格納する処理の流れを示すフローチャートである。図16において、ステップS1601からステップS1604は各ステップを表わす。
まず、登録されている変数から最初の変数とその現在値を得て(ステップS1601)、変数があったか否かを判断する(ステップS1602)。該判断の結果、変数があったならば、バッファに読み込んだ行中の該変数の変数名に一致する変数をすべて該変数の現在値に置き換える(ステップS1603)。そして、登録されている次の変数とその現在値を得て(ステップS1604)、ステップS1602の判断に戻る。ステップS1602の判断の結果、登録されている変数がもうないならば、処理を終了する。
次に、図13のUIデータ生成処理とそのサブルーチンである図14から図16によって、図7、図8のデバイス情報および図12のデバイステンプレートからUIデータ312を生成する処理について具体的に説明する。
まず、ステップS406において行われるUIデータ生成処理は、ステップS405でデバイステンプレートを入力としているので、図12のデバイステンプレートを1行ずつ処理する。行番号1201から1209まではステップS1303からステップS1305のいずれの判断も偽である。そのため、図5のUIデータ生成処理と同様にステップS1306の判断からステップS1312の処理を実行し、必要な置換が行われた後、ステップS1313でUIデータ312に書き込まれる。
次に、ブロック12Aの処理においては、行番号1210はステップS1303において判断が真となるので、ステップS1314において図14に記載の条件文とその子要素の処理に移る。その後、ステップS1401の判断が真となるため、ステップS1410において操作コマンド"CameraControlPan"が図8のデバイス情報から検索され、行番号0809に存在するため、ステップS1405の条件判断が真となる。よって、ステップS1406において条件の範囲すなわち行番号1211が保存され、条件文の終端を表わす行番号1212まで読み込みが終わる。
次に、ステップS1407で該条件の範囲を入力とし、ステップS1408において該入力に対してUIデータ生成処理を再帰的に行う。ここでは、行番号1211がUIデータに追加される。そして、ステップS1409において保存した条件の範囲が破棄され、次の行に処理が進む。
12B、12Cについても同様のステップを踏んで、それぞれ行番号1214、1217がUIデータ312に追加される。12D、12E、12Fは、処理の流れは12Aと同様である。しかし、条件の範囲がそれぞれ1221と1222、1225と1226、1229と1230の2行であること、またデバイスIDの格納場所を有することが異なる。これらの行は行番号1211と同様に、図14のステップS1408において再帰的に呼び出されたUIデータ処理の中で、ステップS1308においてデバイスIDを置換された後にステップS1313でUIデータ312に書き込まれる。
12Kは2行とも変数の定義であるので、それぞれステップS1304で判断が真となり、ステップS1315において変数の変数名とその初期値、すなわち変数名として$x、その値として97が、また変数名として$y、その値として381が登録される。
12Gは12Aと同様に行番号1246が条件文であるため、ステップS1303において判断が真となるので、ステップS1314において図14に記載の条件文とその子要素の処理に移る。その後、ステップS1401の判断が真となるため、ステップS1410において操作コマンド"CameraControlPan"が図8のデバイス情報から検索され、行番号0809に存在するため、ステップS1405の条件判断が真となる。
よって、ステップS1406において条件の範囲すなわち行番号1247から1253が保存され、条件文の終端を表わす行番号1212まで読み込みが終わる。次に、ステップS1407で該条件の範囲を入力とし、ステップS1408において該入力に対して図13に記載のUIデータ生成処理を再帰的に行う。
ここで、その処理について具体的に説明する。行番号1247および1248が読み込まれると、この行はステップS1303からステップS1306、そしてステップS1309のいずれの判断も偽なので、ステップS1312に処理が進む。そして、図16に詳細を示したステップS1312の変数に現在の値を格納する処理により、12Lの部分が"x="97" y="381""と置換され、UIデータ312に追加される。
行番号1249および1250は、ステップS1303からステップS1306、そしてステップS1309のいずれの判断も偽なので、ステップS1313においてそのままUIデータ312に追加される。
12Mの部分は、行番号1251が子要素が変数の式であることを示す行であるため、当該行の処理においてステップS1305の判断が真となる。その結果、行番号1252がステップS1316において読み込まれ、ステップS1318において当該行の処理が行われ、変数$yに50が加算され、値が431に更新される。そして行番号1253がステップS1316で読み込まれ、子要素が変数の式であることを示す要素の終端を表わす行であるため、ステップS1317において判断が真となり、次の行へ処理が進む。
行番号1254は条件文の終端を表わす行なので、以上でステップS1408における12Gの条件範囲のUIデータ生成処理は終了し、ステップS1409において保存した条件の範囲が破棄され、次の行に処理が進む。
次に、12Hの部分の処理について説明する。12Hの処理は12Gの処理とほぼ同様であるが、行番号1255が状態変数の値に関する条件文であるため、行番号1246が図14のステップS1401の判断が真になるのに対して、行番号1255はステップS1403の判断が真となる。そのためステップS1404において状態変数"MotionDetect"の値"0"が図8のデバイス情報の行番号0843から得られる。そして、行番号1255の条件文すなわち「状態変数"MotionDetect"の値が"1"である」が真であるか否かがステップS1405において判断される。この条件文は真でないため、処理はステップS1412に移り、条件文の終端である行番号1264までが読み捨てられる。12I、12Jの処理は12Gの処理と同様である。
その他の行はステップS1303からステップS1305のいずれの判断も偽なので、行番号1201から1209までと同様にUIデータ312に追加される。
以上、説明したような処理により、図7、図8のデバイス情報および図12のデバイステンプレートから図10のUIデータが生成され、ブラウザ316によりそれを基に図17で説明したように1701のようなUIが構築される。
図18は、図8同様にデバイスを操作するための操作サービスを示すデバイス情報の一例としてXMLデータを示す図である。
図18において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図8との差異は、18Aで表わされた部分に記載された状態変数MotionDetectの値が"0"ではなく"1"であることである。
図19は、図18のデバイスを操作するための操作サービスを示すデバイス情報を用いた場合に生成されるUIデータの一例としてXMLデータを示す図である。
図19において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図8のデバイス情報用いた場合に生成される図10のUIデータとの差異は、図18の18Aにおいて状態変数MotionDetectの値が"1"であることである。これにより、図12に示すデバイステンプレートの12Hを処理する際に、行番号1255の処理において、ステップS1405の判断が真となるために、行番号1256から1260までが必要な置換を行った上で追加された19Aの部分が存在することである。また、12Oの変数の式が12Mと同様に処理されることにより、19Bで示したX座標の値が図10とは異なる。
図20は、図19のUIデータにより構築されたUI画面1701の一例を示す図である。
図20において、UI部品1702および1703は図17と同様であるが、図19の19Aの部分により、行番号1941に記載の動体検知を表わすイメージデータ2001がUI画面1701上に表示される。また、19BのX座標の値が異なることによりUI部品1703の位置が移動している。
図21は、図8同様にデバイスを操作するための操作サービスを示すデバイス情報の一例としてXMLデータを示す図である。
図21において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図8との差異は、データ中に8C、8Dと同様の21A、22Bは含むが、8A、8Bにあたる部分が存在しないことである。
図22は、図21のデバイスを操作するための操作サービスを示すデバイス情報を用いた場合に生成されるUIデータの一例としてXMLデータを示す図である。
図22において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図8のデバイス情報を用いた場合に生成される図10のUIデータとの差異は、図21において、図8の8A、8Bにあたる部分が存在しないことである。これにより、図12に示すデバイステンプレートの12Gおよび12Iを処理する際に、行番号1246および1266の処理において、ステップS1405の判断が偽となる。このため、12Gおよび12Iの部分が読み捨てられ、図10の行番号1033から1037および行番号1039から1043の部分が存在しないことである。また、12Mの変数の式が処理されないことにより、22AのY座標の値が図10とは異なる。
図23は、図22のUIデータにより構築されたUI画面の一例を示す図である。
図23において、図22には図10の行番号1033から1037および行番号1039から1043の部分が存在しないことにより、図17とは異なりUI部品1702および1703が存在しない。また、UI部品1703は22AのY座標の値が異なることにより位置が移動している。
以上のように、本実施形態のリモート操作端末においては、同一のデバイステンプレートにより、デバイスの機能あるいは状態に応じて、UI部品の有無およびのレイアウトを変更することが可能になる。
(第3の実施形態)
本実施形態においては、デバイステンプレートを変更した場合について、図面を参照しながら説明する。なお、ブロック図は第1の実施形態と同様である。
図24は、本実施形態におけるデバイステンプレートの一例としてXMLデータを示す図である。
図24において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。該デバイステンプレートは図6に示したデバイステンプレートとほぼ同様であるが、24Aに示したスライダの向きを指定する部分が変更されている。また、24Bに示した部分において各座標値が変更されている。
この様に特定のデバイスに対するデバイステンプレートは、記憶装置205あるいは外部のサーバに保持されているものをユーザが選択することにより、種別・テンプレート対応テーブル304中のデバイステンプレートファイル名を変更することで可能である。
図25は、図24のデバイステンプレートを用いた場合に生成されるUIデータの一例としてXMLデータを示す図である。
図25において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図6のデバイステンプレート用いた場合に生成される図10のUIデータとの差異は、25A、25Bの部分が、図24の24A、24B部分がそのまま反映されているために異なる。
図26は、図25のUIデータにより構築されたUI画面の一例を示す図である。
図26において、図17とは異なり、カメラのズームを表わすUI部品1703がUI部品2601のように変更されている。これは、図25の25Aの部分によりスライダの向きが、25Bの部分によりスライダの位置が変更されたものである。
(第4の実施形態)
本実施形態においては、1つのデバイスに対応するデバイステンプレートが複数のデバイステンプレートから構成される場合について、図面を参照しながら説明する。なお、ブロック図は第1の実施形態と同様である。
図27は、本実施形態におけるデバイステンプレートの一例としてXMLデータを示す図である。
図27において、2700はデバイスであり、本実施形態においてはネットワークカメラに対応するデバイステンプレート全体を表わす。2710、2720、2730はそれぞれ1画面を構成するデバイステンプレートを表わしており、デバイステンプレート2700は複数画面のデバイステンプレートから構成されることを表わしている。本実施形態においてはこれらデバイステンプレートはすべて独立したファイルとして実現されており、記憶装置205に保持されているものとする。
2710はネットワークカメラのデフォルトのデバイステンプレートであり、ネットワークカメラに接続した際に、図4のUI生成処理によって初期画面のUIを構築する際に使用される。2710がデフォルトのデバイステンプレートであることは、図11の対応テンプレート検索処理によってデバイスに対応するデバイステンプレートを検索する際に、図9の912に2710のファイル名が記述されていることにより実現されている。
デフォルトデバイステンプレート2710は、その中に設定画面テンプレート2720へ遷移するためのUI部品の記述2711、および情報画面テンプレート2730へ遷移するためのUI部品の記述2712を含む。
2720はネットワークカメラの設定画面用のデバイステンプレートを表わしており、デフォルトデバイステンプレート2710へ遷移するためのUI部品の記述2721を含む。2730はネットワークカメラの情報画面用のデバイステンプレートを表わしており、デフォルトデバイステンプレート2710へ遷移するためのUI部品の記述2731を含む。ネットワークカメラにおいて、前述の他の画面に遷移するためのUI部品の記述2711、2712、2721、2731により、各画面間の遷移が可能となっている。
図28は、本実施形態におけるデバイスのデバイス情報の一例としてXMLデータを示す図である。
図28において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。28Aおよび28Bはそれぞれデバイスの機能単位を表わしている。
28Aは図7の行番号0719から0725と同様であり、ネットワークカメラを操作するための操作サービスである。28Bはネットワークカメラの設定を行うための設定サービスである。行番号2831にある28Cはネットワークカメラの設定を示すXMLデータへのリンクを示している。
図29は、本実施形態におけるデバイスを設定するための設定サービスを示すデバイス情報の一例としてXMLデータを示す図である。
図29において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図29は、図28において28Cで表わされた設定サービスを示すデバイス情報303である。
図29において、29A、29B、29C、29Dはそれぞれ別の項目を設定するための操作コマンドを表わしている。また、それぞれの操作コマンド名がSetSize、SetFrameRate、SetVideoPort、SetSoundPortであること、およびそれぞれの操作コマンドの引数などを示している。
図30は、本実施形態におけるデフォルトデバイステンプレートの一例としてXMLデータを示す図である。
図30において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図は図27における2710の内容を具体的に表わしたものである。特に本実施例に固有な部分についてのみ以下で詳細に説明する。
30A、30Bは他のデバイステンプレートファイルの指定を表わしたものである。30Aは設定画面用のデバイステンプレートファイルのファイル名が"設定画面テンプレート"であることを、30Bは情報画面用のデバイステンプレートファイルのファイル名が"情報画面テンプレート"であることを表わしている。
30E、30Fは、それぞれ図27における2711、2712の内容を具体的に示したものである。30E、30Fはそれぞれ画面上のボタンに相当するUI部品とその位置と大きさおよびボタン上に表示される文字列について表わしたものである。30Eはボタン上に"Configure"、30Fはボタン上に"Info."という文字列が表示されることを表わしている。また、それぞれに含まれる行番号3061、3066はボタンが押された場合に、それぞれ30O、30Pに記載されている本デバイステンプレート中の"config"、"info"という識別子の命令の発行を指示するものである。
30C、30Dはそれぞれ他のデバイステンプレートへの遷移を実行するための記述である。30Cにおいて、30Jは他のデバイステンプレートへの遷移を行う命令を指定したものであり、30Iは命令を指示する対象が操作端末自身であることを示している。
また、30Hは命令に引数として渡す、遷移先となるデバイステンプレートファイルが30Aで示した"設定画面テンプレート"であることを対応付けるものである。30Gは本命令の識別子が"config"であることを表わしている。これにより、30EのUI部品を画面上で押下すると、"設定画面テンプレート"への遷移が実行されることを表わしている。
同様に、30Dにおいて、30Nは他のデバイステンプレートへの遷移を行う命令を指定したものであり、30Mは命令を指示する対象が操作端末自身であることを示している。また、30Lは命令に引数として渡す、遷移先となるデバイステンプレートファイルが30Bで示した"情報画面テンプレート"であることを対応付けるものである。
30Kは本命令の識別子が"info"であることを表わしている。これにより、30FのUI部品を画面上で押下すると、"情報画面テンプレート"への遷移が実行されることを表わしている。
図31は、本実施形態におけるデフォルトUI画面の一例を示す図である。
図31のUI3100はネットワークカメラの操作を行うためのデフォルトUI画面であり、図28および図8のデバイス情報と図30のデフォルトデバイステンプレートを基に図4に示したUI生成処理により生成される。1702から1704は図17と同様のUI部品である。設定UI画面への遷移を指示するUI部品3101は図30の30Eの記述により生成されたものであり、情報UI画面への遷移を指示するUI部品3102は図30の30Fの記述により生成されたものである。
図32は、本実施形態における画面遷移処理の流れを示すフローチャートである。図32において、ステップS3201からステップS3204は各ステップを表わす。
まず、引数として渡されたデバイステンプレートを入力として設定し(ステップS3201)、出力をUIデータに設定した(ステップS3202)後、前述のUIデータ生成処理を行う(ステップS3203)。それから、該UIデータによりUIを構築・表示し(ステップS3204)、処理を終了する。
図33は、本実施形態における設定画面デバイステンプレートの一例としてXMLデータを示す図である。
図33において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図33は図27における2720の内容を具体的に表わしたものである。
33Aはデフォルトデバイステンプレートファイルの指定を表わしたものである。33Aはデフォルトデバイステンプレートファイルのファイル名が"ネットワークカメラテンプレート"であることを表わしている。
33Cは、図27における2721の内容を具体的に示したものである。33Cはそれぞれボタンに相当するUI部品とその位置と大きさおよびボタン上に表示される文字列について表わしたものであり、ボタン上に"OK"という文字列が表示されることを表わしている。また、行番号3365はボタンが押された場合に、33Hに記載されている本デバイステンプレート中の"default"という識別子の命令の発行を指示するものである。
33Bは、他のデバイステンプレートへの遷移を実行するための記述である。33Gは他のデバイステンプレートへの遷移を行う命令を指定したものであり、33Fは命令を指示する対象が操作端末自身であることを示している。また、33Eは命令に引数として渡す、遷移先となるデバイステンプレートファイルが33Aで示した"ネットワークカメラテンプレート"であることを対応付けるものである。
33Dは本命令の識別子が"default"であることを表わしている。これにより、33CのUI部品を画面上で押下すると、"ネットワークカメラテンプレート"への遷移が実行されることを表わしている。
図34は、本実施形態における設定UI画面の一例を示す図である。
図34のUI3400はネットワークカメラの設定を行うための設定UI画面であり、図28および図29のデバイス情報と図33の設定画面デバイステンプレートを基に図32に示した画面遷移処理により生成される。デフォルトUI画面への遷移を指示するUI部品3401は図33の33Cの記述により生成されたものである。
以上のように、本実施形態のリモート操作端末においては、機能毎のデバイス情報に応じたデバイステンプレートにより、1つのデバイスに対して複数のUI画面を構成すること、および該UI画面間を遷移することが可能になる。
(本発明に係る他の実施形態)
前述した本発明の実施形態におけるリモート操作端末装置を構成する各手段、並びにリモート操作端末装置の制御方法の各工程は、コンピュータのRAMやROMなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システムまたは装置に直接、または遠隔から供給する。そして、そのシステムまたは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスクなどがある。さらに、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM、DVD−R)などもある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する方法がある。そして、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、その他の方法として、本発明のプログラムを暗号化してCD−ROM等の記録媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、その他の方法として、まず記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
本発明の第1の実施形態における全体構成の一例を示す図である。 本発明の第1の実施形態における操作端末のハードウェア構成の一例を示すブロック図である。 本発明の第1の実施形態における全体の構成の一例を示す図である。 本発明の第1の実施形態におけるUI生成処理の流れの一例を示すフローチャートである。 本発明の第1の実施形態におけるUI生成処理の流れを示すフローチャートである。 本発明の第1の実施形態におけるデバイステンプレートの一例としてXMLデータを示す図である。 本発明の第1の実施形態におけるデバイスのデバイス情報の一例としてXMLデータを示す図である。 本発明の第1の実施形態におけるデバイスを操作するための操作サービスを示すデバイス情報の一例としてXMLデータを示す図である。 本発明の第1の実施形態における種別・テンプレート対応テーブルの一例を示す図である。 本発明の第1の実施形態におけるUIデータ生成処理によって生成されたUIデータの一例としてXMLデータを示す図である。 本発明の第1の実施形態における対応テンプレート検索処理の流れの一例を示すフローチャートである。 本発明の第2の実施形態におけるデバイステンプレートの一例としてXMLデータを示す図である。 本発明の第2の実施形態におけるUI生成処理の流れを示すフローチャートである。 本発明の第2の実施形態における条件文とその子要素の処理の流れを示すフローチャートである。 本発明の第2の実施形態における条件の範囲保存処理の流れを示すフローチャートである。 本発明の第2の実施形態における変数に現在の値を格納する処理の流れを示すフローチャートである。 本発明の第1の実施形態におけるデバイスと表示されるUIとの関係を示す図である。 本発明の第2の実施形態におけるデバイスを操作するための操作サービスを示すデバイス情報の一例としてXMLデータを示す図である。 図18のデバイスを操作するための操作サービスを示すデバイス情報を用いた場合に生成されるUIデータの一例としてXMLデータを示す図である。 図19のUIデータにより構築されたUI画面の一例を示す図である。 本発明の第2の実施形態におけるデバイスを操作するための操作サービスを示すデバイス情報の一例としてXMLデータを示す図である。 図21のデバイスを操作するための操作サービスを示すデバイス情報を用いた場合に生成されるUIデータの一例としてXMLデータを示す図である。 図22のUIデータにより構築されたUI画面の一例を示す図である。 本発明の第3の実施形態におけるデバイステンプレートの一例としてXMLデータを示す図である。 図24のデバイステンプレートを用いた場合に生成されるUIデータの一例としてXMLデータを示す図である。 図25のUIデータにより構築されたUI画面の一例を示す図である。 本発明の第4の実施形態におけるデバイステンプレートの一例としてXMLデータを示す図である。 本発明の第4の実施形態におけるデバイスのデバイス情報の一例としてXMLデータを示す図である。 本発明の第4の実施形態におけるデバイスを設定するための設定サービスを示すデバイス情報の一例としてXMLデータを示す図である。 本発明の第4の実施形態におけるデフォルトデバイステンプレートの一例としてXMLデータを示す図である。 本発明の第4の実施形態におけるデフォルトUI画面の一例を示す図である。 本発明の第4の実施形態における画面遷移処理の流れを示すフローチャートである。 本発明の第4の実施形態における設定画面デバイステンプレートの一例としてXMLデータを示す図である。 本発明の第4の実施形態における設定UI画面の一例を示す図である。
符号の説明
101、102、106、107、302 機器
103、105、301、1705、1712 操作端末
104 ネットワークあるいはバス
201 バス
202 CPU
203 ROM
204 RAM
205 記憶装置
206 入力装置
207 ネットワークI/F
208 出力装置
303 デバイス情報
304、900 種別・テンプレート対応テーブル
305 テンプレート
306、912、922 デバイステンプレート
307、911、921 デバイス種別
308 操作コマンド
309 UI部品と操作コマンドの対応情報
310 UI部品
311 デバイスIDの格納場所
312 UIデータ
313 出力
314、910、920 種別・テンプレートの組
315 デバイスID
316 ブラウザ
1701、1711 UI画面
1702 カメラの横方向の回転を表わすUI部品
1701、2601 カメラのズームを表わすUI部品
1701 カメラの縦方向の回転を表わすUI部品
1706 ネットワークカメラ
1713 ビデオ
3100 ネットワークカメラの操作を行うためのデフォルトUI画面
3101 設定UI画面への遷移を指示するUI部品
3102 情報UI画面への遷移を指示するUI部品
3400 ネットワークカメラの設定を行うための設定UI画面
3401 デフォルトUI画面への遷移を指示するUI部品

Claims (11)

  1. デバイスとネットワークにより接続された、前記デバイスを操作するリモート操作端末装置であって、
    前記デバイスよりデバイス情報を取得する取得手段と、
    前記デバイスに対応したデバイステンプレートと、
    前記取得手段で取得したデバイス情報に基づいて、前記デバイステンプレートを編集する編集手段とを有することを特徴とするリモート操作端末装置。
  2. 複数のデバイステンプレートと、
    前記複数のデバイステンプレートから前記デバイスに対応したものを選択する選択手段とを有することを特徴とする請求項1に記載のリモート操作端末装置。
  3. 前記デバイステンプレートは、前記デバイス情報に記載の操作コマンドと、前記デバイステンプレートに記載のユーザインタフェースを構成するUI部品との対応情報及び前記デバイスを特定する為のデバイスIDを格納する為の格納スペースを有し、
    前記格納スペースに操作対象とするデバイスのデバイスIDを格納する格納手段を持つ事を特徴とする請求項1または2に記載のリモート操作端末装置。
  4. 前記デバイステンプレートは、構築されるユーザインタフェースにおけるUI部品の有無及びレイアウトを変更する為の条件記述を含むことを特徴とする請求項1〜3の何れか1項に記載のリモート操作端末装置。
  5. 前記構築されるユーザインタフェースにおけるUI部品の有無及びレイアウトを変更する為の条件記述は、取得したデバイス情報に記載の操作コマンドの有無を基に条件判定する事を特徴とする請求項4に記載のリモート操作端末装置。
  6. 前記構築されるユーザインタフェースにおけるUI部品の有無及びレイアウトを変更する為の条件記述は、取得したデバイス情報に記載の状態変数の値を基に条件判定する事を特徴とする請求項4に記載のリモート操作端末装置。
  7. 前記テンプレートを入れ替える入替手段を有することを特徴とする請求項1〜6の何れか1項に記載のリモート操作端末装置。
  8. さらに1つのデバイスに対するユーザインタフェースを複数画面から構成することを特徴とする請求項1〜7の何れか1項に記載のリモート操作端末装置。
  9. 前記デバイステンプレートは、各UI画面を表わす画面毎のテンプレートから構成されることを特徴とする請求項8に記載のリモート操作端末装置。
  10. UI画面中に他の画面に遷移するためのUI部品を含むことを特徴とする請求項8に記載のリモート操作端末装置。
  11. 前記画面毎のテンプレートは、他のテンプレートへ遷移するための記述を含むことを特徴とする請求項9に記載のリモート操作端末装置。
JP2005334812A 2005-11-18 2005-11-18 リモート操作端末装置 Pending JP2007140983A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005334812A JP2007140983A (ja) 2005-11-18 2005-11-18 リモート操作端末装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005334812A JP2007140983A (ja) 2005-11-18 2005-11-18 リモート操作端末装置

Publications (1)

Publication Number Publication Date
JP2007140983A true JP2007140983A (ja) 2007-06-07

Family

ID=38203750

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005334812A Pending JP2007140983A (ja) 2005-11-18 2005-11-18 リモート操作端末装置

Country Status (1)

Country Link
JP (1) JP2007140983A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011033803A1 (ja) * 2009-09-16 2011-03-24 三菱電機株式会社 画像構築装置及びプログラム
JP2015032160A (ja) * 2013-08-02 2015-02-16 コイト電工株式会社 交通信号制御機用設定装置、プログラム及び記録媒体

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011033803A1 (ja) * 2009-09-16 2011-03-24 三菱電機株式会社 画像構築装置及びプログラム
JP4724261B2 (ja) * 2009-09-16 2011-07-13 三菱電機株式会社 画像構築装置及びプログラム
US8339416B2 (en) 2009-09-16 2012-12-25 Mitsubishi Electric Corporation Image construction apparatus and computer-readable media
JP2015032160A (ja) * 2013-08-02 2015-02-16 コイト電工株式会社 交通信号制御機用設定装置、プログラム及び記録媒体

Similar Documents

Publication Publication Date Title
JP5084314B2 (ja) 情報処理装置、情報処理方法、情報処理プログラム、及び情報処理プログラムを記録する記録媒体
JP6332533B2 (ja) 情報処理装置、その処理方法及びプログラム
JP4338210B2 (ja) 画像管理装置及び画像管理方法、プログラム
JP2007114888A (ja) リモート操作端末装置
KR101610605B1 (ko) 전자 메뉴얼 열람 장치 및 시스템
JP5699575B2 (ja) 情報処理装置、情報処理方法、及びコンピュータプログラム
JP2007199772A (ja) 情報処理装置および情報処理装置の出力制御方法およびプログラムおよび記憶媒体
JP2009048485A (ja) 情報処理装置、情報処理方法、情報処理プログラム、及び情報処理プログラムを記録する記録媒体
JP2007140983A (ja) リモート操作端末装置
JP2013084241A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP4386243B2 (ja) プログラム生成装置およびプログラム生成方法およびプログラムおよび記録媒体
JP6795767B2 (ja) 情報処理装置と、その処理方法及びプログラム
JP6274265B2 (ja) 情報処理装置、情報処理システム、その制御方法及びプログラム
JP2007336369A (ja) リモート操作端末装置、その制御方法及びプログラム
JP2009043022A (ja) タグ付き文書データ問い合わせ処理システムに対する問い合わせ画面自動生成装置
JP7004930B2 (ja) 情報処理装置と、その処理方法及びプログラム
JP5510502B2 (ja) 情報処理装置、情報処理方法、情報処理プログラム、及び情報処理プログラムを記録する記録媒体
JP2007286683A (ja) リモート操作端末装置及びui操作画面構築方法
JP6577392B2 (ja) プログラム開発支援装置、プログラム開発支援方法及びプログラム開発支援装置で実行することが可能なコンピュータプログラム
JP2019012469A (ja) サーバ、その処理方法及びプログラム
JP2009157847A (ja) プログラム開発装置、プログラム開発プログラム
JP7048912B2 (ja) 情報処理装置と、その処理方法及びプログラム
JP5954309B2 (ja) プログラム生成支援装置、プログラム生成支援方法ならびにプログラム
JP2018197982A (ja) 情報入力装置およびコンピュータープログラム
JP6700559B2 (ja) 情報処理装置と、その処理方法及びプログラム