2024-05-23 10:35:06 +08:00
|
|
|
|
|
|
|
|
|
|
import 'dart:async';
|
|
|
|
|
|
|
|
|
|
|
|
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
|
2024-08-21 14:12:15 +08:00
|
|
|
|
import 'package:get/get.dart';
|
2024-07-23 15:02:57 +08:00
|
|
|
|
import 'package:star_lock/blue/io_protocol/io_updataLockRemoteControlList.dart';
|
2024-05-29 09:06:26 +08:00
|
|
|
|
import 'package:star_lock/login/login/entity/LoginEntity.dart';
|
2024-05-23 10:35:06 +08:00
|
|
|
|
import 'package:star_lock/tools/baseGetXController.dart';
|
|
|
|
|
|
import 'package:star_lock/tools/commonDataManage.dart';
|
|
|
|
|
|
|
2024-07-29 17:36:48 +08:00
|
|
|
|
import '../../../../app_settings/app_settings.dart';
|
2024-05-23 10:35:06 +08:00
|
|
|
|
import '../../../../blue/blue_manage.dart';
|
|
|
|
|
|
import '../../../../blue/io_protocol/io_updataLockCardList.dart';
|
|
|
|
|
|
import '../../../../blue/io_protocol/io_updataLockFaceList.dart';
|
|
|
|
|
|
import '../../../../blue/io_protocol/io_updataLockFingerprintList.dart';
|
|
|
|
|
|
import '../../../../blue/io_protocol/io_updataLockPalmVeinList.dart';
|
|
|
|
|
|
import '../../../../blue/io_protocol/io_updataLockPasswordList.dart';
|
2024-05-29 09:06:26 +08:00
|
|
|
|
import '../../../../blue/io_protocol/io_updataLockSet.dart';
|
2024-05-23 10:35:06 +08:00
|
|
|
|
import '../../../../blue/io_reply.dart';
|
|
|
|
|
|
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/storage.dart';
|
|
|
|
|
|
import 'uploadData_state.dart';
|
|
|
|
|
|
|
|
|
|
|
|
class UploadDataLogic extends BaseGetXController{
|
|
|
|
|
|
UploadDataState state = UploadDataState();
|
|
|
|
|
|
|
|
|
|
|
|
// 监听蓝牙协议返回结果
|
|
|
|
|
|
late StreamSubscription<Reply> _replySubscription;
|
|
|
|
|
|
void _initReplySubscription() {
|
2024-05-29 09:06:26 +08:00
|
|
|
|
_replySubscription = EventBusManager().eventBus!.on<Reply>().listen((Reply reply) async {
|
2024-05-23 10:35:06 +08:00
|
|
|
|
// 上传数据获取锁密码列表
|
|
|
|
|
|
if (reply is UpdataLockPasswordListReply && (state.ifCurrentScreen.value == true)) {
|
2024-05-29 09:06:26 +08:00
|
|
|
|
_replyUpdataLockPasswordListReply(reply);
|
2024-05-23 10:35:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 上传数据获取锁卡列表
|
|
|
|
|
|
if (reply is UpdataLockCardListReply && (state.ifCurrentScreen.value == true)) {
|
2024-05-29 09:06:26 +08:00
|
|
|
|
_replyUpdataLockCardListReply(reply);
|
2024-05-23 10:35:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 上传数据获取锁指纹列表
|
|
|
|
|
|
if (reply is UpdataLockFingerprintListReply && (state.ifCurrentScreen.value == true)) {
|
2024-05-29 09:06:26 +08:00
|
|
|
|
_replyUpdataLockFingerprintListReply(reply);
|
2024-05-23 10:35:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 上传数据获取锁人脸列表
|
|
|
|
|
|
if (reply is UpdataLockFaceListReply && (state.ifCurrentScreen.value == true)) {
|
2024-05-29 09:06:26 +08:00
|
|
|
|
_replyUpdataLockFaceListReply(reply);
|
2024-05-23 10:35:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 上传数据获取锁掌静脉列表
|
|
|
|
|
|
if (reply is UpdataLockPalmVeinListReply && (state.ifCurrentScreen.value == true)) {
|
2024-05-29 09:06:26 +08:00
|
|
|
|
_replyUpdataLockPalmVeinListReply(reply);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-07-23 15:02:57 +08:00
|
|
|
|
// 上传数据获取锁遥控
|
|
|
|
|
|
if (reply is UpdataLockRemoteControlListReply && (state.ifCurrentScreen.value == true)) {
|
|
|
|
|
|
_replyUpdataLockRemoteControlListReply(reply);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-29 09:06:26 +08:00
|
|
|
|
// 上传数据获取锁设置
|
2024-05-30 13:37:20 +08:00
|
|
|
|
if (reply is UpdataLockSetReply && (state.ifCurrentScreen.value == true) && (state.ifSeletUpdataBtnState == true)) {
|
2024-05-29 09:06:26 +08:00
|
|
|
|
_replyUpdataLockSetReply(reply);
|
2024-05-23 10:35:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 上传数据获取锁密码列表
|
2024-05-29 09:06:26 +08:00
|
|
|
|
Future<void> _replyUpdataLockPasswordListReply(Reply reply) async {
|
|
|
|
|
|
final int status = reply.data[2];
|
2024-05-23 10:35:06 +08:00
|
|
|
|
switch(status){
|
|
|
|
|
|
case 0x00:
|
|
|
|
|
|
//成功
|
|
|
|
|
|
cancelBlueConnetctToastTimer();
|
|
|
|
|
|
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final int dataLength = reply.data[8];
|
2024-05-23 10:35:06 +08:00
|
|
|
|
state.uploadPasswordDataList.addAll(reply.data.sublist(9, reply.data.length));
|
|
|
|
|
|
if(dataLength == 10){
|
|
|
|
|
|
// 当数据是10的时候继续请求
|
2024-06-11 14:03:48 +08:00
|
|
|
|
state.uploadPasswordPage = state.uploadPasswordPage + 1;
|
|
|
|
|
|
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final List<int> token = reply.data.sublist(3, 7);
|
2024-07-29 17:36:48 +08:00
|
|
|
|
showEasyLoading();
|
2024-05-23 10:35:06 +08:00
|
|
|
|
updataLockPasswordList(token, state.uploadPasswordPage);
|
|
|
|
|
|
}else{
|
2024-07-29 17:36:48 +08:00
|
|
|
|
// dismissEasyLoading();
|
2024-05-23 10:35:06 +08:00
|
|
|
|
|
|
|
|
|
|
// 当数据不是10的时候解析数据上传
|
2024-05-29 09:06:26 +08:00
|
|
|
|
// if(state.uploadPasswordDataList.isEmpty){
|
|
|
|
|
|
// // 如果是空的直接上传下一个
|
|
|
|
|
|
// getUpdataLockCardList();
|
|
|
|
|
|
// }else{
|
|
|
|
|
|
// // 如果不是空的解析数据上传
|
2024-07-29 17:36:48 +08:00
|
|
|
|
state.indexCount.value = state.indexCount.value + 1;
|
2024-05-23 10:35:06 +08:00
|
|
|
|
_lockDataUpload(uploadType:2, recordType:2, records:state.uploadPasswordDataList);
|
2024-05-29 09:06:26 +08:00
|
|
|
|
// }
|
2024-05-23 10:35:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 0x06:
|
|
|
|
|
|
//无权限
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final List<int> token = reply.data.sublist(3, 7);
|
|
|
|
|
|
final List<String> saveStrList = changeIntListToStringList(token);
|
2024-05-23 10:35:06 +08:00
|
|
|
|
Storage.setStringList(saveBlueToken, saveStrList);
|
|
|
|
|
|
|
|
|
|
|
|
updataLockPasswordList(token, state.uploadPasswordPage);
|
|
|
|
|
|
break;
|
|
|
|
|
|
default:
|
2024-07-29 17:36:48 +08:00
|
|
|
|
AppLog.log('上传密码列表失败 关闭加载菊花');
|
2024-05-23 10:35:06 +08:00
|
|
|
|
dismissEasyLoading();
|
|
|
|
|
|
state.sureBtnState.value = 0;
|
|
|
|
|
|
state.indexCount.value = 0;
|
|
|
|
|
|
cancelBlueConnetctToastTimer();
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 上传数据获取锁卡列表
|
2024-05-29 09:06:26 +08:00
|
|
|
|
Future<void> _replyUpdataLockCardListReply(Reply reply) async {
|
|
|
|
|
|
final int status = reply.data[2];
|
2024-05-23 10:35:06 +08:00
|
|
|
|
switch(status){
|
|
|
|
|
|
case 0x00:
|
2024-07-29 17:36:48 +08:00
|
|
|
|
//成功
|
2024-05-23 10:35:06 +08:00
|
|
|
|
cancelBlueConnetctToastTimer();
|
|
|
|
|
|
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final int dataLength = reply.data[8];
|
2024-05-23 10:35:06 +08:00
|
|
|
|
state.uploadCardDataList.addAll(reply.data.sublist(9, reply.data.length));
|
|
|
|
|
|
if(dataLength == 10){
|
|
|
|
|
|
// 当数据是10的时候继续请求
|
2024-06-11 14:03:48 +08:00
|
|
|
|
state.uploadCardPage = state.uploadCardPage + 1;
|
|
|
|
|
|
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final List<int> token = reply.data.sublist(3, 7);
|
2024-07-29 17:36:48 +08:00
|
|
|
|
|
|
|
|
|
|
showEasyLoading();
|
2024-05-23 10:35:06 +08:00
|
|
|
|
updataLockCardList(token, state.uploadCardPage);
|
|
|
|
|
|
}else{
|
2024-05-29 09:06:26 +08:00
|
|
|
|
// // 当数据不是10的时候解析数据上传
|
|
|
|
|
|
// if(state.uploadCardDataList.isEmpty){
|
|
|
|
|
|
// // 如果是空的直接上传下一个
|
|
|
|
|
|
// getUpdataLockFingerprintList();
|
|
|
|
|
|
// }else{
|
|
|
|
|
|
// // 如果不是空的解析数据上传
|
2024-07-29 17:36:48 +08:00
|
|
|
|
state.indexCount.value = state.indexCount.value + 1;
|
2024-05-23 10:35:06 +08:00
|
|
|
|
_lockDataUpload(uploadType:2, recordType:3, records:state.uploadCardDataList);
|
2024-05-29 09:06:26 +08:00
|
|
|
|
// }
|
2024-05-23 10:35:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 0x06:
|
|
|
|
|
|
//无权限
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final List<int> token = reply.data.sublist(3, 7);
|
|
|
|
|
|
final List<String> saveStrList = changeIntListToStringList(token);
|
2024-05-23 10:35:06 +08:00
|
|
|
|
Storage.setStringList(saveBlueToken, saveStrList);
|
|
|
|
|
|
|
|
|
|
|
|
updataLockCardList(token, state.uploadCardPage);
|
|
|
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
|
|
|
dismissEasyLoading();
|
|
|
|
|
|
state.sureBtnState.value = 0;
|
|
|
|
|
|
state.indexCount.value = 0;
|
|
|
|
|
|
cancelBlueConnetctToastTimer();
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 上传数据获取锁指纹列表
|
2024-05-29 09:06:26 +08:00
|
|
|
|
Future<void> _replyUpdataLockFingerprintListReply(Reply reply) async {
|
|
|
|
|
|
final int status = reply.data[2];
|
2024-05-23 10:35:06 +08:00
|
|
|
|
switch(status){
|
|
|
|
|
|
case 0x00:
|
|
|
|
|
|
//成功
|
|
|
|
|
|
cancelBlueConnetctToastTimer();
|
|
|
|
|
|
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final int dataLength = reply.data[8];
|
2024-05-23 10:35:06 +08:00
|
|
|
|
state.uploadFingerprintDataList.addAll(reply.data.sublist(9, reply.data.length));
|
|
|
|
|
|
if(dataLength == 10){
|
|
|
|
|
|
// 当数据是10的时候继续请求
|
2024-06-11 14:03:48 +08:00
|
|
|
|
state.uploadFingerprintPage = state.uploadFingerprintPage + 1;
|
|
|
|
|
|
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final List<int> token = reply.data.sublist(3, 7);
|
2024-07-29 17:36:48 +08:00
|
|
|
|
|
|
|
|
|
|
showEasyLoading();
|
2024-05-23 10:35:06 +08:00
|
|
|
|
updataLockFingerprintList(token, state.uploadFingerprintPage);
|
|
|
|
|
|
}else{
|
2024-05-29 09:06:26 +08:00
|
|
|
|
// // 当数据不是10的时候解析数据上传
|
|
|
|
|
|
// if(state.uploadFingerprintDataList.isEmpty){
|
|
|
|
|
|
// // 如果是空的直接上传下一个
|
|
|
|
|
|
// getUpdataLockFaceList();
|
|
|
|
|
|
// }else{
|
|
|
|
|
|
// // 如果不是空的解析数据上传
|
2024-07-29 17:36:48 +08:00
|
|
|
|
state.indexCount.value = state.indexCount.value + 1;
|
2024-05-23 10:35:06 +08:00
|
|
|
|
_lockDataUpload(uploadType:2, recordType:4, records:state.uploadFingerprintDataList);
|
2024-05-29 09:06:26 +08:00
|
|
|
|
// }
|
2024-05-23 10:35:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 0x06:
|
|
|
|
|
|
//无权限
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final List<int> token = reply.data.sublist(3, 7);
|
|
|
|
|
|
final List<String> saveStrList = changeIntListToStringList(token);
|
2024-05-23 10:35:06 +08:00
|
|
|
|
Storage.setStringList(saveBlueToken, saveStrList);
|
|
|
|
|
|
|
|
|
|
|
|
updataLockFingerprintList(token, state.uploadFingerprintPage);
|
|
|
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
|
|
|
dismissEasyLoading();
|
|
|
|
|
|
state.sureBtnState.value = 0;
|
|
|
|
|
|
state.indexCount.value = 0;
|
|
|
|
|
|
cancelBlueConnetctToastTimer();
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 上传数据获取锁人脸列表解析
|
2024-05-29 09:06:26 +08:00
|
|
|
|
Future<void> _replyUpdataLockFaceListReply(Reply reply) async {
|
|
|
|
|
|
final int status = reply.data[2];
|
2024-05-23 10:35:06 +08:00
|
|
|
|
switch(status){
|
|
|
|
|
|
case 0x00:
|
2024-07-29 17:36:48 +08:00
|
|
|
|
//成功
|
2024-05-23 10:35:06 +08:00
|
|
|
|
cancelBlueConnetctToastTimer();
|
|
|
|
|
|
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final int dataLength = reply.data[8];
|
2024-05-23 10:35:06 +08:00
|
|
|
|
state.uploadFaceDataList.addAll(reply.data.sublist(9, reply.data.length));
|
|
|
|
|
|
if(dataLength == 10){
|
|
|
|
|
|
// 当数据是10的时候继续请求
|
2024-06-11 14:03:48 +08:00
|
|
|
|
state.uploadFacePage = state.uploadFacePage + 1;
|
|
|
|
|
|
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final List<int> token = reply.data.sublist(3, 7);
|
2024-07-29 17:36:48 +08:00
|
|
|
|
|
|
|
|
|
|
showEasyLoading();
|
2024-05-23 10:35:06 +08:00
|
|
|
|
updataLockFaceList(token, state.uploadFacePage);
|
|
|
|
|
|
}else{
|
2024-05-29 09:06:26 +08:00
|
|
|
|
// // 当数据不是10的时候解析数据上传
|
|
|
|
|
|
// if(state.uploadFaceDataList.isEmpty){
|
|
|
|
|
|
// // 如果是空的直接上传下一个
|
|
|
|
|
|
// getUpdataLockPalmVeinList();
|
|
|
|
|
|
// }else{
|
2024-05-23 10:35:06 +08:00
|
|
|
|
// 如果不是空的解析数据上传
|
2024-07-29 17:36:48 +08:00
|
|
|
|
state.indexCount.value = state.indexCount.value + 1;
|
2024-05-23 10:35:06 +08:00
|
|
|
|
_lockDataUpload(uploadType:2, recordType:5, records:state.uploadFaceDataList);
|
2024-05-29 09:06:26 +08:00
|
|
|
|
// }
|
2024-05-23 10:35:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 0x06:
|
|
|
|
|
|
//无权限
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final List<int> token = reply.data.sublist(3, 7);
|
|
|
|
|
|
final List<String> saveStrList = changeIntListToStringList(token);
|
2024-05-23 10:35:06 +08:00
|
|
|
|
Storage.setStringList(saveBlueToken, saveStrList);
|
|
|
|
|
|
|
|
|
|
|
|
updataLockFaceList(token, state.uploadFacePage);
|
|
|
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
|
|
|
dismissEasyLoading();
|
|
|
|
|
|
state.sureBtnState.value = 0;
|
|
|
|
|
|
state.indexCount.value = 0;
|
|
|
|
|
|
cancelBlueConnetctToastTimer();
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 上传数据获取锁掌静脉列表解析
|
2024-05-29 09:06:26 +08:00
|
|
|
|
Future<void> _replyUpdataLockPalmVeinListReply(Reply reply) async {
|
|
|
|
|
|
final int status = reply.data[2];
|
2024-05-23 10:35:06 +08:00
|
|
|
|
switch(status){
|
|
|
|
|
|
case 0x00:
|
2024-07-29 17:36:48 +08:00
|
|
|
|
//成功
|
2024-05-23 10:35:06 +08:00
|
|
|
|
cancelBlueConnetctToastTimer();
|
|
|
|
|
|
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final int dataLength = reply.data[8];
|
2024-05-23 10:35:06 +08:00
|
|
|
|
state.uploadPalmVeinDataList.addAll(reply.data.sublist(9, reply.data.length));
|
|
|
|
|
|
if(dataLength == 10){
|
|
|
|
|
|
// 当数据是10的时候继续请求
|
2024-06-11 14:03:48 +08:00
|
|
|
|
state.uploadPalmVeinPage = state.uploadPalmVeinPage + 1;
|
|
|
|
|
|
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final List<int> token = reply.data.sublist(3, 7);
|
2024-07-29 17:36:48 +08:00
|
|
|
|
|
|
|
|
|
|
showEasyLoading();
|
2024-05-23 10:35:06 +08:00
|
|
|
|
updataLockPalmVeinList(token, state.uploadPalmVeinPage);
|
|
|
|
|
|
}else{
|
2024-05-29 09:06:26 +08:00
|
|
|
|
// // 当数据不是10的时候解析数据上传
|
|
|
|
|
|
// if(state.uploadPalmVeinDataList.isEmpty){
|
|
|
|
|
|
// // 不需要上传 如果是空的直接上传下一个
|
|
|
|
|
|
// getUpdataLockSet();
|
|
|
|
|
|
// }else{
|
|
|
|
|
|
// // 如果不是空的解析数据上传
|
2024-07-29 17:36:48 +08:00
|
|
|
|
state.indexCount.value = state.indexCount.value + 1;
|
2024-05-23 10:35:06 +08:00
|
|
|
|
_lockDataUpload(uploadType:2, recordType:6, records:state.uploadPalmVeinDataList);
|
2024-05-29 09:06:26 +08:00
|
|
|
|
// }
|
2024-05-23 10:35:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 0x06:
|
|
|
|
|
|
//无权限
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final List<int> token = reply.data.sublist(3, 7);
|
|
|
|
|
|
final List<String> saveStrList = changeIntListToStringList(token);
|
2024-05-23 10:35:06 +08:00
|
|
|
|
Storage.setStringList(saveBlueToken, saveStrList);
|
|
|
|
|
|
|
|
|
|
|
|
updataLockPalmVeinList(token, state.uploadPalmVeinPage);
|
|
|
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
|
|
|
dismissEasyLoading();
|
|
|
|
|
|
state.sureBtnState.value = 0;
|
|
|
|
|
|
state.indexCount.value = 0;
|
|
|
|
|
|
cancelBlueConnetctToastTimer();
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-07-23 15:02:57 +08:00
|
|
|
|
// 上传数据获取锁遥控列表解析
|
|
|
|
|
|
Future<void> _replyUpdataLockRemoteControlListReply(Reply reply) async {
|
|
|
|
|
|
final int status = reply.data[2];
|
|
|
|
|
|
switch(status){
|
|
|
|
|
|
case 0x00:
|
2024-07-29 17:36:48 +08:00
|
|
|
|
//成功
|
2024-07-23 15:02:57 +08:00
|
|
|
|
cancelBlueConnetctToastTimer();
|
|
|
|
|
|
|
|
|
|
|
|
final int dataLength = reply.data[8];
|
|
|
|
|
|
state.uploadRemoteControlDataList.addAll(reply.data.sublist(9, reply.data.length));
|
|
|
|
|
|
if(dataLength == 10){
|
|
|
|
|
|
// 当数据是10的时候继续请求
|
|
|
|
|
|
state.uploadRemoteControlPage = state.uploadRemoteControlPage + 1;
|
|
|
|
|
|
|
|
|
|
|
|
final List<int> token = reply.data.sublist(3, 7);
|
2024-07-29 17:36:48 +08:00
|
|
|
|
|
|
|
|
|
|
showEasyLoading();
|
2024-07-23 15:02:57 +08:00
|
|
|
|
updataLockRemoteControlList(token, state.uploadRemoteControlPage);
|
|
|
|
|
|
}else{
|
|
|
|
|
|
// // 当数据不是10的时候解析数据上传
|
|
|
|
|
|
// if(state.uploadPalmVeinDataList.isEmpty){
|
|
|
|
|
|
// // 不需要上传 如果是空的直接上传下一个
|
|
|
|
|
|
// getUpdataLockSet();
|
|
|
|
|
|
// }else{
|
|
|
|
|
|
// // 如果不是空的解析数据上传
|
2024-07-29 17:36:48 +08:00
|
|
|
|
state.indexCount.value = state.indexCount.value + 1;
|
2024-07-23 15:02:57 +08:00
|
|
|
|
_lockDataUpload(uploadType:2, recordType:7, records:state.uploadRemoteControlDataList);
|
|
|
|
|
|
// }
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 0x06:
|
|
|
|
|
|
//无权限
|
|
|
|
|
|
final List<int> token = reply.data.sublist(3, 7);
|
|
|
|
|
|
final List<String> saveStrList = changeIntListToStringList(token);
|
|
|
|
|
|
Storage.setStringList(saveBlueToken, saveStrList);
|
|
|
|
|
|
|
|
|
|
|
|
updataLockRemoteControlList(token, state.uploadRemoteControlPage);
|
|
|
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
|
|
|
dismissEasyLoading();
|
|
|
|
|
|
state.sureBtnState.value = 0;
|
|
|
|
|
|
state.indexCount.value = 0;
|
|
|
|
|
|
cancelBlueConnetctToastTimer();
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-29 09:06:26 +08:00
|
|
|
|
// 上传数据获取锁设置解析
|
|
|
|
|
|
Future<void> _replyUpdataLockSetReply(Reply reply) async {
|
|
|
|
|
|
final int status = reply.data[2];
|
|
|
|
|
|
switch(status){
|
|
|
|
|
|
case 0x00:
|
2024-07-29 17:36:48 +08:00
|
|
|
|
//成功
|
2024-05-29 09:06:26 +08:00
|
|
|
|
state.indexCount.value = state.indexCount.value + 1;
|
|
|
|
|
|
cancelBlueConnetctToastTimer();
|
|
|
|
|
|
|
|
|
|
|
|
state.uploadLockSetDataList.addAll(reply.data.sublist(7, reply.data.length));
|
|
|
|
|
|
_lockDataUpload(uploadType:1, recordType:0, records:state.uploadLockSetDataList);
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 0x06:
|
|
|
|
|
|
//无权限
|
|
|
|
|
|
final List<int> token = reply.data.sublist(3, 7);
|
|
|
|
|
|
final List<String> saveStrList = changeIntListToStringList(token);
|
|
|
|
|
|
Storage.setStringList(saveBlueToken, saveStrList);
|
|
|
|
|
|
|
|
|
|
|
|
updataLockSet(token);
|
|
|
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
|
|
|
dismissEasyLoading();
|
|
|
|
|
|
state.sureBtnState.value = 0;
|
|
|
|
|
|
state.indexCount.value = 0;
|
|
|
|
|
|
cancelBlueConnetctToastTimer();
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-23 10:35:06 +08:00
|
|
|
|
// 上传数据获取锁密码列表
|
|
|
|
|
|
Future<void> getUpdataLockPasswordList() async {
|
|
|
|
|
|
if(state.sureBtnState.value == 1){
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
state.sureBtnState.value = 1;
|
|
|
|
|
|
|
|
|
|
|
|
showEasyLoading();
|
|
|
|
|
|
showBlueConnetctToastTimer(action: (){
|
|
|
|
|
|
dismissEasyLoading();
|
2024-07-29 17:36:48 +08:00
|
|
|
|
AppLog.log('上传密码列表获取超时 关闭加载菊花');
|
2024-05-23 10:35:06 +08:00
|
|
|
|
state.sureBtnState.value = 0;
|
|
|
|
|
|
});
|
2024-05-23 10:51:32 +08:00
|
|
|
|
BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState connectionState) async {
|
2024-05-23 10:35:06 +08:00
|
|
|
|
if (connectionState == BluetoothConnectionState.connected) {
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final List<String>? token = await Storage.getStringList(saveBlueToken);
|
|
|
|
|
|
final List<int> getTokenList = changeStringListToIntList(token!);
|
2024-05-23 10:35:06 +08:00
|
|
|
|
|
|
|
|
|
|
updataLockPasswordList(getTokenList, state.uploadPasswordPage);
|
|
|
|
|
|
} else if (connectionState == BluetoothConnectionState.disconnected) {
|
2024-07-29 17:36:48 +08:00
|
|
|
|
AppLog.log('上传密码列表连接失败 关闭加载菊花');
|
2024-05-23 10:35:06 +08:00
|
|
|
|
dismissEasyLoading();
|
|
|
|
|
|
cancelBlueConnetctToastTimer();
|
|
|
|
|
|
state.sureBtnState.value = 0;
|
|
|
|
|
|
if(state.ifCurrentScreen.value == true){
|
|
|
|
|
|
showBlueConnetctToast();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 公共的获取密码列表
|
|
|
|
|
|
Future<void> updataLockPasswordList(List<int> token, int page) async {
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final List<String>? privateKey = await Storage.getStringList(saveBluePrivateKey);
|
|
|
|
|
|
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
2024-05-23 10:35:06 +08:00
|
|
|
|
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final List<String>? signKey = await Storage.getStringList(saveBlueSignKey);
|
|
|
|
|
|
final List<int> signKeyDataList = changeStringListToIntList(signKey!);
|
2024-05-23 10:35:06 +08:00
|
|
|
|
|
|
|
|
|
|
IoSenderManage.updataLockPasswordListCommand(
|
|
|
|
|
|
lockID: BlueManage().connectDeviceName,
|
|
|
|
|
|
userID: await Storage.getUid(),
|
|
|
|
|
|
page: page,
|
|
|
|
|
|
countReq: state.countReq,
|
|
|
|
|
|
token: token,
|
|
|
|
|
|
needAuthor: 1,
|
|
|
|
|
|
signKey: signKeyDataList,
|
|
|
|
|
|
privateKey: getPrivateKeyList
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 上传数据获取锁Card列表
|
|
|
|
|
|
Future<void> getUpdataLockCardList() async {
|
|
|
|
|
|
showEasyLoading();
|
|
|
|
|
|
showBlueConnetctToastTimer(action: (){
|
|
|
|
|
|
dismissEasyLoading();
|
|
|
|
|
|
state.indexCount.value = 0;
|
|
|
|
|
|
state.sureBtnState.value = 0;
|
|
|
|
|
|
});
|
2024-05-23 10:51:32 +08:00
|
|
|
|
BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState connectionState) async {
|
2024-05-23 10:35:06 +08:00
|
|
|
|
if (connectionState == BluetoothConnectionState.connected) {
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final List<String>? token = await Storage.getStringList(saveBlueToken);
|
|
|
|
|
|
final List<int> getTokenList = changeStringListToIntList(token!);
|
2024-05-23 10:35:06 +08:00
|
|
|
|
|
|
|
|
|
|
updataLockCardList(getTokenList, state.uploadCardPage);
|
|
|
|
|
|
} else if (connectionState == BluetoothConnectionState.disconnected) {
|
|
|
|
|
|
dismissEasyLoading();
|
|
|
|
|
|
cancelBlueConnetctToastTimer();
|
|
|
|
|
|
state.sureBtnState.value = 0;
|
|
|
|
|
|
state.indexCount.value = 0;
|
|
|
|
|
|
if(state.ifCurrentScreen.value == true){
|
|
|
|
|
|
showBlueConnetctToast();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 公共的获取Card列表
|
|
|
|
|
|
Future<void> updataLockCardList(List<int> token, int page) async {
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final List<String>? privateKey = await Storage.getStringList(saveBluePrivateKey);
|
|
|
|
|
|
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
2024-05-23 10:35:06 +08:00
|
|
|
|
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final List<String>? signKey = await Storage.getStringList(saveBlueSignKey);
|
|
|
|
|
|
final List<int> signKeyDataList = changeStringListToIntList(signKey!);
|
2024-05-23 10:35:06 +08:00
|
|
|
|
|
|
|
|
|
|
IoSenderManage.updataLockCardListCommand(
|
|
|
|
|
|
lockID: BlueManage().connectDeviceName,
|
|
|
|
|
|
userID: await Storage.getUid(),
|
|
|
|
|
|
page: page,
|
|
|
|
|
|
countReq: state.countReq,
|
|
|
|
|
|
token: token,
|
|
|
|
|
|
needAuthor: 1,
|
|
|
|
|
|
signKey: signKeyDataList,
|
|
|
|
|
|
privateKey: getPrivateKeyList
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 上传数据获取锁指纹列表
|
|
|
|
|
|
Future<void> getUpdataLockFingerprintList() async {
|
|
|
|
|
|
showEasyLoading();
|
|
|
|
|
|
showBlueConnetctToastTimer(action: (){
|
|
|
|
|
|
dismissEasyLoading();
|
|
|
|
|
|
state.indexCount.value = 0;
|
|
|
|
|
|
state.sureBtnState.value = 0;
|
|
|
|
|
|
});
|
2024-05-23 10:51:32 +08:00
|
|
|
|
BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState connectionState) async {
|
2024-05-23 10:35:06 +08:00
|
|
|
|
if (connectionState == BluetoothConnectionState.connected) {
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final List<String>? token = await Storage.getStringList(saveBlueToken);
|
|
|
|
|
|
final List<int> getTokenList = changeStringListToIntList(token!);
|
2024-05-23 10:35:06 +08:00
|
|
|
|
|
|
|
|
|
|
updataLockFingerprintList(getTokenList, state.uploadFingerprintPage);
|
|
|
|
|
|
} else if (connectionState == BluetoothConnectionState.disconnected) {
|
|
|
|
|
|
dismissEasyLoading();
|
|
|
|
|
|
cancelBlueConnetctToastTimer();
|
|
|
|
|
|
state.sureBtnState.value = 0;
|
|
|
|
|
|
state.indexCount.value = 0;
|
|
|
|
|
|
if(state.ifCurrentScreen.value == true){
|
|
|
|
|
|
showBlueConnetctToast();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 公共的获取指纹列表
|
|
|
|
|
|
Future<void> updataLockFingerprintList(List<int> token, int page) async {
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final List<String>? privateKey = await Storage.getStringList(saveBluePrivateKey);
|
|
|
|
|
|
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
2024-05-23 10:35:06 +08:00
|
|
|
|
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final List<String>? signKey = await Storage.getStringList(saveBlueSignKey);
|
|
|
|
|
|
final List<int> signKeyDataList = changeStringListToIntList(signKey!);
|
2024-05-23 10:35:06 +08:00
|
|
|
|
|
|
|
|
|
|
IoSenderManage.updataLockFingerprintListCommand(
|
|
|
|
|
|
lockID: BlueManage().connectDeviceName,
|
|
|
|
|
|
userID: await Storage.getUid(),
|
|
|
|
|
|
page: page,
|
|
|
|
|
|
countReq: state.countReq,
|
|
|
|
|
|
token: token,
|
|
|
|
|
|
needAuthor: 1,
|
|
|
|
|
|
signKey: signKeyDataList,
|
|
|
|
|
|
privateKey: getPrivateKeyList
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 上传数据获取锁人脸列表
|
|
|
|
|
|
Future<void> getUpdataLockFaceList() async {
|
|
|
|
|
|
showEasyLoading();
|
|
|
|
|
|
showBlueConnetctToastTimer(action: (){
|
|
|
|
|
|
dismissEasyLoading();
|
|
|
|
|
|
state.indexCount.value = 0;
|
|
|
|
|
|
state.sureBtnState.value = 0;
|
|
|
|
|
|
});
|
2024-05-23 10:51:32 +08:00
|
|
|
|
BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState connectionState) async {
|
2024-05-23 10:35:06 +08:00
|
|
|
|
if (connectionState == BluetoothConnectionState.connected) {
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final List<String>? token = await Storage.getStringList(saveBlueToken);
|
|
|
|
|
|
final List<int> getTokenList = changeStringListToIntList(token!);
|
2024-05-23 10:35:06 +08:00
|
|
|
|
|
|
|
|
|
|
updataLockFaceList(getTokenList, state.uploadFacePage);
|
|
|
|
|
|
} else if (connectionState == BluetoothConnectionState.disconnected) {
|
|
|
|
|
|
dismissEasyLoading();
|
|
|
|
|
|
cancelBlueConnetctToastTimer();
|
|
|
|
|
|
state.sureBtnState.value = 0;
|
|
|
|
|
|
state.indexCount.value = 0;
|
|
|
|
|
|
if(state.ifCurrentScreen.value == true){
|
|
|
|
|
|
showBlueConnetctToast();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 公共的获取人脸列表
|
|
|
|
|
|
Future<void> updataLockFaceList(List<int> token, int page) async {
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final List<String>? privateKey = await Storage.getStringList(saveBluePrivateKey);
|
|
|
|
|
|
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
2024-05-23 10:35:06 +08:00
|
|
|
|
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final List<String>? signKey = await Storage.getStringList(saveBlueSignKey);
|
|
|
|
|
|
final List<int> signKeyDataList = changeStringListToIntList(signKey!);
|
2024-05-23 10:35:06 +08:00
|
|
|
|
|
|
|
|
|
|
IoSenderManage.updataLockFaceListCommand(
|
|
|
|
|
|
lockID: BlueManage().connectDeviceName,
|
|
|
|
|
|
userID: await Storage.getUid(),
|
|
|
|
|
|
page: page,
|
|
|
|
|
|
countReq: state.countReq,
|
|
|
|
|
|
token: token,
|
|
|
|
|
|
needAuthor: 1,
|
|
|
|
|
|
signKey: signKeyDataList,
|
|
|
|
|
|
privateKey: getPrivateKeyList
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 上传数据获取锁掌静脉列表
|
|
|
|
|
|
Future<void> getUpdataLockPalmVeinList() async {
|
|
|
|
|
|
showEasyLoading();
|
|
|
|
|
|
showBlueConnetctToastTimer(action: (){
|
|
|
|
|
|
dismissEasyLoading();
|
|
|
|
|
|
state.indexCount.value = 0;
|
|
|
|
|
|
state.sureBtnState.value = 0;
|
|
|
|
|
|
});
|
2024-05-23 10:51:32 +08:00
|
|
|
|
BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState connectionState) async {
|
2024-05-23 10:35:06 +08:00
|
|
|
|
if (connectionState == BluetoothConnectionState.connected) {
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final List<String>? token = await Storage.getStringList(saveBlueToken);
|
|
|
|
|
|
final List<int> getTokenList = changeStringListToIntList(token!);
|
2024-05-23 10:35:06 +08:00
|
|
|
|
|
|
|
|
|
|
updataLockPalmVeinList(getTokenList, state.uploadPalmVeinPage);
|
|
|
|
|
|
} else if (connectionState == BluetoothConnectionState.disconnected) {
|
|
|
|
|
|
dismissEasyLoading();
|
|
|
|
|
|
cancelBlueConnetctToastTimer();
|
|
|
|
|
|
state.sureBtnState.value = 0;
|
|
|
|
|
|
state.indexCount.value = 0;
|
|
|
|
|
|
if(state.ifCurrentScreen.value == true){
|
|
|
|
|
|
showBlueConnetctToast();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 公共的获取掌静脉列表
|
|
|
|
|
|
Future<void> updataLockPalmVeinList(List<int> token, int page) async {
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final List<String>? privateKey = await Storage.getStringList(saveBluePrivateKey);
|
|
|
|
|
|
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
2024-05-23 10:35:06 +08:00
|
|
|
|
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final List<String>? signKey = await Storage.getStringList(saveBlueSignKey);
|
|
|
|
|
|
final List<int> signKeyDataList = changeStringListToIntList(signKey!);
|
2024-05-23 10:35:06 +08:00
|
|
|
|
|
|
|
|
|
|
IoSenderManage.updataLockPalmVeinListCommand(
|
|
|
|
|
|
lockID: BlueManage().connectDeviceName,
|
|
|
|
|
|
userID: await Storage.getUid(),
|
|
|
|
|
|
page: page,
|
|
|
|
|
|
countReq: state.countReq,
|
|
|
|
|
|
token: token,
|
|
|
|
|
|
needAuthor: 1,
|
|
|
|
|
|
signKey: signKeyDataList,
|
|
|
|
|
|
privateKey: getPrivateKeyList
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-07-23 15:02:57 +08:00
|
|
|
|
// 上传数据获取锁遥控列表
|
|
|
|
|
|
Future<void> getUpdataLockRemoteControlList() async {
|
|
|
|
|
|
showEasyLoading();
|
|
|
|
|
|
showBlueConnetctToastTimer(action: (){
|
|
|
|
|
|
dismissEasyLoading();
|
|
|
|
|
|
state.indexCount.value = 0;
|
|
|
|
|
|
state.sureBtnState.value = 0;
|
|
|
|
|
|
});
|
|
|
|
|
|
BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState connectionState) async {
|
|
|
|
|
|
if (connectionState == BluetoothConnectionState.connected) {
|
|
|
|
|
|
final List<String>? token = await Storage.getStringList(saveBlueToken);
|
|
|
|
|
|
final List<int> getTokenList = changeStringListToIntList(token!);
|
|
|
|
|
|
|
|
|
|
|
|
updataLockRemoteControlList(getTokenList, state.uploadRemoteControlPage);
|
|
|
|
|
|
} else if (connectionState == BluetoothConnectionState.disconnected) {
|
|
|
|
|
|
dismissEasyLoading();
|
|
|
|
|
|
cancelBlueConnetctToastTimer();
|
|
|
|
|
|
state.sureBtnState.value = 0;
|
|
|
|
|
|
state.indexCount.value = 0;
|
|
|
|
|
|
if(state.ifCurrentScreen.value == true){
|
|
|
|
|
|
showBlueConnetctToast();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 公共的获取遥控列表
|
|
|
|
|
|
Future<void> updataLockRemoteControlList(List<int> token, int page) async {
|
|
|
|
|
|
final List<String>? privateKey = await Storage.getStringList(saveBluePrivateKey);
|
|
|
|
|
|
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
|
|
|
|
|
|
|
|
|
|
|
final List<String>? signKey = await Storage.getStringList(saveBlueSignKey);
|
|
|
|
|
|
final List<int> signKeyDataList = changeStringListToIntList(signKey!);
|
|
|
|
|
|
|
|
|
|
|
|
IoSenderManage.updataLockRemoteControlListCommand(
|
|
|
|
|
|
lockID: BlueManage().connectDeviceName,
|
|
|
|
|
|
userID: await Storage.getUid(),
|
|
|
|
|
|
page: page,
|
|
|
|
|
|
countReq: state.countReq,
|
|
|
|
|
|
token: token,
|
|
|
|
|
|
needAuthor: 1,
|
|
|
|
|
|
signKey: signKeyDataList,
|
|
|
|
|
|
privateKey: getPrivateKeyList
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-29 09:06:26 +08:00
|
|
|
|
// 上传数据获取设置
|
|
|
|
|
|
Future<void> getUpdataLockSet() async {
|
|
|
|
|
|
showEasyLoading();
|
|
|
|
|
|
showBlueConnetctToastTimer(action: (){
|
|
|
|
|
|
dismissEasyLoading();
|
|
|
|
|
|
state.indexCount.value = 0;
|
|
|
|
|
|
state.sureBtnState.value = 0;
|
|
|
|
|
|
});
|
|
|
|
|
|
BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState connectionState) async {
|
|
|
|
|
|
if (connectionState == BluetoothConnectionState.connected) {
|
|
|
|
|
|
final List<String>? token = await Storage.getStringList(saveBlueToken);
|
|
|
|
|
|
final List<int> getTokenList = changeStringListToIntList(token!);
|
|
|
|
|
|
|
|
|
|
|
|
updataLockSet(getTokenList);
|
|
|
|
|
|
} else if (connectionState == BluetoothConnectionState.disconnected) {
|
|
|
|
|
|
dismissEasyLoading();
|
|
|
|
|
|
cancelBlueConnetctToastTimer();
|
|
|
|
|
|
state.sureBtnState.value = 0;
|
|
|
|
|
|
state.indexCount.value = 0;
|
|
|
|
|
|
if(state.ifCurrentScreen.value == true){
|
|
|
|
|
|
showBlueConnetctToast();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 公共的上传锁设置
|
|
|
|
|
|
Future<void> updataLockSet(List<int> token) async {
|
|
|
|
|
|
final List<String>? privateKey = await Storage.getStringList(saveBluePrivateKey);
|
|
|
|
|
|
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
|
|
|
|
|
|
|
|
|
|
|
final List<String>? signKey = await Storage.getStringList(saveBlueSignKey);
|
|
|
|
|
|
final List<int> signKeyDataList = changeStringListToIntList(signKey!);
|
|
|
|
|
|
|
|
|
|
|
|
IoSenderManage.updataLockSetCommand(
|
|
|
|
|
|
lockID: BlueManage().connectDeviceName,
|
|
|
|
|
|
userID: await Storage.getUid(),
|
|
|
|
|
|
token: token,
|
|
|
|
|
|
needAuthor: 1,
|
|
|
|
|
|
signKey: signKeyDataList,
|
|
|
|
|
|
privateKey: getPrivateKeyList
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-23 10:35:06 +08:00
|
|
|
|
// 锁数据上传服务器
|
|
|
|
|
|
Future<void> _lockDataUpload({
|
|
|
|
|
|
required int uploadType,
|
|
|
|
|
|
required int recordType,
|
|
|
|
|
|
required List records
|
|
|
|
|
|
}) async{
|
2024-05-29 09:06:26 +08:00
|
|
|
|
final LoginEntity entity = await ApiRepository.to.lockDataUpload(
|
2024-05-23 10:35:06 +08:00
|
|
|
|
lockId: CommonDataManage().currentKeyInfo.lockId!,
|
|
|
|
|
|
uploadType:uploadType,
|
|
|
|
|
|
recordType: recordType,
|
2024-05-29 09:06:26 +08:00
|
|
|
|
records:records,
|
|
|
|
|
|
isUnShowLoading: false
|
2024-05-23 10:35:06 +08:00
|
|
|
|
);
|
|
|
|
|
|
if(entity.errorCode!.codeIsSuccessful){
|
|
|
|
|
|
if(uploadType == 1){
|
|
|
|
|
|
// 1设置
|
2024-05-29 09:06:26 +08:00
|
|
|
|
state.indexCount.value = 0;
|
|
|
|
|
|
state.sureBtnState.value = 0;
|
2024-08-21 14:12:15 +08:00
|
|
|
|
showToast('上传成功'.tr);
|
2024-05-23 10:35:06 +08:00
|
|
|
|
}else{
|
|
|
|
|
|
// 2开门方式
|
|
|
|
|
|
switch(recordType){
|
|
|
|
|
|
// case 1:
|
|
|
|
|
|
// // 电子钥匙
|
|
|
|
|
|
//
|
|
|
|
|
|
// break;
|
|
|
|
|
|
case 2:
|
2024-05-29 09:06:26 +08:00
|
|
|
|
// 密码上传成功之后,获取卡列表
|
2024-05-23 10:35:06 +08:00
|
|
|
|
getUpdataLockCardList();
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 3:
|
2024-05-29 09:06:26 +08:00
|
|
|
|
// IC卡上传成功,获取指纹列表
|
2024-05-23 10:35:06 +08:00
|
|
|
|
getUpdataLockFingerprintList();
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 4:
|
2024-05-29 09:06:26 +08:00
|
|
|
|
// 指纹上传成功,获取人脸列表
|
2024-05-23 10:35:06 +08:00
|
|
|
|
getUpdataLockFaceList();
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 5:
|
2024-05-29 09:06:26 +08:00
|
|
|
|
// 人脸上传成功,获取掌静脉列表
|
2024-05-23 10:35:06 +08:00
|
|
|
|
getUpdataLockPalmVeinList();
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 6:
|
2024-07-23 15:02:57 +08:00
|
|
|
|
// 掌静脉上传成功,获取锁遥控
|
|
|
|
|
|
getUpdataLockRemoteControlList();
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 7:
|
|
|
|
|
|
// 遥控上传成功,获取锁设置
|
2024-05-29 09:06:26 +08:00
|
|
|
|
getUpdataLockSet();
|
2024-05-23 10:35:06 +08:00
|
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}else{
|
|
|
|
|
|
state.indexCount.value = 0;
|
|
|
|
|
|
state.sureBtnState.value = 0;
|
2024-07-29 17:36:48 +08:00
|
|
|
|
dismissEasyLoading();
|
2024-05-23 10:35:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
|
void onReady() {
|
|
|
|
|
|
super.onReady();
|
|
|
|
|
|
|
|
|
|
|
|
_initReplySubscription();
|
|
|
|
|
|
|
|
|
|
|
|
// getUpdataLockPalmVeinList();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
|
void onClose() {
|
|
|
|
|
|
super.onClose();
|
|
|
|
|
|
|
|
|
|
|
|
_replySubscription.cancel();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|