Imaocande Viewer仕様書 †
https://docs.google.com/document/d/1VmAxtvelaYe-7qK44Ed2f1YKbeKLDsVeoseLQsHX-wU/edit
imaocandeフォーマット †
旧プロトコル †
新プロトコル †
- JSON形式
- 旧プロトコルとは形式および、値の意味も変化している
- Imaocande Viewer仕様書にあるものは定義が厳密でないため、独自解釈を加えたものをImaocande Proプロトコルとして以下に示す。
Imaocande Proプロトコル †
Imaocande ProプロトコルはImaocandeに準拠して、運用に伴う拡張や解釈を規定したものである。
データ形式 †
以下に規定されるものはすべてJSON形式である。
imaocandeオブジェクト †
ht,sn,dt,ct,dt,la,lgキーによって構成される。この他のキーを含むことも可。
imaocande配列 †
imaocandeオブジェクトの配列。
転送プロトコル †
imaocande転送については規程はない。
しかし実装したものとして、twitterにimaocandeオブジェクトをツィートするもの、cloudcandeサーバにimaocande配列を転送するものがある。
twitterツィート †
専用ツィートアカウントとして、iomaocande,imaocande2が存在する。
imaocandeオブジェクトを1オブジェクト1ツィートの形で登録。オンラインになっていない時の計測値については一度に数百ツィートするわけにいかないのでlinuxの時刻同期みたいにすこしずつ追いかけていくか、別サーバに一気にバルク転送。別サーバとしては、cloudcandeサーバが存在する。
cloudcandeサーバ †
- cloudcandeサーバに対してPUTメソッドでimaocandeオブジェクトを転送する。
- cloudcandeサーバに対してPOSTメソッドでimaocande配列を転送する。
- imaocande配列の順序は順不同。上限50MBytes。
- 事前にユーザ名/パスワードを登録のあと、公開鍵/秘密鍵ペアを生成。鍵をPOSTで同時に送出する。鍵の変数名はkey、imaocande配列の変数名はimaocande_array。
- 暫定的にcomment変数で、JSON形式の追加データを送ることができる。このcommentはサーバ側のアクセスログに記録される。
以下に規定されるものはすべてJSON形式である。
imaocandeキー&バリューの解説 †
- ht:ハッシュタグ。複数のimaocandeに対応できるようハッシュタグをキーにタイムラインを取得する。
- sn:シリアル番号。計測機器が起動した時点で必ず0となる。snが9999を超えたときは1に戻る。毎送信ごとにカウントアップするものとする。この値で機器が正常に動作していることを確認する。
0は初期状態であることを示す特別な値。
- dt:データ送信時点の日付と時刻について。
エラー再送やオフライン時に蓄積したものを吐き出すことを考えると、
データ送信時点ではなくデータ計測時点の方が良い。
更に、データ計測時間は測定開始時刻と終了時刻があることを踏まえ、物理量の測定期間の終わり時刻とする。
- ct:単位時間に計測したカウント数。
単位時間とは、前回のデータ送信時点から現データ送信時間までの時間を云う。
この間隔は、計測システム側で任意に設定可能とする。
とありますが、単位時間は可変でもいいのですかね。1回目と2回目
の間は5分、2回目と3回目の間は10分というように、単位時間は可変でもいい。
- ct:単位時間に計測したカウント数。
- dt:データ送信時点の日付と時刻(iso8601形式とする)、尚時間を取得できない機器については、空文字列を入れること。
- la:データ送信時点の計測機器の緯度
- lg:データ送信時点の計測機器の経度
- 単位時間とは、前回のデータ送信時点から現データ送信時間までの時間を云う。
- この間隔は、計測システム側で任意に設定可能とする。
Imaocande Pro プロトコル †
オブジェクト †
{"ht":"imaocande”,“sn”:0, “ct”:0,”dt”:”2011-05-20T12:34+09:00”,”la”:33.934744,”lg”:132.775183}
配列 †
[
{"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に戻る