(58)【調査した分野】(Int.Cl.,DB名)
データを取得する取得部と、前記取得部が取得したデータの処理を行う第1処理部と、前記取得部から取得したデータを前記第1処理部に転送する第2処理部とを有する携帯端末装置において、
前記第1処理部は、
前記第2処理部が前記取得部から取得したデータを前記第1処理部に送信する際の送信条件と、前記携帯端末装置の状態情報とを対応付けた対応情報を格納する格納部と、
前記携帯端末装置の状態情報を取得し、前記対応情報を参照して、前記取得した状態情報に対応する送信条件を取得し、前記第2処理部に前記取得した送信条件を送信する状態監視部を有し、
前記第1処理部は、
前記取得部を利用する複数のアプリケーションプログラムの動作を検出し、前記検出した複数のアプリケーションプログラムのうちいずれか1つのアプリケーションの実行結果が、前記携帯端末装置が有する表示部に表示されているか否かに基づいて、前記対応情報を参照して取得した送信条件を前記第2処理部に送信し、
前記第2処理部は、
前記第1処理部から送信された前記送信条件に基づき、前記取得部から取得したデータを前記第1処理部に送信する、
ことを特徴とする携帯端末装置。
【発明を実施するための形態】
【0015】
以下、本実施形態における携帯端末装置ついて説明する。
【0016】
(実施の形態1)
図1は、本実施形態における携帯端末装置のハードウェア構成を示す図である。
図1に示す携帯端末装置100は、例えばスマートフォンやタブレットPC(Personal Computer)などの携帯情報端末である。
【0017】
携帯端末装置100は、CPU(Central Processing Unit)201と、メインメモリ202と、補助メモリ203と、クロック供給回路204と、電圧供給回路205と、RF(Radio Frequency)部206と、アンテナ207と、バッテリ208とをハードウェアモジュールとして備えている。また、携帯端末装置100は、電源回路209と、カメラモジュール210と、ブルートゥースインターフェース211と、GPSモジュール212と、LCD(LiquiD Crystal Display)213と、外部給電部215と、マイコン300と、加速度センサ218と、地磁気センサ219と、ジャイロセンサ220とをハードウェアモジュールとして備えている。各ハードウェアモジュールは、例えばバス216によって接続されている。
【0018】
CPU201は、携帯端末装置100の全体の制御を司る。CPU201は、クロック供給回路204から供給されるクロック信号及び電圧供給回路205から供給される電圧によって動作する。CPU201は、ソフト処理が不要な時は完全に動作を休止し、外部からの割り込みがあるまでスリープすることで消費電力を削減している。なお、CPU201はクアッドコアCPU等、任意の数のコアを有していても良い。
【0019】
メインメモリ202は、例えばRAM(Random Access Memory)である。メインメモリ202は、CPU201のワークエリアとして使用される。
【0020】
補助メモリ203は、例えば、フラッシュメモリなどの不揮発メモリである。補助メモリ203は、携帯端末装置100を動作させるOS(Operating System)等の各種プログラムを記憶している。補助メモリ203に記憶されたプログラムは、メインメモリ202にロードされてCPU201によって実行される。これによって、後述する各種プログラムが携帯端末装置100にて実行されるようになる。
【0021】
クロック供給回路204は、周波数が可変のクロック信号をCPU201へ供給する。クロック供給回路204は、例えば、クロック信号を発振する水晶振動子及びRTC(Real Time Clock)などによって実現することができる。電圧供給回路205は、電源回路209から供給される電力によってCPU201に可変の電圧を供給する。電圧供給回路205は、例えばボルテージディテクタ及びボルテージレギュレータなどによって実現することができる。
【0022】
RF部206は、CPU201からの制御により、高周波信号をアンテナ207から他の無線通信装置へ送信するトランスミッタの機能を有する。また、RF部206は、アンテナ207によって受信された高周波信号をベースバンド信号に変換してCPU201へ出力するレシーバの機能を有する。
【0023】
バッテリ208は、電源回路209へ電力を供給する。バッテリ208は、例えばリチウムイオン電池などの電池と電池保護用のIC(Integrated Circuit)などによって実現することができる。電源回路209は、バッテリ208から供給される電力を不図示の電源線を介して携帯端末装置100の各ハードウェアモジュールへ供給する。また、電源回路209は、外部給電部215に外部電源が接続されている場合は、外部給電部215から供給される電力を携帯端末装置100の各ハードウェアモジュールへ供給しても良い。電源回路209は、例えばスイッチングレギュレータ及びボルテージレギュレータによって実現することができる。
【0024】
カメラモジュール210は、CPU201からの制御により、被写体を撮影し、撮影により得られた映像データを取得する。ブルートゥースインターフェース211は、CPU201からの制御により、他の通信装置との間でBluetooth(登録商標)による無線通信を行う通信インターフェースである。また、携帯端末装置100は、ブルートゥースインターフェース211の他に、無線LAN(Local Area Network)などの無線通信インターフェースを備えていても良い。
【0025】
GPSモジュール212は、CPU201からの制御により、人工衛星の発する電波を受信することによって携帯端末装置100の地球上の現在位置を示す位置情報を取得する。
【0026】
LCD213は、CPU201からの制御により、ユーザに対して画像を表示する画像表示装置である。また、LCD213は、タッチパッドなどの位置入力機能も兼ね備えたタッチパネルであっても良い。
【0027】
加速度センサ218は、携帯端末装置100の加速度を計測する。地磁気センサ219は、磁界の方向を計測する。ジャイロセンサ220は、携帯端末装置100の方向の変化を計測する。なお、本実施形態では、携帯端末装置100は、加速度センサ218、地磁気センサ219及びジャイロセンサ220を有している構成について説明するが、例えば、照度センサ、傾きセンサ、加圧センサ、接近センサ、温度センサ等を有していても良い。
【0028】
マイコン300は、センサデータを処理したり、センサデータをバッファして一度に複数データをまとめてCPU201に通知したりする。このような構成にすることで、マイコン300は、CPU201がスリープ中でも加速度センサ218、地磁気センサ219及びジャイロセンサ220を制御してデータを取得することが可能になる。
【0029】
図2は、本実施形態における携帯端末装置100の構成を示すブロック図である。携帯端末装置100は、OS222、端末状態監視部224、マイコン制御部226及びセンサ利用アプリ228及びセンサデータ送信条件テーブル400を有する。OS222、端末状態監視部224、マイコン制御部226、センサ利用アプリ228は、携帯端末装置100のCPU201が補助メモリ203に記憶された各種プログラムを実行することで実現される。また、センサデータ送信条件テーブル400は、端末状態種別402とその端末状態に対して設定する設定パラメータ404とを有する。
【0030】
センサ利用アプリ228はマイコン制御部226が公開するセンサ制御APIを通じて、センサデータ利用リクエストをマイコン制御部226に対して行う。また、センサ利用アプリ228はマイコン制御部226からセンサデータを取得する。
【0031】
端末状態監視部224はOS222から必要な端末状態を取得する。端末状態監視部224はセンサデータ送信条件テーブル400を参照し、端末状態がセンサデータ送信条件テーブル400に記載された状態に変化したら、その状態に対応したセンサデータ送信条件設定をマイコン制御部226に対して行う。センサデータ送信条件は、例えばセンサデータの送信間隔である。
【0032】
マイコン制御部226はセンサ利用アプリ228からのセンサ利用リクエストや端末状態監視部からのセンサデータ送信条件設定を受信する。そして、マイコン制御部226は受信したセンサ利用リクエスト及びセンサデータ送信条件設定をマイコン300に送信する。また、マイコン制御部226はマイコン300から送信条件を満たしたセンサデータがあった場合に、当該送信条件を満たしたセンサデータを受信する。さらに、マイコン制御部226は、受信した送信条件を満たしたセンサデータをセンサ利用アプリ228に送信する。
【0033】
マイコン300は、リクエスト処理部302、センサデータバッファ管理部304とセンサデータ取得部306及びメモリ308を有する。
【0034】
リクエスト処理部302は、マイコン制御部226からセンサデータ利用リクエストを受信する。リクエスト処理部302は、受信したセンサデータ利用リクエストに基づいて、センサデータ取得部306を稼働させたり、休止させたりする。また、リクエスト処理部302は、マイコン制御部226からセンサデータ送信条件を受信する。リクエスト処理部302は、受信したセンサデータ送信条件に基づいて、センサデータバッファ管理部304に対してセンサデータ送信条件を設定する。
【0035】
センサデータ取得部306は、加速度センサ218、地磁気センサ219及びジャイロセンサ220からセンサデータを取得する。センサデータ取得部306は、取得したセンサデータをセンサデータバッファ管理部304に送信する。なお、
図1においては、加速度センサ218、地磁気センサ219及びジャイロセンサ220とマイコン300とが独立している構成について説明したが、マイコン300が加速度センサ218、地磁気センサ219及びジャイロセンサ220を内蔵していても良い。
【0036】
センサデータバッファ管理部304はセンサデータ送信条件に基づいて、センサデータの送信条件を満たしていればメモリ308上にあるバッファリングしたセンサデータの古いデータから順次マイコン制御部226に送信する。一方、センサデータバッファ管理部304はセンサデータの送信条件を満たしていなければ、センサデータをメモリ308にバッファリングする。マイコン制御部226は、センサデータバッファ管理部304から受信したセンサデータを順次センサデータ利用アプリに送信する。
【0037】
(実施の形態2)
図3は、本実施形態における携帯端末装置100の構成を示すブロック図である。なお、
図2において説明したものについては同一番号を付し、その説明を省略する。携帯端末装置の一例であるスマートフォンにおけるセンサ利用アプリにおいて、例えば、複数のアプリを同時に実行していた場合、フォアグラウンドで動作するセンシングアプリによっては、リアルタイム性を必要としないことがある。フォアグラウンドで動作しているセンサ利用アプリがリアルタイム性を必要としない場合はバッファリングをするように制御しても良い。そこで、端末状態監視部224は、OS222からのプロセス情報及びフォアグラウンド変化イベントを監視する。なお、ここでフォアグラウンドにおいて動作するアプリとは、アプリの実行結果がLCD213に表示されているアプリである。また、ここでバックグラウンドにおいて動作するアプリとは、アプリの実行結果がLCD213に表示されていないアプリである。
【0038】
マイコン制御部226は、センサ利用アプリ228からセンサデータ利用リクエストがあった場合、アプリのプロセスを識別するプロセスIDを端末状態監視部224に送信する。端末状態監視部224は、マイコン制御部226から受信したプロセスIDに基づいて、プロセスのアプリ種別を取得する。そして、マイコン制御部226は、フォアグラウンドで動作しているセンサ利用アプリ228がリアルタイム性が必要であればバッファリングしないように、フォアグラウンドで動作しているセンサ利用アプリ228がリアルタイム性が必要でなければバッファリングするように制御する。
【0039】
また、端末状態監視部224はセンサを利用しているアプリのプロセスIDリストを記憶しておき、フォアグラウンドアプリが変化した時に、フォアグラウンドで動作するセンサ利用アプリがリアルタイム性が必要であればバッファリングしないように制御し、フォアグラウンドで動作するセンサ利用アプリがリアルタイム性が必要でなければバッファリングするように制御する。
【0040】
センサデータ送信条件テーブル440の端末状態402及びセンサデータ送信条件404には、フォアグラウンドで動作するセンサ利用アプリがリアルタイム性が必要である場合は、バッファリングしないようにセンサデータ送信間隔を0[s]と記述しておく。また、フォアグラウンドで動作するセンサ利用アプリがリアルタイム性が必要でない場合は、バッファリングするようにセンサデータ送信間隔を2[s]と記述しておく。センサデータ送信条件テーブル440は、「アプリケーションA」はフォアグラウンドで動作する場合、リアルタイム性が必要であることを示しており、「アプリケーションB」及び「アプリケーションC」はフォアグラウンドで動作する場合、リアルタイム性が必要でないことを示している。なお、本実施形態においては、センサデータ送信条件テーブル440には3種類のアプリケーションを示しているが、アプリケーションの数は任意で良い。
【0041】
フォアグラウンドセンサ利用アプリがある場合、OS222は、フォアグラウンドセンサ利用アプリがある旨を端末状態監視部224に通知する。
【0042】
図4及び
図5は本実施形態における携帯端末装置の処理を示すフローチャートである。以下、
図4及び
図5を用いて本実施形態における携帯端末装置100の処理について説明する。
【0043】
S001において、端末状態監視部224は、OS222からフォアグラウンド変化イベントの通知があったか否かを判定する。OS222からフォアグラウンド変化イベントの通知があった場合、端末状態監視部224は、処理をS002へ移行する。一方、OS222からフォアグラウンド変化イベントの通知がなかった場合、端末状態監視部224は、処理をS001へ戻す。
【0044】
S002において、端末状態監視部224は、マイコン制御部226から受信したプロセスIDに基づいてフォアグラウンドで動作しているセンサ利用アプリ228がリアルタイム性が必要であるか否かを判定し、センサデータ送信条件テーブル440を参照して、端末状態に対応するセンサデータ送信条件を取得する。端末状態が「フォアグラウンドで動作するセンサ利用アプリがアプリケーションA」である場合、端末状態監視部224は、センサデータ送信間隔を0[s]とする。また、端末状態が「フォアグラウンドで動作するセンサ利用アプリがアプリケーションBまたはアプリケーションC」である場合、端末状態監視部224は、センサデータ送信間隔を2[s]とする。端末状態監視部224は、処理をS003へ移行する。
【0045】
S003において、端末状態監視部224は、S002において取得したセンサデータ送信条件をマイコン制御部226に送信する。端末状態監視部224は、処理をS004へ移行する。
【0046】
S004において、マイコン制御部226は、端末状態監視部224から受信したセンサデータ送信条件をリクエスト処理部302へ送信する。マイコン制御部226は、処理を終了する。
【0047】
図5は本実施形態における携帯端末装置が有するマイコン300の処理を示すフローチャートである。
【0048】
S005において、リクエスト処理部302は、マイコン制御部226から受信したセンサデータ送信条件をセンサデータバッファ管理部304に設定する。具体的には、リクエスト処理部302は、端末状態が「フォアグラウンドで動作するセンサ利用アプリがアプリケーションA」である場合、センサデータ送信間隔を0[s]とセンサデータバッファ管理部304に設定する。また、端末状態が「フォアグラウンドで動作するセンサ利用アプリがアプリケーションBまたはアプリケーションC」である場合、リクエスト処理部302は、センサデータ送信間隔を2[s]とセンサデータバッファ管理部304に設定する。リクエスト処理部302は、処理をS006へ移行する。
【0049】
S006において、センサデータバッファ管理部304は、センサデータ取得部306がセンサから取得したデータをメモリ308にバファリングする。具体的には、センサデータバッファ管理部304は、例えば、センサデータテーブル500をメモリ308に格納する。センサデータテーブル500はタイムスタンプ502及びセンサデータ504を有する。センサデータバッファ管理部304は、センサデータテーブル500に時間情報と例えば加速度データとを対応付けて記録する。センサデータバッファ管理部304は、処理をS007へ移行する。
【0050】
S007において、センサデータバッファ管理部304は、S005においてリクエスト処理部302によって設定された送信間隔を経過したか否かを判定する。具体的には、端末状態が「フォアグラウンドで動作するセンサ利用アプリがアプリケーションBまたはアプリケーションC」である場合、センサデータバッファ管理部304は、センサデータ送信間隔である2[s]を経過したか否かを判定する。設定された送信間隔を経過した場合、センサデータバッファ管理部304は、処理をS008へ移行する。一方、設定された送信間隔を経過していない場合、センサデータバッファ管理部304は、処理をS006へ戻す。なお、端末状態が「フォアグラウンドで動作するセンサ利用アプリがアプリケーションA」である場合、センサデータ送信間隔は0[s]であるため、センサデータバッファ管理部304は、処理をS008へ移行する。
【0051】
S008において、センサデータバッファ管理部304は、メモリ308にバッファリングされたセンサデータをマイコン制御部226へ送信する。センサデータバッファ管理部304は、処理をS009へ移行する。
【0052】
S009において、マイコン制御部226は、センサデータバッファ管理部304から受信したセンサデータを古いデータから順次センサ利用アプリに送信する。マイコン制御部226は、処理をS001に戻す。
【0053】
(実施の形態3)
図6は、本実施形態における携帯端末装置100の構成を示すブロック図である。なお、
図2及び
図3において説明したものについては同一番号を付し、その説明を省略する。携帯端末装置の一例であるスマートフォンにおけるセンサ利用アプリにおいて、例えばユーザに画面を通してフィードバックせずにバックグラウンドで動作するセンシングアプリは、リアルタイム性を必要としないことが多い。センサ利用アプリがフォアグラウンドで動作していない場合はバッファリングをするように制御しても良い。そこで、端末状態監視部224は、OS222からのプロセス情報及びフォアグラウンド変化イベントを監視する。なお、ここでフォアグラウンドで動作するアプリとは、アプリの実行結果がLCD213に表示されているアプリである。また、ここでバックグラウンドで動作するアプリとは、アプリの実行結果がLCD213に表示されていないアプリである。
【0054】
マイコン制御部226は、センサ利用アプリ228からセンサデータ利用リクエストがあった場合、アプリのプロセスを識別するプロセスIDを端末状態監視部224に送信する。端末状態監視部224は、マイコン制御部226から受信したプロセスIDに基づいて、プロセスのアプリ種別を取得する。そして、マイコン制御部226は、センサ利用アプリ228がフォアグラウンドで動作していればバッファリングしないように、センサ利用アプリ228がバックグラウンドで動作していればバッファリングするように制御する。
【0055】
また、端末状態監視部224はセンサを利用しているアプリのプロセスIDリストを記憶しておき、フォアグラウンドアプリが変化した時に、センサ利用アプリがフォアグラウンドになったらバッファリングしないように制御し、センサ利用アプリ以外のアプリがフォアグラウンドになったらバッファリングするように制御する。
【0056】
センサデータ送信条件テーブル410の端末状態402及びセンサデータ送信条件404には、フォアグラウンドセンサ利用アプリがある場合は、バッファリングしないようにセンサデータ送信間隔を0[s]と記述しておく。また、センサデータ送信条件テーブル400の端末状態402及びセンサデータ送信条件404には、センサ利用アプリは全てバックグラウンドである場合は、センサデータ送信間隔を2[s]にするように記述しておく。
【0057】
フォアグラウンドセンサ利用アプリがある場合、OS222は、フォアグラウンドセンサ利用アプリがある旨を端末状態監視部224に通知する。
【0058】
図7及び
図8は本実施形態における携帯端末装置の処理を示すフローチャートである。以下、
図7及び
図8を用いて本実施形態における携帯端末装置100の処理について説明する。
【0059】
S101において、端末状態監視部224は、OS222からフォアグラウンド変化イベントの通知があったか否かを判定する。OS222からフォアグラウンド変化イベントの通知があった場合、端末状態監視部224は、処理をS102へ移行する。一方、OS222からフォアグラウンド変化イベントの通知がなかった場合、端末状態監視部224は、処理をS101へ戻す。
【0060】
S102において、端末状態監視部224は、マイコン制御部226から受信したプロセスIDに基づいてセンサ利用アプリ228がフォアグラウンドまたはバックグラウンドのいずれかで動作しているかを判定し、センサデータ送信条件テーブル410を参照して、端末状態に対応するセンサデータ送信条件を取得する。端末状態が「フォアグラウンドセンサ利用アプリあり」である場合、端末状態監視部224は、センサデータ送信間隔を0[s]とする。また、端末状態が「センサ利用アプリは全てバックグラウンド」である場合、端末状態監視部224は、センサデータ送信間隔を2[s]とする。端末状態監視部224は、処理をS103へ移行する。
【0061】
S103において、端末状態監視部224は、S102において取得したセンサデータ送信条件をマイコン制御部226に送信する。端末状態監視部224は、処理をS104へ移行する。
【0062】
S104において、マイコン制御部226は、端末状態監視部224から受信したセンサデータ送信条件をリクエスト処理部302へ送信する。マイコン制御部226は、処理を終了する。
【0063】
図8は本実施形態における携帯端末装置が有するマイコン300の処理を示すフローチャートである。
【0064】
S105において、リクエスト処理部302は、マイコン制御部226から受信したセンサデータ送信条件をセンサデータバッファ管理部304に設定する。具体的には、リクエスト処理部302は、端末状態が「フォアグラウンドセンサ利用アプリあり」である場合、センサデータ送信間隔を0[s]とセンサデータバッファ管理部304に設定する。また、端末状態が「センサ利用アプリは全てバックグラウンド」である場合、リクエスト処理部302は、センサデータ送信間隔を2[s]とセンサデータバッファ管理部304に設定する。リクエスト処理部302は、処理を終了する。
【0065】
S106において、センサデータバッファ管理部304は、センサデータ取得部306がセンサから取得したデータをメモリ308にバファリングする。具体的には、センサデータバッファ管理部304は、例えば、センサデータテーブル500をメモリ308に格納する。センサデータテーブル500はタイムスタンプ502及びセンサデータ504を有する。センサデータバッファ管理部304は、センサデータテーブル500に時間情報と例えば加速度データとを対応付けて記録する。センサデータバッファ管理部304は、処理をS107へ移行する。
【0066】
S107において、センサデータバッファ管理部304は、S105においてリクエスト処理部302によって設定された送信間隔を経過したか否かを判定する。具体的には、端末状態が「センサ利用アプリは全てバックグラウンド」である場合、センサデータバッファ管理部304は、センサデータ送信間隔である2[s]を経過したか否かを判定する。設定された送信間隔を経過した場合、センサデータバッファ管理部304は、処理をS108へ移行する。一方、設定された送信間隔を経過していない場合、センサデータバッファ管理部304は、処理をS106へ戻す。なお、端末状態が「フォアグラウンドセンサ利用アプリあり」である場合、センサデータ送信間隔は0[s]であるため、センサデータバッファ管理部304は、処理をS108へ移行する。
【0067】
S108において、センサデータバッファ管理部304は、メモリ308にバッファリングされたセンサデータをマイコン制御部226へ送信する。センサデータバッファ管理部304は、処理をS109へ移行する。
【0068】
S109において、マイコン制御部226は、センサデータバッファ管理部304から受信したセンサデータを古いデータから順次センサ利用アプリに送信する。マイコン制御部226は、処理をS101に戻す。
【0069】
(実施の形態4)
図9は、本実施形態における携帯端末装置100の構成を示すブロック図である。なお、
図2、
図3及び
図6において説明したものについては同一番号を付し、その説明を省略する。スマートフォンにおけるセンサ利用アプリでは、特にユーザに画面を通じてフィードバックしない場合、リアルタイム性を必要としないことが多い。そこで、本実施形態では端末状態監視部224がOS222からの画面オン・オフのイベントを監視する例について説明する。
【0070】
また、上述した実施の形態では、センサデータ送信条件としてデータ送信間隔を用いたが、データ送信間隔以外にもセンサデータ内容による送信条件を用いても良い。例えば、センサデータの変化が少ない場合はセンサ利用アプリにとってセンサデータの必要度が低いと考えられる。そこで、例えば前回通知時からメモリにバッファリングされたセンサデータに閾値以上の差分があった場合や、メモリにバッファリングされているセンサデータの総和が閾値以上になった場合はデータ送信間隔を短く、変化がない場合はデータ送信間隔を長く設定しても良い。
【0071】
センサデータ送信条件テーブル420の端末状態402及びセンサデータ送信条件404には、画面オンの場合、送信マックス間隔を0[ms]と記述しておく。また、センサデータ送信条件テーブル420の端末状態402及びセンサデータ送信条件404には、画面オフの場合、送信ミニマム間隔を1000[ms]、送信マックス間隔を5000[ms]と記述しておく。さらに、センサデータ送信条件テーブル420の端末状態402及びセンサデータ送信条件404には、画面オフの場合、加速度センサ値条件を前回差分2[m/s^2]、ジャイロセンサ値条件を総和10[deg/sec]と記述しておく。
【0072】
センサデータバッファ管理部304は、「前回通知から送信ミニマム間隔が経過、かつセンサデータがセンサデータ値条件を満足」または「前回通知から送信マックス間隔が経過」
のいずれかの条件を満たした場合にデータをマイコン制御部226に送信する。本実施形態では、画面オン時は送信マックス間隔を0[ms]に設定し、常にセンサデータバッファ管理部304がバッファリングせずにデータをマイコン制御部226に送信するように制御する。一方、画面オフ時はまずセンサデータの前回送信から5000[ms]以上経過した場合は即座にセンサデータバッファ管理部304はデータをマイコン制御部226に送信するように制御する。また、前回送信から1000[ms]以上経過し、かつ前回データ送信時から加速度センサが2[m/s^2]以上変化するか、またはジャイロセンサのバッファ内データの総和が10[deg/sec]に達した場合はそのタイミングでデータをマイコン制御部226に送信する。このような構成することで、データ送信間隔をデータの内容に応じて変化させることができる。
【0073】
図10及び
図11は本実施形態における携帯端末装置の処理を示すフローチャートである。以下、
図10及び
図11を用いて本実施形態における携帯端末装置100の処理について説明する。
【0074】
S201において、端末状態監視部224は、OS222から画面オン・オフイベントの通知があったか否かを判定する。OS222から画面オン・オフイベントの通知があった場合、端末状態監視部224は、処理をS202へ移行する。一方、OS222から画面オン・オフイベントの通知がなかった場合、端末状態監視部224は、処理をS201へ戻す。
【0075】
S202において、端末状態監視部224は、OS222から通知された画面オン・オフイベントに基づいて、センサデータ送信条件テーブル420を参照して、端末状態に対応するセンサデータ送信条件を取得する。端末状態が「画面オン」である場合、端末状態監視部224は、送信マックス間隔を0[ms]とする。また、端末状態が「画面オフ」である場合、端末状態監視部224は、送信ミニマム間隔を1000[ms]、送信マックス間隔を5000[ms]、加速度センサ値条件を前回差分2[m/s^2]、ジャイロセンサ値条件を総和が10[deg/sec]とする。端末状態監視部224は、処理をS203へ移行する。
【0076】
S203において、端末状態監視部224は、S202において取得したセンサデータ送信条件をマイコン制御部226に送信する。端末状態監視部224は、処理をS204へ移行する。
【0077】
S204において、マイコン制御部226は、端末状態監視部224から受信したセンサデータ送信条件をリクエスト処理部302へ送信する。マイコン制御部226は、処理を終了する。
【0078】
図11は本実施形態における携帯端末装置が有するマイコン300の処理を示すフローチャートである。
【0079】
S205において、リクエスト処理部302は、マイコン制御部226から受信したセンサデータ送信条件をセンサデータバッファ管理部304に設定する。具体的には、リクエスト処理部302は、端末状態が「画面オン」である場合、送信マックス間隔を0[ms]とセンサデータバッファ管理部304に設定する。また、端末状態が「画面オフ」である場合、リクエスト処理部302は、送信ミニマム間隔を1000[ms]、送信マックス間隔を5000[ms]、加速度センサ値条件を前回差分2[m/s^2]、ジャイロセンサ値条件を総和が10[deg/sec]とセンサデータバッファ管理部304に設定する。リクエスト処理部302は、処理をS206へ移行する。
【0080】
S206において、センサデータバッファ管理部304は、センサデータ取得部306がセンサから取得したデータをメモリ308にバファリングする。具体的には、センサデータバッファ管理部304は、例えば、センサデータテーブル500をメモリ308に格納する。センサデータテーブル500はタイムスタンプ502及びセンサデータ504を有する。センサデータバッファ管理部304は、センサデータテーブル500に時間情報と例えば加速度データとを対応付けて記録する。センサデータバッファ管理部304は、処理をS207へ移行する。
【0081】
S207において、センサデータバッファ管理部304は、S205においてリクエスト処理部302によって設定されたミニマム間隔を経過したか否かを判定する。具体的には、端末状態が「画面オフ」である場合、センサデータバッファ管理部304は、ミニマム間隔である1000[ms]を経過したか否かを判定する。設定されたミニマム間隔を経過した場合、センサデータバッファ管理部304は、処理をS208へ移行する。一方、設定されたミニマム間隔を経過していない場合、センサデータバッファ管理部304は、処理をS206へ戻す。
【0082】
S208において、センサデータバッファ管理部304は、S205においてリクエスト処理部302によって設定されたセンサ値条件を満たすか否かを判定する。具体的には、端末状態が「画面オフ」である場合、センサデータバッファ管理部304は、加速度センサ値条件が前回差分2[m/s^2]であるか否か、またはジャイロセンサ値条件を総和が10[deg/sec]であるか否かを判定する。センサ値条件を満たす場合、センサデータバッファ管理部304は、処理をS210へ移行する。一方、センサ値条件を満たさない場合、センサデータバッファ管理部304は、処理をS209へ移行する。
【0083】
S209において、センサデータバッファ管理部304は、S205においてリクエスト処理部302によって設定されたマックス間隔を経過したか否かを判定する。具体的には、端末状態が「画面オフ」である場合、センサデータバッファ管理部304は、マックス間隔である5000[ms]を経過したか否かを判定する。設定されたマックス間隔を経過した場合、センサデータバッファ管理部304は、処理をS210へ移行する。一方、設定されたマックス間隔を経過していない場合、センサデータバッファ管理部304は、処理をS206へ戻す。
【0084】
なお、端末状態が「画面オン」である場合、マックス間隔は0[s]であるため、センサデータバッファ管理部304は、S207にて「YES」と判定、S208にて「NO」と判定、S209にて「YES」と判定し、処理をS210へ移行する。
【0085】
S210において、センサデータバッファ管理部304は、メモリ308にバッファリングされたセンサデータをマイコン制御部226へ送信する。センサデータバッファ管理部304は、処理をS211へ移行する。
【0086】
S211において、マイコン制御部226は、センサデータバッファ管理部304から受信したセンサデータを古いデータから順次センサ利用アプリに送信する。マイコン制御部226は、処理をS201に戻す。
【0087】
(実施の形態5)
図12は、本実施形態における携帯端末装置100の構成を示すブロック図である。なお、
図2、
図3、
図6及び
図9において説明したものについては同一番号を付し、その説明を省略する。センサデータのバッファリングした場合の省電力効果が発揮されるのはCPU201がスリープしている時である。そこで端末状態監視部224でCPU201がスリープ状態に入るイベントをハンドリングして、スリープするタイミングとウェイクするタイミングでセンサデータ送信条件を設定する方法が考えられる。しかしながら、センサ利用アプリ自身の動作のためにCPU201がスリープとウェイクを繰り返すため、単純にウェイク時にバッファリングしないように設定するとうまく動作しない。そこで、センサ利用アプリ以外のプロセスの動作状態を端末状態監視部で監視してもよい。
【0088】
マイコン制御部226は、センサ利用アプリ228からセンサ利用リクエストがあった時に、そのプロセスを識別するID情報を端末状態監視部224に送信する。端末状態監視部224は画面オン・オフを監視すると共に、画面オフ時にはセンサ利用アプリ以外のプロセスの動作時間を定期的にチェックする。ここで、センサ利用アプリ以外のCPU利用時間が閾値以下なら、センサデータをバッファリングすることでCPUのスリープが可能なスリープ可能状態と判断する。そして画面オフかつスリープ可能状態であればバッファリングを行うように制御する。
【0089】
センサデータ送信条件テーブル430の端末状態402及びセンサデータ送信条件404には、画面オンの場合、センサデータ送信間隔を0[s]と記述しておく。また、センサデータ送信条件テーブル420の端末状態402及びセンサデータ送信条件404には、画面オフかつスリープ可能状態の場合、センサ送信間隔を2[s]と記述しておく。
【0090】
図13及び
図14は本実施形態における携帯端末装置の処理を示すフローチャートである。以下、
図13及び
図14を用いて本実施形態における携帯端末装置100の処理について説明する。
【0091】
S301において、端末状態監視部224は、一定時間に到達したか否かを判定する。一定時間に到達した場合、端末状態監視部224は、処理をS302へ移行する。一方、一定時間に到達していない場合、端末状態監視部224は、処理をS301へ戻す。
【0092】
S302において、端末状態監視部224は、マイコン制御部226から受信したプロセスIDに基づいてセンサ利用アプリ以外のプロセス動作時間をOS222から取得する。端末状態監視部224は、処理をS303へ移行する。
【0093】
S303において、端末状態監視部224は、OS222から取得したセンサ利用アプリ以外のプロセス動作時間が閾値以下か否かを判定することにより、CPU201がスリープ可能状態か否かを判定する。ここで、端末状態監視部224は、センサ利用アプリ以外のプロセス動作時間が閾値以下の場合、CPU201がスリープ可能状態であると判定する。また、端末状態監視部224は、センサ利用アプリ以外のプロセス動作時間が閾値以下でない場合、CPU201がスリープ可能状態でないと判定する。端末状態監視部224は、処理をS304へ移行する。
【0094】
S304において、端末状態監視部224は、スリープ可能状態及び画面状態に基づき、センサデータ送信条件テーブル430を参照して、端末状態に対応するセンサデータ送信条件を取得する。端末状態が「画面オン」である場合、端末状態監視部224は、センサデータ送信間隔を0[s]とする。また、端末状態が「画面オフ」かつ「スリープ可能状態」である場合、端末状態監視部224は、センサデータ送信間隔を2[s]とする。端末状態監視部224は、処理をS305へ移行する。
【0095】
S305において、端末状態監視部224は、S302において取得したセンサデータ送信条件をマイコン制御部226に送信する。端末状態監視部224は、処理をS306へ移行する。
【0096】
S306において、マイコン制御部226は、端末状態監視部224から受信したセンサデータ送信条件をリクエスト処理部302へ送信する。マイコン制御部226は、処理を終了する。
【0097】
図14は本実施形態における携帯端末装置が有するマイコン300の処理を示すフローチャートである。
【0098】
S307において、リクエスト処理部302は、マイコン制御部226から受信したセンサデータ送信条件をセンサデータバッファ管理部304に設定する。具体的には、リクエスト処理部302は、端末状態が「画面オン」である場合、センサデータ送信間隔を0[s]とセンサデータバッファ管理部304に設定する。また、端末状態が「画面オン」かつ「スリープ可能状態」である場合、端末状態監視部224は、センサデータ送信間隔を2[s]とセンサデータバッファ管理部304に設定する。リクエスト処理部302は、処理をS308へ移行する。
【0099】
S308において、センサデータバッファ管理部304は、センサデータ取得部306がセンサから取得したデータをメモリ308にバファリングする。具体的には、センサデータバッファ管理部304は、例えば、センサデータテーブル500をメモリ308に格納する。センサデータテーブル500はタイムスタンプ502及びセンサデータ504を有する。センサデータバッファ管理部304は、センサデータテーブル500に時間情報と例えば加速度データとを対応付けて記録する。センサデータバッファ管理部304は、処理をS309へ移行する。
【0100】
S309において、センサデータバッファ管理部304は、S307においてリクエスト処理部302によって設定された送信間隔を経過したか否かを判定する。具体的には、端末状態が「画面オフ」かつ「スリープ可能状態」である場合、センサデータバッファ管理部304は、センサデータ送信間隔である2[s]を経過したか否かを判定する。設定された送信間隔を経過した場合、センサデータバッファ管理部304は、処理をS310へ移行する。一方、設定された送信間隔を経過していない場合、センサデータバッファ管理部304は、処理をS308へ戻す。なお、端末状態が「画面オン」である場合、センサデータ送信間隔は0[s]であるため、センサデータバッファ管理部304は、処理をS310へ移行する。
【0101】
S310において、センサデータバッファ管理部304は、メモリ308にバッファリングされたセンサデータをマイコン制御部226へ送信する。センサデータバッファ管理部304は、処理をS311へ移行する。
【0102】
S311において、マイコン制御部226は、センサデータバッファ管理部304から受信したセンサデータを古いデータから順次センサ利用アプリに送信する。マイコン制御部226は、処理をS301に戻す。
【0103】
以上説明した本実施形態の有効性について説明する。リアルタイム性が不要な場合の携帯端末装置の消費電力を、センサデータをメモリにバッファリングしない場合と比較する。比較図を
図15及び
図16に示す。
図15はバッファリングしない場合のCPU動作時間を示す図である。
図16はバッファリングする場合のCPU動作時間を示す図である。CPUの動作中の電力をW
CPU、CPU休止中の電力をW
SUS、マイコンの電力をW
micとし、ある期間TにおけるCPUの動作期間をtとする。携帯端末がセンシングで消費する電力量は、W
CPU・t+W
SUS・(T−t)+W
micとなる。なお、推定条件としてセンサ利用アプリ以外はほとんど動作していない、利用者無操作時の状態を仮定する。
【0104】
1回分のセンサデータ処理時間をx、「スリープチェックにかかる時間」+「移行にかかる時間」をyとし、バッファリング時はN回分のデータをまとめて送信するようにした場合、N回のセンサデータ処理でCPUが動作する時間tはバッファリングする時はNx+y、バッファリングしない時はNx+Nyとなる。即ち、携帯端末装置の消費電力量は、バッファリングする時は、W
CPU・(Nx+y)+W
SUS・(T−(Nx+y))+W
mic
となる。また、携帯端末装置の消費電力量は、バッファリングしない時は、W
CPU・(Nx+Ny)+W
SUS・(T−(Nx+Ny))+W
micとなる。一般的にW
CPU>>W
mic、W
CPU>>W
SUSなので、バッファリングする時の携帯端末装置の消費電力とバッファリングしない時の携帯端末装置の消費電力との比は約(Nx+y)/(Nx+Ny)となる。特に、x<<yの場合、最高約1/Nまで消費電力を抑制できる。
【0105】
このようにリアルタイム性が不要な場合は消費電力を抑制しつつ、リアルタイム性が必要な場合、ないしCPUがスリープできずにバッファリングによる省電力効果が見込めない場合はセンサデータを常に送信することで、応答性を確保できる。また、本実実施形態は携帯端末装置のアプリケーションソフトを変更することなく携帯端末装置に適用することが可能である。さらに、サンプリング間隔は変更しないので、センサデータを利用して軌跡計算等を行う場合は高精度なセンサデータを使うことが可能である。
【0106】
以上述べてきたように、端末状態に応じてセンサバッファリングの制御を行うことで、リアルタイム性が必要な時は即座にセンサデータを送信して、応答性を確保しながら、リアルタイム性が不要な時はバッファリングすることで消費電力を抑制できる。
【0107】
以上、本発明の例示的な実施の形態の携帯端末装置について説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。例えば、センサ利用アプリが全てバックグラウンドで動作している場合でも、動作しているセンサ利用アプリの中に処理優先度が高いセンサ利用アプリが存在する場合、当該処理優先度が高いセンサ利用アプリのために、センサデータ送信間隔を0「s」と設定しても良い。