67 lines
2.1 KiB
Dart
67 lines
2.1 KiB
Dart
|
// ignore_for_file: constant_identifier_names
|
||
|
|
||
|
import 'parser.dart';
|
||
|
import 'sentence.dart';
|
||
|
|
||
|
const TypeDOR = "DOR";
|
||
|
|
||
|
// TypeSingleDoorDOR is type for single door related event
|
||
|
const TypeSingleDoorDOR = "E";
|
||
|
// TypeFaultDOR is type for fault with door
|
||
|
const TypeFaultDOR = "F";
|
||
|
// TypeSectionDOR is type for section of doors related event
|
||
|
const TypeSectionDOR = "S";
|
||
|
|
||
|
// DoorStatusOpenDOR is status for open door
|
||
|
const DoorStatusOpenDOR = "O";
|
||
|
// DoorStatusClosedDOR is status for closed door
|
||
|
const DoorStatusClosedDOR = "C";
|
||
|
// DoorStatusFaultDOR is status for fault with door
|
||
|
const DoorStatusFaultDOR = "X";
|
||
|
|
||
|
// SwitchSettingHarbourModeDOR is setting for Harbour mode (allowed open)
|
||
|
const SwitchSettingHarbourModeDOR = "O";
|
||
|
// SwitchSettingSeaModeDOR is setting for Sea mode (ordered closed)
|
||
|
const SwitchSettingSeaModeDOR = "C";
|
||
|
|
||
|
class DOR {
|
||
|
String type;
|
||
|
Time time;
|
||
|
String systemIndicator;
|
||
|
String divisionIndicator1;
|
||
|
int divisionIndicator2;
|
||
|
int doorNumberOrCount;
|
||
|
String doorStatus;
|
||
|
String switchSetting;
|
||
|
String message;
|
||
|
|
||
|
DOR(
|
||
|
{required this.type,
|
||
|
required this.time,
|
||
|
required this.systemIndicator,
|
||
|
required this.divisionIndicator1,
|
||
|
required this.divisionIndicator2,
|
||
|
required this.doorNumberOrCount,
|
||
|
required this.doorStatus,
|
||
|
required this.switchSetting,
|
||
|
required this.message});
|
||
|
|
||
|
static DOR newDOR(BaseSentence s) {
|
||
|
var p = Parser(s);
|
||
|
return DOR(
|
||
|
type: p.enumString(
|
||
|
0, "message type", [TypeSingleDoorDOR, TypeFaultDOR, TypeSectionDOR]),
|
||
|
time: p.time(1, "time"),
|
||
|
systemIndicator: p.string(2, "system indicator"),
|
||
|
divisionIndicator1: p.string(3, "division indicator 1"),
|
||
|
divisionIndicator2: p.int64(4, "division indicator 2"),
|
||
|
doorNumberOrCount: p.int64(5, "door number or count"),
|
||
|
doorStatus: p.enumString(6, "door state",
|
||
|
[DoorStatusOpenDOR, DoorStatusClosedDOR, DoorStatusFaultDOR]),
|
||
|
switchSetting: p.enumString(7, "switch setting mode",
|
||
|
[SwitchSettingHarbourModeDOR, SwitchSettingSeaModeDOR]),
|
||
|
message: p.string(8, "message"),
|
||
|
);
|
||
|
}
|
||
|
}
|