setPresetCruiseLine method

Future<bool> setPresetCruiseLine({
  1. required List records,
  2. int timeout = 5,
})

Implementation

Future<bool> setPresetCruiseLine(
    {required List records, int timeout = 5}) async {
  var cmdString = 'trans_cmd_string.cgi?cmd=2160&command=0&';
  if (records == null) {
    cmdString += 'sumPreset=0&';
  } else {
    cmdString += 'sumPreset=${records.length}&';

    for (int i = 0; i < records.length; i++) {
      var num = records[i]['num'];
      var speed = records[i]['speed'];
      var time = records[i]['time']; //εœη•™ζ—Άι—΄

      var flag = i + 1;

      cmdString += 'preset${flag}_num=$num&';
      cmdString += 'preset${flag}_speed=$speed&';
      cmdString += 'preset${flag}_stoptime=$time&';
    }
  }

  bool ret = await _command.writeCgi(cmdString, timeout: timeout);
  if (ret) {
    CommandResult result =
        await _command.waitCommandResult((int cmd, Uint8List data) {
      if (cmd == 24785) {
        String str = utf8.decode(data);
        return str.contains("cmd=2160;") && str.contains("command=0;");
      }
      return false;
    }, timeout);
    if (result.isSuccess) {
      Map data = result.getMap();
      if (data["result"] == "0") {
        return true;
      }
    }
  }
  return false;
}