2011年12月31日

bluetooth有効 wifi無効 にする

androidlog001.jpg

プログラムのデバッグのやり方が少しずつわかってきています。

アンドロイドのプログラムで、簡単なものであれば、パソコン上で
エミュレータを使えば、なんとかなると思いますが、
bluetoothの通信などが入ってくると、エミュレータでは
どうにもならず、かなりデバッグがてこずっていました。

実機で、ログを取り出せるアプリを見つけて、
使ってみましたが、

**********
LogcatをAndroid端末上で見るツール LogcatViewer
- Android(アンドロイド)情報-ブリリアントサービス
http://d.hatena.ne.jp/bs-android/20100519/1274206549
**********

これのおかげで、かなり長いこと悩んでいた、
bluetooth通信が、どうしても、途中で止まってしまう
という厄介な問題の原因がこんどこそわかった気がします。


今回、wifiは使わないですが、途中アプリのダウンロード
などで、wifiをonにしていました。

最初ログの見方も良くわからなかったのですが、
プログラム上に、自分で、ログ出力の記述をして、
実際にプログラムが止まるのを待って、その時点で、
ログをファイルにとって、パソコンで見ました。

すると、なぜか勝手にgoogleに繋ぎにいこうとしている
ことがわかりました。

もしやと思い、タブレットのwifiをoffにして、通信テストを
行ってみましたが、通信回数にして5万回あまり、問題なく
通信は続いています。

それでも、まだ、別の問題があるかも知れませんが、
ログの活用ができだしたおかげで、バグ修正が、
はやくできるようになると思っています。

グラフが描けるようになった。
通信が止まらなくなった。

この2つがクリアできれば、後は、
プログラムテクニックの問題。
posted by kitt at 17:05| Comment(0) | 日記

2011年12月29日

SurfaceViewのダブルバッファリングの意味がやっとわかった

SurfaceViewのダブルバッファリングと
言う意味がようやくわかりました。

画面上に、グラフを描こうと思って
実際に動かしてみると、かなりちらつきが
あり、なんか点滅しているようで、
どうにかならないのかなと思っていました。

参考にしたホームページの言葉を借りると、
A画面 B画面を交互に切り替えていると
いう感じになっているということで、

点滅しているという感じは、正しかった
ことになります。

自分なりの解決策は、
A画面B画面に同じものを描く。

2度描画にしようと思います。

参考にしたページ
http://nekog3.blogspot.com/2010/10/android-surfaceview.html

描画はなんとかなりそうですが、終了処理
(アクティビティの切り替え)のときにエラーが
発生してしまい、画面が強制終了してしまっているので
その点を解決させないといけません。
posted by kitt at 09:22| Comment(0) | 日記

2011年12月28日

視点をかえることも必要

2011年12月11日のブログに、
Bluetoothの通信のことを書いたんですが
無線通信の調子が、いまひとつ良くなかった
原因は、通信の部分以外に、どうも、AD変換の
プログラムの中にあった可能性も出てきました。

AD変換を行うとき、初期化処理を行うんですが
最初1回だけやって、その後連続的にAD変換も
やっていたのですが、どうも、定期的といいながら
途中、通信のハンドシェイクが遅くなるようなことも
あって気にはなっていて、長時間通信をすると
やはり、止まるという現象が出ていました。

AD変換の初期化を、AD変換するごとに前処理と
して行った結果、改善された感じを受けました。

最善の方法かどうかは、まだわかりませんが、
時間を置いて、別の視点から、見た結果の
対応策です。

限られた時間の中で、モノを仕上げていかないと
いけないので大変ですが、視点を変えるのに、
時間が必要なときもあるのかもしれません。

苦労したぶんは、自分の知識になっていってると
思ってはいます。
posted by kitt at 20:33| Comment(0) | 日記

2011年12月16日

アンドロイド SurfaceViewの範囲内に図形が描画できました

アンドロイドタブレットの画面上にグラフを描きたいと
思い、いろいろ調べた結果SurfaceView(サーフェイスビュー)が
使えるんだろうなと思って、いろいろ試したんですが数日間は
何も進展がありませんでした。自分が理解できそうなサンプルを
探しながら、試して、ソース上にエラーはないのに
実行するとなぜか、「予期せず停止しました」となってしまって
ました。

原因は、プログラムソースは、アンドロイド2.2のレベルで作成し
画面レイアウトはアンドロイド3.0のレベルで作っていたことが
問題だったようです。

今まで、グラフィック関係を使ってなかった場合は
ソースが2.2 画面が3.0のレベルでも見た目では問題
なったのでそれでもいいものと思い込んでいました。

ソースが2.2 画面も2.2のレベルで動かしてみると
まずは、「予期せず停止しました」が回避できました。

あとは、サンプルをもう一度コピーして、若干
手直して動かすと、xmlで作成されたレイアウトの中にある
SurfaceViewの範囲内に、図形が描画できました。

もう少し、ソースのテクニック的なことを理解しないと
実際のソースに組み込むことはできませんが、

