(57)【特許請求の範囲】
【請求項１】
１のポインティング・デバイスの入力情報のみを処理可能なハードウェア及びオペレーティング・システムを有するデータ処理システムにおいて複数のポインティング・デバイスを使用するための制御方法であって、
前記複数のポインティング・デバイスの各々について、時間的に変動しない固定的情報と各ポインティング・デバイスのサンプリング毎に書換えられる最新のサンプリング・データとを含む詳細なデバイス固有情報を各項目として個別のデバイス詳細情報テーブルに記憶し、
前記複数のポインティング・デバイスの各々についての前記デバイス詳細情報テーブルの記憶場所を示すための詳細情報テーブル・ポインタを記憶し、
前記複数のポインティング・デバイスの全数及び各ポインティング・デバイスの現在の状態を示すデバイス状態情報を記憶し、
前記複数のポインティング・デバイスのいずれかにおけるイベント発生に応答してもしくはアプリケーションからの要求に応答して、又は所定の周期毎に、前記デバイス状態情報及び前記詳細情報テーブル・ポインタを用いて必要なデバイス詳細情報テーブルを検索し、該必要なデバイス詳細情報テーブルの内容を参照するべく前記デバイス詳細情報テーブルを管理し、
前記オペレーティング・システムに対して、通常は前記複数のポインティング・デバイスの各々から送られる座標等を示すサンプリング情報をマウス情報として時間分割的に順次前記オペレーティング・システムへ伝達し、そしてイベントの発生に応答して１のポインティング・デバイスを選択して、そのポインティング・デバイスからの情報のみをマウス情報としてオペレーティング・システムに伝達することを特徴とする
複数のポインティング・デバイスの制御方法。
【請求項２】
１のポインティング・デバイスの入力情報のみを処理可能なハードウェア及びオペレーティング・システムを有するデータ処理システムにおいて複数のポインティング・デバイスを使用するための制御方法であって、
前記複数のポインティング・デバイスの各々について、時間的に変動しない固定的情報と各ポインティング・デバイスのサンプリング毎に書換えられる最新のサンプリング・データとを含む詳細なデバイス固有情報を各項目として個別のデバイス詳細情報テーブルに記憶し、
前記複数のポインティング・デバイスの各々についての前記デバイス詳細情報テーブルの記憶場所を示すための詳細情報テーブル・ポインタを記憶し、
前記複数のポインティング・デバイスの全数及び各ポインティング・デバイスの現在の状態を示すデバイス状態情報を記憶し、
前記複数のポインティング・デバイスのいずれかにおけるイベント発生に応答してもしくはアプリケーションからの要求に応答して、又は所定の周期毎に、前記デバイス状態情報及び前記詳細情報テーブル・ポインタを用いて必要なデバイス詳細情報テーブルを検索し、該必要なデバイス詳細情報テーブルの内容を参照するべく前記デバイス詳細情報テーブルを管理し、
前記オペレーティング・システムに対して、通常は前記複数のポインティング・デバイスの各々から送られる座標等を示すサンプリング情報をマウス情報として時間分割的に順次前記オペレーティング・システムへ伝達し、そしてイベントの発生に応答して１のポインティング・デバイスを選択して、そのポインティング・デバイスからの情報のみをマウス情報としてオペレーティング・システムに伝達し、さらに、
前記複数のポインティング・デバイスの少なくとも１つが、タブレット上にある、少なくとも１つのスイッチを備えた位置指示器である場合に、
前記タブレットの位置指示器に備えたスイッチのオン持続状態におけるサンプリング・データ・シーケンスのセットを１つのストローク情報とし、最新の各ストローク情報から過去の所定の数の該ストローク情報までを記憶するストローク履歴情報テーブルを別に作成し、
前記記憶された最新のストローク情報の最初のデータの記憶場所を示す最新ストローク・データ・ポインタ及び各最新のストローク情報に含まれるサンプリング・データ数を記憶することにより、必要に応じて前記ストローク履歴情報テーブルを検索及び参照することを特徴とする
複数のポインティング・デバイスの制御方法。
【請求項３】
請求項１又は２に記載の各ポインティング・デバイスのスイッチが、キーボード入力に割付られた場合には、各キーボード入力割付けスイッチのオン情報を、前記複数のポインティング・デバイスからのマウス情報の伝達方法とは独立して前記オペレーティング・システムに伝達することを特徴とする複数のポインティング・デバイスの制御方法。
【請求項４】
１のタブレットの入力情報のみを処理可能なハードウェア及びオペレーティング・システムを有するデータ処理システムにおいて複数のタブレット使用するための制御方法であって、
前記複数のタブレットの各々について、時間的に変動しない固定的情報と各タブレットのサンプリング毎に書換えられる最新のサンプリング・データとを含む詳細なデバイス固有情報を各項目として個別のデバイス詳細情報テーブルに記憶し、
前記複数のタブレットの各々についての前記デバイス詳細情報テーブルの記憶場所を示すための詳細情報テーブル・ポインタを記憶し、
前記複数のタブレットの全数及び各タブレットの現在の状態を示すデバイス状態情報を記憶し、
前記複数のタブレットのいずれかにおけるイベント発生に応答してもしくはアプリケーションからの要求に応答して、又は所定の周期毎に、前記デバイス状態情報及び前記詳細情報テーブル・ポインタを用いて必要なデバイス詳細情報テーブルを検索し、該必要なデバイス詳細情報テーブルの内容を参照するべく前記デバイス詳細情報テーブルを管理し、
前記オペレーティング・システムに対して、通常は前記複数のタブレットの各々から送られる座標等を示すサンプリング情報をマウス情報として時間分割的に順次前記オペレーティング・システムへ伝達し、そしてイベントの発生に応答して１のタブレットを選択して、そのタブレットからの情報のみをマウス情報としてオペレーティング・システムに伝達することを特徴とする複数のタブレットの制御方法。
【請求項５】
１のポインティング・デバイスの入力情報のみを処理可能なハードウェア及びオペレーティング・システムを有するデータ処理システムにおける、複数のポインティング・デバイスを使用するための制御装置であって、
前記複数のポインティング・デバイスの各々について、時間的に変動しない固定的情報と各ポインティング・デバイスのサンプリング毎に書換えられる最新のサンプリング・データとを含む詳細なデバイス固有情報を各項目として個別のデバイス詳細情報テーブルに記憶する手段と、
前記複数のポインティング・デバイスの各々についての前記デバイス詳細情報テーブルの記憶場所を示すための詳細情報テーブル・ポインタを記憶する手段と、
前記複数のポインティング・デバイスの全数及び各ポインティング・デバイスの現在の状態を示すデバイス状態情報を記憶する手段と、
前記複数のポインティング・デバイスのいずれかにおけるイベント発生に応答してもしくはアプリケーションからの要求に応答して、又は所定の周期毎に、前記デバイス状態情報及び前記詳細情報テーブル・ポインタを用いて必要なデバイス詳細情報テーブルを検索し、該必要なデバイス詳細情報テーブルの内容を参照するべく前記デバイス詳細情報テーブルを管理する手段と、
前記オペレーティング・システムに対して、通常は前記複数のポインティング・デバイスの各々から送られる座標等を示すサンプリング情報をマウス情報として時間分割的に順次前記オペレーティング・システムへ伝達し、そしてイベントの発生に応答して１のポインティング・デバイスを選択して、そのポインティング・デバイスからの情報のみをマウス情報としてオペレーティング・システムに伝達する手段と
を備えることを特徴とする複数のポインティング・デバイスの制御装置。
【請求項６】
１のポインティング・デバイスの入力情報のみを処理可能なハードウェア及びオペレーティング・システムを有するデータ処理システムにおける、複数のポインティング・デバイスを使用するための制御装置であって、
前記複数のポインティング・デバイスの各々について、時間的に変動しない固定的情報と各ポインティング・デバイスのサンプリング毎に書換えられる最新のサンプリング・データとを含む詳細なデバイス固有情報を各項目として個別のデバイス詳細情報テーブルに記憶する手段と、
前記複数のポインティング・デバイスの各々についての前記デバイス詳細情報テーブルの記憶場所を示すための詳細情報テーブル・ポインタを記憶する手段と、
前記複数のポインティング・デバイスの全数及び各ポインティング・デバイスの現在の状態を示すデバイス状態情報を記憶する手段と、
前記複数のポインティング・デバイスのいずれかにおけるイベント発生に応答してもしくはアプリケーションからの要求に応答して、又は所定の周期毎に、前記デバイス状態情報及び前記詳細情報テーブル・ポインタを用いて必要なデバイス詳細情報テーブルを検索し、該必要なデバイス詳細情報テーブルの内容を参照するべく前記デバイス詳細情報テーブルを管理する手段と、
前記オペレーティング・システムに対して、通常は前記複数のポインティング・デバイスの各々から送られる座標等を示すサンプリング情報をマウス情報として時間分割的に順次前記オペレーティング・システムへ伝達し、そしてイベントの発生に応答して１のポインティング・デバイスを選択して、そのポインティング・デバイスからの情報のみをマウス情報としてオペレーティング・システムに伝達する手段と、さらに、
前記複数のポインティング・デバイスの少なくとも１つが、タブレット上にある、少なくとも１つのスイッチを備えた位置指示器である場合に、
前記タブレットの位置指示器に備えたスイッチのオン持続状態におけるサンプリング・データ・シーケンスのセットを１つのストローク情報とし、最新の各ストローク情報から過去の所定の数の該ストローク情報までを記憶するストローク履歴情報テーブルを別に作成する手段と、
前記記憶された最新のストローク情報の最初のデータの記憶場所を示す最新ストローク・データ・ポインタ及び各最新のストローク情報に含まれるサンプリング・データ数を記憶することにより、必要に応じて前記ストローク履歴情報テーブルを検索及び参照する手段とを備えることを特徴とする複数のポインティング・デバイスの制御装置。
【請求項７】
１のタブレットの入力情報のみを処理可能なハードウェア及びオペレーティング・システムを有するデータ処理システムにおける、複数のタブレット使用するための制御装置であって、
前記複数のタブレットの各々について、時間的に変動しない固定的情報と各タブレットのサンプリング毎に書換えられる最新のサンプリング・データとを含む詳細なデバイス固有情報を各項目として個別のデバイス詳細情報テーブルに記憶する手段と、
前記複数のタブレットの各々についての前記デバイス詳細情報テーブルの記憶場所を示すための詳細情報テーブル・ポインタを記憶する手段と、
前記複数のタブレットの全数及び各タブレットの現在の状態を示すデバイス状態情報を記憶する手段と、
前記複数のタブレットのいずれかにおけるイベント発生に応答してもしくはアプリケーションからの要求に応答して、又は所定の周期毎に、前記デバイス状態情報及び前記詳細情報テーブル・ポインタを用いて必要なデバイス詳細情報テーブルを検索し、該必要なデバイス詳細情報テーブルの内容を参照するべく前記デバイス詳細情報テーブルを管理する手段と、
前記オペレーティング・システムに対して、通常は前記複数のタブレットの各々から送られる座標等を示すサンプリング情報をマウス情報として時間分割的に順次前記オペレーティング・システムへ伝達し、そしてイベントの発生に応答して１のタブレットを選択して、そのタブレットからの情報のみをマウス情報としてオペレーティング・システムに伝達する手段と
を備えることを特徴とする複数のタブレットの制御装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、コンピュータの入力装置からの情報の処理及び制御方法に関し、特に、本来１個のポインティング・デバイス又は１台のタブレットの使用を前提とした既存システムにおいて、複数のポインティング・デバイス又は複数のタブレットの使用を可能とする方法に関する。具体的には、マウスやペン等のポインティング・デバイスをコンピュータ本体に複数個設けるシステム又はタブレットを複数台接続したシステムにおいて、それらをオペレーティング・システムからもしくはアプリケーションから有効に使用可能とする方法に関する。
【０００２】
【従来の技術】
本明細書においては、「ポインティング・デバイス」という用語は、マウスやペン（位置指示器）等の１つの位置（又は座標）を指示するための１個の装置を意味するものとし、「タブレット」という用語は、位置指示器と位置検出面とから構成される装置（「デジタイザ」と称されることもある）を意味するものとする。従って、１台のタブレットは、少なくとも１つのペン等のポインティング・デバイスを有する。
【０００３】
一般に、コンピュータ本体にマウスやペン等のポインティング・デバイス又はタブレットを設け、アプリケーション上にてこのような装置を使用して入力動作を実行する場合は、コンピュータの各入力装置に固有のデバイス・ドライバと呼ばれるインターフェースのためのソフトウェアを組込み、そのプログラムに従って入力装置からの情報が処理されてコンピュータのオペレーティング・システム（以降、ＯＳと称する）に渡される。ＯＳはその情報をアプリケーションに渡したりあるいは直接表示装置へ渡して表示したりする。
【０００４】
上記の方法では、例えばマウスであれば、その特定のマウス用のデバイス・ドライバを組込まなければならないため、全てのマウスに共通のインターフェースが存在しない。そこで、別の方法としてＯＳがサブ・システムとしてマウス・サブシステム等を提供するものがある。このサブ・システムは、アプリケーションからＯＳへのファンクション・コールであるＡＰＩにより稼働し、例えばマウスの初期化、読取り、制御等を実行する。入力装置としては他にも、キーボードをサポートするサブ・システムがある。このサブ・システムの形態により、アプリケーションに対する融通性や拡張性が向上する。
【０００５】
以上のような既存のシステムは、通常、ポインティング・デバイスとしては、マウスのみにインターフェースを提供している。しかもそれがただ１つ接続されている場合にのみ対応する。従って、いわゆるタブレットのような位置入力装置の情報（又はタブレットに属するペン等の情報）は、タブレット・デバイス・ドライバ（以降、タブレット・ドライバと称する）によりマウス情報に変換されてＯＳに渡され、またアプリケーションに渡される。
【０００６】
【発明が解決しようとする課題】
以上のように、従来のコンピュータやアプリケーションは、１つのポインティング・デバイス又は１台のタブレットの使用のみを考慮しており、例えば複数のポインティング・デバイスを設けること又は複数台のタブレットを接続することについては考慮されていない。
【０００７】
近年、パーソナル・コンピュータの機能においてもマルチタスク処理が進んできており、操作の面でも複数のアプリケーションを同時に起動させて、それらを切換えたり、データの交換をしたりすることが頻繁に行われるようになっている。それに伴ってグラフィカル・ユーザ・インターフェースも向上してきた。このような状況にあっては、従来の１台の入力装置からの情報だけしか同時に処理することができない既存のシステムやアプリケーションでは、操作性に不満が持たれる場合も出てきた。
【０００８】
例えば、タブレット入力に対応したＣＡＤ等のアプリケーションを複数同時に実行している場合、既存のシステムでは１台のタブレットを双方のアプリケーションに兼用して、それぞれのアプリケーションの切換えと同時にタブレット情報の送り先も切換える方法しかなかった。この場合その切換えの度にタブレットの初期化及び設定をしなければならない。さらに、双方のアプリケーションが同じ仕様のタブレットに対応しているとは限らず、異なる仕様に対応している場合には、アプリケーションを切り換える度にタブレットを別のものに接続し直す作業が必要となる。また、たとえアプリケーション自体がそもそも複数のタブレットを対象としているものであったとしても、既存のシステムは、このアプリケーションからの要求に対応することができない。従って、たとえアプリケーションが複数のタブレットからの情報を要求したとしても、既存のシステムは１つのタブレットの情報のみしか提供できないしまたその１つのタブレットを選択する手段も備えていなかった。これを可能とするには既存のＯＳそのものを変更する必要があり、これには非常に労力と開発経費を要することになる。
【０００９】
本発明の目的は、既存のシステムを変更することなく、これに複数のポインティング・デバイス又は複数台のタブレットを設けた場合におけるマルチデバイス情報を管理し、アプリケーションからの要求に応じて複数のデバイスからのデバイス情報を提供しかつ選択されたデバイスからの情報を送ったり、ＯＳからの要求に応じて適切なデバイスを判断選択してその情報を送ったり、各デバイスからの位置情報を表示装置に表示したり、各デバイスにおけるイベント情報をＯＳに通知したりする複数のマルチ・ポインティング・デバイスの使用方法を提供することである。
【００１０】
【課題を解決するための手段】
上記の目的を達成するために、本発明は以下の構成を提供する。
（１）１のポインティング・デバイスの入力情報のみを処理可能なハードウェア及びオペレーティング・システムを有するデータ処理システムにおいて複数のポインティング・デバイスを使用するための制御方法であって、前記複数のポインティング・デバイスの各々について、時間的に変動しない固定的情報と各ポインティング・デバイスのサンプリング毎に書換えられる最新のサンプリング・データとを含む詳細なデバイス固有情報を各項目として個別のデバイス詳細情報テーブルに記憶し、前記複数のポインティング・デバイスの各々についての前記デバイス詳細情報テーブルの記憶場所を示すための詳細情報テーブル・ポインタを記憶し、前記複数のポインティング・デバイスの全数及び各ポインティング・デバイスの現在の状態を示すデバイス状態情報を記憶し、前記複数のポインティング・デバイスのいずれかにおけるイベント発生に応答してもしくはアプリケーションからの要求に応答して、又は所定の周期毎に、前記デバイス状態情報及び前記詳細情報テーブル・ポインタを用いて必要なデバイス詳細情報テーブルを検索し、該必要なデバイス詳細情報テーブルの内容を参照するべく前記デバイス詳細情報テーブルを管理し、前記オペレーティング・システムに対して、通常は前記複数のポインティング・デバイスの各々から送られる座標等を示すサンプリング情報をマウス情報として時間分割的に順次前記オペレーティング・システムへ伝達し、そしてイベントの発生に応答して１のポインティング・デバイスを選択して、そのポインティング・デバイスからの情報のみをマウス情報としてオペレーティング・システムに伝達することを特徴とする複数のポインティング・デバイスの制御方法である。
【００１１】
（２）１のポインティング・デバイスの入力情報のみを処理可能なハードウェア及びオペレーティング・システムを有するデータ処理システムにおいて複数のポインティング・デバイスを使用するための制御方法であって、前記複数のポインティング・デバイスの各々について、時間的に変動しない固定的情報と各ポインティング・デバイスのサンプリング毎に書換えられる最新のサンプリング・データとを含む詳細なデバイス固有情報を各項目として個別のデバイス詳細情報テーブルに記憶し、前記複数のポインティング・デバイスの各々についての前記デバイス詳細情報テーブルの記憶場所を示すための詳細情報テーブル・ポインタを記憶し、前記複数のポインティング・デバイスの全数及び各ポインティング・デバイスの現在の状態を示すデバイス状態情報を記憶し、前記複数のポインティング・デバイスのいずれかにおけるイベント発生に応答してもしくはアプリケーションからの要求に応答して、又は所定の周期毎に、前記デバイス状態情報及び前記詳細情報テーブル・ポインタを用いて必要なデバイス詳細情報テーブルを検索し、該必要なデバイス詳細情報テーブルの内容を参照するべく前記デバイス詳細情報テーブルを管理し、前記オペレーティング・システムに対して、通常は前記複数のポインティング・デバイスの各々から送られる座標等を示すサンプリング情報をマウス情報として時間分割的に順次前記オペレーティング・システムへ伝達し、そしてイベントの発生に応答して１のポインティング・デバイスを選択して、そのポインティング・デバイスからの情報のみをマウス情報としてオペレーティング・システムに伝達し、さらに、前記複数のポインティング・デバイスの少なくとも１つが、タブレット上にある、少なくとも１つのスイッチを備えた位置指示器である場合に、前記タブレットの位置指示器に備えたスイッチのオン持続状態におけるサンプリング・データ・シーケンスのセットを１つのストローク情報とし、最新の各ストローク情報から過去の所定の数の該ストローク情報までを記憶するストローク履歴情報テーブルを別に作成し、前記記憶された最新のストローク情報の最初のデータの記憶場所を示す最新ストローク・データ・ポインタ及び各最新のストローク情報に含まれるサンプリング・データ数を記憶することにより、必要に応じて前記ストローク履歴情報テーブルを検索及び参照することを特徴とする複数のポインティング・デバイスの制御方法である。
【００１２】
（３）上記（１）又は（２）に記載の各ポインティング・デバイスのスイッチが、キーボード入力に割付られた場合には、各キーボード入力割付けスイッチのオン情報を、前記複数のポインティング・デバイスからのマウス情報の伝達方法とは独立して前記オペレーティング・システムに伝達することを特徴とする複数のポインティング・デバイスの制御方法である。
【００１３】
（４）１のタブレットの入力情報のみを処理可能なハードウェア及びオペレーティング・システムを有するデータ処理システムにおいて複数のタブレット使用するための制御方法であって、前記複数のタブレットの各々について、時間的に変動しない固定的情報と各タブレットのサンプリング毎に書換えられる最新のサンプリング・データとを含む詳細なデバイス固有情報を各項目として個別のデバイス詳細情報テーブルに記憶し、前記複数のタブレットの各々についての前記デバイス詳細情報テーブルの記憶場所を示すための詳細情報テーブル・ポインタを記憶し、前記複数のタブレットの全数及び各タブレットの現在の状態を示すデバイス状態情報を記憶し、前記複数のタブレットのいずれかにおけるイベント発生に応答してもしくはアプリケーションからの要求に応答して、又は所定の周期毎に、前記デバイス状態情報及び前記詳細情報テーブル・ポインタを用いて必要なデバイス詳細情報テーブルを検索し、該必要なデバイス詳細情報テーブルの内容を参照するべく前記デバイス詳細情報テーブルを管理し、前記オペレーティング・システムに対して、通常は前記複数のタブレットの各々から送られる座標等を示すサンプリング情報をマウス情報として時間分割的に順次前記オペレーティング・システムへ伝達し、そしてイベントの発生に応答して１のタブレットを選択して、そのタブレットからの情報のみをマウス情報としてオペレーティング・システムに伝達することを特徴とする複数のタブレットの制御方法である。
【００１５】
さらに本発明は、上記の各方法を実現するための手段を備えた装置、例えばデータ処理システムにおけるポインティング・デバイスの制御装置、タブレットの制御装置をも提供する。
【００１６】
【作用】
上記の本発明の構成によれば、複数のポインティング・デバイスについて又は複数のタブレットについてその静的及び動的情報の双方を記憶し管理するための個別のテーブルを設けたので、さらに、必要な場合には履歴情報も記憶し管理する個別のテーブルを設けたので、システムの様々な条件発生に応じてこれらのテーブルを参照するように設定することにより、アプリケーションは、複数のポインティング・デバイス又は複数のタブレットのいずれをも選択的に操作することが可能となる。
複数のポインティング・デバイス又は複数のタブレットのうち、適当と判断されるものの情報のみを、同時に１つだけ選択して既存のシステムに通知することで、既存のシステムをそのまま利用することができる。
【００１７】
【実施例】
以下、図面を参照しながら本発明の実施例について説明する。
図１は、本発明による複数のポインティング・デバイス（又は複数のタブレット）からの入力方法を実施した一例であり、データ処理システム１０内に組込まれたソフトウェアの各機能ブロック及び関連する構成要素を示している。データ処理システム１０は、いわゆるパーソナル・コンピュータやワークステーション等の情報処理装置であって、ＣＰＵ、バス、メモリ等の一般的な構成（図示せず）を有するものである。システム・メモリには、常駐又は非常駐の０Ｓ１２、デバイス・ドライバ２０、アプリケーション・プログラム１４等のソフトウェアが記憶され、ＣＰＵは、その時々に応じて必要なプログラムを実行することによりこれらの機能を実現する。アプリケーションの処理内容の一部は、表示装置ドライバ４０及びビデオＲＡＭ４２等を介して表示装置（図示せず）に表示され、ユーザに提示される。
【００１８】
このデータ処理システム１０には、周辺装置として複数のポインティング・デバイス又は複数のタブレット１５が接続されており、例として、これらを複数のタブレット１６、１７、１８とする。しかしながら、本発明による方法は、一般的にはマウス、タッチペン等の他のポインティング・デバイスと混在する場合であっても同様に適用可能である。また、各タブレットは２以上の位置指示器（ペン、カーソル等）を備えていてもよい。
【００１９】
各タブレットが２以上の位置指示器をもつ場合におけるそれらの複数の位置指示器からの信号処理については、例えば擬似的にタブレットに１つの位置指示器のみがあるものと見なす方法がある。具体的には、いずれの位置指示器も通常の位置情報すなわち座標情報を送っているだけのときは、それらの位置指示器からの情報を順に切り替えることにより時間分割的に表示装置に送ることにより表示装置上のカーソルの位置を順次表示したり、また順次ＯＳやアプリケーションに送る。
【００２０】
さらに、いずれかの位置指示器のスイッチがオンにされスイッチ情報が出されたならば、その間はそのオンとなった位置指示器からの情報のみを送る。この方法は、タブレット・ドライバにより実現することができる。各タブレットが位置指示器を１つだけ備えており各タブレットからは１つの位置指示器からの情報が送られてくるものと見なす機能をタブレット・ドライバに付与することにより同様に処理することができる。これについては、図４を参照して後に詳述する。
位置指示器には、一般的に複数のスイッチが設けられており、ユーザの操作により様々なスイッチ情報が入力される。
【００２１】
図１において、本発明は、主にタブレット・ドライバ２０及びライブラリ３０と示されたソフトウェア及びデバイス詳細情報３６、３７、３８で示された情報を記憶する記憶装置３２により実現される。一例として、タブレット・ドライバ２０は、従来の１台のタブレットのためのタブレット・ドライバの機能を各タブレット１６、１７、１８のそれぞれに対して実現するためのインターフェース機能を備えた統合的なタブレット・ドライバとして機能する。すなわち、各タブレットからの入力情報をＯＳの処理に適した形式に変換して、例えばマウス情報に変換してＯＳへ渡す機能は少なくとも備えている。
【００２２】
図示していないが、複数のタブレット１６、１７、１８からの信号をハードウェア的にコンピュータ本体へ伝送するための複数の入力ポートを備えた接続装置も設けられており、各入力ポートへ各タブレットが接続されている。タブレット・ドライバ２０は、これらの入力ポートを管理する機能も備えている。
【００２３】
ライブラリ３０は、本発明による複数タブレットの使用を可能とする制御及び処理の主要部を実際に行うもので、いわば複数タブレット管理プログラムというべきソフトウェアである。
【００２４】
図１の例では、タブレット・ドライバ２０及びライブラリ３０の２つのソフトウェアにより本発明を実施するように示しているが、本発明は、必ずしもこのように分割された２つのソフトウェアによってのみ実施されるものではなく、これら２つに含まれる各機能を実施できるならば、各機能をいずれのソフトウェアに付与しまたどのように分割するかは任意である。例えばライブラリ３０は、ＡＰＩにより呼出されるサブシステムとしてＯＳに組込まれてもよいが、別の例では、１つの独立したアプリケーション・プログラムとしてもよいし、また実際に使用するアプリケーション・プログラムの一部として組込んでもよい。さらに別の例として、全ての機能を、タブレット・ドライバ２０が実施するようにしてもよい。
【００２５】
次に、本発明によるタブレット・ドライバ２０及びライブラリ３０の基本的な機能を説明する。先ず、データ処理システム１０の初期化の際に、タブレット・ドライバ２０は、複数の入力ポートの状況を確認し、いくつの入力装置が設けられているか、どのような入力装置が設けられているかを判断し、それぞれの入力装置毎に個別のデバイス詳細情報テーブル（図１の３６、３７、３８）を作成する。入力装置がタブレットであり、各タブレットが１つの位置指示器のみを備えている場合は、各デバイス詳細情報は、各タブレットの情報である。各タブレットが複数の位置指示器を備えている場合は、全ての位置指示器の各々についての情報が各デバイス情報となり、この場合には、各位置指示器がいずれのタブレットに属するかを示す情報も含まれることになる。タブレット・ドライバ２０は、この作成されたテーブルに実際の情報を格納する。
【００２６】
図２は、記憶装置３２内の個別のデバイス詳細情報テーブル３６、３７、３８とこれらの詳細情報テーブルを管理するために必要な対応する詳細情報テーブル・ポインタ６１、６２、６３を示し、その他にデバイス状態フラグ７０とデバイスの全個数情報８０とを含む全体的な情報を格納する部分を示している。
【００２７】
各デバイス詳細情報テーブル３６、３７、３８に格納されるそのデバイス固有の情報としては、そのデバイスの固定的情報と、時間的に変動する動的情報とがある。固定的情報としては、デバイス識別番号の他にタブレットの場合、タブレットの機種、位置指示器に設けられているスイッチの数、各スイッチの機能、互換性のある位置指示器の種類、タブレットからのデータを変換する場合の変換用係数（例えばスケール値）、筆圧レンジ、タブレット・モードの種類等がある。これらは予め設定された情報であり原則として時間的に変動しない。動的情報としては、座標（Ｘ，Ｙ）、筆圧、高さ、傾き、現在のタブレット・モード等がある。動的情報は、タブレットのサンプリング周期毎に新たなデータに更新される。
【００２８】
詳細情報テーブル・ポインタ６１、６２、６３は、対応する詳細情報テーブルの記憶場所を示すためのポインタであり、その詳細情報テーブルの最初のデータのアドレスとそのテーブルのサイズを示す情報が記憶されている。このポインタにより詳細情報テーブルの検索と参照ができる。
【００２９】
複数の入力装置の管理のために格納される情報しては、さらにデバイス状態フラグ７０がある。デバイス状態フラグ７０は、各タブレット（１つのタブレットが複数の位置指示器を備える場合には、各位置指示器）に対応するフラグ７１、７２、７３を有し、それぞれのフラグは各タブレットにおけるイベント発生等の状態を示す。さらに接続された複数のタブレットの個数ｎ（符号８０）も格納されている。
【００３０】
上記のようなデバイス詳細情報テーブル３６、３７、３８及びその他の関連するポインタ等が作成されるので、複数のタブレットの管理が容易に実行できる。前述のように１つのタブレットが複数の位置指示器を備える場合には、それらの位置指示器毎にデバイス詳細情報テーブルを作成することにより、同様に管理することができる。
【００３１】
上記の固定的情報の中のスケール値については、タブレットからのデータをアプリケーションやユーザに都合の良い情報に変換することが必要な場合に利用する。例えば、ユーザが所望するスケールを記録しておき、タブレットから送られた座標値をこれを基に変換したり、表示画面上の位置とタブレットの絶対座標系における位置とを対応付けたりする変換値を記録しておく。これによって、アプリケーション又は他のライブラリ等が必要に応じて変換を行ったり、変換せずにタブレットからの生のデータを用いることができるようになる。このような情報は、デバイス詳細情報テーブルの中よりもむしろ詳細情報テーブル・ポインタ６１、６２、６３とともに置かれた方が効率の良いこともある。
【００３２】
図３は、複数のタブレットを接続した場合の、詳細情報管理の別の実施例を示している。複数のタブレットの各々は１又は複数の位置指示器を有する。図３は、簡単のために１つのタブレット（又はその１つの位置指示器）についての詳細情報を示している。図２のデバイス詳細情報テーブルに加えて、位置指示器の履歴情報であるストローク情報を記憶する領域が設けられている。ストローク情報とは、位置指示器のスイッチのオン状態が持続する間にサンプリングされるデータ・シーケンスである。位置指示器がペンの場合は一筆の筆跡にあたる。図３の最新のストローク情報１００の詳細な内容を２００に示す。１個のストローク情報は一連の各サンプリング時点におけるデータの集りである。１サンプリング点におけるデータには、座標（Ｘ，Ｙ）、筆圧、傾き、時間等変動する値が含まれる。
【００３３】
さらに、最新ストローク情報１００の他に、過去の数ストロークを記憶するための領域１０１、１０２．．．も設けられている。これら１０１、１０２等のストローク情報の内容も２００と同様である。これらの最新のものから過去の所定の数までのストローク情報は、例えばリングバッファに順次格納されており、最新のものが書込まれると最古のものが削除されるＦＩＦＯ方式をとっている。
【００３４】
また、最新ストローク情報の最初のデータの記憶場所及びそのストローク情報のサイズすなわちデータ数を示す最新ストローク・データ・ポインタ１１０も設けられている。このポインタにより、必要に応じてストローク履歴情報を検索及び参照することができる。
図３に示した１つのタブレットの詳細情報記憶は、各タブレットについてそれぞれ設けられている。
また、図３に示したストローク情報管理方法は、１台のタブレットに複数の位置指示器が設けられている場合においても、各位置指示器のストローク情報管理方法として全く同様に適用することができる。
【００３５】
次に、複数のタブレットからの入力情報を、どのように処理してＯＳに対して渡すかを説明する。前述のように、従来のシステムでは、ポインティング・デバイス入力は１個すなわちマウスのみ想定しているので、タブレットからの入力信号をＯＳに対してはマウス情報として変換して伝送する。これは、従来のタブレット・ドライバの機能である。
【００３６】
本発明によるタブレット・ドライバ（図１の２０）は、複数のタブレットからの入力を既存のＯＳへ適切に効率的に伝送するために基本的には排他的制御を行う。図４は、本発明によるタブレット・ドライバの入力情報の処理方法を示す論理流れ図である。図４の例では、スイッチが入った位置指示器からの入力を有効とする排他制御を行っている。ブロック３００は、ある位置指示器からの所定のサンプリング周期毎の座標情報の入力を示す。判断ブロック３０２では、いずれかの位置指示器上のいずれかのスイッチがオンとなったか否かを判断する。もしいずれかのスイッチがオンであれば、次に判断ブロック３０４において、他に既に有効とされている位置指示器があるか否かを判断する。判断ブロック３０４において他の位置指示器が既に有効である場合、ブロック３１６においてこの入力を無視する。そしてこのサンプリング周期の処理はブロック３１０にて終わる。判断ブロック３０４において他の位置指示器が有効でない場合、ブロック３０６においてスイッチがオンとなった位置指示器の番号をフラグ（図２の７０）に記憶する。次に判断ブロック３０８において、スイッチ・オンとなった位置指示器の情報をマウス情報としてＯＳへ伝送し、ブロック３１０において１サンプリング周期における処理を終る。
【００３７】
判断ブロック３０２において、スイッチがオンでない場合は、判断ブロック３１２へ進む。判断ブロック３１２では、他の位置指示器が既に有効とされているか否かを判断する。判断ブロック３１２において他の位置指示器が既に有効である場合、やはりブロック３１６においてこの入力を無視する。そしてこのサンプリング周期の処理はブロック３１０にて終わる。判断ブロック３１２において他の位置指示器が有効とされていなければ、ブロック３１４においてこの入力をマウス情報としてＯＳへ伝送し、ブロック３１０において１サンプリング周期における処理を終わる。
【００３８】
ブロック３００における座標入力を、各位置指示器を順に切換えることによって得るようにすると、上記の論理フローにおいていずれの位置指示器もスイッチ・オンでない場合、すなわち単純な位置指示器の移動以外の動作を起していない場合は、各位置指示器からの座標情報が順次ＯＳに送られることになる。ＯＳが、順次送られる座標情報を表示機構に送ることにより表示画面上にカーソル表示を行えば、画面上には、各位置指示器の位置が順次表示されることになる。この操作が十分高速に行われれば、ユーザの目にはあたかも複数の位置指示器が画面上に位置しているように見える。そして、いずれかのスイッチがオンとなった場合には、上記論理フローにより、そのオンとなった位置指示器のみが画面上に表示されることとなる。これにより、ユーザに対して見かけ上及び操作上マルチデバイスを実現する。
【００３９】
図４の例では、スイッチがオンとなった位置指示器を有効とする排他制御を行っているが、１つのデバイスを有効として選択する条件はこの他にも設定可能である。例えば、移動量の大きい方の位置指示器を有効としたり、特定のスイッチが押されたときだけ別の位置指示器を有効とするようにしてもよい。また、別の例として、タブレット・ドライバが独自に判断するのではなく、外部（アプリケーション等）から選択される又は指示されることで排他制御するようにしてもよい。
【００４０】
図５は、本発明によるタブレット・ドライバ２０のもう１つの入力情報の処理機能を示したものである。前述のように、タブレット・ドライバ２０は、位置指示器のスイッチ情報をマウス情報としてＯＳ１２に渡していた。図５には、位置指示器上の各スイッチに対してＯＳに渡す情報を割付けるためにタブレット・ドライバ２０が利用する変換テーブル４００が示されている。従来は、スイッチ１に対してマウス左ボタン、そしてスイッチ２に対してマウスダブルクリックボタンの機能というように通常、マウス情報を各スイッチに割付けていた。従って、既存のシステムでは、タブレット・ドライバからＯＳに伝送可能なマウス情報の経路は１つのみであるので、この経路を利用する限り図４におけるような排他的制御をしなければならなかった。
【００４１】
しかしながら、本発明では、図５の変換テーブル４００に示すように、スイッチ３にコントロール・キーを割付けるというように、キーボード情報を割付けることもできる。キーボードは、既存のシステムにおいても独自のデバイス・ドライバを備えており、マウスとは独立して機能できる入力装置である。従って、位置指示器のスイッチにキーボード情報を割付けた場合には、タブレット・ドライバからＯＳへの伝送をキーボード情報の経路を用いて行うことができ、従ってマウス情報とは独立して伝送することができる。すなわち、キーボード情報を割付けたスイッチに関しては図４のような排他的制御を行う必要がない。
【００４２】
よって、図５の変換テーブル４００を作成することにより、複数のタブレットに含まれる複数の位置指示器上の多数のスイッチに対して、あるものは本来のポインティング・デバイスのスイッチとして利用するべくマウス情報を割付け、またあるものはポインティング・デバイスとしてではなく別の操作用のスイッチとして利用するべくキーボード情報を割付けるというように、フレキシブルに操作条件を設定しかつ変更することができる。これによって、ＯＳやアプリケーション上の様々な操作を、ユーザに利用しやすいように設定し操作性を向上させることが可能となる。例えば、ユーザは、キーボードに手を持って行かなくとも位置指示器を持ったままその位置指示器上のスイッチを押すことによりキーボード・イベントを発生することが可能となる。
【００４３】
次に、図６及び図７は、アプリケーションが本発明による複数タブレットの管理システムを利用する態様の一例を説明するための論理流れ図である。
図６は、従来の、アプリケーションによるマウス情報の処理の流れを示している。マウス情報はタブレット・ドライバからＯＳを介してアプリケーションへ渡される。ブロック４００であるイベントが発生する。判断ブロック４０２で、アプリケーションは取得したイベントがマウスイベントであるか否かを判断する。マウスイベントであればブロック４０４にてマウス情報を取得し、ブロック４０６においてそのマウス情報に該当する機能を実行する。実行後は、判断ブロック４０２へ戻りこれを繰返す。判断ブロック４０２においてイベントがマウスイベントでなかったならば、ブロック４０８においてその他のイベント処理を実行する。
【００４４】
図７は、図６に示した従来のアプリケーションのマウスイベントの処理におけるデータ処理システム全体のデータの流れを示している。従来は、１個の位置指示器を備えた１台のタブレットのみが接続されているので、タブレット・ドライバが、タブレットとＯＳとの間でタブレット情報とマウス情報を変換し、ＯＳを介してアプリケーションとの間で情報をやりとりしていた。
【００４５】
図８は、本発明における、アプリケーションによるマウスイベントの処理の一例を示している。この例では、マウスイベントに応答してそのイベントの発生した位置指示器を認知し、その位置指示器についてのデバイス詳細情報テーブルを参照しその内容を得るようになっている。判断ブロック５０２で、アプリケーションは取得したイベントがマウスイベントであるか否かを判断する。マウスイベントであれば、ブロック５０４においてマウス情報を取得する。次に、ブロック５０６においてこのイベントを発生したタブレット（又は、１のタブレットが複数の位置指示器を持つ場合には、イベントを発生した位置指示器）を認知する。このブロック５０６においては、図２のデバイス状態フラグ７０を利用してこの認知を行う。次に、認知されたタブレット又は位置指示器の詳細情報を、図２又は図３のデバイス詳細情報テーブルを参照し、及び図３のストローク情報があればこれを参照する。これらの詳細情報を得た後、ブロック５１０において目的の機能を実行する。実行後は、判断ブロック５０２へ戻りこれを繰返す。判断ブロック５０２においてマウスイベントでない場合は、ブロック５１２においてその他のイベント処理を実行する。
【００４６】
図９は、図８に示したアプリケーションのマウスイベントの処理の一例におけるデータ処理システム全体のデータの流れを示している。タブレット・ドライバ２０は、通常はタブレット情報とマウス情報の変換を行うとともに、イベント発生時にそれを発生した位置指示器１５を判断してその詳細情報をアプリケーション１４に提示する機能を有する。
【００４７】
図８のように、マウスイベントに応答してそのイベントの発生した位置指示器を認知し、その位置指示器についてのデバイス詳細情報テーブルを参照してその内容を得る方法は、ユーザの操作に沿っているので効果的であり適用範囲が広い。
【００４８】
しかしながら、アプリケーションが、デバイス詳細情報テーブルやストローク情報の内容を得るタイミングは、図８及び図９に示した方法に限られない。
図１０は、アプリケーションが、別のタイミングでデバイス詳細情報等を得る方法を示した例である。アプリケーション１４は、予めデバイス詳細情報テーブル等のアドレスすなわちポインタ情報を認知している。これは、マルチデバイスとデバイス詳細情報等３４の管理を行う管理プログラム又はライブラリ関数３０を通して実行される。イベントが発生したときアプリケーション１４は、予め得ている情報によって直接デバイス詳細情報テーブル等を参照する。また、アプリケーション１４は、必要が生じたときにライブラリ関数３０を使って問い合せを行い、詳細情報を参照することができる。ライブラリ関数は、アプリケーションが利用するために予めシステムに用意しておくことができる機能である。
【００４９】
図１１は、アプリケーションが、さらに別のタイミングでデバイス詳細情報等を得る方法を示した例である。この例では、デバイス詳細情報テーブル等３４を管理プログラム又はライブラリ３０が管理する。アプリケーション１４は、通常はマウス情報を使用する。アプリケーション１４は、必要に応じて、イベントとは非同期に管理プログラム３０を通して特定の位置指示器を指定して詳細情報等を得る。例えば、位置指示器のスイッチの１つをある特定のキーボード入力に割付け、そのスイッチ・オンに応答してデバイス詳細情報を見るようにすれば、このような処理はマウス情報とは独立して行われる。
【００５０】
【発明の効果】
以上述べたように、本発明は、複数のポインティング・デバイス又は複数のタブレットの設置を想定していない既存のシステムにおいて、複数のポインティング・デバイスを装備し又は複数のタブレットを接続し（各タブレットが複数の位置指示器を備える場合を含む）、メモリに各デバイスの個別の詳細情報テーブル作成してこれらを管理し、また、各デバイスからの情報は通常は時間分割的に、イベント発生時は排他的にＯＳに渡す構成としたので、既存のシステムを用いて画面上に複数のポインティング・デバイスの位置を表示したり、各デバイスの情報を任意に読取って利用することが可能となった。
【００５１】
本発明の方法によれば、既存のシステムを変更することなく、複数のポインティング・デバイス又は複数のタブレットをアプリケーションが扱うことが容易に実現できるため、マルチデバイスを扱うことを想定したアプリケーションを容易に開発することができる。従って、本発明はアプリケーション開発における新たなカテゴリの可能性を提供するものであり、コンピュータ・システムにおけるアプリケーションの利用範囲を大幅に拡張する効果を有する。
【図面の簡単な説明】
【図１】本発明による複数のタブレットの入力方法を実施したデータ処理システム１０内に組込まれたソフトウェアの各機能ブロック及び関連する構成要素を示す図である。
【図２】個別のデバイス詳細情報テーブルと詳細情報テーブル・ポインタ、及びデバイス状態フラグとデバイス全個数情報とを示す図である。
【図３】ストローク履歴情報を含むデバイス詳細情報テーブルを示す図である。
【図４】本発明によるタブレット・ドライバの入力情報の処理方法を示す論理流れ図である。
【図５】位置指示器上の各スイッチに対してＯＳに渡す情報を割付けるためにタブレット・ドライバが利用する変換テーブルを示す図である。
【図６】従来の、アプリケーションによるマウス情報の処理の流れを示す図である。
【図７】図６に示した従来のアプリケーションのマウスイベントの処理におけるデータ処理システム全体のデータの流れを示す図である。
【図８】本発明における、アプリケーションによるマウスイベントの処理の一例を示す図である。
【図９】図８に示したアプリケーションのマウスイベントの処理の一例におけるデータ処理システム全体のデータの流れを示す図である。
【図１０】アプリケーションが、別のタイミングでデバイス詳細情報等を得る方法を示した図である。
【図１１】アプリケーションが、さらに別のタイミングでデバイス詳細情報等を得る方法を示した図である。
【符号の説明】
１０  データ処理システム
１２  オペレーティング・システム（ＯＳ）
１４  アプリケーション
１５  複数のポインティング・デバイス
１６、１７、１８  タブレット
２０  タブレット・ドライバ
２１、２２、２２  個々のタブレット用のデバイス・ドライバ
３０  ライブラリ（管理プログラム）
３２  記憶装置
３６、３７、３８  デバイス詳細情報テーブル
６１、６２、６３  デバイス詳細情報テーブル・ポインタ
７０  デバイス状態フラグ
７１、７２、７３  個々のフラグ
１００、１０１、１０２  ストローク情報
１１０  最新ストローク・データ・ポインタ
２００  ストローク情報の内容
４００  タブレット・ドライバの変換テーブル
【図１】
0003686697.tif 000002
【図２】
0003686697.tif 000003
【図３】
0003686697.tif 000004
【図４】
0003686697.tif 000005
【図５】
0003686697.tif 000006
【図６】
0003686697.tif 000007
【図７】
0003686697.tif 000008
【図８】
0003686697.tif 000009
【図９】
0003686697.tif 000010
【図１０】
0003686697.tif 000011
【図１１】
0003686697.tif 000012