JP2007336369A - リモート操作端末装置、その制御方法及びプログラム - Google Patents
リモート操作端末装置、その制御方法及びプログラム Download PDFInfo
- Publication number
- JP2007336369A JP2007336369A JP2006167703A JP2006167703A JP2007336369A JP 2007336369 A JP2007336369 A JP 2007336369A JP 2006167703 A JP2006167703 A JP 2006167703A JP 2006167703 A JP2006167703 A JP 2006167703A JP 2007336369 A JP2007336369 A JP 2007336369A
- Authority
- JP
- Japan
- Prior art keywords
- template
- information
- operation terminal
- data
- user interface
- 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
Links
Images
Landscapes
- Selective Calling Equipment (AREA)
Abstract
【課題】一つのUI画面内に複数のデバイスの機能に対応するUI部品を効果的に配置する場合、UIで操作するデバイスを特定の個体に限定せず、同じ機能を持つデバイスに対しては同じUI記述で対応させることを目的とする。
【解決手段】デバイステンプレート306は、デバイス302を特定するためのデバイスID315を格納するための格納場所311を有し、このデバイスID格納場所311は操作対象デバイスの種別を特定するデバイス種別ID307と関連付けられ、デバイス302よりデバイス種別ID307とデバイスID315を含むデバイス情報302を取得する手段と、取得したデバイス種別ID307に関連付けられたデバイスID格納場所311に同じく取得したデバイスID315を格納する手段を有する。
【選択図】図28
【解決手段】デバイステンプレート306は、デバイス302を特定するためのデバイスID315を格納するための格納場所311を有し、このデバイスID格納場所311は操作対象デバイスの種別を特定するデバイス種別ID307と関連付けられ、デバイス302よりデバイス種別ID307とデバイスID315を含むデバイス情報302を取得する手段と、取得したデバイス種別ID307に関連付けられたデバイスID格納場所311に同じく取得したデバイスID315を格納する手段を有する。
【選択図】図28
Description
本発明は、ネットワークを介してデバイスの各種操作を行うリモート操作端末装置であって、特にデバイスから取得したデバイス情報を利用して、ユーザインタフェースを構築するリモート操作端末装置等に関するものである。
従来、ネットワークを介してデバイスの操作を行おうとする際、操作端末は予め、操作対象であるデバイスについて、以下の情報を知っている必要があった。そして、その情報とは、操作信号を送るための通信プロトコル、操作信号の意味、操作信号自体の送信手続き、操作範囲情報、及び、デバイスからのフィードバック信号を処理する手続きなどである。
すなわち、操作端末においては、操作対象のデバイス個別に対応したレイアウト情報を含むユーザインタフェース(以下UIと略す)を構成するための、専用の操作用アプリケーションが必要であった。このため、操作用アプリケーションの追加や変更ができない操作端末の場合は、新たな種類のデバイスに応じて新たな操作端末が必要であった。この様な不便を解決するために、ネットワーク及びプロトコルとして広く標準として使用されている物を利用し、デバイスを種別に応じて分類分けし、同じデバイス種別のものについては、共通の操作を共通のUIで操作するリモート操作の仕組みが存在している。
例えば、UPnP(詳細についてはhttp://www.upnp.org/ を参照)の仕組みを使用することで、デバイス及び操作端末のネットワークにおける発見、探索、能力交換、制御、応答、及び表示機能などの手続きを共通化することが可能となる。これにより、デバイス及び操作端末がUPnPに対応しており、且つ操作端末が操作可能なデバイス種別のものであれば、デバイスのメーカーや機種形式に関わらず、リモート操作を行うことが可能となっている。
この時、操作端末は、同一のデバイス種別のデバイスであっても、例えば機能の有無や操作のパラメータ範囲など、各デバイス固有の機能差異を吸収するために、UIを構成して操作を行う前に、操作をしようとするデバイスのデバイス情報を取得していた。そして、デバイス情報の内容に基づき操作アプリケーション内の条件判定により、最終的なUIの構成を行っていた。あるいは、デバイスからこのデバイスに適した標準的な文書形式のUIデータを得ることにより、UIを構成していた。
また、上記の様な標準に依らず、操作端末において、UIを構成するための多種多様のデバイス情報を取得することで、デバイスの状態変化や、複数のデバイスによる協調動作に対応するために動的にUIを構成するための以下のような数々の技術が開示されている。
まず、操作されるデバイス自身が操作画面を構成するためのGUI部品を保持し、このGUI部品が自身の機能を示すアプリケーション情報を保持している。そして、操作端末は、デバイスよりGUI部品を読み込み、前記アプリケーション情報を用いてUIを構成する。これにより、各デバイスの各機能に適したUIを操作端末において動的に構成され、各デバイスを統合的に動作させる技術が開示されている(例えば、特許文献1参照)。
また、複数のデバイスを操作端末において制御する際に、当該制御を仲介するサーバが設けられている。そして、複数のデバイスの状態関連情報を含むデバイス情報を当該仲介サーバで取得する。次に仲介サーバにおいて、前述の状態関連情報に基づき、UIを構成するための定義データを端末装置に送信することで、複数のデバイスを統合して制御するためのUIを構成する技術が開示されている(例えば、特許文献2参照)。
また、操作端末とは別のデバイス管理装置において、デバイスより取得したデバイス情報をXML(eXtensible Markup Language)データとして保持する。そして、UIを表示する様に操作端末から要求された際には、デバイスに関連する情報及び制御端末に関連する情報に基づいて選択された、XMLデータ変換のための情報を含むスタイルシートをテンプレートの如く利用して前述のXMLデータを変換する。これを操作端末において表示する技術が開示されている(例えば、特許文献3参照)。
また、複数のデバイスに対するUIを一つの画面で構成するものとして、メインデータファイル、マップデータファイル、カメラリストデータファイル、と各々のスタイルシートファイルを用いて、複数が接続されているモニタリングカメラの画面を構成する。そして、スタイルシートを交換するだけでモニタリング画面の表示スタイルを変更することができる技術が開示されている(例えば、特許文献4参照)。
しかし、上記のUPnPの仕組みを利用することで、操作端末で構成されるUIは、同一の操作端末上においては、UI部品やレイアウト等のUIの見た目や操作感がメーカーや機種形式に関わらず同一のものとなってしまう。したがって、UIによる差別化が図り難いものであった。さらに、操作が可能なはずのデバイス種別のデバイスであっても、操作端末が知らない機能や、新たなデバイス種別のデバイスについては、操作アプリケーションにおける条件判定が行えない。その結果、操作端末内のアプリケーションを変更しない限り、当該デバイスの新機能や新デバイスの操作自体行うことは出来なかった。さらに、デバイスからそのデバイスに適した標準的な文書形式のUIデータを得ることによりUIを構成する場合には、デバイスが保持している操作端末によらないUIデータを利用する。したがって、操作端末の画面サイズなどによっては操作性の悪いものになる場合があった。
さらに、特許文献1においては、操作されるデバイス自身がGUI部品及び当該GUI部品の機能情報を保持し、操作端末がこれらのオブジェクトを読み込むことでUIを構成させている。したがって、多くのUIのための画面を持つデバイスの場合は、デバイスの持つデータ量及び操作端末に送るデータ量が莫大な物となってしまうという問題点があった。また、操作端末においても、GUI部品の機能情報を理解し、これに基づいて実行する仕組みが必要となる。さらに、操作端末上で、簡単にUIのGUI部品等のデザインを変更することは不可能であるという問題点もあった。
さらに、特許文献2においては、デバイスと操作端末の他に、統合されたUIを構成するための仲介サーバが必要である。また、仲介サーバは予め決められたデバイス同士の組み合わせにしか対応しておらず、それ以外のデバイスではUIが構成されないという問題点があった。また、デバイスの状態関連情報は仲介サーバで使用されるために、操作端末において状態関連情報を基にUIの変更が行えないという問題点もあった。
さらに、特許文献3においては、操作端末とは別のデバイス管理装置が必要であり、また、当該デバイス管理装置において、デバイスの状態によりテンプレートを選択変更する構成である。したがって、デバイス管理装置においてテンプレートが選択された後は、操作端末においては、デバイスの状態やユーザ操作に基づき、テンプレートを選択変更し、UIを変更することが出来ないという問題点があった。また、デバイス情報によりテンプレートを選択するのみであるため、情報の表示は可能であるが、デバイスの操作を行うことが困難であった。
さらに、特許文献4においては、メインデータファイル、マップデータファイル、カメラリストデータファイルには、対応するスタイルシートのリンクが直接含まれている。したがって、スタイルシートにリンクを埋め込む際(すなわち、モニタリング画面をユーザが編集する際)のカメラの接続状況と実際にモニタリング画面を表示する場合のカメラの接続状況が一致しない場合があるという問題点があった。
さらに、デバイス情報を基にUIを構築する操作端末で、同一のデバイス情報から、状況に応じて複数種類のUIを構築することが要求される場合は、操作端末に予め、デバイス毎に複数のUIを実行可能なUIアプリケーションを用意しておく必要がある。したがって、アプリケーションの容量を肥大化させてしまうという問題点があると同時に、数多くの種類のUIを保持することは操作端末のリソースを浪費するものである。また、後から新規のUIを追加することは、当該容量の大きくなったUIアプリケーション自体を入れ換える必要があり、事実上不可能であるという問題点があった。
本発明は、このような問題点を解決しようとするものであり、操作端末のアプリケーションを変更することなしに多種のデバイスと操作端末自体に適したUI を生成すること、さらにデバイスの機種や個体に応じてUIを生成することを目的とする。
本発明は上記目的を達成するために、デバイスとネットワークにより接続され、前記デバイスを操作するリモート操作端末装置などであって、前記デバイスからデバイス情報を取得するデバイス情報取得手段と、前記デバイスに対応したデバイステンプレートと、前記取得したデバイス情報及び前記デバイステンプレートから、前記デバイスを操作するためのユーザインタフェースを構築するユーザインタフェース構築手段と、を有することを特徴とするものである。
本発明のリモート操作端末装置によれば、デバイスを操作するためのUIがデバイス情報及びデバイステンプレートから構築されるために、操作端末のプログラムを変更することがなく、デバイステンプレートを入れ換えることで、UIの変更が可能となる。
また、デバイステンプレート中に、デバイス情報に記載の操作コマンドと、デバイステンプレートに記載のUI部品との対応情報、及び、デバイスIDを格納するための格納場所を有する。さらに、この格納場所にデバイスIDを格納する手段を持つことで、デバイスの種別に応じたレイアウトや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を操作する。
(第1の実施形態)
図1は本発明の全体構成の一例を示す概念図である。図1において、101, 102, 106, 107はそれぞれ被操作対象のデバイス(機器)であり、103, 105はそれぞれ機器の操作を行うリモート操作端末装置(操作端末)である。104は機器および操作端末を接続し、それらの間でデータおよび命令のやり取りを行うためのネットワークである。操作端末103, 105はそれぞれ、ネットワーク104を通じて操作コマンドを送ることにより、機器101, 102, 106, 107を操作する。
図2は本発明における操作端末のハードウェア構成の一例を示すブロック図である。202はCPUであり、各種処理のための演算や論理判断等を行い、バス201に接続された各構成要素を制御する。本装置には、プログラムメモリとデータメモリを含むメモリが搭載されている。プログラムメモリには、フローチャートにつき後述する処理手順を含むCPU202による制御のためのプログラムを格納する。メモリはROM 203であっても良いし外部記憶装置などからプログラムがロードされるRAM 204であっても良い。205はデータやプログラムを記憶しておくための不揮発性メモリやハードディスクなどの記憶装置である。206はユーザからの情報を入力するための入力装置であり、この装置はマウス、タッチパネル、キーボードなどある。208は分析されたデータ出力情報を出力する出力装置であり、CRTや液晶表示器などの表示装置である。207はネットワークI/Fであり、ネットワークで接続された他のデバイスとのやり取りを行う。
図3は本発明における全体の構成の一例を表わすクラス図である。301は操作端末であり、302はデバイスである。デバイス302はデバイス情報303を有しており、操作端末301からの要求に応じてネットワークを経由してデバイス情報303を操作端末301に送信する。デバイス情報303は、ネットワークカメラ、ビデオ、プリンタなどといったデバイス種別307と、そのデバイスを操作するための操作コマンド308と、個々のデバイス固有のデバイス識別子(デバイスID)315を含む。操作端末301は、デバイス情報303を元にユーザインタフェース(UI)を構成するためのUIデータ312を動的に生成するためのテンプレート305を有する。
テンプレートには、その1種としてデバイステンプレート306があり、そのデバイステンプレート306は、デバイスIDの格納場所311と、UI部品310と、UI部品310と操作コマンド308の対応情報309を含む。デバイスIDの格納場所311は、デバイス情報303中のデバイスID315によって補完されるべきであることを示しており、生成されるUIがどのデバイスのUIであるのかを識別するために使用される。UI部品310は、実際に表示されるUI上のボタン、スライダ、リストボックスなどの部品である。UI部品と操作コマンドの対応情報309は、どのUI部品310を操作するとどの操作コマンド308がデバイス302に対して発行されるかという対応関係を表わす情報である。また、操作端末301は、デバイス種別307とデバイステンプレート306との対応関係を表わす種別・テンプレートの組314を複数含む種別・テンプレート対応テーブル304を有する。316は、操作端末が生成したUIデータ312からUIを構築するブラウザであり、出力313に対して表示を行う。
図4は本発明におけるUI生成処理の流れの一例を示すフローチャートである。図において、S401からS407は各ステップを表わす。まず、操作端末はデバイスにデバイス情報を要求し、デバイスからデバイス情報を取得する(S401)。次に、取得したデバイス情報からデバイス種別を取り出し(S402)、デバイス種別を用いて、デバイスに対応するデバイステンプレートを検索する(S403)。そして、検索の結果、デバイス種別に対応するデバイステンプレートが存在するか否かを判断する(S404)。そして、対応するデバイステンプレートが存在する場合には、デバイステンプレートを入力とし、UIデータ領域を新たに出力とする入出力の設定を行った(S405)後に、UIデータ生成処理を行う(S406)。それから、UIデータによりUIを構築・表示し(S407)、処理を終了する。S404の判断の結果、S402で得たデバイス種別に対応するデバイステンプレートが存在しない場合には、処理を終了する。
図7は本発明におけるデバイスのデバイス情報の一例を示す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は本発明における種別・テンプレート対応テーブルの一例を示す概念図である。図において、900は種別・テンプレート対応テーブル全体であり、種別・テンプレート対応テーブル304を具体的に表わしたものである。このテーブルはファイルとして記憶装置205中に保持されており、更新することが可能である。910、920はそれぞれ1組のデバイス種別とデバイステンプレートファイルの対応関係を表わしており、種別・テンプレート組314を具体的に表わしたものである。911、921はそれぞれ、1つのデバイス種別を表わしており、共にデバイス種別307を具体的に表わしたものである。912、922はそれぞれ、1つのデバイステンプレートを表わしており、共にデバイステンプレート306に対応している。これらは、記憶装置205に保存されており、それぞれの文字列はファイル名を表わしている。すなわち、図はデバイス種別が911であれば、デバイステンプレート912が選択され、デバイス種別が921であれば、デバイステンプレート922が選択されることを表わしている。
図11は本発明における対応テンプレート検索処理の流れの一例を示すフローチャートである。図において、S1101からS1105は各ステップを表わす。まず、種別・テンプレート対応テーブル900にまだデバイス種別とテンプレートの組が存在するか否かを判断し(S1101)、存在するならばこのデバイス種別とテンプレートの組を得て(S1102)、その中のデバイスの種別を得る(S1103)。次に、このデバイスの種別がS402で得たデバイスの種別に一致するか否かを判断する(S1104)。一致するならばS1102で得たデバイス種別とテンプレートの組からデバイステンプレートを得て、対応するデバイステンプレートとして(S1105)、処理を終了する。S1104の判断の結果、両デバイスの種別が一致しない場合には、S1101の判断に戻る。S1101の判断の結果、種別・テンプレート対応テーブル900にもうデバイス種別とテンプレートの組が存在しないならば、処理を終了する。すなわち本処理は、本実施形態においてはデバイス種別が“urn:schemas-canon-org:device:NetworkCamera:1”であるデバイス種別とテンプレートの組を種別・テンプレート対応テーブル900から検索する。そして、デバイス種別とテンプレートの組910を得て、対応するデバイステンプレートのファイル名として「ネットワークカメラテンプレート」を返す。
図6は本実施形態におけるデバイステンプレートの一例を示すXMLデータである。図6において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。行番号0608、0615、0617、0619の6A〜6Dは、それぞれデバイス情報中のデバイスIDの格納場所を意味する特別な変数($uid)である。行番号0622の6Eは、デバイス情報中のデバイス名の格納場所を意味する特別な変数($devName)である。また、行番号0614から0619は、デバイスに対して操作コマンドが発行されることを示している。例えば、行番号0615の6Gは”method=”CameraControlPan””となっており、この行が実行された時に発行される操作コマンドが”CameraControlPan”であることを示している。また、行番号0614には6Fに示すように本データ中で一意な識別子として”pan”が与えられている。また、6I、6J、6Kには、UIを構成するUI部品についての記述がある。6I〜6Kはそれぞれ特定の範囲からの選択を行うUI部品”xforms:range”を表わしている。そして、それぞれのレイアウト情報および現在の値を保持しているデータモデルへの参照と、値が変更された場合にどの操作コマンドが発行されるかの対応情報がふくまれている。例えば6I中の行番号0635中の6Hは”submission=”pan” ”となっており、UI部品”xforms:range”の値が変更された場合に識別子が”pan”である行を実行することが示されている。すなわち、0614行の6Fと0635行の6Hの記述により、6IのUI部品と6Gの操作コマンド”CameraControlPan”が対応付けられている。よって、このデバイステンプレート中には、デバイス情報に記載の操作コマンドとデバイステンプレートに記載のUIを構成するUI部品との対応情報が含まれている。
図8は本実施形態におけるデバイスを操作するための操作サービスを示すデバイス情報の一例を示すXMLデータである。図8において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図8は、図7において7Dで表わされた操作サービスを示すデバイス情報である。図8において、8A、8B、8Cはそれぞれ別の操作コマンドを表わしている。そして、それぞれの操作コマンド名はCameraControlPan、CameraControlTilt、CameraControlZoomであること、およびそれぞれの操作コマンドの引数などを示している。また、8Dは状態変数を示しており、その名称がMotionDetectがあることを示している。
図5は本実施形態におけるUI生成処理の流れを示すフローチャートである。図において、S501からS509は各ステップを表わす。まず、S405で設定された入力において現在の位置が入力の終端に達しているか否かを判断し(S501)、まだ終端に達していない場合には、構文上の1行を読み込む(S502)。次に、読み込んだ行中にデバイスIDの格納場所が含まれているか否かを判断し(S503)する。デバイスIDの格納場所が含まれている場合には、S401で得たデバイス情報中から得たデバイスIDを得て(S504)、バッファに読み込んだ行中のデバイスIDの格納場所に実際のデバイスIDを挿入する(S505)。
S503の判断の結果、デバイスIDの格納場所が含まれていない場合には、S506の判断に移る。次に、読み込んだ行中にデバイス名の格納場所が含まれているか否かを判断し(S506)する。デバイス名の格納場所が含まれている場合には、S401で得たデバイス情報中から得たデバイス名を得て(S507)、バッファに読み込んだ行中のデバイス名の格納場所に実際のデバイス名を挿入する(S508)。S506の判断の結果、デバイス名の格納場所が含まれていない場合には、S509の処理に移る。そして、バッファ中の読み込んだ行をUIデータに書き込んだ(S509)後S501の判断に戻り、一連の処理を繰り返す。S501の判断の結果、すべての行の処理を終えて、デバイステンプレートの終端に達した場合には、処理を終了する。すなわち本処理においては、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データに追加され、S501の判断に戻る。
図6の行番号0622においては、S503の判断においてデバイスIDの格納場所が行中に含まれないため、判断結果が否となり、S506の判断に移る。S506の判断においては、行中にデバイス名の格納場所($devName)が含まれているので、S507において図7のデバイス情報に含まれるデバイス名(“Catharine”)を得て、S508で前記格納場所に前記デバイス名を格納する。すなわち、文字列“$devName”を“Catharine”に置換する。そして、S509において、デバイス名が補完されたデータがUIデータに追加され、S501の判断に戻る。他の行はS503、S506の判断とも偽となるので、S509においてそのままUIデータに追加される。図6のテンプレートが行番号0650に達すると、S501の判断において、デバイステンプレートの現在の位置がテンプレートの終端に達しているので、処理を終了する。この結果、本処理によって図6のようなデバイステンプレートから図10のようなUIデータを生成することができる。
図10は本実施形態におけるUIデータ生成処理によって生成されたUIデータの一例を示すXMLデータである。図10において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。このUIデータは図6のデバイステンプレートを基に、図7のデバイス情報を用いて図5のUIデータ生成処理によって生成されるものであり、UIデータ312に該当する。図において、10A、10B、10C、10Dはそれぞれデバイステンプレート中の6A、6B、6C、6Dがデバイス情報中のデバイスID 7Cにより補完されたものである。そして、10Eはデバイステンプレート中の6Eがデバイス情報中のデバイス名7Bにより補完されたものである。このUIデータをブラウザ216に渡すことによりUIが構築され、出力313によりUIが表示される。
図17は本実施形態におけるデバイスと表示されるUIとの関係を示す概念図である。
図において、図17(a)のように操作端末1705に対してデバイスとしてネットワークカメラ1706が接続されている場合には、デバイスの種別がネットワークカメラを表わすデバイス種別である。本実施形態においては“urn:schemas-canon-org:device:NetworkCamera:1”である。したがって、これまでに説明した流れで図10のようなUIデータが生成され、それを基にブラウザ316により1701のようなUIが構築される。UI1701において、1702はカメラの横方向の回転を表わすUI部品であり、図10の行番号1033から1035に記載の特定の範囲からの選択を行うUI部品を表わす要素”xforms:range”から生成されたものである。同様に1703、1704はそれぞれカメラのズーム、縦方向の回転を表わすUI部品である。これは、図10の行番号1039から1041、1045から1047に記載の特定の範囲からの選択を行うUI部品を表わす要素”xforms:range”から生成されたものである。
図において、図17(a)のように操作端末1705に対してデバイスとしてネットワークカメラ1706が接続されている場合には、デバイスの種別がネットワークカメラを表わすデバイス種別である。本実施形態においては“urn:schemas-canon-org:device:NetworkCamera:1”である。したがって、これまでに説明した流れで図10のようなUIデータが生成され、それを基にブラウザ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データが生成され、それを基にブラウザ316により1711のようなUIが構築される。
以上のように、本実施形態のリモート操作端末においては、デバイスを操作するためのUIは、デバイス情報及びデバイステンプレートから構築される。したがって、操作端末のプログラムを変更すること無く、デバイステンプレートを入れ換えることで、UIの変更が可能になる。また、個々のデバイスの識別子をUIデータ中に埋め込むことにより、UIからの個々の機器の操作が可能となる。
(第2の実施形態)
本実施形態においては、構築されるUIにおけるUI部品の有無及びUIのレイアウトを変更するための条件記述をデバイステンプレートに含む場合について、図面を参照しながら説明する。図12は本実施形態におけるデバイステンプレートの一例を示すXMLデータである。図において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。12A〜12G、12I、12Jは、それぞれ図8に示したデバイスを操作するための操作サービスを示すデバイス情報中に、操作コマンドが存在するか否かによって生成するUIデータを変えるための条件の記述部分である。このうち、行番号1210、1220、1246はすべて同様の記述となっている。XMLの属性の記述”control=”CameraControlPan””のうち、属性名”control”は条件文がデバイス情報中の操作コマンドを対象とすることを表わしている。”CameraControlPan”は操作コマンド名が”CameraControlPan”であることを示している。そして、XMLの要素名”ui_template:ifexist”が属性で示したものがデバイス情報中に存在するならば、その要素の子要素を解釈し、必要に応じてUIデータに追加するという条件を表わしている。
本実施形態においては、構築されるUIにおけるUI部品の有無及びUIのレイアウトを変更するための条件記述をデバイステンプレートに含む場合について、図面を参照しながら説明する。図12は本実施形態におけるデバイステンプレートの一例を示すXMLデータである。図において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。12A〜12G、12I、12Jは、それぞれ図8に示したデバイスを操作するための操作サービスを示すデバイス情報中に、操作コマンドが存在するか否かによって生成するUIデータを変えるための条件の記述部分である。このうち、行番号1210、1220、1246はすべて同様の記述となっている。XMLの属性の記述”control=”CameraControlPan””のうち、属性名”control”は条件文がデバイス情報中の操作コマンドを対象とすることを表わしている。”CameraControlPan”は操作コマンド名が”CameraControlPan”であることを示している。そして、XMLの要素名”ui_template:ifexist”が属性で示したものがデバイス情報中に存在するならば、その要素の子要素を解釈し、必要に応じてUIデータに追加するという条件を表わしている。
すなわち、行番号1210、1220、1246はすべて、デバイス情報中に”CameraControlPan”という操作コマンドが存在するならば、それぞれの子要素を解釈し、必要に応じてUIデータに追加するという条件文である。同様に、行番号1213、1224、1266はすべて、デバイス情報中に”CameraControlTilt”という操作コマンドが存在するならば、それぞれの子要素を解釈し、必要に応じてUIデータに追加するという条件文である。また、行番号1216、1228、1273はすべて、デバイス情報中に”CameraControlZoom”という操作コマンドが存在するならば、それぞれの子要素を解釈し、必要に応じてUIデータに追加するという条件文である。これにより、12G、12I、12Jの条件文の子要素として記述されている特定の範囲からの選択を行うUI部品”xforms:range”はそれぞれの条件が満たされた場合にはUI上に存在するが、条件が満たされない場合には存在しないことになる。
また、12Hはデバイス情報中の状態変数の値によって生成するUIデータを変えるための条件の記述部分である。このうち、行番号1255のXMLの属性の記述”variable=”MotionDetect””は、条件文の対象となる状態変数名が” MotionDetect”であることを示している。また、”value=”1””は、条件文の指定する値が”1”であることを示している。そして、XMLの要素名”ui_template:ifcond”が属性で示した状態変数の値の条件が満たされているならば、その要素の子要素をUIデータに追加するという条件を表わしている。すなわち行番号1255は、図8に示したデバイスを操作するための操作サービスを示すデバイス情報中の状態変数”MotionDetect”の値が”1”であるならば、子要素をUIデータ解釈し、必要に応じてに追加するという条件文である。
また、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部品のXおよびY座標は、それぞれその時点の変数$x、$yの値によって変わることを表わしている。したがって、12Gおよび12Hの条件ブロックの条件文が成立するか否かに応じて、それぞれ12M、12Oの式が実行されるか否かが変わる。それによって行番号1259の画像および行番号1274の特定の範囲からの選択を行うUI部品のレイアウトが変わることを表わしている。
図13は本実施形態におけるUI生成処理の流れを示すフローチャートである。図において、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の判断の結果、すべての行の処理を終えて、入力の終端に達した場合には、処理を終了する。
S1301の判断の結果、すべての行の処理を終えて、入力の終端に達した場合には、処理を終了する。
図14は本実施形態における条件文とその子要素の処理の流れを示すフローチャートである。図において、S1401からS1411は各ステップを表わす。まず、読み込んだ行が操作コマンドの有無に関する条件文であるか否かを判断し(S1401)する。その判断の結果、読み込んだ行が操作コマンドの有無に関する条件文ではない場合には、読み込んだ行が状態変数の有無に関する条件文であるか否かを判断する(S1402)。判断の結果、読み込んだ行が状態変数の有無に関する条件文ではない場合には、読み込んだ行が状態変数の値に関する条件文であるか否かを判断し(S1403)する。その判断の結果、読み込んだ行が状態変数の値に関する条件文である場合には、S401で得たデバイス情報中から得た状態変数の値を得て(S1404)、条件文が満たされているか否かを判断する(S1405)。
同様に、S1401の判断の結果、読み込んだ行が操作コマンドの有無に関する条件文である場合には、S401で得たデバイス情報中から得た操作コマンドの一覧から指定された操作コマンドを検索する(S1410)。S1402の判断の結果、読み込んだ行が状態変数の有無に関する条件文である場合には、S401で得たデバイス情報中から得た状態変数の一覧から指定された状態変数を検索し(S1411)、条件文が満たされているか否かを判断する(S1405)。S1405の判断の結果、読み込んだ行の条件文が満たされているならば、この条件の範囲の保存処理を行い(S1406)、この保存された条件の範囲を新たな入力とする設定を行う(S1407)。その後に、上記入力すなわち保存された条件の範囲に対して本UIデータ処理を再帰的に実行する(S1408)。そして、保存した条件の範囲を破棄し(S1409)、処理を終了する。S1405の判断の結果、読み込んだ行の条件文が満たされていない場合には、条件の範囲を読み飛ばした(S1412)後、処理を終了する。
図15は本実施形態における条件の範囲保存処理の流れを示すフローチャートである。
図において、S1501からS1505は各ステップを表わす。まず、条件の範囲保存用のファイルを開き(S1501)、入力から1行を読み込む(S1502)。次に、入力が終端に達しているか否かを判断し(S1503)、入力が終端に達していないならば、読み込んだ行を条件の範囲保存用のファイルに書き込み(S1504)、S1502の処理に戻る。S1503の判断の結果、入力が終端に達したならば、条件の範囲保存用のファイルを閉じて(S1505)、処理を終了する。
図において、S1501からS1505は各ステップを表わす。まず、条件の範囲保存用のファイルを開き(S1501)、入力から1行を読み込む(S1502)。次に、入力が終端に達しているか否かを判断し(S1503)、入力が終端に達していないならば、読み込んだ行を条件の範囲保存用のファイルに書き込み(S1504)、S1502の処理に戻る。S1503の判断の結果、入力が終端に達したならば、条件の範囲保存用のファイルを閉じて(S1505)、処理を終了する。
図16は本実施形態における変数に現在の値を格納する処理の流れを示すフローチャートである。図において、S1601からS1604は各ステップを表わす。まず、登録されている変数から最初の変数とその現在値を得て(S1601)、変数があったか否かを判断する(S1602)。判断の結果、変数があったならば、バッファに読み込んだ行中のこの変数の変数名に一致する変数をすべてこの変数の現在値に置き換え(S1603)、登録されている次の変数とその現在値を得て(S1604)、S1602の判断に戻る。S1602の判断の結果、登録されている変数がもうないならば、処理を終了する。
次に、図13のUIデータ生成処理とそのサブルーチンである図14から図16によって、図7、図8のデバイス情報および図12のデバイステンプレートからUIデータを生成する処理について具体的に説明する。まず、S406において行われるUIデータ生成処理は、S405でデバイステンプレートを入力としているので、図12のデバイステンプレートを1行ずつ処理する。行番号1201から1209まではS1303からS1305のいずれの判断も偽なので、図5のUIデータ生成処理と同様にS1306の判断からS1312の処理を実行し、必要な置換が行われた後、S1313でUIデータに書き込まれる。
次に、図12のブロック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データに追加される。12D、12E、12Fは処理の流れは12Aと同様であるが、条件の範囲がそれぞれ1221と1222、1225と1226、1229と1230の2行であること、またデバイスIDの格納場所を有することが異なる。これらの行は行番号1211と同様に、図14のS1408において再帰的に呼び出されたUIデータ処理の中で、S1308においてデバイスIDを置換された後にS1313でUIデータに書き込まれる。12Kは2行とも変数の定義であるので、それぞれS1304で判断が真となり、S1315において変数の変数名とその初期値、すなわち変数名として$x、その値として97が、また変数名として$y、その値として381が登録される。12Gは12Aと同様に行番号1246が条件文であるため、S1303において判断が真となるので、S1314において図14に記載の条件文とその子要素の処理に移る。その後、S1401の判断が真となるため、S1410において操作コマンド”CameraControlPan”が図8のデバイス情報から検索され、行番号0809に存在するため、S1405の条件判断が真となる。よって、S1406において条件の範囲すなわち行番号1247から1253が保存され、条件文の終端を表わす行番号1254まで読み込みが終わる。次に、S1407でその条件の範囲を入力とし、S1408においてその入力に対して図13に記載のUIデータ生成処理を再帰的に行う。
ここで、その処理について具体的に説明する。行番号1247および1248が読み込まれると、この行はS1303からS1306 、そしてS1309のいずれの判断も偽なので、S1312に処理が進す。そして、図16に詳細を示したS1312の変数に現在の値を格納する処理により、12Lの部分が”x=”97” y=”381””と置換され、UIデータに追加される。行番号1249および1250は、S1303からS1306 、そしてS1309のいずれの判断も偽なので、S1313においてそのままUIデータに追加される。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データに追加される。以上、説明したような処理により、図7、図8のデバイス情報および図12のデバイステンプレートから図10のUIデータが生成され、ブラウザ316によりそれを基に図17で説明したように1701のようなUIが構築される。
図18は図8同様にデバイスを操作するための操作サービスを示すデバイス情報の一例を示すXMLデータである。図18において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図8との差異は、18Aで表わされた部分に記載された状態変数MotionDetectの値が”0”ではなく”1”であることである。
図19は図18のデバイスを操作するための操作サービスを示すデバイス情報を用いた場合に生成されるUIデータの一例を示すXMLデータである。図において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図18の18Aにおいて状態変数MotionDetectの値が”1”であることにより、図12に示すデバイステンプレートの12Hを処理する際に、行番号1255の処理において、S1405の判断が真となる。したがって、図19と図8のデバイス情報用いた場合に生成される図10のUIデータとの差異は、行番号1256から1260までが必要な置換を行った上で追加された19Aの部分が存在することである。また、12Oの変数の式が12Mと同様に処理されることにより、19Bで示したX座標の値が図10とは異なる。
図20は図19のUIデータにより構築されたUIの一例を示す概念図である。図において、UI部品1702および1703は図17と同様であるが、図19の19Aの部分により、行番号1941に記載の動体検知を表わすイメージデータ2001がUI上に表示される。また、19BのX座標の値が異なることによりUI部品1703の位置が移動している。
図21は図8同様にデバイスを操作するための操作サービスを示すデバイス情報の一例を示すXMLデータである。図において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図8との差異は、データ中に8C、8Dと同様の21A、21Bは含むが、8A、8Bにあたる部分が存在しないことである。
図22は図21のデバイスを操作するための操作サービスを示すデバイス情報を用いた場合に生成されるUIデータの一例を示すXMLデータである。図において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図21において、図8の8A、8Bにあたる部分が存在しないことにより、図12に示すデバイステンプレートの12Gおよび12Iを処理する際に、行番号1246および1266の処理において、S1405の判断が偽となる。したがって、図22と図10のUIデータとの差異は、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の実施形態)
本実施形態においては、デバイステンプレートを変更した場合について、図面を参照しながら説明する。図24は本実施形態におけるデバイステンプレートの一例を示すXMLデータである。図24において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。このデバイステンプレートは図6に示したデバイステンプレートとほぼ同様であるが、24Aに示したスライダの向きを指定する部分が変更されている。また、24Bに示した部分において各座標値が変更されている。このように特定のデバイスに対するデバイステンプレートは、記憶装置205に複数保持している、あるいは外部のサーバに保持されているものを、ユーザにより選択させる。これにより、種別・テンプレート対応テーブル304中に記載されているデバイステンプレートファイル名を変更することが可能である。
本実施形態においては、デバイステンプレートを変更した場合について、図面を参照しながら説明する。図24は本実施形態におけるデバイステンプレートの一例を示すXMLデータである。図24において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。このデバイステンプレートは図6に示したデバイステンプレートとほぼ同様であるが、24Aに示したスライダの向きを指定する部分が変更されている。また、24Bに示した部分において各座標値が変更されている。このように特定のデバイスに対するデバイステンプレートは、記憶装置205に複数保持している、あるいは外部のサーバに保持されているものを、ユーザにより選択させる。これにより、種別・テンプレート対応テーブル304中に記載されているデバイステンプレートファイル名を変更することが可能である。
図25は図24のデバイステンプレートを用いた場合に生成されるUIデータの一例を示すXMLデータである。図において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図6のデバイステンプレート用いた場合に生成される図10のUIデータとの差異は、25A、25Bの部分が、図24の24A、24B部分がそのまま反映されているために異なる。
図26は図25のUIデータにより構築されたUIの一例を示す概念図である。図26において、図17とは異なり、カメラのズームを表わすUI部品1703がUI部品2601のように変更されている。これは、図25の25Aの部分によりスライダの向きが、25Bの部分によりスライダの位置が変更されたものである。
(第4の実施形態)
本実施形態の全体構成およびハードウエア構成も、それぞれ図1および図2と同じであるが、一つのデバイステンプレートに複数のデバイスに対するUI部品を混在させる点が、第1〜第3の実施形態とは異なる。図27は、本実施形態における全体構成の一例を示す図であり、図1の一つのバリエーションに相当する。図27において、3000は構成機器を互いに接続するネットワークであり、有線によるLAN、無線LAN、あるいはIEEE1394等のその他の接続形式やそれらの混在などである。3001は操作端末、3002はネットワークカメラデバイス、3003はネットワークカメラ3002に物理的に接続され、ネットワークカメラ3002を上下左右の二次元方向に回転させるネットワーク雲台である。3004はカメラ撮影に必要な照明を提供するためのネットワークライトである。
本実施形態の全体構成およびハードウエア構成も、それぞれ図1および図2と同じであるが、一つのデバイステンプレートに複数のデバイスに対するUI部品を混在させる点が、第1〜第3の実施形態とは異なる。図27は、本実施形態における全体構成の一例を示す図であり、図1の一つのバリエーションに相当する。図27において、3000は構成機器を互いに接続するネットワークであり、有線によるLAN、無線LAN、あるいはIEEE1394等のその他の接続形式やそれらの混在などである。3001は操作端末、3002はネットワークカメラデバイス、3003はネットワークカメラ3002に物理的に接続され、ネットワークカメラ3002を上下左右の二次元方向に回転させるネットワーク雲台である。3004はカメラ撮影に必要な照明を提供するためのネットワークライトである。
図28は、本実施形態における全体構成を示すクラス図である。図28は、図3の種別・テンプレート対応テーブル304とその構成要素である種別・テンプレート組314が、形式の異なるテンプレート・種別対応テーブル3005とその構成要素であるテンプレート・種別組3006になっている点で異なる。また、ネットワーク接続され操作端末によって検出されたデバイスを管理するためのデバイスリスト3007を備えている点が異なる。
図29は、テンプレート・種別対応テーブル3005とその構成要素であるテンプレート・種別組3006の一例を示す図である。テンプレート・種別組3006は、テンプレート名3008、テンプレートファイル名3009、テンプレートファイル名3009から参照されUI構成に必要なデバイス種別IDのリストである必要なデバイス種別3010の3つの項目から構成される。図29では、ネットワークカメラ単体の対応関係3011がテンプレート・種別対応テーブル3005に登録されている。また、ネットワークカメラと雲台とを組み合わせた雲台カメラの対応関係3012が登録されている。また同じ組み合わせであるが異なるUIを実現するネットワークカメラと雲台とを組み合わせた雲台カメラの対応関係3013が登録されている。その他、ネットワークカメラとライトの組み合わせの対応関係3014、ネットワークカメラ、雲台及びライトの組み合わせの対応関係3015が登録されている。
図30は、操作端末3001がネットワークカメラ3002の検出時にネットワークカメラ3002から操作端末3001に対して送られてくるデバイス情報の例を示すリストである。図30において、行番号4008にある3016はこのネットワークカメラ3002の種別識別子(種別ID)、行番号4017にある3017はネットワークカメラ3002個体のデバイス識別子(デバイスID)である。
図31は、ネットワーク雲台3003から送られるデバイス情報の例を示すリストである。図30と同様に雲台のデバイス種別IDが行番号4038にある3018に記述され、ネットワーク雲台個体のデバイスIDが行番号4047にある3019に記述されている。
図32は、ネットワークライト3004から送られるデバイス情報の例を示すリストである。同じくライトのデバイス種別IDが行番号4068にある3020に記述され、このネットワークライト個体のデバイスIDが行番号4077にある3021に記述されている。
図33は、図27の様にネットワーク接続された3つのデバイスを操作端末3001が検出し、それぞれから図30〜32のデバイス情報を操作端末3001が受信した後の、デバイスリスト3007の状態を示す図である。操作端末3001はデバイス情報を受信するとその内容を解釈して、その各々に対して図33のデバイス情報データ構造体3022〜3024を生成し、それらを同図のようなリスト構造として保持する。3022はネットワークカメラ3002から送られた図30のデバイス情報に対応する構造体である。3025は図30の行番号4008にある3016から抜き出したネットワークカメラ3002のデバイス種別ID、3026はネットワークカメラ3002のデバイスID、3027はネットワークカメラ3002が提供する操作コマンドの情報である。3023はネットワーク雲台3003についての構造体であり、3028がネットワーク雲台3003のデバイス種別ID、3029がネットワーク雲台3003のデバイスID、3030がネットワーク雲台3003の操作コマンド情報である。3024はネットワークライト3004についての構造体であり、3031がネットワークライト3004のデバイス種別ID、3032がネットワークライト3004のデバイスID、3033がネットワークライト3004の操作コマンド情報である。
図34は、ネットワークカメラ3002から送られ、操作コマンド情報3027で保持されるネットワークカメラ3002の提供する操作コマンドの情報である。図34において、行番号4097〜4106は、ネットワークカメラ3002がZoomの操作コマンドを受け付けることが示している。
図35は、ネットワーク雲台3003から送られ、操作コマンド情報3030で保持されるネットワーク雲台3003の提供する操作コマンドの情報である。図35において、行番号4118〜4127はネットワーク雲台3003がカメラを左右に回転させるPan機能の操作コマンドを受け付けることを示している。そして、行番号4128〜4137はカメラを上下に回転させるTilt機能の操作コマンドを受け付けることを示している。
図36は、ネットワークライト3004から送られ、操作コマンド情報3033で保持されるネットワークライト3004の提供する操作コマンドの情報である。図36において、行番号4148〜4157はライトのon/offを制御するPower機能の操作コマンドを受け付けることを示している。
図37は、本実施形態における操作端末3001の外観を示す図である。図37において、3035は出力装置208の構成要素の一つでユーザにUIや画像データの表示を行うディスプレイデバイスであり、3036は入力装置206の構成要素の一つでユーザがUIの指示を行う十字キーである。十字キー3036は上下左右と真中の押し込みが可能で、後述のメニューの選択等に使用される。操作端末3001がデバイスを検出した後に十字キー3036の真中を押し込むと、操作端末3001が保持しているテンプレート305と検出されたデバイスから、表示可能なUIをユーザに選択されるメニューが表示される。
以下、図38のフローチャートを用いてこのUI選択メニュー表示が表示されるまでの処理の詳細を説明する。
S5001 メニュー表示に使用するメニュー項目リストをクリアする。
S5002 テンプレート・種別テーブル3005の最初の要素をカレント要素とする。
S5003 カレント要素があればステップS5004へ、なければステップS5009へ移る。
S5004 カレント要素の必要なデバイス種別IDのリスト3010を得る。
S5005 デバイスリスト3007を走査し、ステップS5004で得たデバイス種別IDのリスト3010に含まれるデバイスが全てそろっているか調べる。
S5006 デバイスが全てそろっていればUIの生成が可能なのでステップS5007へ、そろっていなければステップS5008へ移る。
S5007 メニュー項目リストにカレント要素を加える。
S5008 テンプレート・種別組テーブル3005の次の要素をカレント要素とし、ステップS5003に戻る。
S5009 メニュー項目リストの各要素のテンプレート名3008をラベルとしたメニューを表示する。ここで、メニュー項目リストが空の場合は使用できるUIが無いことを示すメッセージを表示する。図38の処理で表示されたメニューによりユーザがUIを選択すると、選択項目に対応するテンプレート・種別テーブル3005の要素(図29の対応関係3011〜3015のいずれか)が持つテンプレートファイル名3009が得られる。
S5001 メニュー表示に使用するメニュー項目リストをクリアする。
S5002 テンプレート・種別テーブル3005の最初の要素をカレント要素とする。
S5003 カレント要素があればステップS5004へ、なければステップS5009へ移る。
S5004 カレント要素の必要なデバイス種別IDのリスト3010を得る。
S5005 デバイスリスト3007を走査し、ステップS5004で得たデバイス種別IDのリスト3010に含まれるデバイスが全てそろっているか調べる。
S5006 デバイスが全てそろっていればUIの生成が可能なのでステップS5007へ、そろっていなければステップS5008へ移る。
S5007 メニュー項目リストにカレント要素を加える。
S5008 テンプレート・種別組テーブル3005の次の要素をカレント要素とし、ステップS5003に戻る。
S5009 メニュー項目リストの各要素のテンプレート名3008をラベルとしたメニューを表示する。ここで、メニュー項目リストが空の場合は使用できるUIが無いことを示すメッセージを表示する。図38の処理で表示されたメニューによりユーザがUIを選択すると、選択項目に対応するテンプレート・種別テーブル3005の要素(図29の対応関係3011〜3015のいずれか)が持つテンプレートファイル名3009が得られる。
図39は、このテンプレートファイル名3009によって示されるデバイステンプレート306を用いてUIを表示する処理を示すフローチャートである。以下、同図を用いて処理の詳細を説明する。
S5101 XMLで記述されたデバイステンプレート306の構文解析を行うSAX(Simple API for XML)パーサの初期化をする。
S5102 デバイステンプレート306に含まれるデバイス種別要素が示す、デバイスリスト3007内のデバイス情報データへのポインタを格納する変数を初期化をする。
S5103 UI表示のためブラウザ316に渡すUIデータファイル312をオープンする。
S5104 デバイステンプレート306の構文解析を開始する。
S5105 UIデータファイル312をクローズする。
S5106 UIデータファイル312をブラウザ316に渡してUIの表示を行う。
S5101 XMLで記述されたデバイステンプレート306の構文解析を行うSAX(Simple API for XML)パーサの初期化をする。
S5102 デバイステンプレート306に含まれるデバイス種別要素が示す、デバイスリスト3007内のデバイス情報データへのポインタを格納する変数を初期化をする。
S5103 UI表示のためブラウザ316に渡すUIデータファイル312をオープンする。
S5104 デバイステンプレート306の構文解析を開始する。
S5105 UIデータファイル312をクローズする。
S5106 UIデータファイル312をブラウザ316に渡してUIの表示を行う。
図40は、SAXパーサの要素開始ハンドラにおける処理を示す図である。以下、同図を用いて処理の詳細を説明する。
S5201 処理中の要素がデバイス種別要素かどうか判別し、デバイス種別要素ならばステップS5202へ、違う場合はステップS5204へ移る。
S5202 デバイス種別要素の属性で指定されたものと同じデバイス種別のデバイス情報をデバイスリスト3007から探す。ここで、図38のフローによる処理により、現在処理中のデバイステンプレート306が必要とするデバイス種別のデバイス情報が必ずデバイスリスト3007中に存在することは保証されている。なお、指定されたデバイス種別のデバイス情報が複数存在した場合は、最初に見つかったものを使用する。
S5203 見つかったデバイス情報へのポインタを図39のステップS5102で初期化した格納変数に代入しハンドラを終了する。
S5204 ステップS5201において処理中の要素がデバイス種別要素でないならば、要素中にデバイスID格納場所があるかどうかを判別する。デバイスID格納場所は”$uid”という文字列である。デバイスID格納場所があった場合はステップS5205へ、なかった場合はステップS5206へ移る。
S5205 見つかったデバイスID格納場所である”$uid”を、デバイス情報データ格納変数で示されるデータのデバイスID(図33のデバイスID3026、3029、3032のいずれか)に置換する。
S5206 開始タグを図39のステップS5103でオープンしているUIデータファイル312に書き込みハンドラを終了する。
S5201 処理中の要素がデバイス種別要素かどうか判別し、デバイス種別要素ならばステップS5202へ、違う場合はステップS5204へ移る。
S5202 デバイス種別要素の属性で指定されたものと同じデバイス種別のデバイス情報をデバイスリスト3007から探す。ここで、図38のフローによる処理により、現在処理中のデバイステンプレート306が必要とするデバイス種別のデバイス情報が必ずデバイスリスト3007中に存在することは保証されている。なお、指定されたデバイス種別のデバイス情報が複数存在した場合は、最初に見つかったものを使用する。
S5203 見つかったデバイス情報へのポインタを図39のステップS5102で初期化した格納変数に代入しハンドラを終了する。
S5204 ステップS5201において処理中の要素がデバイス種別要素でないならば、要素中にデバイスID格納場所があるかどうかを判別する。デバイスID格納場所は”$uid”という文字列である。デバイスID格納場所があった場合はステップS5205へ、なかった場合はステップS5206へ移る。
S5205 見つかったデバイスID格納場所である”$uid”を、デバイス情報データ格納変数で示されるデータのデバイスID(図33のデバイスID3026、3029、3032のいずれか)に置換する。
S5206 開始タグを図39のステップS5103でオープンしているUIデータファイル312に書き込みハンドラを終了する。
図41は、SAXパーサの要素終了ハンドラにおける処理を示す図である。以下、同図を用いて処理の詳細を説明する。
S5301 処理中の要素がデバイス種別要素かどうか判別し、デバイス種別要素ならばステップS5302へ、違う場合はステップS5303へ移る。
S5302 デバイス情報データ格納変数をクリアしハンドラを終了する。
S5303 終了タグを図39のステップS5103でオープンしているUIデータファイル312に書き込みハンドラを終了する。
なお、SAXパーサの文字列ハンドラは、処理中の文字列をそのまま図39のステップS5103でオープンしているUIデータファイル312に書き込みハンドラを終了するものとする。
S5301 処理中の要素がデバイス種別要素かどうか判別し、デバイス種別要素ならばステップS5302へ、違う場合はステップS5303へ移る。
S5302 デバイス情報データ格納変数をクリアしハンドラを終了する。
S5303 終了タグを図39のステップS5103でオープンしているUIデータファイル312に書き込みハンドラを終了する。
なお、SAXパーサの文字列ハンドラは、処理中の文字列をそのまま図39のステップS5103でオープンしているUIデータファイル312に書き込みハンドラを終了するものとする。
続いて、図42〜図59を用いて、今まで述べた処理による実際のUI生成の例を説明する。図42は、ネットワークカメラ3002だけが接続されている状況を示す図である。
この状況において、デバイスリスト3007に含まれるデバイス情報データはネットワークカメラ3002についてのものだけである。よって、図38のステップS5007によってメニュー項目に加えられるのは、図29のネットワークカメラ単体の対応関係3011の要素だけである。
この状況において、デバイスリスト3007に含まれるデバイス情報データはネットワークカメラ3002についてのものだけである。よって、図38のステップS5007によってメニュー項目に加えられるのは、図29のネットワークカメラ単体の対応関係3011の要素だけである。
図43は、図38の処理により表示されたメニュー3038を示す図で、図29のテンプレート名3008である「ネットワークカメラ」だけが表示されている。
図44は、操作端末3001が保持する一つのネットワークカメラだけを操作するUIを記述するデバイステンプレート「テンプレート1」の例を示すリストである。同図において、行番号4169〜4177は、Zoom操作のためにネットワークカメラに送信されるコマンドを記述する部分である。ここで、行番号4169はデバイス種別要素であるdeviceType要素の開始タグであり、その属性であるnameでネットワークカメラ種別IDを指定している。行番号4175の”$uid”は、図40のステップS5205において操作対象であるネットワークカメラのデバイスIDに置換され、ブラウザによるUIデータ処理時には、このコマンドの送信先が特定される。行番号4177はdeviceType要素の終了タグである。また、行番号4179〜4187は、Zoom操作のためのUIコントロール表示と、上記のコマンドとの対応を示す部分である。ここでも行番号4179はネットワークカメラ種別のIDを指定しているdeviceType要素の開始タグで、行番号4187はその終了タグである。
図45は、図44のデバイステンプレート1を図39の処理により変換され、ブラウザ316に渡されるUIデータを示すリストである。
図46は、図43において十字キー3036で「ネットワークカメラ」を選択した場合のUIの表示を示す図である。図46において、3039はネットワークカメラ3002が撮影している動画データの表示であり、図44の行番号4180〜4181(図45の行番号4447〜4448)のvideo要素に対応する。3040は、ネットワークカメラ3001が提供するZoomコマンドを発行するUI部品(コントロール)であるスライダで、図44の行番号4182〜4186(図45の行番号4449〜4453)に対応する。
図47は、ネットワークカメラ3002およびネットワーク雲台3003が、例えばLAN3041および3042により接続されている状況を示す図である。この状況におけるデバイスリスト3007は、図33のデバイス情報データ3022とデバイス情報データ3023から構成される。
図38のメニュー表示処理においては、図29のネットワークカメラ単体のテンプレートである3011と、雲台付きカメラ1のテンプレートである3012と雲台付きカメラ2のテンプレートである3013の計三つがメニュー項目に加えられる。図48は、図38の処理により表示されたメニュー3043を示す図である。
図49は、「雲台付カメラ1」を操作するUIを記述するデバイステンプレート「テンプレート2」の例を示すリストである。図49において、行番号4199〜4207はネットワークカメラ種別に対応する情報コマンドである。また行番号4208〜4219はネットワーク雲台種別に対応する情報コマンドである。さらに行番号4221〜4229はネットワークカメラ種別に対応するUIコントロールおよび動画表示、行番号4230〜4239はネットワーク雲台種別に対応するUIコントロールを記述するブロックである。
図50は、図48において「雲台付カメラ1」を選んだ場合のUIの表示を示す図である。図50において、3044はネットワークカメラのZoomコマンドを発行するUI部品のスライダであり、図49の行番号4224〜4228に対応する。3045はネットワーク雲台のTiltコマンドを発行するUI部品のスライダであり、図49の行番号4235〜4238に対応する。3046は同じくネットワーク雲台のPanコマンドを発行するUI部品のスライダで図49の行番号4231〜4234行に対応する。
図51は、「雲台付カメラ2」を操作するUIを記述するデバイステンプレート「テンプレート3」の例を示すリストである。図49との違いは、ネットワークカメラ種別に対応する行番号4271〜4279およびネットワーク雲台種別に対応する行番号4280〜4289において、構成要素であるUIコントロールおよび動画表示のレイアウトが異なっている点である。
図52は、図48において「雲台付カメラ2」を選んだ場合のUIの表示を示す図である。ここでは、スライダ3047とスライダ3048のレイアウトが図50とは異なっている。
図53は、ネットワークカメラ3001およびネットワークライト3004が、例えばLAN3051および3050により接続されている状況を示す図である。この状況におけるデバイスリスト3007は、図33のデバイス情報データ3022とデバイス情報データ3024から構成される。
図38のメニュー表示処理においては、図29のネットワークカメラ単体のテンプレートである3011と、ネットワークカメラとライトの組み合わせである3014の二つがメニュー項目に加えられる。図54は、図38の処理により表示されたメニュー3052を示す図である。
図55は、「カメラ&ライト」を操作するUIを記述するデバイステンプレート「テンプレート4」の例を示すリストである。図55において、行番号4299〜4307と行番号4308〜4315がそれぞれネットワークカメラ種別とネットワークライトの情報コマンドである。行番号4317〜4325と行番号4326〜4347がそれぞれネットワークネットワークカメラ種別とネットワークライトのUIコントロールを記述するブロックである。
図56は、図48において「カメラ&ライト」を選んだ場合のUIの表示を示す図である。3053はネットワークライトのon/offコマンドを発行するトグルボタンで図55の行番号4326〜4347に対応する。
図57は、図27の様に3つのデバイスが接続された状態で表示されるメニュー項目3054を示す図である。
図58は、「雲台付カメラ&ライト」を操作するUIを記述するデバイステンプレート「テンプレート5」の例を示すリストである。これには、ネットワークカメラ3002、ネットワーク雲台3003、ネットワークライト3004の3つのデバイスに対する情報コマンドとUIコントロールが混在している。
図59は、図57のメニュー項目3054の中から「雲台付カメラ&ライト」を選んだ場合のUIの表示を示す図である。
以上の様に、本実施形態のリモート操作端末においては、一つの画面に複数のデバイスのコマンドに対応するUIコントロールを効果的に配置するという効果がある。また、その時点で表示可能なUIをメニューによりユーザが選択できるという効果がある。
(第5の実施形態)
本実施形態の全体構成、ハードウエア構成、クラス構成、デバイスから送られるデバイス情報およびコマンド情報、使用するテンプレートの形式は第4の実施形態と同じであるが、行われる処理が少し異なる。本実施形態においては、あらかじめ操作端末が保持するテンプレートを全てメニューとして表示してユーザに選択させる。例えば、図29の様にテンプレートを5種類持っている場合、図57の様に5つの選択肢からなるメニューを表示する。デバイスが検出され、ユーザがUI表示を指示すると、図39で示されるテンプレートの処理とそれにより生成されたUIデータをブラウザに渡すことによるUIの表示が行われるが、SAXパーサのハンドラが第4の実施形態とは異なっている。ここで、ユーザによるUI表示の指示は、メニューによるテンプレートの選択のタイミングでも良いし、テンプレート選択の後、別のタイミングでUI表示の指示を行っても良い。
本実施形態の全体構成、ハードウエア構成、クラス構成、デバイスから送られるデバイス情報およびコマンド情報、使用するテンプレートの形式は第4の実施形態と同じであるが、行われる処理が少し異なる。本実施形態においては、あらかじめ操作端末が保持するテンプレートを全てメニューとして表示してユーザに選択させる。例えば、図29の様にテンプレートを5種類持っている場合、図57の様に5つの選択肢からなるメニューを表示する。デバイスが検出され、ユーザがUI表示を指示すると、図39で示されるテンプレートの処理とそれにより生成されたUIデータをブラウザに渡すことによるUIの表示が行われるが、SAXパーサのハンドラが第4の実施形態とは異なっている。ここで、ユーザによるUI表示の指示は、メニューによるテンプレートの選択のタイミングでも良いし、テンプレート選択の後、別のタイミングでUI表示の指示を行っても良い。
図60は要素開始ハンドラの処理を示すフローチャートである。以下、図60を用いて処理の詳細を説明する。
S5401 処理中の要素がデバイス種別要素かどうか判別し、デバイス種別要素ならばステップS5402へ、違う場合はステップS5406へ移る。
S5402 デバイス種別要素の属性で指定されたデバイス種別のものであるデバイス情報データをデバイスリスト3007から探す。なお、指定されたデバイス種別のデバイス情報データが複数存在した場合は、最初に見つかったものを使用する。
S5403 デバイス情報データが見つかった場合はステップS5404へ、見つからなかった場合はステップS5405へ移る。
S5404 見つかったデバイス情報データを図39のステップS5102で初期化した格納変数に代入しハンドラを終了する。
S5405 デバイス情報データが見つからなかった場合、格納変数に‐1を代入する。
S5406 ステップS5401において処理中の要素がデバイス種別要素でないならば、デバイス情報データ格納変数が‐1かどうかを判別する。‐1でなければステップS5407へ、‐1ならばハンドラを終了する。
S5407 要素中にデバイスID格納場所があるかどうかを判別する。デバイスID格納場所は”$uid”という文字列である。デバイスID格納場所があった場合はステップS5408へ、なかった場合はステップS5409へ移る。
S5408 見つかったデバイスID格納場所である”$uid”を、デバイス情報データ格納変数で示されるデータのデバイスID(図33のデバイスID 3026、3029、3032のいずれか)に置換する。
S5409 開始タグを図39のステップS5103でオープンしているUIデータファイル312に書き込みハンドラを終了する。
S5401 処理中の要素がデバイス種別要素かどうか判別し、デバイス種別要素ならばステップS5402へ、違う場合はステップS5406へ移る。
S5402 デバイス種別要素の属性で指定されたデバイス種別のものであるデバイス情報データをデバイスリスト3007から探す。なお、指定されたデバイス種別のデバイス情報データが複数存在した場合は、最初に見つかったものを使用する。
S5403 デバイス情報データが見つかった場合はステップS5404へ、見つからなかった場合はステップS5405へ移る。
S5404 見つかったデバイス情報データを図39のステップS5102で初期化した格納変数に代入しハンドラを終了する。
S5405 デバイス情報データが見つからなかった場合、格納変数に‐1を代入する。
S5406 ステップS5401において処理中の要素がデバイス種別要素でないならば、デバイス情報データ格納変数が‐1かどうかを判別する。‐1でなければステップS5407へ、‐1ならばハンドラを終了する。
S5407 要素中にデバイスID格納場所があるかどうかを判別する。デバイスID格納場所は”$uid”という文字列である。デバイスID格納場所があった場合はステップS5408へ、なかった場合はステップS5409へ移る。
S5408 見つかったデバイスID格納場所である”$uid”を、デバイス情報データ格納変数で示されるデータのデバイスID(図33のデバイスID 3026、3029、3032のいずれか)に置換する。
S5409 開始タグを図39のステップS5103でオープンしているUIデータファイル312に書き込みハンドラを終了する。
図61は、SAXパーサの要素終了ハンドラにおける処理を示す図である。以下、図61を用いて処理の詳細を説明する。
S5501 処理中の要素がデバイス種別要素かどうか判別し、デバイス種別要素ならばステップS5502へ、違う場合はステップS5503へ移る。
S5502 デバイス情報データ格納変数をクリアしハンドラを終了する。
S5503 デバイス情報データ格納変数が‐1の場合はハンドラを終了し、‐1でなければステップS5504に移る。
S5504 終了タグを図39のステップS5103でオープンしているUIデータファイル312に書き込みハンドラを終了する。なお、SAXパーサの文字列ハンドラは、デバイス情報データ格納変数が‐1でない場合のみ、処理中の文字列をそのまま図39のステップS5103でオープンしているUIデータファイル312に書き込みハンドラを終了するものとする。以上の処理により、テンプレートデータの中で、対応するデバイスが存在しないブロックはUIデータとして出力されないことになる。
S5501 処理中の要素がデバイス種別要素かどうか判別し、デバイス種別要素ならばステップS5502へ、違う場合はステップS5503へ移る。
S5502 デバイス情報データ格納変数をクリアしハンドラを終了する。
S5503 デバイス情報データ格納変数が‐1の場合はハンドラを終了し、‐1でなければステップS5504に移る。
S5504 終了タグを図39のステップS5103でオープンしているUIデータファイル312に書き込みハンドラを終了する。なお、SAXパーサの文字列ハンドラは、デバイス情報データ格納変数が‐1でない場合のみ、処理中の文字列をそのまま図39のステップS5103でオープンしているUIデータファイル312に書き込みハンドラを終了するものとする。以上の処理により、テンプレートデータの中で、対応するデバイスが存在しないブロックはUIデータとして出力されないことになる。
図62は、図58の「雲台付カメラ&ライト」テンプレートが選択されている場合に、図42の様にネットワークカメラ3002だけ接続されている場合に表示されるUIを示す図である。
図63は、「雲台付カメラ&ライト」テンプレートが選択されている場合に、図47の様にネットワークカメラとネットワーク雲台が接続されている場合に表示されるUIを示す図である。
図64は、「雲台付カメラ&ライト」テンプレートが選択されている場合に、図53の様にネットワークカメラとネットワークライトが接続されている場合に表示されるUIを示す図である。ここで、図27の様に全てのデバイスが接続されている場合、図59のようなUIになる。
図65は、図63の場合に図58のテンプレートから生成されるUIデータを示すリストである。
以上の様に、本実施形態のリモート操作端末においては、一つの画面に複数のデバイスのコマンドに対応するUIコントロールを効果的に配置するという効果がある。また、あらかじめユーザがテンプレートを選択しておくことにより、接続され検出されたデバイスを組み合わせたUIが自動的に表示されるという効果がある。
(その他の実施形態)
本発明に係るUIデータ生成処理において、UIデータに埋め込む情報として、デバイスID、デバイス名以外にIPアドレス、シリアル番号、MACアドレスなどを利用するように構成しても良い。
本発明に係るUIデータ生成処理において、UIデータに埋め込む情報として、デバイスID、デバイス名以外にIPアドレス、シリアル番号、MACアドレスなどを利用するように構成しても良い。
本発明に係る第2の実施形態に記載の条件文処理において、条件とは前述したものに限られない。例えば、操作コマンドや状態変数がない場合や、状態変数が特定の値に一致しない場合のみ、あるいは状態変数の値が特定の値より大きい場合や小さい場合であってもよい。また、状態変数の値が特定の範囲内である場合など、様々な条件に応じて子要素の記述が有効となるように構成しても良い。
また、本発明において、表示装置を操作端末とは別体として、あるいはブラウザ316を含む表示装置を操作端末とは別体として構成しても良い。
前述した本発明の実施形態におけるリモート操作端末装置を構成する各手段、並びにリモート操作端末装置の制御方法の各ステップは、コンピュータのRAMやROMなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システムまたは装置に直接、または遠隔から供給する。そして、そのシステムまたは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスクなどがある。さらに、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM、DVD−R)などもある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する方法がある。そして、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、その他の方法として、本発明のプログラムを暗号化してCD−ROM等の記録媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、その他の方法として、まず記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
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部品
1703, 2601:カメラのズームを表わすUI部品
1704:カメラの縦方向の回転を表わすUI部品
1706:ネットワークカメラ
1713:ビデオ
2001:動体検知を表わすイメージデータ
3000:ネットワーク
3001:リモート操作端末
3002:ネットワークカメラ
3003:ネットワーク雲台
3004:ネットワークライト
3005:テンプレート・種別対応テーブル
3006:テンプレート・種別組
3007:デバイスリスト
3008:テンプレート名
3009:テンプレートファイル名
3010:UI構成に必要なデバイス種別IDのリスト
3011:ネットワークカメラだけを操作するテンプレート・種別組
3012:雲台付カメラを操作するテンプレート・種別組1
3013:雲台付カメラを操作するテンプレート・種別組2
3014:カメラとライトを操作するテンプレート・種別組
3015:雲台付カメラとライトを操作するテンプレート・種別組
3016:デバイス情報中のネットワークカメラ種別ID
3017:デバイス情報中のネットワークカメラ個体ID
3018:デバイス情報中のネットワーク雲台種別ID
3019:デバイス情報中のネットワーク雲台個体ID
3020:デバイス情報中のネットワークライト種別ID
3021:デバイス情報中のネットワークライト個体ID
3022:ネットワークカメラのデバイス情報に対応するデバイスリスト中のデータ構造
3023:ネットワーク雲台のデバイス情報に対応するデバイスリスト中のデータ構造
3024:ネットワークライトのデバイス情報に対応するデバイスリスト中のデータ構造
3025:デバイス情報構造体データ中のネットワークカメラ種別ID
3026:デバイス情報構造体データ中のネットワークカメラ個体ID
3027:ネットワークカメラの操作コマンド情報
3028:デバイス情報構造体データ中のネットワーク雲台種別ID
3029:デバイス情報構造体データ中のネットワーク雲台個体ID
3030:ネットワーク雲台の操作コマンド情報
3031:デバイス情報構造体データ中のネットワークライト種別ID
3032:デバイス情報構造体データ中のネットワークライト個体ID
3033:ネットワークライトの操作コマンド情報
3034:リモート操作端末
3035:リモート操作端末の画面
3036:リモート操作端末の入力装置
3037:ネットワークカメラのネットワークへの接続
3038:テンプレート切り替えメニュー
3039:ネットワークカメラの動画表示
3040:Zoomコマンドのスライダ
3041:ネットワークカメラのネットワークへの接続
3042:ネットワーク雲台のネットワークへの接続
3043:テンプレート切り替えメニュー
3044:Zoomコマンドのスライダ
3045:Tiltコマンドのスライダ
3046:Panコマンドのスライダ
3047:Zoomコマンドのスライダ
3048:Tiltコマンドのスライダ
3049:Panコマンドのスライダ
3050:ネットワークカメラのネットワークへの接続
3051:ネットワークライトのネットワークへの接続
3052:テンプレート切り替えメニュー
3053:ネットワークライトon/offトグルボタン
3054:テンプレート切り替えメニュー
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部品
1703, 2601:カメラのズームを表わすUI部品
1704:カメラの縦方向の回転を表わすUI部品
1706:ネットワークカメラ
1713:ビデオ
2001:動体検知を表わすイメージデータ
3000:ネットワーク
3001:リモート操作端末
3002:ネットワークカメラ
3003:ネットワーク雲台
3004:ネットワークライト
3005:テンプレート・種別対応テーブル
3006:テンプレート・種別組
3007:デバイスリスト
3008:テンプレート名
3009:テンプレートファイル名
3010:UI構成に必要なデバイス種別IDのリスト
3011:ネットワークカメラだけを操作するテンプレート・種別組
3012:雲台付カメラを操作するテンプレート・種別組1
3013:雲台付カメラを操作するテンプレート・種別組2
3014:カメラとライトを操作するテンプレート・種別組
3015:雲台付カメラとライトを操作するテンプレート・種別組
3016:デバイス情報中のネットワークカメラ種別ID
3017:デバイス情報中のネットワークカメラ個体ID
3018:デバイス情報中のネットワーク雲台種別ID
3019:デバイス情報中のネットワーク雲台個体ID
3020:デバイス情報中のネットワークライト種別ID
3021:デバイス情報中のネットワークライト個体ID
3022:ネットワークカメラのデバイス情報に対応するデバイスリスト中のデータ構造
3023:ネットワーク雲台のデバイス情報に対応するデバイスリスト中のデータ構造
3024:ネットワークライトのデバイス情報に対応するデバイスリスト中のデータ構造
3025:デバイス情報構造体データ中のネットワークカメラ種別ID
3026:デバイス情報構造体データ中のネットワークカメラ個体ID
3027:ネットワークカメラの操作コマンド情報
3028:デバイス情報構造体データ中のネットワーク雲台種別ID
3029:デバイス情報構造体データ中のネットワーク雲台個体ID
3030:ネットワーク雲台の操作コマンド情報
3031:デバイス情報構造体データ中のネットワークライト種別ID
3032:デバイス情報構造体データ中のネットワークライト個体ID
3033:ネットワークライトの操作コマンド情報
3034:リモート操作端末
3035:リモート操作端末の画面
3036:リモート操作端末の入力装置
3037:ネットワークカメラのネットワークへの接続
3038:テンプレート切り替えメニュー
3039:ネットワークカメラの動画表示
3040:Zoomコマンドのスライダ
3041:ネットワークカメラのネットワークへの接続
3042:ネットワーク雲台のネットワークへの接続
3043:テンプレート切り替えメニュー
3044:Zoomコマンドのスライダ
3045:Tiltコマンドのスライダ
3046:Panコマンドのスライダ
3047:Zoomコマンドのスライダ
3048:Tiltコマンドのスライダ
3049:Panコマンドのスライダ
3050:ネットワークカメラのネットワークへの接続
3051:ネットワークライトのネットワークへの接続
3052:テンプレート切り替えメニュー
3053:ネットワークライトon/offトグルボタン
3054:テンプレート切り替えメニュー
Claims (12)
- デバイスとネットワークにより接続され、前記デバイスを操作するリモート操作端末装置であって、
前記デバイスからデバイス情報を取得するデバイス情報取得手段と、
前記デバイスに対応したデバイステンプレートと、
前記取得したデバイス情報及び前記デバイステンプレートから、前記デバイスを操作するためのユーザインタフェースを構築するユーザインタフェース構築手段とを有することを特徴とするリモート操作端末装置。 - 前記デバイステンプレートを複数保持するデバイステンプレート保持手段と、
前記デバイステンプレートから前記デバイスに対応したものを選択するデバイステンプレート選択手段とを有することを特徴とする請求項1に記載のリモート操作端末装置。 - 前記デバイステンプレートは、前記デバイス情報に記載された操作コマンドと前記デバイステンプレートに記載されたユーザインタフェースを構成するユーザインタフェース部品との対応情報及び、前記デバイスを特定するためのデバイス識別子を格納するための格納場所とを有し、
前記リモート操作端末装置は、前記格納場所に操作対象のデバイスの前記デバイス識別子を格納する格納手段を有することを特徴とする請求項1又は2に記載のリモート操作端末装置。 - 前記デバイステンプレートは、構築されるユーザインタフェースにおけるユーザインタフェース部品の有無及びレイアウトを変更するための条件記述を有することを特徴とする請求項1〜3のいずれか1項に記載のリモート操作端末装置。
- 前記構築されるユーザインタフェースにおけるユーザインタフェース部品の有無及びレイアウトを変更するための条件記述は、
前記取得したデバイス情報に記載された操作コマンドの有無を基に条件判定することを特徴とする請求項4に記載のリモート操作端末装置。 - 前記構築されるユーザインタフェースにおけるユーザインタフェース部品の有無及びレイアウトを変更するための条件記述は、
前記取得したデバイス情報に記載された状態変数の値を基に条件判定することを特徴とする請求項4に記載のリモート操作端末装置。 - 前記デバイステンプレートを入れ換える手段を有することを特徴とする請求項1〜6のいずれか1項に記載のリモート操作端末装置。
- 前記デバイス情報取得手段は、前記デバイス識別子と操作対象のデバイス種別を特定するデバイス種別識別子を取得し、
前記デバイス識別子の格納手段は、前記取得したデバイス種別識別子に関連付けられたデバイス識別子の前記格納場所に前記デバイス識別子を格納することを特徴とする請求項3に記載のリモート操作端末装置。 - 操作対象となる前記デバイスを検出する検出手段を有し、
前記デバイステンプレート選択手段は、前記デバイステンプレート保持手段が保持する前記デバイステンプレートの中から、前記格納場所に関連付けられた全てのデバイス種別識別子と前記検出手段により検出されたデバイスに一致するデバイスのデバイステンプレートを抽出する手段と、
前記抽出手段により抽出されたデバイステンプレートから一つをユーザに選択させる手段と
を有することを特徴とする請求項8に記載のリモート操作端末装置。 - 操作対象となる前記デバイスを検出する検出手段を有し、
前記デバイス情報取得手段は、前記デバイス識別子と操作対象のデバイス種別を特定するデバイス種別識別子を取得し、
前記対応情報は、前記デバイス種別識別子に関連付けられ、
前記ユーザインタフェース構築手段は、前記デバイステンプレートの中から前記デバイス検出手段により検出されたデバイスの前記デバイス種別識別子に関連付けられた操作コマンドとユーザインタフェース部品のみを用いてユーザインタフェースを構築することを特徴とする請求項3に記載のリモート操作端末装置。 - デバイスとネットワークにより接続され、前記デバイスを操作するリモート操作端末装置の制御方法であって、
前記デバイスからデバイス情報を取得するステップと、
前記取得したデバイス情報及び前記デバイスに対応したデバイステンプレートとから前記デバイスを操作するためのユーザインタフェースを構築するステップとを有することを特徴とするリモート操作端末装置の制御方法。 - デバイスとネットワークにより接続され、前記デバイスを操作するリモート操作端末装置の制御プログラムであって、
前記デバイスからデバイス情報を取得するステップと、
前記取得したデバイス情報及び前記デバイスに対応したデバイステンプレートとから前記デバイスを操作するためのユーザインタフェースを構築するステップとをコンピュータに実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006167703A JP2007336369A (ja) | 2006-06-16 | 2006-06-16 | リモート操作端末装置、その制御方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006167703A JP2007336369A (ja) | 2006-06-16 | 2006-06-16 | リモート操作端末装置、その制御方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007336369A true JP2007336369A (ja) | 2007-12-27 |
Family
ID=38935397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006167703A Pending JP2007336369A (ja) | 2006-06-16 | 2006-06-16 | リモート操作端末装置、その制御方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007336369A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011048824A (ja) * | 2009-08-21 | 2011-03-10 | Samsung Electronics Co Ltd | 複合ネットワーク網を介した外部デバイスの機能共有方法及びその装置 |
JPWO2009153967A1 (ja) * | 2008-06-17 | 2011-11-24 | パナソニック株式会社 | サーバ装置、サーバ処理方法およびプログラム |
-
2006
- 2006-06-16 JP JP2006167703A patent/JP2007336369A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2009153967A1 (ja) * | 2008-06-17 | 2011-11-24 | パナソニック株式会社 | サーバ装置、サーバ処理方法およびプログラム |
JP5285069B2 (ja) * | 2008-06-17 | 2013-09-11 | パナソニック株式会社 | サーバ装置、サーバ処理方法およびプログラム |
US9009216B2 (en) | 2008-06-17 | 2015-04-14 | Panasonic Intellectual Property Corporation Of America | Server device, and method and program for processing on the same |
JP2011048824A (ja) * | 2009-08-21 | 2011-03-10 | Samsung Electronics Co Ltd | 複合ネットワーク網を介した外部デバイスの機能共有方法及びその装置 |
US11178232B2 (en) | 2009-08-21 | 2021-11-16 | Samsung Electronics Co., Ltd | Method and apparatus for sharing function of external device through complex network |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6068592B2 (ja) | コンテンツ表示装置、コンテンツ表示システム、データ構造、コンテンツ表示方法及びコンテンツ表示プログラム | |
JP2008234213A (ja) | 情報処理装置、情報処理方法、情報処理プログラム、及び情報処理プログラムを記録する記録媒体 | |
JP6332533B2 (ja) | 情報処理装置、その処理方法及びプログラム | |
JP4338210B2 (ja) | 画像管理装置及び画像管理方法、プログラム | |
JP4854260B2 (ja) | リモート操作端末装置 | |
JP2007316884A (ja) | 制御装置、制御方法、及び、制御プログラム | |
KR101610605B1 (ko) | 전자 메뉴얼 열람 장치 및 시스템 | |
JP2003208302A (ja) | ホストシステムに接続された機器のためのユーザインターフェイス方法及び装置 | |
JP2007336369A (ja) | リモート操作端末装置、その制御方法及びプログラム | |
US9952814B2 (en) | Information processing apparatus, information processing method, and recording medium | |
JP5278927B2 (ja) | 情報処理装置、情報処理装置の制御方法、及びプログラム | |
JP6965704B2 (ja) | 情報処理装置、プログラム及び制御方法 | |
JP2013254244A (ja) | 情報端末及びその制御方法、並びにプログラム | |
JP2007140983A (ja) | リモート操作端末装置 | |
JP2005258834A (ja) | ユーザインターフェース構成方法、装置及びプログラム | |
KR100966783B1 (ko) | 정보처리장치, 정보처리장치의 제어방법, 및 기억매체 | |
JP2007286683A (ja) | リモート操作端末装置及びui操作画面構築方法 | |
JP6577392B2 (ja) | プログラム開発支援装置、プログラム開発支援方法及びプログラム開発支援装置で実行することが可能なコンピュータプログラム | |
JP5230193B2 (ja) | データ検索装置、データ検索方法、及びコンピュータプログラム | |
JP2017063320A (ja) | 出力制御装置、出力制御方法、設定装置、設定方法、及びプログラム | |
JP2014219813A (ja) | 情報処理装置、情報処理装置の制御方法、およびプログラム | |
JP2009037531A (ja) | 情報処理装置及びgui画面更新方法 | |
JP6188512B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
US11889237B2 (en) | Setting method and a non-transitory computer-readable storage medium storing a program | |
JP2009157847A (ja) | プログラム開発装置、プログラム開発プログラム |