setAlarmMotionDetection method

Future<bool> setAlarmMotionDetection(
  1. bool enable,
  2. int level, {
  3. int timeout = 5,
  4. int? videoDuration,
})

移动侦测等级

Implementation

Future<bool> setAlarmMotionDetection(bool enable, int level,
    {int timeout = 5, int? videoDuration}) async {
  int plan = 0;
  if (enable) {
    plan = -1;
  }
  videoDuration = videoDuration ?? pirCloudVideoDuration;
  String cgi =
      "set_alarm.cgi?enable_alarm_audio=0&motion_armed=${enable ? 1 : 0}&motion_sensitivity=$level&"
      "input_armed=1&ioin_level=0&iolinkage=0&ioout_level=0&preset=0&mail=0&snapshot=1&"
      "record=1&upload_interval=0&schedule_enable=1&schedule_sun_0=$plan&schedule_sun_1=$plan&"
      "schedule_sun_2=$plan&schedule_mon_0=$plan&schedule_mon_1=$plan&schedule_mon_2=$plan&"
      "schedule_tue_0=$plan&schedule_tue_1=$plan&schedule_tue_2=$plan&schedule_wed_0=$plan&"
      "schedule_wed_1=$plan&schedule_wed_2=$plan&schedule_thu_0=$plan&schedule_thu_1=$plan&"
      "schedule_thu_2=$plan&schedule_fri_0=$plan&schedule_fri_1=$plan&schedule_fri_2=$plan&"
      "schedule_sat_0=$plan&schedule_sat_1=$plan&schedule_sat_2=$plan&defense_plan1=0&"
      "defense_plan2=0&defense_plan3=0&defense_plan4=0&defense_plan5=0&defense_plan6=0&defense_plan7=0&"
      "defense_plan8=0&defense_plan9=0&defense_plan10=0&defense_plan11=0&defense_plan12=0&defense_plan13=0&"
      "defense_plan14=0&defense_plan15=0&defense_plan16=0&defense_plan17=0&defense_plan18=0&defense_plan19=0&"
      "defense_plan20=0&defense_plan21=0&";

  if (videoDuration != -1) {
    cgi =
        "set_alarm.cgi?enable_alarm_audio=0&motion_armed=${enable ? 1 : 0}&motion_sensitivity=$level&CloudVideoDuration=$videoDuration&"
        "input_armed=1&ioin_level=0&iolinkage=0&ioout_level=0&preset=0&mail=0&snapshot=1&"
        "record=1&upload_interval=0&schedule_enable=1&schedule_sun_0=$plan&schedule_sun_1=$plan&"
        "schedule_sun_2=$plan&schedule_mon_0=$plan&schedule_mon_1=$plan&schedule_mon_2=$plan&"
        "schedule_tue_0=$plan&schedule_tue_1=$plan&schedule_tue_2=$plan&schedule_wed_0=$plan&"
        "schedule_wed_1=$plan&schedule_wed_2=$plan&schedule_thu_0=$plan&schedule_thu_1=$plan&"
        "schedule_thu_2=$plan&schedule_fri_0=$plan&schedule_fri_1=$plan&schedule_fri_2=$plan&"
        "schedule_sat_0=$plan&schedule_sat_1=$plan&schedule_sat_2=$plan&defense_plan1=0&"
        "defense_plan2=0&defense_plan3=0&defense_plan4=0&defense_plan5=0&defense_plan6=0&defense_plan7=0&"
        "defense_plan8=0&defense_plan9=0&defense_plan10=0&defense_plan11=0&defense_plan12=0&defense_plan13=0&"
        "defense_plan14=0&defense_plan15=0&defense_plan16=0&defense_plan17=0&defense_plan18=0&defense_plan19=0&"
        "defense_plan20=0&defense_plan21=0&";
  }
  bool ret = await writeCgi(cgi, timeout: timeout);
  if (ret) {
    CommandResult result = await waitCommandResult((int cmd, Uint8List data) {
      return cmd == 24588;
    }, timeout);
    if (result.isSuccess) {
      pirCloudVideoDuration = videoDuration;
      Map data = result.getMap();
      if (data["result"] == "0") {
        return true;
      }
    }
  }
  return false;
}