説明

携帯機器とプログラム実行装置を有するシステムと、そのシステムに用いられる携帯機器及びプログラム実行装置

【課題】 プログラムを実行するときの携帯機器の動作を、動作速度を含めて再現することができるシステムを提供する。
【解決手段】 携帯機器とプログラム実行装置を有するシステム。携帯機器は、プログラムを実行しているときに、当該プログラム中の予め決められたコマンドを実行するのに要する時間である実行時間を計測するコマンド実行時間計測手段と、計測した実行時間のデータをプログラム実行装置に送信する送信手段を有している。プログラム実行装置は、受信されたデータにおいて実行時間が定められているコマンドを実行する際に当該コマンドについて定められている実行時間より短い時間で当該コマンドを実行したときは、当該コマンドの実行開始時点から当該コマンドについて定められている実行時間が経過するのを待ってから次のコマンドを実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、携帯機器とプログラム実行装置を有するシステムに関する。より詳細には、携帯機器用のプログラムをプログラム実行装置に実行させることで、プログラム実行装置で携帯機器の動作をシミュレーションするシステムに関する。
【背景技術】
【0002】
携帯機器に実行させるプログラムは、多くの場合、携帯機器よりも演算能力が高い開発用のコンピュータによって作成され、そのコンピュータによって動作確認が行われる。動作確認で問題が生じないことが確認できた段階で、プログラムが携帯機器に移され、携帯機器でそのプログラムが実行される。なお、特許文献1には、携帯機器用に作成されたアプリケーションプログラムを開発用のコンピュータ上で動作可能にする技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平5−342044号
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記の通り、プログラム開発用のコンピュータは、携帯機器よりも演算能力が高い。すなわち、コンピュータは、携帯機器よりも高速でプログラムを実行する。したがって、コンピュータではスムーズに実行できるプログラムが、携帯機器ではスムーズに実行できず、処理時間が大幅に長くなることがある。
【0005】
例えば、携帯機器とその外部装置との間で通信を行うプログラムを作成する場合には、携帯機器から外部装置に対してリクエスト(何らかの信号を返信することを要求する信号)を送り、そのリクエストに対する外部装置からのレスポンスを待つ動作を携帯機器に行わせる場合がある。このような待機動作を実行させるときには、多くの場合、携帯機器に変数のカウントを実行させることで待機時間を規定する。例えば、変数nを1から1000までカウントアップするまで待機する。このような動作を携帯機器とコンピュータとに行わせると、これらの機器の間で変数のカウントアップ速度に差があるため、待機時間に差が生じる。例えば、コンピュータが変数nを1から1000までカウントアップするのに要する時間が0.5secであるのに対して、携帯機器が変数nを1から1000までカウントアップするのに要する時間が5secとなる場合がある。したがって、コンピュータ上で待機時間が0.5秒となるプログラムを作成しても、そのプログラムを携帯機器に実行させると5secもの長い待機時間が生じてしまい、プログラムの修正が必要になってしまう。
【0006】
このように、従来の技術では、コンピュータと携帯機器との間に演算能力の差があるため、プログラムの動作確認をコンピュータで行うときに携帯機器の動作速度を再現することができない。このため、コンピュータの動作確認では問題が生じなかったプログラムを携帯機器では快適に動作させることができず、プログラムを作り直す必要が生じる場合があった。
【0007】
したがって、本明細書では、プログラムを実行するときの携帯機器の動作を、動作速度を含めて再現することができるシステムを提供する。
【課題を解決するための手段】
【0008】
本明細書が開示するシステムは、携帯機器とプログラム実行装置を有する。携帯機器は、第1記憶手段と、第1プログラム実行手段と、コマンド実行時間計測手段と、送信手段とを有している。第1記憶手段は、複数のコマンドで構成されるプログラムを記憶する。第1プログラム実行手段は、第1記憶手段が記憶しているプログラムを実行する。コマンド実行時間計測手段は、第1プログラム実行手段がプログラムを実行しているときに、当該プログラム中の予め決められたコマンドを第1プログラム実行手段が実行するのに要する時間である実行時間を計測する。送信手段は、コマンド実行時間計測手段が計測した実行時間のデータをプログラム実行装置に送信する。プログラム実行装置は、第2記憶手段と、受信手段と、第2プログラム実行手段とを有している。第2記憶手段は、複数のコマンドで構成されるプログラムを記憶する。受信手段は、送信手段が送信する実行時間のデータを受信する。第2プログラム実行手段は、第2記憶手段が記憶しているプログラムを実行する。第2プログラム実行手段は、受信手段で受信されたデータにおいて実行時間が定められているコマンドを実行する際に当該コマンドについて定められている実行時間より短い時間で当該コマンドを実行したときは、当該コマンドの実行開始時点から当該コマンドについて定められている実行時間が経過するのを待ってから次のコマンドを実行する。
【0009】
なお、携帯機器の第1プログラム実行手段とコマンド実行時間計測手段は、CPU等の1つ又は複数の演算手段によって実現することができる。また、プログラム実行装置の第2プログラム実行手段は、CPU等の1つ又は複数の演算手段によって実現することができる。また、第1記憶手段が記憶するプログラムと第2記憶手段が記憶するプログラムは、同じプログラムであってもよいし、異なるプログラムであってもよい。また、「予め決められたコマンド」は、ユーザやサプライヤによって予め決められたコマンドである。予め決められたコマンドは、1つであっても複数であってもよく、プログラム中の全てのコマンドが予め決められたコマンドであってもよい。すなわち、コマンド実行時間計測手段は、プログラム中の全てのコマンドに対して実行時間を計測してもよいし、一部のコマンドに対して実行時間を計測してもよい。また、計測対象のコマンドは、最小単位のコマンドであってもよいし、小さい単位のコマンドが集まって構成されたより大きい単位のコマンドであってもよい。また、上記の「コマンドを実行する」とは、コマンドによって規定された動作を実行することを意味する。また、「プログラムを実行する」とは、プログラム中に含まれる各コマンドを実行することを意味する。また、上記の「送信」及び「受信」は、有線によるものであってもよいし、無線によるものであってもよい。
【0010】
このシステムでは、携帯機器(第1プログラム実行手段)がプログラムを実行しているときに、コマンド実行時間計測手段によってコマンドの実行時間が計測される。そして、計測された実行時間がプログラム実行装置に送信される。プログラム実行装置(第2プログラム実行手段)は、コマンドを実行したときに、当該コマンドについて定められている実行時間より短い時間で当該コマンドを実行した場合には、当該コマンドの実行開始時点から当該コマンドについて定められている実行時間(すなわち、携帯機器で当該コマンドを実行するのに要する時間)が経過するのを待ってから次のコマンドを実行する。すなわち、プログラム実行装置は、携帯機器よりも速くコマンドを実行した場合に、コマンドの実行が完了してからすぐに次のコマンドを実行するのではなく、コマンドの実行が完了した後に所定の遅延時間の経過を待ってから次のコマンドを実行する。その結果、プログラム実行装置がコマンドの実行を開始してから、その次のコマンドの実行を開始するまでの時間が、携帯機器がそのコマンドの実行を開始してから、その次のコマンドの実行を開始するまでの時間と略等しくなる。このため、プログラムの実行時における携帯機器の動作速度をプログラム実行装置で再現することができる。したがって、プログラム実行装置で動作確認した後にそのプログラムを携帯機器に移して実行させた場合に、プログラム実行装置と携帯機器とでプログラムの実行速度に大きな差が生じない。このように、プログラムを実行するときの携帯機器の動作を、動作速度を含めてプログラム実行装置で再現することができるので、プログラムの作り直し等が必要になることが少なくなる。
【0011】
上述したシステムにおいては、携帯機器が、対応付け手段と、動作状態特定手段をさらに有していることが好ましい。第1プログラム実行手段は、携帯機器が第1の動作状態にあるときと、携帯機器が第1の動作状態とは異なる第2の動作状態にあるときのそれぞれにおいて、第1記憶手段が記憶しているプログラムを実行することが好ましい。動作状態特定手段は、第1プログラム実行手段がプログラムを実行しているときの携帯機器の動作状態を特定することが好ましい。コマンド実行時間計測手段は、携帯機器が第1の動作状態にあるときと、携帯機器が第2の動作状態にあるときのそれぞれにおいて、実行時間を計測することが好ましい。対応付け手段は、第1プログラム実行手段がプログラムを実行しているときに動作状態特定手段で特定される動作状態と、そのときにコマンド実行時間計測手段で計測される実行時間とを対応付けた対応付けデータを、第1の動作状態と第2の動作状態のそれぞれについて作成することが好ましい。送信手段は、対応付け手段によって作成された各対応付けデータをプログラム実行装置に送信することが好ましい。プログラム実行装置は、指定手段をさらに有していることが好ましい。受信手段は、送信手段が送信する各対応付けデータを受信することが好ましい。指定手段は、ユーザに動作状態を指定させることが好ましい。第2プログラム実行手段は、受信手段で受信された各対応付けデータの中から、指定手段によって指定された動作状態のときの対応付けデータを特定し、その対応付けデータが有する実行時間のデータに基づいてプログラムを実行することが好ましい。
【0012】
なお、携帯機器の対応付け手段と、動作状態特定手段は、第1プログラム実行手段及びコマンド実行時間計測手段とともに、1つ又は複数の演算手段によって実現することができる。また、動作状態には、様々な要因を含むことができるが、例えば、携帯機器の演算装置のクロック速度が高いか低いか、携帯機器で実行しているプログラムが他に存在するか否か、及び、携帯機器が通信しているか否か等を動作状態として用いることができる。
【0013】
このシステムでは、携帯機器が、第1の動作状態と第2の動作状態のそれぞれにおいてコマンドの実行時間を計測し、動作状態と実行時間とを対応付けたデータをプログラム実行装置に送信する。プログラム実行装置は、ユーザから動作状態の指定を受け、指定された動作状態に対応する実行時間に基づいて、プログラムを実行する。例えば、所定の動作状態がユーザにより指定された場合には、プログラム実行装置は、その動作状態に対応する実行時間に基づいて、その動作状態に対応する速度でプログラムを実行する。したがって、この構成によれば、指定された動作状態における携帯機器の動作速度を、プログラム実行装置で再現することができる。
【0014】
また、上述したシステムに含まれる携帯機器、及び、プログラム実行装置は、それぞれ単体でも有用である。なお、携帯機器が単体である場合には、携帯機器が実行時間のデータを送信する送信先の外部装置は、プログラム実行装置であってもよいし、その他の外部装置であってもよい。また、プログラム実行装置が単体である場合には、実行時間のデータの送信元の外部装置は、携帯機器であってもよいし、その他の外部装置であってもよい。すなわち、実行時間のデータが携帯機器からプログラム実行装置に直接送信されてもよいし、実行時間のデータが携帯機器から他の外部装置(例えば、サーバ等)に一旦送信され、その後に、当該他の外部装置からプログラム実行装置に当該実行時間のデータが送信されてもよい。
【図面の簡単な説明】
【0015】
【図1】実施例のシステムを示すブロック図。
【図2】携帯機器10におけるコマンド実行時間計測処理を示すフローチャート。
【図3】動作状態1〜4における各コマンドの実行時間の例を示す図。
【図4】PC50における動作確認処理を示すフローチャート
【図5】待機処理用のコマンド群を示す図。
【発明を実施するための形態】
【実施例】
【0016】
図1は、携帯機器10とパーソナルコンピュータ50(以下、PC50という)とにより構成されたシステムを示している。本実施例では、携帯機器10は、バーコードリーダである。但し、携帯機器10は、2次元コードリーダ、及び、RFIDリーダ等の他の携帯可能な機器であってもよい。PC50は、携帯機器10で使用するアプリケーションプログラムを作成するための開発用のPCである。携帯機器10は、PC50及びその他の外部装置と無線通信することができる。
【0017】
携帯機器10は、演算装置20と、無線通信装置22と、記憶装置24と、バーコード読取装置26と、表示装置28と、入力装置30を有している。演算装置20は、無線通信装置22、記憶装置24、バーコード読取装置26、表示装置28、及び、入力装置30と電気的に接続されている。バーコード読取装置26は、バーコードから光学的に波形を検出する。演算装置20は、バーコード読取装置26で得られた波形に基づいてバーコードをデコードする。また、演算装置20は、記憶装置24に記憶されている種々のプログラムを実行することができる。また、演算装置20は、タイマを内蔵しており、時間を計測することができる。表示装置28は、演算装置20から入力されるデータに従って、種々の表示を行う。例えば、演算装置20がデコードしたデータは、表示装置28に表示される。記憶装置24は、種々のデータを記憶することができる。記憶装置24は、テストプログラム32と、コマンド実行時間計測プログラム34を記憶している。テストプログラム32は、インタープリタ型のプログラムである。テストプログラム32は、演算装置20で解釈、実行可能な多数のコマンドにより構成されている。テストプログラム32に含まれるコマンドには、例えば、「ABS」、「CHKDGT$」、「CHR$」等が含まれる。なお、「ABS」は引数の絶対値を返すコマンドであり、「CHKDGT$」は引数(例えば、携帯機器10で読み取ったバーコードの値)のチェックディジット値を返すコマンドであり、「CHR$」は引数のASCIIコードに対応する文字を返すコマンドである。これらのコマンドのように、テストプログラム32には、携帯機器10で実行可能な多数のコマンドが含まれている。コマンド実行時間計測プログラム34は、演算装置20がコマンドを実行する時間を計測するプログラムである。コマンド実行時間計測プログラム34は、例えば、演算装置20がテストプログラム32中の各コマンドを実行するのに要する時間を測定する際に用いられる。無線通信装置22は、PC50やその他の外部機器と無線通信を行う。
【0018】
PC50は、演算装置60と、無線通信装置62と、記憶装置64と、表示装置66と、入力装置68を有している。PC50は、携帯機器10用のプログラムを作成するのに用いられる。演算装置60は、無線通信装置62、記憶装置64、表示装置66、及び、入力装置68と電気的に接続されている。演算装置60は、入力装置68を用いたユーザによる入力に基づいて、携帯機器10で実行可能なプログラムを作成する。また、演算装置60は、タイマを内蔵しており、時間を計測することができる。表示装置66は、演算装置60から入力されるデータに従って、種々の表示を行う。記憶装置64は、種々のデータを記憶することができる。記憶装置64は、動作確認プログラム72を記憶している。また、記憶装置64は、PC50で作成された携帯機器10用のプログラムを記憶する。PC50で作成される携帯機器10用のプログラムは、上述したテストプログラム32と同じプログラム言語で記述される。図1では、PC50で作成された携帯機器10用のプログラムとして、アプリケーションプログラム74が示されている。
【0019】
次に、携帯機器10で行うコマンド実行時間計測処理について説明する。携帯機器10の入力装置30で所定の操作を行うと、携帯機器10の演算装置20は、コマンド実行時間計測プログラム34を実行する。これによって、演算装置20は、図2に示すコマンド実行時間計測処理を実行する。
【0020】
ステップS2では、演算装置20は、コマンド実行時間を計測すべきプログラムを選択する旨のメッセージを表示装置28に表示させる。携帯機器10のユーザが入力装置30で所定の操作を行うことで、記憶装置24が記憶しているプログラムの中からプログラムを選択することができる。例えば、ステップS2でテストプログラム32を選択することができる。
【0021】
ステップS4では、演算装置20は携帯機器10の動作状態を設定する。図3は、携帯機器10の動作状態の一覧を示している。図示された動作状態1〜4の4種類の動作状態で、携帯機器10は動作することができる。動作状態を規定する要素には、CPUクロック(演算装置20が有するCPUのクロック周波数)と、無線(無線通信装置22を使用するか否か)が含まれる。CPUクロックは、HIGH(高い状態)とNORMAL(通常の状態)とに切り換えることができる。CPUクロックが高いと、コマンドの実行速度は速くなる。また、無線は、使用と不使用とに切り換えることができる。無線を使用していると、CPUへの負荷が高まるので、コマンドの実行速度は遅くなる。後に詳述するが、ステップS4は、4回実行される。携帯機器10の動作状態は、最初のステップS4では動作状態1に設定され、2回目のステップS4では動作状態2に設定され、3回目のステップS4では動作状態3に設定され、4回目のステップS4では動作状態4に設定される。ステップS4以降の動作は、ステップS4で設定された動作状態で行われる。
【0022】
ステップS6〜S14では、演算装置20は、ステップS2で選択されたプログラム(例えば、テストプログラム32)に記述されている各コマンドを順番に実行するとともに、各コマンドの実行時間を計測する。具体的には、まず、演算装置20は、ステップS6で、タイマをスタートする。ステップS8では、演算装置20は、選択されたプログラムの中のコマンドを選択し、そのコマンドを解釈、実行する。より具体的には、演算装置20は、選択したコマンドに対応する機械語を特定し(解釈)、特定した機械語に対応する動作を実行する。ステップS8は、ステップS6と略同時に開始される。そして、ステップS8でコマンドの実行が完了すると、その完了したタイミングと略同時に、ステップS10でタイマがストップされる。これによって、ステップS8のコマンド実行時間(演算装置20がコマンドを解釈して実行するのに要した時間)が計測される。ステップS12では、演算装置20は、計測したコマンド実行時間を記憶装置24に保存する。なお、コマンド実行時間は、携帯機器10の動作状態と対応付けた状態で記憶される。例えば、図3の例では、動作状態1に対応するコマンド1のコマンド実行時間として、50msecというデータが記憶されている。このように、ステップS12では、動作状態毎、及び、コマンド毎に区別してコマンド実行時間が保存される。ステップS14では、演算装置20は、プログラムが終了したか否かを判定する。プログラム中に実行すべきコマンドが残っている場合には、再度、ステップS6〜S14の処理が実行される。再度実行されるステップS8では、前回のステップS8で実行したコマンドの次のコマンドが選択されて実行される。したがって、ステップS6〜S14が繰り返されることで、選択されたプログラム中に含まれる各コマンドの実行時間が計測され、計測された実行時間が記憶装置24に順次記憶されていく。
【0023】
ステップS14でプログラムが終了したと判定した場合には、演算装置20は、ステップS16で、動作状態1〜4の全てにおいてコマンド実行時間を計測したか否かを判定する。ステップS16でNOの場合には、演算装置20は、再度、ステップS4を実行する。上述したように、ステップS4では、動作状態が切り換えられる。そして、切り換えられた動作状態で、再度、ステップS6〜S14が繰り返し実行され、その動作状態における各コマンドの実行時間が計測される。ステップS16でYESと判定された場合には、演算装置20は、図2の処理を終了する。
【0024】
したがって、ステップS2でプログラムが選択されると、以下のように、演算装置20が動作する。まず、最初のステップS4では、携帯機器10の動作状態が動作状態1に設定される。したがって、その後のステップS6〜S14で動作状態1における各コマンドの実行時間が計測される。次に、ステップS16でNOと判定され、2回目のステップS4で動作状態が動作状態2に切り換えられる。したがって、その後のステップS6〜S14で、動作状態2における各コマンドの実行時間が計測される。次に、ステップS16でNOと判定され、3回目のステップS4で動作状態が動作状態3に切り換えられる。したがって、その後のステップS6〜S14で動作状態3における各コマンドの実行時間が計測される。次に、ステップS16でNOと判定され、4回目のステップS4で動作状態が動作状態4に切り換えられる。したがって、その後のステップS6〜S14で動作状態4における各コマンドの実行時間が計測される。次に、ステップS16でYESと判定され、図2の処理が終了する。以上の処理によって、図3に示すように、動作状態毎に対応付けて、各コマンドの実行時間を示すデータが得られる。以下では、コマンド実行時間計測処理によって得られたデータを、実行時間データベースという。
【0025】
コマンド実行時間計測処理後に、入力装置30で所定の操作を行うと、携帯機器10からPC50に無線通信によって実行時間データベースを送信することができる。PC50に送信された実行時間データベースは、記憶装置64に記憶される。
【0026】
次に、PC50で行うプログラムの動作確認処理について説明する。以下に説明する動作確認処理は、PC50の記憶装置64が実行時間データベースを記憶している状態で(すなわち、携帯機器10からPC50に実行時間データベースが送信された後に)実行される。PC50の入力装置68で所定の操作を行うと、PC50の演算装置60は、動作確認プログラム72を実行する。これによって、演算装置60は、図4に示す動作確認処理を実行する。
【0027】
ステップS32では、演算装置60は、動作確認すべきプログラムを選択する旨のメッセージを表示装置66に表示させる。PC50のユーザは、入力装置68で所定の操作を行うことで、記憶装置64が記憶しているプログラムの中から動作確認すべきプログラムを選択することができる。例えば、ステップS32では、アプリケーションプログラム74を選択することができる。
【0028】
ステップS34では、演算装置60は、記憶装置64から実行時間データベースを読み出す。
【0029】
ステップS36では、演算装置60は、実行時間データベースにおいて規定されている動作状態1〜4の中から、再現すべき動作状態を選択する旨のメッセージを表示装置66に表示させる。PC50のユーザは、入力装置68で所定の操作を行うことで、動作状態1〜4の中から1つの動作状態を選択することができる。ここで選択された動作状態における携帯機器10の動作速度が、後のステップでPC50によって再現される。
【0030】
ステップS38〜S48では、演算装置60は、ステップS32で選択されたプログラム(例えば、アプリケーションプログラム74)に記述されている各コマンドを、時間を調節しながら順番に実行する。具体的には、まず、演算装置60は、ステップS38で、タイマをスタートする。ステップS40では、演算装置60は、選択されたプログラムの中のコマンドを選択し、そのコマンドを解釈、実行する。より具体的には、演算装置60は、選択したコマンドに対応する機械語を特定し(解釈)、特定した機械語に対応する動作を実行する。ステップS40は、ステップS38と略同時に開始される。そして、ステップS40でコマンドの実行が完了すると、その完了したタイミングと略同時に、ステップS42でタイマがストップされる。これによって、ステップS40における演算装置60のコマンド実行時間(演算装置60がコマンドを解釈して実行するのに要した時間)が計測される。なお、PC50の演算装置60は携帯機器10の演算装置20よりも演算能力が高い。このため、携帯機器10がいずれの動作状態にある場合であっても、PC50のコマンド実行時間(すなわち、演算装置60のコマンド実行時間)は携帯機器10のコマンド実行時間(すなわち、演算装置20のコマンド実行時間)よりも短くなる。次に、演算装置60は、ステップS44で遅延時間を算出する。具体的には、ステップS44では、演算装置60は、実行時間データベースの中から、ステップS36で選択された動作状態に対応し、直前のステップS40で実行したコマンドに対応するコマンド実行時間(すなわち、携帯機器10のコマンド実行時間)を特定する。例えば、ステップS36で動作状態2が選択されており、直前のステップS40で実行したコマンドがコマンド1である場合には、携帯機器10のコマンド実行時間として40msecが特定される(図3参照)。携帯機器10のコマンド実行時間を特定したら、演算装置60は、特定した携帯機器10のコマンド実行時間から、ステップS42で計測したPC50のコマンド実行時間を減算することによって、遅延時間を算出する。例えば、携帯機器10のコマンド実行時間として40msecが特定されており、PC50のコマンド実行時間として15msecが計測された場合には、遅延時間として25msecが算出される。なお、上記の通り、PC50のコマンド実行時間は携帯機器10のコマンド実行時間よりも短いので、遅延時間として必ず正の値が算出される。ステップS46では、演算装置60は、ステップS42でタイマをストップしたタイミングから遅延時間(直前のステップS44で算出した遅延時間)が経過するまで待機する。遅延時間が経過すると、演算装置60は、ステップS48でプログラムが終了したか否かを判定する。プログラム中に実行すべきコマンドが残っている場合には、再度、ステップS38〜S48の処理が実行される。再度実行されるステップS40では、前回のステップS40で実行したコマンドの次のコマンドが選択されて実行される。したがって、ステップS38〜S48が繰り返されることで、プログラム中に含まれる各コマンドが順次実行される。ステップS48でYESと判定されると、動作確認処理は終了する。
【0031】
以上に説明したように、PC50はステップS40において携帯機器10よりも早くコマンドの実行を完了するが、コマンドの実行が完了した後のステップS46で遅延時間が挿入される。この遅延時間は、携帯機器10のコマンド実行時間とPC50のコマンド実行時間の差分として算出される。したがって、PC50がステップS38〜S48を1サイクルする時間は、携帯機器10が同一のコマンドを実行する時間と略等しくなる。例えば、上述した様に、携帯機器10のコマンド実行時間が40msecであり、PC50のコマンド実行時間が15msecである場合には、ステップS46で25msecの遅延時間が挿入される。その結果、PC50でステップS38〜S48の1サイクルを実行する時間が約40msecとなり、携帯機器10のコマンド実行時間と略等しくなる。つまり、PC50は、コマンドの実行開始時点(すなわち、ステップ8の開始時点)からそのコマンドについて定められている実行時間(携帯機器10での実行時間)が経過するのを待ってから、つぎのコマンド(すなわち、次のステップS8)を開始する。PC50はステップS38〜S48の1サイクル毎に1つのコマンドを実行するので、この1サイクルの時間はPC50の実質的なコマンド実行時間ということができる。すなわち、動作確認処理では、携帯機器10のコマンド実行時間と、PC50の実質的なコマンド実行時間とが略等しくなる。したがって、動作確認処理では、PC50で、携帯機器10と略同じ動作速度でプログラムを実行することができる。すなわち、PC50で、携帯機器10の動作速度を再現することができる。
【0032】
以上に説明したように、実施例のシステムでは、PC50で、携帯機器10の動作速度を再現することができる。したがって、携帯機器10用のアプリケーションプログラムをPC50で作成した後に、PC50で動作速度まで含めた動作確認を行うことができる。このため、動作確認したアプリケーションプログラムを携帯機器10に移し、携帯機器10でそのアプリケーションプログラムを実行したときに、携帯機器10の動作速度とPC50での動作確認時の動作速度との間の差がほとんど生じない。このため、実施例のシステムでは、携帯機器10でアプリケーションプログラムを動作させる段階で、動作速度の不具合が生じることを防止することができる。
【0033】
例えば、外部からのデータの受信待ち等の動作を行う場合等のように、携帯機器10を一定時間待機させるコマンド群として、図5に示すコマンド群を考える。なお、図5のコマンドS80は変数「counter」に1000を入力するコマンドであり、コマンドS82は変数「counter」が0であるか否かを判定するコマンドであり、コマンドS84は変数「counter」から1減算するコマンドである。コマンドS80で変数「counter」が1000に設定された後、コマンドS82でYESと判定されるまで、コマンドS80とコマンドS82が繰り返される。コマンドS80、S82を1サイクルする度に変数「counter」が1ずつ小さくなる。変数「counter」が0になると、コマンドS82でYESと判定されて、待機動作が終了する(図示しない次のコマンドが実行される)。
PCでのコマンドS80〜S84のコマンド実行時間が共に0.2msecであるとすると、図5の待機処理に要する時間は約0.4secとなる。すなわち、PCは、約0.4sec待機する。一方、携帯機器のコマンドS80〜S84のコマンド実行時間が共に2msecであるとすると、図5の待機処理に要する時間は約4secとなる。すなわち、携帯機器は、約4sec待機する。したがって、従来のシステムでは、PCの動作確認で待機時間が0.4secとなるようにアプリケーションプログラムを作成しても、携帯機器では待機時間が4secとなってしまい、アプリケーションプログラムの修正が必要となる。本実施例のシステムでは、PC50での動作確認と携帯機器10の動作とで動作速度に差がほとんど生じないので、このような問題が生じない。PC50の動作確認の段階で、適切に待機時間(すなわち、変数「counter」の初期値)を設定することができる。したがって、携帯機器10で動作させる段階になって、アプリケーションプログラムの修正作業が必要となることがほとんどなくなる。
【0034】
また、上述した実施例のシステムでは、携帯機器10が、携帯機器10の動作状態毎に各コマンドの実行時間を計測する。そして、PC50は、ユーザによって指定された動作状態に対応するコマンド実行時間を用いて遅延時間を算出する。すなわち、指定された動作状態に応じて、遅延時間の値が変更される。したがって、PC50は、指定された動作状態に応じた速度で動作確認処理を実行することができる。すなわち、PC50は、ユーザによって指定された動作状態における携帯機器10の動作速度を再現することができる。したがって、各動作状態を考慮して、携帯機器10用のアプリケーションプログラムをPC50で作成することができる。なお、実施例1では、CPUクロックと無線を動作状態の要素としていたが、その他の要素を用いてもよい。例えば、携帯機器10においてバックグラウンドで動作しているプログラムの有無等を動作状態として用いてもよい。
【0035】
以下に、実施例1のシステムと請求項のシステムとの対応関係について説明する。携帯機器10の記憶装置24は、複数のコマンドで構成されるプログラム(テストプログラム32)を記憶しており、請求項の第1記憶手段に対応する。また、演算装置20は、記憶装置24が記憶しているテストプログラム32を実行し、そのテストプログラム32中の各コマンドの実行時間を計測するので、請求項の第1プログラム実行手段及びコマンド実行時間計測手段に対応する。また、演算装置20は、動作状態1〜4のそれぞれでテストプログラム32を実行し、各動作状態において各コマンドの実行時間を計測し、動作状態と各コマンドの実行時間とを対応付けたデータを作成する。したがって、演算装置20は、請求項の対応付け手段にも対応する。また、ステップS4で動作状態を設定することで、演算装置20は、ステップS8における携帯機器10の動作状態を認識している。これは、携帯機器10の動作状態を特定することに等しい。したがって、演算装置20は、請求項の動作状態特定手段にも対応する。無線通信装置22は、得られたコマンド実行時間のデータをPC50に送信するので、請求項の送信手段に対応する。PC50の記憶装置64は、複数のコマンドで構成されるアプリケーションプログラム74を記憶しており、請求項の第2記憶手段に対応する。無線通信装置62は、携帯機器10からコマンド実行時間のデータを受信するので、請求項の受信手段に対応する。演算装置60は、携帯機器10のコマンド実行時間のデータに従って遅延時間を挿入しながらアプリケーションプログラム74を実行するので、請求項の第2プログラム実行手段に対応する。入力装置68は、PC50のユーザに動作状態を指定させるので、請求項の指定手段に対応する。
【0036】
なお、上述した実施例では、携帯機器10の記憶装置24に予めテストプログラム32とコマンド実行時間計測プログラム34が保存されていたが、PC50から携帯機器10にこれらのプログラムの一方または両方を送信するようにしてもよい。また、携帯機器10で予め計測しておいたコマンド実行時間のデータをサーバにアップロードしておき、そのサーバからPC50にコマンド実行時間のデータをダウンロードするようにしてもよい。
【0037】
また、上述した実施例では、コマンド実行時間を計測するためにコマンド実行時間計測処理を実行した。しかしながら、携帯機器10の通常使用時に自動的にコマンド実行時間計測プログラム34が動作するようにしておき、携帯機器10の通常使用時にコマンド実行時間計測処理を同時に行うようにしてもよい。この場合には、演算装置20が、通常使用時における携帯機器10の動作状態を特定し、動作状態毎に区別してコマンド実行時間を記憶することが好ましい。このような構成によれば、通常使用時に自動的にコマンド実行時間のデータが蓄積される。
【0038】
また、上述した実施例では、携帯機器10でプログラム中の全てのコマンドについてコマンド実行時間を計測したが、一部のコマンド(例えば、携帯機器10とPC50とのコマンド実行時間の差が顕著となるコマンド)のみについてコマンド実行時間を計測するようにしてもよい。また、携帯機器10で同一のコマンドについて複数回コマンド実行時間を計測し、得られたデータを平均化等したデータをPC50に送信するようにしてもよい。また、PC50で動作確認するプログラムの中にコマンド実行時間データベースにおいてコマンド実行時間が定められていないコマンドが存在する場合には、PC50は、そのコマンドを実行する際には遅延時間を挿入しなくてもよいし、遅延時間を予測して挿入してもよい。
【0039】
また、PC50で動作確認するアプリケーションプログラムの中に、CPUクロックや無線の使用の有無等の動作状態を変更するコマンドが含まれている場合には、その動作状態の変更に合わせて、コマンド実行時間データベースの中で使用するコマンド実行時間を変更するようにしてもよい。例えば、アプリケーションプログラム中のコマンドによって動作状態1から動作状態2に切り換えられる場合には、PC50の演算装置60は、切り換え前においては動作状態1用のコマンド実行時間により遅延時間を算出し、切り換え後においては動作状態2用のコマンド実行時間により遅延時間を算出することができる。
【0040】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例をさまざまに変形、変更したものが含まれる。
本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【0041】
10:携帯機器
20:演算装置
22:無線通信装置
24:記憶装置
26:バーコード読取装置
28:表示装置
30:入力装置
32:テストプログラム
34:コマンド実行時間計測プログラム
50:PC
60:演算装置
62:無線通信装置
64:記憶装置
66:表示装置
68:入力装置
72:動作確認プログラム
74:アプリケーションプログラム

