Merge branch 'master' of gitee.com:starlock-cn/app-starlock

This commit is contained in:
Daisy 2024-04-20 18:13:21 +08:00
commit 48d6c32afd
21 changed files with 730 additions and 354 deletions

View File

@ -245,9 +245,9 @@ class BlueManage {
// if (scanResult.device.advName.isEmpty) {
// return;
// }
// Get.log("scanResult.device.advName:${scanResult.device.advName}"
// " scanResult.advertisementData.serviceUuids:${scanResult.advertisementData.serviceUuids}"
// " rssi:${scanResult.rssi}");
Get.log("scanResult.device.advName:${scanResult.device.advName}"
" scanResult.advertisementData.serviceUuids:${scanResult.advertisementData.serviceUuids}"
" rssi:${scanResult.rssi}");
if (((scanResult.advertisementData.serviceUuids.isNotEmpty
? scanResult.advertisementData.serviceUuids[0]
: "")
@ -328,6 +328,7 @@ class BlueManage {
//
bool isExistDevice = scanDevices.any((element) => element.device.platformName == connectDeviceName || element.advertisementData.advName == connectDeviceName);
if (isAddEquipment == false && isExistDevice == false) {
// startScan(10, (scanDevices){
startScanSingle(deviceName, 10, (List<ScanResult> scanDevices) {
print("扫描到的设备:$scanDevices");
devicesList = scanDevices;

View File

@ -19,11 +19,16 @@ class SenderAddFaceCommand extends SenderProtocol {
String? userID;
int? faceNo;
int? useCountLimit;
int? isForce;
List<int>? token;
int? startTime;
int? endTime;
int? isRound;
int? weekRound;
int? startDate;
int? endDate;
String? startTime;
String? endTime;
int? needAuthor;
List<int>? publicKey;
List<int>? signKey;
List<int>? privateKey;
SenderAddFaceCommand({
@ -31,11 +36,16 @@ class SenderAddFaceCommand extends SenderProtocol {
this.userID,
this.faceNo,
this.useCountLimit,
this.isForce,
this.token,
this.isRound,
this.weekRound,
this.startDate,
this.endDate,
this.startTime,
this.endTime,
this.needAuthor,
this.publicKey,
this.signKey,
this.privateKey,
}) : super(CommandType.generalExtendedCommond);
@ -53,7 +63,7 @@ class SenderAddFaceCommand extends SenderProtocol {
data.add(type1);
data.add(type2);
// --
//
data.add(81);
// keyID 40
@ -68,43 +78,69 @@ class SenderAddFaceCommand extends SenderProtocol {
subData.addAll(utf8.encode(userID!));
subData = getFixedLengthList(subData, 20 - userIDLength);
// PwdNo
// fingerNo
subData.add(faceNo!);
// 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));
List<int> startTimeList = [0,0,0,0];
if(startTime!.contains(":")){
List<String> getStartTimeList = startTime!.split(":");
startTimeList[2] = int.parse(getStartTimeList[0]);
startTimeList[3] = int.parse(getStartTimeList[1]);
}
subData.addAll(startTimeList);
// endTime 4
subData.add((endTime! & 0xff000000) >> 24);
subData.add((endTime! & 0xff0000) >> 16);
subData.add((endTime! & 0xff00) >> 8);
subData.add((endTime! & 0xff));
List<int> endTimeList = [0,0,0,0];
if(endTime!.contains(":")){
List<String> getendTimeList = endTime!.split(":");
endTimeList[2] = int.parse(getendTimeList[0]);
endTimeList[3] = int.parse(getendTimeList[1]);
}
subData.addAll(endTimeList);
if (needAuthor == 0) {
if(needAuthor == 0){
//AuthCodeLen 1
subData.add(0);
} else {
List<int> 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!);
// KeyIDauthUserIDmd5加密之后就是authCode
var authCode = crypto.md5.convert(authCodeData);

View File

@ -0,0 +1,188 @@
import '../io_sender.dart';
import '../io_type.dart';
///TODO:
/*
UseCountLimit 0 UseCountLimit 0FingerNo 255userId Delete All !@#
**/
// class SenderAddFaceWithTimeCycleCoercionCommand extends SenderProtocol {
//
// String? keyID;
// String? userID;
// int? fingerNo;
// int? useCountLimit;
// int? isForce;
// List<int>? token;
// int? isRound;
// int? weekRound;
// int? startDate;
// int? endDate;
// String? startTime;
// String? endTime;
// int? needAuthor;
// List<int>? signKey;
// List<int>? privateKey;
//
// SenderAddFaceWithTimeCycleCoercionCommand({
// 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<int> messageDetail() {
// List<int> data = [];
// List<int> subData = [];
// List<int> ebcData = [];
//
// //
// 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
// List<int> startTimeList = [0,0,0,0];
// if(startTime!.contains(":")){
// List<String> getStartTimeList = startTime!.split(":");
// startTimeList[2] = int.parse(getStartTimeList[0]);
// startTimeList[3] = int.parse(getStartTimeList[1]);
// }
// subData.addAll(startTimeList);
//
// // endTime 4
// List<int> endTimeList = [0,0,0,0];
// if(endTime!.contains(":")){
// List<String> getendTimeList = endTime!.split(":");
// endTimeList[2] = int.parse(getendTimeList[0]);
// endTimeList[3] = int.parse(getendTimeList[1]);
// }
// subData.addAll(endTimeList);
//
// if(needAuthor == 0){
// //AuthCodeLen 1
// subData.add(0);
// } else {
// List<int> authCodeData = [];
// //KeyID
// authCodeData.addAll(utf8.encode(keyID!));
//
// //authUserID
// authCodeData.addAll(utf8.encode(userID!));
//
// //token 4 Token 0
// authCodeData.addAll(token!);
//
// authCodeData.addAll(signKey!);
//
// // KeyIDauthUserIDmd5加密之后就是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);
// }
// }
//
// Get.log("${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<int> dataDetail)
// : super.parseData(commandType, dataDetail) {
// data = dataDetail;
// int status = data[2];
// errorWithStstus(status);
// }
// }
//
// class SenderAddFingerprintProcessReply extends Reply {
// SenderAddFingerprintProcessReply.parseData(CommandType commandType, List<int> dataDetail)
// : super.parseData(commandType, dataDetail) {
// data = dataDetail;
// int status = data[2];
// errorWithStstus(status);
// }
// }
//
// class SenderAddFingerprintConfirmationReply extends Reply {
// SenderAddFingerprintConfirmationReply.parseData(CommandType commandType, List<int> dataDetail)
// : super.parseData(commandType, dataDetail) {
// data = dataDetail;
// int status = data[2];
// errorWithStstus(status);
// }
// }

View File

@ -469,15 +469,20 @@ class IoSenderManage {
//todo:
static void senderAddFaceCommand(
{required String? keyID,
required String? userID,
required int? faceNo,
required int? useCountLimit,
required List<int>? token,
required int? startTime,
required int? endTime,
required int? needAuthor,
required List<int>? publicKey,
required List<int>? privateKey,
required String? userID,
required int? faceNo,
required int? useCountLimit,
required int? isForce,
required List<int>? token,
required int? isRound,
required int? weekRound,
required int? startDate,
required int? endDate,
required String? startTime,
required String? endTime,
required int? needAuthor,
required List<int>? signKey,
required List<int>? privateKey,
CommandSendCallBack? callBack}) {
CommandSenderManager().managerSendData(
command: SenderAddFaceCommand(
@ -485,11 +490,16 @@ class IoSenderManage {
userID: userID,
faceNo: faceNo,
useCountLimit: useCountLimit,
isForce: isForce,
token: token,
isRound: isRound,
weekRound: weekRound,
startDate: startDate,
endDate: endDate,
startTime: startTime,
endTime: endTime,
needAuthor: needAuthor,
publicKey: publicKey,
signKey: signKey,
privateKey: privateKey,
),
callBack: callBack);

View File

@ -1,12 +1,9 @@
import 'dart:async';
import 'package:flutter/cupertino.dart';
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
import 'package:get/get.dart';
import 'package:star_lock/appRouters.dart';
import 'package:star_lock/blue/io_type.dart';
import 'package:star_lock/tools/dateTool.dart';
import 'package:star_lock/translations/trans_lib.dart';
import '../../../../blue/blue_manage.dart';
import '../../../../blue/io_reply.dart';
@ -33,21 +30,20 @@ class AuthorizedAdminLogic extends BaseGetXController {
if (reply is TransferPermissionsReply) {
var token = reply.data.sublist(2, 6);
var saveStrList = changeIntListToStringList(token);
print("_replyFactoryDataResetKeyToken:$token");
Get.log("_replyFactoryDataResetKeyToken:$token");
Storage.setStringList(saveBlueToken, saveStrList);
int status = reply.data[6];
print("status:$status");
Get.log("status:$status");
switch (status) {
case 0x00:
//
print("${reply.commandType!.typeValue} 数据解析成功");
Get.log("${reply.commandType!.typeValue} 数据解析成功");
break;
case 0x06:
//
print("${reply.commandType!.typeValue} 需要鉴权");
Get.log("${reply.commandType!.typeValue} 需要鉴权");
var privateKey = await Storage.getStringList(saveBluePrivateKey);
List<int> getPrivateKeyList =
changeStringListToIntList(privateKey!);
@ -67,25 +63,7 @@ class AuthorizedAdminLogic extends BaseGetXController {
privateKey: getPrivateKeyList,
token: getTokenList);
break;
case 0x07:
//
print("${reply.commandType!.typeValue} 用户无权限");
break;
case 0x09:
//
print("${reply.commandType!.typeValue} 权限校验错误");
break;
case 0x14:
//
print("${reply.commandType!.typeValue} 用户已存在");
break;
default:
//
print("${reply.commandType!.typeValue} 失败");
break;
}
}
@ -289,7 +267,7 @@ class AuthorizedAdminLogic extends BaseGetXController {
endTime: int.parse(endTime),
isOnlyManageSelf: state.onlyManageYouCreatesUser.value ? 1 : 0);
if (entity.errorCode!.codeIsSuccessful) {
print('发送电子钥匙成功');
Get.log('发送电子钥匙成功');
state.isCreateUser.value = false;
state.isSendSuccess.value = true;
// Toast.show(msg: "添加成功");

View File

@ -33,7 +33,6 @@ class AddICCardState{
isAdministrator.value = map["isAdministrator"];
print("isAdministrator.value isAdministrator.value:${isAdministrator.value}");
startDate.value = map["startDate"];
lockId.value = map["lockId"];
weekDay.value = map["weekDay"];
fromType.value = map["fromType"];
effectiveDateTime.value = map["effectiveTime"];

View File

@ -56,8 +56,9 @@ class CardDetailLogic extends BaseGetXController{
// var publicKey = await Storage.getStringList(saveBluePublicKey);
// List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
var token = await Storage.getStringList(saveBlueToken);
List<int> getTokenList = changeStringListToIntList(token!);
var token = reply.data.sublist(5, 9);
var saveStrList = changeIntListToStringList(token);
Storage.setStringList(saveBlueToken, saveStrList);
IoSenderManage.senderAddCardWithTimeCycleCoercionCommand(
keyID:state.keyId.value.toString(),
@ -74,7 +75,7 @@ class CardDetailLogic extends BaseGetXController{
needAuthor:1,
signKey:signKeyDataList,
privateKey:getPrivateKeyList,
token: getTokenList,
token: token,
);
break;
default:

View File

@ -48,8 +48,8 @@ class ElectronicKeyDetailLogic extends BaseGetXController {
keyType:state.itemData.value.keyType!,
startTime:int.parse(state.starTime.value),
endTime:int.parse(state.endTime.value),
isOnlyManageSelf: state.onlyManageYouCreatesUser.value ? 1 : 0,
remoteEnable: state.isRemoteUnlock.value ? 1 : 2);
isOnlyManageSelf: state.onlyManageYouCreatesUser.value == true ? 1 : 0,
remoteEnable: state.isRemoteUnlock.value == true ? 1 : 2);
if (entity.errorCode!.codeIsSuccessful) {
showToast("修改成功".tr, something: () {
eventBus.fire(ElectronicKeyListRefreshUI());

View File

@ -30,7 +30,7 @@ class ElectronicKeyDetailState {
changeNameController.text = itemData.value.keyName!;
keyName.value = itemData.value.keyName!;
isRemoteUnlock.value = itemData.value.remoteEnable! == 2 ? false : true;
isRemoteUnlock.value = itemData.value.remoteEnable! == 1 ? true : false;
onlyManageYouCreatesUser.value = itemData.value.isOnlyManageSelf! == 0 ? false : true;
starDate.value = itemData.value.startDate!.toString();

View File

@ -1,6 +1,5 @@
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_protocol/io_addFace.dart';
@ -16,6 +15,7 @@ import '../../../../../blue/sender_manage.dart';
import '../../../../../network/api_repository.dart';
import '../../../../../tools/baseGetXController.dart';
import '../../../../../tools/storage.dart';
import '../../../../tools/dateTool.dart';
class AddFaceLogic extends BaseGetXController {
final AddFaceState state = AddFaceState();
@ -44,7 +44,7 @@ class AddFaceLogic extends BaseGetXController {
Future<void> _replyAddFaceBegin(Reply reply) async {
int status = reply.data[2];
print("status:$status");
print("_replyAddFaceBegin status:$status");
switch (status) {
case 0x00:
@ -59,30 +59,42 @@ class AddFaceLogic extends BaseGetXController {
break;
case 0x06:
//
print("${reply.commandType!.typeValue} 需要鉴权");
var weekStr = "00000000";
print("state.weekDay.value:${state.weekDay.value}");
for (var day in state.weekDay.value) {
int index = day % 7; // 0
weekStr = '${weekStr.substring(0, index)}1${weekStr.substring(index + 1)}';
}
// weekStr
weekStr = weekStr.split('').reversed.join('');
int weekRound = int.parse(weekStr, radix: 2);
// print("weekStrweekStrweekStr:$weekStr weekRound:$weekRound");
var signKey = await Storage.getStringList(saveBlueSignKey);
List<int> signKeyDataList = changeStringListToIntList(signKey!);
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(5, 9);
var saveStrList = changeIntListToStringList(token);
print("_replyAddFaceReplyToken:$token");
Storage.setStringList(saveBlueToken, saveStrList);
IoSenderManage.senderAddFaceCommand(
keyID: "1",
userID: await Storage.getUid(),
faceNo: 1,
useCountLimit: 0xff,
// startTime:0x11223344,
// endTime:0x11223344,
startTime: state.startDate.value ~/ 1000,
endTime: state.endDate.value ~/ 1000,
needAuthor: 1,
publicKey: publicKeyDataList,
privateKey: getPrivateKeyList,
keyID:"1",
userID:await Storage.getUid(),
faceNo:state.isAdministrator.value == "2" ? 254 : 1,
useCountLimit:0xff,
isForce:state.isCoerced.value == "2" ? 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:DateTool().dateToHNString(state.effectiveDateTime.value),
endTime:DateTool().dateToHNString(state.failureDateTime.value),
needAuthor:1,
signKey:signKeyDataList,
privateKey:getPrivateKeyList,
token: token,
);
break;
@ -194,8 +206,19 @@ class AddFaceLogic extends BaseGetXController {
(BluetoothConnectionState deviceConnectionState) async {
if (deviceConnectionState == BluetoothConnectionState.connected) {
cancelBlueConnetctToastTimer();
var publicKey = await Storage.getStringList(saveBluePublicKey);
List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
var weekStr = "00000000";
print("state.weekDay.value:${state.weekDay.value}");
for (var day in state.weekDay.value) {
int index = day % 7; // 0
weekStr = '${weekStr.substring(0, index)}1${weekStr.substring(index + 1)}';
}
// weekStr
weekStr = weekStr.split('').reversed.join('');
int weekRound = int.parse(weekStr, radix: 2);
// print("weekStrweekStrweekStr:$weekStr weekRound:$weekRound");
var signKey = await Storage.getStringList(saveBlueSignKey);
List<int> signKeyDataList = changeStringListToIntList(signKey!);
var privateKey = await Storage.getStringList(saveBluePrivateKey);
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
@ -204,21 +227,23 @@ class AddFaceLogic extends BaseGetXController {
List<int> getTokenList = changeStringListToIntList(token!);
print(
"openDoorTokenPubToken:$getTokenList state.startDate.value:${state.startDate.value}");
print(
"限时人脸开始时间:${state.startDate.value ~/ 1000} 限时人脸结束时间:${state.endDate.value ~/ 1000}");
// print("限时人脸开始时间:${state.startDate.value ~/ 1000} 限时人脸结束时间:${state.endDate.value ~/ 1000}");
IoSenderManage.senderAddFaceCommand(
keyID: "1",
userID: await Storage.getUid(),
faceNo: state.isAdministrator.value == true ? 254 : 1,
useCountLimit: 0xff,
// startTime:0x11223344,
// endTime:0x11223344,
startTime: state.startDate.value ~/ 1000,
endTime: state.endDate.value ~/ 1000,
needAuthor: 1,
publicKey: publicKeyDataList,
privateKey: getPrivateKeyList,
keyID:"1",
userID:await Storage.getUid(),
faceNo:state.isAdministrator.value == "2" ? 254 : 1,
useCountLimit:0xff,
isForce:state.isCoerced.value == "2" ? 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:DateTool().dateToHNString(state.effectiveDateTime.value),
endTime:DateTool().dateToHNString(state.failureDateTime.value),
needAuthor:1,
signKey:signKeyDataList,
privateKey:getPrivateKeyList,
token: getTokenList,
);
} else if (deviceConnectionState == BluetoothConnectionState.disconnected) {
@ -238,12 +263,12 @@ class AddFaceLogic extends BaseGetXController {
faceName: state.faceName.value,
faceNumber: state.faceNumber.value,
faceType: state.faceType.value,
startDate: state.startDate.value,
endDate: state.endDate.value,
startDate: int.parse(state.startDate.value),
endDate: int.parse(state.endDate.value),
featureData: state.featureData.value,
addType: state.addType.value,
cyclicConfig: state.cyclicConfig.value,
faceRight: state.isAdministrator.value == true ? 1 : 0,
weekDay: state.weekDay.value,
faceRight: state.isAdministrator.value == "2" ? 1 : 0,
);
if (entity.errorCode!.codeIsSuccessful) {

View File

@ -10,16 +10,22 @@ class AddFaceState {
var faceNumber = "".obs;
final lockId = 0.obs;
final endDate = 0.obs;
final endDate = "".obs;
final addType = "".obs;
final faceName = "".obs;
final faceType = 0.obs;
final startDate = 0.obs;
final cyclicConfig = [].obs;
final fromType = 1.obs;
// final cyclicConfig = [].obs;
final featureData = ''.obs;
final isClickAddFace = false.obs;
final isAdministrator = false.obs;
final isCoerced = "".obs;
final isAdministrator = "".obs;
final startDate = "".obs;
final weekDay = [].obs;
final fromType = 0.obs;
final effectiveDateTime = "".obs;//
final failureDateTime = "".obs;//
final selectType = "0".obs;// 0 1 2
AddFaceState() {
Map map = Get.arguments;
@ -30,8 +36,15 @@ class AddFaceState {
faceType.value = map["faceType"];
startDate.value = map["startDate"];
lockId.value = map["lockId"];
cyclicConfig.value = map["cyclicConfig"];
weekDay.value = map["cyclicConfig"];
fromType.value = map["fromType"];
isAdministrator.value = map["isAdministrator"];
print("isAdministrator.value isAdministrator.value:${isAdministrator.value}");
startDate.value = map["startDate"];
// weekDay.value = map["weekDay"];
fromType.value = map["fromType"];
effectiveDateTime.value = map["effectiveTime"];
failureDateTime.value = map["failureTime"];
selectType.value = map["selectType"];
}
}

View File

@ -52,28 +52,27 @@ class AddFaceTypeLogic extends BaseGetXController {
showToast("请选择有效期".tr);
return;
}
startDate =
DateTool().dateToTimestamp(state.beginTime.value, 1).toString();
startDate = DateTool().dateToTimestamp(state.beginTime.value, 1).toString();
endDate = DateTool().dateToTimestamp(state.endTime.value, 1).toString();
startTime = DateTool()
.dateToTimestamp(state.effectiveDateTime.value, 0)
.toString();
endTime =
DateTool().dateToTimestamp(state.failureDateTime.value, 0).toString();
startTime = DateTool().dateToTimestamp(state.effectiveDateTime.value, 0).toString();
endTime = DateTool().dateToTimestamp(state.failureDateTime.value, 0).toString();
faceType = 4;
}
//
Get.toNamed(Routers.addFacePage, arguments: {
"lockId": state.lockId.value,
"endDate": int.parse(endDate),
"endDate": endDate,
"addType": "1",
"faceName": state.nameController.text,
"faceNumber": "123456",
"faceType": faceType,
"startDate": int.parse(startDate),
"startDate": startDate,
"cyclicConfig": state.weekdaysList.value,
"fromType": state.fromType.value,
"isAdministrator": state.isAdministrator.value,
"isAdministrator": state.isAdministrator.value == false ? "1" : "2",
"effectiveTime": startTime,
"failureTime": endTime,
"selectType": state.selectType.value,
});
}

View File

@ -121,7 +121,7 @@ class _AddFaceTypePageState extends State<AddFaceTypePage> {
String titleStr, String rightTitle, TextEditingController controller) {
return Column(
children: [
Container(height: 10.h),
// Container(height: 10.h),
CommonItem(
leftTitel: titleStr,
rightTitle: "",
@ -172,8 +172,7 @@ class _AddFaceTypePageState extends State<AddFaceTypePage> {
isHaveDirection: true,
isHaveLine: true,
action: () async {
var result =
await Get.toNamed(Routers.seletKeyCyclicDatePage, arguments: {
var result = await Get.toNamed(Routers.seletKeyCyclicDatePage, arguments: {
'validityValue': state.weekdaysList.value,
'starDate': state.beginTime.value,
'endDate': state.endTime.value,

View File

@ -65,24 +65,32 @@ class FaceDetailLogic extends BaseGetXController {
var privateKey = await Storage.getStringList(saveBluePrivateKey);
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
var publicKey = await Storage.getStringList(saveBluePublicKey);
List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
var signKey = await Storage.getStringList(saveBlueSignKey);
List<int> signKeyDataList = changeStringListToIntList(signKey!);
var token = await Storage.getStringList(saveBlueToken);
List<int> getTokenList = changeStringListToIntList(token!);
// var publicKey = await Storage.getStringList(saveBluePublicKey);
// List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
var token = reply.data.sublist(5, 9);
var saveStrList = changeIntListToStringList(token);
Storage.setStringList(saveBlueToken, saveStrList);
String? userID = await Storage.getUid();
IoSenderManage.senderAddFaceCommand(
keyID: state.keyId.value.toString(),
userID: userID,
faceNo: int.parse(state.typeNumber.value),
useCountLimit: 0,
startTime: int.parse(state.startDate.value),
endTime: int.parse(state.endDate.value),
needAuthor: 1,
publicKey: publicKeyDataList,
privateKey: getPrivateKeyList,
token: getTokenList,
keyID:state.keyId.value.toString(),
userID:await Storage.getUid(),
faceNo:int.parse(state.typeNumber.value),
useCountLimit:0,
isForce:0, //
isRound:0, //
weekRound:0, //
startDate: 0x11223344,
endDate: 0x11223344,
startTime:"0",
endTime:"0",
needAuthor:1,
signKey:signKeyDataList,
privateKey:getPrivateKeyList,
token: token,
);
break;
case 0x07:
@ -118,8 +126,8 @@ class FaceDetailLogic extends BaseGetXController {
BlueManage().bludSendData(BlueManage().connectDeviceName,
(BluetoothConnectionState deviceConnectionState) async {
if (deviceConnectionState == BluetoothConnectionState.connected) {
var publicKey = await Storage.getStringList(saveBluePublicKey);
List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
// var publicKey = await Storage.getStringList(saveBluePublicKey);
// List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
var privateKey = await Storage.getStringList(saveBluePrivateKey);
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
@ -127,18 +135,24 @@ class FaceDetailLogic extends BaseGetXController {
var token = await Storage.getStringList(saveBlueToken);
List<int> getTokenList = changeStringListToIntList(token!);
String? userID = await Storage.getUid();
var signKey = await Storage.getStringList(saveBlueSignKey);
List<int> signKeyDataList = changeStringListToIntList(signKey!);
IoSenderManage.senderAddFaceCommand(
keyID: state.keyId.value.toString(),
userID: userID,
faceNo: int.parse(state.typeNumber.value),
useCountLimit: 0,
startTime: int.parse(state.startDate.value),
endTime: int.parse(state.endDate.value),
needAuthor: 1,
publicKey: publicKeyDataList,
privateKey: getPrivateKeyList,
keyID:state.keyId.value.toString(),
userID:await Storage.getUid(),
faceNo:int.parse(state.typeNumber.value),
useCountLimit:0,
isForce:0, //
isRound:0, //
weekRound:0, //
startDate: 0x11223344,
endDate: 0x11223344,
startTime:"0",
endTime:"0",
needAuthor:1,
signKey:signKeyDataList,
privateKey:getPrivateKeyList,
token: getTokenList,
);
} else if (deviceConnectionState ==

View File

@ -2,6 +2,7 @@ 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_protocol/io_addFace.dart';
import 'package:star_lock/blue/io_protocol/io_queryingFaceStatus.dart';
import 'package:star_lock/blue/io_type.dart';
@ -14,8 +15,10 @@ import '../../../../blue/io_tool/io_tool.dart';
import '../../../../blue/io_tool/manager_event_bus.dart';
import '../../../../blue/sender_manage.dart';
import '../../../../network/api_repository.dart';
import '../../../../tools/dateTool.dart';
import '../../../../tools/eventBusEventManage.dart';
import '../../../../tools/storage.dart';
import '../../fingerprint/fingerprintList/fingerprintListData_entity.dart';
class FaceListLogic extends BaseGetXController {
FaceListState state = FaceListState();
@ -65,24 +68,43 @@ class FaceListLogic extends BaseGetXController {
var privateKey = await Storage.getStringList(saveBluePrivateKey);
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
var publicKey = await Storage.getStringList(saveBluePublicKey);
List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
var signKey = await Storage.getStringList(saveBlueSignKey);
List<int> signKeyDataList = changeStringListToIntList(signKey!);
var token = await Storage.getStringList(saveBlueToken);
List<int> getTokenList = changeStringListToIntList(token!);
var token = reply.data.sublist(5, 9);
var saveStrList = changeIntListToStringList(token);
Storage.setStringList(saveBlueToken, saveStrList);
IoSenderManage.senderAddFaceCommand(
keyID: state.deletKeyID,
userID: state.deletUserID,
faceNo: state.deletFaceNo,
useCountLimit: 0,
startTime: 0x11223344,
endTime: 0x11223344,
needAuthor: 1,
publicKey: publicKeyDataList,
privateKey: getPrivateKeyList,
token: getTokenList,
keyID:state.deletKeyID,
userID:state.deletUserID,
faceNo:state.deletFaceNo,
useCountLimit:0,
isForce:0, //
isRound:0, //
weekRound:0, //
startDate: 0x11223344,
endDate: 0x11223344,
startTime:"0",
endTime:"0",
needAuthor:1,
signKey:signKeyDataList,
privateKey:getPrivateKeyList,
token: token,
);
// IoSenderManage.senderAddFaceCommand(
// keyID: state.deletKeyID,
// userID: state.deletUserID,
// faceNo: state.deletFaceNo,
// useCountLimit: 0,
// startTime: 0x11223344,
// endTime: 0x11223344,
// needAuthor: 1,
// publicKey: publicKeyDataList,
// privateKey: getPrivateKeyList,
// token: getTokenList,
// );
break;
case 0x07:
//
@ -308,8 +330,9 @@ class FaceListLogic extends BaseGetXController {
BlueManage().bludSendData(BlueManage().connectDeviceName,
(BluetoothConnectionState deviceConnectionState) async {
if (deviceConnectionState == BluetoothConnectionState.connected) {
var publicKey = await Storage.getStringList(saveBluePublicKey);
List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
var signKey = await Storage.getStringList(saveBlueSignKey);
List<int> signKeyDataList = changeStringListToIntList(signKey!);
var privateKey = await Storage.getStringList(saveBluePrivateKey);
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
@ -318,17 +341,35 @@ class FaceListLogic extends BaseGetXController {
List<int> getTokenList = changeStringListToIntList(token!);
IoSenderManage.senderAddFaceCommand(
keyID: state.deletKeyID,
userID: state.deletUserID,
faceNo: state.deletFaceNo,
useCountLimit: 0,
startTime: 0x11223344,
endTime: 0x11223344,
needAuthor: 1,
publicKey: publicKeyDataList,
privateKey: getPrivateKeyList,
keyID:state.deletKeyID,
userID:state.deletUserID,
faceNo:state.deletFaceNo,
useCountLimit:0,
isForce:0, //
isRound:0, //
weekRound:0, //
startDate: 0x11223344,
endDate: 0x11223344,
startTime:"0",
endTime:"0",
needAuthor:1,
signKey:signKeyDataList,
privateKey:getPrivateKeyList,
token: getTokenList,
);
// IoSenderManage.senderAddFaceCommand(
// keyID: state.deletKeyID,
// userID: state.deletUserID,
// faceNo: state.deletFaceNo,
// useCountLimit: 0,
// startTime: 0x11223344,
// endTime: 0x11223344,
// needAuthor: 1,
// publicKey: publicKeyDataList,
// privateKey: getPrivateKeyList,
// token: getTokenList,
// );
} else if (deviceConnectionState == BluetoothConnectionState.disconnected) {
dismissEasyLoading();
cancelBlueConnetctToastTimer();
@ -391,6 +432,32 @@ class FaceListLogic extends BaseGetXController {
}
}
String getKeyType(FingerprintItemData fingerprintItemData){
// fingerprintStatus 1: 2:
var keyTypeStr = "";//
if(fingerprintItemData.status == 1){
if(fingerprintItemData.startDate! > DateTime.now().millisecondsSinceEpoch){
keyTypeStr = "未生效".tr;
}
}else if(fingerprintItemData.status == 2){
keyTypeStr = "已失效".tr;
}
return keyTypeStr;
}
String getKeyDateType(FingerprintItemData fingerprintItemData){
var keyDateTypeStr = "";// :1;23:4
if(fingerprintItemData.faceType! == 1){
keyDateTypeStr = "${DateTool().dateToYMDHNString(fingerprintItemData.createDate.toString())} 永久";
}else if(fingerprintItemData.faceType! == 2){
keyDateTypeStr = "${DateTool().dateToYMDHNString(fingerprintItemData.startDate.toString())} - ${DateTool().dateToYMDHNString(fingerprintItemData.endDate.toString())} 限时";
}else if(fingerprintItemData.faceType! == 4){
keyDateTypeStr = "${DateTool().dateToYMDString(fingerprintItemData.startDate.toString())}-${DateTool().dateToYMDString(fingerprintItemData.endDate.toString())} 循环";
}
return keyDateTypeStr;
}
//
late StreamSubscription _teamEvent;
void _initRefreshAction() {

View File

@ -5,6 +5,7 @@ import 'package:get/get.dart';
import 'package:star_lock/main/lockDetail/fingerprint/fingerprintList/fingerprintListData_entity.dart';
import 'package:star_lock/tools/keySearchWidget.dart';
import 'package:star_lock/tools/left_slide_actions.dart';
import 'package:star_lock/tools/showTipView.dart';
import '../../../../appRouters.dart';
import '../../../../app_settings/app_colors.dart';
@ -44,7 +45,15 @@ class _FaceListPageState extends State<FaceListPage> {
onPressed: () async {
var isDemoMode = await Storage.getBool(ifIsDemoModeOrNot);
if (isDemoMode == false) {
showDeletAlertDialog(context);
// showDeletAlertDialog(context);
ShowTipView().showIosTipWithContentDialog("重置后,该锁的人脸都将被删除哦,确认要重置吗?", () async {
state.isDeletFaceData = true;
state.isDeletAll = true;
state.deletKeyID = "1";
state.deletUserID = "DeleteAll!@#";
state.deletFaceNo = 255;
logic.senderAddFace();
});
} else {
// Get.toNamed(Routers.selectLockTypePage);
logic.showToast("演示模式");
@ -91,8 +100,7 @@ class _FaceListPageState extends State<FaceListPage> {
? ListView.separated(
itemCount: state.faceItemListData.value.length,
itemBuilder: (c, index) {
FingerprintItemData getFaceItemData =
state.faceItemListData.value[index];
FingerprintItemData getFaceItemData = state.faceItemListData.value[index];
//
if (index < state.faceItemListData.value.length) {
return LeftSlideActions(
@ -107,19 +115,15 @@ class _FaceListPageState extends State<FaceListPage> {
child: _keyItem(
'images/icon_face.png',
getFaceItemData.faceName!,
(getFaceItemData.faceType! != 1)
? (getFaceItemData.endDate! <
DateTime.now().millisecondsSinceEpoch
? "已失效"
: "")
: "",
getFaceItemData.validTimeStr!,
logic.getKeyType(getFaceItemData),
logic.getKeyDateType(getFaceItemData),
// (getFaceItemData.faceType! != 1) ? (getFaceItemData.endDate! < DateTime.now().millisecondsSinceEpoch ? "已失效" : "") : "",
// getFaceItemData.validTimeStr!,
// fingerprintItemData.fingerprintType! == 1
// ? "永久"
// : "${DateTool().dateToYMDHNString(fingerprintItemData.startDate.toString())} - ${DateTool().dateToYMDHNString(fingerprintItemData.endDate.toString())}",
() async {
var data =
await Get.toNamed(Routers.faceDetailPage, arguments: {
var data = await Get.toNamed(Routers.faceDetailPage, arguments: {
"faceItemData": getFaceItemData,
});
if (data != null) {
@ -147,7 +151,13 @@ class _FaceListPageState extends State<FaceListPage> {
// :
state.deletKeyID = faceItemData.faceId.toString();
state.deletFaceNo = int.parse(faceItemData.faceNumber!);
showIosTipViewDialog(context);
ShowTipView().showIosTipWithContentDialog("确定要删除吗?".tr, () async {
state.isDeletFaceData = true;
state.isDeletAll = false;
state.deletUserID = (await Storage.getUid())!;
logic.senderAddFace();
});
// showIosTipViewDialog(context);
},
child: Container(
width: 60,
@ -166,27 +176,27 @@ class _FaceListPageState extends State<FaceListPage> {
);
}
void showIosTipViewDialog(BuildContext context) {
showDialog(
context: context,
builder: (BuildContext context) {
return ShowIosTipView(
title: "提示",
tipTitle: "确定要删除吗?",
sureClick: () async {
Get.back();
state.isDeletFaceData = true;
state.isDeletAll = false;
state.deletUserID = (await Storage.getUid())!;
logic.senderAddFace();
},
cancelClick: () {
Get.back();
},
);
},
);
}
// void showIosTipViewDialog(BuildContext context) {
// showDialog(
// context: context,
// builder: (BuildContext context) {
// return ShowIosTipView(
// title: "提示",
// tipTitle: "确定要删除吗?",
// sureClick: () async {
// Get.back();
// state.isDeletFaceData = true;
// state.isDeletAll = false;
// state.deletUserID = (await Storage.getUid())!;
// logic.senderAddFace();
// },
// cancelClick: () {
// Get.back();
// },
// );
// },
// );
// }
Widget _keyItem(String lockTypeIcon, String lockTypeTitle,
String ifInvalidation, String showTime, Function() action) {
@ -212,10 +222,22 @@ class _FaceListPageState extends State<FaceListPage> {
Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(lockTypeTitle,
style: TextStyle(
fontSize: 24.sp, color: AppColors.blackColor)),
Expanded(child: Container()),
SizedBox(
width: 1.sw - 110.w - 100.w,
child: Row(
children: [
Flexible(
child: Text(
lockTypeTitle,
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle(fontSize: 24.sp, color: AppColors.blackColor)
),
),
],
),
),
Text(ifInvalidation,
style: TextStyle(fontSize: 22.sp, color: Colors.red)),
SizedBox(width: 10.w),
@ -225,10 +247,14 @@ class _FaceListPageState extends State<FaceListPage> {
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Text(showTime,
style: TextStyle(
fontSize: 18.sp,
color: AppColors.placeholderTextColor)),
Flexible(
child: Text(showTime,
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontSize: 18.sp,
color: AppColors.placeholderTextColor)),
),
],
),
SizedBox(width: 20.h),
@ -242,35 +268,36 @@ class _FaceListPageState extends State<FaceListPage> {
);
}
void showDeletAlertDialog(BuildContext context) {
showCupertinoDialog(
context: context,
builder: (context) {
return CupertinoAlertDialog(
title: const Text("提示"),
content: const Text('重置后,该锁的人脸都将被删除哦,确认要重置吗?'),
actions: [
CupertinoDialogAction(
child: Text(TranslationLoader.lanKeys!.cancel!.tr),
onPressed: () {
Navigator.pop(context);
},
),
CupertinoDialogAction(
child: Text(TranslationLoader.lanKeys!.sure!.tr),
onPressed: () {
Navigator.pop(context);
state.isDeletFaceData = true;
state.isDeletAll = true;
state.deletKeyID = "1";
state.deletUserID = "DeleteAll!@#";
state.deletFaceNo = 255;
logic.senderAddFace();
},
),
],
);
},
);
}
// void showDeletAlertDialog(BuildContext context) {
// showCupertinoDialog(
// context: context,
// builder: (context) {
// return CupertinoAlertDialog(
// title: const Text("提示"),
// content: const Text('重置后,该锁的人脸都将被删除哦,确认要重置吗?'),
// actions: [
// CupertinoDialogAction(
// child: Text(TranslationLoader.lanKeys!.cancel!.tr),
// onPressed: () {
// Navigator.pop(context);
// },
// ),
// CupertinoDialogAction(
// child: Text(TranslationLoader.lanKeys!.sure!.tr),
// onPressed: () {
// Navigator.pop(context);
// state.isDeletFaceData = true;
// state.isDeletAll = true;
// state.deletKeyID = "1";
// state.deletUserID = "DeleteAll!@#";
// state.deletFaceNo = 255;
// logic.senderAddFace();
// },
// ),
// ],
// );
// },
// );
// }
}

View File

@ -35,8 +35,6 @@ class FingerprintDetailLogic extends BaseGetXController{
Future<void> _replyAddFingerprintBegin(Reply reply) async {
int status = reply.data[2];
// Get.log("status:$status");
switch(status){
case 0x00:
//
@ -58,8 +56,9 @@ class FingerprintDetailLogic extends BaseGetXController{
// var publicKey = await Storage.getStringList(saveBluePublicKey);
// List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
var token = await Storage.getStringList(saveBlueToken);
List<int> getTokenList = changeStringListToIntList(token!);
var token = reply.data.sublist(5, 9);
var saveStrList = changeIntListToStringList(token);
Storage.setStringList(saveBlueToken, saveStrList);
IoSenderManage.senderAddFingerprintWithTimeCycleCoercionCommand(
keyID:state.keyId.value.toString(),
@ -76,7 +75,7 @@ class FingerprintDetailLogic extends BaseGetXController{
needAuthor:1,
signKey:signKeyDataList,
privateKey:getPrivateKeyList,
token: getTokenList,
token: token,
);
break;
default:

View File

@ -64,24 +64,29 @@ class IrisListLogic extends BaseGetXController {
var privateKey = await Storage.getStringList(saveBluePrivateKey);
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
var publicKey = await Storage.getStringList(saveBluePublicKey);
List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
var signKey = await Storage.getStringList(saveBlueSignKey);
List<int> signKeyDataList = changeStringListToIntList(signKey!);
var token = await Storage.getStringList(saveBlueToken);
List<int> getTokenList = changeStringListToIntList(token!);
IoSenderManage.senderAddFaceCommand(
keyID: state.deletKeyID,
userID: state.deletUserID,
faceNo: state.deletFaceNo,
useCountLimit: 0,
startTime: 0x11223344,
endTime: 0x11223344,
needAuthor: 1,
publicKey: publicKeyDataList,
privateKey: getPrivateKeyList,
token: getTokenList,
);
// IoSenderManage.senderAddFaceCommand(
// keyID:state.deletKeyID,
// userID:state.deletUserID,
// faceNo:state.deletFaceNo,
// useCountLimit:0,
// isForce:0, //
// isRound:0, //
// weekRound:0, //
// startDate: 0x11223344,
// endDate: 0x11223344,
// startTime:"0",
// endTime:"0",
// needAuthor:1,
// signKey:signKeyDataList,
// privateKey:getPrivateKeyList,
// token: getTokenList,
// );
break;
case 0x07:
//
@ -245,17 +250,17 @@ class IrisListLogic extends BaseGetXController {
var publicKey = await Storage.getStringList(saveBluePublicKey);
List<int> getPublicKeyList = changeStringListToIntList(publicKey!);
IoSenderManage.senderQueryingFaceStatusCommand(
keyID: BlueManage().connectDeviceName,
userID: await Storage.getUid(),
role: 0xff,
faceCount: 20,
faceNo: 1,
token: getTokenList,
needAuthor: 1,
publicKey: getPublicKeyList,
privateKey: getPrivateKeyList,
);
// IoSenderManage.senderQueryingFaceStatusCommand(
// keyID: BlueManage().connectDeviceName,
// userID: await Storage.getUid(),
// role: 0xff,
// faceCount: 20,
// faceNo: 1,
// token: getTokenList,
// needAuthor: 1,
// publicKey: getPublicKeyList,
// privateKey: getPrivateKeyList,
// );
}
});
}
@ -274,16 +279,16 @@ class IrisListLogic extends BaseGetXController {
var publicKey = await Storage.getStringList(saveBluePublicKey);
List<int> getPublicKeyList = changeStringListToIntList(publicKey!);
IoSenderManage.senderCheckingUserInfoCountCommand(
keyID: BlueManage().connectDeviceName,
userID: await Storage.getUid(),
role: 0xff,
nowTime: DateTime.now().millisecondsSinceEpoch ~/ 1000,
token: getTokenList,
needAuthor: 1,
publicKey: getPublicKeyList,
privateKey: getPrivateKeyList,
);
// IoSenderManage.senderCheckingUserInfoCountCommand(
// keyID: BlueManage().connectDeviceName,
// userID: await Storage.getUid(),
// role: 0xff,
// nowTime: DateTime.now().millisecondsSinceEpoch ~/ 1000,
// token: getTokenList,
// needAuthor: 1,
// publicKey: getPublicKeyList,
// privateKey: getPrivateKeyList,
// );
}
});
}
@ -297,8 +302,8 @@ class IrisListLogic extends BaseGetXController {
BlueManage().bludSendData(BlueManage().connectDeviceName,
(BluetoothConnectionState deviceConnectionState) async {
if (deviceConnectionState == BluetoothConnectionState.connected) {
var publicKey = await Storage.getStringList(saveBluePublicKey);
List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
var signKey = await Storage.getStringList(saveBlueSignKey);
List<int> signKeyDataList = changeStringListToIntList(signKey!);
var privateKey = await Storage.getStringList(saveBluePrivateKey);
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
@ -306,18 +311,23 @@ class IrisListLogic extends BaseGetXController {
var token = await Storage.getStringList(saveBlueToken);
List<int> getTokenList = changeStringListToIntList(token!);
IoSenderManage.senderAddFaceCommand(
keyID: state.deletKeyID,
userID: state.deletUserID,
faceNo: state.deletFaceNo,
useCountLimit: 0,
startTime: 0x11223344,
endTime: 0x11223344,
needAuthor: 1,
publicKey: publicKeyDataList,
privateKey: getPrivateKeyList,
token: getTokenList,
);
// IoSenderManage.senderAddFaceCommand(
// keyID:state.deletKeyID,
// userID:state.deletUserID,
// faceNo:state.deletFaceNo,
// useCountLimit:0,
// isForce:0, //
// isRound:0, //
// weekRound:0, //
// startDate: 0x11223344,
// endDate: 0x11223344,
// startTime:"0",
// endTime:"0",
// needAuthor:1,
// signKey:signKeyDataList,
// privateKey:getPrivateKeyList,
// token: getTokenList,
// );
} else if (deviceConnectionState ==
BluetoothConnectionState.disconnected) {
dismissEasyLoading();

View File

@ -64,24 +64,29 @@ class PalmListLogic extends BaseGetXController {
var privateKey = await Storage.getStringList(saveBluePrivateKey);
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
var publicKey = await Storage.getStringList(saveBluePublicKey);
List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
var signKey = await Storage.getStringList(saveBlueSignKey);
List<int> signKeyDataList = changeStringListToIntList(signKey!);
var token = await Storage.getStringList(saveBlueToken);
List<int> getTokenList = changeStringListToIntList(token!);
IoSenderManage.senderAddFaceCommand(
keyID: state.deletKeyID,
userID: state.deletUserID,
faceNo: state.deletFaceNo,
useCountLimit: 0,
startTime: 0x11223344,
endTime: 0x11223344,
needAuthor: 1,
publicKey: publicKeyDataList,
privateKey: getPrivateKeyList,
token: getTokenList,
);
// IoSenderManage.senderAddFaceCommand(
// keyID:state.deletKeyID,
// userID:state.deletUserID,
// faceNo:state.deletFaceNo,
// useCountLimit:0,
// isForce:0, //
// isRound:0, //
// weekRound:0, //
// startDate: 0x11223344,
// endDate: 0x11223344,
// startTime:"0",
// endTime:"0",
// needAuthor:1,
// signKey:signKeyDataList,
// privateKey:getPrivateKeyList,
// token: getTokenList,
// );
break;
case 0x07:
//
@ -255,17 +260,17 @@ class PalmListLogic extends BaseGetXController {
var publicKey = await Storage.getStringList(saveBluePublicKey);
List<int> getPublicKeyList = changeStringListToIntList(publicKey!);
IoSenderManage.senderQueryingFaceStatusCommand(
keyID: BlueManage().connectDeviceName,
userID: await Storage.getUid(),
role: 0xff,
faceCount: 20,
faceNo: 1,
token: getTokenList,
needAuthor: 1,
publicKey: getPublicKeyList,
privateKey: getPrivateKeyList,
);
// IoSenderManage.senderQueryingFaceStatusCommand(
// keyID: BlueManage().connectDeviceName,
// userID: await Storage.getUid(),
// role: 0xff,
// faceCount: 20,
// faceNo: 1,
// token: getTokenList,
// needAuthor: 1,
// publicKey: getPublicKeyList,
// privateKey: getPrivateKeyList,
// );
}
});
}
@ -284,16 +289,16 @@ class PalmListLogic extends BaseGetXController {
var publicKey = await Storage.getStringList(saveBluePublicKey);
List<int> getPublicKeyList = changeStringListToIntList(publicKey!);
IoSenderManage.senderCheckingUserInfoCountCommand(
keyID: BlueManage().connectDeviceName,
userID: await Storage.getUid(),
role: 0xff,
nowTime: DateTime.now().millisecondsSinceEpoch ~/ 1000,
token: getTokenList,
needAuthor: 1,
publicKey: getPublicKeyList,
privateKey: getPrivateKeyList,
);
// IoSenderManage.senderCheckingUserInfoCountCommand(
// keyID: BlueManage().connectDeviceName,
// userID: await Storage.getUid(),
// role: 0xff,
// nowTime: DateTime.now().millisecondsSinceEpoch ~/ 1000,
// token: getTokenList,
// needAuthor: 1,
// publicKey: getPublicKeyList,
// privateKey: getPrivateKeyList,
// );
}
});
}
@ -307,8 +312,8 @@ class PalmListLogic extends BaseGetXController {
BlueManage().bludSendData(BlueManage().connectDeviceName,
(BluetoothConnectionState deviceConnectionState) async {
if (deviceConnectionState == BluetoothConnectionState.connected) {
var publicKey = await Storage.getStringList(saveBluePublicKey);
List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
var signKey = await Storage.getStringList(saveBlueSignKey);
List<int> signKeyDataList = changeStringListToIntList(signKey!);
var privateKey = await Storage.getStringList(saveBluePrivateKey);
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
@ -316,18 +321,23 @@ class PalmListLogic extends BaseGetXController {
var token = await Storage.getStringList(saveBlueToken);
List<int> getTokenList = changeStringListToIntList(token!);
IoSenderManage.senderAddFaceCommand(
keyID: state.deletKeyID,
userID: state.deletUserID,
faceNo: state.deletFaceNo,
useCountLimit: 0,
startTime: 0x11223344,
endTime: 0x11223344,
needAuthor: 1,
publicKey: publicKeyDataList,
privateKey: getPrivateKeyList,
token: getTokenList,
);
// IoSenderManage.senderAddFaceCommand(
// keyID:state.deletKeyID,
// userID:state.deletUserID,
// faceNo:state.deletFaceNo,
// useCountLimit:0,
// isForce:0, //
// isRound:0, //
// weekRound:0, //
// startDate: 0x11223344,
// endDate: 0x11223344,
// startTime:"0",
// endTime:"0",
// needAuthor:1,
// signKey:signKeyDataList,
// privateKey:getPrivateKeyList,
// token: getTokenList,
// );
} else if (deviceConnectionState ==
BluetoothConnectionState.disconnected) {
dismissEasyLoading();

View File

@ -1176,7 +1176,7 @@ class ApiProvider extends BaseProvider {
int endDate,
String featureData,
String addType,
List cyclicConfig,
List weekDay,
int faceRight,
) =>
post(
@ -1190,7 +1190,7 @@ class ApiProvider extends BaseProvider {
'endDate': endDate,
'featureData': featureData,
'addType': addType,
'cyclicConfig': cyclicConfig,
'weekDay': weekDay,
'faceRight': faceRight
}));

View File

@ -1348,7 +1348,7 @@ class ApiRepository {
required int endDate,
required String featureData,
required String addType,
required List cyclicConfig,
required List weekDay,
required int faceRight}) async {
final res = await apiProvider.addFaceData(
lockId,
@ -1359,7 +1359,7 @@ class ApiRepository {
endDate,
featureData,
addType,
cyclicConfig,
weekDay,
faceRight);
return AddFaceEntity.fromJson(res.body);
}