mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-07-09 22:57:21 +00:00
Implemented some operations for the cps feature.
This commit is contained in:
635
lib/pages/routines/models/ceiling_presence_sensor_functions.dart
Normal file
635
lib/pages/routines/models/ceiling_presence_sensor_functions.dart
Normal file
@ -0,0 +1,635 @@
|
||||
import 'package:syncrow_web/pages/routines/models/device_functions.dart';
|
||||
import 'package:syncrow_web/utils/constants/assets.dart';
|
||||
|
||||
class CpsOperationalValue {
|
||||
final String icon;
|
||||
final String description;
|
||||
final dynamic value;
|
||||
|
||||
CpsOperationalValue({
|
||||
required this.icon,
|
||||
required this.description,
|
||||
required this.value,
|
||||
});
|
||||
}
|
||||
|
||||
abstract class CpsFunctions extends DeviceFunction<CpsOperationalValue> {
|
||||
CpsFunctions({
|
||||
required super.deviceId,
|
||||
required super.deviceName,
|
||||
required super.code,
|
||||
required super.operationName,
|
||||
required super.icon,
|
||||
required this.type,
|
||||
});
|
||||
|
||||
final String type;
|
||||
|
||||
List<CpsOperationalValue> getOperationalValues();
|
||||
}
|
||||
|
||||
final class CpsRadarSwitchFunction extends CpsFunctions {
|
||||
CpsRadarSwitchFunction({
|
||||
required super.deviceId,
|
||||
required super.deviceName,
|
||||
required super.type,
|
||||
}) : super(
|
||||
code: 'radar_switch',
|
||||
operationName: 'Radar Switch',
|
||||
icon: Assets.acPower,
|
||||
);
|
||||
|
||||
@override
|
||||
List<CpsOperationalValue> getOperationalValues() => [
|
||||
CpsOperationalValue(
|
||||
icon: Assets.assetsAcPower,
|
||||
description: "ON",
|
||||
value: true,
|
||||
),
|
||||
CpsOperationalValue(
|
||||
icon: Assets.assetsAcPowerOFF,
|
||||
description: "OFF",
|
||||
value: false,
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
final class CpsSpatialParameterSwitchFunction extends CpsFunctions {
|
||||
CpsSpatialParameterSwitchFunction({
|
||||
required super.deviceId,
|
||||
required super.deviceName,
|
||||
required super.type,
|
||||
}) : super(
|
||||
code: 'space_para_switch',
|
||||
operationName: 'Spatial Parameter Switch',
|
||||
icon: Assets.acPower,
|
||||
);
|
||||
|
||||
@override
|
||||
List<CpsOperationalValue> getOperationalValues() => [
|
||||
CpsOperationalValue(
|
||||
icon: Assets.assetsAcPower,
|
||||
description: "ON",
|
||||
value: true,
|
||||
),
|
||||
CpsOperationalValue(
|
||||
icon: Assets.assetsAcPowerOFF,
|
||||
description: "OFF",
|
||||
value: false,
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
final class CpsSensitivityFunction extends CpsFunctions {
|
||||
CpsSensitivityFunction({
|
||||
required super.deviceId,
|
||||
required super.deviceName,
|
||||
required super.type,
|
||||
}) : min = 1,
|
||||
max = 10,
|
||||
step = 1,
|
||||
scale = 0,
|
||||
super(
|
||||
code: 'far_detection',
|
||||
operationName: 'Far Detection',
|
||||
icon: Assets.sensitivity,
|
||||
);
|
||||
|
||||
final int min;
|
||||
final int max;
|
||||
final int step;
|
||||
final int scale;
|
||||
|
||||
@override
|
||||
List<CpsOperationalValue> getOperationalValues() {
|
||||
final values = <CpsOperationalValue>[];
|
||||
for (var value = min; value <= max; value += step) {
|
||||
values.add(
|
||||
CpsOperationalValue(
|
||||
icon: Assets.sensitivity,
|
||||
description: '$value',
|
||||
value: value,
|
||||
),
|
||||
);
|
||||
}
|
||||
return values;
|
||||
}
|
||||
}
|
||||
|
||||
final class CpsMovingSpeedFunction extends CpsFunctions {
|
||||
CpsMovingSpeedFunction({
|
||||
required super.deviceId,
|
||||
required super.deviceName,
|
||||
required super.type,
|
||||
}) : super(
|
||||
code: '',
|
||||
operationName: '',
|
||||
icon: Assets.speedoMeter,
|
||||
);
|
||||
@override
|
||||
List<CpsOperationalValue> getOperationalValues() {
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
final class CpsSpatialStaticValueFunction extends CpsFunctions {
|
||||
CpsSpatialStaticValueFunction({
|
||||
required super.deviceId,
|
||||
required super.deviceName,
|
||||
required super.type,
|
||||
}) : super(
|
||||
code: '',
|
||||
operationName: '',
|
||||
icon: Assets.spatialStaticValue,
|
||||
);
|
||||
@override
|
||||
List<CpsOperationalValue> getOperationalValues() {
|
||||
// TODO: implement getOperationalValues
|
||||
throw UnimplementedError();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
final class CpsSpatialMotionValueFunction extends CpsFunctions {
|
||||
CpsSpatialMotionValueFunction({
|
||||
required super.deviceId,
|
||||
required super.deviceName,
|
||||
required super.type,
|
||||
}) : super(
|
||||
code: '',
|
||||
operationName: '',
|
||||
icon: Assets.spatialMotionValue,
|
||||
);
|
||||
@override
|
||||
List<CpsOperationalValue> getOperationalValues() {
|
||||
// TODO: implement getOperationalValues
|
||||
throw UnimplementedError();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
final class CpsMaxDistanceOfDetectionFunction extends CpsFunctions {
|
||||
CpsMaxDistanceOfDetectionFunction({
|
||||
required super.deviceId,
|
||||
required super.deviceName,
|
||||
required super.type,
|
||||
}) : super(
|
||||
code: '',
|
||||
operationName: '',
|
||||
icon: Assets.currentDistanceIcon,
|
||||
);
|
||||
@override
|
||||
List<CpsOperationalValue> getOperationalValues() {
|
||||
// TODO: implement getOperationalValues
|
||||
throw UnimplementedError();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
final class CpsMaxDistanceOfStaticDetectionFunction extends CpsFunctions {
|
||||
CpsMaxDistanceOfStaticDetectionFunction({
|
||||
required super.deviceId,
|
||||
required super.deviceName,
|
||||
required super.type,
|
||||
}) : super(
|
||||
code: '',
|
||||
operationName: '',
|
||||
icon: Assets.currentDistanceIcon,
|
||||
);
|
||||
@override
|
||||
List<CpsOperationalValue> getOperationalValues() {
|
||||
// TODO: implement getOperationalValues
|
||||
throw UnimplementedError();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
final class CpsDetectionRangeFunction extends CpsFunctions {
|
||||
CpsDetectionRangeFunction({
|
||||
required super.deviceId,
|
||||
required super.deviceName,
|
||||
required super.type,
|
||||
}) : super(
|
||||
code: '',
|
||||
operationName: '',
|
||||
icon: Assets.farDetection,
|
||||
);
|
||||
@override
|
||||
List<CpsOperationalValue> getOperationalValues() {
|
||||
// TODO: implement getOperationalValues
|
||||
throw UnimplementedError();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
final class CpsDistanceOfMovingObjectsFunction extends CpsFunctions {
|
||||
CpsDistanceOfMovingObjectsFunction({
|
||||
required super.deviceId,
|
||||
required super.deviceName,
|
||||
required super.type,
|
||||
}) : super(
|
||||
code: '',
|
||||
operationName: '',
|
||||
icon: Assets.currentDistanceIcon,
|
||||
);
|
||||
@override
|
||||
List<CpsOperationalValue> getOperationalValues() {
|
||||
// TODO: implement getOperationalValues
|
||||
throw UnimplementedError();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
final class CpsPresenceJudgementThrsholdFunction extends CpsFunctions {
|
||||
CpsPresenceJudgementThrsholdFunction({
|
||||
required super.deviceId,
|
||||
required super.deviceName,
|
||||
required super.type,
|
||||
}) : super(
|
||||
code: '',
|
||||
operationName: '',
|
||||
icon: Assets.presenceJudgementThrshold,
|
||||
);
|
||||
@override
|
||||
List<CpsOperationalValue> getOperationalValues() {
|
||||
// TODO: implement getOperationalValues
|
||||
throw UnimplementedError();
|
||||
}
|
||||
}
|
||||
|
||||
final class CpsMotionAmplitudeTriggerThresholdFunction extends CpsFunctions {
|
||||
CpsMotionAmplitudeTriggerThresholdFunction({
|
||||
required super.deviceId,
|
||||
required super.deviceName,
|
||||
required super.type,
|
||||
}) : super(
|
||||
code: '',
|
||||
operationName: '',
|
||||
icon: Assets.presenceJudgementThrshold,
|
||||
);
|
||||
@override
|
||||
List<CpsOperationalValue> getOperationalValues() {
|
||||
// TODO: implement getOperationalValues
|
||||
throw UnimplementedError();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
final class CpsPerpetualBoundaryFunction extends CpsFunctions {
|
||||
CpsPerpetualBoundaryFunction({
|
||||
required super.deviceId,
|
||||
required super.deviceName,
|
||||
required super.type,
|
||||
}) : super(
|
||||
code: '',
|
||||
operationName: '',
|
||||
icon: Assets.boundary,
|
||||
);
|
||||
@override
|
||||
List<CpsOperationalValue> getOperationalValues() {
|
||||
// TODO: implement getOperationalValues
|
||||
throw UnimplementedError();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
final class CpsMotionTriggerBoundaryFunction extends CpsFunctions {
|
||||
CpsMotionTriggerBoundaryFunction({
|
||||
required super.deviceId,
|
||||
required super.deviceName,
|
||||
required super.type,
|
||||
}) : super(
|
||||
code: '',
|
||||
operationName: '',
|
||||
icon: Assets.motionMeter,
|
||||
);
|
||||
@override
|
||||
List<CpsOperationalValue> getOperationalValues() {
|
||||
// TODO: implement getOperationalValues
|
||||
throw UnimplementedError();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
final class CpsMotionTriggerTimeFunction extends CpsFunctions {
|
||||
CpsMotionTriggerTimeFunction({
|
||||
required super.deviceId,
|
||||
required super.deviceName,
|
||||
required super.type,
|
||||
}) : super(
|
||||
code: '',
|
||||
operationName: '',
|
||||
icon: Assets.motionMeter,
|
||||
);
|
||||
@override
|
||||
List<CpsOperationalValue> getOperationalValues() {
|
||||
// TODO: implement getOperationalValues
|
||||
throw UnimplementedError();
|
||||
}
|
||||
}
|
||||
|
||||
final class CpsMotionToStaticTimeFunction extends CpsFunctions {
|
||||
CpsMotionToStaticTimeFunction({
|
||||
required super.deviceId,
|
||||
required super.deviceName,
|
||||
required super.type,
|
||||
}) : super(
|
||||
code: '',
|
||||
operationName: '',
|
||||
icon: Assets.motionMeter,
|
||||
);
|
||||
@override
|
||||
List<CpsOperationalValue> getOperationalValues() {
|
||||
// TODO: implement getOperationalValues
|
||||
throw UnimplementedError();
|
||||
}
|
||||
}
|
||||
|
||||
final class CpsEnteringNoBodyStateTimeFunction extends CpsFunctions {
|
||||
CpsEnteringNoBodyStateTimeFunction({
|
||||
required super.deviceId,
|
||||
required super.deviceName,
|
||||
required super.type,
|
||||
}) : super(
|
||||
code: '',
|
||||
operationName: '',
|
||||
icon: Assets.motionMeter,
|
||||
);
|
||||
@override
|
||||
List<CpsOperationalValue> getOperationalValues() {
|
||||
// TODO: implement getOperationalValues
|
||||
throw UnimplementedError();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
final class CpsSelfTestResultFunctions extends CpsFunctions {
|
||||
CpsSelfTestResultFunctions({
|
||||
required super.deviceId,
|
||||
required super.deviceName,
|
||||
required super.type,
|
||||
}) : super(
|
||||
code: 'self_test_result',
|
||||
operationName: 'Self-Test Result',
|
||||
icon: Assets.selfTestResult,
|
||||
);
|
||||
@override
|
||||
List<CpsOperationalValue> getOperationalValues() {
|
||||
return [
|
||||
CpsOperationalValue(
|
||||
description: 'Self Testing',
|
||||
icon: Assets.selfTestResult,
|
||||
value: 'self_testing',
|
||||
),
|
||||
CpsOperationalValue(
|
||||
description: 'Self Testing Success',
|
||||
icon: Assets.selfTestingSuccess,
|
||||
value: 'self_testing_success',
|
||||
),
|
||||
CpsOperationalValue(
|
||||
description: 'Self Testing Failure',
|
||||
icon: Assets.selfTestingFailure,
|
||||
value: 'self_testing_failure',
|
||||
),
|
||||
CpsOperationalValue(
|
||||
description: 'Self Testing Timeout',
|
||||
icon: Assets.selfTestingTimeout,
|
||||
value: 'self_testing_timeout',
|
||||
),
|
||||
CpsOperationalValue(
|
||||
description: 'Communication Fault',
|
||||
icon: Assets.communicationFault,
|
||||
value: 'communication_fault',
|
||||
),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
final class CpsNobodyTimeFunction extends CpsFunctions {
|
||||
CpsNobodyTimeFunction({
|
||||
required super.deviceId,
|
||||
required super.deviceName,
|
||||
required super.type,
|
||||
}) : super(
|
||||
code: 'nobody_time',
|
||||
operationName: 'Entering Nobody Time',
|
||||
icon: Assets.assetsNobodyTime,
|
||||
);
|
||||
|
||||
@override
|
||||
List<CpsOperationalValue> getOperationalValues() {
|
||||
return [
|
||||
CpsOperationalValue(
|
||||
icon: Assets.assetsNobodyTime,
|
||||
description: 'None',
|
||||
value: 'none',
|
||||
),
|
||||
CpsOperationalValue(
|
||||
icon: Assets.assetsNobodyTime,
|
||||
description: '10sec',
|
||||
value: '10s',
|
||||
),
|
||||
CpsOperationalValue(
|
||||
icon: Assets.assetsNobodyTime,
|
||||
description: '30sec',
|
||||
value: '30s',
|
||||
),
|
||||
CpsOperationalValue(
|
||||
icon: Assets.assetsNobodyTime,
|
||||
description: '1min',
|
||||
value: '1min',
|
||||
),
|
||||
CpsOperationalValue(
|
||||
icon: Assets.assetsNobodyTime,
|
||||
description: '2min',
|
||||
value: '2min',
|
||||
),
|
||||
CpsOperationalValue(
|
||||
icon: Assets.assetsNobodyTime,
|
||||
description: '5min',
|
||||
value: '5min',
|
||||
),
|
||||
CpsOperationalValue(
|
||||
icon: Assets.assetsNobodyTime,
|
||||
description: '10min',
|
||||
value: '10min',
|
||||
),
|
||||
CpsOperationalValue(
|
||||
icon: Assets.assetsNobodyTime,
|
||||
description: '30min',
|
||||
value: '30min',
|
||||
),
|
||||
CpsOperationalValue(
|
||||
icon: Assets.assetsNobodyTime,
|
||||
description: '1hour',
|
||||
value: '1hr',
|
||||
),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
final class CpsMovementFunctions extends CpsFunctions {
|
||||
CpsMovementFunctions({
|
||||
required super.deviceId,
|
||||
required super.deviceName,
|
||||
required super.type,
|
||||
}) : super(
|
||||
code: 'movement',
|
||||
operationName: 'Movement',
|
||||
icon: Assets.motion,
|
||||
);
|
||||
@override
|
||||
List<CpsOperationalValue> getOperationalValues() {
|
||||
return [
|
||||
CpsOperationalValue(
|
||||
description: 'None',
|
||||
icon: Assets.nobodyTime,
|
||||
value: 'none',
|
||||
),
|
||||
CpsOperationalValue(
|
||||
description: 'Close To',
|
||||
icon: Assets.closeToMotion,
|
||||
value: 'parlour',
|
||||
),
|
||||
CpsOperationalValue(
|
||||
description: 'Far Away',
|
||||
icon: Assets.farAwayMotion,
|
||||
value: 'far_away',
|
||||
),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
final class CpsCustomModeFunction extends CpsFunctions {
|
||||
CpsCustomModeFunction({
|
||||
required super.deviceId,
|
||||
required super.deviceName,
|
||||
required super.type,
|
||||
}) : super(
|
||||
code: 'custom_mode',
|
||||
operationName: 'Custom Mode',
|
||||
icon: Assets.cpsCustomMode,
|
||||
);
|
||||
|
||||
@override
|
||||
List<CpsOperationalValue> getOperationalValues() {
|
||||
return [
|
||||
CpsOperationalValue(
|
||||
icon: Assets.cpsMode1,
|
||||
description: 'Mode 1',
|
||||
value: 'mode1',
|
||||
),
|
||||
CpsOperationalValue(
|
||||
icon: Assets.cpsMode2,
|
||||
description: 'Mode 2',
|
||||
value: 'mode2',
|
||||
),
|
||||
CpsOperationalValue(
|
||||
icon: Assets.cpsMode3,
|
||||
description: 'Mode 3',
|
||||
value: 'mode3',
|
||||
),
|
||||
CpsOperationalValue(
|
||||
icon: Assets.cpsMode4,
|
||||
description: 'Mode 4',
|
||||
value: 'mode4',
|
||||
),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
final class CpsSpaceTypeFunctions extends CpsFunctions {
|
||||
CpsSpaceTypeFunctions({
|
||||
required super.deviceId,
|
||||
required super.deviceName,
|
||||
required super.type,
|
||||
}) : super(
|
||||
code: 'space_type',
|
||||
operationName: 'Space Type',
|
||||
icon: Assets.spaceType,
|
||||
);
|
||||
@override
|
||||
List<CpsOperationalValue> getOperationalValues() {
|
||||
return [
|
||||
CpsOperationalValue(
|
||||
description: 'Office',
|
||||
icon: Assets.office,
|
||||
value: 'office',
|
||||
),
|
||||
CpsOperationalValue(
|
||||
description: 'Parlour',
|
||||
icon: Assets.parlour,
|
||||
value: 'parlour',
|
||||
),
|
||||
CpsOperationalValue(
|
||||
description: 'Bathroom',
|
||||
icon: Assets.bathroom,
|
||||
value: 'bathroom',
|
||||
),
|
||||
CpsOperationalValue(
|
||||
description: 'Bedroom',
|
||||
icon: Assets.bedroom,
|
||||
value: 'bedroom',
|
||||
),
|
||||
CpsOperationalValue(
|
||||
description: 'DIY',
|
||||
icon: Assets.dyi,
|
||||
value: 'dyi',
|
||||
),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
class CpsPresenceStatusFunctions extends CpsFunctions {
|
||||
CpsPresenceStatusFunctions({
|
||||
required super.deviceId,
|
||||
required super.deviceName,
|
||||
required super.type,
|
||||
}) : super(
|
||||
code: 'presence_state',
|
||||
operationName: 'Presence Status',
|
||||
icon: Assets.presenceSensor,
|
||||
);
|
||||
|
||||
@override
|
||||
List<CpsOperationalValue> getOperationalValues() {
|
||||
return [
|
||||
CpsOperationalValue(
|
||||
icon: Assets.nobodyTime,
|
||||
description: 'None',
|
||||
value: 'none',
|
||||
),
|
||||
CpsOperationalValue(
|
||||
icon: Assets.presenceState,
|
||||
description: 'Presence',
|
||||
value: 'presence',
|
||||
),
|
||||
CpsOperationalValue(
|
||||
icon: Assets.motion,
|
||||
description: 'Motion',
|
||||
value: 'motion',
|
||||
),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
final class CpsSportsParaFunction extends CpsFunctions {
|
||||
CpsSportsParaFunction({
|
||||
required super.deviceId,
|
||||
required super.deviceName,
|
||||
required super.type,
|
||||
}) : super(
|
||||
code: '',
|
||||
operationName: '',
|
||||
icon: Assets.sportsPara,
|
||||
);
|
||||
@override
|
||||
List<CpsOperationalValue> getOperationalValues() {
|
||||
// TODO: implement getOperationalValues
|
||||
throw UnimplementedError();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user