fix: 完善读取锁状态接口

This commit is contained in:
liyi 2025-09-09 09:52:04 +08:00
parent e07e30f598
commit 730cb9c5bb
2 changed files with 63 additions and 1 deletions

View File

@ -142,4 +142,12 @@ abstract class BaseBleResponseParser {
uniqueList.reversed;
return utf8.decode(uniqueList).toString();
}
String asciiString(List<int> codeUnits) {
String result = '';
for (final int value in codeUnits) {
result += String.fromCharCode(value);
}
return result;
}
}

View File

@ -25,6 +25,13 @@ class ReadLockStatusResponse {
final int indate; // UNIX
final String mac; // MAC
final int featureValueLength; //
final List<int> featureValue; //
final String featureValueHexStr; // 16
final int featureEnValLength; //
final List<int> featureEnVal; //
final String featureEnValHexStr; // 16
final int featureParaTotal; //
final List<int> featureParaData; // ,FeatureParaTotal开始
ReadLockStatusResponse({
required this.commandId,
@ -45,6 +52,13 @@ class ReadLockStatusResponse {
required this.indate,
required this.mac,
required this.featureValueLength,
required this.featureValue,
required this.featureValueHexStr,
required this.featureEnValLength,
required this.featureEnVal,
required this.featureEnValHexStr,
required this.featureParaTotal,
required this.featureParaData,
});
///
@ -88,7 +102,13 @@ class ReadLockStatusResponse {
'icPartNo: $icPartNo, '
'indate: $indate (${DateTime.fromMillisecondsSinceEpoch(indate * 1000, isUtc: true)}), '
'mac: $mac, '
'featureValueLength: $featureValueLength)';
'featureValueLength: $featureValueLength,'
'featureValueHexStr: $featureValueHexStr,'
'featureEnValLength: $featureEnValLength,'
'featureEnValHexStr: $featureEnValHexStr,'
'featureParaTotal: $featureParaTotal,'
'featureParaData: $featureParaData'
')';
}
}
@ -137,6 +157,13 @@ class BleCmdReadLockStatusParser extends BaseBleResponseParser {
indate: 0,
mac: '',
featureValueLength: 0,
featureValue: [],
featureEnValLength: 0,
featureValueHexStr: '',
featureEnVal: [],
featureEnValHexStr: '',
featureParaTotal: -1,
featureParaData: [],
);
}
@ -208,6 +235,26 @@ class BleCmdReadLockStatusParser extends BaseBleResponseParser {
// 18. (1 byte)
int featureValueLength = rawResponseData[offset++];
// 19.
List<int> featureValue = BaseBleResponseParser.extractBytes(rawResponseData, offset, featureValueLength);
String featureValueStr = asciiString(featureValue);
offset += featureValueLength;
// 20.
int featureEnValLength = rawResponseData[offset++];
// 21.
List<int> featureEnVal = BaseBleResponseParser.extractBytes(rawResponseData, offset, featureEnValLength);
String featureEnValStr = asciiString(featureValue);
offset += featureEnValLength;
// 22.
int featureParaTotal = rawResponseData[offset++];
// 23.
List<int> featureParaData = rawResponseData.sublist(offset);
//
return ReadLockStatusResponse(
commandId: commandId,
@ -230,6 +277,13 @@ class BleCmdReadLockStatusParser extends BaseBleResponseParser {
// UNIX
mac: mac,
featureValueLength: featureValueLength,
featureValue: featureValue,
featureValueHexStr: featureValueStr,
featureEnValLength: featureEnValLength,
featureEnVal: featureEnVal,
featureEnValHexStr: featureEnValStr,
featureParaTotal: featureParaTotal,
featureParaData: featureParaData,
);
} catch (e) {
AppLogger.error('❌ 解析获取公钥应答数据异常', error: e);