handleOpen_closeWithData function
处理 开锁关锁 返回的数据
Implementation
void handleOpen_closeWithData(List<int> value) async {
// 0xFE 0X0a LEN OP_TYPE ERR_CODE checksum
// 获取有效数据的长度
int len = value[2];
String cmdName = '开锁关锁';
//获取解密后的有效数据
List<int> dataDecrypt = await decryptTemp(value);
// ERR_CODE为0x00时表示创建用户成功,为其他字段时则表示创建用户失败,其中为0X0B时表示用户已经重复
int ERR_CODE = dataDecrypt[len - 1];
if (ERR_CODE != 0) {
print('开锁关锁,错误码:$ERR_CODE');
if (ERR_CODE == 0x0b) {
print('重复开门');
ZygBluetoothTool.cmdMsgHandle('指令执行失败,错误码$ERR_CODE,重复开门',
{'cmd': cmdName, 'ERR_CODE': ERR_CODE, 'msg': '重复开门'});
}
if (ERR_CODE == 0x0c) {
print('密码错误');
ZygBluetoothTool.cmdMsgHandle('指令执行失败,错误码$ERR_CODE,密码错误',
{'cmd': cmdName, 'ERR_CODE': ERR_CODE, 'msg': '密码错误'});
}
return;
}
// OP_TYPE为开关门类型,0x00为关门,0x01为开门。
int OP_TYPE = dataDecrypt[0];
String OP_TYPE_String = OP_TYPE == 0 ? '关门' : '开门';
print('开锁关锁,成功');
ZygBluetoothTool.cmdMsgHandle('指令执行成功,当前锁的状态为:$OP_TYPE_String',
{'cmd': cmdName, 'state': OP_TYPE_String});
}