Merge branch 'master' of gitee.com:starlock-cn/app-starlock
This commit is contained in:
commit
014137cb05
@ -832,5 +832,6 @@
|
||||
"钥匙详情":"Key details",
|
||||
"姓名":"Name",
|
||||
"发送":"Send",
|
||||
"请确认姓名全名和身份证号码是否正确":"Please confirm that the full name and ID number are correct"
|
||||
"请确认姓名全名和身份证号码是否正确":"Please confirm that the full name and ID number are correct",
|
||||
"传输期间请勿离开当前页面":"Do not leave the current page during transfer"
|
||||
}
|
||||
|
||||
@ -860,5 +860,6 @@
|
||||
"钥匙详情":"钥匙详情",
|
||||
"姓名":"姓名",
|
||||
"发送":"发送",
|
||||
"请确认姓名全名和身份证号码是否正确":"请确认姓名全名和身份证号码是否正确"
|
||||
"请确认姓名全名和身份证号码是否正确":"请确认姓名全名和身份证号码是否正确",
|
||||
"传输期间请勿离开当前页面":"传输期间请勿离开当前页面"
|
||||
}
|
||||
|
||||
@ -863,5 +863,7 @@
|
||||
"钥匙详情":"钥匙详情",
|
||||
"姓名":"姓名",
|
||||
"发送":"发送",
|
||||
"请确认姓名全名和身份证号码是否正确":"请确认姓名全名和身份证号码是否正确"
|
||||
"请确认姓名全名和身份证号码是否正确":"请确认姓名全名和身份证号码是否正确",
|
||||
"传输期间请勿离开当前页面":"传输期间请勿离开当前页面"
|
||||
|
||||
}
|
||||
|
||||
@ -477,7 +477,7 @@ class BlueManage {
|
||||
// 当包有头时
|
||||
// 判断是否需要分包
|
||||
dataLen = data[8] * 256 + data[9]; // 高16位用来指示后面数据块内容的长度
|
||||
AppLog.log("dataLen1111:$dataLen getDataLength:${data.length} data:$data");
|
||||
// AppLog.log("dataLen1111:$dataLen getDataLength:${data.length} data:$data");
|
||||
if (dataLen! + 14 > data.length) {
|
||||
// 当前包的长度小于实际的包时 分包添加 不解析
|
||||
allData.addAll(data);
|
||||
@ -493,8 +493,8 @@ class BlueManage {
|
||||
// 当包没有头时 是分包的包 直接添加
|
||||
allData.addAll(data);
|
||||
// var len = allData[8] * 256 + allData[9];
|
||||
AppLog.log(
|
||||
"dataLen3333:$dataLen allData.length:${allData.length} allData:$allData");
|
||||
// AppLog.log(
|
||||
// "dataLen3333:$dataLen allData.length:${allData.length} allData:$allData");
|
||||
if (((dataLen ?? 0) + 14) <= allData.length) {
|
||||
// 当长度小于等于当前包的数据时 直接解析数据
|
||||
CommandReciverManager.appDataReceive(allData);
|
||||
|
||||
@ -183,7 +183,6 @@ class OTAUpgradeReply extends Reply {
|
||||
data = dataDetail;
|
||||
token = data.sublist(2, 6);
|
||||
status = data[6];
|
||||
// AppLog.log('--->2' + data.toString());
|
||||
errorWithStstus(status);
|
||||
}
|
||||
}
|
||||
|
||||
@ -12,121 +12,124 @@ abstract class Reply{
|
||||
//command key flag
|
||||
int status = 0;
|
||||
List<int> data = [];
|
||||
static String logTag= '锁 -> App,指令订阅类型 :';
|
||||
Reply.parseData(this.commandType, List<int> dataDetail);
|
||||
|
||||
void errorWithStstus(int status){
|
||||
|
||||
switch(status){
|
||||
case 0x00:
|
||||
// 成功
|
||||
AppLog.log("$logTag ${commandType?.typeName} 0x00 成功");
|
||||
break;
|
||||
case 0x01:
|
||||
// 包格式错误
|
||||
AppLog.log("${commandType!.typeName} 0x01 包格式错误");
|
||||
AppLog.log("$logTag ${commandType!.typeName} 0x01 包格式错误");
|
||||
showErrorMessage("包格式错误");
|
||||
break;
|
||||
case 0x02:
|
||||
// 密码错误
|
||||
AppLog.log("${commandType!.typeName} 0x02 密码错误");
|
||||
AppLog.log("$logTag ${commandType!.typeName} 0x02 密码错误");
|
||||
showErrorMessage("密码错误");
|
||||
break;
|
||||
case 0x03:
|
||||
// 网络中断
|
||||
AppLog.log("${commandType!.typeName} 0x03 网络中断");
|
||||
AppLog.log("$logTag ${commandType!.typeName} 0x03 网络中断");
|
||||
showErrorMessage("网络中断");
|
||||
break;
|
||||
case 0x04:
|
||||
// 用户未登记
|
||||
AppLog.log("${commandType!.typeName} 0x04 用户未登记");
|
||||
AppLog.log("$logTag ${commandType!.typeName} 0x04 用户未登记");
|
||||
showErrorMessage("用户未登记");
|
||||
break;
|
||||
case 0x05:
|
||||
// 参数错误
|
||||
AppLog.log("${commandType!.typeName} 0x05 参数错误");
|
||||
AppLog.log("$logTag ${commandType!.typeName} 0x05 参数错误");
|
||||
showErrorMessage("参数错误");
|
||||
break;
|
||||
case 0x06:
|
||||
// 需要鉴权
|
||||
AppLog.log("${commandType!.typeName} 0x06 需要鉴权");
|
||||
AppLog.log("$logTag ${commandType!.typeName} 0x06 需要鉴权");
|
||||
// showErrorMessage("需要鉴权");
|
||||
break;
|
||||
case 0x07:
|
||||
// 无权限
|
||||
AppLog.log("${commandType!.typeName} 0x07 无权限");
|
||||
AppLog.log("$logTag ${commandType!.typeName} 0x07 无权限");
|
||||
// showErrorMessage("无权限");
|
||||
break;
|
||||
case 0x08:
|
||||
// 应答超时
|
||||
AppLog.log("${commandType!.typeName} 0x08 应答超时");
|
||||
AppLog.log("$logTag ${commandType!.typeName} 0x08 应答超时");
|
||||
showErrorMessage("应答超时");
|
||||
break;
|
||||
case 0x09:
|
||||
// 权限校验错误
|
||||
AppLog.log("${commandType!.typeName} 0x09 权限校验错误");
|
||||
AppLog.log("$logTag ${commandType!.typeName} 0x09 权限校验错误");
|
||||
showErrorMessage("权限校验错误");
|
||||
break;
|
||||
case 0x0a:
|
||||
// 钥匙不存在
|
||||
showErrorMessage("钥匙不存在");
|
||||
AppLog.log("${commandType!.typeName} 0x0a 钥匙不存在");
|
||||
AppLog.log("$logTag ${commandType!.typeName} 0x0a 钥匙不存在");
|
||||
break;
|
||||
case 0x0b:
|
||||
// 钥匙过期
|
||||
showErrorMessage("钥匙过期");
|
||||
AppLog.log("${commandType!.typeName} 0x0b 钥匙过期");
|
||||
AppLog.log("$logTag ${commandType!.typeName} 0x0b 钥匙过期");
|
||||
break;
|
||||
case 0x0c:
|
||||
// 钥匙数量已到上限
|
||||
showErrorMessage("钥匙数量已到上限");
|
||||
AppLog.log("${commandType!.typeName} 0x0c 钥匙数量已到上限");
|
||||
AppLog.log("$logTag ${commandType!.typeName} 0x0c 钥匙数量已到上限");
|
||||
break;
|
||||
case 0x0d:
|
||||
// 钥匙无效
|
||||
showErrorMessage("钥匙无效");
|
||||
AppLog.log("${commandType!.typeName} 0x0d 钥匙无效");
|
||||
AppLog.log("$logTag ${commandType!.typeName} 0x0d 钥匙无效");
|
||||
break;
|
||||
case 0x0e:
|
||||
// 钥匙已存在
|
||||
showErrorMessage("钥匙已存在");
|
||||
AppLog.log("${commandType!.typeName} 0x0e 钥匙无效");
|
||||
AppLog.log("$logTag ${commandType!.typeName} 0x0e 钥匙无效");
|
||||
break;
|
||||
case 0x0f:
|
||||
// 用户已存在
|
||||
AppLog.log("${commandType!.typeName} 0x0f 用户已存在");
|
||||
AppLog.log("$logTag ${commandType!.typeName} 0x0f 用户已存在");
|
||||
showErrorMessage("用户已存在");
|
||||
break;
|
||||
case 0x10:
|
||||
// 密码失效
|
||||
AppLog.log("${commandType!.typeName} 0x11 密码失效");
|
||||
AppLog.log("$logTag ${commandType!.typeName} 0x11 密码失效");
|
||||
showErrorMessage("密码失效");
|
||||
break;
|
||||
case 0x11:
|
||||
// 无效指令
|
||||
AppLog.log("${commandType!.typeName} 0x11 无效指令");
|
||||
AppLog.log("$logTag ${commandType!.typeName} 0x11 无效指令");
|
||||
showErrorMessage("无效指令");
|
||||
break;
|
||||
case 0x12:
|
||||
// 门锁时间异常
|
||||
AppLog.log("${commandType!.typeName} 0x12 门锁时间异常");
|
||||
AppLog.log("$logTag ${commandType!.typeName} 0x12 门锁时间异常");
|
||||
showErrorMessage("门锁时间异常");
|
||||
break;
|
||||
case 0x15:
|
||||
// APP(手机)未联网
|
||||
AppLog.log("${commandType!.typeName} 0x15 APP(手机)未联网");
|
||||
AppLog.log("$logTag ${commandType!.typeName} 0x15 APP(手机)未联网");
|
||||
showErrorMessage("APP(手机)未联网");
|
||||
break;
|
||||
case 0x16:
|
||||
// 正在开锁中...
|
||||
AppLog.log("${commandType!.typeName}正在开锁中...");
|
||||
AppLog.log("$logTag ${commandType!.typeName}正在开锁中...");
|
||||
// showErrorMessage("正在开锁中...");
|
||||
break;
|
||||
case 0xff:
|
||||
// 异常,未知错误
|
||||
AppLog.log("${commandType!.typeName} 0xff");
|
||||
AppLog.log("$logTag ${commandType!.typeName} 0xff");
|
||||
showErrorMessage("异常,未知错误");
|
||||
break;
|
||||
default:
|
||||
//失败
|
||||
AppLog.log("蓝牙返回其他错误问题");
|
||||
AppLog.log("$logTag ${commandType!.typeName} 蓝牙返回其他错误问题");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -34,8 +34,8 @@ abstract class SenderProtocol extends IOData {
|
||||
}
|
||||
|
||||
void printLog(List<int> data) {
|
||||
// AppLog.log(
|
||||
// "App -> 锁,指令类型:${commandType!.typeName} \n参数是:\n${toString()} \n加密之前数据是:\n$data 长度是:${data.length}");
|
||||
AppLog.log(
|
||||
"App -> 锁,指令类型:${commandType!.typeName} \n参数是:\n${toString()} \n加密之前数据是:\n$data 长度是:${data.length}");
|
||||
}
|
||||
|
||||
//TODO:拼装数据Ï
|
||||
|
||||
@ -110,9 +110,6 @@ class CommandReciverManager {
|
||||
}
|
||||
parseData(oriDataList).then((Reply? value) async {
|
||||
EasyLoading.dismiss();
|
||||
if (value != null) {
|
||||
AppLog.log("锁 -> App,指令订阅类型 :${value.commandType?.typeName} \n $value");
|
||||
}
|
||||
await EventBusManager().eventBusFir(value);
|
||||
}).catchError((error) {
|
||||
AppLog.log("APP解析数据时发生错误: $error");
|
||||
|
||||
@ -44,6 +44,7 @@ class SenderBeforeDataManage {
|
||||
// 监听设备返回的数据
|
||||
StreamSubscription<Reply>? _replySubscription;
|
||||
|
||||
// 启动订阅
|
||||
void _initReplySubscription() {
|
||||
_replySubscription ??=
|
||||
EventBusManager().eventBus!.on<Reply>().listen((reply) async {
|
||||
@ -52,128 +53,36 @@ class SenderBeforeDataManage {
|
||||
_replyAddUserKey(reply);
|
||||
}
|
||||
|
||||
if(reply is CleanUpUsersReply){
|
||||
if (reply is CleanUpUsersReply) {
|
||||
_cleanUpUsersReply(reply);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 添加用户
|
||||
// 解析添加用户订阅
|
||||
Future<void> _replyAddUserKey(Reply reply) async {
|
||||
int status = reply.data[46];
|
||||
switch (status) {
|
||||
case 0x00:
|
||||
//成功
|
||||
CommonDataManage().currentLockUserNo = listChangInt(reply.data.sublist(47, 49));
|
||||
CommonDataManage().currentKeyInfo.lockUserNo = CommonDataManage().currentLockUserNo;
|
||||
CommonDataManage().currentLockUserNo =
|
||||
listChangInt(reply.data.sublist(47, 49));
|
||||
CommonDataManage().currentKeyInfo.lockUserNo =
|
||||
CommonDataManage().currentLockUserNo;
|
||||
_updateLockUserNo();
|
||||
break;
|
||||
case 0x06:
|
||||
//无权限
|
||||
var privateKey = await Storage.getStringList(saveBluePrivateKey);
|
||||
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
||||
|
||||
var publicKey = await Storage.getStringList(saveBluePublicKey);
|
||||
List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
|
||||
|
||||
var token = reply.data.sublist(42, 46);
|
||||
List<String> strTokenList = changeIntListToStringList(token);
|
||||
Storage.setStringList(saveBlueToken, strTokenList);
|
||||
|
||||
// IoSenderManage.senderAddUser(
|
||||
// lockID: BlueManage().connectDeviceName,
|
||||
// authUserID: CommonDataManage().currentKeyInfo.senderUserId!.toString(),
|
||||
// keyID: CommonDataManage().currentKeyInfo.keyId.toString(),
|
||||
// userID: await Storage.getUid(),
|
||||
// openMode: 1,
|
||||
// keyType: 0,
|
||||
// startDate: CommonDataManage().currentKeyInfo.startDate!~/10000,
|
||||
// expireDate: CommonDataManage().currentKeyInfo.endDate!~/10000,
|
||||
// role: CommonDataManage().currentKeyInfo.keyRight == 1 ? 1 : 0,
|
||||
// password: "123456",
|
||||
// needAuthor: 1,
|
||||
// publicKey: publicKeyDataList,
|
||||
// privateKey: getPrivateKeyList,
|
||||
// token: token);
|
||||
LockListInfoItemEntity currentKeyInfo = CommonDataManage().currentKeyInfo;
|
||||
AppLog.log(
|
||||
"startDate111:${currentKeyInfo.startDate} endDate:${currentKeyInfo.endDate}");
|
||||
DateTime startTime = DateTime.fromMillisecondsSinceEpoch(
|
||||
currentKeyInfo.startDate! ~/ 1000);
|
||||
DateTime endTime = DateTime.fromMillisecondsSinceEpoch(
|
||||
currentKeyInfo.endDate! ~/ 1000);
|
||||
bool isRound = currentKeyInfo.keyType == 2;
|
||||
var addUserData = AddUserCommand(
|
||||
lockID: BlueManage().connectDeviceName,
|
||||
authUserID: currentKeyInfo.senderUserId!.toString(),
|
||||
keyID: currentKeyInfo.keyId.toString(),
|
||||
userID: await Storage.getUid(),
|
||||
openMode: 1,
|
||||
keyType: currentKeyInfo.keyType,
|
||||
startDate: currentKeyInfo.startDate! ~/ 1000,
|
||||
expireDate: currentKeyInfo.endDate! ~/ 1000,
|
||||
useCountLimit: 0xFFFF,
|
||||
// useCountLimit: 1,
|
||||
isRound: isRound ? 1 : 0,
|
||||
weekRound: isRound
|
||||
? DateTool().accordingTheCycleIntoTheCorrespondingNumber(
|
||||
currentKeyInfo.weekDays!)
|
||||
: 0,
|
||||
startHour: isRound ? startTime.hour : 0,
|
||||
startMin: isRound ? startTime.minute : 0,
|
||||
endHour: isRound ? endTime.hour : 0,
|
||||
endMin: isRound ? endTime.minute : 0,
|
||||
role: currentKeyInfo.keyRight == 1 ? 1 : 0,
|
||||
password: "123456",
|
||||
needAuthor: 1,
|
||||
publicKey: publicKeyDataList,
|
||||
privateKey: getPrivateKeyList,
|
||||
token: token);
|
||||
eventBus.fire(LockAddUserSucceedEvent(addUserData.packageData(), 1));
|
||||
var addUserData = await getAddUserKeyData(tokenList: token);
|
||||
eventBus.fire(LockAddUserSucceedEvent(addUserData, 1));
|
||||
break;
|
||||
case 0x0c:
|
||||
//锁设备用户超过 32个,需要同步锁用户列表刷新
|
||||
var entity = await ApiRepository.to.getLockUserNoList(
|
||||
lockId: CommonDataManage().currentKeyInfo.lockId!);
|
||||
if (!entity.errorCode!.codeIsSuccessful &&
|
||||
(entity.data?.userNos ?? []).isNotEmpty) {
|
||||
return;
|
||||
}
|
||||
var privateKey = await Storage.getStringList(saveBluePrivateKey);
|
||||
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
||||
|
||||
var publicKey = await Storage.getStringList(saveBluePublicKey);
|
||||
List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
|
||||
|
||||
var tokenKey = await Storage.getStringList(saveBlueToken);
|
||||
List<int> tokenList = changeStringListToIntList(tokenKey!);
|
||||
AppLog.log('---> ${entity.data?.userNos}');
|
||||
|
||||
var cleanUpUsersData = CleanUpUsersCommand(
|
||||
lockID: BlueManage().connectDeviceName,
|
||||
authUserID: CommonDataManage().currentKeyInfo.senderUserId!.toString(),
|
||||
keyID: CommonDataManage().currentKeyInfo.keyId.toString(),
|
||||
userID: await Storage.getUid(),
|
||||
needAuthor: 1,
|
||||
publicKey: publicKeyDataList,
|
||||
privateKey: getPrivateKeyList,
|
||||
userNoList: entity.data!.userNos!,
|
||||
token: tokenList,
|
||||
).packageData();
|
||||
CommandSenderManager().sendNormalData(cleanUpUsersData);
|
||||
|
||||
// IoSenderManage.senderCleanUpUsersCommand(
|
||||
// lockID: BlueManage().connectDeviceName,
|
||||
// authUserID:
|
||||
// CommonDataManage().currentKeyInfo.senderUserId!.toString(),
|
||||
// keyID: CommonDataManage().currentKeyInfo.keyId.toString(),
|
||||
// userID: await Storage.getUid(),
|
||||
// userNoList: entity.data!.userNos!,
|
||||
// needAuthor: 1,
|
||||
// publicKey: publicKeyDataList,
|
||||
// privateKey: getPrivateKeyList,
|
||||
// token: tokenList);
|
||||
|
||||
var addUserData = await getCleanUpUsers();
|
||||
CommandSenderManager().sendNormalData(addUserData);
|
||||
break;
|
||||
default:
|
||||
//失败
|
||||
@ -181,47 +90,81 @@ class SenderBeforeDataManage {
|
||||
}
|
||||
}
|
||||
|
||||
// 清理用户
|
||||
// 解析清理用户订阅
|
||||
Future<void> _cleanUpUsersReply(Reply reply) async {
|
||||
int status = reply.data[6];
|
||||
switch (status) {
|
||||
case 0x00:
|
||||
//成功
|
||||
|
||||
//添加用户
|
||||
var addUserData = await getAddUserKeyData();
|
||||
CommandSenderManager().sendNormalData(addUserData);
|
||||
break;
|
||||
case 0x06:
|
||||
//无权限
|
||||
var privateKey = await Storage.getStringList(saveBluePrivateKey);
|
||||
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
||||
|
||||
var publicKey = await Storage.getStringList(saveBluePublicKey);
|
||||
List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
|
||||
|
||||
var token = reply.data.sublist(42, 46);
|
||||
//无权限
|
||||
var token = reply.data.sublist(2, 6);
|
||||
List<String> strTokenList = changeIntListToStringList(token);
|
||||
Storage.setStringList(saveBlueToken, strTokenList);
|
||||
|
||||
|
||||
var addUserData = await getCleanUpUsers(tokenList: token);
|
||||
CommandSenderManager().sendNormalData(addUserData);
|
||||
break;
|
||||
default:
|
||||
//失败
|
||||
//失败
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Future<List<int>> getAddUserKeyData() async {
|
||||
//获取清除用户列表指令
|
||||
Future<List<int>> getCleanUpUsers({List<int>? tokenList}) async {
|
||||
var entity = await ApiRepository.to
|
||||
.getLockUserNoList(lockId: CommonDataManage().currentKeyInfo.lockId!);
|
||||
if (!entity.errorCode!.codeIsSuccessful ||
|
||||
(entity.data?.userNos ?? []).isEmpty) {
|
||||
throw Exception('ApiRepository.to.getLockUserNoList 访问失败');
|
||||
}
|
||||
var privateKey = await Storage.getStringList(saveBluePrivateKey);
|
||||
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
||||
|
||||
var publicKey = await Storage.getStringList(saveBluePublicKey);
|
||||
List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
|
||||
|
||||
var token = await Storage.getStringList(saveBlueToken);
|
||||
List<int> getTokenList = changeStringListToIntList(token!);
|
||||
if (tokenList == null) {
|
||||
var tokenKey = await Storage.getStringList(saveBlueToken);
|
||||
tokenList = changeStringListToIntList(tokenKey!);
|
||||
}
|
||||
|
||||
var cleanUpUsersData = CleanUpUsersCommand(
|
||||
lockID: BlueManage().connectDeviceName,
|
||||
authUserID: CommonDataManage().currentKeyInfo.senderUserId!.toString(),
|
||||
keyID: CommonDataManage().currentKeyInfo.keyId.toString(),
|
||||
userID: await Storage.getUid(),
|
||||
needAuthor: 1,
|
||||
publicKey: publicKeyDataList,
|
||||
privateKey: getPrivateKeyList,
|
||||
userNoList: entity.data!.userNos!,
|
||||
token: tokenList,
|
||||
);
|
||||
return cleanUpUsersData.packageData();
|
||||
}
|
||||
|
||||
//获取添加用户指令
|
||||
Future<List<int>> getAddUserKeyData({List<int>? tokenList}) async {
|
||||
var privateKey = await Storage.getStringList(saveBluePrivateKey);
|
||||
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
||||
|
||||
var publicKey = await Storage.getStringList(saveBluePublicKey);
|
||||
List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
|
||||
|
||||
if (tokenList == null) {
|
||||
var token = await Storage.getStringList(saveBlueToken);
|
||||
tokenList = changeStringListToIntList(token!);
|
||||
}
|
||||
|
||||
LockListInfoItemEntity currentKeyInfo = CommonDataManage().currentKeyInfo;
|
||||
DateTime startTime = DateTime.fromMillisecondsSinceEpoch(currentKeyInfo.startDate! ~/ 1000);
|
||||
DateTime endTime = DateTime.fromMillisecondsSinceEpoch(currentKeyInfo.endDate! ~/ 1000);
|
||||
DateTime startTime =
|
||||
DateTime.fromMillisecondsSinceEpoch(currentKeyInfo.startDate! ~/ 1000);
|
||||
DateTime endTime =
|
||||
DateTime.fromMillisecondsSinceEpoch(currentKeyInfo.endDate! ~/ 1000);
|
||||
bool isRound = currentKeyInfo.keyType == 2;
|
||||
|
||||
var addUserData = AddUserCommand(
|
||||
@ -234,7 +177,6 @@ class SenderBeforeDataManage {
|
||||
startDate: currentKeyInfo.startDate! ~/ 1000,
|
||||
expireDate: currentKeyInfo.endDate! ~/ 1000,
|
||||
useCountLimit: 0xFFFF,
|
||||
// useCountLimit: 1,
|
||||
isRound: isRound ? 1 : 0,
|
||||
weekRound: isRound
|
||||
? DateTool().accordingTheCycleIntoTheCorrespondingNumber(
|
||||
@ -249,7 +191,7 @@ class SenderBeforeDataManage {
|
||||
needAuthor: 1,
|
||||
publicKey: publicKeyDataList,
|
||||
privateKey: getPrivateKeyList,
|
||||
token: getTokenList);
|
||||
token: tokenList);
|
||||
return addUserData.packageData();
|
||||
}
|
||||
|
||||
|
||||
@ -9,11 +9,16 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:rxdart/rxdart.dart';
|
||||
import 'package:star_lock/app_settings/app_colors.dart';
|
||||
import 'package:star_lock/app_settings/app_settings.dart';
|
||||
import 'package:star_lock/blue/blue_manage.dart';
|
||||
import 'package:star_lock/blue/io_protocol/io_cleanUpUsers.dart';
|
||||
import 'package:star_lock/blue/io_tool/io_tool.dart';
|
||||
import 'package:star_lock/blue/sender_data.dart';
|
||||
import 'package:star_lock/blue/sender_manage.dart';
|
||||
import 'package:star_lock/debug/log.dart';
|
||||
import 'package:star_lock/main/lockMian/entity/lockListInfo_entity.dart';
|
||||
import 'package:star_lock/network/api_repository.dart';
|
||||
import 'package:star_lock/tools/baseGetXController.dart';
|
||||
import 'package:star_lock/tools/commonDataManage.dart';
|
||||
import 'package:star_lock/tools/dateTool.dart';
|
||||
import 'package:star_lock/tools/storage.dart';
|
||||
@ -85,6 +90,14 @@ class DebugConsoleController {
|
||||
.catchError(EasyLoading.dismiss);
|
||||
},
|
||||
child: const Text('给锁设备创建 32个用户')),
|
||||
ElevatedButton(
|
||||
onPressed: () {
|
||||
EasyLoading.show();
|
||||
sendCleanUpUsers()
|
||||
.then((value) => EasyLoading.dismiss())
|
||||
.catchError(EasyLoading.dismiss);
|
||||
},
|
||||
child: const Text('清除用户,只保留超级管理员')),
|
||||
],
|
||||
),
|
||||
),
|
||||
@ -141,9 +154,11 @@ class DebugConsoleController {
|
||||
privateKey: getPrivateKeyList,
|
||||
token: tokenList);
|
||||
}
|
||||
|
||||
AppLog.log('--> 添加第$count 用户');
|
||||
});
|
||||
|
||||
await Future.delayed(const Duration(seconds: 2));
|
||||
await Future.delayed(const Duration(seconds: 3));
|
||||
count++;
|
||||
await randomlyCreate32Users(count, max);
|
||||
}
|
||||
@ -155,4 +170,36 @@ class DebugConsoleController {
|
||||
return List.generate(length, (index) => chars[random.nextInt(chars.length)])
|
||||
.join();
|
||||
}
|
||||
|
||||
//获取清除用户列表指令
|
||||
Future<void> sendCleanUpUsers({List<int>? tokenList}) async {
|
||||
var privateKey = await Storage.getStringList(saveBluePrivateKey);
|
||||
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
||||
|
||||
var publicKey = await Storage.getStringList(saveBluePublicKey);
|
||||
List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
|
||||
|
||||
if (tokenList == null) {
|
||||
var tokenKey = await Storage.getStringList(saveBlueToken);
|
||||
tokenList = changeStringListToIntList(tokenKey!);
|
||||
}
|
||||
|
||||
BlueManage().bludSendData(BlueManage().connectDeviceName,
|
||||
(BluetoothConnectionState deviceConnectionState) async {
|
||||
if (deviceConnectionState == BluetoothConnectionState.connected) {
|
||||
IoSenderManage.senderCleanUpUsersCommand(
|
||||
lockID: BlueManage().connectDeviceName,
|
||||
authUserID:
|
||||
CommonDataManage().currentKeyInfo.senderUserId!.toString(),
|
||||
keyID: CommonDataManage().currentKeyInfo.keyId.toString(),
|
||||
userID: await Storage.getUid(),
|
||||
needAuthor: 1,
|
||||
publicKey: publicKeyDataList,
|
||||
privateKey: getPrivateKeyList,
|
||||
userNoList: [1],
|
||||
token: tokenList,
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -479,7 +479,6 @@ class NearbyLockLogic extends BaseGetXController {
|
||||
token: token,
|
||||
encrypt: false,
|
||||
).packageData());
|
||||
showTitleEasyLoading("连接设备中...");
|
||||
} else if (deviceConnectionState ==
|
||||
BluetoothConnectionState.disconnected) {}
|
||||
},isAddEquipment: true);
|
||||
|
||||
@ -279,20 +279,31 @@ class OTAProgressDialog extends StatelessWidget {
|
||||
title: Text(
|
||||
'固件升级中'.tr,
|
||||
),
|
||||
content: Row(
|
||||
content: Column(
|
||||
children: [
|
||||
Text(
|
||||
'传输中'.tr,
|
||||
style: TextStyle(fontSize: 22.sp, color: AppColors.mainColor),
|
||||
Padding(
|
||||
padding: EdgeInsets.only(top: 20.h, bottom: 10.h),
|
||||
child: Text(
|
||||
'传输期间请勿离开当前页面'.tr,
|
||||
style: TextStyle(fontSize: 20.sp, color: AppColors.blackColor),
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
width: 15.w,
|
||||
Row(
|
||||
children: [
|
||||
Text(
|
||||
'传输中'.tr,
|
||||
style: TextStyle(fontSize: 18.sp, color: AppColors.mainColor),
|
||||
),
|
||||
SizedBox(
|
||||
width: 15.w,
|
||||
),
|
||||
Expanded(
|
||||
child: LinearProgressIndicator(
|
||||
value: logic.state.otaProgress.value,
|
||||
color: AppColors.mainColor,
|
||||
)),
|
||||
],
|
||||
),
|
||||
Expanded(
|
||||
child: LinearProgressIndicator(
|
||||
value: logic.state.otaProgress.value,
|
||||
color: AppColors.mainColor,
|
||||
)),
|
||||
],
|
||||
),
|
||||
actions: [
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user