handleQuery_basic_message_WithData function

void handleQuery_basic_message_WithData(
  1. List<int> value
)

处理 查询锁的基本信息 返回的数据

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));
}