handleSync_User_bing_phone_WithData function
处理 同步用户、已绑定的手机 返回的数据
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});
}