(57)【要約】【課題】高い連携度を実現するコンピュータプログラムを提供する。【解決手段】プログラムは、情報機器をエミュレートするエミュレータがインストールされた第１の記憶回路を有しているコンピュータであり、第２の記憶回路を有している前記情報機器の実機と通信するコンピュータに、前記第２の記憶回路に記録された前記実機の動作モードと前記実機に入力された入力データとを含む第１の情報を前記実機から受信することと、前記第１の情報を前記第１の記憶回路に記録することと、前記エミュレータの動作モードと前記エミュレータへの入力データとを含む第２の情報を前記実機に送信することとを実行させる。【選択図】図１１
2019169171.tif 000002
【特許請求の範囲】
【請求項１】
情報機器をエミュレートするエミュレータがインストールされた第１の記憶回路を有しているコンピュータであり、第２の記憶回路を有している前記情報機器の実機と通信するコンピュータに、
前記第２の記憶回路に記録された前記実機の動作モードと前記実機に入力された入力データとを含む第１の情報を前記実機から受信することと、
前記第１の情報を前記第１の記憶回路に記録することと、
前記エミュレータの動作モードと前記エミュレータへの入力データとを含む第２の情報を前記実機に送信することと
を実行させるプログラム。
【請求項２】
前記実機からの要求に応じて、前記第１の記憶回路に記録された前記第１の情報を前記実機に送信することをさらに前記コンピュータに実行させる、請求項１に記載のプログラム。
【請求項３】
前記情報機器は、前記実機ごとに固有のＩＤ情報を有しており、
前記第１の情報を前記実機から受信することは、前記第１の情報と共に前記実機の前記ＩＤ情報を受信することを含み、
前記第１の情報を前記第１の記憶回路に記録することは、前記第１の情報を前記ＩＤ情報と関連付けて前記第１の記憶回路に記録することを含む、
請求項１又は２に記載のプログラム。
【請求項４】
前記情報機器は、前記実機ごとに固有のＩＤ情報を有しており、
前記第１の情報を前記実機から受信することは、前記第１の情報と共に前記実機の前記ＩＤ情報を受信することを含み、
前記第１の情報を前記第１の記憶回路に記録することは、前記第１の情報を前記ＩＤ情報と関連付けて前記第１の記憶回路に記録することを含み、
前記実機からの要求に応じて前記第１の情報を前記実機に送信する際に、前記ＩＤ情報に基づいて前記第１の記憶回路に記録された前記第１の情報を特定することをさらに前記コンピュータに実行させる請求項２に記載のプログラム。
【請求項５】
前記実機の表示装置の表示領域に一時に表示可能な第１の量の情報を表示可能な第１の表示領域と、前記第１の量よりも多い第２の量の情報を表示可能な第２の表示領域とを、共に前記コンピュータのディスプレイに表示させることをさらに前記コンピュータに実行させる、請求項１乃至４のうち何れか１項に記載のプログラム。
【請求項６】
前記第２の表示領域への入力操作を受け付けることと、
前記第２の表示領域への前記入力操作に応じて前記第１の表示領域の表示を変更させることと
をさらに前記コンピュータに実行させる請求項５に記載のプログラム。
【請求項７】
第１の記憶回路と、
情報機器をエミュレートするエミュレータがインストールされたプロセッサと、
第２の記憶回路を有しており前記情報機器の実機と通信する通信装置と
を備えるコンピュータであって、前記プロセッサは、
前記通信装置を介して、前記第２の記憶回路に記録された前記実機の動作モードと前記実機に入力された入力データとを含む第１の情報を前記実機から受信し、
前記第１の記憶回路に前記第１の情報を記録し、
前記通信装置を介して、前記エミュレータの動作モードと前記エミュレータへの入力データとを含む第２の情報を前記実機に送信する、
コンピュータ。
【請求項８】
ディスプレイをさらに備え、
前記プロセッサは、前記実機の表示装置の表示領域に一時に表示可能な第１の量の情報を表示可能な第１の表示領域と、前記第１の量よりも多い第２の量の情報を表示可能な第２の表示領域とを、共に前記ディスプレイに表示させる、
請求項７に記載のコンピュータ。
【請求項９】
情報機器をエミュレートするエミュレータがインストールされた第１の記憶回路を有しているコンピュータと通信し、第２の記憶回路を有している前記情報機器の実機に、
前記第２の記憶回路に記録された前記実機の動作モードと前記実機に入力された入力データとを含む第１の情報を前記コンピュータに送信することと、
前記コンピュータによって送信された前記エミュレータの動作モードと前記エミュレータへの入力データとを含む第２の情報を受信することと、
受信した前記第２の情報に含まれる前記動作モードと前記入力データとを前記第２の記憶回路に記録して前記実機の状態を前記エミュレータの状態と同一にすることと
を実行させるプログラム。
【請求項１０】
前記コンピュータに対して前記第１の情報を要求することと、
前記実機の要求に応じて前記コンピュータによって送信された前記第１の情報を受信することと、
受信した前記第１の情報に含まれる前記動作モードと前記入力データとを前記第２の記憶回路に記録して前記実機の状態を前記第１の情報を前記コンピュータに送信したときの状態と同一にすることと
をさらに前記実機に実行させる請求項９に記載のプログラム。
【請求項１１】
前記情報機器は、前記実機ごとに固有のＩＤ情報を有しており、
前記コンピュータに前記第１の情報を送信する際に、当該実機の前記ＩＤ情報を前記第１の情報と共に送信させる、
請求項９又は１０に記載のプログラム。
【請求項１２】
前記情報機器は、前記実機ごとに固有のＩＤ情報を有しており、
前記コンピュータに前記第１の情報を送信する際に、当該実機の前記ＩＤ情報を前記第１の情報と共に送信させ、
前記コンピュータに対して前記第１の情報を要求する際に、当該実機の前記ＩＤ情報を送信させる、
請求項１０に記載のプログラム。
【請求項１３】
情報機器をエミュレートするエミュレータがインストールされた第１の記憶回路を有しているコンピュータと通信する通信装置と、
第２の記憶回路と、
プロセッサと
を備える前記情報機器の実機であって、前記プロセッサは、
前記通信装置を介して、前記第２の記憶回路に記録された前記実機の動作モードと前記実機に入力された入力データとを含む第１の情報を前記コンピュータに送信し、
前記通信装置を介して、前記コンピュータによって送信された前記エミュレータの動作モードと前記エミュレータへの入力データとを含む第２の情報を受信し、
受信した前記第２の情報に含まれる前記動作モードと前記入力データとを前記第２の記憶回路に記録して前記実機の状態を前記エミュレータの状態と同一にする、
情報機器。
【請求項１４】
情報機器をエミュレートするエミュレータがインストールされた第１の記憶回路を有しているコンピュータと、第２の記憶回路を有している前記情報機器の実機とを備える情報処理システムであって、
前記実機は、前記第２の記憶回路に記録された前記実機の動作モードと前記実機に入力された入力データとを含む第１の情報を前記コンピュータに送信し、
前記コンピュータは、前記実機から受信した前記第１の情報を前記第１の記憶回路に記録し、
前記コンピュータは、前記エミュレータの動作モードと前記エミュレータへの入力データとを含む第２の情報を前記実機に送信し、
前記実機は、前記コンピュータから受信した前記第２の情報に含まれる前記動作モードと前記入力データとを前記第２の記憶回路に記録して前記実機の状態を前記エミュレータの状態と同一にする、
情報処理システム。
【請求項１５】
前記エミュレータは、前記実機の表示装置の表示領域に一時に表示可能な第１の量の情報を表示可能な第１の表示領域と、前記第１の量よりも多い第２の量の情報を表示可能な第２の表示領域とを、共に前記コンピュータのディスプレイに表示させる、請求項１４に記載の情報処理システム。
【請求項１６】
情報機器をエミュレートするエミュレータがインストールされた第１の記憶回路を有しているコンピュータと、第２の記憶回路を有している前記情報機器の実機とを備える情報処理システムの制御方法であって、
前記実機は、前記第２の記憶回路に記録された前記実機の動作モードと前記実機に入力された入力データとを含む第１の情報を前記コンピュータに送信し、
前記コンピュータは、前記実機から受信した前記第１の情報を前記第１の記憶回路に記録し、
前記コンピュータは、前記エミュレータの動作モードと前記エミュレータへの入力データとを含む第２の情報を前記実機に送信し、
前記実機は、前記コンピュータから受信した前記第２の情報に含まれる前記動作モードと前記入力データとを前記第２の記憶回路に記録して前記実機の状態を前記エミュレータの状態と同一にする、
情報処理システムの制御方法。
【請求項１７】
前記エミュレータは、前記実機の表示装置の表示領域に一時に表示可能な第１の量の情報を表示可能な第１の表示領域と、前記第１の量よりも多い第２の量の情報を表示可能な第２の表示領域とを、共に前記コンピュータのディスプレイに表示させる、請求項１６に記載の情報処理システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ、情報機器、これらを動作させるプログラム、情報処理システム、及び情報処理システムの制御方法に関する。
【背景技術】
【０００２】
例えば教育現場で生徒が使用する、各種計算、情報処理等を行う情報機器が知られている。また、当該情報機器の動作をパーソナルコンピュータ（ＰＣ）等でエミュレートするエミュレータが知られている。
【０００３】
例えば非特許文献１には、教育現場で用いられる上述のような情報機器及びエミュレータを含むシステムについて開示されている。このシステムでは、情報機器とＰＣ等とがＵＳＢインターフェースを用いて接続されることが開示されている。また、ＰＣ等で動作するエミュレータで作成したデータが情報機器に配信されたり、ＰＣ等で情報機器のファイル管理及び設定変更等を行うことができることが開示されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Texas Instruments Inc., TI-Nspire(TM) CX CAS Handheld, [online], ［平成29年9月11日検索］, インターネット＜URL: https://education.ti.com/en/products/calculators/graphing-calculators/ti-nspire-cx-cas＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
情報機器とコンピュータとの連携度が向上すると、情報機器及びコンピュータの用途が拡大する。
【０００６】
本発明は、高い連携度を実現するコンピュータ、情報機器、これらを動作させるプログラム、情報処理システム、及び情報処理システムの制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様によれば、プログラムは、情報機器をエミュレートするエミュレータがインストールされた第１の記憶回路を有しているコンピュータであり、第２の記憶回路を有している前記情報機器の実機と通信するコンピュータに、前記第２の記憶回路に記録された前記実機の動作モードと前記実機に入力された入力データとを含む第１の情報を前記実機から受信することと、前記第１の情報を前記第１の記憶回路に記録することと、前記エミュレータの動作モードと前記エミュレータへの入力データとを含む第２の情報を前記実機に送信することとを実行させる。
【発明の効果】
【０００８】
本発明によれば、高い連携度を実現するコンピュータ、情報機器、これらを動作させるプログラム、情報処理システム、及び情報処理システムの制御方法を提供できる。
【図面の簡単な説明】
【０００９】
【図１】図１は、一実施形態に係る情報処理システムの構成例の概略を示すブロック図である。
【図２】図２は、一実施形態に係る情報処理システムの構成例の概略を示す概念図である。
【図３】図３は、一実施形態に係る情報機器の動作の一例にの概略を示すフローチャートである。
【図４】図４は、一実施形態に係るコンピュータが実行するエミュレータの構成例の概略を示すブロック図である。
【図５】図５は、一実施形態に係るエミュレータの動作の一例の概略を示すフローチャートである。
【図６】図６は、一実施形態に係るエミュレータの動作の一例の概略を示すフローチャートである。
【図７】図７は、一実施形態に係るエミュレータの動作の一例の概略を示すフローチャートである。
【図８】図８は、一実施形態に係るエミュレータのフレームの表示例の概略を示す図である。
【図９】図９は、一実施形態に係るエミュレータの動作の一例の概略を示すフローチャートである。
【図１０】図１０は、一実施形態に係るエミュレータのフレームの表示例の概略を示す図である。
【図１１】図１１は、一実施形態に係る情報処理システムの動作の一例の概略を示すフローチャートである。
【図１２】図１２は、一実施形態に係る退避データを管理するための管理データの構造の一例の概略を示す図である。
【図１３】図１３は、一実施形態に係る情報処理システムの動作の一例の概略を示すフローチャートである。
【図１４】図１４は、一実施形態に係る情報処理システムの動作の一例の概略を示すフローチャートである。
【発明を実施するための形態】
【００１０】
［情報処理システムの構成］
本発明の一実施形態について図面を参照して説明する。本実施形態は、情報機器としての実機である関数電卓と、この関数電卓の動作をエミュレートするエミュレータがインストールされたコンピュータとを含む、情報処理システムに関する。図１のブロック図は、本実施形態に係る情報処理システム１の構成例の概略を示す。また、図２は、本実施形態に係る情報処理システム１の概念を示す。
【００１１】
情報処理システム１は、コンピュータ１００と実機である複数の情報機器２００とを含む。情報処理システム１が含む情報機器２００の数は、いくつでもよい。図１及び図２には、３つの情報機器２０１，２０２，２０３が含まれる情報処理システム１が示されている。これらの情報機器２０１，２０２，２０３は、何れも同様のものである。また、情報処理システム１は、図１及び図２に示すようにプロジェクタ３００を備えてもよい。情報処理システム１の教室における１つの使用態様は、以下のようなものである。すなわち、複数の生徒の各々は、情報機器としての関数電卓を操作する。教師は、コンピュータ１００のエミュレータソフトウェアでエミュレートした関数電卓の動作を、プロジェクタ３００でスクリーン３０１に投影し、授業を行う。
【００１２】
〈コンピュータの構成〉
コンピュータ１００は、例えばパーソナルコンピュータ（ＰＣ）、タブレット型の電子端末等であり得る。コンピュータ１００は、バスライン１９０を介して互いに接続されたcentral processing unit（ＣＰＵ）１１０と、read only memory（ＲＯＭ）１２０と、random access memory（ＲＡＭ）１３０と、ストレージ１４０と、入力装置１５０と、表示装置１６０と、通信装置１７０と、インターフェース（Ｉ／Ｆ）１８０とを備える。
【００１３】
ＣＰＵ１１０は、各種信号処理等を行う。ＲＯＭ１２０は、ＢＩＯＳ等を記録している。ＲＡＭ１３０は、ＣＰＵ１１０の主記憶装置として機能する。ＲＡＭ１３０には、例えば、dynamic ＲＡＭ（ＤＲＡＭ）、static ＲＡＭ（ＳＲＡＭ）等が用いられ得る。ストレージ１４０には、例えば、hard disk drive（ＨＤＤ）、solid state drive（ＳＳＤ）等が用いられる。ストレージ１４０には、ＣＰＵ１１０で用いられるプログラム、パラメータ等各種情報が記録されている。ストレージ１４０は、コンピュータ１００で実行される情報機器２００をエミュレートするエミュレータソフトウェアに係るプログラムも記録している。また、ストレージ１４０は、情報機器２０１等から取得したデータを保管する。ＲＡＭ１３０及びストレージ１４０は、これに限らず各種記憶装置に置換され得る。
【００１４】
入力装置１５０は、例えばキーボード１５１、マウス１５２等である。表示装置１６０は、これに限らないが例えば液晶ディスプレイ１６１等である。通信装置１７０は、コンピュータ１００の外部の機器と通信を行う際に用いられる。通信装置１７０は、例えば、情報機器２０１，２０２，２０３等との通信に用いられ得る。この通信には、universal serial bus（ＵＳＢ）等の有線による通信が用いられてもよいし、Bluetooth（登録商標）又はWi-Fi（登録商標）といった無線通信が用いられてもよい。Ｉ／Ｆ１８０は、コンピュータ１００の外部の機器との接続に用いられる。図１及び図２に示す例では、コンピュータ１００にプロジェクタ３００が接続されている。プロジェクタ３００は、例えば、表示装置１６０に表示される画面を表示画面４０５としてスクリーン３０１に投影する。
【００１５】
〈情報機器の構成〉
例えば関数電卓の実機である情報機器２０１は、バスライン２９０を介して互いに接続された、プロセッサ２１０と、記憶装置２２０と、入力装置２３０と、表示装置２４０と、通信装置２５０とを備える。プロセッサ２１０は、情報機器２０１に係る各種演算を行う。プロセッサ２１０は、ＣＰＵ、application specific integrated circuit（ＡＳＩＣ）、又はfield programmable gate array（ＦＰＧＡ）等といった集積回路を含む。プロセッサ２１０は、１つの集積回路等で構成されてもよいし、複数の集積回路等が組み合わされて構成されてもよい。プロセッサ２１０の動作は、例えば記憶装置２２０に記録された又はプロセッサ２１０に含まれるプログラムに従って行われる。記憶装置２２０は、例えばＲＯＭ、ＲＡＭ、フラッシュメモリ等の各種半導体メモリを含み得る。記憶装置２２０は、ユーザが入力した命令、プログラム等を記憶する。さらに、情報機器２０１，２０２，２０３等には、個体ごとに固有のＩＤが割り当てられている。記憶装置２２０は、この機器固有のＩＤを記憶している。記憶装置２２０の記憶容量は、情報機器２００の経済性、簡便性、省エネ性等を考慮して、小さいことが想定される。
【００１６】
入力装置２３０は、例えば複数の入力キー２３１を含む。ユーザは、入力装置２３０を用いて情報機器２０１に各種命令を入力したり、プログラムコードを入力したりする。表示装置２４０は、例えば液晶ディスプレイ２４１を含む。表示装置２４０は、ユーザによる入力結果、プロセッサ２１０による計算結果等を表示する。通信装置２５０は、例えばコンピュータ１００の通信装置１７０との間で通信を行う。
【００１７】
［情報処理システムの動作］
〈情報機器の動作〉
例えば関数電卓の実機である情報機器２００の動作について、図３に示すフローチャートを参照して説明する。情報機器２００は、単独で関数電卓として機能する計算モードと、コンピュータ１００等と通信して協働する通信モードとを備える。ユーザは、情報機器２００のメニュー画面を開き、メニュー画面で選択操作を行うことでモードを選択することができる。計算モードでは、情報機器２００は、ユーザが何れの入力キー２３１を押したかに係る情報を取得してユーザの入力に応じた、四則演算、各種関数の演算、プログラムコードの編集、プログラムの実行等といった処理を行う。また、通信モードでは、情報機器２００は、コンピュータ１００宛に、情報機器２００への入力、情報機器２００の演算結果、情報機器２００で編集されているプログラムコード、情報機器２００で実行されたプログラムの実行結果等を送信する。また、通信モードでは、情報機器２００は、コンピュータ１００から、コンピュータ１００のエミュレータへの入力、エミュレータの演算結果、エミュレータで編集されているプログラムコード、エミュレータで実行されたプログラムの実行結果等を受信する。
【００１８】
ステップＳ１０１において、プロセッサ２１０は、入力キー２３１への入力を取得する。ステップＳ１０２において、プロセッサ２１０は、現在選択されているモードが通信モードであるか否かを判定する。通信モードでないとき、すなわち、計算モードであるとき、処理はステップＳ１０３に進む。
【００１９】
ステップＳ１０３において、プロセッサ２１０は、入力に応じた処理を実行する。ステップＳ１０４において、プロセッサ２１０は、ステップＳ１０３の処理に応じた画面データを生成する。ステップＳ１０５において、プロセッサ２１０は、ステップＳ１０４で生成したデータに基づいて、液晶ディスプレイ２４１の表示を更新する。その後、処理はステップＳ１１２に進む。
【００２０】
例えば、ユーザが入力キー２３１を用いて計算式を入力しているとき、プロセッサ２１０は、入力された値、文字、関数等を記憶装置２２０に記憶させながら、液晶ディスプレイ２４１に入力された値等を表示させる。また、ユーザが入力キー２３１を用いて計算実行を入力したとき、プロセッサ２１０は、記憶装置２２０に記憶されている計算式についての計算を行って計算結果を得て、得られた計算結果を記憶装置２２０に記憶させる。また、プロセッサ２１０は、液晶ディスプレイ２４１に得られた計算結果を表示させる。
【００２１】
同様に、ユーザが入力キー２３１を用いてプログラムを入力しているとき、プロセッサ２１０は、入力された文字等を記憶装置２２０に記憶させながら、液晶ディスプレイ２４１に入力された文字等を表示させる。また、ユーザが入力キー２３１を用いてプログラムの実行を入力したとき、プロセッサ２１０は、記憶装置２２０に記憶されているプログラムを実行する。プロセッサ２１０は、プログラムの実行によってユーザに入力を求めるときには、その旨を液晶ディスプレイ２４１に表示させるし、表示させるべき計算結果等が得られたときには、当該結果等を記憶装置２２０に記憶させ、当該結果等を液晶ディスプレイ２４１に表示させる。
【００２２】
ステップＳ１０２において通信モードであると判定されたとき、処理はステップＳ１０６に進む。ステップＳ１０６において、プロセッサ２１０は、ユーザによって入力キー２３１を用いてデータ受信要求を行う旨が入力されたか否かを判定する。データ受信要求を行う旨が入力されていないとき、処理はステップＳ１０８に進む。一方、データ受信要求を行う旨が入力されたとき、処理はステップＳ１０７に進む。
【００２３】
ステップＳ１０７において、プロセッサ２１０は、データ受信要求処理を実行する。データ受信要求処理では、プロセッサ２１０は、コンピュータ１００との通信を行い、コンピュータ１００から各種データの受信を開始する処理を行う。データ受信要求処理には、記憶装置２２０に記憶されているデータをコンピュータ１００に送信し、当該データをコンピュータ１００のストレージ１４０に記憶させる処理が含まれる。データ受信要求処理については、後述する。データ受信要求処理の後、処理はステップＳ１０８に進む。
【００２４】
ステップＳ１０８において、プロセッサ２１０は、コンピュータ１００からデータを受信したか否かを判定する。データを受信していないとき、処理はステップＳ１１０に進む。一方、データを受信したとき、処理はステップＳ１０９に進む。ステップＳ１０９において、プロセッサ２１０は、データ受信処理を実行する。データ受信処理では、プロセッサ２１０は、コンピュータ１００から受信したデータを記憶装置２２０に記憶させたり、コンピュータ１００から受信したデータに基づいて各種処理を行ったり、コンピュータ１００から受信したデータを液晶ディスプレイ２４１に表示させたりする。データ受信処理については、後述する。データ受信処理の後、処理はステップＳ１１０に進む。
【００２５】
ステップＳ１１０において、プロセッサ２１０は、ユーザによって入力キー２３１を用いてデータ返還要求を行う旨が入力されたか否かを判定する。データ返還要求を行う旨が入力されていないとき、処理はステップＳ１１２に進む。一方、データ返還要求を行う旨が入力されたとき、処理はステップＳ１１１に進む。
【００２６】
ステップＳ１１１において、プロセッサ２１０は、データ返還要求処理を実行する。データ返還要求処理では、プロセッサ２１０は、コンピュータ１００との通信を行い、コンピュータ１００のストレージ１４０に保存された情報機器２００の記憶装置２２０に記憶されていたデータの返還を要求する。プロセッサ２１０は、返還されたデータを記憶装置２２０に記憶させる。データ返還要求処理については、後述する。データ返還要求処理の後、処理はステップＳ１１２に進む。
【００２７】
ステップＳ１１２において、プロセッサ２１０は、処理を終了するか否かを判定する。例えば、情報機器２００の電源を切る操作が行われたとき、プロセッサ２１０は、処理を終了すると判定する。処理を終了するとき、情報機器２００の処理を終了することに係る処理を行い、本処理を終了する。一方、処理を終了しないとき、処理はステップＳ１０１に戻り、上述の処理を繰り返す。
【００２８】
〈コンピュータの動作〉
コンピュータ１００上でエミュレータを用いて行われる処理について説明する。このエミュレータは、例えば関数電卓である情報機器２００の動作をエミュレートするものである。
【００２９】
本実施形態に係るエミュレータの基本的な動作について、説明する。図４に示すように、コンピュータ１００が実行するソフトウェアとしてのエミュレータ４００は、フレーム４１０と、インターフェース４８０と、エンジン４９０とを含む。フレーム４１０は、ユーザが操作を行うためのボタン、ユーザが動作結果を視認するための表示等を管理する。すなわち、フレーム４１０は、エンジンに操作命令を送ったり、エンジンの演算結果をユーザに伝達したりするためのユーザインターフェースである。エンジン４９０は、関数電卓の挙動を再現する。エンジン４９０は、情報機器２００の記憶装置２２０に相当するエンジンメモリ４９１を有している。フレーム４１０とエンジン４９０とはインターフェース４８０を介してつながれている。
【００３０】
図２及び図４に示すように、フレーム４１０は、電卓イメージフレーム４２０と、プログラム表示フレーム４５０とを含む。電卓イメージフレーム４２０は、本エミュレータの基本的なフレームである。電卓イメージフレーム４２０は、情報機器２００としての関数電卓の外観を表示したものとなっている。プログラム表示フレーム４５０は、ユーザの選択に応じて表示可能なフレームである。プログラム表示フレーム４５０は、エミュレータ４００で作成しているプログラムのコードを表示するためのフレームである。
【００３１】
電卓イメージフレーム４２０は、入力キー表示４３１を含む。入力キー表示４３１は、情報機器２００の入力キー２３１を模した表示である。ユーザは、コンピュータ１００において、入力キー表示４３１に含まれる入力キーの表示を例えばマウスなどで選択することで、エミュレータ４００に対して情報機器２００の入力キー２３１を押したときと同様の入力を行うことができる。電卓イメージフレーム４２０は、表示領域４４１を含む。表示領域４４１は、情報機器２００の液晶ディスプレイ２４１を模した表示を行うものである。情報機器２００の液晶ディスプレイ２４１が４行の表示を行うことができるとき、電卓イメージフレーム４２０の表示領域４４１も４行の表示を行うことできる。
【００３２】
プログラム表示フレーム４５０は、エミュレータ４００がプログラム機能を実行しているとき、エンジン４９０のエンジンメモリ４９１が記憶しているプログラムコードを表示するものである。プログラム表示フレーム４５０は、コード表示領域４６０を有する。コード表示領域４６０は、情報機器２００の液晶ディスプレイ２４１の表示行数等に限らず、多くの行数を表示することができる。すなわち、コード表示領域４６０は、液晶ディスプレイ２４１よりも多くの情報を一時に表示することができる。プログラム表示フレーム４５０は、電卓イメージフレーム４２０に含まれるプログラム表示フレーム起動ボタン４２１が選択されることによって起動して表示され、閉じるボタン４５１が選択されることで終了して非表示となる。
【００３３】
図５を参照してエミュレータ４００の動作について説明する。ステップＳ２０１において、ユーザが電卓イメージフレーム４２０の入力キー表示４３１を選択することで入力を行ったとする。このとき、ステップＳ２０２において、電卓イメージフレーム４２０は、入力に応じた命令をエンジン４９０に伝達する。この命令を受け取ったエンジン４９０は、ステップＳ２０３において、命令に応じた処理を実行する。ステップＳ２０４において、エンジン４９０は、ステップＳ２０３の処理に応じた画面データを生成し、電卓イメージフレーム４２０に受け渡す。ステップＳ２０５において、電卓イメージフレーム４２０は、受け取った画面データに基づいて、電卓イメージフレーム４２０の表示領域４４１に画面データに基づく画面を表示させる。ユーザは、ステップＳ２０６において、表示領域４４１に表示された画面を視認し、自身が行った操作結果を確認する。
【００３４】
例えば、ユーザが入力キー表示４３１を用いて計算式を入力しているとき、エンジン４９０は、入力された値、文字、関数等をエンジンメモリ４９１に記憶させながら、電卓イメージフレーム４２０の表示領域４４１に表示させる画面を生成する。その結果、電卓イメージフレーム４２０の表示領域４４１には、入力された値等が表示される。また、ユーザが入力キー表示４３１を用いて計算実行を入力したとき、エンジン４９０は、エンジンメモリ４９１に記憶されている計算式についての計算を行って計算結果を得て、得られた計算結果をエンジンメモリ４９１に記憶させる。また、エンジン４９０は、電卓イメージフレーム４２０の表示領域４４１に得られた計算結果を表示させるため、画面データを生成する。その結果、電卓イメージフレーム４２０の表示領域４４１には、計算結果が表示される。
【００３５】
また、ステップＳ２０７において、電卓イメージフレーム４２０は、エンジンメモリ４９１内のデータをエンジン４９０に要求する。この要求を受けたエンジン４９０は、ステップＳ２０８において、エンジンメモリ４９１内のデータを電卓イメージフレーム４２０宛に送信する。ステップＳ２０９において、電卓イメージフレーム４２０は、エンジンメモリ４９１内のデータを受信し、その値を保持する。
【００３６】
ステップＳ２１０において、電卓イメージフレーム４２０は、プログラム表示フレーム４５０が起動しているか否かを判定する。プログラム表示フレーム４５０が起動していないとき、ステップＳ２１１で本処理は終了する。一方、プログラム表示フレーム４５０が起動しているとき、処理はステップＳ２１２に進む。
【００３７】
ステップＳ２１２において、プログラム表示フレーム４５０は、電卓イメージフレーム４２０からエンジンメモリ４９１内のデータを受け取り、コード表示領域４６０にプログラムコードを表示させるため、データを変換する。このデータ変換は、例えばコンピュータ１００のオペレーティングシステム（ＯＳ）等に応じた適切なデータへの変換等を含む。例えば、プログラム表示フレーム４５０は、エンジンメモリ４９１内のデータのうち、プログラムコードに係る部分を抽出して、当該プログラムコードを適当な表示形式で表示する画面を生成する。ステップＳ２１３において、プログラム表示フレーム４５０は、変換後のデータに基づいて、コード表示領域４６０にプログラムコードを表示させる。ステップＳ２１４において、ユーザは、コード表示領域４６０に表示されたプログラムコードを確認する。
【００３８】
以上のように、ユーザは、電卓イメージフレーム４２０を操作することで、エミュレートされた情報機器２００の動作を確認することができる。また、ユーザは、プログラム表示フレーム４５０の面積が広いコード表示領域４６０への表示によって、一覧性よくエンジンメモリ４９１に記憶されているプログラムコードを確認することができる。
【００３９】
次に、プログラム表示フレーム４５０の起動動作について、図６に示すフローチャートを参照して説明する。
【００４０】
ステップＳ３０１において、ユーザは、プログラム表示フレーム起動ボタン４２１を選択することで、プログラム表示フレーム４５０を起動させる操作を行う。このとき、ステップＳ３０２において、フレーム４１０は、プログラム表示フレーム４５０を起動させて表示させる。
【００４１】
ステップＳ３０３において、電卓イメージフレーム４２０は、エンジンメモリ４９１内のデータを保持しているか否かを判定する。例えば、図５を参照して説明した処理のステップＳ２０９において、データを受信して保持しているとき、エンジンメモリ４９１内のデータを保持していると判定される。データを保持していないとき、処理はステップＳ３０４に進む。ステップＳ３０４において、電卓イメージフレーム４２０は、エンジン４９０に、エンジンメモリ４９１内のデータを要求する。ステップＳ３０５において、エンジン４９０は、エンジンメモリ４９１内のデータを電卓イメージフレーム４２０宛に送信する。ステップＳ３０６において、電卓イメージフレーム４２０は、エンジン４９０からエンジンメモリ４９１内のデータを受信する。その後、処理はステップＳ３０７に進む。
【００４２】
ステップＳ３０３において、エンジンメモリ４９１内のデータを保持していると判定されたとき、処理はステップＳ３０７に進む。すなわち、ステップＳ３０７の処理を行うとき、電卓イメージフレーム４２０は、エンジンメモリ４９１内のデータを保持している。
【００４３】
ステップＳ３０７において、電卓イメージフレーム４２０は、エンジンメモリ４９１内のデータをプログラム表示フレーム４５０宛に送信する。ステップＳ３０８において、プログラム表示フレーム４５０は、電卓イメージフレーム４２０からエンジンメモリ４９１内のデータを受け取り、コード表示領域４６０にプログラムコードを表示させるため、データを変換する。ステップＳ３０９において、プログラム表示フレーム４５０は、変換後のデータに基づいて、コード表示領域４６０にプログラムコードを表示させる。ステップＳ３１０において、ユーザは、コード表示領域４６０に表示されたプログラムコードを確認する。
【００４４】
以上のように、プログラム表示フレーム起動ボタン４２１が選択されたとき、いつでもプログラム表示フレーム４５０のコード表示領域４６０にプログラムコードが表示される。例えば、図５に示した処理において、ステップＳ２１０でプログラム表示フレーム４５０が起動していないと判定され、プログラムコードの表示が行われていなかったとしても、その後にプログラム表示フレーム起動ボタン４２１が選択されたとき、プログラム表示フレーム４５０が表示され、そのコード表示領域４６０にプログラムコードが表示される。また、電卓イメージフレーム４２０がプログラムコードを含むエンジンメモリ４９１内のデータを保持していようといまいと、プログラム表示フレーム４５０の起動と共に、プログラムコードがコード表示領域４６０に表示される。
【００４５】
次に、エミュレータ４００でプログラムを実行したときの動作について、図７に示すフローチャートを参照して説明する。
【００４６】
ステップＳ４０１において、ユーザは、電卓イメージフレーム４２０の入力キー表示４３１を選択することで、プログラムを実行させる操作を行う。このとき、ステップＳ４０２において、電卓イメージフレーム４２０は、プログラム実行命令をエンジン４９０に伝達する。プログラム実行命令を受けたエンジン４９０は、ステップＳ４０３において、エンジンメモリ４９１にコードが記憶されたプログラムを実行する。
【００４７】
ステップＳ４０４において、エンジン４９０は、プログラムの実行についてエラーが発生したか否かを判定する。エラーが発生していないとき、処理はステップＳ４０５に進む。ステップＳ４０５において、エンジン４９０は、実行結果を示す画面データを生成し、電卓イメージフレーム４２０に伝達する。
【００４８】
ステップＳ４０６において、画面データを受け取った電卓イメージフレーム４２０は、画面データに基づいて実行結果を表示領域４４１に表示させる。ステップＳ４０７において、ユーザは、電卓イメージフレーム４２０の表示領域４４１の表示によって、プログラムの実行結果を確認する。
【００４９】
ステップＳ４０４において、エラーが発生したと判定されたとき、処理はステップＳ４０８に進む。ステップＳ４０８において、エンジン４９０は、電卓イメージフレーム４２０の表示領域４４１に表示させるエラー画面データを生成し、電卓イメージフレーム４２０に伝達する。
【００５０】
ステップＳ４０９において、画面データを受け取った電卓イメージフレーム４２０は、画面データに基づいてエラー画面を表示領域４４１に表示させる。例えば図８に示すように、コード表示領域４６０にエラーが発生している旨を示す「ＥＲＲＯＲ」の文字を表示する。この表示は、エラーが発生したときに情報機器２００の液晶ディスプレイ２４１に表示される表示と同様である。ステップＳ４１０において、ユーザは、電卓イメージフレーム４２０の表示領域４４１の表示によって、プログラムの実行においてエラーが発生したことを確認する。
【００５１】
また、ステップＳ４１１において、電卓イメージフレーム４２０は、エンジンメモリ４９１内のデータをエンジン４９０に要求する。この要求を受けたエンジン４９０は、ステップＳ４１２において、エンジンメモリ４９１内のデータを電卓イメージフレーム４２０宛に送信する。ステップＳ４１３において、電卓イメージフレーム４２０は、エンジンメモリ４９１内のデータを受信し、その値を保持する。
【００５２】
ステップＳ４１４において、電卓イメージフレーム４２０は、プログラム表示フレーム４５０が起動しているか否かを判定する。プログラム表示フレーム４５０が起動していないとき、ステップＳ４１５で本処理は終了する。一方、プログラム表示フレーム４５０が起動しているとき、処理はステップＳ４１６に進む。
【００５３】
ステップＳ４１６において、プログラム表示フレーム４５０は、電卓イメージフレーム４２０からエンジンメモリ４９１内のデータを受け取る。エンジンメモリ４９１内のデータには、エラーの発生箇所に係る情報が含まれている。プログラム表示フレーム４５０は、この情報に基づいて、コード表示領域４６０に表示しているプログラムコードにおいて、エラーが発生している箇所を強調表示する。例えば、図８に示す表示画面４０５のように、エラーに係る行にハイライト４６１が付された表示が行われる。ステップＳ４１７において、ユーザは、コード表示領域４６０に表示されたプログラムコードにおけるエラー箇所を確認する。
【００５４】
このように、プログラム表示フレーム４５０にエラー箇所が明示されることで、ユーザは容易にエラー箇所を確認することができる。
【００５５】
なお、エラーが発生した時点で、プログラム表示フレーム４５０が起動しておらず、ステップＳ４１５で処理が終了したとしても、その後にプログラム表示フレーム４５０が起動したときにエラー箇所が強調表示されてもよい。すなわち、プログラム表示フレーム４５０が起動するとき、プログラム表示フレーム４５０は、図６を参照して説明したようにエラー発生箇所に係る情報が含まれているエンジンメモリ４９１内のデータを取得する。したがって、プログラム表示フレーム４５０は、このデータに基づいて、エラー発生箇所を強調表示することができる。
【００５６】
本実施形態では、プログラムコードにおけるカーソル位置を、電卓イメージフレーム４２０のみならず、プログラム表示フレーム４５０を用いて指定することができる。プログラム表示フレーム４５０を用いたカーソル位置指定に係る動作について、図９に示すフローチャートを参照して説明する。
【００５７】
ステップＳ５０１において、ユーザは、プログラム表示フレーム４５０のコード表示領域４６０内の希望箇所を選択することで、カーソル位置を指定する。このとき、ステップＳ５０２において、プログラム表示フレーム４５０は、カーソル位置を指定する命令をエンジン４９０に伝達する。カーソル位置指定命令を受けたエンジン４９０は、ステップＳ５０３において、カーソル位置を移動させる処理を行う。ステップＳ５０４において、エンジン４９０は、カーソル移動後のプログラムコードに係る画面データを生成し、電卓イメージフレーム４２０に伝達する。
【００５８】
ステップＳ５０５において、画面データを受け取った電卓イメージフレーム４２０は、画面データに基づいてカーソル移動後のプログラムコードを表示領域４４１に表示させる。ステップＳ５０６において、ユーザは、電卓イメージフレーム４２０の表示領域４４１の表示によって、カーソル移動操作の結果を確認する。
【００５９】
ステップＳ５０７において、電卓イメージフレーム４２０は、エンジンメモリ４９１内のデータをエンジン４９０に要求する。この要求を受けたエンジン４９０は、ステップＳ５０８において、エンジンメモリ４９１内のデータを電卓イメージフレーム４２０宛に送信する。ステップＳ５０９において、電卓イメージフレーム４２０は、エンジンメモリ４９１内のデータを受信し、その値を保持する。
【００６０】
ステップＳ５１０において、プログラム表示フレーム４５０は、電卓イメージフレーム４２０からエンジンメモリ４９１内のデータを受け取り、プログラムコードのうち電卓イメージフレーム４２０の表示領域４４１に表示されている行を特定する。プログラム表示フレーム４５０は、コード表示領域４６０に表示しているプログラムコードにおいて、電卓イメージフレーム４２０の表示領域４４１に表示されている行を強調表示する。例えば、図１０に示す表示画面４０５のように、電卓イメージフレーム４２０の表示領域４４１に表示されている行にハイライト４６２が付された表示が行われる。ステップＳ５１１において、ユーザは、コード表示領域４６０に表示されたプログラムコードにおいて、電卓イメージフレーム４２０の表示領域４４１に表示されている箇所を確認する。
【００６１】
このように、ユーザは、多数の行が表示されたプログラム表示フレーム４５０を用いてプログラムコードにおけるカーソル位置を移動させることができる。したがって、ユーザにとって操作性が向上する。また、プログラム表示フレーム４５０に表示されたプログラムコードにおける電卓イメージフレーム４２０の表示領域４４１に表示された箇所が明示されるので、ユーザはこれらの対応関係を容易に把握することができる。
【００６２】
上述の例では、プログラム表示フレーム４５０におけるカーソル位置が変更される場合の例を示したが、プログラム表示フレーム４５０の表示がスクロール操作される場合も、フレーム４１０は同様に動作し得る。例えば、プログラム表示フレーム４５０のコード表示領域４６０の表示がスクロールされたとき、スクロールに応じてカーソル位置が移動したとする情報が、プログラム表示フレーム４５０からエンジン４９０に伝達される。このカーソル位置の変更に応じた処理がエンジン４９０で行われれば、プログラム表示フレーム４５０のスクロールに応じて電卓イメージフレーム４２０の表示領域４４１の表示が更新され得る。
【００６３】
また、上述の例では、プログラム表示フレーム４５０においてカーソル位置を変更させる操作が行われたとき、電卓イメージフレーム４２０の表示領域４４１の表示が更新される例を示した。同様に、電卓イメージフレーム４２０を用いた操作によってカーソル位置が移動させられたときにも、プログラム表示フレーム４５０のコード表示領域４６０における電卓イメージフレーム４２０の表示領域４４１に表示されている行を示す強調表示の位置は変更され得る。
【００６４】
なお、ここでは、プログラムコードが表示されるプログラム表示フレーム４５０において、プログラムコードの一覧性を向上させることについて説明したが、このような動作は、プログラムコード以外に適用されてもよい。例えば、フレーム４１０が表を表示する表フレームを含むとき、当該表フレームの表示に上述の動作が適用されてもよい。表フレームによれば、電卓イメージフレーム４２０の表示領域４４１に一度に表示できない程度に大きな表を表示させることができるなどの効果が得られる。
【００６５】
また、上述の例では、プログラム表示フレーム４５０に表示されたプログラムコードのカーソル位置を変更する例について示したが、カーソル位置の変更、スクロール操作等に限らず、プログラムコードの入力が、プログラム表示フレーム４５０を用いて行われてもよい。このような動作は、プログラム表示フレーム４５０が入力された情報をエンジン４９０に伝達し、エンジン４９０が入力された情報で、エンジンメモリ４９１内のデータを書き換えることで、実現され得る。
【００６６】
また、上述の例では、プログラム表示フレーム４５０において、エラー箇所や表示領域４４１に表示されている箇所を強調表示する例を示したが、強調表示する箇所はこれらに限らない。例えば、編集された箇所が強調表示されてもよい。編集された箇所を特定するために、保持されている前回取得したエンジンメモリ４９１内のデータと、最新に取得したエンジンメモリ４９１内のデータとを比較して、異なる箇所が編集された個所として特定されてもよい。
【００６７】
以上、コンピュータ１００で動作するエミュレータ４００の動作の一例について説明した。エミュレータ４００を用いることで、例えば関数電卓である情報機器２００の動作を例えばＰＣ上でエミュレートすることができる。さらに、電卓イメージフレーム４２０以外のフレームを用いることで、例えば情報機器２００よりも便利な表示機能を実現することができる。例えば、情報機器２００の液晶ディスプレイ２４１に表示される情報よりも多くの情報が一度に表示されたり、プログラムのエラー箇所が明示されたりする。また、電卓イメージフレーム４２０以外のフレームを用いることで、例えば情報機器２００よりも便利な操作を実現することができる。例えばスクロール操作、入力操作等が情報機器２００を用いるよりも簡便に行われ得る。
【００６８】
〈情報機器とコンピュータとの連携動作〉
本実施形態に係る情報処理システム１では、コンピュータ１００と実機である情報機器２００とは、通信し連携して動作を行うことができる。このような連携動作が用いられる一つの場面として、教室における授業の場面が挙げられる。教師は、例えばＰＣであるコンピュータ１００で情報機器のエミュレータ４００を操作し、その操作の画面をプロジェクタ３００を用いて投影させて生徒に提示する。複数の生徒の各々は、手元に例えば関数電卓の実機である情報機器２００を用意し、情報機器２００を操作する。
【００６９】
本実施形態に係る情報処理システム１では、生徒が操作している情報機器２００は、教師が操作しているエミュレータ４００のエンジンメモリ４９１に記憶されているデータを要求し受け取ることができる。エンジンメモリ４９１内のデータを情報機器２００の記憶装置２２０に記憶し、当該データを情報機器２００のデータとして用いることで、情報機器２００は、エミュレータ４００と同じ動作を行うことができる。例えば生徒は、自身の手元の情報機器２００を用いて、教師がエミュレータ４００上で行った操作を、再現することができる。
【００７０】
本実施形態に係る情報機器２００において、記憶装置２２０の記憶容量は小さい。このため、記憶装置２２０は、生徒が自分で入力したデータと、コンピュータ１００から取得したデータとの両方を記憶できないことがある。そこで、本実施形態に係る情報処理システム１では、情報機器２００がコンピュータ１００からデータを受け取るとき、情報機器２００によって入力され記憶装置２２０に記憶されたデータは、コンピュータ１００のストレージ１４０に退避され得る。
【００７１】
本実施形態に係る情報処理システム１の動作を説明する。初めに、情報機器２００がコンピュータ１００にエンジンメモリ４９１内のデータを要求する処理について、図１１に示すフローチャートを参照して説明する。例えば教師であるコンピュータ１００の操作者を第１のユーザとし、例えば生徒である情報機器２００の操作者を第２のユーザとする。
【００７２】
ステップＳ６０１において、第２のユーザは、情報機器２００の入力キー２３１を操作して、コンピュータ１００に記憶されたデータの受信の要求を入力する。この入力を受けた情報機器２００は、ステップＳ６０２において、コンピュータ１００と通信し、コンピュータ１００のエミュレータ４００に対して、エンジンメモリ４９１内のデータを求めるデータ受信要求を行う。
【００７３】
情報機器２００からのデータ受信要求を受けたエミュレータ４００のフレーム４１０は、ステップＳ６０３において、データ受信要求を受けた旨を示しデータを送信してもよいかを問う要求確認画面を表示する。要求確認画面を確認した第１のユーザは、データを送信してもよいとき、ステップＳ６０４において、コンピュータの入力装置１５０を用いてデータ送信を許可する旨を入力する。
【００７４】
ステップＳ６０５において、フレーム４１０は、データ送信許可が入力されたか否かを判定する。送信許可がされていないとき、フレーム４１０は、ステップＳ６０５の処理を繰り返して待機する。フレーム４１０は、例えば所定期間送信許可がされないとき、情報機器２００にデータ受信要求を拒否する旨を送信してもよい。送信許可がされたとき、処理はステップＳ６０６に進む。第１のユーザの操作によらず、例えばエミュレータ４００が起動している等、所定の要件を満たすときに送信許可がされてもよい。
【００７５】
また、情報機器２００からフレーム４１０へのデータ受信要求には、情報機器２００に固有のＩＤ又はそのＩＤを暗号化したものが付されてもよい。フレーム４１０は、情報機器２００のＩＤ又はＩＤを暗号化したものを識別キーとして接続を行ってもよい。また、ＩＤを暗号化したものをフレーム４１０が正しく復号できないとき、情報機器２００が正規の機器でないと判定し、第１のユーザの入力に関わらずデータ受信要求を拒否してもよい。
【００７６】
例えば、情報機器２００及びエミュレータ４００の提供者が秘密キーを管理しているものとする。情報機器２００は、例えば情報機器の仕向け毎に共通の秘密キーを有している。情報機器２００は、ＩＤと秘密キーとに基づいて、識別キーを生成し、ＩＤと生成した識別キーとをエミュレータ４００に送信する。エミュレータ４００は、受信したＩＤと識別キーとに基づいて、秘密キーを復号し、秘密キーを管理する提供者に秘密キー情報を照会する。提供者は、照会された情報が正しいか否かを判定し、正しいときステップＳ６０５で許可がされ、正しくないときステップＳ６０５で許可がされない。例えば情報機器２００が正規品でないとき、秘密キー又は暗号方法が正しくなく、その結果、エミュレータ４００で正しい秘密キーが復号できない。その結果、提供者によって情報機器２００が正規品でないと判定され、ステップＳ６０５で不許可となる。
【００７７】
ステップＳ６０６において、フレーム４１０は、情報機器２００の接続を許可し、その旨を情報機器２００に送信する。接続が許可された情報機器２００は、ステップＳ６０７において、コンピュータ１００のエミュレータ４００との接続を確立させる。
【００７８】
ステップＳ６０８において、情報機器２００は、自身の記憶装置２２０に記憶されているデータをカレントデータとしてエミュレータ４００宛に送信する。カレントデータは、電卓の動作モードの情報を含む。この動作モードの情報は、例えば、現在動作しているモードが標準計算モード、統計計算モード、方程式計算モード、プログラムモード、表計算モード等の何れのモードであるかといった情報を含む。また、カレントデータは、第２のユーザが情報機器２００に入力していた情報である入力データを含む。入力データは、ユーザが入力した、計算式、プログラムコード等を含む。カレントデータは、情報機器２００による演算結果、プログラムの実行結果等を含んでいてもよい。カレントデータは、記憶装置２２０に記憶されている全てのデータを含んでいてもよい。さらに、情報機器２００は、カレントデータに、当該情報機器２００の個体ごとに割り当てられたＩＤの情報を付加する。
【００７９】
データの送信方法は情報機器２００とコンピュータ１００との接続方法により、例えばBluetoothといった低消費電力の無線通信、ＵＳＢ接続といった有線通信が用いられ得る。また、送信すべきデータを例えばＱＲコード（登録商標）といった２次元コード等の画像に変換し、コンピュータがこのコードを撮影して読み込むことで、データの伝達が行われてもよい。その他、無線ＬＡＮなどが利用されてもよい。また、情報機器２００とコンピュータ１００とは、直接接続されずに、例えばインターネットといったネットワークを介して接続されてもよい。
【００８０】
ステップＳ６０９において、フレーム４１０は、情報機器２００によって送信されたカレントデータを受信する。ステップＳ６１０において、フレーム４１０は、受信した情報機器２００のデータをメモリに記録する。記録先は、例えばストレージ１４０に設けられた、エミュレータ４００と関連する領域等とする。
【００８１】
例えば図１及び図２に示すように複数の情報機器２０１，２０２，２０３が同時期にデータ受信要求を行うことが想定される。コンピュータ１００は、複数の情報機器２０１，２０２，２０３の各々のデータを区別して記録しておくことができる。これらのデータは、例えば図１２に示すような構造を有する管理データを用いて管理され得る。すなわち、図１２に示す例では、情報機器２００のＩＤを示す電卓ＩＤと、記録したデータのファイル名を示す退避データ名と、データを受け取って記録した日時を示す日付とが関連付けられた管理データを用いてデータ管理が行われる。同じＩＤのデータが２回以上送られてきたときには、例えば古いデータの上に新しいデータを上書きして、新しいデータのみを記録してもよいし、異なるバージョンを全て記録しておいてもよい。
【００８２】
ステップＳ６１１において、フレーム４１０は、エンジン４９０にエンジンメモリ４９１内のデータを要求する。ステップＳ６１２において、エンジン４９０は、エンジンメモリ４９１内のデータをフレーム４１０宛に送信する。ステップＳ６１３において、フレーム４１０は、エンジン４９０からエンジンメモリ４９１内のデータを受信し、それをエンジンデータとして情報機器２００宛に送信する。
【００８３】
ステップＳ６１４において、情報機器２００は、フレーム４１０から送信されたエンジンデータを受信する。情報機器２００は、受信したエンジンデータを自身の記憶装置２２０に上書きする。その結果、情報機器２００の状態は、エミュレータ４００のエンジン４９０の状態と同一になる。ここで、同一とは、完全に同一であることのみならず、一部異なっていても実質的に同一であること、主要部分において同一であること等を含む。ステップＳ６１５において、情報機器２００は、上書きされたデータに基づいて、画面データを生成する。ステップＳ６１６において、情報機器２００は、液晶ディスプレイ２４１に画面データに基づく画面を表示させる。ステップＳ６１７において第２のユーザは、液晶ディスプレイ２４１に表示された画面を確認し、その内容を確認する。
【００８４】
以上のように、情報機器２００がエミュレータ４００のエンジンメモリ４９１内のデータを受信して、そのデータで記憶装置２２０内の情報を書き換えることで、情報機器２００は、エミュレータ４００と同じ状態になる。その結果、例えば情報機器２００を操作する生徒は、エミュレータ４００を操作する教師が作成したデータを、手元の情報機器２００で確認することができる。
【００８５】
なお、上述の説明では、例えば生徒が入力した情報機器２００に記録されていたカレントデータは、単にコンピュータ１００のストレージに記録される例を示したが、これに限らない。例えば、教師の選択によって情報機器２００から取得したデータがエミュレータ４００のデータに上書きされてもよい。すなわち、エミュレータ４００で行われる動作は、例えば教師である第１のユーザによって入力されたものに限らない。例えば教師が選択した一の生徒が入力したデータを、エミュレータ４００のエンジンメモリ４９１に取り込むことで、当該一の生徒が入力したデータをエミュレータ４００で動作させて教室全体で確認したり共有したりすることができる。
【００８６】
情報機器２００とエミュレータ４００とが通信を行って情報機器２００のデータがエミュレータ４００のデータで置換された状態で、第１のユーザがエミュレータ４００を操作したときの動作の一例を図１３を参照して説明する。図１３に示す例は、エミュレータ４００の動作が情報機器２００に反映される例である。
【００８７】
ステップＳ７０１において、第１のユーザは、エミュレータ４００のフレーム４１０に対して入力の操作を行う。このとき、ステップＳ７０２において、フレーム４１０は、入力に応じた命令をエンジン４９０に伝達する。ステップＳ７０３において、エンジン４９０は、命令に応じた処理を実行する。ステップＳ７０４において、エンジン４９０は、処理後の状態に応じた画面データを生成し、フレーム４１０に伝達する。ステップＳ７０５において、フレーム４１０は、受信した画面データに基づいて、フレーム４１０の表示領域４４１に画面を表示させる。ステップＳ７０６において第１のユーザは、フレームの表示によって、操作結果を確認する。
【００８８】
このとき、フレーム４１０は、ステップＳ７０７において、エンジン４９０に対して、エンジンメモリ４９１内のデータを要求する。ステップＳ７０８において、エンジン４９０は、要求に応じてエンジンメモリ４９１内のデータをフレーム４１０宛に送信する。ステップＳ７０９において、フレーム４１０は、エンジンメモリ４９１内のデータを受信し、それをエンジンデータとして情報機器２００に送信する。
【００８９】
ステップＳ７１０において、情報機器２００は、コンピュータ１００からエンジンデータを受信し、当該エンジンデータで記憶装置２２０に記録された情報を更新する。ステップＳ７１１において、情報機器２００は、更新された情報に基づいて、画面データを生成する。ステップＳ７１２において、情報機器２００は、液晶ディスプレイ２４１に生成した画面データに基づく画面を表示させる。ステップＳ７１３において、第２のユーザは、液晶ディスプレイ２４１に表示された内容を確認する。
【００９０】
本実施形態によれば、例えば生徒である第２のユーザは、例えば教師である第１のユーザによって行われるエミュレータ４００での操作を、手元の情報機器２００で確認することができる。
【００９１】
ここでは、第１のユーザがエミュレータ４００に対して入力を行うたびに、エンジンメモリ４９１内のデータが全て情報機器２００に送信されて、情報機器２００の記憶装置２２０のデータが全て書き換えられる例を示したが、これに限らない。例えば、フレーム４１０は、第１のユーザのフレーム４１０への入力の情報を情報機器２００に送信し、この情報を受信した情報機器２００は、フレーム４１０への入力情報を情報機器２００の入力装置２３０への入力として扱うことで、記憶装置２２０の状態を更新してもよい。
【００９２】
なお、ここに示した例では、エミュレータ４００の動作が、情報機器２００に反映される例を示したが、エミュレータ４００の動作が情報機器２００に反映されなくてもよい。すなわち、図１１を参照して説明したようにしてエミュレータ４００のデータを一度取得した後は、情報機器２００は、第２のユーザによる操作に応じて動作してもよい。
【００９３】
例えば情報機器２００を用いてエミュレータ４００で行われた動作を確認した後など、第２のユーザが情報機器２００に入力していたデータについて再び編集、操作等を行いたいときがある。このような場合に本実施形態では、情報機器２００は、コンピュータ１００から、コンピュータ１００に退避させていたデータを返還してもらう。このときの動作を図１４に示すフローチャートを参照して説明する。
【００９４】
ステップＳ８０１において、第２のユーザは、情報機器２００の入力キー２３１を操作して、データ返還要求を入力する。このときステップＳ８０２において、情報機器２００は、データ返還要求をコンピュータ１００のエミュレータ４００に対して行う。このとき、データ返還要求には、情報機器２００のＩＤが付される。
【００９５】
情報機器２００からのデータ返還要求を受けたエミュレータ４００のフレーム４１０は、ステップＳ８０３において、データ返還要求を受けた旨を示しデータを返還してもよいかを問う要求確認画面を表示する。要求確認画面を確認した第１のユーザは、データを返還してもよいとき、ステップＳ８０４において、コンピュータの入力装置１５０を用いてデータ返還を許可する旨を入力する。
【００９６】
ステップＳ８０５において、フレーム４１０は、データ返還許可が入力されたか否かを判定する。返還許可がされていないとき、フレーム４１０は、ステップＳ８０５の処理を繰り返して待機する。フレーム４１０は、例えば所定期間返還許可がされないとき、情報機器２００にデータ返還要求を拒否する旨を送信してもよい。返還許可がされたとき、処理はステップＳ８０６に進む。
【００９７】
ステップＳ８０６において、フレーム４１０は、ストレージ１４０に記録されている情報機器２００のデータのうち、情報機器２００のＩＤに対応するデータを情報機器２００宛に送信する。ステップＳ８０７において、情報機器２００は、コンピュータ１００から返還データを受信し、当該データで記憶装置２２０に記録された情報を更新する。ステップＳ８０８において、情報機器２００は、更新された情報に基づいて、画面データを生成する。ステップＳ８０９において、情報機器２００は、液晶ディスプレイ２４１に生成した画面データに基づく画面を表示させる。その結果、情報機器２００の状態は、データ受信要求をしたときの状態と同一の状態になる。ここで、データはＩＤによって管理されているので、情報機器２００の個体ごとに正しく状態が復元される。なお、同一とは、完全に同一であることのみならず、一部異なっていても実質的に同一であること、主要部分において同一であること等を含む。ステップＳ８１０において、第２のユーザは、液晶ディスプレイ２４１に表示された内容を確認する。
【００９８】
以上のようにして、情報機器２００の状態は、エミュレータ４００のエンジンデータを要求する前の状態に戻される。本実施形態によれば、例えば生徒である第２のユーザは、例えば教師である第１のユーザによって行われるエミュレータ４００での操作を手元の情報機器２００で確認した後に、再び自らが入力したデータの編集等を再開することができる。
【００９９】
コンピュータ１００は、各々の情報機器２００のデータを、返還後もストレージ１４０に保持してもよい。すなわち、例えば教師が操作するコンピュータ１００に、例えば生徒が入力した情報機器２００のデータが保存されてもよい。また、情報機器２００にデータを返還する前に、情報機器２００から受け取ったデータをエミュレータ４００で編集し、編集後のデータを情報機器２００に返還してもよい。すなわち、例えば教師がエミュレータ４００を操作して、例えば生徒が情報機器２００を用いて作成したデータを添削してから、添削後のデータを生徒の情報機器２００に返還してもよい。
【０１００】
なお、情報機器２００からエミュレータ４００へのデータの伝達方法が、例えば上述の２次元コードを用いた方法である場合等は、エミュレータ４００から情報機器２００へのデータの返還が行えないこともある。
【０１０１】
上述の一連の処理は一例であって、各々適宜に変更され得る。また、上述の処理以外の処理が含まれてもよいことはもちろんである。また、上述の処理の一部が削除されてもよい。
【０１０２】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の発明が含まれており、開示される複数の構成要件から選択された組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、課題が解決でき、効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【０１０３】
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［１］
情報機器をエミュレートするエミュレータがインストールされた第１の記憶回路を有しているコンピュータであり、第２の記憶回路を有している前記情報機器の実機と通信するコンピュータに、
前記第２の記憶回路に記録された前記実機の動作モードと前記実機に入力された入力データとを含む第１の情報を前記実機から受信することと、
前記第１の情報を前記第１の記憶回路に記録することと、
前記エミュレータの動作モードと前記エミュレータへの入力データとを含む第２の情報を前記実機に送信することと
を実行させるプログラム。
［２］
前記実機からの要求に応じて、前記第１の記憶回路に記録された前記第１の情報を前記実機に送信することをさらに前記コンピュータに実行させる、［１］に記載のプログラム。
［３］
前記情報機器は、前記実機ごとに固有のＩＤ情報を有しており、
前記第１の情報を前記実機から受信することは、前記第１の情報と共に前記実機の前記ＩＤ情報を受信することを含み、
前記第１の情報を前記第１の記憶回路に記録することは、前記第１の情報を前記ＩＤ情報と関連付けて前記第１の記憶回路に記録することを含む、
［１］又は［２］に記載のプログラム。
［４］
前記情報機器は、前記実機ごとに固有のＩＤ情報を有しており、
前記第１の情報を前記実機から受信することは、前記第１の情報と共に前記実機の前記ＩＤ情報を受信することを含み、
前記第１の情報を前記第１の記憶回路に記録することは、前記第１の情報を前記ＩＤ情報と関連付けて前記第１の記憶回路に記録することを含み、
前記実機からの要求に応じて前記第１の情報を前記実機に送信する際に、前記ＩＤ情報に基づいて前記第１の記憶回路に記録された前記第１の情報を特定することをさらに前記コンピュータに実行させる［２］に記載のプログラム。
［５］
前記実機の表示装置の表示領域に一時に表示可能な第１の量の情報を表示可能な第１の表示領域と、前記第１の量よりも多い第２の量の情報を表示可能な第２の表示領域とを、共に前記コンピュータのディスプレイに表示させることをさらに前記コンピュータに実行させる、［１］乃至［４］のうち何れか１項に記載のプログラム。
［６］
前記第２の表示領域への入力操作を受け付けることと、
前記第２の表示領域への前記入力操作に応じて前記第１の表示領域の表示を変更させることと
をさらに前記コンピュータに実行させる［５］に記載のプログラム。
［７］
第１の記憶回路と、
情報機器をエミュレートするエミュレータがインストールされたプロセッサと、
第２の記憶回路を有しており前記情報機器の実機と通信する通信装置と
を備えるコンピュータであって、前記プロセッサは、
前記通信装置を介して、前記第２の記憶回路に記録された前記実機の動作モードと前記実機に入力された入力データとを含む第１の情報を前記実機から受信し、
前記第１の記憶回路に前記第１の情報を記録し、
前記通信装置を介して、前記エミュレータの動作モードと前記エミュレータへの入力データとを含む第２の情報を前記実機に送信する、
コンピュータ。
［８］
ディスプレイをさらに備え、
前記プロセッサは、前記実機の表示装置の表示領域に一時に表示可能な第１の量の情報を表示可能な第１の表示領域と、前記第１の量よりも多い第２の量の情報を表示可能な第２の表示領域とを、共に前記ディスプレイに表示させる、
［７］に記載のコンピュータ。
［９］
情報機器をエミュレートするエミュレータがインストールされた第１の記憶回路を有しているコンピュータと通信し、第２の記憶回路を有している前記情報機器の実機に、
前記第２の記憶回路に記録された前記実機の動作モードと前記実機に入力された入力データとを含む第１の情報を前記コンピュータに送信することと、
前記コンピュータによって送信された前記エミュレータの動作モードと前記エミュレータへの入力データとを含む第２の情報を受信することと、
受信した前記第２の情報に含まれる前記動作モードと前記入力データとを前記第２の記憶回路に記録して前記実機の状態を前記エミュレータの状態と同一にすることと
を実行させるプログラム。
［１０］
前記コンピュータに対して前記第１の情報を要求することと、
前記実機の要求に応じて前記コンピュータによって送信された前記第１の情報を受信することと、
受信した前記第１の情報に含まれる前記動作モードと前記入力データとを前記第２の記憶回路に記録して前記実機の状態を前記第１の情報を前記コンピュータに送信したときの状態と同一にすることと
をさらに前記実機に実行させる［９］に記載のプログラム。
［１１］
前記情報機器は、前記実機ごとに固有のＩＤ情報を有しており、
前記コンピュータに前記第１の情報を送信する際に、当該実機の前記ＩＤ情報を前記第１の情報と共に送信させる、
［９］又は［１０］に記載のプログラム。
［１２］
前記情報機器は、前記実機ごとに固有のＩＤ情報を有しており、
前記コンピュータに前記第１の情報を送信する際に、当該実機の前記ＩＤ情報を前記第１の情報と共に送信させ、
前記コンピュータに対して前記第１の情報を要求する際に、当該実機の前記ＩＤ情報を送信させる、
［１０］に記載のプログラム。
［１３］
情報機器をエミュレートするエミュレータがインストールされた第１の記憶回路を有しているコンピュータと通信する通信装置と、
第２の記憶回路と、
プロセッサと
を備える前記情報機器の実機であって、前記プロセッサは、
前記通信装置を介して、前記第２の記憶回路に記録された前記実機の動作モードと前記実機に入力された入力データとを含む第１の情報を前記コンピュータに送信し、
前記通信装置を介して、前記コンピュータによって送信された前記エミュレータの動作モードと前記エミュレータへの入力データとを含む第２の情報を受信し、
受信した前記第２の情報に含まれる前記動作モードと前記入力データとを前記第２の記憶回路に記録して前記実機の状態を前記エミュレータの状態と同一にする、
情報機器。
［１４］
情報機器をエミュレートするエミュレータがインストールされた第１の記憶回路を有しているコンピュータと、第２の記憶回路を有している前記情報機器の実機とを備える情報処理システムであって、
前記実機は、前記第２の記憶回路に記録された前記実機の動作モードと前記実機に入力された入力データとを含む第１の情報を前記コンピュータに送信し、
前記コンピュータは、前記実機から受信した前記第１の情報を前記第１の記憶回路に記録し、
前記コンピュータは、前記エミュレータの動作モードと前記エミュレータへの入力データとを含む第２の情報を前記実機に送信し、
前記実機は、前記コンピュータから受信した前記第２の情報に含まれる前記動作モードと前記入力データとを前記第２の記憶回路に記録して前記実機の状態を前記エミュレータの状態と同一にする、
情報処理システム。
［１５］
前記エミュレータは、前記実機の表示装置の表示領域に一時に表示可能な第１の量の情報を表示可能な第１の表示領域と、前記第１の量よりも多い第２の量の情報を表示可能な第２の表示領域とを、共に前記コンピュータのディスプレイに表示させる、［１４］に記載の情報処理システム。
［１６］
情報機器をエミュレートするエミュレータがインストールされた第１の記憶回路を有しているコンピュータと、第２の記憶回路を有している前記情報機器の実機とを備える情報処理システムの制御方法であって、
前記実機は、前記第２の記憶回路に記録された前記実機の動作モードと前記実機に入力された入力データとを含む第１の情報を前記コンピュータに送信し、
前記コンピュータは、前記実機から受信した前記第１の情報を前記第１の記憶回路に記録し、
前記コンピュータは、前記エミュレータの動作モードと前記エミュレータへの入力データとを含む第２の情報を前記実機に送信し、
前記実機は、前記コンピュータから受信した前記第２の情報に含まれる前記動作モードと前記入力データとを前記第２の記憶回路に記録して前記実機の状態を前記エミュレータの状態と同一にする、
情報処理システムの制御方法。
［１７］
前記エミュレータは、前記実機の表示装置の表示領域に一時に表示可能な第１の量の情報を表示可能な第１の表示領域と、前記第１の量よりも多い第２の量の情報を表示可能な第２の表示領域とを、共に前記コンピュータのディスプレイに表示させる、［１６］に記載の情報処理システムの制御方法。
【符号の説明】
【０１０４】
１…情報処理システム、１００…コンピュータ、１１０…ＣＰＵ、１２０…ＲＯＭ、１３０…ＲＡＭ、１４０…ストレージ、１５０…入力装置、１５１…キーボード、１５２…マウス、１６０…表示装置、１６１…液晶ディスプレイ、１７０…通信装置、１８０…インターフェース（Ｉ／Ｆ）、１９０…バスライン、２００，２０１，２０２，２０３…情報機器、２１０…プロセッサ、２２０…記憶装置、２３０…入力装置、２３１…入力キー、２４０…表示装置、２４１…液晶ディスプレイ、２５０…通信装置、２９０…バスライン、３００…プロジェクタ、３０１…スクリーン、４００…エミュレータ、４０５…表示画面、４１０…フレーム、４２０…電卓イメージフレーム、４２１…プログラム表示フレーム起動ボタン、４３１…入力キー表示、４４１…表示領域、４５０…プログラム表示フレーム、４５１…閉じるボタン、４６０…コード表示領域、４６１，４６２…ハイライト、４８０…インターフェース、４９０…エンジン、４９１…エンジンメモリ。
【図１】
2019169171.tif 000003
【図２】
2019169171.tif 000004
【図３】
2019169171.tif 000005
【図４】
2019169171.tif 000006
【図５】
2019169171.tif 000007
【図６】
2019169171.tif 000008
【図７】
2019169171.tif 000009
【図８】
2019169171.tif 000010
【図９】
2019169171.tif 000011
【図１０】
2019169171.tif 000012
【図１１】
2019169171.tif 000013
【図１２】
2019169171.tif 000014
【図１３】
2019169171.tif 000015
【図１４】
2019169171.tif 000016