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

99 lines
3.9 KiB
Dart
Executable File

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<CatEyeSetLogic>().state;
//设置猫眼工作模式
Future<void> updateCatEyeModeConfig() async {
state.isCustom.value == false
? state.recordMode.value = 0
: state.recordMode.value = 1;
if (state.isCustom.isTrue) {
// 获取当前日期
DateTime now = DateTime.now();
// 将时间字符串解析为小时和分钟
List<String> 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<String> 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')}";
}
}