handleSync_User_bing_phone_WithData function

void handleSync_User_bing_phone_WithData(
  1. List<int> value
)

处理 同步用户、已绑定的手机 返回的数据

Implementation

void handleSync_User_bing_phone_WithData(List<int> value) async {
  // 0xFE 0x13 LEN TYPE NID ID USERNAME ERR_CODE checksum
  // 0xFE 0x13 LEN TYPE NID ID PASSWORD ERR_CODE checksum
  // 0xFE 0x13 LEN TYPE NID ID CARDID ERR_CODE checksum
  // 0xFE 0x13 LEN TYPE NID ID FINGERID ERR_CODE checksum
  // 0xFE 0x13 LEN TYPE NID ID PHONE_ID 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;
  }

  // TYPE
  int TYPE = dataDecrypt[0];
  // NID
  int NID = dataDecrypt[1];
  // ID
  int ID = dataDecrypt[2];
  // tempData 根据不同的TYPE ,所代表不同的数据
  List<int> tempData = dataDecrypt.sublist(3, len - 1);

  Map dataMap = {'NID': NID, 'ID': ID};

  if (TYPE == 00) {
    //   0x00 同步的用户
    String userNameStr = ascii2Str(tempData);
    print('用户名:$userNameStr');
    dataMap = {...dataMap, '用户名': userNameStr};
  } else if (TYPE == 1) {
    //   0x01同步管理员密码
    String passwordStr = int2basse16(tempData);
    print('管理员密码:$passwordStr');
    dataMap = {...dataMap, '管理员密码': passwordStr};
  } else if (TYPE == 2) {
    //   0x02为普通用户密码
    String passwordStr = int2basse16(tempData);
    print('普通密码:$passwordStr');
    dataMap = {...dataMap, '普通密码': passwordStr};
  } else if (TYPE == 3) {
    //   0x02为普通用户密码
    String passwordStr = int2basse16(tempData);
    print('超级密码:$passwordStr');
    dataMap = {...dataMap, '超级用户密码': passwordStr};
  } else if (TYPE == 6) {
    //   0x06 卡
    List<int> card = tempData;
    print('用户卡ID:$card');
    dataMap = {...dataMap, '卡ID': card};
  } else if (TYPE == 7 || TYPE == 8) {
    //   0x07普通指纹,0x08胁迫指纹
    List<int> FINGERID = dataDecrypt.sublist(2, len - 1);
    // String FINGERID_Str = int2basse16(FINGERID);
    print('指纹ID:$FINGERID');
    dataMap = {...dataMap, '指纹': FINGERID};
  } else if (TYPE == 0x0e) {
    //PHONE_ID 为已经绑定的手机的ID,一般是 IMEI或是MAC地址,为6个字节
    List<int> PHONE_ID = tempData;
    print('已经绑定的手机的ID:$PHONE_ID');
    dataMap = {...dataMap, 'PHONE_ID': PHONE_ID};
  }

  if (ID == 3) {
    print('');
  }
  print('$cmdName,执行成功 ${jsonEncode(dataMap)}');

  ZygBluetoothTool.cmdMsgHandle(
      '$cmdName,执行成功,数据:${jsonEncode(dataMap)}', {'cmd': cmdName, ...dataMap});
}