fromYaml static method

PointTableConfig fromYaml(
  1. dynamic yaml
)

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?,
  );
}