【特許請求の範囲】
【請求項1】
携帯機器とプログラム実行装置を有するシステムであって、
携帯機器は、
複数のコマンドで構成されるプログラムを記憶する第1記憶手段と、
第1記憶手段が記憶しているプログラムを実行する第1プログラム実行手段と、
第1プログラム実行手段がプログラムを実行しているときに、当該プログラム中の予め決められたコマンドを第1プログラム実行手段が実行するのに要する時間である実行時間を計測するコマンド実行時間計測手段と、
コマンド実行時間計測手段が計測した実行時間のデータをプログラム実行装置に送信する送信手段と、
を有しており、
プログラム実行装置は、
複数のコマンドで構成されるプログラムを記憶する第2記憶手段と、
送信手段が送信する実行時間のデータを受信する受信手段と、
第2記憶手段が記憶しているプログラムを実行する第2プログラム実行手段と、
を有しており、
第2プログラム実行手段は、受信手段で受信されたデータにおいて実行時間が定められているコマンドを実行する際に当該コマンドについて定められている実行時間より短い時間で当該コマンドを実行したときは、当該コマンドの実行開始時点から当該コマンドについて定められている実行時間が経過するのを待ってから次のコマンドを実行する、
ことを特徴とするシステム。
【請求項2】
携帯機器が、対応付け手段と、動作状態特定手段をさらに有しており、
第1プログラム実行手段は、携帯機器が第1の動作状態にあるときと、携帯機器が第1の動作状態とは異なる第2の動作状態にあるときのそれぞれにおいて、第1記憶手段が記憶しているプログラムを実行し、
動作状態特定手段は、第1プログラム実行手段がプログラムを実行しているときの携帯機器の動作状態を特定し、
コマンド実行時間計測手段は、携帯機器が第1の動作状態にあるときと、携帯機器が第2の動作状態にあるときのそれぞれにおいて、実行時間を計測し、
対応付け手段は、第1プログラム実行手段がプログラムを実行しているときに動作状態特定手段で特定される動作状態と、そのときにコマンド実行時間計測手段で計測される実行時間とを対応付けた対応付けデータを、第1の動作状態と第2の動作状態のそれぞれについて作成し、
送信手段は、対応付け手段によって作成された各対応付けデータをプログラム実行装置に送信し、
プログラム実行装置は、指定手段をさらに有しており、
受信手段は、送信手段が送信する各対応付けデータを受信し、
指定手段は、ユーザに動作状態を指定させ、
第2プログラム実行手段は、受信手段で受信された各対応付けデータの中から、指定手段によって指定された動作状態のときの対応付けデータを特定し、その対応付けデータが有する実行時間のデータに基づいてプログラムを実行する、
ことを特徴とする請求項1に記載のシステム。
【請求項3】
携帯機器であって、
複数のコマンドで構成されるプログラムを記憶する記憶手段と、
記憶手段が記憶しているプログラムを実行するプログラム実行手段と、
プログラム実行手段がプログラムを実行しているときに、当該プログラム中の予め決められたコマンドをプログラム実行手段が実行するのに要する時間である実行時間を計測するコマンド実行時間計測手段と、
コマンド実行時間計測手段が計測した実行時間のデータを外部装置に送信する送信手段と、
を有している携帯機器。
【請求項4】
対応付け手段と、動作状態特定手段をさらに有しており、
プログラム実行手段は、携帯機器が第1の動作状態にあるときと、携帯機器が第1の動作状態とは異なる第2の動作状態にあるときのそれぞれにおいて、記憶手段が記憶しているプログラムを実行し、
動作状態特定手段は、プログラム実行手段がプログラムを実行しているときの携帯機器の動作状態を特定し、
コマンド実行時間計測手段は、携帯機器が第1の動作状態にあるときと、携帯機器が第2の動作状態にあるときのそれぞれにおいて、実行時間を計測し、
対応付け手段は、プログラム実行手段がプログラムを実行しているときに動作状態特定手段で特定される動作状態と、そのときにコマンド実行時間計測手段で計測される実行時間とを対応付けた対応付けデータを、第1の動作状態と第2の動作状態のそれぞれについて作成し、
送信手段は、対応付け手段によって作成された各対応付けデータを外部装置に送信する、
ことを特徴とする請求項3に記載の携帯機器。
【請求項5】
プログラム実行装置であって、
複数のコマンドで構成されるプログラムを記憶する記憶手段と、
携帯機器が記憶しているプログラム中の予め決められたコマンドを携帯機器が実行するのに要する時間である実行時間を計測したデータである実行時間のデータを、外部装置から受信する受信手段と、
記憶手段が記憶しているプログラムを実行するプログラム実行手段と、
を有しており、
プログラム実行手段は、受信手段で受信されたデータにおいて実行時間が定められているコマンドを実行する際に当該コマンドについて定められている実行時間より短い時間で当該コマンドを実行したときは、当該コマンドの実行開始時点から当該コマンドについて定められている実行時間が経過するのを待ってから次のコマンドを実行する、
ことを特徴とするプログラム実行装置。
【請求項6】
指定手段をさらに有しており、
受信手段は、携帯機器が記憶しているプログラムを携帯機器が実行しているときの携帯機器の動作状態と、そのときの実行時間とを対応付けた対応付けデータを外部装置から受信し、
指定手段は、ユーザに動作状態を指定させ、
プログラム実行手段は、受信手段で受信された各対応付けデータの中から、指定手段によって指定された動作状態のときの対応付けデータを特定し、その対応付けデータが有する実行時間のデータに基づいてプログラムを実行する、
ことを特徴とする請求項5に記載のプログラム実行装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate