version method

Future<String> version()

Gets the device firmware version string

Parameters

void

Returns

version : String Firmware version

Implementation

Future<String> version() async {
  final String header = "ScientISST";
  final int headerLen = header.length;

  final int cmd = 0x07;
  await _send(cmd);

  String version = "";
  while (true) {
    final result = await _recv(1);
    if (version.length >= headerLen) {
      if (result.first == 0x00) {
        break;
      } else if (result != utf8.encode("\n")) {
        version += utf8.decode(result);
      }
    } else {
      final char = utf8.decode(result);
      if (char == header[version.length]) {
        version += char;
      } else {
        version = "";
        if (char == header[0]) {
          version += char;
        }
      }
    }
  }

  print("ScientISST version: $version");
  return version;
}