Просмотр исходного кода

[Feat 0000]视频预览相关功能优化

bobo04052021@163.com 18 часов назад
Родитель
Сommit
82f0d17bae

+ 22 - 16
src/components/vent/camera/RegionDrawOverlay.vue

@@ -1,5 +1,5 @@
 <template>
-  <div ref="layerEl" class="region-draw-layer" :class="{ 'is-drawing': isDrawingMode }" @mousedown="onMouseDown" @dblclick="onDblclick">
+  <div ref="layerEl" class="region-draw-layer" :class="{ 'is-drawing': isDrawingMode }" @mousedown="onMouseDown" @contextmenu.prevent="onContextMenu">
     <!-- SVG:绘制线与多边形 -->
     <svg class="region-draw-svg" viewBox="0 0 100 100" preserveAspectRatio="none">
       <line
@@ -88,6 +88,8 @@ const props = defineProps<{
   sections: RegionSection[];
   /** 各区域当前编辑值 */
   regionState: Record<string, RegionState>;
+  /** 禁用绘制(预览无操作面板时置 true) */
+  disabled?: boolean;
 }>();
 
 const emit = defineEmits<{
@@ -103,7 +105,7 @@ const layerEl = ref<HTMLElement | null>(null);
 const regionDrawings = reactive<Record<string, Record<number, DrawItem>>>({});
 
 /** 是否处于绘制模式 */
-const isDrawingMode = computed(() => drawableShapes.includes(activeShape.value) && !!activeRegion.value);
+const isDrawingMode = computed(() => !props.disabled && drawableShapes.includes(activeShape.value) && !!activeRegion.value);
 
 /** 绘制模式 */
 const drawMode = ref<'' | 'rect' | 'line' | 'poly'>('');
@@ -219,6 +221,11 @@ function onMouseDown(e: MouseEvent) {
     currentPointPx.value = p;
     drawingRect.value = { x: p.x, y: p.y, w: 0, h: 0 };
   } else if (shape === 'line') {
+    // 单击确定起点(右键结束):已在绘线时忽略后续左键,终点以右键位置为准
+    if (drawMode.value === 'line' && drawStartPx.value) {
+      e.preventDefault();
+      return;
+    }
     drawMode.value = 'line';
     drawStartPx.value = p;
     currentPointPx.value = p;
@@ -247,15 +254,20 @@ function onMouseMove(e: MouseEvent) {
 }
 
 function onMouseUp(_e: MouseEvent) {
+  // 矩形:松手即完成;线 / 多边形:单击开始,右键结束(不在此结束)
   if (drawMode.value === 'rect') finishRect();
-  else if (drawMode.value === 'line') finishLine();
-  // 多边形不在此结束(双击结束)
 }
 
-function onDblclick(e: MouseEvent) {
-  if (drawMode.value !== 'poly') return;
+function onContextMenu(e: MouseEvent) {
+  if (!isDrawingMode.value) return;
   e.preventDefault();
-  finishPoly();
+  if (drawMode.value === 'poly') {
+    finishPoly();
+  } else if (drawMode.value === 'line') {
+    // 右键位置即线终点
+    currentPointPx.value = layerPoint(e);
+    finishLine();
+  }
 }
 
 function finishRect() {
@@ -278,6 +290,7 @@ function finishRect() {
 }
 
 function finishLine() {
+  // 起点:单击位置;终点:右键位置(currentPointPx)
   const s = drawStartPx.value;
   const c = currentPointPx.value;
   resetDrawState();
@@ -290,15 +303,8 @@ function finishLine() {
 }
 
 function finishPoly() {
-  let pts = polyPointsPx.value;
-  // 双击结束:移除最后一次 mousedown 重复添加的顶点
-  if (pts.length >= 2) {
-    const last = pts[pts.length - 1];
-    const prev = pts[pts.length - 2];
-    if (Math.hypot(last.x - prev.x, last.y - prev.y) < 3) {
-      pts = pts.slice(0, -1);
-    }
-  }
+  // 右键结束:直接使用已单击添加的顶点(右键不会新增顶点)
+  const pts = polyPointsPx.value;
   resetDrawState();
   if (pts.length < 2) return;
   saveDrawItem({

+ 96 - 19
src/components/vent/camera/createPlayer.vue

@@ -14,7 +14,11 @@
   <!-- 双击放大:弹窗预览(青蓝监控风格,等比展示不失真) -->
   <Teleport to="body">
     <div v-if="previewVisible" class="camera-preview-mask" @click.self="closePreview">
-      <div class="camera-preview-panel" :style="{ transform: `translate(${previewOffset.x}px, ${previewOffset.y}px)` }">
+      <div
+        class="camera-preview-panel"
+        :class="{ 'has-ops': previewShowOps }"
+        :style="{ transform: `translate(${previewOffset.x}px, ${previewOffset.y}px)` }"
+      >
         <div class="camera-preview-header" @mousedown="onPreviewDragStart">
           <span class="camera-preview-title">{{ previewTitle }}</span>
           <div class="camera-preview-close" title="关闭" @click="closePreview" @mousedown.stop>×</div>
@@ -134,6 +138,7 @@
               :active-shape="activeDrawShape"
               :sections="regionSections"
               :region-state="regionState"
+              :disabled="!previewShowOps"
               @save="onDrawSave"
             />
           </div>
@@ -178,6 +183,8 @@ const selectedIndex = ref(-1);
 const previewVisible = ref(false);
 /** 预览弹窗是否显示左侧区域操作面板 */
 const previewShowOps = ref(true);
+/** 当前预览对应的预置位编号(查询区域形状接口的 preset / i1 参数) */
+const previewPreset = ref(1);
 const previewTitle = ref('摄像头预览');
 const previewItem = ref<PreviewStreamItem | null>(null);
 /** 弹窗拖动偏移 */
@@ -401,8 +408,8 @@ const REGION_DELETE_PARAMCODE: Record<string, Record<string, string>> = {
     polyEdge: 'clrPresetMoveBorder',
   },
   staticShield: {
-    rect: 'clrPresetStaticShieldRect',
-    poly: 'clrPresetStaticShieldPoly',
+    rect: 'clearPresetStaticShieldRect',
+    poly: 'clearPresetStaticShieldPoly',
   },
   dynamicShield: {
     rect: 'clrPresetDynamicShieldRect',
@@ -471,6 +478,10 @@ function buildRegionSetData(region: string, item: DrawItem) {
   const isThermal = regionSections.find((s) => s.key === region)?.thermal === true;
   const k = Number(regionState[region]?.k ?? 1) || 1;
   const temp = Number(regionState[region]?.temp ?? 100) || 0;
+  // 闯入区域参数与其他类型一致,额外携带 I/O 范围
+  const ioStart = Number(regionState[region]?.ioStart);
+  const ioEnd = Number(regionState[region]?.ioEnd);
+  const io = region === 'intrusion' ? { lowIO: Number.isFinite(ioStart) ? ioStart : 0, highIO: Number.isFinite(ioEnd) ? ioEnd : 0 } : {};
 
   if (item.type === 'rect') {
     const rect = {
@@ -478,23 +489,25 @@ function buildRegionSetData(region: string, item: DrawItem) {
       rightDown: { x: toResoCoord(item.x + item.w, 'x'), y: toResoCoord(item.y + item.h, 'y') },
     };
     if (isThermal) {
-      return { rect: { radiation: k, alarmTemp: temp, rect } };
+      return { ...io, rect: { radiation: k, alarmTemp: temp, rect } };
     }
-    return { rect };
+    return { ...io, rect };
   }
 
   const points = item.points.map((p) => ({ x: toResoCoord(p.x, 'x'), y: toResoCoord(p.y, 'y') }));
+  // 线:使用 line 字段
+  if (item.type === 'line') {
+    return { ...io, line: { points } };
+  }
+  // 多边形 / 多边形边界:统一使用 poly 字段
   if (isThermal) {
-    return { poly: { radiation: k, alarmTemp: temp, poly: { points } } };
+    return { ...io, poly: { radiation: k, alarmTemp: temp, poly: { points } } };
   }
-  return { poly: { points } };
+  return { ...io, poly: { points } };
 }
 
 /** 绘制完成确认:确认后调用设置接口 */
 function confirmSetRegion(region: string, item: DrawItem) {
-  // 闯入线暂不接入设置接口
-  if (region === 'intrusion' && item.type === 'line') return;
-
   const paramcode = REGION_SET_PARAMCODE[region]?.[item.type];
   const section = regionSections.find((s) => s.key === region);
   const shapeLabel = section?.shapes?.find((s) => s.key === item.type)?.label || item.type;
@@ -511,12 +524,15 @@ function confirmSetRegion(region: string, item: DrawItem) {
       const deviceid = previewItem.value?.meta?.deviceid;
       if (!deviceid) return;
       const no = regionState[region]?.no ?? 1;
+      // 参数平铺(无外层 data):preset 为预置位,idx 为编号(区域序号),其余为图形坐标
       const params = {
         deviceid,
         paramcode,
         noCheckPassword: true,
-        preset: 1,
+        preset: previewPreset.value,
         idx: no,
+        i1: previewPreset.value,
+        i2: no,
         ...buildRegionSetData(region, item),
       };
       try {
@@ -649,6 +665,47 @@ function parseRegionResult(shape: string, data: Record<string, any>): DrawItem |
   return { type: shape === 'polyEdge' ? 'polyEdge' : 'poly', points: pts } as unknown as DrawItem;
 }
 
+/**
+ * 从查询结果中取测温参数值(兼容平铺 / rect / poly 内层结构)
+ * 接口返回格式:{ rect: { leftUp, rightDown }, radiation: 1, alarmTemp: 100 }
+ */
+function pickThermalValue(data: Record<string, any>, keys: string[]): number | null {
+  const sources: Record<string, any>[] = [data];
+  [data?.rect, data?.poly, data?.data].forEach((inner) => {
+    if (inner && typeof inner === 'object') sources.push(inner as Record<string, any>);
+  });
+
+  for (const source of sources) {
+    for (const key of keys) {
+      const raw = source?.[key];
+      if (raw === undefined || raw === null || raw === '') continue;
+      const num = Number(raw);
+      if (Number.isFinite(num)) return num;
+    }
+  }
+  return null;
+}
+
+/**
+ * 回显测温区域的纠正系数 / 温度
+ * radiation → 纠正系数,alarmTemp → 温度;未返回(或非数字)时保留面板当前值
+ */
+function applyThermalParams(region: string, payload: Record<string, any>) {
+  const section = regionSections.find((s) => s.key === region);
+  const state = regionState[region];
+  if (!section?.thermal || !state) return;
+
+  const radiation = pickThermalValue(payload, ['radiation', 'correction']);
+  if (radiation != null && radiation >= 0) {
+    state.k = Number(radiation.toFixed(2));
+  }
+
+  const alarmTemp = pickThermalValue(payload, ['alarmTemp', 'temperature']);
+  if (alarmTemp != null && alarmTemp >= 0) {
+    state.temp = String(alarmTemp);
+  }
+}
+
 /** 判断查询结果是否为有效图形(存在且坐标不为 -1 空值) */
 function isValidRegionDraw(item: DrawItem | null): boolean {
   if (!item) return false;
@@ -665,8 +722,19 @@ async function queryRegionDraw(region: string, shape: string) {
   const no = regionState[region]?.no ?? 1;
 
   try {
-    const res = await hsqComControl({ deviceid, paramcode, noCheckPassword: true, preset: 1, idx: no });
+    // preset 为预置位,idx 为编号(区域序号)
+    const res = await hsqComControl({
+      deviceid,
+      paramcode,
+      noCheckPassword: true,
+      preset: previewPreset.value,
+      idx: no,
+      i1: previewPreset.value,
+      i2: no,
+    });
     const payload = (res?.data ?? res ?? {}) as Record<string, any>;
+    // 测温区域:回显纠正系数(radiation)与温度(alarmTemp)
+    applyThermalParams(region, payload);
     const parsed = parseRegionResult(shape, payload);
     // 查询返回有效图形(坐标非 -1)时才显示该区域删除按钮
     regionHasDrawing[region] = isValidRegionDraw(parsed);
@@ -722,8 +790,8 @@ function closePreview() {
   openCorrectionKey.value = '';
 }
 
-/** 打开指定摄像头的预览弹窗(showOps 控制是否显示左侧区域选择) */
-function openPreview(item: PreviewStreamItem, showOps: boolean) {
+/** 打开指定摄像头的预览弹窗(showOps 控制是否显示左侧区域选择,preset 为预置位编号) */
+function openPreview(item: PreviewStreamItem, showOps: boolean, preset?: number) {
   exitBrowserFullscreen();
   previewTitle.value = item.name || item.meta?.name || '摄像头预览';
   previewItem.value = {
@@ -734,6 +802,7 @@ function openPreview(item: PreviewStreamItem, showOps: boolean) {
     meta: item.meta,
   };
   previewShowOps.value = showOps;
+  previewPreset.value = preset ?? 1;
   previewOffset.x = 0;
   previewOffset.y = 0;
   previewVisible.value = true;
@@ -760,11 +829,11 @@ function handleDblclick(_e: MouseEvent, item: PreviewStreamItem, index: number)
   openPreview(item, false);
 }
 
-/** 外部调用:放大当前选中摄像头(默认显示左侧区域选择) */
-function openSelectedPreview(showOps = true) {
+/** 外部调用:放大当前选中摄像头(默认显示左侧区域选择,preset 为预置位编号) */
+function openSelectedPreview(showOps = true, preset?: number) {
   const item = streamList.value[selectedIndex.value];
   if (!item) return;
-  openPreview(item, showOps);
+  openPreview(item, showOps, preset);
 }
 
 defineExpose({ openSelectedPreview });
@@ -818,8 +887,11 @@ onBeforeUnmount(() => {
 }
 
 .camera-preview-panel {
-  /* 略缩小弹窗,仍按 16:9 等比约束,避免画面被强行拉伸 */
-  width: min(72vw, calc(68vh * 16 / 9), 960px);
+  /* 画面(视频舞台)基准宽度:宽不超 72vw、高不超 68vh(16:9 等比,避免画面被拉伸)、且不超 960px */
+  --stage-max-width: min(72vw, calc(68vh * 16 / 9), 960px);
+  /* 弹窗宽度 = 画面宽度 + 内边距:无面板时画面占满弹窗,出现左侧面板时由 .has-ops 整体加宽 */
+  width: calc(var(--stage-max-width) + 28px);
+  max-width: calc(100vw - 24px);
   max-height: 78vh;
   display: flex;
   flex-direction: column;
@@ -828,6 +900,11 @@ onBeforeUnmount(() => {
   background: linear-gradient(180deg, rgba(6, 28, 48, 0.98) 0%, rgba(4, 16, 32, 0.98) 100%);
   overflow: hidden;
   will-change: transform;
+
+  /* 出现左侧操作面板时:弹窗整体加宽(300px 面板 + 306px 左内边距),画面大小保持不变 */
+  &.has-ops {
+    width: min(calc(var(--stage-max-width) + 320px), calc(100vw - 24px));
+  }
 }
 
 .camera-preview-header {

+ 3 - 3
src/components/vent/camera/regionDraw.ts

@@ -96,8 +96,8 @@ export function isDrawableShape(shape: string) {
 /** 绘制提示文案 */
 export function shapeTip(shape: string) {
   if (shape === 'rect') return '矩形:在右侧画面拖拽绘制,松手自动保存坐标';
-  if (shape === 'line') return '线:在右侧画面点击起点,拖到终点松手保存';
-  if (shape === 'poly') return '多边形:在右侧画面单击添加顶点,双击结束保存';
-  if (shape === 'polyEdge') return '多边形边界:在右侧画面单击添加顶点,双击结束保存';
+  if (shape === 'line') return '线:在右侧画面单击起点,移动鼠标后单击右键结束保存';
+  if (shape === 'poly') return '多边形:在右侧画面单击添加顶点,单击右键结束保存';
+  if (shape === 'polyEdge') return '多边形边界:在右侧画面单击添加顶点,单击右键结束保存';
   return '';
 }

+ 2 - 2
src/hooks/system/useCameraPianation.ts

@@ -406,8 +406,8 @@ export function useCamera() {
   }
 
   /** 外部按钮触发:放大当前选中摄像头并显示左侧区域选择 */
-  function openRegionPreview() {
-    playerComponent?.exposed?.openSelectedPreview?.(true);
+  function openRegionPreview(preset?: number) {
+    playerComponent?.exposed?.openSelectedPreview?.(true, preset);
   }
 
   function getPlayer(fileExtension, playerDomId, camerakind, cameraUrl, cameraRate, option = { width: '100%', height: '100%' }) {

Разница между файлами не показана из-за своего большого размера
+ 292 - 354
src/views/vent/monitorManager/hsqHome/components/DeviceTree.vue


+ 21 - 24
src/views/vent/monitorManager/hsqHome/hsqHome.api.ts

@@ -13,23 +13,22 @@ enum Api {
   monitorSystem = '/monitor/system', //场景设备列表
   queryRoleAndUserNum = '/sys/role/queryRoleAndUserNum', //查询角色和用户数量
   getWarningDeviceList = '/safety/managesysAlarm/list', //获取配置预警设备数据
-  getAlarmLogList = '/monitor/groupCompany/getAlarmLogList',  // 设备预警历史查询
-  warningList = '/safety/managesysAlarmInfo/list',//预警条目list
-  dscAlarmLogList = '/safety/dscAlarmLog/list',//设备预警历史查询
-  listdays = '/safety/ventanalyMonitorData/listdays',//详情历史曲线
-  updateProcessState = '/safety/dscAlarmLog/updateProcessState',//更新处理状态
-  captureToFile = '/api/zc/device/captureToFile',//一键抓拍图片接口
-  recordMP4File='/api/zc/device/recordMP4File',//录制MP4文件接口
-  stopRecordMP4File='/api/zc/device/stopRecordMP4File',//停止录制MP4文件接口
-  getSysCfg = '/api/zc/device/getSysCfg',//获取系统配置参数
-  setSysCfg = '/api/zc/device/setSysCfg',//设置系统配置参数
-  alarmAutoCapture = '/api/zc/device/alarmAutoCapture',//报警自动抓拍接口
-  hsqComControl = '/safety/hsqSdk/hsqComControl',//双光谱摄像机控制接口
-  setRunModeCfg = '/api/zc/device/setRunModeCfg',//设置云台运行模式配置
-  setPesudoColor = '/api/zc/device/setPesudoColor',//设置伪彩色
-  getAlarmStat = '/safety/dscAlarmLog/getAlarmStat',//获取报警统计信息-数据曲线
-  picVideoList = '/safety/dscAlarmLog/picVideoList',//双光谱摄像机抓拍和录像记录-分页列表查询
- 
+  getAlarmLogList = '/monitor/groupCompany/getAlarmLogList', // 设备预警历史查询
+  warningList = '/safety/managesysAlarmInfo/list', //预警条目list
+  dscAlarmLogList = '/safety/dscAlarmLog/list', //设备预警历史查询
+  listdays = '/safety/ventanalyMonitorData/listdays', //详情历史曲线
+  updateProcessState = '/safety/dscAlarmLog/updateProcessState', //更新处理状态
+  captureToFile = '/api/zc/device/captureToFile', //一键抓拍图片接口
+  recordMP4File = '/api/zc/device/recordMP4File', //录制MP4文件接口
+  stopRecordMP4File = '/api/zc/device/stopRecordMP4File', //停止录制MP4文件接口
+  getSysCfg = '/api/zc/device/getSysCfg', //获取系统配置参数
+  setSysCfg = '/api/zc/device/setSysCfg', //设置系统配置参数
+  alarmAutoCapture = '/api/zc/device/alarmAutoCapture', //报警自动抓拍接口
+  hsqComControl = '/safety/hsqSdk/hsqComControl', //双光谱摄像机控制接口
+  setRunModeCfg = '/api/zc/device/setRunModeCfg', //设置云台运行模式配置
+  setPesudoColor = '/api/zc/device/setPesudoColor', //设置伪彩色
+  getAlarmStat = '/safety/dscAlarmLog/getAlarmStat', //获取报警统计信息-数据曲线
+  picVideoList = '/safety/dscAlarmLog/picVideoList', //双光谱摄像机抓拍和录像记录-分页列表查询
 }
 /**
  * 日志列表接口
@@ -169,13 +168,11 @@ export const setRunModeCfg = (params) => defHttp.post({ url: Api.setRunModeCfg,
  */
 export const setPesudoColor = (params) => defHttp.post({ url: Api.setPesudoColor, params });
 
-
-
 /**
-* 获取报警统计信息-数据曲线接口
-* @param params
-*/
-export const picVideoList= (params) => defHttp.get({ url: Api.picVideoList, params }, { joinParamsToUrl: true });
+ * 获取报警统计信息-数据曲线接口
+ * @param params
+ */
+export const picVideoList = (params) => defHttp.get({ url: Api.picVideoList, params }, { joinParamsToUrl: true });
 
 /**
  * 获取报警统计信息-数据曲线接口
@@ -197,6 +194,6 @@ export const presetSet = (params) => defHttp.post({ url: Api.hsqComControl, para
 
 /**
  * 删除预置位:paramcode = delPtzPreset
- * @param params { deviceid, paramcode: 'delPtzPreset', noCheckPassword }
+ * @param params { deviceid, paramcode: 'delPtzPreset', noCheckPassword, i1: 预置位编号 }
  */
 export const presetDelete = (params) => defHttp.post({ url: Api.hsqComControl, params });

+ 4 - 4
src/views/vent/monitorManager/hsqHome/videoPlayer.vue

@@ -101,8 +101,8 @@ function onCheckedDeviceIdsChange(ids: string[]) {
 }
 
 /** 预置位操作列点击放大:放大当前选中摄像头并显示左侧区域选择 */
-function onRegionPreview() {
-  deviceViewRef.value?.openRegionPreview?.();
+function onRegionPreview(preset: number) {
+  deviceViewRef.value?.openRegionPreview?.(preset);
 }
 
 /** 画面区摄像头选中(附带当前设备 IP / deviceid,供抓拍、录像等 SDK 接口使用) */
@@ -121,9 +121,9 @@ function onCameraSelect(camera: any) {
 
 /** 云台焦距 / 焦点 / 光圈已改走设备接口,此处不再本地调节画面 */
 function onPtzAction(payload: { type: string; value: string }) {
-  if (!payload?.type || payload.value === 'stop') return
+  if (!payload?.type || payload.value === 'stop') return;
   if (payload.type === 'zoom' || payload.type === 'focus' || payload.type === 'iris') {
-    return
+    return;
   }
 }
 

+ 0 - 5720
红沙泉SDK接口文档-0917.md

@@ -1,5720 +0,0 @@
-# ZC SDK 设备接口文档
-
-> 基础路径:`/api/zc/device` 请求方式:POST Content-Type:application/json
-> 请求/返回数据格式:结构体字段 JSON(byte[] 字符数组字段传字符串)
-
-## 目录
-
-1. [login — 设备登录。](#1) 
-2. [logout — 设备登出。](#2) 
-3. [reboot — 设备重启。](#3) 
-4. [resetConfig — 恢复设备出厂配置(不保存)。](#4) 
-5. [saveConfig — 保存设备当前全部配置。](#5) 
-6. [getDeviceInfo — 获取设备基础信息。](#6) 
-7. [setDeviceInfo — 设置设备基础信息。](#7) 
-8. [getNetworkConfig — 获取设备网络配置(裸指针接口)。](#8) 
-9. [setNetworkConfig — 设置设备网络配置。](#9) 
-10. [ptzControl — 云台持续运动控制。](#10) 
-11. [ptzPresetControl — 预置位操作:调用/保存/删除预置位。](#11) 
-12. [rockerSpeedControl — 摇杆无级速度控制。](#12) 
-13. [setPTZAngle — 指定云台绝对角度定位。](#13) 
-14. [getPtzAngle — 获取云台当前角度。](#14) 
-15. [motorControl — 电机单独控制。](#15) 
-16. [captureJPEGToFile — 抓拍可见光 JPG 保存到本地文件。](#16) 
-17. [captureJPEG — 抓拍可见光 JPG,返回 Base64 图片数据。](#17) 
-18. [captureThermalToFile — 抓拍红外热图保存到文件。](#18) 
-19. [captureVisibleHDToFile — 高清可见光抓拍保存文件。](#19) 
-20. [captureTemperatureFrame — 获取红外测温原始帧数据(温度矩阵),返回 Base64。](#20) 
-21. [streamDisconnect — 关闭实时流。](#21) 
-22. [parsePixelTemp — 根据像素坐标读取单点温度。](#22) 
-23. [getTempMaxMinAvg — 计算整张画面最高/最低/平均温度。](#23) 
-24. [parsePoseData — 解析原始姿态数据(陀螺仪/加速度/欧拉角/测温)。](#24) 
-25. [getPresetPotTempRect — 获取预置位测温矩形区域。](#25) 
-26. [setPresetPotTempRect — 设置预置位测温矩形区域。](#26) 
-27. [clearPresetPotTempRect — 清空预置位测温矩形区域。](#27) 
-28. [getPresetPotTempPoly — 获取预置位测温多边形区域。](#28) 
-29. [setPresetPotTempPoly — 设置预置位测温多边形区域。](#29) 
-30. [clearPresetPotTempPoly — 清空预置位测温多边形区域。](#30) 
-31. [getPresetStaticShieldRect — 获取预置位静屏矩形屏蔽区。](#31) 
-32. [setPresetStaticShieldRect — 设置预置位静屏矩形屏蔽区。](#32) 
-33. [clearPresetStaticShieldRect — 清空预置位静屏矩形屏蔽区。](#33) 
-34. [getPresetStaticShieldPoly — 获取预置位静屏多边形屏蔽区。](#34) 
-35. [setPresetStaticShieldPoly — 设置预置位静屏多边形屏蔽区。](#35) 
-36. [clearPresetStaticShieldPoly — 清空预置位静屏多边形屏蔽区。](#36) 
-37. [deviceUpgrade — 设备固件升级。](#37) 
-38. [streamGetSingleFrame — 实时流取单帧(ZC_StreamGetSingleFrame)。](#38) 
-39. [streamFreeSingleFrame — 释放实时流单帧(ZC_StreamFreeSingleFrame)。](#39) 
-40. [captureFrameV20 — V20 抓取一帧图像(ZC_CaptureFrame_V20)。](#40) 
-41. [captureFrame — 通用抓取一帧(ZC_CaptureFrame,常用于测温帧)。](#41) 
-42. [tempFrmGetPixTemp — 帧内单点温度(ZC_TempFrm_GetPixTemp)。](#42) 
-43. [ptzControlLegacy — 旧版 PTZ 控制(ZC_PTZControl,区别于 {@code /ptzControl} 的 ZC_PTZControl_V20)。](#43) 
-44. [gotoPtzAngle — 云台按角度定位(ZC_GotoPtzAngle)。](#44) 
-45. [setAlarmPictureSavePath — ](#45) 
-46. [stopSrvCenter — ](#46) 
-47. [startSrvCenter — ](#47) 
-48. [deviceSearch — ](#48) 
-49. [mapLog — ](#49) 
-50. [realPlay — 设备实时预览(设备绑定回调,RealDataCallback 在 ZcDeviceManager 注册并上报)。](#50) 
-51. [registerRgbDataCallback — ](#51) 
-52. [stopRealPlay — ](#52) 
-53. [getSDKVersion — 获取 SDK 版本号](#53) 
-54. [init — SDK 全局初始化,程序启动调用一次即可](#54) 
-55. [clear — 释放 SDK 全局资源,程序退出前调用一次即可](#55) 
-56. [getLastError — 获取 SDK 最后一次错误码](#56) 
-57. [freeFrameV20 — 释放一帧 V20 帧数据](#57) 
-58. [freeFrm — 释放一帧普通帧数据](#58) 
-59. [getLaserDistance — 获取激光测距距离](#59) 
-60. [realPlay_CopyRGBData — 从实时预览拷贝一帧 RGB 数据(BGR24)](#60) 
-61. [getLastAlarmInfo_FromDevice — 从设备读取最近一次报警信息](#61) 
-62. [mapFireLocation — 地图火点位置映射(d 定位/ir 红外/f 火点/loc 位置 4 个结构体)](#62) 
-63. [displayRGBData — 渲染一帧 BGR24 数据到窗口](#63) 
-64. [compressIRDataTo8Bits — 将红外温度数据帧压缩为 8 位数据](#64) 
-65. [tempFrm_WriteToTxt — 将温度数据帧写入 txt 文档](#65) 
-66. [tempFrm_Rect_WriteToTxt — 将温度数据帧指定矩形区域写入 txt 文档](#66) 
-67. [parseInquiryInfo — 解析设备搜索返回的 JSON 信息](#67) 
-68. [getDeviceSoftVersion — 获取设备软件版本](#68) 
-69. [getConnectStatus — 获取设备连接状态](#69) 
-70. [realPlay_SetImageStretch — 预览图像拉伸](#70) 
-71. [captureJPEGPicture — 抓拍JPEG图片](#71) 
-72. [recordMP4File — 开始录制MP4视频](#72) 
-73. [stopRecordMP4File — 停止录制MP4视频](#73) 
-74. [getImageCfg — 查询图像参数](#74) 
-75. [setImageCfg — 设置图像参数](#75) 
-76. [getMediaCompress — 查询音视频压缩参数](#76) 
-77. [setMediaCompress — 设置音视频压缩参数](#77) 
-78. [getTPDCfg — 查询测温参数](#78) 
-79. [setTPDCfg — 设置测温参数](#79) 
-80. [restoreTPDCfg — 恢复默认测温参数](#80) 
-81. [getAutoShutterCfg — 查询 自动快门](#81) 
-82. [setAutoShutterCfg — 设置 自动快门](#82) 
-83. [systemTimeSync_V20 — 系统时间同步](#83) 
-84. [getSupplyLightCfg_V20 — 查询补光灯参数](#84) 
-85. [setSupplyLightCfg_V20 — 设置补光灯参数](#85) 
-86. [getRS485Cfg_V20 — 查询RS485参数](#86) 
-87. [setRS485Cfg_V20 — 设置RS485参数](#87) 
-88. [getNTPCfg_V20 — 查询NTP参数](#88) 
-89. [setNTPCfg_V20 — 设置NTP参数](#89) 
-90. [getPTZCfg_V20 — 查询PTZ参数](#90) 
-91. [setPTZCfg_V20 — 设置PTZ参数](#91) 
-92. [getSmartCaps — 查询智能分析能力集](#92) 
-93. [getTempDetectPoint_V20 — 对应 C 接口 {@code ZC_GetTempDetectPoint_V20}(SDK 头文件无独立注释,功能见函数名)](#93) 
-94. [setTempDetectPoint_V20 — 对应 C 接口 {@code ZC_SetTempDetectPoint_V20}(SDK 头文件无独立注释,功能见函数名)](#94) 
-95. [getTempDetectLine_V20 — 对应 C 接口 {@code ZC_GetTempDetectLine_V20}(SDK 头文件无独立注释,功能见函数名)](#95) 
-96. [setTempDetectLine_V20 — 对应 C 接口 {@code ZC_SetTempDetectLine_V20}(SDK 头文件无独立注释,功能见函数名)](#96) 
-97. [getTempDetectEllipse — 对应 C 接口 {@code ZC_GetTempDetectEllipse}(SDK 头文件无独立注释,功能见函数名)](#97) 
-98. [setTempDetectEllipse — 对应 C 接口 {@code ZC_SetTempDetectEllipse}(SDK 头文件无独立注释,功能见函数名)](#98) 
-99. [getTempDetectRect_V20 — 查询区域测温矩形参数](#99) 
-100. [setTempDetectRect_V20 — 设置区域测温矩形参数](#100) 
-101. [getTempDetectPoly_V20 — 查询区域测温多边形参数](#101) 
-102. [setTempDetectPoly_V20 — 设置区域测温多边形参数](#102) 
-103. [getStaticShieldRect_V20 — 查询静态屏蔽矩形参数](#103) 
-104. [setStaticShieldRect_V20 — 设置静态屏蔽矩形参数](#104) 
-105. [getStaticShieldPoly_V20 — 查询静态屏蔽多边形参数](#105) 
-106. [setStaticShieldPoly_V20 — 设置静态屏蔽多边形参数](#106) 
-107. [getStaticAnalRect_V20 — 查询定区分析矩形参数](#107) 
-108. [setStaticAnalRect_V20 — 设置定区分析矩形参数](#108) 
-109. [getStaticAnalPoly_V20 — 查询定区分析多边形参数](#109) 
-110. [setStaticAnalPoly_V20 — 设置定区分析多边形参数](#110) 
-111. [getDynaShieldRect_V20 — 查询动态屏蔽矩形参数](#111) 
-112. [setDynaShieldRect_V20 — 设置动态屏蔽矩形参数](#112) 
-113. [getDynaShieldPoly_V20 — 查询动态屏蔽多边形参数](#113) 
-114. [setDynaShieldPoly_V20 — 设置动态屏蔽多边形参数](#114) 
-115. [getBreakinLine_V20 — 查询周界入侵线参数](#115) 
-116. [setBreakinLine_V20 — 设置周界入侵线参数](#116) 
-117. [getBreakinRect_V20 — 查询周界入侵矩形参数](#117) 
-118. [setBreakinRect_V20 — 设置周界入侵矩形参数](#118) 
-119. [getBreakinPolygon_V20 — 查询周界入侵多边形参数](#119) 
-120. [setBreakinPolygon_V20 — 设置周界入侵多边形参数](#120) 
-121. [getBreakinPolyline_V20 — 查询周界入侵折线参数](#121) 
-122. [setBreakinPolyline_V20 — 设置周界入侵折线参数](#122) 
-123. [setPesudoColor — 设置伪彩(仅热成像有效)](#123) 
-124. [getConfig — 获取参数](#124) 
-125. [setConfig — 设置参数](#125) 
-126. [getSysCfg — 获取系统参数](#126) 
-127. [setSysCfg — 设置系统参数](#127) 
-128. [setRunModeCfg — 切换模式](#128) 
-129. [setEnvironmentTemperature — 设置环境温度值](#129) 
-130. [pTZControlEx — 对应 C 接口 {@code ZC_PTZControlEx}(SDK 头文件无独立注释,功能见函数名)](#130) 
-131. [getAllPreset — 查询所有预置位的状态](#131) 
-132. [setPtzPreset — 设置云台预置位](#132) 
-133. [gotoPtzPreset — 调用云台预置位](#133) 
-134. [delPtzPreset — 删除云台预置位](#134) 
-135. [getPresetInfo — 获取预置位信息](#135) 
-136. [setPresetInfo — 设置预置位信息](#136) 
-137. [getPtzCruiseCfg — 查询巡航线](#137) 
-138. [setPtzCruise — 设置巡航线](#138) 
-139. [gotoPtzCruise — 调用巡航线](#139) 
-140. [clrPtzCruise — 清除巡航线](#140) 
-141. [showClickTemp — 显示point位置的温度](#141) 
-142. [hideClickTemp — 隐藏point位置的温度](#142) 
-143. [captureLastAlarm — 获取最后一张报警图](#143) 
-144. [captureHDFrameNoOsd — 获取一帧无叠加的高清图像数据](#144) 
-145. [uploadVoiceFile — 上传语音文件](#145) 
-146. [getHttpDestInfo — 获取HTTP报警接收目的地址信息](#146) 
-147. [setHttpDestInfo — 设置HTTP报警接收目的地址信息](#147) 
-148. [getIRData — 获取红外数据](#148) 
-149. [getIRBadPixFrm — 获取红外坏点数据帧](#149) 
-150. [setIRBadPixFrm — 修复红外坏点数据帧](#150) 
-151. [getMappingTemInfo — 对应 C 接口 {@code ZC_GetMappingTemInfo}(SDK 头文件无独立注释,功能见函数名)](#151) 
-152. [setMappingTemInfo — 对应 C 接口 {@code ZC_SetMappingTemInfo}(SDK 头文件无独立注释,功能见函数名)](#152) 
-153. [setInvalidRect — 设置灼伤区](#153) 
-154. [clrInvalidRect — 清除灼伤区](#154) 
-155. [getPresetStaticAnalysisRect — 定区-矩形](#155) 
-156. [setPresetStaticAnalysisRect — 对应 C 接口 {@code ZC_SetPresetStaticAnalysisRect}(SDK 头文件无独立注释,功能见函数名)](#156) 
-157. [clrPresetStaticAnalysisRect — 对应 C 接口 {@code ZC_ClrPresetStaticAnalysisRect}(SDK 头文件无独立注释,功能见函数名)](#157) 
-158. [getPresetStaticAnalysisPoly — 定区-多边形](#158) 
-159. [setPresetStaticAnalysisPoly — 对应 C 接口 {@code ZC_SetPresetStaticAnalysisPoly}(SDK 头文件无独立注释,功能见函数名)](#159) 
-160. [clrPresetStaticAnalysisPoly — 对应 C 接口 {@code ZC_ClrPresetStaticAnalysisPoly}(SDK 头文件无独立注释,功能见函数名)](#160) 
-161. [getPresetDynamicShieldRect — 动屏-矩形](#161) 
-162. [setPresetDynamicShieldRect — 对应 C 接口 {@code ZC_SetPresetDynamicShieldRect}(SDK 头文件无独立注释,功能见函数名)](#162) 
-163. [clrPresetDynamicShieldRect — 对应 C 接口 {@code ZC_ClrPresetDynamicShieldRect}(SDK 头文件无独立注释,功能见函数名)](#163) 
-164. [getPresetDynamicShieldPoly — 动屏-多边形](#164) 
-165. [setPresetDynamicShieldPoly — 对应 C 接口 {@code ZC_SetPresetDynamicShieldPoly}(SDK 头文件无独立注释,功能见函数名)](#165) 
-166. [clrPresetDynamicShieldPoly — 对应 C 接口 {@code ZC_ClrPresetDynamicShieldPoly}(SDK 头文件无独立注释,功能见函数名)](#166) 
-167. [getPresetMoveLine — 闯入-线](#167) 
-168. [setPresetMoveLine — 对应 C 接口 {@code ZC_SetPresetMoveLine}(SDK 头文件无独立注释,功能见函数名)](#168) 
-169. [clrPresetMoveLine — 对应 C 接口 {@code ZC_ClrPresetMoveLine}(SDK 头文件无独立注释,功能见函数名)](#169) 
-170. [getPresetMoveRect — 闯入-矩形](#170) 
-171. [setPresetMoveRect — 对应 C 接口 {@code ZC_SetPresetMoveRect}(SDK 头文件无独立注释,功能见函数名)](#171) 
-172. [clrPresetMoveRect — 对应 C 接口 {@code ZC_ClrPresetMoveRect}(SDK 头文件无独立注释,功能见函数名)](#172) 
-173. [getPresetMovePoly — 闯入-多边形](#173) 
-174. [setPresetMovePoly — 对应 C 接口 {@code ZC_SetPresetMovePoly}(SDK 头文件无独立注释,功能见函数名)](#174) 
-175. [clrPresetMovePoly — 对应 C 接口 {@code ZC_ClrPresetMovePoly}(SDK 头文件无独立注释,功能见函数名)](#175) 
-176. [getPresetMoveBorder — 闯入-多边形边界](#176) 
-177. [setPresetMoveBorder — 对应 C 接口 {@code ZC_SetPresetMoveBorder}(SDK 头文件无独立注释,功能见函数名)](#177) 
-178. [clrPresetMoveBorder — 对应 C 接口 {@code ZC_ClrPresetMoveBorder}(SDK 头文件无独立注释,功能见函数名)](#178) 
-179. [getPresetTempPoint — 测温点](#179) 
-180. [setPresetTempPoint — 对应 C 接口 {@code ZC_SetPresetTempPoint}(SDK 头文件无独立注释,功能见函数名)](#180) 
-181. [clrPresetTempPoint — 对应 C 接口 {@code ZC_ClrPresetTempPoint}(SDK 头文件无独立注释,功能见函数名)](#181) 
-182. [getPresetPotTempLine — 测温线](#182) 
-183. [setPresetPotTempLine — 对应 C 接口 {@code ZC_SetPresetPotTempLine}(SDK 头文件无独立注释,功能见函数名)](#183) 
-184. [clrPresetPotTempLine — 对应 C 接口 {@code ZC_ClrPresetPotTempLine}(SDK 头文件无独立注释,功能见函数名)](#184) 
-185. [getPresetOilLevelRect — 油位监测](#185) 
-186. [setPresetOilLevelRect — 对应 C 接口 {@code ZC_SetPresetOilLevelRect}(SDK 头文件无独立注释,功能见函数名)](#186) 
-187. [clrPresetOilLevelRect — 对应 C 接口 {@code ZC_ClrPresetOilLevelRect}(SDK 头文件无独立注释,功能见函数名)](#187) 
-188. [getPresetOilLevelPoly — 对应 C 接口 {@code ZC_GetPresetOilLevelPoly}(SDK 头文件无独立注释,功能见函数名)](#188) 
-189. [setPresetOilLevelPoly — 对应 C 接口 {@code ZC_SetPresetOilLevelPoly}(SDK 头文件无独立注释,功能见函数名)](#189) 
-190. [clrPresetOilLevelPoly — 对应 C 接口 {@code ZC_ClrPresetOilLevelPoly}(SDK 头文件无独立注释,功能见函数名)](#190) 
-191. [getPresetBlackBodyRect — 黑体区域接口](#191) 
-192. [setPresetBlackBodyRect — 对应 C 接口 {@code ZC_SetPresetBlackBodyRect}(SDK 头文件无独立注释,功能见函数名)](#192) 
-193. [getPresetTargetStayRect — 目标逗留,此功能只在1号预置位下有效](#193) 
-194. [setPresetTargetStayRect — 对应 C 接口 {@code ZC_SetPresetTargetStayRect}(SDK 头文件无独立注释,功能见函数名)](#194) 
-195. [clrPresetTargetStayRect — 对应 C 接口 {@code ZC_ClrPresetTargetStayRect}(SDK 头文件无独立注释,功能见函数名)](#195) 
-196. [getAngleStaticAnalysisRect — 定区-矩形](#196) 
-197. [setAngleStaticAnalysisRect — 对应 C 接口 {@code ZC_SetAngleStaticAnalysisRect}(SDK 头文件无独立注释,功能见函数名)](#197) 
-198. [clrAngleStaticAnalysisRect — 对应 C 接口 {@code ZC_ClrAngleStaticAnalysisRect}(SDK 头文件无独立注释,功能见函数名)](#198) 
-199. [getAngleStaticAnalysisPoly — 定区-多边形](#199) 
-200. [setAngleStaticAnalysisPoly — 对应 C 接口 {@code ZC_SetAngleStaticAnalysisPoly}(SDK 头文件无独立注释,功能见函数名)](#200) 
-201. [clrAngleStaticAnalysisPoly — 对应 C 接口 {@code ZC_ClrAngleStaticAnalysisPoly}(SDK 头文件无独立注释,功能见函数名)](#201) 
-202. [getAngleStaticShieldRect — 静屏-矩形](#202) 
-203. [setAngleStaticShieldRect — 对应 C 接口 {@code ZC_SetAngleStaticShieldRect}(SDK 头文件无独立注释,功能见函数名)](#203) 
-204. [clrAngleStaticShieldRect — 对应 C 接口 {@code ZC_ClrAngleStaticShieldRect}(SDK 头文件无独立注释,功能见函数名)](#204) 
-205. [getAngleStaticShieldPoly — 静屏-多边形](#205) 
-206. [setAngleStaticShieldPoly — 对应 C 接口 {@code ZC_SetAngleStaticShieldPoly}(SDK 头文件无独立注释,功能见函数名)](#206) 
-207. [clrAngleStaticShieldPoly — 对应 C 接口 {@code ZC_ClrAngleStaticShieldPoly}(SDK 头文件无独立注释,功能见函数名)](#207) 
-208. [getAngleDynamicShieldRect — 动屏-矩形](#208) 
-209. [setAngleDynamicShieldRect — 对应 C 接口 {@code ZC_SetAngleDynamicShieldRect}(SDK 头文件无独立注释,功能见函数名)](#209) 
-210. [clrAngleDynamicShieldRect — 对应 C 接口 {@code ZC_ClrAngleDynamicShieldRect}(SDK 头文件无独立注释,功能见函数名)](#210) 
-211. [getAngleDynamicShieldPoly — 动屏-多边形](#211) 
-212. [setAngleDynamicShieldPoly — 对应 C 接口 {@code ZC_SetAngleDynamicShieldPoly}(SDK 头文件无独立注释,功能见函数名)](#212) 
-213. [clrAngleDynamicShieldPoly — 对应 C 接口 {@code ZC_ClrAngleDynamicShieldPoly}(SDK 头文件无独立注释,功能见函数名)](#213) 
-214. [getAngleMoveLine — 闯入-线](#214) 
-215. [setAngleMoveLine — 对应 C 接口 {@code ZC_SetAngleMoveLine}(SDK 头文件无独立注释,功能见函数名)](#215) 
-216. [clrAngleMoveLine — 对应 C 接口 {@code ZC_ClrAngleMoveLine}(SDK 头文件无独立注释,功能见函数名)](#216) 
-217. [getAngleMoveRect — 闯入-矩形](#217) 
-218. [setAngleMoveRect — 对应 C 接口 {@code ZC_SetAngleMoveRect}(SDK 头文件无独立注释,功能见函数名)](#218) 
-219. [clrAngleMoveRect — 对应 C 接口 {@code ZC_ClrAngleMoveRect}(SDK 头文件无独立注释,功能见函数名)](#219) 
-220. [getAngleMovePoly — 闯入-多边形`](#220) 
-221. [setAngleMovePoly — 对应 C 接口 {@code ZC_SetAngleMovePoly}(SDK 头文件无独立注释,功能见函数名)](#221) 
-222. [clrAngleMovePoly — 对应 C 接口 {@code ZC_ClrAngleMovePoly}(SDK 头文件无独立注释,功能见函数名)](#222) 
-223. [getAngleMoveBorder — 闯入-多边形边界](#223) 
-224. [setAngleMoveBorder — 对应 C 接口 {@code ZC_SetAngleMoveBorder}(SDK 头文件无独立注释,功能见函数名)](#224) 
-225. [clrAngleMoveBorder — 对应 C 接口 {@code ZC_ClrAngleMoveBorder}(SDK 头文件无独立注释,功能见函数名)](#225) 
-226. [ruiTing_GetZone — R-T-D-Z](#226) 
-227. [ruiTing_SetZone — 对应 C 接口 {@code ZC_RuiTing_SetZone}(SDK 头文件无独立注释,功能见函数名)](#227) 
-228. [ruiTing_DelZone — 对应 C 接口 {@code ZC_RuiTing_DelZone}(SDK 头文件无独立注释,功能见函数名)](#228) 
-229. [ruiTing_GetGroup — 对应 C 接口 {@code ZC_RuiTing_GetGroup}(SDK 头文件无独立注释,功能见函数名)](#229) 
-230. [ruiTing_SetGroup — 对应 C 接口 {@code ZC_RuiTing_SetGroup}(SDK 头文件无独立注释,功能见函数名)](#230) 
-231. [ruiTing_DelGroup — 对应 C 接口 {@code ZC_RuiTing_DelGroup}(SDK 头文件无独立注释,功能见函数名)](#231) 
-232. [enableRecvAlarm — 是否接收报警 bEnable = 1,接收;bEnable = 0,不接收](#232) 
-233. [alarmAutoCapture — 报警自动抓拍图像](#233) 
-234. [captureToFile — 抓拍图像](#234) 
-
-<a id='1-login'></a>
-
-## 1. login — 设备登录(红外 + 可见光)。
-
-- **URL**:`POST /api/zc/device/login`
-
-### 请求体(LoginReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 红外(ZC)设备 IP |
-| port | int | 否 | 红外设备端口 |
-| username | String | 否 | 红外设备登录用户名 |
-| password | String | 否 | 红外设备登录密码 |
-| hdCamera | CameraInfo | 否 | 可见光(海康)设备连接参数(ip/port/username/password) |
-| irCamera | CameraInfo | 否 | 红外设备信息(预留) |
-
-### 返回
-
-始终 HTTP 200 + code=0(登录结果在 data 中,失败不回错误码):
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| ip | String | 设备 IP |
-| handle | long | 红外(ZC)登录句柄 |
-| loginTime | long | 登录时间戳(毫秒) |
-| result | int | 红外登录结果(0-成功 1-失败) |
-| msg1 | String | 红外结果消息 |
-| handle2 | long | 可见光(海康)登录句柄 |
-| hdresult | int | 可见光登录结果(0-成功 1-失败) |
-| msg2 | String | 可见光结果消息 |
-| msg | String | 总体结果消息(任一台失败时为"设备登录失败") |
-
-**说明**:先登录可见光设备(连接参数取 hdCamera),再登录红外设备(ip/port/username/password),两台设备相互独立;
-红外登录成功后按 IP 缓存句柄,并自动注册该设备的报警/事件/测温回调(回调数据经 ZcCallbackNotifier 上报)。
-
----
-
-<a id='2-logout'></a>
-
-## 2. logout — 设备登出(红外 + 可见光)。
-
-- **URL**:`POST /api/zc/device/logout`
-
-### 请求体(IpReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-
-### 返回
-
-始终 HTTP 200 + code=0(登出结果在 data 中):
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| result | int | 红外(ZC SDK)登出返回码 |
-| msg1 | String | 红外结果消息 |
-| hdresult | int | 可见光登出结果(0-成功 1-失败) |
-| msg2 | String | 可见光结果消息 |
-| msg | String | 总体结果消息(任一台失败时为"设备退出登录失败") |
-
-**说明**:先按 IP 取可见光设备信息并登出海康会话,再登出红外(ZC)会话(移除句柄缓存并注销设备绑定回调)。
-
----
-
-<a id='3-reboot'></a>
-
-## 3. reboot — 设备重启。
-
-- **URL**:`POST /api/zc/device/reboot`
-
-### 请求体(IpReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-
-### 返回
-
-code=0 成功,data 为 SDK 返回码(0 成功)
-
----
-
-<a id='4-resetConfig'></a>
-
-## 4. resetConfig — 恢复设备出厂配置(不保存)。
-
-- **URL**:`POST /api/zc/device/resetConfig`
-
-### 请求体(IpReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='5-saveConfig'></a>
-
-## 5. saveConfig — 保存设备当前全部配置。
-
-- **URL**:`POST /api/zc/device/saveConfig`
-
-### 请求体(IpReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='6-getDeviceInfo'></a>
-
-## 6. getDeviceInfo — 获取设备基础信息。
-
-- **URL**:`POST /api/zc/device/getDeviceInfo`
-
-### 请求体(IpReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-
-### 返回
-
-code=0 成功,data 为设备信息对象 {deviceID, deviceName, serialNumber, macAddress, appVersion, deviceType, deviceModel, runningTime}
-
----
-
-<a id='7-setDeviceInfo'></a>
-
-## 7. setDeviceInfo — 设置设备基础信息。
-
-- **URL**:`POST /api/zc/device/setDeviceInfo`
-
-### 请求体(SetDeviceInfoReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| deviceInfo | DeviceInfoDto | 否 |  |
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='8-getNetworkConfig'></a>
-
-## 8. getNetworkConfig — 获取设备网络配置(裸指针接口)。
-
-- **URL**:`POST /api/zc/device/getNetworkConfig`
-
-### 请求体(IpReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='9-setNetworkConfig'></a>
-
-## 9. setNetworkConfig — 设置设备网络配置。
-
-- **URL**:`POST /api/zc/device/setNetworkConfig`
-
-### 请求体(IpReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-
-### 返回
-
-code=100 提示不支持
-
----
-
-<a id='10-ptzControl'></a>
-
-## 10. ptzControl — 云台持续运动控制。
-
-- **URL**:`POST /api/zc/device/ptzControl`
-
-### 请求体(PtzControlReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| cmd | int | 是 |  云台命令码:1-云台上 2-云台下 3-云台左 4-云台右 5-左上 6-右上 7-左下 8-右下;9-倍率变大 10-倍率变小 11-光圈放大 12-光圈缩小 13-焦点前调 14-焦点后调  |
-| stop | int | 是 | 停止标志:0-开始(持续运动,需再发一次 1 停止) 1-停止 |
-| speed | int | 是 | 速度:1~100 |
-| type | int | 是 | 1-红外 2-可见光 |
-
-### 返回
-
-始终 HTTP 200 + code=0(云台控制结果在 data 中):
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| result | int | 云台控制返回码(0-成功) |
-| msg | String | 总体消息 |
----
-
-<a id='11-ptzPresetControl'></a>
-
-## 11. ptzPresetControl — 预置位操作:调用/保存/删除预置位。
-
-- **URL**:`POST /api/zc/device/ptzPresetControl`
-
-### 请求体(PresetReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| cmd | int | 否 |  |
-| idx | int | 否 |  |
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='12-rockerSpeedControl'></a>
-
-## 12. rockerSpeedControl — 摇杆无级速度控制。
-
-- **URL**:`POST /api/zc/device/rockerSpeedControl`
-
-### 请求体(RockerReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| x | int | 否 |  |
-| y | int | 否 |  |
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='13-setPTZAngle'></a>
-
-## 13. setPTZAngle — 指定云台绝对角度定位。
-
-- **URL**:`POST /api/zc/device/setPTZAngle`
-
-### 请求体(AngleReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| hAngle | float | 否 |  |
-| vAngle | float | 否 |  |
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='14-getPtzAngle'></a>
-
-## 14. getPtzAngle — 获取云台当前角度。
-
-- **URL**:`POST /api/zc/device/getPtzAngle`
-
-### 请求体(IpReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-
-### 返回
-
-code=0 成功,data 为 {horAngle, verAngle}
-
----
-
-<a id='15-motorControl'></a>
-
-## 15. motorControl — 电机单独控制。
-
-- **URL**:`POST /api/zc/device/motorControl`
-
-### 请求体(MotorReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| id | int | 否 |  |
-| ctrl | int | 否 |  |
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='16-captureJPEGToFile'></a>
-
-## 16. captureJPEGToFile — 抓拍可见光 JPG 保存到本地文件。
-
-- **URL**:`POST /api/zc/device/captureJPEGToFile`
-
-### 请求体(CaptureFileReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| channel | int | 否 |  |
-| path | String | 否 |  |
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='17-captureJPEG'></a>
-
-## 17. captureJPEG — 抓拍可见光 JPG,返回 Base64 图片数据。
-
-- **URL**:`POST /api/zc/device/captureJPEG`
-
-### 请求体(CaptureReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| channel | int | 否 |  |
-
-### 返回
-
-code=0 成功,data 为 {length, imageBase64};失败时 imageBase64 为 null
-
----
-
-<a id='18-captureThermalToFile'></a>
-
-## 18. captureThermalToFile — 抓拍红外热图保存到文件。
-
-- **URL**:`POST /api/zc/device/captureThermalToFile`
-
-### 请求体(PathReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| path | String | 否 |  |
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='19-captureVisibleHDToFile'></a>
-
-## 19. captureVisibleHDToFile — 高清可见光抓拍保存文件。
-
-- **URL**:`POST /api/zc/device/captureVisibleHDToFile`
-
-### 请求体(PathReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| path | String | 否 |  |
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='20-captureTemperatureFrame'></a>
-
-## 20. captureTemperatureFrame — 获取红外测温原始帧数据(温度矩阵),返回 Base64。
-
-- **URL**:`POST /api/zc/device/captureTemperatureFrame`
-
-### 请求体(IpReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-
-### 返回
-
-code=0 成功,data 为 {length, frameBase64}
-
----
-
-<a id='21-streamDisconnect'></a>
-
-## 21. streamDisconnect — 关闭实时流。
-
-- **URL**:`POST /api/zc/device/streamDisconnect`
-
-### 请求体(StreamDisconnectReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| streamHandle | long | 否 |  |
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='22-parsePixelTemp'></a>
-
-## 22. parsePixelTemp — 根据像素坐标读取单点温度。
-
-- **URL**:`POST /api/zc/device/parsePixelTemp`
-
-### 请求体(ParsePixelTempReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| x | int | 否 |  |
-| y | int | 否 |  |
-| frameBase64 | String | 否 |  |
-| width | int | 否 |  |
-| height | int | 否 |  |
-
-### 返回
-
-code=0 成功,data 为该点温度值(℃)
-
----
-
-<a id='23-getTempMaxMinAvg'></a>
-
-## 23. getTempMaxMinAvg — 计算整张画面最高/最低/平均温度。
-
-- **URL**:`POST /api/zc/device/getTempMaxMinAvg`
-
-### 请求体(TempFrameReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| frameBase64 | String | 否 |  |
-| width | int | 否 |  |
-| height | int | 否 |  |
-
-### 返回
-
-code=0 成功,data 为 {maxX, maxY, maxT, minX, minY, minT, avgT}
-
----
-
-<a id='24-parsePoseData'></a>
-
-## 24. parsePoseData — 解析原始姿态数据(陀螺仪/加速度/欧拉角/测温)。
-
-- **URL**:`POST /api/zc/device/parsePoseData`
-
-### 请求体(PoseReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| dataBase64 | String | 否 |  |
-
-### 返回
-
-code=0 成功,data 为姿态对象 {gyroX, gyroY, gyroZ, accX, accY, accZ, pitch, roll, yaw, m1Te, m2Te, m3Te, m1Tm, m2Tm, m3Tm}
-
----
-
-<a id='25-getPresetPotTempRect'></a>
-
-## 25. getPresetPotTempRect — 获取预置位测温矩形区域。
-
-- **URL**:`POST /api/zc/device/getPresetPotTempRect`
-
-### 请求体(RegionReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| preset | int | 否 |  |
-| idx | int | 否 |  |
-
-### 返回
-
-code=0 成功,data 为矩形结构体(SDK 以姿态结构体承载,字段名见 PoseDto)
-
----
-
-<a id='26-setPresetPotTempRect'></a>
-
-## 26. setPresetPotTempRect — 设置预置位测温矩形区域。
-
-- **URL**:`POST /api/zc/device/setPresetPotTempRect`
-
-### 请求体(TempRectRegionReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| preset | int | 否 |  |
-| idx | int | 否 |  |
-| rect | PotTempRectDto | 否 |  |
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='27-clearPresetPotTempRect'></a>
-
-## 27. clearPresetPotTempRect — 清空预置位测温矩形区域。
-
-- **URL**:`POST /api/zc/device/clearPresetPotTempRect`
-
-### 请求体(RegionReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| preset | int | 否 |  |
-| idx | int | 否 |  |
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='28-getPresetPotTempPoly'></a>
-
-## 28. getPresetPotTempPoly — 获取预置位测温多边形区域。
-
-- **URL**:`POST /api/zc/device/getPresetPotTempPoly`
-
-### 请求体(RegionReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| preset | int | 否 |  |
-| idx | int | 否 |  |
-
-### 返回
-
-code=0 成功,data 为 {radiation, alarmTemp, poly:{points:[{x,y}×6]}}
-
----
-
-<a id='29-setPresetPotTempPoly'></a>
-
-## 29. setPresetPotTempPoly — 设置预置位测温多边形区域。
-
-- **URL**:`POST /api/zc/device/setPresetPotTempPoly`
-
-### 请求体(TempPolyRegionReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| preset | int | 否 |  |
-| idx | int | 否 |  |
-| poly | PotTempPolyDto | 否 |  |
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='30-clearPresetPotTempPoly'></a>
-
-## 30. clearPresetPotTempPoly — 清空预置位测温多边形区域。
-
-- **URL**:`POST /api/zc/device/clearPresetPotTempPoly`
-
-### 请求体(RegionReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| preset | int | 否 |  |
-| idx | int | 否 |  |
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='31-getPresetStaticShieldRect'></a>
-
-## 31. getPresetStaticShieldRect — 获取预置位静屏矩形屏蔽区。
-
-- **URL**:`POST /api/zc/device/getPresetStaticShieldRect`
-
-### 请求体(RegionReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| preset | int | 否 |  |
-| idx | int | 否 |  |
-
-### 返回
-
-code=0 成功,data 为 {leftUp:{x,y}, rightDown:{x,y}}
-
----
-
-<a id='32-setPresetStaticShieldRect'></a>
-
-## 32. setPresetStaticShieldRect — 设置预置位静屏矩形屏蔽区。
-
-- **URL**:`POST /api/zc/device/setPresetStaticShieldRect`
-
-### 请求体(RectRegionReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| preset | int | 否 |  |
-| idx | int | 否 |  |
-| rect | RectDto | 否 |  |
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='33-clearPresetStaticShieldRect'></a>
-
-## 33. clearPresetStaticShieldRect — 清空预置位静屏矩形屏蔽区。
-
-- **URL**:`POST /api/zc/device/clearPresetStaticShieldRect`
-
-### 请求体(RegionReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| preset | int | 否 |  |
-| idx | int | 否 |  |
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='34-getPresetStaticShieldPoly'></a>
-
-## 34. getPresetStaticShieldPoly — 获取预置位静屏多边形屏蔽区。
-
-- **URL**:`POST /api/zc/device/getPresetStaticShieldPoly`
-
-### 请求体(RegionReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| preset | int | 否 |  |
-| idx | int | 否 |  |
-
-### 返回
-
-code=0 成功,data 为 {points:[{x,y}×6]}
-
----
-
-<a id='35-setPresetStaticShieldPoly'></a>
-
-## 35. setPresetStaticShieldPoly — 设置预置位静屏多边形屏蔽区。
-
-- **URL**:`POST /api/zc/device/setPresetStaticShieldPoly`
-
-### 请求体(PolyRegionReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| preset | int | 否 |  |
-| idx | int | 否 |  |
-| poly | PolyDto | 否 |  |
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='36-clearPresetStaticShieldPoly'></a>
-
-## 36. clearPresetStaticShieldPoly — 清空预置位静屏多边形屏蔽区。
-
-- **URL**:`POST /api/zc/device/clearPresetStaticShieldPoly`
-
-### 请求体(RegionReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| preset | int | 否 |  |
-| idx | int | 否 |  |
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='37-deviceUpgrade'></a>
-
-## 37. deviceUpgrade — 设备固件升级。
-
-- **URL**:`POST /api/zc/device/deviceUpgrade`
-
-### 请求体(UpgradeReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| filename | String | 否 |  |
-| filepath | String | 否 |  |
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='38-streamGetSingleFrame'></a>
-
-## 38. streamGetSingleFrame — 实时流取单帧(ZC_StreamGetSingleFrame)。
-
-- **URL**:`POST /api/zc/device/streamGetSingleFrame`
-
-### 请求体(StreamFrameReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| streamHandle | long | 否 |  |
-
-### 返回
-
-code=0 成功,data 为 {width, height, length, timestamp, dataBase64};帧内存接口内部已释放
-
----
-
-<a id='39-streamFreeSingleFrame'></a>
-
-## 39. streamFreeSingleFrame — 释放实时流单帧(ZC_StreamFreeSingleFrame)。
-
-- **URL**:`POST /api/zc/device/streamFreeSingleFrame`
-
-### 请求体(StreamFrameReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| streamHandle | long | 否 |  |
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='40-captureFrameV20'></a>
-
-## 40. captureFrameV20 — V20 抓取一帧图像(ZC_CaptureFrame_V20)。
-
-- **URL**:`POST /api/zc/device/captureFrameV20`
-
-### 请求体(FrameV20Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| type | int | 否 |  |
-
-### 返回
-
-code=0 成功,data 为 {width, height, length, timestamp, dataBase64};帧内存接口内部已释放
-
----
-
-<a id='41-captureFrame'></a>
-
-## 41. captureFrame — 通用抓取一帧(ZC_CaptureFrame,常用于测温帧)。
-
-- **URL**:`POST /api/zc/device/captureFrame`
-
-### 请求体(IpReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-
-### 返回
-
-code=0 成功,data 为 {width, height, length, dataBase64};帧内存接口内部已释放
-
----
-
-<a id='42-tempFrmGetPixTemp'></a>
-
-## 42. tempFrmGetPixTemp — 帧内单点温度(ZC_TempFrm_GetPixTemp)。
-
-- **URL**:`POST /api/zc/device/tempFrmGetPixTemp`
-
-### 请求体(PixTempReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| width | int | 否 |  |
-| height | int | 否 |  |
-| x | int | 否 |  |
-| y | int | 否 |  |
-| frameBase64 | String | 否 |  |
-
-### 返回
-
-code=0 成功,data 为该点温度值(失败返回 NaN)
-
----
-
-<a id='43-ptzControlLegacy'></a>
-
-## 43. ptzControlLegacy — 旧版 PTZ 控制(ZC_PTZControl,区别于 {@code /ptzControl} 的 ZC_PTZControl_V20)。
-
-- **URL**:`POST /api/zc/device/ptzControlLegacy`
-
-### 请求体(PtzLegacyReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| command | int | 否 |  |
-| control | int | 否 |  |
-| speed | int | 否 |  |
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='44-gotoPtzAngle'></a>
-
-## 44. gotoPtzAngle — 云台按角度定位(ZC_GotoPtzAngle)。
-
-- **URL**:`POST /api/zc/device/gotoPtzAngle`
-
-### 请求体(GotoAngleReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-| horAngle | float | 否 |  |
-| verAngle | float | 否 |  |
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='45-setAlarmPictureSavePath'></a>
-
-## 45. setAlarmPictureSavePath — 
-
-- **URL**:`POST /api/zc/device/setAlarmPictureSavePath`
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='46-stopSrvCenter'></a>
-
-## 46. stopSrvCenter — 
-
-- **URL**:`POST /api/zc/device/stopSrvCenter`
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='47-startSrvCenter'></a>
-
-## 47. startSrvCenter — 
-
-- **URL**:`POST /api/zc/device/startSrvCenter`
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='48-deviceSearch'></a>
-
-## 48. deviceSearch — 
-
-- **URL**:`POST /api/zc/device/deviceSearch`
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='49-mapLog'></a>
-
-## 49. mapLog — 
-
-- **URL**:`POST /api/zc/device/mapLog`
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='50-realPlay'></a>
-
-## 50. realPlay — 设备实时预览(设备绑定回调,RealDataCallback 在 ZcDeviceManager 注册并上报)。
-
-- **URL**:`POST /api/zc/device/realPlay`
-
-### 返回
-
-预览句柄 hRealPlay
-
----
-
-<a id='51-registerRgbDataCallback'></a>
-
-## 51. registerRgbDataCallback — 
-
-- **URL**:`POST /api/zc/device/registerRgbDataCallback`
-
-### 请求体(IpReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='52-stopRealPlay'></a>
-
-## 52. stopRealPlay — 
-
-- **URL**:`POST /api/zc/device/stopRealPlay`
-
-### 请求体(IpReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 |  |
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='53-getSDKVersion'></a>
-
-## 53. getSDKVersion — 获取 SDK 版本号
-
-- **URL**:`POST /api/zc/device/getSDKVersion`
-- **C 接口**:`ZC_GetSDKVersion`
-
-### 返回
-
-code=0 成功,data 含 version 字符串与 major/minor/revise/build 分量
-
----
-
-<a id='54-init'></a>
-
-## 54. init — SDK 全局初始化,程序启动调用一次即可
-
-- **URL**:`POST /api/zc/device/init`
-- **C 接口**:`ZC_Init`
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='55-clear'></a>
-
-## 55. clear — 释放 SDK 全局资源,程序退出前调用一次即可
-
-- **URL**:`POST /api/zc/device/clear`
-- **C 接口**:`ZC_Clear`
-
-### 返回
-
-`Result<Integer>`
-
----
-
-<a id='56-getLastError'></a>
-
-## 56. getLastError — 获取 SDK 最后一次错误码
-
-- **URL**:`POST /api/zc/device/getLastError`
-- **C 接口**:`ZC_GetLastErr`
-
-### 返回
-
-code=0 成功,data 为最近一次 SDK 调用的错误码
-
----
-
-<a id='57-freeFrameV20'></a>
-
-## 57. freeFrameV20 — 释放一帧 V20 帧数据
-
-- **URL**:`POST /api/zc/device/freeFrameV20`
-- **C 接口**:`ZC_FreeFrame_V20`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 是 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='58-freeFrm'></a>
-
-## 58. freeFrm — 释放一帧普通帧数据
-
-- **URL**:`POST /api/zc/device/freeFrm`
-- **C 接口**:`ZC_FreeFrm`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 是 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='59-getLaserDistance'></a>
-
-## 59. getLaserDistance — 获取激光测距距离
-
-- **URL**:`POST /api/zc/device/getLaserDistance`
-- **C 接口**:`ZC_GetLaserDistance`
-
-### 请求体(IpReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-
-### 返回
-
-code=0 成功;返回值为数值结果
-
----
-
-<a id='60-realPlay_CopyRGBData'></a>
-
-## 60. realPlay_CopyRGBData — 从实时预览拷贝一帧 RGB 数据(BGR24)
-
-- **URL**:`POST /api/zc/device/realPlay_CopyRGBData`
-- **C 接口**:`ZC_RealPlay_CopyRGBData`
-
-### 请求体(IntReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | timeout(超时毫秒) |
-
-### 返回
-
-code=0 成功;data 为返回数据
-
----
-
-<a id='61-getLastAlarmInfo_FromDevice'></a>
-
-## 61. getLastAlarmInfo_FromDevice — 从设备读取最近一次报警信息
-
-- **URL**:`POST /api/zc/device/getLastAlarmInfo_FromDevice`
-- **C 接口**:`ZC_GetLastAlarmInfo_FromDevice`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为返回数据
-
----
-
-<a id='62-mapFireLocation'></a>
-
-## 62. mapFireLocation — 地图火点位置映射(d 定位/ir 红外/f 火点/loc 位置 4 个结构体)
-
-- **URL**:`POST /api/zc/device/mapFireLocation`
-- **C 接口**:`ZC_MapFireLocation`
-
-### 请求体(MapFireReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| d | String | 否 |  |
-| ir | String | 否 |  |
-| f | String | 否 |  |
-| loc | String | 否 |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='63-displayRGBData'></a>
-
-## 63. displayRGBData — 渲染一帧 BGR24 数据到窗口
-
-- **URL**:`POST /api/zc/device/displayRGBData`
-- **C 接口**:`ZC_DisplayRGBData`
-
-### 请求体(DisplayReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| w | Integer | 否 |  |
-| h | Integer | 否 |  |
-| pRGB | String | 否 |  |
-| bpp | Integer | 否 |  |
-| stretch | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='64-compressIRDataTo8Bits'></a>
-
-## 64. compressIRDataTo8Bits — 将红外温度数据帧压缩为 8 位数据
-
-- **URL**:`POST /api/zc/device/compressIRDataTo8Bits`
-- **C 接口**:`ZC_CompressIRDataTo8Bits`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_FRAME_S 结构体字段 JSON
-
----
-
-<a id='65-tempFrm_WriteToTxt'></a>
-
-## 65. tempFrm_WriteToTxt — 将温度数据帧写入 txt 文档
-
-- **URL**:`POST /api/zc/device/tempFrm_WriteToTxt`
-- **C 接口**:`ZC_TempFrm_WriteToTxt`
-
-### 请求体(TxtReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 是 |  |
-| size | Integer | 否 |  |
-| s1 | String | 否 |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='66-tempFrm_Rect_WriteToTxt'></a>
-
-## 66. tempFrm_Rect_WriteToTxt — 将温度数据帧指定矩形区域写入 txt 文档
-
-- **URL**:`POST /api/zc/device/tempFrm_Rect_WriteToTxt`
-- **C 接口**:`ZC_TempFrm_Rect_WriteToTxt`
-
-### 请求体(TxtRectReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 是 |  |
-| size | Integer | 否 |  |
-| i4 | Integer | 否 |  |
-| i1 | Integer | 否 | x1 |
-| i2 | Integer | 否 | y1 |
-| i3 | Integer | 否 |  |
-| s1 | String | 否 |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='67-parseInquiryInfo'></a>
-
-## 67. parseInquiryInfo — 解析设备搜索返回的 JSON 信息
-
-- **URL**:`POST /api/zc/device/parseInquiryInfo`
-- **C 接口**:`ZC_ParseInquiryInfo`
-
-### 请求体(ParseInquiryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| s1 | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_INQUIRY_INFO_S 结构体字段 JSON
-
----
-
-<a id='68-getDeviceSoftVersion'></a>
-
-## 68. getDeviceSoftVersion — 获取设备软件版本
-
-- **URL**:`POST /api/zc/device/getDeviceSoftVersion`
-- **C 接口**:`ZC_GetDeviceSoftVersion`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_VERSION_S 结构体字段 JSON
-
----
-
-<a id='69-getConnectStatus'></a>
-
-## 69. getConnectStatus — 获取设备连接状态
-
-- **URL**:`POST /api/zc/device/getConnectStatus`
-- **C 接口**:`ZC_GetConnectStatus`
-
-### 请求体(IpReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='70-realPlay_SetImageStretch'></a>
-
-## 70. realPlay_SetImageStretch — 预览图像拉伸
-
-- **URL**:`POST /api/zc/device/realPlay_SetImageStretch`
-- **C 接口**:`ZC_RealPlay_SetImageStretch`
-
-### 请求体(IntReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | stretch |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='71-captureJPEGPicture'></a>
-
-## 71. captureJPEGPicture — 抓拍JPEG图片
-
-- **URL**:`POST /api/zc/device/captureJPEGPicture`
-- **C 接口**:`ZC_CaptureJPEGPicture`
-
-### 请求体(StrReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| s1 | String | 否 |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='72-recordMP4File'></a>
-
-## 72. recordMP4File — 开始录制 MP4 视频(红外 + 可见光)
-
-- **URL**:`POST /api/zc/device/recordMP4File`
-- **C 接口**:`ZC_RecordMP4File`(红外);可见光走海康 HCNetSDK 实时录制(通道 1,recordType=0)
-
-### 请求体(StrReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| s1 | String | 是 | 可见光录像文件名(如 visible.mp4,为空返回错误) |
-| s2 | String | 否 | 红外录像文件名(如 ir.mp4) |
-
-### 返回
-
-始终 HTTP 200 + code=0(结果在 data 中):
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| fileName | String | 可见光文件名(s1 回显) |
-| fileName2 | String | 红外文件名(s2 回显) |
-| filePath | String | 存储目录(mp4-path,不含文件名) |
-| result | int | 红外录制返回码(0-成功) |
-| msg1 | String | 红外结果消息 |
-| hdresult | int | 可见光录制结果(0-成功) |
-| msg2 | String | 可见光结果消息 |
-| msg | String | 总体消息(设备未登录时为"录制失败,请检查设备连接情况") |
-
-**说明**:红外录制到 `mp4-path` + s2,可见光录制到 `mp4-path` + s1,两路相互独立。
-
----
-
-<a id='73-stopRecordMP4File'></a>
-
-## 73. stopRecordMP4File — 停止录制 MP4 视频(红外 + 可见光)
-
-- **URL**:`POST /api/zc/device/stopRecordMP4File`
-- **C 接口**:`ZC_StopRecordMP4File`(红外);可见光走海康停止实时录制
-
-### 请求体(IpReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-
-### 返回
-
-始终 HTTP 200 + code=0(结果在 data 中):
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| result | int | 红外停止录制返回码(0-成功) |
-| msg1 | String | 红外结果消息 |
-| filePath | String | 文件所属目录 |
-| fileName | String | 可见光文件名称 |
-| hdresult | int | 可见光停止结果(0-成功) |
-| msg2 | String | 可见光结果消息 |
-| fileName2 | String | 红外文件名称 |
-| msg | String | 总体消息(设备未登录时为"停止录制失败,请检查设备连接情况") |
-
-**说明**:红外取实时流句柄后调用 `ZC_StopRecordMP4File`;可见光调用海康停止实时录制(文件落盘),两路相互独立。
-
----
-
-<a id='74-getImageCfg'></a>
-
-## 74. getImageCfg — 查询图像参数
-
-- **URL**:`POST /api/zc/device/getImageCfg`
-- **C 接口**:`ZC_GetImageCfg`
-
-### 请求体(BinaryIntReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-| i1 | Integer | 否 | channel |
-
-### 返回
-
-code=0 成功;data 为 ZC_IMAGE_CFG_S 结构体字段 JSON
-
----
-
-<a id='75-setImageCfg'></a>
-
-## 75. setImageCfg — 设置图像参数
-
-- **URL**:`POST /api/zc/device/setImageCfg`
-- **C 接口**:`ZC_SetImageCfg`
-
-### 请求体(ImageCfgReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 |  |
-| data | ZC_IMAGE_CFG_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_IMAGE_CFG_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| brightnessLevel | int |  |
-| contrastLevel | int |  |
-| TNRLevel | int |  |
-| SNRLevel | int |  |
-| DDELevel | int |  |
-| AGCMode | int |  |
-| GAINLevel | int |  |
-| BosLevel | int |  |
-| AGCOnOff | int |  |
-| mirrorFlip | int |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='76-getMediaCompress'></a>
-
-## 76. getMediaCompress — 查询音视频压缩参数
-
-- **URL**:`POST /api/zc/device/getMediaCompress`
-- **C 接口**:`ZC_GetMediaCompress`
-
-### 请求体(BinaryInt2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-| i1 | Integer | 否 | channel |
-| i2 | Integer | 否 | source |
-
-### 返回
-
-code=0 成功;data 为 ZC_MEDIA_COMPRESS_V20_S 结构体字段 JSON
-
----
-
-<a id='77-setMediaCompress'></a>
-
-## 77. setMediaCompress — 设置音视频压缩参数
-
-- **URL**:`POST /api/zc/device/setMediaCompress`
-- **C 接口**:`ZC_SetMediaCompress`
-
-### 请求体(MediaCompressReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 |  |
-| i2 | Integer | 否 |  |
-| data | ZC_MEDIA_COMPRESS_V20_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_MEDIA_COMPRESS_V20_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| resolution | int |  |
-| videoEncType | int | 视频编码类型:0-H.264,1-H.265,2-MJPEG |
-| videoBitrate | int |  |
-| videoFrameRate | int | 视频帧率:[1,30] |
-| intervalFrameI | int | I帧间隔:[1,100] |
-| audioInputEnabled | int | 音频输入:0~禁用,1~启用 |
-| audioInputVolume | int | 音频输入音量:[0,100] |
-| audioOutputEnabled | int | 音频输出:0~禁用,1~启用 |
-| audioOutputVolume | int | 音频输出音量:[0,100] |
-| audioEncType | int | 音频编码类型:0-PCM,1-AAC,2-G711A,3-G711U,4-MP3 |
-| audioBirate | int | 音频码率:32000,64000 |
-| audioSamplingRate | int | 音频采样率:8000,16000,32000,44100 |
-| videoBitRateMode | int | 码率控制:0-定码率(cbr),1-变码率(vbr) |
-| videoProfile | int | 编码等级:0-Baseline,1-Main,2-High |
-| videoQuality | int | 编码质量:[0,6] |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='78-getTPDCfg'></a>
-
-## 78. getTPDCfg — 查询测温参数
-
-- **URL**:`POST /api/zc/device/getTPDCfg`
-- **C 接口**:`ZC_GetTPDCfg`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_TPD_CFG_S 结构体字段 JSON
-
----
-
-<a id='79-setTPDCfg'></a>
-
-## 79. setTPDCfg — 设置测温参数
-
-- **URL**:`POST /api/zc/device/setTPDCfg`
-- **C 接口**:`ZC_SetTPDCfg`
-
-### 请求体(TPDCfgReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_TPD_CFG_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_TPD_CFG_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| ta | int | 环境反射温度 |
-| tu | int | 大气温度 |
-| gain | int | 增益 |
-| ems | double | 目标发射率 |
-| tau | double | 大气透过率 |
-| distance | double | 距离 |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='80-restoreTPDCfg'></a>
-
-## 80. restoreTPDCfg — 恢复默认测温参数
-
-- **URL**:`POST /api/zc/device/restoreTPDCfg`
-- **C 接口**:`ZC_RestoreTPDCfg`
-
-### 请求体(IpReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='81-getAutoShutterCfg'></a>
-
-## 81. getAutoShutterCfg — 查询 自动快门
-
-- **URL**:`POST /api/zc/device/getAutoShutterCfg`
-- **C 接口**:`ZC_GetAutoShutterCfg`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_AUTO_SHUTTER_S 结构体字段 JSON
-
----
-
-<a id='82-setAutoShutterCfg'></a>
-
-## 82. setAutoShutterCfg — 设置 自动快门
-
-- **URL**:`POST /api/zc/device/setAutoShutterCfg`
-- **C 接口**:`ZC_SetAutoShutterCfg`
-
-### 请求体(AutoShutterCfgReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_AUTO_SHUTTER_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_AUTO_SHUTTER_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| enable | int | 1-启用;0-禁用 |
-| interval | int | 快门间隔,单位:秒 |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='83-systemTimeSync_V20'></a>
-
-## 83. systemTimeSync_V20 — 系统时间同步
-
-- **URL**:`POST /api/zc/device/systemTimeSync_V20`
-- **C 接口**:`ZC_SystemTimeSync_V20`
-
-### 请求体(temTimeSync_V20Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_DATETIME_V20_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_DATETIME_V20_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| year | int |  |
-| month | int |  |
-| day | int |  |
-| hour | int |  |
-| minute | int |  |
-| second | int |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='84-getSupplyLightCfg_V20'></a>
-
-## 84. getSupplyLightCfg_V20 — 查询补光灯参数
-
-- **URL**:`POST /api/zc/device/getSupplyLightCfg_V20`
-- **C 接口**:`ZC_GetSupplyLightCfg_V20`
-
-### 请求体(BinaryIntReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-| i1 | Integer | 否 | channel |
-
-### 返回
-
-code=0 成功;data 为 ZC_SUPPLYLIGHT_V20_S 结构体字段 JSON
-
----
-
-<a id='85-setSupplyLightCfg_V20'></a>
-
-## 85. setSupplyLightCfg_V20 — 设置补光灯参数
-
-- **URL**:`POST /api/zc/device/setSupplyLightCfg_V20`
-- **C 接口**:`ZC_SetSupplyLightCfg_V20`
-
-### 请求体(SupplyLightCfg_V20Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 |  |
-| data | ZC_SUPPLYLIGHT_V20_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_SUPPLYLIGHT_V20_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| mode | int |  |
-| brightness | int |  |
-| startHour | int |  |
-| startMinute | int |  |
-| startSecond | int |  |
-| stopHour | int |  |
-| stopMinute | int |  |
-| stopSecond | int |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='86-getRS485Cfg_V20'></a>
-
-## 86. getRS485Cfg_V20 — 查询RS485参数
-
-- **URL**:`POST /api/zc/device/getRS485Cfg_V20`
-- **C 接口**:`ZC_GetRS485Cfg_V20`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_RS485_V20_S 结构体字段 JSON
-
----
-
-<a id='87-setRS485Cfg_V20'></a>
-
-## 87. setRS485Cfg_V20 — 设置RS485参数
-
-- **URL**:`POST /api/zc/device/setRS485Cfg_V20`
-- **C 接口**:`ZC_SetRS485Cfg_V20`
-
-### 请求体(RS485Cfg_V20Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_RS485_V20_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_RS485_V20_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| baudrate | int |  |
-| databits | int |  |
-| stopbits | int |  |
-| parity | int |  |
-| addrbits | int |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='88-getNTPCfg_V20'></a>
-
-## 88. getNTPCfg_V20 — 查询NTP参数
-
-- **URL**:`POST /api/zc/device/getNTPCfg_V20`
-- **C 接口**:`ZC_GetNTPCfg_V20`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_NTP_V20_S 结构体字段 JSON
-
----
-
-<a id='89-setNTPCfg_V20'></a>
-
-## 89. setNTPCfg_V20 — 设置NTP参数
-
-- **URL**:`POST /api/zc/device/setNTPCfg_V20`
-- **C 接口**:`ZC_SetNTPCfg_V20`
-
-### 请求体(NTPCfg_V20Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_NTP_V20_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_NTP_V20_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| enable | int |  |
-| server | byte[] |  |
-| port | int |  |
-| period | int |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='90-getPTZCfg_V20'></a>
-
-## 90. getPTZCfg_V20 — 查询PTZ参数
-
-- **URL**:`POST /api/zc/device/getPTZCfg_V20`
-- **C 接口**:`ZC_GetPTZCfg_V20`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_PTZ_V20_S 结构体字段 JSON
-
----
-
-<a id='91-setPTZCfg_V20'></a>
-
-## 91. setPTZCfg_V20 — 设置PTZ参数
-
-- **URL**:`POST /api/zc/device/setPTZCfg_V20`
-- **C 接口**:`ZC_SetPTZCfg_V20`
-
-### 请求体(PTZCfg_V20Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_PTZ_V20_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_PTZ_V20_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| type | int |  |
-| p2pMaxTimeInterval | int |  |
-| watchDuration | int |  |
-| runMode | int |  |
-| cruiseLine | int |  |
-| horFov | double |  |
-| verFov | double |  |
-| northDeclination | double |  |
-| horStartAngle | double |  |
-| horEndAngle | double |  |
-| verStartAngle | double |  |
-| verEndAngle | double |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='92-getSmartCaps'></a>
-
-## 92. getSmartCaps — 查询智能分析能力集
-
-- **URL**:`POST /api/zc/device/getSmartCaps`
-- **C 接口**:`ZC_GetSmartCaps`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_SMART_CAPS_S 结构体字段 JSON
-
----
-
-<a id='93-getTempDetectPoint_V20'></a>
-
-## 93. getTempDetectPoint_V20 — 对应 C 接口 {@code ZC_GetTempDetectPoint_V20}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/getTempDetectPoint_V20`
-- **C 接口**:`ZC_GetTempDetectPoint_V20`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_TEMP_DETECT_POINT_V20_S 结构体字段 JSON
-
----
-
-<a id='94-setTempDetectPoint_V20'></a>
-
-## 94. setTempDetectPoint_V20 — 对应 C 接口 {@code ZC_SetTempDetectPoint_V20}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/setTempDetectPoint_V20`
-- **C 接口**:`ZC_SetTempDetectPoint_V20`
-
-### 请求体(TempDetectPoint_V20Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_TEMP_DETECT_POINT_V20_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_TEMP_DETECT_POINT_V20_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| enable | int |  |
-| preset | int |  |
-| index | int |  |
-| name | byte[] |  |
-| displayName | int |  |
-| alarmHighTemp | double |  |
-| radiation | double |  |
-| x | int |  |
-| y | int |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='95-getTempDetectLine_V20'></a>
-
-## 95. getTempDetectLine_V20 — 对应 C 接口 {@code ZC_GetTempDetectLine_V20}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/getTempDetectLine_V20`
-- **C 接口**:`ZC_GetTempDetectLine_V20`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_TEMP_DETECT_LINE_V20_S 结构体字段 JSON
-
----
-
-<a id='96-setTempDetectLine_V20'></a>
-
-## 96. setTempDetectLine_V20 — 对应 C 接口 {@code ZC_SetTempDetectLine_V20}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/setTempDetectLine_V20`
-- **C 接口**:`ZC_SetTempDetectLine_V20`
-
-### 请求体(TempDetectLine_V20Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_TEMP_DETECT_LINE_V20_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_TEMP_DETECT_LINE_V20_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| enable | int |  |
-| preset | int |  |
-| index | int |  |
-| name | byte[] |  |
-| displayName | int |  |
-| alarmHighTemp | double |  |
-| radiation | double |  |
-| x1 | int |  |
-| y1 | int |  |
-| x2 | int |  |
-| y2 | int |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='97-getTempDetectEllipse'></a>
-
-## 97. getTempDetectEllipse — 对应 C 接口 {@code ZC_GetTempDetectEllipse}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/getTempDetectEllipse`
-- **C 接口**:`ZC_GetTempDetectEllipse`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_TEMP_DETECT_ELLIPSE_S 结构体字段 JSON
-
----
-
-<a id='98-setTempDetectEllipse'></a>
-
-## 98. setTempDetectEllipse — 对应 C 接口 {@code ZC_SetTempDetectEllipse}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/setTempDetectEllipse`
-- **C 接口**:`ZC_SetTempDetectEllipse`
-
-### 请求体(TempDetectEllipseReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_TEMP_DETECT_ELLIPSE_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_TEMP_DETECT_ELLIPSE_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| enable | int |  |
-| preset | int |  |
-| index | int |  |
-| name | byte[] |  |
-| displayName | int |  |
-| alarmHighTemp | double |  |
-| radiation | double |  |
-| x | int |  |
-| y | int |  |
-| a | int |  |
-| b | int |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='99-getTempDetectRect_V20'></a>
-
-## 99. getTempDetectRect_V20 — 查询区域测温矩形参数
-
-- **URL**:`POST /api/zc/device/getTempDetectRect_V20`
-- **C 接口**:`ZC_GetTempDetectRect_V20`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_TEMP_DETECT_RECT_V20_S 结构体字段 JSON
-
----
-
-<a id='100-setTempDetectRect_V20'></a>
-
-## 100. setTempDetectRect_V20 — 设置区域测温矩形参数
-
-- **URL**:`POST /api/zc/device/setTempDetectRect_V20`
-- **C 接口**:`ZC_SetTempDetectRect_V20`
-
-### 请求体(TempDetectRect_V20Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_TEMP_DETECT_RECT_V20_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_TEMP_DETECT_RECT_V20_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| enable | int |  |
-| preset | int |  |
-| index | int |  |
-| name | byte[] |  |
-| displayName | int |  |
-| alarmHighTemp | double |  |
-| radiation | double |  |
-| x1 | int |  |
-| y1 | int |  |
-| x2 | int |  |
-| y2 | int |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='101-getTempDetectPoly_V20'></a>
-
-## 101. getTempDetectPoly_V20 — 查询区域测温多边形参数
-
-- **URL**:`POST /api/zc/device/getTempDetectPoly_V20`
-- **C 接口**:`ZC_GetTempDetectPoly_V20`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_TEMP_DETECT_POLY_V20_S 结构体字段 JSON
-
----
-
-<a id='102-setTempDetectPoly_V20'></a>
-
-## 102. setTempDetectPoly_V20 — 设置区域测温多边形参数
-
-- **URL**:`POST /api/zc/device/setTempDetectPoly_V20`
-- **C 接口**:`ZC_SetTempDetectPoly_V20`
-
-### 请求体(TempDetectPoly_V20Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_TEMP_DETECT_POLY_V20_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_TEMP_DETECT_POLY_V20_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| enable | int |  |
-| preset | int |  |
-| index | int |  |
-| name | byte[] |  |
-| displayName | int |  |
-| alarmHighTemp | double |  |
-| radiation | double |  |
-| points | ZC_POINT_V20_S[] |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='103-getStaticShieldRect_V20'></a>
-
-## 103. getStaticShieldRect_V20 — 查询静态屏蔽矩形参数
-
-- **URL**:`POST /api/zc/device/getStaticShieldRect_V20`
-- **C 接口**:`ZC_GetStaticShieldRect_V20`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_STATIC_SHIELD_RECT_V20_S 结构体字段 JSON
-
----
-
-<a id='104-setStaticShieldRect_V20'></a>
-
-## 104. setStaticShieldRect_V20 — 设置静态屏蔽矩形参数
-
-- **URL**:`POST /api/zc/device/setStaticShieldRect_V20`
-- **C 接口**:`ZC_SetStaticShieldRect_V20`
-
-### 请求体(StaticShieldRect_V20Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_STATIC_SHIELD_RECT_V20_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_STATIC_SHIELD_RECT_V20_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| enable | int |  |
-| preset | int |  |
-| index | int |  |
-| x1 | int |  |
-| y1 | int |  |
-| x2 | int |  |
-| y2 | int |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='105-getStaticShieldPoly_V20'></a>
-
-## 105. getStaticShieldPoly_V20 — 查询静态屏蔽多边形参数
-
-- **URL**:`POST /api/zc/device/getStaticShieldPoly_V20`
-- **C 接口**:`ZC_GetStaticShieldPoly_V20`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_STATIC_SHIELD_POLY_V20_S 结构体字段 JSON
-
----
-
-<a id='106-setStaticShieldPoly_V20'></a>
-
-## 106. setStaticShieldPoly_V20 — 设置静态屏蔽多边形参数
-
-- **URL**:`POST /api/zc/device/setStaticShieldPoly_V20`
-- **C 接口**:`ZC_SetStaticShieldPoly_V20`
-
-### 请求体(StaticShieldPoly_V20Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_STATIC_SHIELD_POLY_V20_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_STATIC_SHIELD_POLY_V20_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| enable | int |  |
-| preset | int |  |
-| index | int |  |
-| points | ZC_POINT_V20_S[] |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='107-getStaticAnalRect_V20'></a>
-
-## 107. getStaticAnalRect_V20 — 查询定区分析矩形参数
-
-- **URL**:`POST /api/zc/device/getStaticAnalRect_V20`
-- **C 接口**:`ZC_GetStaticAnalRect_V20`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_STATIC_ANAL_RECT_V20_S 结构体字段 JSON
-
----
-
-<a id='108-setStaticAnalRect_V20'></a>
-
-## 108. setStaticAnalRect_V20 — 设置定区分析矩形参数
-
-- **URL**:`POST /api/zc/device/setStaticAnalRect_V20`
-- **C 接口**:`ZC_SetStaticAnalRect_V20`
-
-### 请求体(StaticAnalRect_V20Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_STATIC_ANAL_RECT_V20_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_STATIC_ANAL_RECT_V20_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| enable | int |  |
-| preset | int |  |
-| index | int |  |
-| x1 | int |  |
-| y1 | int |  |
-| x2 | int |  |
-| y2 | int |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='109-getStaticAnalPoly_V20'></a>
-
-## 109. getStaticAnalPoly_V20 — 查询定区分析多边形参数
-
-- **URL**:`POST /api/zc/device/getStaticAnalPoly_V20`
-- **C 接口**:`ZC_GetStaticAnalPoly_V20`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_STATIC_ANAL_POLY_V20_S 结构体字段 JSON
-
----
-
-<a id='110-setStaticAnalPoly_V20'></a>
-
-## 110. setStaticAnalPoly_V20 — 设置定区分析多边形参数
-
-- **URL**:`POST /api/zc/device/setStaticAnalPoly_V20`
-- **C 接口**:`ZC_SetStaticAnalPoly_V20`
-
-### 请求体(StaticAnalPoly_V20Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_STATIC_ANAL_POLY_V20_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_STATIC_ANAL_POLY_V20_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| enable | int |  |
-| preset | int |  |
-| index | int |  |
-| points | ZC_POINT_V20_S[] |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='111-getDynaShieldRect_V20'></a>
-
-## 111. getDynaShieldRect_V20 — 查询动态屏蔽矩形参数
-
-- **URL**:`POST /api/zc/device/getDynaShieldRect_V20`
-- **C 接口**:`ZC_GetDynaShieldRect_V20`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_DYNA_SHIELD_RECT_V20_S 结构体字段 JSON
-
----
-
-<a id='112-setDynaShieldRect_V20'></a>
-
-## 112. setDynaShieldRect_V20 — 设置动态屏蔽矩形参数
-
-- **URL**:`POST /api/zc/device/setDynaShieldRect_V20`
-- **C 接口**:`ZC_SetDynaShieldRect_V20`
-
-### 请求体(DynaShieldRect_V20Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_DYNA_SHIELD_RECT_V20_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_DYNA_SHIELD_RECT_V20_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| enable | int |  |
-| preset | int |  |
-| index | int |  |
-| x1 | int |  |
-| y1 | int |  |
-| x2 | int |  |
-| y2 | int |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='113-getDynaShieldPoly_V20'></a>
-
-## 113. getDynaShieldPoly_V20 — 查询动态屏蔽多边形参数
-
-- **URL**:`POST /api/zc/device/getDynaShieldPoly_V20`
-- **C 接口**:`ZC_GetDynaShieldPoly_V20`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_DYNA_SHIELD_POLY_V20_S 结构体字段 JSON
-
----
-
-<a id='114-setDynaShieldPoly_V20'></a>
-
-## 114. setDynaShieldPoly_V20 — 设置动态屏蔽多边形参数
-
-- **URL**:`POST /api/zc/device/setDynaShieldPoly_V20`
-- **C 接口**:`ZC_SetDynaShieldPoly_V20`
-
-### 请求体(DynaShieldPoly_V20Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_DYNA_SHIELD_POLY_V20_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_DYNA_SHIELD_POLY_V20_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| enable | int |  |
-| preset | int |  |
-| index | int |  |
-| points | ZC_POINT_V20_S[] |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='115-getBreakinLine_V20'></a>
-
-## 115. getBreakinLine_V20 — 查询周界入侵线参数
-
-- **URL**:`POST /api/zc/device/getBreakinLine_V20`
-- **C 接口**:`ZC_GetBreakinLine_V20`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_BREAKIN_LINE_V20_S 结构体字段 JSON
-
----
-
-<a id='116-setBreakinLine_V20'></a>
-
-## 116. setBreakinLine_V20 — 设置周界入侵线参数
-
-- **URL**:`POST /api/zc/device/setBreakinLine_V20`
-- **C 接口**:`ZC_SetBreakinLine_V20`
-
-### 请求体(BreakinLine_V20Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_BREAKIN_LINE_V20_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_BREAKIN_LINE_V20_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| enable | int |  |
-| preset | int |  |
-| index | int |  |
-| x1 | int |  |
-| y1 | int |  |
-| x2 | int |  |
-| y2 | int |  |
-| ioLow | int |  |
-| ioHigh | int |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='117-getBreakinRect_V20'></a>
-
-## 117. getBreakinRect_V20 — 查询周界入侵矩形参数
-
-- **URL**:`POST /api/zc/device/getBreakinRect_V20`
-- **C 接口**:`ZC_GetBreakinRect_V20`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_BREAKIN_RECT_V20_S 结构体字段 JSON
-
----
-
-<a id='118-setBreakinRect_V20'></a>
-
-## 118. setBreakinRect_V20 — 设置周界入侵矩形参数
-
-- **URL**:`POST /api/zc/device/setBreakinRect_V20`
-- **C 接口**:`ZC_SetBreakinRect_V20`
-
-### 请求体(BreakinRect_V20Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_BREAKIN_RECT_V20_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_BREAKIN_RECT_V20_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| enable | int |  |
-| preset | int |  |
-| index | int |  |
-| x1 | int |  |
-| y1 | int |  |
-| x2 | int |  |
-| y2 | int |  |
-| ioLow | int |  |
-| ioHigh | int |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='119-getBreakinPolygon_V20'></a>
-
-## 119. getBreakinPolygon_V20 — 查询周界入侵多边形参数
-
-- **URL**:`POST /api/zc/device/getBreakinPolygon_V20`
-- **C 接口**:`ZC_GetBreakinPolygon_V20`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_BREAKIN_POLYGON_V20_S 结构体字段 JSON
-
----
-
-<a id='120-setBreakinPolygon_V20'></a>
-
-## 120. setBreakinPolygon_V20 — 设置周界入侵多边形参数
-
-- **URL**:`POST /api/zc/device/setBreakinPolygon_V20`
-- **C 接口**:`ZC_SetBreakinPolygon_V20`
-
-### 请求体(BreakinPolygon_V20Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_BREAKIN_POLYGON_V20_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_BREAKIN_POLYGON_V20_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| enable | int |  |
-| preset | int |  |
-| index | int |  |
-| ioLow | int |  |
-| ioHigh | int |  |
-| points | ZC_POINT_V20_S[] |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='121-getBreakinPolyline_V20'></a>
-
-## 121. getBreakinPolyline_V20 — 查询周界入侵折线参数
-
-- **URL**:`POST /api/zc/device/getBreakinPolyline_V20`
-- **C 接口**:`ZC_GetBreakinPolyline_V20`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_BREAKIN_POLYLINE_V20_S 结构体字段 JSON
-
----
-
-<a id='122-setBreakinPolyline_V20'></a>
-
-## 122. setBreakinPolyline_V20 — 设置周界入侵折线参数
-
-- **URL**:`POST /api/zc/device/setBreakinPolyline_V20`
-- **C 接口**:`ZC_SetBreakinPolyline_V20`
-
-### 请求体(BreakinPolyline_V20Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_BREAKIN_POLYLINE_V20_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_BREAKIN_POLYLINE_V20_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| enable | int |  |
-| preset | int |  |
-| index | int |  |
-| ioLow | int |  |
-| ioHigh | int |  |
-| points | ZC_POINT_V20_S[] |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='123-setPesudoColor'></a>
-
-## 123. setPesudoColor — 设置伪彩(仅热成像有效)
-
-- **URL**:`POST /api/zc/device/setPesudoColor`
-- **C 接口**:`ZC_SetPesudoColor`
-
-### 请求体(IntReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | color |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='124-getConfig'></a>
-
-## 124. getConfig — 获取参数
-
-- **URL**:`POST /api/zc/device/getConfig`
-- **C 接口**:`ZC_GetConfig`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_CMD_GET_CONFIG_S 结构体字段 JSON
-
----
-
-<a id='125-setConfig'></a>
-
-## 125. setConfig — 设置参数
-
-- **URL**:`POST /api/zc/device/setConfig`
-- **C 接口**:`ZC_SetConfig`
-
-### 请求体(ConfigReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_CMD_SET_CONFIG_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_CMD_SET_CONFIG_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| dwCommand | int |  |
-| dwChannel | int |  |
-| dwInBufferSize | int |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='126-getSysCfg'></a>
-
-## 126. getSysCfg — 获取系统参数
-
-- **URL**:`POST /api/zc/device/getSysCfg`
-- **C 接口**:`ZC_GetSysCfg`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_SYSTEM_CFG_S 结构体字段 JSON
-
----
-
-<a id='127-setSysCfg'></a>
-
-## 127. setSysCfg — 设置系统参数
-
-- **URL**:`POST /api/zc/device/setSysCfg`
-- **C 接口**:`ZC_SetSysCfg`
-
-### 请求体(SysCfgReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_SYSTEM_CFG_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_SYSTEM_CFG_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| ip | byte[] | ip地址 |
-| subnetMask | byte[] | 子网掩码 |
-| gateway | byte[] | 网关 |
-| srvCenterIp | byte[] | 中心服务器IP |
-| srvCenterPort | int | 中心服务器IP |
-| cmdPort | int | 中心服务器端口 |
-| alarmPort | int | 默认8000 |
-| deviceId | int | 设备编号 |
-| deviceName | byte[] | 设备名称 |
-| longitude | float | 经度 |
-| latitude | float | 纬度 |
-| runMode | int | 运行模式 1/0 |
-| cruiseLine | int | 巡航线 |
-| stayDuration | int | 巡航点停留的分析时长 |
-| ptzSemiCircleDuration | int | 云台半圈耗时 |
-| findFire | int | 热源开关 1/0 |
-| fireMeasureTemp | int | 热源测温 1/0 |
-| fireRadius | int | 热源半径 |
-| fireMinThreshold | int | 热源最小阀值 |
-| fireMaxThreshold | int | 热源最大阀值 |
-| fireMinArea | int | 热源最小面积 |
-| fireMaxArea | int | 热源最大面积 |
-| fireTrace | int | 热源跟踪开关 1/0 |
-| camZoomCapture | int | 联动摄像机推倍抓拍 |
-| shakeRadius | int | 抖动半径(判断动态屏蔽区域内报警源抖动的半径范围) |
-| stillDuration | int | 静止时长(判断动态屏蔽区域内报警源静止的时间长度) |
-| findMove | int | 闯入开关 1/0 |
-| findDxm | int | 低小慢开关 1/0 |
-| dxmLength | int | 低小慢尾长 |
-| dxmRadius | int | 低小慢半径 |
-| radiation | float | 辐射值 |
-| emissivity | float | 发射率 |
-| environmentTemp | float | 环温 |
-| showMaxTemp | int | 显示最高温 |
-| showMinTemp | int | 显示最低温 |
-| showAvgTemp | int | 显示平均温 |
-| showRunMode | int | 显示运行模式 |
-| showRunStatus | int | 显示运行状态 |
-| xStartPix | int | x起始位置 |
-| xEndPix | int | x结束位置 |
-| yStartPix | int | y起始位置 |
-| yEndPix | int | y结束位置 |
-| horStartAngle | float | 水平起始角度 |
-| horEndAngle | float | 水平结束角度 |
-| verStartAngle | float | 垂直起始角度 |
-| verEndAngle | float | 垂直结束角度 |
-| horFov | float | 水平视场角 | 
-| verFov | float | 垂直视场角 |
-| horPixs | int | 水平像素 |
-| verPixs | int | 垂直像素 |
-| grayOffset | int | 原始数据偏移量 |
-| majorStreamReso | int | 主码分辨率 0-640x480;1-1280x720;2-1920x1080;3-2592x1944; |
-| minorStreamReso | int | 子码分辨率 |
-| streamColor | int | streamColor |
-| globalMaxTempThreshold | float |  |
-| globalMinTempThreshold | float |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='128-setRunModeCfg'></a>
-
-## 128. setRunModeCfg — 切换模式
-
-- **URL**:`POST /api/zc/device/setRunModeCfg`
-- **C 接口**:`ZC_SetRunModeCfg`
-
-### 请求体(IntReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | RunMode |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='129-setEnvironmentTemperature'></a>
-
-## 129. setEnvironmentTemperature — 设置环境温度值
-
-- **URL**:`POST /api/zc/device/setEnvironmentTemperature`
-- **C 接口**:`ZC_SetEnvironmentTemperature`
-
-### 请求体(FloatReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| f1 | Float | 否 |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='130-pTZControlEx'></a>
-
-## 130. pTZControlEx — 对应 C 接口 {@code ZC_PTZControlEx}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/pTZControlEx`
-- **C 接口**:`ZC_PTZControlEx`
-
-### 请求体(Int3Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | ptzCtrl |
-| i2 | Integer | 否 | control |
-| i3 | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='131-getAllPreset'></a>
-
-## 131. getAllPreset — 查询所有预置位的状态
-
-- **URL**:`POST /api/zc/device/getAllPreset`
-- **C 接口**:`ZC_GetAllPreset`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_ALL_PRESET_S 结构体字段 JSON
-
----
-
-<a id='132-setPtzPreset'></a>
-
-## 132. setPtzPreset — 设置云台预置位
-
-- **URL**:`POST /api/zc/device/setPtzPreset`
-- **C 接口**:`ZC_SetPtzPreset`
-
-### 请求体(IntReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | preset |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='133-gotoPtzPreset'></a>
-
-## 133. gotoPtzPreset — 调用云台预置位
-
-- **URL**:`POST /api/zc/device/gotoPtzPreset`
-- **C 接口**:`ZC_GotoPtzPreset`
-
-### 请求体(IntReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | preset |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='134-delPtzPreset'></a>
-
-## 134. delPtzPreset — 删除云台预置位
-
-- **URL**:`POST /api/zc/device/delPtzPreset`
-- **C 接口**:`ZC_DelPtzPreset`
-
-### 请求体(IntReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | preset |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='135-getPresetInfo'></a>
-
-## 135. getPresetInfo — 获取预置位信息
-
-- **URL**:`POST /api/zc/device/getPresetInfo`
-- **C 接口**:`ZC_GetPresetInfo`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_PRESET_INFO_S 结构体字段 JSON
-
----
-
-<a id='136-setPresetInfo'></a>
-
-## 136. setPresetInfo — 设置预置位信息
-
-- **URL**:`POST /api/zc/device/setPresetInfo`
-- **C 接口**:`ZC_SetPresetInfo`
-
-### 请求体(PresetInfoReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_PRESET_INFO_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_PRESET_INFO_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| no | int |  |
-| name | byte[] |  |
-| time | int |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='137-getPtzCruiseCfg'></a>
-
-## 137. getPtzCruiseCfg — 查询巡航线
-
-- **URL**:`POST /api/zc/device/getPtzCruiseCfg`
-- **C 接口**:`ZC_GetPtzCruiseCfg`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_CRUISE_CFG_S 结构体字段 JSON
-
----
-
-<a id='138-setPtzCruise'></a>
-
-## 138. setPtzCruise — 设置巡航线
-
-- **URL**:`POST /api/zc/device/setPtzCruise`
-- **C 接口**:`ZC_SetPtzCruise`
-
-### 请求体(PtzCruiseReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_CRUISE_CFG_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_CRUISE_CFG_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| cruiseNo | int |  |
-| preset | byte[] |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='139-gotoPtzCruise'></a>
-
-## 139. gotoPtzCruise — 调用巡航线
-
-- **URL**:`POST /api/zc/device/gotoPtzCruise`
-- **C 接口**:`ZC_GotoPtzCruise`
-
-### 请求体(IntReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | CruiseLineNo |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='140-clrPtzCruise'></a>
-
-## 140. clrPtzCruise — 清除巡航线
-
-- **URL**:`POST /api/zc/device/clrPtzCruise`
-- **C 接口**:`ZC_ClrPtzCruise`
-
-### 请求体(IntReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | CruiseLineNo |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='141-showClickTemp'></a>
-
-## 141. showClickTemp — 显示point位置的温度
-
-- **URL**:`POST /api/zc/device/showClickTemp`
-- **C 接口**:`ZC_ShowClickTemp`
-
-### 请求体(wClickTempReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_POINT_S | 是 | 结构体对象(字段见下表) |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='142-hideClickTemp'></a>
-
-## 142. hideClickTemp — 隐藏point位置的温度
-
-- **URL**:`POST /api/zc/device/hideClickTemp`
-- **C 接口**:`ZC_HideClickTemp`
-
-### 请求体(IpReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='143-captureLastAlarm'></a>
-
-## 143. captureLastAlarm — 获取最后一张报警图
-
-- **URL**:`POST /api/zc/device/captureLastAlarm`
-- **C 接口**:`ZC_CaptureLastAlarm`
-
-### 请求体(StrReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| s1 | String | 否 |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='144-captureHDFrameNoOsd'></a>
-
-## 144. captureHDFrameNoOsd — 获取一帧无叠加的高清图像数据
-
-- **URL**:`POST /api/zc/device/captureHDFrameNoOsd`
-- **C 接口**:`ZC_CaptureHDFrameNoOsd`
-
-### 请求体(tureHDFrameNoOsdReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_FRAME_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_FRAME_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| width | int |  |
-| height | int |  |
-| length | int |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='145-uploadVoiceFile'></a>
-
-## 145. uploadVoiceFile — 上传语音文件
-
-- **URL**:`POST /api/zc/device/uploadVoiceFile`
-- **C 接口**:`ZC_UploadVoiceFile`
-
-### 请求体(oadVoiceFileReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_VOICE_INFO_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_VOICE_INFO_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| byType | byte |  |
-| bySampleRate | byte |  |
-| byChannels | byte |  |
-| byBitsPerSample | byte |  |
-| byTime | float |  |
-| byLen | int |  |
-| filepath | byte[] |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='146-getHttpDestInfo'></a>
-
-## 146. getHttpDestInfo — 获取HTTP报警接收目的地址信息
-
-- **URL**:`POST /api/zc/device/getHttpDestInfo`
-- **C 接口**:`ZC_GetHttpDestInfo`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_HTTP_DEST_INFO_S 结构体字段 JSON
-
----
-
-<a id='147-setHttpDestInfo'></a>
-
-## 147. setHttpDestInfo — 设置HTTP报警接收目的地址信息
-
-- **URL**:`POST /api/zc/device/setHttpDestInfo`
-- **C 接口**:`ZC_SetHttpDestInfo`
-
-### 请求体(HttpDestInfoReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_HTTP_DEST_INFO_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_HTTP_DEST_INFO_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| openHttpPushAlarm | int |  |
-| foreverToken | int |  |
-| appid | byte[] |  |
-| appkey | byte[] |  |
-| httpDestPath | byte[] |  |
-| httpUserData | byte[] |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='148-getIRData'></a>
-
-## 148. getIRData — 获取红外数据
-
-- **URL**:`POST /api/zc/device/getIRData`
-- **C 接口**:`ZC_GetIRData`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_FRAME_S 结构体字段 JSON
-
----
-
-<a id='149-getIRBadPixFrm'></a>
-
-## 149. getIRBadPixFrm — 获取红外坏点数据帧
-
-- **URL**:`POST /api/zc/device/getIRBadPixFrm`
-- **C 接口**:`ZC_GetIRBadPixFrm`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_FRAME_S 结构体字段 JSON
-
----
-
-<a id='150-setIRBadPixFrm'></a>
-
-## 150. setIRBadPixFrm — 修复红外坏点数据帧
-
-- **URL**:`POST /api/zc/device/setIRBadPixFrm`
-- **C 接口**:`ZC_SetIRBadPixFrm`
-
-### 请求体(IRBadPixFrmReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_FRAME_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_FRAME_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| width | int |  |
-| height | int |  |
-| length | int |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='151-getMappingTemInfo'></a>
-
-## 151. getMappingTemInfo — 对应 C 接口 {@code ZC_GetMappingTemInfo}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/getMappingTemInfo`
-- **C 接口**:`ZC_GetMappingTemInfo`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_MAPPING_TEM_INFO_S 结构体字段 JSON
-
----
-
-<a id='152-setMappingTemInfo'></a>
-
-## 152. setMappingTemInfo — 对应 C 接口 {@code ZC_SetMappingTemInfo}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/setMappingTemInfo`
-- **C 接口**:`ZC_SetMappingTemInfo`
-
-### 请求体(MappingTemInfoReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_MAPPING_TEM_INFO_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_MAPPING_TEM_INFO_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| mappingLevel | ZC_MAPPING_TEM_LEVEL_S[] |  |
-| sampleStudyTem | float |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='153-setInvalidRect'></a>
-
-## 153. setInvalidRect — 设置灼伤区
-
-- **URL**:`POST /api/zc/device/setInvalidRect`
-- **C 接口**:`ZC_SetInvalidRect`
-
-### 请求体(InvalidRectReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 |  |
-| data | ZC_RECT_S | 是 | 结构体对象(字段见下表) |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='154-clrInvalidRect'></a>
-
-## 154. clrInvalidRect — 清除灼伤区
-
-- **URL**:`POST /api/zc/device/clrInvalidRect`
-- **C 接口**:`ZC_ClrInvalidRect`
-
-### 请求体(IntReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='155-getPresetStaticAnalysisRect'></a>
-
-## 155. getPresetStaticAnalysisRect — 定区-矩形
-
-- **URL**:`POST /api/zc/device/getPresetStaticAnalysisRect`
-- **C 接口**:`ZC_GetPresetStaticAnalysisRect`
-
-### 请求体(BinaryInt2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-| i1 | Integer | 否 | preset |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;data 为 ZC_RECT_S 结构体字段 JSON
-
----
-
-<a id='156-setPresetStaticAnalysisRect'></a>
-
-## 156. setPresetStaticAnalysisRect — 对应 C 接口 {@code ZC_SetPresetStaticAnalysisRect}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/setPresetStaticAnalysisRect`
-- **C 接口**:`ZC_SetPresetStaticAnalysisRect`
-
-### 请求体(PresetStaticAnalysisRectReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 |  |
-| i2 | Integer | 否 |  |
-| data | ZC_RECT_S | 是 | 结构体对象(字段见下表) |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='157-clrPresetStaticAnalysisRect'></a>
-
-## 157. clrPresetStaticAnalysisRect — 对应 C 接口 {@code ZC_ClrPresetStaticAnalysisRect}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/clrPresetStaticAnalysisRect`
-- **C 接口**:`ZC_ClrPresetStaticAnalysisRect`
-
-### 请求体(Int2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | preset |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='158-getPresetStaticAnalysisPoly'></a>
-
-## 158. getPresetStaticAnalysisPoly — 定区-多边形
-
-- **URL**:`POST /api/zc/device/getPresetStaticAnalysisPoly`
-- **C 接口**:`ZC_GetPresetStaticAnalysisPoly`
-
-### 请求体(BinaryInt2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-| i1 | Integer | 否 | preset |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;data 为 ZC_POLY_S 结构体字段 JSON
-
----
-
-<a id='159-setPresetStaticAnalysisPoly'></a>
-
-## 159. setPresetStaticAnalysisPoly — 对应 C 接口 {@code ZC_SetPresetStaticAnalysisPoly}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/setPresetStaticAnalysisPoly`
-- **C 接口**:`ZC_SetPresetStaticAnalysisPoly`
-
-### 请求体(PresetStaticAnalysisPolyReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 |  |
-| i2 | Integer | 否 |  |
-| data | ZC_POLY_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_POLY_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| p | ZC_POINT_S[] |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='160-clrPresetStaticAnalysisPoly'></a>
-
-## 160. clrPresetStaticAnalysisPoly — 对应 C 接口 {@code ZC_ClrPresetStaticAnalysisPoly}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/clrPresetStaticAnalysisPoly`
-- **C 接口**:`ZC_ClrPresetStaticAnalysisPoly`
-
-### 请求体(Int2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | preset |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='161-getPresetDynamicShieldRect'></a>
-
-## 161. getPresetDynamicShieldRect — 动屏-矩形
-
-- **URL**:`POST /api/zc/device/getPresetDynamicShieldRect`
-- **C 接口**:`ZC_GetPresetDynamicShieldRect`
-
-### 请求体(BinaryInt2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-| i1 | Integer | 否 | preset |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;data 为 ZC_RECT_S 结构体字段 JSON
-
----
-
-<a id='162-setPresetDynamicShieldRect'></a>
-
-## 162. setPresetDynamicShieldRect — 对应 C 接口 {@code ZC_SetPresetDynamicShieldRect}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/setPresetDynamicShieldRect`
-- **C 接口**:`ZC_SetPresetDynamicShieldRect`
-
-### 请求体(PresetDynamicShieldRectReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 |  |
-| i2 | Integer | 否 |  |
-| data | ZC_RECT_S | 是 | 结构体对象(字段见下表) |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='163-clrPresetDynamicShieldRect'></a>
-
-## 163. clrPresetDynamicShieldRect — 对应 C 接口 {@code ZC_ClrPresetDynamicShieldRect}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/clrPresetDynamicShieldRect`
-- **C 接口**:`ZC_ClrPresetDynamicShieldRect`
-
-### 请求体(Int2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | preset |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='164-getPresetDynamicShieldPoly'></a>
-
-## 164. getPresetDynamicShieldPoly — 动屏-多边形
-
-- **URL**:`POST /api/zc/device/getPresetDynamicShieldPoly`
-- **C 接口**:`ZC_GetPresetDynamicShieldPoly`
-
-### 请求体(BinaryInt2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-| i1 | Integer | 否 | preset |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;data 为 ZC_POLY_S 结构体字段 JSON
-
----
-
-<a id='165-setPresetDynamicShieldPoly'></a>
-
-## 165. setPresetDynamicShieldPoly — 对应 C 接口 {@code ZC_SetPresetDynamicShieldPoly}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/setPresetDynamicShieldPoly`
-- **C 接口**:`ZC_SetPresetDynamicShieldPoly`
-
-### 请求体(PresetDynamicShieldPolyReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 |  |
-| i2 | Integer | 否 |  |
-| data | ZC_POLY_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_POLY_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| p | ZC_POINT_S[] |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='166-clrPresetDynamicShieldPoly'></a>
-
-## 166. clrPresetDynamicShieldPoly — 对应 C 接口 {@code ZC_ClrPresetDynamicShieldPoly}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/clrPresetDynamicShieldPoly`
-- **C 接口**:`ZC_ClrPresetDynamicShieldPoly`
-
-### 请求体(Int2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | preset |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='167-getPresetMoveLine'></a>
-
-## 167. getPresetMoveLine — 闯入-线
-
-- **URL**:`POST /api/zc/device/getPresetMoveLine`
-- **C 接口**:`ZC_GetPresetMoveLine`
-
-### 请求体(BinaryInt2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-| i1 | Integer | 否 | preset |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;data 为 ZC_MOVE_LINE_S 结构体字段 JSON
-
----
-
-<a id='168-setPresetMoveLine'></a>
-
-## 168. setPresetMoveLine — 对应 C 接口 {@code ZC_SetPresetMoveLine}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/setPresetMoveLine`
-- **C 接口**:`ZC_SetPresetMoveLine`
-
-### 请求体(PresetMoveLineReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 |  |
-| i2 | Integer | 否 |  |
-| data | ZC_MOVE_LINE_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_MOVE_LINE_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| lowIO | int |  |
-| highIO | int |  |
-| line | ZC_LINE_S |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='169-clrPresetMoveLine'></a>
-
-## 169. clrPresetMoveLine — 对应 C 接口 {@code ZC_ClrPresetMoveLine}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/clrPresetMoveLine`
-- **C 接口**:`ZC_ClrPresetMoveLine`
-
-### 请求体(Int2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | preset |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='170-getPresetMoveRect'></a>
-
-## 170. getPresetMoveRect — 闯入-矩形
-
-- **URL**:`POST /api/zc/device/getPresetMoveRect`
-- **C 接口**:`ZC_GetPresetMoveRect`
-
-### 请求体(BinaryInt2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-| i1 | Integer | 否 | preset |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;data 为 ZC_MOVE_RECT_S 结构体字段 JSON
-
----
-
-<a id='171-setPresetMoveRect'></a>
-
-## 171. setPresetMoveRect — 对应 C 接口 {@code ZC_SetPresetMoveRect}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/setPresetMoveRect`
-- **C 接口**:`ZC_SetPresetMoveRect`
-
-### 请求体(PresetMoveRectReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 |  |
-| i2 | Integer | 否 |  |
-| data | ZC_MOVE_RECT_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_MOVE_RECT_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| lowIO | int |  |
-| highIO | int |  |
-| rect | ZC_RECT_S |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='172-clrPresetMoveRect'></a>
-
-## 172. clrPresetMoveRect — 对应 C 接口 {@code ZC_ClrPresetMoveRect}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/clrPresetMoveRect`
-- **C 接口**:`ZC_ClrPresetMoveRect`
-
-### 请求体(Int2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | preset |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='173-getPresetMovePoly'></a>
-
-## 173. getPresetMovePoly — 闯入-多边形
-
-- **URL**:`POST /api/zc/device/getPresetMovePoly`
-- **C 接口**:`ZC_GetPresetMovePoly`
-
-### 请求体(BinaryInt2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-| i1 | Integer | 否 | preset |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;data 为 ZC_MOVE_POLY_S 结构体字段 JSON
-
----
-
-<a id='174-setPresetMovePoly'></a>
-
-## 174. setPresetMovePoly — 对应 C 接口 {@code ZC_SetPresetMovePoly}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/setPresetMovePoly`
-- **C 接口**:`ZC_SetPresetMovePoly`
-
-### 请求体(PresetMovePolyReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 |  |
-| i2 | Integer | 否 |  |
-| data | ZC_MOVE_POLY_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_MOVE_POLY_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| lowIO | int |  |
-| highIO | int |  |
-| poly | ZC_POLY_S |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='175-clrPresetMovePoly'></a>
-
-## 175. clrPresetMovePoly — 对应 C 接口 {@code ZC_ClrPresetMovePoly}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/clrPresetMovePoly`
-- **C 接口**:`ZC_ClrPresetMovePoly`
-
-### 请求体(Int2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | preset |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='176-getPresetMoveBorder'></a>
-
-## 176. getPresetMoveBorder — 闯入-多边形边界
-
-- **URL**:`POST /api/zc/device/getPresetMoveBorder`
-- **C 接口**:`ZC_GetPresetMoveBorder`
-
-### 请求体(BinaryInt2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-| i1 | Integer | 否 | preset |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;data 为 ZC_MOVE_POLY_S 结构体字段 JSON
-
----
-
-<a id='177-setPresetMoveBorder'></a>
-
-## 177. setPresetMoveBorder — 对应 C 接口 {@code ZC_SetPresetMoveBorder}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/setPresetMoveBorder`
-- **C 接口**:`ZC_SetPresetMoveBorder`
-
-### 请求体(PresetMoveBorderReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 |  |
-| i2 | Integer | 否 |  |
-| data | ZC_MOVE_POLY_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_MOVE_POLY_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| lowIO | int |  |
-| highIO | int |  |
-| poly | ZC_POLY_S |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='178-clrPresetMoveBorder'></a>
-
-## 178. clrPresetMoveBorder — 对应 C 接口 {@code ZC_ClrPresetMoveBorder}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/clrPresetMoveBorder`
-- **C 接口**:`ZC_ClrPresetMoveBorder`
-
-### 请求体(Int2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | preset |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='179-getPresetTempPoint'></a>
-
-## 179. getPresetTempPoint — 测温点
-
-- **URL**:`POST /api/zc/device/getPresetTempPoint`
-- **C 接口**:`ZC_GetPresetTempPoint`
-
-### 请求体(BinaryInt2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-| i1 | Integer | 否 | preset |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;data 为 ZC_TEMP_POINT_S 结构体字段 JSON
-
----
-
-<a id='180-setPresetTempPoint'></a>
-
-## 180. setPresetTempPoint — 对应 C 接口 {@code ZC_SetPresetTempPoint}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/setPresetTempPoint`
-- **C 接口**:`ZC_SetPresetTempPoint`
-
-### 请求体(PresetTempPointReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 |  |
-| i2 | Integer | 否 |  |
-| data | ZC_TEMP_POINT_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_TEMP_POINT_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| radiation | float |  |
-| alarm_temp | float |  |
-| point | ZC_POINT_S |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='181-clrPresetTempPoint'></a>
-
-## 181. clrPresetTempPoint — 对应 C 接口 {@code ZC_ClrPresetTempPoint}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/clrPresetTempPoint`
-- **C 接口**:`ZC_ClrPresetTempPoint`
-
-### 请求体(Int2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | preset |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='182-getPresetPotTempLine'></a>
-
-## 182. getPresetPotTempLine — 测温线
-
-- **URL**:`POST /api/zc/device/getPresetPotTempLine`
-- **C 接口**:`ZC_GetPresetPotTempLine`
-
-### 请求体(BinaryInt2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-| i1 | Integer | 否 | preset |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;data 为 ZC_POT_TEMP_LINE_S 结构体字段 JSON
-
----
-
-<a id='183-setPresetPotTempLine'></a>
-
-## 183. setPresetPotTempLine — 对应 C 接口 {@code ZC_SetPresetPotTempLine}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/setPresetPotTempLine`
-- **C 接口**:`ZC_SetPresetPotTempLine`
-
-### 请求体(PresetPotTempLineReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 |  |
-| i2 | Integer | 否 |  |
-| data | ZC_POT_TEMP_LINE_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_POT_TEMP_LINE_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| radiation | float |  |
-| alarm_temp | float |  |
-| line | ZC_LINE_S |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='184-clrPresetPotTempLine'></a>
-
-## 184. clrPresetPotTempLine — 对应 C 接口 {@code ZC_ClrPresetPotTempLine}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/clrPresetPotTempLine`
-- **C 接口**:`ZC_ClrPresetPotTempLine`
-
-### 请求体(Int2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | preset |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='185-getPresetOilLevelRect'></a>
-
-## 185. getPresetOilLevelRect — 油位监测
-
-- **URL**:`POST /api/zc/device/getPresetOilLevelRect`
-- **C 接口**:`ZC_GetPresetOilLevelRect`
-
-### 请求体(BinaryInt2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-| i1 | Integer | 否 | preset |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;data 为 ZC_OIL_LEVEL_RECT_S 结构体字段 JSON
-
----
-
-<a id='186-setPresetOilLevelRect'></a>
-
-## 186. setPresetOilLevelRect — 对应 C 接口 {@code ZC_SetPresetOilLevelRect}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/setPresetOilLevelRect`
-- **C 接口**:`ZC_SetPresetOilLevelRect`
-
-### 请求体(PresetOilLevelRectReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 |  |
-| i2 | Integer | 否 |  |
-| data | ZC_OIL_LEVEL_RECT_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_OIL_LEVEL_RECT_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| rect | ZC_RECT_S |  |
-| safe_percent | float |  |
-| name | byte[] |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='187-clrPresetOilLevelRect'></a>
-
-## 187. clrPresetOilLevelRect — 对应 C 接口 {@code ZC_ClrPresetOilLevelRect}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/clrPresetOilLevelRect`
-- **C 接口**:`ZC_ClrPresetOilLevelRect`
-
-### 请求体(Int2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | preset |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='188-getPresetOilLevelPoly'></a>
-
-## 188. getPresetOilLevelPoly — 对应 C 接口 {@code ZC_GetPresetOilLevelPoly}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/getPresetOilLevelPoly`
-- **C 接口**:`ZC_GetPresetOilLevelPoly`
-
-### 请求体(BinaryInt2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-| i1 | Integer | 否 | preset |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;data 为 ZC_OIL_LEVEL_POLY_S 结构体字段 JSON
-
----
-
-<a id='189-setPresetOilLevelPoly'></a>
-
-## 189. setPresetOilLevelPoly — 对应 C 接口 {@code ZC_SetPresetOilLevelPoly}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/setPresetOilLevelPoly`
-- **C 接口**:`ZC_SetPresetOilLevelPoly`
-
-### 请求体(PresetOilLevelPolyReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 |  |
-| i2 | Integer | 否 |  |
-| data | ZC_OIL_LEVEL_POLY_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_OIL_LEVEL_POLY_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| poly | ZC_POLY_S |  |
-| safe_percent | float |  |
-| name | byte[] |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='190-clrPresetOilLevelPoly'></a>
-
-## 190. clrPresetOilLevelPoly — 对应 C 接口 {@code ZC_ClrPresetOilLevelPoly}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/clrPresetOilLevelPoly`
-- **C 接口**:`ZC_ClrPresetOilLevelPoly`
-
-### 请求体(Int2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | preset |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='191-getPresetBlackBodyRect'></a>
-
-## 191. getPresetBlackBodyRect — 黑体区域接口
-
-- **URL**:`POST /api/zc/device/getPresetBlackBodyRect`
-- **C 接口**:`ZC_GetPresetBlackBodyRect`
-
-### 请求体(BinaryInt2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-| i1 | Integer | 否 | preset |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;data 为 ZC_RECT_S 结构体字段 JSON
-
----
-
-<a id='192-setPresetBlackBodyRect'></a>
-
-## 192. setPresetBlackBodyRect — 对应 C 接口 {@code ZC_SetPresetBlackBodyRect}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/setPresetBlackBodyRect`
-- **C 接口**:`ZC_SetPresetBlackBodyRect`
-
-### 请求体(PresetBlackBodyRectReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 |  |
-| i2 | Integer | 否 |  |
-| data | ZC_RECT_S | 是 | 结构体对象(字段见下表) |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='193-getPresetTargetStayRect'></a>
-
-## 193. getPresetTargetStayRect — 目标逗留,此功能只在1号预置位下有效
-
-- **URL**:`POST /api/zc/device/getPresetTargetStayRect`
-- **C 接口**:`ZC_GetPresetTargetStayRect`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_TARGET_STAY_RECT_S 结构体字段 JSON
-
----
-
-<a id='194-setPresetTargetStayRect'></a>
-
-## 194. setPresetTargetStayRect — 对应 C 接口 {@code ZC_SetPresetTargetStayRect}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/setPresetTargetStayRect`
-- **C 接口**:`ZC_SetPresetTargetStayRect`
-
-### 请求体(PresetTargetStayRectReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_TARGET_STAY_RECT_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_TARGET_STAY_RECT_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| id | int |  |
-| stay_time | int |  |
-| min_io | int |  |
-| max_io | int |  |
-| rect | ZC_RECT_S |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='195-clrPresetTargetStayRect'></a>
-
-## 195. clrPresetTargetStayRect — 对应 C 接口 {@code ZC_ClrPresetTargetStayRect}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/clrPresetTargetStayRect`
-- **C 接口**:`ZC_ClrPresetTargetStayRect`
-
-### 请求体(IntReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='196-getAngleStaticAnalysisRect'></a>
-
-## 196. getAngleStaticAnalysisRect — 定区-矩形
-
-- **URL**:`POST /api/zc/device/getAngleStaticAnalysisRect`
-- **C 接口**:`ZC_GetAngleStaticAnalysisRect`
-
-### 请求体(BinaryInt2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-| i1 | Integer | 否 | angle |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;data 为 ZC_RECT_S 结构体字段 JSON
-
----
-
-<a id='197-setAngleStaticAnalysisRect'></a>
-
-## 197. setAngleStaticAnalysisRect — 对应 C 接口 {@code ZC_SetAngleStaticAnalysisRect}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/setAngleStaticAnalysisRect`
-- **C 接口**:`ZC_SetAngleStaticAnalysisRect`
-
-### 请求体(AngleStaticAnalysisRectReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 |  |
-| i2 | Integer | 否 |  |
-| data | ZC_RECT_S | 是 | 结构体对象(字段见下表) |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='198-clrAngleStaticAnalysisRect'></a>
-
-## 198. clrAngleStaticAnalysisRect — 对应 C 接口 {@code ZC_ClrAngleStaticAnalysisRect}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/clrAngleStaticAnalysisRect`
-- **C 接口**:`ZC_ClrAngleStaticAnalysisRect`
-
-### 请求体(Int2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | angle |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='199-getAngleStaticAnalysisPoly'></a>
-
-## 199. getAngleStaticAnalysisPoly — 定区-多边形
-
-- **URL**:`POST /api/zc/device/getAngleStaticAnalysisPoly`
-- **C 接口**:`ZC_GetAngleStaticAnalysisPoly`
-
-### 请求体(BinaryInt2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-| i1 | Integer | 否 | angle |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;data 为 ZC_POLY_S 结构体字段 JSON
-
----
-
-<a id='200-setAngleStaticAnalysisPoly'></a>
-
-## 200. setAngleStaticAnalysisPoly — 对应 C 接口 {@code ZC_SetAngleStaticAnalysisPoly}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/setAngleStaticAnalysisPoly`
-- **C 接口**:`ZC_SetAngleStaticAnalysisPoly`
-
-### 请求体(AngleStaticAnalysisPolyReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 |  |
-| i2 | Integer | 否 |  |
-| data | ZC_POLY_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_POLY_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| p | ZC_POINT_S[] |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='201-clrAngleStaticAnalysisPoly'></a>
-
-## 201. clrAngleStaticAnalysisPoly — 对应 C 接口 {@code ZC_ClrAngleStaticAnalysisPoly}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/clrAngleStaticAnalysisPoly`
-- **C 接口**:`ZC_ClrAngleStaticAnalysisPoly`
-
-### 请求体(Int2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | angle |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='202-getAngleStaticShieldRect'></a>
-
-## 202. getAngleStaticShieldRect — 静屏-矩形
-
-- **URL**:`POST /api/zc/device/getAngleStaticShieldRect`
-- **C 接口**:`ZC_GetAngleStaticShieldRect`
-
-### 请求体(BinaryInt2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-| i1 | Integer | 否 | angle |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;data 为 ZC_RECT_S 结构体字段 JSON
-
----
-
-<a id='203-setAngleStaticShieldRect'></a>
-
-## 203. setAngleStaticShieldRect — 对应 C 接口 {@code ZC_SetAngleStaticShieldRect}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/setAngleStaticShieldRect`
-- **C 接口**:`ZC_SetAngleStaticShieldRect`
-
-### 请求体(AngleStaticShieldRectReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 |  |
-| i2 | Integer | 否 |  |
-| data | ZC_RECT_S | 是 | 结构体对象(字段见下表) |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='204-clrAngleStaticShieldRect'></a>
-
-## 204. clrAngleStaticShieldRect — 对应 C 接口 {@code ZC_ClrAngleStaticShieldRect}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/clrAngleStaticShieldRect`
-- **C 接口**:`ZC_ClrAngleStaticShieldRect`
-
-### 请求体(Int2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | angle |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='205-getAngleStaticShieldPoly'></a>
-
-## 205. getAngleStaticShieldPoly — 静屏-多边形
-
-- **URL**:`POST /api/zc/device/getAngleStaticShieldPoly`
-- **C 接口**:`ZC_GetAngleStaticShieldPoly`
-
-### 请求体(BinaryInt2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-| i1 | Integer | 否 | angle |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;data 为 ZC_POLY_S 结构体字段 JSON
-
----
-
-<a id='206-setAngleStaticShieldPoly'></a>
-
-## 206. setAngleStaticShieldPoly — 对应 C 接口 {@code ZC_SetAngleStaticShieldPoly}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/setAngleStaticShieldPoly`
-- **C 接口**:`ZC_SetAngleStaticShieldPoly`
-
-### 请求体(AngleStaticShieldPolyReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 |  |
-| i2 | Integer | 否 |  |
-| data | ZC_POLY_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_POLY_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| p | ZC_POINT_S[] |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='207-clrAngleStaticShieldPoly'></a>
-
-## 207. clrAngleStaticShieldPoly — 对应 C 接口 {@code ZC_ClrAngleStaticShieldPoly}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/clrAngleStaticShieldPoly`
-- **C 接口**:`ZC_ClrAngleStaticShieldPoly`
-
-### 请求体(Int2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | angle |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='208-getAngleDynamicShieldRect'></a>
-
-## 208. getAngleDynamicShieldRect — 动屏-矩形
-
-- **URL**:`POST /api/zc/device/getAngleDynamicShieldRect`
-- **C 接口**:`ZC_GetAngleDynamicShieldRect`
-
-### 请求体(BinaryInt2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-| i1 | Integer | 否 | angle |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;data 为 ZC_RECT_S 结构体字段 JSON
-
----
-
-<a id='209-setAngleDynamicShieldRect'></a>
-
-## 209. setAngleDynamicShieldRect — 对应 C 接口 {@code ZC_SetAngleDynamicShieldRect}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/setAngleDynamicShieldRect`
-- **C 接口**:`ZC_SetAngleDynamicShieldRect`
-
-### 请求体(AngleDynamicShieldRectReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 |  |
-| i2 | Integer | 否 |  |
-| data | ZC_RECT_S | 是 | 结构体对象(字段见下表) |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='210-clrAngleDynamicShieldRect'></a>
-
-## 210. clrAngleDynamicShieldRect — 对应 C 接口 {@code ZC_ClrAngleDynamicShieldRect}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/clrAngleDynamicShieldRect`
-- **C 接口**:`ZC_ClrAngleDynamicShieldRect`
-
-### 请求体(Int2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | angle |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='211-getAngleDynamicShieldPoly'></a>
-
-## 211. getAngleDynamicShieldPoly — 动屏-多边形
-
-- **URL**:`POST /api/zc/device/getAngleDynamicShieldPoly`
-- **C 接口**:`ZC_GetAngleDynamicShieldPoly`
-
-### 请求体(BinaryInt2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-| i1 | Integer | 否 | angle |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;data 为 ZC_POLY_S 结构体字段 JSON
-
----
-
-<a id='212-setAngleDynamicShieldPoly'></a>
-
-## 212. setAngleDynamicShieldPoly — 对应 C 接口 {@code ZC_SetAngleDynamicShieldPoly}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/setAngleDynamicShieldPoly`
-- **C 接口**:`ZC_SetAngleDynamicShieldPoly`
-
-### 请求体(AngleDynamicShieldPolyReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 |  |
-| i2 | Integer | 否 |  |
-| data | ZC_POLY_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_POLY_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| p | ZC_POINT_S[] |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='213-clrAngleDynamicShieldPoly'></a>
-
-## 213. clrAngleDynamicShieldPoly — 对应 C 接口 {@code ZC_ClrAngleDynamicShieldPoly}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/clrAngleDynamicShieldPoly`
-- **C 接口**:`ZC_ClrAngleDynamicShieldPoly`
-
-### 请求体(Int2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | angle |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='214-getAngleMoveLine'></a>
-
-## 214. getAngleMoveLine — 闯入-线
-
-- **URL**:`POST /api/zc/device/getAngleMoveLine`
-- **C 接口**:`ZC_GetAngleMoveLine`
-
-### 请求体(BinaryInt2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-| i1 | Integer | 否 | angle |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;data 为 ZC_MOVE_LINE_S 结构体字段 JSON
-
----
-
-<a id='215-setAngleMoveLine'></a>
-
-## 215. setAngleMoveLine — 对应 C 接口 {@code ZC_SetAngleMoveLine}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/setAngleMoveLine`
-- **C 接口**:`ZC_SetAngleMoveLine`
-
-### 请求体(AngleMoveLineReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 |  |
-| i2 | Integer | 否 |  |
-| data | ZC_MOVE_LINE_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_MOVE_LINE_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| lowIO | int |  |
-| highIO | int |  |
-| line | ZC_LINE_S |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='216-clrAngleMoveLine'></a>
-
-## 216. clrAngleMoveLine — 对应 C 接口 {@code ZC_ClrAngleMoveLine}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/clrAngleMoveLine`
-- **C 接口**:`ZC_ClrAngleMoveLine`
-
-### 请求体(Int2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | angle |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='217-getAngleMoveRect'></a>
-
-## 217. getAngleMoveRect — 闯入-矩形
-
-- **URL**:`POST /api/zc/device/getAngleMoveRect`
-- **C 接口**:`ZC_GetAngleMoveRect`
-
-### 请求体(BinaryInt2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-| i1 | Integer | 否 | angle |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;data 为 ZC_MOVE_RECT_S 结构体字段 JSON
-
----
-
-<a id='218-setAngleMoveRect'></a>
-
-## 218. setAngleMoveRect — 对应 C 接口 {@code ZC_SetAngleMoveRect}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/setAngleMoveRect`
-- **C 接口**:`ZC_SetAngleMoveRect`
-
-### 请求体(AngleMoveRectReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 |  |
-| i2 | Integer | 否 |  |
-| data | ZC_MOVE_RECT_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_MOVE_RECT_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| lowIO | int |  |
-| highIO | int |  |
-| rect | ZC_RECT_S |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='219-clrAngleMoveRect'></a>
-
-## 219. clrAngleMoveRect — 对应 C 接口 {@code ZC_ClrAngleMoveRect}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/clrAngleMoveRect`
-- **C 接口**:`ZC_ClrAngleMoveRect`
-
-### 请求体(Int2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | angle |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='220-getAngleMovePoly'></a>
-
-## 220. getAngleMovePoly — 闯入-多边形`
-
-- **URL**:`POST /api/zc/device/getAngleMovePoly`
-- **C 接口**:`ZC_GetAngleMovePoly`
-
-### 请求体(BinaryInt2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-| i1 | Integer | 否 | angle |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;data 为 ZC_MOVE_POLY_S 结构体字段 JSON
-
----
-
-<a id='221-setAngleMovePoly'></a>
-
-## 221. setAngleMovePoly — 对应 C 接口 {@code ZC_SetAngleMovePoly}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/setAngleMovePoly`
-- **C 接口**:`ZC_SetAngleMovePoly`
-
-### 请求体(AngleMovePolyReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 |  |
-| i2 | Integer | 否 |  |
-| data | ZC_MOVE_POLY_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_MOVE_POLY_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| lowIO | int |  |
-| highIO | int |  |
-| poly | ZC_POLY_S |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='222-clrAngleMovePoly'></a>
-
-## 222. clrAngleMovePoly — 对应 C 接口 {@code ZC_ClrAngleMovePoly}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/clrAngleMovePoly`
-- **C 接口**:`ZC_ClrAngleMovePoly`
-
-### 请求体(Int2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | angle |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='223-getAngleMoveBorder'></a>
-
-## 223. getAngleMoveBorder — 闯入-多边形边界
-
-- **URL**:`POST /api/zc/device/getAngleMoveBorder`
-- **C 接口**:`ZC_GetAngleMoveBorder`
-
-### 请求体(BinaryInt2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-| i1 | Integer | 否 | angle |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;data 为 ZC_MOVE_POLY_S 结构体字段 JSON
-
----
-
-<a id='224-setAngleMoveBorder'></a>
-
-## 224. setAngleMoveBorder — 对应 C 接口 {@code ZC_SetAngleMoveBorder}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/setAngleMoveBorder`
-- **C 接口**:`ZC_SetAngleMoveBorder`
-
-### 请求体(AngleMoveBorderReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 |  |
-| i2 | Integer | 否 |  |
-| data | ZC_MOVE_POLY_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_MOVE_POLY_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| lowIO | int |  |
-| highIO | int |  |
-| poly | ZC_POLY_S |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='225-clrAngleMoveBorder'></a>
-
-## 225. clrAngleMoveBorder — 对应 C 接口 {@code ZC_ClrAngleMoveBorder}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/clrAngleMoveBorder`
-- **C 接口**:`ZC_ClrAngleMoveBorder`
-
-### 请求体(Int2Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | angle |
-| i2 | Integer | 否 | index |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='226-ruiTing_GetZone'></a>
-
-## 226. ruiTing_GetZone — R-T-D-Z
-
-- **URL**:`POST /api/zc/device/ruiTing_GetZone`
-- **C 接口**:`ZC_RuiTing_GetZone`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_RuiTing_ZONE_S 结构体字段 JSON
-
----
-
-<a id='227-ruiTing_SetZone'></a>
-
-## 227. ruiTing_SetZone — 对应 C 接口 {@code ZC_RuiTing_SetZone}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/ruiTing_SetZone`
-- **C 接口**:`ZC_RuiTing_SetZone`
-
-### 请求体(Ting_SetZoneReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_RuiTing_ZONE_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_RuiTing_ZONE_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| index | int |  |
-| name | byte[] |  |
-| radiation | float |  |
-| alarm_temp | float |  |
-| rect | ZC_RECT_S |  |
-| poly | ZC_POLY_S |  |
-| pot_tem_switch | int |  |
-| trend_tem_switch | int |  |
-| absolute_tem_switch | int |  |
-| relative_tem_switch | int |  |
-| trend_tem_rate_degree | float |  |
-| trend_tem_rate_minute | int |  |
-| absolute_tem_reference_x | int |  |
-| absolute_tem_reference_y | int |  |
-| absolute_tem_reference_tem | float |  |
-| pot_tem_timeout | int |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='228-ruiTing_DelZone'></a>
-
-## 228. ruiTing_DelZone — 对应 C 接口 {@code ZC_RuiTing_DelZone}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/ruiTing_DelZone`
-- **C 接口**:`ZC_RuiTing_DelZone`
-
-### 请求体(IntReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | zone_index |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='229-ruiTing_GetGroup'></a>
-
-## 229. ruiTing_GetGroup — 对应 C 接口 {@code ZC_RuiTing_GetGroup}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/ruiTing_GetGroup`
-- **C 接口**:`ZC_RuiTing_GetGroup`
-
-### 请求体(BinaryReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | String | 否 |  |
-| size | Integer | 否 |  |
-
-### 返回
-
-code=0 成功;data 为 ZC_RuiTing_RELATIVE_TEMP_GROUP_S 结构体字段 JSON
-
----
-
-<a id='230-ruiTing_SetGroup'></a>
-
-## 230. ruiTing_SetGroup — 对应 C 接口 {@code ZC_RuiTing_SetGroup}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/ruiTing_SetGroup`
-- **C 接口**:`ZC_RuiTing_SetGroup`
-
-### 请求体(Ting_SetGroupReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| data | ZC_RuiTing_RELATIVE_TEMP_GROUP_S | 是 | 结构体对象(字段见下表) |
-
-**`data` 结构体字段(ZC_RuiTing_RELATIVE_TEMP_GROUP_S):**
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| group_index | int |  |
-| relative_tem_rate | float |  |
-| relative_tem_ary | int[] |  |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='231-ruiTing_DelGroup'></a>
-
-## 231. ruiTing_DelGroup — 对应 C 接口 {@code ZC_RuiTing_DelGroup}(SDK 头文件无独立注释,功能见函数名)
-
-- **URL**:`POST /api/zc/device/ruiTing_DelGroup`
-- **C 接口**:`ZC_RuiTing_DelGroup`
-
-### 请求体(IntReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | group_index |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='232-enableRecvAlarm'></a>
-
-## 232. enableRecvAlarm — 是否接收报警 bEnable = 1,接收;bEnable = 0,不接收
-
-- **URL**:`POST /api/zc/device/enableRecvAlarm`
-- **C 接口**:`ZC_EnableRecvAlarm`
-
-### 请求体(IntReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | bEnable |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-<a id='233-alarmAutoCapture'></a>
-
-## 233. alarmAutoCapture — 报警自动抓拍图像
-
-- **URL**:`POST /api/zc/device/alarmAutoCapture`
-- **C 接口**:`ZC_AlarmAutoCapture`
-
-### 请求体(IntReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 否 | bEnable |
-
-### 返回
-
-code=0 成功;返回值为操作结果(0 表示成功)
-
----
-
-
-<a id='234-captureToFile'></a>
-
-## 234. captureToFile — 红外 + 可见光抓拍保存 JPG 文件。
-
-- **URL**:`POST /api/zc/device/captureToFile`
-- **C 接口**:`ZC_CaptureThermalToFile`(红外);可见光走海康 HCNetSDK 抓图(通道 1)
-
-### 请求体(PathPicReq)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| normalPic | String | 是 | 可见光图片文件名(如 visible.jpg) |
-| IRPic | String | 是 | 红外图片文件名(如 IRPic.jpg) |
-
-### 返回
-
-始终 HTTP 200 + code=0(抓拍结果在 data 中):
-
-| 字段 | 类型 | 说明 |
-| --- | --- | --- |
-| normalPic | String | 可见光图片文件名(回显) |
-| IRPic | String | 红外图片文件名(回显) |
-| filePath | String | 存储目录(capture-path,不含文件名) |
-| result | int | 红外抓拍返回码(0-成功) |
-| msg1 | String | 红外结果消息 |
-| hdresult | String | 可见光图片保存的完整路径 |
-| msg2 | String | 可见光结果消息 |
-| msg | String | 总体消息(设备未登录时为"抓拍失败,请检查设备连接情况") |
-
-**说明**:红外抓拍保存到 `capture-path` + IRPic,可见光抓拍保存到 `capture-path` + normalPic,两张相互独立。
-
----
-
-<a id='235-pTZControlHK'></a>
-
-## 235. pTZControlHK — 云台控制(可见光 / 海康)
-
-- **URL**:`POST /api/zc/device/pTZControlHK`
-- **海康接口**:`NET_DVR_PTZControlWithSpeed_Other`(登录句柄直控,无需先开预览/录制;失败回退 `NET_DVR_PTZControlWithSpeed`)
-
-### 请求体(Int3Req)
-
-| 字段 | 类型 | 必填 | 说明 |
-| --- | --- | --- | --- |
-| ip | String | 是 | 设备 IP |
-| i1 | Integer | 是 | 云台命令码:1-云台上 2-云台下 3-云台左 4-云台右 5-左上 6-右上 7-左下 8-右下;9-倍率变大 10-倍率变小 11-光圈放大 12-光圈缩小 13-焦点前调 14-焦点后调 |
-| i2 | Integer | 是 | 停止标志:0-开始(持续运动,需再发一次 1 停止) 1-停止 |
-| i3 | Integer | 是 | 速度:1~7 |
-
-### 返回
-
-code=0 成功(data 为 null);设备未登录或云台指令下发失败时仅记录日志消息,仍返回 code=0
-
-**说明**:通道固定为 1,按 IP 取可见光设备信息后下发指令;设备需具备云台/变倍等能力,否则指令不会产生实际动作(SDK 可能返回成功)。
-
----
-

Некоторые файлы не были показаны из-за большого количества измененных файлов