fromYaml static method
Load from YAML object
Implementation
static PointTableConfig fromYaml(dynamic yaml) {
final registers = <RegisterDefinition>[];
for (final regYaml in yaml['registers'] as YamlList) {
final reg = regYaml as YamlMap;
registers.add(RegisterDefinition(
name: reg['name'] as String,
address: reg['address'] as int,
type: RegisterType.values.byName(reg['type'] as String),
dataType: reg['dataType'] != null
? DataType.values.byName(reg['dataType'] as String)
: DataType.uint16,
quantity: reg['quantity'] as int?,
byteOrder: reg['byteOrder'] != null
? ByteOrder.values.byName(reg['byteOrder'] as String)
: ByteOrder.bigEndian,
multiplier: reg['multiplier'] != null
? (reg['multiplier'] as num).toDouble()
: null,
offset:
reg['offset'] != null ? (reg['offset'] as num).toDouble() : null,
unit: reg['unit'] as String?,
description: reg['description'] as String?,
readOnly: reg['readOnly'] as bool? ?? false,
));
}
return PointTableConfig(
name: yaml['name'] as String,
slaveId: yaml['slaveId'] as int,
protocol: yaml['protocol'] as String,
address: yaml['address'] as String?,
serialConfig: yaml['serialConfig'] != null
? Map<String, dynamic>.from(yaml['serialConfig'] as YamlMap)
: null,
registers: registers,
pollInterval: yaml['pollInterval'] as int?,
);
}