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/catEyeSet/catEyeSet_logic.dart'; import 'package:star_lock/main/lockDetail/lockSet/catEyeSet/catEyeSet/catEyeSet_state.dart'; import 'package:star_lock/main/lockDetail/lockSet/catEyeSet/videoSlot/videoSlot_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/dateTool.dart'; import 'package:star_lock/tools/eventBusEventManage.dart'; import 'package:star_lock/tools/storage.dart'; import 'package:star_lock/versionUndate/versionUndate_entity.dart'; class VideoSlotLogic extends BaseGetXController { final VideoSlotState state = VideoSlotState(); final CatEyeSetLogic catEyeSetLogic = Get.put(CatEyeSetLogic()); final CatEyeSetState catEyeSetState = Get.find().state; //设置猫眼工作模式 Future updateCatEyeModeConfig() async { state.isCustom.value == false ? state.recordMode.value = 0 : state.recordMode.value = 1; if (state.isCustom.isTrue) { // 获取当前日期 DateTime now = DateTime.now(); // 将时间字符串解析为小时和分钟 List parts = state.startDate.value.split(":"); int hour = int.parse(parts[0]); int minute = int.parse(parts[1]); // 创建当天指定时间的 DateTime 对象 DateTime todayAtTime = DateTime(now.year, now.month, now.day, hour, minute); List partse = state.endDate.value.split(":"); int houre = int.parse(partse[0]); int minutee = int.parse(partse[1]); // 创建当天指定时间的 DateTime 对象 DateTime todayAtTimee = DateTime(now.year, now.month, now.day, houre, minutee); // 如果需要 UTC 时间戳,请使用 toUtc 方法;这里我们获取本地时间戳 state.recordStartTime.value = todayAtTime.millisecondsSinceEpoch; // 获取明天时间的时间戳 state.recordEndTime.value = todayAtTimee.add(Duration(days: 1)).millisecondsSinceEpoch; catEyeSetState.settingOptions.value = 5; catEyeSetState.catEyeConfig.value.catEyeMode = 3; catEyeSetState.catEyeConfig.value.recordMode = 0; catEyeSetState.catEyeConfig.value.recordStartTime = state.recordStartTime.value; catEyeSetState.catEyeConfig.value.recordEndTime = state.recordEndTime.value; catEyeSetLogic.sendBlueMessage(); } else { catEyeSetState.settingOptions.value = 5; catEyeSetState.catEyeConfig.value.catEyeMode = 3; catEyeSetState.catEyeConfig.value.recordMode = 1; catEyeSetState.catEyeConfig.value.recordStartTime = 0; catEyeSetState.catEyeConfig.value.recordEndTime = 0; catEyeSetLogic.sendBlueMessage(); } } @override void onInit() { super.onInit(); state.isCustom.value = catEyeSetState.catEyeConfig.value.recordMode == 0; state.startDate.value = _handleMinutesToTime( catEyeSetState.catEyeConfig.value.recordStartTime!); state.endDate.value = _handleMinutesToTime(catEyeSetState.catEyeConfig.value.recordEndTime!); } String _handleMinutesToTime(int minutes) { if (minutes < 0) { throw ArgumentError("分钟数不能为负值"); } // 计算小时和分钟 int hours = minutes ~/ 60; // 整除 60 得到小时数 int mins = minutes % 60; // 取模得到分钟数 // 格式化为 HH:mm 字符串 return "${hours.toString().padLeft(2, '0')}:${mins.toString().padLeft(2, '0')}"; } }