handleBingPhoneWithData function
处理 手机请求绑定锁 返回的数据
Implementation
void handleBingPhoneWithData(List<int> value) {
String cmdName = '手机请求绑定锁';
int len = value[2];
int ERROR_Code = value[3 + len - 1];
if (value.length == 20 && //返回的长度都是20
len == 10 && // 有效内容的长度必须是10
(ERROR_Code == 0 ||
ERROR_Code == 11) // 错误码必须是0x0b(重复绑定),或者是 0x00表示绑定成功
) {
//获取mac地址数组
List<int> macList = value.sublist(3, 3 + 6);
// List<String> macListStr = intList2str(macList);
//保存
mySave(StroeKey.key_mac_address, jsonEncode(macList));
//获取sno地址数组
List<int> snoList = value.sublist(9, 9 + 3);
//保存
mySave(StroeKey.key_sno, jsonEncode(snoList));
print('$cmdName, 成功');
ZygBluetoothTool.cmdMsgHandle('绑定成功', {'cmd': cmdName, 'snoList': snoList});
} else if (len == 1) {
//如果有效内容的长度是1,那么value[3]就是错误码
//有效内容的长度是1
if (ERROR_Code == 0) {
//错误码为0: QRCODE验证通过后,锁会嘀一声
//错误码为0,如果有效内容的长度是1,那么value[3]就是错误码
//听到锁嘀一声之后,请在锁的背部按下确认键
print('请在此处弹个提示框:请在锁的背部按下确认键');
ZygBluetoothTool.cmdMsgHandle('请在锁的背部按下确认键', {'cmd': cmdName});
} else if (ERROR_Code == 4) {
//错误码为0x04,表示超时:表示没有在20秒内按下确认键,超时,锁端已主动断开连接,如果想绑定,需要重新连接。
print('请在此处弹个提示框:没有在20秒内按下确认键,超时');
ZygBluetoothTool.cmdMsgHandle('没有在20秒内按下确认键,超时,设备自动断开连接',
{'cmd': cmdName, 'msg': '没有在20秒内按下确认键,超时', 'ERR_Code': ERROR_Code});
} else if (ERROR_Code == 7) {
//错误码为0x07,表示:QRCODE错误。锁端会主动断开蓝牙连接
print('请在此处弹个提示框:QRCODE错误');
ZygBluetoothTool.cmdMsgHandle('QRCODE错误,请检查qrcode,然后重新输入', {
'cmd': cmdName,
'msg': 'QRCODE错误,请检查qrcode,然后重新输入',
'ERR_Code': ERROR_Code
});
} else if (ERROR_Code == 9) {
//错误码为0x09 表示容量已满
print('请在此处弹个提示框:锁的容量已满');
ZygBluetoothTool.cmdMsgHandle('绑定失败:锁的容量已满',
{'cmd': cmdName, 'msg': '锁的容量已满', 'ERR_Code': ERROR_Code});
}
}
}