2017/02/08

TWE ASCII 形式は温度表示しない

MonoStick の出力を標準形式から ASCII に変更したら,温度表示がおかしい。無線タグアプリの ASCII 形式のフォーマットは以下の通り。

1: 中継機のSID(中継していない場合は0x80000000)
2: LQI
3: 続き番号
4: 子機SID
5: 子機の論理デバイスID
6: センサモード
7: 子機の電源電圧
8: ADC1[mV]
9: ADC2[mV]
a: 気圧(hPa)
b: チェックサム

 ^^^^^^^1^2 ^^^3 ^^^^^^^4 ^5 ^6 ^7 ^^^8 ^^^9 ^^^a ^b
:80000000 75 0252 81xxxxxxx 00 32 DD 0009 0132 0B22 ED
:80000000 45 0253 81xxxxxxx 00 32 DD 0009 0158 0B1B FD
:80000000 42 0254 81xxxxxxx 00 32 DD 0009 0192 0B22 BE
:80000000 6F F00A 81xxxxxxx 00 32 C7 0009 00DB 09CA 15
:80000000 93 F076 81xxxxxxx 00 32 C7 0007 0164 0A02 C4
:80000000 72 F09E 81xxxxxxx 00 32 AB 0009 006A 0A15 BF
:80000000 90 F200 81xxxxxxx 00 32 AB 0007 00A1 0998 86

気圧に相当するところが温度になる筈だが,どうも違う。ASCII 形式だとカラムがそろって文字列の切り出しが楽なのだが,標準形式に戻して面倒な切り出しをしなければならない。思わぬ誤算だ。

xxxxxxx はエンドデバイスのIDが出力される。81 は日本の国コードだろう。合衆国とかは01なのか,3桁の国はどうなるのだろうか。

参考

追記
標準形式にしてみたものの,センサモード表示がなくなり不便だ。ASCII 形式をリトライしてみたら,温度表示が正常になされた。だが電源電圧が正しく表示されない。Teraterm でも事情は同じだ。仕方なく Slip21 の方にセンサモードを入力する事にした。

子機 SID の81は国コードではなく 0x8 の意味だそうだ,Mono Wireless から回答をいただいた。

SID は32bit表記の個体識別番号(16進)で、全ての無線モジュールが個別の番号を持っています。シールド缶に表示されたシリアル番号に+0x8000:0000 したものが表示されます。これは通信時の固定アドレスとしても利用されます。
サイトには上記の記述があり,よく読まないといけませんね。

親機を ASCII 形式にすると,設定変更に必要な +++ 入力をなかなか受け付けなくなる。標準形式でもいいかなと思う。

参考
起動時のメッセージ
関連記事

コメント

非公開コメント