handleAddPwdCardFingerprintWithData function

void handleAddPwdCardFingerprintWithData(
  1. List<int> value
)

处理 为指定用户添加密码、卡、指纹 返回的数据

Implementation

void handleAddPwdCardFingerprintWithData(List<int> value) async {
  // 0xFE 0X05 LEN NID TYPE ID  PASSWORD/FINGERID NUM/CARDID  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');
    ZygBluetoothTool.cmdMsgHandle('为指定用户添加密码、卡、指纹,失败,错误码:$ERR_CODE',
        {'cmd': cmdName, 'ERR_CODE': ERR_CODE});
    if (ERR_CODE == 4) {
      print('超时');
      ZygBluetoothTool.cmdMsgHandle(
          '失败原因:超时', {'cmd': cmdName, 'ERR_CODE': ERR_CODE});
    }
    if (ERR_CODE == 9) {
      print('容量已满');
      ZygBluetoothTool.cmdMsgHandle(
          '失败原因:容量已满', {'cmd': cmdName, 'ERR_CODE': ERR_CODE});
    }
    if (ERR_CODE == 11) {
      print('此密码已经添加过了');
      ZygBluetoothTool.cmdMsgHandle(
          '此密码已经添加过了', {'cmd': cmdName, 'ERR_CODE': ERR_CODE});
    }
    return;
  }
  if (len == 1) {
    //长度为1,则说明等待用户下一步的动作,比如将卡片靠近锁进行录入,比如将指纹进行录入
    print('嘀一声后,等待用户下一步动作,比如录入卡片,比如录入指纹');

    ZygBluetoothTool.cmdMsgHandle(
        '嘀一声后,请执行下一步动作,比如录入卡片,比如录入指纹', {'cmd': cmdName});
    return;
  }

//   NID为此次用户的ID
  int NID = dataDecrypt[0];
  // ID ,表示当前添加的密码/卡/指纹对应的存储ID
  int ID = dataDecrypt[2];

//   TYPE 指令类型,6表示卡片,7表示指纹,8表示胁迫指纹,2表示普通用户密码
  int TYPE = dataDecrypt[1];

  if (TYPE == 7 || TYPE == 8) {
    //   获取 num,录入指纹的次数,录入3次才能成功
    int NUM = dataDecrypt[len - 2];
    print('第$NUM次录入,3次录入才能成功,请再次录入');
    ZygBluetoothTool.cmdMsgHandle(
        '第$NUM次录入,3次录入才能成功,请再次录入', {'cmd': cmdName, 'ERR_CODE': ERR_CODE});

    if (NUM >= 3) {
      // 指纹id
      int FINGERID = dataDecrypt[len - 2];

      ZygBluetoothTool.cmdMsgHandle('指令执行成功,' + '指纹ID:$FINGERID',
          {'cmd': cmdName, 'ERR_CODE': ERR_CODE, 'FINGERID': FINGERID});
      return;
    }
  } else if (TYPE == 6) {
    //   卡id
    int cardID = dataDecrypt[3];

    ZygBluetoothTool.cmdMsgHandle(
        '指令执行成功,' + '卡ID:$cardID', {'cmd': cmdName, 'cardID': cardID});
    return;
  } else if (TYPE == 1 ||
      TYPE == 2 ||
      TYPE == 3 ||
      TYPE == 4 ||
      TYPE == 5 ||
      TYPE == 0x0b) {
    // 1 (0x01)	管理员密码
    // 2 (0x02) 	普通用户密码
    // 3  (0x03)	超级用户密码
    // 4  (0x04)	动态密码
    // 5  (0x05)	防胁迫密码
    // 13 (0x0d)	本地一次性密码
    List<int> password = dataDecrypt.sublist(3, len - 1);
    String passwordStr = int2RadixString_16(password);
    // print(intList2str(password).toString() + ',密码ID:$ID');

    ZygBluetoothTool.cmdMsgHandle(
        '指令执行成功,' + '密码是:' + passwordStr + ',密码ID:$ID',
        {'cmd': cmdName, 'password': passwordStr});
    // int2basse16(password)
  }

  // print('mySave(saveKey.bluetoothUserMap_key, jsonEncode(user))');
}