From e55e3482bfe12b1c8089425155d4be42a7d48578 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AD=8F=E5=B0=91=E9=98=B3?= <786612630@qq.com> Date: Mon, 15 Apr 2024 16:30:00 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E6=B7=BB=E5=8A=A0=E5=8D=A1=E8=B7=9F?= =?UTF-8?q?=E6=8C=87=E7=BA=B9=E5=BE=AA=E7=8E=AF=E3=80=81=E8=83=81=E8=BF=AB?= =?UTF-8?q?=E3=80=81=E9=99=90=E6=97=B6=E5=8D=8F=E8=AE=AE=E3=80=822?= =?UTF-8?q?=E3=80=81=E6=B7=BB=E5=8A=A0=E9=85=8D=E7=BD=91=E6=88=90=E5=8A=9F?= =?UTF-8?q?=E5=90=8E=E8=BF=94=E5=9B=9E=E9=94=81=E8=AE=BE=E7=BD=AE=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../blue/io_protocol/io_addFingerprint.dart | 11 +- ...o_addFingerprintWithTimeCycleCoercion.dart | 185 ++++++++++++++++++ .../lib/blue/io_protocol/io_addICCard.dart | 13 +- .../io_addICCardWithTimeCycleCoercion.dart | 178 +++++++++++++++++ .../io_protocol/io_senderCustomPasswords.dart | 2 +- star_lock/lib/blue/reciver_data.dart | 46 +++-- star_lock/lib/blue/sender_manage.dart | 90 ++++++++- .../register/starLock_register_page.dart | 3 - .../card/addCardType/addCardType_logic.dart | 1 + .../card/addICCard/addICCard_logic.dart | 64 ++++-- .../card/addICCard/addICCard_page.dart | 3 +- .../card/addICCard/addICCard_state.dart | 2 + .../card/cardDetail/cardDetail_logic.dart | 14 +- .../card/cardList/cardList_logic.dart | 18 +- .../card/cardList/cardList_page.dart | 6 +- .../sendElectronicKey_logic.dart | 88 ++++----- .../addFingerprint/addFingerprint_logic.dart | 113 +++++++++-- .../addFingerprint/addFingerprint_state.dart | 2 + .../addFingerprintType_logic.dart | 1 + .../fingerprintDetail_logic.dart | 18 +- .../fingerprintList_logic.dart | 18 +- .../iris/irisDetail/irisDetail_logic.dart | 18 +- .../configuringWifi_logic.dart | 5 +- .../lockSet/lockSet/lockSet_logic.dart | 7 +- .../palm/palmDetail/palmDetail_logic.dart | 18 +- .../passwordKey_perpetual_logic.dart | 2 +- .../mine/addLock/saveLock/saveLock_logic.dart | 84 +++----- .../expireCard/expireCard_logic.dart | 18 +- .../expireFingerprint_logic.dart | 14 +- 29 files changed, 816 insertions(+), 226 deletions(-) create mode 100644 star_lock/lib/blue/io_protocol/io_addFingerprintWithTimeCycleCoercion.dart create mode 100644 star_lock/lib/blue/io_protocol/io_addICCardWithTimeCycleCoercion.dart diff --git a/star_lock/lib/blue/io_protocol/io_addFingerprint.dart b/star_lock/lib/blue/io_protocol/io_addFingerprint.dart index 23258492..4d593b97 100644 --- a/star_lock/lib/blue/io_protocol/io_addFingerprint.dart +++ b/star_lock/lib/blue/io_protocol/io_addFingerprint.dart @@ -23,7 +23,7 @@ class SenderAddFingerprintCommand extends SenderProtocol { int? startTime; int? endTime; int? needAuthor; - List? publicKey; + List? signKey; List? privateKey; SenderAddFingerprintCommand({ @@ -35,7 +35,7 @@ class SenderAddFingerprintCommand extends SenderProtocol { this.startTime, this.endTime, this.needAuthor, - this.publicKey, + this.signKey, this.privateKey, }) : super(CommandType.generalExtendedCommond); @@ -96,17 +96,16 @@ class SenderAddFingerprintCommand extends SenderProtocol { subData.add(0); } else { List authCodeData = []; + //KeyID + authCodeData.addAll(utf8.encode(keyID!)); //authUserID authCodeData.addAll(utf8.encode(userID!)); - //KeyID - authCodeData.addAll(utf8.encode(keyID!)); - //token 4 首次请求 Token 填 0,如果锁需要鉴权操作者身份,则会分配动态口令并在应答消息中返回,二次请求时带上。 authCodeData.addAll(token!); - authCodeData.addAll(publicKey!); + authCodeData.addAll(signKey!); print("${commandType!.typeValue}-authCodeData:$authCodeData"); diff --git a/star_lock/lib/blue/io_protocol/io_addFingerprintWithTimeCycleCoercion.dart b/star_lock/lib/blue/io_protocol/io_addFingerprintWithTimeCycleCoercion.dart new file mode 100644 index 00000000..285aea9b --- /dev/null +++ b/star_lock/lib/blue/io_protocol/io_addFingerprintWithTimeCycleCoercion.dart @@ -0,0 +1,185 @@ + +import 'dart:convert'; + +import '../io_tool/io_tool.dart'; +import '../sm4Encipher/sm4.dart'; +import '../io_reply.dart'; +import '../io_sender.dart'; +import '../io_type.dart'; +import 'package:crypto/crypto.dart' as crypto; + +///TODO:添加指纹 +/* +备注: +删除单个指纹规则:UseCountLimit 设置为 0。删除全部指纹规则: UseCountLimit 设置为 0,FingerNo 设置为 255,userId 设置为“Delete All !@#”,只有门锁管理员才有权限 +**/ +class SenderAddFingerprintWithTimeCycleCoercionCommand extends SenderProtocol { + + String? keyID; + String? userID; + int? fingerNo; + int? useCountLimit; + int? isForce; + List? token; + int? isRound; + int? weekRound; + int? startDate; + int? endDate; + int? startTime; + int? endTime; + int? needAuthor; + List? signKey; + List? privateKey; + + SenderAddFingerprintWithTimeCycleCoercionCommand({ + this.keyID, + this.userID, + this.fingerNo, + this.useCountLimit, + this.isForce, + this.token, + this.isRound, + this.weekRound, + this.startDate, + this.endDate, + this.startTime, + this.endTime, + this.needAuthor, + this.signKey, + this.privateKey, + }) : super(CommandType.generalExtendedCommond); + + @override + List messageDetail() { + List data = []; + List subData = []; + List ebcData = []; + + print("pwdNopwdNopwdNopwdNo:$fingerNo"); + + // 指令类型 + int type = commandType!.typeValue; + double typeDouble = type / 256; + int type1 = typeDouble.toInt(); + int type2 = type % 256; + data.add(type1); + data.add(type2); + + // 子命令类型 + data.add(36); + + // keyID 40 + int keyIDLength = utf8.encode(keyID!).length; + // print("${commandType!.typeValue}LockIDLength:$lockIDLength utf8.encode(lockID!)${utf8.encode(lockID!)}"); + subData.addAll(utf8.encode(keyID!)); + subData = getFixedLengthList(subData, 40 - keyIDLength); + + //userID 20 + int userIDLength = utf8.encode(userID!).length; + // print("${commandType!.typeValue}IDLength:$authUserIDLength utf8.encode(authUserID!)${utf8.encode(authUserID!)}"); + subData.addAll(utf8.encode(userID!)); + subData = getFixedLengthList(subData, 20 - userIDLength); + + // fingerNo + subData.add(fingerNo!); + + // UseCountLimit + subData.add(useCountLimit!); + + // isForce + subData.add(isForce!); + + // token + subData.addAll(token!); + + // isRound + subData.add(isRound!); + + // weekRound + subData.add(weekRound!); + + // startDate 4 + subData.add((startDate! & 0xff000000) >> 24); + subData.add((startDate! & 0xff0000) >> 16); + subData.add((startDate! & 0xff00) >> 8); + subData.add((startDate! & 0xff)); + + // endDate 4 + subData.add((endDate! & 0xff000000) >> 24); + subData.add((endDate! & 0xff0000) >> 16); + subData.add((endDate! & 0xff00) >> 8); + subData.add((endDate! & 0xff)); + + // startTime 4 + subData.add((startTime! & 0xff000000) >> 24); + subData.add((startTime! & 0xff0000) >> 16); + subData.add((startTime! & 0xff00) >> 8); + subData.add((startTime! & 0xff)); + + // endTime 4 + subData.add((endTime! & 0xff000000) >> 24); + subData.add((endTime! & 0xff0000) >> 16); + subData.add((endTime! & 0xff00) >> 8); + subData.add((endTime! & 0xff)); + + if(needAuthor == 0){ + //AuthCodeLen 1 + subData.add(0); + } else { + List authCodeData = []; + //KeyID + authCodeData.addAll(utf8.encode(keyID!)); + + //authUserID + authCodeData.addAll(utf8.encode(userID!)); + + //token 4 首次请求 Token 填 0,如果锁需要鉴权操作者身份,则会分配动态口令并在应答消息中返回,二次请求时带上。 + authCodeData.addAll(token!); + + authCodeData.addAll(signKey!); + + print("${commandType!.typeValue}-authCodeData:$authCodeData"); + + // 把KeyID、authUserID、时间戳、公钥通过md5加密之后就是authCode + var authCode = crypto.md5.convert(authCodeData); + + subData.add(authCode.bytes.length); + subData.addAll(authCode.bytes); + } + + data.add(subData.length); + data.addAll(subData); + + if ((data.length % 16) != 0) { + int add = (16 - data.length % 16); + for (int i = 0; i < add; i++) { + data.add(0); + } + } + print("${commandType!.typeName} SM4Data:$data"); + // 拿到数据之后通过LockId进行SM4 ECB加密 key:544d485f633335373034383064613864 + ebcData = SM4.encrypt(data, key: privateKey, mode: SM4CryptoMode.ECB); + return ebcData; + } +} + +class SenderAddFingerprintWithTimeCycleCoercionReply extends Reply { + SenderAddFingerprintWithTimeCycleCoercionReply.parseData(CommandType commandType, List dataDetail) + : super.parseData(commandType, dataDetail) { + data = dataDetail; + } +} + +class SenderAddFingerprintProcessReply extends Reply { + SenderAddFingerprintProcessReply.parseData(CommandType commandType, List dataDetail) + : super.parseData(commandType, dataDetail) { + data = dataDetail; + } +} + +class SenderAddFingerprintConfirmationReply extends Reply { + SenderAddFingerprintConfirmationReply.parseData(CommandType commandType, List dataDetail) + : super.parseData(commandType, dataDetail) { + data = dataDetail; + } +} \ No newline at end of file diff --git a/star_lock/lib/blue/io_protocol/io_addICCard.dart b/star_lock/lib/blue/io_protocol/io_addICCard.dart index 0f29d6c5..263bf40a 100644 --- a/star_lock/lib/blue/io_protocol/io_addICCard.dart +++ b/star_lock/lib/blue/io_protocol/io_addICCard.dart @@ -24,7 +24,7 @@ class SenderAddICCardCommand extends SenderProtocol { int? startTime; int? endTime; int? needAuthor; - List? publicKey; + List? signKey; List? privateKey; SenderAddICCardCommand({ @@ -36,7 +36,7 @@ class SenderAddICCardCommand extends SenderProtocol { this.startTime, this.endTime, this.needAuthor, - this.publicKey, + this.signKey, this.privateKey, }) : super(CommandType.generalExtendedCommond); @@ -46,6 +46,8 @@ class SenderAddICCardCommand extends SenderProtocol { List subData = []; List ebcData = []; + print("pwdNopwdNopwdNopwdNo:$cardNo"); + // 指令类型 int type = commandType!.typeValue; double typeDouble = type / 256; @@ -95,17 +97,16 @@ class SenderAddICCardCommand extends SenderProtocol { subData.add(0); } else { List authCodeData = []; + //KeyID + authCodeData.addAll(utf8.encode(keyID!)); //authUserID authCodeData.addAll(utf8.encode(userID!)); - //KeyID - authCodeData.addAll(utf8.encode(keyID!)); - //token 4 首次请求 Token 填 0,如果锁需要鉴权操作者身份,则会分配动态口令并在应答消息中返回,二次请求时带上。 authCodeData.addAll(token!); - authCodeData.addAll(publicKey!); + authCodeData.addAll(signKey!); print("${commandType!.typeValue}-authCodeData:$authCodeData"); diff --git a/star_lock/lib/blue/io_protocol/io_addICCardWithTimeCycleCoercion.dart b/star_lock/lib/blue/io_protocol/io_addICCardWithTimeCycleCoercion.dart new file mode 100644 index 00000000..8f45a470 --- /dev/null +++ b/star_lock/lib/blue/io_protocol/io_addICCardWithTimeCycleCoercion.dart @@ -0,0 +1,178 @@ + +import 'dart:convert'; + +import '../io_tool/io_tool.dart'; +import '../sm4Encipher/sm4.dart'; +import '../io_reply.dart'; +import '../io_sender.dart'; +import '../io_type.dart'; +import 'package:crypto/crypto.dart' as crypto; + +///TODO:添加指纹 +/* +备注: +删除单个指纹规则:UseCountLimit 设置为 0。删除全部指纹规则: UseCountLimit 设置为 0,FingerNo 设置为 255,userId 设置为“Delete All !@#”,只有门锁管理员才有权限 +**/ +class SenderAddICCardWithTimeCycleCoercionCommand extends SenderProtocol { + + String? keyID; + String? userID; + int? cardNo; + int? useCountLimit; + int? isForce; + List? token; + int? isRound; + int? weekRound; + int? startDate; + int? endDate; + int? startTime; + int? endTime; + int? needAuthor; + List? signKey; + List? privateKey; + + SenderAddICCardWithTimeCycleCoercionCommand({ + this.keyID, + this.userID, + this.cardNo, + this.useCountLimit, + this.isForce, + this.token, + this.isRound, + this.weekRound, + this.startDate, + this.endDate, + this.startTime, + this.endTime, + this.needAuthor, + this.signKey, + this.privateKey, + }) : super(CommandType.generalExtendedCommond); + + @override + List messageDetail() { + List data = []; + List subData = []; + List ebcData = []; + + print("cardNocardNocardNocardNo:$cardNo"); + + // 指令类型 + int type = commandType!.typeValue; + double typeDouble = type / 256; + int type1 = typeDouble.toInt(); + int type2 = type % 256; + data.add(type1); + data.add(type2); + + // 子命令类型 + data.add(24); + + // keyID 40 + int keyIDLength = utf8.encode(keyID!).length; + // print("${commandType!.typeValue}LockIDLength:$lockIDLength utf8.encode(lockID!)${utf8.encode(lockID!)}"); + subData.addAll(utf8.encode(keyID!)); + subData = getFixedLengthList(subData, 40 - keyIDLength); + + //userID 20 + int userIDLength = utf8.encode(userID!).length; + // print("${commandType!.typeValue}IDLength:$authUserIDLength utf8.encode(authUserID!)${utf8.encode(authUserID!)}"); + subData.addAll(utf8.encode(userID!)); + subData = getFixedLengthList(subData, 20 - userIDLength); + + // fingerNo + subData.add(cardNo!); + + // UseCountLimit + subData.add(useCountLimit!); + + // isForce + subData.add(isForce!); + + // token + subData.addAll(token!); + + // isRound + subData.add(isRound!); + + // weekRound + subData.add(weekRound!); + + // startDate 4 + subData.add((startDate! & 0xff000000) >> 24); + subData.add((startDate! & 0xff0000) >> 16); + subData.add((startDate! & 0xff00) >> 8); + subData.add((startDate! & 0xff)); + + // endDate 4 + subData.add((endDate! & 0xff000000) >> 24); + subData.add((endDate! & 0xff0000) >> 16); + subData.add((endDate! & 0xff00) >> 8); + subData.add((endDate! & 0xff)); + + // startTime 4 + subData.add((startTime! & 0xff000000) >> 24); + subData.add((startTime! & 0xff0000) >> 16); + subData.add((startTime! & 0xff00) >> 8); + subData.add((startTime! & 0xff)); + + // endTime 4 + subData.add((endTime! & 0xff000000) >> 24); + subData.add((endTime! & 0xff0000) >> 16); + subData.add((endTime! & 0xff00) >> 8); + subData.add((endTime! & 0xff)); + + if(needAuthor == 0){ + //AuthCodeLen 1 + subData.add(0); + } else { + List authCodeData = []; + //KeyID + authCodeData.addAll(utf8.encode(keyID!)); + + //authUserID + authCodeData.addAll(utf8.encode(userID!)); + + //token 4 首次请求 Token 填 0,如果锁需要鉴权操作者身份,则会分配动态口令并在应答消息中返回,二次请求时带上。 + authCodeData.addAll(token!); + + authCodeData.addAll(signKey!); + + print("${commandType!.typeValue}-authCodeData:$authCodeData"); + + // 把KeyID、authUserID、时间戳、公钥通过md5加密之后就是authCode + var authCode = crypto.md5.convert(authCodeData); + + subData.add(authCode.bytes.length); + subData.addAll(authCode.bytes); + } + + data.add(subData.length); + data.addAll(subData); + + if ((data.length % 16) != 0) { + int add = (16 - data.length % 16); + for (int i = 0; i < add; i++) { + data.add(0); + } + } + print("${commandType!.typeName} SM4Data:$data"); + // 拿到数据之后通过LockId进行SM4 ECB加密 key:544d485f633335373034383064613864 + ebcData = SM4.encrypt(data, key: privateKey, mode: SM4CryptoMode.ECB); + return ebcData; + } +} + +class SenderAddICCardWithTimeCycleCoercionReply extends Reply { + SenderAddICCardWithTimeCycleCoercionReply.parseData(CommandType commandType, List dataDetail) + : super.parseData(commandType, dataDetail) { + data = dataDetail; + } +} + +class SenderAddICCardConfirmationReply extends Reply { + SenderAddICCardConfirmationReply.parseData(CommandType commandType, List dataDetail) + : super.parseData(commandType, dataDetail) { + data = dataDetail; + } +} diff --git a/star_lock/lib/blue/io_protocol/io_senderCustomPasswords.dart b/star_lock/lib/blue/io_protocol/io_senderCustomPasswords.dart index a2e4ae25..85cf3bb8 100644 --- a/star_lock/lib/blue/io_protocol/io_senderCustomPasswords.dart +++ b/star_lock/lib/blue/io_protocol/io_senderCustomPasswords.dart @@ -46,7 +46,7 @@ class SenderCustomPasswordsCommand extends SenderProtocol { List subData = []; List ebcData = []; - // print("pwdNopwdNopwdNopwdNo:$pwdNo"); + print("pwdNopwdNopwdNopwdNo:$pwdNo"); // 指令类型 int type = commandType!.typeValue; diff --git a/star_lock/lib/blue/reciver_data.dart b/star_lock/lib/blue/reciver_data.dart index 58a28bcb..ee4f0b30 100644 --- a/star_lock/lib/blue/reciver_data.dart +++ b/star_lock/lib/blue/reciver_data.dart @@ -20,8 +20,10 @@ import 'package:star_lock/blue/io_protocol/io_timing.dart'; import 'package:star_lock/blue/io_protocol/io_transferPermissions.dart'; import '../tools/storage.dart'; -import 'io_protocol/io_addFingerprint.dart'; -import 'io_protocol/io_addICCard.dart'; +// import 'io_protocol/io_addFingerprint.dart'; +import 'io_protocol/io_addFingerprintWithTimeCycleCoercion.dart'; +// import 'io_protocol/io_addICCard.dart'; +import 'io_protocol/io_addICCardWithTimeCycleCoercion.dart'; import 'io_protocol/io_addStressFingerprint.dart'; import 'io_protocol/io_addStressICCard.dart'; import 'io_protocol/io_addStressPassword.dart'; @@ -225,12 +227,12 @@ class CommandReciverManager { commandType, data); } break; - case 21: - { - // 注册卡片开始 - reply = SenderAddICCardReply.parseData(commandType, data); - } - break; + // case 21: + // { + // // 注册卡片开始 + // reply = SenderAddICCardReply.parseData(commandType, data); + // } + // break; case 22: { // 注册卡片确认 @@ -238,6 +240,13 @@ class CommandReciverManager { commandType, data); } break; + case 24: + { + // 注册卡片开始 + reply = SenderAddICCardWithTimeCycleCoercionReply.parseData( + commandType, data); + } + break; case 30: { // 查询指纹状态 @@ -245,13 +254,13 @@ class CommandReciverManager { commandType, data); } break; - case 31: - { - // 注册指纹开始 - reply = - SenderAddFingerprintReply.parseData(commandType, data); - } - break; + // case 31: + // { + // // 注册指纹开始 + // reply = + // SenderAddFingerprintReply.parseData(commandType, data); + // } + // break; case 32: { // 注册指纹确认 @@ -266,6 +275,13 @@ class CommandReciverManager { commandType, data); } break; + case 36: + { + // 注册指纹开始(带限时、循环、胁迫...) + reply = SenderAddFingerprintWithTimeCycleCoercionReply.parseData( + commandType, data); + } + break; case 40: { // 事件查询记录 diff --git a/star_lock/lib/blue/sender_manage.dart b/star_lock/lib/blue/sender_manage.dart index 4793a2eb..a4b7b299 100644 --- a/star_lock/lib/blue/sender_manage.dart +++ b/star_lock/lib/blue/sender_manage.dart @@ -8,6 +8,8 @@ import 'package:star_lock/blue/io_protocol/io_queryingFaceStatus.dart'; import 'package:star_lock/blue/io_protocol/io_readAdminPassword.dart'; import 'io_protocol/io_addFingerprint.dart'; +import 'io_protocol/io_addFingerprintWithTimeCycleCoercion.dart'; +import 'io_protocol/io_addICCardWithTimeCycleCoercion.dart'; import 'io_protocol/io_addStressFingerprint.dart'; import 'io_protocol/io_addStressPassword.dart'; import 'io_protocol/io_addUser.dart'; @@ -338,7 +340,7 @@ class IoSenderManage { required int? startTime, required int? endTime, required int? needAuthor, - required List? publicKey, + required List? signKey, required List? privateKey, CommandSendCallBack? callBack}) { CommandSenderManager().managerSendData( @@ -351,7 +353,47 @@ class IoSenderManage { startTime: startTime, endTime: endTime, needAuthor: needAuthor, - publicKey: publicKey, + signKey: signKey, + privateKey: privateKey, + ), + callBack: callBack); + } + + //todo:添加指纹开始(带限时、循环、胁迫...) + static void senderAddFingerprintWithTimeCycleCoercionCommand( + { + required String? keyID, + required String? userID, + required int? fingerNo, + required int? useCountLimit, + required int? isForce, + required List? token, + required int? isRound, + required int? weekRound, + required int? startDate, + required int? endDate, + required int? startTime, + required int? endTime, + required int? needAuthor, + required List? signKey, + required List? privateKey, + CommandSendCallBack? callBack}) { + CommandSenderManager().managerSendData( + command: SenderAddFingerprintWithTimeCycleCoercionCommand( + keyID: keyID, + userID: userID, + fingerNo: fingerNo, + useCountLimit: useCountLimit, + isForce: isForce, + token: token, + isRound: isRound, + weekRound: weekRound, + startDate: startDate, + endDate: endDate, + startTime: startTime, + endTime: endTime, + needAuthor: needAuthor, + signKey: signKey, privateKey: privateKey, ), callBack: callBack); @@ -367,7 +409,7 @@ class IoSenderManage { required int? startTime, required int? endTime, required int? needAuthor, - required List? publicKey, + required List? signKey, required List? privateKey, CommandSendCallBack? callBack}) { CommandSenderManager().managerSendData( @@ -380,7 +422,47 @@ class IoSenderManage { startTime: startTime, endTime: endTime, needAuthor: needAuthor, - publicKey: publicKey, + signKey: signKey, + privateKey: privateKey, + ), + callBack: callBack); + } + + //todo:添加卡开始(带限时、循环、胁迫...) + static void senderAddCardWithTimeCycleCoercionCommand( + { + required String? keyID, + required String? userID, + required int? cardNo, + required int? useCountLimit, + required int? isForce, + required List? token, + required int? isRound, + required int? weekRound, + required int? startDate, + required int? endDate, + required int? startTime, + required int? endTime, + required int? needAuthor, + required List? signKey, + required List? privateKey, + CommandSendCallBack? callBack}) { + CommandSenderManager().managerSendData( + command: SenderAddICCardWithTimeCycleCoercionCommand( + keyID: keyID, + userID: userID, + cardNo: cardNo, + useCountLimit: useCountLimit, + isForce: isForce, + token: token, + isRound: isRound, + weekRound: weekRound, + startDate: startDate, + endDate: endDate, + startTime: startTime, + endTime: endTime, + needAuthor: needAuthor, + signKey: signKey, privateKey: privateKey, ), callBack: callBack); diff --git a/star_lock/lib/login/register/starLock_register_page.dart b/star_lock/lib/login/register/starLock_register_page.dart index 0ec3760b..0ae71ad3 100644 --- a/star_lock/lib/login/register/starLock_register_page.dart +++ b/star_lock/lib/login/register/starLock_register_page.dart @@ -23,9 +23,6 @@ class _StarLockRegisterPageState extends State { final logic = Get.put(StarLockRegisterLogic()); final state = Get.find().state; - // late Timer _timer; - // final int _seconds = 60; - @override Widget build(BuildContext context) { return Scaffold( diff --git a/star_lock/lib/main/lockDetail/card/addCardType/addCardType_logic.dart b/star_lock/lib/main/lockDetail/card/addCardType/addCardType_logic.dart index e9565ee4..fd757e91 100644 --- a/star_lock/lib/main/lockDetail/card/addCardType/addCardType_logic.dart +++ b/star_lock/lib/main/lockDetail/card/addCardType/addCardType_logic.dart @@ -75,6 +75,7 @@ class AddCardTypeLogic extends BaseGetXController{ "isAdministrator": state.isAdministrator.value == false ? "1" : "2", // 1:不是管理员 2:是管理员 "effectiveTime": startTime, "failureTime": endTime, + "selectType": state.selectType.value, }); } diff --git a/star_lock/lib/main/lockDetail/card/addICCard/addICCard_logic.dart b/star_lock/lib/main/lockDetail/card/addICCard/addICCard_logic.dart index 9184520c..9e453930 100644 --- a/star_lock/lib/main/lockDetail/card/addICCard/addICCard_logic.dart +++ b/star_lock/lib/main/lockDetail/card/addICCard/addICCard_logic.dart @@ -1,15 +1,13 @@ import 'dart:async'; -// import 'package:flutter_reactive_ble/flutter_reactive_ble.dart'; import 'package:flutter_blue_plus/flutter_blue_plus.dart'; import 'package:get/get.dart'; import 'package:star_lock/blue/io_type.dart'; import 'package:star_lock/tools/baseGetXController.dart'; -import 'package:star_lock/tools/dateTool.dart'; import '../../../../blue/blue_manage.dart'; -import '../../../../blue/io_protocol/io_addICCard.dart'; +import '../../../../blue/io_protocol/io_addICCardWithTimeCycleCoercion.dart'; import '../../../../blue/io_protocol/io_addStressICCard.dart'; import '../../../../blue/io_reply.dart'; import '../../../../blue/io_tool/io_tool.dart'; @@ -28,7 +26,7 @@ class AddICCardLogic extends BaseGetXController{ void _initReplySubscription() { _replySubscription = EventBusManager().eventBus!.on().listen((reply) async { // 添加IC卡开始 - if(reply is SenderAddICCardReply) { + if(reply is SenderAddICCardWithTimeCycleCoercionReply) { _replyAddICCardBegin(reply); } @@ -59,22 +57,25 @@ class AddICCardLogic extends BaseGetXController{ var privateKey = await Storage.getStringList(saveBluePrivateKey); List getPrivateKeyList = changeStringListToIntList(privateKey!); - var publicKey = await Storage.getStringList(saveBluePublicKey); - List publicKeyDataList = changeStringListToIntList(publicKey!); + var signKey = await Storage.getStringList(saveBlueSignKey); + List signKeyDataList = changeStringListToIntList(signKey!); + + // var publicKey = await Storage.getStringList(saveBluePublicKey); + // List publicKeyDataList = changeStringListToIntList(publicKey!); var token = reply.data.sublist(5, 9); var saveStrList = changeIntListToStringList(token); Storage.setStringList(saveBlueToken, saveStrList); - IoSenderManage.senderAddFingerprintCommand( + IoSenderManage.senderAddICCardCommand( keyID:"1", userID:await Storage.getUid(), - fingerNo:1, + cardNo:state.isAdministrator.value == "2" ? 254 : 1, useCountLimit:0xff, startTime:int.parse(state.startDate.value)~/1000, endTime:int.parse(state.endDate.value)~/1000, needAuthor:1, - publicKey:publicKeyDataList, + signKey:signKeyDataList, privateKey:getPrivateKeyList, token: token, ); @@ -166,6 +167,7 @@ class AddICCardLogic extends BaseGetXController{ var saveStrList = changeIntListToStringList(token); Storage.setStringList(saveBlueToken, saveStrList); + Get.log("state.isAdministrator.value:${state.isAdministrator.value}"); IoSenderManage.senderAddStressICCardCommand( keyID:"1", userID:await Storage.getUid(), @@ -206,8 +208,19 @@ class AddICCardLogic extends BaseGetXController{ BlueManage().bludSendData(BlueManage().connectDeviceName, (BluetoothConnectionState deviceConnectionState) async { if (deviceConnectionState == BluetoothConnectionState.connected){ cancelBlueConnetctToastTimer(); - var publicKey = await Storage.getStringList(saveBluePublicKey); - List publicKeyDataList = changeStringListToIntList(publicKey!); + // var publicKey = await Storage.getStringList(saveBluePublicKey); + // List publicKeyDataList = changeStringListToIntList(publicKey!); + + var weekStr = "00000000"; + for (var day in state.weekDay.value) { + int index = day % 7; // 将周日的索引转换为 0 + weekStr = '${weekStr.substring(0, index)}1${weekStr.substring(index + 1)}'; + } + // print("weekStrweekStrweekStr:$weekStr"); + int weekRound = int.parse(weekStr, radix: 2); + + var signKey = await Storage.getStringList(saveBlueSignKey); + List signKeyDataList = changeStringListToIntList(signKey!); var privateKey = await Storage.getStringList(saveBluePrivateKey); List getPrivateKeyList = changeStringListToIntList(privateKey!); @@ -215,18 +228,37 @@ class AddICCardLogic extends BaseGetXController{ var token = await Storage.getStringList(saveBlueToken); List getTokenList = changeStringListToIntList(token!); - IoSenderManage.senderAddICCardCommand( + Get.log("state.isAdministrator.value:${state.isAdministrator.value}"); + IoSenderManage.senderAddFingerprintWithTimeCycleCoercionCommand( keyID:"1", userID:await Storage.getUid(), - cardNo:state.isAdministrator.value == "2" ? 254 : 1, + fingerNo:state.isAdministrator.value == "2" ? 254 : 1, useCountLimit:0xff, - startTime:int.parse(state.startDate.value)~/1000, - endTime:int.parse(state.endDate.value)~/1000, + isForce:state.isCoerced.value == "1" ? 0 : 1, // 是否是胁迫 + isRound:state.selectType.value == "2" ? 1: 0, // 是否是循环 + weekRound:weekRound, // 周循环 + startDate: int.parse(state.startDate.value)~/1000, + endDate: int.parse(state.endDate.value)~/1000, + startTime:int.parse(state.effectiveDateTime.value)~/1000, + endTime:int.parse(state.failureDateTime.value)~/1000, needAuthor:1, - publicKey:publicKeyDataList, + signKey:signKeyDataList, privateKey:getPrivateKeyList, token: getTokenList, ); + + // IoSenderManage.senderAddICCardCommand( + // keyID:"1", + // userID:await Storage.getUid(), + // cardNo:state.isAdministrator.value == "2" ? 254 : 1, + // useCountLimit:0xff, + // startTime:int.parse(state.startDate.value)~/1000, + // endTime:int.parse(state.endDate.value)~/1000, + // needAuthor:1, + // signKey:signKeyDataList, + // privateKey:getPrivateKeyList, + // token: getTokenList, + // ); } else if (deviceConnectionState == BluetoothConnectionState.disconnected){ if(state.ifCurrentScreen.value == true){ showBlueConnetctToast(); diff --git a/star_lock/lib/main/lockDetail/card/addICCard/addICCard_page.dart b/star_lock/lib/main/lockDetail/card/addICCard/addICCard_page.dart index ad89008e..eeeebcf8 100644 --- a/star_lock/lib/main/lockDetail/card/addICCard/addICCard_page.dart +++ b/star_lock/lib/main/lockDetail/card/addICCard/addICCard_page.dart @@ -27,8 +27,7 @@ class _AddICCardPageState extends State with RouteAware { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, appBar: TitleAppBar( - barTitle: - "${TranslationLoader.lanKeys!.add!.tr}${TranslationLoader.lanKeys!.card!.tr}", + barTitle: "${TranslationLoader.lanKeys!.add!.tr}${TranslationLoader.lanKeys!.card!.tr}", haveBack: true, backgroundColor: AppColors.mainColor, ), diff --git a/star_lock/lib/main/lockDetail/card/addICCard/addICCard_state.dart b/star_lock/lib/main/lockDetail/card/addICCard/addICCard_state.dart index 8d96a6a9..674352bd 100644 --- a/star_lock/lib/main/lockDetail/card/addICCard/addICCard_state.dart +++ b/star_lock/lib/main/lockDetail/card/addICCard/addICCard_state.dart @@ -19,6 +19,7 @@ class AddICCardState{ final fromType = 0.obs; final effectiveDateTime = "".obs;// 生效时间 final failureDateTime = "".obs;// 失效时间 + final selectType = "0".obs;// 0永久 1显示 2循环 AddICCardState() { Map map = Get.arguments; @@ -37,5 +38,6 @@ class AddICCardState{ fromType.value = map["fromType"]; effectiveDateTime.value = map["effectiveTime"]; failureDateTime.value = map["failureTime"]; + selectType.value = map["selectType"]; } } \ No newline at end of file diff --git a/star_lock/lib/main/lockDetail/card/cardDetail/cardDetail_logic.dart b/star_lock/lib/main/lockDetail/card/cardDetail/cardDetail_logic.dart index 5d3e6486..f9835179 100644 --- a/star_lock/lib/main/lockDetail/card/cardDetail/cardDetail_logic.dart +++ b/star_lock/lib/main/lockDetail/card/cardDetail/cardDetail_logic.dart @@ -51,6 +51,9 @@ class CardDetailLogic extends BaseGetXController{ var privateKey = await Storage.getStringList(saveBluePrivateKey); List getPrivateKeyList = changeStringListToIntList(privateKey!); + var signKey = await Storage.getStringList(saveBlueSignKey); + List signKeyDataList = changeStringListToIntList(signKey!); + var publicKey = await Storage.getStringList(saveBluePublicKey); List publicKeyDataList = changeStringListToIntList(publicKey!); @@ -66,7 +69,7 @@ class CardDetailLogic extends BaseGetXController{ startTime:int.parse(state.starDate.value), endTime:int.parse(state.endDate.value), needAuthor:1, - publicKey:publicKeyDataList, + signKey:signKeyDataList, privateKey:getPrivateKeyList, token: getTokenList, ); @@ -100,8 +103,11 @@ class CardDetailLogic extends BaseGetXController{ }); BlueManage().bludSendData(BlueManage().connectDeviceName, (BluetoothConnectionState deviceConnectionState) async { if (deviceConnectionState == BluetoothConnectionState.connected){ - var publicKey = await Storage.getStringList(saveBluePublicKey); - List publicKeyDataList = changeStringListToIntList(publicKey!); + // var publicKey = await Storage.getStringList(saveBluePublicKey); + // List publicKeyDataList = changeStringListToIntList(publicKey!); + + var signKey = await Storage.getStringList(saveBlueSignKey); + List signKeyDataList = changeStringListToIntList(signKey!); var privateKey = await Storage.getStringList(saveBluePrivateKey); List getPrivateKeyList = changeStringListToIntList(privateKey!); @@ -118,7 +124,7 @@ class CardDetailLogic extends BaseGetXController{ startTime:int.parse(state.starDate.value), endTime:int.parse(state.endDate.value), needAuthor:1, - publicKey:publicKeyDataList, + signKey:signKeyDataList, privateKey:getPrivateKeyList, token: getTokenList, ); diff --git a/star_lock/lib/main/lockDetail/card/cardList/cardList_logic.dart b/star_lock/lib/main/lockDetail/card/cardList/cardList_logic.dart index ce16e1b5..8c2ed4c6 100644 --- a/star_lock/lib/main/lockDetail/card/cardList/cardList_logic.dart +++ b/star_lock/lib/main/lockDetail/card/cardList/cardList_logic.dart @@ -62,8 +62,11 @@ class CardListLogic extends BaseGetXController { var privateKey = await Storage.getStringList(saveBluePrivateKey); List getPrivateKeyList = changeStringListToIntList(privateKey!); - var publicKey = await Storage.getStringList(saveBluePublicKey); - List publicKeyDataList = changeStringListToIntList(publicKey!); + var signKey = await Storage.getStringList(saveBlueSignKey); + List signKeyDataList = changeStringListToIntList(signKey!); + + // var publicKey = await Storage.getStringList(saveBluePublicKey); + // List publicKeyDataList = changeStringListToIntList(publicKey!); var token = await Storage.getStringList(saveBlueToken); List getTokenList = changeStringListToIntList(token!); @@ -76,7 +79,7 @@ class CardListLogic extends BaseGetXController { startTime:0x11223344, endTime:0x11223344, needAuthor:1, - publicKey:publicKeyDataList, + signKey:signKeyDataList, privateKey:getPrivateKeyList, token: getTokenList, ); @@ -258,8 +261,11 @@ class CardListLogic extends BaseGetXController { }); BlueManage().bludSendData(BlueManage().connectDeviceName, (BluetoothConnectionState deviceConnectionState) async { if (deviceConnectionState == BluetoothConnectionState.connected){ - var publicKey = await Storage.getStringList(saveBluePublicKey); - List publicKeyDataList = changeStringListToIntList(publicKey!); + // var publicKey = await Storage.getStringList(saveBluePublicKey); + // List publicKeyDataList = changeStringListToIntList(publicKey!); + + var signKey = await Storage.getStringList(saveBlueSignKey); + List signKeyDataList = changeStringListToIntList(signKey!); var privateKey = await Storage.getStringList(saveBluePrivateKey); List getPrivateKeyList = changeStringListToIntList(privateKey!); @@ -275,7 +281,7 @@ class CardListLogic extends BaseGetXController { startTime:0x11223344, endTime:0x11223344, needAuthor:1, - publicKey:publicKeyDataList, + signKey:signKeyDataList, privateKey:getPrivateKeyList, token: getTokenList, ); diff --git a/star_lock/lib/main/lockDetail/card/cardList/cardList_page.dart b/star_lock/lib/main/lockDetail/card/cardList/cardList_page.dart index caa348fc..0bc935ab 100644 --- a/star_lock/lib/main/lockDetail/card/cardList/cardList_page.dart +++ b/star_lock/lib/main/lockDetail/card/cardList/cardList_page.dart @@ -100,8 +100,7 @@ class _CardListPageState extends State with RouteAware { SizedBox(height: 20.h), Expanded(child: _buildMainUI()), AddBottomWhiteBtn( - btnName: - '${TranslationLoader.lanKeys!.add!.tr}${TranslationLoader.lanKeys!.card!.tr}', + btnName: '${TranslationLoader.lanKeys!.add!.tr}${TranslationLoader.lanKeys!.card!.tr}', onClick: () async { var data = await Get.toNamed(Routers.addCardTypeManagePage, arguments: { "lockId": state.lockId.value, @@ -179,8 +178,7 @@ class _CardListPageState extends State with RouteAware { ) : NoData(noDataHeight: 1.sh - ScreenUtil().statusBarHeight - ScreenUtil().bottomBarHeight - 190.h - 64.h)); } - Widget _keyItem(String lockTypeIcon, String lockTypeTitle, String ifInvalidation, String showTime, - Function() action) { + Widget _keyItem(String lockTypeIcon, String lockTypeTitle, String ifInvalidation, String showTime, Function() action) { return GestureDetector( onTap: action, child: Container( diff --git a/star_lock/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/sendElectronicKey_logic.dart b/star_lock/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/sendElectronicKey_logic.dart index 099d362d..9fa6e0f4 100644 --- a/star_lock/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/sendElectronicKey_logic.dart +++ b/star_lock/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/sendElectronicKey_logic.dart @@ -116,9 +116,9 @@ class SendElectronicKeyLogic extends BaseGetXController { //用户未注册 state.isCreateUser.value = true; if (isPhoneNumber(state.emailOrPhoneController.text) == true) { - _showPhoneDialog(Get.context, '${entity.errorMsg}'); + _showEmailDialog(); } else { - _showEmailDialog(Get.context); + _showEmailDialog(); } } } @@ -137,51 +137,51 @@ class SendElectronicKeyLogic extends BaseGetXController { return emailRegExp.hasMatch(input); } - //用户未注册确认弹窗 - void _showPhoneDialog(widgetContext, String errMsg) { - showCupertinoDialog( - context: widgetContext, - builder: (context) { - return CupertinoAlertDialog( - title: Text('接收者号码未注册,请重新发送'.tr), - actions: [ - CupertinoDialogAction( - child: Text( - TranslationLoader.lanKeys!.cancel!.tr, - style: TextStyle(color: AppColors.mainColor), - ), - onPressed: () { - Get.back(); - }, - ), - CupertinoDialogAction( - child: Text( - TranslationLoader.lanKeys!.sure!.tr, - style: TextStyle(color: AppColors.mainColor), - ), - onPressed: () async { - //选择国家代码 - Get.back(); - - // var result = await Get.toNamed(Routers.selectCountryRegionPage); - // if (result != null) { - // result as Map; - // state.countryCode.value = result['code']; - // state.countryName.value = result['countryName']; - // } - sendElectronicKeyRequest(); - }, - ), - ], - ); - }, - ); - } + // //用户未注册确认弹窗 + // void _showPhoneDialog(widgetContext, String errMsg) { + // showCupertinoDialog( + // context: widgetContext, + // builder: (context) { + // return CupertinoAlertDialog( + // title: Text('接收者号码未注册,请重新发送'.tr), + // actions: [ + // CupertinoDialogAction( + // child: Text( + // TranslationLoader.lanKeys!.cancel!.tr, + // style: TextStyle(color: AppColors.mainColor), + // ), + // onPressed: () { + // Get.back(); + // }, + // ), + // CupertinoDialogAction( + // child: Text( + // TranslationLoader.lanKeys!.sure!.tr, + // style: TextStyle(color: AppColors.mainColor), + // ), + // onPressed: () async { + // //选择国家代码 + // Get.back(); + // + // // var result = await Get.toNamed(Routers.selectCountryRegionPage); + // // if (result != null) { + // // result as Map; + // // state.countryCode.value = result['code']; + // // state.countryName.value = result['countryName']; + // // } + // sendElectronicKeyRequest(); + // }, + // ), + // ], + // ); + // }, + // ); + // } //用户未注册确认弹窗---邮箱 - void _showEmailDialog(widgetContext) { + void _showEmailDialog() { showCupertinoDialog( - context: widgetContext, + context: Get.context!, builder: (context) { return CupertinoAlertDialog( title: Text('${"是否发送电子钥匙给未注册账号".tr}\n${state.emailOrPhoneController.text}'), diff --git a/star_lock/lib/main/lockDetail/fingerprint/addFingerprint/addFingerprint_logic.dart b/star_lock/lib/main/lockDetail/fingerprint/addFingerprint/addFingerprint_logic.dart index 6a9856ff..3bcf8af0 100644 --- a/star_lock/lib/main/lockDetail/fingerprint/addFingerprint/addFingerprint_logic.dart +++ b/star_lock/lib/main/lockDetail/fingerprint/addFingerprint/addFingerprint_logic.dart @@ -7,7 +7,7 @@ import 'package:get/get.dart'; import 'package:star_lock/blue/io_type.dart'; import '../../../../../blue/blue_manage.dart'; -import '../../../../../blue/io_protocol/io_addFingerprint.dart'; +// import '../../../../../blue/io_protocol/io_addFingerprint.dart'; import '../../../../../blue/io_protocol/io_addStressFingerprint.dart'; import '../../../../../blue/io_reply.dart'; import '../../../../../blue/io_tool/io_tool.dart'; @@ -17,6 +17,7 @@ import '../../../../../network/api_repository.dart'; import '../../../../../tools/baseGetXController.dart'; import '../../../../../tools/eventBusEventManage.dart'; import '../../../../../tools/storage.dart'; +import '../../../../blue/io_protocol/io_addFingerprintWithTimeCycleCoercion.dart'; import 'addFingerprint_state.dart'; class AddFingerprintLogic extends BaseGetXController { @@ -27,7 +28,7 @@ class AddFingerprintLogic extends BaseGetXController { void _initReplySubscription() { _replySubscription = EventBusManager().eventBus!.on().listen((reply) async { // 添加指纹开始 - if(reply is SenderAddFingerprintReply) { + if(reply is SenderAddFingerprintWithTimeCycleCoercionReply) { _replyAddFingerprintBegin(reply); } @@ -69,22 +70,39 @@ class AddFingerprintLogic extends BaseGetXController { var privateKey = await Storage.getStringList(saveBluePrivateKey); List getPrivateKeyList = changeStringListToIntList(privateKey!); - var publicKey = await Storage.getStringList(saveBluePublicKey); - List publicKeyDataList = changeStringListToIntList(publicKey!); + // var publicKey = await Storage.getStringList(saveBluePublicKey); + // List publicKeyDataList = changeStringListToIntList(publicKey!); + + var signKey = await Storage.getStringList(saveBlueSignKey); + List signKeyDataList = changeStringListToIntList(signKey!); var token = reply.data.sublist(5, 9); + print("tokentokentokentoken:$token"); var saveStrList = changeIntListToStringList(token); Storage.setStringList(saveBlueToken, saveStrList); - IoSenderManage.senderAddFingerprintCommand( + var weekStr = "00000000"; + for (var day in state.weekDay.value) { + int index = day % 7; // 将周日的索引转换为 0 + weekStr = '${weekStr.substring(0, index)}1${weekStr.substring(index + 1)}'; + } + // print("weekStrweekStrweekStr:$weekStr"); + int weekRound = int.parse(weekStr, radix: 2); + + IoSenderManage.senderAddFingerprintWithTimeCycleCoercionCommand( keyID:"1", userID:await Storage.getUid(), fingerNo:state.isAdministrator.value == "2" ? 254 : 1, useCountLimit:0xff, - startTime:int.parse(state.startDate.value)~/1000, - endTime:int.parse(state.endDate.value)~/1000, + isForce:state.isCoerced.value == "1" ? 1 : 0, // 是否是胁迫 + isRound:state.selectType.value == "2" ? 1: 0, // 是否是循环 + weekRound:weekRound, // 周循环 + startDate: int.parse(state.startDate.value)~/1000, + endDate: int.parse(state.endDate.value)~/1000, + startTime:int.parse(state.effectiveDateTime.value)~/1000, + endTime:int.parse(state.failureDateTime.value)~/1000, needAuthor:1, - publicKey:publicKeyDataList, + signKey:signKeyDataList, privateKey:getPrivateKeyList, token: token, ); @@ -164,13 +182,13 @@ class AddFingerprintLogic extends BaseGetXController { }else{ state.fingerprintNumber.value = (reply.data[6]).toString(); } - if(state.isCoerced.value == "1"){ + // if(state.isCoerced.value == "1"){ // 非胁迫指纹 addFingerprintsData(); - }else{ - // 如果是胁迫指纹在 添加完之后以后再调用添加胁迫指纹的 - senderAddStressFingerprint(); - } + // }else{ + // // 如果是胁迫指纹在 添加完之后以后再调用添加胁迫指纹的 + // senderAddStressFingerprint(); + // } break; case 0x06: //需要权限 @@ -254,27 +272,41 @@ class AddFingerprintLogic extends BaseGetXController { BlueManage().bludSendData(BlueManage().connectDeviceName, (BluetoothConnectionState deviceConnectionState) async { if (deviceConnectionState == BluetoothConnectionState.connected){ cancelBlueConnetctToastTimer(); - var publicKey = await Storage.getStringList(saveBluePublicKey); - List publicKeyDataList = changeStringListToIntList(publicKey!); + // var publicKey = await Storage.getStringList(saveBluePublicKey); + // List publicKeyDataList = changeStringListToIntList(publicKey!); + + var weekStr = "00000000"; + for (var day in state.weekDay.value) { + int index = day % 7; // 将周日的索引转换为 0 + weekStr = '${weekStr.substring(0, index)}1${weekStr.substring(index + 1)}'; + } + // print("weekStrweekStrweekStr:$weekStr"); + int weekRound = int.parse(weekStr, radix: 2); var privateKey = await Storage.getStringList(saveBluePrivateKey); List getPrivateKeyList = changeStringListToIntList(privateKey!); + var signKey = await Storage.getStringList(saveBlueSignKey); + List signKeyDataList = changeStringListToIntList(signKey!); + var token = await Storage.getStringList(saveBlueToken); List getTokenList = changeStringListToIntList(token!); Get.log("state.isAdministrator.value:${state.isAdministrator.value}"); - IoSenderManage.senderAddFingerprintCommand( + IoSenderManage.senderAddFingerprintWithTimeCycleCoercionCommand( keyID:"1", userID:await Storage.getUid(), fingerNo:state.isAdministrator.value == "2" ? 254 : 1, useCountLimit:0xff, - // startTime:0x11223344, - // endTime:0x11223344, - startTime:int.parse(state.startDate.value)~/1000, - endTime:int.parse(state.endDate.value)~/1000, + isForce:state.isCoerced.value == "1" ? 0 : 1, // 是否是胁迫 + isRound:state.selectType.value == "2" ? 1: 0, // 是否是循环 + weekRound:weekRound, // 周循环 + startDate: int.parse(state.startDate.value)~/1000, + endDate: int.parse(state.endDate.value)~/1000, + startTime:int.parse(state.effectiveDateTime.value)~/1000, + endTime:int.parse(state.failureDateTime.value)~/1000, needAuthor:1, - publicKey:publicKeyDataList, + signKey:signKeyDataList, privateKey:getPrivateKeyList, token: getTokenList, ); @@ -286,6 +318,45 @@ class AddFingerprintLogic extends BaseGetXController { Get.close(1); } }); + + // BlueManage().bludSendData(BlueManage().connectDeviceName, (BluetoothConnectionState deviceConnectionState) async { + // if (deviceConnectionState == BluetoothConnectionState.connected){ + // cancelBlueConnetctToastTimer(); + // // var publicKey = await Storage.getStringList(saveBluePublicKey); + // // List publicKeyDataList = changeStringListToIntList(publicKey!); + // + // var privateKey = await Storage.getStringList(saveBluePrivateKey); + // List getPrivateKeyList = changeStringListToIntList(privateKey!); + // + // var signKey = await Storage.getStringList(saveBlueSignKey); + // List signKeyDataList = changeStringListToIntList(signKey!); + // + // var token = await Storage.getStringList(saveBlueToken); + // List getTokenList = changeStringListToIntList(token!); + // + // Get.log("state.isAdministrator.value:${state.isAdministrator.value}"); + // IoSenderManage.senderAddFingerprintCommand( + // keyID:"1", + // userID:await Storage.getUid(), + // fingerNo:state.isAdministrator.value == "2" ? 254 : 1, + // useCountLimit:0xff, + // // startTime:0x11223344, + // // endTime:0x11223344, + // startTime:int.parse(state.startDate.value)~/1000, + // endTime:int.parse(state.endDate.value)~/1000, + // needAuthor:1, + // signKey:signKeyDataList, + // privateKey:getPrivateKeyList, + // token: getTokenList, + // ); + // }else if (deviceConnectionState == BluetoothConnectionState.disconnected){ + // if(state.ifCurrentScreen.value == true){ + // showBlueConnetctToast(); + // } + // cancelBlueConnetctToastTimer(); + // Get.close(1); + // } + // }); } // 添加胁迫指纹 diff --git a/star_lock/lib/main/lockDetail/fingerprint/addFingerprint/addFingerprint_state.dart b/star_lock/lib/main/lockDetail/fingerprint/addFingerprint/addFingerprint_state.dart index c8682e21..e3b439d9 100644 --- a/star_lock/lib/main/lockDetail/fingerprint/addFingerprint/addFingerprint_state.dart +++ b/star_lock/lib/main/lockDetail/fingerprint/addFingerprint/addFingerprint_state.dart @@ -22,6 +22,7 @@ class AddFingerprintState{ final fromType = 1.obs; final effectiveDateTime = "".obs;// 生效时间 final failureDateTime = "".obs;// 失效时间 + final selectType = "0".obs;// 0永久 1显示 2循环 AddFingerprintState() { Map map = Get.arguments; @@ -40,5 +41,6 @@ class AddFingerprintState{ fromType.value = map["fromType"]; effectiveDateTime.value = map["effectiveTime"]; failureDateTime.value = map["failureTime"]; + selectType.value = map["selectType"]; } } \ No newline at end of file diff --git a/star_lock/lib/main/lockDetail/fingerprint/addFingerprintSelectType/addFingerprintType_logic.dart b/star_lock/lib/main/lockDetail/fingerprint/addFingerprintSelectType/addFingerprintType_logic.dart index 54c72c43..fbd1415d 100644 --- a/star_lock/lib/main/lockDetail/fingerprint/addFingerprintSelectType/addFingerprintType_logic.dart +++ b/star_lock/lib/main/lockDetail/fingerprint/addFingerprintSelectType/addFingerprintType_logic.dart @@ -77,6 +77,7 @@ class AddFingerprintTypeLogic extends BaseGetXController{ "isAdministrator": state.isAdministrator.value == false ? "1" : "2", // 1:不是管理员 2:是管理员 "effectiveTime": startTime, "failureTime": endTime, + "selectType": state.selectType.value, }); } diff --git a/star_lock/lib/main/lockDetail/fingerprint/fingerprintDetail/fingerprintDetail_logic.dart b/star_lock/lib/main/lockDetail/fingerprint/fingerprintDetail/fingerprintDetail_logic.dart index 868324c9..2670bc61 100644 --- a/star_lock/lib/main/lockDetail/fingerprint/fingerprintDetail/fingerprintDetail_logic.dart +++ b/star_lock/lib/main/lockDetail/fingerprint/fingerprintDetail/fingerprintDetail_logic.dart @@ -52,8 +52,11 @@ class FingerprintDetailLogic extends BaseGetXController{ var privateKey = await Storage.getStringList(saveBluePrivateKey); List getPrivateKeyList = changeStringListToIntList(privateKey!); - var publicKey = await Storage.getStringList(saveBluePublicKey); - List publicKeyDataList = changeStringListToIntList(publicKey!); + var signKey = await Storage.getStringList(saveBlueSignKey); + List signKeyDataList = changeStringListToIntList(signKey!); + + // var publicKey = await Storage.getStringList(saveBluePublicKey); + // List publicKeyDataList = changeStringListToIntList(publicKey!); var token = await Storage.getStringList(saveBlueToken); List getTokenList = changeStringListToIntList(token!); @@ -67,7 +70,7 @@ class FingerprintDetailLogic extends BaseGetXController{ startTime:int.parse(state.starDate.value), endTime:int.parse(state.endDate.value), needAuthor:1, - publicKey:publicKeyDataList, + signKey:signKeyDataList, privateKey:getPrivateKeyList, token: getTokenList, ); @@ -101,8 +104,11 @@ class FingerprintDetailLogic extends BaseGetXController{ }); BlueManage().bludSendData(BlueManage().connectDeviceName, (BluetoothConnectionState deviceConnectionState) async { if (deviceConnectionState == BluetoothConnectionState.connected){ - var publicKey = await Storage.getStringList(saveBluePublicKey); - List publicKeyDataList = changeStringListToIntList(publicKey!); + // var publicKey = await Storage.getStringList(saveBluePublicKey); + // List publicKeyDataList = changeStringListToIntList(publicKey!); + + var signKey = await Storage.getStringList(saveBlueSignKey); + List signKeyDataList = changeStringListToIntList(signKey!); var privateKey = await Storage.getStringList(saveBluePrivateKey); List getPrivateKeyList = changeStringListToIntList(privateKey!); @@ -120,7 +126,7 @@ class FingerprintDetailLogic extends BaseGetXController{ startTime:int.parse(state.starDate.value), endTime:int.parse(state.endDate.value), needAuthor:1, - publicKey:publicKeyDataList, + signKey:signKeyDataList, privateKey:getPrivateKeyList, token: getTokenList, ); diff --git a/star_lock/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintList_logic.dart b/star_lock/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintList_logic.dart index c7cc0ac7..3fc55022 100644 --- a/star_lock/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintList_logic.dart +++ b/star_lock/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintList_logic.dart @@ -64,8 +64,11 @@ class FingerprintListLogic extends BaseGetXController{ var privateKey = await Storage.getStringList(saveBluePrivateKey); List getPrivateKeyList = changeStringListToIntList(privateKey!); - var publicKey = await Storage.getStringList(saveBluePublicKey); - List publicKeyDataList = changeStringListToIntList(publicKey!); + var signKey = await Storage.getStringList(saveBlueSignKey); + List signKeyDataList = changeStringListToIntList(signKey!); + + // var publicKey = await Storage.getStringList(saveBluePublicKey); + // List publicKeyDataList = changeStringListToIntList(publicKey!); var token = await Storage.getStringList(saveBlueToken); List getTokenList = changeStringListToIntList(token!); @@ -78,7 +81,7 @@ class FingerprintListLogic extends BaseGetXController{ startTime:0x11223344, endTime:0x11223344, needAuthor:1, - publicKey:publicKeyDataList, + signKey:signKeyDataList, privateKey:getPrivateKeyList, token: getTokenList, ); @@ -299,8 +302,11 @@ class FingerprintListLogic extends BaseGetXController{ }); BlueManage().bludSendData(BlueManage().connectDeviceName, (BluetoothConnectionState deviceConnectionState) async { if (deviceConnectionState == BluetoothConnectionState.connected){ - var publicKey = await Storage.getStringList(saveBluePublicKey); - List publicKeyDataList = changeStringListToIntList(publicKey!); + // var publicKey = await Storage.getStringList(saveBluePublicKey); + // List publicKeyDataList = changeStringListToIntList(publicKey!); + + var signKey = await Storage.getStringList(saveBlueSignKey); + List signKeyDataList = changeStringListToIntList(signKey!); var privateKey = await Storage.getStringList(saveBluePrivateKey); List getPrivateKeyList = changeStringListToIntList(privateKey!); @@ -316,7 +322,7 @@ class FingerprintListLogic extends BaseGetXController{ startTime:0x11223344, endTime:0x11223344, needAuthor:1, - publicKey:publicKeyDataList, + signKey:signKeyDataList, privateKey:getPrivateKeyList, token: getTokenList, ); diff --git a/star_lock/lib/main/lockDetail/iris/irisDetail/irisDetail_logic.dart b/star_lock/lib/main/lockDetail/iris/irisDetail/irisDetail_logic.dart index 39408697..9e28a0d0 100644 --- a/star_lock/lib/main/lockDetail/iris/irisDetail/irisDetail_logic.dart +++ b/star_lock/lib/main/lockDetail/iris/irisDetail/irisDetail_logic.dart @@ -52,8 +52,11 @@ class IrisDetailLogic extends BaseGetXController { var privateKey = await Storage.getStringList(saveBluePrivateKey); List getPrivateKeyList = changeStringListToIntList(privateKey!); - var publicKey = await Storage.getStringList(saveBluePublicKey); - List publicKeyDataList = changeStringListToIntList(publicKey!); + var signKey = await Storage.getStringList(saveBlueSignKey); + List signKeyDataList = changeStringListToIntList(signKey!); + + // var publicKey = await Storage.getStringList(saveBluePublicKey); + // List publicKeyDataList = changeStringListToIntList(publicKey!); var token = await Storage.getStringList(saveBlueToken); List getTokenList = changeStringListToIntList(token!); @@ -67,7 +70,7 @@ class IrisDetailLogic extends BaseGetXController { startTime: int.parse(state.starDate.value), endTime: int.parse(state.endDate.value), needAuthor: 1, - publicKey: publicKeyDataList, + signKey: signKeyDataList, privateKey: getPrivateKeyList, token: getTokenList, ); @@ -105,8 +108,11 @@ class IrisDetailLogic extends BaseGetXController { BlueManage().bludSendData(BlueManage().connectDeviceName, (BluetoothConnectionState deviceConnectionState) async { if (deviceConnectionState == BluetoothConnectionState.connected) { - var publicKey = await Storage.getStringList(saveBluePublicKey); - List publicKeyDataList = changeStringListToIntList(publicKey!); + // var publicKey = await Storage.getStringList(saveBluePublicKey); + // List publicKeyDataList = changeStringListToIntList(publicKey!); + + var signKey = await Storage.getStringList(saveBlueSignKey); + List signKeyDataList = changeStringListToIntList(signKey!); var privateKey = await Storage.getStringList(saveBluePrivateKey); List getPrivateKeyList = changeStringListToIntList(privateKey!); @@ -124,7 +130,7 @@ class IrisDetailLogic extends BaseGetXController { startTime: int.parse(state.starDate.value), endTime: int.parse(state.endDate.value), needAuthor: 1, - publicKey: publicKeyDataList, + signKey: signKeyDataList, privateKey: getPrivateKeyList, token: getTokenList, ); diff --git a/star_lock/lib/main/lockDetail/lockSet/configuringWifi/configuringWifi/configuringWifi_logic.dart b/star_lock/lib/main/lockDetail/lockSet/configuringWifi/configuringWifi/configuringWifi_logic.dart index 72f7d2ec..5658730e 100644 --- a/star_lock/lib/main/lockDetail/lockSet/configuringWifi/configuringWifi/configuringWifi_logic.dart +++ b/star_lock/lib/main/lockDetail/lockSet/configuringWifi/configuringWifi/configuringWifi_logic.dart @@ -4,6 +4,7 @@ import 'dart:io'; // import 'package:flutter_reactive_ble/flutter_reactive_ble.dart'; import 'package:flutter_blue_plus/flutter_blue_plus.dart'; +import 'package:get/get.dart'; import 'package:network_info_plus/network_info_plus.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:star_lock/tools/baseGetXController.dart'; @@ -68,7 +69,9 @@ class ConfiguringWifiLogic extends BaseGetXController{ state.sureBtnState.value = 0; cancelBlueConnetctToastTimer(); dismissEasyLoading(); - showToast("配网成功"); + showToast("配网成功", something:(){ + Get.close(2); + }); break; case 0x06: //无权限 diff --git a/star_lock/lib/main/lockDetail/lockSet/lockSet/lockSet_logic.dart b/star_lock/lib/main/lockDetail/lockSet/lockSet/lockSet_logic.dart index 3aa3d470..4053c42b 100644 --- a/star_lock/lib/main/lockDetail/lockSet/lockSet/lockSet_logic.dart +++ b/star_lock/lib/main/lockDetail/lockSet/lockSet/lockSet_logic.dart @@ -1,15 +1,12 @@ + import 'dart:async'; -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; import 'package:flutter/scheduler.dart'; import 'package:flutter_blue_plus/flutter_blue_plus.dart'; -import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:star_lock/blue/io_type.dart'; import 'package:star_lock/tools/showTipView.dart'; -import '../../../../appRouters.dart'; import '../../../../blue/blue_manage.dart'; import '../../../../blue/io_protocol/io_factoryDataReset.dart'; import '../../../../blue/io_protocol/io_setSupportFunctionsNoParameters.dart'; @@ -20,9 +17,7 @@ import '../../../../blue/sender_manage.dart'; import '../../../../network/api_repository.dart'; import '../../../../tools/baseGetXController.dart'; import '../../../../tools/eventBusEventManage.dart'; -import '../../../../tools/showTFView.dart'; import '../../../../tools/storage.dart'; -import '../../../../translations/trans_lib.dart'; import 'checkingInInfoData_entity.dart'; import 'lockSetInfo_entity.dart'; import 'lockSet_state.dart'; diff --git a/star_lock/lib/main/lockDetail/palm/palmDetail/palmDetail_logic.dart b/star_lock/lib/main/lockDetail/palm/palmDetail/palmDetail_logic.dart index d8858d24..f13998b1 100644 --- a/star_lock/lib/main/lockDetail/palm/palmDetail/palmDetail_logic.dart +++ b/star_lock/lib/main/lockDetail/palm/palmDetail/palmDetail_logic.dart @@ -51,8 +51,11 @@ class PalmDetailLogic extends BaseGetXController { var privateKey = await Storage.getStringList(saveBluePrivateKey); List getPrivateKeyList = changeStringListToIntList(privateKey!); - var publicKey = await Storage.getStringList(saveBluePublicKey); - List publicKeyDataList = changeStringListToIntList(publicKey!); + var signKey = await Storage.getStringList(saveBlueSignKey); + List signKeyDataList = changeStringListToIntList(signKey!); + + // var publicKey = await Storage.getStringList(saveBluePublicKey); + // List publicKeyDataList = changeStringListToIntList(publicKey!); var token = await Storage.getStringList(saveBlueToken); List getTokenList = changeStringListToIntList(token!); @@ -66,7 +69,7 @@ class PalmDetailLogic extends BaseGetXController { startTime: int.parse(state.starDate.value), endTime: int.parse(state.endDate.value), needAuthor: 1, - publicKey: publicKeyDataList, + signKey: signKeyDataList, privateKey: getPrivateKeyList, token: getTokenList, ); @@ -104,8 +107,11 @@ class PalmDetailLogic extends BaseGetXController { BlueManage().bludSendData(BlueManage().connectDeviceName, (BluetoothConnectionState deviceConnectionState) async { if (deviceConnectionState == BluetoothConnectionState.connected) { - var publicKey = await Storage.getStringList(saveBluePublicKey); - List publicKeyDataList = changeStringListToIntList(publicKey!); + // var publicKey = await Storage.getStringList(saveBluePublicKey); + // List publicKeyDataList = changeStringListToIntList(publicKey!); + + var signKey = await Storage.getStringList(saveBlueSignKey); + List signKeyDataList = changeStringListToIntList(signKey!); var privateKey = await Storage.getStringList(saveBluePrivateKey); List getPrivateKeyList = changeStringListToIntList(privateKey!); @@ -123,7 +129,7 @@ class PalmDetailLogic extends BaseGetXController { startTime: int.parse(state.starDate.value), endTime: int.parse(state.endDate.value), needAuthor: 1, - publicKey: publicKeyDataList, + signKey: signKeyDataList, privateKey: getPrivateKeyList, token: getTokenList, ); diff --git a/star_lock/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_logic.dart b/star_lock/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_logic.dart index 5cc56fcb..ec5d6d0e 100644 --- a/star_lock/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_logic.dart +++ b/star_lock/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_logic.dart @@ -308,7 +308,7 @@ class PasswordKeyPerpetualLogic extends BaseGetXController { var token = await Storage.getStringList(saveBlueToken); List getTokenList = changeStringListToIntList(token!); - // Get.log("state.isAdministrator.value:${state.isAdministrator.value}"); + Get.log("state.isAdministrator.value:${state.isAdministrator.value}"); IoSenderManage.senderCustomPasswordsCommand( keyID: "1", userID: await Storage.getUid(), diff --git a/star_lock/lib/mine/addLock/saveLock/saveLock_logic.dart b/star_lock/lib/mine/addLock/saveLock/saveLock_logic.dart index df3fb9d1..3763ce37 100644 --- a/star_lock/lib/mine/addLock/saveLock/saveLock_logic.dart +++ b/star_lock/lib/mine/addLock/saveLock/saveLock_logic.dart @@ -1,10 +1,10 @@ + import 'dart:async'; import 'dart:math'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_blue_plus/flutter_blue_plus.dart'; -// import 'package:flutter_reactive_ble/flutter_reactive_ble.dart'; import 'package:get/get.dart'; import 'package:star_lock/blue/io_protocol/io_changeAdministratorPassword.dart'; import 'package:star_lock/blue/io_protocol/io_senderCustomPasswords.dart'; @@ -48,21 +48,18 @@ class SaveLockLogic extends BaseGetXController { // 添加用户 Future _replyAddUserKey(Reply reply) async { var lockId = reply.data.sublist(2, 42); - // print("lockId:$lockId"); var token = reply.data.sublist(42, 46); List strTokenList = changeIntListToStringList(token); Storage.setStringList(saveBlueToken, strTokenList); - // print("token:$token"); int status = reply.data[46]; - // print("status:$status reply.data:${reply.data}"); - print("status:$status"); + Get.log("status:$status"); switch (status) { case 0x00: //成功 - print("添加用户数据解析成功"); + Get.log("添加用户数据解析成功"); state.lockUserNo = reply.data[47]; cancelBlueConnetctToastTimer(); @@ -70,7 +67,7 @@ class SaveLockLogic extends BaseGetXController { break; case 0x06: //无权限 - print("需要鉴权"); + Get.log("需要鉴权"); var privateKey = await Storage.getStringList(saveBluePrivateKey); List getPrivateKeyList = changeStringListToIntList(privateKey!); @@ -95,17 +92,17 @@ class SaveLockLogic extends BaseGetXController { break; case 0x07: //无权限 - print("用户无权限"); + Get.log("用户无权限"); dismissEasyLoading(); break; case 0x09: // 权限校验错误 - print("添加用户权限校验错误"); + Get.log("添加用户权限校验错误"); dismissEasyLoading(); break; default: //失败 - print("领锁失败"); + Get.log("领锁失败"); dismissEasyLoading(); break; } @@ -115,22 +112,21 @@ class SaveLockLogic extends BaseGetXController { Future _replySenderCustomPasswords(Reply reply) async { var token = reply.data.sublist(5, 9); var saveStrList = changeIntListToStringList(token); - print("_replyFactoryDataResetKeyToken:$token"); Storage.setStringList(saveBlueToken, saveStrList); int status = reply.data[2]; - print("status:$status"); + Get.log("status:$status"); switch (status) { case 0x00: - //成功 - print("${reply.commandType!.typeValue} 数据解析成功"); + //成功 + Get.log("${reply.commandType!.typeValue} 数据解析成功"); dismissEasyLoading(); addLockAdminPassword(true); break; case 0x06: - //无权限 - print("${reply.commandType!.typeValue} 需要鉴权"); + //无权限 + Get.log("${reply.commandType!.typeValue} 需要鉴权"); var privateKey = await Storage.getStringList(saveBluePrivateKey); List getPrivateKeyList = changeStringListToIntList(privateKey!); @@ -151,19 +147,16 @@ class SaveLockLogic extends BaseGetXController { token: token); break; case 0x07: - //无权限 - print("${reply.commandType!.typeValue} 用户无权限"); - + //无权限 + Get.log("${reply.commandType!.typeValue} 用户无权限"); break; case 0x09: - // 权限校验错误 - print("${reply.commandType!.typeValue} 权限校验错误"); - + // 权限校验错误 + Get.log("${reply.commandType!.typeValue} 权限校验错误"); break; default: - //失败 - print("${reply.commandType!.typeValue} 失败"); - + //失败 + Get.log("${reply.commandType!.typeValue} 失败"); break; } } @@ -172,22 +165,21 @@ class SaveLockLogic extends BaseGetXController { Future _replyChangeAdministratorPassword(Reply reply) async { var token = reply.data.sublist(5, 9); var saveStrList = changeIntListToStringList(token); - print("_replyFactoryDataResetKeyToken:$token"); Storage.setStringList(saveBlueToken, saveStrList); int status = reply.data[2]; - print("status:$status"); + Get.log("status:$status"); switch (status) { case 0x00: - //成功 - print("${reply.commandType!.typeValue} 数据解析成功"); + //成功 + Get.log("${reply.commandType!.typeValue} 数据解析成功"); cancelBlueConnetctToastTimer(); addLockAdminPassword(false); break; case 0x06: - //无权限 - print("${reply.commandType!.typeValue} 需要鉴权"); + //无权限 + Get.log("${reply.commandType!.typeValue} 需要鉴权"); var signKey = await Storage.getStringList(saveBlueSignKey); List signKeyDataList = changeStringListToIntList(signKey!); @@ -209,26 +201,22 @@ class SaveLockLogic extends BaseGetXController { token: token); break; case 0x07: - //无权限 - print("${reply.commandType!.typeValue} 用户无权限"); - + // 无权限 + Get.log("${reply.commandType!.typeValue} 用户无权限"); break; case 0x09: - // 权限校验错误 - print("${reply.commandType!.typeValue} 权限校验错误"); - + // 权限校验错误 + Get.log("${reply.commandType!.typeValue} 权限校验错误"); break; default: - //失败 - print("${reply.commandType!.typeValue} 失败"); - + // 失败 + Get.log("${reply.commandType!.typeValue} 失败"); break; } } // 添加用户 Future addUserConnectBlue() async { - // print("111111"); // 进来之后首先连接 showEasyLoading(); showBlueConnetctToastTimer(action: (){ @@ -236,9 +224,7 @@ class SaveLockLogic extends BaseGetXController { state.saveBtnIsUsable.value = true; }); BlueManage().bludSendData(BlueManage().connectDeviceName, (BluetoothConnectionState deviceConnectionState) async { - // print("222222"); if (deviceConnectionState == BluetoothConnectionState.connected){ - // print("333333"); // 私钥 var privateKey = await Storage.getStringList(saveBluePrivateKey); List getPrivateKeyList = changeStringListToIntList(privateKey!); @@ -269,7 +255,6 @@ class SaveLockLogic extends BaseGetXController { token: getTokenList ); } else if (deviceConnectionState == BluetoothConnectionState.disconnected) { - print("444444"); dismissEasyLoading(); cancelBlueConnetctToastTimer(); state.saveBtnIsUsable.value = true; @@ -296,7 +281,6 @@ class SaveLockLogic extends BaseGetXController { var token = await Storage.getStringList(saveBlueToken); List getTokenList = changeStringListToIntList(token!); - print("openDoorTokenPubToken:$getTokenList"); IoSenderManage.senderCustomPasswordsCommand( keyID: "1", @@ -330,7 +314,7 @@ class SaveLockLogic extends BaseGetXController { var token = await Storage.getStringList(saveBlueToken); List getTokenList = changeStringListToIntList(token!); - print("openDoorTokenPubToken:$getTokenList"); + Get.log("openDoorTokenPubToken:$getTokenList"); IoSenderManage.changeAdministratorPasswordCommand( keyID: "1", @@ -345,7 +329,6 @@ class SaveLockLogic extends BaseGetXController { privateKey: getPrivateKeyList, token: getTokenList); } else if (deviceConnectionState == BluetoothConnectionState.disconnected) { - print("444444"); dismissEasyLoading(); cancelBlueConnetctToastTimer(); state.saveBtnIsUsable.value = true; @@ -357,7 +340,6 @@ class SaveLockLogic extends BaseGetXController { } void bindBlueAdmin() async{ - // print("state.lockInfo:${state.lockInfo}"); var positionMap = {}; positionMap['longitude'] = state.addressInfo["longitude"]; @@ -385,8 +367,6 @@ class SaveLockLogic extends BaseGetXController { List signKeyDataList = changeStringListToIntList(signKey!); bluetooth['signKey'] = signKeyDataList; - // print("addUser:publicKeyDataList$publicKeyDataList getPrivateKeyList:$getPrivateKeyList signKeyDataList:$signKeyDataList"); - var entity = await ApiRepository.to.bindingBlueAdmin( lockAlias: state.aliName.value, position: positionMap, @@ -468,7 +448,6 @@ class SaveLockLogic extends BaseGetXController { void onReady() { // TODO: implement onReady super.onReady(); - print("onReady()"); _initReplySubscription(); } @@ -477,7 +456,7 @@ class SaveLockLogic extends BaseGetXController { void onInit() { // TODO: implement onInit super.onInit(); - print("onInit()"); + } @override @@ -487,4 +466,5 @@ class SaveLockLogic extends BaseGetXController { BlueManage().stopScan(); super.onClose(); } + } diff --git a/star_lock/lib/mine/mineSet/lockUserManage/expireLockList/expireCard/expireCard_logic.dart b/star_lock/lib/mine/mineSet/lockUserManage/expireLockList/expireCard/expireCard_logic.dart index b12c31f6..f7201750 100644 --- a/star_lock/lib/mine/mineSet/lockUserManage/expireLockList/expireCard/expireCard_logic.dart +++ b/star_lock/lib/mine/mineSet/lockUserManage/expireLockList/expireCard/expireCard_logic.dart @@ -52,8 +52,11 @@ class ExpireCardLogic extends BaseGetXController { var privateKey = await Storage.getStringList(saveBluePrivateKey); List getPrivateKeyList = changeStringListToIntList(privateKey!); - var publicKey = await Storage.getStringList(saveBluePublicKey); - List publicKeyDataList = changeStringListToIntList(publicKey!); + var signKey = await Storage.getStringList(saveBlueSignKey); + List signKeyDataList = changeStringListToIntList(signKey!); + + // var publicKey = await Storage.getStringList(saveBluePublicKey); + // List publicKeyDataList = changeStringListToIntList(publicKey!); var token = await Storage.getStringList(saveBlueToken); List getTokenList = changeStringListToIntList(token!); @@ -67,7 +70,7 @@ class ExpireCardLogic extends BaseGetXController { startTime:state.deletExpireCardItemEntity.startDate!~/1000, endTime:state.deletExpireCardItemEntity.endDate!~/1000, needAuthor:1, - publicKey:publicKeyDataList, + signKey:signKeyDataList, privateKey:getPrivateKeyList, token: getTokenList, ); @@ -104,8 +107,11 @@ class ExpireCardLogic extends BaseGetXController { }); BlueManage().bludSendData(state.deletExpireCardItemEntity.lockInfo!.btDeviceName!, (BluetoothConnectionState deviceConnectionState) async { if (deviceConnectionState == BluetoothConnectionState.connected){ - var publicKey = await Storage.getStringList(saveBluePublicKey); - List publicKeyDataList = changeStringListToIntList(publicKey!); + // var publicKey = await Storage.getStringList(saveBluePublicKey); + // List publicKeyDataList = changeStringListToIntList(publicKey!); + + var signKey = await Storage.getStringList(saveBlueSignKey); + List signKeyDataList = changeStringListToIntList(signKey!); var privateKey = await Storage.getStringList(saveBluePrivateKey); List getPrivateKeyList = changeStringListToIntList(privateKey!); @@ -123,7 +129,7 @@ class ExpireCardLogic extends BaseGetXController { startTime:state.deletExpireCardItemEntity.startDate!~/1000, endTime:state.deletExpireCardItemEntity.endDate!~/1000, needAuthor:1, - publicKey:publicKeyDataList, + signKey:signKeyDataList, privateKey:getPrivateKeyList, token: getTokenList, ); diff --git a/star_lock/lib/mine/mineSet/lockUserManage/expireLockList/expireFingerprint/expireFingerprint_logic.dart b/star_lock/lib/mine/mineSet/lockUserManage/expireLockList/expireFingerprint/expireFingerprint_logic.dart index 9c951c99..ddc250ef 100644 --- a/star_lock/lib/mine/mineSet/lockUserManage/expireLockList/expireFingerprint/expireFingerprint_logic.dart +++ b/star_lock/lib/mine/mineSet/lockUserManage/expireLockList/expireFingerprint/expireFingerprint_logic.dart @@ -53,6 +53,9 @@ class ExpireFingerprintLogic extends BaseGetXController { var privateKey = await Storage.getStringList(saveBluePrivateKey); List getPrivateKeyList = changeStringListToIntList(privateKey!); + var signKey = await Storage.getStringList(saveBlueSignKey); + List signKeyDataList = changeStringListToIntList(signKey!); + var publicKey = await Storage.getStringList(saveBluePublicKey); List publicKeyDataList = changeStringListToIntList(publicKey!); @@ -68,7 +71,7 @@ class ExpireFingerprintLogic extends BaseGetXController { startTime:state.deletExpireFingerprintItemEntity.startDate!~/1000, endTime:state.deletExpireFingerprintItemEntity.endDate!~/1000, needAuthor:1, - publicKey:publicKeyDataList, + signKey:signKeyDataList, privateKey:getPrivateKeyList, token: getTokenList, ); @@ -105,8 +108,11 @@ class ExpireFingerprintLogic extends BaseGetXController { }); BlueManage().bludSendData(state.deletExpireFingerprintItemEntity.lockInfo!.btDeviceName!, (BluetoothConnectionState deviceConnectionState) async { if (deviceConnectionState == BluetoothConnectionState.connected){ - var publicKey = await Storage.getStringList(saveBluePublicKey); - List publicKeyDataList = changeStringListToIntList(publicKey!); + // var publicKey = await Storage.getStringList(saveBluePublicKey); + // List publicKeyDataList = changeStringListToIntList(publicKey!); + + var signKey = await Storage.getStringList(saveBlueSignKey); + List signKeyDataList = changeStringListToIntList(signKey!); var privateKey = await Storage.getStringList(saveBluePrivateKey); List getPrivateKeyList = changeStringListToIntList(privateKey!); @@ -124,7 +130,7 @@ class ExpireFingerprintLogic extends BaseGetXController { startTime:state.deletExpireFingerprintItemEntity.startDate!~/1000, endTime:state.deletExpireFingerprintItemEntity.endDate!~/1000, needAuthor:1, - publicKey:publicKeyDataList, + signKey:signKeyDataList, privateKey:getPrivateKeyList, token: getTokenList, );