(57)【特許請求の範囲】
【請求項１】
データを取得する取得部と、前記取得部が取得したデータの処理を行う第１処理部と、前記取得部から取得したデータを前記第１処理部に転送する第２処理部とを有する携帯端末装置において、
前記第１処理部は、
前記第２処理部が前記取得部から取得したデータを前記第１処理部に送信する際の送信条件と、前記携帯端末装置の状態情報とを対応付けた対応情報を格納する格納部と、
前記携帯端末装置の状態情報を取得し、前記対応情報を参照して、前記取得した状態情報に対応する送信条件を取得し、前記第２処理部に前記取得した送信条件を送信する状態監視部を有し、
前記第１処理部は、
前記取得部を利用する複数のアプリケーションプログラムの動作を検出し、前記検出した複数のアプリケーションプログラムのうちいずれか１つのアプリケーションの実行結果が、前記携帯端末装置が有する表示部に表示されているか否かに基づいて、前記対応情報を参照して取得した送信条件を前記第２処理部に送信し、
前記第２処理部は、
前記第１処理部から送信された前記送信条件に基づき、前記取得部から取得したデータを前記第１処理部に送信する、
ことを特徴とする携帯端末装置。
【請求項２】
データを取得する取得部と、前記取得部が取得したデータの処理を行う第１処理部と、前記取得部から取得したデータを前記第１処理部に転送する第２処理部とを有する携帯端末装置において、
前記第１処理部は、
前記第２処理部が前記取得部から取得したデータを前記第１処理部に送信する際の送信条件と、前記携帯端末装置の状態情報とを対応付けた対応情報を格納する格納部と、
前記携帯端末装置の状態情報を取得し、前記対応情報を参照して、前記取得した状態情報に対応する送信条件を取得し、前記第２処理部に前記取得した送信条件を送信する状態監視部を有し、
前記第１処理部は、
前記携帯端末装置が有する表示部にデータが表示されているか否か判定した結果に基づいて、前記対応情報を参照して取得した送信条件を前記第２処理部に送信し、
前記第２処理部は、
前記第１処理部から送信された前記送信条件に基づき、前記取得部から取得したデータを前記第１処理部に送信する、
ことを特徴とする携帯端末装置。
【請求項３】
前記送信条件はデータ送信間隔を含むことを特徴とする請求項１乃至２に記載の携帯端末装置。
【請求項４】
前記送信条件はデータの前回送信時からの差分値を含むことを特徴とする請求項３に記載の携帯端末装置。
【請求項５】
データを取得する取得部と、前記取得部が取得したデータの処理を行う第１処理部と、前記取得部から取得したデータを前記第１処理部に転送する第２処理部とを有する携帯端末装置の前記第１処理部を制御する制御プログラムであって、
前記第１処理部に、
前記第２処理部が前記取得部から取得したデータを前記第１処理部に送信する際の送信条件と、前記携帯端末装置の状態情報とを対応付けた対応情報を格納し、
前記取得部を利用する複数のアプリケーションプログラムの動作を検出し、
前記検出した複数のアプリケーションプログラムのうちいずれか１つのアプリケーションの実行結果が、前記携帯端末装置が有する表示部に表示されているか否かに基づいて、前記携帯端末装置の状態情報を取得し、
前記対応情報を参照して、前記取得した状態情報に対応する送信条件を取得し、
前記第２処理部に前記取得した送信条件を送信し、
前記第２処理部から前記送信条件を満たしたデータを受信する、
処理を実行させることを特徴とする制御プログラム。
【請求項６】
データを取得する取得部と、前記取得部が取得したデータの処理を行う第１処理部と、前記取得部から取得したデータを前記第１処理部に転送する第２処理部とを有する携帯端末装置を制御する制御方法において、
前記第１処理部が、
前記第２処理部が前記取得部から取得したデータを前記第１処理部に送信する際の送信条件と、前記携帯端末装置の状態情報とを対応付けた対応情報を格納し、
前記取得部を利用する複数のアプリケーションプログラムの動作を検出し、
前記検出した複数のアプリケーションプログラムのうちいずれか１つのアプリケーションの実行結果が、前記携帯端末装置が有する表示部に表示されているか否かに基づいて、前記携帯端末装置の状態情報を取得し、
前記対応情報を参照して、前記取得した状態情報に対応する送信条件を取得し、
前記第２処理部に前記取得した送信条件を送信し、
前記第２処理部が、
前記第１処理部から送信された前記送信条件に基づき、前記取得部から取得したデータを前記第１処理部に送信する、
ことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、携帯端末装置、携帯端末装置の制御プログラム及び制御方法に関する。
【背景技術】
【０００２】
スマートフォンなどの携帯端末装置では、数多くのセンサが搭載されるようになってきている。これらのセンサは利用者の携帯端末の操作に用いられたり、利用者の動作を把握したりするのに利用されている。
【０００３】
これら携帯端末装置では、外部からの割り込みがあるまで、アプリを処理するＣＰＵをスリープさせることで消費電力を削減しているものがある。
【０００４】
また、携帯端末装置においては、ＣＰＵとは別に、該ＣＰＵより省電力のマイコンを設け、該マイコンによりセンサを制御して、センサからのデータを処理するものがある。このような構成とすることで、携帯端末装置は、マイコンによって、ＣＰＵがスリープしている間に、センサを制御したり、センサから取得したデータを処理したりすることができる。
【０００５】
ところで、携帯端末装置では、例えば、利用者の歩数を加速度センサの測定結果を元に算出する場合、秒間数十個の加速度データを取得するが、取得した加速度データから歩数を求める処理は、利用者に閲覧されるまでに行えばいい等、必ずしもセンサからのデータをリアルタイムに処理しなくともよい場合がある。
【０００６】
このような場合に対応し、上記したマイコンを搭載した携帯端末装置では、マイコンに記憶部を有し、センサからのデータを一時記憶するものがある。このような携帯端末装置では、ＣＰＵがスリープを解除（ウェイク）したときに、マイコンが蓄積してきたデータをＣＰＵへ送信することで、ＣＰＵのウェイク・スリープ頻度を低くし、省電力を図ることが可能となる。このような携帯端末装置では、ＣＰＵのウェイクの間隔を長くし、スリープの時間を長くするほど省電力化が図れる。
【０００７】
しかし、ウェイクの間隔を長くするほど、センサからデータを取得したタイミングと、ＣＰＵにおけるセンサからのデータの処理のタイミングのずれが大きくなる。このため、例えば、ゲームにおけるキーボードから入力の受付など、センサからのデータをリアルタイムにＣＰＵへ転送する必要があるアプリなどでは、転送頻度を高めておくほうが望ましい場合もある。
【０００８】
以上から、アプリに応じたセンサからＣＰＵへのデータ転送頻度を適切に設定しつつ省電力を図るには、携帯端末装置にて、適切なデータ転送頻度を設定できる必要がある。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００４−１４５８７５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、近年の携帯端末装置では、携帯端末装置に予め記憶されるアプリを使用するだけでなく、ユーザが、別途、任意のアプリを導入することが多い。このアプリは、携帯端末装置の製造メーカなどに管理されているものではないため、各アプリにおいてデータ転送の頻度の情報を予め携帯端末装置内に記憶させておくことができない。
【００１１】
本技術の開示の一側面によれば、各アプリにおいてデータ転送の頻度の情報を予め携帯端末装置内に記憶させておかなくとも、適切な頻度でセンサからのデータを転送することができる携帯端末装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本開示の技術では、データを取得する取得部と、前記取得部が取得したデータの処理を行う第１処理部と、前記取得部から取得したデータを前記第１処理部に転送する第２処理部とを有する携帯端末装置は、前記第１処理部は、前記第２処理部が前記取得部から取得したデータを前記第１処理部に送信する際の送信条件と、前記携帯端末装置の状態情報とを対応付けた対応情報を格納する格納部と、前記携帯端末装置の状態情報を取得し、前記対応情報を参照して、前記取得した状態情報に対応する送信条件を取得し、前記第２処理部に前記取得した送信条件を送信する状態監視部を有し、前記第２処理部は、前記第１処理部から送信された前記送信条件に基づき、前記取得部から取得したデータを前記第１処理部に送信する。
【発明の効果】
【００１３】
本技術の開示の一側面によれば、各アプリにおいてデータ転送の頻度の情報を予め携帯端末装置内に記憶させておかなくとも、適切な頻度でセンサからのデータを転送することができる携帯端末装置を提供することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】携帯端末装置のハードウェア構成を示す図である。
【図２】携帯端末装置の構成を示すブロック図（その１）である。
【図３】携帯端末装置の構成を示すブロック図（その２）である。
【図４】携帯端末装置の処理を示すフローチャート（その１）である。
【図５】マイコンの処理を示すフローチャート（その１）である。
【図６】携帯端末装置の構成を示すブロック図（その３）である。
【図７】携帯端末装置の処理を示すフローチャート（その２）である。
【図８】マイコンの処理を示すフローチャート（その２）である。
【図９】携帯端末装置の構成を示すブロック図（その４）である。
【図１０】携帯端末装置の処理を示すフローチャート（その３）である。
【図１１】マイコンの処理を示すフローチャート（その３）である。
【図１２】携帯端末装置の構成を示すブロック図（その５）である。
【図１３】携帯端末装置の処理を示すフローチャート（その４）である。
【図１４】マイコンの処理を示すフローチャート（その４）である。
【図１５】バッファリングしない場合のＣＰＵ動作時間を示す図である。
【図１６】バッファリングする場合のＣＰＵ動作時間を示す図である。
【発明を実施するための形態】
【００１５】
以下、本実施形態における携帯端末装置ついて説明する。
【００１６】
（実施の形態１）
図１は、本実施形態における携帯端末装置のハードウェア構成を示す図である。図１に示す携帯端末装置１００は、例えばスマートフォンやタブレットＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などの携帯情報端末である。
【００１７】
携帯端末装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、メインメモリ２０２と、補助メモリ２０３と、クロック供給回路２０４と、電圧供給回路２０５と、ＲＦ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ）部２０６と、アンテナ２０７と、バッテリ２０８とをハードウェアモジュールとして備えている。また、携帯端末装置１００は、電源回路２０９と、カメラモジュール２１０と、ブルートゥースインターフェース２１１と、ＧＰＳモジュール２１２と、ＬＣＤ（ＬｉｑｕｉＤ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）２１３と、外部給電部２１５と、マイコン３００と、加速度センサ２１８と、地磁気センサ２１９と、ジャイロセンサ２２０とをハードウェアモジュールとして備えている。各ハードウェアモジュールは、例えばバス２１６によって接続されている。
【００１８】
ＣＰＵ２０１は、携帯端末装置１００の全体の制御を司る。ＣＰＵ２０１は、クロック供給回路２０４から供給されるクロック信号及び電圧供給回路２０５から供給される電圧によって動作する。ＣＰＵ２０１は、ソフト処理が不要な時は完全に動作を休止し、外部からの割り込みがあるまでスリープすることで消費電力を削減している。なお、ＣＰＵ２０１はクアッドコアＣＰＵ等、任意の数のコアを有していても良い。
【００１９】
メインメモリ２０２は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。メインメモリ２０２は、ＣＰＵ２０１のワークエリアとして使用される。
【００２０】
補助メモリ２０３は、例えば、フラッシュメモリなどの不揮発メモリである。補助メモリ２０３は、携帯端末装置１００を動作させるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）等の各種プログラムを記憶している。補助メモリ２０３に記憶されたプログラムは、メインメモリ２０２にロードされてＣＰＵ２０１によって実行される。これによって、後述する各種プログラムが携帯端末装置１００にて実行されるようになる。
【００２１】
クロック供給回路２０４は、周波数が可変のクロック信号をＣＰＵ２０１へ供給する。クロック供給回路２０４は、例えば、クロック信号を発振する水晶振動子及びＲＴＣ（Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ）などによって実現することができる。電圧供給回路２０５は、電源回路２０９から供給される電力によってＣＰＵ２０１に可変の電圧を供給する。電圧供給回路２０５は、例えばボルテージディテクタ及びボルテージレギュレータなどによって実現することができる。
【００２２】
ＲＦ部２０６は、ＣＰＵ２０１からの制御により、高周波信号をアンテナ２０７から他の無線通信装置へ送信するトランスミッタの機能を有する。また、ＲＦ部２０６は、アンテナ２０７によって受信された高周波信号をベースバンド信号に変換してＣＰＵ２０１へ出力するレシーバの機能を有する。
【００２３】
バッテリ２０８は、電源回路２０９へ電力を供給する。バッテリ２０８は、例えばリチウムイオン電池などの電池と電池保護用のＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などによって実現することができる。電源回路２０９は、バッテリ２０８から供給される電力を不図示の電源線を介して携帯端末装置１００の各ハードウェアモジュールへ供給する。また、電源回路２０９は、外部給電部２１５に外部電源が接続されている場合は、外部給電部２１５から供給される電力を携帯端末装置１００の各ハードウェアモジュールへ供給しても良い。電源回路２０９は、例えばスイッチングレギュレータ及びボルテージレギュレータによって実現することができる。
【００２４】
カメラモジュール２１０は、ＣＰＵ２０１からの制御により、被写体を撮影し、撮影により得られた映像データを取得する。ブルートゥースインターフェース２１１は、ＣＰＵ２０１からの制御により、他の通信装置との間でＢｌｕｅｔｏｏｔｈ（登録商標）による無線通信を行う通信インターフェースである。また、携帯端末装置１００は、ブルートゥースインターフェース２１１の他に、無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などの無線通信インターフェースを備えていても良い。
【００２５】
ＧＰＳモジュール２１２は、ＣＰＵ２０１からの制御により、人工衛星の発する電波を受信することによって携帯端末装置１００の地球上の現在位置を示す位置情報を取得する。
【００２６】
ＬＣＤ２１３は、ＣＰＵ２０１からの制御により、ユーザに対して画像を表示する画像表示装置である。また、ＬＣＤ２１３は、タッチパッドなどの位置入力機能も兼ね備えたタッチパネルであっても良い。
【００２７】
加速度センサ２１８は、携帯端末装置１００の加速度を計測する。地磁気センサ２１９は、磁界の方向を計測する。ジャイロセンサ２２０は、携帯端末装置１００の方向の変化を計測する。なお、本実施形態では、携帯端末装置１００は、加速度センサ２１８、地磁気センサ２１９及びジャイロセンサ２２０を有している構成について説明するが、例えば、照度センサ、傾きセンサ、加圧センサ、接近センサ、温度センサ等を有していても良い。
【００２８】
マイコン３００は、センサデータを処理したり、センサデータをバッファして一度に複数データをまとめてＣＰＵ２０１に通知したりする。このような構成にすることで、マイコン３００は、ＣＰＵ２０１がスリープ中でも加速度センサ２１８、地磁気センサ２１９及びジャイロセンサ２２０を制御してデータを取得することが可能になる。
【００２９】
図２は、本実施形態における携帯端末装置１００の構成を示すブロック図である。携帯端末装置１００は、ＯＳ２２２、端末状態監視部２２４、マイコン制御部２２６及びセンサ利用アプリ２２８及びセンサデータ送信条件テーブル４００を有する。ＯＳ２２２、端末状態監視部２２４、マイコン制御部２２６、センサ利用アプリ２２８は、携帯端末装置１００のＣＰＵ２０１が補助メモリ２０３に記憶された各種プログラムを実行することで実現される。また、センサデータ送信条件テーブル４００は、端末状態種別４０２とその端末状態に対して設定する設定パラメータ４０４とを有する。
【００３０】
センサ利用アプリ２２８はマイコン制御部２２６が公開するセンサ制御ＡＰＩを通じて、センサデータ利用リクエストをマイコン制御部２２６に対して行う。また、センサ利用アプリ２２８はマイコン制御部２２６からセンサデータを取得する。
【００３１】
端末状態監視部２２４はＯＳ２２２から必要な端末状態を取得する。端末状態監視部２２４はセンサデータ送信条件テーブル４００を参照し、端末状態がセンサデータ送信条件テーブル４００に記載された状態に変化したら、その状態に対応したセンサデータ送信条件設定をマイコン制御部２２６に対して行う。センサデータ送信条件は、例えばセンサデータの送信間隔である。
【００３２】
マイコン制御部２２６はセンサ利用アプリ２２８からのセンサ利用リクエストや端末状態監視部からのセンサデータ送信条件設定を受信する。そして、マイコン制御部２２６は受信したセンサ利用リクエスト及びセンサデータ送信条件設定をマイコン３００に送信する。また、マイコン制御部２２６はマイコン３００から送信条件を満たしたセンサデータがあった場合に、当該送信条件を満たしたセンサデータを受信する。さらに、マイコン制御部２２６は、受信した送信条件を満たしたセンサデータをセンサ利用アプリ２２８に送信する。
【００３３】
マイコン３００は、リクエスト処理部３０２、センサデータバッファ管理部３０４とセンサデータ取得部３０６及びメモリ３０８を有する。
【００３４】
リクエスト処理部３０２は、マイコン制御部２２６からセンサデータ利用リクエストを受信する。リクエスト処理部３０２は、受信したセンサデータ利用リクエストに基づいて、センサデータ取得部３０６を稼働させたり、休止させたりする。また、リクエスト処理部３０２は、マイコン制御部２２６からセンサデータ送信条件を受信する。リクエスト処理部３０２は、受信したセンサデータ送信条件に基づいて、センサデータバッファ管理部３０４に対してセンサデータ送信条件を設定する。
【００３５】
センサデータ取得部３０６は、加速度センサ２１８、地磁気センサ２１９及びジャイロセンサ２２０からセンサデータを取得する。センサデータ取得部３０６は、取得したセンサデータをセンサデータバッファ管理部３０４に送信する。なお、図１においては、加速度センサ２１８、地磁気センサ２１９及びジャイロセンサ２２０とマイコン３００とが独立している構成について説明したが、マイコン３００が加速度センサ２１８、地磁気センサ２１９及びジャイロセンサ２２０を内蔵していても良い。
【００３６】
センサデータバッファ管理部３０４はセンサデータ送信条件に基づいて、センサデータの送信条件を満たしていればメモリ３０８上にあるバッファリングしたセンサデータの古いデータから順次マイコン制御部２２６に送信する。一方、センサデータバッファ管理部３０４はセンサデータの送信条件を満たしていなければ、センサデータをメモリ３０８にバッファリングする。マイコン制御部２２６は、センサデータバッファ管理部３０４から受信したセンサデータを順次センサデータ利用アプリに送信する。
【００３７】
（実施の形態２）
図３は、本実施形態における携帯端末装置１００の構成を示すブロック図である。なお、図２において説明したものについては同一番号を付し、その説明を省略する。携帯端末装置の一例であるスマートフォンにおけるセンサ利用アプリにおいて、例えば、複数のアプリを同時に実行していた場合、フォアグラウンドで動作するセンシングアプリによっては、リアルタイム性を必要としないことがある。フォアグラウンドで動作しているセンサ利用アプリがリアルタイム性を必要としない場合はバッファリングをするように制御しても良い。そこで、端末状態監視部２２４は、ＯＳ２２２からのプロセス情報及びフォアグラウンド変化イベントを監視する。なお、ここでフォアグラウンドにおいて動作するアプリとは、アプリの実行結果がＬＣＤ２１３に表示されているアプリである。また、ここでバックグラウンドにおいて動作するアプリとは、アプリの実行結果がＬＣＤ２１３に表示されていないアプリである。
【００３８】
マイコン制御部２２６は、センサ利用アプリ２２８からセンサデータ利用リクエストがあった場合、アプリのプロセスを識別するプロセスＩＤを端末状態監視部２２４に送信する。端末状態監視部２２４は、マイコン制御部２２６から受信したプロセスＩＤに基づいて、プロセスのアプリ種別を取得する。そして、マイコン制御部２２６は、フォアグラウンドで動作しているセンサ利用アプリ２２８がリアルタイム性が必要であればバッファリングしないように、フォアグラウンドで動作しているセンサ利用アプリ２２８がリアルタイム性が必要でなければバッファリングするように制御する。
【００３９】
また、端末状態監視部２２４はセンサを利用しているアプリのプロセスＩＤリストを記憶しておき、フォアグラウンドアプリが変化した時に、フォアグラウンドで動作するセンサ利用アプリがリアルタイム性が必要であればバッファリングしないように制御し、フォアグラウンドで動作するセンサ利用アプリがリアルタイム性が必要でなければバッファリングするように制御する。
【００４０】
センサデータ送信条件テーブル４４０の端末状態４０２及びセンサデータ送信条件４０４には、フォアグラウンドで動作するセンサ利用アプリがリアルタイム性が必要である場合は、バッファリングしないようにセンサデータ送信間隔を０［ｓ］と記述しておく。また、フォアグラウンドで動作するセンサ利用アプリがリアルタイム性が必要でない場合は、バッファリングするようにセンサデータ送信間隔を２［ｓ］と記述しておく。センサデータ送信条件テーブル４４０は、「アプリケーションＡ」はフォアグラウンドで動作する場合、リアルタイム性が必要であることを示しており、「アプリケーションＢ」及び「アプリケーションＣ」はフォアグラウンドで動作する場合、リアルタイム性が必要でないことを示している。なお、本実施形態においては、センサデータ送信条件テーブル４４０には３種類のアプリケーションを示しているが、アプリケーションの数は任意で良い。
【００４１】
フォアグラウンドセンサ利用アプリがある場合、ＯＳ２２２は、フォアグラウンドセンサ利用アプリがある旨を端末状態監視部２２４に通知する。
【００４２】
図４及び図５は本実施形態における携帯端末装置の処理を示すフローチャートである。以下、図４及び図５を用いて本実施形態における携帯端末装置１００の処理について説明する。
【００４３】
Ｓ００１において、端末状態監視部２２４は、ＯＳ２２２からフォアグラウンド変化イベントの通知があったか否かを判定する。ＯＳ２２２からフォアグラウンド変化イベントの通知があった場合、端末状態監視部２２４は、処理をＳ００２へ移行する。一方、ＯＳ２２２からフォアグラウンド変化イベントの通知がなかった場合、端末状態監視部２２４は、処理をＳ００１へ戻す。
【００４４】
Ｓ００２において、端末状態監視部２２４は、マイコン制御部２２６から受信したプロセスＩＤに基づいてフォアグラウンドで動作しているセンサ利用アプリ２２８がリアルタイム性が必要であるか否かを判定し、センサデータ送信条件テーブル４４０を参照して、端末状態に対応するセンサデータ送信条件を取得する。端末状態が「フォアグラウンドで動作するセンサ利用アプリがアプリケーションＡ」である場合、端末状態監視部２２４は、センサデータ送信間隔を０[ｓ]とする。また、端末状態が「フォアグラウンドで動作するセンサ利用アプリがアプリケーションＢまたはアプリケーションＣ」である場合、端末状態監視部２２４は、センサデータ送信間隔を２[ｓ]とする。端末状態監視部２２４は、処理をＳ００３へ移行する。
【００４５】
Ｓ００３において、端末状態監視部２２４は、Ｓ００２において取得したセンサデータ送信条件をマイコン制御部２２６に送信する。端末状態監視部２２４は、処理をＳ００４へ移行する。
【００４６】
Ｓ００４において、マイコン制御部２２６は、端末状態監視部２２４から受信したセンサデータ送信条件をリクエスト処理部３０２へ送信する。マイコン制御部２２６は、処理を終了する。
【００４７】
図５は本実施形態における携帯端末装置が有するマイコン３００の処理を示すフローチャートである。
【００４８】
Ｓ００５において、リクエスト処理部３０２は、マイコン制御部２２６から受信したセンサデータ送信条件をセンサデータバッファ管理部３０４に設定する。具体的には、リクエスト処理部３０２は、端末状態が「フォアグラウンドで動作するセンサ利用アプリがアプリケーションＡ」である場合、センサデータ送信間隔を０[ｓ]とセンサデータバッファ管理部３０４に設定する。また、端末状態が「フォアグラウンドで動作するセンサ利用アプリがアプリケーションＢまたはアプリケーションＣ」である場合、リクエスト処理部３０２は、センサデータ送信間隔を２[ｓ]とセンサデータバッファ管理部３０４に設定する。リクエスト処理部３０２は、処理をＳ００６へ移行する。
【００４９】
Ｓ００６において、センサデータバッファ管理部３０４は、センサデータ取得部３０６がセンサから取得したデータをメモリ３０８にバファリングする。具体的には、センサデータバッファ管理部３０４は、例えば、センサデータテーブル５００をメモリ３０８に格納する。センサデータテーブル５００はタイムスタンプ５０２及びセンサデータ５０４を有する。センサデータバッファ管理部３０４は、センサデータテーブル５００に時間情報と例えば加速度データとを対応付けて記録する。センサデータバッファ管理部３０４は、処理をＳ００７へ移行する。
【００５０】
Ｓ００７において、センサデータバッファ管理部３０４は、Ｓ００５においてリクエスト処理部３０２によって設定された送信間隔を経過したか否かを判定する。具体的には、端末状態が「フォアグラウンドで動作するセンサ利用アプリがアプリケーションＢまたはアプリケーションＣ」である場合、センサデータバッファ管理部３０４は、センサデータ送信間隔である２[ｓ]を経過したか否かを判定する。設定された送信間隔を経過した場合、センサデータバッファ管理部３０４は、処理をＳ００８へ移行する。一方、設定された送信間隔を経過していない場合、センサデータバッファ管理部３０４は、処理をＳ００６へ戻す。なお、端末状態が「フォアグラウンドで動作するセンサ利用アプリがアプリケーションＡ」である場合、センサデータ送信間隔は０[ｓ]であるため、センサデータバッファ管理部３０４は、処理をＳ００８へ移行する。
【００５１】
Ｓ００８において、センサデータバッファ管理部３０４は、メモリ３０８にバッファリングされたセンサデータをマイコン制御部２２６へ送信する。センサデータバッファ管理部３０４は、処理をＳ００９へ移行する。
【００５２】
Ｓ００９において、マイコン制御部２２６は、センサデータバッファ管理部３０４から受信したセンサデータを古いデータから順次センサ利用アプリに送信する。マイコン制御部２２６は、処理をＳ００１に戻す。
【００５３】
（実施の形態３）
図６は、本実施形態における携帯端末装置１００の構成を示すブロック図である。なお、図２及び図３において説明したものについては同一番号を付し、その説明を省略する。携帯端末装置の一例であるスマートフォンにおけるセンサ利用アプリにおいて、例えばユーザに画面を通してフィードバックせずにバックグラウンドで動作するセンシングアプリは、リアルタイム性を必要としないことが多い。センサ利用アプリがフォアグラウンドで動作していない場合はバッファリングをするように制御しても良い。そこで、端末状態監視部２２４は、ＯＳ２２２からのプロセス情報及びフォアグラウンド変化イベントを監視する。なお、ここでフォアグラウンドで動作するアプリとは、アプリの実行結果がＬＣＤ２１３に表示されているアプリである。また、ここでバックグラウンドで動作するアプリとは、アプリの実行結果がＬＣＤ２１３に表示されていないアプリである。
【００５４】
マイコン制御部２２６は、センサ利用アプリ２２８からセンサデータ利用リクエストがあった場合、アプリのプロセスを識別するプロセスＩＤを端末状態監視部２２４に送信する。端末状態監視部２２４は、マイコン制御部２２６から受信したプロセスＩＤに基づいて、プロセスのアプリ種別を取得する。そして、マイコン制御部２２６は、センサ利用アプリ２２８がフォアグラウンドで動作していればバッファリングしないように、センサ利用アプリ２２８がバックグラウンドで動作していればバッファリングするように制御する。
【００５５】
また、端末状態監視部２２４はセンサを利用しているアプリのプロセスＩＤリストを記憶しておき、フォアグラウンドアプリが変化した時に、センサ利用アプリがフォアグラウンドになったらバッファリングしないように制御し、センサ利用アプリ以外のアプリがフォアグラウンドになったらバッファリングするように制御する。
【００５６】
センサデータ送信条件テーブル４１０の端末状態４０２及びセンサデータ送信条件４０４には、フォアグラウンドセンサ利用アプリがある場合は、バッファリングしないようにセンサデータ送信間隔を０［ｓ］と記述しておく。また、センサデータ送信条件テーブル４００の端末状態４０２及びセンサデータ送信条件４０４には、センサ利用アプリは全てバックグラウンドである場合は、センサデータ送信間隔を２［ｓ］にするように記述しておく。
【００５７】
フォアグラウンドセンサ利用アプリがある場合、ＯＳ２２２は、フォアグラウンドセンサ利用アプリがある旨を端末状態監視部２２４に通知する。
【００５８】
図７及び図８は本実施形態における携帯端末装置の処理を示すフローチャートである。以下、図７及び図８を用いて本実施形態における携帯端末装置１００の処理について説明する。
【００５９】
Ｓ１０１において、端末状態監視部２２４は、ＯＳ２２２からフォアグラウンド変化イベントの通知があったか否かを判定する。ＯＳ２２２からフォアグラウンド変化イベントの通知があった場合、端末状態監視部２２４は、処理をＳ１０２へ移行する。一方、ＯＳ２２２からフォアグラウンド変化イベントの通知がなかった場合、端末状態監視部２２４は、処理をＳ１０１へ戻す。
【００６０】
Ｓ１０２において、端末状態監視部２２４は、マイコン制御部２２６から受信したプロセスＩＤに基づいてセンサ利用アプリ２２８がフォアグラウンドまたはバックグラウンドのいずれかで動作しているかを判定し、センサデータ送信条件テーブル４１０を参照して、端末状態に対応するセンサデータ送信条件を取得する。端末状態が「フォアグラウンドセンサ利用アプリあり」である場合、端末状態監視部２２４は、センサデータ送信間隔を０[ｓ]とする。また、端末状態が「センサ利用アプリは全てバックグラウンド」である場合、端末状態監視部２２４は、センサデータ送信間隔を２[ｓ]とする。端末状態監視部２２４は、処理をＳ１０３へ移行する。
【００６１】
Ｓ１０３において、端末状態監視部２２４は、Ｓ１０２において取得したセンサデータ送信条件をマイコン制御部２２６に送信する。端末状態監視部２２４は、処理をＳ１０４へ移行する。
【００６２】
Ｓ１０４において、マイコン制御部２２６は、端末状態監視部２２４から受信したセンサデータ送信条件をリクエスト処理部３０２へ送信する。マイコン制御部２２６は、処理を終了する。
【００６３】
図８は本実施形態における携帯端末装置が有するマイコン３００の処理を示すフローチャートである。
【００６４】
Ｓ１０５において、リクエスト処理部３０２は、マイコン制御部２２６から受信したセンサデータ送信条件をセンサデータバッファ管理部３０４に設定する。具体的には、リクエスト処理部３０２は、端末状態が「フォアグラウンドセンサ利用アプリあり」である場合、センサデータ送信間隔を０[ｓ]とセンサデータバッファ管理部３０４に設定する。また、端末状態が「センサ利用アプリは全てバックグラウンド」である場合、リクエスト処理部３０２は、センサデータ送信間隔を２[ｓ]とセンサデータバッファ管理部３０４に設定する。リクエスト処理部３０２は、処理を終了する。
【００６５】
Ｓ１０６において、センサデータバッファ管理部３０４は、センサデータ取得部３０６がセンサから取得したデータをメモリ３０８にバファリングする。具体的には、センサデータバッファ管理部３０４は、例えば、センサデータテーブル５００をメモリ３０８に格納する。センサデータテーブル５００はタイムスタンプ５０２及びセンサデータ５０４を有する。センサデータバッファ管理部３０４は、センサデータテーブル５００に時間情報と例えば加速度データとを対応付けて記録する。センサデータバッファ管理部３０４は、処理をＳ１０７へ移行する。
【００６６】
Ｓ１０７において、センサデータバッファ管理部３０４は、Ｓ１０５においてリクエスト処理部３０２によって設定された送信間隔を経過したか否かを判定する。具体的には、端末状態が「センサ利用アプリは全てバックグラウンド」である場合、センサデータバッファ管理部３０４は、センサデータ送信間隔である２[ｓ]を経過したか否かを判定する。設定された送信間隔を経過した場合、センサデータバッファ管理部３０４は、処理をＳ１０８へ移行する。一方、設定された送信間隔を経過していない場合、センサデータバッファ管理部３０４は、処理をＳ１０６へ戻す。なお、端末状態が「フォアグラウンドセンサ利用アプリあり」である場合、センサデータ送信間隔は０[ｓ]であるため、センサデータバッファ管理部３０４は、処理をＳ１０８へ移行する。
【００６７】
Ｓ１０８において、センサデータバッファ管理部３０４は、メモリ３０８にバッファリングされたセンサデータをマイコン制御部２２６へ送信する。センサデータバッファ管理部３０４は、処理をＳ１０９へ移行する。
【００６８】
Ｓ１０９において、マイコン制御部２２６は、センサデータバッファ管理部３０４から受信したセンサデータを古いデータから順次センサ利用アプリに送信する。マイコン制御部２２６は、処理をＳ１０１に戻す。
【００６９】
（実施の形態４）
図９は、本実施形態における携帯端末装置１００の構成を示すブロック図である。なお、図２、図３及び図６において説明したものについては同一番号を付し、その説明を省略する。スマートフォンにおけるセンサ利用アプリでは、特にユーザに画面を通じてフィードバックしない場合、リアルタイム性を必要としないことが多い。そこで、本実施形態では端末状態監視部２２４がＯＳ２２２からの画面オン・オフのイベントを監視する例について説明する。
【００７０】
また、上述した実施の形態では、センサデータ送信条件としてデータ送信間隔を用いたが、データ送信間隔以外にもセンサデータ内容による送信条件を用いても良い。例えば、センサデータの変化が少ない場合はセンサ利用アプリにとってセンサデータの必要度が低いと考えられる。そこで、例えば前回通知時からメモリにバッファリングされたセンサデータに閾値以上の差分があった場合や、メモリにバッファリングされているセンサデータの総和が閾値以上になった場合はデータ送信間隔を短く、変化がない場合はデータ送信間隔を長く設定しても良い。
【００７１】
センサデータ送信条件テーブル４２０の端末状態４０２及びセンサデータ送信条件４０４には、画面オンの場合、送信マックス間隔を０［ｍｓ］と記述しておく。また、センサデータ送信条件テーブル４２０の端末状態４０２及びセンサデータ送信条件４０４には、画面オフの場合、送信ミニマム間隔を１０００［ｍｓ］、送信マックス間隔を５０００[ｍｓ]と記述しておく。さらに、センサデータ送信条件テーブル４２０の端末状態４０２及びセンサデータ送信条件４０４には、画面オフの場合、加速度センサ値条件を前回差分２[ｍ／ｓ＾２]、ジャイロセンサ値条件を総和１０[ｄｅｇ／ｓｅｃ]と記述しておく。
【００７２】
センサデータバッファ管理部３０４は、「前回通知から送信ミニマム間隔が経過、かつセンサデータがセンサデータ値条件を満足」または「前回通知から送信マックス間隔が経過」
のいずれかの条件を満たした場合にデータをマイコン制御部２２６に送信する。本実施形態では、画面オン時は送信マックス間隔を０[ｍｓ]に設定し、常にセンサデータバッファ管理部３０４がバッファリングせずにデータをマイコン制御部２２６に送信するように制御する。一方、画面オフ時はまずセンサデータの前回送信から５０００[ｍｓ]以上経過した場合は即座にセンサデータバッファ管理部３０４はデータをマイコン制御部２２６に送信するように制御する。また、前回送信から１０００[ｍｓ]以上経過し、かつ前回データ送信時から加速度センサが２[ｍ／ｓ＾２]以上変化するか、またはジャイロセンサのバッファ内データの総和が１０[ｄｅｇ／ｓｅｃ]に達した場合はそのタイミングでデータをマイコン制御部２２６に送信する。このような構成することで、データ送信間隔をデータの内容に応じて変化させることができる。
【００７３】
図１０及び図１１は本実施形態における携帯端末装置の処理を示すフローチャートである。以下、図１０及び図１１を用いて本実施形態における携帯端末装置１００の処理について説明する。
【００７４】
Ｓ２０１において、端末状態監視部２２４は、ＯＳ２２２から画面オン・オフイベントの通知があったか否かを判定する。ＯＳ２２２から画面オン・オフイベントの通知があった場合、端末状態監視部２２４は、処理をＳ２０２へ移行する。一方、ＯＳ２２２から画面オン・オフイベントの通知がなかった場合、端末状態監視部２２４は、処理をＳ２０１へ戻す。
【００７５】
Ｓ２０２において、端末状態監視部２２４は、ＯＳ２２２から通知された画面オン・オフイベントに基づいて、センサデータ送信条件テーブル４２０を参照して、端末状態に対応するセンサデータ送信条件を取得する。端末状態が「画面オン」である場合、端末状態監視部２２４は、送信マックス間隔を０［ｍｓ］とする。また、端末状態が「画面オフ」である場合、端末状態監視部２２４は、送信ミニマム間隔を１０００［ｍｓ］、送信マックス間隔を５０００［ｍｓ］、加速度センサ値条件を前回差分２[ｍ／ｓ＾２]、ジャイロセンサ値条件を総和が１０[ｄｅｇ／ｓｅｃ]とする。端末状態監視部２２４は、処理をＳ２０３へ移行する。
【００７６】
Ｓ２０３において、端末状態監視部２２４は、Ｓ２０２において取得したセンサデータ送信条件をマイコン制御部２２６に送信する。端末状態監視部２２４は、処理をＳ２０４へ移行する。
【００７７】
Ｓ２０４において、マイコン制御部２２６は、端末状態監視部２２４から受信したセンサデータ送信条件をリクエスト処理部３０２へ送信する。マイコン制御部２２６は、処理を終了する。
【００７８】
図１１は本実施形態における携帯端末装置が有するマイコン３００の処理を示すフローチャートである。
【００７９】
Ｓ２０５において、リクエスト処理部３０２は、マイコン制御部２２６から受信したセンサデータ送信条件をセンサデータバッファ管理部３０４に設定する。具体的には、リクエスト処理部３０２は、端末状態が「画面オン」である場合、送信マックス間隔を０［ｍｓ］とセンサデータバッファ管理部３０４に設定する。また、端末状態が「画面オフ」である場合、リクエスト処理部３０２は、送信ミニマム間隔を１０００［ｍｓ］、送信マックス間隔を５０００［ｍｓ］、加速度センサ値条件を前回差分２[ｍ／ｓ＾２]、ジャイロセンサ値条件を総和が１０[ｄｅｇ／ｓｅｃ]とセンサデータバッファ管理部３０４に設定する。リクエスト処理部３０２は、処理をＳ２０６へ移行する。
【００８０】
Ｓ２０６において、センサデータバッファ管理部３０４は、センサデータ取得部３０６がセンサから取得したデータをメモリ３０８にバファリングする。具体的には、センサデータバッファ管理部３０４は、例えば、センサデータテーブル５００をメモリ３０８に格納する。センサデータテーブル５００はタイムスタンプ５０２及びセンサデータ５０４を有する。センサデータバッファ管理部３０４は、センサデータテーブル５００に時間情報と例えば加速度データとを対応付けて記録する。センサデータバッファ管理部３０４は、処理をＳ２０７へ移行する。
【００８１】
Ｓ２０７において、センサデータバッファ管理部３０４は、Ｓ２０５においてリクエスト処理部３０２によって設定されたミニマム間隔を経過したか否かを判定する。具体的には、端末状態が「画面オフ」である場合、センサデータバッファ管理部３０４は、ミニマム間隔である１０００[ｍｓ]を経過したか否かを判定する。設定されたミニマム間隔を経過した場合、センサデータバッファ管理部３０４は、処理をＳ２０８へ移行する。一方、設定されたミニマム間隔を経過していない場合、センサデータバッファ管理部３０４は、処理をＳ２０６へ戻す。
【００８２】
Ｓ２０８において、センサデータバッファ管理部３０４は、Ｓ２０５においてリクエスト処理部３０２によって設定されたセンサ値条件を満たすか否かを判定する。具体的には、端末状態が「画面オフ」である場合、センサデータバッファ管理部３０４は、加速度センサ値条件が前回差分２[ｍ／ｓ＾２]であるか否か、またはジャイロセンサ値条件を総和が１０[ｄｅｇ／ｓｅｃ]であるか否かを判定する。センサ値条件を満たす場合、センサデータバッファ管理部３０４は、処理をＳ２１０へ移行する。一方、センサ値条件を満たさない場合、センサデータバッファ管理部３０４は、処理をＳ２０９へ移行する。
【００８３】
Ｓ２０９において、センサデータバッファ管理部３０４は、Ｓ２０５においてリクエスト処理部３０２によって設定されたマックス間隔を経過したか否かを判定する。具体的には、端末状態が「画面オフ」である場合、センサデータバッファ管理部３０４は、マックス間隔である５０００[ｍｓ]を経過したか否かを判定する。設定されたマックス間隔を経過した場合、センサデータバッファ管理部３０４は、処理をＳ２１０へ移行する。一方、設定されたマックス間隔を経過していない場合、センサデータバッファ管理部３０４は、処理をＳ２０６へ戻す。
【００８４】
なお、端末状態が「画面オン」である場合、マックス間隔は０[ｓ]であるため、センサデータバッファ管理部３０４は、Ｓ２０７にて「ＹＥＳ」と判定、Ｓ２０８にて「ＮＯ」と判定、Ｓ２０９にて「ＹＥＳ」と判定し、処理をＳ２１０へ移行する。
【００８５】
Ｓ２１０において、センサデータバッファ管理部３０４は、メモリ３０８にバッファリングされたセンサデータをマイコン制御部２２６へ送信する。センサデータバッファ管理部３０４は、処理をＳ２１１へ移行する。
【００８６】
Ｓ２１１において、マイコン制御部２２６は、センサデータバッファ管理部３０４から受信したセンサデータを古いデータから順次センサ利用アプリに送信する。マイコン制御部２２６は、処理をＳ２０１に戻す。
【００８７】
（実施の形態５）
図１２は、本実施形態における携帯端末装置１００の構成を示すブロック図である。なお、図２、図３、図６及び図９において説明したものについては同一番号を付し、その説明を省略する。センサデータのバッファリングした場合の省電力効果が発揮されるのはＣＰＵ２０１がスリープしている時である。そこで端末状態監視部２２４でＣＰＵ２０１がスリープ状態に入るイベントをハンドリングして、スリープするタイミングとウェイクするタイミングでセンサデータ送信条件を設定する方法が考えられる。しかしながら、センサ利用アプリ自身の動作のためにＣＰＵ２０１がスリープとウェイクを繰り返すため、単純にウェイク時にバッファリングしないように設定するとうまく動作しない。そこで、センサ利用アプリ以外のプロセスの動作状態を端末状態監視部で監視してもよい。
【００８８】
マイコン制御部２２６は、センサ利用アプリ２２８からセンサ利用リクエストがあった時に、そのプロセスを識別するＩＤ情報を端末状態監視部２２４に送信する。端末状態監視部２２４は画面オン・オフを監視すると共に、画面オフ時にはセンサ利用アプリ以外のプロセスの動作時間を定期的にチェックする。ここで、センサ利用アプリ以外のＣＰＵ利用時間が閾値以下なら、センサデータをバッファリングすることでＣＰＵのスリープが可能なスリープ可能状態と判断する。そして画面オフかつスリープ可能状態であればバッファリングを行うように制御する。
【００８９】
センサデータ送信条件テーブル４３０の端末状態４０２及びセンサデータ送信条件４０４には、画面オンの場合、センサデータ送信間隔を０［ｓ］と記述しておく。また、センサデータ送信条件テーブル４２０の端末状態４０２及びセンサデータ送信条件４０４には、画面オフかつスリープ可能状態の場合、センサ送信間隔を２［ｓ］と記述しておく。
【００９０】
図１３及び図１４は本実施形態における携帯端末装置の処理を示すフローチャートである。以下、図１３及び図１４を用いて本実施形態における携帯端末装置１００の処理について説明する。
【００９１】
Ｓ３０１において、端末状態監視部２２４は、一定時間に到達したか否かを判定する。一定時間に到達した場合、端末状態監視部２２４は、処理をＳ３０２へ移行する。一方、一定時間に到達していない場合、端末状態監視部２２４は、処理をＳ３０１へ戻す。
【００９２】
Ｓ３０２において、端末状態監視部２２４は、マイコン制御部２２６から受信したプロセスＩＤに基づいてセンサ利用アプリ以外のプロセス動作時間をＯＳ２２２から取得する。端末状態監視部２２４は、処理をＳ３０３へ移行する。
【００９３】
Ｓ３０３において、端末状態監視部２２４は、ＯＳ２２２から取得したセンサ利用アプリ以外のプロセス動作時間が閾値以下か否かを判定することにより、ＣＰＵ２０１がスリープ可能状態か否かを判定する。ここで、端末状態監視部２２４は、センサ利用アプリ以外のプロセス動作時間が閾値以下の場合、ＣＰＵ２０１がスリープ可能状態であると判定する。また、端末状態監視部２２４は、センサ利用アプリ以外のプロセス動作時間が閾値以下でない場合、ＣＰＵ２０１がスリープ可能状態でないと判定する。端末状態監視部２２４は、処理をＳ３０４へ移行する。
【００９４】
Ｓ３０４において、端末状態監視部２２４は、スリープ可能状態及び画面状態に基づき、センサデータ送信条件テーブル４３０を参照して、端末状態に対応するセンサデータ送信条件を取得する。端末状態が「画面オン」である場合、端末状態監視部２２４は、センサデータ送信間隔を０[ｓ]とする。また、端末状態が「画面オフ」かつ「スリープ可能状態」である場合、端末状態監視部２２４は、センサデータ送信間隔を２[ｓ]とする。端末状態監視部２２４は、処理をＳ３０５へ移行する。
【００９５】
Ｓ３０５において、端末状態監視部２２４は、Ｓ３０２において取得したセンサデータ送信条件をマイコン制御部２２６に送信する。端末状態監視部２２４は、処理をＳ３０６へ移行する。
【００９６】
Ｓ３０６において、マイコン制御部２２６は、端末状態監視部２２４から受信したセンサデータ送信条件をリクエスト処理部３０２へ送信する。マイコン制御部２２６は、処理を終了する。
【００９７】
図１４は本実施形態における携帯端末装置が有するマイコン３００の処理を示すフローチャートである。
【００９８】
Ｓ３０７において、リクエスト処理部３０２は、マイコン制御部２２６から受信したセンサデータ送信条件をセンサデータバッファ管理部３０４に設定する。具体的には、リクエスト処理部３０２は、端末状態が「画面オン」である場合、センサデータ送信間隔を０[ｓ]とセンサデータバッファ管理部３０４に設定する。また、端末状態が「画面オン」かつ「スリープ可能状態」である場合、端末状態監視部２２４は、センサデータ送信間隔を２[ｓ]とセンサデータバッファ管理部３０４に設定する。リクエスト処理部３０２は、処理をＳ３０８へ移行する。
【００９９】
Ｓ３０８において、センサデータバッファ管理部３０４は、センサデータ取得部３０６がセンサから取得したデータをメモリ３０８にバファリングする。具体的には、センサデータバッファ管理部３０４は、例えば、センサデータテーブル５００をメモリ３０８に格納する。センサデータテーブル５００はタイムスタンプ５０２及びセンサデータ５０４を有する。センサデータバッファ管理部３０４は、センサデータテーブル５００に時間情報と例えば加速度データとを対応付けて記録する。センサデータバッファ管理部３０４は、処理をＳ３０９へ移行する。
【０１００】
Ｓ３０９において、センサデータバッファ管理部３０４は、Ｓ３０７においてリクエスト処理部３０２によって設定された送信間隔を経過したか否かを判定する。具体的には、端末状態が「画面オフ」かつ「スリープ可能状態」である場合、センサデータバッファ管理部３０４は、センサデータ送信間隔である２[ｓ]を経過したか否かを判定する。設定された送信間隔を経過した場合、センサデータバッファ管理部３０４は、処理をＳ３１０へ移行する。一方、設定された送信間隔を経過していない場合、センサデータバッファ管理部３０４は、処理をＳ３０８へ戻す。なお、端末状態が「画面オン」である場合、センサデータ送信間隔は０[ｓ]であるため、センサデータバッファ管理部３０４は、処理をＳ３１０へ移行する。
【０１０１】
Ｓ３１０において、センサデータバッファ管理部３０４は、メモリ３０８にバッファリングされたセンサデータをマイコン制御部２２６へ送信する。センサデータバッファ管理部３０４は、処理をＳ３１１へ移行する。
【０１０２】
Ｓ３１１において、マイコン制御部２２６は、センサデータバッファ管理部３０４から受信したセンサデータを古いデータから順次センサ利用アプリに送信する。マイコン制御部２２６は、処理をＳ３０１に戻す。
【０１０３】
以上説明した本実施形態の有効性について説明する。リアルタイム性が不要な場合の携帯端末装置の消費電力を、センサデータをメモリにバッファリングしない場合と比較する。比較図を図１５及び図１６に示す。図１５はバッファリングしない場合のＣＰＵ動作時間を示す図である。図１６はバッファリングする場合のＣＰＵ動作時間を示す図である。ＣＰＵの動作中の電力をＷＣＰＵ、ＣＰＵ休止中の電力をＷＳＵＳ、マイコンの電力をＷｍｉｃとし、ある期間ＴにおけるＣＰＵの動作期間をｔとする。携帯端末がセンシングで消費する電力量は、ＷＣＰＵ・ｔ＋ＷＳＵＳ・（Ｔ−ｔ）＋Ｗｍｉｃとなる。なお、推定条件としてセンサ利用アプリ以外はほとんど動作していない、利用者無操作時の状態を仮定する。
【０１０４】
１回分のセンサデータ処理時間をｘ、「スリープチェックにかかる時間」＋「移行にかかる時間」をｙとし、バッファリング時はＮ回分のデータをまとめて送信するようにした場合、Ｎ回のセンサデータ処理でＣＰＵが動作する時間ｔはバッファリングする時はＮｘ＋ｙ、バッファリングしない時はＮｘ＋Ｎｙとなる。即ち、携帯端末装置の消費電力量は、バッファリングする時は、ＷＣＰＵ・（Ｎｘ＋ｙ）＋ＷＳＵＳ・（Ｔ−（Ｎｘ＋ｙ））＋Ｗｍｉｃ
となる。また、携帯端末装置の消費電力量は、バッファリングしない時は、ＷＣＰＵ・（Ｎｘ＋Ｎｙ）＋ＷＳＵＳ・（Ｔ−（Ｎｘ＋Ｎｙ））＋Ｗｍｉｃとなる。一般的にＷＣＰＵ＞＞Ｗｍｉｃ、ＷＣＰＵ＞＞ＷＳＵＳなので、バッファリングする時の携帯端末装置の消費電力とバッファリングしない時の携帯端末装置の消費電力との比は約（Ｎｘ＋ｙ）／（Ｎｘ＋Ｎｙ）となる。特に、ｘ＜＜ｙの場合、最高約１／Ｎまで消費電力を抑制できる。
【０１０５】
このようにリアルタイム性が不要な場合は消費電力を抑制しつつ、リアルタイム性が必要な場合、ないしＣＰＵがスリープできずにバッファリングによる省電力効果が見込めない場合はセンサデータを常に送信することで、応答性を確保できる。また、本実実施形態は携帯端末装置のアプリケーションソフトを変更することなく携帯端末装置に適用することが可能である。さらに、サンプリング間隔は変更しないので、センサデータを利用して軌跡計算等を行う場合は高精度なセンサデータを使うことが可能である。
【０１０６】
以上述べてきたように、端末状態に応じてセンサバッファリングの制御を行うことで、リアルタイム性が必要な時は即座にセンサデータを送信して、応答性を確保しながら、リアルタイム性が不要な時はバッファリングすることで消費電力を抑制できる。
【０１０７】
以上、本発明の例示的な実施の形態の携帯端末装置について説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。例えば、センサ利用アプリが全てバックグラウンドで動作している場合でも、動作しているセンサ利用アプリの中に処理優先度が高いセンサ利用アプリが存在する場合、当該処理優先度が高いセンサ利用アプリのために、センサデータ送信間隔を０「ｓ」と設定しても良い。
【符号の説明】
【０１０８】
１００  携帯端末装置
２０１  ＣＰＵ
２０２  メインメモリ
２０３  補助メモリ
２０４  クロック供給回路
２０５  電圧供給回路
２０６  ＲＦ部
２０７  アンテナ
２０８  バッテリ
２０９  電源回路
２１０  カメラモジュール
２１１  ブルートゥースインターフェース
２１２  ＧＰＳモジュール
２１３  ＬＣＤ
２１５  外部給電部
２１６  バス
２１８  加速度センサ
２１９  地磁気センサ
２２０  ジャイロセンサ
２２２  ＯＳ
２２４  端末状態監視部
２２６  マイコン制御部
２２８  センサ利用アプリ
３００  マイコン
３０２  リクエスト処理部
３０４  センサデータバッファ管理部
３０６  センサデータ取得部
３０８  メモリ
３１０  クロック
４００、４１０、４２０、４３０、４４０  センサデータ送信条件テーブル
４０２  端末状態
４０４  センサデータ送信条件
５００  センサデータテーブル
５０２  タイムスタンプ
５０４  センサデータ
【図１】
0005831207.tif 000002
【図２】
0005831207.tif 000003
【図３】
0005831207.tif 000004
【図４】
0005831207.tif 000005
【図５】
0005831207.tif 000006
【図６】
0005831207.tif 000007
【図７】
0005831207.tif 000008
【図８】
0005831207.tif 000009
【図９】
0005831207.tif 000010
【図１０】
0005831207.tif 000011
【図１１】
0005831207.tif 000012
【図１２】
0005831207.tif 000013
【図１３】
0005831207.tif 000014
【図１４】
0005831207.tif 000015
【図１５】
0005831207.tif 000016
【図１６】
0005831207.tif 000017