chore(project): 初始化项目基础配置文件
- 添加 CodeGraph、Android 和通用 gitignore 配置 - 创建项目元数据文件跟踪 Flutter 项目属性 - 添加 Codex AI 指导文档 AGENTS.md 说明项目架构 - 配置代码分析选项 analysis_options.yaml - 设置 Android 应用清单权限和 Kiosk 模式配置 - 实现中英文国际化支持 AppLocalizations - 配置 GoRouter 应用路由导航 - 创建明亮工业控制风格的主题配置 AppTheme
This commit is contained in:
73
lib/features/device/models/device_state.dart
Normal file
73
lib/features/device/models/device_state.dart
Normal file
@@ -0,0 +1,73 @@
|
||||
/// 设备状态模型
|
||||
enum DeviceStatus { idle, running, paused, error }
|
||||
|
||||
/// 设备状态数据
|
||||
class DeviceState {
|
||||
final DeviceStatus status;
|
||||
final String? currentProgram;
|
||||
final String? currentPosition;
|
||||
final int? currentStepNo;
|
||||
final String? currentStepName;
|
||||
final int? remainingSeconds;
|
||||
final double? progress;
|
||||
final bool lightingOn;
|
||||
|
||||
DeviceState({
|
||||
this.status = DeviceStatus.idle,
|
||||
this.currentProgram,
|
||||
this.currentPosition,
|
||||
this.currentStepNo,
|
||||
this.currentStepName,
|
||||
this.remainingSeconds,
|
||||
this.progress,
|
||||
this.lightingOn = false,
|
||||
});
|
||||
|
||||
bool get isRunning => status == DeviceStatus.running;
|
||||
bool get isPaused => status == DeviceStatus.paused;
|
||||
bool get isIdle => status == DeviceStatus.idle;
|
||||
bool get hasError => status == DeviceStatus.error;
|
||||
|
||||
String statusText() {
|
||||
switch (status) {
|
||||
case DeviceStatus.running:
|
||||
return '运行中';
|
||||
case DeviceStatus.paused:
|
||||
return '已暂停';
|
||||
case DeviceStatus.error:
|
||||
return '错误';
|
||||
case DeviceStatus.idle:
|
||||
return '未运行';
|
||||
}
|
||||
}
|
||||
|
||||
String formatRemainingTime() {
|
||||
if (remainingSeconds == null) return '--:--:--';
|
||||
final hours = remainingSeconds! ~/ 3600;
|
||||
final minutes = (remainingSeconds! % 3600) ~/ 60;
|
||||
final seconds = remainingSeconds! % 60;
|
||||
return '${hours.toString().padLeft(2, '0')}:${minutes.toString().padLeft(2, '0')}:${seconds.toString().padLeft(2, '0')}';
|
||||
}
|
||||
|
||||
DeviceState copyWith({
|
||||
DeviceStatus? status,
|
||||
String? currentProgram,
|
||||
String? currentPosition,
|
||||
int? currentStepNo,
|
||||
String? currentStepName,
|
||||
int? remainingSeconds,
|
||||
double? progress,
|
||||
bool? lightingOn,
|
||||
}) {
|
||||
return DeviceState(
|
||||
status: status ?? this.status,
|
||||
currentProgram: currentProgram ?? this.currentProgram,
|
||||
currentPosition: currentPosition ?? this.currentPosition,
|
||||
currentStepNo: currentStepNo ?? this.currentStepNo,
|
||||
currentStepName: currentStepName ?? this.currentStepName,
|
||||
remainingSeconds: remainingSeconds ?? this.remainingSeconds,
|
||||
progress: progress ?? this.progress,
|
||||
lightingOn: lightingOn ?? this.lightingOn,
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user