readFromClient method

  1. @override
Future<T> readFromClient(
  1. ModbusClient client,
  2. Register registerType,
  3. int address
)
override

Implementation

@override
Future<T> readFromClient(
  ModbusClient client,
  Register registerType,
  int address,
) {
  assert(canRead(T, registerType, address));

  final ReadRegister<List<bool?>> readRegister = () {
    switch (registerType) {
      case Register.coil:
        return client.readCoils;
      case Register.discreteInput:
        return client.readDiscreteInputs;
      default:
        throw ArgumentError(
          '$registerType is not supported by $T converter $this',
        );
    }
  }();

  return read(
    (amount) {
      final future = readRegister(address, amount);
      address += amount;
      return future;
    },
  );
}