getHumanTracking method

Future<bool> getHumanTracking({
  1. int timeout = 5,
  2. HumanTrackCallBack? humanTrackCallBack,
})

获取设备人形跟踪

Implementation

Future<bool> getHumanTracking(
    {int timeout = 5, HumanTrackCallBack? humanTrackCallBack}) async {
  bool ret = await _command
      .writeCgi("trans_cmd_string.cgi?cmd=2127&command=1&", 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=2127;") && str.contains("command=1;");
      }
      return false;
    }, timeout);
    _command.removeCallback(24785);
    _command.addCallback(24785, (cmd, result) {
      Map data = result.getMap();
      if (data.containsKey("track_status")) {
        if (humanTrackCallBack != null) {
          humanTrackStatus = int.tryParse(data["track_status"] ?? "0") ?? 0;
          humanTrackCallBack(humanTrackStatus);
        }
      }
    });
    if (result.isSuccess == true) {
      Map data = result.getMap();
      humanTrackingEnable = int.tryParse(data["enable"] ?? "0") ?? 0;
      humanTrackStatus = int.tryParse(data["track_status"] ?? "0") ?? 0;
      return data["result"] == "0";
    }
  }
  return false;
}