図形が描けるということが実現できたので、
少し前に進めそうです。

gview001.jpg

gview002.jpg
posted by kitt at 09:45| Comment(0) | 日記

2011年12月11日

アンドロイド Bluetooth 連続的に通信

アンドロイドタブレット端末とマイコンを
Bluetoothの無線通信で、ずっとつなぎっぱなしに
して、いろいろテストをしています。

通信自体は0.25秒に一度、マイコン側のセンサーから
情報取得というカタチで、

タブレット側から、1文字分情報を送って
マイコン側から25文字分の情報をもらう。

の繰り返しを0.25秒ごとに行っています。

ポーリング
http://e-words.jp/w/E3839DE383BCE383AAE383B3E382B0.html
という方法をとっています。

ハンドシェイクという言い方をすることもあります。

じっくりテストしてみると、切れないと思っていた通信が
連続通信で、1時間前後で切れてしまう現象を発見しました。

それから3日間くらい、ずっと原因を探すために
改良をしていました。

まず原因の1つは、1回の通信で25文字、データ受信するからと
25バイト分のバッファを用意して動かしていたのですが、

状態をファイルに記録してみると、
1回の受信命令で、ごくまれに、25バイト受信できない
こともあることがわかりました。

2つ目は、タブレット側からデータ要求をだしたあと、
ウェイトを置かずに、データ受信をしていたので、
通常は、なんとかデータ受信ができていても
なにか、タイミングがずれたときに、データ受信が
追いつかないのだろう。ということがなんとなく
わかりました。


最終的には、全部1バイト単位での送受信にして
その単位ごとに少し待ち時間を設ける。

最終的にうまくいったのはこの方法でした。

これで、電波が届く範囲内であれば、通信は切れないと
思います。

夜寝る前にプログラムを実行して、朝起きても、
正常に通信していることが確認できました。

rts001.jpg
posted by kitt at 07:27| Comment(0) | 日記

2011年12月09日

アンドロイドでCSVファイル参照

アンドロイドで、CSVファイルを参照したいと思い
かなり根気よくアルリを探していました。

最終的にOfficeSuite Viewer
にしようと思います

以前、別のところでDocuments ToGoを
使いましたが、使い勝手に問題はありません。

CSVファイルに対応しているのが
OfficeSuite Viewer
ということです。

有料アプリですが、この機能を自作では
難しいので、すでにあるものを
使うことにします。

CSV Viewer Pro
のアプリも使用してみたのですが、
どうもOfficeSuite Viewerのほうが
良さそうだと感じました。


OfficeSuite Viewer
https://market.android.com/details?id=com.mobisystems.office_registered

Documents ToGo
https://market.android.com/details?id=com.dataviz.docstogoapp&feature=related_apps#?t=W251bGwsMSwyLDEwOSwiY29tLmRhdGF2aXouZG9jc3RvZ29hcHAiXQ..

andcsv001.jpg

andcsv002.jpg
posted by kitt at 16:55| Comment(1) | 日記

2011年12月08日

加点方式

プログラムの改良1つとっても、いろいろと
項目が多く、一気には片付けられないことも
多いので、「加点方式」の考えて作業をして
みたいと思います。

Aが完了したら、10点
Bまで完了したら30点
Dまで完了したら65点

というように、加算していく考え。

この考えかたを教わったのは、
「はやぶさ」関連のテレビの番組でした。
posted by kitt at 05:11| Comment(0) | 日記

2011年12月07日

アプリの改良に入る前に

アンドロイドタブレットと、マイコンとで
無線通信しながらデータ収集。というアプリは
一応カタチになりましたが、すぐに改良します。

いろいろな要望が出ています。

自分の環境で、同じようや動きをさせるようには
していますが、もう少し、キッチリした予備環境を
作るところからはじめたいと思います。
posted by kitt at 09:19| Comment(0) | 日記

2011年12月05日

Googleドキュメントを少し試してみました

ネットがつながっていることが前提であれば
便利に使えるかなと思えました。
posted by kitt at 18:46| Comment(0) | 日記

2011年12月02日

アンドロイドタブレットにUSBメモリーはつなげない?

アンドロイドタブレットSDカードが
内蔵されていますが、それとは別に
USB変換ケーブルを用いて、USBメモリーに
データを転送できないのかなと、いろいろ調べたり
実際に、USB変換ケーブルを購入して、実際に
USBメモリーも繋いでみましたが、結果は
うまくいきませんでした。

理由の1つは、通常、アンドロイドタブレットは、
スレーブとして動くので、

アンドロイドタブレットがマスターで、外付けUSB
メモリーがスレーブにはなれない。
というような感じの書き込みを、日本アンドロイドの会の
掲示板で見つけました。

本当にアンドロイドの仕組みを熟知すれば、
アンドロイドタブレットをマスターとして
使用できたりするのかもしれませんが、
それは、いわゆる「改造」ということになるので

無理と判断するほうがいいだろうなと思えました。
posted by kitt at 15:34| Comment(0) | 日記