afnf.net

NAD11解析

NAD11 twawm 2014/07/03 22:53

twawm2の制作にあたり、NAD11の解析を行いました。

ステータス取得

以下URLから、ステータスが取得できます。

http://aterm.me/index.cgi/status_get.xml

<?xml version='1.0' encoding='EUC-JP'?>
<body><status>64_3
_2
_0_0_2_1</status></body>

レスポンスタイムは100ms程度。さくさく取れます。

それぞれの数字の意味は、以下です。

index 意味
1 バッテリー残。0~100の範囲。
2 アンテナレベル。0は圏外。
WiMAX:0~5、WiMAX 2+:0~4、
Wi-Fiスポット:0~5。
ちなみに、WM3800Rは0~6です。
3 WAN通信状態。1:WiMAX 2+(HS)、
2:WiMAX(NL)、3:Wi-Fiスポット。
4 (不明)
5 充電状態。0:充電中、1:放電中。
6 NAD11のWi-Fiクライアント数。
7 NAD11のWi-Fi状態。0:OFF、1:ON。

外部アプリケーション用画面

WM3800Rと同様、外部アプリケーション用画面が用意されています。

URLは http://aterm.me/index.cgi/info_btn です。

20140703_nad_btn

ここにアクセスできれば、アプリが無くてもスタンバイできます。というか、管理画面からスタンバイボタンを消した意図が不明。そしてやっぱり「WiAMX」のtypoは直ってません。

誰向けか分かりませんが、送信先(formのaction属性)を書いておきます。

操作 送信先
スタンバイ(リモート起動有り) /index.cgi/info_btn_btstandby
無線優先接続切替 /index.cgi/info_btn_priority
公衆無線LAN切断 /index.cgi/info_btn_wifi
WiMAX切断 /index.cgi/info_btn_wimax
データ通信量クリア /index.cgi/info_btn_clear
再起動 /index.cgi/info_btn_reboot
スタンバイ /info_btn_standby

いずれもPOST Methodで、request bodyにSESSION_IDが必要です。CSRF対策ですね。

Bluetooth関連

BluetoothのMACアドレスが、管理画面に表示されなくなってしまいました。しかし、以下URLのhiddenから取れます。

http://aterm.me/index.cgi/index_contents

<input type='hidden' name='BLUETOOTH_NAME' id='BLUETOOTH_NAME' value='123abc-bt' />
<input type='hidden' name='BLUETOOTH_LE_NAME' id='BLUETOOTH_LE_NAME' value='' />
<input type='hidden' name='BLUETOOTH_MAC' id='BLUETOOTH_MAC' value='22:33:44:ff:bb:a0' />

BLUETOOTH_LE_NAMEってなんでしょうね。ファームウエアのアップデートに期待。

スタンバイの怪

スタンバイリクエストを行うと、そのコネクションはNAD11側から切断されます。この挙動により、AndroidのHttpClientがリトライを行ってしまいます。

そして大変奇妙なことに、このリトライパケットが復帰直後に解釈されます。つまり・・・

  1. スタンバイリクエスト→コネクション切断
  2. HttpClientがリトライをする→失敗
  3. NAD11がスタンバイに移行
  4. Bluetoothまたは電源ボタンでNAD11を復帰させる
  5. 復帰完了後、2のリトライパケットが解釈され、再びスタンバイに移行

気付くのに時間がかかりました。WM3600RやWM3800Rでは起きなかった現象だったので。

単純に、リトライを止めれば回避できます。

httpClient.setHttpRequestRetryHandler(new DefaultHttpRequestRetryHandler(0, false));

その他

  • 管理者パスワードが未設定の場合、「管理者パスワード初期設定」という画面に飛ばされます。

  • CINRやRSSIは取れなくなってしまったようです。残念。

NAD11 twawm 2014/07/03 22:53
comments (0)

blog-java2 engine (build:2019-02-23 17:57 JST)