2011年10月14日

アンドロイド 定期的にデータ送信

定期的にタブレットからマイコンに対して、データ要求のコードを
送信する。という仕組みが作れました。

今現在、スレッドを使って、socket通信を行っていますが
単に、スレッドの中で、インターバルをおくだけで
いいのかどうかを、今日中には試したいと思います。
(試せました)

スレッド自体は、ループしていて、

>Thread.sleep(REPEAT_INTERVAL);

このあたりがキーワードになるかなと思っています。
REPEAT_INTERVALの値は前もって、このように定義すると
//繰り返し間隔(ミリ秒)
private final int REPEAT_INTERVAL = 3000;

3秒間処理が停止されます。

スレッドというのは、ちょっとニュアンス違うかもしれませんが

会社の中にAさんとBさんがいて、AさんとBさんは別々の仕事を
している。会社としてみた場合は、2つの仕事が同時に進んでいて
連携もできるし、通常は別々の動きをしている。
というような例え方ができるかもしれません。

プログラムとしては1つでも、処理が通常は同時並行的に処理できる。

スレッドの処理が止まっても別処理は普通に動作している。
ので、スレッドで、3秒のタイマーを用意して、3秒ごとに
マイコンにデータ要求をする。というのが動作確認できました。

本番は1秒ごとくらいにデータ要求ができればいいなと思っています。

次は、アンドロイド側からのデータ要求に応じて、
センサーの値を返す仕組みを作ります。

擬似的にセンサーの役割をするボリウム(ボリューム 可変抵抗器)を
調達してきます。
posted by kitt at 14:04| Comment(0) | 日記

アンドロイド 画面非表示の必要なし

gmnkasanaritest01.jpg

アンドロイドのbluetooth通信で、
最初のsocketのconnectに時間がかかったと
いうことで、通信自体は、最初から最後まで
基本的につなぎっぱなしにしようと思い、

最初の画面で通信を確立して、その画面は
閉じない。という方法を取ろうと思います。

画面が切り替わったとき、もしかして
一瞬でも、後ろの画面(最初の画面)が
表示されるのかなと思い、図のように、
3画面で、順に遷移するプログラムでテスト
した結果、最初の画面は開いたままで、
2画面目、3画面目に切り替えたとき、

後ろの画面が表示されないことを確認しました。

>// インテントへのインスタンス生成
>Intent intent = new Intent(this, BtEcho03ThirdActivity.class);

>// インテントに値をセット
>//intent.putExtra("KuiNo", wtextV.getText().toString());
>// サブ画面の呼び出し

>startActivity(intent);
>finish(); //自画面終了

アクティビティをスタートさせてから
自分の画面を閉じるという順番です。

最初思っていた、画面を非表示にする必要はなさそうです。
posted by kitt at 04:34| Comment(0) | 日記