import 'package:get/get.dart'; import 'package:get/get_rx/get_rx.dart'; import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart'; import 'package:star_lock/main/lockDetail/lockSet/lockSet/lockSetInfo_entity.dart'; class CatEyeSetState { CatEyeSetState() { Map map = Get.arguments; lockSetInfoData.value = map['lockSetInfoData']; if (lockSetInfoData.value != null && lockSetInfoData.value.lockSettingInfo != null) { selectBrightDuration.value = '${lockSetInfoData.value.lockSettingInfo?.autoLightScreenTime} ${'秒'.tr}'; if (lockSetInfoData.value.lockSettingInfo?.autoLightScreen == 1) { isAutoBright.value = true; } else { isAutoBright.value = false; } if (lockSetInfoData.value.lockSettingInfo?.stayWarn == 1) { isStayWarning.value = true; } else { isStayWarning.value = false; } if (lockSetInfoData.value.lockSettingInfo?.abnormalWarn == 1) { isExceptionWarning.value = true; } else { isExceptionWarning.value = false; } selectCatEyeWorkMode.value = ''; //猫眼工作模式 if (lockSetInfoData.value.lockSettingInfo != null && lockSetInfoData.value.lockSettingInfo!.catEyeConfig != null && lockSetInfoData.value.lockSettingInfo!.catEyeConfig!.length > 0) { if (lockSetInfoData .value.lockSettingInfo!.catEyeConfig![0].catEyeMode == XSConstantMacro.catEyeWorkModePowerSaving) { selectCatEyeWorkMode.value = '省电模式'.tr; } else if (lockSetInfoData .value.lockSettingInfo!.catEyeConfig![0].catEyeMode == XSConstantMacro.catEyeWorkModeStayCapture) { selectCatEyeWorkMode.value = '逗留抓拍模式'.tr; } else if (lockSetInfoData .value.lockSettingInfo!.catEyeConfig![0].catEyeMode == XSConstantMacro.catEyeWorkModeRealTimeMonitoring) { selectCatEyeWorkMode.value = '实时监控模式'.tr; } else if (lockSetInfoData .value.lockSettingInfo!.catEyeConfig![0].catEyeMode == XSConstantMacro.catEyeWorkModeCustom) { selectCatEyeWorkMode.value = '自定义模式'.tr; } } updateCatEyeSetByState(); } } RxList brightDurationTimeList = ['10${'秒'.tr}', '15${'秒'.tr}', '20${'秒'.tr}'].obs; RxString selectBrightDuration = '10 ${'秒'.tr}'.obs; //选中的亮屏持续时间 RxBool isAutoBright = false.obs; //自动亮屏 RxBool isStayWarning = false.obs; //逗留警告 RxBool isExceptionWarning = false.obs; //异常警告 Rx lockSetInfoData = LockSetInfoData().obs; RxString selectCatEyeWorkMode = ''.obs; //猫眼工作模式 RxInt settingOptions = 0.obs; // 设置项 final String settingSuccess = '设置成功'.tr; /// 猫眼配置 Rx catEyeConfig = CatEyeSetEntity().obs; // 更新state中的猫眼设置 updateCatEyeSetByState() async { int originalCatEyeMode = 0; int recordMode = 0; int recordStartTime = 0; int recordEndTime = 0; int recordTime = 0; int detectionDistance = 0; int realTimeMode = 0; if (lockSetInfoData.value.lockSettingInfo!.catEyeConfig != null && lockSetInfoData.value.lockSettingInfo!.catEyeConfig!.length > 0) { originalCatEyeMode = lockSetInfoData.value.lockSettingInfo!.catEyeConfig![0].catEyeMode!; recordMode = lockSetInfoData.value.lockSettingInfo!.catEyeConfig![0] .catEyeModeConfig!.recordMode!; recordStartTime = _handleTimeToM(lockSetInfoData.value.lockSettingInfo! .catEyeConfig![0].catEyeModeConfig!.recordStartTime!); recordEndTime = _handleTimeToM(lockSetInfoData.value.lockSettingInfo! .catEyeConfig![0].catEyeModeConfig!.recordEndTime!); recordTime = int.parse(lockSetInfoData.value.lockSettingInfo! .catEyeConfig![0].catEyeModeConfig!.recordTime!); if (lockSetInfoData.value.lockSettingInfo!.catEyeConfig![0]! .catEyeModeConfig!.detectionDistance != null) { detectionDistance = int.parse(lockSetInfoData.value.lockSettingInfo! .catEyeConfig![0].catEyeModeConfig!.detectionDistance!); } realTimeMode = lockSetInfoData.value.lockSettingInfo!.catEyeConfig![0] .catEyeModeConfig!.realTimeMode!; } int stayWarn = lockSetInfoData.value.lockSettingInfo!.stayWarn!; int abnormalWarn = lockSetInfoData.value.lockSettingInfo!.abnormalWarn!; int autoLightScreen = lockSetInfoData.value.lockSettingInfo!.autoLightScreen!; // 根据需要调整 catEyeMode 的值 int adjustedCatEyeMode = originalCatEyeMode; int brightScreenTime = lockSetInfoData.value.lockSettingInfo!.autoLightScreenTime!; /// 对照星锁接口文档v0.2 的猫眼设置接口,获取出猫眼的所有设置 catEyeConfig.value = CatEyeSetEntity( catEyeMode: adjustedCatEyeMode, // 猫眼模式 看常量表 recordMode: recordMode, //录像时段 0全天 1自定义时间 recordStartTime: recordStartTime, //自定义时间需要填:recordStartTime与recordEndTime参数 recordEndTime: recordEndTime, //自定义时间需要填:recordStartTime与recordEndTime参数 realTimeMode: realTimeMode, autoLightScreenTime: brightScreenTime, stayWarn: stayWarn, autoLightScreen: autoLightScreen, // 打开自动亮屏 abnormalWarn: abnormalWarn, // 有人出现时录像时间 recordTime: recordTime, // 人体检测距离 detectionDistance: detectionDistance, realTimePicture: realTimeMode, ); catEyeConfig.refresh(); } int _handleTimeToM(int recordStartTime) { // 转换为 DateTime 对象 DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(recordStartTime); // 计算从当天0点开始的分钟数 int minutesSinceMidnight = dateTime.hour * 60 + dateTime.minute; return minutesSinceMidnight; } } class CatEyeSetEntity { int? catEyeMode; // 猫眼工作模式 int? recordMode; // 自定义模式下录像时段,是否 int? recordTime; // int? realTimeMode; int? recordEndTime; int? recordStartTime; int? detectionDistance; int? autoLightScreen; int? autoLightScreenTime; int? stayWarn; int? abnormalWarn; int? realTimePicture; CatEyeSetEntity({ this.catEyeMode, this.recordMode, this.recordTime, this.realTimeMode, this.recordEndTime, this.recordStartTime, this.detectionDistance, this.autoLightScreen, this.autoLightScreenTime, this.stayWarn, this.abnormalWarn, this.realTimePicture, }); }