setAlarmCustomeZone method

Future<bool> setAlarmCustomeZone({
  1. required List records,
  2. required int command,
  3. int timeout = 5,
  4. int sensor = 0,
})

设置侦测区域

Implementation

Future<bool> setAlarmCustomeZone(
    {required List records,
    required int command,
    int timeout = 5,
    int sensor = 0}) async {
  String reignString = "md_";
  switch (command) {
    case 0: //CustomAreaType_MoveDetect 设置移动侦测区域
      reignString = "md_";
      break;
    case 2: //CustomAreaType_HumanDetect 设置人形侦测区域
      reignString = "pd_";
      break;
    case 4: //CustomAreaType_OffDuty 设置离岗侦测区域
      reignString = "depart_";
      break;
    case 6: //CustomAreaType_FaceDetect  设置人脸侦测区域
      reignString = "face_detect_";
      break;
    case 8: //CustomAreaType_FaceDiscernment  设置人脸识别区域
      reignString = "face_recognition_";
      break;
    default:
      break;
  }

  bool ret = await writeCgi(
      "trans_cmd_string.cgi?cmd=2123&command=$command&sensor=${sensor}&"
      "${reignString}reign0=${records[0]}&"
      "${reignString}reign1=${records[1]}&"
      "${reignString}reign2=${records[2]}&"
      "${reignString}reign3=${records[3]}&"
      "${reignString}reign4=${records[4]}&"
      "${reignString}reign5=${records[5]}&"
      "${reignString}reign6=${records[6]}&"
      "${reignString}reign7=${records[7]}&"
      "${reignString}reign8=${records[8]}&"
      "${reignString}reign9=${records[9]}&"
      "${reignString}reign10=${records[10]}&"
      "${reignString}reign11=${records[11]}&"
      "${reignString}reign12=${records[12]}&"
      "${reignString}reign13=${records[13]}&"
      "${reignString}reign14=${records[14]}&"
      "${reignString}reign15=${records[15]}&"
      "${reignString}reign16=${records[16]}&"
      "${reignString}reign17=${records[17]}&",
      timeout: timeout);
  if (ret) {
    CommandResult result = await waitCommandResult((int cmd, Uint8List data) {
      if (cmd == 24785) {
        String str = utf8.decode(data);
        return str.contains("cmd=2123;") && str.contains("command=$command;");
      }
      return false;
    }, timeout);
    if (result.isSuccess) {
      Map data = result.getMap();
      if (data["status"] == "0" || data["result"] == "0") {
        return true;
      }
    }
  }
  return false;
}