handleQuery_basic_message_WithData function
处理 查询锁的基本信息 返回的数据
Implementation
void handleQuery_basic_message_WithData(List<int> value) async {
// 0xFE 0x2C LEN power status autolock volume autocreate spuer v1 v2 YY MM DD HW_TYPE ERR_CODE checksum
String cmdName = '查询锁的基本信息';
// 获取有效数据的长度
int len = value[2];
//获取解密后的有效数据
List<int> dataDecrypt = await decryptTemp(value);
// ERR_CODE为0x00时表示创建用户成功,为其他字段时则表示创建用户失败,其中为0X0B时表示用户已经重复
int ERR_CODE = dataDecrypt[len - 1];
if (ERR_CODE != 0) {
print('$cmdName,失败,错误码:$ERR_CODE');
ZygBluetoothTool.cmdMsgHandle(
'$cmdName,执行失败,错误码:$ERR_CODE', {'cmd': cmdName});
return;
}
// power 表示电量;十六进制表示
int power = dataDecrypt[0];
// status 锁当前状态, 0x00:已锁门、0x01:已开门、0x02:正在忙、0x03:为锁死状态
int status = dataDecrypt[1];
// autolock 自动锁门时间
int autolock = dataDecrypt[2];
// volume 音量大小, 0x00 表示静音, 0x01~0x05分别表示音量大小
int volume = dataDecrypt[3];
// autocreate 绑定成功后 自动生成密码的设置, 0x00关闭、0x01表示已开启
int autocreate = dataDecrypt[4];
// spuer 超级用户的权限值
int spuer = dataDecrypt[5];
// v1 v2 YY MM DD 表示是固件版本号,其中v1为大版本号,v2为小版本号,YY表示年、MM表示月,DD表示天
int v1 = dataDecrypt[6];
int v2 = dataDecrypt[7];
String YY = int2basse16([dataDecrypt[8]]);
String MM = int2basse16([dataDecrypt[9]]);
String DD = int2basse16([dataDecrypt[10]]);
// HW_TYPE 表示设备的类型
int HW_TYPE = dataDecrypt[11];
String HW_TYPE_str = getHW_TYPE_str(HW_TYPE);
String str1 =
'电量$power,锁状态$status,自动锁门时间$autolock,音量大小$volume,是否允许自动生成密码$autocreate,超级用户权限$spuer';
print(str1);
String basicMsg = '版本号为:V$v1.$v2 日期:$YY年$MM月$DD日 硬件型号:$HW_TYPE_str';
print(basicMsg);
print('$cmdName,成功');
Map dataMap = {
'电量': power,
'锁状态': status,
'自动锁门时间': autolock,
'音量大小': volume,
'是否允许自动生成密码': autocreate,
'超级用户权限': spuer,
'版本信息': basicMsg
};
ZygBluetoothTool.cmdMsgHandle(
'$cmdName,执行成功 ', {'cmd': cmdName, 'data': dataMap});
// ZygBluetoothTool.cmdMsgHandle(jsonEncode(dataMap));
}