99 lines
3.9 KiB
Dart
Executable File
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')}";
|
|
}
|
|
}
|