2025-02-27 18:51:10 +08:00

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();
}
});
}
}