178 lines
6.6 KiB
Dart
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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<String> brightDurationTimeList =
<String>['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 = LockSetInfoData().obs;
RxString selectCatEyeWorkMode = ''.obs; //猫眼工作模式
RxInt settingOptions = 0.obs; // 设置项
final String settingSuccess = '设置成功'.tr;
/// 猫眼配置
Rx<CatEyeSetEntity> 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,
});
}