<第1実施例>
図1は第1実施例の情報処理装置の電気的な構成を示すブロック図である。
図1を参照して、この発明の第1実施例である情報処理装置10はCPU12を含む。CPU12には、バス30を介してRAM14、タッチパネル制御回路16、描画制御回路18、無線通信回路20、I/F回路22が接続される。また、タッチパネル制御回路16にはタッチパネル24が接続され、描画制御回路18にはディスプレイ26が接続される。
この第1実施例では、情報処理装置10が電子黒板に適用される場合について説明するが、電子黒板のみならず、タブレット端末、スマートフォン、PCなどの各種の情報機器ないし電子機器に適用される。
図1に戻って、CPU12は、情報処理装置10の全体的な制御を司る。RAM14は、CPU12のワーク領域およびバッファ領域として用いられる。
タッチパネル制御回路16は、タッチパネル24に必要な電圧などを付与するとともに、タッチパネル24のタッチ有効範囲内でのタッチ操作(タッチ入力)を検出して、そのタッチ入力の位置を示すタッチ座標データをCPU12に出力する。
タッチパネル24は、汎用のタッチパネルであり、静電容量方式、電磁誘導方式、抵抗膜方式、赤外線方式など、任意の方式のものを用いることができる。この第1実施例では、タッチパネル24としては、静電容量方式のタッチパネルがディスプレイ26の表示面上に設けられる。
描画制御回路18は、GPUおよびVRAMなどを含んでおり、CPU12の指示の下、GPUは、RAM14に記憶された手書き入力データおよび画像生成データを用いてディスプレイ26に画面(後述するタッチ画面)を表示するための画面データをVRAMに生成し、生成した画面データをディスプレイ26に表示する。ディスプレイ26としては、たとえばLCDやEL(Electro-Luminescence)ディスプレイなどを用いることができる。
無線通信回路20は、たとえばWi−Fi規格に基づく通信回路であり、後述するタッチペン110との間で通信(無線通信)するために使用される。また、無線通信回路20としては、赤外線による通信回路やBluetooth(登録商標)方式に従う通信回線が用いられてもよい。
図2(A)に示すように、タッチペン110は、ペン本体112とペン先スイッチ114を含む。ペン先スイッチ114は、ユーザがタッチペン110のペン先を指示対象物(タッチパネル24の検出面(パネル部分))に接触させたときに、オン状態になり、ペン先に何も接触していないときには、オフ状態となる機械式のスイッチである。ただし、ペン先スイッチ114は、機械式スイッチに限定される必要は無く、ペン先が指示対象物に接触したことと接触していないことを検出できるものであれば、光学式のスイッチ等を用いることもできる。
図2(B)はタッチペン110の電気的な構成を示すブロック図である。図2(B)に示すように、タッチペン110は、上記のようなペン先スイッチ114のオン状態およびオフ状態を検出するスイッチ状態検出回路124が設けられている。スイッチ状態検出回路124には、バス130を介して制御回路120、メモリ122および無線通信回路126が接続される。メモリ122は、ROMやEEPROM(登録商標)のような不揮発性のメモリであり、当該メモリ122を内蔵するタッチペン110に設定された識別情報を記憶する。たとえば、制御回路120は、スイッチ状態検出回路124によってペン先スイッチ114がオン状態となったことが検出されると、メモリ122に記憶されたタッチペン110の識別情報を、無線通信回路126を介して情報処理装置10に送信する。
図1に戻って、情報処理装置10のCPU12は、タッチペン110から送信された識別情報を、無線通信回路(受信手段)20を介して受信する。したがって、タッチパネル制御回路16からの出力と併せて、タッチパネル24にタッチしたタッチペン110とそのタッチ位置とを特定することができる。
たとえば、ユーザは、専用のタッチペン110でタッチパネル24を操作する。ただし、ユーザは、手指で操作することもできる。タッチパネル24を用いた操作(入力)としては、タップ(短押し)、スライド(ドラッグ)、フリック、ロングタッチ(長押し)などがあり、この第1実施例では、これらを「タッチ入力」または単に「入力」のように総称する。また、タッチパネル24をタッチしていない状態からタッチしている状態に変化することをタッチオン(ペンダウン)と言い、タッチパネル24をタッチしている状態からタッチしていない状態に変化することをタッチオフ(ペンアップ)と言う。継続的なタッチ入力つまりスライドやフリックによる入力に対しては、タッチパネル24は、現在のタッチ位置に対応するタッチ座標データを所定周期よりも短い周期で出力する。たとえば、所定周期は、1〜数フレームであり、1フレームは1/30秒、1/60秒または1/120秒である。
I/F(インターフェイス)回路22には、ケーブル200を介して他の情報処理装置10が通信可能に接続される(図4(A)、(B)参照)。ケーブル200としては、RS−232C、USB、IEEE1394、シリアルATA、PCI Expressなどのシリアルインターフェイスのケーブルを用いることができる。また、ケーブル200としては、SCSIのようなパラレルインターフェイスのケーブルを用いることもできる。ただし、インターフェイス(I/F回路22)の種類(方式)に応じて、シリアルインターフェイスのケーブルまたはパラレルインターフェイスのケーブルが使用される。
このような構成の情報処理装置10では、手書き入力モードにおいて、ユーザがタッチパネル24を利用して文字、図形、記号など(以下、「文字等」ということがある。)を手書き入力(タッチ入力)すると、タッチパネル制御回路16は、そのタッチ入力を検出してタッチ位置に対応するタッチ座標データをCPU12に出力する。CPU12は、タッチパネル制御回路16から出力されたタッチ座標データに基づいてディスプレイ26に手書きの文字等を描画(表示)する。つまり、CPU12の指示の下、描画制御回路18において手書きの文字等がVRAM上に描画され、VRAM上に描画された手書きの文字等を含む画像に対応する画像データがディスプレイ26に出力される。したがって、ユーザが手書きした文字等を含む画像がディスプレイ26に表示される。以下、この明細書においては、ユーザが文字等を手書きすることを前提とし、手書き文字等含む画像を「手書き画像」と呼ぶことにする。
図3(A)は情報処理装置10のディスプレイ26に表示されるタッチ画面102の一例を示す図解図であり、図3(B)は情報処理装置10のディスプレイ26に表示されるタッチ画面102の他の例を示す図解図である。また、図3(C)はタッチ画面102内に表示されるボタンの一例を示す図解図である。
なお、図3(A)および(B)では省略するが、情報処理装置10は、脚を設けて床面に設置したり、壁掛け金具を用いて壁面に設置したりしてもよい。以下、同様である。
たとえば、手書き入力モードでは、図3(A)および(B)に示すような画面(タッチ画面)102がディスプレイ26に表示される。なお、上述したように、ディスプレイ26の表示面上にはタッチパネル24が設けられる。以下、タッチ画面102が表示される場合について同様である。ただし、手書き入力モードが開始された当初においては、タッチ画面102には、文字等は表示されていない。また、手書き画像について保存していたデータ(バックアップデータ)を表示したり編集したりする場合には、ユーザの操作に応じて、バックアップデータが読み出され、当該バックアップデータに対応する手書き画像を含むタッチ画面102が表示されることもある。
図3(A)に示すタッチ画面102には、タッチペン110を用いて手書きされた文字(ここでは、「ABC」)が表示される。また、図3(B)に示すタッチ画面102には、文字「ABC」の横に手書きされた文字(ここでは、「DE」)がさらに表示される。図3(A)および(B)からも分かるように、文字「DE」は文字「ABC」よりも線幅が太い(広い)。
一般的な電子黒板では、ユーザは、タッチペン110に、所望の線種、線色および線幅(以下、これらをまとめて「属性情報」と呼ぶことがある)を設定(変更)することができる。線種は、線の種類であり、実線、点線、破線、一点鎖線などが該当する。線色は、線の色であり、黒、赤、青、黄、…などが該当する。線幅は、線の太さであり、極細、細い、中、太い、極太、…などが該当する。ただし、属性情報は、線種、線色および線幅に限定される必要はなく、ペンの種類(ペン、毛筆、刷毛など)、筆圧などの他の情報が含まれることもある。
ここで、図3(A)および(B)に示すように、タッチ画面102の左端部には、ツールバー104が表示される。具体的には、図3(C)に示すように、ツールバー104は、複数のボタン104a、104b、104c、104d…を含み、それぞれ、独立してタッチできるように構成されている。具体的には、ボタン104aは、線種を選択するためのボタンである。ボタン104bは、線幅を選択するためのボタンである。ボタン104cは、線色を選択するためのボタンである。ボタン104dは、消しゴム機能を選択するためのボタンである。図示は省略するが、ツールバー104には、上記以外のツール(切り取り、移動など)や機能(新規頁を開く、保存、削除、取り消し、一つ前に戻すなど)を選択するためのボタンなども設けられる。
したがって、たとえば、図3(A)および(B)に示すタッチ画面102の例では、ユーザは、文字「ABC」を手書きした後に、線幅を変更して、文字「ABC」の横に文字「DE」を手書きしたことが分かる。ただし、ユーザがボタン104bをタッチすると、線幅を変更(設定)するためのメニュー画面がタッチ画面102の前面に表示され、このメニュー画面において、線幅を選択することができる。詳細な説明は省略するが、線種や線色を変更(設定)する場合も同様である。このような線種、線色および線幅のような属性情報は、タッチペン110に対応して情報処理装置10(RAM14)に記憶される。
たとえば、広い部屋で行われる会議や授業では、複数台の情報処理装置10を使用することが想定される。このような状況においては、ユーザは、タッチペン110を持ったまま移動し、他の情報処理装置10のディスプレイ26(タッチパネル24)上に文字等を手書きする場合がある。たとえば、ユーザが一台の情報処理装置10を利用して会議や授業の内容を板書し、板書するスペースがなくなった場合に、他の情報処理装置10に移動して、板書を続行する状況が考えられる。
しかし、一般的な情報処理装置10では、当該情報処理装置10において設定されたタッチペン110の属性情報が記憶されるだけである。したがって、ユーザが同じ属性で文字等を手書きしたい場合には、他の情報処理装置10を使用するときに属性情報を再度設定(変更)する必要がある。つまり、面倒である。このような不都合は情報処理装置10の台数が多くなるについて顕著に表れる。
なお、他の情報処理装置10に移動した場合に、属性情報が変更されない場合には、他の情報処理装置10に設定されている属性情報に従って手書きされた文字等が表示(描画)される。つまり、過去に設定された属性情報またはデフォルトで設定された属性情報に従って、手書きされた文字等が表示される。
このような不都合を回避するために、第1実施例では、タッチペン110の属性情報を、情報処理装置10間で共有できるようにしてある。以下、具体的に説明する。
図4は第1実施例の情報処理システム100の一例を示す図解図である。図5(A)〜図5(C)は第1実施例の情報処理システム100において各情報処理装置10のディスプレイ26に文字を手書きした例を示す図解図である。
図4に示すように、情報処理システム100は、3台の情報処理装置10がケーブル200を用いて直列に接続(デイジーチェーン接続)される。以下においては、説明の便宜上、図4において、左から順番に、情報処理装置10a、情報処理装置10bおよび情報処理装置10cと呼ぶことにする。同様に、情報処理装置10a、10b、10cのディスプレイ26に表示される画面を、それぞれ、タッチ画面102a、タッチ画面102bおよびタッチ画面102cと呼ぶことにする。
ただし、情報処理装置10a、10bおよび10cを区別する必要が無い場合には、単に情報処理装置10と言うことにする。同様に、タッチ画面102a、102bおよび102cを区別する必要が無い場合には、単にタッチ画面102と言うことにする。
このように情報処理装置10a、10bおよび10cはデイジーチェーン接続され、データ転送はバケツリレー方式で行われる。したがって、情報処理装置10aと情報処理装置10bの間、情報処理装置10bと情報処理装置10cの間、および情報処理装置10aと情報処理装置10cの間で情報(データ)を送受信することができる。
ただし、情報処理装置10a、10bおよび10cはデイジーチェーン接続されるため、両端の情報処理装置10a、10cと、両端に配置されない情報処理装置10bとでは、データ(第1実施例では、属性情報のデータ)の送受信の方法が異なる。以下、具体的に説明する。
たとえば、情報処理装置10aが情報処理装置10bおよび情報処理装置10cにデータを送信する場合には、まず、情報処理装置10aは、情報処理装置10b宛てのデータを当該情報処理装置10bに送信する。情報処理装置10bは、情報処理装置10aからのデータを受信すると、データを受信したことを示す情報(応答情報)を当該情報処理装置10aに送信(返信)する。情報処理装置10aは、情報処理装置10bから応答情報を受信すると、情報処理装置10bに通過情報を送信する。ここで、通過情報は、データを通過させる(データ転送する)ための情報であり、具体的には、次に上流側の情報処理装置10から送信されるデータを下流側の情報処理装置10に転送するべきことを示す情報である。
ただし、この明細書においては、データを送信する側を上流側と言い、データを受信する側を下流側と言う。たとえば、図4において、情報処理装置10aから情報処理装置10cへデータを送信する場合は、情報処理装置10aが上流側であり、情報処理装置10cが下流側である。また、情報処理装置10cから情報処理装置10aへデータを送信する場合は、情報処理装置10cが上流側であり、情報処理装置10aが下流側である。
したがって、情報処理装置10bは、通過情報を受信すると、自機をデータ転送するための状態(以下、「通過状態」という)に設定し、情報処理装置10aに通過情報を受信したことを示す応答情報を送信(返信)する。情報処理装置10aは、この応答情報を受信すると、情報処理装置10c宛てのデータを情報処理装置10bに送信する。このように、送信元の情報処理装置10と送信先(宛先)の情報処理装置10の間に他の情報処理装置10が接続されている場合に、この宛先の情報処理装置10にデータを送信することを「通過送信」と呼ぶことがある。
情報処理装置10bは、情報処理装置10aから通過送信されたデータを受信すると、通過状態に設定されているため、そのまま情報処理装置10cにデータを送信(転送)する。情報処理装置10cは、情報処理装置10bからデータを受信すると、この情報処理装置10bを経由して、情報処理装置10aに応答情報を送信する。情報処理装置10aは、情報処理装置10bから応答情報を受信すると、情報処理装置10bに通過状態を解除するための解除情報を送信する。情報処理装置10bは、解除情報を受信すると、通過状態の設定を解除して、応答情報を情報処理装置10aに送信する。
詳細な説明は省略するが、情報処理装置10cが情報処理装置10aおよび情報処理装置10bにデータを送信する場合についても同様である。上記の説明において、情報処理装置10aと情報処理装置10cを入れ替えれば良い。
また、情報処理装置10bが情報処理装置10aおよび情報処理装置10cにデータを送信する場合には、データを転送する必要がないため、情報処理装置10aおよび情報処理装置10cのそれぞれにデータが送信される。そして、情報処理装置10aおよび情報処理装置10cの各々は、データを受信すると、データを受信したことを示す応答情報を情報処理装置10bに送信(返信)する。
なお、情報処理装置10a、10b、10cは、それぞれ、どのように接続されているか、および接続されている位置の情報を把握(記憶)してあるため、宛先の情報処理装置10に応じた処理でデータを送信する。
また、この第1実施例では、3台の情報処理装置10をデイジーチェーン接続した場合について説明してあるが、4台以上の情報処理装置10がデイジーチェーン接続されるようにしてもよい。かかる場合には、両端に配置されない情報処理装置10であっても、他の情報処理装置10を介して宛先の情報処理装置10にデータを送信する場合には、上記の情報処理装置10a(10c)の場合と同様に、当該他の情報処理装置10を通過状態に設定した後に、データが通過送信される。
このように複数の情報処理装置10をデイジーチェーン接続することで、情報処理装置10間で、双方向通信が可能となり、さらに、受信した情報に基づいて自機に設定(記憶)されている情報を更新することで、情報を共有することが可能となる。
したがって、ユーザがいずれかの情報処理装置10を用いて文字等を入力する場合に、属性情報が設定(変更)されると、変更された属性情報が他の情報処理装置10に通知(送信)される。ただし、属性情報には、当該属性情報が設定されたタッチペン110の識別情報(ペンID)が付されている。他の情報処理装置10は、識別情報が付された属性情報を受信すると、当該識別情報についての属性情報を記憶(上書き)する。したがって、一つの情報処理装置10で設定(変更)された属性情報が、通信可能に接続された他のすべての情報処理装置10に記憶される。つまり、属性情報が共有される。このため、ユーザがタッチペン110を持ったまま別の情報処理装置10に移動して文字等を手書きした場合であっても、このタッチペン110に設定された属性情報に従って文字等が表示(描画)される。
このため、図5(A)に示すように、ユーザがタッチペン110を用いて、情報処理装置10aを用いて文字を手書きしている場合に、線幅を変更すると、上述したように、変更された線幅を含む属性情報が情報処理装置10bおよび情報処理装置10cにそれぞれ送信される。したがって、情報処理装置10bおよび情報処理装置10cでは、タッチペン110についての属性情報が記憶(上書き)される。
属性情報が変更された後に、図5(B)に示すように、ユーザが文字を手書きすると、変更された属性情報に従って描画された文字を含むタッチ画面102aがディスプレイ26に表示される。
そして、ユーザが移動し、情報処理装置10bを用いて文字を手書きすると、図5(C)に示すように、タッチペン110に設定されている属性情報に従って描画された文字を含むタッチ画面102bがディスプレイ26に表示される。
図示は省略するが、ユーザがさらに移動し、情報処理装置10cを用いて文字を手書きする場合についても同様である。
情報処理装置10の上記のような動作は、CPU12がRAM14に記憶された情報処理プログラムを実行することにより実現される。この第1実施例では、情報処理プログラムの一例として、手書き文字を描画したり保存したりする描画アプリケーションについてのプログラム(描画制御プログラム)が実行される。具体的な処理については、後でフロー図を用いて説明する。
図6は図1に示したRAM14のメモリマップ300の一例を示す。図6に示すように、RAM14は、プログラム記憶領域302およびデータ記憶領域304を含む。プログラム記憶領域302には、描画制御プログラムが記憶される。描画制御プログラムは、入力検出プログラム310、画像生成プログラム312、表示プログラム314、通信プログラム316、ペンID取得プログラム318、自機情報更新プログラム320および他機情報更新プログラム322を含む。
入力検出プログラム310は、タッチパネル制御回路16から出力されたタッチパネル24におけるタッチ入力の位置を示すタッチ座標データ330を取得し、データ記憶領域304に記憶するためのプログラムである。ただし、入力検出プログラム310は、情報処理装置10に接続されたハードウェアのキーボードや情報処理装置10に設けられたハードウェアの操作パネルないし操作ボタンからの入力を検出するためのプログラムでもある。
画像生成プログラム312は、後述する画像生成データ334を使用したり、入力検出プログラム310に従って検出されたタッチ座標データ(手書き入力データ332)を使用したりして、タッチ画面102に対応する画像データを生成するためのプログラムである。具体的には、画像生成プログラム312が実行されると、CPU12の指示の下、描画制御回路18において、GPUがタッチ画面102に対応する画像データをVRAMに描画する。
表示プログラム314は、画像生成プログラム312に従って生成された画像データをディスプレイ26に出力するためのプログラムである。したがって、タッチ画面102がディスプレイ26に表示される。
通信プログラム316は、他のコンピュータ(第1実施例では、他の情報処理装置10)と通信するためのプログラムである。ただし、情報処理装置10が接続されている位置に応じて、データを送信する場合の処理が異なる。
ペンID取得プログラム318は、タッチペン110から送信された識別情報(ペンID)を取得するためのプログラムであり、取得した識別情報のデータを同じまたはほぼ同じタイミングで取得したタッチ座標データ330に関連付けてデータ記憶領域304に記憶する。
自機情報更新プログラム320は、ユーザのタッチ入力に従って設定(変更)された属性情報を、データ記憶領域304に記憶(上書き)するためのプログラムである。ただし、属性情報が設定されたときにペンID取得プログラム318に従って取得された識別情報が、設定された属性情報に付加される。また、手書き入力モードが開始された当初では、タッチペン110には、デフォルトの属性情報が設定される。また、自機情報更新プログラム320は、通信可能に接続された他の情報処理装置10に属性情報を通知するためのプログラムでもある。
他機情報更新プログラム322は、他の情報処理装置10から属性情報を受信した場合に、自機に設定(記憶)されている属性情報を更新するためのプログラムである。
なお、図示は省略するが、描画制御プログラムには、各種の機能を選択および実行するためのプログラムなども記憶される。
データ記憶領域304には、タッチ座標データ330、手書き入力データ332、画像生成データ334およびタッチペン情報データ336などが記憶される。
タッチ座標データ330は、入力検出プログラム310に従って検出(取得)された現在の(現フレームにおける)タッチ座標データである。タッチ座標データ330が示すタッチ座標がタッチ画面102に表示されたボタン(ペンボタンなど)の表示領域に含まれる場合には、当該ボタンに割り当てられた機能を実行したり、属性(属性情報)を設定したりする。また、タッチ座標データ330が示すタッチ座標がタッチ画面102に表示されたボタン(ツールバー104など)の表示領域に含まれていない場合には、手書きの文字等に含まれるタッチ座標であると判断されて、手書き入力データ332として記憶する。
手書き入力データ332は、タッチ入力により手書きされた文字等についてのデータであり、タッチオンからタッチオフまでの軌跡(点または線)毎に管理される。また、手書き入力データ332では、タッチオンからタッチオフまでフレーム毎に検出されるタッチ座標データ330が時系列に従って記憶される(並べられる)。
画像生成データ334は、タッチ画面102のような各種の画面に対応する画像データを生成するためのポリゴンデータやテクスチャデータなどのデータである。また、画像生成データ334には、タッチ画面102に表示される各種のボタン(ツールバー104など)についての画像データも含まれる。
タッチペン情報データ336は、タッチペン110に設定された属性情報についてのデータであり、このタッチペン110の識別情報が付加されている。
また、データ記憶領域304には、送受信データバッファ338および通過フラグ340が設けられる。
送受信データバッファ338は、他の情報処理装置10との間で送受信されるデータを一時記憶するための領域である。
通過フラグ340は、通過状態が設定されているかどうかを判定するためのフラグであり、1ビットのレジスタで構成される。情報処理装置10では、通過情報を受信すると、通過フラグ340はオンされ、レジスタにデータ値「1」が設定される。また、情報処理装置10では、解除情報を受信すると、通過フラグ340はオフされ、レジスタにデータ値「0」が設定される。
なお、データ記憶領域304には、描画制御プログラムの実行に必要な他のデータが記憶されたり、描画制御プログラムの実行に必要なタイマ(カウンタ)やレジスタが設けられたりする。
以下、情報処理装置10の描画制御処理についてフロー図を用いて説明するが、上述したように、両端に位置する情報処理装置10aおよび情報処理装置10cと、両端に位置していない情報処理装置10bとでは処理が異なるため、それぞれの描画制御処理について説明することにする。
図7〜図10は情報処理装置10aおよび10cのCPU12の描画制御処理を示すフロー図である。たとえば、描画アプリケーションが起動され、ユーザの指示によって、またはデフォルトの設定によって、手書き入力モードが選択される。すると、図7に示すように、CPU12は、描画制御処理を開始し、ステップS1で、初期処理を実行する。このステップS1の初期処理では、CPU12は、データ記憶領域304のタッチ座標データ330を消去したり、画像生成データ334を不揮発性のメモリから読み出したりした上で、初期のタッチ画面102をディスプレイ26に表示する。つまり、CPU12の指示の下、描画制御回路18によって、初期のタッチ画面102の画像データが生成(描画)され、ディスプレイ26に出力される。
次のステップS3では、タッチオンかどうかを判断する。ここでは、CPU12は、現在(現フレーム)のタッチ座標データ330がデータ記憶領域304に記憶されているかどうかを判断する。
ステップS3で“NO”であれば、つまり、タッチオンでなければ、図10に示すステップS41に進む。一方、ステップS3で“YES”であれば、つまり、タッチオンであれば、ステップS5で、タッチオンされたタッチペン110の識別情報が有るかどうかを判断する。ここでは、CPU12は、タッチ座標データ330に付加された識別情報を参照し、この識別情報が付加された属性情報についてのデータがタッチペン情報データ336として記憶されているかどうかを判断する。
ステップS5で“NO”であれば、つまり、タッチオンされたタッチペン110の識別情報が無ければ、ステップS7で、識別情報を新規に登録してステップS9に進む。つまり、ステップS7では、CPU12は、デフォルトの属性情報に、タッチオンしたタッチペン110の識別情報を付して、新規に登録(記憶)する。つまり、識別情報が付された属性情報のデータがタッチペン情報データ336としてデータ記憶領域304に記憶される。
ステップS5で“YES”であれば、つまり、識別情報が有れば、ステップS9で、手書き入力かどうかを判断する。ここでは、CPU12は、タッチ座標データ330が示すタッチ位置がツールバー104などのボタンが表示された表示領域に含まれていないかどうかを判断する。
ステップS9で“YES”であれば、つまり、手書き入力であれば、ステップS11で、タッチ座標データ330を手書き入力データ332として記憶する。そして、ステップS13で、タッチ入力に従って手書き画像を表示し、ステップS15に進む。ステップS13では、CPU12の指示の下、描画制御回路18が手書き入力データ332を用いて手書き画像を含むタッチ画面102の画面データをVRAMに描画し、ディスプレイ26に出力する。したがって、手書き入力中では、タッチ入力に従う複数の点によって線が描画され、一本または複数本の線によって文字等を含む手書き画像が描画される。
そして、ステップS15では、タッチオフであるかどうかを判断する。ここでは、CPU12は、データ記憶領域304を参照して、タッチ座標データ330が記憶されていないかどうかを判断する。ステップS15で“NO”であれば、つまり、タッチオンの状態が継続していれば、ステップS11に戻る。したがって、手書き入力データ332のうち、描画中の線についてのデータが更新されるとともに、タッチ入力に従って線が表示(描画)される。一方、ステップS15で“YES”であれば、つまり、タッチオフであれば、ステップS3に戻る。
また、ステップS9で“NO”であれば、つまり、手書き入力でなければ、図8に示すステップS17で、ペンボタン(ボタン104a、104b、104c)がタッチされたかどうかを判断する。ここでは、CPU12は、取得したタッチ座標データ330が示すタッチ位置がボタン104a、104b、104cの表示領域のいずれかに含まれるかどうかを判断する。以下、ボタンが押されたかどうかを判断する場合について同様である。
ステップS17で“NO”であれば、つまり、ボタン104a、104b、104c以外の他のボタンがタッチされれば、ステップS19で、他のボタンに応じた処理を実行して、図10に示すステップS41に進む。たとえば、ステップS19では、CPU12は、ユーザの操作(指示)に従って、消しゴム機能を設定したり、文字等を消去したり、手書き画像をコピーしたり、コピーした画像を貼り付けたり、手書き画像の範囲を指定したり、手書き画像の画像データ(手書き入力データ332)を不揮発性のメモリに保存したりする。
一方、ステップS17で“YES”であれば、つまり、ボタン104a、104b、104cのいずれかがタッチされると、ステップS21で、タッチペン110の属性情報が変更されたかどうか判断する。
図示は省略するが、上述したように、ペンボタンがタッチされると、線種、線色または線幅を設定(変更)するためのメニュー画面がタッチ画面102の前面に表示され、このメニュー画面において、線種、線色または線幅が設定(変更)される。また、ユーザが、線種、線色または線幅を設定することなく、メニュー画面を閉じた場合には、属性情報の変更がキャンセルされる。
ステップS21で“NO”であれば、つまり、タッチペン110の属性情報が変更されていなければ、ステップS23で、キャンセルかどうかを判断する。ステップS23で“NO”であれば、つまり、キャンセルでなければ、そのままステップS21に戻る。一方、ステップS23で“YES”であれば、つまり、キャンセルであれば、図10に示すステップS41に進む。
また、ステップS21で“YES”であれば、つまり、タッチペン110の属性情報が変更されれば、ステップS25で、属性情報を更新して、図9に示すステップS27に進む。つまり、ステップS25では、CPU12は、タッチペン情報データ336を更新する。このとき、更新されたタッチペン情報データ336のコピーが、送受信データバッファ338に記憶される。
図9に示すステップS27では、更新された属性情報を下流側の情報処理装置10(情報処理装置10b)に送信する。ただし、ステップS27では、CPU12は、送受信データバッファ338に記憶されたタッチペン情報データ336のコピーを情報処理装置10bに送信する。
次のステップS29では、情報処理装置10bから応答情報を受信したかどうかを判断する。ここでは、CPU12は、送受信データバッファ338に、情報処理装置10bからの応答情報が記憶されているかどうかを判断する。以下、応答情報を受信したかどうかを判断する場合について同様である。ステップS29で“NO”であれば、つまり、情報処理装置10bから応答情報を受信していなければ、そのままステップS29に戻る。
一方、ステップS29で“YES”であれば、つまり、情報処理装置10bから応答情報を受信すると、ステップS31で、通過情報を情報処理装置10bに送信して、ステップS33で、情報処理装置10bから応答情報を受信したかどうかを判断する。ステップS33で“NO”であれば、つまり、情報処理装置10bから応答情報を受信していなければ、そのままステップS33に戻る。
一方、ステップS33で“YES”であれば、つまり、情報処理装置10bから応答情報を受信すると、図10に示すステップS35で、属性情報を下流側に通過送信する。ここでは、CPU12は、最下流に位置する情報処理装置10宛てに属性情報を送信する。ただし、このステップS35では、情報処理装置10aのCPU12は、情報処理装置10c宛てに属性情報を送信する。また、情報処理装置10cのCPU12は、情報処理装置10a宛てに属性情報を送信する。
そして、ステップS37で、情報処理装置10bから応答情報を受信したかどうかを判断する。ステップS37で“NO”であれば、つまり、情報処理装置10bから応答情報を受信していなければ、そのままステップS37に戻る。
一方、ステップS37で“YES”であれば、つまり、情報処理装置10bから応答情報を受信すると、ステップS39で、情報処理装置10bに解除情報を送信する。
次のステップS41では、他の情報処理装置10から属性情報を受信したかどうかを判断する。このステップS41では、情報処理装置10aのCPU12は、情報処理装置10bまたは情報処理装置10cから属性情報を受信したかどうかを判断する。また、情報処理装置10cのCPU12は、情報処理装置10aまたは情報処理装置10bから属性情報を受信したかどうかを判断する。
ステップS41で“NO”であれば、つまり、他の情報処理装置10から属性情報を受信していなければ、図7に示したステップS3に戻る。一方、ステップS41で“YES”であれば、つまり、他の情報処理装置10から属性情報を受信すると、ステップS43で、上流側の他の情報処理装置10に応答情報を送信して、ステップS45で、自機に設定されている属性情報を更新する。つまり、CPU12は、タッチペン情報データ336を更新する。
そして、ステップS47で、終了かどうか判断する。ここでは、CPU12は、ユーザから終了の指示が与えられたかどうかを判断する。ステップS47で“NO”であれば、つまり終了でなければ、図7に示したステップS3に戻る。一方、ステップS47で“YES”であれば、つまり終了であれば、描画制御処理を終了する。
続いて、情報処理装置10bのCPU12の描画制御処理について説明する。ただし、この描画制御処理は、図7〜図10を用いて説明した情報処理装置10aまたは情報処理装置10cのCPU12の描画制御処理の一部が異なるだけであるため、重複した説明は省略することにする。簡単に説明すると、この情報処理装置10bのCPU12の描画制御処理では、データを転送するための処理が追加され、図9および図10に示した処理に代えて、図11および図12に示す処理が実行される。
図11は図1に示すCPUの描画制御処理の一部であって、図8に後続するフロー図である。また、図12は図1に示すCPUの描画制御処理の他の一部であって、図11に後続するフロー図である。
図11に示すように、情報処理装置10bのCPU12は、図8のステップS25で、属性情報を更新すると、ステップS61で、属性情報を他の情報処理装置10に送信して、ステップS63に進む。ここでは、他の情報処理装置10は、情報処理装置10aおよび情報処理装置10cである。
なお、図7に示したステップS3で“NO”と判断したり、図8に示したステップS19で他のボタンに応じた処理を実行したり、ステップS23で“YES”と判断したりした場合にも、CPU12は、ステップS63に進む。
ステップS63では、他の情報処理装置10から属性情報を受信したかどうかを判断する。ステップS63で“NO”であれば、つまり、他の情報処理装置10から属性情報を受信していなければ、そのままステップS73に進む。一方、ステップS63で“YES”であれば、つまり、他の情報処理装置10から属性情報を受信すると、ステップS65で、通過状態かどうかを判断する。ここでは、CPU12は、通過フラグ340がオンされているかどうかを判断する。
ステップS65で“YES”であれば、つまり、通過状態であれば、ステップS67で、属性情報を下流側に送信(転送)して、図12に示すステップS79に進む。一方で、ステップS65で“NO”であれば、つまり、通過状態でなければ、ステップS69で、自機に設定されている属性情報を更新し、ステップS71で、属性情報を送信してきた情報処理装置10に応答情報を送信する。
そして、ステップS73で、通過情報を受信したかどうかを判断する。このとき、CPU12は、送受信データバッファ338に、情報処理装置10aもしくは情報処理装置10cからの通過情報が記憶されているかどうかを判断する。ステップS73で“NO”であれば、つまり、情報処理装置10aもしくは情報処理装置10cから通過情報を受信していなければ、ステップS79に進む。一方、ステップS73で“YES”であれば、つまり、情報処理装置10aもしくは情報処理装置10cから通過情報を受信すれば、ステップS75で、通過フラグ340をオンして、ステップS77で、通過情報を送信してきた情報処理装置10に応答情報を送信して、ステップS79に進む。
図12に示すステップS79では、解除情報を受信したかどうかを判断する。このとき、CPU12は、送受信データバッファ338に、情報処理装置10aもしくは10cからの解除情報が記憶されているかどうかを判断する。ステップS79で“NO”であれば、つまり、解除情報を受信していなければ、図7に示すステップS3に戻る。
一方、ステップS79で“YES”であれば、ステップS81で、通過フラグをオフにして、ステップS83で、上流側に応答情報を送信して、ステップS85で終了かどうか判断する。ステップS85で“NO”であれば、つまり終了でなければ、図7に示したステップS3に戻る。一方、ステップS85で“YES”であれば、つまり終了であれば、描画制御処理を終了する。
この第1実施例によれば、複数の情報処理装置10をデイジーチェーン接続することで、タッチペン110の属性情報を情報処理装置10間で共有することができる。したがって、ユーザは、タッチペン110を持ったまま、他の情報処理装置10に移動して、文字等を描画すると、先に設定した属性情報に従って文字等が描画される。つまり、ユーザの手を煩わすことがない。
なお、この第1実施例では、一本のタッチペン110が用いられる場合について説明したが、これに限定される必要はない。複数本のタッチペン110を用いることもできる。かかる場合には、複数のタッチペン110の各々について、識別情報(ペンID)が付された属性情報のデータ(タッチペン情報データ)が記憶される。この場合、情報処理装置10でタッチペン110の属性情報が更新されると、当該タッチペン110の識別情報が付加された属性情報が更新され、更新された属性情報が他の情報処理装置10に送信される。また、情報処理装置10は、他の情報処理装置10から属性情報を受信した場合には、属性情報に付加された識別情報を検出し、この識別情報と同じ識別情報が付加された属性情報を更新する。
ただし、複数本のタッチペン110が用いられる場合には、文字等を描画しているときに、他の情報処理装置10から属性情報が送信されることがあるため、受信に関する処理については、描画制御処理から分離して、分離後の描画制御処理と並行して実行する必要がある。
具体的には、情報処理装置10aおよび10cの描画制御処理におけるステップS41〜S45の処理が抜き出される。そして、描画制御処理の開始から終了まで、並行して、ステップS41〜S45の処理が繰り返し実行される。
同様に、情報処理装置10bの描画制御処理におけるステップS63〜S83の処理が抜き出される。そして、描画制御処理の開始から終了まで、並行して、ステップS63〜S83の処理が繰り返し実行される。
<第2実施例>
第2実施例の情報処理装置10は、通信方法が異なる以外は、第1実施例の情報処理装置10と同じであるため、第1実施例と異なる内容について説明し、重複した説明については省略することにする。
図13は第2実施例における情報処理システム400の一例を示す図解図である。図13に示すように、情報処理システム400は、情報処理装置10a、10bおよび10cを含み、情報処理装置10a、10bおよび10cは、インターネットやLANのようなネットワーク402を介して、互いに通信可能に接続される。
なお、情報処理装置10a、10b、10cは、ネットワーク402に、有線で接続されてもよいし、無線で接続されてもよい。
この第2実施例では、情報処理装置10で属性情報が更新されると、この情報処理装置10は、更新された属性情報の複製を、宛先を指定せずにネットワーク402に送信(ブロードキャスト)する。また、情報処理装置10は、ブロードキャストされた属性情報を、ネットワーク420を介して受信すると、自機に設定(記憶)された属性情報を更新する。つまり、ネットワーク402に接続された複数の情報処理装置10間で、タッチペン110の属性情報のデータが送受信され、属性情報が共有される。
情報処理装置10の上記のような動作は、CPU12が図6に示すRAM14に記憶された情報処理プログラムを実行することにより実現される。ただし、この第2実施例では、第1実施例で説明した通信プログラム316とは、更新された属性情報をネットワーク402に接続された他の情報処理装置10にブロードキャストする点で異なる。したがって、第2実施例では、データ転送されることが無いため、情報処理装置10a、10b、10cのCPU12は、同じ描画制御処理を実行する。以下、第2実施例の描画制御処理について具体的に説明するが、第1実施例の図7〜図10で示した描画制御処理と一部が異なる以外は同じであるため、重複した説明は省略する。第2実施例では、図10に示した処理に代えて図14に示す処理が実行される。
図14は第2実施例における情報処理装置10a、10bおよび10cのCPU12の描画制御処理の一部であって、図8に後続するフロー図である。
図14に示すように、情報処理装置10a、10bおよび10cのCPU12は、図8のステップS25で、属性情報を変更すると、ステップS111で、属性情報をネットワーク402に接続された他の情報処理装置10にブロードキャストして、ステップS113に進む。
なお、図7に示したステップS3で“NO”と判断したり、図8に示したステップS19で他のボタンに応じた処理を実行したり、ステップS23で“YES”と判断したりした場合にも、CPU12は、ステップS113に進む。
ステップS113では、属性情報を受信したかどうかを判断する。ステップS113で“NO”であれば、つまり、属性情報を受信していなければ、図7に示したステップS3に進む。
一方、ステップS113で“YES”であれば、つまり、属性情報を受信すれば、ステップS115で、自機に設定されている属性情報を更新して、ステップS117で終了かどうか判断する。ステップS117で“NO”であれば、つまり終了でなければ、ステップS3に戻る。一方、ステップS117で“YES”であれば、つまり終了であれば、描画制御処理を終了する。
この第2実施例においても、第1実施例と同様に、タッチペン110の属性情報を情報処理装置10間で共有することができる。このため、ユーザの手を煩わすことがない。
なお、第2実施例においては、複数本のタッチペン110が用いられる場合には、ステップS113およびステップS115の処理が描画制御処理から抜き出される。そして、描画制御処理の開始から終了まで、並行して、ステップS113およびS115の処理が繰り返し実行される。
<第3実施例>
第3実施例の情報処理装置10は、ミラーリングを行うこと以外は、第2実施例の情報処理装置10と同じであるため、重複した説明については省略することにする。
ここで、ミラーリングとは、データをネットワーク上の他のコンピュータにコピーし、コンピュータ間でデータを同期させる処理をいう。具体的には、情報処理装置10において更新されたデータが複製され、複製されたデータが他の情報処理装置10に送信される。そして、他の情報処理装置10は複製されたデータを受信して、受信したデータを記憶(更新)する。
第3実施例における情報処理装置10のCPU12の描画制御処理は、第2実施例で示した描画制御処理と同様であるため、重複した説明は省略する。
このように、第3実施例では、ミラーリングを行うことによって、情報処理装置10で更新されたタッチペン110の属性情報が、他の情報処理装置10にも記憶される。つまり、情報処理装置10で更新されたタッチペン110の属性情報が、他の情報処理装置10に同期(反映)される。
この第3実施例においても、第1および第2実施例と同様に、情報処理装置10間で、タッチペン110の属性情報を共有することができる。このため、ユーザの手を煩わすことがない。
なお、第3実施例においても、第2実施例と同様に、複数本のタッチペン110を用いることができる。
上述の各実施例で挙げた画面構成等は一例であり、実際の製品に応じて適宜変更することが可能である。また、同じ効果が得られる場合には、フロー図に示した各ステップの順番は適宜変更されてもよい。