获取星锁状态数据改为位偏移
This commit is contained in:
parent
11dacea2e2
commit
4c0bfa742b
@ -170,145 +170,158 @@ class NearbyLockLogic extends BaseGetXController {
|
||||
int status = reply.data[2];
|
||||
switch (status) {
|
||||
case 0x00:
|
||||
//成功
|
||||
//成功
|
||||
AppLog.log("获取锁状态成功");
|
||||
// 厂商名称
|
||||
var vendor = reply.data.sublist(3, 23);
|
||||
var index = 3;
|
||||
var vendor = reply.data.sublist(index, index + 20);
|
||||
var vendorStr = utf8String(vendor);
|
||||
state.lockInfo["vendor"] = vendorStr;
|
||||
// state.lockInfo["vendor"] = "XL";
|
||||
index = index + 20;
|
||||
AppLog.log("厂商名称 vendorStr:$vendorStr");
|
||||
|
||||
// 锁设备类型
|
||||
var product = reply.data[23];
|
||||
var product = reply.data[index];
|
||||
state.lockInfo["product"] = product;
|
||||
index = index + 1;
|
||||
AppLog.log("锁设备类型 product:$product");
|
||||
|
||||
// 产品名称
|
||||
var model = reply.data.sublist(24, 44);
|
||||
var model = reply.data.sublist(index, index + 20);
|
||||
var modelStr = utf8String(model);
|
||||
state.lockInfo["model"] = modelStr;
|
||||
// state.lockInfo["model"] = "JL-BLE-01";
|
||||
index = index + 20;
|
||||
AppLog.log("产品名称 mmodelStr:$modelStr");
|
||||
|
||||
// 软件版本
|
||||
var fwVersion = reply.data.sublist(44, 64);
|
||||
var fwVersion = reply.data.sublist(index, index+20);
|
||||
var fwVersionStr = utf8String(fwVersion);
|
||||
state.lockInfo["fwVersion"] = fwVersionStr;
|
||||
index = index + 20;
|
||||
AppLog.log("软件版本 fwVersionStr:$fwVersionStr");
|
||||
|
||||
// 硬件版本
|
||||
var hwVersion = reply.data.sublist(64, 84);
|
||||
var hwVersion = reply.data.sublist(index, index+20);
|
||||
var hwVersionStr = utf8String(hwVersion);
|
||||
state.lockInfo["hwVersion"] = hwVersionStr;
|
||||
index = index + 20;
|
||||
AppLog.log("硬件版本 hwVersionStr:$hwVersionStr");
|
||||
|
||||
// 厂商序列号
|
||||
var serialNum0 = reply.data.sublist(84, 100);
|
||||
var serialNum0 = reply.data.sublist(index, index + 16);
|
||||
var serialNum0Str = utf8String(serialNum0);
|
||||
state.lockInfo["serialNum0"] = serialNum0Str;
|
||||
// state.lockInfo["serialNum0"] = "${DateTime.now().millisecondsSinceEpoch ~/ 10}";
|
||||
index = index + 16;
|
||||
AppLog.log("厂商序列号 serialNum0Str:${serialNum0Str.length}");
|
||||
|
||||
// 成品商序列号
|
||||
var serialNum1 = reply.data.sublist(100, 116);
|
||||
var serialNum1 = reply.data.sublist(index, index + 16);
|
||||
var serialNum1Str = utf8String(serialNum1);
|
||||
state.lockInfo["serialNum1"] = serialNum1Str;
|
||||
index = index + 16;
|
||||
AppLog.log("成品商序列号 serialNum1Str:$serialNum1Str");
|
||||
|
||||
// 蓝牙名称
|
||||
var btDeviceName = reply.data.sublist(116, 132);
|
||||
var btDeviceName = reply.data.sublist(index, index + 16);
|
||||
var btDeviceNameStr = utf8String(btDeviceName);
|
||||
state.lockInfo["btDeviceName"] = btDeviceNameStr;
|
||||
index = index + 16;
|
||||
AppLog.log("蓝牙名称 btDeviceNameStr:$btDeviceNameStr");
|
||||
|
||||
// 电池剩余电量
|
||||
var battRemCap = reply.data[132];
|
||||
var battRemCap = reply.data[index];
|
||||
state.lockInfo["electricQuantity"] = battRemCap;
|
||||
index = index + 1;
|
||||
AppLog.log("电池剩余电量 battRemCap:$battRemCap");
|
||||
|
||||
// 备用电池剩余电量
|
||||
// var battRemCapStandby = reply.data[133];
|
||||
// state.lockInfo["electricQuantityStandby"] = battRemCapStandby;
|
||||
// AppLog.log("电池剩余电量 battRemCap:$battRemCap");
|
||||
var battRemCapStandby = reply.data[index];
|
||||
state.lockInfo["electricQuantityStandby"] = battRemCapStandby;
|
||||
index = index + 1;
|
||||
AppLog.log("电池剩余电量 battRemCap:$battRemCap");
|
||||
|
||||
// 重置次数
|
||||
var restoreCounter = reply.data.sublist(134, 136);
|
||||
state.lockInfo["restoreCount"] =
|
||||
restoreCounter[0] * 256 + restoreCounter[1];
|
||||
AppLog.log(
|
||||
"重置次数 restoreCounter:${restoreCounter[0] * 256 + restoreCounter[1]}");
|
||||
var restoreCounter = reply.data.sublist(index, index + 2);
|
||||
state.lockInfo["restoreCount"] = restoreCounter[0] * 256 + restoreCounter[1];
|
||||
index = index + 2;
|
||||
AppLog.log("重置次数 restoreCounter:${restoreCounter[0] * 256 + restoreCounter[1]}");
|
||||
|
||||
// 重置时间
|
||||
var restoreDate = reply.data.sublist(136, 140);
|
||||
var restoreDate = reply.data.sublist(index, index + 4);
|
||||
int restoreDateValue = ((0xff & restoreDate[(0)]) << 24 |
|
||||
(0xff & restoreDate[1]) << 16 |
|
||||
(0xff & restoreDate[2]) << 8 |
|
||||
(0xFF & restoreDate[3]));
|
||||
(0xff & restoreDate[1]) << 16 |
|
||||
(0xff & restoreDate[2]) << 8 |
|
||||
(0xFF & restoreDate[3]));
|
||||
// String restoreDateStr = DateTool().dateToYMDHNSString(restoreDateValue.toString());
|
||||
state.lockInfo["restoreDate"] = restoreDateValue * 1000;
|
||||
index = index + 4;
|
||||
AppLog.log("重置时间 restoreDateValue:$restoreDateValue");
|
||||
|
||||
// 主控芯片型号
|
||||
var icPartNo = reply.data.sublist(140, 150);
|
||||
var icPartNo = reply.data.sublist(index, index + 10);
|
||||
var icPartNoStr = utf8String(icPartNo);
|
||||
state.lockInfo["icPartNo"] = icPartNoStr;
|
||||
index = index + 10;
|
||||
AppLog.log("主控芯片型号 icPartNoStr:$icPartNoStr");
|
||||
|
||||
// 有效时间
|
||||
var indate = reply.data.sublist(150, 154);
|
||||
var indate = reply.data.sublist(index, index + 4);
|
||||
int indateValue = ((0xff & indate[(0)]) << 24 |
|
||||
(0xff & indate[1]) << 16 |
|
||||
(0xff & indate[2]) << 8 |
|
||||
(0xFF & indate[3]));
|
||||
(0xff & indate[1]) << 16 |
|
||||
(0xff & indate[2]) << 8 |
|
||||
(0xFF & indate[3]));
|
||||
// String indateStr = DateTool().dateToYMDHNSString("$indateValue");
|
||||
state.lockInfo["indate"] = indateValue * 1000;
|
||||
index = index + 4;
|
||||
AppLog.log("有效时间 indateValue:$indateValue");
|
||||
|
||||
// mac地址
|
||||
var macAddress = reply.data.sublist(154, 174);
|
||||
var macAddress = reply.data.sublist(index, index + 20);
|
||||
var macAddressStr = utf8String(macAddress);
|
||||
state.lockInfo["mac"] = macAddressStr;
|
||||
index = index + 20;
|
||||
AppLog.log("mac地址 macAddressStr:$macAddressStr");
|
||||
|
||||
var index = 174;
|
||||
// 锁特征值字符串长度
|
||||
var featureValueLength = reply.data[index];
|
||||
index = index + 1;
|
||||
AppLog.log("锁特征值字符串长度 featureValueLength:$featureValueLength");
|
||||
|
||||
// 锁特征值说明(本机能支持的功能)
|
||||
// 获取到锁给的字符数组
|
||||
var featureNetxLength = index + featureValueLength + 1;
|
||||
var featureNetxLength = index + featureValueLength;
|
||||
if (reply.data.length < featureNetxLength) {
|
||||
showToast("锁数据异常,请重试");
|
||||
return;
|
||||
}
|
||||
var featureValue =
|
||||
reply.data.sublist(index + 1, index + featureValueLength + 1);
|
||||
var featureValue = reply.data.sublist(index, index + featureValueLength);
|
||||
String featureValueStr = asciiString(featureValue);
|
||||
state.featureValue = featureValueStr;
|
||||
// List allFeatureValueTwoList = charListChangeIntList(featureValue);
|
||||
// AppLog.log("featureValueLength:$featureValueLength featureValue:$featureValue \n featureValueStr:$featureValueStr");
|
||||
index = index + featureValueLength + 1;
|
||||
index = index + featureValueLength;
|
||||
AppLog.log("锁特征值字符串 featureValueStr:$featureValueStr");
|
||||
|
||||
// 使能特征值字符串长度
|
||||
var featureEnValLength = reply.data[index];
|
||||
index = index + 1;
|
||||
AppLog.log("使能特征值字符串长度 featureEnValLength:$featureEnValLength");
|
||||
|
||||
// 使能锁特征值说明(本机启用的功能)
|
||||
var featureEnNextLength = index + featureEnValLength + 1;
|
||||
var featureEnNextLength = index + featureEnValLength;
|
||||
if (reply.data.length < featureEnNextLength) {
|
||||
showToast("锁数据异常,请重试");
|
||||
return;
|
||||
}
|
||||
var featureEnVal =
|
||||
reply.data.sublist(index + 1, index + featureEnValLength + 1);
|
||||
var featureEnVal = reply.data.sublist(index, index + featureEnValLength);
|
||||
String featureEnValStr = asciiString(featureEnVal);
|
||||
state.featureSettingValue = featureEnValStr;
|
||||
// List allFeatureEnValTwoList = charListChangeIntList(featureEnVal);
|
||||
// AppLog.log("featureEnValLength:$featureEnValLength featureEnVal:$featureEnVal \n featureEnValStr:$featureEnValStr");
|
||||
index = index + featureEnValLength + 1;
|
||||
index = index + featureEnValLength;
|
||||
AppLog.log("使能锁特征值说明 featureEnValStr:$featureEnValStr");
|
||||
|
||||
// 支持的带参数特征值的总条目数
|
||||
@ -328,7 +341,7 @@ class NearbyLockLogic extends BaseGetXController {
|
||||
|
||||
break;
|
||||
case 0x06:
|
||||
//无权限
|
||||
//无权限
|
||||
var privateKey = await Storage.getStringList(saveBluePrivateKey);
|
||||
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
||||
// IoSenderManage.senderGetLockStatu(
|
||||
@ -346,8 +359,8 @@ class NearbyLockLogic extends BaseGetXController {
|
||||
);
|
||||
break;
|
||||
default:
|
||||
//失败
|
||||
// state.sureBtnState.value = 0;
|
||||
//失败
|
||||
// state.sureBtnState.value = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user