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