bgProtocol
public java.lang.String[] bgProtocol(java.lang.String ssid,
java.lang.String key,
int ip)
throws java.io.UnsupportedEncodingException
eq: 0x01 flag (Data…) 第一个字节始终是0x01,表示是EasyLink Minus配网数据。 Flag:一个字节定义如下:
Bit7=0 Bit6~4=version Bit3~0=checksum
Version:可以是1到7,version决定如何解包ssid数据,具体定义参考后面:
Checksum:是对Data做CRC8的校验和计算,取低4bits。 Data数据是对原始数据通过ARC4算法加密后的数据。
原始数据:由version决定原始数据的产生方式。
加密数据:把原始数据通过ARC4加密算法,使用密码”mxchip_easylink_minus”计算产生。
Version版本定义
1. Version=1. 原始数据由ssid_len, (ssid), (key) 3部分组成: Ssid_len
Ssid Key 只由一个probe request组成,
由于ssid最长32字节,去掉头部的0x01和flag,这里的Data数据最多只能有30个字节
,即ssid和key经过原始数据转换为Data之后的总长度不能大于30字节.
2. Version=2. 原始数据由ssid_len, key_len, (ssid), (key), (extra
data)组成如果产生的Data长度大于30字节,则需要在增加Version=3的数据发送后续数据。
3. Version=3.
是对version=2的扩充。 其他version暂时不使用。
- 参数:
ssid - wifi ssid
key - key
ip - ip
- 返回:
- string[]
- 抛出:
java.io.UnsupportedEncodingException - UnsupportedEncodingException