107 lines
4.5 KiB
Dart
Executable File
107 lines
4.5 KiB
Dart
Executable File
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:star_lock/app_settings/app_settings.dart';
|
|
import 'package:star_lock/blue/blue_manage.dart';
|
|
import 'package:star_lock/blue/io_protocol/io_setSupportFunctionsWithParameters.dart';
|
|
import 'package:star_lock/blue/io_tool/io_tool.dart';
|
|
import 'package:star_lock/main/lockDetail/lockSet/catEyeSet/catEyeCustomMode/catEyeCustomMode_state.dart';
|
|
import 'package:star_lock/main/lockDetail/lockSet/catEyeSet/catEyeSet/catEyeSet_logic.dart';
|
|
import 'package:star_lock/main/lockDetail/lockSet/catEyeSet/catEyeSet/catEyeSet_state.dart';
|
|
import 'package:star_lock/main/lockDetail/lockSet/lockSet/lockSetInfo_entity.dart';
|
|
import 'package:star_lock/network/api_repository.dart';
|
|
import 'package:star_lock/talk/starChart/star_chart_manage.dart';
|
|
import 'package:star_lock/tools/baseGetXController.dart';
|
|
import 'package:star_lock/tools/eventBusEventManage.dart';
|
|
import 'package:star_lock/tools/storage.dart';
|
|
|
|
import '../../../../../blue/sender_manage.dart';
|
|
|
|
class CatEyeCustomModeLogic extends BaseGetXController {
|
|
final CatEyeCustomModeState state = CatEyeCustomModeState();
|
|
final CatEyeSetLogic catEyeSetLogic = Get.put(CatEyeSetLogic());
|
|
final CatEyeSetState catEyeSetState = Get.find<CatEyeSetLogic>().state;
|
|
|
|
//设置猫眼工作模式 0-有人出现时录像 1-人体侦测距离
|
|
void updateCatEyeModeConfig(int clickIndex) async {
|
|
var entity = await ApiRepository.to.updateCatEyeModeConfig(
|
|
lockId: state.lockSetInfoData.value.lockId!,
|
|
catEyeConfig: [
|
|
{
|
|
'catEyeMode': 4,
|
|
'catEyeModeConfig': {
|
|
'recordMode':
|
|
state.catEyeConfigData.value.catEyeModeConfig!.recordMode,
|
|
'recordStartTime':
|
|
state.catEyeConfigData.value.catEyeModeConfig!.recordStartTime,
|
|
'recordEndTime':
|
|
state.catEyeConfigData.value.catEyeModeConfig!.recordEndTime,
|
|
'recordTime': clickIndex == 0
|
|
? state.recordTime.value
|
|
: state.catEyeConfigData.value.catEyeModeConfig!.recordTime,
|
|
'detectionDistance': clickIndex == 1
|
|
? state.detectionDistance.value
|
|
: state
|
|
.catEyeConfigData.value.catEyeModeConfig!.detectionDistance,
|
|
'realTimeMode':
|
|
state.catEyeConfigData.value.catEyeModeConfig!.realTimeMode,
|
|
}
|
|
}
|
|
],
|
|
);
|
|
if (entity.errorCode!.codeIsSuccessful) {
|
|
showToast('设置成功'.tr);
|
|
// await getLockSettingInfoData();
|
|
}
|
|
}
|
|
|
|
void updateCustomModeConfig(clickIndex) {
|
|
catEyeSetState.catEyeConfig.value.catEyeMode = 3;
|
|
catEyeSetState.catEyeConfig.value.recordTime =
|
|
state.showsUpVideoList.value.indexOf(state.recordTime.value);
|
|
catEyeSetState.catEyeConfig.value.detectionDistance =
|
|
state.detectionRangeList.value.indexOf(state.detectionDistance.value);
|
|
catEyeSetState.settingOptions.value = 5;
|
|
catEyeSetLogic.sendBlueMessage();
|
|
}
|
|
|
|
@override
|
|
void onInit() {
|
|
super.onInit();
|
|
if (catEyeSetState.catEyeConfig.value.recordMode == 0) {
|
|
state.selectVideoSlot.value = '自定义时段'.tr;
|
|
} else {
|
|
state.selectVideoSlot.value = '全天'.tr;
|
|
}
|
|
state.recordTime.value = state.showsUpVideoList
|
|
.value[catEyeSetState.catEyeConfig.value.recordTime ?? 0];
|
|
state.detectionDistance.value = state.detectionRangeList
|
|
.value[catEyeSetState.catEyeConfig.value.detectionDistance ?? 0];
|
|
state.realTimeMode.value =
|
|
catEyeSetState.catEyeConfig.value.realTimeMode == 0
|
|
? '发生事件时查看'.tr
|
|
: '实时查看'.tr;
|
|
eventBus
|
|
.on<PassCurrentLockInformationEvent>()
|
|
.listen((PassCurrentLockInformationEvent event) {
|
|
if (event.lockSetInfoData.lockSettingInfo != null &&
|
|
event.lockSetInfoData.lockSettingInfo!.catEyeConfig != null &&
|
|
event.lockSetInfoData.lockSettingInfo!.catEyeConfig!.length > 0) {
|
|
state.realTimeMode.value = event.lockSetInfoData.lockSettingInfo!
|
|
.catEyeConfig![0].catEyeModeConfig!.realTimeMode ==
|
|
0
|
|
? '发生事件时查看'.tr
|
|
: '实时查看'.tr;
|
|
if (event.lockSetInfoData.lockSettingInfo!.catEyeConfig![0]
|
|
.catEyeModeConfig!.recordMode ==
|
|
0) {
|
|
state.selectVideoSlot.value = '自定义时段'.tr;
|
|
} else {
|
|
state.selectVideoSlot.value = '全天'.tr;
|
|
}
|
|
state.realTimeMode.refresh();
|
|
|
|
}
|
|
});
|
|
}
|
|
}
|