2014年11月20日木曜日

GL07SのPocketWifiを安定させる

GL07Sを経由してタブレットなどで操作しているとどうしても接続の安定性が気になるときがある。

Bluetoothで接続すれば接続の安定性はかなり高くなり再接続などの表示はかなり減った。

根本的な解決にはなっていないと感じるのと、実際に使いたいと思っているタブレットのほうのBluetoothには残念なことにクライアント側としてのプロファイルが登録されていなく、PocketWifiで接続し安定させる必要があった。

普通にPocketWifiを使っていると次のような状態になっていた。

  1. スマートフォン(GL07S)側でPocketWifiをonにする。
  2. タブレット側ので無線接続の確認もしくはWifi接続を行う。
  3. スマートフォンの電源ボタンを押してスリープモードにしてポケットにしまう。
  4. タブレット側でしばらく使っているとWifi接続は続いているものの、データの転送が不安定になる。
  5. スマートフォンを取り出し、電源ボタンを押して画面をつけたままの状態にする。
  6. タブレット側のデータ転送が安定して行われる。

最初はPocketWifiの実装の問題を疑った。スマホやタブレットのWifiの省電力モードなどの設定があれば全てオフにしてみた。しかしこれらの方法では問題はまったく改善されなかった。
(PocketWifiでは省電力モードに入るまでの時間を設定することもできるが、GL07Sに付属するアプリではこの設定が行えない。)

次はスマートフォンとタブレット間のWifiの接続を疑った。
接続が切断されないようにするために一定時間ごとにGL07SへPingを送るアプリを作成しタブレット側で実行し試してみた。

いくらか接続が安定したかと思えるもののしばらく経つと結局変らなくなってしまった。
しかしながらPingは問題なく行われているようだった。
ということでスマートフォンとタブレット間の通信は問題なく行われていると考えるのが正しいようだ。

この時点で疑う部分とすればLTE接続部分とスマホ自体の省電力モードによる仕様上の問題ということになる。


かなりやれることが残り少なくなってきたが、次に行ったのはスマホ側の省電力モードのオフということだ。

最初に行ったアプローチはスリープモードに移行しないようにアプリで固定化させることを行った。
実際に行ってみると機能的には十分なものが得られた。

しかしながら画面を点灯し続けることの電力的な負荷が避けられず実用的ではないために更なるアプローチが必要だった。

アンドロイド自身の省電力状態がどのような形で実装されているのか全くわからないのでトライアンドエラーを繰り返すことを覚悟の上でスリープモードに入らないようにするためにウェイクロックを行ってみた。
用意されているのは CPU、画面、キーボードの3種類のウェイクロックを行えることだった。
とりあえずCPUだけウェイロックを行うアプリを作成しスマートフォン側で実行した上で電源ボタンを押し、スリープモードにさせ様子を見た。

機能的には画面を表示させたままと変らない状態だと思われた。(アクティビティーで実装しているので暗礁のうちに廃棄されてしまうとウェイロックも解除されてしまうが(笑))

実際の電力の消耗は2時間で10%を少し超える程度。画面を表示していない分かなり実用的な形になったのではないかと思う。
実際にPocketWifiがオンの状態でもそれなりに消耗してしまうのでウェイクロックを行った状態でもあまり変らないのかもしれないともいえそうだ。

形としては安定し、画面表示もオフにできたので液晶の焼き付きもおこらなくなったので実際に使えるものにはなったと思う。

最初にこしらえたアクティビティーでデバイスをロックするパターンのものと、同じくアクティビティーでCPUスリープをロックガードするものをここで公開しておきます。

電源を浪費するので最初のものもあると便利かも?てきな気がしないでもないのでプロジェクトを複製したりいろいろやってたらものすごくハマりました。扱った事のない開発環境は本当によくわからない…。

Googledriveからなのでweb経由です。
powerkeeper_0.1.apk 画面表示したまま。特に権限は必要ありません。
cpupowerkeeper_0.1.apk 電源ボタン等でスリープモードにしてもCPUだけスリープさせないバージョン。WAKE_LOCK権限の許可が必要になります。

Googledriveの使い方がよくわかりませんが共有先の画面で「エラー。表示できるプレビューがありません。」とか表示されますが、.apkのプレビューができないだけなのでファイルをダウンロードして必要なデバイスにインストールしてお使いください。

セキュリティーに絡みそうな権限ではないのであまり神経質にならずに使えると思います。
本筋としてCPUPowerKeeperの方をベースにもうちょっとまともに使えそうな形にしていく予定です。
その時には広告とかつけて遊んでみたいですけど…よくわからんです(笑)

0 件のコメント:

コメントを投稿