キーボードインタフェース制御方法およびそれを利用した装置またはシステム
【課題】PC7と周辺装置5がKBインタフェース4にて接続されるシステムにおいて、OS(2)が提供するKBドライバ3を変更することなく、異なった周辺装置5を制御できるようにする。
【解決手段】上位装置であるPCに、周辺装置を制御するコマンドデータをKBファンクションのパラメータデータまでに分解し、分解したときは所定のコードを付加してKBファンクションデータとして送信するコマンド送信部と、当該周辺装置からKBファンクションデータに分解されたレスポンスデータを復元するレスポンス受信部を設け、前記周辺装置に、前記上位装置からKBファンクションデータとして送信されたコマンドデータを復元するコマンド受信部と、前記レスポンスデータをKBファンクションのパラメータデータまでに分解し、分解したときは所定のコードを付加してKBファンクションのデータとして返信するレスポンス送信部を設けた。
【解決手段】上位装置であるPCに、周辺装置を制御するコマンドデータをKBファンクションのパラメータデータまでに分解し、分解したときは所定のコードを付加してKBファンクションデータとして送信するコマンド送信部と、当該周辺装置からKBファンクションデータに分解されたレスポンスデータを復元するレスポンス受信部を設け、前記周辺装置に、前記上位装置からKBファンクションデータとして送信されたコマンドデータを復元するコマンド受信部と、前記レスポンスデータをKBファンクションのパラメータデータまでに分解し、分解したときは所定のコードを付加してKBファンクションのデータとして返信するレスポンス送信部を設けた。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、上位装置であるパーソナルコンピュータ(以下「PC」という)のキーボードインタフェースを用いて接続されたキーボード(以下「KB」という)等の周辺装置をPCより制御する技術に関する。
【背景技術】
【0002】
従来、PCのKBインタフェースに接続されるKB等の周辺装置の制御は、KB通信プロトコルにそれぞれの周辺装置特有の制御コマンドを追加して制御するようにしている。このため、KBインタフェースに接続する周辺装置の開発のほかに、PCのオペレーティングシステム(以下、「OS」という)が提供するKBドライバもコマンドの拡張等の変更をする必要があった。(例えば、特許文献1参照)。
【特許文献1】特開2002−140152号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、上記従来のKB通信プロトコルにおけるコマンドを拡張する方法では、PCのOSが提供するドライバを変更するスキル等も必要となり、当該システム構築を容易に行うことができなかった。
【課題を解決するための手段】
【0004】
本発明は、前述の課題を解決するため次の方法を採用する。すなわち、上位装置と周辺装置をキーボードインタフェースにて接続して制御するキーボードインタフェース制御方法であって、キーボードファンクションのパラメータデータとして定義されないコマンドデータまたはレスポンスデータを送信するときに、キーボードファンクションのパラメータデータとして定義されたデータまでに分解するとともに分解したときは所定のコードを付加し、キーボードファンクションのデータとして送信するようにした。
【発明の効果】
【0005】
本発明のKBインタフェースシステムによれば、キーボードファンクションのパラメータデータとして定義されないコマンドデータまたはレスポンスデータを送信するときに、キーボードファンクションのパラメータデータとして定義されたデータまでに分解するとともに分解したときは所定のコードを付加し、キーボードファンクションのデータとして送信するようにしたので、オペレーティングシステムが提供するキーボードドライバを変更することなく、上位装置にてキーボードインタフェースに接続された異なった周辺装置を制御することができる。
【発明を実施するための最良の形態】
【0006】
以下、本発明に係わる実施の形態例を、図面を用いて説明する。図面に共通する要素には同一の符号を付す。
【実施例1】
【0007】
(構成)
図2は実施例1のKBインタフェースシステムのブロック図である。同図に示したように、KBインタフェースシステムは、制御部1、周辺装置制御プログラム8、OS(2)およびKBドライバ3から構成された上位装置であるPC7と、通信処理部9、KB通信プロトコル処理部6、コマンド受信部18およびレスポンス送信部19から構成された周辺装置5がKBインタフェース4によって接続された構成となっている。
【0008】
PC7を構成する制御部1は、周辺装置制御プログラム8にてKBインタフェース4に接続された周辺装置5および各部の制御を行うものであり、周辺装置制御プログラム8はKBインタフェース4に接続された周辺装置5とコマンド/レスポンスの送受信を制御するためのプログラムである。
【0009】
同様に、PC7を構成するOS(2)は制御部1のPC上で稼動するWindows(登録商標)などのオペレーティングシステムであり、KBドライバ3は、OS(2)が提供するKB通信プロトコルを実装しKBインタフェース4に接続された周辺装置5とデータの送受信を行うものである。
【0010】
一方、周辺装置5を構成する通信処理部9はPC7を制御する制御部1との通信処理を行う機能を有し、KB通信プロトコル処理部6は制御部1のKBドライバ3との間でデータの送受信を行う周辺装置5のKB通信プロトコルの処理を行う機能を有するものである。
【0011】
次に、図1のさらに詳細なKBインタフェースシステムの構成図を用いて、各構成を説明する。同図において、前述の周辺装置制御プログラム8は、コマンド送信部10とレスポンス受信部11から構成される。
【0012】
(PC側の構成)
同図左側のコマンド送信部10は、OS(2)が提供するKBドライバ3がサポートするKB制御用KBファンクションのパラメータデータを使用して、周辺装置5に分解および変換したコマンドデータを送る機能を有するものである。
【0013】
このコマンド送信部10は、同図に示したように、前記パラメータデータのサイズに合わせて前記コマンドデータを分解するためのコマンド分解処理部12と、コマンド分解処理部12にて分解されたコマンドデータ(以下、「分解コマンドデータ」という)において、KB通信プロトコル仕様として送信不可能な分解コマンドデータを送信可能な分解コマンドデータにするためにデータの追加と分解および変換するESCAPE処理を施すESCAPE処理部13と、ESCAPE処理を施した分解コマンドデータ「以下、「ESCAPEコマンドデータ」という」とKBファンクションコードをセットしてKBドライバ3に引き渡すためのKBファンクション処理部14から構成される。
【0014】
ここで、前記送信不可能な分解コマンドデータとは、制御部1から周辺装置5に送信するコマンドのデータ列のうちKBファンクションのパラメータデータとして定義されていないデータのことをいう。
【0015】
そして、例えば、制御部1から周辺装置5に送信する分解コマンドのデータ列として、01、34、23、56、35、55が送信される場合で、KBインタフェース4で56という値が定義されていない場合では、56という値を送信するときに、コマンド分解処理部12にて05と06に分解および変換し、さらに、通常の05、06とを識別するためにESCAPE処理部13により所定のコード(ESC)を先頭につけて送信する。すなわち、ESCを99とすると、56のデータは99、05、06というデータとして送信するように処理される。
【0016】
そして、KBファンクション処理部14にて、KBを制御することを表すファンクションコードFuncXとして例えば77をそれぞれのデータの先頭につけ、77、99、77、05、77、06として周辺装置5の1つであるKBに送信することになる。
【0017】
一方、右側のレスポンス受信部11は、後述する周辺装置5のレスポンス送信部19にて生成された、KBドライバ3がサポートするKB制御用KBファンクションのレスポンスのパラメータデータを受け取るための機能を有するものである。
【0018】
このレスポンス受信部11は、前記レスポンスのパラメータデータを受信しKBファンクションコードを取り除くためのKBファンクション処理部17と、後述する周辺装置5のESCAPE処理部24にてKBインタフェースとして送信不可能なデータを送るためにESCAPE処理を施されたレスポンスデータを復元するためのESCAPE復元処理部16と、ESCAPE復元処理部16で復元したデータからレスポンスデータを復元するレスポンス復元処理部15とから構成される。
【0019】
レスポンス受信部11では、例えば、後述する周辺装置5からレスポンスデータの例として88、99、88、05、88、06が送信されてきた場合、KBファンクション処理部17にて各先頭のKBファンクションデータRspYである88をKBファンクションコードとして認識してこれを取り除き、99、05、06のデータとし、ESCAPE復元処理部16にてESCコードである99を識別して、レスポンス復元処理部15にて56というデータに合成して復元する処理を行う。
【0020】
(周辺装置の構成)
周辺装置5を構成する通信処理部9は、前述のように、KBインタフェース4にて周辺装置5を制御するPC7の制御部1とKB通信プロトコル仕様に従ったコマンド/レスポンスの送受信を行うKB通信プロトコル処理部6と、KB通信プロトコル処理部6を介してコマンド送信部10より送信されたKBファンクションのパラメータデータを受信する同図左側のコマンド受信部18と、KB制御用KBファンクションのレスポンスデータのパラメータデータを使用してPC7の制御部1にレスポンスデータを返信する同図右側のレスポンス送信部19とからなる。
【0021】
同図左側のコマンド受信部18は、前記パラメータデータを受信しKBファンクションコードを取り除くためのKBファンクション処理部20と、制御部1のESCAPE処理部13にて生成されたESCAPEコマンドデータを復元するためのESCAPE復元処理部21と、ESCAPEコマンドデータからコマンドデータを復元するコマンド復元処理部22とから構成される。
【0022】
コマンド受信部18では、例えば、前述のPC7からコマンドデータ列の例として、77、99、77、05、77、06が送信されてきた場合、KBファンクション処理部20にて各先頭のKBファンクションデータFuncXである77をKBファンクションコードとして識別してこれを取り除き、99、05、06のデータとし、ESCAPE復元処理部21にて、ESCコードである99を識別して、コマンド復元処理部22にて、56というデータに合成して復元する処理を行う。
【0023】
一方、同図右側のレスポンス送信部19は、前記パラメータデータのサイズに合わせてレスポンスデータを分解するためのレスポンス分解処理部25と、レスポンス分解処理部25にて分解されたレスポンスデータ(以下、「分解レスポンスデータ」という)において、KB通信プロトコル仕様で送信不可能な分解レスポンスデータを送信可能な分解レスポンスデータにデータの追加と分解および変換するESCAPE処理を施すESCAPE処理部24と、ESCAPE処理を施した分解レスポンスデータ(以下「ESCAPEレスポンスデータ」という)を送信に使用するKBファンクションコードをセットしてKB通信プロトコル処理部6に引き渡すためのKBファンクション処理部23とから構成される。
【0024】
ここで、前記送信不可能な分解レスポンスデータとは、周辺装置5から制御部1に送信するレスポンスのデータ列のうちKBファンクションのパラメータデータとして定義されていないデータのことをいう。
【0025】
そして、例えば、周辺装置5から制御部1に送信するレスポンスデータの例として01、34、23、56、35、55が送信される場合で、KBインタフェース4で56という値が定義されていない場合では、56という値を送信するときに、レスポンス分解処理部25にて05と06に分解および変換し、さらに、通常の05、06とを識別するためにESCAPE処理部24により所定のコード(ESC)を先頭につけて送信する。すなわち、ESCを99とすると、56のデータは99、05、06というデータとして送信するように処理される。
【0026】
そして、KBファンクション処理部23にて、KBを制御することを表すファンクションコードRspYとして例えば88をそれぞれのデータの先頭につけ、88、99、88、05、88、06として周辺装置5の1つであるKBに送信することになる。
【0027】
(動作)
以上の構成により、実施例1のKBインタフェースを用いた周辺装置制御通信プロトコルは、以下のように動作する。本動作を図3ないし図10を用いて以下詳細に説明する。
【0028】
(PC側の送信動作)
まず、制御部1から周辺装置5へ、コマンドデータを送信する処理の一例を図3の処理フローを用いて説明する。
【0029】
所望とされるコマンドデータが、周辺装置制御プログラム8のコマンド送信部10に引き渡され、コマンドデータの送信処理が開始されると、コマンド分解処理部12で送信に使用するコマンドデータをKBファンクションのパラメータデータのサイズに合わせて分解する(ステップS1)。
【0030】
次に、ESCAPE処理部13にて、KB通信プロトコル仕様上送信可能なデータか否かを判断し(ステップS2)、送信不可能な分解コマンドデータの場合にはESCAPE処理部13にてESCAPE処理を実施する(ステップS3)。
【0031】
そして、ESCAPE処理部13にてESCデータの追加と分解および変換するESCAPE処理を施した分解コマンドデータ(すなわちESCAPEコマンドデータ)とESCAPE処理を施していない分解コマンドデータに対し、KBファンクションコードをセットして、KBファンクション処理部14にてKBファンクションのパラメータデータとして周辺装置5に送信する(ステップS4)。
【0032】
そして、分解したコマンドデータ全てについて、未処理の分解コマンドデータが無くなるまで以上のステップS2ないしステップS4を繰り返す(ステップS5)。
【0033】
図4は、コマンド送信部10におけるコマンドデータの変換の一例を示した図である。26はKB通信プロトコル仕様上送信不可能な分解コマンドデータ(26a)と送信可能な分解コマンドデータを示し、27はESCAPEコマンドデータ(27a)と、ESCAPE処理を施していない分解コマンドデータを示し、28はKBファンクション処理部14にてESCAPEコマンドデータ(28aないし28c)とESCAPE処理を施していない分解コマンドデータ28にKBファンクションコードをセットして送信する際のデータを示している。
【0034】
すなわち、同図の矢印のように、周辺装置5に送信しようとする分解コマンドデータ26が、ESCAPEコマンドデータ(27a)とESCAPE処理を施していない分解コマンドデータ27に変換され、KBファンクションコードをセットしたコマンドデータ28の順に処理される。
【0035】
ここで、コマンド分解処理部12にて分解されたコマンドデータの1つであるC3(26a)はそのままでは送信できないので、ESCAPE処理部13にてESCデータの追加とC3をさらにC3aとC3bに分解および変換した3つのデータESC+C3a+C3b(27a)をKBファンクション処理部14に引き渡す。
【0036】
そして、KBファンクション処理部14では、KBファンクションのパラメータデータとして送信する際のデータであるESCAPEコマンドデータにKBファンクションコードをセットした、FuncX+ESC(28a)、FuncX+C3a(28b)、FuncX+C3b(28c)として、KBインタフェース4を介して周辺装置5に送信する。
【0037】
(周辺装置の受信動作)
次に、制御部1から送信されてきたパラメータデータを受信する周辺装置5のコマンドデータ受信処理の一例を図5の処理フローを用いて説明する。
【0038】
まず、周辺装置5は、PC7から前述のコマンドデータ列28を受信すると、KBファンクション処理部20にて当該コマンドデータを取り出し(ステップS11)、ESCAPE復元処理部21に引き渡す。
【0039】
ESCAPE復元処理部21では、ESCデータの有無をチェックし(ステップS12)、ESCデータ有の場合には、制御部1にてKB通信プロトコルの仕様上送信不可能なデータを送信するためにESCAPE処理が施されたデータと判断し、ESCAPEコマンドデータを復元する(ステップS13)。
【0040】
そして、コマンド復元処理部22にてESCデータのその後の2つの分解および変換されたコマンドデータから本来のデータを復元し、復元したデータをコマンドデータとして保存する(ステップS14)。
【0041】
ESCAPEコマンドデータでない場合には、そのデータはKB通信プロトコルの仕様上送信可能なコマンドデータであるため、そのままコマンドデータとして保存する(ステップS15)。コマンド受信部18は、コマンドの全データの受信を完了するまでステップS11ないしステップS15の処理を繰り返す。
【0042】
図6は、周辺装置5のコマンド受信部18にて処理されるコマンドデータの変換の一例である。
【0043】
29は、図4のKBファンクションのパラメータデータ28に相当し、KBファンクション処理部20が受信するデータであり、30は、KBファンクション処理部20にてKBファンクションコードFuncXを取り除いた分解コマンドデータを示し、31は、ESCAPE復元処理部21にてESCAPE復元処理が施され、さらにコマンド復元処理部22で復元されたコマンドデータを示し、29、30、31の順に処理される。
【0044】
すなわち、KB通信プロトコルの仕様上送信不可能な分解コマンドデータC3(26a)は、周辺装置5が受信するFuncX+ESC(29a)、FuncX+C3a(29b)、FuncX+C3b(29c)として受信し、KBファンクション処理部20にてKBファンクションコードを取り除かれて、ESC・C3a・C3b(30a)に復元処理され、ESCAPE処復元処理部21およびコマンド復元処理部22にて分解コマンドデータC3(31a)に復元された後、元のコマンドデータに復元される。その他のコマンドデータも同図に示したように同様に復元される。
【0045】
(周辺装置の返信動作)
次に、周辺装置5から制御部1へレスポンスデータを返信する返信処理の一例を、図7の動作フローチャートを用いて説明する。
【0046】
通信処理部9のレスポンス送信部19から所望とするレスポンスデータの送信処理が開始されると、まず、レスポンス分解処理部25にてデータ送信に使用するKBファンクションのレスポンスデータをパラメータデータのサイズに合わせて分解する(ステップS21)。
【0047】
そして、ESCAPE処理部24にてKB通信プロトコル仕様上送信可能なデータか否かを判断し(ステップS22)、送信不可能な分解レスポンスデータの場合はESCAPE処理部24にてESCデータの追加と分解および変換を行うESCAPE処理を施した後、KBファンクション処理部23に引き渡す(ステップS23)。
【0048】
KBファンクション処理部23では、KB通信プロトコル処理部6から送信されてくるレスポンスデータ返却用のKBファンクションを待ち(ステップS24)、KBファンクションを受信するとESCAPEレスポンスデータとESCAPE処理を施していないデータに対し、KBファンクションコードをセットし制御部1に送信する(ステップS25)。
【0049】
分解したレスポンスデータ全てについて、未処理の分解レスポンスデータが無くなるまで以上のステップS22ないしステップS25を繰り返す(ステップS26)。
【0050】
図8は、周辺装置5のレスポンス送信部19にて処理されるレスポンスデータの変換の一例である。
【0051】
32は分解レスポンスデータを示し、33は送信不可能な分解レスポンスデータをESCAPE処理部24にてESCデータの追加と分解および変換するESCAPE処理を施したレスポンスデータ、すなわちESCAPEレスポンスデータ(33a)とESCAPE処理を施していない分解レスポンスデータを示し、34はKBファンクション処理部23にてESCAPEレスポンスデータおよびESCAPE処理を施されていない分解レスポンスデータに、KBファンクションコードをセットして送信する際のデータを示しており、矢印で示したように32、33、34の順で処理される。
【0052】
同図において、レスポンス分解処理部25にて分解レスポンスデータであるR2(32a)は送信不可能なデータであるためそのままでは送信できず、ESCAPE処理部24にてESCデータの追加とR2をさらにR2aとR2bに分解および変換した3つのデータESC+R2a+R2b(33a)をKBファンクション処理部23に引き渡す。
【0053】
そして、KBファンクション処理部23でKBファンクションのパラメータデータとして送信する際のデータであるESCAPEレスポンスデータにKBファンクションコードをセットした、RspY+ESC(34a)、RspY+R2a(34b)、RspY+R2b(34c)としてKBインタフェース4を介して制御部1に送信する。
【0054】
(PC側の受信動作)
次に、周辺装置5から送信されたパラメータデータを受信する制御部1のレスポンスデータ受信処理の一例を、図9の処理フローを用いて説明する。
【0055】
レスポンス受信部11のKBファンクション処理部17にて、周辺装置5から前述のレスポンスデータ34列を受信すると、パラメータデータとして設定されたESCAPEレスポンスデータを取り出し(ステップS31)、ESCAPE復元処理部16に引き渡す。
【0056】
ESCAPE復元処理16では、ESCデータの有無をチェックし(ステップS32)、ESCデータ有の場合には、周辺装置5にてKB通信プロトコル仕様で送信不可能なデータを送信するためにESCAPE処理が施されたESCAPEレスポンスデータを復元する(ステップS33)。
【0057】
そして、レスポンス復元処理部15にてESCデータのその後の2つの分解および変換されたレスポンスデータから本来のデータを復元し、復元したデータをレスポンスデータとして保存する(ステップS34)。
【0058】
ESCAPEデータではない場合には、そのデータはレスポンスデータであるため、そのままレスポンスデータとして保存する(ステップS35)。レスポンス受信部11はレスポンスの全データの受信を完了するまで、ステップS31ないしステップS35の処理を繰り返す。
【0059】
図10は、制御部1のレスポンス受信部11にて処理されるレスポンスデータの変換の一例である。
【0060】
35は、図8のKBファンクションのパラメータデータ34に相当しKBファンクション処理部17が受信するデータであり、36はKBファンクション処理部17にてKBファンクションコードRspYを取り除いた分解レスポンスデータを示し、37はESCAPE復元処理部16にてESCAPE復元処理が施され、さらにレスポンス復元処理部15で復元されたレスポンスデータを示し、35、36、37の順に処理される。
【0061】
すなわち、KBファンクション処理部17が受け取った、RspY+ESC(35a)、RspY+R2a(35b)、RspY+R2b(35c)が、KBファンクション処理部17にてKBファンクションコードRspYを取り除かれ、ESC・R2a・R2b(36a)に復元され、ESCAPE処復元処理部16およびレスポンス復元処理部15にて分解レスポンスデータR2(37a)に復元された後、元のレスポンスデータに復元される。
【0062】
(実施例1の効果)
以上詳細に述べたように、実施例1のKBインタフェースシステムによれば、上位装置に、周辺装置を制御するコマンドデータをKBファンクションのパラメータデータに分解し所定のコードを付加してKBファンクションのデータとして送信するコマンド送信部と、当該周辺装置からKBファンクションのデータに分解されたレスポンスデータを復元するレスポンス受信部を設け、前記周辺装置に、前記上位装置からKBファンクションデータとして送信されたコマンドデータを復元するコマンド受信部と、前記レスポンスデータをKBファンクションのパラメータデータに分解し所定のコードを付加してKBファンクションデータとして返信するレスポンス送信部を設けたので、OSが提供するKBドライバを変更することなく、当該上位装置にてKBインタフェースに接続された異なった当該周辺装置を制御することができる。
【実施例2】
【0063】
(構成)
図11は、実施例2のKBインタフェースシステムのブロック図である。同図に示したように、実施例2のKBインタフェースシステムにおけるPC7側のレスポンス受信部11は、周辺装置5よりKBインタフェース4を介してキーコードに分割および変換され通知されてくるレスポンスデータを、キーコードとして受信するキーコードHOOK処理部39と、受信したキーコードから分割レスポンスデータを復元するためのデータ復元処理部38と、復元した分割レスポンスデータから元のレスポンスデータを復元するレスポンス復元処理部15aから構成される。
【0064】
例えば、レスポンス受信部11では、周辺装置5がレスポンスデータとして後述する23、56、74、80、91を送信する場合、存在する2、3、5、6、7、4、8、0、9、1の刻印されたキーが押下され、キーコードに変換されたものとして送信されてくるデータ列から、元のデータである23、56、74、80、91を復元する復元処理を行う。
【0065】
また、周辺装置5側のレスポンス送信部19は、レスポンスデータをキーコードに分割して制御部1の周辺装置制御プログラム8に送信するために、レスポンスデータをキーコードとして送信可能なサイズに分割するレスポンス分割処理部25aと、分割したレスポンスデータ(以後「分割レスポンスデータ」という)をキーコードに変換するためのキーコード変換処理部41と、変換したキーコードを送信するためのキーコード送出処理部40とから構成される。
【0066】
例えば、レスポンス送信部19では、前述したように周辺装置5にてKBのキーを押下したときの分割レスポンスデータとして23、56、74、80、91を送信する場合、物理的なキーコードとして23、56、74、80、91は存在せずそのままでは送信できないので、存在する2、3、5、6、7、4、8、0、9、1の刻印されたキーが押下されたものとして送信データを生成し、キーコードに変換して送信する処理を行う。
【0067】
その他の構成については、実施例1のKBインタフェースシステムと同様であるので簡略化のためにその詳細な説明を省略する。
【0068】
(動作)
以上の構成により、実施例2のKBインタフェースシステムは、以下のように動作する。本動作を図12ないし図15を用いて以下説明する。
【0069】
PC7における制御部1から周辺装置5へ送信されるコマンドデータの処理および周辺装置5における当該コマンドデータの受信処理については、実施例1と同様であるので簡略化のためにその詳細な説明を省略する。
【0070】
(周辺装置からの返信動作)
まず、周辺装置5から制御部1へのレスポンスデータの送信処理の一例を図12の処理フローを用いて説明する。
【0071】
レスポンスデータが周辺装置5の通信処理部9のレスポンス送信部19に渡され、レスポンスデータの送信処理が開始されると、まず、レスポンス分割処理部25aにてレスポンスデータをキーコードとして送信可能なサイズに分割する(ステップS41)。
【0072】
続いて、キーコード変換処理部41で、分割レスポンスデータをキーコードに変換し(ステップS42)、変換されたキーコードをキーコード送出処理部40に引き渡し(ステップS43)、キーコードを制御部1に送信する。
【0073】
分割したレスポンスデータ全てについて、未処理の分割レスポンスデータが無くなるまで以上のステップS42およびステップS43を繰り返す(ステップS44)。
【0074】
図13は、周辺装置5のレスポンス送信部19にて処理されるレスポンスデータの変換の一例である。
【0075】
42は、PC7に返信するためにレスポンス分割処理部25aにて分割された分割レスポンスデータを示し、43はキーコードとして送信可能なサイズにさらに分割された分割レスポンスデータを示し、44はキーコード変換処理部41にてキーコードに変換処理され、キーコード送出処理部40にてパラメータデータとして送信する際のレスポンスデータを示し、矢印のように、42、43、44の順で処理される。
【0076】
ここで、R1(42a)は、レスポンス分割処理部25aにてR1a・R1b(43a)の2つのレスポンスデータに分割され、キーコード変換処理部41にてRk1a(44a)、Rk1b(44b)にキーコード変換され、キーコード送出処理部40より制御部1の周辺装置制御プログラム8に送信される。その他の分割レスポンスデータも同様に処理される。
【0077】
(PC側の受信動作)
次に、周辺装置5から送信されたレスポンスデータを受け取る制御部1のレスポンス受信処理の一例を図14の処理フローを用いて説明する。
【0078】
まず、PC7のレスポンス受信部15が周辺装置5から前述のキーコード列44を受信すると、キーコードHOOK処理部39がキーコードデータを受け取り(ステップS51)、そのキーコードデータをデータ復元処理部38に引き渡す。
【0079】
データ復元処理部38では、キーコード2つに対して1つの分割レスポンスデータに復元するため、最初に2つキーコードを受け取ったか否かチェックする(ステップS52)。
【0080】
2つキーコードを受け取った場合には、データ復元処理部38にて当該2つのキーコードから1つの分割レスポンスデータを復元し(ステップS53)、その復元した分割レスポンスデータをレスポンス復元処理部15aにてレスポンスデータに復元して保存する(ステップS54)。
【0081】
2つキーコード受け取っていない場合には、そのキーコードデータを一時保存し(ステップS55)、もう1つキーコードを受信した後に復元処理を実施する。
【0082】
図15は、PC7の制御部1のレスポンス受信部11にて処理されるレスポンスデータの変換の一例である。
【0083】
45は図13のキーコードデータ44に相当しキーコードHOOK処理部39が受信したキーコードデータを示し、46はデータ復元処理部38で2つのキーコードから1つの分割レスポンスデータに復元したデータを示し、47はレスポンス復元処理部15で復元された分割レスポンスデータを示し、45、46、47の順に変換処理される。
【0084】
同図において、Rk1a(45a)とRk1b(45b)とはレスポンスの分割データR1(42a)から分割および変換された2つのキーコードであり、その分割および変換されたキーコードがデータ復元処理部38にてR1a+R1b(46a)の分割レスポンスデータに復元され、レスポンス復元処理部15aにて分割レスポンスデータR1(47a)に復元された後、元のレスポンスデータに復元される。他のレスポンスデータも同様に処理される。
【0085】
なお、実施例2においては2つのキーコードに分割・復元するようにしたが、分割・復元サイズは3つ以上のコードとしてもよい。
【0086】
(実施例2の効果)
以上詳細に述べたように、実施例2のKBインタフェースシステムによれば、周辺装置に、レスポンスデータを分割してキーコードに変換しキーコードとして上位装置に送信するレスポンス送信部を設け、前記上位装置に、前記周辺装置からの前記レスポンスデータを復元するレスポンス受信部を設けたので、OSが提供するKBドライバを変更することなく、上位装置にてKBインタフェースに接続された異なった周辺装置を制御することができる。
【産業上の利用可能性】
【0087】
以上述べたように、本発明は、KBインタフェースを介して接続されたPC等の上位装置と周辺装置等からなるKBインタフェースシステムに広く用いることができる。
【図面の簡単な説明】
【0088】
【図1】実施例1のKBインタフェースを介して接続されたPCと周辺装置の通信制御処理のブロック図である。
【図2】実施例1のKBインタフェースに周辺装置を接続したシステムのブロック図である。
【図3】実施例1のコマンド送信部のコマンドデータ送信処理フロー図である。
【図4】実施例1のコマンド送信部のコマンドデータ処理によるデータの変換図である。
【図5】実施例1のコマンド受信部のコマンドデータ受信処理フロー図である。
【図6】実施例1のコマンド受信部のコマンドデータ処理によるデータの変換図である。
【図7】実施例1の実施例1のレスポンス送信部のレスポンスデータ送信処理フロー図である。
【図8】実施例1のレスポンス送信部のレスポンスデータ処理によるデータの変換図である。
【図9】実施例1のレスポンス受信部のレスポンスデータ受信処理フロー図である。
【図10】実施例1のレスポンス受信部のレスポンスデータ処理によるデータの変換図である。
【図11】実施例2のKBインタフェースを介して接続されたPCと周辺装置の通信制御処理のブロック図である。
【図12】実施例2のレスポンス送信部のレスポンスデータ送信処理フロー図である。
【図13】実施例2のレスポンス送信部のレスポンスデータ処理によるデータの変換図である。
【図14】実施例2のレスポンス受信部のレスポンスデータ受信処理フロー図である。
【図15】実施例2のレスポンス受信部のレスポンスデータ処理によるデータの変換図である。
【符号の説明】
【0089】
1 制御部
2 OS
3 KBドライバ
4 KBインタフェース
5 周辺装置
7 PC
10 コマンド送信部
11 レスポンス受信部
18 コマンド受信部
19 レスポンス送信部
【技術分野】
【0001】
本発明は、上位装置であるパーソナルコンピュータ(以下「PC」という)のキーボードインタフェースを用いて接続されたキーボード(以下「KB」という)等の周辺装置をPCより制御する技術に関する。
【背景技術】
【0002】
従来、PCのKBインタフェースに接続されるKB等の周辺装置の制御は、KB通信プロトコルにそれぞれの周辺装置特有の制御コマンドを追加して制御するようにしている。このため、KBインタフェースに接続する周辺装置の開発のほかに、PCのオペレーティングシステム(以下、「OS」という)が提供するKBドライバもコマンドの拡張等の変更をする必要があった。(例えば、特許文献1参照)。
【特許文献1】特開2002−140152号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、上記従来のKB通信プロトコルにおけるコマンドを拡張する方法では、PCのOSが提供するドライバを変更するスキル等も必要となり、当該システム構築を容易に行うことができなかった。
【課題を解決するための手段】
【0004】
本発明は、前述の課題を解決するため次の方法を採用する。すなわち、上位装置と周辺装置をキーボードインタフェースにて接続して制御するキーボードインタフェース制御方法であって、キーボードファンクションのパラメータデータとして定義されないコマンドデータまたはレスポンスデータを送信するときに、キーボードファンクションのパラメータデータとして定義されたデータまでに分解するとともに分解したときは所定のコードを付加し、キーボードファンクションのデータとして送信するようにした。
【発明の効果】
【0005】
本発明のKBインタフェースシステムによれば、キーボードファンクションのパラメータデータとして定義されないコマンドデータまたはレスポンスデータを送信するときに、キーボードファンクションのパラメータデータとして定義されたデータまでに分解するとともに分解したときは所定のコードを付加し、キーボードファンクションのデータとして送信するようにしたので、オペレーティングシステムが提供するキーボードドライバを変更することなく、上位装置にてキーボードインタフェースに接続された異なった周辺装置を制御することができる。
【発明を実施するための最良の形態】
【0006】
以下、本発明に係わる実施の形態例を、図面を用いて説明する。図面に共通する要素には同一の符号を付す。
【実施例1】
【0007】
(構成)
図2は実施例1のKBインタフェースシステムのブロック図である。同図に示したように、KBインタフェースシステムは、制御部1、周辺装置制御プログラム8、OS(2)およびKBドライバ3から構成された上位装置であるPC7と、通信処理部9、KB通信プロトコル処理部6、コマンド受信部18およびレスポンス送信部19から構成された周辺装置5がKBインタフェース4によって接続された構成となっている。
【0008】
PC7を構成する制御部1は、周辺装置制御プログラム8にてKBインタフェース4に接続された周辺装置5および各部の制御を行うものであり、周辺装置制御プログラム8はKBインタフェース4に接続された周辺装置5とコマンド/レスポンスの送受信を制御するためのプログラムである。
【0009】
同様に、PC7を構成するOS(2)は制御部1のPC上で稼動するWindows(登録商標)などのオペレーティングシステムであり、KBドライバ3は、OS(2)が提供するKB通信プロトコルを実装しKBインタフェース4に接続された周辺装置5とデータの送受信を行うものである。
【0010】
一方、周辺装置5を構成する通信処理部9はPC7を制御する制御部1との通信処理を行う機能を有し、KB通信プロトコル処理部6は制御部1のKBドライバ3との間でデータの送受信を行う周辺装置5のKB通信プロトコルの処理を行う機能を有するものである。
【0011】
次に、図1のさらに詳細なKBインタフェースシステムの構成図を用いて、各構成を説明する。同図において、前述の周辺装置制御プログラム8は、コマンド送信部10とレスポンス受信部11から構成される。
【0012】
(PC側の構成)
同図左側のコマンド送信部10は、OS(2)が提供するKBドライバ3がサポートするKB制御用KBファンクションのパラメータデータを使用して、周辺装置5に分解および変換したコマンドデータを送る機能を有するものである。
【0013】
このコマンド送信部10は、同図に示したように、前記パラメータデータのサイズに合わせて前記コマンドデータを分解するためのコマンド分解処理部12と、コマンド分解処理部12にて分解されたコマンドデータ(以下、「分解コマンドデータ」という)において、KB通信プロトコル仕様として送信不可能な分解コマンドデータを送信可能な分解コマンドデータにするためにデータの追加と分解および変換するESCAPE処理を施すESCAPE処理部13と、ESCAPE処理を施した分解コマンドデータ「以下、「ESCAPEコマンドデータ」という」とKBファンクションコードをセットしてKBドライバ3に引き渡すためのKBファンクション処理部14から構成される。
【0014】
ここで、前記送信不可能な分解コマンドデータとは、制御部1から周辺装置5に送信するコマンドのデータ列のうちKBファンクションのパラメータデータとして定義されていないデータのことをいう。
【0015】
そして、例えば、制御部1から周辺装置5に送信する分解コマンドのデータ列として、01、34、23、56、35、55が送信される場合で、KBインタフェース4で56という値が定義されていない場合では、56という値を送信するときに、コマンド分解処理部12にて05と06に分解および変換し、さらに、通常の05、06とを識別するためにESCAPE処理部13により所定のコード(ESC)を先頭につけて送信する。すなわち、ESCを99とすると、56のデータは99、05、06というデータとして送信するように処理される。
【0016】
そして、KBファンクション処理部14にて、KBを制御することを表すファンクションコードFuncXとして例えば77をそれぞれのデータの先頭につけ、77、99、77、05、77、06として周辺装置5の1つであるKBに送信することになる。
【0017】
一方、右側のレスポンス受信部11は、後述する周辺装置5のレスポンス送信部19にて生成された、KBドライバ3がサポートするKB制御用KBファンクションのレスポンスのパラメータデータを受け取るための機能を有するものである。
【0018】
このレスポンス受信部11は、前記レスポンスのパラメータデータを受信しKBファンクションコードを取り除くためのKBファンクション処理部17と、後述する周辺装置5のESCAPE処理部24にてKBインタフェースとして送信不可能なデータを送るためにESCAPE処理を施されたレスポンスデータを復元するためのESCAPE復元処理部16と、ESCAPE復元処理部16で復元したデータからレスポンスデータを復元するレスポンス復元処理部15とから構成される。
【0019】
レスポンス受信部11では、例えば、後述する周辺装置5からレスポンスデータの例として88、99、88、05、88、06が送信されてきた場合、KBファンクション処理部17にて各先頭のKBファンクションデータRspYである88をKBファンクションコードとして認識してこれを取り除き、99、05、06のデータとし、ESCAPE復元処理部16にてESCコードである99を識別して、レスポンス復元処理部15にて56というデータに合成して復元する処理を行う。
【0020】
(周辺装置の構成)
周辺装置5を構成する通信処理部9は、前述のように、KBインタフェース4にて周辺装置5を制御するPC7の制御部1とKB通信プロトコル仕様に従ったコマンド/レスポンスの送受信を行うKB通信プロトコル処理部6と、KB通信プロトコル処理部6を介してコマンド送信部10より送信されたKBファンクションのパラメータデータを受信する同図左側のコマンド受信部18と、KB制御用KBファンクションのレスポンスデータのパラメータデータを使用してPC7の制御部1にレスポンスデータを返信する同図右側のレスポンス送信部19とからなる。
【0021】
同図左側のコマンド受信部18は、前記パラメータデータを受信しKBファンクションコードを取り除くためのKBファンクション処理部20と、制御部1のESCAPE処理部13にて生成されたESCAPEコマンドデータを復元するためのESCAPE復元処理部21と、ESCAPEコマンドデータからコマンドデータを復元するコマンド復元処理部22とから構成される。
【0022】
コマンド受信部18では、例えば、前述のPC7からコマンドデータ列の例として、77、99、77、05、77、06が送信されてきた場合、KBファンクション処理部20にて各先頭のKBファンクションデータFuncXである77をKBファンクションコードとして識別してこれを取り除き、99、05、06のデータとし、ESCAPE復元処理部21にて、ESCコードである99を識別して、コマンド復元処理部22にて、56というデータに合成して復元する処理を行う。
【0023】
一方、同図右側のレスポンス送信部19は、前記パラメータデータのサイズに合わせてレスポンスデータを分解するためのレスポンス分解処理部25と、レスポンス分解処理部25にて分解されたレスポンスデータ(以下、「分解レスポンスデータ」という)において、KB通信プロトコル仕様で送信不可能な分解レスポンスデータを送信可能な分解レスポンスデータにデータの追加と分解および変換するESCAPE処理を施すESCAPE処理部24と、ESCAPE処理を施した分解レスポンスデータ(以下「ESCAPEレスポンスデータ」という)を送信に使用するKBファンクションコードをセットしてKB通信プロトコル処理部6に引き渡すためのKBファンクション処理部23とから構成される。
【0024】
ここで、前記送信不可能な分解レスポンスデータとは、周辺装置5から制御部1に送信するレスポンスのデータ列のうちKBファンクションのパラメータデータとして定義されていないデータのことをいう。
【0025】
そして、例えば、周辺装置5から制御部1に送信するレスポンスデータの例として01、34、23、56、35、55が送信される場合で、KBインタフェース4で56という値が定義されていない場合では、56という値を送信するときに、レスポンス分解処理部25にて05と06に分解および変換し、さらに、通常の05、06とを識別するためにESCAPE処理部24により所定のコード(ESC)を先頭につけて送信する。すなわち、ESCを99とすると、56のデータは99、05、06というデータとして送信するように処理される。
【0026】
そして、KBファンクション処理部23にて、KBを制御することを表すファンクションコードRspYとして例えば88をそれぞれのデータの先頭につけ、88、99、88、05、88、06として周辺装置5の1つであるKBに送信することになる。
【0027】
(動作)
以上の構成により、実施例1のKBインタフェースを用いた周辺装置制御通信プロトコルは、以下のように動作する。本動作を図3ないし図10を用いて以下詳細に説明する。
【0028】
(PC側の送信動作)
まず、制御部1から周辺装置5へ、コマンドデータを送信する処理の一例を図3の処理フローを用いて説明する。
【0029】
所望とされるコマンドデータが、周辺装置制御プログラム8のコマンド送信部10に引き渡され、コマンドデータの送信処理が開始されると、コマンド分解処理部12で送信に使用するコマンドデータをKBファンクションのパラメータデータのサイズに合わせて分解する(ステップS1)。
【0030】
次に、ESCAPE処理部13にて、KB通信プロトコル仕様上送信可能なデータか否かを判断し(ステップS2)、送信不可能な分解コマンドデータの場合にはESCAPE処理部13にてESCAPE処理を実施する(ステップS3)。
【0031】
そして、ESCAPE処理部13にてESCデータの追加と分解および変換するESCAPE処理を施した分解コマンドデータ(すなわちESCAPEコマンドデータ)とESCAPE処理を施していない分解コマンドデータに対し、KBファンクションコードをセットして、KBファンクション処理部14にてKBファンクションのパラメータデータとして周辺装置5に送信する(ステップS4)。
【0032】
そして、分解したコマンドデータ全てについて、未処理の分解コマンドデータが無くなるまで以上のステップS2ないしステップS4を繰り返す(ステップS5)。
【0033】
図4は、コマンド送信部10におけるコマンドデータの変換の一例を示した図である。26はKB通信プロトコル仕様上送信不可能な分解コマンドデータ(26a)と送信可能な分解コマンドデータを示し、27はESCAPEコマンドデータ(27a)と、ESCAPE処理を施していない分解コマンドデータを示し、28はKBファンクション処理部14にてESCAPEコマンドデータ(28aないし28c)とESCAPE処理を施していない分解コマンドデータ28にKBファンクションコードをセットして送信する際のデータを示している。
【0034】
すなわち、同図の矢印のように、周辺装置5に送信しようとする分解コマンドデータ26が、ESCAPEコマンドデータ(27a)とESCAPE処理を施していない分解コマンドデータ27に変換され、KBファンクションコードをセットしたコマンドデータ28の順に処理される。
【0035】
ここで、コマンド分解処理部12にて分解されたコマンドデータの1つであるC3(26a)はそのままでは送信できないので、ESCAPE処理部13にてESCデータの追加とC3をさらにC3aとC3bに分解および変換した3つのデータESC+C3a+C3b(27a)をKBファンクション処理部14に引き渡す。
【0036】
そして、KBファンクション処理部14では、KBファンクションのパラメータデータとして送信する際のデータであるESCAPEコマンドデータにKBファンクションコードをセットした、FuncX+ESC(28a)、FuncX+C3a(28b)、FuncX+C3b(28c)として、KBインタフェース4を介して周辺装置5に送信する。
【0037】
(周辺装置の受信動作)
次に、制御部1から送信されてきたパラメータデータを受信する周辺装置5のコマンドデータ受信処理の一例を図5の処理フローを用いて説明する。
【0038】
まず、周辺装置5は、PC7から前述のコマンドデータ列28を受信すると、KBファンクション処理部20にて当該コマンドデータを取り出し(ステップS11)、ESCAPE復元処理部21に引き渡す。
【0039】
ESCAPE復元処理部21では、ESCデータの有無をチェックし(ステップS12)、ESCデータ有の場合には、制御部1にてKB通信プロトコルの仕様上送信不可能なデータを送信するためにESCAPE処理が施されたデータと判断し、ESCAPEコマンドデータを復元する(ステップS13)。
【0040】
そして、コマンド復元処理部22にてESCデータのその後の2つの分解および変換されたコマンドデータから本来のデータを復元し、復元したデータをコマンドデータとして保存する(ステップS14)。
【0041】
ESCAPEコマンドデータでない場合には、そのデータはKB通信プロトコルの仕様上送信可能なコマンドデータであるため、そのままコマンドデータとして保存する(ステップS15)。コマンド受信部18は、コマンドの全データの受信を完了するまでステップS11ないしステップS15の処理を繰り返す。
【0042】
図6は、周辺装置5のコマンド受信部18にて処理されるコマンドデータの変換の一例である。
【0043】
29は、図4のKBファンクションのパラメータデータ28に相当し、KBファンクション処理部20が受信するデータであり、30は、KBファンクション処理部20にてKBファンクションコードFuncXを取り除いた分解コマンドデータを示し、31は、ESCAPE復元処理部21にてESCAPE復元処理が施され、さらにコマンド復元処理部22で復元されたコマンドデータを示し、29、30、31の順に処理される。
【0044】
すなわち、KB通信プロトコルの仕様上送信不可能な分解コマンドデータC3(26a)は、周辺装置5が受信するFuncX+ESC(29a)、FuncX+C3a(29b)、FuncX+C3b(29c)として受信し、KBファンクション処理部20にてKBファンクションコードを取り除かれて、ESC・C3a・C3b(30a)に復元処理され、ESCAPE処復元処理部21およびコマンド復元処理部22にて分解コマンドデータC3(31a)に復元された後、元のコマンドデータに復元される。その他のコマンドデータも同図に示したように同様に復元される。
【0045】
(周辺装置の返信動作)
次に、周辺装置5から制御部1へレスポンスデータを返信する返信処理の一例を、図7の動作フローチャートを用いて説明する。
【0046】
通信処理部9のレスポンス送信部19から所望とするレスポンスデータの送信処理が開始されると、まず、レスポンス分解処理部25にてデータ送信に使用するKBファンクションのレスポンスデータをパラメータデータのサイズに合わせて分解する(ステップS21)。
【0047】
そして、ESCAPE処理部24にてKB通信プロトコル仕様上送信可能なデータか否かを判断し(ステップS22)、送信不可能な分解レスポンスデータの場合はESCAPE処理部24にてESCデータの追加と分解および変換を行うESCAPE処理を施した後、KBファンクション処理部23に引き渡す(ステップS23)。
【0048】
KBファンクション処理部23では、KB通信プロトコル処理部6から送信されてくるレスポンスデータ返却用のKBファンクションを待ち(ステップS24)、KBファンクションを受信するとESCAPEレスポンスデータとESCAPE処理を施していないデータに対し、KBファンクションコードをセットし制御部1に送信する(ステップS25)。
【0049】
分解したレスポンスデータ全てについて、未処理の分解レスポンスデータが無くなるまで以上のステップS22ないしステップS25を繰り返す(ステップS26)。
【0050】
図8は、周辺装置5のレスポンス送信部19にて処理されるレスポンスデータの変換の一例である。
【0051】
32は分解レスポンスデータを示し、33は送信不可能な分解レスポンスデータをESCAPE処理部24にてESCデータの追加と分解および変換するESCAPE処理を施したレスポンスデータ、すなわちESCAPEレスポンスデータ(33a)とESCAPE処理を施していない分解レスポンスデータを示し、34はKBファンクション処理部23にてESCAPEレスポンスデータおよびESCAPE処理を施されていない分解レスポンスデータに、KBファンクションコードをセットして送信する際のデータを示しており、矢印で示したように32、33、34の順で処理される。
【0052】
同図において、レスポンス分解処理部25にて分解レスポンスデータであるR2(32a)は送信不可能なデータであるためそのままでは送信できず、ESCAPE処理部24にてESCデータの追加とR2をさらにR2aとR2bに分解および変換した3つのデータESC+R2a+R2b(33a)をKBファンクション処理部23に引き渡す。
【0053】
そして、KBファンクション処理部23でKBファンクションのパラメータデータとして送信する際のデータであるESCAPEレスポンスデータにKBファンクションコードをセットした、RspY+ESC(34a)、RspY+R2a(34b)、RspY+R2b(34c)としてKBインタフェース4を介して制御部1に送信する。
【0054】
(PC側の受信動作)
次に、周辺装置5から送信されたパラメータデータを受信する制御部1のレスポンスデータ受信処理の一例を、図9の処理フローを用いて説明する。
【0055】
レスポンス受信部11のKBファンクション処理部17にて、周辺装置5から前述のレスポンスデータ34列を受信すると、パラメータデータとして設定されたESCAPEレスポンスデータを取り出し(ステップS31)、ESCAPE復元処理部16に引き渡す。
【0056】
ESCAPE復元処理16では、ESCデータの有無をチェックし(ステップS32)、ESCデータ有の場合には、周辺装置5にてKB通信プロトコル仕様で送信不可能なデータを送信するためにESCAPE処理が施されたESCAPEレスポンスデータを復元する(ステップS33)。
【0057】
そして、レスポンス復元処理部15にてESCデータのその後の2つの分解および変換されたレスポンスデータから本来のデータを復元し、復元したデータをレスポンスデータとして保存する(ステップS34)。
【0058】
ESCAPEデータではない場合には、そのデータはレスポンスデータであるため、そのままレスポンスデータとして保存する(ステップS35)。レスポンス受信部11はレスポンスの全データの受信を完了するまで、ステップS31ないしステップS35の処理を繰り返す。
【0059】
図10は、制御部1のレスポンス受信部11にて処理されるレスポンスデータの変換の一例である。
【0060】
35は、図8のKBファンクションのパラメータデータ34に相当しKBファンクション処理部17が受信するデータであり、36はKBファンクション処理部17にてKBファンクションコードRspYを取り除いた分解レスポンスデータを示し、37はESCAPE復元処理部16にてESCAPE復元処理が施され、さらにレスポンス復元処理部15で復元されたレスポンスデータを示し、35、36、37の順に処理される。
【0061】
すなわち、KBファンクション処理部17が受け取った、RspY+ESC(35a)、RspY+R2a(35b)、RspY+R2b(35c)が、KBファンクション処理部17にてKBファンクションコードRspYを取り除かれ、ESC・R2a・R2b(36a)に復元され、ESCAPE処復元処理部16およびレスポンス復元処理部15にて分解レスポンスデータR2(37a)に復元された後、元のレスポンスデータに復元される。
【0062】
(実施例1の効果)
以上詳細に述べたように、実施例1のKBインタフェースシステムによれば、上位装置に、周辺装置を制御するコマンドデータをKBファンクションのパラメータデータに分解し所定のコードを付加してKBファンクションのデータとして送信するコマンド送信部と、当該周辺装置からKBファンクションのデータに分解されたレスポンスデータを復元するレスポンス受信部を設け、前記周辺装置に、前記上位装置からKBファンクションデータとして送信されたコマンドデータを復元するコマンド受信部と、前記レスポンスデータをKBファンクションのパラメータデータに分解し所定のコードを付加してKBファンクションデータとして返信するレスポンス送信部を設けたので、OSが提供するKBドライバを変更することなく、当該上位装置にてKBインタフェースに接続された異なった当該周辺装置を制御することができる。
【実施例2】
【0063】
(構成)
図11は、実施例2のKBインタフェースシステムのブロック図である。同図に示したように、実施例2のKBインタフェースシステムにおけるPC7側のレスポンス受信部11は、周辺装置5よりKBインタフェース4を介してキーコードに分割および変換され通知されてくるレスポンスデータを、キーコードとして受信するキーコードHOOK処理部39と、受信したキーコードから分割レスポンスデータを復元するためのデータ復元処理部38と、復元した分割レスポンスデータから元のレスポンスデータを復元するレスポンス復元処理部15aから構成される。
【0064】
例えば、レスポンス受信部11では、周辺装置5がレスポンスデータとして後述する23、56、74、80、91を送信する場合、存在する2、3、5、6、7、4、8、0、9、1の刻印されたキーが押下され、キーコードに変換されたものとして送信されてくるデータ列から、元のデータである23、56、74、80、91を復元する復元処理を行う。
【0065】
また、周辺装置5側のレスポンス送信部19は、レスポンスデータをキーコードに分割して制御部1の周辺装置制御プログラム8に送信するために、レスポンスデータをキーコードとして送信可能なサイズに分割するレスポンス分割処理部25aと、分割したレスポンスデータ(以後「分割レスポンスデータ」という)をキーコードに変換するためのキーコード変換処理部41と、変換したキーコードを送信するためのキーコード送出処理部40とから構成される。
【0066】
例えば、レスポンス送信部19では、前述したように周辺装置5にてKBのキーを押下したときの分割レスポンスデータとして23、56、74、80、91を送信する場合、物理的なキーコードとして23、56、74、80、91は存在せずそのままでは送信できないので、存在する2、3、5、6、7、4、8、0、9、1の刻印されたキーが押下されたものとして送信データを生成し、キーコードに変換して送信する処理を行う。
【0067】
その他の構成については、実施例1のKBインタフェースシステムと同様であるので簡略化のためにその詳細な説明を省略する。
【0068】
(動作)
以上の構成により、実施例2のKBインタフェースシステムは、以下のように動作する。本動作を図12ないし図15を用いて以下説明する。
【0069】
PC7における制御部1から周辺装置5へ送信されるコマンドデータの処理および周辺装置5における当該コマンドデータの受信処理については、実施例1と同様であるので簡略化のためにその詳細な説明を省略する。
【0070】
(周辺装置からの返信動作)
まず、周辺装置5から制御部1へのレスポンスデータの送信処理の一例を図12の処理フローを用いて説明する。
【0071】
レスポンスデータが周辺装置5の通信処理部9のレスポンス送信部19に渡され、レスポンスデータの送信処理が開始されると、まず、レスポンス分割処理部25aにてレスポンスデータをキーコードとして送信可能なサイズに分割する(ステップS41)。
【0072】
続いて、キーコード変換処理部41で、分割レスポンスデータをキーコードに変換し(ステップS42)、変換されたキーコードをキーコード送出処理部40に引き渡し(ステップS43)、キーコードを制御部1に送信する。
【0073】
分割したレスポンスデータ全てについて、未処理の分割レスポンスデータが無くなるまで以上のステップS42およびステップS43を繰り返す(ステップS44)。
【0074】
図13は、周辺装置5のレスポンス送信部19にて処理されるレスポンスデータの変換の一例である。
【0075】
42は、PC7に返信するためにレスポンス分割処理部25aにて分割された分割レスポンスデータを示し、43はキーコードとして送信可能なサイズにさらに分割された分割レスポンスデータを示し、44はキーコード変換処理部41にてキーコードに変換処理され、キーコード送出処理部40にてパラメータデータとして送信する際のレスポンスデータを示し、矢印のように、42、43、44の順で処理される。
【0076】
ここで、R1(42a)は、レスポンス分割処理部25aにてR1a・R1b(43a)の2つのレスポンスデータに分割され、キーコード変換処理部41にてRk1a(44a)、Rk1b(44b)にキーコード変換され、キーコード送出処理部40より制御部1の周辺装置制御プログラム8に送信される。その他の分割レスポンスデータも同様に処理される。
【0077】
(PC側の受信動作)
次に、周辺装置5から送信されたレスポンスデータを受け取る制御部1のレスポンス受信処理の一例を図14の処理フローを用いて説明する。
【0078】
まず、PC7のレスポンス受信部15が周辺装置5から前述のキーコード列44を受信すると、キーコードHOOK処理部39がキーコードデータを受け取り(ステップS51)、そのキーコードデータをデータ復元処理部38に引き渡す。
【0079】
データ復元処理部38では、キーコード2つに対して1つの分割レスポンスデータに復元するため、最初に2つキーコードを受け取ったか否かチェックする(ステップS52)。
【0080】
2つキーコードを受け取った場合には、データ復元処理部38にて当該2つのキーコードから1つの分割レスポンスデータを復元し(ステップS53)、その復元した分割レスポンスデータをレスポンス復元処理部15aにてレスポンスデータに復元して保存する(ステップS54)。
【0081】
2つキーコード受け取っていない場合には、そのキーコードデータを一時保存し(ステップS55)、もう1つキーコードを受信した後に復元処理を実施する。
【0082】
図15は、PC7の制御部1のレスポンス受信部11にて処理されるレスポンスデータの変換の一例である。
【0083】
45は図13のキーコードデータ44に相当しキーコードHOOK処理部39が受信したキーコードデータを示し、46はデータ復元処理部38で2つのキーコードから1つの分割レスポンスデータに復元したデータを示し、47はレスポンス復元処理部15で復元された分割レスポンスデータを示し、45、46、47の順に変換処理される。
【0084】
同図において、Rk1a(45a)とRk1b(45b)とはレスポンスの分割データR1(42a)から分割および変換された2つのキーコードであり、その分割および変換されたキーコードがデータ復元処理部38にてR1a+R1b(46a)の分割レスポンスデータに復元され、レスポンス復元処理部15aにて分割レスポンスデータR1(47a)に復元された後、元のレスポンスデータに復元される。他のレスポンスデータも同様に処理される。
【0085】
なお、実施例2においては2つのキーコードに分割・復元するようにしたが、分割・復元サイズは3つ以上のコードとしてもよい。
【0086】
(実施例2の効果)
以上詳細に述べたように、実施例2のKBインタフェースシステムによれば、周辺装置に、レスポンスデータを分割してキーコードに変換しキーコードとして上位装置に送信するレスポンス送信部を設け、前記上位装置に、前記周辺装置からの前記レスポンスデータを復元するレスポンス受信部を設けたので、OSが提供するKBドライバを変更することなく、上位装置にてKBインタフェースに接続された異なった周辺装置を制御することができる。
【産業上の利用可能性】
【0087】
以上述べたように、本発明は、KBインタフェースを介して接続されたPC等の上位装置と周辺装置等からなるKBインタフェースシステムに広く用いることができる。
【図面の簡単な説明】
【0088】
【図1】実施例1のKBインタフェースを介して接続されたPCと周辺装置の通信制御処理のブロック図である。
【図2】実施例1のKBインタフェースに周辺装置を接続したシステムのブロック図である。
【図3】実施例1のコマンド送信部のコマンドデータ送信処理フロー図である。
【図4】実施例1のコマンド送信部のコマンドデータ処理によるデータの変換図である。
【図5】実施例1のコマンド受信部のコマンドデータ受信処理フロー図である。
【図6】実施例1のコマンド受信部のコマンドデータ処理によるデータの変換図である。
【図7】実施例1の実施例1のレスポンス送信部のレスポンスデータ送信処理フロー図である。
【図8】実施例1のレスポンス送信部のレスポンスデータ処理によるデータの変換図である。
【図9】実施例1のレスポンス受信部のレスポンスデータ受信処理フロー図である。
【図10】実施例1のレスポンス受信部のレスポンスデータ処理によるデータの変換図である。
【図11】実施例2のKBインタフェースを介して接続されたPCと周辺装置の通信制御処理のブロック図である。
【図12】実施例2のレスポンス送信部のレスポンスデータ送信処理フロー図である。
【図13】実施例2のレスポンス送信部のレスポンスデータ処理によるデータの変換図である。
【図14】実施例2のレスポンス受信部のレスポンスデータ受信処理フロー図である。
【図15】実施例2のレスポンス受信部のレスポンスデータ処理によるデータの変換図である。
【符号の説明】
【0089】
1 制御部
2 OS
3 KBドライバ
4 KBインタフェース
5 周辺装置
7 PC
10 コマンド送信部
11 レスポンス受信部
18 コマンド受信部
19 レスポンス送信部
【特許請求の範囲】
【請求項1】
上位装置と周辺装置をキーボードインタフェースにて接続して制御するキーボードインタフェース制御方法であって、
キーボードファンクションのパラメータデータとして定義されないコマンドデータまたはレスポンスデータを送信するときに、キーボードファンクションのパラメータデータとして定義されたデータまでに分解するとともに分解したときは所定のコードを付加し、送信するようにしたことを特徴とするキーボードインタフェース制御方法。
【請求項2】
上位装置と周辺装置をキーボードインタフェースにて接続して制御するキーボードインタフェース制御方法であって、
コマンドデータまたはレスポンスデータを送信するときに、キーボードインタフェース上定義されたキーボードのキーコードまでに分割して送信するようにしたことを特徴とするキーボードインタフェース制御方法。
【請求項3】
キーボードインタフェースにて上位装置と周辺装置が接続されるキーボードインタフェースシステムであって、
前記上位装置に、前記周辺装置を制御するコマンドデータをキーボードファンクションのパラメータデータまでに分解し、分解したときは所定のコードを付加してキーボードファンクションのパラメータデータとして送信するコマンド送信部と、当該周辺装置からの前記所定のコードが付加されたデータを含むキーボードファンクションのパラメータデータをレスポンスデータに復元するレスポンス受信部を設け、
前記周辺装置に、前記上位装置からの前記所定のコードが付加されたデータを含むキーボードファンクションのパラメータデータを復元するコマンド受信部と、前記レスポンスデータをキーボードファンクションのパラメータデータまでに分解し、分解したときは所定のコードを付加してキーボードファンクションのパラメータデータとして返信するレスポンス送信部を設けたことを特徴とするキーボードインタフェースシステム。
【請求項4】
キーボードインタフェースにて上位装置と周辺装置が接続されるキーボードインタフェースシステムであって、
前記周辺装置に、レスポンスデータを分割してキーコードに変換し前記上位装置に送信するレスポンス送信部を設け、
前記上位装置に、前記周辺装置からの前記キーコードを復元するレスポンス受信部を設けたことを特徴とするキーボードインタフェースシステム。
【請求項5】
キーボードインタフェースにて接続する上位装置であって、
コマンドデータをキーボードファンクションのパラメータデータまでに分解し、分解したときは所定のコードを付加して送信するコマンド送信部と、
前記所定のコードが付加されたデータを含むキーボードファンクションのパラメータデータをレスポンスデータに復元するレスポンス受信部を設けた上位装置。
【請求項6】
キーボードインタフェースにて接続する周辺装置であって、
レスポンスデータをキーボードファンクションのパラメータデータまでに分解し、分解したときは所定のコードを付加して送信するレスポンス送信部と、
前記所定のコードが付加されたデータを含むキーボードファンクションのパラメータデータをコマンドデータに復元するコマンド受信部を設けた周辺装置。
【請求項7】
キーボードインタフェースにて接続する周辺装置であって、
レスポンスデータを分割してキーコードに変換し送信するレスポンス送信部を設けた周辺装置。
【請求項1】
上位装置と周辺装置をキーボードインタフェースにて接続して制御するキーボードインタフェース制御方法であって、
キーボードファンクションのパラメータデータとして定義されないコマンドデータまたはレスポンスデータを送信するときに、キーボードファンクションのパラメータデータとして定義されたデータまでに分解するとともに分解したときは所定のコードを付加し、送信するようにしたことを特徴とするキーボードインタフェース制御方法。
【請求項2】
上位装置と周辺装置をキーボードインタフェースにて接続して制御するキーボードインタフェース制御方法であって、
コマンドデータまたはレスポンスデータを送信するときに、キーボードインタフェース上定義されたキーボードのキーコードまでに分割して送信するようにしたことを特徴とするキーボードインタフェース制御方法。
【請求項3】
キーボードインタフェースにて上位装置と周辺装置が接続されるキーボードインタフェースシステムであって、
前記上位装置に、前記周辺装置を制御するコマンドデータをキーボードファンクションのパラメータデータまでに分解し、分解したときは所定のコードを付加してキーボードファンクションのパラメータデータとして送信するコマンド送信部と、当該周辺装置からの前記所定のコードが付加されたデータを含むキーボードファンクションのパラメータデータをレスポンスデータに復元するレスポンス受信部を設け、
前記周辺装置に、前記上位装置からの前記所定のコードが付加されたデータを含むキーボードファンクションのパラメータデータを復元するコマンド受信部と、前記レスポンスデータをキーボードファンクションのパラメータデータまでに分解し、分解したときは所定のコードを付加してキーボードファンクションのパラメータデータとして返信するレスポンス送信部を設けたことを特徴とするキーボードインタフェースシステム。
【請求項4】
キーボードインタフェースにて上位装置と周辺装置が接続されるキーボードインタフェースシステムであって、
前記周辺装置に、レスポンスデータを分割してキーコードに変換し前記上位装置に送信するレスポンス送信部を設け、
前記上位装置に、前記周辺装置からの前記キーコードを復元するレスポンス受信部を設けたことを特徴とするキーボードインタフェースシステム。
【請求項5】
キーボードインタフェースにて接続する上位装置であって、
コマンドデータをキーボードファンクションのパラメータデータまでに分解し、分解したときは所定のコードを付加して送信するコマンド送信部と、
前記所定のコードが付加されたデータを含むキーボードファンクションのパラメータデータをレスポンスデータに復元するレスポンス受信部を設けた上位装置。
【請求項6】
キーボードインタフェースにて接続する周辺装置であって、
レスポンスデータをキーボードファンクションのパラメータデータまでに分解し、分解したときは所定のコードを付加して送信するレスポンス送信部と、
前記所定のコードが付加されたデータを含むキーボードファンクションのパラメータデータをコマンドデータに復元するコマンド受信部を設けた周辺装置。
【請求項7】
キーボードインタフェースにて接続する周辺装置であって、
レスポンスデータを分割してキーコードに変換し送信するレスポンス送信部を設けた周辺装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2008−262508(P2008−262508A)
【公開日】平成20年10月30日(2008.10.30)
【国際特許分類】
【出願番号】特願2007−106560(P2007−106560)
【出願日】平成19年4月13日(2007.4.13)
【出願人】(000000295)沖電気工業株式会社 (6,645)
【Fターム(参考)】
【公開日】平成20年10月30日(2008.10.30)
【国際特許分類】
【出願日】平成19年4月13日(2007.4.13)
【出願人】(000000295)沖電気工業株式会社 (6,645)
【Fターム(参考)】
[ Back to top ]