imaocande とは測定した放射線の値を一定時間ごとに twitter に投稿するシステム。およびその投稿データを利用し可視化などを行う。 *imaocande 資料 [#o7d16c16] http://openforce.project2108.com/file/cloudcande/Imaocande.pdf 2011/5 Wireless Japanにての配布資料 *Imaocande Viewer仕様書 [#x8f9eb06] imaocandeについてのプロトコルなどの記述があります。 imaocandeで規定されているプロトコルなどの記述があります。 https://docs.google.com/document/d/1VmAxtvelaYe-7qK44Ed2f1YKbeKLDsVeoseLQsHX-wU/edit *Androidアプリ [#x6d4e296] ***imaocande Viewer [#v28b9043] http://code.google.com/p/imaocande-viewer/ apkがダウンロードできます。 @imaocandeのTLを取得して、グラフと地図表示するアプリ。2012/10/17現在、動作しないようです。 ***imaocande-forest [#r7393cf2] http://code.google.com/p/imaocande-forest/ apkがダウンロードできます。 @imaocandeのTLを取得して、グラフと地図表示するアプリ。2012/10/17現在、動作しないようです。 *imaocandeフォーマット [#v5ab2faf] **旧プロトコル [#j442815c] -XML形式 **新プロトコル [#kd8810d2] -JSON形式 -旧プロトコルとは形式および、値の意味も変化している -Imaocande Viewer仕様書にあるものは定義が厳密でないため、独自解釈を加えたものをImaocande Proプロトコルとして以下に示す。 *Imaocande Proプロトコル [#g3cceb2d] Imaocande ProプロトコルはImaocandeに準拠して、運用に伴う拡張や解釈を規定したものである。twitterサーバ以外への投稿にも利用する。 **データ形式 [#pb1148da] 以下に規定されるものはすべてJSON形式である。 ***imaocandeオブジェクト [#s76d93ff] ht,sn,dt,ct,dt,la,lgキーによって構成される。この他のキーを含むことも可。 ***imaocande配列 [#c7e0af27] imaocandeオブジェクトの配列。 **転送プロトコル [#e08d24aa] imaocande転送については規程はない。 しかし実装したものとして、twitterにimaocandeオブジェクトをツィートするもの、cloudcandeサーバにimaocande配列を転送するものがある。 ***twitterツィート [#n8f8e157] 専用ツィートアカウントとして、iomaocande,imaocande2が存在する。 imaocandeオブジェクトを1オブジェクト1ツィートの形で登録。オンラインになっていない時の計測値については一度に数百ツィートするわけにいかないのでlinuxの時刻同期みたいにすこしずつ追いかけていくか、別サーバに一気にバルク転送。別サーバとしては、cloudcandeサーバが存在する。 ***cloudcandeサーバ [#x70261c8] -cloudcandeサーバに対してPUTメソッドでimaocandeオブジェクトを転送する。 --http://cloudcande.project2108.com/put.php/?user=USER --PUTメソッド変数名PASSにパスワードを平文で、DATAにJSON文字列を平文で格納。 -cloudcandeサーバに対してPOSTメソッドでimaocande配列を転送する。 -imaocande配列の順序は順不同。上限50MBytes。 -事前にユーザ名/パスワードを登録のあと、公開鍵/秘密鍵ペアを生成。鍵をPOSTで同時に送出する。鍵の変数名はkey、imaocande配列の変数名はimaocande_array。 -暫定的にcomment変数で、JSON形式の追加データを送ることができる。このcommentはサーバ側のアクセスログに記録される。 以下に規定されるものはすべてJSON形式である。 **imaocandeキー&バリューの解説 [#g44b8b9a] -ht:ハッシュタグ。複数のimaocandeに対応できるようハッシュタグをキーにタイムラインを取得する。 -sn:シリアル番号。計測機器が起動した時点で必ず0となる。snが9999を超えたときは1に戻る。毎送信ごとにカウントアップするものとする。この値で機器が正常に動作していることを確認する。 0は初期状態であることを示す特別な値。 -dt:データ送信時点の日付と時刻について。 エラー再送やオフライン時に蓄積したものを吐き出すことを考えると、 データ送信時点ではなくデータ計測時点の方が良い。 更に、データ計測時間は測定開始時刻と終了時刻があることを踏まえ、物理量の測定期間の終わり時刻とする。 -ct:単位時間に計測したカウント数。 単位時間とは、前回のデータ送信時点から現データ送信時間までの時間を云う。 この間隔は、計測システム側で任意に設定可能とする。 とありますが、単位時間は可変でもいいのですかね。1回目と2回目 の間は5分、2回目と3回目の間は10分というように、単位時間は可変でもいい。 -ct:単位時間に計測したカウント数。 -dt:データ送信時点の日付と時刻(iso8601形式とする)、尚時間を取得できない機器については、空文字列を入れること。 -la:データ送信時点の計測機器の緯度 -lg:データ送信時点の計測機器の経度 --単位時間とは、前回のデータ送信時点から現データ送信時間までの時間を云う。 --この間隔は、計測システム側で任意に設定可能とする。 *例 [#gb88ee93] ** Imaocande Pro プロトコル [#l35fea5e] ***オブジェクト [#n6270c56] {"ht":"imaocande”,“sn”:0, “ct”:0,”dt”:”2011-05-20T12:34+09:00”,”la”:33.934744,”lg”:132.775183} ***配列 [#ic1d2d8f] [ {"ht":"imaocande”,“sn”:1, “ct”:2,”dt”:”2011-05-20T12:39+09:00”,”la”:33.934744,”lg”:132.775183}, {"ht":"imaocande”,“sn”:2, “ct”:1,”dt”:”2011-05-20T12:44+09:00”,”la”:33.934744,”lg”:132.775183}, {"ht":"imaocande”,“sn”:3, “ct”:3,”dt”:”2011-05-20T12:49+09:00”,”la”:33.934744,”lg”:132.775183}, {"ht":"imaocande”,“sn”:4, “ct”:1,”dt”:”2011-05-20T12:54+09:00”,”la”:33.934744,”lg”:132.775183}, . . . . {"ht":"imaocande”,“sn”:9999,“ct”:3,”dt”:”2011-05-20TXX:XX+09:00”,”la”:33.934744,”lg”:132.775183}, {"ht":"imaocande”,“sn”:1, “ct”:2,”dt”:”2011-05-20TXX:XX+09:00”,”la”:33.934744,”lg”:132.775183} ] //測定回数が9999を超えた場合、次のシリアルナンバーは1に戻る