setWhiteLedLightPlan method

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

Implementation

Future<bool> setWhiteLedLightPlan(
    {required List records, int enable = 1, int timeout = 5}) async {
  //计算enable和switch的值
  var enableValue = 0;
  var switchValue = 0;

  var enableList = [];
  var switchList = [];
  for (int i = 0; i <= 20; i++) {
    var tempEnable = records[i]['enable'];
    var tempSwitch = records[i]['onOff'];
    enableList.add(tempEnable);
    switchList.add(tempSwitch);
  }

  var enableString = enableList.reversed
      .toString()
      .replaceAll(',', '')
      .replaceAll(' ', '')
      .replaceAll('(', '')
      .replaceAll(')', '');
  var switchSting = switchList.reversed
      .toString()
      .replaceAll(',', '')
      .replaceAll(' ', '')
      .replaceAll('(', '')
      .replaceAll(')', '');

  enableValue = int.parse(enableString, radix: 2);
  switchValue = int.parse(switchSting, radix: 2);

  var commandString = "trans_cmd_string.cgi?cmd=2017&command=5&mark=213&"
      "light_plan1=${records[0]['content']}&"
      "light_plan2=${records[1]['content']}&"
      "light_plan3=${records[2]['content']}&"
      "light_plan4=${records[3]['content']}"
      "light_plan5=${records[4]['content']}&"
      "light_plan6=${records[5]['content']}&"
      "light_plan7=${records[6]['content']}&"
      "light_plan8=${records[7]['content']}&"
      "light_plan9=${records[8]['content']}&"
      "light_plan10=${records[9]['content']}&"
      "light_plan11=${records[10]['content']}&"
      "light_plan12=${records[11]['content']}&"
      "light_plan13=${records[12]['content']}&"
      "light_plan14=${records[13]['content']}&"
      "light_plan15=${records[14]['content']}&"
      "light_plan16=${records[15]['content']}&"
      "light_plan17=${records[16]['content']}&"
      "light_plan18=${records[17]['content']}&"
      "light_plan19=${records[18]['content']}&"
      "light_plan20=${records[19]['content']}&"
      "light_plan21=${records[20]['content']}&"
      "light_enable=$enableValue&"
      "light_switch=$switchValue&"
      "light_plan_enable=$enable&";

  // var commandString = "trans_cmd_string.cgi?cmd=2017&command=5&mark=213&"
  //     "light_plan1=${records[0]['content']}&enable1=${records[0]['enable']}&"
  //     "light_plan2=${records[1]['content']}&enable2=${records[1]['enable']}&"
  //     "light_plan3=${records[2]['content']}&enable3=${records[2]['enable']}&"
  //     "light_plan4=${records[3]['content']}&enable4=${records[3]['enable']}&"
  //     "light_plan5=${records[4]['content']}&enable5=${records[4]['enable']}&"
  //     "light_plan6=${records[5]['content']}&enable6=${records[5]['enable']}&"
  //     "light_plan7=${records[6]['content']}&enable7=${records[6]['enable']}&"
  //     "light_plan8=${records[7]['content']}&enable8=${records[7]['enable']}&"
  //     "light_plan9=${records[8]['content']}&enable9=${records[8]['enable']}&"
  //     "light_plan10=${records[9]['content']}&enable10=${records[9]['enable']}&"
  //     "light_plan11=${records[10]['content']}&enable11=${records[10]['enable']}&"
  //     "light_plan12=${records[11]['content']}&enable12=${records[11]['enable']}&"
  //     "light_plan13=${records[12]['content']}&enable13=${records[12]['enable']}&"
  //     "light_plan14=${records[13]['content']}&enable14=${records[13]['enable']}&"
  //     "light_plan15=${records[14]['content']}&enable15=${records[14]['enable']}&"
  //     "light_plan16=${records[15]['content']}&enable16=${records[15]['enable']}&"
  //     "light_plan17=${records[16]['content']}&enable17=${records[16]['enable']}&"
  //     "light_plan18=${records[17]['content']}&enable18=${records[17]['enable']}&"
  //     "light_plan19=${records[18]['content']}&enable19=${records[18]['enable']}&"
  //     "light_plan20=${records[19]['content']}&enable20=${records[19]['enable']}&"
  //     "light_plan21=${records[20]['content']}&enable21=${records[20]['enable']}&"
  //     "light_plan_enable=${enable}&";

  bool ret = await _command.writeCgi(commandString, 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=2017;") && str.contains("command=5;");
      }
      return false;
    }, timeout);
    if (result.isSuccess) {
      Map data = result.getMap();
      if (data["status"] == "0") {
        return true;
      }
    }
  }
  return false;
}