(57)【要約】【課題】  プログラムを実行するときの携帯機器の動作を、動作速度を含めて再現することができるシステムを提供する。【解決手段】  携帯機器とプログラム実行装置を有するシステム。携帯機器は、プログラムを実行しているときに、当該プログラム中の予め決められたコマンドを実行するのに要する時間である実行時間を計測するコマンド実行時間計測手段と、計測した実行時間のデータをプログラム実行装置に送信する送信手段を有している。プログラム実行装置は、受信されたデータにおいて実行時間が定められているコマンドを実行する際に当該コマンドについて定められている実行時間より短い時間で当該コマンドを実行したときは、当該コマンドの実行開始時点から当該コマンドについて定められている実行時間が経過するのを待ってから次のコマンドを実行する。【選択図】図４
2012203845.tif 000002
【特許請求の範囲】
【請求項１】
携帯機器とプログラム実行装置を有するシステムであって、
携帯機器は、
複数のコマンドで構成されるプログラムを記憶する第１記憶手段と、
第１記憶手段が記憶しているプログラムを実行する第１プログラム実行手段と、
第１プログラム実行手段がプログラムを実行しているときに、当該プログラム中の予め決められたコマンドを第１プログラム実行手段が実行するのに要する時間である実行時間を計測するコマンド実行時間計測手段と、
コマンド実行時間計測手段が計測した実行時間のデータをプログラム実行装置に送信する送信手段と、
を有しており、
プログラム実行装置は、
複数のコマンドで構成されるプログラムを記憶する第２記憶手段と、
送信手段が送信する実行時間のデータを受信する受信手段と、
第２記憶手段が記憶しているプログラムを実行する第２プログラム実行手段と、
を有しており、
第２プログラム実行手段は、受信手段で受信されたデータにおいて実行時間が定められているコマンドを実行する際に当該コマンドについて定められている実行時間より短い時間で当該コマンドを実行したときは、当該コマンドの実行開始時点から当該コマンドについて定められている実行時間が経過するのを待ってから次のコマンドを実行する、
ことを特徴とするシステム。
【請求項２】
携帯機器が、対応付け手段と、動作状態特定手段をさらに有しており、
第１プログラム実行手段は、携帯機器が第１の動作状態にあるときと、携帯機器が第１の動作状態とは異なる第２の動作状態にあるときのそれぞれにおいて、第１記憶手段が記憶しているプログラムを実行し、
動作状態特定手段は、第１プログラム実行手段がプログラムを実行しているときの携帯機器の動作状態を特定し、
コマンド実行時間計測手段は、携帯機器が第１の動作状態にあるときと、携帯機器が第２の動作状態にあるときのそれぞれにおいて、実行時間を計測し、
対応付け手段は、第１プログラム実行手段がプログラムを実行しているときに動作状態特定手段で特定される動作状態と、そのときにコマンド実行時間計測手段で計測される実行時間とを対応付けた対応付けデータを、第１の動作状態と第２の動作状態のそれぞれについて作成し、
送信手段は、対応付け手段によって作成された各対応付けデータをプログラム実行装置に送信し、
プログラム実行装置は、指定手段をさらに有しており、
受信手段は、送信手段が送信する各対応付けデータを受信し、
指定手段は、ユーザに動作状態を指定させ、
第２プログラム実行手段は、受信手段で受信された各対応付けデータの中から、指定手段によって指定された動作状態のときの対応付けデータを特定し、その対応付けデータが有する実行時間のデータに基づいてプログラムを実行する、
ことを特徴とする請求項１に記載のシステム。
【請求項３】
携帯機器であって、
複数のコマンドで構成されるプログラムを記憶する記憶手段と、
記憶手段が記憶しているプログラムを実行するプログラム実行手段と、
プログラム実行手段がプログラムを実行しているときに、当該プログラム中の予め決められたコマンドをプログラム実行手段が実行するのに要する時間である実行時間を計測するコマンド実行時間計測手段と、
コマンド実行時間計測手段が計測した実行時間のデータを外部装置に送信する送信手段と、
を有している携帯機器。
【請求項４】
対応付け手段と、動作状態特定手段をさらに有しており、
プログラム実行手段は、携帯機器が第１の動作状態にあるときと、携帯機器が第１の動作状態とは異なる第２の動作状態にあるときのそれぞれにおいて、記憶手段が記憶しているプログラムを実行し、
動作状態特定手段は、プログラム実行手段がプログラムを実行しているときの携帯機器の動作状態を特定し、
コマンド実行時間計測手段は、携帯機器が第１の動作状態にあるときと、携帯機器が第２の動作状態にあるときのそれぞれにおいて、実行時間を計測し、
対応付け手段は、プログラム実行手段がプログラムを実行しているときに動作状態特定手段で特定される動作状態と、そのときにコマンド実行時間計測手段で計測される実行時間とを対応付けた対応付けデータを、第１の動作状態と第２の動作状態のそれぞれについて作成し、
送信手段は、対応付け手段によって作成された各対応付けデータを外部装置に送信する、
ことを特徴とする請求項３に記載の携帯機器。
【請求項５】
プログラム実行装置であって、
複数のコマンドで構成されるプログラムを記憶する記憶手段と、
携帯機器が記憶しているプログラム中の予め決められたコマンドを携帯機器が実行するのに要する時間である実行時間を計測したデータである実行時間のデータを、外部装置から受信する受信手段と、
記憶手段が記憶しているプログラムを実行するプログラム実行手段と、
を有しており、
プログラム実行手段は、受信手段で受信されたデータにおいて実行時間が定められているコマンドを実行する際に当該コマンドについて定められている実行時間より短い時間で当該コマンドを実行したときは、当該コマンドの実行開始時点から当該コマンドについて定められている実行時間が経過するのを待ってから次のコマンドを実行する、
ことを特徴とするプログラム実行装置。
【請求項６】
指定手段をさらに有しており、
受信手段は、携帯機器が記憶しているプログラムを携帯機器が実行しているときの携帯機器の動作状態と、そのときの実行時間とを対応付けた対応付けデータを外部装置から受信し、
指定手段は、ユーザに動作状態を指定させ、
プログラム実行手段は、受信手段で受信された各対応付けデータの中から、指定手段によって指定された動作状態のときの対応付けデータを特定し、その対応付けデータが有する実行時間のデータに基づいてプログラムを実行する、
ことを特徴とする請求項５に記載のプログラム実行装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、携帯機器とプログラム実行装置を有するシステムに関する。より詳細には、携帯機器用のプログラムをプログラム実行装置に実行させることで、プログラム実行装置で携帯機器の動作をシミュレーションするシステムに関する。
【背景技術】
【０００２】
携帯機器に実行させるプログラムは、多くの場合、携帯機器よりも演算能力が高い開発用のコンピュータによって作成され、そのコンピュータによって動作確認が行われる。動作確認で問題が生じないことが確認できた段階で、プログラムが携帯機器に移され、携帯機器でそのプログラムが実行される。なお、特許文献１には、携帯機器用に作成されたアプリケーションプログラムを開発用のコンピュータ上で動作可能にする技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平５−３４２０４４号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の通り、プログラム開発用のコンピュータは、携帯機器よりも演算能力が高い。すなわち、コンピュータは、携帯機器よりも高速でプログラムを実行する。したがって、コンピュータではスムーズに実行できるプログラムが、携帯機器ではスムーズに実行できず、処理時間が大幅に長くなることがある。
【０００５】
例えば、携帯機器とその外部装置との間で通信を行うプログラムを作成する場合には、携帯機器から外部装置に対してリクエスト（何らかの信号を返信することを要求する信号）を送り、そのリクエストに対する外部装置からのレスポンスを待つ動作を携帯機器に行わせる場合がある。このような待機動作を実行させるときには、多くの場合、携帯機器に変数のカウントを実行させることで待機時間を規定する。例えば、変数ｎを１から１０００までカウントアップするまで待機する。このような動作を携帯機器とコンピュータとに行わせると、これらの機器の間で変数のカウントアップ速度に差があるため、待機時間に差が生じる。例えば、コンピュータが変数ｎを１から１０００までカウントアップするのに要する時間が０．５ｓｅｃであるのに対して、携帯機器が変数ｎを１から１０００までカウントアップするのに要する時間が５ｓｅｃとなる場合がある。したがって、コンピュータ上で待機時間が０．５秒となるプログラムを作成しても、そのプログラムを携帯機器に実行させると５ｓｅｃもの長い待機時間が生じてしまい、プログラムの修正が必要になってしまう。
【０００６】
このように、従来の技術では、コンピュータと携帯機器との間に演算能力の差があるため、プログラムの動作確認をコンピュータで行うときに携帯機器の動作速度を再現することができない。このため、コンピュータの動作確認では問題が生じなかったプログラムを携帯機器では快適に動作させることができず、プログラムを作り直す必要が生じる場合があった。
【０００７】
したがって、本明細書では、プログラムを実行するときの携帯機器の動作を、動作速度を含めて再現することができるシステムを提供する。
【課題を解決するための手段】
【０００８】
本明細書が開示するシステムは、携帯機器とプログラム実行装置を有する。携帯機器は、第１記憶手段と、第１プログラム実行手段と、コマンド実行時間計測手段と、送信手段とを有している。第１記憶手段は、複数のコマンドで構成されるプログラムを記憶する。第１プログラム実行手段は、第１記憶手段が記憶しているプログラムを実行する。コマンド実行時間計測手段は、第１プログラム実行手段がプログラムを実行しているときに、当該プログラム中の予め決められたコマンドを第１プログラム実行手段が実行するのに要する時間である実行時間を計測する。送信手段は、コマンド実行時間計測手段が計測した実行時間のデータをプログラム実行装置に送信する。プログラム実行装置は、第２記憶手段と、受信手段と、第２プログラム実行手段とを有している。第２記憶手段は、複数のコマンドで構成されるプログラムを記憶する。受信手段は、送信手段が送信する実行時間のデータを受信する。第２プログラム実行手段は、第２記憶手段が記憶しているプログラムを実行する。第２プログラム実行手段は、受信手段で受信されたデータにおいて実行時間が定められているコマンドを実行する際に当該コマンドについて定められている実行時間より短い時間で当該コマンドを実行したときは、当該コマンドの実行開始時点から当該コマンドについて定められている実行時間が経過するのを待ってから次のコマンドを実行する。
【０００９】
なお、携帯機器の第１プログラム実行手段とコマンド実行時間計測手段は、ＣＰＵ等の１つ又は複数の演算手段によって実現することができる。また、プログラム実行装置の第２プログラム実行手段は、ＣＰＵ等の１つ又は複数の演算手段によって実現することができる。また、第１記憶手段が記憶するプログラムと第２記憶手段が記憶するプログラムは、同じプログラムであってもよいし、異なるプログラムであってもよい。また、「予め決められたコマンド」は、ユーザやサプライヤによって予め決められたコマンドである。予め決められたコマンドは、１つであっても複数であってもよく、プログラム中の全てのコマンドが予め決められたコマンドであってもよい。すなわち、コマンド実行時間計測手段は、プログラム中の全てのコマンドに対して実行時間を計測してもよいし、一部のコマンドに対して実行時間を計測してもよい。また、計測対象のコマンドは、最小単位のコマンドであってもよいし、小さい単位のコマンドが集まって構成されたより大きい単位のコマンドであってもよい。また、上記の「コマンドを実行する」とは、コマンドによって規定された動作を実行することを意味する。また、「プログラムを実行する」とは、プログラム中に含まれる各コマンドを実行することを意味する。また、上記の「送信」及び「受信」は、有線によるものであってもよいし、無線によるものであってもよい。
【００１０】
このシステムでは、携帯機器（第１プログラム実行手段）がプログラムを実行しているときに、コマンド実行時間計測手段によってコマンドの実行時間が計測される。そして、計測された実行時間がプログラム実行装置に送信される。プログラム実行装置（第２プログラム実行手段）は、コマンドを実行したときに、当該コマンドについて定められている実行時間より短い時間で当該コマンドを実行した場合には、当該コマンドの実行開始時点から当該コマンドについて定められている実行時間（すなわち、携帯機器で当該コマンドを実行するのに要する時間）が経過するのを待ってから次のコマンドを実行する。すなわち、プログラム実行装置は、携帯機器よりも速くコマンドを実行した場合に、コマンドの実行が完了してからすぐに次のコマンドを実行するのではなく、コマンドの実行が完了した後に所定の遅延時間の経過を待ってから次のコマンドを実行する。その結果、プログラム実行装置がコマンドの実行を開始してから、その次のコマンドの実行を開始するまでの時間が、携帯機器がそのコマンドの実行を開始してから、その次のコマンドの実行を開始するまでの時間と略等しくなる。このため、プログラムの実行時における携帯機器の動作速度をプログラム実行装置で再現することができる。したがって、プログラム実行装置で動作確認した後にそのプログラムを携帯機器に移して実行させた場合に、プログラム実行装置と携帯機器とでプログラムの実行速度に大きな差が生じない。このように、プログラムを実行するときの携帯機器の動作を、動作速度を含めてプログラム実行装置で再現することができるので、プログラムの作り直し等が必要になることが少なくなる。
【００１１】
上述したシステムにおいては、携帯機器が、対応付け手段と、動作状態特定手段をさらに有していることが好ましい。第１プログラム実行手段は、携帯機器が第１の動作状態にあるときと、携帯機器が第１の動作状態とは異なる第２の動作状態にあるときのそれぞれにおいて、第１記憶手段が記憶しているプログラムを実行することが好ましい。動作状態特定手段は、第１プログラム実行手段がプログラムを実行しているときの携帯機器の動作状態を特定することが好ましい。コマンド実行時間計測手段は、携帯機器が第１の動作状態にあるときと、携帯機器が第２の動作状態にあるときのそれぞれにおいて、実行時間を計測することが好ましい。対応付け手段は、第１プログラム実行手段がプログラムを実行しているときに動作状態特定手段で特定される動作状態と、そのときにコマンド実行時間計測手段で計測される実行時間とを対応付けた対応付けデータを、第１の動作状態と第２の動作状態のそれぞれについて作成することが好ましい。送信手段は、対応付け手段によって作成された各対応付けデータをプログラム実行装置に送信することが好ましい。プログラム実行装置は、指定手段をさらに有していることが好ましい。受信手段は、送信手段が送信する各対応付けデータを受信することが好ましい。指定手段は、ユーザに動作状態を指定させることが好ましい。第２プログラム実行手段は、受信手段で受信された各対応付けデータの中から、指定手段によって指定された動作状態のときの対応付けデータを特定し、その対応付けデータが有する実行時間のデータに基づいてプログラムを実行することが好ましい。
【００１２】
なお、携帯機器の対応付け手段と、動作状態特定手段は、第１プログラム実行手段及びコマンド実行時間計測手段とともに、１つ又は複数の演算手段によって実現することができる。また、動作状態には、様々な要因を含むことができるが、例えば、携帯機器の演算装置のクロック速度が高いか低いか、携帯機器で実行しているプログラムが他に存在するか否か、及び、携帯機器が通信しているか否か等を動作状態として用いることができる。
【００１３】
このシステムでは、携帯機器が、第１の動作状態と第２の動作状態のそれぞれにおいてコマンドの実行時間を計測し、動作状態と実行時間とを対応付けたデータをプログラム実行装置に送信する。プログラム実行装置は、ユーザから動作状態の指定を受け、指定された動作状態に対応する実行時間に基づいて、プログラムを実行する。例えば、所定の動作状態がユーザにより指定された場合には、プログラム実行装置は、その動作状態に対応する実行時間に基づいて、その動作状態に対応する速度でプログラムを実行する。したがって、この構成によれば、指定された動作状態における携帯機器の動作速度を、プログラム実行装置で再現することができる。
【００１４】
また、上述したシステムに含まれる携帯機器、及び、プログラム実行装置は、それぞれ単体でも有用である。なお、携帯機器が単体である場合には、携帯機器が実行時間のデータを送信する送信先の外部装置は、プログラム実行装置であってもよいし、その他の外部装置であってもよい。また、プログラム実行装置が単体である場合には、実行時間のデータの送信元の外部装置は、携帯機器であってもよいし、その他の外部装置であってもよい。すなわち、実行時間のデータが携帯機器からプログラム実行装置に直接送信されてもよいし、実行時間のデータが携帯機器から他の外部装置（例えば、サーバ等）に一旦送信され、その後に、当該他の外部装置からプログラム実行装置に当該実行時間のデータが送信されてもよい。
【図面の簡単な説明】
【００１５】
【図１】実施例のシステムを示すブロック図。
【図２】携帯機器１０におけるコマンド実行時間計測処理を示すフローチャート。
【図３】動作状態１〜４における各コマンドの実行時間の例を示す図。
【図４】ＰＣ５０における動作確認処理を示すフローチャート
【図５】待機処理用のコマンド群を示す図。
【発明を実施するための形態】
【実施例】
【００１６】
図１は、携帯機器１０とパーソナルコンピュータ５０（以下、ＰＣ５０という）とにより構成されたシステムを示している。本実施例では、携帯機器１０は、バーコードリーダである。但し、携帯機器１０は、２次元コードリーダ、及び、ＲＦＩＤリーダ等の他の携帯可能な機器であってもよい。ＰＣ５０は、携帯機器１０で使用するアプリケーションプログラムを作成するための開発用のＰＣである。携帯機器１０は、ＰＣ５０及びその他の外部装置と無線通信することができる。
【００１７】
携帯機器１０は、演算装置２０と、無線通信装置２２と、記憶装置２４と、バーコード読取装置２６と、表示装置２８と、入力装置３０を有している。演算装置２０は、無線通信装置２２、記憶装置２４、バーコード読取装置２６、表示装置２８、及び、入力装置３０と電気的に接続されている。バーコード読取装置２６は、バーコードから光学的に波形を検出する。演算装置２０は、バーコード読取装置２６で得られた波形に基づいてバーコードをデコードする。また、演算装置２０は、記憶装置２４に記憶されている種々のプログラムを実行することができる。また、演算装置２０は、タイマを内蔵しており、時間を計測することができる。表示装置２８は、演算装置２０から入力されるデータに従って、種々の表示を行う。例えば、演算装置２０がデコードしたデータは、表示装置２８に表示される。記憶装置２４は、種々のデータを記憶することができる。記憶装置２４は、テストプログラム３２と、コマンド実行時間計測プログラム３４を記憶している。テストプログラム３２は、インタープリタ型のプログラムである。テストプログラム３２は、演算装置２０で解釈、実行可能な多数のコマンドにより構成されている。テストプログラム３２に含まれるコマンドには、例えば、「ABS」、「CHKDGT$」、「CHR$」等が含まれる。なお、「ABS」は引数の絶対値を返すコマンドであり、「CHKDGT$」は引数（例えば、携帯機器１０で読み取ったバーコードの値）のチェックディジット値を返すコマンドであり、「CHR$」は引数のＡＳＣＩＩコードに対応する文字を返すコマンドである。これらのコマンドのように、テストプログラム３２には、携帯機器１０で実行可能な多数のコマンドが含まれている。コマンド実行時間計測プログラム３４は、演算装置２０がコマンドを実行する時間を計測するプログラムである。コマンド実行時間計測プログラム３４は、例えば、演算装置２０がテストプログラム３２中の各コマンドを実行するのに要する時間を測定する際に用いられる。無線通信装置２２は、ＰＣ５０やその他の外部機器と無線通信を行う。
【００１８】
ＰＣ５０は、演算装置６０と、無線通信装置６２と、記憶装置６４と、表示装置６６と、入力装置６８を有している。ＰＣ５０は、携帯機器１０用のプログラムを作成するのに用いられる。演算装置６０は、無線通信装置６２、記憶装置６４、表示装置６６、及び、入力装置６８と電気的に接続されている。演算装置６０は、入力装置６８を用いたユーザによる入力に基づいて、携帯機器１０で実行可能なプログラムを作成する。また、演算装置６０は、タイマを内蔵しており、時間を計測することができる。表示装置６６は、演算装置６０から入力されるデータに従って、種々の表示を行う。記憶装置６４は、種々のデータを記憶することができる。記憶装置６４は、動作確認プログラム７２を記憶している。また、記憶装置６４は、ＰＣ５０で作成された携帯機器１０用のプログラムを記憶する。ＰＣ５０で作成される携帯機器１０用のプログラムは、上述したテストプログラム３２と同じプログラム言語で記述される。図１では、ＰＣ５０で作成された携帯機器１０用のプログラムとして、アプリケーションプログラム７４が示されている。
【００１９】
次に、携帯機器１０で行うコマンド実行時間計測処理について説明する。携帯機器１０の入力装置３０で所定の操作を行うと、携帯機器１０の演算装置２０は、コマンド実行時間計測プログラム３４を実行する。これによって、演算装置２０は、図２に示すコマンド実行時間計測処理を実行する。
【００２０】
ステップＳ２では、演算装置２０は、コマンド実行時間を計測すべきプログラムを選択する旨のメッセージを表示装置２８に表示させる。携帯機器１０のユーザが入力装置３０で所定の操作を行うことで、記憶装置２４が記憶しているプログラムの中からプログラムを選択することができる。例えば、ステップＳ２でテストプログラム３２を選択することができる。
【００２１】
ステップＳ４では、演算装置２０は携帯機器１０の動作状態を設定する。図３は、携帯機器１０の動作状態の一覧を示している。図示された動作状態１〜４の４種類の動作状態で、携帯機器１０は動作することができる。動作状態を規定する要素には、ＣＰＵクロック（演算装置２０が有するＣＰＵのクロック周波数）と、無線（無線通信装置２２を使用するか否か）が含まれる。ＣＰＵクロックは、ＨＩＧＨ（高い状態）とＮＯＲＭＡＬ（通常の状態）とに切り換えることができる。ＣＰＵクロックが高いと、コマンドの実行速度は速くなる。また、無線は、使用と不使用とに切り換えることができる。無線を使用していると、ＣＰＵへの負荷が高まるので、コマンドの実行速度は遅くなる。後に詳述するが、ステップＳ４は、４回実行される。携帯機器１０の動作状態は、最初のステップＳ４では動作状態１に設定され、２回目のステップＳ４では動作状態２に設定され、３回目のステップＳ４では動作状態３に設定され、４回目のステップＳ４では動作状態４に設定される。ステップＳ４以降の動作は、ステップＳ４で設定された動作状態で行われる。
【００２２】
ステップＳ６〜Ｓ１４では、演算装置２０は、ステップＳ２で選択されたプログラム（例えば、テストプログラム３２）に記述されている各コマンドを順番に実行するとともに、各コマンドの実行時間を計測する。具体的には、まず、演算装置２０は、ステップＳ６で、タイマをスタートする。ステップＳ８では、演算装置２０は、選択されたプログラムの中のコマンドを選択し、そのコマンドを解釈、実行する。より具体的には、演算装置２０は、選択したコマンドに対応する機械語を特定し（解釈）、特定した機械語に対応する動作を実行する。ステップＳ８は、ステップＳ６と略同時に開始される。そして、ステップＳ８でコマンドの実行が完了すると、その完了したタイミングと略同時に、ステップＳ１０でタイマがストップされる。これによって、ステップＳ８のコマンド実行時間（演算装置２０がコマンドを解釈して実行するのに要した時間）が計測される。ステップＳ１２では、演算装置２０は、計測したコマンド実行時間を記憶装置２４に保存する。なお、コマンド実行時間は、携帯機器１０の動作状態と対応付けた状態で記憶される。例えば、図３の例では、動作状態１に対応するコマンド１のコマンド実行時間として、５０ｍｓｅｃというデータが記憶されている。このように、ステップＳ１２では、動作状態毎、及び、コマンド毎に区別してコマンド実行時間が保存される。ステップＳ１４では、演算装置２０は、プログラムが終了したか否かを判定する。プログラム中に実行すべきコマンドが残っている場合には、再度、ステップＳ６〜Ｓ１４の処理が実行される。再度実行されるステップＳ８では、前回のステップＳ８で実行したコマンドの次のコマンドが選択されて実行される。したがって、ステップＳ６〜Ｓ１４が繰り返されることで、選択されたプログラム中に含まれる各コマンドの実行時間が計測され、計測された実行時間が記憶装置２４に順次記憶されていく。
【００２３】
ステップＳ１４でプログラムが終了したと判定した場合には、演算装置２０は、ステップＳ１６で、動作状態１〜４の全てにおいてコマンド実行時間を計測したか否かを判定する。ステップＳ１６でＮＯの場合には、演算装置２０は、再度、ステップＳ４を実行する。上述したように、ステップＳ４では、動作状態が切り換えられる。そして、切り換えられた動作状態で、再度、ステップＳ６〜Ｓ１４が繰り返し実行され、その動作状態における各コマンドの実行時間が計測される。ステップＳ１６でＹＥＳと判定された場合には、演算装置２０は、図２の処理を終了する。
【００２４】
したがって、ステップＳ２でプログラムが選択されると、以下のように、演算装置２０が動作する。まず、最初のステップＳ４では、携帯機器１０の動作状態が動作状態１に設定される。したがって、その後のステップＳ６〜Ｓ１４で動作状態１における各コマンドの実行時間が計測される。次に、ステップＳ１６でＮＯと判定され、２回目のステップＳ４で動作状態が動作状態２に切り換えられる。したがって、その後のステップＳ６〜Ｓ１４で、動作状態２における各コマンドの実行時間が計測される。次に、ステップＳ１６でＮＯと判定され、３回目のステップＳ４で動作状態が動作状態３に切り換えられる。したがって、その後のステップＳ６〜Ｓ１４で動作状態３における各コマンドの実行時間が計測される。次に、ステップＳ１６でＮＯと判定され、４回目のステップＳ４で動作状態が動作状態４に切り換えられる。したがって、その後のステップＳ６〜Ｓ１４で動作状態４における各コマンドの実行時間が計測される。次に、ステップＳ１６でＹＥＳと判定され、図２の処理が終了する。以上の処理によって、図３に示すように、動作状態毎に対応付けて、各コマンドの実行時間を示すデータが得られる。以下では、コマンド実行時間計測処理によって得られたデータを、実行時間データベースという。
【００２５】
コマンド実行時間計測処理後に、入力装置３０で所定の操作を行うと、携帯機器１０からＰＣ５０に無線通信によって実行時間データベースを送信することができる。ＰＣ５０に送信された実行時間データベースは、記憶装置６４に記憶される。
【００２６】
次に、ＰＣ５０で行うプログラムの動作確認処理について説明する。以下に説明する動作確認処理は、ＰＣ５０の記憶装置６４が実行時間データベースを記憶している状態で（すなわち、携帯機器１０からＰＣ５０に実行時間データベースが送信された後に）実行される。ＰＣ５０の入力装置６８で所定の操作を行うと、ＰＣ５０の演算装置６０は、動作確認プログラム７２を実行する。これによって、演算装置６０は、図４に示す動作確認処理を実行する。
【００２７】
ステップＳ３２では、演算装置６０は、動作確認すべきプログラムを選択する旨のメッセージを表示装置６６に表示させる。ＰＣ５０のユーザは、入力装置６８で所定の操作を行うことで、記憶装置６４が記憶しているプログラムの中から動作確認すべきプログラムを選択することができる。例えば、ステップＳ３２では、アプリケーションプログラム７４を選択することができる。
【００２８】
ステップＳ３４では、演算装置６０は、記憶装置６４から実行時間データベースを読み出す。
【００２９】
ステップＳ３６では、演算装置６０は、実行時間データベースにおいて規定されている動作状態１〜４の中から、再現すべき動作状態を選択する旨のメッセージを表示装置６６に表示させる。ＰＣ５０のユーザは、入力装置６８で所定の操作を行うことで、動作状態１〜４の中から１つの動作状態を選択することができる。ここで選択された動作状態における携帯機器１０の動作速度が、後のステップでＰＣ５０によって再現される。
【００３０】
ステップＳ３８〜Ｓ４８では、演算装置６０は、ステップＳ３２で選択されたプログラム（例えば、アプリケーションプログラム７４）に記述されている各コマンドを、時間を調節しながら順番に実行する。具体的には、まず、演算装置６０は、ステップＳ３８で、タイマをスタートする。ステップＳ４０では、演算装置６０は、選択されたプログラムの中のコマンドを選択し、そのコマンドを解釈、実行する。より具体的には、演算装置６０は、選択したコマンドに対応する機械語を特定し（解釈）、特定した機械語に対応する動作を実行する。ステップＳ４０は、ステップＳ３８と略同時に開始される。そして、ステップＳ４０でコマンドの実行が完了すると、その完了したタイミングと略同時に、ステップＳ４２でタイマがストップされる。これによって、ステップＳ４０における演算装置６０のコマンド実行時間（演算装置６０がコマンドを解釈して実行するのに要した時間）が計測される。なお、ＰＣ５０の演算装置６０は携帯機器１０の演算装置２０よりも演算能力が高い。このため、携帯機器１０がいずれの動作状態にある場合であっても、ＰＣ５０のコマンド実行時間（すなわち、演算装置６０のコマンド実行時間）は携帯機器１０のコマンド実行時間（すなわち、演算装置２０のコマンド実行時間）よりも短くなる。次に、演算装置６０は、ステップＳ４４で遅延時間を算出する。具体的には、ステップＳ４４では、演算装置６０は、実行時間データベースの中から、ステップＳ３６で選択された動作状態に対応し、直前のステップＳ４０で実行したコマンドに対応するコマンド実行時間（すなわち、携帯機器１０のコマンド実行時間）を特定する。例えば、ステップＳ３６で動作状態２が選択されており、直前のステップＳ４０で実行したコマンドがコマンド１である場合には、携帯機器１０のコマンド実行時間として４０ｍｓｅｃが特定される（図３参照）。携帯機器１０のコマンド実行時間を特定したら、演算装置６０は、特定した携帯機器１０のコマンド実行時間から、ステップＳ４２で計測したＰＣ５０のコマンド実行時間を減算することによって、遅延時間を算出する。例えば、携帯機器１０のコマンド実行時間として４０ｍｓｅｃが特定されており、ＰＣ５０のコマンド実行時間として１５ｍｓｅｃが計測された場合には、遅延時間として２５ｍｓｅｃが算出される。なお、上記の通り、ＰＣ５０のコマンド実行時間は携帯機器１０のコマンド実行時間よりも短いので、遅延時間として必ず正の値が算出される。ステップＳ４６では、演算装置６０は、ステップＳ４２でタイマをストップしたタイミングから遅延時間（直前のステップＳ４４で算出した遅延時間）が経過するまで待機する。遅延時間が経過すると、演算装置６０は、ステップＳ４８でプログラムが終了したか否かを判定する。プログラム中に実行すべきコマンドが残っている場合には、再度、ステップＳ３８〜Ｓ４８の処理が実行される。再度実行されるステップＳ４０では、前回のステップＳ４０で実行したコマンドの次のコマンドが選択されて実行される。したがって、ステップＳ３８〜Ｓ４８が繰り返されることで、プログラム中に含まれる各コマンドが順次実行される。ステップＳ４８でＹＥＳと判定されると、動作確認処理は終了する。
【００３１】
以上に説明したように、ＰＣ５０はステップＳ４０において携帯機器１０よりも早くコマンドの実行を完了するが、コマンドの実行が完了した後のステップＳ４６で遅延時間が挿入される。この遅延時間は、携帯機器１０のコマンド実行時間とＰＣ５０のコマンド実行時間の差分として算出される。したがって、ＰＣ５０がステップＳ３８〜Ｓ４８を１サイクルする時間は、携帯機器１０が同一のコマンドを実行する時間と略等しくなる。例えば、上述した様に、携帯機器１０のコマンド実行時間が４０ｍｓｅｃであり、ＰＣ５０のコマンド実行時間が１５ｍｓｅｃである場合には、ステップＳ４６で２５ｍｓｅｃの遅延時間が挿入される。その結果、ＰＣ５０でステップＳ３８〜Ｓ４８の１サイクルを実行する時間が約４０ｍｓｅｃとなり、携帯機器１０のコマンド実行時間と略等しくなる。つまり、ＰＣ５０は、コマンドの実行開始時点（すなわち、ステップ８の開始時点）からそのコマンドについて定められている実行時間（携帯機器１０での実行時間）が経過するのを待ってから、つぎのコマンド（すなわち、次のステップＳ８）を開始する。ＰＣ５０はステップＳ３８〜Ｓ４８の１サイクル毎に１つのコマンドを実行するので、この１サイクルの時間はＰＣ５０の実質的なコマンド実行時間ということができる。すなわち、動作確認処理では、携帯機器１０のコマンド実行時間と、ＰＣ５０の実質的なコマンド実行時間とが略等しくなる。したがって、動作確認処理では、ＰＣ５０で、携帯機器１０と略同じ動作速度でプログラムを実行することができる。すなわち、ＰＣ５０で、携帯機器１０の動作速度を再現することができる。
【００３２】
以上に説明したように、実施例のシステムでは、ＰＣ５０で、携帯機器１０の動作速度を再現することができる。したがって、携帯機器１０用のアプリケーションプログラムをＰＣ５０で作成した後に、ＰＣ５０で動作速度まで含めた動作確認を行うことができる。このため、動作確認したアプリケーションプログラムを携帯機器１０に移し、携帯機器１０でそのアプリケーションプログラムを実行したときに、携帯機器１０の動作速度とＰＣ５０での動作確認時の動作速度との間の差がほとんど生じない。このため、実施例のシステムでは、携帯機器１０でアプリケーションプログラムを動作させる段階で、動作速度の不具合が生じることを防止することができる。
【００３３】
例えば、外部からのデータの受信待ち等の動作を行う場合等のように、携帯機器１０を一定時間待機させるコマンド群として、図５に示すコマンド群を考える。なお、図５のコマンドＳ８０は変数「counter」に１０００を入力するコマンドであり、コマンドＳ８２は変数「counter」が０であるか否かを判定するコマンドであり、コマンドＳ８４は変数「counter」から１減算するコマンドである。コマンドＳ８０で変数「counter」が１０００に設定された後、コマンドＳ８２でＹＥＳと判定されるまで、コマンドＳ８０とコマンドＳ８２が繰り返される。コマンドＳ８０、Ｓ８２を１サイクルする度に変数「counter」が１ずつ小さくなる。変数「counter」が０になると、コマンドＳ８２でＹＥＳと判定されて、待機動作が終了する（図示しない次のコマンドが実行される）。
ＰＣでのコマンドＳ８０〜Ｓ８４のコマンド実行時間が共に０．２ｍｓｅｃであるとすると、図５の待機処理に要する時間は約０．４ｓｅｃとなる。すなわち、ＰＣは、約０．４ｓｅｃ待機する。一方、携帯機器のコマンドＳ８０〜Ｓ８４のコマンド実行時間が共に２ｍｓｅｃであるとすると、図５の待機処理に要する時間は約４ｓｅｃとなる。すなわち、携帯機器は、約４ｓｅｃ待機する。したがって、従来のシステムでは、ＰＣの動作確認で待機時間が０．４ｓｅｃとなるようにアプリケーションプログラムを作成しても、携帯機器では待機時間が４ｓｅｃとなってしまい、アプリケーションプログラムの修正が必要となる。本実施例のシステムでは、ＰＣ５０での動作確認と携帯機器１０の動作とで動作速度に差がほとんど生じないので、このような問題が生じない。ＰＣ５０の動作確認の段階で、適切に待機時間（すなわち、変数「counter」の初期値）を設定することができる。したがって、携帯機器１０で動作させる段階になって、アプリケーションプログラムの修正作業が必要となることがほとんどなくなる。
【００３４】
また、上述した実施例のシステムでは、携帯機器１０が、携帯機器１０の動作状態毎に各コマンドの実行時間を計測する。そして、ＰＣ５０は、ユーザによって指定された動作状態に対応するコマンド実行時間を用いて遅延時間を算出する。すなわち、指定された動作状態に応じて、遅延時間の値が変更される。したがって、ＰＣ５０は、指定された動作状態に応じた速度で動作確認処理を実行することができる。すなわち、ＰＣ５０は、ユーザによって指定された動作状態における携帯機器１０の動作速度を再現することができる。したがって、各動作状態を考慮して、携帯機器１０用のアプリケーションプログラムをＰＣ５０で作成することができる。なお、実施例１では、ＣＰＵクロックと無線を動作状態の要素としていたが、その他の要素を用いてもよい。例えば、携帯機器１０においてバックグラウンドで動作しているプログラムの有無等を動作状態として用いてもよい。
【００３５】
以下に、実施例１のシステムと請求項のシステムとの対応関係について説明する。携帯機器１０の記憶装置２４は、複数のコマンドで構成されるプログラム（テストプログラム３２）を記憶しており、請求項の第１記憶手段に対応する。また、演算装置２０は、記憶装置２４が記憶しているテストプログラム３２を実行し、そのテストプログラム３２中の各コマンドの実行時間を計測するので、請求項の第１プログラム実行手段及びコマンド実行時間計測手段に対応する。また、演算装置２０は、動作状態１〜４のそれぞれでテストプログラム３２を実行し、各動作状態において各コマンドの実行時間を計測し、動作状態と各コマンドの実行時間とを対応付けたデータを作成する。したがって、演算装置２０は、請求項の対応付け手段にも対応する。また、ステップＳ４で動作状態を設定することで、演算装置２０は、ステップＳ８における携帯機器１０の動作状態を認識している。これは、携帯機器１０の動作状態を特定することに等しい。したがって、演算装置２０は、請求項の動作状態特定手段にも対応する。無線通信装置２２は、得られたコマンド実行時間のデータをＰＣ５０に送信するので、請求項の送信手段に対応する。ＰＣ５０の記憶装置６４は、複数のコマンドで構成されるアプリケーションプログラム７４を記憶しており、請求項の第２記憶手段に対応する。無線通信装置６２は、携帯機器１０からコマンド実行時間のデータを受信するので、請求項の受信手段に対応する。演算装置６０は、携帯機器１０のコマンド実行時間のデータに従って遅延時間を挿入しながらアプリケーションプログラム７４を実行するので、請求項の第２プログラム実行手段に対応する。入力装置６８は、ＰＣ５０のユーザに動作状態を指定させるので、請求項の指定手段に対応する。
【００３６】
なお、上述した実施例では、携帯機器１０の記憶装置２４に予めテストプログラム３２とコマンド実行時間計測プログラム３４が保存されていたが、ＰＣ５０から携帯機器１０にこれらのプログラムの一方または両方を送信するようにしてもよい。また、携帯機器１０で予め計測しておいたコマンド実行時間のデータをサーバにアップロードしておき、そのサーバからＰＣ５０にコマンド実行時間のデータをダウンロードするようにしてもよい。
【００３７】
また、上述した実施例では、コマンド実行時間を計測するためにコマンド実行時間計測処理を実行した。しかしながら、携帯機器１０の通常使用時に自動的にコマンド実行時間計測プログラム３４が動作するようにしておき、携帯機器１０の通常使用時にコマンド実行時間計測処理を同時に行うようにしてもよい。この場合には、演算装置２０が、通常使用時における携帯機器１０の動作状態を特定し、動作状態毎に区別してコマンド実行時間を記憶することが好ましい。このような構成によれば、通常使用時に自動的にコマンド実行時間のデータが蓄積される。
【００３８】
また、上述した実施例では、携帯機器１０でプログラム中の全てのコマンドについてコマンド実行時間を計測したが、一部のコマンド（例えば、携帯機器１０とＰＣ５０とのコマンド実行時間の差が顕著となるコマンド）のみについてコマンド実行時間を計測するようにしてもよい。また、携帯機器１０で同一のコマンドについて複数回コマンド実行時間を計測し、得られたデータを平均化等したデータをＰＣ５０に送信するようにしてもよい。また、ＰＣ５０で動作確認するプログラムの中にコマンド実行時間データベースにおいてコマンド実行時間が定められていないコマンドが存在する場合には、ＰＣ５０は、そのコマンドを実行する際には遅延時間を挿入しなくてもよいし、遅延時間を予測して挿入してもよい。
【００３９】
また、ＰＣ５０で動作確認するアプリケーションプログラムの中に、ＣＰＵクロックや無線の使用の有無等の動作状態を変更するコマンドが含まれている場合には、その動作状態の変更に合わせて、コマンド実行時間データベースの中で使用するコマンド実行時間を変更するようにしてもよい。例えば、アプリケーションプログラム中のコマンドによって動作状態１から動作状態２に切り換えられる場合には、ＰＣ５０の演算装置６０は、切り換え前においては動作状態１用のコマンド実行時間により遅延時間を算出し、切り換え後においては動作状態２用のコマンド実行時間により遅延時間を算出することができる。
【００４０】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例をさまざまに変形、変更したものが含まれる。
本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【００４１】
１０：携帯機器
２０：演算装置
２２：無線通信装置
２４：記憶装置
２６：バーコード読取装置
２８：表示装置
３０：入力装置
３２：テストプログラム
３４：コマンド実行時間計測プログラム
５０：ＰＣ
６０：演算装置
６２：無線通信装置
６４：記憶装置
６６：表示装置
６８：入力装置
７２：動作確認プログラム
７４：アプリケーションプログラム
【図１】
2012203845.tif 000003
【図２】
2012203845.tif 000004
【図３】
2012203845.tif 000005
【図４】
2012203845.tif 000006
【図５】
2012203845.tif 000007