fix:增加离线密码开锁的事件上报时增加密码字段
This commit is contained in:
parent
a5dcaae5a8
commit
2bfc84e428
@ -371,10 +371,35 @@ class LockDetailLogic extends BaseGetXController {
|
||||
final int userNo = (indexList[1] * 256) + indexList[2];
|
||||
indexMap['user'] = userNo.toString();
|
||||
// AppLog.log('userNouserNouserNouserNo:$userNo');
|
||||
if (userNo == 0xFFFF) {
|
||||
// 离线密码情况:16进制格式,去除结束符F(0x1F)及其之后的内容
|
||||
final List<int> passwordData =
|
||||
indexList.sublist(7, 17); // 取10个字节
|
||||
// 找到结束符F(0x1F)的位置
|
||||
int endIndex = passwordData.indexOf(0x1F);
|
||||
if (endIndex == -1) {
|
||||
// 如果没有结束符,取全部数据
|
||||
endIndex = passwordData.length;
|
||||
}
|
||||
// 只取结束符前的部分(不包括结束符)
|
||||
final List<int> actualPasswordData =
|
||||
passwordData.sublist(0, endIndex);
|
||||
// 转换为十六进制字符串
|
||||
String passwordHex = actualPasswordData
|
||||
.map((byte) => byte.toRadixString(16).padLeft(2, '0'))
|
||||
.join();
|
||||
// 过滤掉字母部分
|
||||
passwordHex = passwordHex.replaceAll(RegExp(r'[^0-9]'), '');
|
||||
|
||||
indexMap['password'] = passwordHex;
|
||||
// indexMap['password'] = passwordHex; // 存储十六进制字符串表示
|
||||
AppLog.log('离线密码开锁:$passwordHex');
|
||||
} else {
|
||||
final List<int> passwordData = indexList.sublist(7, 17);
|
||||
final String password = utf8String(passwordData);
|
||||
indexMap['password'] = password.toString();
|
||||
}
|
||||
|
||||
final List<int> passwordData = indexList.sublist(7, 17);
|
||||
final String password = utf8String(passwordData);
|
||||
indexMap['password'] = password.toString();
|
||||
// AppLog.log('passwordpasswordpassword:$password');
|
||||
|
||||
indexMap['success'] = '1';
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user