{
+
+ private Pointer pointer;
+ private boolean wide;
+
+ /** Create a native string (NUL-terminated array of char
).
+ * If the system property jna.encoding
is set, its value will
+ * be used to encode the native string. If not set or if the encoding
+ * is unavailable, the default platform encoding will be used.
+ */
+ public NativeString(String string) {
+ this(string, false);
+ }
+
+ /** Create a native string as a NUL-terminated array of wchar_t
+ * (if wide
is true) or char
.
+ * If the system property jna.encoding
is set, its value will
+ * be used to encode the native char
string.
+ * If not set or if the encoding is unavailable, the default platform
+ * encoding will be used.
+ *
+ * @param string value to write to native memory
+ * @param wide whether to store the String as wchar_t
+ */
+ public NativeString(String string, boolean wide) {
+ if (string == null) {
+ throw new NullPointerException("String must not be null");
+ }
+ // Allocate the memory to hold the string. Note, we have to
+ // make this 1 element longer in order to accommodate the terminating
+ // NUL (which is generated in Pointer.setString()).
+ this.wide = wide;
+ if (wide) {
+ int len = (string.length() + 1 ) * Native.WCHAR_SIZE;
+ pointer = new Memory(len);
+ pointer.setWideString(0, string);
+ }
+ else {
+ byte[] data = getBytes(string);
+ pointer = new Memory(data.length + 1);
+ pointer.write(0, data, 0, data.length);
+ pointer.setByte(data.length, (byte)0);
+ }
+ }
+
+ static byte[] getBytes(String s) {
+ try {
+ return getBytes(s, System.getProperty("jna.encoding"));
+ }
+ catch (UnsupportedEncodingException e) {
+ return s.getBytes();
+ }
+ }
+
+ /** Return a byte array corresponding to the given String, using the given
+ encoding.
+ */
+ static byte[] getBytes(String s, String encoding) throws UnsupportedEncodingException {
+ if (encoding != null) {
+ return s.getBytes(encoding);
+ }
+ return s.getBytes();
+ }
+
+ public int hashCode() {
+ return toString().hashCode();
+ }
+
+ public boolean equals(Object other) {
+
+ if (other instanceof CharSequence) {
+ return compareTo(other) == 0;
+ }
+ return false;
+ }
+
+ public String toString() {
+ String s = wide ? "const wchar_t*" : "const char*";
+ s += "(" + (wide ? pointer.getWideString(0) : pointer.getString(0)) + ")";
+ return s;
+ }
+
+ public Pointer getPointer() {
+ return pointer;
+ }
+
+ public char charAt(int index) {
+ return toString().charAt(index);
+ }
+
+ public int length() {
+ return toString().length();
+ }
+
+ public CharSequence subSequence(int start, int end) {
+ return CharBuffer.wrap(toString()).subSequence(start, end);
+ }
+
+ public int compareTo(Object other) {
+
+ if (other == null)
+ return 1;
+
+ return toString().compareTo(other.toString());
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/NetFinalVar.java b/src/main/java/com/netsdk/lib/NetFinalVar.java
new file mode 100644
index 0000000..bf1999d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/NetFinalVar.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib;
+
+public class NetFinalVar {
+ // 存储设备状态
+ public static final int NET_STORAGE_DEV_OFFLINE = 0; // 物理硬盘脱机状态
+ public static final int NET_STORAGE_DEV_RUNNING = 1; // 物理硬盘运行状态
+ public static final int NET_STORAGE_DEV_ACTIVE = 2; // RAID活动
+ public static final int NET_STORAGE_DEV_SYNC = 3; // RAID同步
+ public static final int NET_STORAGE_DEV_SPARE = 4; // RAID热备(局部)
+ public static final int NET_STORAGE_DEV_FAULTY = 5; // RAID失效
+ public static final int NET_STORAGE_DEV_REBUILDING = 6; // RAID重建
+ public static final int NET_STORAGE_DEV_REMOVED = 7; // RAID移除
+ public static final int NET_STORAGE_DEV_WRITE_ERROR = 8; // RAID写错误
+ public static final int NET_STORAGE_DEV_WANT_REPLACEMENT = 9; // RAID需要被替换
+ public static final int NET_STORAGE_DEV_REPLACEMENT = 10; // RAID是替代设备
+ public static final int NET_STORAGE_DEV_GLOBAL_SPARE = 11; // 全局热备
+ public static final int NET_STORAGE_DEV_ERROR = 12; // 错误, 部分分区可用
+ public static final int NET_STORAGE_DEV_RAIDSUB = 13; // 该盘目前是单盘, 原先是块Raid子盘, 有可能在重启后自动加入Raid
+ public static final int NET_STORAGE_DEV_FATAL = 14; // 严重错误,全部分区坏(DVR新增错误类型)
+ public static final int NET_STORAGE_DEV_SNAPSHOT_PARENT = 15; // 快照母盘
+ public static final int NET_STORAGE_DEV_SNAPSHOT_CHILD = 16; // 快照子盘
+ public static final int NET_STORAGE_DEV_VOLUMECLONE_PARENT = 17; // 卷克隆母盘
+ public static final int NET_STORAGE_DEV_VOLUMECLONE_CHILD = 18; // 卷克隆子盘
+}
diff --git a/src/main/java/com/netsdk/lib/NetSDKLib.java b/src/main/java/com/netsdk/lib/NetSDKLib.java
new file mode 100644
index 0000000..8fec41a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/NetSDKLib.java
@@ -0,0 +1,39271 @@
+package com.netsdk.lib;
+import com.netsdk.lib.NetSDKLib.LLong;
+import com.netsdk.lib.enumeration.*;
+import com.netsdk.lib.structure.*;
+import com.sun.jna.*;
+import com.sun.jna.ptr.IntByReference;
+import java.io.UnsupportedEncodingException;
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * NetSDK JNA接口封装
+ */
+public interface NetSDKLib extends Library {
+
+ NetSDKLib NETSDK_INSTANCE = Native.load(LibraryLoad.getLoadLibrary("dhnetsdk"), NetSDKLib.class);
+
+ NetSDKLib CONFIG_INSTANCE = Native.load(LibraryLoad.getLoadLibrary("dhconfigsdk"), NetSDKLib.class);
+
+ //NetSDKLib CONFIG_JNI = (NetSDKLib)Native.loadLibrary(util.getLoadLibrary("JNI1.dll"), INetSDK.class);
+ class LLong extends IntegerType {
+ private static final long serialVersionUID = 1L;
+
+ /** Size of a native long, in bytes. */
+ public static int size;
+ static {
+ size = Native.LONG_SIZE;
+ if (Utils.getOsPrefix().equalsIgnoreCase("linux-amd64")
+ || Utils.getOsPrefix().equalsIgnoreCase("win32-amd64")
+ || Utils.getOsPrefix().equalsIgnoreCase("mac-64")) {
+ size = 8;
+ } else if (Utils.getOsPrefix().equalsIgnoreCase("linux-i386")
+ || Utils.getOsPrefix().equalsIgnoreCase("win32-x86")) {
+ size = 4;
+ }
+ }
+
+ /** Create a zero-valued LLong. */
+ public LLong() {
+ this(0);
+ }
+
+ /** Create a LLong with the given value. */
+ public LLong(long value) {
+ super(size, value);
+ }
+ }
+ public static class SdkStructure extends Structure {
+ @Override
+ protected List getFieldOrder(){
+ List fieldOrderList = new ArrayList();
+ for (Class> cls = getClass();
+ !cls.equals(SdkStructure.class);
+ cls = cls.getSuperclass()) {
+ Field[] fields = cls.getDeclaredFields();
+ int modifiers;
+ for (Field field : fields) {
+ modifiers = field.getModifiers();
+ if (Modifier.isStatic(modifiers) || !Modifier.isPublic(modifiers)) {
+ continue;
+ }
+ fieldOrderList.add(field.getName());
+ }
+ }
+ // System.out.println(fieldOrderList);
+
+ return fieldOrderList;
+ }
+
+ @Override
+ public int fieldOffset(String name){
+ return super.fieldOffset(name);
+ }
+ }
+
+ /************************************************************************
+ ** 常量定义
+ ***********************************************************************/
+ public static final int POINTERSIZE = new PointerSize().size(); // JNA指针长度
+ public static final int MAX_INSIDEOBJECT_NUM = 32; // 最大包裹内物品个数
+ public static final int NET_SERIALNO_LEN = 48; // 设备序列号字符长度
+ public static final int NET_CFG_Max_VideoColor = 24; // 每个通道最大视频输入颜色配置数量
+ public static final int NET_CFG_Custom_Title_Len = 1024; // 自定义标题名称长度(扩充到1024)
+ public static final int NET_CFG_Custom_TitleType_Len = 32; // 自定义标题类型长度
+ public static final int NET_CFG_Max_Video_Widget_Cover = 16; // 编码区域覆盖最大数量
+ public static final int NET_CFG_Max_Video_Widget_Custom_Title = 8; // 编码物件自定义标题最大数量
+ public static final int NET_CFG_Max_Video_Widget_Sensor_Info = 2; // 编码物件叠加传感器信息的最大数目
+ public static final int NET_CFG_Max_Description_Num = 4; // 叠加区域描述信息的最大个数
+ public static final int NET_GATEWAY_MAX_SIM_NUM = 8; // 网关SIM卡最大个数
+ public static final int NET_MAX_MAIL_ADDR_LEN = 128; // 邮件发(收)地址最大长度
+ public static final int NET_MAX_MAIL_SUBJECT_LEN = 64; // 邮件主题最大长度
+ public static final int NET_MAX_IPADDR_LEN = 16; // IP地址字符串长度
+ public static final int NET_MAX_IPADDR_LEN_EX = 40; // 扩展IP地址字符串长度, 支持IPV6
+ public static final int NET_USER_NAME_LEN_EX = 32; // 用户名长度,用于新平台扩展
+ public static final int NET_USER_PSW_LEN_EX = 32; // 用户密码长度,用于新平台扩展
+ public static final int NET_MAX_DEV_ID_LEN = 48; // 机器编号最大长度
+ public static final int NET_MAX_HOST_NAMELEN = 64; // 主机名长度,
+ public static final int NET_MAX_HOST_PSWLEN = 32; // 密码长度
+ public static final int NET_MAX_ETHERNET_NUM = 2; // 以太网口最大个数
+ public static final int NET_MAX_ETHERNET_NUM_EX = 10; // 扩展以太网口最大个数
+ public static final int NET_DEV_CLASS_LEN = 16; // 设备类型字符串(如"IPC")长度
+ public static final int NET_N_WEEKS = 7; // 一周的天数
+ public static final int NET_N_TSECT = 6; // 通用时间段个数
+ public static final int NET_N_REC_TSECT = 6; // 录像时间段个数
+ public static final int NET_N_COL_TSECT = 2; // 颜色时间段个数
+ public static final int NET_N_ENCODE_AUX = 3; // 扩展码流个数
+ public static final int NET_N_TALK = 1; // 最多对讲通道个数
+ public static final int NET_N_COVERS = 1; // 遮挡区域个数
+ public static final int NET_N_CHANNEL = 16; // 最大通道个数
+ public static final int NET_N_ALARM_TSECT = 2; // 报警提示时间段个数
+ public static final int NET_MAX_ALARMOUT_NUM = 16; // 报警输出口个数上限
+ public static final int NET_MAX_AUDIO_IN_NUM = 16; // 音频输入口个数上限
+ public static final int NET_MAX_VIDEO_IN_NUM = 16; // 视频输入口个数上限
+ public static final int NET_MAX_ALARM_IN_NUM = 16; // 报警输入口个数上限
+ public static final int NET_MAX_DISK_NUM = 16; // 硬盘个数上限,暂定为16
+ public static final int NET_MAX_DECODER_NUM = 16; // 解码器(485)个数上限
+ public static final int NET_MAX_232FUNCS = 10; // 232串口功能个数上限
+ public static final int NET_MAX_232_NUM = 2; // 232串口个数上限
+ public static final int NET_MAX_232_NUM_EX = 16; // 扩展串口配置个数上限
+ public static final int NET_MAX_DECPRO_LIST_SIZE = 100; // 解码器协议列表个数上限
+ public static final int NET_FTP_MAXDIRLEN = 240; // FTP文件目录最大长度
+ public static final int NET_MATRIX_MAXOUT = 16; // 矩阵输出口最大个数
+ public static final int NET_TOUR_GROUP_NUM = 6; // 矩阵输出组最大个数
+ public static final int NET_MAX_DDNS_NUM = 10; // 设备支持的ddns服务器最大个数
+ public static final int NET_MAX_SERVER_TYPE_LEN = 32; // ddns服务器类型,最大字符串长度
+ public static final int NET_MAX_DOMAIN_NAME_LEN = 256; // ddns域名,最大字符串长度
+ public static final int NET_MAX_DDNS_ALIAS_LEN = 32; // ddns服务器别名,最大字符串长度
+ public static final int NET_MAX_DEFAULT_DOMAIN_LEN = 60; // ddns默认域名,最大字符串长度
+ public static final int NET_MOTION_ROW = 32; // 动态检测区域的行数
+ public static final int NET_MOTION_COL = 32; // 动态检测区域的列数
+ public static final int NET_STATIC_ROW = 32; // 静态检测区域的行数
+ public static final int NET_STATIC_COL = 32; // 静态检测区域的列数
+ public static final int NET_FTP_USERNAME_LEN = 64; // FTP配置,用户名最大长度
+ public static final int NET_FTP_PASSWORD_LEN = 64; // FTP配置,密码最大长度
+ public static final int NET_TIME_SECTION = 2; // FTP配置,每天时间段个数
+ public static final int NET_FTP_MAX_PATH = 240; // FTP配置,文件路径名最大长度
+ public static final int NET_FTP_MAX_SUB_PATH = 128; // FTP配置,文件路径名最大长度
+ public static final int NET_INTERVIDEO_UCOM_CHANID = 32; // 平台接入配置,U网通通道ID
+ public static final int NET_INTERVIDEO_UCOM_DEVID = 32; // 平台接入配置,U网通设备ID
+ public static final int NET_INTERVIDEO_UCOM_REGPSW = 16; // 平台接入配置,U网通注册密码
+ public static final int NET_INTERVIDEO_UCOM_USERNAME = 32; // 平台接入配置,U网通用户名
+ public static final int NET_INTERVIDEO_UCOM_USERPSW = 32; // 平台接入配置,U网通密码
+ public static final int NET_INTERVIDEO_NSS_IP = 32; // 平台接入配置,力维IP
+ public static final int NET_INTERVIDEO_NSS_SERIAL = 32; // 平台接入配置,力维serial
+ public static final int NET_INTERVIDEO_NSS_USER = 32; // 平台接入配置,力维user
+ public static final int NET_INTERVIDEO_NSS_PWD = 50; // 平台接入配置,力维password
+ public static final int NET_MAX_VIDEO_COVER_NUM = 16; // 遮挡区域最大个数
+ public static final int NET_MAX_WATERMAKE_DATA = 4096; // 水印图片数据最大长度
+ public static final int NET_MAX_WATERMAKE_LETTER = 128; // 水印文字最大长度
+ public static final int NET_MAX_WLANDEVICE_NUM = 10; // 最多搜索出的无线设备个数
+ public static final int NET_MAX_WLANDEVICE_NUM_EX = 32; // 最多搜索出的无线设备个数
+ public static final int NET_MAX_ALARM_NAME = 64; // 地址长度
+ public static final int NET_MAX_REGISTER_SERVER_NUM = 10; // 主动注册服务器个数
+ public static final int NET_SNIFFER_FRAMEID_NUM = 6; // 6个FRAME ID 选项
+ public static final int NET_SNIFFER_CONTENT_NUM = 4; // 每个FRAME对应的4个抓包内容
+ public static final int NET_SNIFFER_CONTENT_NUM_EX = 8; // 每个FRAME对应的8个抓包内容
+ public static final int NET_SNIFFER_PROTOCOL_SIZE = 20; // 协议名字长度
+ public static final int NET_MAX_PROTOCOL_NAME_LENGTH = 20;
+ public static final int NET_SNIFFER_GROUP_NUM = 4; // 4组抓包设置
+ public static final int NET_ALARM_OCCUR_TIME_LEN = 40; // 新的报警上传时间的长度
+ public static final int NET_VIDEO_OSD_NAME_NUM = 64; // 叠加的名称长度,目前支持32个英文,16个中文
+ public static final int NET_VIDEO_CUSTOM_OSD_NUM = 8; // 支持的自定义叠加的数目,不包含时间和通道
+ public static final int NET_VIDEO_CUSTOM_OSD_NUM_EX = 256; // 支持的自定义叠加的数目,不包含时间和通道
+ public static final int NET_CONTROL_AUTO_REGISTER_NUM = 100; // 支持定向主动注册服务器的个数
+ public static final int NET_MMS_RECEIVER_NUM = 100; // 支持短信接收者的个数
+ public static final int NET_MMS_SMSACTIVATION_NUM = 100; // 支持短信发送者的个数
+ public static final int NET_MMS_DIALINACTIVATION_NUM = 100; // 支持拨号发送者的个数
+ public static final int NET_MAX_ALARM_IN_NUM_EX = 32; // 报警输入口个数上限
+ public static final int NET_MAX_IPADDR_OR_DOMAIN_LEN = 64; // IP地址字符串长度
+ public static final int NET_MAX_CALLID = 32; // 呼叫ID
+ public static final int DH_MAX_OBJECT_NUM = 32; // 最大object个数
+ public static final int NET_MAX_OBJECT_NUM = 32; // 最大object个数
+ public static final int NET_MAX_FENCE_LINE_NUM = 2; // 围栏最大曲线数
+ public static final int MAX_SMART_VALUE_NUM = 30; // 最多的smart信息个数
+ public static final int NET_INTERVIDEO_AMP_DEVICESERIAL = 48; // 平台接入配置,天地阳光 设备序列号字符串长度
+ public static final int NET_INTERVIDEO_AMP_DEVICENAME = 16; // 平台接入配置,天地阳光 设备名称字符串长度
+ public static final int NET_INTERVIDEO_AMP_USER = 32; // 平台接入配置,天地阳光 注册用户名字符串长度
+ public static final int NET_INTERVIDEO_AMP_PWD = 32; // 平台接入配置,天地阳光 注册密码字符串长度
+ public static final int MAX_SUBMODULE_NUM = 32; // 最多子模块信息个数
+ public static final int NET_MAX_CARWAY_NUM = 8; // 交通抓拍,最大车道数
+ public static final int NET_MAX_SNAP_SIGNAL_NUM = 3; // 一个车道的最大抓拍张数
+ public static final int NET_MAX_CARD_NUM = 128; // 卡号的最大个数
+ public static final int NET_MAX_CARDINFO_LEN = 32; // 每条卡号最长字符数
+ public static final int NET_MAX_CONTROLER_NUM = 64; // 最大支持控制器数目
+ public static final int NET_MAX_LIGHT_NUM = 32; // 最多控制灯组数
+ public static final int NET_MAX_SNMP_COMMON_LEN = 64; // snmp 读写数据长度
+ public static final int NET_MAX_DDNS_STATE_LEN = 128; // DDNS 状态信息长度
+ public static final int NET_MAX_PHONE_NO_LEN = 16; // 电话号码长度
+ public static final int NET_MAX_MSGTYPE_LEN = 32; // 导航类型或短信息类型长度
+ public static final int NET_MAX_MSG_LEN = 256; // 导航和短信息长度
+ public static final int NET_MAX_GRAB_INTERVAL_NUM = 4; // 多张图片抓拍个数
+ public static final int NET_MAX_FLASH_NUM = 5; // 最多支持闪光灯个数
+ public static final int NET_MAX_ISCSI_PATH_NUM = 64; // ISCSI远程目录最大数量
+ public static final int NET_MAX_WIRELESS_CHN_NUM = 256; // 无线路由最大信道数
+ public static final int NET_PROTOCOL3_BASE = 100; // 三代协议版本基数
+ public static final int NET_PROTOCOL3_SUPPORT = 11; // 只支持3代协议
+ public static final int NET_MAX_STAFF_NUM = 20; // 浓缩视频配置信息中标尺数上限
+ public static final int NET_MAX_CALIBRATEBOX_NUM = 10; // 浓缩视频配置信息中标定区域数上限
+ public static final int NET_MAX_EXCLUDEREGION_NUM = 10; // 浓缩视频配置信息中排除区域数上限
+ public static final int NET_MAX_POLYLINE_NUM = 20; // 浓缩视频配置信息中标尺线数
+ public static final int NET_MAX_COLOR_NUM = 16; // 最大颜色数目
+ public static final int MAX_OBJFILTER_NUM = 16; // 最大过滤种类个数
+ public static final int NET_MAX_SYNOPSIS_STATE_NAME = 64; // 视频浓缩状态字符串长度
+ public static final int NET_MAX_SYNOPSIS_QUERY_FILE_COUNT = 10; // 视频浓缩相关原始文件按照路径查找时文件个数上限
+ public static final int NET_MAX_SSID_LEN = 36; // SSID长度
+ public static final int NET_MAX_APPIN_LEN = 16; // PIN码长度
+ public static final int NET_NETINTERFACE_NAME_LEN = 260; // 网口名称长度
+ public static final int NET_NETINTERFACE_TYPE_LEN = 260; // 网络类型长度
+ public static final int NET_MAX_CONNECT_STATUS_LEN = 260; // 连接状态字符串长度
+ public static final int NET_MAX_MODE_LEN = 64; // 3G支持的网络模式长度
+ public static final int NET_MAX_MODE_NUM = 64; // 3G支持的网络模式个数
+ public static final int NET_MAX_COMPRESSION_TYPES_NUM = 16; // 视频编码格式最多种类个数
+ public static final int NET_MAX_CAPTURE_SIZE_NUM = 64; // 视频分辨率个数
+ public static final int NET_NODE_NAME_LEN = 64; // 组织结构节点名称长度
+ public static final int MAX_CALIBPOINTS_NUM = 256; // 支持最大标定点数
+ public static final int NET_MAX_ATTR_NUM = 32; // 显示单元属性最大数量
+ public static final int NET_MAX_CLOUDCONNECT_STATE_LEN = 128; // 云注册连接状态信息长度
+ public static final int NET_MAX_IPADDR_EX_LEN = 128; // 扩展IP地址最大长度
+ public static final int MAX_EVENT_NAME = 128; // 最长事件名
+ public static final int NET_MAX_ETH_NAME = 64; // 最大网卡名
+ public static final int NET_N_SCHEDULE_TSECT = 8; // 时间表元素个数
+ public static final int NET_MAX_URL_NUM = 8; // URL最大个数
+ public static final int NET_MAX_LOWER_MITRIX_NUM = 16; // 最大下位矩阵数
+ public static final int NET_MAX_BURN_CHANNEL_NUM = 32; // 最大刻录通道数
+ public static final int NET_MAX_NET_STRORAGE_BLOCK_NUM = 64; // 最大远程存储区块数量
+ public static final int NET_MAX_CASE_PERSON_NUM = 32; // 案件人员最大数量
+ public static final int NET_MAX_MULTIPLAYBACK_CHANNEL_NUM = 64; // 最大多通道预览回放通道数
+ public static final int NET_MAX_MULTIPLAYBACK_SPLIT_NUM = 32; // 最大多通道预览回放分割模式数
+ public static final int NET_MAX_AUDIO_ENCODE_TYPE = 64; // 最大语音编码类型个数
+ public static final int MAX_CARD_RECORD_FIELD_NUM = 16; // 卡号录像最大域数量
+ public static final int NET_BATTERY_NUM_MAX = 16; // 最大电池数量
+ public static final int NET_POWER_NUM_MAX = 16; // 最大电源数量
+ public static final int NET_MAX_AUDIO_PATH = 260; // 最大音频文件路长度
+ public static final int NET_MAX_DOORNAME_LEN = 128; // 最大门禁名称长度
+ public static final int NET_MAX_CARDPWD_LEN = 64; // 最大门禁名称长度
+ public static final int NET_MAX_FISHEYE_MOUNTMODE_NUM = 4; // 最大鱼眼安装模式个数
+ public static final int NET_MAX_FISHEYE_CALIBRATEMODE_NUM = 16; // 最大鱼眼矫正模式个数
+ public static final int NET_MAX_FISHEYE_EPTZCMD_NUM = 64; // 最大鱼眼电子云台操作个数
+ public static final int POINT_NUM_IN_PAIR = 2; // 标定点对中的点数量
+ public static final int MAX_POINT_PAIR_NUM = 128; // 标定点最大数量
+ public static final int CHANNEL_NUM_IN_POINT_GROUP = 2; // 标定点中的视频通道数
+ public static final int MAX_POINT_GROUP_NUM = 32; // 标定点组最大数量, 每两个通道进行拼接需要一组标定点
+ public static final int MAX_LANE_INFO_NUM = 32; // 最大车道信息数
+ public static final int MAX_LANE_DIRECTION_NUM = 8; // 车道方向总数
+ public static final int NET_MAX_MONITORWALL_NUM = 32; // 电视墙最大数量
+ public static final int NET_MAX_OPTIONAL_URL_NUM = 8; // 备用url最大数量
+ public static final int NET_MAX_CAMERA_CHANNEL_NUM = 1024; // 最大摄像机通道数
+ public static final int MAX_FILE_SUMMARY_NUM = 32; // 最大文件摘要数
+ public static final int MAX_AUDIO_ENCODE_NUM = 64; // 最大支持音频编码个数
+ public static final int MAX_FLASH_LIGHT_NUM = 8; // 最大支持的爆闪灯(闪光灯)个数
+ public static final int MAX_STROBOSCOPIC_LIGHT_NUM = 8; // 最大支持的频闪灯个数
+ public static final int MAX_MOSAIC_NUM = 8; // 最大支持的马赛克数量
+ public static final int MAX_MOSAIC_CHANNEL_NUM = 256; // 支持马赛克叠加的最多通道数量
+ public static final int MAX_FIREWARNING_INFO_NUM = 4; // 最大热成像着火点报警信息个数
+ public static final int MAX_AXLE_NUM = 8; // 最大车轴数量
+ public static final int MAX_ACCESSDOOR_NUM = 128; // 最大门数量
+ public static final int MAX_SIMILARITY_COUNT = 1024; // 最大人脸对比库阈值个数
+ public static final int MAX_FEATURESTATE_NUM = 4; // 最大人脸组建模状态个数
+ public static final int NET_MAX_BULLET_HOLES = 10; // 最大的弹孔数
+ public static final int MAX_NTP_SERVER = 4; // 最大备用NTP服务器地址
+ public static final int MAX_PLATE_NUM = 64; // 每张图片中包含的最大车牌个数
+ public static final int MAX_PREVIEW_CHANNEL_NUM = 64; // 最大导播预览的通道数量
+ public static final int MAX_ADDRESS_LEN = 256; // 最大的地址长度
+ public static final int MAX_DNS_SERVER_NUM = 2; // DNS最大数量
+ public static final int MAX_NETWORK_INTERFACE_NUM = 32; // 最大网卡数量
+ public static final int MAX_EVENT_RESTORE_UUID = 36; // 事件重传uuid数组大小
+ public static final int MAX_EVENT_RESTORE_CODE_NUM = 8; // 最大事件重传类型个数
+ public static final int MAX_EVENT_RESOTER_CODE_TYPE = 32; // 事件重传类型数组大小
+ public static final int MAX_SNAP_TYPE = 3; // 抓图类型数量
+ public static final int MAX_MAINFORMAT_NUM = 4; // 最大支持主码流类型数量
+ public static final int CUSTOM_TITLE_LEN = 1024; // 自定义标题名称长度(扩充到1024)
+ public static final int MAX_CUSTOM_TITLE_NUM = 8; // 编码物件自定义标题最大数量
+ public static final int FORMAT_TYPE_LEN = 16; // 编码类型名最大长度
+ public static final int MAX_CHANNEL_NAME_LEN = 256; // 通道名称最大长度
+ public static final int MAX_VIRTUALINFO_DOMAIN_LEN = 64; // 虚拟身份上网域名长度
+ public static final int MAX_VIRTUALINFO_TITLE_LEN = 64; // 虚拟身份上网标题长度
+ public static final int MAX_VIRTUALINFO_USERNAME_LEN = 32; // 虚拟身份用户名长度
+ public static final int MAX_VIRTUALINFO_PASSWORD_LEN = 32; // 虚拟身份密码长度
+ public static final int MAX_VIRTUALINFO_PHONENUM_LEN = 12; // 虚拟身份手机号长度
+ public static final int MAX_VIRTUALINFO_IMEI_LEN = 16; // 虚拟身份国际移动设备标识长度
+ public static final int MAX_VIRTUALINFO_IMSI_LEN = 16; // 虚拟身份国际移动用户识别码长度
+ public static final int MAX_VIRTUALINFO_LATITUDE_LEN = 16; // 虚拟身份经度长度
+ public static final int MAX_VIRTUALINFO_LONGITUDE_LEN = 16; // 虚拟身份纬度长度
+ public static final int MAX_VIRTUALINFO_NUM = 1024; // 最大虚拟身份信息个数
+ public static final int MAX_SCREENTIME_COUNT = 8; // 诱导屏最大开关屏时间个数
+ public static final int MAX_PLAYDATES_COUNT = 32; // 最大日期个数
+ public static final int MAX_ELEMENTS_COUNT = 8; // 诱导屏窗口支持的最大元素个数
+ public static final int MAX_ELEMENTTEXT_LENGTH = 512; // 文本元素最大文本长度
+ public static final int MAX_NOTE_COUNT = 4; // 诱导屏窗口元素注释信息最大个数
+ public static final int MAX_PROGRAMMES_COUNT = 32; // 最多支持的节目个数
+ public static final int MAX_CALL_ID_LEN = 64; // 呼叫ID长度
+ public static final int MAX_GD_COUNT = 170;
+ public static final int MAX_DOOR_TIME_SECTION = 4; // 门禁每天分时时间段最大个数
+ public static final int MAX_SCADA_POINT_LIST_INDEX = 8; // 最大SCADADev配置下标个数, 即最大通道
+ public static final int MAX_SCADA_YX_NUM = 128; // 最大遥信个数
+ public static final int MAX_SCADA_YC_NUM = 128; // 最大遥测个数
+ public static final int MAX_SCADA_POINT_INFO_NUM = 8; // 最大点表个数
+ public static final int MAX_NET_SCADA_CAPS_TYPE = 16;
+ public static final int MAX_NET_SCADA_CAPS_NAME = 16;
+ public static final int MAX_SCADA_ID_NUM = 1024; // 监测点位id的最大个数
+ public static final int MAX_SCADA_ID_OF_SENSOR_NUM = 128; // 最大检测点位ID个数
+ public static final int MAX_REMOTEDEVICEINFO_IPADDR_LEN = 128; // 远程设备IP地址最大长度
+ public static final int MAX_REMOTEDEVICEINFO_USERNAME_LEN = 128; // 远程设备用户名最大长度
+ public static final int MAX_REMOTEDEVICEINFO_USERPSW_LENGTH = 128; // 远程设备密码最大长度
+ public static final int MAX_MANUFACTURER_LEN = 32; // 最大的 MAC地址所属制造商长度
+ public static final int MAX_MACHISTORY_SSID_LEN = 24; // 最大的历史SSID长度
+ public static final int MAX_MACHISTORY_SSID_NUM = 5; // 历史SSID的最大个数
+ public static final int CFG_MAX_SN_LEN = 32; // 最大设备序列号长度
+ public static final int CFG_MAX_ACCESS_CONTROL_ADDRESS_LEN = 64; // 最大的地址长度
+ public static final int MAX_MACADDR_NUM = 8; // 最大物理地址个数
+ public static final int MAX_ADD_DEVICE_NUM = 16; // 最大添加设备个数
+ public static final int MAX_LINK_DEVICE_NUM = 1024; // 最大连接设备个数
+ public static final int MAX_DEVICE_CHANNEL_NUM = 1024; // 设备最大通道个数
+ public static final int NET_CFG_MAX_CTRLTYPE_NUM = 16; // 最大道闸控制方式
+ public static final int NET_MAX_ALL_SNAP_CAR_COUNT = 32; // 所有车开闸种类个数
+ public static final int NET_MAX_BURNING_DEV_NUM = 32; // 最大刻录设备个数
+ public static final int NET_BURNING_DEV_NAMELEN = 32; // 刻录设备名字最大长度
+ public static final int PTZ_PRESET_NAME_LEN = 64; // 云台预置点名称长度
+ public static final int NET_RADIOMETRY_DOFIND_MAX = 32; // 热成像温度统计最大个数
+ public static final int CFG_MAX_PTZTOUR_NUM = 64; // 巡航路径数量
+ public static final int CFG_MAX_PTZTOUR_PRESET_NUM = 64; // 巡航路径包含的预置点数量
+ public static final int MAX_PTZ_PRESET_NAME_LEN = 64; // 云台预置点名称长度
+ public static final int MAX_COMPANY_NAME_LEN = 200; // 单位名称最大长度
+ public static final int NET_MAX_PLAYAUDIO_COUNT = 16; // 最大播报内容数目
+ public static final int MAX_TARGET_OBJECT_NUM = 100; // 最大目标物体信息个数
+ public static final int MAX_CROWD_DETECTION_NAME_LEN = 128; // 最大人群密度检测事件名称长度
+ public static final int MAX_CROWD_LIST_NUM = 5; // 最大全局拥挤人群密度列表个数
+ public static final int MAX_REGION_LIST_NUM = 8; // 最大人数超限的报警区域ID列表个数
+ public static final int MAX_CROWD_RECT_LIST = 5; // 矩形描述信息的最大个数
+ public static final int RECT_POINT = 2; // 表示矩形的2个点(左上角与右下角)
+ public static final int MAX_OBJECT_NUM = 32; // 最大物体个数
+ public static final int NET_MATRIX_INTERFACE_LEN = 16; // 信号接口名称长度
+ public static final int NET_MATRIX_MAX_CARDS = 128; // 矩阵子卡最大数量
+ public static final int NET_SPLIT_PIP_BASE = 1000; // 分割模式画中画的基础值
+ public static final int NET_MAX_SPLIT_MODE_NUM = 64; // 最大分割模式数
+ public static final int NET_MATRIX_MAX_CHANNEL_IN = 1500; // 矩阵最大输入通道数
+ public static final int NET_MATRIX_MAX_CHANNEL_OUT = 256; // 矩阵最大输出通道数
+ public static final int NET_DEVICE_NAME_LEN = 64; // 设备名称长度
+ public static final int NET_MAX_CPU_NUM = 16; // 最大CPU数量
+ public static final int NET_MAX_FAN_NUM = 16; // 最大风扇数量
+ public static final int NET_MAX_POWER_NUM = 16; // 最大电源数量
+ public static final int NET_MAX_BATTERY_NUM = 16; // 最大电池数量
+ public static final int NET_MAX_RAID_DEVICE_NAME = 16; // RAID异常信息-RAID设备名称
+ public static final int NET_MAX_TEMPERATURE_NUM = 256; // 最大温度传感器数量
+ public static final int NET_MAX_ISCSI_NAME_LEN = 128; // ISCSI名称长度
+ public static final int NET_VERSION_LEN = 64; // 版本信息长度
+ public static final int NET_MAX_STORAGE_PARTITION_NUM = 32; // 存储分区最大数量
+ public static final int NET_STORAGE_MOUNT_LEN = 64; // 挂载点长度
+ public static final int NET_STORAGE_FILE_SYSTEM_LEN = 16; // 文件系统名称长度
+ public static final int NET_MAX_MEMBER_PER_RAID = 32; // RAID成员最大数量
+ public static final int NET_DEV_ID_LEN_EX = 128; // 设备ID最大长度
+ public static final int NET_MAX_BLOCK_NUM = 32; // 最大区块数量
+ public static final int NET_MAX_SPLIT_WINDOW = 128; // 最大分割窗口数量
+ public static final int NET_FILE_TYPE_LEN = 64; // 文件类型长度
+ public static final int NET_DEV_ID_LEN = 128; // 设备ID最大长度
+ public static final int NET_DEV_NAME_LEN = 128; // 设备名称最大长度
+ public static final int NET_TSCHE_DAY_NUM = 8; // 时间表第一维大小, 表示天数
+ public static final int NET_TSCHE_SEC_NUM = 6; // 时间表第二维大小, 表示时段数
+ public static final int NET_SPLIT_INPUT_NUM = 256; // 设备二级切换时第一级split支持的输入通道数
+ public static final String NET_DEVICE_ID_LOCAL = "Local"; // 本地设备ID
+ public static final String NET_DEVICE_ID_REMOTE = "Remote"; // 远程设备ID
+ public static final String NET_DEVICE_ID_UNIQUE = "Unique"; // 设备内统一编
+ public static final int NET_MAX_NAME_LEN = 16; // 通用名字字符串长度
+ public static final int NET_MAX_PERSON_ID_LEN = 32; // 人员id最大长度
+ public static final int NET_MAX_PERSON_IMAGE_NUM = 48; // 每个人员对应的最大人脸图片数
+ public static final int NET_MAX_PROVINCE_NAME_LEN = 64; // 省份名称最大长度
+ public static final int NET_MAX_CITY_NAME_LEN = 64; // 城市名称最大长度
+ public static final int NET_MAX_PERSON_NAME_LEN = 64; // 人员名字最大长度
+ public static final int MAX_FACE_AREA_NUM = 8; // 最大人脸区域个数
+ public static final int MAX_PATH = 260;
+ public static final int MAX_FACE_DB_NUM = 8; // 最大人脸数据库个数
+ public static final int MAX_GOURP_NUM = 128; // 人脸库最大个数
+ public static final int MAX_AGE_NUM = 2; // 最大年龄个数
+ public static final int MAX_EMOTION_NUM = 8; // 最大表情条件的个数
+ public static final int MAX_FIND_COUNT = 20;
+ public static final int NET_MAX_POLYGON_NUM = 16; // 多边形最大顶点个数
+ public static final int NET_MAX_CANDIDATE_NUM = 50; // 目标识别最大匹配数
+ public static final int MAX_POLYGON_NUM = 20; // 视频分析设备区域顶点个数上限
+ public static final int MAX_CALIBRATEBOX_NUM = 10; // 智能分析校准框个数上限
+ public static final int MAX_NAME_LEN = 128; // 通用名字字符串长度
+ public static final int MAX_EXCLUDEREGION_NUM = 10; // 智能分析检测区域中需要排除的区域个数上限
+ public static final int MAX_SCENE_LIST_SIZE = 32; // 视频分析设备支持的场景类型列表个数上限
+ public static final int MAX_OBJECT_LIST_SIZE = 16; // 视频分析设备支持的检测物体类型列表个数上限
+ public static final int MAX_RULE_LIST_SIZE = 128; // 视频分析设备支持的规则列表个数上限
+ public static final int MAX_ACTION_LIST_SIZE = 16; // 视频分析设备支持的规则的动作类型列表个数上限
+ public static final int MAX_SPECIALDETECT_NUM = 10; // 智能分析特殊检测区域上限
+ public static final int MAX_OBJECT_ATTRIBUTES_SIZE = 16; // 视频分析设备支持的检测物体属性类型列表个数上限
+ public static final int MAX_CATEGORY_TYPE_NUMBER = 128; // 子类别类型数
+ public static final int MAX_ANALYSE_MODULE_NUM = 16; // 视频分析设备最大检测模块个数
+ public static final int MAX_LOG_PATH_LEN = 260; // 日志路径名最大长度
+ public static final int MAX_CHANNELNAME_LEN = 64; // 最大通道名称长度
+ public static final int MAX_VIDEO_CHANNEL_NUM = 256; // 最大通道数256
+ public static final int MAX_PSTN_SERVER_NUM = 8; // 最大报警电话服务器数
+ public static final int MAX_TIME_SCHEDULE_NUM = 8; // 时间表元素个数
+ public static final int MAX_REC_TSECT = 6; // 录像时间段个数
+ public static final int MAX_REC_TSECT_EX = 10; // 录像时间段扩展个数
+ public static final int MAX_NAS_TIME_SECTION = 2; // 网络存储时间段个数
+ public static final int MAX_CHANNEL_COUNT = 16;
+ public static final int MAX_ACCESSCONTROL_NUM = 8; // 最大门禁操作的组合数
+ public static final int MAX_DBKEY_NUM = 64; // 数据库关键字最大值
+ public static final int MAX_SUMMARY_LEN = 1024; // 叠加到JPEG图片的摘要信息最大长度
+ public static final int WEEK_DAY_NUM = 7; // 一周的天数
+ public static final int NET_MAX_FACEDETECT_FEATURE_NUM = 32; // 人脸特征最大个数
+ public static final int NET_MAX_OBJECT_LIST = 16; // 智能分析设备检测到的物体ID个数上限
+ public static final int NET_MAX_RULE_LIST = 16; // 智能分析设备规则个数上限
+ public static final int MAX_HUMANFACE_LIST_SIZE = 8; // 视频分析设备支持的目标检测类型列表个数上限
+ public static final int MAX_FEATURE_LIST_SIZE = 32; // 视频分析设备支持的人脸属性列表个数上限
+ public static final int NET_MAX_DETECT_REGION_NUM = 20; // 规则检测区域最大顶点数
+ public static final int NET_MAX_DETECT_LINE_NUM = 20; // 规则检测线最大顶点数
+ public static final int NET_MAX_TRACK_LINE_NUM = 20; // 物体运动轨迹最大顶点数
+ public static final int NET_MACADDR_LEN = 40; // MAC地址字符串长度
+ public static final int NET_DEV_TYPE_LEN = 32; // 设备型号字符串(如"IPC-F725")长度
+ public static final int NET_DEV_SERIALNO_LEN = 48; // 序列号字符串长度
+ public static final int NET_MAX_URL_LEN = 128; // URL字符串长度
+ public static final int NET_MAX_STRING_LEN = 128;
+ public static final int NET_MACHINE_NAME_NUM = 64; // 机器名称长度
+ public static final int NET_USER_NAME_LENGTH_EX = 16; // 用户名长度
+ public static final int NET_USER_NAME_LENGTH = 8; // 用户名长度
+ public static final int NET_USER_PSW_LENGTH = 8; // 用户密码长度
+ public static final int NET_EVENT_NAME_LEN = 128; // 事件名称长度
+ public static final int NET_MAX_LANE_NUM = 8; // 视频分析设备每个通道对应车道数上限
+ public static final int MAX_DRIVING_DIR_NUM = 16; // 车道行驶方向最大个数
+ public static final int FLOWSTAT_ADDR_NAME = 16; // 上下行地点名长
+ public static final int NET_MAX_DRIVINGDIRECTION = 256; // 行驶方向字符串长度
+ public static final int COMMON_SEAT_MAX_NUMBER = 8; // 默认检测最大座驾个数
+ public static final int NET_MAX_ATTACHMENT_NUM = 8; // 最大车辆物件数量
+ public static final int NET_MAX_ANNUUALINSPECTION_NUM = 8; // 最大年检标识位置
+ public static final int NET_MAX_EVENT_PIC_NUM = 6; // 最大原始图片张数
+ public static final int NET_COMMON_STRING_4 = 4; // 通用字符串长度4
+ public static final int NET_COMMON_STRING_8 = 8; // 通用字符串长度8
+ public static final int NET_COMMON_STRING_16 = 16; // 通用字符串长度16
+ public static final int NET_COMMON_STRING_20 = 20; // 通用字符串长度20
+ public static final int NET_COMMON_STRING_32 = 32; // 通用字符串长度32
+ public static final int NET_COMMON_STRING_64 = 64; // 通用字符串长度64
+ public static final int NET_COMMON_STRING_128 = 128; // 通用字符串长度128
+ public static final int NET_COMMON_STRING_256 = 256; // 通用字符串长度256
+ public static final int NET_COMMON_STRING_512 = 512; // 通用字符串长度512
+ public static final int NET_COMMON_STRING_1024 = 1024; // 通用字符串长度1024
+ public static final int NET_COMMON_STRING_2048 = 2048; // 通用字符串长度2048
+ public static final int MAX_VIDEOSTREAM_NUM = 4; // 最大码流个数
+ public static final int MAX_VIDEO_COVER_NUM = 16; // 最大遮挡区域个数
+ public static final int MAX_VIDEO_IN_ZOOM = 32; // 单通道最大变速配置个数
+ public static final int NET_EVENT_CARD_LEN = 36; // 卡片名称长度
+ public static final int NET_EVENT_MAX_CARD_NUM = 16; // 事件上报信息包含最大卡片个数
+ public static final int MAX_STATUS_NUM = 16; // 交通设备状态最大个数
+ public static final int NET_MAX_CHANMASK = 64; // 通道掩码最大值
+ public static final int NET_CHAN_NAME_LEN = 32; // 通道名长度,DVR DSP能力限制,最多32字节
+ public static final int MAX_LANE_NUM = 8; // 视频分析设备每个通道对应车道数上限
+ public static final int MAX_STAFF_NUM = 20; // 视频分析设备每个通道对应的标尺数上限
+ public static final int MAX_ANALYSE_RULE_NUM = 32; // 视频分析设备最大规则个数
+ public static final int MAX_POLYLINE_NUM = 20; // 视频分析设备折线顶点个数上限
+ public static final int MAX_TEMPLATEREGION_NUM = 32; // 视频分析设备模拟区域信息点对个数上限
+ public static final int POINT_PAIR_NUM = 2; // 视频分析设备模拟区域点对包含的点个数
+ public static final int MAX_VEHICLE_SIZE_LIST = 4; // 视频分析设备车辆大小个数上限
+ public static final int MAX_VEHICLE_TYPE_LIST = 4; // 视频分析设备车辆类型个数上限
+ public static final int MAX_PLATE_TYPE_LIST = 32; // 视频分析设备车牌类型个数上限
+ public static final int MAX_CALIBRATEAREA_NUM = 20; // 视频分析设备标定区域的上限
+ public static final int MAX_ANALYSE_SCENE_NUM = 32; // 视频分析全局配置场景最大数量
+ public static final int MAX_PLATEHINT_NUM = 8; // 车牌字符暗示个数上限
+ public static final int MAX_LIGHT_NUM = 8; // 交通灯个数上限
+ public static final int MAX_LIGHTGROUP_NUM = 8; // 交通灯组个数上限
+ public static final int MAX_LIGHT_TYPE = 8; // 交通灯类型上限
+ public static final int MAX_PARKING_SPACE_NUM = 6; // 最多配置6个车位信息
+ public static final int MAX_SHIELD_AREA_NUM = 16; // 1个车位最多对应16个屏蔽区域
+ public static final int MAX_SCENE_TYPE_LIST_SIZE = 8; // 场景列表中最多支持的场景个数
+ public static final int MAX_LIGHT_DIRECTION = 8; // 交通灯指示方向数上限
+ public static final int CFG_FLOWSTAT_ADDR_NAME = 16; //上下行地点名长
+ public static final int MAX_ACCESS_READER_NUM = 32; // 门禁单个门最大读卡器数量
+ public static final int MAX_ACCESSSUBCONTROLLER_NUM = 64; // 最大门禁分控器数量
+ public static final int MAX_BACKPIC_COUNT = 8; // 最大背景图片个数
+ public static final int NET_WIRELESS_DEVICE_SERIAL_NUMBER_MAX_LEN = 32; // 无线设备序列号最大长度
+ public static final int NET_MAX_CUSTOM_PERSON_INFO_NUM = 4; // 注册人员信息扩展最大个数
+ public static final int NET_MAX_PERSON_INFO_LEN = 64; // 人员扩展信息最大长度
+ public static final int MAX_ALARMEXT_MODULE_NUM = 256; // 最大扩展模块数目
+ public static final int MAX_CALIBRATEAREA_TYPE_NUM = 4; // 标定区域类型上限
+ public static final int MAX_SCENE_SUBTYPE_LEN = 64; // 场景子类型字符串长度
+ public static final int MAX_SCENE_SUBTYPE_NUM = 32; // 场景子类型最大个数
+ public static final int MAX_SUPPORTED_COMP_SIZE = 4; // 最大支持的场景组合项
+ public static final int MAX_SUPPORTED_COMP_DATA = 8; // 每个组合项里最多支持的场景个数
+ public static final int MAX_NUMBER_STAT_MAULT_NUM = 32; // 最大客流量统计场景PD个数
+ public static final int NET_NEW_MAX_RIGHT_NUM = 1024; // 用户权限个数上限
+ public static final int NET_MAX_GROUP_NUM = 20; // 用户组个数上限
+ public static final int NET_MAX_USER_NUM = 200; // 用户个数上限
+ public static final int NET_RIGHT_NAME_LENGTH = 32; // 权限名长度
+ public static final int NET_MEMO_LENGTH = 32; // 备注长度
+ public static final int NET_NEW_USER_NAME_LENGTH = 128; // 用户名长度
+ public static final int NET_NEW_USER_PSW_LENGTH = 128; // 密码
+ public static final int NET_MAX_RIGHT_NUM = 100; // 用户权限个数上限
+ public static final int NET_COMMENT_LENGTH = 100; // 备注信息长度
+ public static final int NET_GROUPID_LENGTH = 64; // group id 信息长度
+ public static final int NET_GROUPNAME_LENGTH = 128; // group name 信息长度
+ public static final int NET_FEATUREVALUE_LENGTH = 128; // 人脸特征 信息长度
+ public static final int MAX_GROUP_ID_LEN = 64; // 最大布控组ID长度
+ public static final int MAX_COLOR_NAME_LEN = 32; // 最大颜色名长度
+ public static final int MAX_COLOR_HEX_LEN = 8; // 最大HEX颜色长度
+ public static final int MAX_LINK_GROUP_NUM = 20; // 联动的布控组最大数量
+ public static final int MAX_PATH_LEN = 260; // 最大路径长度
+ public static final int MAX_RIDER_NUM = 16; // 骑车人数组上限
+ public static final int MAX_ALARM_CHANNEL_NAME_LEN = 64; // 最大报警名称长度
+ public static final int MAX_ATTACHMENT_NUM = 8; // 最大车内物品个数
+ public static final int NET_MAX_FRAMESEQUENCE_NUM = 2; // 最大帧序号个数
+ public static final int NET_MAX_TIMESTAMP_NUM = 2; // 最大时间戳个数
+ public static final int NET_VIDEOANALYSE_SCENES = 32; // 最大场景个数
+ public static final int NET_VIDEOANALYSE_RULES = 64; // 最大规则个数
+ public static final int SDK_EVENT_NAME_LEN = 128; // 事件名称长度
+ public static final int NET_USER_PSW_LENGTH_EX = 16; // 密码
+ public static final int AV_CFG_Device_ID_Len = 64; // 设备ID长度
+ public static final int AV_CFG_Channel_Name_Len = 64; // 通道名称长度
+ public static final int AV_CFG_Monitor_Name_Len = 64; // 电视墙名称长度
+ public static final int AV_CFG_Max_TV_In_Block = 128; // 区块中TV的最大数量
+ public static final int AV_CFG_Max_Block_In_Wall = 128; // 电视墙中区块的最大数量
+ public static final int AV_CFG_IP_Address_Len = 32; // IP 长度
+ public static final int AV_CFG_Protocol_Len = 32; // 协议名长度
+ public static final int AV_CFG_User_Name_Len = 64; // 用户名长度
+ public static final int AV_CFG_Password_Len = 64; // 密码长度
+ public static final int AV_CFG_Serial_Len = 32; // 序列号长度
+ public static final int AV_CFG_Device_Class_Len = 16; // 设备类型长度
+ public static final int AV_CFG_Device_Type_Len = 32; // 设备具体型号长度
+ public static final int AV_CFG_Device_Name_Len = 128; // 机器名称
+ public static final int AV_CFG_Address_Len = 128; // 机器部署地点
+ public static final int AV_CFG_Max_Path = 260; // 路径长度
+ public static final int AV_CFG_Group_Name_Len = 64; // 分组名称长度
+ public static final int AV_CFG_DeviceNo_Len = 32; // 设备编号长度
+ public static final int AV_CFG_Group_Memo_Len = 128; // 分组说明长度
+ public static final int AV_CFG_Max_Channel_Num = 1024; // 最大通道数量
+ public static final int MAX_DEVICE_NAME_LEN = 64; // 机器名称
+ public static final int MAX_DEV_ID_LEN_EX = 128; // 设备ID最大长度
+ public static final int MAX_PATH_STOR = 240; // 远程目录的长度
+ public static final int MAX_REMOTE_DEV_NUM = 256; // 最大远程设备数量
+ public static final int NET_MAX_PLATE_NUMBER_LEN = 32; // 车牌字符长度
+ public static final int NET_MAX_AUTHORITY_LIST_NUM = 16; // 权限列表最大个数
+ public static final int NET_MAX_ALARMOUT_NUM_EX = 32; //报警输出口个数上限扩展
+ public static final int NET_MAX_VIDEO_IN_NUM_EX = 32; //视频输入口个数上限扩展
+ public static final int NET_MAX_SAERCH_IP_NUM = 256; // 最大搜索IP个数
+ public static final int NET_MAX_POS_MAC_NUM = 8; // 刷卡机Mac码最大长度
+ public static final int NET_MAX_BUSCARD_NUM = 64; // 公交卡号最大长度
+ public static final int NET_STORAGE_NAME_LEN = 128; // 存储设备名称长度
+ public static final int NET_MAX_DOOR_NUM = 32; // 最大有权限门禁数目
+ public static final int NET_MAX_TIMESECTION_NUM = 32; // 最大有效时间段数目
+ public static final int NET_MAX_CARDNAME_LEN = 64; // 门禁卡命名最大长度
+ public static final int NET_MAX_CARDNO_LEN = 32; // 门禁卡号最大长度
+ public static final int NET_MAX_USERID_LEN = 32; // 门禁卡用户ID最大长度
+ public static final int NET_MAX_IC_LEN = 32; // 证件最大长度
+ public static final int NET_MAX_QRCODE_LEN = 128; // QRCode 最大长度
+ public static final int NET_MAX_CARD_INFO_LEN = 256; // 卡号信息最大长度
+ public static final int NET_MAX_SIM_LEN = 16; // SIM卡的值的最大长度
+ public static final int NET_MAX_DISKNUM = 256; // 最大硬盘个数
+ public static final int MAX_FACE_DATA_NUM = 20; // 人脸模版最大个数
+ public static final int MAX_FINGERPRINT_NUM = 10; // 最大信息个数
+ public static final int MAX_FACE_DATA_LEN = 2 * 1024; // 人脸模版数据最大长度
+ public static final int MAX_COMMON_STRING_8 = 8; // 通用字符串长度8
+ public static final int MAX_COMMON_STRING_16 = 16; // 通用字符串长度16
+ public static final int MAX_COMMON_STRING_32 = 32; // 通用字符串长度32
+ public static final int MAX_COMMON_STRING_64 = 64; // 通用字符串长度64
+ public static final int MAX_COMMON_STRING_128 = 128; // 通用字符串长度128
+ public static final int MAX_USER_NAME_LEN = 128; // 最大用户名长度
+ public static final int MAX_ROOMNUM_COUNT = 32; // 房间最大个数
+ public static final int MAX_FACE_COUTN = 20; // 人脸模板数据最大个数
+ public static final int MAX_PHOTO_COUNT = 5; // 人脸照片最大个数
+ public static final int MAX_WINDOWS_COUNT = 16; // 诱导屏最大窗口个数
+ public static final int MAX_CLASS_NUMBER_LEN = 32; // 最大班级长度
+ public static final int MAX_PHONENUMBER_LEN = 16; // 最大电话长度
+ public static final int MAX_NASFILE_NUM = 8; // 最大NAS文件个数
+ public static final int MAX_CELL_PHONE_NUMBER_LEN = 32; // 最大手机号长度
+ public static final int MAX_MAIL_LEN = 64; // 邮箱最大长度
+ public static final int MAX_PWD_LEN = 128; // 最大密码长度
+ public static final int MAX_ACCESS_FLOOR_NUM = 64; // 最大楼层数量
+ public static final int MAX_ORDER_NUMBER = 6; // 排序规则的最大数量
+ public static final int MAX_NUMBER_REGISTER_INFO = 32;
+ public static final int MAX_COMPANION_CARD_NUM = 6; // 陪同者卡号最大个数
+ public static final int CFG_COMMON_STRING_8 = 8; // 通用字符串长度8
+ public static final int CFG_COMMON_STRING_16 = 16; // 通用字符串长度16
+ public static final int CFG_COMMON_STRING_32 = 32; // 通用字符串长度32
+ public static final int CFG_COMMON_STRING_64 = 64; // 通用字符串长度64
+ public static final int CFG_COMMON_STRING_128 = 128; // 通用字符串长度128
+ public static final int CFG_COMMON_STRING_256 = 256; // 通用字符串长度256
+ public static final int CFG_COMMON_STRING_512 = 512; // 通用字符串长度512
+ public static final int MAX_COILCONFIG = 3; // 智能交通车检器线圈配置上限
+ public static final int MAX_DETECTOR = 6; // 智能交通车检器配置上限
+ public static final int MAX_VIOLATIONCODE = 16; // 智能交通违章代码长度上限
+ public static final int MAX_LANE_CONFIG_NUMBER = 32; // 车道最大个数
+ public static final int MAX_VIOLATIONCODE_DESCRIPT = 64; // 智能交通违章代码长度上限
+ public static final int MAX_ROADWAYNO = 128; // 道路编号 由32个数字和字母构成
+ public static final int MAX_PRIORITY_NUMBER = 256; // 违章优先级包含违章最大个数
+ public static final int MAX_DRIVINGDIRECTION = 256; // 行驶方向字符串长度
+ public static final int MAX_OSD_CUSTOM_SORT_NUM = 8;
+ public static final int MAX_OSD_CUSTOM_SORT_ELEM_NUM = 8;
+ public static final int MAX_OSD_CUSTOM_GENERAL_NUM = 8;
+ public static final int MAX_OSD_ITEM_ATTR_NUM = 8;
+ public static final int MAX_PRE_POX_STR_LEN = 32;
+ public static final int MAX_OSD_CUSTOM_NAME_LEN = 32;
+ public static final int MAX_OSD_CUSTOM_VALUE_LEN = 256;
+ public static final int MAX_CONF_CHAR = 256;
+ public static final int MAX_IVS_EVENT_NUM = 256;
+ public static final int MAX_QUERY_USER_NUM = 4; // 最大查询用户个数
+ public static final int MAX_DEVICE_ADDRESS = 256; // TrafficSnapshot智能交通设备地址
+ public static final int MAX_STORAGE_NUM = 8; // 存储设备最大个数
+ public static final int MAX_PARTITION_NUM = 8; // 最大分区个数
+ public static final int MAX_SCADA_POINT_LIST_INFO_NUM = 256; // 最大点位表路径个数
+ public static final int MAX_SCADA_POINT_LIST_ALARM_INFO_NUM = 256; // 最大点位表报警个数
+ public static final int MAX_LABEL_ARRAY = 1024;
+ public static final int MAX_DELIVERY_FILE_NUM = 128; // 最大投放文件数量
+ public static final int DELIVERY_FILE_URL_LEN = 128; // 投放文件的URL长度
+ public static final int MAX_COMMON_STRING_512 = 512; // 通用字符串长度512
+ public static final int MAX_RFIDELETAG_CARDID_LEN = 16; // RFID 电子车牌标签信息中卡号最大长度
+ public static final int MAX_RFIDELETAG_DATE_LEN = 16; // RFID 电子车牌标签信息中时间最大长度
+ public static final int MAX_REPEATENTERROUTE_NUM = 12; //反潜路径个数
+ public static final int ECK_SCREEN_NUM_MAX = 8; // 智能停车系统出入口机最大屏数量
+ public static final int MAX_CAR_CANDIDATE_NUM = 50;
+ public static final int MAX_REGISTER_NUM = 10; // 主动注册配置最大个数
+ public static final int MAX_SERVER_NUM = 10; // 服务器最大个数
+ public static final int NET_COUNTRY_LENGTH = 3; // 国家缩写长度
+ public static final int MAX_ATTENDANCE_USERNAME_LEN = 36; // 考勤用户名长度
+ public static final int NET_MAX_FINGER_PRINT = 10; // 信息最大个数
+ public static final int MAX_EVENT_ID_LEN = 52; // 国标事件ID最大长度
+ public static final int MAX_HUMANTRAIT_EVENT_LEN = 36; // 补充人体特征上报事件最大长度
+ public static final int MAX_EXIT_MAN_NUM = 32; // 最大支持的离开人员数量
+ public static final int NET_MAX_CALLTYPE_LIST_NUM = 16; // 呼叫类型查询条件列表最大个数
+ public static final int NET_MAX_ENDSTATE_LIST_NUM = 16; // 最终状态查询条件列表最大个数
+ public static final int MAX_CHAN_NUM = 256; // 最大通道数上限
+ public static final int AV_CFG_Max_ChannelRule = 32; // 通道存储规则最大长度, 仅通道部分
+ public static final int MAX_DEV_NUM = 16; // 最大设备上限
+ public static final int CFG_MAX_CHANNEL_NAME_LEN = 256; // 通道名称最大长度
+ public static final int HDBJ_MAX_OBJECTS_NUM = 200; // 检测到目标的最大个数
+ public static final int NET_MAX_RAID_NUM = 16; // Raid最大个数
+ public static final int MAX_PLATE_NUMBER_LEN = 64; // 最大车牌号码长度
+ public static final int MAX_MASTER_OF_CAR_LEN = 32; // 最大车主姓名长度
+ public static final int MAX_USER_TYPE_LEN = 32; // 最大用户类型长度
+ public static final int MAX_SUB_USER_TYPE_LEN = 64; // 最大用户子类型长度
+ public static final int MAX_REMARKS_LEN = 64; // 最大备注信息长度
+ public static final int MAX_PARK_CHARGE_LEN = 32; // 最大停车费长度
+ public static final int MAX_CUSTOM_LEN = 128; // 最大自定义显示长度
+ public static final int MAX_RESOURCE_LEN = 64; // 最大资源文件长度
+ public static final int MAX_PARKINGLOCK_STATE_NUM = 6; // 最大车位锁状态个数
+ public static final int MAX_SMALLPIC_NUM = 32; // 最大小图张数
+ public static final int MAX_PASSWORD_LEN = 64; // 最大密码长度
+ public static final int MAX_OSD_SUMMARY_LEN = 256; // osd叠加内容最大长度
+ public static final int MAX_OSD_TITLE_LEN = 128; // osd叠加标题最大长度
+ public static final int MAX_CUSTOMCASE_NUM = 16; // 自定义案件最大个数
+ public static final int MAX_CARGO_CHANNEL_NUM = 8; // 最大货物通道数
+ public static final int MAX_MAN_LIST_COUNT = 64; // 人员列表最大数量
+ public static final int MAX_SNAP_SHOT_NUM = 8; // 最大抓拍张数
+ public static final int MAX_TEMPERATUREEX_POINT_NUM = 12; //最大监测温度点的个数
+ public static final int NET_DATA_CALL_BACK_VALUE = 1000; // 配合EM_REAL_DATA_TYPE使用,码流转换后的数据回调函数(fRealDataCallBackEx,fDataCallBack)中的参数dwDataType的值
+ public static final int DH_MAX_PERSON_INFO_LEN = 64; // 人员扩展信息最大长度
+ public static final int ARM_DISARM_ZONE_MAX = 256; // 防区最大个数
+ public static final int MAX_AREA_NUMBER = 8; //最大area数量
+ public static final int MAX_AREA_NUMBER_EX = 64; //最大area数量扩展
+ public static final int MAX_SECONDARY_ANALYSE_TASK_NUM = 32; // 二次分析任务支持的最大个数
+ public static final int MAX_SECONDARY_ANALYSE_RULE_NUM = 8; // 二次分析规则支持的最大个数
+ public static final int MAX_SECONDARY_ANALYSE_EVENT_NUM = 8; // 二次分析事件支持的最大个数
+ public static final int NET_MAX_WINDOWS_NUMBER = 64; // 录播主机窗口最大个数
+ public static final int NET_MAX_MODE_NUMBER = 64; // 录播主机模式最大个数
+ public static final int MAX_COURSE_LOGIC_CHANNEL = 64; // 录播主机最大逻辑通道数
+ public static final int MAX_UPGRADER_SERIAL_INFO = 8;
+ public static final int NET_UPGRADE_COUNT_MAX = 256; // 最大升级个数
+ public static final int MAX_PIC_PATH_NUM = 16;
+ public static final int UAV_MAX_SENSOR_NUM = 32; // 最大传感器个数
+ public static final int UAV_MAX_SATELLITE_NUM = 20; // 最多支持卫星个数
+ public static final int CFG_MAX_USER_ID_LEN = 32; // 门禁卡用户ID最大长度
+ public static final int CFG_MAX_METHODEX_NUM = 4; // 开门方式扩展最大个数
+ public static final int CFG_MAX_OPEN_DOOR_GROUP_DETAIL_NUM = 64; // 每一组多人开门组合的最大人数
+ public static final int CFG_MAX_OPEN_DOOR_GROUP_NUM = 4; // 多人开门组合的最大组合数
+ public static final int MAX_ANALYSE_REMAIN_CAPACITY_NUM = 32; // 智能分析最大剩余数量
+ public static final int MAX_ANALYSE_RULE_COUNT = 32; // 最大分析规则条数
+ public static final int MAX_ANALYSE_PICTURE_FILE_NUM = 32; // 图片文件最大数量
+ public static final int MAX_ANALYSE_TASK_NUM = 64; // 最大智能分析任务个数
+ public static final int MAX_ANALYSE_FILTER_EVENT_NUM = 64; // 最大支持过滤的事件个数
+ public static final int MAX_ANALYSE_ALGORITHM_NUM = 16; // 最大算法数量
+ public static final int MAX_ANALYSE_TOTALCAPS_NUM = 32; // 最大的智能分析总能力数量
+ public static final int MAX_COAXIAL_CONTROL_IO_COUNT = 8; // 同轴IO信息最大个数
+ public static final int MAX_FIREWARNING_DETECTRGN_NUM = 32; // 最大火警区域检测的个数
+ public static final int MAX_FIREWARNING_RULE_NUM = 32; // 最大火警规则
+ public static final int MAX_FIREWARNING_DETECTWND_NUM = 8; // 最大火警检测窗口个数
+ public static final int MAX_LANES_NUM = 64; // 灯组监管车位的最多个数
+ public static final int MAX_LIGHT_GROUP_INFO_NUM = 8; // 车位指示灯本机配置的最多个数
+ public static final int MAX_ADDRESS_NUM = 16; // 最大串口地址个数
+ public static final int MAX_DEVICE_ID_LEN = 48; // 最大设备编码长度
+ public static final int MAX_DEVICE_MARK_LEN = 64; // 最大设备描述长度
+ public static final int MAX_BRAND_NAME_LEN = 64; // 最大设备品牌长度
+ public static final int MAX_LIGHTING_NUM = 16;
+ public static final int MAX_LIGHTING_DETAIL_NUM = 16;
+ public static final int NET_MAX_PLATEENABLE_NUM = 16; // 最大使能过车车牌播报个数
+ public static final int NET_MAX_BROADCAST_ELEMENT_NUM = 64; // 最大语音播报元素个数
+ // CLIENT_StartListenEx报警事件
+ public static final int NET_ALARM_ALARM_EX = 0x2101; // 外部报警,数据字节数与设备报警通道个数相同,每个字节表示一个报警通道的报警状态,1为有报警,0为无报警。
+ public static final int NET_MOTION_ALARM_EX = 0x2102; // 动态检测报警,数据字节数与设备视频通道个数相同,每个字节表示一个视频通道的动态检测报警状态,1为有报警,0为无报警。
+ public static final int NET_VIDEOLOST_ALARM_EX = 0x2103; // 视频丢失报警,数据字节数与设备视频通道个数相同,每个字节表示一个视频通道的视频丢失报警状态,1为有报警,0为无报警。
+ public static final int NET_SHELTER_ALARM_EX = 0x2104; // 视频遮挡报警,数据字节数与设备视频通道个数相同,每个字节表示一个视频通道的遮挡(黑屏)报警状态,1为有报警,0为无报警。
+ public static final int NET_DISKFULL_ALARM_EX = 0x2106; // 硬盘满报警,数据为1个字节,1为有硬盘满报警,0为无报警。
+ public static final int NET_DISKERROR_ALARM_EX = 0x2107; // 坏硬盘报警,数据为32个字节,每个字节表示一个硬盘的故障报警状态,1为有报警,0为无报警。
+ public static final int NET_TRAF_CONGESTION_ALARM_EX = 0x211A; // 交通阻塞报警(车辆出现异常停止或者排队)(对应结构体 ALARM_TRAF_CONGESTION_INFO)
+ public static final int NET_ALARM_ACC_POWEROFF = 0x211E; // ACC断电报警,数据为 DWORD 0:ACC通电 1:ACC断电
+ public static final int NET_ALARM_3GFLOW_EXCEED = 0x211F; // 3G流量超出阈值报警(对应结构体 DHDEV_3GFLOW_EXCEED_STATE_INFO)
+ public static final int NET_PTZ_LOCATION_EX = 0x2123; // 云台定位信息(对应结构体 DH_PTZ_LOCATION_INFO)
+ public static final int NET_ALARM_ENCLOSURE = 0x2126; // 电子围栏报警(对应结构体 ALARM_ENCLOSURE_INFO)
+ public static final int NET_ALARM_RAID_STATE = 0x2128; // RAID异常报警(对应结构体 ALARM_RAID_INFO)
+ public static final int NET_ALARM_TRAFFIC_FLUX_STAT = 0x212E; // 交通流量统计报警(对应结构体ALARM_TRAFFIC_FLUX_LANE_INFO)
+ public static final int NET_ALARM_FRONTDISCONNECT = 0x2132; // 前端IPC断网报警(对应结构体 ALARM_FRONTDISCONNET_INFO)
+ public static final int NET_ALARM_BATTERYLOWPOWER = 0x2134; // 电池电量低报警(对应结构体 ALARM_BATTERYLOWPOWER_INFO)
+ public static final int NET_ALARM_TEMPERATURE = 0x2135; // 温度异常报警(对应结构体 ALARM_TEMPERATURE_INFO)
+ public static final int NET_ALARM_STORAGE_LOW_SPACE = 0x2145; // 存储容量不足事件(对应 ALARM_STORAGE_LOW_SPACE_INFO)
+ public static final int NET_ALARM_FAN_SPEED = 0x2162; // 风扇转速异常事件(对应 ALARM_FAN_SPEED)
+ public static final int NET_ALARM_STORAGE_FAILURE_EX = 0x2163; // 存储错误报警(对应结构体 ALARM_STORAGE_FAILURE_EX)
+ public static final int NET_ALARM_TALKING_INVITE = 0x2171; // 设备请求对方发起对讲事件(对应结构体 ALARM_TALKING_INVITE_INFO)
+ public static final int NET_ALARM_ALARM_EX2 = 0x2175; // 本地报警事件(对应结构体ALARM_ALARM_INFO_EX2,对NET_ALARM_ALARM_EX升级)
+ public static final int NET_EVENT_LEFT_DETECTION = 0x218a; // 物品遗留事件( 对应结构体 ALARM_EVENT_LEFT_INFO )
+ public static final int NET_ALARM_IPC = 0x218c; // IPC报警,IPC通过DVR或NVR上报的本地报警(对应结构体 ALARM_IPC_INFO)
+ public static final int NET_EVENT_TAKENAWAYDETECTION = 0x218d; // 物品搬移事件(对应结构体 ALARM_TAKENAWAY_DETECTION_INFO)
+ public static final int NET_EVENT_VIDEOABNORMALDETECTION = 0x218e; // 视频异常事件(对应ALARM_VIDEOABNORMAL_DETECTION_INFO)
+ public static final int NET_ALARM_MOVEDETECTION = 0x2193; // 移动事件(对应ALARM_MOVE_DETECTION_INFO)
+ public static final int NET_ALARM_WANDERDETECTION = 0x2194; // 徘徊事件(对应ALARM_WANDERDETECTION_INFO)
+ public static final int NET_ALARM_KEYPAD_TAMPER = 0x2199; // 键盘防拆报警/恢复(对应ALARM_KEYPAD_TAMPER_INFO)
+ public static final int NET_ALARM_USER_PASS_CONFIRM = 0x21A2; // 用户通过闸机进入或离开事件(对应结构体 NET_ALARM_USER_PASS_CONFIRM_INFO)
+ public static final int NET_ALARM_REID_CLUSTER_STATE = 0x21A5; // 聚档状态事件(对应结构体 NET_ALARM_REID_CLUSTER_STATE_INFO)
+ public static final int NET_CONFIG_RESULT_EVENT_EX = 0x3000; // 修改配置的返回码;返回结构见 DEV_SET_RESULT
+ public static final int NET_ALARM_GYROABNORMALATTITUDE = 0x3011; // 车辆的紧急制动、侧翻等状态导致的姿态异常进行报警(对应 ALARM_GYROABNORMALATTITUDE_INFO)
+ public static final int NET_START_LISTEN_FINISH_EVENT = 0x300c; // 订阅事件接口完成异步通知事件, 信息为 START_LISTEN_FINISH_RESULT_INFO
+ public static final int NET_ALARM_STORAGE_NOT_EXIST = 0x3167; // 存储组不存在事件(对应结构体 ALARM_STORAGE_NOT_EXIST_INFO)
+ public static final int NET_ALARM_SCADA_DEV_ALARM = 0x31a2; // 检测采集设备报警事件(对应结构体 ALARM_SCADA_DEV_INFO)
+ public static final int NET_ALARM_PARKING_CARD = 0x31a4; // 停车刷卡事件(对应结构体 ALARM_PARKING_CARD)
+ public static final int NET_ALARM_VEHICLE_ACC = 0x31a6; // 车辆ACC报警事件(对应结构体 ALARM_VEHICLE_ACC_INFO)
+ public static final int NET_ALARM_HEATIMG_TEMPER = 0x31aa; // 热成像测温点温度异常报警事件(对应结构体 ALARM_HEATIMG_TEMPER_INFO)
+ public static final int NET_ALARM_NEW_FILE = 0x31b3; // 新文件事件(对应 ALARM_NEW_FILE_INFO)
+ public static final int NET_ALARM_HUMAM_NUMBER_STATISTIC = 0x31cc; // 人数量/客流量统计事件 (对应结构体 ALARM_HUMAN_NUMBER_STATISTIC_INFO)
+ public static final int NET_ALARM_IP_CONFLICT = 0x3170; // IP冲突事件(对应结构体 ALARM_IP_CONFLICT_INFO)
+ public static final int NET_ALARM_ARMMODE_CHANGE_EVENT = 0x3175; // 布撤防状态变化事件(对应结构体 ALARM_ARMMODE_CHANGE_INFO)
+ public static final int NET_ALARM_ACCESS_CTL_NOT_CLOSE = 0x3177; // 门禁未关事件(对应结构体 ALARM_ACCESS_CTL_NOT_CLOSE_INFO)
+ public static final int NET_ALARM_ACCESS_CTL_BREAK_IN = 0x3178; // 闯入事件(对应结构体 ALARM_ACCESS_CTL_BREAK_IN_INFO)
+ public static final int NET_ALARM_ACCESS_CTL_EVENT = 0x3181; // 门禁事件(对应结构体 ALARM_ACCESS_CTL_EVENT_INFO)
+ public static final int NET_URGENCY_ALARM_EX2 = 0x3182; // 紧急报警EX2(对 NET_URGENCY_ALARM_EX 的升级,对应结构体 ALARM_URGENCY_ALARM_EX2, 人为触发的紧急事件, 一般处理是联动外部通讯功能请求帮助
+ public static final int NET_ALARM_ACCESS_CTL_STATUS = 0x3185; // 门禁状态事件(对应结构体 ALARM_ACCESS_CTL_STATUS_INFO)
+ public static final int NET_ALARM_ALARMCLEAR = 0x3187; // 消警事件(对应结构体 ALARM_ALARMCLEAR_INFO )
+ public static final int NET_ALARM_TALKING_HANGUP = 0x3189; // 设备主动挂断对讲事件(对应结构体ALARM_TALKING_HANGUP_INFO)
+ public static final int NET_ALARM_RCEMERGENCY_CALL = 0x318b; // 紧急呼叫报警事件(对应结构体 ALARM_RCEMERGENCY_CALL_INFO)
+ public static final int NET_ALARM_FINGER_PRINT = 0x318d; // 获取信息事件(对应结构体 ALARM_CAPTURE_FINGER_PRINT_INFO)
+ public static final int NET_ALARM_LOGIN_FAILIUR = 0x3194; // 登陆失败事件(对应结构体ALARM_LOGIN_FAILIUR_INFO)
+ public static final int NET_ALARM_MODULE_LOST = 0x3195; // 扩展模块掉线事件(对应结构体 ALARM_MODULE_LOST_INFO)
+ public static final int NET_ALARM_ENCLOSURE_ALARM = 0x319B; // 电子围栏事件(对应结构体 ALARM_ENCLOSURE_ALARM_INFO)
+ public static final int NET_ALARM_BUS_SHARP_ACCELERATE = 0x31ae; // 车辆急加速事件(对应结构体 ALARM_BUS_SHARP_ACCELERATE_INFO)
+ public static final int NET_ALARM_BUS_SHARP_DECELERATE = 0x31af; // 车辆急减速事件(对应结构体 ALARM_BUS_SHARP_DECELERATE_INFO)
+ public static final int NET_ALARM_ACCESS_CARD_OPERATE = 0x31b0; // 门禁卡数据操作事件(对应结构体ALARM_ACCESS_CARD_OPERATE_INFO)
+ public static final int NET_ALARM_FIREWARNING = 0x31b5; // 热成像着火点事件 (对应结构体 ALARM_FIREWARNING_INFO)
+ public static final int NET_ALARM_WIFI_SEARCH = 0x31c7; // 获取到周围环境中WIFI设备上报事件(对应结构体 ALARM_WIFI_SEARCH_INFO)
+ public static final int NET_ALARM_HOTSPOT_WARNING = 0X31d8; // 热成像热点异常报警(对应结构体 ALARM_HOTSPOT_WARNING_INFO)
+ public static final int NET_ALARM_COLDSPOT_WARNING = 0X31d9; // 热成像冷点异常报警(对应结构体 ALARM_COLDSPOT_WARNING_INFO)
+ public static final int NET_ALARM_FIREWARNING_INFO = 0X31da; // 热成像火情事件信息上报(对应结构体 ALARM_FIREWARNING_INFO_DETAIL)
+ public static final int NET_ALARM_RADAR_HIGH_SPEED = 0x31df; // 雷达监测超速报警事件 智能楼宇专用 (对应结构体 ALARM_RADAR_HIGH_SPEED_INFO)
+ public static final int NET_ALARM_RAID_STATE_EX = 0x31fc; // RAID异常报警(对应结构体 ALARM_RAID_INFO_EX)
+ public static final int NET_ALARM_STORAGE_IPC_FAILURE = 0x31fd; // IPC的存储介质故障事件(IPC SD卡异常)(对应结构体 ALARM_STORAGE_IPC_FAILURE_INFO)
+ public static final int NET_ALARM_POLLING_ALARM = 0x31e0; // 设备巡检报警事件 智能楼宇专用 (对应结构体 ALARM_POLLING_ALARM_INFO)
+ public static final int NET_ALARM_TRAFFICSTROBESTATE = 0x31e2; // 道闸栏状态事件(对应结构体 ALARM_TRAFFICSTROBESTATE_INFO)
+ public static final int NET_ALARM_WIFI_VIRTUALINFO_SEARCH = 0x31ef; // WIFI虚拟身份上报事件(对应结构体 ALARM_WIFI_VIRTUALINFO_SEARCH_INFO)
+ public static final int NET_ALARM_USER_LOCK_EVENT = 0x31f9; // 用户锁定报警事件(对应结构体 ALARM_USER_LOCK_EVENT_INFO)
+ public static final int NET_ALARM_GPS_NOT_ALIGNED = 0x321d; // GPS未定位报警(对应结构体 ALARM_GPS_NOT_ALIGNED_INFO)
+ public static final int NET_ALARM_TRAFFIC_VEHICLE_POSITION = 0x323c; // 车辆位置事件(对应的结构体 ALARM_TRAFFIC_VEHICLE_POSITION)
+ public static final int NET_ALARM_VIDEOBLIND = 0x323e; // 视频遮挡事件(对应结构体 ALARM_VIDEO_BLIND_INFO)
+ public static final int NET_ALARM_AUDIO_ANOMALY = 0x2178; // 音频异常事件(对应结构体ALARM_AUDIO_ANOMALY)
+ public static final int NET_ALARM_DRIVER_NOTCONFIRM = 0x323f; // 司机未按确认按钮报警事件(对应结构体 ALARM_DRIVER_NOTCONFIRM_INFO)
+ public static final int NET_ALARM_FACEINFO_COLLECT = 0x3240; // 人脸信息录入事件(对应 ALARM_FACEINFO_COLLECT_INFO)
+ public static final int NET_ALARM_HIGH_SPEED = 0x3241; // 车辆超速报警事件(对应 ALARM_HIGH_SPEED_INFO )
+ public static final int NET_ALARM_VIDEO_LOSS = 0x3242; // 视频丢失事件(对应 ALARM_VIDEO_LOSS_INFO )
+ public static final int NET_ALARM_DOWNLOAD_REMOTE_FILE = 0x3301; // 下载远程文件事件(对应 ALARM_DOWNLOAD_REMOTE_FILE_INFO)
+ public static final int NET_ALARM_TRAFFIC_LINKAGEALARM = 0x3353; // 各种违章事件联动报警输出事件(对应结构体 ALARM_TRAFFIC_LINKAGEALARM_INFO)
+ public static final int NET_ALARM_LABELINFO = 0x3233; // IPC新增(2017.4),RFID标签信息采集事件(对应结构体 ALARM_LABELINFO)
+ public static final int NET_ALARM_FLOATINGOBJECT_DETECTION = 0x3442; // 漂浮物检测事件(对应结构体 ALARM_FLOATINGOBJECT_DETECTION_INFO)
+ public static final int NET_ALARM_WATER_LEVEL_DETECTION = 0x3443; // 水位检测事件(对应结构体 ALARM_WATER_LEVEL_DETECTION_INFO)
+ public static final int NET_ALARM_TRAFFIC_JUNCTION = 0x3446; // 交通路口事件(对应结构体 ALARM_TAFFIC_JUNCTION_INFO)
+ public static final int NET_EVENT_CROSSLINE_DETECTION = 0x2188; // 警戒线事件( 对应结构体 ALARM_EVENT_CROSSLINE_INFO )
+ public static final int NET_EVENT_CROSSREGION_DETECTION = 0x2189; // 警戒区事件( 对应结构体 ALARM_EVENT_CROSSREGION_INFO )
+ public static final int NET_ALARM_POWERFAULT = 0x3172; // 电源故障事件(对应结构体ALARM_POWERFAULT_INFO)
+ public static final int NET_ALARM_CHASSISINTRUDED = 0x3173; // 机箱入侵(防拆)报警事件(对应结构体ALARM_CHASSISINTRUDED_INFO)
+ public static final int NET_ALARM_BYPASSMODE_CHANGE_EVENT = 0x3176; // 旁路状态变化事件(对应结构体ALARM_BYPASSMODE_CHANGE_INFO)
+ public static final int NET_ALARM_ACCESS_CTL_REPEAT_ENTER = 0x3179; // 反复进入事件(对应结构体ALARM_ACCESS_CTL_REPEAT_ENTER_INFO)
+ public static final int NET_ALARM_ACCESS_CTL_DURESS = 0x3180; // 胁迫卡刷卡事件(对应结构体ALARM_ACCESS_CTL_DURESS_INFO)
+ public static final int NET_ALARM_INPUT_SOURCE_SIGNAL = 0x3183; // 报警输入源信号事件(只要有输入就会产生该事件, 不论防区当前的模式,无法屏蔽, 对应 ALARM_INPUT_SOURCE_SIGNAL_INFO )
+ public static final int NET_ALARM_OPENDOORGROUP = 0x318c; // 多人组合开门事件(对应结构体ALARM_OPEN_DOOR_GROUP_INFO)
+ public static final int NET_ALARM_SUBSYSTEM_STATE_CHANGE = 0x318f; // 子系统状态改变事件(对应结构体ALARM_SUBSYSTEM_STATE_CHANGE_INFO)
+ public static final int NET_ALARM_PSTN_BREAK_LINE = 0x3196; // PSTN掉线事件(对应结构体ALARM_PSTN_BREAK_LINE_INFO)
+ public static final int NET_ALARM_DEFENCE_ARMMODE_CHANGE = 0x31d2; // 防区布撤防状态改变事件(对应结构体 ALARM_DEFENCE_ARMMODECHANGE_INFO)
+ public static final int NET_ALARM_SUBSYSTEM_ARMMODE_CHANGE = 0x31d3; // 子系统布撤防状态改变事件(对应结构体 ALARM_SUBSYSTEM_ARMMODECHANGE_INFO)
+ public static final int NET_ALARM_SENSOR_ABNORMAL = 0x31dc; // 探测器异常报警(对应结构体 ALARM_SENSOR_ABNORMAL_INFO)
+ public static final int NET_ALARM_CROWD_DETECTION = 0x3305; // 人群密度检测事件(对应结构体 ALARM_CROWD_DETECTION_INFO)
+ public static final int NET_ALARM_FACE_FEATURE_ABSTRACT = 0x3306; // 目标特征向量重建结果事件(对应结构体 ALARM_FACE_FEATURE_ABSTRACT_INFO)
+ public static final int NET_ALARM_CITIZEN_PICTURE_COMPARE = 0x330d; // 人证比对事件(对应结构体 ALARM_CITIZEN_PICTURE_COMPARE_INFO)
+ public static final int NET_ALARM_MAN_NUM_DETECTION = 0x3223; // 立体视觉区域内人数统计报警(对应结构体ALARM_MAN_NUM_INFO)
+ public static final int NET_ALARM_ENGINE_FAILURE_STATUS = 0x344F; // 发动机故障状态上报(对应 ALARM_ENGINE_FAILURE_STATUS_INFO)
+ public static final int NET_ALARM_ANATOMY_TEMP_DETECT = 0x3454; // 人体温智能检测事件(对应结构体 ALARM_ANATOMY_TEMP_DETECT_INFO)
+ public static final int NET_ALARM_REGULATOR_ABNORMAL = 0x3455; // 标准黑体源异常报警事件(对应结构体 ALARM_REGULATOR_ABNORMAL_INFO)
+ public static final int NET_ALARM_MINIINDOOR_RADAR_ALARM = 0x34A7; // Mini雷达报警事件(对应结构体 NET_ALARM_MINIINDOOR_RADAR_ALARM_INFO)
+ public static final int NET_ALARM_QR_CODE_CHECK = 0x335a; // 二维码上报事件(对应结构体 ALARM_QR_CODE_CHECK_INFO)
+ public static final int NET_ALARM_TRAFFIC_XINKONG = 0x335f; // 交通态势报警事件(对接结构体 ALARM_TRAFFIC_XINKONG_INFO)
+ public static final int NET_ALARM_WIRELESSDEV_LOWPOWER = 0x31C8; // 获取无线设备低电量上报事件(对应结构体ALARM_WIRELESSDEV_LOWPOWER_INFO)
+ public static final int NET_ALARM_INTELLI_MODULE_HIGH_TEMP = 0x34BB; // 智能模块温度异常事件(对应结构体 NET_ALARM_INTELLI_MODULE_HIGH_TEMP_INFO)
+ public static final int NET_ALARM_INTELLI_MODULE_OFFLINE = 0x34BC; // 智能模块断线事件(对应结构体 NET_ALARM_INTELLI_MODULE_OFFLINE_INFO)
+ public static final int NET_ALARM_RF_JAMMING = 0x34C0; // RF干扰事件(对应结构体 NET_ALARM_RF_JAMMING_INFO)
+ public static final int NET_ALARM_ARMING_FAILURE = 0x34C1; // 布防失败事件(对应结构体 NET_ALARM_ARMING_FAILURE_INFO)
+ public static final int NET_ALARM_USER_MODIFIED = 0x34C2; // 用户信息被修改(增加、删除、修改)事件(对应结构体 NET_ALARM_USER_MODIFIED_INFO)
+ public static final int NET_ALARM_MANUAL_TEST = 0x34C3; // 手动测试事件(对应结构体 NET_ALARM_MANUAL_TEST_INFO)
+ public static final int NET_ALARM_DEVICE_MODIFIED = 0x34C4; // 设备设息修改(增加、删除、修改)事件(对应结构体 NET_ALARM_DEVICE_MODIFIED_INFO)
+ public static final int NET_ALARM_ATS_FAULT = 0x34C5; // 报警传输系统故障事件(对应结构体 NET_ALARM_ATS_FAULT_INFO)
+ public static final int NET_ALARM_ARC_OFFLINE = 0x34C6; // 报警接收中心离线事件(对应结构体 NET_ALARM_ARC_OFFLINE_INFO)
+ public static final int NET_ALARM_WIFI_FAILURE = 0x34C7; // wifi故障事件(对应结构体 NET_ALARM_WIFI_FAILURE_INFO)
+ public static final int NET_ALARM_OVER_TEMPERATURE = 0x34C8; // 超温报警事件(对应结构体 NET_ALARM_OVER_TEMPERATURE_INFO)
+ public static final int NET_ALARM_WIRELESSDEV_POWERLESS = 0x3498; // 探测器主电丢失事件 (对应结构体 ALARM_WIRELESSDEV_POWERLESS_INFO)
+ public static final int NET_ALARM_KEYPAD_LOCK = 0x219E; // 键盘锁定事件(对应结构体 ALARM_KEYPAD_LOCK_INFO)
+ public static final int NET_ALARM_BETWEENRULE_TEMP_DIFF = 0x31d6; // 热成像规则间温差异常报警(对应结构体 ALARM_BETWEENRULE_DIFFTEMPER_INFO)
+ public static final int DH_ALARM_USERLOCK = 0x3300; // 用户锁定报警事件(对应 ALARM_USERLOCK_INFO)
+ public static final int NET_ALARM_AREAARM_MODECHANGE = 0x330e; // 区域防区模式改变(对应结构体ALARM_AREAARM_MODECHANGE_INFO)
+ public static final int NET_ALARM_AREAALARM = 0x3310; // 区域报警(对应结构体ALARM_AREAALARM_INFO)
+ public static final int NET_ALARM_RADAR_REGIONDETECTION = 0x3370; // 雷达区域检测事件(对应结构体 ALARM_RADAR_REGIONDETECTION_INFO)
+ public static final int NET_ALARM_TRAFFIC_PARKING_TIMEOUT = 0x334C; // 停车时长超限事件(对应的结构体 ALARM_TRAFFIC_PARKING_TIMEOUT_INFO)
+ public static final int NET_ALARM_TRAFFIC_SUSPICIOUSCAR = 0x31a7; // 嫌疑车辆上报事件(对应结构体 ALARM_TRAFFIC_SUSPICIOUSCAR_INFO)
+ public static final int NET_ALARM_PARKING_LOT_STATUS_DETECTION = 0x3451; // 室外停车位状态检测事件 (对应结构体 ALARM_REGION_PARKING_TIMEOUT_INFO)
+ public static final int NET_ALARM_REGION_PARKING_TIMEOUT = 0x3460; // 区间车位停车超时(对应结构体 ALARM_REGION_PARKING_TIMEOUT_INFO)
+ public static final int NET_ALARM_REGION_PARKING_NO_ENTRY_RECORD = 0x3461; // 区间车位停车,检测到车辆驶出区域时没有匹配到入场信息(对应结构体 ALARM_REGION_PARKING_NO_ENTRY_RECORD_INFO)
+ public static final int NET_ALARM_TRAFFIC_LIGHT_STATE = 0x3458; // 交通灯状态报警(对应 ALARM_TRAFFIC_LIGHT_STATE_INFO)
+ public static final int NET_ALARM_VEHICLE_INOUT = 0x346A; // 车辆出入事件(对应结构体 ALARM_VEHICLE_INOUT_INFO)
+ public static final int NET_ALARM_FIRE_DETECTION = 0x343D; // 火警事件(对于的结构体 ALARM_FIRE_DETECTION_INFO)
+ public static final int NET_ALARM_WORKSUIT_FEATURE_ABSTRACT = 0x3481; // 工装特征向量建模结果上报事件(对应结构体ALARM_WORKSUIT_FEATURE_ABSTRACT_INFO)
+ public static final int NET_ALARM_TRAFFIC_FLOW_QUEUE = 0x349C; // 交通路口排队事件(对应结构体 ALARM_TRAFFIC_FLOW_QUEUE_INFO)
+ public static final int NET_ALARM_TRAFFIC_FLOW_JUNTION = 0x349D; // 交通路口过车事件(对应结构体 ALARM_TRAFFIC_FLOW_JUNTION_INFO)
+ public static final int NET_ALARM_TRAFFIC_FLOW_VEHICLE_STOP = 0x349E; // 交通路口停车事件(对应结构体 ALARM_TRAFFIC_FLOW_VEHICLE_STOP_INFO)
+ public static final int NET_ALARM_TRAFFIC_FLOW_STAT = 0x349F; // 交通路口车道统计事件(对应结构体 ALARM_TRAFFIC_FLOW_STAT_INFO)
+ public static final int NET_ALARM_TRAFFIC_FLOW_STAT_EX = 0x34A0; // 交通路口车道统计拓展事件(对应结构体 ALARM_TRAFFIC_FLOW_STAT_EX_INFO)
+ public static final int NET_ALARM_DYNAMIC_PWDLOCK_UPLOAD_RANDOMCODE = 0x34B5; // 密码锁上报随机码事件(对应结构体 NET_ALARM_DYNAMIC_LOCK_UPLOAD_RANDOMCODE_INFO)
+ public static final int NET_ALARM_DYNAMIC_PWDLOCK_CLOSE = 0x34B7; // 密码锁闭锁事件(对应结构体 NET_ALARM_DYNAMIC_PWDLOCK_CLOSE_INFO)
+ public static final int NET_ALARM_HUMIDITY_ALARM = 0x3490; /// 湿度报警事件(对应结构体 ALARM_HUMIDITY_ALARM_INFO)
+ public static final int NET_ALARM_RTSC_PHASE_RUNING = 0x5001; // RTSC跑动暂停事件(对应ALARM_RTSC_PHASE_RUNNING_INFO)
+ public static final int NET_ALARM_RTSC_LAMP_RUNING = 0x5002; // RTSC灯暂停事件(对应ALARM_RTSC_LAMP_RUNNING_INFO)
+ public static final int NET_ALARM_RTSC_RUNING = 0x5003; // 信号机运行事件(对应ALARM_RTSC_RUNNING_INFO)
+ public static final int NET_ALARM_RTSC_TRAFFIC = 0x5004; // 信号机交通信息事件(对应ALARM_RTSC_TRAFFIC_INFO)
+ public static final int NET_ALARM_DRASTIC_MOTION = 0x34F4; //剧烈运动报警(对应结构体 NET_ALARM_DRASTIC_MOTION_INFO)
+ public static final int NET_ALARM_OPEN_CLOSE_DOOR_DETECTION = 0x34F0; //反复开关门事件(对应结构体 NET_ALARM_OPEN_CLOSE_DOOR_DETECTION_INFO)
+ public static final int NET_ALARM_TRAPPED_IN_LIFT_DETECTION = 0x34E3; //电梯困人检测(对应 NET_ALARM_TRAPPED_IN_LIFT_DETECTION_INFO)
+ public static final int NET_ALARM_DOOR_STATE_DETECTION = 0x34E0; //开关门检测事件(对应 NET_ALARM_DOOR_STATE_DETECTION_INFO)
+ public static final int NET_ALARM_CITY_MOTORPARKING = 0x3477; //城市机动车违停事件(对应结构体 ALARM_CITY_MOTORPARKING_INFO)
+ public static final int NET_ALARM_NONMOTOR_ENTRYING = 0x3474; //非机动车进入电梯事件(对应 ALARM_NONMOTOR_ENTRYING_INFO)
+ public static final int NET_ALARM_REQUEST_IDLE_MODE = 0x34B1; //请求进入休眠模式事件(对应结构体 NET_ALARM_REQUEST_IDLE_MODE)
+ public static final int NET_ALARM_FORCE_INTO_IDLE_MODE = 0x34B2; //强制进入休眠模式通知(对应结构体 NET_ALARM_FORCE_INTO_IDLE_MODE)
+ public static final int NET_ALARM_XRAY_PIP_COMMUNICATION_ABNORMITY = 0x7001; //X射线画中画通讯异常事件(对应结构体ALARM_XRAY_PIP_COMMUNICATION_ABNORMITY_INFO)
+ public static final int NET_ALARM_XRAY_ACQUISITION_SYSTEM_ABNORMITY = 0x7002; //X光机图像采集系统通信异常事件(对应结构体ALARM_XRAY_ACQUISITION_SYSTEM_ABNORMITY_INFO)
+ public static final int NET_ALARM_XRAY_EMERGENCY_STOP = 0x7003; //X光机紧急停止事件(对应结构体ALARM_XRAY_EMERGENCY_STOP_INFO)
+ public static final int NET_ALARM_XRAY_DETECTOR_PROTECTION_OPEN = 0x7004; //X光机接收器件防护装置打开事件(对应结构体ALARM_XRAY_DETECTOR_PROTECTION_OPEN_INFO)
+ public static final int NET_ALARM_XRAY_MACHINE_SHELL_OPEN = 0x7005; //X光机外罩打开事件(对应结构体ALARM_XRAY_MACHINE_SHELL_OPEN_INFO)
+ public static final int NET_ALARM_XRAY_KEYBOARD_ABNORMITY = 0x7006; //X光机操作键盘通信异常事件(对应结构体ALARM_XRAY_KEYBOARD_ABNORMITY_INFO)
+ public static final int NET_ALARM_XRAY_TRANSMISSION_BELT_ABNORMITY = 0x7007; //X光机图像传送带状态异常事件(对应结构体ALARM_XRAY_TRANSMISSION_BELT_ABNORMITY_INFO)
+ public static final int NET_ALARM_POWER_GROUND_DETECTION_ABNORMAL = 0x7008; //X光机接地异常检测事件(对应结构体ALARM_POWER_GROUND_DETECTION_ABNORMAL_INFO)
+ public static final int NET_ALARM_XRAY_SOURCE_ABNORMITY = 0x7009; //X光机X射线发生器故障事件(对应结构体ALARM_XRAY_SOURCE_ABNORMITY_INFO)
+ public static final int NET_ALARM_TALKING_CANCELCALL = 0x3303; //设备呼叫中取消呼叫事件(对应结构体 ALARM_TALKING_CANCELCALL_INFO)
+ public static final int NET_ALARM_INVITE_TIMEOUT = 0x34FC; //语音呼叫超时事件(对应结构体 NET_ALARM_INVITE_TIMEOUT_INFO)
+ public static final int NET_ALARM_XRAY_EMERGENCY_ALARM = 0x34DE; //X光机一键报警事件(对应 NET_ALARM_XRAY_EMERGENCY_ALARM_INFO)
+ public static final int NET_ALARM_TRAFFIC_PARKING = 0x31f4; //违章停车事件(对应结构体 ALARM_TRAFFIC_PARKING_INFO)
+ public static final int NET_ALARM_HY_FIRE_CONTROL_DISMANTLE_FAULT = 0x6008; //消防设备拆除事件(对应ALARM_HY_FIRE_CONTROL_DISMANTLE_FAULT_INFO)
+ public static final int NET_ALARM_HUMAN_TRAIT = 0x34F6; //人员信息事件(对应结构体 NET_ALARM_HUMAN_TRAIT_INFO)
+ public static final int NET_ALARM_WATER_SPEED_DETECTION = 0x348F; //水流速检测事件(对应结构体 ALARM_WATER_SPEED_DETECTION_INFO)
+ public static final int NET_EVENT_MOTIONDETECT = 0x218f; //视频移动侦测事件(对应结构体 ALARM_MOTIONDETECT_INFO)
+ public static final int NET_ALARM_PROFILE_ALARM_TRANSMIT = 0x31a5; //报警传输事件(对应结构体ALARM_PROFILE_ALARM_TRANSMIT_INFO)
+ public static final int NET_ALARM_GRAIN_HEIGHT_DETECTION = 0x34EF; //动粮检测事件(对应结构体 NET_ALARM_GRAIN_HEIGHT_DETECTION_INFO)
+ public static final int NET_ALARM_ASGFOLLOWING = 0x3022; //闸机尾随报警事件( 对应结构体 ALARM_ASGFOLLOWING_INFO )
+ public static final int NET_ALARM_ASGCLIMBOVER = 0x3023; //闸机翻越报警事件( 对应结构体 ALARM_ASGCLIMBOVER_INFO )
+ public static final int NET_EVENT_FACE_DETECTION = 0x218b; //目标检测事件( 对应结构体 ALARM_EVENT_FACE_INFO )
+ public static final int NET_ALARM_ELEVATOR_ALARM = 0x34F1; //电梯异常报警事件(对应结构体 NET_ALARM_ELEVATOR_ALARM_INFO)
+ public static final int NET_ALARM_ELEVATOR_WORK = 0x21AC; //上报电梯运行数据报警(对应结构体 NET_ALARM_ELEVATOR_WORK_INFO)
+ public static final int NET_ALARM_TRAFFIC_CAR_PASSING = 0x34A5; //车辆进出虚拟线圈状态事件(对应结构体 ALARM_TRAFFIC_CAR_PASSING_INFO)
+ public static final int NET_ALARM_BATTERY_ABNORMAL_STATE_ALARM = 0x34F3; //大电池拆除报警(对应结构体 NET_ALARM_BATTERY_ABNORMAL_STATE_ALARM_INFO)
+ // 内部常量定义
+ public static final int NET_ALARM_WIFI_SEARCH_EX = 0x8000; // 获取到周围环境中WIFI设备上报事件(对应结构体 ALARM_WIFI_SEARCH_INFO_EX)
+ public static final int NET_EM_CFG_RADIO_REGULATOR = 11102; // 人体测温标准黑体配置, 对应结构体 NET_CFG_RADIO_REGULATOR,通道号不能为-1
+ public static final int MAX_SUNTIME_COUNT = 12; // 日出日落时间个数
+ // 报警上传功能的报警类型,对应CLIENT_StartService接口、NEW_ALARM_UPLOAD结构体.
+ public static final int NET_UPLOAD_RCEMERGENCY_CALL = 0x4023; // 紧急呼叫报警事件, 对应结构体 ALARM_RCEMERGENCY_CALL_INFO
+ // 订阅Bus状态对应事件上报(CLIENT_AttachBusState)
+ public static final int NET_ALARM_BUS_PASSENGER_CARD_CHECK = 0x0009; // 乘客刷卡事件(对应结构体 ALARM_PASSENGER_CARD_CHECK )
+ // 帧类型掩码定义
+ public static final int FRAME_TYPE_MOTION = 0x00000001; // 动检帧
+ // CLIENT_RealLoadPictureEx 智能抓图事件
+ public static final int EVENT_IVS_ALL = 0x00000001; // 订阅所有事件
+ public static final int EVENT_IVS_CROSSLINEDETECTION = 0x00000002; // 警戒线事件(对应 DEV_EVENT_CROSSLINE_INFO)
+ public static final int EVENT_IVS_CROSSREGIONDETECTION = 0x00000003; // 警戒区事件(对应 DEV_EVENT_CROSSREGION_INFO)
+ public static final int EVENT_IVS_LEFTDETECTION = 0x00000005; // 物品遗留事件(对应 DEV_EVENT_LEFT_INFO)
+ public static final int EVENT_IVS_STAYDETECTION = 0x00000006; // 停留事件(对应 DEV_EVENT_STAY_INFO)
+ public static final int EVENT_IVS_WANDERDETECTION = 0x00000007; // 徘徊事件(对应 DEV_EVENT_WANDER_INFO)
+ public static final int EVENT_IVS_PRESERVATION = 0x00000008; // 物品保全事件(对应 DEV_EVENT_PRESERVATION_INFO)
+ public static final int EVENT_IVS_MOVEDETECTION = 0x00000009; // 移动事件(对应 DEV_EVENT_MOVE_INFO)
+ public static final int EVENT_IVS_NUMBERSTAT = 0x00000010; // 数量统计事件(对应 DEV_EVENT_NUMBERSTAT_INFO)
+ public static final int EVENT_IVS_RIOTERDETECTION = 0x0000000B; // 聚众事件(对应 DEV_EVENT_RIOTERL_INFO)
+ public static final int EVENT_IVS_FIREDETECTION = 0x0000000C; // 火警事件(对应 DEV_EVENT_FIRE_INFO)
+ public static final int EVENT_IVS_SMOKEDETECTION = 0x0000000D; // 烟雾报警事件(对应 DEV_EVENT_SMOKE_INFO)
+ public static final int EVENT_IVS_FIGHTDETECTION = 0x0000000E; // 斗殴事件(对应 DEV_EVENT_FIGHT_INFO)
+ public static final int EVENT_IVS_VIDEOABNORMALDETECTION = 0x00000013; // 视频异常事件(对应 DEV_EVENT_VIDEOABNORMALDETECTION_INFO)
+ public static final int EVENT_IVS_TRAFFICACCIDENT = 0x00000016; /// 交通事故事件(对应 DEV_EVENT_TRAFFICACCIDENT_INFO)
+ public static final int EVENT_IVS_TRAFFICJUNCTION = 0x00000017; // 交通路口事件----老规则(对应 DEV_EVENT_TRAFFICJUNCTION_INFO)
+ public static final int EVENT_IVS_TRAFFICGATE = 0x00000018; // 交通卡口事件----老规则(对应 DEV_EVENT_TRAFFICGATE_INFO)
+ public static final int EVENT_IVS_FACEDETECT = 0x0000001A; // 目标检测事件 (对应 DEV_EVENT_FACEDETECT_INFO)(智能规则对应 EVENT_IVS_FACEDETECT)
+ public static final int EVENT_IVS_TRAFFICJAM = 0x0000001B; // 交通拥堵事件(对应 DEV_EVENT_TRAFFICJAM_INFO)
+ public static final int EVENT_IVS_TRAFFIC_RUNREDLIGHT = 0x00000100; // 交通违章-闯红灯事件(对应 DEV_EVENT_TRAFFIC_RUNREDLIGHT_INFO)
+ public static final int EVENT_IVS_TRAFFIC_OVERLINE = 0x00000101; // 交通违章-压车道线事件(对应 DEV_EVENT_TRAFFIC_OVERLINE_INFO)
+ public static final int EVENT_IVS_TRAFFIC_RETROGRADE = 0x00000102; // 交通违章-逆行事件(对应 DEV_EVENT_TRAFFIC_RETROGRADE_INFO)
+ public static final int EVENT_IVS_TRAFFIC_TURNLEFT = 0x00000103; // 交通违章-违章左转(对应 DEV_EVENT_TRAFFIC_TURNLEFT_INFO)
+ public static final int EVENT_IVS_TRAFFIC_TURNRIGHT = 0x00000104; // 交通违章-违章右转(对应 DEV_EVENT_TRAFFIC_TURNRIGHT_INFO)
+ public static final int EVENT_IVS_TRAFFIC_UTURN = 0x00000105; // 交通违章-违章掉头(对应 DEV_EVENT_TRAFFIC_UTURN_INFO)
+ public static final int EVENT_IVS_TRAFFIC_OVERSPEED = 0x00000106; // 交通违章-超速(对应 DEV_EVENT_TRAFFIC_OVERSPEED_INFO)
+ public static final int EVENT_IVS_TRAFFIC_UNDERSPEED = 0x00000107; // 交通违章-低速(对应 DEV_EVENT_TRAFFIC_UNDERSPEED_INFO)
+ public static final int EVENT_IVS_TRAFFIC_PARKING = 0x00000108; // 交通违章-违章停车(对应 DEV_EVENT_TRAFFIC_PARKING_INFO)
+ public static final int EVENT_IVS_TRAFFIC_WRONGROUTE = 0x00000109; // 交通违章-不按车道行驶(对应 DEV_EVENT_TRAFFIC_WRONGROUTE_INFO)
+ public static final int EVENT_IVS_TRAFFIC_CROSSLANE = 0x0000010A; // 交通违章-违章变道(对应 DEV_EVENT_TRAFFIC_CROSSLANE_INFO)
+ public static final int EVENT_IVS_TRAFFIC_OVERYELLOWLINE = 0x0000010B; // 交通违章-压黄线 (对应 DEV_EVENT_TRAFFIC_OVERYELLOWLINE_INFO)
+ public static final int EVENT_IVS_TRAFFIC_YELLOWPLATEINLANE = 0x0000010E; // 交通违章-黄牌车占道事件(对应 DEV_EVENT_TRAFFIC_YELLOWPLATEINLANE_INFO)
+ public static final int EVENT_IVS_TRAFFIC_PEDESTRAINPRIORITY = 0x0000010F; // 交通违章-斑马线行人优先事件(对应 DEV_EVENT_TRAFFIC_PEDESTRAINPRIORITY_INFO)
+ public static final int EVENT_IVS_TRAFFIC_NOPASSING = 0x00000111; // 交通违章-禁止通行事件(对应 DEV_EVENT_TRAFFIC_NOPASSING_INFO)
+ public static final int EVENT_IVS_ABNORMALRUNDETECTION = 0x00000112; // 异常奔跑事件(对应 DEV_EVENT_ABNORMALRUNDETECTION_INFO)
+ public static final int EVENT_IVS_RETROGRADEDETECTION = 0x00000113; // 人员逆行事件(对应 DEV_EVENT_RETROGRADEDETECTION_INFO)
+ public static final int EVENT_IVS_TAKENAWAYDETECTION = 0x00000115; // 物品搬移事件(对应 DEV_EVENT_TAKENAWAYDETECTION_INFO)
+ public static final int EVENT_IVS_PARKINGDETECTION = 0x00000116; // 非法停车事件(对应 DEV_EVENT_PARKINGDETECTION_INFO)
+ public static final int EVENT_IVS_FACERECOGNITION = 0x00000117; // 目标识别事件(对应 DEV_EVENT_FACERECOGNITION_INFO, (对应的智能规则配置 CFG_FACERECOGNITION_INFO)
+ public static final int EVENT_IVS_TRAFFIC_MANUALSNAP = 0x00000118; // 交通手动抓拍事件(对应 DEV_EVENT_TRAFFIC_MANUALSNAP_INFO)
+ public static final int EVENT_IVS_TRAFFIC_FLOWSTATE = 0x00000119; // 交通流量统计事件(对应 DEV_EVENT_TRAFFIC_FLOW_STATE)
+ public static final int EVENT_IVS_TRAFFIC_VEHICLEINROUTE = 0x0000011B; // 有车占道事件(对应 DEV_EVENT_TRAFFIC_VEHICLEINROUTE_INFO)
+ public static final int EVENT_ALARM_LOCALALARM = 0x0000011D; // 外部报警事件(对应 DEV_EVENT_ALARM_INFO)
+ public static final int EVENT_IVS_PSRISEDETECTION = 0x0000011E; // 囚犯起身事件(对应 DEV_EVENT_PSRISEDETECTION_INFO)
+ public static final int EVENT_IVS_TRAFFIC_TOLLGATE = 0x00000120; // 交通违章--卡口事件----新规则(对应 DEV_EVENT_TRAFFICJUNCTION_INFO)
+ public static final int EVENT_IVS_TRAFFIC_VEHICLEINBUSROUTE = 0x00000124; // 交通违章--占用公交车道事件(对应 DEV_EVENT_TRAFFIC_VEHICLEINBUSROUTE_INFO)
+ public static final int EVENT_IVS_TRAFFIC_BACKING = 0x00000125; // 交通违章--违章倒车事件(对应 DEV_EVENT_IVS_TRAFFIC_BACKING_INFO)
+ public static final int EVENT_IVS_AUDIO_ABNORMALDETECTION = 0x00000126; // 声音异常检测(对应 DEV_EVENT_IVS_AUDIO_ABNORMALDETECTION_INFO)
+ public static final int EVENT_IVS_TRAFFIC_RUNYELLOWLIGHT = 0x00000127; // 交通违章-闯黄灯事件(对应 DEV_EVENT_TRAFFIC_RUNYELLOWLIGHT_INFO)
+ public static final int EVENT_IVS_CLIMBDETECTION = 0x00000128; // 攀高检测事件(对应 DEV_EVENT_IVS_CLIMB_INFO)
+ public static final int EVENT_IVS_LEAVEDETECTION = 0x00000129; // 离岗检测事件(对应 DEV_EVENT_IVS_LEAVE_INFO)
+ public static final int EVENT_IVS_TRAFFIC_PARKINGONYELLOWBOX = 0x0000012A; // 交通违章--黄网格线抓拍事件(对应 DEV_EVENT_TRAFFIC_PARKINGONYELLOWBOX_INFO)
+ public static final int EVENT_IVS_TRAFFIC_PARKINGSPACEPARKING = 0x0000012B; // 车位有车事件(对应 DEV_EVENT_TRAFFIC_PARKINGSPACEPARKING_INFO )
+ public static final int EVENT_IVS_TRAFFIC_PARKINGSPACENOPARKING = 0x0000012C; // 车位无车事件(对应 DEV_EVENT_TRAFFIC_PARKINGSPACENOPARKING_INFO )
+ public static final int EVENT_IVS_TRAFFIC_PEDESTRAIN = 0x0000012D; // 交通行人事件(对应 DEV_EVENT_TRAFFIC_PEDESTRAIN_INFO)
+ public static final int EVENT_IVS_TRAFFIC_THROW = 0x0000012E; // 交通抛洒物品事件(对应 DEV_EVENT_TRAFFIC_THROW_INFO)
+ public static final int EVENT_IVS_TRAFFIC_PARKINGSPACEOVERLINE = 0x00000134; // 车位压线事件(对应 DEV_EVENT_TRAFFIC_PARKINGSPACEOVERLINE_INFO)
+ public static final int EVENT_IVS_TRAFFIC_OVERSTOPLINE = 0X00000137; // 交通违章--压停止线事件(对应 DEV_EVENT_TRAFFIC_OVERSTOPLINE)
+ public static final int EVENT_IVS_TRAFFIC_WITHOUT_SAFEBELT = 0x00000138; // 交通违章--交通未系安全带事件(对应 DEV_EVENT_TRAFFIC_WITHOUT_SAFEBELT)
+ public static final int EVENT_IVS_TRAFFIC_DRIVER_SMOKING = 0x00000139; // 驾驶员抽烟事件(对应 DEV_EVENT_TRAFFIC_DRIVER_SMOKING)
+ public static final int EVENT_IVS_TRAFFIC_DRIVER_CALLING = 0x0000013A; // 驾驶员打电话事件(对应 DEV_EVENT_TRAFFIC_DRIVER_CALLING)
+ public static final int EVENT_IVS_TRAFFIC_PASSNOTINORDER = 0x0000013C; // 交通违章--未按规定依次通行(对应 DEV_EVENT_TRAFFIC_PASSNOTINORDER_INFO)
+ public static final int EVENT_IVS_CROSSLINEDETECTION_EX = 0x00000151; // 警戒线扩展事件
+ public static final int EVENT_ALARM_VIDEOBLIND = 0x00000153; // 视频遮挡事件(对应 DEV_EVENT_ALARM_VIDEOBLIND)
+ public static final int EVENT_IVS_TRAFFIC_JAM_FORBID_INTO = 0x00000163; // 交通违章--车辆拥堵禁入事件(对应 DEV_EVENT_ALARM_JAMFORBIDINTO_INFO)
+ public static final int EVENT_IVS_TRAFFIC_FCC = 0x0000016B; // 加油站提枪、挂枪事件(对应 DEV_EVENT_TRAFFIC_FCC_INFO)
+ public static final int EVENT_IVS_TUMBLE_DETECTION = 0x00000177; // 倒地报警事件(对应 DEV_EVENT_TUMBLE_DETECTION_INFO)
+ public static final int EVENT_IVS_DISTANCE_DETECTION = 0x0000024A; // 异常间距事件 (对应 DEV_EVENT_DISTANCE_DETECTION_INFO)
+ public static final int EVENT_IVS_ACCESS_CTL = 0x00000204; // 门禁事件 (对应 DEV_EVENT_ACCESS_CTL_INFO)
+ public static final int EVENT_IVS_SNAPMANUAL = 0x00000205; // SnapManual事件(对应 DEV_EVENT_SNAPMANUAL)
+ public static final int EVENT_IVS_TRAFFIC_ELETAGINFO = 0x00000206; // RFID电子车牌标签事件(对应 DEV_EVENT_TRAFFIC_ELETAGINFO_INFO)
+ public static final int EVENT_IVS_TRAFFIC_TIREDPHYSIOLOGICAL = 0x00000207; // 生理疲劳驾驶事件(对应 DEV_EVENT_TIREDPHYSIOLOGICAL_INFO)
+ public static final int EVENT_IVS_CITIZEN_PICTURE_COMPARE = 0x00000209; // 人证比对事件(对应 DEV_EVENT_CITIZEN_PICTURE_COMPARE_INFO )
+ public static final int EVENT_IVS_TRAFFIC_TIREDLOWERHEAD = 0x0000020A; // 开车低头报警事件(对应DEV_EVENT_TIREDLOWERHEAD_INFO)
+ public static final int EVENT_IVS_TRAFFIC_DRIVERLOOKAROUND = 0x0000020B; // 开车左顾右盼报警事件(对应DEV_EVENT_DRIVERLOOKAROUND_INFO)
+ public static final int EVENT_IVS_TRAFFIC_DRIVERLEAVEPOST = 0x0000020C; // 开车离岗报警事件(对应DEV_EVENT_DRIVERLEAVEPOST_INFO)
+ public static final int EVENT_IVS_MAN_STAND_DETECTION = 0x0000020D; // 立体视觉站立事件(对应DEV_EVENT_MANSTAND_DETECTION_INFO)
+ public static final int EVENT_IVS_MAN_NUM_DETECTION = 0x0000020E; // 立体视觉区域内人数统计事件(对应DEV_EVENT_MANNUM_DETECTION_INFO)
+ public static final int EVENT_IVS_TRAFFIC_DRIVERYAWN = 0x00000210; // 开车打哈欠事件(对应DEV_EVENT_DRIVERYAWN_INFO)
+ public static final int EVENT_IVS_HUMANTRAIT = 0x00000215; // 人体特征事件(对应 DEV_EVENT_HUMANTRAIT_INFO)
+ public static final int EVENT_IVS_FACEANALYSIS = 0x00000217; // 人脸分析事件 (暂未有具体事件)
+ public static final int EVENT_IVS_TRAFFIC_QUEUEJUMP = 0x0000021C; // 车辆加塞事件(对应 DEV_EVENT_TRAFFIC_QUEUEJUMP_INFO)
+ public static final int EVENI_IVS_XRAY_DETECTION = 0x00000223; // X光检测事件 (对应 DEV_EVENT_XRAY_DETECTION_INFO)
+ public static final int EVENT_IVS_HIGHSPEED = 0x0000022B; // 车辆超速报警事件(对应 DEV_EVENT_HIGHSPEED_INFO)
+ public static final int EVENT_IVS_CROWDDETECTION = 0x0000022C; // 人群密度检测事件(对应结构体 DEV_EVENT_CROWD_DETECTION_INFO)
+ public static final int EVENT_IVS_TRAFFIC_CARDISTANCESHORT = 0x0000022D; // 车间距过小报警事件(对应 DEV_EVENT_TRAFFIC_CARDISTANCESHORT_INFO)
+ public static final int EVENT_IVS_PEDESTRIAN_JUNCTION = 0x00000230; // 行人卡口事件(对应 DEV_EVENT_PEDESTRIAN_JUNCTION_INFO)
+ public static final int EVENT_IVS_VEHICLE_RECOGNITION = 0x00000231; // 车牌对比事件(对应 DEV_EVENT_VEHICLE_RECOGNITION_INFO)
+ public static final int EVENT_IVS_BANNER_DETECTION = 0x0000023B; // 拉横幅事件(对应 DEV_EVENT_BANNER_DETECTION_INFO)
+ public static final int EVENT_IVS_ELEVATOR_ABNORMAL = 0x0000023D; // 电动扶梯运行异常事件 (对应DEV_EVENT_ELEVATOR_ABNORMAL_INFO)
+ public static final int EVENT_IVS_VEHICLEDETECT = 0x0000023F; // 机动车检测 (只用于规则配置,事件采用EVENT_IVS_TRAFFICJUNCTION)
+ public static final int EVENT_IVSS_FACEATTRIBUTE = 0x00000243; // IVSS目标检测事件 (暂未有具体事件)
+ public static final int EVENT_IVSS_FACECOMPARE = 0x00000244; // IVSS目标识别事件 (暂未有具体事件)
+ public static final int EVENT_IVS_FIREWARNING = 0x00000245; // 火警事件(对应 DEV_EVENT_FIREWARNING_INFO)
+ public static final int EVENT_IVS_SHOPPRESENCE = 0x00000246; // 商铺占道经营事件(对应 DEV_EVENT_SHOPPRESENCE_INFO)
+ public static final int EVENT_IVS_FLOWBUSINESS = 0x0000024E; // 流动摊贩事件 (对应 DEV_EVENT_FLOWBUSINESS_INFO)
+ public static final int EVENT_IVS_LANEDEPARTURE_WARNNING = 0X00000251; // 车道偏移预警(对应 DEV_EVENT_LANEDEPARTURE_WARNNING_INFO)
+ public static final int EVENT_IVS_FORWARDCOLLISION_WARNNING = 0x00000252; // 前向碰撞预警(对应 DEV_EVENT_FORWARDCOLLISION_WARNNING_INFO)
+ public static final int EVENT_IVS_FLOATINGOBJECT_DETECTION = 0x00000257; // 漂浮物检测事件 (对应 DEV_EVENT_FLOATINGOBJECT_DETECTION_INFO)
+ public static final int EVENT_IVS_PHONECALL_DETECT = 0x0000025A; // 打电话检测事件(对应 DEV_EVENT_PHONECALL_DETECT_INFO)
+ public static final int EVENT_IVS_SMOKING_DETECT = 0x0000025B; // 吸烟检测事件(对应 DEV_EVENT_SMOKING_DETECT_INFO)
+ public static final int EVENT_IVS_RADAR_SPEED_LIMIT_ALARM = 0x0000025C; // 雷达限速报警事件(对应 DEV_EVENT_RADAR_SPEED_LIMIT_ALARM_INFO)
+ public static final int EVENT_IVS_WATER_LEVEL_DETECTION = 0x0000025D; // 水位检测事件 (对应 DEV_EVENT_WATER_LEVEL_DETECTION_INFO)
+ public static final int EVENT_IVS_CITY_MOTORPARKING = 0x0000024F; // 城市机动车违停事件 (对应 DEV_EVENT_CITY_MOTORPARKING_INFO)
+ public static final int EVENT_IVS_CITY_NONMOTORPARKING = 0x00000250; // 城市机非动车违停事件 (对应 DEV_EVENT_CITY_NONMOTORPARKING_INFO)
+ public static final int EVENT_IVS_HOLD_UMBRELLA = 0x0000025E; // 违规撑伞检测事件 (对应 DEV_EVENT_HOLD_UMBRELLA_INFO)
+ public static final int EVENT_IVS_GARBAGE_EXPOSURE = 0x0000025F; // 垃圾暴露检测事件 (对应 DEV_EVENT_GARBAGE_EXPOSURE_INFO)
+ public static final int EVENT_IVS_DUSTBIN_OVER_FLOW = 0x00000260; // 垃圾桶满溢检测事件 (对应 DEV_EVENT_DUSTBIN_OVER_FLOW_INFO)
+ public static final int EVENT_IVS_DOOR_FRONT_DIRTY = 0x00000261; // 门前脏乱检测事件 (对应 DEV_EVENT_DOOR_FRONT_DIRTY_INFO)
+ public static final int EVENT_IVS_QUEUESTAY_DETECTION = 0X00000262; // 排队滞留时间报警事件 (对应 DEV_EVENT_QUEUESTAY_DETECTION_INFO)
+ public static final int EVENT_IVS_QUEUENUM_DETECTION = 0X00000263; // 排队人数异常报警事件(对应 DEV_EVENT_QUEUENUM_DETECTION_INFO)
+ public static final int EVENT_IVS_GENERATEGRAPH_DETECTION = 0X00000264; // 生成图规则事件(对应 DEV_EVENT_GENERATEGRAPH_DETECTION_INFO)
+ public static final int EVENT_IVS_TRAFFIC_PARKING_MANUAL = 0x00000265; // 交通违章-手动取证(对应 DEV_EVENT_TRAFFIC_PARKING_MANUAL_INFO)
+ public static final int EVENT_IVS_HELMET_DETECTION = 0x00000266; // 安全帽检测事件(对应 DEV_EVENT_HELMET_DETECTION_INFO)
+ public static final int EVENT_IVS_DEPOSIT_DETECTION = 0x00000267; // 包裹堆积程度检测事件(对应 DEV_EVENT_DEPOSIT_DETECTION_INFO)
+ public static final int EVENT_IVS_HOTSPOT_WARNING = 0x00000268; // 热点异常报警事件(对应 DEV_EVENT_HOTSPOT_WARNING_INFO)
+ public static final int EVENT_IVS_WEIGHING_PLATFORM_DETECTION = 0x00000269; // 称重平台检测事件(对应 DEV_EVENT_WEIGHING_PLATFORM_DETECTION_INFO)
+ public static final int EVENT_IVS_CLASSROOM_BEHAVIOR = 0x0000026A; // 课堂行为分析事件(对应 DEV_EVENT_CLASSROOM_BEHAVIOR_INFO)
+ public static final int EVENT_IVS_VEHICLE_DISTANCE_NEAR = 0x0000026B; // 安全驾驶车距过近报警事件(对应 DEV_EVENT_VEHICLE_DISTANCE_NEAR_INFO)
+ public static final int EVENT_IVS_TRAFFIC_DRIVER_ABNORMAL = 0x0000026C; // 驾驶员异常报警事件(对应 DEV_EVENT_TRAFFIC_DRIVER_ABNORMAL_INFO)
+ public static final int EVENT_IVS_WORKCLOTHES_DETECT = 0x0000026E; // 工装(安全帽/工作服等)检测事件(对应 DEV_EVENT_WORKCLOTHES_DETECT_INFO)
+ public static final int EVENT_IVS_SECURITYGATE_PERSONALARM = 0x0000026F; // 安检门人员报警事件(对应 DEV_EVENT_SECURITYGATE_PERSONALARM_INFO)
+ public static final int EVENT_IVS_STAY_ALONE_DETECTION = 0x00000270; // 单人独处事件(对应 DEV_EVENT_STAY_ALONE_DETECTION_INFO)
+ public static final int EVENT_IVS_TRAFFIC_ROAD_CONSTRUCTION = 0x00000272; // 交通道路施工检测事件(对应 DEV_EVENT_TRAFFIC_ROAD_CONSTRUCTION_INFO)
+ public static final int EVENT_IVS_WORKSTATDETECTION = 0x00000274; // 作业统计事件(对应 DEV_EVENT_WORKSTATDETECTION_INFO)
+ public static final int EVENT_IVS_INTELLI_SHELF = 0x00000277; // 智能补货事件(对应 DEV_EVENT_INTELLI_SHELF_INFO)
+ public static final int EVENT_IVS_CAR_DRIVING_IN_OUT = 0x0000027B; // 车辆驶入驶出状态事件(对应 DEV_EVENT_CAR_DRIVING_IN_OUT_INFO)
+ public static final int EVENT_IVS_VIOLENT_THROW_DETECTION = 0x0000027D; // 暴力抛物检测(对应 DEV_EVENT_VIOLENT_THROW_DETECTION_INFO)
+ public static final int EVENT_IVS_GASSTATION_VEHICLE_DETECT = 0x00000283; // 加油站车辆检测事件 (对应 DEV_EVENT_GASSTATION_VEHICLE_DETECT_INFO)
+ public static final int EVENT_IVS_HIGH_TOSS_DETECT = 0x0000028D; // 高空抛物检测(对应DEV_EVENT_HIGH_TOSS_DETECT_INFO)
+ public static final int EVENT_IVS_BREED_DETECTION = 0x00000289; // 智慧养殖检测事件 (对应 DEV_EVENT_BREED_DETECTION_INFO)
+ public static final int EVENT_IVS_PARKING_LOT_STATUS_DETECTION = 0x00000297; // 室外停车位状态检测 (对应 DEV_EVENT_PARKING_LOT_STATUS_DETECTION_INFO)
+ public static final int EVENT_IVS_SMART_KITCHEN_CLOTHES_DETECTION = 0x0000029D; // 智慧厨房穿着检测事件(对不戴口罩、厨师帽以及颜色不符合规定的厨师服进行报警)(对应 DEV_EVENT_SMART_KITCHEN_CLOTHES_DETECTION_INFO)
+ public static final int EVENT_IVS_ANATOMY_TEMP_DETECT = 0x00000303; // 人体温智能检测事件(对应 DEV_EVENT_ANATOMY_TEMP_DETECT_INFO)
+ public static final int EVENT_IVS_FOG_DETECTION = 0x00000308; // 起雾检测事件(对应 DEV_EVENT_FOG_DETECTION)
+ public static final int EVENT_IVS_TRAFFIC_VEHICLE_BC = 0x00000309; // 飙车事件(对应 DEV_EVENT_TRAFFIC_VEHICLE_BC )
+ public static final int EVENT_IVS_WATER_STAGE_MONITOR = 0x0000030D; // 水位监测事件
+ public static final int EVENT_IVS_NONMOTOR_ENTRYING = 0x0000030C; // 非机动车进入电梯(对应 DEV_EVENT_NONMOTOR_ENTRYING_INFO)
+ public static final int EVENT_IVS_TRAFFIC_ROAD_ALERT = 0x0000030E; // 道路安全预警(对应 DEV_EVENT_TRAFFIC_ROAD_ALERT_INFO)
+ public static final int EVENT_IVS_BREAK_RULE_BUILDING_DETECTION = 0x0000030F; // 违章建筑检测事件(对应 DEV_EVENT_BREAK_RULE_BUILDIING_DETECTION_INFO)
+ public static final int EVENT_IVS_TRAFFIC_CAR_MEASUREMENT = 0x00000320; // 交通卡口测量(车辆长、宽、高度、重量等)事件 (对应 DEV_EVENT_TRAFFIC_CAR_MEASUREMENT_INFO)
+ public static final int EVENT_IVS_CAR_DRIVING_IN = 0x00000330; // 车辆驶入事件(对应 DEV_EVENT_CAR_DRIVING_IN_INFO)
+ public static final int EVENT_IVS_CAR_DRIVING_OUT = 0x00000331; // 车辆驶出事件(对应 DEV_EVENT_CAR_DRIVING_OUT_INFO)
+ public static final int EVENT_IVS_TRUCKNOTCLEAN_FOR_PRMA = 0x0000033A; // 工程车未清洗 对应 DEV_EVENT_TRUCKNOTCLEAN_FOR_PRMA_INFO
+ public static final int EVENT_IVS_DRIVE_ACTION_ANAYLSE = 0x00000342; // 驾驶行为分析 (只用于规则配置)
+ public static final int EVENT_IVS_TRAFFIC_PARKINGSPACE_MANUALSNAP = 0x00000346; // 路侧停车位手动抓图 (对应 DEV_EVENT_PARKINGSPACE_MANUALSNAP_INFO )
+ public static final int EVENT_IVS_CONVEYER_BELT_BULK = 0x00000351; // 传送带大块异物检测事件(对应DEV_EVENT_CONVEYER_BELT_BULK_INFO )
+ public static final int EVENT_IVS_CONVEYER_BELT_NONLOAD = 0x00000352; // 传送带空载检测事件(对应DEV_EVENT_CONVEYER_BELT_NONLOAD_INFO )
+ public static final int EVENT_IVS_CONVEYER_BELT_RUNOFF = 0x00000353; // 传送带跑偏检测事件(对应 DEV_EVENT_CONVEYER_BELT_RUNOFF_INFO )
+ public static final int EVENT_IVS_OBJECT_REMOVAL_DETECTION = 0x0000036A; // 物品拿取检测事件(对应DEV_EVENT_OBJECT_REMOVAL_DETECTION_INFO)
+ public static final int EVENT_IVS_WATERCOLOR_DETECTION = 0x00000363; // 水体颜色事件(对应 DEV_EVENT_WATERCOLOR_DETECTION_INFO)
+ public static final int EVENT_IVS_SEWAGE_DETECTION = 0x00000362; // 排污检测事件(对应 DEV_EVENT_SEWAGE_DETECTION_INFO)
+ public static final int EVENT_IVS_OBJECT_PLACEMENT_DETECTION = 0x00000369; // 物品放置检测事件(对应DEV_EVENT_OBJECT_PLACEMENT_DETECTION_INFO)
+ public static final int EVENT_IVS_DIALRECOGNITION = 0x00000371; // 仪表检测事件(对应DEV_EVENT_DIALRECOGNITION_INFO)
+ public static final int EVENT_IVS_ELECTRICFAULT_DETECT = 0x00000372; // 仪表类缺陷检测事件(对应DEV_EVENT_ELECTRICFAULTDETECT_INFO)
+ public static final int EVENT_IVS_TRASH_WITHOUT_COVER_DETECTION = 0x00000373; // 垃圾桶未盖盖子检测事件(对应DEV_EVENT_TRASH_WITHOUT_COVER_DETECTION_INFO)
+ public static final int EVENT_IVS_TRAFFIC_PARKING_BACKING = 0x0000037C; // 出入口倒车驶离事件(对应DEV_EVENT_TRAFFIC_PARKING_BACKING_INFO)
+ public static final int EVENT_IVS_BARELAND_DETECTION = 0x00000380; // 裸土检测事件(DEV_EVENT_BARELAND_DETECTION_INFO)
+ public static final int EVENT_IVS_CONSUMPTION_EVENT = 0x00000381; // 消费事件(对应 DEV_EVENT_CONSUMPTION_EVENT_INFO)
+ public static final int EVENT_IVS_XRAY_UNPACKING_CHECK = 0x00000384; // X光开包检查事件(对应DEV_EVENT_XRAY_UPACKING_CHECK_INFO)
+ public static final int EVENT_IVS_TRAFFIC_CHANGE_LANE_CONTINUES = 0x00000387; //机动车连续变道违法事件(对应 DEV_EVENT_TRAFFIC_CHANGE_LANE_CONTINUES_INFO)
+ public static final int EVENT_IVS_FISHING_DETECTION = 0x00000390; // 钓鱼检测事件(对应 DEV_EVENT_FISHING_DETECTION_INFO )
+ public static final int EVENT_IVS_ROAD_CONDITIONS_DETECTION = 0x0000039A; // 路面检测事件(对应DEV_EVENT_ROAD_CONDITIONS_DETECTION_INFO)
+ public static final int EVENT_IVS_VIDEO_NORMAL_DETECTION = 0x00000365; // 视频正常事件,在视频诊断检测周期结束时,将未报错的诊断项上报正常事件 DEV_EVENT_VIDEO_NORMAL_DETECTION_INFO
+ public static final int EVENT_IVS_OPEN_INTELLI = 0x0000039D; // 开放智能事件(对应 DEV_EVENT_OPEN_INTELLI_INFO)
+ public static final int EVENT_IVS_TRAFFIC_SERPENTINE_CHANGE_LANE = 0x0000040F; // 蛇形变道事件(对应 DEV_EVENT_TRAFFIC_SERPENTINE_CHANGE_LANE_INFO)
+ public static final int EVENT_IVS_TRAFFIC_SPEED_DROP_SHARPLY = 0x00000404; // 车辆速度剧减事件(对应 DEV_EVENT_TRAFFIC_SPEED_DROP_SHARPLY_INFO)
+ public static final int EVENT_IVS_TRAFFIC_OVERTAKE_ONRIGHT = 0x0000040A; // 右侧超车事件(对应 DEV_EVENT_TRAFFIC_OVERTAKE_ONRIGHT_INFO)
+ public static final int EVENT_IVS_TRAFFIC_TRUCK_OCCUPIED = 0x0000040B; // 大车占道事件(对应 DEV_EVENT_TRAFFIC_TRUCK_OCCUPIED_INFO)
+ public static final int EVENT_IVS_REMOTE_APPROVAL_ALARM = 0x00000438; // 金融远程审批事件(对应 NET_DEV_EVENT_REMOTE_APPROVAL_ALARM_INFO)
+ public static final int EVENT_IVS_ANTI_COUNTERFEIT = 0x00000439; // 防造假检测事件(对应 NET_DEV_EVENT_ANTI_COUNTERFEIT_INFO)
+ public static final int EVENT_IVS_USERMANAGER_FOR_TWSDK = 0x00000441; // 用户信息上报事件(对应 NET_DEV_EVENT_USERMANAGER_FOR_TWSDK_INFO)
+ public static final int EVENT_IVS_POSITION_SNAP = 0x00000447; // 按位置抓图事件(对应 NET_DEV_EVENT_POSITION_SNAP_INFO)
+ public static final int EVENT_IVS_CIGARETTE_CASE_DETECTION = 0x00000450; // 烟盒检测事件(对应 NET_DEV_EVENT_CIGARETTE_CASE_DETECTION_INFO)
+ public static final int EVENT_IVS_TRAFFIC_ACCELERATION_RAPID = 0x00000457; // 急加速事件(对应 NET_DEV_EVENT_TRAFFIC_ACCELERATION_RAPID_INFO)
+ public static final int EVENT_IVS_TRAFFIC_TURN_SHARP = 0x00000458; // 急转弯事件(对应 NET_DEV_EVENT_TRAFFIC_TURN_SHARP_INFO)
+ public static final int EVENT_IVS_COLLISION_CONFLICT = 0x0000045B; // 碰撞冲突事件(对应 NET_DEV_EVENT_COLLISION_CONFLICT_INFO)
+ public static final int EVENT_IVS_SAME_OBJECT_SEARCH_DETECT = 0x00000472; // 按图索骥物品检测事件(对应 NET_DEV_EVENT_SAME_OBJECT_SEARCH_DETECT_INFO)
+ public static final int EVENT_IVS_SAME_OBJECT_SEARCH_COUNT = 0x00000480; // 按图索骥物品计数事件(对应 NET_DEV_EVENT_SAME_OBJECT_SEARCH_COUNT_INFO)
+ public static final int EVENT_IVS_GRANARY_TRANS_ACTION_DETECTION = 0x00000484; // 粮面异动检测事件上报(对应 NET_DEV_EVENT_GRANARY_TRANS_ACTION_DETECTION_INFO)
+ public static final int EVENT_IVS_REGION_PROPORTION_DETECTION = 0x00000485; // 区域占比检测事件(对应 NET_DEV_EVENT_REGION_PROPORTION_DETECTION_INFO)
+ public static final int EVENT_IVS_NONMOTORDETECT = 0x0000023E; //非机动车检测 (对应结构体 DEV_EVENT_NONMOTORDETECT_INFO)
+ public static final int EVENT_IVS_TRAFFIC_TRUST_CAR = 0x00000499; //信任车辆事件(对应NET_DEV_EVENT_TRAFFIC_TRUST_CAR_INFO )
+ public static final int EVENT_IVS_TRAFFIC_SUSPICIOUS_CAR = 0x0000049A; //嫌疑车辆事件(对应NET_DEV_EVENT_TRAFFIC_SUSPICIOUS_CAR_INFO )
+ public static final int EVENT_IVS_DOOR_STATE_DETECTION = 0x00000424; //开关门检测事件(对应 NET_DEV_EVENT_DOOR_STATE_DETECTION_INFO)
+ public static final int EVENT_IVS_TRAFFIC_MOTORCYCLE_FORBID = 0x00000364; //禁摩事件 (对应 DEV_EVENT_TRAFFIC_MOTORCYCLE_FORBID)
+ public static final int EVENT_IVS_AUDIO_MUTATION = 0x0000045E; //声强突变事件(对应 NET_DEV_EVENT_AUDIO_MUTATION_INFO),(注意该事件暂时不支持单独使用,仅作为“开放智能事件(EVENT_IVS_OPEN_INTELLI)”中的一种规则))
+ public static final int EVENT_IVS_STEREO_MANNUM_DETECTION = 0x00000249; //立体行为分析人数异常检测 (仅用于规则配置,对应事件 EVENT_IVS_MAN_NUM_DETECTION)
+ public static final int EVENT_IVS_WRITE_ON_THE_BOARD_DETECTION = 0x0000029C; //板书检测事件(对应 DEV_EVENT_WRITE_ON_THE_BOARD_DETECTION_INFO)
+ public static final int EVENT_IVS_BACK_TO_DETECTION = 0x0000029B; //背对检测事件(对应 DEV_EVENT_BACK_TO_DETECTION_INFO)
+ public static final int EVENT_IVS_WALK_DETECTION = 0x0000029A; //走动检测事件(对应 DEV_EVENT_WALK_DETECTION_INFO)
+ public static final int EVENT_IVS_STEREO_STEREOFALLDETECTION = 0x00000239; //立体行为分析跌倒检测规则(仅用于规则配置,对应事件 EVENT_IVS_TUMBLE_DETECTION)
+ public static final int EVENT_IVS_STEREO_FIGHTDETECTION = 0x00000237; //立体行为分析打架/剧烈运动检测规则(仅用于规则配置,对应事件 EVENT_IVS_FIGHTDETECTION)
+ public static final int EVENT_IVS_PARKINGSPACE_STATUS = 0x0000027C; //停车位状态事件(对应 DEV_EVENT_PARKINGSPACE_STATUS_INFO)
+ public static final int EVENT_IVS_OCR_DETECTION = 0x00000399; //OCR检测事件(对应 DEV_EVENT_OCR_DETECTION_INFO)
+ public static final int EVENT_IVS_DIALRECOGNITION_EX = 0x00000398; //仪表检测事件(对应DEV_EVENT_DIALRECOGNITION_INFO)
+ public static final int EVENT_IVS_GROUND_THING_DETECTION = 0x000004A4; //地物识别(对应 NET_DEV_EVENT_GROUND_THING_DETECTION_INFO)
+ public static final int EVENT_IVS_CONVEYOR_BELT_STATUS = 0x00000451; //传送带运动状态检测报警事件(对应 NET_DEV_EVENT_CONVEYOR_BELT_STATUS_INFO)
+ public static final int EVENT_IVS_CONVEYORBLOCK_DETECTION = 0x0000033E; //传送带阻塞报警事件 (对应DEV_EVENT_CONVEYORBLOCK_DETECTION_INFO )
+ public static final int EVENT_ALARM_MOTIONDETECT = 0x0000011C; //视频移动侦测事件(对应 DEV_EVENT_ALARM_INFO)
+ public static final int EVENT_IVS_WATER_SPEED_DETECTION = 0x0000037B; //水流速检测事件(对应 DEV_EVENT_WATER_SPEED_DETECTION_INFO)
+ public static final int EVENT_IVS_RAILING_PASS_DETECTION = 0x0000043E; //隔栏传物事件(对应结构体 NET_DEV_EVENT_RAILING_PASS_DETECTION_INFO)
+ public static final int EVENT_IVS_GENERAL_ATTITUDE_DETECTION = 0x00000385; //姿态检测事件(对应 DEV_EVENT_GENERAL_ATTITUDE_DETECTION_INFO)
+ public static final int EVENT_IVS_MULTI_MAN_NUM_DETECTION = 0x0000043F; //讯问会见室人数报警事件(对应 NET_DEV_EVENT_MULTI_MAN_NUM_DETECTION_INFO)
+ public static final int EVENT_IVS_OBJECT_QUANTITY_DETECTION = 0x00000440; //目标类型和数量检测报警事件(对应 NET_DEV_EVENT_OBJECT_QUANTITY_DETECTION_INFO)
+ public static final int EVENT_IVS_DISTRESS_DETECTION = 0x0000034C; //求救检测事件 ( 对应 DEV_EVENT_DISTRESS_DETECTION_INFO )
+ public static final int EVENT_IVS_GRAIN_HEIGHT_DETECTION = 0x0000048F; //动粮检测事件(对应 NET_DEV_EVENT_GRAIN_HEIGHT_DETECTION_INFO)
+ public static final int EVENT_IVS_TAILDETECTION = 0x0000000A; //尾随事件(对应 DEV_EVENT_TAIL_INFO)
+ public static final int EVENT_IVS_COLD_SPOT_WARNING = 0x00000455; //冷点报警 (对应 NET_DEV_EVENT_COLD_SPOT_WARNING_INFO)
+ public static final int EVENT_IVS_TRAPPED_IN_LIFT_DETECTION = 0x00000462; //电梯困人检测(对应 NET_DEV_EVENT_TRAPPED_IN_LIFT_DETECTION_INFO)
+ public static final int EVENT_IVS_ELEVATOR_WORK_INFO = 0x00000493; //上报电梯运行数据事件(对应 NET_DEV_EVENT_ELEVATOR_WORK_INFO_INFO)
+ public static final int EVENT_IVS_ELEVATOR_ALARM = 0x00000494; //电梯异常报警(对应 NET_DEV_EVENT_ELEVATOR_ALARM_INFO)
+ // CLIENT_GetNewDevConfig / CLIENT_SetNewDevConfig 配置项
+ public static final String CFG_CMD_MOTIONDETECT = "MotionDetect"; // 动态检测报警配置(对应 CFG_MOTION_INFO)
+ public static final String CFG_CMD_VIDEOWIDGET = "VideoWidget"; // 视频编码物件配置(对应 NET_CFG_VideoWidget )
+ public static final String CFG_CMD_ANALYSEGLOBAL = "VideoAnalyseGlobal"; // 视频分析全局配置(对应 CFG_ANALYSEGLOBAL_INFO)
+ public static final String CFG_CMD_ANALYSEMODULE = "VideoAnalyseModule"; // 物体的检测模块配置(对应 CFG_ANALYSEMODULES_INFO)
+ public static final String CFG_CMD_ANALYSERULE = "VideoAnalyseRule"; // 视频分析规则配置(对应 CFG_ANALYSERULES_INFO)
+ public static final String CFG_CMD_VIDEOINOPTIONS = "VideoInOptions"; // 视频输入前端选项(对应CFG_VIDEO_IN_OPTIONS)
+ public static final String CFG_CMD_RTSP = "RTSP"; // RTSP的配置( 对应 CFG_RTSP_INFO_IN和CFG_RTSP_INFO_OUT )
+ public static final String CFG_CMD_RAINBRUSHMODE = "RainBrushMode"; // 雨刷模式相关配置(对应CFG_RAINBRUSHMODE_INFO数组)
+ public static final String CFG_CMD_RAINBRUSH = "RainBrush"; // 雨刷配置(对应CFG_RAINBRUSH_INFO)
+ public static final String CFG_CMD_ENCODE = "Encode"; // 图像通道属性配置(对应CFG_ENCODE_INFO)
+ public static final String CFG_CMD_VIDEOIN_FOCUS = "VideoInFocus"; // 聚焦设置(对应 CFG_VIDEO_IN_FOCUS)
+ public static final String CFG_CMD_VIDEO_IN_ZOOM = "VideoInZoom"; // 云台通道变倍配置(对应CFG_VIDEO_IN_ZOOM)
+ public static final String CFG_CMD_REMOTEDEVICE = "RemoteDevice"; // 远程设备信息(对应 AV_CFG_RemoteDevice 数组, 通道无关)
+ public static final String CFG_CMD_ANALYSESOURCE = "VideoAnalyseSource"; // 视频分析资源配置(对应 CFG_ANALYSESOURCE_INFO)
+ public static final String CFG_CMD_TRAFFICGLOBAL = "TrafficGlobal"; // 智能交通全局配置(CFG_TRAFFICGLOBAL_INFO)
+ public static final String CFG_CMD_RECORDMODE = "RecordMode"; // 录像模式(对应 AV_CFG_RecordMode )
+ public static final String CFG_CMD_ALARMLAMP = "AlarmLamp"; // 警灯配置(对应 CFG_ALARMLAMP_INFO)
+ public static final String CFG_CMD_ALARMOUT = "AlarmOut"; // 报警输出通道配置(对应 CFG_ALARMOUT_INFO )
+ public static final String CFG_CMD_INTELLECTIVETRAFFIC = "TrafficSnapshot"; // 智能交通抓拍(对应 CFG_TRAFFICSNAPSHOT_INFO )
+ public static final String CFG_CMD_TRAFFICSNAPSHOT_MULTI = "TrafficSnapshotNew"; // 智能交通抓拍( CFG_TRAFFICSNAPSHOT_NEW_INFO )
+ public static final String CFG_CMD_NTP = "NTP"; // 时间同步服务器(对应 CFG_NTP_INFO )
+ public static final String CFG_CMD_ALARMINPUT = "Alarm"; // 外部输入报警配置(对应 CFG_ALARMIN_INFO)
+ public static final String CFG_CMD_DVRIP = "DVRIP"; // 网络协议配置(对应 CFG_DVRIP_INFO)
+ public static final String CFG_CMD_NETWORK = "Network"; // 网络配置(对应 CFG_NETWORK_INFO)
+ public static final String CFG_CMD_NASEX = "NAS"; // 网络存储服务器配置, 多服务器(对应 CFG_NAS_INFO_EX)
+ public static final String CFG_CMD_MONITORWALL = "MonitorWall"; // 电视墙配置(对应 AV_CFG_MonitorWall 数组, 通道无关)
+ public static final String CFG_CMD_RTMP = "RTMP"; // RTMP配置(对应 CFG_RTMP_INFO)
+ public static final String CFG_CMD_ACCESS_EVENT = "AccessControl"; // 门禁事件配置(对应 CFG_ACCESS_EVENT_INFO 数组)
+ public static final String CFG_CMD_ACCESSTIMESCHEDULE = "AccessTimeSchedule"; // 门禁刷卡时间段(对应 CFG_ACCESS_TIMESCHEDULE_INFO)
+ public static final String CFG_CMD_DEV_GENERRAL = "General"; // 普通配置 (对应 CFG_DEV_DISPOSITION_INFO)
+ public static final String CFG_CMD_VIDEODIAGNOSIS_PROFILE = "VideoDiagnosisProfile"; // 视频诊断参数表(CFG_VIDEODIAGNOSIS_PROFILE)
+ public static final String CFG_CMD_VIDEODIAGNOSIS_TASK = "VideoDiagnosisTask"; // 视频诊断任务表(CFG_VIDEODIAGNOSIS_TASK)
+ public static final String CFG_CMD_VIDEODIAGNOSIS_TASK_ONE = "VideoDiagnosisTask.x"; // 视频诊断任务表(CFG_VIDEODIAGNOSIS_TASK)
+ public static final String CFG_CMD_VIDEODIAGNOSIS_PROJECT = "VideoDiagnosisProject"; // 视频诊断计划表(CFG_VIDEODIAGNOSIS_PROJECT)
+ public static final String CFG_CMD_GUIDESCREEN = "GuideScreen"; // 诱导屏系统配置(CFG_GUIDESCREEN_INFO)
+ public static final String CFG_CMD_THERMO_GRAPHY = "ThermographyOptions"; // 热成像摄像头属性配置(CFG_THERMOGRAPHY_INFO)
+ public static final String CFG_CMD_THERMOMETRY_RULE = "ThermometryRule"; // 热成像测温规则配置(对应 CFG_RADIOMETRY_RULE_INFO)
+ public static final String CFG_CMD_TEMP_STATISTICS = "TemperatureStatistics"; // 温度统计配置(CFG_TEMP_STATISTICS_INFO)
+ public static final String CFG_CMD_THERMOMETRY = "HeatImagingThermometry"; // 热成像测温全局配置(CFG_THERMOMETRY_INFO)
+ public static final String CFG_CMD_DEVRECORDGROUP = "DevRecordGroup"; // 通道录像组状态(对应 CFG_DEVRECORDGROUP_INFO)
+ public static final String CFG_CMD_STORAGEGROUP = "StorageGroup"; // 存储组信息(对应 AV_CFG_StorageGroup数组, 通道无关)
+ public static final String CFG_CMD_PTZTOUR = "PtzTour"; // 云台巡航路径配置(对应 CFG_PTZTOUR_INFO)
+ public static final String CFG_CMD_PTZ_PRESET = "PtzPreset"; // 云台预置点配置(对应结构 PTZ_PRESET_INFO)
+ public static final String CFG_CMD_VIDEOIN = "VideoIn"; // 输入通道配置(对应 CFG_VIDEO_IN_INFO)
+ public static final String CFG_CMD_CHANNELTITLE = "ChannelTitle"; // 通道名称(对应 AV_CFG_ChannelName)
+ public static final String CFG_CMD_WIFI_SEARCH = "AroudWifiSearch"; // 设备通过Wifi模块扫描周围无线设备配置(CFG_WIFI_SEARCH_INFO)
+ public static final String CFG_CMD_RECORD = "Record"; // 定时录像配置(对应 CFG_RECORD_INFO)
+ public static final String CFG_CMD_SCADA_DEV = "SCADADev"; // 检测采集设备配置(CFG_SCADA_DEV_INFO)
+ public static final String CFG_CMD_ALARM_SHIELD_RULE = "AlarmShieldRule"; // 告警屏蔽规则( CFG_ALARM_SHIELD_RULE_INFO)
+ public static final String CFG_CMD_JUDICATURE = "Judicature"; // 刻录配置(对应 CFG_JUDICATURE_INFO)
+ public static final String CFG_CMD_PTZ = "Ptz"; // 云台配置(对应 CFG_PTZ_INFO)
+ public static final String CFG_CMD_PTZ_AUTO_MOVEMENT = "PtzAutoMovement"; //云台定时动作配置(对应 CFG_PTZ_AUTOMOVE_INFO)
+ public static final String CFG_CMD_OPEN_DOOR_GROUP = "OpenDoorGroup"; // 多人多开门方式组合配置(CFG_OPEN_DOOR_GROUP_INFO)
+ public static final String CFG_CMD_PARKING_SPACE_LIGHT_GROUP = "ParkingSpaceLightGroup"; // 车位指示灯本机配置(对应 CFG_PARKING_SPACE_LIGHT_GROUP_INFO_ALL)
+ public static final String CFG_CMD_LIGHT = "Light"; // 灯光设备配置 (对应结构体 CFG_LIGHT_INFO)
+ public static final String CFG_CMD_LIGHTING = "Lighting"; // 灯光设置(CFG_LIGHTING_INFO)
+ public static final String CFG_CMD_COMPOSE_CHANNEL = "ComposeChannel"; // 合成通道配置(对应 CFG_COMPOSE_CHANNEL)
+ public static final String CFG_CMD_PICINPIC = "PicInPic"; // 审讯画中画(对应 CFG_PICINPIC_INFO)改为数组方式,兼容以前单个配置,根据长度区分
+ public static final String CFG_CMD_IDLEMOTION_INFO = "IdleMotion"; // 空闲动作配置(CFG_IDLE_MOTION_INFO)
+ public static final String CFG_CMD_INFRARED_CONFIG = "InfraredSet"; // 红外功能配置 (对应 CFG_INFRARED_INFO, 手持设备使用)
+ public static final String CFG_CMD_REGULATOR_DETECT = "RegulatorDetect"; // 标准黑体源异常报警,对应结构体 CFG_REGULATOR_DETECT_INFO. 热成像通道有效
+ public static final String CFG_CMD_RECORD_STORAGEPOINT_EX = "RecordStoragePoint"; // 录像存储点映射配置扩展 (对应 CFG_RECORDTOSTORAGEPOINT_EX_INFO)
+ public static final String CFG_CMD_WATERMARK = "WaterMark"; //视频水印配置(对应 CFG_WATERMARK_INFO)
+ public static final String CFG_CMD_AUDIOINPUT = "AudioInput"; //音频输入配置(CFG_AUDIO_INPUT)
+ // 命令类型, 对应 CLIENT_QueryNewSystemInfo 接口
+ public static final String CFG_CAP_CMD_SPEAK = "speak.getCaps";
+ public static final String CFG_CAP_CMD_DEVICE_STATE = "trafficSnap.getDeviceStatus"; // 获取设备状态信息 (对应 CFG_CAP_TRAFFIC_DEVICE_STATUS)
+ public static final String CFG_CAP_CMD_RECORDFINDER = "RecordFinder.getCaps"; // 获取查询记录能力集, (对应结构体 CFG_CAP_RECORDFINDER_INFO)
+ public static final String CFG_CMD_VIDEODIAGNOSIS_GETSTATE = "videoDiagnosisServer.getState"; // 获取视频诊断进行状态(CFG_VIDEODIAGNOSIS_STATE_INFO)
+ public static final String CFG_CAP_CMD_PTZ_ENABLE = "ptz.factory.instance"; // 获取云台支持信息(CFG_CAP_PTZ_ENABLEINFO)
+ // CLIENT_FileTransmit接口传输文件类型
+ public static final int NET_DEV_BLACKWHITETRANS_START = 0x0003; // 开始发送禁止/允许名单(对应结构体 NETDEV_BLACKWHITE_LIST_INFO)
+ public static final int NET_DEV_BLACKWHITETRANS_SEND = 0x0004; // 发送禁止/允许名单
+ public static final int NET_DEV_BLACKWHITETRANS_STOP = 0x0005; // 停止发送禁止/允许名单
+ // 配置类型,对应CLIENT_GetDevConfig和CLIENT_SetDevConfig接口
+ public static final int NET_DEV_DEVICECFG = 0x0001; // 设备属性配置
+ public static final int NET_DEV_VIDEO_OSD_CFG = 0x0023; // 视频OSD叠加配置(对应结构体 NET_DVR_VIDEOOSD_CFG)
+ public static final int NET_DEV_NETCFG_EX = 0x005b; // 网络扩展配置(对应结构体 NETDEV_NET_CFG_EX )
+ public static final int NET_DEV_TIMECFG = 0x0008; // DVR时间配置
+ public static final int NET_DEV_AUTOMTCFG = 0x000A; // 自动维护配置(对应结构体NETDEV_AUTOMT_CFG)
+ public static final int NET_DEV_ENCLOSURE_CFG = 0x0066; // 电子围栏配置(对应结构体 NETDEV_ENCLOSURE_CFG)
+ public static final int NET_DEV_ENCLOSURE_VERSION_CFG = 0x0067; // 电子围栏版本号配置(对应结构体 NETDEV_ENCLOSURE_VERSION_CFG)
+ public static final int NET_DEV_ENCODER_CFG = 0x0040; // 数字通道的前端编码器信息(混合DVR使用,结构体DEV_ENCODER_CFG)
+ // 查询类型,对应CLIENT_QueryDevState接口
+ public static final int NET_DEVSTATE_COMM_ALARM = 0x0001; // 查询普通报警状态(包括外部报警,视频丢失,动态检测)
+ public static final int NET_DEVSTATE_SHELTER_ALARM = 0x0002; // 查询遮挡报警状态
+ public static final int NET_DEVSTATE_RECORDING = 0x0003; // 查询录象状态
+ public static final int NET_DEVSTATE_DISK = 0x0004; // 查询硬盘信息
+ public static final int NET_DEVSTATE_RESOURCE = 0x0005; // 查询系统资源状态
+ public static final int NET_DEVSTATE_BITRATE = 0x0006; // 查询通道码流
+ public static final int NET_DEVSTATE_CONN = 0x0007; // 查询设备连接状态
+ public static final int NET_DEVSTATE_PROTOCAL_VER = 0x0008; // 查询网络协议版本号,pBuf = int*
+ public static final int NET_DEVSTATE_TALK_ECTYPE = 0x0009; // 查询设备支持的语音对讲格式列表,见结构体NETDEV_TALKFORMAT_LIST
+ public static final int NET_DEVSTATE_SD_CARD = 0x000A; // 查询SD卡信息(IPC类产品)
+ public static final int NET_DEVSTATE_BURNING_DEV = 0x000B; // 查询刻录机信息,见结构体NET_BURNING_DEVINFO
+ public static final int NET_DEVSTATE_BURNING_PROGRESS = 0x000C; // 查询刻录进度
+ public static final int NET_DEVSTATE_PLATFORM = 0x000D; // 查询设备支持的接入平台
+ public static final int NET_DEVSTATE_CAMERA = 0x000E; // 查询摄像头属性信息(IPC类产品),pBuf = NETDEV_CAMERA_INFO *,可以有多个结构体
+ public static final int NET_DEVSTATE_SOFTWARE = 0x000F; // 查询设备软件版本信息 NETDEV_VERSION_INFO
+ public static final int NET_DEVSTATE_LANGUAGE = 0x0010; // 查询设备支持的语音种类
+ public static final int NET_DEVSTATE_DSP = 0x0011; // 查询DSP能力描述(对应结构体NET_DEV_DSP_ENCODECAP)
+ public static final int NET_DEVSTATE_OEM = 0x0012; // 查询OEM信息
+ public static final int NET_DEVSTATE_NET = 0x0013; // 查询网络运行状态信息
+ public static final int NET_DEVSTATE_TYPE = 0x0014; // 查询设备类型
+ public static final int NET_DEVSTATE_SNAP = 0x0015; // 查询功能属性(IPC类产品)
+ public static final int NET_DEVSTATE_RECORD_TIME = 0x0016; // 查询最早录像时间和最近录像时间
+ public static final int NET_DEVSTATE_NET_RSSI = 0x0017; // 查询无线网络信号强度,见结构体NETDEV_WIRELESS_RSS_INFO
+ public static final int NET_DEVSTATE_BURNING_ATTACH = 0x0018; // 查询附件刻录选项
+ public static final int NET_DEVSTATE_BACKUP_DEV = 0x0019; // 查询备份设备列表
+ public static final int NET_DEVSTATE_BACKUP_DEV_INFO = 0x001a; // 查询备份设备详细信息 NETDEV_BACKUP_INFO
+ public static final int NET_DEVSTATE_BACKUP_FEEDBACK = 0x001b; // 备份进度反馈
+ public static final int NET_DEVSTATE_ATM_QUERY_TRADE = 0x001c; // 查询ATM交易类型
+ public static final int NET_DEVSTATE_SIP = 0x001d; // 查询sip状态
+ public static final int NET_DEVSTATE_VICHILE_STATE = 0x001e; // 查询车载wifi状态
+ public static final int NET_DEVSTATE_TEST_EMAIL = 0x001f; // 查询邮件配置是否成功
+ public static final int NET_DEVSTATE_SMART_HARD_DISK = 0x0020; // 查询硬盘smart信息 ,(见结构体 DHDEV_SMART_HARDDISK)
+ public static final int NET_DEVSTATE_TEST_SNAPPICTURE = 0x0021; // 查询抓图设置是否成功
+ public static final int NET_DEVSTATE_STATIC_ALARM = 0x0022; // 查询静态报警状态
+ public static final int NET_DEVSTATE_SUBMODULE_INFO = 0x0023; // 查询设备子模块信息
+ public static final int NET_DEVSTATE_DISKDAMAGE = 0x0024; // 查询硬盘坏道能力
+ public static final int NET_DEVSTATE_IPC = 0x0025; // 查询设备支持的IPC能力, 见结构体NET_DEV_IPC_INFO
+ public static final int NET_DEVSTATE_ALARM_ARM_DISARM = 0x0026; // 查询报警布撤防状态
+ public static final int NET_DEVSTATE_ACC_POWEROFF_ALARM = 0x0027; // 查询ACC断电报警状态(返回一个DWORD, 1表示断电,0表示通电)
+ public static final int NET_DEVSTATE_TEST_FTP_SERVER = 0x0028; // 测试FTP服务器连接
+ public static final int NET_DEVSTATE_3GFLOW_EXCEED = 0x0029; // 查询3G流量超出阈值状态,(见结构体 NETDEV_3GFLOW_EXCEED_STATE_INFO)
+ public static final int NET_DEVSTATE_3GFLOW_INFO = 0x002a; // 查询3G网络流量信息,见结构体 NET_DEV_3GFLOW_INFO
+ public static final int NET_DEVSTATE_VIHICLE_INFO_UPLOAD = 0x002b; // 车载自定义信息上传(见结构体 ALARM_VEHICLE_INFO_UPLOAD)
+ public static final int NET_DEVSTATE_SPEED_LIMIT = 0x002c; // 查询限速报警状态(见结构体ALARM_SPEED_LIMIT)
+ public static final int NET_DEVSTATE_DSP_EX = 0x002d; // 查询DSP扩展能力描述(对应结构体 NET_DEV_DSP_ENCODECAP_EX)
+ public static final int NET_DEVSTATE_3GMODULE_INFO = 0x002e; // 查询3G模块信息(对应结构体NET_DEV_3GMODULE_INFO)
+ public static final int NET_DEVSTATE_MULTI_DDNS = 0x002f; // 查询多DDNS状态信息(对应结构体NET_DEV_MULTI_DDNS_INFO)
+ public static final int NET_DEVSTATE_CONFIG_URL = 0x0030; // 查询设备配置URL信息(对应结构体NET_DEV_URL_INFO)
+ public static final int NET_DEVSTATE_HARDKEY = 0x0031; // 查询HardKey状态(对应结构体NETDEV_HARDKEY_STATE)
+ public static final int NET_DEVSTATE_ISCSI_PATH = 0x0032; // 查询ISCSI路径列表(对应结构体NETDEV_ISCSI_PATHLIST)
+ public static final int NET_DEVSTATE_DLPREVIEW_SLIPT_CAP = 0x0033; // 查询设备本地预览支持的分割模式(对应结构体DEVICE_LOCALPREVIEW_SLIPT_CAP)
+ public static final int NET_DEVSTATE_WIFI_ROUTE_CAP = 0x0034; // 查询无线路由能力信息(对应结构体NETDEV_WIFI_ROUTE_CAP)
+ public static final int NET_DEVSTATE_ONLINE = 0x0035; // 查询设备的在线状态(返回一个DWORD, 1表示在线, 0表示断线)
+ public static final int NET_DEVSTATE_PTZ_LOCATION = 0x0036; // 查询云台状态信息(对应结构体 NET_PTZ_LOCATION_INFO)
+ public static final int NET_DEVSTATE_MONITOR_INFO = 0x0037; // 画面监控辅助信息(对应结构体NETDEV_MONITOR_INFO)
+ public static final int NET_DEVSTATE_SUBDEVICE = 0x0300; // 查询子设备(电源, 风扇等)状态(对应结构体CFG_DEVICESTATUS_INFO)
+ public static final int NET_DEVSTATE_RAID_INFO = 0x0038; // 查询RAID状态(对应结构体ALARM_RAID_INFO)
+ public static final int NET_DEVSTATE_TEST_DDNSDOMAIN = 0x0039; // 测试DDNS域名是否可用
+ public static final int NET_DEVSTATE_VIRTUALCAMERA = 0x003a; // 查询虚拟摄像头状态(对应 NETDEV_VIRTUALCAMERA_STATE_INFO)
+ public static final int NET_DEVSTATE_TRAFFICWORKSTATE = 0x003b; // 获取设备工作视频/线圈模式状态等(对应NETDEV_TRAFFICWORKSTATE_INFO)
+ public static final int NET_DEVSTATE_ALARM_CAMERA_MOVE = 0x003c; // 获取摄像机移位报警事件状态(对应ALARM_CAMERA_MOVE_INFO)
+ public static final int NET_DEVSTATE_ALARM = 0x003e; // 获取外部报警状态(对应 NET_CLIENT_ALARM_STATE)
+ public static final int NET_DEVSTATE_VIDEOLOST = 0x003f; // 获取视频丢失报警状态(对应 NET_CLIENT_VIDEOLOST_STATE)
+ public static final int NET_DEVSTATE_MOTIONDETECT = 0x0040; // 获取动态监测报警状态(对应 NET_CLIENT_MOTIONDETECT_STATE)
+ public static final int NET_DEVSTATE_DETAILEDMOTION = 0x0041; // 获取详细的动态监测报警状态(对应 NET_CLIENT_DETAILEDMOTION_STATE)
+ public static final int NET_DEVSTATE_VEHICLE_INFO = 0x0042; // 获取车载自身各种硬件信息(对应 NETDEV_VEHICLE_INFO)
+ public static final int NET_DEVSTATE_VIDEOBLIND = 0x0043; // 获取视频遮挡报警状态(对应 NET_CLIENT_VIDEOBLIND_STATE)
+ public static final int NET_DEVSTATE_3GSTATE_INFO = 0x0044; // 查询3G模块相关信息(对应结构体NETDEV_VEHICLE_3GMODULE)
+ public static final int NET_DEVSTATE_NETINTERFACE = 0x0045; // 查询网络接口信息(对应 NETDEV_NETINTERFACE_INFO)
+ public static final int NET_DEVSTATE_PICINPIC_CHN = 0x0046; // 查询画中画通道号(对应DWORD数组)
+ public static final int NET_DEVSTATE_COMPOSITE_CHN = 0x0047; // 查询融合屏通道信息(对应 NET_COMPOSITE_CHANNEL数组)
+ public static final int NET_DEVSTATE_WHOLE_RECORDING = 0x0048; // 查询设备整体录像状态(对应BOOL), 只要有一个通道在录像,即为设备整体状态为录像
+ public static final int NET_DEVSTATE_WHOLE_ENCODING = 0x0049; // 查询设备整体编码状态(对应BOOL), 只要有一个通道在编码,即为设备整体状态为编码
+ public static final int NET_DEVSTATE_DISK_RECORDE_TIME = 0x004a; // 查询设备硬盘录像时间信息(pBuf = DEV_DISK_RECORD_TIME*,可以有多个结构体)
+ public static final int NET_DEVSTATE_BURNER_DOOR = 0x004b; // 是否已弹出刻录机光驱门(对应结构体 NET_DEVSTATE_BURNERDOOR)
+ public static final int NET_DEVSTATE_GET_DATA_CHECK = 0x004c; // 查询光盘数据校验进度(对应 NET_DEVSTATE_DATA_CHECK)
+ public static final int NET_DEVSTATE_ALARM_IN_CHANNEL = 0x004f; // 查询报警输入通道信息(对应NET_ALARM_IN_CHANNEL数组)
+ public static final int NET_DEVSTATE_ALARM_CHN_COUNT = 0x0050; // 查询报警通道数(对应NET_ALARM_CHANNEL_COUNT)
+ public static final int NET_DEVSTATE_PTZ_VIEW_RANGE = 0x0051; // 查询云台可视域状态(对应 NET_OUT_PTZ_VIEW_RANGE_STATUS )
+ public static final int NET_DEVSTATE_DEV_CHN_COUNT = 0x0052; // 查询设备通道信息(对应NET_DEV_CHN_COUNT_INFO)
+ public static final int NET_DEVSTATE_RTSP_URL = 0x0053; // 查询设备支持的RTSP URL列表,见结构体DEV_RTSPURL_LIST
+ public static final int NET_DEVSTATE_LIMIT_LOGIN_TIME = 0x0054; // 查询设备登录的在线超时时间,返回一个BTYE,(单位:分钟) ,0表示不限制,非零正整数表示限制的分钟数
+ public static final int NET_DEVSTATE_GET_COMM_COUNT = 0x0055; // 获取串口数 见结构体NET_GET_COMM_COUNT
+ public static final int NET_DEVSTATE_RECORDING_DETAIL = 0x0056; // 查询录象状态详细信息(pBuf = NET_RECORD_STATE_DETAIL*)
+ public static final int NET_DEVSTATE_PTZ_PRESET_LIST = 0x0057; // 获取当前云台的预置点列表(对应结构NET_PTZ_PRESET_LIST)
+ public static final int NET_DEVSTATE_EXTERNAL_DEVICE = 0x0058; // 外接设备信息(pBuf = NET_EXTERNAL_DEVICE*)
+ public static final int NET_DEVSTATE_GET_UPGRADE_STATE = 0x0059; // 获取设备升级状态(对应结构 NETDEV_UPGRADE_STATE_INFO)
+ public static final int NET_DEVSTATE_MULTIPLAYBACK_SPLIT_CAP = 0x005a; // 获取多通道预览分割能力( 对应结构体 NET_MULTIPLAYBACK_SPLIT_CAP )
+ public static final int NET_DEVSTATE_BURN_SESSION_NUM = 0x005b; // 获取刻录会话总数(pBuf = int*)
+ public static final int NET_DEVSTATE_PROTECTIVE_CAPSULE = 0X005c; // 查询防护舱状态(对应结构体ALARM_PROTECTIVE_CAPSULE_INFO)
+ public static final int NET_DEVSTATE_GET_DOORWORK_MODE = 0X005d; // 获取门锁控制模式( 对应 NET_GET_DOORWORK_MODE)
+ public static final int NET_DEVSTATE_PTZ_ZOOM_INFO = 0x005e; // 查询云台获取光学变倍信息(对应 NET_OUT_PTZ_ZOOM_INFO )
+ public static final int NET_DEVSTATE_POWER_STATE = 0x0152; // 查询电源状态(对应结构体NET_POWER_STATUS)
+ public static final int NET_DEVSTATE_ALL_ALARM_CHANNELS_STATE = 0x153; // 查询报警通道状态(对应结构体 NET_CLIENT_ALARM_CHANNELS_STATE)
+ public static final int NET_DEVSTATE_ALARMKEYBOARD_COUNT = 0x0154; // 查询串口上连接的报警键盘数(对应结构体NET_ALARMKEYBOARD_COUNT)
+ public static final int NET_DEVSTATE_EXALARMCHANNELS = 0x0155; // 查询扩展报警模块通道映射关系(对应结构体 NET_EXALARMCHANNELS)
+ public static final int NET_DEVSTATE_GET_BYPASS = 0x0156; // 查询通道旁路状态(对应结构体 NET_DEVSTATE_GET_BYPASS)
+ public static final int NET_DEVSTATE_ACTIVATEDDEFENCEAREA = 0x0157; // 获取激活的防区信息(对应结构体 NET_ACTIVATEDDEFENCEAREA)
+ public static final int NET_DEVSTATE_DEV_RECORDSET = 0x0158; // 查询设备记录集信息(对应 NET_CTRL_RECORDSET_PARAM)
+ public static final int NET_DEVSTATE_DOOR_STATE = 0x0159; // 查询门禁状态(对应NET_DOOR_STATUS_INFO)
+ public static final int NET_DEVSTATE_ANALOGALARM_CHANNELS = 0x1560; // 模拟量报警输入通道映射关系(对应NET_ANALOGALARM_CHANNELS)
+ public static final int NET_DEVSTATE_GET_SENSORLIST = 0x1561; // 获取设备支持的传感器列表(对应 NET_SENSOR_LIST)
+ public static final int NET_DEVSTATE_ALARM_CHANNELS = 0x1562; // 查询开关量报警模块通道映射关系(对应结构体 NET_ALARM_CHANNELS)
+ public static final int NET_DEVSTATE_GET_ALARM_SUBSYSTEM_ACTIVATESTATUS = 0x1563; // 获取当前子系统启用状态( 对应 NET_GET_ALARM_SUBSYSTEM_ACTIVATE_STATUES)
+ public static final int NET_DEVSTATE_AIRCONDITION_STATE = 0x1564; // 获取空调工作状态(对应 NET_GET_AIRCONDITION_STATE)
+ public static final int NET_DEVSTATE_ALARMSUBSYSTEM_STATE = 0x1565; // 获取子系统状态(对应NET_ALARM_SUBSYSTEM_STATE)
+ public static final int NET_DEVSTATE_ALARM_FAULT_STATE = 0x1566; // 获取故障状态(对应 NET_ALARM_FAULT_STATE_INFO)
+ public static final int NET_DEVSTATE_DEFENCE_STATE = 0x1567; // 获取防区状态(对应 NET_DEFENCE_STATE_INFO, 和旁路状态变化事件、本地报警事件、报警信号源事件的状态描述有区别,不能混用,仅个别设备使用)
+ public static final int NET_DEVSTATE_CLUSTER_STATE = 0x1568; // 获取集群状态(对应 NET_CLUSTER_STATE_INFO)
+ public static final int NET_DEVSTATE_SCADA_POINT_LIST = 0x1569; // 获取点位表路径信息(对应 NET_SCADA_POINT_LIST_INFO)
+ public static final int NET_DEVSTATE_SCADA_INFO = 0x156a; // 获取监测点位信息(对应 NET_SCADA_INFO)
+ public static final int NET_DEVSTATE_SCADA_CAPS = 0X156b; // 获取SCADA能力集(对应 NET_SCADA_CAPS)
+ public static final int NET_DEVSTATE_GET_CODEID_COUNT = 0x156c; // 获取对码成功的总条数(对应 NET_GET_CODEID_COUNT)
+ public static final int NET_DEVSTATE_GET_CODEID_LIST = 0x156d; // 查询对码信息(对应 NET_GET_CODEID_LIST)
+ public static final int NET_DEVSTATE_ANALOGALARM_DATA = 0x156e; // 查询模拟量通道数据(对应 NET_GET_ANALOGALARM_DATA)
+ public static final int NET_DEVSTATE_VTP_CALLSTATE = 0x156f; // 获取视频电话呼叫状态(对应 NET_GET_VTP_CALLSTATE)
+ public static final int NET_DEVSTATE_SCADA_INFO_BY_ID = 0x1570; // 通过设备、获取监测点位信息(对应 NET_SCADA_INFO_BY_ID)
+ public static final int NET_DEVSTATE_SCADA_DEVICE_LIST = 0x1571; // 获取当前主机所接入的外部设备ID(对应 NET_SCADA_DEVICE_LIST)
+ public static final int NET_DEVSTATE_DEV_RECORDSET_EX = 0x1572; // 查询设备记录集信息(带二进制数据)(对应NET_CTRL_RECORDSET_PARAM)
+ public static final int NET_DEVSTATE_ACCESS_LOCK_VER = 0x1573; // 获取门锁软件版本号(对应 NET_ACCESS_LOCK_VER)
+ public static final int NET_DEVSTATE_MONITORWALL_TVINFO = 0x1574; // 获取电视墙显示信息(对应 NET_CTRL_MONITORWALL_TVINFO)
+ public static final int NET_DEVSTATE_GET_ALL_POS = 0x1575; // 获取所有用户可用Pos设备配置信息(对应 NET_POS_ALL_INFO)
+ public static final int NET_DEVSTATE_GET_ROAD_LIST = 0x1576; // 获取城市及路段编码信息(对应 NET_ROAD_LIST_INFO)
+ public static final int NET_DEVSTATE_GET_HEAT_MAP = 0x1577; // 获取热度统计信息(对应 NET_QUERY_HEAT_MAP)
+ public static final int NET_DEVSTATE_GET_WORK_STATE = 0x1578; // 获取盒子工作状态信息(对应 NET_QUERY_WORK_STATE )
+ public static final int NET_DEVSTATE_GET_WIRESSLESS_STATE = 0x1579; // 获取无线设备状态信息(对应 NET_GET_WIRELESS_DEVICE_STATE)
+ public static final int NET_DEVSTATE_GET_REDUNDANCE_POWER_INFO = 0x157a; // 获取冗余电源信息(对应 NET_GET_REDUNDANCE_POWER_INFO)
+ public static final int NET_DEVSTATE_GET_ACCESSORY_INFO = 0x157e; // 获取配件信息(对应 NET_GET_ACCESSORY_INFO)
+ // 查询设备信息类型, 对应接口 CLIENT_QueryDevInfo
+ public static final int NET_QUERY_DEV_STORAGE_NAMES = 0x01; // 查询设备的存储模块名列表 , pInBuf=NET_IN_STORAGE_DEV_NAMES *, pOutBuf=NET_OUT_STORAGE_DEV_NAMES *
+ public static final int NET_QUERY_DEV_STORAGE_INFOS = 0x02; // 查询设备的存储模块信息列表, pInBuf=NET_IN_STORAGE_DEV_INFOS*, pOutBuf= NET_OUT_STORAGE_DEV_INFOS *
+ public static final int NET_QUERY_RECENCY_JNNCTION_CAR_INFO = 0x03; // 查询最近的卡口车辆信息接口, pInBuf=NET_IN_GET_RECENCY_JUNCTION_CAR_INFO*, pOutBuf=NET_OUT_GET_RECENCY_JUNCTION_CAR_INFO*
+ public static final int NET_QUERY_LANES_STATE = 0x04; // 查询车道信息,pInBuf = NET_IN_GET_LANES_STATE , pOutBuf = NET_OUT_GET_LANES_STATE
+ public static final int NET_QUERY_DEV_FISHEYE_WININFO = 0x05; // 查询鱼眼窗口信息 , pInBuf= NET_IN_FISHEYE_WININFO*, pOutBuf=NET_OUT_FISHEYE_WININFO *
+ public static final int NET_QUERY_DEV_REMOTE_DEVICE_INFO = 0x06; ; // 查询远程设备信息 , pInBuf= NET_IN_GET_DEVICE_INFO*, pOutBuf= NET_OUT_GET_DEVICE_INFO *
+ public static final int NET_QUERY_SYSTEM_INFO = 0x07; // 查询设备系统信息 , pInBuf= NET_IN_SYSTEM_INFO*, pOutBuf= NET_OUT_SYSTEM_INFO*
+ public static final int NET_QUERY_REG_DEVICE_NET_INFO = 0x08; // 查询主动注册设备的网络连接 , pInBuf=NET_IN_REGDEV_NET_INFO * , pOutBuf=NET_OUT_REGDEV_NET_INFO *
+ public static final int NET_QUERY_DEV_THERMO_GRAPHY_PRESET = 0x09; // 查询热成像预设信息 , pInBuf= NET_IN_THERMO_GET_PRESETINFO*, pOutBuf= NET_OUT_THERMO_GET_PRESETINFO *
+ public static final int NET_QUERY_DEV_THERMO_GRAPHY_OPTREGION = 0x0a; // 查询热成像感兴趣区域信息,pInBuf= NET_IN_THERMO_GET_OPTREGION*, pOutBuf= NET_OUT_THERMO_GET_OPTREGION *
+ public static final int NET_QUERY_DEV_THERMO_GRAPHY_EXTSYSINFO = 0x0b; // 查询热成像外部系统信息, pInBuf= NET_IN_THERMO_GET_EXTSYSINFO*, pOutBuf= NET_OUT_THERMO_GET_EXTSYSINFO *
+ public static final int NET_QUERY_DEV_RADIOMETRY_POINT_TEMPER = 0x0c; // 查询测温点的参数值, pInBuf= NET_IN_RADIOMETRY_GETPOINTTEMPER*, pOutBuf= NET_OUT_RADIOMETRY_GETPOINTTEMPER *
+ public static final int NET_QUERY_DEV_RADIOMETRY_TEMPER = 0x0d; // 查询测温项的参数值, pInBuf= NET_IN_RADIOMETRY_GETTEMPER*, pOutBuf= NET_OUT_RADIOMETRY_GETTEMPER *
+ public static final int NET_QUERY_GET_CAMERA_STATE = 0x0e; // 获取摄像机状态, pInBuf= NET_IN_GET_CAMERA_STATEINFO*, pOutBuf= NET_OUT_GET_CAMERA_STATEINFO *
+ public static final int NET_QUERY_GET_REMOTE_CHANNEL_AUDIO_ENCODE = 0x0f; // 获取远程通道音频编码方式, pInBuf= NET_IN_GET_REMOTE_CHANNEL_AUDIO_ENCODEINFO*, pOutBuf= NET_OUT_GET_REMOTE_CHANNEL_AUDIO_ENCODEINFO *
+ public static final int NET_QUERY_GET_COMM_PORT_INFO = 0x10; // 获取设备串口信息, pInBuf=NET_IN_GET_COMM_PORT_INFO* , pOutBuf=NET_OUT_GET_COMM_PORT_INFO*
+ public static final int NET_QUERY_GET_LINKCHANNELS = 0x11; // 查询某视频通道的关联通道列表,pInBuf=NET_IN_GET_LINKCHANNELS* , pOutBuf=NET_OUT_GET_LINKCHANNELS*
+ public static final int NET_QUERY_GET_VIDEOOUTPUTCHANNELS = 0x12; // 获取解码通道数量统计信息, pInBuf=NET_IN_GET_VIDEOOUTPUTCHANNELS*, pOutBuf=NET_OUT_GET_VIDEOOUTPUTCHANNELS*
+ public static final int NET_QUERY_GET_VIDEOINFO = 0x13; // 获取解码通道信息, pInBuf=NET_IN_GET_VIDEOINFO*, pOutBuf=NET_OUT_GET_VIDEOINFO*
+ public static final int NET_QUERY_GET_ALLLINKCHANNELS = 0x14; // 查询全部视频关联通道列表,pInBuf=NET_IN_GET_ALLLINKCHANNELS* , pOutBuf=NET_OUT_GET_ALLLINKCHANNELS*
+ public static final int NET_QUERY_VIDEOCHANNELSINFO = 0x15; // 查询视频通道信息,pInBuf=NET_IN_GET_VIDEOCHANNELSINFO* , pOutBuf=NET_OUT_GET_VIDEOCHANNELSINFO*
+ public static final int NET_QUERY_TRAFFICRADAR_VERSION = 0x16; // 查询雷达设备版本,pInBuf=NET_IN_TRAFFICRADAR_VERSION* , pOutBuf=NET_OUT_TRAFFICRADAR_VERSION*
+ public static final int NET_QUERY_WORKGROUP_NAMES = 0x17; // 查询所有的工作目录组名,pInBuf=NET_IN_WORKGROUP_NAMES* , pOutBuf=NET_OUT_WORKGROUP_NAMES*
+ public static final int NET_QUERY_WORKGROUP_INFO = 0x18; // 查询工作组信息,pInBuf=NET_IN_WORKGROUP_INFO* , pOutBuf=NET_OUT_WORKGROUP_INFO*
+ public static final int NET_QUERY_WLAN_ACCESSPOINT = 0x19; // 查询无线网络接入点信息,pInBuf=NET_IN_WLAN_ACCESSPOINT* , pOutBuf=NET_OUT_WLAN_ACCESSPOINT*
+ public static final int NET_QUERY_GPS_INFO = 0x1a; // 查询设备GPS信息,pInBuf=NET_IN_DEV_GPS_INFO* , pOutBuf=NET_OUT_DEV_GPS_INFO*
+ public static final int NET_QUERY_IVS_REMOTE_DEVICE_INFO = 0x1b; // 查询IVS的前端设备所关联的远程设备信息, pInBuf = NET_IN_IVS_REMOTE_DEV_INFO*, pOutBuf = NET_OUT_IVS_REMOTE_DEV_INFO*
+ public static final int NET_QUERY_VIDEO_ENCODE_CAPS = 0x1e; // 获取视频编码能力集, pInBuf = NET_IN_VIDEO_ENCODE_CAPS*, pOutBuf = NET_OUT_VIDEO_ENCODE_CAPS*
+ public static final int NET_QUERY_HARDDISK_TEMPERATURE = 0x22; // 获取硬盘温度,pInBuf = NET_IN_HDD_TEMPERATURE*, pOutBuf = NET_OUT_HDD_TEMPERATURE*
+ public static final int NET_QUERY_AUDIO_DECODE_CAPS = 0x25; // 获取音频解码能力集, pInBuf = NET_IN_AUDIO_DECODE_CAPS*, pOutBuf = NET_OUT_AUDIO_DECODE_CAPS*
+ public static final int NET_QUERY_REMOTE_DEVICE_CAPS = 0x27; // 获取远程设备管理能力集, pInBuf = NET_IN_REMOTEDEVICE_CAP*, pOutBuf= NET_OUT_REMOTEDEVICE_CAP
+ public static final int NET_QUERY_TRAFFIC_SNAP_RADAR = 0x28; // 获取智能交通雷达信息, pInfo = NET_IN_TRAFFIC_SNAP_RADAR_INFO*, pOutBuf = NET_OUT_TRAFFIC_SNAP_RADAR_INFO*
+ public static final int NET_QUERY_TRAFFIC_SNAP_STROBE = 0x29; // 获取智能交通道闸信息, pInfo = NET_IN_TRAFFIC_SNAP_STROBE_INFO*, pOutBuf = NET_OUT_TRAFFIC_SNAP_STROBE_INFO*
+ public static final int NET_QUERY_PTZ_CURRENT_FOV_VALUE = 0x36; // 获取镜头当前倍率下水平视场角参数,pInBuf = NET_IN_PTZ_CURRENT_FOV_VALUE*,pOutBuf = NET_OUT_PTZ_CURRENT_FOV_VALUE*
+ public static final int NET_QUERY_DEV_IO_STATS = 0x37; // 获取所有存储设备的io信息参数,pInBuf = NET_IN_DEV_IO_STATS*,pOutBuf = NET_OUT_DEV_IO_STAT*
+ public static final int NET_QUERY_PTZBASE_GET_HFOV_VALUE = 0x39; // 获取镜头不同倍率下水平视场角参数,pInBuf = NET_IN_PTZBASE_GET_HFOV_VALUE*,pOutBuf = NET_OUT_PTZBASE_GET_HFOV_VALUE*
+ public static final int NET_QUERY_PTZBASE_GET_CENTER_GPS = 0x3a; // 获取中心位置GPS信息,pInBuf = NET_IN_PTZBASE_GET_CENTER_GPS*,pOutBuf = NET_OUT_PTZBASE_GET_CENTER_GPS*
+ public static final int NET_QUERY_PTZBASE_GET_VFOV_VALUE = 0x3f; // 获取镜头不同倍率下垂直视场角参数,pInBuf = NET_IN_PTZBASE_GET_VFOV_VALUE*,pOutBuf = NET_OUT_PTZBASE_GET_VFOV_VALUE*
+ public static final int NET_QUERY_TRAFFIC_RADAR_GET_OBJECT = 0x35; // 获取雷达物体目标信息,pInBuf = NET_IN_TRAFFIC_RADAR_GET_OBJECT_INFO*,pOutBuf = NET_OUT_TRAFFIC_RADAR_GET_OBJECT_INFO*
+ public static final int NET_QUERY_DEV_STORAGE_INFOS_SP = 0x40; //查询设备的存储模块信息列表,结构体精简版本, pInBuf=NET_IN_STORAGE_DEV_INFOS*, pOutBuf= NET_OUT_STORAGE_DEV_INFOS_SP *
+ public static final int NET_QUERY_GET_ALL_PARKING_SPACE_STATUS = 0x32; //获取当前车位检测状态, pInBuf = NET_IN_GET_ALL_PARKING_SPACE_STATUS_INFO*, pOutBuf = NET_OUT_GET_ALL_PARKING_SPACE_STATUS_INFO*
+ // 设备能力类型, 对应CLIENT_GetDevCaps接口
+ public static final int NET_ACCESSCONTROL_CAPS = 0x20; // 获取门禁能力, pInBuf = NET_IN_AC_CAPS*, pOutBuf = NET_OUT_AC_CAPS*
+ public static final int NET_THERMO_GRAPHY_CAPS = 0x06; // 热成像摄像头属性能力,pInBuf=NET_IN_THERMO_GETCAPS*, pOutBuf=NET_OUT_THERMO_GETCAPS*
+ public static final int NET_RADIOMETRY_CAPS = 0x07; // 热成像测温全局配置能力,pInBuf=NET_IN_RADIOMETRY_GETCAPS*, pOutBuf=NET_OUT_RADIOMETRY_GETCAPS*
+ public static final int NET_MEDIAMANAGER_CAPS = 0x0a; //获取 VideoInput 的各个能力项,pInBuf=NET_IN_MEDIAMANAGER_GETCAPS*, pOutBuf=NET_OUT_MEDIAMANAGER_GETCAPS*
+ public static final int NET_REMOTE_SPEAK_CAPS = 0x38; //获取前端音频文件路径和能力集 pInBuf = NET_IN_REMOTE_SPEAK_CAPS*, pOutBuf = NET_OUT_REMOTE_SPEAK_CAPS*
+ // 视频诊断上报结果检测类型定义
+ public static final String NET_DIAGNOSIS_DITHER = "VideoDitherDetection"; // 视频抖动检测 对应结构体(NET_VIDEO_DITHER_DETECTIONRESULT)
+ public static final String NET_DIAGNOSIS_STRIATION = "VideoStriationDetection"; // 视频条纹检测 对应结构体(NET_VIDEO_STRIATION_DETECTIONRESULT)
+ public static final String NET_DIAGNOSIS_LOSS = "VideoLossDetection"; // 视频丢失检测 对应结构体(NET_VIDEO_LOSS_DETECTIONRESULT)
+ public static final String NET_DIAGNOSIS_COVER = "VideoCoverDetection"; // 视频遮挡检测 对应结构体(NET_VIDEO_COVER_DETECTIONRESULT)
+ public static final String NET_DIAGNOSIS_FROZEN = "VideoFrozenDetection"; // 视频冻结检测 对应结构体(NET_VIDEO_FROZEN_DETECTIONRESULT)
+ public static final String NET_DIAGNOSIS_BRIGHTNESS = "VideoBrightnessDetection"; // 视频亮度异常检测 对应结构体(NET_VIDEO_BRIGHTNESS_DETECTIONRESULT)
+ public static final String NET_DIAGNOSIS_CONTRAST = "VideoContrastDetection"; // 视频对比度异常检测 对应结构体(NET_VIDEO_CONTRAST_DETECTIONRESULT)
+ public static final String NET_DIAGNOSIS_UNBALANCE = "VideoUnbalanceDetection"; // 视频偏色检测 对应结构体(NET_VIDEO_UNBALANCE_DETECTIONRESULT)
+ public static final String NET_DIAGNOSIS_NOISE = "VideoNoiseDetection"; // 视频噪声检测 对应结构体(NET_VIDEO_NOISE_DETECTIONRESULT)
+ public static final String NET_DIAGNOSIS_BLUR = "VideoBlurDetection"; // 视频模糊检测 对应结构体(NET_VIDEO_BLUR_DETECTIONRESULT)
+ public static final String NET_DIAGNOSIS_SCENECHANGE = "VideoSceneChangeDetection"; // 视频场景变化检测 对应结构体(NET_VIDEO_SCENECHANGE_DETECTIONRESULT)
+ public static final String NET_DIAGNOSIS_VIDEO_DELAY = "VideoDelay"; // 视频延时检测 对应结构体(NET_VIDEO_DELAY_DETECTIONRESUL)
+ public static final String NET_DIAGNOSIS_PTZ_MOVING = "PTZMoving"; // 云台移动检测 对应结构体(NET_PTZ_MOVING_DETECTIONRESULT)
+ public static final String NET_DIAGNOSIS_BLACK_WHITE = "VideoBlackAndWhite"; // 黑白图像检测, 对应结构体(NET_BLACK_WHITE_DETECTIONRESULT)
+ public static final String NET_DIAGNOSIS_DRAMATIC_CHANGE = "VideoDramaticChange"; // 场景剧变检测, 对应结构体(NET_DIAGNOSIS_DRAMATIC_DETECTIONRESULT)
+ public static final String NET_DIAGNOSIS_VIDEO_AVAILABILITY = "VideoAvailability"; // 视频完好率监测, 对应结构体(NET_VIDEO_AVAILABILITY_DETECTIONRESULT)
+ public static final String NET_DIAGNOSIS_SNOWFLAKE = "SnowflakeDetection"; // 雪花屏检测, 对应结构体(NET_VIDEO_SNOWFLAKE_DETECTIONRESULT)
+ public static final String NET_DIAGNOSIS_VIDEO_ALGORITHMTYPE = "VideoAlgorithmType"; // 视频算法类型检测,对应结构体(NET_VIDEO_ALGORITHMTYPE_DETECTIONRESULT)
+ public static final String NET_DIAGNOSIS_VIDEO_FILCKERING_DETECTION = "VideoFilckeringDetection"; // 视频闪频检测, 对应结构体(NET_VIDEO_FILCKERING_DETECTION_RESULT)
+ public static final String NET_DIAGNOSIS_VIDEO_LOSS_FRAME_DETECTION = "VideoLossFrameDetection"; // 视频丢帧检测, 对应结构体(NET_VIDEO_LOSS_FRAME_DETECTION_RESULT)
+ // 矩阵子卡类型, 多种类型可以组合
+ public static final int NET_MATRIX_CARD_MAIN = 0x10000000; // 主卡
+ public static final int NET_MATRIX_CARD_INPUT = 0x00000001; // 输入卡
+ public static final int NET_MATRIX_CARD_OUTPUT = 0x00000002; // 输出卡
+ public static final int NET_MATRIX_CARD_ENCODE = 0x00000004; // 编码卡
+ public static final int NET_MATRIX_CARD_DECODE = 0x00000008; // 解码卡
+ public static final int NET_MATRIX_CARD_CASCADE = 0x00000010; // 级联卡
+ public static final int NET_MATRIX_CARD_INTELLIGENT = 0x00000020; // 智能卡
+ public static final int NET_MATRIX_CARD_ALARM = 0x00000040; // 报警卡
+ public static final int NET_MATRIX_CARD_RAID = 0x00000080; // 硬Raid卡
+ public static final int NET_MATRIX_CARD_NET_DECODE = 0x00000100; // 网络解码卡
+ // 保留数据类型
+ public static final int RESERVED_TYPE_FOR_INTEL_BOX = 0x00000001;
+ public static final int RESERVED_TYPE_FOR_COMMON = 0x00000010;
+ public static final int RESERVED_TYPE_FOR_PATH = 0x00000100;
+ /************************************************************************
+ ** 结构体
+ ***********************************************************************/
+ // 设置登入时的相关参数
+ public static class NET_PARAM extends SdkStructure
+ {
+ public int nWaittime; // 等待超时时间(毫秒为单位),为0默认5000ms
+ public int nConnectTime; // 连接超时时间(毫秒为单位),为0默认1500ms
+ public int nConnectTryNum; // 连接尝试次数,为0默认1次
+ public int nSubConnectSpaceTime; // 子连接之间的等待时间(毫秒为单位),为0默认10ms
+ public int nGetDevInfoTime; // 获取设备信息超时时间,为0默认1000ms
+ public int nConnectBufSize; // 每个连接接收数据缓冲大小(字节为单位),为0默认250*1024
+ public int nGetConnInfoTime; // 获取子连接信息超时时间(毫秒为单位),为0默认1000ms
+ public int nSearchRecordTime; // 按时间查询录像文件的超时时间(毫秒为单位),为0默认为3000ms
+ public int nsubDisconnetTime; // 检测子链接断线等待时间(毫秒为单位),为0默认为60000ms
+ public byte byNetType; // 网络类型, 0-LAN, 1-WAN
+ public byte byPlaybackBufSize; // 回放数据接收缓冲大小(M为单位),为0默认为4M
+ public byte bDetectDisconnTime; // 心跳检测断线时间(单位为秒),为0默认为60s,最小时间为2s
+ public byte bKeepLifeInterval; // 心跳包发送间隔(单位为秒),为0默认为10s,最小间隔为2s
+ public int nPicBufSize; // 实时图片接收缓冲大小(字节为单位),为0默认为2*1024*1024
+ public byte[] bReserved = new byte[4]; // 保留字段字段
+ }
+
+ // 设备设备参数
+ public static class NET_DEVICE_SEARCH_PARAM extends SdkStructure {
+ public int dwSize; // 结构体大小
+ /**
+ * 是否使用默认配置,默认为TRUE
+ */
+ public int bUseDefault;
+ /**
+ * 广播本地端口, 默认5050, 值为0时使用最近一次配置
+ */
+ public short wBroadcastLocalPort;
+ /**
+ * 广播远程端口, 默认5050, 值为0时使用最近一次配置
+ */
+ public short wBroadcastRemotePort;
+ /**
+ * 组播远程端口, 默认37810, 值为0时使用最近一次配置
+ */
+ public short wMulticastRemotePort;
+ /**
+ * 组播修改设备时是否只支持组播回复,默认FALSE表示单播或组播回复
+ */
+ public int bMulticastModifyRespond;
+ /**
+ * 组播本地端口, 默认37810, 值为0时使用最近一次配置
+ */
+ public short wMulticastLocalPort;
+ /**
+ * 端口不可用时自动更新端口次数,默认50次,范围[0-65534]
+ */
+ public int iAutoUpdatePortTimes;
+ /**
+ * AOL 组播远程端口, 默认8087, 值为0时使用最近一次配置
+ */
+ public short wAOLMulticastRemotePort;
+ /**
+ * AOL 组播本地端口, 默认37811, 值为0时使用最近一次配置
+ */
+ public short wAOLMulticastLocalPort;
+
+ public NET_DEVICE_SEARCH_PARAM() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 设备信息
+ public static class NET_DEVICEINFO extends SdkStructure {
+ public byte[] sSerialNumber = new byte[NET_SERIALNO_LEN]; // 序列号
+ public byte byAlarmInPortNum; // DVR报警输入个数
+ public byte byAlarmOutPortNum; // DVR报警输出个数
+ public byte byDiskNum; // DVR硬盘个数
+ public byte byDVRType; // DVR类型, 见枚举NET_DEV_DEVICE_TYPE
+ public union union = new union();
+ public static class union extends Union {
+ public byte byChanNum; // DVR通道个数
+ public byte byLeftLogTimes; // 当登陆失败原因为密码错误时,通过此参数通知用户,剩余登陆次数,为0时表示此参数无效
+ }
+ }
+
+ // 设备信息扩展///////////////////////////////////////////////////
+ public static class NET_DEVICEINFO_Ex extends SdkStructure {
+ public byte[] sSerialNumber = new byte[NET_SERIALNO_LEN]; // 序列号
+ public int byAlarmInPortNum; // DVR报警输入个数
+ public int byAlarmOutPortNum; // DVR报警输出个数
+ public int byDiskNum; // DVR硬盘个数
+ public int byDVRType; // DVR类型,见枚举NET_DEVICE_TYPE
+ public int byChanNum; // DVR通道个数
+ public byte byLimitLoginTime; // 在线超时时间,为0表示不限制登陆,非0表示限制的分钟数
+ public byte byLeftLogTimes; // 当登陆失败原因为密码错误时,通过此参数通知用户,剩余登陆次数,为0时表示此参数无效
+ public byte[] bReserved = new byte[2]; // 保留字节,字节对齐
+ public int byLockLeftTime; // 当登陆失败,用户解锁剩余时间(秒数), -1表示设备未设置该参数
+ public byte[] Reserved = new byte[24]; // 保留
+ }
+
+ // 对应接口 CLIENT_LoginEx2/////////////////////////////////////////////////////////
+ public static class EM_LOGIN_SPAC_CAP_TYPE extends SdkStructure {
+ public static final int EM_LOGIN_SPEC_CAP_TCP = 0; // TCP登陆, 默认方式
+ public static final int EM_LOGIN_SPEC_CAP_ANY = 1; // 无条件登陆
+ public static final int EM_LOGIN_SPEC_CAP_SERVER_CONN = 2; // 主动注册的登入
+ public static final int EM_LOGIN_SPEC_CAP_MULTICAST = 3; // 组播登陆
+ public static final int EM_LOGIN_SPEC_CAP_UDP = 4; // UDP方式下的登入
+ public static final int EM_LOGIN_SPEC_CAP_MAIN_CONN_ONLY = 6; // 只建主连接下的登入
+ public static final int EM_LOGIN_SPEC_CAP_SSL = 7; // SSL加密方式登陆
+ public static final int EM_LOGIN_SPEC_CAP_INTELLIGENT_BOX = 9; // 登录智能盒远程设备
+ public static final int EM_LOGIN_SPEC_CAP_NO_CONFIG = 10; // 登录设备后不做取配置操作
+ public static final int EM_LOGIN_SPEC_CAP_U_LOGIN = 11; // 用U盾设备的登入
+ public static final int EM_LOGIN_SPEC_CAP_LDAP = 12; // LDAP方式登录
+ public static final int EM_LOGIN_SPEC_CAP_AD = 13; // AD(ActiveDirectory)登录方式
+ public static final int EM_LOGIN_SPEC_CAP_RADIUS = 14; // Radius 登录方式
+ public static final int EM_LOGIN_SPEC_CAP_SOCKET_5 = 15; // Socks5登陆方式
+ public static final int EM_LOGIN_SPEC_CAP_CLOUD = 16; // 云登陆方式
+ public static final int EM_LOGIN_SPEC_CAP_AUTH_TWICE = 17; // 二次鉴权登陆方式
+ public static final int EM_LOGIN_SPEC_CAP_TS = 18; // TS码流客户端登陆方式
+ public static final int EM_LOGIN_SPEC_CAP_P2P = 19; // 为P2P登陆方式
+ public static final int EM_LOGIN_SPEC_CAP_MOBILE = 20; // 手机客户端登陆
+ }
+
+ // 时间
+ public static class NET_TIME extends SdkStructure {
+ public int dwYear; // 年
+ public int dwMonth; // 月
+ public int dwDay; // 日
+ public int dwHour; // 时
+ public int dwMinute; // 分
+ public int dwSecond; // 秒
+
+ public NET_TIME() {
+ this.dwYear = 0;
+ this.dwMonth = 0;
+ this.dwDay = 0;
+ this.dwHour = 0;
+ this.dwMinute = 0;
+ this.dwSecond = 0;
+ }
+
+ public void setTime(int year, int month, int day, int hour, int minute, int second) {
+ this.dwYear = year;
+ this.dwMonth = month;
+ this.dwDay = day;
+ this.dwHour = hour;
+ this.dwMinute = minute;
+ this.dwSecond = second;
+ }
+
+ public NET_TIME(NET_TIME other) {
+ this.dwYear = other.dwYear;
+ this.dwMonth = other.dwMonth;
+ this.dwDay = other.dwDay;
+ this.dwHour = other.dwHour;
+ this.dwMinute = other.dwMinute;
+ this.dwSecond = other.dwSecond;
+ }
+
+ public String toStringTime() {
+ return String.format("%02d/%02d/%02d %02d:%02d:%02d", dwYear, dwMonth, dwDay, dwHour, dwMinute, dwSecond);
+ }
+
+ public String toStringTimeEx() {
+ return String.format("%02d-%02d-%02d %02d:%02d:%02d", dwYear, dwMonth, dwDay, dwHour, dwMinute, dwSecond);
+ }
+
+ public String toString() {
+ return String.format("%02d%02d%02d%02d%02d%02d", dwYear, dwMonth, dwDay, dwHour, dwMinute, dwSecond);
+ }
+ }
+
+ public static class NET_TIME_EX extends SdkStructure
+ {
+ public int dwYear; // 年
+ public int dwMonth; // 月
+ public int dwDay; // 日
+ public int dwHour; // 时
+ public int dwMinute; // 分
+ public int dwSecond; // 秒
+ public int dwMillisecond; // 毫秒
+ public int dwUTC; // utc时间(获取时0表示无效,非0有效 下发无效)
+ public int[] dwReserved = new int[1]; // 保留字段
+
+ public void setTime(int year, int month, int day, int hour, int minute, int second) {
+ this.dwYear = year;
+ this.dwMonth = month;
+ this.dwDay = day;
+ this.dwHour = hour;
+ this.dwMinute = minute;
+ this.dwSecond = second;
+ this.dwMillisecond = 0;
+ }
+
+ public String toString() {
+ return dwYear + "/" + dwMonth + "/" + dwDay + " " + dwHour + ":" + dwMinute + ":" + dwSecond;
+ }
+
+ public String toStringTime()
+ {
+ return String.format("%02d/%02d/%02d %02d:%02d:%02d", dwYear, dwMonth, dwDay, dwHour, dwMinute, dwSecond);
+ }
+
+ public String toStringTitle()
+ {
+ return String.format("Time_%02d%02d%02d_%02d%02d%02d", dwYear, dwMonth, dwDay, dwHour, dwMinute, dwSecond);
+ }
+ }
+
+ // 区域
+ public static class NET_CFG_Rect extends SdkStructure
+ {
+ public int nStructSize;
+ public int nLeft;
+ public int nTop;
+ public int nRight;
+ public int nBottom;
+
+ public NET_CFG_Rect()
+ {
+ this.nStructSize = this.size();
+ }
+ }
+
+ // 颜色
+ public static class NET_CFG_Color extends SdkStructure
+ {
+ public int nStructSize;
+ public int nRed; // 红
+ public int nGreen; // 绿
+ public int nBlue; // 蓝
+ public int nAlpha; // 透明
+
+ public NET_CFG_Color()
+ {
+ this.nStructSize = this.size();
+ }
+ }
+
+ // 编码物件-通道标题
+ public static class NET_CFG_VideoWidgetChannelTitle extends SdkStructure
+ {
+ public int nStructSize;
+ public int bEncodeBlend; // 叠加到主码流, 类型为BOOL, 取值0或者1
+ public int bEncodeBlendExtra1; // 叠加到辅码流1, 类型为BOOL, 取值0或者1
+ public int bEncodeBlendExtra2; // 叠加到辅码流2, 类型为BOOL, 取值0或者1
+ public int bEncodeBlendExtra3; // 叠加到辅码流3, 类型为BOOL, 取值0或者1
+ public int bEncodeBlendSnapshot; // 叠加到抓图, 类型为BOOL, 取值0或者1
+ public NET_CFG_Color stuFrontColor = new NET_CFG_Color(); // 前景色
+ public NET_CFG_Color stuBackColor = new NET_CFG_Color(); // 背景色
+ public NET_CFG_Rect stuRect = new NET_CFG_Rect(); // 区域, 坐标取值0~8191, 仅使用left和top值, 点(left,top)应和(right,bottom)设置成同样的点
+ public int bPreviewBlend; // 叠加到预览视频, 类型为BOOL, 取值0或者1
+
+ public NET_CFG_VideoWidgetChannelTitle()
+ {
+ this.nStructSize = this.size();
+ }
+ }
+
+ // 编码物件-时间标题
+ public static class NET_CFG_VideoWidgetTimeTitle extends SdkStructure
+ {
+ public int nStructSize;
+ public int bEncodeBlend; // 叠加到主码流, 类型为BOOL, 取值0或者1
+ public int bEncodeBlendExtra1; // 叠加到辅码流1, 类型为BOOL, 取值0或者1
+ public int bEncodeBlendExtra2; // 叠加到辅码流2, 类型为BOOL, 取值0或者1
+ public int bEncodeBlendExtra3; // 叠加到辅码流3, 类型为BOOL, 取值0或者1
+ public int bEncodeBlendSnapshot; // 叠加到抓图, 类型为BOOL, 取值0或者1
+ public NET_CFG_Color stuFrontColor = new NET_CFG_Color(); // 前景色
+ public NET_CFG_Color stuBackColor = new NET_CFG_Color(); // 背景色
+ public NET_CFG_Rect stuRect = new NET_CFG_Rect(); // 区域, 坐标取值0~8191, 仅使用left和top值, 点(left,top)应和(right,bottom)设置成同样的点
+ public int bShowWeek; // 是否显示星期, 类型为BOOL, 取值0或者1
+ public int bPreviewBlend; // 叠加到预览视频, 类型为BOOL, 取值0或者1
+
+ public NET_CFG_VideoWidgetTimeTitle()
+ {
+ this.nStructSize = this.size();
+ }
+ }
+
+ // 编码物件-区域覆盖配置
+ public static class NET_CFG_VideoWidgetCover extends SdkStructure
+ {
+ public int nStructSize;
+ public int bEncodeBlend; // 叠加到主码流, 类型为BOOL, 取值0或者1
+ public int bEncodeBlendExtra1; // 叠加到辅码流1, 类型为BOOL, 取值0或者1
+ public int bEncodeBlendExtra2; // 叠加到辅码流2, 类型为BOOL, 取值0或者1
+ public int bEncodeBlendExtra3; // 叠加到辅码流3, 类型为BOOL, 取值0或者1
+ public int bEncodeBlendSnapshot; // 叠加到抓图, 类型为BOOL, 取值0或者1
+ public NET_CFG_Color stuFrontColor = new NET_CFG_Color(); // 前景色
+ public NET_CFG_Color stuBackColor = new NET_CFG_Color(); // 背景色
+ public NET_CFG_Rect stuRect = new NET_CFG_Rect(); // 区域, 坐标取值0~8191
+ public int bPreviewBlend; // 叠加到预览视频, 类型为BOOL, 取值0或者1
+
+ public NET_CFG_VideoWidgetCover()
+ {
+ this.nStructSize = this.size();
+ }
+ }
+
+ public static class EM_TITLE_TEXT_ALIGN
+ {
+ public static final int EM_TEXT_ALIGN_INVALID = 0; // 无效的对齐方式
+ public static final int EM_TEXT_ALIGN_LEFT = 1; // 左对齐
+ public static final int EM_TEXT_ALIGN_XCENTER = 2; // X坐标中对齐
+ public static final int EM_TEXT_ALIGN_YCENTER = 3; // Y坐标中对齐
+ public static final int EM_TEXT_ALIGN_CENTER = 4; // 居中
+ public static final int EM_TEXT_ALIGN_RIGHT = 5; // 右对齐
+ public static final int EM_TEXT_ALIGN_TOP = 6; // 按照顶部对齐
+ public static final int EM_TEXT_ALIGN_BOTTOM = 7; // 按照底部对齐
+ public static final int EM_TEXT_ALIGN_LEFTTOP = 8; // 按照左上角对齐
+ public static final int EM_TEXT_ALIGN_CHANGELINE = 9; // 换行对齐
+ }
+
+ // 编码物件-自定义标题
+ public static class NET_CFG_VideoWidgetCustomTitle extends SdkStructure
+ {
+ public int nStructSize;
+ public int bEncodeBlend; // 叠加到主码流, 类型为BOOL, 取值0或者1
+ public int bEncodeBlendExtra1; // 叠加到辅码流1, 类型为BOOL, 取值0或者1
+ public int bEncodeBlendExtra2; // 叠加到辅码流2, 类型为BOOL, 取值0或者1
+ public int bEncodeBlendExtra3; // 叠加到辅码流3, 类型为BOOL, 取值0或者1
+ public int bEncodeBlendSnapshot; // 叠加到抓图, 类型为BOOL, 取值0或者1
+ public NET_CFG_Color stuFrontColor = new NET_CFG_Color(); // 前景色
+ public NET_CFG_Color stuBackColor = new NET_CFG_Color(); // 背景色
+ public NET_CFG_Rect stuRect = new NET_CFG_Rect(); // 区域, 坐标取值0~8191, 仅使用left和top值, 点(left,top)应和(right,bottom)设置成同样的点
+ public byte[] szText = new byte[NET_CFG_Custom_Title_Len]; // 标题内容
+ public int bPreviewBlend; // 叠加到预览视频, 类型为BOOL, 取值0或者1
+ public byte[] szType = new byte[NET_CFG_Custom_TitleType_Len]; // 标题类型 "Rtinfo" 实时刻录信息 "Custom" 自定义叠加、温湿度叠加 "Title" :片头信息 "Check" 校验码
+ // 地理信息 "Geography" ATM卡号信息 "ATMCardInfo" 摄像机编号 "CameraID"
+ public int emTextAlign; // 标题对齐方式 (参见EM_TITLE_TEXT_ALIGN)
+ public int bUpdate; // 是否需要设备端更新叠加内容 true:更新 false:不更新, 类型为BOOL, 取值0或者1
+
+ public NET_CFG_VideoWidgetCustomTitle()
+ {
+ this.nStructSize = this.size();
+ }
+ }
+
+ // 编码物件-叠加传感器信息-叠加内容描述
+ public static class NET_CFG_VideoWidgetSensorInfo_Description extends SdkStructure
+ {
+ public int nStructSize;
+ public int nSensorID; // 需要描述的传感器的ID(即模拟量报警通道号)
+ public byte[] szDevID = new byte[CFG_COMMON_STRING_32]; // 设备ID
+ public byte[] szPointID = new byte[CFG_COMMON_STRING_32]; // 测点ID
+ public byte[] szText = new byte[CFG_COMMON_STRING_256]; // 需要叠加的内容
+
+ public NET_CFG_VideoWidgetSensorInfo_Description()
+ {
+ this.nStructSize = this.size();
+ }
+ }
+
+ // 编码物件-叠加传感器信息
+ public static class NET_CFG_VideoWidgetSensorInfo extends SdkStructure
+ {
+ public int nStructSize;
+ public int bPreviewBlend; // 叠加到预览视频, 类型为BOOL, 取值0或者1
+ public int bEncodeBlend; // 叠加到主码流视频编码, 类型为BOOL, 取值0或者1
+ public NET_CFG_Rect stuRect = new NET_CFG_Rect(); // 区域, 坐标取值0~8191
+ public int nDescriptionNum; // 叠加区域描述数目
+ public NET_CFG_VideoWidgetSensorInfo_Description[] stuDescription = (NET_CFG_VideoWidgetSensorInfo_Description[])new NET_CFG_VideoWidgetSensorInfo_Description().toArray(NET_CFG_Max_Description_Num); // 叠加区域描述信息
+
+ public NET_CFG_VideoWidgetSensorInfo()
+ {
+ this.nStructSize = this.size();
+ }
+ }
+
+ // 视频编码物件配置
+ public static class NET_CFG_VideoWidget extends SdkStructure
+ {
+ public int nStructSize;
+ public NET_CFG_VideoWidgetChannelTitle stuChannelTitle = new NET_CFG_VideoWidgetChannelTitle(); // 通道标题
+ public NET_CFG_VideoWidgetTimeTitle stuTimeTitle = new NET_CFG_VideoWidgetTimeTitle(); // 时间标题
+ public int nConverNum; // 区域覆盖数量
+ public NET_CFG_VideoWidgetCover[] stuCovers = new NET_CFG_VideoWidgetCover[NET_CFG_Max_Video_Widget_Cover]; // 覆盖区域
+ public int nCustomTitleNum; // 自定义标题数量
+ public NET_CFG_VideoWidgetCustomTitle[] stuCustomTitle = new NET_CFG_VideoWidgetCustomTitle[NET_CFG_Max_Video_Widget_Custom_Title]; // 自定义标题
+ public int nSensorInfo; // 传感器信息叠加区域数目
+ public NET_CFG_VideoWidgetSensorInfo[] stuSensorInfo = new NET_CFG_VideoWidgetSensorInfo[NET_CFG_Max_Video_Widget_Sensor_Info]; // 传感器信息叠加区域信息
+ public double fFontSizeScale; //叠加字体大小放大比例
+ //当fFontSizeScale≠0时,nFontSize不起作用
+ //当fFontSizeScale=0时,nFontSize起作用
+ //设备默认fFontSizeScale=1.0
+ //如果需要修改倍数,修改该值
+ //如果需要按照像素设置,则置该值为0,nFontSize的值生效
+ public int nFontSize; //叠加到主码流上的全局字体大小,单位 px.
+ //和fFontSizeScale共同作用
+ public int nFontSizeExtra1; //叠加到辅码流1上的全局字体大小,单位 px
+ public int nFontSizeExtra2; //叠加到辅码流2上的全局字体大小,单位 px
+ public int nFontSizeExtra3; //叠加到辅码流3上的全局字体大小,单位 px
+ public int nFontSizeSnapshot; //叠加到抓图流上的全局字体大小, 单位 px
+ public int nFontSizeMergeSnapshot; //叠加到抓图流上合成图片的字体大小,单位 px
+ public int emFontSolutionSnapshot; //叠加到抓图流上的字体方案 // 0 未知 ; 1- 默认字体 "default-font" 2-楷体 "simkai" 3- 宋体"simsun"
+ public NET_CFG_VideoWidgetCover stuGPSTitle; //GPS标题显示, 车载设备用
+ public NET_CFG_VideoWidgetCover stuCarNoTitle; //车牌标题显示, 车载设备用
+ public byte[] szChannelName = new byte[256]; // 通道名称(只为Onvif使用)
+
+ public NET_CFG_VideoWidget()
+ {
+ this.nStructSize = this.size();
+ for (int i = 0; i < stuCustomTitle.length; i++) {
+ stuCustomTitle[i] = new NET_CFG_VideoWidgetCustomTitle();
+ }
+
+ for (int i = 0; i < stuCovers.length; i++) {
+ stuCovers[i] = new NET_CFG_VideoWidgetCover();
+ }
+
+ for (int i = 0; i < stuSensorInfo.length; i++) {
+ stuSensorInfo[i] = new NET_CFG_VideoWidgetSensorInfo();
+ }
+ }
+ }
+
+ // 报警事件类型 NET_EVENT_VIDEOABNORMALDETECTION 对应的数据描述信息
+ public static class ALARM_VIDEOABNORMAL_DETECTION_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public int nChannelID; // 通道号
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int nEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public int nType; // 检测类型,0-视频丢失, 1-视频遮挡, 2-画面冻结, 3-过亮, 4-过暗, 5-场景变化
+ // 6-条纹检测 , 7-噪声检测 , 8-偏色检测 , 9-视频模糊检测 , 10-对比度异常检测
+ // 11-视频运动, 12-视频闪烁, 13-视频颜色, 14-虚焦检测, 15-过曝检测
+ public int nValue; // 检测值,值越高表示视频质量越差, GB30147定义
+ public int nOccurrenceCount; // 规则被触发生次数
+
+ public ALARM_VIDEOABNORMAL_DETECTION_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 停车发卡刷卡类型
+ public static class NET_PARKING_CARD_TYPE extends SdkStructure
+ {
+ public static final int NET_PARKING_CARD_TYPE_UNKNOWN = 0;
+ public static final int NET_PARKING_CARD_TYPE_SEND = 1; // 发卡
+ public static final int NET_PARKING_CARD_TYPE_DETECT = 2; // 刷卡
+ }
+
+ // 报警事件类型 NET_ALARM_PARKING_CARD (停车刷卡事件)对应的数据描述信息
+ public static class ALARM_PARKING_CARD extends SdkStructure {
+ public int dwSize;
+ public int emType; // 类型, 参考 NET_PARKING_CARD_TYPE
+ public int dwCardNo; // 卡号
+ public byte[] szPlate = new byte[NET_COMMON_STRING_16]; // 车牌
+
+ public ALARM_PARKING_CARD() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 报警事件类型 NET_ALARM_NEW_FILE 对应的数据描述信息
+ public static class ALARM_NEW_FILE_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public int nChannel; // 抓图通道号
+ public int nEventID; // 事件ID
+ public int dwEvent; // 事件类型
+ public int FileSize; // 文件大小,单位是字节
+ public int nIndex; // 事件源通道
+ public int dwStorPoint; // 存储点
+ public byte[] szFileName = new byte[128]; // 文件名
+ public int nGroupID; //事件组ID,同一物体抓拍过程内GroupID相同
+ public int nCountInGroup; //一个事件组内的抓拍张数
+ public int nMailTimeout; //邮件模块收到一组图片的第一张,开始计时。超时时间到即使没有收全整组图片也发邮件,单位秒
+ public byte[] szDeviceIP = new byte[40]; //上报事件的设备IP
+ public int nPoliceIDNum; //上报录像所录制的警员编号列表数量
+ public BYTE_ARRAY_32[] szPoliceID = new BYTE_ARRAY_32[32]; //上报录像所录制的警员编号列表
+ public byte[] szReserved = new byte[1024]; //保留字节
+
+ public ALARM_NEW_FILE_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 人数越上限类型
+ public static class EM_UPPER_LIMIT_TYPE extends SdkStructure
+ {
+ public static final int EM_UPPER_LIMIT_TYPE_UNKNOWN = 0;
+ public static final int EM_UPPER_LIMIT_TYPE_ENTER_OVER = 1; // 进入越上限
+ public static final int EM_UPPER_LIMIT_TYPE_EXIT_OVER = 2; // 出来越上限
+ public static final int EM_UPPER_LIMIT_TYPE_INSIDE_OVER = 3; // 内部越上限
+ public static final int EM_UPPER_LIMIT_TYPE_PASS_OVER = 4; // 经过越上限
+ }
+
+ // 事件类型 NET_ALARM_HUMAM_NUMBER_STATISTIC (人数量/客流量统计事件NumberStat对应的数据描述信息)
+ public static class ALARM_HUMAN_NUMBER_STATISTIC_INFO extends SdkStructure
+ {
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventAction; // 事件动作,0-事件持续, 1-表示事件开始, 2-表示事件结束;
+ public int nNumber; // 区域内物体的个数
+ public int nEnteredNumber; // 进入区域或者出入口内的物体个数
+ public int nExitedNumber; // 出来区域或者出入口内的物体个数
+ public int emUpperLimitType; // 人数越上限类型,参见EM_UPPER_LIMIT_TYPE定义
+ public int nChannelID; // 通道号
+ public int nPassedNumber; // 经过区域物体的个数
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public byte[] reserved = new byte[504]; // 预留
+ }
+
+ /////////////////////////////////智能支持/////////////////////////////////
+ //物体对应图片文件信息,对应DH_PIC_INFO
+ public static class NET_PIC_INFO extends SdkStructure
+ {
+ public int dwOffSet; // 文件在二进制数据块中的偏移位置,单位:字节
+ public int dwFileLenth; // 文件大小,单位:字节
+ public short wWidth; // 图片宽度,单位:像素
+ public short wHeight; // 图片高度,单位:像素
+ public Pointer pszFilePath; // 鉴于历史原因,该成员只在事件上报时有效, char *
+ // 文件路径
+ // 用户使用该字段时需要自行申请空间进行拷贝保存
+ public byte bIsDetected; // 图片是否算法检测出来的检测过的提交识别服务器时,
+ // 则不需要再时检测定位抠图,1:检测过的,0:没有检测过
+ public byte[] bReserved = new byte[2]; // 预留字节数
+ public byte byQulityScore; // 人脸抓拍质量分数, 0-100
+ public int nFilePathLen; // 文件路径长度 既pszFilePath 用户申请的大小
+ public NET_POINT stuPoint; // 小图左上角在大图的位置,使用绝对坐标系
+ public int nIndexInData; // 在上传图片数据中的图片序号
+
+ public NET_PIC_INFO() {
+ }
+ }
+
+ // 人员类型
+ public static class EM_PERSON_TYPE extends SdkStructure
+ {
+ public static final int PERSON_TYPE_UNKNOWN = 0;
+ public static final int PERSON_TYPE_NORMAL = 1; //普通人员
+ public static final int PERSON_TYPE_SUSPICION = 2; //
+ }
+
+ // 证件类型
+ public static class EM_CERTIFICATE_TYPE extends SdkStructure
+ {
+ public static final int CERTIFICATE_TYPE_UNKNOWN = 0;
+ public static final int CERTIFICATE_TYPE_IC = 1; //证件
+ public static final int CERTIFICATE_TYPE_PASSPORT = 2; //护照
+ public static final int CERTIFICATE_TYPE_OUTERGUARD = 3; //军官证
+ public static final int CERTIFICATE_TYPE_STUDENT = 4; //学生证
+ public static final int CERTIFICATE_TYPE_POLICE = 5; //警官证
+ public static final int CERTIFICATE_TYPE_LAWYER = 6; //律师
+ }
+
+ //人员信息
+ public static class FACERECOGNITION_PERSON_INFO extends SdkStructure
+ {
+ public byte[] szPersonName = new byte[NET_MAX_NAME_LEN]; // 姓名,此参数作废
+ public short wYear; // 出生年,作为查询条件时,此参数填0,则表示此参数无效
+ public byte byMonth; // 出生月,作为查询条件时,此参数填0,则表示此参数无效
+ public byte byDay; // 出生日,作为查询条件时,此参数填0,则表示此参数无效
+ public byte[] szID = new byte[NET_MAX_PERSON_ID_LEN]; // 人员唯一标示(证件号码,工号,或其他编号)
+ public byte bImportantRank; // 人员重要等级,1~10,数值越高越重要,作为查询条件时,此参数填0,则表示此参数无效
+ public byte bySex; // 性别,1-男,2-女,作为查询条件时,此参数填0,则表示此参数无效
+ public short wFacePicNum; // 图片张数
+ public NET_PIC_INFO[] szFacePicInfo = new NET_PIC_INFO[NET_MAX_PERSON_IMAGE_NUM]; //当前人员对应的图片信息
+ public byte byType; // 人员类型,详见EM_PERSON_TYPE
+ public byte byIDType; // 证件类型,详见EM_CERTIFICATE_TYPE
+ public byte byGlasses; // 是否戴眼镜,0-未知 1-不戴 2-戴
+ public byte byAge; // 年龄,0表示未知
+ public byte[] szProvince = new byte[NET_MAX_PROVINCE_NAME_LEN]; // 省份
+ public byte[] szCity = new byte[NET_MAX_CITY_NAME_LEN]; // 城市
+ public byte[] szPersonNameEx = new byte[NET_MAX_PERSON_NAME_LEN]; // 姓名,因存在姓名过长,16字节无法存放问题,故增加此参数,
+ public byte[] szUID = new byte[NET_MAX_PERSON_ID_LEN]; // 人员唯一标识符,首次由服务端生成,区别于ID字段
+ // 修改,删除操作时必填
+ public byte[] szCountry = new byte[NET_COUNTRY_LENGTH]; // 国籍,符合ISO3166规范
+ public byte byIsCustomType; // 人员类型是否为自定义: 0 使用Type规定的类型 1 自定义,使用szPersonName字段
+ public Pointer pszComment; // 备注信息, 用户自己申请内存的情况时,
+ // 下方bCommentLen需填写对应的具体长度值,推荐长度 NET_COMMENT_LENGTH
+ public Pointer pszGroupID; // 人员所属组ID, 用户自己申请内存的情况时,
+ // 下方bGroupIdLen需填写对应的具体长度值,推荐长度 NET_GROUPID_LENGTH
+ public Pointer pszGroupName; // 人员所属组名, 用户自己申请内存的情况时,
+ // 下方bGroupNameLen需填写对应的具体长度值,推荐长度 NET_GROUPNAME_LENGTH
+ public Pointer pszFeatureValue; // 人脸特征, 用户自己申请内存的情况时,
+ // 下方bFeatureValueLen需填写对应的具体长度值,推荐长度 NET_FEATUREVALUE_LENGTH
+ public byte bGroupIdLen; // pszGroupID的长度
+ public byte bGroupNameLen; // pszGroupName的长度
+ public byte bFeatureValueLen; // pszFeatureValue的长度
+ public byte bCommentLen; // pszComment的长度
+ public int emEmotion; // 表情, 参考 EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE
+
+ public FACERECOGNITION_PERSON_INFO() {
+ for(int i=0;i=0时有效)
+ public short byLane; // 车道号(此值>=0时表示具体车道,-1表示所有车道,即不下发此字段)
+ public byte byFileFlag; // 文件标志, 0xFF-使用nFileFlagEx, 0-表示所有录像, 1-定时文件, 2-手动文件, 3-事件文件, 4-重要文件, 5-合成文件
+ public byte byRandomAccess; // 是否需要在查询过程中随意跳转,0-不需要,1-需要
+ public int nFileFlagEx; // 文件标志, 按位表示: bit0-定时文件, bit1-手动文件, bit2-事件文件, bit3-重要文件, bit4-合成文件, bit5-禁止名单图片 0xFFFFFFFF-所有录像
+ public int nDirection; // 车道方向(车开往的方向) 0-北 1-东北 2-东 3-东南 4-南 5-西南 6-西 7-西北 8-未知 -1-所有方向
+ public Pointer szDirs; // 工作目录列表,一次可查询多个目录,为空表示查询所有目录。目录之间以分号分隔,如“/mnt/dvr/sda0;/mnt/dvr/sda1”,szDirs==null 或"" 表示查询所有
+ public Pointer pEventTypes; // 待查询的事件类型数组指针,事件类型,详见"智能分析事件类型",若为NULL则认为查询所有事件(缓冲需由用户申请)
+ public int nEventTypeNum; // 事件类型数组大小
+ public Pointer pszDeviceAddress; // 设备地址, NULL表示该字段不起作用
+ public Pointer pszMachineAddress; // 机器部署地点, NULL表示该字段不起作用
+ public Pointer pszVehicleSign; // 车辆标识, 例如 "Unknown"-未知, "Audi"-奥迪, "Honda"-本田... NULL表示该字段不起作用
+ public short wVehicleSubBrand; // 车辆子品牌 需要通过映射表得到真正的子品牌 映射表详见开发手册
+ public short wVehicleYearModel; // 车辆品牌年款 需要通过映射表得到真正的年款 映射表详见开发手册
+ public int emSafeBeltState; // 安全带状态, 参考枚举 EM_SAFE_BELT_STATE
+ public int emCallingState; // 打电话状态, 参考枚举 EM_CALLING_STATE
+ public int emAttachMentType; // 车内饰品类型, 参考枚举 EM_ATTACHMENT_TYPE
+ public int emCarType; // 车辆类型, 参考枚举 EM_CATEGORY_TYPE
+ public Pointer pstuTrafficCarParamEx; // 参数扩展,对应结构体NET_MEDIA_QUERY_TRAFFICCAR_PARAM_EX
+ public int[] bReserved = new int[4]; // 保留字段
+ }
+
+ // NET_MEDIA_QUERY_TRAFFICCAR_EX对应的查询条件
+ public static class MEDIA_QUERY_TRAFFICCAR_PARAM_EX extends SdkStructure
+ {
+ public int dwSize;
+ public MEDIA_QUERY_TRAFFICCAR_PARAM stuParam; // 基本查询参数
+
+ public MEDIA_QUERY_TRAFFICCAR_PARAM_EX() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // NET_MEDIA_QUERY_TRAFFICCAR查询出来的media文件信息
+ public static class MEDIAFILE_TRAFFICCAR_INFO extends SdkStructure
+ {
+ public int ch; // 通道号
+ public byte[] szFilePath = new byte[128]; // 文件路径
+ public int size; // 文件长度
+ public NET_TIME starttime; // 开始时间
+ public NET_TIME endtime; // 结束时间
+ public int nWorkDirSN; // 工作目录编号
+ public byte nFileType; // 文件类型 1:jpg图片
+ public byte bHint; // 文件定位索引
+ public byte bDriveNo; // 磁盘号
+ public byte bReserved2;
+ public int nCluster; // 簇号
+ public byte byPictureType; // 图片类型, 0-普通, 1-合成, 2-抠图
+ public byte[] bReserved = new byte[3]; // 保留字段
+ //以下是交通车辆信息
+ public byte[] szPlateNumber = new byte[32]; // 车牌号码
+ public byte[] szPlateType = new byte[32]; // 号牌类型"Unknown" 未知; "Normal" 蓝牌黑牌; "Yellow" 黄牌; "DoubleYellow" 双层黄尾牌
+ // "Police" 警牌;
+ // "SAR" 港澳特区号牌; "Trainning" 教练车号牌; "Personal" 个性号牌; "Agri" 农用牌
+ // "Embassy" 使馆号牌; "Moto" 摩托车号牌; "Tractor" 拖拉机号牌; "Other" 其他号牌
+ public byte[] szPlateColor = new byte[16]; // 车牌颜色:"Blue","Yellow", "White","Black"
+ public byte[] szVehicleColor = new byte[16]; // 车身颜色:"White", "Black", "Red", "Yellow", "Gray", "Blue","Green"
+ public int nSpeed; // 车速,单位 Km/H
+ public int nEventsNum; // 关联的事件个数
+ public int[] nEvents = new int[32]; // 关联的事件列表,数组值表示相应的事件,详见"智能分析事件类型"
+ public int dwBreakingRule; // 具体违章类型掩码,第一位:闯红灯; 第二位:不按规定车道行驶;
+ // 第三位:逆行; 第四位:违章掉头;否则默认为:交通路口事件
+ public byte[] szVehicleSize = new byte[16]; // 车辆大小类型:"Light-duty":小型车;"Medium":中型车; "Oversize":大型车
+ public byte[] szChannelName = new byte[NET_CHAN_NAME_LEN]; // 本地或远程的通道名称
+ public byte[] szMachineName = new byte[NET_MAX_NAME_LEN]; // 本地或远程设备名称
+ public int nSpeedUpperLimit; // 速度上限 单位: km/h
+ public int nSpeedLowerLimit; // 速度下限 单位: km/h
+ public int nGroupID; // 事件里的组编号
+ public byte byCountInGroup; // 一个事件组内的抓拍张数
+ public byte byIndexInGroup; // 一个事件组内的抓拍序号
+ public byte byLane; // 车道,参见MEDIA_QUERY_TRAFFICCAR_PARAM
+ public byte[] bReserved1 = new byte[21]; // 保留
+ public NET_TIME stSnapTime; // 抓拍时间
+ public int nDirection; // 车道方向,参见MEDIA_QUERY_TRAFFICCAR_PARAM
+ public byte[] szMachineAddress = new byte[MAX_PATH]; // 机器部署地点
+ public long sizeEx; // 文件长度扩展,支持文件长度大于4G,单位字节
+ }
+
+ // NET_MEDIA_QUERY_TRAFFICCAR_EX查询出来的文件信息
+ public static class MEDIAFILE_TRAFFICCAR_INFO_EX extends SdkStructure
+ {
+ public int dwSize;
+ /**
+ * 基本信息
+ */
+ public MEDIAFILE_TRAFFICCAR_INFO stuInfo = new MEDIAFILE_TRAFFICCAR_INFO();
+ /**
+ * 设备地址
+ */
+ public byte[] szDeviceAddr = new byte[256];
+ /**
+ * 车辆标识, 例如 "Unknown"-未知, "Audi"-奥迪, "Honda"-本田...
+ */
+ public byte[] szVehicleSign = new byte[32];
+ /**
+ * 自定义车位号(停车场用)
+ */
+ public byte[] szCustomParkNo = new byte[64];
+ /**
+ * 车辆子品牌,需要通过映射表得到真正的子品牌
+ */
+ public short wVehicleSubBrand;
+ /**
+ * 车辆年款,需要通过映射表得到真正的年款
+ */
+ public short wVehicleYearModel;
+ /**
+ * 对应电子车牌标签信息中的过车时间(ThroughTime)
+ */
+ public NET_TIME stuEleTagInfoUTC = new NET_TIME();
+ /**
+ * 录像或抓图文件标志
+ */
+ public int[] emFalgLists = new int[EM_RECORD_SNAP_FLAG_TYPE.FLAG_TYPE_MAX];
+ /**
+ * 标志总数
+ */
+ public int nFalgCount;
+ /**
+ * 安全带状态 {@link NetSDKLib.EM_SAFE_BELT_STATE}
+ */
+ public int emSafeBelSate;
+ /**
+ * 打电话状态 {@link NetSDKLib.EM_CALLING_STATE}
+ */
+ public int emCallingState;
+ /**
+ * 车内物品个数
+ */
+ public int nAttachMentNum;
+ /**
+ * 车内物品信息
+ */
+ public NET_ATTACH_MENET_INFO[] stuAttachMent = new NET_ATTACH_MENET_INFO[8];
+ /**
+ * 车牌所属国家和地区
+ */
+ public byte[] szCountry = new byte[32];
+ /**
+ * 车辆类型 {@link NetSDKLib.EM_CATEGORY_TYPE}
+ */
+ public int emCarType;
+ /**
+ * 遮阳板状态 {@link NetSDKLib.NET_SUNSHADE_STATE}
+ */
+ public int emSunShadeState;
+ /**
+ * 是否抽烟 {@link NetSDKLib.EM_SMOKING_STATE}
+ */
+ public int emSmokingState;
+ /**
+ * 年检标个数
+ */
+ public int nAnnualInspection;
+ /**
+ * 字节对齐
+ */
+ public byte[] byReserved = new byte[4];
+ /**
+ * PictureID高四字节
+ */
+ public int nPicIDHigh;
+ /**
+ * PictureID低四字节
+ */
+ public int nPicIDLow;
+ /**
+ * 平台客户端1上传信息
+ */
+ public NET_UPLOAD_CLIENT_INFO stuClient1 = new NET_UPLOAD_CLIENT_INFO();
+ /**
+ * 平台客户端2上传信息
+ */
+ public NET_UPLOAD_CLIENT_INFO stuClient2 = new NET_UPLOAD_CLIENT_INFO();
+ /**
+ * 三地车牌
+ */
+ public byte[] szExtraPlateNumber = new byte[3 * 32];
+ /**
+ * 车牌个数
+ */
+ public int nExtraPlateNumberNum;
+ /**
+ * 车辆进站时间,时间格式:UTC时间(IVSS, 用于加油站场景)
+ */
+ public int nEntranceTime;
+ /**
+ * 车辆加油时间,时间格式:UTC时间(IVSS, 用于加油站场景)
+ */
+ public int nOilTime;
+ /**
+ * 车辆出站时间,时间格式:UTC时间(IVSS, 用于加油站场景)
+ */
+ public int nExitTime;
+ /**
+ * 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示仅starttime和endtime有效(仅使用starttime和endtime, starttime和endtime在MEDIAFILE_TRAFFICCAR_INFO中)
+ */
+ public int bRealUTC;
+ /**
+ * UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
+ */
+ public NET_TIME stuStartTimeRealUTC = new NET_TIME();
+ /**
+ * UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
+ */
+ public NET_TIME stuEndTimeRealUTC = new NET_TIME();
+ /**
+ * 字节补齐
+ */
+ public byte[] byReserved1 = new byte[784];
+
+ public MEDIAFILE_TRAFFICCAR_INFO_EX() {
+ for (int i = 0; i < stuAttachMent.length; i++) {
+ stuAttachMent[i] = new NET_ATTACH_MENET_INFO();
+ }
+ this.dwSize = this.size();
+ }
+ }
+
+ // 车内饰品信息
+ public static class NET_ATTACH_MENET_INFO extends SdkStructure
+ {
+ public int emAttachMentType; // 车内物品类型, 对应枚举 EM_ATTACHMENT_TYPE
+ public byte[] bReserved1 = new byte[128]; // 保留字节
+ }
+
+ // 安全带状态
+ public static class EM_SAFE_BELT_STATE extends SdkStructure
+ {
+ public static final int EM_SAFE_BELT_UNKNOWN = 0; // 未知
+ public static final int EM_SAFE_BELT_OTHER = 1; // 未识别
+ public static final int EM_SAFE_BELT_WITH = 2; // 有安全带
+ public static final int EM_SAFE_BELT_WITHOUT = 3; // 无安全带
+ }
+
+ // 车内饰品类型
+ public static class EM_ATTACHMENT_TYPE extends SdkStructure
+ {
+ public static final int EM_ATTACHMENT_UNKNOWN = 0; // 未知
+ public static final int EM_ATTACHMENT_OTHER = 1; // 其他类型
+ public static final int EM_ATTACHMENT_FURNITURE = 2; // 摆件
+ public static final int EM_ATTACHMENT_PENDANT = 3; // 挂件
+ public static final int EM_ATTACHMENT_TISSUEBOX = 4; // 纸巾盒
+ public static final int EM_ATTACHMENT_DANGER = 5; // 危险品
+ public static final int EM_ATTACHMENT_PERFUMEBOX = 6; // 香水
+ }
+
+ // 打电话状态
+ public static class EM_CALLING_STATE extends SdkStructure
+ {
+ public static final int EM_CALLING_UNKNOWN = 0; // 未知
+ public static final int EM_CALLING_OTHER = 1; // 未识别
+ public static final int EM_CALLING_NO = 2; // 未打电话
+ public static final int EM_CALLING_YES = 3; // 打电话
+ }
+
+ // 车辆类型
+ public static class EM_CATEGORY_TYPE extends SdkStructure
+ {
+ public static final int EM_CATEGORY_UNKNOWN = 0; // 未知
+ public static final int EM_CATEGORY_OTHER = 1; // 其他
+ public static final int EM_CATEGORY_MOTOR = 2; // 机动车
+ public static final int EM_CATEGORY_BUS = 3; // 公交车
+ public static final int EM_CATEGORY_UNLICENSED_MOTOR = 4; // 无牌机动车
+ public static final int EM_CATEGORY_LARGE_CAR = 5; // 大型汽车
+ public static final int EM_CATEGORY_MICRO_CAR = 6; // 小型汽车
+ public static final int EM_CATEGORY_EMBASSY_CAR = 7; // 使馆汽车
+ public static final int EM_CATEGORY_MARGINAL_CAR = 8; // 领馆汽车
+ public static final int EM_CATEGORY_AREAOUT_CAR = 9; // 境外汽车
+ public static final int EM_CATEGORY_FOREIGN_CAR = 10; // 外籍汽车
+ public static final int EM_CATEGORY_FARMTRANSMIT_CAR = 11; // 农用运输车
+ public static final int EM_CATEGORY_TRACTOR = 12; // 拖拉机
+ public static final int EM_CATEGORY_TRAILER = 13; // 挂车
+ public static final int EM_CATEGORY_COACH_CAR = 14; // 教练汽车
+ public static final int EM_CATEGORY_TRIAL_CAR = 15; // 试验汽车
+ public static final int EM_CATEGORY_TEMPORARY_ENTRY_CAR = 16; // 临时入境汽车
+ public static final int EM_CATEGORY_TEMPORARY_ENTRY_MOTORCYCLE = 17; // 临时入境摩托
+ public static final int EM_CATEGORY_TEMPORARY_STEER_CAR = 18; // 临时行驶车
+ public static final int EM_CATEGORY_LARGE_TRUCK = 19; // 大货车
+ public static final int EM_CATEGORY_MID_TRUCK = 20; // 中货车
+ public static final int EM_CATEGORY_MICRO_TRUCK = 21; // 小货车
+ public static final int EM_CATEGORY_MICROBUS = 22; // 面包车
+ public static final int EM_CATEGORY_SALOON_CAR = 23; // 轿车
+ public static final int EM_CATEGORY_CARRIAGE = 24; // 小轿车
+ public static final int EM_CATEGORY_MINI_CARRIAGE = 25; // 微型轿车
+ public static final int EM_CATEGORY_SUV_MPV = 26; // SUV或者MPV
+ public static final int EM_CATEGORY_SUV = 27; // SUV
+ public static final int EM_CATEGORY_MPV = 28; // MPV
+ public static final int EM_CATEGORY_PASSENGER_CAR = 29; // 客车
+ public static final int EM_CATEGORY_MOTOR_BUS = 30; // 大客
+ public static final int EM_CATEGORY_MID_PASSENGER_CAR = 31; // 中客车
+ public static final int EM_CATEGORY_MINI_BUS = 32; // 小客车
+ public static final int EM_CATEGORY_PICKUP = 33; // 皮卡车
+ public static final int EM_CATEGORY_OILTANK_TRUCK = 34; // 油罐车
+ public static final int EM_CATEGORY_TANK_CAR = 35; // 危化品车辆
+ public static final int EM_CATEGORY_SLOT_TANK_CAR = 36; // 槽罐车
+ public static final int EM_CATEGORY_DREGS_CAR = 37; // 渣土车
+ public static final int EM_CATEGORY_CONCRETE_MIXER_TRUCK = 38; // 混凝土搅拌车
+ public static final int EM_CATEGORY_TAXI = 39; // 出租车
+ public static final int EM_CATEGORY_POLICE = 40; // 警车
+ public static final int EM_CATEGORY_AMBULANCE = 41; // 救护车
+ public static final int EM_CATEGORY_GENERAL = 42; // 普通车
+ public static final int EM_CATEGORY_WATERING_CAR = 43; // 洒水车
+ public static final int EM_CATEGORY_FIRE_ENGINE = 44; // 消防车
+ public static final int EM_CATEGORY_MACHINE_TRUCK = 45; // 工程车
+ public static final int EM_CATEGORY_POWER_LOT_VEHICLE = 46; // 粉粒物料车
+ public static final int EM_CATEGORY_SUCTION_SEWAGE_TRUCK = 47; // 吸污车
+ public static final int EM_CATEGORY_NORMAL_TANK_TRUCK = 48; // 普通罐车
+ }
+
+ // 是否抽烟
+ public static class EM_SMOKING_STATE
+ {
+ public static final int EM_SMOKING_UNKNOWN = 0; // 未知
+ public static final int EM_SMOKING_NO = 1; // 未抽烟
+ public static final int EM_SMOKING_YES = 2; // 抽烟
+ }
+
+ // 对应C++头文件DH_PIC_INFO_EX
+ public static class NET_PIC_INFO_EX extends SdkStructure
+ {
+ public int dwSize; //结构体大小
+ public int dwFileLenth; //文件大小,单位:字节
+ public byte[] szFilePath = new byte[MAX_PATH]; // 文件路径
+
+ public NET_PIC_INFO_EX()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ //区域;各边距按整长8192的比例
+ public static class NET_RECT extends SdkStructure
+ {
+ public int left;
+ public int top;
+ public int right;
+ public int bottom;
+
+ public String toString() {
+ return "[" + left + " " + top + " " + right + " " + bottom + "]";
+ }
+ }
+
+ // 时间段结构
+ public static class NET_TSECT extends SdkStructure
+ {
+ public int bEnable; // 当表示录像时间段时,按位表示四个使能,从低位到高位分别表示动检录象、报警录象、普通录象、动检和报警同时发生才录像
+ // 当表示布撤防时间段时, 表示使能
+ // 当表示推送时间段时, 表示使能:1表示使能,0表示非使能
+ public int iBeginHour;
+ public int iBeginMin;
+ public int iBeginSec;
+ public int iEndHour;
+ public int iEndMin;
+ public int iEndSec;
+
+ public String startTime() {
+ return iBeginHour + ":" + iBeginMin + ":" + iBeginSec;
+ }
+
+ public String endTime() {
+ return iEndHour + ":" + iEndMin + ":" + iEndSec;
+ }
+ }
+
+ public static class DH_RECT extends SdkStructure
+ {
+ public NativeLong left;
+ public NativeLong top;
+ public NativeLong right;
+ public NativeLong bottom;
+ }
+
+ //二维空间点
+ public static class NET_POINT extends SdkStructure
+ {
+ public short nx;
+ public short ny;
+
+ @Override
+ public String toString() {
+ return "NET_POINT{" +
+ "nx=" + nx +
+ ", ny=" + ny +
+ '}';
+ }
+
+ public NET_POINT() {
+ }
+ }
+
+ //二维空间点
+ public static class DH_POINT extends SdkStructure
+ {
+ public short nx;
+ public short ny;
+
+ public DH_POINT(){}
+
+ public DH_POINT(short x, short y){
+ this.nx = x;
+ this.ny = y;
+ }
+ }
+
+ public static class NET_CANDIDAT_PIC_PATHS extends SdkStructure
+ {
+ public int dwSize; //结构体大小
+ public int nFileCount; //实际文件个数
+ public NET_PIC_INFO_EX[] stFiles = (NET_PIC_INFO_EX[])new NET_PIC_INFO_EX().toArray(NET_MAX_PERSON_IMAGE_NUM); //文件信息
+
+ public NET_CANDIDAT_PIC_PATHS()
+ {
+ this.dwSize = this.size();
+ }
+
+ @Override
+ public int fieldOffset(String name) {
+ return super.fieldOffset(name);
+ }
+ }
+
+ //颜色类型
+ public static class EM_COLOR_TYPE extends SdkStructure
+ {
+ public static final int NET_COLOR_TYPE_RED = 0; //红色
+ public static final int NET_COLOR_TYPE_YELLOW = 1; //黄色
+ public static final int NET_COLOR_TYPE_GREEN = 2; //绿色
+ public static final int NET_COLOR_TYPE_CYAN = 3; //青色
+ public static final int NET_COLOR_TYPE_BLUE = 4; //蓝色
+ public static final int NET_COLOR_TYPE_PURPLE = 5; //紫色
+ public static final int NET_COLOR_TYPE_BLACK = 6; //黑色
+ public static final int NET_COLOR_TYPE_WHITE = 7; //白色
+ public static final int NET_COLOR_TYPE_MAX = 8;
+ }
+
+ //视频分析物体信息结构体
+ public static class NET_MSG_OBJECT extends SdkStructure
+ {
+ public int nObjectID; //物体ID,每个ID表示一个唯一的物体
+ public byte[] szObjectType = new byte[128]; //物体类型
+ public int nConfidence; //置信度(0~255),值越大表示置信度越高
+ public int nAction; //物体动作:1:Appear2:Move3:Stay
+ public DH_RECT BoundingBox = new DH_RECT(); //包围盒
+ public NET_POINT Center = new NET_POINT(); //物体型心
+ public int nPolygonNum; //多边形顶点个数
+ public NET_POINT[] Contour = new NET_POINT[NET_MAX_POLYGON_NUM]; //较精确的轮廓多边形
+ public int rgbaMainColor; //表示车牌、车身等物体主要颜色;按字节表示,分别为红、绿、蓝和透明度,例如:RGB值为(0,255,0),透明度为0时,其值为0x00ff0000.
+ public byte[] szText = new byte[128]; // 物体上相关的带0结束符文本,比如车牌,集装箱号等等
+ // "ObjectType"为"Vehicle"或者"Logo"时(尽量使用Logo。Vehicle是为了兼容老产品)表示车标,支持:
+ // "Unknown"未知
+ // "Audi" 奥迪
+ // "Honda" 本田
+ // "Buick" 别克
+ // "Volkswagen" 大众
+ // "Toyota" 丰田
+ // "BMW" 宝马
+ // "Peugeot" 标致
+ // "Ford" 福特
+ // "Mazda" 马自达
+ // "Nissan" 尼桑
+ // "Hyundai" 现代
+ // "Suzuki" 铃木
+ // "Citroen" 雪铁龙
+ // "Benz" 奔驰
+ // "BYD" 比亚迪
+ // "Geely" 吉利
+ // "Lexus" 雷克萨斯
+ // "Chevrolet" 雪佛兰
+ // "Chery" 奇瑞
+ // "Kia" 起亚
+ // "Charade" 夏利
+ // "DF" 东风
+ // "Naveco" 依维柯
+ // "SGMW" 五菱
+ // "Jinbei" 金杯
+ // "JAC" 江淮
+ // "Emgrand" 帝豪
+ // "ChangAn" 长安
+ // "Great Wall" 长城
+ // "Skoda" 斯柯达
+ // "BaoJun" 宝骏
+ // "Subaru" 斯巴鲁
+ // "LandWind" 陆风
+ // "Luxgen" 纳智捷
+ // "Renault" 雷诺
+ // "Mitsubishi" 三菱
+ // "Roewe" 荣威
+ // "Cadillac" 凯迪拉克
+ // "MG" 名爵
+ // "Zotye" 众泰
+ // "ZhongHua" 中华
+ // "Foton" 福田
+ // "SongHuaJiang" 松花江
+ // "Opel" 欧宝
+ // "HongQi" 一汽红旗
+ // "Fiat" 菲亚特
+ // "Jaguar" 捷豹
+ // "Volvo" 沃尔沃
+ // "Acura" 讴歌
+ // "Porsche" 保时捷
+ // "Jeep" 吉普
+ // "Bentley" 宾利
+ // "Bugatti" 布加迪
+ // "ChuanQi" 传祺
+ // "Daewoo" 大宇
+ // "DongNan" 东南
+ // "Ferrari" 法拉利
+ // "Fudi" 福迪
+ // "Huapu" 华普
+ // "HawTai" 华泰
+ // "JMC" 江铃
+ // "JingLong" 金龙客车
+ // "JoyLong" 九龙
+ // "Karry" 开瑞
+ // "Chrysler" 克莱斯勒
+ // "Lamborghini" 兰博基尼
+ // "RollsRoyce" 劳斯莱斯
+ // "Linian" 理念
+ // "LiFan" 力帆
+ // "LieBao" 猎豹
+ // "Lincoln" 林肯
+ // "LandRover" 路虎
+ // "Lotus" 路特斯
+ // "Maserati" 玛莎拉蒂
+ // "Maybach" 迈巴赫
+ // "Mclaren" 迈凯轮
+ // "Youngman" 青年客车
+ // "Tesla" 特斯拉
+ // "Rely" 威麟
+ // "Lsuzu" 五十铃
+ // "Yiqi" 一汽
+ // "Infiniti" 英菲尼迪
+ // "YuTong" 宇通客车
+ // "AnKai" 安凯客车
+ // "Canghe" 昌河
+ // "HaiMa" 海马
+ // "Crown" 丰田皇冠
+ // "HuangHai" 黄海
+ // "JinLv" 金旅客车
+ // "JinNing" 精灵
+ // "KuBo" 酷博
+ // "Europestar" 莲花
+ // "MINI" 迷你
+ // "Gleagle" 全球鹰
+ // "ShiDai" 时代
+ // "ShuangHuan" 双环
+ // "TianYe" 田野
+ // "WeiZi" 威姿
+ // "Englon" 英伦
+ // "ZhongTong" 中通客车
+ // "Changan" 长安轿车
+ // "Yuejin" 跃进
+ // "Taurus" 金牛星
+ // "Alto" 奥拓
+ // "Weiwang" 威旺
+ // "Chenglong" 乘龙
+ // "Haige" 海格
+ // "Shaolin" 少林客车
+ // "Beifang" 北方客车
+ // "Beijing" 北京汽车
+ // "Hafu" 哈弗
+ public byte[] szObjectSubType = new byte[62]; // 物体子类别,根据不同的物体类型,可以取以下子类型:
+ // Vehicle Category:"Unknown" 未知,"Motor" 机动车,"Non-Motor":非机动车,"Bus": 公交车,"Bicycle" 自行车,"Motorcycle":摩托车,"PassengerCar":客车,
+ // "LargeTruck":大货车, "MidTruck":中货车,"SaloonCar":轿车,"Microbus":面包车,"MicroTruck":小货车,"Tricycle":三轮车, "Passerby":行人
+ // Plate Category:"Unknown" 未知,"Normal" 蓝牌黑牌,"Yellow" 黄牌,"DoubleYellow" 双层黄尾牌,"Police" 警牌,
+ // "SAR" 港澳特区号牌,"Trainning" 教练车号牌
+ // "Personal" 个性号牌,"Agri" 农用牌,"Embassy" 使馆号牌,"Moto" 摩托车号牌,"Tractor" 拖拉机号牌,"Other" 其他号牌
+ // HumanFace Category:"Normal" 普通人脸,"HideEye" 眼部遮挡,"HideNose" 鼻子遮挡,"HideMouth" 嘴部遮挡
+ public short wColorLogoIndex; // 车标索引
+ public short wSubBrand; // 车辆子品牌 需要通过映射表得到真正的子品牌 映射表详见开发手册
+ public byte byReserved1;
+ public byte bPicEnble; //是否有物体对应图片文件信息, 类型小bool, 取值0或者1
+ public NET_PIC_INFO stPicInfo = new NET_PIC_INFO(); //物体对应图片信息
+ public byte bShotFrame; //是否是抓拍张的识别结果, 类型小bool, 取值0或者1
+ public byte bColor; //物体颜色(rgbaMainColor)是否可用, 类型小bool, 取值0或者1
+ public byte byReserved2;
+ public byte byTimeType; //时间表示类型,详见 EM_TIME_TYPE 说明
+ public NET_TIME_EX stuCurrentTime = new NET_TIME_EX(); //针对视频浓缩,当前时间戳(物体抓拍或识别时,会将此识别智能帧附在一个视频帧或jpeg图片中,此帧所在原始视频中的出现时间)
+ public NET_TIME_EX stuStartTime = new NET_TIME_EX(); //开始时间戳(物体开始出现时)
+ public NET_TIME_EX stuEndTime = new NET_TIME_EX(); //结束时间戳(物体最后出现时)
+ public DH_RECT stuOriginalBoundingBox = new DH_RECT(); //包围盒(绝对坐标)
+ public DH_RECT stuSignBoundingBox = new DH_RECT(); //车标坐标包围盒
+ public int dwCurrentSequence; //当前帧序号(抓下这个物体时的帧)
+ public int dwBeginSequence; //开始帧序号(物体开始出现时的帧序号)
+ public int dwEndSequence; //结束帧序号(物体消逝时的帧序号)
+ public long nBeginFileOffse; //开始时文件偏移,单位:字(物体开始出现时,视频帧在原始视频文件中相对于文件起始处的偏移)
+ public long nEndFileOffset; //结束时文件偏移,单位:字节(物体消逝时,视频帧在原始视频文件中相对于文件起始处的偏移)
+ public byte[] byColorSimilar = new byte[EM_COLOR_TYPE.NET_COLOR_TYPE_MAX]; //物体颜色相似度,取值范围:0-100,数组下标值代表某种颜色,详见 EM_COLOR_TYPE
+ public byte[] byUpperBodyColorSimilar = new byte[EM_COLOR_TYPE.NET_COLOR_TYPE_MAX]; //上半身物体颜色相似度(物体类型为人时有效)
+ public byte[] byLowerBodyColorSimilar = new byte[EM_COLOR_TYPE.NET_COLOR_TYPE_MAX]; //下半身物体颜色相似度(物体类型为人时有效)
+ public int nRelativeID; //相关物体ID
+ public byte[] szSubText = new byte[20]; //"ObjectType"为"Vehicle"或者"Logo"时,表示车标下的某一车系,比如奥迪A6L,由于车系较多,SDK实现时透传此字段,设备如实填写。
+ public short wBrandYear; // 车辆品牌年款 需要通过映射表得到真正的年款 映射表详见开发手册
+
+ protected int getNativeAlignment(Class> type, Object value, boolean isFirstElement) {
+ int alignment = super.getNativeAlignment(type, value, isFirstElement);
+ return Math.min(4, alignment);
+ }
+
+ public NET_MSG_OBJECT(){
+
+ for(int i=0;i=0,0表示自动调整大小
+ public int nSpecailDetectNum; //特殊检测区域个数
+ public CFG_SPECIALDETECT_INFO[] stSpecialDetectRegions = (CFG_SPECIALDETECT_INFO[])new CFG_SPECIALDETECT_INFO().toArray(MAX_SPECIALDETECT_NUM); //特殊检测区信息
+ public int nAttribute; //需要识别物体的属性个数, 类型为unsigned int
+ public byte[] szAttributes = new byte[MAX_OBJECT_ATTRIBUTES_SIZE*MAX_NAME_LEN]; //需要识别物体的属性列表,“Category”
+ public int abPlateAnalyseMode; //nPlateAnalyseMode是否有效, BOOL类型,取值0或1
+ public int nPlateAnalyseMode; //车牌识别模式,0-只识别车头牌照1-只识别车尾牌照2-车头牌照优先(场景中大部分车均是车头牌照)3-车尾牌照优先(场景中大部分车均是车尾牌照)
+ //szAttributes属性存在"Category"时生效
+ public int nCategoryNum; //需要识别物体的子类型总数
+ public int[] emCategoryType = new int[MAX_CATEGORY_TYPE_NUMBER]; //子类型信息, 元素取CFG_CATEGORY_TYPE中的值
+ public byte[] szSceneType = new byte[CFG_COMMON_STRING_16]; // 检测区参数用于的场景类型
+ public CFG_LENGTH_FILETER_INFO stuLengthFilter; // 物体类型过滤器,如果指定新的过滤器以新的为准
+ public boolean bSceneTypeEx; // szSceneTypeEx 是否有效
+ public byte[] szSceneTypeEx = new byte[128]; // 检测区参数用于的场景类型扩展
+ public int nDetectLineMode; //辅助线模式,开关门检测智能大类使用 0:未知 1:中线 2:边线
+ public int nDetectLineNum; //警戒线数量
+ public CFG_POLYGON[] stuDetectLine = new CFG_POLYGON[20]; //警戒线折线类型,折线中每个端点的坐标归一化到[0,8192)区间。,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.CFG_POLYGON}
+ public byte[] byReserved = new byte[1024]; //预留
+ }
+
+ // 计量方式
+ public static class EM_CFG_MEASURE_MODE_TYPE extends SdkStructure
+ {
+ public static final int EM_CFG_NEASURE_MODE_TYPE_UNKNOW = 0; // 未知
+ public static final int EM_CFG_NEASURE_MODE_TYPE_PIXEL = 1; // 像素
+ public static final int EM_CFG_NEASURE_MODE_TYPE_METRIC = 2; // 实际长度
+ }
+
+ // 过滤类型
+ public static class CFG_FILTER_HEIGHT_TYPE extends SdkStructure
+ {
+ public static final int CFG_FILTER_HEIGHT_TYPE_UNKNOW = 0; // 未知
+ public static final int CFG_FILTER_HEIGHT_TYPE_BYHEIGHT = 1; // 高度
+ }
+
+ // 物体类型长度过滤器
+ public static class CFG_LENGTH_FILETER_INFO extends SdkStructure
+ {
+ public int emMeasureMode; // 计量方式
+ public int emFilterType; // 过滤类型
+ public int nDetectType; // 0:大于且小于 1:大于或等于且小于或等于 2:大于且小于或等于 3:大于或等于且小于
+ public int nMinLen; // 最小检测长度,单位:cm
+ public int nMaxLen; // 最大检测长度,单位:cm
+ }
+
+ public static class CFG_ANALYSEMODULES_INFO extends SdkStructure
+ {
+ public int nMoudlesNum; //检测模块数
+ public CFG_MODULE_INFO[] stuModuleInfo = (CFG_MODULE_INFO[])new CFG_MODULE_INFO().toArray(MAX_ANALYSE_MODULE_NUM); //每个视频输入通道对应的各种类型物体的检测模块配置
+ }
+
+ // CLIENT_FindGroupInfo接口输入参数
+ public static class NET_IN_FIND_GROUP_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public byte[] szGroupId = new byte[NET_COMMON_STRING_64]; //人员组ID,唯一标识一组人员,为空表示查询全部人员组信息
+
+ public NET_IN_FIND_GROUP_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 人脸数据类型
+ public static class EM_FACE_DB_TYPE extends SdkStructure
+ {
+ public static final int NET_FACE_DB_TYPE_UNKOWN = 0;
+ public static final int NET_FACE_DB_TYPE_HISTORY = 1; // 历史数据库,存放的是检测出的人脸信息,一般没有包含人脸对应人员信息
+ public static final int NET_FACE_DB_TYPE_BLACKLIST = 2; // 禁止名单数据库
+ public static final int NET_FACE_DB_TYPE_WHITELIST = 3; // 允许名单数据库,废弃
+ public static final int NET_FACE_DB_TYPE_ALARM = 4; // 报警库, 废弃
+ public static final int NET_FACE_DB_TYPE_PASSERBY = 5; // 路人库
+ }
+
+ // 人员组信息
+ public static class NET_FACERECONGNITION_GROUP_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public int emFaceDBType; // 人员组类型,详见EM_FACE_DB_TYPE, 取值为EM_FACE_DB_TYPE中的值
+ public byte[] szGroupId = new byte[NET_COMMON_STRING_64]; // 人员组ID,唯一标识一组人员(不可修改,添加操作时无效)
+ public byte[] szGroupName = new byte[NET_COMMON_STRING_128]; // 人员组名称
+ public byte[] szGroupRemarks = new byte[NET_COMMON_STRING_256]; // 人员组备注信息
+ public int nGroupSize; // 当前组内人员数
+ public int nRetSimilarityCount; // 实际返回的库相似度阈值个数
+ public int[] nSimilarity = new int[MAX_SIMILARITY_COUNT]; // 库相似度阈值,人脸比对高于阈值认为匹配成功
+ public int nRetChnCount; // 实际返回的通道号个数
+ public int[] nChannel = new int[NET_MAX_CAMERA_CHANNEL_NUM]; // 当前组绑定到的视频通道号列表
+ public int[] nFeatureState = new int[MAX_FEATURESTATE_NUM]; // 人脸组建模状态信息:
+ // [0]-准备建模的人员数量,不保证一定建模成功
+ // [1]-建模失败的人员数量,图片不符合算法要求,需要更换图片
+ // [2]-已建模成功人员数量,数据可用于算法进行目标识别
+ // [3]-曾经建模成功,但因算法升级变得不可用的数量,重新建模就可用
+ public int emRegisterDbType; // 注册库类型,详见EM_REGISTER_DB_TYPE
+ public byte[] byReserved1 = new byte[4]; // 字节对齐
+ public NET_PASSERBY_DB_CONFIG_INFO stuPasserbyDBConfig; // 路人库配置(选填)
+ public int nGroupSimilarity; // 组相似度阈值,人脸比对高于阈值认为匹配成功
+ public int nMaskSimilarity; // 库口罩相似度阈值,取值范围0-100,可用于口罩检测
+ public int dwCapacity; // 最大注册数目
+ public int nOverWrite; // 注册库满覆盖策略: 0:未知, 1:满停止, 2:满覆盖
+
+ public NET_FACERECONGNITION_GROUP_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 注册库属性
+ public static class EM_REGISTER_DB_TYPE extends SdkStructure
+ {
+ public static final int EM_REGISTER_DB_TYPE_UNKNOWN = 0; // 未知
+ public static final int EM_REGISTER_DB_TYPE_NORMAL = 1; // 普通库
+ public static final int EM_REGISTER_DB_TYPE_BLACKLIST = 2; // 禁止名单
+ public static final int EM_REGISTER_DB_TYPE_WHITELIST = 3; // 允许名单
+ public static final int EM_REGISTER_DB_TYPE_VIP = 4; // 库
+ public static final int EM_REGISTER_DB_TYPE_STAFF = 5; // 员工库
+ public static final int EM_REGISTER_DB_TYPE_LEADER = 6; // 领导库
+ }
+
+ // CLIENT_FindGroupInfo接口输出参数
+ public static class NET_OUT_FIND_GROUP_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public Pointer pGroupInfos; // 人员组信息,由用户申请空间, 指向 NET_FACERECONGNITION_GROUP_INFO 的指针
+ public int nMaxGroupNum; // 当前申请的数组大小
+ public int nRetGroupNum; // 设备返回的人员组个数
+
+ public NET_OUT_FIND_GROUP_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 人员组操作枚举
+ public static class EM_OPERATE_FACERECONGNITION_GROUP_TYPE extends SdkStructure
+ {
+ public static final int NET_FACERECONGNITION_GROUP_UNKOWN = 0;
+ public static final int NET_FACERECONGNITION_GROUP_ADD = 1; // 添加人员组信息, 对应结构体为 NET_ADD_FACERECONGNITION_GROUP_INFO
+ public static final int NET_FACERECONGNITION_GROUP_MODIFY = 2; // 修改人员组信息, 对应结构体为 NET_MODIFY_FACERECONGNITION_GROUP_INFO
+ public static final int NET_FACERECONGNITION_GROUP_DELETE = 3; // 删除人员组信息, 对应结构体为 NET_DELETE_FACERECONGNITION_GROUP_INFO
+ }
+
+ // CLIENT_OperateFaceRecognitionGroup 接口输入参数
+ public static class NET_IN_OPERATE_FACERECONGNITION_GROUP extends SdkStructure
+ {
+ public int dwSize;
+ public int emOperateType; // 操作类型, 取值为 EM_OPERATE_FACERECONGNITION_GROUP_TYPE 中的值
+ public Pointer pOPerateInfo; // 相关操作信息,指向void *
+
+ public NET_IN_OPERATE_FACERECONGNITION_GROUP()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // CLIENT_OperateFaceRecognitionGroup接口输出参数
+ public static class NET_OUT_OPERATE_FACERECONGNITION_GROUP extends SdkStructure
+ {
+ public int dwSize;
+ public byte[] szGroupId = new byte[NET_COMMON_STRING_64]; // 新增记录的人员组ID,唯一标识一组人员
+
+ public NET_OUT_OPERATE_FACERECONGNITION_GROUP()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 添加人员组信息
+ public static class NET_ADD_FACERECONGNITION_GROUP_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public NET_FACERECONGNITION_GROUP_INFO stuGroupInfo; // 人员组信息
+
+ public NET_ADD_FACERECONGNITION_GROUP_INFO() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 修改人员组信息
+ public static class NET_MODIFY_FACERECONGNITION_GROUP_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public NET_FACERECONGNITION_GROUP_INFO stuGroupInfo; // 人员组信息
+
+ public NET_MODIFY_FACERECONGNITION_GROUP_INFO() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 删除人员组信息
+ public static class NET_DELETE_FACERECONGNITION_GROUP_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public byte[] szGroupId = new byte[NET_COMMON_STRING_64]; // 人员组ID,唯一标识一组人员
+
+ public NET_DELETE_FACERECONGNITION_GROUP_INFO() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // CLIENT_SetGroupInfoForChannel接口输入参数
+ public static class NET_IN_SET_GROUPINFO_FOR_CHANNEL extends SdkStructure
+ {
+ public int dwSize;
+ public int nChannelID; // 通道号
+ public int nGroupIdNum; // 人员组数
+ public GROUP_ID[] szGroupIdArr = (GROUP_ID[])new GROUP_ID().toArray(MAX_GOURP_NUM); // 人员组ID
+ public int nSimilaryNum; // 相似度阈值个数, 与人员组数相同
+ public int[] nSimilary = new int[MAX_GOURP_NUM]; // 每个人脸组的相似度阈值, 0-100
+
+ public NET_IN_SET_GROUPINFO_FOR_CHANNEL()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // CLIENT_SetGroupInfoForChannel接口输出参数
+ public static class NET_OUT_SET_GROUPINFO_FOR_CHANNEL extends SdkStructure
+ {
+ public int dwSize;
+
+ public NET_OUT_SET_GROUPINFO_FOR_CHANNEL()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 人脸查询状态信息回调函数, lAttachHandle是CLIENT_AttachFaceFindState的返回值
+ public static class NET_CB_FACE_FIND_STATE extends SdkStructure
+ {
+ public int dwSize;
+ public int nToken; // 视频浓缩任务数据库主键ID
+ public int nProgress; // 正常取值范围:0-100,-1,表示查询token不存在(当订阅一个不存在或结束的查询时)
+ public int nCurrentCount; // 目前符合查询条件的人脸数量
+
+ public NET_CB_FACE_FIND_STATE()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ //CLIENT_AttachFaceFindState接口输入参数
+ public static class NET_IN_FACE_FIND_STATE extends SdkStructure
+ {
+ public int dwSize; //结构体大小,必须填写
+ public int nTokenNum; //查询令牌数,为0时,表示订阅所有的查询任务
+ public IntByReference nTokens; //查询令牌, 指向int的指针
+ public Callback cbFaceFindState; //回调函数 fFaceFindState 回调
+ public Pointer dwUser; //用户数据
+
+ public NET_IN_FACE_FIND_STATE()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ //CLIENT_AttachFaceFindState接口输入参数
+ public static class NET_OUT_FACE_FIND_STATE extends SdkStructure
+ {
+ public int dwSize;
+
+ public NET_OUT_FACE_FIND_STATE()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // SDK全局日志打印信息
+ public static class LOG_SET_PRINT_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public int bSetFilePath; //是否重设日志路径, BOOL类型,取值0或1
+ public byte[] szLogFilePath = new byte[MAX_LOG_PATH_LEN]; //日志路径(默认"./sdk_log/sdk_log.log")
+ public int bSetFileSize; //是否重设日志文件大小, BOOL类型,取值0或1
+ public int nFileSize; //每个日志文件的大小(默认大小10240),单位:比特, 类型为unsigned int
+ public int bSetFileNum; //是否重设日志文件个数, BOOL类型,取值0或1
+ public int nFileNum; //绕接日志文件个数(默认大小10), 类型为unsigned int
+ public int bSetPrintStrategy; //是否重设日志打印输出策略, BOOL类型,取值0或1
+ public int nPrintStrategy; //日志输出策略,0:输出到文件(默认); 1:输出到窗口, 类型为unsigned int
+ public byte[] byReserved = new byte[4]; // 字节对齐
+ public Pointer cbSDKLogCallBack; // 日志回调,需要将sdk日志回调出来时设置,默认为NULL
+ public Pointer dwUser; // 用户数据
+
+ public LOG_SET_PRINT_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // media文件查询条件
+ public static class EM_FILE_QUERY_TYPE extends SdkStructure
+ {
+ public static final int NET_FILE_QUERY_TRAFFICCAR = 0; // 交通车辆信息, 对应结构体为 MEDIA_QUERY_TRAFFICCAR_PARAM
+ public static final int NET_FILE_QUERY_ATM = 1; // ATM信息
+ public static final int NET_FILE_QUERY_ATMTXN = 2; // ATM交易信息
+ public static final int NET_FILE_QUERY_FACE = 3; // 人脸信息 MEDIAFILE_FACERECOGNITION_PARAM 和 MEDIAFILE_FACERECOGNITION_INFO
+ public static final int NET_FILE_QUERY_FILE = 4; // 文件信息对应 NET_IN_MEDIA_QUERY_FILE 和 NET_OUT_MEDIA_QUERY_FILE
+ public static final int NET_FILE_QUERY_TRAFFICCAR_EX = 5; // 交通车辆信息,扩展 NET_FILE_QUERY_TRAFFICCAR,支持更多的字段, 对应结构体为 MEDIA_QUERY_TRAFFICCAR_PARAM_EX
+ public static final int NET_FILE_QUERY_FACE_DETECTION = 6; // 目标检测事件信息MEDIAFILE_FACE_DETECTION_PARAM和 MEDIAFILE_FACE_DETECTION_INFO
+ public static final int NET_FILE_QUERY_NONMOTOR = 12; ///// 非机动车查询, MEDIAFILE_NONMOTOR_PARAM 和 MEDIAFILE_NONMOTOR_INFO
+ public static final int NET_FILE_QUERY_SNAPSHOT_WITH_MARK = 17; // 标记抓图查询, 对应MEDIAFILE_SNAPSHORT_WITH_MARK_PARAM 和MEDIAFILE_SNAPSHORT_WITH_MARK_INFO
+ public static final int NET_FILE_QUERY_ANATOMY_TEMP_DETECT = 18; // 人体测温信息查询, 对应 MEDIAFILE_ANATOMY_TEMP_DETECT_PARAM 和 MEDIAFILE_ANATOMY_TEMP_DETECT_INFO
+ public static final int NET_FILE_QUERY_FIRE_CONTROL_MONITOR = 21; //消控室值班行为检测事件查询,对应 MEDIAFILE_FIRE_CONTROL_MONITOR_PARAM 和 MEDIAFILE_FIRE_CONTROL_MONITOR_INFO
+ public static final int NET_FILE_QUERY_MOBILE_ENFORCE = 27; // 采集站和手持终端文件信息查询,对应 MEDIAFILE_MOBILE_ENFORCE_PARAM 和 MEDIAFILE_MOBILE_ENFORCE_INFO
+ public static final int NET_FILE_QUERY_SMART_KITCHEN_CLOTHES_DETECTION = 28; // 智慧厨房查询,对应 MEDIAFILE_SMART_KITCHEN_CLOTHES_DETECTION_PARAM 和 MEDIAFILE_SMART_KITCHEN_CLOTHES_DETECTION_INFO
+ public static final int NET_FILE_QUERY_EXAM = 33; //按照考生或考场信息查找录像, 对应 NET_MEDIAFILE_EXAM_PARAM 和 NET_MEDIAFILE_EXAM_INFO
+ public static final int NET_FILE_QUERY_ANIMAL_DETECTION = 37; ///// 动物检测智能回放查询, 对应 NET_MEDIAFILE_ANIMAL_DETECTION_PARAM和 NET_MEDIA_ANIMAL_DETECTION_INFO
+ }
+
+ // 查询跳转条件
+ public static class NET_FINDING_JUMP_OPTION_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public int nOffset; //查询结果偏移量,是相对于当前查询的第一条查询结果的位置偏移
+
+ public NET_FINDING_JUMP_OPTION_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 云台联动类型
+ public static class CFG_LINK_TYPE extends SdkStructure
+ {
+ public static final int LINK_TYPE_NONE = 0; //无联动
+ public static final int LINK_TYPE_PRESET = 1; //联动预置点
+ public static final int LINK_TYPE_TOUR = 2; //联动巡航
+ public static final int LINK_TYPE_PATTERN = 3; //联动轨迹
+ public static final int LINK_TYPE_ZOOM = 4; // 联动变倍
+ public static final int LINK_TYPE_SINGLESCENE = 5; // 联动智能单场景
+ public static final int LINK_TYPE_QUICKFOCUS = 6; // 热成像云台联动快速定位
+ }
+
+ // 联动云台信息
+ public static class CFG_PTZ_LINK extends SdkStructure
+ {
+ public int emType; //联动类型, 取值为CFG_LINK_TYPE中的值
+ public int nValue; //联动取值分别对应预置点号,巡航号等等
+ }
+
+ // 联动云台信息扩展
+ public static class CFG_PTZ_LINK_EX extends SdkStructure
+ {
+ public int emType; //联动类型, 取值为CFG_LINK_TYPE中的值
+ public int nParam1; //联动参数1
+ public int nParam2; //联动参数2
+ public int nParam3; //联动参数3
+ public int nChannelID; //所联动云台通道
+ }
+
+ // RGBA信息
+ public static class CFG_RGBA extends SdkStructure
+ {
+ public int nRed;
+ public int nGreen;
+ public int nBlue;
+ public int nAlpha;
+ }
+
+ // 事件标题内容结构体
+ public static class CFG_EVENT_TITLE extends SdkStructure
+ {
+ public byte[] szText = new byte[64];
+ /**
+ 标题左上角坐标, 采用0-8191相对坐标系
+ */
+ public CFG_POLYGON stuPoint = new CFG_POLYGON();
+ /**
+ 标题的宽度和高度,采用0-8191相对坐标系,某项或者两项为0表示按照字体自适应宽高
+ */
+ public CFG_SIZE stuSize = new CFG_SIZE();
+ /**
+ 前景颜色
+ */
+ public CFG_RGBA stuFrontColor = new CFG_RGBA();
+ /**
+ 背景颜色
+ */
+ public CFG_RGBA stuBackColor = new CFG_RGBA();
+ }
+
+ public static class NET_CFG_EVENT_TITLE extends SdkStructure
+ {
+ public byte[] szText = new byte[MAX_CHANNELNAME_LEN];
+ public NET_POINT stuPoint; //标题左上角坐标,采用0-8191相对坐标系
+ public NET_SIZE stuSize; //标题的宽度和高度,采用0-8191相对坐标系,某项或者两项为0表示按照字体自适应宽高
+ public CFG_RGBA stuFrontColor; //前景颜色
+ public CFG_RGBA stuBackColor; //背景颜色
+ }
+
+ // 邮件附件类型
+ public static class CFG_ATTACHMENT_TYPE extends SdkStructure
+ {
+ public static final int ATTACHMENT_TYPE_PIC = 0; //图片附件
+ public static final int ATTACHMENT_TYPE_VIDEO = 1; //视频附件
+ public static final int ATTACHMENT_TYPE_NUM = 2; //附件类型总数
+ }
+
+ // 分割模式
+ public static class CFG_SPLITMODE extends SdkStructure
+ {
+ public static final int SPLITMODE_1 = 1; //1画面
+ public static final int SPLITMODE_2 = 2; //2画面
+ public static final int SPLITMODE_4 = 4; //4画面
+ public static final int SPLITMODE_5 = 5; //5画面
+ public static final int SPLITMODE_6 = 6; //6画面
+ public static final int SPLITMODE_8 = 8; //8画面
+ public static final int SPLITMODE_9 = 9; //9画面
+ public static final int SPLITMODE_3 = 10; // 3画面
+ public static final int SPLITMODE_3B = 11; // 3画面倒品
+ public static final int SPLITMODE_12 = 12; //12画面
+ public static final int SPLITMODE_16 = 16; //16画面
+ public static final int SPLITMODE_20 = 20; //20画面
+ public static final int SPLITMODE_25 = 25; //25画面
+ public static final int SPLITMODE_36 = 36; //36画面
+ public static final int SPLITMODE_64 = 64; //64画面
+ public static final int SPLITMODE_144 = 144; //144画面
+ public static final int SPLITMODE_PIP = 1000; //画中画分割模式基础值
+ public static final int SPLITMODE_PIP1 = SPLITMODE_PIP+1; //画中画模式, 1个全屏大画面+1个小画面窗口
+ public static final int SPLITMODE_PIP3 = SPLITMODE_PIP+3; //画中画模式, 1个全屏大画面+3个小画面窗口
+ public static final int SPLITMODE_FREE = SPLITMODE_PIP*2; //自由开窗模式,可以自由创建、关闭窗口,自由设置窗口位置和Z轴次序
+ public static final int SPLITMODE_COMPOSITE_1 = SPLITMODE_PIP * 3 + 1; // 融合屏成员1分割
+ public static final int SPLITMODE_COMPOSITE_4 = SPLITMODE_PIP * 3 + 4; // 融合屏成员4分割
+ }
+
+ // 轮巡联动配置
+ public static class CFG_TOURLINK extends SdkStructure
+ {
+ public int bEnable; //轮巡使能, BOOL类型,取值0或1
+ public int emSplitMode; //轮巡时的分割模式,取值范围为CFG_SPLITMODE中的值
+ public int[] nChannels = new int[MAX_VIDEO_CHANNEL_NUM]; //轮巡通道号列表
+ public int nChannelCount; //轮巡通道数量
+ }
+
+ // 门禁操作类型
+ public static class EM_CFG_ACCESSCONTROLTYPE extends SdkStructure
+ {
+ public static final int EM_CFG_ACCESSCONTROLTYPE_NULL = 0; //不做操作
+ public static final int EM_CFG_ACCESSCONTROLTYPE_AUTO = 1; //自动
+ public static final int EM_CFG_ACCESSCONTROLTYPE_OPEN = 2; //开门
+ public static final int EM_CFG_ACCESSCONTROLTYPE_CLOSE = 3; //关门
+ public static final int EM_CFG_ACCESSCONTROLTYPE_OPENALWAYS = 4; //永远开启
+ public static final int EM_CFG_ACCESSCONTROLTYPE_CLOSEALWAYS = 5; //永远关闭
+ }
+
+ // 邮件详细内容
+ public static class CFG_MAIL_DETAIL extends SdkStructure
+ {
+ public int emAttachType; //附件类型, 取值范围为CFG_ATTACHMENT_TYPE中的值
+ public int nMaxSize; //文件大小上限,单位kB
+ public int nMaxTimeLength; //最大录像时间长度,单位秒,对video有效
+ }
+
+ // 语音呼叫发起方
+ public static class EM_CALLER_TYPE extends SdkStructure
+ {
+ public static final int EM_CALLER_DEVICE = 0; //设备发起
+ }
+
+ // 呼叫协议
+ public static class EM_CALLER_PROTOCOL_TYPE extends SdkStructure
+ {
+ public static final int EM_CALLER_PROTOCOL_CELLULAR = 0; //手机方式
+ }
+
+ // 语音呼叫联动信息
+ public static class CFG_TALKBACK_INFO extends SdkStructure
+ {
+ public int bCallEnable; //语音呼叫使能, BOOL类型,取值0或1
+ public int emCallerType; //语音呼叫发起方, 取值范围为EM_CALLER_TYPE中的值
+ public int emCallerProtocol; //语音呼叫协议, 取值范围为EM_CALLER_PROTOCOL_TYPE中的值
+ }
+
+ // 电话报警中心联动信息
+ public static class CFG_PSTN_ALARM_SERVER extends SdkStructure
+ {
+ public int bNeedReport; //是否上报至电话报警中心, BOOL类型,取值0或1
+ public int nServerCount; //电话报警服务器个数
+ public byte[] byDestination = new byte[MAX_PSTN_SERVER_NUM]; //上报的报警中心下标,详见配置CFG_PSTN_ALARM_CENTER_INFO
+ }
+
+ // 时间表信息
+ public static class CFG_TIME_SCHEDULE extends SdkStructure
+ {
+ /**
+ 是否支持节假日配置,默认为不支持,除非获取配置后返回为TRUE,不要使能假日配置
+ */
+ public int bEnableHoliday;
+ /**
+ 第一维前7个元素对应每周7天,第8个元素对应节假日,每天最多6个时间段
+ */
+ public CFG_TIME_SECTION[] stuTimeSectionWeekDay = new CFG_TIME_SECTION[8*6];
+
+ public CFG_TIME_SCHEDULE(){
+ for(int i=0;i0,禁止名单数据记录
+ public NET_COLOR_RGBA stuRGBA; // 车身颜色RGBA
+ public NET_TIME stSnapTime; // 抓拍时间
+ public int nRecNo; // 记录编号
+ public byte[] szCustomParkNo = new byte[NET_COMMON_STRING_32+1]; // 自定义车位号(停车场用)
+ public byte[] byReserved1 = new byte[3];
+ public int nDeckNo; // 车板位号
+ public int nFreeDeckCount; // 空闲车板数量
+ public int nFullDeckCount; // 占用车板数量
+ public int nTotalDeckCount; // 总共车板数量
+ public byte[] szViolationName = new byte[64]; // 违章名称
+ public int nWeight; // 车重(单位Kg), 类型为unsigned int
+ public byte[] szCustomRoadwayDirection = new byte[32]; // 自定义车道方向,byDirection为9时有效
+ public byte byPhysicalLane; // 物理车道号,取值0到5
+ public byte[] byReserved2 = new byte[3];
+ public int emMovingDirection; // 车辆行驶方向 EM_TRAFFICCAR_MOVE_DIRECTION
+ public NET_TIME stuEleTagInfoUTC; // 对应电子车牌标签信息中的过车时间(ThroughTime)
+ public NET_RECT stuCarWindowBoundingBox; // 车窗包围盒,0~8191
+ public NET_TRAFFICCAR_WHITE_LIST stuWhiteList; // 允许名单信息
+ public int emCarType; // 车辆类型, 详见 EM_TRAFFICCAR_CAR_TYPE
+ public int emLaneType; // 车道类型, 详见EM_TRAFFICCAR_LANE_TYPE
+ public byte[] szVehicleBrandYearText = new byte[64]; // 车系年款翻译后文本内容
+ public byte[] szCategory = new byte[32]; // 车辆子类型
+ public NET_TRAFFICCAR_BLACK_LIST stuBlackList; // 禁止名单信息
+ public int emFlowDirection; // 车流量方向 EM_VEHICLE_DIRECTION
+ /**
+ * 收费公路车辆通行费车型分类 {@link com.netsdk.lib.enumeration.EM_TOLLS_VEHICLE_TYPE}
+ */
+ public int emTollsVehicleType;
+ /**
+ * 轴型代码,参考轴型国标 0代表其他
+ */
+ public int nAxleType;
+ /**
+ * 车轴数量
+ */
+ public int nAxleCount;
+ /**
+ * 车轮数量
+ */
+ public int nWheelNum;
+ /**
+ * 车身抠图
+ */
+ public NET_TRAFFICCAR_ORIGINAL_VEHICLE stuOriginalVehicle = new NET_TRAFFICCAR_ORIGINAL_VEHICLE();
+ /**
+ * 按功能划分的车辆类型 {@link NetSDKLib.EM_VEHICLE_TYPE_BY_FUNC}
+ */
+ public int emVehicleTypeByFunc;
+ /**
+ * 车辆子品牌
+ */
+ public short nSunBrand;
+ /**
+ * 车辆年款
+ */
+ public short nBrandYear;
+ /**
+ * 交通灯类型,仅在EVENT_IVS_TRAFFIC_RUNREDLIGHT中有效, 0;未知, 1:箭头灯, 2:圆形灯
+ */
+ public int nTrafficLightType;
+ /**
+ * 车牌属性 {@link com.netsdk.lib.enumeration.EM_PLATE_ATTRIBUTE}
+ */
+ public int emPlateAttribute;
+ /**
+ * 交通车辆信息扩展, refer to {@link com.netsdk.lib.structure.NET_TRAFFICCAR_INFO_EXTERN}
+ */
+ public Pointer pTrafficInfoExtern;
+ public byte[] szCarNoGroupType = new byte[64]; //分组类别,出租车、网约车、私家车等等
+ /**
+ * 保留字节,留待扩展
+ */
+ public byte[] bReserved = new byte[68-POINTERSIZE];
+ }
+
+ // 禁止名单信息
+ public static class NET_TRAFFICCAR_BLACK_LIST extends SdkStructure
+ {
+ /**
+ 是否已启用禁止名单
+ */
+ public int bEnable;
+ /**
+ 车牌是否属于禁止名单
+ */
+ public int bIsBlackCar;
+ /**
+ 禁止名单起始时间
+ */
+ public NET_TIME stuBeginTime = new NET_TIME();
+ /**
+ 禁止名单过期时间
+ */
+ public NET_TIME stuCancelTime = new NET_TIME();
+ /**
+ 布控类型 {@link com.netsdk.lib.enumeration.EM_NET_TRAFFIC_CAR_CONTROL_TYPE}
+ */
+ public int emControlType;
+ /**
+ 布控路线ID
+ */
+ public int nControlledRouteID;
+ /**
+ 保留字节
+ */
+ public byte[] bReserved = new byte[24];
+
+ public NET_TRAFFICCAR_BLACK_LIST(){
+ }
+ }
+
+ // 车辆类型
+ public static class EM_TRAFFICCAR_CAR_TYPE extends SdkStructure
+ {
+ public static final int EM_TRAFFICCAR_CAR_TYPE_UNKNOWN = 0; // 未知
+ public static final int EM_TRAFFICCAR_CAR_TYPE_TRUST_CAR = 1; // 允许名单车辆
+ public static final int EM_TRAFFICCAR_CAR_TYPE_SUSPICIOUS_CAR = 2; // 禁止名单车辆
+ public static final int EM_TRAFFICCAR_CAR_TYPE_NORMAL_CAR = 3; // 非允许名单且非禁止名单车辆
+ }
+
+ // 车道类型
+ public static class EM_TRAFFICCAR_LANE_TYPE extends SdkStructure
+ {
+ public static final int EM_TRAFFICCAR_LANE_TYPE_UNKNOWN = 0; // 未知
+ public static final int EM_TRAFFICCAR_LANE_TYPE_NORMAL = 1; // 普通车道
+ public static final int EM_TRAFFICCAR_LANE_TYPE_NONMOTOR = 2; // 非机动车车道
+ public static final int EM_TRAFFICCAR_LANE_TYPE_LIGHT_DUTY = 3; // 小型车车道
+ public static final int EM_TRAFFICCAR_LANE_TYPE_BUS = 4; // 公交车车道
+ public static final int EM_TRAFFICCAR_LANE_TYPE_EMERGENCY = 5; // 应急车道
+ public static final int EM_TRAFFICCAR_LANE_TYPE_DANGEROUS = 6; // 危险品车道
+ }
+
+ // 允许名单信息
+ public static class NET_TRAFFICCAR_WHITE_LIST extends SdkStructure
+ {
+ public int bTrustCar; // 车牌是否属于允许名单
+ public NET_TIME stuBeginTime; // 允许名单起始时间
+ public NET_TIME stuCancelTime; // 允许名单过期时间
+ public NET_WHITE_LIST_AUTHORITY_LIST stuAuthorityList; // 允许名单权限列表
+ public byte[] bReserved = new byte[32]; // 保留字节
+ }
+
+ // 允许名单权限列表
+ public static class NET_WHITE_LIST_AUTHORITY_LIST extends SdkStructure
+ {
+ public int bOpenGate; // 是否有开闸权限
+ public byte[] bReserved = new byte[16]; // 保留字节
+ }
+
+ // 事件类型EVENT_IVS_TRAFFIC_PARKING(交通违章停车事件)对应的数据块描述信息
+ public static class DEV_EVENT_TRAFFIC_PARKING_INFO extends SdkStructure {
+ public int nChannelID; //通道号
+ public byte[] szName = new byte[128]; //事件名称
+ public byte[] bReserved1 = new byte[4]; //字节对齐
+ public double PTS; //时间戳(单位是毫秒)
+ public NET_TIME_EX UTC = new NET_TIME_EX(); //事件发生的时间
+ public int nEventID; //事件ID
+ public NET_MSG_OBJECT stuObject = new NET_MSG_OBJECT(); //检测到的物体
+ public NET_MSG_OBJECT stuVehicle = new NET_MSG_OBJECT(); //车身信息
+ public int nLane; //对应车道号
+ public NET_EVENT_FILE_INFO stuFileInfo = new NET_EVENT_FILE_INFO(); //事件对应文件信息
+ public byte bEventAction; //事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] reserved = new byte[2]; //保留字节
+ public byte byImageIndex; //图片的序号,同一时间内(精确到秒)可能有多张图片,从0开始
+ public NET_TIME_EX stuStartParkingTime = new NET_TIME_EX(); //开始停车时间
+ public int nSequence; //表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束(bEventAction=2时此参数有效)
+ public int nAlarmIntervalTime; //报警时间间隔,单位:秒。(此事件为连续性事件,在收到第一个此事件之后,若在超过间隔时间后未收到此事件的后续事件,则认为此事件异常结束了)
+ public int nParkingAllowedTime; //允许停车时长,单位:秒。
+ public int nDetectRegionNum; //规则检测区域顶点数
+ public NET_POINT[] DetectRegion = (NET_POINT[]) new NET_POINT().toArray(NET_MAX_DETECT_REGION_NUM); //规则检测区域
+ public int dwSnapFlagMask; //抓图标志(按位),具体见NET_RESERVED_COMMON
+ public NET_RESOLUTION_INFO stuResolution = new NET_RESOLUTION_INFO(); //对应图片的分辨率
+ public int bIsExistAlarmRecord; //true:有对应的报警录像;false:无对应的报警录像, 类型为BOOL, 取值为0或1
+ public int dwAlarmRecordSize; //录像大小
+ public byte[] szAlarmRecordPath = new byte[NET_COMMON_STRING_256]; //录像路径
+ public byte[] szFTPPath = new byte[NET_COMMON_STRING_256]; //FTP路径
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo = new EVENT_INTELLI_COMM_INFO(); //智能事件公共信息
+ public byte byPreAlarm; // 是否为违章预警图片,0 违章停车事件1 预警事件(预警触发后一定时间,车辆还没有离开,才判定为违章)由于此字段会导致事件含义改变,必须和在平台识别预警事件后,才能有此字段,
+ public byte[] bReserved2 = new byte[3]; // 保留字节,留待扩展.
+ public NET_GPS_INFO stuGPSInfo = new NET_GPS_INFO(); // GPS信息
+ public Pointer pstuImageInfo; //图片信息数组,{@link NET_IMAGE_INFO_EX2}
+ public int nImageInfoNum; //图片信息个数
+ public int nPresetID; //预置点编号,从1开始
+ public byte[] szSN = new byte[32]; //设备SN号
+ public int emViolationSnapSource; //抓拍触发源,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_VIOLATION_SNAP_SOURCE}
+ public int bIsStrictArea; //是否为严抓路段 TRUE:是 FALSE:不是
+ public Pointer pstuSceneImage; //全景图图片信息,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.SCENE_IMAGE_INFO_EX}
+ public byte[] szPreParkingPlace = new byte[64]; //违法地点
+ public byte[] szRecordEndTime = new byte[64]; //最后一张图片的时间, 格式为:yyyy-MM-ddTHH:mm:ss.SSSXXX, 其中T为不需要解析的无意义字符,XXX为时区
+ public byte[] bReserved = new byte[48-POINTERSIZE]; //保留字节,留待扩展.
+ public com.netsdk.lib.structure.DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar = new com.netsdk.lib.structure.DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO(); //交通车辆信息
+ public EVENT_COMM_INFO stCommInfo = new EVENT_COMM_INFO(); //公共信息
+ public VA_OBJECT_NONMOTOR stuNonMotor = new VA_OBJECT_NONMOTOR(); //非机动车对象
+ public int bHasNonMotor; //是否有非机动车对象
+ public int nParkingDuration; //违停持续时间,单位:秒, 0表示无意义
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+
+ public DEV_EVENT_TRAFFIC_PARKING_INFO() {
+ for (int i = 0; i < DetectRegion.length; i++) {
+ DetectRegion[i] = new NET_POINT();
+ }
+ }
+ }
+
+ //停车场信息
+ public static class DEV_TRAFFIC_PARKING_INFO extends SdkStructure
+ {
+ public int nFeaturePicAreaPointNum; // 特征图片区点个数
+ public NET_POINT[] stFeaturePicArea = (NET_POINT[])new NET_POINT().toArray(NET_MAX_POLYGON_NUM); // 特征图片区信息
+ public byte[] bReserved = new byte[572]; // 保留字节
+ }
+
+ //事件类型 EVENT_IVS_TRAFFIC_PARKINGSPACEPARKING(车位有车事件)对应的数据块描述信息
+ public static class DEV_EVENT_TRAFFIC_PARKINGSPACEPARKING_INFO extends SdkStructure
+ {
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 字节对齐
+ */
+ public byte[] bReserved1 = new byte[8];
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public int PTS;
+ /**
+ * 事件发生的时间
+ */
+ public NET_TIME_EX UTC = new NET_TIME_EX();
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 对应车道号
+ */
+ public int nLane;
+ /**
+ * 检测到的物体
+ */
+ public NetSDKLib.NET_MSG_OBJECT stuObject = new NetSDKLib.NET_MSG_OBJECT();
+ /**
+ * 车身信息
+ */
+ public NetSDKLib.NET_MSG_OBJECT stuVehicle = new NetSDKLib.NET_MSG_OBJECT();
+ /**
+ * 事件对应文件信息
+ */
+ public NetSDKLib.NET_EVENT_FILE_INFO stuFileInfo = new NetSDKLib.NET_EVENT_FILE_INFO();
+ /**
+ * 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
+ */
+ public int nSequence;
+ /**
+ * 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ */
+ public byte bEventAction;
+ public byte[] byReserved = new byte[2];
+ /**
+ * 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ */
+ public byte byImageIndex;
+ /**
+ * 抓图标志(按位),具体见NET_RESERVED_COMMON
+ */
+ public int dwSnapFlagMask;
+ /**
+ * 对应图片的分辨率
+ */
+ public NetSDKLib.NET_RESOLUTION_INFO stuResolution = new NetSDKLib.NET_RESOLUTION_INFO();
+ /**
+ * 交通车辆信息
+ */
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar = new DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO();
+ /**
+ * 车位综合的状态,0-占用,1-空闲,2-压线
+ */
+ public int nParkingSpaceStatus;
+ /**
+ * 停车场信息
+ */
+ public NetSDKLib.DEV_TRAFFIC_PARKING_INFO stTrafficParingInfo = new NetSDKLib.DEV_TRAFFIC_PARKING_INFO();
+ /**
+ * 车牌识别来源, 0:本地算法识别,1:后端服务器算法识别
+ */
+ public byte byPlateTextSource;
+ /**
+ * 字节对齐
+ */
+ public byte[] byReserved2 = new byte[3];
+ /**
+ * 车位(地磁)编号
+ */
+ public byte[] szParkingNum = new byte[32];
+ /**
+ * 球机预置位编号
+ */
+ public int dwPresetNum;
+ /**
+ * 车位是否有故障
+ */
+ public int bParkingFault;
+ public Pointer pstuSceneImage; //全景广角图,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.SCENE_IMAGE_INFO_EX}
+ public int bSceneImage; //pstuSceneImage是否有效
+ /**
+ * 保留字节
+ */
+ public byte[] bReserved = new byte[360-POINTERSIZE];
+ /**
+ * 公共信息
+ */
+ public NetSDKLib.EVENT_COMM_INFO stCommInfo = new NetSDKLib.EVENT_COMM_INFO();
+ /**
+ * 车位图片信息
+ */
+ public NetSDKLib.NET_INTELLIGENCE_IMAGE_INFO stuParkingImage = new NetSDKLib.NET_INTELLIGENCE_IMAGE_INFO();
+ /**
+ * 车位置信度(0-100)
+ */
+ public int nConfidence;
+ /**
+ * 是否跨位 {@link com.netsdk.lib.enumeration.EM_ACROSS_PARKING}
+ */
+ public int emAcrossParking;
+ /**
+ * 停车方向 {@link com.netsdk.lib.enumeration.EM_PARKINGSPACE_DIRECTION}
+ */
+ public int emParkingDirection;
+ /**
+ * 禁停状态 {@link com.netsdk.lib.enumeration.EM_FORBID_PARKING_STATUS}
+ */
+ public int emForbidParkingStatus;
+ /**
+ * 是否小车占大车位 {@link com.netsdk.lib.enumeration.EM_SMALL_OCCUPY_LARGE}
+ */
+ public int emSmallOccupyLarge;
+ /**
+ * 是否为非允许名单车辆 {@link com.netsdk.lib.enumeration.EM_NON_ALLOW_LIST_CAR}
+ */
+ public int emNonAllowListCar;
+ /**
+ * 是否为非新能源车辆 {@link com.netsdk.lib.enumeration.EM_NON_NEW_ENERGY_CAR}
+ */
+ public int emNonNewEnergyCar;
+ /**
+ * 为图片信息做预留字节,新增的字段请在该保留字节下面添加
+ */
+ public byte[] byReserved1 = new byte[992];
+ /**
+ * 触发类型 {@link com.netsdk.lib.enumeration.EM_PARKING_TRIGGER_TYPE}
+ */
+ public int emTriggerType;
+ /**
+ * 一位多车信息, 如果车位此前没有车占用, 不会带有本字段信息
+ */
+ public NetSDKLib.DEV_OCCUPIED_WARNING_INFO stuOccupiedWarningInfo = new NetSDKLib.DEV_OCCUPIED_WARNING_INFO();
+ /**
+ * 所有使能的车位号
+ */
+ public ParkingNoWithSize32[] szAllParkingNo = new ParkingNoWithSize32[12];
+ /**
+ * 使能车位号的个数
+ */
+ public int nParkingNoNum;
+ /**
+ * 车位有车的事件类型 {@link com.netsdk.lib.enumeration.EM_PARKING_SPACE_TYPE}
+ */
+ public int emParkingSpaceType;
+ /**
+ * 停车变更信息
+ */
+ public NetSDKLib.NET_PARKING_CHANGE_INFO stuParkingChangeInfo = new NetSDKLib.NET_PARKING_CHANGE_INFO();
+ /**
+ * 图片信息数组
+ */
+ public Pointer pstuImageInfo;
+ /**
+ * 图片信息个数
+ */
+ public int nImageInfoNum;
+ /**
+ * 事件公共扩展字段结构体
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * 字节对齐
+ */
+ public byte[] szReserved = new byte[4];
+
+ public DEV_EVENT_TRAFFIC_PARKINGSPACEPARKING_INFO() {
+ for(int i = 0;i 0,禁止名单数据记录
+ public EVENT_COMM_INFO stCommInfo; // 公共信息
+ public byte[] bReserved = new byte[452]; // 保留字节,留待扩展.
+ }
+
+ //事件类型EVENT_IVS_TRAFFIC_RUNREDLIGHT(交通-闯红灯事件)对应的数据块描述信息
+ public static class DEV_EVENT_TRAFFIC_RUNREDLIGHT_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int nLane; // 对应车道号
+ public NET_MSG_OBJECT stuObject; // 车牌信息
+ public NET_MSG_OBJECT stuVehicle; // 车身信息
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public int nLightState; // 红绿灯状态 0:未知 1:绿灯 2:红灯 3:黄灯
+ public int nSpeed; // 车速,km/h
+ public int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] byReserved = new byte[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON, 0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ public NET_TIME_EX stRedLightUTC; // 红灯开始时间
+ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
+ public byte byRedLightMargin; // 红灯容许间隔时间,单位:秒
+ public byte[] byAlignment = new byte[3]; // 字节对齐
+ public int nRedLightPeriod; // 表示红灯周期时间,单位毫秒
+ public NET_GPS_INFO stuGPSInfo; // GPS信息
+ public byte[] bReserved = new byte[928]; // 保留字节
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
+ public EVENT_COMM_INFO stCommInfo; // 公共信息
+ public int bHasNonMotor; // 是否有非机动车对象
+ public VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车对象
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ }
+
+ //事件类型EVENT_IVS_TRAFFIC_OVERLINE(交通-压线事件)对应的数据块描述信息
+ public static class DEV_EVENT_TRAFFIC_OVERLINE_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int nLane; // 对应车道号
+ public NET_MSG_OBJECT stuObject; // 车牌信息
+ public NET_MSG_OBJECT stuVehicle; // 车身信息
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
+ public int nSpeed; // 车辆实际速度,Km/h
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] byReserved = new byte[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON, 0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
+ public NET_GPS_INFO stuGPSInfo; // GPS信息
+ public Pointer pstuImageInfo; //图片信息数组,参见结构体定义 {@link com.netsdk.lib.structure.NET_IMAGE_INFO_EX3}
+ public int nImageInfoNum; //图片信息个数
+ public Pointer pstuSceneImage; //全景图,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.SCENE_IMAGE_INFO_EX}
+ public byte[] bReserved = new byte[964-2*POINTERSIZE]; // 保留字节
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
+ public EVENT_COMM_INFO stCommInfo; // 公共信息
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ }
+
+ // 事件类型EVENT_IVS_TRAFFIC_RETROGRADE(交通-逆行事件)对应的数据块描述信息
+ public static class DEV_EVENT_TRAFFIC_RETROGRADE_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int nLane; // 对应车道号
+ public NET_MSG_OBJECT stuObject; // 车牌信息
+ public NET_MSG_OBJECT stuVehicle; // 车身信息
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
+ public int nSpeed; // 车辆实际速度,Km/h
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] byReserved = new byte[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON, 0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
+ public int bIsExistAlarmRecord; // rue:有对应的报警录像; false:无对应的报警录像
+ public int dwAlarmRecordSize; // 录像大小
+ public byte[] szAlarmRecordPath = new byte[NET_COMMON_STRING_256]; // 录像路径
+ public EVENT_INTELLI_COMM_INFO intelliCommInfo; // 智能事件公共信息
+ public NET_GPS_INFO stuGPSInfo; // GPS信息
+ public byte[] bReserved = new byte[484]; // 保留字节
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
+ public int nDetectNum; // 规则检测区域顶点数
+ public NET_POINT[] DetectRegion = (NET_POINT[])new NET_POINT().toArray(NET_MAX_DETECT_REGION_NUM); // 规则检测区域
+ public EVENT_COMM_INFO stCommInfo; // 公共信息
+ public int bHasNonMotor; // 是否有非机动车对象
+ public VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车对象
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ }
+
+ //事件类型EVENT_IVS_TRAFFIC_OVERSPEED(交通超速事件)对应的数据块描述信息
+ public static class DEV_EVENT_TRAFFIC_OVERSPEED_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int nLane; // 对应车道号
+ public NET_MSG_OBJECT stuObject; // 检测到的物体
+ public NET_MSG_OBJECT stuVehicle; // 车身信息
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public int nSpeed; // 车辆实际速度Km/h
+ public int nSpeedUpperLimit; // 速度上限 单位:km/h
+ public int nSpeedLowerLimit; // 速度下限 单位:km/h
+ public int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] byReserved = new byte[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON, 0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
+ public byte[] szFilePath = new byte[MAX_PATH]; // 文件路径
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public NET_GPS_INFO stuGPSInfo; // GPS信息
+ public int nSpeedingPercentage; // 超速百分比
+ public byte[] bReserved = new byte[572]; // 保留字节
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
+ public EVENT_COMM_INFO stCommInfo; // 公共信息
+ public NET_REGION_INFO stRegionInfo; // 区间测速信息
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
+ public VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
+ public int bHasNonMotor; // 是否有非机动车对象
+ }
+
+ //事件类型EVENT_IVS_TRAFFIC_UNDERSPEED(交通欠速事件)对应的数据块描述信息
+ public static class DEV_EVENT_TRAFFIC_UNDERSPEED_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved2 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int nLane; // 对应车道号
+ public NET_MSG_OBJECT stuObject; // 检测到的物体
+ public NET_MSG_OBJECT stuVehicle; // 车身信息
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public int nSpeed; // 车辆实际速度Km/h
+ public int nSpeedUpperLimit; // 速度上限 单位:km/h
+ public int nSpeedLowerLimit; // 速度下限 单位:km/h
+ public int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] bReserved1 = new byte[2]; // 对齐
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int nUnderSpeedingPercentage; // 欠速百分比
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON, 0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public NET_GPS_INFO stuGPSInfo; // GPS信息
+ public Pointer pstuImageInfo; //图片信息数组,参见结构体定义 {@link com.netsdk.lib.structure.NET_IMAGE_INFO_EX3}
+ public int nImageInfoNum; //图片信息个数
+ public Pointer pstuSceneImage; //全景图,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.SCENE_IMAGE_INFO_EX}
+ public byte[] bReserved = new byte[828-2*POINTERSIZE]; // 保留字节
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
+ public EVENT_COMM_INFO stCommInfo; // 公共信息
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ }
+
+ //事件类型EVENT_IVS_TRAFFIC_WRONGROUTE(交通违章-不按车道行驶)对应的数据块描述信息
+ public static class DEV_EVENT_TRAFFIC_WRONGROUTE_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_MSG_OBJECT stuObject; // 检测到的物体
+ public NET_MSG_OBJECT stuVehicle; // 车身信息
+ public int nLane; // 对应车道号
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] byReserved = new byte[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int nSpeed; // 车辆实际速度,km/h
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON, 0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
+ public NET_GPS_INFO stuGPSInfo; // GPS信息
+ public byte[] bReserved = new byte[972]; // 保留字节,留待扩展.
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
+ public EVENT_COMM_INFO stCommInfo; // 公共信息
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ }
+
+ // 事件类型 EVENT_IVS_TRAFFIC_TURNLEFT(交通-违章左转)对应的数据块描述信息
+ public static class DEV_EVENT_TRAFFIC_TURNLEFT_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int nLane; // 对应车道号
+ public NET_MSG_OBJECT stuObject; // 车牌信息
+ public NET_MSG_OBJECT stuVehicle; // 车身信息
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
+ public int nSpeed; // 车辆实际速度,Km/h
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] byReserved = new byte[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见 NET_RESERVED_COMMON, 0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
+ public NET_GPS_INFO stuGPSInfo; // GPS信息
+ public Pointer pstuImageInfo; //图片信息数组,参见结构体定义 {@link com.netsdk.lib.structure.NET_IMAGE_INFO_EX3}
+ public int nImageInfoNum; //图片信息个数
+ public Pointer pstuSceneImage; //全景图,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.SCENE_IMAGE_INFO_EX}
+ public byte[] bReserved = new byte[964-2*POINTERSIZE]; // 保留字节
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
+ public EVENT_COMM_INFO stCommInfo; // 公共信息
+ public VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车对象
+ public int bHasNonMotor; // 是否有非机动车对象
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ }
+
+ // 事件类型 EVENT_IVS_TRAFFIC_TURNRIGHT (交通-违章右转)对应的数据块描述信息
+ public static class DEV_EVENT_TRAFFIC_TURNRIGHT_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int nLane; // 对应车道号
+ public NET_MSG_OBJECT stuObject; // 车牌信息
+ public NET_MSG_OBJECT stuVehicle; // 车身信息
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
+ public int nSpeed; // 车辆实际速度,Km/h
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] byReserved = new byte[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见 NET_RESERVED_COMMON, 0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
+ public NET_GPS_INFO stuGPSInfo; // GPS信息
+ public Pointer pstuImageInfo; //图片信息数组,参见结构体定义 {@link com.netsdk.lib.structure.NET_IMAGE_INFO_EX3}
+ public int nImageInfoNum; //图片信息个数
+ public Pointer pstuSceneImage; //全景图,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.SCENE_IMAGE_INFO_EX}
+ public byte[] bReserved = new byte[964-2*POINTERSIZE]; // 保留字节
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
+ public EVENT_COMM_INFO stCommInfo; // 公共信息
+ public VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车对象
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ }
+
+ // 事件类型EVENT_IVS_TRAFFIC_UTURN(违章调头事件)对应的数据块描述信息
+ public static class DEV_EVENT_TRAFFIC_UTURN_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int nLane; // 对应车道号
+ public NET_MSG_OBJECT stuObject; // 车牌信息
+ public NET_MSG_OBJECT stuVehicle; // 车身信息
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
+ public int nSpeed; // 车辆实际速度,Km/h
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] byReserved = new byte[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见 NET_RESERVED_COMMON, 0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
+ public NET_GPS_INFO stuGPSInfo; // GPS信息
+ public Pointer pstuImageInfo; //图片信息数组,参见结构体定义 {@link com.netsdk.lib.structure.NET_IMAGE_INFO_EX3}
+ public int nImageInfoNum; //图片信息个数
+ public Pointer pstuSceneImage; //全景图,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.SCENE_IMAGE_INFO_EX}
+ public byte[] bReserved = new byte[964-2*POINTERSIZE]; // 保留字节
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
+ public EVENT_COMM_INFO stCommInfo; // 公共信息
+ public VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车对象
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ }
+
+ //事件类型 EVENT_IVS_TRAFFIC_RUNYELLOWLIGHT(交通违章-闯黄灯事件)对应数据块描述信息
+ public static class DEV_EVENT_TRAFFIC_RUNYELLOWLIGHT_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int nLane; // 对应车道号
+ public NET_MSG_OBJECT stuObject; // 车牌信息
+ public NET_MSG_OBJECT stuVehicle; // 车身信息
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public int nLightState; // 红绿灯状态 0:未知 1:绿灯 2:红灯 3:黄灯
+ public int nSpeed; // 车速,km/h
+ public int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] byReserved = new byte[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见 NET_RESERVED_COMMON, 0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ public NET_TIME_EX stYellowLightUTC; // 黄灯开始时间
+ public int nYellowLightPeriod; // 黄灯周期间隔时间,单位秒
+ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
+ public byte byRedLightMargin; // 黄灯容许间隔时间,单位:秒
+ public byte[] szSourceDevice = new byte[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
+ public byte[] bReserved = new byte[1024]; // 保留字节
+ public EVENT_COMM_INFO stCommInfo; // 公共信息
+ }
+
+ //事件类型EVENT_IVS_TRAFFIC_OVERYELLOWLINE(交通违章-压黄线)对应的数据块描述信息
+ public static class DEV_EVENT_TRAFFIC_OVERYELLOWLINE_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_MSG_OBJECT stuObject; // 检测到的物体
+ public NET_MSG_OBJECT stuVehicle; // 车身信息
+ public int nLane; // 对应车道号
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] byReserved = new byte[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int nSpeed; // 车辆实际速度,km/h
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON, 0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
+ public int bIsExistAlarmRecord; // bool 类型: 1:有对应的报警录像; 0:无对应的报警录像
+ public int dwAlarmRecordSize; // 录像大小
+ public byte[] szAlarmRecordPath = new byte[NET_COMMON_STRING_256]; // 录像路径
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public Pointer pstuImageInfo; // 图片信息数组 ,指正对应结构体 NET_IMAGE_INFO_EX3的数组
+ public int nImageInfoNum; // 图片信息个数
+ public byte[] bReserved = new byte[528 - POINTERSIZE]; // 保留字节,留待扩展.
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
+ public int nDetectNum; // 规则检测区域顶点数
+ public NET_POINT[] DetectRegion = (NET_POINT[])new NET_POINT().toArray(NET_MAX_DETECT_REGION_NUM); // 规则检测区域
+ public EVENT_COMM_INFO stCommInfo; // 公共信息
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ }
+
+ //事件类型EVENT_IVS_TRAFFIC_YELLOWPLATEINLANE(交通违章-黄牌车占道事件)对应的数据块描述信息
+ public static class DEV_EVENT_TRAFFIC_YELLOWPLATEINLANE_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_MSG_OBJECT stuObject; // 检测到的物体
+ public NET_MSG_OBJECT stuVehicle; // 车身信息
+ public int nLane; // 对应车道号
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] byReserved = new byte[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int nSpeed; // 车辆实际速度,km/h
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON, 0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
+ public Pointer pstuSceneImage; //全景图,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.SCENE_IMAGE_INFO_EX}
+ public byte[] bReserved = new byte[1016-POINTERSIZE]; // 保留字节,留待扩展.
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
+ public EVENT_COMM_INFO stCommInfo; // 公共信息
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //扩展协议字段,参见结构体定义 {@link com.netsdk.lib.structure.NET_EVENT_INFO_EXTEND}
+ }
+
+ //事件类型 EVENT_IVS_TRAFFIC_VEHICLEINROUTE(有车占道事件)对应的数据块描述信息
+ public static class DEV_EVENT_TRAFFIC_VEHICLEINROUTE_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_MSG_OBJECT stuObject; // 检测到的物体
+ public NET_MSG_OBJECT stuVehicle; // 车身信息
+ public int nLane; // 对应车道号
+ public int nSequence; // 抓拍序号,如3-2-1/0,1表示抓拍正常结束,0表示抓拍异常结束
+ public int nSpeed; // 车速
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 表示交通车辆的数据库记录
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] byReserved0 = new byte[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON, 0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public Pointer pstuSceneImage; //全景图,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.SCENE_IMAGE_INFO_EX}
+ public byte[] byReserved = new byte[884-POINTERSIZE];
+ public EVENT_COMM_INFO stCommInfo; // 公共信息
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //扩展协议字段,参见结构体定义 {@link com.netsdk.lib.structure.NET_EVENT_INFO_EXTEND}
+ }
+
+ //事件类型EVENT_IVS_TRAFFIC_CROSSLANE(交通违章-违章变道)对应的数据块描述信息
+ public static class DEV_EVENT_TRAFFIC_CROSSLANE_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_MSG_OBJECT stuObject; // 检测到的物体
+ public NET_MSG_OBJECT stuVehicle; // 车身信息
+ public int nLane; // 对应车道号
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] byReserved = new byte[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int nSpeed; // 车辆实际速度,km/h
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON, 0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public NET_GPS_INFO stuGPSInfo; // GPS信息
+ public Pointer pstuSceneImage; //全景图图片信息,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.SCENE_IMAGE_INFO_EX}
+ public byte[] bReserved = new byte[836-POINTERSIZE]; // 保留字节,留待扩展.留待扩展.
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar = new DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO(); //交通车辆信息,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO}
+ public EVENT_COMM_INFO stCommInfo = new EVENT_COMM_INFO(); //公共信息,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.EVENT_COMM_INFO}
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体,参见结构体定义 {@link com.netsdk.lib.structure.NET_EVENT_INFO_EXTEND}
+ }
+
+ // 事件类型EVENT_IVS_TRAFFIC_NOPASSING(交通违章-禁止通行事件)对应的数据块描述信息
+ public static class DEV_EVENT_TRAFFIC_NOPASSING_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[NET_EVENT_NAME_LEN]; // 事件名称
+ public int nTriggerType; // TriggerType:触发类型,0车检器,1雷达,2视频
+ public int PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int UTCMS; //
+ public int nMark; // 底层产生的触发抓拍帧标记
+ public int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON, 0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public byte[] byReserved1 = new byte[3];
+ public int nLane; // 对应车道号
+ public NET_MSG_OBJECT stuObject; // 检测到的物体
+ public NET_MSG_OBJECT stuVehicle; // 车身信息
+ public int nFrameSequence; // 视频分析帧序号
+ public int nSource; // 视频分析的数据源地址
+ public NET_GPS_INFO stuGPSInfo; // GPS信息
+ public byte[] byReserved = new byte[984]; // 保留字节
+ public EVENT_COMM_INFO stCommInfo; // 公共信息
+ }
+
+ //事件类型 EVENT_IVS_TRAFFIC_PEDESTRAINPRIORITY(斑马线行人优先事件)对应的数据块描述信息
+ public static class DEV_EVENT_TRAFFIC_PEDESTRAINPRIORITY_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_MSG_OBJECT stuObject; // 检测到的物体
+ public NET_MSG_OBJECT stuVehicle; // 车身信息
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public int nLane; // 对应车道号
+ public double dInitialUTC; // 事件初始UTC时间 UTC为事件的UTC (1970-1-1 00:00:00)秒数。
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] byReserved = new byte[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON, 0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 表示交通车辆的数据库记录
+ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
+ public NET_GPS_INFO stuGPSInfo; // GPS信息
+ public Pointer pstuSceneImage; //全景图,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.SCENE_IMAGE_INFO_EX}
+ public byte[] bReserved = new byte[984-POINTERSIZE]; // 保留字节,留待扩展.
+ public EVENT_COMM_INFO stCommInfo; // 公共信息
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //扩展协议字段,参见结构体定义 {@link com.netsdk.lib.structure.NET_EVENT_INFO_EXTEND}
+ }
+
+ //事件类型 EVENT_IVS_TRAFFIC_VEHICLEINBUSROUTE(占用公交车道事件)对应的数据块描述信息
+ public static class DEV_EVENT_TRAFFIC_VEHICLEINBUSROUTE_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_MSG_OBJECT stuObject; // 检测到的物体
+ public NET_MSG_OBJECT stuVehicle; // 车身信息
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public int nLane; // 对应车道号
+ public int nSequence; // 抓拍序号,如3-2-1/0,1表示抓拍正常结束,0表示抓拍异常结束
+ public int nSpeed; // 车速,km/h
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] byReserved = new byte[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON, 0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 表示交通车辆的数据库记录
+ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
+ public NET_GPS_INFO stuGPSInfo; // GPS信息
+ public Pointer pstuSceneImage; //全景图,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.SCENE_IMAGE_INFO_EX}
+ public byte[] bReserved = new byte[980-POINTERSIZE]; // 保留字节,留待扩展.
+ public EVENT_COMM_INFO stCommInfo; // 公共信息
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //扩展协议字段,参见结构体定义 {@link com.netsdk.lib.structure.NET_EVENT_INFO_EXTEND}
+ }
+
+ //事件类型 EVENT_IVS_TRAFFIC_BACKING(违章倒车事件)对应的数据块描述信息
+ public static class DEV_EVENT_IVS_TRAFFIC_BACKING_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_MSG_OBJECT stuObject; // 检测到的物体
+ public NET_MSG_OBJECT stuVehicle; // 车身信息
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public int nLane; // 对应车道号
+ public int nSequence; // 抓拍序号,如3-2-1/0,1表示抓拍正常结束,0表示抓拍异常结束
+ public int nSpeed; // 车速,km/h
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] byReserved = new byte[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON, 0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 表示交通车辆的数据库记录
+ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public NET_GPS_INFO stuGPSInfo; // GPS信息
+ public byte[] bReserved = new byte[848]; // 保留字节,留待扩展.
+ public EVENT_COMM_INFO stCommInfo; // 公共信息
+ }
+
+ // GPS信息
+ public static class NET_GPS_INFO extends SdkStructure
+ {
+ public int nLongitude; // 经度(单位是百万分之一度)
+ // 西经:0 - 180000000 实际值应为: 180*1000000 – dwLongitude
+ // 东经:180000000 - 360000000 实际值应为: dwLongitude – 180*1000000
+ // 如: 300168866应为(300168866 - 180*1000000)/1000000 即东经120.168866度
+ public int nLatidude; // 纬度(单位是百万分之一度)
+ // 南纬:0 - 90000000 实际值应为: 90*1000000 – dwLatidude
+ // 北纬:90000000 – 180000000 实际值应为: dwLatidude – 90*1000000
+ // 如: 120186268应为 (120186268 - 90*1000000)/1000000 即北纬30. 186268度
+ public double dbAltitude; // 高度,单位为米
+ public double dbSpeed; // 速度,单位km/H
+ public double dbBearing; // 方向角,单位°
+ public byte[] bReserved = new byte[8]; // 保留字段
+
+ protected int getNativeAlignment(Class> type, Object value, boolean isFirstElement) {
+ int alignment = super.getNativeAlignment(type, value, isFirstElement);
+ return Math.min(4, alignment);
+ }
+
+ @Override
+ public String toString() {
+ return "NET_GPS_INFO{" +
+ "nLongitude=" + nLongitude +
+ ", nLatidude=" + nLatidude +
+ ", dbAltitude=" + dbAltitude +
+ ", dbSpeed=" + dbSpeed +
+ ", dbBearing=" + dbBearing +
+ '}';
+ }
+ }
+
+ // 事件类型 EVENT_IVS_TRAFFIC_OVERSTOPLINE (压停车线事件)对应的数据块描述信息
+ public static class DEV_EVENT_TRAFFIC_OVERSTOPLINE extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public int nTriggerType; // TriggerType:触发类型,0车检器,1雷达,2视频
+ public int PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
+ public byte byEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public byte[] byReserved1 = new byte[2];
+ public int nLane; // 对应车道号
+ public NET_MSG_OBJECT stuObject; // 检测到的物体
+ public NET_MSG_OBJECT stuVehicle; // 车身信息
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public int nMark; // 底层产生的触发抓拍帧标记
+ public int nFrameSequence; // 视频分析帧序号
+ public int nSource; // 视频分析的数据源地址
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON, 0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
+ public int nSpeed; // 车辆实际速度,Km/h
+ public NET_GPS_INFO stuGPSInfo; // GPS信息
+ public byte[] byReserved = new byte[984]; // 保留字节
+ public EVENT_COMM_INFO stCommInfo; // 公共信息
+ public boolean bHasNonMotor; // stuNonMotor 字段是否有效
+ public VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车对象
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ }
+
+ //事件类型 EVENT_IVS_TRAFFIC_PARKINGONYELLOWBOX(黄网格线抓拍事件)对应的数据块描述信息
+ public static class DEV_EVENT_TRAFFIC_PARKINGONYELLOWBOX_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[8]; // 字节对齐
+ public int PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int nLane; // 对应车道号
+ public NET_MSG_OBJECT stuObject; // 检测到的物体
+ public NET_MSG_OBJECT stuVehicle; // 车身信息
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public int nInterval1; // 第二张和第一张的延时时间,单位秒
+ public int nInterval2; // 第三张和第二张的延时时间,单位秒
+ public int nFollowTime; // 跟随时间,如果一辆车与前一辆车进入黄网格的时间差小于此值,就认为是跟车进入,跟车进入情况下如果停车则不算违章
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] byReserved = new byte[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON, 0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
+ public Pointer pstuSceneImage; //全景图,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.SCENE_IMAGE_INFO_EX}
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
+ public NET_GPS_INFO stuGPSInfo; // GPS信息
+ public byte[] bReserved = new byte[984-POINTERSIZE]; // 保留字节
+ public EVENT_COMM_INFO stCommInfo; // 公共信息
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //扩展协议字段,参见结构体定义 {@link com.netsdk.lib.structure.NET_EVENT_INFO_EXTEND}
+ }
+
+ // 事件类型EVENT_IVS_TRAFFIC_WITHOUT_SAFEBELT(交通未系安全带事件事件)对应的数据块描述信息
+ public static class DEV_EVENT_TRAFFIC_WITHOUT_SAFEBELT extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public int nTriggerType; // TriggerType:触发类型,0车检器,1雷达,2视频
+ public int PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
+ public byte byEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束; public byte byReserved1[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public byte[] byReserved1 = new byte[2];
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public int nLane; // 对应车道号
+ public int nMark; // 底层产生的触发抓拍帧标记
+ public int nFrameSequence; // 视频分析帧序号
+ public int nSource; // 视频分析的数据源地址
+ public NET_MSG_OBJECT stuObject; // 检测到的物体
+ public NET_MSG_OBJECT stuVehicle; // 车身信息
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
+ public int nSpeed; // 车辆实际速度,Km/h
+ public int emMainSeat; // 主驾驶座位安全带状态 参考 NET_SAFEBELT_STATE
+ public int emSlaveSeat; // 副驾驶座位安全带状态 参考 NET_SAFEBELT_STATE
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON , 0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
+ public NET_GPS_INFO stuGPSInfo; // GPS信息
+ public Pointer pstuImageInfo; //图片信息数组,参见结构体定义 {@link com.netsdk.lib.structure.NET_IMAGE_INFO_EX3}
+ public int nImageInfoNum; //图片信息个数
+ public Pointer pstuSceneImage; //全景图图片信息,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.SCENE_IMAGE_INFO_EX}
+ public byte[] byReserved = new byte[724-POINTERSIZE*2]; // 保留字节
+ public EVENT_COMM_INFO stCommInfo; // 公共信息
+ public byte[] szVideoPath = new byte[256]; // 违章关联视频FTP上传路径
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ }
+
+ //事件类型EVENT_IVS_TRAFFIC_JAM_FORBID_INTO(交通拥堵禁入事件)对应的数据块描述信息
+ public static class DEV_EVENT_ALARM_JAMFORBIDINTO_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[NET_EVENT_NAME_LEN]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public int PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEveID; // 事件ID
+ ///////////////////////////////以上为公共字段//////////////////////////////
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public int nMark; // 底层产生的触发抓拍帧标记
+ public int nSource; // 视频分析的数据源地址
+ public int nSequence; // 表示抓拍序号,如3-2-1/0,1表示抓拍正常结束,0表示抓拍异常结束
+ public int nFrameSequence; // 帧序号
+ public int nLane; // 车道号
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public NET_MSG_OBJECT stuObject; // 检测到的物体
+ public NET_GPS_INFO stuGPSInfo; // GPS信息
+ public byte[] bReserved = new byte[984]; // 保留字节
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
+ public EVENT_COMM_INFO stCommInfo; // 公共信息
+ public NET_MSG_OBJECT stuVehicle; // 车身信息
+ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
+ }
+
+ //事件类型EVENT_IVS_TRAFFIC_PASSNOTINORDER(交通-未按规定依次通过)对应的数据块描述信息
+ public static class DEV_EVENT_TRAFFIC_PASSNOTINORDER_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[NET_EVENT_NAME_LEN]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int nLane; // 对应车道号
+ public NET_MSG_OBJECT stuObject; // 车牌信息
+ public NET_MSG_OBJECT stuVehicle; // 车身信息
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] byReserved = new byte[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON , 0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
+ public EVENT_COMM_INFO stCommInfo; // 公共信息
+ public NET_GPS_INFO stuGPSInfo; // GPS信息
+ public byte[] bReserved = new byte[984]; // 保留字节
+ }
+
+ /**
+ * @author 260611
+ * @description 事件类型EVENT_IVS_TRAFFIC_MANUALSNAP(交通手动抓拍事件)对应的数据块描述信息
+ * @date 2023/01/11 15:02:23
+ */
+ public class DEV_EVENT_TRAFFIC_MANUALSNAP_INFO extends SdkStructure {
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 字节对齐
+ */
+ public byte[] bReserved1 = new byte[4];
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double PTS;
+ /**
+ * 事件发生的时间
+ */
+ public NetSDKLib.NET_TIME_EX UTC = new NetSDKLib.NET_TIME_EX();
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 对应车道号
+ */
+ public int nLane;
+ /**
+ * 手动抓拍序号
+ */
+ public byte[] szManualSnapNo = new byte[64];
+ /**
+ * 检测到的物体
+ */
+ public NET_MSG_OBJECT stuObject = new NET_MSG_OBJECT();
+ /**
+ * 检测到的车身信息
+ */
+ public NET_MSG_OBJECT stuVehicle = new NET_MSG_OBJECT();
+ /**
+ * 表示交通车辆的数据库记录
+ */
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar = new DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO();
+ /**
+ * 事件对应文件信息
+ */
+ public NET_EVENT_FILE_INFO stuFileInfo = new NET_EVENT_FILE_INFO();
+ /**
+ * 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ */
+ public byte bEventAction;
+ /**
+ * 开闸状态, 具体请见 EM_OPEN_STROBE_STATE
+ */
+ public byte byOpenStrobeState;
+ public byte[] byReserved = new byte[1];
+ /**
+ * 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ */
+ public byte byImageIndex;
+ /**
+ * 抓图标志(按位),具体见NET_RESERVED_COMMON
+ */
+ public int dwSnapFlagMask;
+ /**
+ * 对应图片的分辨率
+ */
+ public NET_RESOLUTION_INFO stuResolution = new NET_RESOLUTION_INFO();
+ /**
+ * 停车位数据信息数组实际有效大小
+ */
+ public int nParkingInfoNum;
+ /**
+ * 保留字节,留待扩展.
+ */
+ public byte[] bReserved = new byte[500];
+ /**
+ * 手动抓拍专用上报内容
+ */
+ public EVENT_MANUALSNAP_CUSTOM_DATA stuCustom = new EVENT_MANUALSNAP_CUSTOM_DATA();
+ /**
+ * 公共信息
+ */
+ public EVENT_COMM_INFO stCommInfo = new EVENT_COMM_INFO();
+ /**
+ * 停车位数据信息
+ */
+ public EVENT_MANUALSNAP_PARKING_INFO[] stuParkingInfo = new EVENT_MANUALSNAP_PARKING_INFO[32];
+ /**
+ * 事件公共扩展字段结构体
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+
+ public DEV_EVENT_TRAFFIC_MANUALSNAP_INFO() {
+ for (int i = 0; i < stuParkingInfo.length; i++) {
+ stuParkingInfo[i] = new EVENT_MANUALSNAP_PARKING_INFO();
+ }
+ }
+ }
+
+ // 手动抓拍专用上报内容
+ public static class EVENT_MANUALSNAP_CUSTOM_DATA extends SdkStructure
+ {
+ public EVENT_CUSTOM_WEIGHT_INFO stuWeighInfo; // 称重信息
+ public byte[] byReserved = new byte[472]; // 保留字节
+ }
+
+ // 事件类型 EVENT_IVS_CROSSLINEDETECTION(警戒线事件)对应的数据块描述信息
+ public static class DEV_EVENT_CROSSLINE_INFO extends SdkStructure {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_MSG_OBJECT stuObject; // 检测到的物体
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public NET_POINT[] DetectLine = (NET_POINT[])new NET_POINT().toArray(NET_MAX_DETECT_LINE_NUM); // 规则检测线
+ public int nDetectLineNum; // 规则检测线顶点数
+ public NET_POINT[] TrackLine = (NET_POINT[])new NET_POINT().toArray(NET_MAX_TRACK_LINE_NUM); // 物体运动轨迹
+ public int nTrackLineNum; // 物体运动轨迹顶点数
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte bDirection; // 表示入侵方向, 0-由左至右, 1-由右至左
+ public byte[] byReserved = new byte[1];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见 NET_RESERVED_COMMON, 0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ public int nSourceIndex; // 事件源设备上的index,-1表示数据无效,-1表示数据无效
+ public byte[] szSourceDevice = new byte[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
+ public int nOccurrenceCount; // 事件触发累计次数, 类型为unsigned int
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
+ public SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
+ public int nObjetcHumansNum; // 检测到人的数量
+ public NET_VAOBJECT_NUMMAN []stuObjetcHumans = (NET_VAOBJECT_NUMMAN [])new NET_VAOBJECT_NUMMAN().toArray(100); // 检测的到人
+ public int nRuleID; // 规则编号,用于标示哪个规则触发的事件,缺省时默认为0
+ public int emEventType; // 事件级别,参考EM_EVENT_LEVEL
+ public NET_PRESET_POSITION stPosition; // 预置点的坐标和放大倍数
+ public int nVisibleHFOV; // 可见光横向视场角,单位度 实际角度乘以100
+ public int nVisibleVFOV; // 可见光纵向视场角,单位度 实际角度乘以100
+ public int nCurChannelHFOV; // 当前报警通道的横向视场角,单位度,实际角度乘以100
+ public int nCurChannelVFOV; // 当前报警通道的纵向视场角,单位度,实际角度乘以100
+ public int nImageNum; // 图片信息个数
+ public Pointer pImageArray; // 图片信息数组,结构体NET_IMAGE_INFO_EX2数组指针
+ public int nCarMirrorStatus; // 车的后视镜状态,-1: 未知, 0: 正常, 1: 不正常(如数量缺失等)
+ public int nCarLightStatus; // 车的车灯状态,-1: 未知, 0: 正常, 1:不正常(如灯未亮等)
+ public int nObjectBoatsNum; // 船只物体个数
+ public NET_BOAT_OBJECT[] stuBoatObjects = new NET_BOAT_OBJECT[100]; // 船只物品信息
+ public int nUpDownGoing; // 车道/航道方向, 0:未知, 1:上行, 2:下行
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public byte[] byReserved1 = new byte[452]; // 预留字节
+ }
+
+ /**
+ * 检测到的人信息
+ * @author 29779
+ */
+ public static class NET_VAOBJECT_NUMMAN extends SdkStructure {
+ public int nObjectID; // 物体ID,每个ID表示一个唯一的物体
+ /**
+ * @link EM_UNIFORM_STYLE 制服样式
+ */
+ public int emUniformStyle;
+ public NET_RECT stuBoundingBox; // 包围盒,手套对象在全景图中的框坐标,为0~8191相对坐标
+ public NET_RECT stuOriginalBoundingBox; // 包围盒,绝对坐标
+ public long nQueueDuration; //排队时长
+ public byte[] byReserved = new byte[120]; // 预留字节
+ }
+
+ // 事件类型 EVENT_IVS_CROSSREGIONDETECTION(警戒区事件)对应的数据块描述信息
+ public static class DEV_EVENT_CROSSREGION_INFO extends SdkStructure {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_MSG_OBJECT stuObject; // 检测到的物体
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public NET_POINT[] DetectRegion = (NET_POINT[])new NET_POINT().toArray(NET_MAX_DETECT_REGION_NUM); // 规则检测区域
+ public int nDetectRegionNum; // 规则检测区域顶点数
+ public NET_POINT[] TrackLine = (NET_POINT[])new NET_POINT().toArray(NET_MAX_TRACK_LINE_NUM); // 物体运动轨迹
+ public int nTrackLineNum; // 物体运动轨迹顶点数
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte bDirection; // 表示入侵方向, 0-进入, 1-离开,2-出现,3-消失
+ public byte bActionType; // 表示检测动作类型,0-出现 1-消失 2-在区域内 3-穿越区域
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON , 0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ public int nSourceIndex; // 事件源设备上的index,-1表示数据无效
+ public byte[] szSourceDevice = new byte[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
+ public int nOccurrenceCount; // 事件触发累计次数, unsigned int 类型
+ public NET_CUSTOM_INFO stuCustom; // 货物通道信息
+ public NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
+ public int nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
+ public NET_PRESET_POSITION stPosition; // 预置点的坐标和放大倍数
+ public int nVisibleHFOV; // 可见光横向视场角,单位度 实际角度乘以100
+ public int nVisibleVFOV; // 可见光纵向视场角,单位度 实际角度乘以100
+ public int nCurChannelHFOV; // 当前报警通道的横向视场角,单位度,实际角度乘以100
+ public int nCurChannelVFOV; // 当前报警通道的纵向视场角,单位度,实际角度乘以100
+ public byte[] szRealEventType = new byte[32]; // 采用该字段区分是区域入侵还是事件,该字段不携带则是通用的区域入侵事件,携带则根据内容区分实际的事件类型,目前只有IllegalDumping(垃圾违规投放)
+ public Pointer pstuBoatObjectEx; //船只物品信息扩展,数量为nObjectBoatNum,参见结构体定义 {@link com.netsdk.lib.structure.NET_BOAT_OBJECT_EXTERN}
+ public int nEventType; //0:未知 1:船舶事件 2:船名事件
+ public byte[] bReserved = new byte[260-POINTERSIZE]; // 保留字节,留待扩展.
+ public int nObjectNum; // 检测到的物体个数
+ public NET_MSG_OBJECT[] stuObjectIDs = (NET_MSG_OBJECT[]) new NET_MSG_OBJECT().toArray(NET_MAX_OBJECT_LIST); // 检测到的物体
+ public int nTrackNum; // 轨迹数(与检测到的物体个数 nObjectNum 对应)
+ public NET_POLY_POINTS[] stuTrackInfo = (NET_POLY_POINTS[]) new NET_POLY_POINTS().toArray(NET_MAX_OBJECT_LIST); // 轨迹信息(与检测到的物体对应)
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
+ public int nObjetcHumansNum; // 检测到人的数量
+ public NET_VAOBJECT_NUMMAN[] stuObjetcHumans = (NET_VAOBJECT_NUMMAN[])new NET_VAOBJECT_NUMMAN().toArray(100); // 检测的到人
+ public NET_MSG_OBJECT stuVehicle; //车身信息
+ public int emTriggerType; //触发类型,参考EM_TRIGGER_TYPE
+ public int nMark; // 标记抓拍帧
+ public int nSource; // 视频分析的数据源地址
+ public int nFrameSequence; // 视频分析帧序号
+ public int emCaptureProcess; // 抓拍过程,参考EM_CAPTURE_PROCESS_END_TYPE
+ public NetSDKLib.DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; //交通车辆信息
+ public NetSDKLib.EVENT_COMM_INFO stuCommInfo; //公共信息
+ public NET_PTZSPACE_UNNORMALIZED stuAbsPosition; // 云台方向与放大倍数(扩大100倍表示)
+ // 第一个元素为水平角度,0-36000;
+ // 第二个元素为垂直角度,(-18000)-(18000);
+ // 第三个元素为显示放大倍数,0-MaxZoom*100
+ public int nHFovValue; // 对应倍率水平视场角, 单位0.01度, 扩大100倍表示
+ public double dbFocusPosition; // 聚焦位置
+ public int nObjectBoatNum; //船只物体个数
+ public NET_BOAT_OBJECT[] stuBoatObject = new NET_BOAT_OBJECT[100]; //船只物品信息,参见结构体定义 {@link com.netsdk.lib.structure.NET_BOAT_OBJECT}
+ public int nImageNum; //图片信息个数
+ public Pointer pImageArray; //图片信息数组,参见结构体定义 {@link com.netsdk.lib.structure.NET_IMAGE_INFO_EX2}
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体,参见结构体定义 {@link com.netsdk.lib.structure.NET_EVENT_INFO_EXTEND}
+ public Pointer pstuObjectEx2; //检测到的物体扩展,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_MSG_OBJECT_EX2}
+ public Pointer pstuObjectIDsEx2; //检测到的物体扩展,数量为nObjectNum,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_MSG_OBJECT_EX2}
+ public Pointer pstuVehicleEx2; //车身信息扩展,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_MSG_OBJECT_EX2}
+ }
+
+ // 事件类型 EVENT_IVS_WANDERDETECTION(徘徊事件)对应的数据块描述信息
+ public static class DEV_EVENT_WANDER_INFO extends SdkStructure {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] byReserved = new byte[2]; // 保留字节
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int nObjectNum; // 检测到的物体个数
+ public NET_MSG_OBJECT[] stuObjectIDs = (NET_MSG_OBJECT[]) new NET_MSG_OBJECT().toArray(NET_MAX_OBJECT_LIST); // 检测到的物体
+ public int nTrackNum; // 轨迹数(与检测到的物体个数对应)
+ public NET_POLY_POINTS[] stuTrackInfo = (NET_POLY_POINTS[]) new NET_POLY_POINTS().toArray(NET_MAX_OBJECT_LIST); // 轨迹信息(与检测到的物体对应)
+ public int nDetectRegionNum; // 规则检测区域顶点数
+ public NET_POINT[] DetectRegion = (NET_POINT[])new NET_POINT().toArray(NET_MAX_DETECT_REGION_NUM); // 规则检测区域
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON , 0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ public int nSourceIndex; // 事件源设备上的index,-1表示数据无效
+ public byte[] szSourceDevice = new byte[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
+ public int nOccurrenceCount; // 事件触发累计次数, unsigned int 类型
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public short nPreserID; // 事件触发的预置点号,从1开始(没有表示未知)
+ public byte[] szPresetName = new byte[64]; // 事件触发的预置名称
+ public NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
+ public NET_POSTION stuPostion; // 坐标与放大倍数
+ public byte[] byReserved2 = new byte[4]; // 字节对齐
+ public int nCurChannelHFOV; // 当前报警通道的横向视场角,单位:度,实际角度乘以100
+ public int nCurChannelVFOV; // 当前报警通道的垂直视场角,单位:度,实际角度乘以100
+ public NET_IMAGE_INFO_EX2[] stuImageInfo = (NET_IMAGE_INFO_EX2[])new NET_IMAGE_INFO_EX2().toArray(32); //图片信息数组
+ public int nImageInfoNum; // 图片信息个数
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public byte[] bReserved = new byte[402]; // 保留字节,留待扩展.
+ }
+
+ //事件类型 EVENT_IVS_LEAVEDETECTION(离岗检测事件)对应数据块描述信息
+ public static class DEV_EVENT_IVS_LEAVE_INFO extends SdkStructure {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_MSG_OBJECT stuObject; // 检测到的物体
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
+ public int nDetectRegionNum; // 规则检测区域顶点数
+ public NET_POINT[] DetectRegion = (NET_POINT[])new NET_POINT().toArray(NET_MAX_DETECT_REGION_NUM); // 规则检测区域
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public int emTriggerMode; // 离岗的触发模式,参考EM_LEAVEDETECTION_TRIGGER_MODE
+ public int emState; // 检测状态,参考EM_LEAVEDETECTION_STATE
+ public int bSceneImage; // stuSceneImage 是否有效
+ public SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
+ public byte[] szUserName = new byte[32]; // 用户名称
+ public Pointer pstuImageInfo; // 图片信息数组 ,结构体NET_IMAGE_INFO_EX2数组指针
+ public int nImageInfoNum; // 图片信息个数
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public byte[] bReserved = new byte[50]; // 保留字节
+ }
+
+ //事件类型 EVENT_IVS_AUDIO_ABNORMALDETECTION(声音异常检测)对应数据块描述信息
+ public static class DEV_EVENT_IVS_AUDIO_ABNORMALDETECTION_INFO extends SdkStructure {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public int nDecibel; // 声音强度
+ public int nFrequency; // 声音频率
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] byReserved = new byte[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON, 0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
+ public byte[] bReserved = new byte[1024]; // 保留字节,留待扩展.
+ }
+
+ //事件类型 EVENT_IVS_CLIMBDETECTION(攀高检测事件)对应数据块描述信息
+ public static class DEV_EVENT_IVS_CLIMB_INFO extends SdkStructure {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_MSG_OBJECT stuObject; // 检测到的物体
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
+ public int nDetectLineNum; // 规则检测线顶点数
+ public NET_POINT[] DetectLine = (NET_POINT[])new NET_POINT().toArray(NET_MAX_DETECT_LINE_NUM); // 规则检测线
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int nOccurrenceCount; // 事件触发累计次数, unsigned int
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public Pointer pstuImageInfo; // 图片信息数组, refer to {@link NET_IMAGE_INFO_EX3}
+ public int nImageInfoNum; // 图片信息个数
+ public byte[] bReserved = new byte[886 - POINTERSIZE]; // 保留字节
+ }
+
+ // 事件类型 EVENT_IVS_FIGHTDETECTION(斗殴事件)对应的数据块描述信息
+ public static class DEV_EVENT_FIGHT_INFO extends SdkStructure {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int nObjectNum; // 检测到的物体个数
+ public NET_MSG_OBJECT[] stuObjectIDs = (NET_MSG_OBJECT[])new NET_MSG_OBJECT().toArray(NET_MAX_OBJECT_LIST); // 检测到的物体列表
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] byReserved = new byte[2]; // 保留字节
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int nDetectRegionNum; // 规则检测区域顶点数
+ public NET_POINT[] DetectRegion = (NET_POINT[]) new NET_POINT().toArray(NET_MAX_DETECT_REGION_NUM); // 规则检测区域
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON, 0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ public int nSourceIndex; // 事件源设备上的index,-1表示数据无效
+ public byte[] szSourceDevice = new byte[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
+ public int nOccurrenceCount; // 事件触发累计次数, unsigned int 类型
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
+ public byte[] szSourceID = new byte[32]; // 事件关联ID。应用场景是同一个物体或者同一张图片做不同分析,产生的多个事件的SourceID相同
+ // 缺省时为空字符串,表示无此信息
+ // 格式:类型+时间+序列号,其中类型2位,时间14位,序列号5位
+ public int emActionType; // 动作类型 ,参考枚举EM_STEREO_ACTION_TYPE
+ public SCENE_IMAGE_INFO stuSceneImage; // 全景广角图
+ public Pointer pstuImageInfo; // 图片信息数组,对应结构体NET_IMAGE_INFO_EX2的数组
+ public int nImageInfoNum; // 图片信息个数
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public byte[] bReserved = new byte[240]; // 保留字节,留待扩展.
+ }
+
+ // 加油类型
+ public static class EM_REFUEL_TYPE extends SdkStructure {
+ public static final int EM_REFUEL_TYPE_UNKNOWN = 0; // unknown
+ public static final int EM_REFUEL_TYPE_NINETY_EIGHT = 1; // "98#"
+ public static final int EM_REFUEL_TYPE_NINETY_SEVEN = 2; // "97#"
+ public static final int EM_REFUEL_TYPE_NINETY_FIVE = 3; // "95#"
+ public static final int EM_REFUEL_TYPE_NINETY_THREE = 4; // "93#"
+ public static final int EM_REFUEL_TYPE_NINETY = 5; // "90#"
+ public static final int EM_REFUEL_TYPE_TEN = 6; // "10#"
+ public static final int EM_REFUEL_TYPE_FIVE = 7; // "5#"
+ public static final int EM_REFUEL_TYPE_ZERO = 8; // "0#"
+ public static final int EM_REFUEL_TYPE_NEGATIVE_TEN = 9; // "-10#"
+ public static final int EM_REFUEL_TYPE_NEGATIVE_TWENTY = 10; // "-20#"
+ public static final int EM_REFUEL_TYPE_NEGATIVE_THIRTY_FIVE = 11; // "-35#"
+ public static final int EM_REFUEL_TYPE_NEGATIVE_FIFTY = 12; // "-50#"
+ }
+
+ // 车辆抓拍图片信息
+ public static class DEV_EVENT_TRAFFIC_FCC_IMAGE extends SdkStructure {
+ public int dwOffSet; // 图片文件在二进制数据块中的偏移位置, 单位:字节
+ public int dwLength; // 图片大小, 单位:字节
+ public short wWidth; // 图片宽度, 单位:像素
+ public short wHeight; // 图片高度, 单位:像素
+ }
+
+ // 车辆抓图信息
+ public static class DEV_EVENT_TRAFFIC_FCC_OBJECT extends SdkStructure {
+ public DEV_EVENT_TRAFFIC_FCC_IMAGE stuImage; // 车辆抓拍图片信息
+ }
+
+ // 事件类型 EVENT_IVS_TRAFFIC_FCC 加油站提枪、挂枪事件
+ public static class DEV_EVENT_TRAFFIC_FCC_INFO extends SdkStructure {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[NET_EVENT_NAME_LEN]; // 事件名称
+ public int nTriggerID; // 触发类型: 1表示提枪, 2表示挂枪
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ ///////////////////////////////以上为公共字段//////////////////////////////
+ public int nNum; // 加油枪号
+ public int nLitre; // 加油升数,单位 0.01升
+ public int emType; // 加油类型: 取值范围{"90#","93#","10#","-20#"}, 具体参考 EM_REFUEL_TYPE
+ public int dwMoney; // 加油金额,单位 0.01元
+ public byte[] szText = new byte[NET_COMMON_STRING_16]; // 车牌号
+ public byte[] szTime = new byte[NET_COMMON_STRING_32]; // 事件发生时间: "2016-05-23 10:31:17"
+ public DEV_EVENT_TRAFFIC_FCC_OBJECT stuObject; // 车辆抓图信息
+ public byte[] bReserved = new byte[1024]; // 保留字节,留待扩展
+ }
+
+ // 区域或曲线顶点信息
+ public static class NET_POLY_POINTS extends SdkStructure
+ {
+ public int nPointNum; // 顶点数
+ public NET_POINT[] stuPoints = new NET_POINT[NET_MAX_DETECT_REGION_NUM]; // 顶点信息
+
+ public NET_POLY_POINTS(){
+ for(int i=0;i时,bImportantRecID<<8 +bHint ,组成图片定位索引 )
+ public byte bRecType; // 0-主码流录像 1-辅码1流录像 2-辅码流2 3-辅码流3录像
+
+ public static class ByValue extends NET_RECORDFILE_INFO implements SdkStructure.ByValue { }
+ }
+
+ // 录像查询类型
+ public static class EM_QUERY_RECORD_TYPE extends SdkStructure {
+ public static final int EM_RECORD_TYPE_ALL = 0; // 所有录像
+ public static final int EM_RECORD_TYPE_ALARM = 1; // 外部报警录像
+ public static final int EM_RECORD_TYPE_MOTION_DETECT = 2; // 动态检测报警录像
+ public static final int EM_RECORD_TYPE_ALARM_ALL = 3; // 所有报警录像
+ public static final int EM_RECORD_TYPE_CARD = 4; // 卡号查询
+ public static final int EM_RECORD_TYPE_CONDITION = 5; // 按条件查询
+ public static final int EM_RECORD_TYPE_JOIN = 6; // 组合查询
+ public static final int EM_RECORD_TYPE_CARD_PICTURE = 8; // 按卡号查询图片,HB-U、NVS等使用
+ public static final int EM_RECORD_TYPE_PICTURE = 9; // 查询图片,HB-U、NVS等使用
+ public static final int EM_RECORD_TYPE_FIELD = 10; // 按字段查询
+ public static final int EM_RECORD_TYPE_INTELLI_VIDEO = 11; // 智能录像查询
+ public static final int EM_RECORD_TYPE_NET_DATA = 15; // 查询网络数据,金桥网吧等使用
+ public static final int EM_RECORD_TYPE_TRANS_DATA = 16; // 查询透明串口数据录像
+ public static final int EM_RECORD_TYPE_IMPORTANT = 17; // 查询重要录像
+ public static final int EM_RECORD_TYPE_TALK_DATA = 18; // 查询录音文件
+ public static final int EM_RECORD_TYPE_INVALID = 256; // 无效的查询类型
+ }
+
+ // 语言种类
+ public static class NET_LANGUAGE_TYPE extends SdkStructure
+ {
+ public static final int NET_LANGUAGE_ENGLISH = 0; //英文
+ public static final int NET_LANGUAGE_CHINESE_SIMPLIFIED = NET_LANGUAGE_ENGLISH+1; //简体中文
+ public static final int NET_LANGUAGE_CHINESE_TRADITIONAL = NET_LANGUAGE_CHINESE_SIMPLIFIED+1; //繁体中文
+ public static final int NET_LANGUAGE_ITALIAN = NET_LANGUAGE_CHINESE_TRADITIONAL+1; //意大利文
+ public static final int NET_LANGUAGE_SPANISH = NET_LANGUAGE_ITALIAN+1; //西班牙文
+ public static final int NET_LANGUAGE_JAPANESE = NET_LANGUAGE_SPANISH+1; //日文版
+ public static final int NET_LANGUAGE_RUSSIAN = NET_LANGUAGE_JAPANESE+1; //俄文版
+ public static final int NET_LANGUAGE_FRENCH = NET_LANGUAGE_RUSSIAN+1; //法文版
+ public static final int NET_LANGUAGE_GERMAN = NET_LANGUAGE_FRENCH+1; //德文版
+ public static final int NET_LANGUAGE_PORTUGUESE = NET_LANGUAGE_GERMAN+1; //葡萄牙语
+ public static final int NET_LANGUAGE_TURKEY = NET_LANGUAGE_PORTUGUESE+1; //土尔其语
+ public static final int NET_LANGUAGE_POLISH = NET_LANGUAGE_TURKEY+1; //波兰语
+ public static final int NET_LANGUAGE_ROMANIAN = NET_LANGUAGE_POLISH+1; //罗马尼亚
+ public static final int NET_LANGUAGE_HUNGARIAN = NET_LANGUAGE_ROMANIAN+1; //匈牙利语
+ public static final int NET_LANGUAGE_FINNISH = NET_LANGUAGE_HUNGARIAN+1; //芬兰语
+ public static final int NET_LANGUAGE_ESTONIAN = NET_LANGUAGE_FINNISH+1; //爱沙尼亚语
+ public static final int NET_LANGUAGE_KOREAN = NET_LANGUAGE_ESTONIAN+1; //韩语
+ public static final int NET_LANGUAGE_FARSI = NET_LANGUAGE_KOREAN+1; //波斯语
+ public static final int NET_LANGUAGE_DANSK = NET_LANGUAGE_FARSI+1; //丹麦语
+ public static final int NET_LANGUAGE_CZECHISH = NET_LANGUAGE_DANSK+1; //捷克文
+ public static final int NET_LANGUAGE_BULGARIA = NET_LANGUAGE_CZECHISH+1; //保加利亚文
+ public static final int NET_LANGUAGE_SLOVAKIAN = NET_LANGUAGE_BULGARIA+1; //斯洛伐克语
+ public static final int NET_LANGUAGE_SLOVENIA = NET_LANGUAGE_SLOVAKIAN+1; //斯洛文尼亚文
+ public static final int NET_LANGUAGE_CROATIAN = NET_LANGUAGE_SLOVENIA+1; //克罗地亚语
+ public static final int NET_LANGUAGE_DUTCH = NET_LANGUAGE_CROATIAN+1; //荷兰语
+ public static final int NET_LANGUAGE_GREEK = NET_LANGUAGE_DUTCH+1; //希腊语
+ public static final int NET_LANGUAGE_UKRAINIAN = NET_LANGUAGE_GREEK+1; //乌克兰语
+ public static final int NET_LANGUAGE_SWEDISH = NET_LANGUAGE_UKRAINIAN+1; //瑞典语
+ public static final int NET_LANGUAGE_SERBIAN = NET_LANGUAGE_SWEDISH+1; //塞尔维亚语
+ public static final int NET_LANGUAGE_VIETNAMESE = NET_LANGUAGE_SERBIAN+1; //越南语
+ public static final int NET_LANGUAGE_LITHUANIAN = NET_LANGUAGE_VIETNAMESE+1; //立陶宛语
+ public static final int NET_LANGUAGE_FILIPINO = NET_LANGUAGE_LITHUANIAN+1; //菲律宾语
+ public static final int NET_LANGUAGE_ARABIC = NET_LANGUAGE_FILIPINO+1; //阿拉伯语
+ public static final int NET_LANGUAGE_CATALAN = NET_LANGUAGE_ARABIC+1; //加泰罗尼亚语
+ public static final int NET_LANGUAGE_LATVIAN = NET_LANGUAGE_CATALAN+1; //拉脱维亚语
+ public static final int NET_LANGUAGE_THAI = NET_LANGUAGE_LATVIAN+1; //泰语
+ public static final int NET_LANGUAGE_HEBREW = NET_LANGUAGE_THAI+1; //希伯来语
+ public static final int NET_LANGUAGE_Bosnian = NET_LANGUAGE_HEBREW+1; //波斯尼亚文
+ }
+
+ // 区域信息
+ public static class CFG_RECT extends SdkStructure
+ {
+ public int nLeft;
+ public int nTop;
+ public int nRight;
+ public int nBottom;
+ }
+
+ // 视频输入夜晚特殊配置选项,在晚上光线较暗时自动切换到夜晚的配置参数
+ public static class CFG_VIDEO_IN_NIGHT_OPTIONS extends SdkStructure
+ {
+ public byte bySwitchMode; //已废弃,使用CFG_VIDEO_IN_OPTIONS里面的bySwitchMode
+ //0-不切换,总是使用白天配置;1-根据亮度切换;2-根据时间切换;3-不切换,总是使用夜晚配置;4-使用普通配置
+ public byte byProfile; //当前使用的配置文件.
+ // 0-白天
+ // 1-晚上
+ // 2-Normal
+ // 0,1,2都为临时配置,使图像生效,便于查看图像调试效果,不点击确定,离开页面不保存至设备。
+ ///3-非临时配置,点击确定后保存至设备,与SwitchMode结合使用,根据SwitchMode决定最终生效的配置。
+ // SwitchMode=0,Profile=3,设置白天配置到设备;
+ // SwitchMode=1,Profile=3,则设置夜晚配置到设备
+ // SwitchMode=2,Profile=3,根据日出日落时间段切换,白天时间段使用白天配置,夜晚时间段使用夜晚配置,保存至设备;
+ // SwitchMode=4,Profile=3;使用普通配置,保存至设备
+ public byte byBrightnessThreshold; //亮度阈值0~100
+ public byte bySunriseHour; //大致日出和日落时间,日落之后日出之前,将采用夜晚特殊的配置。
+ public byte bySunriseMinute; //00:00:00 ~ 23:59:59
+ public byte bySunriseSecond;
+ public byte bySunsetHour;
+ public byte bySunsetMinute;
+ public byte bySunsetSecond;
+ public byte byGainRed; //红色增益调节,白平衡为"Custom"模式下有效0~100
+ public byte byGainBlue; //绿色增益调节,白平衡为"Custom"模式下有效0~100
+ public byte byGainGreen; //蓝色增益调节,白平衡为"Custom"模式下有效0~100
+ public byte byExposure; //曝光模式;取值范围取决于设备能力集:0-自动曝光,1-曝光等级1,2-曝光等级2…n-1最大曝光等级数n带时间上下限的自动曝光n+1自定义时间手动曝光 (n==byExposureEn)
+ public float fExposureValue1; //自动曝光时间下限或者手动曝光自定义时间,毫秒为单位,取值0.1ms~80ms
+ public float fExposureValue2; //自动曝光时间上限,毫秒为单位,取值0.1ms~80ms
+ public byte byWhiteBalance; //白平衡,0-"unAble", 1-"Auto", 2-"Custom", 3-"Sunny", 4-"Cloudy", 5-"Home", 6-"Office", 7-"Night", 8-"HighColorTemperature", 9-"LowColorTemperature", 10-"AutoColorTemperature", 11-"CustomColorTemperature"
+ public byte byGain; //0~100,GainAuto为true时表示自动增益的上限,否则表示固定的增益值
+ public byte bGainAuto; //自动增益, 类型为bool, 取值0或1
+ public byte bIrisAuto; //自动光圈, 类型为bool, 取值0或1
+ public float fExternalSyncPhase; //外同步的相位设置0~360
+ public byte byGainMin; //增益下限
+ public byte byGainMax; //增益上限
+ public byte byBacklight; //背光补偿:取值范围取决于设备能力集:0-关闭1-启用2-指定区域背光补偿
+ public byte byAntiFlicker; //防闪烁模式0-Outdoor1-50Hz防闪烁 2-60Hz防闪烁
+ public byte byDayNightColor; //日/夜模式;0-总是彩色,1-根据亮度自动切换,2-总是黑白
+ public byte byExposureMode; //曝光模式调节曝光等级为自动曝光时有效,取值:0-默认自动,1-增益优先,2-快门优先
+ public byte byRotate90; //0-不旋转,1-顺时针90°,2-逆时针90°
+ public byte bMirror; //镜像, 类型为bool, 取值0或1
+ public byte byWideDynamicRange; //宽动态值0-关闭,1~100-为真实范围值
+ public byte byGlareInhibition; //强光抑制0-关闭,1~100为范围值
+ public CFG_RECT stuBacklightRegion = new CFG_RECT(); //背光补偿区域
+ public byte byFocusMode; //0-关闭,1-辅助聚焦,2-自动聚焦
+ public byte bFlip; //翻转, 类型为bool, 取值0或1
+ public byte[] reserved = new byte[74]; //保留
+ }
+
+ // 闪光灯配置
+ public static class CFG_FLASH_CONTROL extends SdkStructure
+ {
+ public byte byMode; //工作模式,0-禁止闪光,1-始终闪光,2-自动闪光
+ public byte byValue; //工作值,0-0us,1-64us, 2-128us, 3-192...15-960us
+ public byte byPole; //触发模式,0-低电平1-高电平 2-上升沿 3-下降沿
+ public byte byPreValue; //亮度预设值区间0~100
+ public byte byDutyCycle; //占空比,0~100
+ public byte byFreqMultiple; //倍频,0~10
+ public byte[] reserved = new byte[122]; //保留
+ }
+
+ // 抓拍参数特殊配置
+ public static class CFG_VIDEO_IN_SNAPSHOT_OPTIONS extends SdkStructure
+ {
+ public byte byGainRed; //红色增益调节,白平衡为"Custom"模式下有效0~100
+ public byte byGainBlue; //绿色增益调节,白平衡为"Custom"模式下有效0~100
+ public byte byGainGreen; //蓝色增益调节,白平衡为"Custom"模式下有效0~100
+ public byte byExposure; //曝光模式;取值范围取决于设备能力集:0-自动曝光,1-曝光等级1,2-曝光等级2…n-1最大曝光等级数n带时间上下限的自动曝光n+1自定义时间手动曝光 (n==byExposureEn)
+ public float fExposureValue1; //自动曝光时间下限或者手动曝光自定义时间,毫秒为单位,取值0.1ms~80ms
+ public float fExposureValue2; //自动曝光时间上限,毫秒为单位,取值0.1ms~80ms
+ public byte byWhiteBalance; //白平衡,0-"unAble", 1-"Auto", 2-"Custom", 3-"Sunny", 4-"Cloudy", 5-"Home", 6-"Office", 7-"Night", 8-"HighColorTemperature", 9-"LowColorTemperature", 10-"AutoColorTemperature", 11-"CustomColorTemperature"
+ public byte byColorTemperature; //色温等级,白平衡为"CustomColorTemperature"模式下有效
+ public byte bGainAuto; //自动增益, 类型为bool, 取值0或1
+ public byte byGain; //增益调节,GainAuto为true时表示自动增益的上限,否则表示固定的增益值
+ public byte[] reversed = new byte[112]; //保留
+ }
+
+ // 鱼眼镜头配置
+ public static class CFG_FISH_EYE extends SdkStructure
+ {
+ public CFG_POLYGON stuCenterPoint; //鱼眼圆心坐标,范围[0,8192]
+ public int nRadius; //鱼眼半径大小,范围[0,8192], 类型为unsigned int
+ public float fDirection; //镜头旋转方向,旋转角度[0,360.0]
+ public byte byPlaceHolder; //镜头安装方式1顶装,2壁装;3地装,默认1
+ public byte byCalibrateMode; //鱼眼矫正模式,详见CFG_CALIBRATE_MODE枚举值
+ public byte[] reversed = new byte[31]; //保留
+ }
+
+ public static class CFG_VIDEO_IN_NORMAL_OPTIONS extends SdkStructure
+ {
+ public byte byGainRed; //红色增益调节,白平衡为"Custom"模式下有效0~100
+ public byte byGainBlue; //绿色增益调节,白平衡为"Custom"模式下有效0~100
+ public byte byGainGreen; //蓝色增益调节,白平衡为"Custom"模式下有效0~100
+ public byte byExposure; //曝光模式;取值范围取决于设备能力集:0-自动曝光,1-曝光等级1,2-曝光等级2…n-1最大曝光等级数n带时间上下限的自动曝光n+1自定义时间手动曝光 (n==byExposureEn)
+ public float fExposureValue1; //自动曝光时间下限或者手动曝光自定义时间,毫秒为单位,取值0.1ms~80ms
+ public float fExposureValue2; //自动曝光时间上限,毫秒为单位,取值0.1ms~80ms
+ public byte byWhiteBalance; //白平衡,0-"unAble", 1-"Auto", 2-"Custom", 3-"Sunny", 4-"Cloudy", 5-"Home", 6-"Office", 7-"Night", 8-"HighColorTemperature", 9-"LowColorTemperature", 10-"AutoColorTemperature", 11-"CustomColorTemperature"
+ public byte byGain; //0~100,GainAuto为true时表示自动增益的上限,否则表示固定的增益值
+ public byte bGainAuto; //自动增益, 类型为bool, 取值0或1
+ public byte bIrisAuto; //自动光圈, 类型为bool, 取值0或1
+ public float fExternalSyncPhase; //外同步的相位设置0~360
+ public byte byGainMin; //增益下限
+ public byte byGainMax; //增益上限
+ public byte byBacklight; //背光补偿:取值范围取决于设备能力集:0-关闭1-启用2-指定区域背光补偿
+ public byte byAntiFlicker; //防闪烁模式0-Outdoor1-50Hz防闪烁 2-60Hz防闪烁
+ public byte byDayNightColor; //日/夜模式;0-总是彩色,1-根据亮度自动切换,2-总是黑白
+ public byte byExposureMode; //曝光模式调节曝光等级为自动曝光时有效,取值:0-默认自动,1-增益优先,2-快门优先
+ public byte byRotate90; //0-不旋转,1-顺时针90°,2-逆时针90°
+ public byte bMirror; //镜像, 类型为bool, 取值0或1
+ public byte byWideDynamicRange; //宽动态值0-关闭,1~100-为真实范围值
+ public byte byGlareInhibition; //强光抑制0-关闭,1~100为范围值
+ public CFG_RECT stuBacklightRegion; //背光补偿区域
+ public byte byFocusMode; //0-关闭,1-辅助聚焦,2-自动聚焦
+ public byte bFlip; //翻转, 类型为bool, 取值0或1
+ public byte[] reserved = new byte[74]; //保留
+ }
+
+ // 视频输入前端选项
+ public static class CFG_VIDEO_IN_OPTIONS extends SdkStructure
+ {
+ public byte byBacklight; //背光补偿:取值范围取决于设备能力集:0-关闭1-启用2-指定区域背光补偿
+ public byte byDayNightColor; //日/夜模式;0-总是彩色,1-根据亮度自动切换,2-总是黑白
+ public byte byWhiteBalance; //白平衡,0-"unAble", 1-"Auto", 2-"Custom", 3-"Sunny", 4-"Cloudy", 5-"Home", 6-"Office", 7-"Night", 8-"HighColorTemperature", 9-"LowColorTemperature", 10-"AutoColorTemperature", 11-"CustomColorTemperature"
+ public byte byColorTemperature; //色温等级,白平衡为"CustomColorTemperature"模式下有效
+ public byte bMirror; //镜像, 类型为bool, 取值0或1
+ public byte bFlip; //翻转, 类型为bool, 取值0或1
+ public byte bIrisAuto; //自动光圈, 类型为bool, 取值0或1
+ public byte bInfraRed; //根据环境光自动开启红外补偿灯, 类型为bool, 取值0或1
+ public byte byGainRed; //红色增益调节,白平衡为"Custom"模式下有效0~100
+ public byte byGainBlue; //绿色增益调节,白平衡为"Custom"模式下有效0~100
+ public byte byGainGreen; //蓝色增益调节,白平衡为"Custom"模式下有效0~100
+ public byte byExposure; //曝光模式;取值范围取决于设备能力集:0-自动曝光,1-曝光等级1,2-曝光等级2…n-1最大曝光等级数n带时间上下限的自动曝光n+1自定义时间手动曝光 (n==byExposureEn)
+ public float fExposureValue1; //自动曝光时间下限或者手动曝光自定义时间,毫秒为单位,取值0.1ms~80ms
+ public float fExposureValue2; //自动曝光时间上限,毫秒为单位,取值0.1ms~80ms
+ public byte bGainAuto; //自动增益, 类型为bool, 取值0或1
+ public byte byGain; //增益调节,GainAuto为true时表示自动增益的上限,否则表示固定的增益值
+ public byte bySignalFormat; //信号格式,0-Inside(内部输入)1-BT656 2-720p 3-1080p 4-1080i 5-1080sF
+ public byte byRotate90; //0-不旋转,1-顺时针90°,2-逆时针90°
+ public float fExternalSyncPhase; //外同步的相位设置 0~360
+ public byte byExternalSync; //外部同步信号输入,0-内部同步 1-外部同步
+ public byte bySwitchMode; //0-不切换,总是使用白天配置;1-根据亮度切换;2-根据时间切换;3-不切换,总是使用夜晚配置;4-使用普通配置
+ public byte byDoubleExposure; //双快门,0-不启用,1-双快门全帧率,即图像和视频只有快门参数不同,2-双快门半帧率,即图像和视频快门及白平衡参数均不同
+ public byte byWideDynamicRange; //宽动态值
+ public CFG_VIDEO_IN_NIGHT_OPTIONS stuNightOptions; //夜晚参数
+ public CFG_FLASH_CONTROL stuFlash; //闪光灯配置
+ public CFG_VIDEO_IN_SNAPSHOT_OPTIONS stuSnapshot; //抓拍参数,双快门时有效
+ public CFG_FISH_EYE stuFishEye; //鱼眼镜头
+ public byte byFocusMode; //0-关闭,1-辅助聚焦,2-自动聚焦
+ public byte[] reserved = new byte[28]; //保留
+ public byte byGainMin; //增益下限
+ public byte byGainMax; //增益上限
+ public byte byAntiFlicker; //防闪烁模式 0-Outdoor 1-50Hz防闪烁 2-60Hz防闪烁
+ public byte byExposureMode; //曝光模式调节曝光等级为自动曝光时有效,取值:0-默认自动,1-增益优先,2-快门优先,4-手动
+ public byte byGlareInhibition; //强光抑制0-关闭,1~100为范围值
+ public CFG_RECT stuBacklightRegion; //背光补偿区域
+ public CFG_VIDEO_IN_NORMAL_OPTIONS stuNormalOptions; //普通参数
+ }
+
+ // 通用云台控制命令
+ public static class NET_PTZ_ControlType extends SdkStructure
+ {
+ public static final int NET_PTZ_UP_CONTROL = 0; //上
+ public static final int NET_PTZ_DOWN_CONTROL = NET_PTZ_UP_CONTROL+1; //下
+ public static final int NET_PTZ_LEFT_CONTROL = NET_PTZ_DOWN_CONTROL+1; //左
+ public static final int NET_PTZ_RIGHT_CONTROL = NET_PTZ_LEFT_CONTROL+1; //右
+ public static final int NET_PTZ_ZOOM_ADD_CONTROL = NET_PTZ_RIGHT_CONTROL+1; //变倍+
+ public static final int NET_PTZ_ZOOM_DEC_CONTROL = NET_PTZ_ZOOM_ADD_CONTROL+1; //变倍-
+ public static final int NET_PTZ_FOCUS_ADD_CONTROL = NET_PTZ_ZOOM_DEC_CONTROL+1; //调焦+
+ public static final int NET_PTZ_FOCUS_DEC_CONTROL = NET_PTZ_FOCUS_ADD_CONTROL+1; //调焦-
+ public static final int NET_PTZ_APERTURE_ADD_CONTROL = NET_PTZ_FOCUS_DEC_CONTROL+1; //光圈+
+ public static final int NET_PTZ_APERTURE_DEC_CONTROL = NET_PTZ_APERTURE_ADD_CONTROL+1; //光圈-
+ public static final int NET_PTZ_POINT_MOVE_CONTROL = NET_PTZ_APERTURE_DEC_CONTROL+1; //转至预置点
+ public static final int NET_PTZ_POINT_SET_CONTROL = NET_PTZ_POINT_MOVE_CONTROL+1; //设置
+ public static final int NET_PTZ_POINT_DEL_CONTROL = NET_PTZ_POINT_SET_CONTROL+1; //删除
+ public static final int NET_PTZ_POINT_LOOP_CONTROL = NET_PTZ_POINT_DEL_CONTROL+1; //点间巡航
+ public static final int NET_PTZ_LAMP_CONTROL = NET_PTZ_POINT_LOOP_CONTROL+1; //灯光雨刷
+ }
+
+ // 云台控制扩展命令
+ public static class NET_EXTPTZ_ControlType extends SdkStructure
+ {
+ public static final int NET_EXTPTZ_LEFTTOP = 0x20; //左上
+ public static final int NET_EXTPTZ_RIGHTTOP = NET_EXTPTZ_LEFTTOP+1; //右上
+ public static final int NET_EXTPTZ_LEFTDOWN = NET_EXTPTZ_RIGHTTOP+1; //左下
+ public static final int NET_EXTPTZ_RIGHTDOWN = NET_EXTPTZ_LEFTDOWN+1; //右下
+ public static final int NET_EXTPTZ_ADDTOLOOP = NET_EXTPTZ_RIGHTDOWN+1; //加入预置点到巡航巡航线路预置点值
+ public static final int NET_EXTPTZ_DELFROMLOOP = NET_EXTPTZ_ADDTOLOOP+1; //删除巡航中预置点巡航线路预置点值
+ public static final int NET_EXTPTZ_CLOSELOOP = NET_EXTPTZ_DELFROMLOOP+1; //清除巡航巡航线路
+ public static final int NET_EXTPTZ_STARTPANCRUISE = NET_EXTPTZ_CLOSELOOP+1; //开始水平旋转
+ public static final int NET_EXTPTZ_STOPPANCRUISE = NET_EXTPTZ_STARTPANCRUISE+1; //停止水平旋转
+ public static final int NET_EXTPTZ_SETLEFTBORDER = NET_EXTPTZ_STOPPANCRUISE+1; //设置左边界
+ public static final int NET_EXTPTZ_SETRIGHTBORDER = NET_EXTPTZ_SETLEFTBORDER+1; //设置右边界
+ public static final int NET_EXTPTZ_STARTLINESCAN = NET_EXTPTZ_SETRIGHTBORDER+1; //开始线扫
+ public static final int NET_EXTPTZ_CLOSELINESCAN = NET_EXTPTZ_STARTLINESCAN+1; //停止线扫
+ public static final int NET_EXTPTZ_SETMODESTART = NET_EXTPTZ_CLOSELINESCAN+1; //设置模式开始模式线路
+ public static final int NET_EXTPTZ_SETMODESTOP = NET_EXTPTZ_SETMODESTART+1; //设置模式结束模式线路
+ public static final int NET_EXTPTZ_RUNMODE = NET_EXTPTZ_SETMODESTOP+1; //运行模式模式线路
+ public static final int NET_EXTPTZ_STOPMODE = NET_EXTPTZ_RUNMODE+1; //停止模式模式线路
+ public static final int NET_EXTPTZ_DELETEMODE = NET_EXTPTZ_STOPMODE+1; //清除模式模式线路
+ public static final int NET_EXTPTZ_REVERSECOMM = NET_EXTPTZ_DELETEMODE+1; //翻转命令
+ public static final int NET_EXTPTZ_FASTGOTO = NET_EXTPTZ_REVERSECOMM+1; //快速定位水平坐标(8192)垂直坐标(8192)变倍(4)
+ public static final int NET_EXTPTZ_AUXIOPEN = NET_EXTPTZ_FASTGOTO+1; //辅助开关开辅助点
+ public static final int NET_EXTPTZ_AUXICLOSE = NET_EXTPTZ_AUXIOPEN+1; //辅助开关关辅助点
+ public static final int NET_EXTPTZ_OPENMENU = 0x36; //打开球机菜单
+ public static final int NET_EXTPTZ_CLOSEMENU = NET_EXTPTZ_OPENMENU+1; //关闭菜单
+ public static final int NET_EXTPTZ_MENUOK = NET_EXTPTZ_CLOSEMENU+1; //菜单确定
+ public static final int NET_EXTPTZ_MENUCANCEL = NET_EXTPTZ_MENUOK+1; //菜单取消
+ public static final int NET_EXTPTZ_MENUUP = NET_EXTPTZ_MENUCANCEL+1; //菜单上
+ public static final int NET_EXTPTZ_MENUDOWN = NET_EXTPTZ_MENUUP+1; //菜单下
+ public static final int NET_EXTPTZ_MENULEFT = NET_EXTPTZ_MENUDOWN+1; //菜单左
+ public static final int NET_EXTPTZ_MENURIGHT = NET_EXTPTZ_MENULEFT+1; //菜单右
+ public static final int NET_EXTPTZ_ALARMHANDLE = 0x40; //报警联动云台parm1:报警输入通道;parm2:报警联动类型1-预置点2-线扫3-巡航;parm3:联动值,如预置点号
+ public static final int NET_EXTPTZ_MATRIXSWITCH = 0x41; //矩阵切换parm1:预览器号(视频输出号);parm2:视频输入号;parm3:矩阵号
+ public static final int NET_EXTPTZ_LIGHTCONTROL = NET_EXTPTZ_MATRIXSWITCH+1; //灯光控制器
+ public static final int NET_EXTPTZ_EXACTGOTO = NET_EXTPTZ_LIGHTCONTROL+1; //三维精确定位parm1:水平角度(0~3600);parm2:垂直坐标(0~900);parm3:变倍(1~128)
+ public static final int NET_EXTPTZ_RESETZERO = NET_EXTPTZ_EXACTGOTO+1; //三维定位重设零位
+ public static final int NET_EXTPTZ_MOVE_ABSOLUTELY = NET_EXTPTZ_RESETZERO+1; //绝对移动控制命令,param4对应结构PTZ_CONTROL_ABSOLUTELY
+ public static final int NET_EXTPTZ_MOVE_CONTINUOUSLY = NET_EXTPTZ_MOVE_ABSOLUTELY+1; //持续移动控制命令,param4对应结构PTZ_CONTROL_CONTINUOUSLY
+ public static final int NET_EXTPTZ_GOTOPRESET = NET_EXTPTZ_MOVE_CONTINUOUSLY+1; //云台控制命令,以一定速度转到预置位点,parm4对应结构PTZ_CONTROL_GOTOPRESET
+ public static final int NET_EXTPTZ_SET_VIEW_RANGE = 0x49; //设置可视域(param4对应结构PTZ_VIEW_RANGE_INFO)
+ public static final int NET_EXTPTZ_FOCUS_ABSOLUTELY = 0x4A; //绝对聚焦(param4对应结构PTZ_FOCUS_ABSOLUTELY)
+ public static final int NET_EXTPTZ_HORSECTORSCAN = 0x4B; //水平扇扫(param4对应PTZ_CONTROL_SECTORSCAN,param1、param2、param3无效)
+ public static final int NET_EXTPTZ_VERSECTORSCAN = 0x4C; //垂直扇扫(param4对应PTZ_CONTROL_SECTORSCAN,param1、param2、param3无效)
+ public static final int NET_EXTPTZ_SET_ABS_ZOOMFOCUS = 0x4D; //设定绝对焦距、聚焦值,param1为焦距,范围:0,255],param2为聚焦,范围:[0,255],param3、param4无效
+ public static final int NET_EXTPTZ_SET_FISHEYE_EPTZ = 0x4E; //控制鱼眼电子云台,param4对应结构PTZ_CONTROL_SET_FISHEYE_EPTZ
+ public static final int NET_EXTPTZ_UP_TELE = 0x70; //上 + TELE param1=速度(1-8),下同
+ public static final int NET_EXTPTZ_DOWN_TELE = NET_EXTPTZ_UP_TELE+1; //下 + TELE
+ public static final int NET_EXTPTZ_LEFT_TELE = NET_EXTPTZ_DOWN_TELE+1; //左 + TELE
+ public static final int NET_EXTPTZ_RIGHT_TELE = NET_EXTPTZ_LEFT_TELE+1; //右 + TELE
+ public static final int NET_EXTPTZ_LEFTUP_TELE = NET_EXTPTZ_RIGHT_TELE+1; //左上 + TELE
+ public static final int NET_EXTPTZ_LEFTDOWN_TELE = NET_EXTPTZ_LEFTUP_TELE+1; //左下 + TELE
+ public static final int NET_EXTPTZ_TIGHTUP_TELE = NET_EXTPTZ_LEFTDOWN_TELE+1; //右上 + TELE
+ public static final int NET_EXTPTZ_RIGHTDOWN_TELE = NET_EXTPTZ_TIGHTUP_TELE+1; //右下 + TELE
+ public static final int NET_EXTPTZ_UP_WIDE = NET_EXTPTZ_RIGHTDOWN_TELE+1; // 上 + WIDEparam1=速度(1-8),下同
+ public static final int NET_EXTPTZ_DOWN_WIDE = NET_EXTPTZ_UP_WIDE+1; //下 + WIDE
+ public static final int NET_EXTPTZ_LEFT_WIDE = NET_EXTPTZ_DOWN_WIDE+1; //左 + WIDE
+ public static final int NET_EXTPTZ_RIGHT_WIDE = NET_EXTPTZ_LEFT_WIDE+1; //右 + WIDE
+ public static final int NET_EXTPTZ_LEFTUP_WIDE = NET_EXTPTZ_RIGHT_WIDE+1; //左上 + WIDENET_IN_PTZBASE_SET_FOCUS_MAP_VALUE_INFO
+ public static final int NET_EXTPTZ_LEFTDOWN_WIDE = NET_EXTPTZ_LEFTUP_WIDE+1; //左下 + WIDE
+ public static final int NET_EXTPTZ_TIGHTUP_WIDE = NET_EXTPTZ_LEFTDOWN_WIDE+1; //右上 + WIDE
+ public static final int NET_EXTPTZ_RIGHTDOWN_WIDE = NET_EXTPTZ_TIGHTUP_WIDE+1; //右下 + WIDE
+ public static final int NET_EXTPTZ_GOTOPRESETSNAP = 0x80; // 转至预置点并抓图
+ public static final int NET_EXTPTZ_DIRECTIONCALIBRATION = 0x82; // 校准云台方向(双方向校准)
+ public static final int NET_EXTPTZ_SINGLEDIRECTIONCALIBRATION = 0x83; // 校准云台方向(单防线校准),param4对应结构 NET_IN_CALIBRATE_SINGLEDIRECTION
+ public static final int NET_EXTPTZ_MOVE_RELATIVELY = 0x84; // 云台相对定位,param4对应结构 NET_IN_MOVERELATIVELY_INFO
+ public static final int NET_EXTPTZ_SET_DIRECTION = 0x85; // 设置云台方向, param4对应结构 NET_IN_SET_DIRECTION_INFO
+ public static final int NET_EXTPTZ_BASE_MOVE_ABSOLUTELY = 0x86; // 精准绝对移动控制命令, param4对应结构 NET_IN_PTZBASE_MOVEABSOLUTELY_INFO(通过 CFG_CAP_CMD_PTZ 命令获取云台能力集( CFG_PTZ_PROTOCOL_CAPS_INFO ),若bSupportReal为TRUE则设备支持该操作)
+ public static final int NET_EXTPTZ_BASE_MOVE_CONTINUOUSLY = NET_EXTPTZ_BASE_MOVE_ABSOLUTELY+1; // 云台连续移动控制命令, param4 对应结构 NET_IN_PTZBASE_MOVE_CONTINUOUSLY_INFO. 通过 CFG_CAP_CMD_PTZ 命令获取云台能力集
+ // 若 CFG_PTZ_PROTOCOL_CAPS_INFO 中 stuMoveContinuously 字段的 stuType.bSupportExtra 为 TRUE, 表示设备支持该操作
+ public static final int NET_EXTPTZ_BASE_SET_FOCUS_MAP_VALUE = NET_EXTPTZ_BASE_MOVE_CONTINUOUSLY+1; // 设置当前位置聚焦值, param4对应结构体 NET_IN_PTZBASE_SET_FOCUS_MAP_VALUE_INFO
+ public static final int NET_EXTPTZ_BASE_MOVE_ABSOLUTELY_ONLYPT = NET_EXTPTZ_BASE_SET_FOCUS_MAP_VALUE+1; // 绝对定位独立控制PT并能以度/秒为单位的速度控制, param4对应结构 NET_IN_PTZBASE_MOVEABSOLUTELY_ONLYPT_INFO
+ public static final int NET_EXTPTZ_BASE_MOVE_ABSOLUTELY_ONLYZOOM = NET_EXTPTZ_BASE_MOVE_ABSOLUTELY_ONLYPT+1; // 绝对定位独立控制zoom,并能控制变倍速度, param4对应结构 NET_IN_PTZBASE_MOVEABSOLUTELY_ONLYZOOM_INFO
+ public static final int NET_EXTPTZ_STOP_MOVE = NET_EXTPTZ_BASE_MOVE_ABSOLUTELY_ONLYZOOM+1; // 云台移动停止,同时也停止巡航模式,param4对应结构体 NET_IN_STOP_MOVE_INFO
+ public static final int NET_EXTPTZ_START = NET_EXTPTZ_STOP_MOVE+1; // 开始云台控制,param4对应结构体 NET_IN_PTZ_START_INFO
+ public static final int NET_EXTPTZ_STOP = NET_EXTPTZ_START+1; // 结束云台控制,param4对应结构体 NET_IN_PTZ_STOP_INFO
+ public static final int NET_EXTPTZ_START_PATTERN_RECORD = NET_EXTPTZ_STOP+1; // 开始模式记录,param4对应结构体 NET_IN_START_PATTERN_RECORD_INFO
+ public static final int NET_EXTPTZ_STOP_PATTERN_RECORD = NET_EXTPTZ_START_PATTERN_RECORD+1; // 停止模式记录,param4对应结构体 NET_IN_STOP_PATTERN_RECORD_INFO
+ public static final int NET_EXTPTZ_START_PATTERN_REPLAY = NET_EXTPTZ_STOP_PATTERN_RECORD+1; // 开始模式回放,param4对应结构体 NET_IN_START_PATTERN_REPLAY_INFO
+ public static final int NET_EXTPTZ_STOP_PATTERN_REPLAY = NET_EXTPTZ_START_PATTERN_REPLAY+1; // 停止模式回放,param4对应结构体 NET_IN_STOP_PATTERN_REPLAY_INFO
+ public static final int NET_EXTPTZ_MOVE_DIRECTLY = NET_EXTPTZ_STOP_PATTERN_REPLAY+1; // 云台三维定位, param4对应结构体 NET_IN_MOVE_DIRECTLY_INFO
+ public static final int NET_EXTPTZ_TOTAL = NET_EXTPTZ_MOVE_DIRECTLY+1; //最大命令值
+ }
+
+ // 雨刷工作模式
+ public static class EM_CFG_RAINBRUSHMODE_MODE extends SdkStructure
+ {
+ public static final int EM_CFG_RAINBRUSHMODE_MODE_UNKNOWN = 0; //未知
+ public static final int EM_CFG_RAINBRUSHMODE_MODE_MANUAL = EM_CFG_RAINBRUSHMODE_MODE_UNKNOWN+1; //手动模式
+ public static final int EM_CFG_RAINBRUSHMODE_MODE_TIMING = EM_CFG_RAINBRUSHMODE_MODE_MANUAL+1; //定时模式
+ }
+
+ // 雨刷使能电平模式
+ public static class EM_CFG_RAINBRUSHMODE_ENABLEMODE extends SdkStructure
+ {
+ public static final int EM_CFG_RAINBRUSHMODE_ENABLEMODE_UNKNOWN = 0; //未知
+ public static final int EM_CFG_RAINBRUSHMODE_ENABLEMODE_LOW = EM_CFG_RAINBRUSHMODE_ENABLEMODE_UNKNOWN+1; //低电平有效(常闭)
+ public static final int EM_CFG_RAINBRUSHMODE_ENABLEMODE_HIGH = EM_CFG_RAINBRUSHMODE_ENABLEMODE_LOW+1; //高电平有效(常开)
+ }
+
+ // 雨刷模式相关配置(对应 CFG_RAINBRUSHMODE_INFO 命令)
+ public static class CFG_RAINBRUSHMODE_INFO extends SdkStructure
+ {
+ public int emMode; //雨刷工作模式, 取值为EM_CFG_RAINBRUSHMODE_MODE中的值
+ public int emEnableMode; //雨刷使能电平模式, 取值为EM_CFG_RAINBRUSHMODE_ENABLEMODE中的值
+ public int nPort; //雨刷使用的IO端口,-1表示未接入设备,-2表示该字段无效(设备未传送该字段)
+ public int nSensitivity; // 雨刷灵敏度, 只有当mode为Auto时有效, 范围[0, 10]
+ }
+
+ public static class CFG_RAINBRUSH_INFO extends SdkStructure
+ {
+ public byte bEnable; // 雨刷使能, 类型为bool, 取值0或1
+ public byte bSpeedRate; // 雨刷速度,1:快速;2:中速;3:慢速
+ public byte[] bReserved = new byte[2]; // 保留对齐
+ public TIME_SECTION_WEEK_DAY_6[] stuTimeSectionWeekDay = (TIME_SECTION_WEEK_DAY_6[])new TIME_SECTION_WEEK_DAY_6().toArray(WEEK_DAY_NUM); // 事件响应时间段
+ public int nInterval; // 雨刷运动间隔事件, 单位: 秒
+ public int bProtectEnable; // 雨刷保护使能: true 保护开启, false 保护关闭
+ public int nProtectTime; // 保护时间, 单位: 秒
+ public CFG_RAINBRUSH_TOUR_INFO stuRainBrushTour = new CFG_RAINBRUSH_TOUR_INFO(); // 雨刷巡航模式配置,当CFG_RAINBRUSHMODE_INFO中EM_CFG_RAINBRUSHMODE_MODE为EM_CFG_RAINBRUSHMODE_MODE_TOUR时有效
+ public CFG_RAINBRUSH_CYCLE stuRainBrushCycle = new CFG_RAINBRUSH_CYCLE(); //周期模式配置,当CFG_RAINBRUSHMODE_INFO中EM_CFG_RAINBRUSHMODE_MODE为EM_CFG_RAINBRUSHMODE_MODE_CYCLE时有效,参见结构体定义 {@link com.netsdk.lib.structure.CFG_RAINBRUSH_CYCLE}
+ public int nSelfCleanRunTime; //手动模式下,一次自清洗操作雨刷运行的时长,单位:秒
+ public byte[] szReserved = new byte[1024]; //保留字节
+ }
+
+ // 控制类型,对应CLIENT_ControlDevice接口
+ public static class CtrlType extends SdkStructure
+ {
+ public static final int CTRLTYPE_CTRL_REBOOT = 0; //重启设备
+ public static final int CTRLTYPE_CTRL_SHUTDOWN = CTRLTYPE_CTRL_REBOOT+1; //关闭设备
+ public static final int CTRLTYPE_CTRL_DISK = CTRLTYPE_CTRL_SHUTDOWN+1; //硬盘管理
+ public static final int CTRLTYPE_KEYBOARD_POWER = 3; //网络键盘
+ public static final int CTRLTYPE_KEYBOARD_ENTER = CTRLTYPE_KEYBOARD_POWER+1;
+ public static final int CTRLTYPE_KEYBOARD_ESC = CTRLTYPE_KEYBOARD_ENTER+1;
+ public static final int CTRLTYPE_KEYBOARD_UP = CTRLTYPE_KEYBOARD_ESC+1;
+ public static final int CTRLTYPE_KEYBOARD_DOWN = CTRLTYPE_KEYBOARD_UP+1;
+ public static final int CTRLTYPE_KEYBOARD_LEFT = CTRLTYPE_KEYBOARD_DOWN+1;
+ public static final int CTRLTYPE_KEYBOARD_RIGHT = CTRLTYPE_KEYBOARD_LEFT+1;
+ public static final int CTRLTYPE_KEYBOARD_BTN0 = CTRLTYPE_KEYBOARD_RIGHT+1;
+ public static final int CTRLTYPE_KEYBOARD_BTN1 = CTRLTYPE_KEYBOARD_BTN0+1;
+ public static final int CTRLTYPE_KEYBOARD_BTN2 = CTRLTYPE_KEYBOARD_BTN1+1;
+ public static final int CTRLTYPE_KEYBOARD_BTN3 = CTRLTYPE_KEYBOARD_BTN2+1;
+ public static final int CTRLTYPE_KEYBOARD_BTN4 = CTRLTYPE_KEYBOARD_BTN3+1;
+ public static final int CTRLTYPE_KEYBOARD_BTN5 = CTRLTYPE_KEYBOARD_BTN4+1;
+ public static final int CTRLTYPE_KEYBOARD_BTN6 = CTRLTYPE_KEYBOARD_BTN5+1;
+ public static final int CTRLTYPE_KEYBOARD_BTN7 = CTRLTYPE_KEYBOARD_BTN6+1;
+ public static final int CTRLTYPE_KEYBOARD_BTN8 = CTRLTYPE_KEYBOARD_BTN7+1;
+ public static final int CTRLTYPE_KEYBOARD_BTN9 = CTRLTYPE_KEYBOARD_BTN8+1;
+ public static final int CTRLTYPE_KEYBOARD_BTN10 = CTRLTYPE_KEYBOARD_BTN9+1;
+ public static final int CTRLTYPE_KEYBOARD_BTN11 = CTRLTYPE_KEYBOARD_BTN10+1;
+ public static final int CTRLTYPE_KEYBOARD_BTN12 = CTRLTYPE_KEYBOARD_BTN11+1;
+ public static final int CTRLTYPE_KEYBOARD_BTN13 = CTRLTYPE_KEYBOARD_BTN12+1;
+ public static final int CTRLTYPE_KEYBOARD_BTN14 = CTRLTYPE_KEYBOARD_BTN13+1;
+ public static final int CTRLTYPE_KEYBOARD_BTN15 = CTRLTYPE_KEYBOARD_BTN14+1;
+ public static final int CTRLTYPE_KEYBOARD_BTN16 = CTRLTYPE_KEYBOARD_BTN15+1;
+ public static final int CTRLTYPE_KEYBOARD_SPLIT = CTRLTYPE_KEYBOARD_BTN16+1;
+ public static final int CTRLTYPE_KEYBOARD_ONE = CTRLTYPE_KEYBOARD_SPLIT+1;
+ public static final int CTRLTYPE_KEYBOARD_NINE = CTRLTYPE_KEYBOARD_ONE+1;
+ public static final int CTRLTYPE_KEYBOARD_ADDR = CTRLTYPE_KEYBOARD_NINE+1;
+ public static final int CTRLTYPE_KEYBOARD_INFO = CTRLTYPE_KEYBOARD_ADDR+1;
+ public static final int CTRLTYPE_KEYBOARD_REC = CTRLTYPE_KEYBOARD_INFO+1;
+ public static final int CTRLTYPE_KEYBOARD_FN1 = CTRLTYPE_KEYBOARD_REC+1;
+ public static final int CTRLTYPE_KEYBOARD_FN2 = CTRLTYPE_KEYBOARD_FN1+1;
+ public static final int CTRLTYPE_KEYBOARD_PLAY = CTRLTYPE_KEYBOARD_FN2+1;
+ public static final int CTRLTYPE_KEYBOARD_STOP = CTRLTYPE_KEYBOARD_PLAY+1;
+ public static final int CTRLTYPE_KEYBOARD_SLOW = CTRLTYPE_KEYBOARD_STOP+1;
+ public static final int CTRLTYPE_KEYBOARD_FAST = CTRLTYPE_KEYBOARD_SLOW+1;
+ public static final int CTRLTYPE_KEYBOARD_PREW = CTRLTYPE_KEYBOARD_FAST+1;
+ public static final int CTRLTYPE_KEYBOARD_NEXT = CTRLTYPE_KEYBOARD_PREW+1;
+ public static final int CTRLTYPE_KEYBOARD_JMPDOWN = CTRLTYPE_KEYBOARD_NEXT+1;
+ public static final int CTRLTYPE_KEYBOARD_JMPUP = CTRLTYPE_KEYBOARD_JMPDOWN+1;
+ public static final int CTRLTYPE_KEYBOARD_10PLUS = CTRLTYPE_KEYBOARD_JMPUP+1;
+ public static final int CTRLTYPE_KEYBOARD_SHIFT = CTRLTYPE_KEYBOARD_10PLUS+1;
+ public static final int CTRLTYPE_KEYBOARD_BACK = CTRLTYPE_KEYBOARD_SHIFT+1;
+ public static final int CTRLTYPE_KEYBOARD_LOGIN = CTRLTYPE_KEYBOARD_BACK+1; // 新网络键盘功能
+ public static final int CTRLTYPE_KEYBOARD_CHNNEL = CTRLTYPE_KEYBOARD_LOGIN+1; // 切换视频通道
+ public static final int CTRLTYPE_TRIGGER_ALARM_IN = 100; // 触发报警输入
+ public static final int CTRLTYPE_TRIGGER_ALARM_OUT = CTRLTYPE_TRIGGER_ALARM_IN+1; // 触发报警输出
+ public static final int CTRLTYPE_CTRL_MATRIX = CTRLTYPE_TRIGGER_ALARM_OUT+1; // 矩阵控制
+ public static final int CTRLTYPE_CTRL_SDCARD = CTRLTYPE_CTRL_MATRIX+1; // SD卡控制(IPC产品)参数同硬盘控制
+ public static final int CTRLTYPE_BURNING_START = CTRLTYPE_CTRL_SDCARD+1; // 刻录机控制,开始刻录
+ public static final int CTRLTYPE_BURNING_STOP = CTRLTYPE_BURNING_START+1; // 刻录机控制,结束刻录
+ public static final int CTRLTYPE_BURNING_ADDPWD = CTRLTYPE_BURNING_STOP+1; // 刻录机控制,叠加密码(以'\0'为结尾的字符串,最大长度8位)
+ public static final int CTRLTYPE_BURNING_ADDHEAD = CTRLTYPE_BURNING_ADDPWD+1; // 刻录机控制,叠加片头(以'\0'为结尾的字符串,最大长度1024字节,支持分行,行分隔符'\n')
+ public static final int CTRLTYPE_BURNING_ADDSIGN = CTRLTYPE_BURNING_ADDHEAD+1; // 刻录机控制,叠加打点到刻录信息(参数无)
+ public static final int CTRLTYPE_BURNING_ADDCURSTOMINFO = CTRLTYPE_BURNING_ADDSIGN+1; // 刻录机控制,自定义叠加(以'\0'为结尾的字符串,最大长度1024字节,支持分行,行分隔符'\n')
+ public static final int CTRLTYPE_CTRL_RESTOREDEFAULT = CTRLTYPE_BURNING_ADDCURSTOMINFO+1; // 恢复设备的默认设置
+ public static final int CTRLTYPE_CTRL_CAPTURE_START = CTRLTYPE_CTRL_RESTOREDEFAULT+1; // 触发设备抓图
+ public static final int CTRLTYPE_CTRL_CLEARLOG = CTRLTYPE_CTRL_CAPTURE_START+1; // 清除日志
+ public static final int CTRLTYPE_TRIGGER_ALARM_WIRELESS = 200; // 触发无线报警(IPC产品)
+ public static final int CTRLTYPE_MARK_IMPORTANT_RECORD = CTRLTYPE_TRIGGER_ALARM_WIRELESS+1; // 标识重要录像文件
+ public static final int CTRLTYPE_CTRL_DISK_SUBAREA = CTRLTYPE_MARK_IMPORTANT_RECORD+1; // 网络硬盘分区
+ public static final int CTRLTYPE_BURNING_ATTACH = CTRLTYPE_CTRL_DISK_SUBAREA+1; // 刻录机控制,附件刻录.
+ public static final int CTRLTYPE_BURNING_PAUSE = CTRLTYPE_BURNING_ATTACH+1; // 刻录暂停
+ public static final int CTRLTYPE_BURNING_CONTINUE = CTRLTYPE_BURNING_PAUSE+1; // 刻录继续
+ public static final int CTRLTYPE_BURNING_POSTPONE = CTRLTYPE_BURNING_CONTINUE+1; // 刻录顺延
+ public static final int CTRLTYPE_CTRL_OEMCTRL = CTRLTYPE_BURNING_POSTPONE+1; // 报停控制
+ public static final int CTRLTYPE_BACKUP_START = CTRLTYPE_CTRL_OEMCTRL+1; // 设备备份开始
+ public static final int CTRLTYPE_BACKUP_STOP = CTRLTYPE_BACKUP_START+1; // 设备备份停止
+ public static final int CTRLTYPE_VIHICLE_WIFI_ADD = CTRLTYPE_BACKUP_STOP+1; // 车载手动增加WIFI配置
+ public static final int CTRLTYPE_VIHICLE_WIFI_DEC = CTRLTYPE_VIHICLE_WIFI_ADD+1; // 车载手动删除WIFI配置
+ public static final int CTRLTYPE_BUZZER_START = CTRLTYPE_VIHICLE_WIFI_DEC+1; // 蜂鸣器控制开始
+ public static final int CTRLTYPE_BUZZER_STOP = CTRLTYPE_BUZZER_START+1; // 蜂鸣器控制结束
+ public static final int CTRLTYPE_REJECT_USER = CTRLTYPE_BUZZER_STOP+1; // 剔除用户
+ public static final int CTRLTYPE_SHIELD_USER = CTRLTYPE_REJECT_USER+1; // 屏蔽用户
+ public static final int CTRLTYPE_RAINBRUSH = CTRLTYPE_SHIELD_USER+1; // 智能交通,雨刷控制
+ public static final int CTRLTYPE_MANUAL_SNAP = CTRLTYPE_RAINBRUSH+1; // 智能交通,手动抓拍(对应结构体MANUAL_SNAP_PARAMETER)
+ public static final int CTRLTYPE_MANUAL_NTP_TIMEADJUST = CTRLTYPE_MANUAL_SNAP+1; // 手动NTP校时
+ public static final int CTRLTYPE_NAVIGATION_SMS = CTRLTYPE_MANUAL_NTP_TIMEADJUST+1; // 导航信息和短消息
+ public static final int CTRLTYPE_CTRL_ROUTE_CROSSING = CTRLTYPE_NAVIGATION_SMS+1; // 路线点位信息
+ public static final int CTRLTYPE_BACKUP_FORMAT = CTRLTYPE_CTRL_ROUTE_CROSSING+1; // 格式化备份设备
+ public static final int CTRLTYPE_DEVICE_LOCALPREVIEW_SLIPT = CTRLTYPE_BACKUP_FORMAT+1; // 控制设备端本地预览分割(对应结构体DEVICE_LOCALPREVIEW_SLIPT_PARAMETER)
+ public static final int CTRLTYPE_CTRL_INIT_RAID = CTRLTYPE_DEVICE_LOCALPREVIEW_SLIPT+1; // RAID初始化
+ public static final int CTRLTYPE_CTRL_RAID = CTRLTYPE_CTRL_INIT_RAID+1; // RAID操作
+ public static final int CTRLTYPE_CTRL_SAPREDISK = CTRLTYPE_CTRL_RAID+1; // 热备盘操作
+ public static final int CTRLTYPE_WIFI_CONNECT = CTRLTYPE_CTRL_SAPREDISK+1; // 手动发起WIFI连接(对应结构体WIFI_CONNECT)
+ public static final int CTRLTYPE_WIFI_DISCONNECT = CTRLTYPE_WIFI_CONNECT+1; // 手动断开WIFI连接(对应结构体WIFI_CONNECT)
+ public static final int CTRLTYPE_CTRL_ARMED = CTRLTYPE_WIFI_DISCONNECT+1; // 布撤防操作
+ public static final int CTRLTYPE_CTRL_IP_MODIFY = CTRLTYPE_CTRL_ARMED+1; // 修改前端IP(对应结构体 NET_CTRL_IPMODIFY_PARAM)
+ public static final int CTRLTYPE_CTRL_WIFI_BY_WPS = CTRLTYPE_CTRL_IP_MODIFY+1; // wps连接wifi(对应结构体NET_CTRL_CONNECT_WIFI_BYWPS)
+ public static final int CTRLTYPE_CTRL_FORMAT_PATITION = CTRLTYPE_CTRL_WIFI_BY_WPS+1; // 格式化分区(对应结构体NET_FORMAT_PATITION)
+ public static final int CTRLTYPE_CTRL_EJECT_STORAGE = CTRLTYPE_CTRL_FORMAT_PATITION+1; // 手动卸载设备(对应结构体NET_EJECT_STORAGE_DEVICE)
+ public static final int CTRLTYPE_CTRL_LOAD_STORAGE = CTRLTYPE_CTRL_EJECT_STORAGE+1; // 手动装载设备(对应结构体NET_LOAD_STORAGE_DEVICE)
+ public static final int CTRLTYPE_CTRL_CLOSE_BURNER = CTRLTYPE_CTRL_LOAD_STORAGE+1; // 关闭刻录机光驱门(对应结构体NET_CTRL_BURNERDOOR)一般需要等6
+ public static final int CTRLTYPE_CTRL_EJECT_BURNER = CTRLTYPE_CTRL_CLOSE_BURNER+1; // 弹出刻录机光驱门(对应结构体NET_CTRL_BURNERDOOR)一般需要等4秒
+ public static final int CTRLTYPE_CTRL_CLEAR_ALARM = CTRLTYPE_CTRL_EJECT_BURNER+1; // 消警(对应结构体NET_CTRL_CLEAR_ALARM)
+ public static final int CTRLTYPE_CTRL_MONITORWALL_TVINFO = CTRLTYPE_CTRL_CLEAR_ALARM+1; // 电视墙信息显示(对应结构体NET_CTRL_MONITORWALL_TVINFO)
+ public static final int CTRLTYPE_CTRL_START_VIDEO_ANALYSE = CTRLTYPE_CTRL_MONITORWALL_TVINFO+1; // 开始视频智能分析(对应结构体NET_CTRL_START_VIDEO_ANALYSE)
+ public static final int CTRLTYPE_CTRL_STOP_VIDEO_ANALYSE = CTRLTYPE_CTRL_START_VIDEO_ANALYSE+1; // 停止视频智能分析(对应结构体NET_CTRL_STOP_VIDEO_ANALYSE)
+ public static final int CTRLTYPE_CTRL_UPGRADE_DEVICE = CTRLTYPE_CTRL_STOP_VIDEO_ANALYSE+1; // 控制启动设备升级,由设备独立完成升级过程,不需要传输升级文件
+ public static final int CTRLTYPE_CTRL_MULTIPLAYBACK_CHANNALES = CTRLTYPE_CTRL_UPGRADE_DEVICE+1; // 切换多通道预览回放的通道(对应结构体NET_CTRL_MULTIPLAYBACK_CHANNALES)
+ public static final int CTRLTYPE_CTRL_SEQPOWER_OPEN = CTRLTYPE_CTRL_MULTIPLAYBACK_CHANNALES+1; // 电源时序器打开开关量输出口(对应NET_CTRL_SEQPOWER_PARAM)
+ public static final int CTRLTYPE_CTRL_SEQPOWER_CLOSE = CTRLTYPE_CTRL_SEQPOWER_OPEN+1; // 电源时序器关闭开关量输出口(对应NET_CTRL_SEQPOWER_PARAM)
+ public static final int CTRLTYPE_CTRL_SEQPOWER_OPEN_ALL = CTRLTYPE_CTRL_SEQPOWER_CLOSE+1; // 电源时序器打开开关量输出口组(对应NET_CTRL_SEQPOWER_PARAM)
+ public static final int CTRLTYPE_CTRL_SEQPOWER_CLOSE_ALL = CTRLTYPE_CTRL_SEQPOWER_OPEN_ALL+1; // 电源时序器关闭开关量输出口组(对应NET_CTRL_SEQPOWER_PARAM)
+ public static final int CTRLTYPE_CTRL_PROJECTOR_RISE = CTRLTYPE_CTRL_SEQPOWER_CLOSE_ALL+1; // 投影仪上升(对应NET_CTRL_PROJECTOR_PARAM)
+ public static final int CTRLTYPE_CTRL_PROJECTOR_FALL = CTRLTYPE_CTRL_PROJECTOR_RISE+1; // 投影仪下降(对应NET_CTRL_PROJECTOR_PARAM)
+ public static final int CTRLTYPE_CTRL_PROJECTOR_STOP = CTRLTYPE_CTRL_PROJECTOR_FALL+1; // 投影仪停止(对应NET_CTRL_PROJECTOR_PARAM)
+ public static final int CTRLTYPE_CTRL_INFRARED_KEY = CTRLTYPE_CTRL_PROJECTOR_STOP+1; // 红外按键(对应NET_CTRL_INFRARED_KEY_PARAM)
+ public static final int CTRLTYPE_CTRL_START_PLAYAUDIO = CTRLTYPE_CTRL_INFRARED_KEY+1; // 设备开始播放音频文件(对应结构体NET_CTRL_START_PLAYAUDIO)
+ public static final int CTRLTYPE_CTRL_STOP_PLAYAUDIO = CTRLTYPE_CTRL_START_PLAYAUDIO+1; // 设备停止播放音频文件
+ public static final int CTRLTYPE_CTRL_START_ALARMBELL = CTRLTYPE_CTRL_STOP_PLAYAUDIO+1; // 开启警号(对应结构体 NET_CTRL_ALARMBELL )
+ public static final int CTRLTYPE_CTRL_STOP_ALARMBELL = CTRLTYPE_CTRL_START_ALARMBELL+1; // 关闭警号(对应结构体 NET_CTRL_ALARMBELL )
+ public static final int CTRLTYPE_CTRL_ACCESS_OPEN = CTRLTYPE_CTRL_STOP_ALARMBELL+1; // 门禁控制-开门(对应结构体 NET_CTRL_ACCESS_OPEN)
+ public static final int CTRLTYPE_CTRL_SET_BYPASS = CTRLTYPE_CTRL_ACCESS_OPEN+1; // 设置旁路功能(对应结构体NET_CTRL_SET_BYPASS)
+ public static final int CTRLTYPE_CTRL_RECORDSET_INSERT = CTRLTYPE_CTRL_SET_BYPASS+1; // 添加记录,获得记录集编号(对应NET_CTRL_RECORDSET_INSERT_PARAM)
+ public static final int CTRLTYPE_CTRL_RECORDSET_UPDATE = CTRLTYPE_CTRL_RECORDSET_INSERT+1; // 更新某记录集编号的记录(对应 NET_CTRL_RECORDSET_PARAM)
+ public static final int CTRLTYPE_CTRL_RECORDSET_REMOVE = CTRLTYPE_CTRL_RECORDSET_UPDATE+1; // 根据记录集编号删除某记录(对应 NET_CTRL_RECORDSET_PARAM)
+ public static final int CTRLTYPE_CTRL_RECORDSET_CLEAR = CTRLTYPE_CTRL_RECORDSET_REMOVE+1; // 清除所有记录集信息(对应NET_CTRL_RECORDSET_PARAM)
+ public static final int CTRLTYPE_CTRL_ACCESS_CLOSE = CTRLTYPE_CTRL_RECORDSET_CLEAR+1; // 门禁控制-关门(对应结构体NET_CTRL_ACCESS_CLOSE)
+ public static final int CTRLTYPE_CTRL_ALARM_SUBSYSTEM_ACTIVE_SET = CTRLTYPE_CTRL_ACCESS_CLOSE+1; // 报警子系统激活设置(对应结构体NET_CTRL_ALARM_SUBSYSTEM_SETACTIVE)
+ public static final int CTRLTYPE_CTRL_FORBID_OPEN_STROBE = CTRLTYPE_CTRL_ALARM_SUBSYSTEM_ACTIVE_SET+1; // 禁止设备端开闸(对应结构体NET_CTRL_FORBID_OPEN_STROBE)
+ public static final int CTRLTYPE_CTRL_OPEN_STROBE = CTRLTYPE_CTRL_FORBID_OPEN_STROBE+1; // 开启道闸(对应结构体 NET_CTRL_OPEN_STROBE)
+ public static final int CTRLTYPE_CTRL_TALKING_REFUSE = CTRLTYPE_CTRL_OPEN_STROBE+1; // 对讲拒绝接听(对应结构体NET_CTRL_TALKING_REFUSE)
+ public static final int CTRLTYPE_CTRL_ARMED_EX = CTRLTYPE_CTRL_TALKING_REFUSE+1; // 布撤防操作(对应结构体CTRL_ARM_DISARM_PARAM_EX),对CTRL_ARM_DISARM_PARAM升级,建议用这个
+ public static final int CTRLTYPE_CTRL_NET_KEYBOARD = 400; // 网络键盘控制(对应结构体NET_CTRL_NET_KEYBOARD)
+ public static final int CTRLTYPE_CTRL_AIRCONDITION_OPEN = CTRLTYPE_CTRL_NET_KEYBOARD+1; // 打开空调(对应结构体NET_CTRL_OPEN_AIRCONDITION)
+ public static final int CTRLTYPE_CTRL_AIRCONDITION_CLOSE = CTRLTYPE_CTRL_AIRCONDITION_OPEN+1; // 关闭空调(对应结构体NET_CTRL_CLOSE_AIRCONDITION)
+ public static final int CTRLTYPE_CTRL_AIRCONDITION_SET_TEMPERATURE = CTRLTYPE_CTRL_AIRCONDITION_CLOSE+1; // 设定空调温度(对应结构体NET_CTRL_SET_TEMPERATURE)
+ public static final int CTRLTYPE_CTRL_AIRCONDITION_ADJUST_TEMPERATURE = CTRLTYPE_CTRL_AIRCONDITION_SET_TEMPERATURE+1; // 调节空调温度(对应结构体NET_CTRL_ADJUST_TEMPERATURE)
+ public static final int CTRLTYPE_CTRL_AIRCONDITION_SETMODE = CTRLTYPE_CTRL_AIRCONDITION_ADJUST_TEMPERATURE+1; // 设置空调工作模式(对应结构体NET_CTRL_ADJUST_TEMPERATURE)
+ public static final int CTRLTYPE_CTRL_AIRCONDITION_SETWINDMODE = CTRLTYPE_CTRL_AIRCONDITION_SETMODE+1; // 设置空调送风模式(对应结构体NET_CTRL_AIRCONDITION_SETMODE)
+ public static final int CTRLTYPE_CTRL_RESTOREDEFAULT_EX = CTRLTYPE_CTRL_AIRCONDITION_SETWINDMODE+1; // 恢复设备的默认设置新协议(对应结构体 NET_CTRL_RESTORE_DEFAULT )
+ // 恢复配置优先使用该枚举,如果接口失败,
+ // 且CLIENT_GetLastError返回NET_UNSUPPORTED,再尝试使用NET_CTRL_RESTOREDEFAULT恢复配置
+ public static final int CTRLTYPE_CTRL_NOTIFY_EVENT = CTRLTYPE_CTRL_RESTOREDEFAULT_EX+1; // 向设备发送事件(对应结构体NET_NOTIFY_EVENT_DATA)
+ public static final int CTRLTYPE_CTRL_SILENT_ALARM_SET = CTRLTYPE_CTRL_NOTIFY_EVENT+1; // 无声报警设置
+ public static final int CTRLTYPE_CTRL_START_PLAYAUDIOEX = CTRLTYPE_CTRL_SILENT_ALARM_SET+1; // 设备开始语音播报(对应结构体NET_CTRL_START_PLAYAUDIOEX)
+ public static final int CTRLTYPE_CTRL_STOP_PLAYAUDIOEX = CTRLTYPE_CTRL_START_PLAYAUDIOEX+1; // 设备停止语音播报
+ public static final int CTRLTYPE_CTRL_CLOSE_STROBE = CTRLTYPE_CTRL_STOP_PLAYAUDIOEX+1; // 关闭道闸(对应结构体 NET_CTRL_CLOSE_STROBE)
+ public static final int CTRLTYPE_CTRL_SET_ORDER_STATE = CTRLTYPE_CTRL_CLOSE_STROBE+1; // 设置车位预定状态(对应结构体NET_CTRL_SET_ORDER_STATE)
+ public static final int CTRLTYPE_CTRL_RECORDSET_INSERTEX = CTRLTYPE_CTRL_SET_ORDER_STATE+1; // 添加记录,获得记录集编号(对应 NET_CTRL_RECORDSET_INSERT_PARAM )
+ public static final int CTRLTYPE_CTRL_RECORDSET_UPDATEEX = CTRLTYPE_CTRL_RECORDSET_INSERTEX+1; // 更新某记录集编号的记录(对应NET_CTRL_RECORDSET_PARAM)
+ public static final int CTRLTYPE_CTRL_CAPTURE_FINGER_PRINT = CTRLTYPE_CTRL_RECORDSET_UPDATEEX+1; // 信息采集(对应结构体NET_CTRL_CAPTURE_FINGER_PRINT)
+ public static final int CTRLTYPE_CTRL_ECK_LED_SET = CTRLTYPE_CTRL_CAPTURE_FINGER_PRINT+1; // 停车场出入口控制器LED设置(对应结构体NET_CTRL_ECK_LED_SET_PARAM)
+ public static final int CTRLTYPE_CTRL_ECK_IC_CARD_IMPORT = CTRLTYPE_CTRL_ECK_LED_SET+1; // 智能停车系统出入口机IC卡信息导入(对应结构体NET_CTRL_ECK_IC_CARD_IMPORT_PARAM)
+ public static final int CTRLTYPE_CTRL_ECK_SYNC_IC_CARD = CTRLTYPE_CTRL_ECK_IC_CARD_IMPORT+1; // 智能停车系统出入口机IC卡信息同步指令,收到此指令后,设备删除原有IC卡信息(对应结构体NET_CTRL_ECK_SYNC_IC_CARD_PARAM)
+ public static final int CTRLTYPE_CTRL_LOWRATEWPAN_REMOVE = CTRLTYPE_CTRL_ECK_SYNC_IC_CARD+1; // 删除指定无线设备(对应结构体NET_CTRL_LOWRATEWPAN_REMOVE)
+ public static final int CTRLTYPE_CTRL_LOWRATEWPAN_MODIFY = CTRLTYPE_CTRL_LOWRATEWPAN_REMOVE+1; // 修改无线设备信息(对应结构体NET_CTRL_LOWRATEWPAN_MODIFY)
+ public static final int CTRLTYPE_CTRL_ECK_SET_PARK_INFO = CTRLTYPE_CTRL_LOWRATEWPAN_MODIFY+1; // 智能停车系统出入口机设置车位信息(对应结构体NET_CTRL_ECK_SET_PARK_INFO_PARAM)
+ public static final int CTRLTYPE_CTRL_VTP_DISCONNECT = CTRLTYPE_CTRL_ECK_SET_PARK_INFO+1; // 挂断视频电话(对应结构体NET_CTRL_VTP_DISCONNECT)
+ public static final int CTRLTYPE_CTRL_UPDATE_FILES = CTRLTYPE_CTRL_VTP_DISCONNECT+1; // 远程投放多媒体文件更新(对应结构体NET_CTRL_UPDATE_FILES)
+ public static final int CTRLTYPE_CTRL_MATRIX_SAVE_SWITCH = CTRLTYPE_CTRL_UPDATE_FILES+1; // 保存上下位矩阵输出关系(对应结构体NET_CTRL_MATRIX_SAVE_SWITCH)
+ public static final int CTRLTYPE_CTRL_MATRIX_RESTORE_SWITCH = CTRLTYPE_CTRL_MATRIX_SAVE_SWITCH+1; // 恢复上下位矩阵输出关系(对应结构体NET_CTRL_MATRIX_RESTORE_SWITCH)
+ public static final int CTRLTYPE_CTRL_VTP_DIVERTACK = CTRLTYPE_CTRL_MATRIX_RESTORE_SWITCH+1; // 呼叫转发响应(对应结构体NET_CTRL_VTP_DIVERTACK)
+ public static final int CTRLTYPE_CTRL_RAINBRUSH_MOVEONCE = CTRLTYPE_CTRL_VTP_DIVERTACK+1; // 雨刷来回刷一次,雨刷模式配置为手动模式时有效(对应结构体NET_CTRL_RAINBRUSH_MOVEONCE)
+ public static final int CTRLTYPE_CTRL_RAINBRUSH_MOVECONTINUOUSLY = CTRLTYPE_CTRL_RAINBRUSH_MOVEONCE+1; // 雨刷来回循环刷,雨刷模式配置为手动模式时有效(对应结构体NET_CTRL_RAINBRUSH_MOVECONTINUOUSLY)
+ public static final int CTRLTYPE_CTRL_RAINBRUSH_STOPMOVE = CTRLTYPE_CTRL_RAINBRUSH_MOVECONTINUOUSLY+1; // 雨刷停止刷,雨刷模式配置为手动模式时有效(对应结构体NET_CTRL_RAINBRUSH_STOPMOVE)
+ public static final int CTRLTYPE_CTRL_ALARM_ACK = CTRLTYPE_CTRL_RAINBRUSH_STOPMOVE+1; // 报警事件确认(对应结构体NET_CTRL_ALARM_ACK)
+ // NET_CTRL_ALARM_ACK 该操作切勿在报警回调接口中调用
+ public static final int CTRLTYPE_CTRL_RECORDSET_IMPORT = CTRLTYPE_CTRL_ALARM_ACK + 1; // 批量导入记录集信息(对应 NET_CTRL_RECORDSET_PARAM )
+ public static final int CTRLTYPE_CTRL_DELIVERY_FILE = CTRLTYPE_CTRL_RECORDSET_IMPORT + 1; // 向视频输出口投放视频和图片文件, 楼宇对讲使用,同一时间投放(对应 NET_CTRL_DELIVERY_FILE )
+ public static final int CTRLTYPE_CTRL_FORCE_BREAKING = CTRLTYPE_CTRL_DELIVERY_FILE + 1; // 强制产生违章类型(对应 NET_CTRL_FORCE_BREAKING)
+ public static final int CTRLTYPE_CTRL_RESTORE_EXCEPT = CTRLTYPE_CTRL_FORCE_BREAKING + 1; // 恢复除指定配置外的其他配置为默认。
+ public static final int CTRLTYPE_CTRL_SET_PARK_INFO = CTRLTYPE_CTRL_RESTORE_EXCEPT + 1; // 设置停车信息,平台设置给相机,内容用于点阵屏显示(对应结构体 NET_CTRL_SET_PARK_INFO)
+ public static final int CTRLTYPE_CTRL_CLEAR_SECTION_STAT = CTRLTYPE_CTRL_SET_PARK_INFO + 1; // 清除当前时间段内人数统计信息, 重新从0开始计算(对应结构体NET_CTRL_CLEAR_SECTION_STAT_INFO)
+ public static final int CTRLTYPE_CTRL_DELIVERY_FILE_BYCAR = CTRLTYPE_CTRL_CLEAR_SECTION_STAT + 1; // 向视频输出口投放视频和图片文件, 车载使用,广告单独时间投放(对应NET_CTRL_DELIVERY_FILE_BYCAR)
+ public static final int CTRLTYPE_CTRL_ECK_GUIDINGPANEL_CONTENT = CTRLTYPE_CTRL_DELIVERY_FILE_BYCAR + 1; // 设置诱导屏显示内容(对应结构体 NET_CTRL_ECK_GUIDINGPANEL_CONTENT)
+ public static final int CTRLTYPE_CTRL_SET_SAFE_LEVEL = CTRLTYPE_CTRL_ECK_GUIDINGPANEL_CONTENT + 1; // 设置门禁安全等级(对应结构体,pInBuf= NET_IN_SET_SAFE_LEVEL*, pOutBuf= NET_OUT_SET_SAFE_LEVEL * )
+ public static final int CTRLTYPE_CTRL_VTP_INVITEACK = CTRLTYPE_CTRL_SET_SAFE_LEVEL + 1; // 对讲请求回复(对应结构体 NET_CTRL_VTP_INVITEACK)
+ public static final int CTRLTYPE_CTRL_ACCESS_RESET_PASSWORD = CTRLTYPE_CTRL_VTP_INVITEACK + 1; // 门禁控制-重置密码(对应结构体 NET_CTRL_ACCESS_RESET_PASSWORD)
+ public static final int CTRLTYPE_CTRL_ACCESS_CALL_LIFT = CTRLTYPE_CTRL_ACCESS_RESET_PASSWORD+1; // 门禁控制-呼梯(对应结构体 NET_CTRL_ACCESS_CALL_LIFT)
+ /**
+ * 以下命令只在 CLIENT_ControlDeviceEx 上有效
+ */
+ public static final int CTRLTYPE_CTRL_THERMO_GRAPHY_ENSHUTTER = 0x10000; // 设置热成像快门启用/禁用,pInBuf= NET_IN_THERMO_EN_SHUTTER*, pOutBuf= NET_OUT_THERMO_EN_SHUTTER *
+ public static final int CTRLTYPE_CTRL_RADIOMETRY_SETOSDMARK = CTRLTYPE_CTRL_THERMO_GRAPHY_ENSHUTTER+1; // 设置测温项的osd为高亮,pInBuf=NET_IN_RADIOMETRY_SETOSDMARK*,pOutBuf= NET_OUT_RADIOMETRY_SETOSDMARK *
+ public static final int CTRLTYPE_CTRL_AUDIO_REC_START_NAME = CTRLTYPE_CTRL_RADIOMETRY_SETOSDMARK+1; // 开启音频录音并得到录音名,pInBuf = NET_IN_AUDIO_REC_MNG_NAME *, pOutBuf = NET_OUT_AUDIO_REC_MNG_NAME *
+ public static final int CTRLTYPE_CTRL_AUDIO_REC_STOP_NAME = CTRLTYPE_CTRL_AUDIO_REC_START_NAME+1; // 关闭音频录音并返回文件名称,pInBuf = NET_IN_AUDIO_REC_MNG_NAME *, pOutBuf = NET_OUT_AUDIO_REC_MNG_NAME *
+ public static final int CTRLTYPE_CTRL_SNAP_MNG_SNAP_SHOT = CTRLTYPE_CTRL_AUDIO_REC_STOP_NAME+1; // 即时抓图(又名手动抓图),pInBuf =NET_IN_SNAP_MNG_SHOT *, pOutBuf = NET_OUT_SNAP_MNG_SHOT *
+ public static final int CTRLTYPE_CTRL_LOG_STOP = CTRLTYPE_CTRL_SNAP_MNG_SNAP_SHOT+1; // 强制同步缓存数据到数据库并关闭数据库,pInBuf = NET_IN_LOG_MNG_CTRL *, pOutBuf = NET_OUT_LOG_MNG_CTRL *
+ public static final int CTRLTYPE_CTRL_LOG_RESUME = CTRLTYPE_CTRL_LOG_STOP+1; // 恢复数据库,pInBuf = NET_IN_LOG_MNG_CTRL *, pOutBuf = NET_OUT_LOG_MNG_CTRL *
+ public static final int CTRLTYPE_CTRL_POS_ADD = CTRLTYPE_CTRL_LOG_RESUME + 1; // 增加一个Pos设备, pInBuf = NET_IN_POS_ADD *, pOutBuf = NET_OUT_POS_ADD *
+ public static final int CTRLTYPE_CTRL_POS_REMOVE = CTRLTYPE_CTRL_POS_ADD + 1; // 删除一个Pos设备, pInBuf = NET_IN_POS_REMOVE *, pOutBuf = NET_OUT_POS_REMOVE *
+ public static final int CTRLTYPE_CTRL_POS_REMOVE_MULTI = CTRLTYPE_CTRL_POS_REMOVE + 1; // 批量删除Pos设备, pInBuf = NET_IN_POS_REMOVE_MULTI *, pOutBuf = NET_OUT_POS_REMOVE_MULTI *
+ public static final int CTRLTYPE_CTRL_POS_MODIFY = CTRLTYPE_CTRL_POS_REMOVE_MULTI + 1; // 修改一个Pos设备, pInBuf = NET_IN_POS_ADD *, pOutBuf = NET_OUT_POS_ADD *
+ public static final int CTRLTYPE_CTRL_SET_SOUND_ALARM = CTRLTYPE_CTRL_POS_MODIFY + 1; // 触发有声报警, pInBuf = NET_IN_SOUND_ALARM *, pOutBuf = NET_OUT_SOUND_ALARM *
+ public static final int CTRLTYPE_CTRL_AUDIO_MATRIX_SILENCE = CTRLTYPE_CTRL_SET_SOUND_ALARM + 1; // 音频举证一键静音控制(对应pInBuf = NET_IN_AUDIO_MATRIX_SILENCE, pOutBuf = NET_OUT_AUDIO_MATRIX_SILENCE)
+ public static final int CTRLTYPE_CTRL_MANUAL_UPLOAD_PICTURE = CTRLTYPE_CTRL_AUDIO_MATRIX_SILENCE + 1; // 设置手动上传, pInBuf = NET_IN_MANUAL_UPLOAD_PICTURE *, pOutBUf = NET_OUT_MANUAL_UPLOAD_PICTURE *
+ public static final int CTRLTYPE_CTRL_REBOOT_NET_DECODING_DEV = CTRLTYPE_CTRL_MANUAL_UPLOAD_PICTURE + 1; // 重启网络解码设备, pInBuf = NET_IN_REBOOT_NET_DECODING_DEV *, pOutBuf = NET_OUT_REBOOT_NET_DECODING_DEV *
+ public static final int CTRLTYPE_CTRL_SET_IC_SENDER = CTRLTYPE_CTRL_REBOOT_NET_DECODING_DEV + 1; // ParkingControl 设置发卡设备, pInBuf = NET_IN_SET_IC_SENDER *, pOutBuf = NET_OUT_SET_IC_SENDER *
+ public static final int CTRLTYPE_CTRL_SET_MEDIAKIND = CTRLTYPE_CTRL_SET_IC_SENDER + 1; // 设置预览码流组成,如仅音频,仅视频,音视频 pInBuf = NET_IN_SET_MEDIAKIND *, pOutBuf = NET_OUT_SET_MEDIAKIND *// 配合功能列表能力集使用, EN_ENCODE_CHN,2-预览支持音视频分开获取
+ public static final int CTRLTYPE_CTRL_LOWRATEWPAN_ADD = CTRLTYPE_CTRL_SET_MEDIAKIND + 1; // 增加无线设备信息(对应结构体 pInBuf = NET_CTRL_LOWRATEWPAN_ADD *, pOutBUf = NULL)
+ public static final int CTRLTYPE_CTRL_LOWRATEWPAN_REMOVEALL = CTRLTYPE_CTRL_LOWRATEWPAN_ADD + 1; // 删除所有的无线设备信息(对应结构体 pInBuf = NET_CTRL_LOWRATEWPAN_REMOVEALL *, pOutBUf = NULL)
+ public static final int CTRLTYPE_CTRL_SET_DOOR_WORK_MODE = CTRLTYPE_CTRL_LOWRATEWPAN_REMOVEALL + 1; // 设置门锁工作模式(对应结构体 pInBuf = NET_IN_CTRL_ACCESS_SET_DOOR_WORK_MODE *, pOutBUf = NULL)
+ public static final int CTRLTYPE_CTRL_TEST_MAIL = CTRLTYPE_CTRL_SET_DOOR_WORK_MODE + 1; // 测试邮件 pInBuf = NET_IN_TEST_MAIL *, pOutBUf = NET_OUT_TEST_MAIL *
+ public static final int CTRLTYPE_CTRL_CONTROL_SMART_SWITCH = CTRLTYPE_CTRL_TEST_MAIL + 1; // 控制智能开关 pInBuf = NET_IN_CONTROL_SMART_SWITCH *, pOutBUf = NET_OUT_CONTROL_SMART_SWITCH *
+ public static final int CTRLTYPE_CTRL_LOWRATEWPAN_SETWORKMODE = CTRLTYPE_CTRL_CONTROL_SMART_SWITCH + 1; // 设置探测器的工作模式(对应结构体pInBuf = NET_IN_CTRL_LOWRATEWPAN_SETWORKMODE *, pOutBUf = NULL)
+ public static final int CTRLTYPE_CTRL_COAXIAL_CONTROL_IO = CTRLTYPE_CTRL_LOWRATEWPAN_SETWORKMODE + 1; // 发送同轴IO控制命令(对应结构体pInBuf = NET_IN_CONTROL_COAXIAL_CONTROL_IO*, pOutBUf = NET_OUT_CONTROL_COAXIAL_CONTROL_IO*)
+ public static final int CTRLTYPE_CTRL_START_REMOTELOWRATEWPAN_ALARMBELL = CTRLTYPE_CTRL_COAXIAL_CONTROL_IO + 1; // 开启无线警号 (对应结构体pInBuf = NET_IN_START_REMOTELOWRATEWPAN_ALARMBELL*, pOutBUf = NET_OUT_START_REMOTELOWRATEWPAN_ALARMBELL*)
+ public static final int CTRLTYPE_CTRL_STOP_REMOTELOWRATEWPAN_ALARMBELL = CTRLTYPE_CTRL_START_REMOTELOWRATEWPAN_ALARMBELL + 1; // 关闭无线警号 (对应结构体pInBuf = NET_IN_STOP_REMOTELOWRATEWPAN_ALARMBELL*, pOutBUf = NET_OUT_STOP_REMOTELOWRATEWPAN_ALARMBELL*)
+ public static final int CTRLTYPE_CTRL_THERMO_DO_FFC = CTRLTYPE_CTRL_STOP_REMOTELOWRATEWPAN_ALARMBELL + 1; // 热成像FFC校准(对应结构体 pInBuf = NET_IN_THERMO_DO_FFC *,pOutBuf = NET_OUT_THERMO_DO_FFC *)
+ public static final int CTRLTYPE_CTRL_THERMO_FIX_FOCUS = CTRLTYPE_CTRL_THERMO_DO_FFC + 1; // 热成像双目定焦调(对应结构体 pInBuf = NET_IN_THERMO_FIX_FOCUS *,pOutBuf = NET_OUT_THERMO_FIX_FOCUS *)
+ public static final int CTRLTYPE_CTRL_SET_THIRD_CALLSTATUS = CTRLTYPE_CTRL_THERMO_FIX_FOCUS + 1; // 设置对讲状态(对应结构体pInBuf = NET_IN_VTP_THIRDCALL_STATUS*, pOutBuf = NET_OUT_VTP_THIRDCALL_STATUS*)
+ public static final int CTRL_ACCESS_CLEAR_STATUS = CTRLTYPE_CTRL_SET_THIRD_CALLSTATUS + 1; // 门禁-清除用户进出门状态 (对应结构体pInBuf = NET_IN_ACCESS_CLEAR_STATUS*, pOutBuf = NET_OUT_ACCESS_CLEAR_STATUS *)
+ public static final int CTRL_ACCESS_DEAL_RECORD = CTRL_ACCESS_CLEAR_STATUS + 1; // 门禁-查询/设置用户进出门记录 (对应结构体pInBuf = NET_IN_ACCESS_DEAL_RECORD*, pOutBuf = NET_OUT_ACCESS_DEAL_RECORD*)
+ public static final int CTRL_QUERY_DELIVERED_FILE = CTRL_ACCESS_DEAL_RECORD + 1; // 向视频输出口查询广告信息,楼宇对讲使用,(对应NET_CTRL_QUERY_DELIVERY_FILE)
+ public static final int CTRL_SET_PARK_CONTROL_INFO = CTRL_QUERY_DELIVERED_FILE + 1; // 设置停车控制信息(点阵屏和语音播报的控制)(对应结构体pInBuf = NET_IN_SET_PARK_CONTROL_INFO*, pOutBuf = NET_OUT_SET_PARK_CONTROL_INFO*)
+ /**********LowRateWPAN控制(0x10100-0x10150)**********************************************************************************/
+ public static final int CTRL_LOWRATEWPAN_GETWIRELESSDEVSIGNAL = 0x10100; // 获取无线设备信号强度(对应结构体 pInBuf = NET_IN_CTRL_LOWRATEWPAN_GETWIRELESSDEVSIGNAL *,pOutBuf = NET_OUT_CTRL_LOWRATEWPAN_GETWIRELESSDEVSIGNAL *)
+ public static final int CTRL_LOWRATEWPAN_SET_ACCESSORY_PARAM = CTRL_LOWRATEWPAN_GETWIRELESSDEVSIGNAL+1; // 设置配件信息(对应结构体pInBuf = NET_IN_CTRL_LOWRATEWPAN_ACCESSORY_PARAM *,pOutBuf = NULL)
+ }
+
+ // 视频压缩格式
+ public static class CFG_VIDEO_COMPRESSION extends SdkStructure
+ {
+ public static final int VIDEO_FORMAT_MPEG4 = 0; //MPEG4
+ public static final int VIDEO_FORMAT_MS_MPEG4 = VIDEO_FORMAT_MPEG4+1; //MS-MPEG4
+ public static final int VIDEO_FORMAT_MPEG2 = VIDEO_FORMAT_MS_MPEG4+1; //MPEG2
+ public static final int VIDEO_FORMAT_MPEG1 = VIDEO_FORMAT_MPEG2+1; //MPEG1
+ public static final int VIDEO_FORMAT_H263 = VIDEO_FORMAT_MPEG1+1; //H.263
+ public static final int VIDEO_FORMAT_MJPG = VIDEO_FORMAT_H263+1; //MJPG
+ public static final int VIDEO_FORMAT_FCC_MPEG4 = VIDEO_FORMAT_MJPG+1; //FCC-MPEG4
+ public static final int VIDEO_FORMAT_H264 = VIDEO_FORMAT_FCC_MPEG4+1; //H.264
+ public static final int VIDEO_FORMAT_H265 = VIDEO_FORMAT_H264+1; //H.265
+ }
+
+ // 码流控制模式
+ public static class CFG_BITRATE_CONTROL extends SdkStructure
+ {
+ public static final int BITRATE_CBR = 0; //固定码流
+ public static final int BITRATE_VBR = BITRATE_CBR+1; //可变码流
+ }
+
+ // H264 编码级别
+ public static class CFG_H264_PROFILE_RANK extends SdkStructure
+ {
+ public static final int PROFILE_BASELINE = 1; //提供I/P帧,仅支持progressive(逐行扫描)和CAVLC
+ public static final int PROFILE_MAIN = PROFILE_BASELINE+1; //提供I/P/B帧,支持progressiv和interlaced,提供CAVLC或CABAC
+ public static final int PROFILE_EXTENDED = PROFILE_MAIN+1; //提供I/P/B/SP/SI帧,仅支持progressive(逐行扫描)和CAVLC
+ public static final int PROFILE_HIGH = PROFILE_EXTENDED+1; //即FRExt,Main_Profile基础上新增:8x8intraprediction(8x8帧内预测), custom
+ // quant(自定义量化), lossless video coding(无损视频编码), 更多的yuv格式
+ }
+
+ // 画质
+ public static class CFG_IMAGE_QUALITY extends SdkStructure
+ {
+ public static final int IMAGE_QUALITY_Q10 = 1; //图像质量10%
+ public static final int IMAGE_QUALITY_Q30 = IMAGE_QUALITY_Q10+1; //图像质量30%
+ public static final int IMAGE_QUALITY_Q50 = IMAGE_QUALITY_Q30+1; //图像质量50%
+ public static final int IMAGE_QUALITY_Q60 = IMAGE_QUALITY_Q50+1; //图像质量60%
+ public static final int IMAGE_QUALITY_Q80 = IMAGE_QUALITY_Q60+1; //图像质量80%
+ public static final int IMAGE_QUALITY_Q100 = IMAGE_QUALITY_Q80+1; //图像质量100%
+ }
+
+ // 视频格式
+ public static class CFG_VIDEO_FORMAT extends SdkStructure
+ {
+ // 能力
+ public byte abCompression; // 类型为bool, 取值0或1
+ public byte abWidth; // 类型为bool, 取值0或1
+ public byte abHeight; // 类型为bool, 取值0或1
+ public byte abBitRateControl; // 类型为bool, 取值0或1
+ public byte abBitRate; // 类型为bool, 取值0或1
+ public byte abFrameRate; // 类型为bool, 取值0或1
+ public byte abIFrameInterval; // 类型为bool, 取值0或1
+ public byte abImageQuality; // 类型为bool, 取值0或1
+ public byte abFrameType; // 类型为bool, 取值0或1
+ public byte abProfile; // 类型为bool, 取值0或1
+ // 信息
+ public int emCompression; //视频压缩格式, 取值为CFG_VIDEO_COMPRESSION中的值
+ public int nWidth; //视频宽度
+ public int nHeight; //视频高度
+ public int emBitRateControl; //码流控制模式, 取值为CFG_BITRATE_CONTROL中的值
+ public int nBitRate; //视频码流(kbps)
+ public float nFrameRate; //视频帧率
+ public int nIFrameInterval; //I帧间隔(1-100),比如50表示每49个B帧或P帧,设置一个I帧。
+ public int emImageQuality; //图像质量, 取值为CFG_IMAGE_QUALITY中的值
+ public int nFrameType; //打包模式,0-DHAV,1-"PS"
+ public int emProfile; //H.264编码级别, 取值为CFG_H264_PROFILE_RANK中的值
+ public int nMaxBitrate; // 最大码流单位是kbps(博世专用)
+ }
+
+ // 音频编码模式
+ public static class CFG_AUDIO_FORMAT extends SdkStructure
+ {
+ public static final int AUDIO_FORMAT_G711A = 0; //G711a
+ public static final int AUDIO_FORMAT_PCM = AUDIO_FORMAT_G711A+1; //PCM
+ public static final int AUDIO_FORMAT_G711U = AUDIO_FORMAT_PCM+1; //G711u
+ public static final int AUDIO_FORMAT_AMR = AUDIO_FORMAT_G711U+1; //AMR
+ public static final int AUDIO_FORMAT_AAC = AUDIO_FORMAT_AMR+1; //AAC
+ }
+
+ // 音频格式
+ public static class CFG_AUDIO_ENCODE_FORMAT extends SdkStructure
+ {
+ // 能力
+ public byte abCompression; // 类型为bool, 取值0或1
+ public byte abDepth; // 类型为bool, 取值0或1
+ public byte abFrequency; // 类型为bool, 取值0或1
+ public byte abMode; // 类型为bool, 取值0或1
+ public byte abFrameType; // 类型为bool, 取值0或1
+ public byte abPacketPeriod; // 类型为bool, 取值0或1
+ public byte abChannels; // 类型为bool, 取值0或1
+ public byte abMix; // 类型为bool, 取值0或1
+ // 信息
+ public int emCompression; //音频压缩模式,取值为CFG_AUDIO_FORMAT中的值
+ public int nDepth; //音频采样深度
+ public int nFrequency; //音频采样频率
+ public int nMode; //音频编码模式
+ public int nFrameType; //音频打包模式,0-DHAV,1-PS
+ public int nPacketPeriod; //音频打包周期,ms
+ public int nChannelsNum; // 视频通道的伴音通道号列表个数
+ public int arrChannels[] = new int[8]; // 视频通道的伴音通道号列表
+ public int bMix; // 是否同源
+ }
+
+ // 视频编码参数
+ public static class CFG_VIDEOENC_OPT extends SdkStructure
+ {
+ // 能力
+ public byte abVideoEnable; // 类型为bool, 取值0或1
+ public byte abAudioEnable; // 类型为bool, 取值0或1
+ public byte abSnapEnable; // 类型为bool, 取值0或1
+ public byte abAudioAdd; //音频叠加能力, 类型为bool, 取值0或1
+ public byte abAudioFormat; // 类型为bool, 取值0或1
+ // 信息
+ public int bVideoEnable; //视频使能, 类型为BOOL, 取值0或者1
+ public CFG_VIDEO_FORMAT stuVideoFormat; //视频格式
+ public int bAudioEnable; //音频使能, 类型为BOOL, 取值0或者1
+ public int bSnapEnable; //定时抓图使能, 类型为BOOL, 取值0或者1
+ public int bAudioAddEnable; //音频叠加使能, 类型为BOOL, 取值0或者1
+ public CFG_AUDIO_ENCODE_FORMAT stuAudioFormat; //音频格式
+ }
+
+ // 遮挡信息
+ public static class CFG_COVER_INFO extends SdkStructure
+ {
+ // 能力
+ public byte abBlockType; // 类型为bool, 取值0或1
+ public byte abEncodeBlend; // 类型为bool, 取值0或1
+ public byte abPreviewBlend; // 类型为bool, 取值0或1
+ // 信息
+ public CFG_RECT stuRect = new CFG_RECT(); //覆盖的区域坐标
+ public CFG_RGBA stuColor = new CFG_RGBA(); //覆盖的颜色
+ public int nBlockType; //覆盖方式;0-黑块,1-马赛克
+ public int nEncodeBlend; //编码级遮挡;1-生效,0-不生效
+ public int nPreviewBlend; //预览遮挡;1-生效,0-不生效
+ }
+
+ // 多区域遮挡配置
+ public static class CFG_VIDEO_COVER extends SdkStructure
+ {
+ public int nTotalBlocks; //支持的遮挡块数
+ public int nCurBlocks; //已设置的块数
+ public CFG_COVER_INFO[] stuCoverBlock = (CFG_COVER_INFO[])new CFG_COVER_INFO().toArray(MAX_VIDEO_COVER_NUM); // 覆盖的区域
+ }
+
+ // OSD信息
+ public static class CFG_OSD_INFO extends SdkStructure
+ {
+ // 能力
+ public byte abShowEnable; // 类型为bool, 取值0或1
+ // 信息
+ public CFG_RGBA stuFrontColor = new CFG_RGBA(); //前景颜色
+ public CFG_RGBA stuBackColor = new CFG_RGBA(); //背景颜色
+ public CFG_RECT stuRect = new CFG_RECT(); //矩形区域
+ public int bShowEnable; //显示使能, 类型为BOOL, 取值0或者1
+ }
+
+ // 画面颜色属性
+ public static class CFG_COLOR_INFO extends SdkStructure
+ {
+ public int nBrightness; //亮度(0-100)
+ public int nContrast; //对比度(0-100)
+ public int nSaturation; //饱和度(0-100)
+ public int nHue; //色度(0-100)
+ public int nGain; //增益(0-100)
+ public int bGainEn; //增益使能, 类型为BOOL, 取值0或者1
+ }
+
+ // 图像通道属性信息
+ public static class CFG_ENCODE_INFO extends SdkStructure
+ {
+ public int nChannelID; //通道号(0开始),获取时,该字段有效;设置时,该字段无效
+ public byte[] szChnName = new byte[MAX_CHANNELNAME_LEN]; //无效字段
+ public CFG_VIDEOENC_OPT[] stuMainStream = (CFG_VIDEOENC_OPT[])new CFG_VIDEOENC_OPT().toArray(MAX_VIDEOSTREAM_NUM); // 主码流,0-普通录像,1-动检录像,2-报警录像
+ public int nValidCountMainStream; // 主码流数组中有效的个数
+ public CFG_VIDEOENC_OPT[] stuExtraStream = (CFG_VIDEOENC_OPT[])new CFG_VIDEOENC_OPT().toArray(MAX_VIDEOSTREAM_NUM); // 辅码流,0-辅码流1,1-辅码流2,2-辅码流3
+ public int nValidCountExtraStream; // 辅码流数组中有效的个数
+ public CFG_VIDEOENC_OPT[] stuSnapFormat = (CFG_VIDEOENC_OPT[])new CFG_VIDEOENC_OPT().toArray(MAX_VIDEOSTREAM_NUM); // 抓图,0-普通抓图,1-动检抓图,2-报警抓图
+ public int nValidCountSnapFormat; // 抓图数组中有效的个数
+ public int dwCoverAbilityMask; //无效字段
+ public int dwCoverEnableMask; //无效字段
+ public CFG_VIDEO_COVER stuVideoCover; //无效字段
+ public CFG_OSD_INFO stuChnTitle; //无效字段
+ public CFG_OSD_INFO stuTimeTitle; //无效字段
+ public CFG_COLOR_INFO stuVideoColor; //无效字段
+ public int emAudioFormat; //无效字段, 取值为CFG_AUDIO_FORMAT中的值
+ public int nProtocolVer; //协议版本号,只读,获取时,该字段有效;设置时,该字段无效
+ public int bIsUseExtraStreamEx; //是否使用辅码流扩展
+ public CFG_VIDEOENC_OPT[] stuExtraStreamEx = new CFG_VIDEOENC_OPT[12]; //辅码流扩展,0-辅码流1,1-辅码流2,2-辅码流3,3-辅码流4,4-辅码流5,5-辅码流6,6-辅码流7,7-辅码流8,8-辅码流9,9-辅码流10,10-辅码流11,11-辅码流12,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.CFG_VIDEOENC_OPT}
+ public int nValidCountExtraStreamEx; //辅码流扩展数组中有效的个数
+ public byte[] szReserved = new byte[120]; //保留字节
+ }
+
+ // 设备软件版本信息,高16位表示主版本号,低16位表示次版本号
+ public static class NET_VERSION_INFO extends SdkStructure
+ {
+ public int dwSoftwareVersion;
+ public int dwSoftwareBuildDate;
+ public int dwDspSoftwareVersion;
+ public int dwDspSoftwareBuildDate;
+ public int dwPanelVersion;
+ public int dwPanelSoftwareBuildDate;
+ public int dwHardwareVersion;
+ public int dwHardwareDate;
+ public int dwWebVersion;
+ public int dwWebBuildDate;
+ }
+
+ // 设备软件版本信息,对应CLIENT_QueryDevState接口
+ public static class NETDEV_VERSION_INFO extends SdkStructure
+ {
+ public byte[] szDevSerialNo = new byte[NET_DEV_SERIALNO_LEN]; // 序列号
+ public int byDevType; // 设备类型,见枚举 NET_DEVICE_TYPE
+ public byte[] szDevType = new byte[NET_DEV_TYPE_LEN]; // 设备详细型号,字符串格式,可能为空
+ public int nProtocalVer; // 协议版本号
+ public byte[] szSoftWareVersion = new byte[NET_MAX_URL_LEN];
+ public int dwSoftwareBuildDate;
+ public byte[] szPeripheralSoftwareVersion = new byte[NET_MAX_URL_LEN]; // 从片版本信息,字符串格式,可能为空
+ public int dwPeripheralSoftwareBuildDate;
+ public byte[] szGeographySoftwareVersion = new byte[NET_MAX_URL_LEN]; // 地理信息定位芯片版本信息,字符串格式,可能为空
+ public int dwGeographySoftwareBuildDate;
+ public byte[] szHardwareVersion = new byte[NET_MAX_URL_LEN];
+ public int dwHardwareDate;
+ public byte[] szWebVersion = new byte[NET_MAX_URL_LEN];
+ public int dwWebBuildDate;
+ public byte[] reserved = new byte[256];
+ }
+
+ // 设备类型
+ public static class NET_DEVICE_TYPE extends SdkStructure
+ {
+ public static final int NET_PRODUCT_NONE = 0;
+ public static final int NET_DVR_NONREALTIME_MACE = 1; // 非实时MACE
+ public static final int NET_DVR_NONREALTIME = 2; // 非实时
+ public static final int NET_NVS_MPEG1 = 3; // 网络视频服务器
+ public static final int NET_DVR_MPEG1_2 = 4; // MPEG1二路录像机
+ public static final int NET_DVR_MPEG1_8 = 5; // MPEG1八路录像机
+ public static final int NET_DVR_MPEG4_8 = 6; // MPEG4八路录像机
+ public static final int NET_DVR_MPEG4_16 = 7; // MPEG4十六路录像机
+ public static final int NET_DVR_MPEG4_SX2 = 8; // LB系列录像机
+ public static final int NET_DVR_MEPG4_ST2 = 9; // GB系列录像机
+ public static final int NET_DVR_MEPG4_SH2 = 10; // HB系列录像机 10
+ public static final int NET_DVR_MPEG4_GBE = 11; // GBE系列录像机
+ public static final int NET_DVR_MPEG4_NVSII = 12; // II代网络视频服务器
+ public static final int NET_DVR_STD_NEW = 13; // 新标准配置协议
+ public static final int NET_DVR_DDNS = 14; // DDNS服务器
+ public static final int NET_DVR_ATM = 15; // ATM机
+ public static final int NET_NB_SERIAL = 16; // 二代非实时NB系列机器
+ public static final int NET_LN_SERIAL = 17; // LN系列产品
+ public static final int NET_BAV_SERIAL = 18; // BAV系列产品
+ public static final int NET_SDIP_SERIAL = 19; // SDIP系列产品
+ public static final int NET_IPC_SERIAL = 20; // IPC系列产品 20
+ public static final int NET_NVS_B = 21; // NVS B系列
+ public static final int NET_NVS_C = 22; // NVS H系列
+ public static final int NET_NVS_S = 23; // NVS S系列
+ public static final int NET_NVS_E = 24; // NVS E系列
+ public static final int NET_DVR_NEW_PROTOCOL = 25; // 从QueryDevState中查询设备类型,以字符串格式
+ public static final int NET_NVD_SERIAL = 26; // 解码器
+ public static final int NET_DVR_N5 = 27; // N5
+ public static final int NET_DVR_MIX_DVR = 28; // 混合DVR
+ public static final int NET_SVR_SERIAL = 29; // SVR系列
+ public static final int NET_SVR_BS = 30; // SVR-BS 30
+ public static final int NET_NVR_SERIAL = 31; // NVR系列
+ public static final int NET_DVR_N51 = 32; // N51
+ public static final int NET_ITSE_SERIAL = 33; // ITSE 智能分析盒
+ public static final int NET_ITC_SERIAL = 34; // 智能交通像机设备
+ public static final int NET_HWS_SERIAL = 35; // 雷达测速仪HWS
+ public static final int NET_PVR_SERIAL = 36; // 便携式音视频录像机
+ public static final int NET_IVS_SERIAL = 37; // IVS(智能视频服务器系列)
+ public static final int NET_IVS_B = 38; // 通用智能视频侦测服务器
+ public static final int NET_IVS_F = 39; // 目标识别服务器
+ public static final int NET_IVS_V = 40; // 视频质量诊断服务器 40
+ public static final int NET_MATRIX_SERIAL = 41; // 矩阵
+ public static final int NET_DVR_N52 = 42; // N52
+ public static final int NET_DVR_N56 = 43; // N56
+ public static final int NET_ESS_SERIAL = 44; // ESS
+ public static final int NET_IVS_PC = 45; // 人数统计服务器
+ public static final int NET_PC_NVR = 46; // pc-nvr
+ public static final int NET_DSCON = 47; // 大屏控制器
+ public static final int NET_EVS = 48; // 网络视频存储服务器
+ public static final int NET_EIVS = 49; // 嵌入式智能分析视频系统
+ public static final int NET_DVR_N6 = 50; // DVR-N6 50
+ public static final int NET_UDS = 51; // 万能解码器
+ public static final int NET_AF6016 = 52; // 银行报警主机
+ public static final int NET_AS5008 = 53; // 视频网络报警主机
+ public static final int NET_AH2008 = 54; // 网络报警主机
+ public static final int NET_A_SERIAL = 55; // 报警主机系列
+ public static final int NET_BSC_SERIAL = 56; // 门禁系列产品
+ public static final int NET_NVS_SERIAL = 57; // NVS系列产品
+ public static final int NET_VTO_SERIAL = 58; // VTO系列产品
+ public static final int NET_VTNC_SERIAL = 59; // VTNC系列产品
+ public static final int NET_TPC_SERIAL = 60; // TPC系列产品, 即热成像设备 60
+ public static final int NET_ASM_SERIAL = 61; // 无线中继设备
+ public static final int NET_VTS_SERIAL = 62; // 管理机
+ }
+
+ // DSP能力描述,对应CLIENT_GetDevConfig接口
+ public static class NET_DSP_ENCODECAP extends SdkStructure
+ {
+ public int dwVideoStandardMask; //视频制式掩码,按位表示设备能够支持的视频制式
+ public int dwImageSizeMask; //分辨率掩码,按位表示设备能够支持的分辨率设置
+ public int dwEncodeModeMask; //编码模式掩码,按位表示设备能够支持的编码模式设置
+ public int dwStreamCap; // 按位表示设备支持的多媒体功能,
+ // 第一位表示支持主码流
+ // 第二位表示支持辅码流1
+ // 第三位表示支持辅码流2
+ // 第五位表示支持jpg抓图
+ public int[] dwImageSizeMask_Assi = new int[8]; //表示主码流为各分辨率时,支持的辅码流分辨率掩码。
+ public int dwMaxEncodePower; //DSP支持的最高编码能力
+ public short wMaxSupportChannel; //每块DSP支持最多输入视频通道数
+ public short wChannelMaxSetSync; //DSP每通道的最大编码设置是否同步;0:不同步,1:同步
+ }
+
+ // 系统信息
+ public static class NET_DEV_SYSTEM_ATTR_CFG extends SdkStructure
+ {
+ public int dwSize;
+ /* 下面是设备的只读部分 */
+ public NET_VERSION_INFO stVersion;
+ public NET_DSP_ENCODECAP stDspEncodeCap; //DSP能力描述
+ public byte[] szDevSerialNo = new byte[NET_DEV_SERIALNO_LEN]; //序列号
+ public byte byDevType; //设备类型,见枚举NET_DEVICE_TYPE
+ public byte[] szDevType = new byte[NET_DEV_TYPE_LEN]; //设备详细型号,字符串格式,可能为空
+ public byte byVideoCaptureNum; //视频口数量
+ public byte byAudioCaptureNum; //音频口数量
+ public byte byTalkInChanNum; //对讲输入接口数量
+ public byte byTalkOutChanNum; //对讲输出接口数量
+ public byte byDecodeChanNum; //NSP
+ public byte byAlarmInNum; //报警输入口数
+ public byte byAlarmOutNum; //报警输出口数
+ public byte byNetIONum; //网络口数
+ public byte byUsbIONum; //USB口数量
+ public byte byIdeIONum; //IDE数量
+ public byte byComIONum; //串口数量
+ public byte byLPTIONum; //并口数量
+ public byte byVgaIONum; //NSP
+ public byte byIdeControlNum; //NSP
+ public byte byIdeControlType; //NSP
+ public byte byCapability; //NSP,扩展描述
+ public byte byMatrixOutNum; //视频矩阵输出口数
+ /* 下面是设备的可写部分 */
+ public byte byOverWrite; //硬盘满处理方式(覆盖、停止)
+ public byte byRecordLen; //录象打包长度
+ public byte byDSTEnable; //是否实行夏令时1-实行0-不实行
+ public short wDevNo; //设备编号,用于遥控
+ public byte byVideoStandard; //视频制式:0-PAL,1-NTSC
+ public byte byDateFormat; //日期格式
+ public byte byDateSprtr; //日期分割符(0:".",1:"-",2:"/")
+ public byte byTimeFmt; //时间格式(0-24小时,1-12小时)
+ public byte byLanguage; //枚举值详见NET_LANGUAGE_TYPE
+
+ public NET_DEV_SYSTEM_ATTR_CFG()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 入侵方向
+ public static class EM_MSG_OBJ_PERSON_DIRECTION extends SdkStructure
+ {
+ public static final int EM_MSG_OBJ_PERSON_DIRECTION_UNKOWN = 0; //未知方向
+ public static final int EM_MSG_OBJ_PERSON_DIRECTION_LEFT_TO_RIGHT = EM_MSG_OBJ_PERSON_DIRECTION_UNKOWN+1; //从左向右
+ public static final int EM_MSG_OBJ_PERSON_DIRECTION_RIGHT_TO_LEFT = EM_MSG_OBJ_PERSON_DIRECTION_LEFT_TO_RIGHT+1; //从右向左
+ }
+
+ // 视频分析物体信息扩展结构体
+ public static class NET_MSG_OBJECT_EX extends SdkStructure
+ {
+ public int dwSize;
+ public int nObjectID; //物体ID,每个ID表示一个唯一的物体
+ public byte[] szObjectType = new byte[128]; //物体类型
+ public int nConfidence; //置信度(0~255),值越大表示置信度越高
+ public int nAction; //物体动作:1:Appear2:Move3:Stay 4:Remove 5:Disappear 6:Split 7:Merge 8:Rename
+ public DH_RECT BoundingBox; //包围盒
+ public NET_POINT Center; //物体型心
+ public int nPolygonNum; //多边形顶点个数
+ public NET_POINT[] Contour = (NET_POINT[])new NET_POINT().toArray(NET_MAX_POLYGON_NUM); // 较精确的轮廓多边形
+ public int rgbaMainColor; //表示车牌、车身等物体主要颜色;按字节表示,分别为红、绿、蓝和透明度,例如:RGB值为(0,255,0),透明度为0时,其值为0x00ff0000.
+ public byte[] szText = new byte[128]; //同NET_MSG_OBJECT相应字段
+ public byte[] szObjectSubType = new byte[64]; //物体子类别,根据不同的物体类型,可以取以下子类型:
+ // 同NET_MSG_OBJECT相应字段
+ public byte[] byReserved1 = new byte[3];
+ public byte bPicEnble; //是否有物体对应图片文件信息, 类型为bool, 取值0或1
+ public NET_PIC_INFO stPicInfo; //物体对应图片信息
+ public byte bShotFrame; //是否是抓拍张的识别结果, 类型为bool, 取值0或1
+ public byte bColor; //物体颜色(rgbaMainColor)是否可用, 类型为bool, 取值0或1
+ public byte bLowerBodyColor; //下半身颜色(rgbaLowerBodyColor)是否可用
+ public byte byTimeType; //时间表示类型,详见EM_TIME_TYPE说明
+ public NET_TIME_EX stuCurrentTime; //针对视频浓缩,当前时间戳(物体抓拍或识别时,会将此识别智能帧附在一个视频帧或jpeg图片中,此帧所在原始视频中的出现时间)
+ public NET_TIME_EX stuStartTime; //开始时间戳(物体开始出现时)
+ public NET_TIME_EX stuEndTime; //结束时间戳(物体最后出现时)
+ public DH_RECT stuOriginalBoundingBox; //包围盒(绝对坐标)
+ public DH_RECT stuSignBoundingBox; //车标坐标包围盒
+ public int dwCurrentSequence; //当前帧序号(抓下这个物体时的帧)
+ public int dwBeginSequence; //开始帧序号(物体开始出现时的帧序号)
+ public int dwEndSequence; //结束帧序号(物体消逝时的帧序号)
+ public long nBeginFileOffset; //开始时文件偏移,单位:字节(物体开始出现时,视频帧在原始视频文件中相对于文件起始处的偏移)
+ public long nEndFileOffset; //结束时文件偏移,单位:字节(物体消逝时,视频帧在原始视频文件中相对于文件起始处的偏移)
+ public byte[] byColorSimilar = new byte[EM_COLOR_TYPE.NET_COLOR_TYPE_MAX]; //物体颜色相似度,取值范围:0-100,数组下标值代表某种颜色,详见EM_COLOR_TYPE
+ public byte[] byUpperBodyColorSimilar = new byte[EM_COLOR_TYPE.NET_COLOR_TYPE_MAX]; //上半身物体颜色相似度(物体类型为人时有效)
+ public byte[] byLowerBodyColorSimilar = new byte[EM_COLOR_TYPE.NET_COLOR_TYPE_MAX]; //下半身物体颜色相似度(物体类型为人时有效)
+ public int nRelativeID; //相关物体ID
+ public byte[] szSubText = new byte[20]; //"ObjectType"为"Vehicle"或者"Logo"时,表示车标下的某一车系,比如奥迪A6L,由于车系较多,SDK实现时透传此字段,设备如实填写。
+ public int nPersonStature; //入侵人员身高,单位cm
+ public int emPersonDirection; //人员入侵方向, 取值为EM_MSG_OBJ_PERSON_DIRECTION中的值
+ public int rgbaLowerBodyColor; //使用方法同rgbaMainColor,物体类型为人时有效
+ public int nTextRegionID; //Text文本内容对应的区域编号
+
+ public NET_MSG_OBJECT_EX()
+ {
+ this.dwSize = this.size();
+ }
+
+ protected int getNativeAlignment(Class> type, Object value, boolean isFirstElement) {
+ int alignment = super.getNativeAlignment(type, value, isFirstElement);
+ return Math.min(4, alignment);
+ }
+ }
+
+ // 视频分析物体信息扩展结构体,扩展版本2
+ public static class NET_MSG_OBJECT_EX2 extends SdkStructure
+ {
+ public int dwSize;
+ public int nObjectID; //物体ID,每个ID表示一个唯一的物体
+ public byte[] szObjectType = new byte[128]; //物体类型
+ public int nConfidence; //置信度(0~255),值越大表示置信度越高
+ public int nAction; //物体动作:1:Appear2:Move3:Stay 4:Remove 5:Disappear 6:Split 7:Merge 8:Rename
+ public DH_RECT BoundingBox; //包围盒
+ public NET_POINT Center; //物体型心
+ public int nPolygonNum; //多边形顶点个数
+ public NET_POINT[] Contour = (NET_POINT[])new NET_POINT().toArray(NET_MAX_POLYGON_NUM); //较精确的轮廓多边形
+ public int rgbaMainColor; //表示车牌、车身等物体主要颜色;按字节表示,分别为红、绿、蓝和透明度,例如:RGB值为(0,255,0),透明度为0时,其值为0x00ff0000.
+ public byte[] szText = new byte[128]; //同NET_MSG_OBJECT相应字段
+ public byte[] szObjectSubType = new byte[64]; //物体子类别,根据不同的物体类型,可以取以下子类型:
+ // 同NET_MSG_OBJECT相应字段
+ public byte[] byReserved1 = new byte[3];
+ public byte bPicEnble; //是否有物体对应图片文件信息, 类型为bool, 取值0或者1
+ public NET_PIC_INFO stPicInfo; //物体对应图片信息
+ public byte bShotFrame; //是否是抓拍张的识别结果, 类型为bool, 取值0或者1
+ public byte bColor; //物体颜色(rgbaMainColor)是否可用, 类型为bool, 取值0或者1
+ public byte bLowerBodyColor; //下半身颜色(rgbaLowerBodyColor)是否可用
+ public byte byTimeType; //时间表示类型,详见EM_TIME_TYPE说明
+ public NET_TIME_EX stuCurrentTime; //针对视频浓缩,当前时间戳(物体抓拍或识别时,会将此识别智能帧附在一个视频帧或jpeg图片中,此帧所在原始视频中的出现时间)
+ public NET_TIME_EX stuStartTime; //开始时间戳(物体开始出现时)
+ public NET_TIME_EX stuEndTime; //结束时间戳(物体最后出现时)
+ public DH_RECT stuOriginalBoundingBox; //包围盒(绝对坐标)
+ public DH_RECT stuSignBoundingBox; //车标坐标包围盒
+ public int dwCurrentSequence; //当前帧序号(抓下这个物体时的帧)
+ public int dwBeginSequence; //开始帧序号(物体开始出现时的帧序号)
+ public int dwEndSequence; //结束帧序号(物体消逝时的帧序号)
+ public long nBeginFileOffset; //开始时文件偏移,单位:字节(物体开始出现时,视频帧在原始视频文件中相对于文件起始处的偏移)
+ public long nEndFileOffset; //结束时文件偏移,单位:字节(物体消逝时,视频帧在原始视频文件中相对于文件起始处的偏移)
+ public byte[] byColorSimilar = new byte[EM_COLOR_TYPE.NET_COLOR_TYPE_MAX]; //物体颜色相似度,取值范围:0-100,数组下标值代表某种颜色,详见EM_COLOR_TYPE
+ public byte[] byUpperBodyColorSimilar = new byte[EM_COLOR_TYPE.NET_COLOR_TYPE_MAX]; //上半身物体颜色相似度(物体类型为人时有效)
+ public byte[] byLowerBodyColorSimilar = new byte[EM_COLOR_TYPE.NET_COLOR_TYPE_MAX]; //下半身物体颜色相似度(物体类型为人时有效)
+ public int nRelativeID; //相关物体ID
+ public byte[] szSubText = new byte[20]; //"ObjectType"为"Vehicle"或者"Logo"时,表示车标下的某一车系,比如奥迪A6L,由于车系较多,SDK实现时透传此字段,设备如实填写。
+ public int nPersonStature; //入侵人员身高,单位cm
+ public int emPersonDirection; //人员入侵方向, 取值为EM_MSG_OBJ_PERSON_DIRECTION中的值
+ public int rgbaLowerBodyColor; //使用方法同rgbaMainColor,物体类型为人时有效
+ //视频浓缩额外信息
+ public int nSynopsisSpeed; //浓缩速度域值,共分1~10共十个档位,5表示浓缩后只保留5以上速度的物体。是个相对单位
+ // 为0时,该字段无效
+ public int nSynopsisSize; //浓缩尺寸域值,共分1~10共十个档位,3表示浓缩后只保留3以上大小的物体。是个相对单位
+ // 为0时,该字段无效
+ public int bEnableDirection; //为True时,对物体运动方向做过滤, 类型为BOOL, 取值0或者1
+ // 为False时,不对物体运动方向做过滤,
+ public NET_POINT stuSynopsisStartLocation; //浓缩运动方向,起始坐标点,点的坐标归一化到[0,8192)区间,bEnableDirection为True时有效
+ public NET_POINT stuSynopsisEndLocation; //浓缩运动方向,终止坐标点,点的坐标归一化到[0,8192)区间,bEnableDirection为True时有效
+ public byte[] szSerialUUID = new byte[22]; //智能物体全局唯一物体标识, 有效数据位21位,包含’\0’, 前2位%d%d:01-视频片段, 02-图片, 03-文件, 99-其他, 中间14位YYYYMMDDhhmmss:年月日时分秒, 后5位%u%u%u%u%u:物体ID,如00001
+ public byte[] szReserved = new byte[2]; //对齐
+ public int nCategoryType; //物体类别的类型, 0:未知, 1:Category, 2:InductiveVehicleType
+ public byte[] szInductiveVehicleType = new byte[32]; //在Category类型基础上对车辆类型归纳后的类型
+ public byte[] szTextDirection = new byte[32]; //移动方向(比如钢包运动检测方向)LeftToRight,从左到右,RightToLeft,从右到左,TopToBottom,从上到下,BottomToTop,从下到上
+ public byte[] szQRCode = new byte[64]; //车辆上的二维码识别结果
+ public NET_MSG_OBJECT_OBJECTUUID_INFO stuObjectUUID = new NET_MSG_OBJECT_OBJECTUUID_INFO(); //智能物体全局唯一物体标识,参见结构体定义 {@link com.netsdk.lib.structure.NET_MSG_OBJECT_OBJECTUUID_INFO}
+ public int nTextRegionID; //Text文本内容对应的区域编号
+ public int nCloseDistance; //和相邻检测目标的距离,目前指的是工程车,单位:cm
+ public int nSpeed; //物体速度,单位为km/h
+ public byte[] szVehicleIDNumber = new byte[128]; //车架号
+ public int nCarTripLineDirection; //车辆绊线方向 0:未知,1:A到B,2:B到A
+ public byte[] byReserved = new byte[1492]; //扩展字节
+
+ public NET_MSG_OBJECT_EX2()
+ {
+ this.dwSize = this.size();
+ }
+
+ protected int getNativeAlignment(Class> type, Object value, boolean isFirstElement) {
+ int alignment = super.getNativeAlignment(type, value, isFirstElement);
+ return Math.min(4, alignment);
+ }
+ }
+
+ // 设备协议类型
+ public static class NET_DEVICE_PROTOCOL extends SdkStructure
+ {
+ public static final int NET_PROTOCOL_PRIVATE2 = 0; //私有2代协议
+ public static final int NET_PROTOCOL_PRIVATE3 = NET_PROTOCOL_PRIVATE2+1; //私有3代协议
+ public static final int NET_PROTOCOL_ONVIF = NET_PROTOCOL_PRIVATE3+1; //Onvif
+ public static final int NET_PROTOCOL_VNC = NET_PROTOCOL_ONVIF+1; //虚拟网络计算机
+ public static final int NET_PROTOCOL_TS = NET_PROTOCOL_VNC+1; //标准TS
+ public static final int NET_PROTOCOL_PRIVATE = 100; //私有协议
+ public static final int NET_PROTOCOL_AEBELL = NET_PROTOCOL_PRIVATE+1; //美电贝尔
+ public static final int NET_PROTOCOL_PANASONIC = NET_PROTOCOL_AEBELL+1; //松下
+ public static final int NET_PROTOCOL_SONY = NET_PROTOCOL_PANASONIC+1; //索尼
+ public static final int NET_PROTOCOL_DYNACOLOR = NET_PROTOCOL_SONY+1; //Dynacolor
+ public static final int NET_PROTOCOL_TCWS = NET_PROTOCOL_DYNACOLOR+1; //天城威视
+ public static final int NET_PROTOCOL_SAMSUNG = NET_PROTOCOL_TCWS+1; //三星
+ public static final int NET_PROTOCOL_YOKO = NET_PROTOCOL_SAMSUNG+1; //YOKO
+ public static final int NET_PROTOCOL_AXIS = NET_PROTOCOL_YOKO+1; //安讯视
+ public static final int NET_PROTOCOL_SANYO = NET_PROTOCOL_AXIS+1; //三洋
+ public static final int NET_PROTOCOL_BOSH = NET_PROTOCOL_SANYO+1; //Bosch
+ public static final int NET_PROTOCOL_PECLO = NET_PROTOCOL_BOSH+1; //Peclo
+ public static final int NET_PROTOCOL_PROVIDEO = NET_PROTOCOL_PECLO+1; //Provideo
+ public static final int NET_PROTOCOL_ACTI = NET_PROTOCOL_PROVIDEO+1; //ACTi
+ public static final int NET_PROTOCOL_VIVOTEK = NET_PROTOCOL_ACTI+1; //Vivotek
+ public static final int NET_PROTOCOL_ARECONT = NET_PROTOCOL_VIVOTEK+1; //Arecont
+ public static final int NET_PROTOCOL_PRIVATEEH = NET_PROTOCOL_ARECONT+1; //PrivateEH
+ public static final int NET_PROTOCOL_IMATEK = NET_PROTOCOL_PRIVATEEH+1; //IMatek
+ public static final int NET_PROTOCOL_SHANY = NET_PROTOCOL_IMATEK+1; //Shany
+ public static final int NET_PROTOCOL_VIDEOTREC = NET_PROTOCOL_SHANY+1; //动力盈科
+ public static final int NET_PROTOCOL_URA = NET_PROTOCOL_VIDEOTREC+1; //Ura
+ public static final int NET_PROTOCOL_BITICINO = NET_PROTOCOL_URA+1; //Bticino
+ public static final int NET_PROTOCOL_ONVIF2 = NET_PROTOCOL_BITICINO+1; //Onvif协议类型,同NET_PROTOCOL_ONVIF
+ public static final int NET_PROTOCOL_SHEPHERD = NET_PROTOCOL_ONVIF2+1; //视霸
+ public static final int NET_PROTOCOL_YAAN = NET_PROTOCOL_SHEPHERD+1; //亚安
+ public static final int NET_PROTOCOL_AIRPOINT = NET_PROTOCOL_YAAN+1; //Airpop
+ public static final int NET_PROTOCOL_TYCO = NET_PROTOCOL_AIRPOINT+1; //TYCO
+ public static final int NET_PROTOCOL_XUNMEI = NET_PROTOCOL_TYCO+1; //讯美
+ public static final int NET_PROTOCOL_HIKVISION = NET_PROTOCOL_XUNMEI+1; //
+ public static final int NET_PROTOCOL_LG = NET_PROTOCOL_HIKVISION+1; //LG
+ public static final int NET_PROTOCOL_AOQIMAN = NET_PROTOCOL_LG+1; //奥奇曼
+ public static final int NET_PROTOCOL_BAOKANG = NET_PROTOCOL_AOQIMAN+1; //宝康
+ public static final int NET_PROTOCOL_WATCHNET = NET_PROTOCOL_BAOKANG+1; //Watchnet
+ public static final int NET_PROTOCOL_XVISION = NET_PROTOCOL_WATCHNET+1; //Xvision
+ public static final int NET_PROTOCOL_FUSITSU = NET_PROTOCOL_XVISION+1; //富士通
+ public static final int NET_PROTOCOL_CANON = NET_PROTOCOL_FUSITSU+1; //Canon
+ public static final int NET_PROTOCOL_GE = NET_PROTOCOL_CANON+1; //GE
+ public static final int NET_PROTOCOL_Basler = NET_PROTOCOL_GE+1; //巴斯勒
+ public static final int NET_PROTOCOL_Patro = NET_PROTOCOL_Basler+1; //帕特罗
+ public static final int NET_PROTOCOL_CPKNC = NET_PROTOCOL_Patro+1; //CPPLUSK系列
+ public static final int NET_PROTOCOL_CPRNC = NET_PROTOCOL_CPKNC+1; //CPPLUSR系列
+ public static final int NET_PROTOCOL_CPUNC = NET_PROTOCOL_CPRNC+1; //CPPLUSU系列
+ public static final int NET_PROTOCOL_CPPLUS = NET_PROTOCOL_CPUNC+1; //CPPLUSIPC
+ public static final int NET_PROTOCOL_XunmeiS = NET_PROTOCOL_CPPLUS+1; //讯美s,实际协议为Onvif
+ public static final int NET_PROTOCOL_GDDW = NET_PROTOCOL_XunmeiS+1; //广东电网
+ public static final int NET_PROTOCOL_PSIA = NET_PROTOCOL_GDDW+1; //PSIA
+ public static final int NET_PROTOCOL_GB2818 = NET_PROTOCOL_PSIA+1; //GB2818
+ public static final int NET_PROTOCOL_GDYX = NET_PROTOCOL_GB2818+1; //GDYX
+ public static final int NET_PROTOCOL_OTHER = NET_PROTOCOL_GDYX+1; //由用户自定义
+ }
+
+ // 雨刷来回循环刷,雨刷模式配置为手动模式时有效(对应命令 CTRLTYPE_CTRL_RAINBRUSH_MOVECONTINUOUSLY)
+ public static class NET_CTRL_RAINBRUSH_MOVECONTINUOUSLY extends SdkStructure
+ {
+ public int dwSize;
+ public int nChannel; //表示雨刷的索引
+ public int nInterval; //雨刷间隔
+
+ public NET_CTRL_RAINBRUSH_MOVECONTINUOUSLY()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 雨刷停止刷,雨刷模式配置为手动模式时有效(对应命令 CTRLTYPE_CTRL_RAINBRUSH_STOPMOVE)
+ public static class NET_CTRL_RAINBRUSH_STOPMOVE extends SdkStructure
+ {
+ public int dwSize;
+ public int nChannel; //表示雨刷的索引
+
+ public NET_CTRL_RAINBRUSH_STOPMOVE()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 雨刷来回刷一次,雨刷模式配置为手动模式时有效(对应命令 CTRLTYPE_CTRL_RAINBRUSH_MOVEONCE)
+ public static class NET_CTRL_RAINBRUSH_MOVEONCE extends SdkStructure
+ {
+ public int dwSize;
+ public int nChannel; //表示雨刷的索引
+
+ public NET_CTRL_RAINBRUSH_MOVEONCE()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // DSP能力描述,扩展类型,对应CLIENT_QueryDevState接口
+ public static class NET_DEV_DSP_ENCODECAP extends SdkStructure
+ {
+ public int dwVideoStandardMask; //视频制式掩码,按位表示设备能够支持的视频制式
+ public int dwImageSizeMask; //分辨率掩码,按位表示设备能够支持的分辨率
+ public int dwEncodeModeMask; //编码模式掩码,按位表示设备能够支持的编码模式
+ public int dwStreamCap; //按位表示设备支持的多媒体功能,
+ // 第一位表示支持主码流
+ // 第二位表示支持辅码流1
+ // 第三位表示支持辅码流2
+ // 第五位表示支持jpg抓图
+ public int[] dwImageSizeMask_Assi = new int[32]; //表示主码流为各分辨率时,支持的辅码流分辨率掩码。
+ public int dwMaxEncodePower; //DSP支持的最高编码能力
+ public short wMaxSupportChannel; //每块DSP支持最多输入视频通道数
+ public short wChannelMaxSetSync; //DSP每通道的最大编码设置是否同步;0:不同步,1:同步
+ public byte[] bMaxFrameOfImageSize = new byte[32]; //不同分辨率下的最大采集帧率,与dwVideoStandardMask按位对应
+ public byte bEncodeCap; //标志,配置时要求符合下面条件,否则配置不能生效;
+ // 0:主码流的编码能力+辅码流的编码能力 <= 设备的编码能力,
+ // 1:主码流的编码能力+辅码流的编码能力 <= 设备的编码能力,
+ // 辅码流的编码能力 <= 主码流的编码能力,
+ // 辅码流的分辨率 <= 主码流的分辨率,
+ // 主码流和辅码流的帧率 <= 前端视频采集帧率
+ // 2:N5的计算方法
+ // 辅码流的分辨率 <= 主码流的分辨率
+ // 查询支持的分辨率和相应最大帧率
+ public byte[] reserved = new byte[95];
+ }
+
+ //云台控制坐标单元
+ public static class PTZ_SPACE_UNIT extends SdkStructure
+ {
+ public int nPositionX; // 云台水平运动位置,有效范围:0,3600]
+ public int nPositionY; // 云台垂直运动位置,有效范围:-1800,1800]
+ public int nZoom; // 云台光圈变动位置,有效范围:0,128]
+ public byte[] szReserve = new byte[32]; //预留32字节
+ }
+
+ //云台控制速度单元
+ public static class PTZ_SPEED_UNIT extends SdkStructure
+ {
+ public float fPositionX; //云台水平方向速率,归一化到-1~1
+ public float fPositionY; //云台垂直方向速率,归一化到-1~1
+ public float fZoom; //云台光圈放大倍率,归一化到0~1
+ public byte[] szReserve = new byte[32]; //预留32字节
+ }
+
+ //持续控制云台对应结构
+ public static class PTZ_CONTROL_CONTINUOUSLY extends SdkStructure
+ {
+ public PTZ_SPEED_UNIT stuSpeed; //云台运行速度
+ public int nTimeOut; //连续移动超时时间,单位为秒
+ public byte[] szReserve = new byte[64]; //预留64字节
+ }
+
+ //绝对控制云台对应结构
+ public static class PTZ_CONTROL_ABSOLUTELY extends SdkStructure
+ {
+ public PTZ_SPACE_UNIT stuPosition; //云台绝对移动位置
+ public PTZ_SPEED_UNIT stuSpeed; //云台运行速度
+ public byte[] szReserve = new byte[64]; //预留64字节
+ }
+
+ //带速度转动到预置位点云台控制对应结构
+ public static class PTZ_CONTROL_GOTOPRESET extends SdkStructure
+ {
+ public int nPresetIndex; //预置位索引
+ public PTZ_SPEED_UNIT stuSpeed; //云台运行速度
+ public byte[] szReserve = new byte[64]; //预留64字节
+ }
+
+ //设置云台可视域信息
+ public static class PTZ_VIEW_RANGE_INFO extends SdkStructure
+ {
+ public int nStructSize;
+ public int nAzimuthH; //水平方位角度,0~3600,单位:度
+
+ public PTZ_VIEW_RANGE_INFO()
+ {
+ this.nStructSize = this.size();
+ }
+ }
+
+ //云台绝对聚焦对应结构
+ public static class PTZ_FOCUS_ABSOLUTELY extends SdkStructure
+ {
+ public int dwValue; //云台聚焦位置,取值范围(0~8191)
+ public int dwSpeed; //云台聚焦速度,取值范围(0~7)
+ public byte[] szReserve = new byte[64]; //预留64字节
+ }
+
+ // 云台控制-扇扫对应结构
+ public static class PTZ_CONTROL_SECTORSCAN extends SdkStructure
+ {
+ public int nBeginAngle; //起始角度,范围:-180,180]
+ public int nEndAngle; //结束角度,范围:-180,180]
+ public int nSpeed; //速度,范围:0,255]
+ public byte[] szReserve = new byte[64]; //预留64字节
+ }
+
+ // 控制鱼眼电子云台信息
+ public static class PTZ_CONTROL_SET_FISHEYE_EPTZ extends SdkStructure
+ {
+ public int dwSize; //结构体大小
+ public int dwWindowID; //进行EPtz控制的窗口编号
+ public int dwCommand; //电子云台命令
+ public int dwParam1; //命令对应参数1
+ public int dwParam2; //命令对应参数2
+ public int dwParam3; //命令对应参数3
+ public int dwParam4; //命令对应参数4
+ }
+
+ // 光照场景类型
+ public static class EM_LIGHT_SCENE extends SdkStructure
+ {
+ public static final int EM_LIGHT_SCENE_UNKNOWN = 0; // 未知
+ public static final int EM_LIGHT_SCENE_DAY = 1; // 白天
+ public static final int EM_LIGHT_SCENE_NIGHT = 2; // 夜晚
+ public static final int EM_LIGHT_SCENE_NORMAL = 3; // 普通
+ public static final int EM_LIGHT_SCENE_FRONT_LIGHT = 4; // 顺光
+ public static final int EM_LIGHT_SCENE_BACK_LIGHT = 5; // 一般逆光
+ public static final int EM_LIGHT_SCENE_STRONG_LIGHT = 6; // 强逆光
+ public static final int EM_LIGHT_SCENE_LOW_LIGHT = 7; // 低照度
+ public static final int EM_LIGHT_SCENE_CUSTOM = 8; // 自定义
+ }
+
+ // 变倍设置基本信息单元
+ public static class CFG_VIDEO_IN_ZOOM_UNIT extends SdkStructure
+ {
+ public int nSpeed; //变倍速率(0~7)
+ public int bDigitalZoom; //是否数字变倍, 类型为BOOL, 取值0或者1
+ public int nZoomLimit; //当前速率下最大变倍上限(0~13)。
+ public int emLightScene; //光照场景名称 EM_LIGHT_SCENE
+ }
+
+ // 单通道变倍设置基本信息
+ public static class CFG_VIDEO_IN_ZOOM extends SdkStructure
+ {
+ public int nChannelIndex; //通道号
+ public int nVideoInZoomRealNum; //配置使用个数
+ public CFG_VIDEO_IN_ZOOM_UNIT[] stVideoInZoomUnit = new CFG_VIDEO_IN_ZOOM_UNIT[MAX_VIDEO_IN_ZOOM]; //通道变速配置单元信息
+
+ public CFG_VIDEO_IN_ZOOM(){
+ for(int i=0;i*/
+ public byte byEmailMaxLength; /*<附件录像时的最大长度,单位MB>*/
+ public byte byEmailMaxTime; /*<附件是录像时最大时间长度,单位秒>*/
+ public byte[] byReserved = new byte[475];
+ }
+
+ public static class EM_NET_DEFENCE_AREA_TYPE extends SdkStructure
+ {
+ public static final int EM_NET_DEFENCE_AREA_TYPE_UNKNOW = 0; //未知
+ public static final int EM_NET_DEFENCE_AREA_TYPE_INTIME = 1; //即时防区
+ public static final int EM_NET_DEFENCE_AREA_TYPE_DELAY = 2; //延时防区
+ public static final int EM_NET_DEFENCE_AREA_TYPE_FULLDAY = 3; //24小时防区
+ public static final int EM_NET_DEFENCE_AREA_TYPE_Follow = 4; //跟随防区
+ public static final int EM_NET_DEFENCE_AREA_TYPE_MEDICAL = 5; //医疗紧急防区
+ public static final int EM_NET_DEFENCE_AREA_TYPE_PANIC = 6; //恐慌防区
+ public static final int EM_NET_DEFENCE_AREA_TYPE_FIRE = 7; //火警防区
+ public static final int EM_NET_DEFENCE_AREA_TYPE_FULLDAYSOUND = 8; //24小时有声防区
+ public static final int EM_NET_DEFENCE_AREA_TYPE_FULLDATSLIENT = 9; //24小时无声防区
+ public static final int EM_NET_DEFENCE_AREA_TYPE_ENTRANCE1 = 10; //出入防区1
+ public static final int EM_NET_DEFENCE_AREA_TYPE_ENTRANCE2 = 11; //出入防区2
+ public static final int EM_NET_DEFENCE_AREA_TYPE_INSIDE = 12; //内部防区
+ public static final int EM_NET_DEFENCE_AREA_TYPE_OUTSIDE = 13; //外部防区
+ public static final int EN_NET_DEFENCE_AREA_TYPE_PEOPLEDETECT = 14; //人员检测防区
+ }
+
+ // 本地报警事件(对NET_ALARM_ALARM_EX升级)
+ public static class ALARM_ALARM_INFO_EX2 extends SdkStructure
+ {
+ public int dwSize;
+ public int nChannelID; //通道号
+ public int nAction; //0:开始, 1:停止
+ public NET_TIME stuTime; //报警事件发生的时间
+ public int emSenseType; //传感器类型, 取值范围为 NET_SENSE_METHOD 中的值
+ public NET_MSG_HANDLE_EX stuEventHandler; //联动信息
+ public int emDefenceAreaType; //防区类型, 取值类型为EM_NET_DEFENCE_AREA_TYPE中的值
+ public int nEventID; //事件ID
+ public byte[] szName = new byte[NET_COMMON_STRING_32]; // 通道名称
+ public int nCount; // 事件发生次数
+ public NET_GPS_STATUS_INFO stuGPS; // GPS信息
+ /**
+ * 本地报警时登陆的用户ID
+ */
+ public byte[] szUserID = new byte[32];
+ /**
+ * 本地报警时登陆的用户名
+ */
+ public byte[] szUserName = new byte[128];
+ /**
+ * 设备序列号
+ */
+ public byte[] szSN = new byte[32];
+ /**
+ * 外部输入报警
+ */
+ public int bExAlarmIn;
+ /**
+ * 报警通道所属区域的个数
+ */
+ public int nAreaNums;
+ /**
+ * 报警通道所属的区域
+ */
+ public int[] nAreas = new int[64];
+ /**
+ * 事件公共扩展字段结构体
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[568];
+
+ public ALARM_ALARM_INFO_EX2() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 布撤防状态变化事件的信息
+ public static class ALARM_ARMMODE_CHANGE_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public NET_TIME stuTime; // 报警事件发生的时间
+ public int bArm; // 变化后的状态,对应 NET_ALARM_MODE
+ public int emSceneMode; // 情景模式,对应 NET_SCENE_MODE
+ public int dwID; // ID号, 遥控器编号或键盘地址, emTriggerMode为NET_EM_TRIGGER_MODE_NET类型时为0
+ public int emTriggerMode; // 触发方式,对应 NET_EM_TRIGGER_MODE
+ public byte[] szNetClientAddr = new byte[64]; //网络用户IP地址或网络地址
+ public int nUserCode; //用户ID,0:管理员,1~20:普通用户,21:安装员,22:挟持用户
+
+ public ALARM_ARMMODE_CHANGE_INFO() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 布撤防模式
+ public static class NET_ALARM_MODE extends SdkStructure
+ {
+ public static final int NET_ALARM_MODE_UNKNOWN = -1; // 未知
+ public static final int NET_ALARM_MODE_DISARMING = 0; // 撤防
+ public static final int NET_ALARM_MODE_ARMING = 1; // 布防
+ public static final int NET_ALARM_MODE_FORCEON = 2; // 强制布防
+ public static final int NET_ALARM_MODE_PARTARMING = 3; // 部分布防
+ }
+
+ // 布撤防场景模式
+ public static class NET_SCENE_MODE extends SdkStructure
+ {
+ public static final int NET_SCENE_MODE_UNKNOWN = 0; // 未知场景
+ public static final int NET_SCENE_MODE_OUTDOOR = 1; // 外出模式
+ public static final int NET_SCENE_MODE_INDOOR = 2; // 室内模式
+ public static final int NET_SCENE_MODE_WHOLE = 3; // 全局模式
+ public static final int NET_SCENE_MODE_RIGHTNOW = 4; // 立即模式
+ public static final int NET_SCENE_MODE_SLEEPING = 5; // 就寝模式
+ public static final int NET_SCENE_MODE_CUSTOM = 6; // 自定义模式
+ }
+
+ // 触发方式
+ public static class NET_EM_TRIGGER_MODE extends SdkStructure
+ {
+ public static final int NET_EM_TRIGGER_MODE_UNKNOWN = 0;
+ public static final int NET_EM_TRIGGER_MODE_NET = 1; // 网络用户(平台或Web)
+ public static final int NET_EM_TRIGGER_MODE_KEYBOARD = 2; // 键盘
+ public static final int NET_EM_TRIGGER_MODE_REMOTECONTROL = 3; // 遥控器
+ }
+
+ // 紧急救助事件详情
+ public static class ALARM_RCEMERGENCY_CALL_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public int nAction; // -1:未知 0:开始 1:停止
+ public int emType; // 紧急类型,对应 EM_RCEMERGENCY_CALL_TYPE
+ public NET_TIME stuTime; // 事件发生时间
+ public int emMode; // 报警方式,对应 EM_RCEMERGENCY_MODE_TYPE
+ public int dwID; // 用于标示不同的紧急事件(只有emMode是遥控器类型时有效, 表示遥控器的编号, 0表示无效ID)
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public byte[] szDelayUploadSeq = new byte[128]; // 延时上传序号
+ public byte[] szResvered = new byte[1020]; // 保留字节
+
+ public ALARM_RCEMERGENCY_CALL_INFO() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 紧急救助事件类型
+ public static class EM_RCEMERGENCY_CALL_TYPE extends SdkStructure
+ {
+ public static final int EM_RCEMERGENCY_CALL_UNKNOWN = 0;
+ public static final int EM_RCEMERGENCY_CALL_FIRE = 1; // 火警
+ public static final int EM_RCEMERGENCY_CALL_DURESS = 2; // 胁迫
+ public static final int EM_RCEMERGENCY_CALL_ROBBER = 3; // 匪警
+ public static final int EM_RCEMERGENCY_CALL_MEDICAL = 4; // 医疗
+ public static final int EM_RCEMERGENCY_CALL_EMERGENCY = 5; // 紧急
+ }
+
+ // 报警方式
+ public static class EM_RCEMERGENCY_MODE_TYPE extends SdkStructure
+ {
+ public static final int EM_RCEMERGENCY_MODE_UNKNOWN = 0;
+ public static final int EM_RCEMERGENCY_MODE_KEYBOARD = 1; // 键盘
+ public static final int EM_RCEMERGENCY_MODE_WIRELESS_CONTROL = 2; // 遥控器
+ }
+
+ /////////////////////////////////////////////////////
+ ////////用户信息管理对应接口CLIENT_QueryUserInfoNew/////////
+ // 用户信息表
+ public static class USER_MANAGE_INFO_NEW extends SdkStructure {
+ public int dwSize; // 结构体大小
+ public int dwRightNum; // 权限信息有效个数
+ public OPR_RIGHT_NEW[] rightList = new OPR_RIGHT_NEW[NET_NEW_MAX_RIGHT_NUM]; // 权限信息,有效个数由 dwRightNum 成员决定, 用户权限个数上限NET_NEW_MAX_RIGHT_NUM = 1024
+ public int dwGroupNum; // 用户组信息有效个数
+ public USER_GROUP_INFO_NEW[] groupList = new USER_GROUP_INFO_NEW[NET_MAX_GROUP_NUM]; // 用户组信息,此参数废弃,请使用groupListEx
+ public int dwUserNum; // 用户数
+ public USER_INFO_NEW[] userList = new USER_INFO_NEW[NET_MAX_USER_NUM]; // 用户列表, 用户个数上限NET_MAX_USER_NUM=200
+ public int dwFouctionMask; // 掩码: 0x00000001 - 支持用户复用, 0x00000002 - 密码修改需要校验
+ public byte byNameMaxLength; // 支持的用户名最大长度
+ public byte byPSWMaxLength; // 支持的密码最大长度
+ public byte[] byReserve = new byte[254];
+ public USER_GROUP_INFO_EX2[] groupListEx = new USER_GROUP_INFO_EX2[NET_MAX_GROUP_NUM]; // 用户组信息扩展, 用户组个数上限NET_MAX_GROUP_NUM=20
+
+ public USER_MANAGE_INFO_NEW() {
+ this.dwSize = this.size();
+
+ for(int i = 0; i < NET_NEW_MAX_RIGHT_NUM; i++) {
+ rightList[i] = new OPR_RIGHT_NEW();
+ }
+
+ for(int i = 0; i < NET_MAX_USER_NUM; i++) {
+ userList[i] = new USER_INFO_NEW();
+ }
+
+ for(int i = 0; i < NET_MAX_GROUP_NUM; i++) {
+ groupList[i] = new USER_GROUP_INFO_NEW();
+ groupListEx[i] = new USER_GROUP_INFO_EX2();
+ }
+ }
+ }
+
+ // 权限信息
+ public static class OPR_RIGHT_NEW extends SdkStructure {
+ public int dwSize; //结构体大小
+ public int dwID; //权限ID,每个 权限都有各自的ID
+ public byte[] name = new byte[NET_RIGHT_NAME_LENGTH]; //名称 权限名长度 NET_RIGHT_NAME_LENGTH=32
+ public byte[] memo = new byte[NET_MEMO_LENGTH]; //说明备注长度NET_MEMO_LENGTH=32
+
+ public OPR_RIGHT_NEW() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 用户组信息
+ public static class USER_GROUP_INFO_NEW extends SdkStructure {
+ public int dwSize;
+ public int dwID; // 用户组ID, 每个用户组都有各自的ID
+ public byte[] name = new byte[NET_USER_NAME_LENGTH_EX]; // 用户组名称/NET_USER_NAME_LENGTH_EX=16
+ public int dwRightNum; // 用户组权限有效个数
+ public int[] rights = new int[NET_NEW_MAX_RIGHT_NUM]; // 用户组支持权限数组
+ public byte[] memo = new byte[NET_MEMO_LENGTH]; // 用户组备注说明
+
+ public USER_GROUP_INFO_NEW() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 用户组信息扩展,用户组名加长
+ public static class USER_GROUP_INFO_EX2 extends SdkStructure {
+ public int dwSize; // 结构体大小
+ public int dwID; // ID
+ public byte[] name = new byte[NET_NEW_USER_NAME_LENGTH]; // 用户名 长度NET_NEW_USER_NAME_LENGTH=128
+ public int dwRightNum; // 权限数量
+ public int[] rights = new int[NET_NEW_MAX_RIGHT_NUM]; // 用户权限 个数上限 NET_NEW_MAX_RIGHT_NUM = 1024
+ public byte[] memo = new byte[NET_MEMO_LENGTH]; // 说明, 备注长度NET_MEMO_LENGTH=32
+
+ public USER_GROUP_INFO_EX2() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 用户信息结构体
+ public static class USER_INFO_NEW extends SdkStructure {
+ public int dwSize; // 结构体大小
+ public int dwID; // 用户ID
+ public int dwGroupID; // 用户组组ID
+ public byte[] name = new byte[NET_NEW_USER_NAME_LENGTH]; // 用户名称,长度NET_NEW_USER_NAME_LENGTH=128
+ public byte[] passWord = new byte[NET_NEW_USER_PSW_LENGTH]; // 用户密码,NET_NEW_USER_PSW_LENGTH=128
+ public int dwRightNum; // 用户权限有效个数
+ public int[] rights = new int[NET_NEW_MAX_RIGHT_NUM]; // 用户支持权限数组,个数上限 NET_NEW_MAX_RIGHT_NUM = 1024
+ public byte[] memo = new byte[NET_MEMO_LENGTH]; // 用户备注说明, 备注长度NET_MEMO_LENGTH=32
+ public int dwFouctionMask; // 掩码,0x00000001 - 支持用户复用
+ public NET_TIME stuTime; // 最后修改时间
+ public byte byIsAnonymous; // 是否可以匿名登录, 0:不可匿名登录, 1: 可以匿名登录
+ public byte[] byReserve = new byte[7]; // 保留字节
+
+ public USER_INFO_NEW() {
+ this.dwSize = this.size();
+ }
+ }
+
+ //------------------------允许名单相关结构体-------------------------
+ // CLIENT_FindRecord接口输入参数
+ public static class NET_IN_FIND_RECORD_PARAM extends SdkStructure {
+ public int dwSize; // 结构体大小
+ public int emType; // 待查询记录类型,emType对应 EM_NET_RECORD_TYPE
+ public Pointer pQueryCondition; // 查询类型对应的查询条件
+
+ public NET_IN_FIND_RECORD_PARAM() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 交通禁止/允许名单账户记录查询条件
+ public static class FIND_RECORD_TRAFFICREDLIST_CONDITION extends SdkStructure {
+ public int dwSize;
+ public byte[] szPlateNumber = new byte[NET_MAX_PLATE_NUMBER_LEN]; // 车牌号
+ public byte[] szPlateNumberVague = new byte[NET_MAX_PLATE_NUMBER_LEN]; // 车牌号码模糊查询
+ public int nQueryResultBegin; // 第一个条返回结果在查询结果中的偏移量
+ public int bRapidQuery; // 是否快速查询, TRUE:为快速,快速查询时不等待所有增、删、改操作完成。默认为非快速查询
+ public byte[] szProvince = new byte[64]; // 省份类型
+ public int emPlateType; // 车牌类型 ,参考枚举EM_NET_PLATE_TYPE
+
+ public FIND_RECORD_TRAFFICREDLIST_CONDITION() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 交通流量记录查询条件
+ public static class FIND_RECORD_TRAFFICFLOW_CONDITION extends SdkStructure {
+ public int dwSize;
+ public int abChannelId; // 通道号查询条件是否有效
+ public int nChannelId; // 通道号
+ public int abLane; // 车道号查询条件是否有效
+ public int nLane; // 车道号
+ public int bStartTime; // 开始时间查询条件是否有效
+ public NET_TIME stStartTime; // 开始时间
+ public int bEndTime; // 结束时间查询条件是否有效
+ public NET_TIME stEndTime; // 结束时间
+ public int bStatisticsTime; // 查询是否为统计时间,为BOOL类型,bStartTime及bEndTime均为1
+
+ public FIND_RECORD_TRAFFICFLOW_CONDITION() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 门禁出入记录查询条件
+ public static class FIND_RECORD_ACCESSCTLCARDREC_CONDITION_EX extends SdkStructure {
+ public int dwSize;
+ public int bCardNoEnable; // 启用卡号查询, 为BOOL类型
+ public byte[] szCardNo = new byte[NET_MAX_CARDNO_LEN]; // 卡号
+ public int bTimeEnable; // 启用时间段查询, 为BOOL类型
+ public NET_TIME stStartTime; // 起始时间
+ public NET_TIME stEndTime; // 结束时间
+ public int nOrderNum; // 规则数
+ public FIND_RECORD_ACCESSCTLCARDREC_ORDER[] stuOrders = (FIND_RECORD_ACCESSCTLCARDREC_ORDER[])new FIND_RECORD_ACCESSCTLCARDREC_ORDER().toArray(MAX_ORDER_NUMBER); // 规则数组
+ public int bRealUTCTimeEnable; // 启动RealUTC时间查询, bRealUTCTimeEnable为TRUE时bTimeEnable无效
+ public int nStartRealUTCTime; // 真实UTC时间戳,起始时间
+ public int nEndRealUTCTime; // 真实UTC时间戳,结束时间
+ public byte[] szReserved = new byte[40]; // 字节对齐
+
+ public FIND_RECORD_ACCESSCTLCARDREC_CONDITION_EX() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 门禁出入记录排序规则详情
+ public static class FIND_RECORD_ACCESSCTLCARDREC_ORDER extends SdkStructure
+ {
+ public int emField; // 排序字段, 对应枚举 EM_RECORD_ACCESSCTLCARDREC_ORDER_FIELD
+ public int emOrderType; // 排序类型, 对应枚举 EM_RECORD_ORDER_TYPE
+ public byte[] byReverse = new byte[64]; // 保留字节
+ }
+
+ // 门禁出入记录排序字段
+ public static class EM_RECORD_ACCESSCTLCARDREC_ORDER_FIELD extends SdkStructure
+ {
+ public static final int EM_RECORD_ACCESSCTLCARDREC_ORDER_FIELD_UNKNOWN = 0; // 未知
+ public static final int EM_RECORD_ACCESSCTLCARDREC_ORDER_FIELD_RECNO = 1; // 记录集编号
+ public static final int EM_RECORD_ACCESSCTLCARDREC_ORDER_FIELD_CREATETIME = 2; // 创建时间
+ }
+
+ // 排序类型
+ public static class EM_RECORD_ORDER_TYPE extends SdkStructure
+ {
+ public static final int EM_RECORD_ORDER_TYPE_UNKNOWN = 0; // 未知
+ public static final int EM_RECORD_ORDER_TYPE_ASCENT = 1; // 升序
+ public static final int EM_RECORD_ORDER_TYPE_DESCENT = 2; // 降序
+ }
+
+ // 开门方式(门禁事件,门禁出入记录,实际的开门方式)
+ public static class NET_ACCESS_DOOROPEN_METHOD extends SdkStructure {
+ public static final int NET_ACCESS_DOOROPEN_METHOD_UNKNOWN = 0;
+ public static final int NET_ACCESS_DOOROPEN_METHOD_PWD_ONLY = 1; // 密码开锁
+ public static final int NET_ACCESS_DOOROPEN_METHOD_CARD = 2; // 刷卡开锁
+ public static final int NET_ACCESS_DOOROPEN_METHOD_CARD_FIRST = 3; // 先刷卡后密码开锁
+ public static final int NET_ACCESS_DOOROPEN_METHOD_PWD_FIRST = 4; // 先密码后刷卡开锁
+ public static final int NET_ACCESS_DOOROPEN_METHOD_REMOTE = 5; // 远程开锁,如通过室内机或者平台对门口机开锁
+ public static final int NET_ACCESS_DOOROPEN_METHOD_BUTTON = 6; // 开锁按钮进行开锁
+ public static final int NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT = 7; // 信息开锁
+ public static final int NET_ACCESS_DOOROPEN_METHOD_PWD_CARD_FINGERPRINT = 8; // 密码+刷卡+信息组合开锁
+ public static final int NET_ACCESS_DOOROPEN_METHOD_PWD_FINGERPRINT = 10; // 密码+信息组合开锁
+ public static final int NET_ACCESS_DOOROPEN_METHOD_CARD_FINGERPRINT = 11; // 刷卡+信息组合开锁
+ public static final int NET_ACCESS_DOOROPEN_METHOD_PERSONS = 12; // 多人开锁
+ public static final int NET_ACCESS_DOOROPEN_METHOD_KEY = 13; // 钥匙开门
+ public static final int NET_ACCESS_DOOROPEN_METHOD_COERCE_PWD = 14; // 胁迫密码开门
+ public static final int NET_ACCESS_DOOROPEN_METHOD_QRCODE = 15; // 二维码开门
+ public static final int NET_ACCESS_DOOROPEN_METHOD_FACE_RECOGNITION = 16; // 目标识别开门
+ public static final int NET_ACCESS_DOOROPEN_METHOD_FACEIDCARD = 18; // 人证对比
+ public static final int NET_ACCESS_DOOROPEN_METHOD_FACEIDCARD_AND_IDCARD = 19; // 证件+ 人证比对
+ public static final int NET_ACCESS_DOOROPEN_METHOD_BLUETOOTH = 20; // 蓝牙开门
+ public static final int NET_ACCESS_DOOROPEN_METHOD_CUSTOM_PASSWORD = 21; // 个性化密码开门
+ public static final int NET_ACCESS_DOOROPEN_METHOD_USERID_AND_PWD = 22; // UserID+密码
+ public static final int NET_ACCESS_DOOROPEN_METHOD_FACE_AND_PWD = 23; // 人脸+密码开锁
+ public static final int NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT_AND_PWD = 24; // 信息+密码开锁
+ public static final int NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT_AND_FACE = 25; // 信息+人脸开锁
+ public static final int NET_ACCESS_DOOROPEN_METHOD_CARD_AND_FACE = 26; // 刷卡+人脸开锁
+ public static final int NET_ACCESS_DOOROPEN_METHOD_FACE_OR_PWD = 27; // 人脸或密码开锁
+ public static final int NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT_OR_PWD = 28; // 信息或密码开锁
+ public static final int NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT_OR_FACE = 29; // 信息或人脸开锁
+ public static final int NET_ACCESS_DOOROPEN_METHOD_CARD_OR_FACE = 30; // 刷卡或人脸开锁
+ public static final int NET_ACCESS_DOOROPEN_METHOD_CARD_OR_FINGERPRINT = 31; // 刷卡或信息开锁
+ public static final int NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT_AND_FACE_AND_PWD = 32; // 信息+人脸+密码开锁
+ public static final int NET_ACCESS_DOOROPEN_METHOD_CARD_AND_FACE_AND_PWD = 33; // 刷卡+人脸+密码开锁
+ public static final int NET_ACCESS_DOOROPEN_METHOD_CARD_AND_FINGERPRINT_AND_PWD = 34; // 刷卡+信息+密码开锁
+ public static final int NET_ACCESS_DOOROPEN_METHOD_CARD_AND_PWD_AND_FACE = 35; // 卡+信息+人脸组合开锁
+ public static final int NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT_OR_FACE_OR_PWD = 36; // 信息或人脸或密码
+ public static final int NET_ACCESS_DOOROPEN_METHOD_CARD_OR_FACE_OR_PWD = 37; // 卡或人脸或密码开锁
+ public static final int NET_ACCESS_DOOROPEN_METHOD_CARD_OR_FINGERPRINT_OR_FACE = 38; // 卡或信息或人脸开锁
+ public static final int NET_ACCESS_DOOROPEN_METHOD_CARD_AND_FINGERPRINT_AND_FACE_AND_PWD = 39; // 卡+信息+人脸+密码组合开锁
+ public static final int NET_ACCESS_DOOROPEN_METHOD_CARD_OR_FINGERPRINT_OR_FACE_OR_PWD = 40; // 卡或信息或人脸或密码开锁
+ public static final int NET_ACCESS_DOOROPEN_METHOD_FACEIPCARDANDIDCARD_OR_CARD_OR_FACE = 41; // (证件+人证比对)或 刷卡 或 人脸
+ public static final int NET_ACCESS_DOOROPEN_METHOD_FACEIDCARD_OR_CARD_OR_FACE = 42; // 人证比对 或 刷卡(二维码) 或 人脸
+ public static final int NET_ACCESS_DOOROPEN_METHOD_DTMF = 43; // DTMF开锁(包括SIPINFO,RFC2833,INBAND)
+ public static final int NET_ACCESS_DOOROPEN_METHOD_REMOTE_QRCODE = 44; // 远程二维码开门
+ public static final int NET_ACCESS_DOOROPEN_METHOD_REMOTE_FACE = 45; // 远程人脸开门
+ public static final int NET_ACCESS_DOOROPEN_METHOD_CITIZEN_FINGERPRINT = 46; // 人证比对开门(信息)
+ }
+
+ // 卡类型
+ public static class NET_ACCESSCTLCARD_TYPE {
+ public static final int NET_ACCESSCTLCARD_TYPE_UNKNOWN = -1;
+ public static final int NET_ACCESSCTLCARD_TYPE_GENERAL = 0; // 一般卡
+ public static final int NET_ACCESSCTLCARD_TYPE_VIP = 1; // 卡
+ public static final int NET_ACCESSCTLCARD_TYPE_GUEST = 2; // 来宾卡
+ public static final int NET_ACCESSCTLCARD_TYPE_PATROL = 3; // 巡逻卡
+ public static final int NET_ACCESSCTLCARD_TYPE_BLACKLIST = 4; // 禁止名单卡
+ public static final int NET_ACCESSCTLCARD_TYPE_CORCE = 5; // 胁迫卡
+ public static final int NET_ACCESSCTLCARD_TYPE_POLLING = 6; // 巡检卡
+ public static final int NET_ACCESSCTLCARD_TYPE_MOTHERCARD = 0xff; // 母卡
+ }
+
+ // 门禁刷卡记录记录集信息
+ public static class NET_RECORDSET_ACCESS_CTL_CARDREC extends SdkStructure {
+ public int dwSize;
+ public int nRecNo; // 记录集编号,只读
+ public byte[] szCardNo = new byte[NET_MAX_CARDNO_LEN]; // 卡号
+ public byte[] szPwd = new byte[NET_MAX_CARDPWD_LEN]; // 密码
+ public NET_TIME stuTime; // 刷卡时间
+ public int bStatus; // 刷卡结果,TRUE表示成功,FALSE表示失败
+ public int emMethod; // 开门方式 NET_ACCESS_DOOROPEN_METHOD
+ public int nDoor; // 门号,即CFG_CMD_ACCESS_EVENT配置CFG_ACCESS_EVENT_INFO的数组下标
+ public byte[] szUserID = new byte[NET_MAX_USERID_LEN]; // 用户ID
+ public int nReaderID; // 读卡器ID (废弃,不再使用)
+ public byte[] szSnapFtpUrl = new byte[MAX_PATH]; // 开锁抓拍上传的FTP地址
+ public byte[] szReaderID = new byte[NET_COMMON_STRING_32]; // 读卡器ID // 开门并上传抓拍照片,在记录集记录存储地址,成功才有
+ public int emCardType; // 卡类型 NET_ACCESSCTLCARD_TYPE
+ public int nErrorCode; // 开门失败的原因,仅在bStatus为FALSE时有效
+ // 0x00 没有错误
+ // 0x10 未授权
+ // 0x11 卡挂失或注销
+ // 0x12 没有该门权限
+ // 0x13 开门模式错误
+ // 0x14 有效期错误
+ // 0x15 防反潜模式
+ // 0x16 胁迫报警未打开
+ // 0x17 门常闭状态
+ // 0x18 AB互锁状态
+ // 0x19 巡逻卡
+ // 0x1A 设备处于闯入报警状态
+ // 0x20 时间段错误
+ // 0x21 假期内开门时间段错误
+ // 0x30 需要先验证有首卡权限的卡片
+ // 0x40 卡片正确,输入密码错误
+ // 0x41 卡片正确,输入密码超时
+ // 0x42 卡片正确,输入信息错误
+ // 0x43 卡片正确,输入信息超时
+ // 0x44 信息正确,输入密码错误
+ // 0x45 信息正确,输入密码超时
+ // 0x50 组合开门顺序错误
+ // 0x51 组合开门需要继续验证
+ // 0x60 验证通过,控制台未授权
+ // 0x61 卡片正确,人脸错误
+ // 0x62 卡片正确,人脸超时
+ // 0x63 重复进入
+ // 0x64 未授权,需要后端平台识别
+ // 0x65 体温过高
+ // 0x66 未戴口罩
+ // 0x67 健康码获取失败
+ // 0x68 黄码禁止通行
+ // 0x69 红码禁止通行
+ // 0x6a 健康码无效
+ // 0x6b 绿码验证通过
+ // 0x70 获取健康码信息
+ public byte[] szRecordURL = new byte[NET_COMMON_STRING_128]; // 刷卡录像的地址
+ public int nNumbers; // 抓图的张数
+ public int emAttendanceState; // 考勤状态 ,参考 NET_ATTENDANCESTATE
+ public int emDirection; // 开门方向, 参考 NET_ENUM_DIRECTION_ACCESS_CTL
+ public byte[] szClassNumber = new byte[MAX_CLASS_NUMBER_LEN]; // 班级(考勤)
+ public byte[] szPhoneNumber = new byte[MAX_PHONENUMBER_LEN]; // 电话(考勤)
+ public byte[] szCardName = new byte[NET_MAX_CARDNAME_LEN]; // 卡命名
+ public byte[] szSN = new byte[NET_COMMON_STRING_32]; // 智能锁序列号,无线配件需要该字段
+ public int bCitizenIDResult; // 人证比对结果
+ public byte[] szCitizenIDName = new byte[30]; // 名字
+ public byte nRedScarfResult; //红领巾识别结果 0:未知 1:未佩戴 2:已佩戴;255:未使能算法识别
+ public byte[] byReserved1 = new byte[1]; // 字节对齐
+ public int emCitizenIDSex; // 性别, 详见EM_CITIZENIDCARD_SEX_TYPE
+ public int emCitizenIDEC; // 民族, 详见EM_CITIZENIDCARD_EC_TYPE
+ public NET_TIME stuCitizenIDBirth; // 出生日期(时分秒无效)
+ public byte[] szCitizenIDAddress = new byte[108]; // 住址
+ public byte[] szCitizenIDAuthority = new byte[48]; // 签发机关
+ public NET_TIME stuCitizenIDStart; // 有效起始日期(时分秒无效)
+ public NET_TIME stuCitizenIDEnd; // 有效截止日期(时分秒无效, 年为负数时表示长期有效)
+ public int bIsEndless; // 是否长期有效
+ public byte[] szSnapFaceURL = new byte[NET_COMMON_STRING_128]; // 人脸图片保存地址
+ public byte[] szCitizenPictureURL = new byte[NET_COMMON_STRING_128]; // 证件图片保存地址
+ public byte[] szCitizenIDNo = new byte[20]; // 证件号码
+ public int emSex; // 性别, 详见NET_ACCESSCTLCARD_SEX
+ public byte[] szRole = new byte[MAX_COMMON_STRING_32]; // 角色
+ public byte[] szProjectNo = new byte[MAX_COMMON_STRING_32]; // 项目ID
+ public byte[] szProjectName = new byte[MAX_COMMON_STRING_64]; // 项目名称
+ public byte[] szBuilderName = new byte[MAX_COMMON_STRING_64]; // 施工单位全称
+ public byte[] szBuilderID = new byte[MAX_COMMON_STRING_32]; // 施工单位ID
+ public byte[] szBuilderType = new byte[MAX_COMMON_STRING_32]; // 施工单位类型
+ public byte[] szBuilderTypeID = new byte[MAX_COMMON_STRING_8]; // 施工单位类别ID
+ public byte[] szPictureID = new byte[MAX_COMMON_STRING_64]; // 人员照片ID
+ public byte[] szContractID = new byte[MAX_COMMON_STRING_16]; // 原合同系统合同编号
+ public byte[] szWorkerTypeID = new byte[MAX_COMMON_STRING_8]; // 工种ID
+ public byte[] szWorkerTypeName = new byte[MAX_COMMON_STRING_32]; // 工种名称
+ public int bPersonStatus; // 人员状态, TRUE:启用, FALSE:禁用
+ public int emHatStyle; // 帽子类型
+ public int emHatColor; // 帽子颜色
+ public NET_MAN_TEMPERATURE_INFO stuManTemperatureInfo; // 人员温度信息
+ public int nCompanionInfo; // 陪同人员 stuCompanionInfo 个数
+ public NET_COMPANION_INFO[] stuCompanionInfo = new NET_COMPANION_INFO[12]; // 陪同人员信息:姓名、卡号字段有效
+ public int emMask; // 口罩状态(EM_MASK_STATE_UNKNOWN、EM_MASK_STATE_NOMASK、EM_MASK_STATE_WEAR 有效) EM_MASK_STATE_TYPE
+ public int nFaceIndex; // 一人多脸的人脸序号
+ public int nScore; // 人脸质量评分
+ public int nLiftNo; // 电梯编号
+ public byte[] szQRCode = new byte[512]; // 二维码
+ /**
+ * EM_FACE_CHECK
+ */
+ public int emFaceCheck; // 功能,刷卡开门时,门禁后台校验人脸是否是同一个人
+ /**
+ * EM_QRCODE_IS_EXPIRED
+ */
+ public int emQRCodeIsExpired; // 二维码是否过期。默认值0
+ /**
+ * EM_QRCODE_STATE
+ */
+ public int emQRCodeState; // 二维码状态
+ public NET_TIME stuQRCodeValidTo; // 二维码截止日期
+ /**
+ * EM_LIFT_CALLER_TYPE
+ */
+ public int emLiftCallerType; // 梯控方式触发者
+ public int nBlockId; // 上报事件数据序列号从1开始自增
+ public byte[] szSection = new byte[64]; // 部门名称
+ public byte[] szWorkClass = new byte[256]; // 工作班级
+ /**
+ * EM_TEST_ITEMS
+ * */
+ public int emTestItems; // 测试项目
+ /**
+ * NET_TEST_RESULT
+ */
+ public NET_TEST_RESULT stuTestResult; // ESD阻值测试结果
+ public int bUseCardNameEx; // 是否使用卡命名扩展
+ public byte[] szCardNameEx = new byte[128]; // 卡命名扩展
+ public int nHSJCResult; //核酸检测报告结果 -1: 未知 2: 未检测 3: 过期
+ public int nVaccinateFlag; //是否已接种新冠疫苗(0:否,1:是)
+ public byte[] szVaccineName = new byte[128]; //新冠疫苗名称
+ public int nDateCount; //历史接种日期有效数
+ // public byte[] szVaccinateDate=new byte[8*32]; //历史接种日期 历史接种日期 (yyyy-MM-dd)。 ”0000-00-00”,表示已接种,但无具体日期。
+ /**
+ * 历史接种日期 (yyyy-MM-dd). 如提供不了时间, 则填"0000-00-00", 表示已接种
+ */
+ public VaccinateDateByteArr[] szVaccinateDate = (VaccinateDateByteArr[])new VaccinateDateByteArr().toArray(8);
+ /**
+ * EM_TRAVELCODE_COLOR_STATE
+ */
+ public int emTravelCodeColor; //返回行程码状态信息
+ public int nCityCount; //最近14天经过的城市名有效数
+ /**
+ * 最近14天经过的城市名. 按时间顺序排列, 最早经过的城市放第一个
+ */
+ public PassingCityByteArr[] szPassingCity = (PassingCityByteArr[])new PassingCityByteArr().toArray(16);
+ public byte[] szTrafficPlate = new byte[32]; //车牌
+ public byte[] szRecordLocalUrl = new byte[128]; // 刷卡录像的地址
+ public byte[] szHSJCReportDate = new byte[32]; // 核酸检测报告日期(格式: yyyy-MM-dd)
+ public int nHSJCExpiresIn; // 核酸检测报告有效期(单位:天)
+ public byte[] szAntigenReportDate = new byte[32]; // 抗原检测报告日期(格式: yyyy-MM-dd)
+ public int nAntigenStatus; // 抗原检测报告结果: -1:未知2: 未检测 3: 过期
+ public int nAntigenExpiresIn; // 抗原检测报告有效期(单位:天)
+ public byte[] szCheckOutType = new byte[32]; // 签出类型
+ public byte[] szCheckOutCause = new byte[512]; // 签出原因
+ public int nCreateTimeRealUTC; // 刷卡时间,真实UTC时间戳
+ public byte[] szReserved = new byte[20]; // 字节对齐
+ public byte[] szLocationName = new byte[256]; // 场所码名称
+ public byte[] szLocationAddress = new byte[256]; // 场所码详细地址
+ public byte[] szLocationType = new byte[256]; // 场所码类型
+ public int nPassResult; //通行结果,人员是否有同行 0-未知 1-人员进入 2-人员退出 3-人员未通行
+ public int nCustomerPWDType; //设备在不同的密码模式下上报的密码类型,0:未知 1,唤醒密码模式 2,陪同密码模式 3胁迫密码模式
+
+ public NET_RECORDSET_ACCESS_CTL_CARDREC() {
+ this.dwSize = this.size();
+ for(int i = 0; i0时表示支持多场景, stuMultiScene有效
+ //public CFG_ANALYSEGLOBAL_SCENE[] stuMultiScene = (CFG_ANALYSEGLOBAL_SCENE[])new CFG_ANALYSEGLOBAL_SCENE().toArray(MAX_ANALYSE_SCENE_NUM); // 多场景配置
+ public byte[] stuMultiScene = new byte[189872 * MAX_ANALYSE_SCENE_NUM];
+ public int nSceneCount; // 实际场景个数
+ public SCENE_TYPE_LIST[] szSceneTypeListArr = (SCENE_TYPE_LIST[])new SCENE_TYPE_LIST().toArray(MAX_SCENE_TYPE_LIST_SIZE); // 场景列别,同一视频通道下启用多个场景时,表示第2个之后的方案(可选)
+ public int emDepthType; // 画面景深, 参考 EM_DEPTH_TYPE
+ public int nPtzPresetId; // 云台预置点编号,0~255
+ public int unLongitude; // 经度 单位百万分之一度
+ public int unLatitude; // 纬度 单位百万分之一度
+ public int bSceneTypeListEx; // szSceneTypeListEx 是否有效,当为TRUE时,使用 szSceneTypeListEx;否则使用 szSceneTypeList
+ public int nSceneCountEx; // 实际场景个数扩展,szSceneTypeListEx 的有效个数
+ public byte[] szSceneTypeListEx = new byte[32*128]; // 场景列表扩展,szSceneTypeList 扩展字段
+ public CFG_ANATOMYTEMP_SCENCE_INFO stuAnatomyTempScene; // 人体测温场景配置
+ public Pointer pstuDetectRegionsInfo = new Pointer(new CFG_DETECT_REGIONS_INFO().size()); // 规则相关检测区域信息,CFG_DETECT_REGIONS_INFO
+ public int nMaxDetectRegions; // 最大规则相关检测区域个数,内存由客户申请
+ public int nDetectRegionsNum; // 规则相关检测区域信息个数
+ public CFG_DETAIL_DRIVEASSISTANT_INFO stuDriveAssistant = new CFG_DETAIL_DRIVEASSISTANT_INFO(); // 驾驶辅助场景配置
+ public int bParkingSpaceChangeEnable; // 车位变更使能 FALSE:不使能 TRUE:使能
+ public int emSceneType; // szSceneType的枚举形式
+ public int nSceneCountEm; // SceneTypeList数量
+ public int[] emSceneTypeList = new int[32]; // szSceneTypeList的枚举形式
+ public CFG_PARKING_STATISTICS_INFO stuParkingStatistics; // 车位统计场景配置信息, szSubType为ParkingStatistics时有效
+
+ @Override
+ public int fieldOffset(String name) {
+ return super.fieldOffset(name);
+ }
+
+ public CFG_ANALYSEGLOBAL_INFO(){
+
+ this.setAutoSynch(false);
+
+
+ }
+ }
+
+ // 人体测温场景配置
+ public static class CFG_ANATOMYTEMP_SCENCE_INFO extends SdkStructure
+ {
+ public int emFaceDetectType; // 目标检测智能类型(参考CFG_EM_FACEDETECT_TYPE)
+ public CFG_FACEDETECT_VISUAL_INFO stuVisual; // 可见光配置,emFaceDetectType为CFG_EM_FACEDETECT_TYPE_VISUAL或CFG_EM_FACEDETECT_TYPE_TIMESECTION时有效
+ public CFG_TIME_SECTION stuTimeSection; // 可见光时间段,emFaceDetectType为CFG_EM_FACEDETECT_TYPE_TIMESECTION时有效
+ public byte[] byReserved = new byte[1024]; // 预留字段
+ }
+
+ // 可见光配置
+ public static class CFG_FACEDETECT_VISUAL_INFO extends SdkStructure
+ {
+ public int nFaceAngleUp; // 需要检测的人脸向上(向下)最大偏角,超过此角度不上报,单位度,0-90。
+ public int nFaceAngleRight; // 需要检测的人脸向右(向左)最大偏角,超过此角度不上报,单位度,0-90。
+ public int nFaceRollRight; // 需要检测的人脸向右(向左)歪头最大偏角,超过此角度不上报,单位度,0-90。
+ public byte[] byReserved = new byte[1024]; // 预留字段
+ }
+
+ public static class PLATE_HINT extends SdkStructure
+ {
+ public byte[] szPlateHints = new byte[MAX_NAME_LEN]; // 车牌字符暗示数组,在拍摄图片质量较差车牌识别不确定时,根据此数组中的字符进行匹配,数组下标越小,匹配优先级越高
+ }
+
+ public static class SCENE_TYPE_LIST extends SdkStructure
+ {
+ public byte[] szSceneTypeList = new byte[CFG_COMMON_STRING_16]; // 场景列别,同一视频通道下启用多个场景时,表示第2个之后的方案(可选)
+ }
+
+ // 车道信息
+ public static class CFG_LANE extends SdkStructure
+ {
+ public int nLaneId; // 车道编号
+ public int nDirection; // 车道方向(车开往的方向),0-北 1-东北 2-东 3-东南 4-南 5-西南 6-西 7-西北
+ public CFG_POLYLINE[] stuLeftLine = (CFG_POLYLINE[])new CFG_POLYLINE().toArray(MAX_POLYLINE_NUM); // 左车道线,车道线的方向表示车道方向,沿车道方向左边的称为左车道线
+ public int nLeftLineNum; // 左车道线顶点数
+ public CFG_POLYLINE[] stuRightLine = (CFG_POLYLINE[])new CFG_POLYLINE().toArray(MAX_POLYLINE_NUM); // 右车道线,车道线的方向表示车道方向,沿车道方向右边的称为右车道线
+ public int nRightLineNum; // 右车道线顶点数
+ public int nLeftLineType; // 左车道线属性,1-表示白实线,2- 白虚线,3- 黄线
+ public int nRightLineType; // 右车道线属性,1-表示白实线,2- 白虚线,3- 黄线
+ public int bDriveDirectionEnable; // 车道行驶方向使能, 1-true 0-false
+ public int nDriveDirectionNum; // 车道行驶方向数
+ public DRIVE_DIRECTION[] szDriveDirectionArr = (DRIVE_DIRECTION[])new DRIVE_DIRECTION().toArray(MAX_LIGHT_DIRECTION); // 车道行驶方向,"Straight" 直行,"TurnLeft" 左转,"TurnRight" 右转,"U-Turn":掉头
+ public int nStopLineNum; // 车道对应停止线顶点数
+ public CFG_POLYLINE[] stuStopLine = (CFG_POLYLINE[])new CFG_POLYLINE().toArray(MAX_POLYLINE_NUM); // 车道对应停止线
+ public int nTrafficLightNumber; // 车道对应的红绿灯组编号
+ public byte abDetectLine; // 对应能力集
+ public byte abPreLine;
+ public byte abPostLine;
+ public byte[] byReserved = new byte[1];
+ public int nDetectLine;
+ public CFG_POLYLINE[] stuDetectLine = (CFG_POLYLINE[])new CFG_POLYLINE().toArray(MAX_POLYLINE_NUM); // 车道对应的检测线
+ public int nPreLine;
+ public CFG_POLYLINE[] stuPreLine = (CFG_POLYLINE[])new CFG_POLYLINE().toArray(MAX_POLYLINE_NUM); // 车道对应的前置线
+ public int nPostLine;
+ public CFG_POLYLINE[] stuPostLine = (CFG_POLYLINE[])new CFG_POLYLINE().toArray(MAX_POLYLINE_NUM); // 车道对应的后置线
+ public CFG_TRAFFIC_FLOWSTAT_DIR_INFO stuTrafficFlowDir; // 车道流量信息
+ public int emRankType; // 道路等级,用于车流量统计上报交通状态, 参考 EM_LANE_RANK_TYPE
+ public int nRoadwayNumber; // 用户自定义车道号, 1-16
+ }
+
+ public static class DRIVE_DIRECTION extends SdkStructure
+ {
+ public byte[] szDriveDirection = new byte[MAX_NAME_LEN]; // 车道行驶方向,"Straight" 直行,"TurnLeft" 左转,"TurnRight" 右转,"U-Turn":掉头
+ }
+
+ // 折线的端点信息
+ public static class CFG_POLYLINE extends SdkStructure
+ {
+ public int nX; //0~8191
+ public int nY;
+ }
+
+ // 车辆流量统计车道方向信息
+ public static class CFG_TRAFFIC_FLOWSTAT_DIR_INFO extends SdkStructure
+ {
+ public int emDrivingDir; //行驶方向, 参考 CFG_FLOWSTAT_DIRECTION
+ public byte[] szUpGoing = new byte[CFG_FLOWSTAT_ADDR_NAME]; //上行地点
+ public byte[] szDownGoing = new byte[CFG_FLOWSTAT_ADDR_NAME]; //下行地点
+ }
+
+ // 交通灯组配置信息
+ public static class CFG_LIGHTGROUPS extends SdkStructure
+ {
+ public int nLightGroupId; // 灯组编号
+ public CFG_RECT stuLightLocation; // 灯组坐标
+ public int nDirection; // 灯组的方向,1- 灯组水平向,2- 灯组垂直向
+ public int bExternalDetection; // 是否为外接红绿灯信号,当外接红绿灯时,以外界信号为判断依据。外界信号每次跳变时通知
+ public int bSwingDetection; // 是否支持自适应灯组摇摆检测,在风吹或者容易震动的场景下,位置会进行一定的浮动偏差。如果由算法自行检测,会增加检测时间
+ public int nLightNum; // 灯组中交通灯的数量
+ public CFG_LIGHTATTRIBUTE[] stuLightAtrributes = (CFG_LIGHTATTRIBUTE[])new CFG_LIGHTATTRIBUTE().toArray(MAX_LIGHT_NUM); // 灯组中各交通灯的属性
+ }
+
+ // 交通灯属性
+ public static class CFG_LIGHTATTRIBUTE extends SdkStructure
+ {
+ public int bEnable; // 当前交通灯是否有效,与车辆通行无关的交通需要设置无效
+ public int nTypeNum;
+ public LIGHT_TYPE[] szLightTypeArr = (LIGHT_TYPE[])new LIGHT_TYPE().toArray(MAX_LIGHT_TYPE); // 当前交通灯显现内容(包括:红-Red,黄-Yellow,绿-Green,倒计时-Countdown),如某交通灯可以显示红黄绿三种颜色,某交通灯只显示倒计时
+ public int nDirectionNum;
+ public DIRECTION[] szDirectionArr = (DIRECTION[])new DIRECTION().toArray(MAX_LIGHT_DIRECTION); // 交通灯指示的行车方向,"Straight": 直行,"TurnLeft":左转,"TurnRight":右转,"U-Turn": 掉头
+ public int nYellowTime; // 黄灯亮时间
+ }
+
+ public static class LIGHT_TYPE extends SdkStructure
+ {
+ public byte[] szLightType = new byte[MAX_NAME_LEN]; // 当前交通灯显现内容(包括:红-Red,黄-Yellow,绿-Green,倒计时-Countdown),如某交通灯可以显示红黄绿三种颜色,某交通灯只显示倒计时
+ }
+
+ public static class DIRECTION extends SdkStructure
+ {
+ public byte[] szDirection = new byte[MAX_NAME_LEN]; // 交通灯指示的行车方向,"Straight": 直行,"TurnLeft":左转,"TurnRight":右转,"U-Turn": 掉头
+ }
+
+ // 交通灯颜色校正配置
+ public static class CFG_ADJUST_LIGHT_COLOR extends SdkStructure
+ {
+ public int nMode; // 红灯颜色校正模式 0:未定义 1:红绿灯才校正 2:一直校正
+ public int bEnable; // 是否允许图片红绿灯颜色校正
+ public int nLevel; // 校正等级 范围0~100,数值越大矫正越明显
+ public int bVideoEnable; // 是否启用视频涂红功能,存在此项时,Level值使用LevelSeparate下的Level值
+ public ADJUST_LEVEL_SEP[] stLevelSep = (ADJUST_LEVEL_SEP[])new ADJUST_LEVEL_SEP().toArray(4); // 分立等级,目前为4个
+ }
+
+ // 交通灯颜色校正配置,分立项
+ public static class ADJUST_LEVEL_SEP extends SdkStructure
+ {
+ public int nType; // 0:未定义,1:视频,2:图片
+ public int nTime; // 0:未定义,1:白天,2:夜晚
+ public int nLevel; // 范围0~100,数值越大矫正越明显
+ }
+
+ public static class CFG_PARKING_SPACE extends SdkStructure
+ {
+ public int nNumber; //车位编号
+ public CFG_REGION stArea; //检测区域
+ public int nShieldAreaNum; //有效屏蔽区个数
+ public CFG_REGION[] stShieldArea = (CFG_REGION[])new CFG_REGION().toArray(MAX_SHIELD_AREA_NUM); //屏蔽区域
+ public byte[] szCustomParkNo = new byte[CFG_COMMON_STRING_32]; // 自定义车位名称
+ //public int nPtzPresetId; // 云台预置点编号,0~255
+ }
+
+ public static class CFG_STAFF extends SdkStructure
+ {
+ public CFG_POLYLINE stuStartLocation; // 起始坐标点
+ public CFG_POLYLINE stuEndLocation; // 终止坐标点
+ public float nLenth; // 实际长度,单位米
+ public int emType; // 标尺类型, 参考 EM_STAFF_TYPE
+ }
+
+ // 标定区域,普通场景使用
+ public static class CFG_CALIBRATEAREA_INFO extends SdkStructure
+ {
+ public int nLinePoint; // 水平方向标尺线顶点数
+ public CFG_POLYGON[] stuLine = (CFG_POLYGON[])new CFG_POLYGON().toArray(MAX_POLYLINE_NUM); // 水平方向标尺线
+ public float fLenth; // 实际长度
+ public CFG_REGION stuArea; // 区域
+ public int nStaffNum; // 垂直标尺数
+ public CFG_STAFF[] stuStaffs = (CFG_STAFF[])new CFG_STAFF().toArray(MAX_STAFF_NUM); // 垂直标尺
+ public int emType; // 区域类型, 参考 EM_CALIBRATEAREA_TYPE
+ public int emMethodType; // 标定方式, 参考 EM_METHOD_TYPE
+ }
+
+ // 目标识别场景
+ public static class CFG_FACERECOGNITION_SCENCE_INFO extends SdkStructure
+ {
+ public double dbCameraHeight; // 摄像头离地高度 单位:米
+ public double dbCameraDistance; // 摄像头离地面检测区域中心的水平距离 单位:米
+ public int nMainDirection; // 人流主要方向顶点数
+ public CFG_POLYGON[] stuMainDirection = (CFG_POLYGON[])new CFG_POLYGON().toArray(MAX_POLYLINE_NUM); // 人流主要方向,第一个点是起始点,第二个点是终止点
+ public byte byFaceAngleDown; // 需要检测的人脸向下最大偏角, 单位度,-45~45,负数表示人脸向画面上边,正数表示人脸向画面下边,0表示人脸垂直方向上正对着摄像头。
+ public byte byFaceAngleUp; // 需要检测的人脸向上最大偏角,单位度,-45~45,负数表示人脸向画面上边,正数表示人脸向画面下边,0表示人脸垂直方向上正对着摄像头。
+ public byte byFaceAngleLeft; // 需要检测的人脸向左最大偏角,单位度,-45~45,负数表示人脸向画面左边,正数表示人脸向画面右边,0表示人脸水平方向上正对着摄像头
+ public byte byFaceAngleRight; // 需要检测的人脸向右最大偏角,单位度,-45~45,负数表示人脸向画面左边,正数表示人脸向画面右边,0表示人脸水平方向上正对着摄像头
+ public int emDetectType; // 目标检测类型, 参考 EM_FACEDETECTION_TYPE
+ }
+
+ // 目标检测场景
+ public static class CFG_FACEDETECTION_SCENCE_INFO extends SdkStructure
+ {
+ public double dbCameraHeight; // 摄像头离地高度 单位:米
+ public double dbCameraDistance; // 摄像头离地面检测区域中心的水平距离 单位:米
+ public int nMainDirection; // 人流主要方向顶点数
+ public CFG_POLYGON[] stuMainDirection = (CFG_POLYGON[])new CFG_POLYGON().toArray(MAX_POLYLINE_NUM); // 人流主要方向,第一个点是起始点,第二个点是终止点
+ public byte byFaceAngleDown; // 需要检测的人脸向下最大偏角, 单位度,-45~45,负数表示人脸向画面上边,正数表示人脸向画面下边,0表示人脸垂直方向上正对着摄像头。
+ public byte byFaceAngleUp; // 需要检测的人脸向上最大偏角,单位度,-45~45,负数表示人脸向画面上边,正数表示人脸向画面下边,0表示人脸垂直方向上正对着摄像头。
+ public byte byFaceAngleLeft; // 需要检测的人脸向左最大偏角,单位度,-45~45,负数表示人脸向画面左边,正数表示人脸向画面右边,0表示人脸水平方向上正对着摄像头
+ public byte byFaceAngleRight; // 需要检测的人脸向右最大偏角,单位度,-45~45,负数表示人脸向画面左边,正数表示人脸向画面右边,0表示人脸水平方向上正对着摄像头
+ public int emDetectType; // 目标检测类型, 参考 EM_FACEDETECTION_TYPE
+ }
+
+ public static class CFG_TIME_PERIOD extends SdkStructure
+ {
+ public CFG_TIME stuStartTime;
+ public CFG_TIME stuEndTime;
+ }
+
+ public static class CFG_TIME extends SdkStructure
+ {
+ public int dwHour; // 时
+ public int dwMinute; // 分
+ public int dwSecond; // 秒
+ }
+
+ // 多场景标定白天和黑夜配置
+ public static class CFG_TIME_PERIOD_SCENE_INFO extends SdkStructure
+ {
+ public int dwMaxTimePeriodSceneNum; // 多场景标定白天和黑夜配置最大个数(需要申请此大小内存)
+ public int dwRetTimePeriodSceneNum; // 实际包含多场景标定白天和黑夜配置个数
+ public Pointer pstuTimePeriodScene; // 多场景标白天和黑夜配置域单元,由用户申请内存,大小为sizeof(CFG_TIME_PERIOD_SCENE_UNIT)*dwMaxTimePeriodSceneNum
+ // 指向 CFG_TIME_PERIOD_SCENE_UNIT[]
+ }
+
+ // 多场景标定区域配置
+ public static class CFG_CALIBRATEAREA_SCENE_INFO extends SdkStructure
+ {
+ public int dwMaxSceneCalibrateAreaNum; // 多场景标定区域最大个数(需要申请此大小内存)
+ public int dwRetSceneCalibrateAreaNum; // 实际包含多场景标定区域个数
+ public Pointer pstuCalibrateArea; // 多场景标定区域单元, 由用户申请内存, 指向 CFG_CALIBRATEAREA_SCENE_UNIT[]。
+ // 大小为 sizeof(CFG_CALIBRATEAREA_SCENE_UNIT)*dwMaxSceneCalibrateAreaNum
+ }
+
+ // 昼夜算法切换模式
+ public static class CFG_TIMEPERIOD_SWITCH_MODE extends SdkStructure
+ {
+ public static final int CFG_TIMEPERIOD_SWITCH_MODE_UNKNOWN = 0; // 未知
+ public static final int CFG_TIMEPERIOD_SWITCH_MODE_BYCOLOR = 1; // 通过色彩切换
+ public static final int CFG_TIMEPERIOD_SWITCH_MODE_BYBRIGHTNESS = 2; // 通过亮度切换
+ public static final int CFG_TIMEPERIOD_SWITCH_MODE_BYPOS = 3; // 通过经纬度计算日出日落时间切换
+ }
+
+ // 视频分析全局配置场景
+ public static class CFG_ANALYSEGLOBAL_SCENE extends SdkStructure
+ {
+ public byte[] szSceneType = new byte[MAX_NAME_LEN]; // 应用场景,详见"支持的场景列表"
+ public union union = new union();
+ // 以下为场景具体信息, 根据szSceneType决定哪个场景有效
+ public static class union extends Union {
+ public CFG_FACEDETECTION_SCENCE_INFO stuFaceDetectionScene; // 目标检测场景/目标识别检查
+ public CFG_TRAFFIC_SCENE_INFO stuTrafficScene; // 交通场景
+ public CFG_NORMAL_SCENE_INFO stuNormalScene; // 普通场景/远景场景/中景场景/近景场景/室内场景/人数统计场景
+ public CFG_TRAFFIC_TOUR_SCENE_INFO stuTrafficTourScene; // 交通巡视场景
+ public CFG_CROWD_SCENE_INFO stuCrowdScene; // 人群态势和人群密度场景
+ public CFG_ANATOMYTEMP_SCENCE_INFO stuAnatomyTempScene; // 人体测温场景
+ }
+ public int emDepthType; // 画面景深, 参考 EM_DEPTH_TYPE
+ public int nPtzPresetId; // 云台预置点编号,0~255
+ // 以下是有多个大类业务的情况
+ public int nSceneListCount; // 实际场景个数
+ public SCENE_TYPE_LIST[] szSceneTypeListArr = (SCENE_TYPE_LIST[])new SCENE_TYPE_LIST().toArray(MAX_SCENE_TYPE_LIST_SIZE); // 场景列别,同一视频通道下启用多个场景时,表示第2个之后的方案
+ // 多个大类业务时有效
+ public CFG_INTELLI_UNIFORM_SCENE stuUniformScene; // 统一场景配置
+ public int bSceneTypeListEx; // szSceneTypeListEx 是否有效,当为TRUE时,使用szSceneTypeListEx
+ public int nSceneListCountEx; // 实际场景个数扩展,szSceneTypeListEx 的有效个数
+ public byte[] szSceneTypeListEx = new byte[32*128]; // 场景列表扩展,szSceneTypeList 的扩展字段
+ public Pointer pstuDetectRegionsInfo; // 规则相关检测区域信息,CFG_DETECT_REGIONS_INFO
+ public int nMaxDetectRegions; // 最大规则相关检测区域个数,内存由客户申请
+ public int nDetectRegionsNum; // 规则相关检测区域信息个数
+ }
+
+ public static class CFG_CROWD_SCENE_INFO extends SdkStructure {
+ public float fCameraHeight; // 摄像头离地高度 单位:米
+ }
+
+ // 交通场景
+ public static class CFG_TRAFFIC_SCENE_INFO extends SdkStructure
+ {
+ public int abCompatibleMode;
+ public int nCompatibleMode; // 0:"OldTrafficRule" : 交通老规则兼容模式;1:"NewTrafficRule" : 交通新规则兼容模式;-1:字符串错误
+ public float fCameraHeight; // 摄像头离地高度 单位:米
+ public float fCameraDistance; // 摄像头离地面检测区域中心的水平距离 单位:米
+ public byte[] szSubType = new byte[MAX_NAME_LEN]; // 交通场景的子类型,"Gate" 卡口类型,"Junction" 路口类型
+ // "Tunnel"隧道类型 , "ParkingSpace"车位检测类型
+ // "Bridge"桥梁类型
+ // "Freeway"高速公路类型
+ public CFG_POLYGON stuNearDetectPoint; // 近景检测点
+ public CFG_POLYGON stuFarDectectPoint; // 远景检测点
+ public int nNearDistance; // NearDetectPoint,转换到实际场景中时,离摄像头垂直线的水平距离
+ public int nFarDistance; // FarDectectPoint,转换到实际场景中时,离摄像头垂直线的水平距离
+ public int nPlateHintNum; // 车牌字符暗示个数
+ public PLATE_HINT[] szPlateHintsArr = (PLATE_HINT[])new PLATE_HINT().toArray(MAX_PLATEHINT_NUM); // 车牌字符暗示数组,在拍摄图片质量较差车牌识别不确定时,根据此数组中的字符进行匹配,数组下标越小,匹配优先级越高
+ public int nLaneNum; // 车道数
+ public CFG_LANE[] stuLanes = (CFG_LANE[])new CFG_LANE().toArray(MAX_LANE_NUM); // 车道信息
+ public int nLightGroupNum; // 灯组数
+ public CFG_LIGHTGROUPS[] stLightGroups = (CFG_LIGHTGROUPS[])new CFG_LIGHTGROUPS().toArray(MAX_LIGHTGROUP_NUM); // 灯组配置信息
+ public int bHangingWordPlate; // 是否识别挂字车牌
+ public int bNonStdPolicePlate; // 是否识别非标准警牌
+ public int bYellowPlateLetter; // 是否识别黄牌字母
+ public int nReportMode; // 上报模式,0:未定义,1:上报所有违章车辆,2:上报车牌识别成功的违章车辆
+ public int nPlateMatch; // 车牌匹配率,0~100,多次识别车牌使用,表示重复识别车牌和前一次识别车牌的一致性要求
+ public int nJudgment; // 违章判定依据,0:未定义,1:按车道,2:按行驶方向,3:按车道和行驶方向
+ public int nLeftDivisionPtCount; // 左转弯分界线点数
+ public CFG_POLYLINE[] stLeftDivisionLine = (CFG_POLYLINE[])new CFG_POLYLINE().toArray(MAX_POLYLINE_NUM); // 左转弯分界线
+ public int nRightDivisionPtCount; // 右转弯分界线点数
+ public CFG_POLYLINE[] stRightDivisionLine = (CFG_POLYLINE[])new CFG_POLYLINE().toArray(MAX_POLYLINE_NUM); // 右转弯分界线
+ public CFG_ADJUST_LIGHT_COLOR stAdjustLightColor; // 交通灯颜色校正配置
+ public int nParkingSpaceNum; // 车位数
+ public CFG_PARKING_SPACE[] stParkingSpaces = (CFG_PARKING_SPACE[])new CFG_PARKING_SPACE().toArray(MAX_PARKING_SPACE_NUM); // 车位配置信息,每个元素代表一个车位
+ }
+
+ // 普遍场景
+ public static class CFG_NORMAL_SCENE_INFO extends SdkStructure
+ {
+ public float fCameraHeight; // 摄像头离地高度 单位:米
+ public float fCameraAngle; // 摄像头与垂方向的夹角 单位度,0~90,
+ public float fCameraDistance; // 摄像头离地面检测区域中心的水平距离 单位:米
+ public CFG_POLYGON stuLandLineStart; // 地平线线段起始点(点的坐标坐标归一化到[0,8192)区间。)
+ public CFG_POLYGON stuLandLineEnd; // 地平线线段终止点(点的坐标坐标归一化到[0,8192)区间。)
+ }
+
+ // 交通巡视场景
+ public static class CFG_TRAFFIC_TOUR_SCENE_INFO extends SdkStructure
+ {
+ public int nPlateHintNum; // 车牌字符暗示个数
+ public PLATE_HINT[] szPlateHintsArr = (PLATE_HINT[])new PLATE_HINT().toArray(MAX_PLATEHINT_NUM); // 车牌字符暗示数组,在拍摄图片质量较差车牌识别不确定时,根据此数组中的字符进行匹配,数组下标越小,匹配优先级越高
+ }
+
+ // 统一场景配置,TypeList存在时配置此场景
+ public static class CFG_INTELLI_UNIFORM_SCENE extends SdkStructure
+ {
+ public byte[] szSubType = new byte[MAX_NAME_LEN]; // 交通场景的子类型,"Gate" 卡口类型,"Junction" 路口类型
+ // "Tunnel"隧道类型 , "ParkingSpace"车位检测类型
+ // "Bridge"桥梁类型
+ // "Freeway"高速公路类型
+ public int nPlateHintNum; // 车牌字符暗示个数
+ public PLATE_HINT[] szPlateHints = (PLATE_HINT[])new PLATE_HINT[MAX_PLATEHINT_NUM]; // 车牌字符暗示数组,在拍摄图片质量较差车牌识别不确定时,根据此数组中的字符进行匹配,数组下标越小,匹配优先级越高
+ public int nLaneNum; // 车道数
+ public CFG_LANE[] stuLanes = (CFG_LANE[])new CFG_LANE().toArray(MAX_LANE_NUM); // 车道信息
+ }
+
+ // CLIENT_MatrixAddCamerasByDevice 接口输入参数
+ public static class NET_IN_ADD_LOGIC_BYDEVICE_CAMERA extends SdkStructure
+ {
+ public int dwSize;
+ public byte[] pszDeviceID = new byte[NET_DEV_ID_LEN]; // 设备ID
+ public NET_REMOTE_DEVICE stuRemoteDevice; // 远程设备信息
+ public int nCameraCount; // 视频源信息数量
+ public Pointer pCameras; // 视频源信息数组,用户分配内存,大小为sizeof(NET_LOGIC_BYDEVICE_ADD_CAMERA_PARAM)*nCameraCount
+ // 对应 NET_LOGIC_BYDEVICE_ADD_CAMERA_PARAM[]
+
+ public NET_IN_ADD_LOGIC_BYDEVICE_CAMERA() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // CLIENT_MatrixAddCamerasByDevice 接口输出参数
+ public static class NET_OUT_ADD_LOGIC_BYDEVICE_CAMERA extends SdkStructure
+ {
+ public int dwSize;
+ public byte[] szDeviceID = new byte[NET_DEV_ID_LEN]; // 设备ID
+ public int nMaxResultCount; // nMaxResultCount, 用户填写
+ public int nRetResultCount; // 实际结果数量
+ public Pointer pResults; // 添加视频源结果数组,用户分配内存,大小为sizeof(NET_LOGIC_BYDEVICE_ADD_CAMERA_RESULT)*nMaxResultCount
+ // 对应 NET_LOGIC_BYDEVICE_ADD_CAMERA_RESULT[]
+
+ public NET_OUT_ADD_LOGIC_BYDEVICE_CAMERA() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 视频源信息
+ public static class NET_LOGIC_BYDEVICE_ADD_CAMERA_PARAM extends SdkStructure
+ {
+ public int dwSize;
+ public int nUniqueChannel; // 统一编号
+ public int nChannel; // 通道号
+
+ public NET_LOGIC_BYDEVICE_ADD_CAMERA_PARAM() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 添加视频源结果信息
+ public static class NET_LOGIC_BYDEVICE_ADD_CAMERA_RESULT extends SdkStructure
+ {
+ public int dwSize;
+ public int nUniqueChannel; // 统一编号
+ public int nFailedCode; // 失败码, 0-成功,1-通道不支持设置
+
+ public NET_LOGIC_BYDEVICE_ADD_CAMERA_RESULT() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 事件类型 EVENT_IVS_FACEDETECT (目标检测事件)对应的规则配置
+ public static class CFG_FACEDETECT_INFO extends SdkStructure
+ {
+ public byte[] szRuleName = new byte[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
+ public byte bRuleEnable; // 规则使能, 1-true 0-false
+ public byte[] bReserved = new byte[3]; // 保留字段
+ public int nObjectTypeNum; // 相应物体类型个数
+ public byte[] szObjectTypes = new byte[MAX_OBJECT_LIST_SIZE*MAX_NAME_LEN]; // 相应物体类型列表
+ public int nDetectRegionPoint; // 检测区顶点数
+ public CFG_POLYGON[] stuDetectRegion = (CFG_POLYGON[])new CFG_POLYGON().toArray(MAX_POLYGON_NUM); // 检测区
+ public int nHumanFaceTypeCount; // 触发事件的人脸类型个数
+ public byte[] szHumanFaceType = new byte[MAX_HUMANFACE_LIST_SIZE*MAX_NAME_LEN]; // 触发事件的人脸类型
+ public CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
+ public CFG_TIME_SECTION[] stuTimeSection = (CFG_TIME_SECTION[])new CFG_TIME_SECTION().toArray(WEEK_DAY_NUM*MAX_REC_TSECT_EX); // 事件响应时间段
+ public int nPtzPresetId; // 云台预置点编号 0~65535
+ public int nMinDuration; // 最短触发时间,单位:秒
+ public int nSensitivity; // 灵敏度,范围[1,10],灵敏度越高越容易检测
+ public int nReportInterval; // 重复报警间隔,单位:秒,[0,600](等于0表示不重复报警)
+ public int bSizeFileter; // 规则特定的尺寸过滤器是否有效
+ public CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器, 1-true 0-false
+ public int bFeatureEnable; // 是否开启人脸属性识别, IPC增加, 1-true 0-false
+ // (通过FaceDetection能力中的FeatureSupport来确定该配置是否可以设置)
+ public int nFaceFeatureNum; // 需要检测的人脸属性个数
+ public int[] emFaceFeatureType = new int[MAX_FEATURE_LIST_SIZE]; // 需检测的人脸属性, 通过FaceDetection能力来获取支持哪些人脸属性, 参考 EM_FACEFEATURE_TYPE
+ public CFG_FACE_BEAUTIFICATION stuFaceBeautification = new CFG_FACE_BEAUTIFICATION(); //人Lian美化,参见结构体定义 {@link com.netsdk.lib.structure.CFG_FACE_BEAUTIFICATION}
+ public byte[] szReserved = new byte[1024]; //保留字段
+ }
+
+ public static class MAX_OBJECT_LIST extends SdkStructure
+ {
+ public byte[] szObjectTypes = new byte[MAX_NAME_LEN]; // 相应物体类型列表
+ }
+
+ public static class MAX_HUMANFACE_LIST extends SdkStructure
+ {
+ public byte[] szHumanFaceType = new byte[MAX_NAME_LEN]; // 触发事件的人脸类型
+ }
+
+ public static class TIME_SECTION_WEEK_DAY_10 extends SdkStructure
+ {
+ public CFG_TIME_SECTION[] stuTimeSection = (CFG_TIME_SECTION[])new CFG_TIME_SECTION().toArray(MAX_REC_TSECT_EX); // 事件响应时间段
+
+ public TIME_SECTION_WEEK_DAY_10(){
+ for(int i=0;idwSize == nBufLen
+ public interface fAttachBurnStateCB extends Callback {
+ public void invoke(LLong lLoginID,LLong lAttachHandle,NET_CB_BURNSTATE pBuf,int nBufLen,Pointer dwUser);
+ }
+
+ // 刻录设备回调扩展函数原形
+ public interface fAttachBurnStateCBEx extends Callback {
+ public void invoke(LLong lLoginID,LLong lAttachHandle,NET_OUT_BURN_GET_STATE pBuf,int nBufLen,Pointer dwUser);
+ }
+
+ //刻录设备回调函数,lUploadHandle是CLIENT_StartUploadFileBurned返回值
+ //typedef void (CALLBACK *fBurnFileCallBack) (LLONG lLoginID, LLONG lUploadHandle, int nTotalSize, int nSendSize, LDWORD dwUser);
+ public interface fBurnFileCallBack extends Callback {
+ public void invoke(LLong lLoginID,LLong lUploadHandle,int nTotalSize,int nSendSize,Pointer dwUser);
+ }
+
+ // 升级回调
+ public interface fUpgradeCallBackEx extends Callback {
+ public void invoke(LLong lLoginID,LLong lUpgradechannel,int nTotalSize,int nSendSize,Pointer dwUserData);
+ }
+
+ /************************************************************************
+ ** 接口
+ ***********************************************************************/
+ // JNA直接调用方法定义,cbDisConnect 实际情况并不回调Java代码,仅为定义可以使用如下方式进行定义。 fDisConnect 回调
+ public boolean CLIENT_Init(Callback cbDisConnect,Pointer dwUser);
+
+ // JNA直接调用方法定义,SDK退出清理
+ public void CLIENT_Cleanup();
+
+ // JNA直接调用方法定义,设置断线重连成功回调函数,设置后SDK内部断线自动重连, fHaveReConnect 回调
+ public void CLIENT_SetAutoReconnect(Callback cbAutoConnect,Pointer dwUser);
+
+ // 返回函数执行失败代码
+ public int CLIENT_GetLastError();
+
+ // 设置连接设备超时时间和尝试次数
+ public void CLIENT_SetConnectTime(int nWaitTime,int nTryTimes);
+
+ // 设置登陆网络环境
+ public void CLIENT_SetNetworkParam(NET_PARAM pNetParam);
+
+ //
+ public boolean CLIENT_SetDeviceSearchParam(NET_DEVICE_SEARCH_PARAM pstParam);
+
+ // 获取SDK的版本信息
+ public int CLIENT_GetSDKVersion();
+
+ // JNA直接调用方法定义,登陆接口
+ public LLong CLIENT_LoginEx(String pchDVRIP,int wDVRPort,String pchUserName,String pchPassword,int nSpecCap,Pointer pCapParam,NET_DEVICEINFO lpDeviceInfo,IntByReference error/*= 0*/);
+
+ // JNA直接调用方法定义,登陆扩展接口///////////////////////////////////////////////////
+ // nSpecCap 对应 EM_LOGIN_SPAC_CAP_TYPE 登陆类型
+ public LLong CLIENT_LoginEx2(String pchDVRIP,int wDVRPort,String pchUserName,String pchPassword,int nSpecCap,Pointer pCapParam,NET_DEVICEINFO_Ex lpDeviceInfo,IntByReference error/*= 0*/);
+
+ // JNA直接调用方法定义,向设备注销
+ public boolean CLIENT_Logout(LLong lLoginID);
+
+ // 获取配置
+ // error 为设备返回的错误码: 0-成功 1-失败 2-数据不合法 3-暂时无法设置 4-没有权限
+ public boolean CLIENT_GetNewDevConfig(LLong lLoginID,String szCommand,int nChannelID,byte[] szOutBuffer,int dwOutBufferSize,IntByReference error,int waiitime,Pointer pReserved);
+
+ // 设置配置
+ public boolean CLIENT_SetNewDevConfig(LLong lLoginID,String szCommand,int nChannelID,byte[] szInBuffer,int dwInBufferSize,IntByReference error,IntByReference restart,int waittime);
+
+ // 删除配置接口(Json格式)
+ public boolean CLIENT_DeleteDevConfig(LLong lLoginID,NET_IN_DELETECFG pInParam,NET_OUT_DELETECFG pOutParam,int waittime);
+
+ // 获取配置成员名称接口(Json格式)(pInParam, pOutParam内存由用户申请释放)
+ public boolean CLIENT_GetMemberNames(LLong lLoginID,NET_IN_MEMBERNAME pInParam,NET_OUT_MEMBERNAME pOutParam,int waittime);
+
+ // 解析查询到的配置信息
+ public boolean CLIENT_ParseData(String szCommand,byte[] szInBuffer,Pointer lpOutBuffer,int dwOutBufferSize,Pointer pReserved);
+
+ // 组成要设置的配置信息
+ public boolean CLIENT_PacketData(String szCommand,Pointer lpInBuffer,int dwInBufferSize,byte[] szOutBuffer,int dwOutBufferSize);
+
+ // 设置报警回调函数, fMessCallBack 回调
+ public void CLIENT_SetDVRMessCallBack(Callback cbMessage,Pointer dwUser);
+
+ // 设置报警回调函数, fMessCallBackEx1 回调
+ public void CLIENT_SetDVRMessCallBackEx1(fMessCallBackEx1 cbMessage,Pointer dwUser);
+
+ // 向设备订阅报警--扩展
+ public boolean CLIENT_StartListenEx(LLong lLoginID);
+
+ // 停止订阅报警
+ public boolean CLIENT_StopListen(LLong lLoginID);
+
+ /////////////////////////////////目标识别接口/////////////////////////////////////////
+ //目标识别数据库信息操作(包括添加,修改和删除)
+ // pstInParam指向NET_IN_OPERATE_FACERECONGNITIONDB类型的指针
+ // pstOutParam指向NET_OUT_OPERATE_FACERECONGNITIONDB类型的指针
+ public boolean CLIENT_OperateFaceRecognitionDB(LLong lLoginID,NET_IN_OPERATE_FACERECONGNITIONDB pstInParam,NET_OUT_OPERATE_FACERECONGNITIONDB pstOutParam,int nWaitTime);
+
+ // 按条件查询目标识别结果
+ // pstInParam指向NET_IN_STARTFIND_FACERECONGNITION类型的指针
+ // pstOutParam指向NET_OUT_STARTFIND_FACERECONGNITION类型的指针
+ public boolean CLIENT_StartFindFaceRecognition(LLong lLoginID,NET_IN_STARTFIND_FACERECONGNITION pstInParam,NET_OUT_STARTFIND_FACERECONGNITION pstOutParam,int nWaitTime);
+
+ // 查找目标识别结果:nFilecount:需要查询的条数, 返回值为媒体文件条数 返回值NET_IN_DOWNLOAD_BYFILE_SELFADAPT
+ // pstOutParam->NET_OUT_DOWNLOAD_BYFILE_SELFADAPT
+ public LLong CLIENT_DownloadByFileSelfAdapt(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int dwWaitTime);
+
+ // 自适应速度的按时间下载录像
+ // pstInParam->NET_IN_ADAPTIVE_DOWNLOAD_BY_TIME
+ // pstOutParam->NET_OUT_ADAPTIVE_DOWNLOAD_BY_TIME
+ public LLong CLIENT_AdaptiveDownloadByTime(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int dwWaitTime);
+
+ // 私有云台控制扩展接口,支持三维快速定位
+ public boolean CLIENT_DHPTZControlEx(LLong lLoginID,int nChannelID,int dwPTZCommand,int lParam1,int lParam2,int lParam3,int dwStop);
+
+ // 云台控制扩展接口,支持三维快速定位,鱼眼
+ // dwStop类型为BOOL, 取值0或者1
+ // dwPTZCommand取值为NET_EXTPTZ_ControlType中的值或者是NET_PTZ_ControlType中的值
+ // NET_IN_PTZBASE_MOVEABSOLUTELY_INFO
+ // 精准绝对移动控制命令, param4对应结构 NET_IN_PTZBASE_MOVEABSOLUTELY_INFO(通过 CFG_CAP_CMD_PTZ 命令获取云台能力集( CFG_PTZ_PROTOCOL_CAPS_INFO ),若bSupportReal为TRUE则设备支持该操作)
+ public boolean CLIENT_DHPTZControlEx2(LLong lLoginID,int nChannelID,int dwPTZCommand,int lParam1,int lParam2,int lParam3,int dwStop,Pointer param4);
+
+ // 设备控制(param内存由用户申请释放) emType对应 枚举 CtrlType
+ public boolean CLIENT_ControlDevice(LLong lLoginID,int emType,Pointer param,int waittime);
+
+ // 设备控制扩展接口,兼容 CLIENT_ControlDevice (pInBuf, pOutBuf内存由用户申请释放)
+ // emType的取值为CtrlType中的值
+ public boolean CLIENT_ControlDeviceEx(LLong lLoginID,int emType,Pointer pInBuf,Pointer pOutBuf,int nWaitTime);
+
+ // 查询配置信息(lpOutBuffer内存由用户申请释放)
+ public boolean CLIENT_GetDevConfig(LLong lLoginID,int dwCommand,int lChannel,Pointer lpOutBuffer,int dwOutBufferSize,IntByReference lpBytesReturned,int waittime);
+
+ // 设置配置信息(lpInBuffer内存由用户申请释放)
+ public boolean CLIENT_SetDevConfig(LLong lLoginID,int dwCommand,int lChannel,Pointer lpInBuffer,int dwInBufferSize,int waittime);
+
+ // 查询设备状态(pBuf内存由用户申请释放)
+ // pBuf指向char *,输出参数
+ // pRetLen指向int *;输出参数,实际返回的数据长度,单位字节
+ public boolean CLIENT_QueryDevState(LLong lLoginID,int nType,Pointer pBuf,int nBufLen,IntByReference pRetLen,int waittime);
+
+ // 查询远程设备状态(pBuf内存由用户申请释放)
+ // nType为DH_DEVSTATE_ALARM_FRONTDISCONNECT时,通道号从1开始
+ public boolean CLIENT_QueryRemotDevState(LLong lLoginID,int nType,int nChannelID,Pointer pBuf,int nBufLen,IntByReference pRetLen,int waittime);
+
+ // 获取设备能力接口
+ // pInBuf指向void*,输入参数结构体指针 pOutBuf指向void*,输出参数结构体指针
+ public boolean CLIENT_GetDevCaps(LLong lLoginID,int nType,Pointer pInBuf,Pointer pOutBuf,int nWaitTime);
+
+ // 新系统能力查询接口,查询系统能力信息(以Json格式,具体见配置SDK)(szOutBuffer内存由用户申请释放)
+ // szCommand: 对应命令查看上文
+ // szOutBuffer: 获取到的信息, 通过 CLIENT_ParseData 解析
+ // error 指向 int * : 错误码大于0表示设备返回的,小于0表示缓冲不够或数据校验引起的
+ public boolean CLIENT_QueryNewSystemInfo(LLong lLoginID,String szCommand,int nChannelID,byte[] szOutBuffer,int dwOutBufferSize,IntByReference error,int waittime);
+
+ // 新系统能力查询接口扩展,查询系统能力信息,入参新增扩展数据(以Json格式,具体见配置SDK)(szOutBuffer内存由用户申请释放)
+ public boolean CLIENT_QueryNewSystemInfoEx(LLong lLoginID,String szCommand,int nChannelID,byte[] szOutBuffer,int dwOutBufferSize,IntByReference error,Pointer pExtendInfo,int waittime);
+
+ // 查询系统能力信息(pSysInfoBuffer内存由用户申请释放,大小参照DH_SYS_ABILITY对应的结构体,若nSystemType为 ABILITY_DYNAMIC_CONNECT ,内存大小至少为sizeof(BOOL),若nSystemType为ABILITY_TRIGGER_MODE,内存大小为sizeof(int))
+ public boolean CLIENT_QuerySystemInfo(LLong lLoginID,int nSystemType,String pSysInfoBuffer,int nChannelID,byte[] szOutBuffer,int dwOutBufferSize,IntByReference error,int waittime);
+
+ // 订阅视频统计摘要信息
+ public LLong CLIENT_AttachVideoStatSummary(LLong lLoginID,NET_IN_ATTACH_VIDEOSTAT_SUM pInParam,NET_OUT_ATTACH_VIDEOSTAT_SUM pOutParam,int nWaitTime);
+
+ // 取消订阅视频统计摘要信息,lAttachHandle为CLIENT_AttachVideoStatSummary的返回值
+ public boolean CLIENT_DetachVideoStatSummary(LLong lAttachHandle);
+
+ // 开始查询视频统计信息/获取人数统计信息
+ public LLong CLIENT_StartFindNumberStat(LLong lLoginID,NET_IN_FINDNUMBERSTAT pstInParam,NET_OUT_FINDNUMBERSTAT pstOutParam);
+
+ // 继续查询视频统计/继续查询人数统计
+ public int CLIENT_DoFindNumberStat(LLong lFindHandle,NET_IN_DOFINDNUMBERSTAT pstInParam,NET_OUT_DOFINDNUMBERSTAT pstOutParam);
+
+ // 结束查询视频统计/结束查询人数统计
+ public boolean CLIENT_StopFindNumberStat(LLong lFindHandle);
+
+ // 设置语音对讲模式,客户端方式还是服务器方式
+ // emType : 方式类型 参照 EM_USEDEV_MODE
+ public boolean CLIENT_SetDeviceMode(LLong lLoginID,int emType,Pointer pValue);
+
+ ///////////////// 录像回放相关接口 ///////////////////////
+ // 按时间方式回放
+ public LLong CLIENT_PlayBackByTime(LLong lLoginID,int nChannelID,NET_TIME lpStartTime,NET_TIME lpStopTime,Pointer hWnd,fDownLoadPosCallBack cbDownLoadPos,Pointer dwPosUser);
+
+ // 按时间方式回放--扩展接口
+ // cbDownLoadPos 对应 fDownLoadPosCallBack 回调
+ // fDownLoadDataCallBack 对应 fDataCallBack 回调
+ public LLong CLIENT_PlayBackByTimeEx(LLong lLoginID,int nChannelID,NET_TIME lpStartTime,NET_TIME lpStopTime,Pointer hWnd,Callback cbDownLoadPos,Pointer dwPosUser,Callback fDownLoadDataCallBack,Pointer dwDataUser);
+
+ public LLong CLIENT_PlayBackByTimeEx2(LLong lLoginID,int nChannelID,NET_IN_PLAY_BACK_BY_TIME_INFO pstNetIn,NET_OUT_PLAY_BACK_BY_TIME_INFO pstNetOut);
+
+ // 停止录像回放接口
+ public boolean CLIENT_StopPlayBack(LLong lPlayHandle);
+
+ // 获取回放OSD时间
+ public boolean CLIENT_GetPlayBackOsdTime(LLong lPlayHandle,NET_TIME lpOsdTime,NET_TIME lpStartTime,NET_TIME lpEndTime);
+
+ // 暂停或恢复录像回放
+ // bPause: 1 - 暂停 0 - 恢复
+ public boolean CLIENT_PausePlayBack(LLong lPlayHandle,int bPause);
+
+ // 快进录像回放
+ public boolean CLIENT_FastPlayBack(LLong lPlayHandle);
+
+ // 慢进录像回放
+ public boolean CLIENT_SlowPlayBack(LLong lPlayHandle);
+
+ // 恢复正常回放速度
+ public boolean CLIENT_NormalPlayBack(LLong lPlayHandle);
+
+ // 设置录像回放速度, emSpeed 对应枚举 EM_PLAY_BACK_SPEED
+ public boolean CLIENT_SetPlayBackSpeed(LLong lPlayHandle,int emSpeed);
+
+ // 查询设备当前时间
+ public boolean CLIENT_QueryDeviceTime(LLong lLoginID,NET_TIME pDeviceTime,int waittime);
+
+ // 设置设备当前时间
+ public boolean CLIENT_SetupDeviceTime(LLong lLoginID,NET_TIME pDeviceTime);
+
+ // 获得亮度、色度、对比度、饱和度的参数
+ // param1/param2/param3/param4 四个参数范围0~255
+ public boolean CLIENT_ClientGetVideoEffect(LLong lPlayHandle,byte[] nBrightness,byte[] nContrast,byte[] nHue,byte[] nSaturation);
+
+ // 设置亮度、色度、对比度、饱和度的参数
+ // nBrightness/nContrast/nHue/nSaturation四个参数为 unsigned byte 范围0~255
+ public boolean CLIENT_ClientSetVideoEffect(LLong lPlayHandle,byte nBrightness,byte nContrast,byte nHue,byte nSaturation);
+
+ //------------------------用户管理-----------------------
+ // 查询用户信息--扩展(info内存由用户申请释放,大小为sizeof(USER_MANAGE_INFO_EX))
+ public boolean CLIENT_QueryUserInfoEx(LLong lLoginID,USER_MANAGE_INFO_EX info,int waittime);
+
+ // 查询用户信息--最大支持64通道设备
+ // pReserved指向void*
+ public boolean CLIENT_QueryUserInfoNew(LLong lLoginID,USER_MANAGE_INFO_NEW info,Pointer pReserved,int nWaittime);
+
+ // 设置用户信息接口--操作设备用户--最大支持64通道设备
+ // opParam指向void* subParam指向void*
+ // pReserved指向void*
+ // opParam(设置用户信息的输入缓冲)和subParam(设置用户信息的辅助输入缓冲)对应结构体类型USER_GROUP_INFO_NEW或USER_INFO_NEW
+ public boolean CLIENT_OperateUserInfoNew(LLong lLoginID,int nOperateType,Pointer opParam,Pointer subParam,Pointer pReserved,int nWaittime);
+
+ /**
+ * // 查询设备日志,以分页方式查询(pQueryParam, pLogBuffer内存由用户申请释放)
+ * CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryDeviceLog(LLONG lLoginID, QUERY_DEVICE_LOG_PARAM *pQueryParam, char *pLogBuffer, int nLogBufferLen, int *pRecLogNum, int waittime=3000);
+ * pQueryParam 对应结构体QUERY_DEVICE_LOG_PARAM
+ * pLogBuffer:char *
+ * waitTime:默认3000
+ */
+ public boolean CLIENT_QueryDeviceLog(LLong lLoginID,Pointer pQueryParam,Pointer pLogBuffer,int nLogBufferLen,IntByReference pRecLogNum,int waittime);
+
+ //----------------------语音对讲--------------------------
+ // 向设备发起语音对讲请求 pfcb是用户自定义的数据回调接口, pfAudioDataCallBack 回调
+ public LLong CLIENT_StartTalkEx(LLong lLoginID,Callback pfcb,Pointer dwUser);
+
+ // 停止语音对讲 lTalkHandle语音对讲句柄,是CLIENT_StartTalkEx的返回 值
+ public boolean CLIENT_StopTalkEx(LLong lTalkHandle);
+
+ // 启动本地录音功能(只在Windows平台下有效),录音采集出来的音频数据通过CLIENT_StartTalkEx的回调函数回调给用户,对应操作是CLIENT_RecordStopEx
+ // lLoginID是CLIENT_Login的返回值
+ public boolean CLIENT_RecordStartEx(LLong lLoginID);
+
+ // 开始PC端录音
+ public boolean CLIENT_RecordStart();
+
+ // 结束PC端录音
+ public boolean CLIENT_RecordStop();
+
+ // 停止本地录音(只在Windows平台下有效),对应操作是CLIENT_RecordStartEx。
+ public boolean CLIENT_RecordStopEx(LLong lLoginID);
+
+ // 向设备发送用户的音频数据,这里的数据可以是从CLIENT_StartTalkEx的回调接口中回调出来的数据
+ public LLong CLIENT_TalkSendData(LLong lTalkHandle,Pointer pSendBuf,int dwBufSize);
+
+ // 解码音频数据扩展接口(只在Windows平台下有效) pAudioDataBuf是要求解码的音频数据内容
+ public void CLIENT_AudioDec(Pointer pAudioDataBuf,int dwBufSize);
+
+ public boolean CLIENT_AudioDecEx(LLong lTalkHandle,Pointer pAudioDataBuf,int dwBufSize);
+
+ // 音频格式信息
+ public class NET_AUDIO_FORMAT extends SdkStructure
+ {
+ public byte byFormatTag; // 编码类型,如0:PCM
+ public short nChannels; // 声道数
+ public short wBitsPerSample; // 采样深度
+ public int nSamplesPerSec; // 采样率
+ }
+
+ // 音频格式信息
+ public class LPDH_AUDIO_FORMAT extends SdkStructure
+ {
+ public byte byFormatTag; // 编码类型,如0:PCM
+ public short nChannels; // 声道数
+ public short wBitsPerSample; // 采样深度
+ public int nSamplesPerSec; // 采样率
+ }
+
+ // 音频编码--初始化(特定标准格式->私有格式) 初始化对讲中的音频编码接口,告诉SDK内部要编码的源音频数据的音频格式,对不支持的音频格式初始化会失败
+ public int CLIENT_InitAudioEncode(NET_AUDIO_FORMAT aft);
+
+ // 进行音频的数据二次编码,从标准音频格式转换成设备支持的格式
+ // 音频编码--数据编码(lpInBuf, lpOutBuf内存由用户申请释放)
+ public int CLIENT_AudioEncode(LLong lTalkHandle,Pointer lpInBuf,IntByReference lpInLen,Pointer lpOutBuf,IntByReference lpOutLen);
+
+ // 音频编码--完成退出 解码功能使用完毕后,告诉接口清理内部资源
+ public int CLIENT_ReleaseAudioEncode();
+
+ //----------------------语音对讲音频裸数据相关接口--------------------------
+ /**
+ * 打开语音对讲,这个接口可以从回调中得到音频裸数据,而CLIENT_StartTalkEx只能得到带音频头的数据
+ * @param lLoginID
+ * @param pInParam -> NET_IN_START_TALK_INFO
+ * @param pOutParam -> NET_OUT_START_TALK_INFO
+ * @param nWaittime
+ * @return LLong
+ */
+ public LLong CLIENT_StartTalkByDataType(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaittime);
+
+ /**
+ * 发送语音数据到设备 返回值为发送给设备的音频流长度,-1表示接口调用失败
+ * @param lTalkHandle
+ * @param pInParam -> NET_IN_TALK_SEND_DATA_STREAM
+ * @param pOutParam -> NET_OUT_TALK_SEND_DATA_STREAM
+ * @return LLong 返回值为发送给设备的音频流长度,-1表示接口调用失败
+ */
+ public LLong CLIENT_TalkSendDataByStream(LLong lTalkHandle,Pointer pInParam,Pointer pOutParam);
+
+ /**
+ * 发送语音文件中的音频数据到设备 成功返回 lTalkHandle, 失败返回 0
+ * @param lTalkHandle
+ * @param pInParam -> NET_IN_TALK_SEND_DATA_FILE
+ * @param pOutParam -> NET_OUT_TALK_SEND_DATA_FILE
+ * @return LLong 成功返回 lTalkHandle, 失败返回 0
+ */
+ public LLong CLIENT_TalkSendDataByFile(LLong lTalkHandle,Pointer pInParam,Pointer pOutParam);
+
+ /**
+ * 停止发送音频文件
+ */
+ public boolean CLIENT_StopTalkSendDataByFile(LLong lTalkHandle);
+
+ /**
+ * 用户自定义的数据回调 lTalkHandle是CLIENT_StartTalkByDataType的返回值
+ * @param stAudioInfo -> NET_AUDIO_DATA_CB_INFO
+ * @param byAudioFlag -> 音频数据来源,参考枚举 EM_AUDIO_SOURCE_FLAG
+ * @param dwUser -> 用户自定义数据
+ */
+ public interface fAudioDataCallBackEx extends Callback {
+ public void invoke(LLong lTalkHandle,NET_AUDIO_DATA_CB_INFO stAudioInfo,int emAudioFlag,Pointer dwUser);
+ }
+
+ /**
+ * 音频文件发送进度回调函数
+ * @param lTalkHandle
+ * @param dwTotalSize
+ * @param dwSendSize
+ */
+ public interface fTalkSendPosCallBack extends Callback {
+ public void invoke(LLong lTalkHandle,int dwTotalSize,int dwSendSize,Pointer dwUser);
+ }
+
+ //-------------------允许名单-------------------------
+ // 按查询条件查询记录 pInParam查询记录参数 pOutParam返回查询句柄
+ // 可以先调用本接口获得查询句柄,再调用 CLIENT_FindNextRecord函数获取记录列表,查询完毕可以调用CLIENT_FindRecordClose关闭查询句柄。
+ public boolean CLIENT_FindRecord(LLong lLoginID,NET_IN_FIND_RECORD_PARAM pInParam,NET_OUT_FIND_RECORD_PARAM pOutParam,int waittime);
+
+ // 查找记录:nFilecount:需要查询的条数, 返回值为媒体文件条数 返回值小于nFilecount则相应时间段内的文件查询完毕
+ public boolean CLIENT_FindNextRecord(NET_IN_FIND_NEXT_RECORD_PARAM pInParam,NET_OUT_FIND_NEXT_RECORD_PARAM pOutParam,int waittime);
+
+ // 结束记录查找,lFindHandle是CLIENT_FindRecord的返回值
+ public boolean CLIENT_FindRecordClose(LLong lFindHandle);
+
+ // 查找记录条数,pInParam与pOutParam内存由用户申请释放
+ public boolean CLIENT_QueryRecordCount(NET_IN_QUEYT_RECORD_COUNT_PARAM pInParam,NET_OUT_QUEYT_RECORD_COUNT_PARAM pOutParam,int waittime);
+
+ // 禁止/允许名单操作 ,pstOutParam = null;
+ public boolean CLIENT_OperateTrafficList(LLong lLoginID,NET_IN_OPERATE_TRAFFIC_LIST_RECORD pstInParam,NET_OUT_OPERATE_TRAFFIC_LIST_RECORD pstOutParam,int waittime);
+
+ // 文件上传控制接口,允许名单上传需要三个步骤配合使用,CLIENT_FileTransmit的 NET_DEV_BLACKWHITETRANS_START、 NET_DEV_BLACKWHITETRANS_SEND、 NET_DEV_BLACKWHITETRANS_STOP,如下所示
+ // fTransFileCallBack 回调
+ public LLong CLIENT_FileTransmit(LLong lLoginID,int nTransType,Pointer szInBuf,int nInBufLen,Callback cbTransFile,Pointer dwUserData,int waittime);
+
+ // 查询设备信息
+ public boolean CLIENT_QueryDevInfo(LLong lLoginID,int nQueryType,Pointer pInBuf,Pointer pOutBuf,Pointer pReservedL,int nWaitTime);
+
+ // ------------------车载GPS-------------------------
+ // 设置GPS订阅回调函数--扩展, fGPSRevEx 回调
+ public void CLIENT_SetSubcribeGPSCallBackEX(Callback OnGPSMessage,Pointer dwUser);
+
+ // 设置GPS订阅回调函数--扩展2, fGPSRevEx2 回调
+ public void CLIENT_SetSubcribeGPSCallBackEX2(Callback OnGPSMessage,Pointer dwUser);
+
+ // GPS信息订阅
+ // bStart:表明是订阅还是取消 InterTime:订阅时间内GPS发送频率(单位秒)
+ // KeepTime:订阅持续时间(单位秒) 值为-1时,订阅时间为极大值,可视为永久订阅
+ // 订阅时间内GPS发送频率(单位秒)
+ public boolean CLIENT_SubcribeGPS(LLong lLoginID,int bStart,int KeepTime,int InterTime);
+
+ // 设置文件长度, pInParam与pOutParam内存由用户申请释放
+ public boolean CLIENT_PreUploadRemoteFile(LLong lLoginID,NET_IN_PRE_UPLOAD_REMOTE_FILE pInParam,NET_OUT_PRE_UPLOAD_REMOTE_FILE pOutParam,int nWaitTime);
+
+ // 同步文件上传, 只适用于小文件
+ public boolean CLIENT_UploadRemoteFile(LLong lLoginID,NET_IN_UPLOAD_REMOTE_FILE pInParam,NET_OUT_UPLOAD_REMOTE_FILE pOutParam,int nWaitTime);
+
+ // 显示目录中文件和子目录,pInParam与pOutParam内存由用户申请释放
+ public boolean CLIENT_ListRemoteFile(LLong lLoginID,NET_IN_LIST_REMOTE_FILE pInParam,NET_OUT_LIST_REMOTE_FILE pOutParam,int nWaitTime);
+
+ // 删除文件或目录,pInParam与pOutParam内存由用户申请释放
+ public boolean CLIENT_RemoveRemoteFiles(LLong lLoginID,NET_IN_REMOVE_REMOTE_FILES pInParam,NET_OUT_REMOVE_REMOTE_FILES pOutParam,int nWaitTime);
+
+ // 过车记录订阅
+ public LLong CLIENT_ParkingControlAttachRecord(LLong lLoginID,NET_IN_PARKING_CONTROL_PARAM pInParam,NET_OUT_PARKING_CONTROL_PARAM pOutParam,int nWaitTime);
+
+ // 取消过车记录订阅
+ public boolean CLIENT_ParkingControlDetachRecord(LLong lAttachHandle);
+
+ // 开始过车记录查询
+ public LLong CLIENT_ParkingControlStartFind(LLong lLoginID,NET_IN_PARKING_CONTROL_START_FIND_PARAM pInParam,NET_OUT_PARKING_CONTROL_START_FIND_PARAM pOutParam,int waittime);
+
+ // 获取过车记录
+ public boolean CLIENT_ParkingControlDoFind(LLong lFindeHandle,NET_IN_PARKING_CONTROL_DO_FIND_PARAM pInParam,NET_OUT_PARKING_CONTROL_DO_FIND_PARAM pOutParam,int waittime);
+
+ // 结束过车记录查询
+ public boolean CLIENT_ParkingControlStopFind(LLong lFindHandle);
+
+ // 车位状态订阅,pInParam与pOutParam内存由用户申请释放
+ public LLong CLIENT_ParkingControlAttachParkInfo(LLong lLoginID,NET_IN_PARK_INFO_PARAM pInParam,NET_OUT_PARK_INFO_PARAM pOutParam,int nWaitTime);
+
+ // 取消车位状态订阅
+ public boolean CLIENT_ParkingControlDetachParkInfo(LLong lAttachHandle);
+
+ // 清除异常车位车辆信息 NET_IN_REMOVE_PARKING_CAR_INFO, NET_OUT_REMOVE_PARKING_CAR_INFO
+ public boolean CLIENT_RemoveParkingCarInfo(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ // 电源控制,pInParam与pOutParam内存由用户申请释放
+ public boolean CLIENT_PowerControl(LLong lLoginID,NET_IN_WM_POWER_CTRL pInParam,NET_OUT_WM_POWER_CTRL pOutParam,int nWaitTime);
+
+ // 载入/保存预案,pInParam与pOutParam内存由用户申请释放
+ public boolean CLIENT_LoadMonitorWallCollection(LLong lLoginID,NET_IN_WM_LOAD_COLLECTION pInParam,NET_OUT_WM_LOAD_COLLECTION pOutParam,int nWaitTime);
+
+ public boolean CLIENT_SaveMonitorWallCollection(LLong lLoginID,NET_IN_WM_SAVE_COLLECTION pInParam,NET_OUT_WM_SAVE_COLLECTION pOutParam,int nWaitTime);
+
+ // 获取电视墙预案,pInParam与pOutParam内存由用户申请释放
+ public boolean CLIENT_GetMonitorWallCollections(LLong lLoginID,NET_IN_WM_GET_COLLECTIONS pInParam,NET_OUT_WM_GET_COLLECTIONS pOutParam,int nWaitTime);
+
+ // 查询/设置显示源(pstuSplitSrc内存由用户申请释放), nWindow为-1表示所有窗口 ; pstuSplitSrc 对应 NET_SPLIT_SOURCE 指针
+ public boolean CLIENT_GetSplitSource(LLong lLoginID,int nChannel,int nWindow,NET_SPLIT_SOURCE[] pstuSplitSrc,int nMaxCount,IntByReference pnRetCount,int nWaitTime);
+
+ public boolean CLIENT_SetSplitSource(LLong lLoginID,int nChannel,int nWindow,NET_SPLIT_SOURCE pstuSplitSrc,int nSrcCount,int nWaitTime);
+
+ // 设置显示源, 支持同时设置多个窗口(pInparam, pOutParam内存由用户申请释放)
+ public boolean CLIENT_SplitSetMultiSource(LLong lLoginID,NET_IN_SPLIT_SET_MULTI_SOURCE pInParam,NET_OUT_SPLIT_SET_MULTI_SOURCE pOutParam,int nWaitTime);
+
+ // 查询矩阵子卡信息(pstuCardList内存由用户申请释放)
+ public boolean CLIENT_QueryMatrixCardInfo(LLong lLoginID,NET_MATRIX_CARD_LIST pstuCardList,int nWaitTime);
+
+ // 开始查找录像文件帧信息(pInParam, pOutParam内存由用户申请释放)
+ public boolean CLIENT_FindFrameInfo(LLong lLoginID,NET_IN_FIND_FRAMEINFO_PRAM pInParam,NET_OUT_FIND_FRAMEINFO_PRAM pOutParam,int nWaitTime);
+
+ // 获取标签信息
+ public boolean CLIENT_FileStreamGetTags(LLong lFindHandle,NET_IN_FILE_STREAM_GET_TAGS_INFO pInParam,NET_OUT_FILE_STREAM_GET_TAGS_INFO pOutParam,int nWaitTime);
+
+ // 设置标签信息
+ public boolean CLIENT_FileStreamSetTags(LLong lFindHandle,NET_IN_FILE_STREAM_TAGS_INFO pInParam,NET_OUT_FILE_STREAM_TAGS_INFO pOutParam,int nWaitTime);
+
+ // 查询/设置分割模式(pstuSplitInfo内存由用户申请释放)
+ public boolean CLIENT_GetSplitMode(LLong lLoginID,int nChannel,NET_SPLIT_MODE_INFO pstuSplitInfo,int nWaitTime);
+
+ public boolean CLIENT_SetSplitMode(LLong lLoginID,int nChannel,NET_SPLIT_MODE_INFO pstuSplitInfo,int nWaitTime);
+
+ // 开窗/关窗(pInparam, pOutParam内存由用户申请释放)
+ public boolean CLIENT_OpenSplitWindow(LLong lLoginID,NET_IN_SPLIT_OPEN_WINDOW pInParam,NET_OUT_SPLIT_OPEN_WINDOW pOutParam,int nWaitTime);
+
+ public boolean CLIENT_CloseSplitWindow(LLong lLoginID,NET_IN_SPLIT_CLOSE_WINDOW pInParam,NET_OUT_SPLIT_CLOSE_WINDOW pOutParam,int nWaitTime);
+
+ // 获取当前显示的窗口信息(pInparam, pOutParam内存由用户申请释放)
+ public boolean CLIENT_GetSplitWindowsInfo(LLong lLoginID,NET_IN_SPLIT_GET_WINDOWS pInParam,NET_OUT_SPLIT_GET_WINDOWS pOutParam,int nWaitTime);
+
+ // 查询分割能力(pstuCaps内存由用户申请释放)
+ public boolean CLIENT_GetSplitCaps(LLong lLoginID,int nChannel,NET_SPLIT_CAPS pstuCaps,int nWaitTime);
+
+ // 下位矩阵切换(pInparam, pOutParam内存由用户申请释放)
+ public boolean CLIENT_MatrixSwitch(LLong lLoginID,NET_IN_MATRIX_SWITCH pInParam,NET_OUT_MATRIX_SWITCH pOutParam,int nWaitTime);
+
+ // 打开刻录会话, 返回刻录会话句柄,pstInParam与pstOutParam内存由用户申请释放
+ public LLong CLIENT_StartBurnSession(LLong lLoginID,NET_IN_START_BURN_SESSION pstInParam,NET_OUT_START_BURN_SESSION pstOutParam,int nWaitTime);
+
+ // 关闭刻录会话
+ public boolean CLIENT_StopBurnSession(LLong lBurnSession);
+
+ //------------有盘/无盘刻录----lBurnSession 是 CLIENT_StartBurnSession返回的句柄//
+ // 开始刻录,pstInParam与pstOutParam内存由用户申请释放
+ public boolean CLIENT_StartBurn(LLong lBurnSession,NET_IN_START_BURN pstInParam,NET_OUT_START_BURN pstOutParam,int nWaitTime);
+
+ // 停止刻录
+ public boolean CLIENT_StopBurn(LLong lBurnSession);
+
+ // 暂停/恢复刻录
+ public boolean CLIENT_PauseBurn(LLong lBurnSession,int bPause);
+
+ // 获取刻录状态
+ public boolean CLIENT_BurnGetState(LLong lBurnSession,NET_IN_BURN_GET_STATE pstInParam,NET_OUT_BURN_GET_STATE pstOutParam,int nWaitTime);
+
+ // 监听刻录状态,pstInParam与pstOutParam内存由用户申请释放
+ public LLong CLIENT_AttachBurnState(LLong lLoginID,NET_IN_ATTACH_STATE pstInParam,NET_OUT_ATTACH_STATE pstOutParam,int nWaitTime);
+
+ // 取消监听刻录状态,lAttachHandle是CLIENT_AttachBurnState返回值
+ public boolean CLIENT_DetachBurnState(LLong lAttachHandle);
+
+ // 开始刻录附件上传
+ // 刻录上传开始 返回此次上传操作句柄, 注意以下接口不能在fAttachBurnStateCB回调函数里面调用,pstInParam与pstOutParam内存由用户申请释放
+ public LLong CLIENT_StartUploadFileBurned(LLong lLoginID,NET_IN_FILEBURNED_START pstInParam,NET_OUT_FILEBURNED_START pstOutParam,int nWaitTime);
+
+ //上传刻录附件,lUploadHandle是CLIENT_StartUploadFileBurned返回值
+ public boolean CLIENT_SendFileBurned(LLong lUploadHandle);
+
+ //停止刻录附件上传
+ // 刻录上传停止,lUploadHandle是CLIENT_StartUploadFileBurned返回值,此接口不能在fBurnFileCallBack回调函数中调用
+ public boolean CLIENT_StopUploadFileBurned(LLong lUploadHandle);
+
+ // 下载指定的智能分析数据 - 图片, fDownLoadPosCallBack 回调
+ // emType 参考 EM_FILE_QUERY_TYPE
+ public LLong CLIENT_DownloadMediaFile(LLong lLoginID,int emType,Pointer lpMediaFileInfo,String sSavedFileName,Callback cbDownLoadPos,Pointer dwUserData,Pointer reserved);
+
+ // 停止下载数据
+ public boolean CLIENT_StopDownloadMediaFile(LLong lFileHandle);
+
+ // 下发通知到设备 接口, 以emNotifyType来区分下发的通知类型, pInParam 和 pOutParam 都由用户来分配和释放, emNotifyType对应结构体 NET_EM_NOTIFY_TYPE
+ public boolean CLIENT_SendNotifyToDev(LLong lLoginID,int emNotifyType,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ // 查询IO状态(pState内存由用户申请释放,根据emType对应的类型找到相应的结构体,进而确定申请内存大小), emType 参考 NET_IOTYPE
+ public boolean CLIENT_QueryIOControlState(LLong lLoginID,int emType,Pointer pState,int maxlen,IntByReference nIOCount,int waittime);
+
+ // IO控制(pState内存由用户申请释放,根据emType对应的类型找到相应的结构体,进而确定申请内存大小),emType 参考 NET_IOTYPE
+ public boolean CLIENT_IOControl(LLong lLoginID,int emType,Pointer pState,int maxlen);
+
+ // 订阅监测点位信息,pInParam与pOutParam内存由用户申请释放
+ public LLong CLIENT_SCADAAttachInfo(LLong lLoginID,NET_IN_SCADA_ATTACH_INFO pInParam,NET_OUT_SCADA_ATTACH_INFO pOutParam,int nWaitTime);
+
+ // 取消监测点位信息订阅
+ public boolean CLIENT_SCADADetachInfo(LLong lAttachHandle);
+
+ // 创建透明串口通道,TransComType高2个字节表示串口序号,低2个字节表示串口类型,目前类型支持 0:串口(232), 1:485
+ // baudrate 串口的波特率,1~8分别表示1200,2400,4800,9600,19200,38400,57600,115200
+ // databits 串口的数据位 4~8表示4位~8位
+ // stopbits 串口的停止位 232串口 : 数值0 代表停止位1; 数值1 代表停止位1.5; 数值2 代表停止位2. 485串口 : 数值1 代表停止位1; 数值2 代表停止位2.
+ // parity 串口的检验位,0:无校验,1:奇校验;2:偶校验;
+ // cbTransCom 串口数据回调,回调出前端设备发过来的信息
+ // fTransComCallBack 回调
+ public LLong CLIENT_CreateTransComChannel(LLong lLoginID,int TransComType,int baudrate,int databits,int stopbits,int parity,Callback cbTransCom,Pointer dwUser);
+
+ // 透明串口发送数据(pBuffer内存由用户申请释放)
+ public boolean CLIENT_SendTransComData(LLong lTransComChannel,byte[] pBuffer,int dwBufSize);
+
+ // 释放通明串口通道
+ public boolean CLIENT_DestroyTransComChannel(LLong lTransComChannel);
+
+ // 查询透明串口状态(pCommState内存由用户申请释放), TransComType 低2个字节表示串口类型, 0:串口(232), 1:485口;高2个字节表示串口通道号,从0开始
+ public boolean CLIENT_QueryTransComParams(LLong lLoginID,int TransComType,NET_COMM_STATE pCommState,int nWaitTime);
+
+ // 订阅智能分析进度(适用于视频分析源为录像文件时),pstInParam与pstOutParam内存由用户申请释放
+ public boolean CLIENT_AttachVideoAnalyseState(LLong lLoginID,NET_IN_ATTACH_VIDEOANALYSE_STATE pstInParam,NET_OUT_ATTACH_VIDEOANALYSE_STATE pstOutParam,int nWaittime);
+
+ // 停止订阅
+ public boolean CLIENT_DetachVideoAnalyseState(LLong lAttachHandle);
+
+ // 抓图, hPlayHandle为预览或回放句柄
+ public boolean CLIENT_CapturePicture(LLong hPlayHandle,String pchPicFileName);
+
+ // 抓图, hPlayHandle为预览或回放句柄
+ public boolean CLIENT_CapturePictureEx(LLong hPlayHandle,String pchPicFileName,int eFormat);
+
+ // 获取设备自检信息,pInParam与pOutParam内存由用户申请释放
+ public boolean CLIENT_GetSelfCheckInfo(LLong lLoginID,NET_IN_GET_SELTCHECK_INFO pInParam,NET_SELFCHECK_INFO pOutParam,int nWaitTime);
+
+ // 主动注册功能,启动服务;nTimeout参数已无效 .
+ // cbListen对象为 fServiceCallBack 子类
+ public LLong CLIENT_ListenServer(String ip,int port,int nTimeout,Callback cbListen,Pointer dwUserData);
+
+ // 停止服务
+ public boolean CLIENT_StopListenServer(LLong lServerHandle);
+
+ // 指定回调数据类型 实施预览(预览), 数据回调函数 cbRealData 中得到的码流类型为 emDataType 所指定的类型
+ public LLong CLIENT_RealPlayByDataType(LLong lLoginID,NET_IN_REALPLAY_BY_DATA_TYPE pstInParam,NET_OUT_REALPLAY_BY_DATA_TYPE pstOutParam,int dwWaitTime);
+
+ // 指定回调数据格式 开始回放, 数据回调函数 fDownLoadDataCallBack 中得到的码流类型为 emDataType 所指定的类型
+ public LLong CLIENT_PlayBackByDataType(LLong lLoginID,NET_IN_PLAYBACK_BY_DATA_TYPE pstInParam,NET_OUT_PLAYBACK_BY_DATA_TYPE pstOutParam,int dwWaitTime);
+
+ // 指定码流类型 开始下载, 下载得到的文件和数据回调函数 fDownLoadDataCallBack 中得到的码流类型均为 emDataType 所指定的类型
+ // NET_IN_DOWNLOAD_BY_DATA_TYPE pstInParam, NET_OUT_DOWNLOAD_BY_DATA_TYPE pstOutParam
+ public LLong CLIENT_DownloadByDataType(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int dwWaitTime);
+
+ /************************************************************************/
+ /* BUS订阅 */
+ /************************************************************************/
+ // 订阅Bus状态,pstuInBus与pstuOutBus内存由用户申请释放
+ public LLong CLIENT_AttachBusState(LLong lLoginID,NET_IN_BUS_ATTACH pstuInBus,NET_OUT_BUS_ATTACH pstuOutBus,int nWaitTime);
+
+ // 停止订阅Bus状态,lAttachHandle是CLIENT_AttachBusState返回值
+ public boolean CLIENT_DetachBusState(LLong lAttachHandle);
+
+ //订阅事件重传,pInParam内存由用户申请释放
+ public LLong CLIENT_AttachEventRestore(LLong lLoginID,NET_IN_ATTACH_EVENT_RESTORE pInParam,int nWaitTime);
+
+ // 停止订阅事件重传,pInParam内存由用户申请释放
+ public boolean CLIENT_DetachEventRestore(LLong lAttachHandle);
+
+ // 设置GPS温湿度订阅回调函数, fGPSTempHumidityRev
+ public void CLIENT_SetSubcribeGPSTHCallBack(Callback OnGPSMessage,Pointer dwUser);
+
+ // GPS温湿度信息订阅, bStart为BOOL类型
+ public boolean CLIENT_SubcribeGPSTempHumidity(LLong lLoginID,int bStart,int InterTime,Pointer Reserved);
+
+ // 人脸信息记录操作函数
+ public boolean CLIENT_FaceInfoOpreate(LLong lLoginID,int emType,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ // 下发人脸图片信息
+ public boolean CLIENT_DeliverUserFacePicture(LLong lLoginID,NET_IN_DELIVER_USER_PICTURE pInParam,NET_OUT_DELIVER_USER_PICTURE pOutParam,int nWaitTime);
+
+ //开始查询人脸信息
+ public LLong CLIENT_StartFindFaceInfo(LLong lLoginID,NET_IN_FACEINFO_START_FIND pstIn,NET_OUT_FACEINFO_START_FIND pstOut,int nWaitTime);
+
+ //获取人脸信息
+ public boolean CLIENT_DoFindFaceInfo(LLong lFindHandle,NET_IN_FACEINFO_DO_FIND pstIn,NET_OUT_FACEINFO_DO_FIND pstOut,int nWaitTime);
+
+ //停止查询人脸信息
+ public boolean CLIENT_StopFindFaceInfo(LLong lFindHandle);
+
+ /***********************************************************************************
+ * 诱导屏相关接口 *
+ **********************************************************************************/
+ // 设置诱导屏配置信息接口
+ public boolean CLIENT_SetGuideScreenCfg(LLong lLoginID,NET_IN_SET_GUIDESCREEN_CFG pInParam,NET_OUT_SET_GUIDESCREEN_CFG pstOutPqram,int nWaitTime);
+
+ // 添加一个节目信息到诱导屏
+ public boolean CLIENT_AddOneProgramme(LLong lLoginID,NET_IN_ADD_ONE_PROGRAMME pInParam,NET_OUT_ADD_ONE_PROGRAMME pOutParam,int nWaitTime);
+
+ // 通过节目ID 修改节目
+ public boolean CLIENT_ModifyOneProgrammeByID(LLong lLoginID,NET_IN_MODIFY_ONE_PROGRAMME pInParam,NET_OUT_MODIFY_ONE_PROGRAMME pOutParam,int nWaitTime);
+
+ // 批量删除节目信息
+ public boolean CLIENT_DelMultiProgrammesById(LLong lLoginID,NET_IN_DEL_PROGRAMMES pInParam,NET_OUT_DEL_PROGRAMMES pOutParam,int nWaitTime);
+
+ // 增加一个即时节目计划
+ public boolean CLIENT_AddOneImmediProgrammePlan(LLong lLoginID,NET_IN_ADD_IMME_PROGRAMMEPLAN pInParam,NET_OUT_ADD_PROGRAMMEPLAN pOutParam,int nWaitTime);
+
+ // 修改一个即时节目计划
+ public boolean CLIENT_ModifyOneImmediProgrammePlan(LLong lLoginID,NET_IN_MODIFY_IMME_PROGRAMMEPLAN pInParam,NET_OUT_MODIFY_IMME_PROGRAMMEPLAN pOutParam,int nWaitTime);
+
+ // 增加一个定时节目计划
+ public boolean CLIENT_AddOneTimerProgrammePlan(LLong lLoginID,NET_IN_ADD_TIMER_PROGRAMMEPLAN pInParam,NET_OUT_ADD_PROGRAMMEPLAN pOutParam,int nWaitTime);
+
+ // 修改一个定时节目计划
+ public boolean CLIENT_ModifyOneTimerProgrammePlan(LLong lLoginID,NET_IN_MODIFY_TIMER_PROGRAMMEPLAN pInParam,NET_OUT_MODIFY_TIMER_PROGRAMMEPLAN pOutParam,int nWaitTime);
+
+ // 删除多个节目计划
+ public boolean CLIENT_DelMultiProgrammePlans(LLong lLoginID,NET_IN_DEL_PROGRAMMEPLANS pInParam,NET_OUT_DEL_PROGRAMMEPLANS pOutParam,int nWaitTime);
+
+ // 通过诱导屏ID 获取诱导屏配置信息
+ public boolean CLIENT_GetOneGuideScreenCfgById(LLong lLoginID,NET_IN_GET_GUIDESCREEN_CFG_BYID pInParam,NET_OUT_GET_GUIDESCREEN_CFG_BYID pOutParam,int nWaitTime);
+
+ // 获取所有诱导屏配置信息
+ public boolean CLIENT_GetAllGuideScreenCfg(LLong lLoginID,NET_IN_GET_ALL_GUIDESCREEN_CFG pInParam,NET_OUT_GET_ALL_GUIDESCREEN_CFG pOutParam,int nWaitTime);
+
+ // 通过节目ID 获取节目信息
+ public boolean CLIENT_GetOneProgrammeById(LLong lLoginID,NET_IN_GET_PROGRAMME_BYID pInParam,NET_OUT_GET_PROGRAMME_BYID pOutParam,int nWaitTime);
+
+ // 获取所有节目信息
+ public boolean CLIENT_GetAllProgrammes(LLong lLoginID,NET_IN_GET_ALL_PROGRAMMES pInParam,NET_OUT_GET_ALL_PROGRAMMES pOutParam,int nWaitTime);
+
+ // 获取所有节目的简要信息
+ public boolean CLIENT_GetAllBrieflyProgrammes(LLong lLoginID,NET_IN_GET_ALL_BRIEFLYPROGRAMMES pInParam,NET_OUT_GET_ALL_BRIEFLYPROGRAMMES pOutParam,int nWaitTime);
+
+ // 获取所有节目计划信息
+ public boolean CLIENT_GetAllProgrammePlans(LLong lLoginID,NET_IN_GET_ALL_PROGRAMMEPLANS pInParam,NET_OUT_GET_ALL_PROGRAMMEPLANS pOutParam,int nWaitTime);
+
+ // 通过节目计划ID 获取节目计划
+ public boolean CLIENT_GetOneProgrammePlanByID(LLong lLoginID,NET_IN_GET_PROGRAMMEPLAN_BYID pInParam,NET_OUT_GET_PROGRAMMEPLAN_BYID pOutParam,int nWaitTime);
+
+ // 设置光带状态信息
+ public boolean CLIENT_SetGuideScreenGDStatus(LLong lLoginID,NET_IN_SET_GD_STATUS pInParam,NET_OUT_SET_GD_STATUS pOutParam,int nWaitTime);
+
+ /***********************************************************************************
+ * 播放盒与广告机的节目操作接口 *
+ **********************************************************************************/
+ // 获取播放盒上全部节目信息
+ public boolean CLIENT_GetAllProgramOnPlayBox(LLong lLoginID,NET_IN_GET_ALL_PLAYBOX_PROGRAM pInParam,NET_OUT_GET_ALL_PLAYBOX_PROGRAM pOutParam,int nWaitTime);
+
+ // 通过programme ID 获取播放盒上对应的节目信息
+ public boolean CLIENT_GetOneProgramByIdOnPlayBox(LLong lLoginID,NET_IN_GET_PLAYBOX_PROGRAM_BYID pInParam,NET_OUT_GET_PLAYBOX_PROGRAM_BYID pOutParam,int nWaitTime);
+
+ // 在播放盒上添加一个节目
+ public boolean CLIENT_AddOneProgramToPlayBox(LLong lLoginID,NET_IN_ADD_ONE_PLAYBOX_PRAGROM pInParam,NET_OUT_ADD_ONE_PLAYBOX_PRAGROM pOutParam,int nWaitTime);
+
+ // 在播放盒上修改指定ID的节目信息
+ public boolean CLIENT_ModifyProgramOnPlayBoxById(LLong lLoginID,NET_IN_MODIFY_PLAYBOX_PROGRAM_BYID pInParam,NET_OUT_MODIFY_PLAYBOX_PROGRAM_BYID pOutParam,int nWaitTime);
+
+ // 获取配置信息(szOutBuffer内存由用户申请释放, 具体见枚举类型 NET_EM_CFG_OPERATE_TYPE 说明)
+ public boolean CLIENT_GetConfig(LLong lLoginID,int emCfgOpType,int nChannelID,Pointer szOutBuffer,int dwOutBufferSize,int waittime,Pointer reserve);
+
+ // 设置配置信息(szInBuffer内存由用户申请释放, 具体见枚举类型 NET_EM_CFG_OPERATE_TYPE 说明)
+ public boolean CLIENT_SetConfig(LLong lLoginID,int emCfgOpType,int nChannelID,Pointer szInBuffer,int dwInBufferSize,int waittime,IntByReference restart,Pointer reserve);
+
+ // 显示私有数据,例如规则框,规则框报警,移动侦测等 lPlayHandle:播放句柄 bTrue=1 打开, bTrue= 0 关闭
+ public boolean CLIENT_RenderPrivateData(LLong lPlayHandle,int bTrue);
+
+ // 按设备信息添加显示源,pInParam与pOutParam内存由用户申请释放
+ public boolean CLIENT_MatrixAddCamerasByDevice(LLong lLoginID,NET_IN_ADD_LOGIC_BYDEVICE_CAMERA pInParam,NET_OUT_ADD_LOGIC_BYDEVICE_CAMERA pOutParam,int nWaitTime);
+
+ // 订阅监测点位报警信息,pInParam与pOutParam内存由用户申请释放
+ public LLong CLIENT_SCADAAlarmAttachInfo(LLong lLoginID,NET_IN_SCADA_ALARM_ATTACH_INFO pInParam,NET_OUT_SCADA_ALARM_ATTACH_INFO pOutParam,int nWaitTime);
+
+ // 取消订阅监测点位报警信息
+ public boolean CLIENT_SCADAAlarmDetachInfo(LLong lAttachHandle);
+
+ /***********************************************************************************
+ * IVSS设备添加相关接口 *
+ **********************************************************************************/
+ // 注册设备状态回调
+ public LLong CLIENT_AttachDeviceState(LLong lLoginID,NET_IN_ATTACH_DEVICE_STATE pInParam,NET_OUT_ATTACH_DEVICE_STATE pOutParam,int nWaitTime);
+
+ // 注销设备状态回调
+ public boolean CLIENT_DetachDeviceState(LLong lAttachHandle);
+
+ // 添加设备
+ public boolean CLIENT_AsyncAddDevice(LLong lLoginID,NET_IN_ASYNC_ADD_DEVICE pInParam,NET_OUT_ASYNC_ADD_DEVICE pOutParam,int nWaitTime);
+
+ // 注册添加设备回调
+ public LLong CLIENT_AttachAddDevice(LLong lLoginID,NET_IN_ATTACH_ADD_DEVICE pInParam,NET_OUT_ATTACH_ADD_DEVICE pOutParam,int nWaitTime);
+
+ // 注销添加设备回调
+ public boolean CLIENT_DetachAddDevice(LLong lAttachHandle);
+
+ // 获取添加中的设备状态
+ public boolean CLIENT_GetAddDeviceInfo(LLong lLoginID,NET_IN_GET_ADD_DEVICE_LIST_INFO pInParam,NET_OUT_GET_ADD_DEVICE_LIST_INFO pOutParam,int nWaitTime);
+
+ // 获取已添加的设备状态
+ public boolean CLIENT_GetDeviceInfo(LLong lLoginID,NET_IN_GET_DEVICE_LIST_INFO pInParam,NET_OUT_GET_DEVICE_LIST_INFO pOutParam,int nWaitTime);
+
+ // 设置连接通道
+ public boolean CLIENT_SetConnectChannel(LLong lLoginID,NET_IN_SET_CONNECT_CHANNEL pInParam,NET_OUT_SET_CONNECT_CHANNEL pOutParam,int nWaitTime);
+
+ // 获取设备通道信息
+ public boolean CLIENT_GetChannelInfo(LLong lLoginID,NET_IN_GET_CHANNEL_INFO pInParam,NET_OUT_GET_CHANNEL_INFO pOutParam,int nWaitTime);
+
+ // 删除设备
+ public boolean CLIENT_RemoveDevice(LLong lLoginID,NET_IN_REMOVE_DEVICE pInParam,NET_OUT_REMOVE_DEVICE pOutParam,int nWaitTime);
+
+ // 中止添加设备任务
+ public boolean CLIENT_CancelAddDeviceTask(LLong lLoginID,NET_IN_CANCEL_ADD_TASK pInParam,NET_OUT_CANCEL_ADD_TASK pOutParam,int nWaitTime);
+
+ // 确认添加设备任务
+ public boolean CLIENT_ConfirmAddDeviceTask(LLong lLoginID,NET_IN_CONFIRM_ADD_TASK pInParam,NET_OUT_CONFIRM_ADD_TASK pOutParam,int nWaitTime);
+
+ // 球机,地磁车位同步上报车位信息,如有车停入、或车从车位开出
+ public boolean CLIENT_SyncParkingInfo(LLong lLoginID,NET_IN_SYNC_PARKING_INFO pInParam,NET_OUT_SYNC_PARKING_INFO pOutParam,int nWaitTime);
+
+ // 初始化账户
+ public boolean CLIENT_InitDevAccount(NET_IN_INIT_DEVICE_ACCOUNT pInitAccountIn,NET_OUT_INIT_DEVICE_ACCOUNT pInitAccountOut,int dwWaitTime,String szLocalIp);
+
+ // 根据设备IP初始化账户
+ public boolean CLIENT_InitDevAccountByIP(NET_IN_INIT_DEVICE_ACCOUNT pInitAccountIn,NET_OUT_INIT_DEVICE_ACCOUNT pInitAccountOut,int dwWaitTime,String szLocalIp,String szDeviceIP);
+
+ public boolean CLIENT_ModifyDevice(DEVICE_NET_INFO_EX pDevNetInfo,int nWaitTime,IntByReference iError,String szLocalIp);
+
+ /**
+ * 门禁控制器操作接口
+ * @param lLoginID 登录句柄
+ * @param emtype 门禁控制器操作类型, 对应 枚举{@link NET_EM_ACCESS_CTL_MANAGER}
+ * @param pstInParam 入参, 根据 emtype 来填
+ * @param pstOutParam 出参, 根据 emtype 来填
+ * @param nWaitTime 超时等待时间
+ * @return true:成功 false:失败
+ */
+ public boolean CLIENT_OperateAccessControlManager(LLong lLoginID,int emtype,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 设置安全密钥(播放加密码流使用)
+ * @param lPlayHandle 拉流句柄
+ * @param szKey 密钥
+ * @param nKeyLen 密钥的长度
+ * @return true:成功 false:失败
+ */
+ public boolean CLIENT_SetSecurityKey(LLong lPlayHandle,String szKey,int nKeyLen);
+
+ /***********************************************************************************
+ * 考勤机相关接口 *
+ **********************************************************************************/
+ //考勤新增加用户
+ public boolean CLIENT_Attendance_AddUser(LLong lLoginID,NET_IN_ATTENDANCE_ADDUSER pstuInAddUser,NET_OUT_ATTENDANCE_ADDUSER pstuOutAddUser,int nWaitTime);
+
+ //考勤删除用户
+ public boolean CLIENT_Attendance_DelUser(LLong lLoginID,NET_IN_ATTENDANCE_DELUSER pstuInDelUser,NET_OUT_ATTENDANCE_DELUSER pstuOutDelUser,int nWaitTime);
+
+ //考勤修改用户信息
+ public boolean CLIENT_Attendance_ModifyUser(LLong lLoginID,NET_IN_ATTENDANCE_ModifyUSER pstuInModifyUser,NET_OUT_ATTENDANCE_ModifyUSER pstuOutModifyUser,int nWaitTime);
+
+ //考勤获取用户信息
+ public boolean CLIENT_Attendance_GetUser(LLong lLoginID,NET_IN_ATTENDANCE_GetUSER pstuInGetUser,NET_OUT_ATTENDANCE_GetUSER pstuOutGetUser,int nWaitTime);
+
+ //考勤机 通过用户ID插入信息数据
+ public boolean CLIENT_Attendance_InsertFingerByUserID(LLong lLoginID,NET_IN_FINGERPRINT_INSERT_BY_USERID pstuInInsert,NET_OUT_FINGERPRINT_INSERT_BY_USERID pstuOutInsert,int nWaitTime);
+
+ //考勤机 删除单个用户下所有信息数据
+ public boolean CLIENT_Attendance_RemoveFingerByUserID(LLong lLoginID,NET_CTRL_IN_FINGERPRINT_REMOVE_BY_USERID pstuInRemove,NET_CTRL_OUT_FINGERPRINT_REMOVE_BY_USERID pstuOutRemove,int nWaitTime);
+
+ //考勤机 通过信息ID获取信息数据
+ public boolean CLIENT_Attendance_GetFingerRecord(LLong lLoginID,NET_CTRL_IN_FINGERPRINT_GET pstuInGet,NET_CTRL_OUT_FINGERPRINT_GET pstuOutGet,int nWaitTime);
+
+ //考勤机 通过信息ID删除信息数据
+ public boolean CLIENT_Attendance_RemoveFingerRecord(LLong lLoginID,NET_CTRL_IN_FINGERPRINT_REMOVE pstuInRemove,NET_CTRL_OUT_FINGERPRINT_REMOVE pstuOutRemove,int nWaitTime);
+
+ //考勤机 查找用户
+ public boolean CLIENT_Attendance_FindUser(LLong lLoginID,NET_IN_ATTENDANCE_FINDUSER pstuInFindUser,NET_OUT_ATTENDANCE_FINDUSER pstuOutFindUser,int nWaitTime);
+
+ //考勤机 通过用户ID查找该用户下的所有信息数据
+ public boolean CLIENT_Attendance_GetFingerByUserID(LLong lLoginID,NET_IN_FINGERPRINT_GETBYUSER pstuIn,NET_OUT_FINGERPRINT_GETBYUSER pstuOut,int nWaitTime);
+
+ //获取考勤机在线状态
+ public boolean CLIENT_Attendance_GetDevState(LLong lLoginID,NET_IN_ATTENDANCE_GETDEVSTATE pstuInParam,NET_OUT_ATTENDANCE_GETDEVSTATE pstuOutParam,int nWaitTime);
+
+ /*********************************************************************************************************
+ * 视频诊断功能接口 * *
+ * 视频诊断参数表配置 CFG_CMD_VIDEODIAGNOSIS_PROFILE *
+ * 视频诊断任务表配置 CFG_CMD_VIDEODIAGNOSIS_TASK_ONE *
+ * 视频诊断计划表配置 CFG_CMD_VIDEODIAGNOSIS_PROJECT *
+ * 删除任务接口 CLIENT_DeleteDevConfig *
+ * 获取成员配置接口 CLIENT_GetMemberNames 对应命令 CFG_CMD_VIDEODIAGNOSIS_TASK *
+ * 获取诊断状态 CLIENT_QueryNewSystemInfo CFG_CMD_VIDEODIAGNOSIS_GETSTATE *
+ *********************************************************************************************************/
+ // 实时获取视频诊断结果,pstInParam与pstOutParam内存由用户申请释放
+ public boolean CLIENT_StartVideoDiagnosis(LLong lLoginID,NET_IN_VIDEODIAGNOSIS pstInParam,NET_OUT_VIDEODIAGNOSIS pstOutParam);
+
+ // 停止视频诊断结果上报
+ public boolean CLIENT_StopVideoDiagnosis(LLong hDiagnosisHandle);
+
+ // 开始视频诊断结果查询,pstInParam与pstOutParam内存由用户申请释放
+ public boolean CLIENT_StartFindDiagnosisResult(LLong lLoginID,NET_IN_FIND_DIAGNOSIS pstInParam,NET_OUT_FIND_DIAGNOSIS pstOutParam);
+
+ // 获取视频诊断结果信息,pstInParam与pstOutParam内存由用户申请释放
+ public boolean CLIENT_DoFindDiagnosisResult(LLong hFindHandle,NET_IN_DIAGNOSIS_INFO pstInParam,NET_OUT_DIAGNOSIS_INFO pstOutParam);
+
+ // 结束视频诊断结果查询
+ public boolean CLIENT_StopFindDiagnosis(LLong hFindHandle);
+
+ // 获取视频诊断进行状态
+ public boolean CLIENT_GetVideoDiagnosisState(LLong lLoginID,NET_IN_GET_VIDEODIAGNOSIS_STATE pstInParam,NET_OUT_GET_VIDEODIAGNOSIS_STATE pstOutParam,int nWaitTime);
+
+ /********************************************************************************************
+ * 热成像 *
+ ********************************************************************************************/
+ // 订阅温度分布数据(热图),pInParam与pOutParam内存由用户申请释放
+ public LLong CLIENT_RadiometryAttach(LLong lLoginID,NET_IN_RADIOMETRY_ATTACH pInParam,NET_OUT_RADIOMETRY_ATTACH pOutParam,int nWaitTime);
+
+ // 取消订阅温度分布数据,lAttachHandle是 CLIENT_RadiometryAttach 的返回值
+ public boolean CLIENT_RadiometryDetach(LLong lAttachHandle);
+
+ // 通知开始获取热图数据,pInParam与pOutParam内存由用户申请释放
+ public boolean CLIENT_RadiometryFetch(LLong lLoginID,NET_IN_RADIOMETRY_FETCH pInParam,NET_OUT_RADIOMETRY_FETCH pOutParam,int nWaitTime);
+
+ // 热图数据解压与转换接口
+ /// \brief
+ /// \param pRadiometryData [IN] 热图数据, 由 fRadiometryAttachCB 获得
+ /// \param pGrayImg [IN, OUT] 解压后的数据,是一张灰度图,
+ /// 传空指针表示不需要此数据
+ /// 用户需保证传入的缓冲区足够大(不小于 图像像素数*sizeof(unsigned short))
+ /// 每个像素对应一个 unsigned short 型数据,表示图像某个像素的热成像灰度(范围 0 ~ 16383),
+ /// 低地址对应画面左上角,高地址对应画面右下角
+ /// \param pTempForPixels [IN, OUT] 每个像素的温度数据
+ /// 传空指针表示不需要此数据
+ /// 用户需保证传入的缓冲区足够大(不小于 图像像素数*sizeof(float))
+ /// 每个像素对应一个 float 型数据,表示该像素位置的摄氏温度
+ /// 低地址对应画面左上角,高地址对应画面右下角
+ /// \return TRUE 成功,FALSE 失败
+ public boolean CLIENT_RadiometryDataParse(NET_RADIOMETRY_DATA pRadiometryData,short[] pGrayImg,float[] pTempForPixels);
+
+ // 开始查询信息(获取查询句柄)(pInBuf, pOutBuf内存由用户申请释放,根据emType对应的类型找到相应的结构体,进而确定申请内存大小)
+ public boolean CLIENT_StartFind(LLong lLoginID,int emType,Pointer pInBuf,Pointer pOutBuf,int nWaitTime);
+
+ // 查询信息(pInBuf, pOutBuf内存由用户申请释放,根据emType对应的类型找到相应的结构体,进而确定申请内存大小
+ public boolean CLIENT_DoFind(LLong lLoginID,int emType,Pointer pInBuf,Pointer pOutBuf,int nWaitTime);
+
+ // 停止查询信息(销毁查询句柄)(pInBuf, pOutBuf内存由用户申请释放,根据emType对应的类型找到相应的结构体,进而确定申请内存大小)
+ public boolean CLIENT_StopFind(LLong lLoginID,int emType,Pointer pInBuf,Pointer pOutBuf,int nWaitTime);
+
+ // 智能锁添加更新用户信息接口
+ public boolean CLIENT_UpdateSmartLockUser(LLong lLoginID,NET_IN_SMARTLOCK_UPDATE_USER_INFO pstInParam,NET_OUT_SMARTLOCK_UPDATE_USER_INFO pstOutParam,int nWaitTime);
+
+ // 获取当前智能锁的注册用户信息
+ public boolean CLIENT_GetSmartLockRegisterInfo(LLong lLoginID,NET_IN_GET_SMART_LOCK_REGISTER_INFO pstInParam,NET_OUT_GET_SMART_LOCK_REGISTER_INFO pstOutParam,int nWaitTime);
+
+ // 智能锁修改用户信息
+ public boolean CLIENT_SetSmartLockUsername(LLong lLoginID,NET_IN_SET_SMART_LOCK_USERNAME pstInParam,NET_OUT_SET_SMART_LOCK_USERNAME pstOutParam,int nWaitTime);
+
+ // 智能锁删除用户接口
+ public boolean CLIENT_RemoveSmartLockUser(LLong lLoginID,NET_IN_SMARTLOCK_REMOVE_USER_INFO pstInParam,NET_OUT_SMARTLOCK_REMOVE_USER_INFO pstOutParam,int nWaitTime);
+
+ // 字符串加密接口 (pInParam, pOutParam内存由用户申请释放) 接口
+ public boolean CLIENT_EncryptString(NET_IN_ENCRYPT_STRING pInParam,NET_OUT_ENCRYPT_STRING pOutParam,int nWaitTime);
+
+ /*************************************************************************************************************
+ * 门禁用户、卡、人脸、信息操作新接口
+ * 1、添加一个用户
+ * 2、根据用户ID可以来添加多张卡、多张人脸、多个信息
+ *************************************************************************************************************/
+ /**
+ * 门禁人员信息管理接口
+ * @param emtype 对应 {@link NET_EM_ACCESS_CTL_USER_SERVICE}
+ */
+ public boolean CLIENT_OperateAccessUserService(LLong lLoginID,int emtype,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ // 开始查询人员信息
+ public LLong CLIENT_StartFindUserInfo(LLong lLoginID,NET_IN_USERINFO_START_FIND pstIn,NET_OUT_USERINFO_START_FIND pstOut,int nWaitTime);
+
+ // 获取人员信息 ,lFindHandle 为 CLIENT_StartFindUserInfo 接口返回值
+ public boolean CLIENT_DoFindUserInfo(LLong lFindHandle,NET_IN_USERINFO_DO_FIND pstIn,NET_OUT_USERINFO_DO_FIND pstOut,int nWaitTime);
+
+ // 停止查询人员信息 ,lFindHandle 为 CLIENT_StartFindUserInfo 接口返回值
+ public boolean CLIENT_StopFindUserInfo(LLong lFindHandle);
+
+ /**
+ * 门禁卡片信息管理接口
+ * @param emtype 对应 {@link NET_EM_ACCESS_CTL_CARD_SERVICE}
+ */
+ public boolean CLIENT_OperateAccessCardService(LLong lLoginID,int emtype,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ // 开始查询卡片信息
+ public LLong CLIENT_StartFindCardInfo(LLong lLoginID,NET_IN_CARDINFO_START_FIND pstIn,NET_OUT_CARDINFO_START_FIND pstOut,int nWaitTime);
+
+ // 获取卡片信息,lFindHandle 为CLIENT_StartFindCardInfo接口返回值
+ public boolean CLIENT_DoFindCardInfo(LLong lFindHandle,NET_IN_CARDINFO_DO_FIND pstIn,NET_OUT_CARDINFO_DO_FIND pstOut,int nWaitTime);
+
+ // 停止查询卡片信息,lFindHandle 为CLIENT_StartFindCardInfo接口返回值
+ public boolean CLIENT_StopFindCardInfo(LLong lFindHandle);
+
+ /**
+ * 门禁人脸信息管理接口
+ * @param emtype 对应 {@link NET_EM_ACCESS_CTL_FACE_SERVICE}
+ */
+ public boolean CLIENT_OperateAccessFaceService(LLong lLoginID,int emtype,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 信息信息管理接口
+ * @param emtype 对应 {@link NET_EM_ACCESS_CTL_FINGERPRINT_SERVICE}
+ */
+ public boolean CLIENT_OperateAccessFingerprintService(LLong lLoginID,int emtype,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ // 开始升级
+ public LLong CLIENT_StartUpgradeEx(LLong lLoginID,int emtype,String pchFileName,Callback cbUpgrade,Pointer dwUser);
+
+ // 发送数据
+ public boolean CLIENT_SendUpgrade(LLong lUpgradeID);
+
+ // 结束升级设备程序
+ public boolean CLIENT_StopUpgrade(LLong lUpgradeID);
+
+ // 查询产品定义
+ public boolean CLIENT_QueryProductionDefinition(LLong lLoginID,NET_PRODUCTION_DEFNITION pstuProdDef,int nWaitTime);
+
+ /**
+ * 录播主机相关 添加新的课程记录
+ * NET_IN_ADD_COURSE *pstInParam, NET_OUT_ADD_COURSE *pstOutParam
+ */
+ public boolean CLIENT_AddCourse(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 录播主机相关 修改课程
+ * NET_IN_MODIFY_COURSE *pstInParam, NET_OUT_MODIFY_COURSE *pstOutParam
+ */
+ public boolean CLIENT_ModifyCourse(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 录播主机相关 删除课程
+ * NET_IN_DELETE_COURSE *pstInParam, NET_OUT_DELETE_COURSE *pstOutParam
+ */
+ public boolean CLIENT_DeleteCourse(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 开始查询课程
+ * NET_IN_QUERY_COURSE_OPEN *pstInParam, NET_OUT_QUERY_COURSE_OPEN *pstOutParam
+ */
+ public boolean CLIENT_QueryCourseOpen(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 查询课程
+ * NET_IN_QUERY_COURSE *pstInParam, NET_OUT_QUERY_COURSE *pstOutParam
+ */
+ public boolean CLIENT_QueryCourse(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 结束查询课程
+ * NET_IN_QUERY_COURSE_CLOSE *pstInParam, NET_OUT_QUERY_COURSE_CLOSE *pstOutParam
+ */
+ public boolean CLIENT_QueryCourseClose(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 获取真实预览通道号,pInBuf与pOutBuf内存由用户申请释放
+ * NET_IN_GET_REAL_PREVIEW_CHANNEL* pInBuf, NET_OUT_GET_REAL_PREVIEW_CHANNEL* pOutBuf
+ */
+ public boolean CLIENT_GetRealPreviewChannel(LLong lLoginID,Pointer pInBuf,Pointer pOutBuf,int nWaitTime);
+
+ /**
+ * 录播主机组合通道模式操作 emOperateType NET_COURSECOMPOSITE_MODE_OPERATE_TYPE
+ *
+ * NET_COURSECOMPOSITE_MODE_OPERATE_TYPE {
+ *
+ * NET_COURSECOMPOSITE_MODE_ADD, // 添加模式,对应结构体
+ * // pInParam = NET_IN_COURSECOMPOSITE_CHANNEL_MODE_ADD,
+ * // pOutParam = NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_ADD
+ * NET_COURSECOMPOSITE_MODE_DELETE, // 删除模式,对应结构体
+ * // pInParam = NET_IN_COURSECOMPOSITE_CHANNEL_MODE_DELETE,
+ * // pOutParam = NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_DELETE
+ * NET_COURSECOMPOSITE_MODE_MODIFY, // 修改模式,对应结构体
+ * // pInParam = NET_IN_COURSECOMPOSITE_CHANNEL_MODE_MODIFY,
+ * // pOutParam = NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_MODIFY
+ * NET_COURSECOMPOSITE_MODE_GET, // 获取模式,对应结构体
+ * // pInParam = NET_IN_COURSECOMPOSITE_CHANNEL_MODE_GET,
+ * // pOutParam = NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_GET
+ * }
+ */
+ public boolean CLIENT_OperateCourseCompositeChannelMode(LLong lLoginID,int emOperateType,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 获取录播主机默认真实通道号,pInBuf与pOutBuf内存由用户申请释放
+ * NET_IN_GET_DEFAULT_REAL_CHANNEL* pInBuf, NET_OUT_GET_DEFAULT_REAL_CHANNEL* pOutBuf
+ */
+ public boolean CLIENT_GetDefaultRealChannel(LLong lLoginID,Pointer pInBuf,Pointer pOutBuf,int nWaitTime);
+
+ /**
+ * 获取录播主机逻辑通道号,pInBuf与pOutBuf内存由用户申请释放
+ * NET_IN_GET_COURSE_LOGIC_CHANNEL* pInBuf,NET_OUT_GET_COURSE_LOGIC_CHANNEL* pOutBuf
+ */
+ public boolean CLIENT_GetLogicChannel(LLong lLoginID,Pointer pInBuf,Pointer pOutBuf,int nWaitTime);
+
+ /**
+ * 设置逻辑通道号和真实通道号的绑定关系,pInBuf与pOutBuf内存由用户申请释放
+ * NET_IN_SET_BLIND_REAL_CHANNEL* pInBuf,NET_OUT_SET_BLIND_REAL_CHANNEL* pOutBuf
+ */
+ public boolean CLIENT_SetBlindRealChannel(LLong lLoginID,Pointer pInBuf,Pointer pOutBuf,int nWaitTime);
+
+ /**
+ * 设置课程录像模式,pInBuf与pOutBuf内存由用户申请释放
+ * NET_IN_SET_COURSE_RECORD_MODE* pInBuf, NET_OUT_SET_COURSE_RECORD_MODE* pOutBuf
+ */
+ public boolean CLIENT_SetCourseRecordMode(LLong lLoginID,Pointer pInBuf,Pointer pOutBuf,int nWaitTime);
+
+ /**
+ * 获取课程录像模式,pInBuf与pOutBuf内存由用户申请释放
+ * NET_IN_GET_COURSE_RECORD_MODE* pInBuf, NET_OUT_GET_COURSE_RECORD_MODE* pOutBuf
+ */
+ public boolean CLIENT_GetCourseRecordMode(LLong lLoginID,Pointer pInBuf,Pointer pOutBuf,int nWaitTime);
+
+ /**
+ * 获取录播主机通道输入媒体介质,pInBuf与pOutBuf内存由用户申请释放
+ * NET_IN_GET_INPUT_CHANNEL_MEDIA* pInBuf,NET_OUT_GET_INPUT_CHANNEL_MEDIA* pOutBuf
+ */
+ public boolean CLIENT_GetInputChannelMedia(LLong lLoginID,Pointer pInBuf,Pointer pOutBuf,int nWaitTime);
+
+ /**
+ * 开启/关闭指定通道录像
+ * NET_IN_SET_COURSE_RECORD_STATE *pInBuf, NET_OUT_SET_COURSE_RECORD_STATE *pOutBuf
+ */
+ public boolean CLIENT_SetCourseRecordState(LLong lLoginID,Pointer pInBuf,Pointer pOutBuf,int nWaitTime);
+
+ /**
+ * 开始查询课程视频信息,pInBuf与pOutBuf内存由用户申请释放
+ * NET_IN_QUERY_COURSEMEDIA_FILEOPEN *pInBuf, NET_OUT_QUERY_COURSEMEDIA_FILEOPEN *pOutBuf
+ */
+ public boolean CLIENT_OpenQueryCourseMediaFile(LLong lLoginID,Pointer pInBuf,Pointer pOutBuf,int nWaitTime);
+
+ /**
+ * 查询课程视频信息,pInBuf与pOutBuf内存由用户申请释放
+ * NET_IN_QUERY_COURSEMEDIA_FILE *pInBuf, NET_OUT_QUERY_COURSEMEDIA_FILE *pOutBuf
+ */
+ public boolean CLIENT_DoQueryCourseMediaFile(LLong lLoginID,Pointer pInBuf,Pointer pOutBuf,int nWaitTime);
+
+ /**
+ * 关闭课程视频查询,pInBuf与pOutBuf内存由用户申请释放
+ * NET_IN_QUERY_COURSEMEDIA_FILECLOSE *pInBuf, NET_OUT_QUERY_COURSEMEDIA_FILECLOSE *pOutBuf
+ */
+ public boolean CLIENT_CloseQueryCourseMediaFile(LLong lLoginID,Pointer pInBuf,Pointer pOutBuf,int nWaitTime);
+
+ /**
+ * 录播主机录像信息操作接口 EM_COURSERECORD_OPERATE_TYPE emOperateType
+ * {
+ * EM_COURSERECORDE_TYPE_GET_INFO, //获取教室录像信息,对应结构体
+ * pInParam = NET_IN_COURSERECORD_GETINFO,pOutParam = NET_OUT_COURSERECORD_GETINFO
+ * EM_COURSERECORDE_TYPE_SET_INFO, //设置教室录像信息,对应结构体
+ * pInParam = NET_IN_COURSERECORD_SETINFO,pOutParam = NET_OUT_COURSERECORD_SETINFO
+ * EM_COURSERECORDE_TYPE_UPDATE_INFO, //将录像信息更新到time时的信息,对应结构体
+ * pInParam = NET_IN_COURSERECORD_UPDATE_INFO, pOutParam = NET_OUT_COURSERECORD_UPDATE_INFO
+ * EM_COURSERECORDE_TYPE_GET_TIME, //获取当前课程教室已录制时间,对应结构体
+ * pInParam = NET_IN_COURSERECORD_GET_TIME, pOutParam = NET_OUT_COURSERECORD_GET_TIME
+ * }
+ */
+ public boolean CLIENT_OperateCourseRecordManager(LLong lLoginID,int emOperateType,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 录播主机组合通道操作 EM_COURSECOMPOSITE_OPERATE_TYPE
+ * {
+ * EM_COURSECOMPOSITE_TYPE_LOCK_CONTROL, //控制组合通道与逻辑通道,对应结构体
+ * pInParam = NET_IN_COURSECOMPOSITE_LOCK_CONTROL,pOutParam = NET_OUT_COURSECOMPOSITE_LOCK_CONTROL
+ * EM_COURSECOMPOSITE_TYPE_GET_LOCKINFO, //获取组合通道与逻辑通道的锁定信息,对应结构体
+ * pInParam = NET_IN_COURSECOMPOSITE_GET_LOCKINFO,pOutParam = NET_OUT_COURSECOMPOSITE_GET_LOCKINFO
+ * EM_COURSECOMPOSITE_TYPE_GET_INFO, //获取组合通道信息,对应结构体
+ * pInParam = NET_IN_COURSECOMPOSITE_GET_INFO,pOutParam = NET_OUT_COURSECOMPOSITE_GET_INFO
+ * EM_COURSECOMPOSITE_TYPE_SET_INFO, //设置组合通道信息,对应结构体
+ * pInParam = NET_IN_COURSECOMPOSITE_SET_INFO,pOutParam = NET_OUT_COURSECOMPOSITE_SET_INFO
+ * EM_COURSECOMPOSITE_TYPE_UPDATE_INFO, //将组合通道信息更新到time时的信息,对应结构体
+ * pInParam = NET_IN_COURSECOMPOSITE_UPDATE_INFO, pOutParam = NET_OUT_COURSECOMPOSITE_UPDATE_INFO
+ * }
+ */
+ public boolean CLIENT_OperateCourseCompositeChannel(LLong lLoginID,int emOperateType,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 获取录像状态
+ * NET_IN_GET_RECORD_STATE *pInParam, NET_OUT_GET_RECORD_STATE *pOutParam
+ */
+ public boolean CLIENT_GetRecordState(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 电视墙操作
+ * NET_MONITORWALL_OPERATE_TYPE emType, void* pInParam, void* pOutParam
+ */
+ public boolean CLIENT_OperateMonitorWall(LLong lLoginID,int emType,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 分页获取信息标注信息列表
+ * NET_IN_SCENICSPOT_GETPOINTINFOS_INFO *pInstuParam, NET_OUT_SCENICSPOT_GETPOINTINFOS_INFO *pstuOutParam
+ */
+ public boolean CLIENT_ScenicSpotGetPointInfos(LLong lLoginID,Pointer pInstuParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 设置景物点,原编号的景物点将会被覆盖
+ * NET_IN_SCENICSPOT_SETPOINTINFO_INFO *pInstuParam, NET_OUT_SCENICSPOT_SETPOINTINFO_INFO *pstuOutParam
+ */
+ public boolean CLIENT_ScenicSpotSetPointInfo(LLong lLoginID,Pointer pInstuParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 获取景物点支持的能力
+ * NET_IN_SCENICSPOT_GETCAPS_INFO *pInstuParam, NET_OUT_SCENICSPOT_GETCAPS_INFO *pstuOutParam
+ */
+ public boolean CLIENT_ScenicSpotGetCaps(LLong lLoginID,Pointer pInstuParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 以景物标注点为中心,进行三维定位(倍率不变)
+ * NET_IN_SCENICSPOT_TURNTOPOINT_INFO *pInParam, NET_OUT_SCENICSPOT_TURNTOPOINT_INFO *pOutParam
+ */
+ public boolean CLIENT_ScenicSpotTurnToPoint(LLong lLoginID,Pointer pInstuParam,Pointer pstuOutParam,int nWaitTime);
+
+ /////////////////////////////////////////新增接口 ///////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////////////////////////
+ /**
+ * 设置停车车位状态
+ * NET_IN_SET_PARKINGSPACE_STATE_INFO *pInParam, NET_OUT_SET_PARKINGSPACE_STATE_INFO *pOutParam
+ */
+ public boolean CLIENT_SetParkingSpaceState(LLong lLoginID,Pointer pstInParm,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 修改停车记录信息
+ * NET_IN_MODIFY_PARKINGRECORD_INFO *pInParam, NET_OUT_MODIFY_PARKINGRECORD_INFO *pOutParam
+ */
+ public boolean CLIENT_ModifyParkingRecord(LLong lLoginID,Pointer pstInParm,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 按照事件类型抓图(配合CLIENT_RealLoadPic()、CLIENT_RealLoadPicEx()接口使用, 按照手动抓拍模式(Manual)订阅,图片通过回调给用户)(pInParam, pOutParam内存由用户申请释放)
+ * NET_IN_SNAP_BY_EVENT *pInParam, NET_OUT_SNAP_BY_EVENT *pOutParam
+ */
+ public boolean CLIENT_SnapPictureByEvent(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ public static class NET_IN_SET_MARK_FILE_BY_TIME extends SdkStructure
+ {
+ public int dwSize;
+ public int nChannel; //需要锁定的通道号,从0开始,元素为-1时,表示全通道。
+ public NET_TIME_EX stuStartTime; //开始时间
+ public NET_TIME_EX stuEndTime; //结束时间
+ public int bFlag; // 标记动作 true : 标记, false : 清除
+ public int bLockTimeFlag; //nLockTime字段标志位, 为 TRUE 时使用nLockTime
+ public int nLockTime; //锁定时长,以加锁时间为起点 ,单位为小时
+
+ public NET_IN_SET_MARK_FILE_BY_TIME() {
+ this.dwSize = this.size();
+ }
+ }
+
+ public static class NET_OUT_SET_MARK_FILE_BY_TIME extends SdkStructure
+ {
+ public int dwSize;
+
+ public NET_OUT_SET_MARK_FILE_BY_TIME() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 按时间标记录像
+ public boolean CLIENT_SetMarkFileByTime(LLong lUpgradeID,NET_IN_SET_MARK_FILE_BY_TIME pInParam,NET_OUT_SET_MARK_FILE_BY_TIME pOutParam,int nWaitTime);
+
+ public static class NET_IN_SET_MARK_FILE extends SdkStructure
+ {
+ public int dwSize;
+ public int emLockMode; // 录像加锁方式,详见EM_MARKFILE_MODE
+ public int emFileNameMadeType; // 文件名产生的方式,详见EM_MARKFILE_NAMEMADE_TYPE
+ public int nChannelID; // 通道号
+ public byte[] szFilename = new byte[MAX_PATH]; // 文件名
+ public int nFramenum; // 文件总帧数
+ public int nSize; // 文件长度
+ public NET_TIME stuStartTime; // 开始时间
+ public NET_TIME stuEndTime; // 结束时间
+ public int nDriveNo; // 磁盘号(区分网络录像和本地录像的类型,0-127表示本地录像,其中64表示光盘1,128表示网络录像)
+ public int nStartCluster; // 起始簇号
+ public byte byRecordFileType; // 录象文件类型 0:普通录象;1:报警录象;2:移动检测;3:卡号录象;4:图片, 5: 智能录像
+ public byte byImportantRecID; // 0:普通录像 1:重要录像
+ public byte byHint; // 文件定位索引(nRecordFileType==4<图片>时,bImportantRecID<<8 +bHint ,组成图片定位索引 )
+ public byte byRecType; // 0-主码流录像 1-辅码流1录像 2-辅码流2录像 3-辅码流3录像
+ public int nLockTime; // 锁定时长,以加锁时间为起点,单位为小时
+
+ public NET_IN_SET_MARK_FILE() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 录像加锁方式
+ public static class EM_MARKFILE_MODE extends SdkStructure
+ {
+ public static final int EM_MARK_FILE_BY_TIME_MODE = 0; // 通过时间方式对录像加锁
+ public static final int EM_MARK_FILE_BY_NAME_MODE = 1; // 通过文件名方式对录像加锁
+ }
+
+ // 文件名产生的方式
+ public static class EM_MARKFILE_NAMEMADE_TYPE extends SdkStructure
+ {
+ public static final int EM_MARKFILE_NAMEMADE_DEFAULT = 0; // 默认方式:需要用户传递录像文件名参数szFilename
+ public static final int EM_MARKFILE_NAMEMADE_JOINT = 1; // 拼接文件名方式:用户传递磁盘号(nDriveNo)、起始簇号(nStartCluster),不需要传递录像文件名
+ }
+
+ public static class NET_OUT_SET_MARK_FILE extends SdkStructure
+ {
+ public int dwSize;
+
+ public NET_OUT_SET_MARK_FILE() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 按文件标记录像
+ public boolean CLIENT_SetMarkFile(LLong lLoginID,NET_IN_SET_MARK_FILE pInParam,NET_OUT_SET_MARK_FILE pOutParam,int nWaitTime);
+
+ public static class NET_IN_DEV_GPS_INFO extends SdkStructure
+ {
+ public int dwSize; // 该结构体大小
+ public int nChannel;
+
+ public NET_IN_DEV_GPS_INFO() {
+ this.dwSize =this.size();
+ }
+ }
+
+ public static class NET_OUT_DEV_GPS_INFO extends SdkStructure
+ {
+ public int dwSize; // 该结构体大小
+ public NET_TIME stuLocalTime; // 当前时间
+ public double dbLongitude; // 经度(单位是百万分之度,范围0-360度)
+ public double dbLatitude; // 纬度(单位是百万分之度,范围0-180度)
+ public double dbAltitude; // 高度(单位:米)
+ public double dbSpeed; // 速度(单位:km/H)
+ public double dbBearing; // 方向角(单位:度)
+ public int emAntennasStatus; // 天线状态(0:坏 1:好)
+ public int emPositioningResult; // 定位状态(0:不定位 1:定位)
+ public int dwSatelliteCount; // 卫星个数
+ public int emworkStatus; // 工作状态
+ public int nAlarmCount; // 报警个数
+ public int[] nAlarmState = new int[128]; // 发生的报警位置,值可能多个
+ public float fHDOP; // 水平精度因子
+
+ public NET_OUT_DEV_GPS_INFO() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 实时抽帧配置,EVS
+ public static class CFG_BACKUP_LIVE_INFO extends SdkStructure
+ {
+ public int bEnable; // 是否启动抽帧
+ public int nBackupRate; // 抽帧备份比率,如为0表示只保留I帧,其它情况下表示保留I帧以及紧邻其后的若干P帧
+ // 单位:百分比
+ // 如果GOP为50,20表示保留50*20%=10帧数据(即1个I帧和9个P帧)。如果计算结果带小数,则取整
+ public CFG_TIME_SECTION stuTimeSection; // 抽帧时间段
+ }
+
+ // 定时录像配置信息
+ public static class CFG_RECORD_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号(0开始)
+ public TIME_SECTION_WEEK_DAY_6[] stuTimeSection = (TIME_SECTION_WEEK_DAY_6[])new TIME_SECTION_WEEK_DAY_6().toArray(WEEK_DAY_NUM); // 时间表
+ public int nPreRecTime; // 预录时间,为零时表示关闭(0~300)
+ public int bRedundancyEn; // 录像冗余开关
+ public int nStreamType; // 0-主码流,1-辅码流1,2-辅码流2,3-辅码流3
+ public int nProtocolVer; // 协议版本号, 只读
+ public int abHolidaySchedule; // 为true时有假日配置信息,bHolidayEn、stuHolTimeSection才有效;
+ public int bHolidayEn; // 假日录像使能TRUE:使能,FALSE:未使能
+ public TIME_SECTION_WEEK_DAY_6 stuHolTimeSection; // 假日录像时间表
+ public int nBackupLiveNum; // 实时抽帧配置个数
+ public CFG_BACKUP_LIVE_INFO[] stuBackupLiveInfo = (CFG_BACKUP_LIVE_INFO[]) new CFG_BACKUP_LIVE_INFO().toArray(8); // 实时抽帧配置,EVS
+ public int bSaveVideo; // 是否录制视频帧
+ public int bSaveAudio; // 录像时是否保存音频数据
+ public int bEnable; //录像时是否保存音频数据
+ public int nMaxRecordTime; //报警输入使能
+ public byte[] szReserved = new byte[1024]; //单次Pir录像时长限制(单位秒),0表示无限制
+ }
+
+ //获取云升级信息入参
+ public static class NET_IN_UPGRADER_GETSERIAL extends SdkStructure
+ {
+ public int dwSize; // 此结构体大小
+
+ public NET_IN_UPGRADER_GETSERIAL() {
+ this.dwSize = this.size();
+ }
+ }
+
+ //云升级信息
+ public static class NET_UPGRADER_SERIAL_INO extends SdkStructure
+ {
+ public int emVendor; // 厂商,详见ENUM_VENDOR_TYPE
+ public int emStandard; // 视频制式, 详见ENUM_STANDARD_TYPE
+ public NET_TIME_EX stuBuild; // 发布日期
+ public byte[] szChip = new byte[NET_COMMON_STRING_16]; // 可升级的程序名
+ public byte[] szSerial = new byte[NET_COMMON_STRING_256]; // 内部型号
+ public byte[] szLanguage = new byte[NET_COMMON_STRING_128]; // 语言
+ public byte[] szSn = new byte[NET_COMMON_STRING_64]; // 序列号
+ public byte[] szSWVersion = new byte[NET_COMMON_STRING_64]; // 软件版本
+ public byte[] szTag = new byte[NET_COMMON_STRING_256]; // 自定义标记
+ public byte[] szTag2 = new byte[NET_COMMON_STRING_256]; // 自定义标记2
+ public byte[] reserved = new byte[1024];
+ }
+
+ //获取云升级信息出参
+ public static class NET_OUT_UPGRADER_GETSERIAL extends SdkStructure
+ {
+ public int dwSize; // 此结构体大小
+ public NET_UPGRADER_SERIAL_INO[] stuSerialInfo = new NET_UPGRADER_SERIAL_INO[MAX_UPGRADER_SERIAL_INFO]; // 云升级信息
+ public int nRetNum; // 返回个数
+
+ public NET_OUT_UPGRADER_GETSERIAL() {
+ this.dwSize = this.size();
+
+ for (int i = 0; i < stuSerialInfo.length; ++i) {
+ stuSerialInfo[i] = new NET_UPGRADER_SERIAL_INO();
+ }
+ }
+ }
+
+ //从设备获取信息,用于向DH云确认是否有升级包
+ public boolean CLIENT_GetUpdateSerial(LLong lLoginID,NET_IN_UPGRADER_GETSERIAL pstuInGetSerial,NET_OUT_UPGRADER_GETSERIAL pstuOutGetSerial,int nWaitTime);
+
+ // 云升级软件检查入参
+ public static class NET_IN_CLOUD_UPGRADER_CHECK extends SdkStructure
+ {
+ public int dwSize;
+ public int emVendor; // 厂商,详见ENUM_VENDOR_TYPE
+ public int emStandard; // 视频制式, 详见ENUM_STANDARD_TYPE
+ public NET_TIME_EX stuBuild; // 编译时间,用于比较版本
+ public byte[] szUrl = new byte[NET_COMMON_STRING_1024]; // 云URL
+ public byte[] szClass = new byte[NET_COMMON_STRING_64]; // 设备大类
+ public byte[] szSerial = new byte[NET_COMMON_STRING_256]; // 设备硬件信号系列
+ public byte[] szLanguage = new byte[NET_COMMON_STRING_128]; // 语言
+ public byte[] szSN = new byte[NET_COMMON_STRING_64]; // 设备序列号
+ public byte[] szSWVersion = new byte[NET_COMMON_STRING_64]; // 版本号,用于显示
+ public byte[] szTag1 = new byte[NET_COMMON_STRING_256]; // 预留字段,可用于后续或扩展
+ public byte[] szTag2 = new byte[NET_COMMON_STRING_256]; // 预留字段,可用于后续或扩展
+ public byte[] szAccessKeyId = new byte[NET_COMMON_STRING_128]; //Access Key ID
+ public byte[] szSecretAccessKey = new byte[NET_COMMON_STRING_128]; //Secret Access Key
+
+ public NET_IN_CLOUD_UPGRADER_CHECK() {
+ this.dwSize = this.size();
+ }
+ }
+
+ //设备制造商
+ public static class ENUM_VENDOR_TYPE extends SdkStructure
+ {
+ public static final int ENUM_VENDOR_TYPE_UNKNOWN = 0; // 未知
+ public static final int ENUM_VENDOR_TYPE_GENERAL = 1; // General
+ public static final int ENUM_VENDOR_TYPE_DH = 2; // DH
+ public static final int ENUM_VENDOR_TYPE_OEM = 3; // OEM
+ public static final int ENUM_VENDOR_TYPE_LC = 4; // LC
+ public static final int ENUM_VENDOR_TYPE_EZIP = 5; // EZIP
+ }
+
+ //视频制式
+ public static class ENUM_STANDARD_TYPE extends SdkStructure
+ {
+ public static final int ENUM_STANDARD_TYPE_UNKNOWN = 0; // 未知
+ public static final int ENUM_STANDARD_TYPE_PAL = 1; // P-PAL
+ public static final int ENUM_STANDARD_TYPE_NTSC = 2; // N-NTSC
+ public static final int ENUM_STANDARD_TYPE_PAL_NTSC = 3; // PN-PAL/NTSC默认P制
+ public static final int ENUM_STANDARD_TYPE_NTSC_PAL = 4; // NP-NTSC/PAL默认N制
+ public static final int ENUM_STANDARD_TYPE_SECAM = 5; // S-SECAM
+ }
+
+ // 云升级软件检查出参
+ public static class NET_OUT_CLOUD_UPGRADER_CHECK extends SdkStructure
+ {
+ public int dwSize;
+ public int bHasNewVersion; // 是否有可升级版本
+ public byte[] szVersion = new byte[NET_COMMON_STRING_64]; // 版本信息
+ public byte[] szAttention = new byte[NET_COMMON_STRING_1024]; // 提醒设备升级的提示信息
+ public byte[] szPackageUrl = new byte[NET_COMMON_STRING_1024]; // 设备升级包的URL
+ public byte[] szPackageId = new byte[NET_COMMON_STRING_64]; // 升级包ID
+
+ public NET_OUT_CLOUD_UPGRADER_CHECK() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 检查云端是否有可升级软件, 使用HTTP协议
+ public boolean CLIENT_CloudUpgraderCheck(NET_IN_CLOUD_UPGRADER_CHECK pIn,NET_OUT_CLOUD_UPGRADER_CHECK pOut,int dwWaitTime);
+
+ //云下载状态
+ public static class emCloudDownloadState extends SdkStructure
+ {
+ public static final int emCloudDownloadState_Unknown = 0; // 未知
+ public static final int emCloudDownloadState_Success = 1; // 云下载成功(需要关闭句柄)
+ public static final int emCloudDownloadState_Failed = 2; // 云下载失败(不需要关闭句柄,会不断尝试下载)
+ public static final int emCloudDownloadState_Downloading = 3; // 正在下载中
+ public static final int emCloudDownloadState_NoEnoughDiskSpace = 4; // 磁盘空间不足
+ }
+
+ // 云下载回调函数
+ public interface fCloudDownload_Process_callback extends Callback {
+ public void invoke(LLong lDownHandle,int emState,double dwDownloadSpeed,int dwProgressPercentage,Pointer dwUser);
+ }
+
+ // 云升级下载升级包入参
+ public static class NET_IN_CLOUD_UPGRADER_DOWN extends SdkStructure
+ {
+ public int dwSize;
+ public byte[] szPackageUrl = new byte[NET_COMMON_STRING_1024]; // 设备升级包的URL
+ public byte[] szSaveFile = new byte[NET_COMMON_STRING_1024]; // 保存文件名
+ public Callback pfProcessCallback; // 进度回调,实现fCloudDownload_Process_callback
+ public Pointer dwUser; // 回调用户数据
+
+ public NET_IN_CLOUD_UPGRADER_DOWN() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 云升级下载升级包出参
+ public static class NET_OUT_CLOUD_UPGRADER_DOWN extends SdkStructure
+ {
+ public int dwSize;
+
+ public NET_OUT_CLOUD_UPGRADER_DOWN() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 云 下载升级软件, 使用HTTP协议
+ public LLong CLIENT_CloudUpgraderDownLoad(NET_IN_CLOUD_UPGRADER_DOWN pIn,NET_OUT_CLOUD_UPGRADER_DOWN pOut);
+
+ // 停止云下载, 使用HTTP协议
+ public boolean CLIENT_CloudUpgraderStop(LLong lDownloadHandle);
+
+ // 暂停云下载, 使用HTTP协议
+ public boolean CLIENT_CloudUpgraderPause(LLong lDownloadHandle,int bPause);
+
+ //升级结果
+ public static class NET_UPGRADE_REPORT_RESULT extends SdkStructure
+ {
+ public static final int NET_UPGRADE_REPORT_RESULT_UNKNWON = 0; // 未知
+ public static final int NET_UPGRADE_REPORT_RESULT_SUCCESS = 1; // 成功
+ public static final int NET_UPGRADE_REPORT_RESULT_FAILED = 2; // 失败
+ }
+
+ //上报升级结果结构体
+ public static class NET_UPGRADE_REPORT extends SdkStructure
+ {
+ public int nDeviceNum;
+ public DEVICE_SERIAL[] szDevSerialArr = (DEVICE_SERIAL[])new DEVICE_SERIAL().toArray(NET_UPGRADE_COUNT_MAX); // 序列号
+ public byte[] szPacketID = new byte[MAX_COMMON_STRING_128]; // 升级包ID
+ public int emResult; // 升级结果,详见NET_UPGRADE_REPORT_RESULT
+ public byte[] szCode = new byte[MAX_COMMON_STRING_128]; // 错误码信息
+ public byte[] reserved = new byte[256];
+ }
+
+ public static class DEVICE_SERIAL extends SdkStructure
+ {
+ public byte[] szDevSerial = new byte[MAX_COMMON_STRING_64]; // 序列号
+ }
+
+ //上报升级结果入参
+ public static class NET_IN_UPGRADE_REPORT extends SdkStructure
+ {
+ public int dwSize;
+ public int nCount; // 升级包个数
+ public Pointer pstuUpgradeReport; // 升级结果信息 , 大小 nCount * sizeof(NET_UPGRADE_REPORT)
+ public byte[] szAccessKeyId = new byte[NET_COMMON_STRING_128]; //访问ID
+ public byte[] szSecretAccessKey = new byte[NET_COMMON_STRING_128]; //访问秘钥
+ public byte[] szUrl = new byte[NET_COMMON_STRING_1024]; // 云URL
+
+ public NET_IN_UPGRADE_REPORT() {
+ this.dwSize = this.size();
+ }
+ }
+
+ //上报升级结果出参
+ public static class NET_OUT_UPGRADE_REPORT extends SdkStructure
+ {
+ public int dwSize;
+
+ public NET_OUT_UPGRADE_REPORT() {
+ this.dwSize = this.size();
+ }
+ }
+
+ //上报升级结果, 使用HTTP协议
+ public boolean CLIENT_CloudUpgraderReport(NET_IN_UPGRADE_REPORT pIn,NET_OUT_UPGRADE_REPORT pOut,int dwWaitTime);
+
+ // 升级状态回调结构体
+ public static class NET_CLOUD_UPGRADER_STATE extends SdkStructure
+ {
+ public int dwSize;
+ public int emState; // 升级状态,详见EM_UPGRADE_STATE
+ public int nProgress; // 升级百分比
+ public byte[] szFileName = new byte[NET_COMMON_STRING_128]; // 升级文件
+ public long nTotalLen; // 升级文件总大小,单位字节
+ public byte[] szFileNameEx = new byte[256]; // 升级文件扩展
+ public byte[] szReserved = new byte[1024]; // 扩展字段
+
+ public NET_CLOUD_UPGRADER_STATE() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 升级状态回调函数
+ public interface fUpgraderStateCallback extends Callback {
+ public void invoke(LLong lLoginId,LLong lAttachHandle,NET_CLOUD_UPGRADER_STATE pBuf,int dwBufLen,Pointer pReserved,Pointer dwUser);
+ }
+
+ // 订阅升级状态入参
+ public static class NET_IN_CLOUD_UPGRADER_ATTACH_STATE extends SdkStructure
+ {
+ public int dwSize;
+ public Callback cbUpgraderState; // 升级状态回调实现fUpgraderStateCallback
+ public Pointer dwUser;
+
+ public NET_IN_CLOUD_UPGRADER_ATTACH_STATE() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 订阅升级状态出参
+ public static class NET_OUT_CLOUD_UPGRADER_ATTACH_STATE extends SdkStructure
+ {
+ public int dwSize;
+
+ public NET_OUT_CLOUD_UPGRADER_ATTACH_STATE() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 获取升级状态入参
+ public static class NET_IN_CLOUD_UPGRADER_GET_STATE extends SdkStructure
+ {
+ public int dwSize;
+
+ public NET_IN_CLOUD_UPGRADER_GET_STATE() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 获取升级状态出参
+ public static class NET_OUT_CLOUD_UPGRADER_GET_STATE extends SdkStructure
+ {
+ public int dwSize;
+ public int emState; // 升级状态,详见EM_UPGRADE_STATE
+ public int nProgress; // 升级进度
+ public byte[] szFileName = new byte[NET_COMMON_STRING_128]; // 升级文
+
+ public NET_OUT_CLOUD_UPGRADER_GET_STATE() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 升级包和升级状态
+ public static class EM_UPGRADE_STATE extends SdkStructure
+ {
+ public static final int EM_UPGRADE_STATE_UNKNOWN = 0; // 未知状态
+ public static final int EM_UPGRADE_STATE_NONE = 1; // 没有检测到更新状态
+ public static final int EM_UPGRADE_STATE_INVALID = 2; // 升级包不正确
+ public static final int EM_UPGRADE_STATE_NOT_ENOUGH_MEMORY = 3; // 内存不够
+ public static final int EM_UPGRADE_STATE_DOWNLOADING = 4; // 正在下载数据
+ public static final int EM_UPGRADE_STATE_DOWNLOAD_FAILED = 5; // 下载失败
+ public static final int EM_UPGRADE_STATE_DOWNLOAD_SUCCESSED = 6; // 下载成功
+ public static final int EM_UPGRADE_STATE_PREPARING = 7; // 准备升级
+ public static final int EM_UPGRADE_STATE_UPGRADING = 8; // 升级中
+ public static final int EM_UPGRADE_STATE_UPGRADE_FAILED = 9; // 升级失败
+ public static final int EM_UPGRADE_STATE_UPGRADE_SUCCESSED = 10; // 升级成功
+ public static final int EM_UPGRADE_STATE_UPGRADE_CANCELLED = 11; // 取消升级
+ public static final int EM_UPGRADE_STATE_FILE_UNMATCH = 12; // 升级包不匹配
+ }
+
+ // 订阅升级状态观察接口
+ public LLong CLIENT_CloudUpgraderAttachState(LLong lLoginID,NET_IN_CLOUD_UPGRADER_ATTACH_STATE pInParam,NET_OUT_CLOUD_UPGRADER_ATTACH_STATE pOutParam,int nWaitTime);
+
+ // 退订升级状态观察接口
+ public boolean CLIENT_CloudUpgraderDetachState(LLong lAttachHandle);
+
+ // 获取升级状态
+ public boolean CLIENT_CloudUpgraderGetState(LLong lLoginID,NET_IN_CLOUD_UPGRADER_GET_STATE pInParam,NET_OUT_CLOUD_UPGRADER_GET_STATE pOutParam,int nWaitTime);
+
+ // 代理服务器地址
+ public static class NET_PROXY_SERVER_INFO extends SdkStructure
+ {
+ public byte[] szIP = new byte[NET_MAX_IPADDR_LEN_EX]; // IP地址
+ public int nPort; // 端口
+ public byte[] byReserved = new byte[84];
+ }
+
+ // CLIENT_CheckCloudUpgrader 入参
+ public static class NET_IN_CHECK_CLOUD_UPGRADER extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int nWay; // 检测路径, 0-直连升级服务器检测, 1-通过代理服务器检测, 2-获取缓存的检测结果
+ public NET_PROXY_SERVER_INFO stProxy; // 代理服务器地址, way==1时有意义
+
+ public NET_IN_CHECK_CLOUD_UPGRADER() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 云升级状态
+ public static class EM_CLOUD_UPGRADER_CHECK_STATE extends SdkStructure
+ {
+ public static final int EM_CLOUD_UPGRADER_CHECK_STATE_UNKNOWN = 0; // 未知
+ public static final int EM_CLOUD_UPGRADER_CHECK_STATE_NONE = 1; // 没有检测到更新
+ public static final int EM_CLOUD_UPGRADER_CHECK_STATE_REGULAR = 2; // 一般升级 (需要用户确认, 只能向高版本)
+ public static final int EM_CLOUD_UPGRADER_CHECK_STATE_EMERGENCY = 3; // 强制升级 (设备自动检测执行, 可以向低版本)
+ public static final int EM_CLOUD_UPGRADER_CHECK_STATE_AUTOMATIC = 4; // 自动升级 (有新升级包, 自动升级, 当前为使用, 需使能页面自动升级选项)
+ }
+
+ // 云升级新版本升级包类型
+ public static class EM_CLOUD_UPGRADER_PACKAGE_TYPE extends SdkStructure
+ {
+ public static final int EM_CLOUD_UPGRADER_PACKAGE_TYPE_UNKNOWN = 0; // 未知
+ public static final int EM_CLOUD_UPGRADER_PACKAGE_TYPE_ALL = 1; // 整包
+ public static final int EM_CLOUD_UPGRADER_PACKAGE_TYPE_PTZ = 2; // 云台主控包
+ public static final int EM_CLOUD_UPGRADER_PACKAGE_TYPE_WEB = 3; // Web
+ public static final int EM_CLOUD_UPGRADER_PACKAGE_TYPE_LOGO = 4; // Logo
+ public static final int EM_CLOUD_UPGRADER_PACKAGE_TYPE_CUSTOM = 5; // Custom
+ public static final int EM_CLOUD_UPGRADER_PACKAGE_TYPE_GUI = 6; // Gui
+ public static final int EM_CLOUD_UPGRADER_PACKAGE_TYPE_PD = 7; // PD
+ public static final int EM_CLOUD_UPGRADER_PACKAGE_TYPE_DATA = 8; // Data
+ public static final int EM_CLOUD_UPGRADER_PACKAGE_TYPE_PTZ_POWER = 9; // 云台电源
+ public static final int EM_CLOUD_UPGRADER_PACKAGE_TYPE_PTZ_LIGHT = 10; // 云台灯光
+ public static final int EM_CLOUD_UPGRADER_PACKAGE_TYPE_PTZ_HEATER = 11; // 云台加热器
+ }
+
+ // CLIENT_CheckCloudUpgrader 出参
+ public static class NET_OUT_CHECK_CLOUD_UPGRADER extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int emState; // 升级状态,详见EM_CLOUD_UPGRADER_CHECK_STATE
+ public int emPackageType; // 新版本升级包类型, State不为None需要返回,详见EM_CLOUD_UPGRADER_PACKAGE_TYPE
+ public byte[] szOldVersion = new byte[MAX_COMMON_STRING_64]; // 旧版本号, State不为None需要返回
+ public byte[] szNewVersion = new byte[MAX_COMMON_STRING_64]; // 新版本号,State不为None需要返回
+ public byte[] szAttention = new byte[NET_COMMON_STRING_2048]; // 新的升级包更新内容
+ public byte[] szPackageURL = new byte[NET_COMMON_STRING_256]; // 升级包下载地址(代理升级需要)
+ public byte[] szPackageID = new byte[MAX_COMMON_STRING_64]; // 升级包ID
+ public byte[] szCheckSum = new byte[MAX_COMMON_STRING_64]; // 升级包的SHA-256校验和
+ public byte[] szBuildTime = new byte[MAX_COMMON_STRING_32]; // 升级包构建时间
+
+ public NET_OUT_CHECK_CLOUD_UPGRADER() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 在线升级检查是否有可用升级包, pInParam和pOutParam内存由用户申请和释放
+ public boolean CLIENT_CheckCloudUpgrader(LLong lLoginID,NET_IN_CHECK_CLOUD_UPGRADER pInParam,NET_OUT_CHECK_CLOUD_UPGRADER pOutParam,int nWaitTime);
+
+ // 升级包信息
+ public static class NET_CLOUD_UPGRADER_INFO extends SdkStructure
+ {
+ public byte[] szPackageURL = new byte[NET_COMMON_STRING_256]; // 升级包下载地址(代理升级需要)
+ public byte[] szPackageID = new byte[MAX_COMMON_STRING_64]; // 升级包ID
+ public byte[] szCheckSum = new byte[MAX_COMMON_STRING_64]; // 升级包的SHA-256校验和
+ public byte[] byReserved = new byte[1024]; // 保留字节
+ }
+
+ // CLIENT_ExecuteCloudUpgrader 入参
+ public static class NET_IN_EXECUTE_CLOUD_UPGRADER extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public byte[] szNewVersion = new byte[MAX_COMMON_STRING_64]; // 上一次check得到的新版本号
+ public int nWay; // 检测路径, 0-直连升级服务器检测, 1-通过代理服务器检测
+ public NET_PROXY_SERVER_INFO stProxy; // 代理服务器地址, nWay==1时有意义
+ public NET_CLOUD_UPGRADER_INFO stInfo; // 升级包信息
+
+ public NET_IN_EXECUTE_CLOUD_UPGRADER() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // CLIENT_ExecuteCloudUpgrader 出参
+ public static class NET_OUT_EXECUTE_CLOUD_UPGRADER extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+
+ public NET_OUT_EXECUTE_CLOUD_UPGRADER() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 执行在线云升级, pInParam和pOutParam内存由用户申请和释放
+ public boolean CLIENT_ExecuteCloudUpgrader(LLong lLoginID,NET_IN_EXECUTE_CLOUD_UPGRADER pInParam,NET_OUT_EXECUTE_CLOUD_UPGRADER pOutParam,int nWaitTime);
+
+ // CLIENT_GetCloudUpgraderState 入参
+ public static class NET_IN_GET_CLOUD_UPGRADER_STATE extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+
+ public NET_IN_GET_CLOUD_UPGRADER_STATE() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 在线升级状态
+ public static class EM_CLOUD_UPGRADER_STATE extends SdkStructure
+ {
+ public static final int EM_CLOUD_UPGRADER_STATE_UNKNOWN = 0; // 未知
+ public static final int EM_CLOUD_UPGRADER_STATE_NOUPGRADE = 1; // "Noupgrade"-未进行升级
+ public static final int EM_CLOUD_UPGRADER_STATE_PREPARING = 2; // "Preparing"-准备升级
+ public static final int EM_CLOUD_UPGRADER_STATE_DOWNLOADING = 3; // "Downloading"-正在下载数据
+ public static final int EM_CLOUD_UPGRADER_STATE_DOWNLOADFAILED = 4; // "DownloadFailed"-下载失败
+ public static final int EM_CLOUD_UPGRADER_STATE_UPGRADING = 5; // "Upgrading"-正在升级
+ public static final int EM_CLOUD_UPGRADER_STATE_INVALID = 6; // "Invalid"-升级包不正确
+ public static final int EM_CLOUD_UPGRADER_STATE_FAILED = 7; // "Failed"-升级包写入Flash失败
+ public static final int EM_CLOUD_UPGRADER_STATE_SUCCEEDED = 8; // "Succeeded"-升级包写入Flash成功
+ }
+
+ // CLIENT_GetCloudUpgraderState 出参
+ public static class NET_OUT_GET_CLOUD_UPGRADER_STATE extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int emState; // 升级状态,详见EM_CLOUD_UPGRADER_STATE
+ public int nProgress; // 升级进度, 状态是Downloading/Upgrading时有意义
+
+ public NET_OUT_GET_CLOUD_UPGRADER_STATE() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 获取云升级在线升级状态, pInParam和pOutParam内存由用户申请和释放
+ public boolean CLIENT_GetCloudUpgraderState(LLong lLoginID,NET_IN_GET_CLOUD_UPGRADER_STATE pInParam,NET_OUT_GET_CLOUD_UPGRADER_STATE pOutParam,int nWaitTime);
+
+ // 事件类型 EVENT_IVS_PHONECALL_DETECT(打电话检测事件) 对应的数据块描述信息
+ public static class DEV_EVENT_PHONECALL_DETECT_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public int nAction; // 0:脉冲 1:开始 2:停止
+ public byte[] szName = new byte[MAX_EVENT_NAME]; // 事件名称
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int nGroupID; // 事件组ID
+ public int nCountInGroup; // 一个事件组内的抓拍张数
+ public int nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
+ public int UTCMS; // UTC对应的毫秒数
+ public NET_MSG_OBJECT stuObject; // 检测到的物体
+ public int nDetectRegionNum; // 规则检测区域顶点数
+ public NET_POINT[] stuDetectRegion = (NET_POINT[])new NET_POINT().toArray(NET_MAX_DETECT_REGION_NUM); // 规则检测区域
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public int nRuleID; // 智能事件规则编号
+ public int nObjectNum; // 检测到的物体数量
+ public DH_MSG_OBJECT[] stuObjects = (DH_MSG_OBJECT[])new DH_MSG_OBJECT().toArray(128); // 多个检测到的物体信息
+ public int nSerialUUIDNum; // 智能物体数量
+ public byte[] szSerialUUID = new byte[128*22]; // 智能物体全局唯一物体标识
+ // 有效数据位21位,包含’\0’
+ // 前2位%d%d:01-视频片段, 02-图片, 03-文件, 99-其他
+ // 中间14位YYYYMMDDhhmmss:年月日时分秒
+ // 后5位%u%u%u%u%u:物体ID,如00001
+ public boolean bSceneImage; // stuSceneImage 是否有效
+ public SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
+ public byte[] szUserName = new byte[32]; // 用户名称
+ public Pointer pstuImageInfo; // 图片信息数组 ,结构体NET_IMAGE_INFO_EX2数组指针
+ public int nImageInfoNum; // 图片信息个数
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public byte[] byReserved = new byte[188]; // 保留字节
+ }
+
+ // 事件类型 EVENT_IVS_SMOKING_DETECT(吸烟检测事件)对应的数据块描述信息
+ public static class DEV_EVENT_SMOKING_DETECT_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public int nAction; // 0:脉冲 1:开始 2:停止
+ public byte[] szName = new byte[MAX_EVENT_NAME]; // 事件名称
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int nGroupID; // 事件组ID
+ public int nCountInGroup; // 一个事件组内的抓拍张数
+ public int nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
+ public int UTCMS; // UTC对应的毫秒数
+ public NET_MSG_OBJECT stuObject; // 检测到的物体
+ public int nDetectRegionNum; // 规则检测区域顶点数
+ public NET_POINT[] stuDetectRegion = (NET_POINT[])new NET_POINT().toArray(NET_MAX_DETECT_REGION_NUM); // 规则检测区域
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public byte szSerialUUID[] = new byte[22]; //智能物体全局唯一物体标识
+ public SCENE_IMAGE_INFO stuSceneImageInfo = new SCENE_IMAGE_INFO(); //全景广角图
+ public byte szUserName[] = new byte[32]; //用户名称
+ public NET_IMAGE_INFO_EX2 stuImageInfo[] = (NET_IMAGE_INFO_EX2[])new NET_IMAGE_INFO_EX2().toArray(32); //图片信息数组
+ public int nImageInfoNum; //图片信息个数
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public byte byReserved[] = new byte[1024]; //预留字节
+ }
+
+ // 事件类型 EVENT_IVS_FIREWARNING(火警事件) 对应的数据块描述信息
+ public static class DEV_EVENT_FIREWARNING_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[NET_EVENT_NAME_LEN]; // 事件名称
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public int nAction; // 1:开始 2:停止
+ public int nFSID; // Uint32 火情编号ID
+ public int emPicType; // 图片类型,详见 EM_FIREWARNING_PIC_TYPE
+ public int bIsLeaveFireDetect; // 是否属于离岗火点检测(TRUE:是 FALSE:不是)
+ public Pointer pstuImageInfo; // 图片信息数组,指针对应结构体NET_IMAGE_INFO_EX2的数组
+ public int nImageInfoNum; // 图片信息个数
+ public byte[] byReserved = new byte[1008 - POINTERSIZE]; // 保留字节
+ }
+
+ // 图片类型
+ public static class EM_FIREWARNING_PIC_TYPE extends SdkStructure
+ {
+ public static final int EM_PIC_UNKNOWN = 0; // 未知
+ public static final int EM_PIC_NONE = 1; // 无
+ public static final int EM_PIC_OVERVIEW = 2; // 全景图
+ public static final int EM_PIC_DETAIL = 3; // 细节图
+ }
+
+ // 事件类型EVENT_IVS_LEFTDETECTION(物品遗留事件)对应的数据块描述信息
+ public static class DEV_EVENT_LEFT_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_MSG_OBJECT stuObject; // 检测到的物体
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public byte bEventAction;
+ public byte[] byReserved = new byte[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int nDetectRegionNum; // 规则检测区域顶点数
+ public NET_POINT[] DetectRegion = new NET_POINT[NET_MAX_DETECT_REGION_NUM]; // 规则检测区域
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
+ public int nSourceIndex; // 事件源设备上的index,-1表示数据无效
+ public byte[] szSourceDevice = new byte[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
+ public int nOccurrenceCount; // 事件触发累计次数
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public short nPreserID; // 事件触发的预置点号,从1开始(没有表示未知)
+ public byte[] szPresetName = new byte[64]; // 事件触发的预置名称
+ public NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
+ public byte[] byReserved2 = new byte[2]; // 字节对齐
+ public NET_GPS_INFO stuGPSInfo; // GPS信息
+ public byte[] szVideoPath = new byte[256]; // 违章关联视频FTP上传路径
+ public SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
+ public NET_IMAGE_INFO_EX2[] stuImageInfo = (NET_IMAGE_INFO_EX2[])new NET_IMAGE_INFO_EX2().toArray(32); //图片信息数组
+ public int nImageInfoNum; // 图片信息个数
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+
+ public DEV_EVENT_LEFT_INFO()
+ {
+ for (int i = 0; i < DetectRegion.length; ++i) {
+ DetectRegion[i] = new NET_POINT();
+ }
+ }
+ }
+
+ // 事件类型 EVENT_IVS_RIOTERDETECTION (聚众事件)对应的数据块描述信息
+ public static class DEV_EVENT_RIOTERL_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int nObjectNum; // 检测到的物体个数
+ public NET_MSG_OBJECT[] stuObjectIDs = new NET_MSG_OBJECT[NET_MAX_OBJECT_LIST]; // 检测到的物体列表
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public byte bEventAction;
+ public byte[] byReserved = new byte[2]; // 保留字节
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int nDetectRegionNum; // 规则检测区域顶点数
+ public NET_POINT[] DetectRegion = new NET_POINT[NET_MAX_DETECT_REGION_NUM]; // 规则检测区域
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
+ public int nSourceIndex; // 事件源设备上的index,-1表示数据无效
+ public byte[] szSourceDevice = new byte[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
+ public int nOccurrenceCount; // 事件触发累计次数
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
+ public byte[] szSourceID = new byte[32]; // 事件关联ID。应用场景是同一个物体或者同一张图片做不同分析,产生的多个事件的SourceID相同
+ // 缺省时为空字符串,表示无此信息
+ // 格式:类型+时间+序列号,其中类型2位,时间14位,序列号5位
+ public NET_IMAGE_INFO_EX2[] stuImageInfo = (NET_IMAGE_INFO_EX2[])new NET_IMAGE_INFO_EX2().toArray(32); // 图片信息数组
+ public int nImageInfoNum; // 图片信息个数
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public byte[] bReserved = new byte[328]; // 保留字节,留待扩展.
+
+ public DEV_EVENT_RIOTERL_INFO()
+ {
+ for (int i = 0; i < stuObjectIDs.length; ++i) {
+ stuObjectIDs[i] = new NET_MSG_OBJECT();
+ }
+
+ for (int i = 0; i < DetectRegion.length; ++i) {
+ DetectRegion[i] = new NET_POINT();
+ }
+ }
+ }
+
+ // 事件类型EVENT_IVS_TAKENAWAYDETECTION(物品搬移事件)对应的数据块描述信息
+ public static class DEV_EVENT_TAKENAWAYDETECTION_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_MSG_OBJECT stuObject; // 检测到的物体
+ public int nDetectRegionNum; // 规则检测区域顶点数
+ public NET_POINT[] DetectRegion = new NET_POINT[NET_MAX_DETECT_REGION_NUM]; // 规则检测区域
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public byte bEventAction;
+ public byte[] byReserved = new byte[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
+ public int nSourceIndex; // 事件源设备上的index,-1表示数据无效
+ public byte[] szSourceDevice = new byte[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
+ public int nOccurrenceCount; // 事件触发累计次数
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public short nPreserID; // 事件触发的预置点号,从1开始(没有表示未知)
+ public byte[] szPresetName = new byte[64]; // 事件触发的预置名称
+ public NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
+ public NET_IMAGE_INFO_EX2[] stuImageInfo = (NET_IMAGE_INFO_EX2[])new NET_IMAGE_INFO_EX2().toArray(32); // 图片信息数组
+ public int nImageInfoNum; // 图片信息个数
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public byte[] bReserved = new byte[418]; // 保留字节,留待扩展.
+
+ public DEV_EVENT_TAKENAWAYDETECTION_INFO()
+ {
+ for (int i = 0; i < DetectRegion.length; ++i) {
+ DetectRegion[i] = new NET_POINT();
+ }
+ }
+ }
+
+ // 事件类型EVENT_IVS_PARKINGDETECTION(非法停车事件)对应的数据块描述信息
+ public static class DEV_EVENT_PARKINGDETECTION_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_MSG_OBJECT stuObject; // 检测到的物体
+ public int nDetectRegionNum; // 规则检测区域顶点数
+ public NET_POINT[] DetectRegion = new NET_POINT[NET_MAX_DETECT_REGION_NUM]; // 规则检测区域
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public byte bEventAction;
+ public byte[] byReserved = new byte[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
+ public int nSourceIndex; // 事件源设备上的index,-1表示数据无效
+ public byte[] szSourceDevice = new byte[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
+ public int nOccurrenceCount; // 事件触发累计次数
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
+ public byte[] szCustomParkNo = new byte[64]; // 车位名称
+ public NET_PRESET_POSITION stPosition; // 预置点的坐标和放大倍数 是一个数组,每个成员是int类型
+ // 第一个参数是水平坐标,范围[0,3599],表示0度到359.9度,度数扩大10倍表示。
+ // 第二个参数是垂直坐标,范围[-1800,1800],表示-180.0度到+180.0度,度数扩大10倍表示。
+ // 第三个参数是放大参数,范围[0,127],表示最小倍到最大倍的变倍位置
+ public int nCurChannelHFOV; // 当前报警通道的横向视场角,单位度,实际角度乘以100
+ public int nCurChannelVFOV; // 当前报警通道的纵向视场角,单位度,实际角度乘以100
+ public SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
+ public NET_IMAGE_INFO_EX2[] stuImageInfo = (NET_IMAGE_INFO_EX2[])new NET_IMAGE_INFO_EX2().toArray(32); // 图片信息数组
+ public int nImageInfoNum; // 图片信息个数
+ public int nObjectBoatsNum; // 船只物体个数
+ public NET_BOAT_OBJECT[] stuBoatObjects = new NET_BOAT_OBJECT[100]; // 船只物品信息
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public byte[] bReserved = new byte[400]; // 保留字节,留待扩展.
+
+ public DEV_EVENT_PARKINGDETECTION_INFO()
+ {
+ for (int i = 0; i < DetectRegion.length; ++i) {
+ DetectRegion[i] = new NET_POINT();
+ }
+ for (int i = 0; i < stuBoatObjects.length; i++) {
+ stuBoatObjects[i] = new NET_BOAT_OBJECT();
+ }
+ }
+ }
+
+ // 事件类型EVENT_IVS_ABNORMALRUNDETECTION(异常奔跑事件)对应的数据块描述信息
+ public static class DEV_EVENT_ABNORMALRUNDETECTION_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_MSG_OBJECT stuObject; // 检测到的物体
+ public double dbSpeed; // 物体运动速度,km/h
+ public double dbTriggerSpeed; // 触发速度,km/h
+ public int nDetectRegionNum; // 规则检测区域顶点数
+ public NET_POINT[] DetectRegion = new NET_POINT[NET_MAX_DETECT_REGION_NUM]; // 规则检测区域
+ public int nTrackLineNum; // 物体运动轨迹顶点数
+ public NET_POINT[] TrackLine = new NET_POINT[NET_MAX_TRACK_LINE_NUM]; // 物体运动轨迹
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public byte bEventAction;
+ public byte bRunType; // 异常奔跑类型, 0-快速奔跑, 1-突然加速, 2-突然减速
+ public byte[] byReserved = new byte[1];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
+ public int nSourceIndex; // 事件源设备上的index,-1表示数据无效
+ public byte[] szSourceDevice = new byte[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
+ public int nOccurrenceCount; // 事件触发累计次数
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public Pointer pstuImageInfo; // 图片信息数组 ,结构体NET_IMAGE_INFO_EX2数组指针
+ public int nImageInfoNum; // 图片信息个数
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public byte[] szReserved3 = new byte[4]; //字节对齐
+ public Pointer pstuSceneImage; //全景图,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.SCENE_IMAGE_INFO_EX}
+ public byte[] bReserved = new byte[600-POINTERSIZE]; // 保留字节,留待扩展.
+
+ public DEV_EVENT_ABNORMALRUNDETECTION_INFO()
+ {
+ for (int i = 0; i < DetectRegion.length; ++i) {
+ DetectRegion[i] = new NET_POINT();
+ }
+
+ for (int i = 0; i < TrackLine.length; ++i) {
+ TrackLine[i] = new NET_POINT();
+ }
+ }
+ }
+
+ // 设置停车信息,对应CTRLTYPE_CTRL_SET_PARK_INFO命令参数
+ public static class NET_CTRL_SET_PARK_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public byte[] szPlateNumber = new byte[MAX_PLATE_NUMBER_LEN]; // 车牌号码
+ public int nParkTime; // 停车时长,单位:分钟
+ public byte[] szMasterofCar = new byte[MAX_MASTER_OF_CAR_LEN]; // 车主姓名
+ public byte[] szUserType = new byte[MAX_USER_TYPE_LEN]; // 用户类型,非通用,用于出入口抓拍一体机
+ // monthlyCardUser表示月卡用户,yearlyCardUser表示年卡用户,longTimeUser表示长期用户/,casualUser表示临时用户/Visitor
+ public int nRemainDay; // 到期天数
+ public byte[] szParkCharge = new byte[MAX_PARK_CHARGE_LEN]; // 停车费
+ public int nRemainSpace; // 停车库余位数
+ public int nPassEnable; // 0:不允许车辆通过 1:允许车辆通过
+ public NET_TIME stuInTime; // 车辆入场时间
+ public NET_TIME stuOutTime; // 车辆出场时间
+ public int emCarStatus; // 过车状态 详见EM_CARPASS_STATUS
+ public byte[] szCustom = new byte[MAX_CUSTOM_LEN]; // 自定义显示字段,默认空
+ public byte[] szSubUserType = new byte[MAX_SUB_USER_TYPE_LEN]; // 用户类型(szUserType字段)的子类型
+ public byte[] szRemarks = new byte[MAX_REMARKS_LEN]; // 备注信息
+ public byte[] szResource = new byte[MAX_RESOURCE_LEN]; // 资源文件(视频或图片)视频支持:mp4格式; 图片支持:BMP/jpg/JPG/jpeg/JPEG/png/PNG格式
+ public int nParkTimeout; // 停车超时时间,单位分钟。为0表示未超时,不为0表示超时时间。
+
+ public NET_CTRL_SET_PARK_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 过车状态
+ public static class EM_CARPASS_STATUS extends SdkStructure
+ {
+ public static final int EM_CARPASS_STATUS_UNKNOWN = 0; // 未知状态
+ public static final int EM_CARPASS_STATUS_CARPASS = 1; // 过车状态
+ public static final int EM_CARPASS_STATUS_NORMAL = 2; // 无车状态
+ }
+
+ // 事件类型EVENT_IVS_MOVEDETECTION(移动事件)对应的数据块描述信息
+ public static class DEV_EVENT_MOVE_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_MSG_OBJECT stuObject; // 检测到的物体
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] byReserved = new byte[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int nDetectRegionNum; // 规则检测区域顶点数
+ public NET_POINT[] DetectRegion = new NET_POINT[NET_MAX_DETECT_REGION_NUM]; // 规则检测区域
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
+ public int nSourceIndex; // 事件源设备上的index,-1表示数据无效
+ public byte[] szSourceDevice = new byte[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
+ public int nTrackLineNum; // 物体运动轨迹顶点数
+ public NET_POINT[] stuTrackLine = new NET_POINT[NET_MAX_TRACK_LINE_NUM]; // 物体运动轨迹
+ public int nOccurrenceCount; // 事件触发累计次数
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
+ public int nAnimalNum; // 动物个数
+ public Pointer pstuAnimals; // 动物信息,结构体VA_OBJECT_ANIMAL数组指针
+ public int nMsgObjArrayCount; // 检测到的物体信息个数
+ public Pointer pMsgObjArray; // 检测到的物体信息数组指针,结构体NET_MSG_OBJECT_EX数组指针
+ public int nImageNum; // 图片信息个数
+ public Pointer pImageArray; // 图片信息数组,结构体NET_IMAGE_INFO_EX2数组指针
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public byte[] bReserved = new byte[236]; // 保留字节,留待扩展.
+
+ public DEV_EVENT_MOVE_INFO()
+ {
+ for (int i = 0; i < DetectRegion.length; ++i) {
+ DetectRegion[i] = new NET_POINT();
+ }
+
+ for (int i = 0; i < stuTrackLine.length; ++i) {
+ stuTrackLine[i] = new NET_POINT();
+ }
+ }
+ }
+
+ // 监测控制和数据采集设备的点位表路径信息输入参数, 查询条件
+ public static class NET_IN_SCADA_POINT_LIST_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public byte[] szDevType = new byte[NET_COMMON_STRING_64]; // 设备类型
+
+ public NET_IN_SCADA_POINT_LIST_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 点位表路径信息
+ public static class NET_SCADA_POINT_LIST extends SdkStructure
+ {
+ public int dwSize;
+ public int nIndexValidNum; // 有效的配置下标个数
+ public int[] nIndex = new int[MAX_SCADA_POINT_LIST_INDEX]; // SCADADev配置下标值, 从0开始
+ public byte[] szPath = new byte[NET_COMMON_STRING_256]; // 点表的完整路径
+
+ public NET_SCADA_POINT_LIST()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 监测控制和数据采集设备的点位表路径信息输出参数, 查询结果
+ public static class NET_OUT_SCADA_POINT_LIST_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public int nList; // 有效点位表路径信息个数
+ public NET_SCADA_POINT_LIST[] stuList = new NET_SCADA_POINT_LIST[MAX_SCADA_POINT_LIST_INFO_NUM]; // 点位表路径信息
+
+ public NET_OUT_SCADA_POINT_LIST_INFO()
+ {
+ this.dwSize = this.size();
+
+ for (int i = 0; i < stuList.length; ++i) {
+ stuList[i] = new NET_SCADA_POINT_LIST();
+ }
+ }
+ }
+
+ // 监测控制和数据采集设备的点位表信息, (对应 DH_DEVSTATE_SCADA_POINT_LIST 命令)
+ public static class NET_SCADA_POINT_LIST_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public NET_IN_SCADA_POINT_LIST_INFO stuIn; // 查询条件
+ public NET_OUT_SCADA_POINT_LIST_INFO stuOut; // 查询结果
+
+ public NET_SCADA_POINT_LIST_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // SCADA监测点位查询条件
+ public static class NET_IN_SCADA_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public int emPointType; // 待查询的点位类型,详见EM_NET_SCADA_POINT_TYPE
+
+ public NET_IN_SCADA_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 点表信息
+ public static class NET_SCADA_POINT_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public byte[] szDevName = new byte[NET_COMMON_STRING_64]; // 设备名称
+ public int nYX; // 有效遥信个数
+ public int[] anYX = new int[MAX_SCADA_YX_NUM]; // 遥信信息
+ public int nYC; // 有效遥测个数
+ public float[] afYC = new float[MAX_SCADA_YC_NUM]; // 遥测信息
+
+ public NET_SCADA_POINT_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // SCADA监测点位查询结果
+ public static class NET_OUT_SCADA_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public int nPointInfoNum; // 有效点表个数
+ public NET_SCADA_POINT_INFO[] stuPointInfo = new NET_SCADA_POINT_INFO[MAX_SCADA_POINT_INFO_NUM]; // 点表信息
+
+ public NET_OUT_SCADA_INFO()
+ {
+ this.dwSize = this.size();
+
+ for (int i = 0; i < stuPointInfo.length; ++i) {
+ stuPointInfo[i] = new NET_SCADA_POINT_INFO();
+ }
+ }
+ }
+
+ // 监测控制和数据采集设备的监测点位信息(对应 DH_DEVSTATE_SCADA_INFO 命令)
+ public static class NET_SCADA_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public NET_IN_SCADA_INFO stuIn; // 查询条件
+ public NET_OUT_SCADA_INFO stuOut; // 查询结果
+
+ public NET_SCADA_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // SCADA能力名称
+ public static class EM_NET_SCADA_CAPS_TYPE extends SdkStructure
+ {
+ public static final int EM_NET_SCADA_CAPS_TYPE_UNKNOWN = 0;
+ public static final int EM_NET_SCADA_CAPS_TYPE_ALL = 1; // 所有类型
+ public static final int EM_NET_SCADA_CAPS_TYPE_DEV = 2; // DevInfo
+ }
+
+ // 监测控制和数据采集设备能力信息查询条件
+ public static class NET_IN_SCADA_CAPS extends SdkStructure
+ {
+ public int dwSize;
+ public int emType; // 查询类型,详见EM_NET_SCADA_CAPS_TYPE
+
+ public NET_IN_SCADA_CAPS()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 监测控制和数据采集设备类型能力信息
+ public static class NET_OUT_SCADA_CAPS_ITEM extends SdkStructure
+ {
+ public int dwSize;
+ public byte[] szDevType = new byte[NET_COMMON_STRING_32]; // 设备类型
+ public int nValidName; // 有效设备名称个数
+ public SCADA_DEVICE_NAME[] stuScadaDevNames = new SCADA_DEVICE_NAME[MAX_NET_SCADA_CAPS_NAME]; // 设备名称, 唯一标示设备
+
+ public NET_OUT_SCADA_CAPS_ITEM()
+ {
+ this.dwSize = this.size();
+
+ for (int i = 0; i < stuScadaDevNames.length; ++i) {
+ stuScadaDevNames[i] = new SCADA_DEVICE_NAME();
+ }
+ }
+ }
+
+ public static class SCADA_DEVICE_NAME extends SdkStructure
+ {
+ public byte[] szDevName = new byte[NET_COMMON_STRING_32]; // 数据采集设备名称
+ }
+
+ // 监测控制和数据采集设备能力信息查询结果
+ public static class NET_OUT_SCADA_CAPS extends SdkStructure
+ {
+ public int dwSize;
+ public int nValidType; // 有效设备类型个数
+ public NET_OUT_SCADA_CAPS_ITEM[] stuItems = new NET_OUT_SCADA_CAPS_ITEM[MAX_NET_SCADA_CAPS_TYPE]; // 最多16个类型
+
+ public NET_OUT_SCADA_CAPS()
+ {
+ this.dwSize = this.size();
+
+ for (int i = 0; i < stuItems.length; ++i) {
+ stuItems[i] = new NET_OUT_SCADA_CAPS_ITEM();
+ }
+ }
+ }
+
+ // 监测控制和数据采集设备能力信息(对应 DH_DEVSTATE_SCADA_CAPS 命令)
+ public static class NET_SCADA_CAPS extends SdkStructure
+ {
+ public int dwSize;
+ public NET_IN_SCADA_CAPS stuIn; // 查询条件
+ public NET_OUT_SCADA_CAPS stuOut; // 查询结果
+
+ public NET_SCADA_CAPS()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 点位信息(通过设备、传感器点位获取)
+ public static class NET_SCADA_POINT_BY_ID_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public int emType; // 点位类型,详见EM_NET_SCADA_POINT_TYPE
+ public byte[] szID = new byte[NET_COMMON_STRING_64]; // 监测点位ID
+ public int nMeasuredVal; // 点位类型为YX时有效
+ public float fMeasureVal; // 点位类型为YC时有效
+ public int nSetupVal; // 点位类型为YK时有效
+ public float fSetupVal; // 点位类型为YT时有效
+ public int nStatus; // 数据状态, -1:未知, 0:正常, 1:1级告警, 2:2级告警, 3:3级告警, 4:4级告警, 5:操作事件, 6:无效数据
+ public NET_TIME stuTime; // 记录时间
+ public byte[] szPointName = new byte[32]; // 点位名称
+
+ public NET_SCADA_POINT_BY_ID_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 通过设备、获取监测点位信息(对应 NET_SCADA_INFO_BY_ID)
+ public static class NET_SCADA_INFO_BY_ID extends SdkStructure
+ {
+ public int dwSize;
+ public byte[] szSensorID = new byte[NET_COMMON_STRING_64]; // 输入参数, 探测器ID
+ public int nIDs; // 输入参数, 有效点位ID个数
+ public SCADA_ID_EX[] stuIDs = new SCADA_ID_EX[MAX_SCADA_ID_OF_SENSOR_NUM]; // 输入参数, 点位ID
+ public int bIsHandle; // 输入参数,返回数据是否经过处理(无效数据过滤等):"false":未处理,"true":处理
+ public int nMaxCount; // 输入参数, pstuInfo对应数组个数
+ public int nRetCount; // 输出参数, pstInfo实际返回有效个数, 可能大于用户分配个数nMaxCount
+ public Pointer pstuInfo; // 输入输出参数, 用户分配缓存,大小为sizeof(NET_SCADA_POINT_BY_ID_INFO)*nMaxCount,指向NET_SCADA_POINT_BY_ID_INFO
+
+ public NET_SCADA_INFO_BY_ID()
+ {
+ this.dwSize = this.size();
+
+ for (int i = 0; i < stuIDs.length; ++i) {
+ stuIDs[i] = new SCADA_ID_EX();
+ }
+ }
+ }
+
+ public static class SCADA_ID_EX extends SdkStructure
+ {
+ public byte[] szID = new byte[NET_COMMON_STRING_64]; // 监测点位ID
+ }
+
+ // 监测设备信息
+ public static class NET_SCADA_DEVICE_ID_INFO extends SdkStructure
+ {
+ public byte[] szDeviceID = new byte[NET_COMMON_STRING_64]; // 设备id
+ public byte[] szDevName = new byte[NET_COMMON_STRING_64]; // 设备名称, 和CFG_SCADA_DEV_INFO配置中的szDevName一致
+ public byte[] reserve = new byte[1024];
+ }
+
+ // 获取当前主机所接入的外部设备ID
+ public static class NET_SCADA_DEVICE_LIST extends SdkStructure
+ {
+ public int dwSize;
+ public int nMax; // 用户分配的结构体个数
+ public int nRet; // 设备实际返回的有效结构体个数
+ public Pointer pstuDeviceIDInfo; // 监测设备信息,用户分配内存,大小为sizeof(NET_SCADA_DEVICE_ID_INFO)*nMax,指向NET_SCADA_DEVICE_ID_INFO
+
+ public NET_SCADA_DEVICE_LIST()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 点位阈值信息
+ public static class NET_SCADA_ID_THRESHOLD_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public int emPointType; // 点位类型,详见EM_NET_SCADA_POINT_TYPE
+ public byte[] szID = new byte[NET_COMMON_STRING_32]; // 点位ID
+ public float fThreshold; // 告警门限
+ public float fAbsoluteValue; // 绝对阈值
+ public float fRelativeValue; // 相对阈值
+ public int nStatus; // 数据状态, -1:未知, 0:正常, 1:1级告警, 2:2级告警, 3:3级告警, 4:4级告警, 5:操作事件, 6:无效数据
+
+ public NET_SCADA_ID_THRESHOLD_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // CLIENT_SCADAGetThreshold输入参数
+ public static class NET_IN_SCADA_GET_THRESHOLD extends SdkStructure
+ {
+ public int dwSize;
+ public byte[] szDeviceID = new byte[NET_COMMON_STRING_64]; // 外接设备id
+ public int nIDs; // 有效监测点位个数
+ public SCADA_ID[] stuIDs = new SCADA_ID[MAX_SCADA_ID_NUM]; // 待获取的监测点位ID
+
+ public NET_IN_SCADA_GET_THRESHOLD()
+ {
+ this.dwSize = this.size();
+
+ for (int i = 0; i < stuIDs.length; ++i) {
+ stuIDs[i] = new SCADA_ID();
+ }
+ }
+ }
+
+ public static class SCADA_ID extends SdkStructure
+ {
+ public byte[] szID = new byte[NET_COMMON_STRING_32]; // 监测点位ID
+ }
+
+ // CLIENT_SCADAGetThreshold输出参数
+ public static class NET_OUT_SCADA_GET_THRESHOLD extends SdkStructure
+ {
+ public int dwSize;
+ public int nMax; // 用户分配的点位阈值信息个数
+ public int nRet; // 实际返回的点位阈值信息
+ public Pointer pstuThresholdInfo; // 点位阈值信息, 用户分配内存,大小为sizeof(NET_SCADA_ID_THRESHOLD_INFO)*nMax,指向NET_SCADA_ID_THRESHOLD_INFO
+
+ public NET_OUT_SCADA_GET_THRESHOLD()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ //////////////////////////////////////////////////////////////////////////
+ // CLIENT_SCADASetThreshold输入参数
+ public static class NET_IN_SCADA_SET_THRESHOLD extends SdkStructure
+ {
+ public int dwSize;
+ public byte[] szDeviceID = new byte[NET_COMMON_STRING_64]; // 外接设备id
+ public int nMax; // 用户分配的点位阈值信息个数
+ public Pointer pstuThresholdInfo; // 点位阈值信息, 用户分配内存,大小为sizeof(NET_SCADA_ID_THRESHOLD_INFO)*nMax,指向NET_SCADA_ID_THRESHOLD_INFO
+
+ public NET_IN_SCADA_SET_THRESHOLD()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // CLIENT_SCADASetThreshold输出参数
+ public static class NET_OUT_SCADA_SET_THRESHOLD extends SdkStructure
+ {
+ public int dwSize;
+ public int nSuccess; // 有效的存放设置阈值成功的id个数
+ public SCADA_ID[] stuSuccessIDs = new SCADA_ID[MAX_SCADA_ID_NUM]; // 设置阈值成功的id,用户分配内存
+ public int nFail; // 用户分配的存放设置阈值失败的id个数
+ public SCADA_ID[] stuFailIDs = new SCADA_ID[MAX_SCADA_ID_NUM]; // 设置阈值失败的id, 用户分配内存
+
+ public NET_OUT_SCADA_SET_THRESHOLD()
+ {
+ this.dwSize = this.size();
+
+ for (int i = 0; i < stuSuccessIDs.length; ++i) {
+ stuSuccessIDs[i] = new SCADA_ID();
+ }
+
+ for (int i = 0; i < stuFailIDs.length; ++i) {
+ stuFailIDs[i] = new SCADA_ID();
+ }
+ }
+ }
+
+ //////////////////////////////////////////////////////////////////////////
+ // CLIENT_StartFindSCADA输入参数
+ public static class NET_IN_SCADA_START_FIND extends SdkStructure
+ {
+ public int dwSize;
+ public NET_TIME stuStartTime; // 开始时间, 必填
+ public int bEndTime; // 是否限制结束时间, TRUE: 必填stuEndTime, FLASE: 不限制结束时间
+ public NET_TIME stuEndTime; // 结束时间
+ public byte[] szDeviceID = new byte[NET_COMMON_STRING_64]; // DeviceID, 必填
+ public byte[] szID = new byte[NET_COMMON_STRING_32]; // 监测点位ID, 必填
+ public int nIDsNum; // 监测点ID数组长度
+ public SCADA_ID[] stuIDs = new SCADA_ID[32]; // 监控点ID号数组,SDT离网供电扩展字段
+
+ public NET_IN_SCADA_START_FIND()
+ {
+ this.dwSize = this.size();
+
+ for (int i = 0; i < stuIDs.length; ++i) {
+ stuIDs[i] = new SCADA_ID();
+ }
+ }
+ }
+
+ // CLIENT_StartFindSCADA输出参数
+ public static class NET_OUT_SCADA_START_FIND extends SdkStructure
+ {
+ public int dwSize;
+ public int dwTotalCount; // 符合查询条件的总数
+
+ public NET_OUT_SCADA_START_FIND()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // CLIENT_DoFindSCADA输入参数
+ public static class NET_IN_SCADA_DO_FIND extends SdkStructure
+ {
+ public int dwSize;
+ public int nStartNo; // 起始序号
+ public int nCount; // 本次欲获得结果的个数
+
+ public NET_IN_SCADA_DO_FIND()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // CLIENT_DoFindSCADA输出参数
+ public static class NET_OUT_SCADA_DO_FIND extends SdkStructure
+ {
+ public int dwSize;
+ public int nRetNum; // 本次查询到的个数
+ public Pointer pstuInfo; // 查询结果, 用户分配内存,大小为sizeof(NET_SCADA_POINT_BY_ID_INFO)*nMaxNum,指向NET_SCADA_POINT_BY_ID_INFO
+ public int nMaxNum; // 用户分配内存的个数
+
+ public NET_OUT_SCADA_DO_FIND()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 监控点值设置参数
+ public static class NET_SCADA_POINT_SET_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public int emType; // 监控点位类型,取YK、YT两种类型,详见EM_NET_SCADA_POINT_TYPE
+ public byte[] szPointID = new byte[NET_COMMON_STRING_64]; // 监控点位ID
+ public int nSetupVal; // 点位类型为YK时有效
+ public float fSetupVal; // 点位类型为YT时有效
+
+ public NET_SCADA_POINT_SET_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 监控点值设置参数列表,CLIENT_SetSCADAInfo()接口输入参数
+ public static class NET_IN_SCADA_POINT_SET_INFO_LIST extends SdkStructure
+ {
+ public int dwSize;
+ public byte[] szDevID = new byte[NET_COMMON_STRING_32]; // 设备ID
+ public int nPointNum; // 监控点个数
+ public NET_SCADA_POINT_SET_INFO[] stuList = new NET_SCADA_POINT_SET_INFO[MAX_SCADA_ID_OF_SENSOR_NUM]; // 监控点列表信息
+
+ public NET_IN_SCADA_POINT_SET_INFO_LIST()
+ {
+ this.dwSize = this.size();
+
+ for (int i = 0; i < stuList.length; ++i) {
+ stuList[i] = new NET_SCADA_POINT_SET_INFO();
+ }
+ }
+ }
+
+ // 设置监控点值返回的结果列表,CLIENT_SetSCADAInfo()接口输出参数
+ public static class NET_OUT_SCADA_POINT_SET_INFO_LIST extends SdkStructure
+ {
+ public int dwSize;
+ public int nSuccess; // 有效的控制或调节成功的ID个数
+ public SCADA_ID[] stuSuccessIDs = new SCADA_ID[MAX_SCADA_ID_OF_SENSOR_NUM]; // 控制或调节成功的ID的列表
+ public int nFail; // 有效的控制或调节失败的ID个数
+ public SCADA_ID[] stuFailIDs = new SCADA_ID[MAX_SCADA_ID_OF_SENSOR_NUM]; // 控制或调节失败的ID的列表
+
+ public NET_OUT_SCADA_POINT_SET_INFO_LIST()
+ {
+ this.dwSize = this.size();
+
+ for (int i = 0; i < stuSuccessIDs.length; ++i) {
+ stuSuccessIDs[i] = new SCADA_ID();
+ }
+
+ for (int i = 0; i < stuFailIDs.length; ++i) {
+ stuFailIDs[i] = new SCADA_ID();
+ }
+ }
+ }
+
+ // 获取阈值,pInParam与pOutParam内存由用户申请释放
+ public boolean CLIENT_SCADAGetThreshold(LLong lLoginID,NET_IN_SCADA_GET_THRESHOLD pInParam,NET_OUT_SCADA_GET_THRESHOLD pOutParam,int nWaitTime);
+
+ // 设置阈值,pInParam与pOutParam内存由用户申请释放
+ public boolean CLIENT_SCADASetThreshold(LLong lLoginID,NET_IN_SCADA_SET_THRESHOLD pInParam,NET_OUT_SCADA_SET_THRESHOLD pOutParam,int nWaitTime);
+
+ // 开始查询SCADA点位历史数据,pInParam与pOutParam内存由用户申请释放
+ public LLong CLIENT_StartFindSCADA(LLong lLoginID,NET_IN_SCADA_START_FIND pInParam,NET_OUT_SCADA_START_FIND pOutParam,int nWaitTime);
+
+ // 获取SCADA点位历史数据,pInParam与pOutParam内存由用户申请释放
+ public boolean CLIENT_DoFindSCADA(LLong lFindHandle,NET_IN_SCADA_DO_FIND pInParam,NET_OUT_SCADA_DO_FIND pOutParam,int nWaitTime);
+
+ // 停止查询SCADA点位历史数据
+ public boolean CLIENT_StopFindSCADA(LLong lFindHandle);
+
+ // 设置监测点位信息,pInParam与pOutParam内存由用户申请释放
+ public boolean CLIENT_SCADASetInfo(LLong lLoginID,NET_IN_SCADA_POINT_SET_INFO_LIST pInParam,NET_OUT_SCADA_POINT_SET_INFO_LIST pOutParam,int nWaitTime);
+
+ public static class CFG_SCADA_DEV_INFO extends SdkStructure
+ {
+ public int bEnable; // 是否启用
+ public byte[] szDevType = new byte[CFG_COMMON_STRING_64]; // 设备类型
+ public byte[] szDevName = new byte[CFG_COMMON_STRING_64]; // 设备名称, 唯一标示设备用
+ public int nSlot; // 虚拟槽位号, 详见AlarmSlotBond配置
+ public int nLevel; // 如果Slot绑定的是NetCollection类型的话,该字段为-1
+ public CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
+ }
+
+ // 高频次报警
+ public static class CFG_HIGH_FREQUENCY extends SdkStructure
+ {
+ public int nPeriod; // 统计周期, 以秒为单位, 默认30分钟(1800s)
+ public int nMaxCount; // 在对应统计周期内最大允许上报报警数
+ }
+
+ // 告警屏蔽规则配置(对应 CFG_CMD_ALARM_SHIELD_RULE)
+ public static class CFG_ALARM_SHIELD_RULE_INFO extends SdkStructure
+ {
+ public CFG_HIGH_FREQUENCY stuHighFreq; // 高频次报警, 在一定周期内允许上报的报警次数,以此过滤对于报警的频繁上报导致信息干扰
+ }
+
+ // 获取车位锁状态接口,CLIENT_GetParkingLockState 入参
+ public static class NET_IN_GET_PARKINGLOCK_STATE_INFO extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+
+ public NET_IN_GET_PARKINGLOCK_STATE_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 车位锁状态
+ public static class EM_STATE_TYPE extends SdkStructure
+ {
+ public static final int EM_STATE_TYPE_UNKNOW = 0; // 未知
+ public static final int EM_STATE_TYPE_LOCKRISE = 1; // 车位锁升起
+ public static final int EM_STATE_TYPE_LOCKDOWN = 2; // 车位锁降下
+ public static final int EM_STATE_TYPE_LOCKERROR = 3; // 车位锁异常
+ }
+
+ // 车位锁状态通信接口参数
+ public static class NET_STATE_LIST_INFO extends SdkStructure
+ {
+ public int nLane; // 车位号
+ public int emState; // 车位锁状态,详见EM_STATE_TYPE
+ public byte[] byReserved = new byte[256]; // 保留
+ }
+
+ // 获取车位锁状态, CLIENT_GetParkingLockState 出参
+ public static class NET_OUT_GET_PARKINGLOCK_STATE_INFO extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int nStateListNum; // 车位锁状态个数
+ public NET_STATE_LIST_INFO[] stuStateList = new NET_STATE_LIST_INFO[MAX_PARKINGLOCK_STATE_NUM]; // 车位锁状态
+
+ public NET_OUT_GET_PARKINGLOCK_STATE_INFO()
+ {
+ this.dwSize = this.size();
+
+ for (int i = 0; i < stuStateList.length; ++i) {
+ stuStateList[i] = new NET_STATE_LIST_INFO();
+ }
+ }
+ }
+
+ // 设置车位锁状态接口,CLIENT_SetParkingLockState 入参
+ public static class NET_IN_SET_PARKINGLOCK_STATE_INFO extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int nStateListNum; // 车位锁状态个数
+ public NET_STATE_LIST_INFO[] stuStateList = new NET_STATE_LIST_INFO[MAX_PARKINGLOCK_STATE_NUM]; // 车位锁状态
+ public int nControlType; // 控制车位锁状态类型, 0:未知, 1:平台正常控制, 2:平台手动控制
+
+ public NET_IN_SET_PARKINGLOCK_STATE_INFO()
+ {
+ this.dwSize = this.size();
+
+ for (int i = 0; i < stuStateList.length; ++i) {
+ stuStateList[i] = new NET_STATE_LIST_INFO();
+ }
+ }
+ }
+
+ // 设置车位锁状态接口,CLIENT_SetParkingLockState 出参
+ public static class NET_OUT_SET_PARKINGLOCK_STATE_INFO extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+
+ public NET_OUT_SET_PARKINGLOCK_STATE_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 获取车位锁状态
+ public boolean CLIENT_GetParkingLockState(LLong lLoginID,NET_IN_GET_PARKINGLOCK_STATE_INFO pstInParam,NET_OUT_GET_PARKINGLOCK_STATE_INFO pstOutParam,int nWaitTime);
+
+ // 设置车位锁状态
+ public boolean CLIENT_SetParkingLockState(LLong lLoginID,NET_IN_SET_PARKINGLOCK_STATE_INFO pstInParm,NET_OUT_SET_PARKINGLOCK_STATE_INFO pstOutParam,int nWaitTIme);
+
+ // 刻录配置
+ public static class CFG_JUDICATURE_INFO extends SdkStructure
+ {
+ public byte[] szDiskPassword = new byte[MAX_PASSWORD_LEN]; // 光盘密码(废弃, 使用szPassword和nPasswordLen)
+ public byte[] szCaseNo = new byte[MAX_OSD_SUMMARY_LEN]; // 案件编号
+ public int bCaseNoOsdEn; // 案件编号叠加使能
+ public byte[] szCaseTitle = new byte[MAX_OSD_SUMMARY_LEN]; // 案件名称
+ public int bCaseTitleOsdEn; // 案件名称叠加使能
+ public byte[] szOfficer = new byte[MAX_OSD_SUMMARY_LEN]; // 办案人员
+ public int bOfficerOsdEn; // 办案人员叠加使能
+ public byte[] szLocation = new byte[MAX_OSD_SUMMARY_LEN]; // 办案地点
+ public int bLocationOsdEn; // 办案地点叠加使能
+ public byte[] szRelatedMan = new byte[MAX_OSD_SUMMARY_LEN]; // 涉案人员
+ public int bRelatedManOsdEn; // 涉案人员叠加使能
+ public byte[] szDiskNo = new byte[MAX_OSD_SUMMARY_LEN]; // 光盘编号
+ public int bDiskNoOsdEn; // 光盘编号叠加使能
+ public int bCustomCase; // TRUE:自定义案件信息,FALSE: 上边szCaseNo等字段有效
+ public int nCustomCase; // 实际CFG_CUSTOMCASE个数
+ public CFG_CUSTOMCASE[] stuCustomCases = new CFG_CUSTOMCASE[MAX_CUSTOMCASE_NUM]; // 自定义案件信息
+ public int bDataCheckOsdEn; // 光盘刻录数据校验配置 叠加使能
+ public int bAttachFileEn; // 附件上传使能
+ public byte[] szPassword = new byte[MAX_PASSWORD_LEN]; // 密码, 刻录光盘时、配置读保护密码
+ public int nPasswordLen; // 密码长度
+ public CFG_NET_TIME stuStartTime; // 片头信息叠加开始时间
+ public int nPeriod; // 片头信息叠加时间长度,单位:分钟
+
+ public CFG_JUDICATURE_INFO()
+ {
+ for (int i = 0; i < stuCustomCases.length; ++i) {
+ stuCustomCases[i] = new CFG_CUSTOMCASE();
+ }
+ }
+ }
+
+ // 自定义案件信息
+ public static class CFG_CUSTOMCASE extends SdkStructure
+ {
+ public byte[] szCaseTitle = new byte[MAX_OSD_TITLE_LEN]; // 案件名称
+ public byte[] szCaseContent = new byte[MAX_OSD_SUMMARY_LEN]; // 案件名称
+ public int bCaseNoOsdEn; // 案件编号叠加使能
+ }
+
+ // 叠加类型
+ public static class NET_EM_OSD_BLEND_TYPE extends SdkStructure
+ {
+ public static final int NET_EM_OSD_BLEND_TYPE_UNKNOWN = 0; // 未知叠加类型
+ public static final int NET_EM_OSD_BLEND_TYPE_MAIN = 1; // 叠加到主码流
+ public static final int NET_EM_OSD_BLEND_TYPE_EXTRA1 = 2; // 叠加到辅码流1
+ public static final int NET_EM_OSD_BLEND_TYPE_EXTRA2 = 3; // 叠加到辅码流2
+ public static final int NET_EM_OSD_BLEND_TYPE_EXTRA3 = 4; // 叠加到辅码流3
+ public static final int NET_EM_OSD_BLEND_TYPE_SNAPSHOT = 5; // 叠加到抓图
+ public static final int NET_EM_OSD_BLEND_TYPE_PREVIEW = 6; // 叠加到预览视频
+ }
+
+ // 编码物件-通道标题
+ public static class NET_OSD_CHANNEL_TITLE extends SdkStructure
+ {
+ public int dwSize;
+ public int emOsdBlendType; // 叠加类型,不管是获取还是设置都要设置该字段,详见NET_EM_OSD_BLEND_TYPE
+ public int bEncodeBlend; // 是否叠加
+ public NET_COLOR_RGBA stuFrontColor; // 前景色
+ public NET_COLOR_RGBA stuBackColor; // 背景色
+ public NET_RECT stuRect; // 区域, 坐标取值[0~8191], 仅使用left和top值, 点(left,top)应和(right,bottom)设置成同样的点
+ public int emTextAlign; // 文本对齐方式 ,参考枚举{@link EM_TITLE_TEXT_ALIGNTYPE}
+
+ public NET_OSD_CHANNEL_TITLE()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 编码物件-时间标题
+ public static class NET_OSD_TIME_TITLE extends SdkStructure
+ {
+ public int dwSize;
+ public int emOsdBlendType; // 叠加类型,不管是获取还是设置都要设置该字段,详见NET_EM_OSD_BLEND_TYPE
+ public int bEncodeBlend; // 是否叠加
+ public NET_COLOR_RGBA stuFrontColor; // 前景色
+ public NET_COLOR_RGBA stuBackColor; // 背景色
+ public NET_RECT stuRect; // 区域, 坐标取值[0~8191], 仅使用left和top值, 点(left,top)应和(right,bottom)设置成同样的点
+ public int bShowWeek; // 是否显示星期
+
+ public NET_OSD_TIME_TITLE()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 编码物件-自定义标题信息
+ public static class NET_CUSTOM_TITLE_INFO extends SdkStructure
+ {
+ public int bEncodeBlend; // 是否叠加
+ public NET_COLOR_RGBA stuFrontColor; // 前景色
+ public NET_COLOR_RGBA stuBackColor; // 背景色
+ public NET_RECT stuRect; // 区域, 坐标取值[0~8191], 仅使用left和top值, 点(left,top)应和(right,bottom)设置成同样的点
+ public byte[] szText = new byte[CUSTOM_TITLE_LEN]; // 标题内容
+ public byte[] byReserved = new byte[512]; // 保留字节
+ }
+
+ // 编码物件-自定义标题
+ public static class NET_OSD_CUSTOM_TITLE extends SdkStructure
+ {
+ public int dwSize;
+ public int emOsdBlendType; // 叠加类型,不管是获取还是设置都要设置该字段,详见NET_EM_OSD_BLEND_TYPE
+ public int nCustomTitleNum; // 自定义标题数量
+ public NET_CUSTOM_TITLE_INFO[] stuCustomTitle = new NET_CUSTOM_TITLE_INFO[MAX_CUSTOM_TITLE_NUM]; // 自定义标题
+
+ public NET_OSD_CUSTOM_TITLE()
+ {
+ this.dwSize = this.size();
+
+ for (int i = 0; i < stuCustomTitle.length; ++i) {
+ stuCustomTitle[i] = new NET_CUSTOM_TITLE_INFO();
+ }
+ }
+ }
+
+ // 标题文本对齐方式
+ public static class EM_TITLE_TEXT_ALIGNTYPE extends SdkStructure
+ {
+ public static final int EM_TEXT_ALIGNTYPE_INVALID = 0; // 无效的对齐方式
+ public static final int EM_TEXT_ALIGNTYPE_LEFT = 1; // 左对齐
+ public static final int EM_TEXT_ALIGNTYPE_XCENTER = 2; // X坐标中对齐
+ public static final int EM_TEXT_ALIGNTYPE_YCENTER = 3; // Y坐标中对齐
+ public static final int EM_TEXT_ALIGNTYPE_CENTER = 4; // 居中
+ public static final int EM_TEXT_ALIGNTYPE_RIGHT = 5; // 右对齐
+ public static final int EM_TEXT_ALIGNTYPE_TOP = 6; // 按照顶部对齐
+ public static final int EM_TEXT_ALIGNTYPE_BOTTOM = 7; // 按照底部对齐
+ public static final int EM_TEXT_ALIGNTYPE_LEFTTOP = 8; // 按照左上角对齐
+ public static final int EM_TEXT_ALIGNTYPE_CHANGELINE = 9; // 换行对齐
+ }
+
+ // 自定义标题文本对齐
+ public static class NET_OSD_CUSTOM_TITLE_TEXT_ALIGN extends SdkStructure
+ {
+ public int dwSize;
+ public int nCustomTitleNum; // 自定义标题数量
+ public int[] emTextAlign = new int[MAX_CUSTOM_TITLE_NUM]; // 自定义标题文本对齐方式,详见EM_TITLE_TEXT_ALIGNTYPE
+
+ public NET_OSD_CUSTOM_TITLE_TEXT_ALIGN()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ //编码物件-公共配置信息
+ public static class NET_OSD_COMM_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public double fFontSizeScale; // 叠加字体大小放大比例
+ //当fFontSizeScale≠0时,nFontSize不起作用
+ //当fFontSizeScale=0时,nFontSize起作用
+ //设备默认fFontSizeScale=1.0
+ //如果需要修改倍数,修改该值
+ //如果需要按照像素设置,则置该值为0,nFontSize的值生效
+ public int nFontSize; // 叠加到主码流上的全局字体大小,单位 px, 默认24.
+ //和fFontSizeScale共同作用
+ public int nFontSizeExtra1; // 叠加到辅码流1上的全局字体大小,单位 px
+ public int nFontSizeExtra2; // 叠加到辅码流2上的全局字体大小,单位 px
+ public int nFontSizeExtra3; // 叠加到辅码流3上的全局字体大小,单位 px
+ public int nFontSizeSnapshot; // 叠加到抓图流上的全局字体大小, 单位 px
+ public int nFontSizeMergeSnapshot; // 叠加到抓图流上合成图片的字体大小,单位 px
+ public int emFontSolution; // 叠加到主码流上的字体方案,参考枚举{@link EM_OSD_FONT_SOLUTION}
+ public int emFontSolutionExtra1; // 叠加到辅码流1上的字体方案,参考枚举{@link EM_OSD_FONT_SOLUTION}
+ public int emFontSolutionExtra2; // 叠加到辅码流2上的字体方案,参考枚举{@link EM_OSD_FONT_SOLUTION}
+ public int emFontSolutionExtra3; // 叠加到辅码流3上的字体方案,参考枚举{@link EM_OSD_FONT_SOLUTION}
+ public int emFontSolutionSnapshot; // 叠加到抓图码流上的字体方案,参考枚举{@link EM_OSD_FONT_SOLUTION}
+ public int emFontSolutionMergeSnapshot; // 叠加到合成抓图流上的字体方案,参考枚举{@link EM_OSD_FONT_SOLUTION}
+
+ public NET_OSD_COMM_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 播报单元类型
+ public static class NET_PLAYAUDIO_TYPE extends SdkStructure
+ {
+ public static final int NET_PLAYAUDIO_TYPE_UNKNOWN = 0;
+ public static final int NET_PLAYAUDIO_TYPE_PHRASE = 1; // 短语类型,不进行解析,依次读每个字,有该字的语音文件支持
+ public static final int NET_PLAYAUDIO_TYPE_FILE = 2; // 播放指定路径的语音文件(设备端完整路径)
+ public static final int NET_PLAYAUDIO_TYPE_PLATERNUM = 3; // 播报车牌号码,按车牌号码格式读出
+ public static final int NET_PLAYAUDIO_TYPE_MONEY = 4; // 播报金额,按金额形式读出
+ public static final int NET_PLAYAUDIO_TYPE_DATE = 5; // 播报日期,按日期形式读出
+ public static final int NET_PLAYAUDIO_TYPE_TIME = 6; // 播报时间,按时间形式读出
+ public static final int NET_PLAYAUDIO_TYPE_EMPTY = 7; // 空类型,停顿一个字符时间
+ }
+
+ // 语音播报内容
+ public static class NET_CTRL_PLAYAUDIO_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public int emPlayAudioType; // 播报单元类型,详见NET_PLAYAUDIO_TYPE,详见NET_PLAYAUDIO_TYPE
+ public byte[] szDetail = new byte[NET_COMMON_STRING_128]; // 详细内容各类型详细内容:
+ // Phrase类型:"欢迎"
+ // File类型: "/home/停车.pcm"
+ // PlateNumbe类型: "浙A12345"
+ // Money类型: "80.12元"
+ // Date类型: "2014年4月10日"
+ // Time类型: "1天10小时20分5秒
+ public int nRepeatTimes; // 播放重复次数
+ public int emPriority; // 播放优先级,对应枚举EM_PLAYAUDIO_PRIORITY
+
+ public NET_CTRL_PLAYAUDIO_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // CLIENT_ControlDevice接口的 DH_CTRL_START_PLAYAUDIOEX 命令参数
+ public static class NET_CTRL_START_PLAYAUDIOEX extends SdkStructure
+ {
+ public int dwSize;
+ public int nAudioCount; // 播报内容数目
+ public NET_CTRL_PLAYAUDIO_INFO[] stuAudioInfos = new NET_CTRL_PLAYAUDIO_INFO[NET_MAX_PLAYAUDIO_COUNT]; // 语音播报内容
+ public int nListRepeatTimes; // 语音播报内容重复次数, 描述所有播报单元
+
+ public NET_CTRL_START_PLAYAUDIOEX()
+ {
+ this.dwSize = this.size();
+
+ for (int i = 0; i < stuAudioInfos.length; ++i) {
+ stuAudioInfos[i] = new NET_CTRL_PLAYAUDIO_INFO();
+ }
+ }
+ }
+
+ // 串口基本属性
+ public static class CFG_COMM_PROP extends SdkStructure
+ {
+ public byte byDataBit; // 数据位;0:5,1:6,2:7,3:8
+ public byte byStopBit; // 停止位;0:1位,1:1.5位,2:2位
+ public byte byParity; // 校验位;0:无校验,1:奇校验;2:偶校验
+ public byte byBaudRate; // 波特率;0:300,1:600,2:1200,3:2400,4:4800,
+ // 5:9600,6:19200,7:38400,8:57600,9:115200
+ }
+
+ // 归位预置点配置
+ public static class CFG_PRESET_HOMING extends SdkStructure
+ {
+ public int nPtzPresetId; // 云台预置点编号 0~65535
+ //-1表示无效
+ public int nFreeSec; // 空闲的时间,单位为秒
+ }
+
+ // 云台配置
+ public static class CFG_PTZ_INFO extends SdkStructure
+ {
+ // 能力
+ public byte abMartixID;
+ public byte abCamID;
+ public byte abPTZType;
+ // 信息
+ public int nChannelID; // 通道号(0开始)
+ public int bEnable; // 使能开关
+ public byte[] szProName = new byte[MAX_NAME_LEN]; // 协议名称
+ public int nDecoderAddress; // 解码器地址;0 - 255
+ public CFG_COMM_PROP struComm;
+ public int nMartixID; // 矩阵号
+ public int nPTZType; // 云台类型0-兼容,本地云台 1-远程网络云台
+ public int nCamID; // 摄像头ID
+ public int nPort; // 使用的串口端口号
+ public CFG_PRESET_HOMING stuPresetHoming; // 一段时间不操作云台,自动归位到某个预置点
+ public int nControlMode; // 控制模式, 0:"RS485"串口控制(默认);1:"Coaxial" 同轴口控制
+ }
+
+ // 抓拍物体信息
+ public static class NET_SNAP_OBJECT_INFO extends SdkStructure
+ {
+ public NET_RECT stuBoundingBox; // 物体包围盒, 点坐标归一化到[0, 8192]坐标
+ public byte[] byReserved = new byte[512]; // 保留字节
+ }
+
+ // CLIENT_SnapPictureByAnalyseObject 接口输入参数
+ public static class NET_IN_SNAP_BY_ANALYSE_OBJECT extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int nChannelID; // 通道号
+ public byte[] byReserved = new byte[4]; // 字节对齐
+ public int nSnapObjectNum; // 抓拍物体个数
+ public NET_SNAP_OBJECT_INFO[] stuSnapObjects = new NET_SNAP_OBJECT_INFO[32]; // 抓拍物体信息
+
+ public NET_IN_SNAP_BY_ANALYSE_OBJECT()
+ {
+ this.dwSize = this.size();
+
+ for (int i = 0; i < stuSnapObjects.length; ++i) {
+ stuSnapObjects[i] = new NET_SNAP_OBJECT_INFO();
+ }
+ }
+ }
+
+ // CLIENT_SnapPictureByAnalyseObject 接口输出参数
+ public static class NET_OUT_SNAP_BY_ANALYSE_OBJECT extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+
+ public NET_OUT_SNAP_BY_ANALYSE_OBJECT()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 选中目标进行抓拍
+ public boolean CLIENT_SnapPictureByAnalyseObject(LLong lLoginID,NET_IN_SNAP_BY_ANALYSE_OBJECT pInParam,NET_OUT_SNAP_BY_ANALYSE_OBJECT pOutParam,int nWaitTime);
+
+ // 热成像着火点报警
+ public static class ALARM_FIREWARNING_INFO extends SdkStructure
+ {
+ public int nPresetId; // 该字段废弃,请由NET_ALARM_FIREWARNING_INFO事件获取此信息
+ public int nState; // 0 - 开始,1 - 结束,-1:无意义
+ public DH_RECT stBoundingBox; // 该字段废弃,请由NET_ALARM_FIREWARNING_INFO事件获取此信息
+ public int nTemperatureUnit; // 该字段废弃,请由NET_ALARM_FIREWARNING_INFO事件获取此信息
+ public float fTemperature; // 该字段废弃,请由NET_ALARM_FIREWARNING_INFO事件获取此信息
+ public int nDistance; // 该字段废弃,请由DH_ALARM_FIREWARNING_INFO事件获取此信息
+ public GPS_POINT stGpsPoint; // 该字段废弃,请由NET_ALARM_FIREWARNING_INFO事件获取此信息
+ public int nChannel; // 对应视频通道号
+ public byte[] reserved = new byte[252];
+ }
+
+ // 时间类型
+ public static class EM_TIME_TYPE extends SdkStructure
+ {
+ public static final int NET_TIME_TYPE_ABSLUTE = 0; // 绝对时间
+ public static final int NET_TIME_TYPE_RELATIVE = 1; // 相对时间,相对于视频文件头帧为时间基点,头帧对应于UTC(0000-00-00 00:00:00)
+ }
+
+ // 卡号省份
+ public static class EM_CARD_PROVINCE extends SdkStructure
+ {
+ public static final int EM_CARD_UNKNOWN = 10; // 解析出错,未知省份
+ public static final int EM_CARD_BEIJING = 11; // 北京
+ public static final int EM_CARD_TIANJIN = 12; // 天津
+ public static final int EM_CARD_HEBEI = 13; // 河北
+ public static final int EM_CARD_SHANXI_TAIYUAN = 14; // 山西
+ public static final int EM_CARD_NEIMENGGU = 15; // 内蒙古
+ public static final int EM_CARD_LIAONING = 21; // 辽宁
+ public static final int EM_CARD_JILIN = 22; // 吉林
+ public static final int EM_CARD_HEILONGJIANG = 23; // 黑龙江
+ public static final int EM_CARD_SHANGHAI = 31; // 上海
+ public static final int EM_CARD_JIANGSU = 32; // 江苏
+ public static final int EM_CARD_ZHEJIANG = 33; // 浙江
+ public static final int EM_CARD_ANHUI = 34; // 安徽
+ public static final int EM_CARD_FUJIAN = 35; // 福建
+ public static final int EM_CARD_JIANGXI = 36; // 江西
+ public static final int EM_CARD_SHANDONG = 37; // 山东
+ public static final int EM_CARD_HENAN = 41; // 河南
+ public static final int EM_CARD_HUBEI = 42; // 湖北
+ public static final int EM_CARD_HUNAN = 43; // 湖南
+ public static final int EM_CARD_GUANGDONG = 44; // 广东
+ public static final int EM_CARD_GUANGXI = 45; // 广西
+ public static final int EM_CARD_HAINAN = 46; // 海南
+ public static final int EM_CARD_CHONGQING = 50; // 重庆
+ public static final int EM_CARD_SICHUAN = 51; // 四川
+ public static final int EM_CARD_GUIZHOU = 52; // 贵州
+ public static final int EM_CARD_YUNNAN = 53; // 云南
+ public static final int EM_CARD_XIZANG = 54; // 西藏
+ public static final int EM_CARD_SHANXI_XIAN = 61; // 陕西
+ public static final int EM_CARD_GANSU = 62; // 甘肃
+ public static final int EM_CARD_QINGHAI = 63; // 青海
+ public static final int EM_CARD_NINGXIA = 64; // 宁夏
+ public static final int EM_CARD_XINJIANG = 65; // 新疆
+ public static final int EM_CARD_XIANGGANG = 71; // 香港
+ public static final int EM_CARD_AOMEN = 82; // 澳门
+ public static final int EM_CARD_TAIWAN = 83; // 台湾
+ }
+
+ // 车辆类型
+ public static class EM_CAR_TYPE extends SdkStructure
+ {
+ public static final int EM_CAR_0 = 0; // 其他车辆
+ public static final int EM_CAR_1 = 1; // 大型普通客车
+ public static final int EM_CAR_2 = 2; // 大型双层客车
+ public static final int EM_CAR_3 = 3; // 大型卧铺客车
+ public static final int EM_CAR_4 = 4; // 大型铰接客车
+ public static final int EM_CAR_5 = 5; // 大型越野客车
+ public static final int EM_CAR_6 = 6; // 大型轿车
+ public static final int EM_CAR_7 = 7; // 大型专用客车
+ public static final int EM_CAR_8 = 8; // 大型专用校车
+ public static final int EM_CAR_9 = 9; // 中型普通客车
+ public static final int EM_CAR_10 = 10; // 中型双层客车
+ public static final int EM_CAR_11 = 11; // 中型卧铺客车
+ public static final int EM_CAR_12 = 12; // 中型铰接客车
+ public static final int EM_CAR_13 = 13; // 中型越野客车
+ public static final int EM_CAR_14 = 14; // 中型轿车
+ public static final int EM_CAR_15 = 15; // 中型专用客车
+ public static final int EM_CAR_16 = 16; // 中型专用校车
+ public static final int EM_CAR_17 = 17; // 小型普通客车
+ public static final int EM_CAR_18 = 18; // 小型越野客车
+ public static final int EM_CAR_19 = 19; // 小型轿车
+ public static final int EM_CAR_20 = 20; // 小型专用客车
+ public static final int EM_CAR_21 = 21; // 小型专用校车
+ public static final int EM_CAR_22 = 22; // 小型面包车
+ public static final int EM_CAR_23 = 23; // 微型普通客车
+ public static final int EM_CAR_24 = 24; // 微型越野客车
+ public static final int EM_CAR_25 = 25; // 微型轿车
+ public static final int EM_CAR_26 = 26; // 微型面包车
+ public static final int EM_CAR_27 = 27; // 重型半挂牵引车
+ public static final int EM_CAR_28 = 28; // 重型全挂牵引车
+ public static final int EM_CAR_29 = 29; // 中型半挂牵引车
+ public static final int EM_CAR_30 = 30; // 中型全挂牵引车
+ public static final int EM_CAR_31 = 31; // 轻型半挂牵引车
+ public static final int EM_CAR_32 = 32; // 轻型全挂牵引车
+ public static final int EM_CAR_33 = 33; // 大型非载货专项作业车
+ public static final int EM_CAR_34 = 34; // 大型载货专项作业车
+ public static final int EM_CAR_35 = 35; // 中型非载货专项作业车
+ public static final int EM_CAR_36 = 36; // 中型载货专项作业车
+ public static final int EM_CAR_37 = 37; // 小型非载货专项作业车
+ public static final int EM_CAR_38 = 38; // 小型载货专项作业车
+ public static final int EM_CAR_39 = 39; // 微型非载货专项作业车
+ public static final int EM_CAR_40 = 40; // 微型载货专项作业车
+ public static final int EM_CAR_41 = 41; // 重型非载货专项作业车
+ public static final int EM_CAR_42 = 42; // 重型载货专项作业车
+ public static final int EM_CAR_43 = 43; // 轻型非载货专项作业车
+ public static final int EM_CAR_44 = 44; // 轻型载货专项作业车
+ public static final int EM_CAR_45 = 45; // 普通正三轮摩托车
+ public static final int EM_CAR_46 = 46; // 轻便正三轮摩托车
+ public static final int EM_CAR_47 = 47; // 正三轮载客摩托车
+ public static final int EM_CAR_48 = 48; // 正三轮载货摩托车
+ public static final int EM_CAR_49 = 49; // 侧三轮摩托车
+ public static final int EM_CAR_50 = 50; // 普通二轮摩托车
+ public static final int EM_CAR_51 = 51; // 轻便二轮摩托车
+ public static final int EM_CAR_52 = 52; // 无轨电车
+ public static final int EM_CAR_53 = 53; // 有轨电车
+ public static final int EM_CAR_54 = 54; // 三轮汽车
+ public static final int EM_CAR_55 = 55; // 轮式装载机械
+ public static final int EM_CAR_56 = 56; // 轮式挖掘机械
+ public static final int EM_CAR_57 = 57; // 轮式平地机械
+ public static final int EM_CAR_58 = 58; // 重型普通货车
+ public static final int EM_CAR_59 = 59; // 重型厢式货车
+ public static final int EM_CAR_60 = 60; // 重型封闭货车
+ public static final int EM_CAR_61 = 61; // 重型罐式货车
+ public static final int EM_CAR_62 = 62; // 重型平板货车
+ public static final int EM_CAR_63 = 63; // 重型集装箱车
+ public static final int EM_CAR_64 = 64; // 重型自卸货车
+ public static final int EM_CAR_65 = 65; // 重型特殊结构货车
+ public static final int EM_CAR_66 = 66; // 重型仓栅式货车
+ public static final int EM_CAR_67 = 67; // 重型车辆运输车
+ public static final int EM_CAR_68 = 68; // 重型厢式自卸货车
+ public static final int EM_CAR_69 = 69; // 重型罐式自卸货车
+ public static final int EM_CAR_70 = 70; // 重型平板自卸货车
+ public static final int EM_CAR_71 = 71; // 重型集装箱自卸货车
+ public static final int EM_CAR_72 = 72; // 重型特殊结构自卸货车
+ public static final int EM_CAR_73 = 73; // 重型仓栅式自卸货车
+ public static final int EM_CAR_74 = 74; // 中型普通货车
+ public static final int EM_CAR_75 = 75; // 中型厢式货车
+ public static final int EM_CAR_76 = 76; // 中型封闭货车
+ public static final int EM_CAR_77 = 77; // 中型罐式货车
+ public static final int EM_CAR_78 = 78; // 中型平板货车
+ public static final int EM_CAR_79 = 79; // 中型集装箱车
+ public static final int EM_CAR_80 = 80; // 中型自卸货车
+ public static final int EM_CAR_81 = 81; // 中型特殊结构货车
+ public static final int EM_CAR_82 = 82; // 中型仓栅式货车
+ public static final int EM_CAR_83 = 83; // 中型车辆运输车
+ public static final int EM_CAR_84 = 84; // 中型厢式自卸货车
+ public static final int EM_CAR_85 = 85; // 中型罐式自卸货车
+ public static final int EM_CAR_86 = 86; // 中型平板自卸货车
+ public static final int EM_CAR_87 = 87; // 中型集装箱自卸货车
+ public static final int EM_CAR_88 = 88; // 中型特殊结构自卸货车
+ public static final int EM_CAR_89 = 89; // 中型仓栅式自卸货车
+ public static final int EM_CAR_90 = 90; // 轻型普通货车
+ public static final int EM_CAR_91 = 91; // 轻型厢式货车
+ public static final int EM_CAR_92 = 92; // 轻型封闭货车
+ public static final int EM_CAR_93 = 93; // 轻型罐式货车
+ public static final int EM_CAR_94 = 94; // 轻型平板货车
+ public static final int EM_CAR_95 = 95; // 轻型自卸货车
+ public static final int EM_CAR_96 = 96; // 轻型特殊结构货车
+ public static final int EM_CAR_97 = 97; // 轻型仓栅式货车
+ public static final int EM_CAR_98 = 98; // 轻型车辆运输车
+ public static final int EM_CAR_99 = 99; // 轻型厢式自卸货车
+ public static final int EM_CAR_100 = 100; // 轻型罐式自卸货车
+ public static final int EM_CAR_101 = 101; // 轻型平板自卸货车
+ public static final int EM_CAR_102 = 102; // 轻型特殊结构自卸货车
+ public static final int EM_CAR_103 = 103; // 轻型仓栅式自卸货车
+ public static final int EM_CAR_104 = 104; // 微型普通货车
+ public static final int EM_CAR_105 = 105; // 微型厢式货车
+ public static final int EM_CAR_106 = 106; // 微型封闭货车
+ public static final int EM_CAR_107 = 107; // 微型罐式货车
+ public static final int EM_CAR_108 = 108; // 微型自卸货车
+ public static final int EM_CAR_109 = 109; // 微型特殊结构货车
+ public static final int EM_CAR_110 = 110; // 微型仓栅式货车
+ public static final int EM_CAR_111 = 111; // 微型车辆运输车
+ public static final int EM_CAR_112 = 112; // 微型厢式自卸货车
+ public static final int EM_CAR_113 = 113; // 微型罐式自卸货车
+ public static final int EM_CAR_114 = 114; // 微型特殊结构自卸货车
+ public static final int EM_CAR_115 = 115; // 微型仓栅式自卸货车
+ public static final int EM_CAR_116 = 116; // 普通低速货车
+ public static final int EM_CAR_117 = 117; // 厢式低速货车
+ public static final int EM_CAR_118 = 118; // 罐式低速货车
+ public static final int EM_CAR_119 = 119; // 自卸低速货车
+ public static final int EM_CAR_120 = 120; // 仓栅式低速货车
+ public static final int EM_CAR_121 = 121; // 厢式自卸低速货车
+ public static final int EM_CAR_122 = 122; // 罐式自卸低速货车
+ public static final int EM_CAR_123 = 123; // 重型普通全挂车
+ public static final int EM_CAR_124 = 124; // 重型厢式全挂车
+ public static final int EM_CAR_125 = 125; // 重型罐式全挂车
+ public static final int EM_CAR_126 = 126; // 重型平板全挂车
+ public static final int EM_CAR_127 = 127; // 重型集装箱全挂车
+ public static final int EM_CAR_128 = 128; // 重型自卸全挂车
+ public static final int EM_CAR_129 = 129; // 重型仓栅式全挂车
+ public static final int EM_CAR_130 = 130; // 重型旅居全挂车
+ public static final int EM_CAR_131 = 131; // 重型专项作业全挂车
+ public static final int EM_CAR_132 = 132; // 重型厢式自卸全挂车
+ public static final int EM_CAR_133 = 133; // 重型罐式自卸全挂车
+ public static final int EM_CAR_134 = 134; // 重型平板自卸全挂车
+ public static final int EM_CAR_135 = 135; // 重型集装箱自卸全挂车
+ public static final int EM_CAR_136 = 136; // 重型仓栅式自卸全挂车
+ public static final int EM_CAR_137 = 137; // 重型专项作业自卸全挂车
+ public static final int EM_CAR_138 = 138; // 中型普通全挂车
+ public static final int EM_CAR_139 = 139; // 中型厢式全挂车
+ public static final int EM_CAR_140 = 140; // 中型罐式全挂车
+ public static final int EM_CAR_141 = 141; // 中型平板全挂车
+ public static final int EM_CAR_142 = 142; // 中型集装箱全挂车
+ public static final int EM_CAR_143 = 143; // 中型自卸全挂车
+ public static final int EM_CAR_144 = 144; // 中型仓栅式全挂车
+ public static final int EM_CAR_145 = 145; // 中型旅居全挂车
+ public static final int EM_CAR_146 = 146; // 中型专项作业全挂车
+ public static final int EM_CAR_147 = 147; // 中型厢式自卸全挂车
+ public static final int EM_CAR_148 = 148; // 中型罐式自卸全挂车
+ public static final int EM_CAR_149 = 149; // 中型平板自卸全挂车
+ public static final int EM_CAR_150 = 150; // 中型集装箱自卸全挂车
+ public static final int EM_CAR_151 = 151; // 中型仓栅式自卸全挂车
+ public static final int EM_CAR_152 = 152; // 中型专项作业自卸全挂车
+ public static final int EM_CAR_153 = 153; // 轻型普通全挂车
+ public static final int EM_CAR_154 = 154; // 轻型厢式全挂车
+ public static final int EM_CAR_155 = 155; // 轻型罐式全挂车
+ public static final int EM_CAR_156 = 156; // 轻型平板全挂车
+ public static final int EM_CAR_157 = 157; // 轻型自卸全挂车
+ public static final int EM_CAR_158 = 158; // 轻型仓栅式全挂车
+ public static final int EM_CAR_159 = 159; // 轻型旅居全挂车
+ public static final int EM_CAR_160 = 160; // 轻型专项作业全挂车
+ public static final int EM_CAR_161 = 161; // 轻型厢式自卸全挂车
+ public static final int EM_CAR_162 = 162; // 轻型罐式自卸全挂车
+ public static final int EM_CAR_163 = 163; // 轻型平板自卸全挂车
+ public static final int EM_CAR_164 = 164; // 轻型集装箱自卸全挂车
+ public static final int EM_CAR_165 = 165; // 轻型仓栅式自卸全挂车
+ public static final int EM_CAR_166 = 166; // 轻型专项作业自卸全挂车
+ public static final int EM_CAR_167 = 167; // 重型普通半挂车
+ public static final int EM_CAR_168 = 168; // 重型厢式半挂车
+ public static final int EM_CAR_169 = 169; // 重型罐式半挂车
+ public static final int EM_CAR_170 = 170; // 重型平板半挂车
+ public static final int EM_CAR_171 = 171; // 重型集装箱半挂车
+ public static final int EM_CAR_172 = 172; // 重型自卸半挂车
+ public static final int EM_CAR_173 = 173; // 重型特殊结构半挂车
+ public static final int EM_CAR_174 = 174; // 重型仓栅式半挂车
+ public static final int EM_CAR_175 = 175; // 重型旅居半挂车
+ public static final int EM_CAR_176 = 176; // 重型专项作业半挂车
+ public static final int EM_CAR_177 = 177; // 重型低平板半挂车
+ public static final int EM_CAR_178 = 178; // 重型车辆运输半挂车
+ public static final int EM_CAR_179 = 179; // 重型罐式自卸半挂车
+ public static final int EM_CAR_180 = 180; // 重型平板自卸半挂车
+ public static final int EM_CAR_181 = 181; // 重型集装箱自卸半挂车
+ public static final int EM_CAR_182 = 182; // 重型特殊结构自卸半挂车
+ public static final int EM_CAR_183 = 183; // 重型仓栅式自卸半挂车
+ public static final int EM_CAR_184 = 184; // 重型专项作业自卸半挂车
+ public static final int EM_CAR_185 = 185; // 重型低平板自卸半挂车
+ public static final int EM_CAR_186 = 186; // 重型中置轴旅居挂车
+ public static final int EM_CAR_187 = 187; // 重型中置轴车辆运输车
+ public static final int EM_CAR_188 = 188; // 重型中置轴普通挂车
+ public static final int EM_CAR_189 = 189; // 中型普通半挂车
+ public static final int EM_CAR_190 = 190; // 中型厢式半挂车
+ public static final int EM_CAR_191 = 191; // 中型罐式半挂车
+ public static final int EM_CAR_192 = 192; // 中型平板半挂车
+ public static final int EM_CAR_193 = 193; // 中型集装箱半挂车
+ public static final int EM_CAR_194 = 194; // 中型自卸半挂车
+ public static final int EM_CAR_195 = 195; // 中型特殊结构半挂车
+ public static final int EM_CAR_196 = 196; // 中型仓栅式半挂车
+ public static final int EM_CAR_197 = 197; // 中型旅居半挂车
+ public static final int EM_CAR_198 = 198; // 中型专项作业半挂车
+ public static final int EM_CAR_199 = 199; // 中型低平板半挂车
+ public static final int EM_CAR_200 = 200; // 中型车辆运输半挂车
+ public static final int EM_CAR_201 = 201; // 中型罐式自卸半挂车
+ public static final int EM_CAR_202 = 202; // 中型平板自卸半挂车
+ public static final int EM_CAR_203 = 203; // 中型集装箱自卸半挂车
+ public static final int EM_CAR_204 = 204; // 中型特殊结构自卸挂车
+ public static final int EM_CAR_205 = 205; // 中型仓栅式自卸半挂车
+ public static final int EM_CAR_206 = 206; // 中型专项作业自卸半挂车
+ public static final int EM_CAR_207 = 207; // 中型低平板自卸半挂车
+ public static final int EM_CAR_208 = 208; // 中型中置轴旅居挂车
+ public static final int EM_CAR_209 = 209; // 中型中置轴车辆运输车
+ public static final int EM_CAR_210 = 210; // 中型中置轴普通挂车
+ public static final int EM_CAR_211 = 211; // 轻型普通半挂车
+ public static final int EM_CAR_212 = 212; // 轻型厢式半挂车
+ public static final int EM_CAR_213 = 213; // 轻型罐式半挂车
+ public static final int EM_CAR_214 = 214; // 轻型平板半挂车
+ public static final int EM_CAR_215 = 215; // 轻型自卸半挂车
+ public static final int EM_CAR_216 = 216; // 轻型仓栅式半挂车
+ public static final int EM_CAR_217 = 217; // 轻型旅居半挂车
+ public static final int EM_CAR_218 = 218; // 轻型专项作业半挂车
+ public static final int EM_CAR_219 = 219; // 轻型低平板半挂车
+ public static final int EM_CAR_220 = 220; // 轻型车辆运输半挂车
+ public static final int EM_CAR_221 = 221; // 轻型罐式自卸半挂车
+ public static final int EM_CAR_222 = 222; // 轻型平板自卸半挂车
+ public static final int EM_CAR_223 = 223; // 轻型集装箱自卸半挂车
+ public static final int EM_CAR_224 = 224; // 轻型特殊结构自卸挂车
+ public static final int EM_CAR_225 = 225; // 轻型仓栅式自卸半挂车
+ public static final int EM_CAR_226 = 226; // 轻型专项作业自卸半挂车
+ public static final int EM_CAR_227 = 227; // 轻型低平板自卸半挂车
+ public static final int EM_CAR_228 = 228; // 轻型中置轴旅居挂车
+ public static final int EM_CAR_229 = 229; // 轻型中置轴车辆运输车
+ public static final int EM_CAR_230 = 230; // 轻型中置轴普通挂车
+ }
+
+ // 号牌类型
+ public static class EM_PLATE_TYPE extends SdkStructure
+ {
+ public static final int EM_PLATE_OTHER = 0; // 其他车
+ public static final int EM_PLATE_BIG_CAR = 1; // 大型汽车
+ public static final int EM_PLATE_SMALL_CAR = 2; // 小型汽车
+ public static final int EM_PLATE_EMBASSY_CAR = 3; // 使馆汽车
+ public static final int EM_PLATE_CONSULATE_CAR = 4; // 领馆汽车
+ public static final int EM_PLATE_ABROAD_CAR = 5; // 境外汽车
+ public static final int EM_PLATE_FOREIGN_CAR = 6; // 外籍汽车
+ public static final int EM_PLATE_LOW_SPEED_CAR = 7; // 低速车
+ public static final int EM_PLATE_COACH_CAR = 8; // 教练车
+ public static final int EM_PLATE_MOTORCYCLE = 9; // 摩托车
+ public static final int EM_PLATE_NEW_POWER_CAR = 10; // 新能源车
+ public static final int EM_PLATE_POLICE_CAR = 11; // 警用车
+ public static final int EM_PLATE_HONGKONG_MACAO_CAR = 12; // 港澳两地车
+ public static final int EM_PLATE_WJPOLICE_CAR = 13; //
+ public static final int EM_PLATE_OUTERGUARD_CAR = 14; //
+ }
+
+ // 车身颜色
+ public static class EM_CAR_COLOR_TYPE extends SdkStructure
+ {
+ public static final int EM_CAR_COLOR_WHITE = 0; // 白色
+ public static final int EM_CAR_COLOR_BLACK = 1; // 黑色
+ public static final int EM_CAR_COLOR_RED = 2; // 红色
+ public static final int EM_CAR_COLOR_YELLOW = 3; // 黄色
+ public static final int EM_CAR_COLOR_GRAY = 4; // 灰色
+ public static final int EM_CAR_COLOR_BLUE = 5; // 蓝色
+ public static final int EM_CAR_COLOR_GREEN = 6; // 绿色
+ public static final int EM_CAR_COLOR_PINK = 7; // 粉色
+ public static final int EM_CAR_COLOR_PURPLE = 8; // 紫色
+ public static final int EM_CAR_COLOR_DARK_PURPLE = 9; // 暗紫色
+ public static final int EM_CAR_COLOR_BROWN = 10; // 棕色
+ public static final int EM_CAR_COLOR_MAROON = 11; // 粟色
+ public static final int EM_CAR_COLOR_SILVER_GRAY = 12; // 银灰色
+ public static final int EM_CAR_COLOR_DARK_GRAY = 13; // 暗灰色
+ public static final int EM_CAR_COLOR_WHITE_SMOKE = 14; // 白烟色
+ public static final int EM_CAR_COLOR_DEEP_ORANGE = 15; // 深橙色
+ public static final int EM_CAR_COLOR_LIGHT_ROSE = 16; // 浅玫瑰色
+ public static final int EM_CAR_COLOR_TOMATO_RED = 17; // 番茄红色
+ public static final int EM_CAR_COLOR_OLIVE = 18; // 橄榄色
+ public static final int EM_CAR_COLOR_GOLDEN = 19; // 金色
+ public static final int EM_CAR_COLOR_DARK_OLIVE = 20; // 暗橄榄色
+ public static final int EM_CAR_COLOR_YELLOW_GREEN = 21; // 黄绿色
+ public static final int EM_CAR_COLOR_GREEN_YELLOW = 22; // 绿黄色
+ public static final int EM_CAR_COLOR_FOREST_GREEN = 23; // 森林绿
+ public static final int EM_CAR_COLOR_OCEAN_BLUE = 24; // 海洋绿
+ public static final int EM_CAR_COLOR_DEEP_SKYBLUE = 25; // 深天蓝
+ public static final int EM_CAR_COLOR_CYAN = 26; // 青色
+ public static final int EM_CAR_COLOR_DEEP_BLUE = 27; // 深蓝色
+ public static final int EM_CAR_COLOR_DEEP_RED = 28; // 深红色
+ public static final int EM_CAR_COLOR_DEEP_GREEN = 29; // 深绿色
+ public static final int EM_CAR_COLOR_DEEP_YELLOW = 30; // 深黄色
+ public static final int EM_CAR_COLOR_DEEP_PINK = 31; // 深粉色
+ public static final int EM_CAR_COLOR_DEEP_PURPLE = 32; // 深紫色
+ public static final int EM_CAR_COLOR_DEEP_BROWN = 33; // 深棕色
+ public static final int EM_CAR_COLOR_DEEP_CYAN = 34; // 深青色
+ public static final int EM_CAR_COLOR_ORANGE = 35; // 橙色
+ public static final int EM_CAR_COLOR_DEEP_GOLDEN = 36; // 深金色
+ public static final int EM_CAR_COLOR_OTHER = 255; // 未识别、其他
+ }
+
+ // 使用性质
+ public static class EM_USE_PROPERTY_TYPE extends SdkStructure
+ {
+ public static final int EM_USE_PROPERTY_NONOPERATING = 0; // 非营运
+ public static final int EM_USE_PROPERTY_HIGWAY = 1; // 公路客运,旅游客运
+ public static final int EM_USE_PROPERTY_BUS = 2; // 公交客运
+ public static final int EM_USE_PROPERTY_TAXI = 3; // 出租客运
+ public static final int EM_USE_PROPERTY_FREIGHT = 4; // 货运
+ public static final int EM_USE_PROPERTY_LEASE = 5; // 租赁
+ public static final int EM_USE_PROPERTY_SECURITY = 6; // 警用,消防,救护,工程救险
+ public static final int EM_USE_PROPERTY_COACH = 7; // 教练
+ public static final int EM_USE_PROPERTY_SCHOOLBUS = 8; // 幼儿校车,小学生校车,其他校车
+ public static final int EM_USE_PROPERTY_FOR_DANGE_VEHICLE = 9; // 危化品运输
+ public static final int EM_USE_PROPERTY_OTHER = 10; // 其他
+ public static final int EM_USE_PROPERTY_ONLINE_CAR_HAILING = 11; // 网约车
+ }
+
+ // 大类业务方案
+ public static class EM_CLASS_TYPE extends SdkStructure
+ {
+ public static final int EM_CLASS_UNKNOWN = 0; // 未知业务
+ public static final int EM_CLASS_VIDEO_SYNOPSIS = 1; // 视频浓缩
+ public static final int EM_CLASS_TRAFFIV_GATE = 2; // 卡口
+ public static final int EM_CLASS_ELECTRONIC_POLICE = 3; // 电警
+ public static final int EM_CLASS_SINGLE_PTZ_PARKING = 4; // 单球违停
+ public static final int EM_CLASS_PTZ_PARKINBG = 5; // 主从违停
+ public static final int EM_CLASS_TRAFFIC = 6; // 交通事件"Traffic"
+ public static final int EM_CLASS_NORMAL = 7; // 通用行为分析"Normal"
+ public static final int EM_CLASS_PS = 8;
+ public static final int EM_CLASS_ATM = 9; // 金融行为分析"ATM"
+ public static final int EM_CLASS_METRO = 10; // 地铁行为分析
+ public static final int EM_CLASS_FACE_DETECTION = 11; // 目标检测"FaceDetection"
+ public static final int EM_CLASS_FACE_RECOGNITION = 12; // 目标识别"FaceRecognition"
+ public static final int EM_CLASS_NUMBER_STAT = 13; // 人数统计"NumberStat"
+ public static final int EM_CLASS_HEAT_MAP = 14; // 热度图"HeatMap"
+ public static final int EM_CLASS_VIDEO_DIAGNOSIS = 15; // 视频诊断"VideoDiagnosis"
+ public static final int EM_CLASS_VIDEO_ENHANCE = 16; // 视频增强
+ public static final int EM_CLASS_SMOKEFIRE_DETECT = 17; // 烟火检测
+ public static final int EM_CLASS_VEHICLE_ANALYSE = 18; // 车辆特征识别"VehicleAnalyse"
+ public static final int EM_CLASS_PERSON_FEATURE = 19; // 人员特征识别
+ public static final int EM_CLASS_SDFACEDETECTION = 20; // 多预置点目标检测"SDFaceDetect"
+ //配置一条规则但可以在不同预置点下生效
+ public static final int EM_CLASS_HEAT_MAP_PLAN = 21; // 球机热度图计划"HeatMapPlan"
+ public static final int EM_CLASS_NUMBERSTAT_PLAN = 22; // 球机客流量统计计划 "NumberStatPlan"
+ public static final int EM_CLASS_ATMFD = 23; // 金融目标检测,包括正常人脸、异常人脸、相邻人脸、头盔人脸等针对ATM场景特殊优化
+ public static final int EM_CLASS_HIGHWAY = 24; // 高速交通事件检测"Highway"
+ public static final int EM_CLASS_CITY = 25; // 城市交通事件检测 "City"
+ public static final int EM_CLASS_LETRACK = 26; // 民用简易跟踪"LeTrack"
+ public static final int EM_CLASS_SCR = 27; // 打靶相机"SCR"
+ public static final int EM_CLASS_STEREO_VISION = 28; // 立体视觉(双目)"StereoVision"
+ public static final int EM_CLASS_HUMANDETECT = 29; // 人体检测"HumanDetect"
+ public static final int EM_CLASS_FACE_ANALYSIS = 30; // 人脸分析 "FaceAnalysis"
+ public static final int EM_CALSS_XRAY_DETECTION = 31; // X光检测 "XRayDetection"
+ public static final int EM_CLASS_STEREO_NUMBER = 32; // 双目相机客流量统计 "StereoNumber"
+ public static final int EM_CLASS_CROWDDISTRIMAP = 33; // 人群分布图
+ public static final int EM_CLASS_OBJECTDETECT = 34; // 目标检测
+ public static final int EM_CLASS_FACEATTRIBUTE = 35; // IVSS目标检测 "FaceAttribute"
+ public static final int EM_CLASS_FACECOMPARE = 36; // IVSS目标识别 "FaceCompare"
+ public static final int EM_CALSS_STEREO_BEHAVIOR = 37; // 立体行为分析 "StereoBehavior"
+ public static final int EM_CALSS_INTELLICITYMANAGER = 38; // 智慧城管 "IntelliCityMgr"
+ public static final int EM_CALSS_PROTECTIVECABIN = 39; // 防护舱(ATM舱内)"ProtectiveCabin"
+ public static final int EM_CALSS_AIRPLANEDETECT = 40; // 飞机行为检测 "AirplaneDetect"
+ public static final int EM_CALSS_CROWDPOSTURE = 41; // 人群态势(人群分布图服务)"CrowdPosture"
+ public static final int EM_CLASS_PHONECALLDETECT = 42; // 打电话检测 "PhoneCallDetect"
+ public static final int EM_CLASS_SMOKEDETECTION = 43; // 烟雾检测 "SmokeDetection"
+ public static final int EM_CLASS_BOATDETECTION = 44; // 船只检测 "BoatDetection"
+ public static final int EM_CLASS_SMOKINGDETECT = 45; // 吸烟检测 "SmokingDetect"
+ public static final int EM_CLASS_WATERMONITOR = 46; // 水利监测 "WaterMonitor"
+ public static final int EM_CLASS_GENERATEGRAPHDETECTION = 47; // 生成图规则 "GenerateGraphDetection"
+ public static final int EM_CLASS_TRAFFIC_PARK = 48; // 交通停车 "TrafficPark"
+ public static final int EM_CLASS_OPERATEMONITOR = 49; // 作业检测 "OperateMonitor"
+ public static final int EM_CLASS_INTELLI_RETAIL = 50; // 智慧零售大类 "IntelliRetail"
+ public static final int EM_CLASS_CLASSROOM_ANALYSE = 51; // 教育智慧课堂"ClassroomAnalyse"
+ public static final int EM_CLASS_FEATURE_ABSTRACT = 52; // 特征向量提取大类 "FeatureAbstract"
+ public static final int EM_CLASS_CROWD_ABNORMAL = 62; // 人群异常检测 "CrowdAbnormal"
+ public static final int EM_CLASS_ANATOMY_TEMP_DETECT = 63; // 人体温智能检测 "AnatomyTempDetect"
+ public static final int EM_CLASS_WEATHER_MONITOR = 64; // 天气监控 "WeatherMonitor"
+ public static final int EM_CLASS_ELEVATOR_ACCESS_CONTROL = 65; // 电梯门禁 "ElevatorAccessControl"
+ public static final int EM_CLASS_BREAK_RULE_BUILDING = 66; // 违章建筑 "BreakRuleBuilding"
+ public static final int EM_CLASS_FOREIGN_DETECT = 67; // 异物检测 "ForeignDetection"
+ public static final int EM_CLASS_PANORAMA_TRAFFIC = 68; // 全景交通 "PanoramaTraffic"
+ public static final int EM_CLASS_CONVEY_OR_BLOCK = 69; // 传送带阻塞 "ConveyorBlock"
+ public static final int EM_CLASS_KITCHEN_ANIMAL = 70; // 厨房有害动物检测 "KitchenAnimal"
+ public static final int EM_CLASS_ALLSEEINGEYE = 71; // 万物检测 "AllSeeingEye"
+ public static final int EM_CLASS_INTELLI_FIRE_CONTROL = 72; // 智慧消防 "IntelliFireControl"
+ public static final int EM_CLASS_CONVERYER_BELT = 73; // 传送带检测 "ConveyerBelt"
+ public static final int EM_CLASS_INTELLI_LOGISTICS = 74; // 智慧物流 "IntelliLogistics"
+ public static final int EM_CLASS_SMOKE_FIRE = 75; // 烟火检测"SmokeFire"
+ public static final int EM_CLASS_OBJECT_MONITOR = 76; // 物品监控"ObjectMonitor"
+ public static final int EM_CLASS_INTELLI_PARKING = 77; // 智能停车"IntelliParking"
+ }
+
+ // 交通车辆行驶方向类型
+ public static class EM_TRAFFICCAR_MOVE_DIRECTION extends SdkStructure
+ {
+ public static final int EM_TRAFFICCAR_MOVE_DIRECTION_UNKNOWN = 0; // 未知的
+ public static final int EM_TRAFFICCAR_MOVE_DIRECTION_STRAIGHT = 1; // 直行
+ public static final int EM_TRAFFICCAR_MOVE_DIRECTION_TURN_LEFT = 2; // 左转
+ public static final int EM_TRAFFICCAR_MOVE_DIRECTION_TURN_RIGHT = 3; // 右转
+ public static final int EM_TRAFFICCAR_MOVE_DIRECTION_TURN_AROUND = 4; // 掉头
+ }
+
+ // 货物通道信息(物流)
+ public static class NET_CUSTOM_INFO extends SdkStructure
+ {
+ public int nCargoChannelNum; // 货物通道个数
+ public float[] fCoverageRate = new float[MAX_CARGO_CHANNEL_NUM]; // 货物覆盖率
+ public byte[] byReserved = new byte[40]; // 保留字节
+ }
+
+ // 车辆物件类型
+ public static class EM_COMM_ATTACHMENT_TYPE extends SdkStructure
+ {
+ public static final int COMM_ATTACHMENT_TYPE_UNKNOWN = 0; // 未知类型
+ public static final int COMM_ATTACHMENT_TYPE_FURNITURE = 1; // 摆件
+ public static final int COMM_ATTACHMENT_TYPE_PENDANT = 2; // 挂件
+ public static final int COMM_ATTACHMENT_TYPE_TISSUEBOX = 3; // 纸巾盒
+ public static final int COMM_ATTACHMENT_TYPE_DANGER = 4; // 危险品
+ public static final int COMM_ATTACHMENT_TYPE_PERFUMEBOX = 5; // 香水
+ }
+
+ // 按功能划分的车辆类型
+ public static class EM_VEHICLE_TYPE_BY_FUNC extends SdkStructure
+ {
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_UNKNOWN = 0; // 未知
+ /*以下为特种车辆类型*/
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_TANK_CAR = 1; // 危化品车辆
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_SLOT_TANK_CAR = 2; // 槽罐车
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_DREGS_CAR = 3; // 渣土车
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_CONCRETE_MIXER_TRUCK = 4; // 混凝土搅拌车
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_TAXI = 5; // 出租车
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_POLICE = 6; // 警车
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_AMBULANCE = 7; // 救护车
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_GENERAL = 8; // 普通车
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_WATERING_CAR = 9; // 洒水车
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_FIRE_ENGINE = 10; // 消防车
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_MACHINESHOP_TRUCK = 11; // 工程车
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_POWER_LOT_VEHICLE = 12; // 粉粒物料车
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_SUCTION_SEWAGE_TRUCK = 13; // 吸污车
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_NORMAL_TANK_TRUCK = 14; // 普通罐车
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_SCHOOL_BUS = 15; // 校车
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_EXCAVATOR = 16; // 挖掘机
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_BULLDOZER = 17; // 推土车
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_CRANE = 18; // 吊车
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_PUMP_TRUCK = 19; // 泵车
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_POULTRY = 20; // 禽畜车
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_TRACTOR = 21; // 拖拉机
+ }
+
+ // 标准车辆类型
+ public static class EM_STANDARD_VEHICLE_TYPE extends SdkStructure
+ {
+ public static final int EM_STANDARD_VEHICLE_UNKNOWN = 0; // 未知
+ public static final int EM_STANDARD_VEHICLE_MOTOR = 1; // 机动车
+ public static final int EM_STANDARD_VEHICLE_BUS = 2; // 公交车
+ public static final int EM_STANDARD_VEHICLE_UNLICENSED_MOTOR = 3; // 无牌机动车
+ public static final int EM_STANDARD_VEHICLE_LARGE_CAR = 4; // 大型汽车
+ public static final int EM_STANDARD_VEHICLE_MICRO_CAR = 5; // 小型汽车
+ public static final int EM_STANDARD_VEHICLE_EMBASSY_CAR = 6; // 使馆汽车
+ public static final int EM_STANDARD_VEHICLE_MARGINAL_CAR = 7; // 领馆汽车
+ public static final int EM_STANDARD_VEHICLE_AREAOUT_CAR = 8; // 境外汽车
+ public static final int EM_STANDARD_VEHICLE_FOREIGN_CAR = 9; // 外籍汽车
+ public static final int EM_STANDARD_VEHICLE_FARM_TRANS_CAR = 10; // 农用运输车
+ public static final int EM_STANDARD_VEHICLE_TRACTOR = 11; // 拖拉机
+ public static final int EM_STANDARD_VEHICLE_TRAILER = 12; // 挂车
+ public static final int EM_STANDARD_VEHICLE_COACH_CAR = 13; // 教练汽车
+ public static final int EM_STANDARD_VEHICLE_TRIAL_CAR = 14; // 试验汽车
+ public static final int EM_STANDARD_VEHICLE_TEMPORARYENTRY_CAR = 15; // 临时入境汽车
+ public static final int EM_STANDARD_VEHICLE_TEMPORARYENTRY_MOTORCYCLE = 16; // 临时入境摩托
+ public static final int EM_STANDARD_VEHICLE_TEMPORARY_STEER_CAR = 17; // 临时行驶车
+ public static final int EM_STANDARD_VEHICLE_LARGE_TRUCK = 18; // 大货车
+ public static final int EM_STANDARD_VEHICLE_MID_TRUCK = 19; // 中货车
+ public static final int EM_STANDARD_VEHICLE_MICRO_TRUCK = 20; // 小货车
+ public static final int EM_STANDARD_VEHICLE_MICROBUS = 21; // 面包车
+ public static final int EM_STANDARD_VEHICLE_SALOON_CAR = 22; // 轿车
+ public static final int EM_STANDARD_VEHICLE_CARRIAGE = 23; // 小轿车
+ public static final int EM_STANDARD_VEHICLE_MINI_CARRIAGE = 24; // 微型轿车
+ public static final int EM_STANDARD_VEHICLE_SUV_MPV = 25; // SUV或者MPV
+ public static final int EM_STANDARD_VEHICLE_SUV = 26; // SUV
+ public static final int EM_STANDARD_VEHICLE_MPV = 27; // MPV
+ public static final int EM_STANDARD_VEHICLE_PASSENGER_CAR = 28; // 客车
+ public static final int EM_STANDARD_VEHICLE_MOTOR_BUS = 29; // 大客车
+ public static final int EM_STANDARD_VEHICLE_MID_PASSENGER_CAR = 30; // 中客车
+ public static final int EM_STANDARD_VEHICLE_MINI_BUS = 31; // 小客车
+ public static final int EM_STANDARD_VEHICLE_PICKUP = 32; // 皮卡车
+ public static final int EM_STANDARD_VEHICLE_OILTANK_TRUCK = 33; // 油罐车
+ }
+
+ // 报警事件类型 EVENT_ALARM_LOCALALARM(外部报警),EVENT_ALARM_MOTIONALARM(动检报警)报警)
+ public static class DEV_EVENT_ALARM_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] Reserved = new byte[4]; // 保留字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public EVENT_COMM_INFO stCommInfo; // 公共信息
+ public byte byEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] byReserved = new byte[3]; // 保留字节
+ public int emSenseType; // 传感器类型,参考NET_SENSE_METHOD
+ public int emDefenceAreaType; // 防区类型 ,参考EM_NET_DEFENCE_AREA_TYPE
+ public NET_GPS_STATUS_INFO stuGPS; // GPS信息
+ public byte[] szUserID = new byte[32]; // 本地报警时登陆的用户ID
+ public byte[] szUserName = new byte[128]; // 本地报警时登陆的用户名
+ public byte[] szSN = new byte[32]; // 设备序列号
+ public int bExAlarmIn; // 外部输入报警
+ public NET_FILE_PROCESS_INFO stuFileProcessInfo; // 图片与智能事件信息
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public byte[] byReservedEx = new byte[512]; // 保留字节
+ }
+
+ // 报警事件类型 EVENT_ALARM_VIDEOBLIND(视频遮挡报警)
+ public static class DEV_EVENT_ALARM_VIDEOBLIND extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] Reserved = new byte[4]; // 保留字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_TIME_EX stuTime; // 事件发生的时间, (设备时间, 不一定是utc时间)
+ public byte[] szDriverID = new byte[32]; // 司机ID
+ public NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
+ public byte[] szVideoPath = new byte[256]; // 违章关联视频FTP上传路径
+ public NET_IMAGE_INFO_EX stuImageInfo[] = (NET_IMAGE_INFO_EX[])new NET_IMAGE_INFO_EX().toArray(6); //图片信息扩展
+ public int nImageInfo; //图片信息扩展的个数
+ public NET_IMAGE_INFO_EX2 stuImageInfoEx2[] = (NET_IMAGE_INFO_EX2[])new NET_IMAGE_INFO_EX2().toArray(32); //图片信息数组
+ public int nImageInfoEx2Num; //图片信息个数
+ public int nRelatingVideoInfoNum; // 违章关联的多个视频信息个数
+ public NET_RELATING_VIDEO_INFO[] stuRelatingVideoInfo = new NET_RELATING_VIDEO_INFO[16]; // 违章关联的多个视频信息数组,最多支持16个视频
+ public int bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte byReserved[] = new byte[1023]; //预留字节
+ }
+
+ // 事件类型 EVENT_IVS_HIGHSPEED(车辆超速报警事件)对应的数据块描述信息
+ public static class DEV_EVENT_HIGHSPEED_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public byte[] byReserved = new byte[4]; // 保留字节
+ public double dbPTS; // 时间戳(单位是毫秒)
+ public NET_GPS_STATUS_INFO stGPSStatusInfo; // GPS信息
+ public int nSpeedLimit; // 车连限速值(km/h)
+ public int nCurSpeed; // 当前车辆速度(km/h)
+ public int nMaxSpeed; // 最高速度(Km/h)
+ public NET_TIME_EX stuStartTime; // 开始时间(需求),nAction为2时上报此字段
+ public byte[] byReserved1 = new byte[1024]; // 保留字节
+ }
+
+ // 事件类型EVENT_IVS_TIREDPHYSIOLOGICAL(生理疲劳驾驶事件)对应的数据块描述信息
+ public static class DEV_EVENT_TIREDPHYSIOLOGICAL_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[NET_EVENT_NAME_LEN]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int nAction; // 0:脉冲 1:开始 2:停止
+ public NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
+ public byte[] szDriverID = new byte[32]; // 司机ID
+ public byte[] szVideoPath = new byte[256]; // 违章关联视频FTP上传路径
+ public int nRelatingVideoInfoNum; // 违章关联的多个视频信息个数
+ public NET_RELATING_VIDEO_INFO[] stuRelatingVideoInfo = new NET_RELATING_VIDEO_INFO[16]; // 违章关联的多个视频信息数组,最多支持16个视频
+ public byte[] bReserved = new byte[736]; // 保留字节,留待扩展.
+
+ public DEV_EVENT_TIREDPHYSIOLOGICAL_INFO() {
+ for (int i = 0; i < stuRelatingVideoInfo.length; i++) {
+ stuRelatingVideoInfo[i] = new NET_RELATING_VIDEO_INFO();
+ }
+ }
+ }
+
+ // 事件类型EVENT_IVS_TRAFFIC_TIREDLOWERHEAD(开车低头报警事件)对应的数据块描述信息
+ public static class DEV_EVENT_TIREDLOWERHEAD_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[NET_EVENT_NAME_LEN]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
+ public byte[] szDriverID = new byte[32]; // 司机ID
+ public byte[] szVideoPath = new byte[256]; // 违章关联视频FTP上传路径
+ public int nRelatingVideoInfoNum; // 违章关联的多个视频信息个数
+ public NET_RELATING_VIDEO_INFO[] stuRelatingVideoInfo = new NET_RELATING_VIDEO_INFO[16]; // 违章关联的多个视频信息数组,最多支持16个视频
+ public byte[] bReserved = new byte[736]; // 保留字节,留待扩展.
+
+ public DEV_EVENT_TIREDLOWERHEAD_INFO() {
+ for (int i = 0; i < stuRelatingVideoInfo.length; i++) {
+ stuRelatingVideoInfo[i] = new NET_RELATING_VIDEO_INFO();
+ }
+ }
+ }
+
+ // 事件类型EVENT_IVS_TRAFFIC_DRIVERLEAVEPOST(开车离岗报警事件)对应的数据块描述信息
+ public static class DEV_EVENT_DRIVERLEAVEPOST_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[NET_EVENT_NAME_LEN]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
+ public byte[] szDriverID = new byte[32]; // 司机ID
+ public byte[] szVideoPath = new byte[256]; // 违章关联视频FTP上传路径
+ public int nRelatingVideoInfoNum; // 违章关联的多个视频信息个数
+ public NET_RELATING_VIDEO_INFO[] stuRelatingVideoInfo = new NET_RELATING_VIDEO_INFO[16]; // 违章关联的多个视频信息数组,最多支持16个视频
+ public byte[] bReserved = new byte[736]; // 保留字节,留待扩展.
+
+ public DEV_EVENT_DRIVERLEAVEPOST_INFO() {
+ for (int i = 0; i < stuRelatingVideoInfo.length; i++) {
+ stuRelatingVideoInfo[i] = new NET_RELATING_VIDEO_INFO();
+ }
+ }
+ }
+
+ // 事件类型 EVENT_IVS_TRAFFIC_DRIVERYAWN (开车打哈欠事件) 对应的数据块描述信息
+ public static class DEV_EVENT_DRIVERYAWN_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[NET_EVENT_NAME_LEN]; // 事件名称
+ public byte[] szReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
+ public byte[] szDriverID = new byte[32]; // 司机ID
+ public byte[] szVideoPath = new byte[256]; // 违章关联视频FTP上传路径
+ public int nRelatingVideoInfoNum; // 违章关联的多个视频信息个数
+ public NET_RELATING_VIDEO_INFO[] stuRelatingVideoInfo = new NET_RELATING_VIDEO_INFO[16]; // 违章关联的多个视频信息数组,最多支持16个视频
+ public byte[] bReserved = new byte[736]; // 保留字节,留待扩展.
+
+ public DEV_EVENT_DRIVERYAWN_INFO() {
+ for (int i = 0; i < stuRelatingVideoInfo.length; i++) {
+ stuRelatingVideoInfo[i] = new NET_RELATING_VIDEO_INFO();
+ }
+ }
+ }
+
+ // 事件类型 EVENT_IVS_FORWARDCOLLISION_WARNNING(前向碰撞预警) 对应的数据块描述信息
+ public static class DEV_EVENT_FORWARDCOLLISION_WARNNING_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public int nEventID; // 事件ID
+ public byte[] szName = new byte[NET_EVENT_NAME_LEN]; // 事件名称
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nAction; // 0:脉冲 1:开始 2:停止
+ public NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
+ public byte[] szDriverID = new byte[32]; // 司机ID
+ public byte[] szVideoPath = new byte[256]; // 违章关联视频FTP上传路径
+ public int nRelatingVideoInfoNum; // 违章关联的多个视频信息个数
+ public NET_RELATING_VIDEO_INFO[] stuRelatingVideoInfo = new NET_RELATING_VIDEO_INFO[16]; // 违章关联的多个视频信息数组,最多支持16个视频
+ public byte[] bReserved = new byte[736]; // 保留字节
+
+ public DEV_EVENT_FORWARDCOLLISION_WARNNING_INFO() {
+ for (int i = 0; i < stuRelatingVideoInfo.length; i++) {
+ stuRelatingVideoInfo[i] = new NET_RELATING_VIDEO_INFO();
+ }
+ }
+ }
+
+ // 事件类型 EVNET_IVS_LANEDEPARTURE_WARNNING(车道偏移预警) 对应的数据块描述信息
+ public static class DEV_EVENT_LANEDEPARTURE_WARNNING_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public int nEventID; // 事件ID
+ public byte[] szName = new byte[NET_EVENT_NAME_LEN]; // 事件名称
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nAction; // 0:脉冲 1:开始 2:停止
+ public NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
+ public byte[] szDriverID = new byte[32]; // 司机ID
+ public byte[] szVideoPath = new byte[256]; // 违章关联视频FTP上传路径
+ public int nRelatingVideoInfoNum; // 违章关联的多个视频信息个数
+ public NET_RELATING_VIDEO_INFO[] stuRelatingVideoInfo = new NET_RELATING_VIDEO_INFO[16]; // 违章关联的多个视频信息数组,最多支持16个视频
+ public byte[] bReserved = new byte[736]; // 保留字节,留待扩展.
+
+ public DEV_EVENT_LANEDEPARTURE_WARNNING_INFO() {
+ for (int i = 0; i < stuRelatingVideoInfo.length; i++) {
+ stuRelatingVideoInfo[i] = new NET_RELATING_VIDEO_INFO();
+ }
+ }
+ }
+
+ //图片路径类型
+ public static class NET_PICTURE_PATH_TYPE extends SdkStructure
+ {
+ public static final int NET_PATH_LOCAL_PATH = 0; // 本地硬盘或者sd卡成功写入路径
+ public static final int NET_PATH_FTP_PATH = 1; // 设备成功写到ftp服务器的路径
+ public static final int NET_PATH_VIDEO_PATH = 2; // 当前接入需要获取当前违章的关联视频的FTP上传路径
+ }
+
+ public static class NET_RESERVED_PATH extends SdkStructure
+ {
+ public int nMaxPathNum; // 图片路径总数,为0时采用设备默认路径
+ public int[] emPictruePaths = new int[MAX_PIC_PATH_NUM]; // 图片路径类型,详见NET_PICTURE_PATH_TYPE
+ }
+
+ //离线传输参数
+ public static class NET_OFFLINE_PARAM extends SdkStructure
+ {
+ public byte[] szClientID = new byte[20]; // 客户端mac地址,冒号分隔形式
+ public byte[] byReserved = new byte[108]; // 保留
+ }
+
+ public static class NET_RESERVED_COMMON extends SdkStructure
+ {
+ public int dwStructSize;
+ public Pointer pIntelBox; // 兼容RESERVED_TYPE_FOR_INTEL_BOX,指向ReservedDataIntelBox
+ public int dwSnapFlagMask; // 抓图标志(按位),0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ public Pointer pstuOfflineParam; // 离线传输参数,指向NET_OFFLINE_PARAM
+ public Pointer pstuPath; // 兼容RESERVED_TYPE_FOR_PATH,指向NET_RESERVED_PATH
+ public int emPathMode; // 返回的图片存储路径模式,对应枚举EM_PATH_MODE
+ /**
+ * 对应结构体{@link EM_FILTER_IMAGE_TYPE}
+ */
+ public Pointer pImageType; // 返回的图片类型, 由用户申请释放
+ public int nImageTypeNum; // pImageType 有效个数
+ public int bFlagCustomInfo; // szCustomInfo 标志位 TRUE时 使用szCustomInfo字段
+ public byte[] szCustomInfo = new byte[512]; // 客户自定义信息 customInfo是getFiltercaps中能力对应的订阅参数的格式化字符串表示,字符串格式为:订阅参数以&分隔,订阅参数的名字和值用=连接
+ public int bSetEventsType; // 是否设置事件类型
+ public int nVOLayer; // 视频输出口图层, 0:未知 1:视频层 2:GUI层 3:动态跑马显示
+ public int emOrder; // 设备给客户端传离线图片需要按照的顺序,如果是倒序上传:越晚产生的优先上传,越早产生的后传,参考枚举EM_EVENT_ORDER
+
+ public NET_RESERVED_COMMON()
+ {
+ this.dwStructSize = this.size();
+ }
+ }
+
+ // 事件类型EVENT_IVS_TRAFFIC_DRIVER_SMOKING (驾驶员抽烟事件)对应的数据块描述信息
+ public static class DEV_EVENT_TRAFFIC_DRIVER_SMOKING extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[NET_EVENT_NAME_LEN]; // 事件名称
+ public int nTriggerType; // TriggerType:触发类型,0车检器,1雷达,2视频
+ public int PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
+ public byte byEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束; BYTE byReserved1[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public byte[] byReserved1 = new byte[2];
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public int nLane; // 对应车道号
+ public int nMark; // 底层产生的触发抓拍帧标记
+ public int nFrameSequence; // 视频分析帧序号
+ public int nSource; // 视频分析的数据源地址
+ public NET_MSG_OBJECT stuObject; // 检测到的物体
+ public NET_MSG_OBJECT stuVehicle; // 车身信息
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
+ public int nSpeed; // 车辆实际速度,Km/h
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
+ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
+ public EVENT_COMM_INFO stCommInfo; // 公共信息
+ public NET_GPS_INFO stuGPSInfo; // GPS信息
+ public byte[] szDriverID = new byte[32]; // 司机ID
+ public int nRelatingVideoInfoNum; // 违章关联的多个视频信息个数
+ public NET_RELATING_VIDEO_INFO[] stuRelatingVideoInfo = new NET_RELATING_VIDEO_INFO[16]; // 违章关联的多个视频信息数组,最多支持16个视频
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public Pointer pstuImageInfo; //图片信息数组,参见结构体定义 {@link com.netsdk.lib.structure.NET_IMAGE_INFO_EX3}
+ public int nImageInfoNum; //图片信息个数
+ public Pointer pstuSceneImage; //全景图,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.SCENE_IMAGE_INFO_EX}
+ public byte[] byReserved = new byte[948-2*POINTERSIZE]; // 保留字节
+ }
+
+ // 事件类型EVENT_IVS_TRAFFIC_DRIVER_CALLING(驾驶员打电话事件)对应的数据块描述信息
+ public static class DEV_EVENT_TRAFFIC_DRIVER_CALLING extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[NET_EVENT_NAME_LEN]; // 事件名称
+ public int nTriggerType; // TriggerType:触发类型,0车检器,1雷达,2视频
+ public int PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
+ public byte byEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束; BYTE byReserved1[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public byte[] byReserved1 = new byte[2];
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public int nLane; // 对应车道号
+ public int nMark; // 底层产生的触发抓拍帧标记
+ public int nFrameSequence; // 视频分析帧序号
+ public int nSource; // 视频分析的数据源地址
+ public NET_MSG_OBJECT stuObject; // 检测到的物体
+ public NET_MSG_OBJECT stuVehicle; // 车身信息
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
+ public int nSpeed; // 车辆实际速度,Km/h
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
+ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
+ public EVENT_COMM_INFO stCommInfo; // 公共信息
+ public NET_GPS_INFO stuGPSInfo; // GPS信息
+ public byte[] szDriverID = new byte[32]; // 司机ID
+ public int nRelatingVideoInfoNum; // 违章关联的多个视频信息个数
+ public NET_RELATING_VIDEO_INFO[] stuRelatingVideoInfo = new NET_RELATING_VIDEO_INFO[16]; // 违章关联的多个视频信息数组,最多支持16个视频
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public Pointer pstuImageInfo; //图片信息数组,参见结构体定义 {@link com.netsdk.lib.structure.NET_IMAGE_INFO_EX3}
+ public int nImageInfoNum; //图片信息个数
+ public Pointer pstuSceneImage; //全景图图片信息,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.SCENE_IMAGE_INFO_EX}
+ public byte[] byReserved = new byte[948-POINTERSIZE*2]; // 保留字节
+
+ public DEV_EVENT_TRAFFIC_DRIVER_CALLING() {
+ for (int i = 0; i < stuRelatingVideoInfo.length; i++) {
+ stuRelatingVideoInfo[i] = new NET_RELATING_VIDEO_INFO();
+ }
+ }
+ }
+
+ // 事件类型EVENT_IVS_TRAFFIC_DRIVERLOOKAROUND(开车左顾右盼报警事件)对应的数据块描述信息
+ public static class DEV_EVENT_DRIVERLOOKAROUND_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[NET_EVENT_NAME_LEN]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
+ public byte[] szDriverID = new byte[32]; // 司机ID
+ public byte[] szVideoPath = new byte[256]; // 违章关联视频FTP上传路径
+ public int nRelatingVideoInfoNum; // 违章关联的多个视频信息个数
+ public NET_RELATING_VIDEO_INFO[] stuRelatingVideoInfo = new NET_RELATING_VIDEO_INFO[16]; // 违章关联的多个视频信息数组,最多支持16个视频
+ public byte[] bReserved = new byte[736]; // 保留字节,留待扩展.
+
+ public DEV_EVENT_DRIVERLOOKAROUND_INFO() {
+ for (int i = 0; i < stuRelatingVideoInfo.length; i++) {
+ stuRelatingVideoInfo[i] = new NET_RELATING_VIDEO_INFO();
+ }
+ }
+ }
+
+ // 进站离站状态
+ public static class NET_BUS_STATE extends SdkStructure
+ {
+ public static final int NET_BUS_STATE_UNKNOWN = 0; // 未知
+ public static final int NET_BUS_STATE_ILLEGAL = 1; // 非法
+ public static final int NET_BUS_STATE_LEGAL = 2; // 合法
+ }
+
+ // 报警事件类型NET_ALARM_ENCLOSURE_ALARM(电子围栏事件)对应的数据描述信息
+ public static class ALARM_ENCLOSURE_ALARM_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public int dwAlarmType; // 报警类型, 按位分别表示,
+ // 0:LimitSpeed, 1:DriveAllow, 2:ForbidDrive, 3:LoadGoods, 4:UploadGoods
+ public int dwAlarmDetail; // 报警描述, 按位分别表示,
+ // 0:DriveIn, 1:DriveOut, 2:Overspeed, 3:SpeedClear
+ public int emState; // 是否按规定时间触发事件,详见NET_BUS_STATE
+ public int dwDriverNo; // 司机编号
+ public int dwEnclosureID; // 围栏ID
+ public int dwLimitSpeed; // 限速
+ public int dwCurrentSpeed; // 当前速度
+ public NET_TIME_EX stuTime; // 当前时间
+ public NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
+ public int bRealUTC; //stuRealUTC 是否有效,bRealUTC 为 TRUE 时,用 stuRealUTC,否则用 stuTime 字段
+ public NET_TIME_EX stuRealUTC = new NET_TIME_EX(); //事件发生的时间(标准UTC时间),参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME_EX}
+
+ public ALARM_ENCLOSURE_ALARM_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ public static class DEV_SET_RESULT extends SdkStructure
+ {
+ public int dwType; // 类型(即GetDevConfig和SetDevConfig的类型)
+ public short wResultCode; // 返回码;0:成功,1:失败,2:数据不合法,3:暂时无法设置,4:没有权限
+ public short wRebootSign; // 重启标志;0:不需要重启,1:需要重启才生效
+ public int[] dwReserved = new int[2]; // 保留
+ }
+
+ // ALARM_ENCLOSURE_INFO
+ // 电子围栏报警
+ public static class ALARM_ENCLOSURE_INFO extends SdkStructure
+ {
+ public int nTypeNumber; // 有效电子围栏类型个数
+ public byte[] bType = new byte[16]; // 电子围栏类型, 见 ENCLOSURE_TYPE
+ public int nAlarmTypeNumber; // 有效报警类型个数
+ public byte[] bAlarmType = new byte[16]; // 报警类型,见ENCLOSURE_ALARM_TYPE
+ public byte[] szDriverId = new byte[32]; // 司机工号
+ public int unEnclosureId; // 电子围栏ID
+ public int unLimitSpeed; // 限速,单位km/h
+ public int unCurrentSpeed; // 当前速度
+ public NET_TIME stAlarmTime; // 报警发生时间
+ public int dwLongitude; // 经度(单位是百万分之度,范围0-360度)如东经120.178274度表示为300178274
+ public int dwLatidude; // 纬度(单位是百万分之度,范围0-180度)如北纬30.183382度表示为12018338
+ // 经纬度的具体转换方式可以参考结构体 NET_WIFI_GPS_INFO 中的注释
+ public byte bOffline; // 0-实时 1-补传
+ public byte[] reserve = new byte[3]; // 字节对齐
+ public int unTriggerCount; // 围栏触发次数
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public int bIsAlarmEnclosureInfoEx; // 该值为TRUE时应使用 ALARM_ENCLOSURE_INFO_EX 结构体中字段
+ public ALARM_ENCLOSURE_INFO_EX stuAlarmEnclosureInfoEx = new ALARM_ENCLOSURE_INFO_EX(); // 当走三代事件时数据存在该结构体
+ public byte[] byReserved = new byte[128]; // 保留字节
+ }
+
+ // NETDEV_3GFLOW_EXCEED_STATE_INFO
+ // 3G流量超出阈值状态信息
+ public static class NETDEV_3GFLOW_EXCEED_STATE_INFO extends SdkStructure
+ {
+ public byte bState; // 3G流量超出阈值状态,0表示未超出阀值,1表示超出阀值
+ public byte[] reserve1 = new byte[3]; // 字节对齐
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public byte[] reserve = new byte[32]; // 保留字节
+ }
+
+ // 飞行器类型
+ public static class ENUM_UAV_TYPE extends SdkStructure
+ {
+ public static final int ENUM_UAV_TYPE_GENERIC = 0; // 通用
+ public static final int ENUM_UAV_TYPE_FIXED_WING = 1; // 固定翼
+ public static final int ENUM_UAV_TYPE_QUADROTOR = 2; // 四轴
+ public static final int ENUM_UAV_TYPE_COAXIAL = 3; // 共轴
+ public static final int ENUM_UAV_TYPE_HELICOPTER = 4; // 直机
+ public static final int ENUM_UAV_TYPE_ANTENNA_TRACKER = 5; // 地面跟踪天线
+ public static final int ENUM_UAV_TYPE_GCS = 6; // 地面站
+ public static final int ENUM_UAV_TYPE_AIRSHIP = 7; // 有控飞艇
+ public static final int ENUM_UAV_TYPE_FREE_BALLOON = 8; // 自由飞气球
+ public static final int ENUM_UAV_TYPE_ROCKET = 9; // 火箭
+ public static final int ENUM_UAV_TYPE_GROUND_ROVER = 10; // 地面车辆
+ public static final int ENUM_UAV_TYPE_SURFACE_BOAT = 11; // 水面船艇
+ public static final int ENUM_UAV_TYPE_SUBMARINE = 12; // 潜艇
+ public static final int ENUM_UAV_TYPE_HEXAROTOR = 13; // 六轴
+ public static final int ENUM_UAV_TYPE_OCTOROTOR = 14; // 八轴
+ public static final int ENUM_UAV_TYPE_TRICOPTER = 15; // 三轴
+ public static final int ENUM_UAV_TYPE_FLAPPING_WING = 16; // 扑翼机
+ public static final int ENUM_UAV_TYPE_KITE = 17; // 风筝
+ public static final int ENUM_UAV_TYPE_ONBOARD_CONTROLLER = 18; // 控制器
+ public static final int ENUM_UAV_TYPE_VTOL_DUOROTOR = 19; // 两翼VTOL
+ public static final int ENUM_UAV_TYPE_VTOL_QUADROTOR = 20; // 四翼VTOL
+ public static final int ENUM_UAV_TYPE_VTOL_TILTROTOR = 21; // 倾转旋翼机
+ public static final int ENUM_UAV_TYPE_VTOL_RESERVED2 = 22; // VTOL 保留2
+ public static final int ENUM_UAV_TYPE_VTOL_RESERVED3 = 23; // VTOL 保留3
+ public static final int ENUM_UAV_TYPE_VTOL_RESERVED4 = 24; // VTOL 保留4
+ public static final int ENUM_UAV_TYPE_VTOL_RESERVED5 = 25; // VTOL 保留5
+ public static final int ENUM_UAV_TYPE_GIMBAL = 26; // 常平架
+ public static final int ENUM_UAV_TYPE_ADSB = 27; // ADSB
+ }
+
+ // 飞行器模式
+ public static class ENUM_UAV_MODE extends SdkStructure
+ {
+ public static final int ENUM_UAV_MODE_UNKNOWN = 0; // 未知模式
+ public static final int ENUM_UAV_MODE_FIXED_WING_MANUAL = 0; // 固定翼 手动模式
+ public static final int ENUM_UAV_MODE_FIXED_WING_CIRCLE = 1; // 固定翼 绕圈模式
+ public static final int ENUM_UAV_MODE_FIXED_WING_STABILIZE = 2; // 固定翼 自稳模式
+ public static final int ENUM_UAV_MODE_FIXED_WING_TRAINING = 3; // 固定翼 训练模式
+ public static final int ENUM_UAV_MODE_FIXED_WING_ACRO = 4; // 固定翼 特技模式
+ public static final int ENUM_UAV_MODE_FIXED_WING_FLY_BY_WIRE_A = 5; // 固定翼 A翼飞行模式
+ public static final int ENUM_UAV_MODE_FIXED_WING_FLY_BY_WIRE_B = 6; // 固定翼 B翼飞行模式
+ public static final int ENUM_UAV_MODE_FIXED_WING_CRUISE = 7; // 固定翼 巡航模式
+ public static final int ENUM_UAV_MODE_FIXED_WING_AUTOTUNE = 8; // 固定翼 自动统调
+ public static final int ENUM_UAV_MODE_FIXED_WING_AUTO = 10; // 固定翼 智能模式
+ public static final int ENUM_UAV_MODE_FIXED_WING_RTL = 11; // 固定翼 返航模式
+ public static final int ENUM_UAV_MODE_FIXED_WING_LOITER = 12; // 固定翼 定点模式
+ public static final int ENUM_UAV_MODE_FIXED_WING_GUIDED = 15; // 固定翼 引导模式
+ public static final int ENUM_UAV_MODE_QUADROTOR_STABILIZE = 100; // 四轴 自稳模式
+ public static final int ENUM_UAV_MODE_QUADROTOR_ACRO = 101; // 四轴 特技模式
+ public static final int ENUM_UAV_MODE_QUADROTOR_ALT_HOLD = 102; // 四轴 定高模式
+ public static final int ENUM_UAV_MODE_QUADROTOR_AUTO = 103; // 四轴 智能模式
+ public static final int ENUM_UAV_MODE_QUADROTOR_GUIDED = 104; // 四轴 引导模式
+ public static final int ENUM_UAV_MODE_QUADROTOR_LOITER = 105; // 四轴 定点模式
+ public static final int ENUM_UAV_MODE_QUADROTOR_RTL = 106; // 四轴 返航模式
+ public static final int ENUM_UAV_MODE_QUADROTOR_CIRCLE = 107; // 四轴 绕圈模式
+ public static final int ENUM_UAV_MODE_QUADROTOR_LAND = 109; // 四轴 降落模式
+ public static final int ENUM_UAV_MODE_QUADROTOR_OF_LOITER = 110; // 四轴 启用光流的悬停模式需要光流传感器来保持位置和高度
+ public static final int ENUM_UAV_MODE_QUADROTOR_TOY = 111; // 四轴 飘移模式
+ public static final int ENUM_UAV_MODE_QUADROTOR_SPORT = 113; // 四轴 运动模式
+ public static final int ENUM_UAV_MODE_QUADROTOR_AUTOTUNE = 115; // 四轴 自动统调
+ public static final int ENUM_UAV_MODE_QUADROTOR_POSHOLD = 116; // 四轴 保持模式
+ public static final int ENUM_UAV_MODE_QUADROTOR_BRAKE = 117; // 四轴 制动模式
+ public static final int ENUM_UAV_MODE_GROUND_ROVER_MANUAL = 200; // 地面车辆 手动模式
+ public static final int ENUM_UAV_MODE_GROUND_ROVER_LEARNING = 202; // 地面车辆 学习模式
+ public static final int ENUM_UAV_MODE_GROUND_ROVER_STEERING = 203; // 地面车辆 驾驶模式
+ public static final int ENUM_UAV_MODE_GROUND_ROVER_HOLD = 204; // 地面车辆 锁定模式
+ public static final int ENUM_UAV_MODE_GROUND_ROVER_AUTO = 210; // 地面车辆 智能模式
+ public static final int ENUM_UAV_MODE_GROUND_ROVER_RTL = 211; // 地面车辆 返航模式
+ public static final int ENUM_UAV_MODE_GROUND_ROVER_GUIDED = 215; // 地面车辆 引导模式
+ public static final int ENUM_UAV_MODE_GROUND_ROVER_INITIALIZING = 216; // 地面车辆 初始化模式
+ public static final int ENUM_UAV_MODE_HEXAROTOR_STABILIZE = 300; // 六轴 自稳模式
+ public static final int ENUM_UAV_MODE_HEXAROTOR_ACRO = 301; // 六轴 特技模式
+ public static final int ENUM_UAV_MODE_HEXAROTOR_ALT_HOLD = 302; // 六轴 定高模式
+ public static final int ENUM_UAV_MODE_HEXAROTOR_AUTO = 303; // 六轴 智能模式
+ public static final int ENUM_UAV_MODE_HEXAROTOR_GUIDED = 304; // 六轴 引导模式
+ public static final int ENUM_UAV_MODE_HEXAROTOR_LOITER = 305; // 六轴 定点模式
+ public static final int ENUM_UAV_MODE_HEXAROTOR_RTL = 306; // 六轴 返航模式
+ public static final int ENUM_UAV_MODE_HEXAROTOR_CIRCLE = 307; // 六轴 绕圈模式
+ public static final int ENUM_UAV_MODE_HEXAROTOR_LAND = 309; // 六轴 降落模式
+ public static final int ENUM_UAV_MODE_HEXAROTOR_OF_LOITER = 310; // 六轴 启用光流的悬停模式需要光流传感器来保持位置和高度
+ public static final int ENUM_UAV_MODE_HEXAROTOR_DRIFT = 311; // 六轴 飘移模式
+ public static final int ENUM_UAV_MODE_HEXAROTOR_SPORT = 313; // 六轴 运动模式
+ public static final int ENUM_UAV_MODE_HEXAROTOR_AUTOTUNE = 315; // 六轴 自动统调
+ public static final int ENUM_UAV_MODE_HEXAROTOR_POSHOLD = 316; // 六轴 保持模式
+ public static final int ENUM_UAV_MODE_HEXAROTOR_BRAKE = 317; // 六轴 制动模式
+ }
+
+ // 无人机系统状态
+ public static class ENUM_UAV_STATE extends SdkStructure
+ {
+ public static final int ENUM_UAV_STATE_UNINIT = 0; // 未初始化, 状态未知
+ public static final int ENUM_UAV_STATE_BOOT = 1; // 正在启动
+ public static final int ENUM_UAV_STATE_CALIBRATING = 2; // 正在校准,未准备好起飞.
+ public static final int ENUM_UAV_STATE_STANDBY = 3; // 系统地面待命,随时可以起飞.
+ public static final int ENUM_UAV_STATE_ACTIVE = 4; // 开车/开航. 发动机已经启动.
+ public static final int ENUM_UAV_STATE_CRITICAL = 5; // 系统处于失常飞行状态,仍能导航.
+ public static final int ENUM_UAV_STATE_EMERGENCY = 6; // 系统处于失常飞行状态,若干设备失灵,坠落状态.
+ public static final int ENUM_UAV_STATE_POWEROFF = 7; // 系统刚执行了关机指令,正在关闭.
+ }
+
+ // UAV 系统当前模式
+ public static class NET_UAV_SYS_MODE_STATE extends SdkStructure
+ {
+ public int bSafetyArmedEnabled; // 主发动机使能, 准备好起飞.
+ public int bManualInputEnabled; // 遥控输入信号使能.
+ public int bHILEnabled; // HIL硬件环在线模拟使能.所有发动机, 舵机及其他动作设备阻断, 但内部软件处于全部可操作状态.
+ public int bStabilizeEnabled; // 高度/位置电子增稳使能.在此状态下,飞行器仍需要外部操作指令以实现操作
+ public int bGuidedEnabled; // 导航使能.导航数据和指令来自导航/航点指令表文件
+ public int bAutoEnabled; // 全自主航行模式使能.系统自行决定目的地.前一项“导航使能”可以设置为TURE或FLASE状态
+ public int bTestEnabled; // 测试模式使能.本标识仅供临时的系统测试之用,不应该用于实际航行的应用中.
+ public int bReserved; // 保留模式
+ }
+
+ // 心跳状态信息
+ public static class NET_UAV_HEARTBEAT extends SdkStructure
+ {
+ public int emUAVMode; // 飞行模式和飞行器形态类型相关,详见ENUM_UAV_MODE
+ public int emUAVType; // 飞行器形态类型,详见ENUM_UAV_TYPE
+ public int emSystemStatus; // 系统状态,详见ENUM_UAV_STATE
+ public NET_UAV_SYS_MODE_STATE stuBaseMode; // 系统当前模式
+ public byte[] byReserved = new byte[8]; // 保留字节
+ }
+
+ // 传感器
+ public static class ENUM_UAV_SENSOR extends SdkStructure
+ {
+ public static final int ENUM_UAV_SENSOR_UNKNOWN = 0; // 未知类型
+ public static final int ENUM_UAV_SENSOR_3D_GYRO = 1; // 三轴陀螺
+ public static final int ENUM_UAV_SENSOR_3D_ACCEL = 2; // 三轴加速度/倾角仪
+ public static final int ENUM_UAV_SENSOR_3D_MAG = 3; // 三轴磁罗盘
+ public static final int ENUM_UAV_SENSOR_ABSOLUTE_PRESSURE = 4; // 绝对气压计
+ public static final int ENUM_UAV_SENSOR_DIFFERENTIAL_PRESSURE = 5; // 相对气压计
+ public static final int ENUM_UAV_SENSOR_GPS = 6; // GPS
+ public static final int ENUM_UAV_SENSOR_OPTICAL_FLOW = 7; // 光测设备
+ public static final int ENUM_UAV_SENSOR_VISION_POSITION = 8; // 计算机视觉定位仪
+ public static final int ENUM_UAV_SENSOR_LASER_POSITION = 9; // 激光定位
+ public static final int ENUM_UAV_SENSOR_EXTERNAL_GROUND_TRUTH = 10; // 外部激光定位(Vicon 或徕卡)
+ public static final int ENUM_UAV_SENSOR_ANGULAR_RATE_CONTROL = 11; // 三轴角速度控制器
+ public static final int ENUM_UAV_SENSOR_ATTITUDE_STABILIZATION = 12; // 高度稳定器
+ public static final int ENUM_UAV_SENSOR_YAW_POSITION = 13; // 方向稳定器(锁尾等)
+ public static final int ENUM_UAV_SENSOR_Z_ALTITUDE_CONTROL = 14; // 高度控制器
+ public static final int ENUM_UAV_SENSOR_XY_POSITION_CONTROL = 15; // X/Y位置控制器
+ public static final int ENUM_UAV_SENSOR_MOTOR_OUTPUTS = 16; // 马达输出控制器
+ public static final int ENUM_UAV_SENSOR_RC_RECEIVER = 17; // RC 接收器
+ public static final int ENUM_UAV_SENSOR_3D_GYRO2 = 18; // 2nd 三轴陀螺
+ public static final int ENUM_UAV_SENSOR_3D_ACCEL2 = 19; // 2nd 三轴加速度/倾角仪
+ public static final int ENUM_UAV_SENSOR_3D_MAG2 = 20; // 2nd 三轴磁罗盘
+ public static final int ENUM_UAV_GEOFENCE = 21; // 地理围栏
+ public static final int ENUM_UAV_AHRS = 22; // 姿态子系统运行状况
+ public static final int ENUM_UAV_TERRAIN = 23; // 地形子系统运行状况
+ public static final int ENUM_UAV_REVERSE_MOTOR = 24; // 保留马达
+ }
+
+ // 传感器信息
+ public static class NET_UAV_SENSOR extends SdkStructure
+ {
+ public int emType; // 传感器类型,详见ENUM_UAV_SENSOR
+ public int bEnabled; // 使能状态
+ public int bHealthy; // 传感器状态
+ }
+
+ // 系统状态信息
+ public static class NET_UAV_SYS_STATUS extends SdkStructure
+ {
+ public int nPresentSensorNum; // 可见传感器个数, 最大支持32
+ public NET_UAV_SENSOR[] stuSensors = new NET_UAV_SENSOR[UAV_MAX_SENSOR_NUM]; // 传感器信息
+ public int nBatteryVoltage; // 电池电压, 单位: 毫伏
+ public int nBatteryCurrent; // 电池电流, 单位: 10毫安
+ public int nChargeDischargeNum; // 电池充放电次数
+ public int nHomeDistance; // 距离Home的距离, 单位: 米
+ public int nRemainingFlightTime; // 剩余飞行时间, 单位: 秒
+ public int nRemainingBattery; // 剩余电量百分比 -1: 正在估测剩余电量
+ public byte[] byReserverd = new byte[16]; // 保留字节
+
+ public NET_UAV_SYS_STATUS()
+ {
+ for (int i = 0; i < stuSensors.length; ++i) {
+ stuSensors[i] = new NET_UAV_SENSOR();
+ }
+ }
+ }
+
+ // 卫星信息
+ public static class NET_SATELLITE_STATUS extends SdkStructure
+ {
+ public int bUsed; // 卫星使用状态 FLASE: 未使用 TURE: 使用
+ public int nID; // 卫星ID
+ public int nElevation; // 卫星在天空中的仰角 单位: 度
+ public int nDireciton; // 卫星方位角 单位: 度
+ public int nSNR; // 信噪比, 信号强度百分比
+ }
+
+ // GPS 可见卫星的状态信息
+ public static class NET_UAV_GPS_STATUS extends SdkStructure
+ {
+ public int nVisibleNum; // 可见卫星个数, 最多支持20个
+ public NET_SATELLITE_STATUS[] stuSatellites = new NET_SATELLITE_STATUS[UAV_MAX_SATELLITE_NUM]; // 卫星信息
+
+ public NET_UAV_GPS_STATUS()
+ {
+ for (int i = 0; i < stuSatellites.length; ++i) {
+ stuSatellites[i] = new NET_SATELLITE_STATUS();
+ }
+ }
+ }
+
+ // 姿态信息
+ public static class NET_UAV_ATTITUDE extends SdkStructure
+ {
+ public float fRollAngle; // 滚转角, 单位: 度
+ public float fPitchAngle; // 俯仰角, 单位: 度
+ public float fYawAngle; // 偏航角, 单位: 度
+ public byte[] bReserved = new byte[16]; // 保留字节
+ }
+
+ // 遥控通道信息
+ public static class NET_UAV_RC_CHANNELS extends SdkStructure
+ {
+ public int nControllerSignal; // 遥控器信号百分比, 255: 非法未知
+ public byte[] byReserved = new byte[80]; // 保留字节
+ }
+
+ // 平视显示信息
+ public static class NET_UAV_VFR_HUD extends SdkStructure
+ {
+ public float fGroundSpeed; // 水平速度, 单位: 米/秒
+ public float fAltitude; // 高度, 单位: 米
+ public float fClimbSpeed; // 垂直速度, 单位: 米/秒
+ public byte[] byReserved = new byte[12];
+ }
+
+ // 故障等级
+ public static class ENUM_UAV_SEVERITY extends SdkStructure
+ {
+ public static final int ENUM_UAV_SEVERITY_EMERGENCY = 0; // 系统不可用, 最紧急状态
+ public static final int ENUM_UAV_SEVERITY_ALERT = 1; // 警报. 非致命性系统故障, 应立即应对.
+ public static final int ENUM_UAV_SEVERITY_CRITICAL = 2; // 警报: 主要系统故障, 应立即应对
+ public static final int ENUM_UAV_SEVERITY_ERROR = 3; // 故障: 次系统故障/备份系统故障
+ public static final int ENUM_UAV_SEVERITY_WARNING = 4; // 警告
+ public static final int ENUM_UAV_SEVERITY_NOTICE = 5; // 注意: 出现失常现象, 单非错误故障. 应该排查其现象根源
+ public static final int ENUM_UAV_SEVERITY_INFO = 6; // 提示: 一般性操作消息, 可用于日志. 此消息不需要应对行动
+ public static final int ENUM_UAV_SEVERITY_DEBUG = 7; // 调试信息。正常操作的时候不该出现
+ }
+
+ // 报警文本信息
+ public static class NET_UAV_STATUSTEXT extends SdkStructure
+ {
+ public int emSeverity; // 故障等级,详见ENUM_UAV_SEVERITY
+ public byte[] szText = new byte[60]; // 文本信息
+ public byte[] byReserved = new byte[4]; // 保留字节
+ }
+
+ // 全球定位数据
+ public static class NET_UAV_GLOBAL_POSITION extends SdkStructure
+ {
+ public float fLatitude; // 纬度, 单位: 角度
+ public float fLongitude; // 经度, 单位: 角度
+ public int nAltitude; // 海拔高度, 单位: 厘米
+ public int nRelativeAltitude; // 相对高度, 单位: 厘米
+ public int nXSpeed; // X速度(绝对速度、北东地坐标系), 单位: 厘米每秒
+ public int nYSpeed; // Y速度(绝对速度、北东地坐标系), 单位: 厘米每秒
+ public int nZSpeed; // Z速度(绝对速度、北东地坐标系), 单位: 厘米每秒
+ public byte[] byReserved = new byte[12];
+ }
+
+ // GPS原始数据
+ public static class NET_UAV_GPS_RAW extends SdkStructure
+ {
+ public int nDHOP; // GPS水平定位经度因子, 单位厘米. 65535 表示未知
+ public int nGroudSpeed; // GPS地速, 厘米每秒. 65535 表示未知
+ public int nVisibleStatellites; // 卫星数, 255 表示未知
+ public int nVDOP; // GPS 垂直定位因子,单位厘米。65535表示未知
+ public int nCourseOverGround; // 整体移动方向, 非机头移动方向. 单位: 100*度
+ public int nFixType; // 定位类型. 0 或 1 尚未定位, 2: 2D 定位, 3: 3D 定位
+ public byte[] byReserved = new byte[20];
+ }
+
+ // 系统时间
+ public static class NET_UAV_SYS_TIME extends SdkStructure
+ {
+ public NET_TIME_EX UTC; // UTC 时间
+ public int dwBootTime; // 启动时间, 单位毫秒
+ }
+
+ // 当前航点
+ public static class NET_UAV_MISSION_CURRENT extends SdkStructure
+ {
+ public int nSequence; // 序号 0 ~ 700
+ public byte[] byReserved = new byte[16]; // 保留字节
+ }
+
+ // 到达航点
+ public static class NET_UAV_MISSION_REACHED extends SdkStructure
+ {
+ public int nSequence; // 序号 0 ~ 700
+ public byte[] byReserved = new byte[16]; // 保留字节
+ }
+
+ // 云台姿态
+ public static class NET_UAV_MOUNT_STATUS extends SdkStructure
+ {
+ public float fRollAngle; // 滚转角, 单位: 度
+ public float fPitchAngle; // 俯仰角, 单位: 度
+ public float fYawAngle; // 偏航角, 单位: 度
+ public int nTargetSystem; // 目标系统
+ public int nTargetComponent; // 目标部件
+ public int nMountMode; // 云台模式, 参照 NET_UAVCMD_MOUNT_CONFIGURE
+ public byte[] byReserved = new byte[8]; // 保留字节
+ }
+
+ // Home点位置信息
+ public static class NET_UAV_HOME_POSITION extends SdkStructure
+ {
+ public float fLatitude; // 纬度, 单位: 角度
+ public float fLongitude; // 经度, 单位: 角度
+ public int nAltitude; // 海拔高度, 单位: 厘米
+ public float fLocalX; // X 点
+ public float fLocalY; // Y 点
+ public float fLocalZ; // Z 点
+ public float fApproachX; // 本地 x 矢量点
+ public float fApproachY;
+ public float fApproachZ;
+ public byte[] byReserved = new byte[16];
+ }
+
+ // 无人机实时消息类型
+ public static class EM_UAVINFO_TYPE extends SdkStructure
+ {
+ public static final int EM_UAVINFO_TYPE_UNKNOWN = 0; // 未知类型
+ public static final int EM_UAVINFO_TYPE_HEARTBEAT = 1; // 心跳状态 *pInfo = NET_UAV_HEARTBEAT
+ public static final int EM_UAVINFO_TYPE_SYS_STATUS = 2; // 系统状态 *pInfo = NET_UAV_SYS_STATUS
+ public static final int EM_UAVINFO_TYPE_GPS_STATUS = 3; // GPS状态 *pInfo = NET_UAV_GPS_STATUS
+ public static final int EM_UAVINFO_TYPE_ATTITUDE = 4; // 姿态信息 *pInfo = NET_UAV_ATTITUDE
+ public static final int EM_UAVINFO_TYPE_RC_CHANNELS = 5; // 遥控通道信息 *pInfo = NET_UAV_RC_CHANNELS
+ public static final int EM_UAVINFO_TYPE_VFR_HUD = 6; // 平视显示信息 *pInfo = NET_UAV_VFR_HUD
+ public static final int EM_UAVINFO_TYPE_STATUSTEXT = 7; // 报警文本信息 *pInfo = NET_UAV_STATUSTEXT
+ public static final int EM_UAVINFO_TYPE_GLOBAL_POSITION = 8; // 全球定位数据 *pInfo = NET_UAV_GLOBAL_POSITION
+ public static final int EM_UAVINFO_TYPE_GPS_RAW = 9; // GPS原始数据 *pInfo = NET_UAV_GPS_RAW
+ public static final int EM_UAVINFO_TYPE_SYS_TIME = 10; // 系统时间 *pInfo = NET_UAV_SYS_TIME
+ public static final int EM_UAVINFO_TYPE_MISSION_CURRENT = 11; // 当前航点 *pInfo = NET_UAV_MISSION_CURRENT
+ public static final int EM_UAVINFO_TYPE_MOUNT_STATUS = 12; // 云台姿态 *pInfo = NET_UAV_MOUNT_STATUS
+ public static final int EM_UAVINFO_TYPE_HOME_POSITION = 13; // Home点位置信息 *pInfo = NET_UAV_HOME_POSITION
+ public static final int EM_UAVINFO_TYPE_MISSION_REACHED = 14; // 到达航点 *pInfo = NET_UAV_MISSION_REACHED
+ }
+
+ // 无人机实时回调数据
+ public static class NET_UAVINFO extends SdkStructure
+ {
+ public int emType; // 消息类型,详见EM_UAVINFO_TYPE
+ public Pointer pInfo; // 消息内容,指向void
+ public int dwInfoSize; // 消息大小
+ public byte[] byReserved = new byte[512]; // 保留字节
+ }
+
+ // 无人机实时数据回调
+ public interface fUAVInfoCallBack extends Callback {
+ public void invoke(LLong lAttachHandle,NET_UAVINFO pstuUAVInfo,int dwUAVInfoSize,Pointer dwUser);
+ }
+
+ // 订阅无人机实时消息入参
+ public static class NET_IN_ATTACH_UAVINFO extends SdkStructure
+ {
+ public int dwSize;
+ public Callback cbNotify; // 实时回调函数,实现fUAVInfoCallBack
+ public Pointer dwUser; // 用户信息
+
+ public NET_IN_ATTACH_UAVINFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 订阅无人机实时消息入参
+ public static class NET_OUT_ATTACH_UAVINFO extends SdkStructure
+ {
+ public int dwSize;
+
+ public NET_OUT_ATTACH_UAVINFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 无人机通用设置命令类型 结构体大小与 NET_UAVCMD_PARAM_BUFFER 保持一致
+ public static class ENUM_UAVCMD_TYPE extends SdkStructure
+ {
+ public static final int ENUM_UAVCMD_UNKNOWN = -1;
+ public static final int ENUM_UAVCMD_NAV_TAKEOFF = 0; // 地面起飞或手抛起飞 NET_UAVCMD_TAKEOFF
+ public static final int ENUM_UAVCMD_NAV_LOITER_UNLIM = 1; // 悬停 NET_UAVCMD_LOITER_UNLIMITED
+ public static final int ENUM_UAVCMD_NAV_RETURN_TO_LAUNCH = 2; // 返航降落 NET_UAVCMD_RETURN_TO_LAUNCH
+ public static final int ENUM_UAVCMD_NAV_LAND = 3; // 设定点着陆 NET_UAVCMD_LAND
+ public static final int ENUM_UAVCMD_CONDITION_YAW = 4; // 变换航向 NET_UAVCMD_CONDITION_YAW
+ public static final int ENUM_UAVCMD_DO_CHANGE_SPEED = 5; // 改变速度 NET_UAVCMD_CHANGE_SPEED
+ public static final int ENUM_UAVCMD_DO_SET_HOME = 6; // 设置返航点 NET_UAVCMD_SET_HOME
+ public static final int ENUM_UAVCMD_DO_FLIGHTTERMINATION = 7; // 立即停转电机, 飞机锁定 NET_UAVCMD_FLIGHT_TERMINATION
+ public static final int ENUM_UAVCMD_MISSION_START = 8; // 开始航点任务 NET_UAVCMD_MISSION_START
+ public static final int ENUM_UAVCMD_COMPONENT_ARM_DISARM = 9; // 电调解锁, 电调锁定 NET_UAVCMD_COMPONENT_ARM_DISARM
+ public static final int ENUM_UAVCMD_PREFLIGHT_REBOOT_SHUTDOWN = 10; // 重启飞行器 NET_UAVCMD_REBOOT_SHUTDOWN
+ public static final int ENUM_UAVCMD_DO_SET_RELAY = 11; // 继电器控制 NET_UAVCMD_SET_RELAY
+ public static final int ENUM_UAVCMD_DO_REPEAT_RELAY = 12; // 继电器循环控制 NET_UAVCMD_REPEAT_RELAY
+ public static final int ENUM_UAVCMD_DO_FENCE_ENABLE = 13; // 电子围栏启用禁用 NET_UAVCMD_FENCE_ENABLE
+ public static final int ENUM_UAVCMD_MOUNT_CONFIGURE = 14; // 云台模式配置 NET_UAVCMD_MOUNT_CONFIGURE
+ public static final int ENUM_UAVCMD_GET_HOME_POSITION = 15; // 异步获取Home点位置, 实时数据回调中返回 NET_UAVCMD_GET_HOME_POSITION
+ public static final int ENUM_UAVCMD_IMAGE_START_CAPTURE = 16; // 开始抓拍 NET_UAVCMD_IMAGE_START_CAPTURE
+ public static final int ENUM_UAVCMD_IMAGE_STOP_CAPTURE = 17; // 停止抓拍 NET_UAVCMD_IMAGE_STOP_CAPTURE
+ public static final int ENUM_UAVCMD_VIDEO_START_CAPTURE = 18; // 开始录像 NET_UAVCMD_VIDEO_START_CAPTURE
+ public static final int ENUM_UAVCMD_VIDEO_STOP_CAPTURE = 19; // 停止录像 NET_UAVCMD_VIDEO_STOP_CAPTURE
+ public static final int ENUM_UAVCMD_NAV_WAYPOINT = 20; // 航点 NET_UAVCMD_NAV_WAYPOINT
+ public static final int ENUM_UAVCMD_NAV_LOITER_TURNS = 21; // 循环绕圈 NET_UAVCMD_NAV_LOITER_TURNS
+ public static final int ENUM_UAVCMD_NAV_LOITER_TIME = 22; // 固定时间等待航点 NET_UAVCMD_NAV_LOITER_TIME
+ public static final int ENUM_UAVCMD_NAV_SPLINE_WAYPOINT = 23; // 曲线航点 NET_UAVCMD_NAV_SPLINE_WAYPOINT
+ public static final int ENUM_UAVCMD_NAV_GUIDED_ENABLE = 24; // 引导模式开关 NET_UAVCMD_NAV_GUIDED_ENABLE
+ public static final int ENUM_UAVCMD_DO_JUMP = 25; // 跳转到任务单某个位置. 并执行N次 NET_UAVCMD_DO_JUMP
+ public static final int ENUM_UAVCMD_DO_GUIDED_LIMITS = 26; // 引导模式执行控制限制 NET_UAVCMD_DO_GUIDED_LIMITS
+ public static final int ENUM_UAVCMD_CONDITION_DELAY = 27; // 动作延时 NET_UAVCMD_CONDITION_DELAY
+ public static final int ENUM_UAVCMD_CONDITION_DISTANCE = 28; // 动作距离. 前往设定距离(到下一航点),然后继续 NET_UAVCMD_CONDITION_DISTANCE
+ public static final int ENUM_UAVCMD_DO_SET_ROI = 29; // 相机兴趣点 NET_UAVCMD_DO_SET_ROI
+ public static final int ENUM_UAVCMD_DO_DIGICAM_CONTROL = 30; // 相机控制 NET_UAVCMD_DO_DIGICAM_CONTROL
+ public static final int ENUM_UAVCMD_DO_MOUNT_CONTROL = 31; // 云台角度控制 NET_UAVCMD_DO_MOUNT_CONTROL
+ public static final int ENUM_UAVCMD_DO_SET_CAM_TRIGG_DIST = 32; // 聚焦距离 NET_UAVCMD_DO_SET_CAM_TRIGG_DIST
+ public static final int ENUM_UAVCMD_SET_MODE = 33; // 设置模式 NET_UAVCMD_SET_MODE
+ public static final int ENUM_UAVCMD_NAV_GUIDED = 34; // 设定引导点 NET_UAVCMD_NAV_GUIDED
+ public static final int ENUM_UAVCMD_MISSION_PAUSE = 35; // 飞行任务暂停 NET_UAVCMD_MISSION_PAUSE
+ public static final int ENUM_UAVCMD_MISSION_STOP = 36; // 飞行任务停止 NET_UAVCMD_MISSION_STOP
+ public static final int ENUM_UAVCMD_LOAD_CONTROL = 37; // 负载控制 NET_UAVCMD_LOAD_CONTROL
+ public static final int ENUM_UAVCMD_RC_CHANNELS_OVERRIDE = 38; // 模拟摇杆 NET_UAVCMD_RC_CHANNELS_OVERRIDE
+ public static final int ENUM_UAVCMD_HEART_BEAT = 39; // 心跳 NET_UAVCMD_HEART_BEAT
+ }
+
+ // 无人机命令通用信息
+ public static class NET_UAVCMD_COMMON extends SdkStructure
+ {
+ public int nTargetSystem; // 目标系统
+ public int nTargetComponent; // 目标部件, 0 - 所有部件
+ public int nConfirmation; // 确认次数, 0 - 为首次命令. 用于航点任务为0
+ public byte[] byReserved = new byte[4]; // 保留
+ }
+
+ // 地面起飞命令 ENUM_UAVCMD_NAV_TAKEOFF
+ public static class NET_UAVCMD_TAKEOFF extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public float fMinimumPitch; // 最小爬升率(有空速传感器时适用)设定的爬升率(无传感器)
+ public float fYawAngle; // 指向设定.(有罗盘)如无罗盘, 则忽略此参数.
+ public float fLatitude; // 纬度
+ public float fLongitude; // 经度
+ public float fAltitude; // 高度
+ public byte[] byReserved = new byte[8]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 悬停命令 ENUM_UAVCMD_NAV_LOITER_UNLIM
+ public static class NET_UAVCMD_LOITER_UNLIMITED extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public float fRadius; // 盘旋半径(m), 正值顺时针, 负值逆时针.
+ public float fYawAngle; // 指向设定, 仅适用可悬停机型
+ public float fLatitude; // 纬度
+ public float fLongitude; // 经度
+ public float fAltitude; // 高度
+ public byte[] byReserved = new byte[8]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 返航降落 ENUM_UAVCMD_NAV_RETURN_TO_LAUNCH
+ public static class NET_UAVCMD_RETURN_TO_LAUNCH extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public byte[] byReserved = new byte[28]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 设定点着陆 ENUM_UAVCMD_NAV_LAND
+ public static class NET_UAVCMD_LAND extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public float fYawAngle; // 指向设定, 仅适用可悬停机型.
+ public float fLatitude; // 纬度
+ public float fLongitude; // 经度
+ public float fAltitude; // 高度
+ public byte[] byReserved = new byte[12]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 变换航向 ENUM_UAVCMD_CONDITION_YAW
+ public static class NET_UAVCMD_CONDITION_YAW extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public float fTargetAngle; // 目标角度: [0-360], 0为北
+ public float fSpeed; // 转向速率: [度/秒]
+ public float fDirection; // 指向: 负值逆时针, 正值顺时针
+ public float fRelativeOffset; // 相对偏置或绝对角[1,0]
+ public byte[] byReserved = new byte[12]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 改变速度 ENUM_UAVCMD_DO_CHANGE_SPEED
+ public static class NET_UAVCMD_CHANGE_SPEED extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public float fSpeedType; // 速度类型(0=空速, 1=地速)
+ public float fSpeed; // 速度(米/秒, -1表示维持原来速度不变)
+ public float fThrottle; // 油门开度, 百分比数据,-1表示维持原来数值不变
+ public byte[] byReserved = new byte[16]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 设置返航点 ENUM_UAVCMD_DO_SET_HOME
+ public static class NET_UAVCMD_SET_HOME extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public int nLocation; // 返航点: 1 = 使用当前点, 0 - 设定点
+ public float fLatitude; // 纬度
+ public float fLongitude; // 经度
+ public float fAltitude; // 高度
+ public byte[] byReserved = new byte[12]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 立即停转电机 ENUM_UAVCMD_DO_FLIGHTTERMINATION
+ public static class NET_UAVCMD_FLIGHT_TERMINATION extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public float fActivated; // 触发值: 大于0.5 被触发
+ public byte[] byReserved = new byte[24]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 开始航点任务 ENUM_UAVCMD_MISSION_START
+ public static class NET_UAVCMD_MISSION_START extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public int nFirstItem; // 第一项 n, 起始点的任务号
+ public int nLastItem; // 最后一项 m, 终点的任务号
+ public byte[] byReserved = new byte[20]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 飞行任务暂停 ENUM_UAVCMD_MISSION_PAUSE
+ public static class NET_UAVCMD_MISSION_PAUSE extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public byte[] byReserved = new byte[28]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 飞行任务停止 ENUM_UAVCMD_MISSION_STOP
+ public static class NET_UAVCMD_MISSION_STOP extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public byte[] byReserved = new byte[28]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 负载类型
+ public static class EM_LOAD_CONTROL_TYPE extends SdkStructure
+ {
+ public static final int EM_LOAD_CONTROL_COMMON = 0; // 通用设备 NET_LOAD_CONTROL_COMMON
+ public static final int EM_LOAD_CONTROL_PHOTO = 1; // 拍照设备 NET_LOAD_CONTROL_PHOTO
+ public static final int EM_LOAD_CONTROL_VIDEO = 2; // 视频设备 NET_LOAD_CONTROL_VIDEO
+ public static final int EM_LOAD_CONTROL_AUDIO = 3; // 音频设备 NET_LOAD_CONTROL_AUDIO
+ public static final int EM_LOAD_CONTROL_LIGHT = 4; // 灯光设备 NET_LOAD_CONTROL_LIGHT
+ public static final int EM_LOAD_CONTROL_RELAY = 5; // 继电器设备NET_LOAD_CONTROL_RELAY
+ public static final int EM_LOAD_CONTROL_TIMING = 6; // 定时拍照设备NET_LOAD_CONTROL_TIMING
+ public static final int EM_LOAD_CONTROL_DISTANCE = 7; // 定距拍照设备NET_LOAD_CONTROL_DISTANCE
+ }
+
+ // 通用设备
+ public static class NET_LOAD_CONTROL_COMMON extends SdkStructure
+ {
+ public byte[] byReserved = new byte[24]; // 实际请使用对应负载填入
+ }
+
+ // 拍照设备
+ public static class NET_LOAD_CONTROL_PHOTO extends SdkStructure
+ {
+ public float fCycle; // 拍照周期 单位s
+ public byte[] byReserved = new byte[20]; // 对齐 NET_MISSION_ITEM_COMMON
+ }
+
+ // 视频设备
+ public static class NET_LOAD_CONTROL_VIDEO extends SdkStructure
+ {
+ public int nSwitch; // 开关 0-结束录像 1-开始录像
+ public byte[] byReserved = new byte[20]; // 对齐 NET_LOAD_CONTROL_COMMON
+ }
+
+ // 音频设备
+ public static class NET_LOAD_CONTROL_AUDIO extends SdkStructure
+ {
+ public byte[] byReserved = new byte[24]; // 对齐 NET_LOAD_CONTROL_COMMON
+ }
+
+ // 灯光设备
+ public static class NET_LOAD_CONTROL_LIGHT extends SdkStructure
+ {
+ public int nSwitch; // 开关 0-关闭 1-打开
+ public byte[] byReserved = new byte[20]; // 对齐 NET_LOAD_CONTROL_COMMON
+ }
+
+ // 继电器设备
+ public static class NET_LOAD_CONTROL_RELAY extends SdkStructure
+ {
+ public int nSwitch; // 开关 0-关闭 1-打开
+ public byte[] byReserved = new byte[20]; // 对齐 NET_LOAD_CONTROL_COMMON
+ }
+
+ // 定时拍照设备
+ public static class NET_LOAD_CONTROL_TIMING extends SdkStructure
+ {
+ public int nInterval; // 拍照时间间隔 单位:s
+ public int nSwitch; // 起停控制 0-停止 1-启用
+ public byte[] byReserved = new byte[16]; // 对齐 NET_LOAD_CONTROL_COMMON
+ }
+
+ // 定距拍照设备
+ public static class NET_LOAD_CONTROL_DISTANCE extends SdkStructure
+ {
+ public int nInterval; // 拍照距离间隔 单位:m
+ public int nSwitch; // 起停控制 0-停止 1-启用
+ public byte[] byReserved = new byte[16]; // 对齐 NET_LOAD_CONTROL_COMMON
+ }
+
+ // 负载控制
+ public static class NET_UAVCMD_LOAD_CONTROL extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public int emLoadType; // 负载类型,详见EM_LOAD_CONTROL_TYPE
+ public NET_LOAD_CONTROL_COMMON stuLoadInfo; // 负载控制信息
+ }
+
+ // 电调解锁/锁定 ENUM_UAVCMD_COMPONENT_ARM_DISARM,
+ public static class NET_UAVCMD_COMPONENT_ARM_DISARM extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public int bArm; // TRUE - 解锁, FALSE - 锁定
+ public byte[] byReserved = new byte[24]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 重启飞行器 ENUM_UAVCMD_PREFLIGHT_REBOOT_SHUTDOWN
+ public static class NET_UAVCMD_REBOOT_SHUTDOWN extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public int nCtrlAutopilot; // 控制飞控 0 - 空 1 - 重启 2 - 关机
+ public int nCtrlOnboardComputer; // 控制机载计算机 0 - 空 1 - 机载计算机重启 2 - 机载计算机关机
+ public byte[] byReserved = new byte[20]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 继电器控制 ENUM_UAVCMD_DO_SET_RELAY
+ public static class NET_UAVCMD_SET_RELAY extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public int nRelayNumber; // 继电器号
+ public int nCtrlRelay; // 0=关,1=开。
+ public byte[] byReserved = new byte[20]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 继电器循环控制 ENUM_UAVCMD_DO_REPEAT_RELAY
+ public static class NET_UAVCMD_REPEAT_RELAY extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public int nRelayNumber; // 继电器号
+ public int nCycleCount; // 循环次数
+ public int nCycleTime; // 周期(十进制,秒)
+ public byte[] byReserved = new byte[16]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 电子围栏启用禁用 ENUM_UAVCMD_DO_FENCE_ENABLE
+ public static class NET_UAVCMD_FENCE_ENABLE extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public int nEnableState; // 启用状态 0 - 禁用 1 - 启用 2 - 仅地面禁用
+ public byte[] byReserved = new byte[24]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 云台模式设置 ENUM_UAVCMD_MOUNT_CONFIGURE
+ public static class NET_UAVCMD_MOUNT_CONFIGURE extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public int nMountMode; // 云台模式
+ // 0 - 预留; 1 - 水平模式, RC 不可控; 2 - UAV模式, RC 不可控 ;
+ // 3 - 航向锁定模式, RC可控; 4 - 预留; 5-垂直90度模式, RC不可控 6 - 航向跟随模式, RC可控
+ public byte[] byReserved = new byte[24]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 异步获取Home点位置 ENUM_UAVCMD_GET_HOME_POSITION
+ public static class NET_UAVCMD_GET_HOME_POSITION extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public byte[] byReserved = new byte[28]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 开始抓拍 ENUM_UAVCMD_IMAGE_START_CAPTURE Start image capture sequence
+ public static class NET_UAVCMD_IMAGE_START_CAPTURE extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public int nDurationTime; // 连拍持续时间
+ public int nTatolNumber; // 抓拍数量 0 - 表示无限制
+ public int emResolution; // 分辨率为 CAPTURE_SIZE_NR时, 表示自定义。目前仅支持 CAPTURE_SIZE_VGA 和 CAPTURE_SIZE_720
+ public int nCustomWidth; // 自定义水平分辨率 单位: 像素 pixel
+ public int nCustomHeight; // 自定义垂直分辨率 单位: 像素 pixel
+ public int nCameraID; // 相机ID
+ public byte[] byReserved = new byte[4]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 分辨率枚举
+ public static class CAPTURE_SIZE extends SdkStructure
+ {
+ public static final int CAPTURE_SIZE_D1 = 0; // 704*576(PAL) 704*480(NTSC),兼容WWxHH,下同
+ public static final int CAPTURE_SIZE_HD1 = 1; // 352*576(PAL) 352*480(NTSC)
+ public static final int CAPTURE_SIZE_BCIF = 2; // 704*288(PAL) 704*240(NTSC)
+ public static final int CAPTURE_SIZE_CIF = 3; // 352*288(PAL) 352*240(NTSC)
+ public static final int CAPTURE_SIZE_QCIF = 4; // 176*144(PAL) 176*120(NTSC)
+ public static final int CAPTURE_SIZE_VGA = 5; // 640*480
+ public static final int CAPTURE_SIZE_QVGA = 6; // 320*240
+ public static final int CAPTURE_SIZE_SVCD = 7; // 480*480
+ public static final int CAPTURE_SIZE_QQVGA = 8; // 160*128
+ public static final int CAPTURE_SIZE_SVGA = 9; // 800*592
+ public static final int CAPTURE_SIZE_XVGA = 10; // 1024*768
+ public static final int CAPTURE_SIZE_WXGA = 11; // 1280*800
+ public static final int CAPTURE_SIZE_SXGA = 12; // 1280*1024
+ public static final int CAPTURE_SIZE_WSXGA = 13; // 1600*1024
+ public static final int CAPTURE_SIZE_UXGA = 14; // 1600*1200
+ public static final int CAPTURE_SIZE_WUXGA = 15; // 1920*1200
+ public static final int CAPTURE_SIZE_LTF = 16; // 240*192,ND1
+ public static final int CAPTURE_SIZE_720 = 17; // 1280*720
+ public static final int CAPTURE_SIZE_1080 = 18; // 1920*1080
+ public static final int CAPTURE_SIZE_1_3M = 19; // 1280*960
+ public static final int CAPTURE_SIZE_2M = 20; // 1872*1408,2_5M
+ public static final int CAPTURE_SIZE_5M = 21; // 3744*1408
+ public static final int CAPTURE_SIZE_3M = 22; // 2048*1536
+ public static final int CAPTURE_SIZE_5_0M = 23; // 2432*2050
+ public static final int CPTRUTE_SIZE_1_2M = 24; // 1216*1024
+ public static final int CPTRUTE_SIZE_1408_1024 = 25; // 1408*1024
+ public static final int CPTRUTE_SIZE_8M = 26; // 3296*2472
+ public static final int CPTRUTE_SIZE_2560_1920 = 27; // 2560*1920(5_1M)
+ public static final int CAPTURE_SIZE_960H = 28; // 960*576(PAL) 960*480(NTSC)
+ public static final int CAPTURE_SIZE_960_720 = 29; // 960*720
+ public static final int CAPTURE_SIZE_NHD = 30; // 640*360
+ public static final int CAPTURE_SIZE_QNHD = 31; // 320*180
+ public static final int CAPTURE_SIZE_QQNHD = 32; // 160*90
+ public static final int CAPTURE_SIZE_960_540 = 33; // 960*540
+ public static final int CAPTURE_SIZE_640_352 = 34; // 640*352
+ public static final int CAPTURE_SIZE_640_400 = 35; // 640*400
+ public static final int CAPTURE_SIZE_320_192 = 36; // 320*192
+ public static final int CAPTURE_SIZE_320_176 = 37; // 320*176
+ public static final int CAPTURE_SIZE_SVGA1 = 38; // 800*600
+ public static final int CAPTURE_SIZE_NR = 255;
+ }
+
+ // 停止抓拍 ENUM_UAVCMD_IMAGE_STOP_CAPTURE
+ public static class NET_UAVCMD_IMAGE_STOP_CAPTURE extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public int nCameraID; // 相机ID
+ public byte[] byReserved = new byte[24]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 开始录像 ENUM_UAVCMD_VIDEO_START_CAPTURE
+ public static class NET_UAVCMD_VIDEO_START_CAPTURE extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public int nCameraID; // 相机ID 0 - 表示所有相机
+ public int nFrameSpeed; // 帧率 单位: 秒 -1 表示: 最高帧率
+ public int emResolution; // 分辨率 为 CAPTURE_SIZE_NR时, 表示自定义。目前仅支持 CAPTURE_SIZE_VGA 和 CAPTURE_SIZE_720
+ public int nCustomWidth; // 自定义水平分辨率 单位: 像素 pixel
+ public int nCustomHeight; // 自定义垂直分辨率 单位: 像素 pixel
+ public byte[] byReserved = new byte[8]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 停止录像 ENUM_UAVCMD_VIDEO_STOP_CAPTURE
+ public static class NET_UAVCMD_VIDEO_STOP_CAPTURE extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public int nCameraID; // 相机ID
+ public byte[] byReserved = new byte[24]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 航点 ENUM_UAVCMD_NAV_WAYPOINT
+ public static class NET_UAVCMD_NAV_WAYPOINT extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public int nHoldTime; // 驻留时间. 单位: 秒
+ public float fAcceptanceRadius; // 触发半径. 单位: 米. 进入此半径, 认为该航点结束.
+ public float fLatitude; // 纬度
+ public float fLongitude; // 经度
+ public float fAltitude; // 高度
+ public byte[] byReserved = new byte[8]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 循环绕圈 ENUM_UAVCMD_NAV_LOITER_TURNS
+ public static class NET_UAVCMD_NAV_LOITER_TURNS extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public int nTurnNumber; // 圈数.
+ public float fRadius; // 盘旋半径(m), 正值顺时针, 负值逆时针.
+ public float fLatitude; // 纬度
+ public float fLongitude; // 经度
+ public float fAltitude; // 高度
+ public byte[] byReserved = new byte[8]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 在航点盘旋N秒 ENUM_UAVCMD_NAV_LOITER_TIME
+ public static class NET_UAVCMD_NAV_LOITER_TIME extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public int nTime; // 时间. 单位: 秒
+ public float fRadius; // 盘旋半径(m), 正值顺时针, 负值逆时针.
+ public float fLatitude; // 纬度
+ public float fLongitude; // 经度
+ public float fAltitude; // 高度
+ public byte[] byReserved = new byte[8]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 曲线航点 ENUM_UAVCMD_NAV_SPLINE_WAYPOINT
+ public static class NET_UAVCMD_NAV_SPLINE_WAYPOINT extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public int nHoldTime; // 驻留时间 Hold time in decimal seconds.
+ public float fLatitude; // 纬度
+ public float fLongitude; // 经度
+ public float fAltitude; // 高度
+ public byte[] byReserved = new byte[12]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 引导模式开关 ENUM_UAVCMD_NAV_GUIDED_ENABLE
+ public static class NET_UAVCMD_NAV_GUIDED_ENABLE extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public int bEnable; // 使能
+ public byte[] byReserved = new byte[24]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 跳转 ENUM_UAVCMD_DO_JUMP
+ public static class NET_UAVCMD_DO_JUMP extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public int nSequenceNumber; // 任务序号
+ public int nRepeatCount; // 重复次数
+ public byte[] byReserved = new byte[20]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 引导模式执行控制限制 ENUM_UAVCMD_DO_GUIDED_LIMITS
+ public static class NET_UAVCMD_DO_GUIDED_LIMITS extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public int nMaxTime; // 最大时间. 单位: 秒
+ public float fMinAltitude; // 最低限制高度. 单位: 米
+ public float fMaxAltitude; // 最大限制高度. 单位: 米
+ public float fHorizontalDistance; // 水平限制距离. 单位: 米
+ public byte[] byReserved = new byte[12]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 动作延时 ENUM_UAVCMD_CONDITION_DELAY
+ public static class NET_UAVCMD_CONDITION_DELAY extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public int nDelay; // 延迟时间. 单位: 秒
+ public byte[] byReserved = new byte[24]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 动作距离 ENUM_UAVCMD_CONDITION_DISTANCE
+ public static class NET_UAVCMD_CONDITION_DISTANCE extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public float fDistance; // 距离. 单位: 米
+ public byte[] byReserved = new byte[24]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 无人机兴趣点类型
+ public static class ENUM_UAV_ROI_MODE extends SdkStructure
+ {
+ public static final int ENUM_UAV_ROI_MODE_NONE = 0; // 无兴趣点
+ public static final int ENUM_UAV_ROI_MODE_WPNEXT = 1; // 面向下一航点
+ public static final int ENUM_UAV_ROI_MODE_WPINDEX = 2; // 面向指定兴趣点
+ public static final int ENUM_UAV_ROI_MODE_LOCATION = 3; // 当前航点
+ }
+
+ // 相机兴趣点 ENUM_UAVCMD_DO_SET_ROI
+ public static class NET_UAVCMD_DO_SET_ROI extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public int emROIMode; // 兴趣点模式,详见ENUM_UAV_ROI_MODE
+ public int nId; // 指定航点或编号, 根据emROIMode而定
+ public int nROIIndex; // ROI 编号
+ public byte[] byReserved = new byte[16]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 相机控制 ENUM_UAVCMD_DO_DIGICAM_CONTROL
+ public static class NET_UAVCMD_DO_DIGICAM_CONTROL extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public byte[] byReserved = new byte[28]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 云台角度控制 ENUM_UAVCMD_DO_MOUNT_CONTROL
+ public static class NET_UAVCMD_DO_MOUNT_CONTROL extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public float fPitchAngle; // 俯仰角, 单位: 度. 0: 一键回中, -90 : 一键置90度
+ public float fYawAngle; // 航向角, 单位: 度. 0: 一键回中, -90 : 一键置90度
+ public byte[] byReserved = new byte[20]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 聚焦距离 ENUM_UAVCMD_DO_SET_CAM_TRIGG_DIST
+ public static class NET_UAVCMD_DO_SET_CAM_TRIGG_DIST extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public float fDistance; // 聚焦距离
+ public byte[] byReserved = new byte[24]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 设置模式 ENUM_UAVCMD_SET_MODE
+ public static class NET_UAVCMD_SET_MODE extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public int emUAVMode; // 飞行模式,详见ENUM_UAV_MODE
+ public byte[] byReserved = new byte[24]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 设定引导点 ENUM_UAVCMD_NAV_GUIDED
+ public static class NET_UAVCMD_NAV_GUIDED extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 通用信息
+ public float fLatitude; // 纬度
+ public float fLongitude; // 经度
+ public float fAltitude; // 高度
+ public byte[] byReserved = new byte[16]; // 对齐 NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 航点命令对应的通用参数, 需要转换成 ENUM_UAVCMD_TYPE 对应的结构体
+ public static class NET_UAVCMD_PARAM_BUFFER extends SdkStructure
+ {
+ public NET_UAVCMD_COMMON stuCommon; // 命令通用信息
+ public byte[] byParamBuffer = new byte[28]; // 参数缓存
+ }
+
+ // 摇杆模拟:输入参数
+ public static class NET_UAVCMD_RC_CHANNELS_OVERRIDE extends SdkStructure
+ {
+ public short nChan1; // 滚转角,范围[1091, 1937],如果未改变,填 UINT16_MAX
+ public short nChan2; // 俯仰角,范围[1091, 1937],如果未改变,填 UINT16_MAX
+ public short nChan3; // 油门,范围[1091, 1937],如果未改变,填 UINT16_MAX
+ public short nChan4; // 偏航角,[1091, 1937],如果未改变,填 UINT16_MAX
+ public short nChan5; // 模式切换:取值1091,1514,1937,如果未改变,填 UINT16_MAX
+ public short nChan6; // 云台航向,范围[1091,1937],如果未改变,填 UINT16_MAX
+ public short nChan7; // 云台俯仰,范围[1091,1937],如果未改变,填 UINT16_MAX
+ public short nChan8; // 起落架,取值1091,1937,如果未改变,填 UINT16_MAX
+ public short nChan9; // 云台模式, 取值1091,1514,1937,如果未改变,填 UINT16_MAX
+ public short nChan10; // 一键返航,取值1091,1937,如果未改变,填 UINT16_MAX
+ public short nChan11; // 一键起降,取值1091,1937,如果未改变,填 UINT16_MAX
+ public short nChan12; // 当前没有用到,填 UINT16_MAX
+ public short nChan13; // 当前没有用到,填 UINT16_MAX
+ public short nChan14; // 当前没有用到,填 UINT16_MAX
+ public short nChan15; // 当前没有用到,填 UINT16_MAX
+ public short nChan16; // 当前没有用到,填 UINT16_MAX
+ public short nChan17; // 当前没有用到,填 UINT16_MAX
+ public short nChan18; // 当前没有用到,填 UINT16_MAX
+ public byte nTargetSystem; // 目标系统
+ public byte nTargetComponent; // 目标组件
+ public byte[] szReserved = new byte[6]; // 保留字段,对齐NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 心跳结构体
+ public static class NET_UAVCMD_HEART_BEAT extends SdkStructure
+ {
+ public int nCustomMode; // 自动驾驶仪用户自定义模式
+ public byte nType; // MAV 类型
+ public byte nAutoPilot; // 自动驾驶仪类型
+ public byte nBaseMode; // 系统模式
+ public byte nSystemStatus; // 系统状态值
+ public byte nMavlinkVersion; // MAVLink 版本信息
+ public byte[] szReserved = new byte[35]; // 保留字段,对齐NET_UAVCMD_PARAM_BUFFER
+ }
+
+ // 订阅无人机实时消息 pstuInParam 和 pstuOutParam 由设备申请释放
+ public LLong CLIENT_AttachUAVInfo(LLong lLoginID,NET_IN_ATTACH_UAVINFO pstuInParam,NET_OUT_ATTACH_UAVINFO pstuOutParam,int nWaitTime);
+
+ // 退订无人机实时消息 lAttachHandle 是 CLIENT_AttachUAVInfo 返回值
+ public boolean CLIENT_DetachUAVInfo(LLong lAttachHandle);
+
+ // 警戒区入侵方向
+ public static class NET_CROSSREGION_DIRECTION_INFO extends SdkStructure
+ {
+ public static final int EM_CROSSREGION_DIRECTION_UNKNOW = 0;
+ public static final int EM_CROSSREGION_DIRECTION_ENTER = 1; // 进入
+ public static final int EM_CROSSREGION_DIRECTION_LEAVE = 2; // 离开
+ public static final int EM_CROSSREGION_DIRECTION_APPEAR = 3; // 出现
+ public static final int EM_CROSSREGION_DIRECTION_DISAPPEAR = 4; // 消失
+ }
+
+ // 电源类型
+ public static class EM_POWER_TYPE extends SdkStructure
+ {
+ public static final int EM_POWER_TYPE_MAIN = 0; // 主电源
+ public static final int EM_POWER_TYPE_BACKUP = 1; // 备用电源
+ }
+
+ // 电源故障事件类型
+ public static class EM_POWERFAULT_EVENT_TYPE extends SdkStructure
+ {
+ public static final int EM_POWERFAULT_EVENT_UNKNOWN = -1; // 未知
+ public static final int EM_POWERFAULT_EVENT_LOST = 0; // 掉电、电池不在位
+ public static final int EM_POWERFAULT_EVENT_LOST_ADAPTER = 1; // 适配器不在位
+ public static final int EM_POWERFAULT_EVENT_LOW_BATTERY = 2; // 电池欠压
+ public static final int EM_POWERFAULT_EVENT_LOW_ADAPTER = 3; // 适配器欠压
+ }
+
+ // 电源故障事件
+ public static class ALARM_POWERFAULT_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public int emPowerType; // 电源类型,详见EM_POWER_TYPE
+ public int emPowerFaultEvent; // 电源故障事件,详见EM_POWERFAULT_EVENT_TYPE
+ public NET_TIME stuTime; // 报警事件发生的时间
+ public int nAction; // 0:开始 1:停止
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+
+ public ALARM_POWERFAULT_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 防拆报警事件
+ public static class ALARM_CHASSISINTRUDED_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public int nAction; // 0:开始 1:停止
+ public NET_TIME stuTime; // 报警事件发生的时间
+ public int nChannelID; // 通道号
+ public byte[] szReaderID = new byte[NET_COMMON_STRING_32]; // 读卡器ID
+ public int nEventID; // 事件ID
+ public byte[] szSN = new byte[32]; // 无线设备序列号
+ public int bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 RealUTC,否则用 stuTime 字段
+ public NET_TIME_EX RealUTC; // 事件发生的时间(标准UTC)
+ public int emDevType; //设备类型,参考EM_ALARM_CHASSISINTRUDED_DEV_TYPE
+
+ public ALARM_CHASSISINTRUDED_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 传感器感应方式枚举类型
+ public static class NET_SENSE_METHOD extends SdkStructure
+ {
+ public static final int NET_SENSE_UNKNOWN = -1; // 未知类型
+ public static final int NET_SENSE_DOOR = 0; // 门磁
+ public static final int NET_SENSE_PASSIVEINFRA = 1; // 被动红外
+ public static final int NET_SENSE_GAS = 2; // 气感
+ public static final int NET_SENSE_SMOKING = 3; // 烟感
+ public static final int NET_SENSE_WATER = 4; // 水感
+ public static final int NET_SENSE_ACTIVEFRA = 5; // 主动红外
+ public static final int NET_SENSE_GLASS = 6; // 玻璃破碎
+ public static final int NET_SENSE_EMERGENCYSWITCH = 7; // 紧急开关
+ public static final int NET_SENSE_SHOCK = 8; // 震动
+ public static final int NET_SENSE_DOUBLEMETHOD = 9; // 双鉴(红外+微波)
+ public static final int NET_SENSE_THREEMETHOD = 10; // 三技术
+ public static final int NET_SENSE_TEMP = 11; // 温度
+ public static final int NET_SENSE_HUMIDITY = 12; // 湿度
+ public static final int NET_SENSE_WIND = 13; // 风速
+ public static final int NET_SENSE_CALLBUTTON = 14; // 呼叫按钮
+ public static final int NET_SENSE_GASPRESSURE = 15; // 气体压力
+ public static final int NET_SENSE_GASCONCENTRATION = 16; // 燃气浓度
+ public static final int NET_SENSE_GASFLOW = 17; // 气体流量
+ public static final int NET_SENSE_OTHER = 18; // 其他
+ public static final int NET_SENSE_OIL = 19; // 油量检测,汽油、柴油等车辆用油检测
+ public static final int NET_SENSE_MILEAGE = 20; // 里程数检测
+ public static final int NET_SENSE_URGENCYBUTTON = 21; // 紧急按钮
+ public static final int NET_SENSE_STEAL = 22; // 盗窃
+ public static final int NET_SENSE_PERIMETER = 23; // 周界
+ public static final int NET_SENSE_PREVENTREMOVE = 24; // 防拆
+ public static final int NET_SENSE_DOORBELL = 25; // 门铃
+ public static final int NET_SENSE_ALTERVOLT = 26; // 交流电压传感器
+ public static final int NET_SENSE_DIRECTVOLT = 27; // 直流电压传感器
+ public static final int NET_SENSE_ALTERCUR = 28; // 交流电流传感器
+ public static final int NET_SENSE_DIRECTCUR = 29; // 直流电流传感器
+ public static final int NET_SENSE_RSUGENERAL = 30; // 高新兴通用模拟量 4~20mA或0~5V
+ public static final int NET_SENSE_RSUDOOR = 31; // 高新兴门禁感应
+ public static final int NET_SENSE_RSUPOWEROFF = 32; // 高新兴断电感应
+ public static final int NET_SENSE_TEMP1500 = 33; // 1500温度传感器
+ public static final int NET_SENSE_TEMPDS18B20 = 34; // DS18B20温度传感器
+ public static final int NET_SENSE_HUMIDITY1500 = 35; // 1500湿度传感器
+ public static final int NET_SENSE_INFRARED = 36; // 红外报警
+ public static final int NET_SENSE_FIREALARM = 37; // 火警
+ public static final int NET_SENSE_CO2 = 38; // CO2浓度检测,典型值:0~5000ppm
+ public static final int NET_SNESE_SOUND = 39; // 噪音检测,典型值:30~130dB
+ public static final int NET_SENSE_PM25 = 40; // PM2.5检测,典型值:0~1000ug/m3
+ public static final int NET_SENSE_SF6 = 41; // SF6浓度检测,典型值:0~3000ppm
+ public static final int NET_SENSE_O3 = 42; // 臭氧浓度检测,典型值:0~100ppm
+ public static final int NET_SENSE_AMBIENTLIGHT = 43; // 环境光照检测,典型值:0~20000Lux
+ public static final int NET_SENSE_SIGNINBUTTON = 44; // 签入按钮
+ public static final int NET_SENSE_LIQUIDLEVEL = 45; // 液位
+ public static final int NET_SENSE_DISTANCE = 46; // 测距
+ public static final int NET_SENSE_WATERFLOW = 47; // 水流量
+ public static final int NET_SENSE_NUM = 54; // 枚举类型总数
+ }
+
+ // 防区类型
+ public static class NET_DEFENCEAREA_TYPE extends SdkStructure
+ {
+ public static final int NET_DEFENCEAREA_TYPE_UNKNOWN = 0; // 未知类型防区
+ public static final int NET_DEFENCEAREA_TYPE_ALARM = 1; // 开关量防区
+ }
+
+ // 旁路状态类型
+ public static class NET_BYPASS_MODE extends SdkStructure
+ {
+ public static final int NET_BYPASS_MODE_UNKNOW = 0; // 未知状态
+ public static final int NET_BYPASS_MODE_BYPASS = 1; // 旁路
+ public static final int NET_BYPASS_MODE_NORMAL = 2; // 正常
+ public static final int NET_BYPASS_MODE_ISOLATED = 3; // 隔离
+ }
+
+ // 旁路状态变化事件的信息
+ public static class ALARM_BYPASSMODE_CHANGE_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public int nChannelID; // 通道号
+ public NET_TIME stuTime; // 报警事件发生的时间
+ public int emDefenceType; // 防区类型,详见NET_DEFENCEAREA_TYPE
+ public int nIsExtend; // 是否为扩展(通道)防区, 1:扩展通道, 0: 非扩展通道
+ public int emMode; // 变化后的模式,详见NET_BYPASS_MODE
+ public int dwID; // ID号, 遥控器编号或键盘地址, emTriggerMode为NET_EM_TRIGGER_MODE_NET类型时为0
+ public int emTriggerMode; // 触发方式,详见NET_EM_TRIGGER_MODE
+
+ public ALARM_BYPASSMODE_CHANGE_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 报警输入源事件详情(只要有输入就会产生改事件,不论防区当前的模式,无法屏蔽)
+ public static class ALARM_INPUT_SOURCE_SIGNAL_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public int nChannelID; // 通道号
+ public int nAction; // 0:开始 1:停止
+ public NET_TIME stuTime; // 报警事件发生的时间
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+
+ public ALARM_INPUT_SOURCE_SIGNAL_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 门禁状态类型
+ public static class NET_ACCESS_CTL_STATUS_TYPE extends SdkStructure
+ {
+ public static final int NET_ACCESS_CTL_STATUS_TYPE_UNKNOWN = 0;
+ public static final int NET_ACCESS_CTL_STATUS_TYPE_OPEN = 1; // 开门
+ public static final int NET_ACCESS_CTL_STATUS_TYPE_CLOSE = 2; // 关门
+ public static final int NET_ACCESS_CTL_STATUS_TYPE_ABNORMAL = 3; // 异常
+ public static final int NET_ACCESS_CTL_STATUS_TYPE_FAKELOCKED = 4; // 假锁
+ public static final int NET_ACCESS_CTL_STATUS_TYPE_CLOSEALWAYS = 5; // 常闭
+ public static final int NET_ACCESS_CTL_STATUS_TYPE_OPENALWAYS = 6; // 常开
+ }
+
+ // 多人组合开门事件(对应NET_ALARM_OPENDOORGROUP类型)
+ public static class ALARM_OPEN_DOOR_GROUP_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public int nChannelID; // 门通道号(从0开始)
+ public NET_TIME stuTime; // 事件时间
+
+ public ALARM_OPEN_DOOR_GROUP_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 获取信息事件(对应NET_ALARM_FINGER_PRINT类型)
+ public static class ALARM_CAPTURE_FINGER_PRINT_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public int nChannelID; // 门通道号(从0开始)
+ public NET_TIME stuTime; // 事件时间
+ public byte[] szReaderID = new byte[NET_COMMON_STRING_32]; // 门读卡器ID
+ public int nPacketLen; // 单个信息数据包长度
+ public int nPacketNum; // 信息数据包个数
+ public Pointer szFingerPrintInfo; // 信息数据(数据总长度即nPacketLen*nPacketNum),指向byte
+ public int bCollectResult; // 采集结果
+ public byte[] szCardNo = new byte[32]; // 信息所属人员卡号
+ public byte[] szUserID = new byte[32]; // 信息所属人员ID
+ public int nErrorCode; //指纹采集失败的错误码, -1 未知, 0, 通用成功 1, 通用失败 2, 采集失败 3, 合成失败 4, 插入失败 5, 超时 6, 采集暂停 7, 指纹重复 8,未知错误,9,指纹已满
+ public int nFingerImageDataLen; //指纹图像数据长度
+ public byte[] szFingerImageData = new byte[204800]; //指纹图像数据
+
+ public ALARM_CAPTURE_FINGER_PRINT_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 子系统状态类型
+ public static class EM_SUBSYSTEM_STATE_TYPE extends SdkStructure
+ {
+ public static final int EM_SUBSYSTEM_STATE_UNKNOWN = 0; // 未知
+ public static final int EM_SUBSYSTEM_STATE_ACTIVE = 1; // 已激活
+ public static final int EM_SUBSYSTEM_STATE_INACTIVE = 2; // 未激活
+ }
+
+ // 子系统状态改变事件
+ public static class ALARM_SUBSYSTEM_STATE_CHANGE_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public int nChannelID; // 子系统序号(从0开始)
+ public NET_TIME stuTime; // 事件发生的时间
+ public int emState; // 变化后的状态,详见EM_SUBSYSTEM_STATE_TYPE
+
+ public ALARM_SUBSYSTEM_STATE_CHANGE_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // PSTN掉线事件
+ public static class ALARM_PSTN_BREAK_LINE_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public int nChannelID; // 电话线序号(从0开始)
+ public int nAction; // 0:开始 1:停止
+ public NET_TIME stuTime; // 事件发生的时间
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+
+ public ALARM_PSTN_BREAK_LINE_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 反复进入事件详细信息
+ public static class ALARM_ACCESS_CTL_REPEAT_ENTER_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public int nDoor; // 门通道号
+ public byte[] szDoorName = new byte[NET_MAX_DOORNAME_LEN]; // 门禁名称
+ public NET_TIME stuTime; // 报警事件发生的时间
+ public byte[] szCardNo = new byte[NET_MAX_CARDNO_LEN]; // 卡号
+ public int nEventID; // 事件ID
+ public byte[] szUserID = new byte[64]; //用户ID,唯一标识一用户
+ public byte[] szReaderID = new byte[64]; //门读卡器ID,10进制
+
+ public ALARM_ACCESS_CTL_REPEAT_ENTER_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 胁迫卡刷卡事件详细信息
+ public static class ALARM_ACCESS_CTL_DURESS_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public int nDoor; // 门通道号
+ public byte[] szDoorName = new byte[NET_MAX_DOORNAME_LEN]; // 门禁名称
+ public byte[] szCardNo = new byte[NET_MAX_CARDNO_LEN]; // 胁迫卡号
+ public NET_TIME stuTime; // 报警事件发生的时间
+ public int nEventID; // 事件ID
+ public byte[] szSN = new byte[32]; // 无线设备序列号
+ public byte[] szUserID = new byte[12]; // 用户ID
+ public boolean bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 RealUTC,否则用 stuTime 字段
+ public NET_TIME_EX RealUTC; // 事件发生的时间(标准UTC)
+ public byte[] szUserIDEx = new byte[64]; // 用户ID扩展
+
+ public ALARM_ACCESS_CTL_DURESS_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 区域检测事件动作
+ public static class NET_CROSSREGION_ACTION_INFO extends SdkStructure
+ {
+ public static final int EM_CROSSREGION_ACTION_UNKNOW = 0;
+ public static final int EM_CROSSREGION_ACTION_INSIDE = 1; // 在区域内
+ public static final int EM_CROSSREGION_ACTION_CROSS = 2; // 穿越区域
+ public static final int EM_CROSSREGION_ACTION_APPEAR = 3; // 出现
+ public static final int EM_CROSSREGION_ACTION_DISAPPEAR = 4; // 消失
+ }
+
+ // 警戒线入侵方向
+ public static class NET_CROSSLINE_DIRECTION_INFO extends SdkStructure
+ {
+ public static final int EM_CROSSLINE_DIRECTION_UNKNOW = 0;
+ public static final int EM_CROSSLINE_DIRECTION_LEFT2RIGHT = 1; // 左到右
+ public static final int EM_CROSSLINE_DIRECTION_RIGHT2LEFT = 2; // 右到左
+ public static final int EM_CROSSLINE_DIRECTION_ANY = 3;
+ }
+
+ // 警戒线事件(对应事件 NET_EVENT_CROSSLINE_DETECTION)
+ public static class ALARM_EVENT_CROSSLINE_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public int nChannelID; // 通道号
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int nEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public int emCrossDirection; // 入侵方向,详见NET_CROSSLINE_DIRECTION_INFO
+ public int nOccurrenceCount; // 规则被触发生次数
+ public int nLevel; // 事件级别,GB30147需求项
+ public int bIsObjectInfo; // 是否检测到物体信息
+ public NET_MSG_OBJECT stuObject; // 检测到的物体信息
+ public int nRetObjectNum; // 实际返回多个检测到的物体信息
+ public NET_MSG_OBJECT[] stuObjects = new NET_MSG_OBJECT[MAX_TARGET_OBJECT_NUM]; // 多个检测到的物体信息
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+
+ public ALARM_EVENT_CROSSLINE_INFO()
+ {
+ this.dwSize = this.size();
+
+ for (int i = 0; i < stuObjects.length; ++i) {
+ stuObjects[i] = new NET_MSG_OBJECT();
+ }
+ }
+ }
+
+ //警戒区事件(对应事件 NET_EVENT_CROSSREGION_DETECTION)
+ public static class ALARM_EVENT_CROSSREGION_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public int nChannelID; // 通道号
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int nEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public int emDirection; // 警戒区入侵方向,详见NET_CROSSREGION_DIRECTION_INFO
+ public int emActionType; // 警戒区检测动作类型,详见NET_CROSSREGION_ACTION_INFO
+ public int nOccurrenceCount; // 规则被触发生次数
+ public int nLevel; // 事件级别,GB30147需求项
+ public byte[] szName = new byte[NET_COMMON_STRING_128]; // 名称
+ public int bIsObjectInfo; // 是否检测到物体信息
+ public NET_MSG_OBJECT stuObject; // 检测到的物体信息
+ public int nRetObjectNum; // 实际返回多个检测到的物体信息
+ public NET_MSG_OBJECT[] stuObjects = new NET_MSG_OBJECT[MAX_TARGET_OBJECT_NUM]; // 多个检测到的物体信息
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public byte[] szMac = new byte[32]; // 事件触发源的Mac地址
+ public byte[] szReserved = new byte[1024]; // 预留字节
+
+ public ALARM_EVENT_CROSSREGION_INFO()
+ {
+ this.dwSize = this.size();
+
+ for (int i = 0; i < stuObjects.length; ++i) {
+ stuObjects[i] = new NET_MSG_OBJECT();
+ }
+ }
+ }
+
+ // 探测器状态
+ public static class EM_SENSOR_ABNORMAL_STATUS extends SdkStructure
+ {
+ public static final int NET_SENSOR_ABNORMAL_STATUS_UNKNOWN = 0;
+ public static final int NET_SENSOR_ABNORMAL_STATUS_SHORT = 1; // 短路
+ public static final int NET_SENSOR_ABNORMAL_STATUS_BREAK = 2; // 断路
+ public static final int NET_SENSOR_ABNORMAL_STATUS_INTRIDED = 3; // 被拆开
+ }
+
+ //事件类型(NET_ALARM_SENSOR_ABNORMAL) 探测器状态异常报警
+ public static class ALARM_SENSOR_ABNORMAL_INFO extends SdkStructure
+ {
+ public int nAction; // 0:开始 1:停止
+ public int nChannelID; // 视频通道号
+ public NET_TIME_EX stuTime; // 事件发生的时间
+ public int emStatus; // 探测器状态,详见EM_SENSOR_ABNORMAL_STATUS
+ public int emSenseMethod; // SenseMethod, 感应方式,参见具体枚举定义NET_SENSE_METHOD
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public byte[] byReserved = new byte[124]; // 预留字段
+ }
+
+ // 防区布防撤防状态类型
+ public static class EM_DEFENCEMODE extends SdkStructure
+ {
+ public static final int EM_DEFENCEMODE_UNKNOWN = 0; // "unknown" 未知
+ public static final int EM_DEFENCEMODE_ARMING = 1; // "Arming" 布防
+ public static final int EM_DEFENCEMODE_DISARMING = 2; // "Disarming" 撤防
+ }
+
+ //触发方式
+ public static class EM_ARMMODECHANGE_TRIGGERMODE extends SdkStructure
+ {
+ public static final int EM_ARMMODECHANGE_TRIGGERMODE_UNKNOWN = 0; // 未知
+ public static final int EM_ARMMODECHANGE_TRIGGERMODE_NET = 1; // 网络用户
+ public static final int EM_ARMMODECHANGE_TRIGGERMODE_KEYBOARD = 2; // 键盘
+ public static final int EM_ARMMODECHANGE_TRIGGERMODE_REMOTECONTROL = 3; // 遥控器
+ }
+
+ //防区类型
+ public static class EM_ARMMODECHANGE_DEFENCEAREATYPE extends SdkStructure
+ {
+ public static final int EM_ARMMODECHANGE_DEFENCEAREATYPE_UNKNOWN = 0; // 未知
+ public static final int EM_ARMMODECHANGE_DEFENCEAREATYPE_INTIME = 1; // 及时
+ public static final int EM_ARMMODECHANGE_DEFENCEAREATYPE_DELAY = 2; // 延时
+ public static final int EM_ARMMODECHANGE_DEFENCEAREATYPE_FULLDAY = 3; // 全天
+ public static final int EM_ARMMODECHANGE_DEFENCEAREATYPE_FOLLOW = 4; // 跟随
+ public static final int EM_ARMMODECHANGE_DEFENCEAREATYPE_MEDICAL = 5; // 医疗紧急
+ public static final int EM_ARMMODECHANGE_DEFENCEAREATYPE_PANIC = 6; // 恐慌
+ public static final int EM_ARMMODECHANGE_DEFENCEAREATYPE_FIRE = 7; // 火警
+ public static final int EM_ARMMODECHANGE_DEFENCEAREATYPE_FULLDAYSOUND = 8; // 全天有声
+ public static final int EM_ARMMODECHANGE_DEFENCEAREATYPE_FULLDAYSILENT = 9; // 全天无声
+ public static final int EM_ARMMODECHANGE_DEFENCEAREATYPE_ENTRANCE1 = 10; // 出入防区1
+ public static final int EM_ARMMODECHANGE_DEFENCEAREATYPE_ENTRANCE2 = 11; // 出入防区2
+ public static final int EM_ARMMODECHANGE_DEFENCEAREATYPE_INSIDE = 12; // 内部防区
+ public static final int EM_ARMMODECHANGE_DEFENCEAREATYPE_OUTSIDE = 13; // 外部防区
+ public static final int EM_ARMMODECHANGE_DEFENCEAREATYPE_PEOPLEDETECT = 14; // 人员检测
+ }
+
+ // 事件类型NET_ALARM_DEFENCE_ARMMODECHANGE (防区布撤防状态改变事件)
+ public static class ALARM_DEFENCE_ARMMODECHANGE_INFO extends SdkStructure
+ {
+ public int emDefenceStatus; // 布撤防状态,详见EM_DEFENCEMODE
+ public int nDefenceID; // 防区号
+ public NET_TIME_EX stuTime; // 时间
+ public int emTriggerMode; // 触发方式,详见EM_ARMMODECHANGE_TRIGGERMODE
+ public int emDefenceAreaType; // 防区类型,详见EM_ARMMODECHANGE_DEFENCEAREATYPE
+ public int nID; // 遥控器编号或键盘地址
+ public int nAlarmSubSystem; // 子系统号
+ public byte[] szName = new byte[64]; // 防区名称
+ public byte[] szNetClientAddr = new byte[64]; // 用户IP或网络地址
+ public byte[] reserved = new byte[368]; // 预留
+ }
+
+ // 工作状态
+ public static class EM_SUBSYSTEMMODE extends SdkStructure
+ {
+ public static final int EM_SUBSYSTEMMODE_UNKNOWN = 0; // "unknown" 未知
+ public static final int EM_SUBSYSTEMMODE_ACTIVE = 1; // "active" 激活
+ public static final int EM_SUBSYSTEMMODE_INACTIVE = 2; // "inactive" 未激活
+ public static final int EM_SUBSYSTEMMODE_UNDISTRIBUTED = 3; // "undistributed" 未分配
+ public static final int EM_SUBSYSTEMMODE_ALLARMING = 4; // "AllArming" 全部布防
+ public static final int EM_SUBSYSTEMMODE_ALLDISARMING = 5; // "AllDisarming" 全部撤防
+ public static final int EM_SUBSYSTEMMODE_PARTARMING = 6; // "PartArming" 部分布防
+ }
+
+ //触发方式
+ public static class EM_SUBSYSTEM_ARMMODECHANGE_TRIGGERMODE extends SdkStructure
+ {
+ public static final int EM_SUBSYSTEM_ARMMODECHANGE_TRIGGERMODE_UNKNOWN = 0; // 未知
+ public static final int EM_SUBSYSTEM_ARMMODECHANGE_TRIGGERMODE_NET = 1; // 网络用户
+ public static final int EM_SUBSYSTEM_ARMMODECHANGE_TRIGGERMODE_KEYBOARD = 2; // 键盘
+ public static final int EM_SUBSYSTEM_ARMMODECHANGE_TRIGGERMODE_REMOTECONTROL = 3; // 遥控器
+ }
+
+ // 事件类型 NET_ALARM_SUBSYSTEM_ARMMODECHANGE (子系统布撤防状态改变事件)
+ public static class ALARM_SUBSYSTEM_ARMMODECHANGE_INFO extends SdkStructure
+ {
+ public int emSubsystemMode; // 布撤防状态 (只支持AllArming,AllDisarming,PartArming三种状态),详见EM_SUBSYSTEMMODE
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public byte[] szSubSystemname = new byte[64]; // 子系统名称
+ public int nSubSystemID; // 子系统编号
+ public int emTriggerMode; // 触发方式,详见EM_SUBSYSTEM_ARMMODECHANGE_TRIGGERMODE
+ public int nID; // 键盘或遥控器地址
+ public byte[] szNetClientAddr = new byte[64]; // 网络用户IP地址或网络地址
+ public byte[] reserved = new byte[440]; // 预留
+ }
+
+ // 立体视觉站立事件区域内人员列表
+ public static class MAN_STAND_LIST_INFO extends SdkStructure
+ {
+ public NET_POINT stuCenter; // 站立人员所在位置,8192坐标系
+ public byte[] szSerialUUID = new byte[22]; // 智能物体全局唯一物体标识
+ // 有效数据位21位,包含’\0’
+ // 前2位%d%d:01-视频片段, 02-图片, 03-文件, 99-其他
+ // 中间14位YYYYMMDDhhmmss:年月日时分秒
+ // 后5位%u%u%u%u%u:物体ID,如00001
+ public DH_RECT stuBoundingBox; // 包围盒
+ public byte[] szReversed = new byte[90]; // 保留字节
+ }
+
+ // 事件类型EVENT_IVS_MAN_STAND_DETECTION(立体视觉站立事件)对应数据块描述信息
+ public static class DEV_EVENT_MANSTAND_DETECTION_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[NET_EVENT_NAME_LEN]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐,非保留字节
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ ///////////////////////////////以上为公共字段,除nChannelID外的其他字段是为了预留公共字段空间//////////////////////////////
+ public int nAction; // 0:脉冲 1:开始 2:停止
+ public int nManListCount; // 区域人员列表数量
+ public MAN_STAND_LIST_INFO[] stuManList = new MAN_STAND_LIST_INFO[MAX_MAN_LIST_COUNT]; // 区域内人员列表
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public byte[] szReversed = new byte[2048]; // 保留字节
+
+ public DEV_EVENT_MANSTAND_DETECTION_INFO()
+ {
+ for (int i = 0; i < stuManList.length; ++i) {
+ stuManList[i] = new MAN_STAND_LIST_INFO();
+ }
+ }
+ }
+
+ // 课堂行为动作类型
+ public static class EM_CLASSROOM_ACTION extends SdkStructure
+ {
+ public static final int EM_CLASSROOM_ACTION_UNKNOWN = 0; // 未知
+ public static final int EM_CLASSROOM_ACTION_PLAY_PHONE = 1; // 玩手机
+ public static final int EM_CLASSROOM_ACTION_HANDSUP = 2; // 举手
+ public static final int EM_CLASSROOM_ACTION_LISTEN = 3; // 听讲
+ public static final int EM_CLASSROOM_ACTION_READ_WRITE = 4; // 读写
+ public static final int EM_CLASSROOM_ACTION_TABLE = 5; // 趴桌子
+ }
+
+ // 事件类型 EVENT_IVS_CLASSROOM_BEHAVIOR (课堂行为分析事件) 对应的数据块描述信息
+ public static class DEV_EVENT_CLASSROOM_BEHAVIOR_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public int nAction; // 0:脉冲 1:开始 2:停止
+ public byte[] szName = new byte[128]; // 事件名称
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public int emClassType; // 智能事件所属大类,详见EM_SCENE_CLASS_TYPE
+ public int nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
+ public int nObjectID; // 物体ID
+ public int nSequence; // 帧序号
+ public int emClassroomAction; // 课堂行为动作,详见EM_CLASSROOM_ACTION
+ public NET_POINT[] stuDetectRegion = new NET_POINT[NET_MAX_DETECT_REGION_NUM]; // 规则检测区域
+ public int nDetectRegionNum; // 规则检测区域顶点数
+ public int nPresetID; // 事件触发的预置点号
+ public byte[] szPresetName = new byte[64]; // 事件触发的预置点名称
+ public byte[] szSerialUUID = new byte[22]; // 智能物体全局唯一物体标识
+ // 格式如下:前2位%d%d:01-视频片段,02-图片,03-文件,99-其他;
+ //中间14位YYYYMMDDhhmmss:年月日时分秒;后5位%u%u%u%u%u:物体ID,如00001
+ public byte[] byReserved1 = new byte[2]; // 用于字节对齐
+ public NET_RECT stuBoundingBox; // 包围盒
+ public NET_INTELLIGENCE_IMAGE_INFO stuSceneImage; // 人脸底图信息
+ public NET_INTELLIGENCE_IMAGE_INFO stuFaceImage; // 人脸小图信息
+ public NET_FACE_ATTRIBUTE_EX stuFaceAttributes; // 人脸属性
+ public NET_IMAGE_INFO_EX2 stuImageInfo[] = (NET_IMAGE_INFO_EX2[])new NET_IMAGE_INFO_EX2().toArray(32); //图片信息数组
+ public int nImageInfoNum; //图片信息个数
+ public byte byReserved[] = new byte[1024]; //预留字节
+
+ public DEV_EVENT_CLASSROOM_BEHAVIOR_INFO()
+ {
+ for (int i = 0; i < stuDetectRegion.length; ++i) {
+ stuDetectRegion[i] = new NET_POINT();
+ }
+ }
+ }
+
+ // 抓拍类型
+ public static class NET_EM_SNAP_SHOT_TYPE extends SdkStructure
+ {
+ public static final int NET_EM_SNAP_SHOT_TYPE_UNKNOWN = 0; // 未知
+ public static final int NET_EM_SNAP_SHOT_TYPE_NEAR = 1; // 近景
+ public static final int NET_EM_SNAP_SHOT_TYPE_MEDIUM = 2; // 中景
+ public static final int NET_EM_SNAP_SHOT_TYPE_FAR = 3; // 远景
+ public static final int NET_EM_SNAP_SHOT_TYPE_FEATURE = 4; // 车牌特写
+ }
+
+ // 抓拍间隔模式
+ public static class NET_EM_SNAP_SHOT_INTERVAL_MODE extends SdkStructure
+ {
+ public static final int NET_EM_SNAP_SHOT_INTERVAL_UNKNOWN = 0; // 未知
+ public static final int NET_EM_SNAP_SHOT_INTERVAL_TIME = 1; // 按固定时间间隔,该模式下nSingleInterval有效
+ public static final int NET_EM_SNAP_SHOT_INTERVAL_FRAMEADAPTSPEED = 2; // 速度自适应帧间隔
+ public static final int NET_EM_SNAP_SHOT_INTERVAL_FRAME = 3; // 固定帧间隔
+ }
+
+ // 规则集抓拍参数
+ public static class NET_SNAP_SHOT_WITH_RULE_INFO extends SdkStructure
+ {
+ public int nRuleId;
+ public int dwRuleType; // 规则类型,详见dhnetsdk.h中"智能分析事件类型"
+ public int nSnapShotNum; // 抓拍图片张数
+ public int[] emSnapShotType = new int[MAX_SNAP_SHOT_NUM]; // 抓拍图片类型数组,详见NET_EM_SNAP_SHOT_TYPE
+ public int[] nSingleInterval = new int[MAX_SNAP_SHOT_NUM]; // 抓图时间间隔数组,单位秒,数组第一个时间:5~180 默认10, 其余时间(N张抓拍有N-1个间隔时):1~3600 默认20
+ public int emIntervalMode; // 抓拍间隔模式,详见NET_EM_SNAP_SHOT_INTERVAL_MODE
+ public byte[] byReserved = new byte[1024]; // 预留
+ }
+
+ // 抓拍参数
+ public static class NET_SCENE_SNAP_SHOT_WITH_RULE2_INFO extends SdkStructure
+ {
+ public int nPresetID; // 场景预置点号
+ public int nRetSnapShotRuleNum; // stuSnapShotWithRule中有效数据个数
+ public NET_SNAP_SHOT_WITH_RULE_INFO[] stuSnapShotWithRule = new NET_SNAP_SHOT_WITH_RULE_INFO[32]; // 规则集抓拍参数
+ public byte[] byReserved = new byte[1024]; // 预留
+
+ public NET_SCENE_SNAP_SHOT_WITH_RULE2_INFO()
+ {
+ for (int i = 0; i < stuSnapShotWithRule.length; ++i) {
+ stuSnapShotWithRule[i] = new NET_SNAP_SHOT_WITH_RULE_INFO();
+ }
+ }
+ }
+
+ // 场景抓拍设置 对应枚举 NET_EM_CFG_SCENE_SNAP_SHOT_WITH_RULE2
+ public static class NET_CFG_SCENE_SNAP_SHOT_WITH_RULE2_INFO extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int nMaxRuleNum; // pstuSnapShotWithRule中用户分配的内存个数
+ public int nRetRuleNum; // pstuSnapShotWithRule中实际有效的数据个数
+ public Pointer pstuSceneSnapShotWithRule; // 抓拍参数,由用户分配和释放内存,大小为nMaxRuleNum * sizeof(NET_SCENE_SNAP_SHOT_WITH_RULE2_INFO),指向NET_SCENE_SNAP_SHOT_WITH_RULE2_INFO
+
+ public NET_CFG_SCENE_SNAP_SHOT_WITH_RULE2_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 车辆动作
+ public static class EM_VEHICLE_ACTION extends Structure {
+ public static final int EM_VEHICLE_ACTION_UNKNOWN = 0; // 未知
+ public static final int EM_VEHICLE_ACTION_APPEAR = 1; // "Appear"在检测区域内
+ public static final int EM_VEHICLE_ACTION_DISAPPEAR = 2; // "Disappear"离开检测区域
+ }
+
+ // 检测到的车辆信息
+ public static class NET_DETECT_VEHICLE_INFO extends SdkStructure {
+ public int emAction; // 检测车辆动作
+ public int /*UINT*/ nObjectID; // 物体ID
+ public EVENT_PIC_INFO stuVehicleImage; // 车辆抓图信息
+ public NET_COLOR_RGBA stuColor; // 车身主要颜色
+ public int emCategoryType; // 车辆类型,参考枚举EM_CATEGORY_TYPE
+ public int /*UINT*/ nFrameSequence; // 帧序号
+ public int /*UINT*/ nCarLogoIndex; // 车辆车标
+ public int /*UINT*/ nSubBrand; // 车辆子品牌
+ public int /*UINT*/ nBrandYear; // 车辆品牌年款
+ public int /*UINT*/ nConfidence; // 置信度,值越大表示置信度越高, 范围 0~255
+ public NET_RECT stuBoundingBox; // 包围盒, 0-8191相对坐标
+ public byte[] szText = new byte[128]; // 车标
+ public int /*UINT*/ nSpeed; // 车速,单位为km/h
+ public int /*UINT*/ nDirection; // 车辆行驶方向, 0:未知, 1:上行方向, 2:下行方向
+ public byte[] bReserved = new byte[512]; // 保留字节
+ }
+
+ // 检测的车牌信息
+ public static class NET_DETECT_PLATE_INFO extends SdkStructure {
+ public int /*UINT*/ nObjectID; // 车牌ID
+ public int /*UINT*/ nRelativeID; // 关联的车辆ID
+ public EVENT_PIC_INFO stuPlateImage; // 车牌图片信息
+ public int emPlateType; // 车牌类型,参考枚举EM_NET_PLATE_TYPE
+ public int emPlateColor; // 车牌颜色,参考枚举EM_NET_PLATE_COLOR_TYPE
+ public int /*UINT*/ nConfidence; // 置信度,值越大表示置信度越高, 范围 0~255
+ public byte[] szCountry = new byte[3]; // 车牌国家
+ public byte bReserved1; // 字节对齐
+ public byte[] szPlateNumber = new byte[128]; // 车牌号码
+ public byte[] bReserved = new byte[512]; // 保留字节
+ }
+
+ // 加油站车辆检测事件 (对应 DEV_EVENT_GASSTATION_VEHICLE_DETECT_INFO)
+ public static class DEV_EVENT_GASSTATION_VEHICLE_DETECT_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public int nAction; // 0:脉冲1:开始 2:停止
+ public byte[] szName = new byte[NET_EVENT_NAME_LEN]; // 事件名称
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
+ public int emClassType; // 智能事件所属大类
+ public NET_DETECT_VEHICLE_INFO stuDetectVehicleInfo; // 检测到的车辆信息
+ public NET_DETECT_PLATE_INFO stuDetectPlateInfo; // 检测到的车牌信息
+ public boolean bIsGlobalScene; // 是否有场景图
+ public EVENT_PIC_INFO stuSceneImage; // 场景图信息, bIsGlobalScene 为 TRUE 时有效
+ public int nCarCandidateNum; // 候选车辆数量
+ public NET_CAR_CANDIDATE_INFO[] stuCarCandidate = (NET_CAR_CANDIDATE_INFO[])new NET_CAR_CANDIDATE_INFO().toArray(MAX_CAR_CANDIDATE_NUM); // 候选车辆数据
+ /*public boolean bIsEmptyPlace; // 是否是空车位报警*/
+ public NET_FUEL_DISPENSER_INFO stuFuelDispenser; // 从加油机获取的信息,IVSS对接加油机及N8000
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
+ public byte[] bReserved = new byte[872]; // 保留字节
+ }
+
+ // 事件级别,GB30147需求
+ public static class EM_EVENT_LEVEL extends Structure
+ {
+ public static final int EM_EVENT_LEVEL_HINT = 0; // 提示
+ public static final int EM_EVENT_LEVEL_GENERAL = 1; // 普通
+ public static final int EM_EVENT_LEVEL_WARNING = 2; // 警告
+ }
+
+ // 事件类型EVENT_IVS_SHOPPRESENCE(商铺占道经营事件)对应的数据块描述信息
+ public static class DEV_EVENT_SHOPPRESENCE_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_MSG_OBJECT stuObject; // 检测到的物体,推荐使用字段stuObjects获取物体信息
+ public int nDetectRegionNum; // 规则检测区域顶点数
+ public NET_POINT[] DetectRegion = (NET_POINT[])new NET_POINT().toArray(NET_MAX_DETECT_REGION_NUM); // 规则检测区域
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] byReserved = new byte[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
+ public int nSourceIndex; // 事件源设备上的index,-1表示数据无效
+ public byte[] szSourceDevice = new byte[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
+ public int nOccurrenceCount; // 事件触发累计次数
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public byte[] szPresetName = new byte[64]; // 事件触发的预置点名称
+ public int emEventLevel; // 事件级别,GB30147需求
+ public byte[] szShopAddress = new byte[256]; // 商铺地址
+ public int nViolationDuration; // 违法持续时长,单位:秒,缺省值0表示无意义
+ public int nObjectNum; // 检测到的物体个数
+ public NET_MSG_OBJECT[] stuObjects = (NET_MSG_OBJECT[]) new NET_MSG_OBJECT().toArray(HDBJ_MAX_OBJECTS_NUM); // 检测到的物体
+ public byte[] szSourceID = new byte[32]; // 事件关联ID,同一个物体或图片生成多个事件时SourceID相同
+ public Pointer pstuImageInfo; // 图片信息数组,指针对应NET_IMAGE_INFO_EX2数组
+ public int nImageInfoNum; // 图片信息个数
+ public SCENE_IMAGE_INFO_EX stuSceneImage = new SCENE_IMAGE_INFO_EX(); // 全景图图片信息,事件前2~5s抓图
+ public Pointer pstuMosaicImage; // 合成图,指针对应SCENE_IMAGE_INFO_EX数组
+ public int nMosaicImageNum; // 合成图个数
+ public Pointer pstuAdvanceImage; // 事件发生前抓图,指针对应SCENE_IMAGE_INFO_EX数组
+ public int nAdvanceImageNum; // 事件发生前抓图个数
+ public byte[] byReserved2 = new byte[1248-POINTERSIZE*3]; // 保留字节
+ }
+
+ // 事件类型 EVENT_IVS_FLOWBUSINESS (流动摊贩事件) 对应的数据块描述信息
+ public static class DEV_EVENT_FLOWBUSINESS_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public int nAction; // 0:脉冲 1:开始 2:停止
+ public byte[] szName = new byte[128]; // 事件名称
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public int nDetectRegionNum; // 检测区域顶点数
+ public NET_POINT[] DetectRegion = (NET_POINT[])new NET_POINT().toArray(NET_MAX_DETECT_REGION_NUM); // 检测区域
+ public byte[] szPresetName = new byte[64]; // 事件触发的预置名称
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public int nViolationDuration; // 违法持续时长,单位:秒 缺省值0表示无意义
+ public int nObjectNum; // 检测到的物体个数
+ public NET_MSG_OBJECT[] stuObjects = (NET_MSG_OBJECT[]) new NET_MSG_OBJECT().toArray(HDBJ_MAX_OBJECTS_NUM); // 检测到的物体
+ public byte[] szSourceID = new byte[32]; // 事件关联ID,同一个物体或图片生成多个事件时SourceID相同
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
+ public byte[] byReserved = new byte[2044]; // 保留字节
+ }
+
+ // 立体视觉区域内人数统计事件区域人员列表
+ public static class MAN_NUM_LIST_INFO extends SdkStructure
+ {
+ public DH_RECT stuBoudingBox; // 人员包围盒,8192坐标系
+ public int nStature; // 人员身高,单位cm
+ public byte[] szReversed = new byte[128]; // 保留字节
+ }
+
+ /**
+ * @author 260611
+ * @description 事件类型EVENT_IVS_MAN_NUM_DETECTION(立体视觉区域内人数统计事件)对应数据块描述信息
+ * @date 2023/01/10 19:44:49
+ */
+ public class DEV_EVENT_MANNUM_DETECTION_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 字节对齐, 非保留字节
+ */
+ public byte[] bReserved1 = new byte[4];
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double PTS;
+ /**
+ * 事件发生的时间
+ */
+ public com.netsdk.lib.structure.NET_TIME_EX UTC = new com.netsdk.lib.structure.NET_TIME_EX();
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 0:脉冲 1:开始 2:停止
+ */
+ public int nAction;
+ /**
+ * 区域人员列表数量
+ */
+ public int nManListCount;
+ /**
+ * 区域内人员列表
+ */
+ public MAN_NUM_LIST_INFO[] stuManList = new MAN_NUM_LIST_INFO[64];
+ /**
+ * 智能事件公共信息
+ */
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo = new EVENT_INTELLI_COMM_INFO();
+ /**
+ * 区域ID(一个预置点可以对应多个区域ID)
+ */
+ public int nAreaID;
+ /**
+ * 变化前人数
+ */
+ public int nPrevNumber;
+ /**
+ * 当前人数
+ */
+ public int nCurrentNumber;
+ /**
+ * 事件关联ID。应用场景是同一个物体或者同一张图片做不同分析,产生的多个事件的SourceID相同
+ * 缺省时为空字符串,表示无此信息
+ * 格式:类型+时间+序列号,其中类型2位,时间14位,序列号5位
+ */
+ public byte[] szSourceID = new byte[32];
+ /**
+ * null
+ */
+ public byte[] szRuleName = new byte[128];
+ /**
+ * 检测模式 {@link com.netsdk.lib.enumeration.EM_EVENT_DETECT_TYPE}
+ */
+ public int emDetectType;
+ /**
+ * 实际触发报警的人数
+ */
+ public int nAlertNum;
+ /**
+ * 报警类型. 0:未知, 1:从人数正常到人数异常, 2:从人数异常到人数正常
+ */
+ public int nAlarmType;
+ /**
+ * 图片信息数组
+ */
+ public Pointer pstuImageInfo;
+ /**
+ * 图片信息个数
+ */
+ public int nImageInfoNum;
+ /**
+ * 事件公共扩展字段结构体
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * 检测区个数
+ */
+ public int nDetectRegionNum;
+ /**
+ * 检测区
+ */
+ public NET_POINT_EX[] stuDetectRegion = new NET_POINT_EX[20];
+ /**
+ * 保留字节
+ */
+ public byte[] szReversed = new byte[700];
+
+ public DEV_EVENT_MANNUM_DETECTION_INFO() {
+ for (int i = 0; i < stuManList.length; i++) {
+ stuManList[i] = new MAN_NUM_LIST_INFO();
+ }
+ for (int i = 0; i < stuDetectRegion.length; i++) {
+ stuDetectRegion[i] = new NET_POINT_EX();
+ }
+ }
+ }
+
+ public static class EM_ALARM_TYPE extends SdkStructure
+ {
+ public static final int EM_ALARM_TYPE_UNKNOWN = 0; // 未知类型
+ public static final int EM_ALARM_TYPE_CROWD_DENSITY = 1; // 拥挤人群密度报警
+ public static final int EM_ALARM_TYPE_NUMBER_EXCEED = 2; // 人数超限报警
+ public static final int EM_ALARM_TYPE_CROWD_DENSITY_AND_NUMBER_EXCEED = 3; // 拥挤人群密度报警和人数超限报警
+ }
+
+ // 全局拥挤人群密度列表(圆形)信息
+ public static class NET_CROWD_LIST_INFO extends SdkStructure
+ {
+ public NET_POINT stuCenterPoint = new NET_POINT(); // 中心点坐标,8192坐标系
+ public int nRadiusNum; // 半径像素点个数
+ public byte[] byReserved = new byte[1024]; // 保留字节
+ }
+
+ // 人数超限的报警区域ID列表信息
+ public static class NET_REGION_LIST_INFO extends SdkStructure
+ {
+ public int nRegionID; // 配置的区域下标
+ public int nPeopleNum; // 区域内人数统计值
+ public byte[] szName = new byte[32]; // 配置的名称
+ public DH_POINT[] stuDetectRegion = new DH_POINT[20]; // 配置的检测区域坐标
+ public int nDetectRegionNum; // 配置的检测区域坐标个数
+ public byte[] byReserved = new byte[908]; // 保留字节
+ }
+
+ // 全局拥挤人群密度列表(矩形)信息
+ public static class NET_CROWD_RECT_LIST_INFO extends SdkStructure
+ {
+ public NET_POINT[] stuRectPoint = (NET_POINT[])new NET_POINT().toArray(RECT_POINT); // 矩形的左上角点与右下角点,8192坐标系,表示矩形的人群密度矩形框
+ public byte[] byReserved = new byte[32]; // 保留字节
+ }
+
+ // 事件类型 EVENT_IVS_CROWDDETECTION(人群密度检测事件)对应的数据块描述信息
+ public static class DEV_EVENT_CROWD_DETECTION_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public int nEventID; // 事件ID
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
+ public int emAlarmType; // 报警业务类型
+ public byte[] szName = new byte[MAX_CROWD_DETECTION_NAME_LEN]; // 事件名称
+ public int nCrowdListNum; // 返回的全局拥挤人群密度列表个数 (圆形描述)
+ public int nRegionListNum; // 返回的人数超限的报警区域ID列表个数
+ public NET_CROWD_LIST_INFO[] stuCrowdList = new NET_CROWD_LIST_INFO[MAX_CROWD_LIST_NUM]; // 全局拥挤人群密度列表信息(圆形描述)
+ public NET_REGION_LIST_INFO[] stuRegionList = new NET_REGION_LIST_INFO[MAX_REGION_LIST_NUM]; // 人数超限的报警区域ID列表信息
+ public NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
+ public int nCrowdRectListNum; // 返回的全局拥挤人群密度列表个数 (矩形描述)
+ public NET_CROWD_RECT_LIST_INFO[] stuCrowdRectList = new NET_CROWD_RECT_LIST_INFO[MAX_CROWD_RECT_LIST]; // 全局拥挤人群密度列表信息(矩形描述)
+ public int nGlobalPeopleNum; // 检测区全局总人数
+ public Pointer pstuImageInfo; // 图片信息数组 ,结构体NET_IMAGE_INFO_EX2数组指针
+ public int nImageInfoNum; // 图片信息个数
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public byte[] byReserved = new byte[680]; // 保留扩展字节
+ }
+
+ // 人群密度检测事件(对应事件NET_ALARM_CROWD_DETECTION)
+ public static class ALARM_CROWD_DETECTION_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public int nEventID; // 事件ID
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
+ public int emAlarmType; // 报警业务类型
+ public byte[] szName = new byte[MAX_CROWD_DETECTION_NAME_LEN]; // 事件名称
+ public int nCrowdListNum; // 返回的全局拥挤人群密度列表个数
+ public int nRegionListNum; // 返回的人数超限的报警区域ID列表个数
+ public NET_CROWD_LIST_INFO[] stuCrowdList = new NET_CROWD_LIST_INFO[MAX_CROWD_LIST_NUM]; // 全局拥挤人群密度列表信息
+ public NET_REGION_LIST_INFO[] stuRegionList = new NET_REGION_LIST_INFO[MAX_REGION_LIST_NUM]; // 人数超限的报警区域ID列表信息
+ public NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public byte[] byReserved = new byte[896]; // 保留扩展字节
+ }
+
+ // 对象目标类型
+ public static class EM_OBJECT_TYPE extends SdkStructure
+ {
+ public static final int EM_OBJECT_TYPE_UNKNOWN = -1; // 未知
+ public static final int EM_OBJECT_TYPE_FACE = 0; // 目标
+ public static final int EM_OBJECT_TYPE_HUMAN = 1; // 人体
+ public static final int EM_OBJECT_TYPE_VECHILE = 2; // 机动车
+ public static final int EM_OBJECT_TYPE_NOMOTOR = 3; // 非机动车
+ public static final int EM_OBJECT_TYPE_ALL = 4; // 所有类型
+ }
+
+ // CLIENT_StartMultiFindFaceRecognition 接口输入参数
+ public static class NET_IN_STARTMULTIFIND_FACERECONGNITION extends SdkStructure
+ {
+ public int dwSize;
+ public Pointer pChannelID; // 通道号
+ public int nChannelCount; // 通道申请个数
+ public int bPersonEnable; // 人员信息查询条件是否有效
+ public FACERECOGNITION_PERSON_INFO stPerson; // 人员信息查询条件
+ public NET_FACE_MATCH_OPTIONS stMatchOptions; // 人脸匹配选项
+ public NET_FACE_FILTER_CONDTION stFilterInfo; // 查询过滤条件
+ // 图片二进制数据
+ public Pointer pBuffer; // 缓冲地址
+ public int nBufferLen; // 缓冲数据长度
+ public int bPersonExEnable; // 人员信息查询条件是否有效, 并使用人员信息扩展结构体
+ public FACERECOGNITION_PERSON_INFOEX stPersonInfoEx; // 人员信息扩展
+ public int emObjectType; // 搜索的目标类型,参考EM_OBJECT_TYPE
+ public int nChannelNum; // 通道有效个数
+ public byte[] szChannelString = new byte[512*32]; // 通道号(使用)
+ public int nProcessType; // 以图搜图类型, -1: 未知, 0: 特征值搜索, 1: SMD属性特征搜索
+ public int bIsUsingTaskID; // 是否使能订阅的TaskID字段
+ public int nTaskIDNum; // 订阅的TaskID数组有效个数
+ public int[] nTaskID = new int[128]; // 订阅的TaskID, bIsUsingTaskID为TRUE,nTaskIDNum为0表示订阅所有任务结果
+
+ public NET_IN_STARTMULTIFIND_FACERECONGNITION() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // CLIENT_StartMultiFindFaceRecognition 接口输出参数
+ public static class NET_OUT_STARTMULTIFIND_FACERECONGNITION extends SdkStructure
+ {
+ public int dwSize;
+ public int nTotalCount; // 返回的符合查询条件的记录个数
+ // -1表示总条数未生成,要推迟获取
+ // 使用CLIENT_AttachFaceFindState接口状态
+ public LLong lFindHandle; // 查询句柄
+ public int nToken; // 获取到的查询令牌
+
+ public NET_OUT_STARTMULTIFIND_FACERECONGNITION() {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 开始目标检测/注册库的多通道查询
+ public Boolean CLIENT_StartMultiFindFaceRecognition(LLong lLoginID,NET_IN_STARTMULTIFIND_FACERECONGNITION pstInParam,NET_OUT_STARTMULTIFIND_FACERECONGNITION pstOutParam,int nWaitTime);
+
+ // 事件类型 EVENT_IVS_PEDESTRIAN_JUNCTION (行人卡口事件) 对应的数据块描述信息
+ public static class DEV_EVENT_PEDESTRIAN_JUNCTION_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[NET_EVENT_NAME_LEN]; // 事件名称
+ public int nGroupID; // 事件组ID, 同一个人抓拍过程内nGroupID相同
+ public int nCountInGroup; // 一个事件组内的抓拍张数
+ public int nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
+ public double PTS; // 事件戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int UTCMS; // UTC时间对应的毫秒数
+ public int nEventID; // 事件ID
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public NET_MSG_OBJECT stuObject; // 人脸信息
+ public int nLane; // 人行道号
+ public int nSequence; // 表示抓拍序号,如3/2/1,1表示抓拍结束,0表示异常结束
+ public VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
+ public boolean bHasNonMotor; // stuNonMotor 字段是否有效
+ public NET_MSG_OBJECT stuVehicle; // 行人信息
+ public Pointer pstuSceneImage; //全景图,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.SCENE_IMAGE_INFO_EX}
+ public byte[] byReserved = new byte[344-2*POINTERSIZE]; // 保留字节
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //扩展协议字段,参见结构体定义 {@link com.netsdk.lib.structure.NET_EVENT_INFO_EXTEND}
+ }
+
+ // 多人多开门方式组合(对应 CFG_CMD_OPEN_DOOR_GROUP 命令),表示每个通道的组合信息,
+ // 第一个通道的组合的开门优先级最高,后面依次递减
+ public static class CFG_OPEN_DOOR_GROUP_INFO extends SdkStructure {
+ public int nGroup; // 有效组合数
+ public CFG_OPEN_DOOR_GROUP[] stuGroupInfo = new CFG_OPEN_DOOR_GROUP[CFG_MAX_OPEN_DOOR_GROUP_NUM]; // 多人开门组合信息
+ public int nGroupMaxNum; // 组合总数,指明pGroupInfoEx实际内存空间大小,获取和下发均需要用户赋值,非0时nGroup、stuGroupInfo字段不生效
+ public int nGroupRetNum; // 实际有效的组合数,获取时由动态库赋值,下发时由用户赋值
+ public Pointer pGroupInfoEx; //多人开门组合信息扩展,内存有用户申请,指针对应CFG_OPEN_DOOR_GROUP数组
+ public byte[] szReserved = new byte[2048]; // 保留字节
+ }
+
+ // 多人组合开门组信息
+ public static class CFG_OPEN_DOOR_GROUP extends SdkStructure {
+ public int nUserCount; // 用户数目,表示需要组合才能开门的人数
+ public int nGroupNum; // 有效组数目
+ public CFG_OPEN_DOOR_GROUP_DETAIL[] stuGroupDetail = new CFG_OPEN_DOOR_GROUP_DETAIL[CFG_MAX_OPEN_DOOR_GROUP_DETAIL_NUM]; // 多人组合开门组的详细信息
+ public Boolean bGroupDetailEx; // TRUE: stuGroupDetail
+ // 字段无效、pstuGroupDetailEx字段有效, FALSE:
+ // stuGroupDetail
+ // 字段有效、pstuGroupDetailEx字段无效
+ public int nMaxGroupDetailNum; // 多人组合开门组的详细信息最大个数
+ public Pointer pstuGroupDetailEx; /*
+ * 多人组合开门组的详细信息扩展, 由用户申请内存,
+ * 大小为sizeof(CFG_OPEN_DOOR_GROUP_DETAIL
+ * )*nMaxUserCount, 当多人组合开门组的详细信息个数大于
+ * CFG_MAX_OPEN_DOOR_GROUP_DETAIL_NUM
+ * 时使用此字段
+ */
+ }
+
+ // 多人组合开门组详细信息
+ public static class CFG_OPEN_DOOR_GROUP_DETAIL extends SdkStructure {
+ public byte[] szUserID = new byte[CFG_MAX_USER_ID_LEN]; // 用户ID
+ public int emMethod; // 开门方式
+ public int nMethodExNum; // 开门方式扩展个数
+ public int[] emMethodEx = new int[CFG_MAX_METHODEX_NUM]; // 开门方式扩展
+ }
+
+ public static class EM_CFG_OPEN_DOOR_GROUP_METHOD extends SdkStructure {
+ public static final int EM_CFG_OPEN_DOOR_GROUP_METHOD_UNKNOWN = 0;
+ public static final int EM_CFG_OPEN_DOOR_GROUP_METHOD_CARD = 1; // 刷卡
+ public static final int EM_CFG_OPEN_DOOR_GROUP_METHOD_PWD = 2; // 密码
+ public static final int EM_CFG_OPEN_DOOR_GROUP_METHOD_FINGERPRINT = 3; // 信息
+ public static final int EM_CFG_OPEN_DOOR_GROUP_METHOD_ANY = 4; // 任意组合方式开门
+ public static final int EM_CFG_OPEN_DOOR_GROUP_METHOD_FACE = 5; // 人脸
+ }
+
+ // 开始查找X光机包裹信息
+ public LLong CLIENT_StartFindXRayPkg(LLong lLoginID,NET_IN_START_FIND_XRAY_PKG pInParam,NET_OUT_START_FIND_XRAY_PIC pOutParam,int nWaitTime);
+
+ // 查询X光机包裹的信息
+ public Boolean CLIENT_DoFindXRayPkg(LLong lFindID,NET_IN_DO_FIND_XRAY_PKG pInParam,NET_OUT_DO_FIND_XRAY_PKG pOutParam,int nWaitTime);
+
+ // 结束查询X光机包裹的信息
+ public Boolean CLIENT_StopFindXRayPkg(LLong lFindID);
+
+ // 物品类型
+ public static class EM_INSIDE_OBJECT_TYPE
+ {
+ public static final int EM_INSIDE_OBJECT_UNKNOWN = 0; // 算法未识别物品
+ public static final int EM_INSIDE_OBJECT_KNIFE = 1; // 刀具
+ public static final int EM_INSIDE_OBJECT_BOTTLELIQUID = 2; // 瓶装液体
+ public static final int EM_INSIDE_OBJECT_GUN = 3; // 枪支
+ public static final int EM_INSIDE_OBJECT_UMBRELLA = 4; // 雨伞
+ public static final int EM_INSIDE_OBJECT_PHONE = 5; // 手机
+ public static final int EM_INSIDE_OBJECT_NOTEBOOK = 6; // 笔记本
+ public static final int EM_INSIDE_OBJECT_POWERBANK = 7; // 充电宝
+ public static final int EM_INSIDE_OBJECT_SHOES = 8; // 鞋子
+ public static final int EM_INSIDE_OBJECT_ROD = 9; // 杠子
+ public static final int EM_INSIDE_OBJECT_METAL = 10; // 金属
+ public static final int EM_INSIDE_OBJECT_EXPLOSIVE = 11; // 爆炸物
+ public static final int EM_INSIDE_OBJECT_CONTAINERSPRAY = 12; // 喷雾喷灌
+ public static final int EM_INSIDE_OBJECT_EXPLOSIVE_FIREWORKS = 13; // 烟花爆竹
+ public static final int EM_INSIDE_OBJECT_LIGHTER = 14; // 打火机
+ public static final int EM_INSIDE_OBJECT_STICK = 15; // 警棍
+ public static final int EM_INSIDE_OBJECT_BRASSKNUCKLE = 16; // 指虎
+ public static final int EM_INSIDE_OBJECT_HANDCUFFS = 17; // 手铐
+ public static final int EM_INSIDE_OBJECT_IVORY = 18; // 象牙
+ public static final int EM_INSIDE_OBJECT_BOOK = 19; // 书籍
+ public static final int EM_INSIDE_OBJECT_CD = 20; // 光盘
+ public static final int EM_INSIDE_OBJECT_HAMMERS = 21; // 锤子
+ public static final int EM_INSIDE_OBJECT_PLIERS = 22; // 钳子
+ public static final int EM_INSIDE_OBJECT_AXE = 23; // 斧头
+ public static final int EM_INSIDE_OBJECT_SCREW_DRIVER = 24; // 螺丝刀
+ public static final int EM_INSIDE_OBJECT_WRENCH = 25; // 扳手
+ public static final int EM_INSIDE_OBJECT_ELECTRIC_SHOCK_STICK = 26; // 电击棍
+ public static final int EM_INSIDE_OBJECT_THERMOS = 27; // 保温杯
+ public static final int EM_INSIDE_OBJECT_GLASS_BOTTLES = 28; // 玻璃杯
+ public static final int EM_INSIDE_OBJECT_PLASTIC_BOTTLE = 29; // 塑料瓶
+ public static final int EM_INSIDE_OBJECT_IGNITION_OIL = 30; // 打火机油
+ public static final int EM_INSIDE_OBJECT_NAIL_POLISH = 31; // 指甲油
+ public static final int EM_INSIDE_OBJECT_BLUNT_INSTRUMENT = 32; // 工具
+ public static final int EM_INSIDE_OBJECT_SCISSORS = 33; // 剪刀
+ public static final int EM_INSIDE_OBJECT_ELECTRONIC = 34; // 电子产品
+ public static final int EM_INSIDE_OBJECT_PISTOL = 35; // 手枪
+ public static final int EM_INSIDE_OBJECT_FOLDINGKNIFE = 36; // 折叠刀
+ public static final int EM_INSIDE_OBJECT_SHARPKNIFE = 37; // 尖刀
+ public static final int EM_INSIDE_OBJECT_KITCHENKNIFE = 38; // 菜刀
+ public static final int EM_INSIDE_OBJECT_UTILITYKNIFE = 39; // 美工刀
+ public static final int EM_INSIDE_OBJECT_FIREWORKS = 40; // 烟花
+ public static final int EM_INSIDE_OBJECT_FIRECRACKER = 41; // 爆竹
+ public static final int EM_INSIDE_OBJECT_POWDER = 42; // 粉末
+ public static final int EM_INSIDE_OBJECT_IMPENETERABLE_MATERALS = 43; //难穿透物品
+ public static final int EM_INSIDE_OBJECT_CIGARETTE = 44; //香烟
+ public static final int EM_INSIDE_OBJECT_BATTERY = 45; //电池
+ public static final int EM_INSIDE_OBJECT_GUNPARTS = 46; //零部件
+ public static final int EM_INSIDE_OBJECT_MATCH = 47; //火柴
+ public static final int EM_INSIDE_OBJECT_GUNGRIP = 48; //握把
+ public static final int EM_INSIDE_OBJECT_GUNMAGAZINE = 49; //弹夹
+ public static final int EM_INSIDE_OBJECT_GUNSLEEVE = 50; //套筒
+ public static final int EM_INSIDE_OBJECT_GUNBARREL = 51; //枪管
+ public static final int EM_INSIDE_OBJECT_BULLET = 52; //子弹
+ public static final int EM_INSIDE_OBJECT_GRENADE = 53; //手雷
+ public static final int EM_INSIDE_OBJECT_CERAMICSHEET = 54; //陶瓷片
+ public static final int EM_INSIDE_OBJECT_GLASSSHEET = 55; //玻璃片
+ public static final int EM_INSIDE_OBJECT_IPADBASE = 56; //IPAD底壳
+ public static final int EM_INSIDE_OBJECT_SLINGSHOT = 57; //弹弓
+ public static final int EM_INSIDE_OBJECT_DRUG = 58; //毒品
+ public static final int EM_INSIDE_OBJECT_EXPLOSIVEPACKAGE = 59; //炸药包
+ public static final int EM_INSIDE_OBJECT_CELLBATTERY = 60; //纽扣电池
+ public static final int EM_INSIDE_OBJECT_LEADBATTERY = 61; //铅蓄电池
+ public static final int EM_INSIDE_OBJECT_METALLIGHTER = 62; //金属打火机
+ public static final int EM_INSIDE_OBJECT_COSMETICBOTTLE = 63; //化妆瓶
+ public static final int EM_INSIDE_OBJECT_CONTAINERCAN = 64; //易拉罐
+ public static final int EM_INSIDE_OBJECT_AIRBOTTLE = 65; //气罐
+ public static final int EM_INSIDE_OBJECT_SQUAREKNIFE = 66; //方刀
+ public static final int EM_INSIDE_OBJECT_WALKIETALKIE = 67; ///// 对讲机
+ public static final int EM_INSIDE_OBJECT_ROUTER = 68; ///// 路由器
+ public static final int EM_INSIDE_OBJECT_MICROPHONE = 69; ///// 话筒
+ public static final int EM_INSIDE_OBJECT_UNMANED_AERIAL_VEHICLE = 70; ///// 无人机
+ public static final int EM_INSIDE_OBJECT_ELECTRICAL_RELAY = 71; ///// 继电器
+ public static final int EM_INSIDE_OBJECT_DETONATOR = 72; ///// 雷管
+ public static final int EM_INSIDE_OBJECT_BLASTINGFUSE = 73; ///// 导火索
+ public static final int EM_INSIDE_OBJECT_EXPLOSIVEFLUID = 74; ///// 流体爆炸物
+ public static final int EM_INSIDE_OBJECT_NAILGUN = 75; ///// 炮钉枪
+ public static final int EM_INSIDE_OBJECT_NAIL = 76; ///// 炮钉
+ public static final int EM_INSIDE_OBJECT_DRYBATTERY = 77; ///// 干电池
+ public static final int EM_INSIDE_OBJECT_LITHIUMBATTERY = 78; ///// 锂电池
+ public static final int EM_INSIDE_OBJECT_SAW = 79; ///// 锯子
+ public static final int EM_INSIDE_OBJECT_TABLEKNIFE = 80; ///// 餐刀
+ public static final int EM_INSIDE_OBJECT_PLASTICUTTER = 81; ///// 勾刀
+ public static final int EM_INSIDE_OBJECT_BOLT = 82; ///// 弩箭
+ public static final int EM_INSIDE_OBJECT_CROSSBOW = 83; ///// 弩
+ public static final int EM_INSIDE_OBJECT_SHAVER = 84; ///// 剃须刀
+ public static final int EM_INSIDE_OBJECT_ELECTRIC_TOOTHBRUSH = 85; ///// 电动牙刷
+ public static final int EM_INSIDE_OBJECT_OILDRUM = 86; ///// 油桶
+ }
+
+ // 危险等级
+ public static class EM_DANGER_GRADE_TYPE extends SdkStructure
+ {
+ public static final int EM_DANGER_GRADE_UNKNOWN = -1; // 未知
+ public static final int EM_DANGER_GRADE_NORMAL = 0; // 普通级别
+ public static final int EM_DANGER_GRADE_WARN = 1; // 警示级别
+ public static final int EM_DANGER_GRADE_DANGER = 2; // 危险级别
+ }
+
+ // CLIENT_StartFindXRayPkg 接口输入参数
+ public static class NET_IN_START_FIND_XRAY_PKG extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int emTimeOrder; // 查询结果按时间排序
+ public NET_TIME stuStartTime; // 查询的开始时间
+ public NET_TIME stuEndTime; // 查询的结束时间
+ public int[] nSimilarityRange = new int[2]; // 相似度范围,下标0:表示最小值, 下标1:表示最大值
+ public int nObjTypeNum; // 物体类型的数量
+ public int[] emObjType = new int[32]; // 物品类型,参考枚举EM_INSIDE_OBJECT_TYPE
+ public int nObjTypeCount; // 自定义物体类型的数量
+ public NET_XRAY_INSIDE_ONJECT_TYPE[] stuObjType = (NET_XRAY_INSIDE_ONJECT_TYPE[]) new NET_XRAY_INSIDE_ONJECT_TYPE().toArray(32); // 自定义物品类型
+
+ public NET_IN_START_FIND_XRAY_PKG()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // X光机物体信息
+ public static class NET_PKG_OBJECT_INFO extends SdkStructure
+ {
+ public int emObjType; // 物品类型
+ public int emDangerGrade; // 物品危险等级
+ public int nSimilarity; // 相似度,0~100
+ public byte[] byReserved = new byte[132]; // 保留字节
+ }
+
+ // CLIENT_StartFindXRayPkg 接口输出参数
+ public static class NET_OUT_START_FIND_XRAY_PIC extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int nTotal; // 包裹总数
+
+ public NET_OUT_START_FIND_XRAY_PIC()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // CLIENT_DoFindXRayPkg 接口输入参数
+ public static class NET_IN_DO_FIND_XRAY_PKG extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int nOffset; // 查询偏移
+ public int nCount; // 需要查找的数目
+
+ public NET_IN_DO_FIND_XRAY_PKG()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // 视角信息数
+ public static class NET_PKG_VIEW_INFO extends SdkStructure
+ {
+ public int emViewType; // 视图类型
+ public int nEnergyImageLength; // 能量图大小 单位字节
+ public byte[] szEnergyImagePath = new byte[128]; // 能量图绝对路径
+ public int nColorImageLength; // 彩图大小单位字节
+ public byte[] szColorImagePath = new byte[128]; // 彩图绝对路径
+ public int nColorOverlayImageLength; // 彩图叠加图大小单位字节
+ public byte[] szColorOverlayImagePath = new byte[128]; // 彩图叠加图绝对路径
+ public NET_PKG_OBJECT_INFO[] stuObject = new NET_PKG_OBJECT_INFO[32]; // 物体数组
+ public int nObjectCount; // 物体数量
+ public byte[] byReserved = new byte[1024]; // 保留字节
+ }
+
+ // X光机的包裹信息
+ public static class NET_XRAY_PKG_INFO extends SdkStructure
+ {
+ public NET_TIME stuTime; // 包裹产生时间(含时区)
+ public int nChannelIn; // 关联的进口IPC通道号,从0开始,-1表示无效
+ public int nChannelOut; // 关联的出口IPC通道号,从0开始,-1表示无效
+ public byte[] szUser = new byte[128]; // 用户名
+ public NET_PKG_VIEW_INFO[] stuViewInfo = new NET_PKG_VIEW_INFO[2]; // 视角信息数组
+ public byte[] byReserved = new byte[1024]; // 保留字节
+
+ public NET_XRAY_PKG_INFO() {
+ for (int i = 0; i < stuViewInfo.length; i ++) {
+ stuViewInfo[i] = new NET_PKG_VIEW_INFO();
+ }
+ }
+ }
+
+ // CLIENT_DoFindXRayPkg 接口输出参数
+ public static class NET_OUT_DO_FIND_XRAY_PKG extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int nMaxCount; // 用户指定分配结构体个数,需大于等于NET_IN_DO_FIND_XRAY_PKG的nCount
+ public int nRetCount; // 实际返回的查询数量
+ public Pointer pstuXRayPkgInfo; // X光机的包裹信息,缓存大小由用户指定
+
+ public NET_OUT_DO_FIND_XRAY_PKG()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ //事件类型 EVENT_IVS_TRAFFIC_PARKINGSPACEPARKING(车位有车事件)对应的规则配置
+ public static class CFG_TRAFFIC_PARKINGSPACEPARKING_INFO extends SdkStructure
+ {
+ public byte[] szRuleName = new byte[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
+ public byte bRuleEnable; // 规则使能
+ public byte[] bReserved = new byte[3]; // 保留字段
+ public int nObjectTypeNum; // 相应物体类型个数
+ public byte[] szObjectTypes = new byte[MAX_OBJECT_LIST_SIZE*MAX_NAME_LEN]; // 相应物体类型列表
+ public int nPtzPresetId; // 云台预置点编号 0~65535
+ public CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
+ // public CFG_TIME_SECTION[] stuTimeSection=new CFG_TIME_SECTION[WEEK_DAY_NUM*MAX_REC_TSECT_EX]; // 事件响应时间段
+ public CFG_TIME_SECTION[] stuTimeSection = (CFG_TIME_SECTION[])new CFG_TIME_SECTION().toArray(WEEK_DAY_NUM*MAX_REC_TSECT_EX); // 事件响应时间段
+ public int nLane; // 车位号
+ public int nDelayTime; // 检测到报警发生到开始上报的时间, 单位:秒,范围1~65535
+ public int nDetectRegionPoint; // 检测区域顶点数
+ public CFG_POLYGON[] stuDetectRegion = (CFG_POLYGON[]) new CFG_POLYGON().toArray(MAX_POLYGON_NUM); // 检测区域
+ public int nPlateSensitivity; // 有牌检测灵敏度(控制抓拍)
+ public int nNoPlateSensitivity; // 无牌检测灵敏度(控制抓拍)
+ public int nLightPlateSensitivity; // 有牌检测灵敏度(控制车位状态灯)
+ public int nLightNoPlateSensitivity; // 无牌检测灵敏度(控制车位状态灯)
+ public boolean bForbidParkingEnable; // 禁止停车使能 TRUE:禁止 FALSE:未禁止
+ }
+
+ //事件类型 EVENT_IVS_TRAFFIC_PARKINGSPACENOPARKING(车位无车事件)对应的规则配置
+ public static class CFG_TRAFFIC_PARKINGSPACENOPARKING_INFO extends SdkStructure
+ {
+ public byte[] szRuleName = new byte[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
+ public byte bRuleEnable; // 规则使能
+ public byte[] bReserved = new byte[3]; // 保留字段
+ public int nObjectTypeNum; // 相应物体类型个数
+ public byte[] szObjectTypes = new byte[MAX_OBJECT_LIST_SIZE*MAX_NAME_LEN]; // 相应物体类型列表
+ public int nPtzPresetId; // 云台预置点编号 0~65535
+ public CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
+ public CFG_TIME_SECTION[] stuTimeSection = (CFG_TIME_SECTION[])new CFG_TIME_SECTION().toArray(WEEK_DAY_NUM*MAX_REC_TSECT_EX); // 事件响应时间段
+ public int nLane; // 车位号
+ public int nDelayTime; // 检测到报警发生到开始上报的时间, 单位:秒,范围1~65535
+ public int nDetectRegionPoint; // 检测区域顶点数
+ public CFG_POLYGON[] stuDetectRegion = (CFG_POLYGON[]) new CFG_POLYGON().toArray(MAX_POLYGON_NUM); // 检测区域
+ public int nPlateSensitivity; // 有牌检测灵敏度(控制抓拍)
+ public int nNoPlateSensitivity; // 无牌检测灵敏度(控制抓拍)
+ public int nLightPlateSensitivity; // 有牌检测灵敏度(控制车位状态灯)
+ public int nLightNoPlateSensitivity; // 无牌检测灵敏度(控制车位状态灯)
+ }
+
+ // 事件类型 EVENT_IVS_CITY_MOTORPARKING (城市机动车违停事件) 对应的数据块描述信息
+ public static class DEV_EVENT_CITY_MOTORPARKING_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public int nAction; // 0:脉冲 1:开始 2:停止
+ public byte[] szName = new byte[128]; // 事件名称
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC = new NET_TIME_EX(); // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_EVENT_FILE_INFO stuFileInfo = new NET_EVENT_FILE_INFO(); // 事件对应文件信息
+ public int nObjectNum; // 检测到的物体个数
+ public NET_MSG_OBJECT[] stuObjects = new NET_MSG_OBJECT[NET_MAX_OBJECT_NUM]; // 检测到的物体
+ public int nDetectRegionNum; // 检测区域顶点数
+ public NET_POINT[] DetectRegion = new NET_POINT[NET_MAX_DETECT_REGION_NUM]; // 检测区域
+ public byte[] szPresetName = new byte[64]; // 事件触发的预置名称
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo = new EVENT_INTELLI_COMM_INFO(); // 智能事件公共信息
+ public int nParkingDuration; // 违停持续时长,单位:秒 缺省值0表示无意义
+ public byte[] szSourceID = new byte[32]; // 事件关联ID,同一个物体或图片生成多个事件时SourceID相同
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
+ public int bPtzPosition; // stuPtzPosition 是否有效
+ public PTZ_NORMALIZED_POSITION_UNIT stuPtzPosition = new PTZ_NORMALIZED_POSITION_UNIT(); // 云台信息
+ public int emMotorStatus; // 车辆状态,{@link EM_CITYMOTOR_STATUS}
+ public SCENE_IMAGE_INFO stuSceneImage = new SCENE_IMAGE_INFO(); // 全景广角图信息
+ public int emPreAlarm; // 是否为违规预警图片(预警触发后一定时间,违规物体还没有离开,才判定为违规),参考EM_PREALARM
+ public Pointer pstuImageInfo; //图片信息数组,NET_IMAGE_INFO_EX2的数组
+ public int nImageInfoNum; //图片信息个数
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public byte byVehicleHeadDirection; // 车头朝向 0-未知,1-正面,2-侧面,3-背面
+ public byte[] szReversed = new byte[3]; //预留字节
+ public int nDetectRegionNumber; //检测区编号
+ public byte[] szDetectRegionName = new byte[128]; //检测区名称
+ public byte[] byReserved = new byte[876]; //预留字节
+
+ public DEV_EVENT_CITY_MOTORPARKING_INFO() {
+ for (int i = 0; i < stuObjects.length; i++) {
+ stuObjects[i] = new NET_MSG_OBJECT();
+ }
+ for (int i = 0; i < DetectRegion.length; i++) {
+ DetectRegion[i] = new NET_POINT();
+ }
+ }
+ }
+
+ // 事件类型 EVENT_IVS_CITY_NONMOTORPARKING (城市非机动车违停事件) 对应的数据块描述信息
+ public static class DEV_EVENT_CITY_NONMOTORPARKING_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public int nAction; // 0:脉冲 1:开始 2:停止
+ public byte[] szName = new byte[128]; // 事件名称
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public int nDetectRegionNum; // 检测区域顶点数
+ public NET_POINT[] DetectRegion = new NET_POINT[NET_MAX_DETECT_REGION_NUM]; // 检测区域
+ public int nAlarmNum; // 报警阈值
+ public int nNoMotorNum; // 非机动车的个数
+ public byte[] szPresetName = new byte[64]; // 事件触发的预置名称
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public int nViolationDuration; // 违法持续时长,单位:秒 缺省值0表示无意义
+ public int nObjectNum; // 检测到的物体个数
+ public NET_MSG_OBJECT[] stuObjects = new NET_MSG_OBJECT[HDBJ_MAX_OBJECTS_NUM]; // 检测到的物体
+ public byte[] szSourceID = new byte[32]; // 事件关联ID,同一个物体或图片生成多个事件时SourceID相同
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
+ public SCENE_IMAGE_INFO stuSceneImage; // 全景广角图
+ public Pointer pstuImageInfo; // 图片信息数组 ,结构体NET_IMAGE_INFO_EX2数组指针
+ public int nImageInfoNum; // 图片信息个数
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public byte[] byReserved = new byte[892]; // 保留字节
+ }
+
+ // 事件类型 EVENT_IVS_HOLD_UMBRELLA (违规撑伞检测事件) 对应的数据块描述信息
+ public static class DEV_EVENT_HOLD_UMBRELLA_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public int nAction; // 0:脉冲 1:开始 2:停止
+ public byte[] szName = new byte[128]; // 事件名称
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public NET_POINT[] DetectRegion = new NET_POINT[NET_MAX_DETECT_REGION_NUM]; // 规则检测区域
+ public int nDetectRegionNum; // 规则检测区域顶点数
+ public NET_MSG_OBJECT[] stuObjects = new NET_MSG_OBJECT[HDBJ_MAX_OBJECTS_NUM]; // 检测到的物体
+ public int nObjectNum; // 检测到的物体个数
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public byte[] szPresetName = new byte[64]; // 事件触发的预置名称
+ public int nViolationDuration; // 违法持续时长,单位:秒 缺省值0表示无意义
+ public byte[] szSourceID = new byte[32]; // 事件关联ID,同一个物体或图片生成多个事件时SourceID相同
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
+ public byte[] bReserved = new byte[4092]; // 保留字节,留待扩展.
+ }
+
+ // 事件类型 EVENT_IVS_GARBAGE_EXPOSURE (垃圾暴露检测事件) 对应的数据块描述信息
+ public static class DEV_EVENT_GARBAGE_EXPOSURE_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public int nAction; // 0:脉冲 1:开始 2:停止
+ public byte[] szName = new byte[128]; // 事件名称
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public NET_POINT[] DetectRegion = new NET_POINT[NET_MAX_DETECT_REGION_NUM]; // 规则检测区域
+ public int nDetectRegionNum; // 规则检测区域顶点数
+ public NET_MSG_OBJECT[] stuObjects = new NET_MSG_OBJECT[HDBJ_MAX_OBJECTS_NUM]; // 检测到的物体
+ public int nObjectNum; // 检测到的物体个数
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public byte[] szPresetName = new byte[64]; // 事件触发的预置名称
+ public int nViolationDuration; // 违法持续时长,单位:秒 缺省值0表示无意义
+ public byte[] szSourceID = new byte[32]; // 事件关联ID,同一个物体或图片生成多个事件时SourceID相同
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
+ public Pointer pstuImageInfo; // 图片信息数组,指针对应NET_IMAGE_INFO_EX2的数组
+ public int nImageInfoNum; // 图片信息个数
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); // 事件公共扩展字段结构体
+ public byte[] bReserved = new byte[3016]; // 保留字节,留待扩展.
+ }
+
+ // 事件类型 EVENT_IVS_DUSTBIN_OVER_FLOW (垃圾桶满溢检测事件) 对应的数据块描述信息
+ public static class DEV_EVENT_DUSTBIN_OVER_FLOW_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public int nAction; // 0:脉冲 1:开始 2:停止
+ public byte[] szName = new byte[128]; // 事件名称
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public NET_POINT[] DetectRegion = new NET_POINT[NET_MAX_DETECT_REGION_NUM]; // 规则检测区域
+ public int nDetectRegionNum; // 规则检测区域顶点数
+ public NET_MSG_OBJECT[] stuObjects = new NET_MSG_OBJECT[HDBJ_MAX_OBJECTS_NUM]; // 检测到的物体
+ public int nObjectNum; // 检测到的物体个数
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public byte[] szPresetName = new byte[64]; // 事件触发的预置名称
+ public int nViolationDuration; // 违法持续时长,单位:秒 缺省值0表示无意义
+ public byte[] szSourceID = new byte[32]; // 事件关联ID,同一个物体或图片生成多个事件时SourceID相同
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
+ public Pointer pstuImageInfo; // 图片信息数组,指针对应NET_IMAGE_INFO_EX2数组
+ public int nImageInfoNum; // 图片信息个数
+ public int nRuleId; // 规则编号
+ public byte[] szRuleName = new byte[128]; // 规则名称
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); // 事件公共扩展字段结构体
+ public SCENE_IMAGE_INFO_EX stuSceneImage = new SCENE_IMAGE_INFO_EX(); // 全景图图片信息,事件前2~5s抓图
+ public Pointer pstuMosaicImage; // 合成图,指针对应SCENE_IMAGE_INFO_EX数组
+ public int nMosaicImageNum; // 合成图个数
+ public Pointer pstuAdvanceImage; // 事件发生前抓图,指针对应SCENE_IMAGE_INFO_EX数组
+ public int nAdvanceImageNum; // 事件发生前抓图个数
+ public byte[] bReserved = new byte[2088 - POINTERSIZE*2]; // 保留字节,留待扩展.
+ }
+
+ // 事件类型 EVENT_IVS_DOOR_FRONT_DIRTY (门前脏乱检测事件) 对应的数据块描述信息
+ public static class DEV_EVENT_DOOR_FRONT_DIRTY_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public int nAction; // 0:脉冲 1:开始 2:停止
+ public byte[] szName = new byte[128]; // 事件名称
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public NET_POINT[] DetectRegion = new NET_POINT[NET_MAX_DETECT_REGION_NUM]; // 规则检测区域
+ public int nDetectRegionNum; // 规则检测区域顶点数
+ public NET_MSG_OBJECT[] stuObjects = new NET_MSG_OBJECT[HDBJ_MAX_OBJECTS_NUM]; // 检测到的物体
+ public int nObjectNum; // 检测到的物体个数
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public byte[] szPresetName = new byte[64]; // 事件触发的预置名称
+ public byte[] szShopAddress = new byte[256]; // 商铺地址名称
+ public int nViolationDuration; // 违法持续时长,单位:秒,缺省值0表示无意义
+ public byte[] szSourceID = new byte[32]; // 事件关联ID,同一个物体或图片生成多个事件时SourceID相同
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
+ public byte[] bReserved = new byte[4092]; // 保留字节,留待扩展.
+ }
+
+ // CLIENT_StartRemoteUpgrade-输入参数
+ public static class NET_IN_START_REMOTE_UPGRADE_INFO extends SdkStructure
+ {
+ public int dwSize; // 此结构体大小
+ public int nListNum; // 需要升级的远程通道个数
+ public Pointer pstuList; // 需要升级的远程通道信息
+ public Pointer pReserved; // 字节对齐
+ public byte[] szFileName = new byte[256]; // 升级文件名称
+ public Callback cbRemoteUpgrade; // 升级进度回调函数
+ public Pointer dwUser; // 用户数据
+ public int nPacketSize; // 每次分包发送大小,为0默认为16K
+
+ public NET_IN_START_REMOTE_UPGRADE_INFO()
+ {
+ this.dwSize = this.size();
+ }
+ }
+
+ // CLIENT_StartRemoteUpgrade-输出参数
+ public static class NET_OUT_START_REMOTE_UPGRADE_INFO extends SdkStructure
+ {
+ public int dwSize;
+
+ public NET_OUT_START_REMOTE_UPGRADE_INFO()
+ {
+ this.dwSize = this.size();
+ }// 此结构体大小
+ }
+
+ // CLIENT_AttachRemoteUpgradeState-输入参数
+ public static class NET_IN_ATTACH_REMOTEUPGRADE_STATE extends SdkStructure
+ {
+ public int dwSize; // 此结构体大小
+ public Callback cbCallback; // 回调
+ public Pointer dwUser; // 用户数据
+
+ public NET_IN_ATTACH_REMOTEUPGRADE_STATE()
+ {
+ this.dwSize = this.size();
+ }// 此结构体大小
+ }
+
+ // CLIENT_AttachRemoteUpgradeState-输出参数
+ public static class NET_OUT_ATTACH_REMOTEUPGRADE_STATE extends SdkStructure
+ {
+ public int dwSize; // 此结构体大小
+
+ public NET_OUT_ATTACH_REMOTEUPGRADE_STATE()
+ {
+ this.dwSize = this.size();
+ }// 此结构体大小
+ }
+
+ // 远程通道信息
+ public static class NET_REMOTE_UPGRADE_CHNL_INFO extends SdkStructure
+ {
+ public int nChannel; // 远程通道号
+ public byte[] byReserved = new byte[512]; // 预留字段
+ }
+
+ // 升级远程设备程序回调函数
+ public interface fRemoteUpgradeCallBack extends Callback {
+ public void invoke(LLong lLoginID,LLong lUpgradeID,int emState,int nParam1,int nParam2,Pointer dwUser);
+ }
+
+ // 远程升级回调类型
+ public static class EM_REMOTE_UPGRADE_CB_TYPE extends SdkStructure
+ {
+ public static final int EM_REMOTE_UPGRADE_CB_TYPE_APPENDING = 0; // 推送回调 nParam1 文件总大小 nParam2 已发送大小
+ public static final int EM_REMOTE_UPGRADE_CB_TYPE_EXECUTE = 1; // 执行回调 nParam1 执行execute的结果
+ public static final int EM_REMOTE_UPGRADE_CB_TYPE_FAILED = 2; // 失败回调 nParam1 错误码
+ public static final int EM_REMOTE_UPGRADE_CB_TYPE_CANCEL = 3; // 取消回调
+ }
+
+ // 升级状态回调函数
+ public interface fRemoteUpgraderStateCallback extends Callback {
+ public void invoke(LLong lLoginId,LLong lAttachHandle,NET_REMOTE_UPGRADER_NOTIFY_INFO pBuf,int dwBufLen,Pointer pReserved,Pointer dwUser);
+ }
+
+ // 远程设备升级消息上报
+ public static class NET_REMOTE_UPGRADER_NOTIFY_INFO extends SdkStructure
+ {
+ public int nStateNum; // 状态数
+ public Pointer pstuStates; // 状态列表
+ public byte[] byReserved = new byte[1024]; // 预留
+ }
+
+ // 远程设备升级状态
+ public static class NET_REMOTE_UPGRADER_STATE extends SdkStructure
+ {
+ public int nChannel; // 通道号
+ public int emState; // 状态(对应的枚举值EM_REMOTE_UPGRADE_STATE)
+ public int nProgress; // 进度
+ public byte[] szDeviceID = new byte[128]; // 远程设备ID
+ }
+
+ // 远程设备升级状态
+ public static class EM_REMOTE_UPGRADE_STATE extends SdkStructure
+ {
+ public static final int EM_REMOTE_UPGRADE_STATE_UNKNOWN = 0; // 未知
+ public static final int EM_REMOTE_UPGRADE_STATE_INIT = 1; // 初始状态(未升级)
+ public static final int EM_REMOTE_UPGRADE_STATE_DOWNLOADING = 2; // 正在下载数据
+ public static final int EM_REMOTE_UPGRADE_STATE_UPGRADING = 3; // 正在升级
+ public static final int EM_REMOTE_UPGRADE_STATE_FAILED = 4; // 升级失败
+ public static final int EM_REMOTE_UPGRADE_STATE_SUCCEEDED = 5; // 升级成功
+ public static final int EM_REMOTE_UPGRADE_STATE_CANCELLED = 6; // 取消升级
+ public static final int EM_REMOTE_UPGRADE_STATE_PREPARING = 7; // 准备升级中
+ }
+
+ //开始升级远程设备程序
+ public LLong CLIENT_StartRemoteUpgrade(LLong lLoginID,NET_IN_START_REMOTE_UPGRADE_INFO pInParam,NET_OUT_START_REMOTE_UPGRADE_INFO pOutParam,int nWaitTime);
+
+ //结束升级远程设备程序
+ public Boolean CLIENT_StopRemoteUpgrade(LLong lUpgradeID);
+
+ // 订阅ipc升级状态观察接口
+ public LLong CLIENT_AttachRemoteUpgradeState(LLong lLoginID,NET_IN_ATTACH_REMOTEUPGRADE_STATE pInParam,NET_OUT_ATTACH_REMOTEUPGRADE_STATE pOutParam,int nWaitTime);
+
+ // 取消订阅升级状态接口
+ public Boolean CLIENT_DetachRemoteUpgradeState(LLong lAttachHandle);
+
+ // 设置子连接网络参数, pSubConnectNetParam 资源由用户申请和释放
+ public Boolean CLIENT_SetSubConnectNetworkParam(LLong lLoginID,NET_SUBCONNECT_NETPARAM pSubConnectNetParam);
+
+ // 设置子链接网络参数
+ public static class NET_SUBCONNECT_NETPARAM extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int nNetPort; // 网络映射端口号
+ public byte[] szNetIP = new byte[NET_MAX_IPADDR_EX_LEN]; // 网络映射IP地址
+
+ public NET_SUBCONNECT_NETPARAM()
+ {
+ this.dwSize = this.size();
+ }// 此结构体大小
+ }
+
+ public static class EM_ANALYSE_TASK_START_RULE extends SdkStructure
+ {
+ public static final int EM_ANALYSE_TASK_START_NOW = 0; // 立刻启动
+ public static final int EM_ANALYSE_TASK_START_LATER = 1; // 稍候手动启动
+ }
+
+ // 视频分析支持的对象类型
+ public static class EM_ANALYSE_OBJECT_TYPE extends SdkStructure
+ {
+ public static final int EM_ANALYSE_OBJECT_TYPE_UNKNOWN = 0; // 未知的
+ public static final int EM_ANALYSE_OBJECT_TYPE_HUMAN = 1; // 人
+ public static final int EM_ANALYSE_OBJECT_TYPE_VEHICLE = 2; // 车辆
+ public static final int EM_ANALYSE_OBJECT_TYPE_FIRE = 3; // 火
+ public static final int EM_ANALYSE_OBJECT_TYPE_SMOKE = 4; // 烟雾
+ public static final int EM_ANALYSE_OBJECT_TYPE_PLATE = 5; // 片状物体
+ public static final int EM_ANALYSE_OBJECT_TYPE_HUMANFACE = 6; // 人脸
+ public static final int EM_ANALYSE_OBJECT_TYPE_CONTAINER = 7; // 货柜
+ public static final int EM_ANALYSE_OBJECT_TYPE_ANIMAL = 8; // 动物
+ public static final int EM_ANALYSE_OBJECT_TYPE_TRAFFICLIGHT = 9; // 红绿灯
+ public static final int EM_ANALYSE_OBJECT_TYPE_PASTEPAPER = 10; // 贴纸 贴片
+ public static final int EM_ANALYSE_OBJECT_TYPE_HUMANHEAD = 11; // 人的头部
+ public static final int EM_ANALYSE_OBJECT_TYPE_ENTITY = 12; // 普通物体
+ public static final int EM_ANALYSE_OBJECT_TYPE_PACKAGE = 13; ///// 包裹
+ public static final int EM_ANALYSE_OBJECT_TYPE_SCRAPSTEEL_DANGER = 14; /////废钢危险品
+ }
+
+ // 事件类型 EVENT_IVS_SMART_KITCHEN_CLOTHES_DETECTION(智慧厨房穿着检测事件)对应的数据块描述信息
+ public static class DEV_EVENT_SMART_KITCHEN_CLOTHES_DETECTION_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public int nAction; // 0:脉冲 1:开始 2:停止
+ public byte[] szName = new byte[128]; // 事件名称
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int nRuleID; // 用于
+ public int emClassType; // 智能事件所属大类
+ public byte[] szClassAlias = new byte[16]; // 智能事件所属大类别名
+ public HUMAN_IMAGE_INFO stuHumanImage; // 人体图片信息
+ public SCENE_IMAGE_INFO stuSceneImage; // 全景广角图片信息
+ public FACE_IMAGE_INFO stuFaceImage; // 人脸图片信息
+ public int nObjectID; // 目标ID
+ public int emHasMask; // 检测是否有戴口罩(对应枚举值EM_NONMOTOR_OBJECT_STATUS)
+ public int emHasChefHat; // 检测是否有戴厨师帽(对应枚举值EM_NONMOTOR_OBJECT_STATUS)
+ public int emHasChefClothes; // 检测是否有穿厨师服(对应枚举值EM_NONMOTOR_OBJECT_STATUS)
+ public int emChefClothesColor; // 厨师服颜色(对应枚举值EM_OBJECT_COLOR_TYPE)
+ public NET_IMAGE_INFO_EX2 stuImageInfo[] = (NET_IMAGE_INFO_EX2[])new NET_IMAGE_INFO_EX2().toArray(32); //图片信息数组
+ public int nImageInfoNum; //图片信息个数
+ public byte bReserved[] = new byte[1024]; //预留字节
+ }
+
+ // 事件类型EVENT_IVS_BANNER_DETECTION(拉横幅事件)对应数据块描述信息
+ public static class DEV_EVENT_BANNER_DETECTION_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public int nEventID; // 事件ID
+ public byte[] szName = new byte[NET_EVENT_NAME_LEN]; // 事件名称
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nAction; // 1:开始 2:停止
+ public int emClassType; // 智能事件所属大类(对应EM_CLASS_TYPE枚举)
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public int nObjectNum; // 检测到的物体个数
+ public NET_MSG_OBJECT [] stuObjects = new NET_MSG_OBJECT[32]; // 检测到的物体
+ public int nDetectRegionNum; // 检测区域顶点数
+ public NET_POINT [] DetectRegion = new NET_POINT[NET_MAX_DETECT_REGION_NUM]; // 检测区域
+ public int nCount; // 事件触发次数
+ public int nPresetID; // 预置点
+ public NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
+ public Pointer pstuImageInfo; //图片信息数组, refer to {@link NET_IMAGE_INFO_EX3}
+ public int nImageInfoNum; //图片信息个数
+ public int bSceneImage; //pstuSceneImage是否有效
+ public Pointer pstuSceneImage; //全景广角图, refer to {@link SCENE_IMAGE_INFO_EX}
+ public byte[] byReserved = new byte[1020-2*POINTERSIZE]; //保留字节,留待扩展.
+
+ public DEV_EVENT_BANNER_DETECTION_INFO(){
+ for(int i=0;i type, Object value, boolean isFirstElement) {
+ int alignment = super.getNativeAlignment(type, value, isFirstElement);
+ return Math.min(4, alignment);
+ }
+
+ @Override
+ public String toString() {
+ return "DH_MSG_OBJECT{" +
+ "nObjectID=" + nObjectID +
+ ", szObjectType=" + new String(szObjectType) +
+ ", nConfidence=" + nConfidence +
+ ", nAction=" + nAction +
+ ", BoundingBox=" + BoundingBox +
+ ", Center=" + Center +
+ ", nPolygonNum=" + nPolygonNum +
+ ", Contour=" + Arrays.toString(Contour) +
+ ", rgbaMainColor=" + rgbaMainColor +
+ ", szText=" + new String(szText) +
+ ", szObjectSubType=" + new String(szObjectSubType) +
+ ", wColorLogoIndex=" + wColorLogoIndex +
+ ", wSubBrand=" + wSubBrand +
+ ", byReserved1=" + byReserved1 +
+ ", bPicEnble=" + bPicEnble +
+ ", bShotFrame=" + bShotFrame +
+ ", bColor=" + bColor +
+ ", byReserved2=" + byReserved2 +
+ ", byTimeType=" + byTimeType +
+ ", stuCurrentTime=" + stuCurrentTime +
+ ", stuStartTime=" + stuStartTime +
+ ", stuEndTime=" + stuEndTime +
+ ", stuOriginalBoundingBox=" + stuOriginalBoundingBox +
+ ", stuSignBoundingBox=" + stuSignBoundingBox +
+ ", dwCurrentSequence=" + dwCurrentSequence +
+ ", dwBeginSequence=" + dwBeginSequence +
+ ", dwEndSequence=" + dwEndSequence +
+ ", nBeginFileOffset=" + nBeginFileOffset +
+ ", nEndFileOffset=" + nEndFileOffset +
+ ", byColorSimilar=" + new String(byColorSimilar) +
+ ", byUpperBodyColorSimilar=" + new String(byUpperBodyColorSimilar) +
+ ", byLowerBodyColorSimilar=" + new String(byLowerBodyColorSimilar) +
+ ", nRelativeID=" + nRelativeID +
+ ", szSubText=" + new String(szSubText) +
+ ", wBrandYear=" + wBrandYear +
+ '}';
+ }
+ }
+
+ // 事件类型EVENT_IVS_STAYDETECTION(停留事件)对应的数据块描述信息
+ public static class DEV_EVENT_STAY_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public DH_MSG_OBJECT stuObject; // 检测到的物体
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] byReserved = new byte[2]; // 保留字节
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从 0 开始
+ public int nDetectRegionNum; //较精确的轮廓多边形 // 规则检测区域顶点数
+ public DH_POINT[] DetectRegion = (DH_POINT[])new DH_POINT().toArray(NET_MAX_DETECT_REGION_NUM); // 规则检测区域
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
+ public int nSourceIndex; // 事件源设备上的index,-1表示数据无效
+ public byte[] szSourceDevice = new byte[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
+ public int nOccurrenceCount; // 事件触发累计次数
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public int nObjectNum; // 检测到的物体个数
+ public DH_MSG_OBJECT[] stuObjectIDs = (DH_MSG_OBJECT[])new DH_MSG_OBJECT().toArray(DH_MAX_OBJECT_NUM); // 检测到的物体
+ public int nAreaID; // 区域ID(一个预置点可以对应多个区域ID)
+ public int bIsCompliant; // 该场景下是否合规
+ public PTZ_PRESET_UNIT stPosition; // 预置点的坐标和放大倍数
+ public int nCurChannelHFOV; // 当前报警通道的横向视场角,单位:度,实际角度乘以100
+ public int nCurChannelVFOV; // 当前报警通道的垂直视场角,单位:度,实际角度乘以100
+ public SCENE_IMAGE_INFO stuSceneImage; // 全景广角图
+ public Pointer pstuImageInfo; // 图片信息数组 ,结构体NET_IMAGE_INFO_EX2数组指针
+ public int nImageInfoNum; // 图片信息个数
+ public NET_LINK_INFO stuLinkInfo; // 联动信息,保存其他设备传输的信息
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public byte[] bReserved = new byte[624]; // 保留字节,留待扩展.
+ }
+
+ /*--------任务结束: T0058223ERR191213010-TASK1 停留事件:DEV_EVENT_STAY_INFO--------*/
+ /*--------任务开始: ERR191213083-TASK1 发动机数据上报:DH_ALARM_ENGINE_FAILURE_STATUS --------*/
+ // 发动机故障状态
+ public static class EM_ENGINE_FAILURE_STATUS extends SdkStructure
+ {
+ public static final int EM_ENGINE_FAILURE_UNKNOWN = 0; // 未知
+ public static final int EM_ENGINE_FAILURE_NOTACTIVE = 1; // "Not active"
+ public static final int EM_ENGINE_FAILURE_ACTIVE = 2; // "Active"
+ public static final int EM_ENGINE_FAILURE_BLINK = 3; // "Blink"
+ public static final int EM_ENGINE_FAILURE_NOTAVAILABLE = 4; // "Not Available"
+ }
+
+ // 发动机故障状态上报事件( DH_ALARM_ENGINE_FAILURE_STATUS )
+ public static class ALARM_ENGINE_FAILURE_STATUS_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int emStatus; // 发动机故障状态 详见 EM_ENGINE_FAILURE_STATUS
+ public NET_GPS_STATUS_INFO stuGPS; // GPS信息(车载需求)
+ public byte[] byReserved = new byte[1024]; // 保留字节
+ }
+
+ /*--------任务开始: ERR191213083-TASK1 发动机数据上报:DH_ALARM_ENGINE_FAILURE_STATUS--------*/
+ /************************************************************************/
+ /*视频上传交通运输部需求 从这往下 */
+ /************************************************************************/
+ // 获取转码虚拟通道号(虚拟通道号用于预览与回放), pInParam 和pOutParam 由用户申请和释放
+ public boolean CLIENT_GetVirtualChannelOfTransCode(LLong lLoginID,NET_IN_GET_VIRTUALCHANNEL_OF_TRANSCODE pInParam,NET_OUT_GET_VIRTUALCHANNEL_OF_TRANSCODE pOutParam,int nWaitTime);
+
+ // 虚拟通道转码策略
+ public static class NET_VIRTUALCHANNEL_POLICY extends SdkStructure
+ {
+ public int bDeleteByCaller; // 是否由用户管理虚拟通道, TRUE:由用户管理 FALSE:由设备管理
+ public int bContinuous; // 是否持续转码
+ public int nVirtualChannel; //虚拟通道号。当大于0时表示虚拟通道号由客户端指定和管理,范围处于 CLIENT_GetCapsOfTransCode返回的nMinVirtualChannel~nMaxVirtualChannel两值中间。否则由压缩设备管理
+ public byte[] byReserved = new byte[508]; // 保留字节
+ }
+
+ //CLIENT_GetVirtualChannelOfTransCode 接口输入参数
+ public static class NET_IN_GET_VIRTUALCHANNEL_OF_TRANSCODE extends SdkStructure {
+ public int dwSize; // 结构体大小
+ public NET_VIDEO_SOURCE_INFO stuVideoSourceInfo; // 视频源信息
+ public NET_TRANSCODE_VIDEO_FORMAT stuTransVideoFormat; // 转码视频格式
+ public NET_TRANSCODE_AUDIO_FORMAT stuTransAudioFormat; // 转码音频格式
+ public NET_VIRTUALCHANNEL_POLICY stuVirtualChnPolicy; // 虚拟通道转码策略
+ public NET_TRANSCODE_SNAP_FORMAT stuSnapFormat; // 转码抓图格式参数
+ public NET_TRANSCODE_WATER_MARK[] stuWaterMark = (NET_TRANSCODE_WATER_MARK[]) new NET_TRANSCODE_WATER_MARK().toArray(4); // 水印配置
+ public NET_TRANSCODE_IMAGE_WATER_MARK[] stuImageWaterMark = new NET_TRANSCODE_IMAGE_WATER_MARK[4]; //图片水印配置,参见结构体定义 {@link com.netsdk.lib.structure.NET_TRANSCODE_IMAGE_WATER_MARK}
+ public int nImageWaterMarkNum; //图片水印配置数量
+
+ public NET_IN_GET_VIRTUALCHANNEL_OF_TRANSCODE(){
+ this.dwSize = this.size();
+ }
+ }
+
+ //转码抓图格式参数
+ public static class NET_TRANSCODE_SNAP_FORMAT extends SdkStructure {
+ public int nWidth; // 抓图宽度
+ public int nHeight; // 抓图高度
+ public byte[] byReserved = new byte[128]; // 保留字节
+ }
+
+ //水印配置
+ public static class NET_TRANSCODE_WATER_MARK extends SdkStructure {
+ public byte[] szText = new byte[256]; // 水印文本信息
+ public int bAngle; //nAngle字段是否生效
+ public int bOpacity; //nOpacity字段是否生效
+ public int bFontSize; //nFontSize字段是否生效
+ public int bRows; //nRows字段是否生效
+ public int bColumns; //nColumns字段是否生效
+ public int bColor; //nColor字段是否生效
+ public int nAngle; //水印倾斜角,范围-180~180,顺时针旋转为正值,逆时针旋转为负值,默认为0
+ public int nOpacity; //水印的不透明度,范围0-100,0表示全透明,默认100
+ public int nFontSize; //水印字体大小
+ public int nRows; //水印行数
+ public int nColumns; //水印列数
+ public int nColor; //水印字体颜色的RGB值,默认为0,表示黑色
+ public int bPosition; //Position字段是否生效
+ public int bType; //nType字段是否生效
+ public int nPosition; //水印位置0:左上 1:右上 2:左下 3:右下
+ public int nType; //区分水印和OSD,如未指定Type字段或Type为0时表示叠加为水印(效果为铺满全屏);Type为1时表示OSD叠加(只展示在某个区域),Position字段有效。0:水印1:OSD
+ public byte[] byReserved = new byte[448]; // 保留字节
+ }
+
+ // 视频源信息
+ public static class NET_VIDEO_SOURCE_INFO extends SdkStructure {
+ public int emProtocolType; // 设备协议类型,枚举值参考EM_DEV_PROTOCOL_TYPE
+ public byte[] szIp = new byte[64]; // 前端设备IP地址
+ public int nPort; // 前端设备端口号
+ public byte[] szUser = new byte[128]; // 前端设备用户名
+ public byte[] szPwd = new byte[128]; // 前端设备密码
+ public int nChannelID; // 前端设备通道号
+ public byte[] szStreamUrl = new byte[512]; // 视频源url地址, emProtocolType为EM_DEV_PROTOCOL_GENERAL 时有效
+ public byte[] byReserved = new byte[256]; // 保留字节
+ }
+
+ // 设备协议类型
+ public static class EM_DEV_PROTOCOL_TYPE extends SdkStructure
+ {
+ public static final int EM_DEV_PROTOCOL_UNKNOWN = 0; // 未知
+ public static final int EM_DEV_PROTOCOL_V2 = 1; // 私有二代
+ public static final int EM_DEV_PROTOCOL_V3 = 2; // 私有三代
+ public static final int EM_DEV_PROTOCOL_ONVIF = 3; // onvif
+ public static final int EM_DEV_PROTOCOL_GENERAL = 4; // general
+ public static final int EM_DEV_PROTOCOL_GB28181 = 5; // 国标GB28181
+ public static final int EM_DEV_PROTOCOL_EHOME = 6;
+ public static final int EM_DEV_PROTOCOL_HIKVISION = 7;
+ public static final int EM_DEV_PROTOCOL_BSCP = 8;
+ public static final int EM_DEV_PROTOCOL_PRIVATE = 9; // 私有
+ public static final int EM_DEV_PROTOCOL_RTSP = 10; // RTSP
+ public static final int EM_DEV_PROTOCOL_HBGK = 11;
+ public static final int EM_DEV_PROTOCOL_LUAN = 12;
+ }
+
+ // 转码视频格式
+ public static class NET_TRANSCODE_VIDEO_FORMAT extends SdkStructure {
+ public int emCompression; // 视频压缩格式,枚举值参考EM_TRANSCODE_VIDEO_COMPRESSION
+ public int nWidth; // 视频宽度
+ public int nHeight; // 视频高度
+ public int emBitRateControl; // 码流控制模式,枚举值参考NET_EM_BITRATE_CONTROL
+ public int nBitRate; // 视频码流(kbps)
+ public float fFrameRate; // 视频帧率
+ public int nIFrameInterval; // I帧间隔(1-100),比如50表示每49个B帧或P帧,设置一个I帧。
+ public int emImageQuality; // 图像质量,枚举值参考EM_TRANSCODE_IMAGE_QUALITY
+ public byte[] byReserved = new byte[512]; // 保留字节
+ }
+
+ // 视频压缩格式
+ public static class EM_TRANSCODE_VIDEO_COMPRESSION extends SdkStructure {
+ public static final int EM_TRANSCODE_VIDEO_AUTO = 0; // auto
+ public static final int EM_TRANSCODE_VIDEO_MPEG4 = 1; // MPEG4
+ public static final int EM_TRANSCODE_VIDEO_MPEG2 = 2; // MPEG2
+ public static final int EM_TRANSCODE_VIDEO_MPEG1 = 3; // MPEG1
+ public static final int EM_TRANSCODE_VIDEO_MJPG = 4; // MJPG
+ public static final int EM_TRANSCODE_VIDEO_H263 = 5; // H.263
+ public static final int EM_TRANSCODE_VIDEO_H264 = 6; // H.264
+ public static final int EM_TRANSCODE_VIDEO_H265 = 7; // H.265
+ }
+
+ // 码流控制模式
+ public static class NET_EM_BITRATE_CONTROL extends SdkStructure {
+ public static final int EM_BITRATE_CBR = 0; // 固定码流
+ public static final int EM_BITRATE_VBR = 1; // 可变码流
+ }
+
+ // 图像质量
+ public static class EM_TRANSCODE_IMAGE_QUALITY extends SdkStructure {
+ public static final int EM_TRANSCODE_IMAGE_QUALITY_SELFADAPT = 0; // 自适应
+ public static final int EM_TRANSCODE_IMAGE_QUALITY_Q10 = 1; // 10%
+ public static final int EM_TRANSCODE_IMAGE_QUALITY_Q30 = 2; // 30%
+ public static final int EM_TRANSCODE_IMAGE_QUALITY_Q50 = 3; // 50%
+ public static final int EM_TRANSCODE_IMAGE_QUALITY_Q60 = 4; // 60%
+ public static final int EM_TRANSCODE_IMAGE_QUALITY_Q80 = 5; // 80%
+ public static final int EM_TRANSCODE_IMAGE_QUALITY_Q100 = 6; // 100%
+ }
+
+ // 转码音频格式
+ public static class NET_TRANSCODE_AUDIO_FORMAT extends SdkStructure {
+ public int emCompression; // 音频压缩模式,枚举值参考NET_EM_AUDIO_FORMAT
+ public int nFrequency; // 音频采样频率
+ public byte[] byReserved = new byte[512]; // 保留字节
+ }
+
+ public static class NET_EM_AUDIO_FORMAT extends SdkStructure {
+ public static final int EM_AUDIO_FORMAT_UNKNOWN = 0; // unknown
+ public static final int EM_AUDIO_FORMAT_G711A = 1; // G711a
+ public static final int EM_AUDIO_FORMAT_PCM = 2; // PCM
+ public static final int EM_AUDIO_FORMAT_G711U = 3; // G711u
+ public static final int EM_AUDIO_FORMAT_AMR = 4; // AMR
+ public static final int EM_AUDIO_FORMAT_AAC = 5; // AAC
+ public static final int EM_AUDIO_FORMAT_G726 = 6; // G.726
+ public static final int EM_AUDIO_FORMAT_G729 = 7; // G.729
+ public static final int EM_AUDIO_FORMAT_ADPCM = 8; // ADPCM
+ public static final int EM_AUDIO_FORMAT_MPEG2 = 9; // MPEG2
+ public static final int EM_AUDIO_FORMAT_MPEG2L2 = 10; // MPEG2-Layer2
+ public static final int EM_AUDIO_FORMAT_OGG = 11; // OGG
+ public static final int EM_AUDIO_FORMAT_MP3 = 12; // MP3
+ public static final int EM_AUDIO_FORMAT_G7221 = 13; // G.722.1
+ }
+
+ //CLIENT_GetVirtualChannelOfTransCode 接口输出参数
+ public static class NET_OUT_GET_VIRTUALCHANNEL_OF_TRANSCODE extends SdkStructure {
+ public int dwSize; // 结构体大小
+ public int nVirtualChannel; // 虚拟通道号
+
+ public NET_OUT_GET_VIRTUALCHANNEL_OF_TRANSCODE(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // 获取转码能力集, pInParam 和pOutParam 由用户申请和释放
+ public boolean CLIENT_GetCapsOfTransCode(LLong lLoginID,NET_IN_TRANDCODE_GET_CAPS pInParam,NET_OUT_TRANSCODE_GET_CAPS pOutParam,int nWaitTime);
+
+ // 删除转码虚拟通道号
+ public boolean CLIENT_DelVirtualChannelOfTransCode(LLong lLoginID,NET_IN_DEL_VIRTUALCHANNEL_OF_TRANSCODE pInParam,NET_OUT_DEL_VIRTUALCHANNEL_OF_TRANSCODE pOutParam,int nWaitTime);
+
+ // CLIENT_DelVirtualChannelOfTransCode 接口输入参数
+ public static class NET_IN_DEL_VIRTUALCHANNEL_OF_TRANSCODE extends SdkStructure {
+ public int dwSize; // 结构体大小
+ public int nVirtualChannel; // 虚拟通道号, -1 表示删除所有虚拟通道
+
+ public NET_IN_DEL_VIRTUALCHANNEL_OF_TRANSCODE(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // CLIENT_DelVirtualChannelOfTransCode 接口输出参数
+ public static class NET_OUT_DEL_VIRTUALCHANNEL_OF_TRANSCODE extends SdkStructure {
+ public int dwSize; // 结构体大小
+
+ public NET_OUT_DEL_VIRTUALCHANNEL_OF_TRANSCODE(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // CLIENT_GetCapsOfTransCode 接口输入参数
+ public static class NET_IN_TRANDCODE_GET_CAPS extends SdkStructure {
+ public int dwSize; // 结构体大小
+
+ public NET_IN_TRANDCODE_GET_CAPS(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // CLIENT_GetCapsOfTransCode 接口输出参数
+ public static class NET_OUT_TRANSCODE_GET_CAPS extends SdkStructure {
+ public int dwSize; // 结构体大小
+ public int nMinVirtualChannel; // 最小虚拟通道号
+ public int nMaxVirtualChannel; // 最大虚拟通道号
+ public boolean bSupportErrorCode; // 是否支持压缩错误码实时上报
+ public boolean bSupportContinuous; // 是否支持持续转码
+ public boolean bSupportDelByCaller; // 是否支持由用户管理虚拟通道
+ public boolean bSupportSpecifyVirtualChannel; // 是否支持由调用者指定虚拟通道号,
+ // 此项为true时,调用CLIENT_GetVirtualChannelOfTransCode时指定虚拟通道nVirtualChannel,虚拟通道号必须在nMinVirtualChannel~nMaxVirtualChannel的范围内;
+ // 当此项为false时,不支持客户端指定虚拟通道号。
+ public float fMaxDownLoadSpeed; // 支持最大的压缩下载倍速
+ public int nSupportCompressMaxChannel; // 设备当前支持的最多压缩通道数
+ public byte[] szSupportCompressResolutionRangeMin = new byte[32]; // 支持压缩的分辨率 最小值
+ public byte[] szSupportCompressResolutionRangeMax = new byte[32]; // 支持压缩的分辨率 最大值
+ public int nSupportCompressFpsRangeMin; // 支持压缩的帧率 最小值
+ public int nSupportCompressFpsRangeMax; // 支持压缩的帧率 最大值
+ public byte[] szSupportCompressAudioTypes = new byte[64*32]; // 支持的音频格式
+ public int nSupportCompressAudioTypesNum; // 支持的音频格式个数
+ public int nSupportCompressCompressionTypesNum; // 支持的视频压缩格式个数
+ public byte[] szSupportCompressCompressionTypes = new byte[64*32]; // 支持的视频压缩格式
+ public BYTE_ARRAY_64[] szSupportImageOsdTypes = new BYTE_ARRAY_64[64]; //支持的图片OSD
+ public int nSupportImageOsdTypesNum; //支持的图片OSD个数
+
+ public NET_OUT_TRANSCODE_GET_CAPS(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // 订阅虚拟转码通道状态, pInParam 由用户申请和释放
+ public LLong CLIENT_AttachVirtualChannelStatus(LLong lLoginID,NET_IN_ATTACH_VIRTUALCHANNEL_STATUS pInParam,int nWaitTime);
+
+ //CLIENT_AttachVirtualChannelStatus 接口输入参数
+ public static class NET_IN_ATTACH_VIRTUALCHANNEL_STATUS extends SdkStructure {
+ public int dwSize; // 结构体大小
+ public byte[] byReserved = new byte[4]; // 用于字节对齐
+ public fVirtualChannelStatusCallBack cbVirtualChannelStatus; // 虚拟转码通道状态订阅函数
+ public Pointer dwUser; // 用户数据
+
+ public NET_IN_ATTACH_VIRTUALCHANNEL_STATUS(){
+ this.dwSize = this.size();
+ }
+ }
+
+ public interface fVirtualChannelStatusCallBack extends Callback {
+ public void invoke(LLong lAttachHandle,NET_CB_VIRTUALCHANNEL_STATUS_INFO pstVirChnStatusInfo,Pointer dwUser);
+ }
+
+ // 虚拟转码通道状态信息
+ public class NET_CB_VIRTUALCHANNEL_STATUS_INFO extends SdkStructure {
+ public int nVirChannelID; // 虚拟转码通道号
+ public int emVirChannelStatus; // 虚拟转码通道状态,枚举值参考EM_VIRCHANNEL_STATUS
+ public byte[] byReserved = new byte[1024]; // 保留字节
+// public static class ByValue extends NET_CB_VIRTUALCHANNEL_STATUS_INFO implements SdkStructure.ByValue { }
+ }
+
+ public static class EM_VIRCHANNEL_STATUS extends SdkStructure {
+ public static final int EM_VIRCHANNEL_STATUS_UNKNOWN = -1; // 未知
+ public static final int EM_VIRCHANNEL_STATUS_OVER_DECODE = 0; // 超出解码
+ public static final int EM_VIRCHANNEL_STATUS_OVER_COMPRESS = 1; // 超出压缩
+ public static final int EM_VIRCHANNEL_STATUS_NO_ORIGI_STREAM = 2; // 无原始码流
+ public static final int EM_VIRCHANNEL_STATUS_SLAVE_OFFLINE = 3; // 压缩通道所在的从片掉线
+ public static final int EM_VIRCHANNEL_STATUS_UNKNOWN_FAILURE = 255; // 未知的失败原因
+ }
+
+ // 取消订阅虚拟转码通道状态, lAttachHandle 为 CLIENT_AttachVirtualChannelStatus 函数的返回值
+ public boolean CLIENT_DetachVirtualChannelStatus(LLong lAttachHandle);
+
+ /************************************************************************/
+ /* 视频上传交通运输部需求 从这往上 */
+ /************************************************************************/
+ // 设置动态子连接断线回调函数,目前SVR设备的预览和回放是短连接的。
+ public void CLIENT_SetSubconnCallBack(Callback cbSubDisConnect,Pointer dwUser);
+
+ // 动态子连接断开回调函数原形
+ public interface fSubDisConnect extends Callback {
+ public void invoke(int emInterfaceType,Boolean bOnline,LLong lOperateHandle,LLong lLoginID,Pointer dwUser);
+ }
+
+ // 接口类型,对应CLIENT_SetSubconnCallBack接口
+ public static class EM_INTERFACE_TYPE extends SdkStructure
+ {
+ public static final int DH_INTERFACE_OTHER = 0; // 未知接口
+ public static final int DH_INTERFACE_REALPLAY = 1; // 实时预览接口
+ public static final int DH_INTERFACE_PREVIEW = 2; // 多画面预览接口
+ public static final int DH_INTERFACE_PLAYBACK = 3; // 回放接口
+ public static final int DH_INTERFACE_DOWNLOAD = 4; // 下载接口
+ public static final int DH_INTERFACE_REALLOADPIC = 5; // 下载智能图片接口
+ }
+
+ //人脸开门输入参数
+ public static class NET_IN_FACE_OPEN_DOOR extends SdkStructure
+ {
+ public int dwSize;
+ public int nChannel; //门通道号
+ public int emCompareResult; //比对结果,EM_COMPARE_RESULT
+ public NET_OPENDOOR_MATCHINFO stuMatchInfo; //匹配信息
+ public NET_OPENDOOR_IMAGEINFO stuImageInfo; //图片信息
+
+ public NET_IN_FACE_OPEN_DOOR(){
+ this.dwSize = this.size();
+ }
+ }
+
+ //匹配信息
+ public static class NET_OPENDOOR_MATCHINFO extends SdkStructure
+ {
+ public byte[] szUserID = new byte[32]; //远程用户ID
+ public byte[] szUserName = new byte[32]; //用户名
+ public int emUserType; //用户类型
+ public byte[] szName = new byte[64]; //门禁名称
+ public int nMatchRate; //匹配度,范围为0-100
+ public int emOpenDoorType; //开门方式
+ public NET_TIME stuActivationTime; //(卡、头像)生效日期
+ public NET_TIME stuExpiryTime; //(卡、头像)截止日期
+ public int nScore; // 信用积分
+ public byte[] szCompanyName = new byte[MAX_COMPANY_NAME_LEN]; //单位名称
+ public byte[] szCompanionName = new byte[120]; //陪同人员姓名
+ public byte[] szCompanionCompany = new byte[MAX_COMPANY_NAME_LEN]; //陪同人员单位名称
+ public byte[] szPermissibleArea = new byte[MAX_COMMON_STRING_128]; //准许通行区域
+ public byte[] szSection = new byte[200]; //部门名称
+ public Pointer pstuCustomEducationInfo; // 教育信息,参考NET_CUSTOM_EDUCATION_INFO
+ public Pointer pstuHealthCodeInfo; //健康码信息,NET_HEALTH_CODE_INFO
+ public byte[] szRoomNo = new byte[32]; //房间号
+ public Pointer pstuIDCardInfo; //证件信息,NET_IDCARD_INFO
+ public Pointer pstuBusStationInfo; //公交站信息,NET_BUS_STATION_INFO
+ public Pointer pstuCustomWorkerInfo; //工地工人信息,NET_CUSTOM_WORKER_INFO
+ public boolean bUseMatchInfoEx; //否使用匹配信息扩展字段
+ public Pointer pstuMatchInfoEx; //匹配信息扩展字段,NET_OPENDOOR_MATCHINFO_EX
+ public Pointer pstuHSJCInfo; // 核酸检测信息,NET_HSJC_INFO
+ public Pointer pstuVaccineInfo; // 新冠疫苗接种信息,NET_VACCINE_INFO
+ public Pointer pstuTravelInfo; // 行程码信息,NET_TRAVEL_INFO
+ public byte[] byReserved = new byte[12];
+ }
+
+ // 教育信息
+ public static class NET_CUSTOM_EDUCATION_INFO extends SdkStructure
+ {
+ public int emInfoType; // 信息类型
+ public int nStudentSeatNumber; // 座位号,最小值为1
+ public byte[] szInfoContent = new byte[128]; // 消息内容
+ public int emVoiceType; // 语音类型,EM_CUSTOM_EDUCATION_VOICE_TYPE
+ }
+
+ //图片信息
+ public static class NET_OPENDOOR_IMAGEINFO extends SdkStructure
+ {
+ public int nLibImageLen; //人脸库照片长度,限制为150k
+ public int nSnapImageLen; //抓拍照片长度,限制为150k
+ public Pointer pLibImage; //人脸库照片,内存由用户申请
+ public Pointer pSnapImage; //抓拍照片,内存由用户申请
+ public byte[] byReserved = new byte[1024];
+ }
+
+ //人脸开门输出参数
+ public static class NET_OUT_FACE_OPEN_DOOR extends SdkStructure
+ {
+ public int dwSize;
+
+ public NET_OUT_FACE_OPEN_DOOR(){
+ this.dwSize = this.size();
+ }
+ }
+
+ //人脸开门
+ public boolean CLIENT_FaceOpenDoor(LLong lLoginID,NET_IN_FACE_OPEN_DOOR pInParam,NET_OUT_FACE_OPEN_DOOR pOutParam,int nWaitTime);
+
+ // 水位场景类型
+ public static class EM_WATERSTAGE_SCENE_TYPE extends SdkStructure
+ {
+ public static final int EM_WATERMONITOR_SCENE_UNKNOWN = 0; // 未知
+ public static final int EM_WATERMONITOR_SCENE_WATERSTAGE_RULE = 1; // 水位检测, 有水位尺
+ public static final int EM_WATERMONITOR_SCENE_WATERSTAGE_NO_RULE = 2; // 水位检测, 无水位尺
+ public static final int EM_WATERMONITOR_SCENE_WATERLOGG_RULE = 3; // 内涝检测, 有水位尺
+ public static final int EM_WATERMONITOR_SCENE_WATERLOGG_NO_RULE = 4; // 内涝检测, 无水位尺
+ }
+
+ // 水面分割掩膜信息
+ public static class NET_WATER_SURFACE_MASK_INFO extends SdkStructure
+ {
+ public int nColNum; // 水面分割掩膜列数
+ public int nOffset; // 偏移
+ public int nLength; // 长度
+ public byte[] byReserved = new byte[1020]; // 预留字段
+ }
+
+ // 水位监测事件, 目前仅用于任务型智能分析
+ public static class DEV_EVENT_WATER_STAGE_MONITOR_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public int nAction; // 1:开始 2:停止
+ public byte[] szName = new byte[128]; // 事件名称
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
+ public int emClassType; // 智能事件所属大类
+ public int emSceneType; // 水位场景类型
+ public double dbMark; // 水尺读数
+ public NET_POINT stuCrossPoint; // 水尺与水面交点
+ public NET_WATER_SURFACE_MASK_INFO stuWaterSurfaceMask; // 水面分割掩膜信息, emSceneType 为EM_WATERMONITOR_SCENE_WATERSTAGE_NO_RULE 或者EM_WATERMONITOR_SCENE_WATERLOGG_NO_RULE有效
+ public byte[] byReserved = new byte[1020]; // 预留字段
+ }
+
+ // 标定线
+ public static class NET_CALIBRATE_LINE_INFO extends SdkStructure
+ {
+ public NET_POINT stuStartPoint; // 起点
+ public NET_POINT stuEndPoint; // 终点
+ }
+
+ // 事件类型EVENT_IVS_WATER_STAGE_MONITOR(水位检测事件)对应的规则配置
+ public static class NET_WATER_STAGE_MONITOR_RULE_INFO extends SdkStructure
+ {
+ public int nDetectRegionPoint; // 检测区顶点数
+ public POINTCOORDINATE[] stuDetectRegion = (POINTCOORDINATE[]) new POINTCOORDINATE().toArray(20); // 检测区域
+ public int dwSceneMask; // 使能检测的场景掩码 // bit2:内涝检测,有水位尺, bit3:内涝检测,无水位尺
+ public NET_CALIBRATE_LINE_INFO stuCalibrateLine; // 标定线, 仅在人物分析模式下有效
+ public byte[] byReserved = new byte[4096]; //保留字节
+ }
+
+ // 事件类型EVENT_IVS_VIOLENT_THROW_DETECTION(暴力抛物检测)对应的数据块描述信息
+ public static class DEV_EVENT_VIOLENT_THROW_DETECTION_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public int nAction; // 0:脉冲 1:开始 2:停止
+ public byte[] szName = new byte[128]; // 事件名称
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public int nFrameSequence; // 视频分析帧序号
+ public byte[] szRegionName = new byte[64]; // 暴力抛物检测区域名称
+ public SCENE_IMAGE_INFO_EX stuSceneImage; // 大图信息
+ public NET_IMAGE_INFO_EX2 stuImageInfo[] = (NET_IMAGE_INFO_EX2[])new NET_IMAGE_INFO_EX2().toArray(32); //图片信息数组
+ public int nImageInfoNum; //图片信息个数
+ public byte byReserver[] = new byte[1024]; //预留字节
+ }
+
+ // CLIENT_GetHumanRadioCaps 接口输入参数
+ public static class NET_IN_GET_HUMAN_RADIO_CAPS extends SdkStructure
+ {
+ public int dwSize;
+ public int nChannel;
+
+ public NET_IN_GET_HUMAN_RADIO_CAPS(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // CLIENT_GetHumanRadioCaps 接口输出参数
+ public static class NET_OUT_GET_HUMAN_RADIO_CAPS extends SdkStructure
+ {
+ public int dwSize;
+ public int bSupportRegulatorAlarm;
+
+ public NET_OUT_GET_HUMAN_RADIO_CAPS(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // 获取能力级
+ public Boolean CLIENT_GetHumanRadioCaps(LLong lLoginID,NET_IN_GET_HUMAN_RADIO_CAPS pInParam,NET_OUT_GET_HUMAN_RADIO_CAPS pOutParam,int nWaitTime);
+
+ // 区域内人员体温信息
+ public static class NET_MAN_TEMP_INFO extends SdkStructure
+ {
+ public int nObjectID; // 物体ID
+ public NET_RECT stRect; // 人员头肩信息, 8192坐标系
+ public double dbHighTemp; // 最高的温度
+ public int nTempUnit; // 温度单位(0摄氏度 1华氏度 2开尔文)
+ public boolean bIsOverTemp; // 是否温度异常
+ public boolean bIsUnderTemp; // 是否温度异常
+ public int nOffset; // 人脸小图特征值在二进制数据块中的偏移
+ public int nLength; // 人脸小图特征值长度, 单位:字节
+ public int emMaskDetectResult; // 口罩检测结果(参考EM_MASK_DETECT_RESULT_TYPE)
+ public NET_RECT stThermalRect; // 热成像检测人员头肩坐标信息(坐标系:8192)
+ public int nAge; // 年龄
+ public int emSex; // 性别(参考EM_DEV_EVENT_FACEDETECT_SEX_TYPE)
+ public byte[] byReserved = new byte[36]; // 预留字段
+ }
+
+ // 全景图
+ public static class NET_VIS_SCENE_IMAGE extends SdkStructure
+ {
+ public int nOffset; // 在二进制数据块中的偏移
+ public int nLength; // 图片大小, 单位字节
+ public int nWidth; // 图片宽度, 像素
+ public int nHeight; // 图片高度, 像素
+ public byte[] byReserved = new byte[64]; // 预留字段
+ }
+
+ // 热成像全景图
+ public static class NET_THERMAL_SCENE_IMAGE extends SdkStructure
+ {
+ public int nOffset; // 在二进制数据块中的偏移
+ public int nLength; // 图片大小, 单位字节
+ public int nWidth; // 图片宽度, 像素
+ public int nHeight; // 图片高度, 像素
+ public byte[] byReserved = new byte[64]; // 预留字段
+ }
+
+ // 事件类型EVENT_IVS_ANATOMY_TEMP_DETECT(人体测温检测事件)对应的数据块描述信息
+ public static class DEV_EVENT_ANATOMY_TEMP_DETECT_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public int nAction; // 1:开始 2:停止
+ public byte[] szName = new byte[128]; // 事件名称
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int emClassType; // 智能事件所属大类(对应枚举类型EM_CLASS_TYPE)
+ public int nPresetID; // 事件触发的预置点号, 从1开始, 没有该字段,表示预置点未知
+ public NET_MAN_TEMP_INFO stManTempInfo; // 区域内人员体温信息
+ public NET_VIS_SCENE_IMAGE stVisSceneImage; // 可见光全景图
+ public NET_THERMAL_SCENE_IMAGE stThermalSceneImage; // 热成像全景图
+ public int nSequence; // 帧序号
+ public int nEventRelevanceID; // 事件关联ID
+ public boolean bIsFaceRecognition; // 是否做过后智能的目标识别
+ public Pointer pstuImageInfo; // 图片信息数组,结构体NET_IMAGE_INFO_EX2数组指针
+ public int nImageInfoNum; // 图片信息个数
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public byte[] byReserved = new byte[1004]; // 预留字段
+ }
+
+ // 事件类型 ALARM_ANATOMY_TEMP_DETECT_INFO(人体温智能检测事件)对应的数据块描述信息
+ public static class ALARM_ANATOMY_TEMP_DETECT_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public int nAction; // 0:脉冲 1:开始 2:停止
+ public byte[] szName = new byte[128]; // 事件名称
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int nPresetID; // 事件触发的预置点号, 从1开始, 没有该字段,表示预置点未知
+ public NET_MAN_TEMP_INFO stManTempInfo; // 区域内人员体温信息
+ public int nSequence; // 帧序号
+ public int nEventRelevanceID; // 事件关联ID
+ public boolean bIsFaceRecognition; // 是否做过后智能的目标识别
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public byte[] byReserved = new byte[1020]; // 预留字节
+ }
+
+ // 人体测温规则配置
+ public static class CFG_ANATOMY_TEMP_DETECT_INFO extends SdkStructure
+ {
+ // 信息
+ public byte[] szRuleName = new byte[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
+ public int bRuleEnable; // 规则使能
+ public int nObjectTypeNum; // 相应物体类型个数
+ public byte[] szObjectTypes = new byte[MAX_OBJECT_LIST_SIZE*MAX_NAME_LEN]; // 相应物体类型列表
+ public int nPtzPresetId; // 云台预置点编号 0~65535
+ public CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
+ public CFG_TIME_SECTION[] stuTimeSection = (CFG_TIME_SECTION[])new CFG_TIME_SECTION().toArray(WEEK_DAY_NUM*MAX_REC_TSECT_EX); // 事件响应时间段
+ public byte bTrackEnable; // 触发跟踪使能,仅对警戒线事件,警戒区规则有效
+ public int nDetectRegionPoint; // 多边形顶点数
+ public CFG_POLYGON[] stuDetectRegion = (CFG_POLYGON[])new CFG_POLYGON().toArray(MAX_POLYGON_NUM); // 检测区域,多边形
+ public boolean bHighEnable; // 温度异常报警是否开启
+ public boolean bLowEnable; // 温度异常报警是否开启
+ public int fHighThresholdTemp; // 温度异常阈值,精度0.1,扩大10倍
+ public int fLowThresholdTemp; // 温度异常阈值,精度0.1,扩大10倍
+ public boolean bIsAutoStudy; // 是否自动学习
+ public int fHighAutoOffset; // 温度自动学习偏差值,精度0.1,扩大10倍
+ public int fLowAutoOffset; // 温度自动学习偏差值,精度0.1,扩大10倍
+ public int nSensitivity; // 灵敏度 范围[1, 10]
+ public boolean bSizeFileter; // 规则特定的尺寸过滤器是否有效
+ public CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
+ public boolean bIsCaptureNormal; // 是否上报正常体温信息
+ public byte[] byReserved = new byte[1024]; // 保留字节
+ }
+
+ // 事件类型 ALARM_REGULATOR_ABNORMAL_INFO(标准黑体源异常报警事件)对应的数据块描述信息
+ public static class ALARM_REGULATOR_ABNORMAL_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public int nAction; // 0:脉冲 1:开始 2:停止
+ public byte[] szName = new byte[128]; // 事件名称
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public byte[] szTypes = new byte[MAX_COMMON_STRING_32]; // 异常类型
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public byte[] byReserved = new byte[1024]; // 预留字节
+ }
+
+ // 校准源信息
+ public static class NET_REGULATOR_INFO extends SdkStructure
+ {
+ public int nDistance; // 校准源距离, 单位cm
+ public int nTemperature; // 校准源温度, 精度0.1, 放大10倍
+ public NET_RECT stRect; // 校准源矩形位置取值0-8191
+ public int nHeight; // 校准源高度, 单位cm
+ public int nDiffTemperature; // 温度偏差值, 精度0.01, 放大100倍
+ public byte[] byReserve = new byte[32]; // 保留字节,用于字节对齐
+ }
+
+ // 人体测温标准黑体配置, 对应枚举 NET_EM_CFG_RADIO_REGULATOR
+ public static class NET_CFG_RADIO_REGULATOR extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int bEnable; // 标准黑体配置使能
+ public int nPresetId; // 预置点编号, 对于无预置点设备为0
+ public int nCamerHeight; // 热成像相机安装高度, 单位cm
+ public int nCamerAngle; // 相机安装角度, 精度0.1, 放大10倍
+ public NET_REGULATOR_INFO stRegulatorInfo; // 校准源信息
+
+ public NET_CFG_RADIO_REGULATOR(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // CLIENT_BatchAppendFaceRecognition 接口输入参数
+ public static class NET_IN_BATCH_APPEND_FACERECONGNITION extends SdkStructure
+ {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 需要添加的人员数量
+ */
+ public int nPersonNum;
+ /**
+ * 人员信息,内存由用户申请,大小为nPersonNum * sizeof(FACERECOGNITION_PERSON_INFOEX)
+ */
+ public Pointer pstPersonInfo;
+ // 图片二进制数据
+ public Pointer pBuffer; // 缓冲地址
+ public int nBufferLen; // 缓冲数据长度
+ public byte[] bReserved = new byte[4]; // 字节对齐
+ public NET_MULTI_APPEND_EXTENDED_INFO stuInfo = new NET_MULTI_APPEND_EXTENDED_INFO(); //扩展信息
+
+ public NET_IN_BATCH_APPEND_FACERECONGNITION(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // 批量添加人员结果信息
+ public static class NET_BATCH_APPEND_PERSON_RESULT extends SdkStructure
+ {
+ public int nUID; // 人员UID
+ public int dwErrorCode; // 错误码信息
+ public byte[] bReserved = new byte[512]; // 保留字段
+ }
+
+ // CLIENT_BatchAppendFaceRecognition 接口输出参数
+ public static class NET_OUT_BATCH_APPEND_FACERECONGNITION extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int nResultNum; // 批量添加结果个数,由用户指定,数值与NET_IN_BATCH_APPEND_FACERECONGNITION中的nPersonNum一致
+ /**
+ * 内存大小为结构体数组的大小,对应结构体为{@link NET_BATCH_APPEND_PERSON_RESULT}
+ */
+ public Pointer pstResultInfo; // 批量添加结果信息
+ public int nUIDType; // 指定NET_BATCH_APPEND_PERSON_RESULT中的UID使用字段,不存在本字段或值为0则使用UID字段,若值为1则使用UID2字段
+
+ public NET_OUT_BATCH_APPEND_FACERECONGNITION(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // 添加多个人员信息和人脸样本
+ public Boolean CLIENT_BatchAppendFaceRecognition(LLong lLoginID,NET_IN_BATCH_APPEND_FACERECONGNITION pstInParam,NET_OUT_BATCH_APPEND_FACERECONGNITION pstOutParam,int nWaitTime);
+
+ // CLIENT_FindFileEx+DH_FILE_QUERY_SNAPSHOT_WITH_MARK 对应查询参数
+ public static class MEDIAFILE_SNAPSHORT_WITH_MARK_PARAM extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public NET_TIME stuStartTime; // 开始时间
+ public NET_TIME stuEndTime; // 结束时间
+ public int bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stuStartTime, stuEndTime), 为FALSE表示仅下发stuStartTime, stuEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
+ public NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
+ public NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
+
+ public MEDIAFILE_SNAPSHORT_WITH_MARK_PARAM(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // 抓图标记信息
+ public static class NET_SNAPSHOT_MARK_INFO extends SdkStructure
+ {
+ public NET_POINT stuPosition; // 标记的坐标位置, 绝对坐标系
+ public byte[] byReserved = new byte[1020]; // 预留字段
+ }
+
+ // DH_FILE_QUERY_SNAPSHOT_WITH_MARK 对应 FINDNEXT 查询返回结果
+ public static class MEDIAFILE_SNAPSHORT_WITH_MARK_INFO extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int nChannelID; // 通道号从0开始,-1表示查询所有通道
+ public NET_TIME stuStartTime; // 开始时间
+ public NET_TIME stuEndTime; // 结束时间
+ public int nFileSize; // 文件长度
+ public byte[] szFilePath = new byte[MAX_PATH]; // 文件路径
+ public NET_SNAPSHOT_MARK_INFO stuMarkInfo; // 抓图标记信息
+ public int bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示仅stuStartTime和stuEndTime有效(仅使用stuStartTime和stuEndTime)
+ public NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
+ public NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
+
+ public MEDIAFILE_SNAPSHORT_WITH_MARK_INFO(){
+ this.dwSize = this.size();
+ }
+ }
+
+ //////////////////////////////////////无人机航点功能开始///////////////////////////////////////////////////////////////////
+ // 获取无人机航点入参
+ public static class NET_IN_UAVMISSION_COUNT extends SdkStructure
+ {
+ public int dwSize;
+
+ public NET_IN_UAVMISSION_COUNT(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // 获取无人机航点出参
+ public static class NET_OUT_UAVMISSION_COUNT extends SdkStructure
+ {
+ public int dwSize;
+ public int nCount; // 航点总数
+
+ public NET_OUT_UAVMISSION_COUNT(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // 获取任务入参
+ public static class NET_IN_READ_UAVMISSION extends SdkStructure
+ {
+ public int dwSize;
+
+ public NET_IN_READ_UAVMISSION(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // 航点任务
+ public static class NET_UAVMISSION_ITEM extends SdkStructure
+ {
+ public int nCurrentMode; // 使能状态 0-未使能; 1-使能;
+ public int bAutoContinue; // 自动执行下一个航点
+ public int nSequence; // 航点序号
+ public int emCommand; // 航点指令(参考ENUM_UAVCMD_TYPE)
+ public NET_UAVCMD_PARAM_BUFFER stuCmdParam; // 指令参数
+ public byte[] byReserved = new byte[8]; // 保留字段
+ }
+
+ // 获取任务出参
+ public static class NET_OUT_READ_UAVMISSION extends SdkStructure
+ {
+ public int dwSize;
+ public int nItemCount; // 有效任务个数
+ public Pointer pstuItems; // 任务列表(参考NET_UAVMISSION_ITEM)
+
+ public NET_OUT_READ_UAVMISSION(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // 设置任务入参
+ public static class NET_IN_WRITE_UAVMISSION extends SdkStructure
+ {
+ public int dwSize;
+ public int nItemCount; // 有效任务个数
+ public Pointer pstuItems; // 任务列表(参考NET_UAVMISSION_ITEM)
+
+ public NET_IN_WRITE_UAVMISSION(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // 设置任务出参
+ public static class NET_OUT_WRITE_UAVMISSION extends SdkStructure
+ {
+ public int dwSize;
+
+ public NET_OUT_WRITE_UAVMISSION(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // 订阅任务消息入参
+ public static class NET_IN_ATTACH_UAVMISSION_STATE extends SdkStructure
+ {
+ public int dwSize;
+ public fUAVMissionStateCallBack cbNotify; // 任务状态回调函数
+ public Pointer dwUser; // 用户信息
+
+ public NET_IN_ATTACH_UAVMISSION_STATE(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // 订阅任务消息出参
+ public static class NET_OUT_ATTACH_UAVMISSION_STATE extends SdkStructure
+ {
+ public int dwSize; // 赋值为结构体大小
+
+ public NET_OUT_ATTACH_UAVMISSION_STATE(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // 任务状态类型
+ public static class ENUM_UAVMISSION_TYPE extends SdkStructure
+ {
+ public static final int ENUM_UAVMISSION_TYPE_UNKNOWN = 0; // 未知类型
+ public static final int ENUM_UAVMISSION_TYPE_WP_UPLOAD = 1; // 航点上传
+ public static final int ENUM_UAVMISSION_TYPE_WP_DOWNLOAD = 2; // 航点下载
+ }
+
+ // 任务状态
+ public static class ENUM_UAVMISSION_STATE extends SdkStructure
+ {
+ public static final int ENUM_UAVMISSION_STATE_UNKNOWN = 0; // 未知类型
+ public static final int ENUM_UAVMISSION_STATE_BEGIN = 1; // 开始
+ public static final int ENUM_UAVMISSION_STATE_UNDERWAY = 2; // 进行
+ public static final int ENUM_UAVMISSION_STATE_SUCCESS = 3; // 成功
+ public static final int ENUM_UAVMISSION_STATE_FAIL = 4; // 失败
+ }
+
+ // 任务状态信息
+ public static class NET_UAVMISSION_STATE extends SdkStructure
+ {
+ public int emType; // 类型(参见ENUM_UAVMISSION_TYPE枚举类型)
+ public int emState; // 状态(参见ENUM_UAVMISSION_STATE)
+ public int nTotalCount; // 总数
+ public int nSequence; // 当前航点编号
+ }
+
+ // 无人机任务状态回调
+ public interface fUAVMissionStateCallBack extends Callback {
+ public void invoke(LLong lAttachHandle,NET_UAVMISSION_STATE pstuState,int dwStateInfoSize,Pointer dwUser);
+ }
+
+ // 无人机通用设置接口
+ //emCmdType(参考ENUM_UAVCMD_TYPE枚举)
+ //pParam对应ENUM_UAVCMD_TYPE所对应的结构体
+ public boolean CLIENT_SendCommandToUAV(LLong lLoginID,int emCmdType,Pointer pParam,int nWaitTime);
+
+ // 获取航点总数
+ public boolean CLIENT_GetUAVMissonCount(LLong lLoginID,NET_IN_UAVMISSION_COUNT pstuInParam,NET_OUT_UAVMISSION_COUNT pstuOutParam,int nWaitTime);
+
+ // 获取UAV航点信息
+ public boolean CLIENT_ReadUAVMissions(LLong lLoginID,NET_IN_READ_UAVMISSION pstuInParam,NET_OUT_READ_UAVMISSION pstuOutParam,int nWaitTime);
+
+ // 设置UAV航点信息
+ public boolean CLIENT_WriteUAVMissions(LLong lLoginID,NET_IN_WRITE_UAVMISSION pstuInParam,NET_OUT_WRITE_UAVMISSION pstuOutParam,int nWaitTime);
+
+ // 订阅UAV航点任务 pstuInParam 和 pstuOutParam 由设备申请释放
+ public LLong CLIENT_AttachUAVMissonState(LLong lLoginID,NET_IN_ATTACH_UAVMISSION_STATE pstuInParam,NET_OUT_ATTACH_UAVMISSION_STATE pstuOutParam,int nWaitTime);
+
+ // 退订UAV航点任务 lAttachHandle 是 CLIENT_AttachUAVMissonState 返回值
+ public boolean CLIENT_DettachUAVMissonState(LLong lAttachHandle);
+
+//////////////////////////////////////无人机航点功能结束///////////////////////////////////////////////////////////////////
+ ////////////////////////////////////云上高速抓图起雾事件开始//////////////////////////////////////////
+ // 起雾检测事件数据类型
+ public static class EM_FOG_DETECTION_EVENT_TYPE
+ {
+ public static final int EM_FOG_DETECTION_EVENT_TYPE_UNKNOWN = 0; // 未知
+ public static final int EM_FOG_DETECTION_EVENT_TYPE_REAL = 1; // 实时数据
+ public static final int EM_FOG_DETECTION_EVENT_TYPE_ALARM = 2; // 报警数据
+ }
+
+ // 雾值
+ public static class EM_FOG_LEVEL extends SdkStructure
+ {
+ public static final int EM_FOG_LEVEL_UNKNOWN = 0; // 未知
+ public static final int EM_FOG_LEVEL_NO = 1; // 无
+ public static final int EM_FOG_LEVEL_BLUE = 2; // 蓝色预警
+ public static final int EM_FOG_LEVEL_YELLOW = 3; // 黄色预警
+ public static final int EM_FOG_LEVEL_ORANGE = 4; // 橙色预警
+ public static final int EM_FOG_LEVEL_RED = 5; // 红色预警
+ }
+
+ // 起雾检测事件雾信息
+ public static class FOG_DETECTION_FOG_INFO extends SdkStructure
+ {
+ public int emFogLevel; // 雾等级,参考EM_FOG_LEVEL
+ public byte[] byReserved = new byte[508]; // 预留字段
+ }
+
+ // 事件类型EVENT_IVS_FOG_DETECTION(起雾检测事件)对应的数据块描述信息
+ public static class DEV_EVENT_FOG_DETECTION extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public int nAction; // 0:脉冲 1:开始 2:停止
+ public byte[] szName = new byte[128]; // 事件名称
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public int emClassType; // 智能事件所属大类,参考EM_CLASS_TYPE
+ public int nGroupID; // 事件组ID,同一辆车抓拍过程内GroupID相同
+ public int nCountInGroup; // 一个事件组内的抓拍张数
+ public int nIndexInGroup; // 一个事件组内的抓拍序号
+ public int nPresetID; // 预置点号,从1开始有效
+ public byte[] szPresetName = new byte[128]; // 阈值点名称
+ public int emEventType; // 事件数据类型,参考EM_FOG_DETECTION_EVENT_TYPE
+ public FOG_DETECTION_FOG_INFO stuFogInfo; // 雾信息
+ public NET_EVENT_FILE_INFO stFileInfo; // 事件对应文件信息
+ public byte[] byReserved = new byte[1024]; // 预留字段
+ }
+
+ ////////////////////////////////////云上高速抓图起雾事件开始//////////////////////////////////////////
+ ////////////////////////////////////云上高速抓图开始//////////////////////////////////////////、
+ // CLIENT_ManualSnap 接口输入参数
+ public static class NET_IN_MANUAL_SNAP extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int nChannel; // 抓图通道号
+ public int nCmdSerial; // 请求序列号
+ public byte[] szFilePath = new byte[260]; // 抓图保存路径
+
+ public NET_IN_MANUAL_SNAP(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // 抓图图片编码格式
+ public static class EM_SNAP_ENCODE_TYPE extends SdkStructure
+ {
+ public static final int EM_SNAP_ENCODE_TYPE_UNKNOWN = 0; // 未知
+ public static final int EM_SNAP_ENCODE_TYPE_JPEG = 1; // jpeg图片
+ public static final int EM_SNAP_ENCODE_TYPE_MPEG4_I = 2; // mpeg4的i 帧
+ }
+
+ // CLIENT_ManualSnap 接口输出参数
+ public static class NET_OUT_MANUAL_SNAP extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int nMaxBufLen; // pRcvBuf的长度,由用户指定
+ public Pointer pRcvBuf; // 接收图片缓冲, 用于存放抓图数据, 空间由用户申请和释放, 申请大小为nMaxBufLen
+ public int nRetBufLen; // 实际接收到的图片大小
+ public int emEncodeType; // 图片编码格式,参考EM_SNAP_ENCODE_TYPE
+ public int nCmdSerial; // 请求序列号
+ public byte[] bReserved = new byte[4]; // 字节对齐
+
+ public NET_OUT_MANUAL_SNAP(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // 手动抓图, 支持并发调用
+ public boolean CLIENT_ManualSnap(LLong lLoginID,NET_IN_MANUAL_SNAP pInParam,NET_OUT_MANUAL_SNAP pOutParam,int nWaitTime);
+
+ // 订阅抓图回调信息
+ public static class NET_CB_ATTACH_SNAP_INFO extends SdkStructure
+ {
+ public Pointer pRcvBuf; // 接收到的图片数据
+ public int nBufLen; // 图片数据长度
+ public int emEncodeType; // 图片编码格式,参考EM_SNAP_ENCODE_TYPE
+ public int nCmdSerial; // 抓图请求序列号
+ public byte[] byReserved = new byte[1028]; // 保留字节
+ }
+
+ // 订阅抓图回调函数原形
+ public interface fAttachSnapRev extends Callback {
+ public void invoke(LLong lAttachHandle,NET_CB_ATTACH_SNAP_INFO pstAttachCbInfo,Pointer dwUser);
+ }
+
+ // CLIENT_AttachSnap 接口输入参数
+ public static class NET_IN_ATTACH_INTER_SNAP extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int nChannel; // 抓图通道号
+ public int nCmdSerial; // 请求序列号
+ public int nIntervalSnap; // 定时抓图时间间隔
+ public fAttachSnapRev cbAttachSnapRev; // 回调函数
+ public Pointer dwUser; // 用户数据
+
+ public NET_IN_ATTACH_INTER_SNAP(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // CLIENT_AttachSnap 接口输出参数
+ public static class NET_OUT_ATTACH_INTER_SNAP extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+
+ public NET_OUT_ATTACH_INTER_SNAP(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // 订阅抓图
+ public LLong CLIENT_AttachSnap(LLong lLoginID,NET_IN_ATTACH_INTER_SNAP pInParam,NET_OUT_ATTACH_INTER_SNAP pOutParam);
+
+ // 取消订阅抓图
+ public boolean CLIENT_DetachSnap(LLong lAttachHandle);
+
+ ////////////////////////////////////云上高速抓图结束//////////////////////////////////////////
+ // 二维码上报事件信息( DH_ALARM_QR_CODE_CHECK )
+ public static class ALARM_QR_CODE_CHECK_INFO extends SdkStructure
+ {
+ public int nEventID; // 事件ID
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public double dbPTS; // 时间戳(单位是毫秒)
+ public byte[] szQRCode = new byte[256]; // 二维码字符串
+ public byte[] byReserved = new byte[1024]; // 预留字节
+ }
+
+ /************************************************************************/
+ /* 录像备份回传 */
+ /************************************************************************/
+ // 录像备份恢复任务信息
+ public static class NET_REC_BAK_RST_TASK extends SdkStructure
+ {
+ public int dwSize;
+ public int nTaskID; // 任务ID
+ public byte[] szDeviceID = new byte[NET_DEV_ID_LEN_EX]; // 设备ID
+ public int nChannelID; // 通道号
+ public NET_TIME stuStartTime = new NET_TIME(); // 录像开始时间
+ public NET_TIME stuEndTime = new NET_TIME(); // 录像结束时间
+ public int nState; // 当前备份状态, 0-等待, 1-进行中, 2-完成, 3-失败, 4-暂停
+ public NET_RECORD_BACKUP_PROGRESS stuProgress = new NET_RECORD_BACKUP_PROGRESS(); // 当前备份进度
+ public int emFailReason; // 失败的原因, 当nState字段为3的情况下有效,参考EM_RECORD_BACKUP_FAIL_REASON
+ public NET_TIME stuTaskStartTime = new NET_TIME(); // 任务开始时间, nState为"进行中"、"已完成"、"失败"的情况下该时间点有效;
+ public NET_TIME stuTaskEndTime = new NET_TIME(); // 任务结束时间, nState为"已完成"、"失败"的情况下该时间点有效;
+ public int nRemoteChannel; // 备份源通道
+ public double dbLength; //该任务的总长度,单位字节, -1表示未知
+
+ public NET_REC_BAK_RST_TASK(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // CLIENT_AddRecordBackupRestoreTask接口输入参数
+ public static class NET_IN_ADD_REC_BAK_RST_TASK extends SdkStructure
+ {
+ public int dwSize;
+ public Pointer pszDeviceID; // 设备ID
+ public Pointer pnChannels; // 通道数组
+ public int nChannelCount; // 通道数组大小,由用户申请内存,大小为sizeof(int)*nChannelCount
+ public NET_TIME stuStartTime; // 起始时间
+ public NET_TIME stuEndTime; // 结束时间
+ public byte[] szUrl = new byte[256]; // RTSP URL
+
+ public NET_IN_ADD_REC_BAK_RST_TASK(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // CLIENT_RemoveRecordBackupRestoreTask接口输入参数
+ public static class NET_IN_REMOVE_REC_BAK_RST_TASK extends SdkStructure
+ {
+ public int dwSize;
+ public Pointer pnTaskIDs; // 任务ID数组,由用户申请内存,大小为sizeof(int)*nTaskCount
+ public int nTaskCount; // 任务数量
+
+ public NET_IN_REMOVE_REC_BAK_RST_TASK(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // CLIENT_QueryRecordBackupRestoreTask接口输入参数
+ public static class NET_IN_QUERY_REC_BAK_RST_TASK extends SdkStructure
+ {
+ public int dwSize;
+
+ public NET_IN_QUERY_REC_BAK_RST_TASK(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // CLIENT_QueryRecordBackupRestoreTask接口输出参数
+ public static class NET_OUT_QUERY_REC_BAK_RST_TASK extends SdkStructure
+ {
+ public int dwSize;
+ public Pointer pTasks; // 任务数组,由用户申请内存,大小为sizeof(NET_REC_BAK_RST_TASK)*nMaxCount
+ public int nMaxCount; // 数组大小
+ public int nReturnCount; // 返回的任务数量
+
+ public NET_OUT_QUERY_REC_BAK_RST_TASK(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // 开始录像备份恢复
+ public LLong CLIENT_StartRecordBackupRestore(LLong lLoginID);
+
+ // 停止录像备份恢复
+ public void CLIENT_StopRecordBackupRestore(LLong lRestoreID);
+
+ // 添加录像备份恢复任务,pInParam内存由用户申请释放
+ public boolean CLIENT_AddRecordBackupRestoreTask(LLong lRestoreID,NET_IN_ADD_REC_BAK_RST_TASK pInParam,int nWaitTime);
+
+ // 删除录像备份恢复任务,pInParam->NET_IN_REMOVE_REC_BAK_RST_TASK 内存由用户申请释放
+ public boolean CLIENT_RemoveRecordBackupRestoreTask(LLong lRestoreID,Pointer pInParam,int nWaitTime);
+
+ // 获取录像备份恢复任务信息,pInParam与pOutParam内存由用户申请释放
+ // pInParam->NET_IN_QUERY_REC_BAK_RST_TASK pOutParam->NET_OUT_QUERY_REC_BAK_RST_TASK
+ public boolean CLIENT_QueryRecordBackupRestoreTask(LLong lRestoreID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ // 导入配置文件(以JSON格式) pSendBuf: 待发送数据,用户分配内存, nSendBufLen: 待发送长度, reserved: 保留参数
+ public boolean CLIENT_ImportConfigFileJson(LLong lLoginID,Pointer pSendBuf,int nSendBufLen,Pointer reserved,int nWaitTime);
+
+ // 导出配置文件(以JSON格式) pOutBuffer: 接收缓冲,用户分配内存, maxlen: 接收缓冲长度, nRetlen: 实际导出长度, reserved: 保留参数
+ public boolean CLIENT_ExportConfigFileJson(LLong lLoginID,Pointer pOutBuffer,int maxlen,IntByReference nRetlen,Pointer reserved,int nWaitTime);
+
+ // web信息上传接口
+ public boolean CLIENT_TransmitInfoForWeb(LLong lLoginID,Pointer szInBuffer,int dwInBufferSize,Pointer szOutBuffer,int dwOutBufferSize,Pointer pExtData,int waittime);
+
+ //================================================GIP200413016开始============================================
+ // 线圈信息(主要是里面的车辆信息)
+ public static class COILS_INFO extends SdkStructure
+ {
+ public int nCarId; // 车辆Id(不是车牌号,ID是设备检测到物体记录的编号)
+ public byte[] PlateNum = new byte[64]; // 车牌号
+ public int emCarType; // 车辆类型(參考EM_NET_CARTYPE)
+ public byte[] byReserved = new byte[1024]; // 预留字节
+ }
+
+ // 车道信息
+ public static class LANE_INFO extends SdkStructure
+ {
+ public int nLane; // 物理车道号(范围0~4)
+ public int nLaneType; // 车道类型,虚线车道:0, 实线车道:1
+ public double dbLaneOcc; // 车道空间占有率,范围[0.0~1.0]
+ public int nRoadwayNumber; // 自定义车道号(范围0~128)
+ public int nCurrentLaneVehicleNum; // 当前车道车的数量
+ public int nVehicleNum; // 从上次统计结束到现在,通过车的辆数(设备0.5秒下发一次)
+ public int nCarId; // 保留最近有效过车的ID(不是车牌号),CarId是设备检测到物体记录的编号
+ public double dbCarEnterTime; // 编号CarId车辆进入虚线车道的时间
+ public double dbCarLeaveTime; // 编号CarId车辆离开实线车道的时间
+ public int nCarDistance; // 编号CarId车辆行驶的距离,单位:米
+ public int nQueueLen; // 车辆等待时的排队长度,单位:米
+ public double dbCarSpeed; // 编号CarId车辆平均车速,单位:米/秒
+ public int nCoilsInfoNum; // 实际返回线圈信息个数
+ public COILS_INFO[] stuCoilsInfo = (COILS_INFO[])new COILS_INFO().toArray(70*2); // 线圈信息(主要是线圈内的车辆信息)
+ public int nRetSolidLanNum; // 实际返回虚线车道个数
+ public int[] nSolidLaneNum = new int[6]; // 虚线车道对应的实线车道自定义车道号
+ public int nVehicleNumByTypeNum; // 实际返回车辆类型统计个数
+ public int[] nVehicleNumByType = new int[64]; // 类型车辆统计,数组下标对应不同车型(车型参考 EM_NET_CARTYPE),下标值对应车辆类型统计的数量
+ public int nEndLen; // 车辆运行时,尾部车辆位置距离停车线的距离 ,单位:米
+ public byte[] byReserved = new byte[1024]; // 预留字节
+ }
+
+ // 交通态势事件(NET_ALARM_TRAFFIC_XINKONG)
+ public static class ALARM_TRAFFIC_XINKONG_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public int nAction; // 只有一个事件动作0,表示脉冲事件
+ public double dbPTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] byReserved1 = new byte[4]; // 字节对齐
+ public int nLaneInfoNum; // 实际上报多少车道信息
+ public LANE_INFO[] stuLaneInfo = (LANE_INFO[])new LANE_INFO().toArray(6); // 车道信息
+ public byte[] byReserved = new byte[1024]; // 预留字节
+ }
+
+ //================================================GIP200413016结束============================================
+ //================================================ERR200412034开始============================================
+ // 同轴IO控制类型
+ public static class EM_COAXIAL_CONTROL_IO_TYPE extends SdkStructure
+ {
+ public static final int EM_COAXIAL_CONTROL_IO_TYPE_UNKNOWN = 0; // 未知
+ public static final int EM_COAXIAL_CONTROL_IO_TYPE_LIGHT = 1; // 白光灯
+ public static final int EM_COAXIAL_CONTROL_IO_TYPE_SPEAKER = 2; // speak音频
+ }
+
+ // 同轴IO控制开关
+ public static class EM_COAXIAL_CONTROL_IO_SWITCH extends SdkStructure
+ {
+ public static final int EM_COAXIAL_CONTROL_IO_SWITCH_UNKNOWN = 0; // 未知
+ public static final int EM_COAXIAL_CONTROL_IO_SWITCH_OPEN = 1; // 开
+ public static final int EM_COAXIAL_CONTROL_IO_SWITCH_CLOSE = 2; // 关
+ }
+
+ // 同轴IO触发方式
+ public static class EM_COAXIAL_CONTROL_IO_TRIGGER_MODE extends SdkStructure
+ {
+ public static final int EM_COAXIAL_CONTROL_IO_TRIGGER_MODE_UNKNOWN = 0; // 未知
+ public static final int EM_COAXIAL_CONTROL_IO_TRIGGER_MODE_LINKAGE_TRIGGER = 1; // 联动触发
+ public static final int EM_COAXIAL_CONTROL_IO_TRIGGER_MODE_MANUAL_TRIGGER = 2; // 手动触发
+ }
+
+ // 同轴IO信息结构体
+ public static class NET_COAXIAL_CONTROL_IO_INFO extends SdkStructure
+ {
+ public int emType; // 同轴IO控制类型参考EM_COAXIAL_CONTROL_IO_TYPE
+ public int emSwicth; // 同轴IO控制开关参考EM_COAXIAL_CONTROL_IO_SWITCH
+ public int emMode; // 同轴IO触发方式参考EM_COAXIAL_CONTROL_IO_TRIGGER_MODE
+ public byte[] byReserved = new byte[128]; // 保留字节
+ }
+
+ // 发送同轴IO控制命令, CLIENT_ControlDeviceEx 入参 对应 CTRLTYPE_CTRL_COAXIAL_CONTROL_IO
+ public static class NET_IN_CONTROL_COAXIAL_CONTROL_IO extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int nChannel; // 通道号
+ public int nInfoCount; // 同轴IO信息个数
+ public NET_COAXIAL_CONTROL_IO_INFO[] stInfo = (NET_COAXIAL_CONTROL_IO_INFO[])new NET_COAXIAL_CONTROL_IO_INFO().toArray(MAX_COAXIAL_CONTROL_IO_COUNT); // 同轴IO信息
+
+ public NET_IN_CONTROL_COAXIAL_CONTROL_IO(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // 发送同轴IO控制命令, CLIENT_ControlDeviceEx 出参 对应 CTRLTYPE_CTRL_COAXIAL_CONTROL_IO
+ public static class NET_OUT_CONTROL_COAXIAL_CONTROL_IO extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+
+ public NET_OUT_CONTROL_COAXIAL_CONTROL_IO(){
+ this.dwSize = this.size();
+ }
+ }
+
+ //================================================ERR200412034结束============================================
+ //================================================ERR200410078 DH-TPC-BF2221开始============================================
+ // 火灾配置类型
+ public static class NET_EM_FIREWARNING_MODE_TYPE extends SdkStructure
+ {
+ public static final int NET_EM_FIREWARNING_TYPE_PTZPRESET = 0; // 云台预置点模式(默认)
+ public static final int NET_EM_FIREWARNING_TYPE_SPACEEXCLUDE = 1; // 空间排除模式
+ }
+
+ // 火灾预警模式配置 NET_EM_CFG_FIRE_WARNINGMODE
+ public static class NET_FIREWARNING_MODE_INFO extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int emFireWarningMode; // 火灾预警模式 参考NET_EM_FIREWARNING_MODE_TYPE
+
+ public NET_FIREWARNING_MODE_INFO(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // 时间表信息
+ public static class NET_CFG_TIME_SCHEDULE extends SdkStructure
+ {
+ public int bEnableHoliday; // 是否支持节假日配置,默认为不支持,除非获取配置后返回为TRUE,不要使能假日配置
+ public NET_TSECT[] stuTimeSection = (NET_TSECT[])new NET_TSECT().toArray(NET_N_SCHEDULE_TSECT*NET_N_REC_TSECT); // 第一维前7个元素对应每周7天,第8个元素对应节假日,每天最多6个时间段
+ }
+
+ // 火灾预警联动项
+ public static class NET_FIREWARN_EVENTHANDLE_INFO extends SdkStructure
+ {
+ public NET_CFG_TIME_SCHEDULE stuTimeSection; // 报警时间段
+ public int bRecordEnable; // 录像使能,必须同时有RecordChannels。使能为TRUE,且事件action为start开始录像,stop停止录像。如果FALSE,则不做录像
+ public int nRecordChannelNum; // 录像通道个数
+ public int[] nRecordChannels = new int[32]; // 录像通道号列表
+ public int nRecordLatch; // 录像延时时间(单位:秒)范围[10,300]
+ public int bAlarmOutEnable; // 报警输出使能
+ public int nAlarmOutChannelNum; // 报警输出通道个数
+ public int[] nAlarmOutChannels = new int[32]; // 报警输出通道号列表
+ public int nAlarmOutLatch; // 报警输入停止后,输出延时时间(单位:秒)范围[10, 300]
+ public int nPtzLinkNum; // 云台配置数
+ public SDK_PTZ_LINK[] struPtzLink = (SDK_PTZ_LINK[])new SDK_PTZ_LINK().toArray(16); // 云台联动
+ public int bPtzLinkEnable; // 云台联动使能
+ public int bSnapshotEnable; // 快照使能
+ public int nSnapshotChannelNum; // 快照通道个数
+ public int[] nSnapshotChannels = new int[32]; // 快照通道号列表
+ public int bMailEnable; // 发送邮件,如果有图片,作为附件
+ public byte[] byReserved = new byte[1024]; // 保留字节
+ }
+
+ public static class NET_POSTIONF extends SdkStructure
+ {
+ public float fHorizontalAngle; // 水平角度 [-1,1]
+ public float fVerticalAngle; // 垂直角度 [-1,1]
+ public float fMagnification; // 放大倍数 [-1,1]
+ }
+
+ // 火警检测窗口
+ public static class NET_FIREWARN_DETECTWND_INFO extends SdkStructure
+ {
+ public int nRgnNum; // 检测区域的个数
+ public byte[] byReservedAlign = new byte[4]; // 保留字节
+ public long[] nRegions = new long[MAX_FIREWARNING_DETECTRGN_NUM]; // 检测区域
+ public NET_POSTIONF stuPostion; // 空间排除信息
+ public int nTargetSize; // 目标的尺寸(火警配置为:Normal有效,单位:像素)
+ public int nSensitivity; // 检测灵敏度(火警配置为:Normal有效)
+ public int nWindowsID; // 窗口ID
+ public byte[] szName = new byte[32]; // 窗口名称
+ public byte[] byReserved = new byte[256]; // 保留字节
+ }
+
+ // 火灾预警规则信息
+ public static class NET_FIREWARN_RULE_INFO extends SdkStructure
+ {
+ public int bEnable; // 火灾预警功能是否开启
+ public int nPresetId; // 预置点编号,火灾预警模式为预置点模式生效
+ public int nRow; // 火灾检测区域的行数
+ public int nCol; // 火灾检测区域的列数
+ public int emFireWarningDetectMode; // 火警检测模式 参考NET_EM_FIREWARNING_DETECTMODE_TYPE
+ public int emFireWarningDetectTragetType; // 火警检测目标类型 参考NET_EM_FIREWARNING_DETECTTARGET_TYPE
+ public int bTimeDurationEnable; // 是否启用持续时间
+ public int nFireDuration; // 观察火情持续时间,单位秒。水平旋转组检测火点时,为避免同一点重复检测,
+ // 设置超时时间,超过此时间,跳过此点
+ public NET_FIREWARN_EVENTHANDLE_INFO stuEventHandler; // 火警联动信息
+ public int nDetectWindowNum; // 窗口个数
+ public NET_FIREWARN_DETECTWND_INFO[] stuDetectWnd = (NET_FIREWARN_DETECTWND_INFO[])new NET_FIREWARN_DETECTWND_INFO().toArray(MAX_FIREWARNING_DETECTWND_NUM); // 火警检测窗口
+ public byte[] byReserved = new byte[256]; // 保留字节
+ }
+
+ // 火灾预警配置(结构体较大,建议用New分配内存) NET_EM_CFG_FIRE_WARNING
+ public static class NET_FIRE_WARNING_INFO extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int nFireWarnRuleNum; // 火灾预警配置个数
+ public NET_FIREWARN_RULE_INFO[] stuFireWarnRule = (NET_FIREWARN_RULE_INFO[])new NET_FIREWARN_RULE_INFO().toArray(MAX_FIREWARNING_RULE_NUM); // 火灾预警配置规则
+
+ public NET_FIRE_WARNING_INFO(){
+ this.dwSize = this.size();
+ }
+ }
+
+ //================================================ERR200410078 DH-TPC-BF2221结束============================================
+ //================================================ERR200420018============================================
+ // 事件类型 EVENT_IVS_VIDEOABNORMALDETECTION(视频异常事件)对应的数据块描述信息
+ public static class DEV_EVENT_VIDEOABNORMALDETECTION_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte bType; // 异常类型, 255-无意义(通常是设备了返回错误值)0-视频丢失, 1-视频冻结, 2-摄像头遮挡, 3-摄像头移动, 4-过暗, 5-过亮, 6-图像偏色, 7-噪声干扰, 8-条纹检测
+ public byte[] byReserved = new byte[1];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
+ public int nSourceIndex; // 事件源设备上的index,-1表示数据无效
+ public byte[] szSourceDevice = new byte[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
+ public int nOccurrenceCount; // 事件触发累计次数
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public SCENE_IMAGE_INFO_EX stuSceneImage = new SCENE_IMAGE_INFO_EX(); // 全景广角图信息
+ public NET_IMAGE_INFO_EX2 stuImageInfo[] = (NET_IMAGE_INFO_EX2[])new NET_IMAGE_INFO_EX2().toArray(32); //图片信息数组
+ public int nImageInfoNum; //图片信息个数
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public byte byReserved2[] = new byte[1024]; //预留字节
+ }
+
+ // 人员信息
+ public static class NET_HUMAN extends SdkStructure
+ {
+ public NET_RECT stuBoundingBox; // 包围盒(8192坐标系)
+ public int nObjectID; // 物体ID
+ public byte[] szSerialUUID = new byte[22]; // 智能物体全局唯一物体标识
+ // 有效数据位21位,包含’\0’
+ // 前2位%d%d:01-视频片段, 02-图片, 03-文件, 99-其他
+ // 中间14位YYYYMMDDhhmmss:年月日时分秒
+ // 后5位%u%u%u%u%u:物体ID,如00001
+ public byte[] bReserved = new byte[230]; // 保留字节
+ }
+
+ // 事件类型 EVENT_IVS_STAY_ALONE_DETECTION (单人独处事件) 对应的数据块描述信息
+ public static class DEV_EVENT_STAY_ALONE_DETECTION_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public int nAction; // 0:脉冲 1:开始 2:停止
+ public byte[] szName = new byte[NET_EVENT_NAME_LEN]; // 事件名称
+ public double PTS; // 时间戳(单位是毫秒)
+ public int emClassType; // 智能事件所属大类参考EM_CLASS_TYPE
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int UTCMS; // UTC时间对应的毫秒数
+ public int nEventID; // 事件ID
+ public NET_HUMAN stuHuman; // 人员信息
+ public SCENE_IMAGE_INFO_EX stuSceneImage; // 全景图
+ public int nDetectRegionNum; // 检测区域顶点数
+ public DH_POINT[] stuDetectRegion = (DH_POINT[])new DH_POINT().toArray(NET_MAX_DETECT_REGION_NUM); // 检测区域
+ public int nImageInfoNum; // 图片信息个数
+ public Pointer pstuImageInfo; // 图片信息数组, refer to {@link NET_IMAGE_INFO_EX3}
+ public byte[] byReserved = new byte[1020 - POINTERSIZE]; // 保留字节
+ }
+
+ // 事件类型 EVENT_IVS_PSRISEDETECTION (囚犯起身事件) 对应的数据块描述信息
+ public static class DEV_EVENT_PSRISEDETECTION_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public DH_MSG_OBJECT stuObject; // 检测到的物体
+ public int nDetectRegionNum; // 规则检测区域顶点数
+ public DH_POINT[] DetectRegion = (DH_POINT[])new DH_POINT().toArray(NET_MAX_DETECT_REGION_NUM); // 规则检测区域
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public double dInitialUTC; // 事件初始UTC时间 UTC为事件的UTC (1970-1-1 00:00:00)秒数。
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] byReserved = new byte[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
+ public int nSourceIndex; // 事件源设备上的index,-1表示数据无效
+ public byte[] szSourceDevice = new byte[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
+ public int nOccurrenceCount; // 事件触发累计次数
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public byte[] szSerialUUID = new byte[22]; // 智能物体全局唯一物体标识
+ // 有效数据位21位,包含’\0’
+ // 前2位%d%d:01-视频片段, 02-图片, 03-文件, 99-其他
+ // 中间14位YYYYMMDDhhmmss:年月日时分秒
+ // 后5位%u%u%u%u%u:物体ID,如00001
+ public byte[] bReserved = new byte[594]; // 保留字节,留待扩展.
+ }
+
+ //--------------------------------------------------------ERR200420018结束------------------------------------------------------------------------//
+ //--------------------------------------------------------ERR200424047------------------------------------------------------------------------//
+ // 逻辑屏显示内容
+ public static class NET_TRAFFIC_LATTICE_SCREEN_SHOW_CONTENTS extends SdkStructure
+ {
+ public int emContents; // 逻辑屏显示的内容:参考NET_EM_SCREEN_SHOW_CONTENTS
+ public byte[] byReserved1 = new byte[4]; // 字节对齐
+ public byte[] szCustomStr = new byte[32]; // 自定义内容,emContents为 EM_TRAFFIC_LATTICE_SCREEN_CUSTOM 时有效
+ public byte[] byReserved = new byte[32]; // 预留
+ }
+
+ // 点阵屏显示信息
+ public static class NET_TRAFFIC_LATTICE_SCREEN_SHOW_INFO extends SdkStructure
+ {
+ public NET_TRAFFIC_LATTICE_SCREEN_SHOW_CONTENTS[] stuContents = (NET_TRAFFIC_LATTICE_SCREEN_SHOW_CONTENTS[]) new NET_TRAFFIC_LATTICE_SCREEN_SHOW_CONTENTS().toArray(64); // 逻辑屏显示内容
+ public int nContentsNum; // 逻辑屏个数
+ public byte[] byReserved = new byte[1020]; // 预留
+ }
+
+ // 点阵屏显示信息配置, 对应枚举 NET_EM_CFG_TRAFFIC_LATTICE_SCREEN
+ public static class NET_CFG_TRAFFIC_LATTICE_SCREEN_INFO extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int nStatusChangeTime; // 状态切换间隔,单位:秒,取值10 ~ 60
+ public NET_TRAFFIC_LATTICE_SCREEN_SHOW_INFO stuNormal = new NET_TRAFFIC_LATTICE_SCREEN_SHOW_INFO(); // 常态下
+ public NET_TRAFFIC_LATTICE_SCREEN_SHOW_INFO stuCarPass = new NET_TRAFFIC_LATTICE_SCREEN_SHOW_INFO(); // 过车时
+ public int emShowType; /** 显示方式 {@link com.netsdk.lib.enumeration.NET_EM_LATTICE_SCREEN_SHOW_TYPE}*/
+ public int emControlType; /** 控制方式 {@link com.netsdk.lib.enumeration.NET_EM_LATTICE_SCREEN_CONTROL_TYPE}*/
+ public int emBackgroundMode; /** 逻辑屏背景风格模式 {@link com.netsdk.lib.enumeration.NET_EM_LATTICE_SCREEN_BACKGROUND_MODE} */
+ public byte[] szPlayList = new byte[10*64]; // 资源文件播放列表,支持视频文件和图片文件播放,按照数组顺序循环播放
+ public int nPlayListNum; // 资料文件个数
+ public NET_TRAFFIC_LATTICE_SCREEN_LOGO_INFO stuLogoInfo = new NET_TRAFFIC_LATTICE_SCREEN_LOGO_INFO(); // Logo信息
+ public NET_TRAFFIC_LATTICE_SCREEN_ALARM_NOTICE_INFO stuAlarmNoticeInfo = new NET_TRAFFIC_LATTICE_SCREEN_ALARM_NOTICE_INFO(); // 报警提示显示信息
+
+ public NET_CFG_TRAFFIC_LATTICE_SCREEN_INFO(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // 车位灯色
+ public static class NET_PARKINGSPACELIGHT_INFO extends SdkStructure
+ {
+ public int nRed; // 红灯: -1:无效, 0/灭, 1/亮, 2/闪烁
+ public int nYellow; // 黄灯: -1:无效, 0/灭, 1/亮, 2/闪烁
+ public int nBlue; // 蓝灯: -1:无效, 0/灭, 1/亮, 2/闪烁
+ public int nGreen; // 绿灯: -1:无效, 0/灭, 1/亮, 2/闪烁
+ public int nPurple; // 紫灯: -1:无效, 0/灭, 1/亮, 2/闪烁
+ public int nWhite; // 白灯: -1:无效, 0/灭, 1/亮, 2/闪烁
+ public int nPink; // 粉等: -1:无效, 0/灭, 1/亮, 2/闪烁
+ public byte[] byReserved = new byte[32]; // 保留字节
+
+ public void setInfo(int nRed, int nYellow, int nBlue, int nGreen, int nPurple, int nWhite,int nPink) {
+ this.nRed = nRed;
+ this.nYellow = nYellow;
+ this.nBlue = nBlue;
+ this.nGreen = nGreen;
+ this.nPurple = nPurple;
+ this.nWhite = nWhite;
+ this.nPink = nPink;
+ }
+ }
+
+ // 网络异常状态灯色
+ public static class NET_NETWORK_EXCEPTION_INFO extends SdkStructure
+ {
+ public NET_PARKINGSPACELIGHT_INFO[] stNetPortAbortInfo = (NET_PARKINGSPACELIGHT_INFO[]) new NET_PARKINGSPACELIGHT_INFO().toArray(5); // 网口断开状态灯色
+ public int nRetNetPortAbortNum; // 实际返回的个数
+ public NET_PARKINGSPACELIGHT_INFO stuSpaceSpecialInfo; // 车位专用状态灯色
+ public NET_PARKINGSPACELIGHT_INFO stuSpaceChargingInfo; // 充电车位状态灯色
+ public byte[] byReserved = new byte[256]; // 保留字节
+ }
+
+ // 车位状态对应的车位指示灯色 对应 NET_EM_CFG_PARKINGSPACELIGHT_STATE
+ public static class NET_PARKINGSPACELIGHT_STATE_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public NET_PARKINGSPACELIGHT_INFO stuSpaceFreeInfo; // 车位空闲状态灯色
+ public NET_PARKINGSPACELIGHT_INFO stuSpaceFullInfo; // 车位占满状态灯色
+ public NET_PARKINGSPACELIGHT_INFO stuSpaceOverLineInfo; // 车位压线状态灯色
+ public NET_PARKINGSPACELIGHT_INFO stuSpaceOrderInfo; // 车位预定状态灯色
+ public NET_NETWORK_EXCEPTION_INFO stuNetWorkExceptionInfo; // 网络异常状态灯色
+
+ public NET_PARKINGSPACELIGHT_STATE_INFO(){
+ this.dwSize = this.size();
+ }
+ }
+
+ // 车位监管状态
+ public static class EM_CFG_LANE_STATUS extends SdkStructure
+ {
+ public static final int EM_CFG_LANE_STATUS_UNKOWN = -1; // 状态未知
+ public static final int EM_CFG_LANE_STATUS_UNSUPERVISE = 0; // 不监管
+ public static final int EM_CFG_LANE_STATUS_SUPERVISE = 1; // 监管
+ }
+
+ // 单个车位指示灯本机配置
+ public static class CFG_PARKING_SPACE_LIGHT_GROUP_INFO extends SdkStructure
+ {
+ public int bEnable; // 为TRUE时该配置生效,为FALSE时该配置无效
+ public int[] emLaneStatus = new int[MAX_LANES_NUM]; // 灯组监管的车位,下标表示车位号;参考EM_CFG_LANE_STATUS
+ public int nLanesNum; // 有效的车位数量(可以设为监管或不监管的车位数量)
+ public int bAcceptNetCtrl; // 是否接受远程控制
+ }
+
+ // 车位指示灯本机配置 CFG_CMD_PARKING_SPACE_LIGHT_GROUP
+ public static class CFG_PARKING_SPACE_LIGHT_GROUP_INFO_ALL extends SdkStructure
+ {
+ public int nCfgNum; // 获取到的配置个数
+ public CFG_PARKING_SPACE_LIGHT_GROUP_INFO[] stuLightGroupInfo = (CFG_PARKING_SPACE_LIGHT_GROUP_INFO[]) new CFG_PARKING_SPACE_LIGHT_GROUP_INFO().toArray(MAX_LIGHT_GROUP_INFO_NUM); // 车位指示灯本机配置
+ }
+
+ //--------------------------------------------------------ERR200424047结束------------------------------------------------------------------------//
+ //--------------------------------------------------------ERR200426006------------------------------------------------------------------------//
+ // 灯光设备类型
+ public static class EM_LIGHT_TYPE extends SdkStructure
+ {
+ public static final int EM_LIGHT_TYPE_UNKNOWN = 0; // 未知类型
+ public static final int EM_LIGHT_TYPE_COMMLIGHT = 1; // 普通灯光
+ public static final int EM_LIGHT_TYPE_LEVELLIGHT = 2; // 可调光
+ }
+
+ // 串口地址
+ public static class CFG_COMMADDR_INFO extends SdkStructure
+ {
+ public int nAddressNum; // 串口地址个数
+ public int[] nAddress = new int[MAX_ADDRESS_NUM]; // 地址描述,不同厂商地址位不同,用数组表示
+ }
+
+ // 灯光设备配置信息 (对应 CFG_CMD_LIGHT )
+ public static class CFG_LIGHT_INFO extends SdkStructure
+ {
+ public byte[] szDeviceID = new byte[MAX_DEVICE_ID_LEN]; // 设备编码,惟一标识符
+ public byte[] szName = new byte[MAX_DEVICE_MARK_LEN]; // 设备描述
+ public byte[] szBrand = new byte[MAX_BRAND_NAME_LEN]; // 设备品牌
+ public CFG_COMMADDR_INFO stuCommAddr; // 串口地址
+ public int nPositionID; // 设备在区域中编号
+ public CFG_POLYGON stuPosition; // 坐标
+ public int nState; // 设备状态: 1-打开,0-关闭
+ public int nRange; // 灯亮度幅度值 0-7 , emType 为 EM_LIGHT_TYPE_ADJUSTABLE 有意义
+ public int emType; // 灯光设备类型;参考EM_LIGHT_TYPE
+ }
+
+ // 近光灯信息
+ public static class CFG_NEARLIGHT_INFO extends SdkStructure
+ {
+ public int bEnable; // 是否使能,TRUE使能,FALSE不使能
+ public int dwLightPercent; // 灯光亮度百分比值(0~100)
+ public int dwAnglePercent; // 灯光角度百分比值(0~100)
+ }
+
+ // 远光灯信息
+ public static class CFG_FARLIGHT_INFO extends SdkStructure
+ {
+ public int bEnable; // 是否使能,TRUE使能,FALSE不使能
+ public int dwLightPercent; // 灯光亮度百分比值(0~100)
+ public int dwAnglePercent; // 灯光角度百分比值(0~100)
+ }
+
+ // 灯光设置详情
+ public static class CFG_LIGHTING_DETAIL extends SdkStructure
+ {
+ public int nCorrection; // 灯光补偿 (0~4) 倍率优先时有效
+ public int nSensitive; // 灯光灵敏度(0~5)倍率优先时有效,默认为3
+ public int emMode; // 灯光模式,参考EM_CFG_LIGHTING_MODE
+ public int nNearLight; // 近光灯有效个数
+ public CFG_NEARLIGHT_INFO[] stuNearLights = (CFG_NEARLIGHT_INFO[]) new CFG_NEARLIGHT_INFO().toArray(MAX_LIGHTING_NUM); // 近光灯列表
+ public int nFarLight; // 远光灯有效个数
+ public CFG_FARLIGHT_INFO[] stuFarLights = (CFG_FARLIGHT_INFO[]) new CFG_FARLIGHT_INFO().toArray(MAX_LIGHTING_NUM); // 远光灯列表
+ }
+
+ // 灯光模式
+ public static class EM_CFG_LIGHTING_MODE extends SdkStructure
+ {
+ public static final int EM_CFG_LIGHTING_MODE_UNKNOWN = 0; // 未知
+ public static final int EM_CFG_LIGHTING_MODE_MANUAL = 1; // 手动
+ public static final int EM_CFG_LIGHTING_MODE_ZOOMPRIO = 2; // 倍率优先
+ public static final int EM_CFG_LIGHTING_MODE_TIMING = 3; // 定时模式
+ public static final int EM_CFG_LIGHTING_MODE_AUTO = 4; // 自动
+ public static final int EM_CFG_LIGHTING_MODE_OFF = 5; // 关闭模式
+ }
+
+ // 灯光设置(对应 CFG_CMD_LIGHTING 命令)
+ public static class CFG_LIGHTING_INFO extends SdkStructure
+ {
+ public int nLightingDetailNum; // 灯光设置有效个数
+ public CFG_LIGHTING_DETAIL[] stuLightingDetail = (CFG_LIGHTING_DETAIL[]) new CFG_LIGHTING_DETAIL().toArray(MAX_LIGHTING_DETAIL_NUM); // 灯光设置信息列表
+ }
+
+ //--------------------------------------------------------ERR200426006结束------------------------------------------------------------------------//
+ //--------------------------------------------------------ERR200427081开始------------------------------------------------------------------------//
+ // 事件类型EVENT_IVS_HIGH_TOSS_DETECT(高空抛物检测事件)对应的数据块描述信息
+ public static class DEV_EVENT_HIGH_TOSS_DETECT_INFO extends SdkStructure
+ {
+ /**
+ *通道号
+ */
+ public int nChannelID;
+ /**
+ * 0:脉冲
+ * 1:开始
+ * 2:停止
+ */
+ public int nAction;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double PTS;
+ /**
+ * 事件发生的时间
+ */
+ public NET_TIME_EX UTC;
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 智能事件规则编号,用于标示哪个规则触发的事件
+ */
+ public int nRuleID;
+ /**
+ * 智能事件所属大类,枚举值参考{@link EM_CLASS_TYPE}
+ */
+ public int emClassType;
+ /**
+ * 物体信息
+ */
+ public NET_HIGHTOSS_OBJECT_INFO[] stuObjInfos = (NET_HIGHTOSS_OBJECT_INFO[]) new NET_HIGHTOSS_OBJECT_INFO().toArray(50);
+ /**
+ * 物体个数
+ */
+ public int nObjNum;
+ /**
+ * 检测区域顶点数
+ */
+ public int nDetectRegionNum;
+ /**
+ * 检测区域,[0,8192)
+ */
+ public NET_POINT[] stuDetectRegion = (NET_POINT[])new NET_POINT().toArray(NET_MAX_DETECT_REGION_NUM);
+ /**
+ * 视频分析帧序号
+ */
+ public int nFrameSequence;
+ /**
+ * 事件组ID, 同一物体抓拍过程内GroupID相同
+ */
+ public int nGroupID;
+ /**
+ * 抓拍序号,从1开始
+ */
+ public int nIndexInGroup;
+ /**
+ * 抓拍张数
+ */
+ public int nCountInGroup;
+ /**
+ * 图片信息
+ */
+ public NET_EVENT_IMAGE_OFFSET_INFO stuImageInfo;
+ /**
+ * 是否上传大图, true表示第一个图片为全景大图,信息由ImageInfo来表示
+ */
+ public boolean bIsGlobalScene;
+ /**
+ * 用于标记抓拍帧
+ */
+ public int nMark;
+ /**
+ * 预留字节
+ */
+ public byte[] byReserved = new byte[384];
+
+ @Override
+ public String toString() {
+ return "DEV_EVENT_HIGH_TOSS_DETECT_INFO{" +
+ "通道号=" + nChannelID +
+ ", nAction=" + nAction +
+ ", 事件名称=" + new String(szName, Charset.forName("GBK")).trim() +
+ ", s事件戳=" + PTS +
+ ", 事件发生时间=" + UTC.toString() +
+ ", nEventID=" + nEventID +
+ ", 智能事件规则编号=" + nRuleID +
+ ", 智能事件所属大类=" + emClassType +
+ ", stuObjInfos=" + Arrays.toString(stuObjInfos) +
+ ", 物体个数=" + nObjNum +
+ ", 检测区域顶点数=" + nDetectRegionNum +
+ ", stuDetectRegion=" + Arrays.toString(stuDetectRegion) +
+ ", 帧序号=" + nFrameSequence +
+ ", 事件组ID=" + nGroupID +
+ ", 抓拍序号=" + nIndexInGroup +
+ ", 抓拍张数=" + nCountInGroup +
+ ", 图片信息=" + stuImageInfo +
+ ", 是否大图=" + bIsGlobalScene +
+ ", 标记抓拍帧=" + nMark +
+ '}';
+ }
+ }
+
+ public static class NET_EVENT_IMAGE_OFFSET_INFO extends SdkStructure {
+ /**
+ * 偏移
+ */
+ public int nOffSet;
+ /**
+ * 图片大小,单位字节
+ */
+ public int nLength;
+ /**
+ * 图片宽度
+ */
+ public int nWidth;
+ /**
+ * 图片高度
+ */
+ public int nHeight;
+ /**
+ * 图片路径
+ */
+ public byte[] szPath = new byte[260];
+ public int nIndexInData; //在上传图片数据中的图片序号
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[248];
+
+ @Override
+ public String toString() {
+ return "NET_EVENT_IMAGE_OFFSET_INFO{" +
+ "nOffSet=" + nOffSet +
+ ", nLength=" + nLength +
+ ", nWidth=" + nWidth +
+ ", nHeight=" + nHeight +
+ ", szPath=" + new String(szPath,Charset.forName("GBK")) +
+ '}';
+ }
+ }
+
+ // 高空抛物物体信息
+ public static class NET_HIGHTOSS_OBJECT_INFO extends SdkStructure
+ {
+ public int nObjectID; // 物体ID
+ public int emObjAction; // 物体动作类型;参考EM_HIGHTOSS_ACTION_TYPE
+ public NET_RECT stuBoundingBox; // 包围盒
+ public int nConfidence; // 置信度
+ public int emObjectType; // 物体类型;参考EM_ANALYSE_OBJECT_TYPE
+ public NET_POINT stuCenter; // 物体型心
+ public NET_EVENT_IMAGE_OFFSET_INFO stuImageInfo; // 抓拍小图
+ public byte[] byReserved = new byte[1516]; // 预留字节 // 预留字节
+
+ @Override
+ public String toString() {
+ return "NET_HIGHTOSS_OBJECT_INFO{" +
+ "nObjectID=" + nObjectID +
+ ", 动作类型=" + emObjAction +
+ ", stuBoundingBox=" + stuBoundingBox +
+ ", 置信度=" + nConfidence +
+ ", 物体类型=" + emObjectType +
+ ",物体型心="+stuCenter +
+ ",抓拍小图="+stuImageInfo.toString()+
+ '}';
+ }
+ }
+
+ // 登陆时TLS加密模式
+ public static class EM_LOGIN_TLS_TYPE extends SdkStructure {
+ public static final int EM_LOGIN_TLS_TYPE_NO_TLS = 0; // 不走tls加密, 默认方式
+ public static final int EM_LOGIN_TLS_TYPE_TLS_ADAPTER = 1; // 自适应tls加密
+ public static final int EM_LOGIN_TLS_TYPE_TLS_COMPEL = 2; // 强制tls加密
+ public static final int EM_LOGIN_TLS_TYPE_TLS_MAIN_ONLY = 3; // 部分tls加密
+ }
+
+ // CLIENT_LoginWithHighLevelSecurity 输入参数
+ public static class NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public byte[] szIP = new byte[64]; // IP
+ public int nPort; // 端口
+ public byte[] szUserName = new byte[64]; // 用户名
+ public byte[] szPassword = new byte[64]; // 密码
+ public int emSpecCap; // 登录模式
+ public byte[] byReserved = new byte[4]; // 字节对齐
+ public Pointer pCapParam; // 见 CLIENT_LoginEx 接口 pCapParam 与 nSpecCap 关系
+ public int emTLSCap; //登录的TLS模式,参考EM_LOGIN_TLS_TYPE,目前仅支持EM_LOGIN_SPEC_CAP_TCP,EM_LOGIN_SPEC_CAP_SERVER_CONN 模式下的 tls登陆
+
+ public NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY()
+ {
+ this.dwSize = this.size();
+ }// 此结构体大小
+ }
+
+ // CLIENT_LoginWithHighLevelSecurity 输出参数
+ public static class NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public NET_DEVICEINFO_Ex stuDeviceInfo; // 设备信息
+ public int nError; // 错误码,见 CLIENT_Login 接口错误码
+ public byte[] byReserved = new byte[132]; // 预留字段
+
+ public NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY()
+ {
+ this.dwSize = this.size();
+ }// 此结构体大小
+ }
+
+ // 高安全级别登陆
+ public LLong CLIENT_LoginWithHighLevelSecurity(NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY pstInParam,NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY pstOutParam);
+
+ // GDPR使能全局开关
+ public void CLIENT_SetGDPREnable(boolean bEnable);
+
+ // 合成通道配置(对应CFG_CMD_COMPOSE_CHANNEL)
+ public static class CFG_COMPOSE_CHANNEL extends SdkStructure
+ {
+ public int emSplitMode; // 分割模式,写入枚举值 枚举值在 CFG_SPLITMODE 类中定义,不要自己写
+ public int[] nChannelCombination = new int[MAX_VIDEO_CHANNEL_NUM]; // 割模式下的各子窗口显示内容 最大 MAX_VIDEO_CHANNEL_NUM
+ public int nChannelCount; // 分割窗口数量
+ }
+
+ // 画中画方案
+ public static class CFG_PICINPIC_INFO extends SdkStructure
+ {
+ public int nMaxSplit; // 内存申请的CFG_SPLIT_INFO个数,最大值通过CLIENT_GetSplitCaps接口获取,见nModeCount
+ public int nReturnSplit; // 解析得到实际使用的或封装发送的CFG_SPLIT_INFO个数
+ public Pointer pSplits; // 分割方案,指向 CFG_SPLIT_INFO
+ }
+
+ // 分割方案
+ public static class CFG_SPLIT_INFO extends SdkStructure
+ {
+ public int emSplitMode; // CFG_SPLITMODE分割模式,通过CLIENT_GetSplitCaps接口获取,见emSplitMode
+ public int nMaxChannels; // 申请内存CFG_SPLIT_CHANNEL_INFO个数, 比如有16个通道,nMaxChannels就是16,SPLITMODE_4模式,则按顺序依次分为4组
+ public int nReturnChannels; // 解析返回通道个数,要封装发送的通道个数
+ public Pointer pSplitChannels; // 分割通道信息,指向 CFG_SPLIT_CHANNEL_INFO
+ }
+
+ // 分割通道
+ public static class CFG_SPLIT_CHANNEL_INFO extends SdkStructure
+ {
+ public int bEnable; // 使能
+ public byte[] szDeviceID = new byte[AV_CFG_Device_ID_Len]; // 设备ID
+ public int nChannelID; // 通道号(0开始)
+ public int nMaxSmallChannels; // 小画面通道个数,每个通道一个CFG_SMALLPIC_INFO,这里最大应该是设备通道数减一
+ public int nReturnSmallChannels; // 解析返回的或封装发送的小画面通道个数
+ public Pointer pPicInfo; // 小画面信息 CFG_SMALLPIC_INFO
+ }
+
+ // 审讯画中画需求
+ // 小画面窗口信息
+ public static class CFG_SMALLPIC_INFO extends SdkStructure
+ {
+ public byte[] szDeviceID = new byte[AV_CFG_Device_ID_Len]; // 设备ID
+ public int nChannelID; // 通道号(0开始)
+ public int bAudio; // 大画面是否混合小画面音频
+ public CFG_RECT stuPosition; // 使用相对坐标体系,取值均为0-8192,在整个屏幕上的位置
+ }
+
+ //--------------------------------------------------------ERR200507125开始------------------------------------------------------------------------//
+ // 空闲动作配置信息
+ public static class CFG_IDLE_MOTION_INFO extends SdkStructure
+ {
+ public int bEnable; // 使能
+ public int nTime; // 启动空闲动作的时间1~60分钟
+ public int emFunction; // 空闲动作功能,见枚举 EM_CFG_IDLEMOTION_FUNCTION
+ public int nPresetId; // 预置点编号, 范围参照CFG_PTZ_PROTOCOL_CAPS_INFO的wPresetMin和wPresetMax
+ public int nScanId; // 自动线扫编号, 范围参照CFG_PTZ_PROTOCOL_CAPS_INFO的wAutoScanMin和wAutoScanMax
+ public int nTourId; // 巡航编号, 范围参照CFG_PTZ_PROTOCOL_CAPS_INFO的wTourMin和wTourMax
+ public int nPatternId; // 自动巡迹编号, 范围参照CFG_PTZ_PROTOCOL_CAPS_INFO的wPatternMin和wPatternMax
+ public int nSecond; // 启动空闲动作的时长(秒数)范围0-59秒,总时长为nTime * 60 + nSecond
+ }
+
+ //--------------------------------------------------------ERR200507125结束------------------------------------------------------------------------//
+ //--------------------------------------------------------ERR200513038-TASK1开始------------------------------------------------------------------------//
+ // 每个通道的RTMP信息
+ public static class NET_CHANNEL_RTMP_INFO extends SdkStructure
+ {
+ public int bEnable; // 是否使能
+ public int nChannel; // 通道号(URL中的Channel)
+ public byte[] szUrl = new byte[512]; // RTMP连接URL
+ public byte[] byReserved = new byte[1024]; // 预留字段
+ }
+
+ // RTMP 配置
+ public static class NET_CFG_RTMP_INFO extends SdkStructure
+ {
+ public int dwSize; // 结构体大小,赋值为sizeof(NET_CFG_RTMP_INFO)
+ public int bEnable; // RTMP配置是否开启
+ public byte[] szAddr = new byte[256]; // RTMP服务器地址
+ public int nPort; // RTMP服务器端口
+ public byte[] byReserved = new byte[4]; // 字节对齐
+ public byte[] szCustomPath = new byte[256]; // 路径名
+ public byte[] szStreamPath = new byte[256]; // 码流路径前缀:不同通道以后缀数字区分
+ public byte[] szKey = new byte[128]; // 获取RTMP地址时的Key
+ public Pointer pstuMainStream; // 主码流信息,用户分配内存,内存大小为 sizeof(NET_CHANNEL_RTMP_INFO) * nMainStream
+ public int nMainStream; // pstuMainStream 个数
+ public int nMainStreamRet; // 返回的 pstuMainStream 个数(获取配置时有效)
+ public Pointer pstuExtra1Stream; // 辅码流1信息,用户分配内存,内存大小为 sizeof(NET_CHANNEL_RTMP_INFO) * nExtra1Stream
+ public int nExtra1Stream; // pstuExtra1Stream 个数
+ public int nExtra1StreamRet; // 返回的 nExtra1StreamRet 个数(获取配置时有效)
+ public Pointer pstuExtra2Stream; // 辅码流2信息,用户分配内存,内存大小为 sizeof(NET_CHANNEL_RTMP_INFO) * nExtra2Stream
+ public int nExtra2Stream; // pstuExtra2Stream 个数
+ public int nExtra2StreamRet; // 返回的 nExtra2StreamRet 个数(获取配置时有效)
+
+ public NET_CFG_RTMP_INFO()
+ {
+ this.dwSize = this.size();
+ }// 此结构体大小
+ }
+
+ //--------------------------------------------------------ERR200513038开始------------------------------------------------------------------------//
+ //--------------------------------------------------------GIP200520016实现------------------------------------------------------------------------//
+ // 轮询任务对象
+ public static class NET_POLLING_INFO extends SdkStructure
+ {
+ public int emSourceType; // 数据源类型 参考EM_DATA_SOURCE_TYPE
+ public Pointer pSourceData; // 数据源信息, 根据emSouceType对应不一样的结构体
+ public byte[] szUserData = new byte[64]; // 视频源数据,标示视频源信息。在返回结果时,原封不动的带上。当任务的包含多个视频源时,attachResult每个视频源单独上报结果
+ public byte[] byReserved = new byte[256]; // 保留字节
+ }
+
+ // 接口输出参数
+ public static class NET_IN_ADD_POLLING_ANALYSE_TASK extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int nIntervalTime; // 每个视频源的检测执行时间,单位为秒,1~65535
+ public int nLoopCount; // 诊断轮询次数, 0代表永久轮询
+ public int nInfoCount; // 任务对象个数
+ public Pointer pInfoList; // 任务对象列表(参考NET_POLLING_INFO)
+
+ public NET_IN_ADD_POLLING_ANALYSE_TASK()
+ {
+ this.dwSize = this.size();
+ }// 此结构体大小
+ }
+
+ // 接口输出参数
+ public static class NET_OUT_ADD_POLLING_ANALYSE_TASK extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int nTaskID; // 任务ID
+
+ public NET_OUT_ADD_POLLING_ANALYSE_TASK()
+ {
+ this.dwSize = this.size();
+ }// 此结构体大小
+ }
+
+ public static class NET_IN_UPDATE_POLLING_ANALYSE_TASK extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int nTaskID; // 任务ID
+ public int nIntervalTime; // 每个视频源的检测执行时间,单位为秒,1~65535
+ public int nLoopCount; // 诊断轮询次数, 0代表永久轮询
+ public int nInfoCount; // 任务对象个数
+ public int nReserved; // 字节对齐
+ public Pointer pInfoList; // 任务对象列表(参考NET_POLLING_INFO)
+
+ public NET_IN_UPDATE_POLLING_ANALYSE_TASK()
+ {
+ this.dwSize = this.size();
+ }// 此结构体大小
+ }
+
+ // 接口输出参数
+ public static class NET_OUT_UPDATE_POLLING_ANALYSE_TASK extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+
+ public NET_OUT_UPDATE_POLLING_ANALYSE_TASK()
+ {
+ this.dwSize = this.size();
+ }// 此结构体大小
+ }
+
+ //获取剩余智能分析资源入参
+ public static class NET_IN_REMAIN_ANAYLSE_RESOURCE extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+
+ public NET_IN_REMAIN_ANAYLSE_RESOURCE()
+ {
+ this.dwSize = this.size();
+ }// 此结构体大小
+ }
+
+ //智能分析剩余能力具体信息
+ public static class NET_REMAIN_ANALYSE_CAPACITY extends SdkStructure
+ {
+ public int nMaxStreamNum; // 剩余能分析的视频流数目
+ public int emClassType; // 大类业务方案(参考EM_SCENE_CLASS_TYPE)
+ public byte[] byReserved = new byte[1024]; // 保留字节
+ }
+
+ //获取剩余智能分析资源出参
+ public static class NET_OUT_REMAIN_ANAYLSE_RESOURCE extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int nRetRemainCapNum; // 返回的能力格式
+ public NET_REMAIN_ANALYSE_CAPACITY[] stuRemainCapacities = (NET_REMAIN_ANALYSE_CAPACITY[])new NET_REMAIN_ANALYSE_CAPACITY().toArray(32); // 智能分析剩余能力
+ public NET_REMAIN_ANALYSE_TOTAL_CAPACITY[] stuTotalCapacity = (NET_REMAIN_ANALYSE_TOTAL_CAPACITY[])new NET_REMAIN_ANALYSE_TOTAL_CAPACITY().toArray(32); //
+ // 可供任务调度的总的智能能力
+ public int nTotalCapacityNum;
+ public byte[] byReserved = new byte[60684]; // 保留字节
+
+ public NET_OUT_REMAIN_ANAYLSE_RESOURCE()
+ {
+ this.dwSize = this.size();
+ }// 此结构体大小
+ }
+
+ public static class NET_IN_REMOTEDEVICE_CAPS extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ //public byte[] szSubClassID=new byte[32]; // 空表示管理远程通道的设备列表 // "EmbeddedPlatform": 表示管理嵌入式管理平台的设备管理器
+
+ public NET_IN_REMOTEDEVICE_CAPS()
+ {
+ this.dwSize = this.size();
+ }// 此结构体大小
+ }
+
+ public static class NET_OUT_REMOTEDEVICE_CAP extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int nRetCount; // 返回的pnProtocal 有效个数
+ public int[] snProtocal = new int[512]; // 协议类型 值同 EM_STREAM_PROTOCOL_TYPE
+
+ public NET_OUT_REMOTEDEVICE_CAP()
+ {
+ this.dwSize = this.size();
+ }// 此结构体大小
+ }
+
+ //算法独立升级能力
+ public static class NET_ANALYSE_CAPS_SUPPORT_ALGORITHM_UPGRADE extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int bSupportOnlyAlgorithmUpgrade; // 是否支持算法独立升级能力
+ public int nMaxUpgradeAINum; // AI 方案最大个数, 由用户指定, 最大支持128
+ public int nRetUpgradeAINum; // 实际返回的AI 方案个数, 即pstUpgradeAIInfo 数组的有效元素个数
+ /**
+ * 指针内传入结构体数组,结构体为{@link NET_ALGORITHM_UPGRADE_AI_INFO}
+ */
+ public Pointer pstUpgradeAIInfo; // 独立算法升级支持的AI方案信息, 内存由用户申请和释放, 申请大小sizeof(NET_ALGORITHM_UPGRADE_AI_INFO)*nMaxUpgradeAINum
+ public int nRetStorageNum; // 实际返回的设备分区个数, 即stuStorageInfo 数组的有效元素个数
+ public NET_ALGORITHM_DEV_STORAGE_INFO[] stuStorageInfos = (NET_ALGORITHM_DEV_STORAGE_INFO[])new NET_ALGORITHM_DEV_STORAGE_INFO().toArray(16); // 设备的分区信息
+ public NET_ALGORITHM_BUILD_INFO stuBuildInfo; // 算法构建信息
+
+ public NET_ANALYSE_CAPS_SUPPORT_ALGORITHM_UPGRADE()
+ {
+ this.dwSize = this.size();
+ }// 此结构体大小
+ }
+
+ //智能分析总能力
+ public static class NET_TOTAL_CAP extends SdkStructure
+ {
+ public int emClassType; // 业务大类(参考EM_SCENE_CLASS_TYPE)
+ public int[] dwRuleTypes = new int[MAX_ANALYSE_RULE_COUNT]; // 规则类型, 详见dhnetsdk.h中"智能分析事件类型"
+ public int nRuleNum; // 规则数量
+ public int nMaxStreamNum; // 最多支持同时分析的视频流数目
+ public byte[] byReserved = new byte[1024]; // 保留字节
+ }
+
+ //智能分析的总能力
+ public static class NET_ANALYSE_CAPS_TOTAL extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public NET_TOTAL_CAP[] stuTotalCaps = (NET_TOTAL_CAP[])new NET_TOTAL_CAP().toArray(MAX_ANALYSE_TOTALCAPS_NUM); // 智能分析总能力
+ public int nTotalCapsNum; // 智能分析总能力个数
+ public int nTotalDecodeCaps; // 总解码能力,即总解码资源个数
+ public int nTotalComputingCaps; // 总算力
+ public int nSingleTaskComputingCaps; // 单任务最大算力
+
+ public NET_ANALYSE_CAPS_TOTAL()
+ {
+ this.dwSize = this.size();
+ }// 此结构体大小
+ }
+
+ // 算法版本信息
+ public static class NET_ALGORITHM_INFO extends SdkStructure
+ {
+ public int emClassType; // 业务大类(参考EM_SCENE_CLASS_TYPE)
+ public byte[] szVersion = new byte[NET_COMMON_STRING_32]; // 算法版本
+ public int emAlgorithmVendor; // 算法厂商(参考EM_ALGORITHM_VENDOR)
+ public byte[] szAlgorithmLibVersion = new byte[NET_COMMON_STRING_32]; // 算法库文件版本
+ public byte[] byReserved = new byte[992]; // 保留字节
+ }
+
+ //智能分析的算法版本信息
+ public static class NET_ANALYSE_CAPS_ALGORITHM extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public NET_ALGORITHM_INFO[] stuAlgorithmInfos = (NET_ALGORITHM_INFO[])new NET_ALGORITHM_INFO().toArray(MAX_ANALYSE_ALGORITHM_NUM); // 算法版本信息
+ public int nAlgorithmNum; // 算法个数
+
+ public NET_ANALYSE_CAPS_ALGORITHM()
+ {
+ this.dwSize = this.size();
+ }// 此结构体大小
+ }
+
+ // 智能分析服务能力类型
+ public static class EM_ANALYSE_CAPS_TYPE extends SdkStructure
+ {
+ public static final int EM_ANALYSE_CAPS_ALGORITHM = 1; // 算法版本, 对应输出结构体 NET_ANALYSE_CAPS_ALGORITHM
+ public static final int EM_ANALYSE_CAPS_TOTALCAPS = 2; // 智能分析总能力, 对应输出结构体 NET_ANALYSE_CAPS_TOTAL
+ public static final int EM_ANALYSE_CAPS_SUPPORT_ALGORITHM_UPGRADE = 3; // 算法独立升级能力, 对应输出结构体 NET_ANALYSE_CAPS_SUPPORT_ALGORITHM_UPGRADE
+ }
+
+ //CLIENT_SetAnalyseTaskCustomData 接口输入参数
+ public static class NET_IN_SET_ANALYSE_TASK_CUSTOM_DATA extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int nTaskID; // 任务ID
+ public NET_TASK_CUSTOM_DATA stuTaskCustomData; // 自定义数据
+
+ public NET_IN_SET_ANALYSE_TASK_CUSTOM_DATA()
+ {
+ this.dwSize = this.size();
+ }// 此结构体大小
+ }
+
+ //CLIENT_SetAnalyseTaskCustomData 接口输出参数
+ public static class NET_OUT_SET_ANALYSE_TASK_CUSTOM_DATA extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+
+ public NET_OUT_SET_ANALYSE_TASK_CUSTOM_DATA()
+ {
+ this.dwSize = this.size();
+ }// 此结构体大小
+ }
+
+ // 获取视频分析服务智能能力集, pstOutParam根据emCapsType的值取对应的结构体(参考EM_ANALYSE_CAPS_TYPE), pstOutParam 资源由用户申请和释放
+ public boolean CLIENT_GetAnalyseCaps(LLong lLoginID,int emCapsType,Pointer pOutParam,int nWaitTime);
+
+ // 添加轮询检测任务 (入参NET_IN_ADD_POLLING_ANALYSE_TASK,出参NET_OUT_ADD_POLLING_ANALYSE_TASK)
+ public boolean CLIENT_AddPollingAnalyseTask(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ // 更新轮询检测任务规则(入参NET_IN_UPDATE_POLLING_ANALYSE_TASK,出参NET_OUT_UPDATE_POLLING_ANALYSE_TASK)
+ public boolean CLIENT_UpdatePollingAnalyseTask(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ // 获取剩余智能分析资源(入参NET_IN_REMAIN_ANAYLSE_RESOURCE,出参NET_OUT_REMAIN_ANAYLSE_RESOURCE)
+ public boolean CLIENT_GetRemainAnalyseResource(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ // 设置任务的自定义数据(入参NET_IN_SET_ANALYSE_TASK_CUSTOM_DATA,出参NET_OUT_SET_ANALYSE_TASK_CUSTOM_DATA)
+ public boolean CLIENT_SetAnalyseTaskCustomData(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ public static class NET_VIDEOABNORMALDETECTION_RULE_INFO extends SdkStructure {
+ /**
+ * 最短持续时间 单位:秒,0~65535
+ */
+ public int nMinDuration;
+ /**
+ * 灵敏度, 取值1-10,值越小灵敏度越低(只对检测类型视频遮挡,过亮,过暗,场景变化有效)
+ */
+ public int nSensitivity;
+ /**
+ * 检测类型数
+ */
+ public int nDetectType;
+ public int nReserved;
+ /**
+ * 异常检测阈值,范围1~100
+ */
+ public int[] nThreshold = new int[32];
+ /**
+ * 检测类型,0-视频丢失, 1-视频遮挡, 2-画面冻结, 3-过亮, 4-过暗, 5-场景变化
+ * 6-条纹检测 , 7-噪声检测 , 8-偏色检测 , 9-视频模糊检测 , 10-对比度异常检测
+ * 11-视频运动 , 12-视频闪烁 , 13-视频颜色 , 14-虚焦检测 , 15-过曝检测, 16-场景巨变
+ */
+ public byte[] bDetectType = new byte[32];
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[4096];
+ }
+
+ //--------------------------------------------------------ERR200529144------------------------------------------------------------------------//
+ // 热度图灰度数据
+ public static class NET_CB_HEATMAP_GRAY_INFO extends SdkStructure
+ {
+ public int nWidth; // 图片宽度
+ public int nHeight; // 图片高度
+ public NET_TIME stuStartTime; // 开始时间
+ public NET_TIME stuEndTime; // 结束时间
+ public int nMax; // 最大值
+ public int nMin; // 最小值
+ public int nAverage; // 平均值
+ public int nLength; // 灰度图数据长度
+ public Pointer pGrayInfo; // 灰度图数据
+ public byte[] byReserved = new byte[512]; // 保留字节
+ }
+
+ // 热度图灰度数据回调函数, lAttachHandle 为 CLIENT_AttachHeatMapGrayInfo 返回的结果(pstGrayInfo参考NET_CB_HEATMAP_GRAY_INFO)
+ public interface fHeatMapGrayCallBack extends Callback {
+ public void invoke(LLong lAttachHandle,Pointer pstGrayInfo,Pointer dwUser);
+ }
+
+ // CLIENT_AttachHeatMapGrayInfo 接口输入参数
+ public static class NET_IN_GRAY_ATTACH_INFO extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int nChannelID; // 通道号
+ public fHeatMapGrayCallBack cbHeatMapGray; // 热度图灰度数据回调函数
+ public Pointer dwUser; // 用户信息
+
+ public NET_IN_GRAY_ATTACH_INFO()
+ {
+ this.dwSize = this.size();
+ }// 此结构体大小
+ }
+
+ // CLIENT_AttachHeatMapGrayInfo接口输出参数
+ public static class NET_OUT_GRAY_ATTACH_INFO extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+
+ public NET_OUT_GRAY_ATTACH_INFO()
+ {
+ this.dwSize = this.size();
+ }// 此结构体大小
+ }
+
+ // 订阅热度图灰度数据接口,pInParam与pOutParam内存由用户申请释放(pInParam参考NET_IN_GRAY_ATTACH_INFO,pOutParam参考NET_OUT_GRAY_ATTACH_INFO)
+ public LLong CLIENT_AttachHeatMapGrayInfo(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ // 退订热度图灰度数据
+ public boolean CLIENT_DetachHeatMapGrayInfo(LLong lAttachHandle);
+
+ // 事件类型EVENT_IVS_RETROGRADEDETECTION(人员逆行事件)对应的数据块描述信息
+ public static class DEV_EVENT_RETROGRADEDETECTION_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public byte[] szName = new byte[128]; // 事件名称
+ public byte[] bReserved1 = new byte[4]; // 字节对齐
+ public double PTS; // 时间戳(单位是毫秒)
+ public NET_TIME_EX UTC; // 事件发生的时间
+ public int nEventID; // 事件ID
+ public DH_MSG_OBJECT stuObject; // 检测到的物体
+ public int nTrackLineNum; // 物体运动轨迹顶点数
+ public DH_POINT[] TrackLine = (DH_POINT[])new DH_POINT().toArray(NET_MAX_TRACK_LINE_NUM); // 物体运动轨迹
+ public int nDirectionPointNum; // 规则里规定的方向顶点数
+ public DH_POINT[] stuDirections = (DH_POINT[])new DH_POINT().toArray(NET_MAX_DETECT_LINE_NUM); // 规则里规定的方向
+ public int nDetectRegionNum; // 规则检测区域顶点数
+ public DH_POINT[] DetectRegion = (DH_POINT[])new DH_POINT().toArray(NET_MAX_DETECT_REGION_NUM); // 规则检测区域
+ public NET_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
+ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ public byte[] byReserved = new byte[2];
+ public byte byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ public int dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
+ public int nSourceIndex; // 事件源设备上的index,-1表示数据无效
+ public byte[] szSourceDevice = new byte[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
+ public int nOccurrenceCount; // 事件触发累计次数
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
+ public Pointer pstuImageInfo; // 图片信息数组 ,结构体NET_IMAGE_INFO_EX2数组
+ public int nImageInfoNum; // 图片信息个数
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展字段结构体
+ public byte[] bReserved = new byte[604]; // 保留字节,留待扩展.
+ }
+
+ // 智能交通语音播报配置 对应枚举 NET_EM_CFG_TRAFFIC_VOICE_BROADCAST
+ public static class NET_CFG_TRAFFIC_VOICE_BROADCAST_INFO extends SdkStructure
+ {
+ public int dwSize; // 结构体大小
+ public int nEnableCount; // 使能播报个数
+ public int[] emEnable = new int[NET_MAX_PLATEENABLE_NUM]; // 使能过车车牌播报,见枚举 NET_EM_PLATEENABLE_TYPE
+ public byte[] szNormalCar = new byte[MAX_PATH]; // 普通车辆过车播报内容,例如:播报语音文件"欢迎光临.wav"
+ public byte[] szTrustCar = new byte[MAX_PATH]; // 信任车辆过车播报内容,例如:播报语音文件"欢迎光临.wav"
+ public byte[] szSuspiciousCar = new byte[MAX_PATH]; // 嫌疑车辆过车播报内容,例如:播报语音文件"非注册车辆.wav"
+ public NET_TRAFFIC_VOICE_BROADCAST_ELEMENT[] stuElement = (NET_TRAFFIC_VOICE_BROADCAST_ELEMENT[])new NET_TRAFFIC_VOICE_BROADCAST_ELEMENT().toArray(NET_MAX_BROADCAST_ELEMENT_NUM); // 播报元素
+ public int nElementNum; // stuElement中有效数据个数
+
+ public NET_CFG_TRAFFIC_VOICE_BROADCAST_INFO()
+ {
+ this.dwSize = this.size();
+ }// 此结构体大小
+ }
+
+ // 播报元素
+ public static class NET_TRAFFIC_VOICE_BROADCAST_ELEMENT extends SdkStructure
+ {
+ public int emType; // 类型(参考NET_EM_VOICE_BROADCAST_ELEMENT_TYPE)
+ public byte[] byReserved1 = new byte[4]; // 字节对齐
+ public byte[] szPrefix = new byte[512]; // 前缀字符串
+ public byte[] szPostfix = new byte[512]; // 后缀字符串
+ public byte[] byReserved = new byte[1024]; // 预留
+ }
+
+ // 485串口协议设备配置信息
+ public static class NET_CFG_DHRS_INFO extends SdkStructure
+ {
+ public int nDeviceNum; // 串口设备个数
+ public NET_CFG_DHRS_DEVICE_INFO[] stuDHRSDeviceInfo = (NET_CFG_DHRS_DEVICE_INFO[])new NET_CFG_DHRS_DEVICE_INFO().toArray(32); // 串口设备信息
+ }
+
+ public static class NET_CFG_DHRS_DEVICE_INFO extends SdkStructure
+ {
+ public int bEnable; // 串口设备是否启用
+ public int emType; // 串口设备类型(参考EM_DHRS_DEVICE_TYPE)
+ public NET_CFG_LATTICE_SCREEN_CONFIG stuLatticeScreenConfig; // 485串口点阵屏配置
+ public byte[] byReserved = new byte[4096]; //预留字节
+ }
+
+ // 485串口点阵屏配置
+ public static class NET_CFG_LATTICE_SCREEN_CONFIG extends SdkStructure
+ {
+ public int nAddress; // 配置对应设备的地址, 范围[1,31]
+ public int emRollSpeedLevel; // 点阵屏滚动速度级别(参考EM_ROLL_SPEED_LEVEL)
+ public int nLogicScreenNum; // 逻辑屏个数
+ public NET_LOGIC_SCREEN[] stuLogicScreens = (NET_LOGIC_SCREEN[])new NET_LOGIC_SCREEN().toArray(8); // 逻辑屏信息, 划分物理屏的某一区域为逻辑屏
+ public int nOutPutVoiceVolume; // 语音播报音量大小, 范围:[0 - 100]
+ public int nOutPutVoiceSpeed; // 语音播报速度, 范围:[0-100]
+ public byte[] byReserved = new byte[1024];
+ }
+
+ // 串口设备类型
+ public static class EM_DHRS_DEVICE_TYPE extends SdkStructure
+ {
+ public static final int EM_DHRS_DEVICE_TYPE_UNKNOWN = 0; // 未知
+ public static final int EM_DHRS_DEVICE_TYPE_STEADYLIGHT = 1; // 常亮灯
+ public static final int EM_DHRS_DEVICE_TYPE_STROBELIGHT = 2; // 可以通过485控制的频闪灯
+ public static final int EM_DHRS_DEVICE_TYPE_POWERMODULE = 3; // 电源模块
+ public static final int EM_DHRS_DEVICE_TYPE_LATTICESCREEN = 4; // 点阵屏
+ public static final int EM_DHRS_DEVICE_TYPE_INDICATORLIGHT = 5; // 指示灯
+ public static final int EM_DHRS_DEVICE_TYPE_RAINBRUSH = 6; // 雨刷洗涤模块
+ public static final int EM_DHRS_DEVICE_TYPE_FLASHLAMP = 7; // 爆闪灯
+ public static final int EM_DHRS_DEVICE_TYPE_RFID = 8; // 射频识别
+ public static final int EM_DHRS_DEVICE_TYPE_COMMON = 9; // 通用485
+ }
+
+ // 逻辑屏信息
+ public static class NET_LOGIC_SCREEN extends SdkStructure
+ {
+ public NET_RECT stuRegion; // 逻辑屏区域, 实际点阵屏坐标
+ public int emDisplayMode; // 显示动作(参考EM_DISPLAY_MODE)
+ public int emDisplayColor; // 显示颜色(参考EM_DISPLAY_COLOR)
+ public byte[] byReserved = new byte[512]; // 预留字节
+ }
+
+ // 点阵屏滚动速度级别
+ public static class EM_ROLL_SPEED_LEVEL extends SdkStructure
+ {
+ public static final int EM_ROLL_SPEED_LEVEL_UNKNOWN = 0; // 未知
+ public static final int EM_ROLL_SPEED_LEVEL_SLOW = 1; // 慢
+ public static final int EM_ROLL_SPEED_LEVEL_SLOWER = 2; // 较慢
+ public static final int EM_ROLL_SPEED_LEVEL_MEDIUM = 3; // 中等
+ public static final int EM_ROLL_SPEED_LEVEL_FASTER = 4; // 较快
+ public static final int EM_ROLL_SPEED_LEVEL_FAST = 5; // 快
+ }
+
+ // 显示动作
+ public static class EM_DISPLAY_MODE extends SdkStructure
+ {
+ public static final int EM_DISPLAY_MODE_UNKNOWN = 0; // 未知
+ public static final int EM_DISPLAY_MODE_ROLL = 1; // 滚动
+ public static final int EM_DISPLAY_MODE_INTERCEPT = 2; // 截取
+ }
+
+ // 显示颜色
+ public static class EM_DISPLAY_COLOR extends SdkStructure
+ {
+ public static final int EM_DISPLAY_COLOR_UNKNOWN = 0; // 未知
+ public static final int EM_DISPLAY_COLOR_RED = 1; // 红
+ public static final int EM_DISPLAY_COLOR_GREEN = 2; // 绿
+ public static final int EM_DISPLAY_COLOR_YELLOW = 3; // 黄
+ }
+
+ public static class NET_FACEANALYSIS_RULE_INFO extends SdkStructure {
+ public int dwSize; // 结构体大小
+ public int nDetectRegionPoint; // 检测区顶点数
+ public POINTCOORDINATE[] stuDetectRegion = new POINTCOORDINATE[20]; // 检测区
+ public int nSensitivity; // 灵敏度,范围[1,10],灵敏度越高越容易检测
+ public int nLinkGroupNum; // 联动布控个数
+ public NET_CFG_LINKGROUP_INFO[] stuLinkGroup = new NET_CFG_LINKGROUP_INFO[20]; // 联动的布控组
+ public NET_CFG_STRANGERMODE_INFO stuStrangerMode; // 陌生人布防模式
+ public int bSizeFileter; // 规则特定的尺寸过滤器是否有效
+ public NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
+ public int bFeatureEnable; // 是否开启人脸属性识别, IPC增加
+ public int nFaceFeatureNum; // 需要检测的人脸属性个数
+ public int[] emFaceFeatureType = new int[32]; // 需检测的人脸属性 NET_EM_FACEFEATURE_TYPE
+ public int bFeatureFilter; // 在人脸属性开启前提下,如果人脸图像质量太差,是否不上报属性
+ // true-图像太差不上报属性 false-图像很差也上报属性(可能会非常不准,影响用户体验)
+ public int nMinQuality; // 人脸图片质量阈值,和bFeatureFilter一起使用 范围[1,100]
+ public NET_CFG_FACE_BEAUTIFICATION stuFaceBeautification = new NET_CFG_FACE_BEAUTIFICATION(); //人Lian美化,参见结构体定义 {@link com.netsdk.lib.structure.NET_CFG_FACE_BEAUTIFICATION}
+
+ public NET_FACEANALYSIS_RULE_INFO(){
+ for(int i = 0; i < stuDetectRegion.length; i++ ){
+ stuDetectRegion[i] = new POINTCOORDINATE();
+ }
+ for(int i = 0; i < stuLinkGroup.length; i++){
+ stuLinkGroup[i] = new NET_CFG_LINKGROUP_INFO();
+ }
+ dwSize = this.size();
+ }
+ }
+
+ // 联动的布控组
+ public static class NET_CFG_LINKGROUP_INFO extends SdkStructure {
+ public int bEnable; // 布控组是否启用
+ public byte[] szGroupID = new byte[64]; // 布控组ID
+ public byte bySimilarity; // 相似度阈值 1-100
+ public byte[] bReserved1 = new byte[3]; // 字节对齐
+ public byte[] szColorName = new byte[32]; // 事件触发时绘制人脸框的颜色
+ public int bShowTitle; // 事件触发时规则框上是否显示报警标题
+ public int bShowPlate; // 事件触发时是否显示比对面板
+ public NET_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
+ public byte[] bReserved = new byte[512]; // 保留字段
+ }
+
+ // 陌生人布防模式
+ public static class NET_CFG_STRANGERMODE_INFO extends SdkStructure {
+ public int bEnable; // 模式是否启用
+ public byte[] szColorHex = new byte[8]; // 事件触发时绘制人脸框的颜色
+ public int bShowTitle; // 事件触发时规则框上是否显示报警标题
+ public int bShowPlate; // 事件触发时是否显示比对面板
+ public NET_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
+ public byte[] bReserved = new byte[512]; // 保留字段
+ }
+
+ // 人脸属性类型
+ public static class NET_EM_FACEFEATURE_TYPE
+ {
+ public final static int NET_EM_FACEFEATURE_UNKNOWN = 0; // 未知
+ public final static int NET_EM_FACEFEATURE_SEX = 1; // 性别
+ public final static int NET_EM_FACEFEATURE_AGE = 2; // 年龄
+ public final static int NET_EM_FACEFEATURE_EMOTION = 3; // 表情
+ public final static int NET_EM_FACEFEATURE_GLASSES = 4; // 眼镜状态
+ public final static int NET_EM_FACEFEATURE_EYE = 5; // 眼睛状态
+ public final static int NET_EM_FACEFEATURE_MOUTH = 6; // 嘴巴状态
+ public final static int NET_EM_FACEFEATURE_MASK = 7; // 口罩状态
+ public final static int NET_EM_FACEFEATURE_BEARD = 8; // 胡子状态
+ public final static int NET_EM_FACEFEATURE_ATTRACTIVE = 9; // 魅力值
+ }
+
+ // 事件类型EM_ANALYSE_EVENT_FEATURE_ABSTRACT(特征提取)对应的数据块描述信息
+ public static class DEV_EVENT_FEATURE_ABSTRACT_INFO extends SdkStructure
+ {
+ public int nChannelID; // 通道号
+ public int nAction; // 0:脉冲 1:开始 2:停止
+ public int emClassType; // 智能事件所属大类 EM_CLASS_TYPE
+ public int nFeatureNum; // 特征值数量
+ public NET_FEATURE_VECTOR_INFO[] stuFeatureVectorList = new NET_FEATURE_VECTOR_INFO[10]; // 特征值数组,同一个图片需要进行多个版本的特征向量提取,在一个事件中返回
+ public byte[] byReserved = new byte[1024]; // 预留字节
+
+ public DEV_EVENT_FEATURE_ABSTRACT_INFO(){
+ for(int i=0;iNET_IN_CAMERASTATE ; pstOutParam->NET_OUT_CAMERASTATE
+ */
+ public LLong CLIENT_AttachCameraState(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 停止订阅摄像头状态,lAttachHandle是CLIENT_AttachCameraState返回值
+ */
+ public boolean CLIENT_DetachCameraState(LLong lAttachHandle);
+
+ // CLIENT_AttachCameraState()回调函数原形, 每次1条,pBuf->NET_CB_CAMERASTATE dwSize == nBufLen
+ public interface fCameraStateCallBack extends Callback {
+ public void invoke(LLong lLoginID,LLong lAttachHandle,Pointer pBuf,int nBufLen,Pointer dwUser);
+ }
+
+ /**
+ * 获取IPC设备的存储信息
+ * @param lLoginID 登录句柄
+ * @param pstInParam 入参 {@link com.netsdk.lib.structure.NET_IN_GET_DEVICE_AII_INFO}
+ * @param pstOutParam 出参{@link com.netsdk.lib.structure.NET_OUT_GET_DEVICE_AII_INFO}
+ * @param nWaitTime
+ * @return
+ */
+ public boolean CLIENT_GetDeviceAllInfo(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ // 交通信号灯回调函数 lLoginID - 登录句柄 lAttchHandle - 订阅句柄
+ public interface fTrafficLightState extends Callback {
+ public void invoke(LLong lLoginID,LLong lAttachHandle,Pointer pBuf,long dwUser);
+ }
+
+ /**
+ * 订阅交通信号灯状态 , pInParam 和pOutParam 资源由用户申请和释放
+ * @param lLoginID 登录句柄
+ * @param pInParam 入参 {@link com.netsdk.lib.structure.NET_IN_ATTACH_TRAFFICLIGHT_INFO}
+ * @param pOutParam 出参{@link com.netsdk.lib.structure.NET_OUT_ATTACH_TRAFFICLIGHT_INFO}
+ * @param nWaitTime
+ * @return
+ */
+ public LLong CLIENT_AttachTrafficLightState(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 退订交通信号灯状态
+ * @param lAttchHandle 订阅句柄
+ * @return
+ */
+ public boolean CLIENT_DetachTrafficLightState(LLong lAttchHandle);
+
+ /**
+ * 订阅雷达的报警点信息 , pInParam 和pOutParam 资源由用户申请和释放
+ * @param lLoginID 登录句柄
+ * @param pstInParam 入参 {@link com.netsdk.lib.structure.NET_IN_RADAR_ALARMPOINTINFO}
+ * @param pstOutParam 出参 {@link com.netsdk.lib.structure.NET_OUT_RADAR_ALARMPOINTINFO}
+ * @param nWaitTime
+ * @return
+ */
+ public LLong CLIENT_AttachRadarAlarmPointInfo(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 取消订阅雷达的报警点信息
+ * @param lAttachHandle 订阅句柄
+ * @return
+ */
+ public boolean CLIENT_DetachRadarAlarmPointInfo(LLong lAttachHandle);
+
+ /**
+ * 雷达报警点信息回调函数
+ */
+ public interface fRadarAlarmPointInfoCallBack extends Callback {
+/**
+ *
+ * @param lLoginId 登录句柄
+ * @param lAttachHandle 订阅句柄
+ * @param pBuf {@link com.netsdk.lib.structure.NET_RADAR_NOTIFY_ALARMPOINTINFO}
+ * @param dwBufLen pBuf中结构体的长度
+ * @param pReserved 保留数据
+ * @param dwUser 用户自定义数据
+ */
+ public void invoke(LLong lLoginId,LLong lAttachHandle,Pointer pBuf,int dwBufLen,Pointer pReserved,Pointer dwUser);
+ }
+
+ /**
+ * 查询系统状态(pstuStatus内存由用户申请释放)
+ * @param lLoginID
+ * @param pstInParam NET_SYSTEM_STATUS
+ * @param nWaitTime
+ * @return
+ */
+ public boolean CLIENT_QuerySystemStatus(LLong lLoginID,Pointer pstInParam,int nWaitTime);
+
+ /**
+ * 订阅云台元数据接口,pstuInPtzStatusProc与pstuOutPtzStatusProc内存由用户申请释放
+ * @param lLoginID 登录句柄
+ * @param pstInParam 入参 {@link com.netsdk.lib.structure.NET_IN_PTZ_STATUS_PROC}
+ * @param pstOutParam 出参{@link com.netsdk.lib.structure.NET_OUT_PTZ_STATUS_PROC}
+ * @param nWaitTime
+ * @return
+ */
+ public LLong CLIENT_AttachPTZStatusProc(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 停止订阅云台元数据接口,lAttachHandle是CLIENT_AttachPTZStatusProc返回值
+ * @param lAttachHandle 订阅句柄
+ * @return
+ */
+ public boolean CLIENT_DetachPTZStatusProc(LLong lAttachHandle);
+
+ /**
+ * 订阅云台元数据接口回调函数原型
+ * pBuf 现阶段主要为 NET_PTZ_LOCATION_INFO 类型 {@link NET_PTZ_LOCATION_INFO}
+ */
+ public interface fPTZStatusProcCallBack extends Callback {
+ public void invoke(LLong lLoginId,LLong lAttachHandle,Pointer pBuf,int dwBufLen,long dwUser);
+ }
+
+ /**
+ * 查询某月的各天是否存在录像文件,
+ *
+ * @param lLoginID
+ * @param nChannelId
+ * @param nRecordFileType EM_QUERY_RECORD_TYPE 的枚举值
+ * nRecordFileType == EM_RECORD_TYPE_CARD,pchCardid输入卡号,限制字符长度 59 字节
+ * nRecordFileType == EM_RECORD_TYPE_FIELD,pchCardid输入自定义字段,限制字符长度 256 字节
+ * @param tmMonth Pointer -> NET_TIME
+ * @param pchCardid Pointer -> byte[]
+ * @param pRecordStatus Poiter -> NET_RECORD_STATUS
+ * @param waittime
+ * @return boolean
+ */
+ public boolean CLIENT_QueryRecordStatus(LLong lLoginID,int nChannelId,int nRecordFileType,Pointer tmMonth,Pointer pchCardid,Pointer pRecordStatus,int waittime);
+
+ //设置SDK本地参数,在CLIENT_Init之前调用,szInBuffer内存由用户申请释放,里面存放被设置的信息,具体见NET_EM_SDK_LOCAL_CFG_TYPE类型对应结构体
+ boolean CLIENT_SetSDKLocalCfg(int emCfgType,Pointer szInBuffer);
+
+ /**
+ * 开启重定向服务扩展接口
+ * @param pInParam {@link NET_IN_START_REDIRECT_SERVICE}
+ * @param pOutParam NET_OUT_START_REDIRECT_SERVICE,空结构体,可使用{@link EmptyStructure}
+ * @return
+ */
+ LLong CLIENT_StartRedirectServiceEx(Pointer pInParam,Pointer pOutParam);
+
+ /**
+ * 停止重定向服务
+ * @param lServerHandle 服务句柄
+ * @return
+ */
+ boolean CLIENT_StopRedirectService(LLong lServerHandle);
+
+ /**
+ * 设置重定向服务器的IP和Port
+ * @param lDevHandle 重定向设备句柄
+ * @param ARSIP 重定向设备IP
+ * @param ARSPort 重定向设备端口
+ * @param nRetry 设备主动注册尝试次数
+ * @return
+ */
+ boolean CLIENT_SetAutoRegisterServerInfo(LLong lDevHandle,String ARSIP,short ARSPort,short nRetry);
+
+ /**
+ * 强制I帧,用于拉流优化
+ * @param lLoginID 登录句柄
+ * @param nChannelID 通道号
+ * @param nSubChannel 码流类型:0:主码流,1:子码流1
+ * @return
+ */
+ boolean CLIENT_MakeKeyFrame(LLong lLoginID,int nChannelID,int nSubChannel);
+
+ /**
+ * 关闭设备
+ */
+ boolean CLIENT_ShutDownDev(LLong lLoginID);
+
+ /**
+ * 设置通道录像状态(pRsBuffer内存由用户申请释放)
+ */
+ boolean CLIENT_SetupRecordState(LLong lLoginID,Pointer pRSBuffer,int nRSBufferlen);
+
+ /**
+ * 设置通道辅码流录像状态(pRsBuffer内存由用户申请释放)
+ */
+ boolean CLIENT_SetupExtraRecordState(LLong lLoginID,Pointer pRSBuffer,int nRSBufferlen,Pointer pReserved);
+
+ /**
+ * 增加远程录像备份任务, pInParam pOutParam 内存有用户申请释放
+ * @param lRestoreID restoreId
+ * @param pInParam -> NET_IN_ADD_REC_BAK_RST_REMOTE_TASK
+ * @param pOutParam -> NET_OUT_ADD_REC_BAK_RST_REMOTE_TASK
+ * @param nWaitTime 超时时间
+ * @return 添加是否成功
+ */
+ boolean CLIENT_AddRecordBackupRestoreRemoteTask(LLong lRestoreID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 设置停车规则
+ */
+ boolean CLIENT_SetParkingRule(LLong lLoginID,NET_IN_SET_PARKINGRULE_INFO pstInParam,NET_OUT_SET_PARKINGRULE_INFO pstOutParam,int nWaitTime);
+
+ // 设置运行模式参数,在CLIENT_Init之后调用 pstuRunParams->NET_RUNMODE_PARAMS
+ boolean CLIENT_SetRunModeParams(Pointer pstuRunParams);
+
+ public boolean CLIENT_DownloadPieceFile(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ // 清除当前时间段内人数统计信息, 重新从0开始计算
+ //CLIENT_ControlDevice接口的 DH_CTRL_CLEAR_SECTION_STAT命令参数
+ public static class NET_CTRL_CLEAR_SECTION_STAT_INFO extends SdkStructure
+ {
+ public int dwSize;
+ public int nChannel; // 视频通道号
+
+ public NET_CTRL_CLEAR_SECTION_STAT_INFO(){
+ this.dwSize = this.size();
+ }
+ }
+
+//刻录设备回调函数原形,lAttachHandle是CLIENT_AttachBurnState返回值, 每次1条,pBuf->dwSize == nBufLen (pBuf->NET_CB_BACKUPTASK_STATE)
+ public interface fAttachBackupTaskStateCB extends Callback {
+ public void invoke(LLong lAttachHandle,Pointer pBuf,Pointer dwUser);
+ }
+
+//开始备份任务,pstInParam(NET_IN_START_BACKUP_TASK_INFO)与pstOutParam(NET_OUT_START_BACKUP_TASK_INFO)内存由用户申请释放
+ public boolean CLIENT_StartBackupTask(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+//停止备份任务public boolean CLIENT_StopBackupTask(LLong lBackupSession);
+//订阅备份状态,pstInParam(NET_IN_ATTACH_BACKUP_STATE)与pstOutParam(NET_OUT_ATTACH_BACKUP_STATE)内存由用户申请释放
+ public LLong CLIENT_AttachBackupTaskState(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+//取消订阅备份状态,lAttachHandle是CLIENT_AttachBackupTaskState返回值
+ public boolean CLIENT_DetachBackupTaskState(LLong lAttachHandle);
+
+ // 获取安检门人数统计信息
+ //CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetPopulationStatistics(LLONG lLoginID, const NET_IN_GET_POPULATION_STATISTICS *pInParam, NET_OUT_GET_POPULATION_STATISTICS *pOutParam, int nWaitTime);
+ public boolean CLIENT_GetPopulationStatistics(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ // 订阅安检门人数变化信息,pstInParam与pstOutParam内存由用户申请释放
+ //CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachPopulationStatistics(LLONG lLoginID, NET_IN_ATTACH_GATE_POPULATION_STATISTICS_INFO* pstInParam, NET_OUT_ATTACH_GATE_POPULATION_STATISTICS_INFO* pstOutParam , int nWaitTime);
+ public LLong CLIENT_AttachPopulationStatistics(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ // 取消订阅安检门人数变化信息 lPopulationStatisticsHandle 为 CLIENT_AttachPopulationStatistics 返回的句柄
+ //CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachPopulationStatistics(LLONG lPopulationStatisticsHandle);
+ public boolean CLIENT_DetachPopulationStatistics(LLong lPopulationStatisticsHandle);
+
+ //创建车辆组
+ // CLIENT_NET_API BOOL CALL_METHOD CLIENT_CreateGroupForVehicleRegisterDB(LLONG lLoginID, const NET_IN_CREATE_GROUP_FOR_VEHICLE_REG_DB *pInParam, NET_OUT_CREATE_GROUP_FOR_VEHICLE_REG_DB *pOutParam, int nWaitTime);
+ public boolean CLIENT_CreateGroupForVehicleRegisterDB(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ //删除车辆组
+ // CLIENT_NET_API BOOL CALL_METHOD CLIENT_DeleteGroupFromVehicleRegisterDB(LLONG lLoginID, const NET_IN_DELETE_GROUP_FROM_VEHICLE_REG_DB *pInParam, NET_OUT_DELETE_GROUP_FROM_VEHICLE_REG_DB *pOutParam, int nWaitTime);
+ public boolean CLIENT_DeleteGroupFromVehicleRegisterDB(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ //向车牌库添加车辆信息
+ // CLIENT_NET_API BOOL CALL_METHOD CLIENT_MultiAppendToVehicleRegisterDB(LLONG lLoginID, const NET_IN_MULTI_APPEND_TO_VEHICLE_REG_DB *pInParam, NET_OUT_MULTI_APPEND_TO_VEHICLE_REG_DB *pOutParam, int nWaitTime);
+ public boolean CLIENT_MultiAppendToVehicleRegisterDB(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ // 开包工作台上报开包检查信息
+ // CLIENT_NET_API BOOL CALL_METHOD CLIENT_UploadUnpackingCheckInfo(LLONG lLoginID, const NET_IN_UPLOAD_UPPACKING_CHECK_INFO* pInParam, NET_OUT_UPLOAD_UPPACKING_CHECK_INFO* pOutParam, int nWaitTime);
+ public boolean CLIENT_UploadUnpackingCheckInfo(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 网络应用组件,公司内部接口
+ * 可用于获取前端设备的网络资源数据,如网络收发数据的速率等,pstuIn与pstuOut内存由用户申请释放,大小参照emType对应的结构体
+ * @param lLoginID 登录句柄
+ * @param emType 网络应用组件 操作类型 EM_RPC_NETAPP_TYPE
+ * @param pstuIn 对应操作入参
+ * @param pstuOut 对应操作出参
+ * @param nWaitTime 超时时间
+ * @return 添加是否成功
+ */
+ public boolean CLIENT_RPC_NetApp(LLong lLoginID,int emType,Pointer pstuIn,Pointer pstuOut,int nWaitTime);
+
+ /**
+ * 雷达操作
+ * @param lLoginID 登录句柄
+ * @param emType 网络应用组件 操作类型 EM_RADAR_OPERATE_TYPE
+ * @param pInBuf 对应操作入参
+ * @param pOutBuf 对应操作出参
+ * @param nWaitTime 超时时间
+ * @return 是否成功
+ */
+ public boolean CLIENT_RadarOperate(LLong lLoginID,int emType,Pointer pInBuf,Pointer pOutBuf,int nWaitTime);
+
+ /**
+ * 设置信号机备份模式,pInParam与pOutParam内存由用户申请释放
+ * @param lLoginID 登录句柄
+ * @param pInParam -> NET_IN_SET_BACKUP_MODE
+ * @param pOutParam -> NET_OUT_SET_BACKUP_MODE
+ * @param nWaitTime 超时时间
+ * @return 是否成功
+ */
+ public boolean CLIENT_SetRtscBackupMode(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 设置信号机运行模式,pInParam与pOutParam内存由用户申请释放
+ * @param lLoginID 登录句柄
+ * @param pInParam -> NET_IN_SET_RUNNING_MODE
+ * @param pOutParam -> NET_OUT_SET_RUNNING_MODE
+ * @param nWaitTime 超时时间
+ * @return 是否成功
+ */
+ public boolean CLIENT_SetRtscRunningMode(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 获取信号机运行模式,pInParam与pOutParam内存由用户申请释放
+ * @param lLoginID 登录句柄
+ * @param pInParam -> NET_IN_GET_RUNNING_MODE
+ * @param pOutParam -> NET_OUT_GET_RUNNING_MODE
+ * @param nWaitTime 超时时间
+ * @return 是否成功
+ */
+ public boolean CLIENT_GetRtscRunningMode(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 获取信号机全局配置,pInParam与pOutParam内存由用户申请释放
+ * @param lLoginID 登录句柄
+ * @param pInParam -> NET_IN_GET_GLOBAL_PARAMETER
+ * @param pOutParam -> NET_OUT_GET_GLOBAL_PARAMETER
+ * @param nWaitTime 超时时间
+ * @return 是否成功
+ */
+ public boolean CLIENT_GetRtscGlobalParam(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 设置信号机全局配置,pInParam与pOutParam内存由用户申请释放
+ * @param lLoginID 登录句柄
+ * @param pInParam -> NET_IN_SET_GLOBAL_PARAMETER
+ * @param pOutParam -> NET_OUT_SET_GLOBAL_PARAMETER
+ * @param nWaitTime 超时时间
+ * @return 是否成功
+ */
+ public boolean CLIENT_SetRtscGlobalParam(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 获取信号机运行信息,pInParam与pOutParam内存由用户申请释放
+ * @param lLoginID 登录句柄
+ * @param pInParam -> NET_IN_GET_RUNNING_INFO
+ * @param pOutParam -> NET_OUT_GET_RUNNING_INFO
+ * @param nWaitTime 超时时间
+ * @return 是否成功
+ */
+ public boolean CLIENT_GetRtscRunningInfo(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ // 手动选择球机要跟踪的轨迹目标
+ // CLIENT_NET_API BOOL CALL_METHOD CLIENT_RadarManualTrack(LLONG lLoginID, const NET_IN_RADAR_MANUAL_TRACK* pstInParam, NET_OUT_RADAR_MANUAL_TRACK* pstOutParam, int nWaitTime);
+ public boolean CLIENT_RadarManualTrack(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 西欧报警主机获取操作
+ * @param lLoginID
+ * @param emType NET_EM_GET_ALARMREGION_INFO 的枚举值
+ * @param nWaitTime
+ * @return boolean
+ */
+ public boolean CLIENT_GetAlarmRegionInfo(LLong lLoginID,int emType,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 标定球机和蓄水池污点位置
+ * @param lLoginID
+ * @param pstInParam -> NET_IN_SET_PTZ_WASH_POSISTION_INFO
+ * @param pstOutParam -> NET_OUT_SET_PTZ_WASH_POSISTION_INFO
+ * @param dwWaitTime
+ * @return boolean
+ */
+ public boolean CLIENT_PtzSetWashPosistion(LLong lLoginID,NET_IN_SET_PTZ_WASH_POSISTION_INFO pstInParam,NET_OUT_SET_PTZ_WASH_POSISTION_INFO pstOutParam,int dwWaitTime);
+
+ /**
+ * 获取标定后的冲洗信息
+ * @param lLoginID
+ * @param pstInParam -> NET_IN_GET_PTZ_WASH_INFO
+ * @param pstOutParam -> NET_OUT_GET_PTZ_WASH_INFO
+ * @param dwWaitTime
+ * @return boolean
+ */
+ public boolean CLIENT_PtzGetWashInfo(LLong lLoginID,NET_IN_GET_PTZ_WASH_INFO pstInParam,NET_OUT_GET_PTZ_WASH_INFO pstOutParam,int dwWaitTime);
+
+ /**
+ *按文件方式回放(lpRecordFile内存由用户申请释放)
+ * @param lLoginID
+ * @param lpRecordFile -> LPNET_RECORDFILE_INFO
+ * @param hWnd -> Pointer
+ * @param cbDownLoadPos -> fDownLoadPosCallBack
+ * @param dwUserData
+ * @return boolean
+ */
+ public LLong CLIENT_PlayBackByRecordFile(LLong lLoginID,NET_RECORDFILE_INFO lpRecordFile,Pointer hWnd,fDownLoadPosCallBack cbDownLoadPos,Pointer dwUserData);
+
+ // 开始查找录像文件
+ public LLong CLIENT_FindFile(LLong lLoginID,int nChannelId,int nRecordFileType,Pointer cardid,NET_TIME time_start,NET_TIME time_end,boolean bTime,int waittime);
+
+ /**
+ * 订阅人群分布图实时统计信息
+ * @param lLoginID 登陆句柄
+ * @param pstInParam -> NET_IN_ATTACH_CROWDDISTRI_MAP_INFO 输入参数, 由用户申请资源
+ * @param pstOutParam -> NET_OUT_ATTACH_CROWDDISTRI_MAP_INFO 输出参数, 由用户申请资源
+ * @param nWaitTime 等待超时时间
+ * @return LLong 订阅句柄
+ */
+ public LLong CLIENT_AttachCrowdDistriMap(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 订阅人群分布图实时统计信息回调函数原型,
+ * lAttachHandle为CLIENT_AttachCrowdDistriMap接口的返回值,
+ * pstResult 解析结构体为 NET_CB_CROWD_DISTRI_STREAM_INFO
+ */
+ public interface fCrowdDistriStream extends Callback {
+ public void invoke(LLong lAttachHandle,Pointer pstResult,Pointer dwUser);
+ }
+
+ /**
+ * 取消订阅人群分布图实时统计信息
+ * @param lAttachHandle 订阅句柄,为接口CLIENT_AttachCrowdDistriMap的返回值
+ * @return boolean
+ */
+ public boolean CLIENT_DetachCrowdDistriMap(LLong lAttachHandle);
+
+ /**
+ * 获取人群分布图全局和区域实时人数统计值
+ * @param lLoginID 登陆句柄
+ * @param pstInParam -> NET_IN_GETSUMMARY_CROWDDISTRI_MAP_INFO 接口输入参数
+ * @param pstOutParam -> NET_OUT_GETSUMMARY_CROWDDISTRI_MAP_INFO 接口输出参数
+ * @param nWaitTime 等待超时时间
+ * @return boolean
+ */
+ public boolean CLIENT_GetSummaryCrowdDistriMap(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 下发人员信息录入结果
+ * @param lLoginID 登陆句柄
+ * @param pstInParam -> NET_IN_PERSON_INFO_INPUT_RESULT 接口输入参数
+ * @param pstOutParam -> NET_OUT_PERSON_INFO_INPUT_RESULT 接口输出参数
+ * @param nWaitTime 等待超时时间
+ * @return boolean
+ */
+ public boolean CLIENT_SetPersonInfoInputResult(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 根据查询条件返回录像备份任务的信息表,pInParam与pOutParam内存由用户申请释放
+ * @param lLoginID 登陆句柄
+ * @param pInParam -> NET_IN_FIND_REC_BAK_RST_TASK 接口输入参数
+ * @param pOutParam -> NET_OUT_FIND_REC_BAK_RST_TASK 接口输出参数
+ * @param nWaitTime 等待超时时间
+ * @return boolean
+ */
+ public boolean CLIENT_FindRecordBackupRestoreTaskInfos(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 功能描述:异步纯透传订阅接口
+ * @param lLoginID 登录接口返回的句柄
+ * @param pInParam -> NET_IN_ATTACH_TRANSMIT_INFO 异步纯透传接口输入参数
+ * @param pOutParam -> NET_OUT_ATTACH_TRANSMIT_INFO 异步纯透传接口输出参数
+ * @param nWaittime 接口超时时间
+ * @return LLong 异步纯透传句柄
+ */
+ public LLong CLIENT_AttachTransmitInfo(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * CLIENT_AttachTransmitInfo()回调函数原型,第一个参数lAttachHandle是CLIENT_AttachTransmitInfo返回值,
+ */
+ public interface AsyncTransmitInfoCallBack extends Callback {
+ public void invoke(LLong lAttachHandle,NET_CB_TRANSMIT_INFO pTransmitInfo,Pointer dwUser);
+ }
+
+ /**
+ * 功能描述:异步纯透传取消订阅接口
+ * @param lAttachHandle 异步纯透传句柄,即CLIENT_AttachTransmitInfo接口的返回值
+ * @param pInParam -> NET_IN_DETACH_TRANSMIT_INFO 异步纯透传取消订阅接口输入参数
+ * @param pOutParam -> NET_OUT_DETACH_TRANSMIT_INFO 异步纯透传取消订阅接口输出参数
+ * @param nWaittime 接口超时时间
+ * @return boolean TRUE :成功; FALSE :失败
+ */
+ public boolean CLIENT_DetachTransmitInfo(LLong lAttachHandle,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 雷达订阅RFID卡片信息
+ * @param lLoginID 登陆句柄
+ * @param pstInParam -> NET_IN_ATTACH_RADAR_RFIDCARD_INFO 接口输入参数
+ * @param pstOutParam -> NET_OUT_ATTACH_RADAR_RFIDCARD_INFO 接口输出参数
+ * @param nWaitTime 等待超时时间
+ * @return LLong
+ */
+ public LLong CLIENT_AttachRadarRFIDCardInfo(LLong lLoginID,NET_IN_ATTACH_RADAR_RFIDCARD_INFO pstInParam,NET_OUT_ATTACH_RADAR_RFIDCARD_INFO pstOutParam,int nWaitTime);
+
+ /**
+ * 雷达取消订阅RFID卡片信息
+ * @param lAttachHandle 订阅句柄
+ * @return boolean
+ */
+ public boolean CLIENT_DetachRadarRFIDCardInfo(LLong lAttachHandle);
+
+ /**
+ * 查询RFID的工作模式
+ * @param lLoginID 登陆句柄
+ * @param pstInParam -> NET_IN_RADAR_GET_RFID_MODE 接口输入参数
+ * @param pstOutParam -> NET_OUT_RADAR_GET_RFID_MODE 接口输出参数
+ * @param nWaitTime 等待超时时间
+ * @return boolean
+ */
+ public boolean CLIENT_GetRadarRFIDMode(LLong lLoginID,NET_IN_RADAR_GET_RFID_MODE pstInParam,NET_OUT_RADAR_GET_RFID_MODE pstOutParam,int nWaitTime);
+
+ /**
+ * 设置RFID的工作模式
+ * @param lLoginID 登陆句柄
+ * @param pstInParam -> NET_IN_RADAR_SET_RFID_MODE 接口输入参数
+ * @param pstOutParam -> NET_OUT_RADAR_SET_RFID_MODE 接口输出参数
+ * @param nWaitTime 等待超时时间
+ * @return boolean
+ */
+ public boolean CLIENT_SetRadarRFIDMode(LLong lLoginID,NET_IN_RADAR_SET_RFID_MODE pstInParam,NET_OUT_RADAR_SET_RFID_MODE pstOutParam,int nWaitTime);
+
+ /**
+ * 按条件删除车牌库中的车牌
+ * @param lLoginID 登陆句柄
+ * @param pstInParam -> NET_IN_DEL_BY_CONDITION_FROM_VEHICLE_REG_DB 接口输入参数
+ * @param pstOutParam -> NET_OUT_DEL_BY_CONDITION_FROM_VEHICLE_REG_DB 接口输出参数
+ * @param nWaitTime 等待超时时间
+ * @return boolean
+ */
+ public boolean CLIENT_DeleteByConditionFromVehicleRegisterDB(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 设置消费结果
+ * @param lLoginID 登陆句柄
+ * @param pInParam -> NET_IN_SET_CONSUME_RESULT 接口输入参数
+ * @param pOutParam -> NET_OUT_SET_CONSUME_RESULT 接口输出参数
+ * @param nWaitTime 等待超时时间
+ * @return boolean
+ */
+ public boolean CLIENT_SetConsumeResult(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 远程休眠模式
+ * @param lLoginID 登录句柄
+ * @param pInParam -> NET_IN_REMOTE_SLEEP 接口输入参数
+ * @param pOutParam -> NET_OUT_REMOTE_SLEEP 接口输出参数
+ * @param nWaitTime 等待超时时间
+ * @return boolean
+ */
+ public boolean CLIENT_RemoteSleep(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 自定义定时抓图订阅接口(目前智慧养殖猪温检测在用)
+ * @param lLoginID 登录句柄
+ * @param pInParam -> NET_IN_ATTACH_CUSTOM_SNAP_INFO 接口输入参数
+ * @param pOutParam -> NET_OUT_ATTACH_CUSTOM_SNAP_INFO 接口输出参数
+ * @param nWaitTime 等待超时时间
+ * @return LLong
+ */
+ public LLong CLIENT_AttachCustomSnapInfo(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 自定义定时抓图订阅回调函数原型,
+ * @param lAttachHandle 为 CLIENT_AttachCustomSnapInfo 接口的返回值
+ * @param pstResult 参考结构体 NET_CB_CUSTOM_SNAP_INFO
+ */
+ public interface fAttachCustomSnapInfo extends Callback {
+ public void invoke(LLong lAttachHandle,Pointer pstResult,Pointer pBuf,int dwBufSize,Pointer dwUser);
+ }
+
+ /**
+ * 取消自定义定时抓图订阅接口(目前智慧养殖猪温检测在用)
+ * @param lAttachHandle 订阅句柄
+ * @return boolean
+ */
+ public boolean CLIENT_DetachCustomSnapInfo(LLong lAttachHandle);
+
+ /**
+ * 物模型属性订阅回调函数原型, lAttachHandle为CLIENT_AttachThingsInfo接口的返回值
+ * @param lAttachHandle 订阅句柄
+ * @param pstResult 物模型属性订阅回调信息, 参考{@link NET_CB_THINGS_INFO}
+ * @return void
+ */
+ public interface fThingsCallBack extends Callback {
+ public void invoke(LLong lAttachHandle,Pointer pstResult,Pointer dwUserData);
+ }
+
+ /**
+ * 停止获取设备历史数据
+ * @param lFindHandle 查找句柄
+ * @return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_StopThingsHistoryData(LLong lFindHandle);
+
+ /**
+ * 获取设备历史数据结果接口
+ * @param lFindHandle 查找句柄
+ * @param pstInParam 接口输入参数,参考{@link NET_IN_THINGS_DOFIND_HISTORYDATA}
+ * @param pstOutParam 接口输出参数, 参考{@link NET_OUT_THINGS_DOFIND_HISTORYDATA}
+ * @param nWaitTime 接口超时时间, 单位毫秒
+ * @return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_DoFindThingsHistoryData(LLong lFindHandle,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 开始获取设备历史数据接口
+ * @param lLoginID 登录句柄
+ * @param pstInParam 接口输入参数,参考{@link NET_IN_THINGS_START_HISTORYDATA}
+ * @param pstOutParam 接口输出参数, 参考{@link NET_OUT_THINGS_START_HISTORYDATA}
+ * @param nWaitTime 接口超时时间, 单位毫秒
+ * @return TRUE表示成功 FALSE表示失败
+ */
+ public LLong CLIENT_StartThingsHistoryData(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 智慧用电Things物模型服务调用接口
+ * @param lLoginID 登录句柄
+ * @param emType 物模型服务类型,参考{@link EM_THINGS_SERVICE_TYPE}
+ * @param pInBuf 接口输入参数,参考emType类型,内存资源由用户申请和释放
+ * @param pOutBuf 接口输出参数,参考emType类型,内存资源由用户申请和释放
+ * @param nWaitTime 接口超时时间, 单位毫秒
+ * @return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_ThingsServiceOperate(LLong lLoginID,int emType,Pointer pInBuf,Pointer pOutBuf,int nWaitTime);
+
+ /**
+ * 智慧用电Things获取设备连接状态信息接口
+ * @param lLoginID 登录句柄
+ * @param pInParam 接口输入参数,参考{@link NET_IN_THINGS_GET_NETSTATE}
+ * @param pOutParam 接口输出参数, 参考{@link NET_OUT_THINGS_GET_NETSTATE}
+ * @param nWaitTime 接口超时时间, 单位毫秒
+ * @return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_GetThingsNetState(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 智慧用电Things获取设备列表接口
+ * @param lLoginID 登录句柄
+ * @param pInParam 接口输入参数,参考{@link NET_IN_THINGS_GET_DEVLIST}
+ * @param pOutParam 接口输出参数, 参考{@link NET_OUT_THINGS_GET_DEVLIST}
+ * @param nWaitTime 接口超时时间, 单位毫秒
+ * @return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_GetThingsDevList(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 智慧用电Things获取设备能力集接口
+ * @param lLoginID 登录句柄
+ * @param pInParam 接口输入参数,参考{@link NET_IN_THINGS_GET_CAPS}
+ * @param pOutParam 接口输出参数, 参考{@link NET_OUT_THINGS_GET_CAPS}
+ * @param nWaitTime 接口超时时间, 单位毫秒
+ * @return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_GetThingsCaps(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 智慧用电Things取消物模型属性订阅接口
+ * @param lAttachHandle 订阅句柄
+ * @return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_DetachThingsInfo(LLong lAttachHandle);
+
+ /**
+ * 智慧用电Things物模型属性订阅接口
+ * @param lLoginID 登录句柄
+ * @param pInParam 接口输入参数,参考{@link NET_IN_THINGS_ATTACH}
+ * @param pOutParam 接口输出参数, 参考{@link NET_OUT_THINGS_ATTACH}
+ * @param nWaitTime 接口超时时间, 单位毫秒
+ * @return 订阅句柄
+ */
+ public LLong CLIENT_AttachThingsInfo(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 智慧用电Things配置设置接口
+ * @param lLoginID 登录句柄
+ * @param pInParam 接口输入参数,参考{@link NET_IN_THINGS_SET}
+ * @param pOutParam 接口输出参数, 参考{@link NET_OUT_THINGS_SET}
+ * @param nWaitTime 接口超时时间, 单位毫秒
+ * @return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_SetThingsConfig(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 智慧用电Things配置获取接口
+ * @param lLoginID 登录句柄
+ * @param pInParam 接口输入参数,参考{@link NET_IN_THINGS_GET}
+ * @param pOutParam 接口输出参数, 参考{@link NET_OUT_THINGS_GET}
+ * @param nWaitTime 接口超时时间, 单位毫秒
+ * @return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_GetThingsConfig(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 获取流量统计信息,pstInParam与pstOutParam内存由用户申请释放
+ * @param lLoginID 登录句柄
+ * @param pstInParam 接口输入参数,参考{@link NET_IN_TRAFFICSTARTFINDSTAT}
+ * @param pstOutParam 接口输出参数, 参考{@link NET_OUT_TRAFFICSTARTFINDSTAT}
+ * @return 查询句柄
+ */
+ public LLong CLIENT_StartFindFluxStat(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam);
+
+ /**
+ *@brief 继续查询流量统计,pstInParam与pstOutParam内存由用户申请释放
+ * @param lFindHandle 查询句柄
+ * @param pstInParam 接口输入参数,参考{@link NET_IN_TRAFFICDOFINDSTAT}
+ * @param pstOutParam 接口输出参数, 参考{@link NET_OUT_TRAFFICDOFINDSTAT}
+ * @return
+ */
+ public int CLIENT_DoFindFluxStat(LLong lFindHandle,Pointer pstInParam,Pointer pstOutParam);
+
+ /**
+ * 结束查询流量统计
+ */
+ public boolean CLIENT_StopFindFluxStat(LLong lFindHandle);
+
+ /**
+ * 获取智能订阅参数CustomInfo的格式化字符串能力
+ *param[in] lLoginID 登录句柄
+ *param[in] pInParam 接口输入参数, 内存资源由用户申请和释放 {@link NET_IN_GET_CUSTOMINFO_CAPS}
+ *param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放 {@link NET_OUT_GET_CUSTOMINFO_CAPS}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_GetCustomInfoCaps(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 获取温度值
+ * @param lLoginID 登录句柄
+ * @param pInParam 接口输入参数,参考{@link NET_IN_GET_TEMPERATUREEX}
+ * @param pstOutParam 接口输出参数, 参考{@link NET_OUT_GET_TEMPERATUREEX}
+ * @return 查询句柄
+ */
+ public boolean CLIENT_FaceBoard_GetTemperatureEx(LLong lLoginID,Pointer pInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 考试计划
+ * CLIENT_SetExamRecordingPlans 接口入参
+ * CLIENT_SetExamRecordingPlans 接口出参
+ * 添加考试录像计划
+ *param[in] lLoginID: 登录句柄
+ *param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放 {@link NET_IN_SET_EXAM_RECORDING_PLANS}
+ *param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放 {@link NET_OUT_SET_EXAM_RECORDING_PLANS}
+ *param[in] nWaitTime: 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_SetExamRecordingPlans(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 获取SMART扫描信息
+ * @param lLoginID 登录句柄
+ * @param pstuInParam 接口输入参数,参考{@link NET_IN_GET_DEV_STORAGE_SMART_VALUE}
+ * @param pstuOutParam 接口输出参数, 参考{@link NET_OUT_GET_DEV_STORAGE_SMART_VALUE}
+ * @param nWaitTime 接口超时时间, 单位毫秒
+ * @return
+ */
+ public boolean CLIENT_GetDevStorageSmartValue(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 获取设备各网卡的上传与发送速率
+ * @param lLoginID 登录句柄
+ * @param pstuInParam 接口输入参数,参考{@link NET_IN_GET_DEVICE_ETH_BAND_INFO}
+ * @param pstuOutParam 接口输出参数, 参考{@link NET_OUT_GET_DEVICE_ETH_BAND_INFO}
+ * @param nWaitTime 接口超时时间, 单位毫秒
+ * @return
+ */
+ public boolean CLIENT_GetDeviceEthBandInfo(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ *@ingroup functions
+ *@brief 销毁业务sdk模块
+ *@param[in] lSubBizHandle 业务sdk句柄,由CLIENT_CreateSubBusinessModule接口返回
+ *@retval BOOL
+ *@return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_DestroySubBusinessModule(LLong lSubBizHandle);
+
+ /**
+ *@ingroup functions
+ *@brief 创建业务sdk模块
+ *@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放 NET_IN_CREAT_SUB_BUSINESS_MDL_INFO
+ *@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放 NET_OUT_CREAT_SUB_BUSINESS_MDL_INFO
+ *@retval LLONG
+ *@return 业务sdk句柄,非0表示成功 0表示失败
+ */
+ public LLong CLIENT_CreateSubBusinessModule(Pointer pInParam,Pointer pOutParam);
+
+ /**
+ *@ingroup functions
+ *@brief 启动子连接监听服务
+ *@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放 NET_IN_START_SUBLINK_LISTEN_SERVER
+ *@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放 NET_OUT_START_SUBLINK_LISTEN_SERVER
+ *@retval LLONG
+ *@return 子链接监听服务句柄, 非0表示成功 0表示失败
+ */
+ public LLong CLIENT_StartSubLinkListenServer(Pointer pInParam,Pointer pOutParam);
+
+ /**
+ *@ingroup functions
+ *@brief 停止子连接监听服务
+ *@param[in] lListenServer 监听服务句柄,由CLIENT_StartSubLinkListenServer接口返回
+ *@retval BOOL
+ *@return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_StopSubLinkListenServer(LLong lListenServer);
+
+ /**
+ *@ingroup functions
+ *@brief 发送创建子连接所需的信息给设备, 由主业务模块调用
+ *@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放 NET_IN_TRANSFER_SUBLINK_INFO
+ *@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放 NET_OUT_TRANSFER_SUBLINK_INFO
+ *@param[in] nWaitTime 接口超时时间, 单位毫秒
+ *@retval BOOL
+ *@return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_TransferSubLinkInfo(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ *@ingroup functions
+ *@brief 设置私有透传通道参数
+ *@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放 NET_IN_SET_TRANSMITTUNNEL_PARAM
+ *@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放 NET_OUT_SET_TRANSMITTUNNEL_PARAM
+ *@retval BOOL
+ *@return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_SetTransmitTunnelParam(Pointer pInParam,Pointer pOutParam);
+
+ /**
+ *@ingroup functions
+ *@brief 创建隧道
+ *@param[in] lSubBizHandle 业务sdk句柄,由CLIENT_CreateSubBusinessModule接口返回
+ *@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放 NET_IN_CREATE_TRANSMIT_TUNNEL
+ *@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放 NET_OUT_CREATE_TRANSMIT_TUNNEL
+ *@retval LLONG
+ *@return 透传隧道业务句柄,非0表示成功 0表示失败
+ */
+ public LLong CLIENT_CreateTransmitTunnel(LLong lSubBizHandle,Pointer pInParam,Pointer pOutParam);
+
+ /**
+ *@ingroup functions
+ *@brief 销毁隧道
+ *@param[in] lTransmitHandle 透传隧道业务句柄,由CLIENT_CreateTransmitTunnel接口返回
+ *@retval BOOL
+ *@return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_DestroyTransmitTunnel(LLong lTransmitHandle);
+
+ /**
+ *@ingroup callback
+ *@brief 子连接监听服务回调函数原型
+ *@param[out] lListenServer 子链接监听服务句柄, 由CLIENT_StartSubLinkListenServer接口返回
+ *@param[out] lSubBizHandle 分压业务sdk句柄, 由CLIENT_CreateSubBusinessModule接口返回
+ *@param[out] pstSubLinkCallBack 子链接监听服务回调信息 NET_SUBLINK_SERVER_CALLBACK
+ *@retval void
+ */
+ public interface fSubLinkServiceCallBack extends Callback {
+ public void invoke(LLong lListenServer,LLong lSubBizHandle,Pointer pstSubLinkCallBack);
+ }
+
+ /**
+ *@ingroup callback
+ *@brief 隧道业务连接断开回调
+ *@param[out] lSubBizHandle 下载句柄, 由CLIENT_CreateSubBusinessModule接口返回
+ *@param[out] lOperateHandle 业务句柄
+ *@param[out] pstDisConnectInfo 断线回调数据 NET_TRANSMIT_DISCONNECT_CALLBACK
+ *@retval void
+ */
+ public interface fTransmitDisConnectCallBack extends Callback {
+ public void invoke(LLong lSubBizHandle,LLong lOperateHandle,Pointer pstDisConnectInfo);
+ }
+
+ /**
+ *@ingroup functions
+ *@brief 获取/设置解码窗口输出OSD信息扩展接口(pInparam, pOutParam内存由用户申请释放)
+ *@param[in] lLoginHandle 登录句柄
+ *@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放 {@link NET_IN_SPLIT_GET_OSD_EX}
+ *@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放 {@link NET_OUT_SPLIT_GET_OSD_EX}
+ *@param[in] nWaitTime 接口超时时间, 单位毫秒
+ *@retval BOOL
+ *@return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_GetSplitOSDEx(LLong lLoginHandle,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ *@ingroup functions
+ *@brief 获取/设置解码窗口输出OSD信息扩展接口(pInparam, pOutParam内存由用户申请释放)
+ *@param[in] lLoginHandle 登录句柄
+ *@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放 {@link NET_IN_SPLIT_SET_OSD_EX}
+ *@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放 {@link NET_OUT_SPLIT_SET_OSD_EX}
+ *@param[in] nWaitTime 接口超时时间, 单位毫秒
+ *@retval BOOL
+ *@return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_SetSplitOSDEx(LLong lLoginHandle,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ *@ingroup functions
+ *@brief 销毁隧道
+ *@param[in] lLoginHandle 登录句柄
+ *@param[in] emType 入参类型枚举,{@link NET_SPLIT_OPERATE_TYPE}
+ *@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放,类型参考枚举注释{@link NET_SPLIT_OPERATE_TYPE}
+ *@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放,类型参考枚举注释{@link NET_SPLIT_OPERATE_TYPE}
+ *@param[in] nWaitTime 接口超时时间, 单位毫秒
+ *@retval BOOL
+ *@return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_OperateSplit(LLong lLoginHandle,int emType,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 根据中心公钥获取锁具随机公钥
+ *param[in] lLoginID 登录句柄
+ *param[in] pInParam 接口输入参数, 内存资源由用户申请和释放 {@link NET_IN_GET_DYNAMIC_LOCK_RANDOM_PUBLICKEY_INFO}
+ *param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放 {@link NET_OUT_GET_DYNAMIC_LOCK_RANDOM_PUBLICKEY_INFO}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_GetDynamicLockRandomPublicKey(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 设置通讯秘钥
+ *param[in] lLoginID 登录句柄
+ *param[in] pInParam 接口输入参数, 内存资源由用户申请和释放 {@link NET_IN_SET_DYNAMIC_LOCK_COMMUNICATIONKEY_INFO}
+ *param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放 {@link NET_OUT_SET_DYNAMIC_LOCK_COMMUNICATIONKEY_INFO}
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_SetDynamicLockCommunicationKey(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 设置开锁密钥
+ *param[in] lLoginID 登录句柄
+ *param[in] pInParam 接口输入参数, 内存资源由用户申请和释放 {@link NET_IN_SET_DYNAMIC_LOCK_OPENKEY_INFO}
+ *param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放 {@link NET_OUT_SET_DYNAMIC_LOCK_OPENKEY_INFO}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_SetDynamicLockOpenKey(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 设置临时身份码
+ *param[in] lLoginID 登录句柄
+ *param[in] pInParam 接口输入参数, 内存资源由用户申请和释放 {@link NET_IN_SET_DYNAMIC_LOCK_TEMP_USERID_INFO}
+ *param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放 {@link NET_OUT_SET_DYNAMIC_LOCK_TEMP_USERID_INFO}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_SetDynamicLockTempUserID(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 设置开锁码
+ *param[in] lLoginID 登录句柄
+ *param[in] pInParam 接口输入参数, 内存资源由用户申请和释放 {@link NET_IN_SET_DYNAMIC_LOCK_OPEN_CODE_INFO}
+ *param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放 {@link NET_OUT_SET_DYNAMIC_LOCK_OPEN_CODE_INFO}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_SetDynamicLockOpenCode(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 推送智能分析图片文件和规则信息,当CLIENT_AddAnalyseTask的数据源类型emDataSourceType为 EM_DATA_SOURCE_PUSH_PICFILE_BYRULE 时使用
+ *param[in] lLoginID 登录句柄
+ *param[in] pInParam 接口输入参数, 内存资源由用户申请和释放 {@link NET_IN_PUSH_ANALYSE_PICTURE_FILE_BYRULE}
+ *param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放 {@link NET_OUT_PUSH_ANALYSE_PICTURE_FILE_BYRULE}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_PushAnalysePictureFileByRule(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 指定智能事件解析所用的结构体 用于解决java大结构体new对象慢导致的问题.该接口全局有效,建议在SDK初始化前调用
+ * @param pInParam 接口输入参数, 内存资源由用户申请和释放,参考{@link NET_IN_SET_IVSEVENT_PARSE_INFO}
+ * @return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_SetIVSEventParseType(NET_IN_SET_IVSEVENT_PARSE_INFO pInParam);
+
+ /**
+ * 平台下发轮询配置
+ * param[in] lLoginID 登录句柄
+ * param[in] pInParam 接口输入参数, 内存资源由用户申请和释放 {@link NET_IN_SET_POLLING_CONFIG}
+ * param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放 {@link NET_OUT_SET_POLLING_CONFIG}
+ * param[in] nWaitTime 接口超时时间, 单位毫秒
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_SetPollingConfig(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 按通道获取设备智能业务的运行状态
+ *param[in] lLoginID 登录句柄
+ *param[in] pstuInParam 接口输入参数, 内存资源由用户申请和释放 {@link NET_IN_GET_CHANNEL_STATE}
+ *param[out] pstuOutParam 接口输出参数, 内存资源由用户申请和释放 {@link NET_OUT_GET_CHANNEL_STATE}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_GetChannelState(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 获取隐私遮挡列表
+ * param[in] lLoginID 登录句柄
+ * param[in] pstuInParam 接口输入参数 ,{@link NET_IN_GET_PRIVACY_MASKING}
+ * param[out]pstuOutParam 接口输出参数,,{@link NET_OUT_GET_PRIVACY_MASKING}
+ * param[in] nWaitTime 接口超时时间, 单位毫秒
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_GetPrivacyMasking(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 设置隐私遮挡列表
+ * param[in] lLoginID 登录句柄
+ * param[in] pstuInParam 接口输入参数 ,{@link NET_IN_SET_PRIVACY_MASKING}
+ * param[out]pstuOutParam 接口输出参数,,{@link NET_OUT_SET_PRIVACY_MASKING}
+ * param[in] nWaitTime 接口超时时间, 单位毫秒
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_SetPrivacyMasking(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 使能或关闭所有隐私遮挡块
+ * param[in] lLoginID 登录句柄
+ * param[in] pstuInParam 接口输入参数 ,{@link NET_IN_SET_PRIVACY_MASKING_ENABLE}
+ * param[out]pstuOutParam 接口输出参数,,{@link NET_OUT_SET_PRIVACY_MASKING_ENABLE}
+ * param[in] nWaitTime 接口超时时间, 单位毫秒
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_SetPrivacyMaskingEnable(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 获取隐私遮挡总开关使能状态
+ * param[in] lLoginID 登录句柄
+ * param[in] pstuInParam 接口输入参数 ,{@link NET_IN_GET_PRIVACY_MASKING_ENABLE}
+ * param[out]pstuOutParam 接口输出参数,,{@link NET_OUT_GET_PRIVACY_MASKING_ENABLE}
+ * param[in] nWaitTime 接口超时时间, 单位毫秒
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_GetPrivacyMaskingEnable(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 跳转到隐私遮档块
+ * param[in] lLoginID 登录句柄
+ * param[in] pstuInParam 接口输入参数 ,{@link NET_IN_GOTO_PRIVACY_MASKING}
+ * param[out]pstuOutParam 接口输出参数,,{@link NET_OUT_GOTO_PRIVACY_MASKING}
+ * param[in] nWaitTime 接口超时时间, 单位毫秒
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_GotoPrivacyMasking(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 删除隐私遮档块
+ * param[in] lLoginID 登录句柄
+ * param[in] pstuInParam 接口输入参数 ,{@link NET_IN_DELETE_PRIVACY_MASKING}
+ * param[out]pstuOutParam 接口输出参数,,{@link NET_OUT_DELETE_PRIVACY_MASKING}
+ * param[in] nWaitTime 接口超时时间, 单位毫秒
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_DeletePrivacyMasking(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 清除遮挡
+ * param[in] lLoginID 登录句柄
+ * param[in] pstuInParam 接口输入参数 ,{@link NET_IN_CLEAR_PRIVACY_MASKING}
+ * param[out]pstuOutParam 接口输出参数,,{@link NET_OUT_CLEAR_PRIVACY_MASKING}
+ * param[in] nWaitTime 接口超时时间, 单位毫秒
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_ClearPrivacyMasking(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 远程复位(消防)
+ * param[in] lLoginID 登录句柄
+ * param[in] emType 操作类型枚举,{@link EM_RADAR_OPERATE_TYPE}
+ * param[in] pInParam 接口输入参数 ,参考emType
+ * param[out]pOutParam 接口输出参数 ,参考emType
+ * param[in] nWaitTime 接口超时时间, 单位毫秒
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_RadarOperate(LLong lLoginID,EM_RADAR_OPERATE_TYPE emType,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 订阅mini雷达的报警点信息
+ * param[in] lLoginID 登录句柄
+ * param[in] pInParam 接口输入参数 ,{@link NET_IN_MINI_RADAR_ALARMPOINTINFO}
+ * param[out]pOutParam 接口输出参数 ,{@link NET_OUT_MINI_RADAR_ALARMPOINTINFO}
+ * param[in] nWaitTime 接口超时时间, 单位毫秒
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public LLong CLIENT_AttachMiniRadarAlarmPointInfo(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 远程复位(消防)
+ * param[in] lLoginID 登录句柄
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_DetachMiniRadarAlarmPointInfo(LLong lAttachHandle);
+
+ /**
+ * 远程复位(消防)
+ * param[in] lLoginID 登录句柄
+ * param[in] pInParam 接口输入参数 ,{@link NET_IN_SMOKE_REMOTE_REBOOT_INFO}
+ * param[out]pOutParam 接口输出参数 ,{@link NET_OUT_SMOKE_REMOTE_REBOOT_INFO}
+ * param[in] nWaitTime 接口超时时间, 单位毫秒
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_SmokeRemoteReboot(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * mini雷达报警点信息
+ * 上报的mini雷达报警点信息
+ * mini雷达报警点信息回调函数指针
+ */
+ public interface fMiniRadarAlarmPointInfoCallBack extends Callback {
+/**
+ *
+ * @param lLoginId 登录句柄
+ * @param lAttachHandle 订阅句柄
+ * @param pBuf {@link com.netsdk.lib.structure.NET_MINI_RADAR_NOTIFY_ALARMPOINTINFO}
+ * @param dwBufLen pBuf中结构体的长度
+ * @param pReserved 保留数据
+ * @param dwUser 用户自定义数据
+ */
+ public void invoke(LLong lLoginId,LLong lAttachHandle,Pointer pBuf,int dwBufLen,Pointer pReserved,Pointer dwUser);
+ }
+
+ /**
+ * 获取业务库管理的舱位信息
+ *param[in] lLoginID 登录句柄
+ *param[in] pInParam 接口输入参数, 内存资源由用户申请和释放 {@link NET_IN_GET_FINANCIAL_CABIN_INFO}
+ *param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放 {@link NET_OUT_GET_FINANCIAL_CABIN_INFO}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_GetFinancialCabinInfo(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 获取金库门状态
+ *param[in] lLoginID: 登录句柄
+ *param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放 {@link NET_IN_GET_VAULTDOOR_STATE_INFO}
+ *param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放 {@link NET_OUT_GET_VAULTDOOR_STATE_INFO}
+ *param[in] nWaitTime: 接口超时时间, 单位毫秒
+ *return TRUE表示成功FALSE表示失败
+ */
+ public boolean CLIENT_GetVaultDoorState(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 获取金融柜体设备状态
+ *param[in] lLoginID: 登录句柄
+ *param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放 {@link NET_IN_GET_CABINET_STATE_INFO}
+ *param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放 {@link NET_OUT_GET_CABINET_STATE_INFO}
+ *param[in] nWaitTime: 接口超时时间, 单位毫秒
+ *return TRUE表示成功FALSE表示失败
+ */
+ public boolean CLIENT_GetFinancialCabinetState(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 获取当前电梯运行信息
+ *param[in] lLoginID: 登录句柄
+ *param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放 {@link NET_IN_GET_ELEVATOR_WORK_INFO}
+ *param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放 {@link NET_OUT_GET_ELEVATOR_WORK_INFO}
+ *param[in] nWaitTime: 接口超时时间, 单位毫秒
+ *return TRUE表示成功FALSE表示失败
+ */
+ public boolean CLIENT_GetElevatorWorkInfo(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 获取水质检测能力
+ *param[in] lLoginID 登录句柄
+ *param[in] pstuInParam 接口输入参数 {@link NET_IN_WATERDATA_STAT_SERVER_GETCAPS_INFO}
+ *param[out]pstuOutParam 接口输出参数 {@link NET_OUT_WATERDATA_STAT_SERVER_GETCAPS_INFO}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public LLong CLIENT_GetWaterDataStatServerCaps(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 水质检测实时数据获取
+ *param[in] lLoginID 登录句柄
+ *param[in] pstuInParam 接口输入参数 {@link NET_IN_WATERDATA_STAT_SERVER_GETDATA_INFO}
+ *param[out]pstuOutParam 接口输出参数 {@link NET_OUT_WATERDATA_STAT_SERVER_GETDATA_INFO}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public LLong CLIENT_GetWaterDataStatServerWaterData(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 开始水质检测报表数据查询
+ *param[in] lLoginID 登录句柄
+ *param[in] pstuInParam 接口输入参数 {@link NET_IN_START_FIND_WATERDATA_STAT_SERVER_INFO}
+ *param[out]pstuOutParam 接口输出参数 {@link NET_OUT_START_FIND_WATERDATA_STAT_SERVER_INFO}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public LLong CLIENT_StartFindWaterDataStatServer(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 水质检测报表数据查询
+ *param[in] lLoginID 登录句柄
+ *param[in] pstuInParam 接口输入参数 {@link NET_IN_DO_FIND_WATERDATA_STAT_SERVER_INFO}
+ *param[out]pstuOutParam 接口输出参数 {@link NET_OUT_DO_FIND_WATERDATA_STAT_SERVER_INFO}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public LLong CLIENT_DoFindWaterDataStatServer(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 停止水质检测报表数据查询
+ *param[in] lLoginID 登录句柄
+ *param[in] pstuInParam 接口输入参数 {@link NET_IN_STOP_FIND_WATERDATA_STAT_SERVER_INFO}
+ *param[out]pstuOutParam 接口输出参数 {@link NET_OUT_STOP_FIND_WATERDATA_STAT_SERVER_INFO}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public LLong CLIENT_StopFindWaterDataStatServer(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 获取设备状态, DMSS专用接口, pInParam与pOutParam内存由用户申请释放
+ *param[in] lLoginID 登录句柄
+ *param[in] pstuInParam 接口输入参数 {@link NET_IN_UNIFIEDINFOCOLLECT_GET_DEVSTATUS}
+ *param[out]pstuOutParam 接口输出参数 {@link NET_OUT_UNIFIEDINFOCOLLECT_GET_DEVSTATUS}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_GetUnifiedStatus(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 主从联动组, 操作接口,pInParam与pOutParam内存由用户申请释放,大小参照emOperateType对应的结构体
+ * param[in] lLoginID 登录句柄
+ * param[in] emOperateType 接口输入参数 ,参考枚举 {@link EM_MSGROUP_OPERATE_TYPE}
+ * param[in] pInParam 接口输入参数 ,参考枚举对应的入参
+ * param[out] pOutParam 接口输出参数 ,参考枚举对应的出参
+ * param[in] nWaitTime 接口超时时间,默认3000, 单位毫秒
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_OperateMasterSlaveGroup(LLong lLoginID,int emOperateType,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 获取token, pstuInParam与pstuOutParam内存由用户申请释放
+ *param[in] lLoginID 登录句柄
+ *param[in] pstuInParam 接口输入参数 {@link NET_IN_MAKE_TOKEN}
+ *param[out]pstuOutParam 接口输出参数 {@link NET_OUT_MAKE_TOKEN}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_MakeToken(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 获取共享文件夹工作目录信息
+ *param[in] lLoginID 登录句柄
+ *param[in] pstInParam 接口输入参数 {@link NET_IN_NAS_DIRECTORY_GET_INFO}
+ *param[out] pstOutParam 接口输出参数 {@link NET_OUT_NAS_DIRECTORY_GET_INFO}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_GetNASDirectoryInfo(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 根据文件路径获取外部导入文件信息
+ *param[in] lLoginID 登录句柄
+ *param[in] pstInParam 接口输入参数 {@link NET_IN_GET_FILE_INFO_BY_PATH_INFO}
+ *param[out] pstOutParam 接口输出参数 {@link NET_OUT_GET_FILE_INFO_BY_PATH_INFO}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_GetFileManagerExFileInfoByPath(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /***************************工装合规接口Start***************************************************/
+ /**
+ * 创建工装合规组
+ *param[in] lLoginID 登录句柄
+ *param[in] pInParam 接口输入参数 {@link NET_IN_CREATE_WORKSUIT_COMPARE_GROUP}
+ *param[out] pOutParam 接口输出参数 {@link NET_OUT_CREATE_WORKSUIT_COMPARE_GROUP}
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_CreateWorkSuitCompareGroup(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 删除工装合规组
+ *param[in] lLoginID 登录句柄
+ *param[in] pInParam 接口输入参数 {@link NET_IN_DELETE_WORKSUIT_COMPARE_GROUP}
+ *param[out] pOutParam 接口输出参数 {@link NET_OUT_DELETE_WORKSUIT_COMPARE_GROUP}
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_DeleteWorkSuitCompareGroup(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 查找工装合规组信息
+ *param[in] lLoginID 登录句柄
+ *param[in] pInParam 接口输入参数 {@link NET_IN_FIND_WORKSUIT_COMPARE_GROUP}
+ *param[out] pOutParam 接口输出参数 {@link NET_OUT_FIND_WORKSUIT_COMPARE_GROUP}
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_FindWorkSuitCompareGroup(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 批量添加工装合规样本
+ *param[in] lLoginID 登录句柄
+ *param[in] pInParam 接口输入参数 {@link NET_IN_MULTI_APPEND_TO_WORKSUIT_GROUP}
+ *param[out] pOutParam 接口输出参数 {@link NET_OUT_MULTI_APPEND_TO_WORKSUIT_GROUP}
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_MultiAppendToWorkSuitCompareGroup(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 通过全景图唯一标识符删除工装合规样本
+ *param[in] lLoginID 登录句柄
+ *param[in] pInParam 接口输入参数 {@link NET_IN_DELETE_WORKSUIT_BY_SOURCEUID}
+ *param[out] pOutParam 接口输出参数 {@link NET_OUT_DELETE_WORKSUIT_BY_SOURCEUID}
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_DeleteWorkSuitBySourceUID(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /***************************工装合规接口End***************************************************/
+ /**
+ * 区分报表查询, 单独实现一套全量查询数据接口
+ *param[in] lLoginID 登录句柄
+ *param[in] pstInParam 接口输入参数 {@link NET_IN_START_FIND_DETAIL_CLUSTER}
+ *param[out] pstOutParam 接口输出参数 {@link NET_OUT_START_FIND_DETAIL_CLUSTER}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_StartFindDetailNumberStatCluster(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 分批查询全量记录
+ *param[in] lLoginID 登录句柄
+ *param[in] pstInParam 接口输入参数 {@link NET_IN_DO_FIND_DETAIL_CLUSTER}
+ *param[out] pstOutParam 接口输出参数 {@link NET_OUT_DO_FIND_DETAIL_CLUSTER}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_DoFindDetailNumberStatCluster(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 停止查询
+ *param[in] lLoginID 登录句柄
+ *param[in] pstInParam 接口输入参数{@link NET_IN_STOP_FIND_DETAIL_CLUSTER_INFO}
+ *param[out] pstOutParam 接口输出参数 {@link NET_OUT_STOP_FIND_DETAIL_CLUSTER_INFO}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_StopFindDetailNumberStatCluster(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 平台主动获取设备聚档状态
+ *param[in] lLoginID 登录句柄
+ *param[in] pstInParam 接口输入参数{@link NET_IN_GET_CLUSTER_STATE_INFO}
+ *param[out] pstOutParam 接口输出参数{@link NET_OUT_GET_CLUSTER_STATE_INFO}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_GetClusterState(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 获取烟感数据
+ *param[in] lLoginID 登录句柄
+ *param[in] pstInParam 接口输入参数{@link NET_IN_GET_SMOKE_DATA}
+ *param[out] pstOutParam 接口输出参数{@link NET_OUT_GET_SMOKE_DATA}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_GetSmokeData(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 修改车辆组
+ *param[in] lLoginID 登录句柄
+ *param[in] pstInParam 接口输入参数{@link NET_IN_MODIFY_GROUP_FOR_VEHICLE_REG_DB}
+ *param[out] pstOutParam 接口输出参数{@link NET_OUT_MODIFY_GROUP_FOR_VEHICLE_REG_DB}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_ModifyGroupForVehicleRegisterDB(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 查找车辆组信息
+ *param[in] lLoginID 登录句柄
+ *param[in] pstInParam 接口输入参数{@link NET_IN_FIND_GROUP_FROM_VEHICLE_REG_DB}
+ *param[out] pstOutParam 接口输出参数{@link NET_OUT_FIND_GROUP_FROM_VEHICLE_REG_DB}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_FindGroupFormVehicleRegisterDB(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 修改车辆信息
+ *param[in] lLoginID 登录句柄
+ *param[in] pstInParam 接口输入参数{@link NET_IN_MODIFY_VEHICLE_FOR_VEHICLE_REG_DB}
+ *param[out] pstOutParam 接口输出参数{@link NET_OUT_MODIFY_VEHICLE_FOR_VEHICLE_REG_DB}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_ModifyVehicleForVehicleRegisterDB(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 删除车辆信息
+ *param[in] lLoginID 登录句柄
+ *param[in] pstInParam 接口输入参数{@link NET_IN_DELETE_VEHICLE_FROM_VEHICLE_REG_DB}
+ *param[out] pstOutParam 接口输出参数{@link NET_OUT_DELETE_VEHICLE_FROM_VEHICLE_REG_DB}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_DeleteVehicleFromVehicleRegisterDB(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 向指定注册库查询车辆
+ *param[in] lLoginID 登录句柄
+ *param[in] pstInParam 接口输入参数{@link NET_IN_START_FIND_VEHICLE_REG_DB}
+ *param[out] pstOutParam 接口输出参数{@link NET_OUT_START_FIND_VEHICLE_REG_DB}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_StartFindVehicleRegisterDB(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 获取车辆查询结果信息
+ *param[in] lLoginID 登录句柄
+ *param[in] pstInParam 接口输入参数{@link NET_IN_DO_FIND_VEHICLE_REG_DB}
+ *param[out] pstOutParam 接口输出参数{@link NET_OUT_DO_FIND_VEHICLE_REG_DB}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_DoFindVehicleRegisterDB(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 结束车辆查询
+ *param[in] lLoginID 登录句柄
+ *param[in] pstInParam 接口输入参数{@link NET_IN_STOP_FIND_VEHICLE_REG_DB}
+ *param[out] pstOutParam 接口输出参数{@link NET_OUT_STOP_FIND_VEHICLE_REG_DB}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_StopFindVehicleRegisterDB(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ *订阅陀螺仪数据接口回调函数原型, lAttachGyroHandle为CLIENT_AttachGyro接口的返回值
+ *param[out] lAttachGyroHandle 订阅句柄
+ *param[out] pstuGyroDataInfo 订阅的陀螺仪数据回调信息 {@link NET_NOTIFY_GYRO_DATA_INFO}
+ *param[out] dwUser 用户信息
+ *return void
+ */
+ public interface fNotifyGyroData extends Callback {
+ public void invoke(LLong lAttachGyroHandle,Pointer pstuGyroDataInfo,Pointer dwUser);
+ }
+
+ /**
+ * 订阅陀螺仪数据接口
+ *param[in] lLoginID 登录句柄
+ *param[in] pstuInParam 接口输入参数 {@link NET_IN_ATTACH_GYRO}
+ *param[out] pstuOutParam 接口输出参数 {@link NET_OUT_ATTACH_GYRO}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return 返回订阅句柄
+ */
+ public LLong CLIENT_AttachGyro(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 取消陀螺仪数据订阅接口
+ *param[in] lAttachHandle 订阅句柄
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_DetachGyro(LLong lAttachHandle);
+
+ /**
+ * 立体行为-视频统计信息回调函数原形,
+ * param[out] lAttachHandle 是 CLIENT_AttachVideoStatistics返回值
+ * param[out] emType 是枚举{@link NET_EM_VS_TYPE}的值
+ * param[out] pBuf 是对应结构体数据指针,参考枚举值描述
+ */
+ public interface fVideoStatisticsInfoCallBack extends Callback {
+ public void invoke(LLong lAttachHandle,int emType,Pointer pBuf,int dwBufLen,Pointer dwUser);
+ }
+
+ /**
+ * 订阅客流统计服务实时数据
+ *param[in] lLoginID 登录句柄
+ *param[in] pstuInParam 接口输入参数 {@link NET_IN_ATTACH_VIDEO_STATISTICS}
+ *param[out] pstuOutParam 接口输出参数 {@link NET_OUT_ATTACH_VIDEO_STATISTICS}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return 返回订阅句柄
+ */
+ public LLong CLIENT_AttachVideoStatistics(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 取消订阅客流统计服务实时数据
+ *param[in] lAttachHandle 订阅句柄
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_DetachVideoStatistics(LLong lAttachHandle);
+
+ /**
+ * 智能事件开始查询
+ *param[in] lLoginID 登录句柄
+ *param[in] pstInParam 接口输入参数 {@link NET_IN_IVSEVENT_FIND_INFO}
+ *param[out] pstOutParam 接口输出参数 {@link NET_OUT_IVSEVENT_FIND_INFO}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return 查询句柄 非0表示成功,0表示失败
+ */
+ public LLong CLIENT_IVSEventFind(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 智能事件信息查询
+ *param[in] lFindHandle 查询句柄
+ *param[in] pstInParam 接口输入参数 {@link NET_IN_IVSEVENT_NEXTFIND_INFO}
+ *param[out] pstOutParam 接口输出参数 {@link NET_OUT_IVSEVENT_NEXTFIND_INFO}
+ *param[in] nWaitTime 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_IVSEventNextFind(LLong lFindHandle,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 智能事件结束查询
+ *param[in] lFindHandle 查询句柄
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_IVSEventFindClose(LLong lFindHandle);
+
+ /**
+ * 按时间回放进度回调函数原形的扩展
+ * 参数recordfileinfoEx 指针对应结构体NET_RECORDFILE_INFOEX
+ */
+ public interface fTimeDownLoadPosCallBackEx extends Callback {
+ public void invoke(LLong lPlayHandle,int dwTotalSize,int dwDownLoadSize,int index,Pointer recordfileinfoEx,Pointer dwUser);
+ }
+
+ /**
+ * VK信息回调(pBuffer内存由SDK内部申请释放),dwError值可以dhnetsdk.h中找到相应的解释,比如NET_NOERROR,NET_ERROR_VK_INFO_DECRYPT_FAILED等
+ * 参数pBuffer指针对应结构体NET_VKINFO
+ */
+ public interface fVKInfoCallBack extends Callback {
+ public void invoke(LLong lRealHandle,Pointer pBuffer,int dwError,Pointer dwUser,Pointer pReserved);
+ }
+
+ /**
+ * 分压业务连接断线回调
+ *param[out] lSubBizHandle 分压业务sdk句柄, 由CLIENT_CreateSubBusinessModule接口返回
+ *param[out] lOperateHandle 业务句柄
+ *param[out] pstDisConnectInfo 断线回调数据 对应结构体NET_SUBBIZ_DISCONNECT_CALLBACK
+ *return void
+ */
+ public interface fSubBizDisConnectCallBack extends Callback {
+ public void invoke(LLong lSubBizHandle,LLong lOperateHandle,Pointer pstDisConnectInfo);
+ }
+
+ /**
+ * 订阅大图检测小图进度,配合CLIENT_FaceRecognitionDetectMultiFace使用, pstInParam与pstOutParam内存由用户申请释放
+ * param[in] pstuInParam 接口输入参数, 内存资源由用户申请和释放,{@link NET_IN_MULTIFACE_DETECT_STATE}
+ * param[out]pstuOutParam 接口输出参数, 内存资源由用户申请和释放,{@link NET_OUT_MULTIFACE_DETECT_STATE}
+ * param[in] nWaitTime 接口超时时间, 单位毫秒
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public LLong CLIENT_AttachDetectMultiFaceState(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 订阅大图检测小图进度回调函数原型,
+ * pstStates指针对应结构体NET_CB_MULTIFACE_DETECT_STATE
+ */
+ public interface fMultiFaceDetectState extends Callback {
+ public void invoke(LLong lAttachHandle,Pointer pstStates,Pointer dwUser);
+ }
+
+ /**
+ * 订阅大图检测小图进度回调函数原型
+ * pstStates指针对应结构体NET_CB_MULTIFACE_DETECT_STATE_EX
+ */
+ public interface fMultiFaceDetectStateEx extends Callback {
+ public void invoke(LLong lAttachHandle,Pointer pstStates,Pointer dwUser);
+ }
+
+ /**
+ * 开始目标检测/注册库的多通道查询
+ * param[in] lLoginID 登录句柄
+ * param[in] pstuInParam 接口输入参数, 内存资源由用户申请和释放,{@link NET_IN_STARTMULTIFIND_FACERECONGNITION_EX}
+ * param[out]pstuOutParam 接口输出参数, 内存资源由用户申请和释放,{@link NET_OUT_STARTMULTIFIND_FACERECONGNITION_EX}
+ * param[in] nWaitTime 接口超时时间, 单位毫秒
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_StartMultiFindFaceRecognitionEx(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 获取人脸查询结果信息
+ * param[in] pstuInParam 接口输入参数, 内存资源由用户申请和释放,{@link NET_IN_DOFIND_FACERECONGNITION_EX}
+ * param[out]pstuOutParam 接口输出参数, 内存资源由用户申请和释放,{@link NET_OUT_DOFIND_FACERECONGNITION_EX}
+ * param[in] nWaitTime 接口超时时间, 单位毫秒
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_DoFindFaceRecognitionEx(Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 向服务器提交多张大图,从中检测人脸图片, pstInParam与pstOutParam内存由用户申请释放
+ * param[in] pstuInParam 接口输入参数, 内存资源由用户申请和释放,{@link NET_IN_FACE_RECOGNITION_DETECT_MULTI_FACE_INFO}
+ * param[out]pstuOutParam 接口输出参数, 内存资源由用户申请和释放,{@link NET_OUT_FACE_RECOGNITION_DETECT_MULTI_FACE_INFO}
+ * param[in] nWaitTime 接口超时时间, 单位毫秒
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_FaceRecognitionDetectMultiFace(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 取消订阅大图检测小图进度, lAttachHandle为CLIENT_AttachDetectMultiFaceState 返回的句柄
+ */
+ public boolean CLIENT_DetachDetectMultiFaceState(LLong lAttachHandle);
+
+ /**
+ * 获取安检机安全等级信息,pstInParam与pstOutParam内存由用户申请释放
+ * param[in] pInParam 接口输入参数, 内存资源由用户申请和释放,{@link NET_IN_GET_XRAY_MULTILEVEL_DETECT_INFO}
+ * param[out]pOutParam 接口输出参数, 内存资源由用户申请和释放,{@link NET_OUT_GET_XRAY_MULTILEVEL_DETECT_INFO}
+ * param[in] nWaitTime 接口超时时间, 单位毫秒
+ */
+ public LLong CLIENT_GetXRayMultiLevelDetectCFG(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 设置安检机安全等级信息,pstInParam与pstOutParam内存由用户申请释放
+ * param[in] pInParam 接口输入参数, 内存资源由用户申请和释放,{@link NET_IN_SET_XRAY_MULTILEVEL_DETECT_INFO}
+ * param[out]pOutParam 接口输出参数, 内存资源由用户申请和释放,{@link NET_OUT_SET_XRAY_MULTILEVEL_DETECT_INFO}
+ * param[in] nWaitTime 接口超时时间, 单位毫秒
+ */
+ public LLong CLIENT_SetXRayMultiLevelDetectCFG(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 动环遥测数据订阅
+ * param[in] lLoginID 登录句柄
+ * param[in] pstInParam 接口输入参数,{@link NET_IN_ATTACH_SCADA_DATA_INFO}
+ * param[out] pstOutParam 接口输出参数,{@link NET_OUT_ATTACH_SCADA_DATA_INFO}
+ * param[in] nWaitTime 接口超时时间, 单位毫秒
+ * return 返回订阅句柄
+ */
+ public LLong CLIENT_AttachSCADAData(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 动环遥测数据退订
+ * param[in] lSCADADataHandle 订阅句柄
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_DetachSCADAData(LLong lSCADADataHandle);
+
+ /**
+ * 动环遥测数据订阅回调函数原型, lSCADADataHandle 为 CLIENT_AttachSCADAData 接口的返回值
+ * param[out] lSCADADataHandle 订阅句柄
+ * param[out] pstuSCADADataNotifyInfo 订阅的遥测数据,{@link NET_NOTIFY_SCADA_DATA_INFO}
+ * param[out] dwUser 用户信息
+ * return void
+ */
+ public interface fNotifySCADAData extends Callback {
+ public void invoke(LLong lSCADADataHandle,Pointer pstuSCADADataNotifyInfo,Pointer dwUser);
+ }
+
+ /**
+ * 订阅统计通道数据,pInParam与pOutParam内存由用户申请释放
+ * param[in] pInParam 接口输入参数, 内存资源由用户申请和释放,{@link NET_IN_ATTACH_VIDEOSTAT_STREAM}
+ * param[out]pOutParam 接口输出参数, 内存资源由用户申请和释放,{@link NET_OUT_ATTACH_VIDEOSTAT_STREAM}
+ * param[in] nWaitTime 接口超时时间, 单位毫秒
+ */
+ public LLong CLIENT_AttachVideoStatStream(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 统计通道数据回调函数,参数pBuf 指针对应结构体NET_CB_VIDEOSTAT_STREAM
+ */
+ public interface fVideoStatStreamCallBack extends Callback {
+ public void invoke(LLong lAttachHandle,Pointer pBuf,int nBufLen,Pointer dwUser);
+ }
+
+ /**
+ * 取消订阅统计通道数据, lAttachHandle为CLIENT_AttachVideoStatStream 返回的句柄
+ */
+ public boolean CLIENT_DetachVideoStatStream(LLong lAttachHandle);
+
+ /**
+ * 获取电视墙预案,pInParam与pOutParam内存由用户申请释放
+ * param[in] pInParam 接口输入参数, 内存资源由用户申请和释放,{@link com.netsdk.lib.structure.optimized.NET_IN_WM_GET_COLLECTIONS_V1}
+ * param[out]pOutParam 接口输出参数, 内存资源由用户申请和释放 {@link com.netsdk.lib.structure.optimized.NET_OUT_WM_GET_COLLECTIONS_V1}
+ * param[in] nWaitTime 接口超时时间, 单位毫秒
+ */
+ public boolean CLIENT_GetMonitorWallCollectionsV1(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 门禁设备开始捕获新卡
+ * param[in] pInParam 接口输入参数, 内存资源由用户申请和释放,{@link NET_IN_ACCESSCONTROL_CAPTURE_NEWCARD}
+ * param[out]pOutParam 接口输出参数, 内存资源由用户申请和释放 {@link NET_OUT_ACCESSCONTROL_CAPTURE_NEWCARD}
+ * param[in] nWaitTime 接口超时时间, 单位毫秒
+ */
+ public boolean CLIENT_AccessControlCaptureNewCard(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 门禁人证设备获取人脸
+ * param[in] pInParam 接口输入参数, 内存资源由用户申请和释放,{@link NET_IN_ACCESSCONTROL_CAPTURE_CMD}
+ * param[out]pOutParam 接口输出参数, 内存资源由用户申请和释放 {@link NET_OUT_ACCESSCONTROL_CAPTURE_CMD}
+ * param[in] nWaitTime 接口超时时间, 单位毫秒
+ */
+ public boolean CLIENT_AccessControlCaptureCmd(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 订阅智能分析结果
+ * param[in] lLoginID 登录句柄
+ * param[in] pstInParam 接口输入参数,{@link NET_IN_ATTACH_VIDEO_ANALYSE_ANALYSE_PROC}
+ * param[out] pstOutParam 接口输出参数,{@link NET_OUT_ATTACH_VIDEO_ANALYSE_ANALYSE_PROC}
+ * param[in] nWaitTime 接口超时时间, 单位毫秒
+ * return 返回订阅句柄
+ */
+ public LLong CLIENT_AttachVideoAnalyseAnalyseProc(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 取消订阅智能分析结果
+ * param[in] lAttachHandle 订阅句柄
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_DetachVideoAnalyseAnalyseProc(LLong lAttachHandle);
+
+ /**
+ * 智能分析结果的回调函数
+ * param[out] lAttachHandle 订阅句柄
+ * param[out] pstuVideoAnalyseTrackProc 智能分析结果的信息,{@link NET_VIDEO_ANALYSE_ANALYSE_PROC}
+ * param[out] dwUser 用户信息
+ * return void
+ */
+ public interface fVideoAnalyseAnalyseProc extends Callback {
+ public void invoke(LLong lAttachHandle,Pointer pstuVideoAnalyseTrackProc,Pointer dwUser);
+ }
+
+ /**
+ * 开始升级设备程序--扩展支持G以上文件升级
+ */
+ public LLong CLIENT_StartUpgradeEx2(LLong lLoginID,int emType,Pointer pchFileName,fUpgradeCallBackEx cbUpgrade,Pointer dwUser);
+
+ /**
+ * 报警主机设置操作
+ * param[in] lLoginID 登录句柄
+ * param[in] emType 设置的操作类型,{@link NET_EM_SET_ALARMREGION_INFO}
+ * param[in] pstuInParam 枚举对应的入参
+ * param[out] pstuOutParam 枚举对应的出参
+ * param[in] nWaitTime 接口超时时间, 单位毫秒
+ * return void
+ */
+ public boolean CLIENT_SetAlarmRegionInfo(LLong lLoginID,int emType,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 获取设备序列号
+ * param[in] lLoginID 登录句柄
+ * param[in] pstInParam 接口输入参数,{@link NET_IN_GET_DEVICESERIALNO_INFO}
+ * param[out] pstOutParam 接口输出参数,{@link NET_OUT_GET_DEVICESERIALNO_INFO}
+ * param[in] nWaitTime 接口超时时间, 单位毫秒
+ * return void
+ */
+ public boolean CLIENT_GetDeviceSerialNo(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * 获取设备类型
+ * param[in] lLoginID 登录句柄
+ * param[in] pstInParam 接口输入参数,{@link NET_IN_GET_DEVICETYPE_INFO}
+ * param[out] pstOutParam 接口输出参数,{@link NET_OUT_GET_DEVICETYPE_INFO}
+ * param[in] nWaitTime 接口超时时间, 单位毫秒
+ * return void
+ */
+ public boolean CLIENT_GetDeviceType(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * RPC测试
+ *param[in] lLoginID: 登录句柄
+ *param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放,参考{@link NET_IN_TRANSMIT_CMD}
+ *param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放,参考{@link NET_OUT_TRANSMIT_CMD}
+ *param[in] nWaitTime: 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_TransmitCmd(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 手动测试
+ *param[in] lLoginID: 登录句柄
+ *param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放,参考{@link NET_IN_MANUAL_TEST}
+ *param[out]pstuOutParam: 接口输出参数, 内存资源由用户申请和释放,参考{@link NET_OUT_MANUAL_TEST}
+ *param[in] nWaitTime: 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_ManualTest(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 添加报警用户
+ *param[in] lLoginID: 登录句柄
+ *param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放,参考{@link NET_IN_ADD_ALARM_USER}
+ *param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放,参考{@link NET_OUT_ADD_ALARM_USER}
+ *param[in] nWaitTime: 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_AddAlarmUser(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 修改报警用户
+ *param[in] lLoginID: 登录句柄
+ *param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放,参考{@link NET_IN_MODIFY_ALARM_USER}
+ *param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放,参考{@link NET_OUT_MODIFY_ALARM_USER}
+ *param[in] nWaitTime: 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_ModifyAlarmUser(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 修改报警用户密码
+ *param[in] lLoginID: 登录句柄
+ *param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放,参考{@link NET_IN_MODIFY_ALARM_USER_PASSWORD}
+ *param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放,参考{@link NET_OUT_MODIFY_ALARM_USER_PASSWORD}
+ *param[in] nWaitTime: 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_ModifyAlarmUserPassword(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 删除报警用户
+ *param[in] lLoginID: 登录句柄
+ *param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放,参考{@link NET_IN_DELETE_ALARM_USER}
+ *param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放,参考{@link NET_OUT_DELETE_ALARM_USER}
+ *param[in] nWaitTime: 接口超时时间, 单位毫秒
+ *return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_DeleteAlarmUser(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 订阅无线对码信息接口,pstInParam与pstOutParam内存由用户申请释放
+ *param[in] lLoginID: 登录句柄
+ *param[in] pstInParam: 接口输入参数, 内存资源由用户申请和释放,参考{@link NET_IN_ATTACH_LOWRATEWPAN}
+ *param[out] pstOutParam: 接口输出参数, 内存资源由用户申请和释放,参考{@link NET_OUT_ATTACH_LOWRATEWPAN}
+ *param[in] nWaitTime: 接口超时时间, 单位毫秒
+ *return 返回订阅句柄
+ */
+ public LLong CLIENT_AttachLowRateWPAN(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 订阅无线对码信息回调函数原形,lAttachHandle是CLIENT_AttachLowRateWPAN返回值
+ *param[out] lLoginID 登录句柄
+ *param[out] lAttachHandle 订阅句柄
+ *param[out] lAttachHandle 对码信息, 参考{@link NET_CODEID_INFO}
+ *param[out] emError 对码错误类型, 参考{@link NET_CODEID_ERROR_TYPE}
+ *param[out] dwUser 用户数据
+ */
+ public interface fAttachLowRateWPANCB extends Callback {
+ public void invoke(LLong lLoginID,LLong lAttachHandle,Pointer stuBuf,int emError,Pointer dwUser);
+ }
+
+ /**
+ * 取消订阅无线对码信息接口,lAttachHandle是CLIENT_AttachLowRateWPAN返回值
+ * param[in] lAttachHandle 订阅句柄
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_DetachLowRateWPAN(LLong lAttachHandle);
+
+ /**
+ * 获取画面中心位置目标的距离,pInBuf与pOutBuf内存由用户申请释放
+ * param[out] pInBuf 接口输入参数,{@link NET_IN_GET_LASER_DISTANCE}
+ * param[out] pOutBuf 接口输出参数,{@link NET_OUT_GET_LASER_DISTANCE}
+ * param[out] nWaitTime 接口超时时间, 单位毫秒
+ * return void
+ */
+ public boolean CLIENT_GetLaserDistance(LLong lLoginID,Pointer pInBuf,Pointer pOutBuf,int nWaitTime);
+
+ /**
+ * 获取已添加的设备状态
+ * param[in] lLoginID: 登录句柄
+ * param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放,参考{ @link NET_IN_GET_DEVICE_INFO_EX}
+ * param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放,参考{ @link NET_OUT_GET_DEVICE_INFO_EX}
+ * param[in] nWaitTime: 接口超时时间, 单位毫秒
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_GetDeviceInfoEx(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 获取目标检测令牌
+ * param[in] lLoginID: 登录句柄
+ * param[in] pInParam: 接口输入参数, 内存资源由用户申请和释放,参考{ @link NET_IN_FACERSERVER_GETDETEVTTOKEN}
+ * param[out] pOutParam: 接口输出参数, 内存资源由用户申请和释放,参考{ @link NET_OUT_FACERSERVER_GETDETEVTTOKEN}
+ * param[in] nWaitTime: 接口超时时间, 单位毫秒
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_FaceRServerGetDetectToken(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 查询设备日志条数(pInParam, pOutParam内存由用户申请释放)
+ * * param[in] lLoginID: 登录句柄
+ * * param[in] pInParam: 接口输入参数, 内存资源由用户申请和释放,参考{@link NET_IN_GETCOUNT_LOG_PARAM}
+ * * param[out] pOutParam: 接口输出参数, 内存资源由用户申请和释放,参考{@link NET_OUT_GETCOUNT_LOG_PARAM}
+ * * param[in] nWaitTime: 接口超时时间, 单位毫秒
+ */
+ public boolean CLIENT_QueryDevLogCount(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int waittime);
+
+ /**
+ * 设置状态信息接口
+ * param[in] lLoginID: 登录句柄
+ * param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放,参考{ @link NET_IN_SET_STATEMANAGER_INFO}
+ * param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放,参考{ @link NET_OUT_SET_STATEMANAGER_INFO}
+ * param[in] nWaitTime: 接口超时时间, 单位毫秒
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_SetStateManager(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 获取状态信息接口
+ * param[in] lLoginID: 登录句柄
+ * param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放,参考{ @link NET_IN_GET_STATEMANAGER_INFO}
+ * param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放,参考{ @link NET_OUT_GET_STATEMANAGER_INFO}
+ * param[in] nWaitTime: 接口超时时间, 单位毫秒
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_GetStateManager(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 定位录像回放起始点
+ */
+ public boolean CLIENT_SeekPlayBack(LLong lPlayHandle,int offsettime,int offsetbyte);
+
+ /**
+ * 按时间定位回放起始点
+ */
+ public boolean CLIENT_SeekPlayBackByTime(LLong lPlayHandle,NET_TIME lpSeekTime);
+
+ /**
+ * 多通道预览回放(pParam内存由用户申请释放)
+ */
+ public LLong CLIENT_MultiPlayBack(LLong lLoginID,Pointer pParam);
+
+ /**
+ * 操作设备标定信息
+ * param[in] lLoginID: 登录句柄
+ * param[in] emType: 入参枚举,决定后续指针参数类型,参考{@link EM_CALIBRATEINFO_OPERATE_TYPE}
+ * param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放,参考{@link EM_CALIBRATEINFO_OPERATE_TYPE}
+ * param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放,参考{@link EM_CALIBRATEINFO_OPERATE_TYPE}
+ * param[in] nWaitTime: 接口超时时间, 单位毫秒
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_OperateCalibrateInfo(LLong lLoginID,int emType,Pointer pStuInParam,Pointer pStuOutParam,int nWaitTime);
+
+ /**
+ * 订阅云台可视域回调函数原型, pBuf -> {@link DH_OUT_PTZ_VIEW_RANGE_STATUS}
+ */
+ public interface fViewRangeStateCallBack extends Callback {
+ public void invoke(LLong lLoginID,LLong lAttachHandle,Pointer pBuf,int nBufLen,Pointer dwUser);
+ }
+
+ /**
+ * 订阅云台可视域,pstuInViewRange与pstuOutViewRange内存由用户申请释放
+ * {@link NET_IN_VIEW_RANGE_STATE},{@link NET_OUT_VIEW_RANGE_STATE}
+ */
+ public LLong CLIENT_AttachViewRangeState(LLong lLoginID,Pointer pstuInViewRange,Pointer pstuOutViewRange,int nWaitTime);
+
+ /**
+ * 停止订阅云台可视域,lAttachHandle是CLIENT_AttachViewRangeState返回值
+ */
+ public boolean CLIENT_DetachViewRangeState(LLong lAttachHandle);
+
+ /**
+ * 开始查询日志(目前只支持门禁BSC系列,支持报警主机日志分类查询),pInParam与pOutParam内存由用户申请释放
+ * param[in] lLoginID: 登录句柄
+ * param[in] pInParam: 接口输入参数, 内存资源由用户申请和释放,参考{ @link NET_IN_START_QUERYLOG}
+ * param[out] pOutParam: 接口输出参数, 内存资源由用户申请和释放,参考{ @link NET_OUT_START_QUERYLOG}
+ * param[in] nWaitTime: 接口超时时间, 单位毫秒
+ * return 返回查询句柄
+ */
+ public LLong CLIENT_StartQueryLog(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 获取日志(目前只支持门禁BSC系列),pInParam与pOutParam内存由用户申请释放
+ * param[in] lLogID: 查询句柄,CLIENT_StartQueryLog的返回值
+ * param[in] pInParam: 接口输入参数, 内存资源由用户申请和释放,参考{ @link NET_IN_QUERYNEXTLOG}
+ * param[out] pOutParam: 接口输出参数, 内存资源由用户申请和释放,参考{ @link NET_OUT_QUERYNEXTLOG}
+ * param[in] nWaitTime: 接口超时时间, 单位毫秒
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_QueryNextLog(LLong lLogID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 结束查询日志(目前只支持门禁BSC系列)
+ * param[in] lLogID: 查询句柄,CLIENT_StartQueryLog的返回值
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_StopQueryLog(LLong lLogID);
+
+ /**
+ * 获取窗口位置(pInparam, pOutParam内存由用户申请释放)
+ * param[in] lLoginID: 登录句柄
+ * param[in] pInParam: 接口输入参数, 内存资源由用户申请和释放,参考{ @link DH_IN_SPLIT_GET_RECT}
+ * param[out] pOutParam: 接口输出参数, 内存资源由用户申请和释放,参考{ @link DH_OUT_SPLIT_GET_RECT}
+ * param[in] nWaitTime: 接口超时时间, 单位毫秒
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_GetSplitWindowRect(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 设置窗口位置(pInparam, pOutParam内存由用户申请释放)
+ * param[in] lLoginID: 登录句柄
+ * param[in] pInParam: 接口输入参数, 内存资源由用户申请和释放,参考{ @link DH_IN_SPLIT_SET_RECT}
+ * param[out] pOutParam: 接口输出参数, 内存资源由用户申请和释放,参考{ @link DH_OUT_SPLIT_SET_RECT}
+ * param[in] nWaitTime: 接口超时时间, 单位毫秒
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_SetSplitWindowRect(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 设置窗口次序(pInparam, pOutParam内存由用户申请释放)
+ * param[in] lLoginID: 登录句柄
+ * param[in] pInParam: 接口输入参数, 内存资源由用户申请和释放,参考{@link DH_IN_SPLIT_SET_TOP_WINDOW}
+ * param[out] pOutParam: 接口输出参数, 内存资源由用户申请和释放,参考{@link DH_OUT_SPLIT_SET_TOP_WINDOW}
+ * param[in] nWaitTime: 接口超时时间, 单位毫秒
+ * return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_SetSplitTopWindow(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * 获取网卡信息(lpInParam, lpOutParam内存由用户申请释放,大小参照emType对应的结构体)
+ */
+ public boolean CLIENT_QueryNetStat(LLong lLoginID,int emType,Pointer lpInParam,int nInParamLen,Pointer lpOutParam,int nOutParamLen,Pointer pError,int nWaitTime);
+
+ /**
+ * 订阅统计区域内的车辆数据或者排队长度信息,pstInParam与pstOutParam内存由用户申请释放
+ */
+ public LLong CLIENT_AttachVehiclesDistributionData(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam);
+
+ /**
+ * 取消订阅统计区域内的车辆数据或者排队长度信息,pstInParam与pstOutParam内存由用户申请释放
+ */
+ public boolean CLIENT_DetachVehiclesDistributionData(LLong lAttachHandle);
+
+ /**
+ * 接口 CLIENT_AttachVehiclesDistributionData 回调函数,pBuf是json和图片数据,nBufLen是pBuf相应长度,用于转发服务
+ */
+ public interface fNotifyVehiclesDistributionData extends Callback {
+ public int invoke(LLong lVehiclesHandle,Pointer pDiagnosisInfo,Pointer dwUser);
+ }
+
+ /**
+ * @param pInParam: 参考{@link com.netsdk.lib.structure.NET_IN_RADIOMETRY_CURRENTHOTCOLDSPOT_INFO}
+ * @param pOutParam: 参考{@link com.netsdk.lib.structure.NET_OUT_RADIOMETRY_CURRENTHOTCOLDSPOT_INFO}
+ * @description 获取热成像当前冷(最低的温度)、热(最高的温度)点信息
+ */
+ public boolean CLIENT_RadiometryGetCurrentHotColdSpotInfo(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * @param pstuInParam: 参考{@link com.netsdk.lib.structure.NET_IN_SET_ZONE_ARMODE_INFO}
+ * @param pstuOutParam: 参考{@link com.netsdk.lib.structure.NET_OUT_SET_ZONE_ARMODE_INFO}
+ * @description 设置单防区布撤防状态
+ * @description param[in] lLoginID 登录句柄
+ * @description param[in] pstuInParam 接口入参
+ * @description param[out] pstuOutParam 接口出参
+ * @description param[in] nWaitTime 接口超时时间, 单位毫秒
+ * @description return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_SetZoneArmMode(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * @param pstuInParam: 参考{@link com.netsdk.lib.structure.NET_IN_GET_ZONE_ARMODE_INFO}
+ * @param pstuOutParam: 参考{@link com.netsdk.lib.structure.NET_OUT_GET_ZONE_ARMODE_INFO}
+ * @description 获取单防区布撤防状态
+ * @description param[in] lLoginID 登录句柄
+ * @description param[in] pstuInParam 接口入参
+ * @description param[out] pstuOutParam 接口出参
+ * @description param[in] nWaitTime 接口超时时间, 单位毫秒
+ * @description return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_GetZoneArmMode(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * @description 智能分析结果的回调函数
+ * @description param[out] lAttachHandle 订阅句柄
+ * @description param[out] pstuVideoAnalyseTrackProc 智能分析结果的信息
+ * @description param[out] dwUser 用户信息
+ * @description return void
+ */
+ public interface fVehicleInOutAnalyseProc extends Callback {
+/**
+ * @param lAttachHandle
+ * @param pstuVehicleInOutAnalyseProc: 参考{@link com.netsdk.lib.structure.NET_VEHICLE_INOUT_ANALYSE_PROC}
+ * @param dwUser
+ */
+ public void invoke(LLong lAttachHandle,Pointer pstuVehicleInOutAnalyseProc,Pointer dwUser);
+ }
+
+ /**
+ * @param pstuInParam: 参考{@link com.netsdk.lib.structure.NET_IN_ATTACH_TRAFFIC_FLOW_STAT_REAL_FLOW}
+ * @param pstuOutParam: 参考{@link com.netsdk.lib.structure.NET_OUT_ATTACH_TRAFFIC_FLOW_STAT_REAL_FLOW}
+ * @description 订阅交通流量统计
+ * @description param[in] lLoginID 登录句柄
+ * @description param[in] pstInParam 接口输入参数
+ * @description param[out] pstOutParam 接口输出参数
+ * @description param[in] nWaitTime 接口超时时间, 单位毫秒
+ * @description return 返回订阅句柄
+ */
+ public LLong CLIENT_AttachTrafficFlowStatRealFlow(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * @description 取消订阅交通流量统计
+ * @description param[in] lAttachHandle 订阅句柄
+ * @description return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_DetachTrafficFlowStatRealFlow(LLong lAttachHandle);
+
+ /**
+ * @param pstuInParam: 参考{@link com.netsdk.lib.structure.NET_IN_SET_BIND_MODE_INFO}
+ * @param pstuOutParam: 参考{@link com.netsdk.lib.structure.NET_OUT_SET_BIND_MODE_INFO}
+ * @description 设置绑定模式
+ * @description param[in] lLoginID 登录句柄
+ * @description param[in] pstuInParam 接口入参
+ * @description param[out] pstuOutParam 接口出参
+ * @description param[in] nWaitTime 接口超时时间, 单位毫秒
+ * @description return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_SetBindMode(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * @param pstuInParam: 参考{@link com.netsdk.lib.structure.NET_IN_GET_BIND_MODE_INFO}
+ * @param pstuOutParam: 参考{@link com.netsdk.lib.structure.NET_OUT_GET_BIND_MODE_INFO}
+ * @description 获取绑定模式
+ * @description param[in] lLoginID 登录句柄
+ * @description param[in] pstuInParam 接口入参
+ * @description param[out] pstuOutParam 接口出参
+ * @description param[in] nWaitTime 接口超时时间, 单位毫秒
+ * @description return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_GetBindMode(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * @param pstInParam: 参考{@link com.netsdk.lib.structure.NET_IN_ATTACH_VIDEO_ANALYSE_TRACK_PROC}
+ * @param pstOutParam: 参考{@link com.netsdk.lib.structure.NET_OUT_ATTACH_VIDEO_ANALYSE_TRACK_PROC}
+ * @description 订阅外部轨迹
+ * @description param[in] lLoginID 登录句柄
+ * @description param[in] pstInParam 接口输入参数
+ * @description param[out]pstOutParam 接口输出参数
+ * @description param[in] nWaitTime 接口超时时间, 单位毫秒
+ * @description return 订阅句柄
+ */
+ public LLong CLIENT_AttachVideoAnalyseTrackProc(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * @param pstuVideoAnalyseTrackProc: 参考{@link com.netsdk.lib.structure.NET_VIDEO_ANALYSE_TRACK_PROC}
+ * @description 外部轨迹的回调函数
+ */
+ public interface fVideoAnalyseTrackProc extends Callback {
+ public void invoke(LLong lAttachHandle,Pointer pstuVideoAnalyseTrackProc,Pointer dwUser);
+ }
+
+ /**
+ * @description 取消订阅外部轨迹
+ * @description param[in] lAttachHandle 订阅句柄
+ * @description return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_DetachVideoAnalyseTrackProc(LLong lAttachHandle);
+
+ /**
+ * @param pstuInParam: 参考{@link com.netsdk.lib.structure.NET_IN_GET_GPS_STATUS_INFO}
+ * @param pstuOutParam: 参考{@link com.netsdk.lib.structure.NET_OUT_GET_GPS_STATUS_INFO}
+ * @description 获取GPS定位信息
+ * @description param[in] lLoginID 登录句柄
+ * @description param[in] pstuInParam 接口入参
+ * @description param[out] pstuOutParam 接口出参
+ * @description param[in] nWaitTime 接口超时时间, 单位毫秒
+ * @description return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_GetGpsStatus(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * @param pstuInParam: 参考{@link com.netsdk.lib.structure.NET_IN_PTZ_SET_ZOOM_VALUE}
+ * @param pstuOutParam: 参考{@link com.netsdk.lib.structure.NET_OUT_PTZ_SET_ZOOM_VALUE}
+ * @description 设置云台变倍
+ * @description param[in] lLoginID: 登录句柄
+ * @description param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
+ * @description param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
+ * @description param[in] nWaitTime: 接口超时时间, 单位毫秒
+ * @description return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_PTZSetZoomValue(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * @param pstuInParam: 参考{@link com.netsdk.lib.structure.NET_IN_SET_VTO_MANAGER_RELATION}
+ * @param pstuOutParam: 参考{@link com.netsdk.lib.structure.NET_OUT_SET_VTO_MANAGER_RELATION}
+ * @description 设置组织节点表
+ * @description param[in] lLoginID 登录句柄
+ * @description param[in] pstuInParam 接口入参
+ * @description param[out] pstuOutParam 接口出参
+ * @description param[in] nWaitTime 接口超时时间, 单位毫秒
+ * @description return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_SetVTOManagerRelation(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * @param pstuInParam: 参考{@link com.netsdk.lib.structure.NET_IN_GET_VTO_MANAGER_RELATION}
+ * @param pstuOutParam: 参考{@link com.netsdk.lib.structure.NET_OUT_GET_VTO_MANAGER_RELATION}
+ * @description 获取组织树节点
+ * @description param[in] lLoginID 登录句柄
+ * @description param[in] pstuInParam 接口入参
+ * @description param[out] pstuOutParam 接口出参
+ * @description param[in] nWaitTime 接口超时时间, 单位毫秒
+ * @description return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_GetVTOManagerRelation(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * @param pstInParam: 参考{@link com.netsdk.lib.structure.NET_IN_ADD_SOFT_TOUR_POINT_INFO}
+ * @param pstOutParam: 参考{@link com.netsdk.lib.structure.NET_OUT_ADD_SOFT_TOUR_POINT_INFO}
+ * @description 增加软巡航预置点
+ * @description param[in] lLoginID 登录句柄
+ * @description param[in] pstInParam 接口输入参数
+ * @description param[out] pstOutParam 接口输出参数
+ * @description param[in] nWaitTime 接口超时时间, 单位毫秒
+ * @description return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_AddSoftTourPoint(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * @param pstInParam: 参考{@link com.netsdk.lib.structure.NET_IN_REMOVE_SOFT_TOUR_POINT_INFO}
+ * @param pstOutParam: 参考{@link com.netsdk.lib.structure.NET_OUT_REMOVE_SOFT_TOUR_POINT_INFO}
+ * @description 清除软巡航预置点
+ * @description param[in] lLoginID 登录句柄
+ * @description param[in] pstInParam 接口输入参数
+ * @description param[out] pstOutParam 接口输出参数
+ * @description param[in] nWaitTime 接口超时时间, 单位毫秒
+ * @description return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_RemoveTourPoint(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * @param pstuInParam: 参考{@link com.netsdk.lib.structure.NET_IN_INSERT_MULTI_TALK_DEV}
+ * @param pstuOutParam: 参考{@link com.netsdk.lib.structure.NET_OUT_INSERT_MULTI_TALK_DEV}
+ * @description 下发设备信息
+ * @description param[in] lLoginID 登录句柄
+ * @description param[in] pstuInParam 接口入参
+ * @description param[out] pstuOutParam 接口出参
+ * @description param[in] nWaitTime 接口超时时间, 单位毫秒
+ * @description return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_InsertMultiTalkDev(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * @param pstuInParam: 参考{@link com.netsdk.lib.structure.NET_IN_UPDATE_MULTI_TALK_DEV}
+ * @param pstuOutParam: 参考{@link com.netsdk.lib.structure.NET_OUT_UPDATE_MULTI_TALK_DEV}
+ * @description 批量更新设备信息接口
+ * @description param[in] lLoginID 登录句柄
+ * @description param[in] pstuInParam 接口入参
+ * @description param[out] pstuOutParam 接口出参
+ * @description param[in] nWaitTime 接口超时时间, 单位毫秒
+ * @description return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_UpdateMultiTalkDev(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * @param pstuInParam: 参考{@link com.netsdk.lib.structure.NET_IN_DO_FIND_TALK_DEV}
+ * @param pstuOutParam: 参考{@link com.netsdk.lib.structure.NET_OUT_DO_FIND_TALK_DEV}
+ * @description 执行信息查询, lFindID为CLIENT_StartFindTalkDev接口返回的查找ID
+ * @description param[in] lFindID 查询句柄
+ * @description param[in] pstuInParam 接口输入参数
+ * @description param[out]pstuOutParam 接口输出参数
+ * @description param[in] nWaitTime 接口超时时间, 单位毫秒
+ * @description return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_DoFindTalkDev(LLong lFindID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * 录像下载--扩展Ex3接口,将所有参数整合在一个结构体,方便后续扩展
+ * @param lLoginID 登录句柄
+ * @param pstuInParam: 参考{@link com.netsdk.lib.structure.NET_IN_DOWNLOAD}
+ * @param pstuOutParam: 参考{@link com.netsdk.lib.structure.NET_OUT_DOWNLOAD}
+ * @param dwWaitTime 接口超时时间, 单位毫秒
+ * @return 下载句柄
+ */
+ public LLong CLIENT_DownloadByRecordFileEx3(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * @param pstInParam: 参考{@link com.netsdk.lib.structure.NET_IN_ATTACH_HYGROTHERMOGRAPH}
+ * @param pstOutParam: 参考{@link com.netsdk.lib.structure.NET_OUT_ATTACH_HYGROTHERMOGRAPH}
+ * @description 订阅温湿度实时检测数据
+ * @description param[in] lLoginID 登录句柄
+ * @description param[in] pstInParam 接口输入参数
+ * @description param[out]pstOutParam 接口输出参数
+ * @description param[in] nWaitTime 接口超时时间, 单位毫秒
+ * @description return 返回订阅句柄
+ */
+ public LLong CLIENT_AttachHygrothermograph(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * @param pstuHygrothermographInfo: 参考{@link com.netsdk.lib.structure.NET_HYGROTHERMOGRAPH_INFO}
+ * @description 订阅温湿度实时检测数据回调函数原型, lHygrothermographHandle为CLIENT_AttachHygrothermograph接口的返回值
+ * @description param[out] lHygrothermographHandle 订阅句柄
+ * @description param[out] pstuHygrothermographInfo 订阅温湿度实时检测数据回调信息
+ * @description param[out] dwUser 用户信息
+ * @description return void
+ */
+ public interface fNotifyHygrothermograph extends Callback {
+ public void invoke(LLong lHygrothermographHandle,Pointer pstuHygrothermographInfo,Pointer dwUser);
+ }
+
+ /**
+ * @description 退订温湿度实时检测数据
+ * @description param[in] lHygrothermographHandle 订阅句柄
+ * @description return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_DetachHygrothermograph(LLong lHygrothermographHandle);
+
+ /**
+ * @description 查询录像下载进度
+ * @description param[in] lFileHandle 下载句柄
+ * @description param[out] nTotalSize 总文件大小
+ * @description param[out] nDownLoadSize 已下载文件大小
+ * @description return TRUE表示成功 FALSE表示失败
+ */
+ public boolean CLIENT_GetDownloadPos(LLong lFileHandle,Pointer nTotalSize,Pointer nDownLoadSize);
+
+ /**
+ * @brief 二次录像分析实时结果订阅函数原型
+ * @param pstAnalyseResultInfo , 参考结构体定义 {@link com.netsdk.lib.structure.NET_CB_ANALYSE_RESULT_INFO)
+ */
+ public interface fAnalyseResultCallBack extends Callback {
+ public int invoke(LLong lAnalyseHandle,Pointer pstAnalyseResultInfo,Pointer pBuffer,int dwBufSize);
+ }
+
+ /**
+ * @brief 测温温度数据状态回调函数
+ * @param pBuf , 参考结构体定义 {@link com.netsdk.lib.structure.NET_RADIOMETRY_TEMPER_DATA)
+ */
+ public interface fRadiometryAttachTemperCB extends Callback {
+ public void invoke(LLong lAttachTemperHandle,Pointer pBuf,int nBufLen,Pointer dwUser);
+ }
+
+ /**
+ * @brief 订阅气象信息回调函数原型
+ * @param pBuf , 参考结构体定义 {@link com.netsdk.lib.structure.NET_WEATHER_INFO)
+ */
+ public interface fWeatherInfoCallBack extends Callback {
+ public void invoke(LLong lLoginID,LLong lAttachHandle,Pointer pBuf,int nBufLen,Pointer dwUser);
+ }
+
+ /**
+ * @brief 订阅电梯内实时数据接口回调函数原型, lAttachHandle 为 CLIENT_AttachElevatorFloorCounter 接口的返回值
+ * @param pstuElevatorFloorCounterInfo , 参考结构体定义 {@link com.netsdk.lib.structure.NET_NOTIFY_ELEVATOR_FLOOR_COUNTER_INFO)
+ */
+ public interface fNotifyElevatorFloorCounterdata extends Callback {
+ public void invoke(LLong lAttachHandle,Pointer pstuElevatorFloorCounterInfo,Pointer dwUser);
+ }
+
+ /**
+ * @brief 事件详细信息回调
+ * @param pstuNotifyIVSEventDetailInfo , 参考结构体定义 {@link com.netsdk.lib.structure.NET_NOTIFY_IVSEVENT_DETAIL_INFO)
+ */
+ public interface fNotifyIVSEventDetail extends Callback {
+ public void invoke(Pointer pstuNotifyIVSEventDetailInfo,Pointer dwUser);
+ }
+
+ /**
+ * @brief 收到低功耗设备保活包回调函数原型
+ * @param pstLowPowerKeepAliveCallBackInfo , 参考结构体定义 {@link com.netsdk.lib.structure.NET_LOW_POWER_KEEPALIVE_CALLBACK_INFO)
+ */
+ public interface fLowPowerKeepAliveCallBack extends Callback {
+ public void invoke(LLong lLowPowerHandle,Pointer pstLowPowerKeepAliveCallBackInfo);
+ }
+
+ /**
+ * @brief 订阅历史库以图搜图回调函数原型, lAttachHandle为CLIENT_AttachResultOfFindHistoryByPic接口的返回值
+ * @param pstesult , 参考结构体定义 {@link com.netsdk.lib.structure.NET_CB_RESULT_OF_FIND_HISTORY_BYPIC)
+ */
+ public interface fResultOfFindHistory extends Callback {
+ public void invoke(LLong lAttachHandle,Pointer pstesult,Pointer pBinBuf,int nBinBufLen,Pointer dwUser);
+ }
+
+ /**
+ * @brief 订阅485实时数据接口回调函数原型, lAttachHandle 为 CLIENT_AttachIotboxComm 接口的返回值
+ * @param pstuIotboxComm , 参考结构体定义 {@link com.netsdk.lib.structure.NET_NOTIFY_IOTBOX_COMM)
+ */
+ public interface fNotifyIotboxRealdata extends Callback {
+ public void invoke(LLong lAttachHandle,Pointer pstuIotboxComm,Pointer dwUser);
+ }
+
+ /**
+ * @brief 订阅485实时数据接口回调函数原型, lAttachHandle 为 CLIENT_AttachIotboxComm 接口的返回值
+ * @param pstuIotboxCommEx , 参考结构体定义 {@link com.netsdk.lib.structure.NET_NOTIFY_IOTBOX_COMM_EX)
+ */
+ public interface fNotifyIotboxRealdataEx extends Callback {
+ public void invoke(LLong lAttachHandle,Pointer pstuIotboxCommEx,Pointer dwUser);
+ }
+
+ /**
+ * @brief 区域流量数据的回调函数
+ * @param pstuNotifyAreaFlowInfo , 参考结构体定义 {@link com.netsdk.lib.structure.NET_NOTIFY_AREA_FLOW_INFO)
+ */
+ public interface fNotifyAreaFlowInfo extends Callback {
+ public void invoke(LLong lAttachHandle,Pointer pstuNotifyAreaFlowInfo,Pointer dwUser);
+ }
+
+ /**
+ * @brief 接口 CLIENT_AttachTalkState 的回调函数
+ * @param pstuState , 参考结构体定义 {@link com.netsdk.lib.structure.NET_TALK_STATE)
+ */
+ public interface fNotifyTalkState extends Callback {
+ public void invoke(LLong lAttachHandle,Pointer pstuState,int nLen,Pointer dwUser);
+ }
+
+ /**
+ * @brief 屏幕叠加回调函数原形
+ */
+ public interface fDrawCallBack extends Callback {
+ public void invoke(LLong lLoginID,LLong lPlayHandle,Pointer hDC,Pointer dwUser);
+ }
+
+ /**
+ * @brief CLIENT_AttachStartStreamData的回调函数
+ * @param pstuStartStreamData , 参考结构体定义 {@link com.netsdk.lib.structure.NET_CB_START_STREAM_DATA_INFO)
+ */
+ public interface fStartStreamDataCallBack extends Callback {
+ public void invoke(LLong lAttachHandle,Pointer pstuStartStreamData,Pointer dwUser,Pointer pBuffer,int dwBufSize);
+ }
+
+ /**
+ * @brief 调试日志回调函数
+ */
+ public interface fAttachSniffer extends Callback {
+ public void invoke(LLong lAttchHandle,Pointer pBuffer,int dwBufSize,Pointer dwUser);
+ }
+
+ /**
+ * @brief 调试日志回调函数
+ */
+ public interface fDebugInfoCallBack extends Callback {
+ public void invoke(LLong lAttchHandle,Pointer pBuffer,int dwBufSize,Pointer dwUser);
+ }
+
+ /**
+ * @brief 智能分析结果的回调函数
+ * @param pstuVideoAnalyseTrackProcEx , 参考结构体定义 {@link com.netsdk.lib.structure.NET_VIDEO_ANALYSE_ANALYSE_PROC_EX)
+ */
+ public interface fVideoAnalyseAnalyseProcEx extends Callback {
+ public void invoke(LLong lAttachHandle,Pointer pstuVideoAnalyseTrackProcEx,Pointer dwUser);
+ }
+
+ /**
+ * @brief TTLV异步搜索设备回调(pDevNetInfo内存由SDK内部申请释放)
+ * @param pDevNetInfo , 参考结构体定义 {@link com.netsdk.lib.structure.DEVICE_NET_INFO_TTLV)
+ */
+ public interface fSearchDevicesCBTTLV extends Callback {
+ public void invoke(LLong lSearchHandle,Pointer pDevNetInfo,Pointer pUserData);
+ }
+
+ /**
+ * @brief 向客户端发送录像文件回调函数, lAttachHandle 为 CLIENT_AttachRecordManagerState 返回的结果
+ * @param pstuState , 参考结构体定义 {@link com.netsdk.lib.structure.NET_RECORDMANAGER_NOTIFY_INFO)
+ */
+ public interface fRecordManagerStateCallBack extends Callback {
+ public void invoke(LLong lAttachHandle,Pointer pstuState,int dwStateSize,Pointer dwUser);
+ }
+
+ /**
+ * @brief 获取当前所有规则温度信息
+ * @param pInParam 接口输入参数, 参考结构体定义 NET_IN_RADIOMETRY_GET_CUR_TEMPER_ALL_INFO
+ * @param pOutParam 接口输出参数, 参考结构体定义 NET_OUT_RADIOMETRY_GET_CUR_TEMPER_ALL_INFO
+ */
+ public boolean CLIENT_RadiometryGetCurTemperAll(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * @brief 获取测温项温度的参数值
+ * @param pInParam 接口输入参数, 参考结构体定义 NET_IN_RADIOMETRY_GET_TEMPER_INFO
+ * @param pOutParam 接口输出参数, 参考结构体定义 NET_OUT_RADIOMETRY_GET_TEMPER_INFO
+ */
+ public boolean CLIENT_RadiometryGetTemper(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * @brief 获取EAS设备能力集
+ * @param pstuInParam 接口输入参数, 参考结构体定义 NET_IN_GET_EAS_DEVICE_CAPS_INFO
+ * @param pstuOutParam 接口输出参数, 参考结构体定义 NET_OUT_GET_EAS_DEVICE_CAPS_INFO
+ */
+ public boolean CLIENT_GetEASDeviceCaps(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * @brief 设备导出文件接口
+ * @param pstInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_SECURITY_EXPORT_DATA_INFO}
+ * @param pstOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_SECURITY_EXPORT_DATA_INFO}
+ */
+ public boolean CLIENT_SecurityExportDataEx(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * @brief 设备导入文件接口
+ * @param pstInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_SECURITY_IMPORT_DATA_INFO}
+ * @param pstOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_SECURITY_IMPORT_DATA_INFO}
+ */
+ public boolean CLIENT_SecurityImportDataEx(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * @brief 准备生成导出文件接口
+ * @param pstInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_SECURITY_PREPARE_EXPORT_DATA_INFO}
+ * @param pstOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_SECURITY_PREPARE_EXPORT_DATA_INFO}
+ */
+ public boolean CLIENT_SecurityPrepareExportData(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * @brief 查询特定数据类型的任务状态接口
+ * @param pstInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_SECURITY_GETCAPS_INFO}
+ * @param pstOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_SECURITY_GETCAPS_INFO}
+ */
+ public boolean CLIENT_SecurityGetCaps(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * @brief 查询当前支持的导入导出数据类型
+ * @param pstInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_SECURITY_GET_TASK_STATUS_INFO}
+ * @param pstOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_SECURITY_GET_TASK_STATUS_INFO}
+ */
+ public boolean CLIENT_SecurityGetTaskStatus(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * @brief 添加添加本地分析任务 pstInParam与pstOutParam内存由用户申请释放
+ * @param pstuInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_ADD_LOCAL_ANALYSE_TASK}
+ * @param pstuOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_ADD_LOCAL_ANALYSE_TASK}
+ */
+ public boolean CLIENT_RecordSecondaryAnalyseAddLocalAnalyseTask(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * @brief 获取设备点位信息
+ * @param pstInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_SCADA_GET_ATTRIBUTE_INFO}
+ * @param pstOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_SCADA_GET_ATTRIBUTE_INFO}
+ */
+ public boolean CLIENT_SCADAGetAttributeInfo(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * @brief 订阅录像二次分析实时结果 pstInParam与pstOutParam内存由用户申请释放
+ * @param pstInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_ATTACH_SECONDARY_ANALYSE_RESULT}
+ * @param pstOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_ATTACH_SECONDARY_ANALYSE_RESULT}
+ */
+ public LLong CLIENT_AttachRecordSecondaryAnalyseResult(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * @brief 开始录像二次分析任务 pstInParam与pstOutParam内存由用户申请释放
+ * @param pstInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_SECONDARY_ANALYSE_STARTTASK}
+ * @param pstOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_SECONDARY_ANALYSE_STARTTASK}
+ */
+ public boolean CLIENT_RecordSecondaryAnalyseStartTask(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * @brief 设置日志加密密码
+ * @param pInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_SET_LOG_ENCRYPT_KEY_INFO}
+ * @param pOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_SET_LOG_ENCRYPT_KEY_INFO}
+ */
+ public boolean CLIENT_SetLogEncryptKey(LLong lLogID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * @brief 订阅测温温度数据,pInParam与pOutParam内存由用户申请释放
+ * @param pInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_RADIOMETRY_ATTACH_TEMPER}
+ * @param pOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_RADIOMETRY_ATTACH_TEMPER}
+ */
+ public LLong CLIENT_RadiometryAttachTemper(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * @brief 取消订阅录像二次分析实时结果
+ */
+ public boolean CLIENT_DetachRecordSecondaryAnalyseResult(LLong lAttachHandle);
+
+ /**
+ * @brief 删除录像二次分析任务 pstInParam与pstOutParam内存由用户申请释放
+ * @param pstInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_SECONDARY_ANALYSE_REMOVETASK}
+ * @param pstOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_SECONDARY_ANALYSE_REMOVETASK}
+ */
+ public boolean CLIENT_RecordSecondaryAnalyseRemoveTask(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * @brief 暂停录像二次分析任务 pstInParam与pstOutParam内存由用户申请释放
+ * @param pstInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_SECONDARY_ANALYSE_PAUSETASK}
+ * @param pstOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_SECONDARY_ANALYSE_PAUSETASK}
+ */
+ public boolean CLIENT_RecordSecondaryAnalysePauseTask(LLong lLoginID,Pointer pstInParam,Pointer pstOutParam,int nWaitTime);
+
+ /**
+ * @brief 获取闸机状态
+ * @param pInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_ACCESS_GET_ASG_STATE}
+ * @param pOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_ACCESS_GET_ASG_STATE}
+ */
+ public boolean CLIENT_GetASGState(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * @brief 清除闸机的统计信息方法,pstInParam与pstOutParam内存由用户申请释放
+ * @param pInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_ASGMANAGER_CLEAR_STATISTICS}
+ * @param pOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_ASGMANAGER_CLEAR_STATISTICS}
+ */
+ public boolean CLIENT_ASGManagerClearStatistics(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * @brief 开始放音接口
+ * @param pstuInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_START_REMOTE_SPEAK_PLAY}
+ * @param pstuOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_START_REMOTE_SPEAK_PLAY}
+ */
+ public boolean CLIENT_StartRemoteSpeakPlay(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * @brief 停止放音接口
+ * @param pstuInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_STOP_REMOTE_SPEAK_PLAY}
+ * @param pstuOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_STOP_REMOTE_SPEAK_PLAY}
+ */
+ public boolean CLIENT_StopRemoteSpeakPlay(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * @brief 单条测温规则设置更新
+ * @param pInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_SET_RADIOMETRY_RULE_INFO}
+ * @param pOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_SET_RADIOMETRY_RULE_INFO}
+ */
+ public boolean CLIENT_SetRadiometryRule(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * @brief 订阅气象信息,pstuInParam与pstuOutParam内存由用户申请释放
+ * @param pstuInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_WEATHER_INFO}
+ * @param pstuOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_WEATHER_INFO}
+ */
+ public LLong CLIENT_AttachWeatherInfo(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * @brief 停止订阅气象信息,lAttachHandle是CLIENT_AttachWeatherInfo返回值
+ */
+ public boolean CLIENT_DetachWeatherInfo(LLong lAttachHandle);
+
+ /**
+ * @brief 获取气象信息,pInBuf与pOutBuf内存由用户申请释放
+ * @param pInBuf 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_GET_ATOMSPHDATA}
+ * @param pOutBuf 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_GET_ATOMSPHDATA}
+ */
+ public boolean CLIENT_GetAtomsphData(LLong lLoginID,Pointer pInBuf,Pointer pOutBuf,int nWaitTime);
+
+ /**
+ * @brief 获取测温区域的参数值, pInParam与pOutParam内存由用户申请释放
+ * @param pInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_RADIOMETRY_RANDOM_REGION_TEMPER}
+ * @param pOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_RADIOMETRY_RANDOM_REGION_TEMPER}
+ */
+ public boolean CLIENT_RadiometryGetRandomRegionTemper(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * @brief 分组人员统计--获取摘要信息
+ * @param pInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_NUMBERSTATGROUPSUMMARY_INFO}
+ * @param pOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_NUMBERSTATGROUPSUMMARY_INFO}
+ */
+ public boolean CLIENT_GetNumberStatGroupSummary(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int waittime);
+
+ /**
+ * @brief 订阅电梯内实时数据
+ * @param pstuInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_ATTACH_ELEVATOR_FLOOR_COUNTER_INFO}
+ * @param pstuOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_ATTACH_ELEVATOR_FLOOR_COUNTER_INFO}
+ */
+ public LLong CLIENT_AttachElevatorFloorCounter(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * @brief 获取临时token
+ * @param pstuInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_GET_TEMPORARY_TOKEN}
+ * @param pstuOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_GET_TEMPORARY_TOKEN}
+ */
+ public boolean CLIENT_GetTemporaryToken(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * @brief 取消订阅电梯内实时数据
+ */
+ public boolean CLIENT_DetachElevatorFloorCounter(LLong lAttachHandle);
+
+ /**
+ * @brief 获取事件详细信息
+ * @param pstuInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_GET_IVSEVENT_DETAIL_INFO}
+ * @param pstuOutParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_GET_IVSEVENT_DETAIL_INFO}
+ */
+ public boolean CLIENT_GetIVSEventDetail(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * @brief 得到远程指定目录下文件信息(含文件/子目录)pInParam与pOutParam内存由用户申请释放
+ * @param pInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_REMOTE_LIST}
+ * @param pOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_REMOTE_LIST}
+ */
+ public boolean CLIENT_RemoteList(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * @brief 唤醒设备
+ * @param pInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_WAKE_UP_INFO}
+ * @param pOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_WAKE_UP_INFO}
+ */
+ public boolean CLIENT_DoWakeUpLowPowerDevcie(LLong lChannelHandle,Pointer pInParam,Pointer pOutParam);
+
+ /**
+ * @brief 创建低功耗通道
+ * @param pInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_CREATE_LOW_POWER_CHANNEL}
+ * @param pOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_CREATE_LOW_POWER_CHANNEL}
+ */
+ public LLong CLIENT_CreateLowPowerChannel(LLong lSubBizHandle,Pointer pInParam,Pointer pOutParam);
+
+ /**
+ * @brief 销毁低功耗通道
+ */
+ public boolean CLIENT_DestoryLowPowerChannel(LLong lChannelHandle);
+
+ /**
+ * @brief 拒绝休眠
+ * @param pInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_REFUSE_SLEEP_INFO}
+ * @param pOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_REFUSE_SLEEP_INFO}
+ */
+ public boolean CLIENT_RefuseLowPowerDevSleep(LLong lLoginID,Pointer pInParam,Pointer pOutParam,int nWaitTime);
+
+ /**
+ * @brief 获取X射线源能力
+ * @param pstuInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_GET_XRAY_SOURCE_CAPS_INFO}
+ * @param pstuOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_GET_XRAY_SOURCE_CAPS_INFO}
+ */
+ public boolean CLIENT_GetXRaySourceCaps(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * @brief 获取X射线源累积出束时间
+ * @param pstuInParam 接口输入参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_IN_GET_XRAY_SOURCE_CUMULATE_TIME_INFO}
+ * @param pstuOutParam 接口输出参数, 参考结构体定义 {@link com.netsdk.lib.structure.NET_OUT_GET_XRAY_SOURCE_CUMULATE_TIME_INFO}
+ */
+ public boolean CLIENT_GetXRaySourceCumulateTime(LLong lLoginID,Pointer pstuInParam,Pointer pstuOutParam,int nWaitTime);
+
+ /**
+ * @brief 查找记录:nFilecount:需要查询的条数, 一般情况出参中nRetRecordNum 0 ? 1:0);
+ }
+
+ return array;
+ }
+
+ public static byte[] getByteArrayEx(byte b){
+ byte[] array = new byte[8];
+ for(int i = 7; i >= 0; i--) {
+ array[i] = (byte)(b & 1);
+ b = (byte)(b >> 1);
+ }
+ return array;
+ }
+
+ public static void StringToByteArr(String src, byte[] dst) {
+ try {
+ byte[] GBKBytes = src.getBytes("GBK");
+ for (int i = 0; i < GBKBytes.length; i++) {
+ dst[i] = (byte) GBKBytes[i];
+ }
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ }
+ }
+
+ public static long GetFileSize(String filePath)
+ {
+ File f = new File(filePath);
+ if (f.exists() && f.isFile()) {
+ return f.length();
+ }
+ else
+ {
+ return 0;
+ }
+ }
+
+ public static boolean ReadAllFileToMemory(String file, Memory mem)
+ {
+ if (mem != Memory.NULL)
+ {
+ long fileLen = GetFileSize(file);
+ if (fileLen <= 0)
+ {
+ return false;
+ }
+
+ try {
+ File infile = new File(file);
+ if (infile.canRead())
+ {
+ FileInputStream in = new FileInputStream(infile);
+ int buffLen = 1024;
+ byte[] buffer = new byte[buffLen];
+ long currFileLen = 0;
+ int readLen = 0;
+ while (currFileLen < fileLen)
+ {
+ readLen = in.read(buffer);
+ mem.write(currFileLen, buffer, 0, readLen);
+ currFileLen += readLen;
+ }
+
+ in.close();
+ return true;
+ }
+ else
+ {
+ System.err.println("Failed to open file %s for read!!!\n");
+ return false;
+ }
+ }catch (Exception e)
+ {
+ System.err.println("Failed to open file %s for read!!!\n");
+ e.printStackTrace();
+ }
+ }
+
+ return false;
+ }
+
+ public static void savePicture(byte[] pBuf, String sDstFile)
+ {
+ try
+ {
+ FileOutputStream fos = new FileOutputStream(sDstFile);
+ fos.write(pBuf);
+ fos.close();
+ } catch (Exception e){
+ e.printStackTrace();
+ }
+ }
+
+ public static void savePicture(Pointer pBuf, int dwBufSize, String sDstFile)
+ {
+ try
+ {
+ DataOutputStream out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(sDstFile)));
+ out.write(pBuf.getByteArray(0, dwBufSize), 0, dwBufSize);
+ out.close();
+ } catch (Exception e){
+ e.printStackTrace();
+ }
+ }
+
+ public static void savePicture(Pointer pBuf, int dwBufOffset, int dwBufSize, String sDstFile)
+ {
+ try
+ {
+ DataOutputStream out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(sDstFile)));
+ out.write(pBuf.getByteArray(dwBufOffset, dwBufSize), 0, dwBufSize);
+ out.close();
+ } catch (Exception e){
+ e.printStackTrace();
+ }
+ }
+
+ // 读取本地图片到byte[]
+ public static byte[] readPictureToByteArray(String filename) {
+ File file = new File(filename);
+ if(!file.exists()) {
+ System.err.println("picture is not exist!");
+ return null;
+ }
+
+ ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream((int)file.length());
+ BufferedInputStream byteInStream = null;
+ try {
+ byteInStream = new BufferedInputStream(new FileInputStream(file));
+ byte[] buf = new byte[1024];
+ int len = 0;
+ while((len = byteInStream.read(buf)) != -1) {
+ byteOutStream.write(buf, 0, len);
+ }
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ byteInStream.close();
+ byteOutStream.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ return byteOutStream.toByteArray();
+ }
+
+ // 将一位数组转为二维数组
+ public static byte[][] ByteArrToByteArrArr(byte[] byteArr, int count, int length) {
+ if(count * length != byteArr.length) {
+ System.err.println(count * length + " != " + byteArr.length);
+ return null ;
+ }
+ byte[][] byteArrArr = new byte[count][length];
+
+ for(int i = 0; i < count; i++) {
+ System.arraycopy(byteArr, i * length, byteArrArr[i], 0, length);
+ }
+
+ return byteArrArr;
+ }
+
+ /**
+ * 获取接口错误码
+ * @return
+ */
+ public static String getErrorCode() {
+ return " { error code: ( 0x80000000|" + (netsdkapi.CLIENT_GetLastError() & 0x7fffffff) +" ). 参考 LastError.java }";
+ }
+
+ /**
+ * 显示目录中文件和子目录
+ * @param lLoginID 登陆句柄
+ * @param szPath 查询的文件路径
+ * @param stOut 出参
+ * @return 返回文件/目录信息数组
+ */
+ public static SDK_REMOTE_FILE_INFO[] ListRemoteFile(LLong lLoginID, String szPath, NET_OUT_LIST_REMOTE_FILE stOut) {
+ NET_IN_LIST_REMOTE_FILE stIn = new NET_IN_LIST_REMOTE_FILE();
+ stIn.pszPath = "/mnt/sdcard/" + szPath;
+ stIn.bFileNameOnly = 1; // 只获取文件名称, 不返回文件夹信息, 文件信息中只有文件名有效
+ stIn.emCondition = NET_REMOTE_FILE_COND.NET_REMOTE_FILE_COND_NONE;
+
+ int maxFileCount = 50; // 每次查询的文件个数
+ SDK_REMOTE_FILE_INFO[] remoteFileArr;
+ while(true) {
+ remoteFileArr = new SDK_REMOTE_FILE_INFO[maxFileCount];
+ for(int i = 0; i < maxFileCount; i++) {
+ remoteFileArr[i] = new SDK_REMOTE_FILE_INFO();
+ }
+
+ stOut.nMaxFileCount = maxFileCount;
+ stOut.pstuFiles = new Memory(remoteFileArr[0].size() * maxFileCount); // Pointer初始化
+ stOut.pstuFiles.clear(remoteFileArr[0].size() * maxFileCount);
+
+ ToolKits.SetStructArrToPointerData(remoteFileArr, stOut.pstuFiles); // 将数组内存拷贝给Pointer
+
+ if(netsdkapi.CLIENT_ListRemoteFile(lLoginID, stIn, stOut, 3000)) {
+ if(maxFileCount > stOut.nRetFileCount) {
+ ToolKits.GetPointerDataToStructArr(stOut.pstuFiles, remoteFileArr); // 将Pointer的信息输出到结构体
+ break;
+ } else {
+ maxFileCount += 50;
+ }
+ } else {
+ return null;
+ }
+ }
+ return remoteFileArr;
+ }
+
+ /**
+ * 显示目录中文件和子目录
+ * @param lLoginID 登陆句柄
+ * @param szPath 查询的文件路径
+ * @param stOut 出参
+ * @return 返回文件/目录信息数组
+ */
+ public static SDK_REMOTE_FILE_INFO[] ListAudioFile(LLong lLoginID, String szPath, NET_OUT_LIST_REMOTE_FILE stOut) {
+ NET_IN_LIST_REMOTE_FILE stIn = new NET_IN_LIST_REMOTE_FILE();
+ stIn.pszPath =szPath;
+ stIn.bFileNameOnly = 1; // 只获取文件名称, 不返回文件夹信息, 文件信息中只有文件名有效
+ stIn.emCondition = NET_REMOTE_FILE_COND.NET_REMOTE_FILE_COND_NONE;
+
+ int maxFileCount = 50; // 每次查询的文件个数
+ SDK_REMOTE_FILE_INFO[] remoteFileArr;
+ while(true) {
+ remoteFileArr = new SDK_REMOTE_FILE_INFO[maxFileCount];
+ for(int i = 0; i < maxFileCount; i++) {
+ remoteFileArr[i] = new SDK_REMOTE_FILE_INFO();
+ }
+
+ stOut.nMaxFileCount = maxFileCount;
+ stOut.pstuFiles = new Memory(remoteFileArr[0].size() * maxFileCount); // Pointer初始化
+ stOut.pstuFiles.clear(remoteFileArr[0].size() * maxFileCount);
+
+ ToolKits.SetStructArrToPointerData(remoteFileArr, stOut.pstuFiles); // 将数组内存拷贝给Pointer
+
+ if(netsdkapi.CLIENT_ListRemoteFile(lLoginID, stIn, stOut, 3000)) {
+ if(maxFileCount > stOut.nRetFileCount) {
+ ToolKits.GetPointerDataToStructArr(stOut.pstuFiles, remoteFileArr); // 将Pointer的信息输出到结构体
+ break;
+ } else {
+ maxFileCount += 50;
+ }
+ } else {
+ return null;
+ }
+ }
+ return remoteFileArr;
+ }
+
+ /**
+ * 删除文件或目录,删除具体的文件或者一类文件
+ * @param lLoginID 登陆句柄
+ * @param szPath 删除的文件名称
+ */
+ public static boolean RemoveRemoteFilesEx(LLong lLoginID, String szPath) {
+ boolean bRet = false;
+ if(szPath.indexOf("*") != -1) { // 删除一类文件
+ String[] szPathStr = szPath.split("[*]");
+
+ String szFindPath = szPathStr[0]; // 查询文件路径
+ String szFileType = szPathStr[1].substring(1); // 文件类型
+
+ // 查询当前路径下的文件
+ NET_OUT_LIST_REMOTE_FILE stOut = new NET_OUT_LIST_REMOTE_FILE();
+
+ SDK_REMOTE_FILE_INFO[] remoteFile = ToolKits.ListRemoteFile(lLoginID, szFindPath, stOut);
+ if(remoteFile != null) {
+ for(int i = 0; i < stOut.nRetFileCount; i++) {
+ // 过滤并删除
+ if(new String(remoteFile[i].szPath).trim().indexOf(szFileType) != -1) {
+ bRet = RemoveRemoteFiles(lLoginID, szFindPath + new String(remoteFile[i].szPath).trim());
+ }
+ }
+ }
+ } else { // 删除具体的文件
+ bRet = RemoveRemoteFiles(lLoginID, szPath);
+ }
+ return bRet;
+ }
+
+ /**
+ * 删除多个文件或目录
+ * @param lLoginID 登陆句柄
+ * @param szPath 删除的文件名称
+ * @return true 成功; false 失败
+ */
+ public static boolean RemoveRemoteFilesArr(LLong lLoginID, String[] szPath) {
+ FILE_PATH[] filePath = new FILE_PATH[szPath.length];
+ for(int i = 0; i < szPath.length; i++) {
+ filePath[i] = new FILE_PATH();
+ }
+
+ for(int i = 0; i < szPath.length; i++) {
+ filePath[i].pszPath = "/mnt/sdcard/" + szPath[i];
+ System.out.println("/mnt/sdcard/" + szPath[i]);
+ }
+
+ // 入参
+ NET_IN_REMOVE_REMOTE_FILES stIn = new NET_IN_REMOVE_REMOTE_FILES();
+ stIn.nFileCount = szPath.length;
+ stIn.pszPathPointer = new Memory(filePath[0].size() * szPath.length);
+ stIn.pszPathPointer.clear(filePath[0].size() * szPath.length);
+
+ ToolKits.SetStructArrToPointerData(filePath, stIn.pszPathPointer);
+
+ // 出参
+ NET_OUT_REMOVE_REMOTE_FILES stOut = new NET_OUT_REMOVE_REMOTE_FILES();
+
+ boolean bRet = netsdkapi.CLIENT_RemoveRemoteFiles(lLoginID, stIn, stOut, 3000);
+
+ return bRet;
+ }
+
+ /**
+ * 删除单个文件或目录
+ * @param lLoginID 登陆句柄
+ * @param szPath 删除的文件名称
+ * @return true 成功; false 失败
+ */
+ public static boolean RemoveAudioFiles(LLong lLoginID, String szPath) {
+ FILE_PATH filePath = new FILE_PATH();
+ filePath.pszPath = szPath;
+
+ // 入参
+ NET_IN_REMOVE_REMOTE_FILES stIn = new NET_IN_REMOVE_REMOTE_FILES();
+ stIn.nFileCount = 1;
+ stIn.pszPathPointer = filePath.getPointer();
+
+ // 出参
+ NET_OUT_REMOVE_REMOTE_FILES stOut = new NET_OUT_REMOVE_REMOTE_FILES();
+
+ filePath.write();
+ boolean bRet = netsdkapi.CLIENT_RemoveRemoteFiles(lLoginID, stIn, stOut, 3000);
+ filePath.read();
+
+ return bRet;
+ }
+
+ /**
+ * 删除单个文件或目录
+ * @param lLoginID 登陆句柄
+ * @param szPath 删除的文件名称
+ * @return true 成功; false 失败
+ */
+ public static boolean RemoveRemoteFiles(LLong lLoginID, String szPath) {
+ FILE_PATH filePath = new FILE_PATH();
+ filePath.pszPath = "/mnt/sdcard/" + szPath;
+
+ // 入参
+ NET_IN_REMOVE_REMOTE_FILES stIn = new NET_IN_REMOVE_REMOTE_FILES();
+ stIn.nFileCount = 1;
+ stIn.pszPathPointer = filePath.getPointer();
+
+ // 出参
+ NET_OUT_REMOVE_REMOTE_FILES stOut = new NET_OUT_REMOVE_REMOTE_FILES();
+
+ filePath.write();
+ boolean bRet = netsdkapi.CLIENT_RemoveRemoteFiles(lLoginID, stIn, stOut, 3000);
+ filePath.read();
+
+ return bRet;
+ }
+
+ /**
+ * 获取播放盒上全部节目信息
+ * @param lLoginID d登陆句柄
+ * @param stOut 出参
+ * @return 返回播放盒节目信息数组
+ */
+ public static NET_PROGRAM_ON_PLAYBOX[] GetAllProgramOnPlayBox(LLong lLoginID, NET_OUT_GET_ALL_PLAYBOX_PROGRAM stOut) {
+ // 入参
+ NET_IN_GET_ALL_PLAYBOX_PROGRAM stIn = new NET_IN_GET_ALL_PLAYBOX_PROGRAM();
+
+ NET_PROGRAM_ON_PLAYBOX[] playboxArr;
+ int maxProgramCount = 10; // 每次查询的节目信息个数
+ while(true) {
+ playboxArr = new NET_PROGRAM_ON_PLAYBOX[maxProgramCount];
+ for(int i = 0; i < maxProgramCount; i++) {
+ playboxArr[i] = new NET_PROGRAM_ON_PLAYBOX();
+ for(int j = 0; j < NetSDKLib.MAX_WINDOWS_COUNT; j++) {
+ // 申请一块内存,自己设置,设置大点
+ playboxArr[i].stuOrdinaryInfo.stuWindowsInfo[j].pstElementsBuf = new Memory(100 * 1024);
+ playboxArr[i].stuOrdinaryInfo.stuWindowsInfo[j].pstElementsBuf.clear(100 * 1024);
+ playboxArr[i].stuOrdinaryInfo.stuWindowsInfo[j].nBufLen = 100 * 1024;
+ }
+ }
+
+ // 出参
+ stOut.nMaxProgramCount = maxProgramCount;
+ stOut.pstProgramInfo = new Memory(playboxArr[0].size() * maxProgramCount);
+ stOut.pstProgramInfo.clear(playboxArr[0].size() * maxProgramCount);
+
+ ToolKits.SetStructArrToPointerData(playboxArr, stOut.pstProgramInfo); // 将数组内存拷贝给Pointer
+
+ if(netsdkapi.CLIENT_GetAllProgramOnPlayBox(lLoginID, stIn, stOut, 3000)) {
+ if(maxProgramCount > stOut.nRetProgramCount) {
+ ToolKits.GetPointerDataToStructArr(stOut.pstProgramInfo, playboxArr); // 将Pointer的信息输出到结构体
+ break;
+ } else {
+ maxProgramCount += 10;
+ }
+ } else {
+ return null;
+ }
+ }
+
+ return playboxArr;
+ }
+
+ /**
+ * 批量删除节目信息
+ * @param lLoginID 登陆句柄
+ * @param szProGrammeIdList 需要删除的节目ID
+ * @return true 成功; false 失败
+ */
+ public static boolean DelMultiProgrammesById(LLong lLoginID, String[] szProGrammeIdList) {
+ // 入参
+ NET_IN_DEL_PROGRAMMES stIn = new NET_IN_DEL_PROGRAMMES();
+ stIn.nProgrammeID = szProGrammeIdList.length; // 需要删除的节目ID个数
+
+ for(int i = 0; i < szProGrammeIdList.length; i++) {
+ System.arraycopy(szProGrammeIdList[i].getBytes(), 0, stIn.szProGrammeIdListArr[i].szProGrammeIdList, 0, szProGrammeIdList[i].getBytes().length);
+ }
+
+ // 出参
+ NET_OUT_DEL_PROGRAMMES stOut = new NET_OUT_DEL_PROGRAMMES();
+
+ return netsdkapi.CLIENT_DelMultiProgrammesById(lLoginID, stIn, stOut, 5000);
+ }
+
+ /**
+ * 删除多个节目计划
+ * @param lLoginID 登陆句柄
+ * @param szPlanID 需要删除的计划ID
+ * @return true 成功; false 失败
+ */
+ public static boolean DelMultiProgrammePlans(LLong lLoginID, String[] szPlanID) {
+ // 入参
+ NET_IN_DEL_PROGRAMMEPLANS stIn = new NET_IN_DEL_PROGRAMMEPLANS();
+ stIn.nPlanID = szPlanID.length; // 节目计划ID个数
+
+ for(int i = 0; i < szPlanID.length; i++) {
+ System.arraycopy(szPlanID[i].getBytes(), 0, stIn.szPlanIDArr[i].szPlanID, 0, szPlanID[i].getBytes().length);
+ }
+
+ // 出参
+ NET_OUT_DEL_PROGRAMMEPLANS stOut = new NET_OUT_DEL_PROGRAMMEPLANS();
+
+ return netsdkapi.CLIENT_DelMultiProgrammePlans(lLoginID, stIn, stOut, 5000);
+ }
+
+ /**
+ * 获取所有节目计划信息
+ * @param lLoginID 登陆句柄
+ * @param stOut 出参
+ * @return NET_PROGRAMME_PLANS_INFO 结构体
+ */
+ public static NET_PROGRAMME_PLANS_INFO GetAllProgrammePlans(LLong lLoginID, NET_OUT_GET_ALL_PROGRAMMEPLANS stOut) {
+ // 入参
+ NET_IN_GET_ALL_PROGRAMMEPLANS stIn = new NET_IN_GET_ALL_PROGRAMMEPLANS();
+
+ NET_PROGRAMME_PLANS_INFO planInfo;
+ int maxPlanCnt = 10; // 每次查询的计划个数
+ while(true) {
+ planInfo = new NET_PROGRAMME_PLANS_INFO(maxPlanCnt);
+
+ // 出参
+ stOut.nMaxPlanCnt = maxPlanCnt;
+ stOut.pstImmePlan = new Memory(stOut.nMaxPlanCnt * planInfo.szImmePlan[0].size());
+ stOut.pstImmePlan.clear(stOut.nMaxPlanCnt * planInfo.szImmePlan[0].size());
+
+ stOut.pstTimerPlan = new Memory(stOut.nMaxPlanCnt * planInfo.szTimerPlan[0].size());
+ stOut.pstTimerPlan.clear(stOut.nMaxPlanCnt * planInfo.szTimerPlan[0].size());
+
+ ToolKits.SetStructArrToPointerData(planInfo.szImmePlan, stOut.pstImmePlan); // 将数组内存拷贝给Pointer
+ ToolKits.SetStructArrToPointerData(planInfo.szTimerPlan, stOut.pstTimerPlan); // 将数组内存拷贝给Pointer
+
+ if(netsdkapi.CLIENT_GetAllProgrammePlans(lLoginID, stIn, stOut, 3000)) {
+ if(maxPlanCnt > stOut.nRetImmCnt && maxPlanCnt > stOut.nRetTimerCnt) {
+ ToolKits.GetPointerDataToStructArr(stOut.pstImmePlan, planInfo.szImmePlan); // 将Pointer的值输出到数组
+ ToolKits.GetPointerDataToStructArr(stOut.pstTimerPlan, planInfo.szTimerPlan); // 将Pointer的值输出到数组
+ break;
+ } else {
+ maxPlanCnt += 10;
+ }
+ } else {
+ return null;
+ }
+ }
+ return planInfo;
+ }
+
+ // Win下,将GBK String类型的转为Pointer
+ public static Pointer GetGBKStringToPointer(String src) {
+ Pointer pointer = null;
+ try {
+ byte[] b = src.getBytes("GBK");
+
+ pointer = new Memory(b.length+1);
+ pointer.clear(b.length+1);
+
+ pointer.write(0, b, 0, b.length);
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ return pointer;
+ }
+
+ // win下,将Pointer值转为 GBK String
+ public static String GetPointerDataToGBKString(Pointer pointer) {
+ String str = "";
+ if(pointer == null) {
+ return str;
+ }
+
+ int length = 0;
+ byte[] bufferPlace = new byte[1];
+
+ for(int i = 0; i < 2048; i++) {
+ pointer.read(i, bufferPlace, 0, 1);
+ if(bufferPlace[0] == '\0') {
+ length = i;
+ break;
+ }
+ }
+
+ if(length > 0) {
+ byte[] buffer = new byte[length];
+ pointer.read(0, buffer, 0, length);
+ try {
+ str = new String(buffer, "GBK").trim();
+ } catch (UnsupportedEncodingException e) {
+ return str;
+ }
+ }
+
+ return str;
+ }
+
+ // win下,将Pointer值转为 GBK String
+ public static String GetPointerDataToGBKString(Pointer pointer, int length) {
+ String str = "";
+ if(pointer == null) {
+ return str;
+ }
+
+ if(length > 0) {
+ byte[] buffer = new byte[length];
+ pointer.read(0, buffer, 0, length);
+ try {
+ str = new String(buffer, "GBK").trim();
+ } catch (UnsupportedEncodingException e) {
+ return str;
+ }
+ }
+
+ return str;
+ }
+
+ public static void StringToByteArray(String src, byte[] dst) {
+ for(int i = 0; i < dst.length; i++) {
+ dst[i] = 0;
+ }
+
+ System.arraycopy(src.getBytes(), 0, dst, 0, src.getBytes().length);
+ }
+
+ /**
+ * 生成MD5
+ * @param path 图片路径
+ * @return MD5
+ * @throws FileNotFoundException
+ */
+ public static String GetStringMD5(String path) {
+ File file = new File(path);
+
+ String value = "";
+ FileInputStream inputStream = null;
+
+ try {
+ inputStream = new FileInputStream(file);
+ MappedByteBuffer byteBuffer = inputStream.getChannel().map(FileChannel.MapMode.READ_ONLY, 0, file.length());
+ MessageDigest md5 = MessageDigest.getInstance("MD5");
+ md5.update(byteBuffer);
+ BigInteger bi = new BigInteger(1, md5.digest());
+ value = bi.toString(16);
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ if(null != inputStream) {
+ try {
+ inputStream.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ return value;
+ }
+
+ /**
+ * 写入流数据
+ * @param stream
+ * @return
+ */
+ public static Pointer setStreamToPointer(InputStream stream){
+ Pointer pointer=null;
+ try {
+ int size=stream.available();
+ pointer=new Memory(size);
+ byte[] data=new byte[size];
+ stream.read(data);
+ pointer.write(0,data,0,size);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }finally {
+ return pointer;
+ }
+
+ }
+
+ // 获取当前时间
+ public static String getDate() {
+ SimpleDateFormat simpleDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ String date = simpleDate.format(new java.util.Date()).replace(" ", "_").replace(":", "-");
+
+ return date;
+ }
+
+ /**
+ * 获取接口错误码和错误信息,用于打印
+ * @return
+ */
+ public static String getErrorCodePrint() {
+ return "";
+ }
+}
diff --git a/src/main/java/com/netsdk/lib/Utils.java b/src/main/java/com/netsdk/lib/Utils.java
new file mode 100644
index 0000000..8b7e382
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/Utils.java
@@ -0,0 +1,197 @@
+package com.netsdk.lib;
+
+import com.sun.jna.IntegerType;
+import com.sun.jna.Native;
+import com.sun.jna.Platform;
+import com.sun.jna.Structure;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.List;
+
+public class Utils {
+ public Utils() {}
+
+ /** 获取系统对应的编码 */
+ public static String getPlatformEncode() {
+ String encode = "";
+ String osPrefix = getOsPrefix();
+ if (osPrefix.toLowerCase().startsWith("win32")) {
+ encode = "GBK";
+ } else if (osPrefix.toLowerCase().startsWith("linux")) {
+ encode = "UTF-8";
+ }
+ if (encode.isEmpty()) {
+ encode = "UTF-8";
+ }
+ return encode;
+ }
+
+ // 获取操作平台信息
+ public static String getOsPrefix() {
+ String arch = System.getProperty("os.arch").toLowerCase();
+ final String name = System.getProperty("os.name");
+ String osPrefix;
+ switch (Platform.getOSType()) {
+ case Platform.WINDOWS:
+ {
+ if ("i386".equals(arch)) arch = "x86";
+ osPrefix = "win32-" + arch;
+ }
+ break;
+ case Platform.LINUX:
+ {
+ if ("x86".equals(arch)) {
+ arch = "i386";
+ } else if ("x86_64".equals(arch)) {
+ arch = "amd64";
+ }
+ osPrefix = "linux-" + arch;
+ }
+ break;
+ case Platform.MAC:
+ {
+ // mac系统的os.arch都是ppc(老版本的mac是powerpc,已经基本不用)看不出系统位数,使用下面的参数表示
+ arch = System.getProperty("sun.arch.data.model");
+ osPrefix = "mac-" + arch;
+ }
+ break;
+ default:
+ {
+ osPrefix = name.toLowerCase();
+ if ("x86".equals(arch)) {
+ arch = "i386";
+ }
+ if ("x86_64".equals(arch)) {
+ arch = "amd64";
+ }
+ int space = osPrefix.indexOf(" ");
+ if (space != -1) {
+ osPrefix = osPrefix.substring(0, space);
+ }
+ osPrefix += "-" + arch;
+ }
+ break;
+ }
+
+ return osPrefix;
+ }
+
+ public static String getOsName() {
+ String osName = "";
+ String osPrefix = getOsPrefix();
+ if (osPrefix.toLowerCase().startsWith("win32-x86")
+ || osPrefix.toLowerCase().startsWith("win32-amd64")) {
+ osName = "win";
+ } else if (osPrefix.toLowerCase().startsWith("linux-i386")
+ || osPrefix.toLowerCase().startsWith("linux-amd64")) {
+ osName = "linux";
+ } else if (osPrefix.toLowerCase().startsWith("mac-64")
+ || osPrefix.toLowerCase().startsWith("mac-32")) {
+ osName = "mac";
+ }
+
+ return osName;
+ }
+
+ // 获取加载库
+ public static String getLoadLibrary(String library) {
+ if (isChecking()) {
+ return null;
+ }
+
+ String loadLibrary = "";
+ String osPrefix = getOsPrefix();
+ if (osPrefix.toLowerCase().startsWith("win32-x86")) {
+ loadLibrary = "./libs/win32/";
+ } else if (osPrefix.toLowerCase().startsWith("win32-amd64")) {
+ loadLibrary = "./libs/win64/";
+ } else if (osPrefix.toLowerCase().startsWith("linux-i386")) {
+ loadLibrary = "";
+ } else if (osPrefix.toLowerCase().startsWith("linux-amd64")) {
+ loadLibrary = "";
+ } else if (osPrefix.toLowerCase().startsWith("mac-64")) {
+ loadLibrary = "";
+ }
+ // else if(osPrefix.toLowerCase().startsWith("mac-32")) {
+ // loadLibrary = "";
+ // } 32位mac版本基本没人用了,暂时不用
+
+ System.out.printf("加载库[%s]\n", loadLibrary + library);
+ return loadLibrary + library;
+ }
+
+ private static boolean checking = false;
+
+ public static void setChecking() {
+ checking = true;
+ }
+
+ public static void clearChecking() {
+ checking = false;
+ }
+
+ public static boolean isChecking() {
+ return checking;
+ }
+
+ public static class LLong extends IntegerType {
+ private static final long serialVersionUID = 1L;
+
+ /** Size of a native long, in bytes. */
+ public static int size;
+
+ static {
+ size = Native.LONG_SIZE;
+ if (Utils.getOsPrefix().toLowerCase().equals("linux-amd64")
+ || Utils.getOsPrefix().toLowerCase().equals("win32-amd64")
+ || Utils.getOsPrefix().toLowerCase().equals("mac-64")) {
+ size = 8;
+ } else if (Utils.getOsPrefix().toLowerCase().equals("linux-i386")
+ || Utils.getOsPrefix().toLowerCase().equals("win32-x86")) {
+ size = 4;
+ }
+ }
+
+ /** Create a zero-valued LLong. */
+ public LLong() {
+ this(0);
+ }
+
+ /** Create a LLong with the given value. */
+ public LLong(long value) {
+ super(size, value);
+ }
+ }
+
+ public static class SdkStructure extends Structure {
+ @Override
+ protected List getFieldOrder() {
+ List fieldOrderList = new ArrayList();
+ for (Class> cls = getClass();
+ !cls.equals(NetSDKLib.SdkStructure.class);
+ cls = cls.getSuperclass()) {
+ Field[] fields = cls.getDeclaredFields();
+ int modifiers;
+ for (Field field : fields) {
+ modifiers = field.getModifiers();
+ if (Modifier.isStatic(modifiers) || !Modifier.isPublic(modifiers)) {
+ continue;
+ }
+ fieldOrderList.add(field.getName());
+ }
+ }
+ // System.out.println(fieldOrderList);
+
+ return fieldOrderList;
+ }
+ }
+
+ // 获取当前时间
+ public static String getDate() {
+ SimpleDateFormat simpleDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ return simpleDate.format(new java.util.Date()).replace(" ", "_").replace(":", "-");
+ }
+}
diff --git a/src/main/java/com/netsdk/lib/callback/BasicVideoStatHeatMapCallBack.java b/src/main/java/com/netsdk/lib/callback/BasicVideoStatHeatMapCallBack.java
new file mode 100644
index 0000000..54ab165
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/callback/BasicVideoStatHeatMapCallBack.java
@@ -0,0 +1,36 @@
+package com.netsdk.lib.callback;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.ToolKits;
+import com.netsdk.lib.enumeration.EM_HEATMAP_TYPE;
+import com.netsdk.lib.structure.NET_CB_VIDEOSTAT_HEATMAP;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 热度图回调函数的基类
+ * @date 2020/9/24
+ */
+public abstract class BasicVideoStatHeatMapCallBack implements fVideoStatHeatMapCallBack {
+ @Override
+ public void invoke(
+ NetSDKLib.LLong lAttachHandle,
+ Pointer pBuf,
+ Pointer pBinData,
+ int dwBinDataLen,
+ Pointer dwUser) {
+ /** 获取热度图数据 */
+ NET_CB_VIDEOSTAT_HEATMAP heatmap = new NET_CB_VIDEOSTAT_HEATMAP();
+ ToolKits.GetPointerData(pBuf, heatmap);
+ byte[] bytes = new byte[dwBinDataLen];
+ pBinData.read(0, bytes, 0, dwBinDataLen);
+ /** 处理热度图数据 */
+ parseData(
+ lAttachHandle.longValue(),
+ heatmap.nToken,
+ EM_HEATMAP_TYPE.getEmHeatMap(heatmap.emHeatMapType),
+ bytes);
+ }
+ public abstract void parseData(long attachHandle, int nToken, EM_HEATMAP_TYPE type, byte[] binData);
+}
diff --git a/src/main/java/com/netsdk/lib/callback/fRedirectServerCallBackEx.java b/src/main/java/com/netsdk/lib/callback/fRedirectServerCallBackEx.java
new file mode 100644
index 0000000..c8beea1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/callback/fRedirectServerCallBackEx.java
@@ -0,0 +1,40 @@
+package com.netsdk.lib.callback;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.ToolKits;
+import com.netsdk.lib.structure.NET_CB_REDIRECT_SERVER_CALLBACK_INFO;
+import com.netsdk.lib.structure.NET_IN_START_REDIRECT_SERVICE;
+import com.sun.jna.Callback;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 重定向服务器回调函数原形扩展
+ * @date 2021/3/13
+ */
+public interface fRedirectServerCallBackEx extends Callback {
+ /**
+ * @param lDevHandle 设备句柄
+ * @param pInParam 设备信息,对应结构体{@link NET_CB_REDIRECT_SERVER_CALLBACK_INFO}
+ * @param dwUserData 自定义数据,该自定义数据为{@link
+ * NET_IN_START_REDIRECT_SERVICE#dwUserData}传入的数据,注意保证dwUser不会被jvm回收,
+ * 否则回调中接收到的dwUser可能乱码,甚至导致崩溃
+ * @return
+ */
+ default int callback(NetSDKLib.LLong lDevHandle, Pointer pInParam, Pointer dwUserData) {
+ NET_CB_REDIRECT_SERVER_CALLBACK_INFO info = new NET_CB_REDIRECT_SERVER_CALLBACK_INFO();
+ ToolKits.GetPointerDataToStruct(pInParam, 0, info);
+ dealWithData(lDevHandle.longValue(), info, dwUserData);
+ return 0;
+ }
+
+ /**
+ * 数据处理
+ *
+ * @param devHandler 设备句柄
+ * @param info 主动注册重定向设备信息
+ * @param userData 用户数据
+ */
+ void dealWithData(long devHandler, NET_CB_REDIRECT_SERVER_CALLBACK_INFO info, Pointer userData);
+}
diff --git a/src/main/java/com/netsdk/lib/callback/fVideoStatHeatMapCallBack.java b/src/main/java/com/netsdk/lib/callback/fVideoStatHeatMapCallBack.java
new file mode 100644
index 0000000..8e9adf2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/callback/fVideoStatHeatMapCallBack.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.callback;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.ToolKits;
+import com.netsdk.lib.enumeration.EM_HEATMAP_TYPE;
+import com.netsdk.lib.structure.NET_CB_VIDEOSTAT_HEATMAP;
+import com.sun.jna.Callback;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 热度图数据回调
+ * @date 2020/9/21
+ */
+public interface fVideoStatHeatMapCallBack extends Callback {
+ /**
+ * @param lAttachHandle 订阅句柄
+ * @param pBuf 回调上来的数据,对应结构体{@link com.netsdk.lib.structure.NET_CB_VIDEOSTAT_HEATMAP}
+ * @param pBinData 回调上来的二进制数据
+ * @param dwBinDataLen 二进制数据长度
+ * @param dwUser 用户数据
+ */
+ void invoke(
+ NetSDKLib.LLong lAttachHandle,
+ Pointer pBuf,
+ Pointer pBinData,
+ int dwBinDataLen,
+ Pointer dwUser);
+}
diff --git a/src/main/java/com/netsdk/lib/callback/impl/AnalyzerDataCB.java b/src/main/java/com/netsdk/lib/callback/impl/AnalyzerDataCB.java
new file mode 100644
index 0000000..32d74cb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/callback/impl/AnalyzerDataCB.java
@@ -0,0 +1,445 @@
+package com.netsdk.lib.callback.impl;
+
+import java.io.File;
+import java.nio.charset.Charset;
+import java.util.Objects;
+
+import com.netsdk.lib.Utils;
+import com.netsdk.lib.enumeration.EM_EVENT_IVS_TYPE;
+import com.netsdk.lib.structure.DEV_EVENT_HUDDLE_MATERIAL_INFO;
+import com.netsdk.lib.structure.DEV_EVENT_OUTDOOR_ADVERTISEMENT_INFO;
+import com.netsdk.lib.structure.DEV_EVENT_SHOP_SIGN_ABNORMAL_INFO;
+import com.netsdk.lib.structure.DEV_EVENT_SHOP_WINDOW_POST_INFO;
+import com.netsdk.lib.structure.DEV_EVENT_STREET_SUNCURE_INFO;
+import com.netsdk.lib.structure.DEV_EVENT_TRAFFIC_PEDESTRAINRUNREDLIGHT_INFO;
+import com.sun.jna.Pointer;
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.ToolKits;
+
+
+/**
+ * 智能报警事件回调
+ */
+public class AnalyzerDataCB implements NetSDKLib.fAnalyzerDataCallBack {
+
+ private final File picturePath;
+ private static AnalyzerDataCB instance;
+
+ private AnalyzerDataCB() {
+ picturePath = new File("./AnalyzerPicture/");
+ if (!picturePath.exists()) {
+ picturePath.mkdirs();
+ }
+ }
+
+ public static AnalyzerDataCB getInstance() {
+ if (instance == null) {
+ instance = new AnalyzerDataCB();
+ }
+ return instance;
+ }
+
+ // 回调
+ public int invoke(NetSDKLib.LLong lAnalyzerHandle, int dwAlarmType, Pointer pAlarmInfo,
+ Pointer pBuffer, int dwBufSize, Pointer dwUser, int nSequence, Pointer reserved) {
+ if (lAnalyzerHandle == null || lAnalyzerHandle.longValue() == 0) {
+ return -1;
+ }
+
+ NetSDKLib.NET_EVENT_FILE_INFO stuFileInfo = null;
+ NetSDKLib.NET_PIC_INFO stPicInfo = null;
+
+ switch (Objects.requireNonNull(EM_EVENT_IVS_TYPE.getEventType(dwAlarmType))) {
+ case EVENT_IVS_PARKINGDETECTION: // 非法停车事件
+ {
+ NetSDKLib.DEV_EVENT_PARKINGDETECTION_INFO msg = new NetSDKLib.DEV_EVENT_PARKINGDETECTION_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, msg);
+ stuFileInfo = msg.stuFileInfo;
+ stPicInfo = msg.stuObject.stPicInfo;
+ System.out.printf("【非法停车事件】 时间(UTC):%s 通道号:%d 开始时间:%s 结束时间:%s 事件触发累计次数:%d 事件源设备唯一标识:%s \n",
+ msg.UTC, msg.nChannelID, msg.stuObject.stuStartTime, msg.stuObject.stuEndTime,
+ msg.nOccurrenceCount, new String(msg.szSourceDevice));
+ break;
+ }
+ case EVENT_IVS_FIGHTDETECTION: // 斗殴事件
+ {
+ NetSDKLib.DEV_EVENT_FIGHT_INFO msg = new NetSDKLib.DEV_EVENT_FIGHT_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, msg);
+ String Picture = picturePath + "\\" + System.currentTimeMillis() + ".jpg";
+ ToolKits.savePicture(pBuffer, 0, dwBufSize, Picture);
+ System.out.println(" 斗殴事件 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID);
+ break;
+ }
+ case EVENT_IVS_LEAVEDETECTION: // 离岗检测事件
+ {
+ NetSDKLib.DEV_EVENT_IVS_LEAVE_INFO msg = new NetSDKLib.DEV_EVENT_IVS_LEAVE_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, msg);
+ stuFileInfo = msg.stuFileInfo;
+ stPicInfo = msg.stuObject.stPicInfo;
+ System.out.printf("【离岗检测事件】 时间(UTC):%s 通道号:%d 开始时间:%s 结束时间:%s \n",
+ msg.UTC, msg.nChannelID, msg.stuObject.stuStartTime, msg.stuObject.stuEndTime);
+ break;
+ }
+ case EVENT_IVS_CROSSLINEDETECTION: // 拌线入侵事件
+ {
+ NetSDKLib.DEV_EVENT_CROSSLINE_INFO msg = new NetSDKLib.DEV_EVENT_CROSSLINE_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, msg);
+ stuFileInfo = msg.stuFileInfo;
+ stPicInfo = msg.stuObject.stPicInfo;
+ System.out.printf("【拌线入侵事件】 时间(UTC):%s 通道号:%d 开始时间:%s 结束时间:%s 事件触发累计次数:%d 事件源设备唯一标识:%s \n",
+ msg.UTC, msg.nChannelID, msg.stuObject.stuStartTime, msg.stuObject.stuEndTime,
+ msg.nOccurrenceCount, new String(msg.szSourceDevice));
+ break;
+ }
+ case EVENT_IVS_RIOTERDETECTION: // 聚众事件
+ {
+ NetSDKLib.DEV_EVENT_RIOTERL_INFO msg = new NetSDKLib.DEV_EVENT_RIOTERL_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, msg);
+ stuFileInfo = msg.stuFileInfo;
+ stPicInfo = msg.stuObjectIDs[0].stPicInfo; // 取第一个
+ System.out.printf("【聚众事件】 时间(UTC):%s 通道号:%d 检测到的物体个数:%d 事件触发累计次数:%d 事件源设备唯一标识:%s \n",
+ msg.UTC, msg.nChannelID, msg.nObjectNum,
+ msg.nOccurrenceCount, new String(msg.szSourceDevice));
+ break;
+ }
+ case EVENT_IVS_LEFTDETECTION: // 物品遗留事件
+ {
+ NetSDKLib.DEV_EVENT_LEFT_INFO msg = new NetSDKLib.DEV_EVENT_LEFT_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, msg);
+ stuFileInfo = msg.stuFileInfo;
+ stPicInfo = msg.stuObject.stPicInfo;
+ System.out.printf("【物品遗留事件】 时间(UTC):%s 通道号:%d 开始时间:%s 结束时间:%s 事件触发累计次数:%d 事件源设备唯一标识:%s \n",
+ msg.UTC, msg.nChannelID, msg.stuObject.stuStartTime, msg.stuObject.stuEndTime,
+ msg.nOccurrenceCount, new String(msg.szSourceDevice));
+ break;
+ }
+ case EVENT_IVS_STAYDETECTION: // 停留事件
+ {
+ //System.out.printf("【停留事件】\n");
+ NetSDKLib.DEV_EVENT_STAY_INFO msg = new NetSDKLib.DEV_EVENT_STAY_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, msg);
+ stuFileInfo = msg.stuFileInfo;
+ stPicInfo = msg.stuObject.stPicInfo;
+ System.out.printf("【停留事件】 时间(UTC):%s 通道号:%d 开始时间:%s 结束时间:%s \n",
+ msg.UTC, msg.nChannelID, msg.stuObject.stuStartTime, msg.stuObject.stuEndTime);
+ break;
+ }
+ case EVENT_IVS_WANDERDETECTION: // 徘徊事件
+ {
+ NetSDKLib.DEV_EVENT_WANDER_INFO msg = new NetSDKLib.DEV_EVENT_WANDER_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, msg);
+ stuFileInfo = msg.stuFileInfo;
+ stPicInfo = msg.stuObjectIDs[0].stPicInfo; // 取第一个
+ System.out.printf("【徘徊事件】 时间(UTC):%s 通道号:%d 检测到的物体个数:%d 事件触发累计次数:%d 事件源设备唯一标识:%s \n",
+ msg.UTC, msg.nChannelID, msg.nObjectNum,
+ msg.nOccurrenceCount, new String(msg.szSourceDevice));
+ break;
+ }
+ case EVENT_IVS_MAN_NUM_DETECTION: ///< 立体视觉区域内人数统计事件
+ {
+ NetSDKLib.DEV_EVENT_MANNUM_DETECTION_INFO msg = new NetSDKLib.DEV_EVENT_MANNUM_DETECTION_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, msg);
+ System.out.println(" 立体视觉区域内人数统计事件 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID +
+ " 区域人员列表数量:" + msg.nManListCount + " 人员身高:" + msg.stuManList[0].nStature);
+ break;
+ }
+ case EVENT_IVS_CROWDDETECTION: ///< 人群密度检测事件
+ {
+ NetSDKLib.DEV_EVENT_CROWD_DETECTION_INFO msg = new NetSDKLib.DEV_EVENT_CROWD_DETECTION_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, msg);
+ System.out.println(" 人群密度检测事件 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID);
+ break;
+ }
+ case EVENT_IVS_WORKCLOTHES_DETECT: ///< 安全帽检测事件
+ {
+ NetSDKLib.DEV_EVENT_WORKCLOTHES_DETECT_INFO msg = new NetSDKLib.DEV_EVENT_WORKCLOTHES_DETECT_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, msg);
+ if (msg.stuSceneImage != null && msg.stuSceneImage.nLength > 0) {
+ String bigPicture = picturePath + "\\" + System.currentTimeMillis() + ".jpg";
+ ToolKits.savePicture(pBuffer, msg.stuSceneImage.nOffSet, msg.stuSceneImage.nLength, bigPicture);
+ if (msg.stuHumanImage != null && msg.stuHumanImage.nLength > 0) {
+ String smallPicture = picturePath + "\\" + System.currentTimeMillis() + "small.jpg";
+ ToolKits.savePicture(pBuffer, msg.stuHumanImage.nOffSet, msg.stuHumanImage.nLength, smallPicture);
+ }
+ }
+ System.out.println(" 安全帽检测事件(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID);
+ break;
+ }
+ case EVENT_IVS_CITY_MOTORPARKING: ///< 城市机动车违停事件
+ {
+ NetSDKLib.DEV_EVENT_CITY_MOTORPARKING_INFO msg = new NetSDKLib.DEV_EVENT_CITY_MOTORPARKING_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, msg);
+ stuFileInfo = msg.stuFileInfo;
+ System.out.println(" 城市机动车违停事件 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID + "违停持续时长(单位秒):" + msg.nParkingDuration
+ + "检测到的物体个数:" + msg.nObjectNum);
+ break;
+ }
+ case EVENT_IVS_CITY_NONMOTORPARKING: ///< 城市非机动车违停事件
+ {
+ NetSDKLib.DEV_EVENT_CITY_NONMOTORPARKING_INFO msg = new NetSDKLib.DEV_EVENT_CITY_NONMOTORPARKING_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, msg);
+ stuFileInfo = msg.stuFileInfo;
+ System.out.println(" 城市非机动车违停事件 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID + "检测到的物体个数:" + msg.nObjectNum);
+ break;
+ }
+ case EVENT_IVS_HOLD_UMBRELLA: ///< 违规撑伞检测事件
+ {
+ NetSDKLib.DEV_EVENT_HOLD_UMBRELLA_INFO msg = new NetSDKLib.DEV_EVENT_HOLD_UMBRELLA_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, msg);
+ stuFileInfo = msg.stuFileInfo;
+ System.out.println(" 违规撑伞检测事件 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID + "违法持续时长(单位秒)" + msg.nViolationDuration);
+ break;
+ }
+ case EVENT_IVS_PEDESTRIAN_JUNCTION: ///< 行人卡口事件
+ {
+ NetSDKLib.DEV_EVENT_PEDESTRIAN_JUNCTION_INFO msg = new NetSDKLib.DEV_EVENT_PEDESTRIAN_JUNCTION_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, msg);
+ stuFileInfo = msg.stuFileInfo;
+ System.out.println(" 行人卡口事件 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID + "人行道号" + msg.nLane);
+ break;
+ }
+ case EVENT_IVS_DUSTBIN_OVER_FLOW: ///< 垃圾桶满溢检测事件
+ {
+ NetSDKLib.DEV_EVENT_DUSTBIN_OVER_FLOW_INFO msg = new NetSDKLib.DEV_EVENT_DUSTBIN_OVER_FLOW_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, msg);
+ stuFileInfo = msg.stuFileInfo;
+ System.out.println(" 垃圾桶满溢检测事件 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID
+ + "违法持续时长(单位秒)" + msg.nViolationDuration + "检测到的物体个数" + msg.nObjectNum);
+ break;
+ }
+ case EVENT_IVS_DOOR_FRONT_DIRTY: ///< 门前脏乱检测事件
+ {
+ NetSDKLib.DEV_EVENT_DOOR_FRONT_DIRTY_INFO msg = new NetSDKLib.DEV_EVENT_DOOR_FRONT_DIRTY_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, msg);
+ stuFileInfo = msg.stuFileInfo;
+ System.out.println(" 门前脏乱检测事件 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID
+ + "违法持续时长(单位秒)" + msg.nViolationDuration + "检测到的物体个数" + msg.nObjectNum);
+ break;
+ }
+ case EVENT_IVS_GARBAGE_EXPOSURE: ///< 垃圾暴露检测事件
+ {
+ NetSDKLib.DEV_EVENT_GARBAGE_EXPOSURE_INFO msg = new NetSDKLib.DEV_EVENT_GARBAGE_EXPOSURE_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, msg);
+ stuFileInfo = msg.stuFileInfo;
+ System.out.println(" 垃圾暴露检测事件 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID
+ + "违法持续时长(单位秒)" + msg.nViolationDuration + "检测到的物体个数" + msg.nObjectNum);
+ break;
+ }
+ case EVENT_IVS_VIOLENT_THROW_DETECTION: ///< 暴力抛物事件事件
+ {
+ NetSDKLib.DEV_EVENT_VIOLENT_THROW_DETECTION_INFO msg = new NetSDKLib.DEV_EVENT_VIOLENT_THROW_DETECTION_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, msg);
+ if (msg.stuSceneImage != null && msg.stuSceneImage.nLength > 0) {
+ String bigPicture = picturePath + "\\" + System.currentTimeMillis() + "big.jpg";
+ ToolKits.savePicture(pBuffer, msg.stuSceneImage.nOffSet, msg.stuSceneImage.nLength, bigPicture);
+ }
+ stuFileInfo = msg.stuFileInfo;
+ System.out.println(" 暴力抛物事件事件 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID
+ + "暴力抛物检测区域名称" + new String(msg.szRegionName, Charset.forName(Utils.getPlatformEncode())));
+ break;
+ }
+ case EVENT_IVS_FOG_DETECTION: ///< 起雾检测事件
+ {
+ NetSDKLib.DEV_EVENT_FOG_DETECTION msg = new NetSDKLib.DEV_EVENT_FOG_DETECTION();
+ ToolKits.GetPointerData(pAlarmInfo, msg);
+ String Picture = picturePath + "\\" + System.currentTimeMillis() + ".jpg";
+ ToolKits.savePicture(pBuffer, 0, dwBufSize, Picture);
+ System.out.println(" 起雾检测事件 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID
+ + "事件组ID" + msg.nGroupID + "事件数据类型" + msg.emEventType + "雾等级" + msg.stuFogInfo.emFogLevel);
+ break;
+ }
+ case EVENT_IVS_ACCESS_CTL: ///< 门禁事件
+ {
+ NetSDKLib.DEV_EVENT_ACCESS_CTL_INFO msg = new NetSDKLib.DEV_EVENT_ACCESS_CTL_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, msg);
+ String Picture = picturePath + "\\" + System.currentTimeMillis() + ".jpg";
+ ToolKits.savePicture(pBuffer, 0, dwBufSize, Picture);
+ System.out.println(" 门禁事件 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID
+ + "事件组ID" + msg.nGroupID + "事件数据类型" + msg.emEventType + "人员温度信息是否有效" + msg.bManTemperature
+ + "人员温度" + msg.stuManTemperatureInfo.fCurrentTemperature + "温度单位" + msg.stuManTemperatureInfo.emTemperatureUnit
+ + "是否超温" + msg.stuManTemperatureInfo.bIsOverTemperature);
+ break;
+ }
+ case EVENT_IVS_AUDIO_ABNORMALDETECTION: // 声音异常检测
+ {
+ NetSDKLib.DEV_EVENT_IVS_AUDIO_ABNORMALDETECTION_INFO msg = new NetSDKLib.DEV_EVENT_IVS_AUDIO_ABNORMALDETECTION_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, msg);
+ String Picture = picturePath + "\\" + System.currentTimeMillis() + ".jpg";
+ ToolKits.savePicture(pBuffer, 0, dwBufSize, Picture);
+ System.out.println(" 声音异常检测 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID + "声音强度" + msg.nDecibel + "声音频率" + msg.nFrequency);
+ break;
+ }
+ case EVENT_IVS_CLIMBDETECTION: // 攀高检测事件
+ {
+ NetSDKLib.DEV_EVENT_IVS_CLIMB_INFO msg = new NetSDKLib.DEV_EVENT_IVS_CLIMB_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, msg);
+ stuFileInfo = msg.stuFileInfo;
+ stPicInfo = msg.stuObject.stPicInfo;
+ System.out.println(" 攀高检测事件 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID + " 开始时间:" + msg.stuObject.stuStartTime + " 结束时间:" + msg.stuObject.stuEndTime);
+ break;
+ }
+ case EVENT_IVS_CROSSREGIONDETECTION: ///< 区域入侵事件
+ {
+ NetSDKLib.DEV_EVENT_CROSSREGION_INFO msg = new NetSDKLib.DEV_EVENT_CROSSREGION_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, msg);
+ String Picture = picturePath + "\\" + System.currentTimeMillis() + ".jpg";
+ ToolKits.savePicture(pBuffer, 0, dwBufSize, Picture);
+ System.out.println(" 区域入侵事件 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID + " 开始时间:" + msg.stuObject.stuStartTime + " 结束时间:" + msg.stuObject.stuEndTime);
+// PrintStruct.print(msg);
+ break;
+ }
+ case EVENT_IVS_VIDEOABNORMALDETECTION: ///< 视频异常事件
+ {
+ NetSDKLib.DEV_EVENT_VIDEOABNORMALDETECTION_INFO msg = new NetSDKLib.DEV_EVENT_VIDEOABNORMALDETECTION_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, msg);
+ String Picture = picturePath + "\\" + System.currentTimeMillis() + ".jpg";
+ ToolKits.savePicture(pBuffer, 0, dwBufSize, Picture);
+ System.out.println(" 视频异常事件 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID + "异常类型" + msg.bType);
+ break;
+ }
+ case EVENT_IVS_STAY_ALONE_DETECTION: ///< 单人独处事件
+ {
+ NetSDKLib.DEV_EVENT_STAY_ALONE_DETECTION_INFO msg = new NetSDKLib.DEV_EVENT_STAY_ALONE_DETECTION_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, msg);
+ String Picture = picturePath + "\\" + System.currentTimeMillis() + ".jpg";
+ ToolKits.savePicture(pBuffer, 0, dwBufSize, Picture);
+ System.out.println(" 单人独处事件 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID + "物体ID" + msg.stuHuman.nObjectID);
+ break;
+ }
+ case EVENT_IVS_HIGH_TOSS_DETECT: ///< 高空抛物检测事件
+ {
+ NetSDKLib.DEV_EVENT_HIGH_TOSS_DETECT_INFO msg = new NetSDKLib.DEV_EVENT_HIGH_TOSS_DETECT_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, msg);
+ String Picture = picturePath + "\\" + System.currentTimeMillis() + ".jpg";
+ ToolKits.savePicture(pBuffer, 0, dwBufSize, Picture);
+ System.out.println(" 高空抛物检测事件 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID);
+ break;
+ }
+ case EVENT_IVS_TRAFFIC_PEDESTRAINRUNREDLIGHT://行人闯红灯事件
+ {
+ DEV_EVENT_TRAFFIC_PEDESTRAINRUNREDLIGHT_INFO info = new DEV_EVENT_TRAFFIC_PEDESTRAINRUNREDLIGHT_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, info);
+ stuFileInfo = info.stuFileInfo;
+ stPicInfo = info.stuObject.stPicInfo;
+ System.out.println(info.toString());
+ break;
+ }
+ case EVENT_IVS_FACEDETECT://人脸检测事件
+ {
+ NetSDKLib.DEV_EVENT_FACEDETECT_INFO info = new NetSDKLib.DEV_EVENT_FACEDETECT_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, info);
+ stuFileInfo = info.stuFileInfo;
+ stPicInfo = info.stuObject.stPicInfo;
+ System.out.println("人脸检测: dwOffSet:" + stPicInfo.dwOffSet + ",dwFileLength:" + stPicInfo.dwFileLenth);
+ break;
+ }
+ case EVENT_IVS_SHOP_WINDOW_POST://橱窗张贴事件
+ {
+ DEV_EVENT_SHOP_WINDOW_POST_INFO info = new DEV_EVENT_SHOP_WINDOW_POST_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, info);
+ stuFileInfo = info.stuFileInfo;
+ System.out.println(" 橱窗张贴事件 时间(UTC):" + info.UTC + " 通道号:" + info.nChannelID + " 商铺地址: " + new String(info.szShopAddress, Charset.forName(Utils.getPlatformEncode())).trim()
+ + " 违法持续时间: " + info.nViolationDuration + " 检测到的物体数量: " + info.nObjectNum);
+ for (int i = 0; i < info.nObjectNum; i++) {
+ stPicInfo = info.stuObjects[i].stPicInfo;
+ if (stPicInfo != null && stPicInfo.dwFileLenth > 0) {
+ String smallPicture = picturePath + File.separator + String.format("Small_%d_%s_%d_%d_%d_%d.jpg",
+ dwAlarmType, stuFileInfo.stuFileTime.toStringTitle(), stuFileInfo.bCount,
+ stuFileInfo.bIndex, stuFileInfo.bFileType, stuFileInfo.nGroupId);
+ ToolKits.savePicture(pBuffer, stPicInfo.dwOffSet, stPicInfo.dwFileLenth, smallPicture);
+ }
+ }
+
+ break;
+ }
+ case EVENT_IVS_SHOP_SIGN_ABNORMAL: {//店招异常事件
+ DEV_EVENT_SHOP_SIGN_ABNORMAL_INFO info = new DEV_EVENT_SHOP_SIGN_ABNORMAL_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, info);
+ stuFileInfo = info.stuFileInfo;
+ System.out.println(" 店招异常事件 时间(UTC):" + info.UTC + " 通道号:" + info.nChannelID + " 商铺地址: " + new String(info.szShopAddress, Charset.forName(Utils.getPlatformEncode())).trim()
+ + " 违法持续时间: " + info.nViolationDuration + " 检测到的物体数量: " + info.nObjectNum);
+
+ String Picture = picturePath + "\\" + System.currentTimeMillis() + ".jpg";
+ ToolKits.savePicture(pBuffer, 0, dwBufSize, Picture);
+
+ for (int i = 0; i < info.nObjectNum; i++) {
+ stPicInfo = info.stuObjects[i].stPicInfo;
+ if (stPicInfo != null && stPicInfo.dwFileLenth > 0) {
+ String smallPicture = picturePath + File.separator + String.format("Small_%d_%s_%d_%d_%d_%d.jpg",
+ dwAlarmType, stuFileInfo.stuFileTime.toStringTitle(), stuFileInfo.bCount,
+ stuFileInfo.bIndex, stuFileInfo.bFileType, stuFileInfo.nGroupId);
+ if (stPicInfo.dwOffSet != 0 && stPicInfo.dwFileLenth != 0) {
+ ToolKits.savePicture(pBuffer, stPicInfo.dwOffSet, stPicInfo.dwFileLenth, smallPicture);
+ }
+ }
+ }
+ break;
+ }
+ case EVENT_IVS_STREET_SUNCURE: {//沿街晾晒事件
+ DEV_EVENT_STREET_SUNCURE_INFO info = new DEV_EVENT_STREET_SUNCURE_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, info);
+ stuFileInfo = info.stuFileInfo;
+ System.out.println(" 沿街晾晒事件 时间(UTC):" + info.UTC + " 通道号:" + info.nChannelID + " 违法持续时间: " + info.nViolationDuration + " 检测到的物体数量: " + info.nObjectNum);
+ for (int i = 0; i < info.nObjectNum; i++) {
+ stPicInfo = info.stuObjects[i].stPicInfo;
+ if (stPicInfo != null && stPicInfo.dwFileLenth > 0) {
+ String smallPicture = picturePath + File.separator + String.format("Small_%d_%s_%d_%d_%d_%d.jpg",
+ dwAlarmType, stuFileInfo.stuFileTime.toStringTitle(), stuFileInfo.bCount,
+ stuFileInfo.bIndex, stuFileInfo.bFileType, stuFileInfo.nGroupId);
+ ToolKits.savePicture(pBuffer, stPicInfo.dwOffSet, stPicInfo.dwFileLenth, smallPicture);
+ }
+ }
+ break;
+ }
+ case EVENT_IVS_OUTDOOR_ADVERTISEMENT: {//户外广告事件
+ DEV_EVENT_OUTDOOR_ADVERTISEMENT_INFO info = new DEV_EVENT_OUTDOOR_ADVERTISEMENT_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, info);
+ stuFileInfo = info.stuFileInfo;
+ System.out.println(" 户外广告事件 时间(UTC):" + info.UTC + " 通道号:" + info.nChannelID
+ + " 违法持续时间: " + info.nViolationDuration + " 检测到的物体数量: " + info.nObjectNum);
+ for (int i = 0; i < info.nObjectNum; i++) {
+ stPicInfo = info.stuObjects[i].stPicInfo;
+ if (stPicInfo != null && stPicInfo.dwFileLenth > 0) {
+ String smallPicture = picturePath + File.separator + String.format("Small_%d_%s_%d_%d_%d_%d.jpg",
+ dwAlarmType, stuFileInfo.stuFileTime.toStringTitle(), stuFileInfo.bCount,
+ stuFileInfo.bIndex, stuFileInfo.bFileType, stuFileInfo.nGroupId);
+ ToolKits.savePicture(pBuffer, stPicInfo.dwOffSet, stPicInfo.dwFileLenth, smallPicture);
+ }
+ }
+ break;
+ }
+ case EVENT_IVS_HUDDLE_MATERIAL: {//乱堆物料检测事件
+ DEV_EVENT_HUDDLE_MATERIAL_INFO info = new DEV_EVENT_HUDDLE_MATERIAL_INFO();
+ ToolKits.GetPointerData(pAlarmInfo, info);
+ stuFileInfo = info.stuFileInfo;
+ System.out.println(" 乱堆物料检测事件 时间(UTC):" + info.UTC + " 通道号:" + info.nChannelID + " 违法持续时间: " + info.nViolationDuration + " 检测到的物体数量: " + info.nObjectNum);
+ for (int i = 0; i < info.nObjectNum; i++) {
+ stPicInfo = info.stuObjects[i].stPicInfo;
+ if (stPicInfo != null && stPicInfo.dwFileLenth > 0) {
+ String smallPicture = picturePath + File.separator + String.format("Small_%d_%s_%d_%d_%d_%d.jpg",
+ dwAlarmType, stuFileInfo.stuFileTime.toStringTitle(), stuFileInfo.bCount,
+ stuFileInfo.bIndex, stuFileInfo.bFileType, stuFileInfo.nGroupId);
+ ToolKits.savePicture(pBuffer, stPicInfo.dwOffSet, stPicInfo.dwFileLenth, smallPicture);
+ }
+ }
+ break;
+ }
+ default:
+ break;
+ }
+
+ if (stuFileInfo != null) { // 保存图片
+ String bigPicture = picturePath + File.separator + String.format("Big_%d_%s_%d_%d_%d_%d.jpg",
+ dwAlarmType, stuFileInfo.stuFileTime.toStringTitle(), stuFileInfo.bCount,
+ stuFileInfo.bIndex, stuFileInfo.bFileType, stuFileInfo.nGroupId);
+ ToolKits.savePicture(pBuffer, 0, dwBufSize, bigPicture);
+ if (stPicInfo != null && stPicInfo.dwFileLenth > 0) {
+ String smallPicture = picturePath + File.separator + String.format("Small_%d_%s_%d_%d_%d_%d.jpg",
+ dwAlarmType, stuFileInfo.stuFileTime.toStringTitle(), stuFileInfo.bCount,
+ stuFileInfo.bIndex, stuFileInfo.bFileType, stuFileInfo.nGroupId);
+ ToolKits.savePicture(pBuffer, stPicInfo.dwOffSet, stPicInfo.dwFileLenth, smallPicture);
+ }
+ }
+ return 0;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/netsdk/lib/callback/impl/DefaultAnalyseTaskResultCallBack.java b/src/main/java/com/netsdk/lib/callback/impl/DefaultAnalyseTaskResultCallBack.java
new file mode 100644
index 0000000..f70d4eb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/callback/impl/DefaultAnalyseTaskResultCallBack.java
@@ -0,0 +1,128 @@
+package com.netsdk.lib.callback.impl;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.ToolKits;
+import com.netsdk.lib.Utils;
+import com.sun.jna.Pointer;
+
+import java.io.File;
+import java.nio.charset.Charset;
+
+/**
+ * @author : 47040
+ * @since : Created in 2020/7/18 10:51
+ */
+public class DefaultAnalyseTaskResultCallBack implements NetSDKLib.fAnalyseTaskResultCallBack {
+
+ private static DefaultAnalyseTaskResultCallBack singleInstance;
+ private File picturePath;
+ private static NetSDKLib.DEV_EVENT_FACERECOGNITION_INFO msg=new NetSDKLib.DEV_EVENT_FACERECOGNITION_INFO();
+
+ private DefaultAnalyseTaskResultCallBack() {
+ picturePath = new File("./AnalyzerPicture/");
+ if (!picturePath.exists()) {
+ picturePath.mkdir();
+ }
+ }
+
+ public static DefaultAnalyseTaskResultCallBack getSingleInstance() {
+ if (singleInstance == null) {
+ singleInstance = new DefaultAnalyseTaskResultCallBack();
+ }
+ return singleInstance;
+ }
+
+ @Override
+ public int invoke(NetSDKLib.LLong lAttachHandle, Pointer pstAnalyseTaskResult, Pointer pBuf, int dwBufSize, Pointer dwUser) {
+ long start=System.currentTimeMillis();
+ NetSDKLib.NET_CB_ANALYSE_TASK_RESULT_INFO task = new NetSDKLib.NET_CB_ANALYSE_TASK_RESULT_INFO();
+ ToolKits.GetPointerData(pstAnalyseTaskResult, task); // 从指针获取智能事件分析信息
+
+ for (int i = 0; i < task.nTaskResultNum; i++) {
+ // nTaskID 和主动推送时的一一对应
+ System.out.println(task.stuTaskResultInfos[i].nTaskID);
+ // 实际的事件个数
+ for (int j = 0; j < task.stuTaskResultInfos[i].nEventCount; j++) {
+ NetSDKLib.NET_SECONDARY_ANALYSE_EVENT_INFO info = task.stuTaskResultInfos[i].stuEventInfos[j];
+ // 事件类型 对应 EM_ANALYSE_EVENT_TYPE
+ System.out.println("type:" + info.emEventType);
+ switch (info.emEventType) {
+ //特征提取
+ case NetSDKLib.EM_ANALYSE_EVENT_TYPE.EM_ANALYSE_EVENT_FEATURE_ABSTRACT: {
+ NetSDKLib.DEV_EVENT_FEATURE_ABSTRACT_INFO stInfo = new NetSDKLib.DEV_EVENT_FEATURE_ABSTRACT_INFO();
+ ToolKits.GetPointerDataToStruct(info.pstEventInfo, 0, stInfo);
+
+ System.out.println("nChannelID:" + stInfo.nChannelID); // 通道号
+ System.out.println("nAction:" + stInfo.nAction); // 0:脉冲 1:开始 2:停止
+ System.out.println("emClassType:" + stInfo.emClassType); // 智能事件所属大类 参考 EM_CLASS_TYPE
+
+ for (int k = 0; k < stInfo.nFeatureNum; k++) {
+ // 错误码、特征版本号
+ System.out.println("FeatureVectorList[" + k + "].FeatureErrCode:" + stInfo.stuFeatureVectorList[k].emFeatureErrCode); // 错误码
+ System.out.println("FeatureVectorList[" + k + "].szFeatureVersion:" + new String(stInfo.stuFeatureVectorList[k].szFeatureVersion).trim()); // 特征版本版本号
+ // 这里的特征是设备用于比对的二进制数据,不是图片,具体内容请咨询设备研发
+ System.out.println("FeatureVectorList[" + k + "].stuFeatureVector.dwOffset:" + stInfo.stuFeatureVectorList[k].stuFeatureVector.dwOffset); // 人脸小图特征值在二进制数据块中的偏移
+ System.out.println("FeatureVectorList[" + k + "].stuFeatureVector.dwLength:" + stInfo.stuFeatureVectorList[k].stuFeatureVector.dwLength); // 人脸小图特征值长度,单位:字节
+ // 人脸抓拍角度、质量数据
+ System.out.println("FeatureVectorList[" + k + "].stuFaceAttribute.nAngle1:" + stInfo.stuFeatureVectorList[k].stuFaceAttribute.nAngle[0]); // 人脸抓拍角度,三个角度分别是:仰俯角,偏航角,翻滚角;默认值[999,999,999]表示无此数据
+ System.out.println("FeatureVectorList[" + k + "].stuFaceAttribute.nAngle2:" + stInfo.stuFeatureVectorList[k].stuFaceAttribute.nAngle[1]); // 偏航角
+ System.out.println("FeatureVectorList[" + k + "].stuFaceAttribute.nAngle3:" + stInfo.stuFeatureVectorList[k].stuFaceAttribute.nAngle[2]); // 翻滚角
+ System.out.println("FeatureVectorList[" + k + "].stuFeatureVector.nFaceAlignScore:" + stInfo.stuFeatureVectorList[k].stuFaceAttribute.nFaceAlignScore); // 人脸对齐得分分数,取值范围 0~10000,-1为无效值
+ System.out.println("FeatureVectorList[" + k + "].stuFeatureVector.nFaceQuality:" + stInfo.stuFeatureVectorList[k].stuFaceAttribute.nFaceQuality); // 人脸抓拍质量分数,取值范围 0~10000
+ }
+ break;
+ }
+ //目标识别
+ case NetSDKLib.EM_ANALYSE_EVENT_TYPE.EM_ANALYSE_EVENT_FACE_RECOGNITION: {
+ /*NetSDKLib.DEV_EVENT_FACERECOGNITION_INFO stInfo = new NetSDKLib.DEV_EVENT_FACERECOGNITION_INFO();
+ ToolKits.GetPointerDataToStruct(info.pstEventInfo, 0, stInfo);
+ System.out.println("objectType: " + new String(stInfo.stuObject.szObjectType, Charset.forName(Utils.getPlatformEncode())));
+ System.out.println("人脸匹配到的候选对象数量:" + stInfo.nCandidateNum + ",人员信息,相似度:" + stInfo.stuCandidates[0].bySimilarity);*/
+ //msg读字节
+
+ msg.getPointer().write(0,info.pstEventInfo.getByteArray(0,msg.size()),0,msg.size());
+ //读取nCandidateNum属性
+ int nCandidateNum=(int)msg.readField("nCandidateNum");
+ //获取stuCandidates结构体偏移量
+ int offset=msg.fieldOffset("stuCandidates");
+ //获取CANDIDATE_INFO结构体大小
+ int size=msg.stuCandidates[0].size();
+ for (int m = 0; m < nCandidateNum; m++) {
+ //按照偏移量写入stuCandidates数组
+ msg.stuCandidates[m].getPointer().write(0,info.pstEventInfo.getByteArray(offset+size*m, size),0,size);
+ //读取相似度
+ byte similarity=(byte)msg.stuCandidates[m].readField("bySimilarity");
+ //读取stPersonInfo结构体对象
+ msg.stuCandidates[m].readField("stPersonInfo");
+ msg.stuCandidates[m].stPersonInfo.read();
+ //人员唯一标示(身份证号码,工号,或其他编号)
+ String personId=new String(msg.stuCandidates[m].stPersonInfo.szID,Charset.forName(Utils.getPlatformEncode())).trim();
+ //人员唯一标识符,首次由服务端生成,区别于ID字段
+ String personUId=new String(msg.stuCandidates[m].stPersonInfo.szUID,Charset.forName(Utils.getPlatformEncode())).trim();
+ //
+ System.out.println("id:"+personId+",uid: "+personUId+",similarity: "+similarity);
+ }
+ msg.readField("stuObject");
+ //保存图片
+ //下发的图片
+ String picture = picturePath + "/my-" + System.currentTimeMillis() + ".jpg";
+ ToolKits.savePicture(pBuf, 0, msg.stuObject.stPicInfo.dwFileLenth, picture);
+ //匹配的图片
+ picture = picturePath + "/search-" + System.currentTimeMillis() + ".jpg";
+ ToolKits.savePicture(pBuf, msg.stuObject.stPicInfo.dwFileLenth, dwBufSize, picture);
+ break;
+ }
+ default: {
+ System.out.println("default");
+ break;
+ }
+ }
+ }
+
+ System.out.println(new String(task.stuTaskResultInfos[i].szFileID, Charset.forName(Utils.getPlatformEncode())).trim());
+ }
+ long end=System.currentTimeMillis();
+ System.out.println("cost millions: "+(end-start));
+ return 0;
+ }
+}
diff --git a/src/main/java/com/netsdk/lib/callback/impl/DefaultDisconnectCallback.java b/src/main/java/com/netsdk/lib/callback/impl/DefaultDisconnectCallback.java
new file mode 100644
index 0000000..8a19a99
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/callback/impl/DefaultDisconnectCallback.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.callback.impl;
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 基础实现的设备断线回调函数, 建议使用单例模式编写
+ * @date 2020/6/5
+ */
+public class DefaultDisconnectCallback implements NetSDKLib.fDisConnect {
+ private static volatile DefaultDisconnectCallback INSTANCE;
+
+ private DefaultDisconnectCallback() {}
+
+ public static DefaultDisconnectCallback getINSTANCE() {
+ if (INSTANCE == null) {
+ synchronized (DefaultDisconnectCallback.class){
+ if (INSTANCE == null){
+ INSTANCE = new DefaultDisconnectCallback();
+ }
+ }
+ }
+ return INSTANCE;
+ }
+
+ @Override
+ public void invoke(NetSDKLib.LLong lLoginID, String pchDVRIP, int nDVRPort, Pointer dwUser) {
+ System.out.printf("Device[%s] Port[%d] DisConnected!\n", pchDVRIP, nDVRPort);
+ }
+}
diff --git a/src/main/java/com/netsdk/lib/callback/impl/DefaultHaveReconnectCallBack.java b/src/main/java/com/netsdk/lib/callback/impl/DefaultHaveReconnectCallBack.java
new file mode 100644
index 0000000..b3e12ee
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/callback/impl/DefaultHaveReconnectCallBack.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.callback.impl;
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 基础实现的设备断线重连的回调函数, 建议使用单例模式编写回调函数
+ * @date 2020/6/5
+ */
+public class DefaultHaveReconnectCallBack implements NetSDKLib.fHaveReConnect {
+ private static DefaultHaveReconnectCallBack INSTANCE;
+
+ private DefaultHaveReconnectCallBack() {
+
+ }
+
+ public static DefaultHaveReconnectCallBack getINSTANCE() {
+ if (INSTANCE == null) {
+ INSTANCE = new DefaultHaveReconnectCallBack();
+ }
+ return INSTANCE;
+ }
+
+ @Override
+ public void invoke(NetSDKLib.LLong lLoginID, String pchDVRIP, int nDVRPort, Pointer dwUser) {
+ System.out.printf("Device[%s] Port[%d] ReConnected!\n", pchDVRIP, nDVRPort);
+ }
+}
diff --git a/src/main/java/com/netsdk/lib/callback/impl/DefaultRealPlayCallback.java b/src/main/java/com/netsdk/lib/callback/impl/DefaultRealPlayCallback.java
new file mode 100644
index 0000000..eff5486
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/callback/impl/DefaultRealPlayCallback.java
@@ -0,0 +1,49 @@
+package com.netsdk.lib.callback.impl;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.EM_REAL_DATA_TYPE;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 拉流回调函数
+ * @date 2021/3/2
+ */
+public class DefaultRealPlayCallback implements NetSDKLib.fRealDataCallBackEx2 {
+ private static DefaultRealPlayCallback instance;
+
+ private DefaultRealPlayCallback() {}
+
+ public static DefaultRealPlayCallback getInstance() {
+ if (instance == null) {
+ instance = new DefaultRealPlayCallback();
+ }
+ return instance;
+ }
+
+ @Override
+ public void invoke(
+ NetSDKLib.LLong lRealHandle,
+ int dwDataType,
+ Pointer pBuffer,
+ int dwBufSize,
+ NetSDKLib.LLong param,
+ Pointer dwUser) {
+ // 私有流或mp4文件
+ if (dwDataType == 0 || dwDataType == 1003) {
+
+ } else {
+ int dataType = dwDataType - 1000;
+ // h264流
+ if (dataType == 4) {
+
+ } else if (dataType == 5) {
+ // flv流
+ }
+ }
+ if(dwDataType!=0){
+ System.out.println("realHandler: "+lRealHandle.longValue()+",dwDataType: "+dwDataType+",bufSize: "+dwBufSize);
+ }
+ }
+}
diff --git a/src/main/java/com/netsdk/lib/callback/impl/DefaultRedirectServerCallBackEx.java b/src/main/java/com/netsdk/lib/callback/impl/DefaultRedirectServerCallBackEx.java
new file mode 100644
index 0000000..880eade
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/callback/impl/DefaultRedirectServerCallBackEx.java
@@ -0,0 +1,113 @@
+package com.netsdk.lib.callback.impl;
+
+import com.netsdk.lib.Utils;
+import com.netsdk.lib.callback.fRedirectServerCallBackEx;
+import com.netsdk.lib.structure.NET_CB_REDIRECT_SERVER_CALLBACK_INFO;
+import com.netsdk.module.AutoRegisterModule;
+import com.sun.jna.Pointer;
+
+import java.nio.charset.Charset;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 主动注册重定向回调函数默认实现,使用单例模式实现
+ * @date 2021/3/13
+ */
+public class DefaultRedirectServerCallBackEx implements fRedirectServerCallBackEx {
+ private static volatile DefaultRedirectServerCallBackEx instance;
+ private AutoRegisterModule autoRegisterModule;
+
+ private DefaultRedirectServerCallBackEx() {
+ this.autoRegisterModule = new AutoRegisterModule();
+ }
+
+ public static DefaultRedirectServerCallBackEx getInstance() {
+ if (instance == null) {
+ synchronized (DefaultRedirectServerCallBackEx.class) {
+ if (instance == null) {
+ instance = new DefaultRedirectServerCallBackEx();
+ }
+ }
+ }
+ return instance;
+ }
+
+ private Map redirectIps = new ConcurrentHashMap<>();
+
+ /**
+ * 设置各设备ID所需要重定向到的服务器IP和端口
+ *
+ * @param deviceID
+ * @param redirectIp
+ * @param redirectPort
+ */
+ public void putRedirectInfo(String deviceID, String redirectIp, short redirectPort) {
+ redirectIps.put(deviceID, new RedirectInfo(redirectIp, redirectPort));
+ }
+
+ public void putDefaultRedirectInfo(String redirectIp, short redirectPort) {
+ redirectIps.put("default", new RedirectInfo(redirectIp, redirectPort));
+ }
+
+ public void removeRedirectInfo(String deviceID) {
+ redirectIps.remove(deviceID);
+ }
+
+ @Override
+ public void dealWithData(
+ long devHandler, NET_CB_REDIRECT_SERVER_CALLBACK_INFO info, Pointer userData) {
+ System.out.println(
+ "receive device[ id: "
+ + new String(info.szDeviceID, Charset.forName(Utils.getPlatformEncode())).trim()
+ + ",ip: "
+ + info.szIP
+ + ",port: "
+ + info.nPort
+ + "]");
+ RedirectInfo redirectInfo =
+ redirectIps.get(
+ new String(info.szDeviceID, Charset.forName(Utils.getPlatformEncode())).trim());
+ if (redirectInfo == null) {
+ redirectInfo = redirectIps.get("default");
+ }
+ if (redirectInfo != null) {
+ RedirectInfo finalRedirectInfo = redirectInfo;
+ new Thread(() -> setRedirect(devHandler, finalRedirectInfo, (short) 3)).start();
+ }
+ }
+
+ private void setRedirect(long devHandler, RedirectInfo info, short ntry) {
+ autoRegisterModule.setRedirectServer(devHandler, info.redirectIp, info.redirectPort, ntry);
+ }
+
+ private class RedirectInfo {
+ private String redirectIp;
+ private short redirectPort;
+
+ public RedirectInfo() {}
+
+ public RedirectInfo(String redirectIp, short redirectPort) {
+ this.redirectIp = redirectIp;
+ this.redirectPort = redirectPort;
+ }
+
+ public String getRedirectIp() {
+ return redirectIp;
+ }
+
+ public void setRedirectIp(String redirectIp) {
+ this.redirectIp = redirectIp;
+ }
+
+ public int getRedirectPort() {
+ return redirectPort;
+ }
+
+ public void setRedirectPort(short redirectPort) {
+ this.redirectPort = redirectPort;
+ }
+ }
+}
diff --git a/src/main/java/com/netsdk/lib/callback/impl/DefaultServiceCallBack.java b/src/main/java/com/netsdk/lib/callback/impl/DefaultServiceCallBack.java
new file mode 100644
index 0000000..f329f65
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/callback/impl/DefaultServiceCallBack.java
@@ -0,0 +1,45 @@
+package com.netsdk.lib.callback.impl;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.module.BaseModule;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 主动注册回调函数,回调函数请使用单例模式
+ * @date 2021/3/13
+ */
+public class DefaultServiceCallBack implements NetSDKLib.fServiceCallBack {
+ private static volatile DefaultServiceCallBack instance;
+
+ private DefaultServiceCallBack() {
+ this.baseModule = new BaseModule();
+ }
+
+ public static DefaultServiceCallBack getInstance() {
+ if (instance == null) {
+ synchronized (DefaultServiceCallBack.class) {
+ if (instance == null) {
+ instance = new DefaultServiceCallBack();
+ }
+ }
+ }
+ return instance;
+ }
+
+ private BaseModule baseModule;
+
+ @Override
+ public int invoke(
+ NetSDKLib.LLong lHandle,
+ String pIp,
+ int wPort,
+ int lCommand,
+ Pointer pParam,
+ int dwParamLen,
+ Pointer dwUserData) {
+ System.out.println("receive device[ip: " + pIp + ",port: " + wPort + "] auto register.");
+ return 0;
+ }
+}
diff --git a/src/main/java/com/netsdk/lib/callback/impl/DefaultVideoStatHeatMapCallBack.java b/src/main/java/com/netsdk/lib/callback/impl/DefaultVideoStatHeatMapCallBack.java
new file mode 100644
index 0000000..de1dbe2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/callback/impl/DefaultVideoStatHeatMapCallBack.java
@@ -0,0 +1,166 @@
+package com.netsdk.lib.callback.impl;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.callback.BasicVideoStatHeatMapCallBack;
+import com.netsdk.lib.callback.fVideoStatHeatMapCallBack;
+import com.netsdk.lib.enumeration.EM_HEATMAP_TYPE;
+import com.netsdk.module.HeatMapModule;
+import com.netsdk.module.entity.HeatMapData;
+import com.netsdk.module.entity.HeatMapGrayData;
+import com.sun.jna.Pointer;
+
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 热度图回调函数的默认实现, 回调函数建议写成单例模式, 不然容易导致sdk出现意想不到的错误
+ * @date 2020/9/24
+ */
+public class DefaultVideoStatHeatMapCallBack extends BasicVideoStatHeatMapCallBack {
+ private HeatMapModule module;
+ /** 由于热度图数据是分多次发送,需要判断数据接收完整再处理 */
+ private ConcurrentHashMap binDatas;
+ /** 用于外部获取灰度图数据 */
+ public static ConcurrentHashMap grayDatas =
+ new ConcurrentHashMap();
+
+ private static DefaultVideoStatHeatMapCallBack instance;
+
+ private DefaultVideoStatHeatMapCallBack() {
+ this.module = new HeatMapModule();
+ this.binDatas = new ConcurrentHashMap();
+ }
+
+ public static fVideoStatHeatMapCallBack getInstance() {
+ if (instance == null) {
+ instance = new DefaultVideoStatHeatMapCallBack();
+ }
+ return instance;
+ }
+
+ /**
+ * 解析数据
+ *
+ * @param attachHandle 订阅句柄
+ * @param nToken 获取数据的句柄,即调用{@link
+ * com.netsdk.lib.NetSDKLib#CLIENT_GetVideoStatHeatMap(NetSDKLib.LLong, Pointer, Pointer,
+ * int)} 对应其出参的nToken字段{@link com.netsdk.lib.structure.NET_OUT_GET_VIDEOSTAT_HEATMAP#nToken}
+ * @param type 热度图类型
+ * @param binData 热度图字节数据
+ */
+ @Override
+ public void parseData(long attachHandle, int nToken, EM_HEATMAP_TYPE type, byte[] binData) {
+ System.out.println(
+ "receive heatmap data. attachHandle:"
+ + attachHandle
+ + ",nToken:"
+ + nToken
+ + ",type:"
+ + type.getType()
+ + ","
+ + type.getDesc()
+ + " data length:"
+ + binData.length);
+ // 协议描述:每个getHeatMap请求的结果分多个包来发送,每个包的大小在 “4~7此次数据总长度”中描述,每个包的 “8~11
+ // 总行数(总轨迹条数)”相同,每个包的“12~15本次行数(本次轨迹条数)”表示本包的数据数量,最后一个包的“12~15本次行数(本次轨迹条数)”值为0,表示数据发送完毕。
+ // 当总行数(或者总轨迹条数)和本次行数(或者本次轨迹条数)都为0时,表示没有数据。
+ // 当总行数(或者总轨迹条数)不为0,而本次行数(或者本次轨迹条数)为0时表示,数据已经传完
+ // 对binData进行过滤
+ byte[] temp = new byte[4];
+ System.arraycopy(binData, 7, temp, 0, 4);
+ // 总行数
+ int totalLine = byte2Int(temp);
+ System.arraycopy(binData, 11, temp, 0, 4);
+ // 本次行数
+ int currentLine = byte2Int(temp);
+ if (totalLine == 0 && currentLine == 0) {
+ System.out.println("token:" + nToken + ",本次没有数据");
+ return;
+ }
+ // 总行数和本次行数都不为0时,说明数据有效
+ if (totalLine != 0 && currentLine != 0) {
+ HeatMapData heatMapData = binDatas.get(nToken);
+ // 获取宽高,宽16-17位,高18-19位
+ int width = ((binData[16] & 0xFF)) | ((binData[17] & 0xFF) << 8);
+ int height = ((binData[18] & 0xFF)) | ((binData[19] & 0xFF) << 8);
+
+ if (heatMapData == null) {
+ heatMapData = new HeatMapData(width, height, binData);
+ } else {
+ /** 目前设备端处理是一个完整数据包和一个结束包,以下代码基本不会被执行到, 先按协议进行多包数据拼接处理 */
+ // 获取已保存数据的数据行数
+ System.arraycopy(heatMapData.getData(), 11, temp, 0, 4);
+ int savedLine = byte2Int(temp);
+ // 合并后的本次行数
+ int currentTotal = savedLine + currentLine;
+ byte[] bytes = int2ByteArr(currentTotal);
+ System.arraycopy(bytes, 0, heatMapData.getData(), 11, bytes.length);
+ // 去掉数据头,数据头为32位
+ byte[] data = new byte[binData.length - 32];
+ System.arraycopy(binData, 32, data, 0, data.length);
+ // 追加到完整数据包中
+ heatMapData.addData(data);
+ }
+ // 将数据存到map中
+ binDatas.put(nToken, heatMapData);
+ }
+ // 数据接收完成
+ if (totalLine != 0 && currentLine == 0) {
+
+ // 将数据取出
+ HeatMapData heatMapData = binDatas.get(nToken);
+
+ if (heatMapData != null) {
+ System.out.println(
+ "width:"
+ + heatMapData.getWidth()
+ + ",height:"
+ + heatMapData.getHeight()
+ + ",data length:"
+ + heatMapData.getData().length);
+ // 热度图数据转灰度图
+ byte[] grayData =
+ module.transferGray(
+ heatMapData.getData(), heatMapData.getWidth(), heatMapData.getHeight());
+ // 销毁binData数据
+ binDatas.remove(nToken);
+ // 保存灰度图数据
+ grayDatas.put(
+ nToken, new HeatMapGrayData(heatMapData.getWidth(), heatMapData.getHeight(), grayData));
+ }
+ }
+ }
+
+ /**
+ * 将byte[4]转成int
+ *
+ * @param src
+ * @return
+ */
+ private int byte2Int(byte[] src) {
+ int value;
+ value =
+ (int)
+ ((src[0] & 0xFF)
+ | ((src[1] & 0xFF) << 8)
+ | ((src[2] & 0xFF) << 16)
+ | ((src[3] & 0xFF) << 24));
+ return value;
+ }
+
+ /**
+ * int转成byte[],长度为4
+ *
+ * @param value
+ * @return
+ */
+ private byte[] int2ByteArr(int value) {
+ byte[] bytes = new byte[4];
+ bytes[3] = (byte) (value >> 24);
+ bytes[2] = (byte) (value >> 16);
+ bytes[1] = (byte) (value >> 8);
+ bytes[0] = (byte) (value);
+ return bytes;
+ }
+}
diff --git a/src/main/java/com/netsdk/lib/callback/impl/MessCallBack.java b/src/main/java/com/netsdk/lib/callback/impl/MessCallBack.java
new file mode 100644
index 0000000..15d365a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/callback/impl/MessCallBack.java
@@ -0,0 +1,444 @@
+package com.netsdk.lib.callback.impl;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.NetSDKLib.*;
+import com.netsdk.lib.ToolKits;
+import com.netsdk.lib.constant.SDK_ALARM_Ex_TYPE;
+import com.netsdk.lib.enumeration.*;
+import com.netsdk.lib.structure.ALARM_HEATIMG_TEMPER_INFO;
+import com.netsdk.lib.structure.ALARM_NO_DISK_INFO;
+import com.netsdk.lib.structure.ALARM_SOLARCELL_SYSTEM_INFO;
+import com.netsdk.lib.structure.ALARM_TRAFFIC_LIGHT_STATE_INFO;
+import com.sun.jna.NativeLong;
+import com.sun.jna.Pointer;
+
+import java.io.UnsupportedEncodingException;
+
+import static com.netsdk.lib.Utils.getOsPrefix;
+
+public class MessCallBack implements NetSDKLib.fMessCallBack {
+
+ private MessCallBack() {
+ }
+
+ private static class CallBackHolder {
+ private static final MessCallBack cb = new MessCallBack();
+ }
+
+ public static final MessCallBack getInstance() {
+ return CallBackHolder.cb;
+ }
+
+ public static String encode;
+
+ static {
+ String osPrefix = getOsPrefix();
+ if (osPrefix.toLowerCase().startsWith("win32-amd64")) {
+ encode = "GBK";
+ } else if (osPrefix.toLowerCase().startsWith("linux-amd64")) {
+ encode = "UTF-8";
+ }
+ }
+
+ @Override
+ public boolean invoke(int lCommand, LLong lLoginID, Pointer pStuEvent,
+ int dwBufLen, String strDeviceIP, NativeLong nDevicePort,
+ Pointer dwUser) {
+ switch (lCommand) {
+ /************************************************************
+ * 门禁事件 *
+ *************************************************************/
+ case NetSDKLib.NET_ALARM_ACCESS_CTL_EVENT: // 门禁事件
+ {
+ ALARM_ACCESS_CTL_EVENT_INFO msg = new ALARM_ACCESS_CTL_EVENT_INFO();
+ ToolKits.GetPointerData(pStuEvent, msg);
+ try {
+ System.out.println("【门禁事件】 " + new String(msg.szQRCode, "GBK"));
+ } catch (UnsupportedEncodingException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ break;
+ }
+ case NetSDKLib.NET_ALARM_ACCESS_CTL_NOT_CLOSE: // 门禁未关事件详细信息
+ {
+ ALARM_ACCESS_CTL_NOT_CLOSE_INFO msg = new ALARM_ACCESS_CTL_NOT_CLOSE_INFO();
+ ToolKits.GetPointerData(pStuEvent, msg);
+ try {
+ System.out.printf("【门禁未关事件详细信息】 时间:%s 门通道号:%d 门禁名称:%s 事件动作(0:开始 1:停止):%d \n",
+ msg.stuTime, msg.nDoor, new String(msg.szDoorName, "GBK").trim(), msg.nAction);
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ break;
+ }
+ case NetSDKLib.NET_ALARM_ACCESS_CTL_BREAK_IN: // 闯入事件详细信息
+ {
+ ALARM_ACCESS_CTL_BREAK_IN_INFO msg = new ALARM_ACCESS_CTL_BREAK_IN_INFO();
+ ToolKits.GetPointerData(pStuEvent, msg);
+ try {
+ System.out.printf("【闯入事件详细信息】 时间:%s 门通道号:%d 门禁名称:%s \n",
+ msg.stuTime, msg.nDoor, new String(msg.szDoorName, "GBK").trim());
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ break;
+ }
+ case NetSDKLib.NET_ALARM_ACCESS_CTL_REPEAT_ENTER: // 反复进入事件详细信息
+ {
+ ALARM_ACCESS_CTL_REPEAT_ENTER_INFO msg = new ALARM_ACCESS_CTL_REPEAT_ENTER_INFO();
+ ToolKits.GetPointerData(pStuEvent, msg);
+ try {
+ System.out.printf("【反复进入事件详细信息】 时间:%s 门通道号:%d 门禁名称:%s 卡号:%s\n",
+ msg.stuTime, msg.nDoor, new String(msg.szDoorName, "GBK").trim(), new String(msg.szCardNo).trim());
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ break;
+ }
+ case NetSDKLib.NET_ALARM_ACCESS_CTL_DURESS: // 胁迫卡刷卡事件详细信息
+ {
+ ALARM_ACCESS_CTL_DURESS_INFO msg = new ALARM_ACCESS_CTL_DURESS_INFO();
+ ToolKits.GetPointerData(pStuEvent, msg);
+ try {
+ System.out.printf("【胁迫卡刷卡事件详细信息】 时间:%s 门通道号:%d 门禁名称:%s 胁迫卡号:%s\n",
+ msg.stuTime, msg.nDoor, new String(msg.szDoorName, "GBK").trim(), new String(msg.szCardNo).trim());
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ break;
+ }
+ case NetSDKLib.NET_ALARM_OPENDOORGROUP: // 多人组合开门事件
+ {
+ ALARM_OPEN_DOOR_GROUP_INFO msg = new ALARM_OPEN_DOOR_GROUP_INFO();
+ ToolKits.GetPointerData(pStuEvent, msg);
+ System.out.printf("【多人组合开门事件】 时间:%s 门通道号:%d\n", msg.stuTime, msg.nChannelID);
+ break;
+ }
+ case NetSDKLib.NET_ALARM_ACCESS_CTL_STATUS: // 门禁状态事件
+ {
+ ALARM_ACCESS_CTL_STATUS_INFO msg = new ALARM_ACCESS_CTL_STATUS_INFO();
+ ToolKits.GetPointerData(pStuEvent, msg);
+ System.out.printf("【门禁状态事件】 时间:%s 门通道号:%d 门禁状态:%d\n", msg.stuTime, msg.nDoor, msg.emStatus);
+ break;
+ }
+ case NetSDKLib.NET_ALARM_FINGER_PRINT: // 获取指纹事件
+ {
+ ALARM_CAPTURE_FINGER_PRINT_INFO msg = new ALARM_CAPTURE_FINGER_PRINT_INFO();
+ ToolKits.GetPointerData(pStuEvent, msg);
+ System.out.printf("【获取指纹事件】 时间:%s 门通道号:%d 采集结果:%d\n", msg.stuTime, msg.nChannelID, msg.bCollectResult);
+ break;
+ }
+ case NetSDKLib.NET_ALARM_QR_CODE_CHECK: // 二维码上报事件
+ {
+ ALARM_QR_CODE_CHECK_INFO msg = new ALARM_QR_CODE_CHECK_INFO();
+ ToolKits.GetPointerData(pStuEvent, msg);
+ try {
+ System.out.printf("【二维码上报事件】 UTC:%s 二维码字符串:%s ",
+ msg.UTC, new String(msg.szQRCode, "GBK").trim());
+ } catch (UnsupportedEncodingException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ break;
+ }
+ /****************************************************************
+ * 报警主机事件 *
+ *****************************************************************/
+ case NetSDKLib.NET_ALARM_POWERFAULT: // 电源故障事件
+ {
+ ALARM_POWERFAULT_INFO msg = new ALARM_POWERFAULT_INFO();
+ ToolKits.GetPointerData(pStuEvent, msg);
+ System.out.printf("【电源故障事件】 时间:%s 电源类型:%d 电源故障事件:%d 事件动作(0:开始 1:停止):%d\n",
+ msg.stuTime, msg.emPowerType, msg.emPowerFaultEvent, msg.nAction);
+ break;
+ }
+ case NetSDKLib.NET_ALARM_BATTERYLOWPOWER: // 蓄电池低电压事件
+ {
+ ALARM_BATTERYLOWPOWER_INFO msg = new ALARM_BATTERYLOWPOWER_INFO();
+ ToolKits.GetPointerData(pStuEvent, msg);
+ System.out.printf("【蓄电池低电压事件】 时间:%s 通道号:%d 剩余电量百分比:%d 事件动作(0:开始 1:停止):%d\n",
+ msg.stTime, msg.nChannelID, msg.nBatteryLeft, msg.nAction);
+ break;
+ }
+ case NetSDKLib.NET_ALARM_ARMMODE_CHANGE_EVENT: // 设备布防模式变化事件
+ {
+ ALARM_ARMMODE_CHANGE_INFO msg = new ALARM_ARMMODE_CHANGE_INFO();
+ ToolKits.GetPointerData(pStuEvent, msg);
+ System.out.printf("【设备布防模式变化事件】 时间:%s 变化后的状态:%d ID号:%d 用户ID:%d\n",
+ msg.stuTime, msg.bArm, msg.dwID, msg.nUserCode);
+ break;
+ }
+ case NetSDKLib.NET_ALARM_BYPASSMODE_CHANGE_EVENT: // 防区旁路状态变化事件
+ {
+ ALARM_BYPASSMODE_CHANGE_INFO msg = new ALARM_BYPASSMODE_CHANGE_INFO();
+ ToolKits.GetPointerData(pStuEvent, msg);
+ System.out.printf("【防区旁路状态变化事件】 时间:%s 通道号:%d 变化后的模式:%d ID号:%d \n",
+ msg.stuTime, msg.nChannelID, msg.dwID, msg.emMode);
+ break;
+ }
+ case NetSDKLib.NET_ALARM_INPUT_SOURCE_SIGNAL: // 报警输入源信号事件
+ {
+ ALARM_INPUT_SOURCE_SIGNAL_INFO msg = new ALARM_INPUT_SOURCE_SIGNAL_INFO();
+ ToolKits.GetPointerData(pStuEvent, msg);
+ System.out.printf("【报警输入源信号事件】 时间:%s 通道号:%d 事件动作(0:开始 1:停止):%d \n",
+ msg.stuTime, msg.nChannelID, msg.nAction);
+ break;
+ }
+ case NetSDKLib.NET_ALARM_ALARMCLEAR: // 消警事件
+ {
+ ALARM_ALARMCLEAR_INFO msg = new ALARM_ALARMCLEAR_INFO();
+ ToolKits.GetPointerData(pStuEvent, msg);
+ System.out.printf("【消警事件】 时间:%s 通道号:%d 事件动作(0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束):%d \n",
+ msg.stuTime, msg.nChannelID, msg.bEventAction);
+ break;
+ }
+ case NetSDKLib.NET_ALARM_SUBSYSTEM_STATE_CHANGE: // 子系统状态改变事件
+ {
+ ALARM_SUBSYSTEM_STATE_CHANGE_INFO msg = new ALARM_SUBSYSTEM_STATE_CHANGE_INFO();
+ ToolKits.GetPointerData(pStuEvent, msg);
+ System.out.printf("【子系统状态改变事件】 时间:%s 子系统序号:%d 变化后的状态:%d \n", msg.stuTime, msg.nChannelID, msg.emState);
+ break;
+ }
+ case NetSDKLib.NET_ALARM_MODULE_LOST: // 扩展模块掉线事件
+ {
+ ALARM_MODULE_LOST_INFO msg = new ALARM_MODULE_LOST_INFO();
+ ToolKits.GetPointerData(pStuEvent, msg);
+ System.out.printf("【扩展模块掉线事件】 时间:%s 扩展模块接的总线的序号:%d 掉线的扩展模块数目:%d 设备类型:%s 在线情况(0-不在线,1-在线):%d \n",
+ msg.stuTime, msg.nSequence, msg.nAddr, new String(msg.szDevType).trim(), msg.bOnline);
+ break;
+ }
+ case NetSDKLib.NET_ALARM_PSTN_BREAK_LINE: // PSTN掉线事件
+ {
+ ALARM_PSTN_BREAK_LINE_INFO msg = new ALARM_PSTN_BREAK_LINE_INFO();
+ ToolKits.GetPointerData(pStuEvent, msg);
+ System.out.printf("【PSTN掉线事件】 时间:%s 电话线序号:%d 事件动作(0:开始 1:停止):%d \n",
+ msg.stuTime, msg.nChannelID, msg.nAction);
+ break;
+ }
+ case NetSDKLib.NET_ALARM_DEFENCE_ARMMODE_CHANGE: // 防区布撤防状态改变事件
+ {
+ ALARM_DEFENCE_ARMMODECHANGE_INFO msg = new ALARM_DEFENCE_ARMMODECHANGE_INFO();
+ ToolKits.GetPointerData(pStuEvent, msg);
+ System.out.printf("【防区布撤防状态改变事件】 时间:%s 布撤防状态:%d 防区号:%d \n",
+ msg.stuTime, msg.emDefenceStatus, msg.nDefenceID);
+ break;
+ }
+ case NetSDKLib.NET_ALARM_SUBSYSTEM_ARMMODE_CHANGE: // 子系统布撤防状态改变事件
+ {
+ ALARM_SUBSYSTEM_ARMMODECHANGE_INFO msg = new ALARM_SUBSYSTEM_ARMMODECHANGE_INFO();
+ ToolKits.GetPointerData(pStuEvent, msg);
+ System.out.printf("【子系统布撤防状态改变事件】 UTC:%s 布撤防状态:%d 子系统编号:%d \n",
+ msg.UTC, msg.emSubsystemMode, msg.nSubSystemID);
+ break;
+ }
+ case NetSDKLib.NET_ALARM_SENSOR_ABNORMAL: // 探测器异常报警
+ {
+ ALARM_SENSOR_ABNORMAL_INFO msg = new ALARM_SENSOR_ABNORMAL_INFO();
+ ToolKits.GetPointerData(pStuEvent, msg);
+ System.out.printf("【探测器异常报警】 时间:%s 通道号:%d 探测器状态:%d 事件动作(0:开始 1:停止):%d \n",
+ msg.stuTime, msg.nChannelID, msg.emStatus, msg.nAction);
+ break;
+ }
+ /************************************************************
+ * 通用事件 *
+ *************************************************************/
+ case NetSDKLib.NET_ALARM_ALARM_EX2: // 本地报警事件
+ {
+ ALARM_ALARM_INFO_EX2 msg = new ALARM_ALARM_INFO_EX2();
+ ToolKits.GetPointerData(pStuEvent, msg);
+ System.out.printf("【本地报警事件】 时间:%s 通道号:%d 事件动作(0:开始 1:停止):%d \n",
+ msg.stuTime, msg.nChannelID, msg.nAction);
+ break;
+ }
+ case NetSDKLib.NET_ALARM_CHASSISINTRUDED: // 防拆事件
+ {
+ ALARM_CHASSISINTRUDED_INFO msg = new ALARM_CHASSISINTRUDED_INFO();
+ ToolKits.GetPointerData(pStuEvent, msg);
+ System.out.printf("【防拆事件】 时间:%s 通道号:%d 事件动作(0:开始 1:停止):%d \n",
+ msg.stuTime, msg.nChannelID, msg.nAction);
+ break;
+ }
+ case NetSDKLib.NET_ALARM_RCEMERGENCY_CALL: // 紧急呼叫报警事件
+ {
+ ALARM_RCEMERGENCY_CALL_INFO msg = new ALARM_RCEMERGENCY_CALL_INFO();
+ ToolKits.GetPointerData(pStuEvent, msg);
+ System.out.printf("【紧急呼叫报警事件】 时间:%s 紧急类型:%d 报警方式:%d 事件动作(-1:未知 0:开始 1:停止):%d \n",
+ msg.stuTime, msg.emType, msg.emMode, msg.nAction);
+ break;
+ }
+ case NetSDKLib.NET_ALARM_CROWD_DETECTION: // 人群密度检测事件
+ {
+ ALARM_CROWD_DETECTION_INFO msg = new ALARM_CROWD_DETECTION_INFO();
+ ToolKits.GetPointerData(pStuEvent, msg);
+ System.out.printf("【人群密度检测事件】 UTC:%s 通道号:%d 事件动作(0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束):%d ",
+ msg.UTC, msg.nChannelID, msg.nEventAction);
+ break;
+ }
+ /************************************************************
+ * 交通事件 *
+ *************************************************************/
+ case NetSDKLib.NET_ALARM_TRAFFIC_XINKONG: // 交通态势报警事件
+ {
+ ALARM_TRAFFIC_XINKONG_INFO msg = new ALARM_TRAFFIC_XINKONG_INFO();
+ ToolKits.GetPointerData(pStuEvent, msg);
+ System.out.printf("【交通态势报警事件】 UTC:%s 通道号:%d 物理车道号:%d 车牌号:%s carID:%d carType:%d \n",
+ msg.UTC, msg.nChannelID, msg.stuLaneInfo[0].nLane
+ , new String(msg.stuLaneInfo[0].stuCoilsInfo[0].PlateNum).trim()
+ , msg.stuLaneInfo[0].stuCoilsInfo[0].nCarId
+ , msg.stuLaneInfo[0].stuCoilsInfo[0].emCarType);
+ break;
+ }
+ /************************************************************
+ * 电警红绿灯状态 *
+ ************************************************************/
+ case NetSDKLib.NET_ALARM_TRAFFIC_LIGHT_STATE: // 电警红绿灯状态事件
+ {
+ System.out.println("\n\n TRAFFIC [ ALARM TRAFFIC LIGHT STATE ]");
+
+ ALARM_TRAFFIC_LIGHT_STATE_INFO msg = new ALARM_TRAFFIC_LIGHT_STATE_INFO();
+ ToolKits.GetPointerData(pStuEvent, msg);
+
+ StringBuilder builder = new StringBuilder();
+ try {
+ builder.append("<<------门禁报警事件主要信息------>>").append("\n")
+ .append("nChannel 通道: ").append(msg.nChannelID).append("\n")
+ .append("nAction 事件状态(0:脉冲 1:开始 2:停止): ").append(msg.nAction).append("\n")
+ .append("szName 事件名称: ").append(new String(msg.szName, encode)).append("\n")
+ .append("PTS 时间戳: ").append(msg.PTS).append("\n")
+ .append("UTC 发生时间: ").append(msg.UTC).append("\n")
+ .append("nEventID 事件ID: ").append(msg.nEventID).append("\n")
+ .append("nSource 源地址: ").append(msg.nSource).append("\n")
+ .append("nFrameSequence 帧序号: ").append(msg.nFrameSequence).append("\n")
+ .append("emLightSource 红绿灯触发源: ").append(EM_TRFAFFIC_LIGHT_SOURCE.getNoteByValue(msg.emLightSource)).append("\n");
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+
+ builder.append("///->灯亮的持续时间组,共 ").append(msg.nLightPeriodsNum).append(" 组\n");
+ for (int i = 0; i < msg.nLightPeriodsNum; i++) {
+ builder.append("<<-----[").append(i).append("]----->>").append("\n")
+ .append("emType 交通灯类型: ").append(EM_TRFAFFIC_LIGHT_TYPE.getNoteByValue(msg.stuLightPeriods[i].emType)).append("\n")
+ .append("nStraight 直行灯持续时间: ").append(msg.stuLightPeriods[i].nStraight).append("\n")
+ .append("nTurnLeft 左转灯持续时间: ").append(msg.stuLightPeriods[i].nTurnLeft).append("\n")
+ .append("nTurnRight 右转灯持续时间: ").append(msg.stuLightPeriods[i].nTurnRight).append("\n")
+ .append("nUTurn 掉头灯持续时间: ").append(msg.stuLightPeriods[i].nUTurn).append("\n");
+ }
+
+ builder.append("///->交通灯状态组,共 ").append(msg.nLightStateNum).append(" 组\n");
+ for (int i = 0; i < msg.nLightStateNum; i++) {
+ builder.append("<<-----[").append(i).append("]----->>").append("\n")
+ .append("emStraightLightInfo 直行信号灯状态: ").append(NET_TRAFFIC_LIGHT_STATUS.getNoteByValue(msg.stuLightStates[i].emStraightLightInfo)).append("\n")
+ .append("emTurnLeftLightInfo 左转信号灯状态: ").append(NET_TRAFFIC_LIGHT_STATUS.getNoteByValue(msg.stuLightStates[i].emTurnLeftLightInfo)).append("\n")
+ .append("emTurnRightLightInfo 右转信号灯状态: ").append(NET_TRAFFIC_LIGHT_STATUS.getNoteByValue(msg.stuLightStates[i].emTurnRightLightInfo)).append("\n")
+ .append("emUTurnLightInfo 调头信号灯状态: ").append(NET_TRAFFIC_LIGHT_STATUS.getNoteByValue(msg.stuLightStates[i].emUTurnLightInfo)).append("\n");
+ }
+
+ System.out.println(builder.toString());
+
+ break;
+ }
+ /**
+ * 太阳能系统信息上报
+ */
+ case SDK_ALARM_Ex_TYPE.SDK_ALARM_SOLARCELL_SYSTEM_INFO: {
+ /**
+ * 太阳能电池信息
+ */
+ ALARM_SOLARCELL_SYSTEM_INFO info = new ALARM_SOLARCELL_SYSTEM_INFO();
+ ToolKits.GetPointerData(pStuEvent, info);
+
+ System.out.printf("太阳能电池信息: 脉冲:%d, 事件发生时间:%s,时间戳:%f", info.nAction, info.UTC.toStringTime(), info.PTS);
+
+ System.out.printf("蓄电池信息: 电量百分比:%d,电压:%f,温度:%f,控制温度:%f",
+ info.stuBatteryInfo.nElectricityQuantityPercent,
+ info.stuBatteryInfo.fVoltage,
+ info.stuBatteryInfo.fTemperature,
+ info.stuBatteryInfo.fControllerTemper);
+
+ System.out.printf("太阳能历史数据: 系统运行时间:%d,蓄电池总放电次数:%d,蓄电池总充满电次数:%d",
+ info.stuHistoryInfo.nSystemTotalRunDay,
+ info.stuHistoryInfo.nBatteryOverDischargeCount,
+ info.stuHistoryInfo.nBatteryTotalChargeCount);
+
+ System.out.printf("太阳能板信息: 电压:%f,电流:%f,充电功率:%f",
+ info.stuSolarPanel.fVoltage,
+ info.stuSolarPanel.fElectricCurrent,
+ info.stuSolarPanel.fChargingPower);
+ System.out.println("故障信息:");
+ for (int i = 0; i < info.nSystemFault; i++) {
+ System.out.println(EM_SOLARCELL_SYSTEM_FAULT_TYPE.getSolarcellFaultType(info.emSystemFault[i]).getInfo());
+ }
+ break;
+ }
+
+ /**
+ * 硬盘满警告信息,数据为1个字节,1为有硬盘满报警,0为无报警。
+ */
+ case SDK_ALARM_Ex_TYPE.SDK_DISKFULL_ALARM_EX: {
+ byte[] info = new byte[1];
+ pStuEvent.read(0, info, 0, info.length);
+ System.out.println(info[0] == 1 ? "硬盘满报警" : "无硬盘报警");
+ break;
+ }
+ /**
+ * 硬盘故障
+ */
+ case SDK_ALARM_Ex_TYPE.SDK_DISKERROR_ALARM_EX: {
+ byte[] info = new byte[32];
+ pStuEvent.read(0, info, 0, info.length);
+ for (int i = 0; i < info.length; i++) {
+ System.out.println("info[" + i + "]" + (info[i] == 1 ? "硬盘错误报警" : "无报警"));
+ }
+ break;
+ }
+ /**
+ * 无硬盘报警
+ */
+ case SDK_ALARM_Ex_TYPE.SDK_ALARM_NO_DISK: {
+ ALARM_NO_DISK_INFO info=new ALARM_NO_DISK_INFO();
+ ToolKits.GetPointerData(pStuEvent,info);
+ System.out.println("time:"+info.stuTime.toString()+",action:"+(info.dwAction==0?"Start":(info.dwAction==1?"Stop":"UnKnown")));
+ break;
+ }
+ /************************************************************
+ * 热成像测温点报警 *
+ ************************************************************/
+ case NetSDKLib.NET_ALARM_HEATIMG_TEMPER: // 热成像测温点报警
+ {
+ System.out.println("\n\n THERMAL [ ALARM HEATIMG TEMPER ]");
+
+ ALARM_HEATIMG_TEMPER_INFO msg = new ALARM_HEATIMG_TEMPER_INFO();
+ ToolKits.GetPointerData(pStuEvent, msg);
+
+ StringBuilder builder = new StringBuilder();
+ try {
+ builder.append("<<------门禁报警事件主要信息------>>").append("\n")
+ .append("szName 温度异常点名称: ").append(new String(msg.szName, encode)).append("\n")
+ .append("nAlarmId 报警项编号: ").append(msg.nAlarmId).append("\n")
+ .append("nResult 报警结果值: ").append(NET_RADIOMETRY_RESULT.getNoteByValue(msg.nResult)).append("\n")
+ .append("nAlarmContion 报警条件: ").append(NET_RADIOMETRY_ALARMCONTION.getNoteByValue(msg.nAlarmContion)).append("\n")
+ .append("fTemperatureValue 报警温度值: ").append(msg.fTemperatureValue).append("\n")
+ .append("nTemperatureUnit 温度单位: ").append(msg.nTemperatureUnit == 1 ? "摄氏度" : (msg.nTemperatureUnit == 2 ? "华氏度" : "未知")).append("\n")
+ .append("nPresetID 预置点: ").append(msg.nPresetID).append("\n")
+ .append("nChannel 通道号: ").append(msg.nChannel).append("\n")
+ .append("nAction 事件状态: ").append(msg.nAction == 0 ? "开始" : (msg.nAction == 1 ? "停止" : "无意义")).append("\n")
+ .append("stuAlarmCoordinates 报警坐标Ex: ").append("\n");
+ for (int i = 0; i < msg.stuAlarmCoordinates.nPointNum; i++) {
+ builder.append(String.format("[%2d] (%4d, %4d)", i, msg.stuAlarmCoordinates.stuPoints[i].nx, msg.stuAlarmCoordinates.stuPoints[i].ny)).append("\n");
+ }
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+
+ System.out.println(builder.toString());
+
+ break;
+ }
+ default:
+ break;
+ }
+
+ return true;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/netsdk/lib/callback/securityCheck/fNotifyPopulationStatisticsInfo.java b/src/main/java/com/netsdk/lib/callback/securityCheck/fNotifyPopulationStatisticsInfo.java
new file mode 100644
index 0000000..edf4b61
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/callback/securityCheck/fNotifyPopulationStatisticsInfo.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.callback.securityCheck;
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Callback;
+import com.sun.jna.Pointer;
+
+
+/**
+ * @author : 291189
+ * @since : Created in 2021/7/5
+// 接口 CLIENT_AttachPopulationStatistics 回调函数
+// pstuPopulationStatisticsInfos 人数变化信息
+ */
+public interface fNotifyPopulationStatisticsInfo extends Callback {
+
+ void invoke(
+ NetSDKLib.LLong lPopulationStatisticsHandle,
+ Pointer pstuPopulationStatisticsInfos,
+ Pointer dwUser);
+ //typedef int (CALLBACK *fNotifyPopulationStatisticsInfo)(LLONG lPopulationStatisticsHandle, NET_POPULATION_STATISTICS_INFO* pstuPopulationStatisticsInfos, LDWORD dwUser);
+}
diff --git a/src/main/java/com/netsdk/lib/callback/securityCheck/fSecurityGateAttachAlarmStatistics.java b/src/main/java/com/netsdk/lib/callback/securityCheck/fSecurityGateAttachAlarmStatistics.java
new file mode 100644
index 0000000..81ac99b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/callback/securityCheck/fSecurityGateAttachAlarmStatistics.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.callback.securityCheck;
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Callback;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description 安全门报警订阅回调函数
+ * @date 2021/6/29
+ */
+public interface fSecurityGateAttachAlarmStatistics extends Callback{
+
+ /**
+ * @param lAttachHandle 订阅句柄
+ * @param pInfo 安全门报警统计信息,对应结构体{@link com.netsdk.lib.structure.NET_SECURITYGATE_ALARM_STATISTICS_INFO}
+ * @param dwUser 用户数据
+ */
+ void invoke(
+ NetSDKLib.LLong lAttachHandle,
+ Pointer pInfo,
+ Pointer dwUser);
+
+ // (LLONG lAttachHandle, NET_SECURITYGATE_ALARM_STATISTICS_INFO* pInfo, LDWORD dwUser);
+}
diff --git a/src/main/java/com/netsdk/lib/callback/securityCheck/fXRayAttachPackageStatistics.java b/src/main/java/com/netsdk/lib/callback/securityCheck/fXRayAttachPackageStatistics.java
new file mode 100644
index 0000000..8fed86e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/callback/securityCheck/fXRayAttachPackageStatistics.java
@@ -0,0 +1,23 @@
+package com.netsdk.lib.callback.securityCheck;
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Callback;
+import com.sun.jna.Pointer;
+/**
+ * @author 291189
+ * @version 1.0
+ * @description 包裹信息回调函数
+ * @date 2021/7/1
+ */
+public interface fXRayAttachPackageStatistics extends Callback {
+ /**
+ * @param lAttachHandle 订阅句柄
+ * @param pInfo 包裹信息回调函数,对应结构体{@link com.netsdk.lib.structure.NET_IN_XRAY_PACKAGE_STATISTICS_INFO}
+ * @param dwUser 用户数据
+ */
+ void invoke(
+ NetSDKLib.LLong lAttachHandle,
+ Pointer pInfo,
+ Pointer dwUser);
+
+}
diff --git a/src/main/java/com/netsdk/lib/constant/SDKStructureFieldLenth.java b/src/main/java/com/netsdk/lib/constant/SDKStructureFieldLenth.java
new file mode 100644
index 0000000..053a4c0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/constant/SDKStructureFieldLenth.java
@@ -0,0 +1,87 @@
+package com.netsdk.lib.constant;
+
+/**
+ * 一些结构体成员变量的数组长度
+ *
+ * @author 47081 47040
+ * @version 1.0
+ * @since 2020/8/24
+ */
+public class SDKStructureFieldLenth {
+ /** 通用名字字符串长度 */
+ public static final int NET_MAX_NAME_LEN = 16;
+ /** 视频分析设备支持的检测物体类型列表个数上限 */
+ public static final int MAX_OBJECT_LIST_SIZE = 16;
+ /** 一周的天数 */
+ public static final int WEEK_DAY_NUM = 7;
+ /** 录像时间段扩展个数 */
+ public static final int MAX_REC_TSECT_EX = 10;
+ /** 通用字符串长度512 */
+ public static final int SDK_COMMON_STRING_512 = 512;
+ /** 电视墙最大预案数 */
+ public static final int NET_MAX_COLLECTION_NUM = 64;
+ /** 景物点信息最大个数 */
+ public static final int MAX_SCENICSPOT_POINTS_NUM = 256;
+ /** 协议名称长度 */
+ public static final int MAX_PROTOCOL_NAME_LEN = 32;
+ /** 通用字符串长度32 */
+ public static final int CFG_COMMON_STRING_32 = 32;
+ /** 隐私遮挡类型数量 */
+ public static final int MAX_MASKTYPE_COUNT = 8;
+ /** 马赛克遮挡类型数量 */
+ public static final int MAX_MOSAICTYPE_COUNT = 8;
+ /** 最大下位矩阵输出通道数 */
+ public static final int CFG_MAX_LOWER_MATRIX_OUTPUT = 32;
+ /** 最大通道数256 */
+ public static final int CFG_MAX_VIDEO_CHANNEL_NUM = 256;
+ /** 最大多画面预览窗口数 8 */
+ public static final int CFG_MAX_PREVIEW_MODE_SPLIT_TYPE_NUM = 8;
+ /** 规则检测区域最大顶点数 */
+ public static final int SDK_MAX_DETECT_REGION_NUM = 20;
+ /** 检测到目标的最大个数 */
+ public static final int HDBJ_MAX_OBJECTS_NUM = 200;
+ /** 规则检测区域最大顶点数 */
+ public static final int DH_MAX_DETECT_REGION_NUM = 20;
+ /** 最大事件名称长度 */
+ public static final int MAX_EVENT_NAME_LEN = 128;
+ /** 最大标定点个数 */
+ public static final int MAX_CALIBRATE_POINT_NUM = 64;
+ /** 最大的地址长度 */
+ public static final int MAX_ADDRESS_LEN = 256;
+ /** 最大密码长度 */
+ public static final int MAX_PASSWORD_LEN = 64;
+ /** 最大的SIP服务器ID长度 */
+ public static final int MAX_SIP_SVR_ID_LEN = 24;
+ /** 最大的SIP域长度 */
+ public static final int MAX_SIP_DOMAIN_LEN = 128;
+ /** 最大的SIP服务器IP长度 */
+ public static final int MAX_SIP_SVR_IP_LEN = 128;
+ /** 最大的设备编号长度 */
+ public static final int MAX_SIP_SERVER_DEVICE_ID_LEN = 24;
+ /** 最大的注册密码长度 */
+ public static final int MAX_REG_PASSWORD_LEN = 24;
+ /** 最大的行政区划代码长度 */
+ public static final int MAX_CIVIL_CODE_LEN = 24;
+ /** 最大的接入模块识别码长度 */
+ public static final int MAX_INTERVIDEO_ID_LEN = 24;
+ /** 最大的通道编号长度 */
+ public static final int MAX_CHANNEL_ID_LEN = 24;
+ /** 最大的SIP服务器信息个数 */
+ public static final int MAX_SIP_SERVER_NUM = 5;
+ /** 动态检测区域的行数 */
+ public static final int MAX_MOTION_ROW = 32;
+ /** 动态检测区域的列数 */
+ public static final int MAX_MOTION_COL = 32;
+ /** 动检支持的视频窗口值 */
+ public static final int MAX_MOTION_WINDOW = 10;
+ /** 每个云台的最大配置数 */
+ public static final int MAX_CONFIG_NUM=32;
+ /** 最大语音编码类型个数 */
+ public static final int CFG_MAX_AUDIO_ENCODE_TYPE = 64;
+ /** 视频分辨率个数 */
+ public static final int CFG_MAX_CAPTURE_SIZE_NUM = 64;
+ /** 视频编码格式最多种类个数 */
+ public static final int CFG_MAX_COMPRESSION_TYPES_NUM = 16;
+ /** 路径最大长度 */
+ public static final int MAX_PATH = 260;
+}
diff --git a/src/main/java/com/netsdk/lib/constant/SDK_ALARM_Ex_TYPE.java b/src/main/java/com/netsdk/lib/constant/SDK_ALARM_Ex_TYPE.java
new file mode 100644
index 0000000..e6e5403
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/constant/SDK_ALARM_Ex_TYPE.java
@@ -0,0 +1,44 @@
+package com.netsdk.lib.constant;
+
+import com.netsdk.lib.structure.ALARM_SOLARCELL_SYSTEM_INFO;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.NativeLong;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description \if ENGLISH_LANG
+ *
+ * \else
+ * 扩展报警类型,对应{@link NetSDKLib#CLIENT_StartListenEx(NetSDKLib.LLong)}
+ * \endif
+ * @date 2020/8/11
+ */
+public class SDK_ALARM_Ex_TYPE {
+ /**
+ * 太阳能系统信息上报(对应结构体 {@link ALARM_SOLARCELL_SYSTEM_INFO}),枚举值对应的回调接口{@link com.netsdk.lib.NetSDKLib.fMessCallBack#invoke(int, NetSDKLib.LLong, Pointer, int, String, NativeLong, Pointer)}
+ * 对应的接口{@link NetSDKLib#CLIENT_StartListenEx(NetSDKLib.LLong)}
+ */
+ public static final int SDK_ALARM_SOLARCELL_SYSTEM_INFO = 0x345F;
+
+ /**
+ * 硬盘满报警,数据为1个字节,1为有硬盘满报警,0为无报警。
+ * 对应的回调接口{@link NetSDKLib.fMessCallBack#invoke(int, NetSDKLib.LLong, Pointer, int, String, NativeLong, Pointer)}
+ * 对应的接口{@link NetSDKLib#CLIENT_StartListenEx(NetSDKLib.LLong)}
+ */
+ public static final int SDK_DISKFULL_ALARM_EX = 0x2106;
+ /**
+ * 坏硬盘报警,数据为32个字节,每个字节表示一个硬盘的故障报警状态,1为有报警,0为无报警。
+ * 对应的回调接口{@link NetSDKLib.fMessCallBack#invoke(int, NetSDKLib.LLong, Pointer, int, String, NativeLong, Pointer)}
+ * 对应的接口{@link NetSDKLib#CLIENT_StartListenEx(NetSDKLib.LLong)}
+ */
+ public static final int SDK_DISKERROR_ALARM_EX = 0x2107;
+ /**
+ * 无硬盘报警,对应结构体{@link com.netsdk.lib.structure.ALARM_NO_DISK_INFO}
+ * 对应的回调接口{@link NetSDKLib.fMessCallBack#invoke(int, NetSDKLib.LLong, Pointer, int, String, NativeLong, Pointer)}
+ * 对应的接口{@link NetSDKLib#CLIENT_StartListenEx(NetSDKLib.LLong)}
+ */
+ public static final int SDK_ALARM_NO_DISK = 0x2183;
+
+}
diff --git a/src/main/java/com/netsdk/lib/enumeration/CAPTURE_SIZE.java b/src/main/java/com/netsdk/lib/enumeration/CAPTURE_SIZE.java
new file mode 100644
index 0000000..b69dc1b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/CAPTURE_SIZE.java
@@ -0,0 +1,257 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 分辨率枚举,供DH_DSP_ENCODECAP使用
+* @date 2022/08/31 14:44:17
+*/
+public enum CAPTURE_SIZE {
+/**
+704*576(PAL) 704*480(NTSC),兼容WWxHH,下同
+*/
+ CAPTURE_SIZE_D1(0, "704*576(PAL) 704*480(NTSC),兼容WWxHH,下同"),
+/**
+352*576(PAL) 352*480(NTSC)
+*/
+ CAPTURE_SIZE_HD1(1, "352*576(PAL) 352*480(NTSC)"),
+/**
+704*288(PAL) 704*240(NTSC)
+*/
+ CAPTURE_SIZE_BCIF(2, "704*288(PAL) 704*240(NTSC)"),
+/**
+352*288(PAL) 352*240(NTSC)
+*/
+ CAPTURE_SIZE_CIF(3, "352*288(PAL) 352*240(NTSC)"),
+/**
+176*144(PAL) 176*120(NTSC)
+*/
+ CAPTURE_SIZE_QCIF(4, "176*144(PAL) 176*120(NTSC)"),
+/**
+640*480
+*/
+ CAPTURE_SIZE_VGA(5, "640*480"),
+/**
+320*240
+*/
+ CAPTURE_SIZE_QVGA(6, "320*240"),
+/**
+480*480
+*/
+ CAPTURE_SIZE_SVCD(7, "480*480"),
+/**
+160*128
+*/
+ CAPTURE_SIZE_QQVGA(8, "160*128"),
+/**
+800*592
+*/
+ CAPTURE_SIZE_SVGA(9, "800*592"),
+/**
+1024*768
+*/
+ CAPTURE_SIZE_XVGA(10, "1024*768"),
+/**
+1280*800
+*/
+ CAPTURE_SIZE_WXGA(11, "1280*800"),
+/**
+1280*1024
+*/
+ CAPTURE_SIZE_SXGA(12, "1280*1024"),
+/**
+1600*1024
+*/
+ CAPTURE_SIZE_WSXGA(13, "1600*1024"),
+/**
+1600*1200
+*/
+ CAPTURE_SIZE_UXGA(14, "1600*1200"),
+/**
+1920*1200
+*/
+ CAPTURE_SIZE_WUXGA(15, "1920*1200"),
+/**
+240*192,ND1
+*/
+ CAPTURE_SIZE_LTF(16, "240*192,ND1"),
+/**
+1280*720
+*/
+ CAPTURE_SIZE_720(17, "1280*720"),
+/**
+1920*1080
+*/
+ CAPTURE_SIZE_1080(18, "1920*1080"),
+/**
+1280*960
+*/
+ CAPTURE_SIZE_1_3M(19, "1280*960"),
+/**
+1872*1408,2_5M
+*/
+ CAPTURE_SIZE_2M(20, "1872*1408,2_5M"),
+/**
+3744*1408
+*/
+ CAPTURE_SIZE_5M(21, "3744*1408"),
+/**
+2048*1536
+*/
+ CAPTURE_SIZE_3M(22, "2048*1536"),
+/**
+2432*2050
+*/
+ CAPTURE_SIZE_5_0M(23, "2432*2050"),
+/**
+1216*1024
+*/
+ CPTRUTE_SIZE_1_2M(24, "1216*1024"),
+/**
+1408*1024
+*/
+ CPTRUTE_SIZE_1408_1024(25, "1408*1024"),
+/**
+3296*2472
+*/
+ CPTRUTE_SIZE_8M(26, "3296*2472"),
+/**
+2560*1920(5_1M)
+*/
+ CPTRUTE_SIZE_2560_1920(27, "2560*1920(5_1M)"),
+/**
+960*576(PAL) 960*480(NTSC)
+*/
+ CAPTURE_SIZE_960H(28, "960*576(PAL) 960*480(NTSC)"),
+/**
+960*720
+*/
+ CAPTURE_SIZE_960_720(29, "960*720"),
+/**
+640*360
+*/
+ CAPTURE_SIZE_NHD(30, "640*360"),
+/**
+320*180
+*/
+ CAPTURE_SIZE_QNHD(31, "320*180"),
+/**
+160*90
+*/
+ CAPTURE_SIZE_QQNHD(32, "160*90"),
+/**
+960*540
+*/
+ CAPTURE_SIZE_960_540(33, "960*540"),
+/**
+640*352
+*/
+ CAPTURE_SIZE_640_352(34, "640*352"),
+/**
+640*400
+*/
+ CAPTURE_SIZE_640_400(35, "640*400"),
+/**
+320*192
+*/
+ CAPTURE_SIZE_320_192(36, "320*192"),
+/**
+320*176
+*/
+ CAPTURE_SIZE_320_176(37, "320*176"),
+/**
+800*600
+*/
+ CAPTURE_SIZE_SVGA1(38, "800*600"),
+/**
+2560*1440
+*/
+ CAPTURE_SIZE_2560_1440(39, "2560*1440"),
+/**
+2304*1296
+*/
+ CAPTURE_SIZE_2304_1296(40, "2304*1296"),
+/**
+2592*1520
+*/
+ CAPTURE_SIZE_2592_1520(41, "2592*1520"),
+/**
+4000*3000
+*/
+ CAPTURE_SIZE_4000_3000(42, "4000*3000"),
+/**
+2880*2880
+*/
+ CAPTURE_SIZE_2880_2880(43, "2880*2880"),
+/**
+2880*2160
+*/
+ CAPTURE_SIZE_2880_2160(44, "2880*2160"),
+/**
+2688*1520
+*/
+ CAPTURE_SIZE_2688_1520(45, "2688*1520"),
+/**
+2592*1944
+*/
+ CAPTURE_SIZE_2592_1944(46, "2592*1944"),
+/**
+3072*1728
+*/
+ CAPTURE_SIZE_3072_1728(47, "3072*1728"),
+/**
+3072*2048
+*/
+ CAPTURE_SIZE_3072_2048(48, "3072*2048"),
+/**
+3840*2160
+*/
+ CAPTURE_SIZE_3840_2160(49, "3840*2160"),
+/**
+
+*/
+ CAPTURE_SIZE_NR(25, "");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+CAPTURE_SIZE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (CAPTURE_SIZE enumType : CAPTURE_SIZE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (CAPTURE_SIZE enumType : CAPTURE_SIZE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static CAPTURE_SIZE getEnum(int value) {
+ for (CAPTURE_SIZE e : CAPTURE_SIZE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return CAPTURE_SIZE.CAPTURE_SIZE_D1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/CFG_ACCESS_PROPERTY_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/CFG_ACCESS_PROPERTY_TYPE.java
new file mode 100644
index 0000000..4ad7c52
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/CFG_ACCESS_PROPERTY_TYPE.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 门禁单双向配置类型
+ * @date 2021/2/7
+ */
+public enum CFG_ACCESS_PROPERTY_TYPE {
+ /** 未知 */
+ CFG_ACCESS_PROPERTY_UNKNOWN(0, "未知"),
+ /** 双向门禁 */
+ CFG_ACCESS_PROPERTY_BIDIRECT(1, "双向门禁"),
+ /** 单向门禁 */
+ CFG_ACCESS_PROPERTY_UNIDIRECT(2, "单向门禁");
+
+ private int type;
+ private String desc;
+
+ CFG_ACCESS_PROPERTY_TYPE(int type, String desc) {
+ this.type = type;
+ this.desc = desc;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/CFG_DEFOG_MODE.java b/src/main/java/com/netsdk/lib/enumeration/CFG_DEFOG_MODE.java
new file mode 100644
index 0000000..3f46967
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/CFG_DEFOG_MODE.java
@@ -0,0 +1,71 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 透雾模式枚举
+* @origin autoTool
+* @date 2023/11/30 15:50:58
+*/
+public enum CFG_DEFOG_MODE {
+ /**
+ * 未知方式
+ */
+ EM_DEFOG_MODE_UNKNOW(0, "未知方式"),
+ /**
+ * 关闭
+ */
+ EM_DEFOG_MODE_OFF(1, "关闭"),
+ /**
+ * 自动
+ */
+ EM_DEFOG_MODE_AUTO(2, "自动"),
+ /**
+ * 手动
+ */
+ EM_DEFOG_MODE_MANA(3, "手动");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+CFG_DEFOG_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (CFG_DEFOG_MODE enumType : CFG_DEFOG_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (CFG_DEFOG_MODE enumType : CFG_DEFOG_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static CFG_DEFOG_MODE getEnum(int value) {
+ for (CFG_DEFOG_MODE e : CFG_DEFOG_MODE.values()) {
+ if (e.getValue() == value){
+ return e;
+ }
+ }
+ return CFG_DEFOG_MODE.EM_DEFOG_MODE_UNKNOW;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/CFG_EM_ASG_VOICE_DIRECTION.java b/src/main/java/com/netsdk/lib/enumeration/CFG_EM_ASG_VOICE_DIRECTION.java
new file mode 100644
index 0000000..c96567d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/CFG_EM_ASG_VOICE_DIRECTION.java
@@ -0,0 +1,47 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 闸机进出语音方向
+ * @date 2021/2/7
+ */
+public enum CFG_EM_ASG_VOICE_DIRECTION {
+ CFG_EM_ASG_VOICE_DIRECTION_UNKNOWN(0, "未知"),
+ CFG_EM_ASG_VOICE_DIRECTION_ENTER(1, "进入"),
+ CFG_EM_ASG_VOICE_DIRECTION_LEAVE(2, "离开");
+
+ private int direction;
+ private String desc;
+
+ CFG_EM_ASG_VOICE_DIRECTION(int direction, String desc) {
+ this.direction = direction;
+ this.desc = desc;
+ }
+
+ public static CFG_EM_ASG_VOICE_DIRECTION getVoiceDirection(int direction) {
+ for (CFG_EM_ASG_VOICE_DIRECTION voiceDirection : CFG_EM_ASG_VOICE_DIRECTION.values()) {
+ if (voiceDirection.direction == direction) {
+ return voiceDirection;
+ }
+ }
+ return CFG_EM_ASG_VOICE_DIRECTION_UNKNOWN;
+ }
+
+ public int getDirection() {
+ return direction;
+ }
+
+ public void setDirection(int direction) {
+ this.direction = direction;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public void setDesc(String desc) {
+ this.desc = desc;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/CFG_EM_BODY_TRAIT.java b/src/main/java/com/netsdk/lib/enumeration/CFG_EM_BODY_TRAIT.java
new file mode 100644
index 0000000..8ed3dfe
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/CFG_EM_BODY_TRAIT.java
@@ -0,0 +1,92 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 人体检测及人体识别支持的身体特征
+ * @date 2021/01/11
+ */
+public enum CFG_EM_BODY_TRAIT {
+ // 未知
+ CFG_EM_BODY_TRAIT_UNKNOWN(0, "未知"),
+ // 性别
+ CFG_EM_BODY_TRAIT_SEX(1, "性别"),
+ // 年龄组
+ CFG_EM_BODY_TRAIT_AGEGROUP(2, "年龄组"),
+ // 上衣
+ CFG_EM_BODY_TRAIT_COATTYPE(3, "上衣"),
+ // 裤子
+ CFG_EM_BODY_TRAIT_TROUSERSTYPE(4, "裤子"),
+ // 人体角度
+ CFG_EM_BODY_TRAIT_ANGLE(5, "人体角度"),
+ // 上衣模式
+ CFG_EM_BODY_TRAIT_UPPERPATTERN(6, "上衣模式"),
+ // 裤子颜色
+ CFG_EM_BODY_TRAIT_TROUSERSCOLOR(7, "裤子颜色"),
+ // 打伞
+ CFG_EM_BODY_TRAIT_UMBRELLA(8, "打伞"),
+ // 雨伞颜色
+ CFG_EM_BODY_TRAIT_UMBRELLACOLOR(9, "雨伞颜色"),
+ // 胸前报东西
+ CFG_EM_BODY_TRAIT_HOLD(10, "胸前报东西"),
+ // 裤子模式
+ CFG_EM_BODY_TRAIT_TROUSERSPATTERN(11, "裤子模式"),
+ // 帽子款式
+ CFG_EM_BODY_TRAIT_HATTYPE(12, "帽子款式"),
+ // 帽子颜色
+ CFG_EM_BODY_TRAIT_HATCOLOR(13, "帽子颜色"),
+ // 上衣款式
+ CFG_EM_BODY_TRAIT_UPPERTYPE(14, "上衣款式"),
+ // 上衣颜色
+ CFG_EM_BODY_TRAIT_COATCOLOR(15, "上衣颜色"),
+ // 发型
+ CFG_EM_BODY_TRAIT_HAIRSTYLE(16, "发型"),
+ // 头发颜色
+ CFG_EM_BODY_TRAIT_HAIRCOLOR(17, "头发颜色"),
+ // 鞋子款式
+ CFG_EM_BODY_TRAIT_SHOESTYPE(18, "鞋子款式"),
+ // 鞋子颜色
+ CFG_EM_BODY_TRAIT_SHOESCOLOR(19, "鞋子颜色"),
+ // 箱包款式
+ CFG_EM_BODY_TRAIT_BAG(20, "箱包款式"),
+ // 箱包颜色
+ CFG_EM_BODY_TRAIT_BAGCOLOR(21, "箱包颜色"),
+ // 口罩
+ CFG_EM_BODY_TRAIT_MASK(22, "口罩"),
+ // 口罩颜色
+ CFG_EM_BODY_TRAIT_MASKCOLOR(23, "口罩颜色");
+
+ private int value;
+ private String note;
+
+ private CFG_EM_BODY_TRAIT(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (CFG_EM_BODY_TRAIT enumType : CFG_EM_BODY_TRAIT.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (CFG_EM_BODY_TRAIT enumType : CFG_EM_BODY_TRAIT.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/CFG_EM_FACEDETECT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/CFG_EM_FACEDETECT_TYPE.java
new file mode 100644
index 0000000..95f7676
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/CFG_EM_FACEDETECT_TYPE.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 智能类型
+ * @date 2021/01/11
+ */
+public enum CFG_EM_FACEDETECT_TYPE {
+ // 未知
+ CFG_EM_FACEDETECT_TYPE_UNKNOWN(0, "未知"),
+ // 可见光
+ CFG_EM_FACEDETECT_TYPE_VISUAL(1, "可见光"),
+ // 红外
+ CFG_EM_FACEDETECT_TYPE_THERMAL(2, "红外"),
+ // 按时间段切换
+ CFG_EM_FACEDETECT_TYPE_SWITCHBYTIME(3, "按时间段切换");
+
+ private int value;
+ private String note;
+
+ private CFG_EM_FACEDETECT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (CFG_EM_FACEDETECT_TYPE enumType : CFG_EM_FACEDETECT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (CFG_EM_FACEDETECT_TYPE enumType : CFG_EM_FACEDETECT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/CFG_EM_FACE_SNAP_POLICY.java b/src/main/java/com/netsdk/lib/enumeration/CFG_EM_FACE_SNAP_POLICY.java
new file mode 100644
index 0000000..fd47c68
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/CFG_EM_FACE_SNAP_POLICY.java
@@ -0,0 +1,64 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 人体检测及人体识别支持的脸部抓拍策略
+ * @date 2021/01/11
+ */
+public enum CFG_EM_FACE_SNAP_POLICY {
+ // 未知
+ CFG_EM_FACE_SNAP_POLICY_UNKNOWN(0, "未知"),
+ // 实时抓拍模式(当前的通用模式,实时性优先)
+ CFG_EM_FACE_SNAP_POLICY_REALTIME(1, "实时抓拍模式"),
+ // 优选抓拍模式,在设定的延时区间(OptimalTime)内挑选评分最高的抓图,准确性优先但延时较大
+ CFG_EM_FACE_SNAP_POLICY_OPTIMAL(2, "优选抓拍模式"),
+ // 质量抓拍模式,在Optimal的基础上,如果图片质量好于阈值提前结束优选,提高实时性
+ CFG_EM_FACE_SNAP_POLICY_QUALITY(3, "质量抓拍模式"),
+ // 识别优先抓拍模式,在优选时间内,以一定间隔帧数多次进行比对;一旦比对成功则立即结束优选,以提高对比成功率,取代质量优先模式
+ CFG_EM_FACE_SNAP_POLICY_RECOGNITION(4, "识别优先抓拍模式"),
+ // 快速优选,从检测到人脸/人体开始,抓拍一定帧数内的质量最好的人脸或人体,
+ CFG_EM_FACE_SNAP_POLICY_QUICK(5, "快速优选"),
+ // 全程优选,抓拍全程质量最好的人脸人体,
+ CFG_EM_FACE_SNAP_POLICY_FULLTRACK(6, "全程优选"),
+ // 间隔抓拍,
+ CFG_EM_FACE_SNAP_POLICY_INTERVAL(7, "间隔抓拍"),
+ // 单人模式,常用于门禁,
+ CFG_EM_FACE_SNAP_POLICY_SINGLE(8, "单人模式"),
+ // 高精度模式,增强目标识别,,增强目标识别,
+ CFG_EM_FACE_SNAP_POLICY_PRECISION(9, "高精度模式");
+
+ private int value;
+ private String note;
+
+ private CFG_EM_FACE_SNAP_POLICY(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (CFG_EM_FACE_SNAP_POLICY enumType : CFG_EM_FACE_SNAP_POLICY.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (CFG_EM_FACE_SNAP_POLICY enumType : CFG_EM_FACE_SNAP_POLICY.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/CFG_EM_FACE_TRAIT.java b/src/main/java/com/netsdk/lib/enumeration/CFG_EM_FACE_TRAIT.java
new file mode 100644
index 0000000..18647dd
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/CFG_EM_FACE_TRAIT.java
@@ -0,0 +1,58 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 人体检测及人体识别支持的脸部特征
+ * @date 2021/01/11
+ */
+public enum CFG_EM_FACE_TRAIT {
+ // 未知
+ CFG_EM_FACE_TRAIT_UNKNOWN(0, "未知"),
+ // 性别
+ CFG_EM_FACE_TRAIT_SEX(1, "性别"),
+ // 年龄
+ CFG_EM_FACE_TRAIT_AGE(2, "年龄"),
+ // 眼镜
+ CFG_EM_FACE_TRAIT_GLASSES(3, "眼镜"),
+ // 胡子
+ CFG_EM_FACE_TRAIT_BEARD(4, "胡子"),
+ // 口罩
+ CFG_EM_FACE_TRAIT_MASK(5, "口罩"),
+ // 表情
+ CFG_EM_FACE_TRAIT_EMOTION(6, "表情");
+
+ private int value;
+ private String note;
+
+ private CFG_EM_FACE_TRAIT(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (CFG_EM_FACE_TRAIT enumType : CFG_EM_FACE_TRAIT.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (CFG_EM_FACE_TRAIT enumType : CFG_EM_FACE_TRAIT.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/CFG_EM_INSTANCE_SUBCLASS_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/CFG_EM_INSTANCE_SUBCLASS_TYPE.java
new file mode 100644
index 0000000..c55868c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/CFG_EM_INSTANCE_SUBCLASS_TYPE.java
@@ -0,0 +1,48 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 智能分析实例类型
+ * @date 2021/01/11
+ */
+public enum CFG_EM_INSTANCE_SUBCLASS_TYPE {
+ // 本地实例
+ CFG_EM_INSTANCE_SUBCLASS_TYPE_LOCAL(0, "本地实例"),
+ // 远程实例
+ CFG_EM_INSTANCE_SUBCLASS_TYPE_REMOTE(1, "远程实例");
+
+ private int value;
+ private String note;
+
+ private CFG_EM_INSTANCE_SUBCLASS_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (CFG_EM_INSTANCE_SUBCLASS_TYPE enumType : CFG_EM_INSTANCE_SUBCLASS_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (CFG_EM_INSTANCE_SUBCLASS_TYPE enumType : CFG_EM_INSTANCE_SUBCLASS_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/CFG_EM_PREVIEW_MODE.java b/src/main/java/com/netsdk/lib/enumeration/CFG_EM_PREVIEW_MODE.java
new file mode 100644
index 0000000..ec4dac2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/CFG_EM_PREVIEW_MODE.java
@@ -0,0 +1,67 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47040
+ * @since Created at 2021/5/25 22:29
+ */
+public enum CFG_EM_PREVIEW_MODE {
+ /**
+ * 未知
+ */
+ CFG_EM_PREVIEW_MODE_UNKNOWN(0, "未知"),
+ /**
+ * 快照方式
+ */
+ CFG_EM_PREVIEW_MODE_SNAPSHOT(1, "快照方式"),
+ /**
+ * 分割编码方式
+ */
+ CFG_EM_PREVIEW_MODE_SPLITENCODE(2, "分割编码方式"),
+ /**
+ * 分割快照方式
+ */
+ CFG_EM_PREVIEW_MODE_SPLITSNAP(3, "分割快照方式");
+
+ private final int value;
+ private final String note;
+
+ CFG_EM_PREVIEW_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (CFG_EM_PREVIEW_MODE enumType : CFG_EM_PREVIEW_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (CFG_EM_PREVIEW_MODE enumType : CFG_EM_PREVIEW_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static CFG_EM_PREVIEW_MODE getEnum(int value) {
+ for (CFG_EM_PREVIEW_MODE e : CFG_EM_PREVIEW_MODE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return CFG_EM_PREVIEW_MODE.CFG_EM_PREVIEW_MODE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/CFG_EM_STREAM_TYPES.java b/src/main/java/com/netsdk/lib/enumeration/CFG_EM_STREAM_TYPES.java
new file mode 100644
index 0000000..23599b8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/CFG_EM_STREAM_TYPES.java
@@ -0,0 +1,72 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 码流类型
+ * @date 2022/07/20 14:11:30
+ */
+public enum CFG_EM_STREAM_TYPES {
+ /**
+ * 其它
+ */
+ CFG_EM_STREAMTYPE_ERR(0, "其它"),
+ /**
+ * Main -主码流
+ */
+ CFG_EM_STREAMTYPE_MAIN(1, "Main -主码流"),
+ /**
+ * Extra1 -辅码流1
+ */
+ CFG_EM_STREAMTYPE_EXTRA_1(2, "Extra1 -辅码流1"),
+ /**
+ * Extra2 -辅码流2
+ */
+ CFG_EM_STREAMTYPE_EXTRA_2(3, "Extra2 -辅码流2"),
+ /**
+ * Extra3 -辅码流3
+ */
+ CFG_EM_STREAMTYPE_EXTRA_3(4, "Extra3 -辅码流3"),
+ /**
+ * Snapshot -抓图码流
+ */
+ CFG_EM_STREAMTYPE_SNAPSHOT(5, "Snapshot -抓图码流"),
+ /**
+ * Talkback -对讲码流
+ */
+ CFG_EM_STREAMTYPE_TALKBACK(6, "Talkback -对讲码流");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ CFG_EM_STREAM_TYPES(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (CFG_EM_STREAM_TYPES enumType : CFG_EM_STREAM_TYPES.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (CFG_EM_STREAM_TYPES enumType : CFG_EM_STREAM_TYPES.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/CFG_EM_VOICE_ID.java b/src/main/java/com/netsdk/lib/enumeration/CFG_EM_VOICE_ID.java
new file mode 100644
index 0000000..3844d36
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/CFG_EM_VOICE_ID.java
@@ -0,0 +1,72 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 语音ID
+ * @date 2021/2/7
+ */
+public enum CFG_EM_VOICE_ID {
+ /** 未知 */
+ CFG_EM_VOICE_ID_UNKNOWN(-1, "未知"),
+ /** 验证成功(默认) */
+ CFG_EM_VOICE_ID_VERIFY_SUCCESS(0, "验证成功(默认)"),
+ /** 开门成功 */
+ CFG_EM_VOICE_ID_OPENDOOR_SUCCESS(1, "开门成功"),
+ /** 开锁成功 */
+ CFG_EM_VOICE_ID_UNLOCK_SUCCESS(2, "开锁成功"),
+ /** 刷卡成功 */
+ CFG_EM_VOICE_ID_SWIPECARD_SUCCESS(3, "刷卡成功"),
+ /** 欢迎光临 */
+ CFG_EM_VOICE_ID_WELCOME(4, "欢迎光临"),
+ /** 欢迎再次光临 */
+ CFG_EM_VOICE_ID_WELCOME_BACK(5, "欢迎再次光临"),
+ /** 谢谢 */
+ CFG_EM_VOICE_ID_THANKS(6, "谢谢"),
+ /** 自定义 */
+ CFG_EM_VOICE_ID_CUSTOMIZED_VOICE(7, "自定义"),
+ /** 无声音 */
+ CFG_EM_VOICE_ID_NO_VOICE(8, "无声音"),
+ /** 欢迎回家 */
+ CFG_EM_VOICE_ID_WELCOME_HOME(9, "欢迎回家"),
+ /** 一路顺风 */
+ CFG_EM_VOICE_ID_GOOD_JOURNEY(10, "一路顺风"),
+ /** 欢迎下次光临 */
+ CFG_EM_VOICE_ID_WELCOME_BACK_NEXT(11, "欢迎下次光临"),
+ /** 谢谢惠顾 */
+ CFG_EM_VOICE_ID_THANKS_FOR_PATRONAGE(12, "谢谢惠顾");
+
+ private int id;
+ private String desc;
+
+ CFG_EM_VOICE_ID(int id, String desc) {
+ this.id = id;
+ this.desc = desc;
+ }
+
+ public static CFG_EM_VOICE_ID getVoiceID(int id) {
+ for (CFG_EM_VOICE_ID voiceID : CFG_EM_VOICE_ID.values()) {
+ if (voiceID.id == id) {
+ return voiceID;
+ }
+ }
+ return CFG_EM_VOICE_ID_UNKNOWN;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public void setDesc(String desc) {
+ this.desc = desc;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/CFG_LIGHT_INTENSITY_MODE.java b/src/main/java/com/netsdk/lib/enumeration/CFG_LIGHT_INTENSITY_MODE.java
new file mode 100644
index 0000000..ed64a8d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/CFG_LIGHT_INTENSITY_MODE.java
@@ -0,0 +1,67 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 大气光模式枚举
+* @origin autoTool
+* @date 2023/11/30 15:50:59
+*/
+public enum CFG_LIGHT_INTENSITY_MODE {
+ /**
+ * 未知方式
+ */
+ EM_LIGHT_INTENSITY_MODE_UNKNOW(0, "未知方式"),
+ /**
+ * 自动
+ */
+ EM_LIGHT_INTENSITY_MODE_AUTO(1, "自动"),
+ /**
+ * 手动
+ */
+ EM_LIGHT_INTENSITY_MODE_MANUL(2, "手动");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+CFG_LIGHT_INTENSITY_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (CFG_LIGHT_INTENSITY_MODE enumType : CFG_LIGHT_INTENSITY_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (CFG_LIGHT_INTENSITY_MODE enumType : CFG_LIGHT_INTENSITY_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static CFG_LIGHT_INTENSITY_MODE getEnum(int value) {
+ for (CFG_LIGHT_INTENSITY_MODE e : CFG_LIGHT_INTENSITY_MODE.values()) {
+ if (e.getValue() == value){
+ return e;
+ }
+ }
+ return CFG_LIGHT_INTENSITY_MODE.EM_LIGHT_INTENSITY_MODE_UNKNOW;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/CFG_PTZ_FUNC_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/CFG_PTZ_FUNC_TYPE.java
new file mode 100644
index 0000000..8d7a672
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/CFG_PTZ_FUNC_TYPE.java
@@ -0,0 +1,58 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @创建人 291189
+ * @创建时间 2021/5/28
+ * @描述
+ */
+public enum CFG_PTZ_FUNC_TYPE {
+ /**
+ * 巡航
+ */
+ FUNC_TYPE_TOUR(0, "巡航"),
+ /**
+ * 自动巡迹
+ */
+ FUNC_TYPE_PATTERN(1, "自动巡迹"),
+ /**
+ * 预置点
+ */
+ FUNC_TYPE_PRE(2, "预置点"),
+ FUNC_TYPE_SCAN(3, "自动线扫"),
+ FUNC_TYPE_MAX(4, "最大值");
+
+ private int id;
+ private String desc;
+
+ CFG_PTZ_FUNC_TYPE(int id, String desc) {
+ this.id = id;
+ this.desc = desc;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public static String getDescById(int id) {
+ for (CFG_PTZ_FUNC_TYPE enumType : CFG_PTZ_FUNC_TYPE.values()) {
+ if (id == enumType.getId()) {
+ return enumType.desc;
+ }
+ }
+ return null;
+ }
+
+ public static int getIdByValue(String desc) {
+ for (CFG_PTZ_FUNC_TYPE enumType : CFG_PTZ_FUNC_TYPE.values()) {
+ if (desc.equals(enumType.getDesc())) {
+ return enumType.getId();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/CFG_VIDEO_COMPRESSION.java b/src/main/java/com/netsdk/lib/enumeration/CFG_VIDEO_COMPRESSION.java
new file mode 100644
index 0000000..3a43ea1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/CFG_VIDEO_COMPRESSION.java
@@ -0,0 +1,61 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47040
+ * @since Created at 2021/5/26 20:44
+ */
+public enum CFG_VIDEO_COMPRESSION {
+ VIDEO_FORMAT_MPEG4(0, "MPEG4"),
+ VIDEO_FORMAT_MS_MPEG4(1, "MS-MPEG4"),
+ VIDEO_FORMAT_MPEG2(2, "MPEG2"),
+ VIDEO_FORMAT_MPEG1(3, "MPEG1"),
+ VIDEO_FORMAT_H263(4, "H.263"),
+ VIDEO_FORMAT_MJPG(5, "MJPG"),
+ VIDEO_FORMAT_FCC_MPEG4(6, "FCC-MPEG4"),
+ VIDEO_FORMAT_H264(7, "H.264"),
+ VIDEO_FORMAT_H265(8, "H.265"),
+ VIDEO_FORMAT_SVAC(9, "SVAC");
+
+ private final int value;
+ private final String note;
+
+ CFG_VIDEO_COMPRESSION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (CFG_VIDEO_COMPRESSION enumType : CFG_VIDEO_COMPRESSION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (CFG_VIDEO_COMPRESSION enumType : CFG_VIDEO_COMPRESSION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static CFG_VIDEO_COMPRESSION getEnum(int value) {
+ for (CFG_VIDEO_COMPRESSION e : CFG_VIDEO_COMPRESSION.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return CFG_VIDEO_COMPRESSION.VIDEO_FORMAT_H264;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/DH_LOG_QUERY_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/DH_LOG_QUERY_TYPE.java
new file mode 100644
index 0000000..36640a6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/DH_LOG_QUERY_TYPE.java
@@ -0,0 +1,50 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 日志查询类型
+ *
+ * @author 47081
+ */
+public enum DH_LOG_QUERY_TYPE {
+ /**
+ * 所有日志
+ */
+ DHLOG_ALL,
+ /**
+ * 系统日志
+ */
+ DHLOG_SYSTEM,
+ /**
+ * 配置日志
+ */
+ DHLOG_CONFIG,
+ /**
+ * 存储相关
+ */
+ DHLOG_STORAGE,
+ /**
+ * 报警日志
+ */
+ DHLOG_ALARM,
+ /**
+ * 录象相关
+ */
+ DHLOG_RECORD,
+ /**
+ * 帐号相关
+ */
+ DHLOG_ACCOUNT,
+ /**
+ * 清除日志
+ */
+ DHLOG_CLEAR,
+ /**
+ * 回放相关
+ */
+ DHLOG_PLAYBACK,
+ /**
+ * 前端管理运行相关
+ */
+ DHLOG_MANAGER;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EMDeviceType.java b/src/main/java/com/netsdk/lib/enumeration/EMDeviceType.java
new file mode 100644
index 0000000..ee9d227
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EMDeviceType.java
@@ -0,0 +1,296 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 设备类型
+ * @date 2020/9/12
+ */
+public enum EMDeviceType {
+ /**
+ * none
+ */
+ NET_PRODUCT_NONE(0, "未知"),
+ /**
+ * 非实时MACE
+ */
+ NET_DVR_NONREALTIME_MACE(1, "非实时MACE"),
+ /**
+ * 非实时
+ */
+ NET_DVR_NONREALTIME(2, "非实时"),
+ /**
+ * 网络视频服务器
+ */
+ NET_NVS_MPEG1(3, "网络视频服务器"),
+ /**
+ * MPEG1二路录像机
+ */
+ NET_DVR_MPEG1_2(4, "MPEG1二路录像机"),
+ /**
+ * MPEG1八路录像机
+ */
+ NET_DVR_MPEG1_8(5, "MPEG1八路录像机"),
+ /**
+ * MPEG4八路录像机
+ */
+ NET_DVR_MPEG4_8(6, "MPEG4八路录像机"),
+ /**
+ * MPEG4十六路录像机
+ */
+ NET_DVR_MPEG4_16(7, "MPEG4十六路录像机"),
+ /**
+ * LB系列录像机
+ */
+ NET_DVR_MPEG4_SX2(8, "LB系列录像机"),
+ /**
+ * GB系列录像机
+ */
+ NET_DVR_MEPG4_ST2(9, "GB系列录像机"),
+ /**
+ * HB系列录像机
+ */
+ NET_DVR_MEPG4_SH2(10, "HB系列录像机"),
+ /**
+ * GBE系列录像机
+ */
+ NET_DVR_MPEG4_GBE(11, "GBE系列录像机"),
+ /**
+ * II代网络视频服务器
+ */
+ NET_DVR_MPEG4_NVSII(12, "II代网络视频服务器"),
+ /**
+ * 新标准配置协议
+ */
+ NET_DVR_STD_NEW(13, "新标准配置协议"),
+ /**
+ * DDNS服务器
+ */
+ NET_DVR_DDNS(14, "DDNS服务器"),
+ /**
+ * ATM机
+ */
+ NET_DVR_ATM(15, "ATM机"),
+ /**
+ * 二代非实时NB系列机器
+ */
+ NET_NB_SERIAL(16, "二代非实时NB系列机器"),
+ /**
+ * LN系列产品
+ */
+ NET_LN_SERIAL(17, "LN系列产品"),
+ /**
+ * BAV系列产品
+ */
+ NET_BAV_SERIAL(18, "BAV系列产品"),
+ /**
+ * SDIP系列产品
+ */
+ NET_SDIP_SERIAL(19, "SDIP系列产品"),
+ /**
+ * IPC系列产品
+ */
+ NET_IPC_SERIAL(20, "IPC系列产品"),
+ /**
+ * NVS B系列
+ */
+ NET_NVS_B(21, "NVS B系列"),
+ /**
+ * NVS H系列
+ */
+ NET_NVS_C(22, "NVS H系列"),
+ /**
+ * NVS S系列
+ */
+ NET_NVS_S(23, "NVS S系列"),
+ /**
+ * NVS E系列
+ */
+ NET_NVS_E(24, "NVS E系列"),
+ /**
+ * 从QueryDevState中查询设备类型,以字符串格式
+ */
+ NET_DVR_NEW_PROTOCOL(25, "从QueryDevState中查询设备类型,以字符串格式"),
+ /**
+ * 解码器
+ */
+ NET_NVD_SERIAL(26, "解码器"),
+ /**
+ * N5
+ */
+ NET_DVR_N5(27, "N5"),
+ /**
+ * 混合DVR
+ */
+ NET_DVR_MIX_DVR(28, "混合DVR"),
+ /**
+ * SVR系列
+ */
+ NET_SVR_SERIAL(29, "SVR系列"),
+ /**
+ * SVR-BS
+ */
+ NET_SVR_BS(30, "SVR-BS"),
+ /**
+ * NVR系列
+ */
+ NET_NVR_SERIAL(31, "NVR系列"),
+ /**
+ * N51
+ */
+ NET_DVR_N51(32, "N51"),
+ /**
+ * ITSE 智能分析盒
+ */
+ NET_ITSE_SERIAL(33, "ITSE 智能分析盒"),
+ /**
+ * 智能交通像机设备
+ */
+ NET_ITC_SERIAL(34, "智能交通像机设备"),
+ /**
+ * 雷达测速仪HWS
+ */
+ NET_HWS_SERIAL(35, "雷达测速仪HWS"),
+ /**
+ * 便携式音视频录像机
+ */
+ NET_PVR_SERIAL(36, "便携式音视频录像机"),
+ /**
+ * IVS(智能视频服务器系列)
+ */
+ NET_IVS_SERIAL(37, "IVS(智能视频服务器系列)"),
+ /**
+ * 通用智能视频侦测服务器
+ */
+ NET_IVS_B(38, "通用智能视频侦测服务器"),
+ /**
+ * 目标识别服务器
+ */
+ NET_IVS_F(39, "目标识别服务器"),
+ /**
+ * 视频质量诊断服务器
+ */
+ NET_IVS_V(40, "视频质量诊断服务器"),
+ /**
+ * 矩阵
+ */
+ NET_MATRIX_SERIAL(41, "矩阵"),
+ /**
+ * N52
+ */
+ NET_DVR_N52(42, "N52"),
+ /**
+ * N56
+ */
+ NET_DVR_N56(43, "N56"),
+ /**
+ * ESS
+ */
+ NET_ESS_SERIAL(44, "ESS"),
+ /**
+ * 人数统计服务器
+ */
+ NET_IVS_PC(45, "人数统计服务器"),
+ /**
+ * pc-nvr
+ */
+ NET_PC_NVR(46, "pc-nvr"),
+ /**
+ * 大屏控制器
+ */
+ NET_DSCON(47, "大屏控制器"),
+ /**
+ * 网络视频存储服务器
+ */
+ NET_EVS(48, "网络视频存储服务器"),
+ /**
+ * 嵌入式智能分析视频系统
+ */
+ NET_EIVS(49, "嵌入式智能分析视频系统"),
+ /**
+ * DVR-N6
+ */
+ NET_DVR_N6(50, "DVR-N6"),
+ /**
+ * 万能解码器
+ */
+ NET_UDS(51, "万能解码器"),
+ /**
+ * 银行报警主机
+ */
+ NET_AF6016(52, "银行报警主机"),
+ /**
+ * 视频网络报警主机
+ */
+ NET_AS5008(53, "视频网络报警主机"),
+ /**
+ * 网络报警主机
+ */
+ NET_AH2008(54, "网络报警主机"),
+ /**
+ * 报警主机系列
+ */
+ NET_A_SERIAL(55, "报警主机系列"),
+ /**
+ * 门禁系列产品
+ */
+ NET_BSC_SERIAL(56, "门禁系列产品"),
+ /**
+ * NVS系列产品
+ */
+ NET_NVS_SERIAL(57, "NVS系列产品"),
+ /**
+ * VTO系列产品
+ */
+ NET_VTO_SERIAL(58, "VTO系列产品"),
+ /**
+ * VTNC系列产品
+ */
+ NET_VTNC_SERIAL(59, "VTNC系列产品"),
+ /**
+ * TPC系列产品(热成像设备)
+ */
+ NET_TPC_SERIAL(60, "TPC系列产品(热成像设备)"),
+ /**
+ * 无线中继设备
+ */
+ NET_ASM_SERIAL(61, "无线中继设备"),
+ /**
+ * 管理机
+ */
+ NET_VTS_SERIAL(62, "管理机");
+
+ private int type;
+ private String desc;
+
+ private EMDeviceType(int type, String desc) {
+ this.type = type;
+ this.desc = desc;
+ }
+
+ public int getType() {
+ return type;
+ }
+
+ public void setType(int type) {
+ this.type = type;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public void setDesc(String desc) {
+ this.desc = desc;
+ }
+
+ public static EMDeviceType getEMDeviceType(int type) {
+ for (EMDeviceType deviceType : EMDeviceType.values()) {
+ if (deviceType.getType() == type) {
+ return deviceType;
+ }
+ }
+ return null;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ABNORMAL_OBJECT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_ABNORMAL_OBJECT_TYPE.java
new file mode 100644
index 0000000..a269b2f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ABNORMAL_OBJECT_TYPE.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 目标类型
+ * @date 2022/12/19 11:30:59
+ */
+public enum EM_ABNORMAL_OBJECT_TYPE {
+ /**
+ * 未知
+ */
+ ABNORMAL_OBJECT_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 猪
+ */
+ ABNORMAL_OBJECT_TYPE_PIG(1, "猪");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_ABNORMAL_OBJECT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_ABNORMAL_OBJECT_TYPE enumType : EM_ABNORMAL_OBJECT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_ABNORMAL_OBJECT_TYPE enumType : EM_ABNORMAL_OBJECT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ABSTRACT_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_ABSTRACT_STATE.java
new file mode 100644
index 0000000..39857bc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ABSTRACT_STATE.java
@@ -0,0 +1,70 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 260611
+ * @description 计算特征向量结果
+ * @origin autoTool
+ * @date 2023/06/28 14:07:32
+ */
+public enum EM_ABSTRACT_STATE {
+ /**
+ * 未知
+ */
+ EM_ABSTRACT_UNKNOWN(0, "未知"),
+ /**
+ * 重建成功
+ */
+ EM_ABSTRACT_SUCCESS(1, "重建成功"),
+ /**
+ * 重建失败
+ */
+ EM_ABSTRACT_FALSE(2, "重建失败"),
+ /**
+ * 重建过程中(仅针对GroupID)
+ */
+ EM_ABSTRACT_PROCESS(3, "重建过程中(仅针对GroupID)");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_ABSTRACT_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_ABSTRACT_STATE enumType : EM_ABSTRACT_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_ABSTRACT_STATE enumType : EM_ABSTRACT_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_ABSTRACT_STATE getEnum(int value) {
+ for (EM_ABSTRACT_STATE e : EM_ABSTRACT_STATE.values()) {
+ if (e.getValue() == value) {
+ return e;
+ }
+ }
+ return EM_ABSTRACT_STATE.EM_ABSTRACT_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ACCESSORY_ALARM_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_ACCESSORY_ALARM_TYPE.java
new file mode 100644
index 0000000..b9c77b4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ACCESSORY_ALARM_TYPE.java
@@ -0,0 +1,81 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 报警类型
+* @date 2022/08/31 14:44:15
+*/
+public enum EM_ACCESSORY_ALARM_TYPE {
+/**
+未知
+*/
+ EM_ACCESSORY_ALARM_UNKNOWN(-1, "未知"),
+/**
+入侵
+*/
+ EM_ACCESSORY_ALARM_INTRUSION(0, "入侵"),
+/**
+火警
+*/
+ EM_ACCESSORY_ALARM_FIRE(1, "火警"),
+/**
+医疗
+*/
+ EM_ACCESSORY_ALARM_MEDICAL(2, "医疗"),
+/**
+紧急
+*/
+ EM_ACCESSORY_ALARM_PANIC(3, "紧急"),
+/**
+燃气
+*/
+ EM_ACCESSORY_ALARM_GAS(4, "燃气"),
+/**
+双按钮紧急按钮报警类型
+*/
+ EM_ACCESSORY_ALARM_HOLDUP(5, "双按钮紧急按钮报警类型");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_ACCESSORY_ALARM_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_ACCESSORY_ALARM_TYPE enumType : EM_ACCESSORY_ALARM_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_ACCESSORY_ALARM_TYPE enumType : EM_ACCESSORY_ALARM_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_ACCESSORY_ALARM_TYPE getEnum(int value) {
+ for (EM_ACCESSORY_ALARM_TYPE e : EM_ACCESSORY_ALARM_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_ACCESSORY_ALARM_TYPE.EM_ACCESSORY_ALARM_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ACCESSORY_INPUT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_ACCESSORY_INPUT_TYPE.java
new file mode 100644
index 0000000..544946a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ACCESSORY_INPUT_TYPE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 输入类型
+* @date 2022/08/31 14:44:16
+*/
+public enum EM_ACCESSORY_INPUT_TYPE {
+/**
+未知
+*/
+ EM_ACCESSORY_INPUT_UNKNOWN(-1, "未知"),
+/**
+防拆
+*/
+ EM_ACCESSORY_INPUT_TAMPER(0, "防拆"),
+/**
+报警输入
+*/
+ EM_ACCESSORY_INPUT_SENSOR(1, "报警输入");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_ACCESSORY_INPUT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_ACCESSORY_INPUT_TYPE enumType : EM_ACCESSORY_INPUT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_ACCESSORY_INPUT_TYPE enumType : EM_ACCESSORY_INPUT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_ACCESSORY_INPUT_TYPE getEnum(int value) {
+ for (EM_ACCESSORY_INPUT_TYPE e : EM_ACCESSORY_INPUT_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_ACCESSORY_INPUT_TYPE.EM_ACCESSORY_INPUT_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ACCESSORY_SENSITIVITY.java b/src/main/java/com/netsdk/lib/enumeration/EM_ACCESSORY_SENSITIVITY.java
new file mode 100644
index 0000000..08632b1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ACCESSORY_SENSITIVITY.java
@@ -0,0 +1,69 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 灵敏度
+* @date 2022/08/31 14:44:15
+*/
+public enum EM_ACCESSORY_SENSITIVITY {
+/**
+未知
+*/
+ EM_ACCESSORY_SENSITIVITY_UNKNOWN(0, "未知"),
+/**
+低灵敏度
+*/
+ EM_ACCESSORY_SENSITIVITY_LOW(1, "低灵敏度"),
+/**
+中灵敏度
+*/
+ EM_ACCESSORY_SENSITIVITY_MEDIUM(2, "中灵敏度"),
+/**
+高灵敏度
+*/
+ EM_ACCESSORY_SENSITIVITY_HIGH(3, "高灵敏度");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_ACCESSORY_SENSITIVITY(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_ACCESSORY_SENSITIVITY enumType : EM_ACCESSORY_SENSITIVITY.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_ACCESSORY_SENSITIVITY enumType : EM_ACCESSORY_SENSITIVITY.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_ACCESSORY_SENSITIVITY getEnum(int value) {
+ for (EM_ACCESSORY_SENSITIVITY e : EM_ACCESSORY_SENSITIVITY.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_ACCESSORY_SENSITIVITY.EM_ACCESSORY_SENSITIVITY_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ACCESSORY_VOLUME.java b/src/main/java/com/netsdk/lib/enumeration/EM_ACCESSORY_VOLUME.java
new file mode 100644
index 0000000..1bd4bf5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ACCESSORY_VOLUME.java
@@ -0,0 +1,69 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 设备布撤防时音量
+* @date 2022/08/31 14:44:16
+*/
+public enum EM_ACCESSORY_VOLUME {
+/**
+未知
+*/
+ EM_ACCESSORY_VOLUME_UNKNOWN(0, "未知"),
+/**
+低音量
+*/
+ EM_ACCESSORY_VOLUME_LOW(1, "低音量"),
+/**
+中音量
+*/
+ EM_ACCESSORY_VOLUME_MEDIUM(2, "中音量"),
+/**
+高音量
+*/
+ EM_ACCESSORY_VOLUME_HIGH(3, "高音量");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_ACCESSORY_VOLUME(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_ACCESSORY_VOLUME enumType : EM_ACCESSORY_VOLUME.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_ACCESSORY_VOLUME enumType : EM_ACCESSORY_VOLUME.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_ACCESSORY_VOLUME getEnum(int value) {
+ for (EM_ACCESSORY_VOLUME e : EM_ACCESSORY_VOLUME.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_ACCESSORY_VOLUME.EM_ACCESSORY_VOLUME_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ACCESS_SENSOR_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_ACCESS_SENSOR_TYPE.java
new file mode 100644
index 0000000..570bad0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ACCESS_SENSOR_TYPE.java
@@ -0,0 +1,50 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 门磁类型
+ * @date 2021/01/11
+ */
+public enum EM_ACCESS_SENSOR_TYPE {
+ // 未知
+ EM_ACCESS_SENSOR_TYPE_UNKNOWN(-1, "未知"),
+ // 常开
+ EM_ACCESS_SENSOR_TYPE_NO(0, "常开"),
+ // 常闭
+ EM_ACCESS_SENSOR_TYPE_NC(1, "常闭");
+
+ private int value;
+ private String note;
+
+ private EM_ACCESS_SENSOR_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_ACCESS_SENSOR_TYPE enumType : EM_ACCESS_SENSOR_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_ACCESS_SENSOR_TYPE enumType : EM_ACCESS_SENSOR_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ACCOUNT_PROTOCOL.java b/src/main/java/com/netsdk/lib/enumeration/EM_ACCOUNT_PROTOCOL.java
new file mode 100644
index 0000000..63a7835
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ACCOUNT_PROTOCOL.java
@@ -0,0 +1,51 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 协议类型
+*/
+public enum EM_ACCOUNT_PROTOCOL
+{
+ /**
+ * 通用协议
+ */
+ EM_ACCOUNT_PROTOCOL_NORMAL(0, "通用协议"),
+ /**
+ * TTLV协议
+ */
+ EM_ACCOUNT_PROTOCOL_TTLV(1, "TTLV协议");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_ACCOUNT_PROTOCOL(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_ACCOUNT_PROTOCOL enumType : EM_ACCOUNT_PROTOCOL.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_ACCOUNT_PROTOCOL enumType : EM_ACCOUNT_PROTOCOL.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ACROSS_PARKING.java b/src/main/java/com/netsdk/lib/enumeration/EM_ACROSS_PARKING.java
new file mode 100644
index 0000000..915fc3a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ACROSS_PARKING.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 是否跨位
+ *
+ * @author 47040
+ * @since Created in 2020/11/18 14:40
+ */
+public enum EM_ACROSS_PARKING {
+ /**
+ * 未知
+ */
+ EM_ACROSS_PARKING_UNKNOWN(0, "未知"),
+ /**
+ * 未跨位
+ */
+ EM_ACROSS_PARKING_NO(1, "未跨位"),
+ /**
+ * 跨位
+ */
+ EM_ACROSS_PARKING_YES(2, "跨位");
+
+ private int value;
+ private String note;
+
+ EM_ACROSS_PARKING(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_ACROSS_PARKING enumType : EM_ACROSS_PARKING.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_ACROSS_PARKING enumType : EM_ACROSS_PARKING.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_ACROSS_PARKING getEnum(int value) {
+ for (EM_ACROSS_PARKING e : EM_ACROSS_PARKING.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_ACROSS_PARKING.EM_ACROSS_PARKING_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ACTION.java b/src/main/java/com/netsdk/lib/enumeration/EM_ACTION.java
new file mode 100644
index 0000000..806e0a9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ACTION.java
@@ -0,0 +1,80 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 物体动作支持类型
+ * @date 2022/06/16 11:14:19
+ */
+public enum EM_ACTION {
+ /**
+ * 未知类型
+ */
+ EM_ACTION_UNKNOWN(0, "未知类型"),
+ /**
+ * 第一次出现在检测区域中,或者跟踪时物理分离动作中尚未确认的新物体
+ */
+ EM_ACTION_APPEAR(1, "第一次出现在检测区域中,或者跟踪时物理分离动作中尚未确认的新物体"),
+ /**
+ * 正在运动,物体被正常跟踪
+ */
+ EM_ACTION_MOVE(2, "正在运动,物体被正常跟踪"),
+ /**
+ * 物体停止运动,这个物体不会在出现在下一帧物体列表中,物体开始移动后再恢复在列表中
+ */
+ EM_ACTION_STAY(3, "物体停止运动,这个物体不会在出现在下一帧物体列表中,物体开始移动后再恢复在列表中"),
+ /**
+ * 物体从原来的区域移除,或者被遮盖,或者跟踪失败,移除的物体ID不会被自动删除,并且物体重现出现是有可能再次被使用
+ */
+ EM_ACTION_REMOVE(4, "物体从原来的区域移除,或者被遮盖,或者跟踪失败,移除的物体ID不会被自动删除,并且物体重现出现是有可能再次被使用"),
+ /**
+ * 运动到跟踪区域之外,或者达到了算法跟踪物体的上限而被清除,消失的物体ID将不再出现
+ */
+ EM_ACTION_DISAPPEAR(5, "运动到跟踪区域之外,或者达到了算法跟踪物体的上限而被清除,消失的物体ID将不再出现"),
+ /**
+ * 从其他物体中分离出来,可以用来检测物体遗留,关联ID表示从这个ID对应物体分离
+ */
+ EM_ACTION_SPLIT(6, "从其他物体中分离出来,可以用来检测物体遗留,关联ID表示从这个ID对应物体分离"),
+ /**
+ * 合并到其他物体,可以用来检查物体保全,关联ID表示合并到这个ID对相应的物体
+ */
+ EM_ACTION_MERGE(7, "合并到其他物体,可以用来检查物体保全,关联ID表示合并到这个ID对相应的物体"),
+ /**
+ * 如果算法无法确定分离动作中某个物体是原先同一个物体,应该创建先一个新的物体,证据充分后再重命名为旧的物体ID,关联ID表示暂时使用的新的ID。
+ */
+ EM_ACTION_RENAME(8, "如果算法无法确定分离动作中某个物体是原先同一个物体,应该创建先一个新的物体,证据充分后再重命名为旧的物体ID,关联ID表示暂时使用的新的ID。");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_ACTION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_ACTION enumType : EM_ACTION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_ACTION enumType : EM_ACTION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_AC_UNLOCK_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_AC_UNLOCK_MODE.java
new file mode 100644
index 0000000..e1d7f85
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_AC_UNLOCK_MODE.java
@@ -0,0 +1,238 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 开锁模式
+* @origin autoTool
+* @date 2023/02/10 14:34:21
+*/
+public enum EM_AC_UNLOCK_MODE {
+/**
+未知
+*/
+ EM_AC_UNLOCK_MODE_UNKNOWN(0, "未知"),
+/**
+只允许密码开锁
+*/
+ EM_AC_UNLOCK_MODE_PWD_ONLY(1, "只允许密码开锁"),
+/**
+只允许刷卡开锁
+*/
+ EM_AC_UNLOCK_MODE_CARD(2, "只允许刷卡开锁"),
+/**
+密码或刷卡开锁
+*/
+ EM_AC_UNLOCK_MODE_PWD_OR_CARD(3, "密码或刷卡开锁"),
+/**
+先刷卡后密码开锁
+*/
+ EM_AC_UNLOCK_MODE_CARD_FIRST(4, "先刷卡后密码开锁"),
+/**
+先密码后刷卡开锁
+*/
+ EM_AC_UNLOCK_MODE_PWD_FIRST(5, "先密码后刷卡开锁"),
+/**
+分时段开门
+*/
+ EM_AC_UNLOCK_MODE_SECTION(6, "分时段开门"),
+/**
+仅信息开锁
+*/
+ EM_AC_UNLOCK_MODE_FINGERPRINTONLY(7, "仅信息开锁"),
+/**
+密码或刷卡或信息开锁
+*/
+ EM_AC_UNLOCK_MODE_PWD_OR_CARD_OR_FINGERPRINT(8, "密码或刷卡或信息开锁"),
+/**
+密码+刷卡+信息组合开锁
+*/
+ EM_AC_UNLOCK_MODE_PWD_AND_CARD_AND_FINGERPINT(9, "密码+刷卡+信息组合开锁"),
+/**
+密码+信息组合开锁
+*/
+ EM_AC_UNLOCK_MODE_PWD_AND_FINGERPRINT(10, "密码+信息组合开锁"),
+/**
+刷卡+信息开锁
+*/
+ EM_AC_UNLOCK_MODE_CARD_AND_FINGERPRINT(11, "刷卡+信息开锁"),
+/**
+多人开锁
+*/
+ EM_AC_UNLOCK_MODE_MULTI_PERSON(12, "多人开锁"),
+/**
+人证对比
+*/
+ EM_AC_UNLOCK_MODE_FACEIDCARD(13, "人证对比"),
+/**
+证件+ 人证比对
+*/
+ EM_AC_UNLOCK_MODE_FACEIDCARD_AND_IDCARD(14, "证件+ 人证比对"),
+/**
+人证比对或刷卡或信息
+*/
+ EM_AC_UNLOCK_MODE_FACEIDCARD_OR_CARD_OR_FINGER(15, "人证比对或刷卡或信息"),
+/**
+(证件+认证比对)或刷卡或信息
+*/
+ EM_AC_UNLOCK_MODE_FACEIPCARDANDIDCARD_OR_CARD_OR_FINGER(16, "(证件+认证比对)或刷卡或信息"),
+/**
+UserID+密码
+*/
+ EM_AC_UNLOCK_MODE_USERID_AND_PWD(17, "UserID+密码"),
+/**
+只允许目标开锁
+*/
+ EM_AC_UNLOCK_MODE_FACE_ONLY(18, "只允许目标开锁"),
+/**
+目标+密码开锁
+*/
+ EM_AC_UNLOCK_MODE_FACE_AND_PWD(19, "目标+密码开锁"),
+/**
+信息+密码开锁
+*/
+ EM_AC_UNLOCK_MODE_FINGERPRINT_AND_PWD(20, "信息+密码开锁"),
+/**
+信息+目标开锁
+*/
+ EM_AC_UNLOCK_MODE_FINGERPRINT_AND_FACE(21, "信息+目标开锁"),
+/**
+刷卡+目标开锁
+*/
+ EM_AC_UNLOCK_MODE_CARD_AND_FACE(22, "刷卡+目标开锁"),
+/**
+目标或密码开锁
+*/
+ EM_AC_UNLOCK_MODE_FACE_OR_PWD(23, "目标或密码开锁"),
+/**
+信息或密码开锁
+*/
+ EM_AC_UNLOCK_MODE_FINGERPRINT_OR_PWD(24, "信息或密码开锁"),
+/**
+信息或目标开锁
+*/
+ EM_AC_UNLOCK_MODE_FINGERPRINT_OR_FACE(25, "信息或目标开锁"),
+/**
+刷卡或目标开锁
+*/
+ EM_AC_UNLOCK_MODE_CARD_OR_FACE(26, "刷卡或目标开锁"),
+/**
+刷卡或信息开锁
+*/
+ EM_AC_UNLOCK_MODE_CARD_OR_FINGERPRINT(27, "刷卡或信息开锁"),
+/**
+信息+目标+密码开锁
+*/
+ EM_AC_UNLOCK_MODE_FINGERPRINT_AND_FACE_AND_PWD(28, "信息+目标+密码开锁"),
+/**
+刷卡+目标+密码开锁
+*/
+ EM_AC_UNLOCK_MODE_CARD_AND_FACE_AND_PWD(29, "刷卡+目标+密码开锁"),
+/**
+刷卡+信息+密码开锁
+*/
+ EM_AC_UNLOCK_MODE_CARD_AND_FINGERPRINT_AND_PWD(30, "刷卡+信息+密码开锁"),
+/**
+卡+信息+目标组合开锁
+*/
+ EM_AC_UNLOCK_MODE_CARD_AND_FINGERPRINT_AND_FACE(31, "卡+信息+目标组合开锁"),
+/**
+信息或目标或密码
+*/
+ EM_AC_UNLOCK_MODE_FINGERPRINT_OR_FACE_OR_PWD(32, "信息或目标或密码"),
+/**
+卡或目标或密码开锁
+*/
+ EM_AC_UNLOCK_MODE_CARD_OR_FACE_OR_PWD(33, "卡或目标或密码开锁"),
+/**
+卡或信息或目标开锁
+*/
+ EM_AC_UNLOCK_MODE_CARD_OR_FINGERPRINT_OR_FACE(34, "卡或信息或目标开锁"),
+/**
+卡+信息+目标+密码组合开锁
+*/
+ EM_AC_UNLOCK_MODE_CARD_AND_FINGERPRINT_AND_FACE_AND_PWD(35, "卡+信息+目标+密码组合开锁"),
+/**
+卡或信息或目标或密码开锁
+*/
+ EM_AC_UNLOCK_MODE_CARD_OR_FINGERPRINT_OR_FACE_OR_PWD(36, "卡或信息或目标或密码开锁"),
+/**
+(证件+人证比对)或 刷卡 或 目标
+*/
+ EM_AC_UNLOCK_MODE_FACEIPCARDANDIDCARD_OR_CARD_OR_FACE(37, "(证件+人证比对)或 刷卡 或 目标"),
+/**
+人证比对 或 刷卡(二维码) 或 目标
+*/
+ EM_AC_UNLOCK_MODE_FACEIDCARD_OR_CARD_OR_FACE(38, "人证比对 或 刷卡(二维码) 或 目标"),
+/**
+(卡+密码)或(信息+密码)默认为2
+*/
+ EM_AC_UNLOCK_MODE_CARDANDPWD_OR_FINGERPRINTANDPWD(39, "(卡+密码)或(信息+密码)默认为2"),
+/**
+人证(照片)或目标
+*/
+ EM_AC_UNLOCK_MODE_PHOTO_OR_FACE(40, "人证(照片)或目标"),
+/**
+人证(信息)
+*/
+ EM_AC_UNLOCK_MODE_FINGERPRINT(41, "人证(信息)"),
+/**
+人证(照片+信息)
+*/
+ EM_AC_UNLOCK_MODE_PHOTO_AND_FINGERPRINT(42, "人证(照片+信息)"),
+/**
+人证或刷卡或信息或目标或密码
+*/
+ EM_AC_UNLOCK_MODE_FACEIDCARD_OR_CARD_OR_FINGERPRINT_OR_FACE_OR_PASSWORD(43, "人证或刷卡或信息或目标或密码"),
+/**
+多用户类型
+*/
+ EM_AC_UNLOCK_MODE_MULTI_USER_TYPE(44, "多用户类型"),
+/**
+人证或健康码
+*/
+ EM_AC_UNLOCK_MODE_FACEIDCARD_OR_HEALTHCODE(45, "人证或健康码");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_AC_UNLOCK_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_AC_UNLOCK_MODE enumType : EM_AC_UNLOCK_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_AC_UNLOCK_MODE enumType : EM_AC_UNLOCK_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_AC_UNLOCK_MODE getEnum(int value) {
+ for (EM_AC_UNLOCK_MODE e : EM_AC_UNLOCK_MODE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_AC_UNLOCK_MODE.EM_AC_UNLOCK_MODE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_AGE_GROUP_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_AGE_GROUP_TYPE.java
new file mode 100644
index 0000000..bf2928a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_AGE_GROUP_TYPE.java
@@ -0,0 +1,9 @@
+package com.netsdk.lib.enumeration;
+
+public enum EM_AGE_GROUP_TYPE {
+ EM_AGE_GROUP_UNKNOWN, // 未知
+ EM_AGE_GROUP_OLD, // 老人
+ EM_AGE_GROUP_ADULT, // 成年人
+ EM_AGE_GROUP_CHILD; // 小孩
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_AGE_SEG.java b/src/main/java/com/netsdk/lib/enumeration/EM_AGE_SEG.java
new file mode 100644
index 0000000..b8a7f64
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_AGE_SEG.java
@@ -0,0 +1,67 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 年龄段
+*/
+public enum EM_AGE_SEG
+{
+ /**
+ * 未知
+ */
+ EM_AGE_SEG_UNKOWN(0, "未知"),
+ /**
+ * 婴儿
+ */
+ EM_AGE_SEG_BABY(2, "婴儿"),
+ /**
+ * 幼儿
+ */
+ EM_AGE_SEG_CHILD(10, "幼儿"),
+ /**
+ * 青年
+ */
+ EM_AGE_SEG_YOUTH(28, "青年"),
+ /**
+ * 中年
+ */
+ EM_AGE_SEG_MIDDLE(50, "中年"),
+ /**
+ * 老年
+ */
+ EM_AGE_SEG_OLD(60, "老年");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_AGE_SEG(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_AGE_SEG enumType : EM_AGE_SEG.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_AGE_SEG enumType : EM_AGE_SEG.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_AIRBORNE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_AIRBORNE_TYPE.java
new file mode 100644
index 0000000..1083ffe
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_AIRBORNE_TYPE.java
@@ -0,0 +1,69 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 挂空悬浮物具体类型
+* @date 2022/06/28 19:44:54
+*/
+public enum EM_AIRBORNE_TYPE {
+/**
+未知
+*/
+ EM_AIRBORNE_TYPE_UNKNOWN(0, "未知"),
+/**
+塑料袋
+*/
+ EM_AIRBORNE_TYPE_PLASTICBAG(1, "塑料袋"),
+/**
+织物
+*/
+ EM_AIRBORNE_TYPE_TEXTILE(2, "织物"),
+/**
+风筝
+*/
+ EM_AIRBORNE_TYPE_KITE(3, "风筝");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_AIRBORNE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_AIRBORNE_TYPE enumType : EM_AIRBORNE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_AIRBORNE_TYPE enumType : EM_AIRBORNE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_AIRBORNE_TYPE getEnum(int value) {
+ for (EM_AIRBORNE_TYPE e : EM_AIRBORNE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_AIRBORNE_TYPE.EM_AIRBORNE_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ALARMOUT_POLE.java b/src/main/java/com/netsdk/lib/enumeration/EM_ALARMOUT_POLE.java
new file mode 100644
index 0000000..e1e100b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ALARMOUT_POLE.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 输出有效模式
+ * @date 2021/2/22
+ */
+public enum EM_ALARMOUT_POLE {
+ /** 未知 */
+ EM_ALARMOUT_POLE_UNKNOWN,
+ /** 低电平有效 */
+ EM_ALARMOUT_POLE_LOW,
+ /** 高电平有效 */
+ EM_ALARMOUT_POLE_HIGH;
+
+ public static EM_ALARMOUT_POLE getAlarmOutPole(int pole) {
+ for (EM_ALARMOUT_POLE alarmOutPole : EM_ALARMOUT_POLE.values()) {
+ if (alarmOutPole.ordinal() == pole) {
+ return alarmOutPole;
+ }
+ }
+ return EM_ALARMOUT_POLE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ALARM_ONECLICKARMING_FUNCTION.java b/src/main/java/com/netsdk/lib/enumeration/EM_ALARM_ONECLICKARMING_FUNCTION.java
new file mode 100644
index 0000000..afa64ec
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ALARM_ONECLICKARMING_FUNCTION.java
@@ -0,0 +1,60 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 功能
+ * @date 2023/03/16 09:04:49
+ */
+public enum EM_ALARM_ONECLICKARMING_FUNCTION {
+ /**
+ * 未知
+ */
+ EM_ALARM_ONECLICKARMING_FUNCTION_UNKNOWN(0, "未知"),
+ /**
+ * 开关
+ */
+ EM_ALARM_ONECLICKARMING_FUNCTION_ONOFF(1, "开关"),
+ /**
+ * 只开
+ */
+ EM_ALARM_ONECLICKARMING_FUNCTION_ONONLY(2, "只开"),
+ /**
+ * 只关
+ */
+ EM_ALARM_ONECLICKARMING_FUNCTION_OFFONLY(3, "只关");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_ALARM_ONECLICKARMING_FUNCTION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_ALARM_ONECLICKARMING_FUNCTION enumType : EM_ALARM_ONECLICKARMING_FUNCTION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_ALARM_ONECLICKARMING_FUNCTION enumType : EM_ALARM_ONECLICKARMING_FUNCTION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ALARM_ONECLICKARMING_TRIGGEROPTION.java b/src/main/java/com/netsdk/lib/enumeration/EM_ALARM_ONECLICKARMING_TRIGGEROPTION.java
new file mode 100644
index 0000000..4b7b135
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ALARM_ONECLICKARMING_TRIGGEROPTION.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 触发类型
+ * @date 2023/03/16 09:04:49
+ */
+public enum EM_ALARM_ONECLICKARMING_TRIGGEROPTION {
+ /**
+ * 未知
+ */
+ EM_ALARM_ONECLICKARMING_TRIGGEROPTION_UNKNOWN(0, "未知"),
+ /**
+ * 脉冲
+ */
+ EM_ALARM_ONECLICKARMING_TRIGGEROPTION_IMPULSE(1, "脉冲"),
+ /**
+ * 双稳定
+ */
+ EM_ALARM_ONECLICKARMING_TRIGGEROPTION_BISTABLE(2, "双稳定");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_ALARM_ONECLICKARMING_TRIGGEROPTION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_ALARM_ONECLICKARMING_TRIGGEROPTION enumType : EM_ALARM_ONECLICKARMING_TRIGGEROPTION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_ALARM_ONECLICKARMING_TRIGGEROPTION enumType : EM_ALARM_ONECLICKARMING_TRIGGEROPTION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ALARM_RULE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_ALARM_RULE_TYPE.java
new file mode 100644
index 0000000..2c0ac0c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ALARM_RULE_TYPE.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 比对报警规则
+*/
+public enum EM_ALARM_RULE_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_ALARM_RULE_UNKNOWN(-1, "未知"),
+ /**
+ * 不报警
+ */
+ EM_ALARM_RULE_NONE(0, "不报警"),
+ /**
+ * 比对成功报警
+ */
+ EM_ALARM_RULE_SUCCESS(1, "比对成功报警"),
+ /**
+ * 比对失败报警
+ */
+ EM_ALARM_RULE_FAIL(2, "比对失败报警");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_ALARM_RULE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_ALARM_RULE_TYPE enumType : EM_ALARM_RULE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_ALARM_RULE_TYPE enumType : EM_ALARM_RULE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ALARM_TRANSMIT_ALARM_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_ALARM_TRANSMIT_ALARM_TYPE.java
new file mode 100644
index 0000000..0b3ce5a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ALARM_TRANSMIT_ALARM_TYPE.java
@@ -0,0 +1,79 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 报警类型
+*/
+public enum EM_ALARM_TRANSMIT_ALARM_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_ALARM_TRANSMIT_ALARM_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * "PreventRemove" 防拆
+ */
+ EM_ALARM_TRANSMIT_ALARM_TYPE_PREVENTREMOVE(1, "\"PreventRemove\" 防拆"),
+ /**
+ * "LowerPower" 低电压
+ */
+ EM_ALARM_TRANSMIT_ALARM_TYPE_LOWERPOWER(2, "\"LowerPower\" 低电压"),
+ /**
+ * "Key" 钥匙
+ */
+ EM_ALARM_TRANSMIT_ALARM_TYPE_KEY(3, "\"Key\" 钥匙"),
+ /**
+ * "Duress" 胁迫
+ */
+ EM_ALARM_TRANSMIT_ALARM_TYPE_DURESS(4, "\"Duress\" 胁迫"),
+ /**
+ * "BatteryLost" 电池不在位
+ */
+ EM_ALARM_TRANSMIT_ALARM_TYPE_BATTERYLOST(5, "\"BatteryLost\" 电池不在位"),
+ /**
+ * "PSTNBreakLine"电话线断开
+ */
+ EM_ALARM_TRANSMIT_ALARM_TYPE_PSTN_BREAKLINE(6, "\"PSTNBreakLine\"电话线断开"),
+ /**
+ * "EmergencyHelp"紧急求助
+ */
+ EM_ALARM_TRANSMIT_ALARM_TYPE_EMERGENCY_HELP(7, "\"EmergencyHelp\"紧急求助"),
+ /**
+ * "AlarmIn" 报警输入
+ */
+ EM_ALARM_TRANSMIT_ALARM_TYPE_ALARMIN(8, "\"AlarmIn\" 报警输入");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_ALARM_TRANSMIT_ALARM_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_ALARM_TRANSMIT_ALARM_TYPE enumType : EM_ALARM_TRANSMIT_ALARM_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_ALARM_TRANSMIT_ALARM_TYPE enumType : EM_ALARM_TRANSMIT_ALARM_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ALARM_TRANSMIT_DEV_SRC_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_ALARM_TRANSMIT_DEV_SRC_TYPE.java
new file mode 100644
index 0000000..d4999a3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ALARM_TRANSMIT_DEV_SRC_TYPE.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 报警源设备的类型
+*/
+public enum EM_ALARM_TRANSMIT_DEV_SRC_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_ALARM_TRANSMIT_DEV_SRC_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * Digit 数字
+ */
+ EM_ALARM_TRANSMIT_DEV_SRC_TYPE_DIGIT(1, "Digit 数字"),
+ /**
+ * Analog 模拟
+ */
+ EM_ALARM_TRANSMIT_DEV_SRC_TYPE_ANALOG(2, "Analog 模拟"),
+ /**
+ * SmartLock 智能锁
+ */
+ EM_ALARM_TRANSMIT_DEV_SRC_TYPE_SMARTLOCK(3, "SmartLock 智能锁");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_ALARM_TRANSMIT_DEV_SRC_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_ALARM_TRANSMIT_DEV_SRC_TYPE enumType : EM_ALARM_TRANSMIT_DEV_SRC_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_ALARM_TRANSMIT_DEV_SRC_TYPE enumType : EM_ALARM_TRANSMIT_DEV_SRC_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ALARM_USERAUTHORITY.java b/src/main/java/com/netsdk/lib/enumeration/EM_ALARM_USERAUTHORITY.java
new file mode 100644
index 0000000..ac7c6a9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ALARM_USERAUTHORITY.java
@@ -0,0 +1,92 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 用户的权限列表
+ * @date 2023/03/16 09:04:48
+ */
+public enum EM_ALARM_USERAUTHORITY {
+ /**
+ * 未知
+ */
+ EM_ALARM_USERAUTHORITY_UNKNOWN(0, "未知"),
+ /**
+ * 布防
+ */
+ EM_ALARM_USERAUTHORITY_ARMING(1, "布防"),
+ /**
+ * 强制布防
+ */
+ EM_ALARM_USERAUTHORITY_FORCEARMING(2, "强制布防"),
+ /**
+ * 撤防
+ */
+ EM_ALARM_USERAUTHORITY_DISARM(3, "撤防"),
+ /**
+ * 旁路
+ */
+ EM_ALARM_USERAUTHORITY_BYPASS(4, "旁路"),
+ /**
+ * 永久旁路
+ */
+ EM_ALARM_USERAUTHORITY_PERMANENTBYPASS(5, "永久旁路"),
+ /**
+ * 消警
+ */
+ EM_ALARM_USERAUTHORITY_ALARMCONFIRM(6, "消警"),
+ /**
+ * 查询日志
+ */
+ EM_ALARM_USERAUTHORITY_QUERYLOG(7, "查询日志"),
+ /**
+ * 调试模式
+ */
+ EM_ALARM_USERAUTHORITY_DEBUGMODE(8, "调试模式"),
+ /**
+ * 更改基本程序,如:升级程序
+ */
+ EM_ALARM_USERAUTHORITY_UPGRADE(9, "更改基本程序,如:升级程序"),
+ /**
+ * 添加/更改配置参数
+ */
+ EM_ALARM_USERAUTHORITY_SYSTEMCONFIG(10, "添加/更改配置参数"),
+ /**
+ * 用户管理
+ */
+ EM_ALARM_USERAUTHORITY_USERMANAGEMENT(11, "用户管理");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_ALARM_USERAUTHORITY(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_ALARM_USERAUTHORITY enumType : EM_ALARM_USERAUTHORITY.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_ALARM_USERAUTHORITY enumType : EM_ALARM_USERAUTHORITY.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ALARM_USER_GROUP.java b/src/main/java/com/netsdk/lib/enumeration/EM_ALARM_USER_GROUP.java
new file mode 100644
index 0000000..bff71a2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ALARM_USER_GROUP.java
@@ -0,0 +1,64 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 用户所在组
+ * @date 2023/03/16 09:04:49
+ */
+public enum EM_ALARM_USER_GROUP {
+ /**
+ * 未知
+ */
+ EM_ALARM_USER_GROUP_UNKNOWN(0, "未知"),
+ /**
+ * 管理员
+ */
+ EM_ALARM_USER_GROUP_ADMIN(1, "管理员"),
+ /**
+ * 安装员
+ */
+ EM_ALARM_USER_GROUP_INSTALLER(2, "安装员"),
+ /**
+ * 制造商
+ */
+ EM_ALARM_USER_GROUP_MANUFACTURER(3, "制造商"),
+ /**
+ * 操作员
+ */
+ EM_ALARM_USER_GROUP_OPERATOR(4, "操作员");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_ALARM_USER_GROUP(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_ALARM_USER_GROUP enumType : EM_ALARM_USER_GROUP.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_ALARM_USER_GROUP enumType : EM_ALARM_USER_GROUP.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ALGORITHM_PARTITION_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_ALGORITHM_PARTITION_TYPE.java
new file mode 100644
index 0000000..c75e237
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ALGORITHM_PARTITION_TYPE.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 分区类型
+ * @date 2021/2/20
+ */
+public enum EM_ALGORITHM_PARTITION_TYPE {
+ /** 未知 */
+ EM_ALGORITHM_PARTITION_UNKNOWN,
+ /** ext4分区 */
+ EM_ALGORITHM_PARTITION_EXT4,
+ /** suqshfs分区 */
+ EM_ALGORITHM_PARTITION_SUQSHFS,
+ /** ubifs分区 */
+ EM_ALGORITHM_PARTITION_UBIFS;
+
+ public static EM_ALGORITHM_PARTITION_TYPE getAlgorithmPartitionType(int type) {
+ for (EM_ALGORITHM_PARTITION_TYPE partitionType : EM_ALGORITHM_PARTITION_TYPE.values()) {
+ if (partitionType.ordinal() == type) {
+ return partitionType;
+ }
+ }
+ return EM_ALGORITHM_PARTITION_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ALGORITHM_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_ALGORITHM_TYPE.java
new file mode 100644
index 0000000..5012063
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ALGORITHM_TYPE.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 加密算法类型
+ * @date 2022/11/03 09:43:17
+ */
+public enum EM_ALGORITHM_TYPE {
+ /**
+ * 未知加密算法
+ */
+ EM_ALGORITHM_TYPE_UNKNOWN(0, "未知加密算法"),
+ /**
+ * AES256-OFB加密算法
+ */
+ EM_ALGORITHM_TYPE_AES256_OFB(1, "AES256-OFB加密算法"),
+ /**
+ * SM加密算法
+ */
+ EM_ALGORITHM_TYPE_SM4_OFB(2, "SM加密算法");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_ALGORITHM_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_ALGORITHM_TYPE enumType : EM_ALGORITHM_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_ALGORITHM_TYPE enumType : EM_ALGORITHM_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ALLOW_PERMIT_FLAG.java b/src/main/java/com/netsdk/lib/enumeration/EM_ALLOW_PERMIT_FLAG.java
new file mode 100644
index 0000000..696d2c8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ALLOW_PERMIT_FLAG.java
@@ -0,0 +1,69 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 电子通行证状态(添加)
+* @date 2022/03/08 11:25:17
+*/
+public enum EM_ALLOW_PERMIT_FLAG {
+/**
+未知
+*/
+ EM_ALLOW_PERMIT_FLAG_UNKNOWN(0, "未知"),
+/**
+没有电子通行证
+*/
+ EM_ALLOW_PERMIT_FLAG_NO(1, "没有电子通行证"),
+/**
+电子通行证有效
+*/
+ EM_ALLOW_PERMIT_FLAG_EFFECTIVE(2, "电子通行证有效"),
+/**
+电子通行证无效
+*/
+ EM_ALLOW_PERMIT_FLAG_INVALID(3, "电子通行证无效");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_ALLOW_PERMIT_FLAG(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_ALLOW_PERMIT_FLAG enumType : EM_ALLOW_PERMIT_FLAG.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_ALLOW_PERMIT_FLAG enumType : EM_ALLOW_PERMIT_FLAG.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_ALLOW_PERMIT_FLAG getEnum(int value) {
+ for (EM_ALLOW_PERMIT_FLAG e : EM_ALLOW_PERMIT_FLAG.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_ALLOW_PERMIT_FLAG.EM_ALLOW_PERMIT_FLAG_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ANALYSE_TASK_ERROR.java b/src/main/java/com/netsdk/lib/enumeration/EM_ANALYSE_TASK_ERROR.java
new file mode 100644
index 0000000..f04d0b3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ANALYSE_TASK_ERROR.java
@@ -0,0 +1,77 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 智能分析任务错误码
+* @date 2022/12/01 20:05:32
+*/
+public enum EM_ANALYSE_TASK_ERROR {
+/**
+未知
+*/
+ EM_ANALYSE_TASK_ERROR_UNKNOWN(1, "未知"),
+/**
+解码能力不足
+*/
+ EM_ANALYSE_TASK_ERROR_INSUFFICIENT_DECODING_CAPABILITY(2, "解码能力不足"),
+/**
+智能能力不足
+*/
+ EM_ANALYSE_TASK_ERROR_INSUFFICIENT_INTELLIGENCE_CAPABILITY(3, "智能能力不足"),
+/**
+码流格式不支持
+*/
+ EM_ANALYSE_TASK_ERROR_BITSTREAM_FORMAT_NOT_SUPPORTED(4, "码流格式不支持"),
+/**
+分析器离线
+*/
+ EM_ANALYSE_TASK_ERROR_ANALYZER_OFF_LINE(5, "分析器离线"),
+/**
+分析器上线
+*/
+ EM_ANALYSE_TASK_ERROR_ANALYZER_ON_LINE(6, "分析器上线");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_ANALYSE_TASK_ERROR(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_ANALYSE_TASK_ERROR enumType : EM_ANALYSE_TASK_ERROR.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_ANALYSE_TASK_ERROR enumType : EM_ANALYSE_TASK_ERROR.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return 0;
+ }
+
+public static EM_ANALYSE_TASK_ERROR getEnum(int value) {
+ for (EM_ANALYSE_TASK_ERROR e : EM_ANALYSE_TASK_ERROR.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_ANALYSE_TASK_ERROR.EM_ANALYSE_TASK_ERROR_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ANALYSE_TASK_START_RULE.java b/src/main/java/com/netsdk/lib/enumeration/EM_ANALYSE_TASK_START_RULE.java
new file mode 100644
index 0000000..6cb4b70
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ANALYSE_TASK_START_RULE.java
@@ -0,0 +1,61 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 智能任务启动规则
+* @date 2022/06/28 16:19:15
+*/
+public enum EM_ANALYSE_TASK_START_RULE {
+/**
+立刻启动
+*/
+ EM_ANALYSE_TASK_START_NOW(0, "立刻启动"),
+/**
+稍候手动启动
+*/
+ EM_ANALYSE_TASK_START_LATER(1, "稍候手动启动");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_ANALYSE_TASK_START_RULE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_ANALYSE_TASK_START_RULE enumType : EM_ANALYSE_TASK_START_RULE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_ANALYSE_TASK_START_RULE enumType : EM_ANALYSE_TASK_START_RULE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_ANALYSE_TASK_START_RULE getEnum(int value) {
+ for (EM_ANALYSE_TASK_START_RULE e : EM_ANALYSE_TASK_START_RULE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_ANALYSE_TASK_START_RULE.EM_ANALYSE_TASK_START_NOW;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ANGLE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_ANGLE_TYPE.java
new file mode 100644
index 0000000..b8ad2f5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ANGLE_TYPE.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 角度
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 19:35
+ */
+public class EM_ANGLE_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_ANGLE_UNKNOWN = 0;
+ /**
+ * 正面
+ */
+ public static final int EM_ANGLE_FRONT = 1;
+ /**
+ * 侧面
+ */
+ public static final int EM_ANGLE_SIDE = 2;
+ /**
+ * 背面
+ */
+ public static final int EM_ANGLE_BACK = 3;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ANTI_MISPRESS_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_ANTI_MISPRESS_TYPE.java
new file mode 100644
index 0000000..0fd49c3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ANTI_MISPRESS_TYPE.java
@@ -0,0 +1,69 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 防误按模式
+* @date 2022/08/31 14:44:16
+*/
+public enum EM_ANTI_MISPRESS_TYPE {
+/**
+未知
+*/
+ EM_ANTI_MISPRESS_UNKNOWN(0, "未知"),
+/**
+按下0.1s生效
+*/
+ EM_ANTI_MISPRESS_OFF(1, "按下0.1s生效"),
+/**
+长按3s有效
+*/
+ EM_ANTI_MISPRESS_LONG(2, "长按3s有效"),
+/**
+间断1s内连续按2次
+*/
+ EM_ANTI_MISPRESS_DOUBLE(3, "间断1s内连续按2次");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_ANTI_MISPRESS_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_ANTI_MISPRESS_TYPE enumType : EM_ANTI_MISPRESS_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_ANTI_MISPRESS_TYPE enumType : EM_ANTI_MISPRESS_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_ANTI_MISPRESS_TYPE getEnum(int value) {
+ for (EM_ANTI_MISPRESS_TYPE e : EM_ANTI_MISPRESS_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_ANTI_MISPRESS_TYPE.EM_ANTI_MISPRESS_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_APP_DEBUG_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_APP_DEBUG_STATE.java
new file mode 100644
index 0000000..b48b375
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_APP_DEBUG_STATE.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * APP的调试状态
+*/
+public enum EM_APP_DEBUG_STATE
+{
+ /**
+ * 未知
+ */
+ EM_APP_DEBUG_STATE_UNKNOWN(0, "未知"),
+ /**
+ * 开启调试
+ */
+ EM_APP_DEBUG_STATE_ENABLE(1, "开启调试"),
+ /**
+ * 关闭调试
+ */
+ EM_APP_DEBUG_STATE_DISABLE(2, "关闭调试");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_APP_DEBUG_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_APP_DEBUG_STATE enumType : EM_APP_DEBUG_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_APP_DEBUG_STATE enumType : EM_APP_DEBUG_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_APP_LICENSE_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_APP_LICENSE_STATE.java
new file mode 100644
index 0000000..6072aa5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_APP_LICENSE_STATE.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * APP的证书状态
+*/
+public enum EM_APP_LICENSE_STATE
+{
+ /**
+ * 未知
+ */
+ EM_APP_LICENSE_STATE_UNKNOEN(0, "未知"),
+ /**
+ * 证书试用期
+ */
+ EM_APP_LICENSE_STATE_IN_TRAL(1, "证书试用期"),
+ /**
+ * 证书正式合法
+ */
+ EM_APP_LICENSE_STATE_IN_LICENSE(2, "证书正式合法"),
+ /**
+ * 证书过期
+ */
+ EM_APP_LICENSE_STATE_EXPIRED(3, "证书过期");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_APP_LICENSE_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_APP_LICENSE_STATE enumType : EM_APP_LICENSE_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_APP_LICENSE_STATE enumType : EM_APP_LICENSE_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_APP_RUNNING_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_APP_RUNNING_STATE.java
new file mode 100644
index 0000000..54c195a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_APP_RUNNING_STATE.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * APP的运行状态
+*/
+public enum EM_APP_RUNNING_STATE
+{
+ /**
+ * 未知
+ */
+ EM_APP_RUNNING_STATE_UNKNOWN(0, "未知"),
+ /**
+ * 运行中
+ */
+ EM_APP_RUNNING_STATE_RUNNING(1, "运行中"),
+ /**
+ * 已停止
+ */
+ EM_APP_RUNNING_STATE_STOP(2, "已停止"),
+ /**
+ * 异常状态
+ */
+ EM_APP_RUNNING_STATE_ERROR(3, "异常状态");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_APP_RUNNING_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_APP_RUNNING_STATE enumType : EM_APP_RUNNING_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_APP_RUNNING_STATE enumType : EM_APP_RUNNING_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_AREAALARM_TRIGGER_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_AREAALARM_TRIGGER_TYPE.java
new file mode 100644
index 0000000..ee4d9ff
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_AREAALARM_TRIGGER_TYPE.java
@@ -0,0 +1,73 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 区域报警触发类型
+* @date 2022/07/19 19:31:27
+*/
+public enum EM_AREAALARM_TRIGGER_TYPE {
+/**
+未知
+*/
+ EM_AREAALARM_TRIGGER_TYPE_UNKNOWN(0, "未知"),
+/**
+通道打开
+*/
+ EM_AREAALARM_TRIGGER_TYPE_ALARM(1, "通道打开"),
+/**
+通道防拆
+*/
+ EM_AREAALARM_TRIGGER_TYPE_TAMPER(2, "通道防拆"),
+/**
+通道遮挡
+*/
+ EM_AREAALARM_TRIGGER_TYPE_MASK(3, "通道遮挡"),
+/**
+通道防短
+*/
+ EM_AREAALARM_TRIGGER_TYPE_SHORT(4, "通道防短");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_AREAALARM_TRIGGER_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_AREAALARM_TRIGGER_TYPE enumType : EM_AREAALARM_TRIGGER_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_AREAALARM_TRIGGER_TYPE enumType : EM_AREAALARM_TRIGGER_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_AREAALARM_TRIGGER_TYPE getEnum(int value) {
+ for (EM_AREAALARM_TRIGGER_TYPE e : EM_AREAALARM_TRIGGER_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_AREAALARM_TRIGGER_TYPE.EM_AREAALARM_TRIGGER_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_AREAARM_TRIGGERMODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_AREAARM_TRIGGERMODE.java
new file mode 100644
index 0000000..9495ceb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_AREAARM_TRIGGERMODE.java
@@ -0,0 +1,100 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 291189
+ * @description 区域防区操作方式
+ * @date 2022/07/19 10:09:08
+ */
+public enum EM_AREAARM_TRIGGERMODE {
+ /**
+ * 未知
+ */
+ EM_AREAARM_TRIGGERMODE_UNKNOWN(0, "未知"),
+ /**
+ * 键盘
+ */
+ EM_AREAARM_TRIGGERMODE_KEYPAD(1, "键盘"),
+ /**
+ * 遥控器
+ */
+ EM_AREAARM_TRIGGERMODE_REMOTECONTROL(2, "遥控器"),
+ /**
+ * 用户操作
+ */
+ EM_AREAARM_TRIGGERMODE_USER(3, "用户操作"),
+ /**
+ * 本地
+ */
+ EM_AREAARM_TRIGGERMODE_LOCAL(4, "本地"),
+ /**
+ * 定时器
+ */
+ EM_AREAARM_TRIGGERMODE_TIMER(5, "定时器"),
+ /**
+ * Key类型防区
+ */
+ EM_AREAARM_TRIGGERMODE_KEY(6, "Key类型防区"),
+ /**
+ * 远程操作(电话反控、短信反控、手机App、平台客户端等)
+ */
+ EM_AREAARM_TRIGGERMODE_REMOTE(7, "远程操作(电话反控、短信反控、手机App、平台客户端等)"),
+ /**
+ * DSS平台客户端
+ */
+ EM_AREAARM_TRIGGERMODE_DSS(8, "DSS平台客户端"),
+ /**
+ * DSSPro平台客户端
+ */
+ EM_AREAARM_TRIGGERMODE_DSSPRO(9, "DSSPro平台客户端"),
+ /**
+ * 手机客户端
+ */
+ EM_AREAARM_TRIGGERMODE_DMSS(10, "手机客户端"),
+ /**
+ * Smart pss、ICC平台
+ */
+ EM_AREAARM_TRIGGERMODE_PLATFORM(11, "Smart pss、ICC平台");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_AREAARM_TRIGGERMODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_AREAARM_TRIGGERMODE enumType : EM_AREAARM_TRIGGERMODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_AREAARM_TRIGGERMODE enumType : EM_AREAARM_TRIGGERMODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_AREAARM_TRIGGERMODE getEnum(int value) {
+ for (EM_AREAARM_TRIGGERMODE e : EM_AREAARM_TRIGGERMODE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_AREAARM_TRIGGERMODE.EM_AREAARM_TRIGGERMODE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_AREAARM_USER.java b/src/main/java/com/netsdk/lib/enumeration/EM_AREAARM_USER.java
new file mode 100644
index 0000000..0a7ce9e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_AREAARM_USER.java
@@ -0,0 +1,84 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 291189
+ * @description 区域防区操作用户
+ * @date 2022/07/19 10:09:08
+ */
+public enum EM_AREAARM_USER {
+ /**
+ * 未知
+ */
+ EM_AREAARM_USER_UNKNOWN(0, "未知"),
+ /**
+ *
+ */
+ EM_AREAARM_USER_SUPERVISOR(1, ""),
+ /**
+ * 管理用户
+ */
+ EM_AREAARM_USER_MANAGER(2, "管理用户"),
+ /**
+ * 主用户
+ */
+ EM_AREAARM_USER_MASTER(3, "主用户"),
+ /**
+ * 普通用户
+ */
+ EM_AREAARM_USER_USER(4, "普通用户"),
+ /**
+ * 临时用户
+ */
+ EM_AREAARM_USER_TEMPORARY(5, "临时用户"),
+ /**
+ * 胁迫用户
+ */
+ EM_AREAARM_USER_DURESS(6, "胁迫用户"),
+ /**
+ * 巡逻用户
+ */
+ EM_AREAARM_USER_PATROL(7, "巡逻用户");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_AREAARM_USER(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_AREAARM_USER enumType : EM_AREAARM_USER.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_AREAARM_USER enumType : EM_AREAARM_USER.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_AREAARM_USER getEnum(int value) {
+ for (EM_AREAARM_USER e : EM_AREAARM_USER.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_AREAARM_USER.EM_AREAARM_USER_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ARMING_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_ARMING_TYPE.java
new file mode 100644
index 0000000..15b62a3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ARMING_TYPE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 布防模式
+* @date 2022/08/31 14:44:17
+*/
+public enum EM_ARMING_TYPE {
+/**
+未知
+*/
+ EM_ARMING_UNKNOWN(-1, "未知"),
+/**
+在家布防
+*/
+ EM_ARMING_ATHOME(0, "在家布防"),
+/**
+外出布防
+*/
+ EM_ARMING_OUT(1, "外出布防");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_ARMING_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_ARMING_TYPE enumType : EM_ARMING_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_ARMING_TYPE enumType : EM_ARMING_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_ARMING_TYPE getEnum(int value) {
+ for (EM_ARMING_TYPE e : EM_ARMING_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_ARMING_TYPE.EM_ARMING_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ARM_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_ARM_STATE.java
new file mode 100644
index 0000000..26e38f2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ARM_STATE.java
@@ -0,0 +1,58 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 布撤防状态
+ * @date 2021/11/08
+ */
+public enum EM_ARM_STATE {
+ // 未知
+ EM_ARM_STATE_UNKNOWN(0, "未知"),
+ // Total布防
+ EM_ARM_STATE_TOTAL_ARMING(1, "Total布防"),
+ // partial1布防
+ EM_ARM_STATE_PARTIAL1_ARMING(2, "partial1布防"),
+ // partial2布防
+ EM_ARM_STATE_PARTIAL2_ARMING(3, "partial2布防"),
+ // partial1+2布防
+ EM_ARM_STATE_PARTIAL1_PARTIAL2_ARMING(4, "partial1+2布防"),
+ // 强制布防
+ EM_ARM_STATE_FORCEARMING(5, "强制布防"),
+ // 撤防
+ EM_ARM_STATE_DISARMING(6, "撤防");
+
+ private int value;
+ private String note;
+
+ private EM_ARM_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_ARM_STATE enumType : EM_ARM_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_ARM_STATE enumType : EM_ARM_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ARM_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_ARM_TYPE.java
new file mode 100644
index 0000000..6579511
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ARM_TYPE.java
@@ -0,0 +1,80 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 291189
+ * @description 布撤防类型
+ * @date 2022/07/19 10:54:34
+ */
+public enum EM_ARM_TYPE {
+ /**
+ * 未知
+ */
+ EM_ARM_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * Total布防
+ */
+ EM_ARM_TYPE_TOTAL_ARMING(1, "Total布防"),
+ /**
+ * partial1布防
+ */
+ EM_ARM_TYPE_PARTIAL1_ARMING(2, "partial1布防"),
+ /**
+ * partial2布防
+ */
+ EM_ARM_TYPE_PARTIAL2_ARMING(3, "partial2布防"),
+ /**
+ * partial1+2布防
+ */
+ EM_ARM_TYPE_PARTIAL_ARMING(4, "partial1+2布防"),
+ /**
+ * 强制布防
+ */
+ EM_ARM_TYPE_DENFENCE_ARMING(5, "强制布防"),
+ /**
+ * 撤防
+ */
+ EM_ARM_TYPE_DISARMING(6, "撤防");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_ARM_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_ARM_TYPE enumType : EM_ARM_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_ARM_TYPE enumType : EM_ARM_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_ARM_TYPE getEnum(int value) {
+ for (EM_ARM_TYPE e : EM_ARM_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_ARM_TYPE.EM_ARM_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ASG_BATTERY_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_ASG_BATTERY_STATE.java
new file mode 100644
index 0000000..cc871f2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ASG_BATTERY_STATE.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 闸机电池状态
+*/
+public enum EM_ASG_BATTERY_STATE
+{
+ /**
+ * 未知
+ */
+ EM_ASG_BATTERY_STATE_UNKNOWN(0, "未知"),
+ /**
+ * 不在位
+ */
+ EM_ASG_BATTERY_STATE_NOT_IN_PLACE(1, "不在位"),
+ /**
+ * 在位
+ */
+ EM_ASG_BATTERY_STATE_IN_PLACE(2, "在位");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_ASG_BATTERY_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_ASG_BATTERY_STATE enumType : EM_ASG_BATTERY_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_ASG_BATTERY_STATE enumType : EM_ASG_BATTERY_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ASG_WORK_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_ASG_WORK_MODE.java
new file mode 100644
index 0000000..e5c53cf
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ASG_WORK_MODE.java
@@ -0,0 +1,49 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 工作模式
+ * @date 2021/2/7
+ */
+public enum EM_ASG_WORK_MODE {
+ /** 未知 */
+ EM_ASG_WORK_MODE_UNKNOWN(-1, "未知"),
+ /** 常闭模式 */
+ EM_ASG_WORK_MODE_CLOSE(0, "常闭模式"),
+ EM_ASG_WORK_MODE_OPEN(1, "常开模式");
+
+ private int mode;
+ private String desc;
+
+ EM_ASG_WORK_MODE(int mode, String desc) {
+ this.mode = mode;
+ this.desc = desc;
+ }
+
+ public static EM_ASG_WORK_MODE getAsgWorkMode(int mode) {
+ for (EM_ASG_WORK_MODE workMode : EM_ASG_WORK_MODE.values()) {
+ if (workMode.mode == mode) {
+ return workMode;
+ }
+ }
+ return EM_ASG_WORK_MODE_UNKNOWN;
+ }
+
+ public int getMode() {
+ return mode;
+ }
+
+ public void setMode(int mode) {
+ this.mode = mode;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public void setDesc(String desc) {
+ this.desc = desc;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ASSOCIATED_RECORD_SOURCE.java b/src/main/java/com/netsdk/lib/enumeration/EM_ASSOCIATED_RECORD_SOURCE.java
new file mode 100644
index 0000000..daf0e8e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ASSOCIATED_RECORD_SOURCE.java
@@ -0,0 +1,46 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 是否与其他目标关联
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 19:35
+ */
+public class EM_ASSOCIATED_RECORD_SOURCE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_ASSOCIATED_RECORD_SOURCE_UNKNOWN = -1;
+ /**
+ * 未关联
+ */
+ public static final int EM_ASSOCIATED_RECORD_SOURCE_NONE = 0;
+ /**
+ * 与人体有关联成功
+ */
+ public static final int EM_ASSOCIATED_RECORD_SOURCE_HUMAN = 1;
+ /**
+ * 与机动车过车有关联
+ */
+ public static final int EM_ASSOCIATED_RECORD_SOURCE_MOTOR_VEHICLE_PASSING = 2;
+ /**
+ * 与机动车违章有关联
+ */
+ public static final int EM_ASSOCIATED_RECORD_SOURCE_MOTOR_VEHICLE_VIOLATION = 3;
+ /**
+ * 与结构化机动车有关联
+ */
+ public static final int EM_ASSOCIATED_RECORD_SOURCE_STRUCTURED_MOTOR_VEHICLE = 4;
+ /**
+ * 与人脸有关联
+ */
+ public static final int EM_ASSOCIATED_RECORD_SOURCE_FACE = 5;
+ /**
+ * 与非机动车有关联
+ */
+ public static final int EM_ASSOCIATED_RECORD_SOURCE_NON_MOTOR_VEHICLE = 6;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ATTACH_TOPICS.java b/src/main/java/com/netsdk/lib/enumeration/EM_ATTACH_TOPICS.java
new file mode 100644
index 0000000..648da74
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ATTACH_TOPICS.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 260611
+ * @description 订阅类型
+ * @date 2022/04/20 10:16:56
+ */
+public enum EM_ATTACH_TOPICS {
+ /**
+ * 表示订阅所有属性和事件
+ */
+ EM_ATTACH_TOPICS_ALL(0, " * 表示订阅所有属性和事件"),
+ /**
+ * Props 表示订阅设备属性上报
+ */
+ EM_ATTACH_TOPICS_PROPS(1, " Props 表示订阅设备属性上报"),
+ /**
+ * Events 标识订阅设备事件上报
+ */
+ EM_ATTACH_TOPICS_EVENTS(2, " Events 标识订阅设备事件上报");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_ATTACH_TOPICS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_ATTACH_TOPICS enumType : EM_ATTACH_TOPICS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_ATTACH_TOPICS enumType : EM_ATTACH_TOPICS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_ATTACH_TOPICS getEnum(int value) {
+ for (EM_ATTACH_TOPICS e : EM_ATTACH_TOPICS.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_ATTACH_TOPICS.EM_ATTACH_TOPICS_ALL;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_AUDIO_DATA_SOURCE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_AUDIO_DATA_SOURCE_TYPE.java
new file mode 100644
index 0000000..81a2c4c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_AUDIO_DATA_SOURCE_TYPE.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 音频解码能力数据流源类型
+ * @date 2021/01/06
+ */
+public enum EM_AUDIO_DATA_SOURCE_TYPE {
+ // 未知数据类型
+ EM_AUDIO_DATA_SOURCE_TYPE_UNKNOWN(-1, "未知数据类型"),
+ // 对讲数据
+ EM_AUDIO_DATA_SOURCE_TYPE_TALK(0, "对讲数据"),
+ // 普通音频数据,如伴音
+ EM_AUDIO_DATA_SOURCE_TYPE_NORMAL(1, "普通音频数据,如伴音"),
+ // 报警音频数据流
+ EM_AUDIO_DATA_SOURCE_TYPE_ALARM(2, "报警音频数据流");
+
+ private int value;
+ private String note;
+
+ private EM_AUDIO_DATA_SOURCE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_AUDIO_DATA_SOURCE_TYPE enumType : EM_AUDIO_DATA_SOURCE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_AUDIO_DATA_SOURCE_TYPE enumType : EM_AUDIO_DATA_SOURCE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_AUDIO_DATA_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_AUDIO_DATA_TYPE.java
new file mode 100644
index 0000000..7bebcc9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_AUDIO_DATA_TYPE.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 音频数据类型
+ * @date 2021/2/22
+ */
+public enum EM_AUDIO_DATA_TYPE {
+ /** 默认 */
+ EM_AUDIO_DATA_TYPE_DEFAULT,
+ /** 音频强制转换为AAC */
+ EM_AUDIO_DATA_TYPE_AAC,
+ /** 音频强制转换为G711A */
+ EM_AUDIO_DATA_TYPE_G711A,
+ /** 音频强制转换为G711U */
+ EM_AUDIO_DATA_TYPE_G711U,
+ /** 音频强制转换为MP2 */
+ EM_AUDIO_DATA_TYPE_MP2;
+
+ public static EM_AUDIO_DATA_TYPE getAudioDataType(int type) {
+ for (EM_AUDIO_DATA_TYPE audioType : EM_AUDIO_DATA_TYPE.values()) {
+ if (audioType.ordinal() == type) {
+ return audioType;
+ }
+ }
+ return EM_AUDIO_DATA_TYPE_DEFAULT;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_AUDIO_MUTATION_ALARM_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_AUDIO_MUTATION_ALARM_TYPE.java
new file mode 100644
index 0000000..9593cd1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_AUDIO_MUTATION_ALARM_TYPE.java
@@ -0,0 +1,50 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 声音类型枚举
+*/
+public enum EM_AUDIO_MUTATION_ALARM_TYPE
+{
+ AUDIO_MUTATION_UNKNOW(0, ""),
+ AUDIO_MUTATION_CRY(1, ""),
+ AUDIO_MUTATION_ALARM(2, ""),
+ AUDIO_MUTATION_GUNSHOT(3, ""),
+ AUDIO_MUTATION_EXPLOSION(4, ""),
+ AUDIO_MUTATION_SCREAM(5, ""),
+ AUDIO_MUTATION_CRASHINGGLASS(6, "");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_AUDIO_MUTATION_ALARM_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_AUDIO_MUTATION_ALARM_TYPE enumType : EM_AUDIO_MUTATION_ALARM_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_AUDIO_MUTATION_ALARM_TYPE enumType : EM_AUDIO_MUTATION_ALARM_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_AUDIO_SOURCE_FLAG.java b/src/main/java/com/netsdk/lib/enumeration/EM_AUDIO_SOURCE_FLAG.java
new file mode 100644
index 0000000..3eeaeff
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_AUDIO_SOURCE_FLAG.java
@@ -0,0 +1,50 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 音频数据来源
+ * @date 2021/12/29
+ */
+public enum EM_AUDIO_SOURCE_FLAG {
+ // 未知状态
+ EM_AUDIO_SOURCE_FLAG_UNKNOWN(-1, "未知状态"),
+ // 本地录音数据,可以发送给设备
+ EM_AUDIO_SOURCE_FLAG_LOCAL(0, "本地录音数据,可以发送给设备"),
+ // 远程音频数据,即从设备接收到音频数据
+ EM_AUDIO_SOURCE_FLAG_REMOTE(1, "远程音频数据,即从设备接收到音频数据");
+
+ private int value;
+ private String note;
+
+ private EM_AUDIO_SOURCE_FLAG(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_AUDIO_SOURCE_FLAG enumType : EM_AUDIO_SOURCE_FLAG.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_AUDIO_SOURCE_FLAG enumType : EM_AUDIO_SOURCE_FLAG.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_AUTO_PROTECT_WEEK.java b/src/main/java/com/netsdk/lib/enumeration/EM_AUTO_PROTECT_WEEK.java
new file mode 100644
index 0000000..71ec3a6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_AUTO_PROTECT_WEEK.java
@@ -0,0 +1,62 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 自动维护星期
+ * @date 2021/08/24
+ */
+public enum EM_AUTO_PROTECT_WEEK {
+ // 未知
+ EM_AUTO_PROTECT_UNKNOWN(0, "未知"),
+ // 星期一
+ EM_AUTO_PROTECT_MONDAY(1, "星期一"),
+ // 星期二
+ EM_AUTO_PROTECT_TUESDAY(2, "星期二"),
+ // 星期三
+ EM_AUTO_PROTECT_WEDNESDAY(3, "星期三"),
+ // 星期四
+ EM_AUTO_PROTECT_THURSDAY(4, "星期四"),
+ // 星期五
+ EM_AUTO_PROTECT_FIRDAY(5, "星期五"),
+ // 星期六
+ EM_AUTO_PROTECT_SATURDAY(6, "星期六"),
+ // 星期天
+ EM_AUTO_PROTECT_SUNDAY(7, "星期天"),
+ // 每天
+ EM_AUTO_PROTECT_EVERYDAY(8, "每天");
+
+ private int value;
+ private String note;
+
+ private EM_AUTO_PROTECT_WEEK(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_AUTO_PROTECT_WEEK enumType : EM_AUTO_PROTECT_WEEK.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_AUTO_PROTECT_WEEK enumType : EM_AUTO_PROTECT_WEEK.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_BACKLIGHT_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_BACKLIGHT_MODE.java
new file mode 100644
index 0000000..454b07a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_BACKLIGHT_MODE.java
@@ -0,0 +1,67 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 背光补偿模式,当背光模式为Backlight时有效
+* @origin autoTool
+* @date 2023/11/30 16:22:26
+*/
+public enum EM_BACKLIGHT_MODE {
+ /**
+ * 未知模式
+ */
+ EM_BACKLIGHT_UNKONW(0, "未知模式"),
+ /**
+ * 默认模式
+ */
+ EM_BACKLIGHT_DEFAULT(1, "默认模式"),
+ /**
+ * 自定义区域模式
+ */
+ EM_BACKLIGHT_REGION(2, "自定义区域模式");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_BACKLIGHT_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_BACKLIGHT_MODE enumType : EM_BACKLIGHT_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_BACKLIGHT_MODE enumType : EM_BACKLIGHT_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_BACKLIGHT_MODE getEnum(int value) {
+ for (EM_BACKLIGHT_MODE e : EM_BACKLIGHT_MODE.values()) {
+ if (e.getValue() == value){
+ return e;
+ }
+ }
+ return EM_BACKLIGHT_MODE.EM_BACKLIGHT_UNKONW;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_BACKUP_ERROR_CODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_BACKUP_ERROR_CODE.java
new file mode 100644
index 0000000..9b4a113
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_BACKUP_ERROR_CODE.java
@@ -0,0 +1,78 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 备份模式设置错误码
+ * @date 2021/09/28
+ */
+public enum EM_BACKUP_ERROR_CODE {
+ // 未知
+ EM_BACKUP_ERROR_CODE_UNKNOWN(-1, "未知"),
+ // 备份模式设置成功
+ EM_BACKUP_ERROR_CODE_SUCCESS(0, "备份模式设置成功"),
+ // 周期方案表有误
+ EM_BACKUP_ERROR_CODE_CYCLE_PLAN(1, "周期方案表有误"),
+ // 绿信比表有误
+ EM_BACKUP_ERROR_CODE_GREEN_LETTER(2, "绿信比表有误"),
+ // 时基方案表有误
+ EM_BACKUP_ERROR_CODE_TIME_BASE_PLAN(3, "时基方案表有误"),
+ // 日计划表有误
+ EM_BACKUP_ERROR_CODE_DAY_PLAN(4, "日计划表有误"),
+ // 动作方案表有误
+ EM_BACKUP_ERROR_CODE_ACTION_PLAN(5, "动作方案表有误"),
+ // 相序表有误
+ EM_BACKUP_ERROR_CODE_PHASE_SEQUENCE(6, "相序表有误"),
+ // 通道表有误
+ EM_BACKUP_ERROR_CODE_CHANNEL_TABLE(7, "通道表有误"),
+ // 跟随相位表有误
+ EM_BACKUP_ERROR_CODE_FOLLOW_PHASE_TABLE(8, "跟随相位表有误"),
+ // 相位冲突
+ EM_BACKUP_ERROR_CODE_PHASE_CONFLCT(9, "相位冲突"),
+ // 下发方案超时
+ EM_BACKUP_ERROR_CODE_DELIVERY_PLAN(10, "下发方案超时"),
+ // 车道表设置有误
+ EM_BACKUP_ERROR_CODE_LANE_TABLE_SETTING(11, "车道表设置有误"),
+ // 用于信号灯,提示信号灯不支持短连接路口
+ EM_BACKUP_ERROR_CODE_NOT_SUPPORT_SHORT_JUNCTIONS(12, "用于信号灯,提示信号灯不支持短连接路口"),
+ // 通道配置有误 用于信号灯 无掉头箭头灯、直行非机动车灯、左转非机动车灯、公交信号灯--可变车道
+ EM_BACKUP_ERROR_CODE_CHANNEL_CONFIGURATION(13, "通道配置有误"),
+ // 可变车道方案表有误
+ EM_BACKUP_ERROR_CODE_VARIABLEE_LANE_TABLE(14, "可变车道方案表有误 "),
+ // 周计划方案表有误
+ EM_BACKUP_ERROR_CODE_WEEKLY_PLAN(15, "周计划方案表有误");
+
+ private int value;
+ private String note;
+
+ private EM_BACKUP_ERROR_CODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_BACKUP_ERROR_CODE enumType : EM_BACKUP_ERROR_CODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_BACKUP_ERROR_CODE enumType : EM_BACKUP_ERROR_CODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_BACKUP_FORMAT.java b/src/main/java/com/netsdk/lib/enumeration/EM_BACKUP_FORMAT.java
new file mode 100644
index 0000000..cd1b15f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_BACKUP_FORMAT.java
@@ -0,0 +1,46 @@
+package com.netsdk.lib.enumeration;
+/**
+ *
+ * @author 119178
+ *
+ */
+public enum EM_BACKUP_FORMAT {
+ EM_BACKUP_FORMAT_ASF(0, "asf"),// "asf"
+ EM_BACKUP_FORMAT_DAV(1, "dav"),// "dav"
+ EM_BACKUP_FORMAT_MP4(2, "mp4");// "mp4"
+
+ private int value;
+ private String note;
+
+ private EM_BACKUP_FORMAT(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TRAFFICSTROBE_STATUS enumType : EM_TRAFFICSTROBE_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TRAFFICSTROBE_STATUS enumType : EM_TRAFFICSTROBE_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_BACKUP_SOURCE_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_BACKUP_SOURCE_MODE.java
new file mode 100644
index 0000000..bced1d9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_BACKUP_SOURCE_MODE.java
@@ -0,0 +1,41 @@
+package com.netsdk.lib.enumeration;
+
+public enum EM_BACKUP_SOURCE_MODE {
+ EM_SOURCE_MODE_SINGLE(0, "Single"),// "Single",/*单个备份模式*/
+ EM_SOURCE_MODE_COMBIN(1, "Combin");// "Combin",/*合并备份模式*/
+
+ private int value;
+ private String note;
+
+ private EM_BACKUP_SOURCE_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TRAFFICSTROBE_STATUS enumType : EM_TRAFFICSTROBE_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TRAFFICSTROBE_STATUS enumType : EM_TRAFFICSTROBE_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_BACKUP_SOURCE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_BACKUP_SOURCE_TYPE.java
new file mode 100644
index 0000000..acb6437
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_BACKUP_SOURCE_TYPE.java
@@ -0,0 +1,42 @@
+package com.netsdk.lib.enumeration;
+
+public enum EM_BACKUP_SOURCE_TYPE {
+ EM_SOURCE_TYPE_REALTIME(0, "RealTime"),// "RealTime", /*实时源*/,源类型有效
+ EM_SOURCE_TYPE_LOCAL(1, "Local"),// "Local", /*本地源*/
+ EM_SOURCE_TYPE_NETWORK(2, "Network");// "Network", /*网络源*/
+
+ private int value;
+ private String note;
+
+ private EM_BACKUP_SOURCE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TRAFFICSTROBE_STATUS enumType : EM_TRAFFICSTROBE_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TRAFFICSTROBE_STATUS enumType : EM_TRAFFICSTROBE_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_BACKUP_TARGET_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_BACKUP_TARGET_MODE.java
new file mode 100644
index 0000000..b7c903a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_BACKUP_TARGET_MODE.java
@@ -0,0 +1,42 @@
+package com.netsdk.lib.enumeration;
+
+public enum EM_BACKUP_TARGET_MODE {
+ EM_TARGET_MODE_SYNC(0, "Sync"),// "Sync", /*同步备份*/
+ EM_TARGET_MODE_TURN(1, "Turn"),// "Turn", /*轮训备份*/
+ EM_TARGET_MODE_CYCLE(2, "Cycle");// "Cycle", /*循环备份*/
+
+ private int value;
+ private String note;
+
+ private EM_BACKUP_TARGET_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TRAFFICSTROBE_STATUS enumType : EM_TRAFFICSTROBE_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TRAFFICSTROBE_STATUS enumType : EM_TRAFFICSTROBE_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_BACKUP_TARGET_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_BACKUP_TARGET_TYPE.java
new file mode 100644
index 0000000..816b691
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_BACKUP_TARGET_TYPE.java
@@ -0,0 +1,41 @@
+package com.netsdk.lib.enumeration;
+
+public enum EM_BACKUP_TARGET_TYPE {
+ EM_TARGET_TYPE_LOCAL(0, "Local"),// "Local", /*本地源*/
+ EM_TARGET_TYPE_NETWORK(1, "Network");// "Network", /*网络源*/
+
+ private int value;
+ private String note;
+
+ private EM_BACKUP_TARGET_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TRAFFICSTROBE_STATUS enumType : EM_TRAFFICSTROBE_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TRAFFICSTROBE_STATUS enumType : EM_TRAFFICSTROBE_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_BAG_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_BAG_TYPE.java
new file mode 100644
index 0000000..9a87b9d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_BAG_TYPE.java
@@ -0,0 +1,42 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 包类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 19:35
+ */
+public class EM_BAG_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_BAG_UNKNOWN = 0;
+ /**
+ * 手提包
+ */
+ public static final int EM_BAG_HANDBAG = 1;
+ /**
+ * 肩包
+ */
+ public static final int EM_BAG_SHOULDERBAG = 2;
+ /**
+ * 背包
+ */
+ public static final int EM_BAG_KNAPSACK = 3;
+ /**
+ * 拉杆箱
+ */
+ public static final int EM_BAG_DRAWBARBOX = 4;
+ /**
+ * 腰包
+ */
+ public static final int EM_BAG_WAISTPACK = 5;
+ /**
+ * 无包
+ */
+ public static final int EM_BAG_NONE = 6;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_BATTERY_EXIST_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_BATTERY_EXIST_STATE.java
new file mode 100644
index 0000000..26d7dda
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_BATTERY_EXIST_STATE.java
@@ -0,0 +1,42 @@
+package com.netsdk.lib.enumeration;
+
+public enum EM_BATTERY_EXIST_STATE {
+ EM_BATTERY_EXIST_STATE_UNKNOWN(0, "电池在位未知"),
+ EM_BATTERY_EXIST_STATE_EXIST(1, "电池在位"),// 电池在位
+ EM_BATTERY_EXIST_STATE_MISSING(2, "电池丢失");// 电池丢失
+
+ private int value;
+ private String note;
+
+ private EM_BATTERY_EXIST_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_BATTERY_EXIST_STATE enumType : EM_BATTERY_EXIST_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_BATTERY_EXIST_STATE enumType : EM_BATTERY_EXIST_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_BATTERY_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_BATTERY_STATE.java
new file mode 100644
index 0000000..e81bbc1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_BATTERY_STATE.java
@@ -0,0 +1,42 @@
+package com.netsdk.lib.enumeration;
+
+public enum EM_BATTERY_STATE {
+ EM_BATTERY_STATE_UNKNOWN(0, "电量未知"),
+ EM_BATTERY_STATE_NORMAL(1, "电量正常"),// 电量正常
+ EM_BATTERY_STATE_LOW(2, "电量低");// 电量低
+
+ private int value;
+ private String note;
+
+ private EM_BATTERY_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_BATTERY_STATE enumType : EM_BATTERY_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_BATTERY_STATE enumType : EM_BATTERY_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_BATTERY_TEMPER_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_BATTERY_TEMPER_STATE.java
new file mode 100644
index 0000000..f10352d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_BATTERY_TEMPER_STATE.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 电池温度状态
+ * @date 2022/03/31
+ */
+public enum EM_BATTERY_TEMPER_STATE {
+ // 未知
+ EM_BATTERY_TEMPER_STATE_UNKNOWN(0, "未知"),
+ // 低温
+ EM_BATTERY_TEMPER_STATE_LOW_TEMPER(1, "低温"),
+ // 常温
+ EM_BATTERY_TEMPER_STATE_NORMAL_TEMPER(2, "常温"),
+ // 高温
+ EM_BATTERY_TEMPER_STATE_HIGH_TEMPER(3, "高温"),
+ // 超温
+ EM_BATTERY_TEMPER_STATE_OVER_TEMPER(4, "超温"),
+ // 异常
+ EM_BATTERY_TEMPER_STATE_ABNORMAL_TEMPER(5, "异常");
+
+ private int value;
+ private String note;
+
+ private EM_BATTERY_TEMPER_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_BATTERY_TEMPER_STATE enumType : EM_BATTERY_TEMPER_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_BATTERY_TEMPER_STATE enumType : EM_BATTERY_TEMPER_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_BEARD_STATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_BEARD_STATE_TYPE.java
new file mode 100644
index 0000000..bac32c3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_BEARD_STATE_TYPE.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 胡子状态
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_BEARD_STATE_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_BEARD_STATE_UNKNOWN = 0;
+ /**
+ * 未识别
+ */
+ public static final int EM_BEARD_STATE_NODISTI = 1;
+ /**
+ * 没胡子
+ */
+ public static final int EM_BEARD_STATE_NOBEARD = 2;
+ /**
+ * 有胡子
+ */
+ public static final int EM_BEARD_STATE_HAVEBEARD = 3;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_BIND_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_BIND_MODE.java
new file mode 100644
index 0000000..36a8005
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_BIND_MODE.java
@@ -0,0 +1,70 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 260611
+ * @description 绑定模式
+ * @origin autoTool
+ * @date 2023/09/15 10:59:48
+ */
+public enum EM_BIND_MODE {
+ /**
+ * / 未知
+ */
+ EM_BIND_MODE_UNKNOWN(0, "/ 未知"),
+ /**
+ * / 自动
+ */
+ EM_BIND_MODE_AUTOMATIC(1, "/ 自动"),
+ /**
+ * / 半自动
+ */
+ EM_BIND_MODE_SEMIAUTOMATIC(2, "/ 半自动"),
+ /**
+ * / 手动
+ */
+ EM_BIND_MODE_MANUAL(3, "/ 手动");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_BIND_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_BIND_MODE enumType : EM_BIND_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_BIND_MODE enumType : EM_BIND_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_BIND_MODE getEnum(int value) {
+ for (EM_BIND_MODE e : EM_BIND_MODE.values()) {
+ if (e.getValue() == value) {
+ return e;
+ }
+ }
+ return EM_BIND_MODE.EM_BIND_MODE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_BOAT_DIRECTION.java b/src/main/java/com/netsdk/lib/enumeration/EM_BOAT_DIRECTION.java
new file mode 100644
index 0000000..9d1b895
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_BOAT_DIRECTION.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 船只行驶方向
+ * @date 2022/06/16 11:14:19
+ */
+public enum EM_BOAT_DIRECTION {
+ /**
+ * 未知
+ */
+ EM_BOAT_DIRECTION_UNKNOWN(0, "未知"),
+ /**
+ * 逆向
+ */
+ EM_BOAT_DIRECTION_OPPOSITE(1, "逆向"),
+ /**
+ * 正向
+ */
+ EM_BOAT_DIRECTION_POSITIVE(2, "正向");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_BOAT_DIRECTION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_BOAT_DIRECTION enumType : EM_BOAT_DIRECTION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_BOAT_DIRECTION enumType : EM_BOAT_DIRECTION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_BREED_DETECT_CATEGORY_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_BREED_DETECT_CATEGORY_TYPE.java
new file mode 100644
index 0000000..40ffff2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_BREED_DETECT_CATEGORY_TYPE.java
@@ -0,0 +1,61 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 智慧养殖检测目标子类型
+* @date 2022/04/15 15:29:30
+*/
+public enum EM_BREED_DETECT_CATEGORY_TYPE {
+/**
+未知
+*/
+ EM_BREED_DETECT_CATEGORY_UNKNOWN(0, "未知"),
+/**
+猪
+*/
+ EM_BREED_DETECT_CATEGORY_PIG(1, "猪");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_BREED_DETECT_CATEGORY_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_BREED_DETECT_CATEGORY_TYPE enumType : EM_BREED_DETECT_CATEGORY_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_BREED_DETECT_CATEGORY_TYPE enumType : EM_BREED_DETECT_CATEGORY_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_BREED_DETECT_CATEGORY_TYPE getEnum(int value) {
+ for (EM_BREED_DETECT_CATEGORY_TYPE e : EM_BREED_DETECT_CATEGORY_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_BREED_DETECT_CATEGORY_TYPE.EM_BREED_DETECT_CATEGORY_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_BROADCAST_TEXT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_BROADCAST_TEXT_TYPE.java
new file mode 100644
index 0000000..01fb296
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_BROADCAST_TEXT_TYPE.java
@@ -0,0 +1,64 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 播报文本类型
+ * @date 2022/11/28 16:20:42
+ */
+public enum EM_BROADCAST_TEXT_TYPE {
+ /**
+ * 未知
+ */
+ EM_BROADCAST_TEXT_TYPE_UNKNOWN(-1, "未知"),
+ /**
+ * 普通
+ */
+ EM_BROADCAST_TEXT_TYPE_ORDINARY(0, "普通"),
+ /**
+ * 车牌号
+ */
+ EM_BROADCAST_TEXT_TYPE_PLATE_NUMBER(1, "车牌号"),
+ /**
+ * 时间
+ */
+ EM_BROADCAST_TEXT_TYPE_TIME(2, "时间"),
+ /**
+ * 数字字符串
+ */
+ EM_BROADCAST_TEXT_TYPE_NUMBER_STRING(3, "数字字符串");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_BROADCAST_TEXT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_BROADCAST_TEXT_TYPE enumType : EM_BROADCAST_TEXT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_BROADCAST_TEXT_TYPE enumType : EM_BROADCAST_TEXT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_BUTTON_ALARM_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_BUTTON_ALARM_TYPE.java
new file mode 100644
index 0000000..550a0ff
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_BUTTON_ALARM_TYPE.java
@@ -0,0 +1,69 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 按钮报警类型
+* @date 2022/08/31 14:44:18
+*/
+public enum EM_BUTTON_ALARM_TYPE {
+/**
+未知
+*/
+ EM_BUTTON_ALARM_UNKNOWN(-1, "未知"),
+/**
+火警
+*/
+ EM_BUTTON_ALARM_FIRE(0, "火警"),
+/**
+紧急报警
+*/
+ EM_BUTTON_ALARM_EMERGENCY(1, "紧急报警"),
+/**
+医疗报警
+*/
+ EM_BUTTON_ALARM_MEDICAL(2, "医疗报警");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_BUTTON_ALARM_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_BUTTON_ALARM_TYPE enumType : EM_BUTTON_ALARM_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_BUTTON_ALARM_TYPE enumType : EM_BUTTON_ALARM_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_BUTTON_ALARM_TYPE getEnum(int value) {
+ for (EM_BUTTON_ALARM_TYPE e : EM_BUTTON_ALARM_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_BUTTON_ALARM_TYPE.EM_BUTTON_ALARM_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_BYPASSMODE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_BYPASSMODE_TYPE.java
new file mode 100644
index 0000000..07b0d5c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_BYPASSMODE_TYPE.java
@@ -0,0 +1,68 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 旁路模式类型
+ * @date 2023/03/15 16:33:42
+ */
+public enum EM_BYPASSMODE_TYPE {
+ /**
+ * 未知
+ */
+ EM_BYPASSMODE_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 不使用
+ */
+ EM_BYPASSMODE_TYPE_OFF(1, "不使用"),
+ /**
+ * 正常
+ */
+ EM_BYPASSMODE_TYPE_ACTIVE(2, "正常"),
+ /**
+ * 旁路
+ */
+ EM_BYPASSMODE_TYPE_BYPASSED(3, "旁路"),
+ /**
+ * 隔离
+ */
+ EM_BYPASSMODE_TYPE_ISOLATED(4, "隔离"),
+ /**
+ * 测试
+ */
+ EM_BYPASSMODE_TYPE_TEST(5, "测试");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_BYPASSMODE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_BYPASSMODE_TYPE enumType : EM_BYPASSMODE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_BYPASSMODE_TYPE enumType : EM_BYPASSMODE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CALIBRATEAREA_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CALIBRATEAREA_TYPE.java
new file mode 100644
index 0000000..fcd5444
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CALIBRATEAREA_TYPE.java
@@ -0,0 +1,54 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 标定区域类型
+ * @date 2021/01/11
+ */
+public enum EM_CALIBRATEAREA_TYPE {
+ // 错误
+ EM_CALIBRATEAREA_TYPE_ERR(0, "err"),
+ //地面,需要N条竖直线段+M条水平线段((N=3,M=1);(N=2,M=2);今后扩展)
+ EM_CALIBRATEAREA_TYPE_GROUD(1, "Groud"),
+ //水平面,需要水平面上一点到地面点的投影垂直线段
+ EM_CALIBRATEAREA_TYPE_HORIZONTAL(2, "Horizontal"),
+ //垂直面,需要垂直面与地面的交线
+ EM_CALIBRATEAREA_TYPE_VERTICAL(3, "Vertical"),
+ //任意平面,N条竖直线段,及每条长度(N=3,及今后扩展)
+ EM_CALIBRATEAREA_TYPE_ANY(4, "Any");
+
+ private int value;
+ private String note;
+
+ private EM_CALIBRATEAREA_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CALIBRATEAREA_TYPE enumType : EM_CALIBRATEAREA_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CALIBRATEAREA_TYPE enumType : EM_CALIBRATEAREA_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CALIBRATEINFO_OPERATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CALIBRATEINFO_OPERATE_TYPE.java
new file mode 100644
index 0000000..8b8bfd3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CALIBRATEINFO_OPERATE_TYPE.java
@@ -0,0 +1,68 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 260611
+ * @description 设备标定信息操作类型
+ * @date 2023/05/24 10:24:56
+ */
+public enum EM_CALIBRATEINFO_OPERATE_TYPE {
+ /**
+ * 获取指定点标定信息, pStuInParam = NET_IN_GET_CALIBRATEINFO_INFO, pStuOutParam = NET_OUT_GET_CALIBRATEINFO_INFO
+ */
+ EM_CALIBRATEINFO_OPERATE_GET(0, "获取指定点标定信息, pStuInParam = NET_IN_GET_CALIBRATEINFO_INFO, pStuOutParam = NET_OUT_GET_CALIBRATEINFO_INFO"),
+ /**
+ * 设置指定点标定信息, pStuInParam = NET_IN_SET_CALIBRATEINFO_INFO, pStuOutParam = NET_OUT_SET_CALIBRATEINFO_INFO
+ */
+ EM_CALIBRATEINFO_OPERATE_SET(1, "设置指定点标定信息, pStuInParam = NET_IN_SET_CALIBRATEINFO_INFO, pStuOutParam = NET_OUT_SET_CALIBRATEINFO_INFO"),
+ /**
+ * 删除指定点标定信息, pStuInParam = NET_IN_DELETE_CALIBRATEINFO_INFO, pStuOutParam = NET_OUT_DELETE_CALIBRATEINFO_INFO
+ */
+ EM_CALIBRATEINFO_OPERATE_DELETE(2, "删除指定点标定信息, pStuInParam = NET_IN_DELETE_CALIBRATEINFO_INFO, pStuOutParam = NET_OUT_DELETE_CALIBRATEINFO_INFO"),
+ /**
+ * 获取所有标定信息, pStuInParam = NET_IN_GETALL_CALIBRATEINFO_INFO, pStuOutParam = NET_OUT_GETALL_CALIBRATEINFO_INFO
+ */
+ EM_CALIBRATEINFO_OPERATE_GETALL(3, "获取所有标定信息, pStuInParam = NET_IN_GETALL_CALIBRATEINFO_INFO, pStuOutParam = NET_OUT_GETALL_CALIBRATEINFO_INFO");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CALIBRATEINFO_OPERATE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CALIBRATEINFO_OPERATE_TYPE enumType : EM_CALIBRATEINFO_OPERATE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CALIBRATEINFO_OPERATE_TYPE enumType : EM_CALIBRATEINFO_OPERATE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_CALIBRATEINFO_OPERATE_TYPE getEnum(int value) {
+ for (EM_CALIBRATEINFO_OPERATE_TYPE e : EM_CALIBRATEINFO_OPERATE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_CALIBRATEINFO_OPERATE_TYPE.EM_CALIBRATEINFO_OPERATE_GET;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CALLLIFT_ACTION.java b/src/main/java/com/netsdk/lib/enumeration/EM_CALLLIFT_ACTION.java
new file mode 100644
index 0000000..654b0d5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CALLLIFT_ACTION.java
@@ -0,0 +1,73 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 呼叫电梯方式
+* @date 2022/10/19 14:01:07
+*/
+public enum EM_CALLLIFT_ACTION {
+/**
+未知
+*/
+ EM_CALLLIFT_ACTION_UNKNOWN(-1, "未知"),
+/**
+用户通过对讲分机打开单元门锁,同时呼叫电梯到单元门处
+*/
+ EM_CALLLIFT_ACTION_USER_UNLOCK_CALL(0, "用户通过对讲分机打开单元门锁,同时呼叫电梯到单元门处"),
+/**
+用户呼叫电梯到用户所在楼层
+*/
+ EM_CALLLIFT_ACTION_USER_DIRECT_CALL(1, "用户呼叫电梯到用户所在楼层"),
+/**
+用户呼叫电梯经由某层到某层
+*/
+ EM_CALLLIFT_ACTION_USER_REDIRECT_CALL(2, "用户呼叫电梯经由某层到某层"),
+/**
+单元门开锁,同时呼叫电梯到单元门处
+*/
+ EM_CALLLIFT_ACTION_DIRECT_UNLOCK_CALL(3, "单元门开锁,同时呼叫电梯到单元门处");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_CALLLIFT_ACTION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_CALLLIFT_ACTION enumType : EM_CALLLIFT_ACTION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_CALLLIFT_ACTION enumType : EM_CALLLIFT_ACTION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_CALLLIFT_ACTION getEnum(int value) {
+ for (EM_CALLLIFT_ACTION e : EM_CALLLIFT_ACTION.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_CALLLIFT_ACTION.EM_CALLLIFT_ACTION_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CALLLIFT_CMD.java b/src/main/java/com/netsdk/lib/enumeration/EM_CALLLIFT_CMD.java
new file mode 100644
index 0000000..494cdd1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CALLLIFT_CMD.java
@@ -0,0 +1,77 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 呼叫电梯命令
+* @date 2022/10/19 14:01:07
+*/
+public enum EM_CALLLIFT_CMD {
+/**
+未知
+*/
+ EM_CALLLIFT_CMD_UNKNOWN(-1, "未知"),
+/**
+呼叫电梯到某个楼层,并开放其它任何楼层数
+*/
+ EM_CALLLIFT_CMD_ANY_FLOOR(0, "呼叫电梯到某个楼层,并开放其它任何楼层数"),
+/**
+呼叫电梯到某个楼层,用户进去后只能按目标楼层
+*/
+ EM_CALLLIFT_CMD_DEST_FLOOR(1, "呼叫电梯到某个楼层,用户进去后只能按目标楼层"),
+/**
+呼叫电梯到某个楼层后,还需要刷卡,电梯才能运行, 默认电梯上行
+*/
+ EM_CALLLIFT_CMD_CARD_UP(2, "呼叫电梯到某个楼层后,还需要刷卡,电梯才能运行, 默认电梯上行"),
+/**
+呼叫电梯到某个楼层,用户进去不用按钮,电梯会自动运行到目标楼层
+*/
+ EM_CALLLIFT_CMD_AUTO_FLOOR(3, "呼叫电梯到某个楼层,用户进去不用按钮,电梯会自动运行到目标楼层"),
+/**
+呼叫电梯到某个楼层后,还需要刷卡,电梯才能运行, 默认电梯下行
+*/
+ EM_CALLLIFT_CMD_CARD_DOWN(4, "呼叫电梯到某个楼层后,还需要刷卡,电梯才能运行, 默认电梯下行");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_CALLLIFT_CMD(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_CALLLIFT_CMD enumType : EM_CALLLIFT_CMD.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_CALLLIFT_CMD enumType : EM_CALLLIFT_CMD.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_CALLLIFT_CMD getEnum(int value) {
+ for (EM_CALLLIFT_CMD e : EM_CALLLIFT_CMD.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_CALLLIFT_CMD.EM_CALLLIFT_CMD_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CALL_ACTION_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CALL_ACTION_TYPE.java
new file mode 100644
index 0000000..10e96b7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CALL_ACTION_TYPE.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 打电话的动作类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_CALL_ACTION_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_CALL_ACTION_TYPE_UNKNOWN = 0;
+ /**
+ * 贴耳
+ */
+ public static final int EM_CALL_ACTION_TYPE_CALL_BY_EAR = 1;
+ /**
+ * 手持
+ */
+ public static final int EM_CALL_ACTION_TYPE_CALL_HAND_HOLD = 2;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CAMERA_CONNECT_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CAMERA_CONNECT_STATE.java
new file mode 100644
index 0000000..6e47fb4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CAMERA_CONNECT_STATE.java
@@ -0,0 +1,51 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @version 1.0
+ * @description 相机连接状态
+ * @date 2020/11/09
+ */
+public enum EM_CAMERA_CONNECT_STATE {
+ // 未知
+ EM_CAMERA_CONNECT_STATE_UNKNOWN(-1, "未知"),
+ // 北向南
+ EM_CAMERA_CONNECT_STATE_UNCONNECT(0, "未连接"),
+ // 东北向西南
+ EM_CAMERA_CONNECT_STATE_CONNECTED(1, "已连接");
+
+ private int value;
+ private String note;
+
+ private EM_CAMERA_CONNECT_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CAMERA_CONNECT_STATE enumType : EM_CAMERA_CONNECT_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CAMERA_CONNECT_STATE enumType : EM_CAMERA_CONNECT_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CAMERA_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/EM_CAMERA_STATUS.java
new file mode 100644
index 0000000..471fce2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CAMERA_STATUS.java
@@ -0,0 +1,60 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 相机状态
+ * @date 2021/08/25
+ */
+public enum EM_CAMERA_STATUS {
+ // 未知
+ EM_CAMERA_UNKNOWN(0, "未知"),
+ // 红灯
+ EM_CAMERA_RED(1, "红灯"),
+ // 黄灯
+ EM_CAMERA_YELLOW(2, "黄灯"),
+ // 绿灯
+ EM_CAMERA_GREEN(3, "绿灯"),
+ // 红闪
+ EM_CAMERA_RED_FLASH(4, "红闪"),
+ // 黄闪
+ EM_CAMERA_YELLOW_FLASH(5, "黄闪"),
+ // 绿闪
+ EM_CAMERA_GREEN_FLASH(6, "绿闪"),
+ // 灭灯
+ EM_CAMERA_LIGHT_OFF(7, "灭灯");
+
+ private int value;
+ private String note;
+
+ private EM_CAMERA_STATUS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CAMERA_STATUS enumType : EM_CAMERA_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CAMERA_STATUS enumType : EM_CAMERA_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CAN_COMMUNICATE_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CAN_COMMUNICATE_STATE.java
new file mode 100644
index 0000000..e3bb71c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CAN_COMMUNICATE_STATE.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * Can通信状态
+*/
+public enum EM_CAN_COMMUNICATE_STATE
+{
+ /**
+ * 未知
+ */
+ EM_CAN_COMMUNICATE_STATE_UNKNOWN(-1, "未知"),
+ /**
+ * 正常
+ */
+ EM_CAN_COMMUNICATE_STATE_NORMAL(0, "正常"),
+ /**
+ * 异常
+ */
+ EM_CAN_COMMUNICATE_STATE_ABNORMAL(1, "异常");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CAN_COMMUNICATE_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CAN_COMMUNICATE_STATE enumType : EM_CAN_COMMUNICATE_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CAN_COMMUNICATE_STATE enumType : EM_CAN_COMMUNICATE_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CAN_START_STREAM.java b/src/main/java/com/netsdk/lib/enumeration/EM_CAN_START_STREAM.java
new file mode 100644
index 0000000..44af6b2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CAN_START_STREAM.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 拉流使能
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/17 15:53
+ */
+public enum EM_CAN_START_STREAM {
+ /**
+ * 未知
+ */
+ EM_CAN_START_STREAM_UNKNOWN(-1, "未知"),
+ /**
+ * 不拉流
+ */
+ EM_CAN_START_STREAM_OFF(0, "不拉流"),
+ /**
+ * 拉流
+ */
+ EM_CAN_START_STREAM_ON(1, "拉流");
+
+ private int value;
+ private String note;
+
+ EM_CAN_START_STREAM(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CAN_START_STREAM enumType : EM_CAN_START_STREAM.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CAN_START_STREAM enumType : EM_CAN_START_STREAM.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_CAN_START_STREAM getEnum(int value) {
+ for (EM_CAN_START_STREAM e : EM_CAN_START_STREAM.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_CAN_START_STREAM.EM_CAN_START_STREAM_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CAPTURE_PROCESS_END_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CAPTURE_PROCESS_END_TYPE.java
new file mode 100644
index 0000000..d1ad1fc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CAPTURE_PROCESS_END_TYPE.java
@@ -0,0 +1,51 @@
+package com.netsdk.lib.enumeration;
+
+public enum EM_CAPTURE_PROCESS_END_TYPE {
+ /**
+ * 未知
+ */
+ EM_CAPTURE_PROCESS_END_TYPE_UNKNOWN(-1, "未知"),
+ /**
+ * 异常
+ */
+ EM_CAPTURE_PROCESS_END_TYPE_ABNORMAL(0, "异常"),
+ /**
+ * 正常
+ */
+ EM_CAPTURE_PROCESS_END_TYPE_NORMAL(1, "正常");
+
+ private int value;
+ private String note;
+
+ private EM_CAPTURE_PROCESS_END_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CAPTURE_PROCESS_END_TYPE enumType : EM_CAPTURE_PROCESS_END_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CAPTURE_PROCESS_END_TYPE enumType : EM_CAPTURE_PROCESS_END_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote()) ) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CAPTURE_SIZE_EX.java b/src/main/java/com/netsdk/lib/enumeration/EM_CAPTURE_SIZE_EX.java
new file mode 100644
index 0000000..16934da
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CAPTURE_SIZE_EX.java
@@ -0,0 +1,296 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 分辨率枚举,细分到具体分辨率
+*/
+public enum EM_CAPTURE_SIZE_EX
+{
+ /**
+ * D1 704*576(PAL) 704*480(NTSC),兼容WWxHH,下同
+ */
+ EM_CAPTURE_SIZE_EX_D1(0, "D1 704*576(PAL) 704*480(NTSC),兼容WWxHH,下同"),
+ /**
+ * 704*576(PAL)
+ */
+ EM_CAPTURE_SIZE_EX_D1_PAL(1, "704*576(PAL)"),
+ /**
+ * 704*480(NTSC)
+ */
+ EM_CAPTURE_SIZE_EX_D1_NTSC(2, "704*480(NTSC)"),
+ /**
+ * HD1 352*576(PAL) 352*480(NTSC)
+ */
+ EM_CAPTURE_SIZE_EX_HD1(3, "HD1 352*576(PAL) 352*480(NTSC)"),
+ /**
+ * 352*576(PAL)
+ */
+ EM_CAPTURE_SIZE_EX_HD1_PAL(4, "352*576(PAL)"),
+ /**
+ * 352*480(NTSC)
+ */
+ EM_CAPTURE_SIZE_EX_HD1_NTSC(5, "352*480(NTSC)"),
+ /**
+ * BCIF 704*288(PAL) 704*240(NTSC)
+ */
+ EM_CAPTURE_SIZE_EX_BCIF(6, "BCIF 704*288(PAL) 704*240(NTSC)"),
+ /**
+ * 704*288(PAL)
+ */
+ EM_CAPTURE_SIZE_EX_BCIF_PAL(7, "704*288(PAL)"),
+ /**
+ * 704*240(NTSC)
+ */
+ EM_CAPTURE_SIZE_EX_BCIF_NTSC(8, "704*240(NTSC)"),
+ /**
+ * CIF 352*288(PAL) 352*240(NTSC)
+ */
+ EM_CAPTURE_SIZE_EX_CIF(9, "CIF 352*288(PAL) 352*240(NTSC)"),
+ /**
+ * 352*288(PAL)
+ */
+ EM_CAPTURE_SIZE_EX_CIF_PAL(10, "352*288(PAL)"),
+ /**
+ * 352*240(NTSC)
+ */
+ EM_CAPTURE_SIZE_EX_CIF_NTSC(11, "352*240(NTSC)"),
+ /**
+ * QCIF 176*144(PAL) 176*120(NTSC)
+ */
+ EM_CAPTURE_SIZE_EX_QCIF(12, "QCIF 176*144(PAL) 176*120(NTSC)"),
+ /**
+ * 176*144(PAL)
+ */
+ EM_CAPTURE_SIZE_EX_QCIF_PAL(13, "176*144(PAL)"),
+ /**
+ * 176*120(NTSC)
+ */
+ EM_CAPTURE_SIZE_EX_QCIF_NTSC(14, "176*120(NTSC)"),
+ /**
+ * 640*480
+ */
+ EM_CAPTURE_SIZE_EX_VGA(15, "640*480"),
+ /**
+ * 320*240
+ */
+ EM_CAPTURE_SIZE_EX_QVGA(16, "320*240"),
+ /**
+ * 480*480
+ */
+ EM_CAPTURE_SIZE_EX_SVCD(17, "480*480"),
+ /**
+ * 160*128
+ */
+ EM_CAPTURE_SIZE_EX_QQVGA(18, "160*128"),
+ /**
+ * 800*592
+ */
+ EM_CAPTURE_SIZE_EX_SVGA(19, "800*592"),
+ /**
+ * 1024*768
+ */
+ EM_CAPTURE_SIZE_EX_XVGA(20, "1024*768"),
+ /**
+ * 1280*800
+ */
+ EM_CAPTURE_SIZE_EX_WXGA(21, "1280*800"),
+ /**
+ * 1280*1024
+ */
+ EM_CAPTURE_SIZE_EX_SXGA(22, "1280*1024"),
+ /**
+ * 1600*1024
+ */
+ EM_CAPTURE_SIZE_EX_WSXGA(23, "1600*1024"),
+ /**
+ * 1600*1200
+ */
+ EM_CAPTURE_SIZE_EX_UXGA(24, "1600*1200"),
+ /**
+ * 1920*1200
+ */
+ EM_CAPTURE_SIZE_EX_WUXGA(25, "1920*1200"),
+ /**
+ * 240*192,ND1
+ */
+ EM_CAPTURE_SIZE_EX_LTF(26, "240*192,ND1"),
+ /**
+ * 1280*720
+ */
+ EM_CAPTURE_SIZE_EX_720(27, "1280*720"),
+ /**
+ * 1920*1080
+ */
+ EM_CAPTURE_SIZE_EX_1080(28, "1920*1080"),
+ /**
+ * 1280*960
+ */
+ EM_CAPTURE_SIZE_EX_1_3M(29, "1280*960"),
+ /**
+ * 1872*1408,2_5M
+ */
+ EM_CAPTURE_SIZE_EX_2M(30, "1872*1408,2_5M"),
+ /**
+ * 3744*1408
+ */
+ EM_CAPTURE_SIZE_EX_5M(31, "3744*1408"),
+ /**
+ * 2048*1536
+ */
+ EM_CAPTURE_SIZE_EX_3M(32, "2048*1536"),
+ /**
+ * 2432*2050
+ */
+ EM_CAPTURE_SIZE_EX_5_0M(33, "2432*2050"),
+ /**
+ * 1216*1024
+ */
+ EM_CAPTURE_SIZE_EX_1_2M(34, "1216*1024"),
+ /**
+ * 1408*1024
+ */
+ EM_CAPTURE_SIZE_EX_1408_1024(35, "1408*1024"),
+ /**
+ * 3296*2472
+ */
+ EM_CAPTURE_SIZE_EX_8M(36, "3296*2472"),
+ /**
+ * 2560*1920(5_1M)
+ */
+ EM_CAPTURE_SIZE_EX_2560_1920(37, "2560*1920(5_1M)"),
+ /**
+ * 960H 960*576(PAL) 960*480(NTSC)
+ */
+ EM_CAPTURE_SIZE_EX_960H(38, "960H 960*576(PAL) 960*480(NTSC)"),
+ /**
+ * 960*576(PAL)
+ */
+ EM_CAPTURE_SIZE_EX_960H_PAL(39, "960*576(PAL)"),
+ /**
+ * 960*480(NTSC)
+ */
+ EM_CAPTURE_SIZE_EX_960H_NTSC(40, "960*480(NTSC)"),
+ /**
+ * 960*720
+ */
+ EM_CAPTURE_SIZE_EX_960_720(41, "960*720"),
+ /**
+ * 640*360
+ */
+ EM_CAPTURE_SIZE_EX_NHD(42, "640*360"),
+ /**
+ * 320*180
+ */
+ EM_CAPTURE_SIZE_EX_QNHD(43, "320*180"),
+ /**
+ * 160*90
+ */
+ EM_CAPTURE_SIZE_EX_QQNHD(44, "160*90"),
+ /**
+ * 960*540
+ */
+ EM_CAPTURE_SIZE_EX_960_540(45, "960*540"),
+ /**
+ * 640*352
+ */
+ EM_CAPTURE_SIZE_EX_640_352(46, "640*352"),
+ /**
+ * 640*400
+ */
+ EM_CAPTURE_SIZE_EX_640_400(47, "640*400"),
+ /**
+ * 320*192
+ */
+ EM_CAPTURE_SIZE_EX_320_192(48, "320*192"),
+ /**
+ * 320*176
+ */
+ EM_CAPTURE_SIZE_EX_320_176(49, "320*176"),
+ /**
+ * 800*600
+ */
+ EM_CAPTURE_SIZE_EX_SVGA1(50, "800*600"),
+ /**
+ * 2560*1440
+ */
+ EM_CAPTURE_SIZE_EX_2560_1440(51, "2560*1440"),
+ /**
+ * 2304*1296
+ */
+ EM_CAPTURE_SIZE_EX_2304_1296(52, "2304*1296"),
+ /**
+ * 2592*1520
+ */
+ EM_CAPTURE_SIZE_EX_2592_1520(53, "2592*1520"),
+ /**
+ * 4000*3000
+ */
+ EM_CAPTURE_SIZE_EX_4000_3000(54, "4000*3000"),
+ /**
+ * 2880*2880
+ */
+ EM_CAPTURE_SIZE_EX_2880_2880(55, "2880*2880"),
+ /**
+ * 2880*2160
+ */
+ EM_CAPTURE_SIZE_EX_2880_2160(56, "2880*2160"),
+ /**
+ * 2688*1520
+ */
+ EM_CAPTURE_SIZE_EX_2688_1520(57, "2688*1520"),
+ /**
+ * 2592*1944
+ */
+ EM_CAPTURE_SIZE_EX_2592_1944(58, "2592*1944"),
+ /**
+ * 3072*1728
+ */
+ EM_CAPTURE_SIZE_EX_3072_1728(59, "3072*1728"),
+ /**
+ * 3072*2048
+ */
+ EM_CAPTURE_SIZE_EX_3072_2048(60, "3072*2048"),
+ /**
+ * 3840*2160
+ */
+ EM_CAPTURE_SIZE_EX_3840_2160(61, "3840*2160"),
+ EM_CAPTURE_SIZE_EX_NR(255, ""),
+ /**
+ * 未知
+ */
+ EM_CAPTURE_SIZE_EX_UNKNOWN(-1, "未知");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CAPTURE_SIZE_EX(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CAPTURE_SIZE_EX enumType : EM_CAPTURE_SIZE_EX.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CAPTURE_SIZE_EX enumType : EM_CAPTURE_SIZE_EX.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CAPTURE_SIZE_EX1.java b/src/main/java/com/netsdk/lib/enumeration/EM_CAPTURE_SIZE_EX1.java
new file mode 100644
index 0000000..ec6f79d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CAPTURE_SIZE_EX1.java
@@ -0,0 +1,296 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 分辨率枚举,细分到具体分辨率
+*/
+public enum EM_CAPTURE_SIZE_EX1
+{
+ /**
+ * 未知
+ */
+ EM_CAPTURE_SIZE_EX1_UNKNOWN(-1, "未知"),
+ /**
+ * D1 704*576(PAL) 704*480(NTSC),兼容WWxHH,下同
+ */
+ EM_CAPTURE_SIZE_EX1_D1(0, "D1 704*576(PAL) 704*480(NTSC),兼容WWxHH,下同"),
+ /**
+ * 704*576(PAL)
+ */
+ EM_CAPTURE_SIZE_EX1_D1_PAL(1, "704*576(PAL)"),
+ /**
+ * 704*480(NTSC)
+ */
+ EM_CAPTURE_SIZE_EX1_D1_NTSC(2, "704*480(NTSC)"),
+ /**
+ * HD1 352*576(PAL) 352*480(NTSC)
+ */
+ EM_CAPTURE_SIZE_EX1_HD1(3, "HD1 352*576(PAL) 352*480(NTSC)"),
+ /**
+ * 352*576(PAL)
+ */
+ EM_CAPTURE_SIZE_EX1_HD1_PAL(4, "352*576(PAL)"),
+ /**
+ * 352*480(NTSC)
+ */
+ EM_CAPTURE_SIZE_EX1_HD1_NTSC(5, "352*480(NTSC)"),
+ /**
+ * BCIF 704*288(PAL) 704*240(NTSC)
+ */
+ EM_CAPTURE_SIZE_EX1_BCIF(6, "BCIF 704*288(PAL) 704*240(NTSC)"),
+ /**
+ * 704*288(PAL)
+ */
+ EM_CAPTURE_SIZE_EX1_BCIF_PAL(7, "704*288(PAL)"),
+ /**
+ * 704*240(NTSC)
+ */
+ EM_CAPTURE_SIZE_EX1_BCIF_NTSC(8, "704*240(NTSC)"),
+ /**
+ * CIF 352*288(PAL) 352*240(NTSC)
+ */
+ EM_CAPTURE_SIZE_EX1_CIF(9, "CIF 352*288(PAL) 352*240(NTSC)"),
+ /**
+ * 352*288(PAL)
+ */
+ EM_CAPTURE_SIZE_EX1_CIF_PAL(10, "352*288(PAL)"),
+ /**
+ * 352*240(NTSC)
+ */
+ EM_CAPTURE_SIZE_EX1_CIF_NTSC(11, "352*240(NTSC)"),
+ /**
+ * QCIF 176*144(PAL) 176*120(NTSC)
+ */
+ EM_CAPTURE_SIZE_EX1_QCIF(12, "QCIF 176*144(PAL) 176*120(NTSC)"),
+ /**
+ * 176*144(PAL)
+ */
+ EM_CAPTURE_SIZE_EX1_QCIF_PAL(13, "176*144(PAL)"),
+ /**
+ * 176*120(NTSC)
+ */
+ EM_CAPTURE_SIZE_EX1_QCIF_NTSC(14, "176*120(NTSC)"),
+ /**
+ * 640*480
+ */
+ EM_CAPTURE_SIZE_EX1_VGA(15, "640*480"),
+ /**
+ * 320*240
+ */
+ EM_CAPTURE_SIZE_EX1_QVGA(16, "320*240"),
+ /**
+ * 480*480
+ */
+ EM_CAPTURE_SIZE_EX1_SVCD(17, "480*480"),
+ /**
+ * 160*128
+ */
+ EM_CAPTURE_SIZE_EX1_QQVGA(18, "160*128"),
+ /**
+ * 800*592
+ */
+ EM_CAPTURE_SIZE_EX1_SVGA(19, "800*592"),
+ /**
+ * 1024*768
+ */
+ EM_CAPTURE_SIZE_EX1_XVGA(20, "1024*768"),
+ /**
+ * 1280*800
+ */
+ EM_CAPTURE_SIZE_EX1_WXGA(21, "1280*800"),
+ /**
+ * 1280*1024
+ */
+ EM_CAPTURE_SIZE_EX1_SXGA(22, "1280*1024"),
+ /**
+ * 1600*1024
+ */
+ EM_CAPTURE_SIZE_EX1_WSXGA(23, "1600*1024"),
+ /**
+ * 1600*1200
+ */
+ EM_CAPTURE_SIZE_EX1_UXGA(24, "1600*1200"),
+ /**
+ * 1920*1200
+ */
+ EM_CAPTURE_SIZE_EX1_WUXGA(25, "1920*1200"),
+ /**
+ * 240*192,ND1
+ */
+ EM_CAPTURE_SIZE_EX1_LTF(26, "240*192,ND1"),
+ /**
+ * 1280*720
+ */
+ EM_CAPTURE_SIZE_EX1_720(27, "1280*720"),
+ /**
+ * 1920*1080
+ */
+ EM_CAPTURE_SIZE_EX1_1080(28, "1920*1080"),
+ /**
+ * 1280*960
+ */
+ EM_CAPTURE_SIZE_EX1_1_3M(29, "1280*960"),
+ /**
+ * 1872*1408,2_5M
+ */
+ EM_CAPTURE_SIZE_EX1_2M(30, "1872*1408,2_5M"),
+ /**
+ * 3744*1408
+ */
+ EM_CAPTURE_SIZE_EX1_5M(31, "3744*1408"),
+ /**
+ * 2048*1536
+ */
+ EM_CAPTURE_SIZE_EX1_3M(32, "2048*1536"),
+ /**
+ * 2432*2050
+ */
+ EM_CAPTURE_SIZE_EX1_5_0M(33, "2432*2050"),
+ /**
+ * 1216*1024
+ */
+ EM_CAPTURE_SIZE_EX1_1_2M(34, "1216*1024"),
+ /**
+ * 1408*1024
+ */
+ EM_CAPTURE_SIZE_EX1_1408_1024(35, "1408*1024"),
+ /**
+ * 3296*2472
+ */
+ EM_CAPTURE_SIZE_EX1_8M(36, "3296*2472"),
+ /**
+ * 2560*1920(5_1M)
+ */
+ EM_CAPTURE_SIZE_EX1_2560_1920(37, "2560*1920(5_1M)"),
+ /**
+ * 960H 960*576(PAL) 960*480(NTSC)
+ */
+ EM_CAPTURE_SIZE_EX1_960H(38, "960H 960*576(PAL) 960*480(NTSC)"),
+ /**
+ * 960*576(PAL)
+ */
+ EM_CAPTURE_SIZE_EX1_960H_PAL(39, "960*576(PAL)"),
+ /**
+ * 960*480(NTSC)
+ */
+ EM_CAPTURE_SIZE_EX1_960H_NTSC(40, "960*480(NTSC)"),
+ /**
+ * 960*720
+ */
+ EM_CAPTURE_SIZE_EX1_960_720(41, "960*720"),
+ /**
+ * 640*360
+ */
+ EM_CAPTURE_SIZE_EX1_NHD(42, "640*360"),
+ /**
+ * 320*180
+ */
+ EM_CAPTURE_SIZE_EX1_QNHD(43, "320*180"),
+ /**
+ * 160*90
+ */
+ EM_CAPTURE_SIZE_EX1_QQNHD(44, "160*90"),
+ /**
+ * 960*540
+ */
+ EM_CAPTURE_SIZE_EX1_960_540(45, "960*540"),
+ /**
+ * 640*352
+ */
+ EM_CAPTURE_SIZE_EX1_640_352(46, "640*352"),
+ /**
+ * 640*400
+ */
+ EM_CAPTURE_SIZE_EX1_640_400(47, "640*400"),
+ /**
+ * 320*192
+ */
+ EM_CAPTURE_SIZE_EX1_320_192(48, "320*192"),
+ /**
+ * 320*176
+ */
+ EM_CAPTURE_SIZE_EX1_320_176(49, "320*176"),
+ /**
+ * 800*600
+ */
+ EM_CAPTURE_SIZE_EX1_SVGA1(50, "800*600"),
+ /**
+ * 2560*1440
+ */
+ EM_CAPTURE_SIZE_EX1_2560_1440(51, "2560*1440"),
+ /**
+ * 2304*1296
+ */
+ EM_CAPTURE_SIZE_EX1_2304_1296(52, "2304*1296"),
+ /**
+ * 2592*1520
+ */
+ EM_CAPTURE_SIZE_EX1_2592_1520(53, "2592*1520"),
+ /**
+ * 4000*3000
+ */
+ EM_CAPTURE_SIZE_EX1_4000_3000(54, "4000*3000"),
+ /**
+ * 2880*2880
+ */
+ EM_CAPTURE_SIZE_EX1_2880_2880(55, "2880*2880"),
+ /**
+ * 2880*2160
+ */
+ EM_CAPTURE_SIZE_EX1_2880_2160(56, "2880*2160"),
+ /**
+ * 2688*1520
+ */
+ EM_CAPTURE_SIZE_EX1_2688_1520(57, "2688*1520"),
+ /**
+ * 2592*1944
+ */
+ EM_CAPTURE_SIZE_EX1_2592_1944(58, "2592*1944"),
+ /**
+ * 3072*1728
+ */
+ EM_CAPTURE_SIZE_EX1_3072_1728(59, "3072*1728"),
+ /**
+ * 3072*2048
+ */
+ EM_CAPTURE_SIZE_EX1_3072_2048(60, "3072*2048"),
+ /**
+ * 3840*2160
+ */
+ EM_CAPTURE_SIZE_EX1_3840_2160(61, "3840*2160"),
+ EM_CAPTURE_SIZE_EX1_NR(255, "");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CAPTURE_SIZE_EX1(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CAPTURE_SIZE_EX1 enumType : EM_CAPTURE_SIZE_EX1.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CAPTURE_SIZE_EX1 enumType : EM_CAPTURE_SIZE_EX1.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CAP_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CAP_TYPE.java
new file mode 100644
index 0000000..dae86a6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CAP_TYPE.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 帽子类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_CAP_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_CAP_UNKNOWN = 0;
+ /**
+ * 普通帽子
+ */
+ public static final int EM_CAP_ORDINARY = 1;
+ /**
+ * 头盔
+ */
+ public static final int EM_CAP_HELMET = 2;
+ /**
+ * 安全帽
+ */
+ public static final int EM_CAP_SAFE = 3;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CARD_PROVINCE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CARD_PROVINCE.java
new file mode 100644
index 0000000..03eb32f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CARD_PROVINCE.java
@@ -0,0 +1,154 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 卡号省份
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_CARD_PROVINCE extends NetSDKLib.SdkStructure {
+ /**
+ * 解析出错,未知省份
+ */
+ public static final int EM_CARD_UNKNOWN = 10;
+ /**
+ * 北京
+ */
+ public static final int EM_CARD_BEIJING = 11;
+ /**
+ * 天津
+ */
+ public static final int EM_CARD_TIANJIN = 12;
+ /**
+ * 河北
+ */
+ public static final int EM_CARD_HEBEI = 13;
+ /**
+ * 山西
+ */
+ public static final int EM_CARD_SHANXI_TAIYUAN = 14;
+ /**
+ * 内蒙古
+ */
+ public static final int EM_CARD_NEIMENGGU = 15;
+ /**
+ * 辽宁
+ */
+ public static final int EM_CARD_LIAONING = 21;
+ /**
+ * 吉林
+ */
+ public static final int EM_CARD_JILIN = 22;
+ /**
+ * 黑龙江
+ */
+ public static final int EM_CARD_HEILONGJIANG = 23;
+ /**
+ * 上海
+ */
+ public static final int EM_CARD_SHANGHAI = 31;
+ /**
+ * 江苏
+ */
+ public static final int EM_CARD_JIANGSU = 32;
+ /**
+ * 浙江
+ */
+ public static final int EM_CARD_ZHEJIANG = 33;
+ /**
+ * 安徽
+ */
+ public static final int EM_CARD_ANHUI = 34;
+ /**
+ * 福建
+ */
+ public static final int EM_CARD_FUJIAN = 35;
+ /**
+ * 江西
+ */
+ public static final int EM_CARD_JIANGXI = 36;
+ /**
+ * 山东
+ */
+ public static final int EM_CARD_SHANDONG = 37;
+ /**
+ * 河南
+ */
+ public static final int EM_CARD_HENAN = 41;
+ /**
+ * 湖北
+ */
+ public static final int EM_CARD_HUBEI = 42;
+ /**
+ * 湖南
+ */
+ public static final int EM_CARD_HUNAN = 43;
+ /**
+ * 广东
+ */
+ public static final int EM_CARD_GUANGDONG = 44;
+ /**
+ * 广西
+ */
+ public static final int EM_CARD_GUANGXI = 45;
+ /**
+ * 海南
+ */
+ public static final int EM_CARD_HAINAN = 46;
+ /**
+ * 重庆
+ */
+ public static final int EM_CARD_CHONGQING = 50;
+ /**
+ * 四川
+ */
+ public static final int EM_CARD_SICHUAN = 51;
+ /**
+ * 贵州
+ */
+ public static final int EM_CARD_GUIZHOU = 52;
+ /**
+ * 云南
+ */
+ public static final int EM_CARD_YUNNAN = 53;
+ /**
+ * 西藏
+ */
+ public static final int EM_CARD_XIZANG = 54;
+ /**
+ * 陕西
+ */
+ public static final int EM_CARD_SHANXI_XIAN = 61;
+ /**
+ * 甘肃
+ */
+ public static final int EM_CARD_GANSU = 62;
+ /**
+ * 青海
+ */
+ public static final int EM_CARD_QINGHAI = 63;
+ /**
+ * 宁夏
+ */
+ public static final int EM_CARD_NINGXIA = 64;
+ /**
+ * 新疆
+ */
+ public static final int EM_CARD_XINJIANG = 65;
+ /**
+ * 香港
+ */
+ public static final int EM_CARD_XIANGGANG = 71;
+ /**
+ * 澳门
+ */
+ public static final int EM_CARD_AOMEN = 82;
+ /**
+ * 台湾
+ */
+ public static final int EM_CARD_TAIWAN = 83;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CAR_COLOR_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CAR_COLOR_TYPE.java
new file mode 100644
index 0000000..d8eb588
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CAR_COLOR_TYPE.java
@@ -0,0 +1,166 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 车身颜色
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_CAR_COLOR_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 白色
+ */
+ public static final int EM_CAR_COLOR_WHITE = 0;
+ /**
+ * 黑色
+ */
+ public static final int EM_CAR_COLOR_BLACK = 1;
+ /**
+ * 红色
+ */
+ public static final int EM_CAR_COLOR_RED = 2;
+ /**
+ * 黄色
+ */
+ public static final int EM_CAR_COLOR_YELLOW = 3;
+ /**
+ * 灰色
+ */
+ public static final int EM_CAR_COLOR_GRAY = 4;
+ /**
+ * 蓝色
+ */
+ public static final int EM_CAR_COLOR_BLUE = 5;
+ /**
+ * 绿色
+ */
+ public static final int EM_CAR_COLOR_GREEN = 6;
+ /**
+ * 粉色
+ */
+ public static final int EM_CAR_COLOR_PINK = 7;
+ /**
+ * 紫色
+ */
+ public static final int EM_CAR_COLOR_PURPLE = 8;
+ /**
+ * 暗紫色
+ */
+ public static final int EM_CAR_COLOR_DARK_PURPLE = 9;
+ /**
+ * 棕色
+ */
+ public static final int EM_CAR_COLOR_BROWN = 10;
+ /**
+ * 粟色
+ */
+ public static final int EM_CAR_COLOR_MAROON = 11;
+ /**
+ * 银灰色
+ */
+ public static final int EM_CAR_COLOR_SILVER_GRAY = 12;
+ /**
+ * 暗灰色
+ */
+ public static final int EM_CAR_COLOR_DARK_GRAY = 13;
+ /**
+ * 白烟色
+ */
+ public static final int EM_CAR_COLOR_WHITE_SMOKE = 14;
+ /**
+ * 深橙色
+ */
+ public static final int EM_CAR_COLOR_DEEP_ORANGE = 15;
+ /**
+ * 浅玫瑰色
+ */
+ public static final int EM_CAR_COLOR_LIGHT_ROSE = 16;
+ /**
+ * 番茄红色
+ */
+ public static final int EM_CAR_COLOR_TOMATO_RED = 17;
+ /**
+ * 橄榄色
+ */
+ public static final int EM_CAR_COLOR_OLIVE = 18;
+ /**
+ * 金色
+ */
+ public static final int EM_CAR_COLOR_GOLDEN = 19;
+ /**
+ * 暗橄榄色
+ */
+ public static final int EM_CAR_COLOR_DARK_OLIVE = 20;
+ /**
+ * 黄绿色
+ */
+ public static final int EM_CAR_COLOR_YELLOW_GREEN = 21;
+ /**
+ * 绿黄色
+ */
+ public static final int EM_CAR_COLOR_GREEN_YELLOW = 22;
+ /**
+ * 森林绿
+ */
+ public static final int EM_CAR_COLOR_FOREST_GREEN = 23;
+ /**
+ * 海洋绿
+ */
+ public static final int EM_CAR_COLOR_OCEAN_BLUE = 24;
+ /**
+ * 深天蓝
+ */
+ public static final int EM_CAR_COLOR_DEEP_SKYBLUE = 25;
+ /**
+ * 青色
+ */
+ public static final int EM_CAR_COLOR_CYAN = 26;
+ /**
+ * 深蓝色
+ */
+ public static final int EM_CAR_COLOR_DEEP_BLUE = 27;
+ /**
+ * 深红色
+ */
+ public static final int EM_CAR_COLOR_DEEP_RED = 28;
+ /**
+ * 深绿色
+ */
+ public static final int EM_CAR_COLOR_DEEP_GREEN = 29;
+ /**
+ * 深黄色
+ */
+ public static final int EM_CAR_COLOR_DEEP_YELLOW = 30;
+ /**
+ * 深粉色
+ */
+ public static final int EM_CAR_COLOR_DEEP_PINK = 31;
+ /**
+ * 深紫色
+ */
+ public static final int EM_CAR_COLOR_DEEP_PURPLE = 32;
+ /**
+ * 深棕色
+ */
+ public static final int EM_CAR_COLOR_DEEP_BROWN = 33;
+ /**
+ * 深青色
+ */
+ public static final int EM_CAR_COLOR_DEEP_CYAN = 34;
+ /**
+ * 橙色
+ */
+ public static final int EM_CAR_COLOR_ORANGE = 35;
+ /**
+ * 深金色
+ */
+ public static final int EM_CAR_COLOR_DEEP_GOLDEN = 36;
+ /**
+ * 未识别、其他
+ */
+ public static final int EM_CAR_COLOR_OTHER = 255;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CAR_DOOR_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CAR_DOOR_STATE.java
new file mode 100644
index 0000000..b3847be
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CAR_DOOR_STATE.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 车门状态
+*/
+public enum EM_CAR_DOOR_STATE
+{
+ /**
+ * 未知
+ */
+ EM_CAR_DOOR_STATE_UNKNOWN(0, "未知"),
+ /**
+ * 开启
+ */
+ EM_CAR_DOOR_STATE_OPEN(1, "开启"),
+ /**
+ * 关闭
+ */
+ EM_CAR_DOOR_STATE_CLOSE(2, "关闭");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CAR_DOOR_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CAR_DOOR_STATE enumType : EM_CAR_DOOR_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CAR_DOOR_STATE enumType : EM_CAR_DOOR_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CAR_DRIVING_DIRECTION.java b/src/main/java/com/netsdk/lib/enumeration/EM_CAR_DRIVING_DIRECTION.java
new file mode 100644
index 0000000..f111d37
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CAR_DRIVING_DIRECTION.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 规则区内车辆行驶方向
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_CAR_DRIVING_DIRECTION extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_CAR_DRIVING_DIRECTION_UNKNOWN = 0;
+ /**
+ * 驶入区域
+ */
+ public static final int EM_CAR_DRIVING_DIRECTION_DRIVE_IN_AREA = 1;
+ /**
+ * 驶出区域
+ */
+ public static final int EM_CAR_DRIVING_DIRECTION_EXIT_AREA = 2;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CAR_PASSING_MOVE_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CAR_PASSING_MOVE_STATE.java
new file mode 100644
index 0000000..8af4fbe
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CAR_PASSING_MOVE_STATE.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 物体进入还是离开
+*/
+public enum EM_CAR_PASSING_MOVE_STATE
+{
+ /**
+ * 未知
+ */
+ EM_CAR_PASSING_MOVE_STATE_UNKNOWN(0, "未知"),
+ /**
+ * 进入
+ */
+ EM_CAR_PASSING_MOVE_STATE_ENTER(1, "进入"),
+ /**
+ * 离开
+ */
+ EM_CAR_PASSING_MOVE_STATE_LEAVE(2, "离开");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CAR_PASSING_MOVE_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CAR_PASSING_MOVE_STATE enumType : EM_CAR_PASSING_MOVE_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CAR_PASSING_MOVE_STATE enumType : EM_CAR_PASSING_MOVE_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CAR_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CAR_TYPE.java
new file mode 100644
index 0000000..f75f903
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CAR_TYPE.java
@@ -0,0 +1,938 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 车辆类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_CAR_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 其他车辆
+ */
+ public static final int EM_CAR_0 = 0;
+ /**
+ * 大型普通客车
+ */
+ public static final int EM_CAR_1 = 1;
+ /**
+ * 大型双层客车
+ */
+ public static final int EM_CAR_2 = 2;
+ /**
+ * 大型卧铺客车
+ */
+ public static final int EM_CAR_3 = 3;
+ /**
+ * 大型铰接客车
+ */
+ public static final int EM_CAR_4 = 4;
+ /**
+ * 大型越野客车
+ */
+ public static final int EM_CAR_5 = 5;
+ /**
+ * 大型轿车
+ */
+ public static final int EM_CAR_6 = 6;
+ /**
+ * 大型专用客车
+ */
+ public static final int EM_CAR_7 = 7;
+ /**
+ * 大型专用校车
+ */
+ public static final int EM_CAR_8 = 8;
+ /**
+ * 中型普通客车
+ */
+ public static final int EM_CAR_9 = 9;
+ /**
+ * 中型双层客车
+ */
+ public static final int EM_CAR_10 = 10;
+ /**
+ * 中型卧铺客车
+ */
+ public static final int EM_CAR_11 = 11;
+ /**
+ * 中型铰接客车
+ */
+ public static final int EM_CAR_12 = 12;
+ /**
+ * 中型越野客车
+ */
+ public static final int EM_CAR_13 = 13;
+ /**
+ * 中型轿车
+ */
+ public static final int EM_CAR_14 = 14;
+ /**
+ * 中型专用客车
+ */
+ public static final int EM_CAR_15 = 15;
+ /**
+ * 中型专用校车
+ */
+ public static final int EM_CAR_16 = 16;
+ /**
+ * 小型普通客车
+ */
+ public static final int EM_CAR_17 = 17;
+ /**
+ * 小型越野客车
+ */
+ public static final int EM_CAR_18 = 18;
+ /**
+ * 小型轿车
+ */
+ public static final int EM_CAR_19 = 19;
+ /**
+ * 小型专用客车
+ */
+ public static final int EM_CAR_20 = 20;
+ /**
+ * 小型专用校车
+ */
+ public static final int EM_CAR_21 = 21;
+ /**
+ * 小型面包车
+ */
+ public static final int EM_CAR_22 = 22;
+ /**
+ * 微型普通客车
+ */
+ public static final int EM_CAR_23 = 23;
+ /**
+ * 微型越野客车
+ */
+ public static final int EM_CAR_24 = 24;
+ /**
+ * 微型轿车
+ */
+ public static final int EM_CAR_25 = 25;
+ /**
+ * 微型面包车
+ */
+ public static final int EM_CAR_26 = 26;
+ /**
+ * 重型半挂牵引车
+ */
+ public static final int EM_CAR_27 = 27;
+ /**
+ * 重型全挂牵引车
+ */
+ public static final int EM_CAR_28 = 28;
+ /**
+ * 中型半挂牵引车
+ */
+ public static final int EM_CAR_29 = 29;
+ /**
+ * 中型全挂牵引车
+ */
+ public static final int EM_CAR_30 = 30;
+ /**
+ * 轻型半挂牵引车
+ */
+ public static final int EM_CAR_31 = 31;
+ /**
+ * 轻型全挂牵引车
+ */
+ public static final int EM_CAR_32 = 32;
+ /**
+ * 大型非载货专项作业车
+ */
+ public static final int EM_CAR_33 = 33;
+ /**
+ * 大型载货专项作业车
+ */
+ public static final int EM_CAR_34 = 34;
+ /**
+ * 中型非载货专项作业车
+ */
+ public static final int EM_CAR_35 = 35;
+ /**
+ * 中型载货专项作业车
+ */
+ public static final int EM_CAR_36 = 36;
+ /**
+ * 小型非载货专项作业车
+ */
+ public static final int EM_CAR_37 = 37;
+ /**
+ * 小型载货专项作业车
+ */
+ public static final int EM_CAR_38 = 38;
+ /**
+ * 微型非载货专项作业车
+ */
+ public static final int EM_CAR_39 = 39;
+ /**
+ * 微型载货专项作业车
+ */
+ public static final int EM_CAR_40 = 40;
+ /**
+ * 重型非载货专项作业车
+ */
+ public static final int EM_CAR_41 = 41;
+ /**
+ * 重型载货专项作业车
+ */
+ public static final int EM_CAR_42 = 42;
+ /**
+ * 轻型非载货专项作业车
+ */
+ public static final int EM_CAR_43 = 43;
+ /**
+ * 轻型载货专项作业车
+ */
+ public static final int EM_CAR_44 = 44;
+ /**
+ * 普通正三轮摩托车
+ */
+ public static final int EM_CAR_45 = 45;
+ /**
+ * 轻便正三轮摩托车
+ */
+ public static final int EM_CAR_46 = 46;
+ /**
+ * 正三轮载客摩托车
+ */
+ public static final int EM_CAR_47 = 47;
+ /**
+ * 正三轮载货摩托车
+ */
+ public static final int EM_CAR_48 = 48;
+ /**
+ * 侧三轮摩托车
+ */
+ public static final int EM_CAR_49 = 49;
+ /**
+ * 普通二轮摩托车
+ */
+ public static final int EM_CAR_50 = 50;
+ /**
+ * 轻便二轮摩托车
+ */
+ public static final int EM_CAR_51 = 51;
+ /**
+ * 无轨电车
+ */
+ public static final int EM_CAR_52 = 52;
+ /**
+ * 有轨电车
+ */
+ public static final int EM_CAR_53 = 53;
+ /**
+ * 三轮汽车
+ */
+ public static final int EM_CAR_54 = 54;
+ /**
+ * 轮式装载机械
+ */
+ public static final int EM_CAR_55 = 55;
+ /**
+ * 轮式挖掘机械
+ */
+ public static final int EM_CAR_56 = 56;
+ /**
+ * 轮式平地机械
+ */
+ public static final int EM_CAR_57 = 57;
+ /**
+ * 重型普通货车
+ */
+ public static final int EM_CAR_58 = 58;
+ /**
+ * 重型厢式货车
+ */
+ public static final int EM_CAR_59 = 59;
+ /**
+ * 重型封闭货车
+ */
+ public static final int EM_CAR_60 = 60;
+ /**
+ * 重型罐式货车
+ */
+ public static final int EM_CAR_61 = 61;
+ /**
+ * 重型平板货车
+ */
+ public static final int EM_CAR_62 = 62;
+ /**
+ * 重型集装箱车
+ */
+ public static final int EM_CAR_63 = 63;
+ /**
+ * 重型自卸货车
+ */
+ public static final int EM_CAR_64 = 64;
+ /**
+ * 重型特殊结构货车
+ */
+ public static final int EM_CAR_65 = 65;
+ /**
+ * 重型仓栅式货车
+ */
+ public static final int EM_CAR_66 = 66;
+ /**
+ * 重型车辆运输车
+ */
+ public static final int EM_CAR_67 = 67;
+ /**
+ * 重型厢式自卸货车
+ */
+ public static final int EM_CAR_68 = 68;
+ /**
+ * 重型罐式自卸货车
+ */
+ public static final int EM_CAR_69 = 69;
+ /**
+ * 重型平板自卸货车
+ */
+ public static final int EM_CAR_70 = 70;
+ /**
+ * 重型集装箱自卸货车
+ */
+ public static final int EM_CAR_71 = 71;
+ /**
+ * 重型特殊结构自卸货车
+ */
+ public static final int EM_CAR_72 = 72;
+ /**
+ * 重型仓栅式自卸货车
+ */
+ public static final int EM_CAR_73 = 73;
+ /**
+ * 中型普通货车
+ */
+ public static final int EM_CAR_74 = 74;
+ /**
+ * 中型厢式货车
+ */
+ public static final int EM_CAR_75 = 75;
+ /**
+ * 中型封闭货车
+ */
+ public static final int EM_CAR_76 = 76;
+ /**
+ * 中型罐式货车
+ */
+ public static final int EM_CAR_77 = 77;
+ /**
+ * 中型平板货车
+ */
+ public static final int EM_CAR_78 = 78;
+ /**
+ * 中型集装箱车
+ */
+ public static final int EM_CAR_79 = 79;
+ /**
+ * 中型自卸货车
+ */
+ public static final int EM_CAR_80 = 80;
+ /**
+ * 中型特殊结构货车
+ */
+ public static final int EM_CAR_81 = 81;
+ /**
+ * 中型仓栅式货车
+ */
+ public static final int EM_CAR_82 = 82;
+ /**
+ * 中型车辆运输车
+ */
+ public static final int EM_CAR_83 = 83;
+ /**
+ * 中型厢式自卸货车
+ */
+ public static final int EM_CAR_84 = 84;
+ /**
+ * 中型罐式自卸货车
+ */
+ public static final int EM_CAR_85 = 85;
+ /**
+ * 中型平板自卸货车
+ */
+ public static final int EM_CAR_86 = 86;
+ /**
+ * 中型集装箱自卸货车
+ */
+ public static final int EM_CAR_87 = 87;
+ /**
+ * 中型特殊结构自卸货车
+ */
+ public static final int EM_CAR_88 = 88;
+ /**
+ * 中型仓栅式自卸货车
+ */
+ public static final int EM_CAR_89 = 89;
+ /**
+ * 轻型普通货车
+ */
+ public static final int EM_CAR_90 = 90;
+ /**
+ * 轻型厢式货车
+ */
+ public static final int EM_CAR_91 = 91;
+ /**
+ * 轻型封闭货车
+ */
+ public static final int EM_CAR_92 = 92;
+ /**
+ * 轻型罐式货车
+ */
+ public static final int EM_CAR_93 = 93;
+ /**
+ * 轻型平板货车
+ */
+ public static final int EM_CAR_94 = 94;
+ /**
+ * 轻型自卸货车
+ */
+ public static final int EM_CAR_95 = 95;
+ /**
+ * 轻型特殊结构货车
+ */
+ public static final int EM_CAR_96 = 96;
+ /**
+ * 轻型仓栅式货车
+ */
+ public static final int EM_CAR_97 = 97;
+ /**
+ * 轻型车辆运输车
+ */
+ public static final int EM_CAR_98 = 98;
+ /**
+ * 轻型厢式自卸货车
+ */
+ public static final int EM_CAR_99 = 99;
+ /**
+ * 轻型罐式自卸货车
+ */
+ public static final int EM_CAR_100 = 100;
+ /**
+ * 轻型平板自卸货车
+ */
+ public static final int EM_CAR_101 = 101;
+ /**
+ * 轻型特殊结构自卸货车
+ */
+ public static final int EM_CAR_102 = 102;
+ /**
+ * 轻型仓栅式自卸货车
+ */
+ public static final int EM_CAR_103 = 103;
+ /**
+ * 微型普通货车
+ */
+ public static final int EM_CAR_104 = 104;
+ /**
+ * 微型厢式货车
+ */
+ public static final int EM_CAR_105 = 105;
+ /**
+ * 微型封闭货车
+ */
+ public static final int EM_CAR_106 = 106;
+ /**
+ * 微型罐式货车
+ */
+ public static final int EM_CAR_107 = 107;
+ /**
+ * 微型自卸货车
+ */
+ public static final int EM_CAR_108 = 108;
+ /**
+ * 微型特殊结构货车
+ */
+ public static final int EM_CAR_109 = 109;
+ /**
+ * 微型仓栅式货车
+ */
+ public static final int EM_CAR_110 = 110;
+ /**
+ * 微型车辆运输车
+ */
+ public static final int EM_CAR_111 = 111;
+ /**
+ * 微型厢式自卸货车
+ */
+ public static final int EM_CAR_112 = 112;
+ /**
+ * 微型罐式自卸货车
+ */
+ public static final int EM_CAR_113 = 113;
+ /**
+ * 微型特殊结构自卸货车
+ */
+ public static final int EM_CAR_114 = 114;
+ /**
+ * 微型仓栅式自卸货车
+ */
+ public static final int EM_CAR_115 = 115;
+ /**
+ * 普通低速货车
+ */
+ public static final int EM_CAR_116 = 116;
+ /**
+ * 厢式低速货车
+ */
+ public static final int EM_CAR_117 = 117;
+ /**
+ * 罐式低速货车
+ */
+ public static final int EM_CAR_118 = 118;
+ /**
+ * 自卸低速货车
+ */
+ public static final int EM_CAR_119 = 119;
+ /**
+ * 仓栅式低速货车
+ */
+ public static final int EM_CAR_120 = 120;
+ /**
+ * 厢式自卸低速货车
+ */
+ public static final int EM_CAR_121 = 121;
+ /**
+ * 罐式自卸低速货车
+ */
+ public static final int EM_CAR_122 = 122;
+ /**
+ * 重型普通全挂车
+ */
+ public static final int EM_CAR_123 = 123;
+ /**
+ * 重型厢式全挂车
+ */
+ public static final int EM_CAR_124 = 124;
+ /**
+ * 重型罐式全挂车
+ */
+ public static final int EM_CAR_125 = 125;
+ /**
+ * 重型平板全挂车
+ */
+ public static final int EM_CAR_126 = 126;
+ /**
+ * 重型集装箱全挂车
+ */
+ public static final int EM_CAR_127 = 127;
+ /**
+ * 重型自卸全挂车
+ */
+ public static final int EM_CAR_128 = 128;
+ /**
+ * 重型仓栅式全挂车
+ */
+ public static final int EM_CAR_129 = 129;
+ /**
+ * 重型旅居全挂车
+ */
+ public static final int EM_CAR_130 = 130;
+ /**
+ * 重型专项作业全挂车
+ */
+ public static final int EM_CAR_131 = 131;
+ /**
+ * 重型厢式自卸全挂车
+ */
+ public static final int EM_CAR_132 = 132;
+ /**
+ * 重型罐式自卸全挂车
+ */
+ public static final int EM_CAR_133 = 133;
+ /**
+ * 重型平板自卸全挂车
+ */
+ public static final int EM_CAR_134 = 134;
+ /**
+ * 重型集装箱自卸全挂车
+ */
+ public static final int EM_CAR_135 = 135;
+ /**
+ * 重型仓栅式自卸全挂车
+ */
+ public static final int EM_CAR_136 = 136;
+ /**
+ * 重型专项作业自卸全挂车
+ */
+ public static final int EM_CAR_137 = 137;
+ /**
+ * 中型普通全挂车
+ */
+ public static final int EM_CAR_138 = 138;
+ /**
+ * 中型厢式全挂车
+ */
+ public static final int EM_CAR_139 = 139;
+ /**
+ * 中型罐式全挂车
+ */
+ public static final int EM_CAR_140 = 140;
+ /**
+ * 中型平板全挂车
+ */
+ public static final int EM_CAR_141 = 141;
+ /**
+ * 中型集装箱全挂车
+ */
+ public static final int EM_CAR_142 = 142;
+ /**
+ * 中型自卸全挂车
+ */
+ public static final int EM_CAR_143 = 143;
+ /**
+ * 中型仓栅式全挂车
+ */
+ public static final int EM_CAR_144 = 144;
+ /**
+ * 中型旅居全挂车
+ */
+ public static final int EM_CAR_145 = 145;
+ /**
+ * 中型专项作业全挂车
+ */
+ public static final int EM_CAR_146 = 146;
+ /**
+ * 中型厢式自卸全挂车
+ */
+ public static final int EM_CAR_147 = 147;
+ /**
+ * 中型罐式自卸全挂车
+ */
+ public static final int EM_CAR_148 = 148;
+ /**
+ * 中型平板自卸全挂车
+ */
+ public static final int EM_CAR_149 = 149;
+ /**
+ * 中型集装箱自卸全挂车
+ */
+ public static final int EM_CAR_150 = 150;
+ /**
+ * 中型仓栅式自卸全挂车
+ */
+ public static final int EM_CAR_151 = 151;
+ /**
+ * 中型专项作业自卸全挂车
+ */
+ public static final int EM_CAR_152 = 152;
+ /**
+ * 轻型普通全挂车
+ */
+ public static final int EM_CAR_153 = 153;
+ /**
+ * 轻型厢式全挂车
+ */
+ public static final int EM_CAR_154 = 154;
+ /**
+ * 轻型罐式全挂车
+ */
+ public static final int EM_CAR_155 = 155;
+ /**
+ * 轻型平板全挂车
+ */
+ public static final int EM_CAR_156 = 156;
+ /**
+ * 轻型自卸全挂车
+ */
+ public static final int EM_CAR_157 = 157;
+ /**
+ * 轻型仓栅式全挂车
+ */
+ public static final int EM_CAR_158 = 158;
+ /**
+ * 轻型旅居全挂车
+ */
+ public static final int EM_CAR_159 = 159;
+ /**
+ * 轻型专项作业全挂车
+ */
+ public static final int EM_CAR_160 = 160;
+ /**
+ * 轻型厢式自卸全挂车
+ */
+ public static final int EM_CAR_161 = 161;
+ /**
+ * 轻型罐式自卸全挂车
+ */
+ public static final int EM_CAR_162 = 162;
+ /**
+ * 轻型平板自卸全挂车
+ */
+ public static final int EM_CAR_163 = 163;
+ /**
+ * 轻型集装箱自卸全挂车
+ */
+ public static final int EM_CAR_164 = 164;
+ /**
+ * 轻型仓栅式自卸全挂车
+ */
+ public static final int EM_CAR_165 = 165;
+ /**
+ * 轻型专项作业自卸全挂车
+ */
+ public static final int EM_CAR_166 = 166;
+ /**
+ * 重型普通半挂车
+ */
+ public static final int EM_CAR_167 = 167;
+ /**
+ * 重型厢式半挂车
+ */
+ public static final int EM_CAR_168 = 168;
+ /**
+ * 重型罐式半挂车
+ */
+ public static final int EM_CAR_169 = 169;
+ /**
+ * 重型平板半挂车
+ */
+ public static final int EM_CAR_170 = 170;
+ /**
+ * 重型集装箱半挂车
+ */
+ public static final int EM_CAR_171 = 171;
+ /**
+ * 重型自卸半挂车
+ */
+ public static final int EM_CAR_172 = 172;
+ /**
+ * 重型特殊结构半挂车
+ */
+ public static final int EM_CAR_173 = 173;
+ /**
+ * 重型仓栅式半挂车
+ */
+ public static final int EM_CAR_174 = 174;
+ /**
+ * 重型旅居半挂车
+ */
+ public static final int EM_CAR_175 = 175;
+ /**
+ * 重型专项作业半挂车
+ */
+ public static final int EM_CAR_176 = 176;
+ /**
+ * 重型低平板半挂车
+ */
+ public static final int EM_CAR_177 = 177;
+ /**
+ * 重型车辆运输半挂车
+ */
+ public static final int EM_CAR_178 = 178;
+ /**
+ * 重型罐式自卸半挂车
+ */
+ public static final int EM_CAR_179 = 179;
+ /**
+ * 重型平板自卸半挂车
+ */
+ public static final int EM_CAR_180 = 180;
+ /**
+ * 重型集装箱自卸半挂车
+ */
+ public static final int EM_CAR_181 = 181;
+ /**
+ * 重型特殊结构自卸半挂车
+ */
+ public static final int EM_CAR_182 = 182;
+ /**
+ * 重型仓栅式自卸半挂车
+ */
+ public static final int EM_CAR_183 = 183;
+ /**
+ * 重型专项作业自卸半挂车
+ */
+ public static final int EM_CAR_184 = 184;
+ /**
+ * 重型低平板自卸半挂车
+ */
+ public static final int EM_CAR_185 = 185;
+ /**
+ * 重型中置轴旅居挂车
+ */
+ public static final int EM_CAR_186 = 186;
+ /**
+ * 重型中置轴车辆运输车
+ */
+ public static final int EM_CAR_187 = 187;
+ /**
+ * 重型中置轴普通挂车
+ */
+ public static final int EM_CAR_188 = 188;
+ /**
+ * 中型普通半挂车
+ */
+ public static final int EM_CAR_189 = 189;
+ /**
+ * 中型厢式半挂车
+ */
+ public static final int EM_CAR_190 = 190;
+ /**
+ * 中型罐式半挂车
+ */
+ public static final int EM_CAR_191 = 191;
+ /**
+ * 中型平板半挂车
+ */
+ public static final int EM_CAR_192 = 192;
+ /**
+ * 中型集装箱半挂车
+ */
+ public static final int EM_CAR_193 = 193;
+ /**
+ * 中型自卸半挂车
+ */
+ public static final int EM_CAR_194 = 194;
+ /**
+ * 中型特殊结构半挂车
+ */
+ public static final int EM_CAR_195 = 195;
+ /**
+ * 中型仓栅式半挂车
+ */
+ public static final int EM_CAR_196 = 196;
+ /**
+ * 中型旅居半挂车
+ */
+ public static final int EM_CAR_197 = 197;
+ /**
+ * 中型专项作业半挂车
+ */
+ public static final int EM_CAR_198 = 198;
+ /**
+ * 中型低平板半挂车
+ */
+ public static final int EM_CAR_199 = 199;
+ /**
+ * 中型车辆运输半挂车
+ */
+ public static final int EM_CAR_200 = 200;
+ /**
+ * 中型罐式自卸半挂车
+ */
+ public static final int EM_CAR_201 = 201;
+ /**
+ * 中型平板自卸半挂车
+ */
+ public static final int EM_CAR_202 = 202;
+ /**
+ * 中型集装箱自卸半挂车
+ */
+ public static final int EM_CAR_203 = 203;
+ /**
+ * 中型特殊结构自卸挂车
+ */
+ public static final int EM_CAR_204 = 204;
+ /**
+ * 中型仓栅式自卸半挂车
+ */
+ public static final int EM_CAR_205 = 205;
+ /**
+ * 中型专项作业自卸半挂车
+ */
+ public static final int EM_CAR_206 = 206;
+ /**
+ * 中型低平板自卸半挂车
+ */
+ public static final int EM_CAR_207 = 207;
+ /**
+ * 中型中置轴旅居挂车
+ */
+ public static final int EM_CAR_208 = 208;
+ /**
+ * 中型中置轴车辆运输车
+ */
+ public static final int EM_CAR_209 = 209;
+ /**
+ * 中型中置轴普通挂车
+ */
+ public static final int EM_CAR_210 = 210;
+ /**
+ * 轻型普通半挂车
+ */
+ public static final int EM_CAR_211 = 211;
+ /**
+ * 轻型厢式半挂车
+ */
+ public static final int EM_CAR_212 = 212;
+ /**
+ * 轻型罐式半挂车
+ */
+ public static final int EM_CAR_213 = 213;
+ /**
+ * 轻型平板半挂车
+ */
+ public static final int EM_CAR_214 = 214;
+ /**
+ * 轻型自卸半挂车
+ */
+ public static final int EM_CAR_215 = 215;
+ /**
+ * 轻型仓栅式半挂车
+ */
+ public static final int EM_CAR_216 = 216;
+ /**
+ * 轻型旅居半挂车
+ */
+ public static final int EM_CAR_217 = 217;
+ /**
+ * 轻型专项作业半挂车
+ */
+ public static final int EM_CAR_218 = 218;
+ /**
+ * 轻型低平板半挂车
+ */
+ public static final int EM_CAR_219 = 219;
+ /**
+ * 轻型车辆运输半挂车
+ */
+ public static final int EM_CAR_220 = 220;
+ /**
+ * 轻型罐式自卸半挂车
+ */
+ public static final int EM_CAR_221 = 221;
+ /**
+ * 轻型平板自卸半挂车
+ */
+ public static final int EM_CAR_222 = 222;
+ /**
+ * 轻型集装箱自卸半挂车
+ */
+ public static final int EM_CAR_223 = 223;
+ /**
+ * 轻型特殊结构自卸挂车
+ */
+ public static final int EM_CAR_224 = 224;
+ /**
+ * 轻型仓栅式自卸半挂车
+ */
+ public static final int EM_CAR_225 = 225;
+ /**
+ * 轻型专项作业自卸半挂车
+ */
+ public static final int EM_CAR_226 = 226;
+ /**
+ * 轻型低平板自卸半挂车
+ */
+ public static final int EM_CAR_227 = 227;
+ /**
+ * 轻型中置轴旅居挂车
+ */
+ public static final int EM_CAR_228 = 228;
+ /**
+ * 轻型中置轴车辆运输车
+ */
+ public static final int EM_CAR_229 = 229;
+ /**
+ * 轻型中置轴普通挂车
+ */
+ public static final int EM_CAR_230 = 230;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CATEGORY_NONMOTOR_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CATEGORY_NONMOTOR_TYPE.java
new file mode 100644
index 0000000..61cc1b4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CATEGORY_NONMOTOR_TYPE.java
@@ -0,0 +1,82 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 非机动车子类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_CATEGORY_NONMOTOR_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_CATEGORY_NONMOTOR_TYPE_UNKNOWN = 0;
+ /**
+ * "Tricycle" 三轮车
+ */
+ public static final int EM_CATEGORY_NONMOTOR_TYPE_TRICYCLE = 1;
+ /**
+ * "Motorcycle" 摩托车
+ */
+ public static final int EM_CATEGORY_NONMOTOR_TYPE_MOTORCYCLE = 2;
+ /**
+ * "Non-Motor" 非机动车
+ */
+ public static final int EM_CATEGORY_NONMOTOR_TYPE_NON_MOTOR = 3;
+ /**
+ * "Bicycle" 自行车
+ */
+ public static final int EM_CATEGORY_NONMOTOR_TYPE_BICYCLE = 4;
+ /**
+ * "DualTriWheelMotorcycle"两、三轮摩托车
+ */
+ public static final int EM_CATEGORY_NONMOTOR_TYPE_DUALTRIWHEELMOTORCYCLE = 5;
+ /**
+ * "LightMotorcycle" 轻便摩托车
+ */
+ public static final int EM_CATEGORY_NONMOTOR_TYPE_LIGHTMOTORCYCLE = 6;
+ /**
+ * "EmbassyMotorcycle "使馆摩托车
+ */
+ public static final int EM_CATEGORY_NONMOTOR_TYPE_EMBASSYMOTORCYCLE = 7;
+ /**
+ * "MarginalMotorcycle " 领馆摩托车
+ */
+ public static final int EM_CATEGORY_NONMOTOR_TYPE_MARGINALMOTORCYCLE = 8;
+ /**
+ * "AreaoutMotorcycle " 境外摩托车
+ */
+ public static final int EM_CATEGORY_NONMOTOR_TYPE_AREAOUTMOTORCYCLE = 9;
+ /**
+ * "ForeignMotorcycle " 外籍摩托车
+ */
+ public static final int EM_CATEGORY_NONMOTOR_TYPE_FOREIGNMOTORCYCLE = 10;
+ /**
+ * "TrialMotorcycle " 试验摩托车
+ */
+ public static final int EM_CATEGORY_NONMOTOR_TYPE_TRIALMOTORCYCLE = 11;
+ /**
+ * "CoachMotorcycle " 教练摩托车
+ */
+ public static final int EM_CATEGORY_NONMOTOR_TYPE_COACHMOTORCYCLE = 12;
+ /**
+ * "Passerby" 行人
+ */
+ public static final int EM_CATEGORY_NONMOTOR_TYPE_PASSERBY = 13;
+ /**
+ * "VanTricycle" 厢式三轮车
+ */
+ public static final int EM_CATEGORY_NONMOTOR_TYPE_VANTRICYCLE = 14;
+ /**
+ * "MannedConvertibleTricycle" 载人敞篷三轮车
+ */
+ public static final int EM_CATEGORY_NONMOTOR_TYPE_MANNEDCONVERTIBLETRICYCLE = 15;
+ /**
+ * "NoMannedConvertibleTricycle" 不载人敞篷三轮车
+ */
+ public static final int EM_CATEGORY_NONMOTOR_TYPE_NOMANNEDCONVERTIBLETRICYCLE = 16;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CB_STATES.java b/src/main/java/com/netsdk/lib/enumeration/EM_CB_STATES.java
new file mode 100644
index 0000000..e7dee93
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CB_STATES.java
@@ -0,0 +1,47 @@
+package com.netsdk.lib.enumeration;
+
+public enum EM_CB_STATES {
+ EM_CB_STATES_UNKNOWN(0, "Unknown"),// "Unknown"
+ EM_CB_STATES_CREATED(1, "Created"),// "Created"
+ EM_CB_STATES_READY(2, "Ready"),// "Ready"
+ EM_CB_STATES_RUNNING(3, "Running"),// "Running"
+ EM_CB_STATES_FINISHED(4, "Finished"),// "Finished"
+ EM_CB_STATES_ERROR(5, "Error"),// "Error"
+ EM_CB_STATES_ABORTED(6, "Aborted"),// "Aborted"
+ EM_CB_STATES_PAUSE(7, "Pause");// "Pause"
+
+ private int value;
+ private String note;
+
+ private EM_CB_STATES(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TRAFFICSTROBE_STATUS enumType : EM_TRAFFICSTROBE_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TRAFFICSTROBE_STATUS enumType : EM_TRAFFICSTROBE_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CFG_3GFLUXTACTIC.java b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_3GFLUXTACTIC.java
new file mode 100644
index 0000000..16b7cb2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_3GFLUXTACTIC.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 流量使用策略
+ * @date 2023/03/16 14:28:39
+ */
+public enum EM_CFG_3GFLUXTACTIC {
+ /**
+ * 未知类型
+ */
+ EM_3GFLUXTACTIC_UNKNOWN(-1, "未知类型"),
+ /**
+ * 按月包流量
+ */
+ EM_3GFLUXTACTIC_BYFLUX(0, "按月包流量"),
+ /**
+ * 按月包时长
+ */
+ EM_3GFLUXTACTIC_BYTIME(1, "按月包时长");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CFG_3GFLUXTACTIC(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CFG_3GFLUXTACTIC enumType : EM_CFG_3GFLUXTACTIC.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CFG_3GFLUXTACTIC enumType : EM_CFG_3GFLUXTACTIC.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CFG_ACTION_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_ACTION_TYPE.java
new file mode 100644
index 0000000..affd36d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_ACTION_TYPE.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 动作类型
+*/
+public enum EM_CFG_ACTION_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_CFG_ACTION_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 剧烈运动
+ */
+ EM_CFG_ACTION_TYPE_DRASTIC_MOTION(1, "剧烈运动"),
+ /**
+ * 单人打砸
+ */
+ EM_CFG_ACTION_TYPE_SINGLE_FIGHT(2, "单人打砸"),
+ /**
+ * 多人打架
+ */
+ EM_CFG_ACTION_TYPE_MULTI_FIGHT(3, "多人打架");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CFG_ACTION_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CFG_ACTION_TYPE enumType : EM_CFG_ACTION_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CFG_ACTION_TYPE enumType : EM_CFG_ACTION_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CFG_APN.java b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_APN.java
new file mode 100644
index 0000000..b1e47d0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_APN.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 接入的网络名称
+ * @date 2023/03/16 14:23:46
+ */
+public enum EM_CFG_APN {
+ /**
+ * 中国电信
+ */
+ EM_CFG_APN_CTNET(0, "中国电信"),
+ /**
+ * 中国移动
+ */
+ EM_CFG_APN_CMNET(1, "中国移动"),
+ /**
+ * 中国联通
+ */
+ EM_CFG_APN_UNINET(2, "中国联通");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CFG_APN(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CFG_APN enumType : EM_CFG_APN.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CFG_APN enumType : EM_CFG_APN.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CFG_AUTHMODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_AUTHMODE.java
new file mode 100644
index 0000000..6a622c3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_AUTHMODE.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 鉴权模式
+ * @date 2023/03/16 14:23:46
+ */
+public enum EM_CFG_AUTHMODE {
+ /**
+ * 不需要鉴权
+ */
+ EM_AUTHMODE_NO(0, "不需要鉴权"),
+ /**
+ * PAP鉴权
+ */
+ EM_AUTHMODE_PAP(1, "PAP鉴权"),
+ /**
+ * CHAP鉴权
+ */
+ EM_AUTHMODE_CHAP(2, "CHAP鉴权");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CFG_AUTHMODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CFG_AUTHMODE enumType : EM_CFG_AUTHMODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CFG_AUTHMODE enumType : EM_CFG_AUTHMODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CFG_CAP_CMD.java b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_CAP_CMD.java
new file mode 100644
index 0000000..2fb7e70
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_CAP_CMD.java
@@ -0,0 +1,38 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 命令类型,对应QueryNewSystemInfo接口
+ */
+public enum EM_CFG_CAP_CMD {
+ /**
+ * 获取设备状态信息 (对应 CFG_CAP_TRAFFIC_DEVICE_STATUS)
+ */
+ CFG_CAP_CMD_DEVICE_STATE("trafficSnap.getDeviceStatus"),
+ /**
+ * 获取查询记录能力集, (对应结构体 CFG_CAP_RECORDFINDER_INFO)
+ */
+ CFG_CAP_CMD_RECORDFINDER("RecordFinder.getCaps"),
+ /**
+ *获取视频诊断进行状态(CFG_VIDEODIAGNOSIS_STATE_INFO)
+ */
+ CFG_CMD_VIDEODIAGNOSIS_GETSTATE("videoDiagnosisServer.getState"),
+ /**
+ * 获取云台支持信息(CFG_CAP_PTZ_ENABLEINFO)
+ */
+ CFG_CAP_CMD_PTZ_ENABLE("ptz.factory.instance"),
+ /**
+ * 获取门禁能力集,对应结构体CFG_CAP_ACCESSCONTROL
+ */
+ CFG_CAP_CMD_ACCESSCONTROLMANAGER("accessControlManager.getCaps");
+
+ private String cmd;
+
+ EM_CFG_CAP_CMD(String cmd){
+ this.cmd=cmd;
+ }
+
+ public String getCmd() {
+ return cmd;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CFG_CHEF_CLOTHES_COLORS.java b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_CHEF_CLOTHES_COLORS.java
new file mode 100644
index 0000000..350437e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_CHEF_CLOTHES_COLORS.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 检测符合要求的厨师服颜色不报警
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:18
+ */
+public class EM_CFG_CHEF_CLOTHES_COLORS extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_CFG_CHEF_CLOTHES_COLORS_UNKNOWN = 0;
+ /**
+ * 黑色
+ */
+ public static final int EM_CFG_CHEF_CLOTHES_COLORS_BLACK = 1;
+ /**
+ * 白色
+ */
+ public static final int EM_CFG_CHEF_CLOTHES_COLORS_WHITE = 2;
+ /**
+ * 红色
+ */
+ public static final int EM_CFG_CHEF_CLOTHES_COLORS_RED = 3;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CFG_CROSSREGION_ALARMTYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_CROSSREGION_ALARMTYPE.java
new file mode 100644
index 0000000..56f03ea
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_CROSSREGION_ALARMTYPE.java
@@ -0,0 +1,70 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author : 260611
+ * @description : 报警类型
+ * @since : Created in 2021/11/26 10:13
+ */
+
+public enum EM_CFG_CROSSREGION_ALARMTYPE {
+ /**
+ * 未知
+ */
+ EM_CFG_CROSSREGION_ALARMTYPE_UNKNOWN(0, "未知"),
+ /**
+ * 报警
+ */
+ EM_CFG_CROSSREGION_ALARMTYPE_ALARM(1, "报警"),
+ /**
+ * 预警
+ */
+ EM_CFG_CROSSREGION_ALARMTYPE_WARNING(2, "预警"),
+ /**
+ * 屏蔽
+ */
+ EM_CFG_CROSSREGION_ALARMTYPE_SHIELD(3, "屏蔽");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CFG_CROSSREGION_ALARMTYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CFG_CROSSREGION_ALARMTYPE enumType : EM_CFG_CROSSREGION_ALARMTYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CFG_CROSSREGION_ALARMTYPE enumType : EM_CFG_CROSSREGION_ALARMTYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_CFG_CROSSREGION_ALARMTYPE getEnum(int value) {
+ for (EM_CFG_CROSSREGION_ALARMTYPE e : EM_CFG_CROSSREGION_ALARMTYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_CFG_CROSSREGION_ALARMTYPE.EM_CFG_CROSSREGION_ALARMTYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CFG_DAY3GFLUXACTION.java b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_DAY3GFLUXACTION.java
new file mode 100644
index 0000000..d46d703
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_DAY3GFLUXACTION.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 流量报警策略
+ * @date 2023/03/16 14:23:46
+ */
+public enum EM_CFG_DAY3GFLUXACTION {
+ /**
+ * 无动作
+ */
+ EM_CFG_DAY3GFLUXACTION_NOTHING(0, "无动作"),
+ /**
+ * 3G下线
+ */
+ EM_CFG_DAY3GFLUXACTION_3GNETDOWN(1, "3G下线");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CFG_DAY3GFLUXACTION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CFG_DAY3GFLUXACTION enumType : EM_CFG_DAY3GFLUXACTION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CFG_DAY3GFLUXACTION enumType : EM_CFG_DAY3GFLUXACTION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CFG_DAY3GFLUXTACTIC.java b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_DAY3GFLUXTACTIC.java
new file mode 100644
index 0000000..44766c8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_DAY3GFLUXTACTIC.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 每日流量控制策略
+ * @date 2023/03/16 14:23:46
+ */
+public enum EM_CFG_DAY3GFLUXTACTIC {
+ /**
+ * 按流量
+ */
+ EM_CFG_DAY3GFLUXTACTIC_BYFLUX(0, "按流量"),
+ /**
+ * 按时间
+ */
+ EM_CFG_DAY3GFLUXTACTIC_BYTIME(1, "按时间");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CFG_DAY3GFLUXTACTIC(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CFG_DAY3GFLUXTACTIC enumType : EM_CFG_DAY3GFLUXTACTIC.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CFG_DAY3GFLUXTACTIC enumType : EM_CFG_DAY3GFLUXTACTIC.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CFG_DEFENCEAREATYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_DEFENCEAREATYPE.java
new file mode 100644
index 0000000..399d696
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_DEFENCEAREATYPE.java
@@ -0,0 +1,108 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 防区类型
+ * @date 2023/04/18 10:57:31
+ */
+public enum EM_CFG_DEFENCEAREATYPE {
+ /**
+ * 未知类型
+ */
+ EM_CFG_DefenceAreaType_Unknown(0, "未知类型"),
+ /**
+ * 即时防区
+ */
+ EM_CFG_DefenceAreaType_InTime(1, "即时防区"),
+ /**
+ * 延时防区
+ */
+ EM_CFG_DefenceAreaType_Delay(2, "延时防区"),
+ /**
+ * 24小时防区
+ */
+ EM_CFG_DefenceAreaType_FullDay(3, "24小时防区"),
+ /**
+ * 跟随防区
+ */
+ EM_CFG_DefenceAreaType_Follow(4, "跟随防区"),
+ /**
+ * 医疗紧急防区
+ */
+ EM_CFG_DefenceAreaType_Medical(5, "医疗紧急防区"),
+ /**
+ * 恐慌防区
+ */
+ EM_CFG_DefenceAreaType_Panic(6, "恐慌防区"),
+ /**
+ * 火警防区
+ */
+ EM_CFG_DefenceAreaType_Fire(7, "火警防区"),
+ /**
+ * 24小时有声防区
+ */
+ EM_CFG_DefenceAreaType_FullDaySound(8, "24小时有声防区"),
+ /**
+ * 24小时无声防区
+ */
+ EM_CFG_DefenceAreaType_FullDaySlient(9, "24小时无声防区"),
+ /**
+ * 出入防区1
+ */
+ EM_CFG_DefenceAreaType_Entrance1(10, "出入防区1"),
+ /**
+ * 出入防区2
+ */
+ EM_CFG_DefenceAreaType_Entrance2(11, "出入防区2"),
+ /**
+ * 内部防区
+ */
+ EM_CFG_DefenceAreaType_InSide(12, "内部防区"),
+ /**
+ * 外部防区
+ */
+ EM_CFG_DefenceAreaType_OutSide(13, "外部防区"),
+ /**
+ * 人员检测防区
+ */
+ EM_CFG_DefenceAreaType_PeopleDetect(14, "人员检测防区"),
+ /**
+ * 匪警防区
+ */
+ EM_CFG_DefenceAreaType_Robbery(15, "匪警防区");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CFG_DEFENCEAREATYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CFG_DEFENCEAREATYPE enumType : EM_CFG_DEFENCEAREATYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CFG_DEFENCEAREATYPE enumType : EM_CFG_DEFENCEAREATYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CFG_EAP_AUTH_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_EAP_AUTH_TYPE.java
new file mode 100644
index 0000000..2c65f22
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_EAP_AUTH_TYPE.java
@@ -0,0 +1,68 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description EAP身份验证方法
+ * @date 2023/03/16 11:15:26
+ */
+public enum EM_CFG_EAP_AUTH_TYPE {
+ /**
+ * UnKnown
+ */
+ EM_CFG_EAP_AUTH_TYPE_UNKNOWN(0, "UnKnown"),
+ /**
+ * NONE
+ */
+ EM_CFG_EAP_AUTH_TYPE_NONE(1, "NONE"),
+ /**
+ * PAP
+ */
+ EM_CFG_EAP_AUTH_TYPE_PAP(2, "PAP"),
+ /**
+ * MSCHAP
+ */
+ EM_CFG_EAP_AUTH_TYPE_MSCHAP(3, "MSCHAP"),
+ /**
+ * MSCHAPV2
+ */
+ EM_CFG_EAP_AUTH_TYPE_MSCHAPV2(4, "MSCHAPV2"),
+ /**
+ * GTC
+ */
+ EM_CFG_EAP_AUTH_TYPE_GTC(5, "GTC");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CFG_EAP_AUTH_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CFG_EAP_AUTH_TYPE enumType : EM_CFG_EAP_AUTH_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CFG_EAP_AUTH_TYPE enumType : EM_CFG_EAP_AUTH_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CFG_EAP_METHOD.java b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_EAP_METHOD.java
new file mode 100644
index 0000000..a9cbd38
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_EAP_METHOD.java
@@ -0,0 +1,60 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description EAP方法
+ * @date 2023/03/16 11:15:26
+ */
+public enum EM_CFG_EAP_METHOD {
+ /**
+ * UnKnown
+ */
+ EM_CFG_EAP_METHOD_UNKNOWN(0, "UnKnown"),
+ /**
+ * PEAP
+ */
+ EM_CFG_EAP_METHOD_PEAP(1, "PEAP"),
+ /**
+ * TLS
+ */
+ EM_CFG_EAP_METHOD_TLS(2, "TLS"),
+ /**
+ * TTLS
+ */
+ EM_CFG_EAP_METHOD_TTLS(3, "TTLS");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CFG_EAP_METHOD(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CFG_EAP_METHOD enumType : EM_CFG_EAP_METHOD.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CFG_EAP_METHOD enumType : EM_CFG_EAP_METHOD.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CFG_LC_LIGHT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_LC_LIGHT_TYPE.java
new file mode 100644
index 0000000..267d93f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_LC_LIGHT_TYPE.java
@@ -0,0 +1,68 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 灯光类型
+ * @date 2023/05/23 09:40:10
+ */
+public enum EM_CFG_LC_LIGHT_TYPE {
+ /**
+ * 未知
+ */
+ EM_CFG_LC_LIGHT_TYPEUNKNOWN(0, "未知"),
+ /**
+ * 红外灯
+ */
+ EM_CFG_LC_LIGHT_TYPE_INFRAREDLIGHT(1, "红外灯"),
+ /**
+ * 白光灯
+ */
+ EM_CFG_LC_LIGHT_TYPE_WIHTELIGHT(2, "白光灯"),
+ /**
+ * 激光灯
+ */
+ EM_CFG_LC_LIGHT_TYPE_LASERLIGHT(3, "激光灯"),
+ /**
+ * 智能混光灯(根据智能ID切换红外和白光灯)
+ */
+ EM_CFG_LC_LIGHT_TYPE_AIMIXLIGHT(4, "智能混光灯(根据智能ID切换红外和白光灯)"),
+ /**
+ * 指示灯
+ */
+ EM_CFG_LC_LIGHT_TYPE_PILOTLIGHT(5, "指示灯");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CFG_LC_LIGHT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CFG_LC_LIGHT_TYPE enumType : EM_CFG_LC_LIGHT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CFG_LC_LIGHT_TYPE enumType : EM_CFG_LC_LIGHT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CFG_LC_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_LC_MODE.java
new file mode 100644
index 0000000..12f216e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_LC_MODE.java
@@ -0,0 +1,88 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 灯光模式
+ * @date 2023/05/23 09:40:10
+ */
+public enum EM_CFG_LC_MODE {
+ /**
+ * 未知
+ */
+ EM_CFG_LC_MODE_UNKNOWN(0, "未知"),
+ /**
+ * 手动
+ */
+ EM_CFG_LC_MODE_MANUAL(1, "手动"),
+ /**
+ * 倍率优先
+ */
+ EM_CFG_LC_MODE_ZOOMPRIO(2, "倍率优先"),
+ /**
+ * 定时(废弃)
+ */
+ EM_CFG_LC_MODE_TIMING(3, "定时(废弃)"),
+ /**
+ * 自动
+ */
+ EM_CFG_LC_MODE_AUTO(4, "自动"),
+ /**
+ * 关闭灯光
+ */
+ EM_CFG_LC_MODE_OFF(5, "关闭灯光"),
+ /**
+ * 支持多种灯光(废弃)
+ */
+ EM_CFG_LC_MODE_EXCLUSIVEMANUAL(6, "支持多种灯光(废弃)"),
+ /**
+ * 智能灯光(废弃)
+ */
+ EM_CFG_LC_MODE_SMARTLIGHT(7, "智能灯光(废弃)"),
+ /**
+ * 事件联动(废弃)
+ */
+ EM_CFG_LC_MODE_LINKING(8, "事件联动(废弃)"),
+ /**
+ * 光敏
+ */
+ EM_CFG_LC_MODE_DUSKTODAWN(9, "光敏"),
+ /**
+ * 强制打开灯光
+ */
+ EM_CFG_LC_MODE_FORCEON(10, "强制打开灯光");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CFG_LC_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CFG_LC_MODE enumType : EM_CFG_LC_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CFG_LC_MODE enumType : EM_CFG_LC_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CFG_NAS_CLOUDPROTOCOL_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_NAS_CLOUDPROTOCOL_TYPE.java
new file mode 100644
index 0000000..86c837c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_NAS_CLOUDPROTOCOL_TYPE.java
@@ -0,0 +1,60 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 云存储协议类型
+ * @date 2022/09/08 19:33:10
+ */
+public enum EM_CFG_NAS_CLOUDPROTOCOL_TYPE {
+ /**
+ * 未知
+ */
+ EM_CFG_NAS_CLOUDPROTOCOL_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * BaiduCloud
+ */
+ EM_CFG_NAS_CLOUDPROTOCOL_TYPE_BAIDU_CLOUD(1, " BaiduCloud "),
+ /**
+ * GoogleDrive
+ */
+ EM_CFG_NAS_CLOUDPROTOCOL_TYPE_GOOGLE_DRIVE(2, " GoogleDrive "),
+ /**
+ * Dropbox
+ */
+ EM_CFG_NAS_CLOUDPROTOCOL_TYPE_DROPBOX(3, " Dropbox ");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CFG_NAS_CLOUDPROTOCOL_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CFG_NAS_CLOUDPROTOCOL_TYPE enumType : EM_CFG_NAS_CLOUDPROTOCOL_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CFG_NAS_CLOUDPROTOCOL_TYPE enumType : EM_CFG_NAS_CLOUDPROTOCOL_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CFG_NAS_DIRECTORY_CACHE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_NAS_DIRECTORY_CACHE_TYPE.java
new file mode 100644
index 0000000..bf884d4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_NAS_DIRECTORY_CACHE_TYPE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 缓存类型枚举
+* @date 2022/09/22 17:24:07
+*/
+public enum EM_CFG_NAS_DIRECTORY_CACHE_TYPE {
+/**
+未知枚举
+*/
+ EM_CFG_NAS_DIRECTORY_CACHE_TYPE_UNKNOWN(0, "未知枚举"),
+/**
+直存
+*/
+ EM_CFG_NAS_DIRECTORY_CACHE_TYPE_DIRECT(1, "直存"),
+/**
+回存
+*/
+ EM_CFG_NAS_DIRECTORY_CACHE_TYPE_INDIRECT(2, "回存");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_CFG_NAS_DIRECTORY_CACHE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_CFG_NAS_DIRECTORY_CACHE_TYPE enumType : EM_CFG_NAS_DIRECTORY_CACHE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_CFG_NAS_DIRECTORY_CACHE_TYPE enumType : EM_CFG_NAS_DIRECTORY_CACHE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_CFG_NAS_DIRECTORY_CACHE_TYPE getEnum(int value) {
+ for (EM_CFG_NAS_DIRECTORY_CACHE_TYPE e : EM_CFG_NAS_DIRECTORY_CACHE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_CFG_NAS_DIRECTORY_CACHE_TYPE.EM_CFG_NAS_DIRECTORY_CACHE_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CFG_NAS_DIRECTORY_PROTOCAL.java b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_NAS_DIRECTORY_PROTOCAL.java
new file mode 100644
index 0000000..1269a6f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_NAS_DIRECTORY_PROTOCAL.java
@@ -0,0 +1,77 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 共享类型枚举
+* @date 2022/09/22 17:24:07
+*/
+public enum EM_CFG_NAS_DIRECTORY_PROTOCAL {
+/**
+未知枚举
+*/
+ EM_CFG_NAS_DIRECTORY_PROTOCAL_UNKNOWN(0, "未知枚举"),
+/**
+NFS
+*/
+ EM_CFG_NAS_DIRECTORY_PROTOCAL_NFS(1, "NFS"),
+/**
+FTP
+*/
+ EM_CFG_NAS_DIRECTORY_PROTOCAL_FTP(2, "FTP"),
+/**
+SAMBA
+*/
+ EM_CFG_NAS_DIRECTORY_PROTOCAL_SAMBA(3, "SAMBA"),
+/**
+ISCSI
+*/
+ EM_CFG_NAS_DIRECTORY_PROTOCAL_ISCSI(4, "ISCSI"),
+/**
+表示裸的LV, 没有做共享文件夹
+*/
+ EM_CFG_NAS_DIRECTORY_PROTOCAL_NONE(5, "表示裸的LV, 没有做共享文件夹");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_CFG_NAS_DIRECTORY_PROTOCAL(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_CFG_NAS_DIRECTORY_PROTOCAL enumType : EM_CFG_NAS_DIRECTORY_PROTOCAL.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_CFG_NAS_DIRECTORY_PROTOCAL enumType : EM_CFG_NAS_DIRECTORY_PROTOCAL.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_CFG_NAS_DIRECTORY_PROTOCAL getEnum(int value) {
+ for (EM_CFG_NAS_DIRECTORY_PROTOCAL e : EM_CFG_NAS_DIRECTORY_PROTOCAL.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_CFG_NAS_DIRECTORY_PROTOCAL.EM_CFG_NAS_DIRECTORY_PROTOCAL_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CFG_OBJECT_FILTER_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_OBJECT_FILTER_TYPE.java
new file mode 100644
index 0000000..c1bbc15
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_OBJECT_FILTER_TYPE.java
@@ -0,0 +1,50 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 物体过滤类型
+ * @date 2021/07/06
+ */
+public enum EM_CFG_OBJECT_FILTER_TYPE {
+ // 未知
+ EM_CFG_OBJECT_FILTER_TYPE_UNKNOWN(0, "未知"),
+ // 人
+ EM_CFG_OBJECT_FILTER_TYPE_HUMAN(1, "人"),
+ // 车
+ EM_CFG_OBJECT_FILTER_TYPE_VEHICLE(2, "车");
+
+ private int value;
+ private String note;
+
+ private EM_CFG_OBJECT_FILTER_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CFG_OBJECT_FILTER_TYPE enumType : EM_CFG_OBJECT_FILTER_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CFG_OBJECT_FILTER_TYPE enumType : EM_CFG_OBJECT_FILTER_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CFG_RULE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_RULE_TYPE.java
new file mode 100644
index 0000000..e27d4f3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_RULE_TYPE.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 规则类型
+ * @date 2022/12/19 09:10:21
+ */
+public enum EM_CFG_RULE_TYPE {
+ /**
+ * 未知
+ */
+ EM_CFG_RULE_UNKNOWN(0, "未知"),
+ /**
+ * 人数统计
+ */
+ EM_CFG_RULE_NUMBER_STAT(1, "人数统计"),
+ /**
+ * 区域内人数统计
+ */
+ EM_CFG_RULE_MAN_NUM_DETECTION(2, "区域内人数统计");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CFG_RULE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CFG_RULE_TYPE enumType : EM_CFG_RULE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CFG_RULE_TYPE enumType : EM_CFG_RULE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CFG_WIRELESS_AUTHENTICATION.java b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_WIRELESS_AUTHENTICATION.java
new file mode 100644
index 0000000..40fec1b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_WIRELESS_AUTHENTICATION.java
@@ -0,0 +1,96 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 无线设备认证方式
+ * @date 2023/03/16 11:15:26
+ */
+public enum EM_CFG_WIRELESS_AUTHENTICATION {
+ /**
+ * UnKnown
+ */
+ EM_CFG_WIRELESS_AUTHENTICATION_UNKNOWN(0, "UnKnown"),
+ /**
+ * OPEN
+ */
+ EM_CFG_WIRELESS_AUTHENTICATION_OPEN(1, "OPEN"),
+ /**
+ * SHARED
+ */
+ EM_CFG_WIRELESS_AUTHENTICATION_SHARED(2, "SHARED"),
+ /**
+ * WPA
+ */
+ EM_CFG_WIRELESS_AUTHENTICATION_WPA(3, "WPA"),
+ /**
+ * WPA-PSK
+ */
+ EM_CFG_WIRELESS_AUTHENTICATION_WPAPSK(4, "WPA-PSK"),
+ /**
+ * WPA2
+ */
+ EM_CFG_WIRELESS_AUTHENTICATION_WPA2(5, "WPA2"),
+ /**
+ * WPA2-PSK
+ */
+ EM_CFG_WIRELESS_AUTHENTICATION_WPA2PSK(6, "WPA2-PSK"),
+ /**
+ * WPA-NONE
+ */
+ EM_CFG_WIRELESS_AUTHENTICATION_WPANONE(7, "WPA-NONE"),
+ /**
+ * WPA-PSK|WPA2-PSK
+ */
+ EM_CFG_WIRELESS_AUTHENTICATION_WPAPSK_WPA2PSK(8, "WPA-PSK|WPA2-PSK"),
+ /**
+ * WPA|WPA2
+ */
+ EM_CFG_WIRELESS_AUTHENTICATION_WPA_WPA2(9, "WPA|WPA2"),
+ /**
+ * WPA | WPA-PSK
+ */
+ EM_CFG_WIRELESS_AUTHENTICATION_WPA_WPAPSK(10, "WPA | WPA-PSK"),
+ /**
+ * WPA2|WPA2-PSK
+ */
+ EM_CFG_WIRELESS_AUTHENTICATION_WPA2_WPA2PSK(11, "WPA2|WPA2-PSK"),
+ /**
+ * WPA|WPA-PSK|WPA2|WPA2-PSK
+ */
+ EM_CFG_WIRELESS_AUTHENTICATION_WPA_WPAPSK_WPA2_WPA2PSK(12, "WPA|WPA-PSK|WPA2|WPA2-PSK");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CFG_WIRELESS_AUTHENTICATION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CFG_WIRELESS_AUTHENTICATION enumType : EM_CFG_WIRELESS_AUTHENTICATION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CFG_WIRELESS_AUTHENTICATION enumType : EM_CFG_WIRELESS_AUTHENTICATION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CFG_WIRELESS_DATA_ENCRYPT.java b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_WIRELESS_DATA_ENCRYPT.java
new file mode 100644
index 0000000..50b9b40
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_WIRELESS_DATA_ENCRYPT.java
@@ -0,0 +1,68 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 无线数据加密方式
+ * @date 2023/03/16 11:15:26
+ */
+public enum EM_CFG_WIRELESS_DATA_ENCRYPT {
+ /**
+ * UnKnown
+ */
+ EM_CFG_WIRELESS_DATA_ENCRYPT_UNKNOWN(0, "UnKnown"),
+ /**
+ * NONE
+ */
+ EM_CFG_WIRELESS_DATA_ENCRYPT_NONE(1, "NONE"),
+ /**
+ * WEP
+ */
+ EM_CFG_WIRELESS_DATA_ENCRYPT_WEP(2, "WEP"),
+ /**
+ * TKIP
+ */
+ EM_CFG_WIRELESS_DATA_ENCRYPT_TKIP(3, "TKIP"),
+ /**
+ * AES(CCMP)
+ */
+ EM_CFG_WIRELESS_DATA_ENCRYPT_AES(4, "AES(CCMP)"),
+ /**
+ * TKIP+AES
+ */
+ EM_CFG_WIRELESS_DATA_ENCRYPT_TKIP_AES(5, "TKIP+AES");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CFG_WIRELESS_DATA_ENCRYPT(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CFG_WIRELESS_DATA_ENCRYPT enumType : EM_CFG_WIRELESS_DATA_ENCRYPT.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CFG_WIRELESS_DATA_ENCRYPT enumType : EM_CFG_WIRELESS_DATA_ENCRYPT.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CFG_WORKMODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_WORKMODE.java
new file mode 100644
index 0000000..f82618e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CFG_WORKMODE.java
@@ -0,0 +1,84 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 工作模式选择
+ * @date 2023/03/16 14:23:46
+ */
+public enum EM_CFG_WORKMODE {
+ /**
+
+ */
+ EM_WORKMODE_UNKNOWN(-1, ""),
+ /**
+ * CDMA1x
+ */
+ EM_WORKMODE_CDMA1X(0, " CDMA1x "),
+ /**
+ * EVDO
+ */
+ EM_WORKMODE_EVDO(1, " EVDO "),
+ /**
+ * TD-SCDMA
+ */
+ EM_WORKMODE_TDSCDMA(2, " TD-SCDMA "),
+ /**
+ * WCDMA
+ */
+ EM_WORKMODE_WCDMA(3, " WCDMA "),
+ /**
+ * EDGE
+ */
+ EM_WORKMODE_EDGE(4, " EDGE "),
+ /**
+ * TDD-LTE
+ */
+ EM_WORKMODE_TDDLTE(5, " TDD-LTE "),
+ /**
+ * FDD-LTE
+ */
+ EM_WORKMODE_FDDLTE(6, " FDD-LTE "),
+ /**
+ * TD-LTE
+ */
+ EM_WORKMODE_TDLTE(7, " TD-LTE "),
+ /**
+ * Auto
+ */
+ EM_WORKMODE_AUTO(8, " Auto ");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CFG_WORKMODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CFG_WORKMODE enumType : EM_CFG_WORKMODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CFG_WORKMODE enumType : EM_CFG_WORKMODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CHANNELS_STATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CHANNELS_STATE_TYPE.java
new file mode 100644
index 0000000..dc4e1f3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CHANNELS_STATE_TYPE.java
@@ -0,0 +1,73 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 通道类型
+* @date 2022/10/09 11:22:21
+*/
+public enum EM_CHANNELS_STATE_TYPE {
+/**
+未知
+*/
+ EM_CHANNELS_STATE_TYPE_UNKNOWN(0, "未知"),
+/**
+所有通道
+*/
+ EM_CHANNELS_STATE_TYPE_ALL(1, "所有通道"),
+/**
+报警输入通道
+*/
+ EM_CHANNELS_STATE_TYPE_ALARMIN(2, "报警输入通道"),
+/**
+报警输出通道
+*/
+ EM_CHANNELS_STATE_TYPE_ALARMOUT(3, "报警输出通道"),
+/**
+警号通道
+*/
+ EM_CHANNELS_STATE_TYPE_SIREN(4, "警号通道");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_CHANNELS_STATE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_CHANNELS_STATE_TYPE enumType : EM_CHANNELS_STATE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_CHANNELS_STATE_TYPE enumType : EM_CHANNELS_STATE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_CHANNELS_STATE_TYPE getEnum(int value) {
+ for (EM_CHANNELS_STATE_TYPE e : EM_CHANNELS_STATE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_CHANNELS_STATE_TYPE.EM_CHANNELS_STATE_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CHANNEL_PROTOCOL_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CHANNEL_PROTOCOL_TYPE.java
new file mode 100644
index 0000000..14919eb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CHANNEL_PROTOCOL_TYPE.java
@@ -0,0 +1,64 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 跟设备对接时的拉流协议类型
+ * @date 2023/04/20 08:58:40
+ */
+public enum EM_CHANNEL_PROTOCOL_TYPE {
+ /**
+ * 未知
+ */
+ EM_CHANNEL_PROTOCOL_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * Onvif接入
+ */
+ EM_CHANNEL_PROTOCOL_TYPE_ONVIF(1, "Onvif接入"),
+ /**
+ * 国标协议接入
+ */
+ EM_CHANNEL_PROTOCOL_TYPE_GB28181(2, "国标协议接入"),
+ /**
+ * Rtsp协议接入
+ */
+ EM_CHANNEL_PROTOCOL_TYPE_RTSP(3, "Rtsp协议接入"),
+ /**
+ * GB35114协议接入
+ */
+ EM_CHANNEL_PROTOCOL_TYPE_GB35114(4, "GB35114协议接入");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CHANNEL_PROTOCOL_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CHANNEL_PROTOCOL_TYPE enumType : EM_CHANNEL_PROTOCOL_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CHANNEL_PROTOCOL_TYPE enumType : EM_CHANNEL_PROTOCOL_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CHANNEL_WIDTH.java b/src/main/java/com/netsdk/lib/enumeration/EM_CHANNEL_WIDTH.java
new file mode 100644
index 0000000..932b6e6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CHANNEL_WIDTH.java
@@ -0,0 +1,60 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 通道宽度
+ * @date 2021/2/7
+ */
+public enum EM_CHANNEL_WIDTH {
+ /** 未知 */
+ EM_CHANNEL_WIDTH_UNKNOWN(-1, "未知"),
+ /** 600mm */
+ EM_CHANNEL_WIDTH_600(0, "600mm"),
+ /** 700mm */
+ EM_CHANNEL_WIDTH_700(1, "700mm"),
+ /** 800mm */
+ EM_CHANNEL_WIDTH_800(2, "800mm"),
+ /** 900mm */
+ EM_CHANNEL_WIDTH_900(3, "900mm"),
+ /** 1000mm */
+ EM_CHANNEL_WIDTH_1000(4, "1000mm"),
+ /** 1100mm */
+ EM_CHANNEL_WIDTH_1100(5, "1100mm"),
+ /** 1200mm */
+ EM_CHANNEL_WIDTH_1200(6, "1200mm");
+
+ private int emWidth;
+ private String desc;
+
+ EM_CHANNEL_WIDTH(int emWidth, String desc) {
+ this.emWidth = emWidth;
+ this.desc = desc;
+ }
+
+ public int getEmWidth() {
+ return emWidth;
+ }
+
+ public void setEmWidth(int emWidth) {
+ this.emWidth = emWidth;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public void setDesc(String desc) {
+ this.desc = desc;
+ }
+
+ public static EM_CHANNEL_WIDTH getChannelWidth(int emWidth){
+ for (EM_CHANNEL_WIDTH channelWidth :EM_CHANNEL_WIDTH.values() ) {
+ if(channelWidth.emWidth==emWidth){
+ return channelWidth;
+ }
+ }
+ return EM_CHANNEL_WIDTH_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CITIZENIDCARD_SEX_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CITIZENIDCARD_SEX_TYPE.java
new file mode 100644
index 0000000..d4ac88e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CITIZENIDCARD_SEX_TYPE.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+
+public enum EM_CITIZENIDCARD_SEX_TYPE {
+ /**
+ * 未知
+ */
+ EM_CITIZENIDCARD_SEX_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 男
+ */
+ EM_CITIZENIDCARD_SEX_TYPE_MALE(1, "男"),
+ /**
+ * 女
+ */
+ EM_CITIZENIDCARD_SEX_TYPE_FEMALE(2, "女"),
+ /**
+ * 未说明
+ */
+ EM_CITIZENIDCARD_SEX_TYPE_UNTOLD(3, "未说明");
+
+ private int value;
+ private String note;
+
+ private EM_CITIZENIDCARD_SEX_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CITIZENIDCARD_SEX_TYPE enumType : EM_CITIZENIDCARD_SEX_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CITIZENIDCARD_SEX_TYPE enumType : EM_CITIZENIDCARD_SEX_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CITYMOTOR_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/EM_CITYMOTOR_STATUS.java
new file mode 100644
index 0000000..aa5ec77
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CITYMOTOR_STATUS.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 车辆状态
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:00
+ */
+public class EM_CITYMOTOR_STATUS extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_CITYMOTOR_STATUS_UNKNOWN = 0;
+ /**
+ * 驶入
+ */
+ public static final int EM_CITYMOTOR_STATUS_DRIVE_IN = 1;
+ /**
+ * 驶离
+ */
+ public static final int EM_CITYMOTOR_STATUS_DRIVE_OUT = 2;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CLASS_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CLASS_TYPE.java
new file mode 100644
index 0000000..540d9c6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CLASS_TYPE.java
@@ -0,0 +1,386 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author : 260611
+ * @description : 大类业务方案
+ * @since : Created in 2021/11/05 16:06
+ */
+
+public enum EM_CLASS_TYPE {
+ /**
+ * 未知业务
+ */
+ EM_CLASS_UNKNOWN(0, "未知业务"),
+ /**
+ * 视频浓缩
+ */
+ EM_CLASS_VIDEO_SYNOPSIS(1, "视频浓缩"),
+ /**
+ * 卡口
+ */
+ EM_CLASS_TRAFFIV_GATE(2, "卡口"),
+ /**
+ * 电警
+ */
+ EM_CLASS_ELECTRONIC_POLICE(3, "电警"),
+ /**
+ * 单球违停
+ */
+ EM_CLASS_SINGLE_PTZ_PARKING(4, "单球违停"),
+ /**
+ * 主从违停
+ */
+ EM_CLASS_PTZ_PARKINBG(5, "主从违停"),
+ /**
+ * 交通事件 Traffic
+ */
+ EM_CLASS_TRAFFIC(6, "交通事件 Traffic "),
+ /**
+ * 通用行为分析 Normal
+ */
+ EM_CLASS_NORMAL(7, "通用行为分析 Normal "),
+ /**
+ *
+ */
+ EM_CLASS_PS(8, ""),
+ /**
+ * 金融行为分析 ATM
+ */
+ EM_CLASS_ATM(9, "金融行为分析 ATM "),
+ /**
+ * 地铁行为分析
+ */
+ EM_CLASS_METRO(10, "地铁行为分析"),
+ /**
+ * 目标检测 FaceDetection
+ */
+ EM_CLASS_FACE_DETECTION(11, "目标检测 FaceDetection "),
+ /**
+ * 目标识别 FaceRecognition
+ */
+ EM_CLASS_FACE_RECOGNITION(12, "目标识别 FaceRecognition "),
+ /**
+ * 人数统计 NumberStat
+ */
+ EM_CLASS_NUMBER_STAT(13, "人数统计 NumberStat "),
+ /**
+ * 热度图 HeatMap
+ */
+ EM_CLASS_HEAT_MAP(14, "热度图 HeatMap "),
+ /**
+ * 视频诊断 VideoDiagnosis
+ */
+ EM_CLASS_VIDEO_DIAGNOSIS(15, "视频诊断 VideoDiagnosis "),
+ /**
+ * 视频增强
+ */
+ EM_CLASS_VIDEO_ENHANCE(16, "视频增强"),
+ /**
+ * 烟火检测
+ */
+ EM_CLASS_SMOKEFIRE_DETECT(17, "烟火检测"),
+ /**
+ * 车辆特征识别 VehicleAnalyse
+ */
+ EM_CLASS_VEHICLE_ANALYSE(18, "车辆特征识别 VehicleAnalyse "),
+ /**
+ * 人员特征识别
+ */
+ EM_CLASS_PERSON_FEATURE(19, "人员特征识别"),
+ /**
+ * 多预置点目标检测 SDFaceDetect
+ */
+ EM_CLASS_SDFACEDETECTION(20, "多预置点目标检测 SDFaceDetect "),
+ /**
+ * 球机热度图计划 HeatMapPlan
+ */
+ EM_CLASS_HEAT_MAP_PLAN(21, "球机热度图计划 HeatMapPlan "),
+ /**
+ * 球机客流量统计计划 NumberStatPlan
+ */
+ EM_CLASS_NUMBERSTAT_PLAN(22, "球机客流量统计计划 NumberStatPlan "),
+ /**
+ * 金融目标检测,包括正常人脸、异常人脸、相邻人脸、头盔人脸等针对ATM场景特殊优化
+ */
+ EM_CLASS_ATMFD(23, "金融目标检测,包括正常人脸、异常人脸、相邻人脸、头盔人脸等针对ATM场景特殊优化"),
+ /**
+ * 高速交通事件检测 Highway
+ */
+ EM_CLASS_HIGHWAY(24, "高速交通事件检测 Highway "),
+ /**
+ * 城市交通事件检测 City
+ */
+ EM_CLASS_CITY(25, "城市交通事件检测 City "),
+ /**
+ * 民用简易跟踪 LeTrack
+ */
+ EM_CLASS_LETRACK(26, "民用简易跟踪 LeTrack "),
+ /**
+ * 打靶相机 SCR
+ */
+ EM_CLASS_SCR(27, "打靶相机 SCR "),
+ /**
+ * 立体视觉(双目) StereoVision
+ */
+ EM_CLASS_STEREO_VISION(28, "立体视觉(双目) StereoVision "),
+ /**
+ * 人体检测 HumanDetect
+ */
+ EM_CLASS_HUMANDETECT(29, "人体检测 HumanDetect "),
+ /**
+ * 人脸分析 FaceAnalysis
+ */
+ EM_CLASS_FACE_ANALYSIS(30, "人脸分析 FaceAnalysis "),
+ /**
+ * X光检测 XRayDetection
+ */
+ EM_CALSS_XRAY_DETECTION(31, "X光检测 XRayDetection "),
+ /**
+ * 双目相机客流量统计 StereoNumber
+ */
+ EM_CLASS_STEREO_NUMBER(32, "双目相机客流量统计 StereoNumber "),
+ /**
+ * 人群分布图
+ */
+ EM_CLASS_CROWDDISTRIMAP(33, "人群分布图"),
+ /**
+ * 目标检测
+ */
+ EM_CLASS_OBJECTDETECT(34, "目标检测"),
+ /**
+ * IVSS目标检测 FaceAttribute
+ */
+ EM_CLASS_FACEATTRIBUTE(35, "IVSS目标检测 FaceAttribute "),
+ /**
+ * IVSS目标识别 FaceCompare
+ */
+ EM_CLASS_FACECOMPARE(36, "IVSS目标识别 FaceCompare "),
+ /**
+ * 立体行为分析 StereoBehavior
+ */
+ EM_CALSS_STEREO_BEHAVIOR(37, "立体行为分析 StereoBehavior "),
+ /**
+ * 智慧城管 IntelliCityMgr
+ */
+ EM_CALSS_INTELLICITYMANAGER(38, "智慧城管 IntelliCityMgr "),
+ /**
+ * 防护舱(ATM舱内) ProtectiveCabin
+ */
+ EM_CALSS_PROTECTIVECABIN(39, "防护舱(ATM舱内) ProtectiveCabin "),
+ /**
+ * 飞机行为检测 AirplaneDetect
+ */
+ EM_CALSS_AIRPLANEDETECT(40, "飞机行为检测 AirplaneDetect "),
+ /**
+ * 人群态势(人群分布图服务) CrowdPosture
+ */
+ EM_CALSS_CROWDPOSTURE(41, "人群态势(人群分布图服务) CrowdPosture "),
+ /**
+ * 打电话检测 PhoneCallDetect
+ */
+ EM_CLASS_PHONECALLDETECT(42, "打电话检测 PhoneCallDetect "),
+ /**
+ * 烟雾检测 SmokeDetection
+ */
+ EM_CLASS_SMOKEDETECTION(43, "烟雾检测 SmokeDetection "),
+ /**
+ * 船只检测 BoatDetection
+ */
+ EM_CLASS_BOATDETECTION(44, "船只检测 BoatDetection "),
+ /**
+ * 吸烟检测 SmokingDetect
+ */
+ EM_CLASS_SMOKINGDETECT(45, "吸烟检测 SmokingDetect "),
+ /**
+ * 水利监测 WaterMonitor
+ */
+ EM_CLASS_WATERMONITOR(46, "水利监测 WaterMonitor "),
+ /**
+ * 生成图规则 GenerateGraphDetection
+ */
+ EM_CLASS_GENERATEGRAPHDETECTION(47, "生成图规则 GenerateGraphDetection "),
+ /**
+ * 交通停车 TrafficPark
+ */
+ EM_CLASS_TRAFFIC_PARK(48, "交通停车 TrafficPark "),
+ /**
+ * 作业检测 OperateMonitor
+ */
+ EM_CLASS_OPERATEMONITOR(49, "作业检测 OperateMonitor "),
+ /**
+ * 智慧零售大类 IntelliRetail
+ */
+ EM_CLASS_INTELLI_RETAIL(50, "智慧零售大类 IntelliRetail "),
+ /**
+ * 教育智慧课堂 ClassroomAnalyse
+ */
+ EM_CLASS_CLASSROOM_ANALYSE(51, "教育智慧课堂 ClassroomAnalyse "),
+ /**
+ * 特征向量提取大类 FeatureAbstract
+ */
+ EM_CLASS_FEATURE_ABSTRACT(52, "特征向量提取大类 FeatureAbstract "),
+ /**
+ * 人体检测大类 FaceBodyDetect
+ */
+ EM_CLASS_FACEBODY_DETECT(53, "人体检测大类 FaceBodyDetect "),
+ /**
+ * 人体识别大类 FaceBodyAnalyse
+ */
+ EM_CLASS_FACEBODY_ANALYSE(54, "人体识别大类 FaceBodyAnalyse "),
+ /**
+ * 车辆密度 VehiclesDistri
+ */
+ EM_CLASS_VEHICLES_DISTRI(55, "车辆密度 VehiclesDistri "),
+ /**
+ * 智慧养殖检测 IntelliBreed
+ */
+ EM_CLASS_INTELLI_BREED(56, "智慧养殖检测 IntelliBreed "),
+ /**
+ *
+ */
+ EM_CLASS_INTELLI_PS(57, ""),
+ /**
+ * 电力检测 ElectricDetect
+ */
+ EM_CLASS_ELECTRIC_DETECT(58, "电力检测 ElectricDetect "),
+ /**
+ * 雷达检测 RadarDetect
+ */
+ EM_CLASS_RADAR_DETECT(59, "雷达检测 RadarDetect "),
+ /**
+ * 车位检测大类 ParkingSpace
+ */
+ EM_CLASS_PARKINGSPACE(60, "车位检测大类 ParkingSpace "),
+ /**
+ * 智慧金融 IntelliFinance
+ */
+ EM_CLASS_INTELLI_FINANCE(61, "智慧金融 IntelliFinance "),
+ /**
+ * 人群异常检测 CrowdAbnormal
+ */
+ EM_CLASS_CROWD_ABNORMAL(62, "人群异常检测 CrowdAbnormal "),
+ /**
+ * 人体温智能检测 AnatomyTempDetect
+ */
+ EM_CLASS_ANATOMY_TEMP_DETECT(63, "人体温智能检测 AnatomyTempDetect "),
+ /**
+ * 天气监控 WeatherMonitor
+ */
+ EM_CLASS_WEATHER_MONITOR(64, "天气监控 WeatherMonitor "),
+ /**
+ * 电梯门禁 ElevatorAccessControl
+ */
+ EM_CLASS_ELEVATOR_ACCESS_CONTROL(65, "电梯门禁 ElevatorAccessControl "),
+ /**
+ * 违章建筑 BreakRuleBuilding
+ */
+ EM_CLASS_BREAK_RULE_BUILDING(66, "违章建筑 BreakRuleBuilding "),
+ /**
+ * 异物检测 ForeignDetection
+ */
+ EM_CLASS_FOREIGN_DETECT(67, "异物检测 ForeignDetection "),
+ /**
+ * 全景交通 PanoramaTraffic
+ */
+ EM_CLASS_PANORAMA_TRAFFIC(68, "全景交通 PanoramaTraffic "),
+ /**
+ * 传送带阻塞 ConveyorBlock
+ */
+ EM_CLASS_CONVEY_OR_BLOCK(69, "传送带阻塞 ConveyorBlock "),
+ /**
+ * 厨房有害动物检测 KitchenAnimal
+ */
+ EM_CLASS_KITCHEN_ANIMAL(70, "厨房有害动物检测 KitchenAnimal "),
+ /**
+ * 万物检测 AllSeeingEye
+ */
+ EM_CLASS_ALLSEEINGEYE(71, "万物检测 AllSeeingEye "),
+ /**
+ * 智慧消防 IntelliFireControl
+ */
+ EM_CLASS_INTELLI_FIRE_CONTROL(72, "智慧消防 IntelliFireControl "),
+ /**
+ * 传送带检测 ConveyerBelt
+ */
+ EM_CLASS_CONVERYER_BELT(73, "传送带检测 ConveyerBelt "),
+ /**
+ * 智慧物流 IntelliLogistics
+ */
+ EM_CLASS_INTELLI_LOGISTICS(74, "智慧物流 IntelliLogistics "),
+ /**
+ * 烟火检测 SmokeFire
+ */
+ EM_CLASS_SMOKE_FIRE(75, "烟火检测 SmokeFire "),
+ /**
+ * 物品监控 ObjectMonitor
+ */
+ EM_CLASS_OBJECT_MONITOR(76, "物品监控 ObjectMonitor "),
+ /**
+ * 智能停车 IntelliParking
+ */
+ EM_CLASS_INTELLI_PARKING(77, "智能停车 IntelliParking "),
+ /**
+ * 智慧消防 FireControl
+ */
+ EM_CLASS_FIRE_CONTROL(78, "智慧消防 FireControl "),
+ /**
+ * 动物检测 AnimalDetection
+ */
+ EM_CLASS_ANIMAL_DETECTION(79, "动物检测 AnimalDetection "),
+ /**
+ * 火警监控 FireControlMonitor
+ */
+ EM_CLASS_FIRE_CONTROL_MONITOR(80, "火警监控 FireControlMonitor "),
+ /**
+ * 鱼群监测 FishMonitor
+ */
+ EM_CLASS_FISH_MONITOR(81, "鱼群监测 FishMonitor "),
+ /**
+ * 工程车检测 ShopTruckDetect
+ */
+ EM_CLASS_SHOPTRUCK_DETECT(82, "工程车检测 ShopTruckDetect ");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CLASS_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CLASS_TYPE enumType : EM_CLASS_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CLASS_TYPE enumType : EM_CLASS_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_CLASS_TYPE getEnum(int value) {
+ for (EM_CLASS_TYPE e : EM_CLASS_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_CLASS_TYPE.EM_CLASS_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CLOSE_UP_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CLOSE_UP_MODE.java
new file mode 100644
index 0000000..01817e9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CLOSE_UP_MODE.java
@@ -0,0 +1,63 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 系统联动特写模式
+*/
+public enum EM_CLOSE_UP_MODE
+{
+ /**
+ * 未知
+ */
+ EM_CLOSE_UP_MODE_UNKNOWN(0, "未知"),
+ /**
+ * 不联动
+ */
+ EM_CLOSE_UP_MODE_NO_LINKAGE(1, "不联动"),
+ /**
+ * 跟踪模式
+ */
+ EM_CLOSE_UP_MODE_TRACK_MODE(2, "跟踪模式"),
+ /**
+ * 固定模式
+ */
+ EM_CLOSE_UP_MODE_FIXED_MODE(3, "固定模式"),
+ /**
+ * 指定区域模式
+ */
+ EM_CLOSE_UP_MODE_DESIGNED_REGION_MODE(4, "指定区域模式");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CLOSE_UP_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CLOSE_UP_MODE enumType : EM_CLOSE_UP_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CLOSE_UP_MODE enumType : EM_CLOSE_UP_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CLOTHES_COLOR.java b/src/main/java/com/netsdk/lib/enumeration/EM_CLOTHES_COLOR.java
new file mode 100644
index 0000000..1195f80
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CLOTHES_COLOR.java
@@ -0,0 +1,138 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 衣服颜色
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 19:35
+ */
+public class EM_CLOTHES_COLOR extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_CLOTHES_COLOR_UNKNOWN = 0;
+ /**
+ * 白色
+ */
+ public static final int EM_CLOTHES_COLOR_WHITE = 1;
+ /**
+ * 橙色
+ */
+ public static final int EM_CLOTHES_COLOR_ORANGE = 2;
+ /**
+ * 粉色
+ */
+ public static final int EM_CLOTHES_COLOR_PINK = 3;
+ /**
+ * 黑色
+ */
+ public static final int EM_CLOTHES_COLOR_BLACK = 4;
+ /**
+ * 红色
+ */
+ public static final int EM_CLOTHES_COLOR_RED = 5;
+ /**
+ * 黄色
+ */
+ public static final int EM_CLOTHES_COLOR_YELLOW = 6;
+ /**
+ * 灰色
+ */
+ public static final int EM_CLOTHES_COLOR_GRAY = 7;
+ /**
+ * 蓝色
+ */
+ public static final int EM_CLOTHES_COLOR_BLUE = 8;
+ /**
+ * 绿色
+ */
+ public static final int EM_CLOTHES_COLOR_GREEN = 9;
+ /**
+ * 紫色
+ */
+ public static final int EM_CLOTHES_COLOR_PURPLE = 10;
+ /**
+ * 棕色
+ */
+ public static final int EM_CLOTHES_COLOR_BROWN = 11;
+ /**
+ * 深橙色
+ */
+ public static final int EM_CLOTHES_COLOR_DARKORANGE = 12;
+ /**
+ * 其他颜色(该选项设备协议已不支持, 此处为了兼容保留)
+ */
+ public static final int EM_CLOTHES_COLOR_OTHER = 13; // 其他颜色
+ /**
+ * 银色
+ */
+ public static final int EM_CLOTHES_COLOR_SILVER = 14;
+ /**
+ * 暗紫罗兰色
+ */
+ public static final int EM_CLOTHES_COLOR_DARKVIOLET = 15;
+ /**
+ * 栗色
+ */
+ public static final int EM_CLOTHES_COLOR_MARRON = 16;
+ /**
+ * 暗灰色
+ */
+ public static final int EM_CLOTHES_COLOR_DIMGRAY = 17;
+ /**
+ * 白烟色
+ */
+ public static final int EM_CLOTHES_COLOR_WHITESMOKE = 18;
+ /**
+ * 浅玫瑰色
+ */
+ public static final int EM_CLOTHES_COLOR_MISTYROSE = 19;
+ /**
+ * 番茄红色
+ */
+ public static final int EM_CLOTHES_COLOR_TOMATO = 20;
+ /**
+ * 橄榄色
+ */
+ public static final int EM_CLOTHES_COLOR_OLIVE = 21;
+ /**
+ * 金色
+ */
+ public static final int EM_CLOTHES_COLOR_GLOD = 22;
+ /**
+ * 暗橄榄绿色
+ */
+ public static final int EM_CLOTHES_COLOR_DARKOLIVEGREEN = 23;
+ /**
+ * 黄绿色
+ */
+ public static final int EM_CLOTHES_COLOR_CHARTREUSE = 24;
+ /**
+ * 绿黄色
+ */
+ public static final int EM_CLOTHES_COLOR_GREENYELLOW = 25;
+ /**
+ * 森林绿色
+ */
+ public static final int EM_CLOTHES_COLOR_FORESTGREEN = 26;
+ /**
+ * 海洋绿色
+ */
+ public static final int EM_CLOTHES_COLOR_SEAGREEN = 27;
+ /**
+ * 深天蓝色
+ */
+ public static final int EM_CLOTHES_COLOR_DEEPSKYBLUE = 28;
+ /**
+ * 青色
+ */
+ public static final int EM_CLOTHES_COLOR_CYAN = 29;
+ /**
+ * 浅绿色
+ */
+ public static final int EM_CLOTHES_COLOR_LIGHTGREEN = 30;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CLOTHES_LEGAL_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CLOTHES_LEGAL_STATE.java
new file mode 100644
index 0000000..c95a897
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CLOTHES_LEGAL_STATE.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author : 260611
+ * @description : 工作服合法状态
+ * @since : Created in 2022/03/10 11:17
+ */
+
+public enum EM_CLOTHES_LEGAL_STATE {
+ /**
+ * 未知
+ */
+ EM_CLOTHES_LEGAL_STATE_UNKNOWN(0, "未知"),
+ /**
+ * 不合法
+ */
+ EM_CLOTHES_LEGAL_STATE_WRONGFUL(1, "不合法"),
+ /**
+ * 合法
+ */
+ EM_CLOTHES_LEGAL_STATE_LEGAL(2, "合法");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CLOTHES_LEGAL_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CLOTHES_LEGAL_STATE enumType : EM_CLOTHES_LEGAL_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CLOTHES_LEGAL_STATE enumType : EM_CLOTHES_LEGAL_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_CLOTHES_LEGAL_STATE getEnum(int value) {
+ for (EM_CLOTHES_LEGAL_STATE e : EM_CLOTHES_LEGAL_STATE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_CLOTHES_LEGAL_STATE.EM_CLOTHES_LEGAL_STATE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CLOTHES_PATTERN.java b/src/main/java/com/netsdk/lib/enumeration/EM_CLOTHES_PATTERN.java
new file mode 100644
index 0000000..5c9d5fb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CLOTHES_PATTERN.java
@@ -0,0 +1,46 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 衣服图案
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 19:35
+ */
+public class EM_CLOTHES_PATTERN extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_CLOTHES_PATTERN_UNKNOWN = 0;
+ /**
+ * 纯色
+ */
+ public static final int EM_CLOTHES_PATTERN_PURE = 1;
+ /**
+ * 条纹
+ */
+ public static final int EM_CLOTHES_PATTERN_STRIPE = 2;
+ /**
+ * 图案
+ */
+ public static final int EM_CLOTHES_PATTERN_PATTERN = 3;
+ /**
+ * 缝隙
+ */
+ public static final int EM_CLOTHES_PATTERN_GAP = 4;
+ /**
+ * 格子
+ */
+ public static final int EM_CLOTHES_PATTERN_LATTICE = 5;
+ /**
+ * 拼接
+ */
+ public static final int EM_CLOTHES_PATTERN_SPLITJOIN = 6;
+ /**
+ * 碎花
+ */
+ public static final int EM_CLOTHES_PATTERN_FLORAL = 7;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CLOTHES_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CLOTHES_TYPE.java
new file mode 100644
index 0000000..5d98595
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CLOTHES_TYPE.java
@@ -0,0 +1,50 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * EM_CLOTHES_TYPE
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_CLOTHES_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_CLOTHES_TYPE_UNKNOWN = 0;
+ /**
+ * 长袖
+ */
+ public static final int EM_CLOTHES_TYPE_LONG_SLEEVE = 1;
+ /**
+ * 短袖
+ */
+ public static final int EM_CLOTHES_TYPE_SHORT_SLEEVE = 2;
+ /**
+ * 长裤
+ */
+ public static final int EM_CLOTHES_TYPE_TROUSERS = 3;
+ /**
+ * 短裤
+ */
+ public static final int EM_CLOTHES_TYPE_SHORTS = 4;
+ /**
+ * 裙子
+ */
+ public static final int EM_CLOTHES_TYPE_SKIRT = 5;
+ /**
+ * 背心
+ */
+ public static final int EM_CLOTHES_TYPE_WAISTCOAT = 6;
+ /**
+ * 超短裤
+ */
+ public static final int EM_CLOTHES_TYPE_MINIPANTS = 7;
+ /**
+ * 超短裙
+ */
+ public static final int EM_CLOTHES_TYPE_MINISKIRT = 8;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_COAT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_COAT_TYPE.java
new file mode 100644
index 0000000..895249d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_COAT_TYPE.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 上衣类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 19:35
+ */
+public class EM_COAT_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_COAT_TYPE_UNKNOWN = 0;
+ /**
+ * 长袖
+ */
+ public static final int EM_COAT_TYPE_LONG_SLEEVE = 1;
+ /**
+ * 短袖
+ */
+ public static final int EM_COAT_TYPE_COTTA = 2;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CODEID_SENSE_METHOD_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CODEID_SENSE_METHOD_TYPE.java
new file mode 100644
index 0000000..932a81c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CODEID_SENSE_METHOD_TYPE.java
@@ -0,0 +1,88 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 传感器方式
+ * @date 2023/03/16 14:52:52
+ */
+public enum EM_CODEID_SENSE_METHOD_TYPE {
+ /**
+ * 未知的
+ */
+ EM_CODEID_SENSE_METHOD_TYPE_UNKOWN(0, "未知的"),
+ /**
+ * 门磁
+ */
+ EM_CODEID_SENSE_METHOD_TYPE_DOOR_MAGNETISM(1, "门磁"),
+ /**
+ * 燃气传感
+ */
+ EM_CODEID_SENSE_METHOD_TYPE_GAS_SENSOR(2, "燃气传感"),
+ /**
+ * 幕帘传感器
+ */
+ EM_CODEID_SENSE_METHOD_TYPE_CURTAIN_SENSOR(3, "幕帘传感器"),
+ /**
+ * 移动传感器
+ */
+ EM_CODEID_SENSE_METHOD_TYPE_MOBILE_SENSOR(4, "移动传感器"),
+ /**
+ * 被动红外传感器
+ */
+ EM_CODEID_SENSE_METHOD_TYPE_PASSIVEINFRA(5, "被动红外传感器"),
+ /**
+ * 紧急按钮
+ */
+ EM_CODEID_SENSE_METHOD_TYPE_URGENCY_BUTTON(6, "紧急按钮"),
+ /**
+ * 烟雾传感器
+ */
+ EM_CODEID_SENSE_METHOD_TYPE_SMOKING_SENSOR(7, "烟雾传感器"),
+ /**
+ * 双鉴传感器(红外+微波)
+ */
+ EM_CODEID_SENSE_METHOD_TYPE_DOUBLEMETHOD(8, "双鉴传感器(红外+微波)"),
+ /**
+ * 水浸传感器
+ */
+ EM_CODEID_SENSE_METHOD_TYPE_WATER_SENSOR(9, "水浸传感器"),
+ /**
+ * 三技术
+ */
+ EM_CODEID_SENSE_METHOD_TYPE_THREEMETHOD(10, "三技术");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CODEID_SENSE_METHOD_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CODEID_SENSE_METHOD_TYPE enumType : EM_CODEID_SENSE_METHOD_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CODEID_SENSE_METHOD_TYPE enumType : EM_CODEID_SENSE_METHOD_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_COLLECTIVITY_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_COLLECTIVITY_STATE.java
new file mode 100644
index 0000000..aeca414
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_COLLECTIVITY_STATE.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 诊断结果状态
+ * @date 2021/2/22
+ */
+public enum EM_COLLECTIVITY_STATE {
+ /** 成功 */
+ EM_COLLECTIVITY_STATE_SUCCESSED,
+ /** 失败 */
+ EM_COLLECTIVITY_STATE_FAILED;
+
+ public EM_COLLECTIVITY_STATE getCollectivityState(int state) {
+ for (EM_COLLECTIVITY_STATE collectivityState : EM_COLLECTIVITY_STATE.values()) {
+ if (collectivityState.ordinal() == state) {
+ return collectivityState;
+ }
+ }
+ return EM_COLLECTIVITY_STATE_FAILED;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_COLLISION_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_COLLISION_MODE.java
new file mode 100644
index 0000000..1e1d672
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_COLLISION_MODE.java
@@ -0,0 +1,43 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 闸机防冲撞模式
+ * @date 2021/2/7
+ */
+public enum EM_COLLISION_MODE {
+ /** 未知 */
+ EM_COLLISION_MODE_UNKNOWN(-1, "未知"),
+ /** 2s松开离合 */
+ EM_COLLISION_MODE_2S(0, "2s松开离合"),
+ /** 5s松开离合 */
+ EM_COLLISION_MODE_5S(1, "5s松开离合"),
+ /** 人员离开松开离合 */
+ EM_COLLISION_MODE_LEAVING(2, "人员离开松开离合");
+
+ private int mode;
+ private String desc;
+
+ EM_COLLISION_MODE(int mode, String desc) {
+ this.mode = mode;
+ this.desc = desc;
+ }
+
+ public int getMode() {
+ return mode;
+ }
+
+ public void setMode(int mode) {
+ this.mode = mode;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public void setDesc(String desc) {
+ this.desc = desc;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_COMMON_SEAT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_COMMON_SEAT_TYPE.java
new file mode 100644
index 0000000..e8a725d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_COMMON_SEAT_TYPE.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 默认检测最大座驾个数
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_COMMON_SEAT_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未识别
+ */
+ public static final int COMMON_SEAT_TYPE_UNKNOWN = 0;
+ /**
+ * 主驾驶
+ */
+ public static final int COMMON_SEAT_TYPE_MAIN = 1;
+ /**
+ * 副驾驶
+ */
+ public static final int COMMON_SEAT_TYPE_SLAVE = 2;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_COMM_ATTACHMENT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_COMM_ATTACHMENT_TYPE.java
new file mode 100644
index 0000000..b9b11bb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_COMM_ATTACHMENT_TYPE.java
@@ -0,0 +1,38 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 车辆物件类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_COMM_ATTACHMENT_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知类型
+ */
+ public static final int COMM_ATTACHMENT_TYPE_UNKNOWN = 0;
+ /**
+ * 摆件
+ */
+ public static final int COMM_ATTACHMENT_TYPE_FURNITURE = 1;
+ /**
+ * 挂件
+ */
+ public static final int COMM_ATTACHMENT_TYPE_PENDANT = 2;
+ /**
+ * 纸巾盒
+ */
+ public static final int COMM_ATTACHMENT_TYPE_TISSUEBOX = 3;
+ /**
+ * 危险品
+ */
+ public static final int COMM_ATTACHMENT_TYPE_DANGER = 4;
+ /**
+ * 香水
+ */
+ public static final int COMM_ATTACHMENT_TYPE_PERFUMEBOX = 5;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_COMPARE_RESULT.java b/src/main/java/com/netsdk/lib/enumeration/EM_COMPARE_RESULT.java
new file mode 100644
index 0000000..8b73365
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_COMPARE_RESULT.java
@@ -0,0 +1,60 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 比对结果
+ * @date 2021/08/15
+ */
+public enum EM_COMPARE_RESULT {
+ // 未知
+ EM_COMPARE_RESULT_UNKNOWN(-1, "未知"),
+ // 成功
+ EM_COMPARE_RESULT_SUCCESS(0, "成功"),
+ // 其他错误
+ EM_COMPARE_RESULT_OTHERERROR(1, "其他错误"),
+ // 不在人脸库中
+ EM_COMPARE_RESULT_NOTINDATABASE(2, "不在人脸库中"),
+ // 超过单日进门次数限制
+ EM_COMPARE_RESULT_EXCEED_SINGLE_DAY_ENTER_TIMES(3, "超过单日进门次数限制"),
+ // 无进门记录,离开失败
+ EM_COMPARE_RESULT_NO_ENTER_RECORD_LEAVE_FAIL(4, "无进门记录,离开失败"),
+ // 区域人员已满
+ EM_COMPARE_RESULT_AREA_FULL(5, "区域人员已满"),
+ // 防反潜验证失败(没有正常出门记录再次进门)
+ EM_COMPARE_RESULT_REPEATENTER_CHECK_FAIL(6, "防反潜验证失败(没有正常出门记录再次进门)");
+
+ private int value;
+ private String note;
+
+ private EM_COMPARE_RESULT(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_COMPARE_RESULT enumType : EM_COMPARE_RESULT.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_COMPARE_RESULT enumType : EM_COMPARE_RESULT.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_COMPLIANCE_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_COMPLIANCE_STATE.java
new file mode 100644
index 0000000..409de86
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_COMPLIANCE_STATE.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author : 260611
+ * @description : 合规检测状态
+ * @since : Created in 2022/03/10 11:17
+ */
+
+public enum EM_COMPLIANCE_STATE {
+ /**
+ * 合规
+ */
+ EM_COMPLIANCE_STATE_COMPLIANT(0, "合规"),
+ /**
+ * 不合规
+ */
+ EM_COMPLIANCE_STATE_NONCOMPLIANT(1, "不合规"),
+ /**
+ * 未知
+ */
+ EM_COMPLIANCE_STATE_UNKNOWN(2, "未知");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_COMPLIANCE_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_COMPLIANCE_STATE enumType : EM_COMPLIANCE_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_COMPLIANCE_STATE enumType : EM_COMPLIANCE_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_COMPLIANCE_STATE getEnum(int value) {
+ for (EM_COMPLIANCE_STATE e : EM_COMPLIANCE_STATE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_COMPLIANCE_STATE.EM_COMPLIANCE_STATE_COMPLIANT;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_COMPLIANTDETAIL_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_COMPLIANTDETAIL_TYPE.java
new file mode 100644
index 0000000..dd29ffc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_COMPLIANTDETAIL_TYPE.java
@@ -0,0 +1,42 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 判断是否合规的属性列表信息
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 19:35
+ */
+public class EM_COMPLIANTDETAIL_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_COMPLIANTDETAIL_UNKNOWN = 0;
+ /**
+ * 面具
+ */
+ public static final int EM_COMPLIANTDETAIL_MASK = 1;
+ /**
+ * 头盔
+ */
+ public static final int EM_COMPLIANTDETAIL_HELMET = 2;
+ /**
+ * 反光背心
+ */
+ public static final int EM_COMPLIANTDETAIL_VEST = 3;
+ /**
+ * 反光眼镜
+ */
+ public static final int EM_COMPLIANTDETAIL_GLASSESS = 4;
+ /**
+ * 上装颜色
+ */
+ public static final int EM_COMPLIANTDETAIL_COATCOLOR = 5;
+ /**
+ * 下装颜色
+ */
+ public static final int EM_COMPLIANTDETAIL_TROUSESCOLOR = 6;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_COMPOSIT_CHANNEL_BIND_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_COMPOSIT_CHANNEL_BIND_MODE.java
new file mode 100644
index 0000000..ccd65d2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_COMPOSIT_CHANNEL_BIND_MODE.java
@@ -0,0 +1,69 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 默认组合通道绑定模式
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/27 15:32
+ */
+public enum EM_COMPOSIT_CHANNEL_BIND_MODE {
+ /**
+ * 未知
+ */
+ EM_COMPOSIT_CHANNEL_BIND_MODE_UNKNOWN(0, "未知"),
+ /**
+ * 自动
+ */
+ EM_COMPOSIT_CHANNEL_BIND_MODE_AUTOMATIC(1, "自动"),
+ /**
+ * 半自动
+ */
+ EM_COMPOSIT_CHANNEL_BIND_MODE_SEMIAUTOMATIC(2, "半自动"),
+ /**
+ * 手动
+ */
+ EM_COMPOSIT_CHANNEL_BIND_MODE_MANUAL(3, "手动");
+
+ private int value;
+ private String note;
+
+ EM_COMPOSIT_CHANNEL_BIND_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_COMPOSIT_CHANNEL_BIND_MODE enumType : EM_COMPOSIT_CHANNEL_BIND_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_COMPOSIT_CHANNEL_BIND_MODE enumType : EM_COMPOSIT_CHANNEL_BIND_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_COMPOSIT_CHANNEL_BIND_MODE getEnum(int value) {
+ for (EM_COMPOSIT_CHANNEL_BIND_MODE e : EM_COMPOSIT_CHANNEL_BIND_MODE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_COMPOSIT_CHANNEL_BIND_MODE.EM_COMPOSIT_CHANNEL_BIND_MODE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CONSUMPTION_EVENT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CONSUMPTION_EVENT_TYPE.java
new file mode 100644
index 0000000..93a79cc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CONSUMPTION_EVENT_TYPE.java
@@ -0,0 +1,73 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 消费记录类型
+* @date 2022/03/07 11:45:31
+*/
+public enum EM_CONSUMPTION_EVENT_TYPE {
+/**
+未知
+*/
+ EM_CONSUMPTION_EVENT_TYPE_UNKNOWN(-1, "未知"),
+/**
+定额消费事件
+*/
+ EM_CONSUMPTION_EVENT_TYPE_QUOTA(0, "定额消费事件"),
+/**
+非定额消费事件
+*/
+ EM_CONSUMPTION_EVENT_TYPE_NONQUOTA(1, "非定额消费事件"),
+/**
+充值事件
+*/
+ EM_CONSUMPTION_EVENT_TYPE_DEPOSIT(2, "充值事件"),
+/**
+末次返还事件
+*/
+ EM_CONSUMPTION_EVENT_TYPE_RESTORE(3, "末次返还事件");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_CONSUMPTION_EVENT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_CONSUMPTION_EVENT_TYPE enumType : EM_CONSUMPTION_EVENT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_CONSUMPTION_EVENT_TYPE enumType : EM_CONSUMPTION_EVENT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_CONSUMPTION_EVENT_TYPE getEnum(int value) {
+ for (EM_CONSUMPTION_EVENT_TYPE e : EM_CONSUMPTION_EVENT_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_CONSUMPTION_EVENT_TYPE.EM_CONSUMPTION_EVENT_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CONSUMPTION_RECORD_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CONSUMPTION_RECORD_TYPE.java
new file mode 100644
index 0000000..ea701a2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CONSUMPTION_RECORD_TYPE.java
@@ -0,0 +1,69 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 消费记录类型
+* @date 2022/03/08 17:16:39
+*/
+public enum EM_CONSUMPTION_RECORD_TYPE {
+/**
+未知
+*/
+ EM_CONSUMPTION_RECORD_TYPE_UNKNOWN(-1, "未知"),
+/**
+定额消费记录
+*/
+ EM_CONSUMPTION_RECORD_TYPE_QUOTA(0, "定额消费记录"),
+/**
+非定额消费记录
+*/
+ EM_CONSUMPTION_RECORD_TYPE_NONQUOTA(1, "非定额消费记录"),
+/**
+充值记录
+*/
+ EM_CONSUMPTION_RECORD_TYPE_DEPOSIT(2, "充值记录");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_CONSUMPTION_RECORD_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_CONSUMPTION_RECORD_TYPE enumType : EM_CONSUMPTION_RECORD_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_CONSUMPTION_RECORD_TYPE enumType : EM_CONSUMPTION_RECORD_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_CONSUMPTION_RECORD_TYPE getEnum(int value) {
+ for (EM_CONSUMPTION_RECORD_TYPE e : EM_CONSUMPTION_RECORD_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_CONSUMPTION_RECORD_TYPE.EM_CONSUMPTION_RECORD_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CONSUMPTION_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/EM_CONSUMPTION_STATUS.java
new file mode 100644
index 0000000..dfee791
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CONSUMPTION_STATUS.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 消费结果
+* @date 2022/03/07 11:45:30
+*/
+public enum EM_CONSUMPTION_STATUS {
+/**
+未知
+*/
+ EM_CONSUMPTION_STATUS_UNKNOWN(-1, "未知"),
+/**
+失败
+*/
+ EM_CONSUMPTION_STATUS_FAIL(0, "失败"),
+/**
+成功
+*/
+ EM_CONSUMPTION_STATUS_SUCC(1, "成功");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_CONSUMPTION_STATUS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_CONSUMPTION_STATUS enumType : EM_CONSUMPTION_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_CONSUMPTION_STATUS enumType : EM_CONSUMPTION_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_CONSUMPTION_STATUS getEnum(int value) {
+ for (EM_CONSUMPTION_STATUS e : EM_CONSUMPTION_STATUS.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_CONSUMPTION_STATUS.EM_CONSUMPTION_STATUS_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CONTROL_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CONTROL_MODE.java
new file mode 100644
index 0000000..0a84330
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CONTROL_MODE.java
@@ -0,0 +1,64 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 控制模式
+ * @date 2021/09/01
+ */
+public enum EM_CONTROL_MODE {
+ // 未知
+ EM_CONTROL_UNKNOWN(0, "未知"),
+ // 黄闪控制
+ EM_CONTROL_YELLOW_FLASH(1, "黄闪控制"),
+ // 多时段控制
+ EM_CONTROL_MULITI_TIME(2, "多时段控制"),
+ // 手动控制
+ EM_CONTROL_MANUAL(3, "手动控制"),
+ // 感应控制
+ EM_CONTROL_INDUCTION(4, "感应控制"),
+ // 无电缆协调控制
+ EM_CONTROL_WIRELESS_COORDINATION(5, "无电缆协调控制"),
+ // 单点协调控制
+ EM_CONTROL_SINGLE_OPTIMIZATION(6, "单点协调控制"),
+ //公交信号优先
+ EM_CONTROL_BUS_SINGAL(7, "公交信号优先"),
+ // 紧急信号优先
+ EM_CONTROL_EMERGENCY_SINGAL(8, "紧急信号优先"),
+ // 其他
+ EM_CONTROL_OTHER(9, "其他");
+
+ private int value;
+ private String note;
+
+ private EM_CONTROL_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CONTROL_MODE enumType : EM_CONTROL_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CONTROL_MODE enumType : EM_CONTROL_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CONVEYOR_BELT_RULETYPE_RULE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CONVEYOR_BELT_RULETYPE_RULE_TYPE.java
new file mode 100644
index 0000000..6fa5439
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CONVEYOR_BELT_RULETYPE_RULE_TYPE.java
@@ -0,0 +1,63 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 传送带运动状态检测类型
+*/
+public enum EM_CONVEYOR_BELT_RULETYPE_RULE_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_CONVEYOR_BELT_RULETYPE_RULE_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 物品从有到无
+ */
+ EM_CONVEYOR_BELT_RULETYPE_RULE_TYPE_STH_TO_NTH(1, "物品从有到无"),
+ /**
+ * 物品从无到有
+ */
+ EM_CONVEYOR_BELT_RULETYPE_RULE_TYPE_NTH_TO_STH(2, "物品从无到有"),
+ /**
+ * 运动到静止
+ */
+ EM_CONVEYOR_BELT_RULETYPE_RULE_TYPE_MOVE_TO_STOP(3, "运动到静止"),
+ /**
+ * 静止到运动
+ */
+ EM_CONVEYOR_BELT_RULETYPE_RULE_TYPE_STOP_TO_MOVE(4, "静止到运动");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CONVEYOR_BELT_RULETYPE_RULE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CONVEYOR_BELT_RULETYPE_RULE_TYPE enumType : EM_CONVEYOR_BELT_RULETYPE_RULE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CONVEYOR_BELT_RULETYPE_RULE_TYPE enumType : EM_CONVEYOR_BELT_RULETYPE_RULE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_COORDINATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_COORDINATE_TYPE.java
new file mode 100644
index 0000000..dba071b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_COORDINATE_TYPE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 260611
+ * @description 坐标系类型
+ * @date 2022/11/21 17:53:12
+ */
+public enum EM_COORDINATE_TYPE {
+ /**
+ * 未知
+ */
+ EM_COORDINATE_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 绝对坐标
+ */
+ EM_COORDINATE_TYPE_ABSOLUTE(1, "绝对坐标"),
+ /**
+ * 8192坐标
+ */
+ EM_COORDINATE_TYPE_8192(2, "8192坐标");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_COORDINATE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_COORDINATE_TYPE enumType : EM_COORDINATE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_COORDINATE_TYPE enumType : EM_COORDINATE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_COORDINATE_TYPE getEnum(int value) {
+ for (EM_COORDINATE_TYPE e : EM_COORDINATE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_COORDINATE_TYPE.EM_COORDINATE_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_COUNTDOWN_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_COUNTDOWN_TYPE.java
new file mode 100644
index 0000000..94fbe89
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_COUNTDOWN_TYPE.java
@@ -0,0 +1,54 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 倒计时方式
+ * @date 2021/08/24
+ */
+public enum EM_COUNTDOWN_TYPE {
+ // 未知
+ EM_COUNTDOWN_TYPE_UNKNOWN(0, "未知"),
+ // 学习式
+ EM_COUNTDOWN_TYPE_LEARNING(1, "学习式"),
+ // 脉冲式
+ EM_COUNTDOWN_TYPE_PLUSE(2, "脉冲式"),
+ // 全程485式
+ EM_COUNTDOWN_TYPE_FULL485(3, "全程485式"),
+ // 半程485式
+ EM_COUNTDOWN_TYPE_HALFWAY485(4, "半程485式");
+
+ private int value;
+ private String note;
+
+ private EM_COUNTDOWN_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_COUNTDOWN_TYPE enumType : EM_COUNTDOWN_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_COUNTDOWN_TYPE enumType : EM_COUNTDOWN_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_COURSECOMPOSITE_OPERATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_COURSECOMPOSITE_OPERATE_TYPE.java
new file mode 100644
index 0000000..37fb492
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_COURSECOMPOSITE_OPERATE_TYPE.java
@@ -0,0 +1,85 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.structure.*;
+
+/**
+ * 录播主机组合通道操作
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 19:49
+ */
+public enum EM_COURSECOMPOSITE_OPERATE_TYPE {
+ /**
+ * 控制组合通道与逻辑通道,对应结构体
+ * pInParam = {@link NET_IN_COURSECOMPOSITE_LOCK_CONTROL}
+ * pOutParam = {@link NET_OUT_COURSECOMPOSITE_LOCK_CONTROL}
+ */
+ EM_COURSECOMPOSITE_TYPE_LOCK_CONTROL(0, "控制组合通道与逻辑通道"),
+ /**
+ * 获取组合通道与逻辑通道的锁定信息,对应结构体
+ * pInParam = {@link NET_IN_COURSECOMPOSITE_GET_LOCKINFO}
+ * pOutParam = {@link NET_OUT_COURSECOMPOSITE_GET_LOCKINFO}
+ */
+ EM_COURSECOMPOSITE_TYPE_GET_LOCKINFO(1, "获取组合通道与逻辑通道的锁定信息"),
+ /**
+ * 获取组合通道信息,对应结构体
+ * pInParam = {@link NET_IN_COURSECOMPOSITE_GET_INFO}
+ * pOutParam = {@link NET_OUT_COURSECOMPOSITE_GET_INFO}
+ */
+ EM_COURSECOMPOSITE_TYPE_GET_INFO(2, "获取组合通道信息"),
+ /**
+ * 设置组合通道信息,对应结构体
+ * pInParam = {@link NET_IN_COURSECOMPOSITE_SET_INFO}
+ * pOutParam = {@link NET_OUT_COURSECOMPOSITE_SET_INFO}
+ */
+ EM_COURSECOMPOSITE_TYPE_SET_INFO(3, "设置组合通道信息"),
+ /**
+ * 将组合通道信息更新到time时的信息,对应结构体
+ * pInParam = {@link NET_IN_COURSECOMPOSITE_UPDATE_INFO}
+ * pOutParam = {@link NET_OUT_COURSECOMPOSITE_UPDATE_INFO}
+ */
+ EM_COURSECOMPOSITE_TYPE_UPDATE_INFO(4, "将组合通道信息更新到time时的信息");
+
+ private int value;
+ private String note;
+
+ EM_COURSECOMPOSITE_OPERATE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_COURSECOMPOSITE_OPERATE_TYPE enumType : EM_COURSECOMPOSITE_OPERATE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_COURSECOMPOSITE_OPERATE_TYPE enumType : EM_COURSECOMPOSITE_OPERATE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_COURSECOMPOSITE_OPERATE_TYPE getEnum(int value) {
+ for (EM_COURSECOMPOSITE_OPERATE_TYPE e : EM_COURSECOMPOSITE_OPERATE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_COURSECOMPOSITE_OPERATE_TYPE.EM_COURSECOMPOSITE_TYPE_LOCK_CONTROL;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_COURSERECORD_OPERATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_COURSERECORD_OPERATE_TYPE.java
new file mode 100644
index 0000000..9db3f36
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_COURSERECORD_OPERATE_TYPE.java
@@ -0,0 +1,79 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.structure.*;
+
+/**
+ * 录播主机录像信息操作
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 19:17
+ */
+public enum EM_COURSERECORD_OPERATE_TYPE {
+ /**
+ * 获取教室录像信息,对应结构体
+ * pInParam = {@link NET_IN_COURSERECORD_GETINFO}
+ * pOutParam = {@link NET_OUT_COURSERECORD_GETINFO}
+ */
+ EM_COURSERECORDE_TYPE_GET_INFO(0, "获取教室录像信息"),
+ /**
+ * 设置教室录像信息,对应结构体
+ * pInParam = {@link NET_IN_COURSERECORD_SETINFO}
+ * pOutParam = {@link NET_OUT_COURSERECORD_SETINFO}
+ */
+ EM_COURSERECORDE_TYPE_SET_INFO(1, "设置教室录像信息"),
+ /**
+ * 将录像信息更新到time时的信息,对应结构体
+ * pInParam = {@link NET_IN_COURSERECORD_UPDATE_INFO}
+ * pOutParam = {@link NET_OUT_COURSERECORD_UPDATE_INFO}
+ */
+ EM_COURSERECORDE_TYPE_UPDATE_INFO(2, "将录像信息更新到time时的信息"),
+ /**
+ * 获取当前课程教室已录制时间,对应结构体
+ * pInParam = {@link NET_IN_COURSERECORD_GET_TIME}
+ * pOutParam = {@link NET_OUT_COURSERECORD_GET_TIME}
+ */
+ EM_COURSERECORDE_TYPE_GET_TIME(3, "获取当前课程教室已录制时间");
+
+ private int value;
+ private String note;
+
+ EM_COURSERECORD_OPERATE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_COURSERECORD_OPERATE_TYPE enumType : EM_COURSERECORD_OPERATE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_COURSERECORD_OPERATE_TYPE enumType : EM_COURSERECORD_OPERATE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_COURSERECORD_OPERATE_TYPE getEnum(int value) {
+ for (EM_COURSERECORD_OPERATE_TYPE e : EM_COURSERECORD_OPERATE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_COURSERECORD_OPERATE_TYPE.EM_COURSERECORDE_TYPE_GET_INFO;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_COURSE_LOCK_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_COURSE_LOCK_TYPE.java
new file mode 100644
index 0000000..548c8fb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_COURSE_LOCK_TYPE.java
@@ -0,0 +1,69 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 课程录像锁定类型
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 16:27
+ */
+public enum EM_COURSE_LOCK_TYPE {
+ /**
+ * 未知
+ */
+ EM_COURSE_LOCK_TYPE_UNKNOWN(-1, "未知"),
+ /**
+ * 全部类型
+ */
+ EM_COURSE_LOCK_TYPE_ALL(0, "全部类型"),
+ /**
+ * 非锁定类型
+ */
+ EM_COURSE_LOCK_TYPE_NON_LOCKING(1, "非锁定类型"),
+ /**
+ * 锁定类型
+ */
+ EM_COURSE_LOCK_TYPE_LOCK(2, "锁定类型");
+
+ private int value;
+ private String note;
+
+ EM_COURSE_LOCK_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_COURSE_LOCK_TYPE enumType : EM_COURSE_LOCK_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_COURSE_LOCK_TYPE enumType : EM_COURSE_LOCK_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_COURSE_LOCK_TYPE getEnum(int value) {
+ for (EM_COURSE_LOCK_TYPE e : EM_COURSE_LOCK_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_COURSE_LOCK_TYPE.EM_COURSE_LOCK_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_COURSE_RECORD_COMPRESSION_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_COURSE_RECORD_COMPRESSION_TYPE.java
new file mode 100644
index 0000000..d1eeb4a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_COURSE_RECORD_COMPRESSION_TYPE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 课程录像压缩类型
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 16:55
+ */
+public enum EM_COURSE_RECORD_COMPRESSION_TYPE {
+ /**
+ * 未知
+ */
+ EM_COURSE_RECORD_COMPRESSION_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * H.264 默认值
+ */
+ EM_COURSE_RECORD_COMPRESSION_TYPE_H264(1, "H.264 默认值"),
+ /**
+ * H.265
+ */
+ EM_COURSE_RECORD_COMPRESSION_TYPE_H265(2, "H.265");
+
+ private int value;
+ private String note;
+
+ EM_COURSE_RECORD_COMPRESSION_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_COURSE_RECORD_COMPRESSION_TYPE enumType : EM_COURSE_RECORD_COMPRESSION_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_COURSE_RECORD_COMPRESSION_TYPE enumType : EM_COURSE_RECORD_COMPRESSION_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_COURSE_RECORD_COMPRESSION_TYPE getEnum(int value) {
+ for (EM_COURSE_RECORD_COMPRESSION_TYPE e : EM_COURSE_RECORD_COMPRESSION_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_COURSE_RECORD_COMPRESSION_TYPE.EM_COURSE_RECORD_COMPRESSION_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_COURSE_RECORD_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_COURSE_RECORD_TYPE.java
new file mode 100644
index 0000000..064e06f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_COURSE_RECORD_TYPE.java
@@ -0,0 +1,69 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 课程录像类型
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 16:31
+ */
+public enum EM_COURSE_RECORD_TYPE {
+ /**
+ * 未知
+ */
+ EM_COURSE_RECORD_TYPE_UNKNOWN(-1, "未知"),
+ /**
+ * 全部录像类型
+ */
+ EM_COURSE_RECORD_TYPE_ALL(0, "全部录像类型"),
+ /**
+ * 导播录像类型
+ */
+ EM_COURSE_RECORD_TYPE_GUIDED_BROADCAST(1, "导播录像类型"),
+ /**
+ * 互动录像类型
+ */
+ EM_COURSE_RECORD_TYPE_GUIDED_INTERACTION(2, "互动录像类型");
+
+ private int value;
+ private String note;
+
+ EM_COURSE_RECORD_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_COURSE_RECORD_TYPE enumType : EM_COURSE_RECORD_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_COURSE_RECORD_TYPE enumType : EM_COURSE_RECORD_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_COURSE_RECORD_TYPE getEnum(int value) {
+ for (EM_COURSE_RECORD_TYPE e : EM_COURSE_RECORD_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_COURSE_RECORD_TYPE.EM_COURSE_RECORD_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_COURSE_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_COURSE_STATE.java
new file mode 100644
index 0000000..7fdbeab
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_COURSE_STATE.java
@@ -0,0 +1,61 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 课程状态
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/17 16:00
+ */
+public enum EM_COURSE_STATE {
+ /**
+ * 未知
+ */
+ EM_COURSE_STATE_UNKNOWN(0, "未知"),
+ /**
+ * 未录制
+ */
+ EM_COURSE_STATE_NOT_RECORD(1, "未录制"),
+ /**
+ * 录制中
+ */
+ EM_COURSE_STATE_IN_RECORDING(2, "录制中"),
+ /**
+ * 已录制
+ */
+ EM_COURSE_STATE_ALREADY_RECORDED(3, "已录制");
+
+ private int value;
+ private String note;
+
+ EM_COURSE_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_COURSE_STATE enumType : EM_COURSE_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_COURSE_STATE enumType : EM_COURSE_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_COVER_PLATE_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_COVER_PLATE_STATE.java
new file mode 100644
index 0000000..f84798b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_COVER_PLATE_STATE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 盖板状态
+* @date 2022/06/28 19:44:56
+*/
+public enum EM_COVER_PLATE_STATE {
+/**
+未知
+*/
+ EM_COVER_PLATE_STATE_UNKNOWN(0, "未知"),
+/**
+正常
+*/
+ EM_COVER_PLATE_STATE_NORMAL(1, "正常"),
+/**
+破裂
+*/
+ EM_COVER_PLATE_STATE_BROKEN(2, "破裂");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_COVER_PLATE_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_COVER_PLATE_STATE enumType : EM_COVER_PLATE_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_COVER_PLATE_STATE enumType : EM_COVER_PLATE_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_COVER_PLATE_STATE getEnum(int value) {
+ for (EM_COVER_PLATE_STATE e : EM_COVER_PLATE_STATE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_COVER_PLATE_STATE.EM_COVER_PLATE_STATE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CROWD_LEVEL_DETECTION_TRIGGERMODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CROWD_LEVEL_DETECTION_TRIGGERMODE.java
new file mode 100644
index 0000000..7e09b37
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CROWD_LEVEL_DETECTION_TRIGGERMODE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 260611
+ * @description 触发模式
+ * @origin autoTool
+ * @date 2023/06/19 14:48:39
+ */
+public enum EM_CROWD_LEVEL_DETECTION_TRIGGERMODE {
+ /**
+ * 未知
+ */
+ EM_CROWD_LEVEL_DETECTION_TRIGGERMODE_UNKNOWN(0, "未知"),
+ /**
+ * 自适应模式
+ */
+ EM_CROWD_LEVEL_DETECTION_TRIGGERMODE_ADAPTIVE(1, "自适应模式"),
+ /**
+ * 自定义模式
+ */
+ EM_CROWD_LEVEL_DETECTION_TRIGGERMODE_CUSTOM(2, "自定义模式");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CROWD_LEVEL_DETECTION_TRIGGERMODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CROWD_LEVEL_DETECTION_TRIGGERMODE enumType : EM_CROWD_LEVEL_DETECTION_TRIGGERMODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CROWD_LEVEL_DETECTION_TRIGGERMODE enumType : EM_CROWD_LEVEL_DETECTION_TRIGGERMODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_CROWD_LEVEL_DETECTION_TRIGGERMODE getEnum(int value) {
+ for (EM_CROWD_LEVEL_DETECTION_TRIGGERMODE e : EM_CROWD_LEVEL_DETECTION_TRIGGERMODE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_CROWD_LEVEL_DETECTION_TRIGGERMODE.EM_CROWD_LEVEL_DETECTION_TRIGGERMODE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CTRL_ENABLE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CTRL_ENABLE.java
new file mode 100644
index 0000000..f446de9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CTRL_ENABLE.java
@@ -0,0 +1,75 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 421657
+ * @description 报警使能控制方式枚举类型
+ * @origin autoTool
+ * @date 2023/11/01 20:42:35
+ */
+public enum EM_CTRL_ENABLE {
+ /**
+ * 不控制使能
+ */
+ EM_CTRL_NORMAL(0, "不控制使能"),
+ /**
+ * 总是使能
+ */
+ EM_CTRL_ALWAYS_EN(1, "总是使能"),
+ /**
+ * 旁路
+ */
+ EM_CTRL_ONCE_DIS(2, "旁路"),
+ /**
+ * 移除
+ */
+ EM_CTRL_ALWAYS_DIS(3, "移除"),
+ /**
+ * 枚举类型总数
+ */
+ EM_CTRL_NU(4, "枚举类型总数");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CTRL_ENABLE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CTRL_ENABLE enumType : EM_CTRL_ENABLE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CTRL_ENABLE enumType : EM_CTRL_ENABLE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_CTRL_ENABLE getEnum(int value) {
+ for (EM_CTRL_ENABLE e : EM_CTRL_ENABLE.values()) {
+ if (e.getValue() == value) {
+ return e;
+ }
+ }
+ return EM_CTRL_ENABLE.EM_CTRL_NORMAL;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CTRL_SCHEME.java b/src/main/java/com/netsdk/lib/enumeration/EM_CTRL_SCHEME.java
new file mode 100644
index 0000000..17d7d23
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CTRL_SCHEME.java
@@ -0,0 +1,58 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 红绿灯方案/可变车道方案
+ * @date 2021/09/28
+ */
+public enum EM_CTRL_SCHEME {
+ // 未知
+ EM_CTRL_SCHEME_UNKNOWN(0, "未知"),
+ // 进入备份模式(红绿灯)
+ EM_CTRL_SCHEME_REDYELLOW_BACKUP(150, "进入备份模式(红绿灯)"),
+ // 正常退出备份模式(红绿灯)
+ EM_CTRL_SCHEME_REDYELLOW_BACKUP_NORMAL_QUIT(151, "正常退出备份模式(红绿灯)"),
+ // 异常退出备份模式(红绿灯)
+ EM_CTRL_SCHEME_REDYELLOW_BACKUP_ABNORMAL_QUIT(152, "异常退出备份模式(红绿灯)"),
+ // 异常退出备份模式(可变车道)
+ EM_CTRL_SCHEME_VARLANE_BACKUP(153, "异常退出备份模式(可变车道)"),
+ // 正常退出备份模式(可变车道)
+ EM_CTRL_SCHEME_VARLANE_BACKUP_NORMAL_QUIT(154, "正常退出备份模式(可变车道)"),
+ // 异常退出备份模式(可变车道)
+ EM_CTRL_SCHEME_VARLANE_BACKUP_ABNORMAL_QUIT(155, "异常退出备份模式(可变车道)");
+
+ private int value;
+ private String note;
+
+ private EM_CTRL_SCHEME(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CTRL_SCHEME enumType : EM_CTRL_SCHEME.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CTRL_SCHEME enumType : EM_CTRL_SCHEME.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CURRENT_OPERATE_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CURRENT_OPERATE_MODE.java
new file mode 100644
index 0000000..6680775
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CURRENT_OPERATE_MODE.java
@@ -0,0 +1,79 @@
+package com.netsdk.lib.enumeration;
+/**
+ * @author 251823
+ * @description 当前运行模式
+ * @date 2021/08/24
+ */
+public enum EM_CURRENT_OPERATE_MODE {
+ // 未知
+ EM_CURRENT_OPERATE_UNKNOWN(0, "未知"),
+ // 多时段控制
+ EM_CURRENT_OPERATE_MULPERIOD(1, "多时段控制"),
+ // 手动控制
+ EM_CURRENT_OPERATE_MANUAL_CONTROL(2, "手动控制"),
+ // 关灯控制
+ EM_CURRENT_OPERATE_TURNOFFLIGHT_CONTROL(3, "关灯控制"),
+ // 全红控制
+ EM_CURRENT_OPERATE_ALLRED_CONTROL(4, "全红控制"),
+ // 自适应滤波控制
+ EM_CURRENT_OPERATE_ADAPTFILTER_CONTROL(5, "自适应滤波控制"),
+ // 感应控制
+ EM_CURRENT_OPERATE_INDUCTION_CONTROL(6, "感应控制"),
+ // 黄闪控制
+ EM_CURRENT_OPERATE_YELLOWFLASH_CONTROL(7, "黄闪控制"),
+ // 单点自适应模式
+ EM_CURRENT_OPERATE_SINGAL_ADAPTINVE(8, "单点自适应模式"),
+ // 平台临时方案模式
+ EM_CURRENT_OPERATE_TMPPLATFORM_PLAN(9, "平台临时方案模式"),
+ // 临时手控模式
+ EM_CURRENT_OPERATE_TEMP_HAND(10, "临时手控模式"),
+ // 实时控制模式
+ EM_CURRENT_OPERATE_REALTIME_CONTROL(11, "实时控制模式"),
+ // 灭灯模式
+ EM_CURRENT_OPERATE_LIGHT_OFF(12, "灭灯模式"),
+ // 红闪模式
+ EM_CURRENT_OPERATE_RED_FLASH(13, "红闪模式"),
+ // 绿闪模式
+ EM_CURRENT_OPERATE_GREEN_FLASH(14, "绿闪模式"),
+ // 行人优先控制模式
+ EM_CURRENT_OPERATE_PEDESTRAIN_PRIORITY(15, "行人优先控制模式"),
+ // 拥堵溢出控制模式
+ EM_CURRENT_OPERATE_CONFGOVERFLOW_CONTROL(16, "拥堵溢出控制模式"),
+ // 夜间请求模式
+ EM_CURRENT_OPERATE_NIGHT_REQUEST(17, "夜间请求模式");
+
+ private int value;
+ private String note;
+
+ private EM_CURRENT_OPERATE_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CURRENT_OPERATE_MODE enumType : EM_CURRENT_OPERATE_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CURRENT_OPERATE_MODE enumType : EM_CURRENT_OPERATE_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CURRENT_STATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CURRENT_STATE_TYPE.java
new file mode 100644
index 0000000..1ca3538
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CURRENT_STATE_TYPE.java
@@ -0,0 +1,43 @@
+package com.netsdk.lib.enumeration;
+
+public enum EM_CURRENT_STATE_TYPE {
+ EM_CURRENT_STATE_UNKNOWN(0, "电流状态未知"),
+ EM_CURRENT_STATE_OVER_CURRENT(1, "电流过载"),// 电流过载
+ EM_CURRENT_STATE_NORMAL(2, "电流正常"),// 电流正常
+ EM_CURRENT_STATE_UNDER_CURRENT(3, "电源欠流");// 电源欠流
+
+ private int value;
+ private String note;
+
+ private EM_CURRENT_STATE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CURRENT_STATE_TYPE enumType : EM_CURRENT_STATE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CURRENT_STATE_TYPE enumType : EM_CURRENT_STATE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CUSTOMER_DEV_SETTING_DOOR_METHOD.java b/src/main/java/com/netsdk/lib/enumeration/EM_CUSTOMER_DEV_SETTING_DOOR_METHOD.java
new file mode 100644
index 0000000..7834f2e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CUSTOMER_DEV_SETTING_DOOR_METHOD.java
@@ -0,0 +1,88 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 开门方式
+ * @date 2022/06/02 10:15:21
+ */
+public enum EM_CUSTOMER_DEV_SETTING_DOOR_METHOD {
+ /**
+ * 未知
+ */
+ EM_CUSTOMER_DEV_SETTING_DOOR_METHOD_UNKNOWN(-1, "未知"),
+ /**
+ * CTID 码开门
+ */
+ EM_CUSTOMER_DEV_SETTING_DOOR_METHOD_CTID(0, "CTID 码开门"),
+ /**
+ * CTID 码 + 人脸组合开门
+ */
+ EM_CUSTOMER_DEV_SETTING_DOOR_METHOD_CTID_AND_FACE(1, "CTID 码 + 人脸组合开门"),
+ /**
+ * CTID 码或人脸开门
+ */
+ EM_CUSTOMER_DEV_SETTING_DOOR_METHOD_CTID_OR_FACE(2, "CTID 码或人脸开门"),
+ /**
+ * 腕带码或人脸开门
+ */
+ EM_CUSTOMER_DEV_SETTING_DOOR_METHOD_WRISTBAND_OR_FACE(3, "腕带码或人脸开门"),
+ /**
+ * 腕带码或人脸或证件开门
+ */
+ EM_CUSTOMER_DEV_SETTING_DOOR_METHOD_WRISTBAND_OR_FACE_OR_IDCARD(4, "腕带码或人脸或证件开门"),
+ /**
+ * 码1或码2开门 (码1、码2的含义由平台和设备双方约定)
+ */
+ EM_CUSTOMER_DEV_SETTING_DOOR_METHOD_CODE1_OR_CODE2(5, "码1或码2开门 (码1、码2的含义由平台和设备双方约定)"),
+ /**
+ * 人脸或腕带码或码2
+ */
+ EM_CUSTOMER_DEV_SETTING_DOOR_METHOD_WRISTBAND_OR_FACE_OR_CODE2(6, "人脸或腕带码或码2"),
+ /**
+ * 人脸+(码1或码2)
+ */
+ EM_CUSTOMER_DEV_SETTING_DOOR_METHOD_FACE_AND_CODE1_OR_CODE2(7, "人脸+(码1或码2)"),
+ /**
+ * (人脸或证件)+(码1或者码2)
+ */
+ EM_CUSTOMER_DEV_SETTING_DOOR_METHOD_FACE_OR_IDCARD_AND_CODE1_OR_CODE2(8, "(人脸或证件)+(码1或者码2)"),
+ /**
+ * 人脸或码1或码2或者腕带码
+ */
+ EM_CUSTOMER_DEV_SETTING_DOOR_METHOD_FACE_OR_IDCARD_OR_CODE1_OR_CODE2(9, "人脸或码1或码2或者腕带码");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CUSTOMER_DEV_SETTING_DOOR_METHOD(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CUSTOMER_DEV_SETTING_DOOR_METHOD enumType : EM_CUSTOMER_DEV_SETTING_DOOR_METHOD.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CUSTOMER_DEV_SETTING_DOOR_METHOD enumType : EM_CUSTOMER_DEV_SETTING_DOOR_METHOD.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CUSTOM_DEV_PROTOCOL_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CUSTOM_DEV_PROTOCOL_TYPE.java
new file mode 100644
index 0000000..6146884
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CUSTOM_DEV_PROTOCOL_TYPE.java
@@ -0,0 +1,79 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author : 47040
+ * @since : Created in 2020/8/13 9:54
+ */
+public enum EM_CUSTOM_DEV_PROTOCOL_TYPE {
+ /**
+ * Private
+ */
+ EM_CUSTOM_DEV_PROTOCOL_TYPE_PRIVATE(0, "Private"),
+ /**
+ * Dahua2
+ */
+ EM_CUSTOM_DEV_PROTOCOL_TYPE_DAHUA2(1, "Dahua2"),
+ /**
+ * Dahua3
+ */
+ EM_CUSTOM_DEV_PROTOCOL_TYPE_DAHUA3(2, "Dahua3"),
+ /**
+ * 以URL形式添加的设备
+ */
+ EM_CUSTOM_DEV_PROTOCOL_TYPE_GENERAL(3, "以URL形式添加的设备"),
+ /**
+ * Onvif接入
+ */
+ EM_CUSTOM_DEV_PROTOCOL_TYPE_ONVIF(4, "Onvif接入"),
+ /**
+ * Onvif加密形式接入
+ */
+ EM_CUSTOM_DEV_PROTOCOL_TYPE_ONVIFS(5, "Onvif加密形式接入"),
+ /**
+ * 国标28181接入
+ */
+ EM_CUSTOM_DEV_PROTOCOL_TYPE_GB28181(6, "国标28181接入"),
+ /**
+ * Ehome协议
+ */
+ EM_CUSTOM_DEV_PROTOCOL_TYPE_EHOME(7, "Ehome协议"),
+ /**
+ * 主动注册
+ */
+ EM_CUSTOM_DEV_PROTOCOL_TYPE_DAHUA_REG(8, "主动注册");
+
+ private int value;
+ private String note;
+
+ private EM_CUSTOM_DEV_PROTOCOL_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CUSTOM_DEV_PROTOCOL_TYPE enumType : EM_CUSTOM_DEV_PROTOCOL_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CUSTOM_DEV_PROTOCOL_TYPE enumType : EM_CUSTOM_DEV_PROTOCOL_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote()) ) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CUSTOM_EDUCATION_VOICE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CUSTOM_EDUCATION_VOICE_TYPE.java
new file mode 100644
index 0000000..23604e0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CUSTOM_EDUCATION_VOICE_TYPE.java
@@ -0,0 +1,193 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 260611
+ * @description 语音类型
+ * @date 2023/01/03 11:10:33
+ */
+public enum EM_CUSTOM_EDUCATION_VOICE_TYPE {
+ /**
+ * 未知
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 超时出校
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_LEAVE_SCHOOL_TIMEOUT(1, "超时出校"),
+ /**
+ * 超时进校
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_ENTER_SCHOOL_TIMEOUT(2, "超时进校"),
+ /**
+ * 出校
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_LEAVE_SCHOOL(3, "出校"),
+ /**
+ * 此卡未绑定
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_CARD_NOT_BIND(4, "此卡未绑定"),
+ /**
+ * 寄宿生
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_BOARDER(5, "寄宿生"),
+ /**
+ * 家长卡已挂失
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_PARENT_CARD_REPORT_LOST(6, "家长卡已挂失"),
+ /**
+ * 进校已过期
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_ENTER_SCHOOL_OVERDUE(7, "进校已过期"),
+ /**
+ * 您有包裹待领取
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_PACKAGE_TO_PICKUP(8, "您有包裹待领取"),
+ /**
+ * 请假
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_ASKFORLEAVE(9, "请假"),
+ /**
+ * 请假返校超时
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_RETURN_SCHOOL_TIMEOUT_WHEN_ASKFORLEAVE(10, "请假返校超时"),
+ /**
+ * 请假进出校时间未到
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_INANDOUT_SCHOOL_TIMENOTUP_WHEN_ASKFORLEAVE(11, "请假进出校时间未到"),
+ /**
+ * 请假拒绝出校
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_REFUSE_LEAVE_SCHOOL_WHEN_ASKFORLEAVE(12, "请假拒绝出校"),
+ /**
+ * 请假拒绝进校
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_REFUSE_ENTER_SCHOOL_WHEN_ASKFORLEAVE(13, "请假拒绝进校"),
+ /**
+ * 请假审核中
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_ASKFORLEAVE_IN_REVIEW(14, "请假审核中"),
+ /**
+ * 请假已过期
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_ASKFORLEAVE_EXPIRED(15, "请假已过期"),
+ /**
+ * 请假已批准
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_ASKFORLEAVE_APPROVED(16, "请假已批准"),
+ /**
+ * 请假已失效禁止重复出校
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_FORBID_LEAVE_SCHOOL_WITH_LEAVE_INVALID(17, "请假已失效禁止重复出校"),
+ /**
+ * 时间未到
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_TIME_ISNOT_UP(18, "时间未到"),
+ /**
+ * 未预约
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_NOT_APPOINT(19, "未预约"),
+ /**
+ * 未在允许时段内禁止通行
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_NO_PASSAGE_IN_NONPERMIT_TIMESECTION(20, "未在允许时段内禁止通行"),
+ /**
+ * 无效卡
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_INVALID_CARD(21, "无效卡"),
+ /**
+ * 已预约
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_ALREADY_APPOINTED(22, "已预约"),
+ /**
+ * 允许返校
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_ALLOW_BACK_SCHOOL(23, "允许返校"),
+ /**
+ * 再见
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_GOODBYE(24, "再见"),
+ /**
+ * 正常进校
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_ENTER_SCHOOL_NORMALLY(25, "正常进校"),
+ /**
+ * 重复出校
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_REPEAT_LEAVE_SCHOOLL(26, "重复出校"),
+ /**
+ * 重复进校
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_REPEAT_ENTER_SCHOOLL(27, "重复进校"),
+ /**
+ * 走读生
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_DAY_STUDENT(28, "走读生"),
+ /**
+ * 欢迎光临
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_WELCOME(29, "欢迎光临"),
+ /**
+ * 教职工
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_FACULTY(30, "教职工"),
+ /**
+ * 老师
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_TEACHER(31, "老师"),
+ /**
+ * 老师好
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_HELLO_TEACHER(32, "老师好"),
+ /**
+ * 允许访问
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_ALLOW_ACCESS(33, "允许访问"),
+ /**
+ * tts文字语音输出
+ */
+ EM_CUSTOM_EDUCATION_VOICE_TYPE_TTS_TEXT_VOICE_OUTPUT(50, "tts文字语音输出");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CUSTOM_EDUCATION_VOICE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CUSTOM_EDUCATION_VOICE_TYPE enumType : EM_CUSTOM_EDUCATION_VOICE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CUSTOM_EDUCATION_VOICE_TYPE enumType : EM_CUSTOM_EDUCATION_VOICE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_CUSTOM_EDUCATION_VOICE_TYPE getEnum(int value) {
+ for (EM_CUSTOM_EDUCATION_VOICE_TYPE e : EM_CUSTOM_EDUCATION_VOICE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_CUSTOM_EDUCATION_VOICE_TYPE.EM_CUSTOM_EDUCATION_VOICE_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CUSTOM_MEDICAL_VOICE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CUSTOM_MEDICAL_VOICE_TYPE.java
new file mode 100644
index 0000000..62892fc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CUSTOM_MEDICAL_VOICE_TYPE.java
@@ -0,0 +1,85 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 260611
+ * @description 语音类型
+ * @date 2022/11/15 20:11:54
+ */
+public enum EM_CUSTOM_MEDICAL_VOICE_TYPE {
+ /**
+ * 未知
+ */
+ EM_CUSTOM_MEDICAL_VOICE_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 门已打开,可以进入
+ */
+ EM_CUSTOM_MEDICAL_VOICE_TYPE_1(1, "门已打开,可以进入"),
+ /**
+ * 不是本科室,不能进入
+ */
+ EM_CUSTOM_MEDICAL_VOICE_TYPE_2(2, "不是本科室,不能进入"),
+ /**
+ * 已出院,不能进入
+ */
+ EM_CUSTOM_MEDICAL_VOICE_TYPE_3(3, "已出院,不能进入"),
+ /**
+ * 核酸检测超期,不能进入
+ */
+ EM_CUSTOM_MEDICAL_VOICE_TYPE_4(4, "核酸检测超期,不能进入"),
+ /**
+ * 体温不正常,不能进入
+ */
+ EM_CUSTOM_MEDICAL_VOICE_TYPE_5(5, "体温不正常,不能进入"),
+ /**
+ * 证件信息缺失,不能进入
+ */
+ EM_CUSTOM_MEDICAL_VOICE_TYPE_6(6, "证件信息缺失,不能进入"),
+ /**
+ * 其他问题,不能进入
+ */
+ EM_CUSTOM_MEDICAL_VOICE_TYPE_7(7, "其他问题,不能进入");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_CUSTOM_MEDICAL_VOICE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_CUSTOM_MEDICAL_VOICE_TYPE enumType : EM_CUSTOM_MEDICAL_VOICE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_CUSTOM_MEDICAL_VOICE_TYPE enumType : EM_CUSTOM_MEDICAL_VOICE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_CUSTOM_MEDICAL_VOICE_TYPE getEnum(int value) {
+ for (EM_CUSTOM_MEDICAL_VOICE_TYPE e : EM_CUSTOM_MEDICAL_VOICE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_CUSTOM_MEDICAL_VOICE_TYPE.EM_CUSTOM_MEDICAL_VOICE_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CUSTOM_PASSWORD_ENCRYPTION_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CUSTOM_PASSWORD_ENCRYPTION_MODE.java
new file mode 100644
index 0000000..bea0dd7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CUSTOM_PASSWORD_ENCRYPTION_MODE.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * AccessControlCustomPassword记录集中密码的保存方式
+ */
+public enum EM_CUSTOM_PASSWORD_ENCRYPTION_MODE {
+ /**
+ * 未知方式
+ */
+ EM_CUSTOM_PASSWORD_ENCRYPTION_MODE_UNKNOWN,
+ /**
+ * 明文
+ */
+ EM_CUSTOM_PASSWORD_ENCRYPTION_MODE_PLAINTEXT,
+ /**
+ * MD5加密方式
+ */
+ EM_CUSTOM_PASSWORD_ENCRYPTION_MODE_MD5;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_CUSTOM_SNAP_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_CUSTOM_SNAP_TYPE.java
new file mode 100644
index 0000000..f54de29
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_CUSTOM_SNAP_TYPE.java
@@ -0,0 +1,61 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 自定义抓图类型
+* @date 2022/03/31 14:04:19
+*/
+public enum EM_CUSTOM_SNAP_TYPE {
+/**
+未知
+*/
+ EM_CUSTOM_SNAP_UNKNOWN(0, "未知"),
+/**
+猪体温检测, 对应结构体 NET_PIG_TEMPERATURE_INFO
+*/
+ EM_CUSTOM_SNAP_PIG_TEMPERATURE(1, "猪体温检测, 对应结构体 NET_PIG_TEMPERATURE_INFO");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_CUSTOM_SNAP_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_CUSTOM_SNAP_TYPE enumType : EM_CUSTOM_SNAP_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_CUSTOM_SNAP_TYPE enumType : EM_CUSTOM_SNAP_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_CUSTOM_SNAP_TYPE getEnum(int value) {
+ for (EM_CUSTOM_SNAP_TYPE e : EM_CUSTOM_SNAP_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_CUSTOM_SNAP_TYPE.EM_CUSTOM_SNAP_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DATA_SOURCE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_DATA_SOURCE_TYPE.java
new file mode 100644
index 0000000..2d3fa95
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DATA_SOURCE_TYPE.java
@@ -0,0 +1,75 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 291189
+ * @description 智能分析数据源类型
+ * @date 2022/06/28 15:29:39
+ */
+public enum EM_DATA_SOURCE_TYPE {
+ /**
+ 未知
+ */
+ EM_DATA_SOURCE_REMOTE_UNKNOWN(0, "未知"),
+ /**
+ 远程实时流 , 对应 NET_REMOTE_REALTIME_STREAM_INFO
+ */
+ EM_DATA_SOURCE_REMOTE_REALTIME_STREAM(1, "远程实时流 , 对应 NET_REMOTE_REALTIME_STREAM_INFO"),
+ /**
+ 主动推送图片文件, 对应 NET_PUSH_PICFILE_INFO
+ */
+ EM_DATA_SOURCE_PUSH_PICFILE(2, "主动推送图片文件, 对应 NET_PUSH_PICFILE_INFO"),
+ /**
+ 远程视频文件, 对应 NET_REMOTE_VIDEO_FILE_INFO
+ */
+ EM_DATA_SOURCE_REMOTE_VIDEO_FILE(3, "远程视频文件, 对应 NET_REMOTE_VIDEO_FILE_INFO"),
+ /**
+ 远程图片文件, 对应 NET_REMOTE_PICTURE_FILE_INFO
+ */
+ EM_DATA_SOURCE_REMOTE_PICTURE_FILE(4, "远程图片文件, 对应 NET_REMOTE_PICTURE_FILE_INFO"),
+ /**
+ 离线视频文件(第三方导入的文件), 对应 NET_OFFLINE_VIDEO_FILE_INFO
+ */
+ EM_DATA_SOURCE_OFFLINE_VIDEO_FILE(5, "离线视频文件(第三方导入的文件), 对应 NET_OFFLINE_VIDEO_FILE_INFO"),
+ /**
+ 主动推送图片文件,添加任务时无规则和图片信息,通过推送图片接口,每张图片中带有不同的规则信息(目前能源场景中使用), 对应 NET_PUSH_PICFILE_BYRULE_INFO
+ */
+ EM_DATA_SOURCE_PUSH_PICFILE_BYRULE(6, "主动推送图片文件,添加任务时无规则和图片信息,通过推送图片接口,每张图片中带有不同的规则信息(目前能源场景中使用), 对应 NET_PUSH_PICFILE_BYRULE_INFO"),
+ /**
+ 本地实时流, 对应 NET_LOCAL_STREAM_INFO
+ */
+ EM_DATA_SOURCE_LOCAL_STREAM(7, "本地实时流, 对应 NET_LOCAL_STREAM_INFO");
+
+ private int type;
+ private String des;
+
+ private EM_DATA_SOURCE_TYPE(int type, String des) {
+ this.type = type;
+ this.des = des;
+ }
+
+ public int getType() {
+ return type;
+ }
+
+ public void setType(int type) {
+ this.type = type;
+ }
+
+ public String getDes() {
+ return des;
+ }
+
+ public void setDes(String des) {
+ this.des = des;
+ }
+
+ public static EM_DATA_SOURCE_TYPE getDataSourceType(int type) {
+ for (EM_DATA_SOURCE_TYPE source : EM_DATA_SOURCE_TYPE.values()) {
+ if (type == source.getType()) {
+ return source;
+ }
+ }
+ return null;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DATE_SOURCE.java b/src/main/java/com/netsdk/lib/enumeration/EM_DATE_SOURCE.java
new file mode 100644
index 0000000..7e3cbac
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DATE_SOURCE.java
@@ -0,0 +1,63 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 数据来源
+* @origin autoTool
+* @date 2023/09/06 15:55:03
+*/
+public enum EM_DATE_SOURCE {
+ /**
+ * GPS
+ */
+ EM_DATE_SOURCE_GPS(0, "GPS"),
+ /**
+ * 惯性导航数据
+ */
+ EM_DATE_SOURCE_INERTIALNAVIGATION(1, "惯性导航数据");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_DATE_SOURCE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_DATE_SOURCE enumType : EM_DATE_SOURCE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_DATE_SOURCE enumType : EM_DATE_SOURCE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_DATE_SOURCE getEnum(int value) {
+ for (EM_DATE_SOURCE e : EM_DATE_SOURCE.values()) {
+ if (e.getValue() == value){
+ return e;
+ }
+ }
+ return EM_DATE_SOURCE.EM_DATE_SOURCE_GPS;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DBGINFO_LEVEL.java b/src/main/java/com/netsdk/lib/enumeration/EM_DBGINFO_LEVEL.java
new file mode 100644
index 0000000..a4280da
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DBGINFO_LEVEL.java
@@ -0,0 +1,71 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 日志等级
+*/
+public enum EM_DBGINFO_LEVEL
+{
+ /**
+ * 无打印
+ */
+ EM_DBGINFO_LEVEL_NOPRINT(0, "无打印"),
+ /**
+ * 致命
+ */
+ EM_DBGINFO_LEVEL_FATAL(1, "致命"),
+ /**
+ * 错误
+ */
+ EM_DBGINFO_LEVEL_ERROR(2, "错误"),
+ /**
+ * 警告
+ */
+ EM_DBGINFO_LEVEL_WARN(3, "警告"),
+ /**
+ * 信息
+ */
+ EM_DBGINFO_LEVEL_INFO(4, "信息"),
+ /**
+ * 跟踪
+ */
+ EM_DBGINFO_LEVEL_TRACE(5, "跟踪"),
+ /**
+ * 调试
+ */
+ EM_DBGINFO_LEVEL_DEBUG(6, "调试");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_DBGINFO_LEVEL(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_DBGINFO_LEVEL enumType : EM_DBGINFO_LEVEL.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_DBGINFO_LEVEL enumType : EM_DBGINFO_LEVEL.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DEFENCE_AREA_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_DEFENCE_AREA_TYPE.java
new file mode 100644
index 0000000..956fdfc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DEFENCE_AREA_TYPE.java
@@ -0,0 +1,101 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 防区类型
+* @date 2022/07/19 19:31:27
+*/
+public enum EM_DEFENCE_AREA_TYPE {
+/**
+未知
+*/
+ EM_DEFENCE_AREA_TYPE_UNKNOWN(0, "未知"),
+/**
+立即防区
+*/
+ EM_DEFENCE_AREA_TYPE_INTIME(1, "立即防区"),
+/**
+延时防区
+*/
+ EM_DEFENCE_AREA_TYPE_DELAY(2, "延时防区"),
+/**
+延时防区2
+*/
+ EM_DEFENCE_AREA_TYPE_DELAY2(3, "延时防区2"),
+/**
+跟随防区
+*/
+ EM_DEFENCE_AREA_TYPE_FOLLOW(4, "跟随防区"),
+/**
+退出防区
+*/
+ EM_DEFENCE_AREA_TYPE_EXITEND(5, "退出防区"),
+/**
+24小时防区
+*/
+ EM_DEFENCE_AREA_TYPE_FULLDAY(6, "24小时防区"),
+/**
+火警防区
+*/
+ EM_DEFENCE_AREA_TYPE_FIRE(7, "火警防区"),
+/**
+恐慌防区
+*/
+ EM_DEFENCE_AREA_TYPE_PANIC(8, "恐慌防区"),
+/**
+匪警防区
+*/
+ EM_DEFENCE_AREA_TYPE_ROBBERY(9, "匪警防区"),
+/**
+医疗紧急防区
+*/
+ EM_DEFENCE_AREA_TYPE_MEDICAL(10, "医疗紧急防区"),
+/**
+key防区
+*/
+ EM_DEFENCE_AREA_TYPE_KEY(11, "key防区");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_DEFENCE_AREA_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_DEFENCE_AREA_TYPE enumType : EM_DEFENCE_AREA_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_DEFENCE_AREA_TYPE enumType : EM_DEFENCE_AREA_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_DEFENCE_AREA_TYPE getEnum(int value) {
+ for (EM_DEFENCE_AREA_TYPE e : EM_DEFENCE_AREA_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_DEFENCE_AREA_TYPE.EM_DEFENCE_AREA_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DELETE_BY_SOURCEUID_ERRCODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_DELETE_BY_SOURCEUID_ERRCODE.java
new file mode 100644
index 0000000..a863fdd
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DELETE_BY_SOURCEUID_ERRCODE.java
@@ -0,0 +1,68 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 通过全景图唯一标识符删除工装合规样本错误码信息
+ * @date 2022/10/08 20:13:32
+ */
+public enum EM_DELETE_BY_SOURCEUID_ERRCODE {
+ /**
+ * 未知
+ */
+ EM_DELETE_BY_SOURCEUID_ERRCODE_UNKNWON(-1, "未知"),
+ /**
+ * 成功
+ */
+ EM_DELETE_BY_SOURCEUID_ERRCODE_SUCCESS(0, "成功"),
+ /**
+ * 工装不存在
+ */
+ EM_DELETE_BY_SOURCEUID_ERRCODE_NOT_EXIST(1, "工装不存在"),
+ /**
+ * 数据库操作失败
+ */
+ EM_DELETE_BY_SOURCEUID_ERRCODE_DB_ERROR(2, "数据库操作失败");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_DELETE_BY_SOURCEUID_ERRCODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_DELETE_BY_SOURCEUID_ERRCODE enumType : EM_DELETE_BY_SOURCEUID_ERRCODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_DELETE_BY_SOURCEUID_ERRCODE enumType : EM_DELETE_BY_SOURCEUID_ERRCODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+ public static EM_DELETE_BY_SOURCEUID_ERRCODE getEnum(int value) {
+ for (EM_DELETE_BY_SOURCEUID_ERRCODE e : EM_DELETE_BY_SOURCEUID_ERRCODE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_DELETE_BY_SOURCEUID_ERRCODE.EM_DELETE_BY_SOURCEUID_ERRCODE_UNKNWON;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DELIVERY_FILE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_DELIVERY_FILE_TYPE.java
new file mode 100644
index 0000000..d87d20e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DELIVERY_FILE_TYPE.java
@@ -0,0 +1,51 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description
+ * @date 2020/9/14
+ */
+public enum EM_DELIVERY_FILE_TYPE {
+ /**
+ * 未知
+ */
+ EM_DELIVERY_FILE_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 视频
+ */
+ EM_DELIVERY_FILE_TYPE_VIDEO(1, "视频"),
+ /**
+ * 图片
+ */
+ EM_DELIVERY_FILE_TYPE_IMAGE(2, "图片"),
+ /**
+ * 音频
+ */
+ EM_DELIVERY_FILE_TYPE_AUDIO(3, "音频");
+
+ private int type;
+ private String desc;
+
+ private EM_DELIVERY_FILE_TYPE(int type,String desc){
+ this.type=type;
+ this.desc=desc;
+ }
+
+ public int getType() {
+ return type;
+ }
+
+ public void setType(int type) {
+ this.type = type;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public void setDesc(String desc) {
+ this.desc = desc;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DETECTION_SCENE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_DETECTION_SCENE_TYPE.java
new file mode 100644
index 0000000..90c4a5f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DETECTION_SCENE_TYPE.java
@@ -0,0 +1,70 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author : 260611
+ * @description : 动物检测规则下的场景类型
+ * @since : Created in 2021/11/05 15:07
+ */
+
+public enum EM_DETECTION_SCENE_TYPE {
+ /**
+ * 未知
+ */
+ EM_DETECTION_SCENE_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 兽类场景,可检测动物、人、车
+ */
+ EM_DETECTION_SCENE_TYPE_ANIMAL(1, "兽类场景,可检测动物、人、车"),
+ /**
+ * 鸟类场景,可检测鸟类,人、车
+ */
+ EM_DETECTION_SCENE_TYPE_BIRD(2, "鸟类场景,可检测鸟类,人、车"),
+ /**
+ * 猪类场景,可检测猪只
+ */
+ EM_DETECTION_SCENE_TYPE_PIG(3, "猪类场景,可检测猪只");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_DETECTION_SCENE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_DETECTION_SCENE_TYPE enumType : EM_DETECTION_SCENE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_DETECTION_SCENE_TYPE enumType : EM_DETECTION_SCENE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_DETECTION_SCENE_TYPE getEnum(int value) {
+ for (EM_DETECTION_SCENE_TYPE e : EM_DETECTION_SCENE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_DETECTION_SCENE_TYPE.EM_DETECTION_SCENE_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DETECTOR_STATUS_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_DETECTOR_STATUS_TYPE.java
new file mode 100644
index 0000000..9454f8a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DETECTOR_STATUS_TYPE.java
@@ -0,0 +1,69 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 探测器状态类型
+* @date 2022/08/31 14:44:15
+*/
+public enum EM_DETECTOR_STATUS_TYPE {
+/**
+未知
+*/
+ EM_DETECTOR_STATUS_UNKNOWN(-1, "未知"),
+/**
+启用所有功能
+*/
+ EM_DETECTOR_STATUS_ALLFUNCT_ENABLE(0, "启用所有功能"),
+/**
+禁用防拆功能
+*/
+ EM_DETECTOR_STATUS_ANTITAMPER_DISABLE(1, "禁用防拆功能"),
+/**
+禁用所有功能
+*/
+ EM_DETECTOR_STATUS_ALLFUNCT_DISABLE(2, "禁用所有功能");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_DETECTOR_STATUS_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_DETECTOR_STATUS_TYPE enumType : EM_DETECTOR_STATUS_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_DETECTOR_STATUS_TYPE enumType : EM_DETECTOR_STATUS_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_DETECTOR_STATUS_TYPE getEnum(int value) {
+ for (EM_DETECTOR_STATUS_TYPE e : EM_DETECTOR_STATUS_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_DETECTOR_STATUS_TYPE.EM_DETECTOR_STATUS_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DETECT_OBJECT.java b/src/main/java/com/netsdk/lib/enumeration/EM_DETECT_OBJECT.java
new file mode 100644
index 0000000..77acae8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DETECT_OBJECT.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 目标类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 19:34
+ */
+public class EM_DETECT_OBJECT extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_DETECT_OBJECT_TYPE_UNKNOWN = 0;
+ /**
+ * 人脸
+ */
+ public static final int EM_DETECT_OBJECT_TYPE_FACE = 1;
+ /**
+ * 车辆
+ */
+ public static final int EM_DETECT_OBJECT_TYPE_VEHICLE = 2;
+ /**
+ * 结构化
+ */
+ public static final int EM_DETECT_OBJECT_TYPE_STRUCTLIZE = 3;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DETECT_OBJECT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_DETECT_OBJECT_TYPE.java
new file mode 100644
index 0000000..1be4dd8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DETECT_OBJECT_TYPE.java
@@ -0,0 +1,69 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 260611
+ * @description 目标类型
+ * @date 2022/11/21 17:53:12
+ */
+public enum EM_DETECT_OBJECT_TYPE {
+ /**
+ * 未知
+ */
+ EM_DETECT_OBJECT_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 人脸
+ */
+ EM_DETECT_OBJECT_TYPE_FACE(1, "人脸"),
+ /**
+ * 车辆
+ */
+ EM_DETECT_OBJECT_TYPE_VEHICLE(2, "车辆"),
+ /**
+ * 结构化
+ */
+ EM_DETECT_OBJECT_TYPE_STRUCTLIZE(3, "结构化");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_DETECT_OBJECT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_DETECT_OBJECT_TYPE enumType : EM_DETECT_OBJECT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_DETECT_OBJECT_TYPE enumType : EM_DETECT_OBJECT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_DETECT_OBJECT_TYPE getEnum(int value) {
+ for (EM_DETECT_OBJECT_TYPE e : EM_DETECT_OBJECT_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_DETECT_OBJECT_TYPE.EM_DETECT_OBJECT_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DETECT_SENSOR_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_DETECT_SENSOR_TYPE.java
new file mode 100644
index 0000000..dfb550d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DETECT_SENSOR_TYPE.java
@@ -0,0 +1,77 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 探测物体的传感器类型
+ *
+ * @author : 47040
+ * @since : Created in 2020/12/17 13:45
+ */
+public enum EM_DETECT_SENSOR_TYPE {
+ /**
+ * 未知
+ */
+ EM_DETECT_SENSOR_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 线圈
+ */
+ EM_DETECT_SENSOR_TYPE_COIL(1, "线圈"),
+ /**
+ * 视频
+ */
+ EM_DETECT_SENSOR_TYPE_VIDEO(2, "视频"),
+ /**
+ * 雷达
+ */
+ EM_DETECT_SENSOR_TYPE_RADAR(3, "雷达"),
+ /**
+ * 5G
+ */
+ EM_DETECT_SENSOR_TYPE_5G(4, "5G"),
+ /**
+ * 融合
+ */
+ EM_DETECT_SENSOR_TYPE_FUSION(5, "融合");
+
+ private final int value;
+ private final String note;
+
+ EM_DETECT_SENSOR_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_DETECT_SENSOR_TYPE enumType : EM_DETECT_SENSOR_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_DETECT_SENSOR_TYPE enumType : EM_DETECT_SENSOR_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_DETECT_SENSOR_TYPE getEnum(int value) {
+ for (EM_DETECT_SENSOR_TYPE e : EM_DETECT_SENSOR_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_DETECT_SENSOR_TYPE.EM_DETECT_SENSOR_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DEVICE_ATTRIBUTE.java b/src/main/java/com/netsdk/lib/enumeration/EM_DEVICE_ATTRIBUTE.java
new file mode 100644
index 0000000..68b53ff
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DEVICE_ATTRIBUTE.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 设备属性
+ * @date 2023/04/19 18:56:54
+ */
+public enum EM_DEVICE_ATTRIBUTE {
+ /**
+ * 未知
+ */
+ EM_DEVICE_ATTRIBUTE_UNKNOWN(0, "未知"),
+ /**
+ * 主属性
+ */
+ EM_DEVICE_ATTRIBUTE_MASTER(1, "主属性"),
+ /**
+ * 辅属性
+ */
+ EM_DEVICE_ATTRIBUTE_ASSISTANT(2, "辅属性");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_DEVICE_ATTRIBUTE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_DEVICE_ATTRIBUTE enumType : EM_DEVICE_ATTRIBUTE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_DEVICE_ATTRIBUTE enumType : EM_DEVICE_ATTRIBUTE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DEV_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/EM_DEV_STATUS.java
new file mode 100644
index 0000000..2191473
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DEV_STATUS.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 设备状态
+* @date 2022/10/09 11:29:42
+*/
+public enum EM_DEV_STATUS {
+/**
+未知
+*/
+ EM_DEV_STATUS_UNKNOWN(-1, "未知"),
+/**
+离线
+*/
+ EM_DEV_STATUS_OFFLINE(0, "离线"),
+/**
+在线
+*/
+ EM_DEV_STATUS_ONLINE(1, "在线");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_DEV_STATUS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_DEV_STATUS enumType : EM_DEV_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_DEV_STATUS enumType : EM_DEV_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_DEV_STATUS getEnum(int value) {
+ for (EM_DEV_STATUS e : EM_DEV_STATUS.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_DEV_STATUS.EM_DEV_STATUS_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE.java
new file mode 100644
index 0000000..8f4d6c7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE.java
@@ -0,0 +1,27 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * className:EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE
+ * description:
+ * 枚举值,下发设置&获取设置
+ *
+ * author:251589
+ * createTime:2020/12/29 14:04
+ *
+ * @version v1.0
+ */
+public class EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE {
+ public static final int EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE_UNKNOWN = 0; // 未知
+ public static final int EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE_FACE_DETECTION = 1; // 目标检测
+ public static final int EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE_FACE_ANALYSIS = 2; // 人脸分析
+ public static final int EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE_FACE_ATTRIBUTE = 3; // 人脸属性
+ public static final int EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE_FACE_COMPARE = 4; // 人脸比对
+ public static final int EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE_NORMAL = 5; // 智能通用行为分析
+ public static final int EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE_OBJECT_DETECT = 6; // 智能 视频结构化
+ public static final int EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE_SMART_MOTION = 7; // 动检,对应的结构体 NET_CFG_SMART_MOTION_DETECT
+ public static final int EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE_ENCODE_ENHANCE = 8; // 编码增强
+ public static final int EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE_ONE_KEY_EXPAND = 9; // 一键扩展
+ public static final int EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE_NUMBER_STAT = 10; // 人数统计
+ public static final int EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE_INTELLIGENT = 11; // 智能功能,表示所有智能功能
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DIALDETECT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_DIALDETECT_TYPE.java
new file mode 100644
index 0000000..f5c38b2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DIALDETECT_TYPE.java
@@ -0,0 +1,109 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 仪表类型
+* @date 2022/06/30 11:30:53
+*/
+public enum EM_DIALDETECT_TYPE {
+/**
+未知
+*/
+ EM_DIALDETECT_TYPE_UNKNOWN(0, "未知"),
+/**
+压板检测
+*/
+ EM_DIALDETECT_TYPE_PLATEN(1, "压板检测"),
+/**
+刀闸检测
+*/
+ EM_DIALDETECT_TYPE_KNIFE(2, "刀闸检测"),
+/**
+指针表计检测
+*/
+ EM_DIALDETECT_TYPE_POINTERMETER(3, "指针表计检测"),
+/**
+油位表计
+*/
+ EM_DIALDETECT_TYPE_OILMETER(4, "油位表计"),
+/**
+数码管字符检测
+*/
+ EM_DIALDETECT_TYPE_LED(5, "数码管字符检测"),
+/**
+液晶屏字符检测
+*/
+ EM_DIALDETECT_TYPE_LCD(6, "液晶屏字符检测"),
+/**
+指示灯检测
+*/
+ EM_DIALDETECT_TYPE_LIGHT(7, "指示灯检测"),
+/**
+旋转开关检测
+*/
+ EM_DIALDETECT_TYPE_SWITCH(8, "旋转开关检测"),
+/**
+呼吸器检测
+*/
+ EM_DIALDETECT_TYPE_PESPIRATOR(9, "呼吸器检测"),
+/**
+字符指示器检测
+*/
+ EM_DIALDETECT_TYPE_CHARLNDICTOR(10, "字符指示器检测"),
+/**
+指针指示器检测
+*/
+ EM_DIALDETECT_TYPE_POINTERLNDICTOR(11, "指针指示器检测"),
+/**
+液位计检测
+*/
+ EM_DIALDETECT_TYPE_OILLEVEL(12, "液位计检测"),
+/**
+拨码盘字符检测
+*/
+ EM_DIALDETECT_TYPE_DIALSWTICH(13, "拨码盘字符检测");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_DIALDETECT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_DIALDETECT_TYPE enumType : EM_DIALDETECT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_DIALDETECT_TYPE enumType : EM_DIALDETECT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_DIALDETECT_TYPE getEnum(int value) {
+ for (EM_DIALDETECT_TYPE e : EM_DIALDETECT_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_DIALDETECT_TYPE.EM_DIALDETECT_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DIAL_INTERFACE.java b/src/main/java/com/netsdk/lib/enumeration/EM_DIAL_INTERFACE.java
new file mode 100644
index 0000000..cd0cf82
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DIAL_INTERFACE.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 拨号网卡名称
+*/
+public enum EM_DIAL_INTERFACE
+{
+ /**
+ * 未知
+ */
+ EM_DIAL_INTERFACE_UNKNOWN(0, "未知"),
+ /**
+ * 有线网卡
+ */
+ EM_DIAL_INTERFACE_ETH0(1, "有线网卡"),
+ /**
+ * 无线网卡
+ */
+ EM_DIAL_INTERFACE_ETH2(2, "无线网卡"),
+ /**
+ * 3G网卡
+ */
+ EM_DIAL_INTERFACE_3G(3, "3G网卡");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_DIAL_INTERFACE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_DIAL_INTERFACE enumType : EM_DIAL_INTERFACE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_DIAL_INTERFACE enumType : EM_DIAL_INTERFACE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DIAL_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_DIAL_STATE.java
new file mode 100644
index 0000000..d902403
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DIAL_STATE.java
@@ -0,0 +1,77 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 表盘状态
+* @date 2022/06/28 19:44:55
+*/
+public enum EM_DIAL_STATE {
+/**
+未知
+*/
+ EM_DIAL_STATE_UNKNOWN(0, "未知"),
+/**
+正常
+*/
+ EM_DIAL_STATE_NORMAL(1, "正常"),
+/**
+模糊
+*/
+ EM_DIAL_STATE_DIM(2, "模糊"),
+/**
+表盘破损
+*/
+ EM_DIAL_STATE_DIAL_BROKEN(3, "表盘破损"),
+/**
+外壳破裂
+*/
+ EM_DIAL_STATE_SHELL_BROKEN(4, "外壳破裂"),
+/**
+读数异常
+*/
+ EM_DIAL_STATE_ABNORMAL_READING(5, "读数异常");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_DIAL_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_DIAL_STATE enumType : EM_DIAL_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_DIAL_STATE enumType : EM_DIAL_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_DIAL_STATE getEnum(int value) {
+ for (EM_DIAL_STATE e : EM_DIAL_STATE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_DIAL_STATE.EM_DIAL_STATE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DIRECTION.java b/src/main/java/com/netsdk/lib/enumeration/EM_DIRECTION.java
new file mode 100644
index 0000000..9d39472
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DIRECTION.java
@@ -0,0 +1,90 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 箭头指向
+* @origin autoTool
+* @date 2023/06/27 15:49:59
+*/
+public enum EM_DIRECTION {
+/**
+
+*/
+ EM_DIRECTION_UNKNOWN(0, ""),
+/**
+左
+*/
+ EM_DIRECTION_LEFT(1, "左"),
+/**
+左上
+*/
+ EM_DIRECTION_UPLEFT(2, "左上"),
+/**
+上
+*/
+ EM_DIRECTION_UP(3, "上"),
+/**
+右上
+*/
+ EM_DIRECTION_UPRIGHT(4, "右上"),
+/**
+右
+*/
+ EM_DIRECTION_RIGHT(5, "右"),
+/**
+右下
+*/
+ EM_DIRECTION_DOWNRIGHT(6, "右下"),
+/**
+下
+*/
+ EM_DIRECTION_DOWN(7, "下"),
+/**
+左下
+*/
+ EM_DIRECTION_DOWNLEFT(8, "左下");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_DIRECTION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_DIRECTION enumType : EM_DIRECTION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_DIRECTION enumType : EM_DIRECTION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_DIRECTION getEnum(int value) {
+ for (EM_DIRECTION e : EM_DIRECTION.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_DIRECTION.EM_DIRECTION_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DIRECTION_ACCURATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_DIRECTION_ACCURATE.java
new file mode 100644
index 0000000..d393881
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DIRECTION_ACCURATE.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 支持的去重方向
+ * @origin autoTool
+ * @date 2023/09/22 13:39:22
+ */
+public enum EM_DIRECTION_ACCURATE {
+ /**
+ * 未知
+ */
+ EM_DIRECTION_ACCURATE_UNKNOWN(0, "未知"),
+ /**
+ * 进入
+ */
+ EM_DIRECTION_ACCURATE_ENTER(1, "进入"),
+ /**
+ * 离开
+ */
+ EM_DIRECTION_ACCURATE_EXIT(2, "离开");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_DIRECTION_ACCURATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_DIRECTION_ACCURATE enumType : EM_DIRECTION_ACCURATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_DIRECTION_ACCURATE enumType : EM_DIRECTION_ACCURATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_DIRECTION_ACCURATE getEnum(int value) {
+ for (EM_DIRECTION_ACCURATE e : EM_DIRECTION_ACCURATE.values()) {
+ if (e.getValue() == value) {
+ return e;
+ }
+ }
+ return EM_DIRECTION_ACCURATE.EM_DIRECTION_ACCURATE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DIRECTION_AFTER_POWER_OFF.java b/src/main/java/com/netsdk/lib/enumeration/EM_DIRECTION_AFTER_POWER_OFF.java
new file mode 100644
index 0000000..9db924e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DIRECTION_AFTER_POWER_OFF.java
@@ -0,0 +1,50 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 闸机断电以后门摆动放向
+ * @date 2021/2/7
+ */
+public enum EM_DIRECTION_AFTER_POWER_OFF {
+ /** 未知 */
+ EM_DIRECTION_AFTER_POWER_OFF_UNKNOWN(-1, "未知"),
+ /** 进门方向 */
+ EM_DIRECTION_AFTER_POWER_OFF_IN(0, "进门方向"),
+ /** 出门方向 */
+ EM_DIRECTION_AFTER_POWER_OFF_OUT(1, "出门方向");
+
+ private int mode;
+ private String desc;
+
+ EM_DIRECTION_AFTER_POWER_OFF(int mode, String desc) {
+ this.mode = mode;
+ this.desc = desc;
+ }
+
+ public static EM_DIRECTION_AFTER_POWER_OFF getEmDirectionAfterPowerOff(int mode) {
+ for (EM_DIRECTION_AFTER_POWER_OFF powerOff : EM_DIRECTION_AFTER_POWER_OFF.values()) {
+ if (powerOff.mode == mode) {
+ return powerOff;
+ }
+ }
+ return EM_DIRECTION_AFTER_POWER_OFF_UNKNOWN;
+ }
+
+ public int getMode() {
+ return mode;
+ }
+
+ public void setMode(int mode) {
+ this.mode = mode;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public void setDesc(String desc) {
+ this.desc = desc;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DISK_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_DISK_STATE.java
new file mode 100644
index 0000000..1da3926
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DISK_STATE.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 光盘状态
+ * @date 2021/2/22
+ */
+public enum EM_DISK_STATE {
+ /** 未知 */
+ EM_DISK_STATE_UNKNOWN,
+ /** 已放磁盘 */
+ EM_DISK_STATE_EXIST,
+ /** 未放磁盘 */
+ EM_DISK_STATE_NO_EXIST,
+ /** 需要换盘 */
+ EM_DISK_STATE_NEED_CHANGE;
+
+ public static EM_DISK_STATE getDiskState(int state) {
+ for (EM_DISK_STATE diskState : EM_DISK_STATE.values()) {
+ if (diskState.ordinal() == state) {
+ return diskState;
+ }
+ }
+ return EM_DISK_STATE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DISPLAY_CAMERA_ANGLE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_DISPLAY_CAMERA_ANGLE_TYPE.java
new file mode 100644
index 0000000..43dc853
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DISPLAY_CAMERA_ANGLE_TYPE.java
@@ -0,0 +1,50 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 摄像头安装角度显示方式
+ * @date 2021/01/11
+ */
+public enum EM_DISPLAY_CAMERA_ANGLE_TYPE {
+ // 未知的显示方式
+ EM_DISPLAY_CAMERA_ANGLE_UNKNOWN(0, "未知的显示方式"),
+ // 按角度值配置(默认)
+ EM_DISPLAY_CAMERA_ANGLE_NUM(1, "按角度值配置"),
+ // 按模式配置,0~20展示为顶装,21~90展示为斜装,配置时按60下发
+ EM_DISPLAY_CAMERA_ANGLE_MODE(2, "按模式配置");
+
+ private int value;
+ private String note;
+
+ private EM_DISPLAY_CAMERA_ANGLE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_DISPLAY_CAMERA_ANGLE_TYPE enumType : EM_DISPLAY_CAMERA_ANGLE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_DISPLAY_CAMERA_ANGLE_TYPE enumType : EM_DISPLAY_CAMERA_ANGLE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DOOR_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_DOOR_STATE.java
new file mode 100644
index 0000000..4563188
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DOOR_STATE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 箱门状态
+* @date 2022/06/28 19:44:55
+*/
+public enum EM_DOOR_STATE {
+/**
+未知
+*/
+ EM_DOOR_STATE_UNKNOWN(0, "未知"),
+/**
+打开
+*/
+ EM_DOOR_STATE_OPEN(1, "打开"),
+/**
+关闭
+*/
+ EM_DOOR_STATE_CLOSE(2, "关闭");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_DOOR_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_DOOR_STATE enumType : EM_DOOR_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_DOOR_STATE enumType : EM_DOOR_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_DOOR_STATE getEnum(int value) {
+ for (EM_DOOR_STATE e : EM_DOOR_STATE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_DOOR_STATE.EM_DOOR_STATE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DOOR_WING_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_DOOR_WING_STATE.java
new file mode 100644
index 0000000..4896c34
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DOOR_WING_STATE.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 门翼状态
+*/
+public enum EM_DOOR_WING_STATE
+{
+ /**
+ * 未知
+ */
+ EM_DOOR_WING_STATE_UNKNOWN(0, "未知"),
+ /**
+ * 关门
+ */
+ EM_DOOR_WING_STATE_CLOSE(1, "关门"),
+ /**
+ * 进口打开
+ */
+ EM_DOOR_WING_STATE_ENTER_OPEN(2, "进口打开"),
+ /**
+ * 出口打开
+ */
+ EM_DOOR_WING_STATE_LEAVE_OPEN(3, "出口打开");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_DOOR_WING_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_DOOR_WING_STATE enumType : EM_DOOR_WING_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_DOOR_WING_STATE enumType : EM_DOOR_WING_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DOWNLOAD_DATA_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_DOWNLOAD_DATA_TYPE.java
new file mode 100644
index 0000000..1bf05c4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DOWNLOAD_DATA_TYPE.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 下载数据类型
+ *
+ * @author : 47040
+ * @since : Created in 2020/12/28 16:03
+ */
+public enum EM_DOWNLOAD_DATA_TYPE {
+ EM_DOWNLOAD_DATA_RECORD(0, "录像"),
+ EM_DOWNLOAD_DATA_PICTURE(1, "图片");
+
+ private final int value;
+ private final String note;
+
+ EM_DOWNLOAD_DATA_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_DOWNLOAD_DATA_TYPE enumType : EM_DOWNLOAD_DATA_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_DOWNLOAD_DATA_TYPE enumType : EM_DOWNLOAD_DATA_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_DOWNLOAD_DATA_TYPE getEnum(int value) {
+ for (EM_DOWNLOAD_DATA_TYPE e : EM_DOWNLOAD_DATA_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_DOWNLOAD_DATA_TYPE.EM_DOWNLOAD_DATA_RECORD;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DOWNLOAD_FILE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_DOWNLOAD_FILE_TYPE.java
new file mode 100644
index 0000000..36d14c7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DOWNLOAD_FILE_TYPE.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 下载文件方式
+ *
+ * @author : 47040
+ * @since : Created in 2020/12/28 15:25
+ */
+public enum EM_DOWNLOAD_FILE_TYPE {
+ EM_DOWNLOAD_BY_FILENAME(0, "按文件名下载"),
+ EM_DOWNLOAD_BY_CONDITION(1, "按条件下载");
+
+ private final int value;
+ private final String note;
+
+ EM_DOWNLOAD_FILE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_DOWNLOAD_FILE_TYPE enumType : EM_DOWNLOAD_FILE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_DOWNLOAD_FILE_TYPE enumType : EM_DOWNLOAD_FILE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_DOWNLOAD_FILE_TYPE getEnum(int value) {
+ for (EM_DOWNLOAD_FILE_TYPE e : EM_DOWNLOAD_FILE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_DOWNLOAD_FILE_TYPE.EM_DOWNLOAD_BY_FILENAME;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DOWNLOAD_TIME_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_DOWNLOAD_TIME_TYPE.java
new file mode 100644
index 0000000..61dff93
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DOWNLOAD_TIME_TYPE.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 下载时间类型
+ *
+ * @author : 47040
+ * @since : Created in 2020/12/28 15:58
+ */
+public enum EM_DOWNLOAD_TIME_TYPE {
+ EM_DOWNLOAD_TIME_SNAP(0, "抓拍时间"),
+ EM_DOWNLOAD_TIME_STORAGE(1, "存储时间");
+
+ private final int value;
+ private final String note;
+
+ EM_DOWNLOAD_TIME_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_DOWNLOAD_TIME_TYPE enumType : EM_DOWNLOAD_TIME_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_DOWNLOAD_TIME_TYPE enumType : EM_DOWNLOAD_TIME_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_DOWNLOAD_TIME_TYPE getEnum(int value) {
+ for (EM_DOWNLOAD_TIME_TYPE e : EM_DOWNLOAD_TIME_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_DOWNLOAD_TIME_TYPE.EM_DOWNLOAD_TIME_SNAP;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DRIVING_DIRECTION.java b/src/main/java/com/netsdk/lib/enumeration/EM_DRIVING_DIRECTION.java
new file mode 100644
index 0000000..25c13dc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DRIVING_DIRECTION.java
@@ -0,0 +1,51 @@
+package com.netsdk.lib.enumeration;
+
+public enum EM_DRIVING_DIRECTION {
+ /**
+ * 未知
+ */
+ EM_DRIVING_DIRECTION_UNKNOWN(0, "未知"),
+ /**
+ * 驶入
+ */
+ EM_DRIVING_DIRECTION_IN(1, "驶入"),
+ /**
+ * 驶出
+ */
+ EM_DRIVING_DIRECTION_OUT(2, "驶出");
+
+ private int value;
+ private String note;
+
+ private EM_DRIVING_DIRECTION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_DRIVING_DIRECTION enumType : EM_DRIVING_DIRECTION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_DRIVING_DIRECTION enumType : EM_DRIVING_DIRECTION.values()) {
+ if (givenNote.equals(enumType.getNote()) ) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_DYNAMIC_LOCK_ERRORCODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_DYNAMIC_LOCK_ERRORCODE.java
new file mode 100644
index 0000000..f42cb07
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_DYNAMIC_LOCK_ERRORCODE.java
@@ -0,0 +1,77 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 动态密码锁错误码
+* @date 2022/06/23 10:09:19
+*/
+public enum EM_DYNAMIC_LOCK_ERRORCODE {
+/**
+未知
+*/
+ EM_DYNAMIC_LOCK_ERRORCODE_UNKNOWN(-1, "未知"),
+/**
+成功
+*/
+ EM_DYNAMIC_LOCK_ERRORCODE_SUCCESS(0, "成功"),
+/**
+操作失败
+*/
+ EM_DYNAMIC_LOCK_ERRORCODE_FAIL(1, "操作失败"),
+/**
+锁ID不存在
+*/
+ EM_DYNAMIC_LOCK_ERRORCODE_LOCK_NO_EXIT(2, "锁ID不存在"),
+/**
+锁已初始化
+*/
+ EM_DYNAMIC_LOCK_ERRORCODE_LOCK_INIT(3, "锁已初始化"),
+/**
+锁模块未启用
+*/
+ EM_DYNAMIC_LOCK_ERRORCODE_LOCK_NOT_USE(4, "锁模块未启用");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_DYNAMIC_LOCK_ERRORCODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_DYNAMIC_LOCK_ERRORCODE enumType : EM_DYNAMIC_LOCK_ERRORCODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_DYNAMIC_LOCK_ERRORCODE enumType : EM_DYNAMIC_LOCK_ERRORCODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_DYNAMIC_LOCK_ERRORCODE getEnum(int value) {
+ for (EM_DYNAMIC_LOCK_ERRORCODE e : EM_DYNAMIC_LOCK_ERRORCODE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_DYNAMIC_LOCK_ERRORCODE.EM_DYNAMIC_LOCK_ERRORCODE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_EAS_DEVICE_ALARM_INFO_CAPS.java b/src/main/java/com/netsdk/lib/enumeration/EM_EAS_DEVICE_ALARM_INFO_CAPS.java
new file mode 100644
index 0000000..c43def0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_EAS_DEVICE_ALARM_INFO_CAPS.java
@@ -0,0 +1,63 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 支持的报警信息
+*/
+public enum EM_EAS_DEVICE_ALARM_INFO_CAPS
+{
+ /**
+ * 未知
+ */
+ EM_EAS_DEVICE_ALARM_INFO_UNKNOWN(0, "未知"),
+ /**
+ * All:所有的报警信息
+ */
+ EM_EAS_DEVICE_ALARM_INFO_ALL(1, "All:所有的报警信息"),
+ /**
+ * FalseAlarm:误报信息
+ */
+ EM_EAS_DEVICE_ALARM_INFO_FALSE_ALARM(2, "FalseAlarm:误报信息"),
+ /**
+ * AlarmCount:报警计数
+ */
+ EM_EAS_DEVICE_ALARM_INFO_ALARM_COUNT(3, "AlarmCount:报警计数"),
+ /**
+ * AlarmSignalAtrength:报警信号强度
+ */
+ EM_EAS_DEVICE_ALARM_INFO_ALARM_SIGNAL_STRENGTH(4, "AlarmSignalAtrength:报警信号强度");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_EAS_DEVICE_ALARM_INFO_CAPS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_EAS_DEVICE_ALARM_INFO_CAPS enumType : EM_EAS_DEVICE_ALARM_INFO_CAPS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_EAS_DEVICE_ALARM_INFO_CAPS enumType : EM_EAS_DEVICE_ALARM_INFO_CAPS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_EMERGENCYSTATUS_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_EMERGENCYSTATUS_TYPE.java
new file mode 100644
index 0000000..0698b81
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_EMERGENCYSTATUS_TYPE.java
@@ -0,0 +1,40 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 紧急报警状态
+ * @date 2021/2/22
+ */
+public enum EM_EMERGENCYSTATUS_TYPE {
+ /** 未知 */
+ EM_EMERGENCYSTATUS_UNKNOWN(-1, "未知"),
+ EM_EMERGENCYSTATUS_CLOSE(0, "关闭"),
+ EM_EMERGENCYSTATUS_OPEN(1, "开启");
+
+ private int type;
+ private String desc;
+
+ EM_EMERGENCYSTATUS_TYPE(int type, String desc) {
+ this.type = type;
+ this.desc = desc;
+ }
+
+ public int getType() {
+ return type;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public static EM_EMERGENCYSTATUS_TYPE getEmergencyStatusType(int type) {
+ for (EM_EMERGENCYSTATUS_TYPE emergencyStatus : EM_EMERGENCYSTATUS_TYPE.values()) {
+ if (emergencyStatus.type == type) {
+ return emergencyStatus;
+ }
+ }
+ return EM_EMERGENCYSTATUS_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_EMOTION_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_EMOTION_TYPE.java
new file mode 100644
index 0000000..fd72e3e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_EMOTION_TYPE.java
@@ -0,0 +1,70 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 表情
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_EMOTION_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_EMOTION_TYPE_UNKNOWN = 0;
+ /**
+ * 普通/正常
+ */
+ public static final int EM_EMOTION_TYPE_NORMAL = 1;
+ /**
+ * 微笑
+ */
+ public static final int EM_EMOTION_TYPE_SMILE = 2;
+ /**
+ * 愤怒
+ */
+ public static final int EM_EMOTION_TYPE_ANGER = 3;
+ /**
+ * 悲伤
+ */
+ public static final int EM_EMOTION_TYPE_SADNESS = 4;
+ /**
+ * 厌恶
+ */
+ public static final int EM_EMOTION_TYPE_DISGUST = 5;
+ /**
+ * 害怕
+ */
+ public static final int EM_EMOTION_TYPE_FEAR = 6;
+ /**
+ * 惊讶
+ */
+ public static final int EM_EMOTION_TYPE_SURPRISE = 7;
+ /**
+ * 正常
+ */
+ public static final int EM_EMOTION_TYPE_NEUTRAL = 8;
+ /**
+ * 大笑
+ */
+ public static final int EM_EMOTION_TYPE_LAUGH = 9;
+ /**
+ * 高兴
+ */
+ public static final int EM_EMOTION_TYPE_HAPPY = 10;
+ /**
+ * 困惑
+ */
+ public static final int EM_EMOTION_TYPE_CONFUSED = 11;
+ /**
+ * 尖叫
+ */
+ public static final int EM_EMOTION_TYPE_SCREAM = 12;
+ /**
+ * 平静
+ */
+ public static final int EM_EMOTION_TYPE_CALMNESS = 13;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ENCLOSURE_ALARM_TYPE_EX.java b/src/main/java/com/netsdk/lib/enumeration/EM_ENCLOSURE_ALARM_TYPE_EX.java
new file mode 100644
index 0000000..b2bdec6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ENCLOSURE_ALARM_TYPE_EX.java
@@ -0,0 +1,64 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 详细类型
+ * @date 2022/12/06 19:32:31
+ */
+public enum EM_ENCLOSURE_ALARM_TYPE_EX {
+ /**
+ * 未知
+ */
+ ENCLOSURE_ALARM_EX_UNKNOWN(0, "未知"),
+ /**
+ * 驶入
+ */
+ ENCLOSURE_ALARM_EX_DRIVEIN(1, "驶入"),
+ /**
+ * 驶出
+ */
+ ENCLOSURE_ALARM_EX_DRIVEOUT(2, "驶出"),
+ /**
+ * 超速
+ */
+ ENCLOSURE_ALARM_EX_OVERSPEED(3, "超速"),
+ /**
+ * 超速消失
+ */
+ ENCLOSURE_ALARM_EX_SPEEDCLEAR(4, "超速消失");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_ENCLOSURE_ALARM_TYPE_EX(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_ENCLOSURE_ALARM_TYPE_EX enumType : EM_ENCLOSURE_ALARM_TYPE_EX.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_ENCLOSURE_ALARM_TYPE_EX enumType : EM_ENCLOSURE_ALARM_TYPE_EX.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ENCLOSURE_TYPE_EX.java b/src/main/java/com/netsdk/lib/enumeration/EM_ENCLOSURE_TYPE_EX.java
new file mode 100644
index 0000000..eb76254
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ENCLOSURE_TYPE_EX.java
@@ -0,0 +1,68 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 围栏报警类型
+ * @date 2022/12/06 19:32:31
+ */
+public enum EM_ENCLOSURE_TYPE_EX {
+ /**
+ * 未知
+ */
+ EM_ENCLOSURE_TYPE_EX_UNKNOWN(0, "未知"),
+ /**
+ * 限速区
+ */
+ EM_ENCLOSURE_TYPE_EX_LIMITSPEED(1, "限速区"),
+ /**
+ * 驾驶区
+ */
+ EM_ENCLOSURE_TYPE_EX_DRIVEALLOW(2, "驾驶区"),
+ /**
+ * 禁止区
+ */
+ EM_ENCLOSURE_TYPE_EX_FORBIDDRIVE(3, "禁止区"),
+ /**
+ * 装货区
+ */
+ EM_ENCLOSURE_TYPE_EX_LOADGOODS(4, "装货区"),
+ /**
+ * 卸货区
+ */
+ EM_ENCLOSURE_TYPE_EX_UPLOADGOODS(5, "卸货区");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_ENCLOSURE_TYPE_EX(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_ENCLOSURE_TYPE_EX enumType : EM_ENCLOSURE_TYPE_EX.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_ENCLOSURE_TYPE_EX enumType : EM_ENCLOSURE_TYPE_EX.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ENTRY_DIRECTION.java b/src/main/java/com/netsdk/lib/enumeration/EM_ENTRY_DIRECTION.java
new file mode 100644
index 0000000..5ffe67e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ENTRY_DIRECTION.java
@@ -0,0 +1,63 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @version 1.0
+ * @description 进口方向
+ * @date 2020/11/07
+ */
+public enum EM_ENTRY_DIRECTION {
+ // 未知
+ EM_ENTRY_UNKNOWN(0, "未知"),
+ // 北向南
+ EM_ENTRY_NORTH_TO_SOUTH(1, "北向南"),
+ // 东北向西南
+ EM_ENTRY_EASTNORTH_TO_WESTSOUTH(2, "东北向西南"),
+ // 东向西
+ EM_ENTRY_EAST_TO_WEST(3, "东向西"),
+ // 东南向西北
+ EM_ENTRY_EASTSOUTH_TO_WESTNORTH(4, "东南向西北"),
+ // 南向北
+ EM_ENTRY_SOUTH_TO_NORTH(5, "南向北"),
+ // 西南向东北
+ EM_ENTRY_WESTSOUTH_TO_EASTSOUTH(6, "西南向东北"),
+ // 西向东
+ EM_ENTRY_WEST_TO_EAST(7, "西向东"),
+ // 西北向东南
+ EM_ENTRY_WESTNORTH_TO_EASTSOUTH(8, "西北向东南");
+
+ private int value;
+ private String note;
+
+ private EM_ENTRY_DIRECTION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_ENTRY_DIRECTION enumType : EM_ENTRY_DIRECTION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_ENTRY_DIRECTION enumType : EM_ENTRY_DIRECTION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ENTRY_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_ENTRY_TYPE.java
new file mode 100644
index 0000000..b9b23cc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ENTRY_TYPE.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @version 1.0
+ * @description 进口类型
+ * @date 2020/11/07
+ */
+public enum EM_ENTRY_TYPE {
+ // 未知
+ EM_ENTRY_TYPE_UNKNOWN(0, "未知"),
+ // 左转
+ EM_ENTRY_TYPE_TURN_LEFT(1, "左转"),
+ // 直行
+ EM_ENTRY_TYPE_STRAIGHT(2, "直行"),
+ // 右转
+ EM_ENTRY_TYPE_TRUN_RIGHT(3, "右转"),
+ // 掉头
+ EM_ENTRY_TYPE_TURN_ROUND(4, "掉头");
+
+ private int value;
+ private String note;
+
+ private EM_ENTRY_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_ENTRY_TYPE enumType : EM_ENTRY_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_ENTRY_TYPE enumType : EM_ENTRY_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_DETECT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_DETECT_TYPE.java
new file mode 100644
index 0000000..5933f88
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_DETECT_TYPE.java
@@ -0,0 +1,67 @@
+package com.netsdk.lib.enumeration;
+
+public enum EM_EVENT_DETECT_TYPE {
+ /**未知*/
+ EM_EVENT_DETECT_TYPE_UNKNOWN(-1, "未知"),
+ /**小于等于阈值报警*/
+ EM_EVENT_DETECT_TYPE_LESS_OR_EQUAL(0, "小于等于阈值报警"),
+ /**大于等于阈值报警*/
+ EM_EVENT_DETECT_TYPE_GREATER_OR_EQUAL(1, "大于等于阈值报警"),
+ /**等于阀值报警*/
+ EM_EVENT_DETECT_TYPE_EQUAL(2, "等于阀值报警"),
+ /**不等于阀值报警*/
+ EM_EVENT_DETECT_TYPE_NOEQUAL(3, "不等于阀值报警"),
+ /**人数变化报警*/
+ EM_EVENT_DETECT_TYPE_CHANGE(4, "人数变化报警"),
+ /**大于阈值报警*/
+ EM_EVENT_DETECT_TYPE_GREATER(5, "大于阈值报警"),
+ /**小于阈值报警*/
+ EM_EVENT_DETECT_TYPE_LESS(6, "小于阈值报警"),
+ /**区间内报警,检测人数在区间范围内报警,包括边界值。区间值对应PersonNum字段*/
+ EM_EVENT_DETECT_TYPE_IN_INTERVAL(7, "区间内报警,检测人数在区间范围内报警,包括边界值。区间值对应PersonNum字段"),
+ /**区间外报警,检测人数在区间范围外报警,不包括边界值。区间值对应PersonNum字段*/
+ EM_EVENT_DETECT_TYPE_OUT_INTERVAL(8, "区间外报警,检测人数在区间范围外报警,不包括边界值。区间值对应PersonNum字段");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_EVENT_DETECT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_EVENT_DETECT_TYPE enumType : EM_EVENT_DETECT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_EVENT_DETECT_TYPE enumType : EM_EVENT_DETECT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+ public static EM_EVENT_DETECT_TYPE getEnum(int value) {
+ for (EM_EVENT_DETECT_TYPE e : EM_EVENT_DETECT_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_EVENT_DETECT_TYPE.EM_EVENT_DETECT_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_IVS.java b/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_IVS.java
new file mode 100644
index 0000000..e8e8ca1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_IVS.java
@@ -0,0 +1,478 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 智能分析事件类型枚举类
+ */
+public enum EM_EVENT_IVS {
+ /**
+ * 订阅所有事件
+ */
+ EVENT_IVS_ALL(0x00000001),
+ /**
+ * 警戒线事件(对应 DEV_EVENT_CROSSLINE_INFO)
+ */
+ EVENT_IVS_CROSSLINEDETECTION(0x00000002),
+ /**
+ * 警戒区事件(对应 DEV_EVENT_CROSSREGION_INFO)
+ */
+ EVENT_IVS_CROSSREGIONDETECTION(0x00000003),
+ /**
+ * 物品遗留事件(对应 DEV_EVENT_LEFT_INFO)
+ */
+ EVENT_IVS_LEFTDETECTION(0x00000005),
+ /**
+ * 停留事件(对应 DEV_EVENT_STAY_INFO)
+ */
+ EVENT_IVS_STAYDETECTION(0x00000006),
+ /**
+ * 徘徊事件(对应 DEV_EVENT_WANDER_INFO)
+ */
+ EVENT_IVS_WANDERDETECTION(0x00000007),
+ /**
+ * 移动事件(对应 DEV_EVENT_MOVE_INFO)
+ */
+ EVENT_IVS_MOVEDETECTION(0x00000009),
+ /**
+ * 聚众事件(对应 DEV_EVENT_RIOTERL_INFO)
+ */
+ EVENT_IVS_RIOTERDETECTION(0x0000000B),
+ /**
+ * 斗殴事件(对应 DEV_EVENT_FIGHT_INFO)
+ */
+ EVENT_IVS_FIGHTDETECTION(0x0000000E),
+ /**
+ * 交通路口事件----老规则(对应 DEV_EVENT_TRAFFICJUNCTION_INFO)
+ */
+ EVENT_IVS_TRAFFICJUNCTION(0x00000017),
+ /**
+ * 交通卡口事件----老规则(对应 DEV_EVENT_TRAFFICGATE_INFO)
+ */
+ EVENT_IVS_TRAFFICGATE(0x00000018),
+ /**
+ * 目标检测事件 (对应 DEV_EVENT_FACEDETECT_INFO)(智能规则对应 EVENT_IVS_FACEDETECT)
+ */
+ EVENT_IVS_FACEDETECT(0x0000001A),
+ /**
+ * 交通拥堵事件(对应 DEV_EVENT_TRAFFICJAM_INFO)
+ */
+ EVENT_IVS_TRAFFICJAM(0x0000001B),
+ /**
+ * 交通违章-闯红灯事件(对应 DEV_EVENT_TRAFFIC_RUNREDLIGHT_INFO)
+ */
+ EVENT_IVS_TRAFFIC_RUNREDLIGHT(0x00000100),
+ /**
+ * 交通违章-压车道线事件(对应 DEV_EVENT_TRAFFIC_OVERLINE_INFO)
+ */
+ EVENT_IVS_TRAFFIC_OVERLINE(0x00000101),
+ /**
+ * 交通违章-逆行事件(对应 DEV_EVENT_TRAFFIC_RETROGRADE_INFO)
+ */
+ EVENT_IVS_TRAFFIC_RETROGRADE(0x00000102),
+ /**
+ * 交通违章-违章左转(对应 DEV_EVENT_TRAFFIC_TURNLEFT_INFO)
+ */
+ EVENT_IVS_TRAFFIC_TURNLEFT(0x00000103),
+ /**
+ * 交通违章-违章右转(对应 DEV_EVENT_TRAFFIC_TURNRIGHT_INFO)
+ */
+ EVENT_IVS_TRAFFIC_TURNRIGHT(0x00000104),
+ /**
+ * 交通违章-违章掉头(对应 DEV_EVENT_TRAFFIC_UTURN_INFO)
+ */
+ EVENT_IVS_TRAFFIC_UTURN(0x00000105),
+ /**
+ * 交通违章-超速(对应 DEV_EVENT_TRAFFIC_OVERSPEED_INFO)
+ */
+ EVENT_IVS_TRAFFIC_OVERSPEED(0x00000106),
+ /**
+ * 交通违章-低速(对应 DEV_EVENT_TRAFFIC_UNDERSPEED_INFO)
+ */
+ EVENT_IVS_TRAFFIC_UNDERSPEED(0x00000107),
+ /**
+ * 交通违章-违章停车(对应 DEV_EVENT_TRAFFIC_PARKING_INFO)
+ */
+ EVENT_IVS_TRAFFIC_PARKING(0x00000108),
+ /**
+ * 交通违章-不按车道行驶(对应 DEV_EVENT_TRAFFIC_WRONGROUTE_INFO)
+ */
+ EVENT_IVS_TRAFFIC_WRONGROUTE(0x00000109),
+ /**
+ * 交通违章-违章变道(对应 DEV_EVENT_TRAFFIC_CROSSLANE_INFO)
+ */
+ EVENT_IVS_TRAFFIC_CROSSLANE(0x0000010A),
+ /**
+ * 交通违章-压黄线 (对应 DEV_EVENT_TRAFFIC_OVERYELLOWLINE_INFO)
+ */
+ EVENT_IVS_TRAFFIC_OVERYELLOWLINE(0x0000010B),
+ /**
+ * 交通违章-黄牌车占道事件(对应 DEV_EVENT_TRAFFIC_YELLOWPLATEINLANE_INFO)
+ */
+ EVENT_IVS_TRAFFIC_YELLOWPLATEINLANE(0x0000010E),
+ /**
+ * 交通违章-斑马线行人优先事件(对应 DEV_EVENT_TRAFFIC_PEDESTRAINPRIORITY_INFO)
+ */
+ EVENT_IVS_TRAFFIC_PEDESTRAINPRIORITY(0x0000010F),
+ /**
+ * 交通违章-禁止通行事件(对应 DEV_EVENT_TRAFFIC_NOPASSING_INFO)
+ */
+ EVENT_IVS_TRAFFIC_NOPASSING(0x00000111),
+ /**
+ * 异常奔跑事件(对应 DEV_EVENT_ABNORMALRUNDETECTION_INFO)
+ */
+ EVENT_IVS_ABNORMALRUNDETECTION(0x00000112),
+ /**
+ * 物品搬移事件(对应 DEV_EVENT_TAKENAWAYDETECTION_INFO)
+ */
+ EVENT_IVS_TAKENAWAYDETECTION(0x00000115),
+ /**
+ * 非法停车事件(对应 DEV_EVENT_PARKINGDETECTION_INFO)
+ */
+ EVENT_IVS_PARKINGDETECTION(0x00000116),
+ /**
+ * 目标识别事件(对应 DEV_EVENT_FACERECOGNITION_INFO, (对应的智能规则配置 CFG_FACERECOGNITION_INFO)
+ */
+ EVENT_IVS_FACERECOGNITION(0x00000117),
+ /**
+ * 交通手动抓拍事件(对应 DEV_EVENT_TRAFFIC_MANUALSNAP_INFO)
+ */
+ EVENT_IVS_TRAFFIC_MANUALSNAP(0x00000118),
+ /**
+ * 交通流量统计事件(对应 DEV_EVENT_TRAFFIC_FLOW_STATE)
+ */
+ EVENT_IVS_TRAFFIC_FLOWSTATE(0x00000119),
+ /**
+ * 有车占道事件(对应 DEV_EVENT_TRAFFIC_VEHICLEINROUTE_INFO)
+ */
+ EVENT_IVS_TRAFFIC_VEHICLEINROUTE(0x0000011B),
+ /**
+ * 外部报警事件(对应 DEV_EVENT_ALARM_INFO)
+ */
+ EVENT_ALARM_LOCALALARM(0x0000011D),
+ /**
+ * 交通违章--卡口事件----新规则(对应 DEV_EVENT_TRAFFICJUNCTION_INFO)
+ */
+ EVENT_IVS_TRAFFIC_TOLLGATE(0x00000120),
+ /**
+ * 交通违章--占用公交车道事件(对应 DEV_EVENT_TRAFFIC_VEHICLEINBUSROUTE_INFO)
+ */
+ EVENT_IVS_TRAFFIC_VEHICLEINBUSROUTE(0x00000124),
+ /**
+ * 交通违章--违章倒车事件(对应 DEV_EVENT_IVS_TRAFFIC_BACKING_INFO)
+ */
+ EVENT_IVS_TRAFFIC_BACKING(0x00000125),
+ /**
+ * 声音异常检测(对应 DEV_EVENT_IVS_AUDIO_ABNORMALDETECTION_INFO)
+ */
+ EVENT_IVS_AUDIO_ABNORMALDETECTION(0x00000126),
+ /**
+ * 交通违章-闯黄灯事件(对应 DEV_EVENT_TRAFFIC_RUNYELLOWLIGHT_INFO)
+ */
+ EVENT_IVS_TRAFFIC_RUNYELLOWLIGHT(0x00000127),
+ /**
+ * 攀高检测事件(对应 DEV_EVENT_IVS_CLIMB_INFO)
+ */
+ EVENT_IVS_CLIMBDETECTION(0x00000128),
+ /**
+ * 离岗检测事件(对应 DEV_EVENT_IVS_LEAVE_INFO)
+ */
+ EVENT_IVS_LEAVEDETECTION(0x00000129),
+ /**
+ * 交通违章--黄网格线抓拍事件(对应 DEV_EVENT_TRAFFIC_PARKINGONYELLOWBOX_INFO)
+ */
+ EVENT_IVS_TRAFFIC_PARKINGONYELLOWBOX(0x0000012A),
+ /**
+ * 车位有车事件(对应 DEV_EVENT_TRAFFIC_PARKINGSPACEPARKING_INFO )
+ */
+ EVENT_IVS_TRAFFIC_PARKINGSPACEPARKING(0x0000012B),
+ /**
+ * 车位无车事件(对应 DEV_EVENT_TRAFFIC_PARKINGSPACENOPARKING_INFO )
+ */
+ EVENT_IVS_TRAFFIC_PARKINGSPACENOPARKING(0x0000012C),
+ /**
+ * 交通行人事件(对应 DEV_EVENT_TRAFFIC_PEDESTRAIN_INFO)
+ */
+ EVENT_IVS_TRAFFIC_PEDESTRAIN(0x0000012D),
+ /**
+ * 交通抛洒物品事件(对应 DEV_EVENT_TRAFFIC_THROW_INFO)
+ */
+ EVENT_IVS_TRAFFIC_THROW(0x0000012E),
+ /**
+ * 交通违章--压停止线事件(对应 DEV_EVENT_TRAFFIC_OVERSTOPLINE)
+ */
+ EVENT_IVS_TRAFFIC_OVERSTOPLINE(0X00000137),
+ /**
+ * 交通违章--交通未系安全带事件(对应 DEV_EVENT_TRAFFIC_WITHOUT_SAFEBELT)
+ */
+ EVENT_IVS_TRAFFIC_WITHOUT_SAFEBELT(0x00000138),
+ /**
+ * 驾驶员抽烟事件(对应 DEV_EVENT_TRAFFIC_DRIVER_SMOKING)
+ */
+ EVENT_IVS_TRAFFIC_DRIVER_SMOKING(0x00000139),
+ /**
+ * 驾驶员打电话事件(对应 DEV_EVENT_TRAFFIC_DRIVER_CALLING)
+ */
+ EVENT_IVS_TRAFFIC_DRIVER_CALLING(0x0000013A),
+ /**
+ * 交通违章--未按规定依次通行(对应 DEV_EVENT_TRAFFIC_PASSNOTINORDER_INFO)
+ */
+ EVENT_IVS_TRAFFIC_PASSNOTINORDER(0x0000013C),
+ /**
+ * 视频遮挡事件(对应 DEV_EVENT_ALARM_VIDEOBLIND)
+ */
+ EVENT_ALARM_VIDEOBLIND(0x00000153),
+ /**
+ * 交通违章--车辆拥堵禁入事件(对应 DEV_EVENT_ALARM_JAMFORBIDINTO_INFO)
+ */
+ EVENT_IVS_TRAFFIC_JAM_FORBID_INTO(0x00000163),
+ /**
+ * 加油站提枪、挂枪事件(对应 DEV_EVENT_TRAFFIC_FCC_INFO)
+ */
+ EVENT_IVS_TRAFFIC_FCC(0x0000016B),
+ /**
+ * 门禁事件 (对应 DEV_EVENT_ACCESS_CTL_INFO)
+ */
+ EVENT_IVS_ACCESS_CTL(0x00000204),
+ /**
+ * SnapManual事件(对应 DEV_EVENT_SNAPMANUAL)
+ */
+ EVENT_IVS_SNAPMANUAL(0x00000205),
+ /**
+ * 生理疲劳驾驶事件(对应 DEV_EVENT_TIREDPHYSIOLOGICAL_INFO)
+ */
+ EVENT_IVS_TRAFFIC_TIREDPHYSIOLOGICAL(0x00000207),
+ /**
+ * 人证比对事件(对应 DEV_EVENT_CITIZEN_PICTURE_COMPARE_INFO )
+ */
+ EVENT_IVS_CITIZEN_PICTURE_COMPARE(0x00000209),
+ /**
+ * 人体特征事件(对应 DEV_EVENT_HUMANTRAIT_INFO)
+ */
+ EVENT_IVS_HUMANTRAIT(0x00000215),
+ /**
+ * 开车低头报警事件(对应DEV_EVENT_TIREDLOWERHEAD_INFO)
+ */
+ EVENT_IVS_TRAFFIC_TIREDLOWERHEAD(0x0000020A),
+ /**
+ * 开车左顾右盼报警事件(对应DEV_EVENT_DRIVERLOOKAROUND_INFO)
+ */
+ EVENT_IVS_TRAFFIC_DRIVERLOOKAROUND(0x0000020B),
+ /**
+ * 开车离岗报警事件(对应DEV_EVENT_DRIVERLEAVEPOST_INFO)
+ */
+ EVENT_IVS_TRAFFIC_DRIVERLEAVEPOST(0x0000020C),
+ /**
+ * 开车打哈欠事件(对应DEV_EVENT_DRIVERYAWN_INFO)
+ */
+ EVENT_IVS_TRAFFIC_DRIVERYAWN(0x00000210),
+ /**
+ * 人脸分析事件 (暂未有具体事件)
+ */
+ EVENT_IVS_FACEANALYSIS(0x00000217),
+ /**
+ * 车辆超速报警事件(对应 DEV_EVENT_HIGHSPEED_INFO)
+ */
+ EVENT_IVS_HIGHSPEED(0x0000022B),
+ /**
+ * 车牌对比事件(对应 DEV_EVENT_VEHICLE_RECOGNITION_INFO)
+ */
+ EVENT_IVS_VEHICLE_RECOGNITION(0x00000231),
+ /**
+ * 人群密度检测事件(对应结构体 DEV_EVENT_CROWD_DETECTION_INFO)
+ */
+ EVENT_IVS_CROWDDETECTION(0x0000022C),
+ /**
+ * 立体视觉区域内人数统计事件(对应DEV_EVENT_MANNUM_DETECTION_INFO)
+ */
+ EVENT_IVS_MAN_NUM_DETECTION(0x0000020E),
+ /**
+ * 电动扶梯运行异常事件 (对应DEV_EVENT_ELEVATOR_ABNORMAL_INFO)
+ */
+ EVENT_IVS_ELEVATOR_ABNORMAL(0x0000023D),
+ /**
+ * IVSS目标检测事件 (暂未有具体事件)
+ */
+ EVENT_IVSS_FACEATTRIBUTE(0x00000243),
+ /**
+ * IVSS目标识别事件 (暂未有具体事件)
+ */
+ EVENT_IVSS_FACECOMPARE(0x00000244),
+ /**
+ * 火警事件(对应 DEV_EVENT_FIREWARNING_INFO)
+ */
+ EVENT_IVS_FIREWARNING(0x00000245),
+ /**
+ * 车道偏移预警(对应 DEV_EVENT_LANEDEPARTURE_WARNNING_INFO)
+ */
+ EVENT_IVS_LANEDEPARTURE_WARNNING(0X00000251),
+ /**
+ * 前向碰撞预警(对应 DEV_EVENT_FORWARDCOLLISION_WARNNING_INFO)
+ */
+ EVENT_IVS_FORWARDCOLLISION_WARNNING(0x00000252),
+ /**
+ * 漂浮物检测事件 (对应 DEV_EVENT_FLOATINGOBJECT_DETECTION_INFO)
+ */
+ EVENT_IVS_FLOATINGOBJECT_DETECTION(0x00000257),
+ /**
+ * 打电话检测事件(对应 DEV_EVENT_PHONECALL_DETECT_INFO)
+ */
+ EVENT_IVS_PHONECALL_DETECT(0x0000025A),
+ /**
+ * 吸烟检测事件(对应 DEV_EVENT_SMOKING_DETECT_INFO)
+ */
+ EVENT_IVS_SMOKING_DETECT(0x0000025B),
+ /**
+ * 雷达限速报警事件(对应 DEV_EVENT_RADAR_SPEED_LIMIT_ALARM_INFO)
+ */
+ EVENT_IVS_RADAR_SPEED_LIMIT_ALARM(0x0000025C),
+ /**
+ * 水位检测事件 (对应 DEV_EVENT_WATER_LEVEL_DETECTION_INFO)
+ */
+ EVENT_IVS_WATER_LEVEL_DETECTION(0x0000025D),
+ /**
+ * 城市机动车违停事件 (对应 DEV_EVENT_CITY_MOTORPARKING_INFO)
+ */
+ EVENT_IVS_CITY_MOTORPARKING(0x0000024F),
+ /**
+ * 城市机非动车违停事件 (对应 DEV_EVENT_CITY_NONMOTORPARKING_INFO)
+ */
+ EVENT_IVS_CITY_NONMOTORPARKING(0x00000250),
+ /**
+ * 违规撑伞检测事件 (对应 DEV_EVENT_HOLD_UMBRELLA_INFO)
+ */
+ EVENT_IVS_HOLD_UMBRELLA(0x0000025E),
+ /**
+ * 垃圾暴露检测事件 (对应 DEV_EVENT_GARBAGE_EXPOSURE_INFO)
+ */
+ EVENT_IVS_GARBAGE_EXPOSURE(0x0000025F),
+ /**
+ * 垃圾桶满溢检测事件 (对应 DEV_EVENT_DUSTBIN_OVER_FLOW_INFO)
+ */
+ EVENT_IVS_DUSTBIN_OVER_FLOW(0x00000260),
+ /**
+ * 门前脏乱检测事件 (对应 DEV_EVENT_DOOR_FRONT_DIRTY_INFO)
+ */
+ EVENT_IVS_DOOR_FRONT_DIRTY(0x00000261),
+ /**
+ * 排队滞留时间报警事件 (对应 DEV_EVENT_QUEUESTAY_DETECTION_INFO)
+ */
+ EVENT_IVS_QUEUESTAY_DETECTION(0X00000262),
+ /**
+ * 排队人数异常报警事件(对应 DEV_EVENT_QUEUENUM_DETECTION_INFO)
+ */
+ EVENT_IVS_QUEUENUM_DETECTION(0X00000263),
+ /**
+ * 生成图规则事件(对应 DEV_EVENT_GENERATEGRAPH_DETECTION_INFO)
+ */
+ EVENT_IVS_GENERATEGRAPH_DETECTION(0X00000264),
+ /**
+ * 交通违章-手动取证(对应 DEV_EVENT_TRAFFIC_PARKING_MANUAL_INFO)
+ */
+ EVENT_IVS_TRAFFIC_PARKING_MANUAL(0x00000265),
+ /**
+ * 安全帽检测事件(对应 DEV_EVENT_HELMET_DETECTION_INFO)
+ */
+ EVENT_IVS_HELMET_DETECTION(0x00000266),
+ /**
+ * 包裹堆积程度检测事件(对应 DEV_EVENT_DEPOSIT_DETECTION_INFO)
+ */
+ EVENT_IVS_DEPOSIT_DETECTION(0x00000267),
+ /**
+ * 热点异常报警事件(对应 DEV_EVENT_HOTSPOT_WARNING_INFO)
+ */
+ EVENT_IVS_HOTSPOT_WARNING(0x00000268),
+ /**
+ * 称重平台检测事件(对应 DEV_EVENT_WEIGHING_PLATFORM_DETECTION_INFO)
+ */
+ EVENT_IVS_WEIGHING_PLATFORM_DETECTION(0x00000269),
+ /**
+ * 课堂行为分析事件(对应 DEV_EVENT_CLASSROOM_BEHAVIOR_INFO)
+ */
+ EVENT_IVS_CLASSROOM_BEHAVIOR(0x0000026A),
+ /**
+ * 工装(安全帽/工作服等)检测事件(对应 DEV_EVENT_WORKCLOTHES_DETECT_INFO)
+ */
+ EVENT_IVS_WORKCLOTHES_DETECT(0x0000026E),
+ /**
+ * 立体视觉站立事件(对应DEV_EVENT_MANSTAND_DETECTION_INFO)
+ */
+ EVENT_IVS_MAN_STAND_DETECTION(0x0000020D),
+ /**
+ * 加油站车辆检测事件 (对应 DEV_EVENT_GASSTATION_VEHICLE_DETECT_INFO)
+ */
+ EVENT_IVS_GASSTATION_VEHICLE_DETECT(0x00000283),
+ /**
+ * 商铺占道经营事件(对应 DEV_EVENT_SHOPPRESENCE_INFO)
+ */
+ EVENT_IVS_SHOPPRESENCE(0x00000246),
+ /**
+ * 流动摊贩事件 (对应 DEV_EVENT_FLOWBUSINESS_INFO)
+ */
+ EVENT_IVS_FLOWBUSINESS(0x0000024E),
+ /**
+ * 行人卡口事件(对应 DEV_EVENT_PEDESTRIAN_JUNCTION_INFO)
+ */
+ EVENT_IVS_PEDESTRIAN_JUNCTION(0x00000230),
+ /**
+ * 拉横幅事件(对应 DEV_EVENT_BANNER_DETECTION_INFO)
+ */
+ EVENT_IVS_BANNER_DETECTION(0x0000023B),
+ /**
+ * 智慧厨房穿着检测事件(对不戴口罩、厨师帽以及颜色不符合规定的厨师服进行报警)(对应 DEV_EVENT_SMART_KITCHEN_CLOTHES_DETECTION_INFO)
+ */
+ EVENT_IVS_SMART_KITCHEN_CLOTHES_DETECTION(0x0000029D),
+ /**
+ * 水位监测事件
+ */
+ EVENT_IVS_WATER_STAGE_MONITOR(0x0000030D),
+ /**
+ * 暴力抛物检测(对应 DEV_EVENT_VIOLENT_THROW_DETECTION_INFO)
+ */
+ EVENT_IVS_VIOLENT_THROW_DETECTION(0x0000027D),
+ /**
+ * 人体温智能检测事件(对应 DEV_EVENT_ANATOMY_TEMP_DETECT_INFO)
+ */
+ EVENT_IVS_ANATOMY_TEMP_DETECT(0x00000303),
+ /**
+ * 起雾检测事件(对应 DEV_EVENT_FOG_DETECTION)
+ */
+ EVENT_IVS_FOG_DETECTION(0x00000308),
+ /**
+ * 视频异常事件(对应 DEV_EVENT_VIDEOABNORMALDETECTION_INFO)
+ */
+ EVENT_IVS_VIDEOABNORMALDETECTION(0x00000013),
+ /**
+ * 单人独处事件(对应 DEV_EVENT_STAY_ALONE_DETECTION_INFO)
+ */
+ EVENT_IVS_STAY_ALONE_DETECTION(0x00000270),
+ /**
+ * 囚犯起身事件(对应 DEV_EVENT_PSRISEDETECTION_INFO)
+ */
+ EVENT_IVS_PSRISEDETECTION(0x0000011E),
+ /**
+ * 高空抛物检测(对应DEV_EVENT_HIGH_TOSS_DETECT_INFO)
+ */
+ EVENT_IVS_HIGH_TOSS_DETECT(0x0000028D),
+ /**
+ * 特征提取事件(对应 DEV_EVENT_FEATURE_ABSTRACT_INFO)
+ */
+ EVENT_IVS_FEATURE_ABSTRACT(0x00000276),
+ /**
+ * 非法运输事件(对应 NET_DEV_EVENT_ILLEGAL_CARRIAGE_INFO)
+ */
+ EVENT_IVS_ILLEGAL_CARRIAGE(0x0000042F),
+ /**
+ * 打包垃圾检测事件(对应 NET_DEV_EVENT_GARBAGE_PLASTICBAG_INFO)
+ */
+ EVENT_IVS_GARBAGE_PLASTICBAG(0x00000459);
+
+ private final int id;
+
+ private EM_EVENT_IVS(int id) {
+ this.id = id;
+ }
+
+ public int getId() {
+ return id;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_IVS_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_IVS_TYPE.java
new file mode 100644
index 0000000..11d7e5f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_IVS_TYPE.java
@@ -0,0 +1,745 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.structure.DEV_EVENT_NUMBERSTAT_INFO;
+import com.sun.jna.Callback;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 智能分析事件类型
+ * 对应接口{@link com.netsdk.lib.NetSDKLib#CLIENT_RealLoadPictureEx(NetSDKLib.LLong, int, int, int, Callback, Pointer, Pointer)}
+ * @date 2020/10/14
+ */
+public enum EM_EVENT_IVS_TYPE {
+ /**
+ * 订阅所有事件
+ */
+ EVENT_IVS_ALL(0x00000001, "所有事件"),
+ /**
+ * 警戒线事件
+ * 对应结构体{@link NetSDKLib.DEV_EVENT_CROSSLINE_INFO}
+ */
+ EVENT_IVS_CROSSLINEDETECTION(0x00000002, "警戒线事件"),
+ /**
+ * 警戒区事件
+ * 对应 {@link NetSDKLib.DEV_EVENT_CROSSREGION_INFO}
+ */
+ EVENT_IVS_CROSSREGIONDETECTION(0x00000003, "警戒区事件"),
+ /**
+ * 贴条事件
+ * 对应 {@see DEV_EVENT_PASTE_INFO}
+ */
+ EVENT_IVS_PASTEDETECTION(0x00000004, "贴条事件"),
+ /**
+ * 物品遗留事件
+ * (对应 {@link NetSDKLib.DEV_EVENT_LEFT_INFO})
+ */
+ EVENT_IVS_LEFTDETECTION(0x00000005, "物品遗留事件"),
+ /**
+ * 停留事件
+ * (对应 {@link NetSDKLib.DEV_EVENT_STAY_INFO})
+ */
+ EVENT_IVS_STAYDETECTION(0x00000006, "停留事件"),
+ /**
+ * 徘徊事件
+ * (对应 {@link NetSDKLib.DEV_EVENT_WANDER_INFO})
+ */
+ EVENT_IVS_WANDERDETECTION(0x00000007, "徘徊事件"),
+ /**
+ * 物品保全事件
+ * (对应 {@see DEV_EVENT_PRESERVATION_INFO})
+ */
+ EVENT_IVS_PRESERVATION(0x00000008, "物品保全事件"),
+ /**
+ * (对应 {@link NetSDKLib.DEV_EVENT_MOVE_INFO})
+ */
+ EVENT_IVS_MOVEDETECTION(0x00000009, "移动事件"),
+ /**
+ * {@see DEV_EVENT_TAIL_INFO}
+ */
+ EVENT_IVS_TAILDETECTION(0x0000000A, "尾随事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_RIOTERL_INFO}
+ */
+ EVENT_IVS_RIOTERDETECTION(0x0000000B, "聚众事件"),
+ /**
+ * {@see DEV_EVENT_FIRE_INFO}
+ */
+ EVENT_IVS_FIREDETECTION(0x0000000C, "火警事件"),
+ /**
+ * {@see DEV_EVENT_SMOKE_INFO}
+ */
+ EVENT_IVS_SMOKEDETECTION(0x0000000D, "烟雾报警事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_FIGHT_INFO}
+ */
+ EVENT_IVS_FIGHTDETECTION(0x0000000E, "斗殴事件"),
+ /**
+ * {@see DEV_EVENT_FLOWSTAT_INFO}
+ */
+ EVENT_IVS_FLOWSTAT(0x0000000F, "流量统计事件"),
+ /**
+ * {@link DEV_EVENT_NUMBERSTAT_INFO}
+ */
+ EVENT_IVS_NUMBERSTAT(0x00000010, "数量统计事件"),
+ EVENT_IVS_CAMERACOVERDDETECTION(0x00000011, "摄像头覆盖事件(保留)"),
+ EVENT_IVS_CAMERAMOVEDDETECTION(0x00000012, "摄像头移动事件(保留)"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_VIDEOABNORMALDETECTION_INFO}
+ */
+ EVENT_IVS_VIDEOABNORMALDETECTION(0x00000013, "视频异常事件"),
+ EVENT_IVS_VIDEOBADDETECTION(0x00000014, "视频损坏事件(保留)"),
+ /**
+ * {@see DEV_EVENT_TRAFFICCONTROL_INFO}
+ *
+ * {@see }
+ */
+ EVENT_IVS_TRAFFICCONTROL(0x00000015, "交通管理事件"),
+ /**
+ * {@see DEV_EVENT_TRAFFICACCIDENT_INFO}
+ */
+ EVENT_IVS_TRAFFICACCIDENT(0x00000016, "交通事故事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFICJUNCTION_INFO}
+ */
+ EVENT_IVS_TRAFFICJUNCTION(0x00000017, "交通路口事件----老规则"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFICGATE_INFO}
+ */
+ EVENT_IVS_TRAFFICGATE(0x00000018, "交通卡口事件----老规则"),
+ /**
+ * {@see DEV_EVENT_TRAFFICSNAPSHOT_INFO}
+ */
+ EVENT_TRAFFICSNAPSHOT(0x00000019, "交通抓拍事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_FACEDETECT_INFO}
+ */
+ EVENT_IVS_FACEDETECT(0x0000001A, "目标检测事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFICJAM_INFO}
+ */
+ EVENT_IVS_TRAFFICJAM(0x0000001B, "交通拥堵事件"),
+ /**
+ * {@see DEV_EVENT_TRAFFIC_NONMOTORINMOTORROUTE_INFO}
+ */
+ EVENT_IVS_TRAFFIC_NONMOTORINMOTORROUTE(0x0000001C, "非机动车占机动车车道事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_RUNREDLIGHT_INFO}
+ */
+ EVENT_IVS_TRAFFIC_RUNREDLIGHT(0x00000100, "交通违章-闯红灯事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_OVERLINE_INFO}
+ */
+ EVENT_IVS_TRAFFIC_OVERLINE(0x00000101, "交通违章-压车道线事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_RETROGRADE_INFO}
+ */
+ EVENT_IVS_TRAFFIC_RETROGRADE(0x00000102, "交通违章-逆行事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_TURNLEFT_INFO}
+ */
+ EVENT_IVS_TRAFFIC_TURNLEFT(0x00000103, "交通违章-违章左转"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_TURNRIGHT_INFO}
+ */
+ EVENT_IVS_TRAFFIC_TURNRIGHT(0x00000104, "交通违章-违章右转"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_UTURN_INFO}
+ */
+ EVENT_IVS_TRAFFIC_UTURN(0x00000105, "交通违章-违章掉头"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_OVERSPEED_INFO}
+ */
+ EVENT_IVS_TRAFFIC_OVERSPEED(0x00000106, "交通违章-超速"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_UNDERSPEED_INFO}
+ */
+ EVENT_IVS_TRAFFIC_UNDERSPEED(0x00000107, "交通违章-低速"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_PARKING_INFO}
+ */
+ EVENT_IVS_TRAFFIC_PARKING(0x00000108, "交通违章-违章停车"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_WRONGROUTE_INFO}
+ */
+ EVENT_IVS_TRAFFIC_WRONGROUTE(0x00000109, "交通违章-不按车道行驶"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_CROSSLANE_INFO}
+ */
+ EVENT_IVS_TRAFFIC_CROSSLANE(0x0000010A, "交通违章-违章变道"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_OVERYELLOWLINE_INFO}
+ */
+ EVENT_IVS_TRAFFIC_OVERYELLOWLINE(0x0000010B, "交通违章-压黄线"),
+ /**
+ * {@see DEV_EVENT_TRAFFIC_DRIVINGONSHOULDER_INFO}
+ */
+ EVENT_IVS_TRAFFIC_DRIVINGONSHOULDER(0x0000010C, "交通违章-路肩行驶事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_YELLOWPLATEINLANE_INFO}
+ */
+ EVENT_IVS_TRAFFIC_YELLOWPLATEINLANE(0x0000010E, "交通违章-黄牌车占道事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_PEDESTRAINPRIORITY_INFO}
+ */
+ EVENT_IVS_TRAFFIC_PEDESTRAINPRIORITY(0x0000010F, "交通违章-礼让行人/斑马线行人优先事件"),
+ /**
+ * {@see DEV_EVENT_CROSSFENCEDETECTION_INFO}
+ */
+ EVENT_IVS_CROSSFENCEDETECTION(0x0000011F, "翻越围栏事件"),
+ /**
+ * {@see DEV_EVENT_ELECTROSPARK_INFO}
+ */
+ EVENT_IVS_ELECTROSPARKDETECTION(0x00000110, "电火花事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_NOPASSING_INFO}
+ */
+ EVENT_IVS_TRAFFIC_NOPASSING(0x00000111, "交通违章-禁止通行事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_ABNORMALRUNDETECTION_INFO}
+ */
+ EVENT_IVS_ABNORMALRUNDETECTION(0x00000112, "异常奔跑事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_RETROGRADEDETECTION_INFO}
+ */
+ EVENT_IVS_RETROGRADEDETECTION(0x00000113, "人员逆行事件"),
+ /**
+ * {@see DEV_EVENT_INREGIONDETECTION_INFO}
+ */
+ EVENT_IVS_INREGIONDETECTION(0x00000114, "区域内检测事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TAKENAWAYDETECTION_INFO}
+ */
+ EVENT_IVS_TAKENAWAYDETECTION(0x00000115, "物品搬移事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_PARKINGDETECTION_INFO}
+ */
+ EVENT_IVS_PARKINGDETECTION(0x00000116, "非法停车事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_FACERECOGNITION_INFO}
+ */
+ EVENT_IVS_FACERECOGNITION(0x00000117, "目标识别事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_MANUALSNAP_INFO}
+ */
+ EVENT_IVS_TRAFFIC_MANUALSNAP(0x00000118, "交通手动抓拍事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_FLOW_STATE}
+ */
+ EVENT_IVS_TRAFFIC_FLOWSTATE(0x00000119, "交通流量统计事件"),
+ /**
+ * {@see DEV_EVENT_TRAFFIC_STAY_INFO}
+ */
+ EVENT_IVS_TRAFFIC_STAY(0x0000011A, "交通滞留事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_VEHICLEINROUTE_INFO}
+ */
+ EVENT_IVS_TRAFFIC_VEHICLEINROUTE(0x0000011B, "有车占道事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_ALARM_INFO}
+ */
+ EVENT_ALARM_MOTIONDETECT(0x0000011C, "视频移动侦测事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_ALARM_INFO}
+ */
+ EVENT_ALARM_LOCALALARM(0x0000011D, "外部报警事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_PSRISEDETECTION_INFO}
+ */
+ EVENT_IVS_PSRISEDETECTION(0x0000011E, "囚犯起身事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFICJUNCTION_INFO}
+ */
+ EVENT_IVS_TRAFFIC_TOLLGATE(0x00000120, "交通违章-卡口事件----新规则"),
+ /**
+ * {@see DEV_EVENT_DENSITYDETECTION_INFO}
+ */
+ EVENT_IVS_DENSITYDETECTION(0x00000121, "人员密集度检测"),
+ /**
+ * {@link NetSDKLib.NET_VIDEODIAGNOSIS_COMMON_INFO}
+ * {@link NetSDKLib.NET_REAL_DIAGNOSIS_RESULT}
+ */
+ EVENT_IVS_VIDEODIAGNOSIS(0x00000122, "视频诊断结果事件"),
+ /**
+ * {@see DEV_EVENT_QUEUEDETECTION_INFO}
+ */
+ EVENT_IVS_QUEUEDETECTION(0x00000123, "排队检测报警事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_VEHICLEINBUSROUTE_INFO}
+ */
+ EVENT_IVS_TRAFFIC_VEHICLEINBUSROUTE(0x00000124, "占用公交车道事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_IVS_TRAFFIC_BACKING_INFO}
+ */
+ EVENT_IVS_TRAFFIC_BACKING(0x00000125, "违章倒车事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_IVS_AUDIO_ABNORMALDETECTION_INFO}
+ */
+ EVENT_IVS_AUDIO_ABNORMALDETECTION(0x00000126, "声音异常检测"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_RUNYELLOWLIGHT_INFO}
+ */
+ EVENT_IVS_TRAFFIC_RUNYELLOWLIGHT(0x00000127, "交通违章-闯黄灯事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_IVS_CLIMB_INFO}
+ */
+ EVENT_IVS_CLIMBDETECTION(0x00000128, "攀高检测事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_IVS_LEAVE_INFO}
+ */
+ EVENT_IVS_LEAVEDETECTION(0x00000129, "离岗检测事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_PARKINGONYELLOWBOX_INFO}
+ */
+ EVENT_IVS_TRAFFIC_PARKINGONYELLOWBOX(0x0000012A, "黄网格线抓拍事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_PARKINGSPACEPARKING_INFO}
+ */
+ EVENT_IVS_TRAFFIC_PARKINGSPACEPARKING(0x0000012B, "车位有车事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_PARKINGSPACENOPARKING_INFO}
+ */
+ EVENT_IVS_TRAFFIC_PARKINGSPACENOPARKING(0x0000012C, "车位无车事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_PEDESTRAIN_INFO}
+ */
+ EVENT_IVS_TRAFFIC_PEDESTRAIN(0x0000012D, "交通行人事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_THROW_INFO}
+ */
+ EVENT_IVS_TRAFFIC_THROW(0x0000012E, "交通抛洒物品事件"),
+ /**
+ * {@see DEV_EVENT_TRAFFIC_IDLE_INFO}
+ */
+ EVENT_IVS_TRAFFIC_IDLE(0x0000012F, "交通空闲事件"),
+ /**
+ * {@see DEV_EVENT_ALARM_VEHICLEACC_INFO}
+ */
+ EVENT_ALARM_VEHICLEACC(0x00000130, "车载ACC断电报警事件"),
+ /**
+ * {@see DEV_EVENT_VEHICEL_ALARM_INFO}
+ */
+ EVENT_ALARM_VEHICLE_TURNOVER(0x00000131, "车辆侧翻报警事件"),
+ /**
+ * {@see DEV_EVENT_VEHICEL_ALARM_INFO}
+ */
+ EVENT_ALARM_VEHICLE_COLLISION(0x00000132, "车辆撞车报警事件"),
+ EVENT_ALARM_VEHICLE_LARGE_ANGLE(0x00000133, "车载摄像头大角度扭转事件"),
+ /**
+ * {@see DEV_EVENT_TRAFFIC_PARKINGSPACEOVERLINE_INFO}
+ */
+ EVENT_IVS_TRAFFIC_PARKINGSPACEOVERLINE(0x00000134, "车位压线事件"),
+ /**
+ * {@see DEV_EVENT_IVS_MULTI_SCENE_SWICH_INFO}
+ */
+ EVENT_IVS_MULTISCENESWITCH(0x00000135, "多场景切换事件"),
+ /**
+ * {@see DEV_EVENT_TRAFFIC_RESTRICTED_PLATE}
+ */
+ EVENT_IVS_TRAFFIC_RESTRICTED_PLATE(0x00000136, "受限车牌事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_OVERSTOPLINE}
+ */
+ EVENT_IVS_TRAFFIC_OVERSTOPLINE(0x00000137, "压停止线事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_WITHOUT_SAFEBELT}
+ */
+ EVENT_IVS_TRAFFIC_WITHOUT_SAFEBELT(0x00000138, "交通未系安全带事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_DRIVER_SMOKING}
+ */
+ EVENT_IVS_TRAFFIC_DRIVER_SMOKING(0x00000139, "驾驶员抽烟事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_DRIVER_CALLING}
+ */
+ EVENT_IVS_TRAFFIC_DRIVER_CALLING(0x0000013A, "驾驶员打电话事件"),
+ /**
+ * {@link com.netsdk.lib.structure.DEV_EVENT_TRAFFIC_PEDESTRAINRUNREDLIGHT_INFO}
+ */
+ EVENT_IVS_TRAFFIC_PEDESTRAINRUNREDLIGHT(0x0000013B, "行人闯红灯事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_TRAFFIC_PASSNOTINORDER_INFO}
+ */
+ EVENT_IVS_TRAFFIC_PASSNOTINORDER(0x0000013C, "未按规定依次通行"),
+ EVENT_IVS_OBJECT_DETECTION(0x00000141, "物体特征检测事件"),
+ /**
+ * {@see DEV_EVENT_ALARM_ANALOGALRM_INFO}
+ */
+ EVENT_ALARM_ANALOGALARM(0x00000150, "模拟量报警通道的报警事件"),
+ EVENT_IVS_CROSSLINEDETECTION_EX(0x00000151, "警戒线扩展事件"),
+ EVENT_ALARM_COMMON(0x00000152, "普通录像"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_ALARM_VIDEOBLIND}
+ */
+ EVENT_ALARM_VIDEOBLIND(0x00000153, "视频遮挡事件"),
+ EVENT_ALARM_VIDEOLOSS(0x00000154, "视频丢失事件"),
+ /**
+ * {@see DEV_EVENT_GETOUTBED_INFO}
+ */
+ EVENT_IVS_GETOUTBEDDETECTION(0x00000155, "下床事件"),
+ /**
+ * {@see DEV_EVENT_PATROL_INFO}
+ */
+ EVENT_IVS_PATROLDETECTION(0x00000156, "巡逻检测事件"),
+ /**
+ * {@see DEV_EVENT_ONDUTY_INFO}
+ */
+ EVENT_IVS_ONDUTYDETECTION(0x00000157, "站岗检测事件"),
+ EVENT_IVS_NOANSWERCALL(0x00000158, "门口机呼叫未响应事件"),
+ EVENT_IVS_STORAGENOTEXIST(0x00000159, "存储组不存在事件"),
+ EVENT_IVS_STORAGELOWSPACE(0x0000015A, "硬盘空间低报警事件"),
+ EVENT_IVS_STORAGEFAILURE(0x0000015B, "存储错误事件"),
+ /**
+ * {@see DEV_EVENT_PROFILE_ALARM_TRANSMIT_INFO}
+ */
+ EVENT_IVS_PROFILEALARMTRANSMIT(0x0000015C, "报警传输事件"),
+ /**
+ * {@see DEV_EVENT_ALARM_VIDEOSTATIC_INFO}
+ */
+ EVENT_IVS_VIDEOSTATIC(0x0000015D, "视频静态检测事件"),
+ /**
+ * {@see DEV_EVENT_ALARM_VIDEOTIMING_INFO}
+ */
+ EVENT_IVS_VIDEOTIMING(0x0000015E, "视频定时检测事件"),
+ /**
+ * {@see CFG_IVS_HEATMAP_INFO}
+ */
+ EVENT_IVS_HEATMAP(0x0000015F, "热度图"),
+ /**
+ * {@see DEV_EVENT_ALARM_CITIZENIDCARD_INFO}
+ */
+ EVENT_IVS_CITIZENIDCARD(0x00000160, "证件信息读取事件"),
+ /**
+ * {@see DEV_EVENT_ALARM_PIC_INFO}
+ */
+ EVENT_IVS_PICINFO(0x00000161, "图片信息事件"),
+ /**
+ * {@see DEV_EVENT_ALARM_NETPLAYCHECK_INFO}
+ */
+ EVENT_IVS_NETPLAYCHECK(0x00000162, "上网登记事件"),
+ /**
+ * {@see DEV_EVENT_ALARM_JAMFORBIDINTO_INFO}
+ */
+ EVENT_IVS_TRAFFIC_JAM_FORBID_INTO(0x00000163, "车辆拥堵禁入事件"),
+ /**
+ * {@see EV_EVENT_SNAPBYTIME}
+ */
+ EVENT_IVS_SNAPBYTIME(0x00000164, "定时抓图事件"),//(对应 DEV_EVENT_SNAPBYTIME)
+ EVENT_IVS_PTZ_PRESET(0x00000165, "云台转动到预置点事件"),// (对应 DEV_EVENT_ALARM_PTZ_PRESET_INFO)
+ EVENT_IVS_RFID_INFO(0x00000166, "红外线检测信息事件"),// (对应 DEV_EVENT_ALARM_RFID_INFO)
+ EVENT_IVS_STANDUPDETECTION(0x00000167, "人起立检测事件"),//
+ EVENT_IVS_QSYTRAFFICCARWEIGHT(0x00000168, "交通卡口称重事件"),// (对应 DEV_EVENT_QSYTRAFFICCARWEIGHT_INFO)
+ EVENT_IVS_TRAFFIC_COMPAREPLATE(0x00000169, "卡口前后车牌合成事件"),// (对应DEV_EVENT_TRAFFIC_COMPAREPLATE_INFO)
+ EVENT_IVS_SHOOTINGSCORERECOGNITION(0x0000016A, "打靶像机事件"),// (对应 DEV_EVENT_SHOOTING_SCORE_RECOGNITION_INFO,CFG_IVS_SHOOTINGSCORERECOGNITION_INFO)
+ EVENT_IVS_TRAFFIC_FCC(0x0000016B, "加油站提枪、挂枪事件"),// (对应 DEV_EVENT_TRAFFIC_FCC_INFO)
+ EVENT_IVS_TRAFFIC_TRANSFINITE(0x0000016C, "违章超限抓图上报事件"),// ,绍兴科技治超(对应 DEV_EVENT_TRAFFIC_TRANSFINITE_INFO)
+ EVENT_IVS_SCENE_CHANGE(0x0000016D, "场景变更事件"),// (对应 DEV_ALRAM_SCENECHANGE_INFO,CFG_VIDEOABNORMALDETECTION_INFO)
+ EVENT_IVS_LETRACK(0x0000016E, "简单跟踪事件(暂未有具体事件)"),//
+ EVENT_IVS_OBJECT_ACTION(0x0000016F, "物体检测事件(暂未有具体事件)"),//
+ EVENT_IVS_TRAFFIC_ANALYSE_PRESNAP(0x00000170, "预分析抓拍图片事件"),// (对应 DEV_EVENT_TRAFFIC_ANALYSE_PRESNAP_INFO)
+ EVENT_ALARM_EQSTATE(0x00000171, "智能插座电量状态上报(暂未有具体事件)"),//
+ EVENT_IVS_ALARM_IPC(0x00000172, "DVR/NVR设备上的IPC报警"),// (对应 DEV_EVENT_ALARM_IPC_INFO)
+ EVENT_IVS_POS_RECORD(0x00000173, "POS录像查询事件(暂未有具体事件)"),//
+ EVENT_IVS_NEAR_DISTANCE_DETECTION(0x00000174, "近距离接触事件"),// (对应 DEV_EVENT_NEAR_DISTANCE_DETECTION_INFO)
+ EVENT_IVS_OBJECTSTRUCTLIZE_PERSON(0x00000175, "行人特征检测事件"),// (对应 DEV_EVENT_OBJECTSTRUCTLIZE_PERSON_INFO)
+ EVENT_IVS_OBJECTSTRUCTLIZE_NONMOTOR(0x00000176, "非机动车特征检测事件"),// (对应 DEV_EVENT_OBJECTSTRUCTLIZE_NONMOTOR_INFO)
+ EVENT_IVS_TUMBLE_DETECTION(0x00000177, "倒地报警事件"),// (对应 DEV_EVENT_TUMBLE_DETECTION_INFO)
+ /**
+ * 所有以traffic开头的事件
+ * 目前指的是
+ * EVENT_IVS_TRAFFICCONTROL -> EVENT_TRAFFICSNAPSHOT
+ * EVENT_IVS_TRAFFIC_RUNREDLIGHT -> EVENT_IVS_TRAFFIC_UNDERSPEED
+ */
+ EVENT_IVS_TRAFFIC_ALL(0x000001FF, "所有以traffic开头的事件"),
+ EVENT_IVS_VIDEOANALYSE(0x00000200, "所有智能分析事件"),
+ EVENT_IVS_LINKSD(0x00000201, "LinkSD事件"),// (对应 DEV_EVENT_LINK_SD)
+ EVENT_IVS_VEHICLEANALYSE(0x00000202, "车辆特征检测分析"),// (对应DEV_EVENT_VEHICLEANALYSE)
+ EVENT_IVS_FLOWRATE(0x00000203, "流量使用情况事件"),// (对应 DEV_EVENT_FLOWRATE_INFO)
+ /**
+ * {@link NetSDKLib.DEV_EVENT_ACCESS_CTL_INFO}
+ */
+ EVENT_IVS_ACCESS_CTL(0x00000204, "门禁事件"),
+ /**
+ * {@link NetSDKLib.DEV_EVENT_SNAPMANUAL}
+ */
+ EVENT_IVS_SNAPMANUAL(0x00000205, "SnapManual事件"),
+ EVENT_IVS_TRAFFIC_ELETAGINFO(0x00000206, "RFID电子车牌标签事件"),// (对应 DEV_EVENT_TRAFFIC_ELETAGINFO_INFO)
+ EVENT_IVS_TRAFFIC_TIREDPHYSIOLOGICAL(0x00000207, "生理疲劳驾驶事件"),// (对应 DEV_EVENT_TIREDPHYSIOLOGICAL_INFO)
+ EVENT_IVS_TRAFFIC_BUSSHARPTURN(0x00000208, "车辆急转报警事件"),// (对应DEV_EVENT_BUSSHARPTURN_INFO)
+ EVENT_IVS_CITIZEN_PICTURE_COMPARE(0x00000209, "人证比对事件"),// (对应 DEV_EVENT_CITIZEN_PICTURE_COMPARE_INFO)
+ EVENT_IVS_TRAFFIC_TIREDLOWERHEAD(0x0000020A, "开车低头报警事件"),// (对应DEV_EVENT_TIREDLOWERHEAD_INFO)
+ EVENT_IVS_TRAFFIC_DRIVERLOOKAROUND(0x0000020B, "开车左顾右盼报警事件"),// (对应DEV_EVENT_DRIVERLOOKAROUND_INFO)
+ EVENT_IVS_TRAFFIC_DRIVERLEAVEPOST(0x0000020C, "开车离岗报警事件"),// (对应DEV_EVENT_DRIVERLEAVEPOST_INFO)
+ EVENT_IVS_MAN_STAND_DETECTION(0x0000020D, "立体视觉站立事件"),// (对应DEV_EVENT_MANSTAND_DETECTION_INFO)
+ EVENT_IVS_MAN_NUM_DETECTION(0x0000020E, "立体视觉区域内人数统计事件"),// (对应DEV_EVENT_MANNUM_DETECTION_INFO)
+ EVENT_IVS_STEREO_NUMBERSTAT(0x0000020F, "客流量统计事件"),// (暂未有具体事件)
+ EVENT_IVS_TRAFFIC_DRIVERYAWN(0x00000210, "开车打哈欠事件"),// (对应DEV_EVENT_DRIVERYAWN_INFO)
+ EVENT_IVS_NUMBERSTAT_PLAN(0x00000211, "客流量统计计划"),// (暂未有具体事件,球机使用,对应规则配置结构体 CFG_NUMBERSTAT_INFO)
+ EVENT_IVS_HEATMAP_PLAN(0x00000212, "热度图计划"),// (暂未有具体事件,球机使用,对应规则配置结构体 CFG_IVS_HEATMAP_INFO)
+ EVENT_IVS_CALLNOANSWERED(0x00000213, "呼叫无答应事件"),//
+ EVENT_IVS_IGNOREINVITE(0x00000214, "无视邀请事件"),//
+ EVENT_IVS_HUMANTRAIT(0x00000215, "人体特征事件"),// (对应 DEV_EVENT_HUMANTRAIT_INFO)
+ EVENT_ALARM_LE_HEADDETECTION(0x00000216, "乐橙人头检测事件"),// (对应 DEV_EVENT_LE_HEADDETECTION_INFO)
+ EVENT_IVS_FACEANALYSIS(0x00000217, "人脸分析事件"),// (暂未有具体事件)
+ EVENT_IVS_TRAFFIC_TURNLEFTAFTERSTRAIGHT(0x00000218, "左转不礼让直行事件"),// (对应 DEV_EVENT_TURNLEFTAFTERSTRAIGHT_INFO)
+ EVENT_IVS_TRAFFIC_BIGBENDSMALLTURN(0x00000219, "大弯小转事件"),// (对应 DEV_EVENT_BIGBENDSMALLTURN_INFO)
+ EVENT_IVS_ROAD_CONSTRUCTION(0x0000021A, "道路施工监测事件"),// (对应DEV_EVENT_ROAD_CONSTRUCTION_INFO)
+ EVENT_IVS_ROAD_BLOCK(0x0000021B, "路障检测事件"),// (对应DEV_EVENT_ROAD_BLOCK_INFO)
+ EVENT_IVS_TRAFFIC_QUEUEJUMP(0x0000021C, "车辆加塞事件"),// (对应 DEV_EVENT_TRAFFIC_QUEUEJUMP_INFO)
+ EVENT_IVS_VEHICLE_SUSPICIOUSCAR(0x0000021D, "嫌疑车辆事件"),// (对应 DEV_EVENT_VEHICLE_SUSPICIOUSCAR_INFO)
+ EVENT_IVS_TRAFFIC_TURNRIGHTAFTERSTRAIGHT(0x0000021E, "右转不礼让直行事件"),// (对应 DEV_EVENT_TURNRIGHTAFTERSTRAIGHT_INFO)
+ EVENT_IVS_TRAFFIC_TURNRIGHTAFTERPEOPLE(0x0000021F, "右转不礼让直行行人"),// (对应 DEV_EVENT_TURNRIGHTAFTERPEOPLE_INFO)
+ EVENT_IVS_INSTALL_CARDREADER(0x00000220, "安装读卡器事件"),// (对应 DEV_EVENT_INSTALL_CARDREADER_INFO)
+ EVENT_ALARM_YALE_DROPBOX_BADTOKEN(0x00000221, " Yale token失效事件,只用于订阅手机推送"),//
+ EVENT_IVS_ACC_OFF_SNAP(0x00000222, "车载设备断电前抓拍上传事件"),// (对应 DEV_EVENT_ACC_OFF_SNAP_INFO)
+ EVENI_IVS_XRAY_DETECTION(0x00000223, "X光检测事件"),// (对应 DEV_EVENT_XRAY_DETECTION_INFO)
+ EVENT_IVS_NOTCLEARCAR(0x00000224, "未清车告警"),// (对应 DEV_EVENT_NOTCLEARCAR_INFO)
+ EVENT_IVS_SOSALEART(0x00000225, "sos求救报警"),// (对应 DEV_EVENT_SOSALEART_INFO)
+ EVENT_IVS_OVERLOAD(0x00000226, "超载抓图"),// (对应 DEV_EVENT_OVERLOAD_INFO)
+ EVENT_IVS_NONWORKINGTIME(0x00000227, "非工作时间告警"),// (对应 DEV_EVENT_NONWORKINGTIME_INFO)
+ EVENT_IVS_TRAFFIC_HIGH_BEAM(0x00000228, "远光灯违章事件"),// (对应 DEV_EVENT_TRAFFIC_HIGH_BEAM_INFO)
+ EVENT_IVS_TRAFFIC_TRUCKFORBID(0x00000229, "禁止货车事件"),// (对应 DEV_EVENT_TRAFFICTRUCKFORBID_INFO)
+ EVENT_IVS_DRIVINGWITHOUTCARD(0x0000022A, "无卡驾驶报警事件"),// (对应 DEV_EVENT_DRIVINGWITHOUTCARD_INFO)
+ EVENT_IVS_HIGHSPEED(0x0000022B, "车辆超速报警事件"),// (对应 DEV_EVENT_HIGHSPEED_INFO)
+ EVENT_IVS_CROWDDETECTION(0x0000022C, "人群密度检测事件"),// (对应结构体 DEV_EVENT_CROWD_DETECTION_INFO)
+ EVENT_IVS_TRAFFIC_CARDISTANCESHORT(0x0000022D, "车间距过小报警事件"),// (对应 DEV_EVENT_TRAFFIC_CARDISTANCESHORT_INFO)
+ /**
+ * {@link NetSDKLib.DEV_EVENT_PEDESTRIAN_JUNCTION_INFO}
+ */
+ EVENT_IVS_PEDESTRIAN_JUNCTION(0x00000230, "行人卡口事件"),
+ EVENT_IVS_VEHICLE_RECOGNITION(0x00000231, "车牌对比事件"),// (对应 DEV_EVENT_VEHICLE_RECOGNITION_INFO)
+ EVENT_IVS_PASS_CHANGE(0x00000232, "预置点图片变化事件"),// (对应 DEV_EVENT_PASS_CHANGE_INFO)
+ EVENT_IVS_TRAFFIC_PARKING_SPACEDETECTION(0x00000233, "违停相机单球车位检测规则事件"),//
+ EVENT_IVS_TRAFFIC_WAITINGAREA(0x00000234, "违章进入待行区事件"),// (对应 DEV_EVENT_TRAFFIC_WAITINGAREA_INFO)
+ EVENT_IVS_TRAFFIC_BAN(0x00000235, "机动车违法禁令标识事件"),// (对应 DEV_EVENT_TRAFFIC_BAN_INFO)
+ EVENT_IVS_POS_EXCHANGE(0x00000236, "POS机交易事件"),// (对应 DEV_EVENT_POS_EXCHANGE_INFO)
+ EVENT_IVS_STEREO_FIGHTDETECTION(0x00000237, "立体行为分析打架/剧烈运动检测规则"),// (仅用于规则配置,对应事件 EVENT_IVS_FIGHTDETECTION)
+ EVENT_IVS_STEREO_DISTANCE_DETECTION(0x00000238, "立体行为分析间距异常/人员靠近检测"),// (仅用于规则配置,对应事件)
+ EVENT_IVS_STEREO_STEREOFALLDETECTION(0x00000239, "立体行为分析跌倒检测规则"),// (仅用于规则配置,对应事件 EVENT_IVS_TUMBLE_DETECTION)
+ EVENT_IVS_STEREO_STAYDETECTION(0x0000023A, "立体行为分析人员滞留检测规则"),// (仅用于规则配置,对应事件 EVENT_IVS_STAYDETECTION)
+ EVENT_IVS_BANNER_DETECTION(0x0000023B, "拉横幅事件"),// (对应 DEV_EVENT_BANNER_DETECTION_INFO)
+ EVENT_IVS_NORMAL_FIGHTDETECTION(0x0000023C, "普通打架事件"),// (只用于普通打架规则, 事件采用EVENT_IVS_FIGHTDETECTION)
+ EVENT_IVS_ELEVATOR_ABNORMAL(0x0000023D, "电动扶梯运行异常事件"),// (对应DEV_EVENT_ELEVATOR_ABNORMAL_INFO)
+ EVENT_IVS_NONMOTORDETECT(0x0000023E, "非机动车检测"),// (对应结构体 DEV_EVENT_NONMOTORDETECT_INFO)
+ EVENT_IVS_VEHICLEDETECT(0x0000023F, "机动车检测"),// (只用于规则配置,事件采用EVENT_IVS_TRAFFICJUNCTION)
+ EVENT_IVS_TRAFFIC_PARKING_B(0x00000240, "交通违章-B类违章停车"),// (对应 DEV_EVENT_TRAFFIC_PARKING_B_INFO)
+ EVENT_IVS_TRAFFIC_PARKING_C(0x00000241, "交通违章-C类违章停车"),// (对应 DEV_EVENT_TRAFFIC_PARKING_C_INFO)
+ EVENT_IVS_TRAFFIC_PARKING_D(0x00000242, "交通违章-D类违章停车"),// (对应 DEV_EVENT_TRAFFIC_PARKING_D_INFO)
+ EVENT_IVSS_FACEATTRIBUTE(0x00000243, "IVSS目标检测事件 (暂未有具体事件)"),//
+ EVENT_IVSS_FACECOMPARE(0x00000244, "IVSS目标识别事件 (暂未有具体事件)"),//
+ EVENT_IVS_FIREWARNING(0x00000245, "火警事件"),// (对应 DEV_EVENT_FIREWARNING_INFO)
+ EVENT_IVS_SHOPPRESENCE(0x00000246, "商铺占道经营事件"),// (对应 DEV_EVENT_SHOPPRESENCE_INFO)
+ EVENT_IVS_WASTEDUMPED(0x00000247, "垃圾违章倾倒事件"),// (对应 DEV_EVENT_WASTEDUMPED_INFO)
+ EVENT_IVS_SPILLEDMATERIAL_DETECTION(0x00000248, "抛洒物检测事件"),// (对应 DEV_EVENT_SPILLEDMATERIAL_DETECTION_INFO)
+ EVENT_IVS_STEREO_MANNUM_DETECTION(0x00000249, "立体行为分析人数异常检测"),// (仅用于规则配置,对应事件 EVENT_IVS_MAN_NUM_DETECTION)
+ EVENT_IVS_DISTANCE_DETECTION(0x0000024A, "异常间距事件 "),// (对应 DEV_EVENT_DISTANCE_DETECTION_INFO)
+ EVENT_IVS_TRAFFIC_NONMOTOR_OVERLOAD(0x0000024B, "非机动车超载事件"),// (对应 DEV_EVENT_TRAFFIC_NONMOTOR_OVERLOAD_INFO)
+ EVENT_IVS_TRAFFIC_NONMOTOR_WITHOUTSAFEHAT(0x0000024C, "非机动车未戴安全帽事件"),// (对应 DEV_EVENT_TRAFFIC_NONMOTOR_WITHOUTSAFEHAT_INFO)
+ EVENT_IVS_TRAFFIC_JAM_STOP_ON_ZEBRACROSSING(0x0000024D, "拥堵滞留斑马线事件"),// (对应 DEV_EVENT_TRAFFIC_JAM_STOP_ON_ZEBRACROSSING_INFO)
+ EVENT_IVS_FLOWBUSINESS(0x0000024E, "流动摊贩事件"),// (对应 DEV_EVENT_FLOWBUSINESS_INFO)
+ EVENT_IVS_CITY_MOTORPARKING(0x0000024F, "城市机动车违停事件"),// (对应 DEV_EVENT_CITY_MOTORPARKING_INFO)
+ EVENT_IVS_CITY_NONMOTORPARKING(0x00000250, "城市机非动车违停事件"),// (对应 DEV_EVENT_CITY_NONMOTORPARKING_INFO)
+ EVENT_IVS_LANEDEPARTURE_WARNNING(0X00000251, "车道偏移预警"),// (对应 DEV_EVENT_LANEDEPARTURE_WARNNING_INFO)
+ EVENT_IVS_FORWARDCOLLISION_WARNNING(0x00000252, "前向碰撞预警"),// (对应 DEV_EVENT_FORWARDCOLLISION_WARNNING_INFO)
+ EVENT_IVS_MATERIALSSTAY(0x00000253, "物料堆放事件"),// (对应 DEV_EVENT_MATERIALSSTAY_INFO)
+ EVENT_IVS_TRAFFIC_NONMOTOR_HOLDUMBRELLA(0x00000254, "非机动车装载伞具"),// (对应 DEV_EVENT_TRAFFIC_NONMOTOR_HOLDUMBRELLA_INFO)
+ EVENT_IVS_JABLOTRON_ALARM(0x00000255, "客户报警产品"),//
+ EVENT_IVS_VIDEOUNFOCUS_ALARM(0x00000256, "视频虚焦事件"),// (对应DEV_EVENT_VIDEOUNFOCUS_INFO)
+ EVENT_IVS_FLOATINGOBJECT_DETECTION(0x00000257, "漂浮物检测事件"),// (对应 DEV_EVENT_FLOATINGOBJECT_DETECTION_INFO)
+ EVENT_IVS_SHIP_DETECTION(0x00000258, "船舶检测事件"),// (对应 DEV_EVENT_SHIP_DETECTION_INFO)
+ EVENT_IVS_AIRPLANE_DETECTION(0x00000259, "飞机行为检测事件"),// (对应 DEV_EVENT_AIRPLANE_DETECTION_INFO)
+ EVENT_IVS_PHONECALL_DETECT(0x0000025A, "打电话检测事件"),// (对应 DEV_EVENT_PHONECALL_DETECT_INFO)
+ EVENT_IVS_SMOKING_DETECT(0x0000025B, "吸烟检测事件"),// (对应 DEV_EVENT_SMOKING_DETECT_INFO)
+ EVENT_IVS_RADAR_SPEED_LIMIT_ALARM(0x0000025C, "雷达限速报警事件"),// (对应 DEV_EVENT_RADAR_SPEED_LIMIT_ALARM_INFO)
+ EVENT_IVS_WATER_LEVEL_DETECTION(0x0000025D, "水位检测事件"),// (对应 DEV_EVENT_WATER_LEVEL_DETECTION_INFO)
+ EVENT_IVS_HOLD_UMBRELLA(0x0000025E, "违规撑伞检测事件"),// (对应 DEV_EVENT_HOLD_UMBRELLA_INFO)
+ EVENT_IVS_GARBAGE_EXPOSURE(0x0000025F, "垃圾暴露检测事件"),// (对应 DEV_EVENT_GARBAGE_EXPOSURE_INFO)
+ EVENT_IVS_DUSTBIN_OVER_FLOW(0x00000260, "垃圾桶满溢检测事件"),// (对应 DEV_EVENT_DUSTBIN_OVER_FLOW_INFO)
+ EVENT_IVS_DOOR_FRONT_DIRTY(0x00000261, "门前脏乱检测事件"),// (对应 DEV_EVENT_DOOR_FRONT_DIRTY_INFO)
+ EVENT_IVS_QUEUESTAY_DETECTION(0X00000262, "排队滞留时间报警事件"),// (对应 DEV_EVENT_QUEUESTAY_DETECTION_INFO)
+ EVENT_IVS_QUEUENUM_DETECTION(0X00000263, "排队人数异常报警事件"),// (对应 DEV_EVENT_QUEUENUM_DETECTION_INFO)
+ EVENT_IVS_GENERATEGRAPH_DETECTION(0X00000264, "生成图规则事件"),// (对应 DEV_EVENT_GENERATEGRAPH_DETECTION_INFO)
+ EVENT_IVS_TRAFFIC_PARKING_MANUAL(0x00000265, "交通违章-手动取证"),// (对应 DEV_EVENT_TRAFFIC_PARKING_MANUAL_INFO)
+ EVENT_IVS_HELMET_DETECTION(0x00000266, "安全帽检测事件"),// (对应 DEV_EVENT_HELMET_DETECTION_INFO)
+ EVENT_IVS_DEPOSIT_DETECTION(0x00000267, "包裹堆积程度检测事件"),// (对应 DEV_EVENT_DEPOSIT_DETECTION_INFO)
+ EVENT_IVS_HOTSPOT_WARNING(0x00000268, "热点异常报警事件"),// (对应 DEV_EVENT_HOTSPOT_WARNING_INFO)
+ EVENT_IVS_WEIGHING_PLATFORM_DETECTION(0x00000269, "称重平台检测事件"),// (对应 DEV_EVENT_WEIGHING_PLATFORM_DETECTION_INFO)
+ EVENT_IVS_CLASSROOM_BEHAVIOR(0x0000026A, "课堂行为分析事件"),// (对应 DEV_EVENT_CLASSROOM_BEHAVIOR_INFO)
+ EVENT_IVS_VEHICLE_DISTANCE_NEAR(0x0000026B, "安全驾驶车距过近报警事件"),// (对应 DEV_EVENT_VEHICLE_DISTANCE_NEAR_INFO)
+ EVENT_IVS_TRAFFIC_DRIVER_ABNORMAL(0x0000026C, "驾驶员异常报警事件"),// (对应 DEV_EVENT_TRAFFIC_DRIVER_ABNORMAL_INFO)
+ EVENT_IVS_TRAFFIC_DRIVER_CHANGE(0x0000026D, "驾驶员变更报警事件"),// (对应 DEV_EVENT_TRAFFIC_DRIVER_CHANGE_INFO)
+ EVENT_IVS_WORKCLOTHES_DETECT(0x0000026E, "工装(安全帽/工作服等)检测事件"),// (对应 DEV_EVENT_WORKCLOTHES_DETECT_INFO)
+ EVENT_IVS_SECURITYGATE_PERSONALARM(0x0000026F, "安检门人员报警事件"),// (对应 DEV_EVENT_SECURITYGATE_PERSONALARM_INFO)
+ EVENT_IVS_STAY_ALONE_DETECTION(0x00000270, "单人独处事件"),// (对应 DEV_EVENT_STAY_ALONE_DETECTION_INFO)
+ EVENT_IVS_TRAFFIC_ROAD_BLOCK(0x00000271, "交通路障检测事件"),// (对应 DEV_EVENT_TRAFFIC_ROAD_BLOCK_INFO)
+ EVENT_IVS_TRAFFIC_ROAD_CONSTRUCTION(0x00000272, "交通道路施工检测事件"),// (对应 DEV_EVENT_TRAFFIC_ROAD_CONSTRUCTION_INFO)
+ EVENT_IVS_XRAY_DETECT_BYOBJECT(0x00000273, "X光按物体检测规则配置"),// , 对应事件 EVENI_IVS_XRAY_DETECTION
+ EVENT_IVS_WORKSTATDETECTION(0x00000274, "作业统计事件"),// (对应 DEV_EVENT_WORKSTATDETECTION_INFO)
+ EVENT_IVS_INFRAREDBLOCK(0x00000275, "红外阻断事件"),// (对应 DEV_EVENT_INFRAREDBLOCK_INFO)
+ EVENT_IVS_FEATURE_ABSTRACT(0x00000276, "特征提取事件"),// (对应 DEV_EVENT_FEATURE_ABSTRACT_INFO)
+ EVENT_IVS_INTELLI_SHELF(0x00000277, "智能补货事件"),// (对应 DEV_EVENT_INTELLI_SHELF_INFO)
+ EVENT_IVS_PANORAMA_SHOT(0x00000278, "全景抓拍事件"),// (对应 DEV_EVENT_PANORAMA_SHOT_INFO)
+ EVENT_ALARM_SMARTMOTION_HUMAN(0x00000279, "智能视频移动侦测事件(人)"),// (对应 DEV_EVENT_SMARTMOTION_HUMAN_INFO)
+ EVENT_ALARM_SMARTMOTION_VEHICLE(0x0000027A, "智能视频移动侦测事件(车)"),// (对应 DEV_EVENT_SMARTMOTION_VEHICLE_INFO)
+ EVENT_IVS_CAR_DRIVING_IN_OUT(0x0000027B, "车辆驶入驶出状态事件"),// (对应 DEV_EVENT_CAR_DRIVING_IN_OUT_INFO)
+ EVENT_IVS_PARKINGSPACE_STATUS(0x0000027C, "停车位状态事件"),// (对应 DEV_EVENT_PARKINGSPACE_STATUS_INFO)
+ EVENT_IVS_VIOLENT_THROW_DETECTION(0x0000027D, "暴力抛物检测"),// (对应 DEV_EVENT_VIOLENT_THROW_DETECTION_INFO)
+ EVENT_IVS_TRAMCARSECTIONS_DETECTION(0x0000027E, "矿车超挂报警事件"),// (对应 DEV_EVENT_TRAMCARSECTIONS_DETECTION_INFO)
+ EVENT_IVS_ALARM_BOX_ALARM(0x0000027F, "报警盒通道的触发报警事件"),// , 目前只用于订阅手机推送
+ EVENT_IVS_FACE_COMPARISION(0x00000280, "人脸比对事件"),// , 专用于手机推送的目标识别事件, 目前只用于订阅手机推送
+ EVENT_IVS_FACEBODY_DETECT(0x00000281, "人像检测事件"),// (对应 DEV_EVENT_FACEBODY_DETECT_INFO)
+ EVENT_IVS_FACEBODY_ANALYSE(0x00000282, "人像识别事件"),// (对应 DEV_EVENT_FACEBODY_ANALYSE_INFO)
+ EVENT_IVS_GASSTATION_VEHICLE_DETECT(0x00000283, "加油站车辆检测事件"),// (对应 DEV_EVENT_GASSTATION_VEHICLE_DETECT_INFO)
+ EVENT_IVS_CONGESTION_DETECTION(0x00000284, "道路场景车辆拥堵报警事件"),// (对应 DEV_EVENT_CONGESTION_DETECTION_INFO)
+ EVENT_IVS_VEHICLELIMIT_DETECTION(0x00000285, "停车场场景下停车车辆上限报警"),// (对应 DEV_EVENT_VEHICLELIMIT_DETECTION_INFO)
+ EVENT_IVS_ANIMAL_DETECTION(0x00000286, "动物检测事件"),// (对应 DEV_EVENT_ANIMAL_DETECTION_INFO)
+ EVENT_IVS_SHOP_WINDOW_POST(0x00000287, "橱窗张贴事件"),
+ /**
+ * (对应 DEV_EVENT_SHOP_SIGN_ABNORMAL_INFO)
+ * {@link com.netsdk.lib.structure.DEV_EVENT_SHOP_SIGN_ABNORMAL_INFO}
+ */
+ EVENT_IVS_SHOP_SIGN_ABNORMAL(0x00000288, "店招异常事件"),
+ EVENT_IVS_BREED_DETECTION(0x00000289, "智慧养殖检测事件"),// (对应 DEV_EVENT_BREED_DETECTION_INFO)
+ EVENT_IVS_AIRPORT_VEHICLE_DETECT(0x0000028A, "机场智能保障车辆检测事件"),// (对应 DEV_EVENT_AIRPORT_VEHICLE_DETECT_INFO)
+ EVENT_IVS_PIG_TEMPERATURE_DETECT(0x0000028B, "智慧养殖猪体温检测"),// (只用于规则配置)
+ EVENT_IVS_MAN_CAR_COEXISTANCE(0x0000028C, "人车共存事件"),// (对应 DEV_EVENT_MAN_CAR_COEXISTANCE_INFO)
+ EVENT_IVS_HIGH_TOSS_DETECT(0x0000028D, "高空抛物检测"),// (对应DEV_EVENT_HIGH_TOSS_DETECT_INFO)
+ EVENT_IVS_ELECTRIC_GLOVE_DETECT(0x0000028E, "电力检测手套检测事件"),// (对应DEV_EVENT_ELECTRIC_GLOVE_DETECT_INFO)
+ EVENT_IVS_ELECTRIC_LADDER_DETECT(0x0000028F, "电力检测梯子检测事件"),// (对应DEV_EVENT_ELECTRIC_LADDER_DETECT_INFO)
+ EVENT_IVS_ELECTRIC_CURTAIN_DETECT(0x00000290, "电力检测布幔检测事件"),// (对应DEV_EVENT_ELECTRIC_CURTAIN_DETECT_INFO)
+ EVENT_IVS_ELECTRIC_FENCE_DETECT(0x00000291, "电力检测围栏检测事件"),// (对应DEV_EVENT_ELECTRIC_FENCE_DETECT_INFO)
+ EVENT_IVS_ELECTRIC_SIGNBOARD_DETECT(0x00000292, "电力检测标识牌检测事件"),// (对应DEV_EVENT_ELECTRIC_SIGNBOARD_DETECT_INFO)
+ EVENT_IVS_ELECTRIC_BELT_DETECT(0x00000293, "电力检测安全带检测事件"),// (对应DEV_EVENT_ELECTRIC_BELT_DETECT_INFO)
+ EVENT_IVS_RADAR_LINE_DETECTION(0x00000294, "雷达警戒线/绊线检测"),// (对应DEV_EVENT_RADAR_LINE_DETECTION_INFO)
+ EVENT_IVS_RADAR_REGION_DETECTION(0x00000295, "雷达警戒区检测事件"),// (对应DEV_EVENT_RADAR_REGION_DETECTION_INFO)
+ EVENT_IVS_AUDIO_INTENSITY(0x00000296, "异常音事件"),// (对应 DEV_EVENT_AUDIO_INTENSITY_INFO)
+ EVENT_IVS_PARKING_LOT_STATUS_DETECTION(0x00000297, "室外停车位状态检测"),// (对应 DEV_EVENT_PARKING_LOT_STATUS_DETECTION_INFO)
+ EVENT_IVS_VEHICLE_COMPARE(0x00000298, ""),// (只用于规则配置)
+ EVENT_IVS_DREGS_UNCOVERED(0x00000299, "渣土车未遮盖载货检测事件"),// (对应 DEV_EVENT_DREGS_UNCOVERED_INFO)
+ EVENT_IVS_WALK_DETECTION(0x0000029A, "走动检测事件"),// (对应 DEV_EVENT_WALK_DETECTION_INFO)
+ EVENT_IVS_BACK_TO_DETECTION(0x0000029B, "背对检测事件"),// (对应 DEV_EVENT_BACK_TO_DETECTION_INFO)
+ EVENT_IVS_WRITE_ON_THE_BOARD_DETECTION(0x0000029C, "板书检测事件"),// (对应 DEV_EVENT_WRITE_ON_THE_BOARD_DETECTION_INFO)
+ EVENT_IVS_SMART_KITCHEN_CLOTHES_DETECTION(0x0000029D, "智慧厨房穿着检测事件"),// (对不戴口罩、厨师帽以及颜色不符合规定的厨师服进行报警)(对应 DEV_EVENT_SMART_KITCHEN_CLOTHES_DETECTION_INFO)
+ EVENT_IVS_SLEEP_DETECT(0x0000029E, "睡觉检测事件"),// (对应 DEV_EVENT_SLEEP_DETECT_INFO)
+ EVENT_IVS_WALK_AROUND_DETECT(0x0000029F, "随意走动检测事件"),// (对应 DEV_EVENT_WALK_AROUND_DETECT_INFO)
+ EVENT_IVS_PLAY_MOBILEPHONE(0x00000300, "玩手机事件"),// (对应 DEV_EVENT_PLAY_MOBILEPHONE_INFO)
+ EVENT_IVS_FINANCE_CONTRABAND_DETECT(0x00000301, "智慧金融违规物品检测事件"),// (对应 DEV_EVENT_FINANCE_CONTRABAND_DETECT_INFO)
+ EVENT_IVS_FINANCE_CASH_TRANSACTION(0x00000302, "智慧金融现金交易检测事件"),// (对应 DEV_EVENT_FINANCE_CASH_TRANSACTION_INFO)
+ /**
+ * (对应 DEV_EVENT_ANATOMY_TEMP_DETECT_INFO)
+ */
+ EVENT_IVS_ANATOMY_TEMP_DETECT(0x00000303, "人体温智能检测事件"),
+ EVENT_IVS_ACTIVITY_ANALYSE(0x00000304, "活跃度统计规则"),// (只用于规则配置)
+ EVENT_IVS_DOOR_STATUS(0x00000305, "门状态事件"),// (对应 DEV_EVENT_DOOR_STATUS_INFO)
+ EVENT_IVS_DHOP_CUSTOM(0x00000306, "Dhop自定义事件"),// (start/stop, 对应 DEV_EVENT_DHOP_CUSTOM_INFO)
+ EVENT_IVS_DHOP_CUSTOM_ONCE(0x00000307, "Dhop自定义事件"),// (Pulse, 对应 DEV_EVENT_DHOP_CUSTOM_INFO)
+ EVENT_IVS_FOG_DETECTION(0x00000308, "起雾检测事件"),// (对应 DEV_EVENT_FOG_DETECTION)
+ EVENT_IVS_TRAFFIC_VEHICLE_BC(0x00000309, "飙车事件"),// (对应 DEV_EVENT_TRAFFIC_VEHICLE_BC )
+ EVENT_IVS_TRAFFIC_MOTOR_OVERLOAD(0x0000030A, "机动车超载"),// (对应 DEV_EVENT_TRAFFIC_MOTOR_OVERLOAD_INFO)
+ EVENT_IVS_TRAFFIC_PLATE_OCCLUSION(0x0000030B, "车牌污损"),// (对应 DEV_EVENT_TRAFFIC_PLATE_OCCLUSION_INFO)
+ EVENT_IVS_NONMOTOR_ENTRYING(0x0000030C, "非机动车进入电梯"),// (对应 DEV_EVENT_NONMOTOR_ENTRYING_INFO)
+ EVENT_IVS_WATER_STAGE_MONITOR(0x0000030D, "水位监测事件"),// , 目前仅用于任务型智能分析 (对应 DEV_EVENT_WATER_STAGE_MONITOR_INFO)
+ EVENT_IVS_TRAFFIC_ROAD_ALERT(0x0000030E, "道路安全预警"),// (对应 DEV_EVENT_TRAFFIC_ROAD_ALERT_INFO)
+ EVENT_IVS_BREAK_RULE_BUILDING_DETECTION(0x0000030F, "违章建筑检测事件"),// (对应 DEV_EVENT_BREAK_RULE_BUILDIING_DETECTION_INFO)
+ EVENT_IVS_TRAFFIC_NONMOTOR_RUN_REDLIGHT(0x00000310, "非机动车闯红灯"),// (对应 DEV_EVENT_TRAFFIC_NONMOTOR_RUN_REDLIGHT_INFO )
+ /**
+ * 占用应急车道事件
+ */
+ EVENT_IVS_TRAFFIC_VEHICLE_IN_EMERGENCY_LANE(0x00000311, "占用应急车道事件"),// (对应 DEV_EVENT_TRAFFIC_VEHICLE_IN_EMERGENCY_LANE_INFO )
+ EVENT_IVS_TRAFFIC_REAREND_ACCIDENT(0x00000322, "交通事故事件"),// (对应 DEV_EVENT_TRAFFIC_REAREND_ACCIDENT_INFO )
+ /**
+ * 特殊车辆检测
+ */
+ EVENT_IVS_TRAFFIC_SPECIAL_VEHICLE_DETECT(0x00000333, "特殊车辆检测"),// (对应 DEV_EVENT_TRAFFIC_SPECIAL_VEHICLE_INFO )
+ EVENT_IVS_TRAFFIC_NONMOTOR(0x00000335, "交通非机动车事件检测"),// (对应 DEV_EVENT_TRAFFIC_NONMOTOR_INFO )
+ EVENT_IVS_TRAFFIC_VISIBILITY(0x00000337, "交通能见度事件检测"),// (对应 DEV_EVENT_TRAFFIC_VISIBILITY_INFO )
+ EVENT_IVS_ANYTHING_DETECT(0x0000033F, "全物体类型检测事件"),// 全物体类型检测事件 ( 对应 DEV_EVENT_ANYTHING_DETECT_INFO )
+ EVENT_IVS_OBJECT_ABNORMAL(0x00000340, "目标异常事件"),// 目标异常事件(对应 DEV_EVENT_OBJECT_ABNORMAL_INFO )
+ EVENT_IVS_STREET_SUNCURE(0x00000347, "沿街晾晒事件"),//对应DEV_EVENT_STREET_SUNCURE_INFO
+ EVENT_IVS_OUTDOOR_ADVERTISEMENT(0x00000348, "户外广告事件"),//对应DEV_EVENT_OUTDOOR_ADVERTISEMENT_INFO
+ EVENT_IVS_HUDDLE_MATERIAL(0x00000349, "乱堆物料检测事件"),//对应DEV_EVENT_HUDDLE_MATERIAL_INFO
+ EVENT_IVS_FOLLOW_CAR_ALARM(0x0000034F, "跟车报警事件"),//对应DEV_EVENT_FOLLOW_CAR_ALARM_INFO
+ EVENT_IVS_FIRE_LANE_DETECTION(0x00000324, "消防占道检测事件"),//对应DEV_EVENT_FIRE_LANE_DETECTION_INFO)
+ EVENT_IVS_TRAFFIC_NON_MOTOR_RETROGRADE(0x00000328, "非机动车逆行事件"),//(对应 DEV_EVENT_TRAFFIC_NON_MOTOR_RETROGRADE_INFO)
+ EVENT_IVS_TRAFFIC_VEHICLE_CLEANLINESS(0x00000338, "交通车辆清洁度检测事件检测"),//(对应 DEV_EVENT_TRAFFIC_VEHICLE_CLEANLINESS_INFO)
+ EVENT_IVS_FIRE_LINE_DETECTION(0x0000034A, "进入消防通道检测事件"),//进入消防通道检测 (对应 DEV_EVENT_FIRE_LINE_DETECTION_INFO)
+ EVENT_IVS_TRAFFIC_PARKING_STATISTICS(0x0000035B, "车位统计事件"),//(对应 DEV_EVENT_TRAFFIC_PARKING_STATISTICS_INFO)
+ EVENT_IVS_HEAT_IMAGING_TEMPER(0x0000035C, "热成像测温点温度异常报警事件"),//(对应 DEV_EVENT_HEAT_IMAGING_TEMPER_INFO)
+ EVENT_IVS_OBJECT_PLACEMENT_DETECTION(0x00000369, "物品放置检测事件"),// 对应DEV_EVENT_OBJECT_PLACEMENT_DETECTION_INFO
+ EVENT_IVS_OBJECT_REMOVAL_DETECTION(0x0000036A, "物品拿取检测事件"),// 对应DEV_EVENT_OBJECT_REMOVAL_DETECTION_INFO
+ EVENT_IVS_FIRE_EXTINGUISHER_DETECTION(0x0000036C, "灭火器检测事件"),// 对应DEV_EVENT_FIRE_EXTINGUISHER_DETECTION_INFO
+ EVENT_IVS_TRASH_WITHOUT_COVER_DETECTION(0x00000373, "垃圾桶未盖盖子检测事件"),// 对应DEV_EVENT_TRASH_WITHOUT_COVER_DETECTION_INFO
+ EVENT_IVS_XRAY_UNPACKING_CHECK(0x00000384, "X光开包检查事件"),// 对应DEV_EVENT_XRAY_UPACKING_CHECK_INFO
+ EVENT_IVS_GENEAL_ATTITUDE(0x0000038C, "通用姿态行为事件"),// 对应 DEV_EVENT_GENEAL_ATTITUDE_INFO
+ EVENT_IVS_CROWD_LEVEL_DETECTION(0x00000395, "拥挤程度检测事件"),// 对应DEV_EVENT_CROWD_LEVEL_DETECTION_INFO
+ EVENT_IVS_RIDING_MOTOR_CYCLE(0x00000401, "摩托车骑跨检测事件"),// 对应DEV_EVENT_RIDING_MOTOR_CYCLE_INFO
+ EVENT_IVS_HUMAN_ANIMAL_COEXISTENCE(0x00000411, "人和动物检测事件"),// 对应 DEV_EVENT_HUMAN_ANIMAL_COEXISTENCE_INFO
+ EVENT_IVS_DROP_DETECTION(0x00000429, "滴漏检测事件"),// 对应 NET_DEV_EVENT_DROP_DETECTION_INFO
+ EVENT_IVS_TEMPERATURE_ALARM(0x0000042A, "温度报警事件"),// 对应 NET_DEV_EVENT_TEMPERATURE_ALARM_INFO
+ EVENT_IVS_HUMIDITY_ALARM(0x0000042B, "湿度报警事件"),// 对应 NET_DEV_EVENT_HUMIDITY_ALARM_INFO
+ EVENT_IVS_ILLEGAL_CARRIAGE(0x0000042F, "非法运输事件"),// (对应 NET_DEV_EVENT_ILLEGAL_CARRIAGE_INFO)
+ EVENT_IVS_GARBAGE_PLASTICBAG(0x00000459, " 打包垃圾检测事件"),// (对应 NET_DEV_EVENT_GARBAGE_PLASTICBAG_INFO)
+ EVENT_IVS_OBJECT_APPEAR_DETECTION(0x0000045F, " 目标出现事件"),// (对应 NET_DEV_EVENT_OBJECT_APPEAR_DETECTION_INFO)
+ EVENT_IVS_OBJECT_DISAPPEAR_DETECTION(0x00000460, " 目标消失事件"),// (对应 NET_DEV_EVENT_OBJECT_DISAPPEAR_DETECTION_INFO)
+ EVENT_IVS_OBJECT_STATE_DETECTION(0x00000461, " 目标状态事件"),// (对应 NET_DEV_EVENT_OBJECT_STATE_DETECTION_INFO)
+ EVENT_IVS_ACTION_COUNT(0x0000046E, " 行为自定义行为计数事件"),// (对应 NET_DEV_EVENT_ACTION_COUNT_INFO)
+ EVENT_IVS_WADING_DETECTION(0x0000046F, "涉水安全检测、水域监测报警"),// (对应 NET_DEV_EVENT_WADING_DETECTION_INFO)
+ EVENT_IVS_GENERAL_ATTITUDE_DETECTION(0x00000385, "姿态检测事件(对应 DEV_EVENT_GENERAL_ATTITUDE_DETECTION_INFO)"),//姿态检测事件(对应 DEV_EVENT_GENERAL_ATTITUDE_DETECTION_INFO)
+ EVENT_IVS_MULTI_MAN_NUM_DETECTION(0x0000043F, "讯问会见室人数报警事件(对应 NET_DEV_EVENT_MULTI_MAN_NUM_DETECTION_INFO)"),//讯问会见室人数报警事件(对应 NET_DEV_EVENT_MULTI_MAN_NUM_DETECTION_INFO)
+ EVENT_IVS_OBJECT_QUANTITY_DETECTION(0x00000440, "目标类型和数量检测报警事件(对应 NET_DEV_EVENT_OBJECT_QUANTITY_DETECTION_INFO)"),//目标类型和数量检测报警事件(对应 NET_DEV_EVENT_OBJECT_QUANTITY_DETECTION_INFO)
+ EVENT_IVS_DISTRESS_DETECTION(0x0000034C, "求救检测事件 ( 对应 DEV_EVENT_DISTRESS_DETECTION_INFO )"),//求救检测事件 ( 对应 DEV_EVENT_DISTRESS_DETECTION_INFO )
+ EVENT_IVS_GRAIN_HEIGHT_DETECTION(0x0000048F, "动粮检测事件(对应 NET_DEV_EVENT_GRAIN_HEIGHT_DETECTION_INFO)"),//动粮检测事件(对应 NET_DEV_EVENT_GRAIN_HEIGHT_DETECTION_INFO)
+ EVENT_IVS_COLD_SPOT_WARNING(0x00000455, "冷点报警 (对应 NET_DEV_EVENT_COLD_SPOT_WARNING_INFO)"),//冷点报警 (对应 NET_DEV_EVENT_COLD_SPOT_WARNING_INFO)
+ EVENT_IVS_TRAPPED_IN_LIFT_DETECTION(0x00000462, "电梯困人检测(对应 NET_DEV_EVENT_TRAPPED_IN_LIFT_DETECTION_INFO)"),//电梯困人检测(对应 NET_DEV_EVENT_TRAPPED_IN_LIFT_DETECTION_INFO)
+ EVENT_IVS_ELEVATOR_WORK_INFO(0x00000493, "上报电梯运行数据事件(对应 NET_DEV_EVENT_ELEVATOR_WORK_INFO_INFO)"),//上报电梯运行数据事件(对应 NET_DEV_EVENT_ELEVATOR_WORK_INFO_INFO)
+ EVENT_IVS_ELEVATOR_ALARM(0x00000494, "电梯异常报警(对应 NET_DEV_EVENT_ELEVATOR_ALARM_INFO)"),//电梯异常报警(对应 NET_DEV_EVENT_ELEVATOR_ALARM_INFO)
+ EVENT_IVS_TRAFFIC_TRUST_CAR(0x00000499, "信任车辆事件(对应NET_DEV_EVENT_TRAFFIC_TRUST_CAR_INFO )"),//信任车辆事件(对应NET_DEV_EVENT_TRAFFIC_TRUST_CAR_INFO )
+ EVENT_IVS_TRAFFIC_SUSPICIOUS_CAR(0x0000049A, "嫌疑车辆事件(对应NET_DEV_EVENT_TRAFFIC_SUSPICIOUS_CAR_INFO )"),//嫌疑车辆事件(对应NET_DEV_EVENT_TRAFFIC_SUSPICIOUS_CAR_INFO )
+ EVENT_IVS_DOOR_STATE_DETECTION(0x00000424, "开关门检测事件(对应 NET_DEV_EVENT_DOOR_STATE_DETECTION_INFO)"),//开关门检测事件(对应 NET_DEV_EVENT_DOOR_STATE_DETECTION_INFO)
+ EVENT_IVS_TRAFFIC_MOTORCYCLE_FORBID(0x00000364, "禁摩事件 (对应 DEV_EVENT_TRAFFIC_MOTORCYCLE_FORBID)"),//禁摩事件 (对应 DEV_EVENT_TRAFFIC_MOTORCYCLE_FORBID)
+ EVENT_IVS_AUDIO_MUTATION(0x0000045E, "声强突变事件(对应 NET_DEV_EVENT_AUDIO_MUTATION_INFO),(注意该事件暂时不支持单独使用,仅作为“开放智能事件(EVENT_IVS_OPEN_INTELLI)”中的一种规则))"),//声强突变事件(对应 NET_DEV_EVENT_AUDIO_MUTATION_INFO),(注意该事件暂时不支持单独使用,仅作为“开放智能事件(EVENT_IVS_OPEN_INTELLI)”中的一种规则))
+ EVENT_IVS_OCR_DETECTION(0x00000399, "OCR检测事件(对应 DEV_EVENT_OCR_DETECTION_INFO)"),//OCR检测事件(对应 DEV_EVENT_OCR_DETECTION_INFO)
+ EVENT_IVS_DIALRECOGNITION_EX(0x00000398, "仪表检测事件(对应DEV_EVENT_DIALRECOGNITION_INFO)"),//仪表检测事件(对应DEV_EVENT_DIALRECOGNITION_INFO)
+ EVENT_IVS_GROUND_THING_DETECTION(0x000004A4, "地物识别(对应 NET_DEV_EVENT_GROUND_THING_DETECTION_INFO)"),//地物识别(对应 NET_DEV_EVENT_GROUND_THING_DETECTION_INFO)
+ EVENT_IVS_CONVEYOR_BELT_STATUS(0x00000451, "传送带运动状态检测报警事件(对应 NET_DEV_EVENT_CONVEYOR_BELT_STATUS_INFO)"),//传送带运动状态检测报警事件(对应 NET_DEV_EVENT_CONVEYOR_BELT_STATUS_INFO)
+ EVENT_IVS_CONVEYORBLOCK_DETECTION(0x0000033E, "传送带阻塞报警事件 (对应DEV_EVENT_CONVEYORBLOCK_DETECTION_INFO )"),//传送带阻塞报警事件 (对应DEV_EVENT_CONVEYORBLOCK_DETECTION_INFO )
+ EVENT_IVS_CONVEYER_BELT_RUNOFF(0x00000353, "传送带跑偏检测事件(对应 DEV_EVENT_CONVEYER_BELT_RUNOFF_INFO )"),//传送带跑偏检测事件(对应 DEV_EVENT_CONVEYER_BELT_RUNOFF_INFO )
+ EVENT_IVS_WATER_SPEED_DETECTION(0x0000037B, "水流速检测事件(对应 DEV_EVENT_WATER_SPEED_DETECTION_INFO)"),//水流速检测事件(对应 DEV_EVENT_WATER_SPEED_DETECTION_INFO)
+ EVENT_IVS_RAILING_PASS_DETECTION(0x0000043E, "隔栏传物事件(对应结构体 NET_DEV_EVENT_RAILING_PASS_DETECTION_INFO)");//隔栏传物事件(对应结构体 NET_DEV_EVENT_RAILING_PASS_DETECTION_INFO)
+
+ private int type;
+ private String description;
+
+ private EM_EVENT_IVS_TYPE(int type, String description) {
+ this.type = type;
+ this.description = description;
+ }
+
+ public static EM_EVENT_IVS_TYPE getEventType(int type) {
+ for (EM_EVENT_IVS_TYPE event : EM_EVENT_IVS_TYPE.values()) {
+ if (type == event.getType()) {
+ return event;
+ }
+ }
+ return null;
+ }
+
+ public int getType() {
+ return type;
+ }
+
+ public void setType(int type) {
+ this.type = type;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_LEVEL.java b/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_LEVEL.java
new file mode 100644
index 0000000..a905b34
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_LEVEL.java
@@ -0,0 +1,69 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 事件级别枚举
+ *
+ * @author 47040
+ * @since Created in 2021/5/13 19:49
+ */
+public enum EM_EVENT_LEVEL {
+ /**
+ * 未知
+ */
+ EM_EVENT_LEVEL_UNKNOWN(-1, "未知"),
+ /**
+ * 提示
+ */
+ EM_EVENT_LEVEL_HINT(0, "提示"),
+ /**
+ * 普通
+ */
+ EM_EVENT_LEVEL_GENERAL(1, "普通"),
+ /**
+ * 警告
+ */
+ EM_EVENT_LEVEL_WARNING(2, "警告");
+
+ private final int value;
+ private final String note;
+
+ EM_EVENT_LEVEL(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_EVENT_LEVEL enumType : EM_EVENT_LEVEL.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_EVENT_LEVEL enumType : EM_EVENT_LEVEL.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_EVENT_LEVEL getEnum(int value) {
+ for (EM_EVENT_LEVEL e : EM_EVENT_LEVEL.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_EVENT_LEVEL.EM_EVENT_LEVEL_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_ORDER.java b/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_ORDER.java
new file mode 100644
index 0000000..d990aec
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_ORDER.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 设备给客户端传离线图片需要按照的顺序
+ * @date 2022/11/24 20:18:58
+ */
+public enum EM_EVENT_ORDER {
+ /**
+ * 未知
+ */
+ EM_EVENT_ORDER_UNKNOWN(0, "未知"),
+ /**
+ * 正序上传
+ */
+ EM_EVENT_ORDER_ASCENT(1, "正序上传"),
+ /**
+ * 倒序上传
+ */
+ EM_EVENT_ORDER_DESCENT(2, "倒序上传");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_EVENT_ORDER(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_EVENT_ORDER enumType : EM_EVENT_ORDER.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_EVENT_ORDER enumType : EM_EVENT_ORDER.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_TYPE.java
new file mode 100644
index 0000000..e6c09e3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_TYPE.java
@@ -0,0 +1,1521 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.structure.DEV_EVENT_TRAFFIC_NONMOTOR_INFO;
+import com.netsdk.lib.structure.DEV_EVENT_TRAFFIC_REAREND_ACCIDENT_INFO;
+import com.netsdk.lib.structure.DEV_EVENT_TRAFFIC_VISIBILITY_INFO;
+
+/**
+ * className:EM_EVENT_TYPE
+ * description:
+ * author:251589
+ * createTime:2021/1/25 17:24
+ *
+ * @version v1.0
+ */
+public enum EM_EVENT_TYPE {
+ /**
+ * 订阅所有事件
+ */
+ EVENT_IVS_ALL(0x00000001, "订阅所有事件"),
+ /**
+ * 警戒线事件
+ */
+ EVENT_IVS_CROSSLINEDETECTION(0x00000002, "警戒线事件"),
+ /**
+ * 警戒区事件
+ */
+ EVENT_IVS_CROSSREGIONDETECTION(0x00000003, "警戒区事件"),
+ /**
+ * 贴条事件
+ */
+ EVENT_IVS_PASTEDETECTION(0x00000004, "贴条事件"),
+ /**
+ * 物品遗留事件
+ */
+ EVENT_IVS_LEFTDETECTION(0x00000005, "物品遗留事件"),
+ /**
+ * 停留事件
+ */
+ EVENT_IVS_STAYDETECTION(0x00000006, "停留事件"),
+ /**
+ * 徘徊事件
+ */
+ EVENT_IVS_WANDERDETECTION(0x00000007, "徘徊事件"),
+ /**
+ * 物品保全事件
+ */
+ EVENT_IVS_PRESERVATION(0x00000008, "物品保全事件"),
+ /**
+ * 移动事件
+ */
+ EVENT_IVS_MOVEDETECTION(0x00000009, "移动事件"),
+ /**
+ * 尾随事件
+ */
+ EVENT_IVS_TAILDETECTION(0x0000000A, "尾随事件"),
+ /**
+ * 聚众事件
+ */
+ EVENT_IVS_RIOTERDETECTION(0x0000000B, "聚众事件"),
+ /**
+ * 火警事件
+ */
+ EVENT_IVS_FIREDETECTION(0x0000000C, "火警事件"),
+ /**
+ * 烟雾报警事件
+ */
+ EVENT_IVS_SMOKEDETECTION(0x0000000D, "烟雾报警事件"),
+ /**
+ * 斗殴事件
+ */
+ EVENT_IVS_FIGHTDETECTION(0x0000000E, "斗殴事件"),
+ /**
+ * 流量统计事件
+ */
+ EVENT_IVS_FLOWSTAT(0x0000000F, "流量统计事件"),
+ /**
+ * 数量统计事件
+ */
+ EVENT_IVS_NUMBERSTAT(0x00000010, "数量统计事件"),
+ /**
+ * 摄像头覆盖事件
+ */
+ EVENT_IVS_CAMERACOVERDDETECTION(0x00000011, "摄像头覆盖事件"),
+ /**
+ * 摄像头移动事件
+ */
+ EVENT_IVS_CAMERAMOVEDDETECTION(0x00000012, "摄像头移动事件"),
+ /**
+ * 视频异常事件
+ */
+ EVENT_IVS_VIDEOABNORMALDETECTION(0x00000013, "视频异常事件"),
+ /**
+ * 视频损坏事件
+ */
+ EVENT_IVS_VIDEOBADDETECTION(0x00000014, "视频损坏事件"),
+ /**
+ * 交通管理事件
+ */
+ EVENT_IVS_TRAFFICCONTROL(0x00000015, "交通管理事件"),
+ /**
+ * 交通事故事件
+ */
+ EVENT_IVS_TRAFFICACCIDENT(0x00000016, "交通事故事件"),
+ /**
+ * 交通路口事件----老规则
+ */
+ EVENT_IVS_TRAFFICJUNCTION(0x00000017, "交通路口事件----老规则"),
+ /**
+ * 交通卡口事件----老规则
+ */
+ EVENT_IVS_TRAFFICGATE(0x00000018, "交通卡口事件----老规则"),
+ /**
+ * 交通抓拍事件
+ */
+ EVENT_TRAFFICSNAPSHOT(0x00000019, "交通抓拍事件"),
+ /**
+ * 目标检测事件
+ */
+ EVENT_IVS_FACEDETECT(0x0000001A, "目标检测事件"),
+ /**
+ * 交通拥堵事件,{@link NetSDKLib.DEV_EVENT_TRAFFICJAM_INFO}
+ */
+ EVENT_IVS_TRAFFICJAM(0x0000001B, "交通拥堵事件"),
+ /**
+ * 非机动车占机动车车道事件
+ */
+ EVENT_IVS_TRAFFIC_NONMOTORINMOTORROUTE(0x0000001C, "非机动车占机动车车道事件"),
+ /**
+ * 交通违章-闯红灯事件
+ */
+ EVENT_IVS_TRAFFIC_RUNREDLIGHT(0x00000100, "交通违章-闯红灯事件"),
+ /**
+ * 交通违章-压车道线事件
+ */
+ EVENT_IVS_TRAFFIC_OVERLINE(0x00000101, "交通违章-压车道线事件"),
+ /**
+ * 交通违章-逆行事件
+ */
+ EVENT_IVS_TRAFFIC_RETROGRADE(0x00000102, "交通违章-逆行事件"),
+ /**
+ * 交通违章-违章左转
+ */
+ EVENT_IVS_TRAFFIC_TURNLEFT(0x00000103, "交通违章-违章左转"),
+ /**
+ * 交通违章-违章右转
+ */
+ EVENT_IVS_TRAFFIC_TURNRIGHT(0x00000104, "交通违章-违章右转"),
+ /**
+ * 交通违章-违章掉头
+ */
+ EVENT_IVS_TRAFFIC_UTURN(0x00000105, "交通违章-违章掉头"),
+ /**
+ * 交通违章-超速
+ */
+ EVENT_IVS_TRAFFIC_OVERSPEED(0x00000106, "交通违章-超速"),
+ /**
+ * 交通违章-低速
+ */
+ EVENT_IVS_TRAFFIC_UNDERSPEED(0x00000107, "交通违章-低速"),
+ /**
+ * 交通违章-违章停车
+ */
+ EVENT_IVS_TRAFFIC_PARKING(0x00000108, "交通违章-违章停车"),
+ /**
+ * 交通违章-不按车道行驶
+ */
+ EVENT_IVS_TRAFFIC_WRONGROUTE(0x00000109, "交通违章-不按车道行驶"),
+ /**
+ * 交通违章-违章变道
+ */
+ EVENT_IVS_TRAFFIC_CROSSLANE(0x0000010A, "交通违章-违章变道"),
+ /**
+ * 交通违章-压黄线
+ */
+ EVENT_IVS_TRAFFIC_OVERYELLOWLINE(0x0000010B, "交通违章-压黄线"),
+ /**
+ * 交通违章-路肩行驶事件
+ */
+ EVENT_IVS_TRAFFIC_DRIVINGONSHOULDER(0x0000010C, "交通违章-路肩行驶事件"),
+ /**
+ * 交通违章-黄牌车占道事件
+ */
+ EVENT_IVS_TRAFFIC_YELLOWPLATEINLANE(0x0000010E, "交通违章-黄牌车占道事件"),
+ /**
+ * 交通违章-礼让行人/斑马线行人优先事件
+ */
+ EVENT_IVS_TRAFFIC_PEDESTRAINPRIORITY(0x0000010F, "交通违章-礼让行人/斑马线行人优先事件"),
+ /**
+ * 电火花事件
+ */
+ EVENT_IVS_ELECTROSPARKDETECTION(0x00000110, "电火花事件"),
+ /**
+ * 交通违章-禁止通行事件
+ */
+ EVENT_IVS_TRAFFIC_NOPASSING(0x00000111, "交通违章-禁止通行事件"),
+ /**
+ * 异常奔跑事件
+ */
+ EVENT_IVS_ABNORMALRUNDETECTION(0x00000112, "异常奔跑事件"),
+ /**
+ * 人员逆行事件
+ */
+ EVENT_IVS_RETROGRADEDETECTION(0x00000113, "人员逆行事件"),
+ /**
+ * 区域内检测事件
+ */
+ EVENT_IVS_INREGIONDETECTION(0x00000114, "区域内检测事件"),
+ /**
+ * 物品搬移事件
+ */
+ EVENT_IVS_TAKENAWAYDETECTION(0x00000115, "物品搬移事件"),
+ /**
+ * 非法停车事件
+ */
+ EVENT_IVS_PARKINGDETECTION(0x00000116, "非法停车事件"),
+ /**
+ * 目标识别事件
+ */
+ EVENT_IVS_FACERECOGNITION(0x00000117, "目标识别事件"),
+ /**
+ * 交通手动抓拍事件
+ */
+ EVENT_IVS_TRAFFIC_MANUALSNAP(0x00000118, "交通手动抓拍事件"),
+ /**
+ * 交通流量统计事件
+ */
+ EVENT_IVS_TRAFFIC_FLOWSTATE(0x00000119, "交通流量统计事件"),
+ /**
+ * 交通滞留事件
+ */
+ EVENT_IVS_TRAFFIC_STAY(0x0000011A, "交通滞留事件"),
+ /**
+ * 有车占道事件
+ */
+ EVENT_IVS_TRAFFIC_VEHICLEINROUTE(0x0000011B, "有车占道事件"),
+ /**
+ * 视频移动侦测事件
+ */
+ EVENT_ALARM_MOTIONDETECT(0x0000011C, "视频移动侦测事件"),
+ /**
+ * 外部报警事件
+ */
+ EVENT_ALARM_LOCALALARM(0x0000011D, "外部报警事件"),
+ /**
+ * 囚犯起身事件
+ */
+ EVENT_IVS_PSRISEDETECTION(0x0000011E, "囚犯起身事件"),
+ /**
+ * 翻越围栏事件
+ */
+ EVENT_IVS_CROSSFENCEDETECTION(0x0000011F, "翻越围栏事件"),
+ /**
+ * 交通违章-卡口事件----新规则
+ */
+ EVENT_IVS_TRAFFIC_TOLLGATE(0x00000120, "交通违章-卡口事件----新规则"),
+ /**
+ * 人员密集度检测
+ */
+ EVENT_IVS_DENSITYDETECTION(0x00000121, "人员密集度检测"),
+ /**
+ * 视频诊断结果事件
+ */
+ EVENT_IVS_VIDEODIAGNOSIS(0x00000122, "视频诊断结果事件"),
+ /**
+ * 排队检测报警事件
+ */
+ EVENT_IVS_QUEUEDETECTION(0x00000123, "排队检测报警事件"),
+ /**
+ * 占用公交车道事件
+ */
+ EVENT_IVS_TRAFFIC_VEHICLEINBUSROUTE(0x00000124, "占用公交车道事件"),
+ /**
+ * 违章倒车事件
+ */
+ EVENT_IVS_TRAFFIC_BACKING(0x00000125, "违章倒车事件"),
+ /**
+ * 声音异常检测
+ */
+ EVENT_IVS_AUDIO_ABNORMALDETECTION(0x00000126, "声音异常检测"),
+ /**
+ * 交通违章-闯黄灯事件
+ */
+ EVENT_IVS_TRAFFIC_RUNYELLOWLIGHT(0x00000127, "交通违章-闯黄灯事件"),
+ /**
+ * 攀高检测事件
+ */
+ EVENT_IVS_CLIMBDETECTION(0x00000128, "攀高检测事件"),
+ /**
+ * 离岗检测事件
+ */
+ EVENT_IVS_LEAVEDETECTION(0x00000129, "离岗检测事件"),
+ /**
+ * 黄网格线抓拍事件
+ */
+ EVENT_IVS_TRAFFIC_PARKINGONYELLOWBOX(0x0000012A, "黄网格线抓拍事件"),
+ /**
+ * 车位有车事件
+ */
+ EVENT_IVS_TRAFFIC_PARKINGSPACEPARKING(0x0000012B, "车位有车事件"),
+ /**
+ * 车位无车事件
+ */
+ EVENT_IVS_TRAFFIC_PARKINGSPACENOPARKING(0x0000012C, "车位无车事件"),
+ /**
+ * 交通行人事件
+ */
+ EVENT_IVS_TRAFFIC_PEDESTRAIN(0x0000012D, "交通行人事件"),
+ /**
+ * 交通抛洒物品事件
+ */
+ EVENT_IVS_TRAFFIC_THROW(0x0000012E, "交通抛洒物品事件"),
+ /**
+ * 交通空闲事件
+ */
+ EVENT_IVS_TRAFFIC_IDLE(0x0000012F, "交通空闲事件"),
+ /**
+ * 车载ACC断电报警事件
+ */
+ EVENT_ALARM_VEHICLEACC(0x00000130, "车载ACC断电报警事件"),
+ /**
+ * 车辆侧翻报警事件
+ */
+ EVENT_ALARM_VEHICLE_TURNOVER(0x00000131, "车辆侧翻报警事件"),
+ /**
+ * 车辆撞车报警事件
+ */
+ EVENT_ALARM_VEHICLE_COLLISION(0x00000132, "车辆撞车报警事件"),
+ /**
+ * 车载摄像头大角度扭转事件
+ */
+ EVENT_ALARM_VEHICLE_LARGE_ANGLE(0x00000133, "车载摄像头大角度扭转事件"),
+ /**
+ * 车位压线事件
+ */
+ EVENT_IVS_TRAFFIC_PARKINGSPACEOVERLINE(0x00000134, "车位压线事件"),
+ /**
+ * 多场景切换事件
+ */
+ EVENT_IVS_MULTISCENESWITCH(0x00000135, "多场景切换事件"),
+ /**
+ * 受限车牌事件
+ */
+ EVENT_IVS_TRAFFIC_RESTRICTED_PLATE(0x00000136, "受限车牌事件"),
+ /**
+ * 压停止线事件
+ */
+ EVENT_IVS_TRAFFIC_OVERSTOPLINE(0x00000137, "压停止线事件"),
+ /**
+ * 交通未系安全带事件
+ */
+ EVENT_IVS_TRAFFIC_WITHOUT_SAFEBELT(0x00000138, "交通未系安全带事件"),
+ /**
+ * 驾驶员抽烟事件
+ */
+ EVENT_IVS_TRAFFIC_DRIVER_SMOKING(0x00000139, "驾驶员抽烟事件"),
+ /**
+ * 驾驶员打电话事件
+ */
+ EVENT_IVS_TRAFFIC_DRIVER_CALLING(0x0000013A, "驾驶员打电话事件"),
+ /**
+ * 行人闯红灯事件
+ */
+ EVENT_IVS_TRAFFIC_PEDESTRAINRUNREDLIGHT(0x0000013B, "行人闯红灯事件"),
+ /**
+ * 未按规定依次通行
+ */
+ EVENT_IVS_TRAFFIC_PASSNOTINORDER(0x0000013C, "未按规定依次通行"),
+ /**
+ * 物体特征检测事件
+ */
+ EVENT_IVS_OBJECT_DETECTION(0x00000141, "物体特征检测事件"),
+ /**
+ * 模拟量报警通道的报警事件
+ */
+ EVENT_ALARM_ANALOGALARM(0x00000150, "模拟量报警通道的报警事件"),
+ /**
+ * 警戒线扩展事件
+ */
+ EVENT_IVS_CROSSLINEDETECTION_EX(0x00000151, "警戒线扩展事件"),
+ /**
+ * 普通录像
+ */
+ EVENT_ALARM_COMMON(0x00000152, "普通录像"),
+ /**
+ * 视频遮挡事件
+ */
+ EVENT_ALARM_VIDEOBLIND(0x00000153, "视频遮挡事件"),
+ /**
+ * 视频丢失事件
+ */
+ EVENT_ALARM_VIDEOLOSS(0x00000154, "视频丢失事件"),
+ /**
+ * 下床事件
+ */
+ EVENT_IVS_GETOUTBEDDETECTION(0x00000155, "下床事件"),
+ /**
+ * 巡逻检测事件
+ */
+ EVENT_IVS_PATROLDETECTION(0x00000156, "巡逻检测事件"),
+ /**
+ * 站岗检测事件
+ */
+ EVENT_IVS_ONDUTYDETECTION(0x00000157, "站岗检测事件"),
+ /**
+ * 门口机呼叫未响应事件
+ */
+ EVENT_IVS_NOANSWERCALL(0x00000158, "门口机呼叫未响应事件"),
+ /**
+ * 存储组不存在事件
+ */
+ EVENT_IVS_STORAGENOTEXIST(0x00000159, "存储组不存在事件"),
+ /**
+ * 硬盘空间低报警事件
+ */
+ EVENT_IVS_STORAGELOWSPACE(0x0000015A, "硬盘空间低报警事件"),
+ /**
+ * 存储错误事件
+ */
+ EVENT_IVS_STORAGEFAILURE(0x0000015B, "存储错误事件"),
+ /**
+ * 报警传输事件
+ */
+ EVENT_IVS_PROFILEALARMTRANSMIT(0x0000015C, "报警传输事件"),
+ /**
+ * 视频静态检测事件
+ */
+ EVENT_IVS_VIDEOSTATIC(0x0000015D, "视频静态检测事件"),
+ /**
+ * 视频定时检测事件
+ */
+ EVENT_IVS_VIDEOTIMING(0x0000015E, "视频定时检测事件"),
+ /**
+ * 热度图
+ */
+ EVENT_IVS_HEATMAP(0x0000015F, "热度图"),
+ /**
+ * 证件信息读取事件
+ */
+ EVENT_IVS_CITIZENIDCARD(0x00000160, "证件信息读取事件"),
+ /**
+ * 图片信息事件
+ */
+ EVENT_IVS_PICINFO(0x00000161, "图片信息事件"),
+ /**
+ * 上网登记事件
+ */
+ EVENT_IVS_NETPLAYCHECK(0x00000162, "上网登记事件"),
+ /**
+ * 车辆拥堵禁入事件
+ */
+ EVENT_IVS_TRAFFIC_JAM_FORBID_INTO(0x00000163, "车辆拥堵禁入事件"),
+ /**
+ * 定时抓图事件
+ */
+ EVENT_IVS_SNAPBYTIME(0x00000164, "定时抓图事件"),
+ /**
+ * 云台转动到预置点事件
+ */
+ EVENT_IVS_PTZ_PRESET(0x00000165, "云台转动到预置点事件"),
+ /**
+ * 红外线检测信息事件
+ */
+ EVENT_IVS_RFID_INFO(0x00000166, "红外线检测信息事件"),
+ /**
+ * 人起立检测事件
+ */
+ EVENT_IVS_STANDUPDETECTION(0x00000167, "人起立检测事件"),
+ /**
+ * 交通卡口称重事件
+ */
+ EVENT_IVS_QSYTRAFFICCARWEIGHT(0x00000168, "交通卡口称重事件"),
+ /**
+ * 卡口前后车牌合成事件
+ */
+ EVENT_IVS_TRAFFIC_COMPAREPLATE(0x00000169, "卡口前后车牌合成事件"),
+ /**
+ * 打靶像机事件
+ */
+ EVENT_IVS_SHOOTINGSCORERECOGNITION(0x0000016A, "打靶像机事件"),
+ /**
+ * 加油站提枪、挂枪事件
+ */
+ EVENT_IVS_TRAFFIC_FCC(0x0000016B, "加油站提枪、挂枪事件"),
+ /**
+ * 违章超限抓图上报事件,绍兴科技治超
+ */
+ EVENT_IVS_TRAFFIC_TRANSFINITE(0x0000016C, "违章超限抓图上报事件,绍兴科技治超"),
+ /**
+ * 场景变更事件
+ */
+ EVENT_IVS_SCENE_CHANGE(0x0000016D, "场景变更事件"),
+ /**
+ * 简单跟踪事件
+ */
+ EVENT_IVS_LETRACK(0x0000016E, "简单跟踪事件"),
+ /**
+ * 物体检测事件
+ */
+ EVENT_IVS_OBJECT_ACTION(0x0000016F, "物体检测事件"),
+ /**
+ * 预分析抓拍图片事件
+ */
+ EVENT_IVS_TRAFFIC_ANALYSE_PRESNAP(0x00000170, "预分析抓拍图片事件"),
+ /**
+ * 智能插座电量状态上报
+ */
+ EVENT_ALARM_EQSTATE(0x00000171, "智能插座电量状态上报"),
+ /**
+ * DVR/NVR设备上的IPC报警
+ */
+ EVENT_IVS_ALARM_IPC(0x00000172, "DVR/NVR设备上的IPC报警"),
+ /**
+ * POS录像查询事件
+ */
+ EVENT_IVS_POS_RECORD(0x00000173, "POS录像查询事件"),
+ /**
+ * 近距离接触事件
+ */
+ EVENT_IVS_NEAR_DISTANCE_DETECTION(0x00000174, "近距离接触事件"),
+ /**
+ * 行人特征检测事件
+ */
+ EVENT_IVS_OBJECTSTRUCTLIZE_PERSON(0x00000175, "行人特征检测事件"),
+ /**
+ * 非机动车特征检测事件
+ */
+ EVENT_IVS_OBJECTSTRUCTLIZE_NONMOTOR(0x00000176, "非机动车特征检测事件"),
+ /**
+ * 倒地报警事件
+ */
+ EVENT_IVS_TUMBLE_DETECTION(0x00000177, "倒地报警事件"),
+ /**
+ * 所有以traffic开头的事件,目前指的是
+ */
+ EVENT_IVS_TRAFFIC_ALL(0x000001FF, "所有以traffic开头的事件,目前指的是"),
+ /**
+ * EVENT_TRAFFICSNAPSHOT
+ */
+ //(EVENT_IVS_TRAFFICCONTROL, "EVENT_TRAFFICSNAPSHOT"),
+ /*** EVENT_IVS_TRAFFIC_UNDERSPEED(),
+ *///(EVENT_IVS_TRAFFIC_RUNREDLIGHT, "EVENT_IVS_TRAFFIC_UNDERSPEED")),///(EVENT_IVS_TRAFFIC_RUNREDLIGHT, "EVENT_IVS_TRAFFIC_UNDERSPEED"),
+ /**
+ * 所有智能分析事件
+ */
+ EVENT_IVS_VIDEOANALYSE(0x00000200, "所有智能分析事件"),
+ /**
+ * LinkSD事件
+ */
+ EVENT_IVS_LINKSD(0x00000201, "LinkSD事件"),
+ /**
+ * 车辆特征检测分析
+ */
+ EVENT_IVS_VEHICLEANALYSE(0x00000202, "车辆特征检测分析"),
+ /**
+ * 流量使用情况事件
+ */
+ EVENT_IVS_FLOWRATE(0x00000203, "流量使用情况事件"),
+ /**
+ * 门禁事件
+ */
+ EVENT_IVS_ACCESS_CTL(0x00000204, "门禁事件"),
+ /**
+ * SnapManual事件
+ */
+ EVENT_IVS_SNAPMANUAL(0x00000205, "SnapManual事件"),
+ /**
+ * RFID电子车牌标签事件
+ */
+ EVENT_IVS_TRAFFIC_ELETAGINFO(0x00000206, "RFID电子车牌标签事件"),
+ /**
+ * 生理疲劳驾驶事件
+ */
+ EVENT_IVS_TRAFFIC_TIREDPHYSIOLOGICAL(0x00000207, "生理疲劳驾驶事件"),
+ /**
+ * 车辆急转报警事件
+ */
+ EVENT_IVS_TRAFFIC_BUSSHARPTURN(0x00000208, "车辆急转报警事件"),
+ /**
+ * 人证比对事件
+ */
+ EVENT_IVS_CITIZEN_PICTURE_COMPARE(0x00000209, "人证比对事件"),
+ /**
+ * 开车低头报警事件
+ */
+ EVENT_IVS_TRAFFIC_TIREDLOWERHEAD(0x0000020A, "开车低头报警事件"),
+ /**
+ * 开车左顾右盼报警事件
+ */
+ EVENT_IVS_TRAFFIC_DRIVERLOOKAROUND(0x0000020B, "开车左顾右盼报警事件"),
+ /**
+ * 开车离岗报警事件
+ */
+ EVENT_IVS_TRAFFIC_DRIVERLEAVEPOST(0x0000020C, "开车离岗报警事件"),
+ /**
+ * 立体视觉站立事件
+ */
+ EVENT_IVS_MAN_STAND_DETECTION(0x0000020D, "立体视觉站立事件"),
+ /**
+ * 立体视觉区域内人数统计事件
+ */
+ EVENT_IVS_MAN_NUM_DETECTION(0x0000020E, "立体视觉区域内人数统计事件"),
+ /**
+ * 客流量统计事件
+ */
+ EVENT_IVS_STEREO_NUMBERSTAT(0x0000020F, "客流量统计事件"),
+ /**
+ * 开车打哈欠事件
+ */
+ EVENT_IVS_TRAFFIC_DRIVERYAWN(0x00000210, "开车打哈欠事件"),
+ /**
+ * 客流量统计计划
+ */
+ EVENT_IVS_NUMBERSTAT_PLAN(0x00000211, "客流量统计计划"),
+ /**
+ * 热度图计划
+ */
+ EVENT_IVS_HEATMAP_PLAN(0x00000212, "热度图计划"),
+ /**
+ * 呼叫无答应事件
+ */
+ EVENT_IVS_CALLNOANSWERED(0x00000213, "呼叫无答应事件"),
+ /**
+ * 无视邀请事件
+ */
+ EVENT_IVS_IGNOREINVITE(0x00000214, "无视邀请事件"),
+ /**
+ * 人体特征事件
+ */
+ EVENT_IVS_HUMANTRAIT(0x00000215, "人体特征事件"),
+ /**
+ * 乐橙人头检测事件
+ */
+ EVENT_ALARM_LE_HEADDETECTION(0x00000216, "乐橙人头检测事件"),
+ /**
+ * 人脸分析事件
+ */
+ EVENT_IVS_FACEANALYSIS(0x00000217, "人脸分析事件"),
+ /**
+ * 左转不礼让直行事件
+ */
+ EVENT_IVS_TRAFFIC_TURNLEFTAFTERSTRAIGHT(0x00000218, "左转不礼让直行事件"),
+ /**
+ * 大弯小转事件
+ */
+ EVENT_IVS_TRAFFIC_BIGBENDSMALLTURN(0x00000219, "大弯小转事件"),
+ /**
+ * 道路施工监测事件
+ */
+ EVENT_IVS_ROAD_CONSTRUCTION(0x0000021A, "道路施工监测事件"),
+ /**
+ * 路障检测事件
+ */
+ EVENT_IVS_ROAD_BLOCK(0x0000021B, "路障检测事件"),
+ /**
+ * 车辆加塞事件
+ */
+ EVENT_IVS_TRAFFIC_QUEUEJUMP(0x0000021C, "车辆加塞事件"),
+ /**
+ * 嫌疑车辆事件
+ */
+ EVENT_IVS_VEHICLE_SUSPICIOUSCAR(0x0000021D, "嫌疑车辆事件"),
+ /**
+ * 右转不礼让直行事件
+ */
+ EVENT_IVS_TRAFFIC_TURNRIGHTAFTERSTRAIGHT(0x0000021E, "右转不礼让直行事件"),
+ /**
+ * 右转不礼让直行行人
+ */
+ EVENT_IVS_TRAFFIC_TURNRIGHTAFTERPEOPLE(0x0000021F, "右转不礼让直行行人"),
+ /**
+ * 安装读卡器事件
+ */
+ EVENT_IVS_INSTALL_CARDREADER(0x00000220, "安装读卡器事件"),
+ /**
+ * Yale
+ */
+ EVENT_ALARM_YALE_DROPBOX_BADTOKEN(0x00000221, "Yale"),
+ /**
+ * 车载设备断电前抓拍上传事件
+ */
+ EVENT_IVS_ACC_OFF_SNAP(0x00000222, "车载设备断电前抓拍上传事件"),
+ /**
+ * X光检测事件
+ */
+ EVENI_IVS_XRAY_DETECTION(0x00000223, "X光检测事件"),
+ /**
+ * 未清车告警
+ */
+ EVENT_IVS_NOTCLEARCAR(0x00000224, "未清车告警"),
+ /**
+ * sos求救报警
+ */
+ EVENT_IVS_SOSALEART(0x00000225, "sos求救报警"),
+ /**
+ * 超载抓图
+ */
+ EVENT_IVS_OVERLOAD(0x00000226, "超载抓图"),
+ /**
+ * 非工作时间告警
+ */
+ EVENT_IVS_NONWORKINGTIME(0x00000227, "非工作时间告警"),
+ /**
+ * 远光灯违章事件
+ */
+ EVENT_IVS_TRAFFIC_HIGH_BEAM(0x00000228, "远光灯违章事件"),
+ /**
+ * 禁止货车事件
+ */
+ EVENT_IVS_TRAFFIC_TRUCKFORBID(0x00000229, "禁止货车事件"),
+ /**
+ * 无卡驾驶报警事件
+ */
+ EVENT_IVS_DRIVINGWITHOUTCARD(0x0000022A, "无卡驾驶报警事件"),
+ /**
+ * 车辆超速报警事件
+ */
+ EVENT_IVS_HIGHSPEED(0x0000022B, "车辆超速报警事件"),
+ /**
+ * 人群密度检测事件
+ */
+ EVENT_IVS_CROWDDETECTION(0x0000022C, "人群密度检测事件"),
+ /**
+ * 车间距过小报警事件
+ */
+ EVENT_IVS_TRAFFIC_CARDISTANCESHORT(0x0000022D, "车间距过小报警事件"),
+ /**
+ * 行人卡口事件
+ */
+ EVENT_IVS_PEDESTRIAN_JUNCTION(0x00000230, "行人卡口事件"),
+ /**
+ * 车牌对比事件
+ */
+ EVENT_IVS_VEHICLE_RECOGNITION(0x00000231, "车牌对比事件"),
+ /**
+ * 预置点图片变化事件
+ */
+ EVENT_IVS_PASS_CHANGE(0x00000232, "预置点图片变化事件"),
+ /**
+ * 违停相机单球车位检测规则事件
+ */
+ EVENT_IVS_TRAFFIC_PARKING_SPACEDETECTION(0x00000233, "违停相机单球车位检测规则事件"),
+ /**
+ * 违章进入待行区事件
+ */
+ EVENT_IVS_TRAFFIC_WAITINGAREA(0x00000234, "违章进入待行区事件"),
+ /**
+ * 机动车违法禁令标识事件
+ */
+ EVENT_IVS_TRAFFIC_BAN(0x00000235, "机动车违法禁令标识事件"),
+ /**
+ * POS机交易事件
+ */
+ EVENT_IVS_POS_EXCHANGE(0x00000236, "POS机交易事件"),
+ /**
+ * 立体行为分析打架/剧烈运动检测规则
+ */
+ EVENT_IVS_STEREO_FIGHTDETECTION(0x00000237, "立体行为分析打架/剧烈运动检测规则"),
+ /**
+ * 立体行为分析间距异常/人员靠近检测
+ */
+ EVENT_IVS_STEREO_DISTANCE_DETECTION(0x00000238, "立体行为分析间距异常/人员靠近检测"),
+ /**
+ * 立体行为分析跌倒检测规则
+ */
+ EVENT_IVS_STEREO_STEREOFALLDETECTION(0x00000239, "立体行为分析跌倒检测规则"),
+ /**
+ * 立体行为分析人员滞留检测规则
+ */
+ EVENT_IVS_STEREO_STAYDETECTION(0x0000023A, "立体行为分析人员滞留检测规则"),
+ /**
+ * 拉横幅事件
+ */
+ EVENT_IVS_BANNER_DETECTION(0x0000023B, "拉横幅事件"),
+ /**
+ * 普通打架事件
+ */
+ EVENT_IVS_NORMAL_FIGHTDETECTION(0x0000023C, "普通打架事件"),
+ /**
+ * 电动扶梯运行异常事件
+ */
+ EVENT_IVS_ELEVATOR_ABNORMAL(0x0000023D, "电动扶梯运行异常事件"),
+ /**
+ * 非机动车检测
+ */
+ EVENT_IVS_NONMOTORDETECT(0x0000023E, "非机动车检测"),
+ /**
+ * 机动车检测
+ */
+ EVENT_IVS_VEHICLEDETECT(0x0000023F, "机动车检测"),
+ /**
+ * 交通违章-B类违章停车
+ */
+ EVENT_IVS_TRAFFIC_PARKING_B(0x00000240, "交通违章-B类违章停车"),
+ /**
+ * 交通违章-C类违章停车
+ */
+ EVENT_IVS_TRAFFIC_PARKING_C(0x00000241, "交通违章-C类违章停车"),
+ /**
+ * 交通违章-D类违章停车
+ */
+ EVENT_IVS_TRAFFIC_PARKING_D(0x00000242, "交通违章-D类违章停车"),
+ /**
+ * IVSS目标检测事件
+ */
+ EVENT_IVSS_FACEATTRIBUTE(0x00000243, "IVSS目标检测事件"),
+ /**
+ * IVSS目标识别事件
+ */
+ EVENT_IVSS_FACECOMPARE(0x00000244, "IVSS目标识别事件"),
+ /**
+ * 火警事件
+ */
+ EVENT_IVS_FIREWARNING(0x00000245, "火警事件"),
+ /**
+ * 商铺占道经营事件
+ */
+ EVENT_IVS_SHOPPRESENCE(0x00000246, "商铺占道经营事件"),
+ /**
+ * 垃圾违章倾倒事件
+ */
+ EVENT_IVS_WASTEDUMPED(0x00000247, "垃圾违章倾倒事件"),
+ /**
+ * 抛洒物检测事件
+ */
+ EVENT_IVS_SPILLEDMATERIAL_DETECTION(0x00000248, "抛洒物检测事件"),
+ /**
+ * 立体行为分析人数异常检测
+ */
+ EVENT_IVS_STEREO_MANNUM_DETECTION(0x00000249, "立体行为分析人数异常检测"),
+ /**
+ * 异常间距事件
+ */
+ EVENT_IVS_DISTANCE_DETECTION(0x0000024A, "异常间距事件"),
+ /**
+ * 非机动车超载事件
+ */
+ EVENT_IVS_TRAFFIC_NONMOTOR_OVERLOAD(0x0000024B, "非机动车超载事件"),
+ /**
+ * 非机动车未戴安全帽事件
+ */
+ EVENT_IVS_TRAFFIC_NONMOTOR_WITHOUTSAFEHAT(0x0000024C, "非机动车未戴安全帽事件"),
+ /**
+ * 拥堵滞留斑马线事件
+ */
+ EVENT_IVS_TRAFFIC_JAM_STOP_ON_ZEBRACROSSING(0x0000024D, "拥堵滞留斑马线事件"),
+ /**
+ * 流动摊贩事件
+ */
+ EVENT_IVS_FLOWBUSINESS(0x0000024E, "流动摊贩事件"),
+ /**
+ * 城市机动车违停事件
+ */
+ EVENT_IVS_CITY_MOTORPARKING(0x0000024F, "城市机动车违停事件"),
+ /**
+ * 城市机非动车违停事件
+ */
+ EVENT_IVS_CITY_NONMOTORPARKING(0x00000250, "城市机非动车违停事件"),
+ /**
+ * 车道偏移预警
+ */
+ EVENT_IVS_LANEDEPARTURE_WARNNING(0X00000251, "车道偏移预警"),
+ /**
+ * 前向碰撞预警
+ */
+ EVENT_IVS_FORWARDCOLLISION_WARNNING(0x00000252, "前向碰撞预警"),
+ /**
+ * 物料堆放事件
+ */
+ EVENT_IVS_MATERIALSSTAY(0x00000253, "物料堆放事件"),
+ /**
+ * 非机动车装载伞具
+ */
+ EVENT_IVS_TRAFFIC_NONMOTOR_HOLDUMBRELLA(0x00000254, "非机动车装载伞具"),
+ /**
+ * 客户报警产品
+ */
+ EVENT_IVS_JABLOTRON_ALARM(0x00000255, "客户报警产品"),
+ /**
+ * 视频虚焦事件
+ */
+ EVENT_IVS_VIDEOUNFOCUS_ALARM(0x00000256, "视频虚焦事件"),
+ /**
+ * 漂浮物检测事件
+ */
+ EVENT_IVS_FLOATINGOBJECT_DETECTION(0x00000257, "漂浮物检测事件"),
+ /**
+ * 船舶检测事件
+ */
+ EVENT_IVS_SHIP_DETECTION(0x00000258, "船舶检测事件"),
+ /**
+ * 飞机行为检测事件
+ */
+ EVENT_IVS_AIRPLANE_DETECTION(0x00000259, "飞机行为检测事件"),
+ /**
+ * 打电话检测事件
+ */
+ EVENT_IVS_PHONECALL_DETECT(0x0000025A, "打电话检测事件"),
+ /**
+ * 吸烟检测事件
+ */
+ EVENT_IVS_SMOKING_DETECT(0x0000025B, "吸烟检测事件"),
+ /**
+ * 雷达限速报警事件
+ */
+ EVENT_IVS_RADAR_SPEED_LIMIT_ALARM(0x0000025C, "雷达限速报警事件"),
+ /**
+ * 水位检测事件
+ */
+ EVENT_IVS_WATER_LEVEL_DETECTION(0x0000025D, "水位检测事件"),
+ /**
+ * 违规撑伞检测事件
+ */
+ EVENT_IVS_HOLD_UMBRELLA(0x0000025E, "违规撑伞检测事件"),
+ /**
+ * 垃圾暴露检测事件
+ */
+ EVENT_IVS_GARBAGE_EXPOSURE(0x0000025F, "垃圾暴露检测事件"),
+ /**
+ * 垃圾桶满溢检测事件
+ */
+ EVENT_IVS_DUSTBIN_OVER_FLOW(0x00000260, "垃圾桶满溢检测事件"),
+ /**
+ * 门前脏乱检测事件
+ */
+ EVENT_IVS_DOOR_FRONT_DIRTY(0x00000261, "门前脏乱检测事件"),
+ /**
+ * 排队滞留时间报警事件
+ */
+ EVENT_IVS_QUEUESTAY_DETECTION(0X00000262, "排队滞留时间报警事件"),
+ /**
+ * 排队人数异常报警事件
+ */
+ EVENT_IVS_QUEUENUM_DETECTION(0X00000263, "排队人数异常报警事件"),
+ /**
+ * 生成图规则事件
+ */
+ EVENT_IVS_GENERATEGRAPH_DETECTION(0X00000264, "生成图规则事件"),
+ /**
+ * 交通违章-手动取证
+ */
+ EVENT_IVS_TRAFFIC_PARKING_MANUAL(0x00000265, "交通违章-手动取证"),
+ /**
+ * 安全帽检测事件
+ */
+ EVENT_IVS_HELMET_DETECTION(0x00000266, "安全帽检测事件"),
+ /**
+ * 包裹堆积程度检测事件
+ */
+ EVENT_IVS_DEPOSIT_DETECTION(0x00000267, "包裹堆积程度检测事件"),
+ /**
+ * 热点异常报警事件
+ */
+ EVENT_IVS_HOTSPOT_WARNING(0x00000268, "热点异常报警事件"),
+ /**
+ * 称重平台检测事件
+ */
+ EVENT_IVS_WEIGHING_PLATFORM_DETECTION(0x00000269, "称重平台检测事件"),
+ /**
+ * 课堂行为分析事件
+ */
+ EVENT_IVS_CLASSROOM_BEHAVIOR(0x0000026A, "课堂行为分析事件"),
+ /**
+ * 安全驾驶车距过近报警事件
+ */
+ EVENT_IVS_VEHICLE_DISTANCE_NEAR(0x0000026B, "安全驾驶车距过近报警事件"),
+ /**
+ * 驾驶员异常报警事件
+ */
+ EVENT_IVS_TRAFFIC_DRIVER_ABNORMAL(0x0000026C, "驾驶员异常报警事件"),
+ /**
+ * 驾驶员变更报警事件
+ */
+ EVENT_IVS_TRAFFIC_DRIVER_CHANGE(0x0000026D, "驾驶员变更报警事件"),
+ /**
+ * 工装
+ */
+ EVENT_IVS_WORKCLOTHES_DETECT(0x0000026E, "工装"),
+ /**
+ * 安检门人员报警事件
+ */
+ EVENT_IVS_SECURITYGATE_PERSONALARM(0x0000026F, "安检门人员报警事件"),
+ /**
+ * 单人独处事件
+ */
+ EVENT_IVS_STAY_ALONE_DETECTION(0x00000270, "单人独处事件"),
+ /**
+ * 交通路障检测事件
+ */
+ EVENT_IVS_TRAFFIC_ROAD_BLOCK(0x00000271, "交通路障检测事件"),
+ /**
+ * 交通道路施工检测事件
+ */
+ EVENT_IVS_TRAFFIC_ROAD_CONSTRUCTION(0x00000272, "交通道路施工检测事件"),
+ /**
+ * X光按物体检测规则配置,
+ */
+ EVENT_IVS_XRAY_DETECT_BYOBJECT(0x00000273, "X光按物体检测规则配置,"),
+ /**
+ * 作业统计事件
+ */
+ EVENT_IVS_WORKSTATDETECTION(0x00000274, "作业统计事件"),
+ /**
+ * 红外阻断事件
+ */
+ EVENT_IVS_INFRAREDBLOCK(0x00000275, "红外阻断事件"),
+ /**
+ * 特征提取事件
+ */
+ EVENT_IVS_FEATURE_ABSTRACT(0x00000276, "特征提取事件"),
+ /**
+ * 智能补货事件
+ */
+ EVENT_IVS_INTELLI_SHELF(0x00000277, "智能补货事件"),
+ /**
+ * 全景抓拍事件
+ */
+ EVENT_IVS_PANORAMA_SHOT(0x00000278, "全景抓拍事件"),
+ /**
+ * 智能视频移动侦测事件
+ */
+ EVENT_ALARM_SMARTMOTION_HUMAN(0x00000279, "智能视频移动侦测事件"),
+ /**
+ * 智能视频移动侦测事件
+ */
+ EVENT_ALARM_SMARTMOTION_VEHICLE(0x0000027A, "智能视频移动侦测事件"),
+ /**
+ * 车辆驶入驶出状态事件
+ */
+ EVENT_IVS_CAR_DRIVING_IN_OUT(0x0000027B, "车辆驶入驶出状态事件"),
+ /**
+ * 停车位状态事件
+ */
+ EVENT_IVS_PARKINGSPACE_STATUS(0x0000027C, "停车位状态事件"),
+ /**
+ * 暴力抛物检测
+ */
+ EVENT_IVS_VIOLENT_THROW_DETECTION(0x0000027D, "暴力抛物检测"),
+ /**
+ * 矿车超挂报警事件
+ */
+ EVENT_IVS_TRAMCARSECTIONS_DETECTION(0x0000027E, "矿车超挂报警事件"),
+ /**
+ * 报警盒通道的触发报警事件,
+ */
+ EVENT_IVS_ALARM_BOX_ALARM(0x0000027F, "报警盒通道的触发报警事件,"),
+ /**
+ * 人脸比对事件,
+ */
+ EVENT_IVS_FACE_COMPARISION(0x00000280, "人脸比对事件,"),
+ /**
+ * 人像检测事件
+ */
+ EVENT_IVS_FACEBODY_DETECT(0x00000281, "人像检测事件"),
+ /**
+ * 人像识别事件
+ */
+ EVENT_IVS_FACEBODY_ANALYSE(0x00000282, "人像识别事件"),
+ /**
+ * 加油站车辆检测事件
+ */
+ EVENT_IVS_GASSTATION_VEHICLE_DETECT(0x00000283, "加油站车辆检测事件"),
+ /**
+ * 道路场景车辆拥堵报警事件
+ */
+ EVENT_IVS_CONGESTION_DETECTION(0x00000284, "道路场景车辆拥堵报警事件"),
+ /**
+ * 停车场场景下停车车辆上限报警
+ */
+ EVENT_IVS_VEHICLELIMIT_DETECTION(0x00000285, "停车场场景下停车车辆上限报警"),
+ /**
+ * 动物检测事件,
+ */
+ EVENT_IVS_ANIMAL_DETECTION(0x00000286, "动物检测事件,"),
+ /**
+ * 橱窗张贴事件
+ */
+ EVENT_IVS_SHOP_WINDOW_POST(0x00000287, "橱窗张贴事件"),
+ /**
+ * 店招异常事件
+ */
+ EVENT_IVS_SHOP_SIGN_ABNORMAL(0x00000288, "店招异常事件"),
+ /**
+ * 智慧养殖检测事件
+ */
+ EVENT_IVS_BREED_DETECTION(0x00000289, "智慧养殖检测事件"),
+ /**
+ * 机场智能保障车辆检测事件
+ */
+ EVENT_IVS_AIRPORT_VEHICLE_DETECT(0x0000028A, "机场智能保障车辆检测事件"),
+ /**
+ * 智慧养殖猪体温检测
+ */
+ EVENT_IVS_PIG_TEMPERATURE_DETECT(0x0000028B, "智慧养殖猪体温检测"),
+ /**
+ * 人车共存事件
+ */
+ EVENT_IVS_MAN_CAR_COEXISTANCE(0x0000028C, "人车共存事件"),
+ /**
+ * 高空抛物检测
+ */
+ EVENT_IVS_HIGH_TOSS_DETECT(0x0000028D, "高空抛物检测"),
+ /**
+ * 电力检测手套检测事件
+ */
+ EVENT_IVS_ELECTRIC_GLOVE_DETECT(0x0000028E, "电力检测手套检测事件"),
+ /**
+ * 电力检测梯子检测事件
+ */
+ EVENT_IVS_ELECTRIC_LADDER_DETECT(0x0000028F, "电力检测梯子检测事件"),
+ /**
+ * 电力检测布幔检测事件
+ */
+ EVENT_IVS_ELECTRIC_CURTAIN_DETECT(0x00000290, "电力检测布幔检测事件"),
+ /**
+ * 电力检测围栏检测事件
+ */
+ EVENT_IVS_ELECTRIC_FENCE_DETECT(0x00000291, "电力检测围栏检测事件"),
+ /**
+ * 电力检测标识牌检测事件
+ */
+ EVENT_IVS_ELECTRIC_SIGNBOARD_DETECT(0x00000292, "电力检测标识牌检测事件"),
+ /**
+ * 电力检测安全带检测事件
+ */
+ EVENT_IVS_ELECTRIC_BELT_DETECT(0x00000293, "电力检测安全带检测事件"),
+ /**
+ * 雷达警戒线/绊线检测
+ */
+ EVENT_IVS_RADAR_LINE_DETECTION(0x00000294, "雷达警戒线/绊线检测"),
+ /**
+ * 雷达警戒区检测事件
+ */
+ EVENT_IVS_RADAR_REGION_DETECTION(0x00000295, "雷达警戒区检测事件"),
+ /**
+ * 异常音事件
+ */
+ EVENT_IVS_AUDIO_INTENSITY(0x00000296, "异常音事件"),
+ /**
+ * 室外停车位状态检测
+ */
+ EVENT_IVS_PARKING_LOT_STATUS_DETECTION(0x00000297, "室外停车位状态检测"),
+ /**
+ * 只用于规则配置
+ */
+ EVENT_IVS_VEHICLE_COMPARE(0x00000298, "只用于规则配置"),
+ /**
+ * 渣土车未遮盖载货检测事件
+ */
+ EVENT_IVS_DREGS_UNCOVERED(0x00000299, "渣土车未遮盖载货检测事件"),
+ /**
+ * 走动检测事件
+ */
+ EVENT_IVS_WALK_DETECTION(0x0000029A, "走动检测事件"),
+ /**
+ * 背对检测事件
+ */
+ EVENT_IVS_BACK_TO_DETECTION(0x0000029B, "背对检测事件"),
+ /**
+ * 板书检测事件
+ */
+ EVENT_IVS_WRITE_ON_THE_BOARD_DETECTION(0x0000029C, "板书检测事件"),
+ /**
+ * 智慧厨房穿着检测事件
+ */
+ EVENT_IVS_SMART_KITCHEN_CLOTHES_DETECTION(0x0000029D, "智慧厨房穿着检测事件"),
+ /**
+ * 睡觉检测事件
+ */
+ EVENT_IVS_SLEEP_DETECT(0x0000029E, "睡觉检测事件"),
+ /**
+ * 随意走动检测事件
+ */
+ EVENT_IVS_WALK_AROUND_DETECT(0x0000029F, "随意走动检测事件"),
+ /**
+ * 玩手机事件
+ */
+ EVENT_IVS_PLAY_MOBILEPHONE(0x00000300, "玩手机事件"),
+ /**
+ * 智慧金融违规物品检测事件
+ */
+ EVENT_IVS_FINANCE_CONTRABAND_DETECT(0x00000301, "智慧金融违规物品检测事件"),
+ /**
+ * 智慧金融现金交易检测事件
+ */
+ EVENT_IVS_FINANCE_CASH_TRANSACTION(0x00000302, "智慧金融现金交易检测事件"),
+ /**
+ * 人体温智能检测事件
+ */
+ EVENT_IVS_ANATOMY_TEMP_DETECT(0x00000303, "人体温智能检测事件"),
+ /**
+ * 活跃度统计规则
+ */
+ EVENT_IVS_ACTIVITY_ANALYSE(0x00000304, "活跃度统计规则"),
+ /**
+ * 门状态事件
+ */
+ EVENT_IVS_DOOR_STATUS(0x00000305, "门状态事件"),
+ /**
+ * Dhop自定义事件
+ */
+ EVENT_IVS_DHOP_CUSTOM(0x00000306, "Dhop自定义事件"),
+ /**
+ * Dhop自定义事件
+ */
+ EVENT_IVS_DHOP_CUSTOM_ONCE(0x00000307, "Dhop自定义事件"),
+ /**
+ * 起雾检测事件
+ */
+ EVENT_IVS_FOG_DETECTION(0x00000308, "起雾检测事件"),
+ /**
+ * 飙车事件
+ */
+ EVENT_IVS_TRAFFIC_VEHICLE_BC(0x00000309, "飙车事件"),
+ /**
+ * 机动车超载
+ */
+ EVENT_IVS_TRAFFIC_MOTOR_OVERLOAD(0x0000030A, "机动车超载"),
+ /**
+ * 车牌污损
+ */
+ EVENT_IVS_TRAFFIC_PLATE_OCCLUSION(0x0000030B, "车牌污损"),
+ /**
+ * 非机动车进入电梯
+ */
+ EVENT_IVS_NONMOTOR_ENTRYING(0x0000030C, "非机动车进入电梯"),
+ /**
+ * 水位监测事件,
+ */
+ EVENT_IVS_WATER_STAGE_MONITOR(0x0000030D, "水位监测事件,"),
+ /**
+ * 道路安全预警
+ */
+ EVENT_IVS_TRAFFIC_ROAD_ALERT(0x0000030E, "道路安全预警"),
+ /**
+ * 违章建筑检测事件
+ */
+ EVENT_IVS_BREAK_RULE_BUILDING_DETECTION(0x0000030F, "违章建筑检测事件"),
+ /**
+ * 非机动车闯红灯
+ */
+ EVENT_IVS_TRAFFIC_NONMOTOR_RUN_REDLIGHT(0x00000310, "非机动车闯红灯"),
+ /**
+ * 占用应急车道事件
+ */
+ EVENT_IVS_TRAFFIC_VEHICLE_IN_EMERGENCY_LANE(0x00000311, "占用应急车道事件"),
+ /**
+ * 婴儿车检测事件
+ */
+ EVENT_IVS_PRAM_DETECTION(0x00000312, "婴儿车检测事件"),
+ /**
+ * 立体行为婴儿车检测事件
+ */
+ EVENT_IVS_STEREO_PRAM_DETECTION(0x00000313, "立体行为婴儿车检测事件"),
+ /**
+ * 大件行李箱检测事件
+ */
+ EVENT_IVS_BIG_BAGGAGE_DETECTION(0x00000314, "大件行李箱检测事件"),
+ /**
+ * 立体行为大件行李箱检测事件
+ */
+ EVENT_IVS_STEREO_BIG_BAGGAGE_DETECTION(0x00000315, "立体行为大件行李箱检测事件"),
+ /**
+ * 逃票检测事件
+ */
+ EVENT_IVS_TICKET_EVADE_DETECTION(0x00000316, "逃票检测事件"),
+ /**
+ * 立体行为逃票检测事件
+ */
+ EVENT_IVS_STEREO_TICKET_EVADE_DETECTION(0x00000317, "立体行为逃票检测事件"),
+ /**
+ * 输电线异物检测
+ */
+ EVENT_IVS_POWERLINE_FOREIGN_DETECITON(0x00000318, "输电线异物检测"),
+ /**
+ * 压导流线
+ */
+ EVENT_IVS_TRAFFIC_OVER_GUIDE_LINE(0x00000319, "压导流线"),
+ /**
+ * 交通卡口测量
+ */
+ EVENT_IVS_TRAFFIC_CAR_MEASUREMENT(0x00000320, "交通卡口测量"),
+ /**
+ * 不安规定使用转向灯事件
+ */
+ EVENT_IVS_TRAFFIC_WRONG_TURN_LIGHT(0x00000321, "不安规定使用转向灯事件"),
+ /**
+ * 交通事故事件,{@link DEV_EVENT_TRAFFIC_REAREND_ACCIDENT_INFO}
+ */
+ EVENT_IVS_TRAFFIC_REAREND_ACCIDENT(0x00000322, "交通事故事件"),
+ /**
+ * 对讲动作事件
+ */
+ EVENT_IVS_DO_TALK_ACTION(0x00000323, "对讲动作事件"),
+ /**
+ * 消防占道检测事件
+ */
+ EVENT_IVS_FIRE_LANE_DETECTION(0x00000324, "消防占道检测事件"),
+ /**
+ * 全景异常停车事件
+ */
+ EVENT_IVS_PARKING_DETECTION_FOR_PRMA(0x00000325, "全景异常停车事件"),
+ /**
+ * 全景交通拥堵事件
+ */
+ EVENT_IVS_TRAFFIC_JAM_FOR_PRMA(0x00000326, "全景交通拥堵事件"),
+ /**
+ * 全景交通事故事件
+ */
+ EVENT_IVS_TRAFFIC_ACCIDENT_FOR_PRMA(0x00000327, "全景交通事故事件"),
+ /**
+ * 非机动车逆行事件
+ */
+ EVENT_IVS_TRAFFIC_NON_MOTOR_RETROGRADE(0x00000328, "非机动车逆行事件"),
+ /**
+ * 非机动车越线停车事件
+ */
+ EVENT_IVS_TRAFFIC_NON_MOTOR_OVER_STOP_LINE(0x00000329, "非机动车越线停车事件"),
+ /**
+ * 车辆驶入事件
+ */
+ EVENT_IVS_CAR_DRIVING_IN(0x00000330, "车辆驶入事件"),
+ /**
+ * 车辆驶出事件
+ */
+ EVENT_IVS_CAR_DRIVING_OUT(0x00000331, "车辆驶出事件"),
+ /**
+ * 人像检测
+ */
+ EVENT_IVS_PORTRAIT_DETECTION(0x00000332, "人像检测"),
+ /**
+ * 特殊车辆检测
+ */
+ EVENT_IVS_TRAFFIC_SPECIAL_VEHICLE_DETECT(0x00000333, "特殊车辆检测"),
+ /**
+ * 未开照明灯事件
+ */
+ EVENT_IVS_TRAFFIC_HEAD_LAMP_OFF(0x00000334, "未开照明灯事件"),
+ /**
+ * 交通非机动车事件检测,{@link DEV_EVENT_TRAFFIC_NONMOTOR_INFO}
+ */
+ EVENT_IVS_TRAFFIC_NONMOTOR(0x00000335, "交通非机动车事件检测,"),
+ /**
+ * 交通违章上下客事件检测
+ */
+ EVENT_IVS_TRAFFIC_BOARD(0x00000336, "交通违章上下客事件检测"),
+ /**
+ * 交通能见度事件检测,{@link DEV_EVENT_TRAFFIC_VISIBILITY_INFO}
+ */
+ EVENT_IVS_TRAFFIC_VISIBILITY(0x00000337, "交通能见度事件检测"),
+ /**
+ * 交通车辆清洁度检测事件检测
+ */
+ EVENT_IVS_TRAFFIC_VEHICLE_CLEANLINESS(0x00000338, "交通车辆清洁度检测事件检测"),
+ /**
+ * 全景交通车流
+ */
+ EVENT_IVS_TRAFFICFLOW_FOR_PRMA(0x00000339, "全景交通车流"),
+ /**
+ * 工程车未清洗
+ */
+ EVENT_IVS_TRUCKNOTCLEAN_FOR_PRMA(0x0000033A, "工程车未清洗"),
+ /**
+ * 异物占道事件
+ */
+ EVENT_IVS_ROADOCCUPATION_BY_FOREIGNOBJECT(0x0000033B, "异物占道事件"),
+ /**
+ * 车流量超过上限
+ */
+ EVENT_IVS_TRAFFICFLOW_OVER(0x0000033C, "车流量超过上限"),
+ /**
+ * 违规物品检测事件
+ */
+ EVENT_IVS_GOODS_DETECTION(0x0000033D, "违规物品检测事件"),
+ /**
+ * 传送带阻塞报警事件
+ */
+ EVENT_IVS_CONVEYORBLOCK_DETECTION(0x0000033E, "传送带阻塞报警事件"),
+ /**
+ * 全物体类型检测事件
+ */
+ EVENT_IVS_ANYTHING_DETECT(0x0000033F, "全物体类型检测事件"),
+ /**
+ * 目标异常事件
+ */
+ EVENT_IVS_OBJECT_ABNORMAL(0x00000340, "目标异常事件"),
+ /**
+ * 辅助驾驶
+ */
+ EVENT_IVS_DRIVE_ASSISTANT(0x00000341, "辅助驾驶"),
+ /**
+ * 驾驶行为分析
+ */
+ EVENT_IVS_DRIVE_ACTION_ANAYLSE(0x00000342, "驾驶行为分析"),
+ /**
+ * 驾驶行为分析
+ */
+ EVENT_IVS_DRIVE_HANDSOFF_STEERING_WHEEL(0x00000343, "驾驶行为分析"),
+ /**
+ * 驾驶行为分析
+ */
+ EVENT_IVS_DRIVE_BLIND_SPOT(0x00000344, "驾驶行为分析"),
+ /**
+ * 物品检测
+ */
+ EVENT_IVS_ARTICLE_DETECTION(0x00000345, "物品检测"),
+ /**
+ * 路侧停车位手动抓图
+ */
+ EVENT_IVS_TRAFFIC_PARKINGSPACE_MANUALSNAP(0x00000346, "路侧停车位手动抓图"),
+ /**
+ * 沿街晾晒事件
+ */
+ EVENT_IVS_STREET_SUNCURE(0x00000347, "沿街晾晒事件"),
+ /**
+ * 户外广告事件
+ */
+ EVENT_IVS_OUTDOOR_ADVERTISEMENT(0x00000348, "户外广告事件"),
+ /**
+ * 乱堆物料检测事件
+ */
+ EVENT_IVS_HUDDLE_MATERIAL(0x00000349, "乱堆物料检测事件"),
+ /**
+ * 进入消防通道检测
+ */
+ EVENT_IVS_FIRE_LINE_DETECTION(0x0000034A, "进入消防通道检测"),
+ /**
+ * 违法占用公交车道
+ */
+ EVENT_IVS_OCCUPY_BUS_LANE(0x0000034B, "违法占用公交车道"),
+ /**
+ * 求救检测事件
+ */
+ EVENT_IVS_DISTRESS_DETECTION(0x0000034C, "求救检测事件"),
+ /**
+ * 交通副驾驶未系安全带事件
+ */
+ EVENT_IVS_TRAFFIC_ASSISTANT_WITHOUT_SAFEBELT(0x0000034D, "交通副驾驶未系安全带事件"),
+ /**
+ * 通用姿态行为事件
+ */
+ EVENT_IVS_GENEAL_ATTITUDE(0x0000038C, "通用姿态行为事件"),
+ /**
+ * 行为自定义行为计数事件
+ */
+ EVENT_IVS_ACTION_COUNT(0x0000046E, "行为自定义行为计数事件"),
+ /**
+ * 读写组,原型为"ReadWrite*","ReadWrite*",代表读写组,
+ */
+ STOR_POINT_READ_WRITE(0x00001001, "读写组"),
+ /**
+ * 只读组
+ */
+ STOR_POINT_READ_ONLY(0x00001002, "只读组"),
+ /**
+ * 冗余组,和"ReadWirte"组一个冗余副本
+ */
+ STOR_POINT_REDUNDANT(0x00001003, "冗余组"),
+ /**
+ * 备份组,数据写满后停止,不会循环覆盖
+ */
+ STOR_POINT_BACKUP(0x00001004, "备份组,数据写满后停止,不会循环覆盖"),
+ /**
+ * 历史抽帧组,实时录像在指定时间后,抽帧并写入该组
+ */
+ STOR_POINT_DRAW_FRAME(0x00001005, "历史抽帧组,实时录像在指定时间后,抽帧并写入该组"),
+ /**
+ * 远程网络存储组
+ */
+ STOR_POINT_NAS_FTP(0x00001006, "远程网络存储组"),
+ /**
+ * 远程网络存储组
+ */
+ STOR_POINT_NAS_NFS(0x00001007, "远程网络存储组"),
+ /**
+ * 远程网络存储组
+ */
+ STOR_POINT_NAS_SMB(0x00001008, "远程网络存储组"),
+ /**
+ * 远程网络存储组
+ */
+ STOR_POINT_NAS_ISCSI(0x00001009, "远程网络存储组"),
+ /**
+ * 远程网络存储组
+ */
+ STOR_POINT_NAS_CLOUD(0x0000100A, "远程网络存储组");
+
+ private int type;
+ private String description;
+
+ private EM_EVENT_TYPE(int type, String description) {
+ this.type = type;
+ this.description = description;
+ }
+
+ public static EM_EVENT_TYPE getEventType(int type) {
+ for (EM_EVENT_TYPE event : EM_EVENT_TYPE.values()) {
+ if (type == event.getType()) {
+ return event;
+ }
+ }
+ return null;
+ }
+
+ public int getType() {
+ return type;
+ }
+
+ public void setType(int type) {
+ this.type = type;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_TYPE_DESCEIBEINFO.java b/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_TYPE_DESCEIBEINFO.java
new file mode 100644
index 0000000..e277a3d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_TYPE_DESCEIBEINFO.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 事件类型描述
+ * @date 2022/08/18 10:00:46
+ */
+public enum EM_EVENT_TYPE_DESCEIBEINFO {
+ /**
+ * 正常抓图事件
+ */
+ EM_EVENT_NORMAL(0, "正常抓图事件"),
+ /**
+ * 邮件联动抓图事件
+ */
+ EM_EVENT_EMAIL(1, "邮件联动抓图事件");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_EVENT_TYPE_DESCEIBEINFO(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_EVENT_TYPE_DESCEIBEINFO enumType : EM_EVENT_TYPE_DESCEIBEINFO.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_EVENT_TYPE_DESCEIBEINFO enumType : EM_EVENT_TYPE_DESCEIBEINFO.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_WORKCLOTHES_RULE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_WORKCLOTHES_RULE_TYPE.java
new file mode 100644
index 0000000..c939245
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_EVENT_WORKCLOTHES_RULE_TYPE.java
@@ -0,0 +1,38 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 工装检测报警规则类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 19:21
+ */
+public class EM_EVENT_WORKCLOTHES_RULE_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_EVENT_WORKCLOTHES_RULE_UNKNWON = 0;
+ /**
+ * 安全帽
+ */
+ public static final int EM_EVENT_WORKCLOTHES_RULE_HELMET = 1;
+ /**
+ * 工作服
+ */
+ public static final int EM_EVENT_WORKCLOTHES_RULE_CLOTHES = 2;
+ /**
+ * 工作裤
+ */
+ public static final int EM_EVENT_WORKCLOTHES_RULE_PANTS = 3;
+ /**
+ * 防护服
+ */
+ public static final int EM_EVENT_WORKCLOTHES_RULE_PROTECTIVESUIT = 4;
+ /**
+ * 鞋套
+ */
+ public static final int EM_EVENT_WORKCLOTHES_RULE_SHOESCOVER = 5;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_EXPOWER_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_EXPOWER_STATE.java
new file mode 100644
index 0000000..cade2f9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_EXPOWER_STATE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 外接电源状态
+* @date 2022/08/31 14:44:16
+*/
+public enum EM_EXPOWER_STATE {
+/**
+未连接
+*/
+ EM_EXPOWER_DISCONNECT(0, "未连接"),
+/**
+连接
+*/
+ EM_EXPOWER_CONNECT(1, "连接"),
+/**
+未知
+*/
+ EM_EXPOWER_UNKNOWN(2, "未知");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_EXPOWER_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_EXPOWER_STATE enumType : EM_EXPOWER_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_EXPOWER_STATE enumType : EM_EXPOWER_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_EXPOWER_STATE getEnum(int value) {
+ for (EM_EXPOWER_STATE e : EM_EXPOWER_STATE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_EXPOWER_STATE.EM_EXPOWER_DISCONNECT;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_EXTERNAL_WIFI_PRIORITY.java b/src/main/java/com/netsdk/lib/enumeration/EM_EXTERNAL_WIFI_PRIORITY.java
new file mode 100644
index 0000000..7d426c4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_EXTERNAL_WIFI_PRIORITY.java
@@ -0,0 +1,69 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 外部wifi优先级
+* @date 2022/08/31 14:44:17
+*/
+public enum EM_EXTERNAL_WIFI_PRIORITY {
+/**
+未知
+*/
+ EM_EXTERNAL_WIFI_UNKNOWN(0, "未知"),
+/**
+首选外部wifi
+*/
+ EM_EXTERNAL_WIFI_FIRST(1, "首选外部wifi"),
+/**
+备选外部wifi
+*/
+ EM_EXTERNAL_WIFI_ALTERNATIVE(2, "备选外部wifi"),
+/**
+仅使用外部wifi
+*/
+ EM_EXTERNAL_WIFI_USEONLY(3, "仅使用外部wifi");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_EXTERNAL_WIFI_PRIORITY(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_EXTERNAL_WIFI_PRIORITY enumType : EM_EXTERNAL_WIFI_PRIORITY.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_EXTERNAL_WIFI_PRIORITY enumType : EM_EXTERNAL_WIFI_PRIORITY.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_EXTERNAL_WIFI_PRIORITY getEnum(int value) {
+ for (EM_EXTERNAL_WIFI_PRIORITY e : EM_EXTERNAL_WIFI_PRIORITY.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_EXTERNAL_WIFI_PRIORITY.EM_EXTERNAL_WIFI_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_EYE_STATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_EYE_STATE_TYPE.java
new file mode 100644
index 0000000..ce2bef6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_EYE_STATE_TYPE.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 眼睛状态
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_EYE_STATE_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_EYE_STATE_UNKNOWN = 0;
+ /**
+ * 未识别
+ */
+ public static final int EM_EYE_STATE_NODISTI = 1;
+ /**
+ * 闭眼
+ */
+ public static final int EM_EYE_STATE_CLOSE = 2;
+ /**
+ * 睁眼
+ */
+ public static final int EM_EYE_STATE_OPEN = 3;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_FACE_APPEND_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_FACE_APPEND_STATE.java
new file mode 100644
index 0000000..bc62f16
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_FACE_APPEND_STATE.java
@@ -0,0 +1,64 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 人脸导入的状态
+ * @date 2022/10/31 11:10:10
+ */
+public enum EM_FACE_APPEND_STATE {
+ /**
+ * 未知
+ */
+ EM_FACE_APPEND_STATE_UNKNOWN(0, "未知"),
+ /**
+ * 开始导入
+ */
+ EM_FACE_APPEND_STATE_START(1, "开始导入"),
+ /**
+ * 正在导入
+ */
+ EM_FACE_APPEND_STATE_RUN(2, "正在导入"),
+ /**
+ * 导入结束
+ */
+ EM_FACE_APPEND_STATE_STOP(3, "导入结束"),
+ /**
+ * 导入取消
+ */
+ EM_FACE_APPEND_STATE_CANCLE(4, "导入取消");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_FACE_APPEND_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_FACE_APPEND_STATE enumType : EM_FACE_APPEND_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_FACE_APPEND_STATE enumType : EM_FACE_APPEND_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_FACE_CHECK.java b/src/main/java/com/netsdk/lib/enumeration/EM_FACE_CHECK.java
new file mode 100644
index 0000000..2b23910
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_FACE_CHECK.java
@@ -0,0 +1,51 @@
+package com.netsdk.lib.enumeration;
+
+public enum EM_FACE_CHECK {
+ EM_FACE_CHECK_UNKNOWN(-1, "未知"),// 未知
+ EM_FACE_CHECK_NODATA(0, "该人员无人脸数据"),// 该人员无人脸数据
+ EM_FACE_CHECK_CONSISTENT(1, "刷卡和人脸人员一致"),// 刷卡和人脸人员一致
+ EM_FACE_CHECK_NOT_CONSISTENT(2, "刷卡和人脸人员不一致");// 刷卡和人脸人员不一致
+
+ private final int value;
+ private final String note;
+
+ EM_FACE_CHECK(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_FACE_CHECK enumType : EM_FACE_CHECK.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_FACE_CHECK enumType : EM_FACE_CHECK.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_EVENT_LEVEL getEnum(int value) {
+ for (EM_EVENT_LEVEL e : EM_EVENT_LEVEL.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_EVENT_LEVEL.EM_EVENT_LEVEL_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_FACE_RECOGNITION_SUPPORT_LIFT_CONTROL_TYPES.java b/src/main/java/com/netsdk/lib/enumeration/EM_FACE_RECOGNITION_SUPPORT_LIFT_CONTROL_TYPES.java
new file mode 100644
index 0000000..75daa40
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_FACE_RECOGNITION_SUPPORT_LIFT_CONTROL_TYPES.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 支持的电梯控制方式类型的集合
+*/
+public enum EM_FACE_RECOGNITION_SUPPORT_LIFT_CONTROL_TYPES
+{
+ /**
+ * 未知
+ */
+ EM_FACE_RECOGNITION_SUPPORT_LIFT_CONTROL_TYPES_UNKNOWN(0, "未知"),
+ /**
+ * 本地485协议梯控方式
+ */
+ EM_FACE_RECOGNITION_SUPPORT_LIFT_CONTROL_TYPES_LOCAL485(1, "本地485协议梯控方式"),
+ /**
+ * 网络协议梯控方式
+ */
+ EM_FACE_RECOGNITION_SUPPORT_LIFT_CONTROL_TYPES_NETWORK(2, "网络协议梯控方式");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_FACE_RECOGNITION_SUPPORT_LIFT_CONTROL_TYPES(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_FACE_RECOGNITION_SUPPORT_LIFT_CONTROL_TYPES enumType : EM_FACE_RECOGNITION_SUPPORT_LIFT_CONTROL_TYPES.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_FACE_RECOGNITION_SUPPORT_LIFT_CONTROL_TYPES enumType : EM_FACE_RECOGNITION_SUPPORT_LIFT_CONTROL_TYPES.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_FACE_TRAIT_ALIVE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_FACE_TRAIT_ALIVE_TYPE.java
new file mode 100644
index 0000000..954a1ea
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_FACE_TRAIT_ALIVE_TYPE.java
@@ -0,0 +1,8 @@
+package com.netsdk.lib.enumeration;
+
+public enum EM_FACE_TRAIT_ALIVE_TYPE {
+ EM_FACE_TRAIT_ALIVE_UNKNOWN, // 未知
+ EM_FACE_TRAIT_ALIVE_NON, // 非活体
+ EM_FACE_TRAIT_ALIVE; // 活体
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_FACE_TRAIT_EMOTION_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_FACE_TRAIT_EMOTION_TYPE.java
new file mode 100644
index 0000000..dea7f27
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_FACE_TRAIT_EMOTION_TYPE.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.enumeration;
+
+public enum EM_FACE_TRAIT_EMOTION_TYPE {
+ EM_FACE_TRAIT_EMOTION_UNKNOWN, // 未知
+ EM_FACE_TRAIT_EMOTION_UNRECOGNIZE, // 未识别
+ EM_FACE_TRAIT_EMOTION_ANGRY, // 生气
+ EM_FACE_TRAIT_EMOTION_SAD, // 悲伤
+ EM_FACE_TRAIT_EMOTION_DISGUST, // 厌恶
+ EM_FACE_TRAIT_EMOTION_FEAR, // 恐惧
+ EM_FACE_TRAIT_EMOTION_SURPRISE, // 诧异
+ EM_FACE_TRAIT_EMOTION_CALM, // 平静
+ EM_FACE_TRAIT_EMOTION_SMILE, // 微笑
+ EM_FACE_TRAIT_EMOTION_LAUGH, // 大笑
+ EM_FACE_TRAIT_EMOTION_HAPPY, // 高兴
+ EM_FACE_TRAIT_EMOTION_CONFUSED, // 困惑
+ EM_FACE_TRAIT_EMOTION_SCREAM; // 尖叫
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_FEATURE_ERROR_CODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_FEATURE_ERROR_CODE.java
new file mode 100644
index 0000000..9a440ed
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_FEATURE_ERROR_CODE.java
@@ -0,0 +1,158 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 260611
+ * @description 特征建模失败错误码
+ * @origin autoTool
+ * @date 2023/06/28 14:07:32
+ */
+public enum EM_FEATURE_ERROR_CODE {
+ /**
+ * 成功
+ */
+ EM_FEATURE_ERROR_SUCCESS(0, "成功"),
+ /**
+ * 未知
+ */
+ EM_FEATURE_ERROR_UNKNOWN(1, "未知"),
+ /**
+ * 图片格式问题
+ */
+ EM_FEATURE_ERROR_IMAGE_FORMAT_ERROR(2, "图片格式问题"),
+ /**
+ * 无目标或不够清晰
+ */
+ EM_FEATURE_ERROR_NOFACE_OR_NOTCLEAR(3, "无目标或不够清晰"),
+ /**
+ * 多个目标
+ */
+ EM_FEATURE_ERROR_MULT_FACES(4, "多个目标"),
+ /**
+ * 图片解码失败
+ */
+ EM_FEATURE_ERROR_IMAGH_DECODE_FAILED(5, "图片解码失败"),
+ /**
+ * 不推荐入库
+ */
+ EM_FEATURE_ERROR_NOT_SUGGEST_STORAGE(6, "不推荐入库"),
+ /**
+ * 数据库操作失败
+ */
+ EM_FEATURE_ERROR_DATABASE_OPERATE_FAILED(7, "数据库操作失败"),
+ /**
+ * 获取图片失败
+ */
+ EM_FEATURE_ERROR_GET_IMAGE_FAILED(8, "获取图片失败"),
+ /**
+ * 系统异常(如Licence失效、建模分析器未启动导致的失败)
+ */
+ EM_FEATURE_ERROR_SYSTEM_EXCEPTION(9, "系统异常(如Licence失效、建模分析器未启动导致的失败)"),
+ /**
+ * 目标宽度过小
+ */
+ EM_FEATURE_ERROR_UNDERSIZED_WIDTH(10, "目标宽度过小"),
+ /**
+ * 目标眼瞳间距过小
+ */
+ EM_FEATURE_ERROR_UNDERSIZED_INTERPUPILLARY_DISTANCE(11, "目标眼瞳间距过小"),
+ /**
+ * 目标脸对齐分数过低
+ */
+ EM_FEATURE_ERROR_FACE_ALIGNMENT_SCORE_LOW(12, "目标脸对齐分数过低"),
+ /**
+ * 目标俯仰角过大
+ */
+ EM_FEATURE_ERROR_OVERSIZED_FACE_PITCH_ANGLE(13, "目标俯仰角过大"),
+ /**
+ * 目标偏航角过大
+ */
+ EM_FEATURE_ERROR_OVERSIZED_FACE_YAW_ANGLE(14, "目标偏航角过大"),
+ /**
+ * 目标滚转角过大
+ */
+ EM_FEATURE_ERROR_OVERSIZED_FACE_ROLL_ANGLE(15, "目标滚转角过大"),
+ /**
+ * 目标质量分过低
+ */
+ EM_FEATURE_ERROR_FACE_QUALITY_LOW(16, "目标质量分过低"),
+ /**
+ * 目标清晰度过低
+ */
+ EM_FEATURE_ERROR_FACE_DEFINITION_LOW(17, "目标清晰度过低"),
+ /**
+ * 目标眼部遮挡
+ */
+ EM_FEATURE_ERROR_EYE_OCCLUSION(18, "目标眼部遮挡"),
+ /**
+ * 目标额头遮挡
+ */
+ EM_FEATURE_ERROR_FOREHEAD_OCCLUSION(19, "目标额头遮挡"),
+ /**
+ * 目标嘴巴遮挡
+ */
+ EM_FEATURE_ERROR_MOUTH_OCCLUSION(20, "目标嘴巴遮挡"),
+ /**
+ * 目标不完整
+ */
+ EM_FEATURE_ERROR_INCOMPLETE_FACE(21, "目标不完整"),
+ /**
+ * 目标光照过曝或者欠曝
+ */
+ EM_FEATURE_ERROR_ABNORMAL_FACE_EXPOSURE(22, "目标光照过曝或者欠曝"),
+ /**
+ * 目标饱和度过低
+ */
+ EM_FEATURE_ERROR_FACE_SATURATION_LOW(23, "目标饱和度过低"),
+ /**
+ * 目标区域在图像中占比过大
+ */
+ EM_FEATURE_ERROR_FACE_AREA_OVER_PROPORTION(24, "目标区域在图像中占比过大"),
+ /**
+ * 图像中未检出目标
+ */
+ EM_FEATURE_ERROR_FACE_DETECTION_FAILE(25, "图像中未检出目标");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_FEATURE_ERROR_CODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_FEATURE_ERROR_CODE enumType : EM_FEATURE_ERROR_CODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_FEATURE_ERROR_CODE enumType : EM_FEATURE_ERROR_CODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_FEATURE_ERROR_CODE getEnum(int value) {
+ for (EM_FEATURE_ERROR_CODE e : EM_FEATURE_ERROR_CODE.values()) {
+ if (e.getValue() == value) {
+ return e;
+ }
+ }
+ return EM_FEATURE_ERROR_CODE.EM_FEATURE_ERROR_SUCCESS;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_FEATURE_LIST_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_FEATURE_LIST_TYPE.java
new file mode 100644
index 0000000..bb7f574
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_FEATURE_LIST_TYPE.java
@@ -0,0 +1,54 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 睿厨着装检特征列表
+ * @date 2021/01/11
+ */
+public enum EM_FEATURE_LIST_TYPE {
+ // 未知
+ EM_FEATURE_LIST_UNKNOWN(0, "未知"),
+ // 是否戴口罩
+ EM_FEATURE_LIST_HAS_MASK(1, "是否戴口罩"),
+ // 是否戴厨师帽
+ EM_FEATURE_LIST_HAS_CHEF_HAT(2, "是否戴厨师帽"),
+ // 是否穿厨师服
+ EM_FEATURE_LIST_HAS_CHEF_CLOTHES(3, "是否穿厨师服"),
+ // 厨师服的颜色
+ EM_FEATURE_LIST_CHEF_CLOTHES_COLOR(4, "厨师服的颜色");
+
+ private int value;
+ private String note;
+
+ private EM_FEATURE_LIST_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_FEATURE_LIST_TYPE enumType : EM_FEATURE_LIST_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_FEATURE_LIST_TYPE enumType : EM_FEATURE_LIST_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_FEATURE_VERSION.java b/src/main/java/com/netsdk/lib/enumeration/EM_FEATURE_VERSION.java
new file mode 100644
index 0000000..32662cf
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_FEATURE_VERSION.java
@@ -0,0 +1,162 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 特征值版本类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_FEATURE_VERSION extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_FEATURE_VERSION_UNKNOWN = 0;
+ /**
+ * 人脸,大模型,1.01.001
+ */
+ public static final int EM_FEATURE_VERSION_FACE_LARGE_1_01_001 = 1;
+ /**
+ * 人脸,大模型,1.02.001
+ */
+ public static final int EM_FEATURE_VERSION_FACE_LARGE_1_02_001 = 2;
+ /**
+ * 人脸,大模型,1.03.001
+ */
+ public static final int EM_FEATURE_VERSION_FACE_LARGE_1_03_001 = 3;
+ /**
+ * 人脸,大模型,1.04.001
+ */
+ public static final int EM_FEATURE_VERSION_FACE_LARGE_1_04_001 = 4;
+ /**
+ * 人脸,中模型,1.01.002
+ */
+ public static final int EM_FEATURE_VERSION_FACE_MIDDLE_1_01_002 = 31;
+ /**
+ * 人脸,中模型,1.02.002
+ */
+ public static final int EM_FEATURE_VERSION_FACE_MIDDLE_1_02_002 = 32;
+ /**
+ * 人脸,中模型,1.03.002
+ */
+ public static final int EM_FEATURE_VERSION_FACE_MIDDLE_1_03_002 = 33;
+ /**
+ * 人脸,中模型,1.04.002
+ */
+ public static final int EM_FEATURE_VERSION_FACE_MIDDLE_1_04_002 = 34;
+ /**
+ * 人脸,中模型,1.09.002
+ */
+ public static final int EM_FEATURE_VERSION_FACE_MIDDLE_1_09_002 = 39;
+ /**
+ * 人脸,小模型,1.01.003
+ */
+ public static final int EM_FEATURE_VERSION_FACE_SMALL_1_01_003 = 61;
+ /**
+ * 人脸,小模型,1.02.003
+ */
+ public static final int EM_FEATURE_VERSION_FACE_SMALL_1_02_003 = 62;
+ /**
+ * 人和非机动车,全局无版本号
+ */
+ public static final int EM_FEATURE_VERSION_HUMAN_NONMOTOR = 91;
+ /**
+ * 人和非机动车,全局浮点,1.00.01
+ */
+ public static final int EM_FEATURE_VERSION_HUMAN_NONMOTOR_FLOAT_1_00_01 = 92;
+ /**
+ * 人和非机动车,全局哈希,1.00.01
+ */
+ public static final int EM_FEATURE_VERSION_HUMAN_NONMOTOR_HASH_1_00_01 = 93;
+ /**
+ * 人和非机动车,全局浮点,1.01.00
+ */
+ public static final int EM_FEATURE_VERSION_HUMAN_NONMOTOR_FLOAT_1_01_00 = 94;
+ /**
+ * 人和非机动车,全局哈希,1.01.00
+ */
+ public static final int EM_FEATURE_VERSION_HUMAN_NONMOTOR_HASH_1_01_00 = 95;
+ /**
+ * 人和非机动车,全局浮点,1.01.01
+ */
+ public static final int EM_FEATURE_VERSION_HUMAN_NONMOTOR_FLOAT_1_01_01 = 96;
+ /**
+ * 人和非机动车,全局哈希,1.01.01
+ */
+ public static final int EM_FEATURE_VERSION_HUMAN_NONMOTOR_HASH_1_01_01 = 97;
+ /**
+ * 机动车,全局无版本号
+ */
+ public static final int EM_FEATURE_VERSION_TRAFFIC = 121;
+ /**
+ * 机动车,全局浮点版本号0
+ */
+ public static final int EM_FEATURE_VERSION_TRAFFIC_FLOAT = 122;
+ /**
+ * 机动车,全局浮点版本号1.00.01
+ */
+ public static final int EM_FEATURE_VERSION_TRAFFIC_FLOAT_1_00_01 = 123;
+ /**
+ * 机动车,全局哈希版本号1.00.01
+ */
+ public static final int EM_FEATURE_VERSION_TRAFFIC_HASH_1_00_01 = 124;
+ /**
+ * 机动车,全局浮点版本号1.00.02
+ */
+ public static final int EM_FEATURE_VERSION_TRAFFIC_FLOAT_1_00_02 = 125;
+ /**
+ * 机动车,全局哈希版本号1.00.02
+ */
+ public static final int EM_FEATURE_VERSION_TRAFFIC_HASH_1_00_02 = 126;
+ /**
+ * 商汤,人脸,1.5.0
+ */
+ public static final int EM_FEATURE_VERSION_SHANGTANG_FACE_1_5_0 = 151;
+ /**
+ * 商汤,人脸,1.8.1
+ */
+ public static final int EM_FEATURE_VERSION_SHANGTANG_FACE_1_8_1 = 152;
+ /**
+ * 商汤,人脸,2.1.3
+ */
+ public static final int EM_FEATURE_VERSION_SHANGTANG_FACE_2_1_3 = 153;
+ /**
+ * 商汤,人脸,2.39.6
+ */
+ public static final int EM_FEATURE_VERSION_SHANGTANG_FACE_2_39_6 = 154;
+ /**
+ * 商汤,人脸,2.39.7
+ */
+ public static final int EM_FEATURE_VERSION_SHANGTANG_FACE_2_39_7 = 155;
+ /**
+ * 商汤,人脸,2.39.8
+ */
+ public static final int EM_FEATURE_VERSION_SHANGTANG_FACE_2_39_8 = 156;
+ /**
+ * 商汤,人脸,239
+ */
+ public static final int EM_FEATURE_VERSION_SHANGTANG_FACE_239 = 157;
+ /**
+ * 商汤,人脸,242
+ */
+ public static final int EM_FEATURE_VERSION_SHANGTANG_FACE_242 = 158;
+ /**
+ * 商汤,人脸,244
+ */
+ public static final int EM_FEATURE_VERSION_SHANGTANG_FACE_244 = 159;
+ /**
+ * 商汤,人脸,245
+ */
+ public static final int EM_FEATURE_VERSION_SHANGTANG_FACE_245 = 160;
+ /**
+ * 深瞐,人脸/机动车/非机动车,2.4.2
+ */
+ public static final int EM_FEATURE_VERSION_SHENMO_HUMAN_TRAFFIC_NON_2_4_2 = 181;
+ /**
+ * 深瞐,人脸/机动车/非机动车,2.5.7
+ */
+ public static final int EM_FEATURE_VERSION_SHENMO_HUMAN_TRAFFIC_NON_2_5_7 = 182;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_FILE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_FILE_TYPE.java
new file mode 100644
index 0000000..733eb06
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_FILE_TYPE.java
@@ -0,0 +1,50 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 文件类型
+ * @date 2021/02/22
+ */
+public enum EM_FILE_TYPE {
+ // 未知
+ EM_FILE_TYPE_UNKNOWN(0, "未知"),
+ // jpg 图片
+ EM_FILE_TYPE_JPG(1, "jpg图片"),
+ // dav 文件
+ EM_FILE_TYPE_DAV(2, "dav文件");
+
+ private int value;
+ private String note;
+
+ private EM_FILE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_FILE_TYPE enumType : EM_FILE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_FILE_TYPE enumType : EM_FILE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_FILE_UPDATE_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_FILE_UPDATE_STATE.java
new file mode 100644
index 0000000..e9e84e3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_FILE_UPDATE_STATE.java
@@ -0,0 +1,69 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 文件上传状态
+* @date 2022/09/22 19:11:10
+*/
+public enum EM_FILE_UPDATE_STATE {
+/**
+未知
+*/
+ EM_FILE_UPDATE_STATE_UNKNOWN(0, "未知"),
+/**
+正在上传
+*/
+ EM_FILE_UPDATE_STATE_UPLOADING(1, "正在上传"),
+/**
+上传中断
+*/
+ EM_FILE_UPDATE_STATE_PAUSED(2, "上传中断"),
+/**
+上传成功
+*/
+ EM_FILE_UPDATE_STATE_SUCCEEDED(3, "上传成功");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_FILE_UPDATE_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_FILE_UPDATE_STATE enumType : EM_FILE_UPDATE_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_FILE_UPDATE_STATE enumType : EM_FILE_UPDATE_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_FILE_UPDATE_STATE getEnum(int value) {
+ for (EM_FILE_UPDATE_STATE e : EM_FILE_UPDATE_STATE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_FILE_UPDATE_STATE.EM_FILE_UPDATE_STATE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_FILTER_IMAGE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_FILTER_IMAGE_TYPE.java
new file mode 100644
index 0000000..670bb19
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_FILTER_IMAGE_TYPE.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 返回的图片类型
+ * @date 2021/2/20
+ */
+public enum EM_FILTER_IMAGE_TYPE {
+ /** 未知 */
+ EM_FILTER_IMAGE_UNKNOWN,
+ /** 上报目标抠图 */
+ EM_FILTER_IMAGE_OBJECT,
+ /** 上报场景大图 */
+ EM_FILTER_IMAGE_SCENE;
+
+ public static EM_FILTER_IMAGE_TYPE getFilterImageType(int type) {
+ for (EM_FILTER_IMAGE_TYPE imageType : EM_FILTER_IMAGE_TYPE.values()) {
+ if (imageType.ordinal() == type) {
+ return imageType;
+ }
+ }
+ return EM_FILTER_IMAGE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_FINDFILE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_FINDFILE_TYPE.java
new file mode 100644
index 0000000..35712ff
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_FINDFILE_TYPE.java
@@ -0,0 +1,75 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 查询文件的类型
+*/
+public enum EM_FINDFILE_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_FINDFILE_UNKNOWN(0, "未知"),
+ /**
+ * 泛指图片
+ */
+ EM_FINDFILE_JPG(1, "泛指图片"),
+ /**
+ * 泛指视频
+ */
+ EM_FINDFILE_DAV(2, "泛指视频"),
+ /**
+ * log信息
+ */
+ EM_FINDFILE_LOG(3, "log信息"),
+ /**
+ * gps信息
+ */
+ EM_FINDFILE_GPS(4, "gps信息"),
+ /**
+ * jpk信息,图片打包文件,指文件中存有多张图片的文件,该类型和jpg类型互斥,同一个查询条件里面不能既有jpg又有jpk
+ */
+ EM_FINDFILE_JPK(5, "jpk信息,图片打包文件,指文件中存有多张图片的文件,该类型和jpg类型互斥,同一个查询条件里面不能既有jpg又有jpk"),
+ /**
+ * MP4信息,(因与二代协议不兼容删除mp4,用dav表示所有视频)无Types字段,且有DB字段,默认查询"jpg"类型
+ */
+ EM_FINDFILE_MP4(6, "MP4信息,(因与二代协议不兼容删除mp4,用dav表示所有视频)无Types字段,且有DB字段,默认查询\"jpg\"类型"),
+ /**
+ * AUDIO信息,泛指音频
+ */
+ EM_FINDFILE_AUDIO(7, "AUDIO信息,泛指音频");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_FINDFILE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_FINDFILE_TYPE enumType : EM_FINDFILE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_FINDFILE_TYPE enumType : EM_FINDFILE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_FIREPROOF_CLOTHES_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_FIREPROOF_CLOTHES_STATE.java
new file mode 100644
index 0000000..d875479
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_FIREPROOF_CLOTHES_STATE.java
@@ -0,0 +1,69 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 251823
+* @description 是否穿着防火衣
+* @date 2022/11/01 19:47:04
+*/
+public enum EM_FIREPROOF_CLOTHES_STATE {
+/**
+未知
+*/
+ EM_FIREPROOF_CLOTHES_STATE_UNKNOWN(0, "未知"),
+/**
+没有穿着防火衣
+*/
+ EM_FIREPROOF_CLOTHES_STATE_NO(1, "没有穿着防火衣"),
+/**
+有穿着防火衣
+*/
+ EM_FIREPROOF_CLOTHES_STATE_YES(2, "有穿着防火衣"),
+/**
+不存在指定颜色的防火衣
+*/
+ EM_FIREPROOF_CLOTHES_STATE_NOEXIT(3, "不存在指定颜色的防火衣");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_FIREPROOF_CLOTHES_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_FIREPROOF_CLOTHES_STATE enumType : EM_FIREPROOF_CLOTHES_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_FIREPROOF_CLOTHES_STATE enumType : EM_FIREPROOF_CLOTHES_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_FIREPROOF_CLOTHES_STATE getEnum(int value) {
+ for (EM_FIREPROOF_CLOTHES_STATE e : EM_FIREPROOF_CLOTHES_STATE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_FIREPROOF_CLOTHES_STATE.EM_FIREPROOF_CLOTHES_STATE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_FIRE_EXTINGUISHER_CATEGORY_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_FIRE_EXTINGUISHER_CATEGORY_TYPE.java
new file mode 100644
index 0000000..bf1cc67
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_FIRE_EXTINGUISHER_CATEGORY_TYPE.java
@@ -0,0 +1,64 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 目标物体子类型
+ * @date 2021/12/27
+ */
+public enum EM_FIRE_EXTINGUISHER_CATEGORY_TYPE {
+ // 未知
+ EM_FIRE_EXTINGUISHER_CATEGORY_TYPE_UNKNOWN(0, "未知"),
+ // 普通类型灭火器,8kg左右
+ EM_FIRE_EXTINGUISHER_CATEGORY_TYPE_EXTINGUISHER_GENERAL(1, "普通类型灭火器,8kg左右"),
+ // 35kg推车式灭火器
+ EM_FIRE_EXTINGUISHER_CATEGORY_TYPE_EXTINGUISHER_HANDPUSH(2, "35kg推车式灭火器"),
+ // 普通标识牌
+ EM_FIRE_EXTINGUISHER_CATEGORY_TYPE_SIGNBOARD_GENERAL(3, "普通标识牌"),
+ // 静电标示牌
+ EM_FIRE_EXTINGUISHER_CATEGORY_TYPE_SIGNBOARD_STATIC_ELETRICITY(4, "静电标示牌"),
+ // 加油口盖标示牌
+ EM_FIRE_EXTINGUISHER_CATEGORY_TYPE_SIGNBOARD_OILCAP(5, "加油口盖标示牌"),
+ // 路锥
+ EM_FIRE_EXTINGUISHER_CATEGORY_TYPE_ROADCONE(6, "路锥"),
+ // 盖子
+ EM_FIRE_EXTINGUISHER_CATEGORY_TYPE_COVERPLATE(7, "盖子"),
+ // 加油口盖标示牌打开
+ EM_FIRE_EXTINGUISHER_CATEGORY_TYPE_OILCAP_OPEN(8, "加油口盖标示牌打开"),
+ // 加油口盖标示牌关闭
+ EM_FIRE_EXTINGUISHER_CATEGORY_TYPE_OILCAP_CLOSE(9, "加油口盖标示牌关闭");
+
+ private int value;
+ private String note;
+
+ private EM_FIRE_EXTINGUISHER_CATEGORY_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_FIRE_EXTINGUISHER_CATEGORY_TYPE enumType : EM_FIRE_EXTINGUISHER_CATEGORY_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_FIRE_EXTINGUISHER_CATEGORY_TYPE enumType : EM_FIRE_EXTINGUISHER_CATEGORY_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_FIRE_LANE_MOVE_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_FIRE_LANE_MOVE_STATE.java
new file mode 100644
index 0000000..4012ba4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_FIRE_LANE_MOVE_STATE.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 物体进入还是离开
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 19:49
+ */
+public class EM_FIRE_LANE_MOVE_STATE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_FIRE_LANE_MOVE_STATE_UNKNOWN = 0;
+ /**
+ * 进入
+ */
+ public static final int EM_FIRE_LANE_MOVE_STATE_ENTER = 1;
+ /**
+ * 离开
+ */
+ public static final int EM_FIRE_LANE_MOVE_STATE_LEAVE = 2;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_FIRE_LANE_OILCAP_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_FIRE_LANE_OILCAP_STATE.java
new file mode 100644
index 0000000..8c88565
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_FIRE_LANE_OILCAP_STATE.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 加油口盖标示牌状态
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 19:50
+ */
+public class EM_FIRE_LANE_OILCAP_STATE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_FIRE_LANE_OILCAP_STATE_UNKNOWN = 0;
+ /**
+ * 打开
+ */
+ public static final int EM_FIRE_LANE_OILCAP_STATE_OPEN = 1;
+ /**
+ * 关闭
+ */
+ public static final int EM_FIRE_LANE_OILCAP_STATE_CLOSE = 2;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_FLOATINGOBJECT_DETECTION_SENCE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_FLOATINGOBJECT_DETECTION_SENCE_TYPE.java
new file mode 100644
index 0000000..6817e2c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_FLOATINGOBJECT_DETECTION_SENCE_TYPE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 漂浮物检测场景
+* @date 2022/05/09 11:40:43
+*/
+public enum EM_FLOATINGOBJECT_DETECTION_SENCE_TYPE {
+/**
+未知
+*/
+ EM_FLOATINGOBJECT_DETECTION_SENCE_TYPE_UNKNOWN(0, "未知"),
+/**
+普通漂浮物检测
+*/
+ EM_FLOATINGOBJECT_DETECTION_SENCE_TYPE_NOMAL(1, "普通漂浮物检测"),
+/**
+泡沫检测
+*/
+ EM_FLOATINGOBJECT_DETECTION_SENCE_TYPE_BUBBLE(2, "泡沫检测");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_FLOATINGOBJECT_DETECTION_SENCE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_FLOATINGOBJECT_DETECTION_SENCE_TYPE enumType : EM_FLOATINGOBJECT_DETECTION_SENCE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_FLOATINGOBJECT_DETECTION_SENCE_TYPE enumType : EM_FLOATINGOBJECT_DETECTION_SENCE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_FLOATINGOBJECT_DETECTION_SENCE_TYPE getEnum(int value) {
+ for (EM_FLOATINGOBJECT_DETECTION_SENCE_TYPE e : EM_FLOATINGOBJECT_DETECTION_SENCE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_FLOATINGOBJECT_DETECTION_SENCE_TYPE.EM_FLOATINGOBJECT_DETECTION_SENCE_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_FOCUS_LIMIT_SELECT_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_FOCUS_LIMIT_SELECT_MODE.java
new file mode 100644
index 0000000..134dd19
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_FOCUS_LIMIT_SELECT_MODE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 聚焦极限对应枚举
+* @date 2022/11/01 11:16:54
+*/
+public enum EM_FOCUS_LIMIT_SELECT_MODE {
+/**
+ Manual 自动
+*/
+ EM_FOCUS_LIMIT_MODE_MANUAL(0, " Manual 自动"),
+/**
+ Auto 手动
+*/
+ EM_FOCUS_LIMIT_MODE_AUTO(1, " Auto 手动"),
+/**
+
+*/
+ EM_FOCUS_LIMIT_MODE_INVALI(2, "无效");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_FOCUS_LIMIT_SELECT_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_FOCUS_LIMIT_SELECT_MODE enumType : EM_FOCUS_LIMIT_SELECT_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_FOCUS_LIMIT_SELECT_MODE enumType : EM_FOCUS_LIMIT_SELECT_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_FOCUS_LIMIT_SELECT_MODE getEnum(int value) {
+ for (EM_FOCUS_LIMIT_SELECT_MODE e : EM_FOCUS_LIMIT_SELECT_MODE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_FOCUS_LIMIT_SELECT_MODE.EM_FOCUS_LIMIT_MODE_MANUAL;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_FOLLOW_CAR_ALARM_IMAGE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_FOLLOW_CAR_ALARM_IMAGE_TYPE.java
new file mode 100644
index 0000000..9471ef9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_FOLLOW_CAR_ALARM_IMAGE_TYPE.java
@@ -0,0 +1,50 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 跟随车辆报警图片类型
+ * @date 2021/01/13
+ */
+public enum EM_FOLLOW_CAR_ALARM_IMAGE_TYPE {
+ // 未知
+ EM_FOLLOW_CAR_ALARM_IMAGE_TYPE_UNKNOWN(-1, "未知"),
+ // 全景图
+ EM_FOLLOW_CAR_ALARM_IMAGE_TYPE_PANORAMA(0, "全景图"),
+ // 小图
+ EM_FOLLOW_CAR_ALARM_IMAGE_TYPE_SMALL_PICTURE(1, "小图");
+
+ private int value;
+ private String note;
+
+ private EM_FOLLOW_CAR_ALARM_IMAGE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_FOLLOW_CAR_ALARM_IMAGE_TYPE enumType : EM_FOLLOW_CAR_ALARM_IMAGE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_FOLLOW_CAR_ALARM_IMAGE_TYPE enumType : EM_FOLLOW_CAR_ALARM_IMAGE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_FORBID_PARKING_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/EM_FORBID_PARKING_STATUS.java
new file mode 100644
index 0000000..a527a3c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_FORBID_PARKING_STATUS.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 禁停状态
+ *
+ * @author 47040
+ * @since Created in 2020/11/18 14:53
+ */
+public enum EM_FORBID_PARKING_STATUS {
+ /**
+ * 未知
+ */
+ EM_FORBID_PARKING_STATUS_UNKNOWN(0, "未知"),
+ /**
+ * 未禁止
+ */
+ EM_FORBID_PARKING_STATUS_NOT_FORBID(1, "未禁止"),
+ /**
+ * 禁止
+ */
+ EM_FORBID_PARKING_STATUS_FORBID(2, "禁止");
+
+ private int value;
+ private String note;
+
+ EM_FORBID_PARKING_STATUS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_FORBID_PARKING_STATUS enumType : EM_FORBID_PARKING_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_FORBID_PARKING_STATUS enumType : EM_FORBID_PARKING_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_FORBID_PARKING_STATUS getEnum(int value) {
+ for (EM_FORBID_PARKING_STATUS e : EM_FORBID_PARKING_STATUS.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_FORBID_PARKING_STATUS.EM_FORBID_PARKING_STATUS_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_FREQUENCY_ALARM_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_FREQUENCY_ALARM_TYPE.java
new file mode 100644
index 0000000..37753fd
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_FREQUENCY_ALARM_TYPE.java
@@ -0,0 +1,23 @@
+package com.netsdk.lib.enumeration;
+/**
+ * @author 291189
+ * @version 1.0
+ * @description 报警类型
+ * @date 2021/7/21 11:18
+ */
+public enum EM_FREQUENCY_ALARM_TYPE {
+ EM_FREQUENCY_ALARM_UNKNOWN(-1),// 未知
+ EM_FREQUENCY_ALARM_HIGH(0),// 高频报警
+ EM_FREQUENCY_ALARM_LOW(1);// 低频报警
+
+ private int id ;
+
+ private EM_FREQUENCY_ALARM_TYPE(int id) {
+ this.id = id;
+ }
+
+ public int getId() {
+ return id;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_GATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_GATE_TYPE.java
new file mode 100644
index 0000000..291c4e4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_GATE_TYPE.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 闸机类型
+ * @date 2021/2/7
+ */
+public enum EM_GATE_TYPE {
+ /** 未知 */
+ EM_ASG_GATE_TYPE_UNKNOWN(-1, "未知"),
+ /** 摆闸1 */
+ EM_ASG_GATE_TYPE_SWING_GATE_ONE(0, "摆闸1"),
+ /** 摆闸2 */
+ EM_ASG_GATE_TYPE_SWING_GATE_TWO(1, "摆闸2"),
+ /** 翼闸1 */
+ EM_ASG_GATE_TYPE_WING_GATE_ONE(2, "翼闸1"),
+ /** 翼闸2 */
+ EM_ASG_GATE_TYPE_WING_GATE_TWO(3, "翼闸2"),
+ /** 翼闸3 */
+ EM_ASG_GATE_TYPE_WING_GATE_THREE(4, "翼闸3"),
+ /** 三棍闸1 */
+ EM_ASG_GATE_TYPE_THREE_STICK_GATE_ONE(10, "三棍闸1"),
+ /** 三棍闸2 */
+ EM_ASG_GATE_TYPE_THREE_STICK_GATE_TWO(11, "三棍闸2"),
+ /** 摆闸3 */
+ EM_ASG_GATE_TYPE_SWING_GATE_THREE(20, "摆闸3"),
+ /** 摆闸4 */
+ EM_ASG_GATE_TYPE_SWING_GATE_FOUR(21, "摆闸4"),
+ /** 摆闸5 */
+ EM_ASG_GATE_TYPE_SWING_GATE_FIVE(22, "摆闸5");
+
+ private int type;
+ private String desc;
+
+ EM_GATE_TYPE(int type, String desc) {
+ this.type = type;
+ this.desc = desc;
+ }
+
+ public static EM_GATE_TYPE getGateType(int type) {
+ for (EM_GATE_TYPE gateType : EM_GATE_TYPE.values()) {
+ if (gateType.type == type) {
+ return gateType;
+ }
+ }
+ return EM_ASG_GATE_TYPE_UNKNOWN;
+ }
+
+ public int getType() {
+ return type;
+ }
+
+ public void setType(int type) {
+ this.type = type;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public void setDesc(String desc) {
+ this.desc = desc;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_GATHER_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_GATHER_TYPE.java
new file mode 100644
index 0000000..29d2162
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_GATHER_TYPE.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 采集类型
+ * @date 2022/12/30 10:55:59
+ */
+public enum EM_GATHER_TYPE {
+ /**
+ * 未知类型
+ */
+ EM_GATHER_TYPE_UNKNOWN(0, "未知类型"),
+ /**
+ * 人脸采集
+ */
+ EM_GATHER_TYPE_FACE(1, "人脸采集"),
+ /**
+ * 证件采集
+ */
+ EM_GATHER_TYPE_IDCARD(2, "证件采集");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_GATHER_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_GATHER_TYPE enumType : EM_GATHER_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_GATHER_TYPE enumType : EM_GATHER_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_GETUSERINFOBYCONDITION_USER_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/EM_GETUSERINFOBYCONDITION_USER_STATUS.java
new file mode 100644
index 0000000..52fba25
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_GETUSERINFOBYCONDITION_USER_STATUS.java
@@ -0,0 +1,60 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 用户状态
+ * @date 2023/03/16 09:04:48
+ */
+public enum EM_GETUSERINFOBYCONDITION_USER_STATUS {
+ /**
+ * 未知
+ */
+ EM_GETUSERINFOBYCONDITION_USER_STATUS_UNKNOWN(0, "未知"),
+ /**
+ * 不存在,未配置过用户信息
+ */
+ EM_GETUSERINFOBYCONDITION_USER_STATUS_NOPRESENT(1, "不存在,未配置过用户信息"),
+ /**
+ * 未激活,已经配置过用户信息,但是未使能
+ */
+ EM_GETUSERINFOBYCONDITION_USER_STATUS_INACTIVATED(2, "未激活,已经配置过用户信息,但是未使能"),
+ /**
+ * 已激活
+ */
+ EM_GETUSERINFOBYCONDITION_USER_STATUS_ACTIVATED(3, "已激活");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_GETUSERINFOBYCONDITION_USER_STATUS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_GETUSERINFOBYCONDITION_USER_STATUS enumType : EM_GETUSERINFOBYCONDITION_USER_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_GETUSERINFOBYCONDITION_USER_STATUS enumType : EM_GETUSERINFOBYCONDITION_USER_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_GETUSERINFOBYCONDITION_USER_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_GETUSERINFOBYCONDITION_USER_TYPE.java
new file mode 100644
index 0000000..c588840
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_GETUSERINFOBYCONDITION_USER_TYPE.java
@@ -0,0 +1,68 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 码流类型
+ * @date 2023/03/16 09:04:49
+ */
+public enum EM_GETUSERINFOBYCONDITION_USER_TYPE {
+ /**
+ * 未知
+ */
+ EM_GETUSERINFOBYCONDITION_USER_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 键盘用户
+ */
+ EM_GETUSERINFOBYCONDITION_USER_TYPE_KEYPAD(1, "键盘用户"),
+ /**
+ * IC卡用户
+ */
+ EM_GETUSERINFOBYCONDITION_USER_TYPE_ICCARD(2, "IC卡用户"),
+ /**
+ * 遥控器用户
+ */
+ EM_GETUSERINFOBYCONDITION_USER_TYPE_REMOTECONTROL(3, "遥控器用户"),
+ /**
+ * 手机用户
+ */
+ EM_GETUSERINFOBYCONDITION_USER_TYPE_MOBILE(4, "手机用户"),
+ /**
+ * key用户
+ */
+ EM_GETUSERINFOBYCONDITION_USER_TYPE_KEY(5, "key用户");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_GETUSERINFOBYCONDITION_USER_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_GETUSERINFOBYCONDITION_USER_TYPE enumType : EM_GETUSERINFOBYCONDITION_USER_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_GETUSERINFOBYCONDITION_USER_TYPE enumType : EM_GETUSERINFOBYCONDITION_USER_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_GET_AREASSTATUS_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_GET_AREASSTATUS_TYPE.java
new file mode 100644
index 0000000..7089d4f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_GET_AREASSTATUS_TYPE.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 获取异常防区类型
+*/
+public enum EM_GET_AREASSTATUS_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_GET_AREASSTATUS_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 激活
+ */
+ EM_GET_AREASSTATUS_TYPE_ACTIVE(1, "激活"),
+ /**
+ * 打开
+ */
+ EM_GET_AREASSTATUS_TYPE_OPEN(2, "打开");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_GET_AREASSTATUS_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_GET_AREASSTATUS_TYPE enumType : EM_GET_AREASSTATUS_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_GET_AREASSTATUS_TYPE enumType : EM_GET_AREASSTATUS_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_GLARE_INHIBITION_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_GLARE_INHIBITION_MODE.java
new file mode 100644
index 0000000..04c8814
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_GLARE_INHIBITION_MODE.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 强光抑制模式,当背光模式为GlareInhibition时有效
+*/
+public enum EM_GLARE_INHIBITION_MODE
+{
+ /**
+ * 未知模式
+ */
+ EM_GLARE_INHIBITION_UNKONW(0, "未知模式"),
+ /**
+ * 默认模式
+ */
+ EM_GLARE_INHIBITION_DEFAULT(1, "默认模式"),
+ /**
+ * Fpga强光抑制模式
+ */
+ EM_GLARE_INHIBITION_FPGA(2, "Fpga强光抑制模式");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_GLARE_INHIBITION_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_GLARE_INHIBITION_MODE enumType : EM_GLARE_INHIBITION_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_GLARE_INHIBITION_MODE enumType : EM_GLARE_INHIBITION_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_GLASSES_RULE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_GLASSES_RULE_TYPE.java
new file mode 100644
index 0000000..cafaaca
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_GLASSES_RULE_TYPE.java
@@ -0,0 +1,85 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 251823
+* @description 眼镜检测规则中报警类型
+* @date 2022/11/01 19:47:17
+*/
+public enum EM_GLASSES_RULE_TYPE {
+/**
+未知
+*/
+ EM_GLASSES_RULE_TYPE_UNKNOWN(-1, "未知"),
+/**
+无眼镜
+*/
+ EM_GLASSES_RULE_TYPE_NO_GLASSES(0, "无眼镜"),
+/**
+太阳镜
+*/
+ EM_GLASSES_RULE_TYPE_SUN_GLASSES(1, "太阳镜"),
+/**
+黑框眼镜
+*/
+ EM_GLASSES_RULE_TYPE_BLACK_RIMMED_GLASSES(2, "黑框眼镜"),
+/**
+半框眼镜
+*/
+ EM_GLASSES_RULE_TYPE_HALF_RIMMED_GLASSES(3, "半框眼镜"),
+/**
+无框眼镜
+*/
+ EM_GLASSES_RULE_TYPE_RIMLESS_GLASSES(4, "无框眼镜"),
+/**
+普通眼镜
+*/
+ EM_GLASSES_RULE_TYPE_NORMAL_GLASSES(5, "普通眼镜"),
+/**
+工业护目镜
+*/
+ EM_GLASSES_RULE_TYPE_INDUSTRIAL_SAFETY_GLASSES(6, "工业护目镜");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_GLASSES_RULE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_GLASSES_RULE_TYPE enumType : EM_GLASSES_RULE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_GLASSES_RULE_TYPE enumType : EM_GLASSES_RULE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_GLASSES_RULE_TYPE getEnum(int value) {
+ for (EM_GLASSES_RULE_TYPE e : EM_GLASSES_RULE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_GLASSES_RULE_TYPE.EM_GLASSES_RULE_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_GLASSES_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_GLASSES_STATE.java
new file mode 100644
index 0000000..20615a7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_GLASSES_STATE.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 眼镜状态
+*/
+public enum EM_GLASSES_STATE
+{
+ /**
+ * 未知
+ */
+ EM_GLASSES_STATE_UNKNOWN(0, "未知"),
+ /**
+ * 不戴
+ */
+ EM_GLASSES_STATE_NO(1, "不戴"),
+ /**
+ * 戴
+ */
+ EM_GLASSES_STATE_WEAR(2, "戴");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_GLASSES_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_GLASSES_STATE enumType : EM_GLASSES_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_GLASSES_STATE enumType : EM_GLASSES_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_GLASSES_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_GLASSES_TYPE.java
new file mode 100644
index 0000000..fcea0bd
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_GLASSES_TYPE.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 眼镜类型
+*/
+public enum EM_GLASSES_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_GLASSES_UNKNOWN(0, "未知"),
+ /**
+ * 太阳眼镜
+ */
+ EM_GLASSES_SUNGLASS(1, "太阳眼镜"),
+ /**
+ * 普通眼镜
+ */
+ EM_GLASSES_GLASS(2, "普通眼镜");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_GLASSES_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_GLASSES_TYPE enumType : EM_GLASSES_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_GLASSES_TYPE enumType : EM_GLASSES_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_GLASS_STATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_GLASS_STATE_TYPE.java
new file mode 100644
index 0000000..b10ba90
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_GLASS_STATE_TYPE.java
@@ -0,0 +1,73 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 戴眼镜状态
+* @date 2022/09/28 10:27:56
+*/
+public enum EM_GLASS_STATE_TYPE {
+/**
+未知
+*/
+ EM_GLASS_STATE_TYPE_UNKNOWN(0, "未知"),
+/**
+未戴
+*/
+ EM_GLASS_STATE_TYPE_NOT_WEARING(1, "未戴"),
+/**
+戴常规眼镜
+*/
+ EM_GLASS_STATE_TYPE_CONVENTIONAL_GLASSES(2, "戴常规眼镜"),
+/**
+戴太阳眼镜
+*/
+ EM_GLASS_STATE_TYPE_SUN_GLASSES(3, "戴太阳眼镜"),
+/**
+戴黑框眼镜
+*/
+ EM_GLASS_STATE_TYPE_BLACK_GLASSES(4, "戴黑框眼镜");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_GLASS_STATE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_GLASS_STATE_TYPE enumType : EM_GLASS_STATE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_GLASS_STATE_TYPE enumType : EM_GLASS_STATE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_GLASS_STATE_TYPE getEnum(int value) {
+ for (EM_GLASS_STATE_TYPE e : EM_GLASS_STATE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_GLASS_STATE_TYPE.EM_GLASS_STATE_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_GLOBAL_LANES_LINE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_GLOBAL_LANES_LINE_TYPE.java
new file mode 100644
index 0000000..f1ed21c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_GLOBAL_LANES_LINE_TYPE.java
@@ -0,0 +1,43 @@
+package com.netsdk.lib.enumeration;
+/**
+ * @description 车道线属性
+ * @author 119178
+ * @date 2021/3/16
+ */
+public enum EM_GLOBAL_LANES_LINE_TYPE {
+ /**
+ * 未知
+ */
+ EM_GLOBAL_LANES_LINE_TYPE_UNKNOWN(0),
+ /**
+ * 白实线
+ */
+ EM_GLOBAL_LANES_LINE_TYPE_WHITESOLID(1),
+ /**
+ * 白虚线
+ */
+ EM_GLOBAL_LANES_LINE_TYPE_WHITEDOTTED(2),
+ /**
+ * 黄线
+ */
+ EM_GLOBAL_LANES_LINE_TYPE_YELLOW(3),
+ /**
+ * 上实下虚
+ */
+ EM_GLOBAL_LANES_LINE_TYPE_UPSOLIDDOWNDOTTED(4),
+ /**
+ * 上虚下实
+ */
+ EM_GLOBAL_LANES_LINE_TYPE_UPDOTTEDDOWNSOLID(5);
+
+ private int id ;
+
+ private EM_GLOBAL_LANES_LINE_TYPE(int id) {
+ this.id = id;
+ }
+
+ public int getId() {
+ return id;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_GRANULARITY_STARTFIND_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_GRANULARITY_STARTFIND_TYPE.java
new file mode 100644
index 0000000..52d2284
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_GRANULARITY_STARTFIND_TYPE.java
@@ -0,0 +1,64 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 查询要求返回的统计信息粒度
+ * @date 2022/11/03 10:19:57
+ */
+public enum EM_GRANULARITY_STARTFIND_TYPE {
+ /**
+ * 未知
+ */
+ EM_GRANULARITY_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 按5分钟(时报表)
+ */
+ EM_GRANULARITY_TYPE_MINUTE(1, "按5分钟(时报表)"),
+ /**
+ * 按小时(日报表)
+ */
+ EM_GRANULARITY_TYPE_HOUR(2, "按小时(日报表)"),
+ /**
+ * 按天(月报表)
+ */
+ EM_GRANULARITY_TYPE_DAY(3, "按天(月报表)"),
+ /**
+ * 按月(年报表)
+ */
+ EM_GRANULARITY_TYPE_MONTH(4, "按月(年报表)");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_GRANULARITY_STARTFIND_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_GRANULARITY_STARTFIND_TYPE enumType : EM_GRANULARITY_STARTFIND_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_GRANULARITY_STARTFIND_TYPE enumType : EM_GRANULARITY_STARTFIND_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_GREENCNHEALTH_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/EM_GREENCNHEALTH_STATUS.java
new file mode 100644
index 0000000..fd34b0c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_GREENCNHEALTH_STATUS.java
@@ -0,0 +1,73 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 人员健康状态
+* @date 2022/03/08 11:25:17
+*/
+public enum EM_GREENCNHEALTH_STATUS {
+/**
+未知
+*/
+ EM_GREENCNHEALTH_STATUS_UNKNOWN(0, "未知"),
+/**
+绿码
+*/
+ EM_GREENCNHEALTH_STATUS_GREEN(1, "绿码"),
+/**
+黄码
+*/
+ EM_GREENCNHEALTH_STATUS_YELLOW(2, "黄码"),
+/**
+红码
+*/
+ EM_GREENCNHEALTH_STATUS_RED(3, "红码"),
+/**
+无效
+*/
+ EM_GREENCNHEALTH_STATUS_INVALID(4, "无效");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_GREENCNHEALTH_STATUS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_GREENCNHEALTH_STATUS enumType : EM_GREENCNHEALTH_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_GREENCNHEALTH_STATUS enumType : EM_GREENCNHEALTH_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_GREENCNHEALTH_STATUS getEnum(int value) {
+ for (EM_GREENCNHEALTH_STATUS e : EM_GREENCNHEALTH_STATUS.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_GREENCNHEALTH_STATUS.EM_GREENCNHEALTH_STATUS_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_GROUP_COLOR_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_GROUP_COLOR_TYPE.java
new file mode 100644
index 0000000..4fb722b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_GROUP_COLOR_TYPE.java
@@ -0,0 +1,89 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 分组物品颜色
+* @date 2022/12/01 16:27:09
+*/
+public enum EM_GROUP_COLOR_TYPE {
+/**
+未知
+*/
+ EM_GROUP_COLOR_TYPE_UNKNOWN(-1, "未知"),
+/**
+枣红色,rgb(195,33,54)
+*/
+ EM_GROUP_COLOR_TYPE_JUJUBE_RED(0, "枣红色,rgb(195,33,54)"),
+/**
+紫色,rgb(255,0,255)
+*/
+ EM_GROUP_COLOR_TYPE_PURPLE(1, "紫色,rgb(255,0,255)"),
+/**
+灰色,rgb(192,192,192)
+*/
+ EM_GROUP_COLOR_TYPE_GRAY(2, "灰色,rgb(192,192,192)"),
+/**
+高亮黄色,rgb(255,255, 0)
+*/
+ EM_GROUP_COLOR_TYPE_HIGHLIGHT_YELLOW(3, "高亮黄色,rgb(255,255, 0)"),
+/**
+青色
+*/
+ EM_GROUP_COLOR_TYPE_CYAN(4, "青色"),
+/**
+粉色
+*/
+ EM_GROUP_COLOR_TYPE_PINK(5, "粉色"),
+/**
+黑色
+*/
+ EM_GROUP_COLOR_TYPE_BLACK(6, "黑色"),
+/**
+棕色
+*/
+ EM_GROUP_COLOR_TYPE_BROWN(7, "棕色");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_GROUP_COLOR_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_GROUP_COLOR_TYPE enumType : EM_GROUP_COLOR_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_GROUP_COLOR_TYPE enumType : EM_GROUP_COLOR_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_GROUP_COLOR_TYPE getEnum(int value) {
+ for (EM_GROUP_COLOR_TYPE e : EM_GROUP_COLOR_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_GROUP_COLOR_TYPE.EM_GROUP_COLOR_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_GROUP_GRADE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_GROUP_GRADE_TYPE.java
new file mode 100644
index 0000000..f62e317
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_GROUP_GRADE_TYPE.java
@@ -0,0 +1,69 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 分组安全等级
+* @date 2022/12/01 16:27:09
+*/
+public enum EM_GROUP_GRADE_TYPE {
+/**
+未知
+*/
+ EM_GROUP_GRADE_TYPE_UNKNOWN(-1, "未知"),
+/**
+普通级别
+*/
+ EM_GROUP_GRADE_TYPE_NORMAL(0, "普通级别"),
+/**
+警示级别
+*/
+ EM_GROUP_GRADE_TYPE_WARN(1, "警示级别"),
+/**
+危险级别
+*/
+ EM_GROUP_GRADE_TYPE_DANGER(2, "危险级别");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_GROUP_GRADE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_GROUP_GRADE_TYPE enumType : EM_GROUP_GRADE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_GROUP_GRADE_TYPE enumType : EM_GROUP_GRADE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_GROUP_GRADE_TYPE getEnum(int value) {
+ for (EM_GROUP_GRADE_TYPE e : EM_GROUP_GRADE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_GROUP_GRADE_TYPE.EM_GROUP_GRADE_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_GROUP_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_GROUP_TYPE.java
new file mode 100644
index 0000000..9602058
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_GROUP_TYPE.java
@@ -0,0 +1,63 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * Onvif 用户所在组
+*/
+public enum EM_GROUP_TYPE
+{
+ /**
+ * UnKnown
+ */
+ EM_GROUP_TYPE_UNKNOWN(0, "UnKnown"),
+ /**
+ * admin
+ */
+ EM_GROUP_TYPE_ADMIN(1, "admin"),
+ /**
+ * operator
+ */
+ EM_GROUP_TYPE_OPERATOR(2, "operator"),
+ /**
+ * user
+ */
+ EM_GROUP_TYPE_USER(3, "user"),
+ /**
+ * anonymous
+ */
+ EM_GROUP_TYPE_ANONYMOUS(4, "anonymous");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_GROUP_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_GROUP_TYPE enumType : EM_GROUP_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_GROUP_TYPE enumType : EM_GROUP_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_GUIDESCREEN_POS.java b/src/main/java/com/netsdk/lib/enumeration/EM_GUIDESCREEN_POS.java
new file mode 100644
index 0000000..87faaf4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_GUIDESCREEN_POS.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 箭头相对于数字的位置
+* @origin autoTool
+* @date 2023/06/27 15:49:59
+*/
+public enum EM_GUIDESCREEN_POS {
+/**
+
+*/
+ EM_GUIDESCREEN_POS_UNKNOWN(0, ""),
+/**
+左侧
+*/
+ EM_GUIDESCREEN_POS_LEFT(1, "左侧"),
+/**
+右侧
+*/
+ EM_GUIDESCREEN_POS_RIGHT(2, "右侧");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_GUIDESCREEN_POS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_GUIDESCREEN_POS enumType : EM_GUIDESCREEN_POS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_GUIDESCREEN_POS enumType : EM_GUIDESCREEN_POS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_GUIDESCREEN_POS getEnum(int value) {
+ for (EM_GUIDESCREEN_POS e : EM_GUIDESCREEN_POS.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_GUIDESCREEN_POS.EM_GUIDESCREEN_POS_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_GUIDESCREEN_ROLL.java b/src/main/java/com/netsdk/lib/enumeration/EM_GUIDESCREEN_ROLL.java
new file mode 100644
index 0000000..0ac9457
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_GUIDESCREEN_ROLL.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 诱导屏内容是否滚动
+* @origin autoTool
+* @date 2023/06/27 15:49:59
+*/
+public enum EM_GUIDESCREEN_ROLL {
+/**
+
+*/
+ EM_GUIDESCREEN_ROLL_UNKNOWN(0, ""),
+/**
+不滚动
+*/
+ EM_GUIDESCREEN_ROLL_DISABLE(1, "不滚动"),
+/**
+滚动
+*/
+ EM_GUIDESCREEN_ROLL_ENABLE(2, "滚动");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_GUIDESCREEN_ROLL(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_GUIDESCREEN_ROLL enumType : EM_GUIDESCREEN_ROLL.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_GUIDESCREEN_ROLL enumType : EM_GUIDESCREEN_ROLL.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_GUIDESCREEN_ROLL getEnum(int value) {
+ for (EM_GUIDESCREEN_ROLL e : EM_GUIDESCREEN_ROLL.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_GUIDESCREEN_ROLL.EM_GUIDESCREEN_ROLL_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_H264_PROFILE_RANK.java b/src/main/java/com/netsdk/lib/enumeration/EM_H264_PROFILE_RANK.java
new file mode 100644
index 0000000..b59f559
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_H264_PROFILE_RANK.java
@@ -0,0 +1,70 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * H264 编码级别
+ *
+ * @author 47040
+ * @since Created at 2021/5/26 9:04
+ */
+public enum EM_H264_PROFILE_RANK {
+ /**
+ * 提供I/P帧,仅支持 progressive(逐行扫描)和 CAVLC
+ */
+ NET_PROFILE_BASELINE(1, "BASELINE"),
+ /**
+ * 提供I/P/B帧,支持 progressive 和 interlaced,提供 CAVLC 或 CABAC
+ */
+ NET_PROFILE_MAIN(2, "MAIN"),
+ /**
+ * 提供I/P/B/SP/SI帧,仅支持 progressive (逐行扫描)和 CAVLC
+ */
+ NET_PROFILE_EXTENDED(3, "EXTENDED"),
+ /**
+ * 即 FRExt,Main_Profile基础上新增:8x8 intra prediction(8x8 帧内预测), custom
+ * quaint(自定义量化), lossless video coding(无损视频编码), 更多的 yuv 格式
+ */
+ NET_PROFILE_HIGH(4, "HIGH");
+
+ private final int value;
+ private final String note;
+
+ EM_H264_PROFILE_RANK(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_H264_PROFILE_RANK enumType : EM_H264_PROFILE_RANK.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_H264_PROFILE_RANK enumType : EM_H264_PROFILE_RANK.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_H264_PROFILE_RANK getEnum(int value) {
+ for (EM_H264_PROFILE_RANK e : EM_H264_PROFILE_RANK.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_H264_PROFILE_RANK.NET_PROFILE_BASELINE;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_HAIR_STYLE.java b/src/main/java/com/netsdk/lib/enumeration/EM_HAIR_STYLE.java
new file mode 100644
index 0000000..286fe68
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_HAIR_STYLE.java
@@ -0,0 +1,42 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 头发样式
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_HAIR_STYLE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_HAIR_UNKNOWN = 0;
+ /**
+ * 长发
+ */
+ public static final int EM_HAIR_LONG_HAIR = 1;
+ /**
+ * 短发
+ */
+ public static final int EM_HAIR_SHORT_HAIR = 2;
+ /**
+ * 马尾
+ */
+ public static final int EM_HAIR_PONYTAIL = 3;
+ /**
+ * 盘发
+ */
+ public static final int EM_HAIR_UPDO = 4;
+ /**
+ * 头部被遮挡
+ */
+ public static final int EM_HAIR_HEAD_BLOCKED = 5;
+ /**
+ * 无头发
+ */
+ public static final int EM_HAIR_NONE = 6;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_HAS_BABYCARRIAGE.java b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_BABYCARRIAGE.java
new file mode 100644
index 0000000..5a77a88
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_BABYCARRIAGE.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 是否推婴儿车
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 19:35
+ */
+public class EM_HAS_BABYCARRIAGE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_HAS_BABYCARRIAGE_UNKNOWN = 0;
+ /**
+ * 无
+ */
+ public static final int EM_HAS_BABYCARRIAGE_NO = 1;
+ /**
+ * 有
+ */
+ public static final int EM_HAS_BABYCARRIAGE_YES = 2;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_HAS_BACK_BAG.java b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_BACK_BAG.java
new file mode 100644
index 0000000..bda3db5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_BACK_BAG.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 是否有背包
+*/
+public enum EM_HAS_BACK_BAG
+{
+ /**
+ * 未知
+ */
+ EM_HAS_BACK_BAG_UNKNOWN(0, "未知"),
+ /**
+ * 没有背包
+ */
+ EM_HAS_BACK_BAG_NO(1, "没有背包"),
+ /**
+ * 有背包
+ */
+ EM_HAS_BACK_BAG_YES(2, "有背包");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_HAS_BACK_BAG(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_HAS_BACK_BAG enumType : EM_HAS_BACK_BAG.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_HAS_BACK_BAG enumType : EM_HAS_BACK_BAG.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_HAS_BADGE.java b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_BADGE.java
new file mode 100644
index 0000000..a1eea00
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_BADGE.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 是否佩戴工牌
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 19:35
+ */
+public class EM_HAS_BADGE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_HAS_BADGE_UNKNOWN = 0;
+ /**
+ * 无
+ */
+ public static final int EM_HAS_BADGE_NO = 1;
+ /**
+ * 有
+ */
+ public static final int EM_HAS_BADGE_YES = 2;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_HAS_BAG.java b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_BAG.java
new file mode 100644
index 0000000..c0c1e06
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_BAG.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 是否戴包(包括背包或拎包)
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 19:35
+ */
+public class EM_HAS_BAG extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_HAS_BAG_UNKNOWN = 0;
+ /**
+ * 不带包
+ */
+ public static final int EM_HAS_BAG_NO = 1;
+ /**
+ * 带包
+ */
+ public static final int EM_HAS_BAG_YES = 2;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_HAS_CARRIER_BAG.java b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_CARRIER_BAG.java
new file mode 100644
index 0000000..0248169
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_CARRIER_BAG.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 是否有手提包
+*/
+public enum EM_HAS_CARRIER_BAG
+{
+ /**
+ * 未知
+ */
+ EM_HAS_CARRIER_BAG_UNKNOWN(0, "未知"),
+ /**
+ * 没有手提包
+ */
+ EM_HAS_CARRIER_BAG_NO(1, "没有手提包"),
+ /**
+ * 有手提包
+ */
+ EM_HAS_CARRIER_BAG_YES(2, "有手提包");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_HAS_CARRIER_BAG(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_HAS_CARRIER_BAG enumType : EM_HAS_CARRIER_BAG.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_HAS_CARRIER_BAG enumType : EM_HAS_CARRIER_BAG.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_HAS_DOWNBODY.java b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_DOWNBODY.java
new file mode 100644
index 0000000..31254ae
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_DOWNBODY.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 人体部位是否有下半身
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 19:35
+ */
+public class EM_HAS_DOWNBODY extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_HAS_DOWNBODY_UNKNOWN = -1;
+ /**
+ * 无
+ */
+ public static final int EM_HAS_DOWNBODY_NO = 0;
+ /**
+ * 有
+ */
+ public static final int EM_HAS_DOWNBODY_YES = 1;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_HAS_GLASS.java b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_GLASS.java
new file mode 100644
index 0000000..67b754a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_GLASS.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 是否带眼镜
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_HAS_GLASS extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_HAS_GLASS_UNKNOWN = 0;
+ /**
+ * 未戴
+ */
+ public static final int EM_HAS_GLASS_NO = 1;
+ /**
+ * 戴普通眼镜
+ */
+ public static final int EM_HAS_GLASS_NORMAL = 2;
+ /**
+ * 戴太阳眼镜
+ */
+ public static final int EM_HAS_GLASS_SUN = 3;
+ /**
+ * 戴黑框眼镜
+ */
+ public static final int EM_HAS_GLASS_BLACK = 4;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_HAS_HAT.java b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_HAT.java
new file mode 100644
index 0000000..65dca15
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_HAT.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 是否戴帽子
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_HAS_HAT extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_HAS_HAT_UNKNOWN = 0;
+ /**
+ * 不戴帽子
+ */
+ public static final int EM_HAS_HAT_NO = 1;
+ /**
+ * 戴帽子
+ */
+ public static final int EM_HAS_HAT_YES = 2;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_HAS_HEAD.java b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_HEAD.java
new file mode 100644
index 0000000..51ea5ca
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_HEAD.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 人体部位是否有头
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 19:35
+ */
+public class EM_HAS_HEAD extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_HAS_HEAD_UNKNOWN = -1;
+ /**
+ * 无
+ */
+ public static final int EM_HAS_HEAD_NO = 0;
+ /**
+ * 有
+ */
+ public static final int EM_HAS_HEAD_YES = 1;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_HAS_HOLD.java b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_HOLD.java
new file mode 100644
index 0000000..49383da
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_HOLD.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description
+ * @date 2021/8/24 15:05
+ */
+public enum EM_HAS_HOLD {
+ EM_HAS_HOLD_UNKNOWN, // 未知
+ EM_HAS_HOLD_NO, // 无东西
+ EM_HAS_HOLD_YES; // 有东西
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_HAS_MESSENGER_BAG.java b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_MESSENGER_BAG.java
new file mode 100644
index 0000000..2ddcc0b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_MESSENGER_BAG.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 是否有斜挎包
+*/
+public enum EM_HAS_MESSENGER_BAG
+{
+ /**
+ * 未知
+ */
+ EM_HAS_MESSENGER_BAG_UNKNOWN(0, "未知"),
+ /**
+ * 没有斜挎包
+ */
+ EM_HAS_MESSENGER_BAG_NO(1, "没有斜挎包"),
+ /**
+ * 有斜挎包
+ */
+ EM_HAS_MESSENGER_BAG_YES(2, "有斜挎包");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_HAS_MESSENGER_BAG(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_HAS_MESSENGER_BAG enumType : EM_HAS_MESSENGER_BAG.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_HAS_MESSENGER_BAG enumType : EM_HAS_MESSENGER_BAG.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_HAS_RAINCOAT.java b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_RAINCOAT.java
new file mode 100644
index 0000000..39950ef
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_RAINCOAT.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 是否有雨披
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 19:35
+ */
+public class EM_HAS_RAINCOAT extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_HAS_RAINCOAT_UNKNOWN = 0;
+ /**
+ * 无
+ */
+ public static final int EM_HAS_RAINCOAT_NO = 1;
+ /**
+ * 有
+ */
+ public static final int EM_HAS_RAINCOAT_YES = 2;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_HAS_SHOULDER_BAG.java b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_SHOULDER_BAG.java
new file mode 100644
index 0000000..6eb7c52
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_SHOULDER_BAG.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 是否有肩包
+*/
+public enum EM_HAS_SHOULDER_BAG
+{
+ /**
+ * 未知
+ */
+ EM_HAS_SHOULDER_BAG_UNKNOWN(0, "未知"),
+ /**
+ * 没有肩包
+ */
+ EM_HAS_SHOULDER_BAG_NO(1, "没有肩包"),
+ /**
+ * 有肩包
+ */
+ EM_HAS_SHOULDER_BAG_YES(2, "有肩包");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_HAS_SHOULDER_BAG(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_HAS_SHOULDER_BAG enumType : EM_HAS_SHOULDER_BAG.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_HAS_SHOULDER_BAG enumType : EM_HAS_SHOULDER_BAG.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_HAS_UMBRELLA.java b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_UMBRELLA.java
new file mode 100644
index 0000000..3b6769a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_UMBRELLA.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 是否打伞
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 19:35
+ */
+public class EM_HAS_UMBRELLA extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_HAS_UMBRELLA_UNKNOWN = 0;
+ /**
+ * 未打伞
+ */
+ public static final int EM_HAS_UMBRELLA_NO = 1;
+ /**
+ * 打伞
+ */
+ public static final int EM_HAS_UMBRELLA_YES = 2;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_HAS_VEST.java b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_VEST.java
new file mode 100644
index 0000000..b45858c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_HAS_VEST.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 是否有反光背心
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 19:35
+ */
+public class EM_HAS_VEST extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_HAS_VEST_UNKNOWN = 0;
+ /**
+ * 无
+ */
+ public static final int EM_HAS_VEST_NO = 1;
+ /**
+ * 有
+ */
+ public static final int EM_HAS_VEST_YES = 2;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_HAT_STYLE.java b/src/main/java/com/netsdk/lib/enumeration/EM_HAT_STYLE.java
new file mode 100644
index 0000000..f83d0b1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_HAT_STYLE.java
@@ -0,0 +1,13 @@
+package com.netsdk.lib.enumeration;
+// 帽子款式
+public enum EM_HAT_STYLE {
+ EM_HAT_UNKNOWN, // 未知
+ EM_HAT_ORDINARY, // 普通帽子
+ EM_HAT_HELMET, // 头盔
+ EM_HAT_SAFETYHAT, // 安全帽
+ EM_HAT_EAVELESS, // 无檐帽
+ EM_HAT_PEAKEDCAP, // 鸭舌帽
+ EM_HAT_FISHERMANHAT, // 渔夫帽
+ EM_HAT_NONE; // 未戴帽
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_HEALTH_CODE_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/EM_HEALTH_CODE_STATUS.java
new file mode 100644
index 0000000..8fdc694
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_HEALTH_CODE_STATUS.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 健康码状态
+ */
+public enum EM_HEALTH_CODE_STATUS {
+ /**
+ * 未知
+ */
+ EM_HEALTH_CODE_STATUS_UNKNOWN0,
+ /**
+ * 红码
+ */
+ EM_HEALTH_CODE_STATUS_RED,
+ /**
+ * 绿码
+ */
+ EM_HEALTH_CODE_STATUS_GREEN,
+ /**
+ * 黄码
+ */
+ EM_HEALTH_CODE_STATUS_YELLOW,
+ /**
+ * 无效
+ */
+ EM_HEALTH_CODE_STATUS_INVALID;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_HEATMAP_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_HEATMAP_TYPE.java
new file mode 100644
index 0000000..4a68472
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_HEATMAP_TYPE.java
@@ -0,0 +1,60 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 热度图类型
+ * @date 2020/9/21
+ */
+public enum EM_HEATMAP_TYPE {
+ /**
+ * 未知
+ */
+ EM_HEATMAP_UNKNOWN(0, "未知"),
+ /**
+ * 平均滞留时间热度图
+ */
+ EM_HEATMAP_AVERAGESTAYTIME(1, "平均滞留时间热度图"),
+ /**
+ * 人数统计热度图
+ */
+ EM_HEATMAP_HUMANSTATISTICS(2, "人数统计热度图"),
+ /**
+ * 行人轨迹图
+ */
+ EM_HEATMAP_HUMANTRACK(3, "行人轨迹图");
+
+ private int type;
+ private String desc;
+
+ private EM_HEATMAP_TYPE(int type,String desc){
+ this.type=type;
+ this.desc=desc;
+ }
+
+ public int getType() {
+ return type;
+ }
+
+ public void setType(int type) {
+ this.type = type;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public void setDesc(String desc) {
+ this.desc = desc;
+ }
+
+ public static EM_HEATMAP_TYPE getEmHeatMap(int type) {
+ for (EM_HEATMAP_TYPE heatmap : EM_HEATMAP_TYPE.values()) {
+ if (heatmap.getType() == type) {
+ return heatmap;
+ }
+ }
+ return null;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_HELMET_EVENT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_HELMET_EVENT_TYPE.java
new file mode 100644
index 0000000..aa15414
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_HELMET_EVENT_TYPE.java
@@ -0,0 +1,62 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author : 260611
+ * @description : 触发事件的类型
+ * @since : Created in 2022/03/08 15:25
+ */
+
+public enum EM_HELMET_EVENT_TYPE {
+ /**
+ * 未知
+ */
+ EM_UNKNOWN_TYPE(0, "未知"),
+ /**
+ * 未佩戴安全帽
+ */
+ EM_NOT_WEAR_HELMET(1, "未佩戴安全帽");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_HELMET_EVENT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_HELMET_EVENT_TYPE enumType : EM_HELMET_EVENT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_HELMET_EVENT_TYPE enumType : EM_HELMET_EVENT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_HELMET_EVENT_TYPE getEnum(int value) {
+ for (EM_HELMET_EVENT_TYPE e : EM_HELMET_EVENT_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_HELMET_EVENT_TYPE.EM_UNKNOWN_TYPE;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_HELMET_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_HELMET_STATE.java
new file mode 100644
index 0000000..0f0bdbe
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_HELMET_STATE.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 头盔状态
+*/
+public enum EM_HELMET_STATE
+{
+ /**
+ * 未知
+ */
+ EM_HELMET_UNKNOWN(0, "未知"),
+ /**
+ * 未识别
+ */
+ EM_HELMET_OTHER(1, "未识别"),
+ /**
+ * 未戴头盔
+ */
+ EM_HELMET_NO(2, "未戴头盔"),
+ /**
+ * 戴头盔
+ */
+ EM_HELMET_YES(3, "戴头盔");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_HELMET_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_HELMET_STATE enumType : EM_HELMET_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_HELMET_STATE enumType : EM_HELMET_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_HUMAN_ANIMAL_ALARM_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_HUMAN_ANIMAL_ALARM_TYPE.java
new file mode 100644
index 0000000..cbbf903
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_HUMAN_ANIMAL_ALARM_TYPE.java
@@ -0,0 +1,64 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 人和动物检测事件报警类型
+ * @date 2022/12/19 11:22:21
+ */
+public enum EM_HUMAN_ANIMAL_ALARM_TYPE {
+ /**
+ * 未知
+ */
+ EM_HUMAN_ANIMAL_ALARM_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 从人数正常到人数异常
+ */
+ EM_HUMAN_ANIMAL_ALARM_TYPE_NORMAL_TO_ABNORMAL(1, "从人数正常到人数异常"),
+ /**
+ * 从人数异常到人数正常
+ */
+ EM_HUMAN_ANIMAL_ALARM_TYPE_ABNORMAL_TO_NORMAL(2, "从人数异常到人数正常");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_HUMAN_ANIMAL_ALARM_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_HUMAN_ANIMAL_ALARM_TYPE enumType : EM_HUMAN_ANIMAL_ALARM_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_HUMAN_ANIMAL_ALARM_TYPE enumType : EM_HUMAN_ANIMAL_ALARM_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_HUMAN_ANIMAL_ALARM_TYPE getEnum(int value) {
+ for (EM_HUMAN_ANIMAL_ALARM_TYPE e : EM_HUMAN_ANIMAL_ALARM_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_HUMAN_ANIMAL_ALARM_TYPE.EM_HUMAN_ANIMAL_ALARM_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_HUMAN_POSTURE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_HUMAN_POSTURE_TYPE.java
new file mode 100644
index 0000000..e8302eb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_HUMAN_POSTURE_TYPE.java
@@ -0,0 +1,22 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 关联的人体消息类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 19:35
+ */
+public class EM_HUMAN_POSTURE_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_HUMAN_POSTURE_UNKNOWN = 0;
+ /**
+ * 与最优人脸同画面的人体
+ */
+ public static final int EM_HUMAN_POSTURE_ALONG_WITH_FACE = 1;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_HUMAN_TEMPERATURE_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/EM_HUMAN_TEMPERATURE_STATUS.java
new file mode 100644
index 0000000..6ad60f5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_HUMAN_TEMPERATURE_STATUS.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 人体测温状态
+*/
+public enum EM_HUMAN_TEMPERATURE_STATUS
+{
+ /**
+ * 未知
+ */
+ EM_HUMAN_TEMPERATURE_STATUS_UNKNOWN(-1, "未知"),
+ /**
+ * 温度异常
+ */
+ EM_HUMAN_TEMPERATURE_STATUS_LOW(0, "温度异常"),
+ /**
+ * 正常
+ */
+ EM_HUMAN_TEMPERATURE_STATUS_NORMAL(1, "正常"),
+ /**
+ * 温度异常
+ */
+ EM_HUMAN_TEMPERATURE_STATUS_HIGH(2, "温度异常");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_HUMAN_TEMPERATURE_STATUS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_HUMAN_TEMPERATURE_STATUS enumType : EM_HUMAN_TEMPERATURE_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_HUMAN_TEMPERATURE_STATUS enumType : EM_HUMAN_TEMPERATURE_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_HY_FIRE_CONTROL_DEVICE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_HY_FIRE_CONTROL_DEVICE_TYPE.java
new file mode 100644
index 0000000..dc8eeb6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_HY_FIRE_CONTROL_DEVICE_TYPE.java
@@ -0,0 +1,87 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 消防离线故障事件设备类型
+*/
+public enum EM_HY_FIRE_CONTROL_DEVICE_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_HY_FIRE_CONTROL_DEVICE_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 无线报警主机
+ */
+ EM_HY_FIRE_CONTROL_DEVICE_TYPE_WIRELESSALARMHOST(1, "无线报警主机"),
+ /**
+ * 智能用电监控设备
+ */
+ EM_HY_FIRE_CONTROL_DEVICE_TYPE_INTELLIELECMONITORDEV(2, "智能用电监控设备"),
+ /**
+ * 图像型烟感
+ */
+ EM_HY_FIRE_CONTROL_DEVICE_TYPE_IMAGETYPESMOKEDETECTOR(3, "图像型烟感"),
+ /**
+ * 火焰识别摄像机
+ */
+ EM_HY_FIRE_CONTROL_DEVICE_TYPE_FLAMERECOGNITIONCAMERA(4, "火焰识别摄像机"),
+ /**
+ * 感烟火灾探测器
+ */
+ EM_HY_FIRE_CONTROL_DEVICE_TYPE_SMOKEFIREDETECTOR(5, "感烟火灾探测器"),
+ /**
+ * 感温火灾探测器
+ */
+ EM_HY_FIRE_CONTROL_DEVICE_TYPE_TEMPERATUREFIREDETECTOR(6, "感温火灾探测器"),
+ /**
+ * 可燃气体探测器
+ */
+ EM_HY_FIRE_CONTROL_DEVICE_TYPE_COMBUSTIBLEGASDETECTOR(7, "可燃气体探测器"),
+ /**
+ * 手动报警按钮
+ */
+ EM_HY_FIRE_CONTROL_DEVICE_TYPE_HANDLEALARMBUTTON(8, "手动报警按钮"),
+ /**
+ * 声光报警器
+ */
+ EM_HY_FIRE_CONTROL_DEVICE_TYPE_SOUNDLIGHTALARM(9, "声光报警器"),
+ /**
+ * 故障电弧传感器
+ */
+ EM_HY_FIRE_CONTROL_DEVICE_TYPE_FAULTELECTRICARCSENSOR(10, "故障电弧传感器");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_HY_FIRE_CONTROL_DEVICE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_HY_FIRE_CONTROL_DEVICE_TYPE enumType : EM_HY_FIRE_CONTROL_DEVICE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_HY_FIRE_CONTROL_DEVICE_TYPE enumType : EM_HY_FIRE_CONTROL_DEVICE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_IDCARD_MSG_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_IDCARD_MSG_TYPE.java
new file mode 100644
index 0000000..646d38a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_IDCARD_MSG_TYPE.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 证件消息类型
+ */
+public enum EM_IDCARD_MSG_TYPE {
+ /**
+ * 未知
+ */
+ EM_IDCARD_MSG_TYP_UNKNOWN,
+ /**
+ * 证件查询信息
+ */
+ EM_IDCARD_MSG_TYP_QUERY,
+ /**
+ * 证件权限下发
+ */
+ EM_IDCARD_MSG_TYPE_ISSUE_PERMISSION;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_IMAGE_LIGHT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_IMAGE_LIGHT_TYPE.java
new file mode 100644
index 0000000..3db3da5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_IMAGE_LIGHT_TYPE.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 图像成像光源类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 19:35
+ */
+public class EM_IMAGE_LIGHT_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_IMAGE_LIGHT_TYPE_UNKNOWN = 0;
+ /**
+ * 可见光成像
+ */
+ public static final int EM_IMAGE_LIGHT_TYPE_VISIBLE = 1;
+ /**
+ * 近红外成像(灰度图)
+ */
+ public static final int EM_IMAGE_LIGHT_TYPE_NEAR_INFRARED = 2;
+ /**
+ * 热红外成像(伪彩色)
+ */
+ public static final int EM_IMAGE_LIGHT_TYPE_THERMAL_INFRARED = 3;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_IMAGE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_IMAGE_TYPE.java
new file mode 100644
index 0000000..326b01c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_IMAGE_TYPE.java
@@ -0,0 +1,48 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 图片类型
+ */
+public enum EM_IMAGE_TYPE {
+ // 未知
+ EM_IMAGE_UNKNOWN(-1, "未知"),
+ // 安检员图片
+ EM_IMAGE_INSPECTOR(0, "安检员图片"),
+ // 包裹图片
+ EM_IMAGE_PACKAGE(1, "包裹图片");
+
+ private int value;
+ private String note;
+
+ private EM_IMAGE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_IMAGE_TYPE enumType : EM_IMAGE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_IMAGE_TYPE enumType : EM_IMAGE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_IMAGE_TYPE_EX2.java b/src/main/java/com/netsdk/lib/enumeration/EM_IMAGE_TYPE_EX2.java
new file mode 100644
index 0000000..aeaea25
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_IMAGE_TYPE_EX2.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 图片类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_IMAGE_TYPE_EX2 extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_IMAGE_TYPE_UNKNOWN = 0;
+ /**
+ * 全景广角度
+ */
+ public static final int EM_IMAGE_TYPE_SCENE_IMAGE = 1;
+ /**
+ * 大图
+ */
+ public static final int EM_IMAGE_TYPE_GLOBAL_SCENE = 2;
+ /**
+ * 大图(全景图)的缩略图
+ */
+ public static final int EM_IMAGE_TYPE_THUM_IMAGE = 3;
+ /**
+ * 人脸全景图
+ */
+ public static final int EM_IMAGE_TYPE_FACE_SCENE_IMAGE = 4;
+ /**
+ * 人脸图
+ */
+ public static final int EM_IMAGE_TYPE_FACE_IMAGE = 5;
+ /**
+ * 人体图
+ */
+ public static final int EM_IMAGE_TYPE_HUMAN_IMAGE = 6;
+ /**
+ * 与最优人脸同画面的人体图
+ */
+ public static final int EM_IMAGE_TYPE_ALONG_WITH_FACE_HUMAN_IMAGE = 7;
+ /**
+ * 与最优人脸同画面人体的全景图
+ */
+ public static final int EM_IMAGE_TYPE_ALONG_WITH_FACE_HUMAN_SCENE_IMAGE = 8;
+ /**
+ * 车位抠图
+ */
+ public static final int EM_IMAGE_TYPE_PARKING_IMAGE = 9;
+ /**
+ * 车身特写抠图
+ */
+ public static final int EM_IMAGE_TYPE_BINARIZED_PLATE = 10;
+ /**
+ * 格口抠图
+ */
+ public static final int EM_IMAGE_TYPE_DEPOSIT_IMAGE_INFO = 11;
+ /**
+ * 普通图,图片名称未定义情况使用
+ */
+ public static final int EM_IMAGE_TYPE_IMAGE_INFO = 12;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_INFRARED_FUNC_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_INFRARED_FUNC_MODE.java
new file mode 100644
index 0000000..94fffd7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_INFRARED_FUNC_MODE.java
@@ -0,0 +1,54 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 红外功能模式
+ */
+public enum EM_INFRARED_FUNC_MODE {
+ EM_INFRARED_FUNC_MODE_UNKNOWN(0, "未知"),
+ EM_INFRARED_FUNC_MODE_ON(1, "开启"),
+ EM_INFRARED_FUNC_MODE_OFF(2, "关闭"),
+ EM_INFRARED_FUNC_MODE_AUTO(3, "自动");
+
+ private final int value;
+ private final String note;
+
+ EM_INFRARED_FUNC_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_INFRARED_FUNC_MODE enumType : EM_INFRARED_FUNC_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_INFRARED_FUNC_MODE enumType : EM_INFRARED_FUNC_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_INFRARED_FUNC_MODE getEnum(int value) {
+ for (EM_INFRARED_FUNC_MODE e : EM_INFRARED_FUNC_MODE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_INFRARED_FUNC_MODE.EM_INFRARED_FUNC_MODE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_INFRARED_LIGHT_LEVEL.java b/src/main/java/com/netsdk/lib/enumeration/EM_INFRARED_LIGHT_LEVEL.java
new file mode 100644
index 0000000..8a49fba
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_INFRARED_LIGHT_LEVEL.java
@@ -0,0 +1,54 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 红外亮度
+ */
+public enum EM_INFRARED_LIGHT_LEVEL {
+ EM_INFRARED_LIGHT_LEVEL_UNKNOWN(0, "未知"),
+ EM_INFRARED_LIGHT_LEVEL_HIGH(1, "高"),
+ EM_INFRARED_LIGHT_LEVEL_MEDIUM(2, "中"),
+ EM_INFRARED_LIGHT_LEVEL_LOW(3, "低");
+
+ private final int value;
+ private final String note;
+
+ EM_INFRARED_LIGHT_LEVEL(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_INFRARED_LIGHT_LEVEL enumType : EM_INFRARED_LIGHT_LEVEL.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_INFRARED_LIGHT_LEVEL enumType : EM_INFRARED_LIGHT_LEVEL.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_INFRARED_LIGHT_LEVEL getEnum(int value) {
+ for (EM_INFRARED_LIGHT_LEVEL e : EM_INFRARED_LIGHT_LEVEL.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_INFRARED_LIGHT_LEVEL.EM_INFRARED_LIGHT_LEVEL_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_INSIDE_OBJECT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_INSIDE_OBJECT_TYPE.java
new file mode 100644
index 0000000..3b760b4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_INSIDE_OBJECT_TYPE.java
@@ -0,0 +1,402 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 物品类型
+* @origin autoTool
+* @date 2023/07/14 14:46:33
+*/
+public enum EM_INSIDE_OBJECT_TYPE {
+/**
+算法未识别物品
+*/
+ EM_INSIDE_OBJECT_UNKNOWN(0, "算法未识别物品"),
+/**
+刀具
+*/
+ EM_INSIDE_OBJECT_KNIFE(1, "刀具"),
+/**
+瓶装液体
+*/
+ EM_INSIDE_OBJECT_BOTTLELIQUID(2, "瓶装液体"),
+/**
+枪支
+*/
+ EM_INSIDE_OBJECT_GUN(3, "枪支"),
+/**
+雨伞
+*/
+ EM_INSIDE_OBJECT_UMBRELLA(4, "雨伞"),
+/**
+手机
+*/
+ EM_INSIDE_OBJECT_PHONE(5, "手机"),
+/**
+笔记本
+*/
+ EM_INSIDE_OBJECT_NOTEBOOK(6, "笔记本"),
+/**
+充电宝
+*/
+ EM_INSIDE_OBJECT_POWERBANK(7, "充电宝"),
+/**
+鞋子
+*/
+ EM_INSIDE_OBJECT_SHOES(8, "鞋子"),
+/**
+杠子
+*/
+ EM_INSIDE_OBJECT_ROD(9, "杠子"),
+/**
+金属
+*/
+ EM_INSIDE_OBJECT_METAL(10, "金属"),
+/**
+爆炸物
+*/
+ EM_INSIDE_OBJECT_EXPLOSIVE(11, "爆炸物"),
+/**
+喷雾喷灌
+*/
+ EM_INSIDE_OBJECT_CONTAINERSPRAY(12, "喷雾喷灌"),
+/**
+烟花爆竹
+*/
+ EM_INSIDE_OBJECT_EXPLOSIVE_FIREWORKS(13, "烟花爆竹"),
+/**
+打火机
+*/
+ EM_INSIDE_OBJECT_LIGHTER(14, "打火机"),
+/**
+警棍
+*/
+ EM_INSIDE_OBJECT_STICK(15, "警棍"),
+/**
+指虎
+*/
+ EM_INSIDE_OBJECT_BRASSKNUCKLE(16, "指虎"),
+/**
+手铐
+*/
+ EM_INSIDE_OBJECT_HANDCUFFS(17, "手铐"),
+/**
+象牙
+*/
+ EM_INSIDE_OBJECT_IVORY(18, "象牙"),
+/**
+书籍
+*/
+ EM_INSIDE_OBJECT_BOOK(19, "书籍"),
+/**
+光盘
+*/
+ EM_INSIDE_OBJECT_CD(20, "光盘"),
+/**
+锤子
+*/
+ EM_INSIDE_OBJECT_HAMMERS(21, "锤子"),
+/**
+钳子
+*/
+ EM_INSIDE_OBJECT_PLIERS(22, "钳子"),
+/**
+斧头
+*/
+ EM_INSIDE_OBJECT_AXE(23, "斧头"),
+/**
+螺丝刀
+*/
+ EM_INSIDE_OBJECT_SCREW_DRIVER(24, "螺丝刀"),
+/**
+扳手
+*/
+ EM_INSIDE_OBJECT_WRENCH(25, "扳手"),
+/**
+电击棍
+*/
+ EM_INSIDE_OBJECT_ELECTRIC_SHOCK_STICK(26, "电击棍"),
+/**
+保温杯
+*/
+ EM_INSIDE_OBJECT_THERMOS(27, "保温杯"),
+/**
+玻璃杯
+*/
+ EM_INSIDE_OBJECT_GLASS_BOTTLES(28, "玻璃杯"),
+/**
+塑料瓶
+*/
+ EM_INSIDE_OBJECT_PLASTIC_BOTTLE(29, "塑料瓶"),
+/**
+打火机油
+*/
+ EM_INSIDE_OBJECT_IGNITION_OIL(30, "打火机油"),
+/**
+指甲油
+*/
+ EM_INSIDE_OBJECT_NAIL_POLISH(31, "指甲油"),
+/**
+工具
+*/
+ EM_INSIDE_OBJECT_BLUNT_INSTRUMENT(32, "工具"),
+/**
+剪刀
+*/
+ EM_INSIDE_OBJECT_SCISSORS(33, "剪刀"),
+/**
+电子产品
+*/
+ EM_INSIDE_OBJECT_ELECTRONIC(34, "电子产品"),
+/**
+手枪
+*/
+ EM_INSIDE_OBJECT_PISTOL(35, "手枪"),
+/**
+折叠刀
+*/
+ EM_INSIDE_OBJECT_FOLDINGKNIFE(36, "折叠刀"),
+/**
+尖刀
+*/
+ EM_INSIDE_OBJECT_SHARPKNIFE(37, "尖刀"),
+/**
+菜刀
+*/
+ EM_INSIDE_OBJECT_KITCHENKNIFE(38, "菜刀"),
+/**
+美工刀
+*/
+ EM_INSIDE_OBJECT_UTILITYKNIFE(39, "美工刀"),
+/**
+烟花
+*/
+ EM_INSIDE_OBJECT_FIREWORKS(40, "烟花"),
+/**
+爆竹
+*/
+ EM_INSIDE_OBJECT_FIRECRACKER(41, "爆竹"),
+/**
+粉末
+*/
+ EM_INSIDE_OBJECT_POWDER(42, "粉末"),
+/**
+难穿透物品
+*/
+ EM_INSIDE_OBJECT_IMPENETERABLE_MATERALS(43, "难穿透物品"),
+/**
+香烟
+*/
+ EM_INSIDE_OBJECT_CIGARETTE(44, "香烟"),
+/**
+电池
+*/
+ EM_INSIDE_OBJECT_BATTERY(45, "电池"),
+/**
+零部件
+*/
+ EM_INSIDE_OBJECT_GUNPARTS(46, "零部件"),
+/**
+火柴
+*/
+ EM_INSIDE_OBJECT_MATCH(47, "火柴"),
+/**
+握把
+*/
+ EM_INSIDE_OBJECT_GUNGRIP(48, "握把"),
+/**
+弹夹
+*/
+ EM_INSIDE_OBJECT_GUNMAGAZINE(49, "弹夹"),
+/**
+套筒
+*/
+ EM_INSIDE_OBJECT_GUNSLEEVE(50, "套筒"),
+/**
+枪管
+*/
+ EM_INSIDE_OBJECT_GUNBARREL(51, "枪管"),
+/**
+子弹
+*/
+ EM_INSIDE_OBJECT_BULLET(52, "子弹"),
+/**
+手雷
+*/
+ EM_INSIDE_OBJECT_GRENADE(53, "手雷"),
+/**
+陶瓷片
+*/
+ EM_INSIDE_OBJECT_CERAMICSHEET(54, "陶瓷片"),
+/**
+玻璃片
+*/
+ EM_INSIDE_OBJECT_GLASSSHEET(55, "玻璃片"),
+/**
+IPAD底壳
+*/
+ EM_INSIDE_OBJECT_IPADBASE(56, "IPAD底壳"),
+/**
+弹弓
+*/
+ EM_INSIDE_OBJECT_SLINGSHOT(57, "弹弓"),
+/**
+毒品
+*/
+ EM_INSIDE_OBJECT_DRUG(58, "毒品"),
+/**
+炸药包
+*/
+ EM_INSIDE_OBJECT_EXPLOSIVEPACKAGE(59, "炸药包"),
+/**
+纽扣电池
+*/
+ EM_INSIDE_OBJECT_CELLBATTERY(60, "纽扣电池"),
+/**
+铅蓄电池
+*/
+ EM_INSIDE_OBJECT_LEADBATTERY(61, "铅蓄电池"),
+/**
+金属打火机
+*/
+ EM_INSIDE_OBJECT_METALLIGHTER(62, "金属打火机"),
+/**
+化妆瓶
+*/
+ EM_INSIDE_OBJECT_COSMETICBOTTLE(63, "化妆瓶"),
+/**
+易拉罐
+*/
+ EM_INSIDE_OBJECT_CONTAINERCAN(64, "易拉罐"),
+/**
+气罐
+*/
+ EM_INSIDE_OBJECT_AIRBOTTLE(65, "气罐"),
+/**
+方刀
+*/
+ EM_INSIDE_OBJECT_SQUAREKNIFE(66, "方刀"),
+ /**
+ * /// 对讲机
+ */
+ EM_INSIDE_OBJECT_WALKIETALKIE(67, "/// 对讲机"),
+ /**
+ * /// 路由器
+ */
+ EM_INSIDE_OBJECT_ROUTER(68, "/// 路由器"),
+ /**
+ * /// 话筒
+ */
+ EM_INSIDE_OBJECT_MICROPHONE(69, "/// 话筒"),
+ /**
+ * /// 无人机
+ */
+ EM_INSIDE_OBJECT_UNMANED_AERIAL_VEHICLE(70, "/// 无人机"),
+ /**
+ * /// 继电器
+ */
+ EM_INSIDE_OBJECT_ELECTRICAL_RELAY(71, "/// 继电器"),
+ /**
+ * /// 雷管
+ */
+ EM_INSIDE_OBJECT_DETONATOR(72, "/// 雷管"),
+ /**
+ * /// 导火索
+ */
+ EM_INSIDE_OBJECT_BLASTINGFUSE(73, "/// 导火索"),
+ /**
+ * /// 流体爆炸物
+ */
+ EM_INSIDE_OBJECT_EXPLOSIVEFLUID(74, "/// 流体爆炸物"),
+ /**
+ * /// 炮钉枪
+ */
+ EM_INSIDE_OBJECT_NAILGUN(75, "/// 炮钉枪"),
+ /**
+ * /// 炮钉
+ */
+ EM_INSIDE_OBJECT_NAIL(76, "/// 炮钉"),
+ /**
+ * /// 干电池
+ */
+ EM_INSIDE_OBJECT_DRYBATTERY(77, "/// 干电池"),
+ /**
+ * /// 锂电池
+ */
+ EM_INSIDE_OBJECT_LITHIUMBATTERY(78, "/// 锂电池"),
+ /**
+ * /// 锯子
+ */
+ EM_INSIDE_OBJECT_SAW(79, "/// 锯子"),
+ /**
+ * /// 餐刀
+ */
+ EM_INSIDE_OBJECT_TABLEKNIFE(80, "/// 餐刀"),
+ /**
+ * /// 勾刀
+ */
+ EM_INSIDE_OBJECT_PLASTICUTTER(81, "/// 勾刀"),
+ /**
+ * /// 弩箭
+ */
+ EM_INSIDE_OBJECT_BOLT(82, "/// 弩箭"),
+ /**
+ * /// 弩
+ */
+ EM_INSIDE_OBJECT_CROSSBOW(83, "/// 弩"),
+ /**
+ * /// 剃须刀
+ */
+ EM_INSIDE_OBJECT_SHAVER(84, "/// 剃须刀"),
+ /**
+ * /// 电动牙刷
+ */
+ EM_INSIDE_OBJECT_ELECTRIC_TOOTHBRUSH(85, "/// 电动牙刷"),
+ /**
+ * /// 油桶
+ */
+ EM_INSIDE_OBJECT_OILDRUM(86, "/// 油桶");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_INSIDE_OBJECT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_INSIDE_OBJECT_TYPE enumType : EM_INSIDE_OBJECT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_INSIDE_OBJECT_TYPE enumType : EM_INSIDE_OBJECT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_INSIDE_OBJECT_TYPE getEnum(int value) {
+ for (EM_INSIDE_OBJECT_TYPE e : EM_INSIDE_OBJECT_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_INSIDE_OBJECT_TYPE.EM_INSIDE_OBJECT_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_INSTRUMENT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_INSTRUMENT_TYPE.java
new file mode 100644
index 0000000..3a00417
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_INSTRUMENT_TYPE.java
@@ -0,0 +1,97 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 仪表类型
+* @date 2022/06/28 19:24:08
+*/
+public enum EM_INSTRUMENT_TYPE {
+/**
+未知
+*/
+ EM_INSTRUMENT_TYPE_UNKNOWN(0, "未知"),
+/**
+状态识别类型
+*/
+ EM_INSTRUMENT_TYPE_STATE(1, "状态识别类型"),
+/**
+状态匹配类型
+*/
+ EM_INSTRUMENT_TYPE_STATEMATCH(2, "状态匹配类型"),
+/**
+指针式表计类型
+*/
+ EM_INSTRUMENT_TYPE_METER(3, "指针式表计类型"),
+/**
+数字识别类型
+*/
+ EM_INSTRUMENT_TYPE_CHAR(4, "数字识别类型"),
+/**
+油表类型
+*/
+ EM_INSTRUMENT_TYPE_OIL(5, "油表类型"),
+/**
+开关标识
+*/
+ EM_INSTRUMENT_TYPE_SWIIDEN(6, "开关标识"),
+/**
+指示灯类型
+*/
+ EM_INSTRUMENT_TYPE_LIGHT(7, "指示灯类型"),
+/**
+室内开关类型
+*/
+ EM_INSTRUMENT_TYPE_SWITCH(8, "室内开关类型"),
+/**
+外观检测类型
+*/
+ EM_INSTRUMENT_TYPE_APPEARANCE(9, "外观检测类型"),
+/**
+液位计
+*/
+ EM_INSTRUMENT_TYPE_LEVELGAUGE(10, "液位计");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_INSTRUMENT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_INSTRUMENT_TYPE enumType : EM_INSTRUMENT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_INSTRUMENT_TYPE enumType : EM_INSTRUMENT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_INSTRUMENT_TYPE getEnum(int value) {
+ for (EM_INSTRUMENT_TYPE e : EM_INSTRUMENT_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_INSTRUMENT_TYPE.EM_INSTRUMENT_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_INSULATOR_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_INSULATOR_STATE.java
new file mode 100644
index 0000000..9b83644
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_INSULATOR_STATE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 绝缘子状态
+* @date 2022/06/28 19:44:56
+*/
+public enum EM_INSULATOR_STATE {
+/**
+未知
+*/
+ EM_INSULATOR_STATE_UNKNOWN(0, "未知"),
+/**
+正常
+*/
+ EM_INSULATOR_STATE_NORMAL(1, "正常"),
+/**
+破裂
+*/
+ EM_INSULATOR_STATE_BROKEN(2, "破裂");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_INSULATOR_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_INSULATOR_STATE enumType : EM_INSULATOR_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_INSULATOR_STATE enumType : EM_INSULATOR_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_INSULATOR_STATE getEnum(int value) {
+ for (EM_INSULATOR_STATE e : EM_INSULATOR_STATE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_INSULATOR_STATE.EM_INSULATOR_STATE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_INTENSITY_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_INTENSITY_MODE.java
new file mode 100644
index 0000000..1b9d68f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_INTENSITY_MODE.java
@@ -0,0 +1,71 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description SSA对比度调节模式,当背光模式为SSA时有效
+* @origin autoTool
+* @date 2023/11/30 16:22:27
+*/
+public enum EM_INTENSITY_MODE {
+ /**
+ * 未知模式
+ */
+ EM_INTENSITY_UNKNOW(0, "未知模式"),
+ /**
+ * 关闭
+ */
+ EM_INTENSITY_DISABLE(1, "关闭"),
+ /**
+ * 自动
+ */
+ EM_INTENSITY_AUTO(2, "自动"),
+ /**
+ * 手动
+ */
+ EM_INTENSITY_MANUAL(3, "手动");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_INTENSITY_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_INTENSITY_MODE enumType : EM_INTENSITY_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_INTENSITY_MODE enumType : EM_INTENSITY_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_INTENSITY_MODE getEnum(int value) {
+ for (EM_INTENSITY_MODE e : EM_INTENSITY_MODE.values()) {
+ if (e.getValue() == value){
+ return e;
+ }
+ }
+ return EM_INTENSITY_MODE.EM_INTENSITY_UNKNOW;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_IPC_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_IPC_TYPE.java
new file mode 100644
index 0000000..88ad71c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_IPC_TYPE.java
@@ -0,0 +1,122 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * IPC类型
+ *
+ * @author : 47040
+ * @since : Created in 2020/12/23 9:46
+ */
+public enum EM_IPC_TYPE {
+ NET_IPC_PRIVATE(0, "私有"),
+ NET_IPC_AEBELL(1, "AEBELL"),
+ NET_IPC_PANASONIC(2, "PANASONIC"),
+ NET_IPC_SONY(3, "SONY"),
+ NET_IPC_DYNACOLOR(4, "Dynacolor"),
+ NET_IPC_TCWS(5, "TCWS"),
+ NET_IPC_SAMSUNG(6, "SAMSUNG"),
+ NET_IPC_YOKO(7, "YOKO"),
+ NET_IPC_AXIS(8, "AXIS"),
+ NET_IPC_SANYO(9, "SANYO"),
+ NET_IPC_BOSH(10, "Bosch"),
+ NET_IPC_PECLO(11, "Peclo"),
+ NET_IPC_PROVIDEO(12, "Provideo"),
+ NET_IPC_ACTI(13, "ACTi"),
+ NET_IPC_VIVOTEK(14, "Vivotek"),
+ NET_IPC_ARECONT(15, "Arecont"),
+ NET_IPC_PRIVATEEH(16, "PrivateEH"),
+ NET_IPC_IMATEK(17, "IMatek"),
+ NET_IPC_SHANY(18, "Shany"),
+ NET_IPC_VIDEOTREC(19, "VIDEOTREC"),
+ NET_IPC_URA(20, "Ura"),
+ NET_IPC_BITICINO(21, "Bticino"),
+ NET_IPC_ONVIF(22, "Onvif协议类型"),
+ NET_IPC_SHEPHERD(23, "SHEPHERD"),
+ NET_IPC_YAAN(24, "YAAN"),
+ NET_IPC_AIRPOINT(25, "Airpop"),
+ NET_IPC_TYCO(26, "TYCO"),
+ NET_IPC_XUNMEI(27, "XUNMEI"),
+ NET_IPC_HIKVISION(28, ""),
+ NET_IPC_LG(29, "LG"),
+ NET_IPC_AOQIMAN(30, "AOQIMAN"),
+ NET_IPC_BAOKANG(31, "BAOKANG"),
+ NET_IPC_WATCHNET(32, "Watchnet"),
+ NET_IPC_XVISION(33, "Xvision"),
+ NET_IPC_FUSITSU(34, "FUSITSU"),
+ NET_IPC_CANON(35, "Canon"),
+ NET_IPC_GE(36, "GE"),
+ NET_IPC_Basler(37, "Basler"),
+ NET_IPC_Patro(38, "Patro"),
+ NET_IPC_CPKNC(39, "CPPLUS K系列"),
+ NET_IPC_CPRNC(40, "CPPLUS R系列"),
+ NET_IPC_CPUNC(41, "CPPLUS U系列"),
+ NET_IPC_CPPLUS(42, "CPPLUS IPC"),
+ NET_IPC_XunmeiS(43, "XunmeiS,实际协议为Onvif"),
+ NET_IPC_GDDW(44, "GDDW"),
+ NET_IPC_PSIA(45, "PSIA"),
+ NET_IPC_GB2818(46, "GB2818"),
+ NET_IPC_GDYX(47, "GDYX"),
+ NET_IPC_OTHER(48, "由用户自定义"),
+ NET_IPC_CPUNR(49, "CPPLUS NVR"),
+ NET_IPC_CPUAR(50, "CPPLUS DVR"),
+ NET_IPC_AIRLIVE(51, "Airlive"),
+ NET_IPC_NPE(52, "NPE"),
+ NET_IPC_AXVIEW(53, "AXVIEW"),
+ NET_IPC_DFWL(54, "DFWL"),
+ NET_IPC_HYUNDAI(56, "HYUNDAI DVR"),
+ NET_IPC_APHD(57, "APHD"),
+ NET_IPC_WELLTRANS(58, "WELLTRANS"),
+ NET_IPC_CDJF(59, "CDJF"),
+ NET_IPC_JVC(60, "JVC"),
+ NET_IPC_INFINOVA(61, "INFINOVA"),
+ NET_IPC_ADT(62, "ADT"),
+ NET_IPC_SIVIDI(63, "SIVIDI"),
+ NET_IPC_CPUNP(64, "CPPLUS 球机"),
+ NET_IPC_HX(65, "HX"),
+ NET_IPC_TJGS(66, "TJGS"),
+ NET_IPC_MULTICAST(79, "组播"),
+ NET_IPC_RVI(84, "RVi"),
+ NET_IPC_HONEYWELL(95, "Honeywell");
+
+ private final int value;
+ private final String note;
+
+ private EM_IPC_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_IPC_TYPE enumType : EM_IPC_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_IPC_TYPE enumType : EM_IPC_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_IPC_TYPE getEnum(int value) {
+ for (EM_IPC_TYPE e : EM_IPC_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_IPC_TYPE.NET_IPC_PRIVATE;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_IS_CURRENT_VK.java b/src/main/java/com/netsdk/lib/enumeration/EM_IS_CURRENT_VK.java
new file mode 100644
index 0000000..f4a2778
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_IS_CURRENT_VK.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 是否当前vk
+ * @date 2022/11/03 09:43:17
+ */
+public enum EM_IS_CURRENT_VK {
+ /**
+ * 未知
+ */
+ EM_IS_CURRENT_VK_UNKNOWN(0, "未知"),
+ /**
+ * 当前
+ */
+ EM_IS_CURRENT_VK_CURRENT(1, "当前"),
+ /**
+ * 之前
+ */
+ EM_IS_CURRENT_VK_PRE(2, "之前");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_IS_CURRENT_VK(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_IS_CURRENT_VK enumType : EM_IS_CURRENT_VK.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_IS_CURRENT_VK enumType : EM_IS_CURRENT_VK.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_IS_ENCRYPT.java b/src/main/java/com/netsdk/lib/enumeration/EM_IS_ENCRYPT.java
new file mode 100644
index 0000000..1fb674f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_IS_ENCRYPT.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 是否加密
+ * @date 2022/11/03 09:43:17
+ */
+public enum EM_IS_ENCRYPT {
+ /**
+ * 未知
+ */
+ EM_IS_ENCRYPT_UNKNOWN(0, "未知"),
+ /**
+ * 已加密
+ */
+ EM_IS_ENCRYPT_YES(1, "已加密"),
+ /**
+ * 未加密
+ */
+ EM_IS_ENCRYPT_NO(2, "未加密");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_IS_ENCRYPT(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_IS_ENCRYPT enumType : EM_IS_ENCRYPT.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_IS_ENCRYPT enumType : EM_IS_ENCRYPT.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_IS_ERRORDETECT.java b/src/main/java/com/netsdk/lib/enumeration/EM_IS_ERRORDETECT.java
new file mode 100644
index 0000000..c08b937
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_IS_ERRORDETECT.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 是否虚检
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 19:35
+ */
+public class EM_IS_ERRORDETECT extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_IS_ERRORDETECT_UNKNOWN = -1;
+ /**
+ * 无
+ */
+ public static final int EM_IS_ERRORDETECT_NO = 0;
+ /**
+ * 有
+ */
+ public static final int EM_IS_ERRORDETECT_YES = 1;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_IS_RECORD.java b/src/main/java/com/netsdk/lib/enumeration/EM_IS_RECORD.java
new file mode 100644
index 0000000..f435721
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_IS_RECORD.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 录像使能
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/17 15:57
+ */
+public enum EM_IS_RECORD {
+ /**
+ * 未知
+ */
+ EM_IS_RECORD_UNKNOWN(0, "未知"),
+ /**
+ * 录像
+ */
+ EM_IS_RECORD_ON(1, "录像"),
+ /**
+ * 不录像
+ */
+ EM_IS_RECORD_OFF(2, "不录像");
+
+ private int value;
+ private String note;
+
+ EM_IS_RECORD(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_IS_RECORD enumType : EM_IS_RECORD.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_IS_RECORD enumType : EM_IS_RECORD.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_IS_RECORD getEnum(int value) {
+ for (EM_IS_RECORD e : EM_IS_RECORD.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_IS_RECORD.EM_IS_RECORD_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_LAMP_COLOR.java b/src/main/java/com/netsdk/lib/enumeration/EM_LAMP_COLOR.java
new file mode 100644
index 0000000..e81bbb3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_LAMP_COLOR.java
@@ -0,0 +1,54 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 灯组灯色
+ * @date 2021/09/01
+ */
+public enum EM_LAMP_COLOR {
+ // 未知
+ EM_LAMP_COLOR_UNKOWN(-1, "未知"),
+ // 无灯
+ EM_LAMP_COLOR_NO(0, "无灯"),
+ // 灭灯
+ EM_LAMP_COLOR_LIGHT_OFF(1, "灭灯"),
+ // 亮灯
+ EM_LAMP_COLOR_LIGHT_ON(2, "亮灯"),
+ // 闪烁
+ EM_LAMP_COLOR_LIGHT_FLASH(3, "闪烁");
+
+ private int value;
+ private String note;
+
+ private EM_LAMP_COLOR(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_LAMP_COLOR enumType : EM_LAMP_COLOR.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_LAMP_COLOR enumType : EM_LAMP_COLOR.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_LAMP_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_LAMP_TYPE.java
new file mode 100644
index 0000000..1108d6e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_LAMP_TYPE.java
@@ -0,0 +1,76 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 灯组类型
+ * @date 2021/09/01
+ */
+public enum EM_LAMP_TYPE {
+ // 未知
+ EM_LAMP_TYPE_UNKNOWN(0, "未知"),
+ // 直行方向指示信号灯
+ EM_LAMP_TYPE_STRAIGHT(1, "直行方向指示信号灯"),
+ // 左转方向指示信号灯
+ EM_LAMP_TYPE_LEFT(2, "左转方向指示信号灯"),
+ // 右转方向指示信号灯
+ EM_LAMP_TYPE_RIGHT(3, "右转方向指示信号灯"),
+ // 机动车信号灯
+ EM_LAMP_TYPE_MOTORVEHICLE(4, "机动车信号灯"),
+ // 左转非机动车信号灯
+ EM_LAMP_TYPE_LEFT_NOMOTOR(5, "左转非机动车信号灯"),
+ // 右转非机动车信号灯
+ EM_LAMP_TYPE_RIGHT_NOMOTOR(6, "右转非机动车信号灯"),
+ // 非机动车信号灯
+ EM_LAMP_TYPE_NOMOTOR(7, "非机动车信号灯"),
+ // 人行横道信号灯
+ EM_LAMP_TYPE_SIDEWALK(8, "人行横道信号灯"),
+ // 掉头信号灯
+ EM_LAMP_TYPE_TURNAROUND(9, "掉头信号灯"),
+ // 车道信号灯
+ EM_LAMP_TYPE_LANE(10, "车道信号灯"),
+ // 道口信号灯
+ EM_LAMP_TYPE_CROSSING(11, "道口信号灯"),
+ // 闪光警告信号灯
+ EM_LAMP_TYPE_FLASH_WARN(12, "闪光警告信号灯"),
+ // 有轨电车专用信号灯(直行)
+ EM_LAMP_TYPE_TRAM_DEDICATED_STRAIGHT(13, "有轨电车专用信号灯(直行)"),
+ // 有轨电车专用信号灯(左转)
+ EM_LAMP_TYPE_TRAM_DEDICATED_LEFT(14, "有轨电车专用信号灯(左转)"),
+ // 有轨电车专用信号灯(右转)
+ EM_LAMP_TYPE_TRAM_DEDICATED_RIGHT(15, "有轨电车专用信号灯(右转)");
+
+ private int value;
+ private String note;
+
+ private EM_LAMP_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_LAMP_TYPE enumType : EM_LAMP_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_LAMP_TYPE enumType : EM_LAMP_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_LANE_RUNING_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_LANE_RUNING_STATE.java
new file mode 100644
index 0000000..943a739
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_LANE_RUNING_STATE.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 车道交通运行状态
+ * @date 2021/09/01
+ */
+public enum EM_LANE_RUNING_STATE {
+ // 未知
+ EM_LANE_RUNING_UNKNOWN(0, "未知"),
+ // 畅通
+ EM_LANE_RUNING_UNBLOCKED(1, "畅通"),
+ // 基本畅通
+ EM_LANE_RUNING_BASIC_UNBLOCKED(2, "基本畅通"),
+ // 轻度拥堵
+ EM_LANE_RUNING_LIGHT_CONGESTION(3, "轻度拥堵"),
+ // 中度拥堵
+ EM_LANE_RUNING_MIDDLE_CONGESTION(4, "中度拥堵"),
+ // 严重拥堵
+ EM_LANE_RUNING_SERIOUS_CONGESTION(5, "严重拥堵");
+
+ private int value;
+ private String note;
+
+ private EM_LANE_RUNING_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_LANE_RUNING_STATE enumType : EM_LANE_RUNING_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_LANE_RUNING_STATE enumType : EM_LANE_RUNING_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_LC_CONFIG_VERSION.java b/src/main/java/com/netsdk/lib/enumeration/EM_LC_CONFIG_VERSION.java
new file mode 100644
index 0000000..26f1f08
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_LC_CONFIG_VERSION.java
@@ -0,0 +1,67 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 421657
+ * @description 支持灯光配置的版本
+ * @origin autoTool
+ * @date 2023/10/19 17:27:48
+ */
+public enum EM_LC_CONFIG_VERSION {
+ /**
+ * 未知
+ */
+ EM_LC_CONFIG_VERSION_UNKNOWN(0, "未知"),
+ /**
+ * 使用Lighting配置,默认
+ */
+ EM_LC_CONFIG_VERSION_LIGHTING(1, "使用Lighting配置,默认"),
+ /**
+ * 使用Lighting_V2配置
+ */
+ EM_LC_CONFIG_VERSION_LIGHTING_V2(2, "使用Lighting_V2配置");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_LC_CONFIG_VERSION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_LC_CONFIG_VERSION enumType : EM_LC_CONFIG_VERSION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_LC_CONFIG_VERSION enumType : EM_LC_CONFIG_VERSION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_LC_CONFIG_VERSION getEnum(int value) {
+ for (EM_LC_CONFIG_VERSION e : EM_LC_CONFIG_VERSION.values()) {
+ if (e.getValue() == value) {
+ return e;
+ }
+ }
+ return EM_LC_CONFIG_VERSION.EM_LC_CONFIG_VERSION_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_LC_LIGHT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_LC_LIGHT_TYPE.java
new file mode 100644
index 0000000..0188928
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_LC_LIGHT_TYPE.java
@@ -0,0 +1,79 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 421657
+ * @description 灯光类型
+ * @origin autoTool
+ * @date 2023/10/19 17:27:53
+ */
+public enum EM_LC_LIGHT_TYPE {
+ /**
+ * 未知
+ */
+ EM_LC_LIGHT_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 红外灯
+ */
+ EM_LC_LIGHT_TYPE_INFRAREDLIGHT(1, "红外灯"),
+ /**
+ * 白光灯
+ */
+ EM_LC_LIGHT_TYPE_WIHTELIGHT(2, "白光灯"),
+ /**
+ * 激光灯
+ */
+ EM_LC_LIGHT_TYPE_LASERLIGHT(3, "激光灯"),
+ /**
+ * 智能混光灯(根据智能ID切换红外和白光灯)
+ */
+ EM_LC_LIGHT_TYPE_AIMIXLIGHT(4, "智能混光灯(根据智能ID切换红外和白光灯)"),
+ /**
+ * 指示灯
+ */
+ EM_LC_LIGHT_TYPE_PILOTLIGHT(5, "指示灯");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_LC_LIGHT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_LC_LIGHT_TYPE enumType : EM_LC_LIGHT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_LC_LIGHT_TYPE enumType : EM_LC_LIGHT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_LC_LIGHT_TYPE getEnum(int value) {
+ for (EM_LC_LIGHT_TYPE e : EM_LC_LIGHT_TYPE.values()) {
+ if (e.getValue() == value) {
+ return e;
+ }
+ }
+ return EM_LC_LIGHT_TYPE.EM_LC_LIGHT_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_LC_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_LC_MODE.java
new file mode 100644
index 0000000..0212d00
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_LC_MODE.java
@@ -0,0 +1,95 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 421657
+* @description 支持的模式
+* @origin autoTool
+* @date 2023/10/19 17:27:50
+*/
+public enum EM_LC_MODE {
+ /**
+ * 未知
+ */
+ EM_LC_MODE_UNKNOWN(0, "未知"),
+ /**
+ * 手动
+ */
+ EM_LC_MODE_MANUAL(1, "手动"),
+ /**
+ * 倍率优先
+ */
+ EM_LC_MODE_ZOOMPRIO(2, "倍率优先"),
+ /**
+ * 定时
+ */
+ EM_LC_MODE_TIMING(3, "定时"),
+ /**
+ * 自动
+ */
+ EM_LC_MODE_AUTO(4, "自动"),
+ /**
+ * 关闭灯光
+ */
+ EM_LC_MODE_OFF(5, "关闭灯光"),
+ /**
+ * 支持多种灯光
+ */
+ EM_LC_MODE_EXCLUSIVEMANUAL(6, "支持多种灯光"),
+ /**
+ * 智能灯光
+ */
+ EM_LC_MODE_SMARTLIGHT(7, "智能灯光"),
+ /**
+ * 事件联动
+ */
+ EM_LC_MODE_LINKING(8, "事件联动"),
+ /**
+ * 光敏
+ */
+ EM_LC_MODE_DUSKTODAW(9, "光敏");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_LC_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_LC_MODE enumType : EM_LC_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_LC_MODE enumType : EM_LC_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_LC_MODE getEnum(int value) {
+ for (EM_LC_MODE e : EM_LC_MODE.values()) {
+ if (e.getValue() == value){
+ return e;
+ }
+ }
+ return EM_LC_MODE.EM_LC_MODE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_LC_SUPPORT_EVENTS.java b/src/main/java/com/netsdk/lib/enumeration/EM_LC_SUPPORT_EVENTS.java
new file mode 100644
index 0000000..6fea458
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_LC_SUPPORT_EVENTS.java
@@ -0,0 +1,75 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 421657
+ * @description 支持灯光联动的非智能事件
+ * @origin autoTool
+ * @date 2023/10/19 17:27:53
+ */
+public enum EM_LC_SUPPORT_EVENTS {
+ /**
+ * 未知
+ */
+ EM_LC_SUPPORT_EVENTS_UNKNOWN(0, "未知"),
+ /**
+ * 动态检测
+ */
+ EM_LC_SUPPORT_EVENTS_MOTIONDETECT(1, "动态检测"),
+ /**
+ * 遮挡
+ */
+ EM_LC_SUPPORT_EVENTS_MASK(2, "遮挡"),
+ /**
+ * 报警
+ */
+ EM_LC_SUPPORT_EVENTS_ALARM(3, "报警"),
+ /**
+ * 所有事件
+ */
+ EM_LC_SUPPORT_EVENTS_ALL(4, "所有事件");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_LC_SUPPORT_EVENTS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_LC_SUPPORT_EVENTS enumType : EM_LC_SUPPORT_EVENTS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_LC_SUPPORT_EVENTS enumType : EM_LC_SUPPORT_EVENTS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_LC_SUPPORT_EVENTS getEnum(int value) {
+ for (EM_LC_SUPPORT_EVENTS e : EM_LC_SUPPORT_EVENTS.values()) {
+ if (e.getValue() == value) {
+ return e;
+ }
+ }
+ return EM_LC_SUPPORT_EVENTS.EM_LC_SUPPORT_EVENTS_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_LEAVEDETECTION_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_LEAVEDETECTION_STATE.java
new file mode 100644
index 0000000..8ffc781
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_LEAVEDETECTION_STATE.java
@@ -0,0 +1,49 @@
+package com.netsdk.lib.enumeration;
+/**
+ * @author 251823
+ * @description 检测状态
+ * @date 2021/03/15
+ */
+public enum EM_LEAVEDETECTION_STATE {
+ // 未知
+ EM_LEAVEDETECTION_STATE_UNKNOWN(0, "未知"),
+ // 离岗
+ EM_LEAVEDETECTION_STATE_LEAVE(1, "离岗"),
+ // 在岗
+ EM_LEAVEDETECTION_STATE_ON_THE_JOB(2, "在岗");
+
+ private int value;
+ private String note;
+
+ private EM_LEAVEDETECTION_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_LEAVEDETECTION_STATE enumType : EM_LEAVEDETECTION_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_LEAVEDETECTION_STATE enumType : EM_LEAVEDETECTION_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_LEAVEDETECTION_TRIGGER_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_LEAVEDETECTION_TRIGGER_MODE.java
new file mode 100644
index 0000000..5baa39a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_LEAVEDETECTION_TRIGGER_MODE.java
@@ -0,0 +1,54 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 离岗的触发模式
+ * @date 2021/03/15
+ */
+public enum EM_LEAVEDETECTION_TRIGGER_MODE {
+ // 未知
+ EM_LEAVEDETECTION_TRIGGER_UNKNOEN(0, "未知"),
+ // 无人
+ EM_LEAVEDETECTION_TRIGGER_NOPERSON(1, "无人"),
+ // 离开
+ EM_LEAVEDETECTION_TRIGGER_LEAVE(2, "离开"),
+ // 静止(睡岗)
+ EM_LEAVEDETECTION_TRIGGER_STATIC(3, "静止(睡岗)"),
+ // 不在允许值岗人数范围内(值岗人数异常)
+ EM_LEAVEDETECTION_TRIGGER_OUTPERSONLIMIT(4, "不在允许值岗人数范围内(值岗人数异常)");
+
+ private int value;
+ private String note;
+
+ private EM_LEAVEDETECTION_TRIGGER_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_LEAVEDETECTION_TRIGGER_MODE enumType : EM_LEAVEDETECTION_TRIGGER_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_LEAVEDETECTION_TRIGGER_MODE enumType : EM_LEAVEDETECTION_TRIGGER_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_LED_BRIGHTNESS_LEVEL.java b/src/main/java/com/netsdk/lib/enumeration/EM_LED_BRIGHTNESS_LEVEL.java
new file mode 100644
index 0000000..c443203
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_LED_BRIGHTNESS_LEVEL.java
@@ -0,0 +1,73 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description led灯亮度
+* @date 2022/08/31 14:44:16
+*/
+public enum EM_LED_BRIGHTNESS_LEVEL {
+/**
+未知
+*/
+ EM_LED_BRIGHTNESS_UNKNOWN(-1, "未知"),
+/**
+关闭
+*/
+ EM_LED_BRIGHTNESS_CLOSED(0, "关闭"),
+/**
+亮度最低
+*/
+ EM_LED_BRIGHTNESS_LOW(1, "亮度最低"),
+/**
+亮度适中
+*/
+ EM_LED_BRIGHTNESS_MEDIUM(2, "亮度适中"),
+/**
+亮度最高
+*/
+ EM_LED_BRIGHTNESS_HIGH(3, "亮度最高");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_LED_BRIGHTNESS_LEVEL(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_LED_BRIGHTNESS_LEVEL enumType : EM_LED_BRIGHTNESS_LEVEL.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_LED_BRIGHTNESS_LEVEL enumType : EM_LED_BRIGHTNESS_LEVEL.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_LED_BRIGHTNESS_LEVEL getEnum(int value) {
+ for (EM_LED_BRIGHTNESS_LEVEL e : EM_LED_BRIGHTNESS_LEVEL.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_LED_BRIGHTNESS_LEVEL.EM_LED_BRIGHTNESS_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_LIFT_CALLER_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_LIFT_CALLER_TYPE.java
new file mode 100644
index 0000000..3322eb4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_LIFT_CALLER_TYPE.java
@@ -0,0 +1,73 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 梯控方式触发者
+* @date 2022/10/19 14:01:07
+*/
+public enum EM_LIFT_CALLER_TYPE {
+/**
+未知
+*/
+ EM_LIFT_CALLER_TYPE_UNKNOWN(0, "未知"),
+/**
+VTO 呼叫
+*/
+ EM_LIFT_CALLER_TYPE_VTO(1, "VTO 呼叫"),
+/**
+平台呼叫
+*/
+ EM_LIFT_CALLER_TYPE_PLATFORM(2, "平台呼叫"),
+/**
+本机鉴权呼叫
+*/
+ EM_LIFT_CALLER_TYPE_LOCAL_AUTH(3, "本机鉴权呼叫"),
+/**
+门禁呼梯
+*/
+ EM_LIFT_CALLER_TYPE_ACCESS_CONTROL(4, "门禁呼梯");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_LIFT_CALLER_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_LIFT_CALLER_TYPE enumType : EM_LIFT_CALLER_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_LIFT_CALLER_TYPE enumType : EM_LIFT_CALLER_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_LIFT_CALLER_TYPE getEnum(int value) {
+ for (EM_LIFT_CALLER_TYPE e : EM_LIFT_CALLER_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_LIFT_CALLER_TYPE.EM_LIFT_CALLER_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_LIGHTGROUP_FAULT_LEVEL.java b/src/main/java/com/netsdk/lib/enumeration/EM_LIGHTGROUP_FAULT_LEVEL.java
new file mode 100644
index 0000000..5a00d06
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_LIGHTGROUP_FAULT_LEVEL.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 灯组故障等级
+ * @date 2021/09/28
+ */
+public enum EM_LIGHTGROUP_FAULT_LEVEL {
+ // 未知
+ EM_LIGHTGROUP_FAULT_UNKNOWN(0, "未知"),
+ // 忽略所有灯组故障
+ EM_LIGHTGROUP_FAULT_INGORE(1, "忽略所有灯组故障 "),
+ // 忽略车行灯黄灯、绿灯和人行灯故障
+ EM_LIGHTGROUP_FAULT_INGORE_YELLOWGREENPEDESTRIAN(2, "忽略车行灯黄灯、绿灯和人行灯故障 "),
+ // 忽略车行灯黄灯、红灯和人行灯故障
+ EM_LIGHTGROUP_FAULT_INGORE_YELLOWREDPEDESTRIAN(3, "忽略车行灯黄灯、红灯和人行灯故障"),
+ // 忽略车行灯黄灯和人行灯故障
+ EM_LIGHTGROUP_FAULT_INGORE_YELLOWPEDESTRIAN(4, "忽略车行灯黄灯和人行灯故障 "),
+ // 不忽略任何灯组故障
+ EM_LIGHTGROUP_FAULT_UNINGORE(5, "不忽略任何灯组故障");
+
+ private int value;
+ private String note;
+
+ private EM_LIGHTGROUP_FAULT_LEVEL(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_LIGHTGROUP_FAULT_LEVEL enumType : EM_LIGHTGROUP_FAULT_LEVEL.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_LIGHTGROUP_FAULT_LEVEL enumType : EM_LIGHTGROUP_FAULT_LEVEL.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_LINE_COLOR_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_LINE_COLOR_TYPE.java
new file mode 100644
index 0000000..9f2b1ae
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_LINE_COLOR_TYPE.java
@@ -0,0 +1,44 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 轨迹线颜色类型
+ * @date 2020/8/24
+ */
+public enum EM_LINE_COLOR_TYPE {
+ EM_LINE_COLOR_TYPE_UNKNOWN(0, "未知"),
+ EM_LINE_COLOR_TYPE_RED(1, "红色"),
+ EM_LINE_COLOR_TYPE_YELLOW(2, "黄色"),
+ EM_LINE_COLOR_TYPE_BLUE(3, "蓝色"),
+ EM_LINE_COLOR_TYPE_GREEN(4, "绿色"),
+ EM_LINE_COLOR_TYPE_BLACK(5, "黑色"),
+ EM_LINE_COLOR_TYPE_WHITE(6, "白色");
+
+ private int type;
+ private String color;
+
+ private EM_LINE_COLOR_TYPE(int type, String color) {
+ this.type = type;
+ this.color = color;
+ }
+
+ public EM_LINE_COLOR_TYPE getColorType(int type) {
+ for (EM_LINE_COLOR_TYPE color : EM_LINE_COLOR_TYPE.values()
+ ) {
+ if (color.getType() == type) {
+ return color;
+ }
+ }
+ return null;
+ }
+
+ public int getType() {
+ return type;
+ }
+
+ public String getColor() {
+ return color;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_LINKAGE_STREAM_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_LINKAGE_STREAM_TYPE.java
new file mode 100644
index 0000000..8636305
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_LINKAGE_STREAM_TYPE.java
@@ -0,0 +1,63 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 联动码流类型
+*/
+public enum EM_LINKAGE_STREAM_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_LINKAGE_STREAM_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 主码流
+ */
+ EM_LINKAGE_STREAM_TYPE_MAIN(1, "主码流"),
+ /**
+ * 辅码流1
+ */
+ EM_LINKAGE_STREAM_TYPE_EXTRA_1(2, "辅码流1"),
+ /**
+ * 辅码流2
+ */
+ EM_LINKAGE_STREAM_TYPE_EXTRA_2(3, "辅码流2"),
+ /**
+ * 辅码流3
+ */
+ EM_LINKAGE_STREAM_TYPE_EXTRA_3(4, "辅码流3");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_LINKAGE_STREAM_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_LINKAGE_STREAM_TYPE enumType : EM_LINKAGE_STREAM_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_LINKAGE_STREAM_TYPE enumType : EM_LINKAGE_STREAM_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_MAIN_PAGE_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_MAIN_PAGE_STATE.java
new file mode 100644
index 0000000..a7d1850
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_MAIN_PAGE_STATE.java
@@ -0,0 +1,77 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 界面图片状态
+ *
+ * @author 47040
+ * @since Created in 2021/4/27 19:17
+ */
+public enum EM_MAIN_PAGE_STATE {
+ /**
+ * 未知
+ */
+ EM_MAIN_PAGE_STATE_UNKNOWN(0, "未知"),
+ /**
+ * 正常
+ */
+ EM_MAIN_PAGE_STATE_NORMAL(1, "正常"),
+ /**
+ * 待机
+ */
+ EM_MAIN_PAGE_STATE_STANDBY(2, "待机"),
+ /**
+ * 通道关闭
+ */
+ EM_MAIN_PAGE_STATE_CHANNELCLOSED(3, "通道关闭"),
+ /**
+ * 禁止通行
+ */
+ EM_MAIN_PAGE_STATE_FORBIDENTER(4, "禁止通行"),
+ /**
+ * 紧急疏散
+ */
+ EM_MAIN_PAGE_STATE_URGENTEVACUATE(5, "紧急疏散");
+
+ private final int value;
+ private final String note;
+
+ EM_MAIN_PAGE_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_MAIN_PAGE_STATE enumType : EM_MAIN_PAGE_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_MAIN_PAGE_STATE enumType : EM_MAIN_PAGE_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_MAIN_PAGE_STATE getEnum(int value) {
+ for (EM_MAIN_PAGE_STATE e : EM_MAIN_PAGE_STATE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_MAIN_PAGE_STATE.EM_MAIN_PAGE_STATE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_MANUAL_CONTROL_COURSE_RECORD_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_MANUAL_CONTROL_COURSE_RECORD_TYPE.java
new file mode 100644
index 0000000..461ea3e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_MANUAL_CONTROL_COURSE_RECORD_TYPE.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 控制类型
+*/
+public enum EM_MANUAL_CONTROL_COURSE_RECORD_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_MANUAL_CONTROL_COURSE_RECORD_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 开始
+ */
+ EM_MANUAL_CONTROL_COURSE_RECORD_TYPE_ON(1, "开始"),
+ /**
+ * 暂停
+ */
+ EM_MANUAL_CONTROL_COURSE_RECORD_TYPE_PAUSE(2, "暂停"),
+ /**
+ * 停止
+ */
+ EM_MANUAL_CONTROL_COURSE_RECORD_TYPE_OFF(3, "停止");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_MANUAL_CONTROL_COURSE_RECORD_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_MANUAL_CONTROL_COURSE_RECORD_TYPE enumType : EM_MANUAL_CONTROL_COURSE_RECORD_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_MANUAL_CONTROL_COURSE_RECORD_TYPE enumType : EM_MANUAL_CONTROL_COURSE_RECORD_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_MANUAL_CONTROL_ERRORCODE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_MANUAL_CONTROL_ERRORCODE_TYPE.java
new file mode 100644
index 0000000..57b2082
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_MANUAL_CONTROL_ERRORCODE_TYPE.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 错误码枚举
+*/
+public enum EM_MANUAL_CONTROL_ERRORCODE_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_MANUAL_CONTROL_ERRORCODE_TYPE_UNKNOWN(-1, "未知"),
+ /**
+ * 正常
+ */
+ EM_MANUAL_CONTROL_ERRORCODE_TYPE_NORMAL(0, "正常"),
+ /**
+ * 状态错误(重复动作)
+ */
+ EM_MANUAL_CONTROL_ERRORCODE_TYPE_ERROR(1, "状态错误(重复动作)"),
+ /**
+ * 录像控制异常(导播通道不允许录像)
+ */
+ EM_MANUAL_CONTROL_ERRORCODE_TYPE_ABNORMAL(2, "录像控制异常(导播通道不允许录像)");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_MANUAL_CONTROL_ERRORCODE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_MANUAL_CONTROL_ERRORCODE_TYPE enumType : EM_MANUAL_CONTROL_ERRORCODE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_MANUAL_CONTROL_ERRORCODE_TYPE enumType : EM_MANUAL_CONTROL_ERRORCODE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_MASK_DETECT_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_MASK_DETECT_MODE.java
new file mode 100644
index 0000000..7662d62
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_MASK_DETECT_MODE.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.enumeration;
+
+
+
+/**
+ * 门禁测温口罩检测模式
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/09 17:05
+ */
+public enum EM_MASK_DETECT_MODE {
+ /**
+ * 未知
+ */
+ EM_MASK_DETECT_MODE_UNKNOWN,
+ /**
+ * 不检测口罩
+ */
+ EM_MASK_DETECT_MODE_NO_DETECTION,
+ /**
+ * 口罩提醒模式
+ */
+ EM_MASK_DETECT_MODE_REMIND,
+ /**
+ * 口罩拦截模式
+ */
+ EM_MASK_DETECT_MODE_INTERCEPT;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_MASK_STATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_MASK_STATE_TYPE.java
new file mode 100644
index 0000000..7e4acd2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_MASK_STATE_TYPE.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 口罩状态
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_MASK_STATE_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_MASK_STATE_UNKNOWN = 0;
+ /**
+ * 未识别
+ */
+ public static final int EM_MASK_STATE_NODISTI = 1;
+ /**
+ * 没戴口罩
+ */
+ public static final int EM_MASK_STATE_NOMASK = 2;
+ /**
+ * 戴口罩
+ */
+ public static final int EM_MASK_STATE_WEAR = 3;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_MASK_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_MASK_TYPE.java
new file mode 100644
index 0000000..8200539
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_MASK_TYPE.java
@@ -0,0 +1,8 @@
+package com.netsdk.lib.enumeration;
+// 是否戴口罩
+public enum EM_MASK_TYPE {
+ EM_MASK_UNKNOWN, // 未知
+ EM_MASK_NO, // 无
+ EM_MASK_YES; // 戴
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_MATCH_TWO_FACE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_MATCH_TWO_FACE_TYPE.java
new file mode 100644
index 0000000..a4440a8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_MATCH_TWO_FACE_TYPE.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 比对方式
+*/
+public enum EM_MATCH_TWO_FACE_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_MATCH_TWO_FACE_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 图片比对
+ */
+ EM_MATCH_TWO_FACE_TYPE_PIC(1, "图片比对"),
+ /**
+ * 特征值比对
+ */
+ EM_MATCH_TWO_FACE_TYPE_EIGENVALUE(2, "特征值比对");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_MATCH_TWO_FACE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_MATCH_TWO_FACE_TYPE enumType : EM_MATCH_TWO_FACE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_MATCH_TWO_FACE_TYPE enumType : EM_MATCH_TWO_FACE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_MIX_SNAP_SPEED_SOURCE.java b/src/main/java/com/netsdk/lib/enumeration/EM_MIX_SNAP_SPEED_SOURCE.java
new file mode 100644
index 0000000..cea8e4c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_MIX_SNAP_SPEED_SOURCE.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 视频抓拍速度来源
+ * @date 2021/2/22
+ */
+public enum EM_MIX_SNAP_SPEED_SOURCE {
+ /** 未知 */
+ EM_SNAP_SPEED_SOURCE_UNKNOWN,
+ /** 视频 */
+ EM_SNAP_SPEED_SOURCE_VIDEO,
+ /** 雷达 */
+ EM_SNAP_SPEED_SOURCE_RADAR;
+
+ public static EM_MIX_SNAP_SPEED_SOURCE getMixSnapSpeedSource(int source) {
+ for (EM_MIX_SNAP_SPEED_SOURCE speedSource : EM_MIX_SNAP_SPEED_SOURCE.values()) {
+ if (speedSource.ordinal() == source) {
+ return speedSource;
+ }
+ }
+ return EM_SNAP_SPEED_SOURCE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_MOBILE_ENFORCE_FILE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_MOBILE_ENFORCE_FILE_TYPE.java
new file mode 100644
index 0000000..e135171
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_MOBILE_ENFORCE_FILE_TYPE.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 文件后缀类型
+ *
+ * @author 47040
+ * @since Created at 2021/5/31 14:34
+ */
+public enum EM_MOBILE_ENFORCE_FILE_TYPE {
+ EM_MOBILE_ENFORCE_FILE_TYPE_UNKNOWN(0, "未知"),
+ EM_MOBILE_ENFORCE_FILE_TYPE_DAV(1, "dav"),
+ EM_MOBILE_ENFORCE_FILE_TYPE_MP4(2, "mp4"),
+ EM_MOBILE_ENFORCE_FILE_TYPE_AAC(3, "aac"),
+ EM_MOBILE_ENFORCE_FILE_TYPE_MP3(4, "mp3"),
+ EM_MOBILE_ENFORCE_FILE_TYPE_JPG(5, "jpg");
+
+ private final int value;
+ private final String note;
+
+ EM_MOBILE_ENFORCE_FILE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_MOBILE_ENFORCE_FILE_TYPE enumType : EM_MOBILE_ENFORCE_FILE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_MOBILE_ENFORCE_FILE_TYPE enumType : EM_MOBILE_ENFORCE_FILE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_MOBILE_ENFORCE_FILE_TYPE getEnum(int value) {
+ for (EM_MOBILE_ENFORCE_FILE_TYPE e : EM_MOBILE_ENFORCE_FILE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_MOBILE_ENFORCE_FILE_TYPE.EM_MOBILE_ENFORCE_FILE_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_MOBILE_ENFORCE_FLAGS.java b/src/main/java/com/netsdk/lib/enumeration/EM_MOBILE_ENFORCE_FLAGS.java
new file mode 100644
index 0000000..cb45271
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_MOBILE_ENFORCE_FLAGS.java
@@ -0,0 +1,71 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 录像标志
+*/
+public enum EM_MOBILE_ENFORCE_FLAGS
+{
+ /**
+ * 未知
+ */
+ EM_MOBILE_ENFORCE_FLAGS_UNKNOWN(0, "未知"),
+ /**
+ * 普通录像和图片
+ */
+ EM_MOBILE_ENFORCE_FLAGS_TIMING(1, "普通录像和图片"),
+ /**
+ * 事件录像和图片
+ */
+ EM_MOBILE_ENFORCE_FLAGS_EVENT(2, "事件录像和图片"),
+ /**
+ * 锁定录像和图片
+ */
+ EM_MOBILE_ENFORCE_FLAGS_MARKED(3, "锁定录像和图片"),
+ /**
+ * 卡号录像和图片
+ */
+ EM_MOBILE_ENFORCE_FLAGS_CARD(4, "卡号录像和图片"),
+ /**
+ * 标签录像和图片
+ */
+ EM_MOBILE_ENFORCE_FLAGS_TAG(5, "标签录像和图片"),
+ /**
+ * 限制录像和图片
+ */
+ EM_MOBILE_ENFORCE_FLAGS_RESTRICT(6, "限制录像和图片");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_MOBILE_ENFORCE_FLAGS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_MOBILE_ENFORCE_FLAGS enumType : EM_MOBILE_ENFORCE_FLAGS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_MOBILE_ENFORCE_FLAGS enumType : EM_MOBILE_ENFORCE_FLAGS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_MOBILE_ENFORCE_FORMAT.java b/src/main/java/com/netsdk/lib/enumeration/EM_MOBILE_ENFORCE_FORMAT.java
new file mode 100644
index 0000000..c6a1618
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_MOBILE_ENFORCE_FORMAT.java
@@ -0,0 +1,57 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 文件的真实类型
+ *
+ * @author 47040
+ * @since Created at 2021/5/31 12:11
+ */
+public enum EM_MOBILE_ENFORCE_FORMAT {
+ EM_MOBILE_ENFORCE_FORMAT_UNKNOWN(0, "未知"),
+ EM_MOBILE_ENFORCE_FORMAT_VIDEO(1, "视频"),
+ EM_MOBILE_ENFORCE_FORMAT_AUDIO(2, "音频"),
+ EM_MOBILE_ENFORCE_FORMAT_IMAGE(3, "图片");
+
+ private final int value;
+ private final String note;
+
+ EM_MOBILE_ENFORCE_FORMAT(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_MOBILE_ENFORCE_FORMAT enumType : EM_MOBILE_ENFORCE_FORMAT.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_MOBILE_ENFORCE_FORMAT enumType : EM_MOBILE_ENFORCE_FORMAT.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_MOBILE_ENFORCE_FORMAT getEnum(int value) {
+ for (EM_MOBILE_ENFORCE_FORMAT e : EM_MOBILE_ENFORCE_FORMAT.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_MOBILE_ENFORCE_FORMAT.EM_MOBILE_ENFORCE_FORMAT_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_MOBILE_ENFORCE_UPLOAD_FLAG.java b/src/main/java/com/netsdk/lib/enumeration/EM_MOBILE_ENFORCE_UPLOAD_FLAG.java
new file mode 100644
index 0000000..d3b0db5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_MOBILE_ENFORCE_UPLOAD_FLAG.java
@@ -0,0 +1,57 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 文件上传标志
+ *
+ * @author 47040
+ * @since Created at 2021/5/31 10:16
+ */
+public enum EM_MOBILE_ENFORCE_UPLOAD_FLAG {
+ EM_MOBILE_ENFORCE_UPLOAD_FLAG_UNKNWON(-1, "未知"),
+ EM_MOBILE_ENFORCE_UPLOAD_FLAG_NOTUPLOAD(0, "未上传"),
+ EM_MOBILE_ENFORCE_UPLOAD_FLAG_UPLOADED(1, "已上传"),
+ EM_MOBILE_ENFORCE_UPLOAD_FLAG_BACKEDUP(3, "已备份");
+
+ private final int value;
+ private final String note;
+
+ EM_MOBILE_ENFORCE_UPLOAD_FLAG(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_MOBILE_ENFORCE_UPLOAD_FLAG enumType : EM_MOBILE_ENFORCE_UPLOAD_FLAG.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_MOBILE_ENFORCE_UPLOAD_FLAG enumType : EM_MOBILE_ENFORCE_UPLOAD_FLAG.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_MOBILE_ENFORCE_UPLOAD_FLAG getEnum(int value) {
+ for (EM_MOBILE_ENFORCE_UPLOAD_FLAG e : EM_MOBILE_ENFORCE_UPLOAD_FLAG.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_MOBILE_ENFORCE_UPLOAD_FLAG.EM_MOBILE_ENFORCE_UPLOAD_FLAG_UNKNWON;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_MOSAIC_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_MOSAIC_TYPE.java
new file mode 100644
index 0000000..29149f2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_MOSAIC_TYPE.java
@@ -0,0 +1,76 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 马赛克类型
+ * @date 2022/07/21 15:29:16
+ */
+public enum EM_MOSAIC_TYPE {
+ /**
+ * 无效的马赛克类型
+ */
+ EM_MOSAIC_TYPE_INVALID(0, "无效的马赛克类型"),
+ /**
+ * 不打马赛克
+ */
+ EM_MOSAIC_TYPE_NO(1, "不打马赛克"),
+ /**
+ * [8x8大小] 马赛克
+ */
+ EM_MOSAIC_TYPE_8(2, "[8x8大小] 马赛克"),
+ /**
+ * [16x16大小] 马赛克
+ */
+ EM_MOSAIC_TYPE_16(3, "[16x16大小] 马赛克"),
+ /**
+ * [24x24大小] 马赛克
+ */
+ EM_MOSAIC_TYPE_24(4, "[24x24大小] 马赛克"),
+ /**
+ * [32x32大小] 马赛克
+ */
+ EM_MOSAIC_TYPE_32(5, "[32x32大小] 马赛克");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_MOSAIC_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_MOSAIC_TYPE enumType : EM_MOSAIC_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_MOSAIC_TYPE enumType : EM_MOSAIC_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_MOSAIC_TYPE getEnum(int value) {
+ for (EM_MOSAIC_TYPE e : EM_MOSAIC_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_MOSAIC_TYPE.EM_MOSAIC_TYPE_INVALID;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_MOTION_DETECT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_MOTION_DETECT_TYPE.java
new file mode 100644
index 0000000..bd82806
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_MOTION_DETECT_TYPE.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 动检触发类型
+*/
+public enum EM_MOTION_DETECT_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_MOTION_DETECT_UNKNOWN(0, "未知"),
+ /**
+ * 人
+ */
+ EM_MOTION_DETECT_HUMAN(1, "人"),
+ /**
+ * 车
+ */
+ EM_MOTION_DETECT_VEHICLE(2, "车"),
+ /**
+ * 人和车
+ */
+ EM_MOTION_DETECT_HUMAN_AND_VEHICLE(3, "人和车");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_MOTION_DETECT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_MOTION_DETECT_TYPE enumType : EM_MOTION_DETECT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_MOTION_DETECT_TYPE enumType : EM_MOTION_DETECT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_MOUTH_STATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_MOUTH_STATE_TYPE.java
new file mode 100644
index 0000000..8b991a7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_MOUTH_STATE_TYPE.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 嘴巴状态
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_MOUTH_STATE_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_MOUTH_STATE_UNKNOWN = 0;
+ /**
+ * 未识别
+ */
+ public static final int EM_MOUTH_STATE_NODISTI = 1;
+ /**
+ * 闭嘴
+ */
+ public static final int EM_MOUTH_STATE_CLOSE = 2;
+ /**
+ * 张嘴
+ */
+ public static final int EM_MOUTH_STATE_OPEN = 3;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_MSGROUP_OPERATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_MSGROUP_OPERATE_TYPE.java
new file mode 100644
index 0000000..492e994
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_MSGROUP_OPERATE_TYPE.java
@@ -0,0 +1,69 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 主动跟踪主操作命令, 接口 CLIENT_OperateMasterSlaveGroup
+ * @date 2022/09/14 13:50:01
+ */
+public enum EM_MSGROUP_OPERATE_TYPE {
+ /**
+ * 打开主从跟踪组, 对应 NET_IN_MSGROUP_OPEN_INFO 和 NET_OUT_MSGROUP_OPEN_INFO
+ */
+ EM_MSGROUP_OPERATE_OPEN(0, "打开主从跟踪组, 对应 NET_IN_MSGROUP_OPEN_INFO 和 NET_OUT_MSGROUP_OPEN_INFO"),
+ /**
+ * 联动主从跟踪组, 对应 NET_IN_MSGROUP_LOCATE_INFO 和 NET_OUT_MSGROUP_LOCATE_INTO
+ */
+ EM_MSGROUP_OPERATE_LOCATE(1, "联动主从跟踪组, 对应 NET_IN_MSGROUP_LOCATE_INFO 和 NET_OUT_MSGROUP_LOCATE_INTO"),
+ /**
+ * 手动选定目标跟踪, 对应 NET_IN_MSGROUP_TRACK_INFO 和 NET_OUT_MSGROUP_TRACK_INFO
+ */
+ EM_MSGROUP_OPERATE_TRACK(2, "手动选定目标跟踪, 对应 NET_IN_MSGROUP_TRACK_INFO 和 NET_OUT_MSGROUP_TRACK_INFO"),
+ /**
+ * 关闭主从式跟踪器实例, 对应 NET_IN_MSGROUP_CLOSE_INFO 和 NET_OUT_MSGROUP_CLOSE_INFO
+ */
+ EM_MSGROUP_OPERATE_CLOSE(3, "关闭主从式跟踪器实例, 对应 NET_IN_MSGROUP_CLOSE_INFO 和 NET_OUT_MSGROUP_CLOSE_INFO"),
+ /**
+ * 从主设备选择矩形框联动从设备, 对应 NET_IN_MSGROUP_RECTLOCATE_INFO 和NET_OUT_MSGROUP_RECTLOCATE_INFO
+ */
+ EM_MSGROUP_OPERATE_RECTLOCATE(4, "从主设备选择矩形框联动从设备, 对应 NET_IN_MSGROUP_RECTLOCATE_INFO 和 NET_OUT_MSGROUP_RECTLOCATE_INFO"),
+ /**
+ * 将从机固定位置下的视频坐标转换为主机的视频坐标, 对应 对应 NET_IN_MSGROUP_SLAVE_POSITION_TO_MASTER_INFO 和
+ * NET_OUT_MSGROUP_SLAVE_POSITION_TO_MASTER_INFO
+ */
+ EM_MSGROUP_OPERATE_SLAVE_POSITION_TO_MASTER(5, "将从机固定位置下的视频坐标转换为主机的视频坐标, 对应 对应 NET_IN_MSGROUP_SLAVE_POSITION_TO_MASTER_INFO 和 NET_OUT_MSGROUP_SLAVE_POSITION_TO_MASTER_INFO");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_MSGROUP_OPERATE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_MSGROUP_OPERATE_TYPE enumType : EM_MSGROUP_OPERATE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_MSGROUP_OPERATE_TYPE enumType : EM_MSGROUP_OPERATE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_MSG_OBJ_PERSON_DIRECTION.java b/src/main/java/com/netsdk/lib/enumeration/EM_MSG_OBJ_PERSON_DIRECTION.java
new file mode 100644
index 0000000..2a5eb0e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_MSG_OBJ_PERSON_DIRECTION.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 入侵方向
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_MSG_OBJ_PERSON_DIRECTION extends NetSDKLib.SdkStructure {
+ /**
+ * 未知方向
+ */
+ public static final int EM_MSG_OBJ_PERSON_DIRECTION_UNKOWN = 0;
+ /**
+ * 从左向右
+ */
+ public static final int EM_MSG_OBJ_PERSON_DIRECTION_LEFT_TO_RIGHT = 1;
+ /**
+ * 从右向左
+ */
+ public static final int EM_MSG_OBJ_PERSON_DIRECTION_RIGHT_TO_LEFT = 2;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_MULTIFACE_DETECT_ERRCODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_MULTIFACE_DETECT_ERRCODE.java
new file mode 100644
index 0000000..fc79439
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_MULTIFACE_DETECT_ERRCODE.java
@@ -0,0 +1,60 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 大图检测小图结果错误码
+ * @date 2023/04/20 15:11:18
+ */
+public enum EM_MULTIFACE_DETECT_ERRCODE {
+ /**
+ * 未知
+ */
+ EM_MULTIFACE_DETECT_UNKNOWN(-1, "未知"),
+ /**
+ * 成功
+ */
+ EM_MULTIFACE_DETECT_SUCCESS(0, "成功"),
+ /**
+ * 解码失败
+ */
+ EM_MULTIFACE_DETECT_DECODE_FAIL(1, "解码失败"),
+ /**
+ * 未检测到有效目标
+ */
+ EM_MULTIFACE_DETECT_NO_OBJECT(2, "未检测到有效目标");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_MULTIFACE_DETECT_ERRCODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_MULTIFACE_DETECT_ERRCODE enumType : EM_MULTIFACE_DETECT_ERRCODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_MULTIFACE_DETECT_ERRCODE enumType : EM_MULTIFACE_DETECT_ERRCODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NAS_STATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_NAS_STATE_TYPE.java
new file mode 100644
index 0000000..acd12b9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NAS_STATE_TYPE.java
@@ -0,0 +1,77 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 滤光片类型
+* @date 2022/09/22 17:28:03
+*/
+public enum EM_NAS_STATE_TYPE {
+/**
+未知
+*/
+ EM_NAS_STATE_TYPE_UNKNOWN(0, "未知"),
+/**
+正常
+*/
+ EM_NAS_STATE_TYPE_ACTIVE(1, "正常"),
+/**
+LV异常
+*/
+ EM_NAS_STATE_TYPE_LVFAILED(2, "LV异常"),
+/**
+非活跃
+*/
+ EM_NAS_STATE_TYPE_INACTIVE(3, "非活跃"),
+/**
+LV所属的VG异常
+*/
+ EM_NAS_STATE_TYPE_VGFAILED(4, "LV所属的VG异常"),
+/**
+服务未开启
+*/
+ EM_NAS_STATE_TYPE_NOTSTARTED(5, "服务未开启");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_NAS_STATE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_NAS_STATE_TYPE enumType : EM_NAS_STATE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_NAS_STATE_TYPE enumType : EM_NAS_STATE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_NAS_STATE_TYPE getEnum(int value) {
+ for (EM_NAS_STATE_TYPE e : EM_NAS_STATE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_NAS_STATE_TYPE.EM_NAS_STATE_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NEEDED_PIC_RETURN_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_NEEDED_PIC_RETURN_TYPE.java
new file mode 100644
index 0000000..9351dbe
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NEEDED_PIC_RETURN_TYPE.java
@@ -0,0 +1,43 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 查询结果返回图片的格式
+ * @date 2021/4/26
+ */
+public enum EM_NEEDED_PIC_RETURN_TYPE {
+ /** 未知类型 */
+ EM_NEEDED_PIC_TYPE_UNKOWN(0, "未知类型"),
+ /** 返回图片HTTP链接 */
+ EM_NEEDED_PIC_TYPE_HTTP_URL(1, "返回图片HTTP链接"),
+ /** 返回图片二进制数据 */
+ EM_NEEDED_PIC_TYPE_BINARY_DATA(2, "返回图片二进制数据"),
+ /** 返回二进制和HTTP链接 */
+ EM_NEEDED_PIC_TYPE_HTTP_AND_BINARY(3, "返回二进制和HTTP链接");
+
+ private int type;
+ private String desc;
+
+ EM_NEEDED_PIC_RETURN_TYPE(int type, String desc) {
+ this.type = type;
+ this.desc = desc;
+ }
+
+ public int getType() {
+ return type;
+ }
+
+ public void setType(int type) {
+ this.type = type;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public void setDesc(String desc) {
+ this.desc = desc;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NET_CONSUMPTION_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_NET_CONSUMPTION_MODE.java
new file mode 100644
index 0000000..7c81c05
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NET_CONSUMPTION_MODE.java
@@ -0,0 +1,69 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 消费模式
+* @date 2022/03/07 10:54:03
+*/
+public enum EM_NET_CONSUMPTION_MODE {
+/**
+未知
+*/
+ EM_NET_CONSUMPTION_MODE_UNKNOWN(-1, "未知"),
+/**
+定额消费
+*/
+ EM_NET_CONSUMPTION_MODE_QUOTA(0, "定额消费"),
+/**
+非定额消费
+*/
+ EM_NET_CONSUMPTION_MODE_NONQUOTA(1, "非定额消费"),
+/**
+充值
+*/
+ EM_NET_CONSUMPTION_MODE_DEPOSIT(2, "充值");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_NET_CONSUMPTION_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_NET_CONSUMPTION_MODE enumType : EM_NET_CONSUMPTION_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_NET_CONSUMPTION_MODE enumType : EM_NET_CONSUMPTION_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_NET_CONSUMPTION_MODE getEnum(int value) {
+ for (EM_NET_CONSUMPTION_MODE e : EM_NET_CONSUMPTION_MODE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_NET_CONSUMPTION_MODE.EM_NET_CONSUMPTION_MODE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NET_ECK_PANEL_COLOR.java b/src/main/java/com/netsdk/lib/enumeration/EM_NET_ECK_PANEL_COLOR.java
new file mode 100644
index 0000000..946f54b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NET_ECK_PANEL_COLOR.java
@@ -0,0 +1,70 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 显示颜色
+* @origin autoTool
+* @date 2023/06/27 16:54:41
+*/
+public enum EM_NET_ECK_PANEL_COLOR {
+/**
+未知
+*/
+ EM_NET_ECK_PANEL_COLOR_UNKNOWN(0, "未知"),
+/**
+红色
+*/
+ EM_NET_ECK_PANEL_COLOR_RED(1, "红色"),
+/**
+绿色
+*/
+ EM_NET_ECK_PANEL_COLOR_GREEN(2, "绿色"),
+/**
+黄色
+*/
+ EM_NET_ECK_PANEL_COLOR_YELLOW(3, "黄色");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_NET_ECK_PANEL_COLOR(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_NET_ECK_PANEL_COLOR enumType : EM_NET_ECK_PANEL_COLOR.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_NET_ECK_PANEL_COLOR enumType : EM_NET_ECK_PANEL_COLOR.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_NET_ECK_PANEL_COLOR getEnum(int value) {
+ for (EM_NET_ECK_PANEL_COLOR e : EM_NET_ECK_PANEL_COLOR.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_NET_ECK_PANEL_COLOR.EM_NET_ECK_PANEL_COLOR_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NET_ECK_PANEL_DIRECTION.java b/src/main/java/com/netsdk/lib/enumeration/EM_NET_ECK_PANEL_DIRECTION.java
new file mode 100644
index 0000000..6cf61fe
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NET_ECK_PANEL_DIRECTION.java
@@ -0,0 +1,70 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 箭头指向,箭头专用
+* @origin autoTool
+* @date 2023/06/27 16:54:41
+*/
+public enum EM_NET_ECK_PANEL_DIRECTION {
+/**
+未知
+*/
+ EM_NET_ECK_PANEL_DIRECTION_UNKNOWN(0, "未知"),
+/**
+左
+*/
+ EM_NET_ECK_PANEL_DIRECTION_LEFT(1, "左"),
+/**
+上
+*/
+ EM_NET_ECK_PANEL_DIRECTION_UP(2, "上"),
+/**
+右
+*/
+ EM_NET_ECK_PANEL_DIRECTION_RIGHT(3, "右");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_NET_ECK_PANEL_DIRECTION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_NET_ECK_PANEL_DIRECTION enumType : EM_NET_ECK_PANEL_DIRECTION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_NET_ECK_PANEL_DIRECTION enumType : EM_NET_ECK_PANEL_DIRECTION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_NET_ECK_PANEL_DIRECTION getEnum(int value) {
+ for (EM_NET_ECK_PANEL_DIRECTION e : EM_NET_ECK_PANEL_DIRECTION.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_NET_ECK_PANEL_DIRECTION.EM_NET_ECK_PANEL_DIRECTION_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NET_ECK_PANEL_ICON.java b/src/main/java/com/netsdk/lib/enumeration/EM_NET_ECK_PANEL_ICON.java
new file mode 100644
index 0000000..756850f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NET_ECK_PANEL_ICON.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 图标
+* @origin autoTool
+* @date 2023/06/27 16:54:41
+*/
+public enum EM_NET_ECK_PANEL_ICON {
+/**
+未知
+*/
+ EM_NET_ECK_PANEL_ICON_UNKNOWN(0, "未知"),
+/**
+禁止
+*/
+ EM_NET_ECK_PANEL_ICON_CLOSE(1, "禁止"),
+/**
+禁止
+*/
+ EM_NET_ECK_PANEL_ICON_CLOSECUSTOM(2, "禁止");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_NET_ECK_PANEL_ICON(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_NET_ECK_PANEL_ICON enumType : EM_NET_ECK_PANEL_ICON.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_NET_ECK_PANEL_ICON enumType : EM_NET_ECK_PANEL_ICON.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_NET_ECK_PANEL_ICON getEnum(int value) {
+ for (EM_NET_ECK_PANEL_ICON e : EM_NET_ECK_PANEL_ICON.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_NET_ECK_PANEL_ICON.EM_NET_ECK_PANEL_ICON_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NET_ECK_PANEL_ISBOLD.java b/src/main/java/com/netsdk/lib/enumeration/EM_NET_ECK_PANEL_ISBOLD.java
new file mode 100644
index 0000000..ea53522
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NET_ECK_PANEL_ISBOLD.java
@@ -0,0 +1,62 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 是否加粗
+* @origin autoTool
+* @date 2023/06/27 16:54:41
+*/
+public enum EM_NET_ECK_PANEL_ISBOLD {
+/**
+不加粗
+*/
+ EM_NET_ECK_PANEL_ISBOLD_FALSE(0, "不加粗"),
+/**
+加粗
+*/
+ EM_NET_ECK_PANEL_ISBOLD_TRUE(1, "加粗");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_NET_ECK_PANEL_ISBOLD(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_NET_ECK_PANEL_ISBOLD enumType : EM_NET_ECK_PANEL_ISBOLD.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_NET_ECK_PANEL_ISBOLD enumType : EM_NET_ECK_PANEL_ISBOLD.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_NET_ECK_PANEL_ISBOLD getEnum(int value) {
+ for (EM_NET_ECK_PANEL_ISBOLD e : EM_NET_ECK_PANEL_ISBOLD.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_NET_ECK_PANEL_ISBOLD.EM_NET_ECK_PANEL_ISBOLD_FALSE;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NET_ECK_PANEL_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_NET_ECK_PANEL_TYPE.java
new file mode 100644
index 0000000..1c72c0e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NET_ECK_PANEL_TYPE.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 显示内容的类型
+* @origin autoTool
+* @date 2023/06/27 16:54:40
+*/
+public enum EM_NET_ECK_PANEL_TYPE {
+/**
+整数、字母、空格
+*/
+ EM_NET_ECK_PANEL_TYPE_INTCHAR(0, "整数、字母、空格"),
+/**
+图形
+*/
+ EM_NET_ECK_PANEL_TYPE_IMAGE(1, "图形"),
+/**
+箭头
+*/
+ EM_NET_ECK_PANEL_TYPE_ARROWS(2, "箭头");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_NET_ECK_PANEL_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_NET_ECK_PANEL_TYPE enumType : EM_NET_ECK_PANEL_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_NET_ECK_PANEL_TYPE enumType : EM_NET_ECK_PANEL_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_NET_ECK_PANEL_TYPE getEnum(int value) {
+ for (EM_NET_ECK_PANEL_TYPE e : EM_NET_ECK_PANEL_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_NET_ECK_PANEL_TYPE.EM_NET_ECK_PANEL_TYPE_INTCHAR;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NET_NETWORK_CARD_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_NET_NETWORK_CARD_TYPE.java
new file mode 100644
index 0000000..4950091
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NET_NETWORK_CARD_TYPE.java
@@ -0,0 +1,103 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 网卡类型
+*/
+public enum EM_NET_NETWORK_CARD_TYPE
+{
+ /**
+ * 未知网卡类型
+ */
+ EM_NET_NETWORK_CARD_TYPE_UNKNOWN(0, "未知网卡类型"),
+ /**
+ * 普通有线网口
+ */
+ EM_NET_NETWORK_CARD_TYPE_NORMAL(1, "普通有线网口"),
+ /**
+ * 光口网络
+ */
+ EM_NET_NETWORK_CARD_TYPE_FIBER(2, "光口网络"),
+ /**
+ * 无线网络
+ */
+ EM_NET_NETWORK_CARD_TYPE_WIRELESS(3, "无线网络"),
+ /**
+ * TD
+ */
+ EM_NET_NETWORK_CARD_TYPE_TD_SCDMA(4, "TD"),
+ /**
+ * WCDMA
+ */
+ EM_NET_NETWORK_CARD_TYPE_WCDMA(5, "WCDMA"),
+ /**
+ * CDMA1X
+ */
+ EM_NET_NETWORK_CARD_TYPE_CDMA1X(6, "CDMA1X"),
+ /**
+ * CDMA2000
+ */
+ EM_NET_NETWORK_CARD_TYPE_CDMA2000(7, "CDMA2000"),
+ /**
+ * GSM
+ */
+ EM_NET_NETWORK_CARD_TYPE_GSM(8, "GSM"),
+ /**
+ * GPRS
+ */
+ EM_NET_NETWORK_CARD_TYPE_GPRS(9, "GPRS"),
+ /**
+ * EDGE
+ */
+ EM_NET_NETWORK_CARD_TYPE_EDGE(10, "EDGE"),
+ /**
+ * LTE
+ */
+ EM_NET_NETWORK_CARD_TYPE_LTE(11, "LTE"),
+ /**
+ * TD_LTE
+ */
+ EM_NET_NETWORK_CARD_TYPE_TD_LTE(12, "TD_LTE"),
+ /**
+ * FDD-LTE
+ */
+ EM_NET_NETWORK_CARD_TYPE_FDD_LTE(13, "FDD-LTE"),
+ /**
+ * EVDO
+ */
+ EM_NET_NETWORK_CARD_TYPE_EVDO(14, "EVDO");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_NET_NETWORK_CARD_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_NET_NETWORK_CARD_TYPE enumType : EM_NET_NETWORK_CARD_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_NET_NETWORK_CARD_TYPE enumType : EM_NET_NETWORK_CARD_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NET_NEXT_OPERATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_NET_NEXT_OPERATE.java
new file mode 100644
index 0000000..4fc9d66
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NET_NEXT_OPERATE.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 下一步的操作
+*/
+public enum EM_NET_NEXT_OPERATE
+{
+ /**
+ * 未知操作
+ */
+ EM_NET_NEXT_OPERATE_UNKNOWN(0, "未知操作"),
+ /**
+ * 安装App;
+ */
+ EM_NET_NEXT_OPERATE_INSTALL(1, "安装App;"),
+ /**
+ * 更新App;
+ */
+ EM_NET_NEXT_OPERATE_UPDATE(2, "更新App;");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_NET_NEXT_OPERATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_NET_NEXT_OPERATE enumType : EM_NET_NEXT_OPERATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_NET_NEXT_OPERATE enumType : EM_NET_NEXT_OPERATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NET_PLATE_COLOR_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_NET_PLATE_COLOR_TYPE.java
new file mode 100644
index 0000000..23627b8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NET_PLATE_COLOR_TYPE.java
@@ -0,0 +1,93 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 车牌颜色
+* @date 2022/05/30 14:16:15
+*/
+public enum EM_NET_PLATE_COLOR_TYPE {
+/**
+其他颜色
+*/
+ NET_PLATE_COLOR_OTHER(0, "其他颜色"),
+/**
+蓝色 Blue
+*/
+ NET_PLATE_COLOR_BLUE(1, "蓝色 Blue "),
+/**
+黄色 Yellow
+*/
+ NET_PLATE_COLOR_YELLOW(2, "黄色 Yellow "),
+/**
+白色 White
+*/
+ NET_PLATE_COLOR_WHITE(3, "白色 White "),
+/**
+黑色 Black
+*/
+ NET_PLATE_COLOR_BLACK(4, "黑色 Black "),
+/**
+黄底黑字 YellowbottomBlackText
+*/
+ NET_PLATE_COLOR_YELLOW_BOTTOM_BLACK_TEXT(5, "黄底黑字 YellowbottomBlackText "),
+/**
+蓝底白字 BluebottomWhiteText
+*/
+ NET_PLATE_COLOR_BLUE_BOTTOM_WHITE_TEXT(6, "蓝底白字 BluebottomWhiteText "),
+/**
+黑底白字 BlackBottomWhiteText
+*/
+ NET_PLATE_COLOR_BLACK_BOTTOM_WHITE_TEXT(7, "黑底白字 BlackBottomWhiteText "),
+/**
+渐变绿 ShadowGreen
+*/
+ NET_PLATE_COLOR_SHADOW_GREEN(8, "渐变绿 ShadowGreen "),
+/**
+黄绿双拼 YellowGreen
+*/
+ NET_PLATE_COLOR_YELLOW_GREEN(9, "黄绿双拼 YellowGreen ");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_NET_PLATE_COLOR_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_NET_PLATE_COLOR_TYPE enumType : EM_NET_PLATE_COLOR_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_NET_PLATE_COLOR_TYPE enumType : EM_NET_PLATE_COLOR_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_NET_PLATE_COLOR_TYPE getEnum(int value) {
+ for (EM_NET_PLATE_COLOR_TYPE e : EM_NET_PLATE_COLOR_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_NET_PLATE_COLOR_TYPE.NET_PLATE_COLOR_OTHER;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NET_PLATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_NET_PLATE_TYPE.java
new file mode 100644
index 0000000..0ab15b1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NET_PLATE_TYPE.java
@@ -0,0 +1,160 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 291189
+ * @description 车牌类型
+ * @date 2022/05/30 14:16:15
+ */
+public enum EM_NET_PLATE_TYPE {
+ /**
+
+ */
+ NET_PLATE_TYPE_UNKNOWN(0, ""),
+ /**
+ * Normal 蓝牌黑牌
+ */
+ NET_PLATE_TYPE_NORMAL(1, " Normal 蓝牌黑牌"),
+ /**
+ * Yellow 黄牌
+ */
+ NET_PLATE_TYPE_YELLOW(2, " Yellow 黄牌"),
+ /**
+ * DoubleYellow 双层黄尾牌
+ */
+ NET_PLATE_TYPE_DOUBLEYELLOW(3, " DoubleYellow 双层黄尾牌"),
+ /**
+ * Police 警牌
+ */
+ NET_PLATE_TYPE_POLICE(4, " Police 警牌"),
+ /**
+
+ */
+ NET_PLATE_TYPE_WJ(5, ""),
+ /**
+
+ */
+ NET_PLATE_TYPE_OUTERGUARD(6, ""),
+ /**
+
+ */
+ NET_PLATE_TYPE_DOUBLEOUTERGUARD(7, ""),
+ /**
+ * SAR 港澳特区号牌
+ */
+ NET_PLATE_TYPE_SAR(8, " SAR 港澳特区号牌"),
+ /**
+ * Trainning 教练车号牌
+ */
+ NET_PLATE_TYPE_TRAINNING(9, " Trainning 教练车号牌"),
+ /**
+ * Personal 个性号牌
+ */
+ NET_PLATE_TYPE_PERSONAL(10, " Personal 个性号牌"),
+ /**
+ * Agri 农用牌
+ */
+ NET_PLATE_TYPE_AGRI(11, " Agri 农用牌"),
+ /**
+ * Embassy 使馆号牌
+ */
+ NET_PLATE_TYPE_EMBASSY(12, " Embassy 使馆号牌"),
+ /**
+ * Moto 摩托车号牌
+ */
+ NET_PLATE_TYPE_MOTO(13, " Moto 摩托车号牌"),
+ /**
+ * Tractor 拖拉机号牌
+ */
+ NET_PLATE_TYPE_TRACTOR(14, " Tractor 拖拉机号牌"),
+ /**
+ * OfficialCar 公务车
+ */
+ NET_PLATE_TYPE_OFFICIALCAR(15, " OfficialCar 公务车"),
+ /**
+ * PersonalCar 私家车
+ */
+ NET_PLATE_TYPE_PERSONALCAR(16, " PersonalCar 私家车"),
+ /**
+
+ */
+ NET_PLATE_TYPE_WARCAR(17, ""),
+ /**
+ * Other 其他号牌
+ */
+ NET_PLATE_TYPE_OTHER(18, " Other 其他号牌"),
+ /**
+ * Civilaviation 民航号牌
+ */
+ NET_PLATE_TYPE_CIVILAVIATION(19, " Civilaviation 民航号牌"),
+ /**
+ * Black 黑牌
+ */
+ NET_PLATE_TYPE_BLACK(20, " Black 黑牌"),
+ /**
+ * PureNewEnergyMicroCar 纯电动新能源小车
+ */
+ NET_PLATE_TYPE_PURENEWENERGYMICROCAR(21, " PureNewEnergyMicroCar 纯电动新能源小车"),
+ /**
+ * MixedNewEnergyMicroCar 混合新能源小车
+ */
+ NET_PLATE_TYPE_MIXEDNEWENERGYMICROCAR(22, " MixedNewEnergyMicroCar 混合新能源小车"),
+ /**
+ * PureNewEnergyLargeCar 纯电动新能源大车
+ */
+ NET_PLATE_TYPE_PURENEWENERGYLARGECAR(23, " PureNewEnergyLargeCar 纯电动新能源大车"),
+ /**
+ * MixedNewEnergyLargeCar 混合新能源大车
+ */
+ NET_PLATE_TYPE_MIXEDNEWENERGYLARGECAR(24, " MixedNewEnergyLargeCar 混合新能源大车"),
+ /**
+ * Hongkong 香港号牌
+ */
+ NET_PLATE_TYPE_HONGKONG(25, " Hongkong 香港号牌"),
+ /**
+ * Makao 澳门号牌
+ */
+ NET_PLATE_TYPE_MAKAO(26, " Makao 澳门号牌");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_NET_PLATE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_NET_PLATE_TYPE enumType : EM_NET_PLATE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_NET_PLATE_TYPE enumType : EM_NET_PLATE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_NET_PLATE_TYPE getEnum(int value) {
+ for (EM_NET_PLATE_TYPE e : EM_NET_PLATE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_NET_PLATE_TYPE.NET_PLATE_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NET_QUERY_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_NET_QUERY_TYPE.java
new file mode 100644
index 0000000..094e2cd
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NET_QUERY_TYPE.java
@@ -0,0 +1,62 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 获取网卡信息类型 CLIENT_QueryNetStat 接口使用
+* @origin autoTool
+* @date 2023/06/16 16:38:23
+*/
+public enum EM_NET_QUERY_TYPE {
+/**
+获取协议栈统计数据,(输入结构体NET_IN_NETAPP_NET_DATA_STAT,输出结构体NET_OUT_NETAPP_NET_DATA_STAT)
+*/
+ NET_APP_DATA_STAT(0, "获取协议栈统计数据,(输入结构体NET_IN_NETAPP_NET_DATA_STAT,输出结构体NET_OUT_NETAPP_NET_DATA_STAT)"),
+/**
+获取物理链路状态,(输入结构体NET_IN_NETAPP_LINK_STATUS,输出结构体NET_OUT_NETAPP_LINK_STATUS)
+*/
+ NET_APP_LINK_STAT(1, "获取物理链路状态,(输入结构体NET_IN_NETAPP_LINK_STATUS,输出结构体NET_OUT_NETAPP_LINK_STATUS)");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_NET_QUERY_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_NET_QUERY_TYPE enumType : EM_NET_QUERY_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_NET_QUERY_TYPE enumType : EM_NET_QUERY_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_NET_QUERY_TYPE getEnum(int value) {
+ for (EM_NET_QUERY_TYPE e : EM_NET_QUERY_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_NET_QUERY_TYPE.NET_APP_DATA_STAT;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NET_SERVER_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_NET_SERVER_TYPE.java
new file mode 100644
index 0000000..6079d5e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NET_SERVER_TYPE.java
@@ -0,0 +1,64 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 设备接入网络服务类型
+ * @date 2023/04/20 08:58:40
+ */
+public enum EM_NET_SERVER_TYPE {
+ /**
+ * 未知
+ */
+ EM_NET_SERVER_TYPE_UNKNOWN(-1, "未知"),
+ /**
+ * 自动
+ */
+ EM_NET_SERVER_TYPE_AUTO(0, "自动"),
+ /**
+ * TCP
+ */
+ EM_NET_SERVER_TYPE_TCP(1, "TCP"),
+ /**
+ * UDP
+ */
+ EM_NET_SERVER_TYPE_UDP(2, "UDP"),
+ /**
+ * 组播
+ */
+ EM_NET_SERVER_TYPE_MULTICAST(3, "组播");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_NET_SERVER_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_NET_SERVER_TYPE enumType : EM_NET_SERVER_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_NET_SERVER_TYPE enumType : EM_NET_SERVER_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NET_TRAFFIC_CAR_CONTROL_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_NET_TRAFFIC_CAR_CONTROL_TYPE.java
new file mode 100644
index 0000000..7c9e3d3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NET_TRAFFIC_CAR_CONTROL_TYPE.java
@@ -0,0 +1,58 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 布控类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_NET_TRAFFIC_CAR_CONTROL_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 其他
+ */
+ public static final int NET_CAR_CONTROL_OTHER = 0;
+ /**
+ * 过期未检 "OverdueNoCheck"
+ */
+ public static final int NET_CAR_CONTROL_OVERDUE_NO_CHECK = 1;
+ /**
+ * "BrigandageCar"
+ */
+ public static final int NET_CAR_CONTROL_BRIGANDAGE_CAR = 2;
+ /**
+ * 违章 "Breaking"
+ */
+ public static final int NET_CAR_CONTROL_BREAKING = 3;
+ /**
+ * "CausetroubleEscape"
+ */
+ public static final int NET_CAR_CONTROL_CAUSETROUBLE_ESCAPE = 4;
+ /**
+ * 停车欠费 "OverdueParking"
+ */
+ public static final int NET_CAR_CONTROL_CAUSETROUBLE_OVERDUEPARKING = 5;
+ /**
+ * 假牌车 "CounterfeitPlateCar"
+ */
+ public static final int NET_CAR_CONTROL_COUNTERFEI_PLATE_CAR = 6;
+ /**
+ * 套牌车 "FakePlateCar"
+ */
+ public static final int NET_CAR_CONTROL_FAKE_PLATE_CAR = 7;
+ /**
+ * 重点车辆 "FocalCar"
+ */
+ public static final int NET_CAR_CONTROL_FOCAL_CAR = 8;
+ /**
+ * 保障车辆 "GuaranteeCar"
+ */
+ public static final int NET_CAR_CONTROL_GUARANTEE_CAR = 9;
+ /**
+ * 关注车辆 "FollowCar"
+ */
+ public static final int NET_CAR_CONTROL_FOLLOW_CAR = 10;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NET_UPGRADE_ACTION.java b/src/main/java/com/netsdk/lib/enumeration/EM_NET_UPGRADE_ACTION.java
new file mode 100644
index 0000000..1ccd2d1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NET_UPGRADE_ACTION.java
@@ -0,0 +1,63 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 支持的操作
+*/
+public enum EM_NET_UPGRADE_ACTION
+{
+ /**
+ * 未知操作;
+ */
+ EM_NET_UPGRADE_ACTION_UNKNOWN(0, "未知操作;"),
+ /**
+ * 安装APP;
+ */
+ EM_NET_UPGRADE_ACTION_INSTALLAPP(1, "安装APP;"),
+ /**
+ * 更新APP;
+ */
+ EM_NET_UPGRADE_ACTION_UPDATEAPP(2, "更新APP;"),
+ /**
+ * 安装主程序;
+ */
+ EM_NET_UPGRADE_ACTION_UPDATEMAINFIRMWARE(3, "安装主程序;"),
+ /**
+ * 更新证书;
+ */
+ EM_NET_UPGRADE_ACTION_UPDATELICENSE(4, "更新证书;");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_NET_UPGRADE_ACTION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_NET_UPGRADE_ACTION enumType : EM_NET_UPGRADE_ACTION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_NET_UPGRADE_ACTION enumType : EM_NET_UPGRADE_ACTION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NET_UPGRADE_INSTALL_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_NET_UPGRADE_INSTALL_TYPE.java
new file mode 100644
index 0000000..0e31897
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NET_UPGRADE_INSTALL_TYPE.java
@@ -0,0 +1,67 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_UpgraderInstall接口的 操作类型
+*/
+public enum EM_NET_UPGRADE_INSTALL_TYPE
+{
+ /**
+ * 升级准备 (对应结构体 NET_IN_INSTALL_PREPAREEX, NET_OUT_INSTALL_PREPAREEX)
+ */
+ EM_UPGRADER_INSTALL_PREPAREEX(0, "升级准备 (对应结构体 NET_IN_INSTALL_PREPAREEX, NET_OUT_INSTALL_PREPAREEX)"),
+ /**
+ * 升级数据 (对应结构体 NET_IN_INSTALL_APPEND_DATA, NET_OUT_INSTALL_APPEND_DATA)
+ */
+ EM_UPGRADER_INSTALL_APPEND_DATA(1, "升级数据 (对应结构体 NET_IN_INSTALL_APPEND_DATA, NET_OUT_INSTALL_APPEND_DATA)"),
+ /**
+ * 执行升级 (对应结构体 NET_IN_INSTALL_EXECUTE, NET_OUT_INSTALL_EXECUTE)
+ */
+ EM_UPGRADER_INSTALL_EXECUTE(2, "执行升级 (对应结构体 NET_IN_INSTALL_EXECUTE, NET_OUT_INSTALL_EXECUTE)"),
+ /**
+ * 获取升级状态 (对应结构体 NET_IN_INSTALL_GETSTATE, NET_OUT_INSTALL_GETSTATE)
+ */
+ EM_UPGRADER_INSTALL_GETSTATE(3, "获取升级状态 (对应结构体 NET_IN_INSTALL_GETSTATE, NET_OUT_INSTALL_GETSTATE)"),
+ /**
+ * 取消升级 (对应结构体 NET_IN_INSTALL_CANCEL, NET_OUT_INSTALL_CANCEL)
+ */
+ EM_UPGRADER_INSTALL_CANCEL(4, "取消升级 (对应结构体 NET_IN_INSTALL_CANCEL, NET_OUT_INSTALL_CANCEL)"),
+ /**
+ * 指定升级包地址进行升级 (对应结构体 NET_IN_INSTALL_FIRMWAREEX, NET_OUT_INSTALL_FIRMWAREEX)
+ */
+ EM_UPGRADER_INSTALL_FIRMWAREEX(5, "指定升级包地址进行升级 (对应结构体 NET_IN_INSTALL_FIRMWAREEX, NET_OUT_INSTALL_FIRMWAREEX)");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_NET_UPGRADE_INSTALL_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_NET_UPGRADE_INSTALL_TYPE enumType : EM_NET_UPGRADE_INSTALL_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_NET_UPGRADE_INSTALL_TYPE enumType : EM_NET_UPGRADE_INSTALL_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NET_UPGRADE_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/EM_NET_UPGRADE_STATUS.java
new file mode 100644
index 0000000..f9ae969
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NET_UPGRADE_STATUS.java
@@ -0,0 +1,99 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 升级状态
+*/
+public enum EM_NET_UPGRADE_STATUS
+{
+ /**
+ * 未知状态
+ */
+ EM_NET_UPGRADE_UNKNOWN(0, "未知状态"),
+ /**
+ * 准备升级;
+ */
+ EM_NET_UPGRADE_PREPARING(1, "准备升级;"),
+ /**
+ * 正在下载数据;
+ */
+ EM_NET_UPGRADE_DOWNLOADING(2, "正在下载数据;"),
+ /**
+ * 下载失败;
+ */
+ EM_NET_UPGRADE_DOWNLOADFAILED(3, "下载失败;"),
+ /**
+ * 正在升级;
+ */
+ EM_NET_UPGRADE_UPGRADING(4, "正在升级;"),
+ /**
+ * 升级包不正确;
+ */
+ EM_NET_UPGRADE_INVALID(5, "升级包不正确;"),
+ /**
+ * 升级失败;
+ */
+ EM_NET_UPGRADE_FAILED(6, "升级失败;"),
+ /**
+ * 升级成功;
+ */
+ EM_NET_UPGRADE_SUCCEEDED(7, "升级成功;"),
+ /**
+ * 取消升级;
+ */
+ EM_NET_UPGRADE_CANCELLED(8, "取消升级;"),
+ /**
+ * 内存不够;
+ */
+ EM_NET_UPGRADE_NOTENOUGHMEMORY(9, "内存不够;"),
+ /**
+ * 应用程序包不匹配;
+ */
+ EM_NET_UPGRADE_FILEUNMATCH(10, "应用程序包不匹配;"),
+ /**
+ * 版本不匹配;
+ */
+ EM_NET_UPGRADE_UNMATCHVERSION(11, "版本不匹配;"),
+ /**
+ * 应用程序版本相同;
+ */
+ EM_NET_UPGRADE_SAMEASOLDAPP(12, "应用程序版本相同;"),
+ /**
+ * 应用程序已存在;
+ */
+ EM_NET_UPGRADE_APPEXIST(13, "应用程序已存在;");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_NET_UPGRADE_STATUS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_NET_UPGRADE_STATUS enumType : EM_NET_UPGRADE_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_NET_UPGRADE_STATUS enumType : EM_NET_UPGRADE_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NET_VIFORMAT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_NET_VIFORMAT_TYPE.java
new file mode 100644
index 0000000..ef6adc1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NET_VIFORMAT_TYPE.java
@@ -0,0 +1,68 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 采集源分辨率
+ * @date 2022/07/22 13:41:06
+ */
+public enum EM_NET_VIFORMAT_TYPE {
+ /**
+ * 未知
+ */
+ EM_NET_VIFORMAT_TYPE_UNKNOWN(-1, "未知"),
+ /**
+ * 表示正常分辨率
+ */
+ EM_NET_VIFORMAT_TYPE_NORMAL(0, "表示正常分辨率"),
+ /**
+ * 表示不支持的分辨率
+ */
+ EM_NET_VIFORMAT_TYPE_UNSUPPORT(1, "表示不支持的分辨率"),
+ /**
+ * 表示未接采集源
+ */
+ EM_NET_VIFORMAT_TYPE_NOT_CONNECTED(2, "表示未接采集源");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_NET_VIFORMAT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_NET_VIFORMAT_TYPE enumType : EM_NET_VIFORMAT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_NET_VIFORMAT_TYPE enumType : EM_NET_VIFORMAT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+ public static EM_NET_VIFORMAT_TYPE getEnum(int value) {
+ for (EM_NET_VIFORMAT_TYPE e : EM_NET_VIFORMAT_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_NET_VIFORMAT_TYPE.EM_NET_VIFORMAT_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NET_WIEGAND_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_NET_WIEGAND_MODE.java
new file mode 100644
index 0000000..3bcb9c3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NET_WIEGAND_MODE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 工作模式
+* @date 2022/03/08 09:56:02
+*/
+public enum EM_NET_WIEGAND_MODE {
+/**
+未知
+*/
+ EM_NET_WIEGAND_TRANSFER_MODE_UNKNOWN(-1, "未知"),
+/**
+韦根输入
+*/
+ EM_NET_WIEGAND_TRANSFER_MODE_INPUT(0, "韦根输入"),
+/**
+韦根输出
+*/
+ EM_NET_WIEGAND_TRANSFER_MODE_OUTPUT(1, "韦根输出");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_NET_WIEGAND_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_NET_WIEGAND_MODE enumType : EM_NET_WIEGAND_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_NET_WIEGAND_MODE enumType : EM_NET_WIEGAND_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_NET_WIEGAND_MODE getEnum(int value) {
+ for (EM_NET_WIEGAND_MODE e : EM_NET_WIEGAND_MODE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_NET_WIEGAND_MODE.EM_NET_WIEGAND_TRANSFER_MODE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NET_WIEGAND_OUT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_NET_WIEGAND_OUT_TYPE.java
new file mode 100644
index 0000000..f7ef6a4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NET_WIEGAND_OUT_TYPE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 输出类型
+* @date 2022/03/08 09:56:03
+*/
+public enum EM_NET_WIEGAND_OUT_TYPE {
+/**
+未知
+*/
+ EM_NET_WIEGAND_OUT_TYPE_UNKNOWN(-1, "未知"),
+/**
+输出ID
+*/
+ EM_NET_WIEGAND_OUT_TYPE_ID(0, "输出ID"),
+/**
+输出卡号
+*/
+ EM_NET_WIEGAND_OUT_TYPE_CARD_NO(1, "输出卡号");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_NET_WIEGAND_OUT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_NET_WIEGAND_OUT_TYPE enumType : EM_NET_WIEGAND_OUT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_NET_WIEGAND_OUT_TYPE enumType : EM_NET_WIEGAND_OUT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_NET_WIEGAND_OUT_TYPE getEnum(int value) {
+ for (EM_NET_WIEGAND_OUT_TYPE e : EM_NET_WIEGAND_OUT_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_NET_WIEGAND_OUT_TYPE.EM_NET_WIEGAND_OUT_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NET_WIEGAND_TRANSFER_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_NET_WIEGAND_TRANSFER_MODE.java
new file mode 100644
index 0000000..3c86af7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NET_WIEGAND_TRANSFER_MODE.java
@@ -0,0 +1,77 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 传输模式
+* @date 2022/03/08 09:56:03
+*/
+public enum EM_NET_WIEGAND_TRANSFER_MODE {
+/**
+未知
+*/
+ EM_NET_WIEGAND_MODE_UNKNOWN(-1, "未知"),
+/**
+韦根34bit传输,4字节卡号,2Bit校验;
+*/
+ EM_NET_WIEGAND_MODE_BIT_34(0, "韦根34bit传输,4字节卡号,2Bit校验;"),
+/**
+韦根66bit传输,8字节卡号,2Bit校验;
+*/
+ EM_NET_WIEGAND_MODE_BIT_66(1, "韦根66bit传输,8字节卡号,2Bit校验;"),
+/**
+韦根26bit传输,3字节卡号,2Bit校验;
+*/
+ EM_NET_WIEGAND_MODE_BIT_26(2, "韦根26bit传输,3字节卡号,2Bit校验;"),
+/**
+韦根32bit传输,4字节卡号,无校验位
+*/
+ EM_NET_WIEGAND_MODE_BIT_32(3, "韦根32bit传输,4字节卡号,无校验位"),
+/**
+韦根42bit传输,5字节卡号,2Bit校验
+*/
+ EM_NET_WIEGAND_MODE_BIT_42(4, "韦根42bit传输,5字节卡号,2Bit校验");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_NET_WIEGAND_TRANSFER_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_NET_WIEGAND_TRANSFER_MODE enumType : EM_NET_WIEGAND_TRANSFER_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_NET_WIEGAND_TRANSFER_MODE enumType : EM_NET_WIEGAND_TRANSFER_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_NET_WIEGAND_TRANSFER_MODE getEnum(int value) {
+ for (EM_NET_WIEGAND_TRANSFER_MODE e : EM_NET_WIEGAND_TRANSFER_MODE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_NET_WIEGAND_TRANSFER_MODE.EM_NET_WIEGAND_MODE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NET_WINDOW_TOUR_ACTION.java b/src/main/java/com/netsdk/lib/enumeration/EM_NET_WINDOW_TOUR_ACTION.java
new file mode 100644
index 0000000..ce090fb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NET_WINDOW_TOUR_ACTION.java
@@ -0,0 +1,51 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 窗口轮巡动作
+*/
+public enum EM_NET_WINDOW_TOUR_ACTION
+{
+ /**
+ * 开始
+ */
+ EM_NET_WND_TOUR_ACTION_START(0, "开始"),
+ /**
+ * 停止
+ */
+ EM_NET_WND_TOUR_ACTION_STOP(1, "停止");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_NET_WINDOW_TOUR_ACTION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_NET_WINDOW_TOUR_ACTION enumType : EM_NET_WINDOW_TOUR_ACTION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_NET_WINDOW_TOUR_ACTION enumType : EM_NET_WINDOW_TOUR_ACTION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NEWDOWNCLOTHES_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_NEWDOWNCLOTHES_TYPE.java
new file mode 100644
index 0000000..20ca1a4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NEWDOWNCLOTHES_TYPE.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 新下衣类型
+*/
+public enum EM_NEWDOWNCLOTHES_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_NEWDOWNCLOTHES_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 长裤
+ */
+ EM_NEWDOWNCLOTHES_TYPE_TROUSERS(1, "长裤"),
+ /**
+ * 短裤
+ */
+ EM_NEWDOWNCLOTHES_TYPE_SHORTS(2, "短裤"),
+ /**
+ * 裙子
+ */
+ EM_NEWDOWNCLOTHES_TYPE_SKIRT(3, "裙子");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_NEWDOWNCLOTHES_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_NEWDOWNCLOTHES_TYPE enumType : EM_NEWDOWNCLOTHES_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_NEWDOWNCLOTHES_TYPE enumType : EM_NEWDOWNCLOTHES_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NEWUPCLOTHES_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_NEWUPCLOTHES_TYPE.java
new file mode 100644
index 0000000..105f34d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NEWUPCLOTHES_TYPE.java
@@ -0,0 +1,99 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 新上衣类型
+*/
+public enum EM_NEWUPCLOTHES_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_NEWUPCLOTHES_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 长袖
+ */
+ EM_NEWUPCLOTHES_TYPE_LONG_SLEEVE(1, "长袖"),
+ /**
+ * 短袖
+ */
+ EM_NEWUPCLOTHES_TYPE_SHORT_SLEEVE(2, "短袖"),
+ /**
+ * 长款大衣
+ */
+ EM_NEWUPCLOTHES_TYPE_LONGCOAT(3, "长款大衣"),
+ /**
+ * 夹克及牛仔服
+ */
+ EM_NEWUPCLOTHES_TYPE_JACKET_AND_JEANS(4, "夹克及牛仔服"),
+ /**
+ * T恤
+ */
+ EM_NEWUPCLOTHES_TYPE_TSHIRT(5, "T恤"),
+ /**
+ * 运动装
+ */
+ EM_NEWUPCLOTHES_TYPE_SPORTWEAR(6, "运动装"),
+ /**
+ * 羽绒服
+ */
+ EM_NEWUPCLOTHES_TYPE_DOWNJACKETS(7, "羽绒服"),
+ /**
+ * 衬衫
+ */
+ EM_NEWUPCLOTHES_TYPE_SHIRT(8, "衬衫"),
+ /**
+ * 连衣裙
+ */
+ EM_NEWUPCLOTHES_TYPE_DRESS(9, "连衣裙"),
+ /**
+ * 西装
+ */
+ EM_NEWUPCLOTHES_TYPE_SUIT(10, "西装"),
+ /**
+ * 毛衣
+ */
+ EM_NEWUPCLOTHES_TYPE_SWEATER(11, "毛衣"),
+ /**
+ * 无袖
+ */
+ EM_NEWUPCLOTHES_TYPE_SLEEVELESS(12, "无袖"),
+ /**
+ * 背心
+ */
+ EM_NEWUPCLOTHES_TYPE_VEST(13, "背心");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_NEWUPCLOTHES_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_NEWUPCLOTHES_TYPE enumType : EM_NEWUPCLOTHES_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_NEWUPCLOTHES_TYPE enumType : EM_NEWUPCLOTHES_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NEW_CONFIG.java b/src/main/java/com/netsdk/lib/enumeration/EM_NEW_CONFIG.java
new file mode 100644
index 0000000..0873897
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NEW_CONFIG.java
@@ -0,0 +1,399 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.structure.CFG_MOTION_INFO;
+import com.sun.jna.ptr.IntByReference;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 配置命令 对应接口{@link NetSDKLib#CLIENT_GetNewDevConfig(NetSDKLib.LLong, String, int,
+ * byte[], int, IntByReference, int)} {@link NetSDKLib#CLIENT_SetNewDevConfig(NetSDKLib.LLong,
+ * String, int, byte[], int, IntByReference, IntByReference, int)}
+ * @date 2020/11/9
+ */
+public enum EM_NEW_CONFIG {
+ /** 动态检测报警配置(对应 {@link CFG_MOTION_INFO}) */
+ CFG_CMD_MOTIONDETECT("MotionDetect"),
+ /** 视频编码物件配置(对应 {@link NetSDKLib.NET_CFG_VideoWidget} ) */
+ CFG_CMD_VIDEOWIDGET("VideoWidget"),
+ /** 视频分析全局配置(对应{@link NetSDKLib.CFG_ANALYSEGLOBAL_INFO}) */
+ CFG_CMD_ANALYSEGLOBAL("VideoAnalyseGlobal"),
+ /** 物体的检测模块配置(对应 {@link NetSDKLib.CFG_ANALYSEMODULES_INFO}) */
+ CFG_CMD_ANALYSEMODULE("VideoAnalyseModule"),
+ /** 视频分析规则配置(对应 {@link NetSDKLib.CFG_ANALYSERULES_INFO}) */
+ CFG_CMD_ANALYSERULE("VideoAnalyseRule"),
+ /** 视频输入前端选项(对应{@link NetSDKLib.CFG_VIDEO_IN_OPTIONS}) */
+ CFG_CMD_VIDEOINOPTIONS("VideoInOptions"),
+ /** 雨刷模式相关配置(对应{@link NetSDKLib.CFG_RAINBRUSHMODE_INFO}数组) */
+ CFG_CMD_RAINBRUSHMODE("RainBrushMode"),
+ /** 雨刷配置(对应{@link NetSDKLib.CFG_RAINBRUSH_INFO}) */
+ CFG_CMD_RAINBRUSH("RainBrush"),
+ /** 图像通道属性配置(对应{@link NetSDKLib.CFG_ENCODE_INFO}) */
+ CFG_CMD_ENCODE("Encode"),
+ /** 云台通道变倍配置(对应{@link NetSDKLib.CFG_VIDEO_IN_ZOOM}) */
+ CFG_CMD_VIDEO_IN_ZOOM("VideoInZoom"),
+ /** 远程设备信息(对应 {@link NetSDKLib.AV_CFG_RemoteDevice} 数组), 通道无关) */
+ CFG_CMD_REMOTEDEVICE("RemoteDevice"),
+ /** 视频分析资源配置(对应 {@link NetSDKLib.CFG_ANALYSESOURCE_INFO}) */
+ CFG_CMD_ANALYSESOURCE("VideoAnalyseSource"),
+ /** 智能交通全局配置({@link NetSDKLib.CFG_TRAFFICGLOBAL_INFO}) */
+ CFG_CMD_TRAFFICGLOBAL("TrafficGlobal"),
+ /** 录像模式(对应 {@link NetSDKLib.AV_CFG_RecordMode} ) */
+ CFG_CMD_RECORDMODE("RecordMode"),
+ /** 警灯配置(对应 {@link NetSDKLib.CFG_ALARMLAMP_INFO}) */
+ CFG_CMD_ALARMLAMP("AlarmLamp"),
+ /** 报警输出通道配置(对应 {@link NetSDKLib.CFG_ALARMOUT_INFO} ) */
+ CFG_CMD_ALARMOUT("AlarmOut"),
+ /** 智能交通抓拍(对应 {@link NetSDKLib.CFG_TRAFFICSNAPSHOT_INFO} ) */
+ CFG_CMD_INTELLECTIVETRAFFIC("TrafficSnapshot"),
+ /** 智能交通抓拍( {@link NetSDKLib.CFG_TRAFFICSNAPSHOT_NEW_INFO} ) */
+ CFG_CMD_TRAFFICSNAPSHOT_MULTI("TrafficSnapshotNew"),
+ /** 时间同步服务器(对应 {@link NetSDKLib.CFG_NTP_INFO} ) */
+ CFG_CMD_NTP("NTP"),
+ /** 外部输入报警配置(对应 CFG_ALARMIN_INFO) */
+ CFG_CMD_ALARMINPUT("Alarm"),
+ /** 网络协议配置(对应 {@link NetSDKLib.CFG_DVRIP_INFO}) */
+ CFG_CMD_DVRIP("DVRIP"),
+ /** 网络配置(对应 {@link NetSDKLib.CFG_NETWORK_INFO}) */
+ CFG_CMD_NETWORK("Network"),
+ /** 电视墙配置(对应 {@link NetSDKLib.AV_CFG_MonitorWall} 数组), 通道无关) */
+ CFG_CMD_MONITORWALL("MonitorWall"),
+ /** RTMP配置(对应 {@link NetSDKLib.CFG_RTMP_INFO}) */
+ CFG_CMD_RTMP("RTMP"),
+ /** 门禁事件配置(对应 {@link NetSDKLib.CFG_ACCESS_EVENT_INFO} 数组) */
+ CFG_CMD_ACCESS_EVENT("AccessControl"),
+ /** 门禁刷卡时间段(对应 {@link NetSDKLib.CFG_ACCESS_TIMESCHEDULE_INFO}) */
+ CFG_CMD_ACCESSTIMESCHEDULE("AccessTimeSchedule"),
+ /** 普通配置 (对应 {@link NetSDKLib.CFG_DEV_DISPOSITION_INFO}) */
+ CFG_CMD_DEV_GENERRAL("General"),
+ /** 视频诊断参数表({@link NetSDKLib.CFG_VIDEODIAGNOSIS_PROFILE}) */
+ CFG_CMD_VIDEODIAGNOSIS_PROFILE("VideoDiagnosisProfile"),
+ /** 视频诊断任务表({@link NetSDKLib.CFG_VIDEODIAGNOSIS_TASK}) */
+ CFG_CMD_VIDEODIAGNOSIS_TASK("VideoDiagnosisTask"),
+ /** 视频诊断任务表({@link NetSDKLib.CFG_VIDEODIAGNOSIS_TASK}) */
+ CFG_CMD_VIDEODIAGNOSIS_TASK_ONE("VideoDiagnosisTask.x"),
+ /** 视频诊断计划表({@link NetSDKLib.CFG_VIDEODIAGNOSIS_PROJECT}) */
+ CFG_CMD_VIDEODIAGNOSIS_PROJECT("VideoDiagnosisProject"),
+ /** 热成像摄像头属性配置({@link NetSDKLib.CFG_THERMOGRAPHY_INFO}) */
+ CFG_CMD_THERMO_GRAPHY("ThermographyOptions"),
+ /** 热成像测温规则配置(对应 {@link NetSDKLib.CFG_RADIOMETRY_RULE_INFO}) */
+ CFG_CMD_THERMOMETRY_RULE("ThermometryRule"),
+ /** 温度统计配置({@link NetSDKLib.CFG_TEMP_STATISTICS_INFO}) */
+ CFG_CMD_TEMP_STATISTICS("TemperatureStatistics"),
+ /** 热成像测温全局配置({@link NetSDKLib.CFG_THERMOMETRY_INFO}) */
+ CFG_CMD_THERMOMETRY("HeatImagingThermometry"),
+ /** 通道录像组状态(对应 {@link NetSDKLib.CFG_DEVRECORDGROUP_INFO}) */
+ CFG_CMD_DEVRECORDGROUP("DevRecordGroup"),
+ /** 存储组信息(对应 {@link NetSDKLib.AV_CFG_StorageGroup}数组), 通道无关) */
+ CFG_CMD_STORAGEGROUP("StorageGroup"),
+ /** 云台巡航路径配置(对应 {@link NetSDKLib.CFG_PTZTOUR_INFO}) */
+ CFG_CMD_PTZTOUR("PtzTour"),
+ /** 云台预置点配置(对应结构 {@link NetSDKLib.PTZ_PRESET_INFO}) */
+ CFG_CMD_PTZ_PRESET("PtzPreset"),
+ /** 输入通道配置(对应 {@link NetSDKLib.CFG_VIDEO_IN_INFO}) */
+ CFG_CMD_VIDEOIN("VideoIn"),
+ /** 通道名称(对应 {@link NetSDKLib.AV_CFG_ChannelName}) */
+ CFG_CMD_CHANNELTITLE("ChannelTitle"),
+ /** 设备通过Wifi模块扫描周围无线设备配置({@link NetSDKLib.CFG_WIFI_SEARCH_INFO}) */
+ CFG_CMD_WIFI_SEARCH("AroudWifiSearch"),
+ /** 定时录像配置(对应 {@link NetSDKLib.CFG_RECORD_INFO}) */
+ CFG_CMD_RECORD("Record"),
+ /** 检测采集设备配置({@link NetSDKLib.CFG_SCADA_DEV_INFO}) */
+ CFG_CMD_SCADA_DEV("SCADADev"),
+ /** 告警屏蔽规则( CFG_ALARM_SHIELD_RULE_INFO) */
+ CFG_CMD_ALARM_SHIELD_RULE("AlarmShieldRule"),
+ /** 刻录配置(对应 CFG_JUDICATURE_INFO) */
+ CFG_CMD_JUDICATURE("Judicature"),
+ /** 云台配置(对应 CFG_PTZ_INFO) */
+ CFG_CMD_PTZ("Ptz"),
+ /** 云台定时动作配置(对应 CFG_PTZ_AUTOMOVE_INFO)*/
+ CFG_CMD_PTZ_AUTO_MOVEMENT("PtzAutoMovement"),
+ /** 多人多开门方式组合配置(CFG_OPEN_DOOR_GROUP_INFO) */
+ CFG_CMD_OPEN_DOOR_GROUP("OpenDoorGroup"),
+ /** 车位指示灯本机配置(对应 CFG_PARKING_SPACE_LIGHT_GROUP_INFO_ALL) */
+ CFG_CMD_PARKING_SPACE_LIGHT_GROUP("ParkingSpaceLightGroup"),
+ /** 灯光设备配置 (对应结构体 CFG_LIGHT_INFO) */
+ CFG_CMD_LIGHT("Light"),
+ /** 灯光设置(CFG_LIGHTING_INFO) */
+ CFG_CMD_LIGHTING("Lighting"),
+ /** 合成通道配置(对应 {@link NetSDKLib.CFG_COMPOSE_CHANNEL}) */
+ CFG_CMD_COMPOSE_CHANNEL("ComposeChannel"),
+ /** 审讯画中画(对应 CFG_PICINPIC_INFO)改为数组方式,兼容以前单个配置,根据长度区分 */
+ CFG_CMD_PICINPIC("PicInPic"),
+ /** 空闲动作配置(CFG_IDLE_MOTION_INFO) */
+ CFG_CMD_IDLEMOTION_INFO("IdleMotion"),
+ /** 语音激励(对应 {@link com.netsdk.lib.structure.CFG_AUDIO_SPIRIT}) */
+ CFG_CMD_AUDIO_SPIRIT("AudioSpirit"),
+ /** 设备安装位置的GPS坐标信息(对应 {@link com.netsdk.lib.structure.CFG_DEVLOCATION_INFO}) */
+ CFG_CMD_DEVLOCATION("DevLocation"),
+ /** 设备参数标定配置(对应 {@link com.netsdk.lib.structure.CFG_LOCATION_CALIBRATE_INFO}) */
+ CFG_CMD_LOCATION_CALIBRATE("LocationCalibrate"),
+ /** 门禁基本配置(对应 {@link com.netsdk.lib.structure.CFG_ACCESS_GENERAL_INFO}) */
+ CFG_CMD_ACCESS_GENERAL("AccessControlGeneral"),
+ /** 无线网络连接设置(对应 CFG_WIRELESS_INFO) */
+ CFG_CMD_WIRELESS("Wireless"),
+ /** 报警服务器配置(对应 CFG_ALARMCENTER_INFO) */
+ CFG_CMD_ALARMSERVER("AlarmServer"),
+ /** 报警全局配置(对应 CFG_COMMGLOBAL_INFO) */
+ CFG_CMD_COMMGLOBAL("CommGlobal"),
+ /** 模拟量报警通道配置(对应 CFG_ANALOGALARM_INFO) */
+ CFG_CMD_ANALOGALARM("AnalogAlarm"),
+ /** 警号配置(对应 CFG_ALARMBELL_INFO) */
+ CFG_CMD_ALARMBELL("AlarmBell"),
+ /** 移动相关业务配置(对应 CFG_MOBILE_INFO) */
+ CFG_CMD_MOBILE("Mobile"),
+ /** // (对应 CFG_PHONEEVENTNOTIFY_INFO) */
+ CFG_CMD_PHONEEVENTNOTIFY("PhoneEventNotify"),
+ /** // 电话报警中心配置(CFG_PSTN_ALARM_CENTER_INFO) */
+ CFG_CMD_PSTN_ALARM_SERVER("PSTNAlarmServer"),
+ /** // 音频输出音量(CFG_AUDIO_OUTPUT_VOLUME) */
+ CFG_CMD_AUDIO_OUTPUT_VOLUME("AudioOutputVolume"),
+ /** // 音频输入音量(CFG_AUDIO_INPUT_VOLUME) */
+ CFG_CMD_AUDIO_INPUT_VOLUME("AudioInputVolume"),
+ /** // 指示灯控制配置 (CFG_LIGHT_GLOBAL) */
+ CFG_CMD_LIGHT_GLOBAL("LightGlobal"),
+ /** // 混合音频音量,用于庭审主机(CFG_AUDIO_MIX_VOLUME) */
+ CFG_CMD_AUDIO_MIX_VOLUME("AudioMixVolume"),
+ /** // 报警键盘配置(CFG_ALARMKEYBOARD_INFO) */
+ CFG_CMD_ALARMKEYBOARD("AlarmKeyboard"),
+ /** // 电源故障配置(CFG_POWERFAULT_INFO) */
+ CFG_CMD_POWERFAULT("PowerFault"),
+ /** // 机箱入侵报警(防拆报警)配置(CFG_CHASSISINTRUSION_INFO) */
+ CFG_CMD_CHASSISINTRUSION("ChassisIntrusion"),
+ /** // 扩展报警盒配置 (CFG_EXALARMBOX_INFO) */
+ CFG_CMD_EXALARMBOX("ExAlarmBox"),
+ /** // 扩展报警输出配置(CFG_EXALARMOUTPUT_INFO) */
+ CFG_CMD_EXALARMOUTPUT("ExAlarmOut"),
+ /** // 扩展报警输入配置(CFG_EXALARMINPUT_INFO) */
+ CFG_CMD_EXALARMINPUT("ExAlarm"),
+ /** // 紧急事件配置(CFG_URGENCY_INFO) */
+ CFG_CMD_URGENCY("Emergency"),
+ /** // 传感器采样(CFG_SENSORSAMPLING_INFO) */
+ CFG_CMD_SENSORSAMPLING("SensorSampling"),
+ CFG_CMD_STP("STP"),// 环网配置(CFG_STP_INFO)
+ /** // 报警子系统配置(CFG_ALARM_SUBSYSTEM_INFO) */
+ CFG_CMD_ALARM_SUBSYSTEM("AlarmSubSystem"),
+ /** // 电池电量低配置(CFG_BATTERY_LOW_POWER_INFO) */
+ CFG_CMD_BATTERY_LOW_POWER("BatteryLowPowerAlarm"),
+ /** // 抓图通道联动外设配置(CFG_SNAPLINKAGE_INFO) */
+ CFG_CMD_SNAPLIKAGE("SnapLinkage"),
+ /** // 音频输入配置(CFG_AUDIO_INPUT) */
+ CFG_CMD_AUDIOINPUT("AudioInput"),
+ CFG_CMD_EMAIL("Email"),// 邮件发送配置(CFG_EMAIL_INFO)
+ CFG_CMD_TRAFFIC_TRANSFER_OFFLINE("TrafficTransferOffline"),// 传输离线文件配置(TRAFFIC_TRANSFER_OFFLINE_INFO)
+ CFG_CMD_COMMSUBSCRIBE("CommSubscribe"),// 订阅串口数据配置(CFG_DEVCOMM_SUBSCRIBE)
+ CFG_CMD_PARKINGSPACE_LIGHT_STATE("ParkingSpaceLightState"),// 车位状态对应的车位指示灯(CFG_PARKINGSPACE_LIGHT_STATE)
+ CFG_CMD_AIRCONDITION("AirCondition"),// 空调设备配置(CFG_AIRCONDITION_INFO)
+ CFG_CMD_COMPRESS_PLAY("CompressPlay"),// 压缩回放配置(CFG_COMPRESS_PLAY_INFO)
+ CFG_CMD_BUILDING("Building"),// VTO楼层配置(CFG_BUILDING_INFO)
+ CFG_CMD_BUILDING_EXTERNAL("BuildingExternal"),// VTO楼层扩展配置(CFG_BUILDING_EXTERNAL_INFO)
+ CFG_CMD_DIALRULE("DialRule"),// 拨号规则(CFG_DIALRULE_INFO)
+ CFG_CMD_OIL_MASS_INFO("OilMassInfo"),// 车辆油箱配置(CFG_OIL_MASS_INFO)
+ CFG_CMD_FISHEYE_INFO("FishEye"),// 鱼眼详细信息配置(CFG_FISHEYE_DETAIL_INFO)
+ CFG_CMD_VTNOANSWER_FORWARD("VTNoAnswerForward"),// 平台下发呼叫无应答转移配置列表
+ // (CFG_VT_NOANSWER_FORWARD_INFO)
+ CFG_CMD_VTO_CALL("VTOCall"),// VTO呼叫配置(CFG_VTO_CALL_INFO)
+ CFG_CMD_MACCONFLICT("MacConflict"),// MAC冲突报警配置(CFG_MACCONFLICT_INFO)
+ CFG_CMD_MONITORWALL_COLL_TOUR("MonitorWallCollectionTour"),// 电视墙预案轮巡配置
+ // (CFG_MONITORWALL_COLLECTION_TOUR_INFO)
+ CFG_CMD_PSTN_BREAK_LINE("PSTNBreakLine"),// PSTN断线事件配置(CFG_PSTN_BREAK_LINE_INFO)
+ CFG_CMD_NET_COLLECTION("NetCollection"),// 网络采集设备配置(CFG_NET_COLLECTION_INFO)
+ CFG_CMD_ALARM_SLOT_BOND("AlarmSlotBond"),// 虚拟Slot节点与具体物理设备的对应关系
+ // (CFG_ALARM_SLOT_BOND_INFO)
+ CFG_CMD_TRAFFICSTROBE("TrafficStrobe"),// 道闸配置(CFG_TRAFFICSTROBE_INFO)
+ CFG_CMD_TRAFFICVOICE("TrafficVoiceBroadcast"),// 智能交通语音播报配置( CFG_TRAFFICVOICE_BROADCAST)
+ CFG_CMD_STANDING_TIME("StandingTime"),// 停车时间配置(CFG_STANDING_TIME_INFO)
+ CFG_CMD_ENCLOSURE_TIME_SCHEDULE("EnclosureTimeSchedule"),// 电子围栏报警时间段配置
+ // (CFG_ENCLOSURE_TIME_SCHEDULE_INFO)
+ CFG_CMD_ECKCONFIG("ECKConfig"),// 停车场出入口控制器配置(CFG_ECKCONFIG_INFO)
+ CFG_CMD_PARKING_CARD("ParkingCard"),// 停车场出入口刷卡报警事件配置(CFG_PARKING_CARD_INFO)
+ CFG_CMD_RCEMERGENCY_CALL("RCEmergencyCall"),// 紧急呼叫报警事件配置(CFG_RCEMERGENCY_CALL_INFO)
+ CFG_CMD_LANES_STATE_REPORT("LanesStateReport"),// 车道信息上报配置(CFG_LANES_STATE_REPORT)
+ CFG_CMD_OPEN_DOOR_ROUTE("OpenDoorRoute"),// 开门路线集合,或称防反潜路线配置(CFG_OPEN_DOOR_ROUTE_INFO)
+ CFG_CMD_BURNPLAN("BurnPlan"),// 刻录计划配置(对应 CFG_BURNPLAN_INFO)
+ CFG_CMD_VSP_GAYS("VSP_GAYS"),// 平台接入配置(CFG_VSP_GAYS_INFO)
+ CFG_CMD_AUDIODETECT("AudioDetect"),// 音频检测报警配置(CFG_AUDIO_DETECT_INFO数组)
+ CFG_CMD_GUIDESCREEN("GuideScreen"),// 诱导屏系统配置(CFG_GUIDESCREEN_INFO)
+ CFG_CMD_VTS_CALL_INFO("VTSCallInfo"),// VTS呼叫配置(CFG_VTS_CALL_INFO)
+ CFG_CMD_DEV_LIST("DevList"),// 设备列表配置(CFG_DEV_LIST_INFO)
+ CFG_CMD_CALIBRATE_MATRIX("CalibrateMatrix"),// 主从式跟踪器标定矩阵配置(CFG_CALIBRATE_MATRIX_INFO,
+ // 新配置对应CFG_CALIBRATE_MATRIX_EX_INFO)
+ CFG_CMD_DEFENCE_AREA_DELAY("DefenceAreaDelay"),// 防区延时配置(CFG_DEFENCE_AREA_DELAY_INFO)
+ CFG_CMD_FLAT_FIELD_CORRECTION("FlatFieldCorrection"),// 热成像平场聚焦校准配置(CFG_FLAT_FIELD_CORRECTION_INFO)
+ CFG_CMD_THERMO_FUSION("ThermographyFusion"),// 热成像视频融合配置(CFG_THERMO_FUSION_INFO)
+ CFG_CMD_LCE_STATE("LCEState"),// 热成像自研机芯中摄像头属性的局部对比度增强配置(CFG_LCE_STATE_INFO)
+ CFG_CMD_LIGHTINGSCHEDULE("LightingSchedule"),// 灯光计划配置(对应 CFG_LIGHTINGSCHEDULE_INFO)
+ CFG_CMD_EMERGENCY_RECORD_FOR_PULL("EmergencyRecordForPull"),//
+ // 紧急录像存储配置,用于客户端主动拉的方式。在客户端拉流存储异常之后,进行紧急录像存储(CFG_EMERGENCY_RECORD_FOR_PULL_INFO)
+ CFG_CMD_VIDEOIN_ANALYSERULE("VideoInAnalyseRule"),// 视频通道智能规则配置(CFG_VIDEOIN_ANALYSE_RULE_INFO)
+ CFG_CMD_ACCESS_WORK_MODE("AccessWorkMode"),// 门锁工作模式(对应 CFG_ACCESS_WORK_MODE_INFO 数组)
+ CFG_CMD_VIDEO_TALK_PHONE_GENERAL("VideoTalkPhoneGeneral"),// 视频对讲电话通用配置(CFG_VIDEO_TALK_PHONE_GENERAL)
+ CFG_CMD_TRAFFIC_SNAP_MOSAIC("TrafficSnapMosaic"),// 抓图合成配置(对应 CFG_TRAFFIC_SNAP_MOSAIC_INFO)
+ CFG_CMD_SCENE_SNAP_RULE("SceneSnapShotWithRule"),// 场景抓拍设置(对应 CFG_SCENE_SNAPSHOT_RULE_INFO)
+ CFG_CMD_VTO_INFO("VTOInfo"),// 门口机配置(对应 CFG_VTO_LIST)
+ CFG_CMD_TS_POINT("TSPoint"),// 触摸屏校准配置(对应 CFG_TSPOINT_INFO)
+ CFG_CMD_VTH_NUMBER_INFO("VTHNumberInfo"),// 室内机号码信息(对应 CFG_VTH_NUMBER_INFO)
+ CFG_CMD_GPS("GPS"),// GPS配置(对应 CFG_GPS_INFO_ALL)
+ CFG_CMD_VTO_BASIC_INFO("VTOBasicInfo"),// VTO基本信息 (对应 CFG_VTO_BASIC_INFO)
+ CFG_CMD_SHORTCUT_CALL("ShortcutCall"),// 快捷号配置 (对应 CFG_SHORTCUT_CALL_INFO)
+ CFG_CMD_GPS_LOCATION_VER("GPSLocationVersion"),// 记录集GPSLocation的版本号(对应 CFG_LOCATION_VER_INFO)
+ CFG_CMD_PARKING_SPACE_ACCESS_FILTER("ParkingSpaceAccessFilter"),// 设备可访问地址过滤配置(对应
+ // CFG_PARKING_SPACE_ACCESS_FILTER_INFO)
+ CFG_CMD_WORK_TIME("WorkTime"),// 工作时间配置(对应 CFG_WORK_TIME_INFO)
+ // CFG_PARKING_SPACE_LIGHT_GROUP_INFO_ALL)
+ CFG_CMD_CUSTOM_AUDIO("CustomAudio"),// 自定义音频配置(CFG_CUSTOM_AUDIO)
+ // CFG_WIFI_SEARCH_INFO)
+ CFG_CMD_G3G4AUTOCHANGE("G3G4AutoChange"),// 车载设备通信模块3G 4G自动切换(CFG_G3G4AUTOCHANGE)
+ CFG_CMD_CHECKCODE("CheckCode"),// 刷卡机校验码校验配置(对应 CFG_CHECKCODE_INFO)
+ CFG_CMD_VSP_SCYDKD("VSP_SCYDKD"),// 四川移动看店启迪平台接入配置(对应 CFG_VSP_SCYDKD_INFO)
+ CFG_CMD_VIDEOIN_DAYNIGHT("VideoInDayNight"),// 球机机芯日夜配置(对应 CFG_VIDEOIN_DAYNIGHT_INFO)
+ CFG_CMD_PTZ_POWERUP("PowerUp"),// 云台开机动作设置(对应 CFG_PTZ_POWERUP_INFO)
+ CFG_CMD_AUDIO_MIX_CHANNEL("AudioMixChannel"),// 配置定义每个纯音频通道的组成(对应
+ // CFG_AUDIO_MIX_CHANNEL_INFO_ALL)
+ CFG_CMD_AUDIO_TOUCH("AudioTouch"),// 变音,对音调进行变化(对应 CFG_AUDIO_TOUCH_INFO_ALL)
+ CFG_CMD_VIDEO_MOSAIC("VideoMosaic"),// 马赛克叠加配置(对应CFG_VIDEO_MOSAIC_INFO)
+ CFG_CMD_VTH_REMOTE_IPC_INFO("VTHRemoteIPCInfo"),// VTH中远程IPC配置(对应 CFG_VTH_REMOTE_IPC_INFO)
+ // ,该配置是全局的,不区分通道
+ CFG_CMD_UNFOCUSDETECT("UnFocusDetect"),// 虚焦检测配置(对应CFG_UNFOCUSDETECT_INFO)
+ CFG_CMD_MOVE_DETECT("MovedDetect"),// 场景变更检测配置(对应CFG_MOVE_DETECT_INFO)
+ CFG_CMD_FLOODLIGHT("Floodlight"),// 防护舱照明灯控制配置(对应
+ // CFG_FLOODLIGHT_CONTROLMODE_INFO)
+ CFG_CMD_AIRFAN("AirFan"),// 防护舱风扇控制配置(对应 CFG_AIRFAN_CONTROLMODE_INFO)
+ CFG_CMD_WLAN("WLan"),// WLAN配置(对应 CFG_NETAPP_WLAN)
+ CFG_CMD_SMART_ENCODE("SmartEncode"),// Smart H264编码方式(对应 CFG_SMART_ENCODE_INFO)
+ CFG_CMD_VEHICLE_HIGH_SPEED("HighSpeed"),// 车载高速报警配置(对应 CFG_VEHICLE_HIGHSPEED_INFO )
+ CFG_CMD_VEHICLE_LOW_SPEED("LowSpeed"),// 车载低速报警配置(对应 CFG_VEHICLE_LOWSPEED_INFO )
+ CFG_CMD_PSTN_PERSON_SERVER("PSTNPersonServer"),// 个人电话接机配置(对应
+ // CFG_PSTN_PERSON_SERVER_INFO_ALL )
+ CFG_CMD_ARM_LINK("ArmLink"),// 布撤防联动配置(对应 CFG_ARMLINK_INFO )
+ CFG_CMD_CABINLED_TIME_SCHEDULE("CabinLedTimeSchedule"),// 防护舱Led显示计划配置(对应 CFG_CABINLED_TIME_SCHEDULE)
+ CFG_CMD_PSTN_TESTPLAN("PSTNTestPlan"),// PSTN 测试计划配置(对应 CFG_PSTN_TESTPLAN_INFO)
+ CFG_CMD_DEFENCE_ARMMODE("DefenceArmMode"),// 单防区布撤防使能配置(对应 CFG_DEFENCE_ARMMODE_INFO)
+ CFG_CMD_SENSORMODE("SensorMode"),// 探测器安装工作模式配置(对应 CFG_SENSORMODE_INFO)
+ CFG_CMD_RADAR_SPEED_MEASURE("RadarSpeedMeasure"),// 雷达测速配置 智能楼宇专用(对应
+ // CFG_RADAR_SPEED_MEASURE_INFO)
+ CFG_CMD_VIDEOINDEFOG("VideoInDefog"),// 透雾设置配置(对应结构体 CFG_VIDEOINDEFOG_LIST)
+ CFG_CMD_VIDEOIN_BACKLIGHT("VideoInBacklight"),// 光线环境配置(对应CFG_VIDEOIN_BACKLIGHT_INFO)
+ CFG_CMD_AUDIO_OUT_EQUALIZER("AudioOutEqualizer"),// 音频输出均衡器配置(对应结构体CFG_AUDIO_OUTEQUALIZER_INFO)
+ CFG_CMD_AUDIO_OUT_SUPPRESSION("AudioOutSuppression"),// 音频抑制设置(对应结构体CFG_AUDIO_SUPPRESSION_INFO)
+ CFG_CMD_AUDIO_IN_CONTROL("AudioInControl"),// 音频输入控制(对应结构体CFG_AUDIO_INCONTROL_INFO)
+ CFG_CMD_LASER_DIST_MEASURE("LaserDistMeasure"),// 激光测距器配置(对应结构体 CFG_LASER_DIST_MEASURE_INFO)
+ CFG_CMD_OIL_4G_OVERFLOW("Oil4GFlow"),// 福山油田4G流量阈值及模式配置(对应结构体
+ // CFG_OIL_4G_OVERFLOW_INFO)
+ CFG_CMD_OIL_VIDEOWIDGET_4G_FLOW("VideoWidget4GFlow"),// 福山油田4G流量OSD叠加配置(对应结构体
+ // CFG_OIL_VIDEOWIDGET_4G_FLOW_INFO)
+ CFG_CMD_ATMOSPHERE_OSD("AtmosphereOSD"),// 气象信息叠加配置(对应结构体 CFG_CMD_ATMOSPHERE_OSD_INFO)
+ CFG_CMD_PARK_SPACE_OUT_LIGHT("ParkSpaceOutLight"),// 外接指示灯配置(对应结构体 CFG_PARK_SPACE_OUT_LIGHT_INFO)
+ CFD_CMD_VTO_CALL_INFO_EXTEND("VTOCallInfo"),// VTO呼叫配置扩展(对应结构体CFG_VTO_CALL_INFO_EXTEND)
+ CFG_CMD_ACCESS_TEXTDISPLAY("AccessControlTextDisplay"),// 门禁文字提示显示配置(对应结构体
+ // CFG_ACCESS_TEXTDISPLAY_INFO)
+ CFG_CMD_NETNVR_ENCRYPT("NvrEncrypt"),// 加密配置信息,涉及IPC和NVR(
+ // CFG_NETNVR_ENCRYPT_INFO )
+ CFG_CMD_CURTAIN("Curtain"),// 窗帘配置(对应结构体 CFG_CURTAIN_INFO)
+ CFG_CMD_FRESH_AIR("FreshAir"),// 新风配置(对应结构体 CFG_FRESH_AIR_INFO)
+ CFG_CMD_GROUND_HEAT("GroundHeat"),// 地暖配置(对应结构体 CFG_GROUND_HEAT_INFO)
+ CFG_CMD_SCENE_MODE("SceneMode"),// 情景模式(对应结构体 CFG_SCENE_MODE_INFO)
+ CFG_CMD_AIO_APP_CONFIG("AIOAppConfig"),// AIOAppConfig参数设置(对应结构体
+ // CFG_AIO_APP_CONFIG_INFO)
+ CFG_CMD_HTTPS("Https"),// Https服务配置(对应结构体 CFG_HTTPS_INFO)
+ CFG_CMD_NETAUTOADAPTORENCODE("NetAutoAdaptEncode"),// 网络自适应编码配置(对应结构体 CFG_NET_AUTO_ADAPT_ENCODE)
+ CFG_CMD_USERLOCKALARM("UserLockAlarm"),// 登陆锁定配置(对应结构体 CFG_USERLOCKALARM_INFO)
+ CFG_CMD_STROBOSCOPIC_LAMP("StroboscopicLamp"),// 频闪灯配置(对应结构体 CFG_STROBOSCOPIC_LAMP_INFO)
+ CFG_CMD_FREECOMBINATION("FreeCombination"),// 自由分割模式的窗口配置 CFG_FREECOMBINATION_INFO )
+ CFG_CMD_IOT_INFRARED_DETECT("IOT_InfraredDetect"),// 物联网红外检测配置(对应结构体CFG_IOT_INFRARED_DETECT_INFO)
+ CFG_CMD_IOT_RECORD_HANDLE("IOT_RecordHandle"),// 物联网录像联动配置(对应结构体CFG_IOT_RECORD_HANDLE_INFO)
+ CFG_CMD_IOT_SNAP_HANDLE("IOT_SnapHandle"),// 物联网抓图联动配置(对应结构体CFG_IOT_SNAP_HANDLE_INFO)
+ CFG_CMD_PLATFORM_MONITOR_IPC("PlatformMonitorIPC"),// 平台侧预览IPC配置 CFG_PLATFORMMONITORIPC_INFO )
+ CFG_CMD_CALLFORWARD("CallForward"),// 呼叫转移配置(对应结构体 CFG_CALLFORWARD_INFO)
+ CFD_CMD_DOORBELLSOUND("DoorBellSound"),// 门铃配置(对应结构体CFG_DOOR_BELLSOUND_INFO)
+ CFG_CMD_TELNET("Telnet"),// telnet配置(对应结构体CFG_TELNET_INFO)
+ CFG_CMD_OSDSYSABNORMAL("OSDSysAbnormal"),// 显示异常信息的叠加配置(对应结构体 CFG_OSD_SYSABNORMAL_INFO)
+ CFG_CMD_VIDEO_WIDGET2("VideoWidget2"),// 视频编码物件配置(对应结构体 CFG_VIDEO_WIDGET2_INFO)
+ CFG_CMD_VIDEOWIDGET_NUMBERSTAT("VideoWidgetNumberStat"),// 人数统计叠加OSD配置(对应结构体
+ // CFG_VIDEOWIDGET_NUMBERSTAT_INFO)
+ CFG_CMD_PRIVACY_MASKING("PrivacyMasking"),// 隐私遮挡设置(对应结构体 CFG_PRIVACY_MASKING_INFO)
+ CFG_CMD_DEVICE_INFO("DeviceInfo"),// 设备信息(对应结构体 CFG_DEVICE_INFO)
+ CFG_CMD_POLICEID_MAP_INFO("PoliceMap"),// 警员ID和设备通道映射关系信息(对应结构体 CFG_POLICEID_MAP_INFO)
+ CFG_CMD_GPS_NOT_ALIGNED("GpsNotAligned"),// GPS未定位配置(对应结构体 CFG_GPS_NOT_ALIGNED_INFO)
+ CFG_CMD_WIRELESS_NOT_CONNECTED("WireLessNotConnected"),// 网络未连接(包括wifi,3G/4G)配置(对应结构体
+ // CFG_WIRELESS_NOT_CONNECTED_INFO)
+ CFG_CMD_MCS_GENERAL_CAPACITY_LOW("MCSGeneralCapacityLow"),// 微云常规容量告警配置
+ // (对应结构体CFG_MCS_GENERAL_CAPACITY_LOW)
+ CFG_CMD_MCS_DATA_NODE_OFFLINE("MCSDataNodeOffline"),// 微云存储节点下线(对应结构体CFG_MCS_DATA_NODE_OFFLINE)
+ CFG_CMD_MCS_DISK_OFFLINE("MCSDiskOffline"),// 微云磁盘下线告警配置(对应结构体CFG_MCS_DISK_OFFLINE)
+ CFG_CMD_MCS_DISK_SLOW("MCSDiskSlow"),// 微云磁盘变慢告警配置(对应结构体CFG_MCS_DISK_SLOW)
+ CFG_CMD_MCS_DISK_BROKEN("MCSDiskBroken"),// 微云磁盘损坏告警配置(对应结构体CFG_MCS_DISK_BROKEN)
+ CFG_CMD_MCS_DISK_UNKNOW_ERROR("MCSDiskUnknowError"),// 微云磁盘未知错误告警配置(对应结构体CFG_MCS_DISK_UNKNOW_ERROR)
+ CFG_CMD_MCS_METADATA_SERVER_ABNORMAL("MCSMetadataServerAbnormal"),// 微云元数据服务器异常告警配置
+ // (对应结构体CFG_MCS_METADATA_SERVER_ABNORMAL)
+ CFG_CMD_MCS_CATALOG_SERVER_ABNORMAL("MCSCatalogServerAbnormal"),// 微云目录服务器异常告警配置
+ // (对应结构体CFG_MCS_CATALOG_SERVER_ABNORMAL)
+ CFG_CMD_MCS_GENERAL_CAPACITY_RESUME("MCSGeneralCapacityResume"),// 微云常规容量告警恢复告警配置
+ // (对应结构体CFG_MCS_GENERAL_CAPACITY_RESUME)
+ CFG_CMD_MCS_DATA_NODE_ONLINE("MCSDataNodeOnline"),// 微云存储节点上线告警配置
+ // (对应结构体CFG_MCS_DATA_NODE_ONLINE)
+ CFG_CMD_MCS_DISK_ONLINE("MCSDiskOnline"),// 微云磁盘上线告警配置(对应结构体CFG_MCS_DISK_ONLINE)
+ CFG_CMD_MCS_METADATA_SLAVE_ONLINE("MCSMetadataSlaveOnline"),// 微云元数据备机上线告警配置
+ // (对应结构体CFG_MCS_METADATA_SLAVE_ONLINE)
+ CFG_CMD_MCS_CATALOG_SERVER_ONLINE("MCSCatalogServerOnline"),// 微云目录服务器上线告警配置
+ // (对应结构体CFG_MCS_CATALOG_SERVER_ONLINE)
+ CFG_CMD_SECURITY_ALARMS_PRIVACY("SecurityAlarmsPrivacy"),// SecurityAlarms客户功能,隐私保护
+ // (对应结构体CFG_SECURITY_ALARMS_PRIVACY)
+ CFG_CMD_NO_FLY_TIME("NoFlyTime"),// 无人机禁飞时段配置 ( 对应结构体 CFG_NO_FLY_TIME_INFO )
+ CFG_CMD_PWD_RESET("PwdReset"),// 密码重置功能使能配置 ( 对应结构体 CFG_PWD_RESET_INFO )
+ CFG_CMD_NET_MONITOR_ABORT("NetMonitorAbort"),// 网络预览中断事件配置( 对应结构体
+ // CFG_NET_MONITOR_ABORT_INFO )
+ CFG_CMD_LOCAL_EXT_ALARM("LocalExtAlarm"),// 本地扩展报警配置 ( 对应结构体 CFG_LOCAL_EXT_ALARME_INFO )
+ CFG_CMD_ACCESSCONTROL_DELAYSTRATEGY("DelayStrategy"),// 门禁卡欠费与预欠费状态配置(对应结构体
+ // CFG_ACCESSCONTROL_DELAYSTRATEGY)
+ CFG_CMD_VIDEO_TALK_PHONE_BASIC("VideoTalkPhoneBasic"),// 视频对讲电话基础配置( 对应结构体
+ // CFG_VIDEO_TALK_PHONE_BASIC_INFO )
+ CFG_CMD_APP_EVENT_LANGUAGE("AppEventLanguage"),// 手机推送消息的翻译目标语言配置(对应结构体
+ // CFG_APP_EVENT_LANGUAGE_INFO )
+ CFG_CMD_LOGIN_FAILURE_ALARM("LoginFailureAlarm"),// 登陆失败报警配置(对应结构体 CFG_LOGIN_FAILURE_ALARM)
+ CFG_CMD_DROPBOXTOKEN("DropBoxToken"),// Dropbox Token 配置( 对应结构体
+ // CFG_DROPBOXTOKEN_INFO)
+ CFG_CMD_IDLINGTIME("IdlingTime"),// 怠速配置(对应结构体 CFG_IDLINGTIME_INFO)
+ CFG_CMD_CARDIVERSTATE("CarDiverState"),// 汽车行驶状态配置(对应结构体 CFG_CARDIVERSTATE_INFO)
+ CFG_CMD_VEHICLE("Vehicle"),// 车载配置(对应结构体 CFG_VEHICLE_INFO)
+ CFG_CMD_PTZDEVICE("PtzDevice"),// 模拟云台配置( 对应结构体 CFG_PTZDEVICE_INFO)
+ CFG_CMD_SMARTHOME_SCENELIST("SmartHomeSceneList"),// 美的地产智能家居场景列表
+ // (对应结构体CFG_SMARTHOME_SCENELIST_INFO)
+ CFG_CMD_LIGHTING_V2("Lighting_V2"),// 全彩相机补光灯灵敏度配置(对应结构体 CFG_LIGHTING_V2_INFO)
+ CFG_CMD_KBUSER_PASSWORD("KbuserPassword"),// 键盘操作员用户配置(对应结构体CFG_KBUSER_USERS_INFO)
+ CFG_CMD_ACCESS_OEM("AccessOEMSettings"),// 工行金库门禁信息配置,对应结构体CFG_ACCESS_OEM_INFO
+ CFG_CMD_FIRE_WARNING_EXT("FireWarningExt"),// 火警配置扩展(对应结构体CFG_FIREWARNING_EXT_INFO)
+ CFG_CMD_THERM_DENOISE("ThermDenoise"),// 热成像特有的机芯降噪,对应结构体CFG_THERM_DENOISE
+ CFG_CMD_CONSTANT_LAMP("ConstantLamp"),// 智能交通灯光配置,对应结构体CFG_CONSTANT_LAMP_INFO
+ CFG_CMD_TRAFFIC_IO("TrafficIO"),// 线圈IO配置,对应结构体CFG_TRAFFIC_IO
+ CFG_CMD_MONITOR_WALL_COLLECTION_MAP("MonitorWallCollectionMap"),// 电视墙预关联配置,
+ // 对应结构体CFG_MONITOR_WALL_COLLECTION_MAP_INFO,通道只支持传-1
+ CFG_CMD_VIDEO_INPUT_GROUP("VideoInputGroup"),// 视频输入组配置,对应结构体CFG_VIDEO_INPUT_GROUP_INFO
+ CFG_CMD_DOOR_NOT_CLOSE("DoorNotClosed"),// 门未关报警,对应结构体 CFG_DOOR_NOT_CLOSE_INFO
+ CFG_CMD_BREAK_IN("BreakIn"),// 闯入报警,对应结构体 CFG_BREAK_IN_INFO
+ CFG_CMD_ANTI_PASSBACK("AntiPassback"),// 反潜回报警,对应结构体 CFG_ANTI_PASSBACK_INFO
+ CFG_CMD_DURESS("Duress"),// 胁迫报警,对应结构体 CFG_DURESS_INFO
+ CFG_CMD_MALICIOUS_ACCESSCONTROL("MaliciousAccessControl"),// 非法超次报警报警,对应结构体
+ // CFG_DOOR_MALICIOUS_ACCESSCONTROL_INFO
+ CFG_CMD_REGULATOR_DETECT("RegulatorDetect"),// 标准黑体源异常报警,对应结构体
+ CFG_CMD_REMOTE_ANALYSEGLOBAL("RemoteVideoAnalyseGlobal"),// 远程视频分析全局配置(对应
+ // CFG_ANALYSEGLOBAL_INFO)
+ CFG_CMD_REMOTE_ANALYSEMODULE("RemoteVideoAnalyseModule"),// 远程物体的检测模块配置(对应
+ CFG_CMD_WATERMARK("WaterMark");//视频水印配置(对应 CFG_WATERMARK_INFO)
+
+ private String value;
+
+ private EM_NEW_CONFIG(String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NEW_QUERY_SYSTEM_INFO.java b/src/main/java/com/netsdk/lib/enumeration/EM_NEW_QUERY_SYSTEM_INFO.java
new file mode 100644
index 0000000..16c5e5b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NEW_QUERY_SYSTEM_INFO.java
@@ -0,0 +1,223 @@
+package com.netsdk.lib.enumeration;/**
+ * @author 47081
+ * @descriptio
+ * @date 2020/11/9
+ * @version 1.0
+ */
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.ptr.IntByReference;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 能力集命令枚举, 对应接口
+ * {@link com.netsdk.lib.NetSDKLib#CLIENT_QueryNewSystemInfo(NetSDKLib.LLong, String, int, byte[], int, IntByReference, int)}
+ * @date 2020/11/9
+ */
+public enum EM_NEW_QUERY_SYSTEM_INFO {
+ /**
+ * 视频分析能力集(对应 CFG_CAP_ANALYSE_INFO, pExtendInfo 对应 CFG_CAP_ANALYSE_REQ_EXTEND_INFO)
+ */
+ CFG_CAP_CMD_VIDEOANALYSE("devVideoAnalyse.getCaps"),
+ /**
+ * 视频分析能力集(对应CFG_CAP_ANALYSE_INFO_EX)
+ */
+ CFG_CAP_CMD_VIDEOANALYSE_EX("devVideoAnalyse.getCapsEx"),
+ /**
+ * 获取后端设备的的在线状态(对应CFG_REMOTE_DEVICE_STATUS)
+ */
+ CFG_NETAPP_REMOTEDEVICE("netApp.getRemoteDeviceStatus"),
+ /**
+ * 接入设备信息(对应 CFG_PRODUCT_DEFINITION_INFO)
+ */
+ CFG_CAP_CMD_PRODUCTDEFINITION("magicBox.getProductDefinition"),
+ /**
+ * 设备智能分析能力(对应CFG_CAP_DEVICE_ANALYSE_INFO)兼容老设备
+ */
+ CFG_DEVICE_CAP_CMD_VIDEOANALYSE("intelli.getVideoAnalyseDeviceChannels"),
+ /**
+ * 设备智能分析能力(对应CFG_CAP_DEVICE_ANALYSE_INFO)
+ */
+ CFG_DEVICE_CAP_NEW_CMD_VIDEOANALYSE("devVideoAnalyse.factory.getCollect"),
+ /**
+ * 获得CPU个数
+ */
+ CFG_CAP_CMD_CPU_COUNT("magicBox.getCPUCount"),
+ /**
+ * 获取CPU占用率
+ */
+ CFG_CAP_CMD_CPU_USAGE("magicBox.getCPUUsage"),
+ /**
+ * 获得内存容量
+ */
+ CFG_CAP_CMD_MEMORY_INFO("magicBox.getMemoryInfo"),
+ /**
+ * 获取设备类型(对应CFG_DEVICE_CLASS_INFO)
+ */
+ CFG_CAP_CMD_DEVICE_CLASS("magicBox.getDeviceClass"),
+ /**
+ * 获取设备状态信息 (对应CFG_CAP_TRAFFIC_DEVICE_STATUS)
+ */
+ CFG_CAP_CMD_DEVICE_STATE("trafficSnap.getDeviceStatus"),
+ /**
+ * 视频输入能力集(对应CFG_CAP_VIDEOINPUT_INFO)
+ */
+ CFG_CAP_CMD_VIDEOINPUT("devVideoInput.getCaps"),
+ /**
+ * 得到所有活动的用户信息(对应 CFG_ACTIVEALLUSER_INFO)
+ */
+ CFG_USERMANAGER_ACTIVEUSER("userManager.getActiveUserInfoAll"),
+ /**
+ * 获取视频统计摘要信息(对应CFG_VIDEOSATA_SUMMARY_INFO)
+ */
+ CFG_CAP_VIDEOSTAT_SUMMARY("videoStatServer.getSummary"),
+ /**
+ * 获取视频诊断服务能力(CFG_VIDEODIAGNOSIS_CAPS_INFO)
+ */
+ CFG_CAP_CMD_VIDEODIAGNOSIS_SERVER("videoDiagnosisServer.getCaps"),
+ /**
+ * 获取视频诊断通道数目(CFG_VIDEODIAGNOSIS_GETCOLLECT_INFO)
+ */
+ CFG_CMD_VIDEODIAGNOSIS_GETCOLLECT("videoDiagnosisServer.factory.getCollect"),
+ /**
+ * 获取视频诊断进行状态(CFG_VIDEODIAGNOSIS_STATE_INFO)
+ */
+ CFG_CMD_VIDEODIAGNOSIS_GETSTATE("videoDiagnosisServer.getState"),
+ /**
+ * 获取服务器上支持的服务列表(CFG_DEV_SERVICE_LIST)
+ */
+ CFG_CAP_CMD_SERVICE_LIST("system.listService"),
+ /**
+ * 获取服务器报警联动能力集(CFG_CAP_EVENTHANDLER_INFO)
+ */
+ CFG_CAP_CMD_EVENTHANDLER("capsManager.get&EventManagerEventHandler"),
+ /**
+ * 获取报警能力集(CFG_CAP_ALARM_INFO)
+ */
+ CFG_CAP_ALARM("alarm.getAlarmCaps"),
+ /**
+ * 获取音频分析能力集(CFG_CAP_AUDIO_ANALYSE_INFO)
+ */
+ CFG_CAP_CMD_AUDIO_ANALYSE("devAudioAnalyse.getCaps"),
+ /**
+ * 获取主从式跟踪器通道数目(对应结构体CFG_MASTERSLAVETRACKER_INFO)
+ */
+ CFG_CMD_MASTERSLAVE_GETCOLLECT("masterSlaveTracker.factory.getCollect"),
+ /**
+ * 获取主从式设备能力集(CFG_CAP_MASTERSLAVE_INFO)
+ */
+ CFG_CAP_CMD_MASTERSLAVE("capsManager.get&MasterSlaveTracker"),
+ /**
+ * 获取镜头聚焦状态信息 (对应CFG_CAP_FOCUS_STATUS)
+ */
+ CFG_CAP_CMD_FOCUS_STATE("devVideoInput.getFocusStatus"),
+ /**
+ * 获取网络应用能力集(对应CFG_CAP_NETAPP)
+ */
+ CFG_CAP_CMD_NETAPP("netApp.getCaps"),
+ /**
+ * 获取云台支持信息(CFG_CAP_PTZ_ENABLEINFO )
+ */
+ CFG_CAP_CMD_PTZ_ENABLE("ptz.factory.instance"),
+ /**
+ * 获取录像能力集(CFG_CAP_RECORD_INFO)
+ */
+ CFG_CAP_CMD_RECORD("recordManager.getCaps"),
+ /**
+ * 获取刻录管理能力集( CFG_CAP_BURN_MANAGER)
+ */
+ CFG_CAP_CMD_BURN_MANAGER("BurnManager.getCaps"),
+ /**
+ * 获取云台能力集
+ * 对应结构体{@link com.netsdk.lib.structure.CFG_PTZ_PROTOCOL_CAPS_INFO}
+ */
+ CFG_CAP_CMD_PTZ("ptz.getCurrentProtocolCaps"),
+ /**
+ * 获取编码能力集(CFG_ENCODECAP)
+ */
+ CFG_CMD_ENCODE_GETCAPS("encode.getCaps"),
+ /**
+ * 视频输入能力集扩展(对应CFG_CAP_VIDEOINPUT_INFO_EX)
+ */
+ CFG_CAP_CMD_VIDEOINPUT_EX("devVideoInput.getCapsEx"),
+ /**
+ * 获取设备智能分析模式(对应 CFG_ANALYSE_MODE)
+ */
+ CFG_CAP_CMD_ANALYSE_MODE("intelli.getCaps.AnalyseMode"),
+ /**
+ * 获取设备报警联动能力,老协议已废除,新开发请使用该字段(CFG_CAP_EVENTMANAGER_INFO)
+ */
+ CFG_CAP_CMD_EVENTMANAGER("eventManager.getCaps"),
+ /**
+ * 获取文件能力(CFG_CAP_FILEMANAGER)
+ */
+ CFG_CAP_CMD_FILEMANAGER("FileManager.getCaps"),
+ /**
+ * 获取日志服务能力(CFG_CAP_LOG)
+ */
+ CFG_CAP_CMD_LOG("log.getCaps"),
+ /**
+ * 扬声器播放能力(CFG_CAP_SPEAK)
+ */
+ CFG_CAP_CMD_SPEAK("speak.getCaps"),
+ /**
+ * 门禁能力(CFG_CAP_ACCESSCONTROL)
+ */
+ CFG_CAP_CMD_ACCESSCONTROLMANAGER("accessControlManager.getCaps"),
+ /**
+ * 获取扩展报警能力集, (对应结构体 CFG_CAP_EXALARM_INFO)
+ */
+ CFG_CAP_CMD_EXALARM("alarm.getExAlarmCaps"),
+ /**
+ * 获取扩展报警盒能力集, (对应结构体 CFG_CAP_EXALARMBOX_INFO)
+ */
+ CFG_CAP_CMD_EXALARMBOX("alarm.getExAlarmBoxCaps"),
+ /**
+ * 获取查询记录能力集, (对应结构体 CFG_CAP_RECORDFINDER_INFO)
+ */
+ CFG_CAP_CMD_RECORDFINDER("RecordFinder.getCaps"),
+ /**
+ * 模拟量报警输入通道能力(对应结构体 CFG_CAP_ANALOGALARM)
+ */
+ CFG_CAP_CMD_ANALOGALARM("AnalogAlarm.getCaps"),
+ /**
+ * 获取LowRateWPAN能力(对应的结构体 CFG_CAP_LOWRATEWPAN)
+ */
+ CFG_CAP_CMD_LOWRATEWPAN("LowRateWPAN.getCaps"),
+ /**
+ * 获取编码自适应编码能力(对应的结构体 CFG_CAP_ADAPT_ENCODE_INFO)
+ */
+ CFG_CAP_CMD_ADAPTENCODE("encode.getNAACaps"),
+ /**
+ * 获取该云台实际能够使用的协议,按介质区分 (对应结构体 CFG_CAP_PTZ_PROTOCOL)
+ */
+ CFG_CAP_CMD_PTZPROTOCAL("ptz.getProtocol"),
+ /**
+ * 查询是否支持视频裁剪能力 (对应结构体 CFG_CAP_MEDIA_CROP)
+ */
+ CFG_CAP_CMD_MEDIACROP("encode.getCropCaps"),
+ /**
+ * 获取OSD叠加能力(对应结构体CFG_CAP_OSDMANAGER_INFO)
+ */
+ CFG_CAP_CMD_OSDMANAGER("OSDManager.getCaps"),
+ /**
+ * 获取自定义标题能力集(对应结构体CFG_CAP_CUSTOM_OSD_INFO)
+ */
+ CFG_CAP_CMD_CUSTOM("OSDManager.getCustomCaps");
+
+ private String value;
+
+ private EM_NEW_QUERY_SYSTEM_INFO(String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NONMOTOR_COLOR.java b/src/main/java/com/netsdk/lib/enumeration/EM_NONMOTOR_COLOR.java
new file mode 100644
index 0000000..55d2d90
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NONMOTOR_COLOR.java
@@ -0,0 +1,163 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 非机动车颜色类型
+*/
+public enum EM_NONMOTOR_COLOR
+{
+ /**
+ * 未知
+ */
+ EM_NONMOTOR_UNKNOWN(0, "未知"),
+ /**
+ * 无法识别
+ */
+ EM_NONMOTOR_COLOR_OTHER(1, "无法识别"),
+ /**
+ * 白色
+ */
+ EM_NONMOTOR_COLOR_WHITE(2, "白色"),
+ /**
+ * 橙色
+ */
+ EM_NONMOTOR_COLOR_ORANGE(3, "橙色"),
+ /**
+ * 粉色
+ */
+ EM_NONMOTOR_COLOR_PINK(4, "粉色"),
+ /**
+ * 黑色
+ */
+ EM_NONMOTOR_COLOR_BLACK(5, "黑色"),
+ /**
+ * 红色
+ */
+ EM_NONMOTOR_COLOR_RED(6, "红色"),
+ /**
+ * 黄色
+ */
+ EM_NONMOTOR_COLOR_YELLOW(7, "黄色"),
+ /**
+ * 灰色
+ */
+ EM_NONMOTOR_COLOR_GRAY(8, "灰色"),
+ /**
+ * 蓝色
+ */
+ EM_NONMOTOR_COLOR_BLUE(9, "蓝色"),
+ /**
+ * 绿色
+ */
+ EM_NONMOTOR_COLOR_GREEN(10, "绿色"),
+ /**
+ * 紫色
+ */
+ EM_NONMOTOR_COLOR_PURPLE(11, "紫色"),
+ /**
+ * 棕色
+ */
+ EM_NONMOTOR_COLOR_BROWN(12, "棕色"),
+ /**
+ * 银色
+ */
+ EM_NONMOTOR_COLOR_SLIVER(13, "银色"),
+ /**
+ * 暗紫罗兰色
+ */
+ EM_NONMOTOR_COLOR_DARKVIOLET(14, "暗紫罗兰色"),
+ /**
+ * 栗色
+ */
+ EM_NONMOTOR_COLOR_MAROON(15, "栗色"),
+ /**
+ * 暗灰色
+ */
+ EM_NONMOTOR_COLOR_DIMGRAY(16, "暗灰色"),
+ /**
+ * 白烟色
+ */
+ EM_NONMOTOR_COLOR_WHITESMOKE(17, "白烟色"),
+ /**
+ * 深橙色
+ */
+ EM_NONMOTOR_COLOR_DARKORANGE(18, "深橙色"),
+ /**
+ * 浅玫瑰色
+ */
+ EM_NONMOTOR_COLOR_MISTYROSE(19, "浅玫瑰色"),
+ /**
+ * 番茄红色
+ */
+ EM_NONMOTOR_COLOR_TOMATO(20, "番茄红色"),
+ /**
+ * 橄榄色
+ */
+ EM_NONMOTOR_COLOR_OLIVE(21, "橄榄色"),
+ /**
+ * 金色
+ */
+ EM_NONMOTOR_COLOR_GOLD(22, "金色"),
+ /**
+ * 暗橄榄绿色
+ */
+ EM_NONMOTOR_COLOR_DARKOLIVEGREEN(23, "暗橄榄绿色"),
+ /**
+ * 黄绿色
+ */
+ EM_NONMOTOR_COLOR_CHARTREUSE(24, "黄绿色"),
+ /**
+ * 绿黄色
+ */
+ EM_NONMOTOR_COLOR_GREENYELLOW(25, "绿黄色"),
+ /**
+ * 森林绿
+ */
+ EM_NONMOTOR_COLOR_FORESTGREEN(26, "森林绿"),
+ /**
+ * 海洋绿
+ */
+ EM_NONMOTOR_COLOR_SEAGREEN(27, "海洋绿"),
+ /**
+ * 深天蓝
+ */
+ EM_NONMOTOR_COLOR_DEEPSKYBLUE(28, "深天蓝"),
+ /**
+ * 青色
+ */
+ EM_NONMOTOR_COLOR_CYAN(29, "青色");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_NONMOTOR_COLOR(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_NONMOTOR_COLOR enumType : EM_NONMOTOR_COLOR.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_NONMOTOR_COLOR enumType : EM_NONMOTOR_COLOR.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NONMOTOR_OBJECT_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/EM_NONMOTOR_OBJECT_STATUS.java
new file mode 100644
index 0000000..0c51ab8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NONMOTOR_OBJECT_STATUS.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 事件/物体状态
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_NONMOTOR_OBJECT_STATUS extends NetSDKLib.SdkStructure {
+ /**
+ * 未识别
+ */
+ public static final int EM_NONMOTOR_OBJECT_STATUS_UNKNOWN = 0;
+ /**
+ * 否
+ */
+ public static final int EM_NONMOTOR_OBJECT_STATUS_NO = 1;
+ /**
+ * 是
+ */
+ public static final int EM_NONMOTOR_OBJECT_STATUS_YES = 2;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NONMOTOR_SUBTYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_NONMOTOR_SUBTYPE.java
new file mode 100644
index 0000000..1085d94
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NONMOTOR_SUBTYPE.java
@@ -0,0 +1,99 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 非机动车子类型
+*/
+public enum EM_NONMOTOR_SUBTYPE
+{
+ /**
+ * 未知
+ */
+ EM_NONMOTOR_SUBTYPE_UNKNOWN(0, "未知"),
+ /**
+ * 非机动车
+ */
+ EM_NONMOTOR_SUBTYPE_NONMOTOR(1, "非机动车"),
+ /**
+ * 自行车
+ */
+ EM_NONMOTOR_SUBTYPE_BICYCLE(2, "自行车"),
+ /**
+ * 三轮车
+ */
+ EM_NONMOTOR_SUBTYPE_TRICYCLE(3, "三轮车"),
+ /**
+ * 摩托车
+ */
+ EM_NONMOTOR_SUBTYPE_MOTORCYCLE(4, "摩托车"),
+ /**
+ * (两) 三轮摩托车
+ */
+ EM_NONMOTOR_SUBTYPE_DUALTRIWHEEL(5, "(两) 三轮摩托车"),
+ /**
+ * 轻便摩托车
+ */
+ EM_NONMOTOR_SUBTYPE_LIGHT_MOTORCYCLE(6, "轻便摩托车"),
+ /**
+ * 使馆摩托车
+ */
+ EM_NONMOTOR_SUBTYPE_EMBASSY_MOTORCYCLE(7, "使馆摩托车"),
+ /**
+ * 领馆摩托车
+ */
+ EM_NONMOTOR_SUBTYPE_MARGINAL_MOTORCYCLE(8, "领馆摩托车"),
+ /**
+ * 境外摩托车
+ */
+ EM_NONMOTOR_SUBTYPE_AREAOUT_MOTORCYCLE(9, "境外摩托车"),
+ /**
+ * 外籍摩托车
+ */
+ EM_NONMOTOR_SUBTYPE_FOREIGN_MOTORCYCLE(10, "外籍摩托车"),
+ /**
+ * 试验摩托车
+ */
+ EM_NONMOTOR_SUBTYPE_TRIAL_MOTORCYCLE(11, "试验摩托车"),
+ /**
+ * 教练摩托车
+ */
+ EM_NONMOTOR_SUBTYPE_COACH_MOTORCYCLE(12, "教练摩托车"),
+ /**
+ * 行人
+ */
+ EM_NONMOTOR_SUBTYPE_PASSERBY(13, "行人");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_NONMOTOR_SUBTYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_NONMOTOR_SUBTYPE enumType : EM_NONMOTOR_SUBTYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_NONMOTOR_SUBTYPE enumType : EM_NONMOTOR_SUBTYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NON_ALLOW_LIST_CAR.java b/src/main/java/com/netsdk/lib/enumeration/EM_NON_ALLOW_LIST_CAR.java
new file mode 100644
index 0000000..8842e2c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NON_ALLOW_LIST_CAR.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 260611
+ * @description 是否为非允许名单车辆
+ * @origin autoTool
+ * @date 2023/06/20 10:13:16
+ */
+public enum EM_NON_ALLOW_LIST_CAR {
+ /**
+ * 未知
+ */
+ EM_NON_ALLOW_LIST_CAR_UNKNOWN(0, "未知"),
+ /**
+ * 允许名单车辆
+ */
+ EM_NON_ALLOW_LIST_CAR_NO(1, "允许名单车辆"),
+ /**
+ * 非允许名单车辆
+ */
+ EM_NON_ALLOW_LIST_CAR_YES(2, "非允许名单车辆");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_NON_ALLOW_LIST_CAR(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_NON_ALLOW_LIST_CAR enumType : EM_NON_ALLOW_LIST_CAR.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_NON_ALLOW_LIST_CAR enumType : EM_NON_ALLOW_LIST_CAR.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_NON_ALLOW_LIST_CAR getEnum(int value) {
+ for (EM_NON_ALLOW_LIST_CAR e : EM_NON_ALLOW_LIST_CAR.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_NON_ALLOW_LIST_CAR.EM_NON_ALLOW_LIST_CAR_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NON_NEW_ENERGY_CAR.java b/src/main/java/com/netsdk/lib/enumeration/EM_NON_NEW_ENERGY_CAR.java
new file mode 100644
index 0000000..ad9eb31
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NON_NEW_ENERGY_CAR.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 260611
+ * @description 是否为非新能源车辆
+ * @origin autoTool
+ * @date 2023/06/20 10:13:16
+ */
+public enum EM_NON_NEW_ENERGY_CAR {
+ /**
+ * 未知
+ */
+ EM_NON_NEW_ENERGY_CAR_UNKNOWN(0, "未知"),
+ /**
+ * 新能源车辆
+ */
+ EM_NON_NEW_ENERGY_CAR_NO(1, "新能源车辆"),
+ /**
+ * 非新能源车辆
+ */
+ EM_NON_NEW_ENERGY_CAR_YES(2, "非新能源车辆");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_NON_NEW_ENERGY_CAR(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_NON_NEW_ENERGY_CAR enumType : EM_NON_NEW_ENERGY_CAR.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_NON_NEW_ENERGY_CAR enumType : EM_NON_NEW_ENERGY_CAR.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_NON_NEW_ENERGY_CAR getEnum(int value) {
+ for (EM_NON_NEW_ENERGY_CAR e : EM_NON_NEW_ENERGY_CAR.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_NON_NEW_ENERGY_CAR.EM_NON_NEW_ENERGY_CAR_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NTP_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/EM_NTP_STATUS.java
new file mode 100644
index 0000000..b65a3d8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NTP_STATUS.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * NTP校时状态
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_NTP_STATUS extends NetSDKLib.SdkStructure {
+ /**
+ * NET_NTP_STATUS_UNKNOWN = 0 ,
+ */
+ public static final int NET_NTP_STATUS_UNKNOWN = 0;
+ /**
+ * NET_NTP_STATUS_DISABLE ,
+ */
+ public static final int NET_NTP_STATUS_DISABLE = 1;
+ /**
+ * NET_NTP_STATUS_SUCCESSFUL ,
+ */
+ public static final int NET_NTP_STATUS_SUCCESSFUL = 2;
+ /**
+ * NET_NTP_STATUS_FAILED ,
+ */
+ public static final int NET_NTP_STATUS_FAILED = 3;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_NUMBER_STAT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_NUMBER_STAT_TYPE.java
new file mode 100644
index 0000000..124e1a4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_NUMBER_STAT_TYPE.java
@@ -0,0 +1,73 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 260611
+ * @description 表示人数越上限类型
+ * @date 2022/07/04 10:11:30
+ */
+public enum EM_NUMBER_STAT_TYPE {
+ /**
+ * 未知
+ */
+ EM_NUMBERSTAT_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 进入
+ */
+ EM_NUMBERSTAT_TYPE_ENTEROVER(1, "进入"),
+ /**
+ * 退出
+ */
+ EM_NUMBERSTAT_TYPE_EXITOVER(2, "退出"),
+ /**
+ * 在里面
+ */
+ EM_NUMBERSTAT_TYPE_INSIDEOVER(3, "在里面"),
+ /**
+ * 经过
+ */
+ EM_NUMBERSTAT_TYPE_PASSOVER(4, "经过");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_NUMBER_STAT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_NUMBER_STAT_TYPE enumType : EM_NUMBER_STAT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_NUMBER_STAT_TYPE enumType : EM_NUMBER_STAT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_NUMBER_STAT_TYPE getEnum(int value) {
+ for (EM_NUMBER_STAT_TYPE e : EM_NUMBER_STAT_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_NUMBER_STAT_TYPE.EM_NUMBERSTAT_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_OBJECT_ABNORMAL_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_OBJECT_ABNORMAL_TYPE.java
new file mode 100644
index 0000000..db58296
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_OBJECT_ABNORMAL_TYPE.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 异常行为
+ * @date 2022/12/19 11:30:59
+ */
+public enum EM_OBJECT_ABNORMAL_TYPE {
+ /**
+ * 未知
+ */
+ EM_OBJECT_ABNORMAL_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 逆向运动
+ */
+ EM_OBJECT_ABNORMAL_TYPE_RETROGRADE(1, "逆向运动");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_OBJECT_ABNORMAL_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_OBJECT_ABNORMAL_TYPE enumType : EM_OBJECT_ABNORMAL_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_OBJECT_ABNORMAL_TYPE enumType : EM_OBJECT_ABNORMAL_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_OBJECT_BASKET_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_OBJECT_BASKET_TYPE.java
new file mode 100644
index 0000000..c3aaf1e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_OBJECT_BASKET_TYPE.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 非机动车车篮
+* @origin autoTool
+* @date 2023/02/14 20:11:39
+*/
+public enum EM_OBJECT_BASKET_TYPE {
+/**
+未知
+*/
+ EM_OBJECT_BASKET_UNKNOWN(0, "未知"),
+/**
+无
+*/
+ EM_OBJECT_BASKET_NO(1, "无"),
+/**
+有
+*/
+ EM_OBJECT_BASKET_YES(2, "有");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_OBJECT_BASKET_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_OBJECT_BASKET_TYPE enumType : EM_OBJECT_BASKET_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_OBJECT_BASKET_TYPE enumType : EM_OBJECT_BASKET_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_OBJECT_BASKET_TYPE getEnum(int value) {
+ for (EM_OBJECT_BASKET_TYPE e : EM_OBJECT_BASKET_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_OBJECT_BASKET_TYPE.EM_OBJECT_BASKET_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_OBJECT_COLOR_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_OBJECT_COLOR_TYPE.java
new file mode 100644
index 0000000..95cdcab
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_OBJECT_COLOR_TYPE.java
@@ -0,0 +1,134 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 颜色类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_OBJECT_COLOR_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_UNKNOWN = 0;
+ /**
+ * 白色
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_WHITE = 1;
+ /**
+ * 橙色
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_ORANGE = 2;
+ /**
+ * 粉色
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_PINK = 3;
+ /**
+ * 黑色
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_BLACK = 4;
+ /**
+ * 红色
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_RED = 5;
+ /**
+ * 黄色
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_YELLOW = 6;
+ /**
+ * 灰色
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_GRAY = 7;
+ /**
+ * 蓝色
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_BLUE = 8;
+ /**
+ * 绿色
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_GREEN = 9;
+ /**
+ * 紫色
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_PURPLE = 10;
+ /**
+ * 棕色
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_BROWN = 11;
+ /**
+ * 银色
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_SLIVER = 12;
+ /**
+ * 暗紫罗兰色
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_DARKVIOLET = 13;
+ /**
+ * 栗色
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_MAROON = 14;
+ /**
+ * 暗灰色
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_DIMGRAY = 15;
+ /**
+ * 白烟色
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_WHITESMOKE = 16;
+ /**
+ * 深橙色
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_DARKORANGE = 17;
+ /**
+ * 浅玫瑰色
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_MISTYROSE = 18;
+ /**
+ * 番茄红色
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_TOMATO = 19;
+ /**
+ * 橄榄色
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_OLIVE = 20;
+ /**
+ * 金色
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_GOLD = 21;
+ /**
+ * 暗橄榄绿色
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_DARKOLIVEGREEN = 22;
+ /**
+ * 黄绿色
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_CHARTREUSE = 23;
+ /**
+ * 绿黄色
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_GREENYELLOW = 24;
+ /**
+ * 森林绿色
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_FORESTGREEN = 25;
+ /**
+ * 海洋绿色
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_SEAGREEN = 26;
+ /**
+ * 深天蓝色
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_DEEPSKYBLUE = 27;
+ /**
+ * 青色
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_CYAN = 28;
+ /**
+ * 无法识别
+ */
+ public static final int EM_OBJECT_COLOR_TYPE_OTHER = 29;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_OBJECT_NONMOTORANGLE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_OBJECT_NONMOTORANGLE_TYPE.java
new file mode 100644
index 0000000..9964d9b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_OBJECT_NONMOTORANGLE_TYPE.java
@@ -0,0 +1,70 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 非机动车的角度
+* @origin autoTool
+* @date 2023/02/14 20:11:39
+*/
+public enum EM_OBJECT_NONMOTORANGLE_TYPE {
+/**
+未知
+*/
+ EM_OBJECT_NONMOTORANGLE_TYPE_UNKNOWN(0, "未知"),
+/**
+正面
+*/
+ EM_OBJECT_NONMOTORANGLE_TYPE_FRONT(1, "正面"),
+/**
+侧面
+*/
+ EM_OBJECT_NONMOTORANGLE_TYPE_SIDE(2, "侧面"),
+/**
+后面
+*/
+ EM_OBJECT_NONMOTORANGLE_TYPE_BEHIND(3, "后面");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_OBJECT_NONMOTORANGLE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_OBJECT_NONMOTORANGLE_TYPE enumType : EM_OBJECT_NONMOTORANGLE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_OBJECT_NONMOTORANGLE_TYPE enumType : EM_OBJECT_NONMOTORANGLE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_OBJECT_NONMOTORANGLE_TYPE getEnum(int value) {
+ for (EM_OBJECT_NONMOTORANGLE_TYPE e : EM_OBJECT_NONMOTORANGLE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_OBJECT_NONMOTORANGLE_TYPE.EM_OBJECT_NONMOTORANGLE_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_OBJECT_STORAGEBOX_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_OBJECT_STORAGEBOX_TYPE.java
new file mode 100644
index 0000000..a334766
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_OBJECT_STORAGEBOX_TYPE.java
@@ -0,0 +1,74 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 非机动车后备箱
+* @origin autoTool
+* @date 2023/02/14 20:11:39
+*/
+public enum EM_OBJECT_STORAGEBOX_TYPE {
+/**
+未知
+*/
+ EM_OBJECT_STORAGEBOX_UNKNOWN(0, "未知"),
+/**
+无后备箱
+*/
+ EM_OBJECT_STORAGEBOX_NO(1, "无后备箱"),
+/**
+自带箱
+*/
+ EM_OBJECT_STORAGEBOX_OWNBOX(2, "自带箱"),
+/**
+自装箱
+*/
+ EM_OBJECT_STORAGEBOX_SELFPACK(3, "自装箱"),
+/**
+自装箱和自带箱都有
+*/
+ EM_OBJECT_STORAGEBOX_ALL(4, "自装箱和自带箱都有");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_OBJECT_STORAGEBOX_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_OBJECT_STORAGEBOX_TYPE enumType : EM_OBJECT_STORAGEBOX_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_OBJECT_STORAGEBOX_TYPE enumType : EM_OBJECT_STORAGEBOX_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_OBJECT_STORAGEBOX_TYPE getEnum(int value) {
+ for (EM_OBJECT_STORAGEBOX_TYPE e : EM_OBJECT_STORAGEBOX_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_OBJECT_STORAGEBOX_TYPE.EM_OBJECT_STORAGEBOX_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_OCR_DETECTION_DETECT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_OCR_DETECTION_DETECT_TYPE.java
new file mode 100644
index 0000000..51ca055
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_OCR_DETECTION_DETECT_TYPE.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 检测类型
+*/
+public enum EM_OCR_DETECTION_DETECT_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_OCR_DETECTION_DETECT_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 温度
+ */
+ EM_OCR_DETECTION_DETECT_TYPE_TEMPERATURE(1, "温度"),
+ /**
+ * 称重
+ */
+ EM_OCR_DETECTION_DETECT_TYPE_WEIGH(2, "称重");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_OCR_DETECTION_DETECT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_OCR_DETECTION_DETECT_TYPE enumType : EM_OCR_DETECTION_DETECT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_OCR_DETECTION_DETECT_TYPE enumType : EM_OCR_DETECTION_DETECT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_OCR_DETECTION_TRIGGER_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_OCR_DETECTION_TRIGGER_TYPE.java
new file mode 100644
index 0000000..76a078e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_OCR_DETECTION_TRIGGER_TYPE.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 检测事件类型
+*/
+public enum EM_OCR_DETECTION_TRIGGER_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_OCR_DETECTION_TRIGGER_TYPE_UNKNOWN(-1, "未知"),
+ /**
+ * 大于上限
+ */
+ EM_OCR_DETECTION_TRIGGER_TYPE_GREATER_THAN_TOPLIMIT(0, "大于上限"),
+ /**
+ * 小于下限
+ */
+ EM_OCR_DETECTION_TRIGGER_TYPE_LESS_THAN_LOWERLIMIT(1, "小于下限"),
+ /**
+ * 等于阈值
+ */
+ EM_OCR_DETECTION_TRIGGER_TYPE_EQUAL_TO_THRESHOLD(2, "等于阈值");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_OCR_DETECTION_TRIGGER_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_OCR_DETECTION_TRIGGER_TYPE enumType : EM_OCR_DETECTION_TRIGGER_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_OCR_DETECTION_TRIGGER_TYPE enumType : EM_OCR_DETECTION_TRIGGER_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ONLINE_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/EM_ONLINE_STATUS.java
new file mode 100644
index 0000000..80f12e8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ONLINE_STATUS.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 在线状态
+* @date 2022/08/31 14:44:15
+*/
+public enum EM_ONLINE_STATUS {
+/**
+未知
+*/
+ EM_ONLINE_UNKNOWN(0, "未知"),
+/**
+离线
+*/
+ EM_ONLINE_OFF(1, "离线"),
+/**
+在线
+*/
+ EM_ONLINE_ON(2, "在线");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_ONLINE_STATUS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_ONLINE_STATUS enumType : EM_ONLINE_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_ONLINE_STATUS enumType : EM_ONLINE_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_ONLINE_STATUS getEnum(int value) {
+ for (EM_ONLINE_STATUS e : EM_ONLINE_STATUS.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_ONLINE_STATUS.EM_ONLINE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_OPEN_STROBE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_OPEN_STROBE_TYPE.java
new file mode 100644
index 0000000..ea6fda7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_OPEN_STROBE_TYPE.java
@@ -0,0 +1,36 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 开闸类型
+ * @date 2021/2/22
+ */
+public enum EM_OPEN_STROBE_TYPE {
+ /**
+ * 未知
+ */
+ EM_OPEN_STROBE_TYPE_UNKNOWN,
+ /**
+ * 正常开闸(默认)
+ */
+ EM_OPEN_STROBE_TYPE_NORMAL,
+ /**
+ * 测试手动开闸(用于施工前期)
+ */
+ EM_OPEN_STROBE_TYPE_TEST,
+ /**
+ * 手动开闸
+ */
+ EM_OPEN_STROBE_TYPE_MANUAL;
+
+ public static EM_OPEN_STROBE_TYPE getOpenStrobeTyppe(int type){
+ for (EM_OPEN_STROBE_TYPE strobeType : EM_OPEN_STROBE_TYPE.values() ) {
+ if(strobeType.ordinal()==type){
+ return strobeType;
+ }
+ }
+ return EM_OPEN_STROBE_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_OPERATE_FACERECONGNITIONDB_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_OPERATE_FACERECONGNITIONDB_TYPE.java
new file mode 100644
index 0000000..e9a19a8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_OPERATE_FACERECONGNITIONDB_TYPE.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 目标识别数据库操作
+ * @date 2021/4/26
+ */
+public enum EM_OPERATE_FACERECONGNITIONDB_TYPE {
+ NET_FACERECONGNITIONDB_UNKOWN,
+ /** 删除人员信息和人脸样本 */
+ NET_FACERECONGNITIONDB_ADD,
+ /** 添加人员信息和人脸样本,如果人员已经存在,图片数据和原来的数据合并 */
+ NET_FACERECONGNITIONDB_DELETE,
+ /** 修改人员信息和人脸样本,人员的UID标识必填 */
+ NET_FACERECONGNITIONDB_MODIFY,
+ /** 通过UID删除人员信息和人脸样本 */
+ NET_FACERECONGNITIONDB_DELETE_BY_UID;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_OPERATE_USERINFO_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_OPERATE_USERINFO_TYPE.java
new file mode 100644
index 0000000..ba100d9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_OPERATE_USERINFO_TYPE.java
@@ -0,0 +1,74 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description CLIENT_OperateUserInfoNew接口参数 nOperateType 对应的值含义
+ * @date 2023/03/10 15:08:40
+ */
+public enum EM_OPERATE_USERINFO_TYPE {
+ /**
+ * 增加用户,opParam对应结构体 USER_INFO_NEW
+ */
+ EM_OPERATE_USERINFO_TYPE_ADD_USER(3, "增加用户"),
+ /**
+ * 删除用户,opParam对应结构体 USER_INFO_NEW
+ */
+ EM_OPERATE_USERINFO_TYPE_DEL_USER(4, "删除用户"),
+ /**
+ * 修改用户,opParam为修改后的用户信息 对应结构体 USER_INFO_NEW, subParam为原始用户信息 对应结构体
+ * USER_INFO_NEW
+ */
+ EM_OPERATE_USERINFO_TYPE_MODIFY_USER(5, "修改用户"),
+ /**
+ * 修改密码,opParam为修改后的密码 对应结构体 USER_INFO_NEW, subParam为原始密码 对应结构体 USER_INFO_NEW
+ */
+ EM_OPERATE_USERINFO_TYPE_MODIFY_PWD(6, "修改密码"),
+ /**
+ * 增加用户组,opParam对应结构体 USER_GROUP_INFO_EX2
+ */
+ EM_OPERATE_USERINFO_TYPE_ADD_GROUP(7, "增加用户组"),
+ /**
+ * 删除用户组,opParam对应结构体 USER_GROUP_INFO_EX2
+ */
+ EM_OPERATE_USERINFO_TYPE_DEL_GROUP(8, "删除用户组"),
+ /**
+ * 修改用户组,opParam为修改后的用户组信息 对应结构体 USER_GROUP_INFO_EX2,subParam为原始用户组信息 对应结构体
+ * USER_GROUP_INFO_EX2
+ */
+ EM_OPERATE_USERINFO_TYPE_MODIFY_GROUP(9, "修改用户组");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_OPERATE_USERINFO_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_OPERATE_USERINFO_TYPE enumType : EM_OPERATE_USERINFO_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_OPERATE_USERINFO_TYPE enumType : EM_OPERATE_USERINFO_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_OPERATION_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_OPERATION_MODE.java
new file mode 100644
index 0000000..63f00cb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_OPERATION_MODE.java
@@ -0,0 +1,69 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 操作模式
+* @date 2022/08/31 14:44:16
+*/
+public enum EM_OPERATION_MODE {
+/**
+未知
+*/
+ EM_OPERATION_UNKNOWN(-1, "未知"),
+/**
+紧急操作
+*/
+ EM_OPERATION_PANIC(0, "紧急操作"),
+/**
+控制操作
+*/
+ EM_OPERATION_CONTROL(1, "控制操作"),
+/**
+静音火灾报警操作
+*/
+ EM_OPERATION_MUTE_FIRE_ALARM(2, "静音火灾报警操作");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_OPERATION_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_OPERATION_MODE enumType : EM_OPERATION_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_OPERATION_MODE enumType : EM_OPERATION_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_OPERATION_MODE getEnum(int value) {
+ for (EM_OPERATION_MODE e : EM_OPERATION_MODE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_OPERATION_MODE.EM_OPERATION_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_OUTPUT_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_OUTPUT_STATE.java
new file mode 100644
index 0000000..f8f7cb5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_OUTPUT_STATE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 输出状态
+* @date 2022/10/09 11:29:42
+*/
+public enum EM_OUTPUT_STATE {
+/**
+未知
+*/
+ EM_OUTPUT_STATE_UNKNOWN(-1, "未知"),
+/**
+关闭
+*/
+ EM_OUTPUT_STATE_CLOSE(0, "关闭"),
+/**
+打开
+*/
+ EM_OUTPUT_STATE_OPEN(1, "打开");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_OUTPUT_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_OUTPUT_STATE enumType : EM_OUTPUT_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_OUTPUT_STATE enumType : EM_OUTPUT_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_OUTPUT_STATE getEnum(int value) {
+ for (EM_OUTPUT_STATE e : EM_OUTPUT_STATE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_OUTPUT_STATE.EM_OUTPUT_STATE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_OUTPUT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_OUTPUT_TYPE.java
new file mode 100644
index 0000000..39c7ac7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_OUTPUT_TYPE.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 输出通道类型
+ * @date 2023/03/15 16:46:55
+ */
+public enum EM_OUTPUT_TYPE {
+ /**
+ * 未知
+ */
+ EM_OUTPUT_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 警号
+ */
+ EM_OUTPUT_TYPE_SIREN(1, "警号"),
+ /**
+ * 输出通道
+ */
+ EM_OUTPUT_TYPE_ALARMOUT(2, "输出通道");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_OUTPUT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_OUTPUT_TYPE enumType : EM_OUTPUT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_OUTPUT_TYPE enumType : EM_OUTPUT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_OVERSEA_VEHICLE_CATEGORY_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_OVERSEA_VEHICLE_CATEGORY_TYPE.java
new file mode 100644
index 0000000..abae63b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_OVERSEA_VEHICLE_CATEGORY_TYPE.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 海外车辆类型中的子类别,一个车辆只能是子类型的某一种。
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_OVERSEA_VEHICLE_CATEGORY_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_OVERSEA_VEHICLE_CATEGORY_UNKNOWN = 0;
+ /**
+ * 摩托车
+ */
+ public static final int EM_OVERSEA_VEHICLE_CATEGORY_MOTORCYCLE = 1;
+ /**
+ * 轻型货车
+ */
+ public static final int EM_OVERSEA_VEHICLE_CATEGORY_LIGHT_GOODS_VEHICLE = 2;
+ /**
+ * 公司用私家车
+ */
+ public static final int EM_OVERSEA_VEHICLE_CATEGORY_COMPANY_VEHICLE = 3;
+ /**
+ * 个人用私家车
+ */
+ public static final int EM_OVERSEA_VEHICLE_CATEGORY_PRIVATE_VEHICLE = 4;
+ /**
+ * TAXI或者快线车
+ */
+ public static final int EM_OVERSEA_VEHICLE_CATEGORY_TAXI = 5;
+ /**
+ * 拖车
+ */
+ public static final int EM_OVERSEA_VEHICLE_CATEGORY_TRAILER = 6;
+ /**
+ * 工程车
+ */
+ public static final int EM_OVERSEA_VEHICLE_CATEGORY_ENGINEERING_PLANT_VEHICLE = 7;
+ /**
+ * 超大货车
+ */
+ public static final int EM_OVERSEA_VEHICLE_CATEGORY_VERY_HEAVY_GOODS_VEHICLE = 8;
+ /**
+ * 大货车
+ */
+ public static final int EM_OVERSEA_VEHICLE_CATEGORY_HEAVY_GOODS_VEHICLE = 9;
+ /**
+ * 公共BUS
+ */
+ public static final int EM_OVERSEA_VEHICLE_CATEGORY_PUBLIC_BUS = 10;
+ /**
+ * 私营BUS
+ */
+ public static final int EM_OVERSEA_VEHICLE_CATEGORY_PRIVATE_BUS = 11;
+ /**
+ * 特殊车辆
+ */
+ public static final int EM_OVERSEA_VEHICLE_CATEGORY_SPECIAL_VEHICLE = 12;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PARKINGSPACE_DIRECTION.java b/src/main/java/com/netsdk/lib/enumeration/EM_PARKINGSPACE_DIRECTION.java
new file mode 100644
index 0000000..6d6c91c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PARKINGSPACE_DIRECTION.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 停车方向
+ *
+ * @author 47040
+ * @since Created in 2020/11/18 14:48
+ */
+public enum EM_PARKINGSPACE_DIRECTION {
+ /**
+ * 未知
+ */
+ EM_PARKINGSPACE_DIRECTION_UNKNOWN(0, "未知"),
+ /**
+ * 逆向
+ */
+ EM_PARKINGSPACE_DIRECTION_REVERSE(1, "逆向"),
+ /**
+ * 正向
+ */
+ EM_PARKINGSPACE_DIRECTION_FORWARD(2, "正向");
+
+ private int value;
+ private String note;
+
+ EM_PARKINGSPACE_DIRECTION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_PARKINGSPACE_DIRECTION enumType : EM_PARKINGSPACE_DIRECTION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_PARKINGSPACE_DIRECTION enumType : EM_PARKINGSPACE_DIRECTION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_PARKINGSPACE_DIRECTION getEnum(int value) {
+ for (EM_PARKINGSPACE_DIRECTION e : EM_PARKINGSPACE_DIRECTION.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_PARKINGSPACE_DIRECTION.EM_PARKINGSPACE_DIRECTION_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PARKINGSPACE_LIGHT_COLOR.java b/src/main/java/com/netsdk/lib/enumeration/EM_PARKINGSPACE_LIGHT_COLOR.java
new file mode 100644
index 0000000..7a7e22f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PARKINGSPACE_LIGHT_COLOR.java
@@ -0,0 +1,79 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 车位指示灯颜色
+*/
+public enum EM_PARKINGSPACE_LIGHT_COLOR
+{
+ /**
+ * 未知
+ */
+ EM_PARKINGSPACE_LIGHT_COLOR_UNKNOWN(0, "未知"),
+ /**
+ * 红色
+ */
+ EM_PARKINGSPACE_LIGHT_COLOR_RED(1, "红色"),
+ /**
+ * 黄色
+ */
+ EM_PARKINGSPACE_LIGHT_COLOR_YELLOW(2, "黄色"),
+ /**
+ * 绿色
+ */
+ EM_PARKINGSPACE_LIGHT_COLOR_GREEN(3, "绿色"),
+ /**
+ * 蓝色
+ */
+ EM_PARKINGSPACE_LIGHT_COLOR_BLUE(4, "蓝色"),
+ /**
+ * 紫色
+ */
+ EM_PARKINGSPACE_LIGHT_COLOR_PURPLE(5, "紫色"),
+ /**
+ * 白色
+ */
+ EM_PARKINGSPACE_LIGHT_COLOR_WHITE(6, "白色"),
+ /**
+ * 粉色
+ */
+ EM_PARKINGSPACE_LIGHT_COLOR_PINK(7, "粉色"),
+ /**
+ * 青色
+ */
+ EM_PARKINGSPACE_LIGHT_COLOR_CYAN(8, "青色");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_PARKINGSPACE_LIGHT_COLOR(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_PARKINGSPACE_LIGHT_COLOR enumType : EM_PARKINGSPACE_LIGHT_COLOR.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_PARKINGSPACE_LIGHT_COLOR enumType : EM_PARKINGSPACE_LIGHT_COLOR.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PARKINGSPACE_LIGHT_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_PARKINGSPACE_LIGHT_STATE.java
new file mode 100644
index 0000000..c76b620
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PARKINGSPACE_LIGHT_STATE.java
@@ -0,0 +1,67 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 车位指示灯状态
+*/
+public enum EM_PARKINGSPACE_LIGHT_STATE
+{
+ /**
+ * 未知
+ */
+ EM_PARKINGSPACE_LIGHT_STATE_UNKNOWN(-1, "未知"),
+ /**
+ * 灭
+ */
+ EM_PARKINGSPACE_LIGHT_STATE_OFF(0, "灭"),
+ /**
+ * 亮
+ */
+ EM_PARKINGSPACE_LIGHT_STATE_ON(1, "亮"),
+ /**
+ * 闪烁
+ */
+ EM_PARKINGSPACE_LIGHT_STATE_GLINT(2, "闪烁"),
+ /**
+ * 上一个状态
+ */
+ EM_PARKINGSPACE_LIGHT_STATE_LAST_STATE(3, "上一个状态"),
+ /**
+ * 两种颜色交替闪烁
+ */
+ EM_PARKINGSPACE_LIGHT_STATE_ALTERNATE_FLICKER(4, "两种颜色交替闪烁");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_PARKINGSPACE_LIGHT_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_PARKINGSPACE_LIGHT_STATE enumType : EM_PARKINGSPACE_LIGHT_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_PARKINGSPACE_LIGHT_STATE enumType : EM_PARKINGSPACE_LIGHT_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PARKINGSPACE_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_PARKINGSPACE_STATE.java
new file mode 100644
index 0000000..770d3aa
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PARKINGSPACE_STATE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 车位状态
+ *
+ * @author 47040
+ * @since Created in 2020/11/18 13:36
+ */
+public enum EM_PARKINGSPACE_STATE {
+ /**
+ * 未知
+ */
+ EM_PARKINGSPACE_STATE_UNKNOWN(-1, "未知"),
+ /**
+ * 车位无车
+ */
+ EM_PARKINGSPACE_STATE_NOPARKING(0, "车位无车"),
+ /**
+ * 车位有车
+ */
+ EM_PARKINGSPACE_STATE_PARKING(1, "车位有车");
+
+ private final int value;
+ private final String note;
+
+ EM_PARKINGSPACE_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_PARKINGSPACE_STATE enumType : EM_PARKINGSPACE_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_PARKINGSPACE_STATE enumType : EM_PARKINGSPACE_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_PARKINGSPACE_STATE getEnum(int value) {
+ for (EM_PARKINGSPACE_STATE e : EM_PARKINGSPACE_STATE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_PARKINGSPACE_STATE.EM_PARKINGSPACE_STATE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PARKINGSPACE_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/EM_PARKINGSPACE_STATUS.java
new file mode 100644
index 0000000..29e0de2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PARKINGSPACE_STATUS.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 综合状态
+*/
+public enum EM_PARKINGSPACE_STATUS
+{
+ EM_PARKINGSPACE_STATUS_UNKNOWN(0, ""),
+ /**
+ * 占用
+ */
+ EM_PARKINGSPACE_STATUS_BUSY(1, "占用"),
+ /**
+ * 空闲
+ */
+ EM_PARKINGSPACE_STATUS_FREE(2, "空闲"),
+ /**
+ * 压线
+ */
+ EM_PARKINGSPACE_STATUS_OVERLINE(3, "压线");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_PARKINGSPACE_STATUS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_PARKINGSPACE_STATUS enumType : EM_PARKINGSPACE_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_PARKINGSPACE_STATUS enumType : EM_PARKINGSPACE_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PARKINGSPACE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_PARKINGSPACE_TYPE.java
new file mode 100644
index 0000000..a6529f1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PARKINGSPACE_TYPE.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 车位类型
+*/
+public enum EM_PARKINGSPACE_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_PARKINGSPACE_TYPE_UNKNOWN(-1, "未知"),
+ /**
+ * 小车车位
+ */
+ EM_PARKINGSPACE_TYPE_SMALL_CAR(0, "小车车位"),
+ /**
+ * 大车车位
+ */
+ EM_PARKINGSPACE_TYPE_BIG_CAR(1, "大车车位");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_PARKINGSPACE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_PARKINGSPACE_TYPE enumType : EM_PARKINGSPACE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_PARKINGSPACE_TYPE enumType : EM_PARKINGSPACE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PARKING_SPACE_SCENE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_PARKING_SPACE_SCENE_TYPE.java
new file mode 100644
index 0000000..58ded72
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PARKING_SPACE_SCENE_TYPE.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 场景类型
+*/
+public enum EM_PARKING_SPACE_SCENE_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_PARKING_SPACE_SCENE_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 车位检测类型
+ */
+ EM_PARKING_SPACE_SCENE_TYPE_PARKING_SPACE(1, "车位检测类型"),
+ /**
+ * 车位统计类型
+ */
+ EM_PARKING_SPACE_SCENE_TYPE_PARKING_STATISTICS(2, "车位统计类型");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_PARKING_SPACE_SCENE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_PARKING_SPACE_SCENE_TYPE enumType : EM_PARKING_SPACE_SCENE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_PARKING_SPACE_SCENE_TYPE enumType : EM_PARKING_SPACE_SCENE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PARKING_SPACE_STATISTICS_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_PARKING_SPACE_STATISTICS_MODE.java
new file mode 100644
index 0000000..f9312e2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PARKING_SPACE_STATISTICS_MODE.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 统计模式
+*/
+public enum EM_PARKING_SPACE_STATISTICS_MODE
+{
+ /**
+ * 未知
+ */
+ EM_PARKING_SPACE_STATISTICS_MODE_UNKNOWN(0, "未知"),
+ /**
+ * 区域模式
+ */
+ EM_PARKING_SPACE_STATISTICS_MODE_AREA_MODE(1, "区域模式"),
+ /**
+ * 车位模式
+ */
+ EM_PARKING_SPACE_STATISTICS_MODE_SPACE_MODE(2, "车位模式");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_PARKING_SPACE_STATISTICS_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_PARKING_SPACE_STATISTICS_MODE enumType : EM_PARKING_SPACE_STATISTICS_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_PARKING_SPACE_STATISTICS_MODE enumType : EM_PARKING_SPACE_STATISTICS_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PARKING_SPACE_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/EM_PARKING_SPACE_STATUS.java
new file mode 100644
index 0000000..e16c774
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PARKING_SPACE_STATUS.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 车位状态
+*/
+public enum EM_PARKING_SPACE_STATUS
+{
+ /**
+ * 未知
+ */
+ EM_PARKING_SPACE_UNKNOWN(0, "未知"),
+ /**
+ * 有车
+ */
+ EM_PARKING_SPACE_PARK(1, "有车"),
+ /**
+ * 无车
+ */
+ EM_PARKING_SPACE_N0_PARK(2, "无车");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_PARKING_SPACE_STATUS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_PARKING_SPACE_STATUS enumType : EM_PARKING_SPACE_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_PARKING_SPACE_STATUS enumType : EM_PARKING_SPACE_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PARKING_SPACE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_PARKING_SPACE_TYPE.java
new file mode 100644
index 0000000..eb4a8d6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PARKING_SPACE_TYPE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 260611
+ * @description 车位有车事件类型
+ * @origin autoTool
+ * @date 2023/06/20 10:13:16
+ */
+public enum EM_PARKING_SPACE_TYPE {
+ /**
+ * 未知
+ */
+ EM_PARKING_SPACE_TYPE_UNKNOWN(-1, "未知"),
+ /**
+ * 正常驶入
+ */
+ EM_PARKING_SPACE_TYPE_NORMAL(0, "正常驶入"),
+ /**
+ * 泊车变更事件
+ */
+ EM_PARKING_SPACE_TYPE_CHANGE(1, "泊车变更事件");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_PARKING_SPACE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_PARKING_SPACE_TYPE enumType : EM_PARKING_SPACE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_PARKING_SPACE_TYPE enumType : EM_PARKING_SPACE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+ public static EM_PARKING_SPACE_TYPE getEnum(int value) {
+ for (EM_PARKING_SPACE_TYPE e : EM_PARKING_SPACE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_PARKING_SPACE_TYPE.EM_PARKING_SPACE_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PARKING_TRIGGER_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_PARKING_TRIGGER_TYPE.java
new file mode 100644
index 0000000..e8f4d0d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PARKING_TRIGGER_TYPE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 车位抓拍触发类型
+ *
+ * @author 47040
+ * @since Created in 2020/11/18 15:06
+ */
+public enum EM_PARKING_TRIGGER_TYPE {
+ /**
+ * 未知
+ */
+ EM_PARKING_TRIGGER_TYPE_UNKNOWN(-1, "未知"),
+ /**
+ * 非手动触发
+ */
+ EM_PARKING_TRIGGER_TYPE_NONMANUAL(0, "非手动触发"),
+ /**
+ * 手动触发
+ */
+ EM_PARKING_TRIGGER_TYPE_MANUAL(1, "手动触发");
+
+ private int value;
+ private String note;
+
+ EM_PARKING_TRIGGER_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_PARKING_TRIGGER_TYPE enumType : EM_PARKING_TRIGGER_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_PARKING_TRIGGER_TYPE enumType : EM_PARKING_TRIGGER_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_PARKING_TRIGGER_TYPE getEnum(int value) {
+ for (EM_PARKING_TRIGGER_TYPE e : EM_PARKING_TRIGGER_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_PARKING_TRIGGER_TYPE.EM_PARKING_TRIGGER_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PARTITION_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_PARTITION_TYPE.java
new file mode 100644
index 0000000..2a807fd
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PARTITION_TYPE.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 分区类型
+ * @date 2021/01/21
+ */
+public enum EM_PARTITION_TYPE {
+ // 未知
+ EM_PARTITION_UNKNOWN(0, "未知"),
+ // 读写
+ EM_PARTITION_READ_WIRTE(1, "读写"),
+ // 只读
+ EM_PARTITION_READ_ONLY(2, "只读"),
+ // 一般的
+ EM_PARTITION_READ_GENERIC(3, "一般的");
+
+ private int value;
+ private String note;
+
+ private EM_PARTITION_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_PARTITION_TYPE enumType : EM_PARTITION_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_PARTITION_TYPE enumType : EM_PARTITION_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PASSERBY_DB_DUPLICATE_REMOVE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_PASSERBY_DB_DUPLICATE_REMOVE_TYPE.java
new file mode 100644
index 0000000..1661eed
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PASSERBY_DB_DUPLICATE_REMOVE_TYPE.java
@@ -0,0 +1,45 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 路人库去重策略类型
+ * @date 2021/2/22
+ */
+public enum EM_PASSERBY_DB_DUPLICATE_REMOVE_TYPE {
+ /** 未知 */
+ EM_DUPLICATE_REMOVE_TYPE_UNKNOWN(-1, "未知"),
+ /** 无条件去重 */
+ EM_DUPLICATE_REMOVE_TYPE_ALL(0, "无条件去重"),
+ /** 按时间间隔去重 */
+ EM_DUPLICATE_REMOVE_TYPE_TIME(1, "按时间间隔去重"),
+ /** 按时间段间隔去重 */
+ EM_DUPLICATE_REMOVE_TYPE_TIME_SLOT(2, "按时间段间隔去重");
+
+ private int type;
+ private String desc;
+
+ EM_PASSERBY_DB_DUPLICATE_REMOVE_TYPE(int type, String desc) {
+ this.type = type;
+ this.desc = desc;
+ }
+
+ public int getType() {
+ return type;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public static EM_PASSERBY_DB_DUPLICATE_REMOVE_TYPE getDuplicateRemoveType(int type) {
+ for (EM_PASSERBY_DB_DUPLICATE_REMOVE_TYPE removeType :
+ EM_PASSERBY_DB_DUPLICATE_REMOVE_TYPE.values()) {
+ if (removeType.type == type) {
+ return removeType;
+ }
+ }
+ return EM_DUPLICATE_REMOVE_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PASSERBY_DB_OVERWRITE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_PASSERBY_DB_OVERWRITE_TYPE.java
new file mode 100644
index 0000000..5182295
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PASSERBY_DB_OVERWRITE_TYPE.java
@@ -0,0 +1,42 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 路人库满时覆盖策略
+ * @date 2021/2/22
+ */
+public enum EM_PASSERBY_DB_OVERWRITE_TYPE {
+ /** 未知 */
+ EM_OVERWRITE_TYPE_UNKNOWN(-1, "未知"),
+ /** 满停止 */
+ EM_OVERWRITE_TYPE_FULL_STOP(0, "满停止"),
+ /** 满覆盖 */
+ EM_OVERWRITE_TYPE_FULL_COVERAGE(1, "满覆盖");
+
+ private int type;
+ private String desc;
+
+ EM_PASSERBY_DB_OVERWRITE_TYPE(int type, String desc) {
+ this.type = type;
+ this.desc = desc;
+ }
+
+ public int getType() {
+ return type;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public static EM_PASSERBY_DB_OVERWRITE_TYPE getOverwriteType(int type) {
+ for (EM_PASSERBY_DB_OVERWRITE_TYPE overwriteType : EM_PASSERBY_DB_OVERWRITE_TYPE.values()) {
+ if (overwriteType.type == type) {
+ return overwriteType;
+ }
+ }
+ return EM_OVERWRITE_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PASS_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_PASS_MODE.java
new file mode 100644
index 0000000..7975104
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PASS_MODE.java
@@ -0,0 +1,39 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 通行模式
+ * @date 2021/2/7
+ */
+public enum EM_PASS_MODE {
+ /** 未知 */
+ EM_PASS_MODE_UNKNOWN(-1, "未知"),
+ /** 进授权出授权 */
+ EM_PASS_MODE_IN_AUTHORIZATION_OUT_AUTHORIZATION(0, "进授权出授权"),
+ /** 进授权出自由 */
+ EM_PASS_MODE_IN_AUTHORIZATION_OUT_FREE(1, "进授权出自由"),
+ /** 进授权出禁止 */
+ EM_PASS_MODE_IN_AUTHORIZATION_OUT_FORBID(2, "进授权出禁止"),
+ /** 进自由出授权 */
+ EM_PASS_MODE_IN_FREE_OUT_AUTHORIZATION(3, "进自由出授权"),
+ /** 进自由出自由 */
+ EM_PASS_MODE_IN_FREE_OUT_FREE(4, "进自由出自由"),
+ /** 进自由出禁止 */
+ EM_PASS_MODE_IN_FREE_OUT_FORBID(5, "进自由出禁止"),
+ /** 进禁止出授权 */
+ EM_PASS_MODE_IN_FORBID_OUT_AUTHORIZATION(6, "进禁止出授权"),
+ /** 进禁止出自由 */
+ EM_PASS_MODE_IN_FORBID_OUT_FREE(7, "进禁止出自由"),
+ /** 进禁止出禁止 */
+ EM_PASS_MODE_IN_FORBID_OUT_FORBID(8, "进禁止出禁止");
+
+ private int mode;
+ private String desc;
+
+ EM_PASS_MODE(int mode, String desc) {
+ this.mode = mode;
+ this.desc = desc;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PEOPLE_GROUP_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_PEOPLE_GROUP_TYPE.java
new file mode 100644
index 0000000..c4dd5ee
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PEOPLE_GROUP_TYPE.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 人员组类型
+*/
+public enum EM_PEOPLE_GROUP_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_PEOPLE_GROUP_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 历史数据库,保存视频通道的抓拍目标图片
+ */
+ EM_PEOPLE_GROUP_TYPE_HISTORYDB(1, "历史数据库,保存视频通道的抓拍目标图片"),
+ /**
+ * 禁止名单组,保存外部导入的图片
+ */
+ EM_PEOPLE_GROUP_TYPE_BLACKLISTDB(2, "禁止名单组,保存外部导入的图片"),
+ /**
+ * 报警组
+ */
+ EM_PEOPLE_GROUP_TYPE_ALARMDB(3, "报警组");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_PEOPLE_GROUP_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_PEOPLE_GROUP_TYPE enumType : EM_PEOPLE_GROUP_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_PEOPLE_GROUP_TYPE enumType : EM_PEOPLE_GROUP_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PERIPHERAL_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_PERIPHERAL_TYPE.java
new file mode 100644
index 0000000..8bbc840
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PERIPHERAL_TYPE.java
@@ -0,0 +1,91 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 外设类型
+*/
+public enum EM_PERIPHERAL_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_PERIPHERAL_NUKNOWN(0, "未知"),
+ /**
+ * 闸机控制板
+ */
+ EM_PERIPHERAL_ASG_CONTROLLER(1, "闸机控制板"),
+ /**
+ * 闸机电机驱动
+ */
+ EM_PERIPHERAL_ASG_MOTOR(2, "闸机电机驱动"),
+ /**
+ * 安检门门板控制器
+ */
+ EM_PERIPHERAL_SECURITYGATE_DOOR_CONTROLLER(3, "安检门门板控制器"),
+ /**
+ * 红外测温模块
+ */
+ EM_PERIPHERAL_INFRARED_TEMPERATURE_UNIT(4, "红外测温模块"),
+ /**
+ * 闸机语音模块
+ */
+ EM_PERIPHERAL_ASG_VOICE(5, "闸机语音模块"),
+ /**
+ * 闸机读卡器
+ */
+ EM_PERIPHERAL_ASG_READER(6, "闸机读卡器"),
+ /**
+ * 信号机通讯板
+ */
+ EM_PERIPHERAL_RTSCCOMMBOARD(7, "信号机通讯板"),
+ /**
+ * 单片机
+ */
+ EM_PERIPHERAL_SINGLECHIPMICROCOMPUTER(8, "单片机"),
+ /**
+ * 重合闸
+ */
+ EM_PERIPHERAL_RECLOSING(9, "重合闸"),
+ /**
+ * 空开
+ */
+ EM_PERIPHERAL_AIRSWITCHVERSION(10, "空开"),
+ /**
+ * 国密芯片COS版本
+ */
+ EM_PERIPHERAL_COS(11, "国密芯片COS版本");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_PERIPHERAL_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_PERIPHERAL_TYPE enumType : EM_PERIPHERAL_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_PERIPHERAL_TYPE enumType : EM_PERIPHERAL_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PERSON_FEATURE_ERRCODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_PERSON_FEATURE_ERRCODE.java
new file mode 100644
index 0000000..d676788
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PERSON_FEATURE_ERRCODE.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 建模失败原因
+ * @date 2021/4/22
+ */
+public enum EM_PERSON_FEATURE_ERRCODE {
+ /** 未知 */
+ EM_PERSON_FEATURE_ERRCODE_UNKNOWN(0, "未知"),
+ /** 图片格式问题 */
+ EM_PERSON_FEATURE_ERRCODE_PIC_FORMAT(1, "图片格式问题"),
+ /** 无人脸或不清晰 */
+ EM_PERSON_FEATURE_ERRCODE_NO_FACE(2, "无人脸或不清晰"),
+ /** 多个人脸 */
+ EM_PERSON_FEATURE_ERRCODE_MULTI_FACE(3, "多个人脸"),
+ /** 图片解码失败 */
+ EM_PERSON_FEATURE_ERRCODE_PIC_DECODE_FAIL(4, "图片解码失败"),
+ /** 不推荐入库 */
+ EM_PERSON_FEATURE_ERRCODE_NOT_RECOMMEND(5, "不推荐入库"),
+ /** 数据库操作失败 */
+ EM_PERSON_FEATURE_ERRCODE_FACEDB_FAIL(6, "数据库操作失败"),
+ /** 获取图片失败 */
+ EM_PERSON_FEATURE_ERRCODE_GET_PICTURE(7, "获取图片失败"),
+ /** 系统异常 */
+ EM_PERSON_FEATURE_ERRCODE_SYSTEM_ERROR(8, "系统异常");
+
+ private int errorCode;
+ private String reason;
+
+ EM_PERSON_FEATURE_ERRCODE(int errorCode, String reason) {
+ this.errorCode = errorCode;
+ this.reason = reason;
+ }
+
+ public int getErrorCode() {
+ return errorCode;
+ }
+
+ public void setErrorCode(int errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ public String getReason() {
+ return reason;
+ }
+
+ public void setReason(String reason) {
+ this.reason = reason;
+ }
+
+ public static EM_PERSON_FEATURE_ERRCODE getError(int errorCode) {
+ for (EM_PERSON_FEATURE_ERRCODE personError : EM_PERSON_FEATURE_ERRCODE.values()) {
+ if (personError.errorCode == errorCode) {
+ return personError;
+ }
+ }
+ return EM_PERSON_FEATURE_ERRCODE_UNKNOWN;
+ }
+
+ public static String getErrorMessage(int errorCode) {
+ return getError(errorCode).getReason();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PERSON_INTRUDE_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/EM_PERSON_INTRUDE_STATUS.java
new file mode 100644
index 0000000..b9a31d0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PERSON_INTRUDE_STATUS.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 人员闯入报警标志
+*/
+public enum EM_PERSON_INTRUDE_STATUS
+{
+ /**
+ * 未知
+ */
+ EM_PERSON_INTRUDE_STATUS_UNKNOWN(-1, "未知"),
+ /**
+ * 无人员闯入
+ */
+ EM_PERSON_INTRUDE_STATUS_UNMANNED(0, "无人员闯入"),
+ /**
+ * 有人员闯入
+ */
+ EM_PERSON_INTRUDE_STATUS_SOMEONE(1, "有人员闯入");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_PERSON_INTRUDE_STATUS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_PERSON_INTRUDE_STATUS enumType : EM_PERSON_INTRUDE_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_PERSON_INTRUDE_STATUS enumType : EM_PERSON_INTRUDE_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PIC_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_PIC_TYPE.java
new file mode 100644
index 0000000..6538bfc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PIC_TYPE.java
@@ -0,0 +1,61 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 图片类型
+* @date 2022/06/28 19:24:08
+*/
+public enum EM_PIC_TYPE {
+/**
+未知
+*/
+ EM_PIC_TYPE_UNKNOWN(-1, "未知"),
+/**
+算法处理后的图片
+*/
+ EM_PIC_TYPE_ALGORITHMICALLY_PROCESSED(0, "算法处理后的图片");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_PIC_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_PIC_TYPE enumType : EM_PIC_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_PIC_TYPE enumType : EM_PIC_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_PIC_TYPE getEnum(int value) {
+ for (EM_PIC_TYPE e : EM_PIC_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_PIC_TYPE.EM_PIC_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PLATE_ATTRIBUTE.java b/src/main/java/com/netsdk/lib/enumeration/EM_PLATE_ATTRIBUTE.java
new file mode 100644
index 0000000..dc2fc5c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PLATE_ATTRIBUTE.java
@@ -0,0 +1,73 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 260611
+ * @description 车牌属性
+ * @date 2023/01/10 19:44:59
+ */
+public enum EM_PLATE_ATTRIBUTE {
+ /**
+ * 未知
+ */
+ EM_PLATE_ATTRIBUTE_UNKNOWN(0, "未知"),
+ /**
+ * 正常
+ */
+ EM_PLATE_ATTRIBUTE_NORMAL(1, "正常"),
+ /**
+ * 无牌
+ */
+ EM_PLATE_ATTRIBUTE_NO_PLATE(2, "无牌"),
+ /**
+ * 部分遮挡/污损
+ */
+ EM_PLATE_ATTRIBUTE_PARTIAL_OCCLUSION(3, "部分遮挡/污损"),
+ /**
+ * 完全遮挡/污损
+ */
+ EM_PLATE_ATTRIBUTE_FULL_OCCLUSION(4, "完全遮挡/污损");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_PLATE_ATTRIBUTE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_PLATE_ATTRIBUTE enumType : EM_PLATE_ATTRIBUTE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_PLATE_ATTRIBUTE enumType : EM_PLATE_ATTRIBUTE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_PLATE_ATTRIBUTE getEnum(int value) {
+ for (EM_PLATE_ATTRIBUTE e : EM_PLATE_ATTRIBUTE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_PLATE_ATTRIBUTE.EM_PLATE_ATTRIBUTE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PLATE_COLOR_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_PLATE_COLOR_TYPE.java
new file mode 100644
index 0000000..80d1e2c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PLATE_COLOR_TYPE.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 车牌颜色
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_PLATE_COLOR_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知 "Unknown"
+ */
+ public static final int EM_PLATE_COLOR_UNKNOWN = 0;
+ /**
+ * 其他颜色 "Other"
+ */
+ public static final int EM_PLATE_COLOR_OTHER = 1;
+ /**
+ * 蓝色 "Blue"
+ */
+ public static final int EM_PLATE_COLOR_BLUE = 2;
+ /**
+ * 黄色 "Yellow"
+ */
+ public static final int EM_PLATE_COLOR_YELLOW = 3;
+ /**
+ * 白色 "White"
+ */
+ public static final int EM_PLATE_COLOR_WHITE = 4;
+ /**
+ * 黑色 "Black"
+ */
+ public static final int EM_PLATE_COLOR_BLACK = 5;
+ /**
+ * 红色 "Red"
+ */
+ public static final int EM_PLATE_COLOR_RED = 6;
+ /**
+ * 绿色 "Green"
+ */
+ public static final int EM_PLATE_COLOR_GREEN = 7;
+ /**
+ * 渐变绿 "ShadowGreen"
+ */
+ public static final int EM_PLATE_COLOR_SHADOW_GREEN = 8;
+ /**
+ * 黄绿双拼 "YellowGreen""
+ */
+ public static final int EM_PLATE_COLOR_YELLOW_GREEN = 9;
+ /**
+ * 黄底黑字 "YellowbottomBlackText"
+ */
+ public static final int EM_PLATE_COLOR_YELLOW_BOTTOM_BLACK_TEXT = 10;
+ /**
+ * 蓝底白字 "BluebottomWhiteText"
+ */
+ public static final int EM_PLATE_COLOR_BLUE_BOTTOM_WHITE_TEXT = 11;
+ /**
+ * 黑底白字 "BlackBottomWhiteText"
+ */
+ public static final int EM_PLATE_COLOR_BLACK_BOTTOM_WHITE_TEXT = 12;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PLATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_PLATE_TYPE.java
new file mode 100644
index 0000000..1358f34
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PLATE_TYPE.java
@@ -0,0 +1,82 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 号牌类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_PLATE_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 其他车
+ */
+ public static final int EM_PLATE_OTHER = 0;
+ /**
+ * 大型汽车
+ */
+ public static final int EM_PLATE_BIG_CAR = 1;
+ /**
+ * 小型汽车
+ */
+ public static final int EM_PLATE_SMALL_CAR = 2;
+ /**
+ * 使馆汽车
+ */
+ public static final int EM_PLATE_EMBASSY_CAR = 3;
+ /**
+ * 领馆汽车
+ */
+ public static final int EM_PLATE_CONSULATE_CAR = 4;
+ /**
+ * 境外汽车
+ */
+ public static final int EM_PLATE_ABROAD_CAR = 5;
+ /**
+ * 外籍汽车
+ */
+ public static final int EM_PLATE_FOREIGN_CAR = 6;
+ /**
+ * 低速车
+ */
+ public static final int EM_PLATE_LOW_SPEED_CAR = 7;
+ /**
+ * 教练车
+ */
+ public static final int EM_PLATE_COACH_CAR = 8;
+ /**
+ * 摩托车
+ */
+ public static final int EM_PLATE_MOTORCYCLE = 9;
+ /**
+ * 新能源车
+ */
+ public static final int EM_PLATE_NEW_POWER_CAR = 10;
+ /**
+ * 警用车
+ */
+ public static final int EM_PLATE_POLICE_CAR = 11;
+ /**
+ * 港澳两地车
+ */
+ public static final int EM_PLATE_HONGKONG_MACAO_CAR = 12;
+ /**
+ *
+ */
+ public static final int EM_PLATE_WJPOLICE_CAR = 13;
+ /**
+ *
+ */
+ public static final int EM_PLATE_OUTERGUARD_CAR = 14;
+ /**
+ * 非机动车临时牌照
+ */
+ public static final int EM_PLATE_TEMPORARY_LICENSE_FOR_NON_MOTOR_VEHICLES = 15;
+ /**
+ * 非机动车牌正式牌照
+ */
+ public static final int EM_PLATE_OFFICIAL_LICENSE_PLATE_FOR_NON_MOTOR_VEHICLE = 16;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PLAYAUDIO_PRIORITY.java b/src/main/java/com/netsdk/lib/enumeration/EM_PLAYAUDIO_PRIORITY.java
new file mode 100644
index 0000000..d487eb3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PLAYAUDIO_PRIORITY.java
@@ -0,0 +1,27 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 语音播报优先级
+ * @date 2021/2/20
+ */
+public enum EM_PLAYAUDIO_PRIORITY {
+ /**
+ * 未知
+ */
+ EM_PLAYAUDIO_PRIORITY_UNKNOWN,
+ /**
+ * 插入播放队列最前端,播放完该文件后播放原来的文件
+ */
+ EM_PLAYAUDIO_PRIORITY_FRONT,
+ /**
+ * 插入播放队列最后,等待其它文件播放完再播放该文件
+ */
+ EM_PLAYAUDIO_PRIORITY_BACK,
+ /**
+ * 优先级同 EM_PLAYAUDIO_PRIORITY_FRONT,但取消队列中正在播放文件
+ */
+ EM_PLAYAUDIO_PRIORITY_EMERGENCY;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PLAY_WITH_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_PLAY_WITH_MODE.java
new file mode 100644
index 0000000..eaf1a18
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PLAY_WITH_MODE.java
@@ -0,0 +1,60 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 文件所属的模式
+ * @date 2020/9/10
+ */
+public enum EM_PLAY_WITH_MODE {
+ /**
+ * 未知
+ */
+ EM_PLAY_WITH_MODE_UNKNOWN(0, "未知"),
+ /**
+ * 识别模式
+ */
+ EM_PLAY_WITH_MODE_RECOGNITION(1, "识别"),
+ /**
+ * 信息发布模式
+ */
+ EM_PLAY_WITH_MODE_INFORMATION_RELEASE(2, "信息发布"),
+ /**
+ * 主界面模式
+ */
+ EM_PLAY_WITH_MODE_MAIN_INTERFACE(3, "主界面");
+
+ private int mode;
+ private String desc;
+
+ private EM_PLAY_WITH_MODE(int mode, String desc) {
+ this.mode = mode;
+ this.desc = desc;
+ }
+
+ public int getMode() {
+ return mode;
+ }
+
+ public void setMode(int mode) {
+ this.mode = mode;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public void setDesc(String desc) {
+ this.desc = desc;
+ }
+
+ public static EM_PLAY_WITH_MODE getPlayMode(int mode) {
+ for (EM_PLAY_WITH_MODE playMode : EM_PLAY_WITH_MODE.values()) {
+ if (playMode.getMode() == mode) {
+ return playMode;
+ }
+ }
+ return null;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_POWER_REGULATION_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_POWER_REGULATION_TYPE.java
new file mode 100644
index 0000000..2c9af29
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_POWER_REGULATION_TYPE.java
@@ -0,0 +1,73 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 功率调节类型
+* @date 2022/08/31 14:44:15
+*/
+public enum EM_POWER_REGULATION_TYPE {
+/**
+未知
+*/
+ EM_POWER_REGULATION_UNKNOWN(-1, "未知"),
+/**
+自动
+*/
+ EM_POWER_REGULATION_AUTO(0, "自动"),
+/**
+低
+*/
+ EM_POWER_REGULATION_LOW(1, "低"),
+/**
+中
+*/
+ EM_POWER_REGULATION_MEDIUM(2, "中"),
+/**
+高
+*/
+ EM_POWER_REGULATION_HIGH(3, "高");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_POWER_REGULATION_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_POWER_REGULATION_TYPE enumType : EM_POWER_REGULATION_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_POWER_REGULATION_TYPE enumType : EM_POWER_REGULATION_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_POWER_REGULATION_TYPE getEnum(int value) {
+ for (EM_POWER_REGULATION_TYPE e : EM_POWER_REGULATION_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_POWER_REGULATION_TYPE.EM_POWER_REGULATION_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PREALARM.java b/src/main/java/com/netsdk/lib/enumeration/EM_PREALARM.java
new file mode 100644
index 0000000..5683165
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PREALARM.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 是否为违规预警图片
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:00
+ */
+public class EM_PREALARM extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_PREALARM_UNKNOWN = -1;
+ /**
+ * 机动车违章事件
+ */
+ public static final int EM_PREALARM_VIOLATION_EVENT = 0;
+ /**
+ * 机动车违章预警事件
+ */
+ public static final int EM_PREALARM_VIOLATION_WARNING_EVENT = 1;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PRESSING_PLATE_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_PRESSING_PLATE_STATE.java
new file mode 100644
index 0000000..82de72f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PRESSING_PLATE_STATE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 压板状态
+* @date 2022/06/28 19:44:56
+*/
+public enum EM_PRESSING_PLATE_STATE {
+/**
+未知
+*/
+ EM_PRESSING_PLATE_STATE_UNKNOWN(0, "未知"),
+/**
+断开
+*/
+ EM_PRESSING_PLATE_STATE_DISCONNECT(1, "断开"),
+/**
+闭合
+*/
+ EM_PRESSING_PLATE_STATE_CLOSE(2, "闭合");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_PRESSING_PLATE_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_PRESSING_PLATE_STATE enumType : EM_PRESSING_PLATE_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_PRESSING_PLATE_STATE enumType : EM_PRESSING_PLATE_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_PRESSING_PLATE_STATE getEnum(int value) {
+ for (EM_PRESSING_PLATE_STATE e : EM_PRESSING_PLATE_STATE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_PRESSING_PLATE_STATE.EM_PRESSING_PLATE_STATE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PRIVACY_MASKING_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_PRIVACY_MASKING_TYPE.java
new file mode 100644
index 0000000..96327de
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PRIVACY_MASKING_TYPE.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 遮挡块形状
+ * @date 2022/07/21 13:40:56
+ */
+public enum EM_PRIVACY_MASKING_TYPE {
+ /**
+ * 未知类型
+ */
+ EM_MASKING_TYPE_UNKNOWN(0, "未知类型"),
+ /**
+ * 矩形
+ */
+ EM_MASKING_TYPE_RECT(1, "矩形"),
+ /**
+ * 多边形
+ */
+ EM_MASKING_TYPE_POLYGON(2, "多边形");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_PRIVACY_MASKING_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_PRIVACY_MASKING_TYPE enumType : EM_PRIVACY_MASKING_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_PRIVACY_MASKING_TYPE enumType : EM_PRIVACY_MASKING_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PRIVACY_MASKING_VERSION.java b/src/main/java/com/netsdk/lib/enumeration/EM_PRIVACY_MASKING_VERSION.java
new file mode 100644
index 0000000..9324a7c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PRIVACY_MASKING_VERSION.java
@@ -0,0 +1,60 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 隐私遮档版本号
+ * @date 2022/07/21 13:40:56
+ */
+public enum EM_PRIVACY_MASKING_VERSION {
+ /**
+ * 未知类型
+ */
+ EM_PRIVACY_MASKING_UNKNOWN(0, "未知类型"),
+ /**
+ * V1:第一版本隐私遮档算法(原始隐私遮档算法,使用配置)
+ */
+ EM_PRIVACY_MASKING_V1(1, "V1:第一版本隐私遮档算法(原始隐私遮档算法,使用配置)"),
+ /**
+ * V2:第二版本的隐私遮档算法(基于视场角的新算法,使用接口)
+ */
+ EM_PRIVACY_MASKING_V2(2, "V2:第二版本的隐私遮档算法(基于视场角的新算法,使用接口)"),
+ /**
+ * V3:球机和IPC协议统一的版本
+ */
+ EM_PRIVACY_MASKING_V3(3, "V3:球机和IPC协议统一的版本");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_PRIVACY_MASKING_VERSION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_PRIVACY_MASKING_VERSION enumType : EM_PRIVACY_MASKING_VERSION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_PRIVACY_MASKING_VERSION enumType : EM_PRIVACY_MASKING_VERSION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PRIVACY_MASK_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_PRIVACY_MASK_TYPE.java
new file mode 100644
index 0000000..4c1e138
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PRIVACY_MASK_TYPE.java
@@ -0,0 +1,50 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 隐私保护的物体类型
+ * @date 2021/01/11
+ */
+public enum EM_PRIVACY_MASK_TYPE {
+ // 未知类型
+ EM_PRIVACY_MASK_UNKNOWN(0, "未知类型"),
+ // 人脸
+ EM_PRIVACY_MASK_HUMAN_FACE(1, "人脸"),
+ // 人体
+ EM_PRIVACY_MASK_HUMAN(2, "人体");
+
+ private int value;
+ private String note;
+
+ private EM_PRIVACY_MASK_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_PRIVACY_MASK_TYPE enumType : EM_PRIVACY_MASK_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_PRIVACY_MASK_TYPE enumType : EM_PRIVACY_MASK_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PROCESS_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_PROCESS_MODE.java
new file mode 100644
index 0000000..19e07c2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PROCESS_MODE.java
@@ -0,0 +1,67 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description 处理方式
+ * @date 2021/9/9
+ */
+public enum EM_PROCESS_MODE {
+/**未知*/
+ EM_PROCESS_MODE_UNKNOWN(-1, "未知"),
+/**自弃*/
+ EM_PROCESS_MODE_ABANDON_ONESELF(0, "自弃"),
+/**放行*/
+ EM_PROCESS_MODE_RELEASE(1, "放行"),
+/**物品保管*/
+ EM_PROCESS_MODE_STORAGE_OF_ARTICLES(2, "物品保管"),
+/**移交公安*/
+ EM_PROCESS_MODE_TRANSFER_TO_SECURITY(3, "移交公安"),
+/**自行处理*/
+ EM_PROCESS_MODE_DISCRETION(4, "自行处理"),
+/**误报*/
+ EM_PROCESS_MODE_FALSE_ALARM(5, "误报");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_PROCESS_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_PROCESS_MODE enumType : EM_PROCESS_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_PROCESS_MODE enumType : EM_PROCESS_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_PROCESS_MODE getEnum(int value) {
+ for (EM_PROCESS_MODE e : EM_PROCESS_MODE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_PROCESS_MODE.EM_PROCESS_MODE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PROPERTIES_VALUE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_PROPERTIES_VALUE_TYPE.java
new file mode 100644
index 0000000..f18e1ab
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PROPERTIES_VALUE_TYPE.java
@@ -0,0 +1,73 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 260611
+ * @description 属性值类型
+ * @date 2022/04/20 11:28:15
+ */
+public enum EM_PROPERTIES_VALUE_TYPE {
+ /**
+ * 未知
+ */
+ EM_PROPERTIES_VALUE_UNKNOWN(0, "未知"),
+ /**
+ * int类型,1,100,1000
+ */
+ EM_PROPERTIES_VALUE_INT(1, "int类型,1,100,1000"),
+ /**
+ * bool类型,true,false
+ */
+ EM_PROPERTIES_VALUE_BOOL(2, "bool类型,true,false"),
+ /**
+ * string类型, 1 , 100 , 1000
+ */
+ EM_PROPERTIES_VALUE_STRING(3, "string类型, 1 , 100 , 1000 "),
+ /**
+ * int数组类型, [1,2,3]
+ */
+ EM_PROPERTIES_VALUE_INTARRAY(4, "int数组类型, [1,2,3] ");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_PROPERTIES_VALUE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_PROPERTIES_VALUE_TYPE enumType : EM_PROPERTIES_VALUE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_PROPERTIES_VALUE_TYPE enumType : EM_PROPERTIES_VALUE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_PROPERTIES_VALUE_TYPE getEnum(int value) {
+ for (EM_PROPERTIES_VALUE_TYPE e : EM_PROPERTIES_VALUE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_PROPERTIES_VALUE_TYPE.EM_PROPERTIES_VALUE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PTZ_FUNCTION.java b/src/main/java/com/netsdk/lib/enumeration/EM_PTZ_FUNCTION.java
new file mode 100644
index 0000000..b2232bc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PTZ_FUNCTION.java
@@ -0,0 +1,91 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 421657
+ * @description 云台功能
+ * @origin autoTool
+ * @date 2023/10/16 19:23:11
+ */
+public enum EM_PTZ_FUNCTION {
+ /**
+ * 未知
+ */
+ NET_EM_PTZ_FUNCTION_UNKNOWN(0, "未知"),
+ /**
+ * None
+ */
+ NET_EM_PTZ_FUNCTION_NONE(1, "None"),
+ /**
+ * Scan功能
+ */
+ NET_EM_PTZ_FUNCTION_SCAN(2, "Scan功能"),
+ /**
+ * Pattern功能
+ */
+ NET_EM_PTZ_FUNCTION_PATTERN(3, "Pattern功能"),
+ /**
+ * Tour功能
+ */
+ NET_EM_PTZ_FUNCTION_TOUR(4, "Tour功能"),
+ /**
+ * AutoPan功能
+ */
+ NET_EM_PTZ_FUNCTION_AUTOPAN(5, "AutoPan功能"),
+ /**
+ * Preset功能
+ */
+ NET_EM_PTZ_FUNCTION_PRESET(6, "Preset功能"),
+ /**
+ * HeatMap功能
+ */
+ NET_EM_PTZ_FUNCTION_HEATMAP(7, "HeatMap功能"),
+ /**
+ * Patrol功能
+ */
+ NET_EM_PTZ_FUNCTION_PATROL(8, "Patrol功能");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_PTZ_FUNCTION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_PTZ_FUNCTION enumType : EM_PTZ_FUNCTION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_PTZ_FUNCTION enumType : EM_PTZ_FUNCTION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_PTZ_FUNCTION getEnum(int value) {
+ for (EM_PTZ_FUNCTION e : EM_PTZ_FUNCTION.values()) {
+ if (e.getValue() == value) {
+ return e;
+ }
+ }
+ return EM_PTZ_FUNCTION.NET_EM_PTZ_FUNCTION_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PTZ_MOVING_RESULT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_PTZ_MOVING_RESULT_TYPE.java
new file mode 100644
index 0000000..e7f1e8e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PTZ_MOVING_RESULT_TYPE.java
@@ -0,0 +1,73 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 运动移动检测结果类型
+* @date 2022/08/03 14:26:52
+*/
+public enum EM_PTZ_MOVING_RESULT_TYPE {
+/**
+未知
+*/
+ EM_PTZ_MOVING_UNKNOWN(0, "未知"),
+/**
+检测正常
+*/
+ EM_PTZ_MOVING_NORMAL(1, "检测正常"),
+/**
+不按指令运动
+*/
+ EM_PTZ_MOVING_NOTOBEY(2, "不按指令运动"),
+/**
+不能运动
+*/
+ EM_PTZ_MOVING_NOTMOVE(3, "不能运动"),
+/**
+未做检测
+*/
+ EM_PTZ_MOVING_NOTDETECT(4, "未做检测");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_PTZ_MOVING_RESULT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_PTZ_MOVING_RESULT_TYPE enumType : EM_PTZ_MOVING_RESULT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_PTZ_MOVING_RESULT_TYPE enumType : EM_PTZ_MOVING_RESULT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_PTZ_MOVING_RESULT_TYPE getEnum(int value) {
+ for (EM_PTZ_MOVING_RESULT_TYPE e : EM_PTZ_MOVING_RESULT_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_PTZ_MOVING_RESULT_TYPE.EM_PTZ_MOVING_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PTZ_TASK_NAME.java b/src/main/java/com/netsdk/lib/enumeration/EM_PTZ_TASK_NAME.java
new file mode 100644
index 0000000..4fcc0ef
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PTZ_TASK_NAME.java
@@ -0,0 +1,83 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 421657
+ * @description 任务名称
+ * @origin autoTool
+ * @date 2023/10/16 19:23:11
+ */
+public enum EM_PTZ_TASK_NAME {
+ /**
+ * 未知
+ */
+ NET_EM_PTZ_TASK_NAME_UNKNOWN(0, "未知"),
+ /**
+ * 定时任务
+ */
+ NET_EM_PTZ_TASK_NAME_AUTOMOVEMENT(1, "定时任务"),
+ /**
+ * 空闲任务
+ */
+ NET_EM_PTZ_TASK_NAME_IDLEMOTION(2, "空闲任务"),
+ /**
+ * 开机动作
+ */
+ NET_EM_PTZ_TASK_NAME_POWERUP(3, "开机动作"),
+ /**
+ * 云台联动
+ */
+ NET_EM_PTZ_TASK_NAME_LINK(4, "云台联动"),
+ /**
+ * 智能
+ */
+ NET_EM_PTZ_TASK_NAME_INTELIGENCE(5, "智能"),
+ /**
+ * 手动
+ */
+ NET_EM_PTZ_TASK_NAME_MANUAL(6, "手动");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_PTZ_TASK_NAME(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_PTZ_TASK_NAME enumType : EM_PTZ_TASK_NAME.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_PTZ_TASK_NAME enumType : EM_PTZ_TASK_NAME.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_PTZ_TASK_NAME getEnum(int value) {
+ for (EM_PTZ_TASK_NAME e : EM_PTZ_TASK_NAME.values()) {
+ if (e.getValue() == value) {
+ return e;
+ }
+ }
+ return EM_PTZ_TASK_NAME.NET_EM_PTZ_TASK_NAME_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_PTZ_UNSUPPORT_DIRECTION.java b/src/main/java/com/netsdk/lib/enumeration/EM_PTZ_UNSUPPORT_DIRECTION.java
new file mode 100644
index 0000000..356ea43
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_PTZ_UNSUPPORT_DIRECTION.java
@@ -0,0 +1,61 @@
+package com.netsdk.lib.enumeration;
+/**
+ * @author 251823
+ * @description 云台不支持的转动方向
+ * @date 2021/02/05
+ */
+public enum EM_PTZ_UNSUPPORT_DIRECTION {
+ // 未知
+ EM_PTZ_UNSUPPORT_DIRECTION_UNKNOWN(0, "未知"),
+ // 上
+ EM_PTZ_UNSUPPORT_DIRECTION_UP(1, "上"),
+ // 下
+ EM_PTZ_UNSUPPORT_DIRECTION_DOWN(2, "下"),
+ // 左
+ EM_PTZ_UNSUPPORT_DIRECTION_LEFT(3, "左"),
+ // 右
+ EM_PTZ_UNSUPPORT_DIRECTION_RIGHT(4, "右"),
+ // 左上
+ EM_PTZ_UNSUPPORT_DIRECTION_LEFTUP(5, "左上"),
+ // 右上
+ EM_PTZ_UNSUPPORT_DIRECTION_RIGHTUP(6, "右上"),
+ // 左下
+ EM_PTZ_UNSUPPORT_DIRECTION_LEFTDOWN(7, "左下"),
+ // 右下
+ EM_PTZ_UNSUPPORT_DIRECTION_RIGHTDOWN(8, "右下");
+
+ private int value;
+ private String note;
+
+ private EM_PTZ_UNSUPPORT_DIRECTION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_PTZ_UNSUPPORT_DIRECTION enumType : EM_PTZ_UNSUPPORT_DIRECTION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_PTZ_UNSUPPORT_DIRECTION enumType : EM_PTZ_UNSUPPORT_DIRECTION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_QRCODE_IS_EXPIRED.java b/src/main/java/com/netsdk/lib/enumeration/EM_QRCODE_IS_EXPIRED.java
new file mode 100644
index 0000000..000540d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_QRCODE_IS_EXPIRED.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 二维码是否过期
+ * @date 2021/2/22
+ */
+public enum EM_QRCODE_IS_EXPIRED {
+ /** 未知 */
+ EM_QRCODE_EXPIRED_UNKNOWN,
+ /** 未过期 */
+ EM_QRCODE_NO_EXPIRED,
+ /** 过期 */
+ EM_QRCODE_EXPIRED;
+
+ public static EM_QRCODE_IS_EXPIRED getQrCodeExpired(int expired) {
+ for (EM_QRCODE_IS_EXPIRED qrcodeExpired : EM_QRCODE_IS_EXPIRED.values()) {
+ if (qrcodeExpired.ordinal() == expired) {
+ return qrcodeExpired;
+ }
+ }
+ return EM_QRCODE_EXPIRED_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_QRCODE_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_QRCODE_STATE.java
new file mode 100644
index 0000000..a89f253
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_QRCODE_STATE.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 二维码状态
+ * @date 2021/2/22
+ */
+public enum EM_QRCODE_STATE {
+ /** 未知 */
+ EM_QRCODE_STATE_UNKNOWN,
+ /** 已批准 */
+ EM_QRCODE_STATE_CLEARED,
+ /** 未批准 */
+ EM_QRCODE_STATE_NOCLEARED;
+
+ public static EM_QRCODE_STATE getQrcodeState(int state) {
+ for (EM_QRCODE_STATE qrcodeState : EM_QRCODE_STATE.values()) {
+ if (qrcodeState.ordinal() == state) {
+ return qrcodeState;
+ }
+ }
+ return EM_QRCODE_STATE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_QUERY_TEMPERATURE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_QUERY_TEMPERATURE_TYPE.java
new file mode 100644
index 0000000..d493f6a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_QUERY_TEMPERATURE_TYPE.java
@@ -0,0 +1,54 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 温度类型
+ * @date 2021/02/22
+ */
+public enum EM_QUERY_TEMPERATURE_TYPE {
+ // 未知
+ EM_QUERY_TEMPERATURE_TYPE_UNKNOWN(-1, "未知"),
+ // 全部
+ EM_QUERY_TEMPERATURE_TYPE_ALL(0, "全部"),
+ // 低
+ EM_QUERY_TEMPERATURE_TYPE_LOW(1, "低"),
+ // 正常
+ EM_QUERY_TEMPERATURE_TYPE_NORMAL(2, "正常"),
+ // 高
+ EM_QUERY_TEMPERATURE_TYPE_HIGH(3, "高");
+
+ private int value;
+ private String note;
+
+ private EM_QUERY_TEMPERATURE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_QUERY_TEMPERATURE_TYPE enumType : EM_QUERY_TEMPERATURE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_QUERY_TEMPERATURE_TYPE enumType : EM_QUERY_TEMPERATURE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_ALARM_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_ALARM_TYPE.java
new file mode 100644
index 0000000..68b6522
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_ALARM_TYPE.java
@@ -0,0 +1,50 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 雷达报警类型
+ * @date 2021/07/21
+ */
+public enum EM_RADAR_ALARM_TYPE {
+ // 未知
+ EM_RADAR_ALARM_TYPE_UNKNOWN(0, "未知"),
+ // 报警
+ EM_RADAR_ALARM_TYPE_ALARM(1, "报警"),
+ // 预警
+ EM_RADAR_ALARM_TYPE_WARNING(2, "预警");
+
+ private int value;
+ private String note;
+
+ private EM_RADAR_ALARM_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_RADAR_ALARM_TYPE enumType : EM_RADAR_ALARM_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_RADAR_ALARM_TYPE enumType : EM_RADAR_ALARM_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_DETECTION_VEHICLE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_DETECTION_VEHICLE_TYPE.java
new file mode 100644
index 0000000..fb5d0d7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_DETECTION_VEHICLE_TYPE.java
@@ -0,0 +1,93 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 雷达检测车型
+* @date 2022/06/07 09:46:01
+*/
+public enum EM_RADAR_DETECTION_VEHICLE_TYPE {
+/**
+未知
+*/
+ EM_RADAR_DETECTION_VEHICLE_TYPE_UNKNOWN(0, "未知"),
+/**
+中小客车
+*/
+ EM_RADAR_DETECTION_VEHICLE_TYPE_MID_PASSENGER_CAR(1, "中小客车"),
+/**
+大客车
+*/
+ EM_RADAR_DETECTION_VEHICLE_TYPE_MOTOR_BUS(2, "大客车"),
+/**
+小货车
+*/
+ EM_RADAR_DETECTION_VEHICLE_TYPE_MICRO_TRUCK(3, "小货车"),
+/**
+中型货车
+*/
+ EM_RADAR_DETECTION_VEHICLE_TYPE_MID_TRUCK(4, "中型货车"),
+/**
+大型货车
+*/
+ EM_RADAR_DETECTION_VEHICLE_TYPE_LARGE_TRUCK(5, "大型货车"),
+/**
+特大货车
+*/
+ EM_RADAR_DETECTION_VEHICLE_TYPE_SUPER_TRUCK(6, "特大货车"),
+/**
+集装箱车
+*/
+ EM_RADAR_DETECTION_VEHICLE_TYPE_CONTAINER_CAR(7, "集装箱车"),
+/**
+摩托车
+*/
+ EM_RADAR_DETECTION_VEHICLE_TYPE_MOTORCYCLE(8, "摩托车"),
+/**
+拖拉机
+*/
+ EM_RADAR_DETECTION_VEHICLE_TYPE_TRACTOR(9, "拖拉机");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_RADAR_DETECTION_VEHICLE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_RADAR_DETECTION_VEHICLE_TYPE enumType : EM_RADAR_DETECTION_VEHICLE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_RADAR_DETECTION_VEHICLE_TYPE enumType : EM_RADAR_DETECTION_VEHICLE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_RADAR_DETECTION_VEHICLE_TYPE getEnum(int value) {
+ for (EM_RADAR_DETECTION_VEHICLE_TYPE e : EM_RADAR_DETECTION_VEHICLE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_RADAR_DETECTION_VEHICLE_TYPE.EM_RADAR_DETECTION_VEHICLE_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_DETECT_OBJECT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_DETECT_OBJECT_TYPE.java
new file mode 100644
index 0000000..dbe1e16
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_DETECT_OBJECT_TYPE.java
@@ -0,0 +1,50 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 雷达检测对象类型
+ * @date 2021/07/21
+ */
+public enum EM_RADAR_DETECT_OBJECT_TYPE {
+ // 未知
+ EM_RADAR_DETECT_OBJECT_UNKNOWN(0, "未知"),
+ // 人
+ EM_RADAR_DETECT_OBJECT_HUMAN(1, "人"),
+ // 车
+ EM_RADAR_DETECT_OBJECT_VEHICLE(2, "车");
+
+ private int value;
+ private String note;
+
+ private EM_RADAR_DETECT_OBJECT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_RADAR_DETECT_OBJECT_TYPE enumType : EM_RADAR_DETECT_OBJECT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_RADAR_DETECT_OBJECT_TYPE enumType : EM_RADAR_DETECT_OBJECT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_GETCAPS_AREASUB_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_GETCAPS_AREASUB_TYPE.java
new file mode 100644
index 0000000..582902a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_GETCAPS_AREASUB_TYPE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 260611
+ * @description 设备程序所在的雷达区域
+ * @date 2022/08/04 10:13:31
+ */
+public enum EM_RADAR_GETCAPS_AREASUB_TYPE {
+ /**
+ * 未知
+ */
+ EM_RADAR_GETCAPS_AREASUB_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 扇形
+ */
+ EM_RADAR_GETCAPS_AREASUB_TYPE_SECTOR(1, "扇形"),
+ /**
+ * 椭圆
+ */
+ EM_RADAR_GETCAPS_AREASUB_TYPE_ELLIPSE(2, "椭圆");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_RADAR_GETCAPS_AREASUB_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_RADAR_GETCAPS_AREASUB_TYPE enumType : EM_RADAR_GETCAPS_AREASUB_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_RADAR_GETCAPS_AREASUB_TYPE enumType : EM_RADAR_GETCAPS_AREASUB_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_RADAR_GETCAPS_AREASUB_TYPE getEnum(int value) {
+ for (EM_RADAR_GETCAPS_AREASUB_TYPE e : EM_RADAR_GETCAPS_AREASUB_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_RADAR_GETCAPS_AREASUB_TYPE.EM_RADAR_GETCAPS_AREASUB_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_GETCAPS_RADAR_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_GETCAPS_RADAR_TYPE.java
new file mode 100644
index 0000000..56bede4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_GETCAPS_RADAR_TYPE.java
@@ -0,0 +1,77 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 260611
+ * @description 雷达类型
+ * @date 2022/08/04 10:13:32
+ */
+public enum EM_RADAR_GETCAPS_RADAR_TYPE {
+ /**
+ * 未知
+ */
+ EM_RADAR_GETCAPS_RADAR_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 单IP雷达
+ */
+ EM_RADAR_GETCAPS_RADAR_TYPE1(1, "单IP雷达"),
+ /**
+ * 雷达控制盒
+ */
+ EM_RADAR_GETCAPS_RADAR_TYPE2(2, "雷达控制盒"),
+ /**
+ * 端站一体机
+ */
+ EM_RADAR_GETCAPS_RADAR_TYPE3(3, "端站一体机"),
+ /**
+ * 室内雷达
+ */
+ EM_RADAR_GETCAPS_RADAR_TYPE4(4, "室内雷达"),
+ /**
+ * 体征雷达
+ */
+ EM_RADAR_GETCAPS_RADAR_TYPE5(5, "体征雷达");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_RADAR_GETCAPS_RADAR_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_RADAR_GETCAPS_RADAR_TYPE enumType : EM_RADAR_GETCAPS_RADAR_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_RADAR_GETCAPS_RADAR_TYPE enumType : EM_RADAR_GETCAPS_RADAR_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_RADAR_GETCAPS_RADAR_TYPE getEnum(int value) {
+ for (EM_RADAR_GETCAPS_RADAR_TYPE e : EM_RADAR_GETCAPS_RADAR_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_RADAR_GETCAPS_RADAR_TYPE.EM_RADAR_GETCAPS_RADAR_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_OBJECTTYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_OBJECTTYPE.java
new file mode 100644
index 0000000..5806f4a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_OBJECTTYPE.java
@@ -0,0 +1,35 @@
+package com.netsdk.lib.enumeration;
+
+public enum EM_RADAR_OBJECTTYPE {
+ EM_RADAR_OBJECTTYPE_UNKNOWN(0, "未识别目标"),
+ EM_RADAR_OBJECTTYPE_PERSON(1, "目标为人"),
+ EM_RADAR_OBJECTTYPE_VEHICLE(2, "目标为交通工具"),
+ EM_RADAR_OBJECTTYPE_TREE(3, "目标为树"),
+ EM_RADAR_OBJECTTYPE_BUILIDING(4, "目标为建筑物"),
+ EM_RADAR_OBJECTTYPE_SCREEN(5, "目标为屏幕");
+
+ private int value;
+ private String note;
+
+ private EM_RADAR_OBJECTTYPE(int value, String note) {
+ this.value = value;
+ this.note = note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public void setValue(int value) {
+ this.value = value;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public void setNote(String note) {
+ this.note = note;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_OPERATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_OPERATE_TYPE.java
new file mode 100644
index 0000000..944debc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_OPERATE_TYPE.java
@@ -0,0 +1,73 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 260611
+ * @description 雷达操作类型
+ * @date 2022/08/04 10:13:33
+ */
+public enum EM_RADAR_OPERATE_TYPE {
+ /**
+ * 雷达开始升级通知,入参:NET_IN_RADAR_STARTUPGRADE,出参:NET_OUT_RADAR_STARTUPGRADE
+ */
+ EM_RADAR_OPERATE_TYPE_STARTUPGRADE(0, "雷达开始升级通知,入参:NET_IN_RADAR_STARTUPGRADE,出参:NET_OUT_RADAR_STARTUPGRADE"),
+ /**
+ * 获取雷达能力,入参:NET_IN_RADAR_GETCAPS,出参:NET_OUT_RADAR_GETCAPS
+ */
+ EM_RADAR_OPERATE_TYPE_GETCAPS(1, "获取雷达能力,入参:NET_IN_RADAR_GETCAPS,出参:NET_OUT_RADAR_GETCAPS"),
+ /**
+ * 获取雷达状态,入参:NET_IN_RADAR_GETSTATUS,出参:NET_OUT_RADAR_GETSTATUS
+ */
+ EM_RADAR_OPERATE_TYPE_GETSTATUS(2, "获取雷达状态,入参:NET_IN_RADAR_GETSTATUS,出参:NET_OUT_RADAR_GETSTATUS"),
+ /**
+ * 计算图片对应的地图实际长度,入参:NET_IN_RADAR_CALCULATEREALSIZE,出参:NET_OUT_RADAR_CALCULATEREALSIZE
+ */
+ EM_RADAR_OPERATE_TYPE_CALCULATEREALSIZE(3, "计算图片对应的地图实际长度,入参:NET_IN_RADAR_CALCULATEREALSIZE,出参:NET_OUT_RADAR_CALCULATEREALSIZE"),
+ /**
+ * 雷球校准配置下发,入参:NET_IN_RADAR_SETCALIBRATION,出参:NET_OUT_RADAR_SETCALIBRATION
+ */
+ EM_RADAR_OPERATE_TYPE_SETCALIBRATION(4, "雷球校准配置下发,入参:NET_IN_RADAR_SETCALIBRATION,出参:NET_OUT_RADAR_SETCALIBRATION");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_RADAR_OPERATE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_RADAR_OPERATE_TYPE enumType : EM_RADAR_OPERATE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_RADAR_OPERATE_TYPE enumType : EM_RADAR_OPERATE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_RADAR_OPERATE_TYPE getEnum(int value) {
+ for (EM_RADAR_OPERATE_TYPE e : EM_RADAR_OPERATE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_RADAR_OPERATE_TYPE.EM_RADAR_OPERATE_TYPE_STARTUPGRADE;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_POINTTYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_POINTTYPE.java
new file mode 100644
index 0000000..39399ca
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_POINTTYPE.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.enumeration;
+
+public enum EM_RADAR_POINTTYPE {
+ EM_RADAR_POINTTYPE_UNKNOWN(0, "未知"),
+ EM_RADAR_POINTTYPE_ALARMPOINT(1, "当前点是报警区的报警点"),
+ EM_RADAR_POINTTYPE_LINKMONITORPOINT(2, "当前点是正在被联动监控的点"),
+ EM_RADAR_POINTTYPE_DISAPPEARTRACKPOINT(3, "当前点是消失的轨迹点");
+
+ private int value;
+ private String note;
+
+ EM_RADAR_POINTTYPE(int givenValue, String note) {
+ // TODO Auto-generated constructor stub
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public void setValue(int value) {
+ this.value = value;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public void setNote(String note) {
+ this.note = note;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_STATUS.java
new file mode 100644
index 0000000..c53d0eb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_RADAR_STATUS.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 260611
+ * @description 雷达状态
+ * @date 2022/08/04 10:13:32
+ */
+public enum EM_RADAR_STATUS {
+ /**
+ * 未知
+ */
+ EM_RADAR_STATUS_UNKNOWN(0, "未知"),
+ /**
+ * 正常
+ */
+ EM_RADAR_STATUS_NORMAL(1, "正常"),
+ /**
+ * 异常
+ */
+ EM_RADAR_STATUS_ABNORMAL(2, "异常");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_RADAR_STATUS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_RADAR_STATUS enumType : EM_RADAR_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_RADAR_STATUS enumType : EM_RADAR_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_RADAR_STATUS getEnum(int value) {
+ for (EM_RADAR_STATUS e : EM_RADAR_STATUS.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_RADAR_STATUS.EM_RADAR_STATUS_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_RADIOMETRY_QUERY_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_RADIOMETRY_QUERY_TYPE.java
new file mode 100644
index 0000000..12b3e0e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_RADIOMETRY_QUERY_TYPE.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 测温查询类型
+*/
+public enum EM_RADIOMETRY_QUERY_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_RADIOMETRY_QUERY_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 点
+ */
+ EM_RADIOMETRY_QUERY_TYPE_SPOT(1, "点"),
+ /**
+ * 区域
+ */
+ EM_RADIOMETRY_QUERY_TYPE_AREA(2, "区域"),
+ /**
+ * 线
+ */
+ EM_RADIOMETRY_QUERY_TYPE_LINE(3, "线");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_RADIOMETRY_QUERY_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_RADIOMETRY_QUERY_TYPE enumType : EM_RADIOMETRY_QUERY_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_RADIOMETRY_QUERY_TYPE enumType : EM_RADIOMETRY_QUERY_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_RADIOMETRY_TEMPER_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_RADIOMETRY_TEMPER_TYPE.java
new file mode 100644
index 0000000..6a3af93
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_RADIOMETRY_TEMPER_TYPE.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 测温项类别
+*/
+public enum EM_RADIOMETRY_TEMPER_TYPE
+{
+ /**
+ * 点
+ */
+ EM_RADIOMETRY_TEMPER_TYPE_SPOT(0, "点"),
+ /**
+ * 区域
+ */
+ EM_RADIOMETRY_TEMPER_TYPE_AREA(1, "区域"),
+ /**
+ * 线
+ */
+ EM_RADIOMETRY_TEMPER_TYPE_LINE(2, "线");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_RADIOMETRY_TEMPER_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_RADIOMETRY_TEMPER_TYPE enumType : EM_RADIOMETRY_TEMPER_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_RADIOMETRY_TEMPER_TYPE enumType : EM_RADIOMETRY_TEMPER_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_RAID_ERROR.java b/src/main/java/com/netsdk/lib/enumeration/EM_RAID_ERROR.java
new file mode 100644
index 0000000..d9fa263
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_RAID_ERROR.java
@@ -0,0 +1,42 @@
+package com.netsdk.lib.enumeration;
+
+public enum EM_RAID_ERROR {
+ EM_RAID_ERROR_UNKNOW(0, "未知"),
+ EM_RAID_ERROR_FAILED(1, "RAID错误"),// RAID错误
+ EM_RAID_ERROR_DEGRADED(2, "RAID降级");// RAID降级
+
+ private int value;
+ private String note;
+
+ private EM_RAID_ERROR(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_RAID_ERROR enumType : EM_RAID_ERROR.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_RAID_ERROR enumType : EM_RAID_ERROR.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_RAID_ERR_SUBDISK.java b/src/main/java/com/netsdk/lib/enumeration/EM_RAID_ERR_SUBDISK.java
new file mode 100644
index 0000000..efaef1e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_RAID_ERR_SUBDISK.java
@@ -0,0 +1,43 @@
+package com.netsdk.lib.enumeration;
+
+public enum EM_RAID_ERR_SUBDISK {
+ EM_RAID_ERR_SUBDISK_UNKNOWN(0, "未知"),// 未知
+ EM_RAID_ERR_SUBDISK_OFFLINE(1, "离线"),// 离线
+ EM_RAID_ERR_SUBDISK_FAULTY(2, "异常"),// 异常
+ EM_RAID_ERR_SUBDISK_WRITEERR(3, "写错误");// 写错误
+
+ private int value;
+ private String note;
+
+ private EM_RAID_ERR_SUBDISK(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_RAID_ERR_SUBDISK enumType : EM_RAID_ERR_SUBDISK.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_RAID_ERR_SUBDISK enumType : EM_RAID_ERR_SUBDISK.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_RAIN_SHED_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_RAIN_SHED_TYPE.java
new file mode 100644
index 0000000..e42fb83
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_RAIN_SHED_TYPE.java
@@ -0,0 +1,78 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 雨棚(伞)类型
+* @origin autoTool
+* @date 2023/02/14 20:11:39
+*/
+public enum EM_RAIN_SHED_TYPE {
+/**
+无
+*/
+ EM_RAIN_SHED_TYPE_NONE(-1, "无"),
+/**
+不撑伞
+*/
+ EM_RAIN_SHED_TYPE_NO_UMBRELLA(0, "不撑伞"),
+/**
+人非手撑伞
+*/
+ EM_RAIN_SHED_TYPE_NOT_PEOPLE_HOLD(1, "人非手撑伞"),
+/**
+未知
+*/
+ EM_RAIN_SHED_TYPE_UNKOWN(2, "未知"),
+/**
+非机动车装载雨伞
+*/
+ EM_RAIN_SHED_TYPE_NO_MOTOR_UMBRELLA(3, "非机动车装载雨伞"),
+/**
+非机动车装载雨棚
+*/
+ EM_RAIN_SHED_TYPE_NO_MOTOR_CANOPY(4, "非机动车装载雨棚");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_RAIN_SHED_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_RAIN_SHED_TYPE enumType : EM_RAIN_SHED_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_RAIN_SHED_TYPE enumType : EM_RAIN_SHED_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_RAIN_SHED_TYPE getEnum(int value) {
+ for (EM_RAIN_SHED_TYPE e : EM_RAIN_SHED_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_RAIN_SHED_TYPE.EM_RAIN_SHED_TYPE_NONE;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_REAL_DATA_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_REAL_DATA_TYPE.java
new file mode 100644
index 0000000..6a37095
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_REAL_DATA_TYPE.java
@@ -0,0 +1,51 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description
+ * @date 2021/3/2
+ */
+public enum EM_REAL_DATA_TYPE {
+ EM_REAL_DATA_TYPE_PRIVATE(0, "私有码流"),
+ EM_REAL_DATA_TYPE_GBPS(1, "国标PS码流"),
+ EM_REAL_DATA_TYPE_TS(2, "TS码流"),
+ EM_REAL_DATA_TYPE_MP4(3, "MP4文件"),
+ EM_REAL_DATA_TYPE_H264(4, "裸H264码流"),
+ EM_REAL_DATA_TYPE_FLV_STREAM(5, "流式FLV");
+
+ private int type;
+ private String desc;
+
+ public int getType() {
+ return type;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ EM_REAL_DATA_TYPE(int type, String desc) {
+ this.type = type;
+ this.desc = desc;
+ }
+
+ public static EM_REAL_DATA_TYPE getRealDataType(int type) {
+ for (EM_REAL_DATA_TYPE dataType : EM_REAL_DATA_TYPE.values()) {
+ if (dataType.getType() == type) {
+ return dataType;
+ }
+ }
+ return EM_REAL_DATA_TYPE_PRIVATE;
+ }
+
+ public static EM_REAL_DATA_TYPE getRealDataType(String streamType) {
+ for (EM_REAL_DATA_TYPE dataType : EM_REAL_DATA_TYPE.values()) {
+ if (dataType.getDesc().toLowerCase().contains(streamType.toLowerCase().trim())) {
+ return dataType;
+ }
+ }
+ return EM_REAL_DATA_TYPE_PRIVATE;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_REASON_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_REASON_TYPE.java
new file mode 100644
index 0000000..dd37642
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_REASON_TYPE.java
@@ -0,0 +1,81 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 音频文件预上传错误原因
+ * @date 2020/6/10
+ */
+public enum EM_REASON_TYPE {
+ /**
+ * 未知原因
+ */
+ EM_REASON_TYPE_UNKNOWN(0, "未知原因"),
+ /**
+ * 文件个数超出
+ */
+ EM_REASON_TYPE_OVERNUMBER(1, "文件个数超出"),
+ /**
+ * 文件存储已满
+ */
+ EM_REASON_TYPE_FULLSTORAGE(2, "文件存储空间已满"),
+ /**
+ * 文件太大
+ */
+ EM_REASON_TYPE_TOOLARGE_FILE(3, "该文件太大"),
+ /**
+ * 无效的文件类型
+ */
+ EM_REASON_TYPE_INVALID_FILETYPE(4, "无效的文件类型"),
+ /**
+ * 没有上传权限
+ */
+ EM_REASON_TYPE_UNAUTH_UPLOAD(5, "没有上传权限"),
+ /**
+ * 文件命名异常
+ */
+ EM_REASON_TYPE_EXCEPTION_NAME(6, "文件命名异常"),
+ /**
+ * 文件名太长
+ */
+ EM_REASON_TYPE_TOOLONG_NAME(7, "文件名太长"),
+ /**
+ * 文件名已存在
+ */
+ EM_REASON_TYPE_EXIST_NAME(8, "文件名已存在");
+
+ private int type;
+ private String reason;
+
+ private EM_REASON_TYPE(int type, String reson) {
+ this.type = type;
+ this.reason = reson;
+ }
+
+ public String getReason() {
+ return reason;
+ }
+
+ public int getType() {
+ return type;
+ }
+
+ public static String getReason(int type) {
+ for (EM_REASON_TYPE reason : EM_REASON_TYPE.values()) {
+ if (type == reason.getType()) {
+ return reason.getReason();
+ }
+ }
+ return null;
+ }
+
+ public static EM_REASON_TYPE getReasonType(int type) {
+ for (EM_REASON_TYPE reason : EM_REASON_TYPE.values()) {
+ if (type == reason.type) {
+ return reason;
+ }
+ }
+ return null;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_RECORD_BACKUP_FAIL_REASON.java b/src/main/java/com/netsdk/lib/enumeration/EM_RECORD_BACKUP_FAIL_REASON.java
new file mode 100644
index 0000000..78b761d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_RECORD_BACKUP_FAIL_REASON.java
@@ -0,0 +1,100 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 失败的原因
+ * @date 2021/11/07
+ */
+public enum EM_RECORD_BACKUP_FAIL_REASON {
+ /**
+ 未知
+ */
+ EM_RECORD_BACKUP_FAIL_REASON_UNKNOW(0, "未知"),
+ /**
+ 登入失败
+ */
+ EM_RECORD_BACKUP_FAIL_REASON_LOGIN_FAIL(1, "登入失败"),
+ /**
+ 没有查询到录像
+ */
+ EM_RECORD_BACKUP_FAIL_REASON_NO_FILES(2, "没有查询到录像"),
+ /**
+ 下载过程中网络断开
+ */
+ EM_RECORD_BACKUP_FAIL_REASON_DOWNLOAD_NET_ERROR(3, "下载过程中网络断开"),
+ /**
+ 未知错误
+ */
+ EM_RECORD_BACKUP_FAIL_REASON_UNKNOW_ERROR(4, "未知错误"),
+ /**
+ 用户名无效
+ */
+ EM_RECORD_BACKUP_FAIL_REASON_USER_NAME_NOT_VALID(5, "用户名无效"),
+ /**
+ 密码错误
+ */
+ EM_RECORD_BACKUP_FAIL_REASON_PASSWORD_NOT_VALID(6, "密码错误"),
+ /**
+ 地址被屏蔽
+ */
+ EM_RECORD_BACKUP_FAIL_REASON_PEER_HAS_BEEN_BLOCKED(7, "地址被屏蔽"),
+ /**
+ 地址在禁止访问名单内
+ */
+ EM_RECORD_BACKUP_FAIL_REASON_PEER_IN_BLOCK_LIST(8, "地址在禁止访问名单内"),
+ /**
+ 超出最大连接数
+ */
+ EM_RECORD_BACKUP_FAIL_REASON_TOO_MANY_CONNECTIONS(9, "超出最大连接数"),
+ /**
+ 账号被锁定
+ */
+ EM_RECORD_BACKUP_FAIL_REASON_ACCOUNT_HAS_BEEN_BLOCKED(10, "账号被锁定"),
+ /**
+ 登入时网络连接失败
+ */
+ EM_RECORD_BACKUP_FAIL_REASON_LOGIN_CONNECT_FAILED(11, "登入时网络连接失败"),
+ /**
+ 登入用户名或者密码错误
+ */
+ EM_RECORD_BACKUP_FAIL_REASON_USER_OR_PWD_NOT_VALID(12, "登入用户名或者密码错误"),
+ /**
+ 登入超时
+ */
+ EM_RECORD_BACKUP_FAIL_REASON_LOGIN_CONNECT_TIMEOUT(13, "登入超时");
+
+ private int value;
+ private String note;
+
+ private EM_RECORD_BACKUP_FAIL_REASON(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_RECORD_BACKUP_FAIL_REASON enumType : EM_RECORD_BACKUP_FAIL_REASON.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_RECORD_BACKUP_FAIL_REASON enumType : EM_RECORD_BACKUP_FAIL_REASON.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_RECORD_BACKUP_FIND_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_RECORD_BACKUP_FIND_TYPE.java
new file mode 100644
index 0000000..f379a36
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_RECORD_BACKUP_FIND_TYPE.java
@@ -0,0 +1,51 @@
+package com.netsdk.lib.enumeration;
+/**
+ * @author 251823
+ * @description 根据条件查询备份任务的查询方式
+ * @date 2022/01/14
+ */
+public enum EM_RECORD_BACKUP_FIND_TYPE {
+ // 未知
+ EM_RECORD_BACKUP_FIND_TYPE_UNKNOWN(0, "未知"),
+ // 按照任务号查询
+ EM_RECORD_BACKUP_FIND_TYPE_BY_TASKID(1, "按照任务号查询"),
+ // 按照通道和录制时间段查询
+ EM_RECORD_BACKUP_FIND_TYPE_BY_CHN_AND_TIME(2, "按照通道和录制时间段查询"),
+ // 按照主动注册的设备ID查
+ EM_RECORD_BACKUP_FIND_TYPE_BY_DEVICE_ID(3, "按照主动注册的设备ID查");
+
+ private int value;
+ private String note;
+
+ private EM_RECORD_BACKUP_FIND_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_RECORD_BACKUP_FIND_TYPE enumType : EM_RECORD_BACKUP_FIND_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_RECORD_BACKUP_FIND_TYPE enumType : EM_RECORD_BACKUP_FIND_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_RECORD_SNAP_FLAG_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_RECORD_SNAP_FLAG_TYPE.java
new file mode 100644
index 0000000..336cd11
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_RECORD_SNAP_FLAG_TYPE.java
@@ -0,0 +1,112 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 录像或抓图文件标志
+ * @date 2022/11/03 09:21:59
+ */
+public enum EM_RECORD_SNAP_FLAG_TYPE {
+ /**
+ * 未知
+ */
+ FLAG_TYPE_UNKNOW(-1, "未知"),
+ /**
+ * 定时文件
+ */
+ FLAG_TYPE_TIMING(0, "定时文件"),
+ /**
+ * 手动文件
+ */
+ FLAG_TYPE_MANUAL(1, "手动文件"),
+ /**
+ * 重要文件
+ */
+ FLAG_TYPE_MARKED(2, "重要文件"),
+ /**
+ * 事件文件
+ */
+ FLAG_TYPE_EVENT(3, "事件文件"),
+ /**
+ * 合成图片
+ */
+ FLAG_TYPE_MOSAIC(4, "合成图片"),
+ /**
+ * 抠图图片
+ */
+ FLAG_TYPE_CUTOUT(5, "抠图图片"),
+ /**
+ * 留言文件
+ */
+ FLAG_TYPE_LEAVE_WORD(6, "留言文件"),
+ /**
+ * 对讲本地方文件
+ */
+ FLAG_TYPE_TALKBACK_LOCAL_SIDE(7, "对讲本地方文件"),
+ /**
+ * 对讲远程方文件
+ */
+ FLAG_TYPE_TALKBACK_REMOTE_SIDE(8, "对讲远程方文件"),
+ /**
+ * 浓缩视频
+ */
+ FLAG_TYPE_SYNOPSIS_VIDEO(9, "浓缩视频"),
+ /**
+ * 原始视频
+ */
+ FLAG_TYPE_ORIGINAL_VIDEO(10, "原始视频"),
+ /**
+ * 已经预处理的原始视频
+ */
+ FLAG_TYPE_PRE_ORIGINAL_VIDEO(11, "已经预处理的原始视频"),
+ /**
+ * 禁止名单图片
+ */
+ FLAG_TYPE_BLACK_PLATE(12, "禁止名单图片"),
+ /**
+ * 原始图片
+ */
+ FLAG_TYPE_ORIGINAL_PIC(13, "原始图片"),
+ /**
+ * 卡号录像
+ */
+ FLAG_TYPE_CARD(14, "卡号录像"),
+ /**
+
+ */
+ FLAG_TYPE_MAX(128, "");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_RECORD_SNAP_FLAG_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_RECORD_SNAP_FLAG_TYPE enumType : EM_RECORD_SNAP_FLAG_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_RECORD_SNAP_FLAG_TYPE enumType : EM_RECORD_SNAP_FLAG_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_RECORD_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_RECORD_TYPE.java
new file mode 100644
index 0000000..bc2e101
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_RECORD_TYPE.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 录像类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_RECORD_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_RECORD_TYPE_UNKNOWN = 0;
+ /**
+ * 普通录像
+ */
+ public static final int EM_RECORD_TYPE_COMMON = 1;
+ /**
+ * 报警录像
+ */
+ public static final int EM_RECORD_TYPE_ALARM2 = 2;
+ /**
+ * 动检录像
+ */
+ public static final int EM_RECORD_TYPE_MOTIONDETECT = 3;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_RELAY_STATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_RELAY_STATE_TYPE.java
new file mode 100644
index 0000000..f5250b0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_RELAY_STATE_TYPE.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 继电器状态
+ * @date 2020/12/14
+ */
+public enum EM_RELAY_STATE_TYPE {
+ // 未知
+ EM_RELAY_STATE_TYPE_UNKNOWN(-1, "未知"),
+ // 关
+ EM_RELAY_STATE_TYPE_CLOSE(0, "关"),
+ // 开
+ EM_RELAY_STATE_TYPE_OPEN(1, "开"),
+ // 不支持
+ EM_RELAY_STATE_TYPE_NO_SUPPORT(255, "不支持");
+
+ private int value;
+ private String note;
+
+ private EM_RELAY_STATE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_RELAY_STATE_TYPE enumType : EM_RELAY_STATE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_RELAY_STATE_TYPE enumType : EM_RELAY_STATE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_RELAY_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_RELAY_TYPE.java
new file mode 100644
index 0000000..f311c41
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_RELAY_TYPE.java
@@ -0,0 +1,69 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 是否启用中继转发
+* @date 2022/08/31 14:44:16
+*/
+public enum EM_RELAY_TYPE {
+/**
+未知
+*/
+ EM_RELAY_UNKNOWN(-1, "未知"),
+/**
+关闭
+*/
+ EM_RELAY_CLOSED(0, "关闭"),
+/**
+手动
+*/
+ EM_RELAY_MANUAL(1, "手动"),
+/**
+自动
+*/
+ EM_RELAY_AUTO(2, "自动");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_RELAY_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_RELAY_TYPE enumType : EM_RELAY_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_RELAY_TYPE enumType : EM_RELAY_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_RELAY_TYPE getEnum(int value) {
+ for (EM_RELAY_TYPE e : EM_RELAY_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_RELAY_TYPE.EM_RELAY_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_REMOTE_FILE_PROTOCOL_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_REMOTE_FILE_PROTOCOL_TYPE.java
new file mode 100644
index 0000000..4f4c921
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_REMOTE_FILE_PROTOCOL_TYPE.java
@@ -0,0 +1,77 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 远程文件访问协议
+*/
+public enum EM_REMOTE_FILE_PROTOCOL_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_REMOTE_FILE_PROTOCOL_UNKNOWN(0, "未知"),
+ /**
+ * RTSP
+ */
+ EM_REMOTE_FILE_PROTOCOL_RTSP(1, "RTSP"),
+ /**
+ * RabbitMq
+ */
+ EM_REMOTE_FILE_PROTOCOL_RABBITMQ(2, "RabbitMq"),
+ /**
+ * HTTP
+ */
+ EM_REMOTE_FILE_PROTOCOL_HTTP(3, "HTTP"),
+ /**
+ * Private
+ */
+ EM_REMOTE_FILE_PROTOCOL_PRIVATE(4, "Private"),
+ /**
+ * Onvif
+ */
+ EM_REMOTE_FILE_PROTOCOL_ONVIF(5, "Onvif"),
+ /**
+ * GB28181
+ */
+ EM_REMOTE_FILE_PROTOCOL_GB28181(6, "GB28181"),
+ EM_REMOTE_FILE_PROTOCOL_HIKVISION(7, ""),
+ EM_REMOTE_FILE_PROTOCOL_BSCP(8, ""),
+ /**
+ * ActiveMq
+ */
+ EM_REMOTE_FILE_PROTOCOL_ACTIVEMQ(9, "ActiveMq");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_REMOTE_FILE_PROTOCOL_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_REMOTE_FILE_PROTOCOL_TYPE enumType : EM_REMOTE_FILE_PROTOCOL_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_REMOTE_FILE_PROTOCOL_TYPE enumType : EM_REMOTE_FILE_PROTOCOL_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_REMOTE_SPEAK_PLAY_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_REMOTE_SPEAK_PLAY_STATE.java
new file mode 100644
index 0000000..34da773
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_REMOTE_SPEAK_PLAY_STATE.java
@@ -0,0 +1,63 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 开始放音状态
+*/
+public enum EM_REMOTE_SPEAK_PLAY_STATE
+{
+ /**
+ * 未知
+ */
+ EM_REMOTE_SPEAK_PLAY_STATE_UNKNOWN(0, "未知"),
+ /**
+ * 表示操作成功
+ */
+ EM_REMOTE_SPEAK_PLAY_STATE_OK(1, "表示操作成功"),
+ /**
+ * 表示操作正在进行
+ */
+ EM_REMOTE_SPEAK_PLAY_STATE_BUSY(2, "表示操作正在进行"),
+ /**
+ * 表示其它错误
+ */
+ EM_REMOTE_SPEAK_PLAY_STATE_ERROR(3, "表示其它错误"),
+ /**
+ * 表示Ftp地址不在NAS中
+ */
+ EM_REMOTE_SPEAK_PLAY_STATE_FTP_NOT_VALID(4, "表示Ftp地址不在NAS中");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_REMOTE_SPEAK_PLAY_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_REMOTE_SPEAK_PLAY_STATE enumType : EM_REMOTE_SPEAK_PLAY_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_REMOTE_SPEAK_PLAY_STATE enumType : EM_REMOTE_SPEAK_PLAY_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_RENT_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_RENT_STATE.java
new file mode 100644
index 0000000..6c73268
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_RENT_STATE.java
@@ -0,0 +1,71 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 对接第三方平台数据
+*/
+public enum EM_RENT_STATE
+{
+ /**
+ * 未知
+ */
+ EM_RENT_STATE_UNKNOWN(0, "未知"),
+ /**
+ * 正常缴费
+ */
+ EM_RENT_STATE_NORMAL_PAYMENT(1, "正常缴费"),
+ /**
+ * 欠费0~3个月
+ */
+ EM_RENT_STATE_0_TO_3_MONTHS_IN_ARREARS(2, "欠费0~3个月"),
+ /**
+ * 欠费3~6个月
+ */
+ EM_RENT_STATE_3_TO_6_MONTHS_IN_ARREARS(3, "欠费3~6个月"),
+ /**
+ * 欠费6~12个月
+ */
+ EM_RENT_STATE_6_TO_12_MONTHS_IN_ARREARS(4, "欠费6~12个月"),
+ /**
+ * 欠费12个月以上
+ */
+ EM_RENT_STATE_MORE_THAN_12_MONTHS_IN_ARREARS(5, "欠费12个月以上"),
+ /**
+ * 临时访客
+ */
+ EM_RENT_STATE_TEMPORARY_VISITOR(6, "临时访客");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_RENT_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_RENT_STATE enumType : EM_RENT_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_RENT_STATE enumType : EM_RENT_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_RESPIRATOR_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_RESPIRATOR_STATE.java
new file mode 100644
index 0000000..3dffaae
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_RESPIRATOR_STATE.java
@@ -0,0 +1,73 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 呼吸器状态
+* @date 2022/06/28 19:44:55
+*/
+public enum EM_RESPIRATOR_STATE {
+/**
+未知
+*/
+ EM_RESPIRATOR_STATE_UNKNOWN(0, "未知"),
+/**
+正常
+*/
+ EM_RESPIRATOR_STATE_NORMAL(1, "正常"),
+/**
+硅胶变色
+*/
+ EM_RESPIRATOR_STATE_SILICA_GEL_COLOR_CHANGE(2, "硅胶变色"),
+/**
+硅胶桶破损
+*/
+ EM_RESPIRATOR_STATE_SILICA_GEL_BARREL_BROKEN(3, "硅胶桶破损"),
+/**
+油位异常
+*/
+ EM_RESPIRATOR_STATE_ABNORMAL_OIL_LEVEL(4, "油位异常");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_RESPIRATOR_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_RESPIRATOR_STATE enumType : EM_RESPIRATOR_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_RESPIRATOR_STATE enumType : EM_RESPIRATOR_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_RESPIRATOR_STATE getEnum(int value) {
+ for (EM_RESPIRATOR_STATE e : EM_RESPIRATOR_STATE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_RESPIRATOR_STATE.EM_RESPIRATOR_STATE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ROAD_LEVEL.java b/src/main/java/com/netsdk/lib/enumeration/EM_ROAD_LEVEL.java
new file mode 100644
index 0000000..18f50d2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ROAD_LEVEL.java
@@ -0,0 +1,86 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 路面状况等级
+* @origin autoTool
+* @date 2023/06/16 10:02:52
+*/
+public enum EM_ROAD_LEVEL {
+/**
+未知
+*/
+ EM_ROAD_UNKNOWN_LEVEL(-1, "未知"),
+/**
+0: 纵向裂纹
+*/
+ EM_ROAD_ZERO_LEVEL(0, "0: 纵向裂纹"),
+/**
+1: 横向裂纹
+*/
+ EM_ROAD_ONE_LEVEL(1, "1: 横向裂纹"),
+/**
+2: 鳄鱼裂纹
+*/
+ EM_ROAD_TWO_LEVEL(2, "2: 鳄鱼裂纹"),
+/**
+3: 槽纹
+*/
+ EM_ROAD_THREE_LEVEL(3, "3: 槽纹"),
+/**
+4: 车辙纹
+*/
+ EM_ROAD_FOUR_LEVEL(4, "4: 车辙纹"),
+/**
+5: 纵向修复纹
+*/
+ EM_ROAD_FIVE_LEVEL(5, "5: 纵向修复纹"),
+/**
+6: 横向修复纹
+*/
+ EM_ROAD_SIX_LEVEL(6, "6: 横向修复纹");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_ROAD_LEVEL(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_ROAD_LEVEL enumType : EM_ROAD_LEVEL.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_ROAD_LEVEL enumType : EM_ROAD_LEVEL.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_ROAD_LEVEL getEnum(int value) {
+ for (EM_ROAD_LEVEL e : EM_ROAD_LEVEL.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_ROAD_LEVEL.EM_ROAD_UNKNOWN_LEVEL;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_RPC_NETAPP_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_RPC_NETAPP_TYPE.java
new file mode 100644
index 0000000..6cbaeb1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_RPC_NETAPP_TYPE.java
@@ -0,0 +1,35 @@
+package com.netsdk.lib.enumeration;
+/**
+ * @author 251823
+ * @description 网络应用组件 操作类型
+ * @date 2021/09/01
+ */
+public enum EM_RPC_NETAPP_TYPE {
+ /**
+ *获得网络资源统计, pstuIn 对应 NET_IN_NETAPP_GET_NET_RESOURCE_STAT*,pstuOut对应 NET_OUT_NETAPP_GET_NET_RESOURCE_STAT*
+ */
+ EM_RPC_NETAPP_TYPE_GET_NET_RESOURCE_STAT(0),
+ /**
+ * 获取3G网络的信号强度, pstuIn 对应 NET_IN_NETAPP_GET_MOBILE_RSSI*, pstuOut 对应 NET_OUT_NETAPP_GET_MOBILE_RSSI*
+ */
+ EM_RPC_NETAPP_TYPE_GET_MOBILE_RSSI(1),
+ /**
+ * 获取所有移动网络接口, pstuIn 对应 NET_IN_NETAPP_GET_MOBILE_INTERFACE*,pstuOut对应 NET_OUT_NETAPP_GET_MOBILE_INTERFACE*
+ */
+ EM_PRC_NETAPP_TYPE_GET_MOBILE_INTERFACE(2),
+ /**
+ * 获取拨号信息, pstuIn 对应 NET_IN_NETAPP_GET_DIAL_INFO*,pstuOut对应 NET_OUT_NETAPP_GET_DIAL_INFO*
+ */
+ EM_PRC_NETAPP_TYPE_GET_DIAL_INFO(3);
+
+ private final int id;
+
+ private EM_RPC_NETAPP_TYPE(int id){
+ this.id=id;
+ }
+
+ public int getId() {
+ return id;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_RULE_TYPE_ACCURATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_RULE_TYPE_ACCURATE.java
new file mode 100644
index 0000000..4c4bc7f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_RULE_TYPE_ACCURATE.java
@@ -0,0 +1,70 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 精准人数统计类型
+ * @origin autoTool
+ * @date 2023/09/22 13:39:21
+ */
+public enum EM_RULE_TYPE_ACCURATE {
+ /**
+ * 未知
+ */
+ EM_RULE_TYPE_ACCURATE_UNKNOWN(0, "未知"),
+ /**
+ * 客流ReID
+ */
+ EM_RULE_TYPE_ACCURATE_NUMBERSTAT(1, "客流ReID"),
+ /**
+ * 目标去重
+ */
+ EM_RULE_TYPE_ACCURATE_TARGETRECOGNITION(2, "目标去重"),
+ /**
+ * 客流聚档
+ */
+ EM_RULE_TYPE_ACCURATE_NUMBERSTATCLUSTER(3, "客流聚档");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_RULE_TYPE_ACCURATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_RULE_TYPE_ACCURATE enumType : EM_RULE_TYPE_ACCURATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_RULE_TYPE_ACCURATE enumType : EM_RULE_TYPE_ACCURATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_RULE_TYPE_ACCURATE getEnum(int value) {
+ for (EM_RULE_TYPE_ACCURATE e : EM_RULE_TYPE_ACCURATE.values()) {
+ if (e.getValue() == value) {
+ return e;
+ }
+ }
+ return EM_RULE_TYPE_ACCURATE.EM_RULE_TYPE_ACCURATE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SAVE_COLLECTION_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SAVE_COLLECTION_TYPE.java
new file mode 100644
index 0000000..d3cd902
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SAVE_COLLECTION_TYPE.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 预案类型
+* @origin autoTool
+* @date 2023/03/06 15:54:24
+*/
+public enum EM_SAVE_COLLECTION_TYPE {
+/**
+未知
+*/
+ EM_SAVE_COLLECTION_UNKNOWN(0, "未知"),
+/**
+视频预案
+*/
+ EM_SAVE_COLLECTION_VIDEO(1, "视频预案"),
+/**
+附加预案
+*/
+ EM_SAVE_COLLECTION_ADDITIONAL(2, "附加预案");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_SAVE_COLLECTION_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_SAVE_COLLECTION_TYPE enumType : EM_SAVE_COLLECTION_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_SAVE_COLLECTION_TYPE enumType : EM_SAVE_COLLECTION_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_SAVE_COLLECTION_TYPE getEnum(int value) {
+ for (EM_SAVE_COLLECTION_TYPE e : EM_SAVE_COLLECTION_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_SAVE_COLLECTION_TYPE.EM_SAVE_COLLECTION_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SCENE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SCENE_TYPE.java
new file mode 100644
index 0000000..487deae
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SCENE_TYPE.java
@@ -0,0 +1,190 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 应用场景, 内容与EM_SCENE_CLASS_TYPE一致
+ * @date 2021/01/16
+ */
+public enum EM_SCENE_TYPE {
+ // 未知
+ EM_SCENE_UNKNOW(0, "未知"),
+ // 普通场景
+ EM_SCENE_NORMAL(1, "Normal"),
+ // 交通场景
+ EM_SCENE_TRAFFIC(2, "Traffic"),
+ // 交通巡视
+ EM_SCENE_TRAFFIC_PATROL(3, "TrafficPatrol"),
+ // 目标检测/目标识别
+ EM_SCENE_FACEDETECTION(4, "FaceDetection"),
+ // ATM
+ EM_SCENE_ATM(5, "ATM"),
+ // 室内行为分析,和普通规则相同,对室内场景的算法优化版
+ EM_SCENE_INDOOR(6, "Indoor"),
+ // 目标识别
+ EM_SCENE_FACERECOGNITION(7, "FaceRecognition"),
+ //
+ EM_SCENE_PS(8, ""),
+ // 客流量统计
+ EM_SCENE_NUMBERSTAT(9, "NumberStat"),
+ // 热度图
+ EM_SCENE_HEAT_MAP(10, "HeatMap"),
+ // 视频诊断
+ EM_SCENE_VIDEODIAGNOSIS(11, "VideoDiagnosis"),
+ // 车辆特征检测分析
+ EM_SCENE_VEHICLEANALYSE(12, "VehicleAnalyse"),
+ // 自动录播
+ EM_SCENE_COURSERECORD(13, "CourseRecord"),
+ // 车载场景(车载行业用,不同于智能交通的Traffic)
+ EM_SCENE_VEHICLE(14, "Vehicle"),
+ // 起立检测
+ EM_SCENE_STANDUPDETECTION(15, "StandUpDetection"),
+ // 卡口
+ EM_SCENE_GATE(16, "Gate"),
+ // 多预置点目标检测,配置一条规则但可以在不同预置点下生效
+ EM_SCENE_SDFACEDETECTION(17, "SDFaceDetect"),
+ // 球机热度图计划
+ EM_SCENE_HEAT_MAP_PLAN(18, "HeatMapPlan"),
+ // 球机客流量统计计划
+ EM_SCENE_NUMBERSTAT_PLAN(19, "NumberStatPlan"),
+ // 金融目标检测,包括正常人脸、异常人脸、相邻人脸、头盔人脸等针对ATM场景特殊优化
+ EM_SCENE_ATMFD(20, "ATMFD"),
+ // 高速交通事件检测
+ EM_SCENE_HIGHWAY(21, "Highway"),
+ // 城市交通事件检测
+ EM_SCENE_CITY(22, "City"),
+ // 民用简易跟踪
+ EM_SCENE_LETRACK(23, "LeTrack"),
+ // 打靶相机
+ EM_SCENE_SCR(24, "SCR"),
+ // 立体视觉(双目)
+ EM_SCENE_STEREO_VISION(25, "StereoVision"),
+ // 人体检测
+ EM_SCENE_HUMANDETECT(26, "HumanDetect"),
+ // 人脸分析(同时支持目标检测、目标识别、人脸属性等综合型业务)
+ EM_SCENE_FACEANALYSIS(27, "FaceAnalysis"),
+ // X光检测
+ EM_SCENE_XRAY_DETECTION(28, "XRayDetection"),
+ // 双目相机客流量统计
+ EM_SCENE_STEREO_NUMBER(29, "StereoNumber"),
+ // 人群分布图
+ EM_SCENE_CROWD_DISTRI_MAP(30, "CrowdDistriMap"),
+ // 目标检测(含人机非等物体)
+ EM_SCENE_OBJECTDETECT(31, "ObjectDetect"),
+ // IVSS目标检测
+ EM_SCENE_FACEATTRIBUTE(32, "FaceAttribute"),
+ // IVSS目标识别
+ EM_SCENE_FACECOMPARE(33, "FaceCompare"),
+ // 立体行为分析(典型场景ATM舱)
+ EM_SCENE_STEREO_BEHAVIOR(34, "StereoBehavior"),
+ // 智慧城管
+ EM_SCENE_INTELLICITYMANAGER(35, "IntelliCityMgr"),
+ // 防护舱(ATM舱内)
+ EM_SCENE_PROTECTIVECABIN(36, "ProtectiveCabin"),
+ // 飞机行为检测
+ EM_SCENE_AIRPLANEDETECT(37, "AirplaneDetect"),
+ // 人群态势(人群分布图服务)
+ EM_SCENE_CROWDPOSTURE(38, "CrowdPosture"),
+ // 打电话检测
+ EM_SCENE_PHONECALLDETECT(39, "PhoneCallDetect"),
+ // 烟雾检测
+ EM_SCENE_SMOKEDETECTION(40, "SmokeDetection"),
+ // 船只检测
+ EM_SCENE_BOATDETECTION(41, "BoatDetection"),
+ // 吸烟检测
+ EM_SCENE_SMOKINGDETECT(42, "SmokingDetect"),
+ // 水利监测
+ EM_SCENE_WATERMONITOR(43, "WaterMonitor"),
+ // 生成图规则
+ EM_SCENE_GENERATEGRAPHDETECTION(44, "GenerateGraphDetection"),
+ // 交通停车
+ EM_SCENE_TRAFFIC_PARK(45, "TrafficPark"),
+ // 作业检测
+ EM_SCENE_OPERATEMONITOR(46, "OperateMonitor"),
+ // 智慧零售大类
+ EM_SCENE_INTELLI_RETAIL(47, "IntelliRetail"),
+ // 教育智慧课堂
+ EM_SCENE_CLASSROOM_ANALYSE(48, "ClassroomAnalyse"),
+ // 特征向量提取大类
+ EM_SCENE_FEATURE_ABSTRACT(49, "FeatureAbstract"),
+ // 人体检测
+ EM_SCENE_FACEBODY_DETECT(50, "FaceBodyDetect"),
+ // 人体识别
+ EM_SCENE_FACEBODY_ANALYSE(51, "FaceBodyAnalyse"),
+ // 车辆密度
+ EM_SCENE_VEHICLES_DISTRI(52, "VehiclesDistri"),
+ // 智慧养殖检测
+ EM_SCENE_INTELLI_BREED(53, "IntelliBreed"),
+ //
+ EM_SCENE_INTELLI_PS(54, ""),
+ // 电力检测
+ EM_SCENE_ELECTRIC_DETECT(55, "ElectricDetect"),
+ // 雷检检测
+ EM_SCENE_RADAR_DETECT(56, "RadarDetect"),
+ // 车位检测大类
+ EM_SCENE_PARKINGSPACE(57, "ParkingSpace"),
+ // 智慧金融
+ EM_SCENE_INTELLI_FINANCE(58, "IntelliFinance"),
+ // CrowdAbnormal
+ EM_SCENE_CROWD_ABNORMAL(59, "CrowdAbnormal"),
+ // 超温检测
+ EM_SCENE_ANATOMYTEMP_DETECT(60, "AnatomyTempDetect"),
+ // 天气监控
+ EM_SCENE_WEATHER_MONITOR(61, "WeatherMonitor"),
+ // 电梯门禁
+ EM_SCENE_ELEVATOR_ACCESS_CONTROL(62, "ElevatorAccessControl"),
+ // 违章建筑
+ EM_SCENE_BREAK_RULE_BUILDING(63, "BreakRuleBuilding"),
+ // 全景交通
+ EM_SCENE_PANORAMA_TRAFFIC(64, "PanoramaTraffic"),
+ // 人像检测
+ EM_SCENE_PORTRAIT_DETECT(65, "PortraitDetect"),
+ // 传送带阻塞
+ EM_SCENE_CONVEY_OR_BLOCK(66, "ConveyorBlock"),
+ // 厨房有害动物检测
+ EM_SCENE_KITCHEN_ANIMAL(67, "KitchenAnimal"),
+ // 万物检测
+ EM_SCENE_ALLSEEINGEYE(68, "AllSeeingEye"),
+ // 驾驶行为分析
+ EM_SCENE_DRIVE(69, "Drive"),
+ // 高级驾驶辅助系统
+ EM_SCENE_DRIVEASSISTANT(70, "DriveAssistant"),
+ // 车内驾驶舱监测
+ EM_SCENE_INCABINMONITOR(71, "InCabinMonitor"),
+ // 盲区检测
+ EM_SCENE_BLINDSPOTDETECTION(72, "BlindSpotDetection");
+
+ private int value;
+ private String note;
+
+ private EM_SCENE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SCENE_TYPE enumType : EM_SCENE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SCENE_TYPE enumType : EM_SCENE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SCREEN_TEXT_COLOR.java b/src/main/java/com/netsdk/lib/enumeration/EM_SCREEN_TEXT_COLOR.java
new file mode 100644
index 0000000..f388e20
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SCREEN_TEXT_COLOR.java
@@ -0,0 +1,64 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 屏幕文本颜色
+ * @date 2022/11/28 16:20:21
+ */
+public enum EM_SCREEN_TEXT_COLOR {
+ /**
+ * 未知
+ */
+ EM_SCREEN_TEXT_COLOR_UNKNOWN(-1, "未知"),
+ /**
+ * 绿色
+ */
+ EM_SCREEN_TEXT_COLOR_GREEN(0, "绿色"),
+ /**
+ * 红色
+ */
+ EM_SCREEN_TEXT_COLOR_RED(1, "红色"),
+ /**
+ * 黄色
+ */
+ EM_SCREEN_TEXT_COLOR_YELLOW(2, "黄色"),
+ /**
+ * 白色
+ */
+ EM_SCREEN_TEXT_COLOR_WHITE(3, "白色");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_SCREEN_TEXT_COLOR(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SCREEN_TEXT_COLOR enumType : EM_SCREEN_TEXT_COLOR.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SCREEN_TEXT_COLOR enumType : EM_SCREEN_TEXT_COLOR.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SCREEN_TEXT_ROLL_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SCREEN_TEXT_ROLL_MODE.java
new file mode 100644
index 0000000..6ee6697
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SCREEN_TEXT_ROLL_MODE.java
@@ -0,0 +1,64 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 屏幕文本滚动模式
+ * @date 2022/11/28 16:20:32
+ */
+public enum EM_SCREEN_TEXT_ROLL_MODE {
+ /**
+ * 未知
+ */
+ EM_SCREEN_TEXT_ROLL_MODE_UNKNOWN(-1, "未知"),
+ /**
+ * 不滚动
+ */
+ EM_SCREEN_TEXT_ROLL_MODE_NO(0, "不滚动"),
+ /**
+ * 左右滚动
+ */
+ EM_SCREEN_TEXT_ROLL_MODE_LEFT_RIGHT(1, "左右滚动"),
+ /**
+ * 上下翻页滚动
+ */
+ EM_SCREEN_TEXT_ROLL_MODE_UP_DOWN(2, "上下翻页滚动"),
+ /**
+ * 截取(超出部分直接截断显示)
+ */
+ EM_SCREEN_TEXT_ROLL_MODE_CUT_OUT(3, "截取(超出部分直接截断显示)");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_SCREEN_TEXT_ROLL_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SCREEN_TEXT_ROLL_MODE enumType : EM_SCREEN_TEXT_ROLL_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SCREEN_TEXT_ROLL_MODE enumType : EM_SCREEN_TEXT_ROLL_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SCREEN_TEXT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SCREEN_TEXT_TYPE.java
new file mode 100644
index 0000000..cd7fc5f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SCREEN_TEXT_TYPE.java
@@ -0,0 +1,64 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 屏幕文本类型
+ * @date 2022/11/28 16:20:10
+ */
+public enum EM_SCREEN_TEXT_TYPE {
+ /**
+ * 未知
+ */
+ EM_SCREEN_TEXT_TYPE_UNKNOWN(-1, "未知"),
+ /**
+ * 普通
+ */
+ EM_SCREEN_TEXT_TYPE_ORDINARY(0, "普通"),
+ /**
+ * 本地时间
+ */
+ EM_SCREEN_TEXT_TYPE_LOCAL_TIME(1, "本地时间"),
+ /**
+ * 二维码
+ */
+ EM_SCREEN_TEXT_TYPE_QR_CODE(2, "二维码"),
+ /**
+ * 资源文件
+ */
+ EM_SCREEN_TEXT_TYPE_RESOURCE(3, "资源文件");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_SCREEN_TEXT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SCREEN_TEXT_TYPE enumType : EM_SCREEN_TEXT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SCREEN_TEXT_TYPE enumType : EM_SCREEN_TEXT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SDK_LOG_QUERY_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SDK_LOG_QUERY_TYPE.java
new file mode 100644
index 0000000..df8e9dc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SDK_LOG_QUERY_TYPE.java
@@ -0,0 +1,50 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 日志查询类型
+ *
+ * @author 47081
+ */
+public enum EM_SDK_LOG_QUERY_TYPE {
+ /**
+ * 所有日志
+ */
+ DHLOG_ALL,
+ /**
+ * 系统日志
+ */
+ DHLOG_SYSTEM,
+ /**
+ * 配置日志
+ */
+ DHLOG_CONFIG,
+ /**
+ * 存储相关
+ */
+ DHLOG_STORAGE,
+ /**
+ * 报警日志
+ */
+ DHLOG_ALARM,
+ /**
+ * 录象相关
+ */
+ DHLOG_RECORD,
+ /**
+ * 帐号相关
+ */
+ DHLOG_ACCOUNT,
+ /**
+ * 清除日志
+ */
+ DHLOG_CLEAR,
+ /**
+ * 回放相关
+ */
+ DHLOG_PLAYBACK,
+ /**
+ * 前端管理运行相关
+ */
+ DHLOG_MANAGER;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SD_ENCRYPT_FLAG.java b/src/main/java/com/netsdk/lib/enumeration/EM_SD_ENCRYPT_FLAG.java
new file mode 100644
index 0000000..3d8e8a3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SD_ENCRYPT_FLAG.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description SD卡加密功能标识
+ * @date 2021/01/21
+ */
+public enum EM_SD_ENCRYPT_FLAG {
+ // 未知
+ EM_SD_ENCRYPT_UNKNOWN(-1, "未知"),
+ // 设备不支持SD卡加密功能
+ EM_SD_ENCRYPT_UNSUPPORT(0, "设备不支持SD卡加密功能"),
+ // 支持SD卡加密功能且获取数据成功
+ EM_SD_ENCRYPT_SUPPORT_AND_GETDATA_SUCCESS(1, "支持SD卡加密功能且获取数据成功"),
+ // 支持SD卡加密功能但获取数据失败
+ EM_SD_ENCRYPT_SUPPORT_AND_GETDATA_FAIL(2, "支持SD卡加密功能但获取数据失败");
+
+ private int value;
+ private String note;
+
+ private EM_SD_ENCRYPT_FLAG(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SD_ENCRYPT_FLAG enumType : EM_SD_ENCRYPT_FLAG.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SD_ENCRYPT_FLAG enumType : EM_SD_ENCRYPT_FLAG.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SD_LOCK_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SD_LOCK_STATE.java
new file mode 100644
index 0000000..6eac6bd
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SD_LOCK_STATE.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description SD卡加锁状态
+ * @date 2021/01/21
+ */
+public enum EM_SD_LOCK_STATE {
+ // 未知
+ EM_SD_LOCK_STATE_UNKNOWN(-1, "未知"),
+ // 未进行过加锁的状态, 如出厂状态,或清除密码时状态
+ EM_SD_LOCK_STATE_NORMAL(0, "未进行过加锁的状态"),
+ // 加锁
+ EM_SD_LOCK_STATE_LOCKED(1, "加锁"),
+ // 未加锁(加锁后解锁)
+ EM_SD_LOCK_STATE_UNLOCKED(2, "未加锁");
+
+ private int value;
+ private String note;
+
+ private EM_SD_LOCK_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SD_LOCK_STATE enumType : EM_SD_LOCK_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SD_LOCK_STATE enumType : EM_SD_LOCK_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SECURITYGATE_ALARM_LEVEL.java b/src/main/java/com/netsdk/lib/enumeration/EM_SECURITYGATE_ALARM_LEVEL.java
new file mode 100644
index 0000000..3211335
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SECURITYGATE_ALARM_LEVEL.java
@@ -0,0 +1,58 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author : 291189
+ * @since : Created in 2021/6/30 10:22
+ * 安全门人员报警级别
+ */
+public enum EM_SECURITYGATE_ALARM_LEVEL {
+ EM_SECURITYGATE_ALARM_LEVEL_UNKNOWN(0, "未知"),// 未知
+ EM_SECURITYGATE_ALARM_LEVEL_NON(1, "无报警"),// 无报警
+ EM_SECURITYGATE_ALARM_LEVEL_LOW(2, "低危报警级别"),// 低危报警级别
+ EM_SECURITYGATE_ALARM_LEVEL_MIDDLE(3, "中危报警级别"),// 中危报警级别
+ EM_SECURITYGATE_ALARM_LEVEL_HIGH(4, "高危报警级别");// 高危报警级别
+
+ private final int value;
+ private final String note;
+
+ EM_SECURITYGATE_ALARM_LEVEL(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SECURITYGATE_ALARM_LEVEL enumType : EM_SECURITYGATE_ALARM_LEVEL.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SECURITYGATE_ALARM_LEVEL enumType : EM_SECURITYGATE_ALARM_LEVEL.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_SECURITYGATE_ALARM_LEVEL getEnum(int value) {
+ for (EM_SECURITYGATE_ALARM_LEVEL e : EM_SECURITYGATE_ALARM_LEVEL.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_SECURITYGATE_ALARM_LEVEL.EM_SECURITYGATE_ALARM_LEVEL_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SECURITYGATE_ALARM_POSITION.java b/src/main/java/com/netsdk/lib/enumeration/EM_SECURITYGATE_ALARM_POSITION.java
new file mode 100644
index 0000000..8b4174b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SECURITYGATE_ALARM_POSITION.java
@@ -0,0 +1,70 @@
+package com.netsdk.lib.enumeration;
+/**
+ * @author : 291189
+ * @since : Created in 2021/6/30 10:28
+ * 报警位置
+ */
+public enum EM_SECURITYGATE_ALARM_POSITION {
+ EM_SECURITYGATE_ALARM_POSITION_UNKNWON(-1, "未知"),// 未知
+ EM_SECURITYGATE_ALARM_POSITION_LEFT_1(0, "左1"),// 左1
+ EM_SECURITYGATE_ALARM_POSITION_LEFT_2(1, "左2"),// 左2
+ EM_SECURITYGATE_ALARM_POSITION_LEFT_3(2, "左3"),// 左3
+ EM_SECURITYGATE_ALARM_POSITION_LEFT_4(3, "左4"),// 左4
+ EM_SECURITYGATE_ALARM_POSITION_LEFT_5(4, "左5"),// 左5
+ EM_SECURITYGATE_ALARM_POSITION_LEFT_6(5, "左6"),// 左6
+ EM_SECURITYGATE_ALARM_POSITION_MIDDLE_1(6, "中1"),// 中1
+ EM_SECURITYGATE_ALARM_POSITION_MIDDLE_2(7, "中2"),// 中2
+ EM_SECURITYGATE_ALARM_POSITION_MIDDLE_3(8, "中3"),// 中3
+ EM_SECURITYGATE_ALARM_POSITION_MIDDLE_4(9, "中4"),// 中4
+ EM_SECURITYGATE_ALARM_POSITION_MIDDLE_5(10, "中5"),// 中5
+ EM_SECURITYGATE_ALARM_POSITION_MIDDLE_6(11, "中6"),// 中6
+ EM_SECURITYGATE_ALARM_POSITION_RIGHT_1(12, "右1"),// 右1
+ EM_SECURITYGATE_ALARM_POSITION_RIGHT_2(13, "右2"),// 右2
+ EM_SECURITYGATE_ALARM_POSITION_RIGHT_3(14, "右3"),// 右3
+ EM_SECURITYGATE_ALARM_POSITION_RIGHT_4(15, "右4"),// 右4
+ EM_SECURITYGATE_ALARM_POSITION_RIGHT_5(16, "右5"),// 右5
+ EM_SECURITYGATE_ALARM_POSITION_RIGHT_6(17, "右6");// 右6
+
+ private final int value;
+ private final String note;
+
+ EM_SECURITYGATE_ALARM_POSITION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SECURITYGATE_ALARM_POSITION enumType : EM_SECURITYGATE_ALARM_POSITION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SECURITYGATE_ALARM_POSITION enumType : EM_SECURITYGATE_ALARM_POSITION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_SECURITYGATE_ALARM_POSITION getEnum(int value) {
+ for (EM_SECURITYGATE_ALARM_POSITION e : EM_SECURITYGATE_ALARM_POSITION.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_SECURITYGATE_ALARM_POSITION.EM_SECURITYGATE_ALARM_POSITION_UNKNWON;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SECURITYGATE_EXPRESSION_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SECURITYGATE_EXPRESSION_TYPE.java
new file mode 100644
index 0000000..0be62d1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SECURITYGATE_EXPRESSION_TYPE.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author : 291189
+ * @since : Created in 2021/6/30 11:01
+ * 人脸表情
+ */
+
+public enum EM_SECURITYGATE_EXPRESSION_TYPE {
+ EM_SECURITYGATE_EXPRESSION_UNKNOWN(-1, "未知"),// 未知
+ EM_SECURITYGATE_EXPRESSION_UNDEFINE(0, "未识别"),// 未识别
+ EM_SECURITYGATE_EXPRESSION_ANGER(1, "生气"),// 生气
+ EM_SECURITYGATE_EXPRESSION_SAD(2, "悲伤"),// 悲伤
+ EM_SECURITYGATE_EXPRESSION_DISGUST(3, "厌恶"),// 厌恶
+ EM_SECURITYGATE_EXPRESSION_FEAR(4, "恐惧"),// 恐惧
+ EM_SECURITYGATE_EXPRESSION_SURPRISED(5, "诧异"),// 诧异
+ EM_SECURITYGATE_EXPRESSION_CALM(6, "平静"),// 平静
+ EM_SECURITYGATE_EXPRESSION_SMILE(7, "微笑"),// 微笑
+ EM_SECURITYGATE_EXPRESSION_LAUGH(8, "大笑"),// 大笑
+ EM_SECURITYGATE_EXPRESSION_HAPPY(9, "高兴"),// 高兴
+ EM_SECURITYGATE_EXPRESSION_CONFUSE(10, "困惑"),// 困惑
+ EM_SECURITYGATE_EXPRESSION_SCREAM(11, "尖叫");// 尖叫
+
+ private final int value;
+ private final String note;
+
+ EM_SECURITYGATE_EXPRESSION_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SECURITYGATE_EXPRESSION_TYPE enumType : EM_SECURITYGATE_EXPRESSION_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SECURITYGATE_EXPRESSION_TYPE enumType : EM_SECURITYGATE_EXPRESSION_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_SECURITYGATE_EXPRESSION_TYPE getEnum(int value) {
+ for (EM_SECURITYGATE_EXPRESSION_TYPE e : EM_SECURITYGATE_EXPRESSION_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_SECURITYGATE_EXPRESSION_TYPE.EM_SECURITYGATE_EXPRESSION_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SECURITYGATE_GLASSES_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SECURITYGATE_GLASSES_TYPE.java
new file mode 100644
index 0000000..23fe7b3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SECURITYGATE_GLASSES_TYPE.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author : 291189
+ * @since : Created in 2021/6/30 11:11
+ * 安检门事件人员是否戴眼镜
+ */
+public enum EM_SECURITYGATE_GLASSES_TYPE {
+ EM_SECURITYGATE_GLASSES_UNKNOWN(-1, "未知"),// 未知
+ EM_SECURITYGATE_GLASSES_UNDEFINE(0, "未识别"),// 未识别
+ EM_SECURITYGATE_WITHOUT_GLASSES(1, "未戴眼镜"),// 未戴眼镜
+ EM_SECURITYGATE_WITH_GLASSES(2, "戴眼镜");// 戴眼镜
+
+ private final int value;
+ private final String note;
+
+ EM_SECURITYGATE_GLASSES_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SECURITYGATE_GLASSES_TYPE enumType : EM_SECURITYGATE_GLASSES_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SECURITYGATE_GLASSES_TYPE enumType : EM_SECURITYGATE_GLASSES_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_SECURITYGATE_GLASSES_TYPE getEnum(int value) {
+ for (EM_SECURITYGATE_GLASSES_TYPE e : EM_SECURITYGATE_GLASSES_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_SECURITYGATE_GLASSES_TYPE.EM_SECURITYGATE_GLASSES_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SECURITYGATE_PERSON_PASS_DIRECTION.java b/src/main/java/com/netsdk/lib/enumeration/EM_SECURITYGATE_PERSON_PASS_DIRECTION.java
new file mode 100644
index 0000000..12fb569
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SECURITYGATE_PERSON_PASS_DIRECTION.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author : 291189
+ * @since : Created in 2021/6/30 10:19
+ * 人员通过方向枚举
+ */
+public enum EM_SECURITYGATE_PERSON_PASS_DIRECTION {
+ // 未知
+ EM_SECURITYGATE_PERSON_PASS_DIRECTION_UNKNOWN(0, "未知"),
+ EM_SECURITYGATE_PERSON_PASS_DIRECTION_IN(1, "进入"),// 进入
+ EM_SECURITYGATE_PERSON_PASS_DIRECTION_OUT(2, "离开");// 离开
+
+ private final int value;
+ private final String note;
+
+ EM_SECURITYGATE_PERSON_PASS_DIRECTION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SECURITYGATE_PERSON_PASS_DIRECTION enumType : EM_SECURITYGATE_PERSON_PASS_DIRECTION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SECURITYGATE_PERSON_PASS_DIRECTION enumType : EM_SECURITYGATE_PERSON_PASS_DIRECTION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_SECURITYGATE_PERSON_PASS_DIRECTION getEnum(int value) {
+ for (EM_SECURITYGATE_PERSON_PASS_DIRECTION e : EM_SECURITYGATE_PERSON_PASS_DIRECTION.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_SECURITYGATE_PERSON_PASS_DIRECTION.EM_SECURITYGATE_PERSON_PASS_DIRECTION_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SECURITYGATE_SEX_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SECURITYGATE_SEX_TYPE.java
new file mode 100644
index 0000000..8bf4a65
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SECURITYGATE_SEX_TYPE.java
@@ -0,0 +1,54 @@
+package com.netsdk.lib.enumeration;
+/**
+ * @author : 291189
+ * @since : Created in 2021/6/30 10:51
+ * 安检门事件人员性别
+ */
+public enum EM_SECURITYGATE_SEX_TYPE {
+ EM_SECURITYGATE_SEX_MAN(0, "男"),// 男
+ EM_SECURITYGATE_SEX_WOMEN(1, "女"),// 女
+ EM_SECURITYGATE_SEX_UNKNOWN(2, "未知");// 未知
+
+ private final int value;
+ private final String note;
+
+ EM_SECURITYGATE_SEX_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SECURITYGATE_SEX_TYPE enumType : EM_SECURITYGATE_SEX_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SECURITYGATE_SEX_TYPE enumType : EM_SECURITYGATE_SEX_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_SECURITYGATE_SEX_TYPE getEnum(int value) {
+ for (EM_SECURITYGATE_SEX_TYPE e : EM_SECURITYGATE_SEX_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_SECURITYGATE_SEX_TYPE.EM_SECURITYGATE_SEX_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SECURITY_TASK_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/EM_SECURITY_TASK_STATUS.java
new file mode 100644
index 0000000..519ee3a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SECURITY_TASK_STATUS.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 当前任务状态
+*/
+public enum EM_SECURITY_TASK_STATUS
+{
+ /**
+ * 未知
+ */
+ EM_TASK_STATUS_UNKNOWN(0, "未知"),
+ /**
+ * 任务执行中
+ */
+ EM_TASK_STATUS_RUNNING(1, "任务执行中"),
+ /**
+ * 任务执行成功
+ */
+ EM_TASK_STATUS_SUCCEEDED(2, "任务执行成功"),
+ /**
+ * 任务执行失败
+ */
+ EM_TASK_STATUS_FAILED(3, "任务执行失败");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_SECURITY_TASK_STATUS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SECURITY_TASK_STATUS enumType : EM_SECURITY_TASK_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SECURITY_TASK_STATUS enumType : EM_SECURITY_TASK_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SECURITY_TASK_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SECURITY_TASK_TYPE.java
new file mode 100644
index 0000000..6a071c4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SECURITY_TASK_TYPE.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 当前任务类型
+*/
+public enum EM_SECURITY_TASK_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_TYPE_STATUS_UNKNOWN(0, "未知"),
+ /**
+ * 当前无任务
+ */
+ EM_TYPE_STATUS_NONE(1, "当前无任务"),
+ /**
+ * 有导入任务
+ */
+ EM_TYPE_STATUS_IMPORT(2, "有导入任务"),
+ /**
+ * 有导出任务
+ */
+ EM_TYPE_STATUS_EXPORT(3, "有导出任务");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_SECURITY_TASK_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SECURITY_TASK_TYPE enumType : EM_SECURITY_TASK_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SECURITY_TASK_TYPE enumType : EM_SECURITY_TASK_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SEND_SEARCH_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SEND_SEARCH_TYPE.java
new file mode 100644
index 0000000..284a885
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SEND_SEARCH_TYPE.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.enumeration;
+
+public enum EM_SEND_SEARCH_TYPE {
+ /**
+ * 组播和广播搜索
+ */
+ EM_SEND_SEARCH_TYPE_MULTICAST_AND_BROADCAST,
+ /**
+ * 组播搜索
+ */
+ EM_SEND_SEARCH_TYPE_MULTICAST,
+ /**
+ * 广播搜索
+ */
+ EM_SEND_SEARCH_TYPE_BROADCAST;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SENSE_METHOD.java b/src/main/java/com/netsdk/lib/enumeration/EM_SENSE_METHOD.java
new file mode 100644
index 0000000..cc802a5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SENSE_METHOD.java
@@ -0,0 +1,240 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 传感器感应方式枚举类型
+ * @date 2023/04/18 10:57:31
+ */
+public enum EM_SENSE_METHOD {
+ /**
+ * 未知类型
+ */
+ EM_SENSE_UNKNOWN(-1, "未知类型"),
+ /**
+ * 门磁
+ */
+ EM_SENSE_DOOR(0, "门磁"),
+ /**
+ * 被动红外
+ */
+ EM_SENSE_PASSIVEINFRA(1, "被动红外"),
+ /**
+ * 气感
+ */
+ EM_SENSE_GAS(2, "气感"),
+ /**
+ * 烟感
+ */
+ EM_SENSE_SMOKING(3, "烟感"),
+ /**
+ * 水感
+ */
+ EM_SENSE_WATER(4, "水感"),
+ /**
+ * 主动红外
+ */
+ EM_SENSE_ACTIVEFRA(5, "主动红外"),
+ /**
+ * 玻璃破碎
+ */
+ EM_SENSE_GLASS(6, "玻璃破碎"),
+ /**
+ * 紧急开关
+ */
+ EM_SENSE_EMERGENCYSWITCH(7, "紧急开关"),
+ /**
+ * 震动
+ */
+ EM_SENSE_SHOCK(8, "震动"),
+ /**
+ * 双鉴(红外+微波)
+ */
+ EM_SENSE_DOUBLEMETHOD(9, "双鉴(红外+微波)"),
+ /**
+ * 三技术
+ */
+ EM_SENSE_THREEMETHOD(10, "三技术"),
+ /**
+ * 温度
+ */
+ EM_SENSE_TEMP(11, "温度"),
+ /**
+ * 湿度
+ */
+ EM_SENSE_HUMIDITY(12, "湿度"),
+ /**
+ * 风速
+ */
+ EM_SENSE_WIND(13, "风速"),
+ /**
+ * 呼叫按钮
+ */
+ EM_SENSE_CALLBUTTON(14, "呼叫按钮"),
+ /**
+ * 气体压力
+ */
+ EM_SENSE_GASPRESSURE(15, "气体压力"),
+ /**
+ * 燃气浓度
+ */
+ EM_SENSE_GASCONCENTRATION(16, "燃气浓度"),
+ /**
+ * 气体流量
+ */
+ EM_SENSE_GASFLOW(17, "气体流量"),
+ /**
+ * 油量检测
+ */
+ EM_SENSE_OIL(18, "油量检测"),
+ /**
+ * 里程数检测
+ */
+ EM_SENSE_MILEAGE(19, "里程数检测"),
+ /**
+ * 其他
+ */
+ EM_SENSE_OTHER(20, "其他"),
+ /**
+ * 二氧化碳浓度检测
+ */
+ EM_SEHSE_CO2(21, "二氧化碳浓度检测"),
+ /**
+ * 噪音检测
+ */
+ EM_SEHSE_SOUND(22, "噪音检测"),
+ /**
+ * PM2.5检测
+ */
+ EM_SEHSE_PM25(23, "PM2.5检测"),
+ /**
+ * 六氟化硫浓度检测
+ */
+ EM_SEHSE_SF6(24, "六氟化硫浓度检测"),
+ /**
+ * 臭氧
+ */
+ EM_SEHSE_O3(25, "臭氧"),
+ /**
+ * 环境光照检测
+ */
+ EM_SEHSE_AMBIENTLIGHT(26, "环境光照检测"),
+ /**
+ * 红外报警
+ */
+ EM_SEHSE_INFRARED(27, "红外报警"),
+ /**
+ * 1500温度传感器
+ */
+ EM_SEHSE_TEMP1500(28, "1500温度传感器"),
+ /**
+ * DS18B20温度传感器
+ */
+ EM_SEHSE_TEMPDS18B20(29, "DS18B20温度传感器"),
+ /**
+ * 1500湿度传感器
+ */
+ EM_SEHSE_HUMIDITY1500(30, "1500湿度传感器"),
+ /**
+ * 紧急按钮
+ */
+ EM_SEHSE_URGENCYBUTTON(31, "紧急按钮"),
+ /**
+ * 盗窃
+ */
+ EM_SEHSE_STEAL(32, "盗窃"),
+ /**
+ * 周界
+ */
+ EM_SEHSE_PERIMETER(33, "周界"),
+ /**
+ * 防拆
+ */
+ EM_SEHSE_PREVENTREMOVE(34, "防拆"),
+ /**
+ * 门铃
+ */
+ EM_SEHSE_DOORBELL(35, "门铃"),
+ /**
+ * 交流电压传感器
+ */
+ EM_SEHSE_ALTERVOLT(36, "交流电压传感器"),
+ /**
+ * 直流电压传感器
+ */
+ EM_SEHSE_DIRECTVOLT(37, "直流电压传感器"),
+ /**
+ * 交流电流传感器
+ */
+ EM_SEHSE_ALTERCUR(38, "交流电流传感器"),
+ /**
+ * 直流电流传感器
+ */
+ EM_SEHSE_DIRECTCUR(39, "直流电流传感器"),
+ /**
+ * 通用模拟量
+ */
+ EM_SEHSE_RSUGENERAL(40, "通用模拟量"),
+ /**
+ * 门禁感应
+ */
+ EM_SEHSE_RSUDOOR(41, "门禁感应"),
+ /**
+ * 断电感应
+ */
+ EM_SEHSE_RSUPOWEROFF(42, "断电感应"),
+ /**
+ * 幕帘传感器
+ */
+ EM_SEHSE_CURTAINSENSOR(43, "幕帘传感器"),
+ /**
+ * 移动传感器
+ */
+ EM_SEHSE_MOBILESENSOR(44, "移动传感器"),
+ /**
+ * 火警
+ */
+ EM_SEHSE_FIREALARM(45, "火警"),
+ /**
+ * 锁舌
+ */
+ EM_SEHSE_LOCKTONGUE(46, "锁舌"),
+ /**
+ * 枚举类型总数,注意:这个值不能作为常量使用
+ */
+ EM_SENSE_NU(47, "枚举类型总数,注意:这个值不能作为常量使用");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_SENSE_METHOD(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SENSE_METHOD enumType : EM_SENSE_METHOD.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SENSE_METHOD enumType : EM_SENSE_METHOD.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SENSOR_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SENSOR_TYPE.java
new file mode 100644
index 0000000..780a753
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SENSOR_TYPE.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 传感器类型
+*/
+public enum EM_SENSOR_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_SENSOR_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 常闭
+ */
+ EM_SENSOR_TYPE_NC(1, "常闭"),
+ /**
+ * 常开
+ */
+ EM_SENSOR_TYPE_NO(2, "常开");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_SENSOR_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SENSOR_TYPE enumType : EM_SENSOR_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SENSOR_TYPE enumType : EM_SENSOR_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SERVER_OPTION.java b/src/main/java/com/netsdk/lib/enumeration/EM_SERVER_OPTION.java
new file mode 100644
index 0000000..84bc203
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SERVER_OPTION.java
@@ -0,0 +1,70 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 单个平台接入启动选项
+ *
+ * @author 47040
+ * @version 1.0.0
+ * @since Created in 2021/3/9 8:42
+ */
+public enum EM_SERVER_OPTION {
+ /**
+ * 未知
+ */
+ EM_SERVER_OPTION_UNKNOWN(0, "未知"),
+ /**
+ * 平台接入不启动
+ */
+ EM_SERVER_OPTION_DISABLE(1, "平台接入不启动"),
+ /**
+ * 以28181接入方式开启
+ */
+ EM_SERVER_OPTION_GB28181(2, "以28181接入方式开启"),
+ /**
+ * 以35114接入方式开启
+ */
+ EM_SERVER_OPTION_GB35114(3, "以35114接入方式开启");
+
+ private final int value;
+ private final String note;
+
+ EM_SERVER_OPTION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SERVER_OPTION enumType : EM_SERVER_OPTION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SERVER_OPTION enumType : EM_SERVER_OPTION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_SERVER_OPTION getEnum(int value) {
+ for (EM_SERVER_OPTION e : EM_SERVER_OPTION.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_SERVER_OPTION.EM_SERVER_OPTION_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SEX_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SEX_TYPE.java
new file mode 100644
index 0000000..151b988
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SEX_TYPE.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 性别
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_SEX_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_SEX_TYPE_UNKNOWN = 0;
+ /**
+ * 男性
+ */
+ public static final int EM_SEX_TYPE_MALE = 1;
+ /**
+ * 女性
+ */
+ public static final int EM_SEX_TYPE_FEMALE = 2;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SHAPE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SHAPE_TYPE.java
new file mode 100644
index 0000000..9020412
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SHAPE_TYPE.java
@@ -0,0 +1,64 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 形状类型
+ * @date 2022/07/21 15:30:00
+ */
+public enum EM_SHAPE_TYPE {
+ /**
+ * 无效的类型
+ */
+ EM_SHAPE_TYPE_INVALID(0, "无效的类型"),
+ /**
+ * 矩形
+ */
+ EM_SHAPE_TYPE_RECT(1, "矩形"),
+ /**
+ * 多边形
+ */
+ EM_SHAPE_TYPE_POLYGON(2, "多边形");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_SHAPE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SHAPE_TYPE enumType : EM_SHAPE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SHAPE_TYPE enumType : EM_SHAPE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_SHAPE_TYPE getEnum(int value) {
+ for (EM_SHAPE_TYPE e : EM_SHAPE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_SHAPE_TYPE.EM_SHAPE_TYPE_INVALID;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SHOES_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SHOES_TYPE.java
new file mode 100644
index 0000000..9a682a9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SHOES_TYPE.java
@@ -0,0 +1,10 @@
+package com.netsdk.lib.enumeration;
+
+public enum EM_SHOES_TYPE {
+ EM_SHOES_UNKNOWN, // 未知
+ EM_SHOES_LEATHER, // 皮鞋
+ EM_SHOES_BOOTS, // 靴子
+ EM_SHOES_CASUAL, // 休闲鞋
+ EM_SHOES_SANDALS; // 凉鞋
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SHOW_COLOR.java b/src/main/java/com/netsdk/lib/enumeration/EM_SHOW_COLOR.java
new file mode 100644
index 0000000..dcec0cc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SHOW_COLOR.java
@@ -0,0 +1,70 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 设备需要展示的颜色
+ */
+public enum EM_SHOW_COLOR {
+ /**
+ * 未知
+ */
+ EM_SHOW_COLOR_UNKNOWN(0, "未知"),
+ /**
+ * 蓝
+ */
+ EM_SHOW_COLOR_BLUE(1, "蓝"),
+ /**
+ * 黄
+ */
+ EM_SHOW_COLOR_YELLOW(2, "黄"),
+ /**
+ * 橙
+ */
+ EM_SHOW_COLOR_ORANGE(3, "橙"),
+ /**
+ * 红
+ */
+ EM_SHOW_COLOR_RED(4, "红");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_SHOW_COLOR(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SHOW_COLOR enumType : EM_SHOW_COLOR.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SHOW_COLOR enumType : EM_SHOW_COLOR.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_SHOW_COLOR getEnum(int value) {
+ for (EM_SHOW_COLOR e : EM_SHOW_COLOR.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_SHOW_COLOR.EM_SHOW_COLOR_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SIGNLIGHT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SIGNLIGHT_TYPE.java
new file mode 100644
index 0000000..5b34958
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SIGNLIGHT_TYPE.java
@@ -0,0 +1,54 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 灯光类型
+ * @date 2020/11/19
+ */
+public enum EM_SIGNLIGHT_TYPE {
+ // 未知
+ EM_SIGNLIGHT_TYPE_UNKNOWN(0, "未知"),
+ // 自动,按照sensor自动切换
+ EM_SIGNLIGHT_TYPE_AUTO(1, "自动,按照sensor自动切换"),
+ // 定时模式
+ EM_SIGNLIGHT_TYPE_TIMING(2, "定时模式"),
+ // 常灭
+ EM_SIGNLIGHT_TYPE_OFF(3, "常灭"),
+ // 常亮模式
+ EM_SIGNLIGHT_TYPE_ON(4, "常亮模式");
+
+ private int value;
+ private String note;
+
+ private EM_SIGNLIGHT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SIGNLIGHT_TYPE enumType : EM_SIGNLIGHT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SIGNLIGHT_TYPE enumType : EM_SIGNLIGHT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SLEEPING_CONTRONL_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SLEEPING_CONTRONL_MODE.java
new file mode 100644
index 0000000..b0547f2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SLEEPING_CONTRONL_MODE.java
@@ -0,0 +1,75 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 休眠策略配置的低功耗模式
+*/
+public enum EM_SLEEPING_CONTRONL_MODE
+{
+ /**
+ * unknown
+ */
+ NET_EM_SLEEPING_CONTRONL_UNKNOWN(0, "unknown"),
+ /**
+ * Timing: 定时休眠
+ */
+ NET_EM_SLEEPING_CONTRONL_TIMING(1, "Timing: 定时休眠"),
+ /**
+ * ShortMessage:短信休眠、唤醒模式
+ */
+ NET_EM_SLEEPING_CONTRONL_SHORTMESSAGE(2, "ShortMessage:短信休眠、唤醒模式"),
+ /**
+ * TimePeriod:按时间段休眠
+ */
+ NET_EM_SLEEPING_CONTRONL_TIMEPERIOD(3, "TimePeriod:按时间段休眠"),
+ /**
+ * MoveCtrl:运动控制模式
+ */
+ NET_EM_SLEEPING_CONTRONL_MOVECTRL(4, "MoveCtrl:运动控制模式"),
+ /**
+ * AutoCtrl:常供电模式
+ */
+ NET_EM_SLEEPING_CONTRONL_AUTOCTRL(5, "AutoCtrl:常供电模式"),
+ /**
+ * DormancyTimiWkUp:休眠、定时唤醒模式
+ */
+ NET_EM_SLEEPING_CONTRONL_DORMANCYTIMIWKUP(6, "DormancyTimiWkUp:休眠、定时唤醒模式"),
+ /**
+ * LowPowerLive:低功耗在线模式,仅调整部分参数以降低功耗
+ */
+ NET_EM_SLEEPING_CONTRONL_LOWPOWERLIVE(7, "LowPowerLive:低功耗在线模式,仅调整部分参数以降低功耗");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_SLEEPING_CONTRONL_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SLEEPING_CONTRONL_MODE enumType : EM_SLEEPING_CONTRONL_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SLEEPING_CONTRONL_MODE enumType : EM_SLEEPING_CONTRONL_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SLOPE_RESULT.java b/src/main/java/com/netsdk/lib/enumeration/EM_SLOPE_RESULT.java
new file mode 100644
index 0000000..999743e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SLOPE_RESULT.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 斜率报警采样类型
+*/
+public enum EM_SLOPE_RESULT
+{
+ /**
+ * 未知
+ */
+ EM_SLOPE_RESULT_UNKNOWN(0, "未知"),
+ /**
+ * 平均值
+ */
+ EM_SLOPE_RESULT_AVER(1, "平均值"),
+ /**
+ * 最大值
+ */
+ EM_SLOPE_RESULT_MAX(2, "最大值"),
+ /**
+ * 最小值
+ */
+ EM_SLOPE_RESULT_MIN(3, "最小值");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_SLOPE_RESULT(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SLOPE_RESULT enumType : EM_SLOPE_RESULT.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SLOPE_RESULT enumType : EM_SLOPE_RESULT.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SMALL_OCCUPY_LARGE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SMALL_OCCUPY_LARGE.java
new file mode 100644
index 0000000..4eba768
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SMALL_OCCUPY_LARGE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 260611
+ * @description 是否小车占大车位
+ * @origin autoTool
+ * @date 2023/06/20 10:13:15
+ */
+public enum EM_SMALL_OCCUPY_LARGE {
+ /**
+ * 未知
+ */
+ EM_SMALL_OCCUPY_LARGE_UNKNOWN(0, "未知"),
+ /**
+ * 未小车占大车位
+ */
+ EM_SMALL_OCCUPY_LARGE_NO(1, "未小车占大车位"),
+ /**
+ * 小车占大车位
+ */
+ EM_SMALL_OCCUPY_LARGE_YES(2, "小车占大车位");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_SMALL_OCCUPY_LARGE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SMALL_OCCUPY_LARGE enumType : EM_SMALL_OCCUPY_LARGE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SMALL_OCCUPY_LARGE enumType : EM_SMALL_OCCUPY_LARGE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_SMALL_OCCUPY_LARGE getEnum(int value) {
+ for (EM_SMALL_OCCUPY_LARGE e : EM_SMALL_OCCUPY_LARGE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_SMALL_OCCUPY_LARGE.EM_SMALL_OCCUPY_LARGE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SMARTHOME_SCENE_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SMARTHOME_SCENE_MODE.java
new file mode 100644
index 0000000..d514012
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SMARTHOME_SCENE_MODE.java
@@ -0,0 +1,60 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 智能家居情景模式
+ * @date 2023/03/15 20:39:47
+ */
+public enum EM_SMARTHOME_SCENE_MODE {
+ /**
+ * 未知
+ */
+ EM_SMARTHOME_SCENE_MODE_UNKNOWN(0, "未知"),
+ /**
+ * 在家
+ */
+ EM_SMARTHOME_SCENE_MODE_AT_HOME(1, "在家"),
+ /**
+ * 离开
+ */
+ EM_SMARTHOME_SCENE_MODE_LEAVE_HOME(2, "离开"),
+ /**
+ * 睡眠
+ */
+ EM_SMARTHOME_SCENE_MODE_IN_SLEEPING(3, "睡眠");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_SMARTHOME_SCENE_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SMARTHOME_SCENE_MODE enumType : EM_SMARTHOME_SCENE_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SMARTHOME_SCENE_MODE enumType : EM_SMARTHOME_SCENE_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SMART_KITCHEN_CLOTHES_COLOUR.java b/src/main/java/com/netsdk/lib/enumeration/EM_SMART_KITCHEN_CLOTHES_COLOUR.java
new file mode 100644
index 0000000..fb6661d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SMART_KITCHEN_CLOTHES_COLOUR.java
@@ -0,0 +1,57 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description 厨师服颜色
+ * @date 2021/7/26 15:24
+ */
+public enum EM_SMART_KITCHEN_CLOTHES_COLOUR {
+ EM_SMART_KITCHEN_CLOTHES_COLOUR_UNKNOWN(0, "未知"),// 未知
+ EM_SMART_KITCHEN_CLOTHES_COLOUR_RED(1, "红"),// 红
+ EM_SMART_KITCHEN_CLOTHES_COLOUR_BLACK(2, "黑"),// 黑
+ EM_SMART_KITCHEN_CLOTHES_COLOUR_WHITE(3, "白");// 白
+
+ private final int value;
+ private final String note;
+
+ EM_SMART_KITCHEN_CLOTHES_COLOUR(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SMART_KITCHEN_CLOTHES_COLOUR enumType : EM_SMART_KITCHEN_CLOTHES_COLOUR.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SMART_KITCHEN_CLOTHES_COLOUR enumType : EM_SMART_KITCHEN_CLOTHES_COLOUR.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_SMART_KITCHEN_CLOTHES_COLOUR getEnum(int value) {
+ for (EM_SMART_KITCHEN_CLOTHES_COLOUR e : EM_SMART_KITCHEN_CLOTHES_COLOUR.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_SMART_KITCHEN_CLOTHES_COLOUR.EM_SMART_KITCHEN_CLOTHES_COLOUR_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SMART_KITCHEN_CLOTHES_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SMART_KITCHEN_CLOTHES_STATE.java
new file mode 100644
index 0000000..622009a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SMART_KITCHEN_CLOTHES_STATE.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description 厨师装备状态
+ * @date 2021/7/26 14:24
+ */
+public enum EM_SMART_KITCHEN_CLOTHES_STATE {
+ EM_SMART_KITCHEN_CLOTHES_STATE_UNKNOWN(0, "未知"),// 未知
+ EM_SMART_KITCHEN_CLOTHES_STATE_LACK(1, "没有"),// 没有
+ EM_SMART_KITCHEN_CLOTHES_STATE_HAS(2, "有");// 有
+
+ private final int value;
+ private final String note;
+
+ EM_SMART_KITCHEN_CLOTHES_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SMART_KITCHEN_CLOTHES_STATE enumType : EM_SMART_KITCHEN_CLOTHES_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SMART_KITCHEN_CLOTHES_STATE enumType : EM_SMART_KITCHEN_CLOTHES_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_SMART_KITCHEN_CLOTHES_STATE getEnum(int value) {
+ for (EM_SMART_KITCHEN_CLOTHES_STATE e : EM_SMART_KITCHEN_CLOTHES_STATE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_SMART_KITCHEN_CLOTHES_STATE.EM_SMART_KITCHEN_CLOTHES_STATE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SMART_MOTION_DETECT_SENSITIVITY_LEVEL.java b/src/main/java/com/netsdk/lib/enumeration/EM_SMART_MOTION_DETECT_SENSITIVITY_LEVEL.java
new file mode 100644
index 0000000..c058a78
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SMART_MOTION_DETECT_SENSITIVITY_LEVEL.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 智能动检敏感等级
+*/
+public enum EM_SMART_MOTION_DETECT_SENSITIVITY_LEVEL
+{
+ /**
+ * 未知
+ */
+ EM_SMART_MOTION_DETECT_SENSITIVITY_LEVEL_UNKNOWN(0, "未知"),
+ /**
+ * 低
+ */
+ EM_SMART_MOTION_DETECT_SENSITIVITY_LEVEL_LOW(1, "低"),
+ /**
+ * 中
+ */
+ EM_SMART_MOTION_DETECT_SENSITIVITY_LEVEL_MIDDLE(2, "中"),
+ /**
+ * 高
+ */
+ EM_SMART_MOTION_DETECT_SENSITIVITY_LEVEL_HIGH(3, "高");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_SMART_MOTION_DETECT_SENSITIVITY_LEVEL(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SMART_MOTION_DETECT_SENSITIVITY_LEVEL enumType : EM_SMART_MOTION_DETECT_SENSITIVITY_LEVEL.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SMART_MOTION_DETECT_SENSITIVITY_LEVEL enumType : EM_SMART_MOTION_DETECT_SENSITIVITY_LEVEL.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SMELLY_LEVEL.java b/src/main/java/com/netsdk/lib/enumeration/EM_SMELLY_LEVEL.java
new file mode 100644
index 0000000..5ed9330
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SMELLY_LEVEL.java
@@ -0,0 +1,69 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 黑臭等级
+* @date 2022/08/22 16:51:44
+*/
+public enum EM_SMELLY_LEVEL {
+/**
+未知
+*/
+ EM_SMELLY_LEVEL_UNKNOWN(0, "未知"),
+/**
+正常
+*/
+ EM_SMELLY_LEVEL_NORMAL(1, "正常"),
+/**
+轻度污染
+*/
+ EM_SMELLY_LEVEL_LIGHT(2, "轻度污染"),
+/**
+重度污染
+*/
+ EM_SMELLY_LEVEL_HEAVY(3, "重度污染");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_SMELLY_LEVEL(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_SMELLY_LEVEL enumType : EM_SMELLY_LEVEL.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_SMELLY_LEVEL enumType : EM_SMELLY_LEVEL.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_SMELLY_LEVEL getEnum(int value) {
+ for (EM_SMELLY_LEVEL e : EM_SMELLY_LEVEL.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_SMELLY_LEVEL.EM_SMELLY_LEVEL_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SMOKE_COLOR.java b/src/main/java/com/netsdk/lib/enumeration/EM_SMOKE_COLOR.java
new file mode 100644
index 0000000..d8c165f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SMOKE_COLOR.java
@@ -0,0 +1,54 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 烟雾颜色类型
+ * @date 2022/03/31
+ */
+public enum EM_SMOKE_COLOR {
+ // 未知
+ EM_SMOKE_COLOR_UNKNOWN(0, "未知"),
+ // White
+ EM_SMOKE_COLOR_WHITE(1, "White"),
+ // black
+ EM_SMOKE_COLOR_BLACK(2, "black"),
+ // red
+ EM_SMOKE_COLOR_RED(3, "red"),
+ // yellow
+ EM_SMOKE_COLOR_YELLOW(4, "yellow");
+
+ private int value;
+ private String note;
+
+ private EM_SMOKE_COLOR(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SMOKE_COLOR enumType : EM_SMOKE_COLOR.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SMOKE_COLOR enumType : EM_SMOKE_COLOR.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SNAPCATEGORY.java b/src/main/java/com/netsdk/lib/enumeration/EM_SNAPCATEGORY.java
new file mode 100644
index 0000000..a587f62
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SNAPCATEGORY.java
@@ -0,0 +1,22 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 抓拍的类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_SNAPCATEGORY extends NetSDKLib.SdkStructure {
+ /**
+ * 机动车
+ */
+ public static final int EM_SNAPCATEGORY_MOTOR = 0;
+ /**
+ * 非机动车
+ */
+ public static final int EM_SNAPCATEGORY_NONMOTOR = 1;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SNAP_POLICY_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SNAP_POLICY_TYPE.java
new file mode 100644
index 0000000..40f2924
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SNAP_POLICY_TYPE.java
@@ -0,0 +1,58 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 抓拍策略取值
+ *
+ * @author 47040
+ * @since Created in 2021/4/25 19:52
+ */
+public enum EM_SNAP_POLICY_TYPE {
+ EM_SNAP_POLICY_TYPE_UNKNOWN(0, "未知"),
+ EM_SNAP_POLICY_TYPE_REALTIME(1, "实时"),
+ EM_SNAP_POLICY_TYPE_OPTIMAL(2, "优选"),
+ EM_SNAP_POLICY_TYPE_QUALITY(3, "质量"),
+ EM_SNAP_POLICY_TYPE_TRIPLINE(4, "拌线");
+
+ private final int value;
+ private final String note;
+
+ EM_SNAP_POLICY_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SNAP_POLICY_TYPE enumType : EM_SNAP_POLICY_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SNAP_POLICY_TYPE enumType : EM_SNAP_POLICY_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_SNAP_POLICY_TYPE getEnum(int value) {
+ for (EM_SNAP_POLICY_TYPE e : EM_SNAP_POLICY_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_SNAP_POLICY_TYPE.EM_SNAP_POLICY_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SNIFFER_FILTER_PROTOCOL.java b/src/main/java/com/netsdk/lib/enumeration/EM_SNIFFER_FILTER_PROTOCOL.java
new file mode 100644
index 0000000..d434091
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SNIFFER_FILTER_PROTOCOL.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * ,**********************************************************************,, 过滤协议类型
+*/
+public enum EM_SNIFFER_FILTER_PROTOCOL
+{
+ /**
+ * 未知
+ */
+ EM_SNIFFER_FILTER_PROTOCOL_UNKNOWN(0, "未知"),
+ /**
+ * TCP
+ */
+ EM_SNIFFER_FILTER_PROTOCOL_TCP(1, "TCP"),
+ /**
+ * UDP
+ */
+ EM_SNIFFER_FILTER_PROTOCOL_UDP(2, "UDP");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_SNIFFER_FILTER_PROTOCOL(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SNIFFER_FILTER_PROTOCOL enumType : EM_SNIFFER_FILTER_PROTOCOL.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SNIFFER_FILTER_PROTOCOL enumType : EM_SNIFFER_FILTER_PROTOCOL.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SOLARCELL_SYSTEM_FAULT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SOLARCELL_SYSTEM_FAULT_TYPE.java
new file mode 100644
index 0000000..6562cfd
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SOLARCELL_SYSTEM_FAULT_TYPE.java
@@ -0,0 +1,104 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description \if ENGLISH_LANG
+ *
+ * \else
+ * 太阳能系统故障信息
+ * \endif
+ * @date 2020/8/11
+ */
+public enum EM_SOLARCELL_SYSTEM_FAULT_TYPE {
+ /**
+ * 未知
+ */
+ EM_SOLARCELL_SYSTEM_FAULT_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 电池过放
+ */
+ EM_SOLARCELL_SYSTEM_FAULT_TYPE_BATTERY_OVER_DISCHARGE(1, "电池过放"),
+ /**
+ * 电池施压
+ */
+ EM_SOLARCELL_SYSTEM_FAULT_TYPE_BATTERY_OVERPRESSURE(2, "电池施压"),
+ /**
+ * 欠压警告
+ */
+ EM_SOLARCELL_SYSTEM_FAULT_TYPE_UNDERVOLTAGE_WARNING(3, "欠压警告"),
+ /**
+ * 负载短路
+ */
+ EM_SOLARCELL_SYSTEM_FAULT_TYPE_LOAD_SHORT_CIRCUIT(4, "负载短路"),
+ /**
+ * 负载功率过大或负载过流
+ */
+ EM_SOLARCELL_SYSTEM_FAULT_TYPE_EXCESSIVE_LOAD_POWER_OR_LOAD_OVER_CURRENT(5, "负载功率过大或负载过流"),
+ /**
+ * 控制器温度过高
+ */
+ EM_SOLARCELL_SYSTEM_FAULT_TYPE_CONTROLLER_TEMPERATURE_IS_TOO_HIGH(6, "控制器温度过高"),
+ /**
+ * 外部环境温度过高
+ */
+ EM_SOLARCELL_SYSTEM_FAULT_TYPE_EXTERNAL_AMBIENT_TEMPERATURE_IS_TOO_HIGH(7, "外部环境温度过高"),
+ /**
+ * 光伏输入功率过大
+ */
+ EM_SOLARCELL_SYSTEM_FAULT_TYPE_EXCESSIVE_PHOTOVOLTAIC_INPUT_POWER(8, "光伏输入功率过大"),
+ /**
+ * 光伏输入短路
+ */
+ EM_SOLARCELL_SYSTEM_FAULT_TYPE_PHOTOVOLTAIC_INPUT_SHORT_CIRCUIT(9, "光伏输入短路"),
+ /**
+ * 光伏输入端超压
+ */
+ EM_SOLARCELL_SYSTEM_FAULT_TYPE_PHOTOVOLTAIC_INPUT_TERMINAL_OVERPRESSURE(10, "光伏输入端超压"),
+ /**
+ * 太阳板逆流
+ */
+ EM_SOLARCELL_SYSTEM_FAULT_TYPE_PHOTOVOLTAIC_SOLAR_PLATE_COUNTERCURRENT(11, "太阳板逆流"),
+ /**
+ * 太阳板工作点超压
+ */
+ EM_SOLARCELL_SYSTEM_FAULT_TYPE_OVERPRESSURE_AT_WORKING_POINT_OF_SOLAR_PANEL(12, "太阳板工作点超压"),
+ /**
+ * 太阳板反接
+ */
+ EM_SOLARCELL_SYSTEM_FAULT_TYPE_REVERSE_CONNECTION_OF_SOLAR_PANEL(13, "太阳板反接"),
+ /**
+ * Anti-reverse MOS short
+ */
+ EM_SOLARCELL_SYSTEM_FAULT_TYPE_ANTI_REVERSE_MOS_SHORT(14, "Anti-reverse MOS short"),
+ /**
+ * Circuit,charge MOS short circui
+ */
+ EM_SOLARCELL_SYSTEM_FAULT_TYPE_ANTI_CIRCUIT_CHARGE_MOS_SHORT_CIRCUI(15, "Circuit,charge MOS short circui");
+
+ private int type;
+ private String info;
+
+ private EM_SOLARCELL_SYSTEM_FAULT_TYPE(int type, String info) {
+ this.type = type;
+ this.info = info;
+ }
+
+ public int getType() {
+ return type;
+ }
+
+ public String getInfo() {
+ return info;
+ }
+
+ public static EM_SOLARCELL_SYSTEM_FAULT_TYPE getSolarcellFaultType(int type) {
+ for (EM_SOLARCELL_SYSTEM_FAULT_TYPE faultType : EM_SOLARCELL_SYSTEM_FAULT_TYPE.values()) {
+ if (faultType.getType() == type) {
+ return faultType;
+ }
+ }
+ return null;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SOURCE_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SOURCE_MODE.java
new file mode 100644
index 0000000..b992188
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SOURCE_MODE.java
@@ -0,0 +1,46 @@
+package com.netsdk.lib.enumeration;
+/**
+ *
+ * @author 119178
+ *
+ */
+public enum EM_SOURCE_MODE {
+ EM_SOURCE_MODE_UNKNOWN(0, "未知"),// 未知
+ EM_SOURCE_MODE_SINGLE(1, "Single/单个备份模式"),// "Single",/*单个备份模式*/
+ EM_SOURCE_MODE_COMBIN(2, "Combin/合并备份模式");// "Combin",/*合并备份模式*/
+
+ private int value;
+ private String note;
+
+ private EM_SOURCE_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TRAFFICSTROBE_STATUS enumType : EM_TRAFFICSTROBE_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TRAFFICSTROBE_STATUS enumType : EM_TRAFFICSTROBE_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SOURCE_VIDEO_LOCATION.java b/src/main/java/com/netsdk/lib/enumeration/EM_SOURCE_VIDEO_LOCATION.java
new file mode 100644
index 0000000..7f187c3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SOURCE_VIDEO_LOCATION.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 视频诊断录像保存位置
+ * @date 2021/2/22
+ */
+public enum EM_SOURCE_VIDEO_LOCATION {
+ /** 未知 */
+ EM_SOURCE_VIDEO_LOCATION_UNKNOWN,
+ /** 存于设备 */
+ EM_SOURCE_VIDEO_LOCATION_DEVICE,
+ /** 存于平台 */
+ EM_SOURCE_VIDEO_LOCATION_CENTER,
+ /** 存于第三方云 */
+ EM_SOURCE_VIDEO_LOCATION_THIRD;
+
+ public EM_SOURCE_VIDEO_LOCATION getVideoLocation(int location) {
+ for (EM_SOURCE_VIDEO_LOCATION videoLocation : EM_SOURCE_VIDEO_LOCATION.values()) {
+ if (videoLocation.ordinal() == location) {
+ return videoLocation;
+ }
+ }
+ return EM_SOURCE_VIDEO_LOCATION_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SPACE_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SPACE_STATE.java
new file mode 100644
index 0000000..6881187
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SPACE_STATE.java
@@ -0,0 +1,63 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * EM_SPACE_STATE 车位状态
+*/
+public enum EM_SPACE_STATE
+{
+ /**
+ * "", 未知
+ */
+ EM_SPACE_STATE_UNKOWN(0, "\"\", 未知"),
+ /**
+ * "SpaceOverLine", 车位压线
+ */
+ EM_SPACE_STATE_SPACE_OVER_LINE(1, "\"SpaceOverLine\", 车位压线"),
+ /**
+ * "SpaceFree", 车位空闲
+ */
+ EM_SPACE_STATE_SPACE_FREE(2, "\"SpaceFree\", 车位空闲"),
+ /**
+ * "SpaceFull", 车位有车
+ */
+ EM_SPACE_STATE_SPACE_FULL(3, "\"SpaceFull\", 车位有车"),
+ /**
+ * "SpaceAlarm", 车位报警
+ */
+ EM_SPACE_STATE_SPACE_ALARM(4, "\"SpaceAlarm\", 车位报警");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_SPACE_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SPACE_STATE enumType : EM_SPACE_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SPACE_STATE enumType : EM_SPACE_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SPACE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SPACE_TYPE.java
new file mode 100644
index 0000000..cf18a75
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SPACE_TYPE.java
@@ -0,0 +1,80 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 车位类型
+ * @date 2022/05/11 13:27:51
+ */
+public enum EM_SPACE_TYPE {
+ /**
+ * 未知
+ */
+ EM_SPACE_TYPE_UNKNOWN(-1, "未知"),
+ /**
+ * 小车位
+ */
+ EM_SPACE_TYPE_CAR(0, "小车位"),
+ /**
+ * 大车位
+ */
+ EM_SPACE_TYPE_BIG_CAR(1, "大车位"),
+ /**
+ * 危化品车位
+ */
+ EM_SPACE_TYPE_HAZARDOUS_CHEMICALS(2, "危化品车位"),
+ /**
+ * 货车车位
+ */
+ EM_SPACE_TYPE_TRUCK(3, "货车车位"),
+ /**
+ * 小客车车位
+ */
+ EM_SPACE_TYPE_SMALL_TRUCK(4, "小客车车位"),
+ /**
+ * 大客车车位
+ */
+ EM_SPACE_TYPE_BUS(5, "大客车车位");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_SPACE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SPACE_TYPE enumType : EM_SPACE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SPACE_TYPE enumType : EM_SPACE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+ public static EM_SPACE_TYPE getEnum(int value) {
+ for (EM_SPACE_TYPE e : EM_SPACE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_SPACE_TYPE.EM_SPACE_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SPEAK_AUDIO_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SPEAK_AUDIO_TYPE.java
new file mode 100644
index 0000000..40ce758
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SPEAK_AUDIO_TYPE.java
@@ -0,0 +1,83 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 音频编码压缩格式
+*/
+public enum EM_SPEAK_AUDIO_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_SPEAK_AUDIO_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * PCM
+ */
+ EM_SPEAK_AUDIO_TYPE_PCM(1, "PCM"),
+ /**
+ * ADPCM
+ */
+ EM_SPEAK_AUDIO_TYPE_ADPCM(2, "ADPCM"),
+ /**
+ * G711A
+ */
+ EM_SPEAK_AUDIO_TYPE_G711A(3, "G711A"),
+ /**
+ * G711Mu
+ */
+ EM_SPEAK_AUDIO_TYPE_G711Mu(4, "G711Mu"),
+ /**
+ * G726
+ */
+ EM_SPEAK_AUDIO_TYPE_G726(5, "G726"),
+ /**
+ * G729
+ */
+ EM_SPEAK_AUDIO_TYPE_G729(6, "G729"),
+ /**
+ * MPEG2
+ */
+ EM_SPEAK_AUDIO_TYPE_MPEG2(7, "MPEG2"),
+ /**
+ * AMR
+ */
+ EM_SPEAK_AUDIO_TYPE_AMR(8, "AMR"),
+ /**
+ * AAC
+ */
+ EM_SPEAK_AUDIO_TYPE_AAC(9, "AAC");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_SPEAK_AUDIO_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SPEAK_AUDIO_TYPE enumType : EM_SPEAK_AUDIO_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SPEAK_AUDIO_TYPE enumType : EM_SPEAK_AUDIO_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_STANDARD_VEHICLE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_STANDARD_VEHICLE_TYPE.java
new file mode 100644
index 0000000..91419ad
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_STANDARD_VEHICLE_TYPE.java
@@ -0,0 +1,150 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 标准车辆类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_STANDARD_VEHICLE_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_STANDARD_VEHICLE_UNKNOWN = 0;
+ /**
+ * 机动车
+ */
+ public static final int EM_STANDARD_VEHICLE_MOTOR = 1;
+ /**
+ * 公交车
+ */
+ public static final int EM_STANDARD_VEHICLE_BUS = 2;
+ /**
+ * 无牌机动车
+ */
+ public static final int EM_STANDARD_VEHICLE_UNLICENSED_MOTOR = 3;
+ /**
+ * 大型汽车
+ */
+ public static final int EM_STANDARD_VEHICLE_LARGE_CAR = 4;
+ /**
+ * 小型汽车
+ */
+ public static final int EM_STANDARD_VEHICLE_MICRO_CAR = 5;
+ /**
+ * 使馆汽车
+ */
+ public static final int EM_STANDARD_VEHICLE_EMBASSY_CAR = 6;
+ /**
+ * 领馆汽车
+ */
+ public static final int EM_STANDARD_VEHICLE_MARGINAL_CAR = 7;
+ /**
+ * 境外汽车
+ */
+ public static final int EM_STANDARD_VEHICLE_AREAOUT_CAR = 8;
+ /**
+ * 外籍汽车
+ */
+ public static final int EM_STANDARD_VEHICLE_FOREIGN_CAR = 9;
+ /**
+ * 农用运输车
+ */
+ public static final int EM_STANDARD_VEHICLE_FARM_TRANS_CAR = 10;
+ /**
+ * 拖拉机
+ */
+ public static final int EM_STANDARD_VEHICLE_TRACTOR = 11;
+ /**
+ * 挂车
+ */
+ public static final int EM_STANDARD_VEHICLE_TRAILER = 12;
+ /**
+ * 教练汽车
+ */
+ public static final int EM_STANDARD_VEHICLE_COACH_CAR = 13;
+ /**
+ * 试验汽车
+ */
+ public static final int EM_STANDARD_VEHICLE_TRIAL_CAR = 14;
+ /**
+ * 临时入境汽车
+ */
+ public static final int EM_STANDARD_VEHICLE_TEMPORARYENTRY_CAR = 15;
+ /**
+ * 临时入境摩托
+ */
+ public static final int EM_STANDARD_VEHICLE_TEMPORARYENTRY_MOTORCYCLE = 16;
+ /**
+ * 临时行驶车
+ */
+ public static final int EM_STANDARD_VEHICLE_TEMPORARY_STEER_CAR = 17;
+ /**
+ * 大货车
+ */
+ public static final int EM_STANDARD_VEHICLE_LARGE_TRUCK = 18;
+ /**
+ * 中货车
+ */
+ public static final int EM_STANDARD_VEHICLE_MID_TRUCK = 19;
+ /**
+ * 小货车
+ */
+ public static final int EM_STANDARD_VEHICLE_MICRO_TRUCK = 20;
+ /**
+ * 面包车
+ */
+ public static final int EM_STANDARD_VEHICLE_MICROBUS = 21;
+ /**
+ * 轿车
+ */
+ public static final int EM_STANDARD_VEHICLE_SALOON_CAR = 22;
+ /**
+ * 小轿车
+ */
+ public static final int EM_STANDARD_VEHICLE_CARRIAGE = 23;
+ /**
+ * 微型轿车
+ */
+ public static final int EM_STANDARD_VEHICLE_MINI_CARRIAGE = 24;
+ /**
+ * SUV或者MPV
+ */
+ public static final int EM_STANDARD_VEHICLE_SUV_MPV = 25;
+ /**
+ * SUV
+ */
+ public static final int EM_STANDARD_VEHICLE_SUV = 26;
+ /**
+ * MPV
+ */
+ public static final int EM_STANDARD_VEHICLE_MPV = 27;
+ /**
+ * 客车
+ */
+ public static final int EM_STANDARD_VEHICLE_PASSENGER_CAR = 28;
+ /**
+ * 大客车
+ */
+ public static final int EM_STANDARD_VEHICLE_MOTOR_BUS = 29;
+ /**
+ * 中客车
+ */
+ public static final int EM_STANDARD_VEHICLE_MID_PASSENGER_CAR = 30;
+ /**
+ * 小客车
+ */
+ public static final int EM_STANDARD_VEHICLE_MINI_BUS = 31;
+ /**
+ * 皮卡车
+ */
+ public static final int EM_STANDARD_VEHICLE_PICKUP = 32;
+ /**
+ * 油罐车
+ */
+ public static final int EM_STANDARD_VEHICLE_OILTANK_TRUCK = 33;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_STARTFIND_DIRECTION.java b/src/main/java/com/netsdk/lib/enumeration/EM_STARTFIND_DIRECTION.java
new file mode 100644
index 0000000..685be53
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_STARTFIND_DIRECTION.java
@@ -0,0 +1,60 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 统计方向查询条件
+ * @date 2022/11/03 10:19:57
+ */
+public enum EM_STARTFIND_DIRECTION {
+ /**
+ * 未知
+ */
+ EM_STARTFIND_DIRECTION_UNKNOWN(0, "未知"),
+ /**
+ * 全部
+ */
+ EM_STARTFIND_DIRECTION_BOTH(1, "全部"),
+ /**
+ * 左到右
+ */
+ EM_STARTFIND_DIRECTION_LEFTTORIGHT(2, "左到右"),
+ /**
+ * 右到左
+ */
+ EM_STARTFIND_DIRECTION_RIGHTTOLEFT(3, "右到左");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_STARTFIND_DIRECTION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_STARTFIND_DIRECTION enumType : EM_STARTFIND_DIRECTION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_STARTFIND_DIRECTION enumType : EM_STARTFIND_DIRECTION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_STARTUP_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_STARTUP_MODE.java
new file mode 100644
index 0000000..5e0692e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_STARTUP_MODE.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 启动模式
+ * @date 2021/2/7
+ */
+public enum EM_STARTUP_MODE {
+ /** 未知 */
+ EM_STARTUP_MODE_UNKNOWN(-1, "未知"),
+ /** 正常启动模式 */
+ EM_STARTUP_MODE_NORMAL(0, "正常启动模式"),
+ /** 零位设置启动模式 */
+ EM_STARTUP_MODE_ZERO_SETTING(1, "零位设置启动模式"),
+ /** 老化测试启动模式 */
+ EM_STARTUP_MODE_AGING_TEST(2, "老化测试启动模式");
+
+ private int mode;
+ private String desc;
+
+ EM_STARTUP_MODE(int mode, String desc) {
+ this.mode = mode;
+ this.desc = desc;
+ }
+
+ public static EM_STARTUP_MODE getStartupMode(int mode) {
+ for (EM_STARTUP_MODE startMode : EM_STARTUP_MODE.values()) {
+ if (startMode.mode == mode) {
+ return startMode;
+ }
+ }
+ return EM_STARTUP_MODE_UNKNOWN;
+ }
+
+ public int getMode() {
+ return mode;
+ }
+
+ public void setMode(int mode) {
+ this.mode = mode;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public void setDesc(String desc) {
+ this.desc = desc;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_STATEMANAGER_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_STATEMANAGER_STATE.java
new file mode 100644
index 0000000..9482302
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_STATEMANAGER_STATE.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 状态名称
+ * @date 2023/05/11 14:21:08
+ */
+public enum EM_STATEMANAGER_STATE {
+ /**
+ * 智能终端箱的异常状态, 对应结构体NET_CASEABNORMAL_STATE_INFO
+ */
+ EM_STATEMANAGER_STATE_CASEABNORMAL(0, "智能终端箱的异常状态"),
+ /**
+ * 智能机箱的日常运行状态, 对应结构体NET_CASERUNNING_STATE_INFO
+ */
+ EM_STATEMANAGER_STATE_CASERUNNING(1, "智能机箱的日常运行状态");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_STATEMANAGER_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_STATEMANAGER_STATE enumType : EM_STATEMANAGER_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_STATEMANAGER_STATE enumType : EM_STATEMANAGER_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_STATE_SUBMODULE.java b/src/main/java/com/netsdk/lib/enumeration/EM_STATE_SUBMODULE.java
new file mode 100644
index 0000000..17097ec
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_STATE_SUBMODULE.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 模块状态
+*/
+public enum EM_STATE_SUBMODULE
+{
+ EM_STATE_SUBMODULES_UNKNOWN(0, ""),
+ /**
+ * 正常
+ */
+ EM_STATE_SUBMODULES_NORMAL(1, "正常"),
+ /**
+ * 异常
+ */
+ EM_STATE_SUBMODULES_EXCEPTION(2, "异常");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_STATE_SUBMODULE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_STATE_SUBMODULE enumType : EM_STATE_SUBMODULE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_STATE_SUBMODULE enumType : EM_STATE_SUBMODULE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_STATISTICS_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_STATISTICS_MODE.java
new file mode 100644
index 0000000..2e99c11
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_STATISTICS_MODE.java
@@ -0,0 +1,51 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @version 1.0
+ * @description 统计模式
+ * @date 2021/12/18
+ */
+public enum EM_STATISTICS_MODE {
+ // 未知
+ EM_STATISTICS_MODE_UNKNOWN(0, "未知"),
+ // 区域
+ EM_STATISTICS_MODE_AREA(1, "区域"),
+ // 车位
+ EM_STATISTICS_MODE_SPACE(2, "车位");
+
+ private int value;
+ private String note;
+
+ private EM_STATISTICS_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_STATISTICS_MODE enumType : EM_STATISTICS_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_STATISTICS_MODE enumType : EM_STATISTICS_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/EM_STATUS.java
new file mode 100644
index 0000000..13abe64
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_STATUS.java
@@ -0,0 +1,54 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 设备状态
+ * @date 2021/09/01
+ */
+public enum EM_STATUS {
+ // 未知
+ EM_STATUS_UNKNOWN(-1, "未知"),
+ // 无效
+ EM_STATUS_INVALID(0, "无效"),
+ // 工作正常
+ EM_STATUS_NORMAL(1, "工作正常"),
+ // 故障状态
+ EM_STATUS_FAULT(2, "故障状态"),
+ // 其他
+ EM_STATUS_OTHER(3, "其他");
+
+ private int value;
+ private String note;
+
+ private EM_STATUS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_STATUS enumType : EM_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_STATUS enumType : EM_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_STATUS_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_STATUS_TYPE.java
new file mode 100644
index 0000000..552e6b3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_STATUS_TYPE.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 设备导入文件状态
+*/
+public enum EM_STATUS_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_IMPORT_STATUS_UNKNOWN(0, "未知"),
+ /**
+ * 开始
+ */
+ EM_IMPORT_STATUS_BEGIN(1, "开始"),
+ /**
+ * 追加
+ */
+ EM_IMPORT_STATUS_APPEND(2, "追加"),
+ /**
+ * 结束
+ */
+ EM_IMPORT_STATUS_END(3, "结束");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_STATUS_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_STATUS_TYPE enumType : EM_STATUS_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_STATUS_TYPE enumType : EM_STATUS_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_STAT_DIRECTION.java b/src/main/java/com/netsdk/lib/enumeration/EM_STAT_DIRECTION.java
new file mode 100644
index 0000000..bb07339
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_STAT_DIRECTION.java
@@ -0,0 +1,69 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 统计方向查询条件
+* @date 2023/02/06 16:07:27
+*/
+public enum EM_STAT_DIRECTION {
+/**
+未知
+*/
+ EM_STAT_DIRECTION_UNKNOWN(0, "未知"),
+/**
+左到右
+*/
+ EM_STAT_DIRECTION_LEFTTORIGHT(1, "左到右"),
+/**
+右到左
+*/
+ EM_STAT_DIRECTION_RIGHTTOLEFT(2, "右到左"),
+/**
+全部
+*/
+ EM_STAT_DIRECTION_BOTH(3, "全部");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_STAT_DIRECTION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_STAT_DIRECTION enumType : EM_STAT_DIRECTION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_STAT_DIRECTION enumType : EM_STAT_DIRECTION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_STAT_DIRECTION getEnum(int value) {
+ for (EM_STAT_DIRECTION e : EM_STAT_DIRECTION.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_STAT_DIRECTION.EM_STAT_DIRECTION_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_STAT_GRANULARITY.java b/src/main/java/com/netsdk/lib/enumeration/EM_STAT_GRANULARITY.java
new file mode 100644
index 0000000..735fda7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_STAT_GRANULARITY.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 粒度模式
+ * @date 2022/12/12 11:41:07
+ */
+public enum EM_STAT_GRANULARITY {
+ /**
+ * 未知
+ */
+ EM_STAT_GRANULARITY_UNKNOWN(0, "未知"),
+ /**
+ * 分钟粒度
+ */
+ EM_STAT_GRANULARITY_MINUTE(1, "分钟粒度");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_STAT_GRANULARITY(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_STAT_GRANULARITY enumType : EM_STAT_GRANULARITY.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_STAT_GRANULARITY enumType : EM_STAT_GRANULARITY.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_STEREO_ACTION_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_STEREO_ACTION_TYPE.java
new file mode 100644
index 0000000..d6bbf38
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_STEREO_ACTION_TYPE.java
@@ -0,0 +1,51 @@
+package com.netsdk.lib.enumeration;
+/**
+ * @author 251823
+ * @description 动作类型
+ * @date 2022/03/31
+ */
+public enum EM_STEREO_ACTION_TYPE {
+ // 未知
+ EM_STEREO_ACTION_TYPE_UNKNOWN(0, "未知"),
+ // 剧烈运动
+ EM_STEREO_ACTION_TYPE_DRASTIC_MOTION(1, "剧烈运动"),
+ // 单人打砸
+ EM_STEREO_ACTION_TYPE_SINGLE_FIGHT(2, "单人打砸"),
+ // 多人打架
+ EM_STEREO_ACTION_TYPE_MULTI_FIGHT(3, "多人打架");
+
+ private int value;
+ private String note;
+
+ private EM_STEREO_ACTION_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_STEREO_ACTION_TYPE enumType : EM_STEREO_ACTION_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_STEREO_ACTION_TYPE enumType : EM_STEREO_ACTION_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_STORAGEPOINT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_STORAGEPOINT_TYPE.java
new file mode 100644
index 0000000..e6ca87c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_STORAGEPOINT_TYPE.java
@@ -0,0 +1,98 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 421657
+ * @description 存储点类型
+ * @origin autoTool
+ * @date 2023/10/30 15:54:18
+ */
+public enum EM_STORAGEPOINT_TYPE {
+ /**
+ *
+ */
+ EM_STORAGE_TIMINGRECORD(0, "定时录像存储点类"),
+ /**
+ *
+ */
+ EM_STORAGE_MANUALRECORD(1, "手动录像存储点类"),
+ /**
+ *
+ */
+ EM_STORAGE_VIDEODETECTRECORD(2, "视频检测录像存储点类"),
+ /**
+ *
+ */
+ EM_STORAGE_ALARMRECORD(3, "报警录像存储点类"),
+ /**
+ *
+ */
+ EM_STORAGE_CARDRECORD(4, "卡号录像存储点类"),
+ /**
+ *
+ */
+ EM_STORAGE_EVENTRECORD(5, "其他事件录像存储点类"),
+ /**
+ *
+ */
+ EM_STORAGE_TIMINGSNAPSHOT(6, "定时抓图存储点类"),
+ /**
+ *
+ */
+ EM_STORAGE_MANUALSNAPSHOT(7, "手动抓图存储点类"),
+ /**
+ *
+ */
+ EM_STORAGE_VIDEODETECTSNAPSHOT(8, "视频检测抓图存储点类"),
+ /**
+ *
+ */
+ EM_STORAGE_ALARMSNAPSHOT(9, "报警抓图存储点类"),
+ /**
+ *
+ */
+ EM_STORAGE_CARDSNAPSHOT(10, "卡号抓图存储点类"),
+ /**
+ *
+ */
+ EM_STORAGE_EVENTSNAPSHOT(11, "其他事件抓图存储点类"),
+ /**
+ *
+ */
+ EM_STORAGE_TIMINGEXTRA1RECORD(12, "辅码流1录像存储点类");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_STORAGEPOINT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_STORAGEPOINT_TYPE enumType : EM_STORAGEPOINT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_STORAGEPOINT_TYPE enumType : EM_STORAGEPOINT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_STORAGE_DEVICE_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/EM_STORAGE_DEVICE_STATUS.java
new file mode 100644
index 0000000..4834f2c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_STORAGE_DEVICE_STATUS.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 存储设备状态
+ * @date 2021/01/21
+ */
+public enum EM_STORAGE_DEVICE_STATUS {
+ // 未知
+ EM_STORAGE_DEVICE_UNKNOWN(0, "未知"),
+ // 获取设备失败
+ EM_STORAGE_DEVICE_ERROR(1, "获取设备失败"),
+ // 正在读取设备
+ EM_STORAGE_DEVICE_INITIALIZING(2, "正在读取设备"),
+ // 获取设备成功
+ EM_STORAGE_DEVICE_SUCCESS(3, "获取设备成功");
+
+ private int value;
+ private String note;
+
+ private EM_STORAGE_DEVICE_STATUS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_STORAGE_DEVICE_STATUS enumType : EM_STORAGE_DEVICE_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_STORAGE_DEVICE_STATUS enumType : EM_STORAGE_DEVICE_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_STORAGE_DISK_POWERMODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_STORAGE_DISK_POWERMODE.java
new file mode 100644
index 0000000..5377c62
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_STORAGE_DISK_POWERMODE.java
@@ -0,0 +1,10 @@
+package com.netsdk.lib.enumeration;
+
+public class EM_STORAGE_DISK_POWERMODE {
+ public static final int EM_STORAGE_DISK_POWERMODE_UNKNOWN = 0; // UNKnown状态(不是以下状态中的值)
+ public static final int EM_STORAGE_DISK_POWERMODE_NONE = 1; // 未知状态
+ public static final int EM_STORAGE_DISK_POWERMODE_ACTIVE = 2; // 活动状态
+ public static final int EM_STORAGE_DISK_POWERMODE_STANDBY = 3; // 休眠状态
+ public static final int EM_STORAGE_DISK_POWERMODE_IDLE = 4; // 空闲状态
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_STORAGE_DISK_PREDISKCHECK.java b/src/main/java/com/netsdk/lib/enumeration/EM_STORAGE_DISK_PREDISKCHECK.java
new file mode 100644
index 0000000..97ca5da
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_STORAGE_DISK_PREDISKCHECK.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.enumeration;
+
+public class EM_STORAGE_DISK_PREDISKCHECK {
+ public static final int EM_STORAGE_DISK_PREDISKCHECK_UNKNOWN = 0; // UnKnown状态
+ public static final int EM_STORAGE_DISK_PREDISKCHECK_GOOD = 1; // 硬盘读速度到120以上, 运行良好
+ public static final int EM_STORAGE_DISK_PREDISKCHECK_WARN = 2; // cmd信息里有少量错误记录,smart信息有错误记录
+ public static final int EM_STORAGE_DISK_PREDISKCHECK_ERROR = 3; // cmd信息有错误记录,smart信息由错误记录.坏扇区有坏扇区记录
+ public static final int EM_STORAGE_DISK_PREDISKCHECK_WILLFAIL = 4; // 硬盘速度比较低64M以下.cmd信息有错误记录,smart信息由错误记录.坏扇区有坏扇区记录
+ public static final int EM_STORAGE_DISK_PREDISKCHECK_FAIL = 5; // 硬盘返回错误
+ public static final int EM_STORAGE_DISK_PREDISKCHECK_NONE = 6; // 未知状态
+ public static final int EM_STORAGE_DISK_PREDISKCHECK_BECHECK = 7; // 正在查询中状态
+ public static final int EM_STORAGE_DISK_PREDISKCHECK_CHECKFAIL = 8; // 查询失败状态
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_STORAGE_HEALTH_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_STORAGE_HEALTH_TYPE.java
new file mode 100644
index 0000000..2840505
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_STORAGE_HEALTH_TYPE.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 健康状态标识
+ * @date 2021/01/21
+ */
+public enum EM_STORAGE_HEALTH_TYPE {
+ // 未知
+ EM_STORAGE_HEALTH_UNKNOWN(-1, "未知"),
+ // 设备不支持健康检测功能
+ EM_STORAGE_HEALTH_UNSUPPORT(0, "设备不支持健康检测功能"),
+ // 支持健康检测功能且获取数据成功
+ EM_STORAGE_HEALTH_SUPPORT_AND_SUCCESS(1, "支持健康检测功能且获取数据成功"),
+ // 支持健康检测功能但获取数据失败
+ EM_STORAGE_HEALTH_SUPPORT_AND_FAIL(2, "支持健康检测功能但获取数据失败");
+
+ private int value;
+ private String note;
+
+ private EM_STORAGE_HEALTH_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_STORAGE_HEALTH_TYPE enumType : EM_STORAGE_HEALTH_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_STORAGE_HEALTH_TYPE enumType : EM_STORAGE_HEALTH_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_STORAGE_PACKET_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_STORAGE_PACKET_TYPE.java
new file mode 100644
index 0000000..fbb63fd
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_STORAGE_PACKET_TYPE.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 分区打包类型
+*/
+public enum EM_STORAGE_PACKET_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_STORAGE_PACKET_UNKNOWN(0, "未知"),
+ /**
+ * 分区方式
+ */
+ EM_STORAGE_PACKET_PARTITION(1, "分区方式"),
+ /**
+ * 文件方式
+ */
+ EM_STORAGE_PACKET_FILE(2, "文件方式"),
+ /**
+ * DHOP方式
+ */
+ EM_STORAGE_PACKET_DHOP(3, "DHOP方式");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_STORAGE_PACKET_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_STORAGE_PACKET_TYPE enumType : EM_STORAGE_PACKET_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_STORAGE_PACKET_TYPE enumType : EM_STORAGE_PACKET_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_STRABISMUS_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_STRABISMUS_TYPE.java
new file mode 100644
index 0000000..f034a56
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_STRABISMUS_TYPE.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 斜视状态
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_STRABISMUS_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_STRABISMUS_UNKNOWN = 0;
+ /**
+ * 正常
+ */
+ public static final int EM_STRABISMUS_NORMAL = 1;
+ /**
+ * 斜视
+ */
+ public static final int EM_STRABISMUS_YES = 2;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_STREAM_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_STREAM_TYPE.java
new file mode 100644
index 0000000..aba72dc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_STREAM_TYPE.java
@@ -0,0 +1,67 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 码流类型
+*/
+public enum EM_STREAM_TYPE
+{
+ /**
+ * 未知状态
+ */
+ EM_STREAM_TYPE_UNKNOWN(0, "未知状态"),
+ /**
+ * 主码流
+ */
+ EM_STREAM_TYPE_MAIN(1, "主码流"),
+ /**
+ * 辅码流1
+ */
+ EM_STREAM_TYPE_EXTRA1(2, "辅码流1"),
+ /**
+ * 辅码流2
+ */
+ EM_STREAM_TYPE_EXTRA2(3, "辅码流2"),
+ /**
+ * 辅码流3
+ */
+ EM_STREAM_TYPE_EXTRA3(4, "辅码流3"),
+ /**
+ * 所有辅码流
+ */
+ EM_STREAM_TYPE_EXTRAALL(5, "所有辅码流");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_STREAM_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_STREAM_TYPE enumType : EM_STREAM_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_STREAM_TYPE enumType : EM_STREAM_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SUBCLASSID_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SUBCLASSID_TYPE.java
new file mode 100644
index 0000000..a18a95c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SUBCLASSID_TYPE.java
@@ -0,0 +1,53 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author : 47040
+ * @since : Created in 2020/12/28 16:07
+ */
+public enum EM_SUBCLASSID_TYPE {
+ EM_SUBCLASSID_UNKNOWN(0, "未知"),
+ EM_SUBCLASSID_ASSISTDEVICE(1, "辅助设备 (ITSE使用)");
+
+ private final int value;
+ private final String note;
+
+ EM_SUBCLASSID_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SUBCLASSID_TYPE enumType : EM_SUBCLASSID_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SUBCLASSID_TYPE enumType : EM_SUBCLASSID_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_SUBCLASSID_TYPE getEnum(int value) {
+ for (EM_SUBCLASSID_TYPE e : EM_SUBCLASSID_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_SUBCLASSID_TYPE.EM_SUBCLASSID_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SUBLINK_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SUBLINK_MODE.java
new file mode 100644
index 0000000..3f6d3c5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SUBLINK_MODE.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 子连接连接业务模式
+ * @date 2022/06/16 15:17:48
+ */
+public enum EM_SUBLINK_MODE {
+ /**
+ * 通用模式,默认值
+ */
+ EM_SUBLINK_MODE_NORMAL(0, "通用模式,默认值"),
+ /**
+ * 低功耗模式
+ */
+ EM_SUBLINK_MODE_LOWPOWER(1, "低功耗模式");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_SUBLINK_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SUBLINK_MODE enumType : EM_SUBLINK_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SUBLINK_MODE enumType : EM_SUBLINK_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SUBLINK_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SUBLINK_STATE.java
new file mode 100644
index 0000000..430e16f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SUBLINK_STATE.java
@@ -0,0 +1,67 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+子连接状态
+*/
+public enum EM_SUBLINK_STATE {
+/**
+/< 未知
+*/
+ EM_SUBLINK_STATE_UNKNWON(0, "/< 未知"),
+/**
+/< 已连接
+*/
+ EM_SUBLINK_STATE_CONNECT(1, "/< 已连接"),
+/**
+/< 已断开
+*/
+ EM_SUBLINK_STATE_DISCONNECT(2, "/< 已断开"),
+/**
+/< BSID校验失败, 子连接创建失败
+*/
+ EM_SUBLINK_STATE_BSID_ERROR(3, "/< BSID校验失败, 子连接创建失败");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_SUBLINK_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_SUBLINK_STATE enumType : EM_SUBLINK_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_SUBLINK_STATE enumType : EM_SUBLINK_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_SUBLINK_STATE getEnum(int value) {
+ for (EM_SUBLINK_STATE e : EM_SUBLINK_STATE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_SUBLINK_STATE.EM_SUBLINK_STATE_UNKNWON;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SUBLINK_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SUBLINK_TYPE.java
new file mode 100644
index 0000000..21607de
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SUBLINK_TYPE.java
@@ -0,0 +1,58 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 子连接连接方式
+ */
+public enum EM_SUBLINK_TYPE {
+ /**
+ * 直连方式
+ */
+ EM_SUBLINK_TYPE_PASSIVE(0, "直连方式"),
+ /**
+ * 主动注册方式
+ */
+ EM_SUBLINK_TYPE_PORT(1, "主动注册方式");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_SUBLINK_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SUBLINK_TYPE enumType : EM_SUBLINK_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SUBLINK_TYPE enumType : EM_SUBLINK_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_SUBLINK_TYPE getEnum(int value) {
+ for (EM_SUBLINK_TYPE e : EM_SUBLINK_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_SUBLINK_TYPE.EM_SUBLINK_TYPE_PASSIVE;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORTED_COLOR_LIST_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORTED_COLOR_LIST_TYPE.java
new file mode 100644
index 0000000..baa029c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORTED_COLOR_LIST_TYPE.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 检测符合要求的厨师服颜色不报警(无此字段表示不检测厨师服颜色)
+ * @date 2021/01/11
+ */
+public enum EM_SUPPORTED_COLOR_LIST_TYPE {
+ // 未知
+ EM_SUPPORTED_COLOR_LIST_TYPE_UNKNOWN(0, "未知"),
+ // 黑色
+ EM_SUPPORTED_COLOR_LIST_TYPE_BLACK(1, "黑色"),
+ // 白色
+ EM_SUPPORTED_COLOR_LIST_TYPE_WHITE(2, "白色"),
+ // 红色
+ EM_SUPPORTED_COLOR_LIST_TYPE_RED(3, "红色");
+
+ private int value;
+ private String note;
+
+ private EM_SUPPORTED_COLOR_LIST_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SUPPORTED_COLOR_LIST_TYPE enumType : EM_SUPPORTED_COLOR_LIST_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SUPPORTED_COLOR_LIST_TYPE enumType : EM_SUPPORTED_COLOR_LIST_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORTFINGERPRINT.java b/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORTFINGERPRINT.java
new file mode 100644
index 0000000..c5f2a3e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORTFINGERPRINT.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 是否支持信息功能
+ */
+public enum EM_SUPPORTFINGERPRINT {
+ /**
+ * 未知
+ */
+ EM_SUPPORTFINGERPRINT_UNKNOWN,
+ /**
+ * 不支持信息功能
+ */
+ EM_SUPPORTFINGERPRINT_NONSUPPORT,
+ /**
+ * 支持信息功能
+ */
+ EM_SUPPORTFINGERPRINT_SUPPORT;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_CLOSE_UP_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_CLOSE_UP_TYPE.java
new file mode 100644
index 0000000..7a01036
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_CLOSE_UP_TYPE.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 可选择特写模式
+ * @date 2021/01/11
+ */
+public enum EM_SUPPORT_CLOSE_UP_TYPE {
+ // 未知
+ EM_SUPPORT_CLOSE_UP_TYPE_UNKNOWN(0, "未知"),
+ // 跟踪模式
+ EM_SUPPORT_CLOSE_UP_TYPE_TRACK_MODE(1, "跟踪模式"),
+ // 固定模式
+ EM_SUPPORT_CLOSE_UP_TYPE_FIXED_MODE(2, "固定模式"),
+ // 指定区域模式
+ EM_SUPPORT_CLOSE_UP_TYPE_DESIGNED_REGION_MODE(3, "指定区域模式");
+
+ private int value;
+ private String note;
+
+ private EM_SUPPORT_CLOSE_UP_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SUPPORT_CLOSE_UP_TYPE enumType : EM_SUPPORT_CLOSE_UP_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SUPPORT_CLOSE_UP_TYPE enumType : EM_SUPPORT_CLOSE_UP_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_FAST_CHECK_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_FAST_CHECK_TYPE.java
new file mode 100644
index 0000000..d85d73b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_FAST_CHECK_TYPE.java
@@ -0,0 +1,27 @@
+package com.netsdk.lib.enumeration;
+
+public enum EM_SUPPORT_FAST_CHECK_TYPE {
+ /**
+ *未知
+ */
+ EM_SUPPORT_FAST_CHECK_UNKNOWN(-1),
+ /**
+ * 不支持
+ */
+ EM_SUPPORT_FAST_CHECK_NONSUPPORT(0),
+ /**
+ * 支持
+ */
+ EM_SUPPORT_FAST_CHECK_SUPPORT(1);
+
+ private int type;
+
+ EM_SUPPORT_FAST_CHECK_TYPE(int type) {
+ this.type=type;
+ }
+
+ public int getType(){
+ return type;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_FAST_IMPORT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_FAST_IMPORT_TYPE.java
new file mode 100644
index 0000000..e8110d9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_FAST_IMPORT_TYPE.java
@@ -0,0 +1,27 @@
+package com.netsdk.lib.enumeration;
+
+public enum EM_SUPPORT_FAST_IMPORT_TYPE {
+ /**
+ * 未知
+ */
+ EM_SUPPORT_FAST_IMPORT_UNKNOWN(-1),
+ /**
+ * 不支持
+ */
+ EM_SUPPORT_FAST_IMPORT_NONSUPPORT(0),
+ /**
+ * 支持
+ */
+ EM_SUPPORT_FAST_IMPORT_SUPPORT(1);
+
+ private int type;
+
+ EM_SUPPORT_FAST_IMPORT_TYPE(int type) {
+ this.type=type;
+ }
+
+ public int getType(){
+ return type;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_FOCUS_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_FOCUS_MODE.java
new file mode 100644
index 0000000..487613a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_FOCUS_MODE.java
@@ -0,0 +1,44 @@
+package com.netsdk.lib.enumeration;/**
+ * @author 47081
+ * @descriptio
+ * @date 2020/11/9
+ * @version 1.0
+ */
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 支持的焦距模式对应枚举
+ * @date 2020/11/9
+ */
+public enum EM_SUPPORT_FOCUS_MODE {
+ ENUM_SUPPORT_FOCUS_CAR(1, "看清车模式"),
+ ENUM_SUPPORT_FOCUS_PLATE(2, "看清车牌模式"),
+ ENUM_SUPPORT_FOCUS_PEOPLE(3, "看清人模式"),
+ ENUM_SUPPORT_FOCUS_FACE(4, "看清人脸模式");
+
+ private int mode;
+ private String desc;
+
+ private EM_SUPPORT_FOCUS_MODE(int mode, String desc) {
+ this.mode = mode;
+ this.desc = desc;
+ }
+
+ public int getMode() {
+ return mode;
+ }
+
+ public void setMode(int mode) {
+ this.mode = mode;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public void setDesc(String desc) {
+ this.desc = desc;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_HELMET_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_HELMET_TYPE.java
new file mode 100644
index 0000000..ac10f77
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_HELMET_TYPE.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 支持安全帽功能
+* @origin autoTool
+* @date 2023/02/10 14:34:21
+*/
+public enum EM_SUPPORT_HELMET_TYPE {
+/**
+未知
+*/
+ EM_SUPPORT_HELMET_TYPE_UNKNOWN(-1, "未知"),
+/**
+不支持
+*/
+ EM_SUPPORT_HELMET_TYPE_NO_SUPPORT(0, "不支持"),
+/**
+支持
+*/
+ EM_SUPPORT_HELMET_TYPE_SUPPORT(1, "支持");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_SUPPORT_HELMET_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_SUPPORT_HELMET_TYPE enumType : EM_SUPPORT_HELMET_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_SUPPORT_HELMET_TYPE enumType : EM_SUPPORT_HELMET_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_SUPPORT_HELMET_TYPE getEnum(int value) {
+ for (EM_SUPPORT_HELMET_TYPE e : EM_SUPPORT_HELMET_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_SUPPORT_HELMET_TYPE.EM_SUPPORT_HELMET_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_LIFT_CONTROL_TYPES.java b/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_LIFT_CONTROL_TYPES.java
new file mode 100644
index 0000000..0b29af8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_LIFT_CONTROL_TYPES.java
@@ -0,0 +1,61 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 支持的梯控制方式类型
+ * @origin autoTool
+ * @date 2023/08/24 14:19:16
+ */
+public enum EM_SUPPORT_LIFT_CONTROL_TYPES {
+ /**
+ * 未知
+ */
+ EM_SUPPORT_LIFT_CONTROL_TYPES_UNKNOWN(0, "未知"),
+ /**
+ * 本地485协议梯控方式
+ */
+ EM_SUPPORT_LIFT_CONTROL_TYPES_LOCAL485(1, "本地485协议梯控方式"),
+ /**
+ * 从门口机联动主门口进行召梯
+ */
+ EM_SUPPORT_LIFT_CONTROL_TYPES_LINKMAINVTO(2, "从门口机联动主门口进行召梯"),
+ /**
+ * 联动梯控主机召梯
+ */
+ EM_SUPPORT_LIFT_CONTROL_TYPES_LINkLIFTCONTROLHOST(3, "联动梯控主机召梯");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_SUPPORT_LIFT_CONTROL_TYPES(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SUPPORT_LIFT_CONTROL_TYPES enumType : EM_SUPPORT_LIFT_CONTROL_TYPES.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SUPPORT_LIFT_CONTROL_TYPES enumType : EM_SUPPORT_LIFT_CONTROL_TYPES.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_LOCALDATA_STORE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_LOCALDATA_STORE.java
new file mode 100644
index 0000000..9fbcc9c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_LOCALDATA_STORE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 是否支持本地存储
+* @date 2022/08/22 10:11:26
+*/
+public enum EM_SUPPORT_LOCALDATA_STORE {
+/**
+未知
+*/
+ EM_SUPPORT_LOCALDATA_STORE_UNKNOWN(-1, "未知"),
+/**
+不支持
+*/
+ EM_SUPPORT_LOCALDATA_STORE_NO(0, "不支持"),
+/**
+支持
+*/
+ EM_SUPPORT_LOCALDATA_STORE_YES(1, "支持");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_SUPPORT_LOCALDATA_STORE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_SUPPORT_LOCALDATA_STORE enumType : EM_SUPPORT_LOCALDATA_STORE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_SUPPORT_LOCALDATA_STORE enumType : EM_SUPPORT_LOCALDATA_STORE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_SUPPORT_LOCALDATA_STORE getEnum(int value) {
+ for (EM_SUPPORT_LOCALDATA_STORE e : EM_SUPPORT_LOCALDATA_STORE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_SUPPORT_LOCALDATA_STORE.EM_SUPPORT_LOCALDATA_STORE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_RPC_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_RPC_TYPE.java
new file mode 100644
index 0000000..336626e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_RPC_TYPE.java
@@ -0,0 +1,47 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 支持json传参的接口
+*/
+public enum EM_SUPPORT_RPC_TYPE
+{
+ /**
+ * CLIENT_FindNextFileEx + DH_FILE_QUERY_FACE, 入参对应结构体NET_FINDNEXTFILEEX_DH_FILE_QUERY_FACE_IN_PARAMS,出参对应结构体NET_FINDNEXTFILEEX_DH_FILE_QUERY_FACE_OUT_PARAMS
+ */
+ EM_FINDNEXTFILEEX_DH_FILE_QUERY_FACE(0, "CLIENT_FindNextFileEx + DH_FILE_QUERY_FACE, 入参对应结构体NET_FINDNEXTFILEEX_DH_FILE_QUERY_FACE_IN_PARAMS,出参对应结构体NET_FINDNEXTFILEEX_DH_FILE_QUERY_FACE_OUT_PARAMS");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_SUPPORT_RPC_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SUPPORT_RPC_TYPE enumType : EM_SUPPORT_RPC_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SUPPORT_RPC_TYPE enumType : EM_SUPPORT_RPC_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_SEARCH_BY_PIC.java b/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_SEARCH_BY_PIC.java
new file mode 100644
index 0000000..db5fde8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_SUPPORT_SEARCH_BY_PIC.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 260611
+ * @description 是否支持以图搜图
+ * @origin autoTool
+ * @date 2023/07/31 09:25:34
+ */
+public enum EM_SUPPORT_SEARCH_BY_PIC {
+ /**
+ * 未知, IVSS, NVR, DVR大概率支持目标以图搜图,IPC-FR不支持
+ */
+ EM_SUPPORT_SEARCH_BY_PIC_UNKNOWN(0, "未知, IVSS, NVR, DVR大概率支持目标以图搜图,IPC-FR不支持"),
+ /**
+ * 不支持
+ */
+ EM_SUPPORT_SEARCH_BY_PIC_UNSUPPORT(1, "不支持"),
+ /**
+ * 支持
+ */
+ EM_SUPPORT_SEARCH_BY_PIC_SUPPORT(2, "支持");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_SUPPORT_SEARCH_BY_PIC(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SUPPORT_SEARCH_BY_PIC enumType : EM_SUPPORT_SEARCH_BY_PIC.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SUPPORT_SEARCH_BY_PIC enumType : EM_SUPPORT_SEARCH_BY_PIC.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_SUPPORT_SEARCH_BY_PIC getEnum(int value) {
+ for (EM_SUPPORT_SEARCH_BY_PIC e : EM_SUPPORT_SEARCH_BY_PIC.values()) {
+ if (e.getValue() == value) {
+ return e;
+ }
+ }
+ return EM_SUPPORT_SEARCH_BY_PIC.EM_SUPPORT_SEARCH_BY_PIC_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TALK_AUDIO_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TALK_AUDIO_TYPE.java
new file mode 100644
index 0000000..2980009
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TALK_AUDIO_TYPE.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 音频编码压缩格式
+ * @author 47081
+ * @version 1.0
+ * @description
+ * @date 2020/6/9
+ */
+public enum EM_TALK_AUDIO_TYPE {
+ EM_TALK_AUDIO_PCM,
+ EM_TALK_AUDIO_ADPCM,
+ EM_TALK_AUDIO_G711A,
+ EM_TALK_AUDIO_G711Mu,
+ EM_TALK_AUDIO_G726,
+ EM_TALK_AUDIO_G729,
+ EM_TALK_AUDIO_MPEG2,
+ EM_TALK_AUDIO_AMR,
+ EM_TALK_AUDIO_AAC;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TALK_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TALK_STATE.java
new file mode 100644
index 0000000..695a2f5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TALK_STATE.java
@@ -0,0 +1,75 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 语音对讲状态
+*/
+public enum EM_TALK_STATE
+{
+ /**
+ * 未知
+ */
+ EM_TALK_STATE_UNKNOWN(0, "未知"),
+ /**
+ * 主叫
+ */
+ EM_TALK_STATE_INVITING(1, "主叫"),
+ /**
+ * 被叫
+ */
+ EM_TALK_STATE_RINGING(2, "被叫"),
+ /**
+ * 应答
+ */
+ EM_TALK_STATE_ANSWER(3, "应答"),
+ /**
+ * 拒绝
+ */
+ EM_TALK_STATE_REFUSE(4, "拒绝"),
+ /**
+ * 挂断
+ */
+ EM_TALK_STATE_HANGUP(5, "挂断"),
+ /**
+ * 忙碌
+ */
+ EM_TALK_STATE_BUSYING(6, "忙碌"),
+ /**
+ * 取消呼叫
+ */
+ EM_TALK_STATE_CANCEL(7, "取消呼叫");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_TALK_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TALK_STATE enumType : EM_TALK_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TALK_STATE enumType : EM_TALK_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TAMPERALTERSTATUS_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TAMPERALTERSTATUS_TYPE.java
new file mode 100644
index 0000000..ba54199
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TAMPERALTERSTATUS_TYPE.java
@@ -0,0 +1,42 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 设备锁状态
+ * @date 2021/2/22
+ */
+public enum EM_TAMPERALTERSTATUS_TYPE {
+ /** 未知 */
+ EM_TAMPERALTERSTATUS_UNKNOWN(-1, "未知"),
+ /** 关闭 */
+ EM_TAMPERALTERSTATUS_CLOSE(0, "关闭"),
+ /** 开启 */
+ EM_TAMPERALTERSTATUS_OPEN(1, "开启");
+
+ private int type;
+ private String desc;
+
+ EM_TAMPERALTERSTATUS_TYPE(int type, String desc) {
+ this.type = type;
+ this.desc = desc;
+ }
+
+ public int getType() {
+ return type;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public static EM_TAMPERALTERSTATUS_TYPE getTamperaltersStatus(int type) {
+ for (EM_TAMPERALTERSTATUS_TYPE statusType : EM_TAMPERALTERSTATUS_TYPE.values()) {
+ if (statusType.type == type) {
+ return statusType;
+ }
+ }
+ return EM_TAMPERALTERSTATUS_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TANK_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/EM_TANK_STATUS.java
new file mode 100644
index 0000000..8f5ede9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TANK_STATUS.java
@@ -0,0 +1,60 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 贮柜当前状态
+ * @date 2022/10/28 11:34:32
+ */
+public enum EM_TANK_STATUS {
+ /**
+ * 未知
+ */
+ EM_TANK_STATUS_UNKNOWN(0, "未知"),
+ /**
+ * 出料
+ */
+ EM_TANK_STATUS_DISCHARGING(1, "出料"),
+ /**
+ * 进料
+ */
+ EM_TANK_STATUS_CHARGING(2, "进料"),
+ /**
+ * 空闲
+ */
+ EM_TANK_STATUS_IDLE(3, "空闲");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_TANK_STATUS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TANK_STATUS enumType : EM_TANK_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TANK_STATUS enumType : EM_TANK_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TEMPERATUREEX_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TEMPERATUREEX_TYPE.java
new file mode 100644
index 0000000..e29f72b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TEMPERATUREEX_TYPE.java
@@ -0,0 +1,80 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 温度类型
+ * @date 2022/05/12 16:32:08
+ */
+public enum EM_TEMPERATUREEX_TYPE {
+ /**
+ * 未知
+ */
+ EM_TEMPERATUREEX_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 全部
+ */
+ EM_TEMPERATUREEX_TYPE_ALL(1, "全部"),
+ /**
+ * 电源
+ */
+ EM_TEMPERATUREEX_TYPE_POWER(2, "电源"),
+ /**
+ * 机柜
+ */
+ EM_TEMPERATUREEX_TYPE_CABINET(3, "机柜"),
+ /**
+ * 环境
+ */
+ EM_TEMPERATUREEX_TYPE_GLOBAL(4, "环境"),
+ /**
+ * 主板
+ */
+ EM_TEMPERATUREEX_TYPE_MAINBOARD(5, "主板"),
+ /**
+ * 子卡
+ */
+ EM_TEMPERATUREEX_TYPE_CARD(6, "子卡"),
+ /**
+ * 背板
+ */
+ EM_TEMPERATUREEX_TYPE_BACKBOARD(7, "背板"),
+ /**
+ * 处理器
+ */
+ EM_TEMPERATUREEX_TYPE_CPU(8, "处理器");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_TEMPERATUREEX_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TEMPERATUREEX_TYPE enumType : EM_TEMPERATUREEX_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TEMPERATUREEX_TYPE enumType : EM_TEMPERATUREEX_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TEMPERATURE_UNIT.java b/src/main/java/com/netsdk/lib/enumeration/EM_TEMPERATURE_UNIT.java
new file mode 100644
index 0000000..8ee4e79
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TEMPERATURE_UNIT.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 温度单位
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_TEMPERATURE_UNIT extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_TEMPERATURE_UNKNOWN = -1;
+ /**
+ * 摄氏度
+ */
+ public static final int EM_TEMPERATURE_CENTIGRADE = 0;
+ /**
+ * 华氏度
+ */
+ public static final int EM_TEMPERATURE_FAHRENHEIT = 1;
+ /**
+ * 开尔文
+ */
+ public static final int EM_TEMPERATURE_KELVIN = 2;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TEMPERATURE_UNIT_EX.java b/src/main/java/com/netsdk/lib/enumeration/EM_TEMPERATURE_UNIT_EX.java
new file mode 100644
index 0000000..e43bcd1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TEMPERATURE_UNIT_EX.java
@@ -0,0 +1,70 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 温度单位
+ *
+ * @author 47040
+ * @version 1.0.0
+ * @since Created in 2021/3/8 20:45
+ */
+public enum EM_TEMPERATURE_UNIT_EX {
+ /**
+ * 未知
+ */
+ EM_TEMPERATURE_EX_UNKNOWN(0, "未知"),
+ /**
+ * 摄氏度
+ */
+ EM_TEMPERATURE_EX_CENTIGRADE(1, "摄氏度"),
+ /**
+ * 华氏度
+ */
+ EM_TEMPERATURE_EX_FAHRENHEIT(2, "华氏度"),
+ /**
+ * 开尔文
+ */
+ EM_TEMPERATURE_EX_KELVIN(3, "开尔文");
+
+ private final int value;
+ private final String note;
+
+ EM_TEMPERATURE_UNIT_EX(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TEMPERATURE_UNIT_EX enumType : EM_TEMPERATURE_UNIT_EX.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TEMPERATURE_UNIT_EX enumType : EM_TEMPERATURE_UNIT_EX.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_TEMPERATURE_UNIT_EX getEnum(int value) {
+ for (EM_TEMPERATURE_UNIT_EX e : EM_TEMPERATURE_UNIT_EX.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_TEMPERATURE_UNIT_EX.EM_TEMPERATURE_EX_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TEMP_MEASURE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TEMP_MEASURE_TYPE.java
new file mode 100644
index 0000000..6230cd4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TEMP_MEASURE_TYPE.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.enumeration;
+
+
+
+/**
+ * 门禁测温类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/09 17:05
+ */
+public enum EM_TEMP_MEASURE_TYPE {
+ /**
+ * 未知
+ */
+ EM_TEMP_MEASURE_TYPE_UNKNOWN,
+ /**
+ * 单片机红外测温
+ */
+ EM_TEMP_MEASURE_TYPE_INFRARED,
+ /**
+ * 热成像测温
+ */
+ EM_TEMP_MEASURE_TYPE_THERMAL_IMAGE,
+ /**
+ * 高德测温模块测温
+ */
+ EM_TEMP_MEASURE_TYPE_GUIDE_MODULE,
+ /**
+ * 单点手腕测温
+ */
+ EM_TEMP_MEASURE_TYPE_WRIST;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TEST_ITEMS.java b/src/main/java/com/netsdk/lib/enumeration/EM_TEST_ITEMS.java
new file mode 100644
index 0000000..ff09ccd
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TEST_ITEMS.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description
+ * @date 2021/8/20 11:48
+ */
+public enum EM_TEST_ITEMS {
+ EM_TEST_ITEMS_UNKNOWN(-1, "未知"),// 未知
+ EM_TEST_ITEMS_OTHER(0, "其他项目"),// 其他项目
+ EM_TEST_ITEMS_HAND_TEST(1, "手部测试静电电阻"),// 手部测试静电电阻
+ EM_TEST_ITEMS_TWOFEET_TEST(2, "双脚测试静电电阻"),// 双脚测试静电电阻
+ EM_TEST_ITEMS_HANDTWOFEET_TEST(3, "手部和双脚测试静电电阻"),// 手部和双脚测试静电电阻
+ EM_TEST_ITEMS_NONE(4, "全部不测");// 全部不测
+
+ private final int value;
+ private final String note;
+
+ EM_TEST_ITEMS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TEST_ITEMS enumType : EM_TEST_ITEMS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TEST_ITEMS enumType : EM_TEST_ITEMS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_TEST_ITEMS getEnum(int value) {
+ for (EM_TEST_ITEMS e : EM_TEST_ITEMS.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_TEST_ITEMS.EM_TEST_ITEMS_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_THERMAL_IMAGE_CALIBRATION_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_THERMAL_IMAGE_CALIBRATION_MODE.java
new file mode 100644
index 0000000..486aab3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_THERMAL_IMAGE_CALIBRATION_MODE.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.enumeration;
+
+
+
+/**
+ * 热成像标定模式
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/09 17:05
+ */
+public enum EM_THERMAL_IMAGE_CALIBRATION_MODE {
+ /**
+ * 未知
+ */
+ EM_THERMAL_IMAGE_CALIBRATION_MODE_UNKNOWN,
+ /**
+ * 室内模式
+ */
+ EM_THERMAL_IMAGE_CALIBRATION_MODE_INDOOR,
+ /**
+ * 壁装模式
+ */
+ EM_THERMAL_IMAGE_CALIBRATION_MODE_WALL_MOUNTING,
+ /**
+ * 闸机模式
+ */
+ EM_THERMAL_IMAGE_CALIBRATION_MODE_GATE,
+ /**
+ * 高端落地式模式
+ */
+ EM_THERMAL_IMAGE_CALIBRATION_MODE_FLOOR;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_ACTION_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_ACTION_TYPE.java
new file mode 100644
index 0000000..92c3acb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_ACTION_TYPE.java
@@ -0,0 +1,61 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 260611
+ * @description 场景触发执行动作类型
+ * @date 2022/04/20 11:28:14
+ */
+public enum EM_THINGS_ACTION_TYPE {
+ /**
+ * 未知
+ */
+ EM_THINGS_ACTION_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * action/device/setProperty 设置设备属性,对应结构体NET_THINGS_RULECONTENT_ACTION_SETPROPERTY
+ */
+ EM_THINGS_ACTION_TYPE_SETPROPERTY(1, " action/device/setProperty 设置设备属性,对应结构体NET_THINGS_RULECONTENT_ACTION_SETPROPERTY");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_THINGS_ACTION_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_THINGS_ACTION_TYPE enumType : EM_THINGS_ACTION_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_THINGS_ACTION_TYPE enumType : EM_THINGS_ACTION_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_THINGS_ACTION_TYPE getEnum(int value) {
+ for (EM_THINGS_ACTION_TYPE e : EM_THINGS_ACTION_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_THINGS_ACTION_TYPE.EM_THINGS_ACTION_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_CONDITION_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_CONDITION_TYPE.java
new file mode 100644
index 0000000..c1a77e9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_CONDITION_TYPE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 260611
+ * @description 场景触发过滤条件类型
+ * @date 2022/04/20 11:28:14
+ */
+public enum EM_THINGS_CONDITION_TYPE {
+ /**
+ * 未知
+ */
+ EM_THINGS_CONDITION_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * condition/timeRange 比较当前时间是否在一个区间内,对应结构体
+ */
+ EM_THINGS_CONDITION_TYPE_TIMERANGE(1, " condition/timeRange 比较当前时间是否在一个区间内,对应结构体"),
+ /**
+ * condition/device/property 设备属性过滤,对应结构体
+ */
+ EM_THINGS_CONDITION_TYPE_PROPERTY(2, " condition/device/property 设备属性过滤,对应结构体");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_THINGS_CONDITION_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_THINGS_CONDITION_TYPE enumType : EM_THINGS_CONDITION_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_THINGS_CONDITION_TYPE enumType : EM_THINGS_CONDITION_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_THINGS_CONDITION_TYPE getEnum(int value) {
+ for (EM_THINGS_CONDITION_TYPE e : EM_THINGS_CONDITION_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_THINGS_CONDITION_TYPE.EM_THINGS_CONDITION_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_CONNECT_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_CONNECT_STATE.java
new file mode 100644
index 0000000..3cd845e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_CONNECT_STATE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 260611
+ * @description 设备连接状态
+ * @date 2022/04/20 10:16:56
+ */
+public enum EM_THINGS_CONNECT_STATE {
+ /**
+ * 未知
+ */
+ EM_THINGS_CONNECT_STATE_UNKNOWN(-1, "未知"),
+ /**
+ * 连接断开
+ */
+ EM_THINGS_CONNECT_STATE_DISCONNECT(0, "连接断开"),
+ /**
+ * 已连接
+ */
+ EM_THINGS_CONNECT_STATE_CONNECT(1, "已连接");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_THINGS_CONNECT_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_THINGS_CONNECT_STATE enumType : EM_THINGS_CONNECT_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_THINGS_CONNECT_STATE enumType : EM_THINGS_CONNECT_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+ public static EM_THINGS_CONNECT_STATE getEnum(int value) {
+ for (EM_THINGS_CONNECT_STATE e : EM_THINGS_CONNECT_STATE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_THINGS_CONNECT_STATE.EM_THINGS_CONNECT_STATE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_CURRENTSTATUSGET_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_CURRENTSTATUSGET_STATUS.java
new file mode 100644
index 0000000..db3a54a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_CURRENTSTATUSGET_STATUS.java
@@ -0,0 +1,69 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 260611
+ * @description 报警状态
+ * @date 2022/04/20 10:50:24
+ */
+public enum EM_THINGS_CURRENTSTATUSGET_STATUS {
+ /**
+ * 未知
+ */
+ EM_THINGS_CURRENTSTATUSGET_STATUS_UNKNOWN(-1, "未知"),
+ /**
+ * 正常
+ */
+ EM_THINGS_CURRENTSTATUSGET_STATUS_NORMAL(0, "正常"),
+ /**
+ * 预警
+ */
+ EM_THINGS_CURRENTSTATUSGET_STATUS_EARLY(1, "预警"),
+ /**
+ * 报警
+ */
+ EM_THINGS_CURRENTSTATUSGET_STATUS_ALARM(2, "报警");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_THINGS_CURRENTSTATUSGET_STATUS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_THINGS_CURRENTSTATUSGET_STATUS enumType : EM_THINGS_CURRENTSTATUSGET_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_THINGS_CURRENTSTATUSGET_STATUS enumType : EM_THINGS_CURRENTSTATUSGET_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+ public static EM_THINGS_CURRENTSTATUSGET_STATUS getEnum(int value) {
+ for (EM_THINGS_CURRENTSTATUSGET_STATUS e : EM_THINGS_CURRENTSTATUSGET_STATUS.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_THINGS_CURRENTSTATUSGET_STATUS.EM_THINGS_CURRENTSTATUSGET_STATUS_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_RULECONTENT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_RULECONTENT_TYPE.java
new file mode 100644
index 0000000..5898faa
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_RULECONTENT_TYPE.java
@@ -0,0 +1,61 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 260611
+ * @description 场景规则类型
+ * @date 2022/04/20 10:50:21
+ */
+public enum EM_THINGS_RULECONTENT_TYPE {
+ /**
+ * 未知
+ */
+ EM_THINGS_RULECONTENT_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * IFTTT类型
+ */
+ EM_THINGS_RULECONTENT_TYPE_IFTTT(1, "IFTTT类型");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_THINGS_RULECONTENT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_THINGS_RULECONTENT_TYPE enumType : EM_THINGS_RULECONTENT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_THINGS_RULECONTENT_TYPE enumType : EM_THINGS_RULECONTENT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_THINGS_RULECONTENT_TYPE getEnum(int value) {
+ for (EM_THINGS_RULECONTENT_TYPE e : EM_THINGS_RULECONTENT_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_THINGS_RULECONTENT_TYPE.EM_THINGS_RULECONTENT_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_SERVICE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_SERVICE_TYPE.java
new file mode 100644
index 0000000..40baac1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_SERVICE_TYPE.java
@@ -0,0 +1,117 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 260611
+ * @description 物模型服务类型
+ * @date 2022/04/20 10:16:57
+ */
+public enum EM_THINGS_SERVICE_TYPE {
+ /**
+ * 阀门控制,入参:NET_IN_THINGS_SERVICE_VALVECONTROL,出参:NET_OUT_THINGS_SERVICE_VALVECONTROL
+ */
+ EM_THINGS_SERVICE_TYPE_VALVECONTROL(0, "阀门控制,入参:NET_IN_THINGS_SERVICE_VALVECONTROL,出参:NET_OUT_THINGS_SERVICE_VALVECONTROL"),
+ /**
+ * 电量清零,入参:NET_IN_THINGS_SERVICE_CHARGECLEAR,出参:NET_OUT_THINGS_SERVICE_CHARGECLEAR
+ */
+ EM_THINGS_SERVICE_TYPE_CHARGECLEAR(1, "电量清零,入参:NET_IN_THINGS_SERVICE_CHARGECLEAR,出参:NET_OUT_THINGS_SERVICE_CHARGECLEAR"),
+ /**
+ * 漏电自检,入参:NET_IN_THINGS_SERVICE_LEAKCURTPOST,出参:NET_OUT_THINGS_SERVICE_LEAKCURTPOST
+ */
+ EM_THINGS_SERVICE_TYPE_LEAKCURTPOST(2, "漏电自检,入参:NET_IN_THINGS_SERVICE_LEAKCURTPOST,出参:NET_OUT_THINGS_SERVICE_LEAKCURTPOST"),
+ /**
+ * 漏电自检异步,入参:NET_IN_THINGS_SERVICE_LEAKCURTPOSTASYNC,出参:NET_OUT_THINGS_SERVICE_LEAKCURTPOSTASYNC
+ */
+ EM_THINGS_SERVICE_TYPE_LEAKCURTPOSTASYNC(3, "漏电自检异步,入参:NET_IN_THINGS_SERVICE_LEAKCURTPOSTASYNC,出参:NET_OUT_THINGS_SERVICE_LEAKCURTPOSTASYNC"),
+ /**
+ * 空开红蓝灯闪烁(寻找空开),入参:NET_IN_THINGS_SERVICE_AIRSWITHFIND,出参:NET_OUT_THINGS_SERVICE_AIRSWITHFIND
+ */
+ EM_THINGS_SERVICE_TYPE_AIRSWITHFIND(4, "空开红蓝灯闪烁(寻找空开),入参:NET_IN_THINGS_SERVICE_AIRSWITHFIND,出参:NET_OUT_THINGS_SERVICE_AIRSWITHFIND"),
+ /**
+ * 空开恢复出厂设置,入参:NET_IN_THINGS_SERVICE_AIRSWITHRESET,出参:NET_OUT_THINGS_SERVICE_AIRSWITHRESET
+ */
+ EM_THINGS_SERVICE_TYPE_AIRSWITHRESET(5, "空开恢复出厂设置,入参:NET_IN_THINGS_SERVICE_AIRSWITHRESET,出参:NET_OUT_THINGS_SERVICE_AIRSWITHRESET"),
+ /**
+ * 添加联动规则,入参:NET_IN_THINGS_SERVICE_ADDRULE,出参:NET_OUT_THINGS_SERVICE_ADDRULE
+ */
+ EM_THINGS_SERVICE_TYPE_ADDRULE(6, "添加联动规则,入参:NET_IN_THINGS_SERVICE_ADDRULE,出参:NET_OUT_THINGS_SERVICE_ADDRULE"),
+ /**
+ * 删除联动规则,入参:NET_IN_THINGS_SERVICE_DELRULE,出参:NET_OUT_THINGS_SERVICE_DELRULE
+ */
+ EM_THINGS_SERVICE_TYPE_DELRULE(7, "删除联动规则,入参:NET_IN_THINGS_SERVICE_DELRULE,出参:NET_OUT_THINGS_SERVICE_DELRULE"),
+ /**
+ * 修改联动规则,入参:NET_IN_THINGS_SERVICE_MODRULE,出参:NET_OUT_THINGS_SERVICE_MODRULE
+ */
+ EM_THINGS_SERVICE_TYPE_MODRULE(8, "修改联动规则,入参:NET_IN_THINGS_SERVICE_MODRULE,出参:NET_OUT_THINGS_SERVICE_MODRULE"),
+ /**
+ * 查询联动规则,入参:NET_IN_THINGS_SERVICE_QUERULE,出参:NET_OUT_THINGS_SERVICE_QUERULE
+ */
+ EM_THINGS_SERVICE_TYPE_QUERULE(9, "查询联动规则,入参:NET_IN_THINGS_SERVICE_QUERULE,出参:NET_OUT_THINGS_SERVICE_QUERULE"),
+ /**
+ * 使能联动规则,入参:NET_IN_THINGS_SERVICE_ENABLE,出参:NET_OUT_THINGS_SERVICE_ENABLE
+ */
+ EM_THINGS_SERVICE_TYPE_ENABLERULE(10, "使能联动规则,入参:NET_IN_THINGS_SERVICE_ENABLE,出参:NET_OUT_THINGS_SERVICE_ENABLE"),
+ /**
+ * 添加设备,入参:NET_IN_THINGS_SERVICE_ADDDEVICE,出参:NET_OUT_THINGS_SERVICE_ADDDEVICE
+ */
+ EM_THINGS_SERVICE_TYPE_ADDDEVICE(11, "添加设备,入参:NET_IN_THINGS_SERVICE_ADDDEVICE,出参:NET_OUT_THINGS_SERVICE_ADDDEVICE"),
+ /**
+ * 删除子设备,入参:NET_IN_THINGS_SERVICE_DELDEVICE,出参:NET_OUT_THINGS_SERVICE_DELDEVICE
+ */
+ EM_THINGS_SERVICE_TYPE_DELDEVICE(12, "删除子设备,入参:NET_IN_THINGS_SERVICE_DELDEVICE,出参:NET_OUT_THINGS_SERVICE_DELDEVICE"),
+ /**
+ * 子设备替换,入参:NET_IN_THINGS_SERVICE_DEVREPLACE,出参:NET_OUT_THINGS_SERVICE_DEVREPLACE
+ */
+ EM_THINGS_SERVICE_TYPE_DEVREPLACE(13, "子设备替换,入参:NET_IN_THINGS_SERVICE_DEVREPLACE,出参:NET_OUT_THINGS_SERVICE_DEVREPLACE"),
+ /**
+ * 离线日志清除,入参:NET_IN_THINGS_SERVICE_OFFLINELOGCLEAN,出参:NET_OUT_THINGS_SERVICE_OFFLINELOGCLEAN
+ */
+ EM_THINGS_SERVICE_TYPE_OFFLINELOGCLEAN(14, "离线日志清除,入参:NET_IN_THINGS_SERVICE_OFFLINELOGCLEAN,出参:NET_OUT_THINGS_SERVICE_OFFLINELOGCLEAN"),
+ /**
+ * 获取所有空开当前报警状态,入参:NET_IN_THINGS_SERVICE_CURRENTSTATUSGET,出参:NET_OUT_THINGS_SERVICE_CURRENTSTATUSGET
+ */
+ EM_THINGS_SERVICE_TYPE_CURRENTSTATUSGET(15, "获取所有空开当前报警状态,入参:NET_IN_THINGS_SERVICE_CURRENTSTATUSGET,出参:NET_OUT_THINGS_SERVICE_CURRENTSTATUSGET");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_THINGS_SERVICE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_THINGS_SERVICE_TYPE enumType : EM_THINGS_SERVICE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_THINGS_SERVICE_TYPE enumType : EM_THINGS_SERVICE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_THINGS_SERVICE_TYPE getEnum(int value) {
+ for (EM_THINGS_SERVICE_TYPE e : EM_THINGS_SERVICE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_THINGS_SERVICE_TYPE.EM_THINGS_SERVICE_TYPE_VALVECONTROL;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_TRIGGER_TIMER_CORN_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_TRIGGER_TIMER_CORN_TYPE.java
new file mode 100644
index 0000000..d780de6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_TRIGGER_TIMER_CORN_TYPE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 260611
+ * @description 定时触发类型内容表达式类型
+ * @date 2022/04/20 11:28:15
+ */
+public enum EM_THINGS_TRIGGER_TIMER_CORN_TYPE {
+ /**
+ * 未知
+ */
+ EM_THINGS_TRIGGER_TIMER_CORN_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * quartz_cron 表达式结构:$second $minute $hour $dayofmonth $month $dayofweek $year
+ */
+ EM_THINGS_TRIGGER_TIMER_CORN_TYPE_QUARTZCORN(1, " quartz_cron 表达式结构:$second $minute $hour $dayofmonth $month $dayofweek $year"),
+ /**
+ * linux 表达式结构:$minute $hour $day of month $month $dayofweek
+ */
+ EM_THINGS_TRIGGER_TIMER_CORN_TYPE_LINUX(2, " linux 表达式结构:$minute $hour $day of month $month $dayofweek");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_THINGS_TRIGGER_TIMER_CORN_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_THINGS_TRIGGER_TIMER_CORN_TYPE enumType : EM_THINGS_TRIGGER_TIMER_CORN_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_THINGS_TRIGGER_TIMER_CORN_TYPE enumType : EM_THINGS_TRIGGER_TIMER_CORN_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_THINGS_TRIGGER_TIMER_CORN_TYPE getEnum(int value) {
+ for (EM_THINGS_TRIGGER_TIMER_CORN_TYPE e : EM_THINGS_TRIGGER_TIMER_CORN_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_THINGS_TRIGGER_TIMER_CORN_TYPE.EM_THINGS_TRIGGER_TIMER_CORN_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_TRIGGER_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_TRIGGER_TYPE.java
new file mode 100644
index 0000000..e451798
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_THINGS_TRIGGER_TYPE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 260611
+ * @description 场景的触发类型
+ * @date 2022/04/20 11:28:13
+ */
+public enum EM_THINGS_TRIGGER_TYPE {
+ /**
+ * 未知
+ */
+ EM_THINGS_TRIGGER_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * trigger/timer 定时触发,对应结构体NET_THINGS_RULECONTENT_TRIGGER_TIMER
+ */
+ EM_THINGS_TRIGGER_TYPE_TRIGGER_TIMER(1, " trigger/timer 定时触发,对应结构体NET_THINGS_RULECONTENT_TRIGGER_TIMER"),
+ /**
+ * trigger/device/property 设备属性触发,对应结构体NET_THINGS_RULECONTENT_TRIGGER_PROPERTY
+ */
+ EM_THINGS_TRIGGER_TYPE_TRIGGER_PROPERTY(2, " trigger/device/property 设备属性触发,对应结构体NET_THINGS_RULECONTENT_TRIGGER_PROPERTY");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_THINGS_TRIGGER_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_THINGS_TRIGGER_TYPE enumType : EM_THINGS_TRIGGER_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_THINGS_TRIGGER_TYPE enumType : EM_THINGS_TRIGGER_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_THINGS_TRIGGER_TYPE getEnum(int value) {
+ for (EM_THINGS_TRIGGER_TYPE e : EM_THINGS_TRIGGER_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_THINGS_TRIGGER_TYPE.EM_THINGS_TRIGGER_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TIME_WAKEUP_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TIME_WAKEUP_MODE.java
new file mode 100644
index 0000000..bf06dbb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TIME_WAKEUP_MODE.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 定时唤醒的方式
+*/
+public enum EM_TIME_WAKEUP_MODE
+{
+ /**
+ * 未知
+ */
+ NET_EM_TIME_WAKEUP_UNKNOWN(0, "未知"),
+ /**
+ * 按时间段唤醒
+ */
+ NET_EM_TIME_WAKEUP_SEACTION(1, "按时间段唤醒"),
+ /**
+ * 按时间间隔唤醒
+ */
+ NET_EM_TIME_WAKEUP_INTERVAL(2, "按时间间隔唤醒"),
+ /**
+ * 按照时间点唤醒
+ */
+ NET_EM_TIME_WAKEUP_POINT(3, "按照时间点唤醒");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_TIME_WAKEUP_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TIME_WAKEUP_MODE enumType : EM_TIME_WAKEUP_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TIME_WAKEUP_MODE enumType : EM_TIME_WAKEUP_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TITLE_POSITON.java b/src/main/java/com/netsdk/lib/enumeration/EM_TITLE_POSITON.java
new file mode 100644
index 0000000..bad2a44
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TITLE_POSITON.java
@@ -0,0 +1,63 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * OSD显示位置
+*/
+public enum EM_TITLE_POSITON
+{
+ /**
+ * 未知
+ */
+ EM_TITLE_POSITON_UNKNOW(0, "未知"),
+ /**
+ * 右上角
+ */
+ EM_TITLE_POSITON_RIGHTUP(1, "右上角"),
+ /**
+ * 左上角
+ */
+ EM_TITLE_POSITON_LEFTUP(2, "左上角"),
+ /**
+ * 左下角
+ */
+ EM_TITLE_POSITON_LEFTDOWN(3, "左下角"),
+ /**
+ * 右下角
+ */
+ EM_TITLE_POSITON_RIGHTDOWN(4, "右下角");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_TITLE_POSITON(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TITLE_POSITON enumType : EM_TITLE_POSITON.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TITLE_POSITON enumType : EM_TITLE_POSITON.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TITLE_TEXT_ALIGNTYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TITLE_TEXT_ALIGNTYPE.java
new file mode 100644
index 0000000..9afbacf
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TITLE_TEXT_ALIGNTYPE.java
@@ -0,0 +1,84 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 标题文本对齐方式
+ * @date 2022/05/23 08:51:37
+ */
+public enum EM_TITLE_TEXT_ALIGNTYPE {
+ /**
+ * 无效的对齐方式
+ */
+ EM_TEXT_ALIGNTYPE_INVALID(0, "无效的对齐方式"),
+ /**
+ * 左对齐
+ */
+ EM_TEXT_ALIGNTYPE_LEFT(1, "左对齐"),
+ /**
+ * X坐标中对齐
+ */
+ EM_TEXT_ALIGNTYPE_XCENTER(2, "X坐标中对齐"),
+ /**
+ * Y坐标中对齐
+ */
+ EM_TEXT_ALIGNTYPE_YCENTER(3, "Y坐标中对齐"),
+ /**
+ * 居中
+ */
+ EM_TEXT_ALIGNTYPE_CENTER(4, "居中"),
+ /**
+ * 右对齐
+ */
+ EM_TEXT_ALIGNTYPE_RIGHT(5, "右对齐"),
+ /**
+ * 按照顶部对齐
+ */
+ EM_TEXT_ALIGNTYPE_TOP(6, "按照顶部对齐"),
+ /**
+ * 按照底部对齐
+ */
+ EM_TEXT_ALIGNTYPE_BOTTOM(7, "按照底部对齐"),
+ /**
+ * 按照左上角对齐
+ */
+ EM_TEXT_ALIGNTYPE_LEFTTOP(8, "按照左上角对齐"),
+ /**
+ * 换行对齐
+ */
+ EM_TEXT_ALIGNTYPE_CHANGELINE(9, "换行对齐");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_TITLE_TEXT_ALIGNTYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TITLE_TEXT_ALIGNTYPE enumType : EM_TITLE_TEXT_ALIGNTYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TITLE_TEXT_ALIGNTYPE enumType : EM_TITLE_TEXT_ALIGNTYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TOLLS_VEHICLE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TOLLS_VEHICLE_TYPE.java
new file mode 100644
index 0000000..d36de6c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TOLLS_VEHICLE_TYPE.java
@@ -0,0 +1,121 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 260611
+ * @description 收费公路车辆通行费车型分类
+ * @date 2022/07/20 16:46:40
+ */
+public enum EM_TOLLS_VEHICLE_TYPE {
+ /**
+ * 未知
+ */
+ EM_TOLLS_VEHICLE_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 一型客车
+ */
+ EM_TOLLS_VEHICLE_TYPE_PASSENGER_CAR1(1, "一型客车"),
+ /**
+ * 二型客车
+ */
+ EM_TOLLS_VEHICLE_TYPE_PASSENGER_CAR2(2, "二型客车"),
+ /**
+ * 三型客车
+ */
+ EM_TOLLS_VEHICLE_TYPE_PASSENGER_CAR3(3, "三型客车"),
+ /**
+ * 四型客车
+ */
+ EM_TOLLS_VEHICLE_TYPE_PASSENGER_CAR4(4, "四型客车"),
+ /**
+ * 一型货车
+ */
+ EM_TOLLS_VEHICLE_TYPE_TRUCK1(11, "一型货车"),
+ /**
+ * 二型货车
+ */
+ EM_TOLLS_VEHICLE_TYPE_TRUCK2(12, "二型货车"),
+ /**
+ * 三型货车
+ */
+ EM_TOLLS_VEHICLE_TYPE_TRUCK3(13, "三型货车"),
+ /**
+ * 四型货车
+ */
+ EM_TOLLS_VEHICLE_TYPE_TRUCK4(14, "四型货车"),
+ /**
+ * 五型货车
+ */
+ EM_TOLLS_VEHICLE_TYPE_TRUCK5(15, "五型货车"),
+ /**
+ * 六型货车
+ */
+ EM_TOLLS_VEHICLE_TYPE_TRUCK6(16, "六型货车"),
+ /**
+ * 一型专项作业车
+ */
+ EM_TOLLS_VEHICLE_TYPE_OPERATION_VEHICLE1(21, "一型专项作业车"),
+ /**
+ * 二型专项作业车
+ */
+ EM_TOLLS_VEHICLE_TYPE_OPERATION_VEHICLE2(22, "二型专项作业车"),
+ /**
+ * 三型专项作业车
+ */
+ EM_TOLLS_VEHICLE_TYPE_OPERATION_VEHICLE3(23, "三型专项作业车"),
+ /**
+ * 四型专项作业车
+ */
+ EM_TOLLS_VEHICLE_TYPE_OPERATION_VEHICLE4(24, "四型专项作业车"),
+ /**
+ * 五型专项作业车
+ */
+ EM_TOLLS_VEHICLE_TYPE_OPERATION_VEHICLE5(25, "五型专项作业车"),
+ /**
+ * 六型专项作业车
+ */
+ EM_TOLLS_VEHICLE_TYPE_OPERATION_VEHICLE6(26, "六型专项作业车");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_TOLLS_VEHICLE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TOLLS_VEHICLE_TYPE enumType : EM_TOLLS_VEHICLE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TOLLS_VEHICLE_TYPE enumType : EM_TOLLS_VEHICLE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_TOLLS_VEHICLE_TYPE getEnum(int value) {
+ for (EM_TOLLS_VEHICLE_TYPE e : EM_TOLLS_VEHICLE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_TOLLS_VEHICLE_TYPE.EM_TOLLS_VEHICLE_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TRACK_OBJECT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TRACK_OBJECT_TYPE.java
new file mode 100644
index 0000000..4b21525
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TRACK_OBJECT_TYPE.java
@@ -0,0 +1,75 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 目标类型
+* @origin autoTool
+* @date 2023/09/22 13:56:24
+*/
+public enum EM_TRACK_OBJECT_TYPE {
+ /**
+ * 未知
+ */
+ EM_TRACK_OBJECT_TYPE_UNKNOWN(-1, "未知"),
+ /**
+ * 目标
+ */
+ EM_TRACK_OBJECT_TYPE_FACE(0, "目标"),
+ /**
+ * 人体
+ */
+ EM_TRACK_OBJECT_TYPE_HUMAN(1, "人体"),
+ /**
+ * 机动车
+ */
+ EM_TRACK_OBJECT_TYPE_VECHILE(2, "机动车"),
+ /**
+ * 非机动车
+ */
+ EM_TRACK_OBJECT_TYPE_NOMOTOR(3, "非机动车");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_TRACK_OBJECT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_TRACK_OBJECT_TYPE enumType : EM_TRACK_OBJECT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_TRACK_OBJECT_TYPE enumType : EM_TRACK_OBJECT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_TRACK_OBJECT_TYPE getEnum(int value) {
+ for (EM_TRACK_OBJECT_TYPE e : EM_TRACK_OBJECT_TYPE.values()) {
+ if (e.getValue() == value){
+ return e;
+ }
+ }
+ return EM_TRACK_OBJECT_TYPE.EM_TRACK_OBJECT_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFICCAR_CAR_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFICCAR_CAR_TYPE.java
new file mode 100644
index 0000000..e7ac340
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFICCAR_CAR_TYPE.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 车辆类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_TRAFFICCAR_CAR_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_TRAFFICCAR_CAR_TYPE_UNKNOWN = 0;
+ /**
+ * 允许名单车辆
+ */
+ public static final int EM_TRAFFICCAR_CAR_TYPE_TRUST_CAR = 1;
+ /**
+ * 禁止名单车辆
+ */
+ public static final int EM_TRAFFICCAR_CAR_TYPE_SUSPICIOUS_CAR = 2;
+ /**
+ * 非允许名单且非禁止名单车辆
+ */
+ public static final int EM_TRAFFICCAR_CAR_TYPE_NORMAL_CAR = 3;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFICCAR_LANE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFICCAR_LANE_TYPE.java
new file mode 100644
index 0000000..d728f1b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFICCAR_LANE_TYPE.java
@@ -0,0 +1,46 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 车道类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_TRAFFICCAR_LANE_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_TRAFFICCAR_LANE_TYPE_UNKNOWN = 0;
+ /**
+ * 普通车道
+ */
+ public static final int EM_TRAFFICCAR_LANE_TYPE_NORMAL = 1;
+ /**
+ * 非机动车车道
+ */
+ public static final int EM_TRAFFICCAR_LANE_TYPE_NONMOTOR = 2;
+ /**
+ * 小型车车道
+ */
+ public static final int EM_TRAFFICCAR_LANE_TYPE_LIGHT_DUTY = 3;
+ /**
+ * 公交车车道
+ */
+ public static final int EM_TRAFFICCAR_LANE_TYPE_BUS = 4;
+ /**
+ * 应急车道
+ */
+ public static final int EM_TRAFFICCAR_LANE_TYPE_EMERGENCY = 5;
+ /**
+ * 危险品车道
+ */
+ public static final int EM_TRAFFICCAR_LANE_TYPE_DANGEROUS = 6;
+ /**
+ * 潮汐车道
+ */
+ public static final int EM_TRAFFICCAR_LANE_TYPE_TIDAL = 7;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFICCAR_MOVE_DIRECTION.java b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFICCAR_MOVE_DIRECTION.java
new file mode 100644
index 0000000..3c18985
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFICCAR_MOVE_DIRECTION.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 交通车辆行驶方向类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_TRAFFICCAR_MOVE_DIRECTION extends NetSDKLib.SdkStructure {
+ /**
+ * 未知的
+ */
+ public static final int EM_TRAFFICCAR_MOVE_DIRECTION_UNKNOWN = 0;
+ /**
+ * 直行
+ */
+ public static final int EM_TRAFFICCAR_MOVE_DIRECTION_STRAIGHT = 1;
+ /**
+ * 左转
+ */
+ public static final int EM_TRAFFICCAR_MOVE_DIRECTION_TURN_LEFT = 2;
+ /**
+ * 右转
+ */
+ public static final int EM_TRAFFICCAR_MOVE_DIRECTION_TURN_RIGHT = 3;
+ /**
+ * 掉头
+ */
+ public static final int EM_TRAFFICCAR_MOVE_DIRECTION_TURN_AROUND = 4;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFICSTROBE_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFICSTROBE_STATUS.java
new file mode 100644
index 0000000..0306a04
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFICSTROBE_STATUS.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 道闸栏状态
+ * @date 2020/12/15
+ */
+public enum EM_TRAFFICSTROBE_STATUS {
+ // 未知
+ NET_TRAFFICSTROBE_STATUS_UNKNOWN(0, "未知"),
+ // 道闸栏关闭
+ NET_TRAFFICSTROBE_STATUS_CLOSE_COMPLETE(1, "道闸栏关闭"),
+ // 道闸栏打开
+ NET_TRAFFICSTROBE_STATUS_OPEN_COMPLETE(2, "道闸栏打开"),
+ // 道闸栏未完全关闭
+ NET_TRAFFICSTROBE_STATUS_NOT_CLOSE_COMPLETE(3, "道闸栏未完全关闭"),
+ // 道闸栏未完全打开
+ NET_TRAFFICSTROBE_STATUS_NOT_OPEN_COMPLETE(4, "道闸栏未完全打开"),
+ // 道闸停止
+ NET_TRAFFICSTROBE_STATUS_NOT_STROBE_STOP(5, "道闸停止");
+
+ private int value;
+ private String note;
+
+ private EM_TRAFFICSTROBE_STATUS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TRAFFICSTROBE_STATUS enumType : EM_TRAFFICSTROBE_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TRAFFICSTROBE_STATUS enumType : EM_TRAFFICSTROBE_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_EVENT.java b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_EVENT.java
new file mode 100644
index 0000000..e60d357
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_EVENT.java
@@ -0,0 +1,58 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 设备状态
+ * @date 2021/09/02
+ */
+public enum EM_TRAFFIC_EVENT {
+ // 未知
+ EM_TRAFFIC_EVENT_UNKNOWN(0, "未知"),
+ // 交通事故
+ EM_TRAFFIC_EVENT_ACCIDENT(1, "交通事故"),
+ // 道路障碍
+ EM_TRAFFIC_EVENT_ROAD_BARRIERS(2, "道路障碍"),
+ // 路面积水
+ EM_TRAFFIC_EVENT_ROAD_AREAWATER(3, "路面积水"),
+ // 路面湿滑
+ EM_TRAFFIC_EVENT_ROAD_SLIPPERY(4, "路面湿滑"),
+ // 路面结冰
+ EM_TRAFFIC_EVENT_ROAD_ICY(5, "路面结冰"),
+ // 道路施工
+ EM_TRAFFIC_EVENT_ROAD_CONSTRUCTION(6, "道路施工");
+
+ private int value;
+ private String note;
+
+ private EM_TRAFFIC_EVENT(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TRAFFIC_EVENT enumType : EM_TRAFFIC_EVENT.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TRAFFIC_EVENT enumType : EM_TRAFFIC_EVENT.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_FLOW_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_FLOW_STATUS.java
new file mode 100644
index 0000000..8e95673
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_FLOW_STATUS.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 流量状态
+ *
+ * @author : 47040
+ * @since : Created in 2020/12/17 11:42
+ */
+public enum EM_TRAFFIC_FLOW_STATUS {
+ /**
+ * 未知
+ */
+ EM_TRAFFIC_FLOW_STATUS_UNKNOWN(0, "未知"),
+ /**
+ * 交通拥堵
+ */
+ EM_TRAFFIC_FLOW_STATUS_CONGESTION(1, "交通拥堵"),
+ /**
+ * 交通畅通
+ */
+ EM_TRAFFIC_FLOW_STATUS_SMOOTH(2, "交通畅通");
+
+ private final int value;
+ private final String note;
+
+ EM_TRAFFIC_FLOW_STATUS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TRAFFIC_FLOW_STATUS enumType : EM_TRAFFIC_FLOW_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TRAFFIC_FLOW_STATUS enumType : EM_TRAFFIC_FLOW_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_TRAFFIC_FLOW_STATUS getEnum(int value) {
+ for (EM_TRAFFIC_FLOW_STATUS e : EM_TRAFFIC_FLOW_STATUS.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_TRAFFIC_FLOW_STATUS.EM_TRAFFIC_FLOW_STATUS_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_LIGHT_DETECT_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_LIGHT_DETECT_STATE.java
new file mode 100644
index 0000000..64441ea
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_LIGHT_DETECT_STATE.java
@@ -0,0 +1,51 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @version 1.0
+ * @description 红绿灯状态
+ * @date 2020/11/07
+ */
+public enum EM_TRAFFIC_LIGHT_DETECT_STATE {
+ // 未知
+ EM_TRAFFIC_DETECT_STATE_UNKNOWN(-1, "未知"),
+ // 红灯
+ EM_TRAFFIC_DETECT_STATE_RED(0, "红灯"),
+ // 绿灯
+ EM_TRAFFIC_DETECT_STATE_GREEN(1, "绿灯");
+
+ private int value;
+ private String note;
+
+ private EM_TRAFFIC_LIGHT_DETECT_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TRAFFIC_LIGHT_DETECT_STATE enumType : EM_TRAFFIC_LIGHT_DETECT_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TRAFFIC_LIGHT_DETECT_STATE enumType : EM_TRAFFIC_LIGHT_DETECT_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_DEVICE_WORK_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_DEVICE_WORK_STATE.java
new file mode 100644
index 0000000..0021ceb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_DEVICE_WORK_STATE.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 智能交通外接设备工作状态
+ * @date 2020/12/14
+ */
+public enum EM_TRAFFIC_SNAP_DEVICE_WORK_STATE {
+ // 未知
+ EM_TRAFFIC_SNAP_DEVICE_WORK_STATE_UNKNOWN(-1, "未知"),
+ // 故障
+ EM_TRAFFIC_SNAP_DEVICE_WORK_STATE_FAULT(0, "故障"),
+ // 正常
+ EM_TRAFFIC_SNAP_DEVICE_WORK_STATE_NORMAL(1, "正常"),
+ // 关闭
+ EM_TRAFFIC_SNAP_DEVICE_WORK_STATE_CLOSE(2, "关闭");
+
+ private int value;
+ private String note;
+
+ private EM_TRAFFIC_SNAP_DEVICE_WORK_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TRAFFIC_SNAP_DEVICE_WORK_STATE enumType : EM_TRAFFIC_SNAP_DEVICE_WORK_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TRAFFIC_SNAP_DEVICE_WORK_STATE enumType : EM_TRAFFIC_SNAP_DEVICE_WORK_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_GROUND_SENSE_IN_STATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_GROUND_SENSE_IN_STATE_TYPE.java
new file mode 100644
index 0000000..cd2111c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_GROUND_SENSE_IN_STATE_TYPE.java
@@ -0,0 +1,54 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 智能交通地感输入状态
+ * @date 2020/12/14
+ */
+public enum EM_TRAFFIC_SNAP_GROUND_SENSE_IN_STATE_TYPE {
+ // 未知
+ EM_TRAFFIC_SNAP_GROUND_SENSE_IN_STATE_TYPE_UNKNOWN(-1, "未知"),
+ // 无车
+ EM_TRAFFIC_SNAP_GROUND_SENSE_IN_STATE_TYPE_NO_CAR(0, "无车"),
+ // 有车
+ EM_TRAFFIC_SNAP_GROUND_SENSE_IN_STATE_TYPE_CAR(1, "有车"),
+ // 不支持
+ EM_TRAFFIC_SNAP_GROUND_SENSE_IN_STATE_TYPE_NO_SUPPORT(255, "不支持");
+
+ private int value;
+ private String note;
+
+ private EM_TRAFFIC_SNAP_GROUND_SENSE_IN_STATE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TRAFFIC_SNAP_GROUND_SENSE_IN_STATE_TYPE enumType : EM_TRAFFIC_SNAP_GROUND_SENSE_IN_STATE_TYPE
+ .values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TRAFFIC_SNAP_GROUND_SENSE_IN_STATE_TYPE enumType : EM_TRAFFIC_SNAP_GROUND_SENSE_IN_STATE_TYPE
+ .values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_RADAR_COIL_MATCH_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_RADAR_COIL_MATCH_STATE.java
new file mode 100644
index 0000000..d977d90
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_RADAR_COIL_MATCH_STATE.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 智能交通雷达检测线圈匹配状态
+ * @date 2020/12/14
+ */
+public enum EM_TRAFFIC_SNAP_RADAR_COIL_MATCH_STATE {
+ // 未知
+ EM_TRAFFIC_SNAP_RADAR_COIL_MATCH_STATE_UNKNOWN(-1, "未知"),
+ // 不匹配
+ EM_TRAFFIC_SNAP_RADAR_COIL_MATCH_STATE_MISMATCH(0, "不匹配"),
+ // 匹配
+ EM_TRAFFIC_SNAP_RADAR_COIL_MATCH_STATE_MATCH(1, "匹配"),
+ // 不检测
+ EM_TRAFFIC_SNAP_RADAR_COIL_MATCH_STATE_NO_DETECT(2, "不检测");
+
+ private int value;
+ private String note;
+
+ private EM_TRAFFIC_SNAP_RADAR_COIL_MATCH_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TRAFFIC_SNAP_RADAR_COIL_MATCH_STATE enumType : EM_TRAFFIC_SNAP_RADAR_COIL_MATCH_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TRAFFIC_SNAP_RADAR_COIL_MATCH_STATE enumType : EM_TRAFFIC_SNAP_RADAR_COIL_MATCH_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_RADAR_DETECT_CAR_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_RADAR_DETECT_CAR_STATE.java
new file mode 100644
index 0000000..62aea65
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_RADAR_DETECT_CAR_STATE.java
@@ -0,0 +1,50 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 智能交通雷达检测汽车状态
+ * @date 2020/12/14
+ */
+public enum EM_TRAFFIC_SNAP_RADAR_DETECT_CAR_STATE {
+ // 未知
+ EM_TRAFFIC_SNAP_RADAR_DETECT_CAR_STATE_UNKNOWN(-1, "未知"),
+ // 无车
+ EM_TRAFFIC_SNAP_RADAR_DETECT_CAR_STATE_NO_CAR(0, "无车"),
+ // 有车
+ EM_TRAFFIC_SNAP_RADAR_DETECT_CAR_STATE_CAR(1, "有车");
+
+ private int value;
+ private String note;
+
+ private EM_TRAFFIC_SNAP_RADAR_DETECT_CAR_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TRAFFIC_SNAP_RADAR_DETECT_CAR_STATE enumType : EM_TRAFFIC_SNAP_RADAR_DETECT_CAR_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TRAFFIC_SNAP_RADAR_DETECT_CAR_STATE enumType : EM_TRAFFIC_SNAP_RADAR_DETECT_CAR_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE.java
new file mode 100644
index 0000000..1ef9ab0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE.java
@@ -0,0 +1,76 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 智能交通道闸上次开关闸原因
+ * @date 2020/12/14
+ */
+public enum EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE {
+ // 未知
+ EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_UNKNOWN(0, "未知"),
+ // 遥感器开闸
+ EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_CONTROL_SWITCH_ON(1, "遥感器开闸"),
+ // 遥感器关闸
+ EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_CONTROL_SWITCH_OFF(2, "遥感器关闸"),
+ // 地感LOOP1自动触发开闸
+ EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_LOOP_LOOP1_OPEN(3, "地感LOOP1自动触发开闸"),
+ // 地感LOOP1自动触发关闸
+ EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_LOOP_LOOP1_CLOSE(4, "地感LOOP1自动触发关闸"),
+ // 地感LOOP2自动触发开闸
+ EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_LOOP_LOOP2_OPEN(5, "地感LOOP2自动触发开闸"),
+ // 外部开关开闸
+ EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_EXTERNAL_SWITCH_OPEN(6, "外部开关开闸"),
+ // 外部开关关闸
+ EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_EXTERNAL_SWITCH_CLOSE(7, "外部开关关闸"),
+ // 内部开关开闸
+ EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_INTERNAL_SWITCH_OPEN(8, "内部开关开闸"),
+ // 内部开关关闸
+ EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_INTERNAL_SWITCH_CLOSE(9, "内部开关关闸"),
+ // 自动延时关闸
+ EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_AUTOMATIC_DELAY_CLOSE(10, "自动延时关闸"),
+ // 遇阻反弹开闸
+ EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_OBSTACLE_REBOUND_TO_OPEN(11, "遇阻反弹开闸"),
+ // 红外防砸开闸
+ EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_INFRARED_ANTI_SMASHING_OPEN(12, "红外防砸开闸"),
+ // 红外防砸关闸
+ EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_INFRARED_ANTI_SMASHING_CLOSE(13, "红外防砸关闸"),
+ // 压力波开闸
+ EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_PRESSURE_WAVE_OPEN(14, "压力波开闸"),
+ // 压力波关闸
+ EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_PRESSURE_WAVE_CLOSE(15, "压力波关闸");
+
+ private int value;
+ private String note;
+
+ private EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE enumType : EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE enumType : EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE.java
new file mode 100644
index 0000000..215f2cc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE.java
@@ -0,0 +1,108 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 智能交通道闸故障代码
+ * @date 2020/12/14
+ */
+public enum EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE {
+ // 未知
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_UNKNOWN(0, "未知"),
+ // 编码器信号异常
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_ENCODER_SIGNAL_EXCEPTION(1, "编码器信号异常"),
+ // 电机运行超时
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_MOTOR_RUNNING_OVERTIME(2, "电机运行超时"),
+ // 电机堵转
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_MOTOR_STALLING(3, "电机堵转"),
+ // 红外线被物体挡住
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_INFRARED_IS_BLOCKED_BY_OBJECTS(4, "红外线被物体挡住"),
+ // 压力波被物体阻挡
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_THE_PRESSURE_WAVE_IS_BLOCKED_BY_AN_OBJECT(5, "压力波被物体阻挡"),
+ // 逆变单元保护
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_INVERTER_UNIT_PROTECTION(6, "逆变单元保护"),
+ // 加速过流
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_ACCELERATED_OVERCURRENT(7, "加速过流"),
+ // 减速过流
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_DECELERATION_OVER_CURRENT(8, "减速过流"),
+ // 恒速过流
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_CONSTANT_SPEED_OVERCURRENT(9, "恒速过流"),
+ // 加速过压
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_ACCELERATED_OVERVOLTAGE(10, "加速过压"),
+ // 减速过压
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_DECELERATION_OVERPRESSURE(11, "减速过压"),
+ // 恒速过压
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_CONSTANT_SPEED_OVERVOLTAGE(12, "恒速过压"),
+ // 制动电源异常
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_BRAKING_POWER_SUPPLY_EXCEPTION(13, "制动电源异常"),
+ // 欠压故障
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_UNDER_VOLTAGE(14, "欠压故障"),
+ // 变频器过载
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_FREQUENCY_CONVERTER_OVERLOAD(15, "变频器过载"),
+ // 电机过载
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_MOTOR_OVERLOAD(16, "电机过载"),
+ // 输入缺相
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_INPUT_PHASE_LOSS(17, "输入缺相"),
+ // 输出缺相
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_OUTPUT_PHASE_LOSS(18, "输出缺相"),
+ // 模块过热
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_MODULE_OVERHEAT(19, "模块过热"),
+ // 外部故障
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_EXTERNAL_FAULT(20, "外部故障"),
+ // 继电器异常
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_RELAY_EXCEPTION(21, "继电器异常"),
+ // 电流检测异常
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_CURRENT_DETECTION_EXCEPTION(22, "电流检测异常"),
+ // 电机调谐异常
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_MOTOR_TUNING_EXCEPTION(23, "电机调谐异常"),
+ // EEPROM 读写异常
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_EEPROM_READ_WRITE_EXCEPTION(24, "EEPROM 读写异常"),
+ // 变频器硬件故障
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_INVERTER_HARDWARE_FAILURE(25, "变频器硬件故障"),
+ // 电机对地短路
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_MOTOR_SHORT_CIRCUIT_TO_GROUND(26, "电机对地短路"),
+ // 运行超时
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_RUN_TIMEOUT(27, "运行超时"),
+ // 开闸运行时遇阻
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_THE_GATE_IS_BLOCKED(28, "开闸运行时遇阻"),
+ // 传感器故障
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_SENSOR(29, "传感器故障"),
+ // 限位故障
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_LIMIT(30, "限位故障"),
+ // 内部通讯故障
+ EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_INTERNAL_COMMUNICATION_FAULT(31, "内部通讯故障");
+
+ private int value;
+ private String note;
+
+ private EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE enumType : EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE enumType : EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_STROBE_IN_STATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_STROBE_IN_STATE_TYPE.java
new file mode 100644
index 0000000..f466ed4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_STROBE_IN_STATE_TYPE.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 智能交通道闸输入状态
+ * @date 2020/12/14
+ */
+public enum EM_TRAFFIC_SNAP_STROBE_IN_STATE_TYPE {
+ // 未知
+ EM_TRAFFIC_SNAP_STROBE_IN_STATE_TYPE_UNKNOWN(-1, "未知"),
+ // 断开
+ EM_TRAFFIC_SNAP_STROBE_IN_STATE_TYPE_TO_BREAK_OFF(0, "断开"),
+ // 闭合
+ EM_TRAFFIC_SNAP_STROBE_IN_STATE_TYPE_CLOSE(1, "闭合"),
+ // 不支持
+ EM_TRAFFIC_SNAP_STROBE_IN_STATE_TYPE_NO_SUPPORT(255, "不支持");
+
+ private int value;
+ private String note;
+
+ private EM_TRAFFIC_SNAP_STROBE_IN_STATE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TRAFFIC_SNAP_STROBE_IN_STATE_TYPE enumType : EM_TRAFFIC_SNAP_STROBE_IN_STATE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TRAFFIC_SNAP_STROBE_IN_STATE_TYPE enumType : EM_TRAFFIC_SNAP_STROBE_IN_STATE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_STROBE_RAIL_STATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_STROBE_RAIL_STATE_TYPE.java
new file mode 100644
index 0000000..d615fe6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_STROBE_RAIL_STATE_TYPE.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 智能交通栏杆状态
+ * @date 2020/12/14
+ */
+public enum EM_TRAFFIC_SNAP_STROBE_RAIL_STATE_TYPE {
+ // 未知
+ TRAFFIC_SNAP_STROBE_RAIL_STATE_TYPE_UNKNOWN(-1, "未知"),
+ // 正常
+ TRAFFIC_SNAP_STROBE_RAIL_STATE_TYPE_NORMAL(0, "正常"),
+ // 脱落
+ TRAFFIC_SNAP_STROBE_RAIL_STATE_TYPE_FALL_OFF(1, "脱落"),
+ // 不支持
+ EM_TRAFFIC_SNAP_STROBE_IN_STATE_TYPE_NO_SUPPORT(255, "不支持");
+
+ private int value;
+ private String note;
+
+ private EM_TRAFFIC_SNAP_STROBE_RAIL_STATE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TRAFFIC_SNAP_STROBE_RAIL_STATE_TYPE enumType : EM_TRAFFIC_SNAP_STROBE_RAIL_STATE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TRAFFIC_SNAP_STROBE_RAIL_STATE_TYPE enumType : EM_TRAFFIC_SNAP_STROBE_RAIL_STATE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_STROBE_RUN_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_STROBE_RUN_STATE.java
new file mode 100644
index 0000000..eae38ec
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TRAFFIC_SNAP_STROBE_RUN_STATE.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 智能交通道闸运行状态
+ * @date 2020/12/14
+ */
+public enum EM_TRAFFIC_SNAP_STROBE_RUN_STATE {
+ // 未知
+ EM_TRAFFIC_SNAP_STROBE_RUN_STATE_UNKNOWN(-1, "未知"),
+ // 关
+ EM_TRAFFIC_SNAP_STROBE_RUN_STATE_CLOSE(0, "关"),
+ // 开
+ EM_TRAFFIC_SNAP_STROBE_RUN_STATE_OPEN(1, "开"),
+ // 正在开
+ EM_TRAFFIC_SNAP_STROBE_RUN_STATE_OPENING(2, "正在开"),
+ // 正在关
+ EM_TRAFFIC_SNAP_STROBE_RUN_STATE_CLOSING(3, "正在关"),
+ // 停
+ EM_TRAFFIC_SNAP_STROBE_RUN_STATE_STOP(4, "停");
+
+ private int value;
+ private String note;
+
+ private EM_TRAFFIC_SNAP_STROBE_RUN_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TRAFFIC_SNAP_STROBE_RUN_STATE enumType : EM_TRAFFIC_SNAP_STROBE_RUN_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TRAFFIC_SNAP_STROBE_RUN_STATE enumType : EM_TRAFFIC_SNAP_STROBE_RUN_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TRANSMIT_PROXY_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TRANSMIT_PROXY_MODE.java
new file mode 100644
index 0000000..f3861e3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TRANSMIT_PROXY_MODE.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+子连接连接方式
+*/
+public enum EM_TRANSMIT_PROXY_MODE {
+/**
+/< 本地代理
+*/
+ EM_TRANSMIT_PROXY_MODE_LOCAL(1, "/< 本地代理"),
+/**
+/< 级联代理
+*/
+ EM_TRANSMIT_PROXY_MODE_CASCADE(2, "/< 级联代理");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_TRANSMIT_PROXY_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_TRANSMIT_PROXY_MODE enumType : EM_TRANSMIT_PROXY_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_TRANSMIT_PROXY_MODE enumType : EM_TRANSMIT_PROXY_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return 0;
+ }
+
+public static EM_TRANSMIT_PROXY_MODE getEnum(int value) {
+ for (EM_TRANSMIT_PROXY_MODE e : EM_TRANSMIT_PROXY_MODE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_TRANSMIT_PROXY_MODE.EM_TRANSMIT_PROXY_MODE_LOCAL;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TRANSMIT_PROXY_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TRANSMIT_PROXY_TYPE.java
new file mode 100644
index 0000000..fd04e95
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TRANSMIT_PROXY_TYPE.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+子连接连接方式
+*/
+public enum EM_TRANSMIT_PROXY_TYPE {
+/**
+/< Web代理。由服务端自动获取web端口,客户端不需要关心
+*/
+ EM_TRANSMIT_PROXY_TYPE_WEB(1, "/< Web代理。由服务端自动获取web端口,客户端不需要关心"),
+/**
+/< 通用端口代理。要求客户端知道服务的端口
+*/
+ EM_TRANSMIT_PROXY_TYPE_GENERAL(2, "/< 通用端口代理。要求客户端知道服务的端口");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_TRANSMIT_PROXY_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_TRANSMIT_PROXY_TYPE enumType : EM_TRANSMIT_PROXY_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_TRANSMIT_PROXY_TYPE enumType : EM_TRANSMIT_PROXY_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return 0;
+ }
+
+public static EM_TRANSMIT_PROXY_TYPE getEnum(int value) {
+ for (EM_TRANSMIT_PROXY_TYPE e : EM_TRANSMIT_PROXY_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_TRANSMIT_PROXY_TYPE.EM_TRANSMIT_PROXY_TYPE_WEB;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TRAVELCODE_COLOR_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TRAVELCODE_COLOR_STATE.java
new file mode 100644
index 0000000..c9be79e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TRAVELCODE_COLOR_STATE.java
@@ -0,0 +1,10 @@
+package com.netsdk.lib.enumeration;
+
+public enum EM_TRAVELCODE_COLOR_STATE {
+ EM_TRAVELCODE_COLOR_STATE_UNKNOWN, //未知
+ EM_TRAVELCODE_COLOR_STATE_RED, //红码
+ EM_TRAVELCODE_COLOR_STATE_GREEN, //绿码
+ EM_TRAVELCODE_COLOR_STATE_YELLOW, //黄码
+ EM_TRAVELCODE_COLOR_STATE_ORANGE; //橙码
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TRAVEL_CODE_COLOR.java b/src/main/java/com/netsdk/lib/enumeration/EM_TRAVEL_CODE_COLOR.java
new file mode 100644
index 0000000..814f057
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TRAVEL_CODE_COLOR.java
@@ -0,0 +1,54 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 行程码状态
+ * @date 2021/08/15
+ */
+public enum EM_TRAVEL_CODE_COLOR {
+ // 未知
+ EM_TRAVEL_CODE_COLOR_UNKNOWN(0, "未知"),
+ // 红
+ EM_TRAVEL_CODE_COLOR_RED(1, "红"),
+ // 绿
+ EM_TRAVEL_CODE_COLOR_GREEN(2, "绿"),
+ // 黄
+ EM_TRAVEL_CODE_COLOR_YELLOW(3, "黄"),
+ // 橙
+ EM_TRAVEL_CODE_COLOR_ORANGE(4, "橙");
+
+ private int value;
+ private String note;
+
+ private EM_TRAVEL_CODE_COLOR(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TRAVEL_CODE_COLOR enumType : EM_TRAVEL_CODE_COLOR.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TRAVEL_CODE_COLOR enumType : EM_TRAVEL_CODE_COLOR.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TRFAFFIC_LIGHT_SOURCE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TRFAFFIC_LIGHT_SOURCE.java
new file mode 100644
index 0000000..5fcddba
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TRFAFFIC_LIGHT_SOURCE.java
@@ -0,0 +1,61 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 红绿灯触发源
+ *
+ * @author : 47040
+ * @since : Created in 2020/8/29 16:43
+ */
+public enum EM_TRFAFFIC_LIGHT_SOURCE {
+ /**
+ * 未知
+ */
+ EM_TRFAFFIC_LIGHT_SOURCE_UNKNOWN(0, "未知"),
+ /**
+ * 信号检测器
+ */
+ EM_TRFAFFIC_LIGHT_SOURCE_SIGNAL(1, "信号检测器"),
+ /**
+ * DSP(算法检测)
+ */
+ EM_TRFAFFIC_LIGHT_SOURCE_DSP(2, "DSP(算法检测)"),
+ /**
+ * 网络信号检测器
+ */
+ EM_TRFAFFIC_LIGHT_SOURCE_NET_SIGNAL(3, "网络信号检测器");
+
+ private int value;
+ private String note;
+
+ EM_TRFAFFIC_LIGHT_SOURCE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TRFAFFIC_LIGHT_SOURCE enumType : EM_TRFAFFIC_LIGHT_SOURCE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TRFAFFIC_LIGHT_SOURCE enumType : EM_TRFAFFIC_LIGHT_SOURCE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TRFAFFIC_LIGHT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TRFAFFIC_LIGHT_TYPE.java
new file mode 100644
index 0000000..ab7b678
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TRFAFFIC_LIGHT_TYPE.java
@@ -0,0 +1,60 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 交通灯类型
+ * @author : 47040
+ * @since : Created in 2020/8/29 16:49
+ */
+public enum EM_TRFAFFIC_LIGHT_TYPE {
+ /**
+ * 未知
+ */
+ EM_TRFAFFIC_LIGHT_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 红灯
+ */
+ EM_TRFAFFIC_LIGHT_TYPE_RED(1, "红灯"),
+ /**
+ * 黄灯
+ */
+ EM_TRFAFFIC_LIGHT_TYPE_YELLOW(2, "黄灯"),
+ /**
+ * 绿灯
+ */
+ EM_TRFAFFIC_LIGHT_TYPE_GREEN(3, "绿灯");
+
+ private int value;
+ private String note;
+
+ EM_TRFAFFIC_LIGHT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TRFAFFIC_LIGHT_TYPE enumType : EM_TRFAFFIC_LIGHT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TRFAFFIC_LIGHT_TYPE enumType : EM_TRFAFFIC_LIGHT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TRIGGER_OCCUR_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TRIGGER_OCCUR_TYPE.java
new file mode 100644
index 0000000..e70caf8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TRIGGER_OCCUR_TYPE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 触发时机类型
+* @date 2022/06/07 09:46:00
+*/
+public enum EM_TRIGGER_OCCUR_TYPE {
+/**
+未知
+*/
+ EM_TRIGGER_OCCUR_TYPE_UNKNOWN(-1, "未知"),
+/**
+进入
+*/
+ EM_TRIGGER_OCCUR_TYPE_ENTER(0, "进入"),
+/**
+离开
+*/
+ EM_TRIGGER_OCCUR_TYPE_LEAVE(1, "离开");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_TRIGGER_OCCUR_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_TRIGGER_OCCUR_TYPE enumType : EM_TRIGGER_OCCUR_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_TRIGGER_OCCUR_TYPE enumType : EM_TRIGGER_OCCUR_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_TRIGGER_OCCUR_TYPE getEnum(int value) {
+ for (EM_TRIGGER_OCCUR_TYPE e : EM_TRIGGER_OCCUR_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_TRIGGER_OCCUR_TYPE.EM_TRIGGER_OCCUR_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TRIGGER_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TRIGGER_TYPE.java
new file mode 100644
index 0000000..1fc2c07
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TRIGGER_TYPE.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author : 47040
+ * @since : Created in 2020/8/19 10:21
+ */
+public enum EM_TRIGGER_TYPE {
+ /**
+ * 未知类型
+ */
+ EM_TRIGGER_TYPE_UNKNOWN(-1, "未知类型"),
+ /**
+ * 车检器
+ */
+ EM_TRIGGER_TYPE_CAR_INSPECTION_DEV(0, "车检器"),// 车检器
+ /**
+ * 雷达
+ */
+ EM_TRIGGER_TYPE_DADAR(1, "雷达"),
+ /**
+ * 视频
+ */
+ EM_TRIGGER_TYPE_VIDEO(2, "视频");
+
+ private int value;
+ private String note;
+
+ private EM_TRIGGER_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_TRIGGER_TYPE enumType : EM_TRIGGER_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_TRIGGER_TYPE enumType : EM_TRIGGER_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote()) ) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_TROUSERS_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_TROUSERS_TYPE.java
new file mode 100644
index 0000000..0b513e0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_TROUSERS_TYPE.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 裤子类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 19:35
+ */
+public class EM_TROUSERS_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_TROUSERS_TYPE_UNKNOWN = 0;
+ /**
+ * 长裤
+ */
+ public static final int EM_TROUSERS_TYPE_TROUSERS = 1;
+ /**
+ * 短裤
+ */
+ public static final int EM_TROUSERS_TYPE_SHORTS = 2;
+ /**
+ * 裙子
+ */
+ public static final int EM_TROUSERS_TYPE_SKIRT = 3;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_UNIFIED_COLOR_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_UNIFIED_COLOR_TYPE.java
new file mode 100644
index 0000000..008dcf3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_UNIFIED_COLOR_TYPE.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description
+ * @date 2021/8/24 14:40
+ */
+public class EM_UNIFIED_COLOR_TYPE {
+ public static final int EM_UNIFIED_COLOR_TRANSPARENT = -1; // 透明
+ public static final int EM_UNIFIED_COLOR_UNKNOWN = 0; // 未知
+ public static final int EM_UNIFIED_COLOR_WHITE = 1; // 白色
+ public static final int EM_UNIFIED_COLOR_ORANGE = 2; // 橙色
+ public static final int EM_UNIFIED_COLOR_PINK = 3; // 粉色
+ public static final int EM_UNIFIED_COLOR_BLACK = 4; // 黑色
+ public static final int EM_UNIFIED_COLOR_RED = 5; // 红色
+ public static final int EM_UNIFIED_COLOR_YELLOW = 6; // 黄色
+ public static final int EM_UNIFIED_COLOR_GRAY = 7; // 灰色
+ public static final int EM_UNIFIED_COLOR_BLUE = 8; // 蓝色
+ public static final int EM_UNIFIED_COLOR_GREEN = 9; // 绿色
+ public static final int EM_UNIFIED_COLOR_PURPLE = 10; // 紫色
+ public static final int EM_UNIFIED_COLOR_BROWN = 11; // 棕色
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_UNIFORM_STYLE.java b/src/main/java/com/netsdk/lib/enumeration/EM_UNIFORM_STYLE.java
new file mode 100644
index 0000000..7f8dde5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_UNIFORM_STYLE.java
@@ -0,0 +1,12 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 制服样式
+ * @author 29779
+ *
+ */
+public class EM_UNIFORM_STYLE {
+ public static final int EM_UNIFORM_STYLE_UNKNOWN = 0; // 未知
+ public static final int EM_UNIFORM_STYLE_POLICE = 1; // 警服
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_UPDATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_UPDATE_TYPE.java
new file mode 100644
index 0000000..dca1e34
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_UPDATE_TYPE.java
@@ -0,0 +1,68 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 更新类型
+ * @date 2022/05/11 13:27:51
+ */
+public enum EM_UPDATE_TYPE {
+ /**
+ * 未知
+ */
+ EM_UPDATE_TYPE_UNKNOWN(-1, "未知"),
+ /**
+ * 删除区域或车位
+ */
+ EM_UPDATE_TYPE_DELETE(0, "删除区域或车位"),
+ /**
+ * 修改区域或车位
+ */
+ EM_UPDATE_TYPE_MODIFY(1, "修改区域或车位"),
+ /**
+ * 增加区域或车位
+ */
+ EM_UPDATE_TYPE_ADD(2, "增加区域或车位");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_UPDATE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_UPDATE_TYPE enumType : EM_UPDATE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_UPDATE_TYPE enumType : EM_UPDATE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+ public static EM_UPDATE_TYPE getEnum(int value) {
+ for (EM_UPDATE_TYPE e : EM_UPDATE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_UPDATE_TYPE.EM_UPDATE_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_UPLOAD_FLAG.java b/src/main/java/com/netsdk/lib/enumeration/EM_UPLOAD_FLAG.java
new file mode 100644
index 0000000..a9d3de4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_UPLOAD_FLAG.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 上传标识
+ * @date 2021/2/22
+ */
+public enum EM_UPLOAD_FLAG {
+ /** 未知 */
+ EM_UPLOAD_FLAG_UNKNOWN,
+ /** 成功 */
+ EM_UPLOAD_FLAG_SUCCEED,
+ /** 失败 */
+ EM_UPLOAD_FLAG_FAILED;
+
+ public static EM_UPLOAD_FLAG getUploadFlag(int flag) {
+ for (EM_UPLOAD_FLAG upload : EM_UPLOAD_FLAG.values()) {
+ if (upload.ordinal() == flag) {
+ return upload;
+ }
+ }
+ return EM_UPLOAD_FLAG_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_UPPER_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_UPPER_TYPE.java
new file mode 100644
index 0000000..9f314d6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_UPPER_TYPE.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description 上衣类型
+ * @date 2021/8/24 15:15
+ */
+public enum EM_UPPER_TYPE {
+ EM_UPPER_UNKNOWN, // 未知
+ EM_UPPER_LONGCOAT, // 1-长款大衣
+ EM_UPPER_JACKETORJEANS, // 2-夹克及牛仔服
+ EM_UPPER_TSHIRT, // 3-T恤
+ EM_UPPER_SPORTSWEAR, // 4-运动服
+ EM_UPPER_DOWNJACKET, // 5-羽绒服
+ EM_UPPER_SHIRT, // 6-衬衫
+ EM_UPPER_DRESS, // 7-连衣裙
+ EM_UPPER_SUIT; // 8-西装
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_USERMANAGER_IMAGE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_USERMANAGER_IMAGE_TYPE.java
new file mode 100644
index 0000000..1564217
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_USERMANAGER_IMAGE_TYPE.java
@@ -0,0 +1,83 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 图片类型
+* @origin autoTool
+* @date 2023/07/28 14:28:56
+*/
+public enum EM_USERMANAGER_IMAGE_TYPE {
+ /**
+ * 未知
+ */
+ EM_USERMANAGER_IMAGE_TYPE_UNKNOWN(-1, "未知"),
+ /**
+ * 本地目标库图
+ */
+ EM_USERMANAGER_IMAGE_TYPE_LOCAL(0, "本地目标库图"),
+ /**
+ * 拍摄场景图
+ */
+ EM_USERMANAGER_IMAGE_TYPE_SCENE(1, "拍摄场景图"),
+ /**
+ * 目标抠图
+ */
+ EM_USERMANAGER_IMAGE_TYPE_FACE(2, "目标抠图"),
+ /**
+ * 红外抓图
+ */
+ EM_USERMANAGER_IMAGE_TYPE_INFRARED(3, "红外抓图"),
+ /**
+ * 陪同人员抓图
+ */
+ EM_USERMANAGER_IMAGE_TYPE_ENTOURAGE(4, "陪同人员抓图"),
+ /**
+ * 热图
+ */
+ EM_USERMANAGER_IMAGE_TYPE_THERMOGRAM(5, "热图");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_USERMANAGER_IMAGE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_USERMANAGER_IMAGE_TYPE enumType : EM_USERMANAGER_IMAGE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_USERMANAGER_IMAGE_TYPE enumType : EM_USERMANAGER_IMAGE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_USERMANAGER_IMAGE_TYPE getEnum(int value) {
+ for (EM_USERMANAGER_IMAGE_TYPE e : EM_USERMANAGER_IMAGE_TYPE.values()) {
+ if (e.getValue() == value){
+ return e;
+ }
+ }
+ return EM_USERMANAGER_IMAGE_TYPE.EM_USERMANAGER_IMAGE_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_USER_PASS_DATA_COUNT_CLEAR_PERIOD.java b/src/main/java/com/netsdk/lib/enumeration/EM_USER_PASS_DATA_COUNT_CLEAR_PERIOD.java
new file mode 100644
index 0000000..3575aa9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_USER_PASS_DATA_COUNT_CLEAR_PERIOD.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description 定期人数清除周期
+ * @date 2022/5/27 9:54
+ */
+public enum EM_USER_PASS_DATA_COUNT_CLEAR_PERIOD {
+ EM_USER_PASS_DATA_COUNT_CLEAR_PERIOD_UNKNOWN(0, "未知"),// 未知
+ EM_USER_PASS_DATA_COUNT_CLEAR_PERIOD_HOUR(1, "按小时"),// 按小时
+ EM_USER_PASS_DATA_COUNT_CLEAR_PERIOD_DAILY(2, "按天");// 按天, 按照每天00点清除
+
+ private int value;
+ private String note;
+
+ EM_USER_PASS_DATA_COUNT_CLEAR_PERIOD(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_USER_PASS_DATA_COUNT_CLEAR_PERIOD enumType : EM_USER_PASS_DATA_COUNT_CLEAR_PERIOD.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_USER_PASS_DATA_COUNT_CLEAR_PERIOD enumType : EM_USER_PASS_DATA_COUNT_CLEAR_PERIOD.values()) {
+ if (givenNote.equals(enumType.getNote()) ) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_USER_PASS_DATA_COUNT_CLEAR_PERIOD getEnum(int value) {
+ for (EM_USER_PASS_DATA_COUNT_CLEAR_PERIOD e : EM_USER_PASS_DATA_COUNT_CLEAR_PERIOD.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_USER_PASS_DATA_COUNT_CLEAR_PERIOD.EM_USER_PASS_DATA_COUNT_CLEAR_PERIOD_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_USER_PASS_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_USER_PASS_TYPE.java
new file mode 100644
index 0000000..0b2015e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_USER_PASS_TYPE.java
@@ -0,0 +1,54 @@
+package com.netsdk.lib.enumeration;
+/**
+ * @author : 291189
+ * @description : 进出方向
+ * @since : Created in 2022/05/26
+ */
+public enum EM_USER_PASS_TYPE {
+ EM_USER_PASS_TYPE_UNKNOWN(0, "未知"),
+ EM_USER_PASS_TYPE_ENTRY(1, "进门"),// 进门
+ EM_USER_PASS_TYPE_EXIT(2, "出门");// 出门
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_USER_PASS_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_USER_PASS_TYPE enumType : EM_USER_PASS_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_USER_PASS_TYPE enumType : EM_USER_PASS_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_USER_PASS_TYPE getEnum(int value) {
+ for (EM_USER_PASS_TYPE e : EM_USER_PASS_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_USER_PASS_TYPE.EM_USER_PASS_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_USE_PROPERTY_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_USE_PROPERTY_TYPE.java
new file mode 100644
index 0000000..ae711f2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_USE_PROPERTY_TYPE.java
@@ -0,0 +1,70 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 使用性质
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_USE_PROPERTY_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 非营运
+ */
+ public static final int EM_USE_PROPERTY_NONOPERATING = 0;
+ /**
+ * 公路客运,旅游客运
+ */
+ public static final int EM_USE_PROPERTY_HIGWAY = 1;
+ /**
+ * 公交客运
+ */
+ public static final int EM_USE_PROPERTY_BUS = 2;
+ /**
+ * 出租客运
+ */
+ public static final int EM_USE_PROPERTY_TAXI = 3;
+ /**
+ * 货运
+ */
+ public static final int EM_USE_PROPERTY_FREIGHT = 4;
+ /**
+ * 租赁
+ */
+ public static final int EM_USE_PROPERTY_LEASE = 5;
+ /**
+ * 警用,消防,救护,工程救险
+ */
+ public static final int EM_USE_PROPERTY_SECURITY = 6;
+ /**
+ * 教练
+ */
+ public static final int EM_USE_PROPERTY_COACH = 7;
+ /**
+ * 幼儿校车,小学生校车,其他校车
+ */
+ public static final int EM_USE_PROPERTY_SCHOOLBUS = 8;
+ /**
+ * 危化品运输
+ */
+ public static final int EM_USE_PROPERTY_FOR_DANGE_VEHICLE = 9;
+ /**
+ * 其他
+ */
+ public static final int EM_USE_PROPERTY_OTHER = 10;
+ /**
+ * 网约车
+ */
+ public static final int EM_USE_PROPERTY_ONLINE_CAR_HAILING = 11;
+ /**
+ * 非机动外卖车
+ */
+ public static final int EM_USE_PROPERTY_NON_MOTORIZED_TAKE_OUT_VEHICLE = 12;
+ /**
+ * 非机动快递车
+ */
+ public static final int EM_USE_PROPERTY_NON_MOTORIZED_EXPRESS_CAR = 13;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_VAOBJECT_ROADCONE_ACTION.java b/src/main/java/com/netsdk/lib/enumeration/EM_VAOBJECT_ROADCONE_ACTION.java
new file mode 100644
index 0000000..8180bb4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_VAOBJECT_ROADCONE_ACTION.java
@@ -0,0 +1,79 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 物体动作支持类型
+*/
+public enum EM_VAOBJECT_ROADCONE_ACTION
+{
+ /**
+ * 未知类型
+ */
+ EM_VAOBJECT_ROADCONE_ACTION_UNKNOWN(0, "未知类型"),
+ /**
+ * 首次出现在检测区域或者跟踪时物理分离动作中尚未确认的新物体
+ */
+ EM_VAOBJECT_ROADCONE_ACTION_APPEAR(1, "首次出现在检测区域或者跟踪时物理分离动作中尚未确认的新物体"),
+ /**
+ * 正在运动
+ */
+ EM_VAOBJECT_ROADCONE_ACTION_MOVE(2, "正在运动"),
+ /**
+ * 物体停止运动
+ */
+ EM_VAOBJECT_ROADCONE_ACTION_STAY(3, "物体停止运动"),
+ /**
+ * 物体从原来的区域移除,或者被遮盖,或者跟踪失败
+ */
+ EM_VAOBJECT_ROADCONE_ACTION_REMOVE(4, "物体从原来的区域移除,或者被遮盖,或者跟踪失败"),
+ /**
+ * 运动到跟踪区域之外,或者达到了算法跟踪物体的上限而被清除,消失的物体ID将不再出现
+ */
+ EM_VAOBJECT_ROADCONE_ACTION_DISAPPEAR(5, "运动到跟踪区域之外,或者达到了算法跟踪物体的上限而被清除,消失的物体ID将不再出现"),
+ /**
+ * 从其他物体中分离出来
+ */
+ EM_VAOBJECT_ROADCONE_ACTION_SPLIT(6, "从其他物体中分离出来"),
+ /**
+ * 合并到其他物体
+ */
+ EM_VAOBJECT_ROADCONE_ACTION_MERGE(7, "合并到其他物体"),
+ /**
+ * 暂时使用的新的ID
+ */
+ EM_VAOBJECT_ROADCONE_ACTION_RENAME(8, "暂时使用的新的ID");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_VAOBJECT_ROADCONE_ACTION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_VAOBJECT_ROADCONE_ACTION enumType : EM_VAOBJECT_ROADCONE_ACTION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_VAOBJECT_ROADCONE_ACTION enumType : EM_VAOBJECT_ROADCONE_ACTION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_VAULT_DOORSTATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_VAULT_DOORSTATE.java
new file mode 100644
index 0000000..382f85b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_VAULT_DOORSTATE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 门状态
+* @date 2022/08/10 11:46:30
+*/
+public enum EM_VAULT_DOORSTATE {
+/**
+未知
+*/
+ EM_VAULT_DOORSTATE_UNKNOWN(0, "未知"),
+/**
+关门
+*/
+ EM_VAULT_DOORSTATE_ISCLOSED(1, "关门"),
+/**
+开门
+*/
+ EM_VAULT_DOORSTATE_ISOPENED(2, "开门");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_VAULT_DOORSTATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_VAULT_DOORSTATE enumType : EM_VAULT_DOORSTATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_VAULT_DOORSTATE enumType : EM_VAULT_DOORSTATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_VAULT_DOORSTATE getEnum(int value) {
+ for (EM_VAULT_DOORSTATE e : EM_VAULT_DOORSTATE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_VAULT_DOORSTATE.EM_VAULT_DOORSTATE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_VAULT_LOCKSTATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_VAULT_LOCKSTATE.java
new file mode 100644
index 0000000..cec50b6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_VAULT_LOCKSTATE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 锁状态
+* @date 2022/08/10 11:46:30
+*/
+public enum EM_VAULT_LOCKSTATE {
+/**
+未知
+*/
+ EM_VAULT_LOCKSTATE_UNKNOWN(0, "未知"),
+/**
+关锁
+*/
+ EM_VAULT_LOCKSTATE_ISCLOSED(1, "关锁"),
+/**
+开锁
+*/
+ EM_VAULT_LOCKSTATE_ISOPENED(2, "开锁");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_VAULT_LOCKSTATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_VAULT_LOCKSTATE enumType : EM_VAULT_LOCKSTATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_VAULT_LOCKSTATE enumType : EM_VAULT_LOCKSTATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_VAULT_LOCKSTATE getEnum(int value) {
+ for (EM_VAULT_LOCKSTATE e : EM_VAULT_LOCKSTATE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_VAULT_LOCKSTATE.EM_VAULT_LOCKSTATE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLEINOUT_CAR_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLEINOUT_CAR_TYPE.java
new file mode 100644
index 0000000..c3c8b6d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLEINOUT_CAR_TYPE.java
@@ -0,0 +1,81 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 车辆类型
+ *
+ * @author : 47040
+ * @since : Created in 2020/12/17 13:50
+ */
+public enum EM_VEHICLEINOUT_CAR_TYPE {
+ /**
+ * 未知类型
+ */
+ EM_VEHICLEINOUT_CAR_TYPE_UNKNOWN(0, "未知类型"),
+ /**
+ * 小型客车
+ */
+ EM_VEHICLEINOUT_CAR_TYPE_CAR(1, "小型客车"),
+ /**
+ * 面包车
+ */
+ EM_VEHICLEINOUT_CAR_TYPE_VAN(2, "面包车"),
+ /**
+ * 货车
+ */
+ EM_VEHICLEINOUT_CAR_TYPE_TRUCK(3, "货车"),
+ /**
+ * 公交车
+ */
+ EM_VEHICLEINOUT_CAR_TYPE_BUS(4, "公交车"),
+ /**
+ * 大货车
+ */
+ EM_VEHICLEINOUT_CAR_TYPE_LORRY(5, "大货车"),
+ /**
+ * 大车
+ */
+ EM_VEHICLEINOUT_CAR_TYPE_CART(6, "大车");
+
+ private final int value;
+ private final String note;
+
+ EM_VEHICLEINOUT_CAR_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_VEHICLEINOUT_CAR_TYPE enumType : EM_VEHICLEINOUT_CAR_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_VEHICLEINOUT_CAR_TYPE enumType : EM_VEHICLEINOUT_CAR_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_VEHICLEINOUT_CAR_TYPE getEnum(int value) {
+ for (EM_VEHICLEINOUT_CAR_TYPE e : EM_VEHICLEINOUT_CAR_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_VEHICLEINOUT_CAR_TYPE.EM_VEHICLEINOUT_CAR_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLE_DRIVING_DIRECTION.java b/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLE_DRIVING_DIRECTION.java
new file mode 100644
index 0000000..c7646e9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLE_DRIVING_DIRECTION.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author : 260611
+ * @description : 车辆行驶方向(相对车道方向)
+ * @since : Created in 2022/03/01 14:55
+ */
+
+public enum EM_VEHICLE_DRIVING_DIRECTION {
+ /**
+ * 未知
+ */
+ EM_VEHICLE_DRIVING_DIRECTION_UNKNOWN(0, "未知"),
+ /**
+ * 正向
+ */
+ EM_VEHICLE_DRIVING_DIRECTION_OBVERSE(1, "正向"),
+ /**
+ * 反向
+ */
+ EM_VEHICLE_DRIVING_DIRECTION_REVERSE(2, "反向");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_VEHICLE_DRIVING_DIRECTION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_VEHICLE_DRIVING_DIRECTION enumType : EM_VEHICLE_DRIVING_DIRECTION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_VEHICLE_DRIVING_DIRECTION enumType : EM_VEHICLE_DRIVING_DIRECTION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_VEHICLE_DRIVING_DIRECTION getEnum(int value) {
+ for (EM_VEHICLE_DRIVING_DIRECTION e : EM_VEHICLE_DRIVING_DIRECTION.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_VEHICLE_DRIVING_DIRECTION.EM_VEHICLE_DRIVING_DIRECTION_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLE_HEAD_DIRECTION.java b/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLE_HEAD_DIRECTION.java
new file mode 100644
index 0000000..326a236
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLE_HEAD_DIRECTION.java
@@ -0,0 +1,70 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author : 260611
+ * @description : 车头方向
+ * @since : Created in 2022/03/01 14:55
+ */
+
+public enum EM_VEHICLE_HEAD_DIRECTION {
+ /**
+ * 未知
+ */
+ EM_VEHICLE_HEAD_DIRECTION_UNKNOWN(0, "未知"),
+ /**
+ * 左
+ */
+ EM_VEHICLE_HEAD_DIRECTION_LEFT(1, "左"),
+ /**
+ * 中
+ */
+ EM_VEHICLE_HEAD_DIRECTION_MIDDLE(2, "中"),
+ /**
+ * 右
+ */
+ EM_VEHICLE_HEAD_DIRECTION_RIGHT(3, "右");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_VEHICLE_HEAD_DIRECTION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_VEHICLE_HEAD_DIRECTION enumType : EM_VEHICLE_HEAD_DIRECTION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_VEHICLE_HEAD_DIRECTION enumType : EM_VEHICLE_HEAD_DIRECTION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_VEHICLE_HEAD_DIRECTION getEnum(int value) {
+ for (EM_VEHICLE_HEAD_DIRECTION e : EM_VEHICLE_HEAD_DIRECTION.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_VEHICLE_HEAD_DIRECTION.EM_VEHICLE_HEAD_DIRECTION_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLE_POSITION.java b/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLE_POSITION.java
new file mode 100644
index 0000000..37b0a6d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLE_POSITION.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author : 260611
+ * @description : 抓拍时车的位置
+ * @since : Created in 2022/03/01 14:55
+ */
+
+public enum EM_VEHICLE_POSITION {
+ /**
+ * 未知
+ */
+ EM_VEHICLE_POSITION_UNKNOWN(0, "未知"),
+ /**
+ * 头
+ */
+ EM_VEHICLE_POSITION_HEAD(1, "头"),
+ /**
+ * 尾
+ */
+ EM_VEHICLE_POSITION_TAIL(2, "尾");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_VEHICLE_POSITION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_VEHICLE_POSITION enumType : EM_VEHICLE_POSITION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_VEHICLE_POSITION enumType : EM_VEHICLE_POSITION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_VEHICLE_POSITION getEnum(int value) {
+ for (EM_VEHICLE_POSITION e : EM_VEHICLE_POSITION.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_VEHICLE_POSITION.EM_VEHICLE_POSITION_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLE_POSTURE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLE_POSTURE_TYPE.java
new file mode 100644
index 0000000..f1b5aa1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLE_POSTURE_TYPE.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 车辆姿势
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:21
+ */
+public class EM_VEHICLE_POSTURE_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_VEHICLE_POSTURE_TYPE_UNKNOWN = 0;
+ /**
+ * 车头
+ */
+ public static final int EM_VEHICLE_POSTURE_TYPE_VEHICLE_HEAD = 1;
+ /**
+ * 车侧
+ */
+ public static final int EM_VEHICLE_POSTURE_TYPE_VEHICLE_SIDE = 2;
+ /**
+ * 车尾
+ */
+ public static final int EM_VEHICLE_POSTURE_TYPE_VEHICLE_TAIL = 3;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLE_REG_DB_OPERATOR_ERRCODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLE_REG_DB_OPERATOR_ERRCODE.java
new file mode 100644
index 0000000..6fb0236
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLE_REG_DB_OPERATOR_ERRCODE.java
@@ -0,0 +1,35 @@
+package com.netsdk.lib.enumeration;
+
+public enum EM_VEHICLE_REG_DB_OPERATOR_ERRCODE {
+ EM_VEHICLE_REG_DB_OPERATOR_ERRCODE_UNKNWON(0, "未知"),// 未知
+ EM_VEHICLE_REG_DB_OPERATOR_ERRCODE_SUCCESS(1, "成功"),// 成功
+ EM_VEHICLE_REG_DB_OPERATOR_ERRCODE_DB_ERROR(2, "数据库操作失败"),// 数据库操作失败
+ EM_VEHICLE_REG_DB_OPERATOR_ERRCODE_NOT_EXIST(3, "车牌不存在"),// 车牌库不存在
+ EM_VEHICLE_REG_DB_OPERATOR_ERRCODE_EXCEED_MAX_NUM(4, "超出车牌库数量限制");// 超出车牌库数量限制
+
+ private int state;
+ private String desc;
+
+ EM_VEHICLE_REG_DB_OPERATOR_ERRCODE(int state, String desc) {
+ this.state = state;
+ this.desc = desc;
+ }
+
+ public int getState() {
+ return state;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public EM_VEHICLE_REG_DB_OPERATOR_ERRCODE getTaskState(int state) {
+ for (EM_VEHICLE_REG_DB_OPERATOR_ERRCODE taskState : EM_VEHICLE_REG_DB_OPERATOR_ERRCODE.values()) {
+ if (taskState.state == state) {
+ return taskState;
+ }
+ }
+ return EM_VEHICLE_REG_DB_OPERATOR_ERRCODE_UNKNWON;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLE_TYPE.java
new file mode 100644
index 0000000..1d967fb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLE_TYPE.java
@@ -0,0 +1,94 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 按功能划分的车辆类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 20:37
+ */
+public class EM_VEHICLE_TYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 未知
+ */
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_UNKNOWN = 0;
+ /**
+ * 危化品车辆
+ */
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_TANK_CAR = 1;
+ /**
+ * 槽罐车
+ */
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_SLOT_TANK_CAR = 2;
+ /**
+ * 渣土车
+ */
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_DREGS_CAR = 3;
+ /**
+ * 混凝土搅拌车
+ */
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_CONCRETE_MIXER_TRUCK = 4;
+ /**
+ * 出租车
+ */
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_TAXI = 5;
+ /**
+ * 警车
+ */
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_POLICE = 6;
+ /**
+ * 救护车
+ */
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_AMBULANCE = 7;
+ /**
+ * 普通车
+ */
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_GENERAL = 8;
+ /**
+ * 洒水车
+ */
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_WATERING_CAR = 9;
+ /**
+ * 消防车
+ */
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_FIRE_ENGINE = 10;
+ /**
+ * 工程车
+ */
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_MACHINESHOP_TRUCK = 11;
+ /**
+ * 粉粒物料车
+ */
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_POWER_LOT_VEHICLE = 12;
+ /**
+ * 吸污车
+ */
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_SUCTION_SEWAGE_TRUCK = 13;
+ /**
+ * 普通罐车
+ */
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_NORMAL_TANK_TRUCK = 14;
+ /**
+ * 校车
+ */
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_SCHOOL_BUS = 15;
+ /**
+ * 挖掘机
+ */
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_EXCAVATOR = 16;
+ /**
+ * 推土车
+ */
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_BULLDOZER = 17;
+ /**
+ * 吊车
+ */
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_CRANE = 18;
+ /**
+ * 泵车
+ */
+ public static final int EM_VEHICLE_TYPE_BY_FUNC_PUMP_TRUCK = 19;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLE_TYPE_SPLIT.java b/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLE_TYPE_SPLIT.java
new file mode 100644
index 0000000..70193c3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_VEHICLE_TYPE_SPLIT.java
@@ -0,0 +1,50 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 车辆种类划分类型
+ * @date 2021/01/11
+ */
+public enum EM_VEHICLE_TYPE_SPLIT {
+ // 未知
+ EM_VEHICLE_TYPE_SPLIT_UNKNOWN(0, "未知"),
+ // 按功能划分
+ EM_VEHICLE_TYPE_SPLIT_FUNC(1, "按功能划分"),
+ // 按标准划分
+ EM_VEHICLE_TYPE_SPLIT_STANDARD(2, "按标准划分");
+
+ private int value;
+ private String note;
+
+ private EM_VEHICLE_TYPE_SPLIT(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_VEHICLE_TYPE_SPLIT enumType : EM_VEHICLE_TYPE_SPLIT.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_VEHICLE_TYPE_SPLIT enumType : EM_VEHICLE_TYPE_SPLIT.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_VIDEODIAGNOSIS_TASK_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_VIDEODIAGNOSIS_TASK_STATE.java
new file mode 100644
index 0000000..94fab92
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_VIDEODIAGNOSIS_TASK_STATE.java
@@ -0,0 +1,46 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 任务运行状态
+ * @date 2021/2/22
+ */
+public enum EM_VIDEODIAGNOSIS_TASK_STATE {
+ /** 未知 */
+ EM_VIDEODIAGNOSIS_TASK_STATE_UNKNOWN(-1, "未知"),
+ /** 未开始 */
+ EM_VIDEODIAGNOSIS_TASK_STATE_NOT_STARTED(0, "未开始"),
+ /** 运行中 */
+ EM_VIDEODIAGNOSIS_TASK_STATE_ONGOING(1, "运行中"),
+ /** 未完成 */
+ EM_VIDEODIAGNOSIS_TASK_STATE_INCOMPLETE(2, "未完成"),
+ /** 已完成 */
+ EM_VIDEODIAGNOSIS_TASK_STATE_COMPLETED(3, "已完成");
+
+ private int state;
+ private String desc;
+
+ EM_VIDEODIAGNOSIS_TASK_STATE(int state, String desc) {
+ this.state = state;
+ this.desc = desc;
+ }
+
+ public int getState() {
+ return state;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public EM_VIDEODIAGNOSIS_TASK_STATE getTaskState(int state) {
+ for (EM_VIDEODIAGNOSIS_TASK_STATE taskState : EM_VIDEODIAGNOSIS_TASK_STATE.values()) {
+ if (taskState.state == state) {
+ return taskState;
+ }
+ }
+ return EM_VIDEODIAGNOSIS_TASK_STATE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_VIDEOINPUTS_SERVICE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_VIDEOINPUTS_SERVICE_TYPE.java
new file mode 100644
index 0000000..7c2a410
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_VIDEOINPUTS_SERVICE_TYPE.java
@@ -0,0 +1,61 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 服务类型
+ *
+ * @author : 47040
+ * @since : Created in 2020/8/13 10:22
+ */
+public enum EM_VIDEOINPUTS_SERVICE_TYPE {
+ /**
+ * 自动
+ */
+ EM_VIDEOINPUTS_SERVICE_TYPE_AUTO(0, "自动"),
+ /**
+ * TCP
+ */
+ EM_VIDEOINPUTS_SERVICE_TYPE_TCP(1, "TCP"),
+ /**
+ * UDP
+ */
+ EM_VIDEOINPUTS_SERVICE_TYPE_UDP(2, "UDP"),
+ /**
+ * 组播
+ */
+ EM_VIDEOINPUTS_SERVICE_TYPE_MULTICAST(3, "组播");
+
+ private int value;
+ private String note;
+
+ private EM_VIDEOINPUTS_SERVICE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_VIDEOINPUTS_SERVICE_TYPE enumType : EM_VIDEOINPUTS_SERVICE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_VIDEOINPUTS_SERVICE_TYPE enumType : EM_VIDEOINPUTS_SERVICE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_VIDEOIN_BACKLIGHT_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_VIDEOIN_BACKLIGHT_MODE.java
new file mode 100644
index 0000000..15ddaca
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_VIDEOIN_BACKLIGHT_MODE.java
@@ -0,0 +1,79 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 背光模式
+* @origin autoTool
+* @date 2023/11/30 16:22:26
+*/
+public enum EM_VIDEOIN_BACKLIGHT_MODE {
+ /**
+ * 未知模式
+ */
+ EM_BACKLIGHT_UNKNOW(0, "未知模式"),
+ /**
+ * 关闭
+ */
+ EM_BACKLIGHT_OFF(1, "关闭"),
+ /**
+ * 背光补偿
+ */
+ EM_BACKLIGHT_BACKLIGHT(2, "背光补偿"),
+ /**
+ * 强光抑制
+ */
+ EM_BACKLIGHT_GLAREINHIBITION(3, "强光抑制"),
+ /**
+ * 宽动态
+ */
+ EM_BACKLIGHT_WIDEDYNAMIC(4, "宽动态"),
+ /**
+ * 场景自适应
+ */
+ EM_BACKLIGHT_SSA(5, "场景自适应");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_VIDEOIN_BACKLIGHT_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_VIDEOIN_BACKLIGHT_MODE enumType : EM_VIDEOIN_BACKLIGHT_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_VIDEOIN_BACKLIGHT_MODE enumType : EM_VIDEOIN_BACKLIGHT_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_VIDEOIN_BACKLIGHT_MODE getEnum(int value) {
+ for (EM_VIDEOIN_BACKLIGHT_MODE e : EM_VIDEOIN_BACKLIGHT_MODE.values()) {
+ if (e.getValue() == value){
+ return e;
+ }
+ }
+ return EM_VIDEOIN_BACKLIGHT_MODE.EM_BACKLIGHT_UNKNOW;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_VIDEO_ABNORMAL_DETECT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_VIDEO_ABNORMAL_DETECT_TYPE.java
new file mode 100644
index 0000000..1a60511
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_VIDEO_ABNORMAL_DETECT_TYPE.java
@@ -0,0 +1,133 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 屏保状态
+* @date 2022/03/29 13:59:54
+*/
+public enum EM_VIDEO_ABNORMAL_DETECT_TYPE {
+/**
+未知状态
+*/
+ EM_VIDEO_ABNORMAL_DETECT_UNKNOWN(0, "未知状态"),
+/**
+视频丢失
+*/
+ EM_VIDEO_ABNORMAL_DETECT_LOSS(1, "视频丢失"),
+/**
+视频遮挡
+*/
+ EM_VIDEO_ABNORMAL_DETECT_COVER(2, "视频遮挡"),
+/**
+画面冻结
+*/
+ EM_VIDEO_ABNORMAL_DETECT_FROZEN(3, "画面冻结"),
+/**
+过亮
+*/
+ EM_VIDEO_ABNORMAL_DETECT_LIGHT(4, "过亮"),
+/**
+过暗
+*/
+ EM_VIDEO_ABNORMAL_DETECT_DARK(5, "过暗"),
+/**
+场景变化
+*/
+ EM_VIDEO_ABNORMAL_DETECT_SCENECHANGE(6, "场景变化"),
+/**
+条纹检测
+*/
+ EM_VIDEO_ABNORMAL_DETECT_STRIATION(7, "条纹检测"),
+/**
+噪声检测
+*/
+ EM_VIDEO_ABNORMAL_DETECT_NOISE(8, "噪声检测"),
+/**
+偏色检测
+*/
+ EM_VIDEO_ABNORMAL_DETECT_UNBALANCE(9, "偏色检测"),
+/**
+视频模糊检测
+*/
+ EM_VIDEO_ABNORMAL_DETECT_BLUR(10, "视频模糊检测"),
+/**
+对比度异常检测
+*/
+ EM_VIDEO_ABNORMAL_DETECT_CONTRAST(11, "对比度异常检测"),
+/**
+视频运动
+*/
+ EM_VIDEO_ABNORMAL_DETECT_MOTION(12, "视频运动"),
+/**
+视频闪烁
+*/
+ EM_VIDEO_ABNORMAL_DETECT_FILCKERING(13, "视频闪烁"),
+/**
+视频颜色-13
+*/
+ EM_VIDEO_ABNORMAL_DETECT_COLOR(14, "视频颜色-13"),
+/**
+虚焦检测
+*/
+ EM_VIDEO_ABNORMAL_DETECT_UNFOCUS(15, "虚焦检测"),
+/**
+过曝检测
+*/
+ EM_VIDEO_ABNORMAL_DETECT_OVEREXPOSURE(16, "过曝检测"),
+/**
+场景剧变
+*/
+ EM_VIDEO_ABNORMAL_DETECT_DRAMATICCHANGE(17, "场景剧变"),
+/**
+黑白图像
+*/
+ EM_VIDEO_ABNORMAL_DETECT_BLACKWHITE(18, "黑白图像"),
+/**
+雪花噪声
+*/
+ EM_VIDEO_ABNORMAL_DETECT_SNOWNOISE(19, "雪花噪声");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_VIDEO_ABNORMAL_DETECT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_VIDEO_ABNORMAL_DETECT_TYPE enumType : EM_VIDEO_ABNORMAL_DETECT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_VIDEO_ABNORMAL_DETECT_TYPE enumType : EM_VIDEO_ABNORMAL_DETECT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_VIDEO_ABNORMAL_DETECT_TYPE getEnum(int value) {
+ for (EM_VIDEO_ABNORMAL_DETECT_TYPE e : EM_VIDEO_ABNORMAL_DETECT_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_VIDEO_ABNORMAL_DETECT_TYPE.EM_VIDEO_ABNORMAL_DETECT_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_VIDEO_FILE_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_VIDEO_FILE_STATE.java
new file mode 100644
index 0000000..24f7f7c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_VIDEO_FILE_STATE.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 录像文件的状态
+ * @date 2021/2/22
+ */
+public enum EM_VIDEO_FILE_STATE {
+ /** 未知 */
+ EM_VIDEO_FILE_STATE_UNKNOWN,
+ /** 正在写 */
+ EM_VIDEO_FILE_STATE_TEMPORARY,
+ /** 已写完并正常关闭文件句柄 */
+ EM_VIDEO_FILE_STATE_COMPLETE;
+
+ public static EM_VIDEO_FILE_STATE getVideoFileState(int status) {
+ for (EM_VIDEO_FILE_STATE fileState : EM_VIDEO_FILE_STATE.values()) {
+ if (fileState.ordinal() == status) {
+ return fileState;
+ }
+ }
+ return EM_VIDEO_FILE_STATE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_VIDEO_STREAM.java b/src/main/java/com/netsdk/lib/enumeration/EM_VIDEO_STREAM.java
new file mode 100644
index 0000000..74058ae
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_VIDEO_STREAM.java
@@ -0,0 +1,60 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 视频码流
+ * @date 2021/11/07
+ */
+public enum EM_VIDEO_STREAM {
+ // 未知
+ EM_VIDEO_STREAM_UNKNOWN(0, "未知"),
+ // 主码流
+ EM_VIDEO_STREAM_MAIN(1, "主码流"),
+ // 辅码流1
+ EM_VIDEO_STREAM_EXTRA1(2, "辅码流1"),
+ // 辅码流2
+ EM_VIDEO_STREAM_EXTRA2(3, "辅码流2"),
+ // 辅码流3
+ EM_VIDEO_STREAM_EXTRA3(4, "辅码流3"),
+ // 自动选择合适码流
+ EM_VIDEO_STREAM_AUTO(5, "自动选择合适码流"),
+ // 预览裸数据码流
+ EM_VIDEO_STREAM_PREVIEW(6, "预览裸数据码流"),
+ // 无视频码流(纯音频流)
+ EM_VIDEO_STREAM_NO_VIDEO_JUST_AUDIO(7, "无视频码流(纯音频流)");
+
+ private int value;
+ private String note;
+
+ private EM_VIDEO_STREAM(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_VIDEO_STREAM enumType : EM_VIDEO_STREAM.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_VIDEO_STREAM enumType : EM_VIDEO_STREAM.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_VIDEO_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_VIDEO_TYPE.java
new file mode 100644
index 0000000..f246697
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_VIDEO_TYPE.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 录像的类型
+ * @date 2021/2/22
+ */
+public enum EM_VIDEO_TYPE {
+ /** 未知 */
+ EM_VIDEO_TYPE_UNKNOWN,
+ /** 全部 */
+ EM_VIDEO_TYPE_ALL,
+ /** 手动保存的录像 */
+ EM_VIDEO_TYPE_MANUAL,
+ /** 报警录像 */
+ EM_VIDEO_TYPE_ALARM;
+
+ public EM_VIDEO_TYPE getVideoType(int type) {
+ for (EM_VIDEO_TYPE videoType : EM_VIDEO_TYPE.values()) {
+ if (videoType.ordinal() == type) {
+ return videoType;
+ }
+ }
+ return EM_VIDEO_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_VIOLATION_SNAP_SOURCE.java b/src/main/java/com/netsdk/lib/enumeration/EM_VIOLATION_SNAP_SOURCE.java
new file mode 100644
index 0000000..e3e5688
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_VIOLATION_SNAP_SOURCE.java
@@ -0,0 +1,95 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 抓拍触发源
+*/
+public enum EM_VIOLATION_SNAP_SOURCE
+{
+ /**
+ * 未知,不存在此字段时默认为0
+ */
+ EM_VIOLATION_SNAP_SOURCE_TYPE_UNKNOWN(0, "未知,不存在此字段时默认为0"),
+ /**
+ * 线圈
+ */
+ EM_VIOLATION_SNAP_SOURCE_TYPE_COIL(1, "线圈"),
+ /**
+ * 雷达
+ */
+ EM_VIOLATION_SNAP_SOURCE_TYPE_RADAR(2, "雷达"),
+ /**
+ * 视频
+ */
+ EM_VIOLATION_SNAP_SOURCE_TYPE_VIDEO(3, "视频"),
+ /**
+ * 视频和线圈混合
+ */
+ EM_VIOLATION_SNAP_SOURCE_TYPE_VIDEO_COIL(4, "视频和线圈混合"),
+ /**
+ * 视频和雷达混合
+ */
+ EM_VIOLATION_SNAP_SOURCE_TYPE_VIDEO_RADAR(5, "视频和雷达混合"),
+ /**
+ * 视频、线圈和雷达混合
+ */
+ EM_VIOLATION_SNAP_SOURCE_TYPE_VIDEO_COIL_RADAR(6, "视频、线圈和雷达混合"),
+ /**
+ * 强制触发
+ */
+ EM_VIOLATION_SNAP_SOURCE_TYPE_FORCE_TRIGER(7, "强制触发"),
+ /**
+ * 车位锁状态
+ */
+ EM_VIOLATION_SNAP_SOURCE_TYPE_PARKING_LOCK_STATUS(8, "车位锁状态"),
+ /**
+ * 道闸状态
+ */
+ EM_VIOLATION_SNAP_SOURCE_TYPE_GATE_STATUS(9, "道闸状态"),
+ /**
+ * 外设状态
+ */
+ EM_VIOLATION_SNAP_SOURCE_TYPE_PERIPHERAL_STATUS(10, "外设状态"),
+ /**
+ * 驶入
+ */
+ EM_VIOLATION_SNAP_SOURCE_TYPE_DRIVE_IN(11, "驶入"),
+ /**
+ * 驶出
+ */
+ EM_VIOLATION_SNAP_SOURCE_TYPE_DRIVE_OUT(12, "驶出");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_VIOLATION_SNAP_SOURCE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_VIOLATION_SNAP_SOURCE enumType : EM_VIOLATION_SNAP_SOURCE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_VIOLATION_SNAP_SOURCE enumType : EM_VIOLATION_SNAP_SOURCE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_VIRTUAL_COIL_OCCUPANCY_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/EM_VIRTUAL_COIL_OCCUPANCY_STATUS.java
new file mode 100644
index 0000000..e548f74
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_VIRTUAL_COIL_OCCUPANCY_STATUS.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 虚拟线圈占用状态
+ *
+ * @author : 47040
+ * @since : Created in 2020/12/17 11:50
+ */
+public enum EM_VIRTUAL_COIL_OCCUPANCY_STATUS {
+ /**
+ * 未知
+ */
+ EM_VIRTUAL_COIL_OCCUPANCY_STATUS_UNKNOWN(-1, "未知"),
+ /**
+ * 未占用
+ */
+ EM_VIRTUAL_COIL_OCCUPANCY_STATUS_UNOCCUPY(0, "未占用"),
+ /**
+ * 占用
+ */
+ EM_VIRTUAL_COIL_OCCUPANCY_STATUS_OCCUPY(1, "占用");
+
+ private final int value;
+ private final String note;
+
+ EM_VIRTUAL_COIL_OCCUPANCY_STATUS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_VIRTUAL_COIL_OCCUPANCY_STATUS enumType : EM_VIRTUAL_COIL_OCCUPANCY_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_VIRTUAL_COIL_OCCUPANCY_STATUS enumType : EM_VIRTUAL_COIL_OCCUPANCY_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_VIRTUAL_COIL_OCCUPANCY_STATUS getEnum(int value) {
+ for (EM_VIRTUAL_COIL_OCCUPANCY_STATUS e : EM_VIRTUAL_COIL_OCCUPANCY_STATUS.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_VIRTUAL_COIL_OCCUPANCY_STATUS.EM_VIRTUAL_COIL_OCCUPANCY_STATUS_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_VOICE_BROADCAST_EVENT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_VOICE_BROADCAST_EVENT_TYPE.java
new file mode 100644
index 0000000..cfef6d2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_VOICE_BROADCAST_EVENT_TYPE.java
@@ -0,0 +1,115 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * EM_ELEMENT_EVENT_TYPE 播放事件类型
+*/
+public enum EM_VOICE_BROADCAST_EVENT_TYPE
+{
+ /**
+ * "",未知
+ */
+ EM_EVENT_TYPE_UNKOWN(0, "\"\",未知"),
+ /**
+ * "Parking",车位有车
+ */
+ EM_EVENT_TYPE_PARKING(1, "\"Parking\",车位有车"),
+ /**
+ * "NoParking",车位无车
+ */
+ EM_EVENT_TYPE_NO_PARKING(2, "\"NoParking\",车位无车"),
+ /**
+ * "OverLine",车位压线
+ */
+ EM_EVENT_TYPE_OVERLINE(3, "\"OverLine\",车位压线"),
+ /**
+ * "NotAllowOccupy", 非允许名单车占用
+ */
+ EM_EVENT_TYPE_NOT_ALLOW_OCCUPY(4, "\"NotAllowOccupy\", 非允许名单车占用"),
+ /**
+ * "NotNEOccupy", 非新能源车占用
+ */
+ EM_EVENT_TYPE_NOT_NE_OCCUPY(5, "\"NotNEOccupy\", 非新能源车占用"),
+ /**
+ * "SmallOccupyLarge", 小车占用大车位
+ */
+ EM_EVENT_TYPE_SMALL_OCCUPY_LARGE(6, "\"SmallOccupyLarge\", 小车占用大车位"),
+ /**
+ * "AllowListIn", 允许名单车驶入
+ */
+ EM_EVENT_TYPE_ALLOW_LIST_IN(7, "\"AllowListIn\", 允许名单车驶入"),
+ /**
+ * "AreaInvasion", 区域入侵
+ */
+ EM_EVENT_TYPE_AREA_INVASION(8, "\"AreaInvasion\", 区域入侵"),
+ /**
+ * "AreaStay", 区域滞留
+ */
+ EM_EVENT_TYPE_AREA_STAY(9, "\"AreaStay\", 区域滞留"),
+ /**
+ * "OpenStrobeAlarm", 开闸警戒
+ */
+ EM_EVENT_TYPE_OPEN_STROBE_ALARM(10, "\"OpenStrobeAlarm\", 开闸警戒"),
+ /**
+ * "NotAllowEntry", 异常驶入
+ */
+ EM_EVENT_TYPE_NOT_ALLOW_ENTRY(11, "\"NotAllowEntry\", 异常驶入"),
+ /**
+ * "NotAllowEnter", 非允许名单车辆驶入
+ */
+ EM_EVENT_TYPE_NOT_ALLOW_ENTER(12, "\"NotAllowEnter\", 非允许名单车辆驶入"),
+ /**
+ * "NotNEEnter", 非新能源车辆驶入
+ */
+ EM_EVENT_TYPE_NOT_NE_ENTER(13, "\"NotNEEnter\", 非新能源车辆驶入"),
+ /**
+ * "FireDetection", 火焰检测
+ */
+ EM_EVENT_TYPE_FIRE_DETECTION(14, "\"FireDetection\", 火焰检测"),
+ /**
+ * "SmokeDetection", 烟雾报警
+ */
+ EM_EVENT_TYPE_SMOKE_DETECTION(15, "\"SmokeDetection\", 烟雾报警"),
+ /**
+ * "IllegalParking", 车辆违停
+ */
+ EM_EVENT_TYPE_ILLEGAL_PARKING(16, "\"IllegalParking\", 车辆违停"),
+ /**
+ * "ForeignObjectOccupy", 异物占位
+ */
+ EM_EVENT_TYPE_FOREIGN_OBJECT_OCCUPY(17, "\"ForeignObjectOccupy\", 异物占位");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_VOICE_BROADCAST_EVENT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_VOICE_BROADCAST_EVENT_TYPE enumType : EM_VOICE_BROADCAST_EVENT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_VOICE_BROADCAST_EVENT_TYPE enumType : EM_VOICE_BROADCAST_EVENT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_VOICE_BROADCAST_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_VOICE_BROADCAST_TYPE.java
new file mode 100644
index 0000000..0feafa4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_VOICE_BROADCAST_TYPE.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * EM_VOICE_BROADCAST_TYPE 播放的内容类型
+*/
+public enum EM_VOICE_BROADCAST_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_TYPE_UNKOWN(0, "未知"),
+ /**
+ * 文字播放
+ */
+ EM_TYPE_TEXT(1, "文字播放"),
+ /**
+ * 文件播放
+ */
+ EM_TYPE_FILE(2, "文件播放");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_VOICE_BROADCAST_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_VOICE_BROADCAST_TYPE enumType : EM_VOICE_BROADCAST_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_VOICE_BROADCAST_TYPE enumType : EM_VOICE_BROADCAST_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_VOLTAGE_STATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_VOLTAGE_STATE_TYPE.java
new file mode 100644
index 0000000..794317f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_VOLTAGE_STATE_TYPE.java
@@ -0,0 +1,43 @@
+package com.netsdk.lib.enumeration;
+
+public enum EM_VOLTAGE_STATE_TYPE {
+ EM_VOLTAGE_STATE_UNKNOWN(0, "电压状态未知"),// 未知
+ EM_VOLTAGE_STATE_OVER(1, "电压过高"),// 过压
+ EM_VOLTAGE_STATE_NORMAL(2, "电压正常"),// 正常
+ EM_VOLTAGE_STATE_UNDER(3, "欠压");// 欠压
+
+ private int value;
+ private String note;
+
+ private EM_VOLTAGE_STATE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_VOLTAGE_STATE_TYPE enumType : EM_VOLTAGE_STATE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_VOLTAGE_STATE_TYPE enumType : EM_VOLTAGE_STATE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_VSP_GAVI_PLATFORM_CODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_VSP_GAVI_PLATFORM_CODE.java
new file mode 100644
index 0000000..73f7470
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_VSP_GAVI_PLATFORM_CODE.java
@@ -0,0 +1,53 @@
+package com.netsdk.lib.enumeration;
+
+public enum EM_VSP_GAVI_PLATFORM_CODE {
+ EM_VSP_GAVI_PLATFORM_CODE_UNKNOWN(-1, "未知"),
+ EM_VSP_GAVI_PLATFORM_CODE_DEFAULT(0, "默认,标准视图库接入平台"),
+ EM_VSP_GAVI_PLATFORM_CODE_DAHUA(1, "DH视图库"),
+ EM_VSP_GAVI_PLATFORM_CODE_HKTDA_CLOUDSTORAGE(2, "TDA+云存储"),
+ EM_VSP_GAVI_PLATFORM_CODE_UNIVIEW(3, "宇视"),
+ EM_VSP_GAVI_PLATFORM_CODE_HKTEST(4, "接口测试"),
+ EM_VSP_GAVI_PLATFORM_CODE_SHQPNETPOSE(5, "上海清浦东方网力"),
+ EM_VSP_GAVI_PLATFORM_CODE_HKTDA(6, "TDA"),
+ EM_VSP_GAVI_PLATFORM_CODE_HARZONE(7, "华尊"),
+ EM_VSP_GAVI_PLATFORM_CODE_NETPOSE(8, "东方网力"),
+ EM_VSP_GAVI_PLATFORM_CODE_TAOAN(9, "韬安"),
+ EM_VSP_GAVI_PLATFORM_CODE_RESERVED(10, "预留"),
+ EM_VSP_GAVI_PLATFORM_CODE_HKVIEWGATEWAY(11, "视图网关"),
+ EM_VSP_GAVI_PLATFORM_CODE_KODAK(12, "柯达");
+
+ private int value;
+ private String note;
+
+ private EM_VSP_GAVI_PLATFORM_CODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_SIGNLIGHT_TYPE enumType : EM_SIGNLIGHT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_SIGNLIGHT_TYPE enumType : EM_SIGNLIGHT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_WATERDATA_STAT_SERVER_SUPPORT.java b/src/main/java/com/netsdk/lib/enumeration/EM_WATERDATA_STAT_SERVER_SUPPORT.java
new file mode 100644
index 0000000..68706da
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_WATERDATA_STAT_SERVER_SUPPORT.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 当前是否具备水质检测功能
+* @date 2022/08/22 10:11:26
+*/
+public enum EM_WATERDATA_STAT_SERVER_SUPPORT {
+/**
+未知
+*/
+ EM_WATERDATA_STAT_SERVER_SUPPORT_UNKNOWN(-1, "未知"),
+/**
+不支持
+*/
+ EM_WATERDATA_STAT_SERVER_SUPPORT_NO(0, "不支持"),
+/**
+支持
+*/
+ EM_WATERDATA_STAT_SERVER_SUPPORT_YES(1, "支持");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_WATERDATA_STAT_SERVER_SUPPORT(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_WATERDATA_STAT_SERVER_SUPPORT enumType : EM_WATERDATA_STAT_SERVER_SUPPORT.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_WATERDATA_STAT_SERVER_SUPPORT enumType : EM_WATERDATA_STAT_SERVER_SUPPORT.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_WATERDATA_STAT_SERVER_SUPPORT getEnum(int value) {
+ for (EM_WATERDATA_STAT_SERVER_SUPPORT e : EM_WATERDATA_STAT_SERVER_SUPPORT.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_WATERDATA_STAT_SERVER_SUPPORT.EM_WATERDATA_STAT_SERVER_SUPPORT_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_WATER_DETECTION_ALARM_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_WATER_DETECTION_ALARM_TYPE.java
new file mode 100644
index 0000000..8f9cc3a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_WATER_DETECTION_ALARM_TYPE.java
@@ -0,0 +1,125 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 事件报警类型
+* @date 2022/08/22 16:50:06
+*/
+public enum EM_WATER_DETECTION_ALARM_TYPE {
+/**
+未知
+*/
+ EM_WATER_DETECTION_ALARM_TYPE_UNKNOWN(0, "未知"),
+/**
+水质类别
+*/
+ EM_WATER_DETECTION_ALARM_TYPE_QUALITY(1, "水质类别"),
+/**
+PH
+*/
+ EM_WATER_DETECTION_ALARM_TYPE_PH(2, "PH"),
+/**
+浊度值
+*/
+ EM_WATER_DETECTION_ALARM_TYPE_NTU(3, "浊度值"),
+/**
+氨氮值
+*/
+ EM_WATER_DETECTION_ALARM_TYPE_NH3_N(4, "氨氮值"),
+/**
+总氮值
+*/
+ EM_WATER_DETECTION_ALARM_TYPE_TN(5, "总氮值"),
+/**
+透明度值
+*/
+ EM_WATER_DETECTION_ALARM_TYPE_SD(6, "透明度值"),
+/**
+化学需氧量
+*/
+ EM_WATER_DETECTION_ALARM_TYPE_COD(7, "化学需氧量"),
+/**
+亚硝酸盐氮
+*/
+ EM_WATER_DETECTION_ALARM_TYPE_NN(8, "亚硝酸盐氮"),
+/**
+溶解氧
+*/
+ EM_WATER_DETECTION_ALARM_TYPE_DO(9, "溶解氧"),
+/**
+叶绿素a
+*/
+ EM_WATER_DETECTION_ALARM_TYPE_CHL_A(10, "叶绿素a"),
+/**
+总磷
+*/
+ EM_WATER_DETECTION_ALARM_TYPE_TP(11, "总磷"),
+/**
+高锰酸盐指数范围
+*/
+ EM_WATER_DETECTION_ALARM_TYPE_CODMN(12, "高锰酸盐指数范围"),
+/**
+悬浮物
+*/
+ EM_WATER_DETECTION_ALARM_TYPE_SS(13, "悬浮物"),
+/**
+五日生化需氧量
+*/
+ EM_WATER_DETECTION_ALARM_TYPE_BOD_5(14, "五日生化需氧量"),
+/**
+硝酸盐
+*/
+ EM_WATER_DETECTION_ALARM_TYPE_NO3_N(15, "硝酸盐"),
+/**
+富营养状况指数
+*/
+ EM_WATER_DETECTION_ALARM_TYPE_TSI(16, "富营养状况指数"),
+/**
+黑臭等级
+*/
+ EM_WATER_DETECTION_ALARM_TYPE_SMELLY_LEVEL(17, "黑臭等级");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_WATER_DETECTION_ALARM_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_WATER_DETECTION_ALARM_TYPE enumType : EM_WATER_DETECTION_ALARM_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_WATER_DETECTION_ALARM_TYPE enumType : EM_WATER_DETECTION_ALARM_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_WATER_DETECTION_ALARM_TYPE getEnum(int value) {
+ for (EM_WATER_DETECTION_ALARM_TYPE e : EM_WATER_DETECTION_ALARM_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_WATER_DETECTION_ALARM_TYPE.EM_WATER_DETECTION_ALARM_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_WATER_QUALITY.java b/src/main/java/com/netsdk/lib/enumeration/EM_WATER_QUALITY.java
new file mode 100644
index 0000000..c4d28e3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_WATER_QUALITY.java
@@ -0,0 +1,77 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 水质类别,越小越好
+* @date 2022/08/22 16:51:44
+*/
+public enum EM_WATER_QUALITY {
+/**
+未知
+*/
+ EM_WATER_QUALITY_UNKNOWN(0, "未知"),
+/**
+1类
+*/
+ EM_WATER_QUALITY_1(1, "1类"),
+/**
+2类
+*/
+ EM_WATER_QUALITY_2(2, "2类"),
+/**
+3类
+*/
+ EM_WATER_QUALITY_3(3, "3类"),
+/**
+4类
+*/
+ EM_WATER_QUALITY_4(4, "4类"),
+/**
+5类
+*/
+ EM_WATER_QUALITY_5(5, "5类");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_WATER_QUALITY(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_WATER_QUALITY enumType : EM_WATER_QUALITY.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_WATER_QUALITY enumType : EM_WATER_QUALITY.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_WATER_QUALITY getEnum(int value) {
+ for (EM_WATER_QUALITY e : EM_WATER_QUALITY.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_WATER_QUALITY.EM_WATER_QUALITY_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_WATER_SPEED_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/EM_WATER_SPEED_STATUS.java
new file mode 100644
index 0000000..670dad1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_WATER_SPEED_STATUS.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 水流速状态
+*/
+public enum EM_WATER_SPEED_STATUS
+{
+ /**
+ * 未知
+ */
+ EM_WATER_SPEED_STATUS_UNKNOWN(0, "未知"),
+ /**
+ * 水流速正常
+ */
+ EM_WATER_SPEED_STATUS_NORMAL(1, "水流速正常"),
+ /**
+ * 水流速高于上限阈值
+ */
+ EM_WATER_SPEED_STATUS_HIGH(2, "水流速高于上限阈值"),
+ /**
+ * 水流速低于下限阈值
+ */
+ EM_WATER_SPEED_STATUS_LOW(3, "水流速低于下限阈值");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_WATER_SPEED_STATUS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_WATER_SPEED_STATUS enumType : EM_WATER_SPEED_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_WATER_SPEED_STATUS enumType : EM_WATER_SPEED_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_WEARING_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_WEARING_STATE.java
new file mode 100644
index 0000000..b6df153
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_WEARING_STATE.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author : 260611
+ * @description : 穿戴状态
+ * @since : Created in 2022/03/10 11:17
+ */
+
+public enum EM_WEARING_STATE {
+ /**
+ * 未知
+ */
+ EM_WEARING_STATE_UNKNOWN(0, "未知"),
+ /**
+ * 没有穿戴
+ */
+ EM_WEARING_STATE_NOTWEAR(1, "没有穿戴"),
+ /**
+ * 有穿戴
+ */
+ EM_WEARING_STATE_WEAR(2, "有穿戴");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_WEARING_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_WEARING_STATE enumType : EM_WEARING_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_WEARING_STATE enumType : EM_WEARING_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_WEARING_STATE getEnum(int value) {
+ for (EM_WEARING_STATE e : EM_WEARING_STATE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_WEARING_STATE.EM_WEARING_STATE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_WEB_TUNNEL_PROTOCOL.java b/src/main/java/com/netsdk/lib/enumeration/EM_WEB_TUNNEL_PROTOCOL.java
new file mode 100644
index 0000000..7005bdf
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_WEB_TUNNEL_PROTOCOL.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 私有web代理协议类型
+* @date 2022/04/21 14:35:33
+*/
+public enum EM_WEB_TUNNEL_PROTOCOL {
+/**
+未知
+*/
+ EM_WEB_TUNNEL_PROTOCOL_UNKNOWN(0, "未知"),
+/**
+HTTP
+*/
+ EM_WEB_TUNNEL_PROTOCOL_HTTP(1, "HTTP"),
+/**
+THTPS
+*/
+ EM_WEB_TUNNEL_PROTOCOL_HTTPS(2, "THTPS");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_WEB_TUNNEL_PROTOCOL(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_WEB_TUNNEL_PROTOCOL enumType : EM_WEB_TUNNEL_PROTOCOL.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_WEB_TUNNEL_PROTOCOL enumType : EM_WEB_TUNNEL_PROTOCOL.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_WEB_TUNNEL_PROTOCOL getEnum(int value) {
+ for (EM_WEB_TUNNEL_PROTOCOL e : EM_WEB_TUNNEL_PROTOCOL.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_WEB_TUNNEL_PROTOCOL.EM_WEB_TUNNEL_PROTOCOL_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_WIRELESS_DEVICE_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_WIRELESS_DEVICE_MODE.java
new file mode 100644
index 0000000..4f858cc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_WIRELESS_DEVICE_MODE.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 无线设备工作模式
+ * @date 2023/03/16 14:52:52
+ */
+public enum EM_WIRELESS_DEVICE_MODE {
+ /**
+ * 模式未识别
+ */
+ EM_WIRELESS_DEVICE_MODE_UNKNOWN(0, "模式未识别"),
+ /**
+ * Normal 普通模式
+ */
+ EM_WIRELESS_DEVICE_MODE_NORMAL(1, "Normal 普通模式"),
+ /**
+ * Polling 巡检模式 只有Type为RemoteControl时才能处于巡检模式
+ */
+ EM_WIRELESS_DEVICE_MODE_POLLING(2, "Polling 巡检模式");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_WIRELESS_DEVICE_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_WIRELESS_DEVICE_MODE enumType : EM_WIRELESS_DEVICE_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_WIRELESS_DEVICE_MODE enumType : EM_WIRELESS_DEVICE_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_WIRELESS_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_WIRELESS_MODE.java
new file mode 100644
index 0000000..c48534e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_WIRELESS_MODE.java
@@ -0,0 +1,48 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 无线模块类型
+*/
+public enum EM_WIRELESS_MODE
+{
+ EM_WIRELESS_UNKNOWN(0, ""),
+ EM_WIRELESS_3G(1, ""),
+ EM_WIRELESS_3G1(2, ""),
+ EM_WIRELESS_3G2(3, ""),
+ EM_WIRELESS_3G3(4, "");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_WIRELESS_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_WIRELESS_MODE enumType : EM_WIRELESS_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_WIRELESS_MODE enumType : EM_WIRELESS_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_WIRELESS_WORK_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_WIRELESS_WORK_MODE.java
new file mode 100644
index 0000000..dc6e32b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_WIRELESS_WORK_MODE.java
@@ -0,0 +1,108 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 工作模式选择
+*/
+public enum EM_WIRELESS_WORK_MODE
+{
+ EM_WIRELESS_WORK_MODE_UNKNOWN(0, ""),
+ /**
+ * CDMA1x
+ */
+ EM_WIRELESS_WORK_MODE_CDMA1X(1, "CDMA1x"),
+ /**
+ * EVDO
+ */
+ EM_WIRELESS_WORK_MODE_EVDO(2, "EVDO"),
+ /**
+ * TD-SCDMA
+ */
+ EM_WIRELESS_WORK_MODE_TD_SCDMA(3, "TD-SCDMA"),
+ /**
+ * WCDMA
+ */
+ EM_WIRELESS_WORK_MODE_WCDMA(4, "WCDMA"),
+ /**
+ * EDGE
+ */
+ EM_WIRELESS_WORK_MODE_EDGE(5, "EDGE"),
+ /**
+ * TDD-LTE
+ */
+ EM_WIRELESS_WORK_MODE_TDD_LTE(6, "TDD-LTE"),
+ /**
+ * FDD-LTE
+ */
+ EM_WIRELESS_WORK_MODE_FDD_LTE(7, "FDD-LTE"),
+ /**
+ * GPRS
+ */
+ EM_WIRELESS_WORK_MODE_GPRS(8, "GPRS"),
+ /**
+ * NR
+ */
+ EM_WIRELESS_WORK_MODE_NR(9, "NR"),
+ /**
+ * NOService
+ */
+ EM_WIRELESS_WORK_MODE_NO_SERVICE(10, "NOService"),
+ /**
+ * AMPS
+ */
+ EM_WIRELESS_WORK_MODE_AMPS(11, "AMPS"),
+ /**
+ * CDMA2000
+ */
+ EM_WIRELESS_WORK_MODE_CDMA2000(12, "CDMA2000"),
+ /**
+ * GSM
+ */
+ EM_WIRELESS_WORK_MODE_GSM(13, "GSM"),
+ /**
+ * LTE
+ */
+ EM_WIRELESS_WORK_MODE_LTE(14, "LTE"),
+ /**
+ * TD-LTE
+ */
+ EM_WIRELESS_WORK_MODE_TD_LTE(15, "TD-LTE"),
+ /**
+ * Auto
+ */
+ EM_WIRELESS_WORK_MODE_AUTO(16, "Auto");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_WIRELESS_WORK_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_WIRELESS_WORK_MODE enumType : EM_WIRELESS_WORK_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_WIRELESS_WORK_MODE enumType : EM_WIRELESS_WORK_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_WLAN_SCAN_AND_CONFIG_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_WLAN_SCAN_AND_CONFIG_TYPE.java
new file mode 100644
index 0000000..ca7e8e9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_WLAN_SCAN_AND_CONFIG_TYPE.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description wifi扫描及配置支持的版本类型
+ * @date 2021/2/22
+ */
+public enum EM_WLAN_SCAN_AND_CONFIG_TYPE {
+ /** 未知 */
+ EM_WLAN_SCAN_AND_CONFIG_UNKNOWN,
+ /** V2:二代协议 */
+ EM_WLAN_SCAN_AND_CONFIG_V2,
+ /** v3:三代协议 */
+ EM_WLAN_SCAN_AND_CONFIG_V3;
+
+ public EM_WLAN_SCAN_AND_CONFIG_TYPE getWlanScanAndConfigType(int type) {
+ for (EM_WLAN_SCAN_AND_CONFIG_TYPE configType : EM_WLAN_SCAN_AND_CONFIG_TYPE.values()) {
+ if (configType.ordinal() == type) {
+ return configType;
+ }
+ }
+ return EM_WLAN_SCAN_AND_CONFIG_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_WORKACTION_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_WORKACTION_STATE.java
new file mode 100644
index 0000000..f57ebcd
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_WORKACTION_STATE.java
@@ -0,0 +1,70 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author : 260611
+ * @description : 作业行为状态信息
+ * @since : Created in 2022/03/08 15:25
+ */
+
+public enum EM_WORKACTION_STATE {
+ /**
+ * 未知
+ */
+ EM_WORKACTION_STATE_UNKNOWN(0, "未知"),
+ /**
+ * 无人作业
+ */
+ EM_WORKACTION_STATE_NO_WORKER(1, "无人作业"),
+ /**
+ * 单人作业
+ */
+ EEM_WORKACTION_STATE_SINGLE_WORKER(2, "单人作业"),
+ /**
+ * 无红马甲作业
+ */
+ EM_WORKACTION_STATE_NORED_VEST(3, "无红马甲作业");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_WORKACTION_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_WORKACTION_STATE enumType : EM_WORKACTION_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_WORKACTION_STATE enumType : EM_WORKACTION_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_WORKACTION_STATE getEnum(int value) {
+ for (EM_WORKACTION_STATE e : EM_WORKACTION_STATE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_WORKACTION_STATE.EM_WORKACTION_STATE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_WORKCLOTHES_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_WORKCLOTHES_STATE.java
new file mode 100644
index 0000000..993059e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_WORKCLOTHES_STATE.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author : 260611
+ * @description : 工作服穿戴状态
+ * @since : Created in 2022/03/10 11:17
+ */
+
+public enum EM_WORKCLOTHES_STATE {
+ /**
+ * 未知
+ */
+ EM_WORKCLOTHES_STATE_UNKNOWN(0, "未知"),
+ /**
+ * 无工作服
+ */
+ EM_WORKCLOTHES_STATE_NOTWEAR(1, "无工作服"),
+ /**
+ * 有工作服
+ */
+ EM_WORKCLOTHES_STATE_WEAR(2, "有工作服");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_WORKCLOTHES_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_WORKCLOTHES_STATE enumType : EM_WORKCLOTHES_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_WORKCLOTHES_STATE enumType : EM_WORKCLOTHES_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_WORKCLOTHES_STATE getEnum(int value) {
+ for (EM_WORKCLOTHES_STATE e : EM_WORKCLOTHES_STATE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_WORKCLOTHES_STATE.EM_WORKCLOTHES_STATE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_WORKPANTS_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_WORKPANTS_STATE.java
new file mode 100644
index 0000000..b5dc3bd
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_WORKPANTS_STATE.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author : 260611
+ * @description : 工作裤穿戴状态
+ * @since : Created in 2022/03/10 11:17
+ */
+
+public enum EM_WORKPANTS_STATE {
+ /**
+ * 未知
+ */
+ EM_WORKPANTS_STATE_UNKNOWN(0, "未知"),
+ /**
+ * 没有
+ */
+ EM_WORKPANTS_STATE_NOTWEAR(1, "没有"),
+ /**
+ * 有
+ */
+ EM_WORKPANTS_STATE_WEAR(2, "有");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_WORKPANTS_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_WORKPANTS_STATE enumType : EM_WORKPANTS_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_WORKPANTS_STATE enumType : EM_WORKPANTS_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_WORKPANTS_STATE getEnum(int value) {
+ for (EM_WORKPANTS_STATE e : EM_WORKPANTS_STATE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_WORKPANTS_STATE.EM_WORKPANTS_STATE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_WORKSTATDETECTION_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_WORKSTATDETECTION_TYPE.java
new file mode 100644
index 0000000..a12e871
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_WORKSTATDETECTION_TYPE.java
@@ -0,0 +1,82 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author : 260611
+ * @description : 作业统计检测类型
+ * @since : Created in 2022/03/08 15:25
+ */
+
+public enum EM_WORKSTATDETECTION_TYPE {
+ /**
+ * 未知
+ */
+ EM_WORKSTATDETECTION_UNKNOWN(0, "未知"),
+ /**
+ * 脱岗检测
+ */
+ EM_WORKSTATDETECTION_NO_WORKER(1, "脱岗检测"),
+ /**
+ * 单人作业
+ */
+ EM_WORKSTATDETECTION_SINGLE_WORKER(2, "单人作业"),
+ /**
+ * 工作负责人脱岗检测
+ */
+ EM_WORKSTATDETECTION_NO_WORKER_LEADER(3, "工作负责人脱岗检测"),
+ /**
+ * 手部消毒检测
+ */
+ EM_WORKSTATDETECTION_HAND_DISINFECTION(4, "手部消毒检测"),
+ /**
+ * 蘸脚动作检测
+ */
+ EM_WORKSTATDETECTION_FOOT_DIP(5, "蘸脚动作检测"),
+ /**
+ * 换鞋动作检测
+ */
+ EM_WORKSTATDETECTION_SHOES_CHANGE(6, "换鞋动作检测");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_WORKSTATDETECTION_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_WORKSTATDETECTION_TYPE enumType : EM_WORKSTATDETECTION_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_WORKSTATDETECTION_TYPE enumType : EM_WORKSTATDETECTION_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_WORKSTATDETECTION_TYPE getEnum(int value) {
+ for (EM_WORKSTATDETECTION_TYPE e : EM_WORKSTATDETECTION_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_WORKSTATDETECTION_TYPE.EM_WORKSTATDETECTION_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_WORKSUIT_ABSTRACT_ERRCODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_WORKSUIT_ABSTRACT_ERRCODE.java
new file mode 100644
index 0000000..ccdeb1f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_WORKSUIT_ABSTRACT_ERRCODE.java
@@ -0,0 +1,68 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 工装建模错误码
+ * @date 2022/10/09 11:22:52
+ */
+public enum EM_WORKSUIT_ABSTRACT_ERRCODE {
+ /**
+ * 未知
+ */
+ EM_WORKSUIT_ABSTRACT_ERRCODE_UNKNWON(0, "未知"),
+ /**
+ * 建模失败
+ */
+ EM_WORKSUIT_ABSTRACT_ERRCODE_FAILED(1, "建模失败"),
+ /**
+ * 系统异常(如Licence失效、建模分析器未启动导致的失败)
+ */
+ EM_WORKSUIT_ABSTRACT_ERRCODE_SYSERR(2, "系统异常(如Licence失效、建模分析器未启动导致的失败)"),
+ /**
+ * 数据库操作失败
+ */
+ EM_WORKSUIT_ABSTRACT_ERRCODE_DB_ERROR(3, "数据库操作失败"),
+ /**
+ * 工装数量超过限制
+ */
+ EM_WORKSUIT_ABSTRACT_ERRCODE_OVER_NUM(4, "工装数量超过限制"),
+ /**
+ * 剩余存储空间大小不足
+ */
+ EM_WORKSUIT_ABSTRACT_ERRCODE_NO_STORAGE(5, "剩余存储空间大小不足");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_WORKSUIT_ABSTRACT_ERRCODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_WORKSUIT_ABSTRACT_ERRCODE enumType : EM_WORKSUIT_ABSTRACT_ERRCODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_WORKSUIT_ABSTRACT_ERRCODE enumType : EM_WORKSUIT_ABSTRACT_ERRCODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_WORKSUIT_APPEND_ERRCODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_WORKSUIT_APPEND_ERRCODE.java
new file mode 100644
index 0000000..45023b0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_WORKSUIT_APPEND_ERRCODE.java
@@ -0,0 +1,80 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 工装合规导入返回的错误码信息
+ * @date 2022/10/08 19:50:19
+ */
+public enum EM_WORKSUIT_APPEND_ERRCODE {
+ /**
+ * 未知
+ */
+ EM_WORKSUIT_APPEND_ERRCODE_UNKNOWN(-1, "未知"),
+ /**
+ * 成功
+ */
+ EM_WORKSUIT_APPEND_ERRCODE_SUCCESS(0, "成功"),
+ /**
+ * 组ID不存在或为空
+ */
+ EM_WORKSUIT_APPEND_ERRCODE_INVALID_ID(1, "组ID不存在或为空"),
+ /**
+ * 数据库操作失败
+ */
+ EM_WORKSUIT_APPEND_ERRCODE_DB_ERROR(2, "数据库操作失败"),
+ /**
+ * 图片大小不对
+ */
+ EM_WORKSUIT_APPEND_ERRCODE_IMAGE_SIZE(3, "图片大小不对"),
+ /**
+ * 图片分辨率不对
+ */
+ EM_WORKSUIT_APPEND_ERRCODE_IMAGE_RESO(4, "图片分辨率不对"),
+ /**
+ * 图片文件写入失败
+ */
+ EM_WORKSUIT_APPEND_ERRCODE_IMAGE_WRITE(5, "图片文件写入失败");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_WORKSUIT_APPEND_ERRCODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_WORKSUIT_APPEND_ERRCODE enumType : EM_WORKSUIT_APPEND_ERRCODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_WORKSUIT_APPEND_ERRCODE enumType : EM_WORKSUIT_APPEND_ERRCODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+ public static EM_WORKSUIT_APPEND_ERRCODE getEnum(int value) {
+ for (EM_WORKSUIT_APPEND_ERRCODE e : EM_WORKSUIT_APPEND_ERRCODE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_WORKSUIT_APPEND_ERRCODE.EM_WORKSUIT_APPEND_ERRCODE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_WORKSUIT_GROUP_POLICY.java b/src/main/java/com/netsdk/lib/enumeration/EM_WORKSUIT_GROUP_POLICY.java
new file mode 100644
index 0000000..b7d637a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_WORKSUIT_GROUP_POLICY.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 工装合规组优先方案
+ * @date 2022/10/08 17:05:54
+ */
+public enum EM_WORKSUIT_GROUP_POLICY {
+ /**
+ * 未知
+ */
+ EM_WORKSUIT_GROUP_POLICY_UNKNWON(-1, "未知"),
+ /**
+ * 全身
+ */
+ EM_WORKSUIT_GROUP_POLICY_WHOLE_BODY(0, "全身"),
+ /**
+ * 上半身
+ */
+ EM_WORKSUIT_GROUP_POLICY_UPPER_BODY(1, "上半身");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_WORKSUIT_GROUP_POLICY(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_WORKSUIT_GROUP_POLICY enumType : EM_WORKSUIT_GROUP_POLICY.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_WORKSUIT_GROUP_POLICY enumType : EM_WORKSUIT_GROUP_POLICY.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_WORKSUIT_GROUP_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_WORKSUIT_GROUP_TYPE.java
new file mode 100644
index 0000000..57b6d95
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_WORKSUIT_GROUP_TYPE.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 工装合规组类型
+ * @date 2022/10/08 17:05:54
+ */
+public enum EM_WORKSUIT_GROUP_TYPE {
+ /**
+ * 未知
+ */
+ EM_WORKSUIT_GROUP_TYPE_UNKNWON(0, "未知"),
+ /**
+ * 注册库(布控名单)
+ */
+ EM_WORKSUIT_GROUP_TYPE_BLOCK(1, "注册库(布控名单)");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_WORKSUIT_GROUP_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_WORKSUIT_GROUP_TYPE enumType : EM_WORKSUIT_GROUP_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_WORKSUIT_GROUP_TYPE enumType : EM_WORKSUIT_GROUP_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_WORK_HELMET_STATE.java b/src/main/java/com/netsdk/lib/enumeration/EM_WORK_HELMET_STATE.java
new file mode 100644
index 0000000..351a37d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_WORK_HELMET_STATE.java
@@ -0,0 +1,70 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author : 260611
+ * @description : 安全帽佩戴状态
+ * @since : Created in 2022/03/10 11:17
+ */
+
+public enum EM_WORK_HELMET_STATE {
+ /**
+ * 未知
+ */
+ EM_HELMET_STATE_UNKNOWN(0, "未知"),
+ /**
+ * 不带安全帽
+ */
+ EM_HELMET_STATE_NOTWEAR(1, "不带安全帽"),
+ /**
+ * 有带安全帽
+ */
+ EM_HELMET_STATE_WEAR(2, "有带安全帽"),
+ /**
+ * 不存在指定颜色的安全帽
+ */
+ EM_HELMET_STATE_INCONFORMITY_COLOR(3, "不存在指定颜色的安全帽");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_WORK_HELMET_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_WORK_HELMET_STATE enumType : EM_WORK_HELMET_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_WORK_HELMET_STATE enumType : EM_WORK_HELMET_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static EM_WORK_HELMET_STATE getEnum(int value) {
+ for (EM_WORK_HELMET_STATE e : EM_WORK_HELMET_STATE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_WORK_HELMET_STATE.EM_HELMET_STATE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_XRAY_COMM_ABNORMITY_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_XRAY_COMM_ABNORMITY_TYPE.java
new file mode 100644
index 0000000..4c373ce
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_XRAY_COMM_ABNORMITY_TYPE.java
@@ -0,0 +1,123 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * X光机故障类型
+*/
+public enum EM_XRAY_COMM_ABNORMITY_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_XRAY_COMM_ABNORMITY_TYPE_UNKNWON(-1, "未知"),
+ /**
+ * 射线源监管故障
+ */
+ EM_XRAY_COMM_ABNORMITY_TYPE_SOURCE_SUPERVISION_FAILURE(0, "射线源监管故障"),
+ /**
+ * 射线源互锁故障
+ */
+ EM_XRAY_COMM_ABNORMITY_TYPE_SOURCE_INTERLOCK_FAILURE(1, "射线源互锁故障"),
+ /**
+ * 射线源负压过高
+ */
+ EM_XRAY_COMM_ABNORMITY_TYPE_SOURCE_HIGH_NEGATIVE_PRESSURE(2, "射线源负压过高"),
+ /**
+ * 射线源正压过高
+ */
+ EM_XRAY_COMM_ABNORMITY_TYPE_SOURCE_HIGH_POSITIVE_PRESSURE(3, "射线源正压过高"),
+ /**
+ * 射线源温度过高
+ */
+ EM_XRAY_COMM_ABNORMITY_TYPE_SOURCE_HIGH_TEMPERATURE(4, "射线源温度过高"),
+ /**
+ * 射线源电弧故障
+ */
+ EM_XRAY_COMM_ABNORMITY_TYPE_SOURCE_ARC_FAULT(5, "射线源电弧故障"),
+ /**
+ * 射线源电流过大
+ */
+ EM_XRAY_COMM_ABNORMITY_TYPE_SOURCE_OVERCURRENT(6, "射线源电流过大"),
+ /**
+ * 射线源功率限制
+ */
+ EM_XRAY_COMM_ABNORMITY_TYPE_SOURCE_POWER_LIMIT(7, "射线源功率限制"),
+ /**
+ * 射线源电压过高
+ */
+ EM_XRAY_COMM_ABNORMITY_TYPE_SOURCE_HIGH_VOLTAGE(8, "射线源电压过高"),
+ /**
+ * 单片机与射线源通信异常
+ */
+ EM_XRAY_COMM_ABNORMITY_TYPE_COMMUNICATION_ERROR1(9, "单片机与射线源通信异常"),
+ /**
+ * 服务器与工控板通信异常
+ */
+ EM_XRAY_COMM_ABNORMITY_TYPE_COMMUNICATION_ERROR2(10, "服务器与工控板通信异常"),
+ /**
+ * 服务器与探测器通信异常
+ */
+ EM_XRAY_COMM_ABNORMITY_TYPE_COMMUNICATION_ERROR3(11, "服务器与探测器通信异常"),
+ /**
+ * A端节能传感器被遮挡或未对齐
+ */
+ EM_XRAY_COMM_ABNORMITY_TYPE_SENSOR1_A_BLOCKED(12, "A端节能传感器被遮挡或未对齐"),
+ /**
+ * B端节能传感器被遮挡或未对齐
+ */
+ EM_XRAY_COMM_ABNORMITY_TYPE_SENSOR1_B_BLOCKED(13, "B端节能传感器被遮挡或未对齐"),
+ /**
+ * A端过包传感器被遮挡或未对齐
+ */
+ EM_XRAY_COMM_ABNORMITY_TYPE_SENSOR2_A_BLOCKED(14, "A端过包传感器被遮挡或未对齐"),
+ /**
+ * B端过包传感器被遮挡或未对齐
+ */
+ EM_XRAY_COMM_ABNORMITY_TYPE_SENSOR2_B_BLOCKED(15, "B端过包传感器被遮挡或未对齐"),
+ /**
+ * 射线源欠压
+ */
+ EM_XRAY_COMM_ABNORMITY_TYPE_SOURCE_UNDERVOLTAGE(16, "射线源欠压"),
+ /**
+ * 射线源欠流
+ */
+ EM_XRAY_COMM_ABNORMITY_TYPE_SOURCE_UNDERCURRENT(17, "射线源欠流"),
+ /**
+ * 电机过热
+ */
+ EM_XRAY_COMM_ABNORMITY_TYPE_MOTOR_OVERHEATED(18, "电机过热");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_XRAY_COMM_ABNORMITY_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_XRAY_COMM_ABNORMITY_TYPE enumType : EM_XRAY_COMM_ABNORMITY_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_XRAY_COMM_ABNORMITY_TYPE enumType : EM_XRAY_COMM_ABNORMITY_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_XRAY_DETECTION_JUDGE_REMOTELY.java b/src/main/java/com/netsdk/lib/enumeration/EM_XRAY_DETECTION_JUDGE_REMOTELY.java
new file mode 100644
index 0000000..cb94119
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_XRAY_DETECTION_JUDGE_REMOTELY.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 是否使用远程判图
+* @origin autoTool
+* @date 2023/04/19 15:38:12
+*/
+public enum EM_XRAY_DETECTION_JUDGE_REMOTELY {
+/**
+未知, 当表示为未知时意为本地不送远程判图,集中判图时送到远程判图
+*/
+ EM_XRAY_DETECTION_JUDGE_REMOTELY_UNKNOWN(-1, "未知, 当表示为未知时意为本地不送远程判图,集中判图时送到远程判图"),
+/**
+不送远端三方进行判图
+*/
+ EM_XRAY_DETECTION_JUDGE_REMOTELY_NOT_SEND_JUDGE(0, "不送远端三方进行判图"),
+/**
+送远端三方进行判图
+*/
+ EM_XRAY_DETECTION_JUDGE_REMOTELY_SEND_JUDGE(1, "送远端三方进行判图");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_XRAY_DETECTION_JUDGE_REMOTELY(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_XRAY_DETECTION_JUDGE_REMOTELY enumType : EM_XRAY_DETECTION_JUDGE_REMOTELY.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_XRAY_DETECTION_JUDGE_REMOTELY enumType : EM_XRAY_DETECTION_JUDGE_REMOTELY.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_XRAY_DETECTION_JUDGE_REMOTELY getEnum(int value) {
+ for (EM_XRAY_DETECTION_JUDGE_REMOTELY e : EM_XRAY_DETECTION_JUDGE_REMOTELY.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_XRAY_DETECTION_JUDGE_REMOTELY.EM_XRAY_DETECTION_JUDGE_REMOTELY_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_XRAY_IMAGE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_XRAY_IMAGE_TYPE.java
new file mode 100644
index 0000000..bd342a2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_XRAY_IMAGE_TYPE.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * X光机图片类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 09:19
+ */
+public enum EM_XRAY_IMAGE_TYPE {
+ EM_XRAY_IMAGE_TYPE_UNKNOWN(-1, "未知"),
+ EM_XRAY_IMAGE_TYPE_COLOR(0, "彩图"),
+ EM_XRAY_IMAGE_COLOR_TYPE_OVERLAY(1, "彩色叠加图");
+
+ private int value;
+ private String note;
+
+ private EM_XRAY_IMAGE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL.java b/src/main/java/com/netsdk/lib/enumeration/EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL.java
new file mode 100644
index 0000000..c07699b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL.java
@@ -0,0 +1,89 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description X光机物品检测配置等级
+* @date 2022/12/01 16:22:06
+*/
+public enum EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL {
+/**
+未知
+*/
+ EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL_UNKNWON(-1, "未知"),
+/**
+高
+*/
+ EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL_HIGH(0, "高"),
+/**
+中
+*/
+ EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL_MID(1, "中"),
+/**
+普通
+*/
+ EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL_NORMAL(2, "普通"),
+/**
+自定义1
+*/
+ EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL_CUSTOM1(3, "自定义1"),
+/**
+自定义2
+*/
+ EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL_CUSTOM2(4, "自定义2"),
+/**
+自定义3
+*/
+ EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL_CUSTOM3(5, "自定义3"),
+/**
+自定义4
+*/
+ EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL_CUSTOM4(6, "自定义4"),
+/**
+自定义5
+*/
+ EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL_CUSTOM5(7, "自定义5");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL enumType : EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL enumType : EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL getEnum(int value) {
+ for (EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL e : EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL.EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL_UNKNWON;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_XRAY_PACKAGE_MODE.java b/src/main/java/com/netsdk/lib/enumeration/EM_XRAY_PACKAGE_MODE.java
new file mode 100644
index 0000000..538df5d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_XRAY_PACKAGE_MODE.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 包裹产生方式
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 09:19
+ */
+public enum EM_XRAY_PACKAGE_MODE {
+ EM_XRAY_PACKAGE_MODE_UNKNOWN(-1, "未知方式"),
+ EM_XRAY_PACKAGE_MODE_LOCAL(0, "本地判图结果"),
+ EM_XRAY_PACKAGE_MODE_CENTRAL(1, "集中判图模式中的本地预判结果");
+
+ private int value;
+ private String note;
+
+ private EM_XRAY_PACKAGE_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_XRAY_RELATED_IMAGE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/EM_XRAY_RELATED_IMAGE_TYPE.java
new file mode 100644
index 0000000..5735219
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_XRAY_RELATED_IMAGE_TYPE.java
@@ -0,0 +1,70 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description X光机关联图片类型
+* @origin autoTool
+* @date 2023/04/19 15:40:38
+*/
+public enum EM_XRAY_RELATED_IMAGE_TYPE {
+/**
+未知
+*/
+ EM_XRAY_RELATED_IMAGE_TYPE_UNKNOWN(-1, "未知"),
+/**
+表示目标大图
+*/
+ EM_XRAY_RELATED_IMAGE_TYPE_LARGE_FACE(0, "表示目标大图"),
+/**
+表示目标小图
+*/
+ EM_XRAY_RELATED_IMAGE_TYPE_SMALL_FACE(1, "表示目标小图"),
+/**
+表示包裹可见光图
+*/
+ EM_XRAY_RELATED_IMAGE_TYPE_PACKAGE_VISIBLE_LIGHT(2, "表示包裹可见光图");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_XRAY_RELATED_IMAGE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_XRAY_RELATED_IMAGE_TYPE enumType : EM_XRAY_RELATED_IMAGE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_XRAY_RELATED_IMAGE_TYPE enumType : EM_XRAY_RELATED_IMAGE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static EM_XRAY_RELATED_IMAGE_TYPE getEnum(int value) {
+ for (EM_XRAY_RELATED_IMAGE_TYPE e : EM_XRAY_RELATED_IMAGE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_XRAY_RELATED_IMAGE_TYPE.EM_XRAY_RELATED_IMAGE_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_XRAY_SHELL_OPEN_POSITION.java b/src/main/java/com/netsdk/lib/enumeration/EM_XRAY_SHELL_OPEN_POSITION.java
new file mode 100644
index 0000000..2f77e43
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_XRAY_SHELL_OPEN_POSITION.java
@@ -0,0 +1,67 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * X光机外罩打开位置
+*/
+public enum EM_XRAY_SHELL_OPEN_POSITION
+{
+ /**
+ * 未知
+ */
+ EM_XRAY_SHELL_OPEN_POSITION_UNKNWON(-1, "未知"),
+ /**
+ * 不区分位置
+ */
+ EM_XRAY_SHELL_OPEN_POSITION_INSENSITIVE(0, "不区分位置"),
+ /**
+ * A端左侧(面向A端通道时)
+ */
+ EM_XRAY_SHELL_OPEN_POSITION_A_LEFT(1, "A端左侧(面向A端通道时)"),
+ /**
+ * A端右侧(面向A端通道时)
+ */
+ EM_XRAY_SHELL_OPEN_POSITION_A_RIGHT(2, "A端右侧(面向A端通道时)"),
+ /**
+ * B端左侧(面向B端通道时)
+ */
+ EM_XRAY_SHELL_OPEN_POSITION_B_LEFT(3, "B端左侧(面向B端通道时)"),
+ /**
+ * B端右侧(面向B端通道时)
+ */
+ EM_XRAY_SHELL_OPEN_POSITION_B_RIGHT(4, "B端右侧(面向B端通道时)");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ EM_XRAY_SHELL_OPEN_POSITION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (EM_XRAY_SHELL_OPEN_POSITION enumType : EM_XRAY_SHELL_OPEN_POSITION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (EM_XRAY_SHELL_OPEN_POSITION enumType : EM_XRAY_SHELL_OPEN_POSITION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/EM_ZONE_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/EM_ZONE_STATUS.java
new file mode 100644
index 0000000..478177f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/EM_ZONE_STATUS.java
@@ -0,0 +1,77 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 防区异常状态
+* @date 2022/10/09 11:29:42
+*/
+public enum EM_ZONE_STATUS {
+/**
+未知
+*/
+ EM_ZONE_STATUS_UNKNOWN(0, "未知"),
+/**
+防区报警/打开
+*/
+ EM_ZONE_STATUS_ALARM(1, "防区报警/打开"),
+/**
+防区防拆
+*/
+ EM_ZONE_STATUS_TAMPER(2, "防区防拆"),
+/**
+防区防遮挡
+*/
+ EM_ZONE_STATUS_MASK(3, "防区防遮挡"),
+/**
+防区短路
+*/
+ EM_ZONE_STATUS_SHORT(4, "防区短路"),
+/**
+防区正常
+*/
+ EM_ZONE_STATUS_NORMAL(5, "防区正常");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+EM_ZONE_STATUS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (EM_ZONE_STATUS enumType : EM_ZONE_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (EM_ZONE_STATUS enumType : EM_ZONE_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static EM_ZONE_STATUS getEnum(int value) {
+ for (EM_ZONE_STATUS e : EM_ZONE_STATUS.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return EM_ZONE_STATUS.EM_ZONE_STATUS_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/ENUMERROR.java b/src/main/java/com/netsdk/lib/enumeration/ENUMERROR.java
new file mode 100644
index 0000000..f6567da
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/ENUMERROR.java
@@ -0,0 +1,540 @@
+package com.netsdk.lib.enumeration;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description netSdk错误类型枚举
+ * @since 2020/7/28
+ */
+public enum ENUMERROR {
+ NET_UNDEFIND(-2, "没有定义"),
+ NET_NOERROR(0, "没有错误"),
+ NET_ERROR(-1, "未知错误"),
+ NET_SYSTEM_ERROR(1, "Windows系统出错"),
+ NET_NETWORK_ERROR(2, "网络错误,可能是因为网络超时"),
+ NET_DEV_VER_NOMATCH(3, "设备协议不匹配"),
+ NET_INVALID_HANDLE(4, "句柄无效"),
+ NET_OPEN_CHANNEL_ERROR(5, "打开通道失败"),
+ NET_CLOSE_CHANNEL_ERROR(6, "关闭通道失败"),
+ NET_ILLEGAL_PARAM(7, "用户参数不合法"),
+ NET_SDK_INIT_ERROR(8, "SDK初始化出错"),
+ NET_SDK_UNINIT_ERROR(9, "SDK清理出错"),
+ NET_RENDER_OPEN_ERROR(10, "申请render资源出错"),
+ NET_DEC_OPEN_ERROR(11, "打开解码库出错"),
+ NET_DEC_CLOSE_ERROR(12, "关闭解码库出错"),
+ NET_MULTIPLAY_NOCHANNEL(13, "多画面预览中检测到通道数为0"),
+ NET_TALK_INIT_ERROR(14, "录音库初始化失败"),
+ NET_TALK_NOT_INIT(15, "录音库未经初始化"),
+ NET_TALK_SENDDATA_ERROR(16, "发送音频数据出错"),
+ NET_REAL_ALREADY_SAVING(17, "实时数据已经处于保存状态"),
+ NET_NOT_SAVING(18, "未保存实时数据"),
+ NET_OPEN_FILE_ERROR(19, "打开文件出错"),
+ NET_PTZ_SET_TIMER_ERROR(20, "启动云台控制定时器失败"),
+ NET_RETURN_DATA_ERROR(21, "对返回数据的校验出错"),
+ NET_INSUFFICIENT_BUFFER(22, "没有足够的缓存"),
+ NET_NOT_SUPPORTED(23, "当前SDK未支持该功能"),
+ NET_NO_RECORD_FOUND(24, "查询不到录像"),
+ NET_NOT_AUTHORIZED(25, "无操作权限"),
+ NET_NOT_NOW(26, "暂时无法执行"),
+ NET_NO_TALK_CHANNEL(27, "未发现对讲通道"),
+ NET_NO_AUDIO(28, "未发现音频"),
+ NET_NO_INIT(29, "网络SDK未经初始化"),
+ NET_DOWNLOAD_END(30, "下载已结束"),
+ NET_EMPTY_LIST(31, "查询结果为空"),
+ NET_ERROR_GETCFG_SYSATTR(32, "获取系统属性配置失败"),
+ NET_ERROR_GETCFG_SERIAL(33, "获取序列号失败"),
+ NET_ERROR_GETCFG_GENERAL(34, "获取常规属性失败"),
+ NET_ERROR_GETCFG_DSPCAP(35, "获取DSP能力描述失败"),
+ NET_ERROR_GETCFG_NETCFG(36, "获取网络配置失败"),
+ NET_ERROR_GETCFG_CHANNAME(37, "获取通道名称失败"),
+ NET_ERROR_GETCFG_VIDEO(38, "获取视频属性失败"),
+ NET_ERROR_GETCFG_RECORD(39, "获取录象配置失败"),
+ NET_ERROR_GETCFG_PRONAME(40, "获取解码器协议名称失败"),
+ NET_ERROR_GETCFG_FUNCNAME(41, "获取232串口功能名称失败"),
+ NET_ERROR_GETCFG_485DECODER(42, "获取解码器属性失败"),
+ NET_ERROR_GETCFG_232COM(43, "获取232串口配置失败"),
+ NET_ERROR_GETCFG_ALARMIN(44, "获取外部报警输入配置失败"),
+ NET_ERROR_GETCFG_ALARMDET(45, "获取动态检测报警失败"),
+ NET_ERROR_GETCFG_SYSTIME(46, "获取设备时间失败"),
+ NET_ERROR_GETCFG_PREVIEW(47, "获取预览参数失败"),
+ NET_ERROR_GETCFG_AUTOMT(48, "获取自动维护配置失败"),
+ NET_ERROR_GETCFG_VIDEOMTRX(49, "获取视频矩阵配置失败"),
+ NET_ERROR_GETCFG_COVER(50, "获取区域遮挡配置失败"),
+ NET_ERROR_GETCFG_WATERMAKE(51, "获取图象水印配置失败"),
+ NET_ERROR_GETCFG_MULTICAST(52, "获取配置失败位置:组播端口按通道配置"),
+ NET_ERROR_SETCFG_GENERAL(55, "修改常规属性失败"),
+ NET_ERROR_SETCFG_NETCFG(56, "修改网络配置失败"),
+ NET_ERROR_SETCFG_CHANNAME(57, "修改通道名称失败"),
+ NET_ERROR_SETCFG_VIDEO(58, "修改视频属性失败"),
+ NET_ERROR_SETCFG_RECORD(59, "修改录象配置失败"),
+ NET_ERROR_SETCFG_485DECODER(60, "修改解码器属性失败"),
+ NET_ERROR_SETCFG_232COM(61, "修改232串口配置失败"),
+ NET_ERROR_SETCFG_ALARMIN(62, "修改外部输入报警配置失败"),
+ NET_ERROR_SETCFG_ALARMDET(63, "修改动态检测报警配置失败"),
+ NET_ERROR_SETCFG_SYSTIME(64, "修改设备时间失败"),
+ NET_ERROR_SETCFG_PREVIEW(65, "修改预览参数失败"),
+ NET_ERROR_SETCFG_AUTOMT(66, "修改自动维护配置失败"),
+ NET_ERROR_SETCFG_VIDEOMTRX(67, "修改视频矩阵配置失败"),
+ NET_ERROR_SETCFG_COVER(68, "修改区域遮挡配置失败"),
+ NET_ERROR_SETCFG_WATERMAKE(69, "修改图象水印配置失败"),
+ NET_ERROR_SETCFG_WLAN(70, "修改无线网络信息失败"),
+ NET_ERROR_SETCFG_WLANDEV(71, "选择无线网络设备失败"),
+ NET_ERROR_SETCFG_REGISTER(72, "修改主动注册参数配置失败"),
+ NET_ERROR_SETCFG_CAMERA(73, "修改摄像头属性配置失败"),
+ NET_ERROR_SETCFG_INFRARED(74, "修改红外报警配置失败"),
+ NET_ERROR_SETCFG_SOUNDALARM(75, "修改音频报警配置失败"),
+ NET_ERROR_SETCFG_STORAGE(76, "修改存储位置配置失败"),
+ NET_AUDIOENCODE_NOTINIT(77, "音频编码接口没有成功初始化"),
+ NET_DATA_TOOLONGH(78, "数据过长"),
+ NET_UNSUPPORTED(79, "设备不支持该操作"),
+ NET_DEVICE_BUSY(80, "设备资源不足"),
+ NET_SERVER_STARTED(81, "服务器已经启动"),
+ NET_SERVER_STOPPED(82, "服务器尚未成功启动"),
+ NET_LISTER_INCORRECT_SERIAL(83, "输入序列号有误"),
+ NET_QUERY_DISKINFO_FAILED(84, "获取硬盘信息失败"),
+ NET_ERROR_GETCFG_SESSION(85, "获取连接Session信息"),
+ NET_USER_FLASEPWD_TRYTIME(86, "输入密码错误超过限制次数"),
+ NET_LOGIN_ERROR_PASSWORD(100, "密码不正确"),
+ NET_LOGIN_ERROR_USER(101, "帐户不存在"),
+ NET_LOGIN_ERROR_TIMEOUT(102, "等待登录返回超时"),
+ NET_LOGIN_ERROR_RELOGGIN(103, "帐号已登录"),
+ NET_LOGIN_ERROR_LOCKED(104, "帐号已被锁定"),
+ NET_LOGIN_ERROR_BLACKLIST(105, "帐号已被列为禁止名单"),
+ NET_LOGIN_ERROR_BUSY(106, "资源不足,系统忙"),
+ NET_LOGIN_ERROR_CONNECT(107, "登录设备超时,请检查网络并重试"),
+ NET_LOGIN_ERROR_NETWORK(108, "网络连接失败"),
+ NET_LOGIN_ERROR_SUBCONNECT(109, "登录设备成功,但无法创建视频通道,请检查网络状况"),
+ NET_LOGIN_ERROR_MAXCONNECT(110, "超过最大连接数"),
+ NET_LOGIN_ERROR_PROTOCOL3_ONLY(111, "只支持3代协议"),
+ NET_LOGIN_ERROR_UKEY_LOST(112, "未插入U盾或U盾信息错误"),
+ NET_LOGIN_ERROR_NO_AUTHORIZED(113, "客户端IP地址没有登录权限"),
+ NET_LOGIN_ERROR_USER_OR_PASSOWRD(117, "账号或密码错误"),
+ NET_LOGIN_ERROR_DEVICE_NOT_INIT(118, "设备尚未初始化,不能登录,请先初始化设备"),
+ NET_RENDER_SOUND_ON_ERROR(120, "Render库打开音频出错"),
+ NET_RENDER_SOUND_OFF_ERROR(121, "Render库关闭音频出错"),
+ NET_RENDER_SET_VOLUME_ERROR(122, "Render库控制音量出错"),
+ NET_RENDER_ADJUST_ERROR(123, "Render库设置画面参数出错"),
+ NET_RENDER_PAUSE_ERROR(124, "Render库暂停播放出错"),
+ NET_RENDER_SNAP_ERROR(125, "Render库抓图出错"),
+ NET_RENDER_STEP_ERROR(126, "Render库步进出错"),
+ NET_RENDER_FRAMERATE_ERROR(127, "Render库设置帧率出错"),
+ NET_RENDER_DISPLAYREGION_ERROR(128, "Render库设置显示区域出错"),
+ NET_RENDER_GETOSDTIME_ERROR(129, "Render库获取当前播放时间出错"),
+ NET_GROUP_EXIST(140, "组名已存在"),
+ NET_GROUP_NOEXIST(141, "组名不存在"),
+ NET_GROUP_RIGHTOVER(142, "组的权限超出权限列表范围"),
+ NET_GROUP_HAVEUSER(143, "组下有用户,不能删除"),
+ NET_GROUP_RIGHTUSE(144, "组的某个权限被用户使用,不能删除"),
+ NET_GROUP_SAMENAME(145, "新组名同已有组名重复"),
+ NET_USER_EXIST(146, "用户已存在"),
+ NET_USER_NOEXIST(147, "用户不存在"),
+ NET_USER_RIGHTOVER(148, "用户权限超出组权限"),
+ NET_USER_PWD(149, "保留帐号,不容许修改密码"),
+ NET_USER_FLASEPWD(150, "密码不正确"),
+ NET_USER_NOMATCHING(151, "密码不匹配"),
+ NET_USER_INUSE(152, "账号正在使用中"),
+ NET_ERROR_GETCFG_ETHERNET(300, "获取网卡配置失败"),
+ NET_ERROR_GETCFG_WLAN(301, "获取无线网络信息失败"),
+ NET_ERROR_GETCFG_WLANDEV(302, "获取无线网络设备失败"),
+ NET_ERROR_GETCFG_REGISTER(303, "获取主动注册参数失败"),
+ NET_ERROR_GETCFG_CAMERA(304, "获取摄像头属性失败"),
+ NET_ERROR_GETCFG_INFRARED(305, "获取红外报警配置失败"),
+ NET_ERROR_GETCFG_SOUNDALARM(306, "获取音频报警配置失败"),
+ NET_ERROR_GETCFG_STORAGE(307, "获取存储位置配置失败"),
+ NET_ERROR_GETCFG_MAIL(308, "获取邮件配置失败"),
+ NET_CONFIG_DEVBUSY(309, "暂时无法设置"),
+ NET_CONFIG_DATAILLEGAL(310, "配置数据不合法"),
+ NET_ERROR_GETCFG_DST(311, "获取夏令时配置失败"),
+ NET_ERROR_SETCFG_DST(312, "设置夏令时配置失败"),
+ NET_ERROR_GETCFG_VIDEO_OSD(313, "获取视频OSD叠加配置失败"),
+ NET_ERROR_SETCFG_VIDEO_OSD(314, "设置视频OSD叠加配置失败"),
+ NET_ERROR_GETCFG_GPRSCDMA(315, "获取CDMA/GPRS网络配置失败"),
+ NET_ERROR_SETCFG_GPRSCDMA(316, "设置CDMA/GPRS网络配置失败"),
+ NET_ERROR_GETCFG_IPFILTER(317, "获取IP过滤配置失败"),
+ NET_ERROR_SETCFG_IPFILTER(318, "设置IP过滤配置失败"),
+ NET_ERROR_GETCFG_TALKENCODE(319, "获取语音对讲编码配置失败"),
+ NET_ERROR_SETCFG_TALKENCODE(320, "设置语音对讲编码配置失败"),
+ NET_ERROR_GETCFG_RECORDLEN(321, "获取录像打包长度配置失败"),
+ NET_ERROR_SETCFG_RECORDLEN(322, "设置录像打包长度配置失败"),
+ NET_DONT_SUPPORT_SUBAREA(323, "不支持网络硬盘分区"),
+ NET_ERROR_GET_AUTOREGSERVER(324, "获取设备上主动注册服务器信息失败"),
+ NET_ERROR_CONTROL_AUTOREGISTER(325, "主动注册重定向注册错误"),
+ NET_ERROR_DISCONNECT_AUTOREGISTER(326, "断开主动注册服务器错误"),
+ NET_ERROR_GETCFG_MMS(327, "获取mms配置失败"),
+ NET_ERROR_SETCFG_MMS(328, "设置mms配置失败"),
+ NET_ERROR_GETCFG_SMSACTIVATION(329, "获取短信激活无线连接配置失败"),
+ NET_ERROR_SETCFG_SMSACTIVATION(330, "设置短信激活无线连接配置失败"),
+ NET_ERROR_GETCFG_DIALINACTIVATION(331, "获取拨号激活无线连接配置失败"),
+ NET_ERROR_SETCFG_DIALINACTIVATION(332, "设置拨号激活无线连接配置失败"),
+ NET_ERROR_GETCFG_VIDEOOUT(333, "查询视频输出参数配置失败"),
+ NET_ERROR_SETCFG_VIDEOOUT(334, "设置视频输出参数配置失败"),
+ NET_ERROR_GETCFG_OSDENABLE(335, "获取osd叠加使能配置失败"),
+ NET_ERROR_SETCFG_OSDENABLE(336, "设置osd叠加使能配置失败"),
+ NET_ERROR_SETCFG_ENCODERINFO(337, "设置数字通道前端编码接入配置失败"),
+ NET_ERROR_GETCFG_TVADJUST(338, "获取TV调节配置失败"),
+ NET_ERROR_SETCFG_TVADJUST(339, "设置TV调节配置失败"),
+ NET_ERROR_CONNECT_FAILED(340, "请求建立连接失败"),
+ NET_ERROR_SETCFG_BURNFILE(341, "请求刻录文件上传失败"),
+ NET_ERROR_SNIFFER_GETCFG(342, "获取抓包配置信息失败"),
+ NET_ERROR_SNIFFER_SETCFG(343, "设置抓包配置信息失败"),
+ NET_ERROR_DOWNLOADRATE_GETCFG(344, "查询下载限制信息失败"),
+ NET_ERROR_DOWNLOADRATE_SETCFG(345, "设置下载限制信息失败"),
+ NET_ERROR_SEARCH_TRANSCOM(346, "查询串口参数失败"),
+ NET_ERROR_GETCFG_POINT(347, "获取预制点信息错误"),
+ NET_ERROR_SETCFG_POINT(348, "设置预制点信息错误"),
+ NET_SDK_LOGOUT_ERROR(349, "SDK没有正常登出设备"),
+ NET_ERROR_GET_VEHICLE_CFG(350, "获取车载配置失败"),
+ NET_ERROR_SET_VEHICLE_CFG(351, "设置车载配置失败"),
+ NET_ERROR_GET_ATM_OVERLAY_CFG(352, "获取atm叠加配置失败"),
+ NET_ERROR_SET_ATM_OVERLAY_CFG(353, "设置atm叠加配置失败"),
+ NET_ERROR_GET_ATM_OVERLAY_ABILITY(354, "获取atm叠加能力失败"),
+ NET_ERROR_GET_DECODER_TOUR_CFG(355, "获取解码器解码轮巡配置失败"),
+ NET_ERROR_SET_DECODER_TOUR_CFG(356, "设置解码器解码轮巡配置失败"),
+ NET_ERROR_CTRL_DECODER_TOUR(357, "控制解码器解码轮巡失败"),
+ NET_GROUP_OVERSUPPORTNUM(358, "超出设备支持最大用户组数目"),
+ NET_USER_OVERSUPPORTNUM(359, "超出设备支持最大用户数目"),
+ NET_ERROR_GET_SIP_CFG(368, "获取SIP配置失败"),
+ NET_ERROR_SET_SIP_CFG(369, "设置SIP配置失败"),
+ NET_ERROR_GET_SIP_ABILITY(370, "获取SIP能力失败"),
+ NET_ERROR_GET_WIFI_AP_CFG(371, "获取WIFI ap配置失败"),
+ NET_ERROR_SET_WIFI_AP_CFG(372, "设置WIFI ap配置失败"),
+ NET_ERROR_GET_DECODE_POLICY(373, "获取解码策略配置失败"),
+ NET_ERROR_SET_DECODE_POLICY(374, "设置解码策略配置失败"),
+ NET_ERROR_TALK_REJECT(375, "拒绝对讲"),
+ NET_ERROR_TALK_OPENED(376, "对讲被其他客户端打开"),
+ NET_ERROR_TALK_RESOURCE_CONFLICIT(377, "资源冲突"),
+ NET_ERROR_TALK_UNSUPPORTED_ENCODE(378, "不支持的语音编码格式"),
+ NET_ERROR_TALK_RIGHTLESS(379, "无权限"),
+ NET_ERROR_TALK_FAILED(380, "请求对讲失败"),
+ NET_ERROR_GET_MACHINE_CFG(381, "获取机器相关配置失败"),
+ NET_ERROR_SET_MACHINE_CFG(382, "设置机器相关配置失败"),
+ NET_ERROR_GET_DATA_FAILED(383, "设备无法获取当前请求数据"),
+ NET_ERROR_MAC_VALIDATE_FAILED(384, "MAC地址验证失败"),
+ NET_ERROR_GET_INSTANCE(385, "获取服务器实例失败"),
+ NET_ERROR_JSON_REQUEST(386, "生成的json字符串错误"),
+ NET_ERROR_JSON_RESPONSE(387, "响应的json字符串错误"),
+ NET_ERROR_VERSION_HIGHER(388, "协议版本低于当前使用的版本"),
+ NET_SPARE_NO_CAPACITY(389, "设备操作失败, 容量不足"),
+ NET_ERROR_SOURCE_IN_USE(390, "显示源被其他输出占用"),
+ NET_ERROR_REAVE(391, "高级用户抢占低级用户资源"),
+ NET_ERROR_NETFORBID(392, "禁止入网"),
+ NET_ERROR_GETCFG_MACFILTER(393, "获取MAC过滤配置失败"),
+ NET_ERROR_SETCFG_MACFILTER(394, "设置MAC过滤配置失败"),
+ NET_ERROR_GETCFG_IPMACFILTER(395, "获取IP/MAC过滤配置失败"),
+ NET_ERROR_SETCFG_IPMACFILTER(396, "设置IP/MAC过滤配置失败"),
+ NET_ERROR_OPERATION_OVERTIME(397, "当前操作超时"),
+ NET_ERROR_SENIOR_VALIDATE_FAILED(398, "高级校验失败"),
+ NET_ERROR_DEVICE_ID_NOT_EXIST(399, "设备ID不存在"),
+ NET_ERROR_UNSUPPORTED(400, "不支持当前操作"),
+ NET_ERROR_PROXY_DLLLOAD(401, "代理库加载失败"),
+ NET_ERROR_PROXY_ILLEGAL_PARAM(402, "代理用户参数不合法"),
+ NET_ERROR_PROXY_INVALID_HANDLE(403, "代理句柄无效"),
+ NET_ERROR_PROXY_LOGIN_DEVICE_ERROR(404, "代理登入前端设备失败"),
+ NET_ERROR_PROXY_START_SERVER_ERROR(405, "启动代理服务失败"),
+ NET_ERROR_SPEAK_FAILED(406, "请求喊话失败"),
+ NET_ERROR_NOT_SUPPORT_F6(407, "设备不支持此F6接口调用"),
+ NET_ERROR_CD_UNREADY(408, "光盘未就绪"),
+ NET_ERROR_DIR_NOT_EXIST(409, "目录不存在"),
+ NET_ERROR_UNSUPPORTED_SPLIT_MODE(410, "设备不支持的分割模式"),
+ NET_ERROR_OPEN_WND_PARAM(411, "开窗参数不合法"),
+ NET_ERROR_LIMITED_WND_COUNT(412, "开窗数量超过限制"),
+ NET_ERROR_UNMATCHED_REQUEST(413, "请求命令与当前模式不匹配"),
+ NET_RENDER_ENABLELARGEPICADJUSTMENT_ERROR(414, "Render库启用高清图像内部调整策略出错"),
+ NET_ERROR_UPGRADE_FAILED(415, "设备升级失败"),
+ NET_ERROR_NO_TARGET_DEVICE(416, "找不到目标设备"),
+ NET_ERROR_NO_VERIFY_DEVICE(417, "找不到验证设备"),
+ NET_ERROR_CASCADE_RIGHTLESS(418, "无级联权限"),
+ NET_ERROR_LOW_PRIORITY(419, "低优先级"),
+ NET_ERROR_REMOTE_REQUEST_TIMEOUT(420, "远程设备请求超时"),
+ NET_ERROR_LIMITED_INPUT_SOURCE(421, "输入源超出最大路数限制"),
+ NET_ERROR_SET_LOG_PRINT_INFO(422, "设置日志打印失败"),
+ NET_ERROR_PARAM_DWSIZE_ERROR(423, "入参的dwsize字段出错"),
+ NET_ERROR_LIMITED_MONITORWALL_COUNT(424, "电视墙数量超过上限"),
+ NET_ERROR_PART_PROCESS_FAILED(425, "部分过程执行失败"),
+ NET_ERROR_TARGET_NOT_SUPPORT(426, "该功能不支持转发"),
+ NET_ERROR_VISITE_FILE(510, "访问文件失败"),
+ NET_ERROR_DEVICE_STATUS_BUSY(511, "设备忙"),
+ NET_USER_PWD_NOT_AUTHORIZED(512, "修改密码无权限"),
+ NET_USER_PWD_NOT_STRONG(513, "密码强度不够"),
+ NET_ERROR_NO_SUCH_CONFIG(514, "没有对应的配置"),
+ NET_ERROR_AUDIO_RECORD_FAILED(515, "录音失败"),
+ NET_ERROR_SEND_DATA_FAILED(516, "数据发送失败"),
+ NET_ERROR_OBSOLESCENT_INTERFACE(517, "废弃接口"),
+ NET_ERROR_INSUFFICIENT_INTERAL_BUF(518, "内部缓冲不足"),
+ NET_ERROR_NEED_ENCRYPTION_PASSWORD(519, "修改设备ip时,需要校验密码"),
+ NET_ERROR_NOSUPPORT_RECORD(520, "设备不支持此记录集"),
+ NET_ERROR_SERIALIZE_ERROR(1010, "数据序列化错误"),
+ NET_ERROR_DESERIALIZE_ERROR(1011, "数据反序列化错误"),
+ NET_ERROR_LOWRATEWPAN_ID_EXISTED(1012, "该无线ID已存在"),
+ NET_ERROR_LOWRATEWPAN_ID_LIMIT(1013, "无线ID数量已超限"),
+ NET_ERROR_LOWRATEWPAN_ID_ABNORMAL(1014, "无线异常添加"),
+ NET_ERROR_ENCRYPT(1015, "加密数据失败"),
+ NET_ERROR_PWD_ILLEGAL(1016, "新密码不合规范"),
+ NET_ERROR_DEVICE_ALREADY_INIT(1017, "设备已经初始化"),
+ NET_ERROR_SECURITY_CODE(1018, "安全码错误"),
+ NET_ERROR_SECURITY_CODE_TIMEOUT(1019, "安全码超出有效期"),
+ NET_ERROR_GET_PWD_SPECI(1020, "获取密码规范失败"),
+ NET_ERROR_NO_AUTHORITY_OF_OPERATION(1021, "无权限进行该操作"),
+ NET_ERROR_DECRYPT(1022, "解密数据失败"),
+ NET_ERROR_2D_CODE(1023, "2D code校验失败"),
+ NET_ERROR_INVALID_REQUEST(1024, "非法的RPC请求"),
+ NET_ERROR_PWD_RESET_DISABLE(1025, "密码重置功能已关闭"),
+ NET_ERROR_PLAY_PRIVATE_DATA(1026, "显示私有数据,比如规则框等失败"),
+ NET_ERROR_ROBOT_OPERATE_FAILED(1027, "机器人操作失败"),
+ NET_ERROR_PHOTOSIZE_EXCEEDSLIMIT(1028, "图片大小超限"),
+ NET_ERROR_USERID_INVALID(1029, "用户ID不存在"),
+ NET_ERROR_EXTRACTFEATURE_FAILED(1030, "照片特征值提取失败"),
+ NET_ERROR_PHOTO_EXIST(1031, "照片已存在"),
+ NET_ERROR_PHOTO_OVERFLOW(1032, "照片数量超过上限"),
+ NET_ERROR_CHANNEL_ALREADY_OPENED(1033, "通道已经打开"),
+ NET_ERROR_CREATE_SOCKET(1034, "创建套接字失败"),
+ NET_ERROR_CHANNEL_NUM(1035, "通道号错误"),
+ NET_ERROR_PHOTO_FORMAT(1036, "图片格式错误"),
+ /**
+ * 内部错误(比如:相关硬件问题,获取公钥失败,内部接口调用失败,写文件失败等等)
+ */
+ NET_ERROR_DIGITAL_CERTIFICATE_INTERNAL_ERROR(1037, "内部错误"),
+ /**
+ * 获取设备ID失败
+ */
+ NET_ERROR_DIGITAL_CERTIFICATE_GET_ID_FAILED(1038, "获取设备ID失败"),
+ NET_ERROR_DIGITAL_CERTIFICATE_IMPORT_ILLEGAL(1039, "证书文件非法(格式不支持或者不是证书文件)"),
+ NET_ERROR_DIGITAL_CERTIFICATE_SN_ERROR(1040, "证书sn重复或错误或不规范"),
+ /**
+ * (本地设备证书与系统中的不匹配devid_cryptoID,或者对端的不符合规则(devid_crytoID))
+ */
+ NET_ERROR_DIGITAL_CERTIFICATE_COMMON_NAME_ILLEGAL(1041, "证书commonName非法"),
+ NET_ERROR_DIGITAL_CERTIFICATE_NO_ROOT_CERT(1042, "根证书未导入或不存在"),
+ NET_ERROR_DIGITAL_CERTIFICATE_CERT_REVOKED(1043, "证书被吊销"),
+ NET_ERROR_DIGITAL_CERTIFICATE_CERT_INVALID(1044, "证书不可用或未生效或已过期"),
+ NET_ERROR_DIGITAL_CERTIFICATE_CERT_ERROR_SIGN(1045, "证书签名不匹配"),
+ NET_ERROR_DIGITAL_CERTIFICATE_COUNTS_UPPER_LIMIT(1046, "超出证书导入上限"),
+ NET_ERROR_DIGITAL_CERTIFICATE_CERT_NO_EXIST(1047, "证书文件不存在(导出证书或者获取对应证书的公钥)"),
+ NET_ERROR_DEFULAT_SEARCH_PORT(1048, "默认搜索端口无法使用(5050,37810)"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_MULTI_APPEND_STOUP(1049, "批量添加人脸停止"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_MULTI_APPEND_ERROR(1050, "批量添加人脸失败"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_GROUP_ID_EXCEED(1051, "组ID超过最大值"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_GROUP_ID_NOT_IN_REGISTER_GROUP(1052, "组ID不存在或为空"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_PICTURE_NOT_FOUND(1053, "无图片数据"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_GENERATE_GROUP_ID_FAILED(1054, "生成组ID超出范围"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_SET_CONFIG_FAILED(1055, "设置配置失败"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_FILE_OPEN_FAILED(1056, "图片文件打开失败"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_FILE_READ_FAILED(1057, "图片文件读取失败"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_FILE_WRITE_FAILED(1058, "图片文件写入失败"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_PICTURE_DPI_ERROR(1059, "图片分辨率异常"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_PICTURE_PX_ERROR(1060, "图片像素异常"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_PICTURE_SIZE_ERROR(1061, "图片大小不对"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_DATA_BASE_ERROR(1062, "数据库操作失败"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_FACE_MAX_NUM(1063, "人员数量超过限制"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_BIRTH_DAY_FORMAT_ERROR(1064, "生日日期格式错误"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_UID_ERROR(1065, "人员UID不存在或为空"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_TOKEN_ERROR(1066, "令牌不存在或为空"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_BEGIN_NUM_OVER_RUN(1067, "查询起始数大于总数"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_ABSTRACT_NUM_ZERO(1068, "需手动建模人数为0"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_ABSTRACT_INIT_ERROR(1069, "建模分析器启动失败"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_AUTO_ABSTRACT_STATE(1070, "设备正在自动建模"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_ABSTRACT_STATE(1071, "设备正在手动建模"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_IM_EX_STATE(1072, "设备正在导入导出"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_PIC_WRITE_FAILED(1073, "图片写入失败"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_GROUP_SPACE_EXCEED(1074, "超出人脸库空间大小限制"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_GROUP_PIC_COUNT_EXCEED(1075, "超出人脸库图片数量限制"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_GROUP_NOT_FOUND(1076, "人脸库不存在"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_FIND_RECORDS_ERROR(1077, "查询原人脸库数据结果无效"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_DELETE_PERSON_ERROR(1078, "删除原人脸库数据失败"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_DELETE_GROUP_ERROR(1079, "删除人脸库失败"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_NAME_FORMAT_ERROR(1080, "命名格式错误"),
+ NET_ERROR_FACE_RECOGNITION_SERVER_FILEPATH_NOT_SET(1081, "图片保存路径未设置"),
+ NET_ERROR_DEVICE_PARSE_PROTOCOL(1079, "设备解析协议错误"),
+ NET_ERROR_DEVICE_INVALID_REQUEST(1080, "设备返回无效请求"),
+ NET_ERROR_DEVICE_INTERNAL_ERROR(1081, "设备内部错误"),
+ NET_ERROR_DEVICE_REQUEST_TIMEOUT(1082, "设备内部请求超时"),
+ NET_ERROR_DEVICE_KEEPALIVE_FAIL(1083, "设备保活失败"),
+ NET_ERROR_DEVICE_NETWORK_ERROR(1084, "设备网络错误"),
+ NET_ERROR_DEVICE_UNKNOWN_ERROR(1085, "设备内部未知错误"),
+ NET_ERROR_DEVICE_COM_INTERFACE_NOTFOUND(1086, "设备组件接口没有找到"),
+ NET_ERROR_DEVICE_COM_IMPLEMENT_NOTFOUND(1087, "设备组件实现没有找到"),
+ NET_ERROR_DEVICE_COM_NOTFOUND(1088, "设备接入组件没有找到"),
+ NET_ERROR_DEVICE_COM_INSTANCE_NOTEXIST(1089, "设备接入组件实例不存在"),
+ NET_ERROR_DEVICE_CREATE_COM_FAIL(1090, "设备组件工厂创建组件失败"),
+ NET_ERROR_DEVICE_GET_COM_FAIL(1091, "设备组件工厂获取组件实例失败"),
+ NET_ERROR_DEVICE_BAD_REQUEST(1092, "设备业务请求不被接受"),
+ NET_ERROR_DEVICE_REQUEST_IN_PROGRESS(1093, "设备已经在处理请求,不接受重复请求"),
+ NET_ERROR_DEVICE_LIMITED_RESOURCE(1094, "设备资源不足"),
+ NET_ERROR_DEVICE_BUSINESS_TIMEOUT(1095, "设备业务超时"),
+ NET_ERROR_DEVICE_TOO_MANY_REQUESTS(1096, "设备接收过多请求"),
+ NET_ERROR_DEVICE_NOT_ALREADY(1097, "设备未准备就绪,不接受业务请求"),
+ NET_ERROR_DEVICE_SEARCHRECORD_TIMEOUT(1098, "设备录像查询超时"),
+ NET_ERROR_DEVICE_SEARCHTIME_INVALID(1099, "设备录像查询时间无效"),
+ NET_ERROR_DEVICE_SSID_INVALID(1100, "设备校验SSID无效"),
+ NET_ERROR_DEVICE_CHANNEL_STREAMTYPE_ERROR(1101, "设备校验通道号或码流类型无效"),
+ NET_ERROR_DEVICE_STREAM_PACKINGFORMAT_UNSUPPORT(1102, "设备不支持该码流打包格式"),
+ NET_ERROR_DEVICE_AUDIO_ENCODINGFORMAT_UNSUPPORT(1103, "设备不支持该语音编码格式"),
+ NET_ERROR_SECURITY_ERROR_SUPPORT_GUI(1104, " 校验请求安全码失败,可使用本地GUI方式重置密码"),
+ NET_ERROR_SECURITY_ERROR_SUPPORT_MULT(1105, "校验请求安全码失败,可使用DH渠道APP、configtool工具重置密码"),
+ NET_ERROR_SECURITY_ERROR_SUPPORT_UNIQUE(1106, "校验请求安全码失败,可登陆Web页面重置密码"),
+ NET_ERROR_STREAMCONVERTOR_DEFECT(1107, "转码库缺失"),
+ NET_ERROR_SECURITY_GENERATE_SAFE_CODE(1108, "调用DH加密库产生安全码失败"),
+ NET_ERROR_SECURITY_GET_CONTACT(1109, "获取联系方式失败"),
+ NET_ERROR_SECURITY_GET_QRCODE(1110, "获取重置密码的二维码信息失败"),
+ NET_ERROR_SECURITY_CANNOT_RESET(1111, "设备未初始化,无法重置"),
+ NET_ERROR_SECURITY_NOT_SUPPORT_CONTACT_MODE(1112, "不支持设置该种联系方式,如只支持设置手机号,却请求设置邮箱"),
+ NET_ERROR_SECURITY_RESPONSE_TIMEOUT(1113, "对端响应超时"),
+ NET_ERROR_SECURITY_AUTHCODE_FORBIDDEN(1114, "尝试校验AuthCode次数过多,禁止校验"),
+ NET_ERROR_TRANCODE_LOGIN_REMOTE_DEV(1115, "(虚拟转码)登陆远程设备失败"),
+ NET_ERROR_TRANCODE_NOFREE_CHANNEL(1116, "(虚拟转码)没有可用的通道资源"),
+ NET_ERROR_VK_INFO_DECRYPT_FAILED(1117, "VK信息解密失败"),
+ NET_ERROR_VK_INFO_DESERIALIZE_FAILED(1118, "VK信息解析失败"),
+ NET_ERROR_GDPR_ABILITY_NOT_ENABLE(1119, "SDK GDPR功能未使能"),
+ /*门禁快速导入及复核错误码 start*/
+ NET_ERROR_FAST_CHECK_NO_AUTH(1120, "门禁快速复核:无权限"),
+ NET_ERROR_FAST_CHECK_NO_FILE(1121, "门禁快速复核:文件不存在"),
+ NET_ERROR_FAST_CHECK_FILE_FAIL(1122, "门禁快速复核:文件准备失败"),
+ NET_ERROR_FAST_CHECK_BUSY(1123, "门禁快速复核:系统忙"),
+ NET_ERROR_FAST_CHECK_NO_PASSWORD(1124, "门禁快速复核:未定义密码, 不允许导出"),
+ NET_ERROR_IMPORT_ACCESS_SEND_FAILD(1125, "门禁快速导入:发送门禁数据失败"),
+ NET_ERROR_IMPORT_ACCESS_BUSY(1126, "门禁快速导入:系统忙, 已经有导入任务"),
+ NET_ERROR_IMPORT_ACCESS_DATAERROR(1127, "门禁快速导入:数据包检验失败"),
+ NET_ERROR_IMPORT_ACCESS_DATAINVALID(1128, "门禁快速导入:数据包非法"),
+ NET_ERROR_IMPORT_ACCESS_SYNC_FALID(1129, "门禁快速导入:同步失败,数据库无法生成"),
+ NET_ERROR_IMPORT_ACCESS_DBFULL(1130, "门禁快速导入:数据库已满, 无法导入"),
+ NET_ERROR_IMPORT_ACCESS_SDFULL(1131, "门禁快速导入:存储空间已满, 无法导入"),
+ NET_ERROR_IMPORT_ACCESS_CIPHER_ERROR(1132, "门禁快速导入:导入压缩包密码不对"),
+ NET_ERROR_INVALID_PARAM(1133, "参数无效"),
+ NET_ERROR_INVALID_PASSWORD(1134, "密码无效"),
+ NET_ERROR_INVALID_FINGERPRINT(1135, "信息无效"),
+ NET_ERROR_INVALID_FACE(1136, "人脸无效"),
+ NET_ERROR_INVALID_CARD(1137, "卡无效"),
+ NET_ERROR_INVALID_USER(1138, "用户无效"),
+ NET_ERROR_GET_SUBSERVICE(1139, "能力集子服务获取失败"),
+ NET_ERROR_GET_METHOD(1140, "获取组件的方法集失败"),
+ NET_ERROR_GET_SUBCAPS(1141, "获取资源实体能力集失败"),
+ NET_ERROR_UPTO_INSERT_LIMIT(1142, "已达插入上限"),
+ NET_ERROR_UPTO_MAX_INSERT_RATE(1143, "已达最大插入速度"),
+ NET_ERROR_ERASE_FINGERPRINT(1144, "清除信息数据失败"),
+ NET_ERROR_ERASE_FACE(1145, "清除人脸数据失败"),
+ NET_ERROR_ERASE_CARD(1146, "清除卡数据失败"),
+ NET_ERROR_NO_RECORD(1147, "没有记录"),
+ NET_ERROR_NOMORE_RECORDS(1148, "查找到最后,没有更多记录"),
+ NET_ERROR_RECORD_ALREADY_EXISTS(1149, "下发卡或信息时,数据重复"),
+ NET_ERROR_EXCEED_MAX_FINGERPRINT_PERUSER(1150, "超过个人最大信息记录数"),
+ NET_ERROR_EXCEED_MAX_CARD_PERUSER(1151, "超过个人最大卡片记录数"),
+ NET_ERROR_EXCEED_ADMINISTRATOR_LIMIT(1152, "超过门禁管理员个数限制"),
+ NET_LOGIN_ERROR_DEVICE_NOT_SUPPORT_HIGHLEVEL_SECURITY_LOGIN(1153, "设备不支持高安全等级登录"),
+ NET_LOGIN_ERROR_DEVICE_ONLY_SUPPORT_HIGHLEVEL_SECURITY_LOGIN(1154, "设备只支持高安全等级登录"),
+ NET_ERROR_VIDEO_CHANNEL_OFFLINE(1155, "此视频通道处于离线,拉流失败"),
+ NET_ERROR_USERID_FORMAT_INCORRECT(1156, "用户编号不规范"),
+ NET_ERROR_CANNOT_FIND_CHANNEL_RELATE_TO_SN(1157, "找不到该SN对应的通道"),
+ NET_ERROR_TASK_QUEUE_OF_CHANNEL_IS_FULL(1158, "该通道的任务队列满"),
+ NET_ERROR_APPLY_USER_INFO_BLOCK_FAIL(1159, "申请不到新的用户信息(权限)块"),
+ NET_ERROR_EXCEED_MAX_PASSWD_PERUSER(1160, "用户密码数量超过限制"),
+ NET_ERROR_PARSE_PROTOCOL(1161, "设备内部异常引起协议解析错误"),
+ NET_ERROR_CARD_NUM_EXIST(1162, "卡号已存在"),
+ NET_ERROR_FINGERPRINT_EXIST(1163, "信息已存在"),
+ NET_ERROR_OPEN_PLAYGROUP_FAIL(1164, "打开播放组失败"),
+ NET_ERROR_ALREADY_IN_PLAYGROUP(1165, "已位于播放组中"),
+ NET_ERROR_QUERY_PLAYGROUP_TIME_FAIL(1166, "查询播放组时间失败"),
+ NET_ERROR_SET_PLAYGROUP_BASECHANNEL_FAIL(1167, "设置播放组基准通道失败"),
+ NET_ERROR_SET_PLAYGROUP_DIRECTION_FAIL(1168, "设置播放组方向失败"),
+ NET_ERROR_SET_PLAYGROUP_SPEED_FAIL(1169, "设置播放组速度失败"),
+ NET_ERROR_ADD_PLAYGROUP_FAIL(1170, "加入播放组失败"),
+ NET_ERROR_EXPORT_AOL_LOGFILE_NO_AUTH(1171, " 导出AOL日志:无权限"),
+ NET_ERROR_EXPORT_AOL_LOGFILE_NO_FILE(1172, "导出AOL日志:文件不存在"),
+ NET_ERROR_EXPORT_AOL_LOGFILE_FILE_FAIL(1173, "导出AOL日志:文件准备失败"),
+ NET_ERROR_EXPORT_AOL_LOGFILE_BUSY(1174, "导出AOL日志:系统忙"),
+ /**
+ * 设备上APP安装相关错误码
+ */
+ NET_ERROR_EMPTY_LICENSE(1175, "License为空"),
+ NET_ERROR_UNSUPPORTED_MODE(1176, "不支持该模式"),
+ NET_ERROR_URL_APP_NOT_MATCH(1177, "URL与APP不匹配"),
+ NET_ERROR_READ_INFO_FAILED(1178, "读取信息失败"),
+ NET_ERROR_WRITE_FAILED(1179, "写入失败"),
+ NET_ERROR_NO_SUCH_APP(1180, "未找到APP"),
+ NET_ERROR_VERIFIF_FAILED(1181, "校验失败"),
+ NET_ERROR_LICENSE_OUT_DATE(1182, "License已过期"),
+ NET_ERROR_UPGRADE_PROGRAM_TOO_OLD(1183, "升级程序版本过低"),
+ NET_ERROR_SECURE_TRANSMIT_BEEN_CUT(1184, "加密传输被裁剪"),
+ NET_ERROR_DEVICE_NOT_SUPPORT_SECURE_TRANSMIT(1185, "设备不支持安全传输"),
+ NET_ERROR_EXTRA_STREAM_LOGIN_FAIL_CAUSE_BY_MAIN_STREAM(1186, "主码流成功的情况下,辅码流登录失败"),
+ NET_ERROR_EXTRA_STREAM_CLOSED_BY_REMOTE_DEVICE(1187, "辅码流被前端关闭"),
+ /*人脸库导入导出错误码 start*/
+ NET_ERROR_IMPORT_FACEDB_SEND_FAILD(1188, "人脸库导入:发送人脸库数据失败"),
+ NET_ERROR_IMPORT_FACEDB_BUSY(1189, "人脸库导入:系统忙, 已经有导入任务"),
+ NET_ERROR_IMPORT_FACEDB_DATAERROR(1190, "人脸库导入:数据包检验失败"),
+ NET_ERROR_IMPORT_FACEDB_DATAINVALID(1191, "人脸库导入:数据包非法"),
+ NET_ERROR_IMPORT_FACEDB_UPGRADE_FAILD(1192, "人脸库导入:上传失败"),
+ NET_ERROR_IMPORT_FACEDB_NO_AUTHORITY(1193, "人脸库导入:用户无权限"),
+ NET_ERROR_IMPORT_FACEDB_ABNORMAL_FILE(1194, " 人脸库导入:文件格式异常"),
+ NET_ERROR_IMPORT_FACEDB_SYNC_FALID(1195, "人脸库导入:同步失败,数据库无法生成"),
+ NET_ERROR_IMPORT_FACEDB_DBFULL(1196, "人脸库导入:数据库已满, 无法导入"),
+ NET_ERROR_IMPORT_FACEDB_SDFULL(1197, "人脸库导入:存储空间已满, 无法导入"),
+ NET_ERROR_IMPORT_FACEDB_CIPHER_ERROR(1198, "人脸库导入:导入压缩包密码不对"),
+ NET_ERROR_EXPORT_FACEDB_NO_AUTH(1199, "人脸库导出:无权限"),
+ NET_ERROR_EXPORT_FACEDB_NO_FILE(1200, "人脸库导出:文件不存在"),
+ NET_ERROR_EXPORT_FACEDB_FILE_FAIL(1201, "人脸库导出:文件准备失败"),
+ NET_ERROR_EXPORT_FACEDB_BUSY(1202, "人脸库导出:系统忙"),
+ NET_ERROR_EXPORT_FACEDB_NO_PASSWORD(1203, "人脸库导出:未定义密码, 不允许导出"),
+ /* 人脸图片操作错误码 范围 _EC(1300) ~ _EC(1400) */
+ NET_ERROR_FACEMANAGER_NO_FACE_DETECTED(1300, "图片中检测到0个人脸目标"),
+ NET_ERROR_FACEMANAGER_MULTI_FACE_DETECTED(1301, "图片中检测到多个人脸,无法返回特征"),
+ NET_ERROR_FACEMANAGER_PICTURE_DECODING_ERROR(1302, "图片解码错误"),
+ NET_ERROR_FACEMANAGER_LOW_PICTURE_QUALITY(1303, "图片质量太低"),
+ /**
+ * 结果不推荐使用,比如:对外国人,特征提取成功,但算法支持不好,容易造成误识别
+ */
+ NET_ERROR_FACEMANAGER_NOT_RECOMMENDED(1304, "结果不推荐使用"),
+ NET_ERROR_FACEMANAGER_FACE_FEATURE_ALREADY_EXIST(1305, "人脸特征已存在"),
+ NET_ERROR_FACEMANAGER_FACE_ANGLE_OVER_THRESHOLDS(1307, "人脸角度超过配置阈值"),
+ NET_ERROR_FACEMANAGER_FACE_RADIO_EXCEEDS_RANGE(1308, "人脸占比超出范围,算法建议占比:不要超过2/3,不要小于1/3"),
+ NET_ERROR_FACEMANAGER_FACE_OVER_EXPOSED(1309, "人脸过爆"),
+ NET_ERROR_FACEMANAGER_FACE_UNDER_EXPOSED(1310, "人脸欠爆"),
+ NET_ERROR_FACEMANAGER_BRIGHTNESS_IMBALANCE(1311, "人脸亮度不均衡 ,用于判断阴阳脸"),
+ NET_ERROR_FACEMANAGER_FACE_LOWER_CONFIDENCE(1312, "人脸的置信度低"),
+ NET_ERROR_FACEMANAGER_FACE_LOW_ALIGN(1313, "人脸对齐分数低"),
+ NET_ERROR_FACEMANAGER_FRAGMENTARY_FACE_DETECTED(1314, "人脸存在遮挡、残缺不全"),
+ NET_ERROR_FACEMANAGER_PUPIL_DISTANCE_NOT_ENOUGH(1315, "人脸瞳距小于阈值"),
+ NET_ERROR_FACEMANAGER_FACE_DATA_DOWNLOAD_FAILED(1316, " 人脸数据下载失败");
+
+ private final int code;
+ private final String error;
+
+ private ENUMERROR(int code, String error) {
+ this.code = code;
+ this.error = error;
+ }
+
+ public int getCode() {
+ return code;
+ }
+
+ public String getError() {
+ return error;
+ }
+
+ public static ENUMERROR getENUMError() {
+ int code = NetSDKLib.NETSDK_INSTANCE.CLIENT_GetLastError() & 0x7fffffff;
+ for (ENUMERROR error : ENUMERROR.values()) {
+ if (error.getCode() == code) {
+ return error;
+ }
+ }
+ return NET_UNDEFIND;
+ }
+
+ public static String getErrorMessage() {
+ return getENUMError().getError();
+ }
+
+ public static int getErrorCode() {
+ return getENUMError().getCode();
+ }
+
+ public static String getFullError() {
+ ENUMERROR error = getENUMError();
+ return error.getCode() + "," + error.getError();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/ENUM_IN_REGION_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/ENUM_IN_REGION_STATUS.java
new file mode 100644
index 0000000..97e44f1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/ENUM_IN_REGION_STATUS.java
@@ -0,0 +1,50 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 区域内状态
+ * @date 2022/03/31
+ */
+public enum ENUM_IN_REGION_STATUS {
+ // 未知
+ ENUM_IN_REGION_STATUS_UNKNOWN(0, "未知"),
+ // 在区域内
+ ENUM_IN_REGION_STATUS_YES(1, "在区域内"),
+ // 不在区域内
+ ENUM_IN_REGION_STATUS_NO(2, "不在区域内");
+
+ private int value;
+ private String note;
+
+ private ENUM_IN_REGION_STATUS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (ENUM_IN_REGION_STATUS enumType : ENUM_IN_REGION_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (ENUM_IN_REGION_STATUS enumType : ENUM_IN_REGION_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/ENUM_MOTION_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/ENUM_MOTION_STATUS.java
new file mode 100644
index 0000000..038d911
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/ENUM_MOTION_STATUS.java
@@ -0,0 +1,50 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 运动状态
+ * @date 2022/03/31
+ */
+public enum ENUM_MOTION_STATUS {
+ // 未知
+ ENUM_MOTION_STATUS_UNKNOWN(0, "未知"),
+ // 静止
+ ENUM_MOTION_STATUS_STATIC(1, "静止"),
+ // 运动
+ ENUM_MOTION_STATUS_MOVE(2, "运动");
+
+ private int value;
+ private String note;
+
+ private ENUM_MOTION_STATUS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (ENUM_MOTION_STATUS enumType : ENUM_MOTION_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (ENUM_MOTION_STATUS enumType : ENUM_MOTION_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/ENUM_RECORDBACKUP_FILE_PROGRESS_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/ENUM_RECORDBACKUP_FILE_PROGRESS_TYPE.java
new file mode 100644
index 0000000..e12dd04
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/ENUM_RECORDBACKUP_FILE_PROGRESS_TYPE.java
@@ -0,0 +1,54 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 最后传递成功的数据包类型
+ * @date 2021/11/07
+ */
+public enum ENUM_RECORDBACKUP_FILE_PROGRESS_TYPE {
+ // 未知
+ ENUM_RECORDBACKUP_FILE_PROGRESS_UNKNOWN(0, "未知"),
+ // 文件头包
+ ENUM_RECORDBACKUP_FILE_PROGRESS_HEADER_PACKAGE(1, "文件头包"),
+ // 索引包
+ ENUM_RECORDBACKUP_FILE_PROGRESS_INDEX_PACKAGE(2, "索引包"),
+ // 码流包
+ ENUM_RECORDBACKUP_FILE_PROGRESS_STREAM_PACKET(3, "码流包"),
+ // 文件尾空包
+ ENUM_RECORDBACKUP_FILE_PROGRESS_EMPTY_PACKET(4, "文件尾空包");
+
+ private int value;
+ private String note;
+
+ private ENUM_RECORDBACKUP_FILE_PROGRESS_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (ENUM_RECORDBACKUP_FILE_PROGRESS_TYPE enumType : ENUM_RECORDBACKUP_FILE_PROGRESS_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (ENUM_RECORDBACKUP_FILE_PROGRESS_TYPE enumType : ENUM_RECORDBACKUP_FILE_PROGRESS_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/ENUM_RECORDBACKUP_FILE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/ENUM_RECORDBACKUP_FILE_TYPE.java
new file mode 100644
index 0000000..f83651c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/ENUM_RECORDBACKUP_FILE_TYPE.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 远程录像备份录像类型
+ *
+ * @author 47040
+ * @since Created at 2021/5/27 20:25
+ */
+public enum ENUM_RECORDBACKUP_FILE_TYPE {
+ ENUM_RECORDBACKUP_FILE_COMMON(0, "普通录像"),
+ ENUM_RECORDBACKUP_FILE_ALARM(1, "报警录像"),
+ ENUM_RECORDBACKUP_FILE_MOTIONDETECT(2, "动检录像");
+
+ private final int value;
+ private final String note;
+
+ ENUM_RECORDBACKUP_FILE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (ENUM_RECORDBACKUP_FILE_TYPE enumType : ENUM_RECORDBACKUP_FILE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (ENUM_RECORDBACKUP_FILE_TYPE enumType : ENUM_RECORDBACKUP_FILE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static ENUM_RECORDBACKUP_FILE_TYPE getEnum(int value) {
+ for (ENUM_RECORDBACKUP_FILE_TYPE e : ENUM_RECORDBACKUP_FILE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return ENUM_RECORDBACKUP_FILE_TYPE.ENUM_RECORDBACKUP_FILE_COMMON;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/ENUM_VAGEOBJECT_ACTION.java b/src/main/java/com/netsdk/lib/enumeration/ENUM_VAGEOBJECT_ACTION.java
new file mode 100644
index 0000000..b2ad80e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/ENUM_VAGEOBJECT_ACTION.java
@@ -0,0 +1,62 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 物体动作支持类型
+ * @date 2021/10/09
+ */
+public enum ENUM_VAGEOBJECT_ACTION {
+ // 未知类型
+ ENUM_VAGEOBJECT_ACTION_UNKNOWN(0, "未知类型"),
+ // 第一次出现在检测区域中,或者跟踪时物理分离动作中尚未确认的新物体
+ ENUM_VAGEOBJECT_ACTION_APPEAR(1, "第一次出现在检测区域中,或者跟踪时物理分离动作中尚未确认的新物体"),
+ // 正在运动,物体被正常跟踪
+ ENUM_VAGEOBJECT_ACTION_MOVE(2, "正在运动,物体被正常跟踪"),
+ // 物体停止运动,这个物体不会在出现在下一帧物体列表中,物体开始移动后再恢复在列表中
+ ENUM_VAGEOBJECT_ACTION_STAY(3, "物体停止运动,这个物体不会在出现在下一帧物体列表中,物体开始移动后再恢复在列表中"),
+ // 物体从原来的区域移除,或者被遮盖,或者跟踪失败,移除的物体ID不会被自动删除,并且物体重现出现是有可能再次被使用
+ ENUM_VAGEOBJECT_ACTION_REMOVE(4, "物体从原来的区域移除,或者被遮盖,或者跟踪失败,移除的物体ID不会被自动删除,并且物体重现出现是有可能再次被使用"),
+ // 运动到跟踪区域之外,或者达到了算法跟踪物体的上限而被清除,消失的物体ID将不再出现
+ ENUM_VAGEOBJECT_ACTION_DISAPPEAR(5, "运动到跟踪区域之外,或者达到了算法跟踪物体的上限而被清除,消失的物体ID将不再出现"),
+ // 从其他物体中分离出来,可以用来检测物体遗留,关联ID表示从这个ID对应物体分离
+ ENUM_VAGEOBJECT_ACTION_SPLIT(6, "从其他物体中分离出来,可以用来检测物体遗留,关联ID表示从这个ID对应物体分离"),
+ // 合并到其他物体,可以用来检查物体保全,关联ID表示合并到这个ID对相应的物体
+ ENUM_VAGEOBJECT_ACTION_MERGE(7, "合并到其他物体,可以用来检查物体保全,关联ID表示合并到这个ID对相应的物体"),
+ // 如果算法无法确定分离动作中某个物体是原先同一个物体,应该创建先一个新的物体,证据充分后再重命名为旧的物体ID,关联ID表示暂时使用的新的ID
+ ENUM_VAGEOBJECT_ACTION_RENAME(8, "如果算法无法确定分离动作中某个物体是原先同一个物体,应该创建先一个新的物体,证据充分后再重命名为旧的物体ID,关联ID表示暂时使用的新的ID");
+
+ private int value;
+ private String note;
+
+ private ENUM_VAGEOBJECT_ACTION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (ENUM_VAGEOBJECT_ACTION enumType : ENUM_VAGEOBJECT_ACTION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (ENUM_VAGEOBJECT_ACTION enumType : ENUM_VAGEOBJECT_ACTION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/GetDevCaps_Type.java b/src/main/java/com/netsdk/lib/enumeration/GetDevCaps_Type.java
new file mode 100644
index 0000000..65e8fba
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/GetDevCaps_Type.java
@@ -0,0 +1,197 @@
+package com.netsdk.lib.enumeration;
+/**
+ * @author 47081
+ * @desc
+ * @version 1.0.0
+ * @date 2021/4/12
+ */
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.structure.NET_IN_VIDEOIN_DAYNIGHT_CAPS;
+import com.netsdk.lib.structure.NET_OUT_VIDEOIN_DAYNIGHT_CAPS;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 47081
+ * @description 设备能力类型,对应 {@link NetSDKLib#CLIENT_GetDevCaps(NetSDKLib.LLong, int, Pointer, Pointer,
+ * int)}的nType参数 {@see}注解为暂未实现的封装 {@link}注解对应已有实现封装
+ * @date 2021/4/12
+ * @version 1.0
+ */
+public enum GetDevCaps_Type {
+ /** 电源时序器能力,pInBuf对应{@see NET_IN_CAP_SEQPOWER}, pOutBuf对应{@see NET_OUT_CAP_SEQPOWER} */
+ NET_DEV_CAP_SEQPOWER(0x01, "电源时序器能力"),
+ /** pInBuf对应NET_IN_ENCODE_CFG_CAPS pOutBuf对应 NET_OUT_ENCODE_CFG_CAPS */
+ NET_ENCODE_CFG_CAPS(0x02, "设备编码配置对应能力"),
+ /** pInBuf=NET_IN_VIDEOIN_FISHEYE_CAPS, pOutBuf=NET_OUT_VIDEOIN_FISHEYE_CAPS* */
+ NET_VIDEOIN_FISHEYE_CAPS(0x03, "鱼眼能力"),
+ /** pInBuf=NET_IN_COMPOSITE_CAPS, pOutBuf=NET_OUT_COMPOSITE_CAPS */
+ NET_COMPOSITE_CAPS(0x04, "根据指定的窗口号预先获取融合后的能力集"),
+ /** pInBuf=NET_IN_VIDEO_DETECT_CAPS, pOutBuf=NET_OUT_VIDEO_DETECT_CAPS */
+ NET_VIDEO_DETECT_CAPS(0x05, "获取视频检测输入能力集"),
+ /**
+ * pInBuf对应{@link NetSDKLib.NET_IN_THERMO_GETCAPS}, pOutBuf对应{@link
+ * NetSDKLib.NET_OUT_THERMO_GETCAPS}
+ */
+ NET_THERMO_GRAPHY_CAPS(0x06, "热成像摄像头属性能力"),
+ /**
+ * pInBuf对应{@link NetSDKLib.NET_IN_RADIOMETRY_GETCAPS}, pOutBuf对应{@link
+ * NetSDKLib.NET_OUT_RADIOMETRY_GETCAPS}
+ */
+ NET_RADIOMETRY_CAPS(0x07, "热成像测温全局配置能力"),
+ /** pInBuf = NET_IN_POS_GETCAPS,pOutBuf = NET_OUT_POS_GETCAPS */
+ NET_POS_CAPS(0x08, "POS机能力"),
+ /** pInBuf = NET_IN_USER_MNG_GETCAPS, pOutBuf = NET_OUT_USER_MNG_GETCAPS */
+ NET_USER_MNG_CAPS(0x09, "用户管理能力"),
+ /** pInBuf=NET_IN_MEDIAMANAGER_GETCAPS,pOutBuf=NET_OUT_MEDIAMANAGER_GETCAPS */
+ NET_MEDIAMANAGER_CAPS(0x0a, "获取 VideoInput 的各个能力项"),
+ /** pInBuf=NET_IN_MEDIA_VIDEOMOSAIC_GETCAPS,pOutBuf=NET_OUT_MEDIA_VIDEOMOSAIC_GETCAPS */
+ NET_VIDEO_MOSAIC_CAPS(0x0b, "获取通道马赛克叠加能力"),
+ /** pInBuf=NET_IN_SNAP_CFG_CAPS, pOutBuf= NET_OUT_SNAP_CFG_CAPS */
+ NET_SNAP_CFG_CAPS(0x0c, "设备抓图配置对应能力"),
+ /** pInBUf = NET_IN_VIDEOIN_CAPS, pOutBuf = NET_OUT_VIDEOIN_CAPS */
+ NET_VIDEOIN_CAPS(0x0d, "设备视频输出能力"),
+ /** pInBuf = NET_IN_FACEBOARD_CAPS, pOutBuf = NET_OUT_FACEBOARD_CAPS */
+ NET_FACE_BOARD_CAPS(0x0e, "面板设备能力集"),
+ /** pInBuf = NET_IN_EXTERNALSENSOR_CAPS, pOutBuf =NET_OUT_EXTERNALSENSOR_CAPS */
+ NET_EXTERNALSENSOR_CAPS(0x0f, "外部传感器管理能力集"),
+ /** pInBuf = NET_IN_VIDEO_IMAGECONTROL_CAPS, pOutBuf =NET_OUT_VIDEO_IMAGECONTROL_CAPS* */
+ NET_VIDEO_IMAGECONTROL_CAPS(0x10, "图像旋转设置能力"),
+ /** pInBuf = NET_IN_VIDEOIN_EXPOSURE_CAPS, pOutBuf = NET_OUT_VIDEOIN_EXPOSURE_CAPS */
+ NET_VIDEOIN_EXPOSURE_CAPS(0x11, "曝光设置能力"),
+ /** pInBuf = NET_IN_VIDEOIN_DENOISE_CAPS, pOutBuf = NET_OUT_VIDEOIN_DENOISE_CAPS */
+ NET_VIDEOIN_DENOISE_CAPS(0x12, "降噪能力"),
+ /** pInBuf = NET_IN_VIDEOIN_BACKLIGHT_CAPS, pOutBuf = NET_OUT_VIDEOIN_BACKLIGHT_CAPS */
+ NET_VIDEOIN_BACKLIGHT_CAPS(0x13, "背光设置能力"),
+ /** pInBuf = NET_IN_VIDEOIN_WHITEBALANCE_CAPS, pOutBuf = NET_OUT_VIDEOIN_WHITEBALANCE_CAPS */
+ NET_VIDEOIN_WHITEBALANCE_CAPS(0x14, "白平衡设置能力"),
+ /**
+ * pInBuf = {@link NET_IN_VIDEOIN_DAYNIGHT_CAPS}, pOutBuf = {@link NET_OUT_VIDEOIN_DAYNIGHT_CAPS}
+ */
+ NET_VIDEOIN_DAYNIGHT_CAPS(0x15, "球机机芯日夜设置能力"),
+ /** pInBuf = NET_IN_VIDEOIN_ZOOM_CAPS, pOutBuf = NET_OUT_VIDEOIN_ZOOM_CAPS */
+ NET_VIDEOIN_ZOOM_CAPS(0x16, "变倍设置能力"),
+ /** pInBuf = NET_IN_VIDEOIN_FOCUS_CAPS, pOutBuf = NET_OUT_VIDEOIN_FOCUS_CAPS */
+ NET_VIDEOIN_FOCUS_CAPS(0x17, "聚焦设置能力"),
+ /** pInBuf = NET_IN_VIDEOIN_SHARPNESS_CAPS, pOutBuf = NET_OUT_VIDEOIN_SHARPNESS_CAPS */
+ NET_VIDEOIN_SHARPNESS_CAPS(0x18, "锐度设置能力"),
+ /** pInBuf = NET_IN_VIDEOIN_COLOR_CAPS, pOutBuf = NET_OUT_VIDEOIN_COLOR_CAPS */
+ NET_VIDEOIN_COLOR_CAPS(0x19, "图像设置能力"),
+ /** pInBuf = NET_IN_GET_MASTERSLAVEGROUP_CAPS, pOutBuf = // NET_OUT_GET_MASTERSLAVEGROUP_CAPS */
+ NET_GET_MASTERSLAVEGROUP_CAPS(0x1a, "获取跟踪业务能力"),
+ /**
+ * pInBuf = NET_IN_FACERECOGNITIONSERVER_CAPSBILITYQUERY, pOutBuf =
+ * NET_OUT_FACERECOGNITIONSERVER_CAPSBILITYQUERY *
+ */
+ NET_FACERECOGNITIONSE_CAPS(0x1b, "目标识别服务器能力查询"),
+ /** pInBuf = NET_IN_STORAGE_CAPS, pOutBuf = NET_OUT_STORAGE_CAPS */
+ NET_STORAGE_CAPS(0x1c, "获取存储能力集"),
+ /** pInBuf = NET_IN_VIDEOIN_RAWFRAME_CAPS, pOutBuf = // NET_OUT_VIDEOIN_RAWFRAME_CAPS */
+ NET_VIDEOIN_RAWFRAME_CAPS(0x1d, "获取视频输入扩展能力集"),
+ /** pInBuf = NET_IN_GET_COAXIAL_CONTROL_IO_CAPS, pOutBuf = NET_OUT_GET_COAXIAL_CONTROL_IO_CAPS */
+ NET_COAXIAL_CONTROL_IO_CAPS(0x1e, "获取同轴IO控制能力"),
+ /** pInBuf = NET_IN_GET_FACEINFO_CAPS, pOutBuf = NET_OUT_GET_FACEINFO_CAPS */
+ NET_FACEINFO_CAPS(0x1f, "获得人脸门禁控制器能力集"),
+ /** pInBuf = NET_IN_AC_CAPS, pOutBuf = NET_OUT_AC_CAPS */
+ NET_ACCESSCONTROL_CAPS(0x20, "获取门禁能力"),
+ /**
+ * pInBuf = NET_IN_GET_COAXIAL_CONTROL_IO_STATUS, pOutBuf = NET_OUT_GET_COAXIAL_CONTROL_IO_STATUS*
+ */
+ NET_COAXIAL_CONTROL_IO_STATUS(0x21, "获取同轴IO白光灯和喇叭状态"),
+ /** pInBuf =NET_IN_LIGHTINGCONTROL_CAPS,pOutBuf=NET_OUT_LIGHTINGCONTROL_CAPS */
+ NET_LIGHTINGCONTROL_CAPS(0x22, "获取补光灯能力(IPC/SD使用)"),
+ /** pInBuf =NET_IN_SUPPORT_GET_AUDIO_DECODE_CAPS,pOutBuf=NET_OUT_SUPPORT_GET_AUDIO_DECODE_CAPS* */
+ NET_SUPPORT_GET_AUDIO_DECODE_CAPS(0x23, "获取设备是否支持音频解码能力获取"),
+ /** pInBuf = NET_IN_UNIFIEDINFOCOLLECT_CAPS, pOutBuf = NET_OUT_UNIFIEDINFOCOLLECT_CAPS */
+ NET_UNIFIEDINFOCOLLECT_CAPS(0x24, "获取设备是否支持DMSS专用协议能力"),
+ /** pInBuf = NET_IN_EXALARMBOX_CAPS, pOutBuf = NET_OUT_EXALARMBOX_CAPS */
+ NET_EXALARMBOX_CAPS(0x25, "获取某个扩展报警盒的能力集"),
+ /** pInBuf = NET_IN_ALARMBOXMANAGER_CAPS, pOutBuf = NET_OUT_ALARMBOXMANAGER_CAPS */
+ NET_ALARMBOXMANAGER_CAPS(0x26, "获取报警盒子管理器能力集"),
+ /** pInBuf = NET_IN_GET_AUDIO_DETECT_CAPS, pOutBuf = NET_OUT_GET_AUDIO_DETECT_CAPS */
+ NET_GET_AUDIO_DETECT_CAPS(0x27, "获取音频输入能力集"),
+ /**
+ * pInBuf = NET_IN_SUPPORT_FACEDB_DOWNLOAD_CAPS, pOutBuf = NET_OUT_SUPPORT_FACEDB_DOWNLOAD_CAPS
+ */
+ NET_SUPPORT_FACEDB_DOWNLOAD(0x28, "获取是否支持远程人脸库下载"),
+ /** pInBuf = NET_IN_GET_LENS_FUNC_CAPS, pOutBuf = NET_OUT_GET_LENS_FUNC_CAPS */
+ NET_GET_LENS_FUNC_CAPS(0x29, "获取角度调节能力集"),
+ /** pInBuf = NET_IN_VIDEO_TALK_MANAGER_CAPS, pOutBuf = NET_OUT_VIDEO_TALK_MANAGER_CAPS */
+ NET_VIDEO_TALK_MANAGER_CAPS(0x2a, "获取可视对讲能力"),
+ /** pInBuf = NET_IN_VIDEO_IN_DEFOG_CAPS, pOutBuf = NET_OUT_VIDEO_IN_DEFOG_CAPS */
+ NET_VIDEO_IN_DEFOG_CAPS(0x30, "获取视频透雾能力集"),
+ /** pInBuf = NET_IN_DIAGNOSIS_CAPS, pOutBuf = NET_OUT_DIAGNOSIS_CAPS */
+ NET_DIAGNOSIS_CAPS(0x31, "获取故障诊断能力"),
+ /** pInBuf = NET_IN_LOWRATEWPAN_CAPS, pOutBuf = NET_OUT_LOWRATEWPAN_CAPS */
+ NET_LOWRATEWPAN_CAPS(0x32, "获取低功率WPAN能力集"),
+ /** pInBuf = NET_IN_GET_FILE_TRANSFER_CAPS, pOutBuf = NET_OUT_GET_FILE_TRANSFER_CAPS */
+ NET_GET_FILE_TRANSFER_CAPS(0x33, "获取远程文件下载能力集"),
+ /** pInBuf = NET_IN_AUDIO_OUTPUT_CAPS, pOutBuf = NET_OUT_AUDIO_OUTPUT_CAPS */
+ NET_AUDIO_OUTPUT_CAPS(0x34, "获取音频输出能力"),
+ /**
+ * pInBuf = NET_IN_REMOTE_FACE_RECOGNITION_CAPS, pOutBuf = NET_OUT_REMOTE_FACE_RECOGNITION_CAPS*
+ */
+ NET_REMOTE_FACE_RECOGNITION_CAPS(0x35, "获取远程目标识别服务器能力"),
+ /** pInBuf = NET_IN_REMOTE_COLLECT_DEVINFO_CAPS, pOutBuf = NET_OUT_REMOTE_COLLECT_DEVINFO_CAPS */
+ NET_REMOTE_COLLECT_DEVINFO_CAPS(0x36, "获取远程设备信息采集能力"),
+ /** pInBuf = NET_IN_MONITOR_WALL_CAPS_INFO, pOutBuf = NET_OUT_MONITOR_WALL_CAPS_INFO */
+ NET_MONITOR_WALL_CAPS(0x37, "获取电视墙管理器实例能力集"),
+ /** pInBuf = NET_IN_REMOTE_SPEAK_CAPS, pOutBuf = NET_OUT_REMOTE_SPEAK_CAPS */
+ NET_REMOTE_SPEAK_CAPS(0x38, "获取前端音频文件路径和能力集"),
+ /** pInBuf = NET_IN_WLAN_CAPS_INFO, pOutBuf = NET_OUT_WLAN_CAPS_INFO */
+ NET_WLAN_CAPS(0x39, "获取WLAN能力集"),
+ /** pInBuf = NET_IN_LOG_ONLINE_BACKUP_CAPS_INFO, pOutBuf = NET_OUT_LOG_ONLINE_BACKUP_CAPS_INFO */
+ NET_LOG_ONLINE_BACKUP_CAPS(0x3A, "获取日志在线备份能力集"),
+ /** pInBuf = NET_IN_RECEIPT_EVENT_CAPS_INFO, pOutBuf = NET_OUT_RECEIPT_EVENT_CAPS_INFO */
+ NET_RECEIPT_EVENT_CAPS(0x3B, "获取事件回执能力集"),
+ /**
+ * pInBuf = NET_IN_ANALYSE_TASK_MANAGER_CAPS_INFO, pOutBuf =
+ * NET_OUT_ANALYSE_TASK_MANAGER_CAPS_INFO
+ */
+ NET_ANALYSE_TASK_MANAGER_CAPS(0x3C, "获取智能任务分析能力集"),
+ /** pInBuf = NET_IN_PERIPHERAL_CHIP_CAPS, pOutBuf = NET_OUT_PERIPHERAL_CHIP_CAPS */
+ NET_PERIPHERAL_CHIP_CAPS(0x3D, "获取设备从片能力"),
+ /**
+ * pInBuf = NET_IN_CITIZEN_IDENTITY_MANAGER_CAPS, pOutBuf = NET_OUT_CITIZEN_IDENTITY_MANAGER_CAPS*
+ */
+ NET_CITIZEN_IDENTITY_MANAGER_CAPS(0x3E, "获取人证设备能力集"),
+ /** pInBuf = NET_IN_AROUD_4G_PROBE_SEARCH_CAPS, pOutBuf = NET_OUT_AROUD_4G_PROBE_SEARCH_CAPS */
+ NET_AROUD_4G_PROBE_SEARCH_CAPS(0x3F, "获取电子围栏手机采集能力"),
+ /** pInBuf = NET_IN_GET_ADVERTIMENT_CAPS, pOutBuf = NET_OUT_GET_ADVERTIMENT_CAPS */
+ NET_GET_ADVERTIMENT_CAPS(0x4A, "获取设备广告投放能力"),
+ /** pInBuf = NET_IN_LIGHTING_MIX_SOLUTION_CAPS, pOutBuf = NET_OUT_LIGHTING_MIX_SOLUTION_CAPS */
+ NET_VIDEOIN_LIGHTING_MIX_SOLUTION_CAPS(0x40, "混光灯补光方案能力");
+
+ private int type;
+ private String desc;
+
+ GetDevCaps_Type(int type, String desc) {
+ this.type = type;
+ this.desc = desc;
+ }
+
+ public int getType() {
+ return type;
+ }
+
+ public void setType(int type) {
+ this.type = type;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public void setDesc(String desc) {
+ this.desc = desc;
+ }
+
+ public static GetDevCaps_Type getDevCapsType(int type) {
+ for (GetDevCaps_Type cap : GetDevCaps_Type.values()) {
+ if (cap.type == type) {
+ return cap;
+ }
+ }
+ return null;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/LastErrorNew.java b/src/main/java/com/netsdk/lib/enumeration/LastErrorNew.java
new file mode 100644
index 0000000..0b0a366
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/LastErrorNew.java
@@ -0,0 +1,1154 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 260611
+ * @description 根据NetSDK返回的通用错误码制作的对应枚举类
+ * @date 2022/03/02
+ */
+public enum LastErrorNew {
+ // 未收录错误
+ UNRECORDED_ERROR((0x80000000 | (-2)),"未收录错误","Unrecorded error"),
+ // 未知错误
+ NET_ERROR((0x80000000 | (-1)),"未知错误","Unknown error"),
+ // 没有错误
+ NET_NOERROR((0x80000000 | (0)),"没有错误","No error"),
+ // 系统出错
+ NET_SYSTEM_ERROR((0x80000000 | (1)),"系统出错","system error"),
+ // 网络错误,可能是因为网络超时
+ NET_NETWORK_ERROR((0x80000000 | (2)),"网络错误,可能是因为网络超时","Protocol error it may result from network timeout"),
+ // 设备协议不匹配
+ NET_DEV_VER_NOMATCH((0x80000000 | (3)),"设备协议不匹配","Device protocol does not match"),
+ // 句柄无效
+ NET_INVALID_HANDLE((0x80000000 | (4)),"句柄无效","Handle is invalid"),
+ // 打开通道失败
+ NET_OPEN_CHANNEL_ERROR((0x80000000 | (5)),"打开通道失败","Failed to open channel"),
+ // 关闭通道失败
+ NET_CLOSE_CHANNEL_ERROR((0x80000000 | (6)),"关闭通道失败","Failed to close channel"),
+ // 用户参数不合法
+ NET_ILLEGAL_PARAM((0x80000000 | (7)),"用户参数不合法","User parameter is illegal"),
+ // SDK初始化出错
+ NET_SDK_INIT_ERROR((0x80000000 | (8)),"SDK初始化出错","SDK initialization error"),
+ // SDK清理出错
+ NET_SDK_UNINIT_ERROR((0x80000000 | (9)),"SDK清理出错","SDK clear error"),
+ // 申请render资源出错
+ NET_RENDER_OPEN_ERROR((0x80000000 | (10)),"申请render资源出错","Error occurs when apply for render resources."),
+ // 打开解码库出错
+ NET_DEC_OPEN_ERROR((0x80000000 | (11)),"打开解码库出错","Error occurs when opening the decoder library"),
+ // 关闭解码库出错
+ NET_DEC_CLOSE_ERROR((0x80000000 | (12)),"关闭解码库出错","Error occurs when closing the decoder library"),
+ // 多画面预览中检测到通道数为0
+ NET_MULTIPLAY_NOCHANNEL((0x80000000 | (13)),"多画面预览中检测到通道数为0","The detected channel number is 0 in multiple-channel preview."),
+ // 录音库初始化失败
+ NET_TALK_INIT_ERROR((0x80000000 | (14)),"录音库初始化失败","Failed to initialize record library"),
+ // 录音库未经初始化
+ NET_TALK_NOT_INIT((0x80000000 | (15)),"录音库未经初始化","The record library has not been initialized"),
+ // 发送音频数据出错
+ NET_TALK_SENDDATA_ERROR((0x80000000 | (16)),"发送音频数据出错","Error occurs when sending out audio data"),
+ // 实时数据已经处于保存状态
+ NET_REAL_ALREADY_SAVING((0x80000000 | (17)),"实时数据已经处于保存状态","The real-time has been protected."),
+ // 未保存实时数据
+ NET_NOT_SAVING((0x80000000 | (18)),"未保存实时数据","The real-time data has not been save."),
+ // 打开文件出错
+ NET_OPEN_FILE_ERROR((0x80000000 | (19)),"打开文件出错","Error occurs when opening the file."),
+ // 启动云台控制定时器失败
+ NET_PTZ_SET_TIMER_ERROR((0x80000000 | (20)),"启动云台控制定时器失败","Failed to enable PTZ to control timer."),
+ // 对返回数据的校验出错
+ NET_RETURN_DATA_ERROR((0x80000000 | (21)),"对返回数据的校验出错","Error occurs when verify returned data."),
+ // 没有足够的缓存
+ NET_INSUFFICIENT_BUFFER((0x80000000 | (22)),"没有足够的缓存","There is no sufficient buffer."),
+ // 当前SDK未支持该功能
+ NET_NOT_SUPPORTED((0x80000000 | (23)),"当前SDK未支持该功能","The current SDK does not support this funcntion."),
+ // 查询不到录象
+ NET_NO_RECORD_FOUND((0x80000000 | (24)),"查询不到录象","There is no searched result."),
+ // 无操作权限
+ NET_NOT_AUTHORIZED((0x80000000 | (25)),"无操作权限","You have no operation right."),
+ // 暂时无法执行
+ NET_NOT_NOW((0x80000000 | (26)),"暂时无法执行","Can not operate right now."),
+ // 未发现对讲通道
+ NET_NO_TALK_CHANNEL((0x80000000 | (27)),"未发现对讲通道","There is no audio talk channel."),
+ // 未发现音频
+ NET_NO_AUDIO((0x80000000 | (28)),"未发现音频","There is no audio."),
+ // 网络SDK未经初始化
+ NET_NO_INIT((0x80000000 | (29)),"网络SDK未经初始化","The network SDK has not been initialized."),
+ // 下载已结束
+ NET_DOWNLOAD_END((0x80000000 | (30)),"下载已结束","The download completed."),
+ // 查询结果为空
+ NET_EMPTY_LIST((0x80000000 | (31)),"查询结果为空","There is no searched result."),
+ // 获取系统属性配置失败
+ NET_ERROR_GETCFG_SYSATTR((0x80000000 | (32)),"获取系统属性配置失败","Failed to get system property setup."),
+ // 获取序列号失败
+ NET_ERROR_GETCFG_SERIAL((0x80000000 | (33)),"获取序列号失败","Failed to get SN."),
+ // 获取常规属性失败
+ NET_ERROR_GETCFG_GENERAL((0x80000000 | (34)),"获取常规属性失败","Failed to get general property."),
+ // 获取DSP能力描述失败
+ NET_ERROR_GETCFG_DSPCAP((0x80000000 | (35)),"获取DSP能力描述失败","Failed to get DSP capacity description."),
+ // 获取网络配置失败
+ NET_ERROR_GETCFG_NETCFG((0x80000000 | (36)),"获取网络配置失败","Failed to get network channel setup."),
+ // 获取通道名称失败
+ NET_ERROR_GETCFG_CHANNAME((0x80000000 | (37)),"获取通道名称失败","Failed to get channel name."),
+ // 获取视频属性失败
+ NET_ERROR_GETCFG_VIDEO((0x80000000 | (38)),"获取视频属性失败","Failed to get video property."),
+ // 获取录象配置失败
+ NET_ERROR_GETCFG_RECORD((0x80000000 | (39)),"获取录象配置失败","Failed to get record setup"),
+ // 获取解码器协议名称失败
+ NET_ERROR_GETCFG_PRONAME((0x80000000 | (40)),"获取解码器协议名称失败","Failed to get decoder protocol name"),
+ // 获取232串口功能名称失败
+ NET_ERROR_GETCFG_FUNCNAME((0x80000000 | (41)),"获取232串口功能名称失败","Failed to get 232 COM function name."),
+ // 获取解码器属性失败
+ NET_ERROR_GETCFG_485DECODER((0x80000000 | (42)),"获取解码器属性失败","Failed to get decoder property"),
+ // 获取232串口配置失败
+ NET_ERROR_GETCFG_232COM((0x80000000 | (43)),"获取232串口配置失败","Failed to get 232 COM setup"),
+ // 获取外部报警输入配置失败
+ NET_ERROR_GETCFG_ALARMIN((0x80000000 | (44)),"获取外部报警输入配置失败","Failed to get external alarm input setup"),
+ // 获取动态检测报警失败
+ NET_ERROR_GETCFG_ALARMDET((0x80000000 | (45)),"获取动态检测报警失败","Failed to get motion detection alarm"),
+ // 获取设备时间失败
+ NET_ERROR_GETCFG_SYSTIME((0x80000000 | (46)),"获取设备时间失败","Failed to get device time"),
+ // 获取预览参数失败
+ NET_ERROR_GETCFG_PREVIEW((0x80000000 | (47)),"获取预览参数失败","Failed to get preview parameter"),
+ // 获取自动维护配置失败
+ NET_ERROR_GETCFG_AUTOMT((0x80000000 | (48)),"获取自动维护配置失败","Failed to get audio maintenance setup"),
+ // 获取视频矩阵配置失败
+ NET_ERROR_GETCFG_VIDEOMTRX((0x80000000 | (49)),"获取视频矩阵配置失败","Failed to get video matrix setup"),
+ // 获取区域遮挡配置失败
+ NET_ERROR_GETCFG_COVER((0x80000000 | (50)),"获取区域遮挡配置失败","Failed to get privacy mask zone setup"),
+ // 获取图象水印配置失败
+ NET_ERROR_GETCFG_WATERMAKE((0x80000000 | (51)),"获取图象水印配置失败","Failed to get video watermark setup"),
+ // 获取配置失败位置:组播端口按通道配置
+ NET_ERROR_GETCFG_MULTICAST((0x80000000 | (52)),"获取配置失败位置:组播端口按通道配置","Failed to get config, omulticast port by channel"),
+ // 修改常规属性失败
+ NET_ERROR_SETCFG_GENERAL((0x80000000 | (55)),"修改常规属性失败","Failed to modify general property"),
+ // 修改网络配置失败
+ NET_ERROR_SETCFG_NETCFG((0x80000000 | (56)),"修改网络配置失败","Failed to modify channel setup"),
+ // 修改通道名称失败
+ NET_ERROR_SETCFG_CHANNAME((0x80000000 | (57)),"修改通道名称失败","Failed to modify channel name"),
+ // 修改视频属性失败
+ NET_ERROR_SETCFG_VIDEO((0x80000000 | (58)),"修改视频属性失败","Failed to modify video channel"),
+ // 修改录象配置失败
+ NET_ERROR_SETCFG_RECORD((0x80000000 | (59)),"修改录象配置失败","Failed to modify record setup"),
+ // 修改解码器属性失败
+ NET_ERROR_SETCFG_485DECODER((0x80000000 | (60)),"修改解码器属性失败","Failed to modify decoder property"),
+ // 修改232串口配置失败
+ NET_ERROR_SETCFG_232COM((0x80000000 | (61)),"修改232串口配置失败","Failed to modify 232 COM setup"),
+ // 修改外部输入报警配置失败
+ NET_ERROR_SETCFG_ALARMIN((0x80000000 | (62)),"修改外部输入报警配置失败","Failed to modify external input alarm setup"),
+ // 修改动态检测报警配置失败
+ NET_ERROR_SETCFG_ALARMDET((0x80000000 | (63)),"修改动态检测报警配置失败","Failed to modify motion detection alarm setup"),
+ // 修改设备时间失败
+ NET_ERROR_SETCFG_SYSTIME((0x80000000 | (64)),"修改设备时间失败","Failed to modify device time"),
+ // 修改预览参数失败
+ NET_ERROR_SETCFG_PREVIEW((0x80000000 | (65)),"修改预览参数失败","Failed to modify preview parameter"),
+ // 修改自动维护配置失败
+ NET_ERROR_SETCFG_AUTOMT((0x80000000 | (66)),"修改自动维护配置失败","Failed to modify auto maintenance setup"),
+ // 修改视频矩阵配置失败
+ NET_ERROR_SETCFG_VIDEOMTRX((0x80000000 | (67)),"修改视频矩阵配置失败","Failed to modify video matrix setup"),
+ // 修改区域遮挡配置失败
+ NET_ERROR_SETCFG_COVER((0x80000000 | (68)),"修改区域遮挡配置失败","Failed to modify privacy mask zone"),
+ // 修改图象水印配置失败
+ NET_ERROR_SETCFG_WATERMAKE((0x80000000 | (69)),"修改图象水印配置失败","Failed to modify video watermark setup"),
+ // 修改无线网络信息失败
+ NET_ERROR_SETCFG_WLAN((0x80000000 | (70)),"修改无线网络信息失败","Failed to modify wireless network information"),
+ // 选择无线网络设备失败
+ NET_ERROR_SETCFG_WLANDEV((0x80000000 | (71)),"选择无线网络设备失败","Failed to select wireless network device"),
+ // 修改主动注册参数配置失败
+ NET_ERROR_SETCFG_REGISTER((0x80000000 | (72)),"修改主动注册参数配置失败","Failed to modify the actively registration parameter setup."),
+ // 修改摄像头属性配置失败
+ NET_ERROR_SETCFG_CAMERA((0x80000000 | (73)),"修改摄像头属性配置失败","Failed to modify camera property"),
+ // 修改红外报警配置失败
+ NET_ERROR_SETCFG_INFRARED((0x80000000 | (74)),"修改红外报警配置失败","Failed to modify IR alarm setup"),
+ // 修改音频报警配置失败
+ NET_ERROR_SETCFG_SOUNDALARM((0x80000000 | (75)),"修改音频报警配置失败","Failed to modify audio alarm setup"),
+ // 修改存储位置配置失败
+ NET_ERROR_SETCFG_STORAGE((0x80000000 | (76)),"修改存储位置配置失败","Failed to modify storage position setup"),
+ // 音频编码接口没有成功初始化
+ NET_AUDIOENCODE_NOTINIT((0x80000000 | (77)),"音频编码接口没有成功初始化","The audio encode port has not been successfully initialized."),
+ // 数据过长
+ NET_DATA_TOOLONGH((0x80000000 | (78)),"数据过长","The data are too long."),
+ // 设备不支持该操作
+ NET_UNSUPPORTED((0x80000000 | (79)),"设备不支持该操作","The device does not support current operation."),
+ // 设备资源不足
+ NET_DEVICE_BUSY((0x80000000 | (80)),"设备资源不足","Device resources is not sufficient."),
+ // 服务器已经启动
+ NET_SERVER_STARTED((0x80000000 | (81)),"服务器已经启动","The server has boot up"),
+ // 服务器尚未成功启动
+ NET_SERVER_STOPPED((0x80000000 | (82)),"服务器尚未成功启动","The server has not fully boot up"),
+ // 输入序列号有误
+ NET_LISTER_INCORRECT_SERIAL((0x80000000 | (83)),"输入序列号有误","Input serial number is not correct."),
+ // 获取硬盘信息失败
+ NET_QUERY_DISKINFO_FAILED((0x80000000 | (84)),"获取硬盘信息失败","Failed to get HDD information."),
+ // 获取连接Session信息
+ NET_ERROR_GETCFG_SESSION((0x80000000 | (85)),"获取连接Session信息","Failed to get connect session information."),
+ // 输入密码错误超过限制次数
+ NET_USER_FLASEPWD_TRYTIME((0x80000000 | (86)),"输入密码错误超过限制次数","The password you typed is incorrect. You have exceeded the maximum number of retries."),
+ // 密码过期
+ NET_LOGIN_ERROR_PASSWORD_EXPIRED((0x80000000 | (99)),"密码过期","password expired"),
+ // 密码不正确
+ NET_LOGIN_ERROR_PASSWORD((0x80000000 | (100)),"密码不正确","Password is not correct"),
+ // 帐户不存在
+ NET_LOGIN_ERROR_USER((0x80000000 | (101)),"帐户不存在","The account does not exist"),
+ // 等待登录返回超时
+ NET_LOGIN_ERROR_TIMEOUT((0x80000000 | (102)),"等待登录返回超时","Time out for log in returned value."),
+ // 帐号已登录
+ NET_LOGIN_ERROR_RELOGGIN((0x80000000 | (103)),"帐号已登录","The account has logged in"),
+ // 帐号已被锁定
+ NET_LOGIN_ERROR_LOCKED((0x80000000 | (104)),"帐号已被锁定","The account has been locked"),
+ // 帐号已被列为禁止名单
+ NET_LOGIN_ERROR_BLACKLIST((0x80000000 | (105)),"帐号已被列为禁止名单","The account has been in the block list"),
+ // 资源不足,系统忙
+ NET_LOGIN_ERROR_BUSY((0x80000000 | (106)),"资源不足,系统忙","Resources are not sufficient. System is busy now."),
+ // 登录设备超时,请检查网络并重试
+ NET_LOGIN_ERROR_CONNECT((0x80000000 | (107)),"登录设备超时,请检查网络并重试","Time out. Please check network and try again."),
+ // 网络连接失败
+ NET_LOGIN_ERROR_NETWORK((0x80000000 | (108)),"网络连接失败","Network connection failed."),
+ // 登录设备成功,但无法创建视频通道,请检查网络状况
+ NET_LOGIN_ERROR_SUBCONNECT((0x80000000 | (109)),"登录设备成功,但无法创建视频通道,请检查网络状况","Successfully logged in the device but can not create video channel. Please check network connection."),
+ // 超过最大连接数
+ NET_LOGIN_ERROR_MAXCONNECT((0x80000000 | (110)),"超过最大连接数","exceed the max connect number"),
+ // 只支持3代协议
+ NET_LOGIN_ERROR_PROTOCOL3_ONLY((0x80000000 | (111)),"只支持3代协议","protocol 3 support"),
+ // 未插入U盾或U盾信息错误
+ NET_LOGIN_ERROR_UKEY_LOST((0x80000000 | (112)),"未插入U盾或U盾信息错误","There is no USB or USB info error"),
+ // 客户端IP地址没有登录权限
+ NET_LOGIN_ERROR_NO_AUTHORIZED((0x80000000 | (113)),"客户端IP地址没有登录权限","Client-end IP address has no right to login"),
+ // 账号或密码错误
+ NET_LOGIN_ERROR_USER_OR_PASSOWRD((0x80000000 | (117)),"账号或密码错误","user or password error"),
+ // 设备尚未初始化,不能登录,请先初始化设备
+ NET_LOGIN_ERROR_DEVICE_NOT_INIT((0x80000000 | (118)),"设备尚未初始化,不能登录,请先初始化设备","cannot login because the device has not been init,please init the device and then login"),
+ // 登录受限,可能是IP受限、时间段受限、有效期受限
+ NET_LOGIN_ERROR_LIMITED((0x80000000 | (119)),"登录受限,可能是IP受限、时间段受限、有效期受限","Limited login, it could be IP limited, time limited or expiration limited"),
+ // Render库打开音频出错
+ NET_RENDER_SOUND_ON_ERROR((0x80000000 | (120)),"Render库打开音频出错","Error occurs when Render library open audio."),
+ // Render库关闭音频出错
+ NET_RENDER_SOUND_OFF_ERROR((0x80000000 | (121)),"Render库关闭音频出错","Error occurs when Render library close audio"),
+ // Render库控制音量出错
+ NET_RENDER_SET_VOLUME_ERROR((0x80000000 | (122)),"Render库控制音量出错","Error occurs when Render library control volume"),
+ // Render库设置画面参数出错
+ NET_RENDER_ADJUST_ERROR((0x80000000 | (123)),"Render库设置画面参数出错","Error occurs when Render library set video parameter"),
+ // Render库暂停播放出错
+ NET_RENDER_PAUSE_ERROR((0x80000000 | (124)),"Render库暂停播放出错","Error occurs when Render library pause play"),
+ // Render库抓图出错
+ NET_RENDER_SNAP_ERROR((0x80000000 | (125)),"Render库抓图出错","Render library snapshot error"),
+ // Render库步进出错
+ NET_RENDER_STEP_ERROR((0x80000000 | (126)),"Render库步进出错","Render library stepper error"),
+ // Render库设置帧率出错
+ NET_RENDER_FRAMERATE_ERROR((0x80000000 | (127)),"Render库设置帧率出错","Error occurs when Render library set frame rate."),
+ // Render库设置显示区域出错
+ NET_RENDER_DISPLAYREGION_ERROR((0x80000000 | (128)),"Render库设置显示区域出错","Error occurs when Render lib setting show region"),
+ // Render库获取当前播放时间出错
+ NET_RENDER_GETOSDTIME_ERROR((0x80000000 | (129)),"Render库获取当前播放时间出错","An error occurred when Render library getting current play time"),
+ // 组名已存在
+ NET_GROUP_EXIST((0x80000000 | (140)),"组名已存在","Group name has been existed."),
+ // 组名不存在
+ NET_GROUP_NOEXIST((0x80000000 | (141)),"组名不存在","The group name does not exist."),
+ // 组的权限超出权限列表范围
+ NET_GROUP_RIGHTOVER((0x80000000 | (142)),"组的权限超出权限列表范围","The group right exceeds the right list!"),
+ // 组下有用户,不能删除
+ NET_GROUP_HAVEUSER((0x80000000 | (143)),"组下有用户,不能删除","The group can not be removed since there is user in it!"),
+ // 组的某个权限被用户使用,不能出除
+ NET_GROUP_RIGHTUSE((0x80000000 | (144)),"组的某个权限被用户使用,不能出除","The user has used one of the group right. It can not be removed."),
+ // 新组名同已有组名重复
+ NET_GROUP_SAMENAME((0x80000000 | (145)),"新组名同已有组名重复","New group name has been existed"),
+ // 用户已存在
+ NET_USER_EXIST((0x80000000 | (146)),"用户已存在","The user name has been existed"),
+ // 用户不存在
+ NET_USER_NOEXIST((0x80000000 | (147)),"用户不存在","The account does not exist."),
+ // 用户权限超出组权限
+ NET_USER_RIGHTOVER((0x80000000 | (148)),"用户权限超出组权限","User right exceeds the group right."),
+ // 保留帐号,不容许修改密码
+ NET_USER_PWD((0x80000000 | (149)),"保留帐号,不容许修改密码","Reserved account. It does not allow to be modified."),
+ // 密码不正确
+ NET_USER_FLASEPWD((0x80000000 | (150)),"密码不正确","password is not correct"),
+ // 密码不匹配
+ NET_USER_NOMATCHING((0x80000000 | (151)),"密码不匹配","Password is invalid"),
+ // 账号正在使用中
+ NET_USER_INUSE((0x80000000 | (152)),"账号正在使用中","account in use"),
+ // 获取网卡配置失败
+ NET_ERROR_GETCFG_ETHERNET((0x80000000 | (300)),"获取网卡配置失败","Failed to get network card setup."),
+ // 获取无线网络信息失败
+ NET_ERROR_GETCFG_WLAN((0x80000000 | (301)),"获取无线网络信息失败","Failed to get wireless network information."),
+ // 获取无线网络设备失败
+ NET_ERROR_GETCFG_WLANDEV((0x80000000 | (302)),"获取无线网络设备失败","Failed to get wireless network device."),
+ // 获取主动注册参数失败
+ NET_ERROR_GETCFG_REGISTER((0x80000000 | (303)),"获取主动注册参数失败","Failed to get actively registration parameter."),
+ // 获取摄像头属性失败
+ NET_ERROR_GETCFG_CAMERA((0x80000000 | (304)),"获取摄像头属性失败","Failed to get camera property"),
+ // 获取红外报警配置失败
+ NET_ERROR_GETCFG_INFRARED((0x80000000 | (305)),"获取红外报警配置失败","Failed to get IR alarm setup"),
+ // 获取音频报警配置失败
+ NET_ERROR_GETCFG_SOUNDALARM((0x80000000 | (306)),"获取音频报警配置失败","Failed to get audio alarm setup"),
+ // 获取存储位置配置失败
+ NET_ERROR_GETCFG_STORAGE((0x80000000 | (307)),"获取存储位置配置失败","Failed to get storage position"),
+ // 获取邮件配置失败
+ NET_ERROR_GETCFG_MAIL((0x80000000 | (308)),"获取邮件配置失败","Failed to get mail setup."),
+ // 暂时无法设置
+ NET_CONFIG_DEVBUSY((0x80000000 | (309)),"暂时无法设置","Can not set right now."),
+ // 配置数据不合法
+ NET_CONFIG_DATAILLEGAL((0x80000000 | (310)),"配置数据不合法","The configuration setup data are illegal."),
+ // 获取夏令时配置失败
+ NET_ERROR_GETCFG_DST((0x80000000 | (311)),"获取夏令时配置失败","Failed to get DST setup"),
+ // 设置夏令时配置失败
+ NET_ERROR_SETCFG_DST((0x80000000 | (312)),"设置夏令时配置失败","Failed to set DST"),
+ // 获取视频OSD叠加配置失败
+ NET_ERROR_GETCFG_VIDEO_OSD((0x80000000 | (313)),"获取视频OSD叠加配置失败","Failed to get video OSD setup."),
+ // 设置视频OSD叠加配置失败
+ NET_ERROR_SETCFG_VIDEO_OSD((0x80000000 | (314)),"设置视频OSD叠加配置失败","Failed to set video OSD"),
+ // 获取CDMA\GPRS网络配置失败
+ NET_ERROR_GETCFG_GPRSCDMA((0x80000000 | (315)),"获取CDMA\\GPRS网络配置失败","Failed to get CDMA\\GPRS configuration"),
+ // 设置CDMA\GPRS网络配置失败
+ NET_ERROR_SETCFG_GPRSCDMA((0x80000000 | (316)),"设置CDMA\\GPRS网络配置失败","Failed to set CDMA\\GPRS configuration"),
+ // 获取IP过滤配置失败
+ NET_ERROR_GETCFG_IPFILTER((0x80000000 | (317)),"获取IP过滤配置失败","Failed to get IP Filter configuration"),
+ // 设置IP过滤配置失败
+ NET_ERROR_SETCFG_IPFILTER((0x80000000 | (318)),"设置IP过滤配置失败","Failed to set IP Filter configuration"),
+ // 获取语音对讲编码配置失败
+ NET_ERROR_GETCFG_TALKENCODE((0x80000000 | (319)),"获取语音对讲编码配置失败","Failed to get Talk Encode configuration"),
+ // 设置语音对讲编码配置失败
+ NET_ERROR_SETCFG_TALKENCODE((0x80000000 | (320)),"设置语音对讲编码配置失败","Failed to set Talk Encode configuration"),
+ // 获取录像打包长度配置失败
+ NET_ERROR_GETCFG_RECORDLEN((0x80000000 | (321)),"获取录像打包长度配置失败","Failed to get The length of the video package configuration"),
+ // 设置录像打包长度配置失败
+ NET_ERROR_SETCFG_RECORDLEN((0x80000000 | (322)),"设置录像打包长度配置失败","Failed to set The length of the video package configuration"),
+ // 不支持网络硬盘分区
+ NET_DONT_SUPPORT_SUBAREA((0x80000000 | (323)),"不支持网络硬盘分区","Not support Network hard disk partition"),
+ // 获取设备上主动注册服务器信息失败
+ NET_ERROR_GET_AUTOREGSERVER((0x80000000 | (324)),"获取设备上主动注册服务器信息失败","Failed to get the register server information"),
+ // 主动注册重定向注册错误
+ NET_ERROR_CONTROL_AUTOREGISTER((0x80000000 | (325)),"主动注册重定向注册错误","Failed to control actively registration"),
+ // 断开主动注册服务器错误
+ NET_ERROR_DISCONNECT_AUTOREGISTER((0x80000000 | (326)),"断开主动注册服务器错误","Failed to disconnect actively registration"),
+ // 获取mms配置失败
+ NET_ERROR_GETCFG_MMS((0x80000000 | (327)),"获取mms配置失败","Failed to get mms configuration"),
+ // 设置mms配置失败
+ NET_ERROR_SETCFG_MMS((0x80000000 | (328)),"设置mms配置失败","Failed to set mms configuration"),
+ // 获取短信激活无线连接配置失败
+ NET_ERROR_GETCFG_SMSACTIVATION((0x80000000 | (329)),"获取短信激活无线连接配置失败","Failed to get SMS configuration"),
+ // 设置短信激活无线连接配置失败
+ NET_ERROR_SETCFG_SMSACTIVATION((0x80000000 | (330)),"设置短信激活无线连接配置失败","Failed to set SMS configuration"),
+ // 获取拨号激活无线连接配置失败
+ NET_ERROR_GETCFG_DIALINACTIVATION((0x80000000 | (331)),"获取拨号激活无线连接配置失败","Failed to get activation of a wireless connection"),
+ // 设置拨号激活无线连接配置失败
+ NET_ERROR_SETCFG_DIALINACTIVATION((0x80000000 | (332)),"设置拨号激活无线连接配置失败","Failed to set activation of a wireless connection"),
+ // 查询视频输出参数配置失败
+ NET_ERROR_GETCFG_VIDEOOUT((0x80000000 | (333)),"查询视频输出参数配置失败","Failed to get the parameter of video output"),
+ // 设置视频输出参数配置失败
+ NET_ERROR_SETCFG_VIDEOOUT((0x80000000 | (334)),"设置视频输出参数配置失败","Failed to set the configuration of video output"),
+ // 获取osd叠加使能配置失败
+ NET_ERROR_GETCFG_OSDENABLE((0x80000000 | (335)),"获取osd叠加使能配置失败","Failed to get osd overlay enabling"),
+ // 设置osd叠加使能配置失败
+ NET_ERROR_SETCFG_OSDENABLE((0x80000000 | (336)),"设置osd叠加使能配置失败","Failed to set OSD overlay enabling"),
+ // 设置数字通道前端编码接入配置失败
+ NET_ERROR_SETCFG_ENCODERINFO((0x80000000 | (337)),"设置数字通道前端编码接入配置失败","Failed to set digital input configuration of front encoders"),
+ // 获取TV调节配置失败
+ NET_ERROR_GETCFG_TVADJUST((0x80000000 | (338)),"获取TV调节配置失败","Failed to get TV adjust configuration"),
+ // 设置TV调节配置失败
+ NET_ERROR_SETCFG_TVADJUST((0x80000000 | (339)),"设置TV调节配置失败","Failed to set TV adjust configuration"),
+ // 请求建立连接失败
+ NET_ERROR_CONNECT_FAILED((0x80000000 | (340)),"请求建立连接失败","Failed to request to establish a connection"),
+ // 请求刻录文件上传失败
+ NET_ERROR_SETCFG_BURNFILE((0x80000000 | (341)),"请求刻录文件上传失败","Failed to request to upload burn files"),
+ // 获取抓包配置信息失败
+ NET_ERROR_SNIFFER_GETCFG((0x80000000 | (342)),"获取抓包配置信息失败","Failed to get capture configuration information"),
+ // 设置抓包配置信息失败
+ NET_ERROR_SNIFFER_SETCFG((0x80000000 | (343)),"设置抓包配置信息失败","Failed to set capture configuration information"),
+ // 查询下载限制信息失败
+ NET_ERROR_DOWNLOADRATE_GETCFG((0x80000000 | (344)),"查询下载限制信息失败","Failed to get download restrictions information"),
+ // 设置下载限制信息失败
+ NET_ERROR_DOWNLOADRATE_SETCFG((0x80000000 | (345)),"设置下载限制信息失败","Failed to set download restrictions information"),
+ // 查询串口参数失败
+ NET_ERROR_SEARCH_TRANSCOM((0x80000000 | (346)),"查询串口参数失败","Failed to query serial port parameters"),
+ // 获取预制点信息错误
+ NET_ERROR_GETCFG_POINT((0x80000000 | (347)),"获取预制点信息错误","Failed to get the preset info"),
+ // 设置预制点信息错误
+ NET_ERROR_SETCFG_POINT((0x80000000 | (348)),"设置预制点信息错误","Failed to set the preset info"),
+ // SDK没有正常登出设备
+ NET_SDK_LOGOUT_ERROR((0x80000000 | (349)),"SDK没有正常登出设备","SDK log out the device abnormally"),
+ // 获取车载配置失败
+ NET_ERROR_GET_VEHICLE_CFG((0x80000000 | (350)),"获取车载配置失败","Failed to get vehicle configuration"),
+ // 设置车载配置失败
+ NET_ERROR_SET_VEHICLE_CFG((0x80000000 | (351)),"设置车载配置失败","Failed to set vehicle configuration"),
+ // 获取atm叠加配置失败
+ NET_ERROR_GET_ATM_OVERLAY_CFG((0x80000000 | (352)),"获取atm叠加配置失败","Failed to get ATM overlay configuration"),
+ // 设置atm叠加配置失败
+ NET_ERROR_SET_ATM_OVERLAY_CFG((0x80000000 | (353)),"设置atm叠加配置失败","Failed to set ATM overlay configuration"),
+ // 获取atm叠加能力失败
+ NET_ERROR_GET_ATM_OVERLAY_ABILITY((0x80000000 | (354)),"获取atm叠加能力失败","Failed to get ATM overlay ability"),
+ // 获取解码器解码轮巡配置失败
+ NET_ERROR_GET_DECODER_TOUR_CFG((0x80000000 | (355)),"获取解码器解码轮巡配置失败","Failed to get decoder tour configuration"),
+ // 设置解码器解码轮巡配置失败
+ NET_ERROR_SET_DECODER_TOUR_CFG((0x80000000 | (356)),"设置解码器解码轮巡配置失败","Failed to set decoder tour configuration"),
+ // 控制解码器解码轮巡失败
+ NET_ERROR_CTRL_DECODER_TOUR((0x80000000 | (357)),"控制解码器解码轮巡失败","Failed to control decoder tour"),
+ // 超出设备支持最大用户组数目
+ NET_GROUP_OVERSUPPORTNUM((0x80000000 | (358)),"超出设备支持最大用户组数目","Beyond the device supports for the largest number of user groups"),
+ // 超出设备支持最大用户数目
+ NET_USER_OVERSUPPORTNUM((0x80000000 | (359)),"超出设备支持最大用户数目","Beyond the device supports for the largest number of users"),
+ // 获取SIP配置失败
+ NET_ERROR_GET_SIP_CFG((0x80000000 | (368)),"获取SIP配置失败","Failed to get SIP configuration"),
+ // 设置SIP配置失败
+ NET_ERROR_SET_SIP_CFG((0x80000000 | (369)),"设置SIP配置失败","Failed to set SIP configuration"),
+ // 获取SIP能力失败
+ NET_ERROR_GET_SIP_ABILITY((0x80000000 | (370)),"获取SIP能力失败","Failed to get SIP capability"),
+ // 获取WIFI ap配置失败
+ NET_ERROR_GET_WIFI_AP_CFG((0x80000000 | (371)),"获取WIFI ap配置失败","Failed to get \"WIFI ap\' configuration"),
+ // 设置WIFI ap配置失败
+ NET_ERROR_SET_WIFI_AP_CFG((0x80000000 | (372)),"设置WIFI ap配置失败","Failed to set \"WIFI ap\" configuration"),
+ // 获取解码策略配置失败
+ NET_ERROR_GET_DECODE_POLICY((0x80000000 | (373)),"获取解码策略配置失败","Failed to get decode policy"),
+ // 设置解码策略配置失败
+ NET_ERROR_SET_DECODE_POLICY((0x80000000 | (374)),"设置解码策略配置失败","Failed to set decode policy"),
+ // 拒绝对讲
+ NET_ERROR_TALK_REJECT((0x80000000 | (375)),"拒绝对讲","refuse talk"),
+ // 对讲被其他客户端打开
+ NET_ERROR_TALK_OPENED((0x80000000 | (376)),"对讲被其他客户端打开","talk has opened by other client"),
+ // 资源冲突
+ NET_ERROR_TALK_RESOURCE_CONFLICIT((0x80000000 | (377)),"资源冲突","resource conflict"),
+ // 不支持的语音编码格式
+ NET_ERROR_TALK_UNSUPPORTED_ENCODE((0x80000000 | (378)),"不支持的语音编码格式","unsupported encode type"),
+ // 无权限
+ NET_ERROR_TALK_RIGHTLESS((0x80000000 | (379)),"无权限","no right"),
+ // 请求对讲失败
+ NET_ERROR_TALK_FAILED((0x80000000 | (380)),"请求对讲失败","request failed"),
+ // 获取机器相关配置失败
+ NET_ERROR_GET_MACHINE_CFG((0x80000000 | (381)),"获取机器相关配置失败","Failed to get device relative config"),
+ // 设置机器相关配置失败
+ NET_ERROR_SET_MACHINE_CFG((0x80000000 | (382)),"设置机器相关配置失败","Failed to set device relative config"),
+ // 设备无法获取当前请求数据
+ NET_ERROR_GET_DATA_FAILED((0x80000000 | (383)),"设备无法获取当前请求数据","get data failed"),
+ // MAC地址验证失败
+ NET_ERROR_MAC_VALIDATE_FAILED((0x80000000 | (384)),"MAC地址验证失败","MAC validate failed"),
+ // 获取服务器实例失败
+ NET_ERROR_GET_INSTANCE((0x80000000 | (385)),"获取服务器实例失败","Failed to get server instance"),
+ // 生成的json字符串错误
+ NET_ERROR_JSON_REQUEST((0x80000000 | (386)),"生成的json字符串错误","Generated json string is error"),
+ // 响应的json字符串错误
+ NET_ERROR_JSON_RESPONSE((0x80000000 | (387)),"响应的json字符串错误","The responding json string is error"),
+ // 协议版本低于当前使用的版本
+ NET_ERROR_VERSION_HIGHER((0x80000000 | (388)),"协议版本低于当前使用的版本","The protocol version is lower than current version"),
+ // 热备操作失败, 容量不足
+ NET_SPARE_NO_CAPACITY((0x80000000 | (389)),"热备操作失败, 容量不足","Hotspare disk operation failed. The capacity is low"),
+ // 显示源被其他输出占用
+ NET_ERROR_SOURCE_IN_USE((0x80000000 | (390)),"显示源被其他输出占用","Display source is used by other output"),
+ // 高级用户抢占低级用户资源
+ NET_ERROR_REAVE((0x80000000 | (391)),"高级用户抢占低级用户资源","advanced users grab low-level user resource"),
+ // 禁止入网
+ NET_ERROR_NETFORBID((0x80000000 | (392)),"禁止入网","net forbid"),
+ // 获取MAC过滤配置失败
+ NET_ERROR_GETCFG_MACFILTER((0x80000000 | (393)),"获取MAC过滤配置失败","get MAC filter configuration error"),
+ // 设置MAC过滤配置失败
+ NET_ERROR_SETCFG_MACFILTER((0x80000000 | (394)),"设置MAC过滤配置失败","set MAC filter configuration error"),
+ // 获取IP/MAC过滤配置失败
+ NET_ERROR_GETCFG_IPMACFILTER((0x80000000 | (395)),"获取IP/MAC过滤配置失败","get IP/MAC filter configuration error"),
+ // 设置IP/MAC过滤配置失败
+ NET_ERROR_SETCFG_IPMACFILTER((0x80000000 | (396)),"设置IP/MAC过滤配置失败","set IP/MAC filter configuration error"),
+ // 当前操作超时
+ NET_ERROR_OPERATION_OVERTIME((0x80000000 | (397)),"当前操作超时","operation over time"),
+ // 高级校验失败
+ NET_ERROR_SENIOR_VALIDATE_FAILED((0x80000000 | (398)),"高级校验失败","senior validation failure"),
+ // 设备ID不存在
+ NET_ERROR_DEVICE_ID_NOT_EXIST((0x80000000 | (399)),"设备ID不存在","device ID is not exist"),
+ // 不支持当前操作
+ NET_ERROR_UNSUPPORTED((0x80000000 | (400)),"不支持当前操作","unsupport operation"),
+ // 代理库加载失败
+ NET_ERROR_PROXY_DLLLOAD((0x80000000 | (401)),"代理库加载失败","proxy dll load error"),
+ // 代理用户参数不合法
+ NET_ERROR_PROXY_ILLEGAL_PARAM((0x80000000 | (402)),"代理用户参数不合法","proxy user parameter is not legal"),
+ // 代理句柄无效
+ NET_ERROR_PROXY_INVALID_HANDLE((0x80000000 | (403)),"代理句柄无效","handle invalid"),
+ // 代理登入前端设备失败
+ NET_ERROR_PROXY_LOGIN_DEVICE_ERROR((0x80000000 | (404)),"代理登入前端设备失败","login device error"),
+ // 启动代理服务失败
+ NET_ERROR_PROXY_START_SERVER_ERROR((0x80000000 | (405)),"启动代理服务失败","start proxy server error"),
+ // 请求喊话失败
+ NET_ERROR_SPEAK_FAILED((0x80000000 | (406)),"请求喊话失败","request speak failed"),
+ // 设备不支持此F6接口调用
+ NET_ERROR_NOT_SUPPORT_F6((0x80000000 | (407)),"设备不支持此F6接口调用","unsupport F6"),
+ // 光盘未就绪
+ NET_ERROR_CD_UNREADY((0x80000000 | (408)),"光盘未就绪","CD is not ready"),
+ // 目录不存在
+ NET_ERROR_DIR_NOT_EXIST((0x80000000 | (409)),"目录不存在","Directory does not exist"),
+ // 设备不支持的分割模式
+ NET_ERROR_UNSUPPORTED_SPLIT_MODE((0x80000000 | (410)),"设备不支持的分割模式","The device does not support the segmentation model"),
+ // 开窗参数不合法
+ NET_ERROR_OPEN_WND_PARAM((0x80000000 | (411)),"开窗参数不合法","Open the window parameter is illegal"),
+ // 开窗数量超过限制
+ NET_ERROR_LIMITED_WND_COUNT((0x80000000 | (412)),"开窗数量超过限制","Open the window more than limit"),
+ // 请求命令与当前模式不匹配
+ NET_ERROR_UNMATCHED_REQUEST((0x80000000 | (413)),"请求命令与当前模式不匹配","Request command with the current pattern don't match"),
+ // Render库启用高清图像内部调整策略出错
+ NET_RENDER_ENABLELARGEPICADJUSTMENT_ERROR((0x80000000 | (414)),"Render库启用高清图像内部调整策略出错","Render Library to enable high-definition image internal adjustment strategy error"),
+ // 设备升级失败
+ NET_ERROR_UPGRADE_FAILED((0x80000000 | (415)),"设备升级失败","Upgrade equipment failure"),
+ // 找不到目标设备
+ NET_ERROR_NO_TARGET_DEVICE((0x80000000 | (416)),"找不到目标设备","Can't find the target device"),
+ // 找不到验证设备
+ NET_ERROR_NO_VERIFY_DEVICE((0x80000000 | (417)),"找不到验证设备","Can't find the verify device"),
+ // 无级联权限
+ NET_ERROR_CASCADE_RIGHTLESS((0x80000000 | (418)),"无级联权限","No cascade permissions"),
+ // 低优先级
+ NET_ERROR_LOW_PRIORITY((0x80000000 | (419)),"低优先级","low priority"),
+ // 远程设备请求超时
+ NET_ERROR_REMOTE_REQUEST_TIMEOUT((0x80000000 | (420)),"远程设备请求超时","The remote device request timeout"),
+ // 输入源超出最大路数限制
+ NET_ERROR_LIMITED_INPUT_SOURCE((0x80000000 | (421)),"输入源超出最大路数限制","Input source beyond maximum route restrictions"),
+ // 设置日志打印失败
+ NET_ERROR_SET_LOG_PRINT_INFO((0x80000000 | (422)),"设置日志打印失败","Failed to set log print"),
+ // 入参的dwsize字段出错
+ NET_ERROR_PARAM_DWSIZE_ERROR((0x80000000 | (423)),"入参的dwsize字段出错","\"dwSize\" is not initialized in input param"),
+ // 电视墙数量超过上限
+ NET_ERROR_LIMITED_MONITORWALL_COUNT((0x80000000 | (424)),"电视墙数量超过上限","TV wall exceed limit"),
+ // 部分过程执行失败
+ NET_ERROR_PART_PROCESS_FAILED((0x80000000 | (425)),"部分过程执行失败","Fail to execute part of the process"),
+ // 该功能不支持转发
+ NET_ERROR_TARGET_NOT_SUPPORT((0x80000000 | (426)),"该功能不支持转发","Fail to transmit due to not supported by target"),
+ // 访问文件失败
+ NET_ERROR_VISITE_FILE((0x80000000 | (510)),"访问文件失败","Access to the file failed"),
+ // 设备忙
+ NET_ERROR_DEVICE_STATUS_BUSY((0x80000000 | (511)),"设备忙","Device busy"),
+ // 修改密码无权限
+ NET_USER_PWD_NOT_AUTHORIZED((0x80000000 | (512)),"修改密码无权限","Fail to change the password"),
+ // 密码强度不够
+ NET_USER_PWD_NOT_STRONG((0x80000000 | (513)),"密码强度不够","Password strength is not enough"),
+ // 没有对应的配置
+ NET_ERROR_NO_SUCH_CONFIG((0x80000000 | (514)),"没有对应的配置","No corresponding setup"),
+ // 录音失败
+ NET_ERROR_AUDIO_RECORD_FAILED((0x80000000 | (515)),"录音失败","Failed to record audio"),
+ // 数据发送失败
+ NET_ERROR_SEND_DATA_FAILED((0x80000000 | (516)),"数据发送失败","Failed to send out data"),
+ // 废弃接口
+ NET_ERROR_OBSOLESCENT_INTERFACE((0x80000000 | (517)),"废弃接口","Abandoned port"),
+ // 内部缓冲不足
+ NET_ERROR_INSUFFICIENT_INTERAL_BUF((0x80000000 | (518)),"内部缓冲不足","Internal buffer is not sufficient"),
+ // 修改设备ip时,需要校验密码
+ NET_ERROR_NEED_ENCRYPTION_PASSWORD((0x80000000 | (519)),"修改设备ip时,需要校验密码","verify password when changing device IP"),
+ // 设备不支持此记录集
+ NET_ERROR_NOSUPPORT_RECORD((0x80000000 | (520)),"设备不支持此记录集","device not support the record"),
+ // 设备正在升级
+ NET_ERROR_DEVICE_IN_UPGRADING((0x80000000 | (521)),"设备正在升级","Device is in upgrading"),
+ // 智能分析任务不存在
+ NET_ERROR_ANALYSE_TASK_NOT_EXIST((0x80000000 | (522)),"智能分析任务不存在","Analyse Task Not Exist"),
+ // 智能分析任务已经满
+ NET_ERROR_ANALYSE_TASK_FULL((0x80000000 | (523)),"智能分析任务已经满","Analyse Task Full"),
+ // 设备重启
+ NET_ERROR_DEVICE_RESTART((0x80000000 | (524)),"设备重启","Device restart"),
+ // 设备关机
+ NET_ERROR_DEVICE_SHUTDOWN((0x80000000 | (525)),"设备关机","Device shutdown"),
+ // 文件系统错误
+ NET_ERROR_FILE_SYSTEM_ERROR((0x80000000 | (526)),"文件系统错误","File system error"),
+ // 硬盘写错误
+ NET_ERROR_HARDDISK_WRITE_ERROR((0x80000000 | (527)),"硬盘写错误","Harddisk write error"),
+ // 硬盘读错误
+ NET_ERROR_HARDDISK_READ_ERROR((0x80000000 | (528)),"硬盘读错误","Harddisk read error"),
+ // 无硬盘记录日志
+ NET_ERROR_NO_HARDDISK_RECORD_LOG((0x80000000 | (529)),"无硬盘记录日志","No harddisk record log"),
+ // 无工作盘(没有读写盘)
+ NET_ERROR_NO_HARDDISK((0x80000000 | (530)),"无工作盘(没有读写盘)","No harddisk"),
+ // 硬盘其他错误
+ NET_ERROR_HARDDISK_OTHER_ERRORS((0x80000000 | (531)),"硬盘其他错误","Harddisk other errors"),
+ // 硬盘坏道轻微错误
+ NET_ERROR_HARDDISK_BADSECTORS_MINOR_ERRORS((0x80000000 | (532)),"硬盘坏道轻微错误","Harddisk badsectors minor error"),
+ // 硬盘坏道严重错误
+ NET_ERROR_HARDDISK_BADSECTORS_CRITICAL_ERRORS((0x80000000 | (533)),"硬盘坏道严重错误","Harddisk badsectors critical error"),
+ // 硬盘物理坏道轻微
+ NET_ERROR_HARDDISK_PHYSICAL_BADSECTORS_SLIGHT((0x80000000 | (534)),"硬盘物理坏道轻微","Harddisk physical badsectors are slight"),
+ // 硬盘物理坏道严重
+ NET_ERROR_HARDDISK_PHYSICAL_BADSECTORS_SERIOUS((0x80000000 | (535)),"硬盘物理坏道严重","Harddisk physical badsectors are serious"),
+ // 断网报警
+ NET_ERROR_NETWORK_DISCONNECTION_ALARM((0x80000000 | (536)),"断网报警","Network disconnection alarm"),
+ // 网络断开
+ NET_ERROR_NETWORK_DISCONNECTION((0x80000000 | (537)),"网络断开","Network disconnection"),
+ // 设置视频源数量超出限制
+ NET_ERROR_SET_SOURCE_EXCEED((0x80000000 | (538)),"设置视频源数量超出限制","Set source exceed"),
+ // 上传文件尺寸超出范围(uploadFile方法)
+ NET_ERROR_SIZE_EXCEED((0x80000000 | (539)),"上传文件尺寸超出范围(uploadFile方法)","Upload file size out of range"),
+ // 存在日志配置文件,以日志打印配置文件为准,日志打印接口失效
+ NET_ERROR_LOGOPEN_DISABLE((0x80000000 | (540)),"存在日志配置文件,以日志打印配置文件为准,日志打印接口失效","LogCfg is exist,the CLIENT_LogOpen interface is unable."),
+ // 封装音频头失败
+ NET_ERROR_STREAM_PACKAGE_ERROR((0x80000000 | (541)),"封装音频头失败","stream package error"),
+ // 磁盘读数据限制
+ NET_ERROR_READ_LIMIT((0x80000000 | (542)),"磁盘读数据限制","Read_Limit"),
+ // 多画面预览已打开,资源不足,压缩回放失败
+ NET_ERROR_PREVIEWOPENED((0x80000000 | (543)),"多画面预览已打开,资源不足,压缩回放失败","PreviewOpened"),
+ // 压缩回放功能已打开,导致失败
+ NET_ERROR_COMPRESSOPENED((0x80000000 | (544)),"压缩回放功能已打开,导致失败","CompressOpened"),
+ // 未知的压缩失败原因
+ NET_ERROR_COMPRESSERROR_UNKNOWN((0x80000000 | (545)),"未知的压缩失败原因","CompressErrorUnknown"),
+ // 超出解码能力,导致压缩失败
+ NET_ERROR_COMPRESSERROR_OVERDECODE((0x80000000 | (546)),"超出解码能力,导致压缩失败","CompressErrorOverDecode"),
+ // 超出压缩能力,导致压缩失败
+ NET_ERROR_COMPRESSERROR_OVERENCODE((0x80000000 | (547)),"超出压缩能力,导致压缩失败","CompressErrorOverEncode"),
+ // 无原始码流,导致压缩失败
+ NET_ERROR_COMPRESSERROR_NONESTREAM((0x80000000 | (548)),"无原始码流,导致压缩失败","CompressErrorNoneStream"),
+ // 压缩通道所在的从片掉线,导致压缩失败
+ NET_ERROR_COMPRESSERROR_CHIPOFFLINE((0x80000000 | (549)),"压缩通道所在的从片掉线,导致压缩失败","CompressErrorChipOffline"),
+ // 通道未添加
+ NET_ERROR_CHANNELNOTADD((0x80000000 | (550)),"通道未添加","ChannelNotAdd"),
+ // 数据序列化错误
+ NET_ERROR_SERIALIZE_ERROR((0x80000000 | (1010)),"数据序列化错误","Failed to serialize data"),
+ // 数据反序列化错误
+ NET_ERROR_DESERIALIZE_ERROR((0x80000000 | (1011)),"数据反序列化错误","Failed to deserialize data"),
+ // 该无线ID已存在
+ NET_ERROR_LOWRATEWPAN_ID_EXISTED((0x80000000 | (1012)),"该无线ID已存在","the wireless id is already existed"),
+ // 无线ID数量已超限
+ NET_ERROR_LOWRATEWPAN_ID_LIMIT((0x80000000 | (1013)),"无线ID数量已超限","the wireless id limited"),
+ // 无线异常添加
+ NET_ERROR_LOWRATEWPAN_ID_ABNORMAL((0x80000000 | (1014)),"无线异常添加","add the wireless id abnormaly"),
+ // 加密数据失败
+ NET_ERROR_ENCRYPT((0x80000000 | (1015)),"加密数据失败","encrypt data fail"),
+ // 新密码不合规范
+ NET_ERROR_PWD_ILLEGAL((0x80000000 | (1016)),"新密码不合规范","new password illegal"),
+ // 设备已经初始化
+ NET_ERROR_DEVICE_ALREADY_INIT((0x80000000 | (1017)),"设备已经初始化","device is already init"),
+ // 安全码错误
+ NET_ERROR_SECURITY_CODE((0x80000000 | (1018)),"安全码错误","security code check out fail"),
+ // 安全码超出有效期
+ NET_ERROR_SECURITY_CODE_TIMEOUT((0x80000000 | (1019)),"安全码超出有效期","security code out of time"),
+ // 获取密码规范失败
+ NET_ERROR_GET_PWD_SPECI((0x80000000 | (1020)),"获取密码规范失败","get passwd specification fail"),
+ // 无权限进行该操作
+ NET_ERROR_NO_AUTHORITY_OF_OPERATION((0x80000000 | (1021)),"无权限进行该操作","no authority of operation"),
+ // 解密数据失败
+ NET_ERROR_DECRYPT((0x80000000 | (1022)),"解密数据失败","decrypt data fail"),
+ // 2D code校验失败
+ NET_ERROR_2D_CODE((0x80000000 | (1023)),"2D code校验失败","2D code check out fail"),
+ // 非法的RPC请求
+ NET_ERROR_INVALID_REQUEST((0x80000000 | (1024)),"非法的RPC请求","invalid request"),
+ // 密码重置功能已关闭
+ NET_ERROR_PWD_RESET_DISABLE((0x80000000 | (1025)),"密码重置功能已关闭","pwd reset unable"),
+ // 显示私有数据,比如规则框等失败
+ NET_ERROR_PLAY_PRIVATE_DATA((0x80000000 | (1026)),"显示私有数据,比如规则框等失败","failed to display private data,such as rule box"),
+ // 机器人操作失败
+ NET_ERROR_ROBOT_OPERATE_FAILED((0x80000000 | (1027)),"机器人操作失败","robot operate failed"),
+ // 图片大小超限
+ NET_ERROR_PHOTOSIZE_EXCEEDSLIMIT((0x80000000 | (1028)),"图片大小超限","photosize exceeds limit"),
+ // 用户ID不存在
+ NET_ERROR_USERID_INVALID((0x80000000 | (1029)),"用户ID不存在","userid invalid"),
+ // 照片特征值提取失败
+ NET_ERROR_EXTRACTFEATURE_FAILED((0x80000000 | (1030)),"照片特征值提取失败","photo extract feature failed"),
+ // 照片已存在
+ NET_ERROR_PHOTO_EXIST((0x80000000 | (1031)),"照片已存在","photo exist"),
+ // 照片数量超过上限
+ NET_ERROR_PHOTO_OVERFLOW((0x80000000 | (1032)),"照片数量超过上限","photo over flow"),
+ // 通道已经打开
+ NET_ERROR_CHANNEL_ALREADY_OPENED((0x80000000 | (1033)),"通道已经打开","channel has already been opened"),
+ // 创建套接字失败
+ NET_ERROR_CREATE_SOCKET((0x80000000 | (1034)),"创建套接字失败","create socket error"),
+ // 通道号错误
+ NET_ERROR_CHANNEL_NUM((0x80000000 | (1035)),"通道号错误","invalid channel num"),
+ // 图片格式错误
+ NET_ERROR_PHOTO_FORMAT((0x80000000 | (1036)),"图片格式错误","photo format error"),
+ // 内部错误(比如:相关硬件问题,获取公钥失败,内部接口调用失败,写文件失败等等)
+ NET_ERROR_DIGITAL_CERTIFICATE_INTERNAL_ERROR((0x80000000 | (1037)),"内部错误(比如:相关硬件问题,获取公钥失败,内部接口调用失败,写文件失败等等)","Internal error"),
+ // 获取设备ID失败
+ NET_ERROR_DIGITAL_CERTIFICATE_GET_ID_FAILED((0x80000000 | (1038)),"获取设备ID失败","Get ID failed"),
+ // 证书文件非法(格式不支持或者不是证书文件)
+ NET_ERROR_DIGITAL_CERTIFICATE_IMPORT_ILLEGAL((0x80000000 | (1039)),"证书文件非法(格式不支持或者不是证书文件)","Import illegal"),
+ // 证书sn重复或错误或不规范
+ NET_ERROR_DIGITAL_CERTIFICATE_SN_ERROR((0x80000000 | (1040)),"证书sn重复或错误或不规范","SN error"),
+ // 证书commonName非法(本地设备证书与系统中的不匹配devid_cryptoID,或者对端的不符合规则(devid_crytoID))
+ NET_ERROR_DIGITAL_CERTIFICATE_COMMON_NAME_ILLEGAL((0x80000000 | (1041)),"证书commonName非法(本地设备证书与系统中的不匹配devid_cryptoID,或者对端的不符合规则(devid_crytoID))","Cert common name illegal"),
+ // 根证书未导入或不存在
+ NET_ERROR_DIGITAL_CERTIFICATE_NO_ROOT_CERT((0x80000000 | (1042)),"根证书未导入或不存在","No root cert"),
+ // 证书被吊销
+ NET_ERROR_DIGITAL_CERTIFICATE_CERT_REVOKED((0x80000000 | (1043)),"证书被吊销","Cert revoked"),
+ // 证书不可用或未生效或已过期
+ NET_ERROR_DIGITAL_CERTIFICATE_CERT_INVALID((0x80000000 | (1044)),"证书不可用或未生效或已过期","Cert invalid"),
+ // 证书签名不匹配
+ NET_ERROR_DIGITAL_CERTIFICATE_CERT_ERROR_SIGN((0x80000000 | (1045)),"证书签名不匹配","Cert error sign"),
+ // 超出证书导入上限
+ NET_ERROR_DIGITAL_CERTIFICATE_COUNTS_UPPER_LIMIT((0x80000000 | (1046)),"超出证书导入上限","Counts upper limit"),
+ // 证书文件不存在(导出证书或者获取对应证书的公钥)
+ NET_ERROR_DIGITAL_CERTIFICATE_CERT_NO_EXIST((0x80000000 | (1047)),"证书文件不存在(导出证书或者获取对应证书的公钥)","Cert no exist"),
+ // 默认搜索端口无法使用(5050,37810)
+ NET_ERROR_DEFULAT_SEARCH_PORT((0x80000000 | (1048)),"默认搜索端口无法使用(5050,37810)","default search port can't use(5050,37810)"),
+ // 批量添加目标停止
+ NET_ERROR_FACE_RECOGNITION_SERVER_MULTI_APPEND_STOUP((0x80000000 | (1049)),"批量添加目标停止","Target recognition server multi append stop"),
+ // 批量添加目标失败
+ NET_ERROR_FACE_RECOGNITION_SERVER_MULTI_APPEND_ERROR((0x80000000 | (1050)),"批量添加目标失败","Target recognition server multi append error"),
+ // 组ID超过最大值
+ NET_ERROR_FACE_RECOGNITION_SERVER_GROUP_ID_EXCEED((0x80000000 | (1051)),"组ID超过最大值","Target recognition server group id exceed"),
+ // 组ID不存在或为空
+ NET_ERROR_FACE_RECOGNITION_SERVER_GROUP_ID_NOT_IN_REGISTER_GROUP((0x80000000 | (1052)),"组ID不存在或为空","Target recognition server group id not in register group"),
+ // 无图片数据
+ NET_ERROR_FACE_RECOGNITION_SERVER_PICTURE_NOT_FOUND((0x80000000 | (1053)),"无图片数据","Target recognition server picture not found"),
+ // 生成组ID超出范围
+ NET_ERROR_FACE_RECOGNITION_SERVER_GENERATE_GROUP_ID_FAILED((0x80000000 | (1054)),"生成组ID超出范围","Target recognition server generate group id failed"),
+ // 设置配置失败
+ NET_ERROR_FACE_RECOGNITION_SERVER_SET_CONFIG_FAILED((0x80000000 | (1055)),"设置配置失败","Target recognition server set config failed"),
+ // 图片文件打开失败
+ NET_ERROR_FACE_RECOGNITION_SERVER_FILE_OPEN_FAILED((0x80000000 | (1056)),"图片文件打开失败","Target recognition server file open failed"),
+ // 图片文件读取失败
+ NET_ERROR_FACE_RECOGNITION_SERVER_FILE_READ_FAILED((0x80000000 | (1057)),"图片文件读取失败","Target recognition server file read failed"),
+ // 图片文件写入失败
+ NET_ERROR_FACE_RECOGNITION_SERVER_FILE_WRITE_FAILED((0x80000000 | (1058)),"图片文件写入失败","Target recognition server file write failed"),
+ // 图片分辨率异常
+ NET_ERROR_FACE_RECOGNITION_SERVER_PICTURE_DPI_ERROR((0x80000000 | (1059)),"图片分辨率异常","Target recognition server picture dpi error"),
+ // 图片像素异常
+ NET_ERROR_FACE_RECOGNITION_SERVER_PICTURE_PX_ERROR((0x80000000 | (1060)),"图片像素异常","Target recognition server picture px error"),
+ // 图片大小不对
+ NET_ERROR_FACE_RECOGNITION_SERVER_PICTURE_SIZE_ERROR((0x80000000 | (1061)),"图片大小不对","Target recognition server picture size error"),
+ // 数据库操作失败
+ NET_ERROR_FACE_RECOGNITION_SERVER_DATA_BASE_ERROR((0x80000000 | (1062)),"数据库操作失败","Target recognition server database error"),
+ // 人员数量超过限制
+ NET_ERROR_FACE_RECOGNITION_SERVER_FACE_MAX_NUM((0x80000000 | (1063)),"人员数量超过限制","Target recognition server target max num"),
+ // 生日日期格式错误
+ NET_ERROR_FACE_RECOGNITION_SERVER_BIRTH_DAY_FORMAT_ERROR((0x80000000 | (1064)),"生日日期格式错误","Target recognition server birthday format error"),
+ // 人员UID不存在或为空
+ NET_ERROR_FACE_RECOGNITION_SERVER_UID_ERROR((0x80000000 | (1065)),"人员UID不存在或为空","Target recognition server uid error"),
+ // 令牌不存在或为空
+ NET_ERROR_FACE_RECOGNITION_SERVER_TOKEN_ERROR((0x80000000 | (1066)),"令牌不存在或为空","Target recognition server token error"),
+ // 查询起始数大于总数
+ NET_ERROR_FACE_RECOGNITION_SERVER_BEGIN_NUM_OVER_RUN((0x80000000 | (1067)),"查询起始数大于总数","Target recognition server begin num over run"),
+ // 需手动建模人数为0
+ NET_ERROR_FACE_RECOGNITION_SERVER_ABSTRACT_NUM_ZERO((0x80000000 | (1068)),"需手动建模人数为0","Target recognition server abstract num zero"),
+ // 建模分析器启动失败
+ NET_ERROR_FACE_RECOGNITION_SERVER_ABSTRACT_INIT_ERROR((0x80000000 | (1069)),"建模分析器启动失败","Target recognition server abstract init error"),
+ // 设备正在自动建模
+ NET_ERROR_FACE_RECOGNITION_SERVER_AUTO_ABSTRACT_STATE((0x80000000 | (1070)),"设备正在自动建模","Target recognition server auto abstract state"),
+ // 设备正在手动建模
+ NET_ERROR_FACE_RECOGNITION_SERVER_ABSTRACT_STATE((0x80000000 | (1071)),"设备正在手动建模","Target recognition server abstract state"),
+ // 设备正在导入导出
+ NET_ERROR_FACE_RECOGNITION_SERVER_IM_EX_STATE((0x80000000 | (1072)),"设备正在导入导出","Target recognition server im ex state"),
+ // 图片写入失败
+ NET_ERROR_FACE_RECOGNITION_SERVER_PIC_WRITE_FAILED((0x80000000 | (1073)),"图片写入失败","Target recognition server pic write failed"),
+ // 超出目标库空间大小限制
+ NET_ERROR_FACE_RECOGNITION_SERVER_GROUP_SPACE_EXCEED((0x80000000 | (1074)),"超出目标库空间大小限制","Target recognition server group space exceed"),
+ // 超出目标库图片数量限制
+ NET_ERROR_FACE_RECOGNITION_SERVER_GROUP_PIC_COUNT_EXCEED((0x80000000 | (1075)),"超出目标库图片数量限制","Target recognition server group pic count exceed"),
+ // 目标库不存在
+ NET_ERROR_FACE_RECOGNITION_SERVER_GROUP_NOT_FOUND((0x80000000 | (1076)),"目标库不存在","Target recognition server group not found"),
+ // 查询原目标库数据结果无效
+ NET_ERROR_FACE_RECOGNITION_SERVER_FIND_RECORDS_ERROR((0x80000000 | (1077)),"查询原目标库数据结果无效","Target recognition server find record error"),
+ // 删除原目标库数据失败
+ NET_ERROR_FACE_RECOGNITION_SERVER_DELETE_PERSON_ERROR((0x80000000 | (1078)),"删除原目标库数据失败","Target recognition server delete person error"),
+ // 删除目标库失败
+ NET_ERROR_FACE_RECOGNITION_SERVER_DELETE_GROUP_ERROR((0x80000000 | (900)),"删除目标库失败","Target recognition server delete group error"),
+ // 命名格式错误
+ NET_ERROR_FACE_RECOGNITION_SERVER_NAME_FORMAT_ERROR((0x80000000 | (901)),"命名格式错误","Target recognition server name format error"),
+ // 图片保存路径未设置
+ NET_ERROR_FACE_RECOGNITION_SERVER_FILEPATH_NOT_SET((0x80000000 | (902)),"图片保存路径未设置","Target recognition server file path not set"),
+ // 添加小区名字重复
+ NET_ERROR_FACE_RECOGNITION_SERVER_AREAS_NAME_REPEAT((0x80000000 | (903)),"添加小区名字重复","Areas Name Repeat"),
+ // 添加小区ID重复
+ NET_ERROR_FACE_RECOGNITION_SERVER_AREAS_ID_REPEAT((0x80000000 | (904)),"添加小区ID重复","Areas ID Repeat"),
+ // 添加小区通道重复
+ NET_ERROR_FACE_RECOGNITION_SERVER_AREAS_CHANNEL_REPEAT((0x80000000 | (905)),"添加小区通道重复","Areas Channel Repeat"),
+ // 导出任务超出数量限制
+ NET_ERROR_FACE_RECOGNITION_SERVER_EXPORT_TASK_COUNT_EXCEED((0x80000000 | (906)),"导出任务超出数量限制","Export Task Count Exceed"),
+ // 设备不支持以图搜图
+ NET_ERROR_FACE_RECOGNITION_SERVER_PIC_SEARCH_NOT_SUPPORT((0x80000000 | (907)),"设备不支持以图搜图","Pic Search Not Support"),
+ // 设备不支持从大图中检测指定目标图片
+ NET_ERROR_FACE_RECOGNITION_SERVER_DETECT_MULTI_FACE_NOT_SUPPORT((0x80000000 | (908)),"设备不支持从大图中检测指定目标图片","Detect Multi Face Not Support"),
+ // 人员已经存在
+ NET_ERROR_FACE_RECOGNITION_SERVER_PERSON_ALREADY_EXISTS((0x80000000 | (909)),"人员已经存在","The person already exists"),
+ // 设备解析协议错误
+ NET_ERROR_DEVICE_PARSE_PROTOCOL((0x80000000 | (1079)),"设备解析协议错误","device parses protocol error"),
+ // 设备返回无效请求
+ NET_ERROR_DEVICE_INVALID_REQUEST((0x80000000 | (1080)),"设备返回无效请求","device returns invalid request"),
+ // 设备内部错误
+ NET_ERROR_DEVICE_INTERNAL_ERROR((0x80000000 | (1081)),"设备内部错误","device internal error"),
+ // 设备内部请求超时
+ NET_ERROR_DEVICE_REQUEST_TIMEOUT((0x80000000 | (1082)),"设备内部请求超时","device internal request timeout"),
+ // 设备保活失败
+ NET_ERROR_DEVICE_KEEPALIVE_FAIL((0x80000000 | (1083)),"设备保活失败","device keeps alive fail"),
+ // 设备网络错误
+ NET_ERROR_DEVICE_NETWORK_ERROR((0x80000000 | (1084)),"设备网络错误","device network error"),
+ // 设备内部未知错误
+ NET_ERROR_DEVICE_UNKNOWN_ERROR((0x80000000 | (1085)),"设备内部未知错误","device unknown error"),
+ // 设备组件接口没有找到
+ NET_ERROR_DEVICE_COM_INTERFACE_NOTFOUND((0x80000000 | (1086)),"设备组件接口没有找到","device not found com interface"),
+ // 设备组件实现没有找到
+ NET_ERROR_DEVICE_COM_IMPLEMENT_NOTFOUND((0x80000000 | (1087)),"设备组件实现没有找到","device not found com implement"),
+ // 设备接入组件没有找到
+ NET_ERROR_DEVICE_COM_NOTFOUND((0x80000000 | (1088)),"设备接入组件没有找到","device not found client component"),
+ // 设备接入组件实例不存在
+ NET_ERROR_DEVICE_COM_INSTANCE_NOTEXIST((0x80000000 | (1089)),"设备接入组件实例不存在","device not found client com instance"),
+ // 设备组件工厂创建组件失败
+ NET_ERROR_DEVICE_CREATE_COM_FAIL((0x80000000 | (1090)),"设备组件工厂创建组件失败","device creates com fail"),
+ // 设备组件工厂获取组件实例失败
+ NET_ERROR_DEVICE_GET_COM_FAIL((0x80000000 | (1091)),"设备组件工厂获取组件实例失败","device gets com instance fail"),
+ // 设备业务请求不被接受
+ NET_ERROR_DEVICE_BAD_REQUEST((0x80000000 | (1092)),"设备业务请求不被接受","device can not accept bad request"),
+ // 设备已经在处理请求,不接受重复请求
+ NET_ERROR_DEVICE_REQUEST_IN_PROGRESS((0x80000000 | (1093)),"设备已经在处理请求,不接受重复请求","device does not accept repeat request when in progressing"),
+ // 设备资源不足
+ NET_ERROR_DEVICE_LIMITED_RESOURCE((0x80000000 | (1094)),"设备资源不足","device limited resource"),
+ // 设备业务超时
+ NET_ERROR_DEVICE_BUSINESS_TIMEOUT((0x80000000 | (1095)),"设备业务超时","device business timeout"),
+ // 设备接收过多请求
+ NET_ERROR_DEVICE_TOO_MANY_REQUESTS((0x80000000 | (1096)),"设备接收过多请求","device accepts too many requests"),
+ // 设备未准备就绪,不接受业务请求
+ NET_ERROR_DEVICE_NOT_ALREADY((0x80000000 | (1097)),"设备未准备就绪,不接受业务请求","device not already and cannot accept request"),
+ // 设备录像查询超时
+ NET_ERROR_DEVICE_SEARCHRECORD_TIMEOUT((0x80000000 | (1098)),"设备录像查询超时","device searchs record timeout"),
+ // 设备录像查询时间无效
+ NET_ERROR_DEVICE_SEARCHTIME_INVALID((0x80000000 | (1099)),"设备录像查询时间无效","device checks search record time invalid"),
+ // 设备校验SSID无效
+ NET_ERROR_DEVICE_SSID_INVALID((0x80000000 | (1100)),"设备校验SSID无效","device checks SSID invalid"),
+ // 设备校验通道号或码流类型无效
+ NET_ERROR_DEVICE_CHANNEL_STREAMTYPE_ERROR((0x80000000 | (1101)),"设备校验通道号或码流类型无效","device checks channel or streamtype invalid"),
+ // 设备不支持该码流打包格式
+ NET_ERROR_DEVICE_STREAM_PACKINGFORMAT_UNSUPPORT((0x80000000 | (1102)),"设备不支持该码流打包格式","device does not support stream packing format"),
+ // 设备不支持该语音编码格式
+ NET_ERROR_DEVICE_AUDIO_ENCODINGFORMAT_UNSUPPORT((0x80000000 | (1103)),"设备不支持该语音编码格式","device does not support audio encoding format"),
+ // 校验请求安全码失败,可使用本地GUI方式重置密码
+ NET_ERROR_SECURITY_ERROR_SUPPORT_GUI((0x80000000 | (1104)),"校验请求安全码失败,可使用本地GUI方式重置密码","check request security failed, using local GUI reset password"),
+ // 校验请求安全码失败,可使用APP、configtool工具重置密码
+ NET_ERROR_SECURITY_ERROR_SUPPORT_MULT((0x80000000 | (1105)),"校验请求安全码失败,可使用APP、configtool工具重置密码","check request security failed, using private APP or configtool reset password"),
+ // 校验请求安全码失败,可登陆Web页面重置密码
+ NET_ERROR_SECURITY_ERROR_SUPPORT_UNIQUE((0x80000000 | (1106)),"校验请求安全码失败,可登陆Web页面重置密码","check request security failed, using Web reset password"),
+ // 转码库缺失
+ NET_ERROR_STREAMCONVERTOR_DEFECT((0x80000000 | (1107)),"转码库缺失","streamconvertor defect"),
+ // 调用加密库产生安全码失败
+ NET_ERROR_SECURITY_GENERATE_SAFE_CODE((0x80000000 | (1108)),"调用加密库产生安全码失败","generate safe code failed"),
+ // 获取联系方式失败
+ NET_ERROR_SECURITY_GET_CONTACT((0x80000000 | (1109)),"获取联系方式失败","get contact failed"),
+ // 获取重置密码的二维码信息失败
+ NET_ERROR_SECURITY_GET_QRCODE((0x80000000 | (1110)),"获取重置密码的二维码信息失败","get QR code information failed of reset passwd"),
+ // 设备未初始化,无法重置
+ NET_ERROR_SECURITY_CANNOT_RESET((0x80000000 | (1111)),"设备未初始化,无法重置","device uninitialized, can't reset"),
+ // 不支持设置该种联系方式,如只支持设置手机号,却请求设置邮箱
+ NET_ERROR_SECURITY_NOT_SUPPORT_CONTACT_MODE((0x80000000 | (1112)),"不支持设置该种联系方式,如只支持设置手机号,却请求设置邮箱","unsupported contact mode"),
+ // 对端响应超时
+ NET_ERROR_SECURITY_RESPONSE_TIMEOUT((0x80000000 | (1113)),"对端响应超时","server response time out"),
+ // 尝试校验AuthCode次数过多,禁止校验
+ NET_ERROR_SECURITY_AUTHCODE_FORBIDDEN((0x80000000 | (1114)),"尝试校验AuthCode次数过多,禁止校验","had check AuthCode too much, forbid check"),
+ // (虚拟转码)登陆远程设备失败
+ NET_ERROR_TRANCODE_LOGIN_REMOTE_DEV((0x80000000 | (1115)),"(虚拟转码)登陆远程设备失败","(virtual transcode)login remote device failed"),
+ // (虚拟转码)没有可用的通道资源
+ NET_ERROR_TRANCODE_NOFREE_CHANNEL((0x80000000 | (1116)),"(虚拟转码)没有可用的通道资源","(virtual transcode)no free virtual channel"),
+ // VK信息解密失败
+ NET_ERROR_VK_INFO_DECRYPT_FAILED((0x80000000 | (1117)),"VK信息解密失败","VK info decrypt failed"),
+ // VK信息解析失败
+ NET_ERROR_VK_INFO_DESERIALIZE_FAILED((0x80000000 | (1118)),"VK信息解析失败","VK info deserial failed"),
+ // SDK GDPR功能未使能
+ NET_ERROR_GDPR_ABILITY_NOT_ENABLE((0x80000000 | (1119)),"SDK GDPR功能未使能","SDK GDPR ability not enable"),
+ // 门禁快速复核:无权限
+ NET_ERROR_FAST_CHECK_NO_AUTH((0x80000000 | (1120)),"门禁快速复核:无权限","access control fast check:no authority"),
+ // 门禁快速复核:文件不存在
+ NET_ERROR_FAST_CHECK_NO_FILE((0x80000000 | (1121)),"门禁快速复核:文件不存在","access control fast check:file does not exist"),
+ // 门禁快速复核:文件准备失败
+ NET_ERROR_FAST_CHECK_FILE_FAIL((0x80000000 | (1122)),"门禁快速复核:文件准备失败","access control fast check:fail to prepare file"),
+ // 门禁快速复核:系统忙
+ NET_ERROR_FAST_CHECK_BUSY((0x80000000 | (1123)),"门禁快速复核:系统忙","access control fast check:system is busy"),
+ // 门禁快速复核:未定义密码, 不允许导出
+ NET_ERROR_FAST_CHECK_NO_PASSWORD((0x80000000 | (1124)),"门禁快速复核:未定义密码, 不允许导出","access control fast check:no password, and import is not allowed"),
+ // 门禁快速导入:发送门禁数据失败
+ NET_ERROR_IMPORT_ACCESS_SEND_FAILD((0x80000000 | (1125)),"门禁快速导入:发送门禁数据失败","access control fast import:fail to send access control data"),
+ // 门禁快速导入:系统忙, 已经有导入任务
+ NET_ERROR_IMPORT_ACCESS_BUSY((0x80000000 | (1126)),"门禁快速导入:系统忙, 已经有导入任务","access control fast import:system is busy"),
+ // 门禁快速导入:数据包检验失败
+ NET_ERROR_IMPORT_ACCESS_DATAERROR((0x80000000 | (1127)),"门禁快速导入:数据包检验失败","access control fast import:packet data check failed"),
+ // 门禁快速导入:数据包非法
+ NET_ERROR_IMPORT_ACCESS_DATAINVALID((0x80000000 | (1128)),"门禁快速导入:数据包非法","access control fast import:illegal packet data"),
+ // 门禁快速导入:同步失败,数据库无法生成
+ NET_ERROR_IMPORT_ACCESS_SYNC_FALID((0x80000000 | (1129)),"门禁快速导入:同步失败,数据库无法生成","access control fast import:fail to synchronization"),
+ // 门禁快速导入:数据库已满, 无法导入
+ NET_ERROR_IMPORT_ACCESS_DBFULL((0x80000000 | (1130)),"门禁快速导入:数据库已满, 无法导入","access control fast import:data base is full"),
+ // 门禁快速导入:存储空间已满, 无法导入
+ NET_ERROR_IMPORT_ACCESS_SDFULL((0x80000000 | (1131)),"门禁快速导入:存储空间已满, 无法导入","access control fast import:SD is full"),
+ // 门禁快速导入:导入压缩包密码不对
+ NET_ERROR_IMPORT_ACCESS_CIPHER_ERROR((0x80000000 | (1132)),"门禁快速导入:导入压缩包密码不对","access control fast import:password error"),
+ // 参数无效
+ NET_ERROR_INVALID_PARAM((0x80000000 | (1133)),"参数无效","invalid param"),
+ // 密码无效
+ NET_ERROR_INVALID_PASSWORD((0x80000000 | (1134)),"密码无效","invalid password"),
+ // 信息无效
+ NET_ERROR_INVALID_FINGERPRINT((0x80000000 | (1135)),"信息无效","invalid infomation"),
+ // 目标无效
+ NET_ERROR_INVALID_FACE((0x80000000 | (1136)),"目标无效","invalid target"),
+ // 卡无效
+ NET_ERROR_INVALID_CARD((0x80000000 | (1137)),"卡无效","invalid card"),
+ // 用户无效
+ NET_ERROR_INVALID_USER((0x80000000 | (1138)),"用户无效","invalid user"),
+ // 能力集子服务获取失败
+ NET_ERROR_GET_SUBSERVICE((0x80000000 | (1139)),"能力集子服务获取失败","device get sub service fail"),
+ // 获取组件的方法集失败
+ NET_ERROR_GET_METHOD((0x80000000 | (1140)),"获取组件的方法集失败","device get method fail"),
+ // 获取资源实体能力集失败
+ NET_ERROR_GET_SUBCAPS((0x80000000 | (1141)),"获取资源实体能力集失败","device get sub caps fail"),
+ // 已达插入上限
+ NET_ERROR_UPTO_INSERT_LIMIT((0x80000000 | (1142)),"已达插入上限","up to insert limit"),
+ // 已达最大插入速度
+ NET_ERROR_UPTO_MAX_INSERT_RATE((0x80000000 | (1143)),"已达最大插入速度","up tp max insert rate"),
+ // 清除信息数据失败
+ NET_ERROR_ERASE_FINGERPRINT((0x80000000 | (1144)),"清除信息数据失败","erase infomation data fail"),
+ // 清除目标数据失败
+ NET_ERROR_ERASE_FACE((0x80000000 | (1145)),"清除目标数据失败","erase target data fail"),
+ // 清除卡数据失败
+ NET_ERROR_ERASE_CARD((0x80000000 | (1146)),"清除卡数据失败","erase card data fail"),
+ // 没有记录
+ NET_ERROR_NO_RECORD((0x80000000 | (1147)),"没有记录","no record"),
+ // 查找到最后,没有更多记录
+ NET_ERROR_NOMORE_RECORDS((0x80000000 | (1148)),"查找到最后,没有更多记录","no more records"),
+ // 下发卡或信息时,数据重复
+ NET_ERROR_RECORD_ALREADY_EXISTS((0x80000000 | (1149)),"下发卡或信息时,数据重复","record already exist"),
+ // 超过个人最大信息记录数
+ NET_ERROR_EXCEED_MAX_FINGERPRINT_PERUSER((0x80000000 | (1150)),"超过个人最大信息记录数","exceed max infomation per user"),
+ // 超过个人最大卡片记录数
+ NET_ERROR_EXCEED_MAX_CARD_PERUSER((0x80000000 | (1151)),"超过个人最大卡片记录数","exceed max card per user"),
+ // 超过门禁管理员个数限制
+ NET_ERROR_EXCEED_ADMINISTRATOR_LIMIT((0x80000000 | (1152)),"超过门禁管理员个数限制","exceed administrator limit"),
+ // 设备不支持高安全等级登录
+ NET_LOGIN_ERROR_DEVICE_NOT_SUPPORT_HIGHLEVEL_SECURITY_LOGIN((0x80000000 | (1153)),"设备不支持高安全等级登录","device not support high level security login"),
+ // 设备只支持高安全等级登录
+ NET_LOGIN_ERROR_DEVICE_ONLY_SUPPORT_HIGHLEVEL_SECURITY_LOGIN((0x80000000 | (1154)),"设备只支持高安全等级登录","device only support high level security login"),
+ // 表示此视频通道处于离线,拉流失败
+ NET_ERROR_VIDEO_CHANNEL_OFFLINE((0x80000000 | (1155)),"表示此视频通道处于离线,拉流失败","current video channel is offline, play failed"),
+ // 用户编号不规范
+ NET_ERROR_USERID_FORMAT_INCORRECT((0x80000000 | (1156)),"用户编号不规范","The format of the User ID is incorrect - should be all digital numbers"),
+ // 找不到该SN对应的通道
+ NET_ERROR_CANNOT_FIND_CHANNEL_RELATE_TO_SN((0x80000000 | (1157)),"找不到该SN对应的通道","The corresponding channel to this serial number could not be found"),
+ // 该通道的任务队列满
+ NET_ERROR_TASK_QUEUE_OF_CHANNEL_IS_FULL((0x80000000 | (1158)),"该通道的任务队列满","The task queue for this channel is full"),
+ // 申请不到新的用户信息(权限)块
+ NET_ERROR_APPLY_USER_INFO_BLOCK_FAIL((0x80000000 | (1159)),"申请不到新的用户信息(权限)块","Applying for new user information blocks failed"),
+ // 用户密码数量超过限制
+ NET_ERROR_EXCEED_MAX_PASSWD_PERUSER((0x80000000 | (1160)),"用户密码数量超过限制","The maximum number of user's password exceeded"),
+ // 设备内部异常引起协议解析错误
+ NET_ERROR_PARSE_PROTOCOL((0x80000000 | (1161)),"设备内部异常引起协议解析错误","Internal error when parsing protocol packages"),
+ // 卡号已存在
+ NET_ERROR_CARD_NUM_EXIST((0x80000000 | (1162)),"卡号已存在","card num already exist"),
+ // 信息已存在
+ NET_ERROR_FINGERPRINT_EXIST((0x80000000 | (1163)),"信息已存在","infomation already exist"),
+ // 打开播放组失败
+ NET_ERROR_OPEN_PLAYGROUP_FAIL((0x80000000 | (1164)),"打开播放组失败","open play group fail"),
+ // 已位于播放组中
+ NET_ERROR_ALREADY_IN_PLAYGROUP((0x80000000 | (1165)),"已位于播放组中","play handle already in play group"),
+ // 查询播放组时间失败
+ NET_ERROR_QUERY_PLAYGROUP_TIME_FAIL((0x80000000 | (1166)),"查询播放组时间失败","query play group time fail"),
+ // 设置播放组基准通道失败
+ NET_ERROR_SET_PLAYGROUP_BASECHANNEL_FAIL((0x80000000 | (1167)),"设置播放组基准通道失败","set play group base channel fail"),
+ // 设置播放组方向失败
+ NET_ERROR_SET_PLAYGROUP_DIRECTION_FAIL((0x80000000 | (1168)),"设置播放组方向失败","set play group direction fail"),
+ // 设置播放组速度失败
+ NET_ERROR_SET_PLAYGROUP_SPEED_FAIL((0x80000000 | (1169)),"设置播放组速度失败","set play group speed fail"),
+ // 加入播放组失败
+ NET_ERROR_ADD_PLAYGROUP_FAIL((0x80000000 | (1170)),"加入播放组失败","add play handle to play group fail"),
+ // 导出AOL日志:无权限
+ NET_ERROR_EXPORT_AOL_LOGFILE_NO_AUTH((0x80000000 | (1171)),"导出AOL日志:无权限","export aol log file:no auth"),
+ // 导出AOL日志:文件不存在
+ NET_ERROR_EXPORT_AOL_LOGFILE_NO_FILE((0x80000000 | (1172)),"导出AOL日志:文件不存在","export aol log file:no file"),
+ // 导出AOL日志:文件准备失败
+ NET_ERROR_EXPORT_AOL_LOGFILE_FILE_FAIL((0x80000000 | (1173)),"导出AOL日志:文件准备失败","export aol log file:prepare file fail"),
+ // 导出AOL日志:系统忙
+ NET_ERROR_EXPORT_AOL_LOGFILE_BUSY((0x80000000 | (1174)),"导出AOL日志:系统忙","export aol log file:device busy"),
+ // License为空
+ NET_ERROR_EMPTY_LICENSE((0x80000000 | (1175)),"License为空","Empty license"),
+ // 不支持该模式
+ NET_ERROR_UNSUPPORTED_MODE((0x80000000 | (1176)),"不支持该模式","Unsupported mode"),
+ // URL与APP不匹配
+ NET_ERROR_URL_APP_NOT_MATCH((0x80000000 | (1177)),"URL与APP不匹配","Url and App are not match"),
+ // 读取信息失败
+ NET_ERROR_READ_INFO_FAILED((0x80000000 | (1178)),"读取信息失败","Read info failed"),
+ // 写入失败
+ NET_ERROR_WRITE_FAILED((0x80000000 | (1179)),"写入失败","Write failed"),
+ // 未找到APP
+ NET_ERROR_NO_SUCH_APP((0x80000000 | (1180)),"未找到APP","No such App"),
+ // 校验失败
+ NET_ERROR_VERIFIF_FAILED((0x80000000 | (1181)),"校验失败","Verify failed"),
+ // License已过期
+ NET_ERROR_LICENSE_OUT_DATE((0x80000000 | (1182)),"License已过期","License out of date"),
+ // 升级程序版本过低
+ NET_ERROR_UPGRADE_PROGRAM_TOO_OLD((0x80000000 | (1183)),"升级程序版本过低","upgrade program version too old"),
+ // 加密传输被裁剪
+ NET_ERROR_SECURE_TRANSMIT_BEEN_CUT((0x80000000 | (1184)),"加密传输被裁剪","secure transmit has been cut"),
+ // 设备不支持安全传输
+ NET_ERROR_DEVICE_NOT_SUPPORT_SECURE_TRANSMIT((0x80000000 | (1185)),"设备不支持安全传输","device not support secure transmit"),
+ // 主码流成功的情况下,辅码流登录失败
+ NET_ERROR_EXTRA_STREAM_LOGIN_FAIL_CAUSE_BY_MAIN_STREAM((0x80000000 | (1186)),"主码流成功的情况下,辅码流登录失败","when main stream success, extra stream login fail"),
+ // 辅码流被前端关闭
+ NET_ERROR_EXTRA_STREAM_CLOSED_BY_REMOTE_DEVICE((0x80000000 | (1187)),"辅码流被前端关闭","extra stream closed by remote device"),
+ // 目标库导入:发送目标库数据失败
+ NET_ERROR_IMPORT_FACEDB_SEND_FAILD((0x80000000 | (1188)),"目标库导入:发送目标库数据失败","Import targetdb: Failed to send target database data"),
+ // 目标库导入:系统忙, 已经有导入任务
+ NET_ERROR_IMPORT_FACEDB_BUSY((0x80000000 | (1189)),"目标库导入:系统忙, 已经有导入任务","Import targetdb: The system is busy. There are import tasks"),
+ // 目标库导入:数据包检验失败
+ NET_ERROR_IMPORT_FACEDB_DATAERROR((0x80000000 | (1190)),"目标库导入:数据包检验失败","Import targetdb: Packet validation failed"),
+ // 目标库导入:数据包非法
+ NET_ERROR_IMPORT_FACEDB_DATAINVALID((0x80000000 | (1191)),"目标库导入:数据包非法","Import targetdb: Invalid packet"),
+ // 目标库导入:上传失败
+ NET_ERROR_IMPORT_FACEDB_UPGRADE_FAILD((0x80000000 | (1192)),"目标库导入:上传失败","Import targetdb:Upload failed"),
+ // 目标库导入:用户无权限
+ NET_ERROR_IMPORT_FACEDB_NO_AUTHORITY((0x80000000 | (1193)),"目标库导入:用户无权限","Import targetdb:No authority"),
+ // 目标库导入:文件格式异常
+ NET_ERROR_IMPORT_FACEDB_ABNORMAL_FILE((0x80000000 | (1194)),"目标库导入:文件格式异常","Import targetdb:Abnormal file"),
+ // 目标库导入:同步失败,数据库无法生成
+ NET_ERROR_IMPORT_FACEDB_SYNC_FALID((0x80000000 | (1195)),"目标库导入:同步失败,数据库无法生成","Import targetdb: Synchronization failed, database could not be generated"),
+ // 目标库导入:数据库已满, 无法导入
+ NET_ERROR_IMPORT_FACEDB_DBFULL((0x80000000 | (1196)),"目标库导入:数据库已满, 无法导入","Import targetdb: Database is full, unable to import"),
+ // 目标库导入:存储空间已满, 无法导入
+ NET_ERROR_IMPORT_FACEDB_SDFULL((0x80000000 | (1197)),"目标库导入:存储空间已满, 无法导入","Import targetdb: Storage space is full, unable to import"),
+ // 目标库导入:导入压缩包密码不对
+ NET_ERROR_IMPORT_FACEDB_CIPHER_ERROR((0x80000000 | (1198)),"目标库导入:导入压缩包密码不对","Import targetdb: Incorrect password for importing compressed package"),
+ // 目标库导出:无权限
+ NET_ERROR_EXPORT_FACEDB_NO_AUTH((0x80000000 | (1199)),"目标库导出:无权限","Export targetdb: No authority"),
+ // 目标库导出:文件不存在
+ NET_ERROR_EXPORT_FACEDB_NO_FILE((0x80000000 | (1200)),"目标库导出:文件不存在","Export targetdb: File does not exist"),
+ // 目标库导出:文件准备失败
+ NET_ERROR_EXPORT_FACEDB_FILE_FAIL((0x80000000 | (1201)),"目标库导出:文件准备失败","Export targetdb: File preparation failed"),
+ // 目标库导出:系统忙
+ NET_ERROR_EXPORT_FACEDB_BUSY((0x80000000 | (1202)),"目标库导出:系统忙","Export targetdb: System busy"),
+ // 目标库导出:未定义密码, 不允许导出
+ NET_ERROR_EXPORT_FACEDB_NO_PASSWORD((0x80000000 | (1203)),"目标库导出:未定义密码, 不允许导出","Export targetdb: No password defined, export not allowed"),
+ // 获取了过多的数据,设备无法处理
+ NET_ERROR_REQUESTED_TOO_MUCH_DATA((0x80000000 | (1204)),"获取了过多的数据,设备无法处理","Requested Too Much Data at one time."),
+ // 在业务批量执行过程中有错误发生
+ NET_ERROR_BATCH_PROCESS_ERROR((0x80000000 | (1205)),"在业务批量执行过程中有错误发生","Batch Process Error"),
+ // 某种原因,业务被取消执行
+ NET_ERROR_OPERATION_CANCELLED((0x80000000 | (1206)),"某种原因,业务被取消执行","Operation Cancelled"),
+ // 设备型号不对,无法进一步处理
+ NET_ERROR_DEVICE_INVALID((0x80000000 | (1207)),"设备型号不对,无法进一步处理","Device Invalid"),
+ // 无法获取到设备状态信息
+ NET_ERROR_DEVICE_UNAVAILABLE((0x80000000 | (1208)),"无法获取到设备状态信息","Device Unavailable - Can not get the device status."),
+ // 信息通过URL下载方式下载失败
+ NET_ERROR_FINGERPRINT_DOWNLOAD_FAIL((0x80000000 | (1209)),"信息通过URL下载方式下载失败","information Download Fail"),
+ // 账户登录中
+ NET_ERROR_ACCOUNT_IN_USE((0x80000000 | (1210)),"账户登录中","Account In Use"),
+ // 更新用户眼睛信息时,用户不存在目标
+ NET_ERROR_IRIS_INFO_NOT_EXISTED((0x80000000 | (1211)),"更新用户眼睛信息时,用户不存在目标","Eyes Info Not Existed"),
+ // 下发的眼睛数据格式、特征值大小错误
+ NET_ERROR_INVALID_IRIS_DATA((0x80000000 | (1212)),"下发的眼睛数据格式、特征值大小错误","Invalid Eyes Data"),
+ // 眼睛信息已存在
+ NET_ERROR_IRIS_ALREADY_EXIST((0x80000000 | (1213)),"眼睛信息已存在","Eyes Info Already Exist"),
+ // 眼睛信息删除失败
+ NET_ERROR_ERASE_IRIS_FAILED((0x80000000 | (1214)),"眼睛信息删除失败","Erase Eyes Info Failed"),
+ // 超出个人所支持的眼睛信息组数量,两个眼睛(左右眼)为一组
+ NET_ERROR_EXCEED_MAX_IRIS_GROUP_COUNT_PER_USER((0x80000000 | (1215)),"超出个人所支持的眼睛信息组数量,两个眼睛(左右眼)为一组","Exceed Max Eyes Info Group Count Per User"),
+ // 超出个人单组眼睛信息所能记录的最大数量
+ NET_ERROR_EXCEED_MAX_IRIS_COUNT_PER_GROUP((0x80000000 | (1216)),"超出个人单组眼睛信息所能记录的最大数量","Exceed Max Eyes Info Count Per Group"),
+ // 门处于常开状态
+ NET_ERROR_DOOR_IN_NORMALLY_OPEN_STATUS((0x80000000 | (1217)),"门处于常开状态","The door is in a normally open status"),
+ // 门处于常闭状态
+ NET_ERROR_DOOR_IN_NORMALLY_CLOSED_STATUS((0x80000000 | (1218)),"门处于常闭状态","The door is in a normally closed status"),
+ // 门处于互锁状态
+ NET_ERROR_DOOR_IN_INTERLOCK_STATUS((0x80000000 | (1219)),"门处于互锁状态","The door is in an interlocking status"),
+ // 图片中检测到0个目标
+ NET_ERROR_FACEMANAGER_NO_FACE_DETECTED((0x80000000 | (1300)),"图片中检测到0个目标","No target detected"),
+ // 图片中检测到多个目标,无法返回特征
+ NET_ERROR_FACEMANAGER_MULTI_FACE_DETECTED((0x80000000 | (1301)),"图片中检测到多个目标,无法返回特征","Multi target detected, Can not extract eigenvalues"),
+ // 图片解码错误
+ NET_ERROR_FACEMANAGER_PICTURE_DECODING_ERROR((0x80000000 | (1302)),"图片解码错误","Picture decoding error"),
+ // 图片质量太低
+ NET_ERROR_FACEMANAGER_LOW_PICTURE_QUALITY((0x80000000 | (1303)),"图片质量太低","The picture quality is too low"),
+ // 结果不推荐使用,比如:对外国人,特征提取成功,但算法支持不好,容易造成误识别
+ NET_ERROR_FACEMANAGER_NOT_RECOMMENDED((0x80000000 | (1304)),"结果不推荐使用,比如:对外国人,特征提取成功,但算法支持不好,容易造成误识别","Not recommended, Eigen style mismatched to the algorithm model"),
+ // 目标特征已存在
+ NET_ERROR_FACEMANAGER_FACE_FEATURE_ALREADY_EXIST((0x80000000 | (1305)),"目标特征已存在","target eigenvalue already exist"),
+ // 目标角度超过配置阈值
+ NET_ERROR_FACEMANAGER_FACE_ANGLE_OVER_THRESHOLDS((0x80000000 | (1307)),"目标角度超过配置阈值","target angle over thresholds"),
+ // 目标占比超出范围,算法建议占比:不要超过2/3;不要小于1/3
+ NET_ERROR_FACEMANAGER_FACE_RADIO_EXCEEDS_RANGE((0x80000000 | (1308)),"目标占比超出范围,算法建议占比:不要超过2/3;不要小于1/3","target radio exceeds range"),
+ // 目标过爆
+ NET_ERROR_FACEMANAGER_FACE_OVER_EXPOSED((0x80000000 | (1309)),"目标过爆","target over exposed"),
+ // 目标欠爆
+ NET_ERROR_FACEMANAGER_FACE_UNDER_EXPOSED((0x80000000 | (1310)),"目标欠爆","target under exposed"),
+ // 目标亮度不均衡 ,用于判断阴阳脸
+ NET_ERROR_FACEMANAGER_BRIGHTNESS_IMBALANCE((0x80000000 | (1311)),"目标亮度不均衡 ,用于判断阴阳脸","target brightness imbalance"),
+ // 目标的置信度低
+ NET_ERROR_FACEMANAGER_FACE_LOWER_CONFIDENCE((0x80000000 | (1312)),"目标的置信度低","target lower confidence level"),
+ // 目标对齐分数低
+ NET_ERROR_FACEMANAGER_FACE_LOW_ALIGN((0x80000000 | (1313)),"目标对齐分数低","target low align score"),
+ // 目标存在遮挡、残缺不全
+ NET_ERROR_FACEMANAGER_FRAGMENTARY_FACE_DETECTED((0x80000000 | (1314)),"目标存在遮挡、残缺不全","Fragmentary target detected"),
+ // 目标瞳距小于阈值
+ NET_ERROR_FACEMANAGER_PUPIL_DISTANCE_NOT_ENOUGH((0x80000000 | (1315)),"目标瞳距小于阈值","Pupil distance in the photo is not enough"),
+ // 目标数据下载失败
+ NET_ERROR_FACEMANAGER_FACE_DATA_DOWNLOAD_FAILED((0x80000000 | (1316)),"目标数据下载失败","target download failed"),
+ // 工作模式错误
+ NET_ERROR_CITIZENMANAGER_ERROR_WORKINGMODE_ERROR((0x80000000 | (1317)),"工作模式错误","Working mode error"),
+ // 采集繁忙中
+ NET_ERROR_CITIZENMANAGER_ERROR_CAPTURE_BUSY((0x80000000 | (1318)),"采集繁忙中","Busy collecting"),
+ // 不支持该采集方式
+ NET_ERROR_CITIZENMANAGER_ERROR_CAPTURE_TYPE_ERROR((0x80000000 | (1319)),"不支持该采集方式","Does not support this collection method"),
+ // 普通用户不支持下发
+ NET_ERROR_NORMAL_USER_NOTSUPPORT((0x80000000 | (1320)),"普通用户不支持下发","Ordinary users do not support delivery"),
+ // 制冷机强制开机无效,当天开启次数已用完
+ NET_ERROR_THERMOGRAPHY_REF_SENSOR_OPEN_INVALID((0x80000000 | (1321)),"制冷机强制开机无效,当天开启次数已用完","The forced start-up of the refrigerator is invalid, and the opening times have been used up on the same day"),
+ // 制冷机延迟关闭无效,当天已达到延迟次数
+ NET_ERROR_THERMOGRAPHY_REF_DELAY_SHUT_DOWN_INVALID((0x80000000 | (1322)),"制冷机延迟关闭无效,当天已达到延迟次数","The delayed shutdown of the refrigerator is invalid, and the delay times have been reached on the same day"),
+ // 证件号已存在
+ NET_ERROR_CITIZENID_EXIST((0x80000000 | (1323)),"证件号已存在","ID is already exist"),
+ // 目标可检测,但特征值提取失败(算法场景)
+ NET_ERROR_FACEMANAGER_FACE_FFE_FAILED((0x80000000 | (1324)),"目标可检测,但特征值提取失败(算法场景)","The target can be detected, but the feature value extraction fails (algorithm scene)"),
+ // 目标照片因口罩,帽子,墨镜等目标属性不符合而提取特征值错误
+ NET_ERROR_FACEMANAGER_PHOTO_FEATURE_FAILED_FOR_FA((0x80000000 | (1325)),"目标照片因口罩,帽子,墨镜等目标属性不符合而提取特征值错误","The feature value extracted from the target photo is incorrect due to the inconsistency of target attributes such as masks, hats, sunglasses, etc."),
+ // 目标照片不完整
+ NET_ERROR_FACEMANAGER_FACE_DATA_PHOTO_INCOMPLETE((0x80000000 | (1326)),"目标照片不完整","Incomplete target photo"),
+ // 数据库插入越上限
+ NET_ERROR_DATABASE_ERROR_INSERT_OVERFLOW((0x80000000 | (1327)),"数据库插入越上限","Database Error Insert Overflow"),
+ // 工装检测合规库:组ID超过最大值
+ NET_ERROR_WORKSUIT_COMPARE_SERVER_GROUPID_EXCEED((0x80000000 | (1328)),"工装检测合规库:组ID超过最大值","WorkSuitCompareServer:GroupIdExceed"),
+ // 工装检测合规库:建模分析器启动失败
+ NET_ERROR_WORKSUIT_COMPARE_SERVER_ABSTRACT_INIT_ERROR((0x80000000 | (1329)),"工装检测合规库:建模分析器启动失败","WorkSuitCompareServer:AbstractInitError"),
+ // 工装检测合规库:组ID不存在或为空
+ NET_ERROR_WORKSUIT_COMPARE_SERVER_GROUPID_NOT_FOUND((0x80000000 | (1330)),"工装检测合规库:组ID不存在或为空","WorkSuitCompareServer:GroupIdNotFound"),
+ // 工装检测合规库:数据库操作失败(指的是database操作)
+ NET_ERROR_WORKSUIT_COMPARE_SERVER_DATABASE_ERROR((0x80000000 | (1331)),"工装检测合规库:数据库操作失败(指的是database操作)","WorkSuitCompareServer:DatabaseError"),
+ // 工装检测合规库:令牌不存在或为空
+ NET_ERROR_WORKSUIT_COMPARE_SERVER_TOKEN_ERROR((0x80000000 | (1332)),"工装检测合规库:令牌不存在或为空","WorkSuitCompareServer:TokenError"),
+ // 工装检测合规库:查询起始数大于总数
+ NET_ERROR_WORKSUIT_COMPARE_SERVER_BEGINNUM_OVERRUN((0x80000000 | (1333)),"工装检测合规库:查询起始数大于总数","WorkSuitCompareServer:BeginNumOverRun"),
+ // 工装检测合规库:设备正在建模
+ NET_ERROR_WORKSUIT_COMPARE_SERVER_ABSTRACT_STATE((0x80000000 | (1334)),"工装检测合规库:设备正在建模","WorkSuitCompareServer:AbstractState"),
+ // 工装检测合规库:单次导入全景图数量超过限制
+ NET_ERROR_WORKSUIT_COMPARE_SERVER_BIGPIC_MAXNUM((0x80000000 | (1335)),"工装检测合规库:单次导入全景图数量超过限制","WorkSuitCompareServer:BigPicMaxNum"),
+ // 工装检测合规库:工装数量超过限制
+ NET_ERROR_WORKSUIT_COMPARE_SERVER_OBJECT_MAXNUM((0x80000000 | (1336)),"工装检测合规库:工装数量超过限制","WorkSuitCompareServer:ObjectMaxNum"),
+ // 工装检测合规库:超出合规库空间大小限制
+ NET_ERROR_WORKSUIT_COMPARE_SERVER_GROUP_SPACE_EXCEED((0x80000000 | (1337)),"工装检测合规库:超出合规库空间大小限制","WorkSuitCompareServer:GroupSpaceExceed"),
+ // 工装检测合规库:需手动建模数量为0
+ NET_ERROR_WORKSUIT_COMPARE_SERVER_ABSTRACTNUM_ZERO((0x80000000 | (1338)),"工装检测合规库:需手动建模数量为0","WorkSuitCompareServer:AbstractNumZero"),
+ // 工装检测合规库:无效参数
+ NET_ERROR_WORKSUIT_COMPARE_SERVER_INVALID_PARAM((0x80000000 | (1339)),"工装检测合规库:无效参数","WorkSuitCompareServer:InvalidParam"),
+ // 卡号不存在
+ NET_ERROR_CARD_NOT_EXIST((0x80000000 | (1340)),"卡号不存在","Card not exist"),
+ // 临时库过时
+ NET_ERROR_TEMPORARY_OUTDATED((0x80000000 | (1341)),"临时库过时","Temporary library outdated"),
+ // 无效的连接
+ NET_SUBBIZ_INVALID_SOCKET((0x80000000 | (1401)),"无效的连接","Invalid socket"),
+ // 暂停媒体文件下载失败
+ NET_SUBBIZ_PAUSE_ERROR((0x80000000 | (1402)),"暂停媒体文件下载失败","Pause download media file error"),
+ // 获取私有隧道向上侦听端口失败}
+ NET_SUBBIZ_GET_PORT_ERROR((0x80000000 | (1403)),"获取私有隧道向上侦听端口失败}","Failed to get private tunnel up listening port}");
+
+ private int value;
+ private String ChnNote;
+ private String EngNote;
+
+ private LastErrorNew(int givenValue, String ChnNote, String EngNote) {
+ this.value = givenValue;
+ this.ChnNote = ChnNote;
+ this.EngNote = EngNote;
+ }
+
+ public String getChnNote() {
+ return ChnNote;
+ }
+
+ public String getEngNote() {
+ return EngNote;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getChnNoteByValue(int givenValue) {
+ for (LastErrorNew enumType : LastErrorNew.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getChnNote();
+ }
+ }
+ return LastErrorNew.getChnNoteByValue(LastErrorNew.UNRECORDED_ERROR.value);
+ }
+
+ public static String getEngNoteByValue(int givenValue) {
+ for (LastErrorNew enumType : LastErrorNew.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getEngNote();
+ }
+ }
+ return LastErrorNew.getEngNoteByValue(LastErrorNew.UNRECORDED_ERROR.value);
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NETAEM_EVENT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NETAEM_EVENT_TYPE.java
new file mode 100644
index 0000000..c301c03
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NETAEM_EVENT_TYPE.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 事件的数据类型
+*/
+public enum NETAEM_EVENT_TYPE
+{
+ /**
+ * 未知
+ */
+ EM_EVENT_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 实时数据
+ */
+ EM_EVENT_TYPE_REAL(1, "实时数据"),
+ /**
+ * 报警数据
+ */
+ EM_EVENT_TYPE_ALARM(2, "报警数据");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NETAEM_EVENT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NETAEM_EVENT_TYPE enumType : NETAEM_EVENT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NETAEM_EVENT_TYPE enumType : NETAEM_EVENT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_ACCESS_ERRORCODE.java b/src/main/java/com/netsdk/lib/enumeration/NET_ACCESS_ERRORCODE.java
new file mode 100644
index 0000000..b48b0eb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_ACCESS_ERRORCODE.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 门禁卡操作数据错误码
+ * @date 2021/2/8
+ */
+public enum NET_ACCESS_ERRORCODE {
+ /**
+ * 未知错误
+ */
+ NET_ACCESS_ERRORCODE_UNKNOWN(0, "未知错误"),
+ /**
+ * 不支持该数据类型
+ */
+ NET_ACCESS_ERRORCODE_NOTSUPPORT(1, "不支持该数据类型"),
+ /**
+ * 数据类型已存满
+ */
+ NET_ACCESS_ERRORCODE_FULLDATA(2, "数据类型已满"),
+ /**
+ * 不支持下发操作
+ */
+ NET_ACCESS_ERRORCODE_NOTSUPPORTISSUED(3, "不支持下发操作");
+
+ private int code;
+ private String desc;
+
+ NET_ACCESS_ERRORCODE(int code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public int getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public static NET_ACCESS_ERRORCODE getNetAccessErrorCode(int code){
+ for (NET_ACCESS_ERRORCODE errorCode :NET_ACCESS_ERRORCODE.values() ) {
+ if(errorCode.code==code){
+ return errorCode;
+ }
+ }
+ return NET_ACCESS_ERRORCODE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_CAMERA_SENSOR.java b/src/main/java/com/netsdk/lib/enumeration/NET_CAMERA_SENSOR.java
new file mode 100644
index 0000000..9cde1d3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_CAMERA_SENSOR.java
@@ -0,0 +1,55 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 镜头传感器类型
+*/
+public enum NET_CAMERA_SENSOR
+{
+ /**
+ * 一般(可见光)
+ */
+ NET_CAMERA_SENSOR_NORMAL(0, "一般(可见光)"),
+ /**
+ * Lepton 热成像
+ */
+ NET_CAMERA_SENSOR_LEPTON(1, "Lepton 热成像"),
+ /**
+ * Tau 热成像
+ */
+ NET_CAMERA_SENSOR_TAU(2, "Tau 热成像");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_CAMERA_SENSOR(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_CAMERA_SENSOR enumType : NET_CAMERA_SENSOR.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_CAMERA_SENSOR enumType : NET_CAMERA_SENSOR.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_CODEID_ERROR_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_CODEID_ERROR_TYPE.java
new file mode 100644
index 0000000..fb7ed80
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_CODEID_ERROR_TYPE.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 对码错误类型
+ * @date 2023/03/16 16:26:31
+ */
+public enum NET_CODEID_ERROR_TYPE {
+ /**
+ * 对码正确
+ */
+ NET_CODEID_ERROR_TYPE_RIGHT(0, "对码正确"),
+ /**
+ * 已经存在
+ */
+ NET_CODEID_ERROR_TYPE_ALREADYEXIST(1, "已经存在"),
+ /**
+ * 其他错误
+ */
+ NET_CODEID_ERROR_TYPE_OTHER(2, "其他错误");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_CODEID_ERROR_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_CODEID_ERROR_TYPE enumType : NET_CODEID_ERROR_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_CODEID_ERROR_TYPE enumType : NET_CODEID_ERROR_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_COURSECOMPOSITE_MODE_OPERATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_COURSECOMPOSITE_MODE_OPERATE_TYPE.java
new file mode 100644
index 0000000..659ec94
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_COURSECOMPOSITE_MODE_OPERATE_TYPE.java
@@ -0,0 +1,79 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.structure.*;
+
+/**
+ * {@link NetSDKLib#CLIENT_OperateCourseCompositeChannelMode}
+ * @author : 47040
+ * @since : Created in 2020/9/27 16:30
+ */
+public enum NET_COURSECOMPOSITE_MODE_OPERATE_TYPE {
+ /**
+ * 添加模式,对应结构体
+ * pInParam {@link NET_IN_COURSECOMPOSITE_CHANNEL_MODE_ADD}
+ * pOutParam {@link NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_ADD}
+ */
+ NET_COURSECOMPOSITE_MODE_ADD(0, "添加模式"),
+ /**
+ * 删除模式,对应结构体
+ * pInParam {@link NET_IN_COURSECOMPOSITE_CHANNEL_MODE_DELETE}
+ * pOutParam {@link NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_DELETE}
+ */
+ NET_COURSECOMPOSITE_MODE_DELETE(1, "删除模式"),
+ /**
+ * 修改模式,对应结构体
+ * pInParam {@link NET_IN_COURSECOMPOSITE_CHANNEL_MODE_MODIFY}
+ * pOutParam {@link NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_MODIFY}
+ */
+ NET_COURSECOMPOSITE_MODE_MODIFY(2, "修改模式"),
+ /**
+ * 获取模式,对应结构体
+ * pInParam {@link NET_IN_COURSECOMPOSITE_CHANNEL_MODE_GET}
+ * pOutParam {@link NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_GET}
+ */
+ NET_COURSECOMPOSITE_MODE_GET(3, "获取模式");
+
+ private int value;
+ private String note;
+
+ NET_COURSECOMPOSITE_MODE_OPERATE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_COURSECOMPOSITE_MODE_OPERATE_TYPE enumType : NET_COURSECOMPOSITE_MODE_OPERATE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_COURSECOMPOSITE_MODE_OPERATE_TYPE enumType : NET_COURSECOMPOSITE_MODE_OPERATE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static NET_COURSECOMPOSITE_MODE_OPERATE_TYPE getEnum(int value) {
+ for (NET_COURSECOMPOSITE_MODE_OPERATE_TYPE e : NET_COURSECOMPOSITE_MODE_OPERATE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_COURSECOMPOSITE_MODE_OPERATE_TYPE.NET_COURSECOMPOSITE_MODE_GET;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_2DCODE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_2DCODE_TYPE.java
new file mode 100644
index 0000000..141aec0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_2DCODE_TYPE.java
@@ -0,0 +1,81 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 二维码类型
+ * @date 2020/9/10
+ */
+public enum NET_EM_2DCODE_TYPE {
+ /**
+ * TYCO客户的P2P功能
+ */
+ NET_EM_2DCODE_TYPE_OZVISION(0, "TYCO"),
+ /**
+ * 乐橙手机客户端
+ */
+ NET_EM_2DCODE_TYPE_LCWEBSITE(1, "乐橙"),
+ /**
+ * easy4ip手机客户端
+ */
+ NET_EM_2DCODE_TYPE_EASY4IP(2, "easy4ip"),
+ /**
+ * i/gDMSS手机客户端
+ */
+ NET_EM_2DCODE_TYPE_DMSS(3, "i/gDMSS"),
+ /**
+ * 可视对讲客户端
+ */
+ NET_EM_2DCODE_TYPE_VIDEOTALK(4, "可视对讲"),
+ /**
+ * app注册信息二维码
+ */
+ NET_EM_2DCODE_TYPE_APPREGISTER(5, "app注册信息"),
+ /**
+ * H500平台向美的平台获取授权
+ */
+ NET_EM_2DCODE_TYPE_DEVAUTH(6, "H500平台");
+
+ private int type;
+ private String descrip;
+
+ private NET_EM_2DCODE_TYPE(int type, String descrip) {
+ this.type = type;
+ this.descrip = descrip;
+ }
+
+ public int getType() {
+ return type;
+ }
+
+ public void setType(int type) {
+ this.type = type;
+ }
+
+ public String getDescription(int type) {
+ for (NET_EM_2DCODE_TYPE code : NET_EM_2DCODE_TYPE.values()) {
+ if (code.getType() == type) {
+ return code.getDescrip();
+ }
+ }
+ return "";
+ }
+
+ public static NET_EM_2DCODE_TYPE getCode(int type) {
+ for (NET_EM_2DCODE_TYPE code : NET_EM_2DCODE_TYPE.values()) {
+ if (code.getType() == type) {
+ return code;
+ }
+ }
+ return null;
+ }
+
+ public String getDescrip() {
+ return descrip;
+ }
+
+ public void setDescrip(String descrip) {
+ this.descrip = descrip;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_ATTITUDE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_ATTITUDE_TYPE.java
new file mode 100644
index 0000000..00aadf3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_ATTITUDE_TYPE.java
@@ -0,0 +1,129 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 姿态类型
+* @date 2023/02/06 15:24:00
+*/
+public enum NET_EM_ATTITUDE_TYPE {
+/**
+未知
+*/
+ NET_EM_ATTITUDE_TYPE_UNKNOWN(0, "未知"),
+/**
+单手递接
+*/
+ NET_EM_ATTITUDE_TYPE_ONE_HAND(1, "单手递接"),
+/**
+叉腰
+*/
+ NET_EM_ATTITUDE_TYPE_AKIMBO(2, "叉腰"),
+/**
+双手抱头
+*/
+ NET_EM_ATTITUDE_TYPE_HAND_SON_HEAD(3, "双手抱头"),
+/**
+双手抱胸
+*/
+ NET_EM_ATTITUDE_TYPE_HAND_SON_CHEST(4, "双手抱胸"),
+/**
+撞墙
+*/
+ NET_EM_ATTITUDE_TYPE_HIT_WALL(5, "撞墙"),
+/**
+弯腰
+*/
+ NET_EM_ATTITUDE_TYPE_BEND(6, "弯腰"),
+/**
+坐状态
+*/
+ NET_EM_ATTITUDE_TYPE_SITTING(7, "坐状态"),
+/**
+站状态
+*/
+ NET_EM_ATTITUDE_TYPE_STANDING(8, "站状态"),
+/**
+坐下
+*/
+ NET_EM_ATTITUDE_TYPE_SIT_DOWN(9, "坐下"),
+/**
+起立
+*/
+ NET_EM_ATTITUDE_TYPE_STAND_UP(10, "起立"),
+/**
+趴桌子
+*/
+ NET_EM_ATTITUDE_TYPE_ON_TABLE(11, "趴桌子"),
+/**
+回头
+*/
+ NET_EM_ATTITUDE_TYPE_LOOK_BACK(12, "回头"),
+/**
+传递
+*/
+ NET_EM_ATTITUDE_TYPE_DELIVERY(13, "传递"),
+/**
+东张西望
+*/
+ NET_EM_ATTITUDE_TYPE_GAZE_AROUND(14, "东张西望"),
+/**
+手放桌下偷看
+*/
+ NET_EM_ATTITUDE_TYPE_HAND_DOWN_PEEP(15, "手放桌下偷看"),
+/**
+捡东西
+*/
+ NET_EM_ATTITUDE_TYPE_PICK_UP(16, "捡东西"),
+/**
+举手
+*/
+ NET_EM_ATTITUDE_TYPE_HAND_UP(17, "举手"),
+/**
+书写
+*/
+ NET_EM_ATTITUDE_TYPE_WRITE(18, "书写");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+NET_EM_ATTITUDE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (NET_EM_ATTITUDE_TYPE enumType : NET_EM_ATTITUDE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (NET_EM_ATTITUDE_TYPE enumType : NET_EM_ATTITUDE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static NET_EM_ATTITUDE_TYPE getEnum(int value) {
+ for (NET_EM_ATTITUDE_TYPE e : NET_EM_ATTITUDE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_EM_ATTITUDE_TYPE.NET_EM_ATTITUDE_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_CFG_OPERATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_CFG_OPERATE_TYPE.java
new file mode 100644
index 0000000..f5be5fc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_CFG_OPERATE_TYPE.java
@@ -0,0 +1,329 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.structure.NET_CFG_VSP_GAYS_SERVER_INFO;
+import com.sun.jna.Pointer;
+import com.sun.jna.ptr.IntByReference;
+import com.netsdk.lib.structure.NET_CFG_HEALTH_CODE_INFO;
+
+/**
+ * 配置枚举值列表 对应接口: 获取配置 {@link NetSDKLib#CLIENT_GetConfig(NetSDKLib.LLong, int, int, Pointer, int,
+ * int, Pointer)} 下发配置 {@link NetSDKLib#CLIENT_SetConfig(NetSDKLib.LLong, int, int, Pointer, int,
+ * int, IntByReference, Pointer)}
+ */
+public class NET_EM_CFG_OPERATE_TYPE {
+ public static final int NET_EM_CFG_SNAP_MODE = 0; // 抓图模式配置,对应结构体 NET_SNAP_MODE
+ public static final int NET_EM_CFG_DEV_CAR_COACH = 1; // 铁路记录配置, 对应结构体 NET_DEV_CAR_COACH_INFO
+ public static final int NET_EM_CFG_YUEQING_SUPPLYLIGHTING = 2; // 乐清外接灯光配置, 对应结构体 NET_YUEQING_SUPPLYLIGHTING_INFO
+ public static final int NET_EM_CFG_MEDIA_GLOBAL = 3; // 媒体组件全局配置, 对应结构体 NET_MEDIA_GLOBAL_INFO
+ public static final int NET_EM_CFG_PARKINGSPACELIGHT_STATE = 5; // 车位状态对应的车位指示灯, 对应结构体 NET_PARKINGSPACELIGHT_STATE_INFO
+ public static final int NET_EM_CFG_COAXIAL_LIGHT = 6; // 白光灯视频通道配置, 对应结构体 NET_CFG_COAXIAL_LIGHT_INFO
+ public static final int NET_EM_CFG_VIDEO_OUT = 7; // 视频输出配置, 对应结构体 NET_CFG_VIDEO_OUT_INFO
+ public static final int NET_EM_CFG_MEDIA_ENCRYPT = 9; // 媒体数据加密配置,对应结构体 NET_MEDIA_ENCRYPT_INFO,与通道不相关,通道号需要填成-1
+ public static final int NET_EM_CFG_COUNTRY = 10; // 国家/地区配置, 对应结构体 NET_CFG_COUNTRY_INFO,与通道不相关,通道号需要填成-1
+ public static final int NET_EM_CFG_VIDEOSTANDARD = 11; // 视频制式配置, 对应结构体 NET_CFG_VIDEOSTANDARD_INFO,与通道不相关,通道号需要填成-1, 目前设备不支持配置SECAM制式
+ public static final int NET_EM_CFG_SERIAL_PUSH_LOG = 12; // 串口服务器推送日志配置, 对应结构体 NET_CFG_SERIALPUSHLOG_INFO,与通道不相关需要填成-1
+ public static final int NET_EM_CFG_PRESET_SNAP_PICTURE_NUM = 13; // 预置点抓拍图片数量配置,对应结构体 NET_CFG_PRESET_SNAP_PICTURE_NUM
+ public static final int NET_EM_CFG_DOWNLOAD_ENCRYPT = 14; // 下载数据加密配置, 对应结构体 NET_DOWNLOAD_ENCRYPT_INFO,与通道不相关,通道号需要填成-1
+ public static final int NET_EM_CFG_LIFT_CONTROL_OPTION = 15; // 梯控功能全局配置,对应结构体 NET_CFG_LIFTCONTROL_OPTION,与通道不相关,通道号需要填成-1
+ /**
+ * 健康码使能配置,对应结构体{@link NET_CFG_HEALTH_CODE_INFO}, 与通道不相关,通道号需要填成-1
+ */
+ public static final int NET_EM_CFG_HEALTH_CODE = 16; // 健康码使能配置,对应结构体 NET_CFG_HEALTH_CODE_INFO, 与通道不相关,通道号需要填成-1
+ public static final int NET_EM_CFG_RTMP = 17; // RTMP 配置,对应结构体 NET_CFG_RTMP_INFO,与通道不相关,通道号需要填成
+ public static final int NET_EM_CFG_ACCESSCONTROL_MEASURE_TEMP = 20; // 门禁测温配置, 对应结构体 NET_CFG_ACCESSCONTROL_MEASURE_TEMP_INFO, 与通道不相关,通道号需要填成-1
+ public static final int NET_EM_CFG_QR_CODE = 26; // 配置二维码有效时间, 对应的结构体 NET_CFG_QR_CODE_INFO , 通道号需要填成-1
+ /**
+ * /// 动态检测报警配置, 对应结构体 NET_CFG_MOTION_DETECT_INFO
+ */
+ public static final int NET_EM_CFG_MOTION_DETECT = 38;
+ public static final int NET_EM_CFG_TRAFFIC_LAMP_CONFIG = 45; // 时间间隔配置, 对应结构体 NET_CFG_TRAFFIC_LAMP_CONFIG_INFO, 与通道不相关,通道号需要填成-1
+ public static final int NET_EM_CFG_DISABLE_BEEP_LINKAGE = 47; // 防蜂鸣联动项使能配置, 对应结构体 NET_CFG_DISABLE_BEEP_LINKAGE_INFO, 与通道不相关,通道号需要填成-1
+ public static final int NET_EM_CFG_AREA_ARM_MODE = 48; // Area布撤防配置, 对应结构体 NET_CFG_AREA_ARM_MODE_INFO, 与通道不相关,通道号需要填成-1
+ public static final int NET_EM_CFG_CONTROL_CASE = 61; // 控制智能机箱开关配置, 对应结构体 NET_CFG_CONTROL_CASE_INFO, 与通道不相关,通道号需要填成-1
+ public static final int NET_EM_CFG_LAMP_EXTERNAL_DEVICE = 62; // 智慧灯杆项外设配置, 对应结构体 NET_CFG_LAMP_EXTERNAL_DEVICE_INFO, 与通道不相关,通道号需要填成-1
+ public static final int NET_EM_CFG_AUTO_PAN = 71; // 水平旋转设置配置, 对应结构体 NET_CFG_AUTO_PAN_INFO
+ /**
+ * /// 休眠策略配置, 对应结构体 NET_CFG_SLEEPING_CONTROL_INFO, 与通道不相关,通道号需要填成-1
+ */
+ public static final int NET_EM_CFG_SLEEPING_CONTROL = 74;
+ /*********OSD叠加相关配置*************************************************************************************************/
+ public static final int NET_EM_CFG_CHANNELTITLE = 1000; // 叠加通道标题属性配置,对应结构体 NET_OSD_CHANNEL_TITLE,其中结构体中的emOsdBlendType为必填参数
+ public static final int NET_EM_CFG_TIMETITLE = 1001; // 叠加时间标题属性配置,对应结构体 NET_OSD_TIME_TITLE,其中结构体中的emOsdBlendType为必填参数
+ public static final int NET_EM_CFG_CUSTOMTITLE = 1002; // 叠加自定义标题属性配置,对应结构体 NET_OSD_CUSTOM_TITLE,其中结构体中的stuCustomTitle.emOsdBlendType为必填参数
+ public static final int NET_EM_CFG_CUSTOMTITLETEXTALIGN = 1003; // 叠加自定义标题对齐方式属性配置,对应结构体 NET_OSD_CUSTOM_TITLE_TEXT_ALIGN
+ public static final int NET_EM_CFG_OSDCOMMINFO = 1004; // 叠加公共属性配置,对应结构体 NET_OSD_COMM_INFO
+ public static final int NET_EM_CFG_OSD_PTZZOOM = 1005; // 变倍叠加配置,对应结构体 NET_OSD_PTZZOOM_INFO
+ public static final int NET_EM_CFG_GPSTITLE = 1006; // 叠加GPS标题显示配置,对应结构体 NET_OSD_GPS_TITLE
+ public static final int NET_EM_CFG_OSD_NUMBERSTATPLAN = 1007; // 人数统计计划叠加OSD配置, 支持NumberStatPlan算法大类时(球机)使用,对应结构体NET_OSD_NUMBER_STATPLAN
+ public static final int NET_EM_CFG_GPSSTARNUM_OSD = 1008; // GPS搜星数OSD配置, 需求, 对应结构体 NET_CFG_GPSSTARNUM_OSD_INFO
+ public static final int NET_EM_CFG_PICTURETITLE = 1009; // 图片标题,对应结构体 NET_OSD_PICTURE_TITLE
+ public static final int NET_EM_CFG_OSD_FACEFLOWSTAT = 1010; // 人脸数量统计OSD配置,对应结构体 NET_OSD_FACEFLOWSTAT_INFO
+ public static final int NET_EM_CFG_PTZ_PRESET = 1011; // 预置点信息叠加,对应结构体 NET_OSD_CFG_PTZ_PRESET
+ public static final int NET_EM_CFG_PTZ_PATTERN = 1012; // 显示巡迹百分比叠加配置,对应结构体 NET_OSD_CFG_PTZ_PATTERN
+ public static final int NET_EM_CFG_PTZ_RS485_DETECT = 1013; // 显示RS485检测结果的叠加配置,对应结构体 NET_OSD_CFG_PTZ_RS485_DETECT
+ public static final int NET_EM_CFG_PTZ_COORDINATES = 1014; // 显示云台坐标的叠加配置,对应结构体 NET_OSD_CFG_PTZ_COORDINATES
+ public static final int NET_EM_CFG_PTZ_DIRECTION = 1015; // 显示云台方向的叠加配置,对应结构体 NET_OSD_CFG_PTZ_DIRECTION
+ public static final int NET_EM_CFG_TEMPERATURE = 1016; // 显示环境温度的叠加配置,对应结构体 NET_OSD_CFG_TEMPERATURE
+ public static final int NET_EM_CFG_COVERS = 1017; // 区域覆盖,对应结构体 NET_OSD_CFG_COVERS
+ public static final int NET_EM_CFG_USER_DEF_TITLE = 1018; // 用户自定义OSD标题,对应结构体 NET_OSD_USER_DEF_TITLE DHOP专用
+ public static final int NET_EM_CFG_SNAP_OSD = 1019; // 抓拍OSD配置, 对应结构体 NET_CFG_SNAP_OSD
+ /**
+ * /// 视频OSD国标模式配置, 对应结构体NET_CFG_GBMODE_INFO
+ */
+ public static final int NET_EM_CFG_GBMODE = 1021;
+ /*********encode 相关配置*************************************************************************************************/
+ public static final int NET_EM_CFG_ENCODE_VIDEO = 1100; // 编码视频格式属性配置,对应结构体 NET_ENCODE_VIDEO_INFO
+ public static final int NET_EM_CFG_ENCODE_VIDEO_PACK = 1101; // 编码视频格式打包模式配置,对应结构体 NET_ENCODE_VIDEO_PACK_INFO
+ public static final int NET_EM_CFG_ENCODE_VIDEO_SVC = 1102; // 编码视频格式SVC配置,对应结构体 NET_ENCODE_VIDEO_SVC_INFO
+ public static final int NET_EM_CFG_ENCODE_VIDEO_PROFILE = 1103; // 编码视频格式profile配置,对应结构体 NET_ENCODE_VIDEO_PROFILE_INFO
+ public static final int NET_EM_CFG_ENCODE_AUDIO_COMPRESSION = 1104; // 编码音频压缩格式配置,对应结构体 NET_ENCODE_AUDIO_COMPRESSION_INFO
+ public static final int NET_EM_CFG_ENCODE_AUDIO_INFO = 1105; // 编码音频格式配置,对应结构体 NET_ENCODE_AUDIO_INFO
+ public static final int NET_EM_CFG_ENCODE_SNAP_INFO = 1106; // 编码抓图配置,对应结构体 NET_ENCODE_SNAP_INFO
+ public static final int NET_EM_CFG_ENCODE_SNAPTIME = 1107; // 编码抓图时间相关配置,对应结构体 NET_ENCODE_SNAP_TIME_INFO
+ public static final int NET_EM_CFG_ENCODE_CHANNELTITLE = 1108; // 通道名称配置,对应结构体 NET_ENCODE_CHANNELTITLE_INFO
+ /**********音频相关配置***************************************************************************************************/
+ public static final int NET_EM_CFG_AUDIOIN_SOURCE = 1200; // 音频输入类型配置,对应结构体 NET_ENCODE_AUDIO_SOURCE_INFO
+ public static final int NET_EM_CFG_AUDIOIN_DENOISE = 1201; // 音频降噪配置,对应结构体 NET_AUDIOIN_DENOISE_INFO
+ public static final int NET_EM_CFG_AUDIOIN_VOLUME = 1202; // 音频输入音量配置,对应结构体 NET_AUDIOIN_VOLUME_INFO
+ public static final int NET_EM_CFG_AUDIOOUT_VOLUME = 1203; // 音频输出音量配置,对应结构体 NET_AUDIOOUT_VOLUME_INFO
+ public static final int NET_EM_CFG_AUDIOOUT_MODE = 1204; // 音频输出模式配置, 对应结构体 NET_AUDIOOUT_MODE_INFO
+ public static final int NET_EM_CFG_LOOPPLAYBACK_AUDIOALARM = 1205; // 音频循环播放报警配置,对应结构体 NET_LOOPPLAYBACK_AUDIOALARM_INFO,与通道不相关,通道号需要填成-1
+ /**********videoin 相关配置***********************************************************************************************/
+ public static final int NET_EM_CFG_VIDEOIN_SWITCHMODE = 1300; // 切换模式配置,对应结构体 NET_VIDEOIN_SWITCH_MODE_INFO
+ public static final int NET_EM_CFG_VIDEOIN_COLOR = 1301; // 视频输入颜色配置,对应结构体 NET_VIDEOIN_COLOR_INFO
+ public static final int NET_EM_CFG_VIDEOIN_IMAGE_OPT = 1302; // 图像属性配置,对应结构体 NET_VIDEOIN_IMAGE_INFO
+ public static final int NET_EM_CFG_VIDEOIN_STABLE = 1303; // 图像防抖配置,对应结构体 NET_VIDEOIN_STABLE_INFO
+ public static final int NET_EM_CFG_VIDEOIN_IRISAUTO = 1304; // 自动光圈配置,对应结构体 NET_VIDEOIN_IRISAUTO_INFO
+ public static final int NET_EM_CFG_VIDEOIN_IMAGEENHANCEMENT = 1305; // 图像增强配置,对应结构体 NET_VIDEOIN_IMAGEENHANCEMENT_INFO
+ public static final int NET_EM_CFG_VIDEOIN_EXPOSURE_NORMAL = 1306; // 曝光通用属性配置,对应结构体 NET_VIDEOIN_EXPOSURE_NORMAL_INFO
+ public static final int NET_EM_CFG_VIDEOIN_EXPOSURE_OTHER = 1307; // 其他曝光属性配置,对应结构体 NET_VIDEOIN_EXPOSURE_OTHER_INFO
+ public static final int NET_EM_CFG_VIDEOIN_EXPOSURE_SHUTTER = 1308; // 曝光快门配置,对应结构体 NET_VIDEOIN_EXPOSURE_SHUTTER_INFO
+ public static final int NET_EM_CFG_VIDEOIN_BACKLIGHT = 1309; // 背光配置,对应结构体 NET_VIDEOIN_BACKLIGHT_INFO
+ public static final int NET_EM_CFG_VIDEOIN_INTENSITY = 1310; // 场景自适应对比度强度配置,对应结构体 NET_VIDEOIN_INTENSITY_INFO
+ public static final int NET_EM_CFG_VIDEOIN_LIGHTING = 1311; // 补光灯配置,对应结构体 NET_VIDEOIN_LIGHTING_INFO
+ public static final int NET_EM_CFG_VIDEOIN_DEFOG = 1312; // 透雾配置,对应结构体 NET_VIDEOIN_DEFOG_INFO
+ public static final int NET_EM_CFG_VIDEOIN_FOCUSMODE = 1313; // 聚焦模式配置,对应结构体 NET_VIDEOIN_FOCUSMODE_INFO
+ public static final int NET_EM_CFG_VIDEOIN_FOCUSVALUE = 1314; // 聚焦信息配置,对应结构体 NET_VIDEOIN_FOCUSVALUE_INFO
+ public static final int NET_EM_CFG_VIDEOIN_WHITEBALANCE = 1315; // 白平衡配置,对应结构体 NET_VIDEOIN_WHITEBALANCE_INFO
+ public static final int NET_EM_CFG_VIDEOIN_DAYNIGHT = 1316; // 日夜模式配置,对应结构体 NET_VIDEOIN_DAYNIGHT_INFO
+ public static final int NET_EM_CFG_VIDEOIN_DAYNIGHT_ICR = 1317; // 日夜模式ICR切换类型配置,对应结构体 NET_VIDEOIN_DAYNIGHT_ICR_INFO
+ public static final int NET_EM_CFG_VIDEOIN_SHARPNESS = 1318; // 锐度配置,对应结构体 NET_VIDEOIN_SHARPNESS_INFO
+ public static final int NET_EM_CFG_VIDEOIN_COMM_DENOISE = 1319; // 通用降噪配置,对应结构体 NET_VIDEOIN_DENOISE_INFO
+ public static final int NET_EM_CFG_VIDEOIN_3D_DENOISE = 1320; // 3D 降噪配置,对应结构体 NET_VIDEOIN_3D_DENOISE_INFO
+ /***********庭审相关配置*****************************************************************************************/
+ public static final int NET_EM_CFG_ENCODE_PLAN = 1400; // 刻录光盘编码计划, 对应结构体 NET_ENCODE_PLAN_INFO
+ /**
+ * 合成通道配置, 对应结构体{@link com.netsdk.lib.structure.NET_COMPOSE_CHANNEL_INFO}
+ */
+ public static final int NET_EM_CFG_COMPOSE_CHANNEL = 1401; // 合成通道配置, 对应结构体 NET_COMPOSE_CHANNEL_INFO
+ /**
+ * 刻录参数, 对应结构体 {@link com.netsdk.lib.structure.NET_BURN_PARAM_INFO}
+ */
+ public static final int NET_EM_CFG_BURN_PARAM = 1402; // 刻录参数, 对应结构体 NET_BURN_PARAM_INFO
+ public static final int NET_EM_CFG_COMPOSE_PLAN = 1403; // 合成通道的预案分割配置, 对应结构体 NET_COMPOSE_PLAN_INFO
+ /**********报警网关相关配置**************************************************************************************/
+ public static final int NET_EM_CFG_ALARM_SOUND = 1500; // 报警网关语音配置, 对应结构体 NET_ALARM_SOUND_INFO
+ public static final int NET_EM_CFG_FIRE_WARNINGMODE = 1503; // 火灾预警模式, 对应结构体 NET_FIREWARNING_MODE_INFO
+ public static final int NET_EM_CFG_FIRE_WARNING = 1504; // 火灾预警配置(与火灾预警模式配置配合使用), 对应的结构体 NET_FIRE_WARNING_INFO
+ /***********热成像相关配置******************************************************************************************/
+ public static final int NET_EM_CFG_HOT_COLD_SPOT_WARNING = 1505; // 热冷点报警配置, 对应的结构体 NET_HOT_COLD_SPOT_WARNING_INFO
+ /**********网络应用相关配置**************************************************************************************/
+ public static final int NET_EM_CFG_ACCESS_POINT = 1600; // 用于WiFi服务端配置(热点功能), 对应结构体 NET_NETAPP_ACCESSPOINT
+ /**************安全基线需求**************************************************************************************/
+ public static final int NET_EM_CFG_NAS = 1700; // NAS 配置, 对应结构体 NET_NAS_INFO
+ public static final int NET_EM_CFG_PPPOE = 1701; // PPPOE 配置,对应结构体 NET_PPPOE_INFO
+ public static final int NET_EM_CFG_EMAIL = 1702; // Email 配置,对应结构体 NET_EAMIL_INFO
+ public static final int NET_EM_CFG_DDNS = 1703; // DDNS 配置,对应结构体 NET_DDNS_INFO
+ /**************SCADA配置需求**************************************************************************************/
+ public static final int NET_EM_CFG_SCADA_PROTOCOLS_MANAGER = 1800; // 协议管理配置,对应结构体 NET_SCADA_PROTOCOLS_MANAGER
+ public static final int NET_EM_CFG_SCADA_DEVICEINFO_CFG = 1801; // 设备信息配置,对应结构体 NET_SCADA_DEVICEINFO_CFG
+ /**************NetApp配置需求*************************************************************************************/
+ public static final int NET_EM_CFG_NETAPP_LINK_LAYER_VPN = 1900; // 链路层VPN设置,对应结构体 NET_NETAPP_LINK_LAYER_VPN_CFG
+ public static final int NET_EM_CFG_NETAPP_COMMUNICATION_LIST = 1902; // 通讯录配置, 对应结构体 NET_NETAPP_COMMUNICATION_LIST_CFG, 与通道不相关,通道号需要填成-1
+ /**************中国铁塔平台接入***********************************************************************************/
+ public static final int NET_EM_CFG_VSP_CHINA_TOWER = 2000; // 安徽治超平台接入配置,对应结构体 NET_VSP_CHINA_TOWER
+ /**********智能相关配置*******************************************************************************************/
+ public static final int NET_EM_CFG_STEREO_CALIBRATE = 2100; // 双目标定结果, 对应结构体NET_STEREO_CALIBRATE_INFO
+ public static final int NET_EM_CFG_STEREO_CALIBRATEMATRIX_MULTISENSOR = 2101; // 多目相机标定配置CalibrateMatrix(MultiSensor), 对应的结构体 NET_MULTI_SENSOR_INFO
+ public static final int NET_EM_CFG_CROWDDISTRIMAP_CALIBRATE = 2102; // 人群分布图标定配置, 对应的结构体 NET_CROWDDISTRIMAP_CALIBRATE_INFO
+ public static final int NET_EM_CFG_TRAFFIC_NOPASSING = 2103; // 交通禁行配置, 对应的结构体 NET_TRAFFIC_NOPASSING_INFO
+ public static final int NET_EM_CFG_FIGHT_CALIBRATE = 2104; // 打架标定配置, 对应的结构体 NET_FIGHT_CALIBRATE_INFO
+ public static final int NET_EM_CFG_FACE_RECOGNITION_ALARM = 2105; // 目标识别联动报警通道配置, 对应结构体 NET_FACE_RECOGNITION_ALARM_INFO
+ public static final int NET_EM_CFG_STEREO_CALIBRATEMATRIX_MULTIMODE = 2106; // 灵瞳相机的标定方式 CalibrateMatrix(MultiMode), 对应的结构体 NET_CALIBRATEMATRIX_MULTIMODE_INFO
+ public static final int NET_EM_CFG_AUTO_SNAP_SCHEDULE = 2107; // 智能养殖定时抓图配置, 对应结构体 NET_CFG_AUTO_SNAP_SCHEDULE_INFO
+ public static final int NET_EM_CFG_PARKING_TIMEOUT_DETECT = 2108; // 停车超时检测配置, 对应结构体 NET_CFG_PARKING_TIMEOUT_DETECT
+ /**
+ * /// 智能动态检测配置, 对应结构体 NET_CFG_SMART_MOTION_DETECT
+ */
+ public static final int NET_EM_CFG_SMART_MOTION_DETECT = 2109;
+ /**
+ * /// 课堂行为分析规则配置,对应结构体CFG_CLASSROOM_BEHAVIOR_INFO
+ */
+ public static final int NET_EM_CFG_CLASSROOM_BEHAVIOR = 2120;
+ /**
+ * /// 开关门检测配置,对应结构体 NET_CFG_DOOR_STATE_DETECTION_INFO
+ */
+ public static final int NET_EM_CFG_DOOR_STATE_DETECTION = 2122;
+ /**
+ * /// 反复开关门检测配置,对应结构体 NET_CFG_OPEN_CLOSE_DOOR_DETECTION_INFO
+ */
+ public static final int NET_EM_CFG_OPEN_CLOSE_DOOR_DETECTION = 2123;
+ /**
+ * /// 电梯困人检测配置,对应结构体 NET_CFG_TRAPPED_IN_LIFT_DETECTION_INFO
+ */
+ public static final int NET_EM_CFG_TRAPPED_IN_LIFT_DETECTION = 2124;
+ /**********雷达配置***********************************************************************************************/
+ public static final int NET_EM_CFG_RADAR = 2200; // 雷达配置,对应结构体 DEV_RADAR_CONFIG
+ public static final int NET_EM_CFG_RADAR_RFIDCARD = 2201; // 雷达RFID卡片信息配置,与通道不相关,通道号需要填成-1,对应结构体 NET_CFG_RADAR_RFIDCARD_INFO
+ /**********视频对讲电话通用配置***********************************************************************************/
+ public static final int NET_EM_CFG_VTH_PASSWORD = 2300; // 视频对讲电话通用配置,对应结构体 NET_CFG_VTH_PASSWORD_INFO
+ public static final int NET_EM_CFG_REGISTAR = 2301; // 注册服务器配置,对应结构体 NET_CFG_REGISTAR_INFO
+ public static final int NET_EM_CFG_SIP = 2302; // sip配置, 对应结构体 NET_CFG_SIPSERVER_INFO
+ /**********镜头前遮挡盖配置***************************************************************************************/
+ public static final int NET_EM_CFG_AELENSMASK = 2400; // 镜头前遮挡盖配置,对应结构体NET_CFG_AELENSMASK_INFO
+ public static final int NET_EM_CFG_ULTRASONIC = 2500; // 超声波配置,对应结构体NET_CFG_ULTRASONIC_INFO
+ /**********报警主机相关配置***************************************************************************************/
+ public static final int NET_EM_CFG_ARMSCHEDULE = 2600; // 报警计划配置,对应结构体 NET_CFG_ARMSCHEDULE_INFO
+ public static final int NET_EM_CFG_RECORDEXTRA = 3610; // 录像辅码流录像配置, 对应结构体 NET_CFG_RECORDEXTRA_INFO
+ /**********录像抓图功能相关配置***********************************************************************************/
+ public static final int NET_EM_CFG_TIME_RECORDBACKUP_RESTORE = 3613; // 录像定时自动备份配置, NET_CFG_TIME_RECORDBACKUP_RESTORE_INFO; 对应通道为-1
+ /**********视频诊断相关配置***************************************************************************************/
+ public static final int NET_EM_VIDEODIAGNOSIS_PROJECT = 3700; // 视频诊断计划配置, 对应结构体NET_CFG_VIDEODIAGNOSIS_PROJECT_INFO
+ /***********车载相关配置******************************************************************************************/
+ public static final int NET_EM_CFG_POSITIONREPORTPOLICY = 3800; // 车载GPS位置信息上报策略配置, 对应结构体 NET_CFG_POSITIONREPORTPOLICY_INFO
+ public static final int NET_EM_CFG_VEHICLE_WORKTIMESCHEDULE = 3801; // 车载工作计划配置,对应结构体 NET_CFG_VEHICLE_WORKTIMESCHEDULE_INFO
+ public static final int NET_EM_CFG_VEHICLE_LOAD = 3802; // 荷载人数配置, 对应结构体 NET_CFG_VEHICLE_LOAD_INFO
+ /***********门禁相关配置******************************************************************************************/
+ public static final int NET_EM_CFG_ACCESSCTL_BLACKLIST = 3900; // 门禁禁止名单报警配置,对应结构体 NET_CFG_ACCESSCTL_BLACKLIST
+ public static final int NET_EM_CFG_ACCESSCTL_BLACKLIST_LINK = 3901; // 门禁禁止名单报警联动配置,对应结构体 NET_CFG_ALARM_MSG_HANDLE
+ /**
+ * 门禁节假日组配置, 对应结构体 {@link com.netsdk.lib.structure.NET_CFG_ACCESSCTL_SPECIALDAY_GROUP_INFO}
+ */
+ public static final int NET_EM_CFG_ACCESSCTL_SPECIALDAY_GROUP = 3902; // 门禁节假日组配置, 对应结构体 NET_CFG_ACCESSCTL_SPECIALDAY_GROUP_INFO
+ /**
+ * 门禁节假日计划配置, 对应结构体 NET_CFG_ACCESSCTL_SPECIALDAYS_SCHEDULE_INFO
+ */
+ public static final int NET_EM_CFG_ACCESSCTL_SPECIALDAYS_SCHEDULE = 3903; // 门禁节假日计划配置, 对应结构体 NET_CFG_ACCESSCTL_SPECIALDAYS_SCHEDULE_INFO
+ /**
+ * 在离线开门认证模式配置,对应结构体NET_CFG_ACCESSCTL_AUTH_MODE
+ */
+ public static final int NET_EM_CFG_ACCESSCTL_AUTH_MODE = 3904; // 在离线开门认证模式配置,对应结构体NET_CFG_ACCESSCTL_AUTH_MODE
+ public static final int NET_EM_CFG_ACS_FACE_RECOGNITION_SCHEME = 3905; // 门禁目标识别相关配置,对应结构体 NET_CFG_ACS_FACE_RECOGNITION_SCHEME
+ /**
+ * 广告禁用时段配置, 对应结构体 {@link com.netsdk.lib.structure.NET_CFG_FORBIDDEN_ADVERT_PLAY}, 通道无关,通道号填-1
+ */
+ public static final int NET_EM_CFG_FORBIDDEN_ADVERT_PLAY = 3906; // 广告禁用时段配置, 对应结构体 NET_CFG_FORBIDDEN_ADVERT_PLAY, 通道无关,通道号填-1
+ /**
+ * 门禁设备当前模式配置, 对应结构体 {@link com.netsdk.lib.structure.NET_CFG_BGY_CUSTOMERCFG}, 通道无关,通道号填-1
+ */
+ public static final int NET_EM_CFG_BGY_CUSTOMERCFG = 3907; // 门禁设备当前模式配置, 对应结构体 NET_CFG_BGY_CUSTOMERCFG, 通道无关,通道号填-1
+ public static final int NET_EM_CFG_ACCESSCTL_KEYBINDINGINFOCFG = 3908; // 不同数字按钮对应的信息配置, 对应结构体 NET_CFG_ACCESSCTL_KEYBINDINGINFOCFG, 通道无关,通道号填-1
+ public static final int NET_EM_CFG_HOST_DEVICE = 3909; // 主机、从机设置配置, 对应结构体 NET_CFG_HOST_DEVICE, 通道无关,通道号填-1
+ public static final int NET_EM_CFG_VTH_ALPA_CLOUD = 3910; // 室内机Alpa客户云服务器配置, 对应结构体 NET_CFG_VTH_ALPA_CLOUD, 通道无关, 通道号填-1
+ public static final int NET_EM_CFG_VTH_FETCHINFO = 3911; // 室内机广告信息配置,对应结构体 NET_CFG_VTH_FETCHINFO, 通道无关, 通道号填-1
+ public static final int NET_EM_CFG_VIDEOTALK_SIGNLIGHT = 3917; // 签名灯,可视对讲使用配置,对应结构体 NET_CFG_VIDEOTALK_SIGNLIGHT 通道无关 通道号填-1
+ public static final int NET_EM_CFG_BSCCUSTOM = 3919; // 门禁配置汇总 对应结构体 NET_CFG_BSCCUSTOM 通道无关 通道号填-1
+ public static final int NET_EM_CFG_CONSUMPTION_STRATEGY = 3921;
+ // 消费相关策略, 对应结构体 NET_CFG_CONSUMPTION_STRATEGY_INFO, 通道无关 通道号填-1
+ public static final int NET_EM_CFG_WIEGAND = 3922;
+ // 韦根配置, 对应结构体 NET_CFG_WIEGAND_INFO, 通道无关 通道号填-1
+ /**
+ * /// 门禁设备显示配置, 对应结构体 NET_CFG_ACCESS_DISPLAY_INFO, 通道无关, 通道号填-1
+ */
+ public static final int NET_EM_CFG_ACCESS_DISPLAY = 3925;
+ public static final int NET_EM_CFG_CUSTOMER_DEV_SETTING = 3931; // 门禁提供客户的"系统设置"配置, 对应结构体 NET_CFG_CUSTOMER_DEV_SETTING_INFO 通道无关, 通道号填-1
+ public static final int NET_EM_CFG_USER_PASS_DATA_COUNT_CLEAR = 3934;
+ // 定期通行人数清除功能配置, 对应结构体 NET_EM_CFG_USER_PASS_DATA_COUNT_CLEAR_INFO 通道无关, 通道号填-1
+ /***********配置************************************************************************************************/
+ public static final int NET_EM_CFG_SERIALNOWHITETABLE = 4000; // 前端序列号允许名单下发至NVR 配置, 对应结构体 NET_CFG_SERIALNOWHITETABLE_INFO
+ public static final int NET_EM_CFG_VSP_LXSJ = 4004; // 灵信视觉平台接入配置 对应结构体 NET_CFG_VSP_LXSJ_INFO,配置较大,建议内存new出来
+ public static final int NET_EM_CFG_FILE_HOLD_DAYS = 4010; // 录像保存天数配置, 对应结构体NET_CFG_FILE_HOLD_DAYS_INFO
+ public static final int NET_EM_CFG_CARD_MNG = 4016; // 单片机兼容cpu卡和ic卡功能切换,对应结构体 NET_CFG_CARD_MNG_INFO
+ public static final int NET_EM_CFG_FINANCIAL_CABINET_CONFIG = 4020; // 金融业务库配置 对应结构体 NET_CFG_FINANCIAL_CABINET_CONFIG_INFO
+ /**
+ * /// 电梯楼层报警相关配置, 对应结构体 NET_CFG_ELEVATOR_ALARM_CONFIG_INFO, 与通道不相关,通道号需要填成-1
+ */
+ public static final int NET_EM_CFG_ELEVATOR_ALARM_CONFIG = 4026;
+ /**
+ * /// 智慧杆Camera配置, 对应结构体 NET_CFG_POLE_CAMERA_INFO
+ */
+ public static final int NET_EM_CFG_POLE_CAMERA = 4033;
+ /**
+ * /// 车位状态指示灯控制配置, 对应结构体 NET_CFG_PARKING_SPACE_LIGHT_CONTROL_INFO, 与通道不相关, 通道号需要填成-1
+ */
+ public static final int NET_EM_CFG_PARKING_SPACE_LIGHT_CONTROL = 4034;
+ /**
+ * /// 停车场语音播报配置, 对应结构体 NET_CFG_PARK_SPACE_VOICE_BROADCAST_INFO
+ */
+ public static final int NET_EM_CFG_PARK_SPACE_VOICE_BROADCAST = 4035;
+ /***********雷球联动配置************************************************************************************************/
+ //在调用 CLIENT_SetConfig 时,restart字段无效
+ public static final int NET_EM_CFG_RADAR_DEVLIST = 6010; // 雷达设备列表配置, 对应结构体NET_CFG_RADAR_DEVLIST_INFO
+ public static final int NET_EM_CFG_RADAR_SCREEN_RULE = 6012; // 雷达屏幕显示规则配置, 对应结构体NET_CFG_RADAR_SCREEN_RULE_INFO
+ public static final int NET_EM_CFG_MINIRADAR_DECT_PARAM = 6016; // Mini雷达探测参数配置, 对应结构体 NET_CFG_MINIRADAR_DECT_PARAM_INFO
+ public static final int NET_EM_CFG_MINIRADAR_INDOOR_ALARM = 6017; // Mini雷达报警配置, 对应结构体 NET_CFG_MINIRADAR_INDOOR_ALARM_INFO
+ public static final int NET_EM_CFG_MINIRADAR_COMP_INFO = 6018; // Mini雷达角度补偿配置, 对应结构体 NET_CFG_MINIRADAR_COMP_INFO
+ public static final int NET_EM_CFG_MINIRADAR_INSTALL_INFO = 6019; // Mini雷达安装信息配置, 对应结构体 NET_CFG_MINIRADAR_INSTALL_INFO
+ public static final int NET_EM_CFG_MINIRADAR_REGION_DETECT = 6020; // Mini雷达探测区域配置, 对应结构体 NET_CFG_MINIRADAR_REGION_DETECT_INFO
+ /**
+ * /// 云台水平旋转组扫描 对应结构体 NET_CFG_HORIZONTAL_ROTATION_GROUP_SCAN_INFO
+ */
+ public static final int NET_EM_CFG_AUTOSCAN = 7002;
+ public static final int NET_EM_CFG_PTZ_MOVEMENT = 7008; // 云台动作配置, 对应结构体 NET_CFG_PTZ_MOVEMENT_INFO
+ /***********第三方配置************************************************************************************************/
+ public static final int NET_EM_CFG_VSP_PAAS = 9000; // 乐橙云注册配置修改, 对应结构体 NET_CFG_VSP_PAAS_INFO
+ /**
+ * 平台接入配置(国标服务端), 对应结构体 {@link NET_CFG_VSP_GAYS_SERVER_INFO} ,对应通道为-1
+ */
+ public static final int NET_EM_CFG_VSP_GAYS_SERVER = 9001;
+ public static final int NET_EM_CFG_VSP_CO_SIGN_SERVER = 9002; // 协同签名服务器配置,对应结构体NET_CFG_VSP_CO_SIGN_SERVER_INFO,对应通道为-1
+ public static final int NET_EM_CFG_VSP_GAVI = 9003; // 公安视频图像信息应用系统接入配置,对应结构体NET_CFG_VSP_GAVI_INFO,对应通道为-1
+ /**
+ * /// ONVIF服务配置, 对应结构体 NET_CFG_VSP_ONVIF_INFO, 对应通道为-1
+ */
+ public static final int NET_EM_CFG_VSP_ONVIF = 9004;
+ /***********道闸配置************************************************************************************************/
+ public static final int NET_EM_CFG_TRAFFICSTROBE = 9100; // 道闸配置, 对应结构体 NET_CFG_TRAFFICSTROBE_INFO
+ /***********布撤防配置************************************************************************************************/
+ public static final int NET_EM_CFG_DISABLE_LINKAGE = 9300; // 一键撤防配置,对应结构体 NET_CFG_DISABLE_LINKAGE, 与通道不相关,通道号需要填成-1
+ public static final int NET_EM_CFG_DISABLE_LINKAGE_TIME_SECTION = 9301; // 周期撤防联动项功能总开关, 对应结构体 NET_CFG_DISABLE_LINKAGE_TIME_SECTION, 与通道不相关,通道号需要填成-1
+ public static final int NET_EM_CFG_REMOTE_DISABLE_LINKAGE_TIME_SECTION_SYNC = 9303; // 远程通道是否同步本地端"周期一键布撤防"配置, 对应结构体 NET_CFG_REMOTE_DISABLE_LINKAGE_TIME_SECTION_SYNC_INFO, 与通道不相关,接口通道号需要填成-1
+ /***********Traffic相关配置***************************************************************************************************/
+ public static final int NET_EM_CFG_TRAFFIC_LATTICE_SCREEN = 10000; // 点阵屏显示信息配置, 对应结构体 NET_CFG_TRAFFIC_LATTICE_SCREEN_INFO
+ public static final int NET_EM_CFG_TRAFFIC_VOICE_BROADCAST = 10001; // 智能交通语音播报配置, 对应结构体 NET_CFG_TRAFFIC_VOICE_BROADCAST_INFO
+ public static final int NET_EM_CFG_SCENE_SNAP_SHOT_WITH_RULE2 = 10002; // 场景抓拍设置, 对应结构体 NET_CFG_SCENE_SNAP_SHOT_WITH_RULE2_INFO
+ public static final int NET_EM_CFG_SENSOR_MAINTAIN = 11100; // 热成像机芯维护配置,对应结构体 NET_CFG_SENSOR_MAINTAIN
+ public static final int NET_EM_CFG_TILT_LIMIT = 11101; // 激光测距俯仰角限制,对应结构体 NET_CFG_TILT_LIMIT
+ public static final int NET_EM_CFG_RADIO_REGULATOR = 11102; // 人体测温标准黑体配置, 对应结构体 NET_CFG_RADIO_REGULATOR,通道号不能为-1
+ public static final int NET_EM_CFG_HUMAN_THERM_CALIBRATE = 11103; // 人体测温标定信息, 对应结构体 NET_CFG_HUMAN_THERM_CALLBRATE_INFO ,通道号必须是-1
+ public static final int NET_EM_CFG_TELESCOPE_OPTIONS = 11104; // 望远镜配置,对应结构体 NET_CFG_TELESCOPE_OPTIONS_INFO
+ public static final int NET_EM_CFG_ENVIRONMENT_THERM_INFO = 11105; // 环境温度信息(热成像内部配置,只可读,不可设),通道号需要填热成像通道号 对应结构体 NET_CFG_ENVIRONMENT_THERM_INFO
+ public static final int NET_EM_CFG_THERMOMETRY_SHIELD = 11106; // 测温屏蔽区配置 对应结构体 NET_CFG_THERMOMETRY_SHIELD_INFO
+ /***********录播默认配置******************************************************************************************/
+ public static final int NET_EM_CFG_COURSE_RECORD_DEFAULT_CONFIG = 12100; // 录播默认配置, 对应结构体 NET_CFG_COURSE_RECORD_DEFAULT_CONFIG
+ public static final int NET_EM_CFG_COURSE_RECORD_UPLOAD = 12101; // 录播设备支持录像文件上传配置, 对应结构体 NET_CFG_COURSE_RECORD_UPLOAD
+ /***********硬盘相关配置******************************************************************************************/
+ public static final int NET_EM_CFG_NAS_DIRECTORY = 12302; // 共享文件夹信息配置, 对应结构体 NET_CFG_NAS_DIRECTORY
+ /**
+ * /// 声音配置, 对应结构体 NET_CFG_SOUND
+ */
+ public static final int NET_EM_CFG_SOUND = 12600;
+ /***********DHRS相关配置******************************************************************************************/
+ public static final int NET_EM_CFG_DHRS = 12700; // DH485串口点阵屏配置, 对应结构体 NET_CFG_DHRS
+ /***********信号机相关配置******************************************************************************************/
+ public static final int NET_EM_CFG_RTSC_SCH_CROSSLIST = 14000; // 路口数据列表配置, 对应结构体NET_CFG_RTSC_SCH_CROSSLIST_INFO, 与通道无关, 通道号需填成-1
+ public static final int NET_EM_CFG_RTSC_SCH_CHANNELS = 14001; // 通道表, 对应结构体NET_CFG_RTSC_SCH_CHANNELS_INFO
+ public static final int NET_EM_CFG_RTSC_SCH_PLANS = 14002; // 周期方案表, 对应结构体NET_CFG_RTSC_SCH_PLANS_INFO, 与通道无关, 通道号需填成-1
+ public static final int NET_EM_CFG_RTSC_SCH_MANAGE = 14003; // 红绿灯调度计划列表, 对应结构体 NET_CFG_RTSC_SCH_MANAGE_INFO, 与通道无关, 通道号需填成-1
+ public static final int NET_EM_CFG_RTSC_SCH_VEHICLE_DETECTORLIST = 14004; // 检测器列表,对应结构体 NET_CFG_RTSC_SCH_VEHICLE_DETECTORLIST_INFO, 与通道无关, 通道号需填成-1
+ public static final int NET_EM_CFG_RTSC_SCH_PEDDETECTOR_LIST = 14005; // 行人检测器列表,对应结构体 NET_CFG_RTSC_SCH_PEDDETECTOR_LIST_INFO, 与通道无关, 通道号需填成-1
+ public static final int NET_EM_CFG_RTSC_SCH_PEDDESTRAIN_PRIORITY = 14006; // 行人优先智能化配置,对应结构体 NET_CFG_RTSC_SCH_PEDDESTRAIN_PRIORITY_INFO, 与通道无关, 通道号需填成-1
+ public static final int NET_EM_CFG_RTSC_SCH_OVERFLOW_CONTROL = 14007; // 溢出控制列表,对应结构体 NET_CFG_RTSC_SCH_OVERFLOW_CONTROL_INFO, 与通道无关, 通道号需填成-1
+ public static final int NET_EM_CFG_RTSC_SCH_NIGHTASK = 14008; // 夜间请求,对应结构体 NET_CFG_RTSC_SCH_NIGHTASK_INFO, 与通道无关, 通道号需填成-1
+ public static final int NET_EM_CFG_RTSC_SCH_OPTIMIZES = 14009; // 饱和度与单点自适应智能化配置,对应结构体 NET_CFG_RTSC_SCH_OPTIMIZES_INFO, 与通道无关, 通道号需填成-1
+ public static final int NET_EM_CFG_RTSC_SCH_VARLANELIST = 14010; // 可变车道列表,对应结构体 NET_CFG_RTSC_SCH_VARLANELIST_INFO, 与通道无关, 通道号需填成-1
+ public static final int NET_EM_CFG_RTSC_SCH_VARLANE_MANAGEMENT = 14011; // 可变车道调度计划列表,对应结构体 NET_CFG_RTSC_SCH_VARLANE_MANAGEMENT_INFO, 与通道无关, 通道号需填成-1
+ public static final int NET_EM_CFG_RTSC_TEMP_SCH = 14012; // 临时方案配置,对应结构体 NET_CFG_RTSC_TEMP_SCH_INFO, 与通道无关, 通道号需填成-1
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_DEFINED_VISITOR_KEY.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_DEFINED_VISITOR_KEY.java
new file mode 100644
index 0000000..4ceb95b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_DEFINED_VISITOR_KEY.java
@@ -0,0 +1,119 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 已经定义的访客信息字段的key值
+*/
+public enum NET_EM_DEFINED_VISITOR_KEY
+{
+ /**
+ * 未知类型
+ */
+ NET_EM_DEFINED_VISITOR_KEY_UNKNOWN(0, "未知类型"),
+ /**
+ * 访客证件号
+ */
+ NET_EM_DEFINED_VISITOR_KEY_ID_NUMBER(1, "访客证件号"),
+ /**
+ * 访客证件类型
+ */
+ NET_EM_DEFINED_VISITOR_KEY_ID_TYPE(2, "访客证件类型"),
+ /**
+ * 来访开始时间
+ */
+ NET_EM_DEFINED_VISITOR_KEY_STARTTIME(3, "来访开始时间"),
+ /**
+ * 来访结束时间
+ */
+ NET_EM_DEFINED_VISITOR_KEY_ENDTIME(4, "来访结束时间"),
+ /**
+ * 被访人姓名
+ */
+ NET_EM_DEFINED_VISITOR_KEY_INTERVIEWEE_NAME(5, "被访人姓名"),
+ /**
+ * 被访人部门
+ */
+ NET_EM_DEFINED_VISITOR_KEY_INTERVIEWEE_DEPARTMENT(6, "被访人部门"),
+ /**
+ * 访客姓名
+ */
+ NET_EM_DEFINED_VISITOR_KEY_NAME(7, "访客姓名"),
+ /**
+ * 访客MZ
+ */
+ NET_EM_DEFINED_VISITOR_KEY_MZ(8, "访客MZ"),
+ /**
+ * 访客性别
+ */
+ NET_EM_DEFINED_VISITOR_KEY_GENDER(9, "访客性别"),
+ /**
+ * 访客联系电话
+ */
+ NET_EM_DEFINED_VISITOR_KEY_PHONE(10, "访客联系电话"),
+ /**
+ * 来访单位
+ */
+ NET_EM_DEFINED_VISITOR_KEY_UNIT(11, "来访单位"),
+ /**
+ * 访客住址
+ */
+ NET_EM_DEFINED_VISITOR_KEY_ADDRESS(12, "访客住址"),
+ /**
+ * 访客卡号
+ */
+ NET_EM_DEFINED_VISITOR_KEY_CARDID(13, "访客卡号"),
+ /**
+ * 访客车牌号
+ */
+ NET_EM_DEFINED_VISITOR_KEY_PLATE_NUMBER(14, "访客车牌号"),
+ /**
+ * 访客二维码
+ */
+ NET_EM_DEFINED_VISITOR_KEY_QRCODE(15, "访客二维码"),
+ /**
+ * 访客照片
+ */
+ NET_EM_DEFINED_VISITOR_KEY_PICTURE(16, "访客照片"),
+ /**
+ * 来访事由
+ */
+ NET_EM_DEFINED_VISITOR_KEY_REASON(17, "来访事由"),
+ /**
+ * 来访人数
+ */
+ NET_EM_DEFINED_VISITOR_KEY_NUMBER(18, "来访人数");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_EM_DEFINED_VISITOR_KEY(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_EM_DEFINED_VISITOR_KEY enumType : NET_EM_DEFINED_VISITOR_KEY.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_EM_DEFINED_VISITOR_KEY enumType : NET_EM_DEFINED_VISITOR_KEY.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_DEVICE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_DEVICE_TYPE.java
new file mode 100644
index 0000000..a3d53c7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_DEVICE_TYPE.java
@@ -0,0 +1,275 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 设备类型
+*/
+public enum NET_EM_DEVICE_TYPE
+{
+ /**
+ * 未知类型
+ */
+ NET_EM_DEVICE_UNKNOWN(0, "未知类型"),
+ /**
+ * 模拟摄像机
+ */
+ NET_EM_DEVICE_CAMERA(1, "模拟摄像机"),
+ /**
+ * 模拟球机
+ */
+ NET_EM_DEVICE_DOME(2, "模拟球机"),
+ /**
+ * 模拟矩阵
+ */
+ NET_EM_DEVICE_MATRIX(3, "模拟矩阵"),
+ /**
+ * 网络摄像机
+ */
+ NET_EM_DEVICE_IPC(4, "网络摄像机"),
+ /**
+ * 视频服务器
+ */
+ NET_EM_DEVICE_NVS(5, "视频服务器"),
+ /**
+ * 网络球机
+ */
+ NET_EM_DEVICE_SD(6, "网络球机"),
+ /**
+ * 智能存储盒
+ */
+ NET_EM_DEVICE_ITSE(7, "智能存储盒"),
+ /**
+ * 智能摄像机
+ */
+ NET_EM_DEVICE_ITC(8, "智能摄像机"),
+ /**
+ * 热成像摄像机
+ */
+ NET_EM_DEVICE_TPC(9, "热成像摄像机"),
+ /**
+ * 数字硬盘录像机
+ */
+ NET_EM_DEVICE_DVR(10, "数字硬盘录像机"),
+ /**
+ * 混合型数字硬盘录像机
+ */
+ NET_EM_DEVICE_HDVR(11, "混合型数字硬盘录像机"),
+ /**
+ * 高清CVI接口录像机
+ */
+ NET_EM_DEVICE_HCVR(12, "高清CVI接口录像机"),
+ /**
+ * 网络录像机
+ */
+ NET_EM_DEVICE_NVR(13, "网络录像机"),
+ /**
+ * 工作在PC上的软件网络录像机
+ */
+ NET_EM_DEVICE_PCNVR(14, "工作在PC上的软件网络录像机"),
+ /**
+ * 网络解码器
+ */
+ NET_EM_DEVICE_NVD(15, "网络解码器"),
+ /**
+ * 软件网络解码器
+ */
+ NET_EM_DEVICE_SNVD(16, "软件网络解码器"),
+ /**
+ * 万能解码器
+ */
+ NET_EM_DEVICE_UDS(17, "万能解码器"),
+ /**
+ * 存储服务器式录像机
+ */
+ NET_EM_DEVICE_SVR(18, "存储服务器式录像机"),
+ /**
+ * 视频综合平台
+ */
+ NET_EM_DEVICE_M(19, "视频综合平台"),
+ /**
+ * IVS服务器
+ */
+ NET_EM_DEVICE_IVS(20, "IVS服务器"),
+ /**
+ * 虚拟网络服务器
+ */
+ NET_EM_DEVICE_VNCSERVER(21, "虚拟网络服务器"),
+ /**
+ * 虚拟网络客户端
+ */
+ NET_EM_DEVICE_VNCCLIENT(22, "虚拟网络客户端"),
+ /**
+ * 嵌入式多屏控制器
+ */
+ NET_EM_DEVICE_DSCON(23, "嵌入式多屏控制器"),
+ /**
+ * 通用个人计算机
+ */
+ NET_EM_DEVICE_PC(24, "通用个人计算机"),
+ /**
+ * 网络视频存储服务器
+ */
+ NET_EM_DEVICE_EVS(25, "网络视频存储服务器"),
+ /**
+ * 视频转码服务器
+ */
+ NET_EM_DEVICE_VCS(26, "视频转码服务器"),
+ /**
+ * 报警主机, 15 年前
+ */
+ NET_EM_DEVICE_A(27, "报警主机, 15 年前"),
+ /**
+ * 报警主机, 15年后
+ */
+ NET_EM_DEVICE_ARC(28, "报警主机, 15年后"),
+ /**
+ * 智能球机
+ */
+ NET_EM_DEVICE_SDHNI(29, "智能球机"),
+ /**
+ * 门禁主机
+ */
+ NET_EM_DEVICE_BSC(30, "门禁主机"),
+ /**
+ * 门禁读卡器
+ */
+ NET_EM_DEVICE_BSR(31, "门禁读卡器"),
+ /**
+ * 媒体网关(接入安卓设备)
+ */
+ NET_EM_DEVICE_MGATEWAY(32, "媒体网关(接入安卓设备)"),
+ /**
+ * 智网门口机设备
+ */
+ NET_EM_DEVICE_VTO(33, "智网门口机设备"),
+ /**
+ * 智网室内机设备
+ */
+ NET_EM_DEVICE_VTH(34, "智网室内机设备"),
+ /**
+ * 可视对讲终端
+ */
+ NET_EM_DEVICE_VTT(35, "可视对讲终端"),
+ /**
+ * 管理机
+ */
+ NET_EM_DEVICE_VTS(36, "管理机"),
+ /**
+ * 控制器
+ */
+ NET_EM_DEVICE_VTNC(37, "控制器"),
+ /**
+ * 消费类卡片机产品
+ */
+ NET_EM_DEVICE_CE(38, "消费类卡片机产品"),
+ /**
+ * 手持终端
+ */
+ NET_EM_DEVICE_MPT(39, "手持终端"),
+ /**
+ * 金融ATM
+ */
+ NET_EM_DEVICE_ATM(40, "金融ATM"),
+ /**
+ * 智网家庭网关
+ */
+ NET_EM_DEVICE_SHG(41, "智网家庭网关"),
+ /**
+ * 防护舱控制器
+ */
+ NET_EM_DEVICE_ARM(42, "防护舱控制器"),
+ /**
+ * 无线中继设备
+ */
+ NET_EM_DEVICE_ASM(43, "无线中继设备"),
+ /**
+ * 报警柱
+ */
+ NET_EM_DEVICE_VTA(44, "报警柱"),
+ /**
+ * 机载云台
+ */
+ NET_EM_DEVICE_UAVGA(45, "机载云台"),
+ /**
+ * 一体化遥控器
+ */
+ NET_EM_DEVICE_UAVR(46, "一体化遥控器"),
+ /**
+ * 无人机
+ */
+ NET_EM_DEVICE_AIRCRAFT(47, "无人机"),
+ /**
+ * 地面站
+ */
+ NET_EM_DEVICE_UAVS(48, "地面站"),
+ /**
+ * 热成像云台摄像机
+ */
+ NET_EM_DEVICE_TPCSD(49, "热成像云台摄像机"),
+ /**
+ * 热成像枪机
+ */
+ NET_EM_DEVICE_TPCBF(50, "热成像枪机"),
+ /**
+ * 雷达
+ */
+ NET_EM_DEVICE_RADAR(51, "雷达"),
+ /**
+ * 雷达系统
+ */
+ NET_EM_DEVICE_RADAR_PTZ(52, "雷达系统"),
+ /**
+ * 摄像雷达
+ */
+ NET_EM_DEVICE_RADAR_CAM(53, "摄像雷达"),
+ /**
+ * KVM输入节点
+ */
+ NET_EM_DEVICE_KVM_IN(54, "KVM输入节点"),
+ /**
+ * KVM输出节点
+ */
+ NET_EM_DEVICE_KVM_OUT(55, "KVM输出节点"),
+ /**
+ * IVSS
+ */
+ NET_EM_DEVICE_IVSS(56, "IVSS"),
+ /**
+ * 工牌相机
+ */
+ NET_EM_DEVICE_GP(57, "工牌相机");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_EM_DEVICE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_EM_DEVICE_TYPE enumType : NET_EM_DEVICE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_EM_DEVICE_TYPE enumType : NET_EM_DEVICE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_ETH_STATE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_ETH_STATE.java
new file mode 100644
index 0000000..c374e58
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_ETH_STATE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 有线网连接状态
+* @date 2022/08/31 14:35:19
+*/
+public enum NET_EM_ETH_STATE {
+/**
+未知
+*/
+ NET_EM_ETH_UNKNOWN(0, "未知"),
+/**
+连接
+*/
+ NET_EM_ETH_CONNECT(1, "连接"),
+/**
+未连接
+*/
+ NET_EM_ETH_DISCONNECT(2, "未连接");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+NET_EM_ETH_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (NET_EM_ETH_STATE enumType : NET_EM_ETH_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (NET_EM_ETH_STATE enumType : NET_EM_ETH_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static NET_EM_ETH_STATE getEnum(int value) {
+ for (NET_EM_ETH_STATE e : NET_EM_ETH_STATE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_EM_ETH_STATE.NET_EM_ETH_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_FAILCODE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_FAILCODE.java
new file mode 100644
index 0000000..db4bbde
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_FAILCODE.java
@@ -0,0 +1,212 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 操作错误码
+ * @date 2021/3/31
+ */
+public enum NET_EM_FAILCODE {
+ NET_EM_FAILCODE_NOERROR(0, "没有错误"),
+ NET_EM_FAILCODE_UNKNOWN(1, "未知错误"),
+ NET_EM_FAILCODE_INVALID_PARAM(2, "参数错误"),
+ NET_EM_FAILCODE_INVALID_PASSWORD(3, "无效密码"),
+ NET_EM_FAILCODE_INVALID_FP(4, "无效信息数据"),
+ NET_EM_FAILCODE_INVALID_FACE(5, "无效人脸数据"),
+ NET_EM_FAILCODE_INVALID_CARD(6, "无效卡数据"),
+ NET_EM_FAILCODE_INVALID_USER(7, "无效人数据"),
+ NET_EM_FAILCODE_FAILED_GET_SUBSERVICE(8, "能力集子服务获取失败"),
+ NET_EM_FAILCODE_FAILED_GET_METHOD(9, "获取组件的方法集失败"),
+ NET_EM_FAILCODE_FAILED_GET_SUBCAPS(10, "获取资源实体能力集失败"),
+ NET_EM_FAILCODE_ERROR_INSERT_LIMIT(11, "已达插入上限"),
+ NET_EM_FAILCODE_ERROR_MAX_INSERT_RATE(12, "已达最大插入速度"),
+ NET_EM_FAILCODE_FAILED_ERASE_FP(13, "清除信息数据失败"),
+ NET_EM_FAILCODE_FAILED_ERASE_FACE(14, "清除人脸数据失败"),
+ NET_EM_FAILCODE_FAILED_ERASE_CARD(15, "清除卡数据失败"),
+ NET_EM_FAILCODE_NO_RECORD(16, "没有记录"),
+ NET_EM_FAILCODE_NOMORE_RECORD(17, "查找到最后,没有更多记录"),
+ NET_EM_FAILCODE_RECORD_ALREADY_EXISTS(18, "下发卡或信息时,数据重复"),
+ NET_EM_FAILCODE_MAX_FP_PERUSER(19, "超过个人最大信息记录数"),
+ NET_EM_FAILCODE_MAX_CARD_PERUSER(20, "超过个人最大卡片记录数"),
+ NET_EM_FAILCODE_EXCEED_MAX_PHOTOSIZE(21, "超出最大照片大小"),
+ NET_EM_FAILCODE_INVALID_USERID(22, "用户ID无效(未找到客户)"),
+ NET_EM_FAILCODE_EXTRACTFEATURE_FAIL(23, "提取人脸特征失败"),
+ NET_EM_FAILCODE_PHOTO_EXIST(24, "人脸照片已存在"),
+ NET_EM_FAILCODE_PHOTO_OVERFLOW(25, "超出最大人脸照片数"),
+ NET_EM_FAILCODE_INVALID_PHOTO_FORMAT(26, "照片格式无效"),
+ NET_EM_FAILCODE_EXCEED_ADMINISTRATOR_LIMIT(27, "超出管理员人数限制"),
+ /**
+ * /// 特征已存在
+ */
+ NET_EM_FAILECODE_FACE_FEATURE_ALREADY_EXIST(28, "/// 特征已存在"),
+ /**
+ * /// 信息已存在
+ */
+ NET_EM_FAILECODE_FINGERPRINT_EXIST(29, "/// 信息已存在"),
+ /**
+ * /// 证件号已存在
+ */
+ NET_EM_FAILECODE_CITIZENID_EXIST(30, "/// 证件号已存在"),
+ /**
+ * /// 不支持普通用户下发
+ */
+ NET_EM_FAILECODE_NORMAL_USER_NOTSUPPORT(31, "/// 不支持普通用户下发"),
+ /**
+ * /// 图片中检测到0个目标
+ */
+ NET_EM_FAILCODE_NO_FACE_DETECTED(32, "/// 图片中检测到0个目标"),
+ /**
+ * /// 图片中检测到多个目标,无法返回特征
+ */
+ NET_EM_FAILCODE_MULTI_FACE_DETECTED(33, "/// 图片中检测到多个目标,无法返回特征"),
+ /**
+ * /// 图片解码错误
+ */
+ NET_EM_FAILCODE_PICTURE_DECODING_ERROR(34, "/// 图片解码错误"),
+ /**
+ * /// 图片质量太低
+ */
+ NET_EM_FAILCODE_LOW_PICTURE_QUALITY(35, "/// 图片质量太低"),
+ /**
+ * /// 结果不推荐使用,比如:对外国人,特征提取成功,但算法支持不好,容易造成误识别
+ */
+ NET_EM_FAILCODE_NOT_RECOMMENDED(36, "/// 结果不推荐使用,比如:对外国人,特征提取成功,但算法支持不好,容易造成误识别"),
+ /**
+ * /// 角度超过配置阈值
+ */
+ NET_EM_FAILCODE_FACE_ANGLE_OVER_THRESHOLDS(37, "/// 角度超过配置阈值"),
+ /**
+ * /// 占比超出范围,算法建议占比:不要超过2/3;不要小于1/3
+ */
+ NET_EM_FAILCODE_FACE_RADIO_EXCEEDS_RANGE(38, "/// 占比超出范围,算法建议占比:不要超过2/3;不要小于1/3"),
+ /**
+ * /// 过爆
+ */
+ NET_EM_FAILCODE_FACE_OVER_EXPOSED(39, "/// 过爆"),
+ /**
+ * /// 欠爆
+ */
+ NET_EM_FAILCODE_FACE_UNDER_EXPOSED(40, "/// 欠爆"),
+ /**
+ * /// 亮度不均衡 ,用于判断阴阳脸
+ */
+ NET_EM_FAILCODE_BRIGHTNESS_IMBALANCE(41, "/// 亮度不均衡 ,用于判断阴阳脸"),
+ /**
+ * /// 置信度低
+ */
+ NET_EM_FAILCODE_FACE_LOWER_CONFIDENCE(42, "/// 置信度低"),
+ /**
+ * /// 对齐分数低
+ */
+ NET_EM_FAILCODE_FACE_LOW_ALIGN(43, "/// 对齐分数低"),
+ /**
+ * /// 存在遮挡、残缺不全
+ */
+ NET_EM_FAILCODE_FRAGMENTARY_FACE_DETECTED(44, "/// 存在遮挡、残缺不全"),
+ /**
+ * /// 瞳距小于阈值
+ */
+ NET_EM_FAILCODE_PUPIL_DISTANCE_NOT_ENOUGH(45, "/// 瞳距小于阈值"),
+ /**
+ * /// 数据下载失败
+ */
+ NET_EM_FAILCODE_FACE_DATA_DOWNLOAD_FAILED(46, "/// 数据下载失败"),
+ /**
+ * /// 可检测,但特征值提取失败(算法场景)
+ */
+ NET_EM_FAILCODE_FACE_FFE_FAILED(47, "/// 可检测,但特征值提取失败(算法场景)"),
+ /**
+ * /// 照片因口罩,帽子,墨镜等属性不符合而提取特征值错误
+ */
+ NET_EM_FAILCODE_PHOTO_FEATURE_FAILED_FOR_FA(48, "/// 照片因口罩,帽子,墨镜等属性不符合而提取特征值错误"),
+ /**
+ * /// 照片不完整
+ */
+ NET_EM_FAILCODE_FACE_DATA_PHOTO_INCOMPLETE(49, "/// 照片不完整"),
+ /**
+ * /// 数据库插入越上限
+ */
+ NET_EM_FAILCODE_DATABASE_ERROR_INSERT_OVERFLOW(50, "/// 数据库插入越上限"),
+ /**
+ * /// 卡号不存在
+ */
+ NET_EM_CARD_NOT_EXIST(51, "/// 卡号不存在"),
+ /**
+ * /// User已存在
+ */
+ NET_EM_FAILCODE_USER_EXIST(52, "/// User已存在"),
+ /**
+ * /// 卡号已存在
+ */
+ NET_EM_FAILCODE_CARD_NUM_EXIST(53, "/// 卡号已存在"),
+ /**
+ * /// 信息通过URL下载方式下载失败
+ */
+ NET_EM_FAILCODE_FINGERPRINT_DOWNLOAD_FAIL(54, "/// 信息通过URL下载方式下载失败"),
+ /**
+ * /// 账户登录中
+ */
+ NET_EM_FAILCODE_ACCOUNT_IN_USE(55, "/// 账户登录中"),
+ /**
+ * /// 更新用户眼睛信息时,用户不存在眼睛信息
+ */
+ NET_EM_FAILCODE_IRIS_INFO_NOT_EXISTED(56, "/// 更新用户眼睛信息时,用户不存在眼睛信息"),
+ /**
+ * /// 下发的眼睛信息数据格式、特征值大小错误
+ */
+ NET_EM_FAILCODE_INVALID_IRIS_DATA(57, "/// 下发的眼睛信息数据格式、特征值大小错误"),
+ /**
+ * /// 眼睛信息已存在
+ */
+ NET_EM_FAILCODE_IRIS_ALREADY_EXIST(58, "/// 眼睛信息已存在"),
+ /**
+ * /// 眼睛信息信息删除失败
+ */
+ NET_EM_FAILCODE_ERASE_IRIS_FAILED(59, "/// 眼睛信息信息删除失败"),
+ /**
+ * /// 超出个人所支持的眼睛信息组数量,两个眼睛(左右眼)为一组
+ */
+ NET_EM_FAILCODE_EXCEED_MAX_IRIS_GROUP_COUNT_PER_USER(60, "/// 超出个人所支持的眼睛信息组数量,两个眼睛(左右眼)为一组"),
+ /**
+ * /// 超出个人单组所能记录的最大数量
+ */
+ NET_EM_FAILCODE_EXCEED_MAX_IRIS_COUNT_PER_GROUP(61, "/// 超出个人单组所能记录的最大数量");
+
+ private int failCode;
+ private String desc;
+
+ NET_EM_FAILCODE(int failCode, String desc) {
+ this.failCode = failCode;
+ this.desc = desc;
+ }
+
+ public static NET_EM_FAILCODE FailCode(int failCode) {
+ for (NET_EM_FAILCODE code : NET_EM_FAILCODE.values()) {
+ if (failCode == code.getFailCode()) {
+ return code;
+ }
+ }
+ return NET_EM_FAILCODE_UNKNOWN;
+ }
+
+ public static String FailCodeMessage(int failCode) {
+ return FailCode(failCode).getDesc();
+ }
+
+ public int getFailCode() {
+ return failCode;
+ }
+
+ public void setFailCode(int failCode) {
+ this.failCode = failCode;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public void setDesc(String desc) {
+ this.desc = desc;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_FILCKERLIGHT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_FILCKERLIGHT_TYPE.java
new file mode 100644
index 0000000..52587b2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_FILCKERLIGHT_TYPE.java
@@ -0,0 +1,51 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 闪烁灯光类型
+*/
+public enum NET_EM_FILCKERLIGHT_TYPE
+{
+ /**
+ * 闪烁白光灯
+ */
+ NET_EM_WHITELIGHT(0, "闪烁白光灯"),
+ /**
+ * 红蓝闪烁警示灯
+ */
+ NET_EM_REDBLUELIGHT(1, "红蓝闪烁警示灯");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_EM_FILCKERLIGHT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_EM_FILCKERLIGHT_TYPE enumType : NET_EM_FILCKERLIGHT_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_EM_FILCKERLIGHT_TYPE enumType : NET_EM_FILCKERLIGHT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_FIREWARNING_MODE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_FIREWARNING_MODE_TYPE.java
new file mode 100644
index 0000000..7a6722c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_FIREWARNING_MODE_TYPE.java
@@ -0,0 +1,60 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 260611
+ * @description 火灾配置类型
+ * @date 2023/05/24 10:24:48
+ */
+public enum NET_EM_FIREWARNING_MODE_TYPE {
+ /**
+ * 云台预置点模式(默认)
+ */
+ NET_EM_FIREWARNING_TYPE_PTZPRESET(0, "云台预置点模式(默认)"),
+ /**
+ * 空间排除模式
+ */
+ NET_EM_FIREWARNING_TYPE_SPACEEXCLUDE(1, "空间排除模式");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_EM_FIREWARNING_MODE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_EM_FIREWARNING_MODE_TYPE enumType : NET_EM_FIREWARNING_MODE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_EM_FIREWARNING_MODE_TYPE enumType : NET_EM_FIREWARNING_MODE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static NET_EM_FIREWARNING_MODE_TYPE getEnum(int value) {
+ for (NET_EM_FIREWARNING_MODE_TYPE e : NET_EM_FIREWARNING_MODE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_EM_FIREWARNING_MODE_TYPE.NET_EM_FIREWARNING_TYPE_PTZPRESET;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_FLOW_ATTRIBUTE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_FLOW_ATTRIBUTE.java
new file mode 100644
index 0000000..3c5f513
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_FLOW_ATTRIBUTE.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author : 260611
+ * @description : 车道流量信息属性
+ * @since : Created in 2022/03/10 10:12
+ */
+
+public enum NET_EM_FLOW_ATTRIBUTE {
+ /**
+ *
+ */
+ EM_FLOW_ATTRIBUTE_UNKNOWN(0, ""),
+ /**
+ * 流量监测
+ */
+ EM_FLOW_ATTRIBUTE_FLOW_DETECTION(1, "流量监测"),
+ /**
+ * 排队检测
+ */
+ EM_FLOW_ATTRIBUTE_QUEUE_DETECTION(2, "排队检测");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_EM_FLOW_ATTRIBUTE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_EM_FLOW_ATTRIBUTE enumType : NET_EM_FLOW_ATTRIBUTE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_EM_FLOW_ATTRIBUTE enumType : NET_EM_FLOW_ATTRIBUTE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static NET_EM_FLOW_ATTRIBUTE getEnum(int value) {
+ for (NET_EM_FLOW_ATTRIBUTE e : NET_EM_FLOW_ATTRIBUTE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_EM_FLOW_ATTRIBUTE.EM_FLOW_ATTRIBUTE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_FORMAT_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_FORMAT_TYPE.java
new file mode 100644
index 0000000..2c58dc5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_FORMAT_TYPE.java
@@ -0,0 +1,62 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 码流类型
+ *
+ * @author 47040
+ * @since Created at 2021/5/26 22:09
+ */
+public enum NET_EM_FORMAT_TYPE {
+ EM_FORMAT_TYPE_UNKNOWN(0, "未知类型"),
+ /*主码流*/
+ EM_FORMAT_MAIN_NORMAL(1, "主码流普通编码"),
+ EM_FORMAT_MAIN_MOVEEXAMINE(2, "主码流动检编码"),
+ EM_FORMAT_MAIN_ALARM(3, "主码流报警编码"),
+ /*辅码流*/
+ EM_FORMAT_EXTRA1(4, "辅码流1"),
+ EM_FORMAT_EXTRA2(5, "辅码流2"),
+ EM_FORMAT_EXTRA3(6, "辅码流3");
+
+ private final int value;
+ private final String note;
+
+ NET_EM_FORMAT_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (TALK_CODING_TYPE enumType : TALK_CODING_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_EM_FORMAT_TYPE enumType : NET_EM_FORMAT_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static NET_EM_FORMAT_TYPE getEnum(int value) {
+ for (NET_EM_FORMAT_TYPE e : NET_EM_FORMAT_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_EM_FORMAT_TYPE.EM_FORMAT_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_GET_ALARMREGION_INFO.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_GET_ALARMREGION_INFO.java
new file mode 100644
index 0000000..26c705b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_GET_ALARMREGION_INFO.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 获取的操作类型
+ * @date 2021/11/08
+ */
+public class NET_EM_GET_ALARMREGION_INFO {
+ public static final int NET_EM_GET_ALARMREGION_INFO_UNKNOWN = 0; // 未知
+ public static final int NET_EM_GET_ALARMREGION_INFO_ALARMCAPS = 1; // 获取防区能力,此时CLIENT_GetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_GET_ALARMCAPS,
+ // pstuOutParam类型为NET_OUT_GET_ALARMCAPS
+ public static final int NET_EM_GET_ALARMREGION_INFO_ARMMODE = 2; // 获取布防状态,此时CLIENT_GetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_GET_ALARMMODE,
+ // pstuOutParam类型为NET_OUT_GET_ALARMMODE
+ public static final int NET_EM_GET_ALARMREGION_INFO_BYPASSMODE = 3; // 获取旁路状态,此时CLIENT_GetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_GET_BYPASSMODE,
+ // pstuOutParam类型为NET_OUT_GET_BYPASSMODE
+ public static final int NET_EM_GET_ALARMREGION_INFO_AREAZONES = 4; // 获取区域防区,此时CLIENT_GetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_GET_AREAZONES,
+ // pstuOutParam类型为NET_OUT_GET_AREAZONES
+ public static final int NET_EM_GET_ALARMREGION_INFO_ALLINSLOTS = 5; // 获取所有的报警防区,此时CLIENT_GetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_GET_ALLINSLOTS,
+ // pstuOutParam类型为NET_OUT_GET_ALLINSLOTS
+ public static final int NET_EM_GET_ALARMREGION_INFO_ALLOUTSLOTS = 6; // 获取所有的报警输出,此时CLIENT_GetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_GET_ALLOUTSLOTS,
+ // pstuOutParam类型为NET_OUT_GET_ALLOUTSLOTS
+ public static final int NET_EM_GET_ALARMREGION_INFO_ZONECONNECTIONSSTATUS = 7; // 获取防区连接状态,此时CLIENT_GetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_GET_CONNECTIONSTATUS,
+ // pstuOutParam类型为NET_OUT_GET_CONNECTIONSTATUS
+ public static final int NET_EM_GET_ALARMREGION_INFO_AREASTATUS = 8; // 获取区域状态,此时CLIENT_GetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_GET_AREAS_STATUS,
+ // pstuOutParam类型为NET_OUT_GET_AREAS_STATUS
+ public static final int NET_EM_GET_ALARMREGION_INFO_OUTPUTSTATE = 9; // 获取输出状态,此时CLIENT_GetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_GET_OUTPUT_STATE,
+ // pstuOutParam类型为NET_OUT_GET_OUTPUT_STATE
+ public static final int NET_EM_GET_ALARMREGION_INFO_ZONESTROUBLE = 10; // 获取防区故障信息,此时CLIENT_GetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_GET_ZONES_TROUBLE,
+ // pstuOutParam类型为NET_OUT_GET_ZONES_TROUBLE
+ public static final int NET_EM_GET_ALARMREGION_INFO_CHANNELSSTATE = 11; // 获取通道状态,此时CLIENT_GetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_GET_CHANNELS_STATE,
+ // pstuOutParam类型为NET_OUT_GET_CHANNELS_STATE
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_IMAGE_QUALITY.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_IMAGE_QUALITY.java
new file mode 100644
index 0000000..af2fbd9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_IMAGE_QUALITY.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 画质
+ *
+ * @author 47040
+ * @since Created at 2021/5/26 22:25
+ */
+public enum NET_EM_IMAGE_QUALITY {
+ EM_IMAGE_QUALITY_Q10(1, "图像质量10%"),
+ EM_IMAGE_QUALITY_Q30(2, "图像质量30%"),
+ EM_IMAGE_QUALITY_Q50(3, "图像质量50%"),
+ EM_IMAGE_QUALITY_Q60(4, "图像质量60%"),
+ EM_IMAGE_QUALITY_Q80(5, "图像质量80%"),
+ EM_IMAGE_QUALITY_Q100(6, "图像质量100%");
+
+ private final int value;
+ private final String note;
+
+ NET_EM_IMAGE_QUALITY(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_EM_IMAGE_QUALITY enumType : NET_EM_IMAGE_QUALITY.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_EM_IMAGE_QUALITY enumType : NET_EM_IMAGE_QUALITY.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static NET_EM_IMAGE_QUALITY getEnum(int value) {
+ for (NET_EM_IMAGE_QUALITY e : NET_EM_IMAGE_QUALITY.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_EM_IMAGE_QUALITY.EM_IMAGE_QUALITY_Q10;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_INTELLIPARKING_DATA_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_INTELLIPARKING_DATA_TYPE.java
new file mode 100644
index 0000000..41fba38
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_INTELLIPARKING_DATA_TYPE.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 智能停车数据类型
+ * @date 2022/10/28 11:30:56
+ */
+public enum NET_EM_INTELLIPARKING_DATA_TYPE {
+ /**
+ * 数据是规划式停车场车位ID的使用情况,PlanArea字段有效
+ */
+ NET_EM_INTELLIPARKING_DATA_TYPE_PLANAREA(0, "数据是规划式停车场车位ID的使用情况,PlanArea字段有效"),
+ /**
+ * 数据是开放式停车场停车信息,OpenArea字段有效
+ */
+ NET_EM_INTELLIPARKING_DATA_TYPE_OPENAREA(1, "数据是开放式停车场停车信息,OpenArea字段有效");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_EM_INTELLIPARKING_DATA_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_EM_INTELLIPARKING_DATA_TYPE enumType : NET_EM_INTELLIPARKING_DATA_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_EM_INTELLIPARKING_DATA_TYPE enumType : NET_EM_INTELLIPARKING_DATA_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_LATTICE_SCREEN_BACKGROUND_MODE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LATTICE_SCREEN_BACKGROUND_MODE.java
new file mode 100644
index 0000000..2764e32
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LATTICE_SCREEN_BACKGROUND_MODE.java
@@ -0,0 +1,9 @@
+package com.netsdk.lib.enumeration;
+/** 逻辑屏背景风格模式 */
+public enum NET_EM_LATTICE_SCREEN_BACKGROUND_MODE {
+ NET_EM_LATTICE_SCREEN_BACKGROUND_MODE_UNKNOWN, // 未知
+ NET_EM_LATTICE_SCREEN_BACKGROUND_MODE_A, // 背景风格A
+ NET_EM_LATTICE_SCREEN_BACKGROUND_MODE_B, // 背景风格B
+ NET_EM_LATTICE_SCREEN_BACKGROUND_MODE_C; // 背景风格C
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_LATTICE_SCREEN_CONTROL_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LATTICE_SCREEN_CONTROL_TYPE.java
new file mode 100644
index 0000000..5ab255e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LATTICE_SCREEN_CONTROL_TYPE.java
@@ -0,0 +1,42 @@
+package com.netsdk.lib.enumeration;
+/** 逻辑屏控制方式 */
+public enum NET_EM_LATTICE_SCREEN_CONTROL_TYPE {
+ EM_LATTICE_SCREEN_CONTROL_TYPE_UNKNOWN(-1, "未知"),// 未知
+ EM_LATTICE_SCREEN_CONTROL_TYPE_CAMERA_CONTROL(0, "相机控制"),// 相机控制
+ EM_LATTICE_SCREEN_CONTROL_TYPE_PLATFORM_CONTROL(1, "平台控制");// 平台控制
+
+ private int value;
+ private String note;
+
+ NET_EM_LATTICE_SCREEN_CONTROL_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_EM_LATTICE_SCREEN_CONTROL_TYPE enumType : NET_EM_LATTICE_SCREEN_CONTROL_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_EM_LATTICE_SCREEN_CONTROL_TYPE enumType : NET_EM_LATTICE_SCREEN_CONTROL_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_LATTICE_SCREEN_LOGO_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LATTICE_SCREEN_LOGO_TYPE.java
new file mode 100644
index 0000000..f0e3bd9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LATTICE_SCREEN_LOGO_TYPE.java
@@ -0,0 +1,8 @@
+package com.netsdk.lib.enumeration;
+
+public enum NET_EM_LATTICE_SCREEN_LOGO_TYPE {
+ NET_EM_LATTICE_SCREEN_LOGO_TYPE_UNKNOWN, // 未知
+ NET_EM_LATTICE_SCREEN_LOGO_TYPE_STENCIL, // 文字
+ NET_EM_LATTICE_SCREEN_LOGO_TYPE_PICTURE; // 图片
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_LATTICE_SCREEN_SHOW_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LATTICE_SCREEN_SHOW_TYPE.java
new file mode 100644
index 0000000..95cb40e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LATTICE_SCREEN_SHOW_TYPE.java
@@ -0,0 +1,44 @@
+package com.netsdk.lib.enumeration;
+/**
+ *逻辑屏显示方式
+ */
+public enum NET_EM_LATTICE_SCREEN_SHOW_TYPE {
+ EM_LATTICE_SCREEN_SHOW_TYPE_UNKNOWN(-1, "未知"),// 未知
+ EM_LATTICE_SCREEN_SHOW_TYPE_WORD_CONTROL(0, "字段控制显示"),// 字段控制显示
+ EM_LATTICE_SCREEN_SHOW_TYPE_TRUSTEESHIP_CONTROL(1, "托管显示");// 托管显示(完全由平台自定义显示)
+
+ private int value;
+ private String note;
+
+ NET_EM_LATTICE_SCREEN_SHOW_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_EM_LATTICE_SCREEN_SHOW_TYPE enumType : NET_EM_LATTICE_SCREEN_SHOW_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_EM_LATTICE_SCREEN_SHOW_TYPE enumType : NET_EM_LATTICE_SCREEN_SHOW_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_LIGHTING_MODE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LIGHTING_MODE.java
new file mode 100644
index 0000000..d417186
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LIGHTING_MODE.java
@@ -0,0 +1,91 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 421657
+ * @description 灯光模式
+ * @origin autoTool
+ * @date 2023/10/13 08:58:46
+ */
+public enum NET_EM_LIGHTING_MODE {
+ /**
+ * 未知模式
+ */
+ NET_EM_LIGHTING_UNKNOW(0, "未知模式"),
+ /**
+ * 手动模式
+ */
+ NET_EM_LIGHTING_MANUAL(1, "手动模式"),
+ /**
+ * 自动模式
+ */
+ NET_EM_LIGHTING_AUTO(2, "自动模式"),
+ /**
+ * 关闭模式
+ */
+ NET_EM_LIGHTING_OFF(3, "关闭模式"),
+ /**
+ * 倍率优先模式
+ */
+ NET_EM_LIGHTING_ZOOMPRIO(4, "倍率优先模式"),
+ /**
+ * 定时模式,本模式时LightingSchedule配置生效
+ */
+ NET_EM_LIGHTING_TIMING(5, "定时模式,本模式时LightingSchedule配置生效"),
+ /**
+ * 智能灯光模式(仅球机使用),如果在模式选择本模式,使用新加的SmartLighting配置
+ */
+ NET_EM_LIGHTING_SMARTLIGHT(6, "智能灯光模式(仅球机使用),如果在模式选择本模式,使用新加的SmartLighting配置"),
+ /**
+ * 支持多种灯光,但手动模式下只使用一种灯光,此时使用ManualLighting配置
+ */
+ NET_EM_LIGHTING_EXCLUSIVEMANUAL(7, "支持多种灯光,但手动模式下只使用一种灯光,此时使用ManualLighting配置"),
+ /**
+ * 强制打开灯光(需求要保持状态)
+ */
+ NET_EM_LIGHTING_FORCEON(8, "强制打开灯光(需求要保持状态)");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_EM_LIGHTING_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_EM_LIGHTING_MODE enumType : NET_EM_LIGHTING_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_EM_LIGHTING_MODE enumType : NET_EM_LIGHTING_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static NET_EM_LIGHTING_MODE getEnum(int value) {
+ for (NET_EM_LIGHTING_MODE e : NET_EM_LIGHTING_MODE.values()) {
+ if (e.getValue() == value) {
+ return e;
+ }
+ }
+ return NET_EM_LIGHTING_MODE.NET_EM_LIGHTING_UNKNOW;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_LIGHTLINK_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LIGHTLINK_TYPE.java
new file mode 100644
index 0000000..b7b066d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LIGHTLINK_TYPE.java
@@ -0,0 +1,51 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 灯光联动方式
+*/
+public enum NET_EM_LIGHTLINK_TYPE
+{
+ /**
+ * 闪烁; 默认
+ */
+ NET_EM_FILCKER(0, "闪烁; 默认"),
+ /**
+ * 常亮
+ */
+ NET_EM_KEEPLIGHTING(1, "常亮");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_EM_LIGHTLINK_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_EM_LIGHTLINK_TYPE enumType : NET_EM_LIGHTLINK_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_EM_LIGHTLINK_TYPE enumType : NET_EM_LIGHTLINK_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_LOGIC_CHANNEL.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LOGIC_CHANNEL.java
new file mode 100644
index 0000000..96eae6c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LOGIC_CHANNEL.java
@@ -0,0 +1,109 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 逻辑通道号
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/18 9:44
+ */
+public enum NET_EM_LOGIC_CHANNEL {
+ /**
+ * 无效
+ */
+ NET_EM_LOGIC_CHANNEL_INVALID(-1, "无效"),
+ /**
+ * 视频组合通道号
+ */
+ NET_EM_LOGIC_CHANNEL_COMPOSITE(0, "视频组合通道号"),
+ /**
+ * PPT显示逻辑通道号
+ */
+ NET_EM_LOGIC_CHANNEL_PPT(1, "PPT显示逻辑通道号"),
+ /**
+ * 板书特写逻辑通道号
+ */
+ NET_EM_LOGIC_CHANNEL_BLACKBOARD(2, "板书特写逻辑通道号"),
+ /**
+ * 学生特写逻辑通道号
+ */
+ NET_EM_LOGIC_CHANNEL_STUDENTFEATURE(3, "学生特写逻辑通道号"),
+ /**
+ * 学生全景逻辑通道号
+ */
+ NET_EM_LOGIC_CHANNEL_STUDENTFULLVIEW(4, "学生全景逻辑通道号"),
+ /**
+ * 教师特写逻辑通道号
+ */
+ NET_EM_LOGIC_CHANNEL_TEACHERFEATURE(5, "教师特写逻辑通道号"),
+ /**
+ * 教师全景逻辑通道号
+ */
+ NET_EM_LOGIC_CHANNEL_TEACHERFULLVIEW(6, "教师全景逻辑通道号"),
+ /**
+ * 教师检测逻辑通道号
+ */
+ NET_EM_LOGIC_CHANNEL_TEACHERDETECT(7, "教师检测逻辑通道号"),
+ /**
+ * 板书检测逻辑通道号
+ */
+ NET_EM_LOGIC_CHANNEL_BLACKBOARDDETECT(8, "板书检测逻辑通道号"),
+ /**
+ * 板书特写1逻辑通道号
+ */
+ NET_EM_LOGIC_CHANNEL_BLACKBOARD1(9, "板书特写1逻辑通道号"),
+ /**
+ * 板书检测1逻辑通道号
+ */
+ NET_EM_LOGIC_CHANNEL_BLACKBOARDDETECT1(10, "板书检测1逻辑通道号"),
+ /**
+ * 展台显示逻辑通道号
+ */
+ NET_EM_LOGIC_CHANNEL_VISUALPRESENTER(11, "展台显示逻辑通道号"),
+ /**
+ * 视频监控逻辑通道号
+ */
+ NET_EM_LOGIC_CHANNEL_VIDEOSURVEILLANCE(12, "视频监控逻辑通道号"),
+ /**
+ * 互动会议逻辑通道号
+ */
+ NET_EM_LOGIC_CHANNEL_VIDEOCONFERENCE(13, "互动会议逻辑通道号"),
+ /**
+ * 互动演示逻辑通道
+ */
+ NET_EM_LOGIC_CHANNEL_VIDEO_PRESENTATION(14, "互动演示逻辑通道");
+
+ private int value;
+ private String note;
+
+ NET_EM_LOGIC_CHANNEL(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_EM_LOGIC_CHANNEL enumType : NET_EM_LOGIC_CHANNEL.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_EM_LOGIC_CHANNEL enumType : NET_EM_LOGIC_CHANNEL.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_AREATYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_AREATYPE.java
new file mode 100644
index 0000000..c6e53a4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_AREATYPE.java
@@ -0,0 +1,54 @@
+package com.netsdk.lib.enumeration;
+
+
+public enum NET_EM_LXSJ_AREATYPE {
+/**未知*/
+ NET_EM_LXSJ_AREATYPE_UNKNOWN(-1, "未知"),
+/**0- 静态*/
+ NET_EM_LXSJ_AREATYPE_STATIC_TYPE(0, "0- 静态"),
+/**1- 动态*/
+ NET_EM_LXSJ_AREATYPE_DYNAMIC_TYPE(1, "1- 动态");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+NET_EM_LXSJ_AREATYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (NET_EM_LXSJ_AREATYPE enumType : NET_EM_LXSJ_AREATYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (NET_EM_LXSJ_AREATYPE enumType : NET_EM_LXSJ_AREATYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static NET_EM_LXSJ_AREATYPE getEnum(int value) {
+ for (NET_EM_LXSJ_AREATYPE e :NET_EM_LXSJ_AREATYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_EM_LXSJ_AREATYPE.NET_EM_LXSJ_AREATYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_COLORTYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_COLORTYPE.java
new file mode 100644
index 0000000..7a380f3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_COLORTYPE.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+
+public enum NET_EM_LXSJ_COLORTYPE {
+/**未知*/
+ NET_EM_LXSJ_COLORTYPE_UNKNOWN(-1, "未知"),
+/**单色*/
+ NET_EM_LXSJ_COLORTYPE_SINGLE_COLOR(1, "单色"),
+/**双色*/
+ NET_EM_LXSJ_COLORTYPE_DOUBLE_COLOR(2, "双色"),
+/**三色*/
+ NET_EM_LXSJ_COLORTYPE_THREE_COLOR(3, "三色");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+NET_EM_LXSJ_COLORTYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (NET_EM_LXSJ_COLORTYPE enumType : NET_EM_LXSJ_COLORTYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (NET_EM_LXSJ_COLORTYPE enumType : NET_EM_LXSJ_COLORTYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static NET_EM_LXSJ_COLORTYPE getEnum(int value) {
+ for (NET_EM_LXSJ_COLORTYPE e : NET_EM_LXSJ_COLORTYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_EM_LXSJ_COLORTYPE.NET_EM_LXSJ_COLORTYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_DISPLAYTYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_DISPLAYTYPE.java
new file mode 100644
index 0000000..59c5298
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_DISPLAYTYPE.java
@@ -0,0 +1,54 @@
+package com.netsdk.lib.enumeration;
+
+
+public enum NET_EM_LXSJ_DISPLAYTYPE {
+/**未知*/
+ NET_EM_LXSJ_DISPLAYTYPE_UNKNOWN(-1, "未知"),
+/**0- 背景*/
+ NET_EM_LXSJ_DISPLAYTYPE_BACK_TYPE(0, "0- 背景"),
+/**1- 前景*/
+ NET_EM_LXSJ_DISPLAYTYPE_FRONT_TYPE(1, "1- 前景");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+NET_EM_LXSJ_DISPLAYTYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (NET_EM_LXSJ_DISPLAYTYPE enumType : NET_EM_LXSJ_DISPLAYTYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (NET_EM_LXSJ_DISPLAYTYPE enumType : NET_EM_LXSJ_DISPLAYTYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static NET_EM_LXSJ_DISPLAYTYPE getEnum(int value) {
+ for (NET_EM_LXSJ_DISPLAYTYPE e : NET_EM_LXSJ_DISPLAYTYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_EM_LXSJ_DISPLAYTYPE.NET_EM_LXSJ_DISPLAYTYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_ELEM_NAMETYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_ELEM_NAMETYPE.java
new file mode 100644
index 0000000..322aa89
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_ELEM_NAMETYPE.java
@@ -0,0 +1,62 @@
+package com.netsdk.lib.enumeration;
+
+
+public enum NET_EM_LXSJ_ELEM_NAMETYPE {
+/**未知*/
+ NET_EM_LXSJ_ELEM_NAMETYPE_UNKNOWN(-1, "未知"),
+/**0-分隔符*/
+ NET_EM_LXSJ_ELEM_NAMETYPE_SEPERATER(0, "0-分隔符"),
+/**1-换行符*/
+ NET_EM_LXSJ_ELEM_NAMETYPE_NEWLINE(1, "1-换行符"),
+/**2-车牌*/
+ NET_EM_LXSJ_ELEM_NAMETYPE_PLATE(2, "2-车牌"),
+/**3-违章信息*/
+ NET_EM_LXSJ_ELEM_NAMETYPE_VIOLATIONINFO(3, "3-违章信息"),
+/**4-速度*/
+ NET_EM_LXSJ_ELEM_NAMETYPE_SPEED(4, "4-速度"),
+/**5-自定义项*/
+ NET_EM_LXSJ_ELEM_NAMETYPE_CUSTOM(5, "5-自定义项");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+NET_EM_LXSJ_ELEM_NAMETYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (NET_EM_LXSJ_ELEM_NAMETYPE enumType : NET_EM_LXSJ_ELEM_NAMETYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (NET_EM_LXSJ_ELEM_NAMETYPE enumType : NET_EM_LXSJ_ELEM_NAMETYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static NET_EM_LXSJ_ELEM_NAMETYPE getEnum(int value) {
+ for (NET_EM_LXSJ_ELEM_NAMETYPE e : NET_EM_LXSJ_ELEM_NAMETYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_EM_LXSJ_ELEM_NAMETYPE.NET_EM_LXSJ_ELEM_NAMETYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_FONTCOLOR.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_FONTCOLOR.java
new file mode 100644
index 0000000..d213799
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_FONTCOLOR.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.enumeration;
+
+
+public enum NET_EM_LXSJ_FONTCOLOR {
+/**未知*/
+ NET_EM_LXSJ_FONTCOLOR_UNKNOWN(-1, "未知"),
+/**0-红灯、绿灯、蓝灯都不亮*/
+ NET_EM_LXSJ_FONTCOLOR_R0_G0_B0(0, "0-红灯、绿灯、蓝灯都不亮"),
+/**1-红灯亮、绿灯不亮、蓝灯不亮*/
+ NET_EM_LXSJ_FONTCOLOR_R1_G0_B0(1, "1-红灯亮、绿灯不亮、蓝灯不亮"),
+/**2-红灯不亮、绿灯亮、蓝灯不亮*/
+ NET_EM_LXSJ_FONTCOLOR_R0_G1_B0(2, "2-红灯不亮、绿灯亮、蓝灯不亮"),
+/**3-红灯亮、绿灯亮、蓝灯不亮*/
+ NET_EM_LXSJ_FONTCOLOR_R1_G1_B0(3, "3-红灯亮、绿灯亮、蓝灯不亮"),
+/**4-红灯不亮、绿灯不亮、蓝灯亮*/
+ NET_EM_LXSJ_FONTCOLOR_R0_G0_B1(4, "4-红灯不亮、绿灯不亮、蓝灯亮"),
+/**5-红灯亮、绿灯不亮、蓝灯亮*/
+ NET_EM_LXSJ_FONTCOLOR_R1_G0_B1(5, "5-红灯亮、绿灯不亮、蓝灯亮"),
+/**6-红灯不亮、绿灯亮、蓝灯不亮*/
+ NET_EM_LXSJ_FONTCOLOR_R0_G1_B1(6, "6-红灯不亮、绿灯亮、蓝灯不亮"),
+/**7-红灯、绿灯、蓝灯全亮*/
+ NET_EM_LXSJ_FONTCOLOR_R1_G1_B(7, "7-红灯、绿灯、蓝灯全亮");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+NET_EM_LXSJ_FONTCOLOR(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (NET_EM_LXSJ_FONTCOLOR enumType : NET_EM_LXSJ_FONTCOLOR.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (NET_EM_LXSJ_FONTCOLOR enumType : NET_EM_LXSJ_FONTCOLOR.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static NET_EM_LXSJ_FONTCOLOR getEnum(int value) {
+ for (NET_EM_LXSJ_FONTCOLOR e : NET_EM_LXSJ_FONTCOLOR.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_EM_LXSJ_FONTCOLOR.NET_EM_LXSJ_FONTCOLOR_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_FONTSIZE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_FONTSIZE.java
new file mode 100644
index 0000000..9d04eae
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_FONTSIZE.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 文字大小(字高宽点数)
+ */
+public enum NET_EM_LXSJ_FONTSIZE {
+/**未知*/
+ NET_EM_LXSJ_FONTSIZE_UNKNOWN(-1, "未知"),
+/**16点阵*/
+ NET_EM_LXSJ_FONTSIZE_16(16, "16点阵"),
+/**32点阵*/
+ NET_EM_LXSJ_FONTSIZE_32(32, "32点阵");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+NET_EM_LXSJ_FONTSIZE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (NET_EM_LXSJ_FONTSIZE enumType : NET_EM_LXSJ_FONTSIZE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (NET_EM_LXSJ_FONTSIZE enumType : NET_EM_LXSJ_FONTSIZE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static NET_EM_LXSJ_FONTSIZE getEnum(int value) {
+ for (NET_EM_LXSJ_FONTSIZE e : NET_EM_LXSJ_FONTSIZE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_EM_LXSJ_FONTSIZE.NET_EM_LXSJ_FONTSIZE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_SHOWMODE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_SHOWMODE.java
new file mode 100644
index 0000000..6ff70a3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_SHOWMODE.java
@@ -0,0 +1,70 @@
+package com.netsdk.lib.enumeration;
+
+
+public enum NET_EM_LXSJ_SHOWMODE {
+/**未知*/
+ NET_EM_LXSJ_SHOWMODE_UNKNOWN(-1, "未知"),
+/**立即显示*/
+ NET_EM_LXSJ_SHOWMODE_IMMEDIATELY(1, "立即显示"),
+/**向左移动*/
+ NET_EM_LXSJ_SHOWMODE_TO_LEFT(2, "向左移动"),
+/**向上移动*/
+ NET_EM_LXSJ_SHOWMODE_TO_TOP(3, "向上移动"),
+/**向右移动*/
+ NET_EM_LXSJ_SHOWMODE_TO_RIGHT(4, "向右移动"),
+/**向下移动*/
+ NET_EM_LXSJ_SHOWMODE_TO_BOTTOM(5, "向下移动"),
+/**闪烁*/
+ NET_EM_LXSJ_SHOWMODE_BLINK(6, "闪烁"),
+/**向上连移*/
+ NET_EM_LXSJ_SHOWMODE_TO_TOP_CONTINUOUS(94, "向上连移"),
+/**向下连移*/
+ NET_EM_LXSJ_SHOWMODE_TO_BOTTOM_CONTINUOUS(95, "向下连移"),
+/**向右连移*/
+ NET_EM_LXSJ_SHOWMODE_TO_RIGHT_CONTINUOUS(96, "向右连移"),
+/**向左连移*/
+ NET_EM_LXSJ_SHOWMODE_TO_LEFT_CONTINUOUS(97, "向左连移");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+NET_EM_LXSJ_SHOWMODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (NET_EM_LXSJ_SHOWMODE enumType : NET_EM_LXSJ_SHOWMODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (NET_EM_LXSJ_SHOWMODE enumType : NET_EM_LXSJ_SHOWMODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static NET_EM_LXSJ_SHOWMODE getEnum(int value) {
+ for (NET_EM_LXSJ_SHOWMODE e : NET_EM_LXSJ_SHOWMODE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_EM_LXSJ_SHOWMODE.NET_EM_LXSJ_SHOWMODE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_TRANSMODE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_TRANSMODE.java
new file mode 100644
index 0000000..1212412
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_LXSJ_TRANSMODE.java
@@ -0,0 +1,53 @@
+package com.netsdk.lib.enumeration;
+
+public enum NET_EM_LXSJ_TRANSMODE {
+ /**未知*/
+ NET_EM_LXSJ_TRANSMODE_UNKNOWN(-1, "未知"),
+ /**TCP方式*/
+ NET_EM_LXSJ_TRANSMODE_TCP(0, "TCP方式"),
+ /**UDP方式*/
+ NET_EM_LXSJ_TRANSMODE_UD(1, "UDP方式");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_EM_LXSJ_TRANSMODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_EM_LXSJ_TRANSMODE enumType : NET_EM_LXSJ_TRANSMODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_EM_LXSJ_TRANSMODE enumType : NET_EM_LXSJ_TRANSMODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static NET_EM_LXSJ_TRANSMODE getEnum(int value) {
+ for (NET_EM_LXSJ_TRANSMODE e : NET_EM_LXSJ_TRANSMODE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_EM_LXSJ_TRANSMODE.NET_EM_LXSJ_TRANSMODE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_MASK_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_MASK_TYPE.java
new file mode 100644
index 0000000..14f0048
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_MASK_TYPE.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.enumeration;/**
+ * @author 47081
+ * @descriptio
+ * @date 2020/11/9
+ * @version 1.0
+ */
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 遮挡块形状类型
+ * @date 2020/11/9
+ */
+public enum NET_EM_MASK_TYPE {
+ /**
+ * 未知
+ */
+ NET_EM_MASK_UNKNOWN,
+ /**
+ * 矩形
+ */
+ NET_EM_MASK_RECT,
+ /**
+ * 多边形
+ */
+ NET_EM_MASK_POLYGON;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_MOSAIC_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_MOSAIC_TYPE.java
new file mode 100644
index 0000000..5f78c37
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_MOSAIC_TYPE.java
@@ -0,0 +1,54 @@
+package com.netsdk.lib.enumeration;/**
+ * @author 47081
+ * @descriptio
+ * @date 2020/11/9
+ * @version 1.0
+ */
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 马赛克类型
+ * @date 2020/11/9
+ */
+public enum NET_EM_MOSAIC_TYPE {
+ NET_EM_MOSAIC_UNKNOWN(0, "未知"),
+ NET_EM_MOSAIC_8(8, "[8x8大小] 马赛克"),
+ NET_EM_MOSAIC_16(16, "[16x16大小] 马赛克"),
+ NET_EM_MOSAIC_24(24, "[24x24大小] 马赛克"),
+ NET_EM_MOSAIC_32(32, "[32x32大小] 马赛克");
+
+ private int type;
+ private String desc;
+
+ private NET_EM_MOSAIC_TYPE(int type, String desc) {
+ this.type = type;
+ this.desc = desc;
+ }
+
+ public int getType() {
+ return type;
+ }
+
+ public void setType(int type) {
+ this.type = type;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public void setDesc(String desc) {
+ this.desc = desc;
+ }
+
+ public static NET_EM_MOSAIC_TYPE getMosaicType(int type){
+ for (NET_EM_MOSAIC_TYPE mosaic:NET_EM_MOSAIC_TYPE.values()) {
+ if(type==mosaic.getType()){
+ return mosaic;
+ }
+ }
+ return null;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_OFFLINE_CALL_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_OFFLINE_CALL_TYPE.java
new file mode 100644
index 0000000..92921f0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_OFFLINE_CALL_TYPE.java
@@ -0,0 +1,44 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 平台呼出类型
+ * @date 2021/2/22
+ */
+public enum NET_EM_OFFLINE_CALL_TYPE {
+ /** 未知 */
+ NET_EM_OFFLINE_CALL_UNKNOWN(-1, "未知"),
+ /** 在线呼出 */
+ NET_EM_OFFLINE_CALL_ONLINECALL(0, "在线呼出"),
+ /** 断线呼出 */
+ NET_EM_OFFLINE_CALL_OFFLINECALL(1, "断线呼出"),
+ /** 其他 */
+ NET_EM_OFFLINE_CALL_NONE(255, "其他");
+
+ private int type;
+ private String desc;
+
+ NET_EM_OFFLINE_CALL_TYPE(int type, String desc) {
+ this.type = type;
+ this.desc = desc;
+ }
+
+ public int getType() {
+ return type;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public static NET_EM_OFFLINE_CALL_TYPE getOfflineCallType(int type) {
+ for (NET_EM_OFFLINE_CALL_TYPE offlineCall : NET_EM_OFFLINE_CALL_TYPE.values()) {
+ if (offlineCall.type == type) {
+ return offlineCall;
+ }
+ }
+ return NET_EM_OFFLINE_CALL_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_OVER_FLOW_STATE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_OVER_FLOW_STATE.java
new file mode 100644
index 0000000..b48293a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_OVER_FLOW_STATE.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author : 260611
+ * @description : 车辆排队长度溢出状态
+ * @since : Created in 2022/03/10 10:12
+ */
+
+public enum NET_EM_OVER_FLOW_STATE {
+ /**
+ * 状态未知
+ */
+ EM_OVER_FLOW_STATE_UNKNOWN(0, "状态未知"),
+ /**
+ * 未溢出
+ */
+ EM_OVER_FLOW_STATE_NOT_OVERFLOW(1, "未溢出"),
+ /**
+ * 溢出
+ */
+ EM_OVER_FLOW_STATE_OVERFLOW(2, "溢出");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_EM_OVER_FLOW_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_EM_OVER_FLOW_STATE enumType : NET_EM_OVER_FLOW_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_EM_OVER_FLOW_STATE enumType : NET_EM_OVER_FLOW_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static NET_EM_OVER_FLOW_STATE getEnum(int value) {
+ for (NET_EM_OVER_FLOW_STATE e : NET_EM_OVER_FLOW_STATE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_EM_OVER_FLOW_STATE.EM_OVER_FLOW_STATE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_POWER_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_POWER_TYPE.java
new file mode 100644
index 0000000..cb608f1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_POWER_TYPE.java
@@ -0,0 +1,69 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 供电类型
+* @date 2022/09/01 15:11:24
+*/
+public enum NET_EM_POWER_TYPE {
+/**
+未知
+*/
+ NET_EM_POWER_TYPE_UNKNOWN(-1, "未知"),
+/**
+电源适配器
+*/
+ NET_EM_POWER_TYPE_POWERADAPTER(0, "电源适配器"),
+/**
+电池
+*/
+ NET_EM_POWER_TYPE_BATTERY(1, "电池"),
+/**
+电池+电源适配器
+*/
+ NET_EM_POWER_TYPE_BATTERY_AND_POWERADAPTER(2, "电池+电源适配器");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+NET_EM_POWER_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (NET_EM_POWER_TYPE enumType : NET_EM_POWER_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (NET_EM_POWER_TYPE enumType : NET_EM_POWER_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static NET_EM_POWER_TYPE getEnum(int value) {
+ for (NET_EM_POWER_TYPE e : NET_EM_POWER_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_EM_POWER_TYPE.NET_EM_POWER_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_RADAR_RFIDCARD_ACTION.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_RADAR_RFIDCARD_ACTION.java
new file mode 100644
index 0000000..b97e0c3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_RADAR_RFIDCARD_ACTION.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author : 260611
+ * @description : 卡片行为
+ * @since : Created in 2022/02/11 15:37
+ */
+
+public enum NET_EM_RADAR_RFIDCARD_ACTION {
+ /**
+ * 未知
+ */
+ EM_RADAR_RFIDCARD_ACTION_UNKNOWN(0, "未知"),
+ /**
+ * 卡片离开
+ */
+ EM_RADAR_RFIDCARD_ACTION_LEAVE(1, "卡片离开"),
+ /**
+ * 卡片进入
+ */
+ EM_RADAR_RFIDCARD_ACTION_ENTER(2, "卡片进入");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_EM_RADAR_RFIDCARD_ACTION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_EM_RADAR_RFIDCARD_ACTION enumType : NET_EM_RADAR_RFIDCARD_ACTION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_EM_RADAR_RFIDCARD_ACTION enumType : NET_EM_RADAR_RFIDCARD_ACTION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static NET_EM_RADAR_RFIDCARD_ACTION getEnum(int value) {
+ for (NET_EM_RADAR_RFIDCARD_ACTION e : NET_EM_RADAR_RFIDCARD_ACTION.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_EM_RADAR_RFIDCARD_ACTION.EM_RADAR_RFIDCARD_ACTION_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_RECORD_MODE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_RECORD_MODE.java
new file mode 100644
index 0000000..c10ebf6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_RECORD_MODE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 录像模式
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 15:39
+ */
+public enum NET_EM_RECORD_MODE {
+ /**
+ * 未知
+ */
+ NET_EM_RECORD_MODE_UNKNOWN(0, "未知"),
+ /**
+ * 课程录像模式
+ */
+ NET_EM_RECORD_MODE_COURSE(1, "课程录像模式"),
+ /**
+ * 普通模式
+ */
+ NET_EM_RECORD_MODE_NORMAL(2, "普通模式");
+
+ private int value;
+ private String note;
+
+ NET_EM_RECORD_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_EM_RECORD_MODE enumType : NET_EM_RECORD_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_EM_RECORD_MODE enumType : NET_EM_RECORD_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static NET_EM_RECORD_MODE getEnum(int value) {
+ for (NET_EM_RECORD_MODE e : NET_EM_RECORD_MODE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_EM_RECORD_MODE.NET_EM_RECORD_MODE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_SCENEDETECTION_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_SCENEDETECTION_TYPE.java
new file mode 100644
index 0000000..de994f8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_SCENEDETECTION_TYPE.java
@@ -0,0 +1,39 @@
+package com.netsdk.lib.enumeration;
+/**
+ * @description 烟雾/火焰检测场景
+ * @author 119178
+ * @date 2021/3/11
+ */
+public enum NET_EM_SCENEDETECTION_TYPE {
+ /**
+ * 未知
+ */
+ NET_EM_SCENEDETECTION_UNKNOWN(0),
+ /**
+ * 室内场景
+ */
+ NET_EM_SCENEDETECTION_INDOORSCENE(1),
+ /**
+ * 室内场景
+ */
+ NET_EM_SCENEDETECTION_OUTDOORSCENE(2),
+ /**
+ * 交通隧道场景
+ */
+ NET_EM_SCENEDETECTION_TUNNEL(3),
+ /**
+ * 森林场景
+ */
+ NET_EM_SCENEDETECTION_FOREST(4);
+
+ private int id;
+
+ private NET_EM_SCENEDETECTION_TYPE(int id) {
+ this.id = id;
+ }
+
+ public int getId() {
+ return id;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_SCENE_MODE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_SCENE_MODE.java
new file mode 100644
index 0000000..4f95bf9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_SCENE_MODE.java
@@ -0,0 +1,80 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 布防的情景模式
+ * @date 2023/03/15 16:05:03
+ */
+public enum NET_EM_SCENE_MODE {
+ /**
+ * 未知模式
+ */
+ NET_EM_SCENE_MODE_UNKNOWN(0, "未知模式"),
+ /**
+ * 外出模式
+ */
+ NET_EM_SCENE_MODE_OUTDOOR(1, "外出模式"),
+ /**
+ * 在家模式
+ */
+ NET_EM_SCENE_MODE_INDOOR(2, "在家模式"),
+ /**
+ * 全局模式
+ */
+ NET_EM_SCENE_MODE_WHOLE(3, "全局模式"),
+ /**
+ * 立即模式
+ */
+ NET_EM_SCENE_MODE_RIGHTNOW(4, "立即模式"),
+ /**
+ * 自动模式
+ */
+ NET_EM_SCENE_MODE_AUTO(5, "自动模式"),
+ /**
+ * 强制模式
+ */
+ NET_EM_SCENE_MODE_FORCE(6, "强制模式"),
+ /**
+ * 自定义模式
+ */
+ NET_EM_SCENE_MODE_CUSTOM(7, "自定义模式"),
+ /**
+ * 就寝模式
+ */
+ NET_EM_SCENE_MODE_SLEEPING(8, "就寝模式");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_EM_SCENE_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_EM_SCENE_MODE enumType : NET_EM_SCENE_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_EM_SCENE_MODE enumType : NET_EM_SCENE_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_SCREEN_SHOW_CONTENTS.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_SCREEN_SHOW_CONTENTS.java
new file mode 100644
index 0000000..9d311aa
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_SCREEN_SHOW_CONTENTS.java
@@ -0,0 +1,112 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 逻辑屏显示内容
+ * @date 2022/05/10 10:39:28
+ */
+public enum NET_EM_SCREEN_SHOW_CONTENTS {
+ /**
+ * 未知
+ */
+ EM_TRAFFIC_LATTICE_SCREEN_UNKNOWN(0, "未知"),
+ /**
+ * 车牌
+ */
+ EM_TRAFFIC_LATTICE_SCREEN_PLATENUMBE(1, "车牌"),
+ /**
+ * 系统时间
+ */
+ EM_TRAFFIC_LATTICE_SCREEN_SYSTIME(2, "系统时间"),
+ /**
+ * 停车时长
+ */
+ EM_TRAFFIC_LATTICE_SCREEN_PARKTIME(3, "停车时长"),
+ /**
+ * 车主姓名
+ */
+ EM_TRAFFIC_LATTICE_SCREEN_MASTEROFCAR(4, "车主姓名"),
+ /**
+ * 用户类型
+ */
+ EM_TRAFFIC_LATTICE_SCREEN_USERTYPE(5, "用户类型"),
+ /**
+ * 到期天数
+ */
+ EM_TRAFFIC_LATTICE_SCREEN_REMAINDAY(6, "到期天数"),
+ /**
+ * 停车费
+ */
+ EM_TRAFFIC_LATTICE_SCREEN_PARKCHARGE(7, "停车费"),
+ /**
+ * 余位数
+ */
+ EM_TRAFFIC_LATTICE_SCREEN_REMAINSPACE(8, "余位数"),
+ /**
+ * 系统日期
+ */
+ EM_TRAFFIC_LATTICE_SCREEN_SYSDATE(9, "系统日期"),
+ /**
+ * 车辆通过指示灯(红圆绿圆组合指示灯)
+ */
+ EM_TRAFFIC_LATTICE_SCREEN_PASSICONCIRCLE(10, "车辆通过指示灯(红圆绿圆组合指示灯)"),
+ /**
+ * 车辆通过指示灯(红叉绿箭组合指示灯)
+ */
+ EM_TRAFFIC_LATTICE_SCREEN_PASSICONARROW(11, "车辆通过指示灯(红叉绿箭组合指示灯)"),
+ /**
+ * 入场时间
+ */
+ EM_TRAFFIC_LATTICE_SCREEN_INTIME(12, "入场时间"),
+ /**
+ * 出场时间
+ */
+ EM_TRAFFIC_LATTICE_SCREEN_OUTTIME(13, "出场时间"),
+ /**
+ * 备注信息
+ */
+ EM_TRAFFIC_LATTICE_SCREEN_REMARKS(14, "备注信息"),
+ /**
+ * 资源文件(视频或图片)
+ */
+ EM_TRAFFIC_LATTICE_SCREEN_RESOURCE(15, "资源文件(视频或图片)"),
+ /**
+ * 自定义信息
+ */
+ EM_TRAFFIC_LATTICE_SCREEN_CUSTOM(16, "自定义信息");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_EM_SCREEN_SHOW_CONTENTS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_EM_SCREEN_SHOW_CONTENTS enumType : NET_EM_SCREEN_SHOW_CONTENTS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_EM_SCREEN_SHOW_CONTENTS enumType : NET_EM_SCREEN_SHOW_CONTENTS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_SDK_LOCAL_CFG_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_SDK_LOCAL_CFG_TYPE.java
new file mode 100644
index 0000000..e7b3b3f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_SDK_LOCAL_CFG_TYPE.java
@@ -0,0 +1,22 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.structure.NET_CONFIG_OPENSSL_INFO;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description CLIENT_SetSDKLocalCfg/CLIENT_GetSDKLocalCfg 接口配置本地参数类型
+ * @date 2021/3/2
+ */
+public enum NET_EM_SDK_LOCAL_CFG_TYPE {
+ /**
+ * openssl库信息配置,对应结构体
+ * {@link NET_CONFIG_OPENSSL_INFO}
+ */
+ NET_SDK_LOCAL_CFG_TYPE_OPENSSL,
+ /**
+ * StreamConvertor转码库信息配置,对应结构体 NET_CONFIG_STREAMCONVERTOR_INFO
+ */
+ NET_SDK_LOCAL_CFG_TYPE_STREAMCONVERTOR;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_SET_ALARMREGION_INFO.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_SET_ALARMREGION_INFO.java
new file mode 100644
index 0000000..6d07e75
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_SET_ALARMREGION_INFO.java
@@ -0,0 +1,73 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.structure.*;
+
+/**
+ * @author 251823
+ * @description 设置的操作类型
+ * @date 2023/03/15 15:58:57
+ */
+public enum NET_EM_SET_ALARMREGION_INFO {
+ /**
+ * 未知
+ */
+ NET_EM_SET_ALARMREGION_INFO_UNKNOWN(0, "未知"),
+ /**
+ * 设置布防模式, 此时CLIENT_SetAlarmRegionInfo接口中的pstuInParam类型为{@link NET_IN_SET_ALARMMODE},
+ * pstuOutParam类型为{@link NET_OUT_SET_ALARMMODE}
+ */
+ NET_EM_SET_ALARMREGION_INFO_ARMMODE(1, "设置布防模式, 此时CLIENT_SetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_SET_ALARMMODE, pstuOutParam类型为NET_OUT_SET_ALARMMODE"),
+ /**
+ * 设置旁路模式, 此时CLIENT_SetAlarmRegionInfo接口中的pstuInParam类型为{@link NET_IN_SET_BYPASSMODE},
+ * pstuOutParam类型为{@link NET_OUT_SET_BYPASSMODE}
+ */
+ NET_EM_SET_ALARMREGION_INFO_BYPASSMODE(2, "设置旁路模式, 此时CLIENT_SetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_SET_BYPASSMODE, pstuOutParam类型为NET_OUT_SET_BYPASSMODE"),
+ /**
+ * 设置输出状态, 此时CLIENT_SetAlarmRegionInfo接口中的pstuInParam类型为{@link NET_IN_SET_OUTPUT_STATE},
+ * pstuOutParam类型为{@link NET_OUT_SET_OUTPUT_STATE}
+ */
+ NET_EM_SET_ALARMREGION_INFO_OUTPUTSTATE(3, "设置输出状态, 此时CLIENT_SetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_SET_OUTPUT_STATE, pstuOutParam类型为NET_OUT_SET_OUTPUT_STATE");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_EM_SET_ALARMREGION_INFO(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_EM_SET_ALARMREGION_INFO enumType : NET_EM_SET_ALARMREGION_INFO.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_EM_SET_ALARMREGION_INFO enumType : NET_EM_SET_ALARMREGION_INFO.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static NET_EM_SET_ALARMREGION_INFO getEnum(int value) {
+ for (NET_EM_SET_ALARMREGION_INFO e : NET_EM_SET_ALARMREGION_INFO.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_EM_SET_ALARMREGION_INFO.NET_EM_SET_ALARMREGION_INFO_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_SHAPE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_SHAPE_TYPE.java
new file mode 100644
index 0000000..04f5dc8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_SHAPE_TYPE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 景物形状
+ *
+ * @author : 47040
+ * @since : Created in 2020/10/26 16:01
+ */
+public enum NET_EM_SHAPE_TYPE {
+ /**
+ * 未知
+ */
+ NET_EM_SHAPE_TYPE_UNKNOWN(-1, "未知"),
+ /**
+ * 折线形
+ */
+ NET_EM_SHAPE_TYPE_MANSARD(0, "折线形"),
+ /**
+ * 扇形
+ */
+ NET_EM_SHAPE_TYPE_SECTOR(1, "扇形");
+
+ private int value;
+ private String note;
+
+ NET_EM_SHAPE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_EM_SHAPE_TYPE enumType : NET_EM_SHAPE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_EM_SHAPE_TYPE enumType : NET_EM_SHAPE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static NET_EM_SHAPE_TYPE getEnum(int value) {
+ for (NET_EM_SHAPE_TYPE e : NET_EM_SHAPE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_EM_SHAPE_TYPE.NET_EM_SHAPE_TYPE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_SIM_STATE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_SIM_STATE.java
new file mode 100644
index 0000000..b9393fa
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_SIM_STATE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description sim卡状态
+* @date 2022/08/31 14:35:19
+*/
+public enum NET_EM_SIM_STATE {
+/**
+未知
+*/
+ NET_EM_SIM_UNKNOWN(0, "未知"),
+/**
+在线
+*/
+ NET_EM_SIM_ONLINE(1, "在线"),
+/**
+离线
+*/
+ NET_EM_SIM_OFFLINE(2, "离线");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+NET_EM_SIM_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (NET_EM_SIM_STATE enumType : NET_EM_SIM_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (NET_EM_SIM_STATE enumType : NET_EM_SIM_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static NET_EM_SIM_STATE getEnum(int value) {
+ for (NET_EM_SIM_STATE e : NET_EM_SIM_STATE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_EM_SIM_STATE.NET_EM_SIM_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_STAFF_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_STAFF_TYPE.java
new file mode 100644
index 0000000..240d98d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_STAFF_TYPE.java
@@ -0,0 +1,36 @@
+package com.netsdk.lib.enumeration;
+/**
+ * @description 标尺信息
+ * @author 119178
+ * @date 2021/3/16
+ */
+public enum NET_EM_STAFF_TYPE {
+ NET_EM_STAFF_TYPE_ERR(0),
+ /**
+ * "Horizontal" 水平线段
+ */
+ NET_EM_STAFF_TYPE_HORIZONTAL(1),
+ /**
+ * "Vertical" 垂直线段
+ */
+ NET_EM_STAFF_TYPE_VERTICAL(2),
+ /**
+ * "Any" 任意线段
+ */
+ NET_EM_STAFF_TYPE_ANY(3),
+ /**
+ * "Cross" 垂直面交线段
+ */
+ NET_EM_STAFF_TYPE_CROSS(4);
+
+ private int id ;
+
+ private NET_EM_STAFF_TYPE(int id) {
+ this.id = id;
+ }
+
+ public int getId() {
+ return id;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_SWITCH_MODE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_SWITCH_MODE.java
new file mode 100644
index 0000000..d0703ee
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_SWITCH_MODE.java
@@ -0,0 +1,71 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 切换模式
+*/
+public enum NET_EM_SWITCH_MODE
+{
+ /**
+ * 不切换,总是使用白天配置
+ */
+ NET_EM_SWITCH_MODE_WIGHT(0, "不切换,总是使用白天配置"),
+ /**
+ * 根据亮度切换
+ */
+ NET_EM_SWITCH_MODE_LIGHT(1, "根据亮度切换"),
+ /**
+ * 根据时间切换
+ */
+ NET_EM_SWITCH_MODE_TIME(2, "根据时间切换"),
+ /**
+ * 不切换,总是使用夜晚配置
+ */
+ NET_EM_SWITCH_MODE_NIGHT(3, "不切换,总是使用夜晚配置"),
+ /**
+ * 使用普通配置
+ */
+ NET_EM_SWITCH_MODE_NORMAL(4, "使用普通配置"),
+ /**
+ * 按ICR(双滤光片切换器)的状态切换日夜
+ */
+ NET_EM_SWITCH_MODE_ICR(5, "按ICR(双滤光片切换器)的状态切换日夜"),
+ /**
+ * 多场景模式:按时间段关联光照条件切换图像场景
+ */
+ NET_EM_SWITCH_MODE_MULTISCENNE(6, "多场景模式:按时间段关联光照条件切换图像场景");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_EM_SWITCH_MODE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_EM_SWITCH_MODE enumType : NET_EM_SWITCH_MODE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_EM_SWITCH_MODE enumType : NET_EM_SWITCH_MODE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_TAMPER_STATE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_TAMPER_STATE.java
new file mode 100644
index 0000000..bd531aa
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_TAMPER_STATE.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 主机防拆状态
+* @date 2022/09/01 15:11:24
+*/
+public enum NET_EM_TAMPER_STATE {
+/**
+未知
+*/
+ NET_EM_TAMPER_UNKNOWN(-1, "未知"),
+/**
+未报警
+*/
+ NET_EM_TAMPER_NOALARM(0, "未报警"),
+/**
+报警中
+*/
+ NET_EM_TAMPER_ALARMING(1, "报警中");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+NET_EM_TAMPER_STATE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (NET_EM_TAMPER_STATE enumType : NET_EM_TAMPER_STATE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (NET_EM_TAMPER_STATE enumType : NET_EM_TAMPER_STATE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static NET_EM_TAMPER_STATE getEnum(int value) {
+ for (NET_EM_TAMPER_STATE e : NET_EM_TAMPER_STATE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_EM_TAMPER_STATE.NET_EM_TAMPER_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_VIDEO_COMPRESSION.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_VIDEO_COMPRESSION.java
new file mode 100644
index 0000000..e5c08ad
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_VIDEO_COMPRESSION.java
@@ -0,0 +1,64 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 视频压缩格式
+ *
+ * @author 47040
+ * @since Created at 2021/5/26 22:16
+ */
+public enum NET_EM_VIDEO_COMPRESSION {
+ EM_VIDEO_FORMAT_UNKNOWN(-1, "未知"),
+ EM_VIDEO_FORMAT_MPEG4(0, "MPEG4"),
+ EM_VIDEO_FORMAT_MS_MPEG4(1, "MS-MPEG4"),
+ EM_VIDEO_FORMAT_MPEG2(2, "MPEG2"),
+ EM_VIDEO_FORMAT_MPEG1(3, "MPEG1"),
+ EM_VIDEO_FORMAT_H263(4, "H.263"),
+ EM_VIDEO_FORMAT_MJPG(5, "MJPG"),
+ EM_VIDEO_FORMAT_FCC_MPEG4(6, "FCC-MPEG4"),
+ EM_VIDEO_FORMAT_H264(7, "H.264"),
+ EM_VIDEO_FORMAT_H265(8, "H.265"),
+ EM_VIDEO_FORMAT_SVAC(9, "SVAC");
+
+ private final int value;
+ private final String note;
+
+ NET_EM_VIDEO_COMPRESSION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_EM_VIDEO_COMPRESSION enumType : NET_EM_VIDEO_COMPRESSION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_EM_VIDEO_COMPRESSION enumType : NET_EM_VIDEO_COMPRESSION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static NET_EM_VIDEO_COMPRESSION getEnum(int value) {
+ for (NET_EM_VIDEO_COMPRESSION e : NET_EM_VIDEO_COMPRESSION.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_EM_VIDEO_COMPRESSION.EM_VIDEO_FORMAT_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_VS_DATA_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_VS_DATA_TYPE.java
new file mode 100644
index 0000000..1251fc9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_VS_DATA_TYPE.java
@@ -0,0 +1,48 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 数据类型
+ * @date 2022/10/28 11:06:44
+ */
+public enum NET_EM_VS_DATA_TYPE {
+ /**
+ * 数据是当前人数的横坐标
+ */
+ NET_EM_VS_DATA_TYPE_X(0, "数据是当前人数的横坐标");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_EM_VS_DATA_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_EM_VS_DATA_TYPE enumType : NET_EM_VS_DATA_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_EM_VS_DATA_TYPE enumType : NET_EM_VS_DATA_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EM_VS_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EM_VS_TYPE.java
new file mode 100644
index 0000000..5fd63b0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EM_VS_TYPE.java
@@ -0,0 +1,72 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 业务类型
+ * @date 2022/10/28 10:46:07
+ */
+public enum NET_EM_VS_TYPE {
+ /**
+ * 活跃度分析实时数据,对应 NET_VIDEOSTAT_SUMMARY_STEREO
+ */
+ NET_EM_VS_TYPE_ACTIVITY_ANALYSE(0, "活跃度分析实时数据,对应 NET_VIDEOSTAT_SUMMARY_STEREO"),
+ /**
+ * 人群分布图报表实时数据,对应 NET_VIDEOSTAT_CROWD_DISTRI_MAP
+ */
+ NET_EM_VS_TYPE_CROWD_DISTRI_MAP(1, "人群分布图报表实时数据,对应 NET_VIDEOSTAT_CROWD_DISTRI_MAP"),
+ /**
+ * 智能停车实时数据,对应 NET_VIDEOSTAT_SUMMARY_INTELLIPARKING
+ */
+ NET_EM_VS_TYPE_INTELLIG_PARKING(3, "智能停车实时数据,对应 NET_VIDEOSTAT_SUMMARY_INTELLIPARKING"),
+ /**
+ * 抬头检测周期上报数据, 对应 NET_VIDEOSTAT_SUMMARY_HEAD_LIFT_DETECTION
+ */
+ NET_EM_VS_TYPE_HEAD_LIFT_DETECTION(4, "抬头检测周期上报数据, 对应 NET_VIDEOSTAT_SUMMARY_HEAD_LIFT_DETECTION"),
+ /**
+ * 贮柜储量检测实时上报数据, 对应 NET_VIDEOSTAT_SUMMARY_TANK_CAPACITY_DETECTION
+ */
+ NET_EM_VS_TYPE_TANK_CAPACITY_DETECTION(5, "贮柜储量检测实时上报数据, 对应 NET_VIDEOSTAT_SUMMARY_TANK_CAPACITY_DETECTION"),
+ /**
+ * /// 到课率检测事件, 对应 NET_VIDEOSTAT_ATTENDANCE_RATE_DETECTION
+ */
+ NET_EM_VS_TYPE_ATTENDANCE_RATE_DETECTION(6, "/// 到课率检测事件, 对应 NET_VIDEOSTAT_ATTENDANCE_RATE_DETECTION"),
+ /**
+ * /// 就座率检测事件, 对应 NET_VIDEOSTAT_SEATING_RATE_DETECTION
+ */
+ NET_EM_VS_TYPE_SEATING_RATE_DETECTION(7, "/// 就座率检测事件, 对应 NET_VIDEOSTAT_SEATING_RATE_DETECTION");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_EM_VS_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_EM_VS_TYPE enumType : NET_EM_VS_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_EM_VS_TYPE enumType : NET_EM_VS_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_ENUM_INPUT_CHANNEL_MEDIA.java b/src/main/java/com/netsdk/lib/enumeration/NET_ENUM_INPUT_CHANNEL_MEDIA.java
new file mode 100644
index 0000000..4278745
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_ENUM_INPUT_CHANNEL_MEDIA.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 输入媒体介质
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 16:05
+ */
+public enum NET_ENUM_INPUT_CHANNEL_MEDIA {
+ /**
+ * 未知
+ */
+ NET_ENUM_INPUT_MEDIA_UNKNOWN(0, "未知"),
+ /**
+ * VGA
+ */
+ NET_ENUM_INPUT_MEDIA_VGA(1, "VGA"),
+ /**
+ * HDMI
+ */
+ NET_ENUM_INPUT_MEDIA_HDMI(2, "HDMI");
+
+ private int value;
+ private String note;
+
+ NET_ENUM_INPUT_CHANNEL_MEDIA(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_ENUM_INPUT_CHANNEL_MEDIA enumType : NET_ENUM_INPUT_CHANNEL_MEDIA.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_ENUM_INPUT_CHANNEL_MEDIA enumType : NET_ENUM_INPUT_CHANNEL_MEDIA.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static NET_ENUM_INPUT_CHANNEL_MEDIA getEnum(int value) {
+ for (NET_ENUM_INPUT_CHANNEL_MEDIA e : NET_ENUM_INPUT_CHANNEL_MEDIA.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_ENUM_INPUT_CHANNEL_MEDIA.NET_ENUM_INPUT_MEDIA_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EVENT_DEVICE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EVENT_DEVICE_TYPE.java
new file mode 100644
index 0000000..f379921
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EVENT_DEVICE_TYPE.java
@@ -0,0 +1,49 @@
+package com.netsdk.lib.enumeration;
+
+public enum NET_EVENT_DEVICE_TYPE {
+ NET_EVENT_DEVICE_TYPE_UNKOWN(0, "未知"),
+ NET_EVENT_DEVICE_TYPE_CARD(1, "卡片");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_EVENT_DEVICE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_EVENT_DEVICE_TYPE enumType : NET_EVENT_DEVICE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_EVENT_DEVICE_TYPE enumType : NET_EVENT_DEVICE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static NET_EVENT_DEVICE_TYPE getEnum(int value) {
+ for (NET_EVENT_DEVICE_TYPE e : NET_EVENT_DEVICE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_EVENT_DEVICE_TYPE.NET_EVENT_DEVICE_TYPE_UNKOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EVENT_OPERATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EVENT_OPERATE_TYPE.java
new file mode 100644
index 0000000..a0095d7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EVENT_OPERATE_TYPE.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+/**
+ * @author 291189
+ * @version 1.0
+ * @description 操作类型枚举
+ * @date 2022/7/19
+ */
+public enum NET_EVENT_OPERATE_TYPE {
+ NET_EVENT_OPERATE_TYPE_UNKOWN(0, "未知"),
+ NET_EVENT_OPERATE_TYPE_ADD(1, "增加"),
+ NET_EVENT_OPERATE_TYPE_DELETE(2, "删除"),
+ NET_EVENT_OPERATE_TYPE_MODIFY(3, "修改");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_EVENT_OPERATE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_EVENT_OPERATE_TYPE enumType : NET_EVENT_OPERATE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_EVENT_OPERATE_TYPE enumType : NET_EVENT_OPERATE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static NET_EVENT_OPERATE_TYPE getEnum(int value) {
+ for (NET_EVENT_OPERATE_TYPE e : NET_EVENT_OPERATE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_EVENT_OPERATE_TYPE.NET_EVENT_OPERATE_TYPE_UNKOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_EVENT_USER_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_EVENT_USER_TYPE.java
new file mode 100644
index 0000000..9ba2508
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_EVENT_USER_TYPE.java
@@ -0,0 +1,54 @@
+package com.netsdk.lib.enumeration;
+/**
+ * @author 291189
+ * @version 1.0
+ * @description 用户类型枚举
+ * @date 2022/7/19
+ */
+public enum NET_EVENT_USER_TYPE {
+ NET_EVENT_USER_TYPE_UNKOWN(0, "未知"),
+ NET_EVENT_USER_TYPE_KEYPAD(1, "键盘");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_EVENT_USER_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_EVENT_USER_TYPE enumType : NET_EVENT_USER_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_EVENT_USER_TYPE enumType : NET_EVENT_USER_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static NET_EVENT_USER_TYPE getEnum(int value) {
+ for (NET_EVENT_USER_TYPE e : NET_EVENT_USER_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_EVENT_USER_TYPE.NET_EVENT_USER_TYPE_UNKOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_FLOWSTAT_DIRECTION.java b/src/main/java/com/netsdk/lib/enumeration/NET_FLOWSTAT_DIRECTION.java
new file mode 100644
index 0000000..84a0276
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_FLOWSTAT_DIRECTION.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author : 260611
+ * @description : 车辆行驶方向
+ * @since : Created in 2022/03/10 10:12
+ */
+
+public enum NET_FLOWSTAT_DIRECTION {
+ /**
+ * 兼容之前
+ */
+ DRIVING_DIR_UNKNOW(0, "兼容之前"),
+ /**
+ * 上行,即车辆离设备部署点越来越近
+ */
+ DRIVING_DIR_APPROACH(1, "上行,即车辆离设备部署点越来越近"),
+ /**
+ * 下行,即车辆离设备部署点越来越远
+ */
+ DRIVING_DIR_LEAVE(2, "下行,即车辆离设备部署点越来越远");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_FLOWSTAT_DIRECTION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_FLOWSTAT_DIRECTION enumType : NET_FLOWSTAT_DIRECTION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_FLOWSTAT_DIRECTION enumType : NET_FLOWSTAT_DIRECTION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static NET_FLOWSTAT_DIRECTION getEnum(int value) {
+ for (NET_FLOWSTAT_DIRECTION e : NET_FLOWSTAT_DIRECTION.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_FLOWSTAT_DIRECTION.DRIVING_DIR_UNKNOW;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_MEDIA_CAP_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_MEDIA_CAP_TYPE.java
new file mode 100644
index 0000000..25653ac
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_MEDIA_CAP_TYPE.java
@@ -0,0 +1,47 @@
+package com.netsdk.lib.enumeration;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 媒体能力集类型
+*/
+public enum NET_MEDIA_CAP_TYPE
+{
+ /**
+ * 镜头传感器信息
+ */
+ NET_MEDIA_CAP_TYPE_SENSORINFO(0, "镜头传感器信息");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_MEDIA_CAP_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_MEDIA_CAP_TYPE enumType : NET_MEDIA_CAP_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_MEDIA_CAP_TYPE enumType : NET_MEDIA_CAP_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_MONITORWALL_OPERATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_MONITORWALL_OPERATE_TYPE.java
new file mode 100644
index 0000000..7a776b1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_MONITORWALL_OPERATE_TYPE.java
@@ -0,0 +1,113 @@
+package com.netsdk.lib.enumeration;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.structure.*;
+
+/**
+ * 电视墙操作类型
+ * 对应接口 {@link NetSDKLib#CLIENT_OperateMonitorWall}
+ *
+ * @author : 47040
+ * @since : Created in 2020/10/19 9:11
+ */
+public enum NET_MONITORWALL_OPERATE_TYPE {
+ /**
+ * 添加电视墙, 对应 NET_IN_MONITORWALL_ADD 和 NET_OUT_MONITORWALL_ADD
+ */
+ NET_MONITORWALL_OPERATE_ADD(0, "添加电视墙"),
+ /**
+ * 预案轮巡控制, 对应 NET_IN_CTRL_COLLECTIONTOUR 和 NET_OUT_CTRL_COLLECTIONTOUR
+ */
+ NET_MONITORWALL_OPERATE_CTRL_TOUR(1, "预案轮巡控制"),
+ /**
+ * 获取矩阵当前状态, 对应 NET_IN_MONITORWALL_GET_STATUS 和 NET_OUT_MONITORWALL_GET_STATUS
+ */
+ NET_MONITORWALL_OPERATE_GET_STATUS(2, "获取矩阵当前状态"),
+ /**
+ * 设置预案时间表, 对应
+ * {@link NET_IN_MONITORWALL_SET_COLL_SCHD} 和 {@link NET_OUT_MONITORWALL_SET_COLL_SCHD}
+ */
+ NET_MONITORWALL_OPERATE_SET_COLL_SCHD(3, "设置预案时间表"),
+ /**
+ * 获取预案时间表, 对应
+ * {@link NET_IN_MONITORWALL_GET_COLL_SCHD} 和 {@link NET_OUT_MONITORWALL_GET_COLL_SCHD}
+ */
+ NET_MONITORWALL_OPERATE_GET_COLL_SCHD(4, "获取预案时间表"),
+ /**
+ * 删除电视墙, 对应 NET_IN_MONITORWALL_REMOVE 和 NET_OUT_MONITORWALL_REMOVE
+ */
+ NET_MONITORWALL_OPERATE_REMOVE(5, "删除电视墙"),
+ /**
+ * 设置使能, 对应
+ * {@link NET_IN_MONITORWALL_SET_ENABLE} 和 {@link NET_OUT_MONITORWALL_SET_ENABLE}
+ */
+ NET_MONITORWALL_OPERATE_SET_ENABLE(6, "设置使能"),
+ /**
+ * 获取使能, 对应
+ * {@link NET_IN_MONITORWALL_GET_ENABLE} 和 {@link NET_OUT_MONITORWALL_GET_ENABLE}
+ */
+ NET_MONITORWALL_OPERATE_GET_ENABLE(7, "获取使能"),
+ /**
+ * 电视墙是否存在, 对应 NET_IN_MONITORWALL_NAME_EXIST 和 NET_OUT_MONITORWALL_NAME_EXIST
+ */
+ NET_MONITORWALL_OPERATE_NAME_EXIST(8, "电视墙是否存在"),
+ /**
+ * 修改电视墙名称, 对应 NET_IN_MONITORWALL_RENAME 和 NET_OUT_MONITORWALL_RENAME
+ */
+ NET_MONITORWALL_OPERATE_RENAME(9, "修改电视墙名称"),
+ /**
+ * 更新已上墙的视频源URL, 对应 NET_IN_MONITORWALL_UPDATE_SOURCE_URL 和 NET_OUT_MONITORWALL_UPDATE_SOURCE_URL
+ */
+ NET_MONITORWALL_OPERATE_UPDATE_SOURCE_URL(10, "更新已上墙的视频源URL"),
+ /**
+ * 获取电视墙锁定状态, 对应 NET_IN_MONITORWALL_GET_LOCK_STATUS 和 NET_OUT_MONITORWALL_GET_LOCK_STATUS
+ */
+ NET_MONITORWALL_OPERATE_GET_LOCK_STATUS(11, "获取电视墙锁定状态"),
+ /**
+ * 锁定电视墙(自由开窗的窗口不能再移动,防止用户误操作), 对应 NET_IN_MONITORWALL_LOCK 和 NET_OUT_MONITORWAL L_LOCK
+ */
+ NET_MONITORWALL_OPERATE_LOCK(12, "锁定电视墙");
+
+ private int value;
+ private String note;
+
+ NET_MONITORWALL_OPERATE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_MONITORWALL_OPERATE_TYPE enumType : NET_MONITORWALL_OPERATE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_MONITORWALL_OPERATE_TYPE enumType : NET_MONITORWALL_OPERATE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static NET_MONITORWALL_OPERATE_TYPE getEnum(int value) {
+ for (NET_MONITORWALL_OPERATE_TYPE e : NET_MONITORWALL_OPERATE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_MONITORWALL_OPERATE_TYPE.NET_MONITORWALL_OPERATE_GET_STATUS;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_NOTIFY_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_NOTIFY_TYPE.java
new file mode 100644
index 0000000..6f2c17b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_NOTIFY_TYPE.java
@@ -0,0 +1,60 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description 通知类型
+ * @date 2023/03/15 21:15:00
+ */
+public enum NET_NOTIFY_TYPE {
+ /**
+ * 未知
+ */
+ NET_NOTIFY_TYPE_UNKNOWN(0, "未知"),
+ /**
+ * 短信
+ */
+ NET_NOTIFY_TYPE_SMS(1, "短信"),
+ /**
+ * 电话
+ */
+ NET_NOTIFY_TYPE_CALL(2, "电话"),
+ /**
+ * 短信&电话
+ */
+ NET_NOTIFY_TYPE_ALL(3, "短信&电话");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_NOTIFY_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_NOTIFY_TYPE enumType : NET_NOTIFY_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_NOTIFY_TYPE enumType : NET_NOTIFY_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_RADIOMETRY_ALARMCONTION.java b/src/main/java/com/netsdk/lib/enumeration/NET_RADIOMETRY_ALARMCONTION.java
new file mode 100644
index 0000000..6e3851a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_RADIOMETRY_ALARMCONTION.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.enumeration;
+/**
+* @author 251823
+* @description 热成像测温点报警条件
+* @date 2022/06/07 14:08:52
+*/
+public enum NET_RADIOMETRY_ALARMCONTION {
+ /**
+ * 未知
+ */
+ NET_RADIOMETRY_ALARMCONTION_UNKNOWN(0, "未知"),
+ /**
+ * 小于
+ */
+ NET_RADIOMETRY_ALARMCONTION_BELOW(1, "小于"),
+ /**
+ * 等于
+ */
+ NET_RADIOMETRY_ALARMCONTION_MATCH(2, "等于"),
+ /**
+ * 大于
+ */
+ NET_RADIOMETRY_ALARMCONTION_ABOVE(3, "大于");
+
+ private int value;
+ private String note;
+
+ NET_RADIOMETRY_ALARMCONTION(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_RADIOMETRY_ALARMCONTION enumType : NET_RADIOMETRY_ALARMCONTION.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_RADIOMETRY_ALARMCONTION enumType : NET_RADIOMETRY_ALARMCONTION.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_RADIOMETRY_RESULT.java b/src/main/java/com/netsdk/lib/enumeration/NET_RADIOMETRY_RESULT.java
new file mode 100644
index 0000000..5d76253
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_RADIOMETRY_RESULT.java
@@ -0,0 +1,82 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 热成像测温点报警结果值类型
+ */
+public enum NET_RADIOMETRY_RESULT {
+ /**
+ * 未知
+ */
+ NET_RADIOMETRY_RESULT_UNKNOWN(0, "未知"),
+ /**
+ * 具体值
+ */
+ NET_RADIOMETRY_RESULT_VAL(1, "具体值"),
+ /**
+ * 最大
+ */
+ NET_RADIOMETRY_RESULT_MAX(2, "最大"),
+ /**
+ * 最小
+ */
+ NET_RADIOMETRY_RESULT_MIN(3, "最小"),
+ /**
+ * 平均
+ */
+ NET_RADIOMETRY_RESULT_AVR(4, "平均"),
+ /**
+ * 标准
+ */
+ NET_RADIOMETRY_RESULT_STD(5, "标准"),
+ /**
+ * 中间
+ */
+ NET_RADIOMETRY_RESULT_MID(6, "中间"),
+ /**
+ * ISO
+ */
+ NET_RADIOMETRY_RESULT_ISO(7, "ISO"),
+ /**
+ * 温差
+ */
+ NET_RADIOMETRY_RESULT_DIFF(8, "温差"),
+ /**
+ * 斜率
+ */
+ NET_RADIOMETRY_RESULT_SLOPE(9, "斜率");
+
+ private int value;
+ private String note;
+
+ NET_RADIOMETRY_RESULT(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_RADIOMETRY_RESULT enumType : NET_RADIOMETRY_RESULT.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_RADIOMETRY_RESULT enumType : NET_RADIOMETRY_RESULT.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_SENSE_METHOD.java b/src/main/java/com/netsdk/lib/enumeration/NET_SENSE_METHOD.java
new file mode 100644
index 0000000..16a1bfc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_SENSE_METHOD.java
@@ -0,0 +1,273 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 传感器感应方式枚举类型
+* @date 2022/08/31 14:44:16
+*/
+public enum NET_SENSE_METHOD {
+/**
+未知类型
+*/
+ NET_SENSE_UNKNOWN(-1, "未知类型"),
+/**
+门磁
+*/
+ NET_SENSE_DOOR(0, "门磁"),
+/**
+被动红外
+*/
+ NET_SENSE_PASSIVEINFRA(1, "被动红外"),
+/**
+气感
+*/
+ NET_SENSE_GAS(2, "气感"),
+/**
+烟感
+*/
+ NET_SENSE_SMOKING(3, "烟感"),
+/**
+水感
+*/
+ NET_SENSE_WATER(4, "水感"),
+/**
+主动红外
+*/
+ NET_SENSE_ACTIVEFRA(5, "主动红外"),
+/**
+玻璃破碎
+*/
+ NET_SENSE_GLASS(6, "玻璃破碎"),
+/**
+紧急开关
+*/
+ NET_SENSE_EMERGENCYSWITCH(7, "紧急开关"),
+/**
+震动
+*/
+ NET_SENSE_SHOCK(8, "震动"),
+/**
+双鉴(红外+微波)
+*/
+ NET_SENSE_DOUBLEMETHOD(9, "双鉴(红外+微波)"),
+/**
+三技术
+*/
+ NET_SENSE_THREEMETHOD(10, "三技术"),
+/**
+温度
+*/
+ NET_SENSE_TEMP(11, "温度"),
+/**
+湿度
+*/
+ NET_SENSE_HUMIDITY(12, "湿度"),
+/**
+风速
+*/
+ NET_SENSE_WIND(13, "风速"),
+/**
+呼叫按钮
+*/
+ NET_SENSE_CALLBUTTON(14, "呼叫按钮"),
+/**
+气体压力
+*/
+ NET_SENSE_GASPRESSURE(15, "气体压力"),
+/**
+燃气浓度
+*/
+ NET_SENSE_GASCONCENTRATION(16, "燃气浓度"),
+/**
+气体流量
+*/
+ NET_SENSE_GASFLOW(17, "气体流量"),
+/**
+其他
+*/
+ NET_SENSE_OTHER(18, "其他"),
+/**
+油量检测,汽油、柴油等车辆用油检测
+*/
+ NET_SENSE_OIL(19, "油量检测,汽油、柴油等车辆用油检测"),
+/**
+里程数检测
+*/
+ NET_SENSE_MILEAGE(20, "里程数检测"),
+/**
+紧急按钮
+*/
+ NET_SENSE_URGENCYBUTTON(21, "紧急按钮"),
+/**
+盗窃
+*/
+ NET_SENSE_STEAL(22, "盗窃"),
+/**
+周界
+*/
+ NET_SENSE_PERIMETER(23, "周界"),
+/**
+防拆
+*/
+ NET_SENSE_PREVENTREMOVE(24, "防拆"),
+/**
+门铃
+*/
+ NET_SENSE_DOORBELL(25, "门铃"),
+/**
+交流电压传感器
+*/
+ NET_SENSE_ALTERVOLT(26, "交流电压传感器"),
+/**
+直流电压传感器
+*/
+ NET_SENSE_DIRECTVOLT(27, "直流电压传感器"),
+/**
+交流电流传感器
+*/
+ NET_SENSE_ALTERCUR(28, "交流电流传感器"),
+/**
+直流电流传感器
+*/
+ NET_SENSE_DIRECTCUR(29, "直流电流传感器"),
+/**
+高新兴通用模拟量 4~20mA或0~5V
+*/
+ NET_SENSE_RSUGENERAL(30, "高新兴通用模拟量 4~20mA或0~5V"),
+/**
+高新兴门禁感应
+*/
+ NET_SENSE_RSUDOOR(31, "高新兴门禁感应"),
+/**
+高新兴断电感应
+*/
+ NET_SENSE_RSUPOWEROFF(32, "高新兴断电感应"),
+/**
+1500温度传感器
+*/
+ NET_SENSE_TEMP1500(33, "1500温度传感器"),
+/**
+DS18B20温度传感器
+*/
+ NET_SENSE_TEMPDS18B20(34, "DS18B20温度传感器"),
+/**
+1500湿度传感器
+*/
+ NET_SENSE_HUMIDITY1500(35, "1500湿度传感器"),
+/**
+红外报警
+*/
+ NET_SENSE_INFRARED(36, "红外报警"),
+/**
+火警
+*/
+ NET_SENSE_FIREALARM(37, "火警"),
+/**
+CO2浓度检测,典型值:0~5000ppm
+*/
+ NET_SENSE_CO2(38, "CO2浓度检测,典型值:0~5000ppm"),
+/**
+噪音检测,典型值:30~130dB
+*/
+ NET_SNESE_SOUND(39, "噪音检测,典型值:30~130dB"),
+/**
+PM2.5检测,典型值:0~1000ug/m3
+*/
+ NET_SENSE_PM25(40, "PM2.5检测,典型值:0~1000ug/m3"),
+/**
+SF6浓度检测,典型值:0~3000ppm
+*/
+ NET_SENSE_SF6(41, "SF6浓度检测,典型值:0~3000ppm"),
+/**
+臭氧浓度检测,典型值:0~100ppm
+*/
+ NET_SENSE_O3(42, "臭氧浓度检测,典型值:0~100ppm"),
+/**
+环境光照检测,典型值:0~20000Lux
+*/
+ NET_SENSE_AMBIENTLIGHT(43, "环境光照检测,典型值:0~20000Lux"),
+/**
+签入按钮
+*/
+ NET_SENSE_SIGNINBUTTON(44, "签入按钮"),
+/**
+液位
+*/
+ NET_SENSE_LIQUIDLEVEL(45, "液位"),
+/**
+测距
+*/
+ NET_SENSE_DISTANCE(46, "测距"),
+/**
+水流量
+*/
+ NET_SENSE_WATERFLOW(47, "水流量"),
+/**
+按键传感器
+*/
+ NET_SENSE_KEYPRESSS(48, "按键传感器"),
+/**
+SM7820B温湿度传感器
+*/
+ NET_SENSE_TEMP_AND_HUMI_SM7820B(49, "SM7820B温湿度传感器"),
+/**
+DSU666单相电子式电能表D
+*/
+ NET_SENSE_WATT_HUR_DDSU666(50, "DSU666单相电子式电能表D"),
+/**
+幕帘传感器
+*/
+ NET_SENSE_CURTAIN_SENSOR(51, "幕帘传感器"),
+/**
+机壳防拆
+*/
+ NET_SENSE_CASEPREVENTREMOVE(52, "机壳防拆"),
+/**
+枚举类型总数
+*/
+ NET_SENSE_NU(53, "枚举类型总数");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+NET_SENSE_METHOD(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (NET_SENSE_METHOD enumType : NET_SENSE_METHOD.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (NET_SENSE_METHOD enumType : NET_SENSE_METHOD.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -2;
+ }
+
+public static NET_SENSE_METHOD getEnum(int value) {
+ for (NET_SENSE_METHOD e : NET_SENSE_METHOD.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_SENSE_METHOD.NET_SENSE_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_SPLIT_OPERATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_SPLIT_OPERATE_TYPE.java
new file mode 100644
index 0000000..3e28835
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_SPLIT_OPERATE_TYPE.java
@@ -0,0 +1,168 @@
+package com.netsdk.lib.enumeration;
+
+
+import com.netsdk.lib.structure.NET_IN_SPLIT_SET_HIGHLIGHT;
+import com.netsdk.lib.structure.NET_OUT_SPLIT_SET_HIGHLIGHT;
+
+/**
+ * @author 260611
+ * @description 视频分割操作类型
+ * @date 2022/06/22 09:56:21
+ */
+public enum NET_SPLIT_OPERATE_TYPE {
+ /**
+ * 设置背景图片, 对应 NET_IN_SPLIT_SET_BACKGROUND 和 NET_OUT_SPLIT_SET_BACKBROUND
+ */
+ NET_SPLIT_OPERATE_SET_BACKGROUND(0, "设置背景图片, 对应 NET_IN_SPLIT_SET_BACKGROUND 和 NET_OUT_SPLIT_SET_BACKBROUND"),
+ /**
+ * 获取背景图片, 对应 NET_IN_SPLIT_GET_BACKGROUND 和 NET_OUT_SPLIT_GET_BACKGROUND
+ */
+ NET_SPLIT_OPERATE_GET_BACKGROUND(1, "获取背景图片, 对应 NET_IN_SPLIT_GET_BACKGROUND 和 NET_OUT_SPLIT_GET_BACKGROUND"),
+ /**
+ * 设置预拉流源, 对应 NET_IN_SPLIT_SET_PREPULLSRC 和 NET_OUT_SPLIT_SET_PREPULLSRC
+ */
+ NET_SPLIT_OPERATE_SET_PREPULLSRC(2, "设置预拉流源, 对应 NET_IN_SPLIT_SET_PREPULLSRC 和 NET_OUT_SPLIT_SET_PREPULLSRC"),
+ /**
+ * 设置源边框高亮使能开关, 对应 {@link NET_IN_SPLIT_SET_HIGHLIGHT} 和 {@link NET_OUT_SPLIT_SET_HIGHLIGHT}
+ */
+ NET_SPLIT_OPERATE_SET_HIGHLIGHT(3, "设置源边框高亮使能开关, 对应 NET_IN_SPLIT_SET_HIGHLIGHT 和 NET_OUT_SPLIT_SET_HIGHLIGHT"),
+ /**
+ * 调整窗口Z序, 对应 NET_IN_SPLIT_SET_ZORDER 和 NET_OUT_SPLIT_SET_ZORDER
+ */
+ NET_SPLIT_OPERATE_SET_ZORDER(4, "调整窗口Z序, 对应 NET_IN_SPLIT_SET_ZORDER 和 NET_OUT_SPLIT_SET_ZORDER"),
+ /**
+ * 窗口轮巡控制, 对应 NET_IN_SPLIT_SET_TOUR 和 NET_OUT_SPLIT_SET_TOUR
+ */
+ NET_SPLIT_OPERATE_SET_TOUR(5, "窗口轮巡控制, 对应 NET_IN_SPLIT_SET_TOUR 和 NET_OUT_SPLIT_SET_TOUR"),
+ /**
+ * 获取窗口轮巡状态, 对应 NET_IN_SPLIT_GET_TOUR_STATUS 和 NET_OUT_SPLIT_GET_TOUR_STATUS
+ */
+ NET_SPLIT_OPERATE_GET_TOUR_STATUS(6, "获取窗口轮巡状态, 对应 NET_IN_SPLIT_GET_TOUR_STATUS 和 NET_OUT_SPLIT_GET_TOUR_STATUS"),
+ /**
+ * 获取屏内窗口信息, 对应 NET_IN_SPLIT_GET_SCENE 和 NET_OUT_SPLIT_GET_SCENE
+ */
+ NET_SPLIT_OPERATE_GET_SCENE(7, "获取屏内窗口信息, 对应 NET_IN_SPLIT_GET_SCENE 和 NET_OUT_SPLIT_GET_SCENE"),
+ /**
+ * 批量开窗, 对应 NET_IN_SPLIT_OPEN_WINDOWS 和 NET_OUT_SPLIT_OPEN_WINDOWS
+ */
+ NET_SPLIT_OPERATE_OPEN_WINDOWS(8, "批量开窗, 对应 NET_IN_SPLIT_OPEN_WINDOWS 和 NET_OUT_SPLIT_OPEN_WINDOWS"),
+ /**
+ * 设置工作模式, 对应 NET_IN_SPLIT_SET_WORK_MODE 和 NET_OUT_SPLIT_SET_WORK_MODE
+ */
+ NET_SPLIT_OPERATE_SET_WORK_MODE(9, "设置工作模式, 对应 NET_IN_SPLIT_SET_WORK_MODE 和 NET_OUT_SPLIT_SET_WORK_MODE"),
+ /**
+ * 获取播放器实例,对应 NET_IN_SPLIT_GET_PLAYER 和 NET_OUT_SPLIT_GET_PLAYER
+ */
+ NET_SPLIT_OPERATE_GET_PLAYER(10, "获取播放器实例,对应 NET_IN_SPLIT_GET_PLAYER 和 NET_OUT_SPLIT_GET_PLAYER"),
+ /**
+ * 设置窗口工作模式,对应 NET_IN_WM_SET_WORK_MODE 和 NET_OUT_WM_SET_WORK_MODE
+ */
+ NET_WM_OPERATE_SET_WORK_MODE(11, "设置窗口工作模式,对应 NET_IN_WM_SET_WORK_MODE 和 NET_OUT_WM_SET_WORK_MODE"),
+ /**
+ * 获取窗口工作模式,对应 NET_IN_WM_GET_WORK_MODE 和 NET_OUT_WM_GET_WORK_MODE
+ */
+ NET_WM_OPERATE_GET_WORK_MODE(12, "获取窗口工作模式,对应 NET_IN_WM_GET_WORK_MODE 和 NET_OUT_WM_GET_WORK_MODE"),
+ /**
+ * 批量关窗, 对应 NET_IN_SPLIT_CLOSE_WINDOWS 和 NET_OUT_SPLIT_CLOSE_WINDOWS
+ */
+ NET_SPLIT_OPERATE_CLOSE_WINDOWS(13, "批量关窗, 对应 NET_IN_SPLIT_CLOSE_WINDOWS 和 NET_OUT_SPLIT_CLOSE_WINDOWS"),
+ /**
+ * 设置输出屏的鱼眼矫正规则 , 对应NET_IN_WM_SET_FISH_EYE_PARAM 和 NET_OUT_WM_SET_FISH_EYE_PARAM
+ */
+ NET_WM_OPERATE_SET_FISH_EYE_PARAM(14, "设置输出屏的鱼眼矫正规则 , 对应NET_IN_WM_SET_FISH_EYE_PARAM 和 NET_OUT_WM_SET_FISH_EYE_PARAM"),
+ /**
+ * 设置窗口走廊模式,对应NET_IN_WM_SET_CORRIDOR_MODE和NET_OUT_WM_SET_CORRIDOR_MODE
+ */
+ NET_WM_OPERATE_SET_CORRIDOR_MODE(15, "设置窗口走廊模式,对应NET_IN_WM_SET_CORRIDOR_MODE和NET_OUT_WM_SET_CORRIDOR_MODE"),
+ /**
+ * 获取窗口走廊模式,对应NET_IN_WM_GET_CORRIDOR_MODE和NET_OUT_WM_GET_CORRIDOR_MODE
+ */
+ NET_WM_OPERATE_GET_CORRIDOR_MODE(16, "获取窗口走廊模式,对应NET_IN_WM_GET_CORRIDOR_MODE和NET_OUT_WM_GET_CORRIDOR_MODE"),
+ /**
+ * 设置显示音量柱使能模式,对应NET_IN_WM_SET_VOLUME_COLUMN和NET_OUT_WM_SET_VOLUME_COLUMN
+ */
+ NET_WM_OPERATE_SET_VOLUME_COLUMN(17, "设置显示音量柱使能模式,对应NET_IN_WM_SET_VOLUME_COLUMN和NET_OUT_WM_SET_VOLUME_COLUMN"),
+ /**
+ * 获取显示音量柱使能模式,对应NET_IN_WM_GET_VOLUME_COLUMN和NET_OUT_WM_GET_VOLUME_COLUMN
+ */
+ NET_WM_OPERATE_GET_VOLUME_COLUMN(18, "获取显示音量柱使能模式,对应NET_IN_WM_GET_VOLUME_COLUMN和NET_OUT_WM_GET_VOLUME_COLUMN"),
+ /**
+ * 设置窗口背景图片,对应NET_IN_WM_SET_BACKGROUND和NET_OUT_WM_SET_BACKGROUND
+ */
+ NET_WM_OPERATE_SET_BACKGROUND(19, "设置窗口背景图片,对应NET_IN_WM_SET_BACKGROUND和NET_OUT_WM_SET_BACKGROUND"),
+ /**
+ * 获取窗口背景图片,对应NET_IN_WM_GET_BACKGROUND和NET_OUT_WM_GET_BACKGROUND
+ */
+ NET_WM_OPERATE_GET_BACKGROUND(20, "获取窗口背景图片,对应NET_IN_WM_GET_BACKGROUND和NET_OUT_WM_GET_BACKGROUND"),
+ /**
+ * 设置图像画面旋转模式,对应NET_IN_WM_SET_ROTATE_MODE和NET_OUT_WM_SET_ROTATE_MODE
+ */
+ NET_WM_OPERATE_SET_ROTATE_MODE(21, "设置图像画面旋转模式,对应NET_IN_WM_SET_ROTATE_MODE和NET_OUT_WM_SET_ROTATE_MODE"),
+ /**
+ * 设置视频源显示区域的模式,对应NET_IN_WM_SET_MEETING_MODE和NET_OUT_WM_SET_MEETING_MODE
+ */
+ NET_WM_OPERATE_SET_MEETING_MODE(22, "设置视频源显示区域的模式,对应NET_IN_WM_SET_MEETING_MODE和NET_OUT_WM_SET_MEETING_MODE"),
+ /**
+ * 设置锁定窗口当前位置,对应NET_IN_WM_SET_LOCK_POSITION和NET_OUT_WM_SET_LOCK_POSITION
+ */
+ NET_WM_OPERATE_SET_LOCK_POSITION(23, "设置锁定窗口当前位置,对应NET_IN_WM_SET_LOCK_POSITION和NET_OUT_WM_SET_LOCK_POSITION"),
+ /**
+ * 修改预案控制ID,对应NET_IN_WM_SET_COLLECTION_CTRL_ID和NET_OUT_WM_SET_COLLECTION_CTRL_ID
+ */
+ NET_WM_OPERATE_SET_COLLECTION_CTRL_ID(24, "修改预案控制ID,对应NET_IN_WM_SET_COLLECTION_CTRL_ID和NET_OUT_WM_SET_COLLECTION_CTRL_ID"),
+ /**
+ * 设置信号源属性,对应NET_IN_SPLIT_SET_SOURCE_ATTRIBUTE和NET_OUT_SPLIT_SET_SOURCE_ATTRIBUTE
+ */
+ NET_SPLIT_OPERATES_SET_SOURCE_ATTRIBUTE(25, "设置信号源属性,对应NET_IN_SPLIT_SET_SOURCE_ATTRIBUTE和NET_OUT_SPLIT_SET_SOURCE_ATTRIBUTE"),
+ /**
+ * 设置窗口粘附状态,对应NET_IN_SPLIT_SET_DOCK_CONTROL和NET_OUT_SPLIT_SET_DOCK_CONTROL
+ */
+ NET_SPLIT_OPERATES_SET_DOCK_CONTROL(26, "设置窗口粘附状态,对应NET_IN_SPLIT_SET_DOCK_CONTROL和NET_OUT_SPLIT_SET_DOCK_CONTROL"),
+ /**
+ * 设置窗口分割模式,对应NET_IN_WM_SET_MODE和NET_OUT_WM_SET_MODE
+ */
+ NET_WM_OPERATE_SET_MODE(27, "设置窗口分割模式,对应NET_IN_WM_SET_MODE和NET_OUT_WM_SET_MODE");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_SPLIT_OPERATE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_SPLIT_OPERATE_TYPE enumType : NET_SPLIT_OPERATE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_SPLIT_OPERATE_TYPE enumType : NET_SPLIT_OPERATE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static NET_SPLIT_OPERATE_TYPE getEnum(int value) {
+ for (NET_SPLIT_OPERATE_TYPE e : NET_SPLIT_OPERATE_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_SPLIT_OPERATE_TYPE.NET_SPLIT_OPERATE_SET_BACKGROUND;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_THREE_STATUS_BOOL.java b/src/main/java/com/netsdk/lib/enumeration/NET_THREE_STATUS_BOOL.java
new file mode 100644
index 0000000..438796d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_THREE_STATUS_BOOL.java
@@ -0,0 +1,67 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author 291189
+ * @description 三态布尔类型
+ * @origin autoTool
+ * @date 2023/09/06 16:00:01
+ */
+public enum NET_THREE_STATUS_BOOL {
+ /**
+ *
+ */
+ BOOL_STATUS_FALSE(0, "失败"),
+ /**
+ *
+ */
+ BOOL_STATUS_TRUE(1, "成功"),
+ /**
+ * 未知
+ */
+ BOOL_STATUS_UNKNOWN(2, "未知");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_THREE_STATUS_BOOL(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_THREE_STATUS_BOOL enumType : NET_THREE_STATUS_BOOL.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_THREE_STATUS_BOOL enumType : NET_THREE_STATUS_BOOL.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static NET_THREE_STATUS_BOOL getEnum(int value) {
+ for (NET_THREE_STATUS_BOOL e : NET_THREE_STATUS_BOOL.values()) {
+ if (e.getValue() == value) {
+ return e;
+ }
+ }
+ return NET_THREE_STATUS_BOOL.BOOL_STATUS_FALSE;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_TRAFFIC_JAM_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/NET_TRAFFIC_JAM_STATUS.java
new file mode 100644
index 0000000..958b7d7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_TRAFFIC_JAM_STATUS.java
@@ -0,0 +1,70 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author : 260611
+ * @description : 道路拥挤状况
+ * @since : Created in 2022/03/10 10:12
+ */
+
+public enum NET_TRAFFIC_JAM_STATUS {
+ /**
+ * 未知
+ */
+ JAM_STATUS_UNKNOW(0, "未知"),
+ /**
+ * 通畅
+ */
+ JAM_STATUS_CLEAR(1, "通畅"),
+ /**
+ * 拥堵
+ */
+ JAM_STATUS_JAMMED(2, "拥堵"),
+ /**
+ * 拥堵
+ */
+ JAM_STATUS_SLOWED(3, "拥堵");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_TRAFFIC_JAM_STATUS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_TRAFFIC_JAM_STATUS enumType : NET_TRAFFIC_JAM_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_TRAFFIC_JAM_STATUS enumType : NET_TRAFFIC_JAM_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static NET_TRAFFIC_JAM_STATUS getEnum(int value) {
+ for (NET_TRAFFIC_JAM_STATUS e : NET_TRAFFIC_JAM_STATUS.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_TRAFFIC_JAM_STATUS.JAM_STATUS_UNKNOW;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_TRAFFIC_LIGHT_STATUS.java b/src/main/java/com/netsdk/lib/enumeration/NET_TRAFFIC_LIGHT_STATUS.java
new file mode 100644
index 0000000..329e8b2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_TRAFFIC_LIGHT_STATUS.java
@@ -0,0 +1,61 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 信号灯指示状态
+ *
+ * @author : 47040
+ * @since : Created in 2020/8/29 17:02
+ */
+public enum NET_TRAFFIC_LIGHT_STATUS {
+ /**
+ * 未知
+ */
+ LIGHT_STATUS_UNKNOWN(0, "未知"),
+ /**
+ * 红灯
+ */
+ LIGHT_STATUS_RED(1, "红灯"),
+ /**
+ * 绿灯
+ */
+ LIGHT_STATUS_GREEN(2, "绿灯"),
+ /**
+ * 黄灯
+ */
+ LIGHT_STATUS_YELLOW(3, "黄灯");
+
+ private int value;
+ private String note;
+
+ NET_TRAFFIC_LIGHT_STATUS(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_TRAFFIC_LIGHT_STATUS enumType : NET_TRAFFIC_LIGHT_STATUS.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_TRAFFIC_LIGHT_STATUS enumType : NET_TRAFFIC_LIGHT_STATUS.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_TRAFFIC_ROAD_RANK.java b/src/main/java/com/netsdk/lib/enumeration/NET_TRAFFIC_ROAD_RANK.java
new file mode 100644
index 0000000..f21dbbe
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_TRAFFIC_ROAD_RANK.java
@@ -0,0 +1,74 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+ * @author : 260611
+ * @description : 道路等级
+ * @since : Created in 2022/03/10 10:12
+ */
+
+public enum NET_TRAFFIC_ROAD_RANK {
+ /**
+ *
+ */
+ ROAD_RANK_UNKNOWN(0, ""),
+ /**
+ * 快速路
+ */
+ ROAD_RANK_RAPID(1, "快速路"),
+ /**
+ * 主干路
+ */
+ ROAD_RANK_TRUNK(2, "主干路"),
+ /**
+ * 次干路
+ */
+ ROAD_RANK_SUBTRUNK(3, "次干路"),
+ /**
+ * 支路
+ */
+ ROAD_RANK_BRANCH(4, "支路");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_TRAFFIC_ROAD_RANK(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_TRAFFIC_ROAD_RANK enumType : NET_TRAFFIC_ROAD_RANK.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_TRAFFIC_ROAD_RANK enumType : NET_TRAFFIC_ROAD_RANK.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static NET_TRAFFIC_ROAD_RANK getEnum(int value) {
+ for (NET_TRAFFIC_ROAD_RANK e : NET_TRAFFIC_ROAD_RANK.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_TRAFFIC_ROAD_RANK.ROAD_RANK_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_VOLUME_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_VOLUME_TYPE.java
new file mode 100644
index 0000000..441e03f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_VOLUME_TYPE.java
@@ -0,0 +1,19 @@
+package com.netsdk.lib.enumeration;
+/**
+ * @author 251823
+ * @description 卷类型枚举
+ * @date 2022/05/30
+ */
+public class NET_VOLUME_TYPE {
+ public static final int VOLUME_TYPE_ALL = 0; //所有卷
+ public static final int VOLUME_TYPE_PHYSICAL = 1; //物理卷
+ public static final int VOLUME_TYPE_RAID = 2; //Raid卷
+ public static final int VOLUME_TYPE_VOLUME_GROUP = 3; //VG虚拟卷组
+ public static final int VOLUME_TYPE_ISCSI = 4; //iSCSI卷
+ public static final int VOLUME_TYPE_INVIDUAL_PHY = 5; //独立物理卷(这个物理盘,没有加入到, RAID,虚拟卷组等等组中)
+ public static final int VOLUME_TYPE_GLOBAL_SPARE = 6; //全局热备卷
+ public static final int VOLUME_TYPE_NAS = 7; //NAS盘(包括FTP, SAMBA, NFS)
+ public static final int VOLUME_TYPE_INVIDUAL_RAID = 8; //独立RAID卷(指没有加入到,虚拟卷组等组中)
+ public static final int VOLUME_TYPE_MAX = 9;
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_WIRELESSDEV_LOWPOWER_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_WIRELESSDEV_LOWPOWER_TYPE.java
new file mode 100644
index 0000000..1b6222f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_WIRELESSDEV_LOWPOWER_TYPE.java
@@ -0,0 +1,81 @@
+package com.netsdk.lib.enumeration;
+
+
+/**
+* @author 291189
+* @description 无线设备类型
+* @date 2022/07/19 10:21:10
+*/
+public enum NET_WIRELESSDEV_LOWPOWER_TYPE {
+/**
+未知设备
+*/
+ NET_WIRELESSDEV_UNKNOWN(0, "未知设备"),
+/**
+无线遥控器
+*/
+ NET_WIRELESSDEV_CONTROL(1, "无线遥控器"),
+/**
+无线防区
+*/
+ NET_WIRELESSDEV_DEFENCE(2, "无线防区"),
+/**
+无线键盘
+*/
+ NET_WIRELESSDEV_KEYBOARD(3, "无线键盘"),
+/**
+无线门磁 此字段协议上已废弃
+*/
+ NET_WIRELESSDEV_MAGNETOMER(4, "无线门磁 此字段协议上已废弃"),
+/**
+无线警号
+*/
+ NET_WIRELESSDEV_ALARMBELL(5, "无线警号"),
+/**
+智能锁
+*/
+ NET_WIRELESSDEV_SMARTLOCK(6, "智能锁");
+
+private int value;
+private String note;
+
+public String getNote() {
+ return note;
+ }
+
+public int getValue() {
+ return value;
+ }
+
+NET_WIRELESSDEV_LOWPOWER_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+public static String getNoteByValue(int givenValue) {
+ for (NET_WIRELESSDEV_LOWPOWER_TYPE enumType : NET_WIRELESSDEV_LOWPOWER_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+public static int getValueByNote(String givenNote) {
+ for (NET_WIRELESSDEV_LOWPOWER_TYPE enumType : NET_WIRELESSDEV_LOWPOWER_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+public static NET_WIRELESSDEV_LOWPOWER_TYPE getEnum(int value) {
+ for (NET_WIRELESSDEV_LOWPOWER_TYPE e : NET_WIRELESSDEV_LOWPOWER_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return NET_WIRELESSDEV_LOWPOWER_TYPE.NET_WIRELESSDEV_UNKNOWN;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/NET_WIRELESS_DEVICE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/NET_WIRELESS_DEVICE_TYPE.java
new file mode 100644
index 0000000..e49733b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/NET_WIRELESS_DEVICE_TYPE.java
@@ -0,0 +1,80 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * @author 251823
+ * @description Low Rate Wireless Personal Area Network 低速无线私域网 begin 无线设备类型
+ * @date 2023/03/16 14:52:52
+ */
+public enum NET_WIRELESS_DEVICE_TYPE {
+ /**
+
+ */
+ NET_WIRELESS_DEVICE_TYPE_UNKNOWN(0, ""),
+ /**
+ * 无线键盘
+ */
+ NET_WIRELESS_DEVICE_TYPE_KEYBOARD(1, "无线键盘"),
+ /**
+ * 无线防区
+ */
+ NET_WIRELESS_DEVICE_TYPE_DEFENCE(2, "无线防区"),
+ /**
+ * 无线遥控
+ */
+ NET_WIRELESS_DEVICE_TYPE_REMOTECONTROL(3, "无线遥控"),
+ /**
+ * 无线门磁
+ */
+ NET_WIRELESS_DEVICE_TYPE_MAGNETOMER(4, "无线门磁"),
+ /**
+ * 无线警号
+ */
+ NET_WIRELESS_DEVICE_TYPE_ALARMBELL(5, "无线警号"),
+ /**
+ * 无线插座
+ */
+ NET_WIRELESS_DEVICE_TYPE_SWITCHER(6, "无线插座"),
+ /**
+ * 无线智能锁
+ */
+ NET_WIRELESS_DEVICE_TYPE_SMARTLOCK(7, "无线智能锁"),
+ /**
+ * 无线中继器
+ */
+ NET_WIRELESS_DEVICE_TYPE_REPEATER(8, "无线中继器");
+
+ private int value;
+ private String note;
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ NET_WIRELESS_DEVICE_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (NET_WIRELESS_DEVICE_TYPE enumType : NET_WIRELESS_DEVICE_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (NET_WIRELESS_DEVICE_TYPE enumType : NET_WIRELESS_DEVICE_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/REC_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/REC_TYPE.java
new file mode 100644
index 0000000..a692b49
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/REC_TYPE.java
@@ -0,0 +1,57 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 录象类型(定时、动态检测、报警)
+ *
+ * @author 47040
+ * @since Created at 2021/5/25 23:00
+ */
+public enum REC_TYPE {
+ NET_REC_TYPE_TIM(0, "定时"),
+ NET_REC_TYPE_MTD(1, "动态"),
+ NET_REC_TYPE_ALM(2, "报警"),
+ NET_REC_TYPE_NUM(3, "数量");
+
+ private final int value;
+ private final String note;
+
+ REC_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (REC_TYPE enumType : REC_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (REC_TYPE enumType : REC_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static REC_TYPE getEnum(int value) {
+ for (REC_TYPE e : REC_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return REC_TYPE.NET_REC_TYPE_TIM;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/SNAP_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/SNAP_TYPE.java
new file mode 100644
index 0000000..1677b93
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/SNAP_TYPE.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 抓图类型
+ *
+ * @author 47040
+ * @since Created at 2021/5/25 23:07
+ */
+public enum SNAP_TYPE {
+ SNAP_TYP_TIMING(0, "定时"),
+ SNAP_TYP_ALARM(1, "报警"),
+ SNAP_TYP_NUM(2, "数量");
+
+ private final int value;
+ private final String note;
+
+ SNAP_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (SNAP_TYPE enumType : SNAP_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (SNAP_TYPE enumType : SNAP_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static SNAP_TYPE getEnum(int value) {
+ for (SNAP_TYPE e : SNAP_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return SNAP_TYPE.SNAP_TYP_TIMING;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/STREAM_RATE_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/STREAM_RATE_TYPE.java
new file mode 100644
index 0000000..9d59d32
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/STREAM_RATE_TYPE.java
@@ -0,0 +1,64 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 码流支持类型
+ *
+ * @author 47040
+ * @since Created at 2021/5/26 19:42
+ */
+public enum STREAM_RATE_TYPE {
+ RATE_10(10),
+ RATE_20(20),
+ RATE_32(32),
+ RATE_48(48),
+ RATE_64(64),
+ RATE_80(80),
+ RATE_96(96),
+ RATE_128(128),
+ RATE_160(160),
+ RATE_192(192),
+ RATE_224(224),
+ RATE_256(256),
+ RATE_320(320),
+ RATE_384(384),
+ RATE_448(448),
+ RATE_512(512),
+ RATE_640(640),
+ RATE_768(768),
+ RATE_896(896),
+ RATE_1024(1024),
+ RATE_1280(1280),
+ RATE_1536(1536),
+ RATE_1792(1792),
+ RATE_2048(2048),
+ RATE_3072(3072),
+ RATE_4096(4096),
+ RATE_6144(6144),
+ RATE_8192(8192),
+ RATE_10240(10240),
+ RATE_12288(12288),
+ RATE_14336(14336),
+ RATE_16384(16384),
+ RATE_18422(18432),
+ RATE_20480(20480),
+ RATE_22528(22528);
+
+ private final int rate;
+
+ STREAM_RATE_TYPE(int rate) {
+ this.rate = rate;
+ }
+
+ public int getRate() {
+ return rate;
+ }
+
+ public static STREAM_RATE_TYPE getEnum(int value) {
+ for (STREAM_RATE_TYPE e : STREAM_RATE_TYPE.values()) {
+ if (e.getRate() == value)
+ return e;
+ }
+ return STREAM_RATE_TYPE.RATE_512;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/enumeration/TALK_CODING_TYPE.java b/src/main/java/com/netsdk/lib/enumeration/TALK_CODING_TYPE.java
new file mode 100644
index 0000000..e626aad
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/enumeration/TALK_CODING_TYPE.java
@@ -0,0 +1,69 @@
+package com.netsdk.lib.enumeration;
+
+/**
+ * 语音编码类型
+ *
+ * @author 47040
+ * @since Created at 2021/5/26 10:25
+ */
+public enum TALK_CODING_TYPE {
+ NET_TALK_DEFAULT(0, "无头PCM"),
+ NET_TALK_PCM(1, "带头PCM"),
+ NET_TALK_G711a(2, "G711a"),
+ NET_TALK_AMR(3, "AMR"),
+ NET_TALK_G711u(4, "G711u"),
+ NET_TALK_G726(5, "G726"),
+ NET_TALK_G723_53(6, "G723_53"),
+ NET_TALK_G723_63(7, "G723_63"),
+ NET_TALK_AAC(8, "AAC"),
+ NET_TALK_OGG(9, "OGG"),
+ NET_TALK_G729(10, "G729"),
+ NET_TALK_MPEG2(11, "MPEG2"),
+ NET_TALK_MPEG2_Layer2(12, "MPEG2-Layer2"),
+ NET_TALK_G722_1(13, "G.722.1"),
+ NET_TALK_ADPCM(21, "ADPCM"),
+ NET_TALK_MP3(22, "MP3");
+
+ private final int value;
+ private final String note;
+
+ TALK_CODING_TYPE(int givenValue, String note) {
+ this.value = givenValue;
+ this.note = note;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public static String getNoteByValue(int givenValue) {
+ for (TALK_CODING_TYPE enumType : TALK_CODING_TYPE.values()) {
+ if (givenValue == enumType.getValue()) {
+ return enumType.getNote();
+ }
+ }
+ return null;
+ }
+
+ public static int getValueByNote(String givenNote) {
+ for (TALK_CODING_TYPE enumType : TALK_CODING_TYPE.values()) {
+ if (givenNote.equals(enumType.getNote())) {
+ return enumType.getValue();
+ }
+ }
+ return -1;
+ }
+
+ public static TALK_CODING_TYPE getEnum(int value) {
+ for (TALK_CODING_TYPE e : TALK_CODING_TYPE.values()) {
+ if (e.getValue() == value)
+ return e;
+ }
+ return TALK_CODING_TYPE.NET_TALK_DEFAULT;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_AREAALARM_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_AREAALARM_INFO.java
new file mode 100644
index 0000000..934af49
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_AREAALARM_INFO.java
@@ -0,0 +1,48 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 区域报警事件(对应事件 DH_ALARM_AREAALARM)
+* @date 2022/07/19 19:31:27
+*/
+public class ALARM_AREAALARM_INFO extends NetSDKLib.SdkStructure {
+/**
+区域号
+*/
+ public int nAreaIndex;
+/**
+事件ID
+*/
+ public int nEventID;
+/**
+事件发生的时间
+*/
+ public NET_TIME_EX UTC = new NET_TIME_EX();
+/**
+名称
+*/
+ public byte[] szName = new byte[128];
+/**
+防区类型 {@link com.netsdk.lib.enumeration.EM_DEFENCE_AREA_TYPE}
+*/
+ public int emDefenceAreaType;
+/**
+触发的通道号
+*/
+ public int nIndex;
+/**
+触发类型 {@link com.netsdk.lib.enumeration.EM_AREAALARM_TRIGGER_TYPE}
+*/
+ public int emTrigerType;
+/**
+保留扩展字节
+*/
+ public byte[] byReserved = new byte[1024];
+
+public ALARM_AREAALARM_INFO(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_AREAARM_MODECHANGE_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_AREAARM_MODECHANGE_INFO.java
new file mode 100644
index 0000000..cda6915
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_AREAARM_MODECHANGE_INFO.java
@@ -0,0 +1,49 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @description 区域防区模式改变事件(对应事件 DH_ALARM_AREAARM_MODECHANGE)
+ * @date 2022/07/19 10:09:08
+ */
+public class ALARM_AREAARM_MODECHANGE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 区域编号
+ */
+ public int nAreaIndex;
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 事件发生的时间
+ */
+ public NET_TIME_EX UTC = new NET_TIME_EX();
+ /**
+ * 操作方式 {@link com.netsdk.lib.enumeration.EM_AREAARM_TRIGGERMODE}
+ */
+ public int emTriggerMode;
+ /**
+ * 操作用户,仅emTriggerMode = EM_AREAARM_USER_USER时有效
+ * {@link com.netsdk.lib.enumeration.EM_AREAARM_USER}
+ */
+ public int emUser;
+ /**
+ * ID号,emTriggerMode = EM_AREAARM_TRIGGERMODE_KEYPAD 表示键盘地址;emTriggerMode
+ * =EM_AREAARM_TRIGGERMODE_REMOTECONTROL时表示遥控器编号
+ */
+ public int nID;
+ /**
+ * 布撤防状态 {@link com.netsdk.lib.enumeration.EM_ARM_STATE}
+ */
+ public int emArmState;
+ /**
+ * 保留扩展字节
+ */
+ public byte[] byReserved = new byte[1024];
+
+ public ALARM_AREAARM_MODECHANGE_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_ASGCLIMBOVER_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_ASGCLIMBOVER_INFO.java
new file mode 100644
index 0000000..eed17c2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_ASGCLIMBOVER_INFO.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 事件类型 DH_ALARM_ASGCLIMBOVER (闸机翻越报警事件) 对应的数据块描述信息
+*/
+public class ALARM_ASGCLIMBOVER_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 0:脉冲 1:开始 2:停止
+ */
+ public int nAction;
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 事件发生的时间,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME_EX}
+ */
+ public NetSDKLib.NET_TIME_EX UTC = new NetSDKLib.NET_TIME_EX();
+ /**
+ * 事件公共扩展字段结构体,参见结构体定义 {@link com.netsdk.lib.structure.NET_EVENT_INFO_EXTEND}
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * 预留字节
+ */
+ public byte[] byReserved = new byte[1020];
+
+ public ALARM_ASGCLIMBOVER_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_ASGFOLLOWING_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_ASGFOLLOWING_INFO.java
new file mode 100644
index 0000000..0c77ba4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_ASGFOLLOWING_INFO.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 事件类型 DH_ALARM_ASGFOLLOWING (闸机尾随报警事件) 对应的数据块描述信息
+*/
+public class ALARM_ASGFOLLOWING_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 0:脉冲 1:开始 2:停止
+ */
+ public int nAction;
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 事件发生的时间,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME_EX}
+ */
+ public NetSDKLib.NET_TIME_EX UTC = new NetSDKLib.NET_TIME_EX();
+ /**
+ * 事件公共扩展字段结构体,参见结构体定义 {@link com.netsdk.lib.structure.NET_EVENT_INFO_EXTEND}
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * 预留字节
+ */
+ public byte[] byReserved = new byte[1020];
+
+ public ALARM_ASGFOLLOWING_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_AUDIO_ANOMALY.java b/src/main/java/com/netsdk/lib/structure/ALARM_AUDIO_ANOMALY.java
new file mode 100644
index 0000000..9be18a0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_AUDIO_ANOMALY.java
@@ -0,0 +1,40 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @description 报警事件类型DH_ALARM_AUDIO_ANOMALY(音频异常事件)对应的数据描述信息
+ * @date 2022/06/20 17:39:31
+ */
+public class ALARM_AUDIO_ANOMALY extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwStructSize;
+ /**
+ * 事件动作, 0:Start, 1:Stop
+ */
+ public int dwAction;
+ /**
+ * 音频通道号
+ */
+ public int dwChannelID;
+ /**
+ * 声音强度
+ */
+ public int nDecibel;
+ /**
+ * 声音频率
+ */
+ public int nFrequency;
+ /**
+ * 事件公共扩展字段结构体
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+
+ public ALARM_AUDIO_ANOMALY() {
+ this.dwStructSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_BETWEENRULE_DIFFTEMPER_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_BETWEENRULE_DIFFTEMPER_INFO.java
new file mode 100644
index 0000000..c46b578
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_BETWEENRULE_DIFFTEMPER_INFO.java
@@ -0,0 +1,60 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 热成像规则间温差异常报警 (DH_ALARM_BETWEENRULE_TEMP_DIFF)
+ * @date 2023/05/24 10:24:56
+ */
+public class ALARM_BETWEENRULE_DIFFTEMPER_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 0:开始 1:停止
+ */
+ public int nAction;
+ /**
+ * 温差OSD配置中的OSD编号
+ */
+ public int nOsdId;
+ /**
+ * 视频通道号
+ */
+ public int nChannelID;
+ /**
+ * 报警条件 0:小于 1:等于 2:大于
+ * {@link com.netsdk.lib.enumeration.NET_RADIOMETRY_ALARMCONTION}
+ */
+ public int emAlarmContion;
+ /**
+ * 测温规则1,参考配置CFG_RADIOMETRY_RULE_INFO
+ */
+ public int nRuleId1;
+ /**
+ * 测温规则2,参考配置CFG_RADIOMETRY_RULE_INFO
+ */
+ public int nRuleId2;
+ /**
+ * 规则间温差值
+ */
+ public float fDiffValue;
+ /**
+ * 温度单位(当前配置的温度单位),见 NET_TEMPERATURE_UNIT
+ */
+ public int nTemperatureUnit;
+ /**
+ * 预置点
+ */
+ public int nPresetID;
+ /**
+ * 事件公共扩展字段结构体
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * 预留字段
+ */
+ public byte[] reserved = new byte[128];
+
+ public ALARM_BETWEENRULE_DIFFTEMPER_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_CITIZEN_PICTURE_COMPARE_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_CITIZEN_PICTURE_COMPARE_INFO.java
new file mode 100644
index 0000000..ddde09e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_CITIZEN_PICTURE_COMPARE_INFO.java
@@ -0,0 +1,121 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.EM_CITIZENIDCARD_SEX_TYPE;
+
+import static com.netsdk.lib.NetSDKLib.*;
+
+/**
+ * 普通报警事件 -> 人证比对事件
+ *
+ * @author : 47040
+ * @since : Created in 2020/8/27 10:58
+ */
+public class ALARM_CITIZEN_PICTURE_COMPARE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 事件发生的时间
+ */
+ public NET_TIME_EX stuTime;
+ /**
+ * 人证比对结果,相似度大于等于阈值认为比对成功,1 表示成功,0 表示失败
+ */
+ public int bCompareResult;
+ /**
+ * 两张图片的相似度,单位百分比,范围[1,100]
+ */
+ public byte nSimilarity;
+ /**
+ * 检测阈值,范围[1,100]
+ */
+ public byte nThreshold;
+ /**
+ * 字节对齐
+ */
+ public byte[] byReserved1 = new byte[2];
+ /**
+ * 性别 {@link EM_CITIZENIDCARD_SEX_TYPE}
+ */
+ public int emSex;
+ /**
+ * 民族(参照DEV_EVENT_ALARM_CITIZENIDCARD_INFO的 nECType 定义)
+ */
+ public int nECType;
+ /**
+ * 居民姓名
+ */
+ public byte[] szCitizen = new byte[NET_COMMON_STRING_64];
+ /**
+ * 住址
+ */
+ public byte[] szAddress = new byte[NET_COMMON_STRING_256];
+ /**
+ * 证件号
+ */
+ public byte[] szNumber = new byte[NET_COMMON_STRING_64];
+ /**
+ * 签发机关
+ */
+ public byte[] szAuthority = new byte[NET_COMMON_STRING_256];
+ /**
+ * 出生日期(年月日)
+ */
+ public NET_TIME stuBirth;
+ /**
+ * 有效期限起始日期(年月日)
+ */
+ public NET_TIME stuValidityStart;
+ /**
+ * 该值为 1, 表示长期有效,此时 stuValidityEnd 值无意义
+ * 该值为 0, 此时 截止日期 查看 stuValidityEnd 的值
+ */
+ public int bLongTimeValidFlag;
+ /**
+ * 有效期限结束日期(年月日) bLongTimeValidFlag 为 0 时有效
+ */
+ public NET_TIME stuValidityEnd;
+ /**
+ * IC卡号
+ */
+ public byte[] szCardNo = new byte[NET_COMMON_STRING_32];
+ /**
+ * 手机号(比对时先输入手机号)
+ */
+ public byte[] szCellPhone = new byte[NET_COMMON_STRING_32];
+ /**
+ * 事件类型:0:人证比对结果 1:人证人脸采集
+ */
+ public int nEventType;
+ /**
+ * 人证人脸采集时人员ID
+ */
+ public byte[] szUserID = new byte[32];
+ /**
+ * 人脸序号
+ */
+ public int nFaceIndex;
+ /**
+ * 口罩状态 {@link EM_MASK_STATE_TYPE}
+ */
+ public int emMask;
+ /**
+ * 人脸质量评分
+ */
+ public int nScore;
+ /**
+ * 物理证件号(证件序列号)
+ */
+ public byte[] szIDPhysicalNumber = new byte[20];
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[956];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_CITY_MOTORPARKING_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_CITY_MOTORPARKING_INFO.java
new file mode 100644
index 0000000..e3ee9f9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_CITY_MOTORPARKING_INFO.java
@@ -0,0 +1,106 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 城市机动车违停事件信息(对应 DH_ALARM_CITY_MOTORPARKING)
+*/
+public class ALARM_CITY_MOTORPARKING_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 事件动作: 0:脉冲 1:开始 2:停止
+ */
+ public int nAction;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double PTS;
+ /**
+ * 事件发生的时间,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME_EX}
+ */
+ public NetSDKLib.NET_TIME_EX UTC = new NetSDKLib.NET_TIME_EX();
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 智能事件所属大类,参见枚举定义 {@link com.netsdk.lib.NetSDKLib.EM_CLASS_TYPE}
+ */
+ public int emClassType;
+ /**
+ * 检测到的物体个数
+ */
+ public int nObjectNum;
+ /**
+ * 检测到的物体,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_MSG_OBJECT}
+ */
+ public NetSDKLib.NET_MSG_OBJECT[] stuObjects = new NetSDKLib.NET_MSG_OBJECT[64];
+ /**
+ * 事件触发的预置名称
+ */
+ public byte[] szPresetName = new byte[64];
+ /**
+ * 事件触发的预置点号
+ */
+ public int nPresetID;
+ /**
+ * 检测区域顶点数
+ */
+ public int nDetectRegionNum;
+ /**
+ * 检测区域,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_POINT}
+ */
+ public NetSDKLib.NET_POINT[] DetectRegion = new NetSDKLib.NET_POINT[20];
+ /**
+ * 事件关联ID,同一个物体或图片生成多个事件时SourceID相同
+ */
+ public byte[] szSourceID = new byte[32];
+ /**
+ * 违停持续时长,单位:秒 缺省值0表示无意义
+ */
+ public int nParkingDuration;
+ /**
+ * stuPtzPosition 是否有效
+ */
+ public int bPtzPosition;
+ /**
+ * 云台信息,参见结构体定义 {@link com.netsdk.lib.structure.PTZ_NORMALIZED_POSITION_UNIT}
+ */
+ public PTZ_NORMALIZED_POSITION_UNIT stuPtzPosition = new PTZ_NORMALIZED_POSITION_UNIT();
+ /**
+ * 车辆状态,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_CITYMOTOR_STATUS}
+ */
+ public int emMotorStatus;
+ /**
+ * 事件公共扩展字段结构体,参见结构体定义 {@link com.netsdk.lib.structure.NET_EVENT_INFO_EXTEND}
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * 检测区名称
+ */
+ public byte[] szDetectRegionName = new byte[128];
+ /**
+ * 检测区编号
+ */
+ public int nDetectRegionNumber;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[1896];
+
+ public ALARM_CITY_MOTORPARKING_INFO() {
+ for(int i = 0; i < stuObjects.length; i++){
+ stuObjects[i] = new NetSDKLib.NET_MSG_OBJECT();
+ }
+ for(int i = 0; i < DetectRegion.length; i++){
+ DetectRegion[i] = new NetSDKLib.NET_POINT();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_COLDSPOT_WARNING_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_COLDSPOT_WARNING_INFO.java
new file mode 100644
index 0000000..01bd3eb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_COLDSPOT_WARNING_INFO.java
@@ -0,0 +1,40 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * className:ALARM_COLDSPOT_WARNING_INFO
+ * description:
+ * author:251589
+ * createTime:2021/5/12 20:53
+ *
+ * @version v1.0
+ */
+
+public class ALARM_COLDSPOT_WARNING_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 0:开始 1:停止
+ */
+ public int nAction;
+ /**
+ * 视频通道号
+ */
+ public int nChannelID;
+ /**
+ * 冷点的坐标,坐标值 0~8192
+ */
+ public NetSDKLib.NET_POINT stuCoordinate;
+ /**
+ * 冷点温度值
+ */
+ public float fColdSpotValue;
+ /**
+ * 温度单位(当前配置的温度单位),见 NET_TEMPERATURE_UNIT
+ */
+ public int nTemperatureUnit;
+ /**
+ * 事件公共扩展字段结构体
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_ENCLOSURE_INFO_EX.java b/src/main/java/com/netsdk/lib/structure/ALARM_ENCLOSURE_INFO_EX.java
new file mode 100644
index 0000000..b7f3f0b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_ENCLOSURE_INFO_EX.java
@@ -0,0 +1,108 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 251823
+ * @description 电子围栏报警拓展结构体
+ * @date 2022/12/06 19:32:32
+ */
+public class ALARM_ENCLOSURE_INFO_EX extends NetSDKLib.SdkStructure {
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 1:开始 2:停止
+ */
+ public int nAction;
+ /**
+ * 事件发生的时间
+ */
+ public NET_TIME_EX stuUTC = new NET_TIME_EX();
+ /**
+ * 围栏报警类型 {@link com.netsdk.lib.enumeration.EM_ENCLOSURE_TYPE_EX}
+ */
+ public int emType;
+ /**
+ * 返回详细类型个数
+ */
+ public int nActionNum;
+ /**
+ * 详细类型,参考枚举{@link com.netsdk.lib.enumeration.EM_ENCLOSURE_ALARM_TYPE_EX}
+ */
+ public int[] emAction = new int[16];
+ /**
+ * 司机编号
+ */
+ public int nDriverNo;
+ /**
+ * 围栏编号
+ */
+ public int nEnclosureID;
+ /**
+ * 经度(单位是百万分之度,范围0-360度)如东经120.178274度表示为300178274
+ */
+ public int dwLongitude;
+ /**
+ * 纬度(单位是百万分之度,范围0-180度)如北纬30.183382度表示为120183382
+ */
+ public int dwLatidude;
+ /**
+ * 限制车速
+ */
+ public int nLimitSpeed;
+ /**
+ * 当前速度
+ */
+ public int nSpeed;
+ /**
+ * 设备ID
+ */
+ public byte[] szDeviceID = new byte[32];
+ /**
+ * 出发围栏编号
+ */
+ public int nStartEnclosureID;
+ /**
+ * 目的围栏编号
+ */
+ public int nEndEnclosureID;
+ /**
+ * 出发时间,本地时间
+ */
+ public NET_TIME_EX stuStartTime = new NET_TIME_EX();
+ /**
+ * 出发时间,本地时间
+ */
+ public NET_TIME_EX stuEndTime = new NET_TIME_EX();
+ /**
+ * 本趟行驶行驶里程数,单位0.1Km
+ */
+ public int nMileage;
+ /**
+ * 趟数
+ */
+ public int nTriggerCount;
+ /**
+ * 围栏类型扩展个数
+ */
+ public int nMultiTypeNum;
+ /**
+ * 围栏类型扩展
+ */
+ public byte[] szMultiType = new byte[16 * 32];
+ /**
+ * GPS信息, refer to {@link NET_GPS_STATUS_INFO}
+ */
+ public Pointer pstuGPSStatus;
+ /**
+ * 保留
+ */
+ public byte[] szReserved = new byte[508 - NetSDKLib.POINTERSIZE];
+
+ public ALARM_ENCLOSURE_INFO_EX() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_EVENT_FACE_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_EVENT_FACE_INFO.java
new file mode 100644
index 0000000..0197371
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_EVENT_FACE_INFO.java
@@ -0,0 +1,53 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 目标检测事件(对应事件 DH_EVENT_FACE_DETECTION)
+*/
+public class ALARM_EVENT_FACE_INFO extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double PTS;
+ /**
+ * 事件发生的时间,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME_EX}
+ */
+ public NetSDKLib.NET_TIME_EX UTC = new NetSDKLib.NET_TIME_EX();
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ */
+ public int nEventAction;
+ /**
+ * 目标个数
+ */
+ public int nFaceCount;
+ /**
+ * 目标信息,参见结构体定义 {@link com.netsdk.lib.structure.NET_EVENT_WHOLE_FACE_INFO}
+ */
+ public NET_EVENT_WHOLE_FACE_INFO[] stuFaces = new NET_EVENT_WHOLE_FACE_INFO[10];
+ /**
+ * 事件触发的预置点号, 从1开始
+ */
+ public int nPresetID;
+ /**
+ * 事件公共扩展字段结构体,参见结构体定义 {@link com.netsdk.lib.structure.NET_EVENT_INFO_EXTEND}
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+
+ public ALARM_EVENT_FACE_INFO() {
+ this.dwSize = this.size();
+ for(int i = 0; i < stuFaces.length; i++){
+ stuFaces[i] = new NET_EVENT_WHOLE_FACE_INFO();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_EVENT_LEFT_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_EVENT_LEFT_INFO.java
new file mode 100644
index 0000000..ba3ccc7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_EVENT_LEFT_INFO.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 421657
+ * @description 物品遗留事件(对应事件 DH_EVENT_LEFT_DETECTION)
+ * @origin autoTool
+ * @date 2023/09/22 16:17:45
+ */
+public class ALARM_EVENT_LEFT_INFO extends NetSDKLib.SdkStructure {
+ public int dwSize;
+ /**
+ * / 通道号
+ */
+ public int nChannelID;
+ /**
+ * / 时间戳(单位是毫秒)
+ */
+ public double PTS;
+ /**
+ * / 事件发生的时间
+ */
+ public NET_TIME_EX UTC = new NET_TIME_EX();
+ /**
+ * / 事件ID
+ */
+ public int nEventID;
+ /**
+ * / 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ */
+ public int nEventAction;
+ /**
+ * / 规则被触发生次数
+ */
+ public int nOccurrenceCount;
+ /**
+ * / 事件级别,GB30147需求项
+ */
+ public int nLevel;
+ /**
+ * / 事件触发的预置点号,从1开始(没有表示未知)
+ */
+ public short nPreserID;
+ /**
+ * / 事件触发的预置名称
+ */
+ public byte[] szPresetName = new byte[64];
+ /**
+ * / 事件公共扩展字段结构体
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+
+ public ALARM_EVENT_LEFT_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_FACE_FEATURE_ABSTRACT_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_FACE_FEATURE_ABSTRACT_INFO.java
new file mode 100644
index 0000000..c69b8a0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_FACE_FEATURE_ABSTRACT_INFO.java
@@ -0,0 +1,49 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+import java.util.Arrays;
+
+/**
+ * @author 260611
+ * @description 目标特征向量重建结果事件(对应事件DH_ALARM_FACE_FEATURE_ABSTRACT)
+ * @origin autoTool
+ * @date 2023/06/28 10:00:12
+ */
+public class ALARM_FACE_FEATURE_ABSTRACT_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 事件发生的时间
+ */
+ public NET_TIME_EX UTC = new NET_TIME_EX();
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double PTS;
+ /**
+ * 字节对齐
+ */
+ public byte[] byReserved1 = new byte[4];
+ /**
+ * 实际返回的目标特征向量重建结果个数
+ */
+ public int nRetAbstractInfo;
+ /**
+ * 目标特征向量重建结果
+ */
+ public FACE_FEATURE_ABSTRACT_INFO[] stuAbstractInfo = new FACE_FEATURE_ABSTRACT_INFO[100];
+ /**
+ * 保留扩展字节
+ */
+ public byte[] byReserved = new byte[512];
+
+ public ALARM_FACE_FEATURE_ABSTRACT_INFO() {
+ for (int i = 0; i < stuAbstractInfo.length; i++) {
+ stuAbstractInfo[i] = new FACE_FEATURE_ABSTRACT_INFO();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_FAN_SPEED.java b/src/main/java/com/netsdk/lib/structure/ALARM_FAN_SPEED.java
new file mode 100644
index 0000000..f2fb890
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_FAN_SPEED.java
@@ -0,0 +1,42 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 421657
+ * @description 风扇转速异常事件
+ * @origin autoTool
+ * @date 2023/11/27 20:28:07
+ */
+public class ALARM_FAN_SPEED extends NetSDKLib.SdkStructure {
+ public int dwSize;
+ /**
+ * / 0-开始, 1-停止
+ */
+ public int dwAction;
+ /**
+ * / 风扇序号
+ */
+ public int dwIndex;
+ /**
+ * / 传感器名称
+ */
+ public byte[] szName = new byte[64];
+ /**
+ * / 事件发生时间
+ */
+ public NET_TIME stuTime = new NET_TIME();
+ /**
+ * / 当前转速
+ */
+ public int dwCurrent;
+ /**
+ * / 事件公共扩展字段结构体
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+
+ public ALARM_FAN_SPEED() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_FIRE_DETECTION_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_FIRE_DETECTION_INFO.java
new file mode 100644
index 0000000..964b326
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_FIRE_DETECTION_INFO.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+/**
+ * @author 251823
+ * @description 火警事件 (DH_ALARM_FIRE_DETECTION)
+ * @date 2020/12/21
+ */
+
+import com.netsdk.lib.NetSDKLib;
+
+public class ALARM_FIRE_DETECTION_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 通道号
+ * */
+ public int nChannelID;
+ /**
+ * 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束
+ * */
+ public int nAction;
+ /**
+ * 事件发生的时间
+ * */
+ public NetSDKLib.NET_TIME_EX UTC;
+ /**
+ * 事件公共扩展字段结构体
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * 保留字节
+ * */
+ public byte[] byReserved = new byte[1024];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_GYROABNORMALATTITUDE_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_GYROABNORMALATTITUDE_INFO.java
new file mode 100644
index 0000000..38a4265
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_GYROABNORMALATTITUDE_INFO.java
@@ -0,0 +1,53 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 事件类型 NET_ALARM_GYROABNORMALATTITUDE
+* @origin autoTool
+* @date 2023/09/06 16:21:38
+*/
+public class ALARM_GYROABNORMALATTITUDE_INFO extends NetSDKLib.SdkStructure {
+/**
+事件动作,1表示持续性事件开始,2表示持续性事件结束;
+*/
+ public int nAction;
+/**
+通道号
+*/
+ public int nChannelID;
+/**
+时间戳(单位是毫秒)
+*/
+ public double dbPTS;
+/**
+事件发生时间
+*/
+ public NET_TIME_EX stuTime = new NET_TIME_EX();
+/**
+事件ID
+*/
+ public int nEventID;
+/**
+当前翻滚角,单位:度
+*/
+ public double dbGyroCurRoll;
+/**
+当前俯仰角,单位:度
+*/
+ public double dbGyroCurPitch;
+/**
+当前加速度,单位:m/s^2
+*/
+ public double dbGyroCurAccel;
+/**
+保留字段
+*/
+ public byte[] byReserved = new byte[1024];
+
+public ALARM_GYROABNORMALATTITUDE_INFO(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_HEATIMG_TEMPER_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_HEATIMG_TEMPER_INFO.java
new file mode 100644
index 0000000..4369e5b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_HEATIMG_TEMPER_INFO.java
@@ -0,0 +1,75 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.NET_RADIOMETRY_ALARMCONTION;
+import com.netsdk.lib.enumeration.NET_RADIOMETRY_RESULT;
+
+/**
+ * 热成像测温点温度异常报警事件(对应结构体 {@link NetSDKLib#NET_ALARM_HEATIMG_TEMPER})
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/12 16:46
+ */
+public class ALARM_HEATIMG_TEMPER_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 温度异常点名称 从测温规则配置项中选择
+ */
+ public byte[] szName = new byte[64];
+ /**
+ * 报警项编号
+ */
+ public int nAlarmId;
+ /**
+ * 报警结果值 fTemperatureValue 的类型,见枚举 {@link NET_RADIOMETRY_RESULT}
+ */
+ public int nResult;
+ /**
+ * 报警条件,见枚举 {@link NET_RADIOMETRY_ALARMCONTION}
+ */
+ public int nAlarmContion;
+ /**
+ * 报警温度值
+ */
+ public float fTemperatureValue;
+ /**
+ * 温度单位(当前配置的温度单位),见 {@link NetSDKLib.NET_TEMPERATURE_UNIT}
+ */
+ public int nTemperatureUnit;
+ /**
+ * 报警点的坐标 相对坐标体系,取值均为 0~8191
+ */
+ public NetSDKLib.NET_POINT stCoordinate;
+ /**
+ * 预置点
+ */
+ public int nPresetID;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+ /**
+ * 0:开始 1:停止 -1:无意义
+ */
+ public int nAction;
+ /**
+ * 报警坐标, 其类型可以是点,线或多边形。替换 stCoordinate字段
+ */
+ public NetSDKLib.NET_POLY_POINTS stuAlarmCoordinates;
+ /**
+ * 报警最高的温度值
+ */
+ public double dTemperatureMaxValue;
+ /**
+ * 报警最低的温度值
+ */
+ public double dTemperatureMinValue;
+ /**
+ * 事件公共扩展字段结构体
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * 保留字节
+ */
+ public byte[] reserved = new byte[140];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_HOTSPOT_WARNING_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_HOTSPOT_WARNING_INFO.java
new file mode 100644
index 0000000..c3c44da
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_HOTSPOT_WARNING_INFO.java
@@ -0,0 +1,40 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * className:ALARM_HOTSPOT_WARNING_INFO
+ * description:
+ * author:251589
+ * createTime:2021/5/12 20:52
+ *
+ * @version v1.0
+ */
+
+public class ALARM_HOTSPOT_WARNING_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 0:开始 1:停止
+ */
+ public int nAction;
+ /**
+ * 视频通道号
+ */
+ public int nChannelID;
+ /**
+ * 热点的坐标,坐标值 0~8192
+ */
+ public NetSDKLib.NET_POINT stuCoordinate;
+ /**
+ * 热点温度值
+ */
+ public float fHotSpotValue;
+ /**
+ * 温度单位(当前配置的温度单位),见 NET_TEMPERATURE_UNIT
+ */
+ public int nTemperatureUnit;
+ /**
+ * 事件公共扩展字段结构体
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_HUMIDITY_ALARM_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_HUMIDITY_ALARM_INFO.java
new file mode 100644
index 0000000..fa176de
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_HUMIDITY_ALARM_INFO.java
@@ -0,0 +1,57 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 湿度报警事件
+* @origin autoTool
+* @date 2023/12/05 16:13:52
+*/
+public class ALARM_HUMIDITY_ALARM_INFO extends NetSDKLib.SdkStructure {
+/**
+/ 通道号
+*/
+ public int nChannelID;
+/**
+/ 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
+*/
+ public int nAction;
+/**
+/ 时间戳(单位是毫秒)
+*/
+ public double dbPTS;
+/**
+/ 事件名称
+*/
+ public byte[] szName = new byte[128];
+/**
+/ 事件ID
+*/
+ public int nEventID;
+/**
+/ 事件发生时间
+*/
+ public NET_TIME_EX UTC = new NET_TIME_EX();
+/**
+/ 当前湿度值
+*/
+ public float fCurrentValue;
+/**
+/ 报警阈值
+*/
+ public float fLimitValue;
+/**
+/ GPS信息
+*/
+ public NET_GPS_STATUS_INFO stuGPSStatus = new NET_GPS_STATUS_INFO();
+/**
+/ 预留字节
+*/
+ public byte[] byReserved = new byte[1024];
+
+public ALARM_HUMIDITY_ALARM_INFO(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_HY_FIRE_CONTROL_DISMANTLE_FAULT_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_HY_FIRE_CONTROL_DISMANTLE_FAULT_INFO.java
new file mode 100644
index 0000000..74044a0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_HY_FIRE_CONTROL_DISMANTLE_FAULT_INFO.java
@@ -0,0 +1,60 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 消防设备拆除事件, 对应事件类型 DH_ALARM_HY_FIRE_CONTROL_DISMANTLE_FAULT
+*/
+public class ALARM_HY_FIRE_CONTROL_DISMANTLE_FAULT_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 通道号,从0开始
+ */
+ public int nChannelID;
+ /**
+ * 事件动作, 0表示脉冲事件, 1表示开始, 2表示结束, -1表示未知
+ */
+ public int nEventAction;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double dbPTS;
+ /**
+ * 事件发生的时间,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME_EX}
+ */
+ public NetSDKLib.NET_TIME_EX stuUTC = new NetSDKLib.NET_TIME_EX();
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 主机地址
+ */
+ public byte[] szAddress = new byte[256];
+ /**
+ * 主机序列号
+ */
+ public byte[] szSN = new byte[64];
+ /**
+ * 设备类型,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_HY_FIRE_CONTROL_DEVICE_TYPE}
+ */
+ public int emDeviceType;
+ /**
+ * 设备接收到事件的时间,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME_EX}
+ */
+ public NetSDKLib.NET_TIME_EX stuTime = new NetSDKLib.NET_TIME_EX();
+ /**
+ * 事件公共扩展字段结构体,参见结构体定义 {@link com.netsdk.lib.structure.NET_EVENT_INFO_EXTEND}
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[1024];
+
+ public ALARM_HY_FIRE_CONTROL_DISMANTLE_FAULT_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_IP_CONFLICT_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_IP_CONFLICT_INFO.java
new file mode 100644
index 0000000..cf272fa
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_IP_CONFLICT_INFO.java
@@ -0,0 +1,39 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description IP冲突事件
+* @origin autoTool
+* @date 2023/09/06 16:34:17
+*/
+public class ALARM_IP_CONFLICT_INFO extends NetSDKLib.SdkStructure {
+ public int dwSize;
+/**
+0:开始 1:停止
+*/
+ public int nAction;
+/**
+事件触发时间
+*/
+ public NET_TIME stuTime = new NET_TIME();
+/**
+IP冲突网卡名
+*/
+ public byte[] szInterface = new byte[8];
+/**
+主机Mac地址个数
+*/
+ public int nMacNum;
+/**
+与Interface网卡IP地址冲突的主机Mac地址列表
+*/
+ public byte[] szMac = new byte[8*18];
+
+public ALARM_IP_CONFLICT_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_KEYPAD_LOCK_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_KEYPAD_LOCK_INFO.java
new file mode 100644
index 0000000..e3262ee
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_KEYPAD_LOCK_INFO.java
@@ -0,0 +1,35 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 事件类型DH_ALARM_KEYPAD_LOCK (键盘锁定事件)对应的数据块描述信息
+ * @date 2023/03/09 20:13:06
+ */
+public class ALARM_KEYPAD_LOCK_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 事件动作,1表示持续性事件开始,2表示持续性事件结束;
+ */
+ public int nAction;
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 事件发生的时间
+ */
+ public NET_TIME_EX stuTime = new NET_TIME_EX();
+ /**
+ * 事件公共扩展字段结构体
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * 保留字节
+ */
+ public byte[] szReserved = new byte[1024];
+
+ public ALARM_KEYPAD_LOCK_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_KEYPAD_TAMPER_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_KEYPAD_TAMPER_INFO.java
new file mode 100644
index 0000000..0b16f0f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_KEYPAD_TAMPER_INFO.java
@@ -0,0 +1,36 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 事件类型DH_ALARM_KEYPAD_TAMPER (键盘防拆事件)对应的数据块描述信息
+ * @origin autoTool
+ * @date 2023/08/02 14:32:52
+ */
+public class ALARM_KEYPAD_TAMPER_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 事件动作,1表示持续性事件开始,2表示持续性事件结束;
+ */
+ public int nAction;
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 事件发生的时间
+ */
+ public NET_TIME_EX stuTime = new NET_TIME_EX();
+ /**
+ * 事件公共扩展字段结构体
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * 保留字节
+ */
+ public byte[] szReserved = new byte[1024];
+
+ public ALARM_KEYPAD_TAMPER_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_LOGIN_FAILIUR_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_LOGIN_FAILIUR_INFO.java
new file mode 100644
index 0000000..9fa5639
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_LOGIN_FAILIUR_INFO.java
@@ -0,0 +1,47 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 登陆失败事件
+* @origin autoTool
+* @date 2023/09/06 16:45:08
+*/
+public class ALARM_LOGIN_FAILIUR_INFO extends NetSDKLib.SdkStructure {
+ public int dwSize;
+/**
+0:开始 1:停止
+*/
+ public int nAction;
+/**
+序号
+*/
+ public int nSequence;
+/**
+事件名,填用户名称
+*/
+ public byte[] szName = new byte[128];
+/**
+登录类型
+*/
+ public byte[] szType = new byte[128];
+/**
+来源IP地址
+*/
+ public byte[] szAddr = new byte[128];
+/**
+用户登陆失败错误码
+*/
+ public int nError;
+/**
+事件公共扩展字段结构体
+*/
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+
+public ALARM_LOGIN_FAILIUR_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_MAN_NUM_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_MAN_NUM_INFO.java
new file mode 100644
index 0000000..91d41e1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_MAN_NUM_INFO.java
@@ -0,0 +1,72 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib.MAN_NUM_LIST_INFO;
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+/**
+ * @description 立体视觉区域内人数统计报警
+ * @author 119178
+ * @date 2021/3/18
+ */
+public class ALARM_MAN_NUM_INFO extends SdkStructure {
+ /**
+ * 通道号
+ */
+ public int nChannel;
+ /**
+ * 事件动作,1表示持续性事件开始,2表示持续性事件结束;
+ */
+ public int nAction;
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double dbPTS;
+ /**
+ * 事件发生的时间
+ */
+ public NET_TIME_EX stuTime;
+ /**
+ * 区域人员列表数量
+ */
+ public int nManListCount;
+ /**
+ * 区域内人员列表
+ */
+ public MAN_NUM_LIST_INFO[] stuManList = (MAN_NUM_LIST_INFO[]) new MAN_NUM_LIST_INFO().toArray(64);
+ /**
+ * 事件名称
+ */
+ public byte [] szName = new byte[128];
+ /**
+ * 变化前人数
+ */
+ public int nPrevNumber;
+ /**
+ * 当前人数
+ */
+ public int nCurrentNumber;
+ /**
+ * 规则名称
+ */
+ public byte [] szRuleName = new byte[128];
+ /**
+ * 实际触发报警的人数
+ */
+ public int nAlertNum;
+ /**
+ * 报警类型. 0:未知, 1:从人数正常到人数异常, 2:从人数异常到人数正常
+ */
+ public int nAlarmType;
+ /**
+ * 事件公共扩展字段结构体
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * 保留字节
+ */
+ public byte [] byReserved = new byte[752];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_MOTIONDETECT_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_MOTIONDETECT_INFO.java
new file mode 100644
index 0000000..83a1c29
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_MOTIONDETECT_INFO.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 报警事件类型DH_EVENT_MOTIONDETECT(视频移动侦测事件)对应的数据描述信息
+*/
+public class ALARM_MOTIONDETECT_INFO extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double PTS;
+ /**
+ * 事件发生的时间,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME_EX}
+ */
+ public NetSDKLib.NET_TIME_EX UTC = new NetSDKLib.NET_TIME_EX();
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ */
+ public int nEventAction;
+ /**
+ * 动检区域个数
+ */
+ public int nRegionNum;
+ /**
+ * 动检区域信息,参见结构体定义 {@link com.netsdk.lib.structure.NET_MOTIONDETECT_REGION_INFO}
+ */
+ public NET_MOTIONDETECT_REGION_INFO[] stuRegion = new NET_MOTIONDETECT_REGION_INFO[32];
+ /**
+ * 智能动检是否使能
+ */
+ public int bSmartMotionEnable;
+ /**
+ * 动检触发类型个数
+ */
+ public int nDetectTypeNum;
+ /**
+ * 动检触发类型, 当nRegionNum大于0时,和stuRegion数组一一对应, , 若nRegionNum为0,触发区域未知,不与窗口绑定,默认第一个元素表示触发类型,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_MOTION_DETECT_TYPE}
+ */
+ public int[] emDetectType = new int[32];
+ /**
+ * 事件公共扩展字段结构体,参见结构体定义 {@link com.netsdk.lib.structure.NET_EVENT_INFO_EXTEND}
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * GPS信息,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_GPS_STATUS_INFO}
+ */
+ public NetSDKLib.NET_GPS_STATUS_INFO stuGPSStatusInfo = new NetSDKLib.NET_GPS_STATUS_INFO();
+
+ public ALARM_MOTIONDETECT_INFO() {
+ this.dwSize = this.size();
+ for(int i = 0; i < stuRegion.length; i++){
+ stuRegion[i] = new NET_MOTIONDETECT_REGION_INFO();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_MOVE_DETECTION_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_MOVE_DETECTION_INFO.java
new file mode 100644
index 0000000..3282219
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_MOVE_DETECTION_INFO.java
@@ -0,0 +1,50 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * @author 421657
+ * @description 移动事件(对应事件DH_ALARM_MOVEDETECTION)
+ * @origin autoTool
+ * @date 2023/09/22 16:26:56
+ */
+public class ALARM_MOVE_DETECTION_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * / 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ */
+ public int nAction;
+ /**
+ * / 通道号
+ */
+ public int nChannelID;
+ /**
+ * / 时间戳(单位是毫秒)
+ */
+ public double dbPTS;
+ /**
+ * / 事件发生的时间
+ */
+ public NET_TIME_EX stuTime = new NET_TIME_EX();
+ /**
+ * / 事件ID
+ */
+ public int nEventID;
+ /**
+ * / 规则被触发的次数
+ */
+ public int nCount;
+ /**
+ * / 事件公共扩展字段结构体
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * /保留字节
+ */
+ public byte[] byReserved = new byte[1024];
+
+ public ALARM_MOVE_DETECTION_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_NONMOTOR_ENTRYING_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_NONMOTOR_ENTRYING_INFO.java
new file mode 100644
index 0000000..e6fbffc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_NONMOTOR_ENTRYING_INFO.java
@@ -0,0 +1,51 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 事件类型DH_ALARM_NONMOTOR_ENTRYING (非机动车进入电梯) 对应的数据块描述信息
+*/
+public class ALARM_NONMOTOR_ENTRYING_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
+ */
+ public int nAction;
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double dbPTS;
+ /**
+ * 事件发生的时间,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME_EX}
+ */
+ public NetSDKLib.NET_TIME_EX stuTime = new NetSDKLib.NET_TIME_EX();
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 视频帧序号
+ */
+ public int nSequence;
+ /**
+ * 目标个数
+ */
+ public int nObjectNum;
+ /**
+ * 非机动车目标,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.VA_OBJECT_NONMOTOR}
+ */
+ public NetSDKLib.VA_OBJECT_NONMOTOR[] stuObjects = new NetSDKLib.VA_OBJECT_NONMOTOR[8];
+ /**
+ * 预留字段
+ */
+ public byte[] byReserved = new byte[1024];
+
+ public ALARM_NONMOTOR_ENTRYING_INFO() {
+ for(int i = 0; i < stuObjects.length; i++){
+ stuObjects[i] = new NetSDKLib.VA_OBJECT_NONMOTOR();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_NO_DISK_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_NO_DISK_INFO.java
new file mode 100644
index 0000000..cb660d6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_NO_DISK_INFO.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 无硬盘报警
+ * @date 2020/9/9
+ */
+public class ALARM_NO_DISK_INFO extends NetSDKLib.SdkStructure {
+ public int dwSize;
+ /**
+ * 时间
+ */
+ public NET_TIME stuTime;
+ /**
+ * 事件动作, 0:Start, 1:Stop
+ */
+ public int dwAction;
+ /**
+ * 事件公共扩展字段结构体
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+
+ public ALARM_NO_DISK_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_POWER_GROUND_DETECTION_ABNORMAL_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_POWER_GROUND_DETECTION_ABNORMAL_INFO.java
new file mode 100644
index 0000000..e67208c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_POWER_GROUND_DETECTION_ABNORMAL_INFO.java
@@ -0,0 +1,40 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 事件类型DH_ALARM_POWER_GROUND_DETECTION_ABNORMAL (X光机接地异常检测事件) 对应的数据块描述信息
+*/
+public class ALARM_POWER_GROUND_DETECTION_ABNORMAL_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
+ */
+ public int nAction;
+ /**
+ * 事件发生的时间,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME_EX}
+ */
+ public NetSDKLib.NET_TIME_EX stuTime = new NetSDKLib.NET_TIME_EX();
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double dbPTS;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 预留字段
+ */
+ public byte[] szReserved = new byte[1024];
+
+ public ALARM_POWER_GROUND_DETECTION_ABNORMAL_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_PROFILE_ALARM_TRANSMIT_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_PROFILE_ALARM_TRANSMIT_INFO.java
new file mode 100644
index 0000000..b684b2c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_PROFILE_ALARM_TRANSMIT_INFO.java
@@ -0,0 +1,70 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 报警传输事件(对应结构体ALARM_PROFILE_ALARM_TRANSMIT_INFO)
+*/
+public class ALARM_PROFILE_ALARM_TRANSMIT_INFO extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 0:开始 1:停止
+ */
+ public int nAction;
+ /**
+ * 事件发生时间,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME}
+ */
+ public NetSDKLib.NET_TIME stuTime = new NetSDKLib.NET_TIME();
+ /**
+ * 传感器类型,参见枚举定义 {@link com.netsdk.lib.NetSDKLib.NET_SENSE_METHOD}
+ */
+ public int emSenseMethod;
+ /**
+ * 报警用户,用于区分
+ */
+ public byte[] szUserID = new byte[128];
+ /**
+ * 报警源设备的类型,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_ALARM_TRANSMIT_DEV_SRC_TYPE}
+ */
+ public int emDevSrcType;
+ /**
+ * 报警类型,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_ALARM_TRANSMIT_ALARM_TYPE}
+ */
+ public int emAlarmType;
+ /**
+ * RealUTC 是否有效,bRealUTC 为 TRUE 时,用 RealUTC,否则用 stuTime 字段
+ */
+ public int bRealUTC;
+ /**
+ * 事件发生的时间(标准UTC),参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME_EX}
+ */
+ public NetSDKLib.NET_TIME_EX RealUTC = new NetSDKLib.NET_TIME_EX();
+ /**
+ * 设备编号
+ */
+ public byte[] szSN = new byte[32];
+ /**
+ * 抓拍照片存储地址
+ */
+ public byte[] szSnapURL = new byte[128];
+ /**
+ * 事件公共扩展字段结构体,参见结构体定义 {@link com.netsdk.lib.structure.NET_EVENT_INFO_EXTEND}
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * 报警附带信息,参见结构体定义 {@link com.netsdk.lib.structure.NET_PROFILE_ALARM_INFO}
+ */
+ public NET_PROFILE_ALARM_INFO stuAlarmInfo = new NET_PROFILE_ALARM_INFO();
+ /**
+ * 预留字节
+ */
+ public byte[] szResvered = new byte[1024];
+
+ public ALARM_PROFILE_ALARM_TRANSMIT_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_RADAR_REGIONDETECTION_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_RADAR_REGIONDETECTION_INFO.java
new file mode 100644
index 0000000..a7f2b87
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_RADAR_REGIONDETECTION_INFO.java
@@ -0,0 +1,133 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 雷达区域检测事件(对应 DH_ALARM_RADAR_REGIONDETECTION)
+* @date 2022/09/01 20:26:50
+*/
+public class ALARM_RADAR_REGIONDETECTION_INFO extends NetSDKLib.SdkStructure {
+/**
+事件动作1:Start 2:Stop
+*/
+ public int nAction;
+/**
+事件发生的时间
+*/
+ public NET_TIME_EX stuTime = new NET_TIME_EX();
+/**
+通道号
+*/
+ public int nChannelID;
+/**
+检测到的对象个数
+*/
+ public int nObjectNum;
+/**
+雷达检测对象列表
+*/
+ public NET_RADAR_DETECT_OBJECT[] stuObjects = new NET_RADAR_DETECT_OBJECT[100];
+/**
+事件名称
+*/
+ public byte[] szName = new byte[128];
+/**
+事件触发的预置点号
+*/
+ public int nPresetID;
+/**
+检测区域顶点数
+*/
+ public int nDetectRegionNum;
+/**
+检测区域,[0,8191]
+*/
+ public NetSDKLib.NET_POINT[] stuDetectRegion = new NetSDKLib.NET_POINT[20];
+/**
+报警类型 {@link com.netsdk.lib.enumeration.EM_RADAR_ALARM_TYPE}
+*/
+ public int emAlarmType;
+/**
+经度,扩大1000000倍,小数点后6位有效,不足6位用0补齐,例如120125400代表120.1254
+*/
+ public int nLongitude;
+/**
+纬度,扩大1000000倍,小数点后6位有效,不足6位用0补齐,例如120125400代表120.1254
+*/
+ public int nLatitude;
+/**
+智能事件规则编号,用于表示哪个规则触发的事件。
+*/
+ public int nRuleID;
+/**
+RFID卡片数量
+*/
+ public int nCardNum;
+/**
+RFID卡片信息
+*/
+ public NET_RADAR_REGIONDETECTION_RFIDCARD_INFO[] stuCardInfo = new NET_RADAR_REGIONDETECTION_RFIDCARD_INFO[256];
+/**
+报警等级,0 表示未知, 1表示预警警告,2表示报警
+*/
+ public int nAlarmLevel;
+/**
+报警标志位,bit0表示是否超速,bit1表示是否AIS匹配 第2bit位表示是否禁行 第3bit位表示是否逆行
+*/
+ public int nAlarmFlag;
+/**
+报警输入通道号
+*/
+ public int nAlarmChannel;
+/**
+事件编号,用来唯一标志一个事件
+*/
+ public int nEventID;
+/**
+触发事件目标的速度,用整型传输,扩大100倍 单位m/s
+*/
+ public int nSpeed;
+/**
+触发事件目标的id,范围[0,63]
+*/
+ public int nTrackID;
+/**
+触发事件目标的类型的掩码: 0x00未识别目标 0x01目标为人 0x02目标为交通工具 0x03目标为树 0x04目标为建筑物 0x05目标为屏幕 0x06目标为动物 0x07目标为大船 0x08目标为中船 0x09目标为小船
+*/
+ public int nObjectType;
+/**
+车道/航道方向 -1:未知 0:无效 1:上行 2:下行
+*/
+ public int nUpDownGoing;
+/**
+事件公共扩展字段结构体
+*/
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+/**
+当前触发事件目标的像素极坐标值--距离,扩大100倍的结果,单位米
+*/
+ public int nDistance;
+/**
+当前触发事件目标的极坐标值--角度,扩大100倍的结果,单位度
+*/
+ public int nAngle;
+/**
+预留字节
+*/
+ public byte[] byReserved = new byte[992];
+
+public ALARM_RADAR_REGIONDETECTION_INFO(){
+ for(int i=0;i
+ * \else
+ * 事件类型 {@link SDK_ALARM_Ex_TYPE#SDK_ALARM_SOLARCELL_SYSTEM_INFO}(太阳能系统信息上报)
+ * \endif
+ * @date 2020/8/11
+ */
+public class ALARM_SOLARCELL_SYSTEM_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 0:脉冲
+ */
+ public int nAction;
+ /**
+ * 事件发生的时间
+ */
+ public NET_TIME_EX UTC;
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double PTS;
+ /**
+ * 蓄电池信息
+ */
+ public SOLARCELL_BATTERY_INFO stuBatteryInfo;
+ /**
+ * 太阳能板信息
+ */
+ public SOLARCELL_PANEL_INFO stuSolarPanel;
+ /**
+ * 历史数据信息
+ */
+ public SOLARCELL_SYSTEM_HISTORY_INFO stuHistoryInfo;
+ /**
+ * 系统故障,枚举值参考{@link EM_SOLARCELL_SYSTEM_FAULT_TYPE#getType()}
+ */
+ public int[] emSystemFault = new int[32];
+ /**
+ * 系统故障个数
+ */
+ public int nSystemFault;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[1020];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_STORAGE_IPC_FAILURE_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_STORAGE_IPC_FAILURE_INFO.java
new file mode 100644
index 0000000..acd840a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_STORAGE_IPC_FAILURE_INFO.java
@@ -0,0 +1,27 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * IPC的存储介质故障事件(SD卡异常) 报警
+ * {@link NetSDKLib#NET_ALARM_STORAGE_IPC_FAILURE}
+ *
+ * @author 47040
+ * @version 1.0.0
+ * @since Created in 2021/3/12 10:44
+ */
+public class ALARM_STORAGE_IPC_FAILURE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 0:开始 1:停止
+ */
+ public int nAction;
+ /**
+ * 发生报警的通道号
+ */
+ public int nChannelID;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[1024];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_STORAGE_LOW_SPACE_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_STORAGE_LOW_SPACE_INFO.java
new file mode 100644
index 0000000..4dbf3ff
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_STORAGE_LOW_SPACE_INFO.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 存储容量不足事件
+* @origin autoTool
+* @date 2023/09/06 15:55:03
+*/
+public class ALARM_STORAGE_LOW_SPACE_INFO extends NetSDKLib.SdkStructure {
+ public int dwSize;
+/**
+0:开始 1:停止
+*/
+ public int nAction;
+/**
+事件名称
+*/
+ public byte[] szName = new byte[128];
+/**
+存储设备名称
+*/
+ public byte[] szDevice = new byte[128];
+/**
+存储组名称
+*/
+ public byte[] szGroup = new byte[128];
+/**
+总容量, byte
+*/
+ public long nTotalSpace;
+/**
+剩余容量, byte
+*/
+ public long nFreeSpace;
+/**
+已经使用的百分比
+*/
+ public int nPercent;
+/**
+事件触发时间
+*/
+ public NET_TIME_EX stuTime = new NET_TIME_EX();
+/**
+GPS信息
+*/
+ public NET_GPS_STATUS_INFO stGPSStatus = new NET_GPS_STATUS_INFO();
+/**
+事件公共扩展字段结构体
+*/
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+
+public ALARM_STORAGE_LOW_SPACE_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_TAKENAWAY_DETECTION_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_TAKENAWAY_DETECTION_INFO.java
new file mode 100644
index 0000000..0d27d76
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_TAKENAWAY_DETECTION_INFO.java
@@ -0,0 +1,60 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * @author 421657
+ * @description 报警事件类型DH_EVENT_TAKENAWAYDETECTION(物品搬移事件)对应的数据描述信息
+ * @origin autoTool
+ * @date 2023/09/22 16:24:59
+ */
+public class ALARM_TAKENAWAY_DETECTION_INFO extends NetSDKLib.SdkStructure {
+ public int dwSize;
+ /**
+ * / 通道号
+ */
+ public int nChannelID;
+ /**
+ * / 时间戳(单位是毫秒)
+ */
+ public double PTS;
+ /**
+ * / 事件发生的时间
+ */
+ public NET_TIME_EX UTC = new NET_TIME_EX();
+ /**
+ * / 事件ID
+ */
+ public int nEventID;
+ /**
+ * / 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ */
+ public int nEventAction;
+ /**
+ * / 规则被触发生次数
+ */
+ public int nOccurrenceCount;
+ /**
+ * / 事件级别,GB30147需求项, 0 提示1 普通2 警告
+ */
+ public int nLevel;
+ /**
+ * / 事件触发的预置点号,从1开始(没有表示未知)
+ */
+ public short nPreserID;
+ /**
+ * / 事件触发的预置名称
+ */
+ public byte[] szPresetName = new byte[64];
+ /**
+ * / 事件公共扩展字段结构体
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+
+ public ALARM_TAKENAWAY_DETECTION_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_TALKING_CANCELCALL_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_TALKING_CANCELCALL_INFO.java
new file mode 100644
index 0000000..7b1ca57
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_TALKING_CANCELCALL_INFO.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 设备呼叫中取消呼叫事件(对应事件 DH_ALARM_TALKING_CANCELCALL)
+*/
+public class ALARM_TALKING_CANCELCALL_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 事件发生的时间,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME_EX}
+ */
+ public NetSDKLib.NET_TIME_EX stuTime = new NetSDKLib.NET_TIME_EX();
+ /**
+ * 呼叫ID
+ */
+ public byte[] szCallID = new byte[32];
+
+ public ALARM_TALKING_CANCELCALL_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_TALKING_HANGUP_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_TALKING_HANGUP_INFO.java
new file mode 100644
index 0000000..22c6f9a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_TALKING_HANGUP_INFO.java
@@ -0,0 +1,39 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 报警事件类型DH_ALARM_TALKING_HANGUP对应的数据描述信息
+* @origin autoTool
+* @date 2023/06/19 15:36:49
+*/
+public class ALARM_TALKING_HANGUP_INFO extends NetSDKLib.SdkStructure {
+ public int dwSize;
+/**
+事件触发时间
+*/
+ public NET_TIME stuTime = new NET_TIME();
+/**
+挂断的房间号
+*/
+ public byte[] szRoomNo = new byte[128];
+/**
+RealUTC 是否有效,bRealUTC 为 TRUE 时,用 RealUTC,否则用 stuTime 字段
+*/
+ public int bRealUTC;
+/**
+事件发生的时间(标准UTC)
+*/
+ public NET_TIME_EX RealUTC = new NET_TIME_EX();
+/**
+语音挂断发起方
+*/
+ public byte[] szCaller = new byte[32];
+
+public ALARM_TALKING_HANGUP_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFICSTROBESTATE_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFICSTROBESTATE_INFO.java
new file mode 100644
index 0000000..0983f1d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFICSTROBESTATE_INFO.java
@@ -0,0 +1,36 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 道闸栏状态事件(对应结构体 ALARM_TRAFFICSTROBESTATE_INFO)
+ * @date 2020/12/15
+ */
+public class ALARM_TRAFFICSTROBESTATE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束
+ */
+ public byte bEventAction;
+ /**
+ * 事件发生时间
+ */
+ public NET_TIME stuTime;
+ /**
+ * 视频通道号
+ */
+ public int nChannelID;
+ /**
+ * 道闸栏状态{ @link EM_TRAFFICSTROBE_STATUS}
+ */
+ public int emStatus;
+ /**
+ * 道闸开关闸原因{ @link EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE}
+ */
+ public int emStrobeActionReason;
+ /**
+ * 预留字段
+ */
+ public byte[] byReserved = new byte[1020];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_CAR_PASSING_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_CAR_PASSING_INFO.java
new file mode 100644
index 0000000..33781d7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_CAR_PASSING_INFO.java
@@ -0,0 +1,59 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 车辆进出虚拟线圈状态事件 (对应 DH_ALARM_TRAFFIC_CAR_PASSING)
+*/
+public class ALARM_TRAFFIC_CAR_PASSING_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 事件动作 0:脉冲
+ */
+ public int nAction;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 事件发生的时间,设备本地时间,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME_EX}
+ */
+ public NetSDKLib.NET_TIME_EX stuUTC = new NetSDKLib.NET_TIME_EX();
+ /**
+ * 事件发生时间,表示毫秒
+ */
+ public int nUTCMS;
+ /**
+ * 时区索引,参见时区列表DH_TIME_ZONE_TYPE
+ */
+ public int nTimeZone;
+ /**
+ * 视频分析帧序号
+ */
+ public int nFrameSequence;
+ /**
+ * 车辆进出个数
+ */
+ public int nCarPassingCount;
+ /**
+ * 车辆进出信息,参见结构体定义 {@link com.netsdk.lib.structure.NET_CAR_PASSING_INFO}
+ */
+ public NET_CAR_PASSING_INFO[] stuCarPassing = new NET_CAR_PASSING_INFO[16];
+ /**
+ * 保留字节
+ */
+ public byte[] szReserved = new byte[1024];
+
+ public ALARM_TRAFFIC_CAR_PASSING_INFO() {
+ for(int i = 0; i < stuCarPassing.length; i++){
+ stuCarPassing[i] = new NET_CAR_PASSING_INFO();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_FLOW_JUNTION_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_FLOW_JUNTION_INFO.java
new file mode 100644
index 0000000..c713672
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_FLOW_JUNTION_INFO.java
@@ -0,0 +1,68 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+import java.io.UnsupportedEncodingException;
+import java.util.Arrays;
+
+/**
+ * @author : 260611
+ * @description : 交通路口过车事件 (对应 DH_ALARM_TRAFFIC_FLOW_JUNTION)
+ * @since : Created in 2022/03/10 10:12
+ */
+
+public class ALARM_TRAFFIC_FLOW_JUNTION_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 事件动作 0:脉冲
+ */
+ public int nAction;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 事件发生的时间
+ */
+ public NET_TIME_EX stuUTC = new NET_TIME_EX();
+ /**
+ * 事件时间毫秒数
+ */
+ public int nUTCMS;
+ /**
+ * 表示抓拍序号 1表示抓拍正常结束 0表示抓拍异常结束
+ */
+ public int nSequence;
+ /**
+ * 区域路口过车信息
+ */
+ public TRAFFIC_FLOW_JUNTION_INFO stuFlowJunction = new TRAFFIC_FLOW_JUNTION_INFO();
+ /**
+ * 保留字节
+ */
+ public byte[] szReserverd = new byte[1024];
+
+ @Override
+ public String toString() {
+ try {
+ return "ALARM_TRAFFIC_FLOW_JUNTION_INFO{" +
+ "nAction=" + nAction +
+ ", nChannel=" + nChannel +
+ ", szName UTF-8=" + new String(szName,"UTF-8").trim() +
+ ", szName GBK=" + new String(szName,"GBK").trim() +
+ ", stuUTC=" + stuUTC +
+ ", nUTCMS=" + nUTCMS +
+ ", nSequence=" + nSequence +
+ ", stuFlowJunction=" + stuFlowJunction.toString() +
+ '}';
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_FLOW_QUEUE_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_FLOW_QUEUE_INFO.java
new file mode 100644
index 0000000..cb570a9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_FLOW_QUEUE_INFO.java
@@ -0,0 +1,68 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+import java.io.UnsupportedEncodingException;
+import java.util.Arrays;
+
+/**
+ * @author : 260611
+ * @description : 交通路口排队事件 (对应 DH_ALARM_TRAFFIC_FLOW_QUEUE)
+ * @since : Created in 2022/03/10 10:12
+ */
+
+public class ALARM_TRAFFIC_FLOW_QUEUE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 事件动作 0:脉冲
+ */
+ public int nAction;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 事件发生的时间
+ */
+ public NET_TIME_EX stuUTC = new NET_TIME_EX();
+ /**
+ * 事件时间毫秒数
+ */
+ public int nUTCMS;
+ /**
+ * 表示抓拍序号 1表示抓拍正常结束 0表示抓拍异常结束
+ */
+ public int nSequence;
+ /**
+ * 区域路口排队信息
+ */
+ public TRAFFIC_FLOW_QUEUE_INFO stuFlowQueueInfo = new TRAFFIC_FLOW_QUEUE_INFO();
+ /**
+ * 保留字节
+ */
+ public byte[] szReserverd = new byte[1024];
+
+ @Override
+ public String toString() {
+ try {
+ return "ALARM_TRAFFIC_FLOW_QUEUE_INFO{" +
+ "nAction=" + nAction +
+ ", nChannel=" + nChannel +
+ ", szName UTF-8=" + new String(szName,"UTF-8").trim() +
+ ", szName GBK=" + new String(szName,"GBK").trim() +
+ ", stuUTC=" + stuUTC +
+ ", nUTCMS=" + nUTCMS +
+ ", nSequence=" + nSequence +
+ ", stuFlowQueueInfo=" + stuFlowQueueInfo.toString() +
+ '}';
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_FLOW_STAT_EX_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_FLOW_STAT_EX_INFO.java
new file mode 100644
index 0000000..e7870e3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_FLOW_STAT_EX_INFO.java
@@ -0,0 +1,68 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+import java.io.UnsupportedEncodingException;
+import java.util.Arrays;
+
+/**
+ * @author : 260611
+ * @description : 交通路口车道统计拓展事件 (对应 DH_ALARM_TRAFFIC_FLOW_STAT_EX)
+ * @since : Created in 2022/03/10 10:12
+ */
+
+public class ALARM_TRAFFIC_FLOW_STAT_EX_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 事件动作 0:脉冲
+ */
+ public int nAction;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 事件发生的时间
+ */
+ public NET_TIME_EX stuUTC = new NET_TIME_EX();
+ /**
+ * 事件时间毫秒数
+ */
+ public int nUTCMS;
+ /**
+ * 表示抓拍序号 1表示抓拍正常结束 0表示抓拍异常结束
+ */
+ public int nSequence;
+ /**
+ * 路口车道统计信息
+ */
+ public TRAFFIC_FLOW_STAT_EX_INFO stuFlowStatEx = new TRAFFIC_FLOW_STAT_EX_INFO();
+ /**
+ * 保留字节
+ */
+ public byte[] szReserverd = new byte[1024];
+
+ @Override
+ public String toString() {
+ try {
+ return "ALARM_TRAFFIC_FLOW_STAT_EX_INFO{" +
+ "nAction=" + nAction +
+ ", nChannel=" + nChannel +
+ ", szName UTF-8=" + new String(szName,"UTF-8").trim() +
+ ", szName GBK=" + new String(szName,"GBK").trim() +
+ ", stuUTC=" + stuUTC.toStringTime() +
+ ", nUTCMS=" + nUTCMS +
+ ", nSequence=" + nSequence +
+ ", stuFlowStatEx=" + stuFlowStatEx.toString() +
+ '}';
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_FLOW_STAT_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_FLOW_STAT_INFO.java
new file mode 100644
index 0000000..910a2bb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_FLOW_STAT_INFO.java
@@ -0,0 +1,97 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+import java.io.UnsupportedEncodingException;
+import java.util.Arrays;
+
+/**
+ * @author : 260611
+ * @description : 交通路口车道统计事件 (对应 DH_ALARM_TRAFFIC_FLOW_STAT)
+ * @since : Created in 2022/03/10 10:12
+ */
+
+public class ALARM_TRAFFIC_FLOW_STAT_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 事件动作 0:脉冲
+ */
+ public int nAction;
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public int PTS;
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 事件发生的时间
+ */
+ public NET_TIME_EX stuUTC = new NET_TIME_EX();
+ /**
+ * 序号
+ */
+ public int nSequence;
+ /**
+ * 流量状态数量
+ */
+ public int nStateNum;
+ /**
+ * 流量状态, 每个车道对应数组中一个元素
+ */
+ public NET_TRAFFIC_FLOW_STATE[] stuStates = (NET_TRAFFIC_FLOW_STATE[]) new NET_TRAFFIC_FLOW_STATE().toArray(8);
+ /**
+ * 静止车辆数,当前时刻检测范围内车速小于某个阀值的车辆数,单位:辆
+ */
+ public int nStopVehiclenum;
+ /**
+ * 车辆总数,当前时刻检测范围内检测到的所有车道内的车辆总数,单位:辆
+ */
+ public int nDetectionAreaVehicleNum;
+ /**
+ * 保留字节
+ */
+ public byte[] szReserverd = new byte[1024];
+
+ @Override
+ public String toString() {
+ String stuStatesStr = "";
+ if(stuStates.length > 0){
+ stuStatesStr += "stuStates[0] = ";
+ stuStatesStr += stuStates[0].toString();
+ }
+ for(int i = 1; i < stuStates.length; i ++){
+ stuStatesStr += ",stuStates[" + i + "] = ";
+ stuStatesStr += stuStates[i].toString();
+ }
+ try {
+ return "ALARM_TRAFFIC_FLOW_STAT_INFO{" +
+ "nAction=" + nAction +
+ ", nChannelID=" + nChannelID +
+ ", szName UTF-8=" + new String(szName,"UTF-8").trim() +
+ ", szName GBK=" + new String(szName,"GBK").trim() +
+ ", PTS=" + PTS +
+ ", nEventID=" + nEventID +
+ ", stuUTC=" + stuUTC.toStringTime() +
+ ", nSequence=" + nSequence +
+ ", nStateNum=" + nStateNum +
+ ", stuStates=" + stuStatesStr +
+ ", nStopVehiclenum=" + nStopVehiclenum +
+ ", nDetectionAreaVehicleNum=" + nDetectionAreaVehicleNum +
+ '}';
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_FLOW_VEHICLE_STOP_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_FLOW_VEHICLE_STOP_INFO.java
new file mode 100644
index 0000000..9574c53
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_FLOW_VEHICLE_STOP_INFO.java
@@ -0,0 +1,68 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+import java.io.UnsupportedEncodingException;
+import java.util.Arrays;
+
+/**
+ * @author : 260611
+ * @description : 交通路口停车事件 (对应 DH_ALARM_TRAFFIC_FLOW_VEHICLE_STOP)
+ * @since : Created in 2022/03/10 10:12
+ */
+
+public class ALARM_TRAFFIC_FLOW_VEHICLE_STOP_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 事件动作 0:脉冲
+ */
+ public int nAction;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 事件发生的时间
+ */
+ public NET_TIME_EX stuUTC = new NET_TIME_EX();
+ /**
+ * 事件时间毫秒数
+ */
+ public int nUTCMS;
+ /**
+ * 表示抓拍序号 1表示抓拍正常结束 0表示抓拍异常结束
+ */
+ public int nSequence;
+ /**
+ * 区域路口停车信息
+ */
+ public TRAFFIC_FLOW_VEHICLE_STOP_INFO stuFlowVehicleStop = new TRAFFIC_FLOW_VEHICLE_STOP_INFO();
+ /**
+ * 保留字节
+ */
+ public byte[] szReserverd = new byte[1024];
+
+ @Override
+ public String toString() {
+ try {
+ return "ALARM_TRAFFIC_FLOW_VEHICLE_STOP_INFO{" +
+ "nAction=" + nAction +
+ ", nChannel=" + nChannel +
+ ", szName UTF-8=" + new String(szName,"UTF-8").trim() +
+ ", szName GBK=" + new String(szName,"GBK").trim() +
+ ", stuUTC=" + stuUTC.toStringTime() +
+ ", nUTCMS=" + nUTCMS +
+ ", nSequence=" + nSequence +
+ ", stuFlowVehicleStop=" + stuFlowVehicleStop.toString() +
+ '}';
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_LIGHT_STATE_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_LIGHT_STATE_INFO.java
new file mode 100644
index 0000000..c69e640
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_LIGHT_STATE_INFO.java
@@ -0,0 +1,81 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.EM_TRFAFFIC_LIGHT_SOURCE;
+
+/**
+ * (交通灯事件)对应的数据块描述信息
+ *
+ * @author : 47040
+ * @since : Created in 2020/8/29 16:41
+ */
+public class ALARM_TRAFFIC_LIGHT_STATE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 0:脉冲 1:开始 2:停止
+ */
+ public int nAction;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double PTS;
+ /**
+ * 事件发生的时间
+ */
+ public NET_TIME_EX UTC;
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 视频分析的数据源地址
+ */
+ public int nSource;
+ /**
+ * 帧序号
+ */
+ public int nFrameSequence;
+ /**
+ * 红绿灯触发源 枚举{@link EM_TRFAFFIC_LIGHT_SOURCE}
+ */
+ public int emLightSource;
+ /**
+ * stuLightPeriods元素个数
+ */
+ public int nLightPeriodsNum;
+ /**
+ * 每个元素表示一种灯亮的持续时间,时间单位毫秒
+ */
+ public NET_LIGHTPERIODS_INFO[] stuLightPeriods = new NET_LIGHTPERIODS_INFO[4];
+ /**
+ * 交通灯状态,数组下标为车道号,实际只用到了第一个元素
+ */
+ public NET_TRAFFIC_LIGHT_STATE[] stuLightStates = new NET_TRAFFIC_LIGHT_STATE[8];
+ /**
+ * stuLightStates元素个数
+ */
+ public int nLightStateNum;
+ /**
+ * 预留字段
+ */
+ public byte[] byReserved = new byte[1020];
+
+ public ALARM_TRAFFIC_LIGHT_STATE_INFO() {
+ for (int i = 0; i < stuLightPeriods.length; i++) {
+ stuLightPeriods[i] = new NET_LIGHTPERIODS_INFO();
+ }
+
+ for (int j = 0; j < stuLightStates.length; j++) {
+ stuLightStates[j] = new NET_TRAFFIC_LIGHT_STATE();
+ }
+
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_PARKING_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_PARKING_INFO.java
new file mode 100644
index 0000000..65fbd53
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_PARKING_INFO.java
@@ -0,0 +1,48 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 事件类型 DH_ALARM_TRAFFIC_PARKING(交通违章停车事件)对应的数据块描述信息
+*/
+public class ALARM_TRAFFIC_PARKING_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ */
+ public int nAction;
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double dbPTS;
+ /**
+ * 事件发生的时间,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME_EX}
+ */
+ public NetSDKLib.NET_TIME_EX stuTime = new NetSDKLib.NET_TIME_EX();
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 事件公共扩展字段结构体,参见结构体定义 {@link com.netsdk.lib.structure.NET_EVENT_INFO_EXTEND}
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * 车道号
+ */
+ public int nLane;
+ /**
+ * 最后一张图片的时间, 格式为:yyyy-MM-ddTHH:mm:ss.SSSXXX, 其中T为不需要解析的无意义字符,XXX为时区
+ */
+ public byte[] szRecordEndTime = new byte[64];
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[956];
+
+ public ALARM_TRAFFIC_PARKING_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_VEHICLE_POSITION.java b/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_VEHICLE_POSITION.java
new file mode 100644
index 0000000..a30893a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_TRAFFIC_VEHICLE_POSITION.java
@@ -0,0 +1,72 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+import static com.netsdk.lib.NetSDKLib.NET_COMMON_STRING_128;
+
+/**
+ * @author : 260611
+ * @description : 车辆位置报警事件{@link NetSDKLib#NET_ALARM_TRAFFIC_VEHICLE_POSITION}
+ * @since : Created in 2022/03/01 14:55
+ */
+
+public class ALARM_TRAFFIC_VEHICLE_POSITION extends NetSDKLib.SdkStructure {
+ /**
+ * 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ */
+ public int nAction;
+ /**
+ * 事件名称
+ */
+ public byte[] szEventName = new byte[NET_COMMON_STRING_128];
+ /**
+ * 物体ID
+ */
+ public int nObjectID;
+ /**
+ * 车牌号
+ */
+ public byte[] szPlateNumber = new byte[NET_COMMON_STRING_128];
+ /**
+ * 识别车牌与卡口抓拍线的相对距离(0为基准,表示视频抓拍卡口位置时的车牌距离;正数表示越过抓拍线;负数表示未越过抓拍线)
+ */
+ public int nPosition;
+ /**
+ * 开闸状态,具体请见 EM_OPEN_STROBE_STATE
+ */
+ public byte byOpenStrobeState;
+ /**
+ * 车牌置信度,范围[0, 255]
+ */
+ public int nPlateConfidence;
+ /**
+ * 车牌颜色
+ */
+ public byte[] szPlateColor = new byte[32];
+ /**
+ * 车牌类型
+ */
+ public byte[] szPlateType = new byte[32];
+ /**
+ * 车身置信度,范围[0, 255]
+ */
+ public int nVehicleConfidence;
+ /**
+ * 车头朝向,用于抓拍时,判断当前车头是否正对着相机, EM_VEHICLE_HEAD_DIRECTION
+ */
+ public int emVehicleHeadDirection;
+ /**
+ * 抓拍车的位置, EM_VEHICLE_POSITION
+ */
+ public int emVehiclePosition;
+ /**
+ * 车辆行驶方向(相对车道方向), EM_VEHICLE_DRIVING_DIRECTION
+ */
+ public int emDrivingDirection;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[427];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_USERLOCK_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_USERLOCK_INFO.java
new file mode 100644
index 0000000..5092b3b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_USERLOCK_INFO.java
@@ -0,0 +1,49 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 421657
+ * @description 用户锁定报警事件, 对应 DH_ALARM_USERLOCK
+ * @origin autoTool
+ * @date 2023/11/28 15:07:03
+ */
+public class ALARM_USERLOCK_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * / 时间戳(单位是毫秒)
+ */
+ public double dbPTS;
+ /**
+ * / 事件发生的时间
+ */
+ public NET_TIME_EX stuTime = new NET_TIME_EX();
+ /**
+ * / 事件ID
+ */
+ public int nEventID;
+ /**
+ * / 用户名
+ */
+ public byte[] szUserName = new byte[128];
+ /**
+ * / 组名
+ */
+ public byte[] szGroup = new byte[128];
+ /**
+ * / 非法登录的IP
+ */
+ public byte[] szIllegalLoginIP = new byte[40];
+ /**
+ * / 事件公共扩展字段结构体
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * / 保留字节
+ */
+ public byte[] byReserved = new byte[1024];
+
+ public ALARM_USERLOCK_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_USER_LOCK_EVENT_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_USER_LOCK_EVENT_INFO.java
new file mode 100644
index 0000000..0033097
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_USER_LOCK_EVENT_INFO.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 421657
+ * @description 事件类型 DH_ALARM_USER_LOCK_EVENT (用户锁定报警事件)对应的数据描述信息
+ * @origin autoTool
+ * @date 2023/11/27 20:14:15
+ */
+public class ALARM_USER_LOCK_EVENT_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * / 用户名
+ */
+ public byte[] szUser = new byte[128];
+ /**
+ * / 组名
+ */
+ public byte[] szGroup = new byte[128];
+ /**
+ * / 设备IP
+ */
+ public byte[] szIP = new byte[40];
+ /**
+ * / 预留
+ */
+ public byte[] reserved = new byte[512];
+
+ public ALARM_USER_LOCK_EVENT_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_VEHICLE_INOUT_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_VEHICLE_INOUT_INFO.java
new file mode 100644
index 0000000..b047266
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_VEHICLE_INOUT_INFO.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * 事件类型 车辆进出车道报警
+ * {@link NetSDKLib#NET_ALARM_VEHICLE_INOUT}
+ *
+ * @author 47040
+ * @since Created in 2020/12/17 11:17
+ */
+public class ALARM_VEHICLE_INOUT_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 事件动作,0表示脉冲事件
+ */
+ public int nAction;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 事件发生的时间
+ */
+ public NET_TIME_EX UTC;
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 物体列表 长度由nObjectNum决定 指向 {@link NET_VEHICLE_OBJECT}
+ */
+ public Pointer pstObjets;
+ /**
+ * 物体有效个数
+ */
+ public int nObjectNum;
+ /**
+ * 统计有效个数
+ */
+ public int nStatNum;
+ /**
+ * 各个车道实时交通流量统计信息, 最大支持8车道
+ */
+ public NET_TRAFFIC_FLOW_STAT[] stuStats = new NET_TRAFFIC_FLOW_STAT[8];
+ /**
+ * 雷达安装角度(雷达坐标系Y轴与正北方向的逆时针夹角)单位:度 (0 ~ 360)
+ */
+ public double dbRadarInstallAngle;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserverd = new byte[1016];
+
+ public ALARM_VEHICLE_INOUT_INFO() {
+ for (int i = 0; i < stuStats.length; i++) {
+ stuStats[i] = new NET_TRAFFIC_FLOW_STAT();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_WANDERDETECTION_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_WANDERDETECTION_INFO.java
new file mode 100644
index 0000000..4002a90
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_WANDERDETECTION_INFO.java
@@ -0,0 +1,62 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * @author 421657
+ * @description 徘徊事件(对应事件DH_ALARM_WANDERDETECTION)
+ * @origin autoTool
+ * @date 2023/09/22 16:32:04
+ */
+public class ALARM_WANDERDETECTION_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * / 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ */
+ public int nAction;
+ /**
+ * / 通道号
+ */
+ public int nChannelID;
+ /**
+ * / 时间戳(单位是毫秒)
+ */
+ public double dbPTS;
+ /**
+ * / 事件发生的时间
+ */
+ public NET_TIME_EX stuTime = new NET_TIME_EX();
+ /**
+ * / 事件ID
+ */
+ public int nEventID;
+ /**
+ * / 规则被触发的次数
+ */
+ public int nCount;
+ /**
+ * / 事件级别,GB31047需求
+ */
+ public int nLevel;
+ /**
+ * / 事件触发的预置点号,从1开始(没有表示未知)
+ */
+ public short nPreserID;
+ /**
+ * / 事件触发的预置名称
+ */
+ public byte[] szPresetName = new byte[64];
+ /**
+ * / 事件公共扩展字段结构体
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * /保留字节
+ */
+ public byte[] byReserved = new byte[958];
+
+ public ALARM_WANDERDETECTION_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_WATER_SPEED_DETECTION_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_WATER_SPEED_DETECTION_INFO.java
new file mode 100644
index 0000000..ef429c6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_WATER_SPEED_DETECTION_INFO.java
@@ -0,0 +1,83 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 水流速检测事件
+*/
+public class ALARM_WATER_SPEED_DETECTION_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
+ */
+ public int nAction;
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double dbPTS;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 事件发生时间,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME_EX}
+ */
+ public NetSDKLib.NET_TIME_EX UTC = new NetSDKLib.NET_TIME_EX();
+ /**
+ * 事件的数据类型,参见枚举定义 {@link com.netsdk.lib.enumeration.NETAEM_EVENT_TYPE}
+ */
+ public int emEventType;
+ /**
+ * 事件触发的预置点号,从1开始,没有该字段,表示预置点未知
+ */
+ public int nPresetID;
+ /**
+ * 事件触发的预置点名称
+ */
+ public byte[] szPresetName = new byte[64];
+ /**
+ * 水流速度信息,参见结构体定义 {@link com.netsdk.lib.structure.NET_WATER_SPEED_INFO}
+ */
+ public NET_WATER_SPEED_INFO[] stuWaterSpeed = new NET_WATER_SPEED_INFO[50];
+ /**
+ * 水流速度信息个数
+ */
+ public int nWaterSpeedNum;
+ /**
+ * 水流速状态,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_WATER_SPEED_STATUS}
+ */
+ public int emStatus;
+ /**
+ * 原始图,近景,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_INTELLIGENCE_IMAGE_INFO}
+ */
+ public NetSDKLib.NET_INTELLIGENCE_IMAGE_INFO stuOriginalImage = new NetSDKLib.NET_INTELLIGENCE_IMAGE_INFO();
+ /**
+ * 球机变到最小倍下的抓图,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_INTELLIGENCE_IMAGE_INFO}
+ */
+ public NetSDKLib.NET_INTELLIGENCE_IMAGE_INFO stuSceneImage = new NetSDKLib.NET_INTELLIGENCE_IMAGE_INFO();
+ /**
+ * 流量值,单位:立方米每秒(m3/s)
+ */
+ public float fValue;
+ /**
+ * 断面平均流速值, 单位:m/s
+ */
+ public float fSecSpeedValue;
+ /**
+ * 预留字节
+ */
+ public byte[] byReserved = new byte[1016];
+
+ public ALARM_WATER_SPEED_DETECTION_INFO() {
+ for(int i = 0; i < stuWaterSpeed.length; i++){
+ stuWaterSpeed[i] = new NET_WATER_SPEED_INFO();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_WIRELESSDEV_LOWPOWER_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_WIRELESSDEV_LOWPOWER_INFO.java
new file mode 100644
index 0000000..cc367f6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_WIRELESSDEV_LOWPOWER_INFO.java
@@ -0,0 +1,51 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @description 无线设备低电量报警事件结构体
+ * @date 2022/07/19 10:21:10
+ */
+public class ALARM_WIRELESSDEV_LOWPOWER_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 是否为低电量true低电量,false 电量正常,unknown未知 {@link NetSDKLib.NET_THREE_STATUS_BOOL}
+ */
+ public int emResult;
+ /**
+ * 事件发生的时间
+ */
+ public NET_TIME stuTime = new NET_TIME();
+ /**
+ * 无线设备ID 此字段协议上已废弃
+ */
+ public int nId;
+ /**
+ * 无线设备类型 {@link com.netsdk.lib.enumeration.NET_WIRELESSDEV_LOWPOWER_TYPE}
+ */
+ public int emType;
+ /**
+ * 无线配件序列号
+ */
+ public byte[] szSN = new byte[32];
+ /**
+ * 电量百分比
+ */
+ public float fPercent;
+ /**
+ * 通道号或探测器地址
+ */
+ public int nIndex;
+ /**
+ * 事件公共扩展字段结构体
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * 预留
+ */
+ public byte[] reserved = new byte[984];
+
+ public ALARM_WIRELESSDEV_LOWPOWER_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_WIRELESSDEV_POWERLESS_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_WIRELESSDEV_POWERLESS_INFO.java
new file mode 100644
index 0000000..00795cc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_WIRELESSDEV_POWERLESS_INFO.java
@@ -0,0 +1,51 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 探测器主电丢失事件(对应DH_ALARM_WIRELESSDEV_POWERLESS)
+ * @date 2023/03/09 20:12:33
+ */
+public class ALARM_WIRELESSDEV_POWERLESS_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 0:脉冲 1:开始 2:停止
+ */
+ public int nAction;
+ /**
+ * 探测器地址
+ */
+ public int nIndex;
+ /**
+ * 事件发生的时间
+ */
+ public NET_TIME_EX stuLoacalTime = new NET_TIME_EX();
+ /**
+ * 探测器类型
+ */
+ public byte[] szModel = new byte[32];
+ /**
+ * 探测器名称
+ */
+ public byte[] szName = new byte[32];
+ /**
+ * 探测器序列号
+ */
+ public byte[] szSN = new byte[32];
+ /**
+ * 探测器所属区域名称
+ */
+ public byte[] szAreaName = new byte[32];
+ /**
+ * 事件公共扩展字段结构体
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * 保留字节
+ */
+ public byte[] szReserverd = new byte[128];
+
+ public ALARM_WIRELESSDEV_POWERLESS_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_WORKSUIT_FEATURE_ABSTRACT_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_WORKSUIT_FEATURE_ABSTRACT_INFO.java
new file mode 100644
index 0000000..93a6405
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_WORKSUIT_FEATURE_ABSTRACT_INFO.java
@@ -0,0 +1,47 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 事件类型DH_ALARM_WORKSUIT_FEATURE_ABSTRACT
+ * (工装特征向量建模结果上报事件)对应的数据块描述信息
+ * @date 2022/10/09 11:22:52
+ */
+public class ALARM_WORKSUIT_FEATURE_ABSTRACT_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 事件动作,0表示脉冲事件
+ */
+ public int nAction;
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double dbPTS;
+ /**
+ * 事件发生的时间
+ */
+ public NET_TIME_EX stuTime = new NET_TIME_EX();
+ /**
+ * 工装建模结果个数
+ */
+ public int nAbstractInfoNum;
+ /**
+ * 工装建模结果信息
+ */
+ public NET_WORKSUIT_ABSTRACT_INFO[] stuAbstractInfo = new NET_WORKSUIT_ABSTRACT_INFO[20];
+ /**
+ * 预留字段
+ */
+ public byte[] szReserved = new byte[1024];
+
+ public ALARM_WORKSUIT_FEATURE_ABSTRACT_INFO() {
+ for (int i = 0; i < stuAbstractInfo.length; i++) {
+ stuAbstractInfo[i] = new NET_WORKSUIT_ABSTRACT_INFO();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_XRAY_ACQUISITION_SYSTEM_ABNORMITY_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_XRAY_ACQUISITION_SYSTEM_ABNORMITY_INFO.java
new file mode 100644
index 0000000..01ca7ea
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_XRAY_ACQUISITION_SYSTEM_ABNORMITY_INFO.java
@@ -0,0 +1,44 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 事件类型DH_ALARM_XRAY_ACQUISITION_SYSTEM_ABNORMITY (X光机图像采集系统通信异常事件) 对应的数据块描述信息
+*/
+public class ALARM_XRAY_ACQUISITION_SYSTEM_ABNORMITY_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
+ */
+ public int nAction;
+ /**
+ * 事件发生的时间,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME_EX}
+ */
+ public NetSDKLib.NET_TIME_EX stuTime = new NetSDKLib.NET_TIME_EX();
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double dbPTS;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 事件公共扩展字段结构体,参见结构体定义 {@link com.netsdk.lib.structure.NET_EVENT_INFO_EXTEND}
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * 预留字段
+ */
+ public byte[] szReserved = new byte[1024];
+
+ public ALARM_XRAY_ACQUISITION_SYSTEM_ABNORMITY_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_XRAY_DETECTOR_PROTECTION_OPEN_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_XRAY_DETECTOR_PROTECTION_OPEN_INFO.java
new file mode 100644
index 0000000..8b30045
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_XRAY_DETECTOR_PROTECTION_OPEN_INFO.java
@@ -0,0 +1,44 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 事件类型DH_ALARM_XRAY_DETECTOR_PROTECTION_OPEN (X光机接收器件防护装置打开事件) 对应的数据块描述信息
+*/
+public class ALARM_XRAY_DETECTOR_PROTECTION_OPEN_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
+ */
+ public int nAction;
+ /**
+ * 事件发生的时间,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME_EX}
+ */
+ public NetSDKLib.NET_TIME_EX stuTime = new NetSDKLib.NET_TIME_EX();
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double dbPTS;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 事件公共扩展字段结构体,参见结构体定义 {@link com.netsdk.lib.structure.NET_EVENT_INFO_EXTEND}
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * 预留字段
+ */
+ public byte[] szReserved = new byte[1024];
+
+ public ALARM_XRAY_DETECTOR_PROTECTION_OPEN_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_XRAY_EMERGENCY_STOP_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_XRAY_EMERGENCY_STOP_INFO.java
new file mode 100644
index 0000000..9cdc69a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_XRAY_EMERGENCY_STOP_INFO.java
@@ -0,0 +1,44 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 事件类型DH_ALARM_XRAY_EMERGENCY_STOP (X光机紧急停止事件) 对应的数据块描述信息
+*/
+public class ALARM_XRAY_EMERGENCY_STOP_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 触发急停事件的按钮位置:0:不区分,1:键盘,2:机身,3:进包口1,4:进包口2,5:出包口1,6:出包口2
+ */
+ public int nChannelID;
+ /**
+ * 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
+ */
+ public int nAction;
+ /**
+ * 事件发生的时间,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME_EX}
+ */
+ public NetSDKLib.NET_TIME_EX stuTime = new NetSDKLib.NET_TIME_EX();
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double dbPTS;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 事件公共扩展字段结构体,参见结构体定义 {@link com.netsdk.lib.structure.NET_EVENT_INFO_EXTEND}
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * 预留字段
+ */
+ public byte[] szReserved = new byte[1024];
+
+ public ALARM_XRAY_EMERGENCY_STOP_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_XRAY_KEYBOARD_ABNORMITY_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_XRAY_KEYBOARD_ABNORMITY_INFO.java
new file mode 100644
index 0000000..a67f3a5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_XRAY_KEYBOARD_ABNORMITY_INFO.java
@@ -0,0 +1,44 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 事件类型DH_ALARM_XRAY_KEYBOARD_ABNORMITY (X光机操作键盘通信异常事件) 对应的数据块描述信息
+*/
+public class ALARM_XRAY_KEYBOARD_ABNORMITY_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
+ */
+ public int nAction;
+ /**
+ * 事件发生的时间,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME_EX}
+ */
+ public NetSDKLib.NET_TIME_EX stuTime = new NetSDKLib.NET_TIME_EX();
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double dbPTS;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 事件公共扩展字段结构体,参见结构体定义 {@link com.netsdk.lib.structure.NET_EVENT_INFO_EXTEND}
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * 预留字段
+ */
+ public byte[] szReserved = new byte[1024];
+
+ public ALARM_XRAY_KEYBOARD_ABNORMITY_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_XRAY_MACHINE_SHELL_OPEN_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_XRAY_MACHINE_SHELL_OPEN_INFO.java
new file mode 100644
index 0000000..90fa102
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_XRAY_MACHINE_SHELL_OPEN_INFO.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 事件类型DH_ALARM_XRAY_MACHINE_SHELL_OPEN (X光机外罩打开事件) 对应的数据块描述信息
+*/
+public class ALARM_XRAY_MACHINE_SHELL_OPEN_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
+ */
+ public int nAction;
+ /**
+ * 事件发生的时间,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME_EX}
+ */
+ public NetSDKLib.NET_TIME_EX stuTime = new NetSDKLib.NET_TIME_EX();
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double dbPTS;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 外罩打开位置,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_XRAY_SHELL_OPEN_POSITION}
+ */
+ public int[] nPosition = new int[32];
+ /**
+ * 外罩打开位置个数
+ */
+ public int nPositionCnt;
+ /**
+ * 事件公共扩展字段结构体,参见结构体定义 {@link com.netsdk.lib.structure.NET_EVENT_INFO_EXTEND}
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * 预留字段
+ */
+ public byte[] szReserved = new byte[1020];
+
+ public ALARM_XRAY_MACHINE_SHELL_OPEN_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_XRAY_PIP_COMMUNICATION_ABNORMITY_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_XRAY_PIP_COMMUNICATION_ABNORMITY_INFO.java
new file mode 100644
index 0000000..018717b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_XRAY_PIP_COMMUNICATION_ABNORMITY_INFO.java
@@ -0,0 +1,44 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 事件类型DH_ALARM_XRAY_PIP_COMMUNICATION_ABNORMITY (X射线画中画通讯异常事件) 对应的数据块描述信息
+*/
+public class ALARM_XRAY_PIP_COMMUNICATION_ABNORMITY_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
+ */
+ public int nAction;
+ /**
+ * 事件发生的时间,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME_EX}
+ */
+ public NetSDKLib.NET_TIME_EX stuTime = new NetSDKLib.NET_TIME_EX();
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double dbPTS;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 事件公共扩展字段结构体,参见结构体定义 {@link com.netsdk.lib.structure.NET_EVENT_INFO_EXTEND}
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * 预留字段
+ */
+ public byte[] szReserved = new byte[1024];
+
+ public ALARM_XRAY_PIP_COMMUNICATION_ABNORMITY_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_XRAY_SOURCE_ABNORMITY_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_XRAY_SOURCE_ABNORMITY_INFO.java
new file mode 100644
index 0000000..3143c33
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_XRAY_SOURCE_ABNORMITY_INFO.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 事件类型DH_ALARM_XRAY_SOURCE_ABNORMITY (X光机X射线发生器故障事件) 对应的数据块描述信息
+*/
+public class ALARM_XRAY_SOURCE_ABNORMITY_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
+ */
+ public int nAction;
+ /**
+ * 事件发生的时间,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME_EX}
+ */
+ public NetSDKLib.NET_TIME_EX stuTime = new NetSDKLib.NET_TIME_EX();
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double dbPTS;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * X光机故障类型,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_XRAY_COMM_ABNORMITY_TYPE}
+ */
+ public int[] nAbnormalDetail = new int[32];
+ /**
+ * X光机故障类型个数
+ */
+ public int nAbnormalDetailCnt;
+ /**
+ * 事件公共扩展字段结构体,参见结构体定义 {@link com.netsdk.lib.structure.NET_EVENT_INFO_EXTEND}
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * 预留字段
+ */
+ public byte[] szReserved = new byte[1020];
+
+ public ALARM_XRAY_SOURCE_ABNORMITY_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ALARM_XRAY_TRANSMISSION_BELT_ABNORMITY_INFO.java b/src/main/java/com/netsdk/lib/structure/ALARM_XRAY_TRANSMISSION_BELT_ABNORMITY_INFO.java
new file mode 100644
index 0000000..b7ebc3b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ALARM_XRAY_TRANSMISSION_BELT_ABNORMITY_INFO.java
@@ -0,0 +1,40 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 事件类型DH_ALARM_XRAY_TRANSMISSION_BELT_ABNORMITY (X光机图像传送带状态异常事件) 对应的数据块描述信息
+*/
+public class ALARM_XRAY_TRANSMISSION_BELT_ABNORMITY_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
+ */
+ public int nAction;
+ /**
+ * 事件发生的时间,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME_EX}
+ */
+ public NetSDKLib.NET_TIME_EX stuTime = new NetSDKLib.NET_TIME_EX();
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double dbPTS;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 预留字段
+ */
+ public byte[] szReserved = new byte[1024];
+
+ public ALARM_XRAY_TRANSMISSION_BELT_ABNORMITY_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ANATOMY_TEMP_DETECT_PERSON_FILTER.java b/src/main/java/com/netsdk/lib/structure/ANATOMY_TEMP_DETECT_PERSON_FILTER.java
new file mode 100644
index 0000000..713508e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ANATOMY_TEMP_DETECT_PERSON_FILTER.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 人员过滤信息
+ * @date 2021/02/22
+ */
+public class ANATOMY_TEMP_DETECT_PERSON_FILTER extends NetSDKLib.SdkStructure {
+ /**
+ * 姓名
+ */
+ public byte[] szName = new byte[64];
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[1024];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ARM_FAILED_DETAIL.java b/src/main/java/com/netsdk/lib/structure/ARM_FAILED_DETAIL.java
new file mode 100644
index 0000000..30b704e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ARM_FAILED_DETAIL.java
@@ -0,0 +1,31 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 布防失败细节
+ * @date 2023/03/15 16:25:59
+ */
+public class ARM_FAILED_DETAIL extends NetSDKLib.SdkStructure {
+ /**
+ * 布防失败的区域号
+ */
+ public int nArea;
+ /**
+ * 报警源输入返回个数
+ */
+ public int nAlarmSourceRet;
+ /**
+ * 区域下包含的有源输入的防区
+ */
+ public int[] arrAlarmSource = new int[72];
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[1024];
+
+ public ARM_FAILED_DETAIL() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ARM_FAILED_DETAIL_EX.java b/src/main/java/com/netsdk/lib/structure/ARM_FAILED_DETAIL_EX.java
new file mode 100644
index 0000000..8ea23de
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ARM_FAILED_DETAIL_EX.java
@@ -0,0 +1,38 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 布防失败细节扩展字段
+ * @date 2023/03/15 16:29:32
+ */
+public class ARM_FAILED_DETAIL_EX extends NetSDKLib.SdkStructure {
+ /**
+ * 布防失败的区域号
+ */
+ public int nArea;
+ /**
+ * 报警源输入返回个数
+ */
+ public int nAlarmSourceRetEx;
+ /**
+ * 区域下包含的有源输入的防区
+ */
+ public int[] arrAlarmSourceEx = new int[256];
+ /**
+ * 异常防区信息个数
+ */
+ public int nZoneAbnormalNum;
+ /**
+ * 异常防区信息,最大有1024个
+ */
+ public NET_ZONE_ABNORMAL_INFO[] stuZoneAbnormal = new NET_ZONE_ABNORMAL_INFO[1024];
+
+ public ARM_FAILED_DETAIL_EX() {
+ for (int i = 0; i < stuZoneAbnormal.length; i++) {
+ stuZoneAbnormal[i] = new NET_ZONE_ABNORMAL_INFO();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/AV_CFG_MONITOR_WALL_OUT_MODE_INFO.java b/src/main/java/com/netsdk/lib/structure/AV_CFG_MONITOR_WALL_OUT_MODE_INFO.java
new file mode 100644
index 0000000..e670f79
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/AV_CFG_MONITOR_WALL_OUT_MODE_INFO.java
@@ -0,0 +1,19 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 电视墙输出模式信息
+ * @date 2021/2/22
+ */
+public class AV_CFG_MONITOR_WALL_OUT_MODE_INFO extends NetSDKLib.SdkStructure {
+ /** 水平分辨率 */
+ public int nWidth;
+ /** 垂直分辨率 */
+ public int nHeight;
+ /** 保留字节 */
+ public byte[] byReserved = new byte[256];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/Auxs.java b/src/main/java/com/netsdk/lib/structure/Auxs.java
new file mode 100644
index 0000000..a81f3ba
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/Auxs.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;/**
+ * @author 47081
+ * @descriptio
+ * @date 2020/11/9
+ * @version 1.0
+ */
+
+import com.netsdk.lib.NetSDKLib;
+
+import static com.netsdk.lib.constant.SDKStructureFieldLenth.CFG_COMMON_STRING_32;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description
+ * @date 2020/11/9
+ */
+public class Auxs extends NetSDKLib.SdkStructure {
+ public byte[] auxs = new byte[CFG_COMMON_STRING_32];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/BODY_TRAIT.java b/src/main/java/com/netsdk/lib/structure/BODY_TRAIT.java
new file mode 100644
index 0000000..75246b6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/BODY_TRAIT.java
@@ -0,0 +1,93 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+import java.util.Arrays;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description
+ * @date 2021/8/24 14:35
+ */
+public class BODY_TRAIT extends NetSDKLib.SdkStructure {
+ /** EM_SEX_TYPE */
+ public int emSex; // 性别
+ /** EM_AGE_GROUP_TYPE */
+ public int emAgeGroup; // 年龄组
+ /** EM_COAT_TYPE */
+ public int emCoatType; // 上衣类型
+ /** EM_TROUSERS_TYPE */
+ public int emTrousersType; // 裤子类型
+ /**EM_ANGLE_TYPE */
+ public int emAngle; // 人体角度
+ /** EM_CLOTHES_PATTERN */
+ public int emUpperPattern; // 上衣模式
+ /**EM_UNIFIED_COLOR_TYPE */
+ public int emTrousersColor; // 裤子颜色
+ /** EM_HAS_UMBRELLA */
+ public int emUmbrella; // 打伞
+ /** EM_UNIFIED_COLOR_TYPE */
+ public int emUmbrellaColor; // 雨伞颜色
+ /** EM_HAS_HOLD */
+ public int emHold; // 胸前抱东西
+ /** EM_CLOTHES_PATTERN*/
+ public int emTrousersPattern; // 裤子模式
+ /** EM_HAT_STYLE */
+ public int emHatType; // 帽子款式
+ /** EM_UNIFIED_COLOR_TYPE */
+ public int emHatColor; // 帽子颜色
+ /** EM_UPPER_TYPE */
+ public int emUpperType; // 上衣类型
+ /** EM_UNIFIED_COLOR_TYPE */
+ public int emCoatColor; // 上衣颜色
+ /**EM_HAIR_STYLE */
+ public int emHairStyle; // 发型
+ /** EM_UNIFIED_COLOR_TYPE */
+ public int emHairColor; // 头发颜色
+ /** EM_SHOES_TYPE */
+ public int emShoesType; // 鞋子款式
+ /** EM_UNIFIED_COLOR_TYPE*/
+ public int emShoesColor; // 鞋子颜色
+ /** EM_BAG_TYPE */
+ public int emBagType; // 箱包款式
+ /** EM_UNIFIED_COLOR_TYPE */
+ public int emBagColor; // 箱包颜色
+ /** EM_MASK_TYPE */
+ public int emMaskType; // 口罩
+ /** EM_UNIFIED_COLOR_TYPE */
+ public int emMaskColor; // 口罩颜色
+ public NET_TIME_EX stuSnapTime = new NET_TIME_EX(); // 抓图时间
+ public byte[] szReserved = new byte[1024]; // 预留字段
+
+ @Override
+ public String toString() {
+ return "BODY_TRAIT{" +
+ "emSex=" + emSex +
+ ", emAgeGroup=" + emAgeGroup +
+ ", emCoatType=" + emCoatType +
+ ", emTrousersType=" + emTrousersType +
+ ", emAngle=" + emAngle +
+ ", emUpperPattern=" + emUpperPattern +
+ ", emTrousersColor=" + emTrousersColor +
+ ", emUmbrella=" + emUmbrella +
+ ", emUmbrellaColor=" + emUmbrellaColor +
+ ", emHold=" + emHold +
+ ", emTrousersPattern=" + emTrousersPattern +
+ ", emHatType=" + emHatType +
+ ", emHatColor=" + emHatColor +
+ ", emUpperType=" + emUpperType +
+ ", emCoatColor=" + emCoatColor +
+ ", emHairStyle=" + emHairStyle +
+ ", emHairColor=" + emHairColor +
+ ", emShoesType=" + emShoesType +
+ ", emShoesColor=" + emShoesColor +
+ ", emBagType=" + emBagType +
+ ", emBagColor=" + emBagColor +
+ ", emMaskType=" + emMaskType +
+ ", emMaskColor=" + emMaskColor +
+ ", stuSnapTime=" + stuSnapTime +
+ '}';
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/BYTE_18.java b/src/main/java/com/netsdk/lib/structure/BYTE_18.java
new file mode 100644
index 0000000..107947f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/BYTE_18.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @version 1.0
+ * @description
+ * @date 2023/04/20 10:05
+ */
+public class BYTE_18 extends NetSDKLib.SdkStructure {
+ public byte[] str_18 = new byte[18];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/BYTE_2048.java b/src/main/java/com/netsdk/lib/structure/BYTE_2048.java
new file mode 100644
index 0000000..a813b8a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/BYTE_2048.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description
+ * @date 2023/7/28 15:00
+ */
+public class BYTE_2048 extends NetSDKLib.SdkStructure {
+ public byte[] SN_2048 = new byte[2048];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/BYTE_256.java b/src/main/java/com/netsdk/lib/structure/BYTE_256.java
new file mode 100644
index 0000000..475e6ec
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/BYTE_256.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description
+ * @date 2023/7/28 14:58
+ */
+public class BYTE_256 extends NetSDKLib.SdkStructure {
+ public byte[] SN_256 = new byte[256];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/BYTE_32.java b/src/main/java/com/netsdk/lib/structure/BYTE_32.java
new file mode 100644
index 0000000..96c7699
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/BYTE_32.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description
+ * @date 2022/8/31 20:35
+ */
+public class BYTE_32 extends NetSDKLib.SdkStructure {
+ public byte[] SN_32 = new byte[32];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/BYTE_40.java b/src/main/java/com/netsdk/lib/structure/BYTE_40.java
new file mode 100644
index 0000000..a115471
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/BYTE_40.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @version 1.0
+ * @description
+ * @date 2023/03/15 20:35
+ */
+public class BYTE_40 extends NetSDKLib.SdkStructure {
+ public byte[] STR_40 = new byte[40];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/BYTE_64.java b/src/main/java/com/netsdk/lib/structure/BYTE_64.java
new file mode 100644
index 0000000..1e9568f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/BYTE_64.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description
+ * @date 2022/12/22 10:05
+ */
+public class BYTE_64 extends NetSDKLib.SdkStructure {
+ public byte[] SN_64 = new byte[64];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/BYTE_ARRAY_1024.java b/src/main/java/com/netsdk/lib/structure/BYTE_ARRAY_1024.java
new file mode 100644
index 0000000..efbed20
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/BYTE_ARRAY_1024.java
@@ -0,0 +1,7 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+
+public class BYTE_ARRAY_1024 extends NetSDKLib.SdkStructure {
+ public byte[] obj_1024 = new byte[1024];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/BYTE_ARRAY_128.java b/src/main/java/com/netsdk/lib/structure/BYTE_ARRAY_128.java
new file mode 100644
index 0000000..6b2c1ab
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/BYTE_ARRAY_128.java
@@ -0,0 +1,7 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+
+public class BYTE_ARRAY_128 extends NetSDKLib.SdkStructure {
+ public byte[] obj_128 = new byte[128];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/BYTE_ARRAY_16.java b/src/main/java/com/netsdk/lib/structure/BYTE_ARRAY_16.java
new file mode 100644
index 0000000..31eb71e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/BYTE_ARRAY_16.java
@@ -0,0 +1,7 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+
+public class BYTE_ARRAY_16 extends NetSDKLib.SdkStructure {
+ public byte[] obj_16 = new byte[16];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/BYTE_ARRAY_256.java b/src/main/java/com/netsdk/lib/structure/BYTE_ARRAY_256.java
new file mode 100644
index 0000000..d110878
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/BYTE_ARRAY_256.java
@@ -0,0 +1,7 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+
+public class BYTE_ARRAY_256 extends NetSDKLib.SdkStructure {
+ public byte[] obj_256 = new byte[256];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/BYTE_ARRAY_32.java b/src/main/java/com/netsdk/lib/structure/BYTE_ARRAY_32.java
new file mode 100644
index 0000000..79c76af
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/BYTE_ARRAY_32.java
@@ -0,0 +1,7 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+
+public class BYTE_ARRAY_32 extends NetSDKLib.SdkStructure {
+ public byte[] obj_32 = new byte[32];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/BYTE_ARRAY_34.java b/src/main/java/com/netsdk/lib/structure/BYTE_ARRAY_34.java
new file mode 100644
index 0000000..3410bdd
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/BYTE_ARRAY_34.java
@@ -0,0 +1,7 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+
+public class BYTE_ARRAY_34 extends NetSDKLib.SdkStructure {
+ public byte[] obj_34 = new byte[34];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/BYTE_ARRAY_40.java b/src/main/java/com/netsdk/lib/structure/BYTE_ARRAY_40.java
new file mode 100644
index 0000000..656ed84
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/BYTE_ARRAY_40.java
@@ -0,0 +1,7 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+
+public class BYTE_ARRAY_40 extends NetSDKLib.SdkStructure {
+ public byte[] obj_40 = new byte[40];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/BYTE_ARRAY_64.java b/src/main/java/com/netsdk/lib/structure/BYTE_ARRAY_64.java
new file mode 100644
index 0000000..14d6412
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/BYTE_ARRAY_64.java
@@ -0,0 +1,7 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+
+public class BYTE_ARRAY_64 extends NetSDKLib.SdkStructure {
+ public byte[] obj_64 = new byte[64];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/Byte64Arr.java b/src/main/java/com/netsdk/lib/structure/Byte64Arr.java
new file mode 100644
index 0000000..8998914
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/Byte64Arr.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description
+ * @date 2022/7/4 19:28
+ */
+public class Byte64Arr extends NetSDKLib.SdkStructure {
+ public byte[] arr = new byte[64];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/ByteSize16.java b/src/main/java/com/netsdk/lib/structure/ByteSize16.java
new file mode 100644
index 0000000..40ad745
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/ByteSize16.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description
+ * @date 2022/8/10 14:14
+ */
+public class ByteSize16 extends NetSDKLib.SdkStructure {
+ public byte[] byte16 = new byte[16];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CAR_INFO.java b/src/main/java/com/netsdk/lib/structure/CAR_INFO.java
new file mode 100644
index 0000000..f2e357b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CAR_INFO.java
@@ -0,0 +1,44 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 车辆运行状态信息
+ * @date 2021/09/01
+ */
+public class CAR_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 机动车电子标识序列号
+ */
+ public byte[] szCarId = new byte[128];
+ /**
+ * 车牌号码
+ */
+ public byte[] szPlateNumber = new byte[128];
+ /**
+ * 车辆类型,参考NetSDKLib.EM_CAR_TYPE
+ */
+ public int emCarType;
+ /**
+ * 速度单位为米每秒(m/s)
+ */
+ public int nSpeed;
+ /**
+ * 加速度单位为米每平方秒(m/s2)
+ */
+ public int nAcceleration;
+ /**
+ * 车头方向角以地理正北方向为起点的顺时针旋转角度,单位为度(°)
+ */
+ public int nHeadDirAngle;
+ /**
+ * 车辆故障报警自动驾驶汽车测试期间主动上报的故障信息,按位表示:Bit0:故障报警灯开启Bit1~Bit7:保留
+ */
+ public int nAlarm;
+ /**
+ * 预留字节
+ */
+ public byte[] byReserved = new byte[256];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_ABLOCK_DOOR_INFO.java b/src/main/java/com/netsdk/lib/structure/CFG_ABLOCK_DOOR_INFO.java
new file mode 100644
index 0000000..f40d39c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_ABLOCK_DOOR_INFO.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+import java.util.Arrays;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 门禁的AB互锁的组
+ * @date 2021/2/7
+ */
+public class CFG_ABLOCK_DOOR_INFO extends NetSDKLib.SdkStructure {
+ /** 最大的门禁的互锁门通道数 */
+ public static final int CFG_MAX_ABLOCK_DOORS_NUM = 8;
+ /** 有效互锁门的个数 */
+ public int nDoor;
+ /** 互锁的门的通道号 */
+ public int[] anDoor = new int[CFG_MAX_ABLOCK_DOORS_NUM];
+
+ @Override
+ public String toString() {
+ return "CFG_ABLOCK_DOOR_INFO{" +
+ "nDoor=" + nDoor +
+ ", anDoor=" + Arrays.toString(anDoor) +
+ '}';
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_ABLOCK_DOOR_INFO_EX.java b/src/main/java/com/netsdk/lib/structure/CFG_ABLOCK_DOOR_INFO_EX.java
new file mode 100644
index 0000000..794c972
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_ABLOCK_DOOR_INFO_EX.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 门禁的AB互锁的组
+*/
+public class CFG_ABLOCK_DOOR_INFO_EX extends NetSDKLib.SdkStructure
+{
+ /**
+ * 有效互锁门的个数
+ */
+ public int nDoorCount;
+ /**
+ * 互锁的门的通道号
+ */
+ public int[] nDoor = new int[32];
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[68];
+
+ public CFG_ABLOCK_DOOR_INFO_EX() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_ABLOCK_INFO.java b/src/main/java/com/netsdk/lib/structure/CFG_ABLOCK_INFO.java
new file mode 100644
index 0000000..3700a55
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_ABLOCK_INFO.java
@@ -0,0 +1,37 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 门禁的AB互锁功能, 多个门通道,只有其他B通道都关闭,唯一的A通道才打开
+ * @date 2021/2/7
+ */
+public class CFG_ABLOCK_INFO extends NetSDKLib.SdkStructure {
+ /** 最大的互锁组数 */
+ public static final int CFG_MAX_ABLOCK_GROUP_NUM = 8;
+ /** 使能 */
+ public boolean bEnable;
+ /** 有效互锁组数 */
+ public int nDoors;
+ /** 互锁组信息 */
+ public CFG_ABLOCK_DOOR_INFO[] stuDoors = (CFG_ABLOCK_DOOR_INFO[]) new CFG_ABLOCK_DOOR_INFO().toArray(CFG_MAX_ABLOCK_GROUP_NUM);
+
+ @Override
+ public String toString() {
+ StringBuilder builder = new StringBuilder();
+ for (int i = 0; i < nDoors; i++) {
+ builder.append(stuDoors[i].toString()).append("\n");
+ }
+ return "CFG_ABLOCK_INFO{"
+ + "bEnable="
+ + bEnable
+ + ", nDoors="
+ + nDoors
+ + ", stuDoors="
+ + builder.toString()
+ + '}';
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_ABLOCK_INFO_EX.java b/src/main/java/com/netsdk/lib/structure/CFG_ABLOCK_INFO_EX.java
new file mode 100644
index 0000000..00cddd2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_ABLOCK_INFO_EX.java
@@ -0,0 +1,31 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 门禁的AB互锁功能, 多个门通道,只有其他B通道都关闭,唯一的A通道才打开
+*/
+public class CFG_ABLOCK_INFO_EX extends NetSDKLib.SdkStructure
+{
+ /**
+ * 使能
+ */
+ public int bEnable;
+ /**
+ * 有效互锁组数
+ */
+ public int nDoorsCount;
+ /**
+ * 互锁组信息,参见结构体定义 {@link com.netsdk.lib.structure.CFG_ABLOCK_DOOR_INFO_EX}
+ */
+ public CFG_ABLOCK_DOOR_INFO_EX[] stuDoors = new CFG_ABLOCK_DOOR_INFO_EX[8];
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[64];
+
+ public CFG_ABLOCK_INFO_EX() {
+ for(int i = 0; i < stuDoors.length; i++){
+ stuDoors[i] = new CFG_ABLOCK_DOOR_INFO_EX();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_ABNORMALRUNDETECTION_INFO.java b/src/main/java/com/netsdk/lib/structure/CFG_ABNORMALRUNDETECTION_INFO.java
new file mode 100644
index 0000000..4708348
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_ABNORMALRUNDETECTION_INFO.java
@@ -0,0 +1,98 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 事件类型EVENT_IVS_ABNORMALRUNDETECTION(异常奔跑事件)对应的规则配置
+*/
+public class CFG_ABNORMALRUNDETECTION_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 信息
+ */
+ public byte[] szRuleName = new byte[128];
+ /**
+ * 规则名称,不同规则不能重名
+ */
+ public int bRuleEnable;
+ /**
+ * 规则使能
+ */
+ public byte bSensitivity;
+ /**
+ * 灵敏度, 取值1-10,值越小灵敏度越低
+ */
+ public byte bTrackEnable;
+ /**
+ * 触发跟踪使能,仅对绊线,入侵规则有效
+ */
+ public byte[] bReserved = new byte[1];
+ /**
+ * 保留字段
+ */
+ public int nObjectTypeNum;
+ /**
+ * 相应物体类型个数
+ */
+ public BYTE_ARRAY_128[] szObjectTypes = new BYTE_ARRAY_128[16];
+ /**
+ * 相应物体类型列表
+ */
+ public int nPtzPresetId;
+ /**
+ * 云台预置点编号 0~65535
+ */
+ public int nDetectRegionPoint;
+ /**
+ * 检测区域顶点数,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.CFG_POLYGON}
+ */
+ public NetSDKLib.CFG_POLYGON[] stuDetectRegion = new NetSDKLib.CFG_POLYGON[20];
+ /**
+ * 检测区域
+ */
+ public int bSizeFileter;
+ /**
+ * 规则特定的尺寸过滤器是否有效,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.CFG_SIZEFILTER_INFO}
+ */
+ public NetSDKLib.CFG_SIZEFILTER_INFO stuSizeFileter = new NetSDKLib.CFG_SIZEFILTER_INFO();
+ /**
+ * 规则特定的尺寸过滤器
+ */
+ public int nTriggerPosition;
+ /**
+ * 触发报警位置数
+ */
+ public byte[] bTriggerPosition = new byte[8];
+ /**
+ * 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
+ */
+ public int nDetectType;
+ /**
+ * 检测类型数
+ */
+ public byte[] bDetectType = new byte[4];
+ /**
+ * 检测类型,0-快速奔跑, 1-突然加速, 2-突然减速
+ */
+ public int nTriggerSpeed;
+ /**
+ * 触发速度,大于该速度报警 单位:km/h
+ */
+ public int nMinDuration;
+ /**
+ * 最短持续时间 单位:秒,0~65535,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.CFG_ALARM_MSG_HANDLE}
+ */
+ public NetSDKLib.CFG_ALARM_MSG_HANDLE stuEventHandler = new NetSDKLib.CFG_ALARM_MSG_HANDLE();
+ /**
+ * 报警联动,参见结构体定义 {@link com.netsdk.lib.structure.CFG_TIME_SECTION}
+ */
+ public CFG_TIME_SECTION_ARRAY_10[] stuTimeSection = new CFG_TIME_SECTION_ARRAY_10[7];
+
+ public CFG_ABNORMALRUNDETECTION_INFO() {
+ for(int i = 0; i < stuDetectRegion.length; i++){
+ stuDetectRegion[i] = new NetSDKLib.CFG_POLYGON();
+ }
+ for(int i = 0; i < stuTimeSection.length; i++){
+ stuTimeSection[i] = new CFG_TIME_SECTION_ARRAY_10();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_ACCESS_CONTROL_ASG.java b/src/main/java/com/netsdk/lib/structure/CFG_ACCESS_CONTROL_ASG.java
new file mode 100644
index 0000000..e054c47
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_ACCESS_CONTROL_ASG.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.*;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 门通道控制闸机参数
+ * @date 2021/2/7
+ */
+public class CFG_ACCESS_CONTROL_ASG extends NetSDKLib.SdkStructure {
+ /** 通行模式,{@link com.netsdk.lib.enumeration.EM_PASS_MODE} */
+ public int emPassMode;
+ /** 开门速度档位, 范围:0-7,对应1-8档 */
+ public int nOpenDoorSpeed;
+ /** 通行超时时间, 范围:2-60,单位:秒 */
+ public int nPassTimeOut;
+ /** 延时关门时间, 范围:0-60,单位:秒 */
+ public int nCloseDelayTime;
+ /** 闸机安全等级, 范围:0-4,对应1-5级 */
+ public int nSecurityLevel;
+ /** 二次开启功能开关;False:关闭,True:开启 */
+ public boolean bSecondOpenEnable;
+ /** 记忆功能开关;False:关闭,True:开启 */
+ public boolean bMemoryModeEnable;
+ /** 闸机防冲撞模式,参考枚举{@link EM_COLLISION_MODE} */
+ public int emCollisionMode;
+ /** 设备音量等级共8档, 范围:0-7, 0级表示静音 */
+ public int nVolumeLevel;
+ /** 闸机断电以后门摆动放向,{@link com.netsdk.lib.enumeration.EM_DIRECTION_AFTER_POWER_OFF} */
+ public int emDirectionAfterPowerOff;
+ /** 工作模式,{@link EM_ASG_WORK_MODE} */
+ public int emWorkMode; // 工作模式
+ /** 启动模式,{@link EM_STARTUP_MODE} */
+ public int emStartUpMode;
+ /** 主机侧门翼零位微调角度,进门方向右手边为主机侧门翼 */
+ public int nMasterWingAngleAdjust;
+ /** 从机侧门翼零位微调角度,进门方向左手边为从机侧门翼 */
+ public int nSlaveWingAngleAdjust;
+ /** 闸机类型,{@link EM_GATE_TYPE} */
+ public int emGateType;
+ /** 通道宽度,{@link EM_CHANNEL_WIDTH} */
+ public int emChannelWidth;
+ /** bSecondOpenEnable作用时间段,AccessTimeSchedule 配置索引 */
+ public int nSecondOpenTimeSection;
+ /** bMemoryModeEnable作用时间段,AccessTimeSchedule 配置索引 */
+ public int nMemoryModeTimeSection;
+ /** emWorkMode作用时间段,AccessTimeSchedule 配置索引 */
+ public int nWorkModeTimeSection;
+ /** 是否清理通行人数 */
+ public boolean bClearPassNum;
+ /** 保留字节 */
+ public byte[] byReserved = new byte[112];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_ACCESS_FIRSTENTER_INFO_EX.java b/src/main/java/com/netsdk/lib/structure/CFG_ACCESS_FIRSTENTER_INFO_EX.java
new file mode 100644
index 0000000..04c195a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_ACCESS_FIRSTENTER_INFO_EX.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 首卡开门信息(拓展)与 CFG_ACCESS_FIRSTENTER_INFO 配合使用,是其拓展
+*/
+public class CFG_ACCESS_FIRSTENTER_INFO_EX extends NetSDKLib.SdkStructure
+{
+ /**
+ * 验证假日计划,需要首卡验证的假日计划
+ */
+ public int nHolidayScheduleID;
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[124];
+
+ public CFG_ACCESS_FIRSTENTER_INFO_EX() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_ACCESS_GENERAL_INFO.java b/src/main/java/com/netsdk/lib/structure/CFG_ACCESS_GENERAL_INFO.java
new file mode 100644
index 0000000..81caf3f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_ACCESS_GENERAL_INFO.java
@@ -0,0 +1,206 @@
+package com.netsdk.lib.structure;
+import com.sun.jna.Pointer;
+
+import com.netsdk.lib.NetSDKLib;
+
+import java.util.Arrays;
+
+import static com.netsdk.lib.constant.SDKStructureFieldLenth.MAX_ADDRESS_LEN;
+import static com.netsdk.lib.constant.SDKStructureFieldLenth.MAX_PASSWORD_LEN;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 门禁基本配置
+ * @date 2021/2/7
+ */
+public class CFG_ACCESS_GENERAL_INFO extends NetSDKLib.SdkStructure {
+ /** 开门音频文件路径 */
+ public byte[] szOpenDoorAudioPath = new byte[MAX_ADDRESS_LEN];
+ /** 关门音频文件路径 */
+ public byte[] szCloseDoorAudioPath = new byte[MAX_ADDRESS_LEN];
+ /** 有人音频文件路径 */
+ public byte[] szInUsedAuidoPath = new byte[MAX_ADDRESS_LEN];
+ /** 暂停使用音频文件路径 */
+ public byte[] szPauseUsedAudioPath = new byte[MAX_ADDRESS_LEN];
+ /** 门未关音频文件路径 */
+ public byte[] szNotClosedAudioPath = new byte[MAX_ADDRESS_LEN];
+ /** 等待提示音频文件路径 */
+ public byte[] szWaitingAudioPath = new byte[MAX_ADDRESS_LEN];
+ /** 开锁命令响应间隔时间,单位秒,取值10、15(默认值)、20 */
+ public int nUnlockReloadTime;
+ /** 开锁输出保持时间,单位秒,取值1、2(默认)、3、4、5、6、9、15。 */
+ public int nUnlockHoldTime;
+ // 能力,bool对应java中byte
+ public byte abProjectPassword;
+ public byte abAccessProperty;
+ public byte abABLockInfo;
+ public byte byReserved;
+ /** 工程密码 */
+ public byte[] szProjectPassword = new byte[MAX_PASSWORD_LEN];
+ /** 门禁通道单双向配置,对应枚举{@link com.netsdk.lib.enumeration.CFG_ACCESS_PROPERTY_TYPE} */
+ public int emAccessProperty;
+ /** AB互锁信息 */
+ public CFG_ABLOCK_INFO stuABLockInfo;
+ /** 胁迫密码 */
+ public byte[] szDuressPassword = new byte[MAX_PASSWORD_LEN];
+ /** 胁迫使能 */
+ public boolean bDuressEnable;
+ /** 是否启用个性化密码 */
+ public boolean bCustomPasswordEnable;
+ /** 公共密码 */
+ public byte[] szCommonPassword = new byte[MAX_PASSWORD_LEN];
+ /** 梯控高峰时间段, 值为CFG_ACCESS_TIMESCHEDULE_INFO配置的数组下标 */
+ public int nPeakTimeSection;
+ /** 是否为梯控高峰期, TRUE:高峰期, FALSE:平峰期 */
+ public boolean bPeakState;
+ /** 远程校验超时时间,单位:秒, 默认值:5秒,范围[1-15] */
+ public int nRemoteAuthTimeOut;
+ /** 楼层权限信息,每一个bit对应一个楼层,bit值1表示公共层,0表示权限楼层 */
+ public byte[] arrFloorPermission = new byte[64];
+ /** arrFloorPermission 数组个数 */
+ public int nFloorPermission;
+ /** 门通道控制闸机参数 */
+ public CFG_ACCESS_CONTROL_ASG stuAccessControlASG;
+ /** 门禁开门提示音 */
+ public CFG_ACCESS_VOICE stuAccessVoice;
+ /**
+ * 门磁类型,参考{ @link EM_ACCESS_SENSOR_TYPE }
+ */
+ public int emSensorType;
+ /**
+ * 负楼层偏移:0~15
+ */
+ public int nFloorOffset;
+ /**
+ * 开门按钮使能
+ */
+ public int bButtonExitEnable;
+ /**
+ * 是否启用个性化开门方式
+ */
+ public int bCustomMethodEnable;
+ /**
+ * -1:未知,0: 只允许密码开锁,1: 只允许刷卡开锁,2: 密码或刷卡开锁,3: 先刷卡后密码开锁,4: 先密码后刷卡开锁。,5: 只允许信息开锁,6: 密码或刷卡或信息开锁,7: 密码+刷卡+信息组合开锁,8: 密码+信息组合开锁,9: 刷卡+信息组合开锁
+ */
+ public int nMethod;
+ /**
+ * 闭锁前是否检测门磁信号
+ */
+ public int bCheckSensorBeforeLock;
+ /**
+ * 开锁记录是否上传
+ */
+ public int bUnlockRecordUpload;
+ /**
+ * 门磁检测时间
+ */
+ public int nCheckSensorTime;
+ /**
+ * 发卡密码
+ */
+ public byte[] szSendCardPassword = new byte[64];
+ /**
+ * 录像使能
+ */
+ public int bRecordEnable;
+ /**
+ * 呼梯使能
+ */
+ public int bCallLiftEnable;
+ /**
+ * 呼梯的协议类型
+ */
+ public byte[] szCallLiftType = new byte[32];
+ /**
+ * 抓图上传使能
+ */
+ public int bSnapshotUpload;
+ /**
+ * 呼叫自动抓拍使能
+ */
+ public int bAutoSnapshot;
+ /**
+ * Dtmf 开门命令
+ */
+ public byte[] szOpenDoorCommand = new byte[32];
+ /**
+ * Dtmf 第二个开门命令
+ */
+ public byte[] szOpenDoorSecondCommand = new byte[32];
+ /**
+ * 门禁协议 0:未知 1 :本机开关量控制 2:门禁协议(串口协议) 3:门禁udp开锁 4:私有串口
+ */
+ public int nAccessProtocol;
+ /**
+ * 0:未知 1 :开本地锁 2:485外接的锁
+ */
+ public int nAccessProtocolSecond;
+ /**
+ * 门禁控制器下的子通道nAccessProtocol为2有效
+ */
+ public int nEntranceLockChannel;
+ /**
+ * 开锁方式数量
+ */
+ public int nUnlockRecordTypeNum;
+ /**
+ * 开锁方式 0:未知 1:Password 2:Button 3:FgerPrint 4:QRCode 5:Card 6:Remote 7:BlueTooth 8:Fce 9:DTMF 10:QRCodeEx 11:CustomPassword
+ */
+ public int[] nUnlockRecordType = new int[32];
+ /**
+ * 密钥数组
+ */
+ public BYTE_ARRAY_32[] szICKeyValue = new BYTE_ARRAY_32[2];
+ /**
+ * 密钥数量
+ */
+ public int nICKeyValueNum;
+ /**
+ * 检验IC卡密码功能使能
+ */
+ public int bICKeyEnable;
+ /**
+ * 控制是否使用AB互锁信息扩展
+ */
+ public int bABLockInfo;
+ /**
+ * AB互锁信息扩展,由用户申请内存,大小为sizeof(CFG_ABLOCK_INFO_EX),参见结构体定义 {@link com.netsdk.lib.structure.CFG_ABLOCK_INFO_EX}
+ */
+ public Pointer pstuABLockInfoEx;
+ /** 保留字节 */
+ public byte[] szReserved = new byte[696-NetSDKLib.POINTERSIZE];
+
+ @Override
+ public String toString() {
+ return "CFG_ACCESS_GENERAL_INFO{" +
+ "szOpenDoorAudioPath=" + Arrays.toString(szOpenDoorAudioPath) +
+ ", szCloseDoorAudioPath=" + Arrays.toString(szCloseDoorAudioPath) +
+ ", szInUsedAuidoPath=" + Arrays.toString(szInUsedAuidoPath) +
+ ", szPauseUsedAudioPath=" + Arrays.toString(szPauseUsedAudioPath) +
+ ", szNotClosedAudioPath=" + Arrays.toString(szNotClosedAudioPath) +
+ ", szWaitingAudioPath=" + Arrays.toString(szWaitingAudioPath) +
+ ", nUnlockReloadTime=" + nUnlockReloadTime +
+ ", nUnlockHoldTime=" + nUnlockHoldTime +
+ ", abProjectPassword=" + abProjectPassword +
+ ", abAccessProperty=" + abAccessProperty +
+ ", abABLockInfo=" + abABLockInfo +
+ ", byReserved=" + byReserved +
+ ", szProjectPassword=" + Arrays.toString(szProjectPassword) +
+ ", emAccessProperty=" + emAccessProperty +
+ ", stuABLockInfo=" + stuABLockInfo +
+ ", szDuressPassword=" + Arrays.toString(szDuressPassword) +
+ ", bDuressEnable=" + bDuressEnable +
+ ", bCustomPasswordEnable=" + bCustomPasswordEnable +
+ ", szCommonPassword=" + Arrays.toString(szCommonPassword) +
+ ", nPeakTimeSection=" + nPeakTimeSection +
+ ", bPeakState=" + bPeakState +
+ ", nRemoteAuthTimeOut=" + nRemoteAuthTimeOut +
+ ", arrFloorPermission=" + Arrays.toString(arrFloorPermission) +
+ ", nFloorPermission=" + nFloorPermission +
+ ", stuAccessControlASG=" + stuAccessControlASG +
+ ", stuAccessVoice=" + stuAccessVoice +
+ '}';
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_ACCESS_VOICE.java b/src/main/java/com/netsdk/lib/structure/CFG_ACCESS_VOICE.java
new file mode 100644
index 0000000..33b7cc5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_ACCESS_VOICE.java
@@ -0,0 +1,19 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.CFG_EM_VOICE_ID;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 门禁开门提示声
+ * @date 2021/2/7
+ */
+public class CFG_ACCESS_VOICE extends NetSDKLib.SdkStructure {
+ /** 当前播放语音ID,{@link CFG_EM_VOICE_ID} */
+ public int emCurrentVoiceID;
+ public CFG_ACCESS_VOICE_INFO[] arrayVoiceInfo = (CFG_ACCESS_VOICE_INFO[]) new CFG_ACCESS_VOICE_INFO().toArray(16); // 语音列表
+ public int nVoiceCount; // arrayVoiceInfo 个数
+ public byte[] byReserved = new byte[1024]; // 预留字段
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_ACCESS_VOICE_INFO.java b/src/main/java/com/netsdk/lib/structure/CFG_ACCESS_VOICE_INFO.java
new file mode 100644
index 0000000..7643637
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_ACCESS_VOICE_INFO.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.CFG_EM_ASG_VOICE_DIRECTION;
+import com.netsdk.lib.enumeration.CFG_EM_VOICE_ID;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 门禁开门语音信息
+ * @date 2021/2/7
+ */
+public class CFG_ACCESS_VOICE_INFO extends NetSDKLib.SdkStructure {
+ /** 语音ID,{@link CFG_EM_VOICE_ID} */
+ public int emVoiceID;
+ /** 语音内容 */
+ public byte[] szVoiceContent = new byte[128];
+ /** 语音文件路径及名称 */
+ public byte[] szFileName = new byte[128];
+ /** 闸机进出语音方向,{@link CFG_EM_ASG_VOICE_DIRECTION} */
+ public int emAsgVoiceDirection;
+ /** 预留字段 */
+ public byte[] byReserved = new byte[1020];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_ACCURATE_NUMBER_STAT.java b/src/main/java/com/netsdk/lib/structure/CFG_ACCURATE_NUMBER_STAT.java
new file mode 100644
index 0000000..e106a16
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_ACCURATE_NUMBER_STAT.java
@@ -0,0 +1,60 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 精准客流能力,客流ReID, 人脸去重,客流聚档的对外能力
+ * @origin autoTool
+ * @date 2023/09/22 13:39:22
+ */
+public class CFG_ACCURATE_NUMBER_STAT extends NetSDKLib.SdkStructure {
+ /**
+ * 是否支持精准客流
+ */
+ public int bSupport;
+ /**
+ * 是否支持本地报表查询
+ */
+ public int bSupportLocalDataStore;
+ /**
+ * 精准人数统计类型 {@link com.netsdk.lib.enumeration.EM_RULE_TYPE_ACCURATE}
+ */
+ public int emRuleType;
+ /**
+ * 支持客流融合的通道号个数
+ */
+ public int nChannelsNum;
+ /**
+ * 支持客流融合的通道号,在RuleType为NumberStatCluster时有效
+ */
+ public int[] nChannels = new int[1024];
+ /**
+ * 单个通道支持的区域个数,NVR填写1,IPC根据支持的区域数填写
+ */
+ public int nAreaNum;
+ /**
+ * 是否支持营业时间设置,FaceRecognition存在支持和不支持营业时间设置两种形态
+ */
+ public int bSupportTimeCfg;
+ /**
+ * 支持的去重方向个数
+ */
+ public int nDirectionNum;
+ /**
+ * 支持的去重方向
+ */
+ public int[] emDirection = new int[32];
+ /**
+ * 支持查询粒度个数
+ */
+ public int nGranularityNum;
+ /**
+ * 支持查询粒度
+ */
+ public byte[] szGranularity = new byte[8 * 8];
+
+ public CFG_ACCURATE_NUMBER_STAT() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_ACTIVITY_ANALYSE_CAPS.java b/src/main/java/com/netsdk/lib/structure/CFG_ACTIVITY_ANALYSE_CAPS.java
new file mode 100644
index 0000000..2621072
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_ACTIVITY_ANALYSE_CAPS.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 活跃度统计规则
+ * @date 2021/01/11
+ */
+public class CFG_ACTIVITY_ANALYSE_CAPS extends NetSDKLib.SdkStructure {
+ /**
+ * 是否支持本地数据存储
+ */
+ public int bSupportLocalDataStore;
+ /**
+ * 该规则支持的最大规则数
+ */
+ public int nMaxRules;
+ /**
+ * 预留字段
+ */
+ public byte[] byReserved = new byte[256];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_ALARMIN_INFO.java b/src/main/java/com/netsdk/lib/structure/CFG_ALARMIN_INFO.java
new file mode 100644
index 0000000..338b898
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_ALARMIN_INFO.java
@@ -0,0 +1,100 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.NetSDKLib.*;
+
+
+/**
+ * @author 421657
+ * @description 外部报警配置
+ * @origin autoTool
+ * @date 2023/11/01 20:42:35
+ */
+public class CFG_ALARMIN_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * / 报警通道号(0开始)
+ */
+ public int nChannelID;
+ /**
+ * / 使能开关
+ */
+ public int bEnable;
+ /**
+ * / 报警通道名称
+ */
+ public byte[] szChnName = new byte[64];
+ /**
+ * / 报警器类型,0:常闭,1:常开
+ */
+ public int nAlarmType;
+ /**
+ * / 报警联动
+ */
+ public CFG_ALARM_MSG_HANDLE stuEventHandler = new CFG_ALARM_MSG_HANDLE();
+ /**
+ * / 事件响应时间段,时间段获取和设置以此成员为准,忽略 stuEventHandler 中的 stuTimeSection
+ */
+ public CFG_TIME_SECTION[] stuTimeSection = new CFG_TIME_SECTION[7 * 6];
+ /**
+ * /
+ */
+ public int abDevID;
+ /**
+ * / 设备ID
+ */
+ public byte[] szDevID = new byte[128];
+ /**
+ * / 传感器触发模式, 0:高有效,1低有效;
+ * / 具体表现为传感器接地or电源,与nAlarmType组合使用
+ */
+ public int nPole;
+ /**
+ * 传感器感应方式 {@link com.netsdk.lib.enumeration.EM_SENSE_METHOD}
+ */
+ public int emSense;
+ /**
+ * / 报警使能控制方式 {@link com.netsdk.lib.enumeration.EM_CTRL_ENABLE}
+ */
+ public int emCtrl;
+ /**
+ * / 延时撤防时间,防区类型为"Delay"(延时防区)时才有效, 单位: 秒, 最大时间通过查询能力获得
+ * / emCtrl值为EM_CTRL_NORMAL或EM_CTRL_ALWAYS_EN 时有效。
+ */
+ public int nDisDelay;
+ /**
+ * / 防区类型, 具体支持的类型通过查询能力获得 {@link com.netsdk.lib.enumeration.EM_CFG_DEFENCEAREATYPE}
+ */
+ public int emDefenceAreaType;
+ /**
+ * / 延时布防时间, 防区类型为"Delay"(延时防区)时才有效, 单位: 秒, 最大时间通过查询能力获得
+ */
+ public int nEnableDelay;
+ /**
+ * / 根地址, -1表示无效, 0表示本地通道, 1表示连接在第一个串口上的扩展通道, 2、3...以此类推
+ */
+ public int nSlot;
+ /**
+ * / 第一级级联地址, 表示连接在第nSlot串口上的第nLevel1个探测器或仪表, -1表示无效, 从0开始
+ */
+ public int nLevel1;
+ /**
+ * / 表示nLevel2字段是否存在
+ */
+ public byte abLevel2;
+ /**
+ * / 第二级级联地址, 表示连接在第nLevel1个的仪表上的探测器序号, -1表示无效, 从0开始
+ */
+ public int nLevel2;
+ /**
+ * / 门未关超时时间,单位为s,范围 15s-300s
+ */
+ public int nDoorNotClosedTimeout;
+
+ public CFG_ALARMIN_INFO() {
+ for (int i = 0; i < stuTimeSection.length; i++) {
+ stuTimeSection[i] = new CFG_TIME_SECTION();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_ALARM_MSG_HANDLE_EX.java b/src/main/java/com/netsdk/lib/structure/CFG_ALARM_MSG_HANDLE_EX.java
new file mode 100644
index 0000000..6fb6d78
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_ALARM_MSG_HANDLE_EX.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 报警联动信息扩展
+*/
+public class CFG_ALARM_MSG_HANDLE_EX extends NetSDKLib.SdkStructure
+{
+ /**
+ * 标题文本字体大小,单位像素,对应SnapshotTitle,个数与stuSnapshotTitle匹配。
+ */
+ public int[] nSnapshotTitleFontSize = new int[256];
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[1024];
+
+ public CFG_ALARM_MSG_HANDLE_EX() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_ALARM_SENSE_METHOD.java b/src/main/java/com/netsdk/lib/structure/CFG_ALARM_SENSE_METHOD.java
new file mode 100644
index 0000000..85f21f7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_ALARM_SENSE_METHOD.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_QueryNewSystemInfo 接口的命令 CFG_CAP_ALARM (获取报警能力集)对应结构体
+ * 传感器报警方式
+ * @date 2023/04/18 10:57:31
+ */
+public class CFG_ALARM_SENSE_METHOD extends NetSDKLib.SdkStructure {
+ /**
+ * 支持的传感器方式数
+ */
+ public int nSupportSenseMethodNum;
+ /**
+ * 支持的传感器方式,参考枚举{ @link EM_SENSE_METHOD}
+ */
+ public int[] emSupportSenseMethod = new int[16];
+
+ public CFG_ALARM_SENSE_METHOD() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_ALARM_SUBSYSTEM_INFO.java b/src/main/java/com/netsdk/lib/structure/CFG_ALARM_SUBSYSTEM_INFO.java
new file mode 100644
index 0000000..11f7c47
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_ALARM_SUBSYSTEM_INFO.java
@@ -0,0 +1,63 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 报警子系统配置 ==>CFG_CMD_ALARM_SUBSYSTEM
+ * @date 2023/03/15 19:18:13
+ */
+public class CFG_ALARM_SUBSYSTEM_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 本地防区数目
+ */
+ public int nZoneNum;
+ /**
+ * 本地防区号
+ */
+ public int[] anZone = new int[256];
+ /**
+ * 扩展防区数目
+ */
+ public int nExZoneNum;
+ /**
+ * 扩展防区号
+ */
+ public int[] anExZone = new int[256];
+ /**
+ * 延时撤防时间(进入延时), 单位为秒
+ */
+ public int nDisableDelay;
+ /**
+ * 延时布防时间(退出延时), 单位为秒
+ */
+ public int nEnableDelay;
+ /**
+ * 是否为公共子系统
+ */
+ public int bIsPublic;
+ /**
+ * 公共所属的子系统数目
+ */
+ public int nPublicSubSystem;
+ /**
+ * 公共所属的关联子系统
+ */
+ public int[] anPublicSubSystem = new int[256];
+ /**
+ * 报警联动
+ */
+ public CFG_ALARM_SUBSYSTEM_MSG_HANDLE stuEventHandler = new CFG_ALARM_SUBSYSTEM_MSG_HANDLE();
+ /**
+ * 是否启用子系统
+ */
+ public int bEnable;
+
+ public CFG_ALARM_SUBSYSTEM_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_ALARM_SUBSYSTEM_MSG_HANDLE.java b/src/main/java/com/netsdk/lib/structure/CFG_ALARM_SUBSYSTEM_MSG_HANDLE.java
new file mode 100644
index 0000000..77eeb6b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_ALARM_SUBSYSTEM_MSG_HANDLE.java
@@ -0,0 +1,31 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 报警联动
+ * @date 2023/03/15 19:18:13
+ */
+public class CFG_ALARM_SUBSYSTEM_MSG_HANDLE extends NetSDKLib.SdkStructure {
+ /**
+ * 报警输出使能
+ */
+ public int bAlarmOutEnable;
+ /**
+ * 警号输出使能
+ */
+ public int bAlarmBellEnable;
+ /**
+ * 报警输出通道号个数
+ */
+ public int nAlarmOutChannelNum;
+ /**
+ * 报警输出通道号列表
+ */
+ public int[] nAlarmOutChannels = new int[256];
+
+ public CFG_ALARM_SUBSYSTEM_MSG_HANDLE() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_ANATOMYTEMP_DETECT_SCENE_CAPS.java b/src/main/java/com/netsdk/lib/structure/CFG_ANATOMYTEMP_DETECT_SCENE_CAPS.java
new file mode 100644
index 0000000..c163f5a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_ANATOMYTEMP_DETECT_SCENE_CAPS.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 人体测温检测场景能力
+ * @date 2021/01/11
+ */
+public class CFG_ANATOMYTEMP_DETECT_SCENE_CAPS extends NetSDKLib.SdkStructure {
+ /**
+ * 人体测温智能支持类型 ,参考{ @link CFG_EM_FACEDETECT_TYPE }
+ */
+ public int[] emFaceDetectTypes = new int[32];
+ /**
+ * 人体测温智能支持类型的个数
+ */
+ public int nFaceDetectTypesNum;
+ /**
+ * 可见光的能力配置
+ */
+ public CFG_ANATOMYTEMP_VISUAL_CAPS stuVisual;
+ /**
+ * 预留
+ */
+ public byte[] byReserved = new byte[1024];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_ANATOMYTEMP_VISUAL_CAPS.java b/src/main/java/com/netsdk/lib/structure/CFG_ANATOMYTEMP_VISUAL_CAPS.java
new file mode 100644
index 0000000..2bfc7be
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_ANATOMYTEMP_VISUAL_CAPS.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 人体测温的可见光的能力
+ * @date 2021/01/11
+ */
+public class CFG_ANATOMYTEMP_VISUAL_CAPS extends NetSDKLib.SdkStructure {
+ /**
+ * 是否支持人脸左右角度过滤
+ */
+ public int bSupportFaceRight;
+ /**
+ * 是否支持人脸上下角度过滤
+ */
+ public int bSupportFaceUp;
+ /**
+ * 是否支持人脸左右歪头角度过滤
+ */
+ public int bSupportFaceRoll;
+ /**
+ * 预留
+ */
+ public byte[] byReserved = new byte[64];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_AREA_MODE_INFO.java b/src/main/java/com/netsdk/lib/structure/CFG_AREA_MODE_INFO.java
new file mode 100644
index 0000000..4d1e159
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_AREA_MODE_INFO.java
@@ -0,0 +1,42 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 区域信息
+ * @date 2022/07/22 14:43:48
+ */
+public class CFG_AREA_MODE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 区域名称
+ */
+ public byte[] szName = new byte[32];
+ /**
+ * 该区域的总车位个数
+ */
+ public int nCount;
+ /**
+ * 区域坐标个数
+ */
+ public int nAreaCount;
+ /**
+ * 区域坐标
+ */
+ public NetSDKLib.CFG_POLYGON[] stuArea = new NetSDKLib.CFG_POLYGON[20];
+ /**
+ * 车位类型: 0:未知, 1:小车车位, 2:大车车位, 3:危化品车位, 4:货车车位, 5:小客车车位, 6:大客车车位
+ */
+ public int nSpaceType;
+ /**
+ * 保留字节
+ */
+ public byte[] szReserved = new byte[60];
+
+ public CFG_AREA_MODE_INFO() {
+ for (int i = 0; i < stuArea.length; i++) {
+ stuArea[i] = new NetSDKLib.CFG_POLYGON();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_AUDIO_INPUT.java b/src/main/java/com/netsdk/lib/structure/CFG_AUDIO_INPUT.java
new file mode 100644
index 0000000..2303996
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_AUDIO_INPUT.java
@@ -0,0 +1,16 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 视频输入配置
+*/
+public class CFG_AUDIO_INPUT extends NetSDKLib.SdkStructure
+{
+ /**
+ * 输入音频源. 如果音频通道的输入是由多路合成,用|分割., 例:"Mic|LineIn|Remote" 表示此音频通道由Mic、LineIn和远程通道的音频输入构成., "Coaxial" 同轴口音频, "BNC" 本地BNC口音频, "HDCVI_BNC" 远程HDCVI设备音频, "LineIn" 线性输入, "Mic" 麦克风输入, "MicOut" 麦克输出, "Remote" 远程通道(仅对画中画通道有意义,表示画中画主画面为远程通道时,将当前远程通道的音频作为音频输入)
+ */
+ public byte[] szAudioSource = new byte[256];
+
+ public CFG_AUDIO_INPUT() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_AUDIO_SPIRIT.java b/src/main/java/com/netsdk/lib/structure/CFG_AUDIO_SPIRIT.java
new file mode 100644
index 0000000..bed4f22
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_AUDIO_SPIRIT.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 语音激励
+ * @date 2020/11/9
+ */
+public class CFG_AUDIO_SPIRIT extends NetSDKLib.SdkStructure {
+ /** 使能 */
+ public boolean bEnable;
+ /** 激励音量阈值, 0~100 */
+ public int nAudioLimit; //
+ /** 激励延时时间, 单位: 秒 */
+ public int nDelayTime; //
+ /**
+ * 语音激励音频通道属性,由用户申请内存,大小为sizeof(CFG_AUDIO_SPIRIT_CHANNEL)*nChannelCount 对应结构体数组{@link
+ * CFG_AUDIO_SPIRIT_CHANNEL}
+ */
+ public Pointer pstuChannels; //
+ /** 音频通道数 */
+ public int nChannelCount; //
+ /** 激励联动项 */
+ public CFG_AUDIO_SPIRIT_LINKAGE stuLinkage; //
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_AUDIO_SPIRIT_CHANNEL.java b/src/main/java/com/netsdk/lib/structure/CFG_AUDIO_SPIRIT_CHANNEL.java
new file mode 100644
index 0000000..6b383ba
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_AUDIO_SPIRIT_CHANNEL.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 语音激励音频通道配置
+ * @date 2020/11/9
+ */
+public class CFG_AUDIO_SPIRIT_CHANNEL extends NetSDKLib.SdkStructure {
+ /**
+ * 语音激励联动视频通道号
+ */
+ public int nChannel;
+ /**
+ * 语音激励优先级, 1~10
+ */
+ public int nPriority;
+ /**
+ * 对应的视频摄像机的预置点, 与云台一致0~255
+ */
+ public int nPreset;
+
+ @Override
+ public String toString() {
+ return "CFG_AUDIO_SPIRIT_CHANNEL{" +
+ "nChannel=" + nChannel +
+ ", nPriority=" + nPriority +
+ ", nPreset=" + nPreset +
+ '}';
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_AUDIO_SPIRIT_LINKAGE.java b/src/main/java/com/netsdk/lib/structure/CFG_AUDIO_SPIRIT_LINKAGE.java
new file mode 100644
index 0000000..a51ddb3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_AUDIO_SPIRIT_LINKAGE.java
@@ -0,0 +1,19 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+import static com.netsdk.lib.constant.SDKStructureFieldLenth.CFG_MAX_LOWER_MATRIX_OUTPUT;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 语音激励联动项
+ * @date 2020/11/9
+ */
+public class CFG_AUDIO_SPIRIT_LINKAGE extends NetSDKLib.SdkStructure {
+ /** 矩阵输出口数量 */
+ public int nOutputNum;
+ /** 同步大画面输出到(多个)矩阵输出口 */
+ public int[] nOutputChanel = new int[CFG_MAX_LOWER_MATRIX_OUTPUT];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_AUTO_HOMING.java b/src/main/java/com/netsdk/lib/structure/CFG_AUTO_HOMING.java
new file mode 100644
index 0000000..32f7de1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_AUTO_HOMING.java
@@ -0,0 +1,22 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @创建人 291189
+ * @创建时间 2021/5/28
+ * @描述
+ */
+public class CFG_AUTO_HOMING extends NetSDKLib.SdkStructure {
+ /**
+ * 自动归位开关
+ */
+ public int bEnable;
+ /**
+ * 空闲时间,表示空闲的时间,单位为秒
+ */
+ public int nTime;
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_AUTO_REMOTE_CHECK_INFO_EX.java b/src/main/java/com/netsdk/lib/structure/CFG_AUTO_REMOTE_CHECK_INFO_EX.java
new file mode 100644
index 0000000..b12c58a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_AUTO_REMOTE_CHECK_INFO_EX.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 开门远程验证扩展
+ * @origin autoTool
+ * @date 2023/08/24 14:01:18
+ */
+public class CFG_AUTO_REMOTE_CHECK_INFO_EX extends NetSDKLib.SdkStructure {
+ /**
+ * 远程验证假日计划, 需要远程验证的假日计划, 值为AccessHolidaySchedule索引
+ */
+ public int nHolidayScheduleID;
+ /**
+ * 保留字节
+ */
+ public byte[] szResvered = new byte[60];
+
+ public CFG_AUTO_REMOTE_CHECK_INFO_EX() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_BACK_TO_DETECTION_INFO.java b/src/main/java/com/netsdk/lib/structure/CFG_BACK_TO_DETECTION_INFO.java
new file mode 100644
index 0000000..97a534f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_BACK_TO_DETECTION_INFO.java
@@ -0,0 +1,78 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 事件类型EVENT_IVS_BACK_TO_DETECTION(背对检测事件)对应的规则配置
+*/
+public class CFG_BACK_TO_DETECTION_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 规则名称,不同规则不能重名
+ */
+ public byte[] szRuleName = new byte[128];
+ /**
+ * 规则使能
+ */
+ public int bRuleEnable;
+ /**
+ * 相应物体类型个数
+ */
+ public int nObjectTypeNum;
+ /**
+ * 相应物体类型列表
+ */
+ public BYTE_ARRAY_128[] szObjectTypes = new BYTE_ARRAY_128[16];
+ /**
+ * 报警联动,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.CFG_ALARM_MSG_HANDLE}
+ */
+ public NetSDKLib.CFG_ALARM_MSG_HANDLE stuEventHandler = new NetSDKLib.CFG_ALARM_MSG_HANDLE();
+ /**
+ * 事件响应时间段,参见结构体定义 {@link com.netsdk.lib.structure.CFG_TIME_SECTION}
+ */
+ public CFG_TIME_SECTION_ARRAY_10[] stuTimeSection = new CFG_TIME_SECTION_ARRAY_10[7];
+ /**
+ * 云台预置点编号 0~65535
+ */
+ public int nPtzPresetId;
+ /**
+ * 警戒区端点个数
+ */
+ public int nDetectRegionNum;
+ /**
+ * 警戒区, 多边形类型,多边形中每个端点的坐标归一化到[0,8192)区间。,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.CFG_POLYLINE}
+ */
+ public NetSDKLib.CFG_POLYLINE[] stuDetectRegion = new NetSDKLib.CFG_POLYLINE[20];
+ /**
+ * 最短持续时间, 单位 s, 默认2,范围[1,3600]
+ */
+ public int nMinDuration;
+ /**
+ * 灵敏度灵敏度,[1, 10], 默认值5
+ */
+ public int nSensitivity;
+ /**
+ * 最大检测高度,单位cm
+ */
+ public int nMaxHeight;
+ /**
+ * 最小检测高度,单位cm
+ */
+ public int nMinHeight;
+ /**
+ * 重复报警间隔,为0不重复报警, 单位:秒,默认0,范围[0,300]
+ */
+ public int nReportInterval;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[4096];
+
+ public CFG_BACK_TO_DETECTION_INFO() {
+ for(int i = 0; i < stuTimeSection.length; i++){
+ stuTimeSection[i] = new CFG_TIME_SECTION_ARRAY_10();
+ }
+ for(int i = 0; i < stuDetectRegion.length; i++){
+ stuDetectRegion[i] = new NetSDKLib.CFG_POLYLINE();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_CALIBRATE_INFO.java b/src/main/java/com/netsdk/lib/structure/CFG_CALIBRATE_INFO.java
new file mode 100644
index 0000000..30ed62a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_CALIBRATE_INFO.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 标定基本信息
+ * @date 2021/02/02
+ */
+public class CFG_CALIBRATE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 标定信息单元二维数组
+ */
+ public CFG_CALIBRATE_UNIT_INFO_ARR[] stuCalibrateUnitInfo = new CFG_CALIBRATE_UNIT_INFO_ARR[5];
+ /**
+ * 标定数量
+ */
+ public int nInfoNum;
+
+ public CFG_CALIBRATE_INFO() {
+ for (int i = 0; i < stuCalibrateUnitInfo.length; i++) {
+ stuCalibrateUnitInfo[i] = new CFG_CALIBRATE_UNIT_INFO_ARR();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_CALIBRATE_UNIT_INFO.java b/src/main/java/com/netsdk/lib/structure/CFG_CALIBRATE_UNIT_INFO.java
new file mode 100644
index 0000000..1c14686
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_CALIBRATE_UNIT_INFO.java
@@ -0,0 +1,36 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 标定信息单元
+ * @date 2021/02/02
+ */
+public class CFG_CALIBRATE_UNIT_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 分辨率高
+ */
+ public int nHeight;
+ /**
+ * 分辨率宽
+ */
+ public int nWidth;
+ /**
+ * 云台位置(P/T/Z 归一化)
+ */
+ public float[] nPosition = new float[3];
+ /**
+ * 标定点坐标
+ */
+ public int[] nLocation = new int[2];
+ /**
+ * 横向视场角(单位:0.01度)
+ */
+ public int nHFOV;
+ /**
+ * 纵向视场角(单位:0.01度)
+ */
+ public int nVFOV;
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_CALIBRATE_UNIT_INFO_ARR.java b/src/main/java/com/netsdk/lib/structure/CFG_CALIBRATE_UNIT_INFO_ARR.java
new file mode 100644
index 0000000..17000b4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_CALIBRATE_UNIT_INFO_ARR.java
@@ -0,0 +1,22 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 标定信息单元数组
+ * @date 2021/02/02
+ */
+public class CFG_CALIBRATE_UNIT_INFO_ARR extends NetSDKLib.SdkStructure {
+ /**
+ * 标定信息单元
+ */
+ public CFG_CALIBRATE_UNIT_INFO[] unitArr = new CFG_CALIBRATE_UNIT_INFO[2];
+
+ public CFG_CALIBRATE_UNIT_INFO_ARR() {
+ for (int i = 0; i < unitArr.length; i++) {
+ unitArr[i] = new CFG_CALIBRATE_UNIT_INFO();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_CAMERA_OCCLUSION.java b/src/main/java/com/netsdk/lib/structure/CFG_CAMERA_OCCLUSION.java
new file mode 100644
index 0000000..593a562
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_CAMERA_OCCLUSION.java
@@ -0,0 +1,44 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 相机遮挡报警配置
+ * @date 2023/03/31 11:19:02
+ */
+public class CFG_CAMERA_OCCLUSION extends NetSDKLib.SdkStructure {
+ /**
+ * 使能
+ */
+ public int bEnable;
+ /**
+ * 语音播报使能
+ */
+ public int bVoiceBroadcastEnable;
+ /**
+ * 相机遮挡持续时间, 取值范围:0-10,默认值为2
+ */
+ public int nCameraOcclusionTime;
+ /**
+ * 时间间隔, 取值范围:0-65536,默认值为60
+ */
+ public int nAlarmInterval;
+ /**
+ * 报警触发速度, 取值范围:0-200,默认值为30
+ */
+ public int nAlarmSpeed;
+ /**
+ * 报警上报速度, 取值范围:0-200,默认值为30
+ */
+ public int nAlarmReportSpeed;
+ /**
+ * 保留
+ */
+ public byte[] byReserved = new byte[1024];
+
+ public CFG_CAMERA_OCCLUSION() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_CAP_ACCESSCONTROL.java b/src/main/java/com/netsdk/lib/structure/CFG_CAP_ACCESSCONTROL.java
new file mode 100644
index 0000000..7b52c81
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_CAP_ACCESSCONTROL.java
@@ -0,0 +1,94 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 门禁控制能力
+ * @origin autoTool
+ * @date 2023/08/24 14:19:16
+ */
+public class CFG_CAP_ACCESSCONTROL extends NetSDKLib.SdkStructure {
+ /**
+ * 门禁组数、
+ */
+ public int nAccessControlGroups;
+ /**
+ * 是否支持门禁报警日志记录在记录集中
+ */
+ public int bSupAccessControlAlarmRecord;
+ /**
+ * AccessControlCustomPassword记录集中密码的保存方式
+ * {@link com.netsdk.lib.enumeration.EM_CUSTOM_PASSWORD_ENCRYPTION_MODE}
+ */
+ public int emCustomPasswordEncryption;
+ /**
+ * 是否支持信息功能 {@link com.netsdk.lib.enumeration.EM_SUPPORTFINGERPRINT}
+ */
+ public int emSupportFingerPrint;
+ /**
+ * 是否只支持单门授权(发卡)
+ */
+ public int bOnlySingleDoorAuth;
+ /**
+ * 是否支持授权异步返回
+ */
+ public int bAsynAuth;
+ /**
+ * 假日计划
+ */
+ public NET_SPECIAL_DAYS_SCHEDULE stSpecialDaysSchedule = new NET_SPECIAL_DAYS_SCHEDULE();
+ /**
+ * 是否支持多人多类型组合开门
+ */
+ public int bSupportMultiUserMultiTypeAuth;
+ /**
+ * 是否支持门禁快速导入功能 {@link com.netsdk.lib.enumeration.EM_SUPPORT_FAST_IMPORT_TYPE}
+ */
+ public int bSupportFastImport;
+ /**
+ * 是否支持门禁快速复核功能{@link com.netsdk.lib.enumeration.EM_SUPPORT_FAST_CHECK_TYPE}
+ */
+ public int bSupportFastCheck;
+ /**
+ * 是否支持梯控功能
+ */
+ public int bSupportCallLift;
+ /**
+ * 支持的梯控制方式类型的集合{@link com.netsdk.lib.enumeration.EM_SUPPORT_LIFT_CONTROL_TYPES}
+ */
+ public int[] emSupportLiftControlTypes = new int[32];
+ /**
+ * 支持的梯控方式类型的有效数
+ */
+ public int nSupportLiftControlTypesNum;
+ /**
+ * 支持静电检测功能
+ */
+ public int bSupportESD;
+ /**
+ * 是否支持假日常开常闭功能
+ */
+ public int bSupportSpecialDaysAlwaysOpenOrClose;
+ /**
+ * 能力bit位控制:0-不支持人员采集新接口, 1-支持人脸使用新接口, 2-支持身份证采集使用新接口, 4-支持指纹采集使用新接口,
+ * 8-支持卡采集使用新接口 16-支持虹膜采集使用新接口, 32-支持掌纹采集使用新接口
+ */
+ public int nSupportPersonCollection;
+ /**
+ * 是否支持平台下发假日计划
+ */
+ public int bSupportSpecialDaysConfig;
+ /**
+ * 是否支持按照门通道设置门磁的常开/常闭类型
+ */
+ public int bSupportSetDoorChannelSensorType;
+ /**
+ * 保留字段
+ */
+ public byte[] szResvered = new byte[1016];
+
+ public CFG_CAP_ACCESSCONTROL() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_CAP_ALARM_INFO.java b/src/main/java/com/netsdk/lib/structure/CFG_CAP_ALARM_INFO.java
new file mode 100644
index 0000000..8ee4ddf
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_CAP_ALARM_INFO.java
@@ -0,0 +1,70 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 获取报警能力集
+ * @date 2023/04/18 10:57:31
+ */
+public class CFG_CAP_ALARM_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 设备是否支持PIR(人体热式感应器)报警,外部报警的一种
+ */
+ public int bAlarmPir;
+ /**
+ * 设备是否支持补光灯
+ */
+ public int bFlashLight;
+ /**
+ * 防区类型种类数,为0表示无此字段时报警输入不作为防区使用。
+ */
+ public int nDefenceAreaTypeNum;
+ /**
+ * 支持防区类型,参考枚举{ @link EM_CFG_DEFENCEAREATYPE}
+ */
+ public int[] emDefenceAreaType = new int[8];
+ /**
+ * 延时防区的最大延时时间,单位为秒,只有支持延时防区时此字段才有效。
+ */
+ public int nMaxDelay;
+ /**
+ * 报警通道数,为了保持兼容性,此为0时表示每个通道支持所有类型的传感器
+ */
+ public int nAlarmChannelNum;
+ /**
+ * 报警通道集合
+ */
+ public CFG_ALARM_SENSE_METHOD[] stuAlarmChannel = new CFG_ALARM_SENSE_METHOD[32];
+ /**
+ * 警号个数
+ */
+ public int nAlarmBellCount;
+ /**
+ * 最大备用报警中心数,无此字段时默认为0,0表示不支持备用报警中心
+ */
+ public int nMaxBackupAlarmServer;
+ /**
+ * 最大电话报警中心数, 无此字段时默认为0,0表示不支持电话报警中心。
+ */
+ public int nMaxPSTNAlarmServer;
+ /**
+ * 报警设备是否支持AlarmRegion组件。如果没有该字段或者该字段为false,客户端使用已有报警组件(alarm、alarmSubregion)操作设备;如果该字段为true,客户端使用新报警组件操作设备
+ */
+ public int bSupportAlarmRegion;
+ /**
+ * VTH报警输入传感器类型NO、NC正确使用,无这个能力或false的VTH表示NO、NC与协议相反使用
+ */
+ public int bVTHSensorTypeCorrectly;
+ /**
+ * 保留字段
+ */
+ public byte[] szResvered = new byte[1024];
+
+ public CFG_CAP_ALARM_INFO() {
+ for (int i = 0; i < stuAlarmChannel.length; i++) {
+ stuAlarmChannel[i] = new CFG_ALARM_SENSE_METHOD();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_CAP_ANALYSE_INFO.java b/src/main/java/com/netsdk/lib/structure/CFG_CAP_ANALYSE_INFO.java
new file mode 100644
index 0000000..329c960
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_CAP_ANALYSE_INFO.java
@@ -0,0 +1,159 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 视频分析能力集 对应能力集命令 CFG_CAP_CMD_VIDEOANALYSE
+ * @date 2021/01/08
+ */
+public class CFG_CAP_ANALYSE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 支持的场景个数
+ */
+ public int nSupportedSceneNum;
+ /**
+ * 支持的场景列表
+ */
+ public MaxNameByteArrInfo[] szSceneName = (MaxNameByteArrInfo[])new MaxNameByteArrInfo().toArray(NetSDKLib.MAX_SCENE_LIST_SIZE);
+ /**
+ * 每通道支持最大分析模块数
+ */
+ public int nMaxMoudles;
+ /**
+ * 支持的检测物体类型个数
+ */
+ public int nSupportedObjectTypeNum;
+ /**
+ * 支持的检测物体类型列表
+ */
+ public MaxNameByteArrInfo[] szObjectTypeName = (MaxNameByteArrInfo[])new MaxNameByteArrInfo().toArray(NetSDKLib.MAX_OBJECT_LIST_SIZE);
+ /**
+ * 每通道支持最大规则条数
+ */
+ public int nMaxRules;
+ /**
+ * 支持的事件类型规则个数
+ */
+ public int nSupportedRulesNum;
+ /**
+ * 支持的事件类型规则列表,事件类型,详见dhnetsdk.h中"智能分析事件类型"
+ */
+ public int[] dwRulesType = new int[NetSDKLib.MAX_RULE_LIST_SIZE];
+ /**
+ * 支持的最大标尺个数
+ */
+ public int nMaxStaffs;
+ /**
+ * 折线最大顶点数
+ */
+ public int nMaxPointOfLine;
+ /**
+ * 区域最大顶点数
+ */
+ public int nMaxPointOfRegion;
+ /**
+ * 最大内部选项个数
+ */
+ public int nMaxInternalOptions;
+ /**
+ * 是否支持复杂尺寸过滤器复杂尺寸过滤器使用独立的面积过滤和宽高比过滤参数
+ */
+ public byte bComplexSizeFilter;
+ /**
+ * 是否支持特定的物体过滤器
+ */
+ public byte bSpecifiedObjectFilter;
+ /**
+ * 支持模块中的最大排除区域个数
+ */
+ public int nMaxExcludeRegionNum;
+ /**
+ * 支持的模块中的最大校准框个数
+ */
+ public int nMaxCalibrateBoxNum;
+ /**
+ * 模块中至少需要设置的校准框个数
+ */
+ public int nMinCalibrateBoxNum;
+ /**
+ * 模块中支持的最大特殊区域检测个数
+ */
+ public int nMaxSepcialDetectRegions;
+ /**
+ * 支持的每天的时间段个数
+ */
+ public int nSupportedTimeSectionNum;
+ /**
+ * 支持的特殊检测区属性个数
+ */
+ public int nSpecialDetectPropertyNum;
+ /**
+ * 支持的特殊检测区属性
+ */
+ public int[] nSupportedSpecialDetectPropertys = new int[NetSDKLib.EM_SEPCIALREGION_PROPERTY_TYPE.EM_SEPCIALREGION_PROPERTY_TYPE_NUM];
+ /**
+ * 支持的视频通道类型选择 第0位为1表示支持数字类型,第1位为1表示支持模拟类型,第2为1表示支持混合(数字和模拟)
+ */
+ public int nSupportedVideoChannelType;
+ /**
+ * 是否支持多场景切换
+ */
+ public byte bSupportMultiSceneSwitch;
+ /**
+ * 支持的场景能力集
+ */
+ public CFG_VACAP_SUPPORTEDSCENES stSupportScenes;
+ /**
+ * 支持的场景组合项个数
+ */
+ public int nSupportedComp;
+ /**
+ * 支持的场景组合项列表
+ */
+ public CFG_SUPPORTED_COMP[] stuSupportedComp = (CFG_SUPPORTED_COMP[])new CFG_SUPPORTED_COMP().toArray(NetSDKLib.MAX_SUPPORTED_COMP_SIZE);
+ /**
+ * 0 Module/Rule配置均要设置(默认,智能服务器), 1 仅Rule配置要设置(IPC/xVR)
+ */
+ public byte byFilterMask;
+ /**
+ * 摄像头安装角度显示方式,{ @link EM_DISPLAY_CAMERA_ANGLE_TYPE }
+ */
+ public int emDisCameraAngleType;
+ /**
+ * 实际返回客流量统计场景PD个数
+ */
+ public int nMaxNumberStatMultNum;
+ /**
+ * 实际返回客流量统计场景PD个数
+ */
+ public CFG_NUMBERSTAT_MULT_INFO[] stuNumberStatMult = (CFG_NUMBERSTAT_MULT_INFO[])new CFG_NUMBERSTAT_MULT_INFO().toArray(NetSDKLib.MAX_NUMBER_STAT_MAULT_NUM);
+ /**
+ * 全能力集,表示视频通道能力 full可以认为是不变的
+ */
+ public VA_CAPS_INFO stuFullCaps;
+ /**
+ * 动态能力集,表示当前视频通道能力
+ */
+ public VA_DYNAMIC_CAPS_INFO stuDynamicCaps;
+
+ public CFG_CAP_ANALYSE_INFO() {
+
+ for (int i = 0; i < szSceneName.length; i++) {
+ szSceneName[i] = new MaxNameByteArrInfo();
+ }
+
+ for (int i = 0; i < szObjectTypeName.length; i++) {
+ szObjectTypeName[i] = new MaxNameByteArrInfo();
+ }
+
+ for (int i = 0; i < stuSupportedComp.length; i++) {
+ stuSupportedComp[i] = new CFG_SUPPORTED_COMP();
+ }
+
+ for (int i = 0; i < stuNumberStatMult.length; i++) {
+ stuNumberStatMult[i] = new CFG_NUMBERSTAT_MULT_INFO();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_CAP_ANALYSE_INFO_OPT.java b/src/main/java/com/netsdk/lib/structure/CFG_CAP_ANALYSE_INFO_OPT.java
new file mode 100644
index 0000000..2c70d1f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_CAP_ANALYSE_INFO_OPT.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+/**
+ * @author 251823
+ * @description 视频分析能力集 简化结构体,用于查询IPC是否有目标识别能力
+ * @date 2021/01/12
+ */
+public class CFG_CAP_ANALYSE_INFO_OPT extends NetSDKLib.SdkStructure {
+ /**
+ * 支持的场景个数
+ */
+ public int nSupportedSceneNum;
+ /**
+ * 支持的场景列表
+ */
+ public MaxNameByteArrInfo[] szSceneName = (MaxNameByteArrInfo[])new MaxNameByteArrInfo().toArray(NetSDKLib.MAX_SCENE_LIST_SIZE);
+
+ public CFG_CAP_ANALYSE_INFO_OPT() {
+ for (int i = 0; i < szSceneName.length; i++) {
+ szSceneName[i] = new MaxNameByteArrInfo();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_CAP_ANALYSE_REQ_EXTEND_INFO.java b/src/main/java/com/netsdk/lib/structure/CFG_CAP_ANALYSE_REQ_EXTEND_INFO.java
new file mode 100644
index 0000000..d08a060
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_CAP_ANALYSE_REQ_EXTEND_INFO.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 获取能力的请求数据扩展
+ * @date 2021/01/11
+ */
+public class CFG_CAP_ANALYSE_REQ_EXTEND_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 智能分析实例类型,参考{ @link CFG_EM_INSTANCE_SUBCLASS_TYPE}
+ */
+ public int emSubClassID;
+
+ public CFG_CAP_ANALYSE_REQ_EXTEND_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_CAP_CELIBRATE_AREA.java b/src/main/java/com/netsdk/lib/structure/CFG_CAP_CELIBRATE_AREA.java
new file mode 100644
index 0000000..69bd6b1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_CAP_CELIBRATE_AREA.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 标定区域能力信息
+ * @date 2021/01/11
+ */
+public class CFG_CAP_CELIBRATE_AREA extends NetSDKLib.SdkStructure {
+ /**
+ * 标定区域类型,参考{ @link EM_CALIBRATEAREA_TYPE}
+ */
+ public int emType;
+ /**
+ * 支持的水平标尺最大个数
+ */
+ public byte byMaxHorizontalStaffNum;
+ /**
+ * 支持的水平标尺最小个数
+ */
+ public byte byMinHorizontalStaffNum;
+ /**
+ * 支持的垂直标尺最大个数
+ */
+ public byte byMaxVerticalStaffNum;
+ /**
+ * 支持的垂直标尺最小个数
+ */
+ public byte byMinVerticalStaffNum;
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_CAP_SCENE.java b/src/main/java/com/netsdk/lib/structure/CFG_CAP_SCENE.java
new file mode 100644
index 0000000..f0d8f4a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_CAP_SCENE.java
@@ -0,0 +1,219 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+/**
+ * @author 251823
+ * @description 场景能力
+ * @date 2021/01/11
+ */
+public class CFG_CAP_SCENE extends NetSDKLib.SdkStructure {
+ /**
+ * 场景名称
+ */
+ public byte[] szSceneName = new byte[NetSDKLib.MAX_PATH];
+ /**
+ * 当前规则类型支持的检测物体类型个数
+ */
+ public int nSupportedObjectTypeNum;
+ /**
+ * 当前规则类型支持的检测物体类型列表
+ */
+ public MaxNameByteArrInfo[] szObjectTypeName = (MaxNameByteArrInfo[])new MaxNameByteArrInfo().toArray(NetSDKLib.MAX_OBJECT_LIST_SIZE);
+ /**
+ * 支持的规则个数
+ */
+ public int nSupportRules;
+ /**
+ * 支持的规则列表
+ */
+ public SCENE_SUPPORT_RULE[] stSpportRules = (SCENE_SUPPORT_RULE[])new SCENE_SUPPORT_RULE().toArray(NetSDKLib.MAX_RULE_LIST_SIZE);
+ /**
+ * 是否支持扰动强度设置
+ */
+ public byte bDisturbance;
+ /**
+ * 是否支持去扰动处理
+ */
+ public byte bAntiDisturbance;
+ /**
+ * 是否支持逆光处理
+ */
+ public byte bBacklight;
+ /**
+ * 是否支持阴影处理
+ */
+ public byte bShadow;
+ /**
+ * 是否支持检测精度
+ */
+ public byte bAccuracy;
+ /**
+ * 是否支持检测步长
+ */
+ public byte bMovingStep;
+ /**
+ * 是否支持检测缩放
+ */
+ public byte bScalingFactor;
+ /**
+ * 是否支持Y分量判定阈值
+ */
+ public byte bThresholdY;
+ /**
+ * 是否支持UV分量判定阈值
+ */
+ public byte bThresholdUV;
+ /**
+ * 是否支持边缘检测判定阈值
+ */
+ public byte bThresholdEdge;
+ /**
+ * 是否支持检测平衡
+ */
+ public byte bDetectBalance;
+ /**
+ * 是否支持算法序号
+ */
+ public byte bAlgorithmIndex;
+ /**
+ * 是否支持高光处理,即Backgroud参数
+ */
+ public byte bHighlight;
+ /**
+ * 是否支持物体抓图
+ */
+ public byte bSnapshot;
+ /**
+ * 是否支持检测区域配置
+ */
+ public byte bDetectRegion;
+ /**
+ * 是否支持排除区域配置
+ */
+ public byte bExcludeRegion;
+ /**
+ * 是否支持轮廓辅助跟踪
+ */
+ public byte bContourAssistantTrack;
+ /**
+ * 是否摄像头位置参数
+ */
+ public byte bCameraAspect;
+ /**
+ * 是否支持抖动参数
+ */
+ public byte bJitter;
+ /**
+ * 是否支持去抖动处理参数
+ */
+ public byte bDejitter;
+ /**
+ * 最大标定区域个数
+ */
+ public int nMaxCalibrateAreaNum;
+ /**
+ * 标定区域能力信息个数
+ */
+ public int nCalibrateAreaNum;
+ /**
+ * 标定区域能力信息
+ */
+ public CFG_CAP_CELIBRATE_AREA[] stCalibrateAreaCap = (CFG_CAP_CELIBRATE_AREA[])new CFG_CAP_CELIBRATE_AREA().toArray(NetSDKLib.MAX_CALIBRATEAREA_TYPE_NUM);
+ /**
+ * 是否支持像素计量方式
+ */
+ public byte bPixel;
+ /**
+ * 是否支持实际长度计量方式
+ */
+ public byte bMetric;
+ /**
+ * 是否支持远端近端标定后的像素计量方式
+ */
+ public byte bCalibratedPixel;
+ /**
+ * 当前场景下支持的子场景类型
+ */
+ public MaxSceneSupTypeByteArrInfo[] szSubType = (MaxSceneSupTypeByteArrInfo[])new MaxSceneSupTypeByteArrInfo().toArray(NetSDKLib.MAX_SCENE_SUBTYPE_NUM);
+ /**
+ * 子场景类型个数
+ */
+ public int nSubTypeNum;
+ /**
+ * 每个大类支持的最大规则条数
+ */
+ public int nMaxRules;
+ /**
+ * 是否支持重建背景,默认不支持(false)
+ */
+ public int bSupportedSetModule;
+ /**
+ * 是否支持打架标定配置,默认FALSE
+ */
+ public int bSupportFightCalibrate;
+ /**
+ * 车辆种类划分类型个数
+ */
+ public int nVehicleTypeSplitNum;
+ /**
+ * 车辆种类划分类型 { @link EM_VEHICLE_TYPE_SPLIT }
+ */
+ public int[] emVehicleTypeSplit = new int[16];
+ /**
+ * 是否支持隐私保护, false-不支持(默认);true-支持
+ */
+ public int bPrivacyMaskSupport;
+ /**
+ * 隐私保护的物体类型的数量
+ */
+ public int nPrivacyMaskCount;
+ /**
+ * 隐私保护的物体类型 { @link EM_PRIVACY_MASK_TYPE }
+ */
+ public int[] emPrivacyMaskTypes = new int[32];
+ /**
+ * 大类业务方案别名
+ */
+ public byte[] szClassAlias = new byte[16];
+ /**
+ * 人群分布图的标定线段相关能力
+ */
+ public CROWD_CALIBRATION stuCalibration;
+ /**
+ * 人体测温场景能力
+ */
+ public CFG_ANATOMYTEMP_DETECT_SCENE_CAPS stuAnatomyTempDetect;
+ /**
+ * 立体行为分析场景能力
+ */
+ public CFG_STEREO_BEHAVIOR_SCENE_CAPS stuStereoBehaviorCaps;
+ /**
+ * 姿态行为分析场景能力个数
+ */
+ public int nGenealAttitudeCaps;
+ /**
+ * 姿态行为分析场景能力
+ */
+ public CFG_GENEAL_ATTITUDE_CAPS[] stuGenealAttitudeCaps = (CFG_GENEAL_ATTITUDE_CAPS[])new CFG_GENEAL_ATTITUDE_CAPS().toArray(128);
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[1024];
+
+ public CFG_CAP_SCENE() {
+ for (int i = 0; i < szObjectTypeName.length; i++) {
+ szObjectTypeName[i] = new MaxNameByteArrInfo();
+ }
+ for (int i = 0; i < stSpportRules.length; i++) {
+ stSpportRules[i] = new SCENE_SUPPORT_RULE();
+ }
+ for (int i = 0; i < stCalibrateAreaCap.length; i++) {
+ stCalibrateAreaCap[i] = new CFG_CAP_CELIBRATE_AREA();
+ }
+
+ for (int i = 0; i < szSubType.length; i++) {
+ szSubType[i] = new MaxSceneSupTypeByteArrInfo();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_CHANNEL_TIME_SECTION.java b/src/main/java/com/netsdk/lib/structure/CFG_CHANNEL_TIME_SECTION.java
new file mode 100644
index 0000000..5b4fc40
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_CHANNEL_TIME_SECTION.java
@@ -0,0 +1,22 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 网络存储服务器配置
+ * @date 2022/09/08 19:33:10
+ */
+public class CFG_CHANNEL_TIME_SECTION extends NetSDKLib.SdkStructure {
+ /**
+ * 存储时间段
+ */
+ public NetSDKLib.CFG_TIME_SECTION[] stuTimeSection = new NetSDKLib.CFG_TIME_SECTION[7 * 2];
+
+ public CFG_CHANNEL_TIME_SECTION() {
+ for (int i = 0; i < stuTimeSection.length; i++) {
+ stuTimeSection[i] = new NetSDKLib.CFG_TIME_SECTION();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_CHASSISINTRUSION_INFO.java b/src/main/java/com/netsdk/lib/structure/CFG_CHASSISINTRUSION_INFO.java
new file mode 100644
index 0000000..97de6aa
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_CHASSISINTRUSION_INFO.java
@@ -0,0 +1,23 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 机箱入侵报警(防拆报警)配置
+ * @date 2023/03/15 21:57:49
+ */
+public class CFG_CHASSISINTRUSION_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 使能开关
+ */
+ public int bEnable;
+ /**
+ * 报警联动
+ */
+ public NetSDKLib.CFG_ALARM_MSG_HANDLE stuEventHandler = new NetSDKLib.CFG_ALARM_MSG_HANDLE();
+
+ public CFG_CHASSISINTRUSION_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_CROSSLINE_INFO.java b/src/main/java/com/netsdk/lib/structure/CFG_CROSSLINE_INFO.java
new file mode 100644
index 0000000..b7a8552
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_CROSSLINE_INFO.java
@@ -0,0 +1,116 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 事件类型 EVENT_IVS_CROSSLINEDETECTION (警戒线事件)对应的规则配置
+ * @date 2021/07/06
+ */
+public class CFG_CROSSLINE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 规则名称,不同规则不能重名
+ */
+ public byte[] szRuleName = new byte[NetSDKLib.MAX_NAME_LEN];
+ /**
+ * 规则使能
+ */
+ public byte bRuleEnable;
+ /**
+ * 触发跟踪使能,仅对绊线,入侵规则有效
+ */
+ public byte bTrackEnable;
+ /**
+ * 保留字段
+ */
+ public byte[] bReserved = new byte[2];
+ /**
+ * 相应物体类型个数
+ */
+ public int nObjectTypeNum;
+ /**
+ * 相应物体类型列表
+ */
+ public MaxNameByteArrInfo[] szObjectTypes = (MaxNameByteArrInfo[])new MaxNameByteArrInfo().toArray(NetSDKLib.MAX_OBJECT_LIST_SIZE);
+ /**
+ * 检测方向:0:由左至右;1:由右至左;2:两者都可以
+ */
+ public int nDirection;
+ /**
+ * 警戒线顶点数
+ */
+ public int nDetectLinePoint;
+ /**
+ * 警戒线
+ */
+ public NetSDKLib.CFG_POLYLINE[] stuDetectLine = (NetSDKLib.CFG_POLYLINE[]) new NetSDKLib.CFG_POLYLINE().toArray(NetSDKLib.MAX_POLYLINE_NUM);
+ /**
+ * 报警联动
+ */
+ public NetSDKLib.CFG_ALARM_MSG_HANDLE stuEventHandler;
+ /**
+ * 事件响应时间段
+ */
+ public NetSDKLib.TIME_SECTION_WEEK_DAY_10[] stuTimeSectionWeekDay = (NetSDKLib.TIME_SECTION_WEEK_DAY_10[])new NetSDKLib.TIME_SECTION_WEEK_DAY_10().toArray(NetSDKLib.WEEK_DAY_NUM);
+ /**
+ * stuTimeSection字段是否禁用,默认FALSE:不禁用,TRUE:禁用,用户控制
+ */
+ public boolean bDisableTimeSection;
+ /**
+ * 云台预置点编号 0~65535
+ */
+ public int nPtzPresetId;
+ /**
+ * 规则特定的尺寸过滤器是否有效
+ */
+ public boolean bSizeFileter;
+ /**
+ * 规则特定的尺寸过滤器
+ */
+ public NetSDKLib.CFG_SIZEFILTER_INFO stuSizeFileter;
+ /**
+ * 触发报警位置数
+ */
+ public int nTriggerPosition;
+ /**
+ * 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
+ */
+ public byte[] bTriggerPosition = new byte[8];
+ /**
+ * 跟踪持续时间,0秒:一直跟踪,1~300秒:跟踪持续时间
+ */
+ public int nTrackDuration;
+ /**
+ * 检测的车辆子类型个数
+ */
+ public int nVehicleSubTypeNum;
+ /**
+ * 检测的车辆子类型列表
+ */
+ public int[] emVehicleSubType = new int[128];
+ /**
+ * 是否开启目标属性识别,默认false
+ */
+ public boolean bFeatureEnable;
+ /**
+ * 前端视频分析联动
+ */
+ public NetSDKLib.CFG_ALARM_MSG_HANDLE stuRemoteEventHandler;
+ /**
+ * 前端视频分析联动响应时间段
+ */
+ public NetSDKLib.TIME_SECTION_WEEK_DAY_10[] stuRemoteTimeSection = (NetSDKLib.TIME_SECTION_WEEK_DAY_10[])new NetSDKLib.TIME_SECTION_WEEK_DAY_10().toArray(NetSDKLib.WEEK_DAY_NUM);
+ /**
+ * stuRemoteTimeSection字段是否禁用, 默认FALSE:不禁用, TRUE:禁用, 用户控制
+ */
+ public boolean bDisableRemoteTimeSection;
+ /**
+ * 物体过滤器是否有效, 即stuObjectFilter 是否有效
+ */
+ public boolean bObjectFilter;
+ /**
+ * 物体过滤器信息
+ */
+ public NET_CFG_OBJECT_FILTER_INFO stuObjectFilter;
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_CROSSREGION_INFO.java b/src/main/java/com/netsdk/lib/structure/CFG_CROSSREGION_INFO.java
new file mode 100644
index 0000000..658ee6c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_CROSSREGION_INFO.java
@@ -0,0 +1,140 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 事件类型EVENT_IVS_CROSSREGIONDETECTION(警戒区事件)对应的规则配置
+ * @date 2021/07/06
+ */
+public class CFG_CROSSREGION_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 规则名称,不同规则不能重名
+ */
+ public byte[] szRuleName = new byte[NetSDKLib.MAX_NAME_LEN];
+ /**
+ * 规则使能
+ */
+ public byte bRuleEnable;
+ /**
+ * 触发跟踪使能,仅对绊线,入侵规则有效
+ */
+ public byte bTrackEnable;
+ /**
+ * 保留字段
+ */
+ public byte[] bReserved = new byte[2];
+ /**
+ * 相应物体类型个数
+ */
+ public int nObjectTypeNum;
+ /**
+ * 相应物体类型列表
+ */
+ public MaxNameByteArrInfo[] szObjectTypes = (MaxNameByteArrInfo[])new MaxNameByteArrInfo().toArray(NetSDKLib.MAX_OBJECT_LIST_SIZE);
+ /**
+ * 检测方向:0:Enter;1:Leave;2:Both
+ */
+ public int nDirection;
+ /**
+ * 警戒区顶点数
+ */
+ public int nDetectRegionPoint;
+ /**
+ * 警戒区
+ */
+ public NetSDKLib.CFG_POLYGON[] stuDetectRegion = (NetSDKLib.CFG_POLYGON[]) new NetSDKLib.CFG_POLYGON().toArray(NetSDKLib.MAX_POLYGON_NUM);
+ /**
+ * 报警联动
+ */
+ public NetSDKLib.CFG_ALARM_MSG_HANDLE stuEventHandler;
+ /**
+ * 事件响应时间段
+ */
+ public NetSDKLib.TIME_SECTION_WEEK_DAY_10[] stuTimeSectionWeekDay = (NetSDKLib.TIME_SECTION_WEEK_DAY_10[])new NetSDKLib.TIME_SECTION_WEEK_DAY_10().toArray(NetSDKLib.WEEK_DAY_NUM);
+ /**
+ * stuTimeSection字段是否禁用,默认FALSE:不禁用,TRUE:禁用,用户控制
+ */
+ public boolean bDisableTimeSection;
+ /**
+ * 云台预置点编号 0~65535
+ */
+ public int nPtzPresetId;
+ /**
+ * 规则特定的尺寸过滤器是否有效
+ */
+ public boolean bSizeFileter;
+ /**
+ * 规则特定的尺寸过滤器
+ */
+ public NetSDKLib.CFG_SIZEFILTER_INFO stuSizeFileter;
+ /**
+ * 检测动作数
+ */
+ public int nActionType;
+ /**
+ * 检测动作列表,0-出现 1-消失 2-在区域内 3-穿越区域
+ */
+ public byte[] bActionType = new byte[4];
+ /**
+ * 最小目标个数(当bActionType中包含"2-在区域内"时有效)
+ */
+ public int nMinTargets;
+ /**
+ * 最大目标个数(当bActionType中包含"2-在区域内"时有效)
+ */
+ public int nMaxTargets;
+ /**
+ * 最短持续时间, 单位秒(当bActionType中包含"2-在区域内"时有效)
+ */
+ public int nMinDuration;
+ /**
+ * 报告时间间隔, 单位秒(当bActionType中包含"2-在区域内"时有效)
+ */
+ public int nReportInterval;
+ /**
+ * 跟踪持续时间,0秒:一直跟踪,1~300秒:跟踪持续时间
+ */
+ public int nTrackDuration;
+ /**
+ * 检测的车辆子类型个数
+ */
+ public int nVehicleSubTypeNum;
+ /**
+ * 检测的车辆子类型列表
+ */
+ public int[] emVehicleSubType = new int[128];
+ /**
+ * 是否开启目标属性识别,默认false
+ */
+ public boolean bFeatureEnable;
+ /**
+ * 前端视频分析联动
+ */
+ public NetSDKLib.CFG_ALARM_MSG_HANDLE stuRemoteEventHandler;
+ /**
+ * 前端视频分析联动响应时间段
+ */
+ public NetSDKLib.TIME_SECTION_WEEK_DAY_10[] stuRemoteTimeSection = (NetSDKLib.TIME_SECTION_WEEK_DAY_10[])new NetSDKLib.TIME_SECTION_WEEK_DAY_10().toArray(NetSDKLib.WEEK_DAY_NUM);
+ /**
+ * stuRemoteTimeSection字段是否禁用, 默认FALSE:不禁用, TRUE:禁用, 用户控制
+ */
+ public boolean bDisableRemoteTimeSection;
+ /**
+ * 物体过滤器是否有效, 即stuObjectFilter 是否有效
+ */
+ public boolean bObjectFilter;
+ /**
+ * 物体过滤器信息
+ */
+ public NET_CFG_OBJECT_FILTER_INFO stuObjectFilter;
+ /**
+ * 灵敏度,值越小灵敏度越低。取值1-10
+ */
+ public int nSensitivity;
+ /**
+ * 报警类型, EM_CFG_CROSSREGION_ALARMTYPE
+ */
+ public int emAlarmType;
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_DATA_TIME.java b/src/main/java/com/netsdk/lib/structure/CFG_DATA_TIME.java
new file mode 100644
index 0000000..3efb86d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_DATA_TIME.java
@@ -0,0 +1,40 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 日期
+*/
+public class CFG_DATA_TIME extends NetSDKLib.SdkStructure
+{
+ /**
+ * 年
+ */
+ public int dwYear;
+ /**
+ * 月
+ */
+ public int dwMonth;
+ /**
+ * 日
+ */
+ public int dwDay;
+ /**
+ * 时
+ */
+ public int dwHour;
+ /**
+ * 分
+ */
+ public int dwMinute;
+ /**
+ * 秒
+ */
+ public int dwSecond;
+ /**
+ * 保留字段
+ */
+ public int[] dwReserved = new int[2];
+
+ public CFG_DATA_TIME() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_DETAIL_DRIVEASSISTANT_INFO.java b/src/main/java/com/netsdk/lib/structure/CFG_DETAIL_DRIVEASSISTANT_INFO.java
new file mode 100644
index 0000000..de0c485
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_DETAIL_DRIVEASSISTANT_INFO.java
@@ -0,0 +1,23 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 驾驶辅助场景配置
+ * @date 2021/2/22
+ */
+public class CFG_DETAIL_DRIVEASSISTANT_INFO extends NetSDKLib.SdkStructure {
+ /** 是否有效 */
+ public boolean bValid;
+ /** 车宽 0-5000mm 单位mm */
+ public int nVehicleWidth;
+ /** 相机高度 0-5000mm 单位mm */
+ public int nCamHeight;
+ /** 车头到相机的距离 0-5000mm 单位mm */
+ public int nCamToCarHead;
+ /** 保留 */
+ public byte[] byReserved = new byte[56];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/CFG_DETECT_REGION.java b/src/main/java/com/netsdk/lib/structure/CFG_DETECT_REGION.java
new file mode 100644
index 0000000..cc089df
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/CFG_DETECT_REGION.java
@@ -0,0 +1,42 @@
+package com.netsdk.lib.structure;
+/**
+ * @author 47081
+ * @desc
+ * @version 1.0.0
+ * @date 2021/4/9
+ */
+import com.netsdk.lib.NetSDKLib;
+
+import static com.netsdk.lib.NetSDKLib.CFG_COMMON_STRING_64;
+import static com.netsdk.lib.constant.SDKStructureFieldLenth.MAX_MOTION_COL;
+import static com.netsdk.lib.constant.SDKStructureFieldLenth.MAX_MOTION_ROW;
+
+/**
+ * @author 47081
+ * @description
+ * @date 2021/4/9
+ * @version 1.0
+ */
+public class CFG_DETECT_REGION extends NetSDKLib.SdkStructure {
+ /** 区域ID */
+ public int nRegionID;
+ /** 动态窗口名称 */
+ public byte[] szRegionName = new byte[CFG_COMMON_STRING_64];
+ /** 面积阀值,取值[0, 100] */
+ public int nThreshold;
+ /** 灵敏度1~6 */
+ public int nSenseLevel;
+ /** 动态检测区域的行数 */
+ public int nMotionRow;
+ /** 动态检测区域的列数 */
+ public int nMotionCol;
+ /** 检测区域,最多32*32块区域 */
+ public BYTE_32[] byRegion = new BYTE_32[MAX_MOTION_ROW];
+
+ public CFG_DETECT_REGION(){
+ for(int i=0;i 0,禁止名单数据记录
+ */
+ public int nTrafficBlackListID;
+ /**
+ * 车身颜色RGBA
+ */
+ public NET_COLOR_RGBA stuRGBA = new NET_COLOR_RGBA();
+ /**
+ * 抓拍时间
+ */
+ public NET_TIME stSnapTime = new NET_TIME();
+ /**
+ * 记录编号
+ */
+ public int nRecNo;
+ /**
+ * 自定义车位号(停车场用)
+ */
+ public byte[] szCustomParkNo = new byte[33];
+ public byte[] byReserved1 = new byte[3];
+ /**
+ * 车板位号
+ */
+ public int nDeckNo;
+ /**
+ * 空闲车板数量
+ */
+ public int nFreeDeckCount;
+ /**
+ * 占用车板数量
+ */
+ public int nFullDeckCount;
+ /**
+ * 总共车板数量
+ */
+ public int nTotalDeckCount;
+ /**
+ * 违章名称
+ */
+ public byte[] szViolationName = new byte[64];
+ /**
+ * 车重(单位 Kg)
+ */
+ public int nWeight;
+ /**
+ * 自定义车道方向,byDirection为9时有效
+ */
+ public byte[] szCustomRoadwayDirection = new byte[32];
+ /**
+ * 物理车道号,取值0到5
+ */
+ public byte byPhysicalLane;
+ public byte[] byReserved2 = new byte[3];
+ /**
+ * 车辆行驶方向 {@link com.netsdk.lib.enumeration.EM_TRAFFICCAR_MOVE_DIRECTION}
+ */
+ public int emMovingDirection;
+ /**
+ * 对应电子车牌标签信息中的过车时间(ThroughTime)
+ */
+ public NET_TIME stuEleTagInfoUTC = new NET_TIME();
+ /**
+ * 车窗包围盒,0~8191
+ */
+ public NET_RECT stuCarWindowBoundingBox = new NET_RECT();
+ /**
+ * 允许名单信息
+ */
+ public NetSDKLib.NET_TRAFFICCAR_WHITE_LIST stuWhiteList = new NetSDKLib.NET_TRAFFICCAR_WHITE_LIST();
+ /**
+ * 车辆类型 {@link com.netsdk.lib.enumeration.EM_TRAFFICCAR_CAR_TYPE}
+ */
+ public int emCarType;
+ /**
+ * 车道类型 {@link com.netsdk.lib.enumeration.EM_TRAFFICCAR_LANE_TYPE}
+ */
+ public int emLaneType;
+ /**
+ * 车系年款翻译后文本内容
+ */
+ public byte[] szVehicleBrandYearText = new byte[64];
+ /**
+ * 车辆子类型
+ */
+ public byte[] szCategory = new byte[32];
+ /**
+ * 禁止名单信息
+ */
+ public NetSDKLib.NET_TRAFFICCAR_BLACK_LIST stuBlackList = new NetSDKLib.NET_TRAFFICCAR_BLACK_LIST();
+ /**
+ * 车流量方向 {@link NetSDKLib.EM_VEHICLE_DIRECTION}
+ */
+ public int emFlowDirection;
+ /**
+ * 收费公路车辆通行费车型分类 {@link com.netsdk.lib.enumeration.EM_TOLLS_VEHICLE_TYPE}
+ */
+ public int emTollsVehicleType;
+ /**
+ * 轴型代码,参考轴型国标 0代表其他
+ */
+ public int nAxleType;
+ /**
+ * 车轴数量
+ */
+ public int nAxleCount;
+ /**
+ * 车轮数量
+ */
+ public int nWheelNum;
+ /**
+ * 车身抠图
+ */
+ public NET_TRAFFICCAR_ORIGINAL_VEHICLE stuOriginalVehicle = new NET_TRAFFICCAR_ORIGINAL_VEHICLE();
+ /**
+ * 按功能划分的车辆类型 {@link NetSDKLib.EM_VEHICLE_TYPE_BY_FUNC}
+ */
+ public int emVehicleTypeByFunc;
+ /**
+ * 车辆子品牌
+ */
+ public short nSunBrand;
+ /**
+ * 车辆年款
+ */
+ public short nBrandYear;
+ /**
+ * 交通灯类型,仅在EVENT_IVS_TRAFFIC_RUNREDLIGHT中有效, 0;未知, 1:箭头灯, 2:圆形灯
+ */
+ public int nTrafficLightType;
+ /**
+ * 车牌属性 {@link com.netsdk.lib.enumeration.EM_PLATE_ATTRIBUTE}
+ */
+ public int emPlateAttribute;
+ /**
+ * 交通车辆信息扩展, refer to {@link com.netsdk.lib.structure.NET_TRAFFICCAR_INFO_EXTERN}
+ */
+ public Pointer pTrafficInfoExtern;
+ /**
+ * 分组类别,出租车、网约车、私家车等等
+ */
+ public byte[] szCarNoGroupType = new byte[64];
+ /**
+ * 保留字节,留待扩展
+ */
+ public byte[] bReserved = new byte[68-NetSDKLib.POINTERSIZE];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_TRUCK_OCCUPIED_INFO.java b/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_TRUCK_OCCUPIED_INFO.java
new file mode 100644
index 0000000..f9c3247
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_TRUCK_OCCUPIED_INFO.java
@@ -0,0 +1,101 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 事件类型 EVENT_IVS_TRAFFIC_TRUCK_OCCUPIED (大车占道事件)对应的数据块描述信息
+* @origin autoTool
+* @date 2023/09/07 11:04:00
+*/
+public class DEV_EVENT_TRAFFIC_TRUCK_OCCUPIED_INFO extends NetSDKLib.SdkStructure {
+/**
+通道号
+*/
+ public int nChannelID;
+/**
+0:脉冲,1:开始, 2:停止
+*/
+ public int nAction;
+/**
+事件名称
+*/
+ public byte[] szName = new byte[128];
+/**
+智能事件所属大类
+*/
+ public byte[] szClass = new byte[16];
+/**
+GroupID事件组ID,同一物体抓拍过程内GroupID相同
+*/
+ public int nGroupID;
+/**
+CountInGroup一个事件组内的抓拍张数
+*/
+ public int nCountInGroup;
+/**
+IndexInGroup一个事件组内的抓拍序号,从1开始
+*/
+ public int nIndexInGroup;
+/**
+事件时间毫秒数
+*/
+ public int nUTCMS;
+/**
+相对事件时间戳,(单位是毫秒)
+*/
+ public double dbPTS;
+/**
+事件发生的时间
+*/
+ public NET_TIME_EX stuUTC = new NET_TIME_EX();
+/**
+事件ID
+*/
+ public int nEventID;
+/**
+对应车道号
+*/
+ public int nLane;
+/**
+表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
+*/
+ public int nSequence;
+/**
+字节对齐
+*/
+ public byte[] szReserved1 = new byte[4];
+/**
+车牌信息
+*/
+ public NetSDKLib.NET_MSG_OBJECT stuObject = new NetSDKLib.NET_MSG_OBJECT();
+/**
+车身信息
+*/
+ public NetSDKLib.NET_MSG_OBJECT stuVehicle = new NetSDKLib.NET_MSG_OBJECT();
+/**
+交通车辆信息
+*/
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar = new DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO();
+/**
+公共信息
+*/
+ public NetSDKLib.EVENT_COMM_INFO stuCommInfo = new NetSDKLib.EVENT_COMM_INFO();
+/**
+事件对应文件信息
+*/
+ public NetSDKLib.NET_EVENT_FILE_INFO stuFileInfo = new NetSDKLib.NET_EVENT_FILE_INFO();
+/**
+抓图标志(按位),具体见NET_RESERVED_COMMON
+*/
+ public int dwSnapFlagMask;
+/**
+预留字节
+*/
+ public byte[] szReserved = new byte[1024];
+
+public DEV_EVENT_TRAFFIC_TRUCK_OCCUPIED_INFO(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_VEHICLE_BC.java b/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_VEHICLE_BC.java
new file mode 100644
index 0000000..61c06ff
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_VEHICLE_BC.java
@@ -0,0 +1,96 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+import static com.netsdk.lib.NetSDKLib.POINTERSIZE;
+
+/**
+* @author 291189
+* @description 事件类型EVENT_IVS_TRAFFIC_VEHICLE_BC(飙车事件)对应的数据块描述信息
+* @origin autoTool
+* @date 2023/09/06 18:56:07
+*/
+public class DEV_EVENT_TRAFFIC_VEHICLE_BC extends NetSDKLib.SdkStructure {
+/**
+通道号
+*/
+ public int nChannelID;
+/**
+0:脉冲
+*/
+ public int nAction;
+/**
+事件名称
+*/
+ public byte[] szName = new byte[128];
+/**
+时间戳(单位是毫秒)
+*/
+ public double PTS;
+/**
+事件发生的时间
+*/
+ public NET_TIME_EX UTC = new NET_TIME_EX();
+/**
+事件ID
+*/
+ public int nEventID;
+/**
+车牌信息
+*/
+ public NetSDKLib.DH_MSG_OBJECT stuObject = new NetSDKLib.DH_MSG_OBJECT();
+/**
+车身信息
+*/
+ public NetSDKLib.DH_MSG_OBJECT stuVehicle = new NetSDKLib.DH_MSG_OBJECT();
+/**
+交通车辆信息
+*/
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar = new DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO();
+/**
+事件组ID,同一辆车抓拍过程内GroupID相同
+*/
+ public int nGroupID;
+/**
+一个事件组内的抓拍张数
+*/
+ public int nCountInGroup;
+/**
+一个事件组内的抓拍序号
+*/
+ public int nIndexInGroup;
+/**
+对应车道号
+*/
+ public int nLane;
+/**
+表示抓拍序号,如3,2,1. 1表示抓拍结束,0表示异常结束
+*/
+ public int nSequence;
+/**
+公共信息
+*/
+ public NetSDKLib.EVENT_COMM_INFO stCommInfo = new NetSDKLib.EVENT_COMM_INFO();
+/**
+事件对应文件信息
+*/
+ public NetSDKLib.NET_EVENT_FILE_INFO stFileInfo = new NetSDKLib.NET_EVENT_FILE_INFO();
+/**
+图片信息数组, refer to {@link NET_IMAGE_INFO_EX3}
+*/
+ public Pointer pstuImageInfo;
+/**
+图片信息个数
+*/
+ public int nImageInfoNum;
+/**
+预留字段
+*/
+ public byte[] byReserved = new byte[1020-POINTERSIZE];
+
+public DEV_EVENT_TRAFFIC_VEHICLE_BC(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_VEHICLE_CLEANLINESS_INFO.java b/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_VEHICLE_CLEANLINESS_INFO.java
new file mode 100644
index 0000000..84e4a42
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_VEHICLE_CLEANLINESS_INFO.java
@@ -0,0 +1,70 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author : 260611
+ * @description : 事件类型 EVENT_IVS_TRAFFIC_VEHICLE_CLEANLINESS (交通车辆清洁度检测事件检测)对应的数据块描述信息
+ * @since : Created in 2022/01/18 14:34
+ */
+
+public class DEV_EVENT_TRAFFIC_VEHICLE_CLEANLINESS_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ */
+ public int nAction;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 时间戳(单位:毫秒)
+ */
+ public double PTS;
+ /**
+ * 事件发生的时间
+ */
+ public NET_TIME_EX UTC = new NET_TIME_EX();
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 智能事件规则编号
+ */
+ public int nRuleId;
+ /**
+ * 事件对应文件信息
+ */
+ public NetSDKLib.NET_EVENT_FILE_INFO stuFileInfo = new NetSDKLib.NET_EVENT_FILE_INFO();
+ /**
+ * 检测到的车牌信息
+ */
+ public NetSDKLib.NET_MSG_OBJECT stuObject = new NetSDKLib.NET_MSG_OBJECT();
+ /**
+ * 检测到的车辆信息
+ */
+ public NetSDKLib.NET_MSG_OBJECT stuVehicle = new NetSDKLib.NET_MSG_OBJECT();
+ /**
+ * 触发类型
+ */
+ public int emTriggerType;
+ /**
+ * 公共信息
+ */
+ public NetSDKLib.EVENT_COMM_INFO stuCommInfo = new NetSDKLib.EVENT_COMM_INFO();
+ /**
+ * 清洁度阀值
+ */
+ public int nCleanValue;
+ /**
+ * 保留字节
+ */
+ public byte[] bReserved = new byte[1024];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_VEHICLE_IN_EMERGENCY_LANE_INFO.java b/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_VEHICLE_IN_EMERGENCY_LANE_INFO.java
new file mode 100644
index 0000000..548a00b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_VEHICLE_IN_EMERGENCY_LANE_INFO.java
@@ -0,0 +1,97 @@
+package com.netsdk.lib.structure;
+import com.sun.jna.Pointer;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 事件类型 EVENT_IVS_TRAFFIC_VEHICLE_IN_EMERGENCY_LANE (占用应急车道事件)对应的数据块描述信息
+ * @date 2022/11/29 15:05:17
+ */
+public class DEV_EVENT_TRAFFIC_VEHICLE_IN_EMERGENCY_LANE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 0:脉冲事件
+ */
+ public int nAction;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public int PTS;
+ /**
+ * 事件发生的时间
+ */
+ public NET_TIME_EX UTC = new NET_TIME_EX();
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 对应车道号
+ */
+ public int nLane;
+ /**
+ * 检测到的物体
+ */
+ public NetSDKLib.DH_MSG_OBJECT stuObject = new NetSDKLib.DH_MSG_OBJECT();
+ /**
+ * 字节对齐
+ */
+ public byte[] byReserved1 = new byte[4];
+ /**
+ * 车身信息
+ */
+ public NetSDKLib.DH_MSG_OBJECT stuVehicle = new NetSDKLib.DH_MSG_OBJECT();
+ /**
+ * 交通车辆信息
+ */
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar = new DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO();
+ /**
+ * 字节对齐
+ */
+ public byte[] byReserved2 = new byte[4];
+ /**
+ * 非机动车对象
+ */
+ public NetSDKLib.VA_OBJECT_NONMOTOR stuNonMotor = new NetSDKLib.VA_OBJECT_NONMOTOR();
+ /**
+ * 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
+ */
+ public int nSequence;
+ /**
+ * 事件对应文件信息
+ */
+ public NetSDKLib.NET_EVENT_FILE_INFO stuFileInfo = new NetSDKLib.NET_EVENT_FILE_INFO();
+ /**
+ * 公共信息
+ */
+ public NetSDKLib.EVENT_COMM_INFO stuCommInfo = new NetSDKLib.EVENT_COMM_INFO();
+ /**
+ * 图片信息数组,参见结构体定义 {@link com.netsdk.lib.structure.NET_IMAGE_INFO_EX3}
+ */
+ public Pointer pstuImageInfo;
+ /**
+ * 图片信息个数
+ */
+ public int nImageInfoNum;
+ /**
+ * 全景图,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.SCENE_IMAGE_INFO_EX}
+ */
+ public Pointer pstuSceneImage;
+ /**
+ * 预留字段
+ */
+ public byte[] byReserved = new byte[1020-2*NetSDKLib.POINTERSIZE];
+
+ public DEV_EVENT_TRAFFIC_VEHICLE_IN_EMERGENCY_LANE_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_VISIBILITY_INFO.java b/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_VISIBILITY_INFO.java
new file mode 100644
index 0000000..8cc55c4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRAFFIC_VISIBILITY_INFO.java
@@ -0,0 +1,68 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 事件类型 EVENT_IVS_TRAFFIC_VISIBILITY (交通能见度事件检测)对应的数据块描述信息
+ * @date 2022/07/29 11:20:58
+ */
+public class DEV_EVENT_TRAFFIC_VISIBILITY_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ */
+ public int nAction;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 时间戳(单位:毫秒)
+ */
+ public double PTS;
+ /**
+ * 事件发生的时间
+ */
+ public NET_TIME_EX UTC = new NET_TIME_EX();
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 智能事件规则编号
+ */
+ public int nRuleId;
+ /**
+ * 事件对应文件信息
+ */
+ public NetSDKLib.NET_EVENT_FILE_INFO stuFileInfo = new NetSDKLib.NET_EVENT_FILE_INFO();
+ /**
+ * 检测到的车牌信息
+ */
+ public NetSDKLib.NET_MSG_OBJECT stuObject = new NetSDKLib.NET_MSG_OBJECT();
+ /**
+ * 触发类型 {@link com.netsdk.lib.enumeration.EM_TRIGGER_TYPE}
+ */
+ public int emTriggerType;
+ /**
+ * 公共信息
+ */
+ public NetSDKLib.EVENT_COMM_INFO stuCommInfo = new NetSDKLib.EVENT_COMM_INFO();
+ /**
+ * 能见程度(表示距离范围)单位:米
+ */
+ public int nVisibility;
+ /**
+ * 保留字节
+ */
+ public byte[] bReserved = new byte[1020];
+
+ public DEV_EVENT_TRAFFIC_VISIBILITY_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRASH_WITHOUT_COVER_DETECTION_INFO.java b/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRASH_WITHOUT_COVER_DETECTION_INFO.java
new file mode 100644
index 0000000..a14564c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRASH_WITHOUT_COVER_DETECTION_INFO.java
@@ -0,0 +1,99 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 事件类型EVENT_IVS_TRASH_WITHOUT_COVER_DETECTION
+ * (垃圾桶未盖盖子检测事件)对应的数据块描述信息
+ * @origin autoTool
+ * @date 2023/12/01 11:34:34
+ */
+public class DEV_EVENT_TRASH_WITHOUT_COVER_DETECTION_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * / 通道号
+ */
+ public int nChannelID;
+ /**
+ * / 事件动作, 1:开始 2:停止
+ */
+ public int nAction;
+ /**
+ * / 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * / 时间戳(单位是毫秒)
+ */
+ public double PTS;
+ /**
+ * / 事件发生的时间
+ */
+ public NET_TIME_EX UTC = new NET_TIME_EX();
+ /**
+ * / 智能事件所属大类 {@link NetSDKLib.EM_SCENE_CLASS_TYPE}
+ */
+ public int emClassType;
+ /**
+ * / 规则ID, 用于标示哪个规则触发的事件
+ */
+ public int nRuleID;
+ /**
+ * / 事件ID
+ */
+ public int nEventID;
+ /**
+ * / 事件组ID,同一物体抓拍过程内GroupID相同
+ */
+ public int nGroupID;
+ /**
+ * / 一个事件组内的抓拍张数
+ */
+ public int nCountInGroup;
+ /**
+ * / 一个事件组内的抓拍序号, 从1开始
+ */
+ public int nIndexInGroup;
+ /**
+ * / 事件触发的预置点号,从1开始, 0 表示无效
+ */
+ public int nPresetID;
+ /**
+ * / 字节对齐
+ */
+ public byte[] szReserved1 = new byte[4];
+ /**
+ * / 检测到的物体个数
+ */
+ public int nObjectNum;
+ /**
+ * / 检测到的物体
+ */
+ public NetSDKLib.DH_MSG_OBJECT[] stuObjects = new NetSDKLib.DH_MSG_OBJECT[128];
+ /**
+ * / 全景广角图
+ */
+ public NetSDKLib.SCENE_IMAGE_INFO_EX stuSceneImage = new NetSDKLib.SCENE_IMAGE_INFO_EX();
+ /**
+ * / 图片信息数组
+ */
+ public NET_IMAGE_INFO_EX2[] stuImageInfo = new NET_IMAGE_INFO_EX2[32];
+ /**
+ * / 图片信息个数
+ */
+ public int nImageInfoNum;
+ /**
+ * / 保留字节,留待扩展.
+ */
+ public byte[] byReserved = new byte[1024];
+
+ public DEV_EVENT_TRASH_WITHOUT_COVER_DETECTION_INFO() {
+ for (int i = 0; i < stuObjects.length; i++) {
+ stuObjects[i] = new NetSDKLib.DH_MSG_OBJECT();
+ }
+ for (int i = 0; i < stuImageInfo.length; i++) {
+ stuImageInfo[i] = new NET_IMAGE_INFO_EX2();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRUCKNOTCLEAN_FOR_PRMA_INFO.java b/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRUCKNOTCLEAN_FOR_PRMA_INFO.java
new file mode 100644
index 0000000..4e55d21
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TRUCKNOTCLEAN_FOR_PRMA_INFO.java
@@ -0,0 +1,68 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 事件类型 EVENT_IVS_TRUCKNOTCLEAN_FOR_PRMA 工程车未清洗 对应的数据块描述信息
+* @date 2022/12/20 14:23:14
+*/
+public class DEV_EVENT_TRUCKNOTCLEAN_FOR_PRMA_INFO extends NetSDKLib.SdkStructure {
+/**
+通道号
+*/
+ public int nChannelID;
+/**
+0-脉冲 1-开始 2-结束
+*/
+ public int nAction;
+/**
+事件名称
+*/
+ public byte[] szName = new byte[128];
+/**
+时间戳(单位:毫秒)
+*/
+ public double PTS;
+/**
+事件发生的时间
+*/
+ public NET_TIME_EX UTC = new NET_TIME_EX();
+/**
+事件ID
+*/
+ public int nEventID;
+/**
+事件对应文件信息
+*/
+ public NetSDKLib.NET_EVENT_FILE_INFO stuFileInfo = new NetSDKLib.NET_EVENT_FILE_INFO();
+/**
+智能事件所属大类 {@link com.netsdk.lib.enumeration.EM_CLASS_TYPE}
+*/
+ public int emClass;
+/**
+帧序号
+*/
+ public int nSequence;
+/**
+检测到的车牌信息
+*/
+ public NetSDKLib.NET_MSG_OBJECT stuObject = new NetSDKLib.NET_MSG_OBJECT();
+/**
+stuSceneImage 是否有效
+*/
+ public int bSceneImage;
+/**
+全景广角图
+*/
+ public NetSDKLib.SCENE_IMAGE_INFO_EX stuSceneImage = new NetSDKLib.SCENE_IMAGE_INFO_EX();
+/**
+保留字节
+*/
+ public byte[] bReserved = new byte[1024];
+
+public DEV_EVENT_TRUCKNOTCLEAN_FOR_PRMA_INFO(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TUMBLE_DETECTION_INFO.java b/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TUMBLE_DETECTION_INFO.java
new file mode 100644
index 0000000..3c1af02
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TUMBLE_DETECTION_INFO.java
@@ -0,0 +1,110 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+import java.util.Arrays;
+
+/**
+ * @description: (倒地报警事件)对应数据块描述信息
+ * @author: 251589
+ * @time: 2020/11/25 19:16
+ */
+public class DEV_EVENT_TUMBLE_DETECTION_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * #define DH_EVENT_NAME_LEN 128 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 事件动作,1表示持续性事件开始,2表示持续性事件结束;
+ */
+ public int nAction;
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double PTS;
+ /**
+ * 事件发生的时间
+ */
+ public NET_TIME_EX UTC;
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * UTC时间对应的毫秒数
+ */
+ public int UTCMS;
+ /**
+ * 智能事件所属大类
+ */
+ public int emClassType;
+ /**
+ * 目标ID
+ */
+ public int nObjectID;
+ /**
+ * 物体类型,支持以下:"Unknown", "Human", "Vehicle", "Fire", "Smoke", "Plate",
+ * "HumanFace", "Container", "Animal", "TrafficLight", "PastePaper",
+ * "HumanHead", "BulletHole", "Entity" #define DH_COMMON_STRING_16 16 //
+ * 通用字符串长度16
+ */
+ public byte[] szObjectType = new byte[16];
+ /**
+ * 物体包围盒
+ */
+ public NetSDKLib.NET_RECT stuBoundingBox;
+ /**
+ * 智能物体全局唯一物体标识 有效数据位21位,包含’\0’ 前2位%d%d:01-视频片段, 02-图片, 03-文件, 99-其他
+ * 中间14位YYYYMMDDhhmmss:年月日时分秒 后5位%u%u%u%u%u:物体ID,如00001
+ */
+ public byte[] szSerialUUID = new byte[22];
+ /**
+ * 全景广角图
+ */
+ public NetSDKLib.SCENE_IMAGE_INFO stuSceneImage;
+ /**
+ * 图片信息数组,结构体NET_IMAGE_INFO_EX2数组指针
+ */
+ public Pointer pstuImageInfo;
+ /**
+ * 图片信息个数
+ */
+ public int nImageInfoNum;
+ /**
+ * 事件公共扩展字段结构体
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * 检测区个数
+ */
+ public int nDetectRegionNum;
+ /**
+ * 检测区
+ */
+ public NET_POINT_EX[] stuDetectRegion = new NET_POINT_EX[20];
+ /**
+ * 保留字节
+ */
+ public byte[] bReserved = new byte[834];
+
+ public DEV_EVENT_TUMBLE_DETECTION_INFO() {
+ for (int i = 0; i < stuDetectRegion.length; i++) {
+ stuDetectRegion[i] = new NET_POINT_EX();
+ }
+ }
+
+ @Override
+ public String toString() {
+ return "(倒地报警事件)对应数据块描述信息 DEV_EVENT_TUMBLE_DETECTION_INFO{" + "通道号 =" + nChannelID + ", 事件名称 ="
+ + Arrays.toString(szName) + ", 事件动作 =" + nAction + ", 时间戳(毫秒) =" + PTS + ", 事件发生的时间 =" + UTC
+ + ", 事件ID =" + nEventID + ", UTC时间对应的毫秒数 =" + UTCMS + ", 智能事件所属大类 =" + emClassType + ", 目标ID ="
+ + nObjectID + ", 物体类型 =" + Arrays.toString(szObjectType) + ", 物体包围盒 =" + stuBoundingBox + ", 保留字节 ="
+ + Arrays.toString(bReserved) + '}';
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TURNLEFTAFTERSTRAIGHT_INFO.java b/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TURNLEFTAFTERSTRAIGHT_INFO.java
new file mode 100644
index 0000000..ea6796a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/DEV_EVENT_TURNLEFTAFTERSTRAIGHT_INFO.java
@@ -0,0 +1,98 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * 事件类型 EVENT_IVS_TRAFFIC_TURNLEFTAFTERSTRAIGHT (左转未礼让直行事件)对应的数据块描述信息
+*/
+public class DEV_EVENT_TURNLEFTAFTERSTRAIGHT_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 保留字节对齐
+ */
+ public byte[] Reserved = new byte[4];
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double PTS;
+ /**
+ * 事件发生的时间,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME_EX}
+ */
+ public NetSDKLib.NET_TIME_EX UTC = new NetSDKLib.NET_TIME_EX();
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 事件对应文件信息,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_EVENT_FILE_INFO}
+ */
+ public NetSDKLib.NET_EVENT_FILE_INFO stuFileInfo = new NetSDKLib.NET_EVENT_FILE_INFO();
+ /**
+ * 车牌信息,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_MSG_OBJECT}
+ */
+ public NetSDKLib.NET_MSG_OBJECT stuObject = new NetSDKLib.NET_MSG_OBJECT();
+ /**
+ * 车身信息,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_MSG_OBJECT}
+ */
+ public NetSDKLib.NET_MSG_OBJECT stuVehicle = new NetSDKLib.NET_MSG_OBJECT();
+ /**
+ * 车辆信息,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO}
+ */
+ public NetSDKLib.DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar = new NetSDKLib.DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO();
+ /**
+ * 对应车道号
+ */
+ public int nLane;
+ /**
+ * 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
+ */
+ public int nSequence;
+ /**
+ * 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ */
+ public byte byEventAction;
+ /**
+ * 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ */
+ public byte byImageIndex;
+ public byte[] byReserved1 = new byte[2];
+ /**
+ * 抓图标志(按位),具体见NET_RESERVED_COMMON
+ */
+ public int dwSnapFlagMask;
+ /**
+ * 对应图片的分辨率,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_RESOLUTION_INFO}
+ */
+ public NetSDKLib.NET_RESOLUTION_INFO stuResolution = new NetSDKLib.NET_RESOLUTION_INFO();
+ /**
+ * GPS信息,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_GPS_INFO}
+ */
+ public NetSDKLib.NET_GPS_INFO stuGPSInfo = new NetSDKLib.NET_GPS_INFO();
+ /**
+ * 全景图,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.SCENE_IMAGE_INFO_EX}
+ */
+ public Pointer pstuSceneImage;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[984-NetSDKLib.POINTERSIZE];
+ /**
+ * 公共信息,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.EVENT_COMM_INFO}
+ */
+ public NetSDKLib.EVENT_COMM_INFO stCommInfo = new NetSDKLib.EVENT_COMM_INFO();
+ /**
+ * 扩展协议字段,参见结构体定义 {@link com.netsdk.lib.structure.NET_EVENT_INFO_EXTEND}
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+
+ public DEV_EVENT_TURNLEFTAFTERSTRAIGHT_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/DEV_EVENT_VEHICLE_DISTANCE_NEAR_INFO.java b/src/main/java/com/netsdk/lib/structure/DEV_EVENT_VEHICLE_DISTANCE_NEAR_INFO.java
new file mode 100644
index 0000000..3844774
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/DEV_EVENT_VEHICLE_DISTANCE_NEAR_INFO.java
@@ -0,0 +1,74 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 事件类型 EVENT_IVS_VEHICLE_DISTANCE_NEAR (安全驾驶车距过近报警事件) 对应的数据块描述信息
+ * @date 2021/09/27
+ */
+public class DEV_EVENT_VEHICLE_DISTANCE_NEAR_INFO extends NetSDKLib.SdkStructure {
+ /**
+ 事件动作, 0表示脉冲事件, 1表示持续性事件开始, 2表示持续性事件结束;
+ */
+ public int nAction;
+ /**
+ 事件发生的时间
+ */
+ public NET_TIME_EX UTC = new NET_TIME_EX();
+ /**
+ GPS信息
+ */
+ public NET_GPS_STATUS_INFO stuGPSStatusInfo = new NET_GPS_STATUS_INFO();
+ /**
+ 司机ID
+ */
+ public byte[] szDriverID = new byte[32];
+ /**
+ 违章关联视频FTP上传路径
+ */
+ public byte[] szVideoPath = new byte[256];
+ /**
+ 违章关联的多个视频信息个数
+ */
+ public int nRelatingVideoInfoNum;
+ /**
+ 违章关联的多个视频信息数组,最多支持16个视频
+ */
+ public NET_RELATING_VIDEO_INFO[] stuRelatingVideoInfo = new NET_RELATING_VIDEO_INFO[16];
+ /**
+ 横向距离, 单位米
+ */
+ public float fHorizontalDistance;
+ /**
+ 纵向距离, 单位米
+ */
+ public float fParallelDistance;
+ /**
+ 报警目标左上角坐标X
+ */
+ public int nTargetCoordsX;
+ /**
+ 报警目标左上角坐标Y
+ */
+ public int nTargetCoordsY;
+ /**
+ 报警目标坐标, 高
+ */
+ public int nTargetCoordsHeight;
+ /**
+ 报警目标坐标, 宽
+ */
+ public int nTargetCoordsWidth;
+ /**
+ 预留字节
+ */
+ public byte[] bReserved = new byte[712];
+
+ public DEV_EVENT_VEHICLE_DISTANCE_NEAR_INFO(){
+ for(int i=0;i>start&getOr(start,end);
+ }
+
+ private int getOr(int start,int end){
+ int result=0;
+ for (int i = 0; i < end-start; i++) {
+ result|=(1<0.5严重冲突
+ */
+ public float fConflictLevel;
+ /**
+ * 置信度
+ */
+ public float fConfidence;
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[1020];
+
+ public NET_DEV_EVENT_COLLISION_CONFLICT_INFO() {
+ for (int i = 0; i < stuObjects.length; i++) {
+ stuObjects[i] = new NET_VEHICLE_FUSED_OBJECT();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_CONVEYOR_BELT_STATUS_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_CONVEYOR_BELT_STATUS_INFO.java
new file mode 100644
index 0000000..9e4f61e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_CONVEYOR_BELT_STATUS_INFO.java
@@ -0,0 +1,83 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 事件类型 EVENT_IVS_CONVEYOR_BELT_STATUS (传送带运动状态检测报警事件)对应的数据块描述信息
+*/
+public class NET_DEV_EVENT_CONVEYOR_BELT_STATUS_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 0:脉冲,1:开始, 2:停止
+ */
+ public int nAction;
+ /**
+ * 扩展协议字段,参见结构体定义 {@link com.netsdk.lib.structure.NET_EVENT_INFO_EXTEND}
+ */
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 智能事件所属大类
+ */
+ public byte[] szClass = new byte[16];
+ /**
+ * 事件发生的时间,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME_EX}
+ */
+ public NetSDKLib.NET_TIME_EX stuUTC = new NetSDKLib.NET_TIME_EX();
+ /**
+ * 事件编号
+ */
+ public int nEventID;
+ /**
+ * 检测区,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_POINT}
+ */
+ public NetSDKLib.NET_POINT[] stuDetectRegion = new NetSDKLib.NET_POINT[20];
+ /**
+ * 检测区个数
+ */
+ public int nDetectRegionCount;
+ /**
+ * 当前煤量占比值
+ */
+ public float fCoalData;
+ /**
+ * 本次事件触发对应的传送带运行状态: 0表示运动到静止, 1表示静止到运动, 2表示未知
+ */
+ public int nStatusType;
+ /**
+ * 本次事件触发对应的传送带上的物品状态: 0表示未知, 1表示物品从有到无, 2表示物品从无到有
+ */
+ public int nObjectStatusType;
+ /**
+ * 全景广角图,参见结构体定义 {@link com.netsdk.lib.structure.NET_OBJECT_IMAGE_INFO}
+ */
+ public NET_OBJECT_IMAGE_INFO stuSceneImage = new NET_OBJECT_IMAGE_INFO();
+ /**
+ * 检测类型个数
+ */
+ public int nRuleTypeCount;
+ /**
+ * 检测类型,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_CONVEYOR_BELT_RULETYPE_RULE_TYPE}
+ */
+ public int[] emRuleType = new int[16];
+ /**
+ * 皮带运动到静止时或静止到运动时, 皮带上是否有物体。 0- 未知 1- 有物体 2- 无物体
+ */
+ public int nStatusTypeObjRst;
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[1020];
+
+ public NET_DEV_EVENT_CONVEYOR_BELT_STATUS_INFO() {
+ for(int i = 0; i < stuDetectRegion.length; i++){
+ stuDetectRegion[i] = new NetSDKLib.NET_POINT();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_CROSSLINE_STAT_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_CROSSLINE_STAT_INFO.java
new file mode 100644
index 0000000..2406685
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_DEV_EVENT_CROSSLINE_STAT_INFO.java
@@ -0,0 +1,83 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 事件类型 EVENT_IVS_CROSSLINE_STAT (绊线计数事件)对应的数据块描述信息( 注意该事件暂时不支持单独使用,仅配合“开放智能事件(EVENT_IVS_OPEN_INTELLI)”使用)
+* @date 2023/02/06 16:07:27
+*/
+public class NET_DEV_EVENT_CROSSLINE_STAT_INFO extends NetSDKLib.SdkStructure {
+/**
+通道号
+*/
+ public int nChannelID;
+/**
+0:脉冲,1:开始, 2:停止
+*/
+ public int nAction;
+/**
+扩展协议字段
+*/
+ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();
+/**
+事件发生的时间
+*/
+ public NET_TIME_EX stuUTC = new NET_TIME_EX();
+/**
+事件ID
+*/
+ public int nEventID;
+/**
+事件名称
+*/
+ public byte[] szName = new byte[128];
+/**
+智能事件所属大类
+*/
+ public byte[] szClass = new byte[16];
+/**
+相对事件时间戳,(单位是毫秒)
+*/
+ public double dbPTS;
+/**
+事件时间毫秒数
+*/
+ public int nUTCMS;
+/**
+智能事件规则编号
+*/
+ public int nRuleID;
+/**
+区域ID
+*/
+ public int nAreaID;
+/**
+绊线方向 {@link com.netsdk.lib.enumeration.EM_STAT_DIRECTION}
+*/
+ public int emDirection;
+/**
+目标绊线总数
+*/
+ public int nNumber;
+/**
+详细计数信息个数
+*/
+ public int nStatDetailNum;
+/**
+详细计数信息
+*/
+ public NET_STAT_DETAIL[] stuStatDetail = new NET_STAT_DETAIL[16];
+/**
+预留字节
+*/
+ public byte[] szReserved = new byte[1024];
+
+public NET_DEV_EVENT_CROSSLINE_STAT_INFO(){
+ for(int i=0;i= 0; isPoeDevice字段为真时有效
+ */
+ public int nPoePort;
+ /**
+ * 是否支持目标比对
+ */
+ public int bSupportedFR;
+ /**
+ * 是否支持语音联动
+ */
+ public int bControlSpeaker;
+ /**
+ * 设备属性 {@link com.netsdk.lib.enumeration.EM_DEVICE_ATTRIBUTE}
+ */
+ public int emDeviceAttribute;
+ /**
+ * 是否具备统计功能
+ */
+ public int bSupportedStatistic;
+ /**
+ * 主协议是否存在
+ */
+ public int bIsMainProtocolExist;
+ /**
+ * 视图库是否使能
+ */
+ public int bIsVideoImageEnable;
+ /**
+ * 视图库是否在线 0:离线 1:在线
+ */
+ public int nVideoImageOnline;
+ /**
+ * 视图库离线错误码
+ */
+ public int nVideoImageErrorCode;
+ /**
+ * 视图库注册编号
+ */
+ public byte[] szVideoImageRegID = new byte[32];
+ /**
+ * 用户申请的通道个数
+ */
+ public int nMaxChannelCount;
+ /**
+ * 实际返回的通道个数
+ */
+ public int nRetChannelCount;
+ /**
+ * 通道信息, 由用户申请和释放内存, 申请大小为sizeof(NET_DEVICE_CHANNEL_INFO)*nMaxChannelCount,结构体参考{@link NET_DEVICE_CHANNEL_INFO}数组
+ */
+ public Pointer pstuChannelsInfo;
+ /**
+ * 是否支持白光灯控制
+ */
+ public int bControlLighter;
+ /**
+ * 保留字节
+ */
+ public byte[] szReserved = new byte[1024];
+
+ public NET_GET_DEVICE_INFO_EX() {
+ for (int i = 0; i < szMacs.length; i++) {
+ szMacs[0] = new BYTE_18();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_GLASSES_RELATED_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_GLASSES_RELATED_INFO.java
new file mode 100644
index 0000000..d64334e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_GLASSES_RELATED_INFO.java
@@ -0,0 +1,27 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 眼镜相关属性状态信息
+ * @date 2022/11/01 19:47:17
+ */
+public class NET_GLASSES_RELATED_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 眼镜检测规则中报警类型 {@link com.netsdk.lib.enumeration.EM_GLASSES_RULE_TYPE}
+ */
+ public int emGlassesType;
+ /**
+ * 眼镜检测结果, 0-合规 1-不合规 2-未知
+ */
+ public int nGlassesLegalMask;
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[64];
+
+ public NET_GLASSES_RELATED_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_GLOVE_ATTRIBUTE.java b/src/main/java/com/netsdk/lib/structure/NET_GLOVE_ATTRIBUTE.java
new file mode 100644
index 0000000..feb60c3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_GLOVE_ATTRIBUTE.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.EM_COMPLIANCE_STATE;
+import com.netsdk.lib.enumeration.EM_WEARING_STATE;
+
+/**
+ * @author : 260611
+ * @description : 手套相关属性状态信息
+ * @since : Created in 2022/03/10 11:17
+ */
+
+public class NET_GLOVE_ATTRIBUTE extends NetSDKLib.SdkStructure {
+ /**
+ * 是否有戴手套,{@link EM_WEARING_STATE}
+ */
+ public int emHasGlove;
+ /**
+ * 手套检测结果,{@link EM_COMPLIANCE_STATE}
+ */
+ public int emHasLegalGlove;
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_GPS_INFO_EX.java b/src/main/java/com/netsdk/lib/structure/NET_GPS_INFO_EX.java
new file mode 100644
index 0000000..f1c9287
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_GPS_INFO_EX.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 事件类型EVENT_IVS_SMOKEDETECTION(烟雾报警事件)对应的数据块描述信息
+ * @date 2021/12/15
+ */
+public class NET_GPS_INFO_EX extends NetSDKLib.SdkStructure {
+ /**
+ * 经度(单位是百万分之一度)
+ * // 西经:0 - 180000000 实际值应为: 180*1000000 – dwLongitude
+ * // 东经:180000000 - 360000000 实际值应为: dwLongitude – 180*1000000
+ // 如: 300168866应为(300168866 - 180*1000000)/1000000 即东经120.168866度
+ */
+ public int nLongitude;
+ /**
+ * 纬度(单位是百万分之一度)
+ * // 南纬:0 - 90000000 实际值应为: 90*1000000 – dwLatidude
+ // 北纬:90000000 – 180000000 实际值应为: dwLatidude – 90*1000000
+ // 如: 120186268应为 (120186268 - 90*1000000)/1000000 即北纬30. 186268度
+ */
+ public int nLatidude;
+ /**
+ * 高度,单位为米
+ */
+ public int nAltitude;
+ /**
+ * 保留字段
+ */
+ public byte[] szReserved = new byte[52];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_GPS_POSITION.java b/src/main/java/com/netsdk/lib/structure/NET_GPS_POSITION.java
new file mode 100644
index 0000000..9607ad7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_GPS_POSITION.java
@@ -0,0 +1,37 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @description GPS坐标
+ * @origin autoTool
+ * @date 2023/02/14 20:02:02
+ */
+public class NET_GPS_POSITION extends NetSDKLib.SdkStructure {
+ /**
+ * 经度(单位是百万分之度,范围0-360度)
+ */
+ public double dbLongitude;
+ /**
+ * 纬度(单位是百万分之度,范围0-180度)
+ */
+ public double dbLatitude;
+ /**
+ * 海拔(单位:米)
+ */
+ public double dbAltitude;
+ /**
+ * 保留字节
+ */
+ public byte[] szReserved = new byte[128];
+
+ public NET_GPS_POSITION() {
+ }
+
+ @Override
+ public String toString() {
+ return "{" + "dbLongitude=" + dbLongitude + ", dbLatitude=" + dbLatitude + ", dbAltitude=" + dbAltitude + '}';
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_GPS_STATUS_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_GPS_STATUS_INFO.java
new file mode 100644
index 0000000..105faf7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_GPS_STATUS_INFO.java
@@ -0,0 +1,116 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+import java.util.Arrays;
+
+/**
+ * @author 291189
+ * @description GPS状态信息
+ * @origin autoTool
+ * @date 2023/09/06 15:55:03
+ */
+public class NET_GPS_STATUS_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 定位时间
+ */
+ public NET_TIME revTime = new NET_TIME();
+ /**
+ * 设备序列号
+ */
+ public byte[] DvrSerial = new byte[50];
+ /**
+ * 对齐字节
+ */
+ public byte[] byRserved1 = new byte[6];
+ /**
+ * 经度(单位是百万分之度,范围0-360度)
+ */
+ public double longitude;
+ /**
+ * 纬度(单位是百万分之度,范围0-180度)
+ */
+ public double latidude;
+ /**
+ * 高度(米)
+ */
+ public double height;
+ /**
+ * 方向角(正北方向为原点,顺时针为正)
+ */
+ public double angle;
+ /**
+ * 速度(单位km/H)
+ */
+ public double speed;
+ /**
+ * 定位星数, emDateSource为 EM_DATE_SOURCE_GPS时有效
+ */
+ public short starCount;
+ /**
+ * 对齐字节
+ */
+ public byte[] byRserved2 = new byte[2];
+ /**
+ * 天线状态, emDateSource为 EM_DATE_SOURCE_GPS时有效 {@link com.netsdk.lib.enumeration.NET_THREE_STATUS_BOOL}
+ */
+ public int antennaState;
+ /**
+ * 定位状态 {@link com.netsdk.lib.enumeration.NET_THREE_STATUS_BOOL}
+ */
+ public int orientationState;
+ /**
+ * 工作状态(0=未定位,1=非差分定位,2=差分定位,3=无效PPS,6=正在估算
+ * emDateSource为 EM_DATE_SOURCE_GPS时有效
+ */
+ public int workStae;
+ /**
+ * 发生的报警位置个数
+ */
+ public int nAlarmCount;
+ /**
+ * 发生的报警位置,值可能多个, emDateSource为 EM_DATE_SOURCE_GPS时有效
+ */
+ public int[] nAlarmState = new int[128];
+ /**
+ * 0-实时 1-补传
+ */
+ public byte bOffline;
+ /**
+ * GPS信噪比,表示GPS信号强度,值越大,信号越强 范围:0~100,0表示不可用
+ */
+ public byte bSNR;
+ /**
+ * 对齐字节
+ */
+ public byte[] byRserved3 = new byte[2];
+ /**
+ * 数据来源 {@link com.netsdk.lib.enumeration.EM_DATE_SOURCE}
+ */
+ public int emDateSource;
+ /**
+ * 在当前工作模式下(GPS或北斗等系统)的信号强度
+ */
+ public int nSignalStrength;
+ /**
+ * 水平精度因子惯性导航时无效
+ */
+ public float fHdop;
+ /**
+ * 位置精度因子,惯性导航时无效
+ */
+ public float fPdop;
+ /**
+ * 总里程, 单位 米
+ */
+ public int nMileage;
+ /**
+ * 保留字节
+ */
+ public byte[] byRserved = new byte[96];
+
+ public NET_GPS_STATUS_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_GROUND_THING_DETECTION_DATA.java b/src/main/java/com/netsdk/lib/structure/NET_GROUND_THING_DETECTION_DATA.java
new file mode 100644
index 0000000..a675ce0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_GROUND_THING_DETECTION_DATA.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 遮罩数据
+*/
+public class NET_GROUND_THING_DETECTION_DATA extends NetSDKLib.SdkStructure
+{
+ /**
+ * 每个MaskInfo遮罩数据在二进制数据包中的偏移量
+ */
+ public long nOffset;
+ /**
+ * 遮罩数据内存长度weight*height*depth
+ */
+ public int nLength;
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[60];
+
+ public NET_GROUND_THING_DETECTION_DATA() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_GROUND_THING_DETECTION_MAP_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_GROUND_THING_DETECTION_MAP_INFO.java
new file mode 100644
index 0000000..f7e807b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_GROUND_THING_DETECTION_MAP_INFO.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * mask输出信息类型映射
+*/
+public class NET_GROUND_THING_DETECTION_MAP_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 像素值掩码,1天空、2光伏、3水体、4道路、5建筑物、6耕地、7林地、8不透水地面、9其他
+ */
+ public int nPixelValue;
+ /**
+ * pixelValue映射的目标粗类型,类型为VideoAnalyseObject,目前只会用到粗类型
+ */
+ public int nCoarseType;
+ /**
+ * pixelValue映射的目标细类型,见coarseType对应的类型
+ */
+ public int nSubType;
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[60];
+
+ public NET_GROUND_THING_DETECTION_MAP_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_GROUND_THING_DETECTION_MASK_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_GROUND_THING_DETECTION_MASK_INFO.java
new file mode 100644
index 0000000..6830b05
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_GROUND_THING_DETECTION_MASK_INFO.java
@@ -0,0 +1,40 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 单目标小图分割结果
+*/
+public class NET_GROUND_THING_DETECTION_MASK_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 宽度
+ */
+ public int nWidth;
+ /**
+ * 高度
+ */
+ public int nHeight;
+ /**
+ * 每个像素数值的位数,为8的倍数,用于将遮罩数据转换为具体的无符号整数
+ */
+ public int nDepth;
+ /**
+ * 行跨距的字节数
+ */
+ public int nStride;
+ /**
+ * 遮罩数据,参见结构体定义 {@link com.netsdk.lib.structure.NET_GROUND_THING_DETECTION_DATA}
+ */
+ public NET_GROUND_THING_DETECTION_DATA stuData = new NET_GROUND_THING_DETECTION_DATA();
+ /**
+ * 区域id
+ */
+ public int nRegionID;
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[60];
+
+ public NET_GROUND_THING_DETECTION_MASK_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_GROUND_THING_DETECTION_RULE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_GROUND_THING_DETECTION_RULE_INFO.java
new file mode 100644
index 0000000..70fef0d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_GROUND_THING_DETECTION_RULE_INFO.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 事件类型 EVENT_IVS_GROUND_THING_DETECTION(地物识别事件)对应的规则配置
+*/
+public class NET_GROUND_THING_DETECTION_RULE_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 多个检测区域个数
+ */
+ public int nDetectRegionNum;
+ /**
+ * 多个检测区域,参见结构体定义 {@link com.netsdk.lib.structure.NET_MUILTI_DETECT_REGION_INFO}
+ */
+ public NET_MUILTI_DETECT_REGION_INFO[] stuMultiDetectRegion = new NET_MUILTI_DETECT_REGION_INFO[64];
+
+ public NET_GROUND_THING_DETECTION_RULE_INFO() {
+ this.dwSize = this.size();
+ for(int i = 0; i < stuMultiDetectRegion.length; i++){
+ stuMultiDetectRegion[i] = new NET_MUILTI_DETECT_REGION_INFO();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_GUIDE_MODULE_MEASURE_MODE_PARAM.java b/src/main/java/com/netsdk/lib/structure/NET_GUIDE_MODULE_MEASURE_MODE_PARAM.java
new file mode 100644
index 0000000..4971f52
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_GUIDE_MODULE_MEASURE_MODE_PARAM.java
@@ -0,0 +1,69 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 高德测温模块使用参数
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/09 17:05
+ */
+public class NET_GUIDE_MODULE_MEASURE_MODE_PARAM extends NetSDKLib.SdkStructure {
+ /**
+ * 测温区域框显示使能(在视频流界面显示测试区域框)
+ */
+ public int bRectEnable;
+ /**
+ * 允许的最远测温距离(cm)
+ */
+ public int nMaxDistance;
+ /**
+ * 温度阈值(摄氏度)
+ */
+ public double dbTempThreshold;
+ /**
+ * 温度矫正值(摄氏度)
+ */
+ public double dbCorrectTemp;
+ /**
+ * 有效温度下限,低于此值的温度为无效温度(摄氏度)
+ */
+ public double dbValidTempLowerLimit;
+ /**
+ * 温度随机替换阈值(低于此阈值的温度会被随机替换为一个有效温度,用于兼容错误情况。阈值为0时表示此功能不开启)。
+ */
+ public double dbTempRandReplaceThreshold;
+ /**
+ * 是否开启测温调试模式(在人脸框顶部显示测温数据)
+ */
+ public int bDebugModelEnable;
+ /**
+ * 热成像标定模式,不同标定模式下的标定参数不一样
+ */
+ public int emCalibrationMode;
+ /**
+ * 是否显示热图
+ */
+ public int bHeatDisplayEnbale;
+ /**
+ * 预留字段
+ */
+ public byte[] byReserved = new byte[1020];
+
+ @Override
+ public String toString() {
+ return "NET_GUIDE_MODULE_MEASURE_MODE_PARAM{" +
+ "bRectEnable=" + bRectEnable +
+ ", nMaxDistance=" + nMaxDistance +
+ ", dbTempThreshold=" + dbTempThreshold +
+ ", dbCorrectTemp=" + dbCorrectTemp +
+ ", dbValidTempLowerLimit=" + dbValidTempLowerLimit +
+ ", dbTempRandReplaceThreshold=" + dbTempRandReplaceThreshold +
+ ", bDebugModelEnable=" + bDebugModelEnable +
+ ", emCalibrationMode=" + emCalibrationMode +
+ ", bHeatDisplayEnbale=" + bHeatDisplayEnbale +
+ '}';
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HEALTH_CODE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HEALTH_CODE_INFO.java
new file mode 100644
index 0000000..2b34780
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HEALTH_CODE_INFO.java
@@ -0,0 +1,54 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.EM_HEALTH_CODE_STATUS;
+/**
+ * 健康码信息
+ */
+public class NET_HEALTH_CODE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 证件号
+ */
+ public byte[] szCitizenID = new byte[32];
+ /**
+ * 证件姓名
+ */
+ public byte[] szCitizenName = new byte[128];
+ /**
+ * 常驻地
+ */
+ public byte[] szPermanentAddr = new byte[128];
+ /**
+ * 当前地址
+ */
+ public byte[] szCurrentAddr = new byte[128];
+ /**
+ * 健康码状态,对应状态{@link EM_HEALTH_CODE_STATUS}
+ */
+ public int emHealthCodeStatus;
+ /**
+ * 手机号
+ */
+ public byte[] szPhoneNumber = new byte[32];
+ /**
+ * 异常原因
+ */
+ public byte[] szAbnormalCodeReason = new byte[256];
+ /**
+ * 查询时间戳
+ */
+ public NET_TIME stuQueryTime;
+ /**
+ * 疫区经历(stuEpidemicAreaExperience)的个数
+ */
+ public int nEpidemicAreaExperience;
+ /**
+ * 疫区经历
+ */
+ public NET_EPIDEMIC_AREA_EXPERIENCE[] stuEpidemicAreaExperience = (NET_EPIDEMIC_AREA_EXPERIENCE[]) new NET_EPIDEMIC_AREA_EXPERIENCE().toArray(10);
+ /**
+ * 预留字段
+ */
+ public byte[] byReserved = new byte[512];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HISTORY_ACTIVE_CANDIDATE.java b/src/main/java/com/netsdk/lib/structure/NET_HISTORY_ACTIVE_CANDIDATE.java
new file mode 100644
index 0000000..06395c6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HISTORY_ACTIVE_CANDIDATE.java
@@ -0,0 +1,48 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 历史库以图搜图主动上报的候选人信息
+*/
+public class NET_HISTORY_ACTIVE_CANDIDATE extends NetSDKLib.SdkStructure
+{
+ /**
+ * 相似度
+ */
+ public int nSimilarity;
+ /**
+ * 抓拍通道号
+ */
+ public int nChannelID;
+ /**
+ * 历史库人员信息,参见结构体定义 {@link com.netsdk.lib.structure.NET_HISTORY_PERSON_INFO}
+ */
+ public NET_HISTORY_PERSON_INFO stuHistoryPerson = new NET_HISTORY_PERSON_INFO();
+ /**
+ * 查询人员出现的时间,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME}
+ */
+ public NetSDKLib.NET_TIME stuTime = new NetSDKLib.NET_TIME();
+ /**
+ * 目标全景图,参见结构体定义 {@link com.netsdk.lib.structure.NET_FACE_IMAGE_INFO}
+ */
+ public NET_FACE_IMAGE_INFO stuSceneImage = new NET_FACE_IMAGE_INFO();
+ /**
+ * 通道号
+ */
+ public byte[] szChannelString = new byte[32];
+ /**
+ * 历史库中人员出现的时间(UTC时间格式),参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME}
+ */
+ public NetSDKLib.NET_TIME stuTimeRealUTC = new NetSDKLib.NET_TIME();
+ /**
+ * 事件类型
+ */
+ public byte[] szEventType = new byte[64];
+ /**
+ * 预留字节数
+ */
+ public byte[] bReserved = new byte[1116];
+
+ public NET_HISTORY_ACTIVE_CANDIDATE() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HISTORY_HUMAN_IMAGE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HISTORY_HUMAN_IMAGE_INFO.java
new file mode 100644
index 0000000..d60b628
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HISTORY_HUMAN_IMAGE_INFO.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 历史库人体图片信息
+*/
+public class NET_HISTORY_HUMAN_IMAGE_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 图片大小,单位:字节
+ */
+ public int nLength;
+ /**
+ * 图片宽度
+ */
+ public int nWidth;
+ /**
+ * 图片高度
+ */
+ public int nHeight;
+ /**
+ * 文件路径
+ */
+ public byte[] szFilePath = new byte[260];
+
+ public NET_HISTORY_HUMAN_IMAGE_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HISTORY_HUMAN_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HISTORY_HUMAN_INFO.java
new file mode 100644
index 0000000..6ee975c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HISTORY_HUMAN_INFO.java
@@ -0,0 +1,104 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 历史库人体信息
+*/
+public class NET_HISTORY_HUMAN_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 上衣颜色,参见枚举定义 {@link com.netsdk.lib.NetSDKLib.EM_CLOTHES_COLOR}
+ */
+ public int emCoatColor;
+ /**
+ * 上衣类型,参见枚举定义 {@link com.netsdk.lib.NetSDKLib.EM_COAT_TYPE}
+ */
+ public int emCoatType;
+ /**
+ * 裤子颜色,参见枚举定义 {@link com.netsdk.lib.NetSDKLib.EM_CLOTHES_COLOR}
+ */
+ public int emTrousersColor;
+ /**
+ * 裤子类型,参见枚举定义 {@link com.netsdk.lib.NetSDKLib.EM_TROUSERS_TYPE}
+ */
+ public int emTrousersType;
+ /**
+ * 是否戴帽子,参见枚举定义 {@link com.netsdk.lib.NetSDKLib.EM_HAS_HAT}
+ */
+ public int emHasHat;
+ /**
+ * 是否带包,参见枚举定义 {@link com.netsdk.lib.NetSDKLib.EM_HAS_BAG}
+ */
+ public int emHasBag;
+ /**
+ * 包围盒(8192坐标系),参见结构体定义 {@link com.netsdk.lib.structure.NET_RECT}
+ */
+ public NET_RECT stuBoundingBox = new NET_RECT();
+ /**
+ * 年龄
+ */
+ public int nAge;
+ /**
+ * 性别,参见枚举定义 {@link com.netsdk.lib.NetSDKLib.EM_SEX_TYPE}
+ */
+ public int emSex;
+ /**
+ * 角度,参见枚举定义 {@link com.netsdk.lib.NetSDKLib.EM_ANGLE_TYPE}
+ */
+ public int emAngle;
+ /**
+ * 是否打伞,参见枚举定义 {@link com.netsdk.lib.NetSDKLib.EM_HAS_UMBRELLA}
+ */
+ public int emHasUmbrella;
+ /**
+ * 包类型,参见枚举定义 {@link com.netsdk.lib.NetSDKLib.EM_BAG_TYPE}
+ */
+ public int emBag;
+ /**
+ * 上半身衣服图案,参见枚举定义 {@link com.netsdk.lib.NetSDKLib.EM_CLOTHES_PATTERN}
+ */
+ public int emUpperPattern;
+ /**
+ * 头发样式,参见枚举定义 {@link com.netsdk.lib.NetSDKLib.EM_HAIR_STYLE}
+ */
+ public int emHairStyle;
+ /**
+ * 帽类型,参见枚举定义 {@link com.netsdk.lib.NetSDKLib.EM_CAP_TYPE}
+ */
+ public int emCap;
+ /**
+ * 是否有背包,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_HAS_BACK_BAG}
+ */
+ public int emHasBackBag;
+ /**
+ * 是否带手提包,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_HAS_CARRIER_BAG}
+ */
+ public int emHasCarrierBag;
+ /**
+ * 是否有肩包,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_HAS_SHOULDER_BAG}
+ */
+ public int emHasShoulderBag;
+ /**
+ * 是否有斜跨包,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_HAS_MESSENGER_BAG}
+ */
+ public int emMessengerBag;
+ /**
+ * 人体图片信息,参见结构体定义 {@link com.netsdk.lib.structure.NET_HISTORY_HUMAN_IMAGE_INFO}
+ */
+ public NET_HISTORY_HUMAN_IMAGE_INFO stuImageInfo = new NET_HISTORY_HUMAN_IMAGE_INFO();
+ /**
+ * 图片信息,参见结构体定义 {@link com.netsdk.lib.structure.NET_HISTORY_HUMAN_IMAGE_INFO}
+ */
+ public NET_HISTORY_HUMAN_IMAGE_INFO stuFaceImageInfo = new NET_HISTORY_HUMAN_IMAGE_INFO();
+ /**
+ * 人体唯一标识符,由服务端生成
+ */
+ public byte[] szUID = new byte[64];
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[192];
+
+ public NET_HISTORY_HUMAN_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HISTORY_NON_MOTOR_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HISTORY_NON_MOTOR_INFO.java
new file mode 100644
index 0000000..066a9f2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HISTORY_NON_MOTOR_INFO.java
@@ -0,0 +1,60 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 非机动车信息
+ * @date 2022/11/24 17:12:01
+ */
+public class NET_HISTORY_NON_MOTOR_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 非机动车唯一标识符
+ */
+ public byte[] szUID = new byte[64];
+ /**
+ * 包围盒(8192坐标系)
+ */
+ public NET_RECT stuBoundingBox = new NET_RECT();
+ /**
+ * 车上人员头盔状态 0-未知 1-没有 2-有
+ */
+ public int nHelmet;
+ /**
+ * 帽子颜色
+ */
+ public byte[] szCapColor = new byte[16];
+ /**
+ * 非机动车子类型
+ */
+ public byte[] szCategory = new byte[32];
+ /**
+ * 非机动车颜色
+ */
+ public byte[] szColor = new byte[16];
+ /**
+ * 非机动车车篮 0-未知 1-否 2-有
+ */
+ public int nBasket;
+ /**
+ * 非机动车后备箱 0: 未知 1: 无后备箱 2: 非机动车自带箱 3: 非机动车自装箱 4: 非机动车自带自装箱都有
+ */
+ public int nStoragebox;
+ /**
+ * 骑车人数, 0xff表示未知
+ */
+ public int nNumOfCycling;
+ /**
+ * 非机动车图片信息
+ */
+ public SDK_PIC_INFO_EX stuImage = new SDK_PIC_INFO_EX();
+ /**
+ * 保留字节
+ */
+ public byte[] szReserved = new byte[256];
+
+ public NET_HISTORY_NON_MOTOR_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HISTORY_PERSON_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HISTORY_PERSON_INFO.java
new file mode 100644
index 0000000..8473376
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HISTORY_PERSON_INFO.java
@@ -0,0 +1,72 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 历史库人员信息
+*/
+public class NET_HISTORY_PERSON_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 人员唯一标识符,首次由服务端生成,区别于ID字段, 修改,删除操作时必填
+ */
+ public byte[] szUID = new byte[32];
+ /**
+ * 性别,参见枚举定义 {@link com.netsdk.lib.NetSDKLib.EM_SEX_TYPE}
+ */
+ public int emSexType;
+ /**
+ * 年龄, 0表示未知
+ */
+ public int nAge;
+ /**
+ * 表情,参见枚举定义 {@link com.netsdk.lib.NetSDKLib.EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE}
+ */
+ public int emEmotion;
+ /**
+ * 眼镜状态,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_GLASSES_STATE}
+ */
+ public int emGlassesState;
+ /**
+ * 眼镜类型,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_GLASSES_TYPE}
+ */
+ public int emGlassesType;
+ public byte[] szReserved1 = new byte[4];
+ /**
+ * 眼睛状态,参见枚举定义 {@link com.netsdk.lib.NetSDKLib.EM_EYE_STATE_TYPE}
+ */
+ public int emEye;
+ /**
+ * 嘴巴状态,参见枚举定义 {@link com.netsdk.lib.NetSDKLib.EM_MOUTH_STATE_TYPE}
+ */
+ public int emMouth;
+ /**
+ * 口罩状态,参见枚举定义 {@link com.netsdk.lib.NetSDKLib.EM_MASK_STATE_TYPE}
+ */
+ public int emMask;
+ /**
+ * 胡子状态,参见枚举定义 {@link com.netsdk.lib.NetSDKLib.EM_BEARD_STATE_TYPE}
+ */
+ public int emBeard;
+ /**
+ * 魅力值, -1表示无效, 0未识别,识别时范围1-100,得分高魅力高
+ */
+ public int nAttractive;
+ /**
+ * 图片张数
+ */
+ public int nFacePicNum;
+ /**
+ * 当前人员对应的图片信息,参见结构体定义 {@link com.netsdk.lib.structure.NET_FACE_IMAGE_INFO}
+ */
+ public NET_FACE_IMAGE_INFO[] stuFacePicInfo = new NET_FACE_IMAGE_INFO[48];
+ /**
+ * 预留字节数
+ */
+ public byte[] bReserved = new byte[2048];
+
+ public NET_HISTORY_PERSON_INFO() {
+ for(int i = 0; i < stuFacePicInfo.length; i++){
+ stuFacePicInfo[i] = new NET_FACE_IMAGE_INFO();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HISTORY_TRAFFIC_CAR_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HISTORY_TRAFFIC_CAR_INFO.java
new file mode 100644
index 0000000..9799228
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HISTORY_TRAFFIC_CAR_INFO.java
@@ -0,0 +1,160 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 机动车信息
+ * @date 2022/11/24 17:12:01
+ */
+public class NET_HISTORY_TRAFFIC_CAR_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 非机动车唯一标识符
+ */
+ public byte[] szUID = new byte[64];
+ /**
+ * 包围盒(8192坐标系)
+ */
+ public NET_RECT stuBoundingBox = new NET_RECT();
+ /**
+ * 车牌号码
+ */
+ public byte[] szPlateNumber = new byte[32];
+ /**
+ * 车牌类型
+ */
+ public byte[] szPlateType = new byte[32];
+ /**
+ * 车牌颜色
+ */
+ public byte[] szPlateColor = new byte[32];
+ /**
+ * 车身颜色
+ */
+ public byte[] szVehicleColor = new byte[32];
+ /**
+ * 车辆类型
+ */
+ public byte[] szCategory = new byte[32];
+ /**
+ * 特种车辆
+ */
+ public byte[] szSpecialCar = new byte[32];
+ /**
+ * 车辆标识
+ */
+ public byte[] szVehicleSign = new byte[64];
+ /**
+ * 车辆子品牌
+ */
+ public int nSubBrand;
+ /**
+ * 车辆年款
+ */
+ public int nBrandYear;
+ /**
+ * 摆件数量
+ */
+ public int nFurnitureCount;
+ /**
+ * 挂件数量
+ */
+ public int nPendantCount;
+ /**
+ * 年检标数量
+ */
+ public int nAnnualInspectionCount;
+ /**
+ * 年检标顺序, 0: 未知 1: 乱排 2: 横排 3: 竖排
+ */
+ public int nAnnualInspectionShape;
+ /**
+ * 主驾驶遮阳板状态 {@link com.netsdk.lib.enumeration.NET_SUNSHADE_STATE}
+ */
+ public int emSunShade;
+ /**
+ * 副驾驶遮阳板状态 {@link com.netsdk.lib.enumeration.NET_SUNSHADE_STATE}
+ */
+ public int emSubSeatSunShade;
+ /**
+ * 卡片数量
+ */
+ public int nCardCount;
+ /**
+ * 主驾驶安全带 {@link com.netsdk.lib.enumeration.NET_SAFEBELT_STATE}
+ */
+ public int emSafeBelt;
+ /**
+ * 是否在打电话, 0: 未知 1: 否 2: 是
+ */
+ public int nCalling;
+ /**
+ * 是否在玩手机, 0: 未知 1: 否 2: 是
+ */
+ public int nPlayPhone;
+ /**
+ * 是否在抽烟, 0: 未知 1: 否 2: 是
+ */
+ public int nSmoking;
+ /**
+ * 副驾驶是否有人, 0: 未知 1: 否 2: 是
+ */
+ public int nSubSeatPeople;
+ /**
+ * 副驾驶安全带 {@link com.netsdk.lib.enumeration.NET_SAFEBELT_STATE}
+ */
+ public int emSubSeatSafeBelt;
+ /**
+ * 是否抱小孩, 0: 未知 1: 否 2: 是
+ */
+ public int nHoldBaby;
+ /**
+ * 是否有天窗, 0: 未知 1: 否 2: 是
+ */
+ public int nSunroof;
+ /**
+ * 是否有行李架, 0: 未知 1: 否 2: 是
+ */
+ public int nLuggageRack;
+ /**
+ * 是否有车辆撞损, 0: 未知 1: 否 2: 是
+ */
+ public int nVehicleCollision;
+ /**
+ * 是否有喷绘, 0: 未知 1: 否 2: 是
+ */
+ public int nVehiclePrint;
+ /**
+ * 是否有备胎, 0: 未知 1: 否 2: 是
+ */
+ public int nBackupTire;
+ /**
+ * 后备箱状态, 0: 未知 1: 关闭 2: 打开
+ */
+ public int nTrunk;
+ /**
+ * 车牌污损状态, 0: 未知 1: 正常 2: 无牌 3: 部分遮挡/污损 4: 完全遮挡/污损
+ */
+ public int nPlateAttribute;
+ /**
+ * 渣土车遮盖状态, 0: 未知 1: 有遮盖 2: 无遮盖空载 3: 无遮盖满载
+ */
+ public int nMuskHide;
+ /**
+ * 机动车图片信息
+ */
+ public SDK_PIC_INFO_EX stuImage = new SDK_PIC_INFO_EX();
+ /**
+ * 车辆停车是否压线, 0: 未知 1: 未压线停车 2: 压线停车
+ */
+ public int nPressParkingStatus;
+ /**
+ * 保留字节
+ */
+ public byte[] szReserved = new byte[256];
+
+ public NET_HISTORY_TRAFFIC_CAR_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HKIMAGESERVER_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HKIMAGESERVER_INFO.java
new file mode 100644
index 0000000..cfe0b2a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HKIMAGESERVER_INFO.java
@@ -0,0 +1,23 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+/**
+ * @author 119178
+ * @description 视图云存储服务器鉴权密钥
+ * @date 2021/4/20
+ */
+public class NET_HKIMAGESERVER_INFO extends SdkStructure {
+ /**
+ * 接入码
+ */
+ public byte[] szAccessKey = new byte[136];
+ /**
+ * 鉴权密钥
+ */
+ public byte[] szSecretKey = new byte[136];
+ /**
+ * 预留字段
+ */
+ public byte[] szReserved = new byte[512];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HOME_PAGE.java b/src/main/java/com/netsdk/lib/structure/NET_HOME_PAGE.java
new file mode 100644
index 0000000..955f2c7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HOME_PAGE.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 主页配置选项
+*/
+public class NET_HOME_PAGE extends NetSDKLib.SdkStructure
+{
+ /**
+ * 主菜单按钮是否可见
+ */
+ public int bButtonMainMenuVisible;
+ /**
+ * 密码按钮是否可见
+ */
+ public int bButtonPasswordVisible;
+ /**
+ * 二维码按钮是否可见
+ */
+ public int bButtonQRCodeVisible;
+ /**
+ * 对讲按钮是否可见
+ */
+ public int bButtonCallVisible;
+ /**
+ * 对讲按钮呼叫类型, 1:呼叫房间 2:呼叫管理机 3:呼叫固定房间 4:呼叫门铃
+ */
+ public int nButtonCallType;
+
+ public NET_HOME_PAGE() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HSJC_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HSJC_INFO.java
new file mode 100644
index 0000000..dfa1a52
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HSJC_INFO.java
@@ -0,0 +1,27 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+/**
+ * @author 251823
+ * @description 核酸检测信息
+ * @date 2021/08/15
+ */
+public class NET_HSJC_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 核酸检测报告日期 (yyyy-MM-dd)
+ */
+ public byte[] szHSJCReportDate = new byte[32];
+ /**
+ * 核酸检测报告有效期(天)
+ */
+ public int nHSJCExpiresIn;
+ /**
+ * 核酸检测报告结果
+ */
+ public int nHSJCResult;
+ /**
+ * 保留字节
+ */
+ public byte[] szReserved = new byte[1024];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HUMAN_AGE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_AGE_INFO.java
new file mode 100644
index 0000000..1d12e1d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_AGE_INFO.java
@@ -0,0 +1,38 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+* @author 291189
+* @description 年龄过滤条件
+* @origin autoTool
+* @date 2023/05/29 11:40:41
+*/
+public class NET_HUMAN_AGE_INFO extends NetSDKLib.SdkStructure {
+/**
+是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
+*/
+ public int bEnable;
+/**
+过滤显示的年龄段的个数,最大值是16
+*/
+ public int nShowListNums;
+/**
+过滤显示的年龄段
+*/
+ public int[] emHumanAgeShowList = new int[16];
+/**
+年龄段信息的描述信息, 内存由用户申请和释放, 申请大小sizeof(NET_HUMAN_DESC_INFO)*nShowListNums
+*/
+ public Pointer pstuHumanDesc;
+/**
+保留字节
+*/
+ public byte[] szReserved = new byte[256];
+
+public NET_HUMAN_AGE_INFO(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HUMAN_ANGLE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_ANGLE_INFO.java
new file mode 100644
index 0000000..ec8b040
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_ANGLE_INFO.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 人体拍摄角度
+* @origin autoTool
+* @date 2023/05/29 11:40:44
+*/
+public class NET_HUMAN_ANGLE_INFO extends NetSDKLib.SdkStructure {
+/**
+是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
+*/
+ public int bEnable;
+/**
+需要过滤的拍摄角度类型的个数,最大值是16
+*/
+ public int nShowListNums;
+/**
+需要过滤的拍摄角度类型
+*/
+ public int[] emHumanAngleShowList = new int[16];
+/**
+保留字节
+*/
+ public byte[] szReserved = new byte[256];
+
+public NET_HUMAN_ANGLE_INFO(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HUMAN_BEARD_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_BEARD_INFO.java
new file mode 100644
index 0000000..7f21909
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_BEARD_INFO.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 胡子过滤条件
+* @origin autoTool
+* @date 2023/05/29 11:40:42
+*/
+public class NET_HUMAN_BEARD_INFO extends NetSDKLib.SdkStructure {
+/**
+是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
+*/
+ public int bEnable;
+/**
+过滤显示的胡子情况的个数,最大值是2
+*/
+ public int nShowListNums;
+/**
+胡子情况
+*/
+ public int[] emHumanBeardShowList = new int[2];
+/**
+保留字节
+*/
+ public byte[] szReserved = new byte[256];
+
+public NET_HUMAN_BEARD_INFO(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HUMAN_COAT_COLOR_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_COAT_COLOR_INFO.java
new file mode 100644
index 0000000..b3ab9e2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_COAT_COLOR_INFO.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 上衣颜色过滤条件
+* @origin autoTool
+* @date 2023/05/29 11:40:42
+*/
+public class NET_HUMAN_COAT_COLOR_INFO extends NetSDKLib.SdkStructure {
+/**
+是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
+*/
+ public int bEnable;
+/**
+过滤出对应的上衣颜色的个数,最大值是32
+*/
+ public int nShowListNums;
+/**
+上衣颜色
+*/
+ public int[] emHumanCoatColorShowList = new int[32];
+/**
+保留字节
+*/
+ public byte[] szReserved = new byte[256];
+
+public NET_HUMAN_COAT_COLOR_INFO(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HUMAN_COAT_TYPE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_COAT_TYPE_INFO.java
new file mode 100644
index 0000000..2be7a90
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_COAT_TYPE_INFO.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 上衣类型过滤条件
+* @origin autoTool
+* @date 2023/05/29 11:40:42
+*/
+public class NET_HUMAN_COAT_TYPE_INFO extends NetSDKLib.SdkStructure {
+/**
+是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
+*/
+ public int bEnable;
+/**
+需要过滤的上衣类型的个数,最大值是16
+*/
+ public int nShowListNums;
+/**
+需要过滤的上衣类型
+*/
+ public int[] emHumanCoatTypeShowList = new int[16];
+/**
+保留字节
+*/
+ public byte[] szReserved = new byte[256];
+
+public NET_HUMAN_COAT_TYPE_INFO(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HUMAN_EMOTION_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_EMOTION_INFO.java
new file mode 100644
index 0000000..cdf727e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_EMOTION_INFO.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 表情过滤条件
+* @origin autoTool
+* @date 2023/05/29 11:40:41
+*/
+public class NET_HUMAN_EMOTION_INFO extends NetSDKLib.SdkStructure {
+/**
+是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
+*/
+ public int bEnable;
+/**
+过滤显示的表情的个数,最大值是32
+*/
+ public int nShowListNums;
+/**
+过滤显示的表情
+*/
+ public int[] emHumanEmotionShowList = new int[32];
+/**
+保留字节
+*/
+ public byte[] szReserved = new byte[256];
+
+public NET_HUMAN_EMOTION_INFO(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HUMAN_FEATURE_VECTOR_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_FEATURE_VECTOR_INFO.java
new file mode 100644
index 0000000..99a8149
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_FEATURE_VECTOR_INFO.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 斜视状态
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 19:35
+ */
+public class NET_HUMAN_FEATURE_VECTOR_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 人体特征值在二进制数据中的偏移, 单位:字节
+ */
+ public int nOffset;
+ /**
+ * 人体特征值数据长度, 单位:字节
+ */
+ public int nLength;
+ /**
+ * 用于标识特征值是否加密
+ */
+ public int bFeatureEnc;
+ /**
+ * 保留字节
+ */
+ public byte byReserved[] = new byte[28];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HUMAN_GLASSES_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_GLASSES_INFO.java
new file mode 100644
index 0000000..84f6d42
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_GLASSES_INFO.java
@@ -0,0 +1,37 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 眼镜佩戴过滤条件
+* @origin autoTool
+* @date 2023/05/29 11:40:41
+*/
+public class NET_HUMAN_GLASSES_INFO extends NetSDKLib.SdkStructure {
+/**
+是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
+*/
+ public int bEnable;
+/**
+过滤显示的眼镜佩戴情况的个数,最大值是16
+*/
+ public int nShowListNums;
+/**
+过滤显示的眼镜佩戴情况
+*/
+ public int[] emHumanGlassesShowList = new int[16];
+/**
+是否戴眼镜,TRUE-有,FALSE-无
+*/
+ public int bHasGlasses;
+/**
+保留字节
+*/
+ public byte[] szReserved = new byte[256];
+
+public NET_HUMAN_GLASSES_INFO(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HUMAN_HAIR_STYLE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_HAIR_STYLE_INFO.java
new file mode 100644
index 0000000..6e138ab
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_HAIR_STYLE_INFO.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 发型过滤条件
+* @origin autoTool
+* @date 2023/05/29 11:40:44
+*/
+public class NET_HUMAN_HAIR_STYLE_INFO extends NetSDKLib.SdkStructure {
+/**
+是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
+*/
+ public int bEnable;
+/**
+需要过滤的发型类型的个数,最大值是16
+*/
+ public int nShowListNums;
+/**
+需要过滤的发型类型
+*/
+ public int[] emHumanHairStyleShowList = new int[16];
+/**
+保留字节
+*/
+ public byte[] szReserved = new byte[256];
+
+public NET_HUMAN_HAIR_STYLE_INFO(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HUMAN_HAS_BAG_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_HAS_BAG_INFO.java
new file mode 100644
index 0000000..df69d6f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_HAS_BAG_INFO.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 背包过滤条件
+* @origin autoTool
+* @date 2023/05/29 11:40:43
+*/
+public class NET_HUMAN_HAS_BAG_INFO extends NetSDKLib.SdkStructure {
+/**
+是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
+*/
+ public int bEnable;
+/**
+需要过滤的背包情况的个数,最大值是16
+*/
+ public int nShowListNums;
+/**
+背包情况
+*/
+ public int[] emHumanHasBagShowList = new int[16];
+/**
+保留字节
+*/
+ public byte[] szReserved = new byte[256];
+
+public NET_HUMAN_HAS_BAG_INFO(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HUMAN_HAS_HAT_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_HAS_HAT_INFO.java
new file mode 100644
index 0000000..7afd1c2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_HAS_HAT_INFO.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 帽子过滤条件
+* @origin autoTool
+* @date 2023/05/29 11:40:43
+*/
+public class NET_HUMAN_HAS_HAT_INFO extends NetSDKLib.SdkStructure {
+/**
+是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
+*/
+ public int bEnable;
+/**
+需要过滤的帽子情况的个数,最大值是16
+*/
+ public int nShowListNums;
+/**
+需要过滤的帽子情况
+*/
+ public int[] emHumanHasHatShowList = new int[16];
+/**
+保留字节
+*/
+ public byte[] szReserved = new byte[256];
+
+public NET_HUMAN_HAS_HAT_INFO(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HUMAN_HAS_UMBRELLA_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_HAS_UMBRELLA_INFO.java
new file mode 100644
index 0000000..36a0d17
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_HAS_UMBRELLA_INFO.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 雨伞过滤条件
+* @origin autoTool
+* @date 2023/05/29 11:40:43
+*/
+public class NET_HUMAN_HAS_UMBRELLA_INFO extends NetSDKLib.SdkStructure {
+/**
+是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
+*/
+ public int bEnable;
+/**
+雨伞检测情况的个数,最大值是2
+*/
+ public int nShowListNums;
+/**
+雨伞检测情况
+*/
+ public int[] emHumanHasUmbrellaShowList = new int[2];
+/**
+保留字节
+*/
+ public byte[] szReserved = new byte[256];
+
+public NET_HUMAN_HAS_UMBRELLA_INFO(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HUMAN_HELMET_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_HELMET_INFO.java
new file mode 100644
index 0000000..476d805
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_HELMET_INFO.java
@@ -0,0 +1,37 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 安全帽合规性检测信息
+* @origin autoTool
+* @date 2023/05/29 11:40:44
+*/
+public class NET_HUMAN_HELMET_INFO extends NetSDKLib.SdkStructure {
+/**
+是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
+*/
+ public int bEnable;
+/**
+是否有戴安全帽,TRUE-有,FALSE-无
+*/
+ public int bHasHelmet;
+/**
+安全帽颜色的个数,最大值是32
+*/
+ public int nShowListNums;
+/**
+安全帽颜色
+*/
+ public int[] emHumanHelmetColorShowList = new int[32];
+/**
+保留字节
+*/
+ public byte[] szReserved = new byte[256];
+
+public NET_HUMAN_HELMET_INFO(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HUMAN_HOLD_BABY_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_HOLD_BABY_INFO.java
new file mode 100644
index 0000000..740eb53
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_HOLD_BABY_INFO.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 抱小孩
+* @origin autoTool
+* @date 2023/05/29 11:40:44
+*/
+public class NET_HUMAN_HOLD_BABY_INFO extends NetSDKLib.SdkStructure {
+/**
+是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
+*/
+ public int bEnable;
+/**
+抱小孩类型的个数,最大值是2
+*/
+ public int nShowListNums;
+/**
+抱小孩类型
+*/
+ public int[] emHumanHoldBabyShowList = new int[2];
+/**
+保留字节
+*/
+ public byte[] szReserved = new byte[256];
+
+public NET_HUMAN_HOLD_BABY_INFO(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HUMAN_MASK_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_MASK_INFO.java
new file mode 100644
index 0000000..4b32d32
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_MASK_INFO.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 口罩佩戴过滤条件
+* @origin autoTool
+* @date 2023/05/29 11:40:41
+*/
+public class NET_HUMAN_MASK_INFO extends NetSDKLib.SdkStructure {
+/**
+是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
+*/
+ public int bEnable;
+/**
+过滤显示的口罩佩戴情况的个数,最大值是2
+*/
+ public int nShowListNums;
+/**
+过滤显示的口罩佩戴情况
+*/
+ public int[] emHumanMaskShowList = new int[2];
+/**
+保留字节
+*/
+ public byte[] szReserved = new byte[256];
+
+public NET_HUMAN_MASK_INFO(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HUMAN_RAIN_COAT_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_RAIN_COAT_INFO.java
new file mode 100644
index 0000000..9cfe9a2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_RAIN_COAT_INFO.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 穿戴雨披
+* @origin autoTool
+* @date 2023/05/29 11:40:43
+*/
+public class NET_HUMAN_RAIN_COAT_INFO extends NetSDKLib.SdkStructure {
+/**
+是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
+*/
+ public int bEnable;
+/**
+穿戴雨披类型的个数,最大值是2
+*/
+ public int nShowListNums;
+/**
+穿戴雨披类型
+*/
+ public int[] emHumanRainCoatShowList = new int[2];
+/**
+保留字节
+*/
+ public byte[] szReserved = new byte[256];
+
+public NET_HUMAN_RAIN_COAT_INFO(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HUMAN_SEX_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_SEX_INFO.java
new file mode 100644
index 0000000..b16c1c0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_SEX_INFO.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 性别过滤条件
+* @origin autoTool
+* @date 2023/05/29 11:40:41
+*/
+public class NET_HUMAN_SEX_INFO extends NetSDKLib.SdkStructure {
+/**
+是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
+*/
+ public int bEnable;
+/**
+过滤显示的性别的个数,最大值是2
+*/
+ public int nShowListNums;
+/**
+过滤显示的性别
+*/
+ public int[] emHumanSexShowList = new int[2];
+/**
+保留字节
+*/
+ public byte[] szReserved = new byte[256];
+
+public NET_HUMAN_SEX_INFO(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HUMAN_TEMPERATURE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_TEMPERATURE_INFO.java
new file mode 100644
index 0000000..4b0b297
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_TEMPERATURE_INFO.java
@@ -0,0 +1,35 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 人体温信息
+ * @date 2022/11/24 21:06:12
+ */
+public class NET_HUMAN_TEMPERATURE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 温度
+ */
+ public double dbTemperature;
+ /**
+ * 温度单位 { @link EM_HUMAN_TEMPERATURE_UNIT}
+ */
+ public int emTemperatureUnit;
+ /**
+ * 是否超温
+ */
+ public int bIsOverTemp;
+ /**
+ * 是否低的温度
+ */
+ public int bIsUnderTemp;
+ /**
+ * 预留字段
+ */
+ public byte[] bReserved = new byte[132];
+
+ public NET_HUMAN_TEMPERATURE_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HUMAN_TROUSERS_COLOR_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_TROUSERS_COLOR_INFO.java
new file mode 100644
index 0000000..56d7645
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_TROUSERS_COLOR_INFO.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 裤子颜色过滤条件
+* @origin autoTool
+* @date 2023/05/29 11:40:42
+*/
+public class NET_HUMAN_TROUSERS_COLOR_INFO extends NetSDKLib.SdkStructure {
+/**
+是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
+*/
+ public int bEnable;
+/**
+需要过滤的裤子颜色颜色类型的个数,最大值是32
+*/
+ public int nShowListNums;
+/**
+需要过滤的裤子颜色类型
+*/
+ public int[] emHumanTrousersColorShowList = new int[32];
+/**
+保留字节
+*/
+ public byte[] szReserved = new byte[256];
+
+public NET_HUMAN_TROUSERS_COLOR_INFO(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HUMAN_TROUSERS_TYPE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_TROUSERS_TYPE_INFO.java
new file mode 100644
index 0000000..cf5cfce
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_TROUSERS_TYPE_INFO.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 裤子类型过滤条件
+* @origin autoTool
+* @date 2023/05/29 11:40:42
+*/
+public class NET_HUMAN_TROUSERS_TYPE_INFO extends NetSDKLib.SdkStructure {
+/**
+是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
+*/
+ public int bEnable;
+/**
+需要过滤的裤子类型的个数,最大值是16
+*/
+ public int nShowListNums;
+/**
+需要过滤的裤子类型
+*/
+ public int[] emHumanTrousersTypeShowList = new int[16];
+/**
+保留字节
+*/
+ public byte[] szReserved = new byte[256];
+
+public NET_HUMAN_TROUSERS_TYPE_INFO(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HUMAN_VEST_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_VEST_INFO.java
new file mode 100644
index 0000000..1bea2d6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HUMAN_VEST_INFO.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 安全背心合规性检测信息
+* @origin autoTool
+* @date 2023/05/29 11:40:44
+*/
+public class NET_HUMAN_VEST_INFO extends NetSDKLib.SdkStructure {
+/**
+是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
+*/
+ public int bEnable;
+/**
+是否有穿反光背心的类型的个数,最大值是2
+*/
+ public int nShowListNums;
+/**
+是否有穿反光背心的类型
+*/
+ public int[] emHumanVestShowList = new int[2];
+/**
+保留字节
+*/
+ public byte[] szReserved = new byte[256];
+
+public NET_HUMAN_VEST_INFO(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_HYGROTHERMOGRAPH_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_HYGROTHERMOGRAPH_INFO.java
new file mode 100644
index 0000000..d76fe80
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_HYGROTHERMOGRAPH_INFO.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 回调的温湿度信息
+* @origin autoTool
+* @date 2023/12/02 10:25:56
+*/
+public class NET_HYGROTHERMOGRAPH_INFO extends NetSDKLib.SdkStructure {
+/**
+/ 温度, 单位: ℃
+*/
+ public float fTemperature;
+/**
+/ 湿度 单位: %rh
+*/
+ public float fHumidity;
+/**
+/ 上报通道号
+*/
+ public int nChannel;
+/**
+/ 保留字节
+*/
+ public byte[] szResvered = new byte[1020];
+
+public NET_HYGROTHERMOGRAPH_INFO(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IDCARD_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IDCARD_INFO.java
new file mode 100644
index 0000000..f117bba
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IDCARD_INFO.java
@@ -0,0 +1,54 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+public class NET_IDCARD_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 证件消息类型,请参考EM_IDCARD_MSG_TYPE
+ */
+ public int emIDCardMsgType;
+ // EM_IDCARD_MSG_TYP_QUERY:除 nEventGroupID 和 szRoomNo (在上一层)字段不用填,其余必填
+ // EM_IDCARD_MSG_TYPE_ISSUE_PERMISSION:nEventGroupID 、szRoomNo(在上一层)及 szCitizenName 字段必填,其余可为空
+ /**
+ * 姓名
+ */
+ public byte[] szCitizenName = new byte[32];
+ /**
+ * 性别,请参考EM_CITIZENIDCARD_SEX_TYPE
+ */
+ public int emSexType;
+ public int nMZ;
+ /**
+ * 生日(年月日有效)
+ */
+ public NET_TIME stuBirthday;
+ /**
+ * 地址
+ */
+ public byte[] szAddress = new byte[128];
+ /**
+ * 证件号
+ */
+ public byte[] szCitizenID = new byte[32];
+ /**
+ * 签发机关
+ */
+ public byte[] szAuthority = new byte[48];
+ /**
+ * 有效期限起始日期(年月日有效)
+ */
+ public NET_TIME stuBeginValidTime;
+ /**
+ * 有效期限截止日期(年月日有效)
+ */
+ public NET_TIME stuEndValidTime;
+ /**
+ * 事件组ID,用于标示不同事件的对同一动作的关联
+ */
+ public int nEventGroupID;
+ /**
+ * 预留字段
+ */
+ public byte[] byReserved = new byte[1024];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IMAGE_COMPARE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IMAGE_COMPARE_INFO.java
new file mode 100644
index 0000000..2a960c1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IMAGE_COMPARE_INFO.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 人脸图片比较信息
+ * @date 2020/10/19
+ */
+public class NET_IMAGE_COMPARE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 在二进制数据块中的偏移,单位:字节
+ */
+ public int dwoffset;
+ /**
+ * 图片大小,单位:字节
+ */
+ public int dwLength;
+ /**
+ * 图片宽度
+ */
+ public int dwWidth;
+ /**
+ * 图片高度
+ */
+ public int dwHeight;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[128];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IMAGE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IMAGE_INFO.java
new file mode 100644
index 0000000..fa3f2f7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IMAGE_INFO.java
@@ -0,0 +1,36 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 图片信息
+* @date 2022/06/28 19:24:08
+*/
+public class NET_IMAGE_INFO extends NetSDKLib.SdkStructure {
+/**
+图片类型 {@link com.netsdk.lib.enumeration.EM_PIC_TYPE}
+*/
+ public int emPicType;
+/**
+在二进制数据块中的偏移
+*/
+ public int nOffset;
+/**
+图片大小,单位:字节
+*/
+ public int nLength;
+/**
+图片路径
+*/
+ public byte[] szFilePath = new byte[256];
+/**
+预留字节
+*/
+ public byte[] byReserved = new byte[1024];
+
+public NET_IMAGE_INFO(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IMAGE_INFO_EX.java b/src/main/java/com/netsdk/lib/structure/NET_IMAGE_INFO_EX.java
new file mode 100644
index 0000000..097baa9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IMAGE_INFO_EX.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 图片类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 18:54
+ */
+public class NET_IMAGE_INFO_EX extends NetSDKLib.SdkStructure {
+ /**
+ * 在上传图片数据中的图片序号
+ */
+ public int nIndexInData;
+ /**
+ * 在二进制数据块中的偏移
+ */
+ public int nOffset;
+ /**
+ * 图片大小,单位:字节
+ */
+ public int nLength;
+ /**
+ * 图片大小,单位:字节,参考{ @link EM_IMAGE_TYPE}
+ */
+ public int emType;
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IMAGE_INFO_EX2.java b/src/main/java/com/netsdk/lib/structure/NET_IMAGE_INFO_EX2.java
new file mode 100644
index 0000000..f5f90f8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IMAGE_INFO_EX2.java
@@ -0,0 +1,31 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 图片类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 18:04
+ */
+public class NET_IMAGE_INFO_EX2 extends NetSDKLib.SdkStructure {
+ public int emType; // 图片类型
+ /**
+ * 在二进制数据块中的偏移
+ */
+ public int nOffset;
+ /**
+ * 图片大小,单位:字节
+ */
+ public int nLength;
+ /**
+ * 用于字节对齐
+ */
+ public byte byReserverd[] = new byte[4];
+ /**
+ * 图片存储位置
+ */
+ public byte szPath[] = new byte[256];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IMAGE_INFO_EX3.java b/src/main/java/com/netsdk/lib/structure/NET_IMAGE_INFO_EX3.java
new file mode 100644
index 0000000..bc975e1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IMAGE_INFO_EX3.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 图片扩展信息
+ * @origin autoTool
+ * @date 2023/06/19 14:53:51
+ */
+public class NET_IMAGE_INFO_EX3 extends NetSDKLib.SdkStructure {
+ /**
+ * 图片类型 {@link com.netsdk.lib.enumeration.EM_IMAGE_TYPE_EX2}
+ */
+ public int emType;
+ /**
+ * 在二进制数据块中的偏移
+ */
+ public int nOffset;
+ /**
+ * 图片大小,单位:字节
+ */
+ public int nLength;
+ /**
+ * 加密密钥标记, 区分使用哪种长度密钥, 0: 使用 szEncryptKey, 1: 使用 szEncryptLKey
+ */
+ public int nEncryptFlag;
+ /**
+ * 图片存储位置
+ */
+ public byte[] szPath = new byte[256];
+ /**
+ * 二进制图片加密秘钥,设备传过来的是Base64编码之后的,SDK不做解码处理
+ */
+ public byte[] szEncryptKey = new byte[128];
+ /**
+ * 二进制图片加密秘钥,设备传过来的是Base64编码之后的,SDK不做解码处理
+ */
+ public byte[] szEncryptLKey = new byte[256];
+ /**
+ * 图片宽度
+ */
+ public int nWidth;
+ /**
+ * 图片高度
+ */
+ public int nHeight;
+ /**
+ * 用于字节对齐
+ */
+ public byte[] byReserverd2 = new byte[760];
+
+ public NET_IMAGE_INFO_EX3() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IMAGE_RELATION.java b/src/main/java/com/netsdk/lib/structure/NET_IMAGE_RELATION.java
new file mode 100644
index 0000000..9a431c8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IMAGE_RELATION.java
@@ -0,0 +1,38 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 小图信息
+ * @date 2023/04/20 15:11:18
+ */
+public class NET_IMAGE_RELATION extends NetSDKLib.SdkStructure {
+ /**
+ * 大图ID
+ */
+ public int nBigPicId;
+ /**
+ * 大图中小图张数
+ */
+ public int nSmallPicNum;
+ /**
+ * 大图中小图的信息
+ */
+ public NET_SMALL_PIC_INFO[] stuSmallPicInfo = new NET_SMALL_PIC_INFO[32];
+ /**
+ * 大图检测小图结果错误码 {@link com.netsdk.lib.enumeration.EM_MULTIFACE_DETECT_ERRCODE}
+ */
+ public int emDetectErrCode;
+ /**
+ * 保留字节
+ */
+ public byte[] bReserved = new byte[124];
+
+ public NET_IMAGE_RELATION() {
+ for (int i = 0; i < stuSmallPicInfo.length; i++) {
+ stuSmallPicInfo[i] = new NET_SMALL_PIC_INFO();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IMAGE_RELATION_EX.java b/src/main/java/com/netsdk/lib/structure/NET_IMAGE_RELATION_EX.java
new file mode 100644
index 0000000..61729a4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IMAGE_RELATION_EX.java
@@ -0,0 +1,73 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 251823
+ * @description 一张大图检测到小图的结果
+ * @date 2023/04/20 15:18:00
+ */
+public class NET_IMAGE_RELATION_EX extends NetSDKLib.SdkStructure {
+ /**
+ * 图片的请求ID
+ */
+ public byte[] szRequestID = new byte[64];
+ /**
+ * 大图ID
+ */
+ public int nBigPicId;
+ /**
+ * 大图中小图张数
+ */
+ public int nSmallPicNum;
+ /**
+ * 大图中小图的信息
+ */
+ public NET_SMALL_PIC_INFO[] stuSmallPicInfo = new NET_SMALL_PIC_INFO[32];
+ /**
+ * 大图检测小图结果错误码 {@link com.netsdk.lib.enumeration.EM_MULTIFACE_DETECT_ERRCODE}
+ */
+ public int emDetectErrCode;
+ /**
+ * 大图检测结果列表
+ */
+ public NET_IMAGE_RELATION_LIST[] stuImageRelation = new NET_IMAGE_RELATION_LIST[32];
+ /**
+ * 大图检测结果列表个数
+ */
+ public int nstuImageRelationNum;
+ /**
+ * 查询令牌
+ */
+ public int nToken;
+ /**
+ * 小图信息
+ */
+ public NET_IMAGE_RELATION_EX_IMAGEINFO[] stuImageInfo = new NET_IMAGE_RELATION_EX_IMAGEINFO[32];
+ /**
+ * 小图信息个数
+ */
+ public int nImageNum;
+ /**
+ * 小图图片数据
+ */
+ public Pointer pData;
+ /**
+ * 保留字节
+ */
+ public byte[] bReserved = new byte[248];
+
+ public NET_IMAGE_RELATION_EX() {
+ for (int i = 0; i < stuSmallPicInfo.length; i++) {
+ stuSmallPicInfo[i] = new NET_SMALL_PIC_INFO();
+ }
+ for (int i = 0; i < stuImageRelation.length; i++) {
+ stuImageRelation[i] = new NET_IMAGE_RELATION_LIST();
+ }
+ for (int i = 0; i < stuImageInfo.length; i++) {
+ stuImageInfo[i] = new NET_IMAGE_RELATION_EX_IMAGEINFO();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IMAGE_RELATION_EX_IMAGEINFO.java b/src/main/java/com/netsdk/lib/structure/NET_IMAGE_RELATION_EX_IMAGEINFO.java
new file mode 100644
index 0000000..a2f2848
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IMAGE_RELATION_EX_IMAGEINFO.java
@@ -0,0 +1,27 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 小图信息
+ * @date 2023/04/20 15:18:00
+ */
+public class NET_IMAGE_RELATION_EX_IMAGEINFO extends NetSDKLib.SdkStructure {
+ /**
+ * 在二进制数据块中的偏移
+ */
+ public int nOffset;
+ /**
+ * 图片大小,单位字节
+ */
+ public int nLength;
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[16];
+
+ public NET_IMAGE_RELATION_EX_IMAGEINFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IMAGE_RELATION_LIST.java b/src/main/java/com/netsdk/lib/structure/NET_IMAGE_RELATION_LIST.java
new file mode 100644
index 0000000..dd79492
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IMAGE_RELATION_LIST.java
@@ -0,0 +1,67 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 251823
+ * @description 一张大图检测结果列表
+ * @date 2023/04/20 15:18:00
+ */
+public class NET_IMAGE_RELATION_LIST extends NetSDKLib.SdkStructure {
+ /**
+ * base64特征值
+ */
+ public Pointer pszFeature;
+ /**
+ * base64特征值长度
+ */
+ public int nFeatureLen;
+ /**
+ * 特征ID
+ */
+ public byte[] szFeatureID = new byte[64];
+ /**
+ * 目标数据
+ */
+ public NetSDKLib.NET_FACE_DATA stuFaceData = new NetSDKLib.NET_FACE_DATA();
+ /**
+ * 人体属性
+ */
+ public HUMAN_ATTRIBUTES_INFO stuHumanAttributes = new HUMAN_ATTRIBUTES_INFO();
+ /**
+ * 非机动车信息
+ */
+ public NetSDKLib.VA_OBJECT_NONMOTOR stuNonMotor = new NetSDKLib.VA_OBJECT_NONMOTOR();
+ /**
+ * 特征版本号
+ */
+ public byte[] szAlgorithmVersion = new byte[32];
+ /**
+ * 厂商
+ */
+ public byte[] szVendor = new byte[32];
+ /**
+ * 目标类型 {@link EM_OBJECT_TYPE}
+ */
+ public int emObjectType;
+ /**
+ * 矩形区域
+ */
+ public NetSDKLib.DH_POINT[] stuRectPoint = new NetSDKLib.DH_POINT[2];
+ /**
+ * 机动车属性
+ */
+ public NET_HISTORY_TRAFFIC_CAR_INFO stuHistoryTrafficCar = new NET_HISTORY_TRAFFIC_CAR_INFO();
+ /**
+ * 保留字节
+ */
+ public byte[] bReserved = new byte[1024];
+
+ public NET_IMAGE_RELATION_LIST() {
+ for (int i = 0; i < stuRectPoint.length; i++) {
+ stuRectPoint[i] = new NetSDKLib.DH_POINT();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_INFRARED_MEASURE_MODE_PARAM.java b/src/main/java/com/netsdk/lib/structure/NET_INFRARED_MEASURE_MODE_PARAM.java
new file mode 100644
index 0000000..d8d937d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_INFRARED_MEASURE_MODE_PARAM.java
@@ -0,0 +1,66 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+import java.util.Arrays;
+
+
+/**
+ * 单片机红外测温模式参数
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/09 17:05
+ */
+public class NET_INFRARED_MEASURE_MODE_PARAM extends NetSDKLib.SdkStructure {
+ /**
+ * 最远测试距离,单位: cm
+ */
+ public int nMaxDistance;
+ /**
+ * 红外温度保存时间(ms) (人员在设备鉴权时,从红外设备取温度的有效倒退时间)
+ */
+ public int nRetentionTime;
+ /**
+ * 温度阈值,单位: 摄氏度
+ */
+ public double dbTempThreshold;
+ /**
+ * 温度矫正值,单位: 摄氏度
+ */
+ public double dbCorrectTemp;
+ /**
+ * 有效温度下限,低于此值的温度为无效温度(摄氏度)
+ */
+ public double dbValidTempLowerLimit;
+ /**
+ * 是否开启测温调试模式(在屏幕上显示测温调试数据)
+ */
+ public int bDebugModelEnable;
+ /**
+ * 测温区域框显示使能(在视频流界面显示测试区域框)
+ */
+ public int bRectEnable;
+ /**
+ * 测温模块传感器类型
+ */
+ public byte szSensorType[] = new byte[64];
+ /**
+ * 预留字段
+ */
+ public byte[] byReserved = new byte[1024];
+
+ @Override
+ public String toString() {
+ return "NET_INFRARED_MEASURE_MODE_PARAM{" +
+ "nMaxDistance=" + nMaxDistance +
+ ", nRetentionTime=" + nRetentionTime +
+ ", dbTempThreshold=" + dbTempThreshold +
+ ", dbCorrectTemp=" + dbCorrectTemp +
+ ", dbValidTempLowerLimit=" + dbValidTempLowerLimit +
+ ", bDebugModelEnable=" + bDebugModelEnable +
+ ", bRectEnable=" + bRectEnable +
+ ", szSensorType=" + Arrays.toString(szSensorType) +
+ '}';
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_INSIDE_OBJECT.java b/src/main/java/com/netsdk/lib/structure/NET_INSIDE_OBJECT.java
new file mode 100644
index 0000000..9965e64
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_INSIDE_OBJECT.java
@@ -0,0 +1,49 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 物品类型
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 09:19
+ */
+public class NET_INSIDE_OBJECT extends NetSDKLib.SdkStructure {
+ /**
+ * 物品危险等级 {@link com.netsdk.lib.NetSDKLib.EM_DANGER_GRADE_TYPE }
+ */
+ public int emDangerGrade;
+ /**
+ * 物品类型 {@link com.netsdk.lib.enumeration.EM_INSIDE_OBJECT_TYPE}
+ */
+ public int emObjType;
+ /**
+ * 相似度
+ */
+ public int nSimilarity;
+ /**
+ * 包围盒
+ */
+ public NetSDKLib.NET_RECT stuBoundingBox = new NetSDKLib.NET_RECT();
+ /**
+ * 自定义物品类型,emObjType为 EM_INSIDE_OBJECT_UNKNOWN 时使用
+ */
+ public byte[] szObjectType = new byte[32];
+ /**
+ * 保留字节,留待扩展
+ */
+ public byte byReserved[] = new byte[76];
+
+ @Override
+ public String toString() {
+ return "NET_INSIDE_OBJECT{" +
+ "emDangerGrade=" + emDangerGrade +
+ ", emObjType=" + emObjType +
+ ", nSimilarity=" + nSimilarity +
+ ", stuBoundingBox=" + stuBoundingBox.toString() +
+ ", szObjectType=" + new String(szObjectType)+
+ '}';
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_INSIDE_SUB_TOTAL_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_INSIDE_SUB_TOTAL_INFO.java
new file mode 100644
index 0000000..92d6528
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_INSIDE_SUB_TOTAL_INFO.java
@@ -0,0 +1,41 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 本周期区域内滞留人员统计信息
+ * @date 2023/03/19 16:19:34
+ */
+public class NET_INSIDE_SUB_TOTAL_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 本周期上报的区域内总人数
+ */
+ public int nTotal;
+ /**
+ * 当前周期,所有人的总滞留时长
+ */
+ public int nTotalStayTime;
+ /**
+ * 人次数据有效个数
+ */
+ public int nManStaySummaryValidNum;
+ /**
+ * 人次数据,
+ * 例此处下发的规则为滞留时间大于3,5,10,300秒的规则.此处结果就是滞留时间大于3秒共10人次,大于5秒的6人次,10秒的3人次,300秒的0人次
+ */
+ public int[] nManStaySummary = new int[8];
+ /**
+ * 总滞留时长有效个数
+ */
+ public int nTotalStayTimeSummaryValidNum;
+ /**
+ * 总滞留时长,单位秒,
+ * 例此处下发的规则为滞留时间大于3,5,10,300秒的规则,此处结果就是滞留时间大于3秒的人员的总滞留时长50秒,大于5秒的48秒,10秒的30秒,300秒的0秒
+ */
+ public int[] nTotalStayTimeSummary = new int[8];
+
+ public NET_INSIDE_SUB_TOTAL_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_INSTALLED_APP_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_INSTALLED_APP_INFO.java
new file mode 100644
index 0000000..ed439b6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_INSTALLED_APP_INFO.java
@@ -0,0 +1,48 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 安装的应用信息
+*/
+public class NET_INSTALLED_APP_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * APP的名称
+ */
+ public byte[] szAppName = new byte[128];
+ /**
+ * APP的版本
+ */
+ public byte[] szVersion = new byte[64];
+ /**
+ * 扩展信息
+ */
+ public byte[] szExtend = new byte[64];
+ /**
+ * APP的ID
+ */
+ public int nAppID;
+ /**
+ * APP的调试状态,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_APP_DEBUG_STATE}
+ */
+ public int emAppDebugState;
+ /**
+ * APP的运行状态,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_APP_RUNNING_STATE}
+ */
+ public int emAppRunningState;
+ /**
+ * APP的license状态,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_APP_LICENSE_STATE}
+ */
+ public int emAppLicenseState;
+ /**
+ * APP的能力信息,参见结构体定义 {@link com.netsdk.lib.structure.NET_APP_CAPS}
+ */
+ public NET_APP_CAPS stuAppCaps = new NET_APP_CAPS();
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[256];
+
+ public NET_INSTALLED_APP_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_INSULATOR_DETECT.java b/src/main/java/com/netsdk/lib/structure/NET_INSULATOR_DETECT.java
new file mode 100644
index 0000000..2be9608
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_INSULATOR_DETECT.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 绝缘子检测结果
+* @date 2022/06/28 19:44:56
+*/
+public class NET_INSULATOR_DETECT extends NetSDKLib.SdkStructure {
+/**
+绝缘子状态 {@link com.netsdk.lib.enumeration.EM_INSULATOR_STATE}
+*/
+ public int emInsulatorState;
+/**
+包围盒
+*/
+ public NET_RECT stuBoundingBox = new NET_RECT();
+
+public NET_INSULATOR_DETECT(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_INTELLIPARKING_OPENAREA_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_INTELLIPARKING_OPENAREA_INFO.java
new file mode 100644
index 0000000..47e6fc6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_INTELLIPARKING_OPENAREA_INFO.java
@@ -0,0 +1,27 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 规划式停车场车位信息统计
+ * @date 2022/10/28 11:30:56
+ */
+public class NET_INTELLIPARKING_OPENAREA_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 车位对应的ID
+ */
+ public int nID;
+ /**
+ * 停车场中停车数
+ */
+ public int nParkingNum;
+ /**
+ * 保留字节
+ */
+ public byte[] reserved = new byte[512];
+
+ public NET_INTELLIPARKING_OPENAREA_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_INTELLIPARKING_PLANAREA_IDINFO.java b/src/main/java/com/netsdk/lib/structure/NET_INTELLIPARKING_PLANAREA_IDINFO.java
new file mode 100644
index 0000000..1ff0f7b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_INTELLIPARKING_PLANAREA_IDINFO.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 251823
+* @description 当前时间点上报车位ID的使用情况
+* @date 2022/10/28 11:30:56
+*/
+public class NET_INTELLIPARKING_PLANAREA_IDINFO extends NetSDKLib.SdkStructure {
+/**
+车位对应的ID
+*/
+ public int nID;
+/**
+车位ID对应的使用情况
+*/
+ public int nIsUsed;
+/**
+保留字节
+*/
+ public byte[] reserved = new byte[512];
+
+public NET_INTELLIPARKING_PLANAREA_IDINFO(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_INTELLIPARKING_PLANAREA_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_INTELLIPARKING_PLANAREA_INFO.java
new file mode 100644
index 0000000..62b56c1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_INTELLIPARKING_PLANAREA_INFO.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 规划式停车场车位信息统计
+ * @date 2022/10/28 11:30:56
+ */
+public class NET_INTELLIPARKING_PLANAREA_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 当前时间点上报车位ID的使用情况个数
+ */
+ public int nIDInfoNum;
+ /**
+ * 当前时间点上报车位ID的使用情况集
+ */
+ public NET_INTELLIPARKING_PLANAREA_IDINFO[] stIDInfo = new NET_INTELLIPARKING_PLANAREA_IDINFO[32];
+ /**
+ * 保留字节
+ */
+ public byte[] reserved = new byte[512];
+
+ public NET_INTELLIPARKING_PLANAREA_INFO() {
+ for (int i = 0; i < stIDInfo.length; i++) {
+ stIDInfo[i] = new NET_INTELLIPARKING_PLANAREA_IDINFO();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_INTELLI_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_INTELLI_INFO.java
new file mode 100644
index 0000000..f7882a9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_INTELLI_INFO.java
@@ -0,0 +1,35 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @description 视频通道上的智能信息
+ * @date 2022/07/04 14:04:51
+ */
+public class NET_INTELLI_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 智能规则类型个数
+ */
+ public int nTypeNum;
+ /**
+ * 智能规则类型
+ */
+ public Byte64Arr[] szType = new Byte64Arr[16];
+ /**
+ * 智能场景类型
+ */
+ public byte[] szClass = new byte[64];
+ /**
+ * 保留字节
+ */
+ public byte[] szReserved = new byte[516];
+
+ public NET_INTELLI_INFO() {
+ for (int i = 0; i < szType.length; i++) {
+ szType[i] = new Byte64Arr();
+ }
+
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_INTER_LOCK_CAPS.java b/src/main/java/com/netsdk/lib/structure/NET_INTER_LOCK_CAPS.java
new file mode 100644
index 0000000..c098dee
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_INTER_LOCK_CAPS.java
@@ -0,0 +1,35 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 门禁互锁相关能力
+ * @date 2023/04/18 19:40:08
+ */
+public class NET_INTER_LOCK_CAPS extends NetSDKLib.SdkStructure {
+ /**
+ * 支持互锁回能力掩码,支持位或 bit0-本地反潜;bit1-网络反潜主控;bit2-网络反潜分控
+ */
+ public int nTypes;
+ /**
+ * 最大规则组数量, nTypes bit1=1时有效
+ */
+ public int nMaxRule;
+ /**
+ * 组内每个组最大支持多少个门, nTypes bit1=1时有效
+ */
+ public int nWithinMaxDoors;
+ /**
+ * 组间每个组最大支持多少个门, nTypes bit1=1时有效
+ */
+ public int nBetweenMaxDoors;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[512];
+
+ public NET_INTER_LOCK_CAPS() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_ACCESSCONTROL_CAPTURE_CMD.java b/src/main/java/com/netsdk/lib/structure/NET_IN_ACCESSCONTROL_CAPTURE_CMD.java
new file mode 100644
index 0000000..e3624c7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_ACCESSCONTROL_CAPTURE_CMD.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_AccessControlCaptureCmd 输入结构体
+ * @date 2022/12/30 10:55:59
+ */
+public class NET_IN_ACCESSCONTROL_CAPTURE_CMD extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 采集类型 (EM_COLLECTION_TYPE已被使用)
+ * {@link com.netsdk.lib.enumeration.EM_GATHER_TYPE}
+ */
+ public int emGathertype;
+ /**
+ * 用户ID(智能楼宇需求,可选)
+ */
+ public byte[] szUserID = new byte[12];
+
+ public NET_IN_ACCESSCONTROL_CAPTURE_CMD() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_ACCESSCONTROL_CAPTURE_NEWCARD.java b/src/main/java/com/netsdk/lib/structure/NET_IN_ACCESSCONTROL_CAPTURE_NEWCARD.java
new file mode 100644
index 0000000..26387d3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_ACCESSCONTROL_CAPTURE_NEWCARD.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_AccessControlCaptureNewCard 输入结构体
+ * @date 2022/12/30 10:55:15
+ */
+public class NET_IN_ACCESSCONTROL_CAPTURE_NEWCARD extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 授权时间,单位秒,0表示由服务端控制时间
+ */
+ public int nAllowTime;
+
+ public NET_IN_ACCESSCONTROL_CAPTURE_NEWCARD() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_ACCESS_GET_ASG_STATE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_ACCESS_GET_ASG_STATE.java
new file mode 100644
index 0000000..c10a721
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_ACCESS_GET_ASG_STATE.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetASGState 接口输入参数
+*/
+public class NET_IN_ACCESS_GET_ASG_STATE extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+
+ public NET_IN_ACCESS_GET_ASG_STATE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_AC_CAPS.java b/src/main/java/com/netsdk/lib/structure/NET_IN_AC_CAPS.java
new file mode 100644
index 0000000..ef485ca
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_AC_CAPS.java
@@ -0,0 +1,22 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 门禁AC服务协议能力获取入参
+* @origin autoTool
+* @date 2023/02/10 14:33:29
+*/
+public class NET_IN_AC_CAPS extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+
+public NET_IN_AC_CAPS(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_ADAPTIVE_DOWNLOAD_BY_TIME.java b/src/main/java/com/netsdk/lib/structure/NET_IN_ADAPTIVE_DOWNLOAD_BY_TIME.java
new file mode 100644
index 0000000..692ac00
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_ADAPTIVE_DOWNLOAD_BY_TIME.java
@@ -0,0 +1,97 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.EM_REAL_DATA_TYPE;
+import com.sun.jna.Pointer;
+
+/**
+ * 自适应下载录像 按时间 {@link NetSDKLib#CLIENT_AdaptiveDownloadByTime} 入参 出参
+ * {@link NET_OUT_ADAPTIVE_DOWNLOAD_BY_TIME}
+ *
+ * @author 47040
+ * @since Created at 2021/6/19 18:35
+ */
+public class NET_IN_ADAPTIVE_DOWNLOAD_BY_TIME extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 录像类型枚举值 {@link NetSDKLib.EM_QUERY_RECORD_TYPE}
+ */
+ public int emRecordType;
+ /**
+ * 下载的文件路径
+ */
+ public Pointer szSavedFileName;
+ /**
+ * 开始时间
+ */
+ public NetSDKLib.NET_TIME stStartTime;
+ /**
+ * 结束时间
+ */
+ public NetSDKLib.NET_TIME stStopTime;
+ /**
+ * 进度回调
+ */
+ public NetSDKLib.fTimeDownLoadPosCallBack cbDownLoadPos;
+ /**
+ * 进度回调用户信息
+ */
+ public Pointer dwPosUser;
+ /**
+ * 数据回调
+ */
+ public NetSDKLib.fDataCallBack fDownLoadDataCallBack;
+ /**
+ * 回调的数据类型 枚举值 {@link EM_REAL_DATA_TYPE}
+ */
+ public int emDataType;
+ /**
+ * 数据回调用户信息
+ */
+ public Pointer dwDataUser;
+ /**
+ * 加密录像密码,密码长度不小于8
+ */
+ public byte[] szEncryptPasswd = new byte[64];
+ /**
+ * 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stStartTime, stStopTime),
+ * 为FALSE表示仅下发stStartTime, stStopTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
+ */
+ public int bOnlySupportRealUTC;
+ /**
+ * 录像的起始UTC时间(标准UTC时间)
+ */
+ public NET_TIME stuStartTimeRealUTC = new NET_TIME();
+ /**
+ * 录像的结束UTC时间(标准UTC时间)
+ */
+ public NET_TIME stuEndTimeRealUTC = new NET_TIME();
+ /**
+ * 进度回调的扩展(若使用标准UTC时间进行下载,则使用该回调)
+ */
+ public NetSDKLib.fTimeDownLoadPosCallBackEx cbDownLoadPosEx;
+ /**
+ * VK信息回调
+ */
+ public NetSDKLib.fVKInfoCallBack pVKInfoCallBack;
+ /**
+ * VK信息回调用户信息
+ */
+ public Pointer dwVKInfoUser;
+ /**
+ * 是否同步返回错误码
+ */
+ public int bWait;
+
+ public NET_IN_ADAPTIVE_DOWNLOAD_BY_TIME() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_ADD_ALARM_USER.java b/src/main/java/com/netsdk/lib/structure/NET_IN_ADD_ALARM_USER.java
new file mode 100644
index 0000000..2761b33
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_ADD_ALARM_USER.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_AddAlarmUser 接口输入参数
+ * @date 2023/03/16 09:04:51
+ */
+public class NET_IN_ADD_ALARM_USER extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 添加的用户信息
+ */
+ public NET_ALARM_USER stuAlarmUser = new NET_ALARM_USER();
+
+ public NET_IN_ADD_ALARM_USER() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_ADD_COURSE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_ADD_COURSE.java
new file mode 100644
index 0000000..104edf7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_ADD_COURSE.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 添加新的课程记录 入参指针 {@link NetSDKLib#CLIENT_AddCourse}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/17 15:36
+ */
+public class NET_IN_ADD_COURSE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 课程数量
+ */
+ public int nCourseNum;
+ /**
+ * 课程信息
+ */
+ public NET_COURSE[] stuCourseInfo = new NET_COURSE[64];
+
+ public NET_IN_ADD_COURSE() {
+ dwSize = this.size();
+ for (int i = 0; i < stuCourseInfo.length; i++) {
+ stuCourseInfo[i] = new NET_COURSE();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_ADD_LOCAL_ANALYSE_TASK.java b/src/main/java/com/netsdk/lib/structure/NET_IN_ADD_LOCAL_ANALYSE_TASK.java
new file mode 100644
index 0000000..720af81
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_ADD_LOCAL_ANALYSE_TASK.java
@@ -0,0 +1,54 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * CLIENT_RecordSecondaryAnalyseAddLocalAnalyseTask接口输入参数
+*/
+public class NET_IN_ADD_LOCAL_ANALYSE_TASK extends NetSDKLib.SdkStructure
+{
+ /**
+ * 赋值为结构体大小
+ */
+ public int dwSize;
+ /**
+ * 是否检查重复分析
+ */
+ public int bCheck;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+ /**
+ * 任务名称
+ */
+ public byte[] szName = new byte[256];
+ /**
+ * 监控点
+ */
+ public byte[] szSourceName = new byte[256];
+ /**
+ * 分析规则个数
+ */
+ public int nRuleCount;
+ /**
+ * 分析规则, 内存由用户申请,大小为size(NET_LOCAL_ANALYSE_TASK_RULE)*nRuleCount,参见结构体定义 {@link com.netsdk.lib.structure.NET_LOCAL_ANALYSE_TASK_RULE}
+ */
+ public Pointer pstuRule;
+ /**
+ * 录像开始时间,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME}
+ */
+ public NetSDKLib.NET_TIME stuStartTime = new NetSDKLib.NET_TIME();
+ /**
+ * 录像结束时间,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TIME}
+ */
+ public NetSDKLib.NET_TIME stuEndTime = new NetSDKLib.NET_TIME();
+ /**
+ * 录像文件路径
+ */
+ public byte[] szVideoPath = new byte[256];
+
+ public NET_IN_ADD_LOCAL_ANALYSE_TASK() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_ADD_ONVIF_USER_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_ADD_ONVIF_USER_INFO.java
new file mode 100644
index 0000000..8b0f607
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_ADD_ONVIF_USER_INFO.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 添加Onvif用户,CLIENT_AddOnvifUser 入参
+*/
+public class NET_IN_ADD_ONVIF_USER_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 用户名
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 密码
+ */
+ public byte[] szPassword = new byte[128];
+ /**
+ * 用户所在的组,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_GROUP_TYPE}
+ */
+ public int emGroupType;
+
+ public NET_IN_ADD_ONVIF_USER_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_ADD_REC_BAK_RST_REMOTE_TASK.java b/src/main/java/com/netsdk/lib/structure/NET_IN_ADD_REC_BAK_RST_REMOTE_TASK.java
new file mode 100644
index 0000000..56a897a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_ADD_REC_BAK_RST_REMOTE_TASK.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * 远程录像任务接口 入参
+ * 接口 {@link NetSDKLib#CLIENT_AddRecordBackupRestoreRemoteTask}
+ * 出参 {@link NET_OUT_ADD_REC_BAK_RST_REMOTE_TASK}
+ *
+ * @author 47040
+ * @since Created at 2021/5/27 20:18
+ */
+public class NET_IN_ADD_REC_BAK_RST_REMOTE_TASK extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 任务有效个数, 最大支持 16个
+ */
+ public int nTaskCount;
+ /**
+ * 任务信息 -> {@link NET_RECORDBACKUP_REMOTE_TASK} 数组
+ * 数组长度为 nTaskCount 由用户申请内存
+ * 大小为 ( size of NET_RECORDBACKUP_REMOTE_TASK )*nTaskCount
+ */
+ public Pointer pStuTask;
+
+ public NET_IN_ADD_REC_BAK_RST_REMOTE_TASK() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_ADD_SOFT_TOUR_POINT_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_ADD_SOFT_TOUR_POINT_INFO.java
new file mode 100644
index 0000000..a55613e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_ADD_SOFT_TOUR_POINT_INFO.java
@@ -0,0 +1,46 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 421657
+ * @description 接口 CLIENT_AddSoftTourPoint 的输入参数
+ * @origin autoTool
+ * @date 2023/10/16 20:15:22
+ */
+public class NET_IN_ADD_SOFT_TOUR_POINT_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * / 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * /云台通道号
+ */
+ public int nChannel;
+ /**
+ * /巡航线路编号
+ */
+ public int nIndex;
+ /**
+ * / 线路上点的序号,从0开始, 如果为 -1, 追加到线路上最后位置,否则为指定序号
+ */
+ public int nPoint;
+ /**
+ * / 预置点编号,编号从1开始
+ */
+ public int nPresetIndex;
+ /**
+ * / 在该预置点停留时间,时间单位为秒
+ */
+ public int nDuration;
+ /**
+ * / 转动到预置点的速度, 归一化到0~1
+ */
+ public float fSpeed;
+
+ public NET_IN_ADD_SOFT_TOUR_POINT_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_ASGMANAGER_CLEAR_STATISTICS.java b/src/main/java/com/netsdk/lib/structure/NET_IN_ASGMANAGER_CLEAR_STATISTICS.java
new file mode 100644
index 0000000..747ca54
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_ASGMANAGER_CLEAR_STATISTICS.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_ASGManagerClearStatistics 入参
+*/
+public class NET_IN_ASGMANAGER_CLEAR_STATISTICS extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 是否清除通行人数
+ */
+ public int bCleanPassNum;
+
+ public NET_IN_ASGMANAGER_CLEAR_STATISTICS() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_ASYNC_ADD_CUSTOM_DEVICE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_ASYNC_ADD_CUSTOM_DEVICE.java
new file mode 100644
index 0000000..67856ae
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_ASYNC_ADD_CUSTOM_DEVICE.java
@@ -0,0 +1,38 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+import com.netsdk.lib.enumeration.EM_CUSTOM_DEV_PROTOCOL_TYPE;
+
+/**
+ * CLIENT_AsyncAddCustomDevice 接口输入参数
+ *
+ * @author 119178
+ */
+public class NET_IN_ASYNC_ADD_CUSTOM_DEVICE extends SdkStructure {
+ public int dwSize;
+ /** 端口号 */
+ public int nPort;
+ /** 设备地址或者域名 */
+ public byte[] szAddress = new byte[128];
+ /** 用户名 */
+ public byte[] szUserName = new byte[128];
+ /** 密码 */
+ public byte[] szPassword = new byte[128];
+ /** 接入设备协议类型,对应枚举{@link EM_CUSTOM_DEV_PROTOCOL_TYPE} */
+ public int emProtocolType;
+ /** 上述列表实际填写的有效通道数 */
+ public int nRemoteChannelNum;
+ /** 远程通道号数组,如果是IPC就数组大小为1 */
+ public int[] nRemoteChannels = new int[512];
+ /** 是否设置逻辑起始通道,FALSE代表随机通道作为起始通道 */
+ public int bSetLogicChannelStart;
+ /** 逻辑通道起始通道,设置bSetLogicChannelStart为TRUE时生效 */
+ public int nLogicChannelStart;
+ /** 视频输入信息 */
+ public NET_CUSTOM_DEV_VIDEO_INPUTS stuVideoInput;
+
+ public NET_IN_ASYNC_ADD_CUSTOM_DEVICE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_ASYNC_CHECK_FAULT_CHECK.java b/src/main/java/com/netsdk/lib/structure/NET_IN_ASYNC_CHECK_FAULT_CHECK.java
new file mode 100644
index 0000000..2b61fee
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_ASYNC_CHECK_FAULT_CHECK.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_AsyncCheckFaultCheck 接口入参
+*/
+public class NET_IN_ASYNC_CHECK_FAULT_CHECK extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 是否检测所有
+ */
+ public int bCheckAll;
+ /**
+ * 检测项列表个数
+ */
+ public int nItemsCount;
+ /**
+ * 检测项列表, bCheckAll为false时设置该字段
+ */
+ public BYTE_ARRAY_64[] szItems = new BYTE_ARRAY_64[1024];
+ /**
+ * 标示前端一键诊断功能
+ */
+ public int bOnekeyDiagnosis;
+
+ public NET_IN_ASYNC_CHECK_FAULT_CHECK() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_AREA_FLOW.java b/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_AREA_FLOW.java
new file mode 100644
index 0000000..03e446d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_AREA_FLOW.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * CLIENT_AttachAreaFlow 输入参数
+*/
+public class NET_IN_ATTACH_AREA_FLOW extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 通道号 -1 表示所有通道
+ */
+ public int nChannelID;
+ /**
+ * 回调函数,参见回调函数定义 {@link com.netsdk.lib.NetSDKLib.fNotifyAreaFlowInfo}
+ */
+ public NetSDKLib.fNotifyAreaFlowInfo cbNotifyAreaFlowInfo;
+ /**
+ * 用户信息
+ */
+ public Pointer dwUser;
+
+ public NET_IN_ATTACH_AREA_FLOW() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_BACKUP_STATE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_BACKUP_STATE.java
new file mode 100644
index 0000000..7f78636
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_BACKUP_STATE.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+import com.sun.jna.Callback;
+import com.sun.jna.Pointer;
+import com.netsdk.lib.NetSDKLib.LLong;;
+/**
+ *
+ * @author 119178
+ * CLIENT_AttachBackupTaskState接口输入参数
+ * {@link NetSDKLib#CLIENT_AttachBackupTaskState}
+ */
+public class NET_IN_ATTACH_BACKUP_STATE extends SdkStructure {
+ public int dwSize; // 结构体大小
+ public int nGroupID; // 任务组ID
+ public Callback cbAttachState; // 订阅备份状态回调
+ public Pointer dwUser; // 用户数据
+ public byte[] bReserved = new byte[4]; // 字节对齐
+
+ public NET_IN_ATTACH_BACKUP_STATE(){
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_CROWDDISTRI_MAP_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_CROWDDISTRI_MAP_INFO.java
new file mode 100644
index 0000000..ba8aca6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_CROWDDISTRI_MAP_INFO.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 251823
+ * @version 1.0
+ * @description CLIENT_AttachCrowdDistriMap 接口输入参数
+ * @date 2022/01/07
+ */
+public class NET_IN_ATTACH_CROWDDISTRI_MAP_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 订阅人群分布图实时统计信息回调函数
+ */
+ public NetSDKLib.fCrowdDistriStream cbCrowdDistriStream;
+ /**
+ * 用户数据
+ */
+ public Pointer dwUser;
+
+ public NET_IN_ATTACH_CROWDDISTRI_MAP_INFO(){
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_CUSTOM_SNAP_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_CUSTOM_SNAP_INFO.java
new file mode 100644
index 0000000..ca4559e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_CUSTOM_SNAP_INFO.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+* @author 291189
+* @description CLIENT_AttachCustomSnapInfo 接口输入参数
+* @date 2022/03/31 11:28:46
+*/
+public class NET_IN_ATTACH_CUSTOM_SNAP_INFO extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+/**
+订阅通道号
+*/
+ public int nChannelID;
+/**
+自定义定时抓图订阅回调函数
+*/
+ public NetSDKLib.fAttachCustomSnapInfo cbCustomSnapInfo;
+/**
+用户数据
+*/
+ public Pointer dwUser;
+
+public NET_IN_ATTACH_CUSTOM_SNAP_INFO(){
+this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_DBGINFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_DBGINFO.java
new file mode 100644
index 0000000..21d5b8c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_DBGINFO.java
@@ -0,0 +1,27 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * 订阅日志回调入参
+*/
+public class NET_IN_ATTACH_DBGINFO extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+ /**
+ * 日志等级,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_DBGINFO_LEVEL}
+ */
+ public int emLevel;
+ /**
+ * 回调,参见回调函数定义 {@link com.netsdk.lib.NetSDKLib.fDebugInfoCallBack}
+ */
+ public NetSDKLib.fDebugInfoCallBack pCallBack;
+ /**
+ * 用户数据
+ */
+ public Pointer dwUser;
+
+ public NET_IN_ATTACH_DBGINFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_ELEVATOR_FLOOR_COUNTER_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_ELEVATOR_FLOOR_COUNTER_INFO.java
new file mode 100644
index 0000000..a40d284
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_ELEVATOR_FLOOR_COUNTER_INFO.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * CLIENT_AttachElevatorFloorCounter 接口入参
+*/
+public class NET_IN_ATTACH_ELEVATOR_FLOOR_COUNTER_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 订阅通道号;-1代表订阅全通道;
+ */
+ public int[] nChannel = new int[256];
+ /**
+ * 通道号个数
+ */
+ public int nChannelNum;
+ /**
+ * 回调函数,参见回调函数定义 {@link com.netsdk.lib.NetSDKLib.fNotifyElevatorFloorCounterdata}
+ */
+ public NetSDKLib.fNotifyElevatorFloorCounterdata cbNotifyElevatorFloorCounterdata;
+ /**
+ * 用户自定义参数
+ */
+ public Pointer dwUser;
+
+ public NET_IN_ATTACH_ELEVATOR_FLOOR_COUNTER_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_GATE_POPULATION_STATISTICS_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_GATE_POPULATION_STATISTICS_INFO.java
new file mode 100644
index 0000000..9279770
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_GATE_POPULATION_STATISTICS_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.callback.securityCheck.fNotifyPopulationStatisticsInfo;
+import com.sun.jna.Pointer;
+
+/**
+ * @author : 291189
+ * @since : Created in 2021/7/5
+ *接口 CLIENT_AttachPopulationStatistics 的输入参数
+ */
+public class NET_IN_ATTACH_GATE_POPULATION_STATISTICS_INFO extends NetSDKLib.SdkStructure {
+ public int dwSize; // 结构体大小
+ public fNotifyPopulationStatisticsInfo cbNotifyPopulationStatisticsInfo; // 回调函数,有人数变化信息时,回调给上层
+ public Pointer dwUser; // 用户自定义参数
+
+ public NET_IN_ATTACH_GATE_POPULATION_STATISTICS_INFO() {
+ this.dwSize=this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_GYRO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_GYRO.java
new file mode 100644
index 0000000..a0635f8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_GYRO.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+* @author 291189
+* @description CLIENT_AttachGyro接口入参
+* @date 2022/10/26 15:21:25
+*/
+public class NET_IN_ATTACH_GYRO extends NetSDKLib.SdkStructure {
+/**
+此结构体大小,必须赋值
+*/
+ public int dwSize;
+/**
+回调函数
+*/
+ public NetSDKLib.fNotifyGyroData cbNotifyGyroData;
+/**
+用户自定义参数
+*/
+ public Pointer dwUser;
+
+public NET_IN_ATTACH_GYRO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_HYGROTHERMOGRAPH.java b/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_HYGROTHERMOGRAPH.java
new file mode 100644
index 0000000..8d636da
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_ATTACH_HYGROTHERMOGRAPH.java
@@ -0,0 +1,42 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+* @author 291189
+* @description 接口 CLIENT_AttachHygrothermograph 的输入参数
+* @origin autoTool
+* @date 2023/12/02 10:25:56
+*/
+public class NET_IN_ATTACH_HYGROTHERMOGRAPH extends NetSDKLib.SdkStructure {
+/**
+/ 此结构体大小,必须赋值
+*/
+ public int dwSize;
+/**
+/ 回调函数,通知温湿度信息
+*/
+ public NetSDKLib.fNotifyHygrothermograph cbNotifyHygrothermograph;
+/**
+/ 用户自定义参数
+*/
+ public Pointer dwUser;
+/**
+/ 过滤器个数
+*/
+ public int nFilterCount;
+/**
+/ 过滤器
+*/
+ public NET_ATTACH_HYGROTHERMOGRAPH_FILTER_INFO[] stuFilter = new NET_ATTACH_HYGROTHERMOGRAPH_FILTER_INFO[256];
+
+public NET_IN_ATTACH_HYGROTHERMOGRAPH(){
+ for(int i=0;i时,bImportantRecID<<8 +bHint ,组成图片定位索引 )
+ */
+ public byte bHint;
+ /**
+ * 0-主码流录像 1-辅码1流录像 2-辅码流2 3-辅码流3录像
+ */
+ public byte bRecType;
+ /**
+ * 加密录像密码,密码长度不小于8
+ */
+ public byte[] szEncryptPasswd = new byte[64];
+ /**
+ * VK信息回调
+ */
+ public NetSDKLib.fVKInfoCallBack pVKInfoCallBack;
+ /**
+ * VK信息回调用户信息
+ */
+ public Pointer dwVKInfoUser;
+
+ public NET_IN_DOWNLOAD_BYFILE_SELFADAPT() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_DOWNLOAD_MULTI_FILE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_DOWNLOAD_MULTI_FILE.java
new file mode 100644
index 0000000..f4cc84e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_DOWNLOAD_MULTI_FILE.java
@@ -0,0 +1,64 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.EM_DOWNLOAD_FILE_TYPE;
+import com.netsdk.lib.enumeration.EM_SUBCLASSID_TYPE;
+import com.sun.jna.Pointer;
+
+/**
+ * 批量下载文件 入参
+ * 接口 {@link NetSDKLib#CLIENT_DownLoadMultiFile}
+ * 出参 {@link NET_OUT_DOWNLOAD_MULTI_FILE}
+ *
+ * @author : 47040
+ * @since : Created in 2020/12/28 15:19
+ */
+public class NET_IN_DOWNLOAD_MULTI_FILE extends NetSDKLib.SdkStructure {
+ public int dwSize;
+ /**
+ * 待下载文件数,emDownloadType为EM_DOWNLOAD_BY_FILENAME有效
+ */
+ public int nFileCount;
+ /**
+ * {@link NET_DOWNLOADFILE_INFO} 待下载文件信息,emDownloadType为 EM_DOWNLOAD_BY_FILENAME 时有效
+ * emDownloadType为EM_DOWNLOAD_BY_FILENAME有效
+ * 由用户申请内存,大小为 sizeof(NET_DOWNLOADFILE_INFO)*nFileCount
+ */
+ public Pointer pFileInfos;
+ /**
+ * 进度回调函数
+ */
+ public NetSDKLib.fMultiFileDownLoadPosCB cbPosCallBack;
+ /**
+ * 用户数据
+ */
+ public Pointer dwUserData;
+ /**
+ * {@link EM_DOWNLOAD_FILE_TYPE} 下载方式
+ */
+ public int emDownloadType;
+ /**
+ * 按查询条件下载: 下载条件数,emDownloadType为EM_DOWNLOAD_BY_CONDITION有效
+ */
+ public int nConditionCount;
+ /**
+ * {@link NET_DOWNLOAD_CONDITION_INFO}
+ * 下载条件,emDownloadType为EM_DOWNLOAD_BY_CONDITION有效
+ * 由用户申请内存,大小为sizeof(NET_DOWNLOAD_CONDITION_INFO)*nConditionCount
+ */
+ public Pointer pConditionInfos;
+ /**
+ * 从设备类型{@link EM_SUBCLASSID_TYPE}
+ */
+ public int emSubClass;
+ /**
+ * {@link NET_DOWNLOADFILE_OPTIONS_INFO}
+ * 待下载文件信息, 下载选项; emDownloadType为EM_DOWNLOAD_BY_FILENAME有效
+ */
+ public Pointer pFileOptions;
+
+ public NET_IN_DOWNLOAD_MULTI_FILE(){
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_DOWNLOAD_PIECE_FILE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_DOWNLOAD_PIECE_FILE.java
new file mode 100644
index 0000000..9797a82
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_DOWNLOAD_PIECE_FILE.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+
+public class NET_IN_DOWNLOAD_PIECE_FILE extends SdkStructure {
+ public int dwSize;
+ /**
+ * 需要下载的文件名,支持全路径
+ */
+ public byte[] szFileName = new byte[260];
+ /**
+ * 下载偏移,单位字节
+ * 如果文件总长度为50KB,每次请求下载数据量为32KB,那么第一次请求时,nOffSet为0,第二次请求nOffSet为32KB
+ */
+ public int nOffSet;
+ /**
+ * 请求下载数据量,单位字节,建议为32KB,最大不超过4MB
+ */
+ public int nNeedLength;
+
+ public NET_IN_DOWNLOAD_PIECE_FILE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_DO_FIND_ACCESS_TIME_SCHEDULE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_DO_FIND_ACCESS_TIME_SCHEDULE.java
new file mode 100644
index 0000000..23ca3f9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_DO_FIND_ACCESS_TIME_SCHEDULE.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_DoFindAccessTimeSchedule 接口入参
+*/
+public class NET_IN_DO_FIND_ACCESS_TIME_SCHEDULE extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 查询的偏移位置
+ */
+ public int nOffset;
+ /**
+ * 本次查询需要获取的条数
+ */
+ public int nCount;
+
+ public NET_IN_DO_FIND_ACCESS_TIME_SCHEDULE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_DO_FIND_DETAIL_CLUSTER.java b/src/main/java/com/netsdk/lib/structure/NET_IN_DO_FIND_DETAIL_CLUSTER.java
new file mode 100644
index 0000000..51e8568
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_DO_FIND_DETAIL_CLUSTER.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 接口 CLIENT_DoFindDetailNumberStatCluster 的输入参数
+ * @date 2022/10/09 14:08:11
+ */
+public class NET_IN_DO_FIND_DETAIL_CLUSTER extends NetSDKLib.SdkStructure {
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * start接口返回的token, token保存的数量有限, 未stop的会在连接销毁时或队列满时被释放, 再用同一token访问会导致失败
+ */
+ public int nToken;
+ /**
+ * 查询记录的开始偏移
+ */
+ public int nStartIndex;
+ /**
+ * 查询的记录数,单次不超过1024
+ */
+ public int nCount;
+
+ public NET_IN_DO_FIND_DETAIL_CLUSTER() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_DO_FIND_OBJECT_FAVORITES_LIBRARY.java b/src/main/java/com/netsdk/lib/structure/NET_IN_DO_FIND_OBJECT_FAVORITES_LIBRARY.java
new file mode 100644
index 0000000..3af7c62
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_DO_FIND_OBJECT_FAVORITES_LIBRARY.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_DoFindObjectFavoritesLibrary 接口输入参数
+*/
+public class NET_IN_DO_FIND_OBJECT_FAVORITES_LIBRARY extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 查询的偏移条数
+ */
+ public int nOffset;
+ /**
+ * 本次查询需要获取的条数
+ */
+ public int nCount;
+
+ public NET_IN_DO_FIND_OBJECT_FAVORITES_LIBRARY() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_DO_FIND_TALK_DEV.java b/src/main/java/com/netsdk/lib/structure/NET_IN_DO_FIND_TALK_DEV.java
new file mode 100644
index 0000000..59428b9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_DO_FIND_TALK_DEV.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 421657
+ * @description CLIENT_DoFindTalkDev 接口输入参数
+ * @origin autoTool
+ * @date 2023/10/26 10:05:01
+ */
+public class NET_IN_DO_FIND_TALK_DEV extends NetSDKLib.SdkStructure {
+ /**
+ * / 结构体大小
+ */
+ public int dwSize;
+ /**
+ * / 查询的偏移条数
+ */
+ public int nOffset;
+ /**
+ * / 本次查询需要获取的条数, 不能超过startFind返回的nCaps查询能力
+ */
+ public int nCount;
+
+ public NET_IN_DO_FIND_TALK_DEV() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_DO_FIND_VEHICLE_REG_DB.java b/src/main/java/com/netsdk/lib/structure/NET_IN_DO_FIND_VEHICLE_REG_DB.java
new file mode 100644
index 0000000..5c382ef
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_DO_FIND_VEHICLE_REG_DB.java
@@ -0,0 +1,19 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description CLIENT_DoFindVehicleRegisterDB 接口输入参数
+ * @date 2022/10/22 10:50
+ */
+public class NET_IN_DO_FIND_VEHICLE_REG_DB extends NetSDKLib.SdkStructure {
+ public int dwSize; // 结构体大小
+ public NET_FIND_VEHICLE_CONDITION stuCondition = new NET_FIND_VEHICLE_CONDITION(); // 查询条件
+
+ public NET_IN_DO_FIND_VEHICLE_REG_DB(){
+ dwSize=this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_DO_FIND_WATERDATA_STAT_SERVER_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_DO_FIND_WATERDATA_STAT_SERVER_INFO.java
new file mode 100644
index 0000000..99f2c52
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_DO_FIND_WATERDATA_STAT_SERVER_INFO.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_DoFindWaterDataStatServer 输入参数
+* @date 2022/08/22 17:27:08
+*/
+public class NET_IN_DO_FIND_WATERDATA_STAT_SERVER_INFO extends NetSDKLib.SdkStructure {
+/**
+此结构体大小,必须赋值
+*/
+ public int dwSize;
+/**
+查询令牌
+*/
+ public int nToken;
+/**
+查询起始序号, 表示从beginNumber条记录开始,取count条记录返回
+*/
+ public int nBeginNumber;
+/**
+每次查询的流量统计条数
+*/
+ public int nCount;
+
+public NET_IN_DO_FIND_WATERDATA_STAT_SERVER_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_ENCODE_CFG_CAPS.java b/src/main/java/com/netsdk/lib/structure/NET_IN_ENCODE_CFG_CAPS.java
new file mode 100644
index 0000000..6c88692
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_ENCODE_CFG_CAPS.java
@@ -0,0 +1,39 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.GetDevCaps_Type;
+import com.sun.jna.Pointer;
+
+/**
+ * 获取设备编码配置对应能力输入参数
+ * 能力集枚举 {@link GetDevCaps_Type#NET_ENCODE_CFG_CAPS}
+ * 能力集接口 {@link NetSDKLib#CLIENT_GetDevCaps}
+ *
+ * @author 47040
+ * @since Created at 2021/5/25 20:48
+ */
+public class NET_IN_ENCODE_CFG_CAPS extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道号
+ */
+ public int nChannelId;
+ /**
+ * 码流类型,0:主码流;1:辅码流1;2:辅码流2;3:辅码流3;4:抓图码流
+ */
+ public int nStreamType;
+ /**
+ * 此参数可以不填,不论指定什么类型,设备都返回主、辅、抓图码流的能力
+ * Encode配置,通过调用 dhconfigsdk.dll中接口 CLIENT_PacketData封装得到
+ * 对应的封装命令为 CFG_CMD_ENCODE
+ */
+ public Pointer pchEncodeJson;
+
+ public NET_IN_ENCODE_CFG_CAPS() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_FACERECOGNITIONSERVER_CAPSBILITYQUERY.java b/src/main/java/com/netsdk/lib/structure/NET_IN_FACERECOGNITIONSERVER_CAPSBILITYQUERY.java
new file mode 100644
index 0000000..827fe6c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_FACERECOGNITIONSERVER_CAPSBILITYQUERY.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description CLIENT_GetDevCaps 对应的类型(NET_FACERECOGNITIONSE_CAPS) 输入参数
+ * @origin autoTool
+ * @date 2023/07/31 09:25:32
+ */
+public class NET_IN_FACERECOGNITIONSERVER_CAPSBILITYQUERY extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_IN_FACERECOGNITIONSERVER_CAPSBILITYQUERY() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_FACERSERVER_GETDETEVTTOKEN.java b/src/main/java/com/netsdk/lib/structure/NET_IN_FACERSERVER_GETDETEVTTOKEN.java
new file mode 100644
index 0000000..065ec0a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_FACERSERVER_GETDETEVTTOKEN.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_FaceRServerGetDetectToken 接口输入参数
+ * @date 2023/04/20 14:04:21
+ */
+public class NET_IN_FACERSERVER_GETDETEVTTOKEN extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_IN_FACERSERVER_GETDETEVTTOKEN() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_FACE_RECOGNITION_DETECT_MULTI_FACE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_FACE_RECOGNITION_DETECT_MULTI_FACE_INFO.java
new file mode 100644
index 0000000..f75a6eb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_FACE_RECOGNITION_DETECT_MULTI_FACE_INFO.java
@@ -0,0 +1,64 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 260611
+ * @description CLIENT_FaceRecognitionDetectMultiFace 接口输入参数
+ * @date 2022/11/21 17:53:13
+ */
+public class NET_IN_FACE_RECOGNITION_DETECT_MULTI_FACE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 此结构体的大小
+ */
+ public int dwSize;
+ /**
+ * 大图张数
+ */
+ public int nBigPicNum;
+ /**
+ * 大图信息(推荐使用stuBigPicInfoEx)
+ */
+ public NET_DETECT_BIG_PIC_INFO[] stuBigPicInfo = new NET_DETECT_BIG_PIC_INFO[50];
+ /**
+ * 缓冲地址
+ */
+ public Pointer pBuffer;
+ /**
+ * 缓冲数据长度
+ */
+ public int nBufferLen;
+ /**
+ * 目标类型 {@link com.netsdk.lib.NetSDKLib.EM_OBJECT_TYPE}
+ */
+ public int emDetectObjType;
+ /**
+ * stuBigPicInfoEx是否有效
+ */
+ public int bBigPicInfoExEnable;
+ /**
+ * 大图张数
+ */
+ public int nBigPicNumEx;
+ /**
+ * 大图信息(扩展)
+ */
+ public NET_DETECT_BIG_PIC_INFO_EX[] stuBigPicInfoEx = new NET_DETECT_BIG_PIC_INFO_EX[50];
+ /**
+ * 查询令牌,没有则为0
+ */
+ public int nToken;
+
+ public NET_IN_FACE_RECOGNITION_DETECT_MULTI_FACE_INFO() {
+ for (int i = 0; i < stuBigPicInfo.length; i++) {
+ stuBigPicInfo[i] = new NET_DETECT_BIG_PIC_INFO();
+ }
+ for (int i = 0; i < stuBigPicInfoEx.length; i++) {
+ stuBigPicInfoEx[i] = new NET_DETECT_BIG_PIC_INFO_EX();
+ }
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_FACE_RECOGNITION_GROUP_REABSTRACT_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_FACE_RECOGNITION_GROUP_REABSTRACT_INFO.java
new file mode 100644
index 0000000..1c3deeb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_FACE_RECOGNITION_GROUP_REABSTRACT_INFO.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_FaceRecognitionGroupReAbstract 接口输入参数
+*/
+public class NET_IN_FACE_RECOGNITION_GROUP_REABSTRACT_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小
+ */
+ public int dwSize;
+ /**
+ * 人员组个数
+ */
+ public int nGroupNum;
+ /**
+ * 人员组ID
+ */
+ public BYTE_ARRAY_64[] szGroupId = new BYTE_ARRAY_64[128];
+
+ public NET_IN_FACE_RECOGNITION_GROUP_REABSTRACT_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_FACE_RECOGNITION_REABSTRACT_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_FACE_RECOGNITION_REABSTRACT_INFO.java
new file mode 100644
index 0000000..20ec721
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_FACE_RECOGNITION_REABSTRACT_INFO.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * CLIENT_FaceRecognitionReAbstract 接口输入参数
+*/
+public class NET_IN_FACE_RECOGNITION_REABSTRACT_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小
+ */
+ public int dwSize;
+ /**
+ * 重新建模的人员个数
+ */
+ public int nPersonNum;
+ /**
+ * 重新建模的人员信息,参见结构体定义 {@link com.netsdk.lib.structure.NET_REABSTRACT_PERSON_INFO}
+ */
+ public Pointer pstReAbstractPersonInfo;
+
+ public NET_IN_FACE_RECOGNITION_REABSTRACT_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_FIND_GROUP_FROM_VEHICLE_REG_DB.java b/src/main/java/com/netsdk/lib/structure/NET_IN_FIND_GROUP_FROM_VEHICLE_REG_DB.java
new file mode 100644
index 0000000..9c74df0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_FIND_GROUP_FROM_VEHICLE_REG_DB.java
@@ -0,0 +1,19 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description CLIENT_FindGroupFormVehicleRegisterDB 接口输入参数
+ * @date 2022/10/21 17:35
+ */
+public class NET_IN_FIND_GROUP_FROM_VEHICLE_REG_DB extends NetSDKLib.SdkStructure {
+ public int dwSize; // 结构体大小
+ public byte[] szGroupID = new byte[64]; // 组ID,为空表示查找全部车辆组信息
+
+ public NET_IN_FIND_GROUP_FROM_VEHICLE_REG_DB(){
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_FIND_OBJECT_MEDIA_FIND_EVENT.java b/src/main/java/com/netsdk/lib/structure/NET_IN_FIND_OBJECT_MEDIA_FIND_EVENT.java
new file mode 100644
index 0000000..d5020c0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_FIND_OBJECT_MEDIA_FIND_EVENT.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_FindObjectMediaFindEvent 接口输入参数
+*/
+public class NET_IN_FIND_OBJECT_MEDIA_FIND_EVENT extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 查询的偏移条数
+ */
+ public int nOffset;
+ /**
+ * 本次查询需要获取的条数
+ */
+ public int nCount;
+
+ public NET_IN_FIND_OBJECT_MEDIA_FIND_EVENT() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_FIND_OBJECT_MEDIA_FIND_FILE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_FIND_OBJECT_MEDIA_FIND_FILE.java
new file mode 100644
index 0000000..1910f7a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_FIND_OBJECT_MEDIA_FIND_FILE.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_FindObjectMediaFindFile 接口输入参数
+*/
+public class NET_IN_FIND_OBJECT_MEDIA_FIND_FILE extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 查询的偏移条数
+ */
+ public int nOffset;
+ /**
+ * 本次查询需要获取的条数
+ */
+ public int nCount;
+
+ public NET_IN_FIND_OBJECT_MEDIA_FIND_FILE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_FIND_REC_BAK_RST_TASK.java b/src/main/java/com/netsdk/lib/structure/NET_IN_FIND_REC_BAK_RST_TASK.java
new file mode 100644
index 0000000..9478e0c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_FIND_REC_BAK_RST_TASK.java
@@ -0,0 +1,44 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+/**
+ * @author 251823
+ * @version 1.0
+ * @description CLIENT_FindRecordBackupRestoreTaskInfos接口输入参数
+ * @date 2022/01/14
+ */
+public class NET_IN_FIND_REC_BAK_RST_TASK extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 根据条件查询备份任务的查询方式,{ @link EM_RECORD_BACKUP_FIND_TYPE}
+ */
+ public int emFindType;
+ /**
+ * 任务ID,emFindType为 EM_RECORD_BACKUP_FIND_TYPE_BY_TASKID 时有效,否则无效
+ */
+ public int dwTaskID;
+ /**
+ * 设备端本地通道号,emFindType为 EM_RECORD_BACKUP_FIND_TYPE_BY_CHN_AND_TIME 时有效,否则无效
+ */
+ public int nLocalChannelID;
+ /**
+ * 备份录像的开始时间,emFindType为 EM_RECORD_BACKUP_FIND_TYPE_BY_CHN_AND_TIME 时有效,否则无效
+ */
+ public NetSDKLib.NET_TIME stuStartTime;
+ /**
+ * 备份录像的结束时间,emFindType为 EM_RECORD_BACKUP_FIND_TYPE_BY_CHN_AND_TIME 时有效,否则无效
+ */
+ public NetSDKLib.NET_TIME stuEndTime;
+ /**
+ *主动注册的设备ID, emFindType为EM_RECORD_BACKUP_FIND_TYPE_BY_DEVICE_ID时必选有效,否则无效
+ */
+ public byte[] szDeviceID = new byte[128];
+
+ public NET_IN_FIND_REC_BAK_RST_TASK(){
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_FIND_SEEK_NEXT_RECORD_PARAM.java b/src/main/java/com/netsdk/lib/structure/NET_IN_FIND_SEEK_NEXT_RECORD_PARAM.java
new file mode 100644
index 0000000..07fbe2e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_FIND_SEEK_NEXT_RECORD_PARAM.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_FindSeekNextRecord 接口输入参数
+*/
+public class NET_IN_FIND_SEEK_NEXT_RECORD_PARAM extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 查询句柄
+ */
+ public NetSDKLib.LLong lFindeHandle;
+ /**
+ * 每次查询的条数
+ */
+ public int nCount;
+ /**
+ * 查询的偏移量
+ */
+ public int nOffset;
+
+ public NET_IN_FIND_SEEK_NEXT_RECORD_PARAM() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_FIND_WORKSUIT_COMPARE_GROUP.java b/src/main/java/com/netsdk/lib/structure/NET_IN_FIND_WORKSUIT_COMPARE_GROUP.java
new file mode 100644
index 0000000..4be2e41
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_FIND_WORKSUIT_COMPARE_GROUP.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_FindWorkSuitCompareGroup 接口输入参数
+ * @date 2022/10/10 13:40:26
+ */
+public class NET_IN_FIND_WORKSUIT_COMPARE_GROUP extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 字节对齐
+ */
+ public byte[] szReserved = new byte[4];
+ /**
+ * 合规库组ID, 不填组ID表示查找全部组信息
+ */
+ public byte[] szGroupID = new byte[64];
+
+ public NET_IN_FIND_WORKSUIT_COMPARE_GROUP() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_FOCUS_PTZ_CONTINUOUSLY_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_FOCUS_PTZ_CONTINUOUSLY_INFO.java
new file mode 100644
index 0000000..b0bbafe
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_FOCUS_PTZ_CONTINUOUSLY_INFO.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_FocusPTZContinuously 接口输入参数
+*/
+public class NET_IN_FOCUS_PTZ_CONTINUOUSLY_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 云台通道号,创建实例
+ */
+ public int nChannel;
+ /**
+ * 聚焦值,归一化到-1~1,负数表示减,正数表示加
+ */
+ public float fSpeed;
+ /**
+ * 持续聚焦超时时间,单位毫秒
+ */
+ public int nTimeout;
+
+ public NET_IN_FOCUS_PTZ_CONTINUOUSLY_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GETALL_CALIBRATEINFO_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GETALL_CALIBRATEINFO_INFO.java
new file mode 100644
index 0000000..a948638
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GETALL_CALIBRATEINFO_INFO.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 获取所有标定点信息入参
+ * @date 2023/05/24 10:24:52
+ */
+public class NET_IN_GETALL_CALIBRATEINFO_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+
+ public NET_IN_GETALL_CALIBRATEINFO_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GETCOUNT_LOG_PARAM.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GETCOUNT_LOG_PARAM.java
new file mode 100644
index 0000000..9ffda30
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GETCOUNT_LOG_PARAM.java
@@ -0,0 +1,22 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description CLIENT_QueryDevLogCount获取日志条数输入参数
+ * @date 2023/05/05 11:12:30
+ */
+public class NET_IN_GETCOUNT_LOG_PARAM extends NetSDKLib.SdkStructure {
+ public int dwSize;
+ /**
+ * 查询记录数条件
+ */
+ public QUERY_DEVICE_LOG_PARAM stuQueryCondition = new QUERY_DEVICE_LOG_PARAM();
+
+ public NET_IN_GETCOUNT_LOG_PARAM() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GETFACEEIGEN_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GETFACEEIGEN_INFO.java
new file mode 100644
index 0000000..24e3707
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GETFACEEIGEN_INFO.java
@@ -0,0 +1,23 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Memory;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 251589
+ * @version V1.0
+ * @Description:
+ * @date 2020/12/9 19:54
+ */
+
+public class NET_IN_GETFACEEIGEN_INFO extends NetSDKLib.SdkStructure {
+ public int dwSize;
+ public int nPhotoDataLen; // 人脸照片数据大小
+ public Pointer pszPhotoData = new Memory(200*1024); // 人脸照片数据, 由用户申请释放, 每张照片最大为200K
+
+ public NET_IN_GETFACEEIGEN_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GETONVIF_USERINFO_ALL_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GETONVIF_USERINFO_ALL_INFO.java
new file mode 100644
index 0000000..89fdbca
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GETONVIF_USERINFO_ALL_INFO.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 获取所有 Onvif 用户信息,CLIENT_GetOnvifUserInfoAll 入参
+*/
+public class NET_IN_GETONVIF_USERINFO_ALL_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_IN_GETONVIF_USERINFO_ALL_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GETSUMMARY_CROWDDISTRI_MAP_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GETSUMMARY_CROWDDISTRI_MAP_INFO.java
new file mode 100644
index 0000000..4e5f762
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GETSUMMARY_CROWDDISTRI_MAP_INFO.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_GetSummaryCrowdDistriMap 接口输入参数
+ * @date 2022/01/07
+ */
+public class NET_IN_GETSUMMARY_CROWDDISTRI_MAP_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+
+ public NET_IN_GETSUMMARY_CROWDDISTRI_MAP_INFO(){
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_ALARMMODE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_ALARMMODE.java
new file mode 100644
index 0000000..ec39009
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_ALARMMODE.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 获取布防模式 输入参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_ARMMODE
+ * @date 2021/11/08
+ */
+public class NET_IN_GET_ALARMMODE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_IN_GET_ALARMMODE(){
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_ALL_PARKING_SPACE_STATUS_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_ALL_PARKING_SPACE_STATUS_INFO.java
new file mode 100644
index 0000000..bec3f4e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_ALL_PARKING_SPACE_STATUS_INFO.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_QueryDevInfo NET_QUERY_GET_ALL_PARKING_SPACE_STATUS 类型接口输出参数
+*/
+public class NET_IN_GET_ALL_PARKING_SPACE_STATUS_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_IN_GET_ALL_PARKING_SPACE_STATUS_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_AREAS_STATUS.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_AREAS_STATUS.java
new file mode 100644
index 0000000..d3b23cd
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_AREAS_STATUS.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 获取区域状态 输入参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_AREASTATUS
+*/
+public class NET_IN_GET_AREAS_STATUS extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 获取异常防区类型,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_GET_AREASSTATUS_TYPE}
+ */
+ public int emType;
+
+ public NET_IN_GET_AREAS_STATUS() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_ATOMSPHDATA.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_ATOMSPHDATA.java
new file mode 100644
index 0000000..15a15f8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_ATOMSPHDATA.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetAtomsphData接口入参
+*/
+public class NET_IN_GET_ATOMSPHDATA extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+
+ public NET_IN_GET_ATOMSPHDATA() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_BIND_MODE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_BIND_MODE_INFO.java
new file mode 100644
index 0000000..92884f0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_BIND_MODE_INFO.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description CLIENT_GetBindMode 接口入参
+ * @origin autoTool
+ * @date 2023/09/15 10:59:47
+ */
+public class NET_IN_GET_BIND_MODE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * / 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * / 教室id号,默认0
+ */
+ public int nClassRoomId;
+
+ public NET_IN_GET_BIND_MODE_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_BOOT_PARAMETER.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_BOOT_PARAMETER.java
new file mode 100644
index 0000000..b8d53a0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_BOOT_PARAMETER.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetBootParameter 入参
+*/
+public class NET_IN_GET_BOOT_PARAMETER extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 参数个数
+ */
+ public int nNameNum;
+ /**
+ * 具体参数名称列表
+ */
+ public BYTE_ARRAY_32[] szNames = new BYTE_ARRAY_32[32];
+
+ public NET_IN_GET_BOOT_PARAMETER() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_BYPASSMODE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_BYPASSMODE.java
new file mode 100644
index 0000000..b8542af
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_BYPASSMODE.java
@@ -0,0 +1,38 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 获取旁路状态 输入参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_BYPASSMODE
+* @origin autoTool
+* @date 2023/08/09 16:27:26
+*/
+public class NET_IN_GET_BYPASSMODE extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+/**
+防区个数
+*/
+ public int nZoneNum;
+/**
+防区号, 从1开始
+*/
+ public int[] arrZones = new int[72];
+/**
+防区个数扩展
+*/
+ public int nZoneNumEx;
+/**
+防区号扩展 超过72使用这个字段
+*/
+ public int[] arrZonesEx = new int[256];
+
+public NET_IN_GET_BYPASSMODE(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CABINET_STATE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CABINET_STATE_INFO.java
new file mode 100644
index 0000000..5c2cd00
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CABINET_STATE_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_GetFinancialCabinetState 的输入参数
+* @date 2022/08/10 13:37:59
+*/
+public class NET_IN_GET_CABINET_STATE_INFO extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+
+public NET_IN_GET_CABINET_STATE_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CALIBRATEINFO_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CALIBRATEINFO_INFO.java
new file mode 100644
index 0000000..579f73d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CALIBRATEINFO_INFO.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 获取标定点信息入参
+ * @date 2023/05/24 10:24:50
+ */
+public class NET_IN_GET_CALIBRATEINFO_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 标定点编号
+ */
+ public int nID;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+
+ public NET_IN_GET_CALIBRATEINFO_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CALIBRATE_STATUS.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CALIBRATE_STATUS.java
new file mode 100644
index 0000000..9ebf542
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CALIBRATE_STATUS.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetCalibrateStatus 接口输入参数
+*/
+public class NET_IN_GET_CALIBRATE_STATUS extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_IN_GET_CALIBRATE_STATUS() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CAMERA_CFG.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CAMERA_CFG.java
new file mode 100644
index 0000000..9599520
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CAMERA_CFG.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+/**
+ * @author 251823
+ * @version 1.0
+ * @description {@link NetSDKLib#CLIENT_GetCameraCfg}的入参
+ * @date 2020/11/06
+ */
+public class NET_IN_GET_CAMERA_CFG extends NetSDKLib.SdkStructure {
+ // 结构体大小
+ public int dwSize;
+ // 相机编号
+ public int nCameraNo;
+
+ public NET_IN_GET_CAMERA_CFG() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CAMERA_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CAMERA_INFO.java
new file mode 100644
index 0000000..99bc6ac
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CAMERA_INFO.java
@@ -0,0 +1,22 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+
+/**
+ * @author 251823
+ * @version 1.0
+ * @description {@link NetSDKLib#CLIENT_GetCameraInfo}的入参
+ * @date 2020/11/09
+ */
+public class NET_IN_GET_CAMERA_INFO extends NetSDKLib.SdkStructure {
+ // 结构体大小
+ public int dwSize;
+ // 相机编号
+ public int nCameraNo;
+
+ public NET_IN_GET_CAMERA_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CHANNELS_STATE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CHANNELS_STATE.java
new file mode 100644
index 0000000..18bb8ff
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CHANNELS_STATE.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 获取通道状态 输入参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_CHANNELSSTATE
+* @date 2022/10/09 11:22:21
+*/
+public class NET_IN_GET_CHANNELS_STATE extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+/**
+获取通道状态查询条件
+*/
+ public NET_CHANNELS_STATE_CONDITION stuCondition = new NET_CHANNELS_STATE_CONDITION();
+
+public NET_IN_GET_CHANNELS_STATE(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CHANNEL_CFG.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CHANNEL_CFG.java
new file mode 100644
index 0000000..f8644e3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CHANNEL_CFG.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @version 1.0
+ * @description {@link NetSDKLib#CLIENT_GetChannelCfg}的入参
+ * @date 2020/11/09
+ */
+public class NET_IN_GET_CHANNEL_CFG extends NetSDKLib.SdkStructure {
+ // 结构体大小
+ public int dwSize;
+ // 检测通道
+ public int nChannelNo;
+
+ public NET_IN_GET_CHANNEL_CFG() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CHANNEL_STATE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CHANNEL_STATE.java
new file mode 100644
index 0000000..5bd784e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CHANNEL_STATE.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @description CLIENT_GetChannelState 入参
+ * @date 2022/07/04 11:16:31
+ */
+public class NET_IN_GET_CHANNEL_STATE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 视频通道数组个数
+ */
+ public int nChannelNum;
+ /**
+ * 视频通道数组,当该字段不存在或为空时代表获取所有通道
+ */
+ public int[] nChannel = new int[256];
+
+ public NET_IN_GET_CHANNEL_STATE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CLUSTER_STATE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CLUSTER_STATE_INFO.java
new file mode 100644
index 0000000..e148d0a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CLUSTER_STATE_INFO.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 接口 CLIENT_GetClusterState 的输入参数
+ * @date 2022/10/09 14:24:24
+ */
+public class NET_IN_GET_CLUSTER_STATE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 非必选, 当包含该字段时查对应日期的聚档状态, 否则返回最近一次的状态
+ */
+ public int nClusterDate;
+
+ public NET_IN_GET_CLUSTER_STATE_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_COLLECT_DEVICES_INFO_BY_TSFID_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_COLLECT_DEVICES_INFO_BY_TSFID_INFO.java
new file mode 100644
index 0000000..49ef3e4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_COLLECT_DEVICES_INFO_BY_TSFID_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetCollectDevicesInfoByTsfId 接口输入参数
+*/
+public class NET_IN_GET_COLLECT_DEVICES_INFO_BY_TSFID_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 执法人id
+ */
+ public byte[] szTipStaffId = new byte[32];
+
+ public NET_IN_GET_COLLECT_DEVICES_INFO_BY_TSFID_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_COURSE_LOGIC_CHANNEL.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_COURSE_LOGIC_CHANNEL.java
new file mode 100644
index 0000000..9097c52
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_COURSE_LOGIC_CHANNEL.java
@@ -0,0 +1,31 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+import static com.netsdk.lib.NetSDKLib.MAX_PREVIEW_CHANNEL_NUM;
+
+/**
+ * 获取录播主机逻辑通道号入参,对应接口 {@link NetSDKLib#CLIENT_GetLogicChannel}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 14:57
+ */
+public class NET_IN_GET_COURSE_LOGIC_CHANNEL extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道数量
+ */
+ public int nChannelNum;
+ /**
+ * 通道号
+ */
+ public int[] nChannel = new int[MAX_PREVIEW_CHANNEL_NUM];
+
+ public NET_IN_GET_COURSE_LOGIC_CHANNEL(){
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_COURSE_RECORD_MODE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_COURSE_RECORD_MODE.java
new file mode 100644
index 0000000..a8c3647
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_COURSE_RECORD_MODE.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 获取录像模式入参,对应接口{@link NetSDKLib#CLIENT_GetCourseRecordMode}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 15:48
+ */
+public class NET_IN_GET_COURSE_RECORD_MODE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 教室id号
+ */
+ public int nClassRoomID;
+
+ public NET_IN_GET_COURSE_RECORD_MODE() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CPU_TEMPERATURE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CPU_TEMPERATURE_INFO.java
new file mode 100644
index 0000000..26c413e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CPU_TEMPERATURE_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetCPUTemperature 接口输入参数
+*/
+public class NET_IN_GET_CPU_TEMPERATURE_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * CPU序号,取值范围0~128
+ */
+ public int nIndex;
+
+ public NET_IN_GET_CPU_TEMPERATURE_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CUSTOMINFO_CAPS.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CUSTOMINFO_CAPS.java
new file mode 100644
index 0000000..95863bc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_CUSTOMINFO_CAPS.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_GetCustomInfoCaps 输入参数
+* @date 2022/05/11 20:23:41
+*/
+public class NET_IN_GET_CUSTOMINFO_CAPS extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+
+public NET_IN_GET_CUSTOMINFO_CAPS(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DEFAULT_REAL_CHANNEL.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DEFAULT_REAL_CHANNEL.java
new file mode 100644
index 0000000..60bb2fe
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DEFAULT_REAL_CHANNEL.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+import static com.netsdk.lib.NetSDKLib.MAX_PREVIEW_CHANNEL_NUM;
+
+/**
+ * 获取默认真实通道号入参,对应接口 {@link NetSDKLib#CLIENT_GetDefaultRealChannel}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 10:06
+ */
+public class NET_IN_GET_DEFAULT_REAL_CHANNEL extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 需要获取的通道数
+ */
+ public int nChannelCount;
+ /**
+ * 逻辑通道信息,下标为将要获取的真实通道数
+ */
+ public NET_LOGIC_CHANNEL_INFO[] stuChannelInfo = new NET_LOGIC_CHANNEL_INFO[MAX_PREVIEW_CHANNEL_NUM];
+
+ public NET_IN_GET_DEFAULT_REAL_CHANNEL() {
+ dwSize = this.size();
+ for (int i = 0; i < stuChannelInfo.length; i++) {
+ stuChannelInfo[i] = new NET_LOGIC_CHANNEL_INFO();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DEVICESERIALNO_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DEVICESERIALNO_INFO.java
new file mode 100644
index 0000000..fabec7f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DEVICESERIALNO_INFO.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_GetDeviceSerialNo 入参
+ * @date 2023/03/15 20:18:02
+ */
+public class NET_IN_GET_DEVICESERIALNO_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_IN_GET_DEVICESERIALNO_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DEVICETYPE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DEVICETYPE_INFO.java
new file mode 100644
index 0000000..47fbb95
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DEVICETYPE_INFO.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_GetDeviceType 入参
+ * @date 2023/03/15 20:18:25
+ */
+public class NET_IN_GET_DEVICETYPE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_IN_GET_DEVICETYPE_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DEVICE_AII_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DEVICE_AII_INFO.java
new file mode 100644
index 0000000..e6436b9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DEVICE_AII_INFO.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_GetDeviceAllInfo 输入结构体
+ * @date 2021/01/20
+ */
+public class NET_IN_GET_DEVICE_AII_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 赋值为结构体大小
+ */
+ public int dwSize;
+
+ public NET_IN_GET_DEVICE_AII_INFO(){
+ this.dwSize=size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DEVICE_ETH_BAND_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DEVICE_ETH_BAND_INFO.java
new file mode 100644
index 0000000..6358fd8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DEVICE_ETH_BAND_INFO.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_GetDeviceEthBandInfo 接口入参
+ * @date 2022/05/30 14:45:46
+ */
+public class NET_IN_GET_DEVICE_ETH_BAND_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_IN_GET_DEVICE_ETH_BAND_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DEVICE_INFO_EX.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DEVICE_INFO_EX.java
new file mode 100644
index 0000000..9e05201
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DEVICE_INFO_EX.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.NetSDKLib.DEVICE_ID;
+
+/**
+ * @author 251823
+ * @description CLIENT_GetDeviceInfoEx 接口输入参数
+ * @date 2023/04/19 15:36:29
+ */
+public class NET_IN_GET_DEVICE_INFO_EX extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 设备个数
+ */
+ public int nCount;
+ /**
+ * 设备信息列表
+ */
+ public DEVICE_ID[] szDeviceIDs = (DEVICE_ID[])new DEVICE_ID().toArray(32); // 设备列表
+
+ public NET_IN_GET_DEVICE_INFO_EX() {
+ for (int i = 0; i < szDeviceIDs.length; i++) {
+ szDeviceIDs[0] = new DEVICE_ID();
+ }
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DEV_STORAGE_SMART_VALUE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DEV_STORAGE_SMART_VALUE.java
new file mode 100644
index 0000000..c1b87d5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DEV_STORAGE_SMART_VALUE.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_GetDevStorageSmartValue 接口入参
+ * @date 2022/05/30 14:42:47
+ */
+public class NET_IN_GET_DEV_STORAGE_SMART_VALUE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 存储设备名称
+ */
+ public byte[] szName = new byte[64];
+
+ public NET_IN_GET_DEV_STORAGE_SMART_VALUE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DYNAMIC_LOCK_RANDOM_PUBLICKEY_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DYNAMIC_LOCK_RANDOM_PUBLICKEY_INFO.java
new file mode 100644
index 0000000..da7ac41
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_DYNAMIC_LOCK_RANDOM_PUBLICKEY_INFO.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_GetDynamicLockRandomPublicKey 接口入参
+* @date 2022/06/23 10:08:09
+*/
+public class NET_IN_GET_DYNAMIC_LOCK_RANDOM_PUBLICKEY_INFO extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+/**
+密码锁ID
+*/
+ public byte[] szID = new byte[32];
+/**
+中心公钥
+*/
+ public byte[] szCenterPublicKey = new byte[512];
+
+public NET_IN_GET_DYNAMIC_LOCK_RANDOM_PUBLICKEY_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_EAS_DEVICE_CAPS_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_EAS_DEVICE_CAPS_INFO.java
new file mode 100644
index 0000000..c9dd28d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_EAS_DEVICE_CAPS_INFO.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetEASDeviceCaps 接口入参
+*/
+public class NET_IN_GET_EAS_DEVICE_CAPS_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 获取EAS设备能力集查询参数数组大小
+ */
+ public int nEASGetDeviceCapsRequestParamsNum;
+ /**
+ * 获取EAS设备能力集查询参数,参见结构体定义 NET_EAS_GET_DEVICE_CAPS_REQ_PARAM
+ */
+ public NET_EAS_GET_DEVICE_CAPS_REQ_PARAM[] stuEASGetDeviceCapsRequestParams = new NET_EAS_GET_DEVICE_CAPS_REQ_PARAM[64];
+
+ public NET_IN_GET_EAS_DEVICE_CAPS_INFO() {
+ this.dwSize = this.size();
+ for(int i = 0; i < stuEASGetDeviceCapsRequestParams.length; i++){
+ stuEASGetDeviceCapsRequestParams[i] = new NET_EAS_GET_DEVICE_CAPS_REQ_PARAM();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_ELEVATOR_WORK_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_ELEVATOR_WORK_INFO.java
new file mode 100644
index 0000000..8f71670
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_ELEVATOR_WORK_INFO.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_GetElevatorWorkInfo 接口入参
+ * @date 2022/08/11 19:21:09
+ */
+public class NET_IN_GET_ELEVATOR_WORK_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 视频通道号
+ */
+ public int nChannel;
+ /**
+ * 保留字节
+ */
+ public byte[] szReserved = new byte[256];
+
+ public NET_IN_GET_ELEVATOR_WORK_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_FACE_RECOGNITION_APPEND_TOKEN.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_FACE_RECOGNITION_APPEND_TOKEN.java
new file mode 100644
index 0000000..192258e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_FACE_RECOGNITION_APPEND_TOKEN.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetFaceRecognitionAppendToken 接口输入参数
+*/
+public class NET_IN_GET_FACE_RECOGNITION_APPEND_TOKEN extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_IN_GET_FACE_RECOGNITION_APPEND_TOKEN() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_FACE_RECOGNITION_GROUP_SPACE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_FACE_RECOGNITION_GROUP_SPACE_INFO.java
new file mode 100644
index 0000000..a549437
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_FACE_RECOGNITION_GROUP_SPACE_INFO.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetFaceRecognitionGroupSpaceInfo 接口输入参数
+*/
+public class NET_IN_GET_FACE_RECOGNITION_GROUP_SPACE_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_IN_GET_FACE_RECOGNITION_GROUP_SPACE_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_FILE_INFO_BY_PATH_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_FILE_INFO_BY_PATH_INFO.java
new file mode 100644
index 0000000..af9556d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_FILE_INFO_BY_PATH_INFO.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_FileManagerGetExFileInfoByPath接口入参
+* @date 2022/09/22 19:10:12
+*/
+public class NET_IN_GET_FILE_INFO_BY_PATH_INFO extends NetSDKLib.SdkStructure {
+/**
+此结构体大小,必须赋值
+*/
+ public int dwSize;
+/**
+文件路径
+*/
+ public byte[] szPath = new byte[256];
+
+public NET_IN_GET_FILE_INFO_BY_PATH_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_FINANCIAL_CABIN_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_FINANCIAL_CABIN_INFO.java
new file mode 100644
index 0000000..a14901b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_FINANCIAL_CABIN_INFO.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_GetFinancialCabinInfo 输入参数
+* @date 2022/08/01 14:13:04
+*/
+public class NET_IN_GET_FINANCIAL_CABIN_INFO extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+/**
+舱位下标索引个数
+*/
+ public int nIndexNum;
+/**
+舱位下标索引数组
+*/
+ public int[] nIndex = new int[64];
+
+public NET_IN_GET_FINANCIAL_CABIN_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_GLOBAL_PARAMETER.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_GLOBAL_PARAMETER.java
new file mode 100644
index 0000000..8f37f9d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_GLOBAL_PARAMETER.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_GetRtscGlobalParam 接口输入参数
+ * @date 2021/09/28
+ */
+public class NET_IN_GET_GLOBAL_PARAMETER extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_IN_GET_GLOBAL_PARAMETER(){
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_GPS_STATUS_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_GPS_STATUS_INFO.java
new file mode 100644
index 0000000..5cef0b4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_GPS_STATUS_INFO.java
@@ -0,0 +1,22 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 421657
+ * @description CLIENT_GetGpsStatus 接口入参
+ * @origin autoTool
+ * @date 2023/09/27 10:21:42
+ */
+public class NET_IN_GET_GPS_STATUS_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * / 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_IN_GET_GPS_STATUS_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_HEATMAPS_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_HEATMAPS_INFO.java
new file mode 100644
index 0000000..37fad94
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_HEATMAPS_INFO.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251589
+ * @version 1.0
+ * @description {@link NetSDKLib#CLIENT_GetHeatMapsDirectly}的输入参数
+ * @date 2020/11/10
+ **/
+
+
+public class NET_IN_GET_HEATMAPS_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * DWORD dwSize;
+ * int nChannel;
+ */
+ public int dwSize;
+ public int nChannel; // 通道号, 通道号要与订阅时一致, -1除外
+
+ public NET_IN_GET_HEATMAPS_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_INPUT_CHANNEL_MEDIA.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_INPUT_CHANNEL_MEDIA.java
new file mode 100644
index 0000000..88cba8d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_INPUT_CHANNEL_MEDIA.java
@@ -0,0 +1,31 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+import static com.netsdk.lib.NetSDKLib.MAX_PREVIEW_CHANNEL_NUM;
+
+/**
+ * 获取录播主机通道输入媒体介质入参 ,对应接口{@link NetSDKLib#CLIENT_GetInputChannelMedia}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 16:00
+ */
+public class NET_IN_GET_INPUT_CHANNEL_MEDIA extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道数量
+ */
+ public int nChannelNum;
+ /**
+ * 通道号
+ */
+ public int[] nChannel = new int[MAX_PREVIEW_CHANNEL_NUM];
+
+ public NET_IN_GET_INPUT_CHANNEL_MEDIA() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_INSTALLED_APP_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_INSTALLED_APP_INFO.java
new file mode 100644
index 0000000..d54ab87
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_INSTALLED_APP_INFO.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetInstalledAppInfo 接口输入参数
+*/
+public class NET_IN_GET_INSTALLED_APP_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_IN_GET_INSTALLED_APP_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_IVSEVENT_DETAIL_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_IVSEVENT_DETAIL_INFO.java
new file mode 100644
index 0000000..661e875
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_IVSEVENT_DETAIL_INFO.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * CLIENT_GetIVSEventDetail接口入参
+*/
+public class NET_IN_GET_IVSEVENT_DETAIL_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小
+ */
+ public int dwSize;
+ /**
+ * 待查询事件ID数量
+ */
+ public int nIdNum;
+ /**
+ * 待查询事件ID列表
+ */
+ public int[] nId = new int[128];
+ /**
+ * 回调函数,参见回调函数定义 {@link com.netsdk.lib.NetSDKLib.fNotifyIVSEventDetail}
+ */
+ public NetSDKLib.fNotifyIVSEventDetail cbNotifyIVSEventDetail;
+ /**
+ * 用户自定义参数
+ */
+ public Pointer dwUser;
+
+ public NET_IN_GET_IVSEVENT_DETAIL_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_LASER_DISTANCE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_LASER_DISTANCE.java
new file mode 100644
index 0000000..e33b65b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_LASER_DISTANCE.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description CLIENT_GetLaserDistance 接口入参
+ * @date 2023/04/21 09:16:51
+ */
+public class NET_IN_GET_LASER_DISTANCE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道号,从0开始
+ */
+ public int nChannel;
+
+ public NET_IN_GET_LASER_DISTANCE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_NEIGHBOUR_CELL_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_NEIGHBOUR_CELL_INFO.java
new file mode 100644
index 0000000..acd4273
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_NEIGHBOUR_CELL_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetNeighbourCellInfo 接口输入参数
+*/
+public class NET_IN_GET_NEIGHBOUR_CELL_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 蜂窝模块的网卡名称,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_WIRELESS_MODE}
+ */
+ public int emEthName;
+
+ public NET_IN_GET_NEIGHBOUR_CELL_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_OUTPUT_STATE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_OUTPUT_STATE.java
new file mode 100644
index 0000000..24a6d50
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_OUTPUT_STATE.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 获取输出状态 输入参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_OUTPUTSTATE
+* @origin autoTool
+* @date 2023/08/09 16:06:48
+*/
+public class NET_IN_GET_OUTPUT_STATE extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+/**
+通道类型 {@link com.netsdk.lib.enumeration.EM_OUTPUT_TYPE}
+*/
+ public int emType;
+
+public NET_IN_GET_OUTPUT_STATE(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_PERIPHERAL_CHIP_VERSION.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_PERIPHERAL_CHIP_VERSION.java
new file mode 100644
index 0000000..267b700
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_PERIPHERAL_CHIP_VERSION.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetPeripheralChipVersion 接口输入参数
+*/
+public class NET_IN_GET_PERIPHERAL_CHIP_VERSION extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 从片类型, 0:未知, 1:MOVIDIUS, 2:Warpway, 3:TX1, 4:Proto, 5:Blob
+ */
+ public int nType;
+
+ public NET_IN_GET_PERIPHERAL_CHIP_VERSION() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_PIC_MAP_MARK_LIST.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_PIC_MAP_MARK_LIST.java
new file mode 100644
index 0000000..0add889
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_PIC_MAP_MARK_LIST.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetPicMapMarkList 接口输入参数
+*/
+public class NET_IN_GET_PIC_MAP_MARK_LIST extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 通道号列表个数
+ */
+ public int nChannelCount;
+ /**
+ * 通道号列表
+ */
+ public int[] nChannels = new int[1024];
+
+ public NET_IN_GET_PIC_MAP_MARK_LIST() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_POPULATION_STATISTICS.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_POPULATION_STATISTICS.java
new file mode 100644
index 0000000..a5cbb95
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_POPULATION_STATISTICS.java
@@ -0,0 +1,16 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+/**
+ * @author : 291189
+ * @since : Created in 2021/7/5 10:06
+ * CLIENT_GetPopulationStatistics 接口输入参数
+ */
+public class NET_IN_GET_POPULATION_STATISTICS extends NetSDKLib.SdkStructure {
+ public int dwSize; // 结构体大小
+
+ public NET_IN_GET_POPULATION_STATISTICS() {
+ this.dwSize=this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_PORTINFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_PORTINFO.java
new file mode 100644
index 0000000..ddb3b4a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_PORTINFO.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetStoragePortInfo 入参
+*/
+public class NET_IN_GET_PORTINFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_IN_GET_PORTINFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_PRIVACY_MASKING.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_PRIVACY_MASKING.java
new file mode 100644
index 0000000..24889fe
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_PRIVACY_MASKING.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_GetPrivacyMasking 输入参数
+ * @date 2022/07/21 16:58:24
+ */
+public class NET_IN_GET_PRIVACY_MASKING extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+ /**
+ * 本次从第几个遮档块开始获取
+ */
+ public int nOffset;
+ /**
+ * 本次获取多少个遮档块信息,最大不超过24
+ */
+ public int nLimit;
+
+ public NET_IN_GET_PRIVACY_MASKING() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_PRIVACY_MASKING_ENABLE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_PRIVACY_MASKING_ENABLE.java
new file mode 100644
index 0000000..89e6e5b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_PRIVACY_MASKING_ENABLE.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_GetPrivacyMaskingEnable 输入参数
+ * @date 2022/07/21 17:15:29
+ */
+public class NET_IN_GET_PRIVACY_MASKING_ENABLE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+
+ public NET_IN_GET_PRIVACY_MASKING_ENABLE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_PTZ_WASH_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_PTZ_WASH_INFO.java
new file mode 100644
index 0000000..48ed163
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_PTZ_WASH_INFO.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author : 260611
+ * @description : 获取标定后的冲洗信息, 入参
+ * @since : Created in 2021/11/29 10:47
+ */
+
+public class NET_IN_GET_PTZ_WASH_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道ID
+ */
+ public int nChannelID;
+
+ public NET_IN_GET_PTZ_WASH_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_REAL_PREVIEW_CHANNEL.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_REAL_PREVIEW_CHANNEL.java
new file mode 100644
index 0000000..05dd16d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_REAL_PREVIEW_CHANNEL.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+import static com.netsdk.lib.NetSDKLib.MAX_PREVIEW_CHANNEL_NUM;
+
+/**
+ * 获取真实预览通道号 入参 {@link NetSDKLib#CLIENT_GetRealPreviewChannel}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/18 9:38
+ */
+public class NET_IN_GET_REAL_PREVIEW_CHANNEL extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 需要获取的通道数
+ */
+ public int nChannelCount;
+ /**
+ * 逻辑通道信息,下标为将要获取的真实通道数
+ */
+ public NET_LOGIC_CHANNEL_INFO[] stuChannelInfo = new NET_LOGIC_CHANNEL_INFO[MAX_PREVIEW_CHANNEL_NUM];
+
+ public NET_IN_GET_REAL_PREVIEW_CHANNEL() {
+ dwSize = this.size();
+ for (int i = 0; i < stuChannelInfo.length; i++) {
+ stuChannelInfo[i] = new NET_LOGIC_CHANNEL_INFO();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_RECORD_STATE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_RECORD_STATE.java
new file mode 100644
index 0000000..d8b1ee3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_RECORD_STATE.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 获取录像状态 入参 {@link NetSDKLib#CLIENT_GetRecordState}
+ *
+ * @author : 47040
+ * @since : Created in 2020/10/13 20:26
+ */
+public class NET_IN_GET_RECORD_STATE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+
+ public NET_IN_GET_RECORD_STATE() {
+ this.dwSize = size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_RUNNING_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_RUNNING_INFO.java
new file mode 100644
index 0000000..a08cda0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_RUNNING_INFO.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_GetRtscRunningInfo 接口输入参数
+ * @date 2021/09/28
+ */
+public class NET_IN_GET_RUNNING_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 查询类型,按位表示: bit0:运行状态 bit1:控制方式 bit2:车道功能状态 bit3:车道/匝道控制状态信息 bit4:当前信号方案色步信息 bit5: 下一个周期信号方案色步信息
+ */
+ public int nType;
+
+ public NET_IN_GET_RUNNING_INFO(){
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_RUNNING_MODE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_RUNNING_MODE.java
new file mode 100644
index 0000000..9fdbd5b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_RUNNING_MODE.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_GetRtscRunningMode 接口输入参数
+ * @date 2021/09/28
+ */
+public class NET_IN_GET_RUNNING_MODE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_IN_GET_RUNNING_MODE(){
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_SCHEME_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_SCHEME_INFO.java
new file mode 100644
index 0000000..34d25c9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_SCHEME_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetSchemeInfo 入参
+*/
+public class NET_IN_GET_SCHEME_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 智能套餐方案ID, -1时表示查找全部智能套餐方案信息
+ */
+ public int nSchemeID;
+
+ public NET_IN_GET_SCHEME_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_SMOKE_DATA.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_SMOKE_DATA.java
new file mode 100644
index 0000000..8f20729
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_SMOKE_DATA.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_GetSmokeData 入参
+ * @date 2022/10/17 13:45:09
+ */
+public class NET_IN_GET_SMOKE_DATA extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+
+ public NET_IN_GET_SMOKE_DATA() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_SNIFFER_CAP.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_SNIFFER_CAP.java
new file mode 100644
index 0000000..ce1aeca
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_SNIFFER_CAP.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetSnifferCaps 接口入参
+*/
+public class NET_IN_GET_SNIFFER_CAP extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+
+ public NET_IN_GET_SNIFFER_CAP() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_SNIFFER_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_SNIFFER_INFO.java
new file mode 100644
index 0000000..c1a1d0c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_SNIFFER_INFO.java
@@ -0,0 +1,16 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * CLIENT_GetSnifferInfo 接口输入参数
+*/
+public class NET_IN_GET_SNIFFER_INFO extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+ public Pointer pszNetInterface;
+
+ public NET_IN_GET_SNIFFER_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_SOFTWAREVERSION_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_SOFTWAREVERSION_INFO.java
new file mode 100644
index 0000000..36f876e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_SOFTWAREVERSION_INFO.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetSoftwareVersion 入参
+*/
+public class NET_IN_GET_SOFTWAREVERSION_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_IN_GET_SOFTWAREVERSION_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_STATEMANAGER_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_STATEMANAGER_INFO.java
new file mode 100644
index 0000000..8b7dfe1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_STATEMANAGER_INFO.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_GetStateManager 接口入参
+ * @date 2023/05/11 14:18:32
+ */
+public class NET_IN_GET_STATEMANAGER_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 状态枚举 {@link com.netsdk.lib.enumeration.EM_STATEMANAGER_STATE}
+ */
+ public int emState;
+
+ public NET_IN_GET_STATEMANAGER_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_SUBMODULES_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_SUBMODULES_INFO.java
new file mode 100644
index 0000000..6d851d2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_SUBMODULES_INFO.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 接口 CLIENT_GetSubModuleInfo 输入参数
+*/
+public class NET_IN_GET_SUBMODULES_INFO extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+
+ public NET_IN_GET_SUBMODULES_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_TEMPERATUREEX.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_TEMPERATUREEX.java
new file mode 100644
index 0000000..0d5e4c8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_TEMPERATUREEX.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_FaceBoard_GetTemperatureEx的入参
+ * @date 2022/05/12 16:28:47
+ */
+public class NET_IN_GET_TEMPERATUREEX extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 温度类型 {@link com.netsdk.lib.enumeration.EM_TEMPERATUREEX_TYPE}
+ */
+ public int emTemperatureType;
+
+ public NET_IN_GET_TEMPERATUREEX() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_TEMPORARY_TOKEN.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_TEMPORARY_TOKEN.java
new file mode 100644
index 0000000..2d63d00
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_TEMPORARY_TOKEN.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetTemporaryToken 接口入参
+*/
+public class NET_IN_GET_TEMPORARY_TOKEN extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 请求token的客户端IP. 可为空("")
+ */
+ public byte[] szclientIP = new byte[48];
+ /**
+ * token有效时间, 单位:秒, 范围5-90s
+ */
+ public int nkeepAliveTime;
+ /**
+ * 获取级联模式Token
+ */
+ public int bRemoteMode;
+ /**
+ * 级联设备通道号,从0开始,当bRemoteMode为TRUE时有效
+ */
+ public int nChannelID;
+
+ public NET_IN_GET_TEMPORARY_TOKEN() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_TOUR_SOURCE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_TOUR_SOURCE.java
new file mode 100644
index 0000000..b918a99
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_TOUR_SOURCE.java
@@ -0,0 +1,27 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * CLIENT_GetTourSource 接口输入参数
+*/
+public class NET_IN_GET_TOUR_SOURCE extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+ /**
+ * 输出通道号, pszCompsiteID为NULL时有效
+ */
+ public int nChannel;
+ /**
+ * 拼接屏ID
+ */
+ public Pointer pszCompositeID;
+ /**
+ * 窗口号, -1表示所有窗口
+ */
+ public int nWindow;
+
+ public NET_IN_GET_TOUR_SOURCE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_UPLOAD_PATH_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_UPLOAD_PATH_INFO.java
new file mode 100644
index 0000000..2c56fd7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_UPLOAD_PATH_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetUploadPath接口入参
+*/
+public class NET_IN_GET_UPLOAD_PATH_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 文件路径
+ */
+ public byte[] szInName = new byte[128];
+
+ public NET_IN_GET_UPLOAD_PATH_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_VAULTDOOR_STATE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_VAULTDOOR_STATE_INFO.java
new file mode 100644
index 0000000..4541594
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_VAULTDOOR_STATE_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_GetVaultDoorState 的输入参数
+* @date 2022/08/10 11:38:37
+*/
+public class NET_IN_GET_VAULTDOOR_STATE_INFO extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+
+public NET_IN_GET_VAULTDOOR_STATE_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_VIDEOSTAT_HEATMAP.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_VIDEOSTAT_HEATMAP.java
new file mode 100644
index 0000000..42b966f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_VIDEOSTAT_HEATMAP.java
@@ -0,0 +1,37 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 获取热度图数据接口入参,
+ * @date 2020/9/21
+ */
+public class NET_IN_GET_VIDEOSTAT_HEATMAP extends NetSDKLib.SdkStructure {
+ /**
+ * 此结构体大小
+ */
+ public int dwSize;
+ /**
+ * 计划(预置点,仅球机有效,范围1~MaxNumberStatPlan)
+ */
+ public int nPlanID;
+ /**
+ * 开始时间
+ */
+ public NET_TIME stuStartTime;
+ /**
+ * 结束时间
+ */
+ public NET_TIME stuEndTime;
+ /**
+ * Ai热度图类型,枚举值类型{@link com.netsdk.lib.enumeration.EM_HEATMAP_TYPE}
+ */
+ public int emHeatMapType;
+
+ public NET_IN_GET_VIDEOSTAT_HEATMAP(){
+ this.dwSize=size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_VTO_MANAGER_RELATION.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_VTO_MANAGER_RELATION.java
new file mode 100644
index 0000000..b2b4cc6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_VTO_MANAGER_RELATION.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description CLIENT_GetVTOManagerRelation 入参
+ * @origin autoTool
+ * @date 2023/10/19 14:16:46
+ */
+public class NET_IN_GET_VTO_MANAGER_RELATION extends NetSDKLib.SdkStructure {
+ /**
+ * / 结构体大小
+ */
+ public int dwSize;
+ /**
+ * / 开始查询的记录偏移量
+ */
+ public int nOffset;
+
+ public NET_IN_GET_VTO_MANAGER_RELATION() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_WORK_GROUP_DEVICE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_WORK_GROUP_DEVICE_INFO.java
new file mode 100644
index 0000000..41a8eda
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_WORK_GROUP_DEVICE_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetWorkGroupDeviceInfos 接口输入参数
+*/
+public class NET_IN_GET_WORK_GROUP_DEVICE_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 工作组名称, 用于获取工作组实例
+ */
+ public byte[] szName = new byte[32];
+
+ public NET_IN_GET_WORK_GROUP_DEVICE_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_XRAY_MULTILEVEL_DETECT_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_XRAY_MULTILEVEL_DETECT_INFO.java
new file mode 100644
index 0000000..19c1bb9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_XRAY_MULTILEVEL_DETECT_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 接口 CLIENT_GetXRayMultiLevelDetectCFG 的输入参数
+* @date 2022/12/01 16:20:33
+*/
+public class NET_IN_GET_XRAY_MULTILEVEL_DETECT_INFO extends NetSDKLib.SdkStructure {
+/**
+此结构体大小,必须赋值
+*/
+ public int dwSize;
+
+public NET_IN_GET_XRAY_MULTILEVEL_DETECT_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_XRAY_SOURCE_CAPS_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_XRAY_SOURCE_CAPS_INFO.java
new file mode 100644
index 0000000..f70037f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_XRAY_SOURCE_CAPS_INFO.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetXRaySourceCaps 接口输入参数
+*/
+public class NET_IN_GET_XRAY_SOURCE_CAPS_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_IN_GET_XRAY_SOURCE_CAPS_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_XRAY_SOURCE_CUMULATE_TIME_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_XRAY_SOURCE_CUMULATE_TIME_INFO.java
new file mode 100644
index 0000000..dbb0311
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_XRAY_SOURCE_CUMULATE_TIME_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetXRaySourceCumulateTime 接口输入参数
+*/
+public class NET_IN_GET_XRAY_SOURCE_CUMULATE_TIME_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+
+ public NET_IN_GET_XRAY_SOURCE_CUMULATE_TIME_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GET_ZONE_ARMODE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_ZONE_ARMODE_INFO.java
new file mode 100644
index 0000000..6b018e0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GET_ZONE_ARMODE_INFO.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_GetZoneArmMode 接口入参
+* @origin autoTool
+* @date 2023/08/09 11:16:07
+*/
+public class NET_IN_GET_ZONE_ARMODE_INFO extends NetSDKLib.SdkStructure {
+/**
+此结构体大小,必须赋值
+*/
+ public int dwSize;
+/**
+要操作的防区号列表个数
+*/
+ public int nZoneNum;
+/**
+防区号,数组中第一个元素为-1表示获取所有通道的布撤防状态
+*/
+ public int[] nZones = new int[256];
+
+public NET_IN_GET_ZONE_ARMODE_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_GOTO_PRIVACY_MASKING.java b/src/main/java/com/netsdk/lib/structure/NET_IN_GOTO_PRIVACY_MASKING.java
new file mode 100644
index 0000000..79bef2f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_GOTO_PRIVACY_MASKING.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_GotoPrivacyMasking 输入参数
+ * @date 2022/07/21 17:19:47
+ */
+public class NET_IN_GOTO_PRIVACY_MASKING extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+ /**
+ * 遮档块编号,从0开始
+ */
+ public int nIndex;
+
+ public NET_IN_GOTO_PRIVACY_MASKING() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_INSERT_MULTI_TALK_DEV.java b/src/main/java/com/netsdk/lib/structure/NET_IN_INSERT_MULTI_TALK_DEV.java
new file mode 100644
index 0000000..5a145e9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_INSERT_MULTI_TALK_DEV.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 421657
+ * @description CLIENT_InsertMultiTalkDev 入参
+ * @origin autoTool
+ * @date 2023/10/26 09:34:53
+ */
+public class NET_IN_INSERT_MULTI_TALK_DEV extends NetSDKLib.SdkStructure {
+ /**
+ * / 结构体大小
+ */
+ public int dwSize;
+ /**
+ * / 新增的个数
+ */
+ public int nInsertInfoNum;
+ /**
+ * / 添加的设备信息
+ */
+ public NET_TALK_DEV_DETAIL_INFO[] stuInsertInfo = new NET_TALK_DEV_DETAIL_INFO[128];
+
+ public NET_IN_INSERT_MULTI_TALK_DEV() {
+ for (int i = 0; i < stuInsertInfo.length; i++) {
+ stuInsertInfo[i] = new NET_TALK_DEV_DETAIL_INFO();
+ }
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_INSTALL_APPEND_DATA.java b/src/main/java/com/netsdk/lib/structure/NET_IN_INSTALL_APPEND_DATA.java
new file mode 100644
index 0000000..6582073
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_INSTALL_APPEND_DATA.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * CLIENT_UpgraderInstall接口的 EM_UPGRADE_INSTALL_APPEND_DATA命令入参
+*/
+public class NET_IN_INSTALL_APPEND_DATA extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 升级文件总大小
+ */
+ public int nTotalLen;
+ /**
+ * 本次发送的二进制长度
+ */
+ public int nAppendLen;
+ /**
+ * 本次发送的二进制数据 由用户申请释放
+ */
+ public Pointer pAppendData;
+
+ public NET_IN_INSTALL_APPEND_DATA() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_INSTALL_CANCEL.java b/src/main/java/com/netsdk/lib/structure/NET_IN_INSTALL_CANCEL.java
new file mode 100644
index 0000000..2007d3d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_INSTALL_CANCEL.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_UpgraderInstall接口的 EM_UPGRADE_INSTALL_CANCEL命令入参
+*/
+public class NET_IN_INSTALL_CANCEL extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_IN_INSTALL_CANCEL() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_INSTALL_EXECUTE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_INSTALL_EXECUTE.java
new file mode 100644
index 0000000..a98bda8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_INSTALL_EXECUTE.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_UpgraderInstall接口的 EM_UPGRADE_INSTALL_EXECUTE命令入参
+*/
+public class NET_IN_INSTALL_EXECUTE extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 升级后是否自动重启
+ */
+ public int bAutoReboot;
+
+ public NET_IN_INSTALL_EXECUTE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_INSTALL_FIRMWAREEX.java b/src/main/java/com/netsdk/lib/structure/NET_IN_INSTALL_FIRMWAREEX.java
new file mode 100644
index 0000000..5413b0b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_INSTALL_FIRMWAREEX.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_UpgraderInstall接口的 EM_UPGRADER_INSTALL_FIRMWAREEX命令入参
+*/
+public class NET_IN_INSTALL_FIRMWAREEX extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 支持的操作,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_NET_UPGRADE_ACTION}
+ */
+ public int emUpgradeAction;
+ /**
+ * 升级包的url路径
+ */
+ public byte[] szUrlString = new byte[1024];
+ /**
+ * 被操作的第三方APP的名称
+ */
+ public byte[] szAppName = new byte[64];
+
+ public NET_IN_INSTALL_FIRMWAREEX() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_INSTALL_GETSTATE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_INSTALL_GETSTATE.java
new file mode 100644
index 0000000..011d41a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_INSTALL_GETSTATE.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_UpgraderInstall接口的 EM_UPGRADE_INSTALL_GETSTATE命令入参
+*/
+public class NET_IN_INSTALL_GETSTATE extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_IN_INSTALL_GETSTATE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_INSTALL_PREPAREEX.java b/src/main/java/com/netsdk/lib/structure/NET_IN_INSTALL_PREPAREEX.java
new file mode 100644
index 0000000..4020632
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_INSTALL_PREPAREEX.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_UpgraderInstall接口的 EM_UPGRADE_INSTALL_PREPAREEX命令入参
+*/
+public class NET_IN_INSTALL_PREPAREEX extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 升级的app名称
+ */
+ public byte[] szAppName = new byte[32];
+ /**
+ * 接下来的操作,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_NET_NEXT_OPERATE}
+ */
+ public int emNextOperate;
+ /**
+ * 升级包大小
+ */
+ public int nTotalLength;
+ /**
+ * 升级可靠性
+ */
+ public int bReliable;
+
+ public NET_IN_INSTALL_PREPAREEX() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_IVSEVENT_FIND_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_IVSEVENT_FIND_INFO.java
new file mode 100644
index 0000000..9f1ecce
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_IVSEVENT_FIND_INFO.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_IVSEventFind接口入参
+* @date 2022/11/02 13:47:07
+*/
+public class NET_IN_IVSEVENT_FIND_INFO extends NetSDKLib.SdkStructure {
+/**
+此结构体大小,必须赋值
+*/
+ public int dwSize;
+/**
+报警诊断类型
+0:全部
+1:未处理
+2:正确
+3:错误
+4:重复正确报警
+5:重复错误报警
+*/
+ public int nVaild;
+/**
+查询开始时间
+*/
+ public NET_TIME stStartTime = new NET_TIME();
+/**
+查询结束时间
+*/
+ public NET_TIME stEndTime = new NET_TIME();
+/**
+通道号列表
+*/
+ public int[] nChannelList = new int[128];
+/**
+nChannelList中有效通道号个数,填0表示查询所有通道号
+*/
+ public int dwChannelCnt;
+/**
+dwEventCodeList中有效的事件类型个数
+*/
+ public int dwEventCodeCnt;
+/**
+智能事件类型列表,参考 EVENT_IVS_ALL 这个宏下面的智能事件宏定义
+注意,并非所有的事件都能查询,需要根据所用的IVS设备支持的情况,填写对应的智能事件类型
+*/
+ public int[] dwEventCodeList = new int[128];
+
+public NET_IN_IVSEVENT_FIND_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_IVSEVENT_NEXTFIND_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_IVSEVENT_NEXTFIND_INFO.java
new file mode 100644
index 0000000..946b921
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_IVSEVENT_NEXTFIND_INFO.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_IVSEventNextFind接口入参
+* @date 2022/11/02 13:50:37
+*/
+public class NET_IN_IVSEVENT_NEXTFIND_INFO extends NetSDKLib.SdkStructure {
+/**
+此结构体大小,必须赋值
+*/
+ public int dwSize;
+/**
+查询起点偏移
+*/
+ public int nStartIndex;
+/**
+单次查询返回数量
+*/
+ public int nLimit;
+
+public NET_IN_IVSEVENT_NEXTFIND_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_LIGHTINGCONTROL_CAPS.java b/src/main/java/com/netsdk/lib/structure/NET_IN_LIGHTINGCONTROL_CAPS.java
new file mode 100644
index 0000000..e289984
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_LIGHTINGCONTROL_CAPS.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 421657
+ * @description 获取补光灯能力入参(对应 : NET_LIGHTINGCONTROL_CAPS)
+ * @origin autoTool
+ * @date 2023/10/19 17:05:46
+ */
+public class NET_IN_LIGHTINGCONTROL_CAPS extends NetSDKLib.SdkStructure {
+ /**
+ * /结构体大小
+ */
+ public int dwSize;
+ /**
+ * / 通道号
+ */
+ public int nChannel;
+
+ public NET_IN_LIGHTINGCONTROL_CAPS() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_LOAD_MAP_PIC.java b/src/main/java/com/netsdk/lib/structure/NET_IN_LOAD_MAP_PIC.java
new file mode 100644
index 0000000..7ea24c4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_LOAD_MAP_PIC.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_LoadMapPic 接口输入参数
+*/
+public class NET_IN_LOAD_MAP_PIC extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_IN_LOAD_MAP_PIC() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MAKE_TOKEN.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MAKE_TOKEN.java
new file mode 100644
index 0000000..d353c96
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MAKE_TOKEN.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 获取token入参
+* @date 2022/10/12 11:10:34
+*/
+public class NET_IN_MAKE_TOKEN extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+/**
+客户端唯一标示符
+*/
+ public byte[] szUUID = new byte[128];
+/**
+Token保活时间, 范围60~86400
+*/
+ public int nKeepLiveTime;
+
+public NET_IN_MAKE_TOKEN(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MANUAL_CONTROL_COURSE_RECORD_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MANUAL_CONTROL_COURSE_RECORD_INFO.java
new file mode 100644
index 0000000..6bb9d3b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MANUAL_CONTROL_COURSE_RECORD_INFO.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_ManualControlCourseRecord 接口输入参数
+*/
+public class NET_IN_MANUAL_CONTROL_COURSE_RECORD_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 预留对齐字节
+ */
+ public byte[] szReserved = new byte[4];
+ /**
+ * 一键控制录播录像的信息,参见结构体定义 {@link com.netsdk.lib.structure.NET_MANUAL_CONTROL_COURSE_RECORD_INFO}
+ */
+ public NET_MANUAL_CONTROL_COURSE_RECORD_INFO stuInfo = new NET_MANUAL_CONTROL_COURSE_RECORD_INFO();
+
+ public NET_IN_MANUAL_CONTROL_COURSE_RECORD_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MANUAL_TEST.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MANUAL_TEST.java
new file mode 100644
index 0000000..c9ebb9f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MANUAL_TEST.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_ManualTest 接口输入参数
+ * @date 2023/03/16 08:53:00
+ */
+public class NET_IN_MANUAL_TEST extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 测试ID,每次下发的测试ID不一样
+ */
+ public int dwTestID;
+ /**
+ * 测试的通道号,可以对应某一个要测试的SIA服务器
+ */
+ public int nChannel;
+
+ public NET_IN_MANUAL_TEST() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MARK_OBJECT_FAVORITES_LIBRARY_OBJECT_RECORDS.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MARK_OBJECT_FAVORITES_LIBRARY_OBJECT_RECORDS.java
new file mode 100644
index 0000000..5a39ffc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MARK_OBJECT_FAVORITES_LIBRARY_OBJECT_RECORDS.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * CLIENT_MarkObjectFavoritesLibraryObjectRecords 接口输入参数
+*/
+public class NET_IN_MARK_OBJECT_FAVORITES_LIBRARY_OBJECT_RECORDS extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 收藏的数据来源, 0: 人脸以图搜图, 1: QuickPick以图搜图, 2: AcuPick以图搜图, 3: IVS查询搜索
+ */
+ public int nSearchType;
+ /**
+ * 收藏的目标事件数据, 内存由用户申请释放, 大小为sizeof(NET_OBJECT_FAVORITES_LIBRARY_COLLECT_DATA)*nCollectDatasNum,参见结构体定义 {@link com.netsdk.lib.structure.NET_OBJECT_FAVORITES_LIBRARY_COLLECT_DATA}
+ */
+ public Pointer pstuCollectDatas;
+ /**
+ * 收藏的目标事件数据个数
+ */
+ public int nCollectDatasNum;
+ /**
+ * 字节对齐
+ */
+ public byte[] szReserved = new byte[4];
+
+ public NET_IN_MARK_OBJECT_FAVORITES_LIBRARY_OBJECT_RECORDS() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MARK_PIC_MAP_CHANNEL.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MARK_PIC_MAP_CHANNEL.java
new file mode 100644
index 0000000..3895ac0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MARK_PIC_MAP_CHANNEL.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_MarkPicMapChannel 接口输入参数
+*/
+public class NET_IN_MARK_PIC_MAP_CHANNEL extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 地图已标记信息个数
+ */
+ public int nMarkInfosCount;
+ /**
+ * 地图已标记信息,参见结构体定义 {@link com.netsdk.lib.structure.NET_MAP_PIC_MARK_INFOS}
+ */
+ public NET_MAP_PIC_MARK_INFOS[] stuMarkInfos = new NET_MAP_PIC_MARK_INFOS[1024];
+
+ public NET_IN_MARK_PIC_MAP_CHANNEL() {
+ this.dwSize = this.size();
+ for(int i = 0; i < stuMarkInfos.length; i++){
+ stuMarkInfos[i] = new NET_MAP_PIC_MARK_INFOS();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MEDIAMANAGER_GETCAPS.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MEDIAMANAGER_GETCAPS.java
new file mode 100644
index 0000000..ffa2f56
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MEDIAMANAGER_GETCAPS.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetDevCaps NET_MEDIAMANAGER_CAPS 命令入参
+*/
+public class NET_IN_MEDIAMANAGER_GETCAPS extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+ /**
+ * 需要获取的能力集类型,参见枚举定义 {@link com.netsdk.lib.enumeration.NET_MEDIA_CAP_TYPE}
+ */
+ public int emType;
+
+ public NET_IN_MEDIAMANAGER_GETCAPS() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MINI_RADAR_ALARMPOINTINFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MINI_RADAR_ALARMPOINTINFO.java
new file mode 100644
index 0000000..907087d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MINI_RADAR_ALARMPOINTINFO.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 260611
+ * @description 订阅mini雷达的报警点信息入参(对应接口 CLIENT_AttachMiniRadarAlarmPointInfo)
+ * @date 2022/08/04 16:59:36
+ */
+public class NET_IN_MINI_RADAR_ALARMPOINTINFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 雷达报警点信息回调
+ */
+ public NetSDKLib.fMiniRadarAlarmPointInfoCallBack cbAlarmPointInfo;
+ /**
+ * 用户数据
+ */
+ public Pointer dwUser;
+
+ public NET_IN_MINI_RADAR_ALARMPOINTINFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_ALARM_USER.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_ALARM_USER.java
new file mode 100644
index 0000000..398fabe
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_ALARM_USER.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_ModifyAlarmUser 接口输入参数
+ * @date 2023/03/16 10:58:09
+ */
+public class NET_IN_MODIFY_ALARM_USER extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 用户ID,用户唯一标识
+ */
+ public byte[] szUserID = new byte[64];
+ /**
+ * 修改的用户信息
+ */
+ public NET_ALARM_USER stuAlarmUser = new NET_ALARM_USER();
+
+ public NET_IN_MODIFY_ALARM_USER() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_ALARM_USER_PASSWORD.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_ALARM_USER_PASSWORD.java
new file mode 100644
index 0000000..62915dd
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_ALARM_USER_PASSWORD.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_ModifyAlarmUserPassword 接口输入参数
+ * @date 2023/03/16 11:01:47
+ */
+public class NET_IN_MODIFY_ALARM_USER_PASSWORD extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 用户ID,用户唯一标识
+ */
+ public byte[] szUserID = new byte[64];
+ /**
+ * 旧密码
+ */
+ public byte[] szOldPassword = new byte[64];
+ /**
+ * 新密码
+ */
+ public byte[] szNewPassword = new byte[64];
+
+ public NET_IN_MODIFY_ALARM_USER_PASSWORD() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_COURSE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_COURSE.java
new file mode 100644
index 0000000..2aef287
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_COURSE.java
@@ -0,0 +1,36 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 修改课程记录 入参指针 {@link NetSDKLib#CLIENT_ModifyCourse}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/17 16:37
+ */
+public class NET_IN_MODIFY_COURSE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 课程数量
+ */
+ public int nCourseNum;
+ /**
+ * 课程信息
+ */
+ public NET_COURSE[] stuCourseInfo = new NET_COURSE[64];
+ /**
+ * 课程ID
+ */
+ public int[] nId = new int[64];
+
+ public NET_IN_MODIFY_COURSE() {
+ dwSize = this.size();
+ for (int i = 0; i < stuCourseInfo.length; i++) {
+ stuCourseInfo[i] = new NET_COURSE();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_FLOOR_HEIGHT.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_FLOOR_HEIGHT.java
new file mode 100644
index 0000000..6e9b5fb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_FLOOR_HEIGHT.java
@@ -0,0 +1,37 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_ModifyFloorHeight 接口输入参数
+*/
+public class NET_IN_MODIFY_FLOOR_HEIGHT extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 视频通道号
+ */
+ public int nChannel;
+ /**
+ * 需要修改层高的楼层号个数
+ */
+ public int nFloorsNum;
+ /**
+ * 需要修改的楼层号层高个数
+ */
+ public int nHeightNum;
+ /**
+ * 需要修改层高的楼层号数组
+ */
+ public int[] nFloors = new int[32];
+ /**
+ * 需要修改的楼层号的对应层高,单位m
+ */
+ public double[] dbHeight = new double[32];
+
+ public NET_IN_MODIFY_FLOOR_HEIGHT() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_GROUP_FOR_VEHICLE_REG_DB.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_GROUP_FOR_VEHICLE_REG_DB.java
new file mode 100644
index 0000000..0d404ec
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_GROUP_FOR_VEHICLE_REG_DB.java
@@ -0,0 +1,19 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description CLIENT_ModifyGroupForVehicleRegisterDB 接口输入参数
+ * @date 2022/10/21 17:30
+ */
+public class NET_IN_MODIFY_GROUP_FOR_VEHICLE_REG_DB extends NetSDKLib.SdkStructure {
+ public int dwSize; // 结构体大小
+ public NET_VEHICLE_GROUP_INFO stuGroupInfo = new NET_VEHICLE_GROUP_INFO(); // 车辆组信息
+
+ public NET_IN_MODIFY_GROUP_FOR_VEHICLE_REG_DB(){
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_MEDIA_FILE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_MEDIA_FILE_INFO.java
new file mode 100644
index 0000000..013cbf5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_MEDIA_FILE_INFO.java
@@ -0,0 +1,36 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_ModifyMediaFile 接口输入参数
+*/
+public class NET_IN_MODIFY_MEDIA_FILE_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 文件Id号个数
+ */
+ public int nIdNum;
+ /**
+ * 文件Id号,是一个数组,表示要修改备注的文件Id号
+ */
+ public int[] nId = new int[32];
+ /**
+ * 文件备注,参见结构体定义 {@link com.netsdk.lib.structure.NET_MEDIA_FILE_REMARK_INFO}
+ */
+ public NET_MEDIA_FILE_REMARK_INFO[] stuFileRemark = new NET_MEDIA_FILE_REMARK_INFO[32];
+ /**
+ * 文件备注个数
+ */
+ public int nFileRemarkNum;
+
+ public NET_IN_MODIFY_MEDIA_FILE_INFO() {
+ this.dwSize = this.size();
+ for(int i = 0; i < stuFileRemark.length; i++){
+ stuFileRemark[i] = new NET_MEDIA_FILE_REMARK_INFO();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_PARKINGRECORD_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_PARKINGRECORD_INFO.java
new file mode 100644
index 0000000..ff9fb2c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_PARKINGRECORD_INFO.java
@@ -0,0 +1,31 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 修改停车记录信息 入参
+ * 接口 {@link NetSDKLib#CLIENT_ModifyParkingRecord}
+ * 出参 {@link NET_OUT_MODIFY_PARKINGRECORD_INFO}
+ *
+ * @author 47040
+ * @since Created in 2020/11/18 14:04
+ */
+public class NET_IN_MODIFY_PARKINGRECORD_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 老的记录
+ */
+ public NET_PARKINGRECORD_INFO stuOld;
+ /**
+ * 新的记录
+ */
+ public NET_PARKINGRECORD_INFO stuNew;
+
+ public NET_IN_MODIFY_PARKINGRECORD_INFO() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_VEHICLE_FOR_VEHICLE_REG_DB.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_VEHICLE_FOR_VEHICLE_REG_DB.java
new file mode 100644
index 0000000..e43209a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MODIFY_VEHICLE_FOR_VEHICLE_REG_DB.java
@@ -0,0 +1,19 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description CLIENT_ModifyVehicleForVehicleRegisterDB 接口输入参数
+ * @date 2022/10/22 10:24
+ */
+public class NET_IN_MODIFY_VEHICLE_FOR_VEHICLE_REG_DB extends NetSDKLib.SdkStructure {
+ public int dwSize; // 结构体大小
+ public NetSDKLib.NET_VEHICLE_INFO stuVehicleInfo = new NetSDKLib.NET_VEHICLE_INFO(); // 车辆信息
+
+ public NET_IN_MODIFY_VEHICLE_FOR_VEHICLE_REG_DB(){
+ dwSize=this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MONITORWALL_ADD.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MONITORWALL_ADD.java
new file mode 100644
index 0000000..d01b28c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MONITORWALL_ADD.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 添加电视墙输入参数
+*/
+public class NET_IN_MONITORWALL_ADD extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+ /**
+ * 电视墙信息,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_MONITORWALL}
+ */
+ public NetSDKLib.NET_MONITORWALL stuMonitorWall = new NetSDKLib.NET_MONITORWALL();
+
+ public NET_IN_MONITORWALL_ADD() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MONITORWALL_GET_COLL_SCHD.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MONITORWALL_GET_COLL_SCHD.java
new file mode 100644
index 0000000..e8b5e37
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MONITORWALL_GET_COLL_SCHD.java
@@ -0,0 +1,42 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+import static com.netsdk.lib.constant.SDKStructureFieldLenth.NET_MAX_COLLECTION_NUM;
+
+/**
+ * 获取预案时间表 入参 {@link NetSDKLib#CLIENT_OperateMonitorWall}
+ *
+ * @author : 47040
+ * @since : Created in 2020/10/19 9:24
+ */
+public class NET_IN_MONITORWALL_GET_COLL_SCHD extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * TRUE-查询所有预案, 不需要指定预案名称. FALSE-查询名称所对应的预案
+ */
+ public int bAllCollections;
+ /**
+ * 预案数, bAllCollections为FALSE时有效
+ */
+ public int nCollectionNum;
+ /**
+ * 预案名称
+ */
+ public NET_MONITORWALL_COLLECTION_NAME[] szCollections = new NET_MONITORWALL_COLLECTION_NAME[NET_MAX_COLLECTION_NUM];
+ /**
+ * 电视墙ID
+ */
+ public int nMonitorWallID;
+
+ public NET_IN_MONITORWALL_GET_COLL_SCHD() {
+ dwSize = this.size();
+ for (int i = 0; i < szCollections.length; i++) {
+ szCollections[i] = new NET_MONITORWALL_COLLECTION_NAME();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MONITORWALL_GET_ENABLE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MONITORWALL_GET_ENABLE.java
new file mode 100644
index 0000000..6f423a2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MONITORWALL_GET_ENABLE.java
@@ -0,0 +1,38 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.NET_MONITORWALL_OPERATE_TYPE;
+
+import static com.netsdk.lib.NetSDKLib.NET_MAX_MONITORWALL_NUM;
+
+/**
+ * 电视墙获取使能 入参
+ * 对应出参 {@link NET_OUT_MONITORWALL_GET_ENABLE}
+ * 对应枚举 {@link NET_MONITORWALL_OPERATE_TYPE#NET_MONITORWALL_OPERATE_GET_ENABLE}
+ * 对应接口 {@link NetSDKLib#CLIENT_OperateMonitorWall}
+ *
+ * @author : 47040
+ * @since : Created in 2020/10/19 11:04
+ */
+public class NET_IN_MONITORWALL_GET_ENABLE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 要查询的电视墙数量, -1表示查询所有电视墙
+ */
+ public int nMonitorWallNum;
+ /**
+ * 电视墙名称, nMonitorWallNum > 0 时有效
+ */
+ public NET_MONITORWALL_NAME[] szNames = new NET_MONITORWALL_NAME[NET_MAX_MONITORWALL_NUM];
+
+ public NET_IN_MONITORWALL_GET_ENABLE() {
+ dwSize = this.size();
+ for (int i = 0; i < szNames.length; i++) {
+ szNames[i] = new NET_MONITORWALL_NAME();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MONITORWALL_GET_SCENE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MONITORWALL_GET_SCENE.java
new file mode 100644
index 0000000..645826f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MONITORWALL_GET_SCENE.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_MonitorWallGetScene接口输入参数(获取电视墙场景)
+*/
+public class NET_IN_MONITORWALL_GET_SCENE extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+ /**
+ * 电视墙序号
+ */
+ public int nMonitorWallID;
+
+ public NET_IN_MONITORWALL_GET_SCENE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MONITORWALL_REMOVE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MONITORWALL_REMOVE.java
new file mode 100644
index 0000000..c213b92
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MONITORWALL_REMOVE.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_OperateMonitorWall接口输入参数=>NET_MONITORWALL_OPERATE_REMOVE
+*/
+public class NET_IN_MONITORWALL_REMOVE extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+ /**
+ * 要删除的电视墙数量
+ */
+ public int nMonitorWallNum;
+ /**
+ * 电视墙名称
+ */
+ public BYTE_ARRAY_128[] szNames = new BYTE_ARRAY_128[32];
+
+ public NET_IN_MONITORWALL_REMOVE() {
+ this.dwSize = this.size();
+ for(int i = 0; i < szNames.length; i++){
+ szNames[i] = new BYTE_ARRAY_128();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MONITORWALL_SET_COLL_SCHD.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MONITORWALL_SET_COLL_SCHD.java
new file mode 100644
index 0000000..46232df
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MONITORWALL_SET_COLL_SCHD.java
@@ -0,0 +1,38 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+import static com.netsdk.lib.constant.SDKStructureFieldLenth.NET_MAX_COLLECTION_NUM;
+
+/**
+ * 设置预案时间表 入参 {@link NetSDKLib#CLIENT_OperateMonitorWall}
+ *
+ * @author : 47040
+ * @since : Created in 2020/10/19 10:34
+ */
+public class NET_IN_MONITORWALL_SET_COLL_SCHD extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 预案数
+ */
+ public int nCollectionNum;
+ /**
+ * 预案时间表
+ */
+ public MONITORWALL_COLLECTION_SCHEDULE[] stuCollShedule = new MONITORWALL_COLLECTION_SCHEDULE[NET_MAX_COLLECTION_NUM];
+ /**
+ * 电视墙ID
+ */
+ public int nMonitorWallID;
+
+ public NET_IN_MONITORWALL_SET_COLL_SCHD() {
+ dwSize = this.size();
+ for (int i = 0; i < stuCollShedule.length; i++) {
+ stuCollShedule[i] = new MONITORWALL_COLLECTION_SCHEDULE();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MONITORWALL_SET_ENABLE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MONITORWALL_SET_ENABLE.java
new file mode 100644
index 0000000..36a0bb9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MONITORWALL_SET_ENABLE.java
@@ -0,0 +1,38 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.NET_MONITORWALL_OPERATE_TYPE;
+
+import static com.netsdk.lib.NetSDKLib.NET_MAX_MONITORWALL_NUM;
+
+/**
+ * 电视墙设置使能 入参
+ * 对应出参 {@link NET_OUT_MONITORWALL_SET_ENABLE}
+ * 对应枚举 {@link NET_MONITORWALL_OPERATE_TYPE#NET_MONITORWALL_OPERATE_SET_ENABLE}
+ * 对应接口 {@link NetSDKLib#CLIENT_OperateMonitorWall}
+ *
+ * @author : 47040
+ * @since : Created in 2020/10/19 11:25
+ */
+public class NET_IN_MONITORWALL_SET_ENABLE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 要设置的电视墙数量
+ */
+ public int nMonitorWallNum;
+ /**
+ * 电视墙使能
+ */
+ public NET_MONITORWALL_ENABLE_INFO[] stuEnable = new NET_MONITORWALL_ENABLE_INFO[NET_MAX_MONITORWALL_NUM];
+
+ public NET_IN_MONITORWALL_SET_ENABLE() {
+ dwSize = this.size();
+ for (int i = 0; i < stuEnable.length; i++) {
+ stuEnable[i] = new NET_MONITORWALL_ENABLE_INFO();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MONITORWALL_SET_SCENE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MONITORWALL_SET_SCENE.java
new file mode 100644
index 0000000..2836335
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MONITORWALL_SET_SCENE.java
@@ -0,0 +1,22 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_MonitorWallSetScene接口输入参数(设置电视墙场景)
+*/
+public class NET_IN_MONITORWALL_SET_SCENE extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+ /**
+ * 电视墙序号
+ */
+ public int nMonitorWallID;
+ /**
+ * 电视墙场景,参见结构体定义 {@link com.netsdk.lib.structure.NET_MONITORWALL_SCENE}
+ */
+ public NET_MONITORWALL_SCENE stuScene = new NET_MONITORWALL_SCENE();
+
+ public NET_IN_MONITORWALL_SET_SCENE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MOVE_DIRECTLY_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MOVE_DIRECTLY_INFO.java
new file mode 100644
index 0000000..ba0b6a3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MOVE_DIRECTLY_INFO.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @description 云台三维定位, 对应NET_EXTPTZ_MOVE_DIRECTLY枚举
+ * @origin autoTool
+ * @date 2023/03/07 16:38:49
+ */
+public class NET_IN_MOVE_DIRECTLY_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 屏幕坐标
+ */
+ public NetSDKLib.PTZ_SPEED_UNIT stuScreen = new NetSDKLib.PTZ_SPEED_UNIT();
+ /**
+ * 云台运行速度
+ */
+ public NetSDKLib.PTZ_SPEED_UNIT stuSpeed = new NetSDKLib.PTZ_SPEED_UNIT();
+
+ public NET_IN_MOVE_DIRECTLY_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MSGROUP_CLOSE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MSGROUP_CLOSE_INFO.java
new file mode 100644
index 0000000..216e908
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MSGROUP_CLOSE_INFO.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 关闭主从式跟踪器实例入参
+ * @date 2022/09/14 14:04:15
+ */
+public class NET_IN_MSGROUP_CLOSE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 主从跟踪组句柄
+ */
+ public int dwToken;
+
+ public NET_IN_MSGROUP_CLOSE_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MSGROUP_LOCATE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MSGROUP_LOCATE_INFO.java
new file mode 100644
index 0000000..2ed5de8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MSGROUP_LOCATE_INFO.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 联动主从跟踪组入参
+ * @date 2022/09/14 13:55:52
+ */
+public class NET_IN_MSGROUP_LOCATE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 主从跟踪组句柄
+ */
+ public int dwToken;
+ /**
+ * 主机坐标
+ */
+ public NetSDKLib.DH_POINT stuPoint = new NetSDKLib.DH_POINT();
+ /**
+ * 鱼眼圆心坐标与半径, 依次为[横坐标, 纵坐标, 半径]
+ */
+ public short[] snMasterInfo = new short[3];
+
+ public NET_IN_MSGROUP_LOCATE_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MSGROUP_OPEN_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MSGROUP_OPEN_INFO.java
new file mode 100644
index 0000000..8630fb3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MSGROUP_OPEN_INFO.java
@@ -0,0 +1,36 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 打开主从跟踪组入参
+ * @date 2022/09/14 13:52:40
+ */
+public class NET_IN_MSGROUP_OPEN_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大
+ */
+ public int dwSize;
+ /**
+ * 设备组号
+ */
+ public int nGroupID;
+ /**
+ * 从机序号
+ */
+ public int nSlaveID;
+ /**
+ * 对应主从组的主机序号, 例如三枪一球,则该字段取值0、1和2
+ */
+ public int nMasterID;
+ /**
+ * 本地通道号,对应本地视频通道号,从0开始。(老设备及前端设备不支持多通道,设置为0)
+ */
+ public int nChannel;
+
+ public NET_IN_MSGROUP_OPEN_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MSGROUP_RECTLOCATE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MSGROUP_RECTLOCATE_INFO.java
new file mode 100644
index 0000000..2ba1138
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MSGROUP_RECTLOCATE_INFO.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 主动跟踪主操作命令 EM_MSGROUP_OPERATE_RECTLOCATE 入参
+ * @date 2022/09/14 14:06:45
+ */
+public class NET_IN_MSGROUP_RECTLOCATE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 主从跟踪组句柄, 从 EM_MSGROUP_OPERATE_OPEN 操作获取
+ */
+ public int dwToken;
+ /**
+ * 选定的矩形框坐标
+ */
+ public NetSDKLib.NET_RECT stuRect = new NetSDKLib.NET_RECT();
+ /**
+ * 框选的方向, 0-从左上到右下, 表示放大; 1-从右下到左上,表示缩小
+ */
+ public int nRectDirection;
+
+ public NET_IN_MSGROUP_RECTLOCATE_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MSGROUP_SLAVE_POSITION_TO_MASTER_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MSGROUP_SLAVE_POSITION_TO_MASTER_INFO.java
new file mode 100644
index 0000000..f31669e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MSGROUP_SLAVE_POSITION_TO_MASTER_INFO.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description EM_MSGROUP_OPERATE_SLAVE_POSITION_TO_MASTER 入参
+ * @date 2022/09/14 14:09:08
+ */
+public class NET_IN_MSGROUP_SLAVE_POSITION_TO_MASTER_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 主从跟踪组句柄, 从 EM_MSGROUP_OPERATE_OPEN 操作获取
+ */
+ public int dwToken;
+ /**
+ * 从机PTZ位置,PT为真实值扩大10倍表示,Z为真实倍率扩大10倍表示
+ */
+ public int[] nPTZ = new int[3];
+ /**
+ * 物体在从机视频上的位置, 8192坐标系
+ */
+ public NetSDKLib.NET_RECT stuRect = new NetSDKLib.NET_RECT();
+
+ public NET_IN_MSGROUP_SLAVE_POSITION_TO_MASTER_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MSGROUP_TRACK_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MSGROUP_TRACK_INFO.java
new file mode 100644
index 0000000..73bb9a2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MSGROUP_TRACK_INFO.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 手动选定目标跟踪入参
+ * @date 2022/09/14 14:01:47
+ */
+public class NET_IN_MSGROUP_TRACK_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 主从跟踪组句柄
+ */
+ public int dwToken;
+ /**
+ * 算法方案类型
+ */
+ public byte[] szClass = new byte[16];
+ /**
+ * 算法目标ID
+ */
+ public int dwObjectID;
+
+ public NET_IN_MSGROUP_TRACK_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MULTIFACE_DETECT_STATE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MULTIFACE_DETECT_STATE.java
new file mode 100644
index 0000000..9b5772e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MULTIFACE_DETECT_STATE.java
@@ -0,0 +1,46 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 260611
+ * @description CLIENT_AttachDetectMultiFaceState 接口输入参数
+ * @date 2022/11/21 17:53:13
+ */
+public class NET_IN_MULTIFACE_DETECT_STATE extends NetSDKLib.SdkStructure {
+ /**
+ * 此结构体大小
+ */
+ public int dwSize;
+ /**
+ * 用于字节对齐
+ */
+ public byte[] bReserved = new byte[4];
+ /**
+ * 回调函数
+ */
+ public NetSDKLib.fMultiFaceDetectState cbMultiFaceDetectState;
+ /**
+ * 用户数据
+ */
+ public Pointer dwUser;
+ /**
+ * 回调函数扩展(推荐使用)
+ */
+ public NetSDKLib.fMultiFaceDetectStateEx cbMultiFaceDetectStateEx;
+ /**
+ * 查询令牌
+ */
+ public int[] nTokens = new int[10];
+ /**
+ * 查询令牌个数, 若为0,则默认订阅token为0的检测, 若为-1表示订阅全部token
+ */
+ public int nTokensNum;
+
+ public NET_IN_MULTIFACE_DETECT_STATE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MULTI_APPEND_TO_VEHICLE_REG_DB.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MULTI_APPEND_TO_VEHICLE_REG_DB.java
new file mode 100644
index 0000000..af9187c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MULTI_APPEND_TO_VEHICLE_REG_DB.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description CLIENT_MultiAppendToVehicleRegisterDB 接口输入参数
+ * @date 2021/8/17 14:49
+ */
+public class NET_IN_MULTI_APPEND_TO_VEHICLE_REG_DB extends NetSDKLib.SdkStructure {
+ public int dwSize; // 结构体大小
+ public int nVehicleNum; // 车辆个数
+ //public NetSDKLib.NET_VEHICLE_INFO[] stuVehicleInfo= (NetSDKLib.NET_VEHICLE_INFO[])new NetSDKLib.NET_VEHICLE_INFO().toArray(1000);// 车辆信息
+ public Pointer stuVehicleInfo; //sizeof(NET_VEHICLE_INFO)*nVehicleNum
+ public int bReplace; // 遇到相同记录是否覆盖, TRUE覆盖, FALSE跳过
+
+ public NET_IN_MULTI_APPEND_TO_VEHICLE_REG_DB(){
+ this.dwSize=this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_MULTI_APPEND_TO_WORKSUIT_GROUP.java b/src/main/java/com/netsdk/lib/structure/NET_IN_MULTI_APPEND_TO_WORKSUIT_GROUP.java
new file mode 100644
index 0000000..fb63101
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_MULTI_APPEND_TO_WORKSUIT_GROUP.java
@@ -0,0 +1,45 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 251823
+ * @description CLIENT_MultiAppendToWorkSuitCompareGroup 接口输入参数
+ * @date 2022/10/08 19:49:53
+ */
+public class NET_IN_MULTI_APPEND_TO_WORKSUIT_GROUP extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 工装合规样本个数, 由用户指定大小
+ */
+ public int nWorkSuitSampleNum;
+ /**
+ * 工装合规样本信息, 内存由用户申请, 申请大小为nWorkSuitSampleNum * sizeof(NET_WORKSUIT_SAMPLE_INFO)
+ */
+ public Pointer pstWorkSuitSampleInfo;
+ /**
+ * 工装合规导入标识信息
+ */
+ public NET_WORKSUIT_APPEND_IDENTI_INFO stuAppendIdentiInfo = new NET_WORKSUIT_APPEND_IDENTI_INFO();
+ /**
+ * 工装合规导入图片缓冲区, 用于存放需要导入的图片数据, 内存由用户申请
+ */
+ public Pointer pszImageBuffer;
+ /**
+ * 图片缓冲区大小
+ */
+ public int nImageBufLen;
+ /**
+ * 字节对齐
+ */
+ public byte[] szReserved = new byte[4];
+
+ public NET_IN_MULTI_APPEND_TO_WORKSUIT_GROUP() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_NAS_DIRECTORY_GET_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_NAS_DIRECTORY_GET_INFO.java
new file mode 100644
index 0000000..7d7d0ab
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_NAS_DIRECTORY_GET_INFO.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_NASDirectoryGetInfo接口入参
+* @date 2022/09/22 17:26:59
+*/
+public class NET_IN_NAS_DIRECTORY_GET_INFO extends NetSDKLib.SdkStructure {
+/**
+此结构体大小,必须赋值
+*/
+ public int dwSize;
+/**
+ * 共享文件夹名称, 用于创建设备组件实例, 必须填写
+*/
+ public byte[] szName = new byte[128];
+
+public NET_IN_NAS_DIRECTORY_GET_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_NETAPP_GET_DIAL_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_NETAPP_GET_DIAL_INFO.java
new file mode 100644
index 0000000..73f4ca7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_NETAPP_GET_DIAL_INFO.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * EM_PRC_NETAPP_TYPE_GET_DIAL_INFO 入参
+*/
+public class NET_IN_NETAPP_GET_DIAL_INFO extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+ /**
+ * 网卡名称,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_DIAL_INTERFACE}
+ */
+ public int emName;
+
+ public NET_IN_NETAPP_GET_DIAL_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_NETAPP_GET_MOBILE_INTERFACE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_NETAPP_GET_MOBILE_INTERFACE.java
new file mode 100644
index 0000000..4e7b871
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_NETAPP_GET_MOBILE_INTERFACE.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description EM_PRC_NETAPP_TYPE_GET_MOBILE_INTERFACE 入参
+ * @date 2021/9/17
+ */
+public class NET_IN_NETAPP_GET_MOBILE_INTERFACE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_IN_NETAPP_GET_MOBILE_INTERFACE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_NETAPP_GET_MOBILE_RSSI.java b/src/main/java/com/netsdk/lib/structure/NET_IN_NETAPP_GET_MOBILE_RSSI.java
new file mode 100644
index 0000000..994e525
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_NETAPP_GET_MOBILE_RSSI.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * EM_RPC_NETAPP_TYPE_GET_MOBILE_RSSI 入参
+*/
+public class NET_IN_NETAPP_GET_MOBILE_RSSI extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+ /**
+ * 无线模块名称,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_WIRELESS_MODE}
+ */
+ public int emName;
+
+ public NET_IN_NETAPP_GET_MOBILE_RSSI() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_NETAPP_GET_NET_RESOURCE_STAT.java b/src/main/java/com/netsdk/lib/structure/NET_IN_NETAPP_GET_NET_RESOURCE_STAT.java
new file mode 100644
index 0000000..68febad
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_NETAPP_GET_NET_RESOURCE_STAT.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * EM_RPC_NETAPP_TYPE_GET_NET_RESOURCE_STAT 入参
+*/
+public class NET_IN_NETAPP_GET_NET_RESOURCE_STAT extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+
+ public NET_IN_NETAPP_GET_NET_RESOURCE_STAT() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_NETAPP_LINK_STATUS.java b/src/main/java/com/netsdk/lib/structure/NET_IN_NETAPP_LINK_STATUS.java
new file mode 100644
index 0000000..9b8f269
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_NETAPP_LINK_STATUS.java
@@ -0,0 +1,23 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_QueryNetStat接口,查询类型为NET_APP_LINK_STAT 时的输入参数(获取物理链路状态)
+* @origin autoTool
+* @date 2023/06/19 09:28:37
+*/
+public class NET_IN_NETAPP_LINK_STATUS extends NetSDKLib.SdkStructure {
+ public int dwSize;
+/**
+网卡名
+*/
+ public byte[] szEthName = new byte[64];
+
+public NET_IN_NETAPP_LINK_STATUS(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_NETAPP_NET_DATA_STAT.java b/src/main/java/com/netsdk/lib/structure/NET_IN_NETAPP_NET_DATA_STAT.java
new file mode 100644
index 0000000..00d2994
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_NETAPP_NET_DATA_STAT.java
@@ -0,0 +1,23 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_QueryNetStat接口,查询类型为NET_APP_DATA_STAT时的输入参数(获取协议栈统计数据)
+* @origin autoTool
+* @date 2023/06/19 09:23:51
+*/
+public class NET_IN_NETAPP_NET_DATA_STAT extends NetSDKLib.SdkStructure {
+ public int dwSize;
+/**
+网卡名
+*/
+ public byte[] szEthName = new byte[64];
+
+public NET_IN_NETAPP_NET_DATA_STAT(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_NORMAL_RPCCALL_USING_JSON.java b/src/main/java/com/netsdk/lib/structure/NET_IN_NORMAL_RPCCALL_USING_JSON.java
new file mode 100644
index 0000000..e3669f6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_NORMAL_RPCCALL_USING_JSON.java
@@ -0,0 +1,38 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * CLIENT_NormalRpcCallUsingJson 接口输入参数
+*/
+public class NET_IN_NORMAL_RPCCALL_USING_JSON extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 接口枚举,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_SUPPORT_RPC_TYPE}
+ */
+ public int emType;
+ /**
+ * 参数类型, 0:结构体 1:json
+ */
+ public int nParamType;
+ /**
+ * 入参指针,nParamType为0时使用,由用户申请空间,对应关系见EM_SUPPORT_RPC_TYPE
+ */
+ public Pointer pstuInParams;
+ /**
+ * Json形式入参,nParamType为1时使用,由用户申请空间
+ */
+ public Pointer pstuInJson;
+ /**
+ * 数据缓冲区长度, 单位:字节
+ */
+ public int nstuInJsonLen;
+
+ public NET_IN_NORMAL_RPCCALL_USING_JSON() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_NUMBERSTATGROUPSUMMARY_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_NUMBERSTATGROUPSUMMARY_INFO.java
new file mode 100644
index 0000000..dab941e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_NUMBERSTATGROUPSUMMARY_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 分组人员统计--获取摘要信息 输入参数
+*/
+public class NET_IN_NUMBERSTATGROUPSUMMARY_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * GroupID
+ */
+ public byte[] szGroupID = new byte[64];
+
+ public NET_IN_NUMBERSTATGROUPSUMMARY_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_PACKAGE_STATISTICS_BYGRADE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_PACKAGE_STATISTICS_BYGRADE.java
new file mode 100644
index 0000000..6b2fea0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_PACKAGE_STATISTICS_BYGRADE.java
@@ -0,0 +1,19 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description 通过危险物等级统计的包裹信息
+ * @date 2021/7/1
+ */
+public class NET_IN_PACKAGE_STATISTICS_BYGRADE extends NetSDKLib.SdkStructure {
+ /**
+ * 危险物等级,参考枚举{@link com.netsdk.lib.NetSDKLib.EM_DANGER_GRADE_TYPE }
+ */
+ public int emGrade; // 危险物等级
+ public int nCount; // 危险物数量
+ public byte[] byReserved = new byte[64]; // 预留字段
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_PACKAGE_STATISTICS_BYTYPE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_PACKAGE_STATISTICS_BYTYPE.java
new file mode 100644
index 0000000..f29380e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_PACKAGE_STATISTICS_BYTYPE.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+/**
+ * @author 291189
+ * @version 1.0
+ * @description 按危险类型统计的信息
+ * @date 2021/7/1
+ */
+public class NET_IN_PACKAGE_STATISTICS_BYTYPE extends NetSDKLib.SdkStructure {
+ /**
+ * 危险物等级,参考枚举{@link com.netsdk.lib.NetSDKLib.EM_INSIDE_OBJECT_TYPE }
+ */
+ public int emType; // 危险物类型
+ public int nCount; // 危险物数量
+ public byte[] byReserved = new byte[64]; // 预留字段
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_PERSON_INFO_INPUT_RESULT.java b/src/main/java/com/netsdk/lib/structure/NET_IN_PERSON_INFO_INPUT_RESULT.java
new file mode 100644
index 0000000..6b7b123
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_PERSON_INFO_INPUT_RESULT.java
@@ -0,0 +1,42 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * CLIENT_SetPersonInfoInputResult 输入参数
+ */
+public class NET_IN_PERSON_INFO_INPUT_RESULT extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道ID
+ */
+ public int nChannelID;
+ /**
+ * 0 : 成功 1 : 人员信息不在人员库中
+ */
+ public int nResult;
+ /**
+ * 字节对齐
+ */
+ public byte[] byReserved = new byte[4];
+ /**
+ * 证件号码
+ */
+ public byte[] szCitizenID = new byte[64];
+ /**
+ * 设备展示颜色 com.netsdk.lib.enumeration.EM_SHOW_COLOR
+ */
+ public int emColor;
+ /**
+ * 0:实时采集的数据 1:离线采集的数据
+ */
+ public int nDataType;
+
+ public NET_IN_PERSON_INFO_INPUT_RESULT() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_PRE_UPLOAD_REMOTE_FILE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_PRE_UPLOAD_REMOTE_FILE.java
new file mode 100644
index 0000000..2ac1035
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_PRE_UPLOAD_REMOTE_FILE.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ *
+ * @author 47081
+ * @version 1.0
+ * @description CLIENT_PreUploadRemoteFile 接口输入参数(设置文件长度)
+ * @date 2020/6/10
+ */
+public class NET_IN_PRE_UPLOAD_REMOTE_FILE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 源文件路径
+ */
+ public String pszFileSrc;
+ /**
+ * 保存在设备端的文件路径
+ */
+ public String pszFileDst;
+
+ public NET_IN_PRE_UPLOAD_REMOTE_FILE() {
+ this.dwSize=this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_PTZBASE_GET_CENTER_GPS.java b/src/main/java/com/netsdk/lib/structure/NET_IN_PTZBASE_GET_CENTER_GPS.java
new file mode 100644
index 0000000..6f77d89
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_PTZBASE_GET_CENTER_GPS.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_QueryDevInfo NET_QUERY_PTZBASE_GET_CENTER_GPS 类型接口输入参数
+* @date 2022/05/18 10:44:10
+*/
+public class NET_IN_PTZBASE_GET_CENTER_GPS extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+/**
+通道号从0开始
+*/
+ public int nChannel;
+/**
+计算GPS信息标志位,为TRUE时使用dPosition中的位置信息来进行计算,为FALSE时使用当前云台PT位置信息计算GPS
+*/
+ public int bPosEnable;
+/**
+云台方向信息,第一个元素为水平角度,第二个元素为垂直角度
+*/
+ public double[] dPosition = new double[2];
+
+public NET_IN_PTZBASE_GET_CENTER_GPS(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_PTZBASE_GET_HFOV_VALUE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_PTZBASE_GET_HFOV_VALUE.java
new file mode 100644
index 0000000..3145d7f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_PTZBASE_GET_HFOV_VALUE.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_QueryDevInfo NET_QUERY_PTZBASE_GET_HFOV_VALUE 类型接口输入参数
+* @date 2022/05/18 10:21:59
+*/
+public class NET_IN_PTZBASE_GET_HFOV_VALUE extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+/**
+通道号从0开始
+*/
+ public int nChannel;
+/**
+镜头变倍值,归一化到0~1
+*/
+ public float fZoom;
+
+public NET_IN_PTZBASE_GET_HFOV_VALUE(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_PTZBASE_GET_VFOV_VALUE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_PTZBASE_GET_VFOV_VALUE.java
new file mode 100644
index 0000000..d31ecb9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_PTZBASE_GET_VFOV_VALUE.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_QueryDevInfo NET_QUERY_PTZBASE_GET_VFOV_VALUE 类型接口输入参数
+* @date 2022/05/18 10:38:04
+*/
+public class NET_IN_PTZBASE_GET_VFOV_VALUE extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+/**
+通道号从0开始
+*/
+ public int nChannel;
+/**
+镜头变倍值,归一化到0~1
+*/
+ public float fZoom;
+
+public NET_IN_PTZBASE_GET_VFOV_VALUE(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_PTZBASE_MOVEABSOLUTELY_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_PTZBASE_MOVEABSOLUTELY_INFO.java
new file mode 100644
index 0000000..6565fcc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_PTZBASE_MOVEABSOLUTELY_INFO.java
@@ -0,0 +1,45 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @description:
+ * @author: 251589
+ * @time: 2020/11/17 19:41
+ */
+public class NET_IN_PTZBASE_MOVEABSOLUTELY_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 1 表示显示倍率; 2 保留,内部用; 3 表示映射倍率值; 如为 0 则默认映射倍率值
+ */
+ public int nZoomFlag;
+ /**
+ * 云台绝对移动位置云台绝对定位参数,扩大10倍
+ * 云台水平坐标(0~3600)
+ * 云台垂直坐标(-1800~1800)
+ * 倍率值,范围:nZoomFlag为1时(0~最大显示倍率*10),nZoomFlag为3时(0~16384)
+ */
+ public NetSDKLib.NET_PTZSPACE_UNNORMALIZED stuPosition = new NetSDKLib.NET_PTZSPACE_UNNORMALIZED();
+ /**
+ * 若无speed则表示默认速度运动 P,T,以0.01度/秒为单位,扩大100倍显示,
+ * 范围与PtzSpeedLevel中的范围保持一致[0,100000],
+ * 水平和垂直分别最大不会超过PtzSpeedLevel中最大档位水平和垂直的最大值,zoom变倍速度为0~100。
+ */
+ public NetSDKLib.NET_PTZSPACE_UNNORMALIZED stuSpeed = new NetSDKLib.NET_PTZSPACE_UNNORMALIZED();
+ /**
+ * 编码
+ */
+ public int nRegionCode;
+ /**
+ * 字节对齐
+ */
+ public byte[] byReserved = new byte[444];
+
+ public NET_IN_PTZBASE_MOVEABSOLUTELY_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_PTZBASE_SET_FOCUS_MAP_VALUE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_PTZBASE_SET_FOCUS_MAP_VALUE_INFO.java
new file mode 100644
index 0000000..90c6399
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_PTZBASE_SET_FOCUS_MAP_VALUE_INFO.java
@@ -0,0 +1,27 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 设置当前位置聚焦值
+ * 对应接口 {@link NetSDKLib#CLIENT_DHPTZControlEx2}
+ * 对应枚举 {@link NetSDKLib.NET_EXTPTZ_ControlType#NET_EXTPTZ_BASE_SET_FOCUS_MAP_VALUE}
+ *
+ * @author : 47040
+ * @since : Created in 2021/3/26 17:04
+ */
+public class NET_IN_PTZBASE_SET_FOCUS_MAP_VALUE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 聚焦映射值, 取值范围 [0, 28672]
+ */
+ public int nfocusMapValue;
+
+ public NET_IN_PTZBASE_SET_FOCUS_MAP_VALUE_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_PTZ_ADJUST_IRIS.java b/src/main/java/com/netsdk/lib/structure/NET_IN_PTZ_ADJUST_IRIS.java
new file mode 100644
index 0000000..f22428b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_PTZ_ADJUST_IRIS.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_PTZAdjustIris 接口输入参数
+*/
+public class NET_IN_PTZ_ADJUST_IRIS extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道号, 范围 0~设备通道数
+ */
+ public int nChannel;
+ /**
+ * 相对变化, 归一化到-1~1
+ */
+ public float fChange;
+
+ public NET_IN_PTZ_ADJUST_IRIS() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_PTZ_CURRENT_FOV_VALUE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_PTZ_CURRENT_FOV_VALUE.java
new file mode 100644
index 0000000..f986ef3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_PTZ_CURRENT_FOV_VALUE.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_QueryDevInfo NET_QUERY_PTZ_CURRENT_FOV_VALUE 类型接口输入参数
+ * @date 2022/09/22 15:28:44
+ */
+public class NET_IN_PTZ_CURRENT_FOV_VALUE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+
+ public NET_IN_PTZ_CURRENT_FOV_VALUE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_PTZ_SET_ZOOM_VALUE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_PTZ_SET_ZOOM_VALUE.java
new file mode 100644
index 0000000..76120d6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_PTZ_SET_ZOOM_VALUE.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description CLIENT_PTZSetZoomValue 接口输入参数
+ * @origin autoTool
+ * @date 2023/10/16 14:11:21
+ */
+public class NET_IN_PTZ_SET_ZOOM_VALUE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道号, 范围 0~设备通道数
+ */
+ public int nChannel;
+ /**
+ * 变倍值,扩大10倍表示
+ */
+ public int nValue;
+
+ public NET_IN_PTZ_SET_ZOOM_VALUE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_PTZ_STATUS_PROC.java b/src/main/java/com/netsdk/lib/structure/NET_IN_PTZ_STATUS_PROC.java
new file mode 100644
index 0000000..fdef966
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_PTZ_STATUS_PROC.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.NetSDKLib.fPTZStatusProcCallBack;
+
+/**
+ * @author 251823
+ * @description 订阅云台元数据接口输入参数
+ * @date 2021/02/26
+ */
+public class NET_IN_PTZ_STATUS_PROC extends NetSDKLib.SdkStructure {
+ /**
+ * dwSize;
+ */
+ public int dwSize;
+ /**
+ * 云台通道
+ */
+ public int nChannel;
+ /**
+ * 状态回调函数
+ */
+ public fPTZStatusProcCallBack cbPTZStatusProc;
+ /**
+ * 用户数据
+ */
+ public long dwUser;
+
+ public NET_IN_PTZ_STATUS_PROC(){
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_PUSH_ANALYSE_PICTURE_FILE_BYRULE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_PUSH_ANALYSE_PICTURE_FILE_BYRULE.java
new file mode 100644
index 0000000..bfe0101
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_PUSH_ANALYSE_PICTURE_FILE_BYRULE.java
@@ -0,0 +1,43 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 291189
+ * @description CLIENT_PushAnalysePictureFileByRule 接口输入参数
+ * @date 2022/06/28 19:02:02
+ */
+public class NET_IN_PUSH_ANALYSE_PICTURE_FILE_BYRULE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 任务ID
+ */
+ public int nTaskID;
+ /**
+ * 推送图片信息,文件列表支持url路径和二进制数据两种方式,但是每次只能选择一种方式,即URL和Offset/Length应该是两者有且只有一个
+ * 用户自定义空间 NET_PUSH_PICTURE_BYRULE_INFO
+ */
+ public Pointer pstuPushPicByRuleInfos;
+ /**
+ * 推送图片数量,用户定义
+ */
+ public int nPicNum;
+ /**
+ * 数据缓冲区长度, 单位:字节
+ */
+ public int nBinBufLen;
+ /**
+ * 数据缓冲区, 由用户申请和释放,选择nOffset/nLength方式,需要传送图片数据
+ */
+ public Pointer pBinBuf;
+
+ public NET_IN_PUSH_ANALYSE_PICTURE_FILE_BYRULE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_QUERYNEXTLOG.java b/src/main/java/com/netsdk/lib/structure/NET_IN_QUERYNEXTLOG.java
new file mode 100644
index 0000000..272000a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_QUERYNEXTLOG.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_QueryNextLog 输入参数
+ * @date 2023/06/12 09:23:40
+ */
+public class NET_IN_QUERYNEXTLOG extends NetSDKLib.SdkStructure {
+ public int dwSize;
+ /**
+ * 需要查询的日志条数
+ */
+ public int nGetCount;
+
+ public NET_IN_QUERYNEXTLOG() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_COURSE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_COURSE.java
new file mode 100644
index 0000000..afe61a3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_COURSE.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 查询课程 入参 {@link NetSDKLib#CLIENT_QueryCourse}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/17 21:08
+ */
+public class NET_IN_QUERY_COURSE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 查询句柄号
+ */
+ public int nFindID;
+ /**
+ * 开始查询偏移
+ */
+ public int nOffset;
+ /**
+ * 需要查询的个数
+ */
+ public int nCount;
+
+ public NET_IN_QUERY_COURSE() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_COURSEMEDIA_FILE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_COURSEMEDIA_FILE.java
new file mode 100644
index 0000000..f4eabba
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_COURSEMEDIA_FILE.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 查询课程视频信息入参 {@link NetSDKLib#CLIENT_DoQueryCourseMediaFile}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 16:40
+ */
+public class NET_IN_QUERY_COURSEMEDIA_FILE extends NetSDKLib.SdkStructure {
+ /**
+ * 该结构体大小
+ */
+ public int dwSize;
+ /**
+ * 查询ID号
+ */
+ public int nfindID;
+ /**
+ * 开始查询偏移
+ */
+ public int nOffset;
+ /**
+ * 需要查询的个数
+ */
+ public int nCount;
+
+ public NET_IN_QUERY_COURSEMEDIA_FILE() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_COURSEMEDIA_FILECLOSE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_COURSEMEDIA_FILECLOSE.java
new file mode 100644
index 0000000..fc03bde
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_COURSEMEDIA_FILECLOSE.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 关闭课程视频查询入参 {@link NetSDKLib#CLIENT_CloseQueryCourseMediaFile}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 19:03
+ */
+public class NET_IN_QUERY_COURSEMEDIA_FILECLOSE extends NetSDKLib.SdkStructure {
+ /**
+ * dwSize
+ */
+ public int dwSize;
+ /**
+ * 查询ID号
+ */
+ public int nFindID;
+
+ public NET_IN_QUERY_COURSEMEDIA_FILECLOSE() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_COURSEMEDIA_FILEOPEN.java b/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_COURSEMEDIA_FILEOPEN.java
new file mode 100644
index 0000000..7960140
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_COURSEMEDIA_FILEOPEN.java
@@ -0,0 +1,45 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.EM_COURSE_LOCK_TYPE;
+import com.netsdk.lib.enumeration.EM_COURSE_RECORD_TYPE;
+
+import static com.netsdk.lib.NetSDKLib.NET_COMMON_STRING_128;
+
+/**
+ * 开始查询课程视频信息入参 {@link NetSDKLib#CLIENT_OpenQueryCourseMediaFile}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 16:24
+ */
+public class NET_IN_QUERY_COURSEMEDIA_FILEOPEN extends NetSDKLib.SdkStructure {
+ /**
+ * 该结构体大小
+ */
+ public int dwSize;
+ /**
+ * 查询开始时间
+ */
+ public NET_TIME stuStartTime;
+ /**
+ * 查询结束时间
+ */
+ public NET_TIME stuEndTime;
+ /**
+ * 查询关键字
+ */
+ public byte[] szKeyWord = new byte[NET_COMMON_STRING_128];
+ /**
+ * 查询课程锁定类型 {@link EM_COURSE_LOCK_TYPE}
+ */
+ public int emCourseLockType;
+ /**
+ * 查询课程录像类型 {@link EM_COURSE_RECORD_TYPE}
+ */
+ public int emCourseRecordType;
+
+ public NET_IN_QUERY_COURSEMEDIA_FILEOPEN() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_COURSE_CLOSE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_COURSE_CLOSE.java
new file mode 100644
index 0000000..f69d444
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_COURSE_CLOSE.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 结束查询课程 入参 {@link NetSDKLib#CLIENT_QueryCourseClose}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/17 21:27
+ */
+public class NET_IN_QUERY_COURSE_CLOSE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 课程数量
+ */
+ public int nFindID;
+
+ public NET_IN_QUERY_COURSE_CLOSE() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_COURSE_OPEN.java b/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_COURSE_OPEN.java
new file mode 100644
index 0000000..201c198
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_COURSE_OPEN.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 开始查询课程 入参 {@link NetSDKLib#CLIENT_QueryCourseOpen}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/17 20:47
+ */
+public class NET_IN_QUERY_COURSE_OPEN extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 查询开始时间
+ */
+ public NET_TIME stuStartTime;
+ /**
+ * 查询结束时间
+ */
+ public NET_TIME stuEndTime;
+
+ public NET_IN_QUERY_COURSE_OPEN() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_MEDIA_FILE_CLOSE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_MEDIA_FILE_CLOSE_INFO.java
new file mode 100644
index 0000000..ae6c3d0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_MEDIA_FILE_CLOSE_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_QueryMediaFileClose 接口输入参数
+*/
+public class NET_IN_QUERY_MEDIA_FILE_CLOSE_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 查询ID号
+ */
+ public int nFindID;
+
+ public NET_IN_QUERY_MEDIA_FILE_CLOSE_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_MEDIA_FILE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_MEDIA_FILE_INFO.java
new file mode 100644
index 0000000..9f9828c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_MEDIA_FILE_INFO.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_QueryMediaFile 接口输入参数
+*/
+public class NET_IN_QUERY_MEDIA_FILE_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 查询ID号
+ */
+ public int nFindID;
+ /**
+ * 开始查询偏移
+ */
+ public int nOffset;
+ /**
+ * 需要查询的个数
+ */
+ public int nCount;
+
+ public NET_IN_QUERY_MEDIA_FILE_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_MEDIA_FILE_OPEN_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_MEDIA_FILE_OPEN_INFO.java
new file mode 100644
index 0000000..4becd5b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_QUERY_MEDIA_FILE_OPEN_INFO.java
@@ -0,0 +1,57 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_QueryMediaFileOpen 接口输入参数
+*/
+public class NET_IN_QUERY_MEDIA_FILE_OPEN_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 文件类型,无字段表示查询全部类型,0表示无此字段,1-视频,2-音频,3-图片
+ */
+ public int nType;
+ /**
+ * 上传平台状态,无字段表示查询全部状态,0表示无此字段,1-未上传,2-已上传
+ */
+ public int nUpLoadState;
+ /**
+ * 文件记录案件类型,无字段表示查询全部案件类型,0表示无此字段,1-重点案件,2-普通案件
+ */
+ public int nCaseType;
+ /**
+ * 查询开始时间,格式为yyyy-mm-dd hh:mm:ss,24小时制
+ */
+ public byte[] szStartTime = new byte[64];
+ /**
+ * 查询结束时间,格式为yyyy-mm-dd hh:mm:ss,24小时制
+ */
+ public byte[] szEndTime = new byte[64];
+ /**
+ * 文件记录案件编号
+ */
+ public byte[] szCaseID = new byte[64];
+ /**
+ * 文件记录案件地点
+ */
+ public byte[] szCaseAddress = new byte[128];
+ /**
+ * 文件记录案件备注
+ */
+ public byte[] szCaseRemark = new byte[256];
+ /**
+ * 文件对应的执法记录仪序列号
+ */
+ public BYTE_ARRAY_64[] szDeviceID = new BYTE_ARRAY_64[32];
+ /**
+ * 文件对应的执法记录仪序列号个数
+ */
+ public int nDeviceIDNum;
+
+ public NET_IN_QUERY_MEDIA_FILE_OPEN_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_ALARMPOINTINFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_ALARMPOINTINFO.java
new file mode 100644
index 0000000..1de9ce4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_ALARMPOINTINFO.java
@@ -0,0 +1,35 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.NetSDKLib.fRadarAlarmPointInfoCallBack;
+import com.sun.jna.Pointer;
+
+/**
+ * 订阅雷达的报警点信息入参(对应接口 CLIENT_AttachRadarAlarmPointInfo)
+ *
+ * @author : 119178
+ * @since : Created in 2021/2/03 13:56
+ */
+public class NET_IN_RADAR_ALARMPOINTINFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 雷达报警点信息回调
+ */
+ public fRadarAlarmPointInfoCallBack cbAlarmPointInfo;
+ /**
+ * 用户数据
+ */
+ public Pointer dwUser;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+
+ public NET_IN_RADAR_ALARMPOINTINFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_CALCULATEREALSIZE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_CALCULATEREALSIZE.java
new file mode 100644
index 0000000..ac19cd0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_CALCULATEREALSIZE.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 计算图片对应的地图实际长度入参(对应 EM_RADAR_OPERATE_TYPE_CALCULATEREALSIZE)
+ * @date 2022/08/04 10:13:32
+ */
+public class NET_IN_RADAR_CALCULATEREALSIZE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+ /**
+ * 图片中线段的像素坐标
+ */
+ public NET_RADAR_PIXELLINE stuPixelLine = new NET_RADAR_PIXELLINE();
+ /**
+ * 图片中线段代表的实际长度,单位米
+ */
+ public double dDistance;
+
+ public NET_IN_RADAR_CALCULATEREALSIZE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_GETCAPS.java b/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_GETCAPS.java
new file mode 100644
index 0000000..21b7bb8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_GETCAPS.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 获取雷达能力入参(对应 EM_RADAR_OPERATE_TYPE_GETCAPS)
+ * @date 2022/08/04 10:13:31
+ */
+public class NET_IN_RADAR_GETCAPS extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+ /**
+ * 雷达ip
+ */
+ public byte[] szRadarIP = new byte[32];
+
+ public NET_IN_RADAR_GETCAPS() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_GETSTATUS.java b/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_GETSTATUS.java
new file mode 100644
index 0000000..7d8997c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_GETSTATUS.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 获取雷达状态入参(对应 EM_RADAR_OPERATE_TYPE_GETSTATUS)
+ * @date 2022/08/04 10:13:32
+ */
+public class NET_IN_RADAR_GETSTATUS extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+
+ public NET_IN_RADAR_GETSTATUS() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_GET_RFID_MODE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_GET_RFID_MODE.java
new file mode 100644
index 0000000..79eca2b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_GET_RFID_MODE.java
@@ -0,0 +1,22 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author : 260611
+ * @description : CLIENT_GetRadarRFIDMode接口入参
+ * @since : Created in 2022/02/11 10:22
+ */
+
+public class NET_IN_RADAR_GET_RFID_MODE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_IN_RADAR_GET_RFID_MODE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_MANUAL_TRACK.java b/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_MANUAL_TRACK.java
new file mode 100644
index 0000000..229a38e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_MANUAL_TRACK.java
@@ -0,0 +1,39 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description CLIENT_RadarManualTrack接口入参
+ * @date 2021/10/21 20:03
+ */
+public class NET_IN_RADAR_MANUAL_TRACK extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /** 需要跟踪的球机 */
+ public byte[] szSDIP = new byte[32];
+ /** 需要跟踪目标的轨迹号 */
+ public int nTrackID;
+ /** 跟踪时间,单位为s */
+ public int nTime;
+ /** 跟踪动作, 0:停止手动跟踪, 1:开始手动跟踪 */
+ public int nAction;
+ /** 经纬度坐标,用整型传输,扩大1000000倍,小数点后6位有效,数组0表示经度,数组1表示纬度 */
+ public int[] arrCoordinate = new int[2];
+ /** 手动跟踪的原因, bit0表示超速 bit1表示是否AIS匹配 bit2表示是否禁行 bit3表示是否逆行 (bit位置1表示需要手动跟踪,全0表示普通跟踪命令) */
+ public int nAlarmType;
+ /** 航速:要跟踪目标的速度,单位km/h 扩大10000 倍下发(精度0.0001) */
+ public int nSpeed;
+ /** 航向:正北方向为0° 顺时针为正 0-360°,扩大100倍下发 */
+ public int nAzimuth;
+ /** 通道号 */
+ public int nChannel;
+
+ public NET_IN_RADAR_MANUAL_TRACK() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_SETCALIBRATION.java b/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_SETCALIBRATION.java
new file mode 100644
index 0000000..a190857
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_SETCALIBRATION.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 雷球校准配置入参(对应 EM_RADAR_OPERATE_TYPE_SETCALIBRATION)
+ * @date 2022/08/04 10:13:32
+ */
+public class NET_IN_RADAR_SETCALIBRATION extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[4];
+ /**
+ * 图片中校准点的像素坐标
+ */
+ public NET_RADAR_PIXELPOINT stuPixelPoint = new NET_RADAR_PIXELPOINT();
+ /**
+ * 球机的安装高度,单位米
+ */
+ public double dInstallHeigt;
+
+ public NET_IN_RADAR_SETCALIBRATION() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_SET_RFID_MODE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_SET_RFID_MODE.java
new file mode 100644
index 0000000..c5fa3fe
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_SET_RFID_MODE.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author : 260611
+ * @description : CLIENT_SetRadarRFIDMode接口入参
+ * @since : Created in 2022/02/11 10:22
+ */
+
+public class NET_IN_RADAR_SET_RFID_MODE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * RFID规则模式,0:设备单独工作时使用,全部为有效卡;1:平台接入时使用,区分RFID卡片有效性
+ */
+ public int nMode;
+
+ public NET_IN_RADAR_SET_RFID_MODE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_STARTUPGRADE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_STARTUPGRADE.java
new file mode 100644
index 0000000..42ce1d6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_RADAR_STARTUPGRADE.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 雷达开始升级通知入参(对应 EM_RADAR_OPERATE_TYPE_STARTUPGRADE)
+ * @date 2022/08/04 10:13:31
+ */
+public class NET_IN_RADAR_STARTUPGRADE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_IN_RADAR_STARTUPGRADE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_RADIOMETRY_ATTACH_TEMPER.java b/src/main/java/com/netsdk/lib/structure/NET_IN_RADIOMETRY_ATTACH_TEMPER.java
new file mode 100644
index 0000000..c4d9060
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_RADIOMETRY_ATTACH_TEMPER.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * CLIENT_RadiometryAttachTemper 入参
+*/
+public class NET_IN_RADIOMETRY_ATTACH_TEMPER extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+ /**
+ * 状态回调函数指针,参见回调函数定义 {@link com.netsdk.lib.NetSDKLib.fRadiometryAttachTemperCB}
+ */
+ public NetSDKLib.fRadiometryAttachTemperCB cbNotify;
+ /**
+ * 用户数据
+ */
+ public Pointer dwUser;
+
+ public NET_IN_RADIOMETRY_ATTACH_TEMPER() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_RADIOMETRY_CURRENTHOTCOLDSPOT_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_RADIOMETRY_CURRENTHOTCOLDSPOT_INFO.java
new file mode 100644
index 0000000..55f40ff
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_RADIOMETRY_CURRENTHOTCOLDSPOT_INFO.java
@@ -0,0 +1,23 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @description CLIENT_GetRadiometryCurrentHotColdSpotInfo 入参
+ * @origin autoTool
+ * @date 2023/08/07 13:51:18
+ */
+public class NET_IN_RADIOMETRY_CURRENTHOTCOLDSPOT_INFO extends NetSDKLib.SdkStructure {
+ public int dwSize;
+ /**
+ * 通道号:只有热成像通道有效
+ */
+ public int nChannel;
+
+ public NET_IN_RADIOMETRY_CURRENTHOTCOLDSPOT_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_RADIOMETRY_GET_CUR_TEMPER_ALL_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_RADIOMETRY_GET_CUR_TEMPER_ALL_INFO.java
new file mode 100644
index 0000000..de1d963
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_RADIOMETRY_GET_CUR_TEMPER_ALL_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_RadiometryGetCurTemperAll 接口入参
+*/
+public class NET_IN_RADIOMETRY_GET_CUR_TEMPER_ALL_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 通道号,热成像通道有效
+ */
+ public int nChannel;
+
+ public NET_IN_RADIOMETRY_GET_CUR_TEMPER_ALL_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_RADIOMETRY_GET_TEMPER_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_RADIOMETRY_GET_TEMPER_INFO.java
new file mode 100644
index 0000000..45ddc11
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_RADIOMETRY_GET_TEMPER_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_RadiometryGetTemper 接口入参
+*/
+public class NET_IN_RADIOMETRY_GET_TEMPER_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 获取测温项温度的条件,参见结构体定义 NET_RADIOMETRY_GET_TEMPER_CONDITION_INFO
+ */
+ public NET_RADIOMETRY_GET_TEMPER_CONDITION_INFO stCondition = new NET_RADIOMETRY_GET_TEMPER_CONDITION_INFO();
+
+ public NET_IN_RADIOMETRY_GET_TEMPER_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_RADIOMETRY_RANDOM_REGION_TEMPER.java b/src/main/java/com/netsdk/lib/structure/NET_IN_RADIOMETRY_RANDOM_REGION_TEMPER.java
new file mode 100644
index 0000000..ba07fd9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_RADIOMETRY_RANDOM_REGION_TEMPER.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_RadiometryGetRandomRegionTemper 入参
+*/
+public class NET_IN_RADIOMETRY_RANDOM_REGION_TEMPER extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+ /**
+ * 有效坐标个数
+ */
+ public int nPointNum;
+ /**
+ * 测温区域的坐标, 8192坐标系,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_POINT}
+ */
+ public NetSDKLib.NET_POINT[] stuPolygon = new NetSDKLib.NET_POINT[8];
+
+ public NET_IN_RADIOMETRY_RANDOM_REGION_TEMPER() {
+ this.dwSize = this.size();
+ for(int i = 0; i < stuPolygon.length; i++){
+ stuPolygon[i] = new NetSDKLib.NET_POINT();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_REBOOT_DEVICE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_REBOOT_DEVICE.java
new file mode 100644
index 0000000..28f08d7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_REBOOT_DEVICE.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_RebootDevice 接口输入参数
+*/
+public class NET_IN_REBOOT_DEVICE extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_IN_REBOOT_DEVICE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_RECORDMANAGER_ATTACH_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_RECORDMANAGER_ATTACH_INFO.java
new file mode 100644
index 0000000..e9c9d35
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_RECORDMANAGER_ATTACH_INFO.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * CLIENT_AttachRecordManagerState 入参
+*/
+public class NET_IN_RECORDMANAGER_ATTACH_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 回调函数,参见回调函数定义 {@link com.netsdk.lib.NetSDKLib.fRecordManagerStateCallBack}
+ */
+ public NetSDKLib.fRecordManagerStateCallBack cbNotify;
+ /**
+ * 用户信息
+ */
+ public Pointer dwUser;
+
+ public NET_IN_RECORDMANAGER_ATTACH_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_REFUSE_SLEEP_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_REFUSE_SLEEP_INFO.java
new file mode 100644
index 0000000..60688a7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_REFUSE_SLEEP_INFO.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_RefuseLowPowerDevSleep 接口输入参数
+*/
+public class NET_IN_REFUSE_SLEEP_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_IN_REFUSE_SLEEP_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_REMOTE_LIST.java b/src/main/java/com/netsdk/lib/structure/NET_IN_REMOTE_LIST.java
new file mode 100644
index 0000000..ced5bd7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_REMOTE_LIST.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_RemoteList 接口输入参数
+*/
+public class NET_IN_REMOTE_LIST extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+ /**
+ * 指定路径
+ */
+ public byte[] szPath = new byte[256];
+
+ public NET_IN_REMOTE_LIST() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_REMOTE_SLEEP.java b/src/main/java/com/netsdk/lib/structure/NET_IN_REMOTE_SLEEP.java
new file mode 100644
index 0000000..2b89364
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_REMOTE_SLEEP.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description CLIENT_RemoteSleep 输入接口参数
+ * @date 2022/3/24 13:59
+ */
+public class NET_IN_REMOTE_SLEEP extends NetSDKLib.SdkStructure {
+ public int dwSize; // 结构体大小
+
+ public NET_IN_REMOTE_SLEEP(){
+ this.dwSize=this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_REMOTE_SPEAK_CAPS.java b/src/main/java/com/netsdk/lib/structure/NET_IN_REMOTE_SPEAK_CAPS.java
new file mode 100644
index 0000000..93aa91c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_REMOTE_SPEAK_CAPS.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetDevCaps NET_REMOTE_SPEAK_CAPS 入参
+*/
+public class NET_IN_REMOTE_SPEAK_CAPS extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道数
+ */
+ public int nChannelNum;
+ /**
+ * 通道列表
+ */
+ public int[] nChannels = new int[128];
+
+ public NET_IN_REMOTE_SPEAK_CAPS() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_REMOVE_APP.java b/src/main/java/com/netsdk/lib/structure/NET_IN_REMOVE_APP.java
new file mode 100644
index 0000000..839979a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_REMOVE_APP.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_RemoveApp 接口输入参数
+*/
+public class NET_IN_REMOVE_APP extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * APP的ID
+ */
+ public int nAppID;
+ /**
+ * APP的名称
+ */
+ public byte[] szAppName = new byte[128];
+
+ public NET_IN_REMOVE_APP() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_REMOVE_SOFT_TOUR_POINT_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_REMOVE_SOFT_TOUR_POINT_INFO.java
new file mode 100644
index 0000000..7ed0181
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_REMOVE_SOFT_TOUR_POINT_INFO.java
@@ -0,0 +1,38 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 421657
+ * @description 接口 CLIENT_RemoveTourPoint 的输入参数
+ * @origin autoTool
+ * @date 2023/10/16 19:45:59
+ */
+public class NET_IN_REMOVE_SOFT_TOUR_POINT_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * / 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * /云台通道号
+ */
+ public int nChannel;
+ /**
+ * / 巡航线路编号
+ */
+ public int nIndex;
+ /**
+ * / 线路上点的序号,从0开始, 如果为 -1, 追加到线路上最后位置,否则为指定序号
+ */
+ public int nPoint;
+ /**
+ * / 预置点编号,编号从1开始
+ */
+ public int nPresetIndex;
+
+ public NET_IN_REMOVE_SOFT_TOUR_POINT_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_RESET_PIC_MAP.java b/src/main/java/com/netsdk/lib/structure/NET_IN_RESET_PIC_MAP.java
new file mode 100644
index 0000000..ce98176
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_RESET_PIC_MAP.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_ResetPicMap 接口输入参数
+*/
+public class NET_IN_RESET_PIC_MAP extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_IN_RESET_PIC_MAP() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_RESET_SYSTEM.java b/src/main/java/com/netsdk/lib/structure/NET_IN_RESET_SYSTEM.java
new file mode 100644
index 0000000..5271b2c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_RESET_SYSTEM.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 恢复出厂设置入参
+*/
+public class NET_IN_RESET_SYSTEM extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+
+ public NET_IN_RESET_SYSTEM() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SCADA_GET_ATTRIBUTE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SCADA_GET_ATTRIBUTE_INFO.java
new file mode 100644
index 0000000..4a074ae
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SCADA_GET_ATTRIBUTE_INFO.java
@@ -0,0 +1,19 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+public class NET_IN_SCADA_GET_ATTRIBUTE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 获取条件
+ */
+ public NET_GET_CONDITION_INFO stuCondition;
+
+ public NET_IN_SCADA_GET_ATTRIBUTE_INFO(){
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SCENICSPOT_GETCAPS_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SCENICSPOT_GETCAPS_INFO.java
new file mode 100644
index 0000000..b22a259
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SCENICSPOT_GETCAPS_INFO.java
@@ -0,0 +1,27 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 获取景物点支持的能力
+ * 出参(CLIENT_ScenicSpotGetCaps 输入参数)
+ * 接口 {@link NetSDKLib#CLIENT_ScenicSpotGetCaps}
+ *
+ * @author : 47040
+ * @since : Created in 2020/10/26 16:29
+ */
+public class NET_IN_SCENICSPOT_GETCAPS_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+
+ public NET_IN_SCENICSPOT_GETCAPS_INFO() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SCENICSPOT_GETPOINTINFOS_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SCENICSPOT_GETPOINTINFOS_INFO.java
new file mode 100644
index 0000000..1c6c7a9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SCENICSPOT_GETPOINTINFOS_INFO.java
@@ -0,0 +1,35 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 分页获取 信息标注信息列表 入参
+ * 出参 {@link NET_OUT_SCENICSPOT_GETPOINTINFOS_INFO}
+ * 接口 {@link NetSDKLib#CLIENT_ScenicSpotGetPointInfos}
+ *
+ * @author : 47040
+ * @since : Created in 2020/10/26 15:41
+ */
+public class NET_IN_SCENICSPOT_GETPOINTINFOS_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 从第几位开始获取(最大 255)
+ */
+ public int nOffset;
+ /**
+ * 获取几个信息点结构(从 0 开始)
+ */
+ public int nLimit;
+
+ public NET_IN_SCENICSPOT_GETPOINTINFOS_INFO() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SCENICSPOT_SETPOINTINFO_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SCENICSPOT_SETPOINTINFO_INFO.java
new file mode 100644
index 0000000..be752fc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SCENICSPOT_SETPOINTINFO_INFO.java
@@ -0,0 +1,85 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.NET_EM_SHAPE_TYPE;
+
+import static com.netsdk.lib.NetSDKLib.MAX_COMMON_STRING_64;
+import static com.netsdk.lib.NetSDKLib.NET_MAX_POLYGON_NUM;
+
+/**
+ * 设置景物点,原编号的景物点将会被覆盖 入参 出参 {@link NET_OUT_SCENICSPOT_SETPOINTINFO_INFO} 接口
+ * {@link NetSDKLib#CLIENT_ScenicSpotSetPointInfo}
+ *
+ * @author : 47040
+ * @since : Created in 2020/10/26 16:14
+ */
+public class NET_IN_SCENICSPOT_SETPOINTINFO_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+ /**
+ * 信息点编号
+ */
+ public int nIndex;
+ /**
+ * 信息点是否生效
+ */
+ public byte bEnable;
+ /**
+ * 该信息点是否有子标题
+ */
+ public byte bTitleAttribute;
+ /**
+ * 云台方向与放大倍数 (绝对坐标)
+ */
+ public POSTION stuPosition;
+ /**
+ * 景物点位置
+ */
+ public POINTCOORDINATE stuPoint;
+ /**
+ * 一级标题名称
+ */
+ public byte[] szTitleName = new byte[MAX_COMMON_STRING_64];
+ /**
+ * 一级标题名称类型
+ */
+ public byte byTitleType;
+ /**
+ * 预留字节
+ */
+ public byte[] byReserved = new byte[3];
+ /**
+ * 景物形状 {@link NET_EM_SHAPE_TYPE}
+ */
+ public int emShapeType;
+ /**
+ * 景物的轮廓,每个点依次表示轮廓顶点坐标
+ */
+ public NetSDKLib.DH_POINT[] stuPolygon = new NetSDKLib.DH_POINT[NET_MAX_POLYGON_NUM];
+ /**
+ * 景物轮廓点的个数,最大不超过 {@link NetSDKLib#NET_MAX_POLYGON_NUM}
+ */
+ public int nPolygonPointNum;
+ /**
+ * 通道个数
+ */
+ public int nChannelNum;
+ /**
+ * 支持标签同步标签的通道
+ */
+ public short[] nSyncToChannels = new short[16];
+
+ public NET_IN_SCENICSPOT_SETPOINTINFO_INFO() {
+ dwSize = this.size();
+ for (int i = 0; i < stuPolygon.length; i++) {
+ stuPolygon[i] = new NetSDKLib.DH_POINT();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SCENICSPOT_TURNTOPOINT_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SCENICSPOT_TURNTOPOINT_INFO.java
new file mode 100644
index 0000000..cc4df81
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SCENICSPOT_TURNTOPOINT_INFO.java
@@ -0,0 +1,31 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 以景物标注点为中心,进行三维定位的输 入参
+ * 出参 {@link NET_OUT_SCENICSPOT_TURNTOPOINT_INFO}
+ * 接口 {@link NetSDKLib#CLIENT_ScenicSpotTurnToPoint}
+ *
+ * @author : 47040
+ * @since : Created in 2020/10/26 17:28
+ */
+public class NET_IN_SCENICSPOT_TURNTOPOINT_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+ /**
+ * 景物点编号
+ */
+ public int nIndex;
+
+ public NET_IN_SCENICSPOT_TURNTOPOINT_INFO() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SECONDARY_ANALYSE_PAUSETASK.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SECONDARY_ANALYSE_PAUSETASK.java
new file mode 100644
index 0000000..d38cf4f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SECONDARY_ANALYSE_PAUSETASK.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 暂停录像二次分析任务输入参数
+*/
+public class NET_IN_SECONDARY_ANALYSE_PAUSETASK extends NetSDKLib.SdkStructure
+{
+ /**
+ * 赋值为结构体大小
+ */
+ public int dwSize;
+ /**
+ * 任务数量
+ */
+ public int nTaskIdNum;
+ /**
+ * 任务ID
+ */
+ public int[] nTaskID = new int[32];
+
+ public NET_IN_SECONDARY_ANALYSE_PAUSETASK() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SECONDARY_ANALYSE_REMOVETASK.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SECONDARY_ANALYSE_REMOVETASK.java
new file mode 100644
index 0000000..7fe80f0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SECONDARY_ANALYSE_REMOVETASK.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 删除录像二次分析任务输入参数
+*/
+public class NET_IN_SECONDARY_ANALYSE_REMOVETASK extends NetSDKLib.SdkStructure
+{
+ /**
+ * 赋值为结构体大小
+ */
+ public int dwSize;
+ /**
+ * 任务数量, 0表示删除全部
+ */
+ public int nTaskIdNum;
+ /**
+ * 任务ID
+ */
+ public int[] nTaskID = new int[32];
+
+ public NET_IN_SECONDARY_ANALYSE_REMOVETASK() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SECONDARY_ANALYSE_STARTTASK.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SECONDARY_ANALYSE_STARTTASK.java
new file mode 100644
index 0000000..426b8f5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SECONDARY_ANALYSE_STARTTASK.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 开始录像二次分析任务输入参数
+*/
+public class NET_IN_SECONDARY_ANALYSE_STARTTASK extends NetSDKLib.SdkStructure
+{
+ /**
+ * 赋值为结构体大小
+ */
+ public int dwSize;
+ /**
+ * 任务ID个数, 为0表示全部
+ */
+ public int nTaskIdNum;
+ /**
+ * 任务ID,0表示全部
+ */
+ public int[] nTaskID = new int[32];
+
+ public NET_IN_SECONDARY_ANALYSE_STARTTASK() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SECURITYGATE_ATTACH_ALARM_STATISTICS.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SECURITYGATE_ATTACH_ALARM_STATISTICS.java
new file mode 100644
index 0000000..14e1f25
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SECURITYGATE_ATTACH_ALARM_STATISTICS.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.callback.securityCheck.fSecurityGateAttachAlarmStatistics;
+import com.sun.jna.Pointer;
+
+/**
+ * @author : 291189
+ * @since : Created in 2021/6/29 10:21
+ */
+public class NET_IN_SECURITYGATE_ATTACH_ALARM_STATISTICS extends NetSDKLib.SdkStructure {
+ public int dwSize; // 赋值为结构体大小
+ public byte[] szUUID = new byte[36]; // UUID
+ public fSecurityGateAttachAlarmStatistics cbNotify; // 回调函数
+ public Pointer dwUser; // 用户信息
+
+ public NET_IN_SECURITYGATE_ATTACH_ALARM_STATISTICS() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SECURITY_EXPORT_DATA_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SECURITY_EXPORT_DATA_INFO.java
new file mode 100644
index 0000000..4ec9c71
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SECURITY_EXPORT_DATA_INFO.java
@@ -0,0 +1,41 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_SecurityExportDataEx接口入参
+*/
+public class NET_IN_SECURITY_EXPORT_DATA_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 公钥加密后再经过Base64编码的密码串
+ */
+ public byte[] szKey = new byte[1024];
+ /**
+ * 导出数据类型, 其文件的类型取值即此文件的掩码位数, Bit3通讯录, Bit4密码信息, Bit5 卡片信息, Bit6 目标信息, Bit7信息信息, Bit8 对讲IPC信息, Bit13 预置点信息
+ */
+ public int nfileTypeMask;
+ /**
+ * 导出偏移
+ */
+ public int nOffset;
+ /**
+ * 需要导出的字节长度
+ */
+ public int nNeedLength;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+ /**
+ * 是否下发通道号
+ */
+ public int bChannel;
+
+ public NET_IN_SECURITY_EXPORT_DATA_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SECURITY_GETCAPS_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SECURITY_GETCAPS_INFO.java
new file mode 100644
index 0000000..77557ea
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SECURITY_GETCAPS_INFO.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_SecurityGetCaps接口入参
+*/
+public class NET_IN_SECURITY_GETCAPS_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+ /**
+ * 是否下发通道号
+ */
+ public int bChannel;
+
+ public NET_IN_SECURITY_GETCAPS_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SECURITY_GET_TASK_STATUS_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SECURITY_GET_TASK_STATUS_INFO.java
new file mode 100644
index 0000000..2b4b6d6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SECURITY_GET_TASK_STATUS_INFO.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_SecurityGetTaskStatus接口入参
+*/
+public class NET_IN_SECURITY_GET_TASK_STATUS_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 任务数据类型, 13:预置点信息
+ */
+ public int nType;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+ /**
+ * 是否下发通道号
+ */
+ public int bChannel;
+
+ public NET_IN_SECURITY_GET_TASK_STATUS_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SECURITY_IMPORT_DATA_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SECURITY_IMPORT_DATA_INFO.java
new file mode 100644
index 0000000..9877d4a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SECURITY_IMPORT_DATA_INFO.java
@@ -0,0 +1,46 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * CLIENT_SecurityImportDataEx接口入参
+*/
+public class NET_IN_SECURITY_IMPORT_DATA_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 公钥加密后再经过Base64编码的密码串
+ */
+ public byte[] szKey = new byte[1024];
+ /**
+ * 是否覆盖
+ */
+ public int bIsOverWrite;
+ /**
+ * 设备导入文件状态,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_STATUS_TYPE}
+ */
+ public int emStatus;
+ /**
+ * 下发二进制文件数据
+ */
+ public Pointer pBufData;
+ /**
+ * 数据长度,单位:字节
+ */
+ public int nLength;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+ /**
+ * 是否下发通道号
+ */
+ public int bChannel;
+
+ public NET_IN_SECURITY_IMPORT_DATA_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SECURITY_PREPARE_EXPORT_DATA_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SECURITY_PREPARE_EXPORT_DATA_INFO.java
new file mode 100644
index 0000000..d02f9d4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SECURITY_PREPARE_EXPORT_DATA_INFO.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_SecurityPrepareExportData接口入参
+*/
+public class NET_IN_SECURITY_PREPARE_EXPORT_DATA_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 导出数据类型, 其文件的类型取值即此文件的掩码位数, Bit3 通讯录, Bit4 密码信息, Bit5 卡片信息, Bit6 目标信息, Bit7 信息, Bit13 预置点信息
+ */
+ public int nfileTypeMask;
+ /**
+ * 公钥加密后再经过Base64编码的密码串
+ */
+ public byte[] szKey = new byte[1024];
+ /**
+ * 通道号
+ */
+ public int nChannel;
+ /**
+ * 是否下发通道号
+ */
+ public int bChannel;
+
+ public NET_IN_SECURITY_PREPARE_EXPORT_DATA_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SET_2DCODE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_2DCODE.java
new file mode 100644
index 0000000..8369140
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_2DCODE.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.constant.SDKStructureFieldLenth;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description {@link NetSDKLib#CLIENT_Set2DCode(NetSDKLib.LLong, Pointer, Pointer, int)}的入参
+ * @date 2020/9/10
+ */
+public class NET_IN_SET_2DCODE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 二维码类型,
+ * 对应枚举类型{@link com.netsdk.lib.enumeration.NET_EM_2DCODE_TYPE}
+ */
+ public int em2DCodeType;
+ /**
+ * 二维码信息
+ */
+ public byte[] sz2DCode = new byte[SDKStructureFieldLenth.SDK_COMMON_STRING_512];
+
+ public NET_IN_SET_2DCODE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SET_ALARMMODE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_ALARMMODE.java
new file mode 100644
index 0000000..72c1fee
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_ALARMMODE.java
@@ -0,0 +1,49 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 设置布防模式
+ * 输入参数。此时CLIENT_SetAlarmRegionInfo的emType参数为NET_EM_SET_ALARMREGION_INFO_ARMMODE
+ * @date 2023/03/15 16:05:04
+ */
+public class NET_IN_SET_ALARMMODE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 布撤防类型 {@link com.netsdk.lib.enumeration.EM_ARM_TYPE}
+ */
+ public int emArmType;
+ /**
+ * 密码
+ */
+ public byte[] szPwd = new byte[256];
+ /**
+ * 区域的个数
+ */
+ public int nAreaNum;
+ /**
+ * 区域号
+ */
+ public int[] arrAreas = new int[8];
+ /**
+ * 执行布撤防时的附加信息
+ */
+ public NET_DETAIL_INFO stuDetail = new NET_DETAIL_INFO();
+ /**
+ * 区域的扩展个数
+ */
+ public int nAreaNumEx;
+ /**
+ * 区域号扩展 个数超过8个使用这个字段
+ */
+ public int[] arrAreasEx = new int[64];
+
+ public NET_IN_SET_ALARMMODE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SET_BACKUP_MODE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_BACKUP_MODE.java
new file mode 100644
index 0000000..3b1b7b2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_BACKUP_MODE.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_SetRtscBackupMode 接口输入参数
+ * @date 2021/09/28
+ */
+public class NET_IN_SET_BACKUP_MODE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 红绿灯/可变车道方案:150-152代表红绿灯 153-155代表可变车道方案。参考枚举{ @link EM_CTRL_SCHEME }
+ */
+ public int emCtrlScheme;
+
+ public NET_IN_SET_BACKUP_MODE(){
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SET_BIND_MODE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_BIND_MODE_INFO.java
new file mode 100644
index 0000000..73052d4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_BIND_MODE_INFO.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description CLIENT_SetBindMode 接口入参
+ * @origin autoTool
+ * @date 2023/09/15 10:59:47
+ */
+public class NET_IN_SET_BIND_MODE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * / 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * / 教室id号,默认0
+ */
+ public int nClassRoomId;
+ /**
+ * / 绑定模式 {@link com.netsdk.lib.enumeration.EM_BIND_MODE}
+ */
+ public int emBindMode;
+
+ public NET_IN_SET_BIND_MODE_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SET_BLIND_REAL_CHANNEL.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_BLIND_REAL_CHANNEL.java
new file mode 100644
index 0000000..473a743
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_BLIND_REAL_CHANNEL.java
@@ -0,0 +1,38 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+import static com.netsdk.lib.NetSDKLib.MAX_PREVIEW_CHANNEL_NUM;
+
+/**
+ * 设置逻辑通道号和真实通道号的绑定关系入参 ,对应接口 {@link NetSDKLib#CLIENT_SetBlindRealChannel}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 15:08
+ */
+public class NET_IN_SET_BLIND_REAL_CHANNEL extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道数量
+ */
+ public int nChannelNum;
+ /**
+ * 通道号
+ */
+ public int[] nChannel = new int[MAX_PREVIEW_CHANNEL_NUM];
+ /**
+ * 逻辑通道信息,下标为将要设置的真实通道数
+ */
+ public NET_LOGIC_CHANNEL_INFO[] stuChannelInfo = new NET_LOGIC_CHANNEL_INFO[MAX_PREVIEW_CHANNEL_NUM];
+
+ public NET_IN_SET_BLIND_REAL_CHANNEL() {
+ dwSize = this.size();
+ for (int i = 0; i < stuChannelInfo.length; i++) {
+ stuChannelInfo[i] = new NET_LOGIC_CHANNEL_INFO();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SET_BYPASSMODE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_BYPASSMODE.java
new file mode 100644
index 0000000..d7a468f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_BYPASSMODE.java
@@ -0,0 +1,45 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 设置旁路状态
+ * 输入参数。此时CLIENT_SetAlarmRegionInfo的emType参数为NET_EM_SET_ALARMREGION_INFO_BYPASSMODE
+ * @date 2023/03/15 16:33:42
+ */
+public class NET_IN_SET_BYPASSMODE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 密码
+ */
+ public byte[] szPwd = new byte[256];
+ /**
+ * 旁路模式 {@link com.netsdk.lib.enumeration.EM_BYPASSMODE_TYPE}
+ */
+ public int emType;
+ /**
+ * 防区个数
+ */
+ public int nZoneNum;
+ /**
+ * 防区号
+ */
+ public int[] arrZones = new int[72];
+ /**
+ * 防区个数扩展
+ */
+ public int nZoneNumEx;
+ /**
+ * 防区号扩展,超过72时使用此字段
+ */
+ public int[] arrZonesEx = new int[256];
+
+ public NET_IN_SET_BYPASSMODE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SET_CALIBRATEINFO_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_CALIBRATEINFO_INFO.java
new file mode 100644
index 0000000..16c5183
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_CALIBRATEINFO_INFO.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 设置标定点信息入参
+ * @date 2023/05/24 10:24:52
+ */
+public class NET_IN_SET_CALIBRATEINFO_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 标定点信息
+ */
+ public NET_GET_CALIBRATEINFO_POINT_INFO stuPointInfo = new NET_GET_CALIBRATEINFO_POINT_INFO();
+
+ public NET_IN_SET_CALIBRATEINFO_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SET_CAMERA_CFG.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_CAMERA_CFG.java
new file mode 100644
index 0000000..85e2b28
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_CAMERA_CFG.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @version 1.0
+ * @description {@link NetSDKLib#CLIENT_SetCameraCfg}的入参
+ * @date 2020/11/06
+ */
+public class NET_IN_SET_CAMERA_CFG extends NetSDKLib.SdkStructure {
+ // 结构体大小
+ public int dwSize;
+ // 相机编号
+ public int nCameraNo;
+ // 相机的信息
+ public NET_CAMERA_CFG_INFO stuCameraInfo;
+
+ public NET_IN_SET_CAMERA_CFG() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SET_CHANNEL_CFG.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_CHANNEL_CFG.java
new file mode 100644
index 0000000..53ce109
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_CHANNEL_CFG.java
@@ -0,0 +1,23 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @version 1.0
+ * @description {@link NetSDKLib#CLIENT_SetChannelCfg}的入参
+ * @date 2020/11/06
+ */
+public class NET_IN_SET_CHANNEL_CFG extends NetSDKLib.SdkStructure {
+ /** 结构体大小 */
+ public int dwSize;
+ /** 检测通道 */
+ public int nChannelNo;
+ /** 通道信息 */
+ public NET_CHANNEL_CFG_INFO stuChannelInfo;
+
+ public NET_IN_SET_CHANNEL_CFG() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SET_CONSUME_RESULT.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_CONSUME_RESULT.java
new file mode 100644
index 0000000..4724651
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_CONSUME_RESULT.java
@@ -0,0 +1,61 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_SetConsumeResult 输入结构体
+* @date 2022/03/07 17:36:06
+*/
+public class NET_IN_SET_CONSUME_RESULT extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+/**
+通道号
+*/
+ public int nChannelID;
+/**
+用户ID
+*/
+ public byte[] szUserID = new byte[32];
+/**
+消费后余额,如果消费失败则是消费前余额,单位分。
+*/
+ public int nRemainAmount;
+/**
+消费成功与否
+*/
+ public int bConsumeResult;
+/**
+错误码
+*/
+ public int nErrorCode;
+/**
+平台固定消费金额,单位(分)
+*/
+ public int nConsumptionAmount;
+/**
+是否是超额消费
+*/
+ public int bExcessConsumption;
+/**
+剩余消费次数,-1表示不限制消费次数,0以上(包括0)表示剩余消费次数
+*/
+ public int nRemainingTimes;
+/**
+消费流水号
+*/
+ public byte[] szTransactionSerialNumber = new byte[128];
+ /**
+ * PlatDisplayText
+ */
+ public byte[] szPlatDisplayText = new byte[128];
+
+public NET_IN_SET_CONSUME_RESULT(){
+this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SET_COURSE_RECORD_MODE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_COURSE_RECORD_MODE.java
new file mode 100644
index 0000000..f400ead
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_COURSE_RECORD_MODE.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.NET_EM_RECORD_MODE;
+
+/**
+ * 设置录像模式入参,对应接口{link NetSDKLib#CLIENT_SetCourseRecordMode}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 15:38
+ */
+public class NET_IN_SET_COURSE_RECORD_MODE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 录像模式 {@link NET_EM_RECORD_MODE}
+ */
+ public int emRecordMode;
+ /**
+ * 教室id号
+ */
+ public int nClassRoomID;
+
+ public NET_IN_SET_COURSE_RECORD_MODE() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SET_COURSE_RECORD_STATE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_COURSE_RECORD_STATE.java
new file mode 100644
index 0000000..935cd07
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_COURSE_RECORD_STATE.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 开启/关闭指定通道录像入参 {@link NetSDKLib#CLIENT_SetCourseRecordState}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 16:13
+ */
+public class NET_IN_SET_COURSE_RECORD_STATE extends NetSDKLib.SdkStructure {
+ /**
+ * 该结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+ /**
+ * 0:开启, 1:关闭
+ */
+ public int nAction;
+
+ public NET_IN_SET_COURSE_RECORD_STATE() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SET_DYNAMIC_LOCK_COMMUNICATIONKEY_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_DYNAMIC_LOCK_COMMUNICATIONKEY_INFO.java
new file mode 100644
index 0000000..217db86
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_DYNAMIC_LOCK_COMMUNICATIONKEY_INFO.java
@@ -0,0 +1,41 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_SetDynamicLockCommunicationKey 接口入参
+* @date 2022/06/23 10:15:55
+*/
+public class NET_IN_SET_DYNAMIC_LOCK_COMMUNICATIONKEY_INFO extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+/**
+密码锁ID
+*/
+ public byte[] szID = new byte[32];
+/**
+通讯密钥
+*/
+ public byte[] szCommuKey = new byte[512];
+/**
+通讯密钥校验数据
+*/
+ public byte[] szKeyVerify = new byte[512];
+/**
+原通讯密钥校验数据
+*/
+ public byte[] szOldKeyVerify = new byte[512];
+/**
+加密主机私钥签名
+*/
+ public byte[] szPrivateSigniture = new byte[512];
+
+public NET_IN_SET_DYNAMIC_LOCK_COMMUNICATIONKEY_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SET_DYNAMIC_LOCK_OPENKEY_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_DYNAMIC_LOCK_OPENKEY_INFO.java
new file mode 100644
index 0000000..14a4120
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_DYNAMIC_LOCK_OPENKEY_INFO.java
@@ -0,0 +1,37 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_SetDynamicLockOpenKey 接口入参
+* @date 2022/06/23 10:20:45
+*/
+public class NET_IN_SET_DYNAMIC_LOCK_OPENKEY_INFO extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+/**
+密码锁ID
+*/
+ public byte[] szID = new byte[32];
+/**
+开锁密钥
+*/
+ public byte[] szOpenKey = new byte[512];
+/**
+开锁密钥校验
+*/
+ public byte[] szKeyVerify = new byte[512];
+/**
+开锁密钥版本
+*/
+ public byte[] szKeyVersion = new byte[512];
+
+public NET_IN_SET_DYNAMIC_LOCK_OPENKEY_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SET_DYNAMIC_LOCK_OPEN_CODE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_DYNAMIC_LOCK_OPEN_CODE_INFO.java
new file mode 100644
index 0000000..6700192
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_DYNAMIC_LOCK_OPEN_CODE_INFO.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_SetDynamicLockOpenCode 接口入参
+* @date 2022/06/23 10:28:36
+*/
+public class NET_IN_SET_DYNAMIC_LOCK_OPEN_CODE_INFO extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+/**
+密码锁ID
+*/
+ public byte[] szID = new byte[32];
+/**
+开锁密钥
+*/
+ public byte[] szOpenCode = new byte[512];
+
+public NET_IN_SET_DYNAMIC_LOCK_OPEN_CODE_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SET_DYNAMIC_LOCK_TEMP_USERID_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_DYNAMIC_LOCK_TEMP_USERID_INFO.java
new file mode 100644
index 0000000..cd7fdd1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_DYNAMIC_LOCK_TEMP_USERID_INFO.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_SetDynamicLockTempUserID 接口入参
+* @date 2022/06/23 10:24:57
+*/
+public class NET_IN_SET_DYNAMIC_LOCK_TEMP_USERID_INFO extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+/**
+密码锁ID
+*/
+ public byte[] szID = new byte[32];
+/**
+ 临时身份码
+ */
+ public byte[] szTmpUserID = new byte[512];
+
+public NET_IN_SET_DYNAMIC_LOCK_TEMP_USERID_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SET_EXAM_RECORDING_PLANS.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_EXAM_RECORDING_PLANS.java
new file mode 100644
index 0000000..e57e8a6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_EXAM_RECORDING_PLANS.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+* @author 291189
+* @description CLIENT_SetExamRecordingPlans 接口入参
+* @date 2022/05/16 20:40:47
+*/
+public class NET_IN_SET_EXAM_RECORDING_PLANS extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+/**
+考试计划个数
+*/
+ public int nPlansNum;
+/**
+考试计划, 由用户申请和释放, 最大为1024个 {@link com.netsdk.lib.structure.NET_EXAM_RECORDING_PLAN_INFO}
+*/
+ public Pointer pstuPlans;
+
+public NET_IN_SET_EXAM_RECORDING_PLANS(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SET_GLOBAL_PARAMETER.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_GLOBAL_PARAMETER.java
new file mode 100644
index 0000000..2b117bd
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_GLOBAL_PARAMETER.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_SetRtscGlobalParam 接口输入参数
+ * @date 2021/09/28
+ */
+public class NET_IN_SET_GLOBAL_PARAMETER extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 全局信息
+ */
+ public GLOBAL_INFO stuGlobalInfo;
+
+ public NET_IN_SET_GLOBAL_PARAMETER(){
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SET_IVSEVENT_PARSE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_IVSEVENT_PARSE_INFO.java
new file mode 100644
index 0000000..f378df0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_IVSEVENT_PARSE_INFO.java
@@ -0,0 +1,39 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+/**
+ * @author 251823
+ * @description CLIENT_SetRtscGlobalParam 接口输入参数
+ * @date 2022/05/23
+ */
+public class NET_IN_SET_IVSEVENT_PARSE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 智能分析事件类型,参考dhnetsdk.h中定义的智能分析事件宏.
+ * 当前支持情况如下:
+ * nCallBackType为0时(即智能事件解析类型):
+ * EVENT_IVS_FACERECOGNITION:dwStructType为 1 时,对应结构体 DEV_EVENT_FACERECOGNITION_INFO_V1
+ *
+ * nCallBackType为1时(即报警事件解析类型):
+ * DH_ALARM_RTSC_RUNING: dwStructType为 1 时,对应结构体 ALARM_RTSC_RUNNING_INFO_V1
+ *
+ */
+ public int dwIVSEvent;
+ /**
+ * 指定解析的类型,具体含义参考 dwIVSEvent 字段的说明
+ */
+ public int dwStructType;
+ /**
+ * 0 - 智能事件上报
+ * 1 - 普通报警事件上报
+ */
+ public int nCallBackType;
+
+ public NET_IN_SET_IVSEVENT_PARSE_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SET_LOG_ENCRYPT_KEY_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_LOG_ENCRYPT_KEY_INFO.java
new file mode 100644
index 0000000..0461205
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_LOG_ENCRYPT_KEY_INFO.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_ExportEncrypedLog 接口入参
+*/
+public class NET_IN_SET_LOG_ENCRYPT_KEY_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 加密密码,不超过32位,必须是可见的ASCII字符,不支持是中文。该密码作为zip压缩包密码,与设备无关
+ */
+ public byte[] szPassword = new byte[33];
+ /**
+ * 字节对齐
+ */
+ public byte[] szReserved1 = new byte[3];
+
+ public NET_IN_SET_LOG_ENCRYPT_KEY_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SET_OUTPUT_STATE.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_OUTPUT_STATE.java
new file mode 100644
index 0000000..013fe98
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_OUTPUT_STATE.java
@@ -0,0 +1,37 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 设置输出状态
+ * 输入参数。此时CLIENT_SetAlarmRegionInfo的emType参数为NET_EM_SET_ALARMREGION_INFO_OUTPUTSTATE
+ * @date 2023/03/15 16:46:55
+ */
+public class NET_IN_SET_OUTPUT_STATE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 输出类型 {@link com.netsdk.lib.enumeration.EM_OUTPUT_TYPE}
+ */
+ public int emType;
+ /**
+ * emType= EM_OUTPUT_TYPE_SIREN时表示警号号 emType= EM_OUTPUT_TYPE_ALARMOUT时表示通道号
+ */
+ public int nChannel;
+ /**
+ * 输出动作 false:关闭 true:打开
+ */
+ public byte action;
+ /**
+ * 字节对齐
+ */
+ public byte[] byReserved = new byte[3];
+
+ public NET_IN_SET_OUTPUT_STATE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SET_PARKINGRULE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_PARKINGRULE_INFO.java
new file mode 100644
index 0000000..afc53a6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_PARKINGRULE_INFO.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @version 1.0
+ * @description 设置停车规则接口,CLIENT_SetParkingRule 入参
+ * @date 2021/05/28
+ */
+public class NET_IN_SET_PARKINGRULE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 停车时长阈值,单位秒
+ */
+ public int nParkingTimeThreshold;
+
+ public NET_IN_SET_PARKINGRULE_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SET_PARKINGSPACE_STATE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_PARKINGSPACE_STATE_INFO.java
new file mode 100644
index 0000000..d85d66a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_PARKINGSPACE_STATE_INFO.java
@@ -0,0 +1,44 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.EM_PARKINGSPACE_STATE;
+
+/**
+ * 设置停车车位状态 入参
+ * 接口 {@link NetSDKLib#CLIENT_SetParkingSpaceState}
+ * 出参 {@link NET_OUT_SET_PARKINGSPACE_STATE_INFO}
+ *
+ * @author 47040
+ * @since Created in 2020/11/18 13:32
+ */
+public class NET_IN_SET_PARKINGSPACE_STATE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道号
+ */
+ public int nChannel;
+ /**
+ * 车牌号码
+ */
+ public byte[] szPlateNumber = new byte[64];
+ /**
+ * 车位号
+ */
+ public byte[] szParkingNo = new byte[32];
+ /**
+ * 车位状态 {@link EM_PARKINGSPACE_STATE}
+ */
+ public int emState;
+ /**
+ * 是否需要图片 0 不需要 1 需要
+ */
+ public int bUnNeedPic;
+
+ public NET_IN_SET_PARKINGSPACE_STATE_INFO() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SET_PARKING_SPACE_LIGHT_PLAN.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_PARKING_SPACE_LIGHT_PLAN.java
new file mode 100644
index 0000000..686d291
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_PARKING_SPACE_LIGHT_PLAN.java
@@ -0,0 +1,38 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * 设置车位指示灯亮灯计划入参
+*/
+public class NET_IN_SET_PARKING_SPACE_LIGHT_PLAN extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 物理车位号,请优先使用此字段.值为负数时表示此字段无效
+ */
+ public int nPhysicalLane;
+ /**
+ * 自定义车位编号,物理车位号字段无效时,使用此字段
+ */
+ public byte[] szCustomParkNo = new byte[32];
+ /**
+ * 亮灯计划数目
+ */
+ public int nLightPlanNum;
+ /**
+ * 亮灯计划信息,由用户申请和释放内存,参见结构体定义 {@link com.netsdk.lib.structure.NET_PARKING_SPACE_LIGHT_PLAN_INFO}
+ */
+ public Pointer pstuLightPlan;
+ /**
+ * 通道号,从0开始。存在该字段标明前端设备添加到存储设备上的通道号
+ */
+ public int nChannel;
+
+ public NET_IN_SET_PARKING_SPACE_LIGHT_PLAN() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_IN_SET_PARK_CONTROL_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_PARK_CONTROL_INFO.java
new file mode 100644
index 0000000..26c1fe7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_IN_SET_PARK_CONTROL_INFO.java
@@ -0,0 +1,41 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+
+public class NET_IN_SET_PARK_CONTROL_INFO extends SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 屏幕信息个数
+ */
+ public int nScreenShowInfoNum;
+ /**
+ * 屏幕信息
+ */
+ public NET_SCREEN_SHOW_INFO[] stuScreenShowInfo = new NET_SCREEN_SHOW_INFO[16];
+ /**
+ * 字节补齐
+ */
+ public byte[] byReserved = new byte[4];
+ /**
+ * 播报信息个数
+ */
+ public int nBroadcastInfoNum;
+ /**
+ * 播报信息
+ */
+ public NET_BROADCAST_INFO[] stuBroadcastInfo = new NET_BROADCAST_INFO[16];
+
+ public NET_IN_SET_PARK_CONTROL_INFO() {
+ for(int i=0;i {@link NET_RECORDBACKUP_TASKID_INFO} 数组
+ * 数组长度为入参参数 {@link NET_IN_ADD_REC_BAK_RST_REMOTE_TASK#nTaskCount}
+ * 由用户申请内存 大小为 (size of NET_RECORDBACKUP_TASKID_INFO)*nTaskCount
+ */
+ public Pointer pStuID;
+
+ public NET_OUT_ADD_REC_BAK_RST_REMOTE_TASK() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ADD_SOFT_TOUR_POINT_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ADD_SOFT_TOUR_POINT_INFO.java
new file mode 100644
index 0000000..6e58368
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ADD_SOFT_TOUR_POINT_INFO.java
@@ -0,0 +1,22 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 421657
+ * @description 接口 CLIENT_AddSoftTourPoint 的输出参数
+ * @origin autoTool
+ * @date 2023/10/16 19:45:45
+ */
+public class NET_OUT_ADD_SOFT_TOUR_POINT_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * / 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_OUT_ADD_SOFT_TOUR_POINT_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ASGMANAGER_CLEAR_STATISTICS.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ASGMANAGER_CLEAR_STATISTICS.java
new file mode 100644
index 0000000..c88aab6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ASGMANAGER_CLEAR_STATISTICS.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_ASGManagerClearStatistics 出参
+*/
+public class NET_OUT_ASGMANAGER_CLEAR_STATISTICS extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_ASGMANAGER_CLEAR_STATISTICS() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ASYNC_ADD_CUSTOM_DEVICE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ASYNC_ADD_CUSTOM_DEVICE.java
new file mode 100644
index 0000000..b4792ee
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ASYNC_ADD_CUSTOM_DEVICE.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+
+/***
+ * CLIENT_AsyncAddCustomDevice 接口输出参数
+ * @author 119178
+ *
+ */
+public class NET_OUT_ASYNC_ADD_CUSTOM_DEVICE extends SdkStructure {
+ public int dwSize;
+ /**
+ * 分配的逻辑通道个数
+ */
+ public int nLogicChannelNum;
+ /**
+ * 分配的逻辑通道号列表
+ */
+ public int[] nLogicChannels = new int[128];
+ /**
+ * 设备ID
+ */
+ public byte[] szDeviceID = new byte[128];
+
+ public NET_OUT_ASYNC_ADD_CUSTOM_DEVICE(){
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ASYNC_CHECK_FAULT_CHECK.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ASYNC_CHECK_FAULT_CHECK.java
new file mode 100644
index 0000000..48378e3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ASYNC_CHECK_FAULT_CHECK.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_AsyncCheckFaultCheck 接口出参
+*/
+public class NET_OUT_ASYNC_CHECK_FAULT_CHECK extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_OUT_ASYNC_CHECK_FAULT_CHECK() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_AREA_FLOW.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_AREA_FLOW.java
new file mode 100644
index 0000000..393d62b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_AREA_FLOW.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_AttachAreaFlow 输出参数
+*/
+public class NET_OUT_ATTACH_AREA_FLOW extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_OUT_ATTACH_AREA_FLOW() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_BACKUP_STATE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_BACKUP_STATE.java
new file mode 100644
index 0000000..ab078d5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_BACKUP_STATE.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+/**
+ *
+ * @author 119178
+ * CLIENT_AttachBackupTaskState接口输入参数
+ * {@link NetSDKLib#CLIENT_AttachBackupTaskState}
+ */
+public class NET_OUT_ATTACH_BACKUP_STATE extends SdkStructure {
+ public int dwSize;
+
+ public NET_OUT_ATTACH_BACKUP_STATE(){
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_CROWDDISTRI_MAP_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_CROWDDISTRI_MAP_INFO.java
new file mode 100644
index 0000000..7a80b4e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_CROWDDISTRI_MAP_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @version 1.0
+ * @description CLIENT_AttachCrowdDistriMap 接口输出参数
+ * @date 2022/01/07
+ */
+public class NET_OUT_ATTACH_CROWDDISTRI_MAP_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_ATTACH_CROWDDISTRI_MAP_INFO(){
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_CUSTOM_SNAP_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_CUSTOM_SNAP_INFO.java
new file mode 100644
index 0000000..0f37835
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_CUSTOM_SNAP_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_AttachCustomSnapInfo 接口输出参数
+* @date 2022/03/31 11:35:21
+*/
+public class NET_OUT_ATTACH_CUSTOM_SNAP_INFO extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+
+public NET_OUT_ATTACH_CUSTOM_SNAP_INFO(){
+this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_DBGINFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_DBGINFO.java
new file mode 100644
index 0000000..7107449
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_DBGINFO.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 订阅日志回调出参
+*/
+public class NET_OUT_ATTACH_DBGINFO extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+
+ public NET_OUT_ATTACH_DBGINFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_ELEVATOR_FLOOR_COUNTER_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_ELEVATOR_FLOOR_COUNTER_INFO.java
new file mode 100644
index 0000000..478bb99
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_ELEVATOR_FLOOR_COUNTER_INFO.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_AttachElevatorFloorCounter 接口出参
+*/
+public class NET_OUT_ATTACH_ELEVATOR_FLOOR_COUNTER_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_OUT_ATTACH_ELEVATOR_FLOOR_COUNTER_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_GATE_POPULATION_STATISTICS_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_GATE_POPULATION_STATISTICS_INFO.java
new file mode 100644
index 0000000..1732e03
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_GATE_POPULATION_STATISTICS_INFO.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author : 291189
+ * @since : Created in 2021/7/5 15:37
+ * CLIENT_AttachPopulationStatistics 的输出参数
+ */
+public class NET_OUT_ATTACH_GATE_POPULATION_STATISTICS_INFO extends NetSDKLib.SdkStructure {
+ public int dwSize; //此结构体大小,必须赋值
+
+ public NET_OUT_ATTACH_GATE_POPULATION_STATISTICS_INFO(){
+ this.dwSize=this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_GYRO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_GYRO.java
new file mode 100644
index 0000000..b9cf244
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_GYRO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_AttachGyro接口出参
+* @date 2022/10/26 16:10:20
+*/
+public class NET_OUT_ATTACH_GYRO extends NetSDKLib.SdkStructure {
+/**
+此结构体大小,必须赋值
+*/
+ public int dwSize;
+
+public NET_OUT_ATTACH_GYRO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_HYGROTHERMOGRAPH.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_HYGROTHERMOGRAPH.java
new file mode 100644
index 0000000..a3a39b3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_HYGROTHERMOGRAPH.java
@@ -0,0 +1,22 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 接口 CLIENT_AttachHygrothermograph 的输出参数
+* @origin autoTool
+* @date 2023/12/02 10:25:56
+*/
+public class NET_OUT_ATTACH_HYGROTHERMOGRAPH extends NetSDKLib.SdkStructure {
+/**
+/ 此结构体大小,必须赋值
+*/
+ public int dwSize;
+
+public NET_OUT_ATTACH_HYGROTHERMOGRAPH(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_IOTBOX_COMM.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_IOTBOX_COMM.java
new file mode 100644
index 0000000..4c9c248
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_IOTBOX_COMM.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_AttachIotboxComm 接口出参
+*/
+public class NET_OUT_ATTACH_IOTBOX_COMM extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_OUT_ATTACH_IOTBOX_COMM() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_IOTBOX_COMM_EX.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_IOTBOX_COMM_EX.java
new file mode 100644
index 0000000..36780ce
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_IOTBOX_COMM_EX.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_AttachIotboxComm 接口出参
+*/
+public class NET_OUT_ATTACH_IOTBOX_COMM_EX extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_OUT_ATTACH_IOTBOX_COMM_EX() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_LOWRATEWPAN.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_LOWRATEWPAN.java
new file mode 100644
index 0000000..59f08ce
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_LOWRATEWPAN.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_AttachLowRateWPAN()输出参数
+ * @date 2023/03/16 16:16:48
+ */
+public class NET_OUT_ATTACH_LOWRATEWPAN extends NetSDKLib.SdkStructure {
+ public int dwSize;
+
+ public NET_OUT_ATTACH_LOWRATEWPAN() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_RADAR_RFIDCARD_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_RADAR_RFIDCARD_INFO.java
new file mode 100644
index 0000000..b066f0e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_RADAR_RFIDCARD_INFO.java
@@ -0,0 +1,22 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author : 260611
+ * @description : CLIENT_AttachRadarRFIDCardInfo接口出参
+ * @since : Created in 2022/02/11 10:22
+ */
+
+public class NET_OUT_ATTACH_RADAR_RFIDCARD_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_ATTACH_RADAR_RFIDCARD_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_RESULT_FINDHISTORY_BYPIC.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_RESULT_FINDHISTORY_BYPIC.java
new file mode 100644
index 0000000..37bfd17
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_RESULT_FINDHISTORY_BYPIC.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_AttachResultOfFindHistoryByPic接口输出参数
+*/
+public class NET_OUT_ATTACH_RESULT_FINDHISTORY_BYPIC extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_ATTACH_RESULT_FINDHISTORY_BYPIC() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_SCADA_DATA_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_SCADA_DATA_INFO.java
new file mode 100644
index 0000000..673ef44
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_SCADA_DATA_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description CLIENT_AttachSCADAData 接口出参
+ * @date 2022/12/13 10:20:50
+ */
+public class NET_OUT_ATTACH_SCADA_DATA_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_OUT_ATTACH_SCADA_DATA_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_SECONDARY_ANALYSE_RESULT.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_SECONDARY_ANALYSE_RESULT.java
new file mode 100644
index 0000000..afee7a0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_SECONDARY_ANALYSE_RESULT.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 订阅二次录像分析实时结果输出参数
+*/
+public class NET_OUT_ATTACH_SECONDARY_ANALYSE_RESULT extends NetSDKLib.SdkStructure
+{
+ /**
+ * 赋值为结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_ATTACH_SECONDARY_ANALYSE_RESULT() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_SNIFFER.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_SNIFFER.java
new file mode 100644
index 0000000..9d045e1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_SNIFFER.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_AttachSniffer 接口出参
+*/
+public class NET_OUT_ATTACH_SNIFFER extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+
+ public NET_OUT_ATTACH_SNIFFER() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_START_STREAM_DATA.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_START_STREAM_DATA.java
new file mode 100644
index 0000000..2ff741f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_START_STREAM_DATA.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_AttachStartStreamData 接口输出参数
+*/
+public class NET_OUT_ATTACH_START_STREAM_DATA extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_ATTACH_START_STREAM_DATA() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_TALK_STATE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_TALK_STATE.java
new file mode 100644
index 0000000..bff19ee
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_TALK_STATE.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 接口 CLIENT_AttachTalkState 的输出参数
+*/
+public class NET_OUT_ATTACH_TALK_STATE extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 呼叫惟一标识符
+ */
+ public byte[] szCallID = new byte[64];
+
+ public NET_OUT_ATTACH_TALK_STATE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_TRAFFICLIGHT_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_TRAFFICLIGHT_INFO.java
new file mode 100644
index 0000000..2be6921
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_TRAFFICLIGHT_INFO.java
@@ -0,0 +1,23 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * className:NET_OUT_ATTACH_TRAFFICLIGHT_INFO
+ * description:CLIENT_AttachTrafficLightState 接口出参
+ * author:251589
+ * createTime:2021/1/19 14:56
+ *
+ * @version v1.0
+ */
+public class NET_OUT_ATTACH_TRAFFICLIGHT_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_ATTACH_TRAFFICLIGHT_INFO(){
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_TRAFFIC_FLOW_STAT_REAL_FLOW.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_TRAFFIC_FLOW_STAT_REAL_FLOW.java
new file mode 100644
index 0000000..0c8d0d4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_TRAFFIC_FLOW_STAT_REAL_FLOW.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description CLIENT_AttachTrafficFlowStatRealFlow 输出参数
+ * @origin autoTool
+ * @date 2023/08/31 14:21:53
+ */
+public class NET_OUT_ATTACH_TRAFFIC_FLOW_STAT_REAL_FLOW extends NetSDKLib.SdkStructure {
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_OUT_ATTACH_TRAFFIC_FLOW_STAT_REAL_FLOW() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_TRANSMIT_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_TRANSMIT_INFO.java
new file mode 100644
index 0000000..428ba15
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_TRANSMIT_INFO.java
@@ -0,0 +1,38 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 251823
+ * @version 1.0
+ * @description CLIENT_AttachTransmitInfo输出参数
+ * @date 2022/02/14
+ */
+public class NET_OUT_ATTACH_TRANSMIT_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 用户使用该结构体时,dwSize需赋值为sizeof(NET_OUT_ATTACH_TRANSMIT_INFO)
+ */
+ public int dwSize;
+ /**
+ * 应答缓冲地址,用户申请空间
+ */
+ public Pointer szOutBuffer;
+ /**
+ * 应答缓冲总长度
+ */
+ public int dwOutBufferSize;
+ /**
+ * 应答Json数据长度
+ */
+ public int dwOutJsonLen;
+ /**
+ * 应答二进制数据长度
+ */
+ public int dwOutBinLen;
+
+ public NET_OUT_ATTACH_TRANSMIT_INFO(){
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_VEHICLES_DISTRIBUTION_DATA.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_VEHICLES_DISTRIBUTION_DATA.java
new file mode 100644
index 0000000..d8d875d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_VEHICLES_DISTRIBUTION_DATA.java
@@ -0,0 +1,22 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 接口 CLIENT_AttachVehiclesDistributionData 的输出参数
+* @origin autoTool
+* @date 2023/07/03 14:07:28
+*/
+public class NET_OUT_ATTACH_VEHICLES_DISTRIBUTION_DATA extends NetSDKLib.SdkStructure {
+/**
+此结构体大小
+*/
+ public int dwSize;
+
+public NET_OUT_ATTACH_VEHICLES_DISTRIBUTION_DATA(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_VIDEOSTAT_HEATMAP.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_VIDEOSTAT_HEATMAP.java
new file mode 100644
index 0000000..5aaa70a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_VIDEOSTAT_HEATMAP.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 热度图订阅接口出参
+ * @date 2020/9/21
+ */
+public class NET_OUT_ATTACH_VIDEOSTAT_HEATMAP extends NetSDKLib.SdkStructure {
+ public int dwSize;
+
+ public NET_OUT_ATTACH_VIDEOSTAT_HEATMAP() {
+ this.dwSize = size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_VIDEOSTAT_STREAM.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_VIDEOSTAT_STREAM.java
new file mode 100644
index 0000000..1076571
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_VIDEOSTAT_STREAM.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 订阅统计通道数据出参
+ * @date 2022/12/12 11:39:32
+ */
+public class NET_OUT_ATTACH_VIDEOSTAT_STREAM extends NetSDKLib.SdkStructure {
+ /**
+ * 此结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_ATTACH_VIDEOSTAT_STREAM() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_VIDEO_ANALYSE_ANALYSE_PROC.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_VIDEO_ANALYSE_ANALYSE_PROC.java
new file mode 100644
index 0000000..aaa299c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_VIDEO_ANALYSE_ANALYSE_PROC.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description CLIENT_AttachVideoAnalyseAnalyseProc 输出参数
+ * @date 2023/02/21 14:39:21
+ */
+public class NET_OUT_ATTACH_VIDEO_ANALYSE_ANALYSE_PROC extends NetSDKLib.SdkStructure {
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_OUT_ATTACH_VIDEO_ANALYSE_ANALYSE_PROC() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_VIDEO_ANALYSE_ANALYSE_PROC_EX.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_VIDEO_ANALYSE_ANALYSE_PROC_EX.java
new file mode 100644
index 0000000..d7dc8c8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_VIDEO_ANALYSE_ANALYSE_PROC_EX.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_AttachVideoAnalyseAnalyseProc 输出参数
+*/
+public class NET_OUT_ATTACH_VIDEO_ANALYSE_ANALYSE_PROC_EX extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_OUT_ATTACH_VIDEO_ANALYSE_ANALYSE_PROC_EX() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_VIDEO_ANALYSE_TRACK_PROC.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_VIDEO_ANALYSE_TRACK_PROC.java
new file mode 100644
index 0000000..42acc83
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_VIDEO_ANALYSE_TRACK_PROC.java
@@ -0,0 +1,22 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_AttachVideoAnalyseTrackProc 输出参数
+* @origin autoTool
+* @date 2023/09/22 13:56:25
+*/
+public class NET_OUT_ATTACH_VIDEO_ANALYSE_TRACK_PROC extends NetSDKLib.SdkStructure {
+/**
+/ 此结构体大小,必须赋值
+*/
+ public int dwSize;
+
+public NET_OUT_ATTACH_VIDEO_ANALYSE_TRACK_PROC(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_VIDEO_STATISTICS.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_VIDEO_STATISTICS.java
new file mode 100644
index 0000000..283ecdc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_ATTACH_VIDEO_STATISTICS.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_AttachVideoStatistics 输出参数
+ * @date 2022/10/28 10:52:27
+ */
+public class NET_OUT_ATTACH_VIDEO_STATISTICS extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_ATTACH_VIDEO_STATISTICS() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_AUDIO_DECODE_CAPS.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_AUDIO_DECODE_CAPS.java
new file mode 100644
index 0000000..71c0591
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_AUDIO_DECODE_CAPS.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 获取音频解码能力集出参
+ * @date 2021/01/06
+ */
+public class NET_OUT_AUDIO_DECODE_CAPS extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小,赋值为 sizeof(NET_OUT_AUDIO_DECODE_CAPS)
+ */
+ public int dwSize;
+ /**
+ * 音频解码格式信息
+ * */
+ public NET_AUDIO_DECODE_FORMAT[] stuDecodeFormats = (NET_AUDIO_DECODE_FORMAT[])new NET_AUDIO_DECODE_FORMAT().toArray(64);
+ /**
+ * 返回的音频解码格式信息数量
+ * */
+ public int nFormatsRet;
+
+ public NET_OUT_AUDIO_DECODE_CAPS(){
+ this.dwSize=size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_AUTO_CALIBRATE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_AUTO_CALIBRATE.java
new file mode 100644
index 0000000..cd979b4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_AUTO_CALIBRATE.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_AutoCalibrate 接口输出参数
+*/
+public class NET_OUT_AUTO_CALIBRATE extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_OUT_AUTO_CALIBRATE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_CAMERASTATE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_CAMERASTATE.java
new file mode 100644
index 0000000..9a82913
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_CAMERASTATE.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * {@link NetSDKLib#CLIENT_AttachCameraState} 输出参数
+ * {@link NET_IN_CAMERASTATE} 对应接口入参
+ *
+ * @author : 47040
+ * @since : Created in 2021/1/15 14:08
+ */
+public class NET_OUT_CAMERASTATE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 物体ID,每个ID表示一个唯一的物体
+ */
+ public int nObjectID;
+
+ public NET_OUT_CAMERASTATE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_CHECK_OBJECT_FAVORITES_LIBRARY_MARK_STATUS.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_CHECK_OBJECT_FAVORITES_LIBRARY_MARK_STATUS.java
new file mode 100644
index 0000000..6a00c88
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_CHECK_OBJECT_FAVORITES_LIBRARY_MARK_STATUS.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * CLIENT_CheckObjectFavoritesLibraryMarkStatus 接口输出参数
+*/
+public class NET_OUT_CHECK_OBJECT_FAVORITES_LIBRARY_MARK_STATUS extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * pstuResults最大个数
+ */
+ public int nMaxCount;
+ /**
+ * 收藏结果状态列表, 内存由用户申请释放, 大小为sizeof(NET_OBJECT_FAVORITES_LIBRARY_MARK_STATUS_RESULTS)*nMaxCount,参见结构体定义 {@link com.netsdk.lib.structure.NET_OBJECT_FAVORITES_LIBRARY_MARK_STATUS_RESULTS}
+ */
+ public Pointer pstuResults;
+ /**
+ * 实际返回的个数
+ */
+ public int nRetCount;
+
+ public NET_OUT_CHECK_OBJECT_FAVORITES_LIBRARY_MARK_STATUS() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_CLEAR_PRIVACY_MASKING.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_CLEAR_PRIVACY_MASKING.java
new file mode 100644
index 0000000..dbbefa8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_CLEAR_PRIVACY_MASKING.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_ClearPrivacyMasking 输出参数
+ * @date 2022/07/21 17:20:52
+ */
+public class NET_OUT_CLEAR_PRIVACY_MASKING extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_CLEAR_PRIVACY_MASKING() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_ADD.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_ADD.java
new file mode 100644
index 0000000..8225401
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_ADD.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+import static com.netsdk.lib.NetSDKLib.NET_MAX_MODE_NUMBER;
+
+/**
+ * 录播主机添加模式出参
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/27 16:54
+ */
+public class NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_ADD extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 实际返回个数
+ */
+ public int nCount;
+ /**
+ * 返回数组
+ */
+ public NET_COURSECOMPOSITE_CHANNEL_MODE_ADD_RESULT[] stResult = new NET_COURSECOMPOSITE_CHANNEL_MODE_ADD_RESULT[NET_MAX_MODE_NUMBER];
+
+ public NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_ADD() {
+ dwSize = this.size();
+ for (int i = 0; i < stResult.length; i++) {
+ stResult[i] = new NET_COURSECOMPOSITE_CHANNEL_MODE_ADD_RESULT();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_DELETE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_DELETE.java
new file mode 100644
index 0000000..9254857
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_DELETE.java
@@ -0,0 +1,31 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+import static com.netsdk.lib.NetSDKLib.NET_MAX_MODE_NUMBER;
+
+/**
+ * 录播主机删除模式出参
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/27 17:04
+ */
+public class NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_DELETE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 删除的模式个数
+ */
+ public int nReturnNum;
+ /**
+ * 返回码: 1 成功, 2 失败s
+ */
+ public int[] nReturnCode = new int[NET_MAX_MODE_NUMBER];
+
+ public NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_DELETE() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_GET.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_GET.java
new file mode 100644
index 0000000..b847071
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_GET.java
@@ -0,0 +1,38 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+import static com.netsdk.lib.NetSDKLib.NET_MAX_MODE_NUMBER;
+
+/**
+ * 录播主机获取模式出参
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/27 17:26
+ */
+public class NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_GET extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 实际获取的模式个数
+ */
+ public int nReturnNum;
+ /**
+ * 模式编号
+ */
+ public int[] nMode = new int[NET_MAX_MODE_NUMBER];
+ /**
+ * 模式信息
+ */
+ public NET_COMPOSITECHANNELMODE_INFO[] stModeInfo = new NET_COMPOSITECHANNELMODE_INFO[NET_MAX_MODE_NUMBER];
+
+ public NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_GET() {
+ dwSize = this.size();
+ for (int i = 0; i < stModeInfo.length; i++) {
+ stModeInfo[i] = new NET_COMPOSITECHANNELMODE_INFO();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_MODIFY.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_MODIFY.java
new file mode 100644
index 0000000..299d8c7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_MODIFY.java
@@ -0,0 +1,31 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+import static com.netsdk.lib.NetSDKLib.NET_MAX_MODE_NUMBER;
+
+/**
+ * 录播主机修改模式出参
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/27 17:21
+ */
+public class NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_MODIFY extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 修改的模式个数, 和修改的模式个数相同
+ */
+ public int nReturnNum;
+ /**
+ * 返回码: 1 成功, 2 失败, 3, 已满, 4 资源不足
+ */
+ public int[] nReturnCode = new int[NET_MAX_MODE_NUMBER];
+
+ public NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_MODIFY() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_GET_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_GET_INFO.java
new file mode 100644
index 0000000..81f92fb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_GET_INFO.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 获取组合通道信息出参 {@link NetSDKLib#CLIENT_OperateCourseCompositeChannel}
+ * @author : 47040
+ * @since : Created in 2020/9/28 20:05
+ */
+public class NET_OUT_COURSECOMPOSITE_GET_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 组合通道信息
+ */
+ public NET_COMPOSITECHANNEL_INFO stuChannelInfo;
+
+ public NET_OUT_COURSECOMPOSITE_GET_INFO() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_GET_LOCKINFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_GET_LOCKINFO.java
new file mode 100644
index 0000000..3f375a5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_GET_LOCKINFO.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 获取锁定状态出参 {@link NetSDKLib#CLIENT_OperateCourseCompositeChannel}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 20:00
+ */
+public class NET_OUT_COURSECOMPOSITE_GET_LOCKINFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 锁定状态 1 true, 0 false
+ */
+ public int bState;
+
+ public NET_OUT_COURSECOMPOSITE_GET_LOCKINFO() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_LOCK_CONTROL.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_LOCK_CONTROL.java
new file mode 100644
index 0000000..b80360e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_LOCK_CONTROL.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 锁定和解锁组合通道和逻辑通道出参 {@link NetSDKLib#CLIENT_OperateCourseCompositeChannel}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 19:57
+ */
+public class NET_OUT_COURSECOMPOSITE_LOCK_CONTROL extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_COURSECOMPOSITE_LOCK_CONTROL() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_SET_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_SET_INFO.java
new file mode 100644
index 0000000..d556193
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_SET_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 设置组合通道信息出参 {@link NetSDKLib#CLIENT_OperateCourseCompositeChannel}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 20:54
+ */
+public class NET_OUT_COURSECOMPOSITE_SET_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_COURSECOMPOSITE_SET_INFO() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_UPDATE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_UPDATE_INFO.java
new file mode 100644
index 0000000..3f9dab0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSECOMPOSITE_UPDATE_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 组合通道信息更新到time出参 {@link NetSDKLib#CLIENT_OperateCourseCompositeChannel}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 21:02
+ */
+public class NET_OUT_COURSECOMPOSITE_UPDATE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_COURSECOMPOSITE_UPDATE_INFO() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSERECORD_GETINFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSERECORD_GETINFO.java
new file mode 100644
index 0000000..ad517d3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSERECORD_GETINFO.java
@@ -0,0 +1,31 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+import static com.netsdk.lib.NetSDKLib.MAX_COURSE_LOGIC_CHANNEL;
+
+/**
+ * 获取指定教室的录像信息出参 {@link NetSDKLib#CLIENT_OperateCourseRecordManager}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 19:23
+ */
+public class NET_OUT_COURSERECORD_GETINFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 逻辑通道数量
+ */
+ public int nChannelNum;
+ /**
+ * 0:无效,1:录像,2不录像,下标对应为逻辑通道号
+ */
+ public int[] nCanRecord = new int[MAX_COURSE_LOGIC_CHANNEL];
+
+ public NET_OUT_COURSERECORD_GETINFO() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSERECORD_GET_TIME.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSERECORD_GET_TIME.java
new file mode 100644
index 0000000..7fe53bb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSERECORD_GET_TIME.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 获取当前课程已录制时间出参 {@link NetSDKLib#CLIENT_OperateCourseRecordManager}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 19:44
+ */
+public class NET_OUT_COURSERECORD_GET_TIME extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 已录制时间,单位:秒
+ */
+ public int nTime;
+
+ public NET_OUT_COURSERECORD_GET_TIME() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSERECORD_SETINFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSERECORD_SETINFO.java
new file mode 100644
index 0000000..28d01c3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSERECORD_SETINFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 设置指定教室的录像信息出参 {@link NetSDKLib#CLIENT_OperateCourseRecordManager}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 19:31
+ */
+public class NET_OUT_COURSERECORD_SETINFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_COURSERECORD_SETINFO() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSERECORD_UPDATE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSERECORD_UPDATE_INFO.java
new file mode 100644
index 0000000..9b1c0e1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_COURSERECORD_UPDATE_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 录像信息更新到time出参 {@link NetSDKLib#CLIENT_OperateCourseRecordManager}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 19:40
+ */
+public class NET_OUT_COURSERECORD_UPDATE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_COURSERECORD_UPDATE_INFO() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_CREATE_GROUP_FOR_VEHICLE_REG_DB.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_CREATE_GROUP_FOR_VEHICLE_REG_DB.java
new file mode 100644
index 0000000..f752c67
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_CREATE_GROUP_FOR_VEHICLE_REG_DB.java
@@ -0,0 +1,19 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description CLIENT_CreateGroupForVehicleRegisterDB 接口输出参数
+ * @date 2021/8/17 11:28
+ */
+public class NET_OUT_CREATE_GROUP_FOR_VEHICLE_REG_DB extends NetSDKLib.SdkStructure {
+ public int dwSize; // 结构体大小
+ public byte[] szGroupID = new byte[64]; // 车辆组标识
+
+ public NET_OUT_CREATE_GROUP_FOR_VEHICLE_REG_DB(){
+ this.dwSize=this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_CREATE_LOW_POWER_CHANNEL.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_CREATE_LOW_POWER_CHANNEL.java
new file mode 100644
index 0000000..d8064bf
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_CREATE_LOW_POWER_CHANNEL.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_CreateLowPowerChannel 接口输出参数
+*/
+public class NET_OUT_CREATE_LOW_POWER_CHANNEL extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_CREATE_LOW_POWER_CHANNEL() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_CREATE_TRANSMIT_TUNNEL.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_CREATE_TRANSMIT_TUNNEL.java
new file mode 100644
index 0000000..b9c0be9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_CREATE_TRANSMIT_TUNNEL.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * CLIENT_CreateTransmitTunnel 接口输出参数
+ */
+public class NET_OUT_CREATE_TRANSMIT_TUNNEL extends NetSDKLib.SdkStructure {
+ /**
+ * /< 结构体大小
+ */
+ public int dwSize;
+ /**
+ * /< 对上侦听端口
+ */
+ public int nPort;
+ /**
+ * 私有web代理访问协议 {@link com.netsdk.lib.enumeration.EM_WEB_TUNNEL_PROTOCOL}
+ */
+ public int emWebProtocol;
+ /**
+ * 用户名
+ */
+ public byte[] szUserName = new byte[128];
+ /**
+ * 令牌
+ */
+ public byte[] szTempToken = new byte[128];
+
+ public NET_OUT_CREATE_TRANSMIT_TUNNEL() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_CREATE_WORKSUIT_COMPARE_GROUP.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_CREATE_WORKSUIT_COMPARE_GROUP.java
new file mode 100644
index 0000000..65c4c72
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_CREATE_WORKSUIT_COMPARE_GROUP.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_CreateWorkSuitCompareGroup 接口输出参数
+ * @date 2022/10/08 17:06:16
+ */
+public class NET_OUT_CREATE_WORKSUIT_COMPARE_GROUP extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 字节对齐
+ */
+ public byte[] szReserved = new byte[4];
+ /**
+ * 合规库组ID
+ */
+ public byte[] szGroupID = new byte[64];
+
+ public NET_OUT_CREATE_WORKSUIT_COMPARE_GROUP() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_CREAT_SUB_BUSINESS_MDL_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_CREAT_SUB_BUSINESS_MDL_INFO.java
new file mode 100644
index 0000000..543875f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_CREAT_SUB_BUSINESS_MDL_INFO.java
@@ -0,0 +1,19 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+CLIENT_CreateSubBusinessModule 接口输出参数
+*/
+public class NET_OUT_CREAT_SUB_BUSINESS_MDL_INFO extends NetSDKLib.SdkStructure {
+/**
+/< 结构体大小
+*/
+ public int dwSize;
+
+public NET_OUT_CREAT_SUB_BUSINESS_MDL_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_ALARM_USER.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_ALARM_USER.java
new file mode 100644
index 0000000..d602f92
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_ALARM_USER.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_DeleteAlarmUser 接口输出参数
+ * @date 2023/03/16 11:04:51
+ */
+public class NET_OUT_DELETE_ALARM_USER extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_DELETE_ALARM_USER() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_CALIBRATEINFO_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_CALIBRATEINFO_INFO.java
new file mode 100644
index 0000000..5ca5009
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_CALIBRATEINFO_INFO.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 删除标定点信息出参
+ * @date 2023/05/24 10:24:52
+ */
+public class NET_OUT_DELETE_CALIBRATEINFO_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_DELETE_CALIBRATEINFO_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_COURSE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_COURSE.java
new file mode 100644
index 0000000..9aa3214
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_COURSE.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 删除课程记录 出参指针 {@link NetSDKLib#CLIENT_DeleteCourse}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/17 20:33
+ */
+public class NET_OUT_DELETE_COURSE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 课程 ID 数量
+ */
+ public int nResultIdNum;
+ /**
+ * 课程 ID; -1:删除成功, 原id:删除失败
+ */
+ public int[] nResultId = new int[64];
+
+ public NET_OUT_DELETE_COURSE() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_GROUP_FROM_VEHICLE_REG_DB.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_GROUP_FROM_VEHICLE_REG_DB.java
new file mode 100644
index 0000000..f7b4269
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_GROUP_FROM_VEHICLE_REG_DB.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description CLIENT_DeleteGroupFromVehicleRegisterDB 接口输出参数
+ * @date 2021/8/17 14:16
+ */
+public class NET_OUT_DELETE_GROUP_FROM_VEHICLE_REG_DB extends NetSDKLib.SdkStructure {
+ public int dwSize; // 结构体大小
+
+ public NET_OUT_DELETE_GROUP_FROM_VEHICLE_REG_DB(){
+ this.dwSize=this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_MEDIA_FILE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_MEDIA_FILE_INFO.java
new file mode 100644
index 0000000..f6bcacb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_MEDIA_FILE_INFO.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_DeleteMediaFile 接口输出参数
+*/
+public class NET_OUT_DELETE_MEDIA_FILE_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 返回结果个数
+ */
+ public int nResultCodeNum;
+ /**
+ * 返回结果,是一个数组,与输入Id对应,0 C 删除成功,1 - 删除失败
+ */
+ public int[] nResultCode = new int[32];
+
+ public NET_OUT_DELETE_MEDIA_FILE_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_PRIVACY_MASKING.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_PRIVACY_MASKING.java
new file mode 100644
index 0000000..e2c3b5d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_PRIVACY_MASKING.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_DeletePrivacyMasking 输出参数
+ * @date 2022/07/21 17:20:27
+ */
+public class NET_OUT_DELETE_PRIVACY_MASKING extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_DELETE_PRIVACY_MASKING() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_VEHICLE_FROM_VEHICLE_REG_DB.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_VEHICLE_FROM_VEHICLE_REG_DB.java
new file mode 100644
index 0000000..d06eaff
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_VEHICLE_FROM_VEHICLE_REG_DB.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description CLIENT_DeleteVehicleFromVehicleRegisterDB 接口输出参数
+ * @date 2022/10/22 10:33
+ */
+public class NET_OUT_DELETE_VEHICLE_FROM_VEHICLE_REG_DB extends NetSDKLib.SdkStructure {
+ public int dwSize; // 结构体大小
+
+public NET_OUT_DELETE_VEHICLE_FROM_VEHICLE_REG_DB(){
+ dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_WORKSUIT_BY_SOURCEUID.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_WORKSUIT_BY_SOURCEUID.java
new file mode 100644
index 0000000..0c3691a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_WORKSUIT_BY_SOURCEUID.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_DeleteWorkSuitBySourceUID 接口输出参数
+ * @date 2022/10/08 20:13:32
+ */
+public class NET_OUT_DELETE_WORKSUIT_BY_SOURCEUID extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 错误码个数
+ */
+ public int nErrCodeNum;
+ /**
+ * 错误码信息,参考枚举{ @link EM_DELETE_BY_SOURCEUID_ERRCODE }
+ */
+ public int[] emErrCode = new int[64];
+
+ public NET_OUT_DELETE_WORKSUIT_BY_SOURCEUID() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_WORKSUIT_COMPARE_GROUP.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_WORKSUIT_COMPARE_GROUP.java
new file mode 100644
index 0000000..6f27c51
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_DELETE_WORKSUIT_COMPARE_GROUP.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_DeleteWorkSuitCompareGroup 接口输出参数
+ * @date 2022/10/08 17:14:26
+ */
+public class NET_OUT_DELETE_WORKSUIT_COMPARE_GROUP extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_DELETE_WORKSUIT_COMPARE_GROUP() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_DELIVER_USER_PICTURE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_DELIVER_USER_PICTURE.java
new file mode 100644
index 0000000..0f9154c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_DELIVER_USER_PICTURE.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * className:NET_OUT_DELIVER_USER_PICTURE
+ * description: 下发人脸数据 <—— 出参
+ * author:251589
+ * createTime:2020/12/22 22:01
+ *
+ * @version v1.0
+ */
+public class NET_OUT_DELIVER_USER_PICTURE extends NetSDKLib.SdkStructure {
+ public int dwSize; // 结构体大小
+
+ public NET_OUT_DELIVER_USER_PICTURE() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_DEL_BY_CONDITION_FROM_VEHICLE_REG_DB.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_DEL_BY_CONDITION_FROM_VEHICLE_REG_DB.java
new file mode 100644
index 0000000..7721490
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_DEL_BY_CONDITION_FROM_VEHICLE_REG_DB.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_DeleteByConditionFromVehicleRegisterDB 接口输出参数
+* @date 2022/02/25 15:08:25
+*/
+public class NET_OUT_DEL_BY_CONDITION_FROM_VEHICLE_REG_DB extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+
+public NET_OUT_DEL_BY_CONDITION_FROM_VEHICLE_REG_DB(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_DETACH_TRANSMIT_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_DETACH_TRANSMIT_INFO.java
new file mode 100644
index 0000000..3f71862
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_DETACH_TRANSMIT_INFO.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 251823
+ * @version 1.0
+ * @description CLIENT_DetachTransmitInfo输出参数
+ * @date 2022/02/14
+ */
+public class NET_OUT_DETACH_TRANSMIT_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 用户使用该结构体时,dwSize需赋值为sizeof(NET_OUT_DETACH_TRANSMIT_INFO)
+ */
+ public int dwSize;
+ /**
+ * 应答数据缓冲空间, 用户申请空间
+ */
+ public Pointer szOutBuffer;
+ /**
+ * 应答数据缓冲空间长度
+ */
+ public int dwOutBufferSize;
+ /**
+ * 应答Json数据长度
+ */
+ public int dwOutJsonLen;
+
+ public NET_OUT_DETACH_TRANSMIT_INFO(){
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_DEV_IO_STATS.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_DEV_IO_STATS.java
new file mode 100644
index 0000000..7268574
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_DEV_IO_STATS.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_QueryDevInfo NET_QUERY_DEV_IO_STATS 类型接口输入参数
+ * @date 2021/07/09
+ */
+public class NET_OUT_DEV_IO_STATS extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 存储设备io信息个数
+ */
+ public int nInfoNum;
+ /**
+ * 存储设备io信息
+ */
+ public NET_DEV_IO_STAT_INFO[] stuInfo = (NET_DEV_IO_STAT_INFO[])new NET_DEV_IO_STAT_INFO().toArray(512);
+
+ public NET_OUT_DEV_IO_STATS(){
+ this.dwSize=size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_DISPATCH_BUS_HTTPS_SERVERS_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_DISPATCH_BUS_HTTPS_SERVERS_INFO.java
new file mode 100644
index 0000000..a770bce
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_DISPATCH_BUS_HTTPS_SERVERS_INFO.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 下发https服务器地址,供设备以https方式上报公交线路、报站信息 CLIENT_DispatchBusHttpsServers 接口输出参数
+*/
+public class NET_OUT_DISPATCH_BUS_HTTPS_SERVERS_INFO extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+
+ public NET_OUT_DISPATCH_BUS_HTTPS_SERVERS_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_DOFIND_FACERECONGNITION_EX.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_DOFIND_FACERECONGNITION_EX.java
new file mode 100644
index 0000000..b264221
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_DOFIND_FACERECONGNITION_EX.java
@@ -0,0 +1,39 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 260611
+ * @description CLIENT_DoFindFaceRecognitionEx接口输出参数
+ * @date 2022/11/21 17:53:19
+ */
+public class NET_OUT_DOFIND_FACERECONGNITION_EX extends NetSDKLib.SdkStructure {
+ public int dwSize;
+ /**
+ * 缓冲地址
+ */
+ public Pointer pBuffer;
+ /**
+ * 缓冲数据长度
+ */
+ public int nBufferLen;
+ /**
+ * 设备实际返回的候选信息结构体个数, 最大值是50, nRetCadidateEx2Num必须要小于等于nCadidateEx2Num
+ */
+ public int nRetCadidateEx2Num;
+ /**
+ * 需要用户输入的候选信息结构体个数, 最大值是50
+ */
+ public int nCadidateEx2Num;
+ /**
+ * 候选人员信息列表, 需要用户进行申请和释放,申请内存大小为: sizeof(NET_CANDIDATE_INFOEX2) * nCadidateEx2Num
+ */
+ public Pointer pstuCandidatesEx2;
+
+ public NET_OUT_DOFIND_FACERECONGNITION_EX() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_DOWNLOAD.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_DOWNLOAD.java
new file mode 100644
index 0000000..6146967
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_DOWNLOAD.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_DownloadByRecordFileEx3 接口输出参数
+ * @origin autoTool
+ * @date 2023/11/30 19:38:56
+ */
+public class NET_OUT_DOWNLOAD extends NetSDKLib.SdkStructure {
+ /**
+ * / 结构体大小:赋值为结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_DOWNLOAD() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_DOWNLOAD_BYFILE_SELFADAPT.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_DOWNLOAD_BYFILE_SELFADAPT.java
new file mode 100644
index 0000000..5145391
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_DOWNLOAD_BYFILE_SELFADAPT.java
@@ -0,0 +1,22 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 自适应下载录像 按文件 {@link NetSDKLib#CLIENT_DownloadByFileSelfAdapt} 出参
+ * 入参 {@link NET_IN_DOWNLOAD_BYFILE_SELFADAPT}
+ *
+ * @author 47040
+ * @since Created in 2021/6/19 10:42
+ */
+public class NET_OUT_DOWNLOAD_BYFILE_SELFADAPT extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_DOWNLOAD_BYFILE_SELFADAPT() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_DOWNLOAD_MULTI_FILE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_DOWNLOAD_MULTI_FILE.java
new file mode 100644
index 0000000..0b6f287
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_DOWNLOAD_MULTI_FILE.java
@@ -0,0 +1,27 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 批量下载文件 出参
+ * 接口 {@link NetSDKLib#CLIENT_DownLoadMultiFile}
+ * 出参 {@link NET_IN_DOWNLOAD_MULTI_FILE}
+ *
+ * @author : 47040
+ * @since : Created in 2020/12/28 16:11
+ */
+public class NET_OUT_DOWNLOAD_MULTI_FILE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 下载句柄
+ */
+ public NetSDKLib.LLong lDownLoadHandle;
+
+ public NET_OUT_DOWNLOAD_MULTI_FILE() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_DOWNLOAD_PIECE_FILE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_DOWNLOAD_PIECE_FILE.java
new file mode 100644
index 0000000..1a90fa1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_DOWNLOAD_PIECE_FILE.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+import com.sun.jna.Pointer;
+
+public class NET_OUT_DOWNLOAD_PIECE_FILE extends SdkStructure {
+ public int dwSize;
+ /**
+ * 文件总长度
+ */
+ public int nFileLength;
+ /**
+ * 本次返回的数据长度,单位字节,建议为32KB,最大不超过4MB
+ */
+ public int nPacketLength;
+ /**
+ * 本次请求的文件数据,由用户申请内存,大小为nBufferLen
+ */
+ public Pointer szBuffer;
+ /**
+ * 本次请求的文件数据长度,单位字节
+ */
+ public int nBufferLen;
+
+ public NET_OUT_DOWNLOAD_PIECE_FILE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_DO_FIND_DETAIL_CLUSTER.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_DO_FIND_DETAIL_CLUSTER.java
new file mode 100644
index 0000000..b3ebe1c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_DO_FIND_DETAIL_CLUSTER.java
@@ -0,0 +1,35 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 接口 CLIENT_DoFindDetailNumberStatCluster 的输出参数
+ * @date 2022/10/09 14:08:24
+ */
+public class NET_OUT_DO_FIND_DETAIL_CLUSTER extends NetSDKLib.SdkStructure {
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 实际查询返回的记录数
+ */
+ public int nFound;
+ /**
+ * 返回记录实际条数
+ */
+ public int nFindInfoRealNum;
+ /**
+ * 返回的记录,单次不超过1024
+ */
+ public NET_CLUSTER_DETAIL_FIND_INFO[] stuClusterFindInfo = new NET_CLUSTER_DETAIL_FIND_INFO[1024];
+
+ public NET_OUT_DO_FIND_DETAIL_CLUSTER() {
+ for (int i = 0; i < stuClusterFindInfo.length; i++) {
+ stuClusterFindInfo[i] = new NET_CLUSTER_DETAIL_FIND_INFO();
+ }
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_DO_FIND_OBJECT_FAVORITES_LIBRARY.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_DO_FIND_OBJECT_FAVORITES_LIBRARY.java
new file mode 100644
index 0000000..113a786
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_DO_FIND_OBJECT_FAVORITES_LIBRARY.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * CLIENT_DoFindObjectFavoritesLibrary 接口输出参数
+*/
+public class NET_OUT_DO_FIND_OBJECT_FAVORITES_LIBRARY extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 查询到的总条数
+ */
+ public int nFound;
+ /**
+ * 记录集合个数
+ */
+ public int nRetCount;
+ /**
+ * pstuRecords申请的最大个数
+ */
+ public int nMaxCount;
+ /**
+ * 查询到的记录集合, 内存由用户申请释放, 大小为sizeof(NET_OBJECT_FAVORITES_LIBRARY_RECORDS)*nMaxCount,参见结构体定义 {@link com.netsdk.lib.structure.NET_OBJECT_FAVORITES_LIBRARY_RECORDS}
+ */
+ public Pointer pstuRecords;
+
+ public NET_OUT_DO_FIND_OBJECT_FAVORITES_LIBRARY() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_DO_FIND_TALK_DEV.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_DO_FIND_TALK_DEV.java
new file mode 100644
index 0000000..cbee2eb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_DO_FIND_TALK_DEV.java
@@ -0,0 +1,35 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 421657
+ * @description CLIENT_DoFindTalkDev 接口输出参数
+ * @origin autoTool
+ * @date 2023/10/26 10:05:01
+ */
+public class NET_OUT_DO_FIND_TALK_DEV extends NetSDKLib.SdkStructure {
+ /**
+ * / 结构体大小
+ */
+ public int dwSize;
+ /**
+ * / 用户指定分配结构体个数,需大于等于NET_IN_DO_FIND_TALK_DEV的nCount
+ */
+ public int nMaxNum;
+ /**
+ * / 查询信息数据, 内存由用户申请释放, 大小为NET_TALK_DEV_DO_FIND_INFO*nMaxNum, refer to {@link NET_TALK_DEV_DO_FIND_INFO}
+ */
+ public Pointer pstuInfo;
+ /**
+ * / 实际返回的查询数量
+ */
+ public int nRetNum;
+
+ public NET_OUT_DO_FIND_TALK_DEV() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_DO_FIND_VEHICLE_REG_DB.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_DO_FIND_VEHICLE_REG_DB.java
new file mode 100644
index 0000000..c73a2c6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_DO_FIND_VEHICLE_REG_DB.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description CLIENT_DoFindVehicleRegisterDB 接口输出参数
+ * @date 2022/10/22 10:52
+ */
+public class NET_OUT_DO_FIND_VEHICLE_REG_DB extends NetSDKLib.SdkStructure {
+ public int dwSize; // 结构体大小
+ public int nCarCandidateNum; // 候选车辆数量
+ public NetSDKLib.NET_CAR_CANDIDATE_INFO[] stuCarCandidate = new NetSDKLib.NET_CAR_CANDIDATE_INFO[128]; // 候选车辆数据
+ public int nFound; // 查询到的条数
+
+ public NET_OUT_DO_FIND_VEHICLE_REG_DB(){
+
+ for (int i=0;i1时,对应emTemperatureType为ALL
+ */
+ public int nRetMonitorPointNum;
+ /**
+ * 监测点温度
+ */
+ public NET_TEMPERATUREEX_VALUE[] stuTemperatureEx = new NET_TEMPERATUREEX_VALUE[NetSDKLib.MAX_TEMPERATUREEX_POINT_NUM];
+
+ public NET_OUT_GET_TEMPERATUREEX() {
+ for (int i = 0; i < stuTemperatureEx.length; i++) {
+ stuTemperatureEx[i] = new NET_TEMPERATUREEX_VALUE();
+ }
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_TEMPORARY_TOKEN.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_TEMPORARY_TOKEN.java
new file mode 100644
index 0000000..60758e7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_TEMPORARY_TOKEN.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetTemporaryToken 接口出参
+*/
+public class NET_OUT_GET_TEMPORARY_TOKEN extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 临时用户账号信息,参见结构体定义 {@link com.netsdk.lib.structure.NET_TEMP_USER_INFO}
+ */
+ public NET_TEMP_USER_INFO stuTempUserInfo = new NET_TEMP_USER_INFO();
+
+ public NET_OUT_GET_TEMPORARY_TOKEN() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_TOUR_SOURCE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_TOUR_SOURCE.java
new file mode 100644
index 0000000..d1bac08
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_TOUR_SOURCE.java
@@ -0,0 +1,27 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * CLIENT_GetTourSource 接口输出参数
+*/
+public class NET_OUT_GET_TOUR_SOURCE extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+ /**
+ * 窗口轮巡信息数组, 用户分配内存,大小为sizeof(NET_SPLIT_TOUR_SOURCE)*nMaxWndCount,参见结构体定义 {@link com.netsdk.lib.structure.NET_SPLIT_TOUR_SOURCE}
+ */
+ public Pointer pstuWndSrcs;
+ /**
+ * 窗口最大数组, 用户填写
+ */
+ public int nMaxWndCount;
+ /**
+ * 返回的窗口数量
+ */
+ public int nRetWndCount;
+
+ public NET_OUT_GET_TOUR_SOURCE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_UPLOAD_PATH_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_UPLOAD_PATH_INFO.java
new file mode 100644
index 0000000..a5ddadc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_UPLOAD_PATH_INFO.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetUploadPath接口出参
+*/
+public class NET_OUT_GET_UPLOAD_PATH_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 实际用于上传的文件名称
+ */
+ public byte[] szUploadName = new byte[128];
+ /**
+ * 文件上传路径
+ */
+ public byte[] szFilePath = new byte[256];
+
+ public NET_OUT_GET_UPLOAD_PATH_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_VAULTDOOR_STATE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_VAULTDOOR_STATE_INFO.java
new file mode 100644
index 0000000..fcb2356
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_VAULTDOOR_STATE_INFO.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_GetVaultDoorState 的输出参数
+* @date 2022/08/10 11:46:30
+*/
+public class NET_OUT_GET_VAULTDOOR_STATE_INFO extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+/**
+锁状态 {@link com.netsdk.lib.enumeration.EM_VAULT_LOCKSTATE}
+*/
+ public int emLockState;
+/**
+门状态 {@link com.netsdk.lib.enumeration.EM_VAULT_DOORSTATE}
+*/
+ public int emDoorState;
+
+public NET_OUT_GET_VAULTDOOR_STATE_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_VIDEOSTAT_HEATMAP.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_VIDEOSTAT_HEATMAP.java
new file mode 100644
index 0000000..6d16a65
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_VIDEOSTAT_HEATMAP.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 获取热图数据接口出参
+ * @date 2020/9/21
+ */
+public class NET_OUT_GET_VIDEOSTAT_HEATMAP extends NetSDKLib.SdkStructure {
+ /**
+ * 此结构体大小
+ */
+ public int dwSize;
+ /**
+ * 查询的Token
+ */
+ public int nToken;
+
+ public NET_OUT_GET_VIDEOSTAT_HEATMAP(){
+ this.dwSize=size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_VTO_MANAGER_RELATION.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_VTO_MANAGER_RELATION.java
new file mode 100644
index 0000000..ac3ae95
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_VTO_MANAGER_RELATION.java
@@ -0,0 +1,36 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description CLIENT_GetVTOManagerRelation 出参
+ * @origin autoTool
+ * @date 2023/10/19 14:16:47
+ */
+public class NET_OUT_GET_VTO_MANAGER_RELATION extends NetSDKLib.SdkStructure {
+ /**
+ * / 结构体大小
+ */
+ public int dwSize;
+ /**
+ * / 是否查询完成
+ */
+ public int bIsCompleted;
+ /**
+ * / 设备组织树节点信息个数
+ */
+ public int nNodesNum;
+ /**
+ * / 设备组织树节点信息
+ */
+ public NET_VTO_DEV_NODE_INFO[] stuNodes = new NET_VTO_DEV_NODE_INFO[128];
+
+ public NET_OUT_GET_VTO_MANAGER_RELATION() {
+ for (int i = 0; i < stuNodes.length; i++) {
+ stuNodes[i] = new NET_VTO_DEV_NODE_INFO();
+ }
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_WORK_GROUP_DEVICE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_WORK_GROUP_DEVICE_INFO.java
new file mode 100644
index 0000000..6ce288c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_WORK_GROUP_DEVICE_INFO.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * CLIENT_GetWorkGroupDeviceInfos 接口输出参数
+*/
+public class NET_OUT_GET_WORK_GROUP_DEVICE_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 存储设备信息,由用户申请内存,大小为sizeof(DH_STORAGE_DEVICE)*nMaxCount,参见结构体定义 {@link com.netsdk.lib.structure.NET_STORAGE_DEVICE}
+ */
+ public Pointer pstuDeviceInfo;
+ /**
+ * 存储设备信息的个数, 最大为128个
+ */
+ public int nMaxCount;
+ /**
+ * 返回的存储设备信息的个数, 最大为128个
+ */
+ public int nReturnCount;
+
+ public NET_OUT_GET_WORK_GROUP_DEVICE_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_XRAY_MULTILEVEL_DETECT_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_XRAY_MULTILEVEL_DETECT_INFO.java
new file mode 100644
index 0000000..ca6360e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_XRAY_MULTILEVEL_DETECT_INFO.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 接口 CLIENT_GetXRayMultiLevelDetectCFG 的输出参数
+* @date 2022/12/01 16:22:06
+*/
+public class NET_OUT_GET_XRAY_MULTILEVEL_DETECT_INFO extends NetSDKLib.SdkStructure {
+/**
+此结构体大小,必须赋值
+*/
+ public int dwSize;
+/**
+安全等级信息
+*/
+ public NET_XRAY_MULTILEVEL_DETECT_CFG_INFO stuInfo = new NET_XRAY_MULTILEVEL_DETECT_CFG_INFO();
+
+public NET_OUT_GET_XRAY_MULTILEVEL_DETECT_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_XRAY_SOURCE_CAPS_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_XRAY_SOURCE_CAPS_INFO.java
new file mode 100644
index 0000000..56dec4e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_XRAY_SOURCE_CAPS_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetXRaySourceCaps 接口输出参数
+*/
+public class NET_OUT_GET_XRAY_SOURCE_CAPS_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * X射线源能力集信息,参见结构体定义 {@link com.netsdk.lib.structure.NET_XRAY_SOURCE_CAPS}
+ */
+ public NET_XRAY_SOURCE_CAPS stuCaps = new NET_XRAY_SOURCE_CAPS();
+
+ public NET_OUT_GET_XRAY_SOURCE_CAPS_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_XRAY_SOURCE_CUMULATE_TIME_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_XRAY_SOURCE_CUMULATE_TIME_INFO.java
new file mode 100644
index 0000000..5e186aa
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_XRAY_SOURCE_CUMULATE_TIME_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetXRaySourceCumulateTime 接口输出参数
+*/
+public class NET_OUT_GET_XRAY_SOURCE_CUMULATE_TIME_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 射线源累积出束时间(单位:秒)
+ */
+ public int nTime;
+
+ public NET_OUT_GET_XRAY_SOURCE_CUMULATE_TIME_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_ZONE_ARMODE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_ZONE_ARMODE_INFO.java
new file mode 100644
index 0000000..3bee136
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_GET_ZONE_ARMODE_INFO.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_GetZoneArmMode 接口出参
+* @origin autoTool
+* @date 2023/08/09 11:16:07
+*/
+public class NET_OUT_GET_ZONE_ARMODE_INFO extends NetSDKLib.SdkStructure {
+/**
+此结构体大小,必须赋值
+*/
+ public int dwSize;
+/**
+布撤防模式数组有效个数(第二维)
+*/
+ public int nStateNum;
+/**
+布撤防模式:1."T":Total布防/外出布防模式 2."D" 撤防
+*/
+ public byte[] szState = new byte[256*32];
+
+public NET_OUT_GET_ZONE_ARMODE_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_GOTO_PRIVACY_MASKING.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_GOTO_PRIVACY_MASKING.java
new file mode 100644
index 0000000..662ae34
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_GOTO_PRIVACY_MASKING.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_GotoPrivacyMasking 输出参数
+ * @date 2022/07/21 17:20:00
+ */
+public class NET_OUT_GOTO_PRIVACY_MASKING extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_GOTO_PRIVACY_MASKING() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_INSERT_MULTI_TALK_DEV.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_INSERT_MULTI_TALK_DEV.java
new file mode 100644
index 0000000..88f6136
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_INSERT_MULTI_TALK_DEV.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 421657
+ * @description CLIENT_InsertMultiTalkDev 出参
+ * @origin autoTool
+ * @date 2023/10/26 09:34:53
+ */
+public class NET_OUT_INSERT_MULTI_TALK_DEV extends NetSDKLib.SdkStructure {
+ /**
+ * / 结构体大小
+ */
+ public int dwSize;
+ /**
+ * / 下发失败数量
+ */
+ public int nFailCount;
+ /**
+ * / 信息个数
+ */
+ public int nFailCodesNum;
+ /**
+ * / 详细的失败信息, 0表示失败, 1表示成功
+ */
+ public int[] nFailCodes = new int[128];
+
+ public NET_OUT_INSERT_MULTI_TALK_DEV() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_INSTALL_APPEND_DATA.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_INSTALL_APPEND_DATA.java
new file mode 100644
index 0000000..dfb1095
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_INSTALL_APPEND_DATA.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_UpgraderInstall接口的 EM_UPGRADE_INSTALL_APPEND_DATA命令出参
+*/
+public class NET_OUT_INSTALL_APPEND_DATA extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_INSTALL_APPEND_DATA() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_INSTALL_CANCEL.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_INSTALL_CANCEL.java
new file mode 100644
index 0000000..7cd25d7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_INSTALL_CANCEL.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_UpgraderInstall接口的 EM_UPGRADE_INSTALL_CANCEL命令出参
+*/
+public class NET_OUT_INSTALL_CANCEL extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_INSTALL_CANCEL() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_INSTALL_EXECUTE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_INSTALL_EXECUTE.java
new file mode 100644
index 0000000..787e81e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_INSTALL_EXECUTE.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_UpgraderInstall接口的 EM_UPGRADE_INSTALL_EXECUTE命令出参
+*/
+public class NET_OUT_INSTALL_EXECUTE extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_INSTALL_EXECUTE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_INSTALL_FIRMWAREEX.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_INSTALL_FIRMWAREEX.java
new file mode 100644
index 0000000..b731518
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_INSTALL_FIRMWAREEX.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_UpgraderInstall接口的 EM_UPGRADER_INSTALL_FIRMWAREEX命令出参
+*/
+public class NET_OUT_INSTALL_FIRMWAREEX extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_INSTALL_FIRMWAREEX() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_INSTALL_GETSTATE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_INSTALL_GETSTATE.java
new file mode 100644
index 0000000..d12c870
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_INSTALL_GETSTATE.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_UpgraderInstall接口的 EM_UPGRADE_INSTALL_GETSTATE命令出参
+*/
+public class NET_OUT_INSTALL_GETSTATE extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 升级状态,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_NET_UPGRADE_STATUS}
+ */
+ public int emUpgradeStatus;
+ /**
+ * 升级进度
+ */
+ public int nProgress;
+ /**
+ * 升级文件
+ */
+ public byte[] szFile = new byte[256];
+
+ public NET_OUT_INSTALL_GETSTATE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_INSTALL_PREPAREEX.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_INSTALL_PREPAREEX.java
new file mode 100644
index 0000000..8d6a92c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_INSTALL_PREPAREEX.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_UpgraderInstall接口的 EM_UPGRADE_INSTALL_PREPAREEX命令出参
+*/
+public class NET_OUT_INSTALL_PREPAREEX extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_INSTALL_PREPAREEX() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_IVSEVENT_FIND_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_IVSEVENT_FIND_INFO.java
new file mode 100644
index 0000000..4d4b18a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_IVSEVENT_FIND_INFO.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_IVSEventFind接口出参
+* @date 2022/11/02 13:48:02
+*/
+public class NET_OUT_IVSEVENT_FIND_INFO extends NetSDKLib.SdkStructure {
+/**
+此结构体大小,必须赋值
+*/
+ public int dwSize;
+/**
+查询到结果总数
+*/
+ public int dwCount;
+
+public NET_OUT_IVSEVENT_FIND_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_IVSEVENT_NEXTFIND_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_IVSEVENT_NEXTFIND_INFO.java
new file mode 100644
index 0000000..35f9a77
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_IVSEVENT_NEXTFIND_INFO.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+* @author 291189
+* @description CLIENT_IVSEventNextFind接口出参
+* @date 2022/11/02 13:51:15
+*/
+public class NET_OUT_IVSEVENT_NEXTFIND_INFO extends NetSDKLib.SdkStructure {
+/**
+此结构体大小,必须赋值
+*/
+ public int dwSize;
+/**
+pstuEventInfo的个数, 等于 NET_IN_IVSEVENT_NEXTFIND_INFO 的nLimit字段
+*/
+ public int dwEventCnt;
+/**
+事件信息数组,用户分配内存,大小为sizeof(NET_IVSEVENT_EVENT_INFO)*dwEventCnt
+*/
+ public Pointer pstuEventInfo;
+/**
+返回的pstuEventInfo个数
+*/
+ public int dwRetEventCnt;
+
+public NET_OUT_IVSEVENT_NEXTFIND_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_LIGHTINGCONTROL_CAPS.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_LIGHTINGCONTROL_CAPS.java
new file mode 100644
index 0000000..28ece83
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_LIGHTINGCONTROL_CAPS.java
@@ -0,0 +1,110 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 421657
+ * @description 获取补光灯能力出参(对应 : NET_LIGHTINGCONTROL_CAPS)
+ * @origin autoTool
+ * @date 2023/10/19 17:27:54
+ */
+public class NET_OUT_LIGHTINGCONTROL_CAPS extends NetSDKLib.SdkStructure {
+ /**
+ * /结构体大小
+ */
+ public int dwSize;
+ /**
+ * /是否支持灯光控制
+ */
+ public int bSupport;
+ /**
+ * /支持的灯光配置版本 {@link com.netsdk.lib.enumeration.EM_LC_CONFIG_VERSION}
+ */
+ public int emConfigVersion;
+ /**
+ * /灯光类型 {@link com.netsdk.lib.enumeration.EM_LC_LIGHT_TYPE}
+ */
+ public int emLightType;
+ /**
+ * /复合灯光类型
+ */
+ public int[] anLightTypeComplex = new int[3];
+ /**
+ * /复合灯光类型数量
+ */
+ public int nLightTypeComplexLen;
+ /**
+ * /近光灯组数量
+ */
+ public int nNearLightNumber;
+ /**
+ * /中光灯组数量
+ */
+ public int nMiddleLightNumber;
+ /**
+ * /远光灯组数量
+ */
+ public int nFarLightNumber;
+ /**
+ * /默认支持的模式 {@link com.netsdk.lib.enumeration.EM_LC_MODE}
+ */
+ public int emDefaultMode;
+ /**
+ * /支持的模式类型
+ */
+ public int[] anModes = new int[20];
+ /**
+ * /支持的模式数量
+ */
+ public int nModesLen;
+ /**
+ * /复合灯模式信息
+ */
+ public NET_MODES_COMPLEX_LIGHT stuModesComplex = new NET_MODES_COMPLEX_LIGHT();
+ /**
+ * /灯光组信息
+ */
+ public NET_LIGHT_TYPE_COMPLEX_DETAIL stuLightTypeComplexDetail = new NET_LIGHT_TYPE_COMPLEX_DETAIL();
+ /**
+ * /云台联动灯光信息
+ */
+ public NET_LINKING_DETAIL stuLinkingDetail = new NET_LINKING_DETAIL();
+ /**
+ * /灯光组功率控制掩码
+ */
+ public int[] anPower = new int[3];
+ /**
+ * /灯光组激光角度控制掩码
+ */
+ public int[] anAngleControl = new int[3];
+ /**
+ * /灯光补偿信息
+ */
+ public NET_CORRECTION stuCorrection = new NET_CORRECTION();
+ /**
+ * /灯光灵敏度信息
+ */
+ public NET_SENSITIVITY stuSensitivity = new NET_SENSITIVITY();
+ /**
+ * /是否支持激光灯光轴调节
+ */
+ public int bSupportLaserLightMove;
+ /**
+ * /定时模式支持的时间段数量
+ */
+ public int nLightingTimeSectionNum;
+ /**
+ * /是否支持分时配置
+ */
+ public int bSupportByTime;
+ /**
+ * /是否支持复合灯模式信息
+ */
+ public int bSupportModesComplex;
+
+ public NET_OUT_LIGHTINGCONTROL_CAPS() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_LOAD_MAP_PIC.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_LOAD_MAP_PIC.java
new file mode 100644
index 0000000..be50f0b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_LOAD_MAP_PIC.java
@@ -0,0 +1,38 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * CLIENT_LoadMapPic 接口输出参数
+*/
+public class NET_OUT_LOAD_MAP_PIC extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 错误码, -1:未知, 0: 操作成功, 1: 地图不存在
+ */
+ public int nErrorCode;
+ /**
+ * 图片描述信息,当nErrorCode为0时, 该字段有效,参见结构体定义 {@link com.netsdk.lib.structure.NET_MAP_PIC_INFO}
+ */
+ public NET_MAP_PIC_INFO stuPicInfo = new NET_MAP_PIC_INFO();
+ /**
+ * 申请的图片二进制数据长度
+ */
+ public int nMaxBinaryDataLen;
+ /**
+ * 返回的图片二进制数据长度
+ */
+ public int nRetBinaryDataLen;
+ /**
+ * 图片二进制数据,由用户申请释放内存,内存大小为nMaxBinaryDataLen
+ */
+ public Pointer pszBinaryData;
+
+ public NET_OUT_LOAD_MAP_PIC() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MAKE_TOKEN.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MAKE_TOKEN.java
new file mode 100644
index 0000000..2b663fb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MAKE_TOKEN.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 获取token出参
+* @date 2022/10/12 11:10:49
+*/
+public class NET_OUT_MAKE_TOKEN extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+/**
+Token
+*/
+ public int nToken;
+
+public NET_OUT_MAKE_TOKEN(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MANUAL_CONTROL_COURSE_RECORD_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MANUAL_CONTROL_COURSE_RECORD_INFO.java
new file mode 100644
index 0000000..c81217c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MANUAL_CONTROL_COURSE_RECORD_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_ManualControlCourseRecord 接口输出参数
+*/
+public class NET_OUT_MANUAL_CONTROL_COURSE_RECORD_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 错误码枚举,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_MANUAL_CONTROL_ERRORCODE_TYPE}
+ */
+ public int emErrorCode;
+
+ public NET_OUT_MANUAL_CONTROL_COURSE_RECORD_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MANUAL_TEST.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MANUAL_TEST.java
new file mode 100644
index 0000000..e9b2f1f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MANUAL_TEST.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_ManualTest 接口输出参数
+ * @date 2023/03/16 08:53:12
+ */
+public class NET_OUT_MANUAL_TEST extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 结果 1:测试成功,结果同步返回 2:发送测试请求成功,结果异步返回 3:测试失败
+ */
+ public int nTestResult;
+
+ public NET_OUT_MANUAL_TEST() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MARK_OBJECT_FAVORITES_LIBRARY_OBJECT_RECORDS.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MARK_OBJECT_FAVORITES_LIBRARY_OBJECT_RECORDS.java
new file mode 100644
index 0000000..adb2ab8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MARK_OBJECT_FAVORITES_LIBRARY_OBJECT_RECORDS.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * CLIENT_MarkObjectFavoritesLibraryObjectRecords 接口输出参数
+*/
+public class NET_OUT_MARK_OBJECT_FAVORITES_LIBRARY_OBJECT_RECORDS extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 收藏结果码, 0: 收藏成功 1: 收藏失败 2: 收藏夹已满
+ */
+ public int nResultCode;
+ /**
+ * 收藏结果集合, 内存由用户申请释放, 大小为sizeof(NET_MARK_OBJECT_RESULTS_DATA)*nMaxCount,参见结构体定义 {@link com.netsdk.lib.structure.NET_MARK_OBJECT_RESULTS_DATA}
+ */
+ public Pointer pstuResultData;
+ /**
+ * 收藏结果集合最个数
+ */
+ public int nMaxCount;
+ /**
+ * 收藏结果集合个数
+ */
+ public int nRetCount;
+
+ public NET_OUT_MARK_OBJECT_FAVORITES_LIBRARY_OBJECT_RECORDS() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MARK_PIC_MAP_CHANNEL.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MARK_PIC_MAP_CHANNEL.java
new file mode 100644
index 0000000..eb0b215
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MARK_PIC_MAP_CHANNEL.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_MarkPicMapChannel 接口输出参数
+*/
+public class NET_OUT_MARK_PIC_MAP_CHANNEL extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 错误码, -1:未知,0: 标记成功, 1: 全部标记失败,地图未上传, 2: 部分标记失败
+ */
+ public int nErrorCode;
+ /**
+ * 错误描述
+ */
+ public byte[] szErrorInfo = new byte[256];
+
+ public NET_OUT_MARK_PIC_MAP_CHANNEL() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MEDIAMANAGER_GETCAPS.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MEDIAMANAGER_GETCAPS.java
new file mode 100644
index 0000000..ff1ac72
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MEDIAMANAGER_GETCAPS.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetDevCaps NET_MEDIAMANAGER_CAPS 命令出参
+*/
+public class NET_OUT_MEDIAMANAGER_GETCAPS extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+ /**
+ * 镜头传感器信息,参见结构体定义 {@link com.netsdk.lib.structure.NET_MEDIA_SENSORINFO}
+ */
+ public NET_MEDIA_SENSORINFO stuSensorInfo = new NET_MEDIA_SENSORINFO();
+
+ public NET_OUT_MEDIAMANAGER_GETCAPS() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MINI_RADAR_ALARMPOINTINFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MINI_RADAR_ALARMPOINTINFO.java
new file mode 100644
index 0000000..8736e32
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MINI_RADAR_ALARMPOINTINFO.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 订阅mini雷达的报警点信息出参(对应接口 CLIENT_AttachMiniRadarAlarmPointInfo)
+ * @date 2022/08/04 16:59:37
+ */
+public class NET_OUT_MINI_RADAR_ALARMPOINTINFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 订阅的SID
+ */
+ public int nSID;
+
+ public NET_OUT_MINI_RADAR_ALARMPOINTINFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_ALARM_USER.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_ALARM_USER.java
new file mode 100644
index 0000000..d69bc71
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_ALARM_USER.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_ModifyAlarmUser 接口输出参数
+ * @date 2023/03/16 10:58:19
+ */
+public class NET_OUT_MODIFY_ALARM_USER extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_MODIFY_ALARM_USER() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_ALARM_USER_PASSWORD.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_ALARM_USER_PASSWORD.java
new file mode 100644
index 0000000..7e705ba
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_ALARM_USER_PASSWORD.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_ModifyAlarmUserPassword 接口输出参数
+ * @date 2023/03/16 11:01:56
+ */
+public class NET_OUT_MODIFY_ALARM_USER_PASSWORD extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_MODIFY_ALARM_USER_PASSWORD() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_COURSE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_COURSE.java
new file mode 100644
index 0000000..c8122da
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_COURSE.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 修改课程记录 出参指针 {@link NetSDKLib#CLIENT_ModifyCourse}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/17 16:42
+ */
+public class NET_OUT_MODIFY_COURSE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 修改的课程ID数量
+ */
+ public int nResultIDNum;
+ /**
+ * 修改的课程ID; 原ID: 修改成功, -1: 数据库中无此记录, -2: 时间冲突
+ */
+ public int[] nResultID = new int[64];
+
+ public NET_OUT_MODIFY_COURSE() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_FLOOR_HEIGHT.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_FLOOR_HEIGHT.java
new file mode 100644
index 0000000..fade97a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_FLOOR_HEIGHT.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_ModifyFloorHeight 接口输出参数
+*/
+public class NET_OUT_MODIFY_FLOOR_HEIGHT extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_OUT_MODIFY_FLOOR_HEIGHT() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_GROUP_FOR_VEHICLE_REG_DB.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_GROUP_FOR_VEHICLE_REG_DB.java
new file mode 100644
index 0000000..5494ab7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_GROUP_FOR_VEHICLE_REG_DB.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description CLIENT_ModifyGroupForVehicleRegisterDB 接口输出参数
+ * @date 2022/10/21 17:32
+ */
+public class NET_OUT_MODIFY_GROUP_FOR_VEHICLE_REG_DB extends NetSDKLib.SdkStructure {
+ public int dwSize; // 结构体大小
+
+ public NET_OUT_MODIFY_GROUP_FOR_VEHICLE_REG_DB(){
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_MEDIA_FILE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_MEDIA_FILE_INFO.java
new file mode 100644
index 0000000..8da24e6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_MEDIA_FILE_INFO.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_ModifyMediaFile 接口输出参数
+*/
+public class NET_OUT_MODIFY_MEDIA_FILE_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 返回结果个数
+ */
+ public int nResultCodeNum;
+ /**
+ * 返回结果,是一个数组,与输入Id对应,0 C 修改成功,1 - 修改失败
+ */
+ public int[] nResultCode = new int[32];
+
+ public NET_OUT_MODIFY_MEDIA_FILE_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_PARKINGRECORD_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_PARKINGRECORD_INFO.java
new file mode 100644
index 0000000..295fe1a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_PARKINGRECORD_INFO.java
@@ -0,0 +1,23 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 修改停车记录信息 出参
+ * 接口 {@link NetSDKLib#CLIENT_ModifyParkingRecord}
+ * 入参 {@link NET_IN_MODIFY_PARKINGRECORD_INFO}
+ *
+ * @author 47040
+ * @since Created in 2020/11/18 14:06
+ */
+public class NET_OUT_MODIFY_PARKINGRECORD_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_MODIFY_PARKINGRECORD_INFO() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_VEHICLE_FOR_VEHICLE_REG_DB.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_VEHICLE_FOR_VEHICLE_REG_DB.java
new file mode 100644
index 0000000..7d7f2e4
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MODIFY_VEHICLE_FOR_VEHICLE_REG_DB.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description CLIENT_ModifyVehicleForVehicleRegisterDB 接口输出参数
+ * @date 2022/10/22 10:26
+ */
+public class NET_OUT_MODIFY_VEHICLE_FOR_VEHICLE_REG_DB extends NetSDKLib.SdkStructure {
+ public int dwSize; // 结构体大小
+
+ public NET_OUT_MODIFY_VEHICLE_FOR_VEHICLE_REG_DB(){
+ dwSize=this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MONITORWALL_ADD.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MONITORWALL_ADD.java
new file mode 100644
index 0000000..03316cc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MONITORWALL_ADD.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 添加电视墙输出参数
+*/
+public class NET_OUT_MONITORWALL_ADD extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+ /**
+ * 电视墙ID
+ */
+ public int nMonitorWallID;
+
+ public NET_OUT_MONITORWALL_ADD() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MONITORWALL_GET_COLL_SCHD.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MONITORWALL_GET_COLL_SCHD.java
new file mode 100644
index 0000000..7999b54
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MONITORWALL_GET_COLL_SCHD.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+import static com.netsdk.lib.constant.SDKStructureFieldLenth.NET_MAX_COLLECTION_NUM;
+
+/**
+ * 获取预案时间表 出参 {@link NetSDKLib#CLIENT_OperateMonitorWall}
+ *
+ * @author : 47040
+ * @since : Created in 2020/10/19 9:35
+ */
+public class NET_OUT_MONITORWALL_GET_COLL_SCHD extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 预案数
+ */
+ public int nCollectionNum;
+ /**
+ * 预案时间表
+ */
+ public MONITORWALL_COLLECTION_SCHEDULE[] stuCollShedule = new MONITORWALL_COLLECTION_SCHEDULE[NET_MAX_COLLECTION_NUM];
+
+ public NET_OUT_MONITORWALL_GET_COLL_SCHD() {
+ dwSize = this.size();
+ for (int i = 0; i < stuCollShedule.length; i++) {
+ stuCollShedule[i] = new MONITORWALL_COLLECTION_SCHEDULE();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MONITORWALL_GET_ENABLE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MONITORWALL_GET_ENABLE.java
new file mode 100644
index 0000000..877c7c9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MONITORWALL_GET_ENABLE.java
@@ -0,0 +1,38 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.NET_MONITORWALL_OPERATE_TYPE;
+
+import static com.netsdk.lib.NetSDKLib.NET_MAX_MONITORWALL_NUM;
+
+/**
+ * 电视墙获取使能 出参
+ * 对应入参 {@link NET_IN_MONITORWALL_GET_ENABLE}
+ * 对应枚举 {@link NET_MONITORWALL_OPERATE_TYPE#NET_MONITORWALL_OPERATE_GET_ENABLE}
+ * 对应接口 {@link NetSDKLib#CLIENT_OperateMonitorWall}
+ *
+ * @author : 47040
+ * @since : Created in 2020/10/19 11:16
+ */
+public class NET_OUT_MONITORWALL_GET_ENABLE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 电视墙数量
+ */
+ public int nMonitorWallNum;
+ /**
+ * 电视墙使能
+ */
+ public NET_MONITORWALL_ENABLE_INFO[] stuEnable = new NET_MONITORWALL_ENABLE_INFO[NET_MAX_MONITORWALL_NUM];
+
+ public NET_OUT_MONITORWALL_GET_ENABLE() {
+ dwSize = this.size();
+ for (int i = 0; i < stuEnable.length; i++) {
+ stuEnable[i] = new NET_MONITORWALL_ENABLE_INFO();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MONITORWALL_GET_SCENE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MONITORWALL_GET_SCENE.java
new file mode 100644
index 0000000..f52c160
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MONITORWALL_GET_SCENE.java
@@ -0,0 +1,22 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_MonitorWallGetScene接口输出参数(获取电视墙场景)
+*/
+public class NET_OUT_MONITORWALL_GET_SCENE extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+ /**
+ * 当前预案名称, 可以为空
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 电视墙场景,参见结构体定义 {@link com.netsdk.lib.structure.NET_MONITORWALL_SCENE}
+ */
+ public NET_MONITORWALL_SCENE stuScene = new NET_MONITORWALL_SCENE();
+
+ public NET_OUT_MONITORWALL_GET_SCENE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MONITORWALL_REMOVE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MONITORWALL_REMOVE.java
new file mode 100644
index 0000000..5dd81dc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MONITORWALL_REMOVE.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_OperateMonitorWall接口输出参数=>NET_MONITORWALL_OPERATE_REMOVE
+*/
+public class NET_OUT_MONITORWALL_REMOVE extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+
+ public NET_OUT_MONITORWALL_REMOVE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MONITORWALL_SET_COLL_SCHD.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MONITORWALL_SET_COLL_SCHD.java
new file mode 100644
index 0000000..10c2d7a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MONITORWALL_SET_COLL_SCHD.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 设置预案时间表 出参 {@link NetSDKLib#CLIENT_OperateMonitorWall}
+ *
+ * @author : 47040
+ * @since : Created in 2020/10/19 10:42
+ */
+public class NET_OUT_MONITORWALL_SET_COLL_SCHD extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_MONITORWALL_SET_COLL_SCHD() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MONITORWALL_SET_ENABLE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MONITORWALL_SET_ENABLE.java
new file mode 100644
index 0000000..9f6dfc1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MONITORWALL_SET_ENABLE.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.NET_MONITORWALL_OPERATE_TYPE;
+
+/**
+ * 电视墙设置使能 出参
+ * 对应入参 {@link NET_IN_MONITORWALL_SET_ENABLE}
+ * 对应枚举 {@link NET_MONITORWALL_OPERATE_TYPE#NET_MONITORWALL_OPERATE_SET_ENABLE}
+ * 对应接口 {@link NetSDKLib#CLIENT_OperateMonitorWall}
+ *
+ * @author : 47040
+ * @since : Created in 2020/10/19 11:30
+ */
+public class NET_OUT_MONITORWALL_SET_ENABLE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_MONITORWALL_SET_ENABLE() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MONITORWALL_SET_SCENE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MONITORWALL_SET_SCENE.java
new file mode 100644
index 0000000..375d222
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MONITORWALL_SET_SCENE.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_MonitorWallSetScene接口输出参数(设置电视墙场景)
+*/
+public class NET_OUT_MONITORWALL_SET_SCENE extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+
+ public NET_OUT_MONITORWALL_SET_SCENE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MSGROUP_CLOSE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MSGROUP_CLOSE_INFO.java
new file mode 100644
index 0000000..403721b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MSGROUP_CLOSE_INFO.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 关闭主从式跟踪器实例出参
+ * @date 2022/09/14 14:04:38
+ */
+public class NET_OUT_MSGROUP_CLOSE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_MSGROUP_CLOSE_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MSGROUP_LOCATE_INTO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MSGROUP_LOCATE_INTO.java
new file mode 100644
index 0000000..263ec7d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MSGROUP_LOCATE_INTO.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 联动主从跟踪组出参
+ * @date 2022/09/14 13:56:26
+ */
+public class NET_OUT_MSGROUP_LOCATE_INTO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 联动到球机上的绝对坐标
+ */
+ public short[] snPTZ = new short[3];
+
+ public NET_OUT_MSGROUP_LOCATE_INTO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MSGROUP_OPEN_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MSGROUP_OPEN_INFO.java
new file mode 100644
index 0000000..a940414
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MSGROUP_OPEN_INFO.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 打开主从跟踪组出参
+ * @date 2022/09/14 13:52:58
+ */
+public class NET_OUT_MSGROUP_OPEN_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 主从跟踪组句柄
+ */
+ public int dwToken;
+
+ public NET_OUT_MSGROUP_OPEN_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MSGROUP_RECTLOCATE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MSGROUP_RECTLOCATE_INFO.java
new file mode 100644
index 0000000..f848772
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MSGROUP_RECTLOCATE_INFO.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 主动跟踪主操作命令, EM_MSGROUP_OPERATE_RECTLOCATE 出参
+ * @date 2022/09/14 14:06:16
+ */
+public class NET_OUT_MSGROUP_RECTLOCATE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 联动到球机上的绝对坐标
+ */
+ public int[] nPTZ = new int[3];
+
+ public NET_OUT_MSGROUP_RECTLOCATE_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MSGROUP_SLAVE_POSITION_TO_MASTER_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MSGROUP_SLAVE_POSITION_TO_MASTER_INFO.java
new file mode 100644
index 0000000..b7c3e7f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MSGROUP_SLAVE_POSITION_TO_MASTER_INFO.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description EM_MSGROUP_OPERATE_SLAVE_POSITION_TO_MASTER 出参
+ * @date 2022/09/14 14:09:33
+ */
+public class NET_OUT_MSGROUP_SLAVE_POSITION_TO_MASTER_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 从机画面上的物体坐标在主机画面上的位置,8192坐标系
+ */
+ public NetSDKLib.NET_RECT stuRect = new NetSDKLib.NET_RECT();
+
+ public NET_OUT_MSGROUP_SLAVE_POSITION_TO_MASTER_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MSGROUP_TRACK_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MSGROUP_TRACK_INFO.java
new file mode 100644
index 0000000..ea43ea2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MSGROUP_TRACK_INFO.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 手动选定目标跟踪出参
+ * @date 2022/09/14 14:02:06
+ */
+public class NET_OUT_MSGROUP_TRACK_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_MSGROUP_TRACK_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MULTIFACE_DETECT_STATE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MULTIFACE_DETECT_STATE.java
new file mode 100644
index 0000000..b5b348e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MULTIFACE_DETECT_STATE.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description CLIENT_AttachDetectMultiFaceState 接口输出参数
+ * @date 2022/11/21 17:53:13
+ */
+public class NET_OUT_MULTIFACE_DETECT_STATE extends NetSDKLib.SdkStructure {
+ /**
+ * 此结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_MULTIFACE_DETECT_STATE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MULTI_APPEND_TO_VEHICLE_REG_DB.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MULTI_APPEND_TO_VEHICLE_REG_DB.java
new file mode 100644
index 0000000..281e426
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MULTI_APPEND_TO_VEHICLE_REG_DB.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Memory;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description CLIENT_MultiAppendToVehicleRegisterDB 接口输出参数
+ * @date 2021/8/17 15:15
+ */
+public class NET_OUT_MULTI_APPEND_TO_VEHICLE_REG_DB extends NetSDKLib.SdkStructure {
+ public int dwSize; // 结构体大小
+ public int nErrCodeNum; // 错误码个数
+ public int nRetErrCodeNum; // 返回的错误码数量
+ /** {@link com.netsdk.lib.enumeration.EM_VEHICLE_REG_DB_OPERATOR_ERRCODE} */
+ public Pointer emErrCode = new Memory(1000*4); // 错误码信息 要求:实现VehicleRegisterDB.multiAppend +vehicle object[1000] 数组定1000
+ // public int[] emErrCode=new int[1000];
+
+ public NET_OUT_MULTI_APPEND_TO_VEHICLE_REG_DB(){
+ this.dwSize=this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_MULTI_APPEND_TO_WORKSUIT_GROUP.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_MULTI_APPEND_TO_WORKSUIT_GROUP.java
new file mode 100644
index 0000000..c9decd1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_MULTI_APPEND_TO_WORKSUIT_GROUP.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_MultiAppendToWorkSuitCompareGroup 接口输出参数
+ * @date 2022/10/08 19:50:19
+ */
+public class NET_OUT_MULTI_APPEND_TO_WORKSUIT_GROUP extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 工装合规导入返回的错误码个数
+ */
+ public int nErrCodeNum;
+ /**
+ * 工装合规导入返回的错误码信息,参考枚举{ @link EM_WORKSUIT_APPEND_ERRCODE }
+ */
+ public int[] emErrCode = new int[1000];
+
+ public NET_OUT_MULTI_APPEND_TO_WORKSUIT_GROUP() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_NAS_DIRECTORY_GET_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_NAS_DIRECTORY_GET_INFO.java
new file mode 100644
index 0000000..3794f92
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_NAS_DIRECTORY_GET_INFO.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_NASDirectoryGetInfo接口出参
+* @date 2022/09/22 17:28:03
+*/
+public class NET_OUT_NAS_DIRECTORY_GET_INFO extends NetSDKLib.SdkStructure {
+/**
+此结构体大小,必须赋值
+*/
+ public int dwSize;
+/**
+剩余空间, 单位MB
+*/
+ public int nFreeSpace;
+/**
+总空间, 单位MB
+*/
+ public int nTotalSpace;
+/**
+NAS状态 {@link com.netsdk.lib.enumeration.EM_NAS_STATE_TYPE}
+*/
+ public int emState;
+
+public NET_OUT_NAS_DIRECTORY_GET_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_NETAPP_GET_DIAL_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_NETAPP_GET_DIAL_INFO.java
new file mode 100644
index 0000000..9144d2a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_NETAPP_GET_DIAL_INFO.java
@@ -0,0 +1,68 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * EM_PRC_NETAPP_TYPE_GET_DIAL_INFO 出参
+*/
+public class NET_OUT_NETAPP_GET_DIAL_INFO extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+ /**
+ * 拨号IP地址
+ */
+ public byte[] szIP = new byte[48];
+ /**
+ * 子网掩码
+ */
+ public byte[] szSubnetMask = new byte[40];
+ /**
+ * 默认网关
+ */
+ public byte[] szDefaultGateway = new byte[40];
+ /**
+ * DNS服务器地址
+ */
+ public BYTE_ARRAY_40[] szDnsServers = new BYTE_ARRAY_40[2];
+ /**
+ * 拨号IPv6地址
+ */
+ public byte[] szIPv6Address = new byte[48];
+ /**
+ * Pv6默认网关
+ */
+ public byte[] szIPv6DefaultGateway = new byte[40];
+ /**
+ * IPv6网络前缀 [1~128]
+ */
+ public int nIPv6Prefix;
+ /**
+ * IPv6 DNS服务器地址
+ */
+ public BYTE_ARRAY_40[] szIPv6DnsServers = new BYTE_ARRAY_40[2];
+ /**
+ * IPv6链路本地地址
+ */
+ public byte[] szIPv6LinkLocalAddress = new byte[48];
+ /**
+ * 服务提供商 3G网络使用
+ */
+ public byte[] szVendor = new byte[64];
+ /**
+ * 网络类型,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_NET_NETWORK_CARD_TYPE}
+ */
+ public int emNetwork;
+ /**
+ * 拨号状态: 0:未知, 1:拨号成功, 2:拨号中, 3:拨号失败
+ */
+ public int nState;
+
+ public NET_OUT_NETAPP_GET_DIAL_INFO() {
+ this.dwSize = this.size();
+ for(int i = 0; i < szDnsServers.length; i++){
+ szDnsServers[i] = new BYTE_ARRAY_40();
+ }
+ for(int i = 0; i < szIPv6DnsServers.length; i++){
+ szIPv6DnsServers[i] = new BYTE_ARRAY_40();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_NETAPP_GET_MOBILE_INTERFACE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_NETAPP_GET_MOBILE_INTERFACE.java
new file mode 100644
index 0000000..1957e09
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_NETAPP_GET_MOBILE_INTERFACE.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description EM_PRC_NETAPP_TYPE_GET_MOBILE_INTERFACE 出参
+ * @date 2021/9/17
+ */
+public class NET_OUT_NETAPP_GET_MOBILE_INTERFACE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 网络接口有效个数
+ */
+ public int nInterfaceNum;
+ /**
+ * 移动网络接口信息
+ */
+ public NETDEV_NETINTERFACE_INFO[] stuInterface = (NETDEV_NETINTERFACE_INFO[]) new NETDEV_NETINTERFACE_INFO().toArray(64);
+
+ public NET_OUT_NETAPP_GET_MOBILE_INTERFACE(){
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_NETAPP_GET_MOBILE_RSSI.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_NETAPP_GET_MOBILE_RSSI.java
new file mode 100644
index 0000000..a29c331
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_NETAPP_GET_MOBILE_RSSI.java
@@ -0,0 +1,110 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * EM_RPC_NETAPP_TYPE_GET_MOBILE_RSSI 出参
+*/
+public class NET_OUT_NETAPP_GET_MOBILE_RSSI extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+ /**
+ * 蜂窝移动模块的工作模式,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_WIRELESS_WORK_MODE}
+ */
+ public int emWorkMode;
+ /**
+ * TD-SCDMA网络信号强度 范围0-100
+ */
+ public int nTDSCDMA;
+ /**
+ * WCDMA网络信号强度 范围0-100
+ */
+ public int nWCDMA;
+ /**
+ * CDMA1.x网络信号强度 范围0-100
+ */
+ public int nCDMA1x;
+ /**
+ * EDGE网络信号强度 范围0-100
+ */
+ public int nEDGE;
+ /**
+ * EVDO网络信号强度 范围0-100
+ */
+ public int nEVDO;
+ /**
+ * TD-LTE网络信号强度 范围0-100
+ */
+ public int nTDLTE;
+ /**
+ * FDD-LTE网络信号强度 范围0-100
+ */
+ public int nFDDLTE;
+ /**
+ * NR网络信号强度 范围0-100
+ */
+ public int nNR;
+ /**
+ * 当前网络模式下的信号强度值,单位dBm
+ */
+ public int nRSSI;
+ /**
+ * 当前网络模式下的信干噪比值,单位dB
+ */
+ public int nSINR;
+ /**
+ * 信号强度等级
+ */
+ public int nSignalLevel;
+ /**
+ * 频段信息
+ */
+ public byte[] szBAND = new byte[6];
+ /**
+ * 预留对齐字节
+ */
+ public byte[] szReserved = new byte[2];
+ /**
+ * 绝对无线频道编号
+ */
+ public int nARFCN;
+ /**
+ * 频宽,单位MHz
+ */
+ public int nBandWidth;
+ /**
+ * 物理小区标识
+ */
+ public int nPCI;
+ /**
+ * v2x 信噪比,十进制整数
+ */
+ public int nV2X_SINR;
+ /**
+ * v2x 信号强度 十进制整数,单位dBm
+ */
+ public int nV2X_RSRP;
+ /**
+ * 小区标识,取值范围0-0xFFFFFFFFF,字符串类型,16进制表示, 不带0x
+ */
+ public byte[] szCELLID = new byte[15];
+ /**
+ * 预留对齐字节
+ */
+ public byte[] szReserved1 = new byte[1];
+ /**
+ * 运营商PLMN信息,十进制整数
+ */
+ public int nPLMN;
+ /**
+ * 服务小区跟踪区域码,取值范围0-0xFFFFFF,字符串类型,16进制表示
+ */
+ public byte[] szTAC = new byte[10];
+ /**
+ * 预留对齐字节
+ */
+ public byte[] szReserved2 = new byte[2];
+
+ public NET_OUT_NETAPP_GET_MOBILE_RSSI() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_NETAPP_GET_NET_RESOURCE_STAT.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_NETAPP_GET_NET_RESOURCE_STAT.java
new file mode 100644
index 0000000..1e4b045
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_NETAPP_GET_NET_RESOURCE_STAT.java
@@ -0,0 +1,98 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * EM_RPC_NETAPP_TYPE_GET_NET_RESOURCE_STAT 出参
+*/
+public class NET_OUT_NETAPP_GET_NET_RESOURCE_STAT extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+ /**
+ * IP通道接入 单位:kbps
+ */
+ public int nIPChanneIn;
+ /**
+ * 网络接收剩余 单位:kbps
+ */
+ public int nNetRemain;
+ /**
+ * 网络接收总能力 单位:Mbps
+ */
+ public int nNetCapability;
+ /**
+ * 远程预览 单位:kbps
+ */
+ public int nRemotePreview;
+ /**
+ * 远程回放及下载 单位:kbps
+ */
+ public int nRemotePlayAndDownload;
+ /**
+ * 远程发送剩余 单位:kbps
+ */
+ public int nRemoteSendRemain;
+ /**
+ * 远程发送总能力 单位:Mbps
+ */
+ public int nRemoteSendCapability;
+ /**
+ * IP通道接入
+ */
+ public byte[] szIPChanneIn = new byte[16];
+ /**
+ * 网络接收剩余
+ */
+ public byte[] szNetRemain = new byte[16];
+ /**
+ * 网络接收总能力
+ */
+ public byte[] szNetCapability = new byte[16];
+ /**
+ * 远程预览
+ */
+ public byte[] szRemotePreview = new byte[16];
+ /**
+ * 远程回放及下载
+ */
+ public byte[] szRemotePlayAndDownload = new byte[16];
+ /**
+ * 远程发送剩余
+ */
+ public byte[] szRemoteSendRemain = new byte[16];
+ /**
+ * 远程发送总能力
+ */
+ public byte[] szRemoteSendCapability = new byte[16];
+ /**
+ * TRUE表示szIPChanneIn字段有效, FALSE表示nIPChanneIn字段有效
+ */
+ public int bIPChanneIn;
+ /**
+ * TRUE表示szNetRemain字段有效, FALSE表示nNetRemain字段有效
+ */
+ public int bNetRemain;
+ /**
+ * TRUE表示szNetCapability字段有效, FALSE表示nNetCapability字段有效
+ */
+ public int bNetCapability;
+ /**
+ * TRUE表示szRemotePreview字段有效, FALSE表示nRemotePreview字段有效
+ */
+ public int bRemotePreview;
+ /**
+ * TRUE表示szRemotePlayAndDownload字段有效, FALSE表示nRemotePlayAndDownload字段有效
+ */
+ public int bRemotePlayAndDownload;
+ /**
+ * TRUE表示szRemoteSendRemain字段有效, FALSE表示nRemoteSendRemain字段有效
+ */
+ public int bRemoteSendRemain;
+ /**
+ * TRUE表示szRemoteSendCapability字段有效, FALSE表示nRemoteSendCapability字段有效
+ */
+ public int bRemoteSendCapability;
+
+ public NET_OUT_NETAPP_GET_NET_RESOURCE_STAT() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_NETAPP_LINK_STATUS.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_NETAPP_LINK_STATUS.java
new file mode 100644
index 0000000..378628c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_NETAPP_LINK_STATUS.java
@@ -0,0 +1,27 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_QueryNetStat接口,查询类型为NET_APP_LINK_STAT 时的输出参数(获取物理链路状态)
+* @origin autoTool
+* @date 2023/06/19 09:29:25
+*/
+public class NET_OUT_NETAPP_LINK_STATUS extends NetSDKLib.SdkStructure {
+ public int dwSize;
+/**
+是否正在工作
+*/
+ public int bWorking;
+/**
+IP是否冲突
+*/
+ public int bIPConflict;
+
+public NET_OUT_NETAPP_LINK_STATUS(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_NETAPP_NET_DATA_STAT.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_NETAPP_NET_DATA_STAT.java
new file mode 100644
index 0000000..ce55ec7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_NETAPP_NET_DATA_STAT.java
@@ -0,0 +1,31 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_QueryNetStat接口,查询类型为NET_APP_DATA_STAT时的输出参数(获取协议栈统计数据)
+* @origin autoTool
+* @date 2023/06/19 09:24:47
+*/
+public class NET_OUT_NETAPP_NET_DATA_STAT extends NetSDKLib.SdkStructure {
+ public int dwSize;
+/**
+接收相关统计数据,意义与ifconfig同
+*/
+ public NET_NETAPP_RECEIVE_STAT stuReceiveStat = new NET_NETAPP_RECEIVE_STAT();
+/**
+传输相关统计数据,意义与ifconfig同
+*/
+ public NET_NETAPP_TRANSMIT_STAT stuTransmitStat = new NET_NETAPP_TRANSMIT_STAT();
+/**
+网卡速度,单位Mbps
+*/
+ public int nSpeed;
+
+public NET_OUT_NETAPP_NET_DATA_STAT(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_NORMAL_RPCCALL_USING_JSON.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_NORMAL_RPCCALL_USING_JSON.java
new file mode 100644
index 0000000..8290a63
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_NORMAL_RPCCALL_USING_JSON.java
@@ -0,0 +1,38 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * CLIENT_NormalRpcCallUsingJson 接口输出参数
+*/
+public class NET_OUT_NORMAL_RPCCALL_USING_JSON extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 参数类型, 0:结构体 1:json
+ */
+ public int nParamType;
+ /**
+ * 出参指针,nParamType为0时使用,由用户申请空间,对应关系见EM_SUPPORT_RPC_TYPE
+ */
+ public Pointer pstuOutParams;
+ /**
+ * Json形式出参,nParamType为1时使用,由用户申请空间
+ */
+ public Pointer pstuOutJson;
+ /**
+ * 数据缓冲区长度, 单位:字节
+ */
+ public int nstuOutJsonLen;
+ /**
+ * 实际返回的数据缓冲区长度, 单位:字节
+ */
+ public int nstuOutJsonRetLen;
+
+ public NET_OUT_NORMAL_RPCCALL_USING_JSON() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_NUMBERSTATGROUPSUMMARY_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_NUMBERSTATGROUPSUMMARY_INFO.java
new file mode 100644
index 0000000..8ced27b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_NUMBERSTATGROUPSUMMARY_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 分组人员统计--获取摘要信息 输出参数
+*/
+public class NET_OUT_NUMBERSTATGROUPSUMMARY_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 摘要信息,参见结构体定义 {@link com.netsdk.lib.structure.NET_NUMBERSTATGROUP_SUMMARY}
+ */
+ public NET_NUMBERSTATGROUP_SUMMARY stuSummary = new NET_NUMBERSTATGROUP_SUMMARY();
+
+ public NET_OUT_NUMBERSTATGROUPSUMMARY_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_PERSON_INFO_INPUT_RESULT.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_PERSON_INFO_INPUT_RESULT.java
new file mode 100644
index 0000000..2abe9cc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_PERSON_INFO_INPUT_RESULT.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * CLIENT_SetPersonInfoInputResult 输出参数
+ */
+public class NET_OUT_PERSON_INFO_INPUT_RESULT extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_PERSON_INFO_INPUT_RESULT() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_PRE_UPLOAD_REMOTE_FILE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_PRE_UPLOAD_REMOTE_FILE.java
new file mode 100644
index 0000000..26a8140
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_PRE_UPLOAD_REMOTE_FILE.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description {@link NetSDKLib#CLIENT_PreUploadRemoteFile(NetSDKLib.LLong, NET_IN_PRE_UPLOAD_REMOTE_FILE, NET_OUT_PRE_UPLOAD_REMOTE_FILE, int)} 接口输出参数(设置文件长度)
+ * @date 2020/6/10
+ */
+public class NET_OUT_PRE_UPLOAD_REMOTE_FILE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 标志是否继续上传该文件, true:上传 false:不上传
+ */
+ public boolean bContinue2Upload;
+ /**
+ * 错误原因, 当bContinue2Upload为false时emType有效,错误原因请参考{@link com.netsdk.lib.enumeration.EM_REASON_TYPE}
+ */
+ public int emType;
+
+ public NET_OUT_PRE_UPLOAD_REMOTE_FILE(){
+ this.dwSize=this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZBASE_GET_CENTER_GPS.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZBASE_GET_CENTER_GPS.java
new file mode 100644
index 0000000..9e97873
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZBASE_GET_CENTER_GPS.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_QueryDevInfo NET_QUERY_PTZBASE_GET_CENTER_GPS 类型接口输出参数
+* @date 2022/05/18 10:44:49
+*/
+public class NET_OUT_PTZBASE_GET_CENTER_GPS extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+/**
+经度,单位:度,正为东经,负为西经,取值范围[-180,180]
+*/
+ public double dLongitude;
+/**
+纬度,单位:度,正为北纬,负为南纬,取值范围[-90,90]
+*/
+ public double dLatitude;
+
+public NET_OUT_PTZBASE_GET_CENTER_GPS(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZBASE_GET_HFOV_VALUE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZBASE_GET_HFOV_VALUE.java
new file mode 100644
index 0000000..7e9d511
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZBASE_GET_HFOV_VALUE.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_QueryDevInfo NET_QUERY_PTZBASE_GET_HFOV_VALUE 类型接口输出参数
+* @date 2022/05/18 10:25:12
+*/
+public class NET_OUT_PTZBASE_GET_HFOV_VALUE extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+/**
+对应倍率水平视场角,单位0.01度,扩大100倍表示
+*/
+ public int nValue;
+/**
+镜头最小水平视场角,单位同nValue
+*/
+ public int nMinValue;
+/**
+镜头最大水平视场角,单位同nValue
+*/
+ public int nMaxValue;
+
+public NET_OUT_PTZBASE_GET_HFOV_VALUE(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZBASE_GET_VFOV_VALUE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZBASE_GET_VFOV_VALUE.java
new file mode 100644
index 0000000..53bdb4c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZBASE_GET_VFOV_VALUE.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_QueryDevInfo NET_QUERY_PTZBASE_GET_VFOV_VALUE 类型接口输出参数
+* @date 2022/05/18 10:38:46
+*/
+public class NET_OUT_PTZBASE_GET_VFOV_VALUE extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+/**
+对应倍率垂直视场角,单位0.01度,扩大100倍表示
+*/
+ public int nValue;
+/**
+镜头最小垂直视场角,单位同nValue
+*/
+ public int nMinValue;
+/**
+镜头最大垂直视场角,单位同nValue
+*/
+ public int nMaxValue;
+
+public NET_OUT_PTZBASE_GET_VFOV_VALUE(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZ_ADJUST_IRIS.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZ_ADJUST_IRIS.java
new file mode 100644
index 0000000..3933782
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZ_ADJUST_IRIS.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_PTZAdjustIris 接口输出参数
+*/
+public class NET_OUT_PTZ_ADJUST_IRIS extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_PTZ_ADJUST_IRIS() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZ_CURRENT_FOV_VALUE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZ_CURRENT_FOV_VALUE.java
new file mode 100644
index 0000000..9a628f3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZ_CURRENT_FOV_VALUE.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_QueryDevInfo NET_QUERY_PTZ_CURRENT_FOV_VALUE 类型接口输入参数
+ * @date 2022/09/22 15:28:55
+ */
+public class NET_OUT_PTZ_CURRENT_FOV_VALUE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 当前倍率水平视场角单位0.01度,扩大100倍表示
+ */
+ public int nValue;
+ /**
+ * 镜头最小水平视场角单位同nValue
+ */
+ public int nMinValue;
+ /**
+ * 镜头最大水平视场角单位同nValue
+ */
+ public int nMaxValue;
+
+ public NET_OUT_PTZ_CURRENT_FOV_VALUE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZ_SET_ZOOM_VALUE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZ_SET_ZOOM_VALUE.java
new file mode 100644
index 0000000..a8a0a42
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZ_SET_ZOOM_VALUE.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description CLIENT_PTZSetZoomValue 接口输出参数
+ * @origin autoTool
+ * @date 2023/10/16 14:11:22
+ */
+public class NET_OUT_PTZ_SET_ZOOM_VALUE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_PTZ_SET_ZOOM_VALUE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZ_STATUS_PROC.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZ_STATUS_PROC.java
new file mode 100644
index 0000000..aeff7e2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZ_STATUS_PROC.java
@@ -0,0 +1,19 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+/**
+ * @author 251823
+ * @description 订阅云台元数据接口输输出参数
+ * @date 2021/02/26
+ */
+public class NET_OUT_PTZ_STATUS_PROC extends NetSDKLib.SdkStructure {
+ /**
+ * dwSize;
+ */
+ public int dwSize;
+
+ public NET_OUT_PTZ_STATUS_PROC(){
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZ_ZOOM_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZ_ZOOM_INFO.java
new file mode 100644
index 0000000..d721d78
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_PTZ_ZOOM_INFO.java
@@ -0,0 +1,22 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 获取云台光学变倍信息,对应命令 NET_DEVSTATE_PTZ_ZOOM_INFO
+ * @origin autoTool
+ * @date 2023/10/16 14:16:51
+ */
+public class NET_OUT_PTZ_ZOOM_INFO extends NetSDKLib.SdkStructure {
+ public int dwSize;
+ /**
+ * 光学变倍值
+ */
+ public int nZoomValue;
+
+ public NET_OUT_PTZ_ZOOM_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_PUSH_ANALYSE_PICTURE_FILE_BYRULE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_PUSH_ANALYSE_PICTURE_FILE_BYRULE.java
new file mode 100644
index 0000000..a878598
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_PUSH_ANALYSE_PICTURE_FILE_BYRULE.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_PushAnalysePictureFileByRule 接口输出参数
+* @date 2022/06/28 19:02:52
+*/
+public class NET_OUT_PUSH_ANALYSE_PICTURE_FILE_BYRULE extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+
+public NET_OUT_PUSH_ANALYSE_PICTURE_FILE_BYRULE(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERYNEXTLOG.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERYNEXTLOG.java
new file mode 100644
index 0000000..fb80d71
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERYNEXTLOG.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 251823
+ * @description CLIENT_QueryNextLog 输出参数
+ * @date 2023/06/12 09:23:55
+ */
+public class NET_OUT_QUERYNEXTLOG extends NetSDKLib.SdkStructure {
+ public int dwSize;
+ /**
+ * 用户指定分配结构体个数,需大于等于NET_IN_GETNEXTLOG的nGetCount
+ */
+ public int nMaxCount;
+ /**
+ * 返回日志信息,缓存大小由用户指定,大小为nMaxCount*sizeof(NET_LOG_INFO)
+ */
+ public Pointer pstuLogInfo;
+ /**
+ * 实际返回日志条数
+ */
+ public int nRetCount;
+
+ public NET_OUT_QUERYNEXTLOG() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_COURSE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_COURSE.java
new file mode 100644
index 0000000..2df17de
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_COURSE.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 查询课程 入参 {@link NetSDKLib#CLIENT_QueryCourse}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/17 21:12
+ */
+public class NET_OUT_QUERY_COURSE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 查找到的个数
+ */
+ public int nCountResult;
+ /**
+ * 查询的课程信息结果
+ */
+ public NET_COURSE_RESULT[] stuCourseResult = new NET_COURSE_RESULT[64];
+
+ public NET_OUT_QUERY_COURSE() {
+ dwSize = this.size();
+ for (int i = 0; i < stuCourseResult.length; i++) {
+ stuCourseResult[i] = new NET_COURSE_RESULT();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_COURSEMEDIA_FILE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_COURSEMEDIA_FILE.java
new file mode 100644
index 0000000..11d5532
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_COURSEMEDIA_FILE.java
@@ -0,0 +1,37 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 查询课程视频信息出参 {@link NetSDKLib#CLIENT_DoQueryCourseMediaFile}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 16:49
+ */
+public class NET_OUT_QUERY_COURSEMEDIA_FILE extends NetSDKLib.SdkStructure {
+ /**
+ * 该结构体大小
+ */
+ public int dwSize;
+ /**
+ * 查询到的个数
+ */
+ public int nCountResult;
+ /**
+ * 视频信息
+ */
+ public NET_COURSEMEDIA_FILE_INFO[] stuCourseMediaFile = new NET_COURSEMEDIA_FILE_INFO[64];
+
+ public NET_OUT_QUERY_COURSEMEDIA_FILE() {
+ dwSize = this.size();
+ for (int i = 0; i < stuCourseMediaFile.length; i++) {
+ stuCourseMediaFile[i] = new NET_COURSEMEDIA_FILE_INFO();
+ }
+ }
+
+ @Override
+ public int fieldOffset(String name) {
+ return super.fieldOffset(name);
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_COURSEMEDIA_FILECLOSE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_COURSEMEDIA_FILECLOSE.java
new file mode 100644
index 0000000..396cc6c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_COURSEMEDIA_FILECLOSE.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 关闭课程视频查询出参 {@link NetSDKLib#CLIENT_CloseQueryCourseMediaFile}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 19:06
+ */
+public class NET_OUT_QUERY_COURSEMEDIA_FILECLOSE extends NetSDKLib.SdkStructure {
+ /**
+ * 该结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_QUERY_COURSEMEDIA_FILECLOSE() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_COURSEMEDIA_FILEOPEN.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_COURSEMEDIA_FILEOPEN.java
new file mode 100644
index 0000000..89c48ab
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_COURSEMEDIA_FILEOPEN.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 开始查询课程视频信息出参 {@link NetSDKLib#CLIENT_OpenQueryCourseMediaFile}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 16:35
+ */
+public class NET_OUT_QUERY_COURSEMEDIA_FILEOPEN extends NetSDKLib.SdkStructure {
+ /**
+ * 该结构体大小
+ */
+ public int dwSize;
+ /**
+ * 查询到的总个数
+ */
+ public int ntotalNum;
+ /**
+ * 查询ID号
+ */
+ public int nfindID;
+
+ public NET_OUT_QUERY_COURSEMEDIA_FILEOPEN() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_COURSE_CLOSE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_COURSE_CLOSE.java
new file mode 100644
index 0000000..521620d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_COURSE_CLOSE.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 结束查询课程 出参 {@link NetSDKLib#CLIENT_QueryCourseClose}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/17 21:27
+ */
+public class NET_OUT_QUERY_COURSE_CLOSE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_QUERY_COURSE_CLOSE() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_COURSE_OPEN.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_COURSE_OPEN.java
new file mode 100644
index 0000000..2a9dce8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_COURSE_OPEN.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 开始查询课程 出参 {@link NetSDKLib#CLIENT_QueryCourseOpen}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/17 20:47
+ */
+public class NET_OUT_QUERY_COURSE_OPEN extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 查询到的总个数
+ */
+ public int nTotalNum;
+ /**
+ * 查询的句柄号
+ */
+ public int nFindID;
+
+ public NET_OUT_QUERY_COURSE_OPEN() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_MEDIA_FILE_CLOSE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_MEDIA_FILE_CLOSE_INFO.java
new file mode 100644
index 0000000..c48bfcb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_MEDIA_FILE_CLOSE_INFO.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_QueryMediaFileClose 接口输出参数
+*/
+public class NET_OUT_QUERY_MEDIA_FILE_CLOSE_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_OUT_QUERY_MEDIA_FILE_CLOSE_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_MEDIA_FILE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_MEDIA_FILE_INFO.java
new file mode 100644
index 0000000..7331a74
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_MEDIA_FILE_INFO.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_QueryMediaFile 接口输出参数
+*/
+public class NET_OUT_QUERY_MEDIA_FILE_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 查找到的个数,查询结束情况:查找到的个数CountResult小于需要查询的个数Count
+ */
+ public int nCountResult;
+ /**
+ * 文件信息,是一个数组,表示查询到的文件信息,CountResult = 0时,Info为空数组,参见结构体定义 {@link com.netsdk.lib.structure.NET_QUERY_MEDIA_FILE}
+ */
+ public NET_QUERY_MEDIA_FILE[] stuInfo = new NET_QUERY_MEDIA_FILE[32];
+ /**
+ * 文件信息个数
+ */
+ public int nInfoNum;
+
+ public NET_OUT_QUERY_MEDIA_FILE_INFO() {
+ this.dwSize = this.size();
+ for(int i = 0; i < stuInfo.length; i++){
+ stuInfo[i] = new NET_QUERY_MEDIA_FILE();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_MEDIA_FILE_OPEN_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_MEDIA_FILE_OPEN_INFO.java
new file mode 100644
index 0000000..9b0ee14
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_QUERY_MEDIA_FILE_OPEN_INFO.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_QueryMediaFileOpen 接口输出参数
+*/
+public class NET_OUT_QUERY_MEDIA_FILE_OPEN_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 查询到的总个数
+ */
+ public int nTotalNum;
+ /**
+ * 查询ID号
+ */
+ public int nFindID;
+
+ public NET_OUT_QUERY_MEDIA_FILE_OPEN_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_ALARMPOINTINFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_ALARMPOINTINFO.java
new file mode 100644
index 0000000..b86c9cf
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_ALARMPOINTINFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 订阅雷达的报警点信息出参(对应接口 CLIENT_AttachRadarAlarmPointInfo)
+ * @date 2022/08/04 10:13:33
+ */
+public class NET_OUT_RADAR_ALARMPOINTINFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_RADAR_ALARMPOINTINFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_CALCULATEREALSIZE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_CALCULATEREALSIZE.java
new file mode 100644
index 0000000..8cd1fd9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_CALCULATEREALSIZE.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 计算图片对应的地图实际长度出参(对应 EM_RADAR_OPERATE_TYPE_CALCULATEREALSIZE)
+ * @date 2022/08/04 10:13:32
+ */
+public class NET_OUT_RADAR_CALCULATEREALSIZE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 实际地图的高度,单位米(实际长度扩大100倍表示)
+ */
+ public int nRealMapLength;
+ /**
+ * 实际地图的宽度,单位米(实际宽度扩大100倍表示)
+ */
+ public int nRealMapWidth;
+
+ public NET_OUT_RADAR_CALCULATEREALSIZE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_GETCAPS.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_GETCAPS.java
new file mode 100644
index 0000000..33be964
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_GETCAPS.java
@@ -0,0 +1,67 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.EM_RADAR_GETCAPS_AREASUB_TYPE;
+import com.netsdk.lib.enumeration.EM_RADAR_GETCAPS_RADAR_TYPE;
+
+/**
+ * @author 260611
+ * @description 获取雷达能力出参(对应 EM_RADAR_OPERATE_TYPE_GETCAPS)
+ * @date 2022/08/04 10:13:32
+ */
+public class NET_OUT_RADAR_GETCAPS extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 雷达探测距离,实际距离扩大100倍,单位米
+ */
+ public int nDetectionRange;
+ /**
+ * 雷达探测角度,实际角度扩大100倍,单位度
+ */
+ public int nDetectionAngle;
+ /**
+ * 雷达人探测距离,实际距离扩大100倍,单位米
+ */
+ public int nDetectionHuman;
+ /**
+ * 下列扩展能力是否有效(老设备不支持获取下列能力,从而无法用于判断是否支持下列能力)
+ */
+ public int bExValid;
+ /**
+ * 雷达功率配置能力
+ */
+ public NET_RADAR_CAPACITY_CAP stuCapacityCap = new NET_RADAR_CAPACITY_CAP();
+ /**
+ * 雷达场景配置能力
+ */
+ public NET_RADAR_SCENE_CAP stuSceneCap = new NET_RADAR_SCENE_CAP();
+ /**
+ * 雷达信道配置能力
+ */
+ public NET_RADAR_CHANNEL_CAP stuChannelCap = new NET_RADAR_CHANNEL_CAP();
+ /**
+ * 雷达场景变更能力
+ */
+ public NET_RADAR_MOVEDDETECT_CAP stuMovedDetectCap = new NET_RADAR_MOVEDDETECT_CAP();
+ /**
+ * 雷达控制盒支持的协议能力
+ */
+ public NET_RADAR_PROTOCAL_CAP stuProtocalCap = new NET_RADAR_PROTOCAL_CAP();
+ /**
+ * 雷达探测范围形状 {@link com.netsdk.lib.enumeration.EM_RADAR_GETCAPS_AREASUB_TYPE}
+ */
+ public int emAreaSubType;
+ /**
+ * 雷达类型 {@link com.netsdk.lib.enumeration.EM_RADAR_GETCAPS_RADAR_TYPE}
+ */
+ public int emRadarType;
+
+ public NET_OUT_RADAR_GETCAPS() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_GETSTATUS.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_GETSTATUS.java
new file mode 100644
index 0000000..833dd85
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_GETSTATUS.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.EM_RADAR_STATUS;
+
+/**
+ * @author 260611
+ * @description 获取雷达状态出参(对应 EM_RADAR_OPERATE_TYPE_GETSTATUS)
+ * @date 2022/08/04 10:13:32
+ */
+public class NET_OUT_RADAR_GETSTATUS extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 雷达状态 {@link com.netsdk.lib.enumeration.EM_RADAR_STATUS}
+ */
+ public int emRadarStatus;
+
+ public NET_OUT_RADAR_GETSTATUS() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_GET_RFID_MODE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_GET_RFID_MODE.java
new file mode 100644
index 0000000..be074b6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_GET_RFID_MODE.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author : 260611
+ * @description : CLIENT_GetRadarRFIDMode接口出参
+ * @since : Created in 2022/02/11 10:22
+ */
+
+public class NET_OUT_RADAR_GET_RFID_MODE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * RFID规则模式,0:设备单独工作时使用,全部为有效卡;1:平台接入时使用,区分RFID卡片有效性
+ */
+ public int nMode;
+
+ public NET_OUT_RADAR_GET_RFID_MODE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_MANUAL_TRACK.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_MANUAL_TRACK.java
new file mode 100644
index 0000000..8c05374
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_MANUAL_TRACK.java
@@ -0,0 +1,27 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description CLIENT_RadarManualTrack接口出参
+ * @date 2021/10/22 9:03
+ */
+public class NET_OUT_RADAR_MANUAL_TRACK extends NetSDKLib.SdkStructure {
+ /** 结构体大小 */
+ public int dwSize;
+ /** 返回被跟踪轨迹对应的球机ip */
+ public byte[] szSDIP = new byte[32];
+ /**返回被跟踪目标的一个全局唯一id */
+ public int nEventID;
+ /** 字节对齐 **/
+ public int[] szReserved = new int[4];
+ /** 联动目标唯一id;(多雷达情况下也是唯一) char数组的第1-12位: 是设备的MAC地址; 13-23位 : 是时间; 23-28位 :是随机数; 29-32位 :是目标id,即TrackID字段 **/
+ public byte[] szTargetUUID = new byte[32];
+
+ public NET_OUT_RADAR_MANUAL_TRACK() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_SETCALIBRATION.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_SETCALIBRATION.java
new file mode 100644
index 0000000..0cff621
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_SETCALIBRATION.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 雷球校准配置出参(对应 EM_RADAR_OPERATE_TYPE_SETCALIBRATION)
+ * @date 2022/08/04 10:13:33
+ */
+public class NET_OUT_RADAR_SETCALIBRATION extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_RADAR_SETCALIBRATION() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_SET_RFID_MODE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_SET_RFID_MODE.java
new file mode 100644
index 0000000..7b5f849
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_SET_RFID_MODE.java
@@ -0,0 +1,22 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author : 260611
+ * @description : CLIENT_SetRadarRFIDMode接口出参
+ * @since : Created in 2022/02/11 10:22
+ */
+
+public class NET_OUT_RADAR_SET_RFID_MODE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_RADAR_SET_RFID_MODE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_STARTUPGRADE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_STARTUPGRADE.java
new file mode 100644
index 0000000..36644e5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_RADAR_STARTUPGRADE.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 雷达开始升级通知出参(对应 EM_RADAR_OPERATE_TYPE_STARTUPGRADE)
+ * @date 2022/08/04 10:13:31
+ */
+public class NET_OUT_RADAR_STARTUPGRADE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_RADAR_STARTUPGRADE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_RADIOMETRY_ATTACH_TEMPER.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_RADIOMETRY_ATTACH_TEMPER.java
new file mode 100644
index 0000000..ad6474f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_RADIOMETRY_ATTACH_TEMPER.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_RadiometryAttachTemper 出参
+*/
+public class NET_OUT_RADIOMETRY_ATTACH_TEMPER extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+
+ public NET_OUT_RADIOMETRY_ATTACH_TEMPER() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_RADIOMETRY_CURRENTHOTCOLDSPOT_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_RADIOMETRY_CURRENTHOTCOLDSPOT_INFO.java
new file mode 100644
index 0000000..fad50c9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_RADIOMETRY_CURRENTHOTCOLDSPOT_INFO.java
@@ -0,0 +1,23 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 冷(最低的温度)、热(最高的温度)点信息
+* @origin autoTool
+* @date 2023/08/07 13:51:18
+*/
+public class NET_OUT_RADIOMETRY_CURRENTHOTCOLDSPOT_INFO extends NetSDKLib.SdkStructure {
+ public int dwSize;
+/**
+热成像当前冷(最低的温度)、热(最高的温度)点信息
+*/
+ public NET_RADIOMETRY_CURRENTHOTCOLDSPOT_INFO stuCurrentHotColdSpotInfo = new NET_RADIOMETRY_CURRENTHOTCOLDSPOT_INFO();
+
+public NET_OUT_RADIOMETRY_CURRENTHOTCOLDSPOT_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_RADIOMETRY_GET_CUR_TEMPER_ALL_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_RADIOMETRY_GET_CUR_TEMPER_ALL_INFO.java
new file mode 100644
index 0000000..b8abf03
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_RADIOMETRY_GET_CUR_TEMPER_ALL_INFO.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * CLIENT_RadiometryGetCurTemperAll 接口出参
+*/
+public class NET_OUT_RADIOMETRY_GET_CUR_TEMPER_ALL_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 规则温度信息数组,内存由用户申请释放,参见结构体定义 NET_RADIOMETRY_TEMP_INFO
+ */
+ public Pointer pstTempInfo;
+ /**
+ * 最大规则温度信息数量,由用户填充
+ */
+ public int nMaxTempInfoNum;
+ /**
+ * 实际返回的规则温度信息数量,由SDK填充
+ */
+ public int nRetTempInfoNum;
+
+ public NET_OUT_RADIOMETRY_GET_CUR_TEMPER_ALL_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_RADIOMETRY_GET_TEMPER_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_RADIOMETRY_GET_TEMPER_INFO.java
new file mode 100644
index 0000000..9c3ffeb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_RADIOMETRY_GET_TEMPER_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_RadiometryGetTemper 接口出参
+*/
+public class NET_OUT_RADIOMETRY_GET_TEMPER_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 获取测温点的参数值,参见结构体定义 NET_RADIOMETRY_TEMP_INFO
+ */
+ public NET_RADIOMETRY_TEMP_INFO stTempInfo = new NET_RADIOMETRY_TEMP_INFO();
+
+ public NET_OUT_RADIOMETRY_GET_TEMPER_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_RADIOMETRY_RANDOM_REGION_TEMPER.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_RADIOMETRY_RANDOM_REGION_TEMPER.java
new file mode 100644
index 0000000..6f77da7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_RADIOMETRY_RANDOM_REGION_TEMPER.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_RadiometryGetRandomRegionTemper 出参
+*/
+public class NET_OUT_RADIOMETRY_RANDOM_REGION_TEMPER extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 随机测温区域的温度信息,参见结构体定义 {@link com.netsdk.lib.structure.NET_RADIOMETRY_REGION_TEMP_INFO}
+ */
+ public NET_RADIOMETRY_REGION_TEMP_INFO stuRegionTempInfo = new NET_RADIOMETRY_REGION_TEMP_INFO();
+
+ public NET_OUT_RADIOMETRY_RANDOM_REGION_TEMPER() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_REBOOT_DEVICE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_REBOOT_DEVICE.java
new file mode 100644
index 0000000..e5c529a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_REBOOT_DEVICE.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_RebootDevice 接口输出参数
+*/
+public class NET_OUT_REBOOT_DEVICE extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_REBOOT_DEVICE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_RECORDMANAGER_ATTACH_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_RECORDMANAGER_ATTACH_INFO.java
new file mode 100644
index 0000000..feab315
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_RECORDMANAGER_ATTACH_INFO.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_AttachRecordManagerState 出参
+*/
+public class NET_OUT_RECORDMANAGER_ATTACH_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_RECORDMANAGER_ATTACH_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_REFUSE_SLEEP_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_REFUSE_SLEEP_INFO.java
new file mode 100644
index 0000000..b67bab2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_REFUSE_SLEEP_INFO.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_RefuseLowPowerDevSleep 接口输出参数
+*/
+public class NET_OUT_REFUSE_SLEEP_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_REFUSE_SLEEP_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_REMOTE_LIST.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_REMOTE_LIST.java
new file mode 100644
index 0000000..9184242
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_REMOTE_LIST.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * CLIENT_RemoteList 接口输出参数
+*/
+public class NET_OUT_REMOTE_LIST extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 文件信息,参见结构体定义 {@link com.netsdk.lib.structure.NET_REMOTE_FILE_INFO}
+ */
+ public Pointer pstuFileInfo;
+ /**
+ * 文件信息数组大小, 用户填写
+ */
+ public int nMaxFileCount;
+ /**
+ * 返回的文件数量
+ */
+ public int nRetFileCount;
+
+ public NET_OUT_REMOTE_LIST() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_REMOTE_SLEEP.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_REMOTE_SLEEP.java
new file mode 100644
index 0000000..61bf16c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_REMOTE_SLEEP.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description CLIENT_RemoteSleep 输出接口参数
+ * @date 2022/3/24 14:00
+ */
+public class NET_OUT_REMOTE_SLEEP extends NetSDKLib.SdkStructure {
+ public int dwSize; // 结构体大小
+
+public NET_OUT_REMOTE_SLEEP(){
+ this.dwSize=this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_REMOTE_SPEAK_CAPS.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_REMOTE_SPEAK_CAPS.java
new file mode 100644
index 0000000..95790ab
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_REMOTE_SPEAK_CAPS.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * CLIENT_GetDevCaps NET_REMOTE_SPEAK_CAPS 出参
+*/
+public class NET_OUT_REMOTE_SPEAK_CAPS extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 实际返回的能力集个数
+ */
+ public int nRetCapNum;
+ /**
+ * 能力集,参见结构体定义 {@link com.netsdk.lib.structure.NET_SPEAK_CAPS}
+ */
+ public Pointer pstuCaps;
+ /**
+ * 字节对齐
+ */
+ public Pointer pReserved;
+ /**
+ * 用户分配的最大能力集数组个数
+ */
+ public int nMaxCapNum;
+
+ public NET_OUT_REMOTE_SPEAK_CAPS() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_REMOVE_APP.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_REMOVE_APP.java
new file mode 100644
index 0000000..80b3d65
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_REMOVE_APP.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_RemoveApp 接口输出参数
+*/
+public class NET_OUT_REMOVE_APP extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_REMOVE_APP() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_REMOVE_SOFT_TOUR_POINT_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_REMOVE_SOFT_TOUR_POINT_INFO.java
new file mode 100644
index 0000000..5cea8e7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_REMOVE_SOFT_TOUR_POINT_INFO.java
@@ -0,0 +1,22 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 421657
+ * @description 接口 CLIENT_RemoveTourPoint 的输出参数
+ * @origin autoTool
+ * @date 2023/10/16 19:46:41
+ */
+public class NET_OUT_REMOVE_SOFT_TOUR_POINT_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * / 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_OUT_REMOVE_SOFT_TOUR_POINT_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_RESET_PIC_MAP.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_RESET_PIC_MAP.java
new file mode 100644
index 0000000..bf100ff
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_RESET_PIC_MAP.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_ResetPicMap 接口输出参数
+*/
+public class NET_OUT_RESET_PIC_MAP extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_OUT_RESET_PIC_MAP() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_RESET_SYSTEM.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_RESET_SYSTEM.java
new file mode 100644
index 0000000..a4f6ce6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_RESET_SYSTEM.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 恢复出厂设置出参
+*/
+public class NET_OUT_RESET_SYSTEM extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+
+ public NET_OUT_RESET_SYSTEM() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SCADA_GET_ATTRIBUTE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SCADA_GET_ATTRIBUTE_INFO.java
new file mode 100644
index 0000000..a02ceb8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SCADA_GET_ATTRIBUTE_INFO.java
@@ -0,0 +1,38 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+public class NET_OUT_SCADA_GET_ATTRIBUTE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 用户最大申请缓存个数
+ */
+ public int nMaxAttributeInfoNum;
+ /**
+ * 设备点位信息(内存由用户申请) NET_ATTRIBUTE_INFO
+ */
+ public Pointer pstuAttributeInfo;
+ /**
+ * 返回点位信息个数
+ */
+ public int nRetAttributeInfoNum;
+
+ public NET_OUT_SCADA_GET_ATTRIBUTE_INFO(){
+ this.dwSize = this.size();
+ }
+
+ @Override
+ public String toString() {
+ return "NET_OUT_SCADA_GET_ATTRIBUTE_INFO{" +
+ "dwSize=" + dwSize +
+ ", nMaxAttributeInfoNum=" + nMaxAttributeInfoNum +
+ ", pstuAttributeInfo=" + pstuAttributeInfo +
+ ", nRetAttributeInfoNum=" + nRetAttributeInfoNum +
+ '}';
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SCENICSPOT_GETCAPS_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SCENICSPOT_GETCAPS_INFO.java
new file mode 100644
index 0000000..673b957
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SCENICSPOT_GETCAPS_INFO.java
@@ -0,0 +1,27 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 获取景物点支持的能力
+ * 入参(CLIENT_ScenicSpotGetCaps 输入参数)
+ * 接口 {@link NetSDKLib#CLIENT_ScenicSpotGetCaps}
+ *
+ * @author : 47040
+ * @since : Created in 2020/10/26 16:30
+ */
+public class NET_OUT_SCENICSPOT_GETCAPS_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 能力集信息
+ */
+ public NET_SCENICSPOT_CAPS_INFO stuCaps;
+
+ public NET_OUT_SCENICSPOT_GETCAPS_INFO() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SCENICSPOT_GETPOINTINFOS_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SCENICSPOT_GETPOINTINFOS_INFO.java
new file mode 100644
index 0000000..9439482
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SCENICSPOT_GETPOINTINFOS_INFO.java
@@ -0,0 +1,40 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+import static com.netsdk.lib.constant.SDKStructureFieldLenth.MAX_SCENICSPOT_POINTS_NUM;
+
+/**
+ * 分页获取 信息标注信息列表 出参
+ * 入参 {@link NET_IN_SCENICSPOT_GETPOINTINFOS_INFO}
+ * 接口 {@link NetSDKLib#CLIENT_ScenicSpotGetPointInfos}
+ *
+ * @author : 47040
+ * @since : Created in 2020/10/26 15:41
+ */
+public class NET_OUT_SCENICSPOT_GETPOINTINFOS_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 设备总共多少个景物点信息
+ */
+ public int nTotal;
+ /**
+ * 当前获取到景物点个数
+ */
+ public int nRetSceneNum;
+ /**
+ * 数组长度等于limit,最后一组查询可能小于limit
+ */
+ public POINTINFOS[] stuPointInfos = new POINTINFOS[MAX_SCENICSPOT_POINTS_NUM];
+
+ public NET_OUT_SCENICSPOT_GETPOINTINFOS_INFO() {
+ dwSize = this.size();
+ for (int i = 0; i < stuPointInfos.length; i++) {
+ stuPointInfos[i] = new POINTINFOS();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SCENICSPOT_SETPOINTINFO_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SCENICSPOT_SETPOINTINFO_INFO.java
new file mode 100644
index 0000000..c2d7320
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SCENICSPOT_SETPOINTINFO_INFO.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 设置景物点,原编号的景物点将会被覆盖 出参 入参 {@link NET_IN_SCENICSPOT_SETPOINTINFO_INFO} 接口
+ * {@link NetSDKLib#CLIENT_ScenicSpotSetPointInfo}
+ *
+ * @author : 47040
+ * @since : Created in 2020/10/26 16:14
+ */
+public class NET_OUT_SCENICSPOT_SETPOINTINFO_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 标签同步通道有效个数
+ */
+ public int nSyncToChannelNum;
+ /**
+ * 标签同步通道
+ */
+ public short[] nSyncToChannels = new short[16];
+
+ public NET_OUT_SCENICSPOT_SETPOINTINFO_INFO() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SCENICSPOT_TURNTOPOINT_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SCENICSPOT_TURNTOPOINT_INFO.java
new file mode 100644
index 0000000..db0cda1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SCENICSPOT_TURNTOPOINT_INFO.java
@@ -0,0 +1,23 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 以景物标注点为中心,进行三维定位的 出参
+ * 入参 {@link NET_IN_SCENICSPOT_TURNTOPOINT_INFO}
+ * 接口 {@link NetSDKLib#CLIENT_ScenicSpotTurnToPoint}
+ *
+ * @author : 47040
+ * @since : Created in 2020/10/26 17:29
+ */
+public class NET_OUT_SCENICSPOT_TURNTOPOINT_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_SCENICSPOT_TURNTOPOINT_INFO() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SECONDARY_ANALYSE_PAUSETASK.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SECONDARY_ANALYSE_PAUSETASK.java
new file mode 100644
index 0000000..4f2974f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SECONDARY_ANALYSE_PAUSETASK.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 暂停录像二次分析任务输出参数
+*/
+public class NET_OUT_SECONDARY_ANALYSE_PAUSETASK extends NetSDKLib.SdkStructure
+{
+ /**
+ * 赋值为结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_SECONDARY_ANALYSE_PAUSETASK() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SECONDARY_ANALYSE_REMOVETASK.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SECONDARY_ANALYSE_REMOVETASK.java
new file mode 100644
index 0000000..092e456
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SECONDARY_ANALYSE_REMOVETASK.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 删除录像二次分析任务输出参数
+*/
+public class NET_OUT_SECONDARY_ANALYSE_REMOVETASK extends NetSDKLib.SdkStructure
+{
+ /**
+ * 赋值为结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_SECONDARY_ANALYSE_REMOVETASK() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SECONDARY_ANALYSE_STARTTASK.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SECONDARY_ANALYSE_STARTTASK.java
new file mode 100644
index 0000000..fd9532b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SECONDARY_ANALYSE_STARTTASK.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 开始录像二次分析任务输出参数
+*/
+public class NET_OUT_SECONDARY_ANALYSE_STARTTASK extends NetSDKLib.SdkStructure
+{
+ /**
+ * 赋值为结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_SECONDARY_ANALYSE_STARTTASK() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SECURITYGATE_ATTACH_ALARM_STATISTICS.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SECURITYGATE_ATTACH_ALARM_STATISTICS.java
new file mode 100644
index 0000000..2b56eef
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SECURITYGATE_ATTACH_ALARM_STATISTICS.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author : 291189
+ * @since : Created in 2021/6/30 10:47
+ * CLIENT_SecurityGateAttachAlarmStatistics 输出结构体
+ */
+public class NET_OUT_SECURITYGATE_ATTACH_ALARM_STATISTICS extends NetSDKLib.SdkStructure {
+ public int dwSize; // 赋值为结构体大小
+
+ public NET_OUT_SECURITYGATE_ATTACH_ALARM_STATISTICS(){
+ this.dwSize=this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SECURITY_EXPORT_DATA_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SECURITY_EXPORT_DATA_INFO.java
new file mode 100644
index 0000000..5274b25
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SECURITY_EXPORT_DATA_INFO.java
@@ -0,0 +1,38 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * CLIENT_SecurityExportDataEx接口出参
+*/
+public class NET_OUT_SECURITY_EXPORT_DATA_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 导出文件数据, 用户申请内存, 大小为nBufLen
+ */
+ public Pointer pBufData;
+ /**
+ * pBufData最大长度
+ */
+ public int nBufLen;
+ /**
+ * 实际返回的长度
+ */
+ public int nBufRet;
+ /**
+ * 导出文件数据总长度
+ */
+ public int nTotalLength;
+ /**
+ * 二进制包长度
+ */
+ public int nPackLength;
+
+ public NET_OUT_SECURITY_EXPORT_DATA_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SECURITY_GETCAPS_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SECURITY_GETCAPS_INFO.java
new file mode 100644
index 0000000..721c064
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SECURITY_GETCAPS_INFO.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_SecurityGetCaps接口出参
+*/
+public class NET_OUT_SECURITY_GETCAPS_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 返回支持类型
+ */
+ public int nTypesRealNum;
+ /**
+ * 0 车牌允许名单, 1 车牌禁止名单, 2 车牌禁止和允许名单, 3 对讲通信录, 4 自定义密码, 5 卡片记录集, 6 门禁目标信息, 7 门禁信息, 8 对讲IPC信息, 9 对讲人员信息, 10 公共密码记录集, 11 运维信息, 13 预置点信息, 14 管理机设备管理信息
+ */
+ public int[] nSupportTypes = new int[32];
+
+ public NET_OUT_SECURITY_GETCAPS_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SECURITY_GET_TASK_STATUS_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SECURITY_GET_TASK_STATUS_INFO.java
new file mode 100644
index 0000000..938a571
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SECURITY_GET_TASK_STATUS_INFO.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_SecurityGetTaskStatus接口出参
+*/
+public class NET_OUT_SECURITY_GET_TASK_STATUS_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 当前任务类型,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_SECURITY_TASK_TYPE}
+ */
+ public int nTaskType;
+ /**
+ * 当前任务状态,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_SECURITY_TASK_STATUS}
+ */
+ public int nStatus;
+ /**
+ * 当任务状态"Status"为"Failed"时, 填写错误信息, 例如:"File content error!" 文件错误
+ */
+ public byte[] szErrorCode = new byte[128];
+ /**
+ * 当前任务执行进度百分比
+ */
+ public int nProgress;
+
+ public NET_OUT_SECURITY_GET_TASK_STATUS_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SECURITY_IMPORT_DATA_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SECURITY_IMPORT_DATA_INFO.java
new file mode 100644
index 0000000..aceb23f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SECURITY_IMPORT_DATA_INFO.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_SecurityImportDataEx接口出参
+*/
+public class NET_OUT_SECURITY_IMPORT_DATA_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_OUT_SECURITY_IMPORT_DATA_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SECURITY_PREPARE_EXPORT_DATA_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SECURITY_PREPARE_EXPORT_DATA_INFO.java
new file mode 100644
index 0000000..b72cd82
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SECURITY_PREPARE_EXPORT_DATA_INFO.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_SecurityPrepareExportData接口出参
+*/
+public class NET_OUT_SECURITY_PREPARE_EXPORT_DATA_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_OUT_SECURITY_PREPARE_EXPORT_DATA_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_2DCODE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_2DCODE.java
new file mode 100644
index 0000000..7f99c7d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_2DCODE.java
@@ -0,0 +1,22 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description {@link NetSDKLib#CLIENT_Set2DCode(NetSDKLib.LLong, Pointer, Pointer, int)}的出参
+ * @date 2020/9/10
+ */
+public class NET_OUT_SET_2DCODE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_SET_2DCODE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_ALARMMODE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_ALARMMODE.java
new file mode 100644
index 0000000..6152ac1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_ALARMMODE.java
@@ -0,0 +1,56 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 251823
+ * @description 设置布防模式
+ * 输出参数。此时CLIENT_SetAlarmRegionInfo的emType参数为NET_EM_SET_ALARMREGION_INFO_ARMMODE
+ * @date 2023/03/15 16:26:00
+ */
+public class NET_OUT_SET_ALARMMODE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 布防结果 0:成功 1:失败
+ */
+ public int nArmResult;
+ /**
+ * 布防失败的区域个数
+ */
+ public int nFailedAreaRet;
+ /**
+ * 布防失败的细节
+ */
+ public ARM_FAILED_DETAIL[] stuFailedDetail = new ARM_FAILED_DETAIL[8];
+ /**
+ * 布防失败个数, 最大值为64
+ */
+ public int nFailedDetailNum;
+ /**
+ * 布防失败的细节扩展字段 布防个数大于8个使用此字段,指针对应结构体{ @link ARM_FAILED_DETAIL_EX}数组
+ */
+ public Pointer pstuFailedDetailEx;
+ /**
+ * 异常设备信息个数
+ */
+ public int nDeviceFaultNum;
+ /**
+ * 设备异常信息,最大支持256个
+ */
+ public NET_DEVICE_FAULT_INFO[] stuDeviceFault = new NET_DEVICE_FAULT_INFO[256];
+
+ public NET_OUT_SET_ALARMMODE() {
+ for (int i = 0; i < stuFailedDetail.length; i++) {
+ stuFailedDetail[i] = new ARM_FAILED_DETAIL();
+ }
+ for (int i = 0; i < stuDeviceFault.length; i++) {
+ stuDeviceFault[i] = new NET_DEVICE_FAULT_INFO();
+ }
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_BACKUP_MODE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_BACKUP_MODE.java
new file mode 100644
index 0000000..f018fed
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_BACKUP_MODE.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_SetRtscBackupMode 接口输出参数
+ * @date 2021/09/28
+ */
+public class NET_OUT_SET_BACKUP_MODE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 备份模式设置错误码。参考枚举{ @link EM_BACKUP_ERROR_CODE }
+ */
+ public int emBackUpErrCode;
+
+ public NET_OUT_SET_BACKUP_MODE(){
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_BIND_MODE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_BIND_MODE_INFO.java
new file mode 100644
index 0000000..a22372b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_BIND_MODE_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description CLIENT_SetBindMode 接口出参
+ * @origin autoTool
+ * @date 2023/09/15 10:59:47
+ */
+public class NET_OUT_SET_BIND_MODE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * / 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_OUT_SET_BIND_MODE_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_BLIND_REAL_CHANNEL.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_BLIND_REAL_CHANNEL.java
new file mode 100644
index 0000000..a36675c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_BLIND_REAL_CHANNEL.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 设置逻辑通道号和真实通道号的绑定关系出参 ,对应接口{@link NetSDKLib#CLIENT_SetBlindRealChannel}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 15:12
+ */
+public class NET_OUT_SET_BLIND_REAL_CHANNEL extends NetSDKLib.SdkStructure {
+ public int dwSize;
+
+ public NET_OUT_SET_BLIND_REAL_CHANNEL() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_BYPASSMODE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_BYPASSMODE.java
new file mode 100644
index 0000000..bffd37c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_BYPASSMODE.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 设置旁路状态
+ * 输出参数,此时CLIENT_SetAlarmRegionInfo的emType参数为NET_EM_SET_ALARMREGION_INFO_BYPASSMODE
+ * @date 2023/03/15 16:34:13
+ */
+public class NET_OUT_SET_BYPASSMODE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_SET_BYPASSMODE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_CALIBRATEINFO_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_CALIBRATEINFO_INFO.java
new file mode 100644
index 0000000..a25e3f0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_CALIBRATEINFO_INFO.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 设置标定点信息出参
+ * @date 2023/05/24 10:24:52
+ */
+public class NET_OUT_SET_CALIBRATEINFO_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_SET_CALIBRATEINFO_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_CAMERA_CFG.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_CAMERA_CFG.java
new file mode 100644
index 0000000..16e62fb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_CAMERA_CFG.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+/**
+ * @author 251823
+ * @version 1.0
+ * @description {@link NetSDKLib#CLIENT_SetCameraCfg}的出参
+ * @date 2020/11/06
+ */
+public class NET_OUT_SET_CAMERA_CFG extends NetSDKLib.SdkStructure {
+ // 结构体大小
+ public int dwSize;
+
+ public NET_OUT_SET_CAMERA_CFG() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_CHANNEL_CFG.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_CHANNEL_CFG.java
new file mode 100644
index 0000000..cd81aff
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_CHANNEL_CFG.java
@@ -0,0 +1,19 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @version 1.0
+ * @description {@link NetSDKLib#CLIENT_SetChannelCfg}的出参
+ * @date 2020/11/07
+ */
+public class NET_OUT_SET_CHANNEL_CFG extends NetSDKLib.SdkStructure {
+ // 结构体大小
+ public int dwSize;
+
+ public NET_OUT_SET_CHANNEL_CFG() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_CONSUME_RESULT.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_CONSUME_RESULT.java
new file mode 100644
index 0000000..6ca3a41
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_CONSUME_RESULT.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_SetConsumeResult 输出结构体
+* @date 2022/03/07 17:37:19
+*/
+public class NET_OUT_SET_CONSUME_RESULT extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+
+public NET_OUT_SET_CONSUME_RESULT(){
+this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_COURSE_RECORD_MODE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_COURSE_RECORD_MODE.java
new file mode 100644
index 0000000..b991505
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_COURSE_RECORD_MODE.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 设置录像模式出参,对应接口{@link NetSDKLib#CLIENT_SetCourseRecordMode }
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 15:44
+ */
+public class NET_OUT_SET_COURSE_RECORD_MODE extends NetSDKLib.SdkStructure {
+ public int dwSize;
+
+ public NET_OUT_SET_COURSE_RECORD_MODE() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_COURSE_RECORD_STATE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_COURSE_RECORD_STATE.java
new file mode 100644
index 0000000..ad2f92e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_COURSE_RECORD_STATE.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 开启/关闭指定通道录像出参 {@link NetSDKLib#CLIENT_SetCourseRecordState}
+ *
+ * @author : 47040
+ * @since : Created in 2020/9/28 16:16
+ */
+public class NET_OUT_SET_COURSE_RECORD_STATE extends NetSDKLib.SdkStructure {
+ /**
+ * 该结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_SET_COURSE_RECORD_STATE() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_DYNAMIC_LOCK_COMMUNICATIONKEY_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_DYNAMIC_LOCK_COMMUNICATIONKEY_INFO.java
new file mode 100644
index 0000000..fa27485
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_DYNAMIC_LOCK_COMMUNICATIONKEY_INFO.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_SetDynamicLockCommunicationKey 接口出参
+* @date 2022/06/23 10:17:41
+*/
+public class NET_OUT_SET_DYNAMIC_LOCK_COMMUNICATIONKEY_INFO extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+/**
+动态密码锁错误码 {@link com.netsdk.lib.enumeration.EM_DYNAMIC_LOCK_ERRORCODE}
+*/
+ public int emErrorCode;
+
+public NET_OUT_SET_DYNAMIC_LOCK_COMMUNICATIONKEY_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_DYNAMIC_LOCK_OPENKEY_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_DYNAMIC_LOCK_OPENKEY_INFO.java
new file mode 100644
index 0000000..b6c1d34
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_DYNAMIC_LOCK_OPENKEY_INFO.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_SetDynamicLockOpenKey 接口出参
+* @date 2022/06/23 10:21:41
+*/
+public class NET_OUT_SET_DYNAMIC_LOCK_OPENKEY_INFO extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+/**
+动态密码锁错误码 {@link com.netsdk.lib.enumeration.EM_DYNAMIC_LOCK_ERRORCODE}
+*/
+ public int emErrorCode;
+
+public NET_OUT_SET_DYNAMIC_LOCK_OPENKEY_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_DYNAMIC_LOCK_OPEN_CODE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_DYNAMIC_LOCK_OPEN_CODE_INFO.java
new file mode 100644
index 0000000..caaf5dc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_DYNAMIC_LOCK_OPEN_CODE_INFO.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_SetDynamicLockOpenCode 接口出参
+* @date 2022/06/23 10:29:54
+*/
+public class NET_OUT_SET_DYNAMIC_LOCK_OPEN_CODE_INFO extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+/**
+动态密码锁错误码 {@link com.netsdk.lib.enumeration.EM_DYNAMIC_LOCK_ERRORCODE}
+*/
+ public int emErrorCode;
+
+public NET_OUT_SET_DYNAMIC_LOCK_OPEN_CODE_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_DYNAMIC_LOCK_TEMP_USERID_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_DYNAMIC_LOCK_TEMP_USERID_INFO.java
new file mode 100644
index 0000000..0871546
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_DYNAMIC_LOCK_TEMP_USERID_INFO.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_SetDynamicLockTempUserID 接口出参
+* @date 2022/06/23 10:26:05
+*/
+public class NET_OUT_SET_DYNAMIC_LOCK_TEMP_USERID_INFO extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+/**
+动态密码锁错误码 {@link com.netsdk.lib.enumeration.EM_DYNAMIC_LOCK_ERRORCODE}
+*/
+ public int emErrorCode;
+
+public NET_OUT_SET_DYNAMIC_LOCK_TEMP_USERID_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_EXAM_RECORDING_PLANS.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_EXAM_RECORDING_PLANS.java
new file mode 100644
index 0000000..70809ed
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_EXAM_RECORDING_PLANS.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_SetExamRecordingPlans 接口出参
+* @date 2022/05/16 20:42:53
+*/
+public class NET_OUT_SET_EXAM_RECORDING_PLANS extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+
+public NET_OUT_SET_EXAM_RECORDING_PLANS(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_GLOBAL_PARAMETER.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_GLOBAL_PARAMETER.java
new file mode 100644
index 0000000..331767d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_GLOBAL_PARAMETER.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_SetRtscGlobalParam 接口输出参数
+ * @date 2021/09/28
+ */
+public class NET_OUT_SET_GLOBAL_PARAMETER extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_SET_GLOBAL_PARAMETER(){
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_LOG_ENCRYPT_KEY_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_LOG_ENCRYPT_KEY_INFO.java
new file mode 100644
index 0000000..458953e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_LOG_ENCRYPT_KEY_INFO.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_ExportEncrypedLog 接口出参
+*/
+public class NET_OUT_SET_LOG_ENCRYPT_KEY_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_OUT_SET_LOG_ENCRYPT_KEY_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_OUTPUT_STATE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_OUTPUT_STATE.java
new file mode 100644
index 0000000..8293495
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_OUTPUT_STATE.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 设置输出状态输出参数。此时CLIENT_SetAlarmRegionInfo的emType参数为NET_EM_SET_ALARMREGION_INFO_OUTPUTSTATE
+ * @date 2023/03/15 16:49:41
+ */
+public class NET_OUT_SET_OUTPUT_STATE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_SET_OUTPUT_STATE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_PARKINGRULE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_PARKINGRULE_INFO.java
new file mode 100644
index 0000000..4fae05a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_PARKINGRULE_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @version 1.0
+ * @description 设置停车规则接口,CLIENT_SetParkingRule 出参
+ * @date 2021/05/28
+ */
+public class NET_OUT_SET_PARKINGRULE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_SET_PARKINGRULE_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_PARKINGSPACE_STATE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_PARKINGSPACE_STATE_INFO.java
new file mode 100644
index 0000000..6ee4f79
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_PARKINGSPACE_STATE_INFO.java
@@ -0,0 +1,23 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 设置停车车位状态 出参
+ * 接口 {@link NetSDKLib#CLIENT_SetParkingSpaceState}
+ * 入参 {@link NET_IN_SET_PARKINGSPACE_STATE_INFO}
+ *
+ * @author 47040
+ * @since Created in 2020/11/18 13:34
+ */
+public class NET_OUT_SET_PARKINGSPACE_STATE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_SET_PARKINGSPACE_STATE_INFO() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_PARKING_SPACE_LIGHT_PLAN.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_PARKING_SPACE_LIGHT_PLAN.java
new file mode 100644
index 0000000..160a479
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_PARKING_SPACE_LIGHT_PLAN.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 设置车位指示灯亮灯计划出参
+*/
+public class NET_OUT_SET_PARKING_SPACE_LIGHT_PLAN extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_SET_PARKING_SPACE_LIGHT_PLAN() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_PARK_CONTROL_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_PARK_CONTROL_INFO.java
new file mode 100644
index 0000000..41e9c85
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_PARK_CONTROL_INFO.java
@@ -0,0 +1,15 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+
+public class NET_OUT_SET_PARK_CONTROL_INFO extends SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_SET_PARK_CONTROL_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_POLLING_CONFIG.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_POLLING_CONFIG.java
new file mode 100644
index 0000000..b4238f5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_POLLING_CONFIG.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 平台下发轮询配置出参
+* @date 2022/07/04 10:58:54
+*/
+public class NET_OUT_SET_POLLING_CONFIG extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+
+public NET_OUT_SET_POLLING_CONFIG(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_PRIVACY_MASKING.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_PRIVACY_MASKING.java
new file mode 100644
index 0000000..eb50537
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_PRIVACY_MASKING.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_SetPrivacyMasking 输出参数
+ * @date 2022/07/21 17:12:29
+ */
+public class NET_OUT_SET_PRIVACY_MASKING extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_SET_PRIVACY_MASKING() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_PRIVACY_MASKING_ENABLE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_PRIVACY_MASKING_ENABLE.java
new file mode 100644
index 0000000..21e4f95
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_PRIVACY_MASKING_ENABLE.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_SetPrivacyMaskingEnable 输出参数
+ * @date 2022/07/21 17:14:02
+ */
+public class NET_OUT_SET_PRIVACY_MASKING_ENABLE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_SET_PRIVACY_MASKING_ENABLE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_PTZ_WASH_POSISTION_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_PTZ_WASH_POSISTION_INFO.java
new file mode 100644
index 0000000..677fc27
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_PTZ_WASH_POSISTION_INFO.java
@@ -0,0 +1,22 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author : 260611
+ * @description : 标定球机和蓄水池污点位置,出参
+ * @since : Created in 2021/11/29 10:47
+ */
+
+public class NET_OUT_SET_PTZ_WASH_POSISTION_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_SET_PTZ_WASH_POSISTION_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_RADIOMETRY_RULE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_RADIOMETRY_RULE_INFO.java
new file mode 100644
index 0000000..9a8bbf8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_RADIOMETRY_RULE_INFO.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_SetRadiometryRule 接口出参
+*/
+public class NET_OUT_SET_RADIOMETRY_RULE_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_OUT_SET_RADIOMETRY_RULE_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_RUNNING_MODE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_RUNNING_MODE.java
new file mode 100644
index 0000000..75a2d4e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_RUNNING_MODE.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_SetRtscRunningMode 接口输出参数
+ * @date 2021/09/28
+ */
+public class NET_OUT_SET_RUNNING_MODE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_SET_RUNNING_MODE(){
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_STATEMANAGER_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_STATEMANAGER_INFO.java
new file mode 100644
index 0000000..41010a2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_STATEMANAGER_INFO.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_SetStateManager 接口出参
+ * @date 2023/05/11 14:19:51
+ */
+public class NET_OUT_SET_STATEMANAGER_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_SET_STATEMANAGER_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_TOUR_SOURCE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_TOUR_SOURCE.java
new file mode 100644
index 0000000..eba6683
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_TOUR_SOURCE.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_SetTourSource 接口输出参数(设置窗口轮巡显示源)
+*/
+public class NET_OUT_SET_TOUR_SOURCE extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+
+ public NET_OUT_SET_TOUR_SOURCE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_TRANSMITTUNNEL_PARAM.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_TRANSMITTUNNEL_PARAM.java
new file mode 100644
index 0000000..34e8987
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_TRANSMITTUNNEL_PARAM.java
@@ -0,0 +1,19 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+CLIENT_SetTransmitTunnelParam 接口输出参数
+*/
+public class NET_OUT_SET_TRANSMITTUNNEL_PARAM extends NetSDKLib.SdkStructure {
+/**
+/< 结构体大小
+*/
+ public int dwSize;
+
+ public NET_OUT_SET_TRANSMITTUNNEL_PARAM(){
+ this.dwSize=this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_VTO_MANAGER_RELATION.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_VTO_MANAGER_RELATION.java
new file mode 100644
index 0000000..ecbb1c2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_VTO_MANAGER_RELATION.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description CLIENT_SetVTOManagerRelation 出参
+ * @origin autoTool
+ * @date 2023/10/19 14:16:46
+ */
+public class NET_OUT_SET_VTO_MANAGER_RELATION extends NetSDKLib.SdkStructure {
+ /**
+ * / 结构体大小
+ */
+ public int dwSize;
+ /**
+ * / 接口返回结果为0时成功
+ */
+ public int nErrorCode;
+
+ public NET_OUT_SET_VTO_MANAGER_RELATION() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_XRAY_MULTILEVEL_DETECT_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_XRAY_MULTILEVEL_DETECT_INFO.java
new file mode 100644
index 0000000..751bff5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_XRAY_MULTILEVEL_DETECT_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 接口 CLIENT_SetXRayMultiLevelDetectCFG 的输出参数
+* @date 2022/12/01 17:26:25
+*/
+public class NET_OUT_SET_XRAY_MULTILEVEL_DETECT_INFO extends NetSDKLib.SdkStructure {
+/**
+此结构体大小,必须赋值
+*/
+ public int dwSize;
+
+public NET_OUT_SET_XRAY_MULTILEVEL_DETECT_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_ZONE_ARMODE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_ZONE_ARMODE_INFO.java
new file mode 100644
index 0000000..ccbe44b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SET_ZONE_ARMODE_INFO.java
@@ -0,0 +1,58 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 260611
+ * @description CLIENT_SetZoneArmMode 接口出参, 仅接口失败时下列参数有效
+ * @origin autoTool
+ * @date 2023/08/10 09:52:29
+ */
+public class NET_OUT_SET_ZONE_ARMODE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 布防结果,0: 成功,1: 失败
+ */
+ public int nArmResult;
+ /**
+ * 失败详情数组有效个数
+ */
+ public int nAreaAbnormalNum;
+ /**
+ * 设备异常信息数组有效个数
+ */
+ public int nDeviceFaultNum;
+ /**
+ * 失败详情实际返回有效个数
+ */
+ public int nAreaAbnormalRetNum;
+ /**
+ * 错误码
+ */
+ public int nCode;
+ /**
+ * 失败详情,需由用户申请,申请内存大小为sizeof(NET_AREA_ABNORMAL_INFO)*nAreaAbnormalNum, refer to
+ * {@link NET_AREA_ABNORMAL_INFO}
+ */
+ public Pointer pstuAreaAbnormal;
+ /**
+ * 设备异常信息
+ */
+ public NET_ZONE_ARM_MODE_DEVICE_FAULT_INFO[] stuDeviceFault = new NET_ZONE_ARM_MODE_DEVICE_FAULT_INFO[64];
+ /**
+ * 错误说明
+ */
+ public byte[] szMessage = new byte[256];
+
+ public NET_OUT_SET_ZONE_ARMODE_INFO() {
+ for (int i = 0; i < stuDeviceFault.length; i++) {
+ stuDeviceFault[i] = new NET_ZONE_ARM_MODE_DEVICE_FAULT_INFO();
+ }
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SMOKE_REMOTE_REBOOT_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SMOKE_REMOTE_REBOOT_INFO.java
new file mode 100644
index 0000000..c4ffff9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SMOKE_REMOTE_REBOOT_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description CLIENT_SmokeRemoteReboot 出参
+ * @date 2022/07/26 10:52:50
+ */
+public class NET_OUT_SMOKE_REMOTE_REBOOT_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_SMOKE_REMOTE_REBOOT_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SNAP_BY_EVENT.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SNAP_BY_EVENT.java
new file mode 100644
index 0000000..57751ac
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SNAP_BY_EVENT.java
@@ -0,0 +1,23 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 按照事件类型抓图 出参
+ * 接口 {@link NetSDKLib#CLIENT_SnapPictureByEvent}
+ * 入参 {@link NET_IN_SNAP_BY_EVENT}
+ *
+ * @author 47040
+ * @since Created in 2020/11/18 17:29
+ */
+public class NET_OUT_SNAP_BY_EVENT extends NetSDKLib.SdkStructure {
+ /**
+ * 本结构体大小, 初始化时必须填写
+ */
+ public int dwSize;
+
+ public NET_OUT_SNAP_BY_EVENT() {
+ dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SPLIT_GET_OSD_EX.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SPLIT_GET_OSD_EX.java
new file mode 100644
index 0000000..8637e7d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SPLIT_GET_OSD_EX.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description CLIENT_GetSplitOSDEx 接口输出参数(获取解码窗口输出OSD信息)
+ * @date 2022/06/22 20:38:56
+ */
+public class NET_OUT_SPLIT_GET_OSD_EX extends NetSDKLib.SdkStructure {
+ public int dwSize;
+ /**
+ * OSD数量
+ */
+ public int nOSDNum;
+ /**
+ * OSD信息
+ */
+ public NET_SPLIT_OSD[] stuOSD = new NET_SPLIT_OSD[256];
+
+ public NET_OUT_SPLIT_GET_OSD_EX() {
+ for (int i = 0; i < stuOSD.length; i++) {
+ stuOSD[i] = new NET_SPLIT_OSD();
+ }
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SPLIT_SET_HIGHLIGHT.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SPLIT_SET_HIGHLIGHT.java
new file mode 100644
index 0000000..4ee4d31
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SPLIT_SET_HIGHLIGHT.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 设置源边框高亮使能开关输出参数
+ * @date 2022/06/22 09:56:20
+ */
+public class NET_OUT_SPLIT_SET_HIGHLIGHT extends NetSDKLib.SdkStructure {
+ public int dwSize;
+
+ public NET_OUT_SPLIT_SET_HIGHLIGHT() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SPLIT_SET_OSD_EX.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SPLIT_SET_OSD_EX.java
new file mode 100644
index 0000000..23c9cc1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SPLIT_SET_OSD_EX.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description CLIENT_SetSplitOSDEx 接口输出参数(设置解码窗口输出OSD信息)
+ * @date 2022/06/22 09:56:20
+ */
+public class NET_OUT_SPLIT_SET_OSD_EX extends NetSDKLib.SdkStructure {
+ public int dwSize;
+
+ public NET_OUT_SPLIT_SET_OSD_EX() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SPLIT_SET_TOUR.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SPLIT_SET_TOUR.java
new file mode 100644
index 0000000..e7c5380
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SPLIT_SET_TOUR.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 窗口轮巡控制输出参数, 对应NET_SPLIT_OPERATE_SET_TOUR
+*/
+public class NET_OUT_SPLIT_SET_TOUR extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+
+ public NET_OUT_SPLIT_SET_TOUR() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_SPLIT_SET_WINDOWS_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_SPLIT_SET_WINDOWS_INFO.java
new file mode 100644
index 0000000..7faaeea
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_SPLIT_SET_WINDOWS_INFO.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CIENT_SetSplitWindowsInfo接口输出参数
+*/
+public class NET_OUT_SPLIT_SET_WINDOWS_INFO extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+
+ public NET_OUT_SPLIT_SET_WINDOWS_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_STARTMULTIFIND_FACERECONGNITION_EX.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_STARTMULTIFIND_FACERECONGNITION_EX.java
new file mode 100644
index 0000000..72d00a3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_STARTMULTIFIND_FACERECONGNITION_EX.java
@@ -0,0 +1,43 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description CLIENT_StartMultiFindFaceRecognitionEx 接口输出参数
+ * @date 2022/11/21 17:53:19
+ */
+public class NET_OUT_STARTMULTIFIND_FACERECONGNITION_EX extends NetSDKLib.SdkStructure {
+ public int dwSize;
+ /**
+ * 返回的符合查询条件的记录个数
+ * -1表示总条数未生成,要推迟获取
+ * 使用CLIENT_AttachFaceFindState接口状态
+ */
+ public int nTotalCount;
+ /**
+ * 查询句柄
+ */
+ public NetSDKLib.LLong lFindHandle;
+ /**
+ * 获取到的查询令牌
+ */
+ public int nToken;
+ /**
+ * 结果详细信息的个数, 最大值为64
+ */
+ public int nCountDetailNum;
+ /**
+ * 结果详细信息
+ */
+ public NET_COUNT_DETAIL_INFO[] stuCountDetail = new NET_COUNT_DETAIL_INFO[64];
+
+ public NET_OUT_STARTMULTIFIND_FACERECONGNITION_EX() {
+ for (int i = 0; i < stuCountDetail.length; i++) {
+ stuCountDetail[i] = new NET_COUNT_DETAIL_INFO();
+ }
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_STARTSERACH_DEVICE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_STARTSERACH_DEVICE.java
new file mode 100644
index 0000000..e507f3e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_STARTSERACH_DEVICE.java
@@ -0,0 +1,16 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+public class NET_OUT_STARTSERACH_DEVICE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_STARTSERACH_DEVICE()
+ {
+ this.dwSize = this.size();
+ }// 此结构体大小
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_START_APP.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_START_APP.java
new file mode 100644
index 0000000..108c52a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_START_APP.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_StartApp 接口输出参数
+*/
+public class NET_OUT_START_APP extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_START_APP() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_START_BACKUP_TASK_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_START_BACKUP_TASK_INFO.java
new file mode 100644
index 0000000..ac006e9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_START_BACKUP_TASK_INFO.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+/**
+ *
+ * @author 119178
+ * CLIENT_StartBackupTask接口输入参数
+ * {@link NetSDKLib#CLIENT_StartBackupTask}
+ */
+public class NET_OUT_START_BACKUP_TASK_INFO extends SdkStructure {
+ public int dwSize;
+
+ public NET_OUT_START_BACKUP_TASK_INFO(){
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_START_BACKUP_TASK_SESSION.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_START_BACKUP_TASK_SESSION.java
new file mode 100644
index 0000000..42d25b0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_START_BACKUP_TASK_SESSION.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+/**
+ *
+ * @author 119178
+ * CLIENT_StartBackupTaskSession 接口输出参数
+ * {@link NetSDKLib#CLIENT_StartBackupTaskSession}
+ */
+public class NET_OUT_START_BACKUP_TASK_SESSION extends SdkStructure {
+ public int dwSize;
+
+ public NET_OUT_START_BACKUP_TASK_SESSION(){
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_START_FIND_ACCESS_TIME_SCHEDULE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_START_FIND_ACCESS_TIME_SCHEDULE.java
new file mode 100644
index 0000000..11f1efe
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_START_FIND_ACCESS_TIME_SCHEDULE.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_StartFindAccessTimeSchedule 接口出参
+*/
+public class NET_OUT_START_FIND_ACCESS_TIME_SCHEDULE extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 查找到的总条数
+ */
+ public int nTotal;
+ /**
+ * 查询能力,doFind一次查询结果可提供的最大条数
+ */
+ public int nCaps;
+
+ public NET_OUT_START_FIND_ACCESS_TIME_SCHEDULE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_START_FIND_DETAIL_CLUSTER.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_START_FIND_DETAIL_CLUSTER.java
new file mode 100644
index 0000000..b374237
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_START_FIND_DETAIL_CLUSTER.java
@@ -0,0 +1,36 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 接口 CLIENT_StartFindDetailNumberStatCluster 的输出参数
+ * @date 2022/10/09 14:05:56
+ */
+public class NET_OUT_START_FIND_DETAIL_CLUSTER extends NetSDKLib.SdkStructure {
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 取到的查询令牌
+ */
+ public int nToken;
+ /**
+ * 记录总数
+ */
+ public int nCount;
+ /**
+ * 查询该天的营业开始时间
+ */
+ public NET_TIME_EX stuClusterBeginTime = new NET_TIME_EX();
+ /**
+ * 查询该天的营业结束时间
+ */
+ public NET_TIME_EX stuClusterEndTime = new NET_TIME_EX();
+
+ public NET_OUT_START_FIND_DETAIL_CLUSTER() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_START_FIND_OBJECT_FAVORITES_LIBRARY.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_START_FIND_OBJECT_FAVORITES_LIBRARY.java
new file mode 100644
index 0000000..e0e8cda
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_START_FIND_OBJECT_FAVORITES_LIBRARY.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_StartFindObjectFavoritesLibrary 接口输出参数
+*/
+public class NET_OUT_START_FIND_OBJECT_FAVORITES_LIBRARY extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 查询到记录数
+ */
+ public int nTotalCount;
+
+ public NET_OUT_START_FIND_OBJECT_FAVORITES_LIBRARY() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_START_FIND_OBJECT_MEDIA_FIND.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_START_FIND_OBJECT_MEDIA_FIND.java
new file mode 100644
index 0000000..3865105
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_START_FIND_OBJECT_MEDIA_FIND.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_StartFindObjectMediaFind 接口输出参数
+*/
+public class NET_OUT_START_FIND_OBJECT_MEDIA_FIND extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_START_FIND_OBJECT_MEDIA_FIND() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_START_FIND_VEHICLE_REG_DB.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_START_FIND_VEHICLE_REG_DB.java
new file mode 100644
index 0000000..72a9bc1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_START_FIND_VEHICLE_REG_DB.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description CLIENT_StartFindVehicleRegisterDB 接口输出参数
+ * @date 2022/10/22 10:46
+ */
+public class NET_OUT_START_FIND_VEHICLE_REG_DB extends NetSDKLib.SdkStructure {
+ public int dwSize; // 结构体大小
+ public int nToken; // 取到的查询令牌
+ public int nTotalCount; // 符合此次查询条件的结果总条数
+
+ public NET_OUT_START_FIND_VEHICLE_REG_DB(){
+ dwSize=this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_START_FIND_WATERDATA_STAT_SERVER_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_START_FIND_WATERDATA_STAT_SERVER_INFO.java
new file mode 100644
index 0000000..990cbfb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_START_FIND_WATERDATA_STAT_SERVER_INFO.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_StartFindWaterDataStatServer 输出参数
+* @date 2022/08/22 17:14:16
+*/
+public class NET_OUT_START_FIND_WATERDATA_STAT_SERVER_INFO extends NetSDKLib.SdkStructure {
+/**
+此结构体大小,必须赋值
+*/
+ public int dwSize;
+/**
+取到的查询令牌
+*/
+ public int nToken;
+/**
+符合此次查询条件的结果总条数
+*/
+ public int nTotalCount;
+
+public NET_OUT_START_FIND_WATERDATA_STAT_SERVER_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_START_QUERYLOG.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_START_QUERYLOG.java
new file mode 100644
index 0000000..3566a36
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_START_QUERYLOG.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_StartQueryLog 输出参数
+ * @date 2023/06/12 09:21:42
+ */
+public class NET_OUT_START_QUERYLOG extends NetSDKLib.SdkStructure {
+ public int dwSize;
+
+ public NET_OUT_START_QUERYLOG() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_START_REMOTE_SPEAK_PLAY.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_START_REMOTE_SPEAK_PLAY.java
new file mode 100644
index 0000000..01a2bae
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_START_REMOTE_SPEAK_PLAY.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_StartRemoteSpeakPlay 接口输出参数
+*/
+public class NET_OUT_START_REMOTE_SPEAK_PLAY extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 开始放音状态,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_REMOTE_SPEAK_PLAY_STATE}
+ */
+ public int emStatus;
+
+ public NET_OUT_START_REMOTE_SPEAK_PLAY() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_START_SNIFFER.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_START_SNIFFER.java
new file mode 100644
index 0000000..b968bcc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_START_SNIFFER.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_StartSniffer 接口输出参数
+*/
+public class NET_OUT_START_SNIFFER extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+
+ public NET_OUT_START_SNIFFER() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_START_SUBLINK_LISTEN_SERVER.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_START_SUBLINK_LISTEN_SERVER.java
new file mode 100644
index 0000000..355da0c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_START_SUBLINK_LISTEN_SERVER.java
@@ -0,0 +1,19 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+CLIENT_StartSubLinkListenServer 接口输出参数
+*/
+public class NET_OUT_START_SUBLINK_LISTEN_SERVER extends NetSDKLib.SdkStructure {
+/**
+/< 结构体大小
+*/
+ public int dwSize;
+
+public NET_OUT_START_SUBLINK_LISTEN_SERVER(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_START_TALK_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_START_TALK_INFO.java
new file mode 100644
index 0000000..7943a44
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_START_TALK_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @version 1.0
+ * @description CLIENT_StartTalkByDataType接口 出参
+ * @date 2021/12/29
+ */
+public class NET_OUT_START_TALK_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_START_TALK_INFO(){
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_STOP_APP.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_STOP_APP.java
new file mode 100644
index 0000000..fa473c3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_STOP_APP.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_StopApp 接口输出参数
+*/
+public class NET_OUT_STOP_APP extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_STOP_APP() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_STOP_FACE_RECOGNITION_REABSTRACT.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_STOP_FACE_RECOGNITION_REABSTRACT.java
new file mode 100644
index 0000000..b416996
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_STOP_FACE_RECOGNITION_REABSTRACT.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_StopFaceRecognitionReAbstract 接口输出参数
+*/
+public class NET_OUT_STOP_FACE_RECOGNITION_REABSTRACT extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_OUT_STOP_FACE_RECOGNITION_REABSTRACT() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_STOP_FIND_DETAIL_CLUSTER_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_STOP_FIND_DETAIL_CLUSTER_INFO.java
new file mode 100644
index 0000000..d83ba71
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_STOP_FIND_DETAIL_CLUSTER_INFO.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 接口 CLIENT_StopFindDetailNumberStatCluster 的输出参数
+ * @date 2022/10/09 14:22:23
+ */
+public class NET_OUT_STOP_FIND_DETAIL_CLUSTER_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_OUT_STOP_FIND_DETAIL_CLUSTER_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_STOP_FIND_OBJECT_MEDIA_FIND.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_STOP_FIND_OBJECT_MEDIA_FIND.java
new file mode 100644
index 0000000..9efe939
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_STOP_FIND_OBJECT_MEDIA_FIND.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_StopFindObjectMediaFind 接口输出参数
+*/
+public class NET_OUT_STOP_FIND_OBJECT_MEDIA_FIND extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_OUT_STOP_FIND_OBJECT_MEDIA_FIND() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_STOP_FIND_VEHICLE_REG_DB.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_STOP_FIND_VEHICLE_REG_DB.java
new file mode 100644
index 0000000..ebcb14c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_STOP_FIND_VEHICLE_REG_DB.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description CLIENT_StopFindVehicleRegisterDB 接口输出参数
+ * @date 2022/10/22 10:58
+ */
+public class NET_OUT_STOP_FIND_VEHICLE_REG_DB extends NetSDKLib.SdkStructure {
+ public int dwSize; // 结构体大小
+
+ public NET_OUT_STOP_FIND_VEHICLE_REG_DB(){
+ dwSize=this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_STOP_FIND_WATERDATA_STAT_SERVER_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_STOP_FIND_WATERDATA_STAT_SERVER_INFO.java
new file mode 100644
index 0000000..7f8cf5f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_STOP_FIND_WATERDATA_STAT_SERVER_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_StopFindWaterDataStatServer 输出参数
+* @date 2022/08/23 10:34:25
+*/
+public class NET_OUT_STOP_FIND_WATERDATA_STAT_SERVER_INFO extends NetSDKLib.SdkStructure {
+/**
+此结构体大小,必须赋值
+*/
+ public int dwSize;
+
+public NET_OUT_STOP_FIND_WATERDATA_STAT_SERVER_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_STOP_REMOTE_SPEAK_PLAY.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_STOP_REMOTE_SPEAK_PLAY.java
new file mode 100644
index 0000000..a7bf6b1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_STOP_REMOTE_SPEAK_PLAY.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_StopRemoteSpeakPlay 接口输出参数
+*/
+public class NET_OUT_STOP_REMOTE_SPEAK_PLAY extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_STOP_REMOTE_SPEAK_PLAY() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_STORAGE_DEV_INFOS.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_STORAGE_DEV_INFOS.java
new file mode 100644
index 0000000..048e3a7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_STORAGE_DEV_INFOS.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_QueryDevInfo , NET_QUERY_DEV_STORAGE_INFOS接口输出参数
+ * @author 29779
+ */
+public class NET_OUT_STORAGE_DEV_INFOS extends NetSDKLib.SdkStructure {
+ public int dwSize;
+ public int nDevInfosNum; // 获取到设备的存储模块信息列表
+ public NET_STORAGE_DEVICE[] stuStoregeDevInfos = new NET_STORAGE_DEVICE[128]; // 设备信息列表,DH_STORAGE_DEVICE的dwsize需赋值
+
+ public NET_OUT_STORAGE_DEV_INFOS() {
+ this.dwSize = this.size();
+ for (int i = 0; i < stuStoregeDevInfos.length; i++) {
+ stuStoregeDevInfos[i] = new NET_STORAGE_DEVICE();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_STORAGE_DEV_INFOS_SP.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_STORAGE_DEV_INFOS_SP.java
new file mode 100644
index 0000000..2a5e707
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_STORAGE_DEV_INFOS_SP.java
@@ -0,0 +1,27 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * CLIENT_QueryDevInfo , NET_QUERY_DEV_STORAGE_INFOS_SP接口输出参数
+*/
+public class NET_OUT_STORAGE_DEV_INFOS_SP extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+ /**
+ * 获取到设备的存储模块信息列表
+ */
+ public int nDevInfosNum;
+ /**
+ * 设备的存储模块信息列表,用户赋值
+ */
+ public int nMaxDevInfosNum;
+ /**
+ * 设备信息列表,DH_STORAGE_DEVICE的dwsize需赋值,用户申请内存,参见结构体定义 {@link com.netsdk.lib.structure.NET_STORAGE_DEVICE}
+ */
+ public Pointer pstuStoregeDevInfos;
+
+ public NET_OUT_STORAGE_DEV_INFOS_SP() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_TALK_SEND_DATA_FILE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_TALK_SEND_DATA_FILE.java
new file mode 100644
index 0000000..16512a2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_TALK_SEND_DATA_FILE.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @version 1.0
+ * @description CLIENT_TalkSendDataByFile接口 出参
+ * @date 2021/12/29
+ */
+public class NET_OUT_TALK_SEND_DATA_FILE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_TALK_SEND_DATA_FILE(){
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_TALK_SEND_DATA_STREAM.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_TALK_SEND_DATA_STREAM.java
new file mode 100644
index 0000000..f2fc09b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_TALK_SEND_DATA_STREAM.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @version 1.0
+ * @description CLIENT_TalkSendDataByStream接口 出参
+ * @date 2021/12/29
+ */
+public class NET_OUT_TALK_SEND_DATA_STREAM extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_TALK_SEND_DATA_STREAM(){
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_ATTACH.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_ATTACH.java
new file mode 100644
index 0000000..03102e5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_ATTACH.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description CLIENT_AttachThingsInfo接口输出参数
+ * @date 2022/04/20 10:16:57
+ */
+public class NET_OUT_THINGS_ATTACH extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小, 调用者必须初始化该字段
+ */
+ public int dwSize;
+
+ public NET_OUT_THINGS_ATTACH() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_DOFIND_HISTORYDATA.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_DOFIND_HISTORYDATA.java
new file mode 100644
index 0000000..d1b06a6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_DOFIND_HISTORYDATA.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 260611
+ * @description CLIENT_DoFindThingsHistoryData 输出参数
+ * @date 2022/04/20 10:16:55
+ */
+public class NET_OUT_THINGS_DOFIND_HISTORYDATA extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小, 调用者必须初始化该字段
+ */
+ public int dwSize;
+ /**
+ * 查询到的数量
+ */
+ public int nCount;
+ /**
+ * 用户分配的pstuHistoryData个数
+ */
+ public int nMaxHisDataNum;
+ /**
+ * 历史数据内容,用户分配内存,大小为 nMaxHisDataNum * sizeof{@link NET_THINGS_HISTORYDATA}
+ */
+ public Pointer pstuHistoryData;
+
+ public NET_OUT_THINGS_DOFIND_HISTORYDATA() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_GET.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_GET.java
new file mode 100644
index 0000000..a137e0c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_GET.java
@@ -0,0 +1,43 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 260611
+ * @description CLIENT_GetThingsConfig 接口输出参数
+ * @date 2022/04/20 10:16:57
+ */
+public class NET_OUT_THINGS_GET extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小, 调用者必须初始化该字段
+ */
+ public int dwSize;
+ /**
+ * 产品ID,全网唯一
+ */
+ public byte[] szProductID = new byte[64];
+ /**
+ * 设备ID,产品下唯一
+ */
+ public byte[] szDeviceID = new byte[128];
+ /**
+ * 实际返回的pstuGetOutProperInfo个数
+ */
+ public int nRetPropertiesCount;
+ /**
+ * 用户分配的pstuGetOutProperInfo个数
+ */
+ public int nMaxPropertiesCount;
+ /**
+ * 属性值,具体内容由物模型协议决定, Key,Value,ValueType均有效
+ * 用户分配内存,大小为sizeof{@link NET_PROPERTIES_INFO}*nMaxPropertiesCount
+ */
+ public Pointer pstuGetOutProperInfo;
+
+ public NET_OUT_THINGS_GET() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_GET_CAPS.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_GET_CAPS.java
new file mode 100644
index 0000000..1c8ffba
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_GET_CAPS.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 260611
+ * @description CLIENT_GetThingsCaps接口输出参数
+ * @date 2022/04/20 10:16:56
+ */
+public class NET_OUT_THINGS_GET_CAPS extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小, 调用者必须初始化该字段
+ */
+ public int dwSize;
+ /**
+ * 用户分配的pstuGetCapsProperName个数
+ */
+ public int nMaxProperCount;
+ /**
+ * 实际返回的pstuGetCapsProperName个数
+ */
+ public int nRetProperCount;
+ /**
+ * 物模型标识符,用户分配内存,大小为sizeof{@link NET_PROPERTIES_NAME}*nMaxProperCount
+ */
+ public Pointer pstuGetCapsProperName;
+
+ public NET_OUT_THINGS_GET_CAPS() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_GET_DEVLIST.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_GET_DEVLIST.java
new file mode 100644
index 0000000..cd43748
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_GET_DEVLIST.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 260611
+ * @description CLIENT_GetThingsDevList接口输出参数
+ * @date 2022/04/20 10:16:56
+ */
+public class NET_OUT_THINGS_GET_DEVLIST extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小, 调用者必须初始化该字段
+ */
+ public int dwSize;
+ /**
+ * 用户分配的pstuDevListInfo个数
+ */
+ public int nMaxDevListCount;
+ /**
+ * 实际返回的pstuDevListInfo个数
+ */
+ public int nRetDevListCount;
+ /**
+ * 设备列表信息,用户分配内存,大小为sizeof{@link NET_THINGS_DEVLIST_INFO}*nMaxDevListCount
+ */
+ public Pointer pstuDevListInfo;
+
+ public NET_OUT_THINGS_GET_DEVLIST() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_GET_NETSTATE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_GET_NETSTATE.java
new file mode 100644
index 0000000..64fd5af
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_GET_NETSTATE.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description CLIENT_GetThingsNetState接口输出参数
+ * @date 2022/04/20 10:16:56
+ */
+public class NET_OUT_THINGS_GET_NETSTATE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小, 调用者必须初始化该字段
+ */
+ public int dwSize;
+ /**
+ * 设备连接状态 {@link com.netsdk.lib.enumeration.EM_THINGS_CONNECT_STATE}
+ */
+ public int emConnectState;
+
+ public NET_OUT_THINGS_GET_NETSTATE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_ADDDEVICE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_ADDDEVICE.java
new file mode 100644
index 0000000..5407fba
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_ADDDEVICE.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 添加设备输出参数(对应 EM_THINGS_SERVICE_TYPE_ADDDEVICE)
+ * @date 2022/04/20 10:50:22
+ */
+public class NET_OUT_THINGS_SERVICE_ADDDEVICE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小, 调用者必须初始化该字段
+ */
+ public int dwSize;
+ /**
+ * 物模型协议错误码定义
+ */
+ public int nErrcode;
+ /**
+ * 产品ID
+ */
+ public byte[] szProductID = new byte[64];
+ /**
+ * 设备ID
+ */
+ public byte[] szDeviceID = new byte[64];
+
+ public NET_OUT_THINGS_SERVICE_ADDDEVICE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_ADDRULE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_ADDRULE.java
new file mode 100644
index 0000000..671c54a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_ADDRULE.java
@@ -0,0 +1,37 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 添加联动规则输出参数(对应 EM_THINGS_SERVICE_TYPE_ADDRULE)
+ * @date 2022/04/20 10:50:21
+ */
+public class NET_OUT_THINGS_SERVICE_ADDRULE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小, 调用者必须初始化该字段
+ */
+ public int dwSize;
+ /**
+ * 物模型协议错误码定义
+ */
+ public int nErrcode;
+ /**
+ * 产品ID
+ */
+ public byte[] szProductID = new byte[64];
+ /**
+ * 设备ID
+ */
+ public byte[] szDeviceID = new byte[64];
+ /**
+ * 规则ID
+ */
+ public byte[] szRuleID = new byte[256];
+
+ public NET_OUT_THINGS_SERVICE_ADDRULE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_AIRSWITHFIND.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_AIRSWITHFIND.java
new file mode 100644
index 0000000..631725c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_AIRSWITHFIND.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 空开红蓝灯闪烁输出参数(对应 EM_THINGS_SERVICE_TYPE_AIRSWITHFIND)
+ * @date 2022/04/20 10:50:20
+ */
+public class NET_OUT_THINGS_SERVICE_AIRSWITHFIND extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小, 调用者必须初始化该字段
+ */
+ public int dwSize;
+ /**
+ * 物模型协议错误码定义
+ */
+ public int nErrcode;
+ /**
+ * 产品ID
+ */
+ public byte[] szProductID = new byte[64];
+ /**
+ * 设备ID
+ */
+ public byte[] szDeviceID = new byte[64];
+
+ public NET_OUT_THINGS_SERVICE_AIRSWITHFIND() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_AIRSWITHRESET.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_AIRSWITHRESET.java
new file mode 100644
index 0000000..69cf170
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_AIRSWITHRESET.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 空开恢复出厂设置输出参数(对应 EM_THINGS_SERVICE_TYPE_AIRSWITHRESET)
+ * @date 2022/04/20 10:50:20
+ */
+public class NET_OUT_THINGS_SERVICE_AIRSWITHRESET extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小, 调用者必须初始化该字段
+ */
+ public int dwSize;
+ /**
+ * 物模型协议错误码定义
+ */
+ public int nErrcode;
+ /**
+ * 产品ID
+ */
+ public byte[] szProductID = new byte[64];
+ /**
+ * 设备ID
+ */
+ public byte[] szDeviceID = new byte[64];
+
+ public NET_OUT_THINGS_SERVICE_AIRSWITHRESET() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_CHARGECLEAR.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_CHARGECLEAR.java
new file mode 100644
index 0000000..a9e1672
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_CHARGECLEAR.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 电量清零输出参数(对应 EM_THINGS_SERVICE_TYPE_CHARGECLEAR)
+ * @date 2022/04/20 10:50:18
+ */
+public class NET_OUT_THINGS_SERVICE_CHARGECLEAR extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小, 调用者必须初始化该字段
+ */
+ public int dwSize;
+ /**
+ * 物模型协议错误码定义
+ */
+ public int nErrcode;
+ /**
+ * 产品ID
+ */
+ public byte[] szProductID = new byte[64];
+ /**
+ * 设备ID
+ */
+ public byte[] szDeviceID = new byte[64];
+
+ public NET_OUT_THINGS_SERVICE_CHARGECLEAR() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_CURRENTSTATUSGET.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_CURRENTSTATUSGET.java
new file mode 100644
index 0000000..a6a5a51
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_CURRENTSTATUSGET.java
@@ -0,0 +1,41 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 获取所有空开当前报警状态输出参数(对应 EM_THINGS_SERVICE_TYPE_CURRENTSTATUSGET)
+ * @date 2022/04/20 10:50:24
+ */
+public class NET_OUT_THINGS_SERVICE_CURRENTSTATUSGET extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小, 调用者必须初始化该字段
+ */
+ public int dwSize;
+ /**
+ * 物模型协议错误码定义
+ */
+ public int nErrcode;
+ /**
+ * 产品ID
+ */
+ public byte[] szProductID = new byte[64];
+ /**
+ * 设备ID
+ */
+ public byte[] szDeviceID = new byte[64];
+ /**
+ * 实际返回stuStatus个数
+ */
+ public int nRetStatusNum;
+ /**
+ * 设备状态数据
+ */
+ public NET_THINGS_SERVICE_CURRENTSTATUSGET_STATUS[] stuStatus = (NET_THINGS_SERVICE_CURRENTSTATUSGET_STATUS[]) new NET_THINGS_SERVICE_CURRENTSTATUSGET_STATUS().toArray(64);
+
+ public NET_OUT_THINGS_SERVICE_CURRENTSTATUSGET() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_DELDEVICE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_DELDEVICE.java
new file mode 100644
index 0000000..2777893
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_DELDEVICE.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 删除子设备输出参数(对应 EM_THINGS_SERVICE_TYPE_DELDEVICE)
+ * @date 2022/04/20 10:50:23
+ */
+public class NET_OUT_THINGS_SERVICE_DELDEVICE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小, 调用者必须初始化该字段
+ */
+ public int dwSize;
+ /**
+ * 物模型协议错误码定义
+ */
+ public int nErrcode;
+ /**
+ * 产品ID
+ */
+ public byte[] szProductID = new byte[64];
+ /**
+ * 设备ID
+ */
+ public byte[] szDeviceID = new byte[64];
+
+ public NET_OUT_THINGS_SERVICE_DELDEVICE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_DELRULE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_DELRULE.java
new file mode 100644
index 0000000..285a9f2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_DELRULE.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 删除联动规则输出参数(对应 EM_THINGS_SERVICE_TYPE_DELRULE)
+ * @date 2022/04/20 10:50:21
+ */
+public class NET_OUT_THINGS_SERVICE_DELRULE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小, 调用者必须初始化该字段
+ */
+ public int dwSize;
+ /**
+ * 物模型协议错误码定义
+ */
+ public int nErrcode;
+ /**
+ * 产品ID
+ */
+ public byte[] szProductID = new byte[64];
+ /**
+ * 设备ID
+ */
+ public byte[] szDeviceID = new byte[64];
+
+ public NET_OUT_THINGS_SERVICE_DELRULE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_DEVREPLACE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_DEVREPLACE.java
new file mode 100644
index 0000000..464bab6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_DEVREPLACE.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 子设备替换输出参数(对应 EM_THINGS_SERVICE_TYPE_DEVREPLACE)
+ * @date 2022/04/20 10:50:23
+ */
+public class NET_OUT_THINGS_SERVICE_DEVREPLACE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小, 调用者必须初始化该字段
+ */
+ public int dwSize;
+ /**
+ * 物模型协议错误码定义
+ */
+ public int nErrcode;
+ /**
+ * 产品ID
+ */
+ public byte[] szProductID = new byte[64];
+ /**
+ * 设备ID
+ */
+ public byte[] szDeviceID = new byte[64];
+
+ public NET_OUT_THINGS_SERVICE_DEVREPLACE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_ENABLE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_ENABLE.java
new file mode 100644
index 0000000..5b6d1cd
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_ENABLE.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 使能联动规则输出参数(对应 EM_THINGS_SERVICE_TYPE_ENABLERULE)
+ * @date 2022/04/20 10:50:22
+ */
+public class NET_OUT_THINGS_SERVICE_ENABLE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小, 调用者必须初始化该字段
+ */
+ public int dwSize;
+ /**
+ * 物模型协议错误码定义
+ */
+ public int nErrcode;
+ /**
+ * 产品ID
+ */
+ public byte[] szProductID = new byte[64];
+ /**
+ * 设备ID
+ */
+ public byte[] szDeviceID = new byte[64];
+
+ public NET_OUT_THINGS_SERVICE_ENABLE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_LEAKCURTPOST.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_LEAKCURTPOST.java
new file mode 100644
index 0000000..c189da8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_LEAKCURTPOST.java
@@ -0,0 +1,41 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 漏电自检输出参数(对应 EM_THINGS_SERVICE_TYPE_LEAKCURTPOST)
+ * @date 2022/04/20 10:50:19
+ */
+public class NET_OUT_THINGS_SERVICE_LEAKCURTPOST extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小, 调用者必须初始化该字段
+ */
+ public int dwSize;
+ /**
+ * 物模型协议错误码定义
+ */
+ public int nErrcode;
+ /**
+ * 产品ID
+ */
+ public byte[] szProductID = new byte[64];
+ /**
+ * 设备ID
+ */
+ public byte[] szDeviceID = new byte[64];
+ /**
+ * 检测结果
+ */
+ public int bCheckResult;
+ /**
+ * 失败原因
+ */
+ public byte[] szErrorMsg = new byte[1024];
+
+ public NET_OUT_THINGS_SERVICE_LEAKCURTPOST() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_LEAKCURTPOSTASYNC.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_LEAKCURTPOSTASYNC.java
new file mode 100644
index 0000000..4906442
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_LEAKCURTPOSTASYNC.java
@@ -0,0 +1,41 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 漏电自检异步输出参数(对应 EM_THINGS_SERVICE_TYPE_LEAKCURTPOSTASYNC)
+ * @date 2022/04/20 10:50:19
+ */
+public class NET_OUT_THINGS_SERVICE_LEAKCURTPOSTASYNC extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小, 调用者必须初始化该字段
+ */
+ public int dwSize;
+ /**
+ * 物模型协议错误码定义
+ */
+ public int nErrcode;
+ /**
+ * 产品ID
+ */
+ public byte[] szProductID = new byte[64];
+ /**
+ * 设备ID
+ */
+ public byte[] szDeviceID = new byte[64];
+ /**
+ * 检测结果
+ */
+ public int bCheckResult;
+ /**
+ * 失败原因
+ */
+ public byte[] szErrorMsg = new byte[1024];
+
+ public NET_OUT_THINGS_SERVICE_LEAKCURTPOSTASYNC() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_MODRULE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_MODRULE.java
new file mode 100644
index 0000000..e4dd14b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_MODRULE.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 修改联动规则输出参数(对应 EM_THINGS_SERVICE_TYPE_MODRULE)
+ * @date 2022/04/20 10:50:21
+ */
+public class NET_OUT_THINGS_SERVICE_MODRULE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小, 调用者必须初始化该字段
+ */
+ public int dwSize;
+ /**
+ * 物模型协议错误码定义
+ */
+ public int nErrcode;
+ /**
+ * 产品ID
+ */
+ public byte[] szProductID = new byte[64];
+ /**
+ * 设备ID
+ */
+ public byte[] szDeviceID = new byte[64];
+
+ public NET_OUT_THINGS_SERVICE_MODRULE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_OFFLINELOGCLEAN.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_OFFLINELOGCLEAN.java
new file mode 100644
index 0000000..5cb4e67
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_OFFLINELOGCLEAN.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 离线日志清除输出参数(对应 EM_THINGS_SERVICE_TYPE_OFFLINELOGCLEAN)
+ * @date 2022/04/20 10:50:24
+ */
+public class NET_OUT_THINGS_SERVICE_OFFLINELOGCLEAN extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小, 调用者必须初始化该字段
+ */
+ public int dwSize;
+ /**
+ * 物模型协议错误码定义
+ */
+ public int nErrcode;
+ /**
+ * 产品ID
+ */
+ public byte[] szProductID = new byte[64];
+ /**
+ * 设备ID
+ */
+ public byte[] szDeviceID = new byte[64];
+
+ public NET_OUT_THINGS_SERVICE_OFFLINELOGCLEAN() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_QUERULE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_QUERULE.java
new file mode 100644
index 0000000..4606e63
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_QUERULE.java
@@ -0,0 +1,62 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 260611
+ * @description 查询联动规则输出参数(对应 EM_THINGS_SERVICE_TYPE_QUERULE)
+ * @date 2022/04/20 10:50:22
+ */
+public class NET_OUT_THINGS_SERVICE_QUERULE extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小, 调用者必须初始化该字段
+ */
+ public int dwSize;
+ /**
+ * 物模型协议错误码定义
+ */
+ public int nErrcode;
+ /**
+ * 产品ID
+ */
+ public byte[] szProductID = new byte[64];
+ /**
+ * 设备ID
+ */
+ public byte[] szDeviceID = new byte[64];
+ /**
+ * 页个数
+ */
+ public int nPageCount;
+ /**
+ * 每一页的数据大小
+ */
+ public int nPageSize;
+ /**
+ * 总数
+ */
+ public int nTotal;
+ /**
+ * 按页查询
+ */
+ public int nPage;
+ /**
+ * 实际返回的pstuRules个数
+ */
+ public int nRetRulesNum;
+ /**
+ * 用户分配的pstuRules个数
+ */
+ public int nMaxRulesNum;
+ /**
+ * 规则详情,用户分配内存,大小为 nMaxRulesNum * sizeof{@link NET_THINGS_SERVICE_QUERULE_RULES}
+ */
+ public Pointer pstuRules;
+
+ public NET_OUT_THINGS_SERVICE_QUERULE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_VALVECONTROL.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_VALVECONTROL.java
new file mode 100644
index 0000000..7b1c0a8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SERVICE_VALVECONTROL.java
@@ -0,0 +1,37 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 闸门控制输出参数(对应 EM_THINGS_SERVICE_TYPE_VALVECONTROL)
+ * @date 2022/04/20 10:50:18
+ */
+public class NET_OUT_THINGS_SERVICE_VALVECONTROL extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小, 调用者必须初始化该字段
+ */
+ public int dwSize;
+ /**
+ * 设置结果,实际闸门控制设置成功/失败已该值为准
+ */
+ public int bResult;
+ /**
+ * 物模型协议错误码定义
+ */
+ public int nErrcode;
+ /**
+ * 产品ID
+ */
+ public byte[] szProductID = new byte[64];
+ /**
+ * 设备ID
+ */
+ public byte[] szDeviceID = new byte[64];
+
+ public NET_OUT_THINGS_SERVICE_VALVECONTROL() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SET.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SET.java
new file mode 100644
index 0000000..9c8b891
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_SET.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description CLIENT_SetThingsConfig 接口输出参数
+ * @date 2022/04/20 10:16:57
+ */
+public class NET_OUT_THINGS_SET extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小, 调用者必须初始化该字段
+ */
+ public int dwSize;
+
+ public NET_OUT_THINGS_SET() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_START_HISTORYDATA.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_START_HISTORYDATA.java
new file mode 100644
index 0000000..ea63220
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_THINGS_START_HISTORYDATA.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description CLIENT_StartThingsHistoryData 输出参数
+ * @date 2022/04/20 10:16:56
+ */
+public class NET_OUT_THINGS_START_HISTORYDATA extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小, 调用者必须初始化该字段
+ */
+ public int dwSize;
+ /**
+ * 符合查询条件的总数
+ */
+ public int dwCount;
+
+ public NET_OUT_THINGS_START_HISTORYDATA() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_TRAFFICDOFINDSTAT.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_TRAFFICDOFINDSTAT.java
new file mode 100644
index 0000000..e569f21
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_TRAFFICDOFINDSTAT.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 接口(CLIENT_DoFindFluxStat)输出参数
+* @date 2022/05/07 10:04:12
+*/
+public class NET_OUT_TRAFFICDOFINDSTAT extends NetSDKLib.SdkStructure {
+/**
+此结构体大小
+*/
+ public int dwSize;
+/**
+统计信息指针
+*/
+ public DH_TRAFFICFLOWSTAT_OUT stStatInfo = new DH_TRAFFICFLOWSTAT_OUT();
+
+public NET_OUT_TRAFFICDOFINDSTAT(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_TRAFFICSTARTFINDSTAT.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_TRAFFICSTARTFINDSTAT.java
new file mode 100644
index 0000000..127e1f7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_TRAFFICSTARTFINDSTAT.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 接口(CLIENT_StartFindFluxStat)输出参数
+* @date 2022/05/07 10:00:48
+*/
+public class NET_OUT_TRAFFICSTARTFINDSTAT extends NetSDKLib.SdkStructure {
+/**
+此结构体大小
+*/
+ public int dwSize;
+/**
+符合此次查询条件的结果总条数
+*/
+ public int dwTotalCount;
+
+public NET_OUT_TRAFFICSTARTFINDSTAT(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_TRAFFIC_RADAR_GET_OBJECT_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_TRAFFIC_RADAR_GET_OBJECT_INFO.java
new file mode 100644
index 0000000..c043b9b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_TRAFFIC_RADAR_GET_OBJECT_INFO.java
@@ -0,0 +1,23 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+import com.sun.jna.Structure;
+
+/**
+ * @author 251589
+ * @version V1.0
+ * @Description:
+ * @date 2020/12/14 20:48
+ */
+public class NET_OUT_TRAFFIC_RADAR_GET_OBJECT_INFO extends NetSDKLib.SdkStructure {
+ public int dwSize;
+ public int nMaxObjectNum; // 用户申请目标最大个数
+ public Pointer pObjectInfo; // 目标信息内存由用户申请 指针对应NET_OBJECT_RADAR_INFO
+ public int nObjectNum; // 获取到目标的个数
+
+ public NET_OUT_TRAFFIC_RADAR_GET_OBJECT_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_TRAFFIC_SNAP_RADAR_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_TRAFFIC_SNAP_RADAR_INFO.java
new file mode 100644
index 0000000..8028aaf
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_TRAFFIC_SNAP_RADAR_INFO.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.NetSDKLib.NET_POINT;
+
+/**
+ * @author 251823
+ * @description 查询智能交通外接雷达信息出参
+ * @date 2020/12/14
+ */
+public class NET_OUT_TRAFFIC_SNAP_RADAR_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ * */
+ public int dwSize;
+ /**
+ * 设备编号
+ * */
+ public byte[] szSerialNo = new byte[128];
+ /**
+ * 生产厂商
+ * */
+ public byte[] szVendor = new byte[32];
+ /**
+ * 设备型号
+ * */
+ public byte[] szDevType = new byte[32];
+ /**
+ * 工作状态 { @link EM_TRAFFIC_SNAP_DEVICE_WORK_STATE}
+ * */
+ public int emWorkState;
+ /**
+ * 线圈匹配状态{ @link EM_TRAFFIC_SNAP_RADAR_COIL_MATCH_STATE}
+ * */
+ public int emCoilMatch;
+ /**
+ * 虚警坐标点信息
+ * */
+ public NET_POINT[] stuFakeAlarmPointInfo = (NET_POINT[])new NET_POINT().toArray(64);
+ /**
+ * 实际返回虚警点个数
+ * */
+ public int nRetFakeAlarmPointNum;
+ /**
+ * 继电器工作次数
+ * */
+ public int nRelayWorkCount;
+ /**
+ * 检测汽车状态{ @link EM_TRAFFIC_SNAP_RADAR_DETECT_CAR_STATE}
+ * */
+ public int emDetectCarState;
+ /**
+ * 串口号(连接相机的端口号)
+ * */
+ public int nCommPort;
+ /**
+ * 保留字节
+ * */
+ public byte[] byReserved = new byte[1020];
+
+ public NET_OUT_TRAFFIC_SNAP_RADAR_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_TRAFFIC_SNAP_STROBE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_TRAFFIC_SNAP_STROBE_INFO.java
new file mode 100644
index 0000000..39e7dfc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_TRAFFIC_SNAP_STROBE_INFO.java
@@ -0,0 +1,84 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 智能交通外接道闸信息出参
+ * @date 2020/12/14
+ */
+public class NET_OUT_TRAFFIC_SNAP_STROBE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ * */
+ public int dwSize;
+ /**
+ * 设备编号
+ * */
+ public byte[] szSerialNo = new byte[128];
+ /**
+ * 生产厂商
+ * */
+ public byte[] szVendor = new byte[32];
+ /**
+ * 设备型号
+ * */
+ public byte[] szDevType = new byte[32];
+ /**
+ * 工作状态 { @link EM_TRAFFIC_SNAP_DEVICE_WORK_STATE}
+ * */
+ public int emWorkState;
+ /**
+ * 故障代码{ @link EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE}
+ * */
+ public int emFaultCode;
+ /**
+ * 出厂后开闸运行次数(开闸算一次,关闸不算)
+ * */
+ public int nOpenStrobeCount;
+ /**
+ * 运行状态{ @link EM_TRAFFIC_SNAP_STROBE_RUN_STATE}
+ * */
+ public int emRunState;
+ /**
+ * 道闸开关闸原因{ @link EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE }
+ * */
+ public int emStrobeActionReason;
+ /**
+ * 强继电器状态{ @link EM_RELAY_STATE_TYPE }
+ * */
+ public int emHeavyCurrentRelayState;
+ /**
+ * 信号继电器1{ @link EM_RELAY_STATE_TYPE }
+ * */
+ public int emSignalRelay1State;
+ /**
+ * 信号继电器2{ @link EM_RELAY_STATE_TYPE }
+ * */
+ public int emSignalRelay2State;
+ /**
+ * 地感输入信号{ @link EM_TRAFFIC_SNAP_GROUND_SENSE_IN_STATE_TYPE}
+ * */
+ public int emGroundSenseInState;
+ /**
+ * 开闸输入状态{ @link EM_TRAFFIC_SNAP_STROBE_IN_STATE_TYPE}
+ * */
+ public int emStrobeInPutState;
+ /**
+ * 栏杆状态{ @link EM_TRAFFIC_SNAP_STROBE_RAIL_STATE_TYPE}
+ * */
+ public int emRailState;
+ /**
+ * 串口号(连接相机的端口号)
+ * */
+ public int nCommPort;
+ /**
+ * 保留字节
+ * */
+ public byte[] byReserved = new byte[1020];
+
+ public NET_OUT_TRAFFIC_SNAP_STROBE_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_TRANSFER_SUBLINK_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_TRANSFER_SUBLINK_INFO.java
new file mode 100644
index 0000000..aa4fce3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_TRANSFER_SUBLINK_INFO.java
@@ -0,0 +1,19 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+CLIENT_TransferSubLinkInfo 接口输出参数
+*/
+public class NET_OUT_TRANSFER_SUBLINK_INFO extends NetSDKLib.SdkStructure {
+/**
+/< 结构体大小
+*/
+ public int dwSize;
+
+public NET_OUT_TRANSFER_SUBLINK_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_TRANSMIT_CMD.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_TRANSMIT_CMD.java
new file mode 100644
index 0000000..134a229
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_TRANSMIT_CMD.java
@@ -0,0 +1,41 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 251823
+ * @description CLIENT_TransmitCmd 接口输出参数
+ * @date 2023/03/15 21:31:34
+ */
+public class NET_OUT_TRANSMIT_CMD extends NetSDKLib.SdkStructure {
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+ /**
+ * 通道号, 范围 0~设备通道数
+ */
+ public int nChannel;
+ /**
+ * 协议类型,0 : 整形数组
+ */
+ public int nHannel;
+ /**
+ * 返回命令长度
+ */
+ public int nRetMessageCount;
+ /**
+ * 用户填写,为pMessage指针所指的数组元素数量
+ */
+ public int nMaxMessageCount;
+ /**
+ * 返回值,是一个数组,每个元素为每个字节的整形值,需要用户分配内存空间。指针对应int[]数组
+ */
+ public Pointer pMessage;
+
+ public NET_OUT_TRANSMIT_CMD() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_UNIFIEDINFOCOLLECT_GET_DEVSTATUS.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_UNIFIEDINFOCOLLECT_GET_DEVSTATUS.java
new file mode 100644
index 0000000..bfcba43
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_UNIFIEDINFOCOLLECT_GET_DEVSTATUS.java
@@ -0,0 +1,37 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 获取设备状态出参
+* @date 2022/09/01 15:11:24
+*/
+public class NET_OUT_UNIFIEDINFOCOLLECT_GET_DEVSTATUS extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+/**
+电源电池相关信息
+*/
+ public NET_DEVSTATUS_POWER_INFO stuPowerInfo = new NET_DEVSTATUS_POWER_INFO();
+/**
+网络相关信息
+*/
+ public NET_DEVSTATUS_NET_INFO stuNetInfo = new NET_DEVSTATUS_NET_INFO();
+/**
+主机软件版本
+*/
+ public byte[] szVersion = new byte[32];
+/**
+主机防拆状态 {@link com.netsdk.lib.enumeration.NET_EM_TAMPER_STATE}
+*/
+ public int emTamperState;
+
+public NET_OUT_UNIFIEDINFOCOLLECT_GET_DEVSTATUS(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_UNMARK_OBJECT_FAVORITES_LIBRARY_OBJECT_RECORDS.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_UNMARK_OBJECT_FAVORITES_LIBRARY_OBJECT_RECORDS.java
new file mode 100644
index 0000000..7760eaa
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_UNMARK_OBJECT_FAVORITES_LIBRARY_OBJECT_RECORDS.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_UnmarkObjectFavoritesLibraryObjectRecords 接口输出参数
+*/
+public class NET_OUT_UNMARK_OBJECT_FAVORITES_LIBRARY_OBJECT_RECORDS extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+
+ public NET_OUT_UNMARK_OBJECT_FAVORITES_LIBRARY_OBJECT_RECORDS() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_UNMARK_PIC_MAP_CHANNEL.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_UNMARK_PIC_MAP_CHANNEL.java
new file mode 100644
index 0000000..5cebafa
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_UNMARK_PIC_MAP_CHANNEL.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_UnmarkPicMapChannel 接口输出参数
+*/
+public class NET_OUT_UNMARK_PIC_MAP_CHANNEL extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 错误码, -1:未知,0: 操作成功, 1: 部分操作成功, 2: 操作失败
+ */
+ public int nErrorCode;
+ /**
+ * 错误描述
+ */
+ public byte[] szErrorInfo = new byte[256];
+
+ public NET_OUT_UNMARK_PIC_MAP_CHANNEL() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_UPDATE_MULTI_TALK_DEV.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_UPDATE_MULTI_TALK_DEV.java
new file mode 100644
index 0000000..ca09b3b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_UPDATE_MULTI_TALK_DEV.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 421657
+ * @description CLIENT_UpdateMultiTalkDev 出参
+ * @origin autoTool
+ * @date 2023/10/26 09:52:01
+ */
+public class NET_OUT_UPDATE_MULTI_TALK_DEV extends NetSDKLib.SdkStructure {
+ /**
+ * / 结构体大小
+ */
+ public int dwSize;
+ /**
+ * / 下发失败数量
+ */
+ public int nFailCount;
+ /**
+ * / 信息个数
+ */
+ public int nFailCodesNum;
+ /**
+ * / 详细的成功/失败信息
+ */
+ public int[] nFailCodes = new int[128];
+
+ public NET_OUT_UPDATE_MULTI_TALK_DEV() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_UPLOAD_MAP_PIC.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_UPLOAD_MAP_PIC.java
new file mode 100644
index 0000000..8180ddb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_UPLOAD_MAP_PIC.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_UploadMapPic 接口输出参数
+*/
+public class NET_OUT_UPLOAD_MAP_PIC extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 错误码, -1:未知,0: 上传成功, 1: 上传失败, 2: 图片格式不支持
+ */
+ public int nErrorCode;
+ /**
+ * 错误描述
+ */
+ public byte[] szErrorInfo = new byte[128];
+
+ public NET_OUT_UPLOAD_MAP_PIC() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_UPLOAD_UPPACKING_CHECK_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_UPLOAD_UPPACKING_CHECK_INFO.java
new file mode 100644
index 0000000..bfaac58
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_UPLOAD_UPPACKING_CHECK_INFO.java
@@ -0,0 +1,19 @@
+ package com.netsdk.lib.structure;
+ import com.netsdk.lib.NetSDKLib;
+
+ /**
+ * @author 291189
+ * @version 1.0
+ * @description CLIENT_NET_API BOOL CALL_METHOD CLIENT_UploadUnpackingCheckInfo 出参
+ * @date 2021/9/9
+ */
+
+public class NET_OUT_UPLOAD_UPPACKING_CHECK_INFO extends NetSDKLib.SdkStructure {
+/** 结构体大小*/
+ public int dwSize;
+
+ public NET_OUT_UPLOAD_UPPACKING_CHECK_INFO(){
+ this.dwSize=this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_VIDEOIN_DAYNIGHT_CAPS.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_VIDEOIN_DAYNIGHT_CAPS.java
new file mode 100644
index 0000000..4f30ae9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_VIDEOIN_DAYNIGHT_CAPS.java
@@ -0,0 +1,42 @@
+package com.netsdk.lib.structure;
+/**
+ * @author 47081
+ * @desc
+ * @version 1.0.0
+ * @date 2021/4/9
+ */
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 47081
+ * @description CLIENT_GetDevCaps NET_VIDEOIN_BACKLIGHT_CAPS 命令出参
+ * @date 2021/4/9
+ * @version 1.0
+ */
+public class NET_OUT_VIDEOIN_DAYNIGHT_CAPS extends NetSDKLib.SdkStructure {
+ /** 用户使用时赋值为结构体大小 */
+ public int dwSize;
+ /** 球机机芯日夜设置能力 */
+ public boolean bSupport;
+ /** 实际支持的ICR切换类型个数 */
+ public int nICRType;
+ /** ICR切换类型列表 */
+ public int[] emICRType = new int[8];
+ /** 实际支持的彩转黑模式个数 */
+ public int nColorBlackMode;
+ /** 支持的彩转黑模式列表 */
+ public int[] emColorBlackMode = new int[8];
+ /** 彩转黑灵敏度最小值 */
+ public int nSensitivityRangeMin;
+ /** 彩转黑灵敏度最大值 */
+ public int nSensitivityRangeMax;
+ /** 日夜模式切换延时最小值 */
+ public int nDelayRangeMin;
+ /** 日夜模式切换延时最大值 */
+ public int nDelayRangeMax;
+
+ public NET_OUT_VIDEOIN_DAYNIGHT_CAPS() {
+ this.dwSize = size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_VIDEO_ENCODE_CAPS.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_VIDEO_ENCODE_CAPS.java
new file mode 100644
index 0000000..43f0c00
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_VIDEO_ENCODE_CAPS.java
@@ -0,0 +1,44 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 获取视频编码能力集出参
+ * @date 2022/07/21 13:40:57
+ */
+public class NET_OUT_VIDEO_ENCODE_CAPS extends NetSDKLib.SdkStructure {
+ /**
+ * 该结构体大小
+ */
+ public int dwSize;
+ /**
+ * 支持SVC编码的视频格式个数
+ */
+ public int nSvcEncodeTypesNum;
+ /**
+ * 支持SVC编码的视频格式
+ */
+ public byte[] szSvcEncodeTypes = new byte[32 * 32];
+ /**
+ * 支持自定义I帧间隔的码流个数
+ */
+ public int nGOPCustomEncodesNum;
+ /**
+ * 支持自定义I帧间隔的码流
+ */
+ public byte[] szGOPCustomEncodes = new byte[32 * 32];
+ /**
+ * 最大SVC-T支持层数
+ */
+ public int nMaxSVCTLevel;
+ /**
+ * 隐私遮挡通用能力集
+ */
+ public NET_PRIVACY_MASKING_CAPS stuPrivacyMaskingCaps = new NET_PRIVACY_MASKING_CAPS();
+
+ public NET_OUT_VIDEO_ENCODE_CAPS() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_VIEW_RANGE_STATE.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_VIEW_RANGE_STATE.java
new file mode 100644
index 0000000..ed1064d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_VIEW_RANGE_STATE.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 订阅可视域输出参数
+ * @origin autoTool
+ * @date 2023/05/30 10:04:52
+ */
+public class NET_OUT_VIEW_RANGE_STATE extends NetSDKLib.SdkStructure {
+ public int dwSize;
+
+ public NET_OUT_VIEW_RANGE_STATE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_WAKE_UP_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_WAKE_UP_INFO.java
new file mode 100644
index 0000000..cafeda5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_WAKE_UP_INFO.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_DoWakeUpLowPowerDevcie 接口输出参数
+*/
+public class NET_OUT_WAKE_UP_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 结构体大小
+ */
+ public int dwSize;
+
+ public NET_OUT_WAKE_UP_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_WATERDATA_STAT_SERVER_GETCAPS_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_WATERDATA_STAT_SERVER_GETCAPS_INFO.java
new file mode 100644
index 0000000..560f836
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_WATERDATA_STAT_SERVER_GETCAPS_INFO.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_GetWaterDataStatServerCaps 输出参数
+* @date 2022/08/22 10:11:26
+*/
+public class NET_OUT_WATERDATA_STAT_SERVER_GETCAPS_INFO extends NetSDKLib.SdkStructure {
+/**
+此结构体大小,必须赋值
+*/
+ public int dwSize;
+/**
+当前是否具备水质检测功能 {@link com.netsdk.lib.enumeration.EM_WATERDATA_STAT_SERVER_SUPPORT}
+*/
+ public int emSupport;
+/**
+是否支持本地存储 {@link com.netsdk.lib.enumeration.EM_SUPPORT_LOCALDATA_STORE}
+*/
+ public int emSupportLocalDataStore;
+
+public NET_OUT_WATERDATA_STAT_SERVER_GETCAPS_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_WATERDATA_STAT_SERVER_GETDATA_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_WATERDATA_STAT_SERVER_GETDATA_INFO.java
new file mode 100644
index 0000000..0af063f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_WATERDATA_STAT_SERVER_GETDATA_INFO.java
@@ -0,0 +1,37 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description CLIENT_GetWaterDataStatServerWaterData 输出参数
+* @date 2022/08/22 16:51:44
+*/
+public class NET_OUT_WATERDATA_STAT_SERVER_GETDATA_INFO extends NetSDKLib.SdkStructure {
+/**
+此结构体大小,必须赋值
+*/
+ public int dwSize;
+/**
+水质类别,越小越好 {@link com.netsdk.lib.enumeration.EM_WATER_QUALITY}
+*/
+ public int emQuality;
+/**
+水质检测上报数据信息
+*/
+ public NET_WATER_DETECTION_UPLOAD_INFO stuUploadInfo = new NET_WATER_DETECTION_UPLOAD_INFO();
+/**
+参数超过阈值类型个数
+*/
+ public int nFlunkTypeNum;
+/**
+参数超过阈值类型 {@link com.netsdk.lib.enumeration.EM_WATER_DETECTION_ALARM_TYPE}
+*/
+ public int[] emFlunkType = new int[32];
+
+public NET_OUT_WATERDATA_STAT_SERVER_GETDATA_INFO(){
+ this.dwSize=this.size();
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_WEATHER_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_WEATHER_INFO.java
new file mode 100644
index 0000000..7b9e289
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_WEATHER_INFO.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 订阅气象信息输出参数
+*/
+public class NET_OUT_WEATHER_INFO extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+
+ public NET_OUT_WEATHER_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_WLAN_ACCESSPOINT.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_WLAN_ACCESSPOINT.java
new file mode 100644
index 0000000..2e90f22
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_WLAN_ACCESSPOINT.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description CLIENT_QueryDevInfo , NET_QUERY_WLAN_ACCESSPOINT 命令输出参数
+ * @date 2023/03/16 14:10:09
+ */
+public class NET_OUT_WLAN_ACCESSPOINT extends NetSDKLib.SdkStructure {
+ public int dwSize;
+ /**
+ * 无线网络接入点个数
+ */
+ public int nCount;
+ /**
+ * 接入点信息
+ */
+ public NET_WLAN_ACCESSPOINT_INFO[] stuInfo = new NET_WLAN_ACCESSPOINT_INFO[128];
+
+ public NET_OUT_WLAN_ACCESSPOINT() {
+ for (int i = 0; i < stuInfo.length; i++) {
+ stuInfo[i] = new NET_WLAN_ACCESSPOINT_INFO();
+ }
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_XRAY_ATTACH_PACKAGE_STATISTICS.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_XRAY_ATTACH_PACKAGE_STATISTICS.java
new file mode 100644
index 0000000..46920cf
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_XRAY_ATTACH_PACKAGE_STATISTICS.java
@@ -0,0 +1,16 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+/**
+ *@author : 291189
+ *@since : Created in 2021/7/1
+ * CLIENT_XRayAttachPackageStatistics 输出结构体
+ */
+public class NET_OUT_XRAY_ATTACH_PACKAGE_STATISTICS extends NetSDKLib.SdkStructure {
+ public int dwSize; // 赋值为结构体大小
+
+ public NET_OUT_XRAY_ATTACH_PACKAGE_STATISTICS(){
+ this.dwSize=this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OUT_XRAY_DOWNLOAD_RECORD_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OUT_XRAY_DOWNLOAD_RECORD_INFO.java
new file mode 100644
index 0000000..283c369
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OUT_XRAY_DOWNLOAD_RECORD_INFO.java
@@ -0,0 +1,21 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * CLIENT_GetXRayDownloadRecord 接口输出参数
+*/
+public class NET_OUT_XRAY_DOWNLOAD_RECORD_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 此结构体大小,必须赋值
+ */
+ public int dwSize;
+ /**
+ * 文件信息,参见结构体定义 {@link com.netsdk.lib.structure.NET_XRAY_DOWNLOAD_RECORD_FILEINFO}
+ */
+ public NET_XRAY_DOWNLOAD_RECORD_FILEINFO stuFileInfo = new NET_XRAY_DOWNLOAD_RECORD_FILEINFO();
+
+ public NET_OUT_XRAY_DOWNLOAD_RECORD_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OVER_FLOW_CONTROL_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OVER_FLOW_CONTROL_INFO.java
new file mode 100644
index 0000000..0a9aa82
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OVER_FLOW_CONTROL_INFO.java
@@ -0,0 +1,40 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 溢出控制智能化配置列表信息
+ * @date 2021/09/28
+ */
+public class NET_OVER_FLOW_CONTROL_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 周期编号
+ */
+ public int nCycleNum;
+ /**
+ * 通用配置
+ */
+ public NET_COMMON_CONFIG_INFO stuCommnCofigInfo;
+ /**
+ * 检测器配置个数
+ */
+ public int nDetectConfigNum;
+ /**
+ * 检测器配置
+ */
+ public NET_DETECTOR_CONFIG_INFO[] stuDetectConfigInfo = (NET_DETECTOR_CONFIG_INFO[]) new NET_DETECTOR_CONFIG_INFO().toArray(32);
+ /**
+ * 相位配置个数
+ */
+ public int nPhaseConfigNum;
+ /**
+ * 相位配置
+ */
+ public NET_PHASE_CONFIG_INFO[] stuPhaseConfigInfo = (NET_PHASE_CONFIG_INFO[]) new NET_PHASE_CONFIG_INFO().toArray(16);
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[32];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_OVER_LAPS_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_OVER_LAPS_INFO.java
new file mode 100644
index 0000000..b9602d2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_OVER_LAPS_INFO.java
@@ -0,0 +1,36 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 跟随相位列表信息
+ * @date 2021/09/02
+ */
+public class NET_OVER_LAPS_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 跟随相位编号
+ */
+ public int nOverlapNum;
+ /**
+ * 跟随相位关联的主相位个数
+ */
+ public int nIncludedPhasesNum;
+ /**
+ * 跟随相位关联的主相位数组
+ */
+ public int[] nIncludedPhases = new int[16];
+ /**
+ * 跟随相位延时时间个数
+ */
+ public int nStartDelayTimeNum;
+ /**
+ * 跟随相位延时时间数组
+ */
+ public int[] nStartDelayTime = new int[16];
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[32];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PACKAGE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_PACKAGE_INFO.java
new file mode 100644
index 0000000..6821a5e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PACKAGE_INFO.java
@@ -0,0 +1,22 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+
+/**
+ * 危险等级
+ *
+ * @author : 260611
+ * @since : Created in 2021/10/19 14:46
+ */
+public class NET_PACKAGE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 包裹危险等级, 一个包裹内有多个危险等级显示最高危等级
+ */
+ public int emDangerGrade;
+ /**
+ * 保留字节,留待扩展
+ */
+ public byte byReserved[] = new byte[128];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PARKINGDETECTION_RULE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_PARKINGDETECTION_RULE_INFO.java
new file mode 100644
index 0000000..adeac03
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PARKINGDETECTION_RULE_INFO.java
@@ -0,0 +1,46 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib.POINTCOORDINATE;
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+import com.netsdk.lib.structure.NET_CFG_SIZEFILTER_INFO;
+
+
+/**
+ * 事件类型 EVENT_IVS_PARKINGDETECTION 非法停车事件 对应的规则配置
+ */
+public class NET_PARKINGDETECTION_RULE_INFO extends SdkStructure {
+ /**
+ * 检测区域顶点数
+ */
+ public int nDetectRegionPoint;
+ /**
+ * 检测区域
+ */
+ public POINTCOORDINATE[] stuDetectRegion = (POINTCOORDINATE[]) new POINTCOORDINATE().toArray(20);
+ /**
+ * 触发报警位置数
+ */
+ public int nTriggerPosition;
+ /**
+ * 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
+ */
+ public byte[] bTriggerPosition = new byte[8];
+ /**
+ * 最短持续时间 单位:秒,0~65535
+ */
+ public int nMinDuration;
+ /**
+ * 跟踪持续时间,0秒:一直跟踪,1-300秒:跟踪持续时间
+ */
+ public int nTrackDuration;
+ /**
+ * 规则特定的尺寸过滤器是否有效
+ */
+ public boolean bSizeFileter;
+ /**
+ * 规则特定的尺寸过滤器
+ */
+ public NET_CFG_SIZEFILTER_INFO stuSizeFileter;
+ public byte[] byReserved = new byte[4096];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PARKINGRECORD_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_PARKINGRECORD_INFO.java
new file mode 100644
index 0000000..41dd4fe
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PARKINGRECORD_INFO.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 停车位记录信息
+ *
+ * @author 47040
+ * @since Created in 2020/11/18 14:17
+ */
+public class NET_PARKINGRECORD_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 通道号
+ */
+ public int nChannel;
+ /**
+ * 车牌号码
+ */
+ public byte[] szPlateNumber = new byte[64];
+ /**
+ * 车位号
+ */
+ public byte[] szParkingNo = new byte[32];
+ /**
+ * 保留字节
+ */
+ public byte[] byReserverd = new byte[512];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PARKING_SPACE_AREA_STATUS.java b/src/main/java/com/netsdk/lib/structure/NET_PARKING_SPACE_AREA_STATUS.java
new file mode 100644
index 0000000..ab9cf3a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PARKING_SPACE_AREA_STATUS.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 区域状态
+*/
+public class NET_PARKING_SPACE_AREA_STATUS extends NetSDKLib.SdkStructure
+{
+ /**
+ * 区域名称
+ */
+ public byte[] szName = new byte[32];
+ /**
+ * 该区域的总车位个数
+ */
+ public int nCount;
+ /**
+ * 车位类型,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_PARKINGSPACE_TYPE}
+ */
+ public int emSpaceType;
+ /**
+ * 该区域剩余可用的车位个数
+ */
+ public int nRemainCnt;
+ /**
+ * 保留字节
+ */
+ public byte[] szReserved = new byte[252];
+
+ public NET_PARKING_SPACE_AREA_STATUS() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PARKING_SPACE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_PARKING_SPACE_INFO.java
new file mode 100644
index 0000000..7338a00
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PARKING_SPACE_INFO.java
@@ -0,0 +1,44 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 车位信息
+*/
+public class NET_PARKING_SPACE_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 车位号
+ */
+ public int nLane;
+ /**
+ * 停车状态,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_PARKING_SPACE_STATUS}
+ */
+ public int emParkStatus;
+ /**
+ * 自定义车位号
+ */
+ public byte[] szCustomParkNo = new byte[32];
+ /**
+ * 车位类型,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_PARKINGSPACE_TYPE}
+ */
+ public int emSpaceType;
+ /**
+ * 有车时,车牌号
+ */
+ public byte[] szPlate = new byte[64];
+ /**
+ * 车位检测功能是否开启
+ */
+ public int bEnable;
+ /**
+ * 有车时,车辆进入时间
+ */
+ public long nTime;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[176];
+
+ public NET_PARKING_SPACE_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PARKING_SPACE_LIGHT_CONTROL.java b/src/main/java/com/netsdk/lib/structure/NET_PARKING_SPACE_LIGHT_CONTROL.java
new file mode 100644
index 0000000..e98458b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PARKING_SPACE_LIGHT_CONTROL.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * NET_PARKING_SPACE_LIGHT_CONTROL 车位状态指示灯控制配置信息
+*/
+public class NET_PARKING_SPACE_LIGHT_CONTROL extends NetSDKLib.SdkStructure
+{
+ /**
+ * 车位状态,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_SPACE_STATE}
+ */
+ public int emSpaceState;
+ /**
+ * 车位状态亮灯时间, 单位:秒, 取值范围 -1 ~ 300, 0表示不亮, -1表示常亮
+ */
+ public int nLightKeepTime;
+ /**
+ * 保留字节
+ */
+ public byte[] szResvered = new byte[1024];
+
+ public NET_PARKING_SPACE_LIGHT_CONTROL() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PARKING_SPACE_LIGHT_PLAN_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_PARKING_SPACE_LIGHT_PLAN_INFO.java
new file mode 100644
index 0000000..ef86c1d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PARKING_SPACE_LIGHT_PLAN_INFO.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 停车场车位指示灯亮灯计划信息
+*/
+public class NET_PARKING_SPACE_LIGHT_PLAN_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 车灯颜色,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_PARKINGSPACE_LIGHT_COLOR}
+ */
+ public int emColor;
+ /**
+ * 状态,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_PARKINGSPACE_LIGHT_STATE}
+ */
+ public int emState;
+ /**
+ * 持续时间,单位秒,-1表示常亮
+ */
+ public int nKeepTime;
+ /**
+ * 车灯闪烁颜色, emState 为 EM_PARKINGSPACE_LIGHT_STATE_ALTERNATE_FLICKER 有效,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_PARKINGSPACE_LIGHT_COLOR}
+ */
+ public int emColorEx;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[124];
+
+ public NET_PARKING_SPACE_LIGHT_PLAN_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PASSED_SUBTOTAL_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_PASSED_SUBTOTAL_INFO.java
new file mode 100644
index 0000000..1626fba
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PASSED_SUBTOTAL_INFO.java
@@ -0,0 +1,35 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 经过小计信息
+ * @date 2022/09/21 14:54:46
+ */
+public class NET_PASSED_SUBTOTAL_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 设备运行后经过人数统计总数
+ */
+ public int nTotal;
+ /**
+ * 小时内的总人数
+ */
+ public int nHour;
+ /**
+ * 当天的总人数(自然天)
+ */
+ public int nToday;
+ /**
+ * IPC专用,如果不执行clearSectionStat操作,等同于Today人数
+ */
+ public int nTotalInTimeSection;
+ /**
+ * 保留字节
+ */
+ public byte[] szReserved = new byte[112];
+
+ public NET_PASSED_SUBTOTAL_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PASSERBY_DB_CONFIG_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_PASSERBY_DB_CONFIG_INFO.java
new file mode 100644
index 0000000..78948be
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PASSERBY_DB_CONFIG_INFO.java
@@ -0,0 +1,26 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.EM_PASSERBY_DB_OVERWRITE_TYPE;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 路人库配置(选填)
+ * @date 2021/2/22
+ */
+public class NET_PASSERBY_DB_CONFIG_INFO extends NetSDKLib.SdkStructure {
+ /** 路人库最大注册数目 */
+ public int dwCapacity;
+ /** 路人库满时覆盖策略,对应枚举{@link EM_PASSERBY_DB_OVERWRITE_TYPE} */
+ public int emOverWriteType;
+ /** 路人库去重策略配置(选填) */
+ public PASSERBY_DB_DUPLICATE_REMOVE_CONFIG_INFO stuDuplicateRemoveConfigInfo;
+ /** 设置文件保留天数【范围:0~31】单位:天,超过时间将被删除 0:永不过期 */
+ public int dwFileHoldTime;
+ /** 字节对齐 */
+ public byte[] byReserved1 = new byte[4];
+ /** 字节保留 */
+ public byte[] byReserved = new byte[256];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PEDESTRAIN_PRIORITY_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_PEDESTRAIN_PRIORITY_INFO.java
new file mode 100644
index 0000000..3b6d0bc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PEDESTRAIN_PRIORITY_INFO.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 行人优先智能化配置列表信息
+ * @date 2021/09/27
+ */
+public class NET_PEDESTRAIN_PRIORITY_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 周期编号
+ */
+ public int nCycleNum;
+ /**
+ * 最小优先间隔, 优先执行后的冷却时长,冷却时间内不再响应新的优先请求(1~90)
+ */
+ public int nSuspendingPeriod;
+ /**
+ * 优先配置表个数
+ */
+ public int nPhasePriorityConfigNum;
+ /**
+ * 优先配置表
+ */
+ public NET_PHASE_PRIORITY_CONFIG_INFO[] stuphasePriorityConfigInfo = (NET_PHASE_PRIORITY_CONFIG_INFO[]) new NET_PHASE_PRIORITY_CONFIG_INFO().toArray(255);
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[256];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PED_DETECTOR_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_PED_DETECTOR_INFO.java
new file mode 100644
index 0000000..58e1768
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PED_DETECTOR_INFO.java
@@ -0,0 +1,52 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 行人检测器列表信息
+ * @date 2021/09/27
+ */
+public class NET_PED_DETECTOR_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 行人检测器编号,1-16
+ */
+ public int nPedestrianDetectorNumber;
+ /**
+ * 行人检测器关联的相位
+ */
+ public int nPedestrianDetectorCallPhase;
+ /**
+ * 行人检测器对应的接线端子
+ */
+ public int nPedestrianDetectorPortNum;
+ /**
+ * 检测器类型1:行人按钮 2视频
+ */
+ public int nPedestrianDetectorType;
+ /**
+ * 视频检测器IP
+ */
+ public byte[] szPedestrianDetectorIp = new byte[16];
+ /**
+ * 视频检测器端口
+ */
+ public int nPedestrianDetectorPort;
+ /**
+ * 视频检测器用户名
+ */
+ public byte[] szPedestrianDetectorUser = new byte[72];
+ /**
+ * 视频检测器密码
+ */
+ public byte[] szPedestrianDetectorPwd = new byte[72];
+ /**
+ * 检测区1,2
+ */
+ public int nPedestrianDetectorArea;
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[32];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PEOPLE_REGION_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_PEOPLE_REGION_INFO.java
new file mode 100644
index 0000000..11f392c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PEOPLE_REGION_INFO.java
@@ -0,0 +1,27 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 统计区报表数据列表
+ * @date 2022/10/29 09:36:29
+ */
+public class NET_PEOPLE_REGION_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 区域名称
+ */
+ public byte[] szRegionName = new byte[128];
+ /**
+ * 当前时间点统计区内人数
+ */
+ public int nRegionPeopleNum;
+ /**
+ * 保留字节
+ */
+ public byte[] reserved = new byte[1020];
+
+ public NET_PEOPLE_REGION_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PERIPHERAL_CHIP_VERSION.java b/src/main/java/com/netsdk/lib/structure/NET_PERIPHERAL_CHIP_VERSION.java
new file mode 100644
index 0000000..5ad0a25
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PERIPHERAL_CHIP_VERSION.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 从片版本信息
+*/
+public class NET_PERIPHERAL_CHIP_VERSION extends NetSDKLib.SdkStructure
+{
+ /**
+ * 从片硬件版本信息
+ */
+ public byte[] szHardwareVersion = new byte[16];
+ /**
+ * 从片软件版本信息
+ */
+ public byte[] szSoftwareVersion = new byte[64];
+ /**
+ * 是否匹配, -1:未知, 0:匹配, 1:不匹配
+ */
+ public int nIsMatching;
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[252];
+
+ public NET_PERIPHERAL_CHIP_VERSION() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PERIPHERAL_VERSIONS.java b/src/main/java/com/netsdk/lib/structure/NET_PERIPHERAL_VERSIONS.java
new file mode 100644
index 0000000..d286c9d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PERIPHERAL_VERSIONS.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 设备的外设软件版本
+*/
+public class NET_PERIPHERAL_VERSIONS extends NetSDKLib.SdkStructure
+{
+ /**
+ * 对应外设的版本信息
+ */
+ public byte[] szVersion = new byte[32];
+ /**
+ * 外设类型,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_PERIPHERAL_TYPE}
+ */
+ public int emPeripheralType;
+ /**
+ * 对应外设版本的编译日期,精确到天
+ */
+ public byte[] szBuildDate = new byte[24];
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[228];
+
+ public NET_PERIPHERAL_VERSIONS() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PERSON_FEATURE_VALUE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_PERSON_FEATURE_VALUE_INFO.java
new file mode 100644
index 0000000..4a2cf14
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PERSON_FEATURE_VALUE_INFO.java
@@ -0,0 +1,19 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * className:NET_PERSON_FEATURE_VALUE_INFO description:人员特征信息 author:251589 createTime:2020/12/28
+ * 11:19
+ *
+ * @version v1.0
+ */
+public class NET_PERSON_FEATURE_VALUE_INFO extends NetSDKLib.SdkStructure {
+ /** 二进制数据块中的偏移值 */
+ public int nOffset;
+ /** 特征值大小 */
+ public int nLength;
+ /** 保留字节 */
+ public byte[] byReserved = new byte[128];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PERSON_FREQUENCY_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_PERSON_FREQUENCY_INFO.java
new file mode 100644
index 0000000..58d1f0a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PERSON_FREQUENCY_INFO.java
@@ -0,0 +1,19 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description 频次报警信息
+ * @date 2021/7/21 11:18
+ */
+public class NET_PERSON_FREQUENCY_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * ,参考枚举{@link com.netsdk.lib.enumeration.EM_FREQUENCY_ALARM_TYPE}
+ */
+ public int emAlarmType; // 报警类型
+ public int nTimes; // 频次
+ public byte[] szReserved = new byte[128]; // 保留字节
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PG4_DEVICE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_PG4_DEVICE_INFO.java
new file mode 100644
index 0000000..83485c2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PG4_DEVICE_INFO.java
@@ -0,0 +1,46 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 对应CLIENT_StartSearchDevicesEx接口TTLV回调
+*/
+public class NET_PG4_DEVICE_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * sn
+ */
+ public byte[] szSN = new byte[64];
+ /**
+ * 设备类型
+ */
+ public byte[] szDevClass = new byte[16];
+ /**
+ * 设备子类型
+ */
+ public byte[] szSubClass = new byte[16];
+ public byte[] szType = new byte[64];
+ /**
+ * 厂商
+ */
+ public byte[] szVendor = new byte[32];
+ public byte[] szMachineName = new byte[64];
+ /**
+ * 0未初始化,1已初始化
+ */
+ public int bInit;
+ /**
+ * 参见结构体定义 {@link com.netsdk.lib.structure.NET_PG4_NET_INFO}
+ */
+ public NET_PG4_NET_INFO stIPv4 = new NET_PG4_NET_INFO();
+ /**
+ * 参见结构体定义 {@link com.netsdk.lib.structure.NET_PG4_SVC_INFO}
+ */
+ public NET_PG4_SVC_INFO stSvc = new NET_PG4_SVC_INFO();
+ /**
+ * 扩展字段
+ */
+ public byte[] szReserved = new byte[2048];
+
+ public NET_PG4_DEVICE_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PG4_NET_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_PG4_NET_INFO.java
new file mode 100644
index 0000000..6dcbe5d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PG4_NET_INFO.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 对应CLIENT_StartSearchDevicesEx接口TTLV回调
+*/
+public class NET_PG4_NET_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 设备ip
+ */
+ public byte[] szIpaddr = new byte[32];
+ /**
+ * mac地址
+ */
+ public byte[] szMask = new byte[32];
+ /**
+ * 网关
+ */
+ public byte[] szGateway = new byte[32];
+ /**
+ * 1 static; 2 dhcp
+ */
+ public int nLanType;
+ /**
+ * 扩展字段
+ */
+ public byte[] szReserved = new byte[2048];
+
+ public NET_PG4_NET_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PG4_SVC_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_PG4_SVC_INFO.java
new file mode 100644
index 0000000..b627921
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PG4_SVC_INFO.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 对应CLIENT_StartSearchDevicesEx接口TTLV回调
+*/
+public class NET_PG4_SVC_INFO extends NetSDKLib.SdkStructure
+{
+ public int nEz;
+ public int nEzs;
+ /**
+ * 扩展字段
+ */
+ public byte[] szReserved = new byte[2048];
+
+ public NET_PG4_SVC_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PHASES_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_PHASES_INFO.java
new file mode 100644
index 0000000..945d62a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PHASES_INFO.java
@@ -0,0 +1,84 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 相位列表信息
+ * @date 2021/09/02
+ */
+public class NET_PHASES_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 相位在栅栏内的位置
+ */
+ public int nGridNo;
+ /**
+ * 相位编号
+ */
+ public int nPhaseNum;
+ /**
+ * 相位重复出现的次数,默认为1, A1为1,A2该字段为
+ */
+ public int nPhaseOrder;
+ /**
+ * 迟起时间
+ */
+ public int nStartDelayTime;
+ /**
+ * 预黄时间
+ */
+ public int nStartYellowTime;
+ /**
+ * 绿信比时间(迟起+预黄+绿灯+绿闪+黄灯+红灯)
+ */
+ public int nGreenTime;
+ /**
+ * 绿闪时间
+ */
+ public int nGreenFlashTime;
+ /**
+ * 黄灯时间
+ */
+ public int nYellowTime;
+ /**
+ * 红灯清空
+ */
+ public int nRedclearTime;
+ /**
+ * 最小绿灯时间
+ */
+ public int nMinimumGreen;
+ /**
+ * 最大绿灯时间
+ */
+ public int nMaximumGreen;
+ /**
+ * 感应控制递减前时间
+ */
+ public int nBeforeReduction;
+ /**
+ * 感应控制延长绿时间
+ */
+ public int nAddedInitial;
+ /**
+ * 相位保持状态 0-不保持,1-黄闪,2-常红,3-红闪,4-灭灯
+ */
+ public int nPhaseKeepState;
+ /**
+ * 相位是否启用感应控制
+ */
+ public boolean bFreeEnable;
+ /**
+ * 启用的检测器个数
+ */
+ public int nSelectDetectorsNum;
+ /**
+ * 启用的检测器编号
+ */
+ public int[] nSelectDetectors = new int[128];
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[32];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PHASE_CONFIG_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_PHASE_CONFIG_INFO.java
new file mode 100644
index 0000000..fa83c10
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PHASE_CONFIG_INFO.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 相位配置信息
+ * @date 2021/09/28
+ */
+public class NET_PHASE_CONFIG_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 相位编号,仅支持单环
+ */
+ public int nPhaseNum;
+ /**
+ * 相位重复出现的次数
+ */
+ public int nPhaseOrder;
+ /**
+ * 响应使能
+ */
+ public boolean bRespondEnable;
+ /**
+ * 缩减比例(0~0.5)
+ */
+ public float fReduceRatio;
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[32];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PHASE_CONFIG_NIGHT_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_PHASE_CONFIG_NIGHT_INFO.java
new file mode 100644
index 0000000..086c930
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PHASE_CONFIG_NIGHT_INFO.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 夜间相位配置表信息
+ * @date 2021/09/28
+ */
+public class NET_PHASE_CONFIG_NIGHT_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 相位编号,仅支持单环
+ */
+ public int nPhaseNum;
+ /**
+ * 相位重复出现的次数
+ */
+ public int nPhaseOrder;
+ /**
+ * 是否驻留
+ */
+ public boolean bHold;
+ /**
+ * 最大请求间隔(0~160)
+ */
+ public int nMaxInterval;
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[32];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PHASE_LIST_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_PHASE_LIST_INFO.java
new file mode 100644
index 0000000..0420d0d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PHASE_LIST_INFO.java
@@ -0,0 +1,80 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 相位表信息
+ * @date 2021/09/28
+ */
+public class NET_PHASE_LIST_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 相位编号
+ */
+ public int nPhaseNum;
+ /**
+ * 相位重复出现的次数
+ */
+ public int nPhaseOrder;
+ /**
+ * 相位所属环编号
+ */
+ public int nRingNo;
+ /**
+ * 相位所属栅栏编号
+ */
+ public int nBarrierNo;
+ /**
+ * 相位所属栅栏内的位置
+ */
+ public int nGridNo;
+ /**
+ * 是否为时长变化
+ */
+ public boolean bUsePhaseTime;
+ /**
+ * 相位时长
+ */
+ public int nPhaseTime;
+ /**
+ * 相位时长上限(0 ~ 100)
+ */
+ public int nPhaseUpLimit;
+ /**
+ * 相位时长下限(0 ~ 100)
+ */
+ public int nPhaseDnLimit;
+ /**
+ * 是否为绿信比变化
+ */
+ public boolean bUseSplitTime;
+ /**
+ * 基准方案绿信比
+ */
+ public double dSplitBase;
+ /**
+ * 绿信比变化最大值
+ */
+ public int nSplitUpLimit;
+ /**
+ * 绿信比变化最小值
+ */
+ public int nSplitDnLimit;
+ /**
+ * 相位饱和度加权值
+ */
+ public double dSaturitionWeight;
+ /**
+ * 相位每周期绿信比最大变化值
+ */
+ public double dSplitMaxStep;
+ /**
+ * 相位饱和度计算策略:0:饱和度=average{车道饱和度} 1:饱和度=max{车道饱和度}
+ */
+ public int bPermitMaxLaneSaturition;
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[32];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PHASE_PRIORITY_CONFIG_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_PHASE_PRIORITY_CONFIG_INFO.java
new file mode 100644
index 0000000..6d4106f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PHASE_PRIORITY_CONFIG_INFO.java
@@ -0,0 +1,44 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 优先配置表信息
+ * @date 2021/09/27
+ */
+public class NET_PHASE_PRIORITY_CONFIG_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 序号
+ */
+ public int nId;
+ /**
+ * 相位编号,仅支持单环
+ */
+ public int nPhaseNum;
+ /**
+ * 相位重复出现的次数
+ */
+ public int nPhaseOrder;
+ /**
+ * 相位切换阈值
+ */
+ public int nMinGreenThr;
+ /**
+ * 跳相阈值
+ */
+ public int nSkipThr;
+ /**
+ * 启用检测器编号个数
+ */
+ public int nEnbleDetectorsNum;
+ /**
+ * 启用检测器编号
+ */
+ public int[] nEnbleDetectors = new int[16];
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[32];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PHASE_PRIORITY_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_PHASE_PRIORITY_INFO.java
new file mode 100644
index 0000000..6cd7469
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PHASE_PRIORITY_INFO.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 相位优先配置
+ * @date 2021/09/28
+ */
+public class NET_PHASE_PRIORITY_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 相位编号
+ */
+ public int nPhaseNum;
+ /**
+ * 相位重复出现的次数
+ */
+ public int nPhaseOrder;
+ /**
+ * 是否优先
+ */
+ public boolean bPriority;
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[32];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PHASE_SETTINGS_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_PHASE_SETTINGS_INFO.java
new file mode 100644
index 0000000..c546a8e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PHASE_SETTINGS_INFO.java
@@ -0,0 +1,48 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 相位设置信息
+ * @date 2021/09/28
+ */
+public class NET_PHASE_SETTINGS_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 相位表个数
+ */
+ public int nPhaseListNum;
+ /**
+ * 相位表
+ */
+ public NET_PHASE_LIST_INFO[] stuPhaseListInfo = (NET_PHASE_LIST_INFO[]) new NET_PHASE_LIST_INFO().toArray(16);
+ /**
+ * 相位优先配置表个数
+ */
+ public int nPhasePrioritysNum;
+ /**
+ * 相位优先配置
+ */
+ public NET_PHASE_PRIORITY_INFO[] stuPhasePriorityInfo = (NET_PHASE_PRIORITY_INFO[]) new NET_PHASE_PRIORITY_INFO().toArray(16);
+ /**
+ * 检测器配置表个数
+ */
+ public int nDetectorSettingsNum;
+ /**
+ * 检测器配置表
+ */
+ public NET_DETECTOR_SETTING_INFO[] stuDetectorSettingInfo = (NET_DETECTOR_SETTING_INFO[]) new NET_DETECTOR_SETTING_INFO().toArray(16);
+ /**
+ * 相位所属表个数
+ */
+ public int nClosureSettingNum;
+ /**
+ * 相位所属配置表
+ */
+ public NET_CLOSURE_SETTING_INFO[] stuClosureSettingInfo = (NET_CLOSURE_SETTING_INFO[]) new NET_CLOSURE_SETTING_INFO().toArray(16);
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[32];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PIG_STAY_STAT.java b/src/main/java/com/netsdk/lib/structure/NET_PIG_STAY_STAT.java
new file mode 100644
index 0000000..c118a70
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PIG_STAY_STAT.java
@@ -0,0 +1,27 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 猪只离开开滞留时间信息
+ * @date 2022/09/21 14:54:45
+ */
+public class NET_PIG_STAY_STAT extends NetSDKLib.SdkStructure {
+ /**
+ * 猪只进入区域的时间
+ */
+ public NET_TIME stuEnterTime = new NET_TIME();
+ /**
+ * 猪只离开区域的时间
+ */
+ public NET_TIME stuExitTime = new NET_TIME();
+ /**
+ * 保留字节
+ */
+ public byte[] szReserved = new byte[208];
+
+ public NET_PIG_STAY_STAT() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PIG_TEMPERATURE_DATA.java b/src/main/java/com/netsdk/lib/structure/NET_PIG_TEMPERATURE_DATA.java
new file mode 100644
index 0000000..69c8382
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PIG_TEMPERATURE_DATA.java
@@ -0,0 +1,44 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @description 猪体温信息
+ * @date 2022/03/31 14:06:49
+ */
+public class NET_PIG_TEMPERATURE_DATA extends NetSDKLib.SdkStructure {
+ /**
+ * 物体位置
+ */
+ public NET_RECT stuRect = new NET_RECT();
+ /**
+ * 物体编号
+ */
+ public int nID;
+ /**
+ * 最高的温度
+ */
+ public float fMaxTemperature;
+ /**
+ * 最低的温度
+ */
+ public float fMinTemperature;
+ /**
+ * 平均温度
+ */
+ public float fAverageTemperature;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserve = new byte[1024];
+
+ @Override
+ public String toString() {
+ return "NET_PIG_TEMPERATURE_DATA{" + "stuRect.nLeft=" + stuRect.nLeft + ",stuRect.nTop=" + stuRect.nTop
+ + ",stuRect.nRight=" + stuRect.nRight + ",stuRect.nBottom=" + stuRect.nBottom + ", nID=" + nID
+ + ", fMaxTemperature=" + fMaxTemperature + ", fMinTemperature=" + fMinTemperature
+ + ", fAverageTemperature=" + fAverageTemperature + '}';
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_PIG_TEMPERATURE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_PIG_TEMPERATURE_INFO.java
new file mode 100644
index 0000000..8ff7e0d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_PIG_TEMPERATURE_INFO.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 猪体温信息数组
+* @date 2022/03/31 14:06:49
+*/
+public class NET_PIG_TEMPERATURE_INFO extends NetSDKLib.SdkStructure {
+/**
+猪的数量
+*/
+ public int nPigNum;
+/**
+猪的信息
+*/
+ public NET_PIG_TEMPERATURE_DATA[] stuPigInfo = new NET_PIG_TEMPERATURE_DATA[48];
+/**
+保留字节
+*/
+ public byte[] byReserve = new byte[1024];
+
+ public NET_PIG_TEMPERATURE_INFO(){
+ for(int i=0;i {@link NET_CHANNEL_INFO}
+ */
+ public Pointer pstuChannelInfo;
+ /**
+ * 通道信息个数,可以根据登陆时获取的通道数为准
+ */
+ public int nChannelInfoNum;
+ /**
+ * 实际返回的通道号信息个数
+ */
+ public int nRetChannelInfoNum;
+ /**
+ * 报警通道相关信息,由用户申请内存,大小为 sizeof(NET_ALARM_INFO)*nAlarmInfoNum
+ * JNA指针类型 -> {@link NET_ALARM_INFO}
+ */
+ public Pointer pstuAlarmInfo;
+ /**
+ * 报警信息个数,最大值为 640
+ */
+ public int nAlarmInfoNum;
+ /**
+ * 实际返回的报警通道信息个数
+ */
+ public int nRetAlarmInfoNum;
+ /**
+ * 音频输出通道相关信息,由用户申请内存,大小为 sizeof(NET_AUDIO_OUTPUT_CHANNEL_INFO)*nAudioOutputChnInfoNum
+ * JNA指针类型 -> {@link NET_AUDIO_OUTPUT_CHANNEL_INFO}
+ */
+ public Pointer pstuAudioOutputChnInfo;
+ /**
+ * 音频输出通道相关信息个数,最大值为181
+ */
+ public int nAudioOutputChnInfoNum;
+ /**
+ * 实际返回的音频输出通道信息个数
+ */
+ public int nRetAudioOutputChnInfoNum;
+ /**
+ * 预留字节
+ */
+ public byte[] byReserved = new byte[1024];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SLEEPING_CONTROL_AUTO_CTRL.java b/src/main/java/com/netsdk/lib/structure/NET_SLEEPING_CONTROL_AUTO_CTRL.java
new file mode 100644
index 0000000..a7cef85
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SLEEPING_CONTROL_AUTO_CTRL.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 自动控制信息
+*/
+public class NET_SLEEPING_CONTROL_AUTO_CTRL extends NetSDKLib.SdkStructure
+{
+ /**
+ * 低电休眠开关
+ */
+ public int bPowerSaveEnable;
+ /**
+ * 自动进入休眠模式的电量百分比阈值,取值范围[1,100]
+ */
+ public int nSleepElectricity;
+ /**
+ * 保留字节
+ */
+ public byte[] szResvered = new byte[256];
+
+ public NET_SLEEPING_CONTROL_AUTO_CTRL() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SLEEPING_CONTROL_TIME_WAKEUP.java b/src/main/java/com/netsdk/lib/structure/NET_SLEEPING_CONTROL_TIME_WAKEUP.java
new file mode 100644
index 0000000..d732ee2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SLEEPING_CONTROL_TIME_WAKEUP.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 低功耗设备定时唤醒功能信息
+*/
+public class NET_SLEEPING_CONTROL_TIME_WAKEUP extends NetSDKLib.SdkStructure
+{
+ /**
+ * 定时唤醒使能
+ */
+ public int bEnable;
+ /**
+ * 定时唤醒的方式,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_TIME_WAKEUP_MODE}
+ */
+ public int emMode;
+ /**
+ * 按时间段休眠信息, 仅当Mode为TimeSection时生效,参见结构体定义 {@link com.netsdk.lib.structure.NET_TIME_WAKEUP_TIME_SECTION}
+ */
+ public NET_TIME_WAKEUP_TIME_SECTION stuTimeSection = new NET_TIME_WAKEUP_TIME_SECTION();
+ /**
+ * 保留字节
+ */
+ public byte[] szResvered = new byte[128];
+
+ public NET_SLEEPING_CONTROL_TIME_WAKEUP() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SMALL_PIC_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_SMALL_PIC_INFO.java
new file mode 100644
index 0000000..7dec556
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SMALL_PIC_INFO.java
@@ -0,0 +1,31 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 大图中小图的信息
+ * @date 2023/04/20 15:11:18
+ */
+public class NET_SMALL_PIC_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 小图ID
+ */
+ public int nSmallPicId;
+ /**
+ * 小图在大图中的位置
+ */
+ public NET_RECT stuRect = new NET_RECT();
+ /**
+ * 目标类型 {@link EM_OBJECT_TYPE}
+ */
+ public int emDetectObjType;
+ /**
+ * 保留字节
+ */
+ public byte[] bReserved = new byte[124];
+
+ public NET_SMALL_PIC_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SMARTDETECT_HUMAN_OBJECT.java b/src/main/java/com/netsdk/lib/structure/NET_SMARTDETECT_HUMAN_OBJECT.java
new file mode 100644
index 0000000..72408a9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SMARTDETECT_HUMAN_OBJECT.java
@@ -0,0 +1,27 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 智能动检(人)对象信息
+ * @date 2023/05/15 13:47:59
+ */
+public class NET_SMARTDETECT_HUMAN_OBJECT extends NetSDKLib.SdkStructure {
+ /**
+ * 人动检ID
+ */
+ public int nHumanID;
+ /**
+ * 人的位置
+ */
+ public NET_RECT stuRect = new NET_RECT();
+ /**
+ * 保留字节
+ */
+ public byte[] bReserved = new byte[508];
+
+ public NET_SMARTDETECT_HUMAN_OBJECT() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SMARTDETECT_VEHICLE_OBJECT.java b/src/main/java/com/netsdk/lib/structure/NET_SMARTDETECT_VEHICLE_OBJECT.java
new file mode 100644
index 0000000..844c982
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SMARTDETECT_VEHICLE_OBJECT.java
@@ -0,0 +1,27 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 智能动检(车)对象信息
+ * @date 2023/05/15 13:49:36
+ */
+public class NET_SMARTDETECT_VEHICLE_OBJECT extends NetSDKLib.SdkStructure {
+ /**
+ * 车动检ID
+ */
+ public int nVehicleID;
+ /**
+ * 车的位置
+ */
+ public NET_RECT stuRect = new NET_RECT();
+ /**
+ * 保留字节
+ */
+ public byte[] bReserved = new byte[508];
+
+ public NET_SMARTDETECT_VEHICLE_OBJECT() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SMART_KITCHEN_CLOTHES_CHEF_CLOTHES.java b/src/main/java/com/netsdk/lib/structure/NET_SMART_KITCHEN_CLOTHES_CHEF_CLOTHES.java
new file mode 100644
index 0000000..0a4e77e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SMART_KITCHEN_CLOTHES_CHEF_CLOTHES.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description 厨师服相关属性状态信息
+ * @date 2021/7/26 15:29
+ */
+public class NET_SMART_KITCHEN_CLOTHES_CHEF_CLOTHES extends NetSDKLib.SdkStructure {
+ public int bChefClothes; // 厨师服相关属性是否生效,true 生效 ,false 不生效
+ public int[] emHasChefClothes = new int[3]; /** 是否有带厨师服 {@link com.netsdk.lib.enumeration.EM_SMART_KITCHEN_CLOTHES_STATE} */
+ public int[] emChefClothesColor = new int[3]; /** 厨师服颜色 {@link com.netsdk.lib.enumeration.EM_SMART_KITCHEN_CLOTHES_COLOUR} */
+ public byte[] byReserved = new byte[1024]; // 预留字段
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SMART_KITCHEN_CLOTHES_CHEF_HAT.java b/src/main/java/com/netsdk/lib/structure/NET_SMART_KITCHEN_CLOTHES_CHEF_HAT.java
new file mode 100644
index 0000000..368ff2d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SMART_KITCHEN_CLOTHES_CHEF_HAT.java
@@ -0,0 +1,16 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description 厨师帽相关属性状态信息
+ * @date 2021/7/26 15:05
+ */
+public class NET_SMART_KITCHEN_CLOTHES_CHEF_HAT extends NetSDKLib.SdkStructure {
+ public int bChefHat; // 厨师帽相关属性是否生效,true 生效 ,false 不生效
+ public int[] emHasChefHat = new int[3]; /** 是否有带厨师帽 {@link com.netsdk.lib.enumeration.EM_SMART_KITCHEN_CLOTHES_STATE} */
+ public byte[] byReserved = new byte[1024]; // 预留字段
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SMART_KITCHEN_CLOTHES_CHEF_MASK.java b/src/main/java/com/netsdk/lib/structure/NET_SMART_KITCHEN_CLOTHES_CHEF_MASK.java
new file mode 100644
index 0000000..fc40dd5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SMART_KITCHEN_CLOTHES_CHEF_MASK.java
@@ -0,0 +1,16 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description 口罩相关属性状态信息
+ * @date 2021/7/26 14:56
+ */
+public class NET_SMART_KITCHEN_CLOTHES_CHEF_MASK extends NetSDKLib.SdkStructure {
+ public int bChefMask; // 口罩相关属性是否生效,true 生效 ,false 不生效
+ public int[] emHasMask = new int[3]; /** 是否有带口罩 {@link com.netsdk.lib.enumeration.EM_SMART_KITCHEN_CLOTHES_STATE} */
+ public byte[] byReserved = new byte[1024]; // 预留字段
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SMART_MOTION_DETECT_OBJECT.java b/src/main/java/com/netsdk/lib/structure/NET_SMART_MOTION_DETECT_OBJECT.java
new file mode 100644
index 0000000..83391c0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SMART_MOTION_DETECT_OBJECT.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 智能动态检测对象
+*/
+public class NET_SMART_MOTION_DETECT_OBJECT extends NetSDKLib.SdkStructure
+{
+ /**
+ * 动态检测人使能
+ */
+ public int bHuman;
+ /**
+ * 动态检测车使能
+ */
+ public int bVehicle;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[1020];
+
+ public NET_SMART_MOTION_DETECT_OBJECT() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SMART_VALUE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_SMART_VALUE_INFO.java
new file mode 100644
index 0000000..09a42bf
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SMART_VALUE_INFO.java
@@ -0,0 +1,51 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 设备SMART信息
+ * @date 2022/05/30 14:43:22
+ */
+public class NET_SMART_VALUE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 属性ID
+ */
+ public int nID;
+ /**
+ * 属性名
+ */
+ public byte[] szName = new byte[32];
+ /**
+ * 属性值
+ */
+ public int nCurrent;
+ /**
+ * 最大出错值
+ */
+ public int nWorst;
+ /**
+ * 阈值
+ */
+ public int nThreshold;
+ /**
+ * 实际值
+ */
+ public byte[] szRaw = new byte[32];
+ /**
+ * 状态
+ */
+ public int nPredict;
+ /**
+ * Raid同步状态, -1: 未知; 0: 自适应; 1: 同步优先,I/O优先分给Raid同步; 2:业务优先,I/O优先分给硬盘写数据; 3: 均衡
+ */
+ public int nSync;
+ /**
+ * 保留字节
+ */
+ public byte[] szResvered = new byte[256];
+
+ public NET_SMART_VALUE_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SMOKE_DETECTION_RULE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_SMOKE_DETECTION_RULE_INFO.java
new file mode 100644
index 0000000..d1d8037
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SMOKE_DETECTION_RULE_INFO.java
@@ -0,0 +1,46 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+import com.netsdk.lib.enumeration.NET_EM_SCENEDETECTION_TYPE;
+import com.netsdk.lib.NetSDKLib.POINTCOORDINATE;
+/**
+ * @description 事件类型EVENT_IVS_SMOKEDETECTION(烟雾检测事件) 对应的规则配置
+ * @author 119178
+ * @date 2021/3/11
+ */
+public class NET_SMOKE_DETECTION_RULE_INFO extends SdkStructure {
+ /**
+ * 检测区顶点数
+ */
+ public int nDetectRegionPoint;
+ /**
+ * 字节对齐
+ */
+ public byte[] byReserved1 = new byte[4];
+ /**
+ * 检测区
+ */
+ public POINTCOORDINATE[] stuDetectRegion = (POINTCOORDINATE[])new POINTCOORDINATE().toArray(20);
+ /**
+ * 最短持续时间,单位:秒 0~65535
+ */
+ public int nMinDuration;
+ /**
+ * 灵敏度,范围[1,10],灵敏度越高越容易检测
+ */
+ public int nSensitivity;
+ /**
+ * 重复报警时间,单位:秒,范围0-3600.无该字段时,不做处理
+ */
+ public int nRepeatAlarmTime;
+ /**
+ * 场景类型
+ * {@link NET_EM_SCENEDETECTION_TYPE}
+ */
+ public int emSceneType;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[4096];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SMOKING_DETECT.java b/src/main/java/com/netsdk/lib/structure/NET_SMOKING_DETECT.java
new file mode 100644
index 0000000..8652a26
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SMOKING_DETECT.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 吸烟检测结果
+* @date 2022/06/28 19:44:56
+*/
+public class NET_SMOKING_DETECT extends NetSDKLib.SdkStructure {
+/**
+包围盒
+*/
+ public NET_RECT stuBoundingBox = new NET_RECT();
+
+public NET_SMOKING_DETECT(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SNIFFER_FILTER.java b/src/main/java/com/netsdk/lib/structure/NET_SNIFFER_FILTER.java
new file mode 100644
index 0000000..a5285f6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SNIFFER_FILTER.java
@@ -0,0 +1,31 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 抓包过滤规则
+*/
+public class NET_SNIFFER_FILTER extends NetSDKLib.SdkStructure
+{
+ /**
+ * 有效的stElemetsge个数
+ */
+ public int nMaxElemet;
+ /**
+ * 过滤五元组的数组,参见结构体定义 {@link com.netsdk.lib.structure.NET_SNIFFER_FILTER_ELEMENT}
+ */
+ public NET_SNIFFER_FILTER_ELEMENT[] stuElemets = new NET_SNIFFER_FILTER_ELEMENT[8];
+ /**
+ * 0: 取上述全部五元组的或集作为过滤条件; 1: 取上述五元组或非作为过滤条件。
+ */
+ public int nFilterType;
+ /**
+ * 保留字段
+ */
+ public byte[] byReserved = new byte[256];
+
+ public NET_SNIFFER_FILTER() {
+ for(int i = 0; i < stuElemets.length; i++){
+ stuElemets[i] = new NET_SNIFFER_FILTER_ELEMENT();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SNIFFER_FILTER_ELEMENT.java b/src/main/java/com/netsdk/lib/structure/NET_SNIFFER_FILTER_ELEMENT.java
new file mode 100644
index 0000000..40942ba
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SNIFFER_FILTER_ELEMENT.java
@@ -0,0 +1,36 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 抓包过滤元素
+*/
+public class NET_SNIFFER_FILTER_ELEMENT extends NetSDKLib.SdkStructure
+{
+ /**
+ * 源地址
+ */
+ public byte[] szSrcIP = new byte[64];
+ /**
+ * 目的地址
+ */
+ public byte[] szDstIP = new byte[64];
+ /**
+ * 源端口
+ */
+ public int nSrcPort;
+ /**
+ * 目的端口
+ */
+ public int nDstPort;
+ /**
+ * 协议类型,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_SNIFFER_FILTER_PROTOCOL}
+ */
+ public int emProtocol;
+ /**
+ * 保留字段
+ */
+ public byte[] byReserved = new byte[60];
+
+ public NET_SNIFFER_FILTER_ELEMENT() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SNIFFER_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_SNIFFER_INFO.java
new file mode 100644
index 0000000..ad46bbd
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SNIFFER_INFO.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 抓包信息
+*/
+public class NET_SNIFFER_INFO extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+ /**
+ * 抓包ID, 无抓包ID为0
+ */
+ public int nSnifferID;
+ /**
+ * 抓包存储文件名。若当前网卡无正在进行的抓包任务,则为空
+ */
+ public byte[] szPath = new byte[256];
+ /**
+ * 默认路径及start路径传入下的抓包文件。按时间从新到旧排序。
+ */
+ public BYTE_ARRAY_256[] szPathEx = new BYTE_ARRAY_256[10];
+ /**
+ * 实际返回的szPathEx有效个数
+ */
+ public int nRetPathEx;
+ /**
+ * szPathEx元素对应文件大小, 单位字节
+ */
+ public int[] nFileSize = new int[10];
+
+ public NET_SNIFFER_INFO() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SPACE_MODE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_SPACE_MODE_INFO.java
new file mode 100644
index 0000000..920d5eb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SPACE_MODE_INFO.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 车位模式统计信息
+ * @date 2021/12/18
+ */
+public class NET_SPACE_MODE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 车位编号
+ */
+ public byte[] szParkNo = new byte[32];
+ /**
+ * 车位类型,参考{ @link EM_SPACE_TYPE}
+ */
+ public int emSpaceType;
+ /**
+ * 该车位是否有车
+ */
+ public boolean bUsed;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[256];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SPACE_OCCUPY_RATIO_MULTI.java b/src/main/java/com/netsdk/lib/structure/NET_SPACE_OCCUPY_RATIO_MULTI.java
new file mode 100644
index 0000000..5ba2c4b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SPACE_OCCUPY_RATIO_MULTI.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 421657
+ * @description 空间占有率统计信息
+ * @origin autoTool
+ * @date 2023/11/23 20:57:47
+ */
+public class NET_SPACE_OCCUPY_RATIO_MULTI extends NetSDKLib.SdkStructure {
+ /**
+ * / 空间占有率统计区域的ID
+ */
+ public int nID;
+ /**
+ * / 对应ID的空间占有率,即按百分率计量的车辆长度总和除以时间间隔内车辆平均行驶距离
+ */
+ public float fSpaceOccupyRatio;
+ /**
+ * / 保留字节
+ */
+ public byte[] szReserverd = new byte[8];
+
+ public NET_SPACE_OCCUPY_RATIO_MULTI() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SPEAK_AUDIO_FORMAT.java b/src/main/java/com/netsdk/lib/structure/NET_SPEAK_AUDIO_FORMAT.java
new file mode 100644
index 0000000..e2dc9af
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SPEAK_AUDIO_FORMAT.java
@@ -0,0 +1,20 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 音频格式
+*/
+public class NET_SPEAK_AUDIO_FORMAT extends NetSDKLib.SdkStructure
+{
+ /**
+ * 音频编码格式,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_SPEAK_AUDIO_TYPE}
+ */
+ public int emFormat;
+ /**
+ * 预留
+ */
+ public byte[] byReserved = new byte[1020];
+
+ public NET_SPEAK_AUDIO_FORMAT() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SPEAK_AUDIO_PLAY_PATH.java b/src/main/java/com/netsdk/lib/structure/NET_SPEAK_AUDIO_PLAY_PATH.java
new file mode 100644
index 0000000..6c5432b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SPEAK_AUDIO_PLAY_PATH.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 音频文件路径
+*/
+public class NET_SPEAK_AUDIO_PLAY_PATH extends NetSDKLib.SdkStructure
+{
+ /**
+ * 文件路径
+ */
+ public byte[] szPath = new byte[256];
+ /**
+ * 是否支持上传
+ */
+ public int bSupportUpload;
+ /**
+ * 支持最大上传个数
+ */
+ public int nMaxFileUploadNum;
+ /**
+ * 最大上传文件大小,单位:字节
+ */
+ public int nMaxUploadFileSize;
+ /**
+ * 预留
+ */
+ public byte[] byReserved = new byte[756];
+
+ public NET_SPEAK_AUDIO_PLAY_PATH() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SPEAK_CAPS.java b/src/main/java/com/netsdk/lib/structure/NET_SPEAK_CAPS.java
new file mode 100644
index 0000000..0559f82
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SPEAK_CAPS.java
@@ -0,0 +1,38 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 音频文件路径和能力集
+*/
+public class NET_SPEAK_CAPS extends NetSDKLib.SdkStructure
+{
+ /**
+ * 音频格式,参见结构体定义 {@link com.netsdk.lib.structure.NET_SPEAK_AUDIO_FORMAT}
+ */
+ public NET_SPEAK_AUDIO_FORMAT[] stuAudioFormats = new NET_SPEAK_AUDIO_FORMAT[32];
+ /**
+ * 音频格式个数
+ */
+ public int nAudioFormatNum;
+ /**
+ * 音频文件路径个数
+ */
+ public int nAudioPlayPathNum;
+ /**
+ * 音频文件路径,参见结构体定义 {@link com.netsdk.lib.structure.NET_SPEAK_AUDIO_PLAY_PATH}
+ */
+ public NET_SPEAK_AUDIO_PLAY_PATH[] stuAudioPlayPaths = new NET_SPEAK_AUDIO_PLAY_PATH[8];
+ /**
+ * 预留
+ */
+ public byte[] byReserved = new byte[1024];
+
+ public NET_SPEAK_CAPS() {
+ for(int i = 0; i < stuAudioFormats.length; i++){
+ stuAudioFormats[i] = new NET_SPEAK_AUDIO_FORMAT();
+ }
+ for(int i = 0; i < stuAudioPlayPaths.length; i++){
+ stuAudioPlayPaths[i] = new NET_SPEAK_AUDIO_PLAY_PATH();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SPECIAL_DATE_PLANS_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_SPECIAL_DATE_PLANS_INFO.java
new file mode 100644
index 0000000..2fb8351
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SPECIAL_DATE_PLANS_INFO.java
@@ -0,0 +1,44 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 特殊调度列表信息
+ * @date 2021/09/28
+ */
+public class NET_SPECIAL_DATE_PLANS_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 日方案编号,从1开始
+ */
+ public int nDatePlanNumber;
+ /**
+ * 日期开始月份
+ */
+ public int nBeginMonth;
+ /**
+ * 日期开始日
+ */
+ public int nBeginDay;
+ /**
+ * 日期结束月份
+ */
+ public int nEndMonth;
+ /**
+ * 日期结束日
+ */
+ public int nEndDay;
+ /**
+ * 周计划编号
+ */
+ public int nWeekPlanNumber;
+ /**
+ * 周计划名称
+ */
+ public byte[] szWeekPlanName = new byte[64];
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[32];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SPECIAL_DATE_PLAN_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_SPECIAL_DATE_PLAN_INFO.java
new file mode 100644
index 0000000..feabc7f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SPECIAL_DATE_PLAN_INFO.java
@@ -0,0 +1,44 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 特殊调度列表信息
+ * @date 2021/09/27
+ */
+public class NET_SPECIAL_DATE_PLAN_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 特殊调度编号
+ */
+ public int nDatePlanNumber;
+ /**
+ * 日期开始月份
+ */
+ public int nBeginMonth;
+ /**
+ * 日期开始日
+ */
+ public int nBeginDay;
+ /**
+ * 日期结束月份
+ */
+ public int nEndMonth;
+ /**
+ * 日期结束日
+ */
+ public int nEndDay;
+ /**
+ * 周计划
+ */
+ public int nWeekPlanNumber;
+ /**
+ * 周计划名称
+ */
+ public byte[] szWeekPlanName = new byte[32];
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[32];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SPECIAL_DAYS_SCHEDULE.java b/src/main/java/com/netsdk/lib/structure/NET_SPECIAL_DAYS_SCHEDULE.java
new file mode 100644
index 0000000..a62c400
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SPECIAL_DAYS_SCHEDULE.java
@@ -0,0 +1,40 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 假日计划能力
+ * @origin autoTool
+ * @date 2023/08/24 14:19:15
+ */
+public class NET_SPECIAL_DAYS_SCHEDULE extends NetSDKLib.SdkStructure {
+ /**
+ * 是否支持假日计划
+ */
+ public int bSupport;
+ /**
+ * 设备支持的最大计划数量
+ */
+ public int nMaxSpecialDaysSchedules;
+ /**
+ * 每天最多的时间段
+ */
+ public int nMaxTimePeriodsPerDay;
+ /**
+ * 设备支持的最大假日组数
+ */
+ public int nMaxSpecialDayGroups;
+ /**
+ * 每个假日组里最大的假日数
+ */
+ public int nMaxDaysInSpecialDayGroup;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[128];
+
+ public NET_SPECIAL_DAYS_SCHEDULE() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SPECIAL_DAYS_SCHEDULE_CAPS.java b/src/main/java/com/netsdk/lib/structure/NET_SPECIAL_DAYS_SCHEDULE_CAPS.java
new file mode 100644
index 0000000..28edc7d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SPECIAL_DAYS_SCHEDULE_CAPS.java
@@ -0,0 +1,41 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 假日计划能力
+* @origin autoTool
+* @date 2023/02/10 14:34:20
+*/
+public class NET_SPECIAL_DAYS_SCHEDULE_CAPS extends NetSDKLib.SdkStructure {
+/**
+是否支持假日计划
+*/
+ public int bSupport;
+/**
+设备支持的最大计划数量
+*/
+ public int nMaxSpecialDaysSchedules;
+/**
+每天最多的时间段
+*/
+ public int nMaxTimePeriodsPerDay;
+/**
+设备支持的最大假日组数
+*/
+ public int nMaxSpecialDayGroups;
+/**
+每个假日组里最大的假日数
+*/
+ public int nMaxDaysInSpecialDayGroup;
+/**
+保留字节
+*/
+ public byte[] byReserved = new byte[128];
+
+public NET_SPECIAL_DAYS_SCHEDULE_CAPS(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SPEED_LIMIT.java b/src/main/java/com/netsdk/lib/structure/NET_SPEED_LIMIT.java
new file mode 100644
index 0000000..2b45b81
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SPEED_LIMIT.java
@@ -0,0 +1,19 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+/**
+ * @description 速度限制
+ * @author 119178
+ * @date 2021/3/11
+ */
+public class NET_SPEED_LIMIT extends SdkStructure {
+ /**
+ * 速度上限
+ */
+ public int nSpeedUpperLimit;
+ /**
+ * 速度下限
+ */
+ public int nSpeedLowerLimit;
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SPLIT_OSD.java b/src/main/java/com/netsdk/lib/structure/NET_SPLIT_OSD.java
new file mode 100644
index 0000000..1891ccf
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SPLIT_OSD.java
@@ -0,0 +1,88 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 分割窗口OSD信息
+ * @date 2022/06/22 09:56:21
+ */
+public class NET_SPLIT_OSD extends NetSDKLib.SdkStructure {
+ public int dwSize;
+ /**
+ * 使能
+ */
+ public int bEnable;
+ /**
+ * 前景颜色
+ */
+ public NET_COLOR_RGBA stuFrontColor = new NET_COLOR_RGBA();
+ /**
+ * 背景颜色
+ */
+ public NET_COLOR_RGBA stuBackColor = new NET_COLOR_RGBA();
+ /**
+ * 前景区域
+ */
+ public NetSDKLib.DH_RECT stuFrontRect = new NetSDKLib.DH_RECT();
+ /**
+ * 背景区域
+ */
+ public NetSDKLib.DH_RECT stuBackRect = new NetSDKLib.DH_RECT();
+ /**
+ * 是否滚动显示, 只对文本有效
+ */
+ public int bRoll;
+ /**
+ * 滚动模式, 只对文本有效, 0-从左往右, 1-从右往左, 2-从上往下滚动, 3-从下往上滚动
+ */
+ public byte byRollMode;
+ /**
+ * 滚动速率, 只对文本有效, 0~4, 数值越大滚动越快
+ */
+ public byte byRoolSpeed;
+ /**
+ * 字体大小, 只对文本有效
+ */
+ public byte byFontSize;
+ /**
+ * 对齐方式, 0-靠左, 1-居中, 2-靠右
+ */
+ public byte byTextAlign;
+ /**
+ * OSD类型, 0-文本, 1-图标, 2-时间, 3-星期, 4-日期, 5-日期+星期, 6-日期+时间, 7-星期+时间, 8-日期+星期+时间
+ */
+ public byte byType;
+ /**
+ * 保留字节
+ */
+ public byte[] Reserved = new byte[3];
+ /**
+ * OSD内容 若类型为图标, 内容为图标名称
+ * 若类型为Time,内容为”Date”(日期),”Week”(星期),”Time”(时间),”\n”(换行)的自由组合。
+ * 例如:不同行显示,需要将此字段填为"Date\nTime",在屏幕上就会显示 2018年4月23日 16:49:15
+ * 同行显示,需要将此字段填为"DateTime",在屏幕上就会显示 2018年4月23日16:49:15
+ */
+ public byte[] szContent = new byte[260];
+ /**
+ * null
+ */
+ public float fPitch;
+ /**
+ * 字体类型
+ */
+ public byte[] szFontType = new byte[64];
+ /**
+ * 文本显示模式 Row:横排(默认) Column:竖排
+ */
+ public byte[] szPattern = new byte[8];
+ /**
+ * OSD内容
+ */
+ public byte[] szContentEx = new byte[1024];
+
+ public NET_SPLIT_OSD() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SPLIT_SCENE.java b/src/main/java/com/netsdk/lib/structure/NET_SPLIT_SCENE.java
new file mode 100644
index 0000000..505011e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SPLIT_SCENE.java
@@ -0,0 +1,51 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * 拼接屏场景
+*/
+public class NET_SPLIT_SCENE extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+ /**
+ * 拼接屏ID
+ */
+ public byte[] szCompositeID = new byte[128];
+ /**
+ * 控制ID
+ */
+ public byte[] szControlID = new byte[128];
+ /**
+ * 分割模式,参见枚举定义 {@link com.netsdk.lib.NetSDKLib.NET_SPLIT_MODE}
+ */
+ public int emSplitMode;
+ /**
+ * 窗口信息数组, 用户分配内存,大小为sizeof(DH_SPLIT_WINDOW)*nMaxWndCount,参见结构体定义 {@link com.netsdk.lib.structure.NET_SPLIT_WINDOW}
+ */
+ public Pointer pstuWnds;
+ /**
+ * 窗口信息数组大小, 用户填写
+ */
+ public int nMaxWndCount;
+ /**
+ * 返回的窗口数量
+ */
+ public int nRetWndCount;
+ /**
+ * 窗口信息数组-扩展, 用户分配内存,大小为sizeof(DH_SPLIT_WINDOW_EX)*nMaxWndCount,pstuWndsEx 与 pstuWnds选一个使用即可,参见结构体定义 {@link com.netsdk.lib.structure.NET_SPLIT_WINDOW_EX}
+ */
+ public Pointer pstuWndsEx;
+ /**
+ * 窗口信息数组大小-扩展, 用户填写
+ */
+ public int nMaxWndCountEx;
+ /**
+ * 返回的窗口数量-扩展
+ */
+ public int nRetWndCountEx;
+
+ public NET_SPLIT_SCENE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SPLIT_TOUR_SOURCE.java b/src/main/java/com/netsdk/lib/structure/NET_SPLIT_TOUR_SOURCE.java
new file mode 100644
index 0000000..6cdc0c9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SPLIT_TOUR_SOURCE.java
@@ -0,0 +1,27 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * 窗口轮巡显示源信息
+*/
+public class NET_SPLIT_TOUR_SOURCE extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+ /**
+ * 显示源数组, 用户分配内存,大小为sizeof(DH_SPLIT_SOURCE)*nMaxSrcCount,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_SPLIT_SOURCE}
+ */
+ public Pointer pstuSrcs;
+ /**
+ * 显示源最大数量
+ */
+ public int nMaxSrcCount;
+ /**
+ * 返回的显示源数量
+ */
+ public int nRetSrcCount;
+
+ public NET_SPLIT_TOUR_SOURCE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SPLIT_WINDOW.java b/src/main/java/com/netsdk/lib/structure/NET_SPLIT_WINDOW.java
new file mode 100644
index 0000000..d72290f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SPLIT_WINDOW.java
@@ -0,0 +1,73 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 分割窗口信息
+*/
+public class NET_SPLIT_WINDOW extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+ /**
+ * 窗口是否有视频源
+ */
+ public int bEnable;
+ /**
+ * 窗口ID
+ */
+ public int nWindowID;
+ /**
+ * 控制ID
+ */
+ public byte[] szControlID = new byte[128];
+ /**
+ * 窗口区域, 自由分割模式下有效,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_RECT}
+ */
+ public NetSDKLib.NET_RECT stuRect = new NetSDKLib.NET_RECT();
+ /**
+ * 坐标是否满足直通条件
+ */
+ public int bDirectable;
+ /**
+ * 窗口Z次序
+ */
+ public int nZOrder;
+ /**
+ * 显示信息,参见结构体定义 {@link com.netsdk.lib.structure.NET_SPLIT_WND_SOURCE}
+ */
+ public NET_SPLIT_WND_SOURCE stuSource = new NET_SPLIT_WND_SOURCE();
+ /**
+ * OSD个数
+ */
+ public int nOSDNum;
+ /**
+ * OSD信息,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_SPLIT_OSD}
+ */
+ public NetSDKLib.NET_SPLIT_OSD[] stuOSD = new NetSDKLib.NET_SPLIT_OSD[256];
+ /**
+ * 窗口是否被锁定位置
+ */
+ public int bLock;
+ /**
+ * 窗口是否具有粘附效果
+ */
+ public int bDock;
+ /**
+ * 窗口是否为会议模式状态
+ */
+ public int bMeetingMode;
+ /**
+ * 窗口是否开启音频使能
+ */
+ public int bAudioEnable;
+ /**
+ * 窗口是否开启轮询
+ */
+ public int bTourEnable;
+
+ public NET_SPLIT_WINDOW() {
+ this.dwSize = this.size();
+ for(int i = 0; i < stuOSD.length; i++){
+ stuOSD[i] = new NetSDKLib.NET_SPLIT_OSD();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SPLIT_WINDOW_EX.java b/src/main/java/com/netsdk/lib/structure/NET_SPLIT_WINDOW_EX.java
new file mode 100644
index 0000000..dc32dd5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SPLIT_WINDOW_EX.java
@@ -0,0 +1,75 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+/**
+ * 分割窗口信息
+*/
+public class NET_SPLIT_WINDOW_EX extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+ /**
+ * 窗口是否有视频源
+ */
+ public int bEnable;
+ /**
+ * 窗口ID
+ */
+ public int nWindowID;
+ /**
+ * 控制ID
+ */
+ public byte[] szControlID = new byte[128];
+ /**
+ * 窗口区域, 自由分割模式下有效,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_RECT}
+ */
+ public NetSDKLib.NET_RECT stuRect = new NetSDKLib.NET_RECT();
+ /**
+ * 坐标是否满足直通条件
+ */
+ public int bDirectable;
+ /**
+ * 窗口Z次序
+ */
+ public int nZOrder;
+ /**
+ * 显示信息,参见结构体定义 {@link com.netsdk.lib.structure.NET_SPLIT_WND_SOURCE}
+ */
+ public NET_SPLIT_WND_SOURCE stuSource = new NET_SPLIT_WND_SOURCE();
+ /**
+ * 窗口是否被锁定位置
+ */
+ public int bLock;
+ /**
+ * 窗口是否具有粘附效果
+ */
+ public int bDock;
+ /**
+ * 窗口是否为会议模式状态
+ */
+ public int bMeetingMode;
+ /**
+ * 窗口是否开启音频使能
+ */
+ public int bAudioEnable;
+ /**
+ * 窗口是否开启轮询
+ */
+ public int bTourEnable;
+ /**
+ * 用户申请的OSD个数
+ */
+ public int nMaxOSDNum;
+ /**
+ * 返回的OSD个数
+ */
+ public int nRetOSDNum;
+ /**
+ * OSD信息指针,用户申请内存,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_SPLIT_OSD}
+ */
+ public Pointer pstuOSD;
+
+ public NET_SPLIT_WINDOW_EX() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_SPLIT_WND_SOURCE.java b/src/main/java/com/netsdk/lib/structure/NET_SPLIT_WND_SOURCE.java
new file mode 100644
index 0000000..61bf273
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_SPLIT_WND_SOURCE.java
@@ -0,0 +1,62 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 窗口显示源信息
+*/
+public class NET_SPLIT_WND_SOURCE extends NetSDKLib.SdkStructure
+{
+ public int dwSize;
+ /**
+ * 显示源是否有效
+ */
+ public int bEnable;
+ /**
+ * 设备ID
+ */
+ public byte[] szDeviceID = new byte[128];
+ /**
+ * 控制ID
+ */
+ public byte[] szControlID = new byte[128];
+ /**
+ * 视频通道号
+ */
+ public int nVideoChannel;
+ /**
+ * 视频码流类型
+ */
+ public int nVideoStream;
+ /**
+ * 音频通道
+ */
+ public int nAudioChannel;
+ /**
+ * 音频码流类型
+ */
+ public int nAudioStream;
+ /**
+ * 设备内统一编号的唯一通道号, 只读
+ */
+ public int nUniqueChannel;
+ /**
+ * 是否远程设备
+ */
+ public int bRemoteDevice;
+ /**
+ * 远程设备信息,参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_REMOTE_DEVICE}
+ */
+ public NetSDKLib.NET_REMOTE_DEVICE stuRemoteDevice = new NetSDKLib.NET_REMOTE_DEVICE();
+ /**
+ * 视频源区域,若区域为(0,0,0,0)表示数据无效,设备使用默认值(0,0,8192,8192),参见结构体定义 {@link com.netsdk.lib.structure.NET_RECT}
+ */
+ public NET_RECT stuSRect = new NET_RECT();
+ /**
+ * 轮巡时间间隔,单位:秒
+ */
+ public int nInterval;
+
+ public NET_SPLIT_WND_SOURCE() {
+ this.dwSize = this.size();
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_STAFF_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_STAFF_INFO.java
new file mode 100644
index 0000000..f58b6bb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_STAFF_INFO.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib.DH_POINT;
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+import com.netsdk.lib.enumeration.NET_EM_STAFF_TYPE;
+/**
+ * @description 标尺信息
+ * @author 119178
+ * @date 2021/3/16
+ */
+public class NET_STAFF_INFO extends SdkStructure {
+ /**
+ * 起始坐标点
+ */
+ public DH_POINT stuStartLocation = new DH_POINT();
+ /**
+ * 终止坐标点
+ */
+ public DH_POINT stuEndLocation = new DH_POINT();
+ /**
+ * 实际长度,单位米
+ */
+ public float nLenth;
+ /**
+ * 标尺类型
+ * {@link NET_EM_STAFF_TYPE}
+ */
+ public int emType;
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_START_FIND_VEHICLE_REG_DB_CONDITION.java b/src/main/java/com/netsdk/lib/structure/NET_START_FIND_VEHICLE_REG_DB_CONDITION.java
new file mode 100644
index 0000000..544d297
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_START_FIND_VEHICLE_REG_DB_CONDITION.java
@@ -0,0 +1,53 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 421657
+ * @description CLIENT_StartFindVehicleRegisterDB 查询条件
+ * @origin autoTool
+ * @date 2023/10/30 16:34:24
+ */
+public class NET_START_FIND_VEHICLE_REG_DB_CONDITION extends NetSDKLib.SdkStructure {
+ /**
+ * / 平台端车牌唯一标识列表有效个数
+ */
+ public int nUUIDsNum;
+ /**
+ * / 平台端车牌唯一标识列表,存在该字段时,stuVehicleInfo不生效
+ */
+ public byte[] szUUIDs = new byte[64 * 64];
+ /**
+ * / 是否使用车牌库的车牌的入库时间、结束时间
+ */
+ public int bIsUsingRegisterStorageTime;
+ /**
+ * / 开始时间 开始时间与结束时间对车牌库的车牌的入库时间RegisterStorageTime进行选择过滤
+ */
+ public NET_TIME stuStartRegisterStorageTime = new NET_TIME();
+ /**
+ * / 结束时间
+ */
+ public NET_TIME stuEndRegisterStorageTime = new NET_TIME();
+ /**
+ * / 是否使用车牌库的车牌的修改时间、结束时间
+ */
+ public int bIsUsingModifyTime;
+ /**
+ * / 开始时间 开始时间与结束时间对车牌库的车牌的修改时间ModifyTime进行选择过滤
+ */
+ public NET_TIME stuStartModifyTime = new NET_TIME();
+ /**
+ * / 结束时间
+ */
+ public NET_TIME stuEndModifyTime = new NET_TIME();
+ /**
+ * / 预留字节
+ */
+ public byte[] szReserved = new byte[1024];
+
+ public NET_START_FIND_VEHICLE_REG_DB_CONDITION() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_START_FIND_WATERDATA_CONDITION.java b/src/main/java/com/netsdk/lib/structure/NET_START_FIND_WATERDATA_CONDITION.java
new file mode 100644
index 0000000..da72d08
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_START_FIND_WATERDATA_CONDITION.java
@@ -0,0 +1,44 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 水质检测数据查询条件
+* @date 2022/08/22 17:12:11
+*/
+public class NET_START_FIND_WATERDATA_CONDITION extends NetSDKLib.SdkStructure {
+/**
+开始时间
+*/
+ public NET_TIME_EX stuStartTime = new NET_TIME_EX();
+/**
+检测类型 {@link com.netsdk.lib.enumeration.EM_WATER_DETECTION_ALARM_TYPE}
+*/
+ public int[] emType = new int[32];
+/**
+检测类型个数
+*/
+ public int nTypeNum;
+/**
+预置点个数
+*/
+ public int nPresetIDNum;
+/**
+预置点
+*/
+ public int[] nPresetID = new int[32];
+/**
+结束时间
+*/
+ public NET_TIME_EX stuEndTime = new NET_TIME_EX();
+/**
+预留字节
+*/
+ public byte[] szReserved = new byte[256];
+
+public NET_START_FIND_WATERDATA_CONDITION(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_STATEMANAGER_V_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_STATEMANAGER_V_INFO.java
new file mode 100644
index 0000000..0f015ab
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_STATEMANAGER_V_INFO.java
@@ -0,0 +1,35 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 电压状态
+ * @date 2023/05/11 16:03:12
+ */
+public class NET_STATEMANAGER_V_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 电压值,单位:v
+ */
+ public byte[] szV = new byte[32];
+ /**
+ * 电流值,单位:c
+ */
+ public byte[] szC = new byte[32];
+ /**
+ * 功率值,单位:w
+ */
+ public byte[] szP = new byte[32];
+ /**
+ * 电能值,单位:w.h
+ */
+ public byte[] szW = new byte[32];
+ /**
+ * 保留字节
+ */
+ public byte[] szReserved = new byte[128];
+
+ public NET_STATEMANAGER_V_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_STAT_ATTRIBUTE.java b/src/main/java/com/netsdk/lib/structure/NET_STAT_ATTRIBUTE.java
new file mode 100644
index 0000000..1d653f7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_STAT_ATTRIBUTE.java
@@ -0,0 +1,35 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 属性计数信息
+* @date 2023/02/06 16:07:27
+*/
+public class NET_STAT_ATTRIBUTE extends NetSDKLib.SdkStructure {
+/**
+目标及属性组合的计数
+*/
+ public int nNumber;
+/**
+属性组合个数
+*/
+ public int nAttrMapNumber;
+/**
+属性组合
+*/
+ public NET_STAT_ATTRMAP[] stuAttrMap = new NET_STAT_ATTRMAP[20];
+/**
+预留字节
+*/
+ public byte[] szReserved = new byte[128];
+
+public NET_STAT_ATTRIBUTE(){
+ for(int i=0;i\else
+ * \endif
+ * @date 2020/8/11
+ */
+public class NET_TIME_EX extends NetSDKLib.SdkStructure {
+ /** 年 */
+ public int dwYear;
+ /** 月 */
+ public int dwMonth;
+ /** 日 */
+ public int dwDay;
+ /** 时 */
+ public int dwHour;
+ /** 分 */
+ public int dwMinute;
+ /** 秒 */
+ public int dwSecond;
+ /** 毫秒 */
+ public int dwMillisecond;
+ /** utc时间(获取时0表示无效,非0有效 下发无效) */
+ public int dwUTC;
+ /** 保留字段 */
+ public int[] dwReserved = new int[1];
+
+ public void setTime(int year, int month, int day, int hour, int minute, int second) {
+ this.dwYear = year;
+ this.dwMonth = month;
+ this.dwDay = day;
+ this.dwHour = hour;
+ this.dwMinute = minute;
+ this.dwSecond = second;
+ this.dwMillisecond = 0;
+ }
+
+ public String toString() {
+ return dwYear + "/" + dwMonth + "/" + dwDay + " " + dwHour + ":" + dwMinute + ":" + dwSecond;
+ }
+
+ public String toStringTime() {
+ return String.format(
+ "%02d/%02d/%02d %02d:%02d:%02d", dwYear, dwMonth, dwDay, dwHour, dwMinute, dwSecond);
+ }
+
+ public String toStringTitle() {
+ return String.format(
+ "Time_%02d%02d%02d_%02d%02d%02d", dwYear, dwMonth, dwDay, dwHour, dwMinute, dwSecond);
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TIME_EX1.java b/src/main/java/com/netsdk/lib/structure/NET_TIME_EX1.java
new file mode 100644
index 0000000..c85dd50
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TIME_EX1.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 时间拓展结构体
+ * @date 2020/9/10
+ */
+public class NET_TIME_EX1 extends NetSDKLib.SdkStructure {
+ /**
+ * 时
+ */
+ public int dwHour;
+ /**
+ * 分
+ */
+ public int dwMinute;
+ /**
+ * 秒
+ */
+ public int dwSecond;
+
+ public String toTime() {
+ return dwHour + ":" + dwMinute + ":" + dwSecond;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TIME_RECORDBACKUP_TASK.java b/src/main/java/com/netsdk/lib/structure/NET_TIME_RECORDBACKUP_TASK.java
new file mode 100644
index 0000000..0bb7e70
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TIME_RECORDBACKUP_TASK.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+
+public class NET_TIME_RECORDBACKUP_TASK extends SdkStructure {
+ public int nChannelCount; // 通道有效个数
+ public int[] nChannels = new int[512]; // 通道号
+ public int[] nRemoteChannels = new int[512]; // 远程通道号
+ public byte[] szDeviceIP = new byte[64]; // IP地址
+ public int nPort; // 端口
+ public byte[] szUserName = new byte[64]; // 用户名
+ public byte[] szPassword = new byte[64]; // 密码
+ public NET_TIME_EX1 stuStartTime; // 开始时间
+ public NET_TIME_EX1 stuEndTime; // 结束时间
+ public byte[] szStorageGroupName = new byte[32]; // 保存的盘组名称
+ public byte[] byReserved = new byte[512]; // 保留字段
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TIME_SECTION_EX.java b/src/main/java/com/netsdk/lib/structure/NET_TIME_SECTION_EX.java
new file mode 100644
index 0000000..d9614cf
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TIME_SECTION_EX.java
@@ -0,0 +1,41 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+public class NET_TIME_SECTION_EX extends NetSDKLib.SdkStructure
+{
+ /**
+ * 时
+ */
+ public int nStartHour;
+ /**
+ * 分
+ */
+ public int nStartMinute;
+ /**
+ * 秒
+ */
+ public int nStartSecond;
+ /**
+ * 时
+ */
+ public int nStopHour;
+ /**
+ * 分
+ */
+ public int nStopMinute;
+ /**
+ * 秒
+ */
+ public int nStopSecond;
+ /**
+ * 名称 Day,Night,BackLight,Normal,StrongLight,FrontLight,LowLight,Custom
+ */
+ public byte[] szName = new byte[22];
+ /**
+ * 保留字段
+ */
+ public byte[] szReserved = new byte[34];
+
+ public NET_TIME_SECTION_EX() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TIME_SECTION_V2.java b/src/main/java/com/netsdk/lib/structure/NET_TIME_SECTION_V2.java
new file mode 100644
index 0000000..2a7ed1a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TIME_SECTION_V2.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+public class NET_TIME_SECTION_V2 extends NetSDKLib.SdkStructure
+{
+ /**
+ * 时间段数量
+ */
+ public int nTimeSectionNum;
+ /**
+ * 每一个月的时间段信息,参见结构体定义 {@link com.netsdk.lib.structure.NET_TIME_SECTION_EX}
+ */
+ public NET_TIME_SECTION_EX[] stuTimeSectionEx = new NET_TIME_SECTION_EX[16];
+ /**
+ * 保留字段
+ */
+ public byte[] szReserved = new byte[36];
+
+ public NET_TIME_SECTION_V2() {
+ for(int i = 0; i < stuTimeSectionEx.length; i++){
+ stuTimeSectionEx[i] = new NET_TIME_SECTION_EX();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TIME_WAKEUP_TIME_SECTION.java b/src/main/java/com/netsdk/lib/structure/NET_TIME_WAKEUP_TIME_SECTION.java
new file mode 100644
index 0000000..9fb7e9b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TIME_WAKEUP_TIME_SECTION.java
@@ -0,0 +1,27 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 按时间段休眠信息
+*/
+public class NET_TIME_WAKEUP_TIME_SECTION extends NetSDKLib.SdkStructure
+{
+ /**
+ * 每周7天,每天6个时间段,参见结构体定义 {@link com.netsdk.lib.structure.NET_TSECT}
+ */
+ public NET_TSECT_ARRAY_6[] stuAwakeSection = new NET_TSECT_ARRAY_6[7];
+ /**
+ * 处于按时间段休眠方式下时,可以支持唤醒时间段内的定时休眠。此字段表示定时休眠的时间间隔。单位为分钟。仅当Mode为" TimeSection "时生效
+ */
+ public int nWakeUpInterval;
+ /**
+ * 保留字节
+ */
+ public byte[] szResvered = new byte[1020];
+
+ public NET_TIME_WAKEUP_TIME_SECTION() {
+ for(int i = 0; i < stuAwakeSection.length; i++){
+ stuAwakeSection[i] = new NET_TSECT_ARRAY_6();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TITLE_OSD_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_TITLE_OSD_INFO.java
new file mode 100644
index 0000000..98735bb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TITLE_OSD_INFO.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * OSD使能状态及文本信息
+*/
+public class NET_TITLE_OSD_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 叠加内容
+ */
+ public byte[] szText = new byte[1024];
+ /**
+ * 是否使能osd显示
+ */
+ public int nEnable;
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[1020];
+
+ public NET_TITLE_OSD_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TRAFFICCAR_INFO_EXTERN.java b/src/main/java/com/netsdk/lib/structure/NET_TRAFFICCAR_INFO_EXTERN.java
new file mode 100644
index 0000000..7782023
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TRAFFICCAR_INFO_EXTERN.java
@@ -0,0 +1,62 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+import java.util.Arrays;
+
+/**
+ * @author 260611
+ * @description 交通车辆信息扩展
+ * @origin autoTool
+ * @date 2023/07/13 16:22:13
+ */
+public class NET_TRAFFICCAR_INFO_EXTERN extends NetSDKLib.SdkStructure {
+ /**
+ * 记录集装箱编号个数
+ */
+ public int nContainerNumber;
+ /**
+ * 记录集装箱编号的文本内容数量
+ */
+ public int nContainerTextNum;
+ /**
+ * 记录集装箱编号的文本内容
+ */
+ public byte[] szContainerText = new byte[8 * 64];
+ /**
+ * dAverageSpeed字段是否有效
+ */
+ public int bAverageSpeed;
+ /**
+ * dSpaceOcpRatio字段是否有效
+ */
+ public int bSpaceOcpRatio;
+ /**
+ * 平均车速,单位km/h -1表示无车通过,0表示拥堵
+ */
+ public double dAverageSpeed;
+ /**
+ * 空间占有率,即按百分率计量的车辆长度总和除以时间间隔内车辆平均行驶距离
+ */
+ public double dSpaceOcpRatio;
+ /**
+ 表示集装箱的类型,具体取值以算法输出为准
+ */
+ public int nContainerType;
+ /**
+ * 字节对齐
+ */
+ public byte[] szReserved1 = new byte[4];
+ /**
+ * 车牌所属国家的省、州等地区名
+ */
+ public byte[] szProvince = new byte[64];
+ /**
+ * 保留字节
+ */
+ public byte[] szReserved = new byte[1952];
+
+ public NET_TRAFFICCAR_INFO_EXTERN() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TRAFFICCAR_ORIGINAL_VEHICLE.java b/src/main/java/com/netsdk/lib/structure/NET_TRAFFICCAR_ORIGINAL_VEHICLE.java
new file mode 100644
index 0000000..d090be0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TRAFFICCAR_ORIGINAL_VEHICLE.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 车身抠图
+ * @date 2022/07/20 16:46:40
+ */
+public class NET_TRAFFICCAR_ORIGINAL_VEHICLE extends NetSDKLib.SdkStructure {
+ /**
+ * 在二进制数据块中的偏移
+ */
+ public int nOffset;
+ /**
+ * 数据大小,单位:字节
+ */
+ public int nLength;
+ /**
+ * 在上传图片数据中的图片序号
+ */
+ public int nIndexInData;
+ /**
+ * 保留字节
+ */
+ public byte[] szReserved = new byte[60];
+
+ public NET_TRAFFICCAR_ORIGINAL_VEHICLE() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TRAFFICLIGHT_CHANNEL_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_TRAFFICLIGHT_CHANNEL_INFO.java
new file mode 100644
index 0000000..f42c2a2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TRAFFICLIGHT_CHANNEL_INFO.java
@@ -0,0 +1,39 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * className:NET_TRAFFICLIGHT_CHANNEL_INFO
+ * description:
+ * author:251589
+ * createTime:2021/1/19 15:08
+ *
+ * @version v1.0
+ */
+public class NET_TRAFFICLIGHT_CHANNEL_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 检测通道
+ */
+ public int nChannel;
+ /**
+ * 进口方向
+ */
+ public int emEntryDirection;
+ /**
+ * 进口类型
+ */
+ public int[] emEntryType = new int[32];
+ /**
+ * 进口类型个数
+ */
+ public int nRetEntryTypeNum;
+ /**
+ * 红绿灯状态
+ */
+ public int emLightState;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[368];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TRAFFICLIGHT_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_TRAFFICLIGHT_INFO.java
new file mode 100644
index 0000000..e52b416
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TRAFFICLIGHT_INFO.java
@@ -0,0 +1,45 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * className:NET_TRAFFICLIGHT_INFO
+ * description:交通信号灯信息
+ * author:251589
+ * createTime:2021/1/19 15:04
+ *
+ * @version v1.0
+ */
+public class NET_TRAFFICLIGHT_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * UTC时间, 发生红绿灯切换时的时间, 本地时区
+ */
+ public NET_TIME stuUTC;
+ /**
+ * stuChannels 有效个数
+ */
+ public int nRetChannelNum;
+ /**
+ * 通道信息
+ */
+ public NET_TRAFFICLIGHT_CHANNEL_INFO[] stuChannels = (NET_TRAFFICLIGHT_CHANNEL_INFO[])new NET_TRAFFICLIGHT_CHANNEL_INFO().toArray(32);
+ /**
+ * nLightChangedChannels 有效个数
+ */
+ public int nRetLightChangedNum;
+ /**
+ * 发生红绿灯变换的通道
+ */
+ public int[] nLightChangedChannels = new int[32];
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[512];
+
+ public NET_TRAFFICLIGHT_INFO(){
+ for (int i = 0; i < stuChannels.length; i++){
+ stuChannels[i] = new NET_TRAFFICLIGHT_CHANNEL_INFO();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_ACCIDENT_RULE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_ACCIDENT_RULE_INFO.java
new file mode 100644
index 0000000..9340ca2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_ACCIDENT_RULE_INFO.java
@@ -0,0 +1,72 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+import com.netsdk.lib.NetSDKLib.POINTCOORDINATE;
+/**
+ * @description 事件类型EVENT_IVS_TRAFFICACCIDENT(交通事故) 对应的规则配置
+ * @author 119178
+ * @date 2021/3/11
+ */
+public class NET_TRAFFIC_ACCIDENT_RULE_INFO extends SdkStructure {
+ /**
+ * 检测区
+ */
+ public POINTCOORDINATE[] stuDetectRegion = (POINTCOORDINATE[])new POINTCOORDINATE().toArray(20);
+ /**
+ * 检测区顶点数
+ */
+ public int nDetectRegionPoint;
+ /**
+ * 车道编号 与场景中的车道号对应
+ */
+ public int nLaneNumber;
+ /**
+ * 最短触发时间,单位:秒
+ */
+ public int nMinDuration;
+ /**
+ * 变倍抓拍,违停球做规则判断时,默认会变倍
+ * 如下两种情况不适合变倍
+ * 1. 车速较快场合,变倍会导致跟踪不及时
+ * 2. 车牌很近,由于机芯的光轴畸变会导致车牌过大,算法无法识别
+ * 在以上这两种情况下,需要关闭变倍。是否要关闭变倍取决于现场情况,属于比较专业的配置
+ */
+ public int bZoomEnable;
+ /**
+ * 变倍停留时间,单位:秒,在ZoomEnable为true时有效,为0时表示不停留,默认为0
+ */
+ public int nZoomStayTime;
+ /**
+ * 车辆触发报警时间阈值,大于该阈值认为是交通事件,单位:秒,范围0-3600
+ */
+ public int nVehicleDelayTime;
+ /**
+ * 行人触发报警时间阈值,大于该阈值认为是交通事件,单位:秒,范围0-3600
+ */
+ public int nPersonDelayTime;
+ /**
+ * 最大报警时长 超过此时间将不再报警,单位:秒,范围0-3600
+ */
+ public int nMaxDelayTime;
+ /**
+ * 拥堵状态下的停车数阈值,用于拥堵造成的交通事故,不做报警
+ */
+ public int nVehicleNumberThreshold;
+ /**
+ * 追尾后停车时间阈值,超过阈值报警,单位ms 0~65535
+ */
+ public int nWanderTime;
+ /**
+ * 重复报警时间,单位ms; 0~65535
+ */
+ public int nRepeatTime;
+ /**
+ * 是否需要关联行人才报警,false为不关联,true为关联
+ */
+ public int bRelateHuman;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[4096];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_BACKING_RULE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_BACKING_RULE_INFO.java
new file mode 100644
index 0000000..71bc272
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_BACKING_RULE_INFO.java
@@ -0,0 +1,78 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib.DH_POINT;
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+import com.netsdk.lib.NetSDKLib.POINTCOORDINATE;
+
+/**
+ * @description 事件类型EVENT_IVS_TRAFFIC_BACKING(倒车) 对应的规则配置
+ * @author 119178
+ * @date 2021/3/11
+ */
+public class NET_TRAFFIC_BACKING_RULE_INFO extends SdkStructure {
+ /**
+ * 检测区
+ */
+ public POINTCOORDINATE[] stuDetectRegion = (POINTCOORDINATE[])new POINTCOORDINATE().toArray(20);
+ /**
+ * 检测区顶点数
+ */
+ public int nDetectRegionPoint;
+ /**
+ * 车道编号 与场景中的车道号对应
+ */
+ public int nLaneNumber;
+ /**
+ * 起点,从起点到终点是正向行驶,反过来是逆行,点的坐标归一化到[0,8192)区间。
+ */
+ public DH_POINT stuDirectionStart;
+ /**
+ * 终点,从起点到终点是正向行驶,反过来是逆行,点的坐标归一化到[0,8192)区间。
+ */
+ public DH_POINT stuDirectionEnd;
+ /**
+ * 灵敏度,范围[1,10],灵敏度越高越容易检测
+ */
+ public int nSensitivity;
+ /**
+ * 是否使能区域内触发该规则, false-不使能,true-使能
+ */
+ public int bAreaTrigEnable;
+ /**
+ * 方案参数, false-普通变道(只要变道一次即可),true -抓连续变道(变道2次及以上)
+ */
+ public int bContinueCrossLaneEnable;
+ /**
+ * 变倍抓拍,违停球做规则判断时,默认会变倍
+ * 如下两种情况不适合变倍
+ * 1. 车速较快场合,变倍会导致跟踪不及时
+ * 2. 车牌很近,由于机芯的光轴畸变会导致车牌过大,算法无法识别
+ * 在以上这两种情况下,需要关闭变倍。是否要关闭变倍取决于现场情况,属于比较专业的配置
+ */
+ public int bZoomEnable;
+ /**
+ * 是否抓拍摩托车
+ */
+ public int bSnapMotorcycle;
+ /**
+ * 事件检测模式下,配置给算法,表示检测到事件发生后,多长时间开始报警,单位:秒,范围0-3600,无该字段不做处理
+ */
+ public int nDelayTime;
+ /**
+ * 规则特定的尺寸过滤器
+ */
+ public NET_CFG_SIZEFILTER_INFO stuSizeFileter;
+ /**
+ * 规则特定的尺寸过滤器是否有效
+ */
+ public int bSizeFileter;
+ /**
+ * 是否抓拍无牌车,true-抓拍无牌车 false-不抓拍无牌车
+ */
+ public int bSnapNoPlateMotor;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[4092];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_CAR_ATTRIBUTE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_CAR_ATTRIBUTE_INFO.java
new file mode 100644
index 0000000..00bc326
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_CAR_ATTRIBUTE_INFO.java
@@ -0,0 +1,64 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 车辆以图搜图时可选择的属性过滤条件
+ * @date 2022/11/21 17:53:18
+ */
+public class NET_TRAFFIC_CAR_ATTRIBUTE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 车身颜色的个数,最大值是32
+ */
+ public int nVehicleColorArrayNums;
+ /**
+ * 车身颜色,参考EM_OBJECT_COLOR_TYPE
+ */
+ public int[] emVehicleColorArray = new int[32];
+ /**
+ * 车辆类型的个数,最大值是32
+ */
+ public int nCategoryArrayNums;
+ /**
+ * 车辆类型,参考EM_NET_VEHICLE_TYPE
+ */
+ public int[] emCategoryArray = new int[32];
+ /**
+ * 车标
+ */
+ public byte[] szVehicleSign = new byte[64];
+ /**
+ * 车辆子品牌 需要通过映射表得到真正的子品牌 映射表详见开发手册
+ */
+ public int nSubBrand;
+ /**
+ * 车辆年款 需要通过映射表得到真正的年款 映射表详见开发手册
+ */
+ public int nBrandYear;
+ /**
+ * 是否有摆件, 0: 不限 1: 无 2: 有
+ */
+ public int nFurniture;
+ /**
+ * 是否有挂件, 0: 不限 1: 无 2: 有
+ */
+ public int nPendant;
+ /**
+ * 是否有年检标, 0: 不限 1: 无 2: 有
+ */
+ public int nAnnualInspection;
+ /**
+ * 是否有遮阳板, 0: 不限 1: 无 2: 有
+ */
+ public int nSunShade;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[256];
+
+ public NET_TRAFFIC_CAR_ATTRIBUTE_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_CROSSLANE_RULE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_CROSSLANE_RULE_INFO.java
new file mode 100644
index 0000000..0829843
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_CROSSLANE_RULE_INFO.java
@@ -0,0 +1,77 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib.DH_POINT;
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+import com.netsdk.lib.NetSDKLib.POINTCOORDINATE;
+/**
+ * @description 事件类型EVENT_IVS_TRAFFIC_CROSSLANE(违章变道事件) 对应的规则配置
+ * @author 119178
+ * @date 2021/3/11
+ */
+public class NET_TRAFFIC_CROSSLANE_RULE_INFO extends SdkStructure {
+ /**
+ * 检测区
+ */
+ public POINTCOORDINATE[] stuDetectRegion = (POINTCOORDINATE[])new POINTCOORDINATE().toArray(20);
+ /**
+ * 检测区顶点数
+ */
+ public int nDetectRegionPoint;
+ /**
+ * 车道编号 与场景中的车道号对应
+ */
+ public int nLaneNumber;
+ /**
+ * 起点,从起点到终点是正向行驶,反过来是逆行,点的坐标归一化到[0,8192)区间。
+ */
+ public DH_POINT stuDirectionStart;
+ /**
+ * 终点,从起点到终点是正向行驶,反过来是逆行,点的坐标归一化到[0,8192)区间。
+ */
+ public DH_POINT stuDirectionEnd;
+ /**
+ * 灵敏度,范围[1,10],灵敏度越高越容易检测
+ */
+ public int nSensitivity;
+ /**
+ * 是否使能区域内触发该规则, false-不使能,true-使能
+ */
+ public int bAreaTrigEnable;
+ /**
+ * 方案参数, false-普通变道(只要变道一次即可),true -抓连续变道(变道2次及以上)
+ */
+ public int bContinueCrossLaneEnable;
+ /**
+ * 变倍抓拍,违停球做规则判断时,默认会变倍
+ * 如下两种情况不适合变倍
+ * 1. 车速较快场合,变倍会导致跟踪不及时
+ * 2. 车牌很近,由于机芯的光轴畸变会导致车牌过大,算法无法识别
+ * 在以上这两种情况下,需要关闭变倍。是否要关闭变倍取决于现场情况,属于比较专业的配置
+ */
+ public int bZoomEnable;
+ /**
+ * 是否抓拍摩托车
+ */
+ public int bSnapMotorcycle;
+ /**
+ * 事件检测模式下,配置给算法,表示检测到事件发生后,多长时间开始报警,单位:秒,范围0-3600,无该字段不做处理
+ */
+ public int nDelayTime;
+ /**
+ * 规则特定的尺寸过滤器
+ */
+ public NET_CFG_SIZEFILTER_INFO stuSizeFileter;
+ /**
+ * 规则特定的尺寸过滤器是否有效
+ */
+ public int bSizeFileter;
+ /**
+ * 是否抓拍无牌车,true-抓拍无牌车 false-不抓拍无牌车
+ */
+ public int bSnapNoPlateMotor;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[4092];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_FLOWSTAT_INFO_DIR.java b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_FLOWSTAT_INFO_DIR.java
new file mode 100644
index 0000000..2ee04dc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_FLOWSTAT_INFO_DIR.java
@@ -0,0 +1,49 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+import java.io.UnsupportedEncodingException;
+import java.util.Arrays;
+
+/**
+ * @author : 260611
+ * @description : 车辆流量统计车辆行驶方向信息
+ * @since : Created in 2022/03/10 10:12
+ */
+
+public class NET_TRAFFIC_FLOWSTAT_INFO_DIR extends NetSDKLib.SdkStructure {
+ /**
+ * 行驶方向
+ */
+ public int emDrivingDir;
+ /**
+ * 上行地点
+ */
+ public byte[] szUpGoing = new byte[16];
+ /**
+ * 下行地点
+ */
+ public byte[] szDownGoing = new byte[16];
+ /**
+ * 保留字节
+ */
+ public byte[] reserved = new byte[32];
+
+ @Override
+ public String toString() {
+ try {
+ return "NET_TRAFFIC_FLOWSTAT_INFO_DIR{" +
+ "emDrivingDir=" + emDrivingDir +
+ ", szUpGoing UTF-8=" + new String(szUpGoing,"UTF-8").trim() +
+ ", szUpGoing GBK=" + new String(szUpGoing,"GBK").trim() +
+ ", szDownGoing UTF-8=" + new String(szDownGoing,"UTF-8").trim() +
+ ", szDownGoing GBK=" + new String(szDownGoing,"GBK").trim() +
+ '}';
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_FLOWSTAT_RULE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_FLOWSTAT_RULE_INFO.java
new file mode 100644
index 0000000..2c5f794
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_FLOWSTAT_RULE_INFO.java
@@ -0,0 +1,42 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.NetSDKLib.DH_POINT;
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+import com.netsdk.lib.NetSDKLib.POINTCOORDINATE;
+/**
+ * @description 事件类型EVENT_IVS_TRAFFIC_FLOWSTATE(交通流量统计事件) 对应的规则配置
+ * @author 119178
+ * @date 2021/3/11
+ */
+public class NET_TRAFFIC_FLOWSTAT_RULE_INFO extends SdkStructure {
+ /**
+ * 检测区
+ */
+ public POINTCOORDINATE[] stuDetectRegion = (POINTCOORDINATE[])new POINTCOORDINATE().toArray(20);
+ /**
+ * 检测区顶点数
+ */
+ public int nDetectRegionPoint;
+ /**
+ * 规则检测线顶点数
+ */
+ public int nDetectLineNum;
+ /**
+ * 规则检测线
+ */
+ public DH_POINT[] DetectLine = (DH_POINT[])new DH_POINT().toArray(NetSDKLib.NET_MAX_DETECT_LINE_NUM);
+ /**
+ * 车道编号 与场景中的车道号对应
+ */
+ public int nLaneNumber;
+ /**
+ * 统计周期,单位:分钟
+ */
+ public int nPeriod;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[4096];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_FLOW_STAT.java b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_FLOW_STAT.java
new file mode 100644
index 0000000..12cba7d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_FLOW_STAT.java
@@ -0,0 +1,89 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.EM_DETECT_SENSOR_TYPE;
+import com.netsdk.lib.enumeration.EM_TRAFFIC_FLOW_STATUS;
+import com.netsdk.lib.enumeration.EM_VIRTUAL_COIL_OCCUPANCY_STATUS;
+
+/**
+ * @author : 47040
+ * @since : Created in 2020/12/17 11:38
+ */
+public class NET_TRAFFIC_FLOW_STAT extends NetSDKLib.SdkStructure {
+ /**
+ * 物理车道号
+ */
+ public int nLane;
+ /**
+ * 自定义车道号
+ */
+ public int nRoadwayNumber;
+ /**
+ * 流量状态 枚举 {@link EM_TRAFFIC_FLOW_STATUS}
+ */
+ public int emStatus;
+ /**
+ * 车头虚拟线圈状态, 即车进线圈 枚举 {@link EM_VIRTUAL_COIL_OCCUPANCY_STATUS}
+ */
+ public int emHeadCoil;
+ /**
+ * 车尾虚拟线圈状态, 即车出线圈 枚举 {@link EM_VIRTUAL_COIL_OCCUPANCY_STATUS}
+ */
+ public int emTailCoil;
+ /**
+ * 车道平均速度(单位:km/h)
+ */
+ public int nSpeed;
+ /**
+ * 排队长度(单位:cm)
+ */
+ public int nQueueLen;
+ /**
+ * 排队车辆数
+ */
+ public int nCarsInQueue;
+ /**
+ * 探测物体的传感器类型 {@link EM_DETECT_SENSOR_TYPE}
+ */
+ public int emSensorType;
+ /**
+ * 车头间距,相邻车辆之间的距离,单位米/辆
+ */
+ public double dbSpaceHeadway;
+ /**
+ * 车头时距,单位秒/辆
+ */
+ public double dbTimeHeadWay;
+ /**
+ * 空间占有率,即按百分率计量的车辆长度总和除以时间间隔内车辆平均行驶距离
+ */
+ public double dbSpaceOccRatio;
+ /**
+ * 车道中的所有车辆的数量,即车流量
+ */
+ public int nCarVehicles;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserverd = new byte[228];
+
+ @Override
+ public String toString() {
+ return "NET_TRAFFIC_FLOW_STAT{" +
+ "nLane=" + nLane +
+ ", nRoadwayNumber=" + nRoadwayNumber +
+ ", emStatus=" + emStatus +
+ ", emHeadCoil=" + emHeadCoil +
+ ", emTailCoil=" + emTailCoil +
+ ", nSpeed=" + nSpeed +
+ ", nQueueLen=" + nQueueLen +
+ ", nCarsInQueue=" + nCarsInQueue +
+ ", emSensorType=" + emSensorType +
+ ", dbSpaceHeadway=" + dbSpaceHeadway +
+ ", dbTimeHeadWay=" + dbTimeHeadWay +
+ ", dbSpaceOccRatio=" + dbSpaceOccRatio +
+ ", nCarVehicles=" + nCarVehicles +
+ '}';
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_FLOW_STATE.java b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_FLOW_STATE.java
new file mode 100644
index 0000000..b371be1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_FLOW_STATE.java
@@ -0,0 +1,396 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+import java.util.Arrays;
+
+/**
+ * @author : 260611
+ * @description : NET_TRAFFIC_FLOW_STATE
+ * @since : Created in 2022/03/10 10:12
+ */
+
+public class NET_TRAFFIC_FLOW_STATE extends NetSDKLib.SdkStructure {
+ /**
+ * 车道号
+ */
+ public int nLane;
+ /**
+ * 状态值 若emJamState字段为有效值(不为 JAM_STATUS_UNKNOW) ,则dwState字段无效
+ */
+ public int dwState;
+ /**
+ * 流量值, 单位: 辆
+ */
+ public int dwFlow;
+ /**
+ * 流量值对应的统计时间, 单位:分钟。与dwPeriodByMili一起使用。
+ */
+ public int dwPeriod;
+ /**
+ * 车道方向信息
+ */
+ public NET_TRAFFIC_FLOWSTAT_INFO_DIR stTrafficFlowDir = new NET_TRAFFIC_FLOWSTAT_INFO_DIR();
+ /**
+ * 通过车辆总数
+ */
+ public int nVehicles;
+ /**
+ * 平均车速,单位km/h
+ */
+ public float fAverageSpeed;
+ /**
+ * 平均车长,单位米
+ */
+ public float fAverageLength;
+ /**
+ * 时间占有率,即单位时间内通过断面的车辆所用时间的总和占单位时间的比例
+ */
+ public float fTimeOccupyRatio;
+ /**
+ * 空间占有率,即按百分率计量的车辆长度总和除以时间间隔内车辆平均行驶距离
+ */
+ public float fSpaceOccupyRatio;
+ /**
+ * 车头间距,相邻车辆之间的距离,单位米/辆
+ */
+ public float fSpaceHeadway;
+ /**
+ * 车头时距,单位秒/辆
+ */
+ public float fTimeHeadway;
+ /**
+ * 车辆密度,每公里的车辆数,单位辆/km
+ */
+ public float fDensity;
+ /**
+ * 超速车辆数
+ */
+ public int nOverSpeedVehicles;
+ /**
+ * 低速车辆数
+ */
+ public int nUnderSpeedVehicles;
+ /**
+ * 大车交通量(9米<车长<12米),辆/单位时间
+ */
+ public int nLargeVehicles;
+ /**
+ * 中型车交通量(6米<车长<9米),辆/单位时间
+ */
+ public int nMediumVehicles;
+ /**
+ * 小车交通量(4米<车长<6米),辆/单位时间,
+ */
+ public int nSmallVehicles;
+ /**
+ * 摩托交通量(微型车,车长<4米),辆/单位时间,
+ */
+ public int nMotoVehicles;
+ /**
+ * 超长交通量(车长>=12米),辆/单位时间,
+ */
+ public int nLongVehicles;
+ /**
+ * 交通量, 辆/单位时间, 某时间间隔通过车道、道路或其他通道上一点的车辆数,常以1小时计,
+ */
+ public int nVolume;
+ /**
+ * 流率小车当量,辆/小时, 车辆通过车道、道路某一断面或某一路段的当量小时流量
+ */
+ public int nFlowRate;
+ /**
+ * 排队长度,单位:米, 从信号交叉口停车线到上游排队车辆末端之间的距离(建议废掉 改用dBackOfQueue下面)
+ */
+ public int nBackOfQueue;
+ /**
+ * 旅行时间,单位:秒, 车辆通过某一条道路所用时间。包括所有停车延误
+ */
+ public int nTravelTime;
+ /**
+ * 延误,单位:秒,驾驶员、乘客或行人花费的额外的行程时间
+ */
+ public int nDelay;
+ /**
+ * 车道方向,详见NET_ROAD_DIRECTION
+ */
+ public byte[] byDirection = new byte[16];
+ /**
+ * 车道行驶方向个数
+ */
+ public byte byDirectionNum;
+ /**
+ * 字节对齐
+ */
+ public byte[] reserved1 = new byte[3];
+ /**
+ * 道路拥挤状况 若此字段为有效值(不为 JAM_STATUS_UNKNOW) ,则以此字段为准, dwState字段无效
+ */
+ public int emJamState;
+ /**
+ * 客车交通量(辆/单位时间)
+ */
+ public int nPassengerCarVehicles;
+ /**
+ * 大货车交通量(辆/单位时间)
+ */
+ public int nLargeTruckVehicles;
+ /**
+ * 中货车交通量(辆/单位时间)
+ */
+ public int nMidTruckVehicles;
+ /**
+ * 轿车交通量(辆/单位时间)
+ */
+ public int nSaloonCarVehicles;
+ /**
+ * 面包车交通量(辆/单位时间)
+ */
+ public int nMicrobusVehicles;
+ /**
+ * 小货车交通量(辆/单位时间)
+ */
+ public int nMicroTruckVehicles;
+ /**
+ * 三轮车交通量(辆/单位时间)
+ */
+ public int nTricycleVehicles;
+ /**
+ * 摩托车交通量(辆/单位时间)
+ */
+ public int nMotorcycleVehicles;
+ /**
+ * 行人交通量(辆/单位时间)
+ */
+ public int nPasserbyVehicles;
+ /**
+ * 道路等级
+ */
+ public int emRank;
+ /**
+ * 流量状态
+ */
+ public int nState;
+ /**
+ * 车头虚拟线圈是否被占用 TURE表示占用,FALSE表示未占用
+ */
+ public int bOccupyHeadCoil;
+ /**
+ * 车尾虚拟线圈是否被占用 TURE表示占用,FALSE表示未占用
+ */
+ public int bOccupyTailCoil;
+ /**
+ * 流量数据是否有效 TURE表示有效,FALSE表示无效
+ */
+ public int bStatistics;
+ /**
+ * 左转车辆总数,单位:分钟
+ */
+ public int nLeftVehicles;
+ /**
+ * 右转车辆总数,单位:分钟
+ */
+ public int nRightVehicles;
+ /**
+ * 直行车辆总数,单位:分钟
+ */
+ public int nStraightVehicles;
+ /**
+ * 掉头车辆总数,单位:分钟
+ */
+ public int nUTurnVehicles;
+ /**
+ * 每个车道的最后一辆车坐标,采用8192坐标系
+ */
+ public NetSDKLib.NET_POINT stQueueEnd = new NetSDKLib.NET_POINT();
+ /**
+ * 排队长度,单位:米, 从信号交叉口停车线到上游排队车辆末端之间的距离
+ */
+ public double dBackOfQueue;
+ /**
+ * 流量值的毫秒时间,值不超过60000,和dwPeriod一起使用,流量值总时间:dwPeriod*60*1000+dwPeriodByMili(单位:毫秒)
+ */
+ public int dwPeriodByMili;
+ /**
+ * 公交车交通量(辆/单位时间)
+ */
+ public int nBusVehicles;
+ /**
+ * MPV交通量(辆/单位时间)
+ */
+ public int nMPVVehicles;
+ /**
+ * 中客车交通量(辆/单位时间)
+ */
+ public int nMidPassengerCarVehicles;
+ /**
+ * 微型轿车交通量(辆/单位时间)
+ */
+ public int nMiniCarriageVehicles;
+ /**
+ * 油罐车交通量(辆/单位时间)
+ */
+ public int nOilTankTruckVehicles;
+ /**
+ * 皮卡车交通量(辆/单位时间)
+ */
+ public int nPickupVehicles;
+ /**
+ * SUV交通量(辆/单位时间)
+ */
+ public int nSUVVehicles;
+ /**
+ * SUV或者MPV交通量(辆/单位时间)
+ */
+ public int nSUVorMPVVehicles;
+ /**
+ * 槽罐车交通量(辆/单位时间)
+ */
+ public int nTankCarVehicles;
+ /**
+ * 未知车辆交通量(辆/单位时间)
+ */
+ public int nUnknownVehicles;
+ /**
+ * 车道流量信息属性
+ */
+ public int emCustomFlowAttribute;
+ /**
+ * 道路空闲长度,例:如设定路段长度为100米,实际检测到排队长度为30米,那么道路空闲长度就为70米,单位:米
+ */
+ public int nRoadFreeLength;
+ /**
+ * 溢出状态。例:如给当前路段设定允许排队长度阀值,实际排队长度超过阀值后就判定当前时刻该路段有溢出。
+ */
+ public int emOverflowState;
+ /**
+ * / 排队车辆数,单位:辆
+ */
+ public int nQueueVehicleNum;
+ /**
+ * / 空间占有率统计个数
+ */
+ public int nSpaceOccupyRatioMultiCount;
+ /**
+ * / 空间占有率统计信息
+ */
+ public NET_SPACE_OCCUPY_RATIO_MULTI[] stuSpaceOccupyRatioMulti = new NET_SPACE_OCCUPY_RATIO_MULTI[32];
+ /**
+ * / 停车次数,周期内该车道内所有目标的总停车次数,单位:次
+ */
+ public int nTotalStopNum;
+ /**
+ * / 延误时间,周期内该车道内所有目标的总延误时间,单位:毫秒
+ */
+ public int nTotalDelayTime;
+ /**
+ * / 目标总数量,周期内进入该车道内所有目标总数量,单位 辆
+ */
+ public int nTotalNum;
+ /**
+ * / 平均停车次数,周期内该车道所有目标的平均停车次数。单位:次
+ */
+ public float fAverageStopNum;
+ /**
+ * / 平均延误时间,周期内该车道所有目标的平均延误时间。单位:毫秒
+ */
+ public float fAverageDelayTime;
+ /**
+ * / 流量饱和度,该车道内的流量饱和度
+ */
+ public float fFlowSaturationRatio;
+ /**
+ * / 最大排队长度,周期内最大排队长度,单位:米
+ */
+ public float fMaxQueueLen;
+ /**
+ * / 排队开始位置,排队时队首距设备的位置,以设备方向为正,负数表示队首在设备后方,单位:米
+ */
+ public float fQueueStartingPoint;
+ /**
+ * / 排队结束位置,排队时队尾距设备的位置,以设备方向为正,负数表示队尾在设备后方,单位:米
+ */
+ public float fQueueFinishingPoint;
+ /**
+ * / 空间占有目标个数,即区域车辆数,该车道内指定区域的车辆数目,支持车道内多区域统计,不同区域车辆数使用|符号分隔。
+ */
+ public byte[] szSpaceOccupyNum = new byte[64];
+ /**
+ * / 云台预置点,球机预置点必大于0
+ */
+ public int nPresetID;
+ /**
+ * / 保留字节
+ */
+ public byte[] reserved = new byte[88];
+
+ @Override
+ public String toString() {
+ return "NET_TRAFFIC_FLOW_STATE{" +
+ "nLane=" + nLane +
+ ", dwState=" + dwState +
+ ", dwFlow=" + dwFlow +
+ ", dwPeriod=" + dwPeriod +
+ ", stTrafficFlowDir=" + stTrafficFlowDir.toString() +
+ ", nVehicles=" + nVehicles +
+ ", fAverageSpeed=" + fAverageSpeed +
+ ", fAverageLength=" + fAverageLength +
+ ", fTimeOccupyRatio=" + fTimeOccupyRatio +
+ ", fSpaceOccupyRatio=" + fSpaceOccupyRatio +
+ ", fSpaceHeadway=" + fSpaceHeadway +
+ ", fTimeHeadway=" + fTimeHeadway +
+ ", fDensity=" + fDensity +
+ ", nOverSpeedVehicles=" + nOverSpeedVehicles +
+ ", nUnderSpeedVehicles=" + nUnderSpeedVehicles +
+ ", nLargeVehicles=" + nLargeVehicles +
+ ", nMediumVehicles=" + nMediumVehicles +
+ ", nSmallVehicles=" + nSmallVehicles +
+ ", nMotoVehicles=" + nMotoVehicles +
+ ", nLongVehicles=" + nLongVehicles +
+ ", nVolume=" + nVolume +
+ ", nFlowRate=" + nFlowRate +
+ ", nBackOfQueue=" + nBackOfQueue +
+ ", nTravelTime=" + nTravelTime +
+ ", nDelay=" + nDelay +
+ ", byDirection=" + Arrays.toString(byDirection) +
+ ", byDirectionNum=" + byDirectionNum +
+ ", emJamState=" + emJamState +
+ ", nPassengerCarVehicles=" + nPassengerCarVehicles +
+ ", nLargeTruckVehicles=" + nLargeTruckVehicles +
+ ", nMidTruckVehicles=" + nMidTruckVehicles +
+ ", nSaloonCarVehicles=" + nSaloonCarVehicles +
+ ", nMicrobusVehicles=" + nMicrobusVehicles +
+ ", nMicroTruckVehicles=" + nMicroTruckVehicles +
+ ", nTricycleVehicles=" + nTricycleVehicles +
+ ", nMotorcycleVehicles=" + nMotorcycleVehicles +
+ ", nPasserbyVehicles=" + nPasserbyVehicles +
+ ", emRank=" + emRank +
+ ", nState=" + nState +
+ ", bOccupyHeadCoil=" + bOccupyHeadCoil +
+ ", bOccupyTailCoil=" + bOccupyTailCoil +
+ ", bStatistics=" + bStatistics +
+ ", nLeftVehicles=" + nLeftVehicles +
+ ", nRightVehicles=" + nRightVehicles +
+ ", nStraightVehicles=" + nStraightVehicles +
+ ", nUTurnVehicles=" + nUTurnVehicles +
+ ", stQueueEnd=" + stQueueEnd.toString() +
+ ", dBackOfQueue=" + dBackOfQueue +
+ ", dwPeriodByMili=" + dwPeriodByMili +
+ ", nBusVehicles=" + nBusVehicles +
+ ", nMPVVehicles=" + nMPVVehicles +
+ ", nMidPassengerCarVehicles=" + nMidPassengerCarVehicles +
+ ", nMiniCarriageVehicles=" + nMiniCarriageVehicles +
+ ", nOilTankTruckVehicles=" + nOilTankTruckVehicles +
+ ", nPickupVehicles=" + nPickupVehicles +
+ ", nSUVVehicles=" + nSUVVehicles +
+ ", nSUVorMPVVehicles=" + nSUVorMPVVehicles +
+ ", nTankCarVehicles=" + nTankCarVehicles +
+ ", nUnknownVehicles=" + nUnknownVehicles +
+ ", emCustomFlowAttribute=" + emCustomFlowAttribute +
+ ", nRoadFreeLength=" + nRoadFreeLength +
+ ", emOverflowState=" + emOverflowState +
+ '}';
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_JAM_RULE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_JAM_RULE_INFO.java
new file mode 100644
index 0000000..d1c1b32
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_JAM_RULE_INFO.java
@@ -0,0 +1,76 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+import com.netsdk.lib.NetSDKLib.POINTCOORDINATE;
+/**
+ * @description 事件类型EVENT_IVS_TRAFFICJAM(交通拥堵事件) 对应的规则配置
+ * @author 119178
+ * @date 2021/3/11
+ */
+public class NET_TRAFFIC_JAM_RULE_INFO extends SdkStructure {
+ /**
+ * 检测区
+ */
+ public POINTCOORDINATE[] stuDetectRegion = (POINTCOORDINATE[])new POINTCOORDINATE().toArray(20);
+ /**
+ * 检测区顶点数
+ */
+ public int nDetectRegionPoint;
+ /**
+ * 占线限值起始值(上限),拥堵长度占车道比例限值1-100
+ */
+ public int nJamLineMargin;
+ /**
+ * 占线限值终值(下限),必须比JamLineMargin小,两值的差推荐大于10,不能相等1-99
+ */
+ public int nJamLineMarginEnd;
+ /**
+ * 车道编号 与场景中的车道号对应
+ */
+ public int nLaneNumber;
+ /**
+ * 检测到报警发生到开始上报的时间,单位:秒 范围1~65535
+ */
+ public int nDelay;
+ /**
+ * 报警间隔时间,单位:秒 范围1~65535
+ */
+ public int nInterval;
+ /**
+ * 灵敏度,范围[1,10],灵敏度越高越容易检测
+ */
+ public int nSensitivity;
+ /**
+ * 上报次数 1~255
+ */
+ public int nReportTimes;
+ /**
+ * 路口车辆数目阈值,大于0:只有当前路口车辆数目大于此值时才会判定为拥堵;等于0:对车辆数目没要求
+ */
+ public int nVehicleNumberThreshold;
+ /**
+ * 变倍抓拍,违停球做规则判断时,默认会变倍
+ * 如下两种情况不适合变倍
+ * 1. 车速较快场合,变倍会导致跟踪不及时
+ * 2. 车牌很近,由于机芯的光轴畸变会导致车牌过大,算法无法识别
+ * 在以上这两种情况下,需要关闭变倍。是否要关闭变倍取决于现场情况,属于比较专业的配置
+ */
+ public int bZoomEnable;
+ /**
+ * 规则特定的尺寸过滤器
+ */
+ public NET_CFG_SIZEFILTER_INFO stuSizeFileter;
+ /**
+ * 规则特定的尺寸过滤器是否有效
+ */
+ public int bSizeFileter;
+ /**
+ * 不连续时间阈值(单位:秒):若超过该时间阈值为不拥堵的情况,将对报警计数清零 0-255
+ */
+ public int nDiscontinuousTimeThreshold;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[4092];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_LATTICE_SCREEN_ALARM_NOTICE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_LATTICE_SCREEN_ALARM_NOTICE_INFO.java
new file mode 100644
index 0000000..c16e25b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_LATTICE_SCREEN_ALARM_NOTICE_INFO.java
@@ -0,0 +1,15 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description 点阵屏报警提示显示信息
+ * @date 2021/8/9 16:38
+ */
+public class NET_TRAFFIC_LATTICE_SCREEN_ALARM_NOTICE_INFO extends NetSDKLib.SdkStructure {
+ public byte[] szNoHelmet = new byte[128]; // 未带头盔屏幕提示信息
+ public byte[] szNonMotorOverload = new byte[128]; // 非机动车超载提示信息
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_LATTICE_SCREEN_LOGO_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_LATTICE_SCREEN_LOGO_INFO.java
new file mode 100644
index 0000000..bb1b84f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_LATTICE_SCREEN_LOGO_INFO.java
@@ -0,0 +1,15 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description
+ * @date 2021/8/9 16:32
+ */
+public class NET_TRAFFIC_LATTICE_SCREEN_LOGO_INFO extends NetSDKLib.SdkStructure {
+ public int emLogoType; /** LOGO类型 {@link com.netsdk.lib.enumeration.NET_EM_LATTICE_SCREEN_LOGO_TYPE} */
+ public byte[] szContent = new byte[128]; // emLogoType为文字时,为文字内容;emLogoType为图片时,为图片名称
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_LIGHT_STATE.java b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_LIGHT_STATE.java
new file mode 100644
index 0000000..8bf1da6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_LIGHT_STATE.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.NET_TRAFFIC_LIGHT_STATUS;
+
+/**
+ * 信号灯指示灯状态
+ *
+ * @author : 47040
+ * @since : Created in 2020/8/29 17:01
+ */
+public class NET_TRAFFIC_LIGHT_STATE extends NetSDKLib.SdkStructure {
+ /**
+ * 直行信号灯状态 {@link NET_TRAFFIC_LIGHT_STATUS}
+ */
+ public int emStraightLightInfo;
+ /**
+ * 左转信号灯状态 {@link NET_TRAFFIC_LIGHT_STATUS}
+ */
+ public int emTurnLeftLightInfo;
+ /**
+ * 右转信号灯状态 {@link NET_TRAFFIC_LIGHT_STATUS}
+ */
+ public int emTurnRightLightInfo;
+ /**
+ * 调头信号灯状态 {@link NET_TRAFFIC_LIGHT_STATUS}
+ */
+ public int emUTurnLightInfo;
+ /**
+ * 预留
+ */
+ public byte[] byReserved = new byte[64];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_OVERSPEED_RULE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_OVERSPEED_RULE_INFO.java
new file mode 100644
index 0000000..ee45bdf
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_OVERSPEED_RULE_INFO.java
@@ -0,0 +1,68 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+
+/**
+ * @description 事件类型EVENT_IVS_TRAFFIC_OVERSPEED(超速事件) 对应的规则配置
+ * @author 119178
+ * @date 2021/3/11
+ */
+public class NET_TRAFFIC_OVERSPEED_RULE_INFO extends SdkStructure {
+ /**
+ * 限速范围
+ */
+ public NET_SPEED_LIMIT stuSpeedLimit;
+ /**
+ * 最短触发时间,单位:秒
+ */
+ public int nMinDuration;
+ /**
+ * 是否抓拍摩托车
+ */
+ public int bSnapMotorcycle;
+ /**
+ * 黄牌车限速范围,范围0~255km/h
+ */
+ public NET_SPEED_LIMIT stuYellowSpeedLimit;
+ /**
+ * 车道编号 与场景中的车道号对应
+ */
+ public int nLaneNumber;
+ /**
+ * 是否启用大小车限速,True-使用下面具体的大小车限速字段,False-使用SpeedLimit字段,该字段缺省时默认False,即使用通用字段SpeedLimit
+ */
+ public int bSpeedLimitForSize;
+ /**
+ * 小型车辆速度下限和上限,0~255km/h,启用bSpeedLimitForSize有效,作为普通车辆限速
+ */
+ public NET_SPEED_LIMIT stuSmallCarSpeedLimit;
+ /**
+ * 大型车辆速度下限和上限,0~255km/h,启用bSpeedLimitForSize有效,作为大型车辆限速
+ */
+ public NET_SPEED_LIMIT stuBigCarSpeedLimit;
+ /**
+ * 小车限高速宽限值,单位:km/h,不启用大小车限速时作为普通车辆高速宽限值,启用bSpeedLimitForSize时作为小车高速宽限值
+ */
+ public NET_SPEED_LIMIT stuOverSpeedMargin;
+ /**
+ * 大车限高速宽限值,单位:km/h,不启用大小车限速时作为普通车辆高速宽限值,启用bSpeedLimitForSize时作为大型车辆高速宽限值
+ */
+ public NET_SPEED_LIMIT stuBigCarOverSpeedMargin;
+ /**
+ * 小车限低速宽限值,单位:km/h,不启用大小车限速时作为普通车辆低速宽限值,启用bSpeedLimitForSize时,作为小车低速宽限值
+ */
+ public NET_SPEED_LIMIT stuUnderSpeedMargin;
+ /**
+ * 大车限低速宽限值,单位:km/h,不启用大小车限速时作为普通车辆低速宽限值,启用bSpeedLimitForSize时作为大型车辆高速宽限值
+ */
+ public NET_SPEED_LIMIT stuBigCarUnderSpeedMargin;
+ /**
+ * 语音播报使能
+ */
+ public int bVoiceBroadcastEnable;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[4092];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_OVERYELLOWLINE_RULE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_OVERYELLOWLINE_RULE_INFO.java
new file mode 100644
index 0000000..6a5215b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_OVERYELLOWLINE_RULE_INFO.java
@@ -0,0 +1,44 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+import com.netsdk.lib.NetSDKLib.POINTCOORDINATE;
+/**
+ * @description 事件类型EVENT_IVS_TRAFFIC_OVERYELLOWLINE(压黄线事件) 对应的规则配置
+ * @author 119178
+ * @date 2021/3/11
+ */
+public class NET_TRAFFIC_OVERYELLOWLINE_RULE_INFO extends SdkStructure {
+ /**
+ * 检测区
+ */
+ public POINTCOORDINATE[] stuDetectRegion = (POINTCOORDINATE[])new POINTCOORDINATE().toArray(20);
+ /**
+ * 检测区顶点数
+ */
+ public int nDetectRegionPoint;
+ /**
+ * 车道编号 与场景中的车道号对应
+ */
+ public int nLaneNumber;
+ /**
+ * 是否使能区域内触发该规则, false-不使能,true-使能
+ */
+ public int bAreaTrigEnable;
+ /**
+ * 灵敏度,范围[1,10],灵敏度越高越容易检测
+ */
+ public int nSensitivity;
+ /**
+ * 是否抓拍摩托车
+ */
+ public int bSnapMotorcycle;
+ /**
+ * 事件检测模式下,配置给算法,表示检测到事件发生后,多长时间开始报警,单位:秒,范围0-3600,无该字段不做处理
+ */
+ public int nDelayTime;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[4096];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_PARKING_RULE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_PARKING_RULE_INFO.java
new file mode 100644
index 0000000..84b97c7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_PARKING_RULE_INFO.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib.POINTCOORDINATE;
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+
+public class NET_TRAFFIC_PARKING_RULE_INFO extends SdkStructure {
+ /**
+ * 检测区域
+ */
+ public POINTCOORDINATE[] stuDetectRegion = (POINTCOORDINATE[]) new POINTCOORDINATE().toArray(20);
+ /**
+ * 检测区域顶点数
+ */
+ public int nDetectRegionPoint;
+ public int nLaneNumber; // 车道编号 与场景中的车道号对应
+ public int nDelay; // 检测到报警发生到开始上报的时间,单位:秒 范围1~65535
+ public int nReportTimes; // 上报次数 1~255
+ public int nParkingAllowedTime; // 允许停车时间 单位:秒,范围1~65535
+ public int nSensitivity; // 灵敏度,范围[1,10],灵敏度越高越容易检测
+ public int nParkingNumThreshold; // 停车数阈值,画面中停车数量大于此值时不报警 取值1-128
+ public int bZoomEnable; // 变倍抓拍,违停球做规则判断时,默认会变倍
+ public int bSnapMotorcycle; // 是否抓拍摩托车
+ public int nDectRegionNumber; // 检测区域号 与场景中的检测区域编号对应
+ public int nShadeSnap; // 遮挡抓拍,默认为0 0:不支持1:支持
+ public int nControlMoreAlerts; // 是否开启抑制同一个目标重复多报功能,0:不开启该功能,1:开启功能
+ public int nReduceUnderreporting; // 是否开启减少id跳变导致的漏报功能,0:不开启该功能,1:开启功能
+ public byte[] byReserved = new byte[4096]; // 保留字节
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_PEDESTRAIN_RULE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_PEDESTRAIN_RULE_INFO.java
new file mode 100644
index 0000000..4a45edb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_PEDESTRAIN_RULE_INFO.java
@@ -0,0 +1,64 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+import com.netsdk.lib.NetSDKLib.POINTCOORDINATE;
+/**
+ * @description 事件类型EVENT_IVS_TRAFFIC_PEDESTRAIN(交通行人事件) 对应的规则配置
+ * @author 119178
+ * @date 2021/3/11
+ */
+public class NET_TRAFFIC_PEDESTRAIN_RULE_INFO extends SdkStructure {
+ /**
+ * 检测区
+ */
+ public POINTCOORDINATE[] stuDetectRegion = (POINTCOORDINATE[])new POINTCOORDINATE().toArray(20);
+ /**
+ * 检测区顶点数
+ */
+ public int nDetectRegionPoint;
+ /**
+ * 车道编号 与场景中的车道号对应
+ */
+ public int nLaneNumber;
+ /**
+ * 最短触发时间,单位:秒
+ */
+ public int nMinDuration;
+ /**
+ * 报警间隔时间,单位:秒
+ */
+ public int nInterval;
+ /**
+ * 是否抓拍摩托车
+ */
+ public int bSnapMotorcycle;
+ /**
+ * 变倍抓拍,违停球做规则判断时,默认会变倍
+ * 如下两种情况不适合变倍
+ * 1. 车速较快场合,变倍会导致跟踪不及时
+ * 2. 车牌很近,由于机芯的光轴畸变会导致车牌过大,算法无法识别
+ * 在以上这两种情况下,需要关闭变倍。是否要关闭变倍取决于现场情况,属于比较专业的配置
+ */
+ public int bZoomEnable;
+ /**
+ * 重复报警时间,无该字段不做处理
+ */
+ public int nRepeatAlarmTime;
+ /**
+ * 抓拍目标类型,默认抓拍行人,后续可做扩展.无该字段不做处理
+ */
+ public int nSnapObjectType;
+ /**
+ * 检测到行人后多少时间开始报警。单位:秒,范围0-3600.无该字段不做处理
+ */
+ public int nDelayTime;
+ /**
+ * 灵敏度,范围1~100 ,配置0即为默认值,灵敏度越大算法检测越灵敏
+ */
+ public int nSensitivity;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[4096];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_RETROGRADE_RULE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_RETROGRADE_RULE_INFO.java
new file mode 100644
index 0000000..4657c61
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_RETROGRADE_RULE_INFO.java
@@ -0,0 +1,42 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib.DH_POINT;
+import com.netsdk.lib.NetSDKLib.POINTCOORDINATE;
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+
+public class NET_TRAFFIC_RETROGRADE_RULE_INFO extends SdkStructure {
+ /**
+ * 检测区域
+ */
+ public POINTCOORDINATE[] stuDetectRegion = (POINTCOORDINATE[]) new POINTCOORDINATE().toArray(20);
+ /**
+ * 检测区域顶点数
+ */
+ public int nDetectRegionPoint;
+ public byte[] byReserved1 = new byte[4]; // 字节对齐
+ /**
+ * 起点,从起点到终点是正向行驶,反过来是逆行,点的坐标归一化到[0,8192)区间。
+ */
+ public DH_POINT stuDirectionStart;
+ /**
+ * 终点,从起点到终点是正向行驶,反过来是逆行,点的坐标归一化到[0,8192)区间。
+ */
+ public DH_POINT stuDirectionEnd;
+ public int nMinDuration; // 最短触发时间,单位:秒
+ public int nLaneNumber; // 车道编号 与场景中的车道号对应
+ public int bLegal; // 逆行是否违章
+ public int nPositionDistinctness; // 抓拍位置变化区分度
+ public int nSensitivity; // 灵敏度,值越小灵敏度越低。取决于方向夹角,取值1-10
+ public int bZoomEnable; // 变倍抓拍,违停球做规则判断时,默认会变倍
+ public int bSnapMotorcycle; // 是否抓拍摩托车
+ public int nSnapNonMotor; // 是否抓拍非机动车
+ public int nSnapNoPlateMotor; // 是否抓拍无牌机动车
+ public int emSnapPlateMotor; // 是否抓拍机动车(NET_EM_SNAP_PLATEMOTOR_TYPE)
+ public int nSnapBicycle; // 是否抓拍自行车
+ public int nDurationTime; // 事件检测模式下,逆行时间超过这个值后开始报警,单位:秒,范围0-3600
+ public NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
+ public int bSizeFileter; // 规则特定的尺寸过滤器是否有效
+ public int nReverseDisplacement; // 逆行位移,默认1024坐标系, 范围是1-1023 单位是像素, 若无该字段或该字段配置为0时,算法设置默认值
+ public byte[] byReserved = new byte[4096]; // 保留字节
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_ROAD_BLOCK_RULE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_ROAD_BLOCK_RULE_INFO.java
new file mode 100644
index 0000000..54e9eda
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_ROAD_BLOCK_RULE_INFO.java
@@ -0,0 +1,49 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+import com.netsdk.lib.NetSDKLib.POINTCOORDINATE;
+/**
+ * @description 事件类型EVENT_IVS_TRAFFIC_ROAD_BLOCK(交通路障检测事件) 对应的规则配置
+ * @author 119178
+ * @date 2021/3/11
+ */
+public class NET_TRAFFIC_ROAD_BLOCK_RULE_INFO extends SdkStructure {
+ /**
+ * 检测区
+ */
+ public POINTCOORDINATE[] stuDetectRegion = (POINTCOORDINATE[])new POINTCOORDINATE().toArray(20);
+ /**
+ * 检测区顶点数
+ */
+ public int nDetectRegionPoint;
+ /**
+ * 最短持续时间,单位:秒 0~65535
+ */
+ public int nMinDuration;
+ /**
+ * 灵敏度,范围[1,10],灵敏度越高越容易检测
+ */
+ public int nSensitivity;
+ /**
+ * 车道编号 与场景中的车道号对应
+ */
+ public int nLaneNumber;
+ /**
+ * 变倍抓拍,违停球做规则判断时,默认会变倍。有两种情况不适合变倍
+ * 1.车速较快场合,变倍会导致跟踪不及时
+ * 2.车牌很近,由于机芯的光轴畸变会导致车牌过大,算法无法识别
+ * 在以上这两种情况下,需要关闭变倍。注意是否要关闭变倍取决于现场情况,属于比较专业的配置,只对Web或者调试工具开放该选项
+ * true开启变倍,false不变倍
+ * web上默认勾选
+ */
+ public int bZoomEnable;
+ /**
+ * 重复报警时间,单位:秒,范围0-3600.无该字段时,不做处理
+ */
+ public int nRepeatAlarmTime;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[4096];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_ROAD_CONSTRUCTION_RULE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_ROAD_CONSTRUCTION_RULE_INFO.java
new file mode 100644
index 0000000..908d3dd
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_ROAD_CONSTRUCTION_RULE_INFO.java
@@ -0,0 +1,49 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+import com.netsdk.lib.NetSDKLib.POINTCOORDINATE;
+/**
+ * @description 事件类型EVENT_IVS_TRAFFIC_ROAD_CONSTRUCTION(交通道路施工检测事件) 对应的规则配置
+ * @author 119178
+ * @date 2021/3/11
+ */
+public class NET_TRAFFIC_ROAD_CONSTRUCTION_RULE_INFO extends SdkStructure {
+ /**
+ * 检测区
+ */
+ public POINTCOORDINATE[] stuDetectRegion = (POINTCOORDINATE[])new POINTCOORDINATE().toArray(20);
+ /**
+ * 检测区顶点数
+ */
+ public int nDetectRegionPoint;
+ /**
+ * 最短持续时间,单位:秒 0~65535
+ */
+ public int nMinDuration;
+ /**
+ * 灵敏度,范围[1,10],灵敏度越高越容易检测
+ */
+ public int nSensitivity;
+ /**
+ * 车道编号 与场景中的车道号对应
+ */
+ public int nLaneNumber;
+ /**
+ * 变倍抓拍,违停球做规则判断时,默认会变倍。有两种情况不适合变倍
+ * 1.车速较快场合,变倍会导致跟踪不及时
+ * 2.车牌很近,由于机芯的光轴畸变会导致车牌过大,算法无法识别
+ * 在以上这两种情况下,需要关闭变倍。注意是否要关闭变倍取决于现场情况,属于比较专业的配置,只对Web或者调试工具开放该选项
+ * true开启变倍,false不变倍
+ * web上默认勾选
+ */
+ public int bZoomEnable;
+ /**
+ * 重复报警时间,单位:秒,范围0-3600.无该字段时,不做处理
+ */
+ public int nRepeatAlarmTime;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[4096];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_THROW_RULE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_THROW_RULE_INFO.java
new file mode 100644
index 0000000..ad7c70d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_THROW_RULE_INFO.java
@@ -0,0 +1,64 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+import com.netsdk.lib.NetSDKLib.POINTCOORDINATE;
+/**
+ * @description 事件类型EVENT_IVS_TRAFFIC_THROW(抛洒物事件) 对应的规则配置
+ * @author 119178
+ * @date 2021/3/11
+ */
+public class NET_TRAFFIC_THROW_RULE_INFO extends SdkStructure {
+ /**
+ * 检测区
+ */
+ public POINTCOORDINATE[] stuDetectRegion = (POINTCOORDINATE[])new POINTCOORDINATE().toArray(20);
+ /**
+ * 检测区顶点数
+ */
+ public int nDetectRegionPoint;
+ /**
+ * 车道编号 与场景中的车道号对应
+ */
+ public int nLaneNumber;
+ /**
+ * 最短触发时间,单位:秒
+ */
+ public int nMinDuration;
+ /**
+ * 报警间隔时间,单位:秒
+ */
+ public int nInterval;
+ /**
+ * 是否抓拍摩托车
+ */
+ public int bSnapMotorcycle;
+ /**
+ * 变倍抓拍,违停球做规则判断时,默认会变倍
+ * 如下两种情况不适合变倍
+ * 1. 车速较快场合,变倍会导致跟踪不及时
+ * 2. 车牌很近,由于机芯的光轴畸变会导致车牌过大,算法无法识别
+ * 在以上这两种情况下,需要关闭变倍。是否要关闭变倍取决于现场情况,属于比较专业的配置
+ */
+ public int bZoomEnable;
+ /**
+ * 重复报警时间,无该字段不做处理
+ */
+ public int nRepeatAlarmTime;
+ /**
+ * 抓拍目标类型,默认抓拍行人,后续可做扩展.无该字段不做处理
+ */
+ public int nSnapObjectType;
+ /**
+ * 检测到行人后多少时间开始报警。单位:秒,范围0-3600.无该字段不做处理
+ */
+ public int nDelayTime;
+ /**
+ * 灵敏度,范围1~100 ,配置0即为默认值,灵敏度越大算法检测越灵敏
+ */
+ public int nSensitivity;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[4096];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_UNDERSPEED_RULE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_UNDERSPEED_RULE_INFO.java
new file mode 100644
index 0000000..ffb3177
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TRAFFIC_UNDERSPEED_RULE_INFO.java
@@ -0,0 +1,67 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+/**
+ * @description 事件类型EVENT_IVS_TRAFFIC_UNDERSPEED(欠速事件) 对应的规则配置
+ * @author 119178
+ * @date 2021/3/11
+ */
+public class NET_TRAFFIC_UNDERSPEED_RULE_INFO extends SdkStructure {
+ /**
+ * 限速范围
+ */
+ public NET_SPEED_LIMIT stuSpeedLimit;
+ /**
+ * 最短触发时间,单位:秒
+ */
+ public int nMinDuration;
+ /**
+ * 是否抓拍摩托车
+ */
+ public int bSnapMotorcycle;
+ /**
+ * 黄牌车限速范围,范围0~255km/h
+ */
+ public NET_SPEED_LIMIT stuYellowSpeedLimit;
+ /**
+ * 车道编号 与场景中的车道号对应
+ */
+ public int nLaneNumber;
+ /**
+ * 是否启用大小车限速,True-使用下面具体的大小车限速字段,False-使用SpeedLimit字段,该字段缺省时默认False,即使用通用字段SpeedLimit
+ */
+ public int bSpeedLimitForSize;
+ /**
+ * 小型车辆速度下限和上限,0~255km/h,启用bSpeedLimitForSize有效,作为普通车辆限速
+ */
+ public NET_SPEED_LIMIT stuSmallCarSpeedLimit;
+ /**
+ * 大型车辆速度下限和上限,0~255km/h,启用bSpeedLimitForSize有效,作为大型车辆限速
+ */
+ public NET_SPEED_LIMIT stuBigCarSpeedLimit;
+ /**
+ * 小车限高速宽限值,单位:km/h,不启用大小车限速时作为普通车辆高速宽限值,启用bSpeedLimitForSize时作为小车高速宽限值
+ */
+ public NET_SPEED_LIMIT stuOverSpeedMargin;
+ /**
+ * 大车限高速宽限值,单位:km/h,不启用大小车限速时作为普通车辆高速宽限值,启用bSpeedLimitForSize时作为大型车辆高速宽限值
+ */
+ public NET_SPEED_LIMIT stuBigCarOverSpeedMargin;
+ /**
+ * 小车限低速宽限值,单位:km/h,不启用大小车限速时作为普通车辆低速宽限值,启用bSpeedLimitForSize时,作为小车低速宽限值
+ */
+ public NET_SPEED_LIMIT stuUnderSpeedMargin;
+ /**
+ * 大车限低速宽限值,单位:km/h,不启用大小车限速时作为普通车辆低速宽限值,启用bSpeedLimitForSize时作为大型车辆高速宽限值
+ */
+ public NET_SPEED_LIMIT stuBigCarUnderSpeedMargin;
+ /**
+ * 语音播报使能
+ */
+ public int bVoiceBroadcastEnable;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[4092];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TRANSCODE_IMAGE_WATER_MARK.java b/src/main/java/com/netsdk/lib/structure/NET_TRANSCODE_IMAGE_WATER_MARK.java
new file mode 100644
index 0000000..57bbd70
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TRANSCODE_IMAGE_WATER_MARK.java
@@ -0,0 +1,36 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 转码水印参数
+*/
+public class NET_TRANSCODE_IMAGE_WATER_MARK extends NetSDKLib.SdkStructure
+{
+ /**
+ * 图片名称,通过CLIENT_GetCapsOfTransCode获取
+ */
+ public byte[] szImage = new byte[256];
+ /**
+ * Position字段是否生效
+ */
+ public int bPosition;
+ /**
+ * nOpacity字段是否生效
+ */
+ public int bOpacity;
+ /**
+ * 水印位置0:左上 1:右上 2:左下 3:右下
+ */
+ public int nPosition;
+ /**
+ * 图片水印的不透明度,范围0-100,0表示全透明,默认100
+ */
+ public int nOpacity;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[512];
+
+ public NET_TRANSCODE_IMAGE_WATER_MARK() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TRANSMIT_DISCONNECT_CALLBACK.java b/src/main/java/com/netsdk/lib/structure/NET_TRANSMIT_DISCONNECT_CALLBACK.java
new file mode 100644
index 0000000..daf3b5e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TRANSMIT_DISCONNECT_CALLBACK.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+import com.sun.jna.Pointer;
+
+/**
+隧道连接断开回调信息
+*/
+public class NET_TRANSMIT_DISCONNECT_CALLBACK extends NetSDKLib.SdkStructure {
+/**
+/< 设备网络信息
+*/
+ public NET_DEV_NETWORK_INFO stuDevNetInfo = new NET_DEV_NETWORK_INFO();
+/**
+/< 用户数据 LDWORD
+*/
+ public Pointer dwUserData;
+/**
+/< 保留字节
+*/
+ public byte[] szReserved = new byte[1024];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TRAVEL_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_TRAVEL_INFO.java
new file mode 100644
index 0000000..647ab20
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TRAVEL_INFO.java
@@ -0,0 +1,27 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+/**
+ * @author 251823
+ * @description 行程码信息
+ * @date 2021/08/15
+ */
+public class NET_TRAVEL_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 行程码状态,{@link EM_TRAVEL_CODE_COLOR}
+ */
+ public int emTravelCodeColor;
+ /**
+ * 最近14天经过的城市个数
+ */
+ public int nCityCount;
+ /**
+ * 最近14天经过的城市名. 按时间顺序排列, 最早经过的城市放第一个
+ */
+ public PassingCityByteArr[] szPassingCity = (PassingCityByteArr[])new PassingCityByteArr().toArray(16);
+ /**
+ * 保留字节
+ */
+ public byte[] szReserved = new byte[1024];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TSECT_ARRAY_6.java b/src/main/java/com/netsdk/lib/structure/NET_TSECT_ARRAY_6.java
new file mode 100644
index 0000000..84f3fa2
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TSECT_ARRAY_6.java
@@ -0,0 +1,16 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+
+public class NET_TSECT_ARRAY_6 extends NetSDKLib.SdkStructure {
+ /**
+ * 参见结构体定义 {@link com.netsdk.lib.NetSDKLib.NET_TSECT}
+ */
+ public NetSDKLib.NET_TSECT[] obj_6 = new NetSDKLib.NET_TSECT[6];
+
+ public NET_TSECT_ARRAY_6() {
+ for(int i = 0; i < obj_6.length; i++){
+ obj_6[i] = new NetSDKLib.NET_TSECT();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_TSECT_DAY.java b/src/main/java/com/netsdk/lib/structure/NET_TSECT_DAY.java
new file mode 100644
index 0000000..732d202
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_TSECT_DAY.java
@@ -0,0 +1,25 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+import static com.netsdk.lib.NetSDKLib.NET_TSCHE_SEC_NUM;
+
+/**
+ * 拆分自{@link MONITORWALL_COLLECTION_SCHEDULE}
+ *
+ * @author : 47040
+ * @since : Created in 2020/10/19 9:43
+ */
+public class NET_TSECT_DAY extends NetSDKLib.SdkStructure {
+ /**
+ * 时间段结构
+ */
+ public NetSDKLib.NET_TSECT[] stuSchedule = new NetSDKLib.NET_TSECT[NET_TSCHE_SEC_NUM];
+
+ public NET_TSECT_DAY() {
+ for (int i = 0; i < stuSchedule.length; i++) {
+ stuSchedule[i] = new NetSDKLib.NET_TSECT();
+ }
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_UINT_POINT.java b/src/main/java/com/netsdk/lib/structure/NET_UINT_POINT.java
new file mode 100644
index 0000000..324faf5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_UINT_POINT.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 8192坐标点
+ * @date 2022/07/21 16:59:51
+ */
+public class NET_UINT_POINT extends NetSDKLib.SdkStructure {
+ public int nx;
+ public int ny;
+
+ public NET_UINT_POINT() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_UNIFORM_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_UNIFORM_INFO.java
new file mode 100644
index 0000000..0dd58bc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_UNIFORM_INFO.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 260611
+ * @description 制服相关属性状态信息
+ * @date 2023/04/21 16:09:59
+ */
+public class NET_UNIFORM_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 是否有穿着制服, 0: 未知, 1: 没有, 2: 有, 3:不存在指定颜色制服
+ */
+ public int nHasUniform;
+ /**
+ * 制服颜色 {@link com.netsdk.lib.enumeration.EM_CLOTHES_COLOR}
+ */
+ public int emUniformColor;
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[24];
+
+ public NET_UNIFORM_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_UPDATE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_UPDATE_INFO.java
new file mode 100644
index 0000000..ee7138d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_UPDATE_INFO.java
@@ -0,0 +1,35 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 区域或车位更新信息
+ * @date 2022/05/11 13:27:51
+ */
+public class NET_UPDATE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 更新类型 {@link com.netsdk.lib.enumeration.EM_UPDATE_TYPE}
+ */
+ public int emType;
+ /**
+ * 更新的区域或车位名称
+ */
+ public byte[] szName = new byte[32];
+ /**
+ * 更新前的车位类型 {@link com.netsdk.lib.enumeration.EM_SPACE_TYPE}
+ */
+ public int emBeforeUpdateType;
+ /**
+ * 更新后的车位类型 {@link com.netsdk.lib.enumeration.EM_SPACE_TYPE}
+ */
+ public int emAfterUpdateType;
+ /**
+ * 保留字节
+ */
+ public byte[] szResvered = new byte[256];
+
+ public NET_UPDATE_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_UPLOAD_CLIENT_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_UPLOAD_CLIENT_INFO.java
new file mode 100644
index 0000000..a7889d5
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_UPLOAD_CLIENT_INFO.java
@@ -0,0 +1,22 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.EM_UPLOAD_FLAG;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 客户端信息
+ * @date 2021/2/22
+ */
+public class NET_UPLOAD_CLIENT_INFO extends NetSDKLib.SdkStructure {
+ /** 平台客户端的标识,当前是IPv4地址或者MAC地址 */
+ public byte[] szClientID = new byte[20];
+ /** 平台上传标识 ,对应枚举{@link EM_UPLOAD_FLAG} */
+ public int emUploadFlag;
+ /** 上传到平台的UTC时间 */
+ public NET_TIME stuUploadTime;
+ /** 预留 */
+ public byte[] byReserved = new byte[64];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_USERMANAGER_IMAGE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_USERMANAGER_IMAGE_INFO.java
new file mode 100644
index 0000000..151042c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_USERMANAGER_IMAGE_INFO.java
@@ -0,0 +1,40 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @description 用户信息图片信息
+ * @origin autoTool
+ * @date 2023/07/28 14:34:03
+ */
+public class NET_USERMANAGER_IMAGE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 在二进制数据块中的偏移,单位:字节
+ */
+ public int nOffset;
+ /**
+ * 图片大小,单位:字节
+ */
+ public int nLength;
+ /**
+ * 图片宽度
+ */
+ public short nWidth;
+ /**
+ * 图片高度
+ */
+ public short nHeight;
+ /**
+ * 图片类型 {@link com.netsdk.lib.enumeration.EM_USERMANAGER_IMAGE_TYPE}
+ */
+ public int emImageType;
+ /**
+ * 保留字节
+ */
+ public byte[] szReserved = new byte[64];
+
+ public NET_USERMANAGER_IMAGE_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_USER_DEF_TITLE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_USER_DEF_TITLE_INFO.java
new file mode 100644
index 0000000..182579c
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_USER_DEF_TITLE_INFO.java
@@ -0,0 +1,48 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+import static com.netsdk.lib.NetSDKLib.CUSTOM_TITLE_LEN;
+
+/**
+ * 自定义的标题信息
+ *
+ * @author 47040
+ * @version 1.0.0
+ * @since Created in 2021/3/8 20:16
+ */
+public class NET_USER_DEF_TITLE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 标题内容
+ */
+ public byte[] szText = new byte[CUSTOM_TITLE_LEN];
+ /**
+ * 叠加到编码视频使能
+ */
+ public int bEncodeBlend;
+ /**
+ * 叠加到预览视频使能
+ */
+ public int bPreviewBlend;
+ /**
+ * 区域, 坐标取值[0~8191], 仅使用left和top值, 点(left,top)应和(right,bottom)设置成同样的点
+ */
+ public NetSDKLib.NET_RECT stuRect;
+ /**
+ * 前景色
+ */
+ public NET_COLOR_RGBA stuFrontColor;
+ /**
+ * 背景色
+ */
+ public NET_COLOR_RGBA stuBackColor;
+ /**
+ * 文本对齐方式 枚举值 {@link NetSDKLib.EM_TITLE_TEXT_ALIGNTYPE}
+ */
+ public int emTextAlign;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[516];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_USER_PICTURE_DATA.java b/src/main/java/com/netsdk/lib/structure/NET_USER_PICTURE_DATA.java
new file mode 100644
index 0000000..0f81fe8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_USER_PICTURE_DATA.java
@@ -0,0 +1,18 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * className:NET_USER_PICTURE_DATA
+ * description:
+ * author:251589
+ * createTime:2020/12/22 21:56
+ *
+ * @version v1.0
+ */
+public class NET_USER_PICTURE_DATA extends NetSDKLib.SdkStructure {
+ public String pszPictureData; // 图片数据,最大 200K
+ public int nPictureLen; // pszPictureData 长度
+ public byte[] byReserved = new byte[1020]; // 预留字段
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_VACCINE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_VACCINE_INFO.java
new file mode 100644
index 0000000..25a1f27
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_VACCINE_INFO.java
@@ -0,0 +1,31 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+/**
+ * @author 251823
+ * @description 新冠疫苗接种信息
+ * @date 2021/08/15
+ */
+public class NET_VACCINE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 是否已接种新冠疫苗, 0: 否, 1: 是
+ */
+ public int nVaccinateFlag;
+ /**
+ * 新冠疫苗名称
+ */
+ public byte[] szVaccineName = new byte[128];
+ /**
+ * 历史接种日期有效个数
+ */
+ public int nDateCount;
+ /**
+ * 历史接种日期 (yyyy-MM-dd). 如提供不了时间, 则填"0000-00-00", 表示已接种
+ */
+ public VaccinateDateByteArr[] szVaccinateDate = (VaccinateDateByteArr[])new VaccinateDateByteArr().toArray(8);
+ /**
+ * 保留字节
+ */
+ public byte[] szReserved = new byte[1024];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_VAGEOBJECT_IMAGE.java b/src/main/java/com/netsdk/lib/structure/NET_VAGEOBJECT_IMAGE.java
new file mode 100644
index 0000000..9955feb
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_VAGEOBJECT_IMAGE.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 物体截图
+ * @date 2021/10/09
+ */
+public class NET_VAGEOBJECT_IMAGE extends NetSDKLib.SdkStructure {
+ /**
+ * 在二进制数据块中的偏移
+ */
+ public int nOffset;
+ /**
+ * 图片大小,单位:字节
+ */
+ public int nLength;
+ /**
+ * 图片宽度
+ */
+ public int nWidth;
+ /**
+ * 图片高度
+ */
+ public int nHeight;
+ /**
+ * 文件路径
+ */
+ public byte[] szFilePath = new byte[260];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_VAGEOBJECT_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_VAGEOBJECT_INFO.java
new file mode 100644
index 0000000..2030da7
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_VAGEOBJECT_INFO.java
@@ -0,0 +1,63 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+/**
+ * @author 251823
+ * @description 视频分析泛型物体类型
+ * @date 2021/10/09
+ */
+public class NET_VAGEOBJECT_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 物体ID,每个ID表示一个唯一的物体
+ */
+ public int nObjectID;
+ /**
+ * 模型支持的泛类型物体类型编号
+ */
+ public int nTypeIndex;
+ /**
+ * 模型支持的泛类型物体类型
+ */
+ public byte[] szTypeName = new byte[32];
+ /**
+ * 置信度,值越大表示置信度越高 0~100
+ */
+ public int nConfidence;
+ /**
+ * 物体动作支持类型,参考枚举{ @link ENUM_VAGEOBJECT_ACTION}
+ */
+ public int emAction;
+ /**
+ * 包围盒 矩形类型,当物体类型为车辆、车牌时为0~8191相对坐标
+ */
+ public NetSDKLib.NET_RECT stuBoundingBox;
+ /**
+ * 包围盒 绝对坐标
+ */
+ public NetSDKLib.NET_RECT stuOriginalBoundingBox;
+ /**
+ * 物体型心(不是包围盒中心), 二维空间点类型
+ */
+ public NetSDKLib.NET_POINT stuCenter;
+ /**
+ * 主要颜色是否有效
+ */
+ public boolean bMainColor;
+ /**
+ * 物体主要颜色, rgb
+ */
+ public byte[] byMainColor = new byte[4];
+ /**
+ * 物体截图
+ */
+ public NET_VAGEOBJECT_IMAGE stuImage;
+ /**
+ * 当前时间戳(物体抓拍或识别时,会将此识别智能帧附在一个视频帧或jpeg图片中,此帧所在原始视频中的出现时间)
+ */
+ public NET_TIME_EX stuCurrentTimeStamp;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[1024];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_VAOBJECT_ANIMAL_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_VAOBJECT_ANIMAL_INFO.java
new file mode 100644
index 0000000..354ad2a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_VAOBJECT_ANIMAL_INFO.java
@@ -0,0 +1,37 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 智慧养殖对象信息
+* @date 2022/04/15 15:29:30
+*/
+public class NET_VAOBJECT_ANIMAL_INFO extends NetSDKLib.SdkStructure {
+/**
+物体ID,每个ID表示一个唯一的物体
+*/
+ public int nObjectID;
+/**
+智慧养殖检测目标子类型 {@link com.netsdk.lib.enumeration.EM_BREED_DETECT_CATEGORY_TYPE}
+*/
+ public int emCategoryType;
+/**
+包围盒
+*/
+ public NET_RECT stuBoundingBox = new NET_RECT();
+/**
+对象重量, 单位: g
+*/
+ public int nObjectWeight;
+/**
+物体截图
+*/
+ public NetSDKLib.SCENE_IMAGE_INFO_EX stuImageData = new NetSDKLib.SCENE_IMAGE_INFO_EX();
+/**
+预留字节
+*/
+ public byte[] byReserved = new byte[1024];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_VAOBJECT_NUMMAN.java b/src/main/java/com/netsdk/lib/structure/NET_VAOBJECT_NUMMAN.java
new file mode 100644
index 0000000..b66467f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_VAOBJECT_NUMMAN.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib.NET_RECT;
+import com.netsdk.lib.NetSDKLib.SdkStructure;
+
+/**
+ * 检测到的人信息
+ * @author 29779
+ */
+public class NET_VAOBJECT_NUMMAN extends SdkStructure {
+ public int nObjectID; // 物体ID,每个ID表示一个唯一的物体
+ /**
+ * @link EM_UNIFORM_STYLE 制服样式
+ */
+ public int emUniformStyle;
+ public NET_RECT stuBoundingBox; // 包围盒,手套对象在全景图中的框坐标,为0~8191相对坐标
+ public NET_RECT stuOriginalBoundingBox; // 包围盒,绝对坐标
+ /**
+ * 排队时长
+ */
+ public long nQueueDuration;
+ public byte[] byReserved = new byte[120]; // 预留字节
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_VAOBJECT_ROADCONE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_VAOBJECT_ROADCONE_INFO.java
new file mode 100644
index 0000000..fe8d9b6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_VAOBJECT_ROADCONE_INFO.java
@@ -0,0 +1,40 @@
+package com.netsdk.lib.structure;
+import com.netsdk.lib.NetSDKLib;
+/**
+ * 路障目标信息
+*/
+public class NET_VAOBJECT_ROADCONE_INFO extends NetSDKLib.SdkStructure
+{
+ /**
+ * 包围盒, 路锥对象在全景图中的框坐标,为0~8191相对坐标,参见结构体定义 {@link com.netsdk.lib.structure.NET_RECT_EX}
+ */
+ public NET_RECT_EX stuBoundingBox = new NET_RECT_EX();
+ /**
+ * 包围盒, 绝对坐标,参见结构体定义 {@link com.netsdk.lib.structure.NET_RECT_EX}
+ */
+ public NET_RECT_EX stuOriginalBoundingBox = new NET_RECT_EX();
+ /**
+ * 物体型心(不是包围盒中心),参见结构体定义 {@link com.netsdk.lib.structure.NET_POINT_EX}
+ */
+ public NET_POINT_EX stuCenter = new NET_POINT_EX();
+ /**
+ * 物体ID
+ */
+ public int nObjectID;
+ /**
+ * 相关物体ID, 如果物体动作为Split/Merge/Rename的需要相关ID,否则被忽略
+ */
+ public int nRelativeID;
+ /**
+ * 物体动作支持类型,参见枚举定义 {@link com.netsdk.lib.enumeration.EM_VAOBJECT_ROADCONE_ACTION}
+ */
+ public int emAction;
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[512];
+
+ public NET_VAOBJECT_ROADCONE_INFO() {
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_VARLANE_PLAN_LIST_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_VARLANE_PLAN_LIST_INFO.java
new file mode 100644
index 0000000..c08124e
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_VARLANE_PLAN_LIST_INFO.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 可变车道计划表信息
+ * @date 2021/09/28
+ */
+public class NET_VARLANE_PLAN_LIST_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 可变车道方案编号(0表示未配置)
+ */
+ public int nVarlanePatternNumber;
+ /**
+ * 可变车道方案名称
+ */
+ public byte[] szVarlanePatternName = new byte[64];
+ /**
+ * 计划表个数
+ */
+ public int nLanePlanNum;
+ /**
+ * 计划表
+ */
+ public NET_LANE_PLAN_LIST_INFO[] stuLanePlanInfo = (NET_LANE_PLAN_LIST_INFO[]) new NET_LANE_PLAN_LIST_INFO().toArray(12);
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[32];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_VAR_LANE_LIST_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_VAR_LANE_LIST_INFO.java
new file mode 100644
index 0000000..2a21335
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_VAR_LANE_LIST_INFO.java
@@ -0,0 +1,36 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 可变车道列表信息
+ * @date 2021/09/28
+ */
+public class NET_VAR_LANE_LIST_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 可变车道指示牌号
+ */
+ public int nVarlaneId;
+ /**
+ * 可变车道编号(车道配置页面编号)
+ */
+ public int nVarlaneNumber;
+ /**
+ * 该指示牌对应可变属性的对应的通道的闪光时长 单位秒,0-255 S
+ */
+ public int nVarlaneFlashTime;
+ /**
+ * 可变车道属性个数
+ */
+ public int nPropertyListNum;
+ /**
+ * 可变车道属性
+ */
+ public NET_PROPERTY_LIST_INFO[] stuPropertyInfo = (NET_PROPERTY_LIST_INFO[]) new NET_PROPERTY_LIST_INFO().toArray(7);
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[32];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_VEDIO_WIDGET_COVER.java b/src/main/java/com/netsdk/lib/structure/NET_VEDIO_WIDGET_COVER.java
new file mode 100644
index 0000000..9c13190
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_VEDIO_WIDGET_COVER.java
@@ -0,0 +1,54 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * 覆盖区域
+ *
+ * @author 47040
+ * @version 1.0.0
+ * @since Created in 2021/3/8 21:52
+ */
+public class NET_VEDIO_WIDGET_COVER extends NetSDKLib.SdkStructure {
+ /**
+ * 叠加到预览视频
+ */
+ public int bPreviewBlend;
+ /**
+ * 叠加到主码流
+ */
+ public int bEncodeBlend;
+ /**
+ * 叠加到辅码流1
+ */
+ public int bEncodeBlendExtra1;
+ /**
+ * 叠加到辅码流2
+ */
+ public int bEncodeBlendExtra2;
+ /**
+ * 叠加到辅码流3
+ */
+ public int bEncodeBlendExtra3;
+ /**
+ * 叠加到抓图
+ */
+ public int bEncodeBlendSnapshot;
+ /**
+ * 前景色
+ */
+ public NET_COLOR_RGBA stuFrontColor;
+ /**
+ * 背景色
+ */
+ public NET_COLOR_RGBA stuBackColor;
+ /**
+ * 区域, 坐标取值0~8191
+ */
+ public NetSDKLib.NET_RECT stuRect;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserver = new byte[128];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/NET_VEHICLEDETECT_RULE_INFO.java b/src/main/java/com/netsdk/lib/structure/NET_VEHICLEDETECT_RULE_INFO.java
new file mode 100644
index 0000000..7b0096d
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/NET_VEHICLEDETECT_RULE_INFO.java
@@ -0,0 +1,64 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 事件类型EVENT_IVS_VEHICLEDETECT(机动车事件)对应的规则配置
+* @origin autoTool
+* @date 2023/05/29 11:40:48
+*/
+public class NET_VEHICLEDETECT_RULE_INFO extends NetSDKLib.SdkStructure {
+/**
+结构体大小
+*/
+ public int dwSize;
+/**
+车辆抓拍阈值,是一个百分数,表示当车辆检测框高度占画面百分比大于这个阈值时,触发规则进行抓拍。
+*/
+ public int nSnapThreshold;
+/**
+检测区顶点数
+*/
+ public int nDetectRegionPoint;
+/**
+检测区
+*/
+ public POINTCOORDINATE[] stuDetectRegion = new POINTCOORDINATE[20];
+/**
+排除区域数
+*/
+ public int nExcludeRegionNum;
+/**
+排除区域
+*/
+ public DH_POLY_POINTS[] stuExcludeRegion = new DH_POLY_POINTS[10];
+/**
+合规报警规则
+*/
+ public NET_COMPLIANT_INFO stuCompliant = new NET_COMPLIANT_INFO();
+/**
+是否提取机动车特征向量
+*/
+ public int bFeatureExtractEnable;
+/**
+是否使用尺寸过滤器
+*/
+ public int bSizeFileter;
+/**
+规则特定的尺寸过滤器,提高判断精度
+*/
+ public NET_CFG_SIZEFILTER_INFO stuSizeFileter = new NET_CFG_SIZEFILTER_INFO();
+
+public NET_VEHICLEDETECT_RULE_INFO(){
+ for(int i=0;i>start&getOr(start,end));
+ }
+
+ private byte getOr(byte start,byte end){
+ byte result=0;
+ for (int i = 0; i < end-start; i++) {
+ result|=(1<>start&getOr(start,end);
+ }
+
+ private int getOr(int start,int end){
+ int result=0;
+ for (int i = 0; i < end-start; i++) {
+ result|=(1<
+ * \else
+ * 太阳能蓄电池信息
+ * \endif
+ * @date 2020/8/11
+ */
+public class SOLARCELL_BATTERY_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 电量百分比(范围:0~100)
+ */
+ public int nElectricityQuantityPercent;
+ /**
+ * 电压(单位:伏特)
+ */
+ public float fVoltage;
+ /**
+ * 温度(单位:摄氏度)
+ */
+ public float fTemperature;
+ /**
+ * 控制温度(单位:摄氏度)
+ */
+ public float fControllerTemper;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[256];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/SOLARCELL_PANEL_INFO.java b/src/main/java/com/netsdk/lib/structure/SOLARCELL_PANEL_INFO.java
new file mode 100644
index 0000000..cee159b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/SOLARCELL_PANEL_INFO.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description \if ENGLISH_LANG
+ *
+ * \else
+ * 太阳能板信息
+ * \endif
+ * @date 2020/8/11
+ */
+public class SOLARCELL_PANEL_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 电压(单位:伏特)
+ */
+ public float fVoltage;
+ /**
+ * 电流(单位:安培)
+ */
+ public float fElectricCurrent;
+ /**
+ * 充电功率
+ */
+ public float fChargingPower;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[252];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/SOLARCELL_SYSTEM_HISTORY_INFO.java b/src/main/java/com/netsdk/lib/structure/SOLARCELL_SYSTEM_HISTORY_INFO.java
new file mode 100644
index 0000000..0ddf343
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/SOLARCELL_SYSTEM_HISTORY_INFO.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description
+ * \if ENGLISH_LANG
+ * solarcell system history info
+ * \else
+ * 太阳能系统历史数据信息
+ * \endif
+ * @date 2020/8/11
+ */
+public class SOLARCELL_SYSTEM_HISTORY_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 系统运行时间(单位:天)
+ */
+ public int nSystemTotalRunDay;
+ /**
+ * 蓄电池总过放次数
+ */
+ public int nBatteryOverDischargeCount;
+ /**
+ * 蓄电池总充满电次数
+ */
+ public int nBatteryTotalChargeCount;
+ /**
+ * 保留字节
+ */
+ public byte[] byReserved = new byte[252];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/START_LISTEN_FINISH_RESULT_INFO.java b/src/main/java/com/netsdk/lib/structure/START_LISTEN_FINISH_RESULT_INFO.java
new file mode 100644
index 0000000..722cf07
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/START_LISTEN_FINISH_RESULT_INFO.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @Author 251589
+ * @Description:
+ * @Date 2020/11/27 12:08
+ */
+public class START_LISTEN_FINISH_RESULT_INFO extends NetSDKLib.SdkStructure {
+ public int dwEventResult; // 事件订阅返回结果 NET_NOERROR:成功 非0:失败,值为错误码,详见_EC(x)
+ public byte[] byReserved = new byte[508];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/STEP_INFO.java b/src/main/java/com/netsdk/lib/structure/STEP_INFO.java
new file mode 100644
index 0000000..b3f36ec
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/STEP_INFO.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 灯组色步信息
+ * @date 2021/09/01
+ */
+public class STEP_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 进口方向
+ */
+ public int nEnterDir;
+ /**
+ * 进口灯组数量
+ */
+ public int nEnterLampNumber;
+ /**
+ * 灯色信息个数
+ */
+ public int nLampInfoNum;
+ /**
+ * 灯色信息(0~10)包含1到M(进口灯组数量)个灯色信息
+ */
+ public LAMP_INFO[] stuLightColorInfo = (LAMP_INFO[]) new LAMP_INFO().toArray(10);
+ /**
+ * 预留字节
+ */
+ public byte[] byReserved = new byte[128];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/STEP_SEQUENCE_INFO.java b/src/main/java/com/netsdk/lib/structure/STEP_SEQUENCE_INFO.java
new file mode 100644
index 0000000..3da2a0f
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/STEP_SEQUENCE_INFO.java
@@ -0,0 +1,30 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 色步时间序列信息
+ * @date 2021/09/01
+ */
+public class STEP_SEQUENCE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 灯色个数
+ */
+ public int nLampColorCount;
+ /**
+ * // 灯色 当灯组类型EM_LAMP_TYPE为EM_LAMP_TYPE_STRAIGHT-EM_LAMP_TYPE_FLASH_WARN时,int[0]用于表示红色发光单元,int[1]用于表示黄色发光单元,int[2]用于表示绿色发光单元,int[3]保留
+ // 当灯组类型为EM_LAMP_TYPE_TRAM_DEDICATED_STRAIGHT-EM_LAMP_TYPE_TRAM_DEDICATED_RIGHT时,int[0]用于表示禁止通行信号发光单元,int[1]用于表示过渡信号发光单元,int[2]用于表示通行信号发光单元,int[3]保留
+ // 具体取值0:无灯1:灭灯2:亮灯3:闪烁
+ */
+ public int[] nLampColor = new int[4];
+ /**
+ * 时间长度,单位为秒(s)
+ */
+ public int nTime;
+ /**
+ * 预留字节
+ */
+ public byte[] byReserved = new byte[128];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/StringByteArr32.java b/src/main/java/com/netsdk/lib/structure/StringByteArr32.java
new file mode 100644
index 0000000..6d93c47
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/StringByteArr32.java
@@ -0,0 +1,16 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 字符串字节数组对象(长度32)
+ * @date 2021/01/13
+ */
+public class StringByteArr32 extends NetSDKLib.SdkStructure {
+ /**
+ * 二维数组内字符串对应字节数组
+ */
+ public byte[] data = new byte[32];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/StringByteArrSixteen.java b/src/main/java/com/netsdk/lib/structure/StringByteArrSixteen.java
new file mode 100644
index 0000000..a0abeca
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/StringByteArrSixteen.java
@@ -0,0 +1,16 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 字符串字节数组对象(长度16)
+ * @date 2021/01/13
+ */
+public class StringByteArrSixteen extends NetSDKLib.SdkStructure {
+ /**
+ * 二维数组内字符串对应字节数组
+ */
+ public byte[] data = new byte[NetSDKLib.CFG_COMMON_STRING_16];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/SupportedModeByteArr.java b/src/main/java/com/netsdk/lib/structure/SupportedModeByteArr.java
new file mode 100644
index 0000000..7f0dbc1
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/SupportedModeByteArr.java
@@ -0,0 +1,16 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 网络模式字符串对应字节数组
+ * @date 2021/09/17
+ */
+public class SupportedModeByteArr extends NetSDKLib.SdkStructure {
+ /**
+ * 网络模式字符串对应字节数组
+ */
+ public byte[] supportedModeByteArr = new byte[NetSDKLib.NET_MAX_MODE_LEN];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/THERMOMETRY_SHIELD_INFO.java b/src/main/java/com/netsdk/lib/structure/THERMOMETRY_SHIELD_INFO.java
new file mode 100644
index 0000000..eae5f35
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/THERMOMETRY_SHIELD_INFO.java
@@ -0,0 +1,40 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+* @author 291189
+* @description 每个屏蔽区的测温屏蔽区配置信息
+* @date 2022/11/07 10:53:23
+*/
+public class THERMOMETRY_SHIELD_INFO extends NetSDKLib.SdkStructure {
+/**
+屏蔽使能, TRUE开启, FALSE关闭
+*/
+ public int bEnable;
+/**
+屏蔽区编号
+*/
+ public int nShieldId;
+/**
+自定义名称
+*/
+ public byte[] szName = new byte[64];
+/**
+ 坐标点
+*/
+ public NET_RECT stuRect = new NET_RECT();
+/**
+预置点编号
+*/
+ public int nPresetId;
+/**
+预留字段
+*/
+ public byte[] szReserved = new byte[128];
+
+public THERMOMETRY_SHIELD_INFO(){
+}
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/TIME_SECTION_6.java b/src/main/java/com/netsdk/lib/structure/TIME_SECTION_6.java
new file mode 100644
index 0000000..6c8b2fc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/TIME_SECTION_6.java
@@ -0,0 +1,12 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+/**
+ * @author 251823
+ * @description 6个NET_TSECT时间段结构体
+ * @date 2022/10/14 13:53:01
+ */
+public class TIME_SECTION_6 extends NetSDKLib.SdkStructure {
+ public NetSDKLib.NET_TSECT[] timeSection = new NetSDKLib.NET_TSECT[NetSDKLib.NET_N_REC_TSECT];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/TRAFFIC_EVENT.java b/src/main/java/com/netsdk/lib/structure/TRAFFIC_EVENT.java
new file mode 100644
index 0000000..59e8cc0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/TRAFFIC_EVENT.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 交通事件信息
+ * @date 2021/09/01
+ */
+public class TRAFFIC_EVENT extends NetSDKLib.SdkStructure {
+ /**
+ * 机动车电子标识序列号
+ */
+ public byte[] szCarId = new byte[128];
+ /**
+ * 车牌号码
+ */
+ public byte[] szPlateNumber = new byte[128];
+ /**
+ * 行驶方向以地理正北方向为起点的顺时针旋转角度,单位为度(°)
+ */
+ public int nDrivingDir;
+ /**
+ * 交通事件,参考{ @link EM_TRAFFIC_EVENT }
+ */
+ public int emTrafficEvent;
+ /**
+ * 预留字节
+ */
+ public byte[] byReserved = new byte[128];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/TRAFFIC_FLOW_JUNTION_INFO.java b/src/main/java/com/netsdk/lib/structure/TRAFFIC_FLOW_JUNTION_INFO.java
new file mode 100644
index 0000000..37ff3ba
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/TRAFFIC_FLOW_JUNTION_INFO.java
@@ -0,0 +1,69 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author : 260611
+ * @description : 区域路口过车信息
+ * @since : Created in 2022/03/10 10:12
+ */
+
+public class TRAFFIC_FLOW_JUNTION_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 区域号
+ */
+ public int nAreaNo;
+ /**
+ * 路口号
+ */
+ public int nJunNo;
+ /**
+ * 方向号,北东南西分别为0/1/2/3
+ */
+ public int nDirNo;
+ /**
+ * 进出口类型,进口道 0,出口道 1
+ */
+ public int nLaneDirType;
+ /**
+ * 检测断面号
+ */
+ public int nSecNo;
+ /**
+ * 车道号0~7
+ */
+ public int nLaneNo;
+ /**
+ * 车辆类型
+ */
+ public int nVehType;
+ /**
+ * 车辆速度,精度1km/h
+ */
+ public int nVehSpeed;
+ /**
+ * 占有时间,单位ms
+ */
+ public int nOccTime;
+ /**
+ * 保留字节
+ */
+ public byte[] szReserverd = new byte[252];
+
+ @Override
+ public String toString() {
+ return "TRAFFIC_FLOW_JUNTION_INFO{" +
+ "nAreaNo=" + nAreaNo +
+ ", nJunNo=" + nJunNo +
+ ", nDirNo=" + nDirNo +
+ ", nLaneDirType=" + nLaneDirType +
+ ", nSecNo=" + nSecNo +
+ ", nLaneNo=" + nLaneNo +
+ ", nVehType=" + nVehType +
+ ", nVehSpeed=" + nVehSpeed +
+ ", nOccTime=" + nOccTime +
+ '}';
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/TRAFFIC_FLOW_LANE_INFO.java b/src/main/java/com/netsdk/lib/structure/TRAFFIC_FLOW_LANE_INFO.java
new file mode 100644
index 0000000..86b6c9b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/TRAFFIC_FLOW_LANE_INFO.java
@@ -0,0 +1,39 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author : 260611
+ * @description : 车道的车道统计信息
+ * @since : Created in 2022/03/10 10:12
+ */
+
+public class TRAFFIC_FLOW_LANE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 车道流量
+ */
+ public int nFlow;
+ /**
+ * 车道平均速度,1km/h精度
+ */
+ public int nAveSpeed;
+ /**
+ * 车道占有率
+ */
+ public int nOccupancy;
+ /**
+ * 保留字节
+ */
+ public byte[] szReserverd = new byte[252];
+
+ @Override
+ public String toString() {
+ return "TRAFFIC_FLOW_LANE_INFO{" +
+ "nFlow=" + nFlow +
+ ", nAveSpeed=" + nAveSpeed +
+ ", nOccupancy=" + nOccupancy +
+ '}';
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/TRAFFIC_FLOW_QUEUE_INFO.java b/src/main/java/com/netsdk/lib/structure/TRAFFIC_FLOW_QUEUE_INFO.java
new file mode 100644
index 0000000..b439a94
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/TRAFFIC_FLOW_QUEUE_INFO.java
@@ -0,0 +1,71 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+import java.util.Arrays;
+
+/**
+ * @author : 260611
+ * @description : 区域路口排队信息
+ * @since : Created in 2022/03/10 10:12
+ */
+
+public class TRAFFIC_FLOW_QUEUE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 检测器状态 0-正常 1-故障
+ */
+ public int nDecStatus;
+ /**
+ * 区域号
+ */
+ public int nAreaNo;
+ /**
+ * 路口号
+ */
+ public int nJunNo;
+ /**
+ * 方向号,北东南西分别为0/1/2/3
+ */
+ public int nDirNo;
+ /**
+ * 进出口类型,进口道 0,出口道 1
+ */
+ public int nLaneDirType;
+ /**
+ * 车道信息个数
+ */
+ public int nQueueInfoNum;
+ /**
+ * 0~7车道的信息
+ */
+ public TRAFFIC_QUEUE_INFO[] stuQueueInfo = (TRAFFIC_QUEUE_INFO[]) new TRAFFIC_QUEUE_INFO().toArray(32);
+ /**
+ * 保留字节
+ */
+ public byte[] szReserverd = new byte[256];
+
+ @Override
+ public String toString() {
+
+ String stuQueueInfos = "";
+ if(nQueueInfoNum > 0){
+ stuQueueInfos += "stuQueueInfo[0] = ";
+ stuQueueInfos += stuQueueInfo[0].toString();
+ }
+ for(int i = 1; i < nQueueInfoNum; i ++){
+ stuQueueInfos += ",stuQueueInfo[" + i + "] = ";
+ stuQueueInfos += stuQueueInfo[i].toString();
+ }
+ return "TRAFFIC_FLOW_QUEUE_INFO{" +
+ "nDecStatus=" + nDecStatus +
+ ", nAreaNo=" + nAreaNo +
+ ", nJunNo=" + nJunNo +
+ ", nDirNo=" + nDirNo +
+ ", nLaneDirType=" + nLaneDirType +
+ ", nQueueInfoNum=" + nQueueInfoNum +
+ ", stuQueueInfo=" + stuQueueInfos +
+ '}';
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/TRAFFIC_FLOW_STAT_EX_INFO.java b/src/main/java/com/netsdk/lib/structure/TRAFFIC_FLOW_STAT_EX_INFO.java
new file mode 100644
index 0000000..926c58a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/TRAFFIC_FLOW_STAT_EX_INFO.java
@@ -0,0 +1,65 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+import java.util.Arrays;
+
+/**
+ * @author : 260611
+ * @description : 路口车道统计信息
+ * @since : Created in 2022/03/10 10:12
+ */
+
+public class TRAFFIC_FLOW_STAT_EX_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 区域号
+ */
+ public int nAreaNo;
+ /**
+ * 路口号
+ */
+ public int nJunNo;
+ /**
+ * 方向号,北东南西分别为0/1/2/3
+ */
+ public int nDirNo;
+ /**
+ * 检测断面号
+ */
+ public int nSecNo;
+ /**
+ * 0~7车道的车道统计信息
+ */
+ public TRAFFIC_FLOW_LANE_INFO[] stuLaneInfo = (TRAFFIC_FLOW_LANE_INFO[]) new TRAFFIC_FLOW_LANE_INFO().toArray(32);
+ /**
+ * 车道统计信息个数
+ */
+ public int nLaneInfoNum;
+ /**
+ * 保留字节
+ */
+ public byte[] szReserverd = new byte[252];
+
+ @Override
+ public String toString() {
+ String stuLaneInfos = "";
+ if(nLaneInfoNum > 0){
+ stuLaneInfos += "stuLaneInfo[0] = ";
+ stuLaneInfos += stuLaneInfo[0].toString();
+ }
+ for(int i = 1; i < nLaneInfoNum; i ++){
+ stuLaneInfos += ",stuLaneInfo[" + i + "] = ";
+ stuLaneInfos += stuLaneInfo[i].toString();
+ }
+ return "TRAFFIC_FLOW_STAT_EX_INFO{" +
+ "nAreaNo=" + nAreaNo +
+ ", nJunNo=" + nJunNo +
+ ", nDirNo=" + nDirNo +
+ ", nSecNo=" + nSecNo +
+ ", stuLaneInfo=" + stuLaneInfos +
+ ", nLaneInfoNum=" + nLaneInfoNum +
+ '}';
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/TRAFFIC_FLOW_VEHICLE_STOP_INFO.java b/src/main/java/com/netsdk/lib/structure/TRAFFIC_FLOW_VEHICLE_STOP_INFO.java
new file mode 100644
index 0000000..48db1df
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/TRAFFIC_FLOW_VEHICLE_STOP_INFO.java
@@ -0,0 +1,64 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author : 260611
+ * @description : 区域路口停车信息
+ * @since : Created in 2022/03/10 10:12
+ */
+
+public class TRAFFIC_FLOW_VEHICLE_STOP_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 区域号
+ */
+ public int nAreaNo;
+ /**
+ * 路口号
+ */
+ public int nJunNo;
+ /**
+ * 方向号,北东南西分别为0/1/2/3
+ */
+ public int nDirNo;
+ /**
+ * 进出口类型,进口道 0,出口道 1
+ */
+ public int nLaneDirType;
+ /**
+ * 车道号0~7
+ */
+ public int nLaneNo;
+ /**
+ * 停车位置,精度1m
+ */
+ public int nStopPos;
+ /**
+ * 停车次数,第几次停车
+ */
+ public int nStopTimes;
+ /**
+ * 停车占有时间,单位ms
+ */
+ public int nStopOccTime;
+ /**
+ * 保留字节
+ */
+ public byte[] szReserverd = new byte[256];
+
+ @Override
+ public String toString() {
+ return "TRAFFIC_FLOW_VEHICLE_STOP_INFO{" +
+ "nAreaNo=" + nAreaNo +
+ ", nJunNo=" + nJunNo +
+ ", nDirNo=" + nDirNo +
+ ", nLaneDirType=" + nLaneDirType +
+ ", nLaneNo=" + nLaneNo +
+ ", nStopPos=" + nStopPos +
+ ", nStopTimes=" + nStopTimes +
+ ", nStopOccTime=" + nStopOccTime +
+ '}';
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/TRAFFIC_INFO.java b/src/main/java/com/netsdk/lib/structure/TRAFFIC_INFO.java
new file mode 100644
index 0000000..484a211
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/TRAFFIC_INFO.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 交通流信息
+ * @date 2021/09/01
+ */
+public class TRAFFIC_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 进口数量
+ */
+ public int nEnterNumber;
+ /**
+ * 进口方向交通流信息个数
+ */
+ public int nEnterTrafficInfoNum;
+ /**
+ * 进口方向交通流信息, 包含1到N(进口数量)个进口方向交通流信息
+ */
+ public ENTER_TRAFFIC_INFO[] stuEnterTrafficInfo = (ENTER_TRAFFIC_INFO[]) new ENTER_TRAFFIC_INFO().toArray(8);
+ /**
+ * 预留字节
+ */
+ public byte[] byReserved = new byte[128];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/TRAFFIC_QUEUE_INFO.java b/src/main/java/com/netsdk/lib/structure/TRAFFIC_QUEUE_INFO.java
new file mode 100644
index 0000000..886a087
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/TRAFFIC_QUEUE_INFO.java
@@ -0,0 +1,60 @@
+package com.netsdk.lib.structure;
+
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.NET_EM_OVER_FLOW_STATE;
+
+/**
+ * @author : 260611
+ * @description : 车道的信息
+ * @since : Created in 2022/03/10 10:12
+ */
+
+public class TRAFFIC_QUEUE_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 车道号
+ */
+ public int nLane;
+ /**
+ * 排队长度
+ */
+ public int nQueueLen;
+ /**
+ * 排队起始位置,精度1m
+ */
+ public int nQueueStartPos;
+ /**
+ * 检测区域内车辆数
+ */
+ public int nQueueVehNum;
+ /**
+ * 车道中实时车辆平均速度,精度1km/h
+ */
+ public int nQueueVehSpeed;
+ /**
+ * 停止线最近一个线圈的占有时间,从开始占有算起,单位ms
+ */
+ public int nOccTime;
+ /**
+ * 溢出状态。例:如给当前路段设定允许排队长度阀值,实际排队长度超过阀值后就判定当前时刻该路段有溢出。{@link NET_EM_OVER_FLOW_STATE}
+ */
+ public int emOverflowState;
+ /**
+ * 保留字节
+ */
+ public byte[] szReserverd = new byte[252];
+
+ @Override
+ public String toString() {
+ return "TRAFFIC_QUEUE_INFO{" +
+ "nLane=" + nLane +
+ ", nQueueLen=" + nQueueLen +
+ ", nQueueStartPos=" + nQueueStartPos +
+ ", nQueueVehNum=" + nQueueVehNum +
+ ", nQueueVehSpeed=" + nQueueVehSpeed +
+ ", nOccTime=" + nOccTime +
+ ", emOverflowState=" + NET_EM_OVER_FLOW_STATE.getNoteByValue(emOverflowState) +
+ '}';
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/TRAFFIC_STATE.java b/src/main/java/com/netsdk/lib/structure/TRAFFIC_STATE.java
new file mode 100644
index 0000000..1a16112
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/TRAFFIC_STATE.java
@@ -0,0 +1,32 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 交通运行状态信息
+ * @date 2021/09/01
+ */
+public class TRAFFIC_STATE extends NetSDKLib.SdkStructure {
+ /**
+ * 进口数量
+ */
+ public int nEnterNumber;
+ /**
+ * 进口交通运行状态信息个数
+ */
+ public int nEnterStateInfoNum;
+ /**
+ * 进口交通运行状态信息(0~8), 包含1到N(进口数量)个进口交通运行状态信息
+ */
+ public ENTER_STATE_INFO[] stuEnterStateInfo = (ENTER_STATE_INFO[]) new ENTER_STATE_INFO().toArray(8);
+ /**
+ * 统计分析周期,单位分钟1~255
+ */
+ public int nPeriod;
+ /**
+ * 预留字节
+ */
+ public byte[] byReserved = new byte[124];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/UNPACKING_CHECK_INFO.java b/src/main/java/com/netsdk/lib/structure/UNPACKING_CHECK_INFO.java
new file mode 100644
index 0000000..7b52689
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/UNPACKING_CHECK_INFO.java
@@ -0,0 +1,87 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description 开包检查信息
+ * @date 2021/9/9
+ */
+public class UNPACKING_CHECK_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 事件发生时间,带时区偏差的UTC时间,单位秒
+ */
+ public int nUTC;
+ /**
+ * 事件时间毫秒数
+ */
+ public int nUTCMS;
+ /**
+ * 表示包裹标识,用来唯一标识一个包裹
+ */
+ public byte[] szPackageTag = new byte[32];
+ /**
+ * 关联图片
+ */
+ public RELATED_IMAGE[] stuRelatedImage = new RELATED_IMAGE[64];
+ /**
+ * 关联图片数量
+ */
+ public int nRelatedImageRetNum;
+ /**
+ * 报警时间(即拍摄违禁品时间),UTC时间,单位秒
+ */
+ public int nAlarmTime;
+ /**
+ * 身份信息
+ */
+ public IDENTITY_INFO stuIdentityInfo = new IDENTITY_INFO();
+ /**
+ * 违禁物品分类 已经废弃
+ */
+ public OneDimensionalInformation[] szContrabandClass = new OneDimensionalInformation[16];
+ /**
+ * 违禁物品个数
+ */
+ public int nContrabandRetNum;
+ /**
+ * 处理方式 EM_PROCESS_MODE
+ */
+ public int emProcessMode;
+ /**
+ * 检出人,即开包人员
+ */
+ public byte[] szChecker = new byte[128];
+ /**
+ * 报警地点
+ */
+ public byte[] szAlarmLocation = new byte[256];
+ /**
+ * 违禁物品分类 {@link com.netsdk.lib.enumeration.EM_INSIDE_OBJECT_TYPE}
+ */
+ public int[] emContrabandClass = new int[64];
+ /**
+ * 行程出发地
+ */
+ public byte[] szPlaceOfDeparture = new byte[256];
+ /**
+ * 行程目的地
+ */
+ public byte[] szDestination = new byte[256];
+ /**
+ * 预留字节
+ */
+ public byte[] szReserved = new byte[18688];
+
+ public UNPACKING_CHECK_INFO() {
+ for (int i = 0; i < 16; i++) {
+ szContrabandClass[i] = new OneDimensionalInformation();
+ }
+ for (int i = 0; i < 64; i++) {
+ stuRelatedImage[i] = new RELATED_IMAGE();
+ }
+
+ }
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/USER_TIME_SECTION.java b/src/main/java/com/netsdk/lib/structure/USER_TIME_SECTION.java
new file mode 100644
index 0000000..ac105a8
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/USER_TIME_SECTION.java
@@ -0,0 +1,14 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 用户的开门时间段
+ * @date 2021/2/8
+ */
+public class USER_TIME_SECTION extends NetSDKLib.SdkStructure {
+ public byte[] userTimeSections = new byte[20];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/VA_CAPS_INFO.java b/src/main/java/com/netsdk/lib/structure/VA_CAPS_INFO.java
new file mode 100644
index 0000000..b2a622a
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/VA_CAPS_INFO.java
@@ -0,0 +1,23 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+/**
+ * @author 251823
+ * @description 视频分析能力集
+ * @date 2021/01/11
+ */
+public class VA_CAPS_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 支持的场景列表
+ */
+ public byte[] szSceneName = new byte[NetSDKLib.MAX_SCENE_LIST_SIZE*NetSDKLib.MAX_NAME_LEN]; //TODO
+ /**
+ * 支持的场景个数
+ */
+ public int nSupportedSceneNum;
+ /**
+ * 预留字段
+ */
+ public byte[] byReserved = new byte[4];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/VA_DYNAMIC_CAPS_INFO.java b/src/main/java/com/netsdk/lib/structure/VA_DYNAMIC_CAPS_INFO.java
new file mode 100644
index 0000000..ace8bfa
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/VA_DYNAMIC_CAPS_INFO.java
@@ -0,0 +1,24 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 动态能力集
+ * @date 2021/01/11
+ */
+public class VA_DYNAMIC_CAPS_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 支持的场景类型,参考{ @link NetSDKLib.EM_SCENE_TYPE}
+ */
+ public int[] emSceneType = new int[32];
+ /**
+ * 支持的场景个数
+ */
+ public int nSceneNum;
+ /**
+ * 预留字段
+ */
+ public byte[] byReserved = new byte[252];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/VA_OBJECT_ANIMAL.java b/src/main/java/com/netsdk/lib/structure/VA_OBJECT_ANIMAL.java
new file mode 100644
index 0000000..c712996
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/VA_OBJECT_ANIMAL.java
@@ -0,0 +1,49 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @version 1.0
+ * @description 视频分析物体(动物)
+ * @date 2022/03/31
+ */
+public class VA_OBJECT_ANIMAL extends NetSDKLib.SdkStructure {
+ /**
+ * 物体ID, 每个ID表示一个唯一的物体
+ */
+ public int nObjectID;
+ /**
+ * 目标动物类型
+ */
+ public int emCategory;
+ /**
+ * 包围盒 动物对象在全景图中的框坐标,为0~8191相对坐标
+ */
+ public NET_RECT stuBoundingBox;
+ /**
+ * 动物对象重量,单位:g
+ */
+ public int nObjectWeight;
+ /**
+ * 物体截图
+ */
+ public NET_OBJECT_IMAGE_INFO stuImage;
+ /**
+ * 运动状态,参考枚举{ @link ENUM_MOTION_STATUS }
+ */
+ public int emMoveStatus;
+ /**
+ * 区域内状态,参考枚举{ @link ENUM_IN_REGION_STATUS }
+ */
+ public int emInRegionStatus;
+ /**
+ * 结果类型 0-实时 1-非实时
+ */
+ public int nResultType;
+ /**
+ * 保留字节,留待扩展
+ */
+ public byte[] bReserved = new byte[1024];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/VaccinateDateByteArr.java b/src/main/java/com/netsdk/lib/structure/VaccinateDateByteArr.java
new file mode 100644
index 0000000..ed0f73b
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/VaccinateDateByteArr.java
@@ -0,0 +1,15 @@
+package com.netsdk.lib.structure;
+
+import com.netsdk.lib.NetSDKLib;
+/**
+ * @author 251823
+ * @description 历史接种日期字符串对应字节数组
+ * @date 2021/08/15
+ */
+public class VaccinateDateByteArr extends NetSDKLib.SdkStructure {
+ /**
+ * 历史接种日期字符串对应字节数组
+ */
+ public byte[] vaccinateDateByteArr = new byte[32];
+}
+
diff --git a/src/main/java/com/netsdk/lib/structure/customize/CANDIDATE_INFO_CEX.java b/src/main/java/com/netsdk/lib/structure/customize/CANDIDATE_INFO_CEX.java
new file mode 100644
index 0000000..21bc564
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/customize/CANDIDATE_INFO_CEX.java
@@ -0,0 +1,67 @@
+package com.netsdk.lib.structure.customize;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.Utils;
+import com.netsdk.lib.structure.NET_TIME;
+
+import java.nio.charset.Charset;
+import java.util.Arrays;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 候选人信息拓展结构体,结构体, 日常使用以structure包和NetSDKLib下的同名结构体为主
+ * @date 2021/3/17
+ */
+public class CANDIDATE_INFO_CEX extends NetSDKLib.SdkStructure {
+ /** 姓名 */
+ public byte[] szPersonName = new byte[64];
+ /** 人员唯一标示(证件号码,工号,或其他编号) */
+ public byte[] szID = new byte[32];
+ /** 和查询图片的相似度,百分比表示,1~100 */
+ public byte bySimilarity;
+ /** 人员所属数据库范围,详见EM_FACE_DB_TYPE */
+ public byte byRange;
+ /** 当byRange为历史数据库时有效,表示查询人员出现的时间 */
+ public NET_TIME stTime;
+ /** 当byRange为历史数据库时有效,表示查询人员出现的地点 */
+ public byte[] szAddress = new byte[260];
+ /** 是否有识别结果,指这个检测出的人脸在库中有没有比对结果 */
+ public boolean bIsHit;
+ /** 通道号 */
+ public int nChannelID;
+
+ public String getPersonName() {
+ return new String(szPersonName, Charset.forName(Utils.getPlatformEncode())).trim();
+ }
+
+ public String getID() {
+ return new String(szID, Charset.forName(Utils.getPlatformEncode())).trim();
+ }
+
+ public String getAddress() {
+ return new String(szAddress, Charset.forName(Utils.getPlatformEncode())).trim();
+ }
+
+ @Override
+ public String toString() {
+ return "CANDIDATE_INFO_CEX{"
+ + "szPersonName="
+ + getPersonName()
+ + ", szID="
+ + getID()
+ + ", bySimilarity="
+ + bySimilarity
+ + ", byRange="
+ + byRange
+ + ", stTime="
+ + stTime
+ + ", szAddress="
+ + getAddress()
+ + ", bIsHit="
+ + bIsHit
+ + ", nChannelID="
+ + nChannelID
+ + '}';
+ }
+}
diff --git a/src/main/java/com/netsdk/lib/structure/customize/DEV_EVENT_CROSSLINE_INFO.java b/src/main/java/com/netsdk/lib/structure/customize/DEV_EVENT_CROSSLINE_INFO.java
new file mode 100644
index 0000000..f5f00ea
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/customize/DEV_EVENT_CROSSLINE_INFO.java
@@ -0,0 +1,158 @@
+package com.netsdk.lib.structure.customize;
+
+import com.netsdk.lib.NetSDKLib;
+
+import static com.netsdk.lib.NetSDKLib.*;
+
+/**
+ * 船只绊线入侵事件结构体
+ *
+ * ERR210428143 水面预警事件 专用结构体
+ *
+ * 注意: 其他项目不要使用, 通用的停车检测事件结构体见:
+ * {@link NetSDKLib.DEV_EVENT_CROSSLINE_INFO}
+ *
+ * @author 47040
+ * @since Created in 2021/5/13 19:03
+ */
+public class DEV_EVENT_CROSSLINE_INFO extends SdkStructure {
+
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 字节对齐
+ */
+ public byte[] bReserved1 = new byte[4];
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double PTS;
+ /**
+ * 事件发生的时间
+ */
+ public NET_TIME_EX UTC;
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 检测到的物体
+ */
+ public NET_MSG_OBJECT stuObject;
+ /**
+ * 事件对应文件信息
+ */
+ public NET_EVENT_FILE_INFO stuFileInfo;
+ /**
+ * 规则检测线
+ */
+ public NET_POINT[] DetectLine = (NET_POINT[]) new NET_POINT().toArray(NET_MAX_DETECT_LINE_NUM);
+ /**
+ * 规则检测线顶点数
+ */
+ public int nDetectLineNum;
+ /**
+ * 物体运动轨迹
+ */
+ public NET_POINT[] TrackLine = (NET_POINT[]) new NET_POINT().toArray(NET_MAX_TRACK_LINE_NUM);
+ /**
+ * 物体运动轨迹顶点数
+ */
+ public int nTrackLineNum;
+ /**
+ * 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ */
+ public byte bEventAction;
+ /**
+ * 表示入侵方向, 0-由左至右, 1-由右至左
+ */
+ public byte bDirection;
+ /**
+ * 字节对齐
+ */
+ public byte[] byReserved = new byte[1];
+ /**
+ * 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ */
+ public byte byImageIndex;
+ /**
+ * 抓图标志(按位),具体见 NET_RESERVED_COMMON,
+ * 0位:"*",1位:"Timing",2位:"Manual",
+ * 3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ */
+ public int dwSnapFlagMask;
+ /**
+ * 事件源设备上的index,-1表示数据无效,-1表示数据无效
+ */
+ public int nSourceIndex;
+ /**
+ * 事件源设备唯一标识,字段不存在或者为空表示本地设备
+ */
+ public byte[] szSourceDevice = new byte[MAX_PATH];
+ /**
+ * 事件触发累计次数, 类型为unsigned int
+ */
+ public int nOccurrenceCount;
+ /**
+ * 智能事件公共信息
+ */
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo;
+ /**
+ * 扩展信息
+ */
+ public NET_EXTENSION_INFO stuExtensionInfo;
+ /**
+ * 全景广角图
+ */
+ public SCENE_IMAGE_INFO_EX stuSceneImage;
+ /**
+ * 检测到人的数量
+ */
+ public int nObjetcHumansNum;
+ /**
+ * 检测的到人
+ */
+ public NET_VAOBJECT_NUMMAN[] stuObjetcHumans = (NET_VAOBJECT_NUMMAN[]) new NET_VAOBJECT_NUMMAN().toArray(100);
+ /**
+ * 规则编号,用于标示哪个规则触发的事件,缺省时默认为0
+ */
+ public int nRuleID;
+ /**
+ * 事件级别 {@link EM_EVENT_LEVEL}
+ */
+ public int emEventType;
+ /**
+ * 热成像横向视场角,单位度,实际角度乘以100 (ERR210428143 专用, 其他项目不要使用)
+ */
+ public int nThermoHFOV;
+ /**
+ * 热成像纵向视场角,单位度,实际角度乘以100 (ERR210428143 专用, 其他项目不要使用)
+ */
+ public int nThermoVFOV;
+ /**
+ * 船高 (ERR210428143 专用, 其他项目不要使用)
+ */
+ public int nBoatHeight;
+ /**
+ * 船长 (ERR210428143 专用, 其他项目不要使用)
+ */
+ public int nBoatLength;
+ /**
+ * 船速 (ERR210428143 专用, 其他项目不要使用)
+ */
+ public int nBoatSpeed;
+ /**
+ * 船距 (ERR210428143 专用, 其他项目不要使用)
+ */
+ public int nBoatDistance;
+ /**
+ * 字节对齐
+ */
+ public byte[] byReserved1 = new byte[480];
+}
diff --git a/src/main/java/com/netsdk/lib/structure/customize/DEV_EVENT_CROSSREGION_INFO.java b/src/main/java/com/netsdk/lib/structure/customize/DEV_EVENT_CROSSREGION_INFO.java
new file mode 100644
index 0000000..d0ab8b6
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/customize/DEV_EVENT_CROSSREGION_INFO.java
@@ -0,0 +1,209 @@
+package com.netsdk.lib.structure.customize;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.EM_CAPTURE_PROCESS_END_TYPE;
+import com.netsdk.lib.enumeration.EM_TRIGGER_TYPE;
+
+import static com.netsdk.lib.NetSDKLib.*;
+
+/**
+ * 船只的绊线入侵事件信息
+ *
+ * ERR210428143 水面预警事件 专用结构体
+ *
+ * 注意: 其他项目不要使用, 通用的绊线入侵事件结构体见:
+ * {@link NetSDKLib.DEV_EVENT_CROSSREGION_INFO}
+ *
+ * @author 47040
+ * @since Created in 2021/5/13 17:35
+ */
+public class DEV_EVENT_CROSSREGION_INFO extends SdkStructure {
+
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 字节对齐
+ */
+ public byte[] bReserved1 = new byte[4];
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double PTS;
+ /**
+ * 事件发生的时间
+ */
+ public NET_TIME_EX UTC;
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 检测到的物体
+ */
+ public NET_MSG_OBJECT stuObject;
+ /**
+ * 事件对应文件信息
+ */
+ public NET_EVENT_FILE_INFO stuFileInfo;
+ /**
+ * 规则检测区域
+ */
+ public NET_POINT[] DetectRegion = (NET_POINT[]) new NET_POINT().toArray(NET_MAX_DETECT_REGION_NUM);
+ /**
+ * 规则检测区域顶点数
+ */
+ public int nDetectRegionNum;
+ /**
+ * 物体运动轨迹
+ */
+ public NET_POINT[] TrackLine = (NET_POINT[]) new NET_POINT().toArray(NET_MAX_TRACK_LINE_NUM);
+ /**
+ * 物体运动轨迹顶点数
+ */
+ public int nTrackLineNum;
+ /**
+ * 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
+ */
+ public byte bEventAction;
+ /**
+ * 表示入侵方向, 0-进入, 1-离开,2-出现,3-消失
+ */
+ public byte bDirection;
+ /**
+ * 表示检测动作类型,0-出现 1-消失 2-在区域内 3-穿越区域
+ */
+ public byte bActionType;
+ /**
+ * 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
+ */
+ public byte byImageIndex;
+ /**
+ * 抓图标志(按位),具体见NET_RESERVED_COMMON ,
+ * 0位:"*",1位:"Timing",2位:"Manual",
+ * 3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
+ */
+ public int dwSnapFlagMask;
+ /**
+ * 事件源设备上的index,-1表示数据无效
+ */
+ public int nSourceIndex;
+ /**
+ * 事件源设备唯一标识,字段不存在或者为空表示本地设备
+ */
+ public byte[] szSourceDevice = new byte[MAX_PATH];
+ /**
+ * 事件触发累计次数, int 类型
+ */
+ public int nOccurrenceCount;
+ /**
+ * 货物通道信息
+ */
+ public NET_CUSTOM_INFO stuCustom;
+ /**
+ * 扩展信息
+ */
+ public NET_EXTENSION_INFO stuExtensionInfo;
+ /**
+ * 智能事件规则编号,用于标示哪个规则触发的事件
+ */
+ public int nRuleID;
+ /**
+ * 热成像横向视场角,单位度,实际角度乘以100 (ERR210428143 专用, 其他项目不要使用)
+ */
+ public int nThermoHFOV;
+ /**
+ * 热成像纵向视场角,单位度,实际角度乘以100 (ERR210428143 专用, 其他项目不要使用)
+ */
+ public int nThermoVFOV;
+ /**
+ * 船高 (ERR210428143 专用, 其他项目不要使用)
+ */
+ public int nBoatHeight;
+ /**
+ * 船长 (ERR210428143 专用, 其他项目不要使用)
+ */
+ public int nBoatLength;
+ /**
+ * 船速 (ERR210428143 专用, 其他项目不要使用)
+ */
+ public int nBoatSpeed;
+ /**
+ * 船距 (ERR210428143 专用, 其他项目不要使用)
+ */
+ public int nBoatDistance;
+ /**
+ * 保留字节,留待扩展.
+ */
+ public byte[] bReserved = new byte[300];
+ /**
+ * 检测到的物体个数
+ */
+ public int nObjectNum;
+ /**
+ * 检测到的物体
+ */
+ public NET_MSG_OBJECT[] stuObjectIDs = (NET_MSG_OBJECT[]) new NET_MSG_OBJECT().toArray(NET_MAX_OBJECT_LIST);
+ /**
+ * 轨迹数(与检测到的物体个数 nObjectNum 对应)
+ */
+ public int nTrackNum;
+ /**
+ * 轨迹信息(与检测到的物体对应)
+ */
+ public NET_POLY_POINTS[] stuTrackInfo = (NET_POLY_POINTS[]) new NET_POLY_POINTS().toArray(NET_MAX_OBJECT_LIST);
+ /**
+ * 智能事件公共信息
+ */
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo;
+ /**
+ * 全景广角图
+ */
+ public SCENE_IMAGE_INFO_EX stuSceneImage;
+ /**
+ * 检测到人的数量
+ */
+ public int nObjetcHumansNum;
+ /**
+ * 检测的到人
+ */
+ public NET_VAOBJECT_NUMMAN[] stuObjetcHumans = (NET_VAOBJECT_NUMMAN[]) new NET_VAOBJECT_NUMMAN().toArray(100);
+ /**
+ * 车身信息
+ */
+ public NET_MSG_OBJECT stuVehicle;
+ /**
+ * 触发类型,参考 {@link EM_TRIGGER_TYPE}
+ */
+ public int emTriggerType;
+ /**
+ * 标记抓拍帧
+ */
+ public int nMark;
+ /**
+ * 视频分析的数据源地址
+ */
+ public int nSource;
+ /**
+ * 视频分析帧序号
+ */
+ public int nFrameSequence;
+ /**
+ * 抓拍过程,参考 {@link EM_CAPTURE_PROCESS_END_TYPE}
+ */
+ public int emCaptureProcess;
+ /**
+ * 交通车辆信息
+ */
+ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar;
+ /**
+ * 公共信息
+ */
+ public EVENT_COMM_INFO stuCommInfo;
+
+}
diff --git a/src/main/java/com/netsdk/lib/structure/customize/DEV_EVENT_PARKINGDETECTION_INFO.java b/src/main/java/com/netsdk/lib/structure/customize/DEV_EVENT_PARKINGDETECTION_INFO.java
new file mode 100644
index 0000000..893ea60
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/customize/DEV_EVENT_PARKINGDETECTION_INFO.java
@@ -0,0 +1,136 @@
+package com.netsdk.lib.structure.customize;
+
+import com.netsdk.lib.NetSDKLib;
+
+import static com.netsdk.lib.NetSDKLib.MAX_PATH;
+import static com.netsdk.lib.NetSDKLib.NET_MAX_DETECT_REGION_NUM;
+
+/**
+ * 停船检测事件结构体
+ *
+ * ERR210428143 重型云台 水面预警事件 专用结构体
+ *
+ * 注意: 其他项目不要使用, 通用的停车检测事件结构体见:
+ * {@link NetSDKLib.DEV_EVENT_PARKINGDETECTION_INFO}
+ *
+ * @author 47040
+ * @since Created in 2021/5/13 16:57
+ */
+public class DEV_EVENT_PARKINGDETECTION_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 通道号
+ */
+ public int nChannelID;
+ /**
+ * 事件名称
+ */
+ public byte[] szName = new byte[128];
+ /**
+ * 字节对齐
+ */
+ public byte[] bReserved1 = new byte[4];
+ /**
+ * 时间戳(单位是毫秒)
+ */
+ public double PTS;
+ /**
+ * 事件发生的时间
+ */
+ public NetSDKLib.NET_TIME_EX UTC;
+ /**
+ * 事件ID
+ */
+ public int nEventID;
+ /**
+ * 检测到的物体
+ */
+ public NetSDKLib.NET_MSG_OBJECT stuObject;
+ /**
+ * 规则检测区域顶点数
+ */
+ public int nDetectRegionNum;
+ /**
+ * 规则检测区域
+ */
+ public NetSDKLib.NET_POINT[] DetectRegion = new NetSDKLib.NET_POINT[NET_MAX_DETECT_REGION_NUM];
+ /**
+ * 事件对应文件信息
+ */
+ public NetSDKLib.NET_EVENT_FILE_INFO stuFileInfo;
+ /**
+ *
+ */
+ public byte bEventAction;
+ /**
+ *
+ */
+ public byte[] byReserved = new byte[2];
+ /**
+ * 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从 0 开始
+ */
+ public byte byImageIndex;
+ /**
+ * 抓图标志(按位),具体见NET_RESERVED_COMMON
+ */
+ public int dwSnapFlagMask;
+ /**
+ * 事件源设备上的index,-1表示数据无效
+ */
+ public int nSourceIndex;
+ /**
+ * 事件源设备唯一标识,字段不存在或者为空表示本地设备
+ */
+ public byte[] szSourceDevice = new byte[MAX_PATH];
+ /**
+ * 事件触发累计次数
+ */
+ public int nOccurrenceCount;
+ /**
+ * 智能事件公共信息
+ */
+ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo;
+ /**
+ * 扩展信息
+ */
+ public NetSDKLib.NET_EXTENSION_INFO stuExtensionInfo;
+ /**
+ * 车位名称
+ */
+ public byte[] szCustomParkNo = new byte[64];
+
+ /**
+ * 热成像横向视场角,单位度,实际角度乘以100 (ERR210428143 专用)
+ */
+ public int nThermoHFOV;
+ /**
+ * 热成像纵向视场角,单位度,实际角度乘以100 (ERR210428143 专用)
+ */
+ public int nThermoVFOV;
+ /**
+ * 船高 (ERR210428143 专用, 其他项目不要使用)
+ */
+ public int nBoatHeight;
+ /**
+ * 船长 (ERR210428143 专用, 其他项目不要使用)
+ */
+ public int nBoatLength;
+ /**
+ * 船速 (ERR210428143 专用, 其他项目不要使用)
+ */
+ public int nBoatSpeed;
+ /**
+ * 船距 (ERR210428143 专用, 其他项目不要使用)
+ */
+ public int nBoatDistance;
+ /**
+ * 保留字节,留待扩展
+ */
+ public byte[] bReserved = new byte[396];
+
+ public DEV_EVENT_PARKINGDETECTION_INFO() {
+ for (int i = 0; i < DetectRegion.length; ++i) {
+ DetectRegion[i] = new NetSDKLib.NET_POINT();
+ }
+ }
+
+}
diff --git a/src/main/java/com/netsdk/lib/structure/customize/EVENT_INTELLI_COMM_INFO.java b/src/main/java/com/netsdk/lib/structure/customize/EVENT_INTELLI_COMM_INFO.java
new file mode 100644
index 0000000..80987cc
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/customize/EVENT_INTELLI_COMM_INFO.java
@@ -0,0 +1,34 @@
+package com.netsdk.lib.structure.customize;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.structure.POSTION;
+
+/**
+ * 智能报警事件公共信息
+ *
+ * ERR210428143 重型云台 水面预警事件 专用结构体
+ *
+ * 注意: 其他项目不要使用, 通用的停车检测事件结构体见:
+ * {@link NetSDKLib.EVENT_INTELLI_COMM_INFO}
+ *
+ * @author 47040
+ * @since Created in 2021/5/13 23:17
+ */
+public class EVENT_INTELLI_COMM_INFO extends NetSDKLib.SdkStructure {
+ /**
+ * 智能事件所属大类 取值为 {@link NetSDKLib.EM_CLASS_TYPE } 中的值
+ */
+ public int emClassType;
+ /**
+ * 该事件触发的预置点,对应该设置规则的预置点
+ */
+ public int nPresetID;
+ /**
+ * 位置信息 (ERR210428143 专用, 其他项目不要使用)
+ */
+ public POSTION stuPostion;
+ /**
+ * 保留字节,留待扩展.
+ */
+ public byte[] bReserved = new byte[112];
+}
diff --git a/src/main/java/com/netsdk/lib/structure/customize/MEDIAFILE_FACERECOGNITION_INFO.java b/src/main/java/com/netsdk/lib/structure/customize/MEDIAFILE_FACERECOGNITION_INFO.java
new file mode 100644
index 0000000..ab1b404
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/customize/MEDIAFILE_FACERECOGNITION_INFO.java
@@ -0,0 +1,70 @@
+package com.netsdk.lib.structure.customize;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.Utils;
+import com.netsdk.lib.structure.NET_TIME;
+
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description ERR210301049主动注册重新定向, 结构体, 日常使用以structure包和NetSDKLib下的同名结构体为主
+ * @date 2021/3/17
+ */
+public class MEDIAFILE_FACERECOGNITION_INFO extends NetSDKLib.SdkStructure {
+ /** 结构体大小 */
+ public int dwSize;
+ /** 报警发生时间 */
+ public NET_TIME stTime;
+ /** 报警发生地点 */
+ public byte[] szAddress = new byte[260];
+ /** 通道号 */
+ public int nChannelId;
+ /** 当前人脸匹配到的候选对象(扩展结构体) 数量 */
+ public int nCandidateExNum;
+ /** 当前人脸匹配到的候选对象信息, 实际返回个数同nCandidateNum */
+ // public CANDIDATE_INFO_CEX[] stuCandidatesEx = (CANDIDATE_INFO_CEX[]) new CANDIDATE_INFO_CEX().toArray(50);
+ public CANDIDATE_INFO_CEX[] stuCandidatesEx = new CANDIDATE_INFO_CEX[50];
+
+ public MEDIAFILE_FACERECOGNITION_INFO() {
+
+ for(int i=0;i getCandidateInfos() {
+ return new ArrayList<>(Arrays.asList(stuCandidatesEx).subList(0, nCandidateExNum));
+ }
+
+ @Override
+ public String toString() {
+ return "MEDIAFILE_FACERECOGNITION_INFO{"
+ + "stTime="
+ + stTime.toStringTime()
+ + ", szAddress="
+ + getAddress()
+ + ", nChannelId="
+ + nChannelId
+ + ", nCandidateExNum="
+ + nCandidateExNum
+ + ", stuCandidatesEx="
+ + getCandidateInfos().toString()
+ + '}';
+ }
+}
diff --git a/src/main/java/com/netsdk/lib/structure/optimized/ALARM_RTSC_RUNNING_INFO_V1.java b/src/main/java/com/netsdk/lib/structure/optimized/ALARM_RTSC_RUNNING_INFO_V1.java
new file mode 100644
index 0000000..f7b42ca
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/optimized/ALARM_RTSC_RUNNING_INFO_V1.java
@@ -0,0 +1,80 @@
+package com.netsdk.lib.structure.optimized;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.structure.NET_TIME_EX;
+
+/**
+ * @author 251823
+ * @description 信号机运行事件, 对应事件类型NET_ALARM_RTSC_RUNING
+ * @date 2021/09/01
+ */
+public class ALARM_RTSC_RUNNING_INFO_V1 extends NetSDKLib.SdkStructure{
+ /**
+ * 通道号,从0开始
+ */
+ public int nChannelID;
+
+ /**
+ * 事件动作, 1表示开始, 2表示结束, -1表示未知
+ */
+ public int nEventAction;
+
+ /**
+ * bit0:运行状态
+ bit1:控制方式
+ bit2:灯色状态信息
+ bit3:车道功能状态
+ bit4:车道/匝道控制状态信息
+ bit5:当前信号方案色步信息
+ bit6: 下一个周期信号方案色步信息
+ */
+ public int dwReportState;
+
+
+ /**
+ * 经度个数
+ */
+ public int nLongitudeNum;
+
+ /**
+ * 经度,格式:度,分,秒(秒为浮点数)
+ */
+ public double[] dbLongitude = new double[3];
+
+ /**
+ * 纬度个数
+ */
+ public int nLatitudeNum;
+
+ /**
+ * 纬度,格式:度,分,秒(秒为浮点数)
+ */
+ public double[] dbLatitude = new double[3];
+
+ /**
+ * 高度,单位为米
+ */
+ public double dbAltitude;
+
+ /**
+ * 事件发生时间,带时区偏差的UTC时间,单位秒
+ */
+ public NET_TIME_EX UTC;
+
+ /**
+ * 设备状态 ,参考{ @link EM_STATUS}
+ */
+ public int emStatus;
+
+ /**
+ * 控制模式,参考{ @link EM_CONTROL_MODE}
+ */
+ public int emControlMode;
+
+ /**
+ * 灯色状态信息
+ */
+ public LAMP_STATE_V1 stuLampStateInfo;
+
+
+}
diff --git a/src/main/java/com/netsdk/lib/structure/optimized/ENTER_INFO_V1.java b/src/main/java/com/netsdk/lib/structure/optimized/ENTER_INFO_V1.java
new file mode 100644
index 0000000..62ecbc9
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/optimized/ENTER_INFO_V1.java
@@ -0,0 +1,33 @@
+package com.netsdk.lib.structure.optimized;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 进口灯色状态信息
+ * @date 2022/11/28 09:35:44
+ */
+public class ENTER_INFO_V1 extends NetSDKLib.SdkStructure {
+ /**
+ * 进口方向
+ */
+ public int nEnterDir;
+ /**
+ * 进口灯组数量(0~48)
+ */
+ public int nLampNumber;
+ /**
+ * 灯组灯色信息个数
+ */
+ public int nLampGroupNum;
+ /**
+ * 灯组灯色信息,包含1到M(进口灯组数量)个灯组灯色信息
+ */
+ public LAMP_GROUP_INFO_V1[] stuLampGroupInfo = new LAMP_GROUP_INFO_V1[48];
+
+ public ENTER_INFO_V1() {
+ for (int i = 0; i < stuLampGroupInfo.length; i++) {
+ stuLampGroupInfo[i] = new LAMP_GROUP_INFO_V1();
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/netsdk/lib/structure/optimized/LAMP_GROUP_INFO_V1.java b/src/main/java/com/netsdk/lib/structure/optimized/LAMP_GROUP_INFO_V1.java
new file mode 100644
index 0000000..ff6f4d0
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/optimized/LAMP_GROUP_INFO_V1.java
@@ -0,0 +1,36 @@
+package com.netsdk.lib.structure.optimized;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 灯组灯色信息
+ * @date 2022/11/28 09:35:44
+ */
+public class LAMP_GROUP_INFO_V1 extends NetSDKLib.SdkStructure {
+ /**
+ * 灯组编号
+ */
+ public int nLampNo;
+ /**
+ * 灯组类型 {@link com.netsdk.lib.enumeration.EM_LAMP_TYPE}
+ */
+ public int emLampType;
+ /**
+ * 信号灯组灯色剩余时间,整数,单位为秒(s)
+ */
+ public int nRemainTime;
+ /**
+ * 灯组灯色个数
+ */
+ public int nLampColorCount;
+ /**
+ * 灯组灯色当灯组类型为1~12时,int[0]表示红色发光单元,int[1]表示黄色发光单元,int[2]表示绿色发光单元,int[3]保留
+ * 当灯组类型为13~15时,int[0]用于表示禁止通行信号发光单元,int[1]用于表示过渡信号发光单元,int[2]用于表示通行信号发光单元,int[3]保留
+ * 具体取值 0:无灯 1:灭灯 2:亮灯3:闪烁
+ */
+ public int[] nLampColor = new int[4];
+
+ public LAMP_GROUP_INFO_V1() {
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/netsdk/lib/structure/optimized/LAMP_STATE_V1.java b/src/main/java/com/netsdk/lib/structure/optimized/LAMP_STATE_V1.java
new file mode 100644
index 0000000..affe327
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/optimized/LAMP_STATE_V1.java
@@ -0,0 +1,29 @@
+package com.netsdk.lib.structure.optimized;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 251823
+ * @description 灯色状态信息
+ * @date 2022/11/28 09:35:44
+ */
+public class LAMP_STATE_V1 extends NetSDKLib.SdkStructure {
+ /**
+ * 信号灯控制路口的进口数量(0~8)
+ */
+ public int nEnterNumber;
+ /**
+ * 进口灯色状态信息个数
+ */
+ public int nEnterInfoNum;
+ /**
+ * 进口灯色状态信息,包含1到N(路口进口数量)个进口灯色状态信息
+ */
+ public ENTER_INFO_V1[] stuEnterInfo = new ENTER_INFO_V1[8];
+
+ public LAMP_STATE_V1() {
+ for (int i = 0; i < stuEnterInfo.length; i++) {
+ stuEnterInfo[i] = new ENTER_INFO_V1();
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/netsdk/lib/structure/optimized/NET_IN_WM_GET_COLLECTIONS_V1.java b/src/main/java/com/netsdk/lib/structure/optimized/NET_IN_WM_GET_COLLECTIONS_V1.java
new file mode 100644
index 0000000..5335814
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/optimized/NET_IN_WM_GET_COLLECTIONS_V1.java
@@ -0,0 +1,17 @@
+package com.netsdk.lib.structure.optimized;
+
+import com.netsdk.lib.NetSDKLib;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description CLIENT_GetMonitorWallCollectionsV1接口输入参数(获取电视墙预案信息)
+ * @date 2022/12/21 14:01
+ */
+public class NET_IN_WM_GET_COLLECTIONS_V1 extends NetSDKLib.SdkStructure{
+ public int dwSize;
+ public int nMonitorWallID; // 电视墙ID
+ public NET_IN_WM_GET_COLLECTIONS_V1(){
+ this.dwSize=this.size();
+ }
+}
diff --git a/src/main/java/com/netsdk/lib/structure/optimized/NET_OUT_WM_GET_COLLECTIONS_V1.java b/src/main/java/com/netsdk/lib/structure/optimized/NET_OUT_WM_GET_COLLECTIONS_V1.java
new file mode 100644
index 0000000..7f9faf3
--- /dev/null
+++ b/src/main/java/com/netsdk/lib/structure/optimized/NET_OUT_WM_GET_COLLECTIONS_V1.java
@@ -0,0 +1,28 @@
+package com.netsdk.lib.structure.optimized;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.structure.BYTE_64;
+import com.sun.jna.Pointer;
+
+/**
+ * @author 291189
+ * @version 1.0
+ * @description CLIENT_GetMonitorWallCollectionsV1接口输出参数(获取电视墙预案信息)
+ * @date 2022/12/21 14:09
+ */
+public class NET_OUT_WM_GET_COLLECTIONS_V1 extends NetSDKLib.SdkStructure {
+ public int dwSize;
+ public byte[] szReserved=new byte[4];
+ public Pointer pBuff; // 电视墙预案
+ public int nBuffSize; // 电视墙预案申请的大小,由用户申请
+ public int nRetBuffSize; // 电视墙预案实际返回的长度
+ public int nNameCount; // 电视墙预案名称个数
+ public BYTE_64[] szName=new BYTE_64[128]; // 电视墙预案名称
+
+ public NET_OUT_WM_GET_COLLECTIONS_V1(){
+ for(int i=0;i libs = handler.getLibsBySystem(currentSystem);
+ if (currentSystem.toLowerCase().contains("win")) {
+ return findLibs(libs, libName);
+ }
+ if (libName.startsWith("lib")) {
+ dynamicLibName = libName.substring(3);
+ }
+ return findLibs(libs, dynamicLibName);
+ }
+
+ private String findLibs(List libs, String libName) {
+ for (String lib : libs) {
+ if (libName.equalsIgnoreCase(lib)) {
+ return lib;
+ }
+ }
+ return "";
+ }
+
+ public List getLibsSystem(String system) {
+ return handler.getLibsBySystem(system);
+ }
+
+ private DynamicParseUtil() throws ParserConfigurationException {
+ // 获取SAX分析器的工厂实例,专门负责创建SAXParser分析器
+ saxParserFactory = SAXParserFactory.newInstance();
+ // 获取SAXParser分析器的实例
+ try {
+ saxParser = saxParserFactory.newSAXParser();
+ handler = new DynamicLibParseHandler();
+ } catch (ParserConfigurationException | SAXException e) {
+ throw new ParserConfigurationException();
+ }
+ }
+
+ public DynamicParseUtil(InputStream inputSteam)
+ throws ParserConfigurationException, IOException, SAXException {
+ this();
+ saxParser.parse(inputSteam, handler);
+ }
+
+ /** xml解析handler */
+ private class DynamicLibParseHandler extends DefaultHandler {
+ private HashMap> dynamics = new HashMap<>();
+ private List systems = Arrays.asList("win64", "win32", "linux64", "linux32", "mac64");
+ private String currentDynamicSystem;
+ private List libs;
+
+ public List getLibsBySystem(String system) {
+ return dynamics.get(system);
+ }
+
+ @Override
+ public void startDocument() throws SAXException {
+ super.startDocument();
+ }
+
+ @Override
+ public void startElement(String uri, String localName, String qName, Attributes attributes)
+ throws SAXException {
+ super.startElement(uri, localName, qName, attributes);
+ if (systems.contains(qName)) {
+ currentDynamicSystem = qName;
+ if (libs == null) {
+ libs = new ArrayList<>();
+ }
+ }
+ }
+
+ @Override
+ public void endElement(String uri, String localName, String qName) throws SAXException {
+ super.endElement(uri, localName, qName);
+ if (systems.contains(qName)) {
+ // 保存到hashmap中
+ dynamics.put(currentDynamicSystem, libs);
+ // 清除libs
+ libs = null;
+ }
+ }
+
+ @Override
+ public void characters(char[] ch, int start, int length) throws SAXException {
+ super.characters(ch, start, length);
+ String lib = new String(ch, start, length);
+ if (!lib.trim().isEmpty()) {
+ libs.add(lib);
+ }
+ }
+ }
+}
diff --git a/src/main/java/com/netsdk/module/AnalyseTaskModule.java b/src/main/java/com/netsdk/module/AnalyseTaskModule.java
new file mode 100644
index 0000000..e386750
--- /dev/null
+++ b/src/main/java/com/netsdk/module/AnalyseTaskModule.java
@@ -0,0 +1,331 @@
+package com.netsdk.module;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.ToolKits;
+import com.netsdk.lib.Utils;
+import com.netsdk.lib.enumeration.EM_DATA_SOURCE_TYPE;
+import com.netsdk.lib.enumeration.ENUMERROR;
+import com.netsdk.lib.structure.NET_MATCH_TWO_FACE_IN;
+import com.netsdk.lib.structure.NET_MATCH_TWO_FACE_OUT;
+import com.netsdk.module.entity.AddAnalyseTaskResult;
+import com.netsdk.module.entity.ImageCompareInfo;
+import com.netsdk.module.entity.PushAnalysePictureInfo;
+import com.sun.jna.Memory;
+import com.sun.jna.Pointer;
+import com.sun.jna.Structure;
+
+import javax.imageio.ImageIO;
+import java.awt.image.BufferedImage;
+import java.io.*;
+import java.nio.charset.Charset;
+import java.util.List;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 智能分析任务模块, 对智能分析任务相关接口进行二次封装, 方便调用
+ * @date 2020/10/19
+ */
+public class AnalyseTaskModule extends BaseModule {
+
+ public AnalyseTaskModule(NetSDKLib netSdkApi) {
+ super(netSdkApi);
+ }
+
+ public AnalyseTaskModule() {
+ super();
+ }
+
+ /**
+ * 1:1图片比对
+ *
+ * @param originImage 原图片
+ * @param compareImage 需要对比的图片
+ * @param waitTime 超时时间,默认超时时间3000
+ * @return 相似度 0-100
+ */
+ public int matchImage(long loginHandler, InputStream originImage, InputStream compareImage, int waitTime) throws IOException {
+ BufferedImage image = ImageIO.read(originImage);
+ NET_MATCH_TWO_FACE_IN inParam = new NET_MATCH_TWO_FACE_IN();
+ ImageCompareInfo originInfo = readImage(image);
+ //偏移量
+ inParam.stuOriginalImage.dwoffset = 0;
+
+ inParam.stuOriginalImage.dwLength = originInfo.getLength();
+ inParam.stuOriginalImage.dwWidth = originInfo.getWidth();
+ inParam.stuOriginalImage.dwHeight = originInfo.getHeight();
+ image = ImageIO.read(compareImage);
+
+ ImageCompareInfo compareInfo = readImage(image);
+ //偏移量
+ inParam.stuCompareImage.dwoffset = originInfo.getLength();
+ inParam.stuCompareImage.dwLength = compareInfo.getLength();
+ inParam.stuCompareImage.dwHeight = compareInfo.getHeight();
+ inParam.stuCompareImage.dwWidth = compareInfo.getWidth();
+ //图片写入
+ inParam.pSendBuf = new Memory(originInfo.getLength() + compareInfo.getLength());
+ inParam.pSendBuf.write(0, originInfo.getData(), 0, originInfo.getLength());
+ inParam.pSendBuf.write(originInfo.getLength(), compareInfo.getData(), 0, compareInfo.getLength());
+ //下发的数据大小
+ inParam.dwSendBufLen = originInfo.getLength() + compareInfo.getLength();
+ NET_MATCH_TWO_FACE_OUT outParam = new NET_MATCH_TWO_FACE_OUT();
+ Pointer pInParam = new Memory(inParam.size());
+ ToolKits.SetStructDataToPointer(inParam, pInParam, 0);
+ Pointer pOutParam = new Memory(outParam.size());
+ ToolKits.SetStructDataToPointer(outParam, pOutParam, 0);
+
+ boolean result = getNetsdkApi().CLIENT_MatchTwoFaceImage(new NetSDKLib.LLong(loginHandler), pInParam, pOutParam, waitTime);
+
+ if (!result) {
+ System.out.println("match two image failed. error is " + ENUMERROR.getErrorMessage());
+ return 0;
+ }
+ ToolKits.GetPointerData(pOutParam, outParam);
+ return outParam.nSimilarity;
+ }
+
+ /**
+ * 读取图片信息
+ *
+ * @param image 缓存的图片
+ * @return
+ * @throws IOException
+ */
+ private ImageCompareInfo readImage(BufferedImage image) {
+ return readImage(image, "jpg");
+ }
+
+ private ImageCompareInfo readImage(BufferedImage image, String format) {
+ ImageCompareInfo info = null;
+ try {
+ info = new ImageCompareInfo();
+ info.setHeight(image.getHeight());
+ info.setWidth(image.getWidth());
+
+ ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+ ImageIO.write(image, format, outputStream);
+ info.setData(outputStream.toByteArray());
+ info.setLength(outputStream.size());
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ return info;
+ }
+
+ /**
+ * 添加智能分析任务
+ *
+ * @param loginHandler 登录句柄
+ * @param type 智能分析数据源类型{@link EM_DATA_SOURCE_TYPE}
+ * @param inParam 输入参数,类型参考{@link EM_DATA_SOURCE_TYPE}所对应的结构体
+ * @param waitTime 超时时间
+ * @return 智能分析任务的结果
+ */
+ public AddAnalyseTaskResult addAnalyseTask(long loginHandler, EM_DATA_SOURCE_TYPE type, NetSDKLib.SdkStructure inParam, int waitTime) {
+ Pointer pointer = new Memory(inParam.size());
+ ToolKits.SetStructDataToPointer(inParam, pointer, 0);
+ NetSDKLib.NET_OUT_ADD_ANALYSE_TASK outParam = new NetSDKLib.NET_OUT_ADD_ANALYSE_TASK();
+ outParam.write();
+ boolean result = getNetsdkApi().CLIENT_AddAnalyseTask(new NetSDKLib.LLong(loginHandler), type.getType(), pointer, outParam, waitTime);
+ AddAnalyseTaskResult taskResult = new AddAnalyseTaskResult();
+ taskResult.setResult(result);
+ if (!result) {
+ System.out.println("add analyseTask failed.error is " + ENUMERROR.getErrorMessage());
+ return taskResult;
+ }
+ outParam.read();
+ taskResult.setTaskId(outParam.nTaskID);
+ taskResult.setVirtualChannel(outParam.nVirtualChannel);
+ return taskResult;
+ }
+
+ /**
+ * 启动智能分析任务
+ *
+ * @param loginHandler 登录句柄
+ * @param taskId 任务id
+ * @param waitTime 超时时间
+ * @return 任务是否启动成功
+ */
+ public boolean startAnalyseTask(long loginHandler, int taskId, int waitTime) {
+ NetSDKLib.NET_IN_START_ANALYSE_TASK inParam = new NetSDKLib.NET_IN_START_ANALYSE_TASK();
+ inParam.nTaskID = taskId;
+ NetSDKLib.NET_OUT_START_ANALYSE_TASK outParam = new NetSDKLib.NET_OUT_START_ANALYSE_TASK();
+ boolean result = getNetsdkApi().CLIENT_StartAnalyseTask(new NetSDKLib.LLong(loginHandler), inParam, outParam, waitTime);
+ if (!result) {
+ System.out.println("start analyse task failed.error is " + ENUMERROR.getErrorMessage());
+ }
+ return result;
+ }
+
+ /**
+ * 订阅智能分析任务
+ *
+ * @param loginHandler 登录句柄
+ * @param taskIds 分析任务id数组
+ * @param filterAlarmTypes 过滤的事件类型
+ * @param isFilterImage 是否包含图片
+ * @param waitTime 超时时间
+ * @param callBack 智能分析的回调函数
+ * @param dwUser 自定义数据,不需要可传入null
+ * @return 订阅句柄, 句柄为0表示订阅失败, 句柄不为0订阅成功
+ */
+ public long attachAnalyseTaskResult(long loginHandler, int[] taskIds, int[] filterAlarmTypes, boolean isFilterImage, NetSDKLib.fAnalyseTaskResultCallBack callBack, int waitTime, Structure dwUser) {
+ //对数组长度进行校验
+ if (taskIds.length > NetSDKLib.MAX_ANALYSE_TASK_NUM) {
+ System.out.println("taskIds's length is outOfBounds.please check");
+ return 0;
+ }
+ if (filterAlarmTypes.length > NetSDKLib.MAX_ANALYSE_FILTER_EVENT_NUM) {
+ System.out.println("dwAlarms's length is outOfBounds.Please check.");
+ return 0;
+ }
+ NetSDKLib.NET_IN_ATTACH_ANALYSE_RESULT inParam = new NetSDKLib.NET_IN_ATTACH_ANALYSE_RESULT();
+ //赋值
+ inParam.nTaskIdNum = taskIds.length;
+ System.arraycopy(taskIds, 0, inParam.nTaskIDs, 0, taskIds.length);
+ inParam.stuFilter.nEventNum = filterAlarmTypes.length;
+ System.arraycopy(filterAlarmTypes, 0, inParam.stuFilter.dwAlarmTypes, 0, filterAlarmTypes.length);
+ inParam.stuFilter.nImageDataFlag = isFilterImage ? 1 : 0;
+ inParam.cbAnalyseTaskResult = callBack;
+ if (dwUser != null) {
+ inParam.dwUser = dwUser.getPointer();
+ }
+ NetSDKLib.LLong attachHandler = getNetsdkApi().CLIENT_AttachAnalyseTaskResult(new NetSDKLib.LLong(loginHandler), inParam, waitTime);
+ if (attachHandler.longValue() == 0) {
+ System.out.println("attach analyseTask failed. error is " + ENUMERROR.getErrorMessage());
+ return 0;
+ }
+ return attachHandler.longValue();
+ }
+
+ /**
+ * 订阅智能分析任务
+ *
+ * @param loginHandler 登录句柄
+ * @param taskIds 分析任务id
+ * @param isFilterImage 是否包含图片
+ * @param callBack 订阅回调函数,建议写成单例模式
+ * @param waitTime 超时时间
+ * @param dwUser 自定义数据
+ * @return 订阅句柄, 句柄为0表示订阅失败, 不为0订阅成功
+ */
+ public long attachAnalyseTaskResult(long loginHandler, int[] taskIds, boolean isFilterImage, NetSDKLib.fAnalyseTaskResultCallBack callBack, int waitTime, Structure dwUser) {
+ return attachAnalyseTaskResult(loginHandler, taskIds, new int[]{}, isFilterImage, callBack, waitTime, dwUser);
+ }
+
+ /**
+ * 智能分析退订
+ *
+ * @param attachHandler 订阅句柄
+ * @return 是否成功退订
+ */
+ public boolean detachAnalyseTaskResult(long attachHandler) {
+ boolean result = getNetsdkApi().CLIENT_DetachAnalyseTaskResult(new NetSDKLib.LLong(attachHandler));
+ if (!result) {
+ System.out.println("detach analyseTask result failed. error is " + ENUMERROR.getErrorMessage());
+ }
+ return result;
+ }
+
+ ///////////////////////////推送图片有两种方式:文件的形式和远程url的方式,选择一种即可//////////////////////////////
+
+ /**
+ * @param type 推送图片还是url,1:图片文件,0:url
+ * @param infos
+ * @return
+ */
+ public boolean pushAnalysePicture(long loginHandler, int taskId, int type, List infos, int waitTime) {
+ if (type != 1 && type != 0) {
+ System.out.println("wrong type.please check.type 1: pictures,0:url");
+ return false;
+ }
+
+ NetSDKLib.NET_IN_PUSH_ANALYSE_PICTURE_FILE inParam = new NetSDKLib.NET_IN_PUSH_ANALYSE_PICTURE_FILE();
+ if (infos.size() > inParam.stuPushPicInfos.length) {
+ System.out.println("infos's length is outOfBounds in stuPushInfos.");
+ }
+ inParam.nTaskID = taskId;
+ inParam.nPicNum = infos.size();
+ PushAnalysePictureInfo info = null;
+ File file = null;
+ int totalLength = 0;
+ //推送图片
+ if (type == 1) {
+ for (int i = 0; i < inParam.nPicNum; i++) {
+ info = infos.get(i);
+ inParam.stuPushPicInfos[i].szFileID = info.getFileID().getBytes(Charset.forName(Utils.getPlatformEncode()));
+ if (i == 0) {
+ inParam.stuPushPicInfos[i].nOffset = 0;
+ } else {
+ inParam.stuPushPicInfos[i].nOffset = inParam.stuPushPicInfos[i - 1].nLength;
+ }
+ file = new File(info.getName());
+ inParam.stuPushPicInfos[i].nLength = (int) file.length();
+ totalLength += inParam.stuPushPicInfos[i].nLength;
+ //stuXRayCustomInfo暂不赋值,自定义数据,xX光机定制专用
+ }
+ inParam.nBinBufLen = totalLength;
+ //写入图片到Pointer
+ inParam.pBinBuf = new Memory(totalLength);
+ byte[] data;
+ int offset = 0;
+ for (PushAnalysePictureInfo picture : infos) {
+
+ try {
+ FileInputStream inputStream = null;
+ file = new File(picture.getName());
+ data = new byte[(int) file.length()];
+ inputStream = new FileInputStream(file);
+ inputStream.read(data);
+ inParam.pBinBuf.write(offset, data, 0, data.length);
+ offset += data.length;
+ inputStream.close();
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ }
+ } else {
+ //推送url
+ for (int i = 0; i < infos.size(); i++) {
+ info = infos.get(i);
+ // inParam.stuPushPicInfos[i].szFileID = info.getFileID().getBytes(Charset.forName(Utils.getPlatformEncode()));
+ byte[] fileId = info.getFileID().getBytes(Charset.forName(Utils.getPlatformEncode()));
+ System.arraycopy(fileId, 0, inParam.stuPushPicInfos[i].szFileID, 0, fileId.length);
+ // inParam.stuPushPicInfos[i].szUrl = info.getName().getBytes(Charset.forName(Utils.getPlatformEncode()));
+ byte[] name = info.getName().getBytes(Charset.forName(Utils.getPlatformEncode()));
+ System.arraycopy(name, 0, inParam.stuPushPicInfos[i].szUrl, 0, name.length);
+ }
+ }
+ NetSDKLib.NET_OUT_PUSH_ANALYSE_PICTURE_FILE outParam = new NetSDKLib.NET_OUT_PUSH_ANALYSE_PICTURE_FILE();
+ boolean result = getNetsdkApi().CLIENT_PushAnalysePictureFile(new NetSDKLib.LLong(loginHandler), inParam, outParam, waitTime);
+ if (!result) {
+ System.out.println("push picture failed.error is " + ENUMERROR.getErrorMessage());
+ }
+ return result;
+ }
+
+ /**
+ * 删除(停止)智能分析任务
+ *
+ * @param loginHandler 登录句柄
+ * @param taskId 智能任务id
+ * @param waitTime 超时时间
+ * @return 删除分析任务是否成功
+ */
+ public boolean removeAnalyseTask(long loginHandler, int taskId, int waitTime) {
+ NetSDKLib.NET_IN_REMOVE_ANALYSE_TASK inParam = new NetSDKLib.NET_IN_REMOVE_ANALYSE_TASK();
+ inParam.nTaskID = taskId;
+ NetSDKLib.NET_OUT_REMOVE_ANALYSE_TASK outParam = new NetSDKLib.NET_OUT_REMOVE_ANALYSE_TASK();
+ boolean result = getNetsdkApi().CLIENT_RemoveAnalyseTask(new NetSDKLib.LLong(loginHandler), inParam, outParam, waitTime);
+ if (!result) {
+ System.out.println("remove analyseTask failed.error is " + ENUMERROR.getErrorMessage());
+ }
+ return result;
+ }
+
+}
diff --git a/src/main/java/com/netsdk/module/AutoRegisterModule.java b/src/main/java/com/netsdk/module/AutoRegisterModule.java
new file mode 100644
index 0000000..312d787
--- /dev/null
+++ b/src/main/java/com/netsdk/module/AutoRegisterModule.java
@@ -0,0 +1,111 @@
+package com.netsdk.module;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.ToolKits;
+import com.netsdk.lib.Utils;
+import com.netsdk.lib.callback.fRedirectServerCallBackEx;
+import com.netsdk.lib.enumeration.ENUMERROR;
+import com.netsdk.lib.structure.EmptyStructure;
+import com.netsdk.lib.structure.NET_IN_START_REDIRECT_SERVICE;
+import com.sun.jna.Memory;
+import com.sun.jna.Pointer;
+
+import java.nio.charset.Charset;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 主动注册及重定向模块
+ * @date 2021/3/13
+ */
+public class AutoRegisterModule extends BaseModule {
+ public long listenServer(
+ String ip,
+ int port,
+ int timeOut,
+ NetSDKLib.fServiceCallBack serviceCallBack,
+ Pointer userData) {
+ NetSDKLib.LLong listenHandler =
+ getNetsdkApi().CLIENT_ListenServer(ip, port, timeOut, serviceCallBack, userData);
+ if (listenHandler.longValue() == 0L) {
+ System.out.println(ENUMERROR.getErrorMessage());
+ }
+ return listenHandler.longValue();
+ }
+
+ public boolean stopListenServer(long listenHandler) {
+ return getNetsdkApi().CLIENT_StopListenServer(new NetSDKLib.LLong(listenHandler));
+ }
+
+ /**
+ * 开启主动注册重定向监听服务
+ *
+ * @param ip 需要监听的ip,一般为本机
+ * @param port 监听的端口
+ * @param serverCallBack 重定向回调函数,请使用单例模式
+ * @param userData 自定义用户数据,一般传null,如果需要使用,请保证传入的数据不会被jvm回收
+ * @return
+ */
+ public long startRedirectService(
+ String ip, short port, fRedirectServerCallBackEx serverCallBack, Pointer userData) {
+ if (serverCallBack == null) {
+ System.out.println("注册回调为null,请检查参数");
+ return 0L;
+ }
+ NET_IN_START_REDIRECT_SERVICE inParam = new NET_IN_START_REDIRECT_SERVICE();
+ byte[] data = ip.getBytes(Charset.forName(Utils.getPlatformEncode()));
+ System.arraycopy(data, 0, inParam.szIP, 0, data.length);
+ inParam.nPort = port;
+
+ inParam.cbFuncEx = serverCallBack;
+ if (userData != null) {
+ inParam.dwUserData = userData;
+ }
+ // inParam.write();
+ Pointer pointer = new Memory(inParam.size());
+ ToolKits.SetStructDataToPointer(inParam, pointer, 0);
+ EmptyStructure outParam = new EmptyStructure();
+ outParam.write();
+ NetSDKLib.LLong serviceHandler =
+ getNetsdkApi().CLIENT_StartRedirectServiceEx(pointer, outParam.getPointer());
+ if (serviceHandler.longValue() == 0L) {
+ System.out.println(ENUMERROR.getErrorMessage());
+ }
+ return serviceHandler.longValue();
+ }
+
+ /**
+ * 停止重定向监听服务
+ *
+ * @param serviceHandler 监听句柄
+ * @return
+ */
+ public boolean stopRedirectService(long serviceHandler) {
+ boolean result = getNetsdkApi().CLIENT_StopRedirectService(new NetSDKLib.LLong(serviceHandler));
+ if (!result) {
+ System.out.println(ENUMERROR.getErrorMessage());
+ }
+ return result;
+ }
+
+ /**
+ * 设置设备需要重定向到的服务器信息,设备主动注册到重定向到的服务器
+ *
+ * @param devHandler 设备句柄
+ * @param redirectIp 重定向到的服务器ip
+ * @param redirectPort 重定向到的服务器port
+ * @param retry 尝试次数
+ * @return
+ */
+ public boolean setRedirectServer(
+ long devHandler, String redirectIp, short redirectPort, short retry) {
+ boolean result =
+ getNetsdkApi()
+ .CLIENT_SetAutoRegisterServerInfo(
+ new NetSDKLib.LLong(devHandler), redirectIp, redirectPort, retry);
+ if (!result) {
+ System.out.println(ENUMERROR.getErrorMessage());
+ }
+ return result;
+ }
+}
diff --git a/src/main/java/com/netsdk/module/BaseModule.java b/src/main/java/com/netsdk/module/BaseModule.java
new file mode 100644
index 0000000..de7dcf7
--- /dev/null
+++ b/src/main/java/com/netsdk/module/BaseModule.java
@@ -0,0 +1,482 @@
+package com.netsdk.module;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.NetSDKLib.fDisConnect;
+import com.netsdk.lib.NetSDKLib.fHaveReConnect;
+import com.netsdk.lib.ToolKits;
+import com.netsdk.lib.Utils;
+import com.netsdk.lib.enumeration.EM_EVENT_IVS_TYPE;
+import com.netsdk.lib.enumeration.ENUMERROR;
+import com.netsdk.module.entity.DeviceInfo;
+import com.sun.jna.Callback;
+import com.sun.jna.Pointer;
+import com.sun.jna.Structure;
+import com.sun.jna.ptr.IntByReference;
+
+import java.io.File;
+import java.nio.charset.Charset;
+import java.text.SimpleDateFormat;
+
+/**
+ * \if ENGLISH_LANG
+ *
+ * \else netsdk api二次封装,基础模块,包含一些常用的方法和功能 \endif
+ *
+ * @author 47081
+ * @version 1.0
+ * @since 2020/8/12
+ */
+public class BaseModule {
+
+ private NetSDKLib netsdkApi;
+
+ private Callback messageCallback;
+
+ public BaseModule() {
+ this(NetSDKLib.NETSDK_INSTANCE);
+ }
+
+ public BaseModule(NetSDKLib netSdkApi) {
+ this.netsdkApi = netSdkApi;
+ }
+
+ public NetSDKLib getNetsdkApi() {
+ return netsdkApi;
+ }
+
+ public void setNetsdkApi(NetSDKLib netsdkApi) {
+ this.netsdkApi = netsdkApi;
+ }
+
+ /**
+ * netsdk初始化,默认开启sdk日志
+ *
+ * @param disConnect 断线回调
+ * @param reconnect 重连回调
+ * @return
+ */
+ public boolean init(fDisConnect disConnect, fHaveReConnect reconnect) {
+ return init(disConnect, reconnect, true);
+ }
+
+ /**
+ * netsdk初始化
+ *
+ * @param disConnect 断线回调
+ * @param reConnect 重连回调
+ * @param enableLog 是否开启sdk日志
+ * @return
+ */
+ public boolean init(fDisConnect disConnect, fHaveReConnect reConnect, boolean enableLog) {
+ return init(disConnect, reConnect, enableLog, 5000, 1, 10000, 3000);
+ }
+ /**
+ * netsdk初始化,包括disconnect回调函数,reconnect回调函数
+ *
+ * @param disConnect 断线回调,回调请使用单例模式
+ * @param reconnect 重连回调,回调请使用单例模式
+ * @param enableLog 是否打开sdk日志
+ * @param waitTime 登录超时时间
+ * @param tryTimes 尝试次数
+ * @param nConnectTime 登录时尝试建立链接的超时时间
+ * @param nGetConnInfoTime 设置子连接的超时时间
+ * @return
+ */
+ public boolean init(
+ fDisConnect disConnect,
+ fHaveReConnect reconnect,
+ boolean enableLog,
+ int waitTime,
+ int tryTimes,
+ int nConnectTime,
+ int nGetConnInfoTime) {
+ if (enableLog) {
+ // 配置日志
+ enableLog("sdk_log", null);
+ }
+ boolean bInit = netsdkApi.CLIENT_Init(disConnect, null);
+ if (!bInit) {
+ System.out.println("Initialize SDK failed");
+ return false;
+ }
+ if (reconnect != null) {
+ // 设置断线重连回调接口, 此操作为可选操作,但建议用户进行设置
+ netsdkApi.CLIENT_SetAutoReconnect(reconnect, null);
+ }
+
+ // 设置登录超时时间和尝试次数,可选
+ // 登录时尝试建立链接1 次
+ netsdkApi.CLIENT_SetConnectTime(waitTime, tryTimes);
+ // 设置更多网络参数, NET_PARAM 的nWaittime,
+ // nConnectTryNum 成员与 CLIENT_SetConnectTime
+ // 接口设置的登录设备超时时间和尝试次数意义相同,可选
+ NetSDKLib.NET_PARAM netParam = new NetSDKLib.NET_PARAM();
+ // 登录时尝试建立链接的超时时间
+ netParam.nConnectTime = nConnectTime;
+ // 设置子连接的超时时间
+ netParam.nGetConnInfoTime = nGetConnInfoTime;
+ netsdkApi.CLIENT_SetNetworkParam(netParam);
+ return true;
+ }
+
+ /**
+ * 开启sdk日志
+ *
+ * @param path 保存日志的文件夹
+ * @param fileName 日志文件名称
+ */
+ private void enableLog(String path, String fileName) {
+ NetSDKLib.LOG_SET_PRINT_INFO setLog = new NetSDKLib.LOG_SET_PRINT_INFO();
+ File pathDir = new File(path);
+ if (!pathDir.exists()) pathDir.mkdir();
+
+ // 这里的log保存地址依据实际情况自己调整
+ if (pathDir.getAbsolutePath().endsWith("/") || pathDir.getAbsolutePath().endsWith("\\")) {
+ path = pathDir.getAbsolutePath().substring(0, pathDir.getAbsolutePath().length() - 1);
+ } else {
+ path = pathDir.getAbsolutePath();
+ }
+ String logPath;
+ if (fileName != null) {
+ if (fileName.endsWith(".log")) {
+ logPath = path + "/" + fileName;
+ } else {
+ logPath = path + "/" + fileName + ".log";
+ }
+ } else {
+ logPath = path + "/sdk_log" + getDate() + ".log";
+ }
+ setLog.nPrintStrategy = 0;
+ setLog.bSetFilePath = 1;
+ System.arraycopy(
+ logPath.getBytes(Charset.forName(Utils.getPlatformEncode())),
+ 0,
+ setLog.szLogFilePath,
+ 0,
+ logPath.getBytes(Charset.forName(Utils.getPlatformEncode())).length);
+ setLog.bSetPrintStrategy = 1;
+ boolean bLogOpen = netsdkApi.CLIENT_LogOpen(setLog);
+ if (!bLogOpen) {
+ System.err.println("Failed to open NetSDK log");
+ }
+ }
+
+ /** 获取当前时间 */
+ public String getDate() {
+ SimpleDateFormat simpleDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ return simpleDate.format(new java.util.Date()).replace(" ", "_").replace(":", "-");
+ }
+
+ /**
+ * 常用登录接口,默认使用{@link
+ * NetSDKLib#CLIENT_LoginWithHighLevelSecurity(NetSDKLib.NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY,
+ * NetSDKLib.NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY)}接口登录
+ *
+ * @param ip Device IP
+ * @param port Device Port
+ * @param username User Name
+ * @param password Password
+ * @return 登录的设备信息
+ */
+ public DeviceInfo login(String ip, int port, String username, String password) {
+ return login(ip, port, username, password, 2);
+ }
+
+ /**
+ * 选择登录的接口 loginType: 0: 使用{@link NetSDKLib#CLIENT_LoginEx(String, int, String, String, int,
+ * Pointer, NetSDKLib.NET_DEVICEINFO, IntByReference)} 1: 使用{@link
+ * NetSDKLib#CLIENT_LoginEx2(String, int, String, String, int, Pointer,
+ * NetSDKLib.NET_DEVICEINFO_Ex, IntByReference)} 2: 使用{@link
+ * NetSDKLib#CLIENT_LoginWithHighLevelSecurity(NetSDKLib.NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY,
+ * NetSDKLib.NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY)}
+ *
+ * @param ip Device IP
+ * @param port Device Port
+ * @param username User Name
+ * @param password Password
+ * @param loginType 登录类型
+ * @return 登录的设备信息
+ */
+ public DeviceInfo login(String ip, int port, String username, String password, int loginType) {
+ DeviceInfo result = null;
+ if (loginType == 0) {
+ // 默认使用tcp方式登录
+ result = loginEx(ip, port, username, password, 0, null);
+ } else if (loginType == 1) {
+ // 使用tcp方式登录
+ result = loginEx2(ip, port, username, password, 0, null);
+ } else if (loginType == 2) {
+ // 使用tcp方式登录
+ result = loginWithHighSecurity(ip, port, username, password, 0, null);
+ }
+ return result;
+ }
+
+ /**
+ * 使用指定登录接口的登录类型去登录设备
+ *
+ * @param ip 设备ip
+ * @param port 端口号
+ * @param username 用户名
+ * @param password 密码
+ * @param loginType 登录类型
+ * @param emType 登录方式,参考{@link BaseModule#loginWithHighSecurity}的emSpecCap
+ * @param pCapParam 登录方式对应的参数,与emType对应
+ * @return
+ */
+ public DeviceInfo login(
+ String ip,
+ int port,
+ String username,
+ String password,
+ int loginType,
+ int emType,
+ Pointer pCapParam) {
+ DeviceInfo result = null;
+ if (loginType == 0) {
+ result = loginEx(ip, port, username, password, emType, pCapParam);
+ } else if (loginType == 1) {
+ result = loginEx2(ip, port, username, password, emType, pCapParam);
+ } else if (loginType == 2) {
+ result = loginWithHighSecurity(ip, port, username, password, emType, pCapParam);
+ }
+ return result;
+ }
+
+ /**
+ * 默认使用高安全登录接口
+ *
+ * @param ip ip
+ * @param port 端口
+ * @param username 用户名
+ * @param password 密码
+ * @param emType 登录方式
+ * @param pCapParam 登录方式对应的参数
+ * @return
+ */
+ public DeviceInfo login(
+ String ip, int port, String username, String password, int emType, Pointer pCapParam) {
+ return login(ip, port, username, password, 2, emType, pCapParam);
+ }
+
+ /**
+ * lpDeviceInfo内存由用户申请释放
+ *
+ * @param ip Device IP
+ * @param port Device Port
+ * @param username User Name
+ * @param password Password
+ * @param nSpecCap nSpecCap = 0为TCP方式下的登入,void* pCapParam填NULL nSpecCap = 2为主动注册的登入,void*
+ * pCapParam填NULL nSpecCap = 3为组播方式下的登入,void* pCapParam填NULL nSpecCap = 4为UDP方式下的登入,void*
+ * pCapParam填NULL nSpecCap = 6为只建主连接下的登入,void* pCapParam填NULL nSpecCap = 7为SSL加密,void*
+ * pCapParam填NULL nSpecCap = 9为登录远程设备,这个时候void* pCapParam填入远程设备的名字的字符串 nSpecCap =
+ * 12为LDAP方式登录,void* pCapParam填NULL nSpecCap = 13为AD方式登录,void* pCapParam填NULL nSpecCap =
+ * 14为Radius登录方式,void* pCapParam填NULL nSpecCap = 15为Socks5登陆方式,这个时候void*
+ * pCapParam填入Socks5服务器的IP&&port&&ServerName&&ServerPassword字符串 nSpecCap = 16为代理登陆方式,这个时候void*
+ * pCapParam填入SOCKET值 nSpecCap = 19为P2P登陆方式,void* pCapParam填NULL nSpecCap = 20为手机客户端登入,void*
+ * pCapParam填NULL
+ * @return 登录的设备信息
+ */
+ public DeviceInfo loginEx(
+ String ip, int port, String username, String password, int nSpecCap, Pointer pCapParam) {
+ NetSDKLib.NET_DEVICEINFO deviceInfo = new NetSDKLib.NET_DEVICEINFO();
+ NetSDKLib.LLong loginHandler =
+ netsdkApi.CLIENT_LoginEx(
+ ip, port, username, password, nSpecCap, pCapParam, deviceInfo, new IntByReference(0));
+ if (loginHandler.longValue() == 0) {
+ System.out.println("login failed." + ToolKits.getErrorCode());
+ }
+
+ return DeviceInfo.create(loginHandler.longValue(), deviceInfo);
+ }
+
+ /**
+ * {@link NetSDKLib#CLIENT_LoginEx2(String, int, String, String, int, Pointer,
+ * NetSDKLib.NET_DEVICEINFO_Ex, IntByReference)}接口登录
+ *
+ * @param ip 设备ip
+ * @param port 设备登录端口
+ * @param username 用户名
+ * @param password 密码
+ * @param nSpecCap nSpecCap = 0为TCP方式下的登入,pCapParam填NULL nSpecCap = 2为主动注册的登入,pCapParam填NULL
+ * nSpecCap = 3为组播方式下的登入,pCapParam填NULL nSpecCap = 4为UDP方式下的登入,pCapParam填NULL nSpecCap =
+ * 6为只建主连接下的登入,pCapParam填NULL nSpecCap = 7为SSL加密,pCapParam填NULL nSpecCap =
+ * 9为登录远程设备,这个时候pCapParam填入远程设备的名字的字符串 nSpecCap = 12为LDAP方式登录,pCapParam填NULL nSpecCap =
+ * 13为AD方式登录,pCapParam填NULL nSpecCap = 14为Radius登录方式,pCapParam填NULL nSpecCap =
+ * 15为Socks5登陆方式,这个时候pCapParam填入Socks5服务器的IP&&port&&ServerName&&ServerPassword字符串 nSpecCap =
+ * 16为代理登陆方式,这个时候pCapParam填入SOCKET值 nSpecCap = 19为P2P登陆方式,pCapParam填NULL nSpecCap =
+ * 20为手机客户端登入,pCapParam填NULL
+ * @param pCapParam 根据nSpecCap的值对应
+ * @return DeviceInfo 登录的设备信息
+ */
+ public DeviceInfo loginEx2(
+ String ip, int port, String username, String password, int nSpecCap, Pointer pCapParam) {
+ NetSDKLib.NET_DEVICEINFO_Ex info = new NetSDKLib.NET_DEVICEINFO_Ex();
+ NetSDKLib.LLong loginHandler =
+ netsdkApi.CLIENT_LoginEx2(
+ ip, port, username, password, nSpecCap, pCapParam, info, new IntByReference(0));
+ return DeviceInfo.create(loginHandler.longValue(), info);
+ }
+
+ /**
+ * 高安全登录接口LoginWithHighSecurity
+ *
+ * @param ip 设备ip
+ * @param port 设备端口
+ * @param username 用户名
+ * @param password 密码
+ * @param emSpecCap 登录模式,同nSpecCap nSpecCap = 0为TCP方式下的登入,void* pCapParam填NULL nSpecCap =
+ * 2为主动注册的登入,void* pCapParam填NULL nSpecCap = 3为组播方式下的登入,void* pCapParam填NULL nSpecCap =
+ * 4为UDP方式下的登入,void* pCapParam填NULL nSpecCap = 6为只建主连接下的登入,void* pCapParam填NULL nSpecCap =
+ * 7为SSL加密,void* pCapParam填NULL nSpecCap = 9为登录远程设备,这个时候void* pCapParam填入远程设备的名字的字符串 nSpecCap
+ * = 12为LDAP方式登录,void* pCapParam填NULL nSpecCap = 13为AD方式登录,void* pCapParam填NULL nSpecCap =
+ * 14为Radius登录方式,void* pCapParam填NULL nSpecCap = 15为Socks5登陆方式,这个时候void*
+ * pCapParam填入Socks5服务器的IP&&port&&ServerName&&ServerPassword字符串 nSpecCap = 16为代理登陆方式,这个时候void*
+ * pCapParam填入SOCKET值 nSpecCap = 19为P2P登陆方式,void* pCapParam填NULL nSpecCap = 20为手机客户端登入,void*
+ * pCapParam填NULL
+ * @return 登录的设备信息
+ */
+ public DeviceInfo loginWithHighSecurity(
+ String ip, int port, String username, String password, int emSpecCap, Pointer pCapParam) {
+ NetSDKLib.NET_DEVICEINFO_Ex deviceInfo;
+ // 入参
+ NetSDKLib.NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY inParam =
+ new NetSDKLib.NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY();
+ inParam.szIP = ip.getBytes(Charset.forName(Utils.getPlatformEncode()));
+ inParam.nPort = port;
+ inParam.szUserName = username.getBytes(Charset.forName(Utils.getPlatformEncode()));
+ inParam.szPassword = password.getBytes(Charset.forName(Utils.getPlatformEncode()));
+ inParam.emSpecCap = emSpecCap;
+ if (pCapParam != null) {
+ inParam.pCapParam = pCapParam;
+ }
+ // 出参
+ NetSDKLib.NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY outParam =
+ new NetSDKLib.NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY();
+
+ NetSDKLib.LLong loginHandler = netsdkApi.CLIENT_LoginWithHighLevelSecurity(inParam, outParam);
+ if (loginHandler.longValue() == 0) {
+ System.out.println("login failed." + ENUMERROR.getErrorMessage());
+ }
+ deviceInfo = outParam.stuDeviceInfo;
+ return DeviceInfo.create(loginHandler.longValue(), deviceInfo);
+ }
+
+ /**
+ * 登出设备
+ *
+ * @param loginHandler 登录句柄
+ * @return true:登出成功,false:登出失败
+ */
+ public boolean logout(long loginHandler) {
+ return netsdkApi.CLIENT_Logout(new NetSDKLib.LLong(loginHandler));
+ }
+
+ /** 清理sdk资源,与init配套使用 */
+ public void clean() {
+ netsdkApi.CLIENT_Cleanup();
+ }
+
+ /**
+ * 订阅智能事件
+ *
+ * @param loginHandler 登录句柄
+ * @param channelId 通道号,0-n,为-1表示订阅所有通道(某些设备不支持-1)
+ * @param alarmType 事件类型
+ * @param needPicture 是否需要图片
+ * @param callBack 回调函数,订阅后事件触发的数据在回调中获取
+ * @param dwUser 自定义用户数据,不需要使用可传入null(如果使用dwUser,需要保持dwUser不被jvm回收,不然回调中获取的dwUser数据会乱码或报错)
+ * @param reserved 保留数据,一般传null
+ * @return 订阅的句柄值
+ */
+ public long realLoadPicture(
+ long loginHandler,
+ int channelId,
+ EM_EVENT_IVS_TYPE alarmType,
+ boolean needPicture,
+ NetSDKLib.fAnalyzerDataCallBack callBack,
+ Structure dwUser,
+ Structure reserved) {
+ NetSDKLib.LLong realLoadHandler =
+ netsdkApi.CLIENT_RealLoadPictureEx(
+ new NetSDKLib.LLong(loginHandler),
+ channelId,
+ alarmType.getType(),
+ needPicture ? 1 : 0,
+ callBack,
+ dwUser != null ? dwUser.getPointer() : null,
+ reserved != null ? reserved.getPointer() : null);
+ if (realLoadHandler.longValue() == 0) {
+ System.out.println(
+ "realLoadPicture failed.handler:"
+ + loginHandler
+ + ",error is:"
+ + ENUMERROR.getErrorMessage());
+ }
+ return realLoadHandler.longValue();
+ }
+
+ /**
+ * @param attachHandler 订阅句柄
+ * @return 退订是否成功
+ */
+ public boolean stopRealLoadPicture(long attachHandler) {
+ boolean result = netsdkApi.CLIENT_StopLoadPic(new NetSDKLib.LLong(attachHandler));
+ if (!result) {
+ System.out.println("stop realLoadPicture failed.error:" + ENUMERROR.getErrorMessage());
+ }
+ return result;
+ }
+
+ /**
+ * 向设备订阅报警, 普通报警订阅,不带图片
+ *
+ * @param loginHandler 登录句柄
+ * @param messageCallback 回调函数, {@link NetSDKLib.fMessCallBack} 或者{@link
+ * NetSDKLib.fMessCallBackEx1} 回调函数建议使用单例模式
+ * @param dwUser 自定义数据,一般传入null即可(如果使用dwUser,需要保持dwUser不被jvm回收,不然回调中获取的dwUser数据会乱码或报错)
+ * @return 订阅是否成功
+ */
+ public boolean startListen(long loginHandler, Callback messageCallback, Pointer dwUser) {
+
+ if (this.messageCallback != null) {
+ System.out.println("message callback already set");
+ } else {
+ if (messageCallback == null) {
+ System.out.println("the message callback is null");
+ return false;
+ }
+ if (messageCallback instanceof NetSDKLib.fMessCallBack) {
+ this.messageCallback = messageCallback;
+ getNetsdkApi().CLIENT_SetDVRMessCallBack(messageCallback, dwUser);
+ } else if (messageCallback instanceof NetSDKLib.fMessCallBackEx1) {
+ this.messageCallback = messageCallback;
+ getNetsdkApi()
+ .CLIENT_SetDVRMessCallBackEx1((NetSDKLib.fMessCallBackEx1) messageCallback, dwUser);
+ } else {
+ System.out.println(
+ "the message callback type is fMessCallBack or fMessCallBackEx1,please check");
+ return false;
+ }
+ }
+ boolean result = getNetsdkApi().CLIENT_StartListenEx(new NetSDKLib.LLong(loginHandler));
+ if (!result) {
+ System.out.println("startListen failed.error is " + ENUMERROR.getErrorMessage());
+ }
+ return result;
+ }
+
+ /**
+ * 停止普通报警订阅
+ *
+ * @param loginHandler 登录句柄
+ * @return 退订是否成功
+ */
+ public boolean stopListen(long loginHandler) {
+ boolean result = getNetsdkApi().CLIENT_StopListen(new NetSDKLib.LLong(loginHandler));
+ if (!result) {
+ System.out.println("stop listen failed.error is " + ENUMERROR.getErrorMessage());
+ }
+ return result;
+ }
+}
diff --git a/src/main/java/com/netsdk/module/ConfigModule.java b/src/main/java/com/netsdk/module/ConfigModule.java
new file mode 100644
index 0000000..88157c4
--- /dev/null
+++ b/src/main/java/com/netsdk/module/ConfigModule.java
@@ -0,0 +1,382 @@
+package com.netsdk.module;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.ToolKits;
+import com.netsdk.lib.enumeration.EM_NEW_CONFIG;
+import com.netsdk.lib.enumeration.EM_NEW_QUERY_SYSTEM_INFO;
+import com.netsdk.lib.enumeration.ENUMERROR;
+import com.netsdk.lib.enumeration.NET_EM_CFG_OPERATE_TYPE;
+import com.netsdk.lib.structure.NET_CFG_BGY_CUSTOMERCFG;
+import com.netsdk.lib.structure.NET_CFG_FORBIDDEN_ADVERT_PLAY;
+import com.netsdk.lib.structure.NET_CFG_HEALTH_CODE_INFO;
+import com.netsdk.module.entity.ForbiddenAdvertPlayInfoConfig;
+import com.sun.jna.Memory;
+import com.sun.jna.Pointer;
+import com.sun.jna.ptr.IntByReference;
+
+import java.util.List;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 设备配置的获取与设置二次封装
+ * @date 2020/9/14
+ */
+public class ConfigModule extends BaseModule {
+ private final NetSDKLib configApi;
+
+ public ConfigModule(NetSDKLib netSdkApi) {
+ super(netSdkApi);
+ this.configApi = NetSDKLib.CONFIG_INSTANCE;
+ }
+
+ public ConfigModule(NetSDKLib netSDKApi, NetSDKLib configApi) {
+ super(netSDKApi);
+ this.configApi = configApi;
+ }
+
+ public ConfigModule() {
+ this(NetSDKLib.NETSDK_INSTANCE, NetSDKLib.CONFIG_INSTANCE);
+ }
+
+ public NetSDKLib getConfigApi() {
+ return configApi;
+ }
+
+ /**
+ * 全屏广告模式配置
+ *
+ * @return
+ */
+ public boolean bgyCustomerCfg(long loginHandler, NET_CFG_BGY_CUSTOMERCFG config) {
+ Pointer pointer = new Memory(config.size());
+ ToolKits.SetStructDataToPointer(config, pointer, 0);
+ return getNetsdkApi()
+ .CLIENT_SetConfig(
+ new NetSDKLib.LLong(loginHandler),
+ NET_EM_CFG_OPERATE_TYPE.NET_EM_CFG_BGY_CUSTOMERCFG,
+ -1,
+ pointer,
+ config.size(),
+ 5000,
+ new IntByReference(0),
+ null);
+ }
+
+ /**
+ * 获取全屏广告配置
+ *
+ * @param loginHandler
+ * @return
+ */
+ public NET_CFG_BGY_CUSTOMERCFG getBgyCustomerCfg(long loginHandler) {
+ NET_CFG_BGY_CUSTOMERCFG config = new NET_CFG_BGY_CUSTOMERCFG();
+ Pointer pointer = new Memory(config.size());
+ ToolKits.SetStructDataToPointer(config, pointer, 0);
+ boolean result =
+ getNetsdkApi()
+ .CLIENT_GetConfig(
+ new NetSDKLib.LLong(loginHandler),
+ NET_EM_CFG_OPERATE_TYPE.NET_EM_CFG_BGY_CUSTOMERCFG,
+ -1,
+ pointer,
+ config.size(),
+ 5000,
+ null);
+ if (!result) {
+ System.out.println("获取全屏广告配置失败." + ENUMERROR.getErrorMessage());
+ return null;
+ }
+ ToolKits.GetPointerData(pointer, config);
+ return config;
+ }
+
+ /**
+ * 配置广告禁播时间段
+ *
+ * @return
+ */
+ public boolean forbiddenAdvertPlayConfig(
+ long loginHandler, List configs) {
+ NET_CFG_FORBIDDEN_ADVERT_PLAY config = new NET_CFG_FORBIDDEN_ADVERT_PLAY();
+ if (configs.size() > config.stuAdvertInfo.length) {
+ System.out.println("超出最大时间段设置");
+ return false;
+ }
+ config.nAdvertNum = configs.size();
+ ForbiddenAdvertPlayInfoConfig fb;
+ for (int i = 0; i < configs.size(); i++) {
+ fb = configs.get(i);
+ config.stuAdvertInfo[i].bEnable = fb.isbEnable();
+ config.stuAdvertInfo[i].stuBeginTime = fb.stuBeginTime;
+ config.stuAdvertInfo[i].stuEndTime = fb.stuEndTime;
+ }
+ Pointer pointer = new Memory(config.size());
+ ToolKits.SetStructDataToPointer(config, pointer, 0);
+ return getNetsdkApi()
+ .CLIENT_SetConfig(
+ new NetSDKLib.LLong(loginHandler),
+ NET_EM_CFG_OPERATE_TYPE.NET_EM_CFG_FORBIDDEN_ADVERT_PLAY,
+ -1,
+ pointer,
+ config.size(),
+ 5000,
+ new IntByReference(0),
+ null);
+ }
+
+ /**
+ * 配置健康码
+ *
+ * @return
+ */
+ public boolean healthCodeConfig(long loginHandler, NET_CFG_HEALTH_CODE_INFO config) {
+ Pointer pointer = new Memory(config.size());
+ ToolKits.SetStructDataToPointer(config, pointer, 0);
+ return getNetsdkApi()
+ .CLIENT_SetConfig(
+ new NetSDKLib.LLong(loginHandler),
+ NET_EM_CFG_OPERATE_TYPE.NET_EM_CFG_HEALTH_CODE,
+ -1,
+ pointer,
+ config.size(),
+ 5000,
+ new IntByReference(0),
+ null);
+ }
+
+ /**
+ * 下发配置
+ *
+ * @param loginHandler 登录句柄
+ * @param emType 配置类型 枚举值参考{@link NET_EM_CFG_OPERATE_TYPE}
+ * @param config 配置信息
+ * @param channel 通道号
+ * @param waitTime 超时时间
+ * @return
+ */
+ public boolean setConfig(
+ long loginHandler, int emType, NetSDKLib.SdkStructure config, int channel, int waitTime) {
+ Pointer pointer = new Memory(config.size());
+ ToolKits.SetStructDataToPointer(config, pointer, 0);
+ boolean result =
+ getNetsdkApi()
+ .CLIENT_SetConfig(
+ new NetSDKLib.LLong(loginHandler),
+ emType,
+ channel,
+ pointer,
+ config.size(),
+ waitTime,
+ new IntByReference(0),
+ null);
+ if (!result) {
+ System.out.println("set config emType failed.error is " + ENUMERROR.getErrorMessage());
+ }
+ return result;
+ }
+
+ /**
+ * @param loginHandler 登录句柄
+ * @param emType 配置类型 枚举值参考{@link NET_EM_CFG_OPERATE_TYPE}
+ * @param config 配置信息
+ * @param channel 通道号
+ * @return 下发配置是否成功
+ */
+ public boolean setConfig(
+ long loginHandler, int emType, NetSDKLib.SdkStructure config, int channel) {
+ return setConfig(loginHandler, emType, config, channel, 5000);
+ }
+
+ /**
+ * 获取配置
+ *
+ * @param loginHandler 登录句柄
+ * @param emType 配置类型 枚举值参考{@link NET_EM_CFG_OPERATE_TYPE}
+ * @param config 配置信息
+ * @param channel 通道号
+ */
+ public NetSDKLib.SdkStructure getConfig(
+ long loginHandler, int emType, NetSDKLib.SdkStructure config, int channel, int waitTime) {
+ config.write(); // 数据写入 native 内存
+ if (!getNetsdkApi()
+ .CLIENT_GetConfig(
+ new NetSDKLib.LLong(loginHandler), // 登录句柄
+ emType, // 配置枚举类型
+ channel, // 通道号
+ config.getPointer(), // config 的指针
+ config.size(), // Pointer 大小
+ waitTime,
+ null)) {
+ System.out.println("get config failed emType:" + emType + "," + ENUMERROR.getErrorMessage());
+ return null;
+ }
+ config.read(); // 从 native 内存读回数据
+ return config;
+ }
+
+ /**
+ * 获取配置
+ *
+ * @param loginHandler 登录句柄
+ * @param emType 配置类型,枚举值参考{@link NET_EM_CFG_OPERATE_TYPE}
+ * @param config 配置信息
+ * @param channel 通道号
+ * @return
+ */
+ public NetSDKLib.SdkStructure getConfig(
+ long loginHandler, int emType, NetSDKLib.SdkStructure config, int channel) {
+ return getConfig(loginHandler, emType, config, channel, 5000);
+ }
+
+ public NetSDKLib.SdkStructure[] getConfigs(
+ long loginHandler, int emType, NetSDKLib.SdkStructure[] configs) {
+ Pointer pointer = new Memory(configs[0].size() * configs.length);
+ ToolKits.SetStructArrToPointerData(configs, pointer);
+ if (!getNetsdkApi()
+ .CLIENT_GetConfig(
+ new NetSDKLib.LLong(loginHandler),
+ emType,
+ -1,
+ pointer,
+ configs[0].size() * configs.length,
+ 5000,
+ null)) {
+ System.out.println("get config failed emType:" + emType + "," + ENUMERROR.getErrorMessage());
+ return null;
+ }
+ ToolKits.GetPointerDataToStructArr(pointer, configs);
+ return configs;
+ }
+
+ /**
+ * 查询系统能力信息,对应接口 {@link NetSDKLib#CLIENT_QueryNewSystemInfo(NetSDKLib.LLong, String, int, byte[],
+ * int, IntByReference, int)}
+ *
+ * @param loginHandler
+ * @return
+ */
+ public NetSDKLib.SdkStructure queryConfig(
+ long loginHandler,
+ EM_NEW_QUERY_SYSTEM_INFO query,
+ NetSDKLib.SdkStructure structure,
+ int channelId,
+ int waitTime) {
+ byte[] data = new byte[structure.size()];
+ IntByReference error = new IntByReference(0);
+ boolean result =
+ getNetsdkApi()
+ .CLIENT_QueryNewSystemInfo(
+ new NetSDKLib.LLong(loginHandler),
+ query.getValue(),
+ channelId,
+ data,
+ data.length,
+ error,
+ waitTime);
+ if (!result) {
+ System.out.println("query system info failed.error is" + ENUMERROR.getErrorMessage());
+ return null;
+ }
+ // 解析能力信息
+ structure.write();
+ result =
+ configApi.CLIENT_ParseData(
+ query.getValue(), data, structure.getPointer(), structure.size(), null);
+ if (!result) {
+ System.out.println("parse system info failed.error is " + ENUMERROR.getErrorMessage());
+ return null;
+ }
+ structure.read();
+ return structure;
+ }
+
+ /**
+ * 获取设备配置
+ *
+ * @param loginHandler 登录句柄
+ * @param get 配置命令
+ * @param structure 配置信息
+ * @param channelId 通道号
+ * @param waitTime 超时时间
+ * @return
+ */
+ public NetSDKLib.SdkStructure getNewConfig(
+ long loginHandler,
+ EM_NEW_CONFIG get,
+ NetSDKLib.SdkStructure structure,
+ int channelId,
+ int waitTime) {
+ byte[] data = new byte[structure.size() * 8];
+ IntByReference error = new IntByReference(0);
+ boolean result =
+ getNetsdkApi()
+ .CLIENT_GetNewDevConfig(
+ new NetSDKLib.LLong(loginHandler),
+ get.getValue(),
+ channelId,
+ data,
+ data.length,
+ error,
+ waitTime,null);
+ if (!result) {
+ System.out.println("query system info failed.error is" + ENUMERROR.getErrorMessage());
+ return null;
+ }
+ // 解析能力信息
+ result =
+ configApi.CLIENT_ParseData(
+ get.getValue(), data, structure.getPointer(), structure.size(), null);
+ if (!result) {
+ System.out.println("parse system info failed.error is " + ENUMERROR.getErrorMessage());
+ return null;
+ }
+ structure.read();
+ return structure;
+ }
+
+ /**
+ * 下发设备配置
+ *
+ * @param loginHandler 登录句柄
+ * @param set 配置命令
+ * @param structure 下发的配置
+ * @param channelId 通道号
+ * @param waitTime 超时时间
+ * @return
+ */
+ public boolean setNewConfig(
+ long loginHandler,
+ EM_NEW_CONFIG set,
+ NetSDKLib.SdkStructure structure,
+ int channelId,
+ int waitTime) {
+ byte[] data = new byte[structure.size() * 8];
+ structure.write();
+ boolean result =
+ configApi.CLIENT_PacketData(
+ set.getValue(), structure.getPointer(), structure.size(), data, data.length);
+ if (!result) {
+ System.out.println("packet data failed.error is " + ENUMERROR.getErrorMessage());
+ return false;
+ }
+ IntByReference error = new IntByReference(0);
+ IntByReference restart = new IntByReference(0);
+ result =
+ getNetsdkApi()
+ .CLIENT_SetNewDevConfig(
+ new NetSDKLib.LLong(loginHandler),
+ set.getValue(),
+ channelId,
+ data,
+ data.length,
+ error,
+ restart,
+ waitTime);
+ if (!result) {
+ System.out.println("set NewDevConfig failed. error is " + ENUMERROR.getErrorMessage());
+ return false;
+ }
+ return true;
+ }
+}
diff --git a/src/main/java/com/netsdk/module/FileModule.java b/src/main/java/com/netsdk/module/FileModule.java
new file mode 100644
index 0000000..966038f
--- /dev/null
+++ b/src/main/java/com/netsdk/module/FileModule.java
@@ -0,0 +1,156 @@
+package com.netsdk.module;
+
+import com.netsdk.lib.NativeString;
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.Utils;
+import com.netsdk.lib.enumeration.ENUMERROR;
+import com.netsdk.lib.structure.NET_IN_PRE_UPLOAD_REMOTE_FILE;
+import com.netsdk.lib.structure.NET_OUT_PRE_UPLOAD_REMOTE_FILE;
+import com.netsdk.module.entity.DeliveryFileInfo;
+import com.netsdk.module.entity.FilePreUploadResult;
+
+import java.nio.charset.Charset;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+import static com.netsdk.lib.NetSDKLib.MAX_DELIVERY_FILE_NUM;
+
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 操作文件的二次封装类
+ * @date 2020/9/14
+ */
+public class FileModule extends BaseModule {
+
+ public FileModule(NetSDKLib netSdkApi) {
+ super(netSdkApi);
+ }
+
+ private FileModule() {
+ this(NetSDKLib.NETSDK_INSTANCE);
+ }
+
+ /**
+ * 检测文件是否可以上传
+ *
+ * @param loginHandler 登录句柄
+ * @param srcPath 源文件路径
+ * @param destPath 上传到设备的路径
+ * @return null:预上传接口调用失败,FilePreUploadResult: canUpload:true,可以上传,false:不可上传,emType:不可上传的原因
+ */
+ public FilePreUploadResult canUpload(long loginHandler, String srcPath, String destPath) {
+ NET_IN_PRE_UPLOAD_REMOTE_FILE inParam = new NET_IN_PRE_UPLOAD_REMOTE_FILE();
+ inParam.pszFileSrc = srcPath;
+ inParam.pszFileDst = destPath;
+ NET_OUT_PRE_UPLOAD_REMOTE_FILE outParam = new NET_OUT_PRE_UPLOAD_REMOTE_FILE();
+ boolean result = getNetsdkApi().CLIENT_PreUploadRemoteFile(new NetSDKLib.LLong(loginHandler), inParam, outParam, 5000);
+ if (!result) {
+ System.out.println("pre upload failed." + ENUMERROR.getErrorMessage());
+ return null;
+ }
+ return new FilePreUploadResult(outParam.bContinue2Upload, outParam.emType);
+ }
+
+ /**
+ * 上传文件
+ *
+ * @param srcPath 源文件路径,绝对路径
+ * @param destPath 上传到设备的目录
+ * @param fileName 上传后的文件的文件名
+ * @return
+ */
+ public boolean uploadFile(long loginHandle, String srcPath, String destPath, String fileName) {
+ NetSDKLib.NET_IN_UPLOAD_REMOTE_FILE uploadParam = new NetSDKLib.NET_IN_UPLOAD_REMOTE_FILE();
+ uploadParam.pszFileSrc = new NativeString(srcPath).getPointer();
+ if (destPath != null && !destPath.trim().equals("")) {
+ uploadParam.pszFolderDst = new NativeString(destPath).getPointer();
+ }
+ uploadParam.pszFileDst = new NativeString(fileName).getPointer();
+ //文件分包大小(字节): 0表示不分包
+ //大文件要分包,特别是dav视频,建议512kb
+ uploadParam.nPacketLen = 1024 * 512;
+ NetSDKLib.NET_OUT_UPLOAD_REMOTE_FILE uploadOutParam = new NetSDKLib.NET_OUT_UPLOAD_REMOTE_FILE();
+ uploadParam.write();
+ boolean isUpload = getNetsdkApi().CLIENT_UploadRemoteFile(new NetSDKLib.LLong(loginHandle), uploadParam, uploadOutParam, 3000);
+ uploadParam.read();
+ if (!isUpload) {
+ /**
+ * 如果上传失败,请检查上传的文件大小,上传路径,上传格式
+ */
+ System.out.println(ENUMERROR.getErrorMessage());
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * 向视频输出口投放视频和图片文件
+ *
+ * @param loginHandle 登录句柄
+ * @param port 要投放文件的端口
+ * @param emPlayMode 播放类型 0:未知,1:播放一次,2:循环播放
+ * @param startTime 开始时间
+ * @param endTime 结束时间,当emPlayMode为2时有效
+ * @param infos 文件信息列表
+ * @return 是否投放成功
+ */
+ public boolean deliveryFileToDevice(long loginHandle, int port, int emPlayMode, Date startTime, Date endTime, List infos) {
+ NetSDKLib.NET_CTRL_DELIVERY_FILE stuInfo = new NetSDKLib.NET_CTRL_DELIVERY_FILE();
+ stuInfo.nPort = port;
+ stuInfo.emPlayMode = emPlayMode;
+ if (startTime == null) {
+ System.out.println("startTime is null");
+ return false;
+ }
+ if (infos.size() > MAX_DELIVERY_FILE_NUM) {
+ System.out.println("out of delivery file num");
+ return false;
+ }
+ //时间赋值
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(startTime);
+ stuInfo.stuStartPlayTime.dwYear = calendar.get(Calendar.YEAR);
+ stuInfo.stuStartPlayTime.dwMonth = calendar.get(Calendar.MONTH);
+ stuInfo.stuStartPlayTime.dwDay = calendar.get(Calendar.DATE);
+ //24小时制
+ stuInfo.stuStartPlayTime.dwHour = calendar.get(Calendar.HOUR_OF_DAY);
+ stuInfo.stuStartPlayTime.dwMinute = calendar.get(Calendar.MINUTE);
+ stuInfo.stuStartPlayTime.dwSecond = calendar.get(Calendar.SECOND);
+ if (emPlayMode == 2) {
+ calendar.setTime(endTime);
+ stuInfo.stuStopPlayTime.dwYear = calendar.get(Calendar.YEAR);
+ stuInfo.stuStopPlayTime.dwMonth = calendar.get(Calendar.MONTH);
+ stuInfo.stuStopPlayTime.dwDay = calendar.get(Calendar.DATE);
+ //24小时制
+ stuInfo.stuStopPlayTime.dwHour = calendar.get(Calendar.HOUR_OF_DAY);
+ stuInfo.stuStopPlayTime.dwMinute = calendar.get(Calendar.MINUTE);
+ stuInfo.stuStopPlayTime.dwSecond = calendar.get(Calendar.SECOND);
+ }
+
+ //文件赋值
+ stuInfo.nFileCount = infos.size();
+ DeliveryFileInfo info = null;
+ for (int i = 0; i < infos.size(); i++) {
+ info = infos.get(i);
+ stuInfo.stuFileInfo[i].emFileType = info.getEmFileType().getType();
+ stuInfo.stuFileInfo[i].nImageSustain = info.getnImageSustain();
+ System.arraycopy(info.getSzFileUrl().getBytes(Charset.forName(Utils.getPlatformEncode())), 0, stuInfo.stuFileInfo[i].szFileURL, 0,
+ info.getSzFileUrl().getBytes(Charset.forName(Utils.getPlatformEncode())).length);
+ }
+ stuInfo.write();
+
+ int emType = NetSDKLib.CtrlType.CTRLTYPE_CTRL_DELIVERY_FILE;
+ boolean bRet = getNetsdkApi().CLIENT_ControlDevice(new NetSDKLib.LLong(loginHandle), emType,
+ stuInfo.getPointer(), 3000);
+ stuInfo.read();
+ if (!bRet) {
+ System.out.println("deliveryFile failed." + ENUMERROR.getErrorMessage());
+ }
+ System.out.println("deliveryFile success");
+ return bRet;
+ }
+
+}
diff --git a/src/main/java/com/netsdk/module/HeatMapModule.java b/src/main/java/com/netsdk/module/HeatMapModule.java
new file mode 100644
index 0000000..59ae4a6
--- /dev/null
+++ b/src/main/java/com/netsdk/module/HeatMapModule.java
@@ -0,0 +1,285 @@
+package com.netsdk.module;
+
+import com.netsdk.lib.HeatMapLib;
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.ToolKits;
+import com.netsdk.lib.callback.fVideoStatHeatMapCallBack;
+import com.netsdk.lib.enumeration.EM_HEATMAP_TYPE;
+import com.netsdk.lib.enumeration.ENUMERROR;
+import com.netsdk.lib.structure.*;
+import com.netsdk.module.entity.BmpInfo;
+import com.sun.jna.Memory;
+import com.sun.jna.Pointer;
+import com.sun.jna.Structure;
+
+import javax.imageio.ImageIO;
+import java.awt.image.BufferedImage;
+import java.io.*;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 二次封装的模块, 热度图相关
+ * @date 2020/9/23
+ */
+public class HeatMapModule extends BaseModule {
+ private HeatMapLib heatMap;
+
+ public HeatMapModule() {
+ this(NetSDKLib.NETSDK_INSTANCE, HeatMapLib.HEATMAP_INSTANCE);
+ }
+
+ public HeatMapModule(NetSDKLib netsdkApi) {
+ this(netsdkApi, HeatMapLib.HEATMAP_INSTANCE);
+ }
+
+ public HeatMapModule(NetSDKLib netsdkApi, HeatMapLib heatMapLib) {
+ super(netsdkApi);
+ this.heatMap = heatMapLib;
+ }
+
+ /**
+ * 订阅热度图数据
+ *
+ * @param loginHandler 登录句柄
+ * @param channel 通道号
+ * @param callBack 回调函数,回调函数建议使用单例模式
+ * @param dwUser 用户数据,不需要可以传null,如果使用,请注意保持dwUser,别被JVM回收
+ * @param nWaitTime 超时时间,单位毫秒
+ * @return
+ */
+ public long attach(
+ long loginHandler,
+ int channel,
+ fVideoStatHeatMapCallBack callBack,
+ Structure dwUser,
+ int nWaitTime) {
+ NET_IN_ATTACH_VIDEOSTAT_HEATMAP inParam = new NET_IN_ATTACH_VIDEOSTAT_HEATMAP();
+ inParam.nChannel = channel;
+ inParam.cbVideoStatHeatMap = callBack;
+ if (dwUser != null) {
+ inParam.dwUser = dwUser.getPointer();
+ }
+ NET_OUT_ATTACH_VIDEOSTAT_HEATMAP outParam = new NET_OUT_ATTACH_VIDEOSTAT_HEATMAP();
+ Pointer pointer = new Memory(inParam.size());
+ ToolKits.SetStructDataToPointer(inParam, pointer, 0);
+ NetSDKLib.LLong attachHandler =
+ getNetsdkApi()
+ .CLIENT_AttachVideoStatHeatMap(
+ new NetSDKLib.LLong(loginHandler), pointer, outParam.getPointer(), nWaitTime);
+ if (attachHandler.longValue() == 0) {
+ System.err.println(
+ "CLIENT_AttachVideoStatHeatMap failed.the error is "
+ + ENUMERROR.getErrorMessage()
+ + "\n"
+ + ENUMERROR.getENUMError());
+ }
+ return attachHandler.longValue();
+ }
+
+ /**
+ * 获取热度图数据
+ *
+ * @param attachHandler 订阅句柄
+ * @param planId 计划(预置点,仅球机有效,范围1~MaxNumberStatPlan), 球机必填,范围1~MaxNumberStatPlan。
+ * IPC等没有PlanID概念,不填或者0表示不关注PlanID
+ * @param startTime 开始时间 时间格式为(年/月/日/时/分/秒)
+ * @param endTime 结束时间 时间格式为(年/月/日/时/分/秒)
+ * @param type AI热图类型
+ * @return
+ */
+ public int get(
+ long attachHandler,
+ int planId,
+ String startTime,
+ String endTime,
+ EM_HEATMAP_TYPE type,
+ int waitTime) {
+ NET_IN_GET_VIDEOSTAT_HEATMAP inParam = new NET_IN_GET_VIDEOSTAT_HEATMAP();
+ inParam.nPlanID = planId;
+ inParam.stuStartTime = new NET_TIME(startTime);
+ inParam.stuEndTime = new NET_TIME(endTime);
+ inParam.emHeatMapType = type.getType();
+ Pointer inPointer = new Memory(inParam.size());
+ ToolKits.SetStructDataToPointer(inParam, inPointer, 0);
+ NET_OUT_GET_VIDEOSTAT_HEATMAP outParam = new NET_OUT_GET_VIDEOSTAT_HEATMAP();
+ Pointer pointer = new Memory(outParam.size());
+ ToolKits.SetStructDataToPointer(outParam, pointer, 0);
+ boolean result =
+ getNetsdkApi()
+ .CLIENT_GetVideoStatHeatMap(
+ new NetSDKLib.LLong(attachHandler), inPointer, pointer, waitTime);
+ if (!result) {
+ System.out.println(
+ "CLIENT_GetVideoStatHeatMap failed. the error is " + ENUMERROR.getErrorMessage());
+ return 0;
+ }
+ ToolKits.GetPointerData(pointer, outParam);
+ return outParam.nToken;
+ }
+
+ /**
+ * 退订热度图数据
+ *
+ * @param attachHandler 订阅句柄
+ * @return
+ */
+ public boolean detach(long attachHandler) {
+ boolean result =
+ getNetsdkApi().CLIENT_DetachVideoStatHeatMap(new NetSDKLib.LLong(attachHandler));
+ if (!result) {
+ System.out.println(
+ "CLIENT_DetachVideoStatHeatMap failed. the error is " + ENUMERROR.getErrorMessage());
+ }
+ return result;
+ }
+
+ /**
+ * 将网络数据转换成灰度数据
+ *
+ * @param data 热度图数据
+ * @param width 宽
+ * @param height 高
+ * @return
+ */
+ public byte[] transferGray(byte[] data, int width, int height) {
+ Pointer inParam = new Memory(data.length);
+ inParam.write(0, data, 0, data.length);
+ byte[] out = new byte[width * height];
+ Pointer outParam = new Memory(width * height);
+ heatMap.TransNetDataToGrayData(inParam, width, height, outParam);
+ outParam.read(0, out, 0, out.length);
+ return out;
+ }
+
+ public boolean createHeatMap(
+ BmpInfo srcBmp, BufferedImage backBmp, String destFile, float opacity) throws IOException {
+ ByteArrayOutputStream byteArrOutput = new ByteArrayOutputStream();
+ // 此方式转换出来的位深度是24位
+ ImageIO.write(backBmp, "bmp", byteArrOutput);
+ ////////////////// 获取背景图的缓存、宽高 /////////////
+ // bmp格式的Buf
+ byte[] buffer = byteArrOutput.toByteArray();
+ int width = backBmp.getWidth();
+ int height = backBmp.getHeight();
+ // 转换出来的背景图位深度是24
+ // 54是头
+ int nBackPicLen = width * height * 24 / 8 + 54;
+ BmpInfo backInfo = new BmpInfo(buffer, width, height, 24, 1, nBackPicLen);
+ return createHeatMap(srcBmp, backInfo, destFile, opacity);
+ }
+
+ /**
+ * 生成热度图图片
+ *
+ * @return
+ */
+ public boolean createHeatMap(BmpInfo srcBmp, BmpInfo backBmp, String destFile, float opacity) {
+ HeatMapLib.HEATMAP_IMAGE_IN inParam = new HeatMapLib.HEATMAP_IMAGE_IN();
+
+ inParam.stuGrayBmpInfo.pBuffer = new Memory(srcBmp.getLength());
+ inParam.stuGrayBmpInfo.pBuffer.write(0, srcBmp.getData(), 0, srcBmp.getLength());
+ inParam.stuGrayBmpInfo.nWidth = srcBmp.getWidth();
+ inParam.stuGrayBmpInfo.nHeight = srcBmp.getHeight();
+ inParam.stuGrayBmpInfo.nDirection = srcBmp.getnDirection();
+ inParam.stuGrayBmpInfo.nBitCount = srcBmp.getBitCount();
+
+ inParam.stuBkBmpInfo.pBuffer = new Memory(backBmp.getLength());
+ inParam.stuBkBmpInfo.pBuffer.write(0, backBmp.getData(), 0, backBmp.getLength());
+ inParam.stuBkBmpInfo.nWidth = backBmp.getWidth();
+ inParam.stuBkBmpInfo.nHeight = backBmp.getHeight();
+ inParam.stuBkBmpInfo.nDirection = backBmp.getnDirection();
+ inParam.stuBkBmpInfo.nBitCount = backBmp.getBitCount();
+
+ HeatMapLib.HEATMAP_IMAGE_Out outParam = new HeatMapLib.HEATMAP_IMAGE_Out();
+ outParam.pBuffer = new Memory(backBmp.getData().length);
+ outParam.nPicSize = backBmp.getWidth() * backBmp.getHeight() * backBmp.getBitCount() / 8 + 54;
+ // 热度图的大小与背景图相同
+ outParam.fOpacity = opacity;
+ boolean result = heatMap.CreateHeatMap(inParam, outParam);
+ if (!result) {
+ System.out.println("create heatMap failed. the error is " + ENUMERROR.getErrorMessage());
+ return false;
+ }
+ // 如果成功,写入目标文件
+ byte[] buf = outParam.pBuffer.getByteArray(0, outParam.nPicSize);
+ ByteArrayInputStream bInputStream = new ByteArrayInputStream(buf);
+
+ BufferedImage bufferedImage = null;
+ try {
+ bufferedImage = ImageIO.read(bInputStream);
+ // 写文件,生成图片
+ ImageIO.write(bufferedImage, "bmp", new File(destFile));
+ System.out.println("bmp heatmap write to " + destFile);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ if (bufferedImage == null) {
+ System.err.println("bufferedImage == null");
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * 读取bmp文件
+ *
+ * @param file bmp文件路径
+ * @return
+ */
+ public int[][] readBmpPic(String file) throws IOException {
+ FileInputStream fis = new FileInputStream(file);
+ BufferedInputStream bis = new BufferedInputStream(fis);
+
+ // 丢掉文件头信息
+ bis.skip(18);
+
+ // 获取长度与宽度
+ byte[] b1 = new byte[4];
+ bis.read(b1);
+ byte[] b2 = new byte[4];
+ bis.read(b2);
+
+ int Width = byte2Int(b1);
+ int Height = byte2Int(b2);
+ System.out.println("Height:" + Height + " Width:" + Width);
+
+ // 因为bmp位图的读取顺序为横向扫描,所以应把数组定义为int[Height][Width]
+ int[][] data = new int[Height][Width];
+ int skipnum = 0;
+
+ // bmp图像区域的大小必须为4的倍数,而它以三个字节存一个像素,读的是偶应当跳过补上的0
+ if (Width * 3 % 4 != 0) {
+ skipnum = 4 - Width * 3 % 4;
+ }
+ System.out.println(skipnum);
+
+ bis.skip(28);
+
+ for (int i = 0; i < data.length; i++) {
+ for (int j = 0; j < data[i].length; j++) {
+ int red = bis.read();
+ int green = bis.read();
+ int blue = bis.read();
+ }
+ if (skipnum != 0) {
+ bis.skip(skipnum);
+ }
+ }
+
+ bis.close();
+ return data;
+ }
+
+ /**
+ * byte to int
+ *
+ * @param b bmp
+ * @return
+ * @throws IOException
+ */
+ private int byte2Int(byte[] b) throws IOException {
+ int num = (b[3] & 0xff << 24) | (b[2] & 0xff) << 16 | (b[1] & 0xff) << 8 | (b[0] & 0xff);
+ return num;
+ }
+}
diff --git a/src/main/java/com/netsdk/module/LoginModule.java b/src/main/java/com/netsdk/module/LoginModule.java
new file mode 100644
index 0000000..55a6971
--- /dev/null
+++ b/src/main/java/com/netsdk/module/LoginModule.java
@@ -0,0 +1,130 @@
+package com.netsdk.module;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.NetSDKLib.LLong;
+import com.netsdk.lib.NetSDKLib.NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY;
+import com.netsdk.lib.NetSDKLib.NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY;
+import com.netsdk.lib.ToolKits;
+
+import java.io.File;
+
+/**
+ * 登陆接口实现
+ * 主要有 :初始化、登陆、登出功能
+ */
+public class LoginModule {
+
+ public static NetSDKLib netsdk = NetSDKLib.NETSDK_INSTANCE;
+ public static NetSDKLib configsdk = NetSDKLib.CONFIG_INSTANCE;
+
+ // 设备信息
+ public static NetSDKLib.NET_DEVICEINFO_Ex m_stDeviceInfo = new NetSDKLib.NET_DEVICEINFO_Ex();
+
+ // 登陆句柄
+ public static LLong m_hLoginHandle = new LLong(0);
+
+ private static boolean bInit = false;
+ private static boolean bLogopen = false;
+
+ /**
+ * \if ENGLISH_LANG
+ * Init
+ * \else
+ * 初始化
+ * \endif
+ */
+ public static boolean init(NetSDKLib.fDisConnect disConnect, NetSDKLib.fHaveReConnect haveReConnect) {
+ bInit = netsdk.CLIENT_Init(disConnect, null);
+ if(!bInit) {
+ System.out.println("Initialize SDK failed");
+ return false;
+ }
+
+
+ // 设置断线重连回调接口,设置过断线重连成功回调函数后,当设备出现断线情况,SDK内部会自动进行重连操作
+ // 此操作为可选操作,但建议用户进行设置
+ netsdk.CLIENT_SetAutoReconnect(haveReConnect, null);
+
+ //设置登录超时时间和尝试次数,可选
+ int waitTime = 5000; //登录请求响应超时时间设置为5S
+ int tryTimes = 1; //登录时尝试建立链接1次
+ netsdk.CLIENT_SetConnectTime(waitTime, tryTimes);
+
+
+ // 设置更多网络参数,NET_PARAM的nWaittime,nConnectTryNum成员与CLIENT_SetConnectTime
+ // 接口设置的登录设备超时时间和尝试次数意义相同,可选
+ NetSDKLib.NET_PARAM netParam = new NetSDKLib.NET_PARAM();
+ netParam.nConnectTime = 10000; // 登录时尝试建立链接的超时时间
+ netParam.nGetConnInfoTime = 3000; // 设置子连接的超时时间
+ netParam.nGetDevInfoTime = 3000;//获取设备信息超时时间,为0默认1000ms
+ netsdk.CLIENT_SetNetworkParam(netParam);
+
+ return true;
+ }
+
+ /**
+ * \if ENGLISH_LANG
+ * CleanUp
+ * \else
+ * 清除环境
+ * \endif
+ */
+ public static void cleanup() {
+ if(bLogopen) {
+ netsdk.CLIENT_LogClose();
+ }
+
+ if(bInit) {
+ netsdk.CLIENT_Cleanup();
+ }
+ }
+
+ /**
+ * \if ENGLISH_LANG
+ * Login Device
+ * \else
+ * 登录设备
+ * \endif
+ */
+ public static boolean login(String m_strIp, int m_nPort, String m_strUser, String m_strPassword) {
+ //IntByReference nError = new IntByReference(0);
+ //入参
+ NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY pstInParam=new NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY();
+ pstInParam.nPort=m_nPort;
+ pstInParam.szIP=m_strIp.getBytes();
+ pstInParam.szPassword=m_strPassword.getBytes();
+ pstInParam.szUserName=m_strUser.getBytes();
+ //出参
+ NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY pstOutParam=new NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY();
+ pstOutParam.stuDeviceInfo=m_stDeviceInfo;
+ //m_hLoginHandle = netsdk.CLIENT_LoginEx2(m_strIp, m_nPort, m_strUser, m_strPassword, 0, null, m_stDeviceInfo, nError);
+ m_hLoginHandle=netsdk.CLIENT_LoginWithHighLevelSecurity(pstInParam, pstOutParam);
+ if(m_hLoginHandle.longValue() == 0) {
+ System.err.printf("Login Device[%s] Port[%d]Failed. %s\n", m_strIp, m_nPort, ToolKits.getErrorCodePrint());
+ } else {
+ System.out.println("Login Success [ " + m_strIp + " ]");
+ }
+
+ return m_hLoginHandle.longValue() == 0? false:true;
+ }
+
+ /**
+ * \if ENGLISH_LANG
+ * Logout Device
+ * \else
+ * 登出设备
+ * \endif
+ */
+ public static boolean logout() {
+ if(m_hLoginHandle.longValue() == 0) {
+ return false;
+ }
+
+ boolean bRet = netsdk.CLIENT_Logout(m_hLoginHandle);
+ if(bRet) {
+ m_hLoginHandle.setValue(0);
+ }
+
+ return bRet;
+ }
+}
diff --git a/src/main/java/com/netsdk/module/PlayModule.java b/src/main/java/com/netsdk/module/PlayModule.java
new file mode 100644
index 0000000..977ab9d
--- /dev/null
+++ b/src/main/java/com/netsdk/module/PlayModule.java
@@ -0,0 +1,98 @@
+package com.netsdk.module;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.EM_AUDIO_DATA_TYPE;
+import com.netsdk.lib.enumeration.EM_REAL_DATA_TYPE;
+import com.netsdk.lib.enumeration.ENUMERROR;
+import com.sun.jna.Native;
+
+import java.awt.*;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 播放模块,播放、预览相关接口封装
+ * @date 2021/3/2
+ */
+public class PlayModule extends BaseModule {
+ /**
+ * 实时预览,只可用于swing界面
+ *
+ * @param loginHandler 登录句柄
+ * @param channelID 通道号
+ * @param panel 播放窗口
+ * @param rType 码流类型
+ * @return
+ */
+ public long realPlay(long loginHandler, int channelID, Panel panel, int rType) {
+ NetSDKLib.LLong realplay =
+ getNetsdkApi()
+ .CLIENT_RealPlayEx(
+ new NetSDKLib.LLong(loginHandler),
+ channelID,
+ Native.getComponentPointer(panel),
+ rType);
+ if (realplay.longValue() == 0) {
+ System.out.println(ENUMERROR.getErrorMessage());
+ }
+ return realplay.longValue();
+ }
+
+ /**
+ * 获取指定类型的码流数据
+ *
+ * @param loginHandler 登录句柄
+ * @param channelID 通道号
+ * @param dataType 码流类型
+ * @param audioType 音频格式
+ * @param rType 预览类型,参考{@link NetSDKLib.NET_RealPlayType}
+ * @param callback 码流回调,回调函数请使用单例模式
+ * @param panel 播放窗口,swing应用可用,一般传入null
+ * @param file 转码后的保存的文件
+ * @param waitTIme 超时时间
+ * @return
+ */
+ public long realPlayByDataType(
+ long loginHandler,
+ int channelID,
+ EM_REAL_DATA_TYPE dataType,
+ EM_AUDIO_DATA_TYPE audioType,
+ NetSDKLib.fRealDataCallBackEx2 callback,
+ int rType,
+ Panel panel,
+ String file,
+ int waitTIme) {
+ NetSDKLib.NET_IN_REALPLAY_BY_DATA_TYPE inParam = new NetSDKLib.NET_IN_REALPLAY_BY_DATA_TYPE();
+ inParam.rType = rType;
+ inParam.nChannelID = channelID;
+ inParam.emDataType = dataType.getType();
+ inParam.emAudioType = audioType.ordinal();
+ inParam.cbRealDataEx = callback;
+ if (panel != null) {
+ inParam.hWnd = Native.getComponentPointer(panel);
+ }
+ if (file != null && !file.trim().isEmpty()) {
+ inParam.szSaveFileName = file;
+ }
+ NetSDKLib.NET_OUT_REALPLAY_BY_DATA_TYPE outParam =
+ new NetSDKLib.NET_OUT_REALPLAY_BY_DATA_TYPE();
+ NetSDKLib.LLong realplay =
+ getNetsdkApi()
+ .CLIENT_RealPlayByDataType(
+ new NetSDKLib.LLong(loginHandler), inParam, outParam, waitTIme);
+ if (realplay.longValue() == 0) {
+ System.out.println(ENUMERROR.getErrorMessage());
+ }
+ return realplay.longValue();
+ }
+
+ /**
+ * 停止转码
+ *
+ * @param realPlayHandler
+ * @return
+ */
+ public boolean stopRealPlayByDataType(long realPlayHandler) {
+ return getNetsdkApi().CLIENT_StopRealPlayEx(new NetSDKLib.LLong(realPlayHandler));
+ }
+}
diff --git a/src/main/java/com/netsdk/module/QRCodeModule.java b/src/main/java/com/netsdk/module/QRCodeModule.java
new file mode 100644
index 0000000..baed345
--- /dev/null
+++ b/src/main/java/com/netsdk/module/QRCodeModule.java
@@ -0,0 +1,48 @@
+package com.netsdk.module;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.ToolKits;
+import com.netsdk.lib.Utils;
+import com.netsdk.lib.enumeration.NET_EM_2DCODE_TYPE;
+import com.netsdk.lib.structure.NET_IN_SET_2DCODE;
+import com.netsdk.lib.structure.NET_OUT_SET_2DCODE;
+import com.sun.jna.Memory;
+import com.sun.jna.Pointer;
+
+import java.nio.charset.Charset;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 二维码信息模块, 二次封装类
+ * @date 2020/9/14
+ */
+public class QRCodeModule {
+ private final NetSDKLib netsdkApi;
+
+ public QRCodeModule(NetSDKLib netsdkApi) {
+ this.netsdkApi = netsdkApi;
+ }
+
+ public QRCodeModule() {
+ this(NetSDKLib.NETSDK_INSTANCE);
+ }
+
+ /**
+ * 下发二维码到设备
+ *
+ * @param loginHandler 登录句柄
+ * @param qrCodeType 二维码类型
+ * @param qrCode 二维码信息
+ * @return 是否下发成功
+ */
+ public boolean sendQrCode(long loginHandler, NET_EM_2DCODE_TYPE qrCodeType, String qrCode) {
+ NET_IN_SET_2DCODE code = new NET_IN_SET_2DCODE();
+ code.em2DCodeType = qrCodeType.getType();
+ System.arraycopy(qrCode.getBytes(Charset.forName(Utils.getPlatformEncode())), 0, code.sz2DCode, 0, qrCode.getBytes(Charset.forName(Utils.getPlatformEncode())).length);
+ Pointer pointer = new Memory(code.size());
+ ToolKits.SetStructDataToPointer(code, pointer, 0);
+ return netsdkApi.CLIENT_Set2DCode(new NetSDKLib.LLong(loginHandler), pointer, new NET_OUT_SET_2DCODE().getPointer(), 5000);
+ }
+
+}
diff --git a/src/main/java/com/netsdk/module/ThermalCameraModule.java b/src/main/java/com/netsdk/module/ThermalCameraModule.java
new file mode 100644
index 0000000..555bb35
--- /dev/null
+++ b/src/main/java/com/netsdk/module/ThermalCameraModule.java
@@ -0,0 +1,305 @@
+package com.netsdk.module;
+
+import com.netsdk.lib.ImageAlgLib;
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.NetSDKLib.*;
+import com.netsdk.lib.ToolKits;
+import com.netsdk.lib.structure.NET_IN_RADIOMETRY_RANDOM_REGION_TEMPER;
+import com.netsdk.lib.structure.NET_OUT_RADIOMETRY_RANDOM_REGION_TEMPER;
+
+import java.io.IOException;
+
+public class ThermalCameraModule {
+
+ static ImageAlgLib imageAlgApi = ImageAlgLib.IMAGEALG_INSTANCE;
+
+ public static class ThermalCameraStatus {
+ public boolean bSearching = false; // 是否正在查找
+ public int nFinderHanle; // 取到的查询句柄
+ public int nTotalCount; // 符合此次查询条件的结果总条数
+ public LLong hRadiometryHandle = new LLong(0); // 订阅句柄
+ }
+
+ private static ThermalCameraStatus status = new ThermalCameraStatus();
+
+ /**
+ * 订阅温度分布数据(热图)
+ */
+ public static boolean radiometryAttach(int nChannel, fRadiometryAttachCB cbNotify) {
+ /*
+ * 入参
+ */
+ NET_IN_RADIOMETRY_ATTACH stIn = new NET_IN_RADIOMETRY_ATTACH();
+ stIn.nChannel = nChannel; // 通道号
+ stIn.cbNotify = cbNotify; // 回调函数
+
+ /*
+ * 出参
+ */
+ NET_OUT_RADIOMETRY_ATTACH stOut = new NET_OUT_RADIOMETRY_ATTACH();
+ status.hRadiometryHandle = LoginModule.netsdk.CLIENT_RadiometryAttach(LoginModule.m_hLoginHandle, stIn, stOut, 3000);
+
+ if(status.hRadiometryHandle.longValue() == 0) {
+ System.err.printf("RadiometryAttach Failed!" + ToolKits.getErrorCodePrint());
+ }
+
+ return status.hRadiometryHandle.longValue() != 0;
+ }
+
+ /**
+ * 获取查询总个数
+ */
+ public static boolean isAttaching() {
+ return status.hRadiometryHandle.longValue() != 0;
+ }
+
+ /**
+ * 开始获取热图数据
+ */
+ public static int radiometryFetch(int nChannel) {
+
+ int nStatus = -1;
+
+ /*
+ * 入参
+ */
+ NET_IN_RADIOMETRY_FETCH stIn = new NET_IN_RADIOMETRY_FETCH();
+ stIn.nChannel = nChannel; // 通道号
+
+ /*
+ * 出参
+ */
+ NET_OUT_RADIOMETRY_FETCH stOut = new NET_OUT_RADIOMETRY_FETCH();
+
+ if(!LoginModule.netsdk.CLIENT_RadiometryFetch(LoginModule.m_hLoginHandle, stIn, stOut, 3000)) {
+ System.err.printf("RadiometryFetch Failed!" + ToolKits.getErrorCodePrint());
+ } else {
+ nStatus = stOut.nStatus;
+ }
+
+ return nStatus;
+ }
+
+ /**
+ * 处理回调数据(热图)
+ * @throws IOException
+ */
+ public static boolean saveData(NET_RADIOMETRY_DATA radiometryData) throws IOException {
+
+ if (radiometryData == null) {
+ return false;
+ }
+
+ int nWidth = radiometryData.stMetaData.nWidth;
+ int nHeight = radiometryData.stMetaData.nHeight;
+
+ short[] pGrayImg = new short[nWidth * nHeight];
+ float[] pTempForPixels = new float[nWidth * nHeight];
+
+ if(LoginModule.netsdk.CLIENT_RadiometryDataParse(radiometryData, pGrayImg, pTempForPixels)) {
+ byte[] pYData = new byte[nWidth*nHeight*2];
+ imageAlgApi.drcTable(pGrayImg, (short)nWidth, (short)nHeight, 0, pYData, null);
+ ToolKits.savePicture(pYData, "./GrayscaleMap.yuv");
+ } else {
+ System.err.println("saveData failed!" + ToolKits.getErrorCodePrint());
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * 取消订阅温度分布数据
+ */
+ public static void radiometryDetach() {
+ if(status.hRadiometryHandle.longValue() != 0) {
+ LoginModule.netsdk.CLIENT_RadiometryDetach(status.hRadiometryHandle);
+ status.hRadiometryHandle.setValue(0);
+ }
+ }
+
+ /**
+ * 查询测温点
+ */
+ public static NET_RADIOMETRYINFO queryPointTemper(int nChannel, short x, short y) {
+ int nQueryType = NetSDKLib.NET_QUERY_DEV_RADIOMETRY_POINT_TEMPER;
+
+ // 入参
+ NET_IN_RADIOMETRY_GETPOINTTEMPER stIn = new NET_IN_RADIOMETRY_GETPOINTTEMPER();
+ stIn.nChannel = nChannel;
+ stIn.stCoordinate.nx = x;
+ stIn.stCoordinate.ny = y;
+
+ // 出参
+ NET_OUT_RADIOMETRY_GETPOINTTEMPER stOut = new NET_OUT_RADIOMETRY_GETPOINTTEMPER();
+
+ stIn.write();
+ stOut.write();
+ boolean bRet = LoginModule.netsdk.CLIENT_QueryDevInfo(LoginModule.m_hLoginHandle, nQueryType, stIn.getPointer(), stOut.getPointer(), null, 3000);
+ if(!bRet) {
+ System.err.printf("QueryPointTemper Failed!" + ToolKits.getErrorCodePrint());
+ return null;
+ }
+
+ stOut.read();
+ return stOut.stPointTempInfo;
+ }
+
+
+ /**
+ * 获取测温区域
+ */
+ public static NET_OUT_RADIOMETRY_RANDOM_REGION_TEMPER radiometryGetRandomRegionTemper(int channel, int pointNum, short[][] nPoints){
+
+ NET_IN_RADIOMETRY_RANDOM_REGION_TEMPER stIn = new NET_IN_RADIOMETRY_RANDOM_REGION_TEMPER();
+ NET_OUT_RADIOMETRY_RANDOM_REGION_TEMPER stOut = new NET_OUT_RADIOMETRY_RANDOM_REGION_TEMPER();
+ stIn.nChannel = channel;
+ stIn.nPointNum = pointNum;
+ for(int i = 0;i < pointNum;i++){
+ stIn.stuPolygon[i].nx = nPoints[i][0];
+ stIn.stuPolygon[i].ny = nPoints[i][1];
+ }
+
+ stIn.write();
+ stOut.write();
+
+ boolean bet = LoginModule.netsdk.CLIENT_RadiometryGetRandomRegionTemper(LoginModule.m_hLoginHandle,stIn.getPointer(),stOut.getPointer(), 3000);
+
+ stIn.read();
+ stOut.read();
+
+ if(bet) {
+
+ }else {
+ System.err.println("获取测温区域的参数值失败," + ToolKits.getErrorCodePrint());
+ }
+ return stOut;
+ }
+
+ /**
+ * 查询测温项
+ */
+ public static NET_RADIOMETRYINFO queryItemTemper(int nChannel, int nPresetId, int nRuleId, int nMeterType) {
+ int nQueryType = NetSDKLib.NET_QUERY_DEV_RADIOMETRY_TEMPER;
+
+ // 入参
+ NET_IN_RADIOMETRY_GETTEMPER stIn = new NET_IN_RADIOMETRY_GETTEMPER();
+ stIn.stCondition.nPresetId = nPresetId;
+ stIn.stCondition.nRuleId = nRuleId;
+ stIn.stCondition.nMeterType = nMeterType; // eg: NET_RADIOMETRY_METERTYPE.NET_RADIOMETRY_METERTYPE_AREA;
+ stIn.stCondition.nChannel = nChannel;
+
+ // 出参
+ NET_OUT_RADIOMETRY_GETTEMPER stOut = new NET_OUT_RADIOMETRY_GETTEMPER();
+
+ stIn.write();
+ stOut.write();
+ boolean bRet = LoginModule.netsdk.CLIENT_QueryDevInfo(LoginModule.m_hLoginHandle, nQueryType, stIn.getPointer(), stOut.getPointer(), null, 3000);
+ if(!bRet) {
+ System.err.printf("QueryPointTemper Failed!" + ToolKits.getErrorCodePrint());
+ return null;
+ }
+
+ stOut.read();
+ return stOut.stTempInfo;
+ }
+
+ /**
+ * 开始查询信息
+ */
+ public static boolean startFind(NET_IN_RADIOMETRY_STARTFIND stuIn) {
+ if(status.bSearching) {
+ stopFind();
+ }
+
+ /*
+ * 出参
+ */
+ NET_OUT_RADIOMETRY_STARTFIND stuOut = new NET_OUT_RADIOMETRY_STARTFIND();
+ stuIn.write();
+ stuOut.write();
+ status.bSearching = LoginModule.netsdk.CLIENT_StartFind(LoginModule.m_hLoginHandle,
+ NET_FIND.NET_FIND_RADIOMETRY, stuIn.getPointer(), stuOut.getPointer(), 5000);
+ if (status.bSearching) {
+ stuOut.read();
+ status.nFinderHanle = stuOut.nFinderHanle;
+ status.nTotalCount = stuOut.nTotalCount;
+ }else {
+ System.err.printf("startFind Failed!" + ToolKits.getErrorCodePrint());
+ }
+
+ return status.bSearching;
+ }
+
+ /**
+ * 获取查询总个数
+ */
+ public static int getTotalCount() {
+ return status.nTotalCount;
+ }
+
+ /**
+ * 查询信息
+ */
+ public static NET_OUT_RADIOMETRY_DOFIND doFind(int nOffset, int nCount) {
+ if(!status.bSearching) {
+ System.err.printf("DoFind Failed! [need startFind]");
+ return null;
+ }
+
+ /*
+ * 入参
+ */
+ NET_IN_RADIOMETRY_DOFIND stuIn = new NET_IN_RADIOMETRY_DOFIND();
+ stuIn.nFinderHanle = status.nFinderHanle;
+ stuIn.nBeginNumber = nOffset;
+ stuIn.nCount = nCount;
+
+ /*
+ * 出参
+ */
+ NET_OUT_RADIOMETRY_DOFIND stuOut = new NET_OUT_RADIOMETRY_DOFIND();
+
+ stuIn.write();
+ stuOut.write();
+ if (!LoginModule.netsdk.CLIENT_DoFind(LoginModule.m_hLoginHandle,
+ NET_FIND.NET_FIND_RADIOMETRY, stuIn.getPointer(), stuOut.getPointer(), 5000)) {
+ System.err.printf("DoFind Failed!" + ToolKits.getErrorCodePrint());
+ return null;
+ }
+
+ stuOut.read();
+ return stuOut;
+ }
+
+ /**
+ * 停止查询信息
+ */
+ public static void stopFind() {
+ if(!status.bSearching) {
+ return;
+ }
+
+ /*
+ * 入参
+ */
+ NET_IN_RADIOMETRY_STOPFIND stuIn = new NET_IN_RADIOMETRY_STOPFIND();
+ stuIn.nFinderHanle = status.nFinderHanle;
+
+ /*
+ * 出参
+ */
+ NET_OUT_RADIOMETRY_STOPFIND stuOut = new NET_OUT_RADIOMETRY_STOPFIND();
+
+ stuIn.write();
+ stuOut.write();
+ LoginModule.netsdk.CLIENT_StopFind(LoginModule.m_hLoginHandle,
+ NET_FIND.NET_FIND_RADIOMETRY, stuIn.getPointer(), stuOut.getPointer(), 5000);
+
+ status.bSearching = false;
+ status.nFinderHanle = 0;
+// status.nTotalCount = 0;
+
+ return;
+ }
+}
diff --git a/src/main/java/com/netsdk/module/entity/AddAnalyseTaskResult.java b/src/main/java/com/netsdk/module/entity/AddAnalyseTaskResult.java
new file mode 100644
index 0000000..3097fca
--- /dev/null
+++ b/src/main/java/com/netsdk/module/entity/AddAnalyseTaskResult.java
@@ -0,0 +1,48 @@
+package com.netsdk.module.entity;
+
+import java.io.Serializable;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 添加智能分析任务的结果
+ * @date 2020/10/19
+ */
+public class AddAnalyseTaskResult implements Serializable {
+ /**
+ * 添加任务是否成功
+ */
+ private boolean result;
+ /**
+ * 任务id
+ */
+ private int taskId;
+ /**
+ * 任务对应的虚拟通道号
+ */
+ private int virtualChannel;
+
+ public boolean isResult() {
+ return result;
+ }
+
+ public void setResult(boolean result) {
+ this.result = result;
+ }
+
+ public int getTaskId() {
+ return taskId;
+ }
+
+ public void setTaskId(int taskId) {
+ this.taskId = taskId;
+ }
+
+ public int getVirtualChannel() {
+ return virtualChannel;
+ }
+
+ public void setVirtualChannel(int virtualChannel) {
+ this.virtualChannel = virtualChannel;
+ }
+}
diff --git a/src/main/java/com/netsdk/module/entity/BmpFile.java b/src/main/java/com/netsdk/module/entity/BmpFile.java
new file mode 100644
index 0000000..aabde54
--- /dev/null
+++ b/src/main/java/com/netsdk/module/entity/BmpFile.java
@@ -0,0 +1,57 @@
+package com.netsdk.module.entity;
+
+import java.awt.image.BufferedImage;
+import java.io.*;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description bmp文件
+ * @date 2020/9/27
+ */
+public class BmpFile {
+ private byte[] fileHeader;
+ private byte[] infoHeader;
+ private int width;
+ private int height;
+ private byte[][] data;
+ public BmpFile(){
+ fileHeader=new byte[14];
+ infoHeader=new byte[40];
+ }
+
+ /**
+ * 读取文件
+ * @param src bmp文件
+ * @return
+ */
+ public boolean read(String src) throws IOException {
+ FileInputStream file=new FileInputStream(src);
+ BufferedInputStream buffer=new BufferedInputStream(file);
+ //读取文件头和信息头
+ buffer.read(fileHeader,0,14);
+ buffer.read(infoHeader,0,40);
+ //翻译bmp文件数据,将字节数据转成int
+ //得到宽度和高度
+ byte[] temp=new byte[4];
+ System.arraycopy(infoHeader,4,temp,0,4);
+ width=byte2Int(temp);
+ System.arraycopy(infoHeader,8,temp,0,4);
+ height=byte2Int(temp);
+ buffer.close();
+ return true;
+ }
+
+ /**
+ * byte to int
+ *
+ * @param b bmp
+ * @return
+ * @throws IOException
+ */
+ private int byte2Int(byte[] b) throws IOException {
+ int num = (b[3] & 0xff << 24) | (b[2] & 0xff) << 16 | (b[1] & 0xff) << 8 | (b[0] & 0xff);
+ return num;
+ }
+
+}
diff --git a/src/main/java/com/netsdk/module/entity/BmpInfo.java b/src/main/java/com/netsdk/module/entity/BmpInfo.java
new file mode 100644
index 0000000..dcad450
--- /dev/null
+++ b/src/main/java/com/netsdk/module/entity/BmpInfo.java
@@ -0,0 +1,88 @@
+package com.netsdk.module.entity;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description
+ * @date 2020/9/27
+ */
+public class BmpInfo {
+ private int length;
+ /**
+ * 数据
+ */
+ private byte[] data;
+ /**
+ * 宽度
+ */
+ private int width;
+ /**
+ * 高度
+ */
+ private int height;
+ /**
+ * 位深度
+ */
+ private int bitCount;
+ /**
+ * 存储方向
+ */
+ private int nDirection;
+
+ public BmpInfo(byte[] data, int width, int height, int bitCount, int nDirection,int length) {
+ this.data = data;
+ this.width = width;
+ this.height = height;
+ this.bitCount = bitCount;
+ this.nDirection = nDirection;
+ this.length=length;
+ }
+
+ public byte[] getData() {
+ return data;
+ }
+
+ public void setData(byte[] data) {
+ this.data = data;
+ }
+
+ public int getWidth() {
+ return width;
+ }
+
+ public void setWidth(int width) {
+ this.width = width;
+ }
+
+ public int getHeight() {
+ return height;
+ }
+
+ public void setHeight(int height) {
+ this.height = height;
+ }
+
+ public int getBitCount() {
+ return bitCount;
+ }
+
+ public void setBitCount(int bitCount) {
+ this.bitCount = bitCount;
+ }
+
+ public int getnDirection() {
+ return nDirection;
+ }
+
+ public void setnDirection(int nDirection) {
+ this.nDirection = nDirection;
+ }
+
+ public int getLength() {
+ return length;
+ }
+
+ public void setLength(int length) {
+ this.length = length;
+ }
+}
diff --git a/src/main/java/com/netsdk/module/entity/DeliveryFileInfo.java b/src/main/java/com/netsdk/module/entity/DeliveryFileInfo.java
new file mode 100644
index 0000000..719e63b
--- /dev/null
+++ b/src/main/java/com/netsdk/module/entity/DeliveryFileInfo.java
@@ -0,0 +1,59 @@
+package com.netsdk.module.entity;
+
+import com.netsdk.lib.enumeration.EM_DELIVERY_FILE_TYPE;
+
+import java.io.Serializable;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 投放文件的信息
+ * @date 2020/9/14
+ */
+public class DeliveryFileInfo implements Serializable {
+ /**
+ * 文件类型
+ */
+ private EM_DELIVERY_FILE_TYPE emFileType;
+ /**
+ * 文件资源地址
+ */
+ private String szFileUrl;
+ /**
+ * 每张图片停留多长时间
+ */
+ private int nImageSustain;
+
+ public DeliveryFileInfo() {
+ }
+
+ public DeliveryFileInfo(EM_DELIVERY_FILE_TYPE emFileType, String szFileUrl, int nImageSustain) {
+ this.emFileType = emFileType;
+ this.szFileUrl = szFileUrl;
+ this.nImageSustain = nImageSustain;
+ }
+
+ public EM_DELIVERY_FILE_TYPE getEmFileType() {
+ return emFileType;
+ }
+
+ public void setEmFileType(EM_DELIVERY_FILE_TYPE emFileType) {
+ this.emFileType = emFileType;
+ }
+
+ public String getSzFileUrl() {
+ return szFileUrl;
+ }
+
+ public void setSzFileUrl(String szFileUrl) {
+ this.szFileUrl = szFileUrl;
+ }
+
+ public int getnImageSustain() {
+ return nImageSustain;
+ }
+
+ public void setnImageSustain(int nImageSustain) {
+ this.nImageSustain = nImageSustain;
+ }
+}
diff --git a/src/main/java/com/netsdk/module/entity/DeviceInfo.java b/src/main/java/com/netsdk/module/entity/DeviceInfo.java
new file mode 100644
index 0000000..9a6ca9f
--- /dev/null
+++ b/src/main/java/com/netsdk/module/entity/DeviceInfo.java
@@ -0,0 +1,178 @@
+package com.netsdk.module.entity;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.lib.enumeration.EMDeviceType;
+import com.sun.jna.Pointer;
+import com.sun.jna.Structure;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 设备信息的二次封装类
+ * @date 2020/9/12
+ */
+public class DeviceInfo {
+ private long loginHandler;
+ /**
+ * 序列号
+ */
+ private String serialNumber;
+ /**
+ * DVR报警输入个数
+ */
+ private int byAlarmInPortNum;
+ /**
+ * DVR报警输出个数
+ */
+ private int byAlarmOutPortNum;
+ /**
+ * DVR硬盘个数
+ */
+ private int byDiskNum;
+ /**
+ * DVR类型
+ */
+ private EMDeviceType byDVRType;
+ /**
+ * DVR通道个数
+ */
+ private int byChanNum;
+ /**
+ * 当登陆失败原因为密码错误时,通过此参数通知用户,剩余登陆次数,为0时表示此参数无效
+ */
+ private int byLeftLogTimes;
+ /**
+ * 在线超时时间,为0表示不限制登陆,非0表示限制的分钟数
+ * 该参数只适用于{@link com.netsdk.module.BaseModule#loginEx2(String, int, String, String, int, Pointer)}和
+ * {@link com.netsdk.module.BaseModule#loginWithHighSecurity(String, int, String, String, int, Structure, NetSDKLib.NET_DEVICEINFO_Ex)}
+ */
+ private int byLimitLoginTime;
+ /**
+ * 当登陆失败,用户解锁剩余时间(秒数), -1表示设备未设置该参数
+ */
+ private int byLockLeftTime;
+
+ public long getLoginHandler() {
+ return loginHandler;
+ }
+
+ public void setLoginHandler(long loginHandler) {
+ this.loginHandler = loginHandler;
+ }
+
+ public String getSerialNumber() {
+ return serialNumber;
+ }
+
+ public void setSerialNumber(String serialNumber) {
+ this.serialNumber = serialNumber;
+ }
+
+ public int getByAlarmInPortNum() {
+ return byAlarmInPortNum;
+ }
+
+ public void setByAlarmInPortNum(int byAlarmInPortNum) {
+ this.byAlarmInPortNum = byAlarmInPortNum;
+ }
+
+ public int getByAlarmOutPortNum() {
+ return byAlarmOutPortNum;
+ }
+
+ public void setByAlarmOutPortNum(int byAlarmOutPortNum) {
+ this.byAlarmOutPortNum = byAlarmOutPortNum;
+ }
+
+ public int getByDiskNum() {
+ return byDiskNum;
+ }
+
+ public void setByDiskNum(int byDiskNum) {
+ this.byDiskNum = byDiskNum;
+ }
+
+ public EMDeviceType getByDVRType() {
+ return byDVRType;
+ }
+
+ public void setByDVRType(EMDeviceType byDVRType) {
+ this.byDVRType = byDVRType;
+ }
+
+ public int getByChanNum() {
+ return byChanNum;
+ }
+
+ public void setByChanNum(int byChanNum) {
+ this.byChanNum = byChanNum;
+ }
+
+ public int getByLeftLogTimes() {
+ return byLeftLogTimes;
+ }
+
+ public void setByLeftLogTimes(int byLeftLogTimes) {
+ this.byLeftLogTimes = byLeftLogTimes;
+ }
+
+ public int getByLimitLoginTime() {
+ return byLimitLoginTime;
+ }
+
+ public void setByLimitLoginTime(int byLimitLoginTime) {
+ this.byLimitLoginTime = byLimitLoginTime;
+ }
+
+ public int getByLockLeftTime() {
+ return byLockLeftTime;
+ }
+
+ public void setByLockLeftTime(int byLockLeftTime) {
+ this.byLockLeftTime = byLockLeftTime;
+ }
+
+ public static DeviceInfo create(long loginHandler, NetSDKLib.NET_DEVICEINFO info) {
+ DeviceInfo device = new DeviceInfo();
+ device.serialNumber = new String(info.sSerialNumber).trim();
+ device.loginHandler = loginHandler;
+ device.byAlarmInPortNum = info.byAlarmInPortNum;
+ device.byAlarmOutPortNum = info.byAlarmOutPortNum;
+ device.byChanNum = info.union.byChanNum;
+ device.byLeftLogTimes = info.union.byLeftLogTimes;
+ device.byDiskNum = info.byDiskNum;
+ device.byDVRType = EMDeviceType.getEMDeviceType(info.byDVRType);
+ return device;
+ }
+
+ public static DeviceInfo create(long loginHandler, NetSDKLib.NET_DEVICEINFO_Ex info) {
+ DeviceInfo device = new DeviceInfo();
+ device.serialNumber = new String(info.sSerialNumber).trim();
+ device.loginHandler = loginHandler;
+ device.byAlarmInPortNum = info.byAlarmInPortNum;
+ device.byAlarmOutPortNum = info.byAlarmOutPortNum;
+ device.byChanNum = info.byChanNum;
+ device.byDiskNum = info.byDiskNum;
+ device.byDVRType = EMDeviceType.getEMDeviceType(info.byDVRType);
+ device.byLeftLogTimes = info.byLeftLogTimes;
+ device.byLimitLoginTime = info.byLimitLoginTime;
+ device.byLockLeftTime = info.byLockLeftTime;
+ return device;
+ }
+
+ @Override
+ public String toString() {
+ return "DeviceInfo{" +
+ "loginHandler=" + loginHandler +
+ ", serialNumber='" + serialNumber + '\'' +
+ ", byAlarmInPortNum=" + byAlarmInPortNum +
+ ", byAlarmOutPortNum=" + byAlarmOutPortNum +
+ ", byDiskNum=" + byDiskNum +
+ ", byDVRType=" + byDVRType +
+ ", byChanNum=" + byChanNum +
+ ", byLeftLogTimes=" + byLeftLogTimes +
+ ", byLimitLoginTime=" + byLimitLoginTime +
+ ", byLockLeftTime=" + byLockLeftTime +
+ '}';
+ }
+}
diff --git a/src/main/java/com/netsdk/module/entity/FilePreUploadResult.java b/src/main/java/com/netsdk/module/entity/FilePreUploadResult.java
new file mode 100644
index 0000000..750bb0b
--- /dev/null
+++ b/src/main/java/com/netsdk/module/entity/FilePreUploadResult.java
@@ -0,0 +1,49 @@
+package com.netsdk.module.entity;
+
+import com.netsdk.lib.enumeration.EM_REASON_TYPE;
+
+import java.io.Serializable;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 文件预上传的实体类
+ * @date 2020/9/14
+ */
+public class FilePreUploadResult implements Serializable {
+ /**
+ * 是否可以继续上传该文件, true:上传 false:不上传
+ */
+ private boolean canUpload;
+ /**
+ * 当canUpload为false时有效,获取上传失败的原因
+ */
+ private EM_REASON_TYPE emType;
+
+ public FilePreUploadResult() {
+ }
+
+ public FilePreUploadResult(boolean canUpload, int emType) {
+ this.canUpload = canUpload;
+ if (!canUpload) {
+ this.emType = EM_REASON_TYPE.getReasonType(emType);
+ }
+
+ }
+
+ public boolean isCanUpload() {
+ return canUpload;
+ }
+
+ public void setCanUpload(boolean canUpload) {
+ this.canUpload = canUpload;
+ }
+
+ public EM_REASON_TYPE getEmType() {
+ return emType;
+ }
+
+ public void setEmType(EM_REASON_TYPE emType) {
+ this.emType = emType;
+ }
+}
diff --git a/src/main/java/com/netsdk/module/entity/ForbiddenAdvertPlayInfoConfig.java b/src/main/java/com/netsdk/module/entity/ForbiddenAdvertPlayInfoConfig.java
new file mode 100644
index 0000000..21fdf09
--- /dev/null
+++ b/src/main/java/com/netsdk/module/entity/ForbiddenAdvertPlayInfoConfig.java
@@ -0,0 +1,74 @@
+package com.netsdk.module.entity;
+
+import com.netsdk.lib.structure.NET_TIME;
+import com.netsdk.lib.structure.NET_TIME_EX1;
+
+import java.io.Serializable;
+import java.sql.Time;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 广告禁播时间信息
+ * @date 2020/9/15
+ */
+public class ForbiddenAdvertPlayInfoConfig implements Serializable {
+ /**
+ * 时间段使能
+ */
+ private boolean bEnable;
+ /**
+ * 广告禁用开始时间
+ */
+ public NET_TIME_EX1 stuBeginTime;
+ /**
+ * 广告结束开始时间
+ */
+ public NET_TIME_EX1 stuEndTime;
+
+ public boolean isbEnable() {
+ return bEnable;
+ }
+
+ public void setbEnable(boolean bEnable) {
+ this.bEnable = bEnable;
+ }
+
+ public NET_TIME_EX1 getStuBeginTime() {
+ return stuBeginTime;
+ }
+
+ public void setStuBeginTime(NET_TIME_EX1 stuBeginTime) {
+ this.stuBeginTime = stuBeginTime;
+ }
+
+ public NET_TIME_EX1 getStuEndTime() {
+ return stuEndTime;
+ }
+
+ public void setStuEndTime(NET_TIME_EX1 stuEndTime) {
+ this.stuEndTime = stuEndTime;
+ }
+
+ public ForbiddenAdvertPlayInfoConfig() {
+ }
+
+ public ForbiddenAdvertPlayInfoConfig(boolean bEnable, int startHour, int startMinute, int startSecond, int endHour, int endMinute, int endSecond) {
+ this.bEnable = bEnable;
+ this.stuBeginTime = new NET_TIME_EX1();
+ this.stuEndTime = new NET_TIME_EX1();
+ this.stuBeginTime.dwHour = startHour;
+ this.stuBeginTime.dwMinute = startMinute;
+ this.stuBeginTime.dwSecond = startSecond;
+ this.stuEndTime.dwHour = endHour;
+ this.stuEndTime.dwMinute = endMinute;
+ this.stuEndTime.dwSecond = endSecond;
+ }
+
+ public ForbiddenAdvertPlayInfoConfig(boolean bEnable, NET_TIME_EX1 stuBeginTime, NET_TIME_EX1 stuEndTime) {
+ this.bEnable = bEnable;
+ this.stuBeginTime = stuBeginTime;
+ this.stuEndTime = stuEndTime;
+ }
+
+}
diff --git a/src/main/java/com/netsdk/module/entity/HeatMapData.java b/src/main/java/com/netsdk/module/entity/HeatMapData.java
new file mode 100644
index 0000000..7fd31de
--- /dev/null
+++ b/src/main/java/com/netsdk/module/entity/HeatMapData.java
@@ -0,0 +1,64 @@
+package com.netsdk.module.entity;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 设备传递上来的热度图数据
+ * @date 2020/9/27
+ */
+public class HeatMapData {
+ /**
+ * 宽
+ */
+ private int width;
+ /**
+ * 高
+ */
+ private int height;
+ /**
+ * 热度图数据
+ */
+ private byte[] data;
+
+ public HeatMapData(int width, int height, byte[] data) {
+ this.width = width;
+ this.height = height;
+ this.data = data;
+ }
+
+ /**
+ * 往data中追加数据
+ * @param bytes
+ */
+ public void addData(byte[] bytes){
+ int length=data.length+bytes.length;
+ byte[] temp=new byte[length];
+ System.arraycopy(data,0,temp,0,data.length);
+ System.arraycopy(bytes,0,temp,data.length,bytes.length);
+ this.data=temp;
+ }
+
+ public int getWidth() {
+ return width;
+ }
+
+ public void setWidth(int width) {
+ this.width = width;
+ }
+
+ public int getHeight() {
+ return height;
+ }
+
+ public void setHeight(int height) {
+ this.height = height;
+ }
+
+ public byte[] getData() {
+ return data;
+ }
+
+ public void setData(byte[] data) {
+ this.data = data;
+ }
+}
diff --git a/src/main/java/com/netsdk/module/entity/HeatMapGrayData.java b/src/main/java/com/netsdk/module/entity/HeatMapGrayData.java
new file mode 100644
index 0000000..177ab25
--- /dev/null
+++ b/src/main/java/com/netsdk/module/entity/HeatMapGrayData.java
@@ -0,0 +1,82 @@
+package com.netsdk.module.entity;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 灰度图处理后的数据
+ * @date 2020/9/27
+ */
+public class HeatMapGrayData {
+ /**
+ * 灰度图大小,不带头
+ */
+ private int length;
+ /**
+ * 位深度
+ */
+ private int nBit;
+ /**
+ * 宽度
+ */
+ private int width;
+ /**
+ * 高度
+ */
+ private int height;
+ /**
+ * 灰度数据
+ */
+ private byte[] data;
+
+ public HeatMapGrayData(int width, int height, byte[] data) {
+ this.width = width;
+ this.height = height;
+ this.data = data;
+ this.nBit = data.length / (width * height) * 8;
+ if (nBit == 8) {
+ this.length = data.length * 8 / 8;
+ } else {
+ this.length = width * height * nBit / 8;
+ }
+ }
+
+ public int getLength() {
+ return length;
+ }
+
+ public void setLength(int length) {
+ this.length = length;
+ }
+
+ public int getnBit() {
+ return nBit;
+ }
+
+ public void setnBit(int nBit) {
+ this.nBit = nBit;
+ }
+
+ public int getWidth() {
+ return width;
+ }
+
+ public void setWidth(int width) {
+ this.width = width;
+ }
+
+ public int getHeight() {
+ return height;
+ }
+
+ public void setHeight(int height) {
+ this.height = height;
+ }
+
+ public byte[] getData() {
+ return data;
+ }
+
+ public void setData(byte[] data) {
+ this.data = data;
+ }
+}
diff --git a/src/main/java/com/netsdk/module/entity/ImageCompareInfo.java b/src/main/java/com/netsdk/module/entity/ImageCompareInfo.java
new file mode 100644
index 0000000..363dd5d
--- /dev/null
+++ b/src/main/java/com/netsdk/module/entity/ImageCompareInfo.java
@@ -0,0 +1,46 @@
+package com.netsdk.module.entity;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description
+ * @date 2020/10/19
+ */
+public class ImageCompareInfo {
+ private int width;
+ private int height;
+ private int length;
+ private byte[] data;
+
+ public int getWidth() {
+ return width;
+ }
+
+ public void setWidth(int width) {
+ this.width = width;
+ }
+
+ public int getHeight() {
+ return height;
+ }
+
+ public void setHeight(int height) {
+ this.height = height;
+ }
+
+ public int getLength() {
+ return length;
+ }
+
+ public void setLength(int length) {
+ this.length = length;
+ }
+
+ public byte[] getData() {
+ return data;
+ }
+
+ public void setData(byte[] data) {
+ this.data = data;
+ }
+}
diff --git a/src/main/java/com/netsdk/module/entity/PushAnalysePictureInfo.java b/src/main/java/com/netsdk/module/entity/PushAnalysePictureInfo.java
new file mode 100644
index 0000000..b0f998a
--- /dev/null
+++ b/src/main/java/com/netsdk/module/entity/PushAnalysePictureInfo.java
@@ -0,0 +1,36 @@
+package com.netsdk.module.entity;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 主动推送图片的信息
+ * @date 2020/10/19
+ */
+public class PushAnalysePictureInfo {
+ private String name;
+ private String fileID;
+
+ public PushAnalysePictureInfo() {
+ }
+
+ public PushAnalysePictureInfo(String fileName, String fileID) {
+ this.name = fileName;
+ this.fileID = fileID;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getFileID() {
+ return fileID;
+ }
+
+ public void setFileID(String fileID) {
+ this.fileID = fileID;
+ }
+}
diff --git a/src/main/java/com/netsdk/module/entity/QRCodeInfo.java b/src/main/java/com/netsdk/module/entity/QRCodeInfo.java
new file mode 100644
index 0000000..a2e7e61
--- /dev/null
+++ b/src/main/java/com/netsdk/module/entity/QRCodeInfo.java
@@ -0,0 +1,32 @@
+package com.netsdk.module.entity;
+
+import com.netsdk.lib.enumeration.NET_EM_2DCODE_TYPE;
+
+import java.io.Serializable;
+
+/**
+ * @author 47081
+ * @version 1.0
+ * @description 二维码信息
+ * @date 2020/9/14
+ */
+public class QRCodeInfo implements Serializable {
+ private NET_EM_2DCODE_TYPE emType;
+ private String code;
+
+ public NET_EM_2DCODE_TYPE getEmType() {
+ return emType;
+ }
+
+ public void setEmType(NET_EM_2DCODE_TYPE emType) {
+ this.emType = emType;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+}
diff --git a/src/main/java/com/xydl/cac/comparator/FloatCompare.java b/src/main/java/com/xydl/cac/comparator/FloatCompare.java
index ca3cc9f..003c906 100644
--- a/src/main/java/com/xydl/cac/comparator/FloatCompare.java
+++ b/src/main/java/com/xydl/cac/comparator/FloatCompare.java
@@ -14,7 +14,12 @@ public class FloatCompare extends Comparator {
@Override
public boolean compare(Object source, String threshold, Date lastDTime) {
if (source != null) {
- float s1 = (float) source;
+ float s1;
+ if (source instanceof Number) {
+ s1 = (float) source;
+ } else {
+ s1 = Float.valueOf(source.toString());
+ }
if ("BTW".equalsIgnoreCase(operator)) {
String[] strs = threshold.split(",");
diff --git a/src/main/java/com/xydl/cac/comparator/IntCompare.java b/src/main/java/com/xydl/cac/comparator/IntCompare.java
index d3a657c..7023f9f 100644
--- a/src/main/java/com/xydl/cac/comparator/IntCompare.java
+++ b/src/main/java/com/xydl/cac/comparator/IntCompare.java
@@ -11,7 +11,12 @@ public class IntCompare extends Comparator {
@Override
public boolean compare(Object source, String threshold, Date lastDTime) {
if (source != null) {
- int s1 = (int) source;
+ int s1;
+ if (source instanceof Integer) {
+ s1 = (int) source;
+ } else {
+ s1 = Integer.valueOf(source.toString());
+ }
if ("BTW".equalsIgnoreCase(operator)) {
String[] strs = threshold.split(",");
diff --git a/src/main/java/com/xydl/cac/controller/IcdConfigController.java b/src/main/java/com/xydl/cac/controller/IcdConfigController.java
index cda1b63..bebfeb4 100644
--- a/src/main/java/com/xydl/cac/controller/IcdConfigController.java
+++ b/src/main/java/com/xydl/cac/controller/IcdConfigController.java
@@ -174,7 +174,7 @@ public class IcdConfigController extends BasicController {
}
Optional optional = iedRepository.findById(iedId);
if (!optional.isPresent()) {
- throw new BusinessException("未找到该IED");
+ throw new BusinessException("未找到该IED id=" + iedId);
}
IcdIed ied = optional.get();
try {
@@ -201,7 +201,7 @@ public class IcdConfigController extends BasicController {
}
Optional optional = iedRepository.findById(iedId);
if (!optional.isPresent()) {
- throw new BusinessException("未找到该IED");
+ throw new BusinessException("未找到该IED id=" + iedId);
}
IcdIed ied = optional.get();
ied.setStart(Constants.FALSE);
diff --git a/src/main/java/com/xydl/cac/controller/IedDlController.java b/src/main/java/com/xydl/cac/controller/IedDlController.java
index a257384..c6e3b64 100644
--- a/src/main/java/com/xydl/cac/controller/IedDlController.java
+++ b/src/main/java/com/xydl/cac/controller/IedDlController.java
@@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.constraints.NotNull;
+import java.util.Date;
import java.util.List;
@RestController
@@ -66,15 +67,28 @@ public class IedDlController extends BasicController {
@GetMapping("listDownload")
@ApiOperation("查询下载记录列表")
- public Response> list(@ApiParam("类型") @RequestParam(value = "configId", required = false) Integer configId,
+ public Response> list(@ApiParam("配置Id") @RequestParam(value = "configId", required = false) Integer configId,
+ @ApiParam("devId") @RequestParam(value = "devId", required = false) Integer devId,
+ @ApiParam("开始时间") @RequestParam(value = "startTime", required = false) Date startTime,
+ @ApiParam("结束时间") @RequestParam(value = "endTime", required = false) Date endTime,
@ApiParam("页码") @RequestParam(value = "pageNum", required = false) Integer pageNum,
@ApiParam("每页数量") @RequestParam(value = "pageSize", required = false) Integer pageSize) throws Exception {
pageNum = this.initPageNum(pageNum);
pageSize = this.initPageSize(pageSize);
- Page result = recordService.list(configId, pageNum, pageSize);
+ Page result = recordService.list(configId, devId, startTime, endTime, pageNum, pageSize);
return Response.success(result);
}
+ @PostMapping("rebuildData")
+ @ApiOperation("rebuildData")
+ public Response rebuildData(@Validated @NotNull(message = "id不能为空!") Integer id) throws Exception {
+ if (id == null) {
+ throw new BusinessException("id不能为空!");
+ }
+ recordService.rebuildData(id);
+ return Response.success("OK");
+ }
+
@GetMapping("listFiles")
@ApiOperation("查询文件和目录")
public Response> listFiles(Integer iedId, String path) throws Exception {
diff --git a/src/main/java/com/xydl/cac/controller/NSensorController.java b/src/main/java/com/xydl/cac/controller/NSensorController.java
index ca75bb4..ca92973 100644
--- a/src/main/java/com/xydl/cac/controller/NSensorController.java
+++ b/src/main/java/com/xydl/cac/controller/NSensorController.java
@@ -3,10 +3,7 @@ package com.xydl.cac.controller;
import com.xydl.cac.entity.Bdz;
import com.xydl.cac.entity.NSensor;
import com.xydl.cac.exception.BusinessException;
-import com.xydl.cac.model.ConditionModel;
-import com.xydl.cac.model.Response;
-import com.xydl.cac.model.SensorDetail;
-import com.xydl.cac.model.SensorUpdateModel;
+import com.xydl.cac.model.*;
import com.xydl.cac.repository.NSensorRepository;
import com.xydl.cac.service.NSensorService;
import com.xydl.cac.service.ParamBindService;
@@ -157,7 +154,7 @@ public class NSensorController extends BasicController {
String typename = "";
List list = sensorRepository.findByTypeId(model.getTypeId());
if (CollectionUtils.isEmpty(list)) {
- throw new BusinessException("未找到该类型的装置");
+ throw new BusinessException("未找到该类型的装置typeId=" + model.getTypeId());
}
List>> detailList = new ArrayList<>();
for (NSensor sensor : list) {
@@ -214,4 +211,16 @@ public class NSensorController extends BasicController {
}
+ @PostMapping("sanbizhi")
+ @ApiOperation("三比值")
+ public Response sanbizhi(@RequestBody Map map) throws Exception {
+ SanbizhiModel item = new SanbizhiModel();
+ boolean r = item.build(map);
+ if (r) {
+ return Response.success(item);
+ } else {
+ throw new BusinessException(item.getStatus());
+ }
+ }
+
}
diff --git a/src/main/java/com/xydl/cac/controller/TestController.java b/src/main/java/com/xydl/cac/controller/TestController.java
index 78c8927..fd29d59 100644
--- a/src/main/java/com/xydl/cac/controller/TestController.java
+++ b/src/main/java/com/xydl/cac/controller/TestController.java
@@ -90,7 +90,13 @@ public class TestController extends BasicController {
@GetMapping("/discover")
public Response discoverSerialPort() {
serialPortService.discoverSerialPort();
- return Response.fail("未找到");
+ return Response.success("OK");
+ }
+
+ @GetMapping("/updateLastData")
+ public Response updateLastData(Integer eqmid, String colname, String value, String time) {
+ StaticVariable.updateLastData(eqmid, colname, value, time);
+ return Response.success("OK");
}
@GetMapping("/open")
diff --git a/src/main/java/com/xydl/cac/controller/ThermalConfigController.java b/src/main/java/com/xydl/cac/controller/ThermalConfigController.java
new file mode 100644
index 0000000..b154f93
--- /dev/null
+++ b/src/main/java/com/xydl/cac/controller/ThermalConfigController.java
@@ -0,0 +1,37 @@
+package com.xydl.cac.controller;
+
+import com.xydl.cac.entity.ThermalConfig;
+import com.xydl.cac.model.Response;
+import com.xydl.cac.service.ThermalConfigService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@RestController
+@Api(tags = {"热成像测温相关接口"})
+@RequestMapping("thermal")
+@Slf4j
+public class ThermalConfigController extends BasicController {
+
+ @Resource
+ ThermalConfigService configService;
+
+ @GetMapping("getConfig")
+ @ApiOperation("查询配置")
+ public Response getConfig() {
+ ThermalConfig result = configService.getConfig();
+ return Response.success(result);
+ }
+
+ @PostMapping("saveConfig")
+ @ApiOperation("修改配置")
+ public Response saveConfig(@Validated @RequestBody ThermalConfig model) throws Exception {
+ configService.saveConfig(model);
+ return Response.success("OK");
+ }
+
+}
diff --git a/src/main/java/com/xydl/cac/controller/WarnRuleController.java b/src/main/java/com/xydl/cac/controller/WarnRuleController.java
index 63ee4e8..a8c8d8b 100644
--- a/src/main/java/com/xydl/cac/controller/WarnRuleController.java
+++ b/src/main/java/com/xydl/cac/controller/WarnRuleController.java
@@ -38,15 +38,15 @@ public class WarnRuleController extends BasicController {
public Response> listComparator() throws Exception {
List result = new ArrayList<>();
ColumnModel item = new ColumnModel();
- item.setType(Constants.FloatCompare);
+ item.setType(Constants.Float);
item.setComment("浮点型数据比较器");
result.add(item);
item = new ColumnModel();
- item.setType(Constants.IntCompare);
+ item.setType(Constants.Int);
item.setComment("整型数据比较器");
result.add(item);
item = new ColumnModel();
- item.setType(Constants.MissCompare);
+ item.setType(Constants.Miss);
item.setComment("数据缺失比较器");
result.add(item);
return Response.success(result);
@@ -60,14 +60,14 @@ public class WarnRuleController extends BasicController {
}
private Comparator getComparator(String name) throws BusinessException {
- if (Constants.FloatCompare.equalsIgnoreCase(name)) {
+ if (Constants.Float.equalsIgnoreCase(name)) {
return floatCompare;
- } else if (Constants.IntCompare.equalsIgnoreCase(name)) {
+ } else if (Constants.Int.equalsIgnoreCase(name)) {
return intCompare;
- } else if (Constants.MissCompare.equalsIgnoreCase(name)) {
+ } else if (Constants.Miss.equalsIgnoreCase(name)) {
return missCompare;
} else {
- throw new BusinessException("未找到该比较器");
+ throw new BusinessException("未找到该比较器" + name);
}
}
@@ -76,15 +76,15 @@ public class WarnRuleController extends BasicController {
public Response> listAll(Integer sensorId) throws Exception {
List result = service.listAll(sensorId);
for (WarnRule item : result) {
- if (Constants.FloatCompare.equalsIgnoreCase(item.getComparator())) {
+ if (Constants.Float.equalsIgnoreCase(item.getComparator())) {
item.setComparatorDesc("浮点型数据比较器");
String name = floatCompare.supportedOperator().get(item.getOperator());
item.setOperatorDesc(name);
- } else if (Constants.IntCompare.equalsIgnoreCase(item.getComparator())) {
+ } else if (Constants.Int.equalsIgnoreCase(item.getComparator())) {
item.setComparatorDesc("整型数据比较器");
String name = intCompare.supportedOperator().get(item.getOperator());
item.setOperatorDesc(name);
- } else if (Constants.MissCompare.equalsIgnoreCase(item.getComparator())) {
+ } else if (Constants.Miss.equalsIgnoreCase(item.getComparator())) {
item.setComparatorDesc("数据缺失比较器");
String name = missCompare.supportedOperator().get(item.getOperator());
item.setOperatorDesc(name);
diff --git a/src/main/java/com/xydl/cac/controller/WarningController.java b/src/main/java/com/xydl/cac/controller/WarningController.java
index a823667..5713a58 100644
--- a/src/main/java/com/xydl/cac/controller/WarningController.java
+++ b/src/main/java/com/xydl/cac/controller/WarningController.java
@@ -5,6 +5,7 @@ import com.xydl.cac.entity.Warning;
import com.xydl.cac.exception.BusinessException;
import com.xydl.cac.model.ConditionModel;
import com.xydl.cac.model.Response;
+import com.xydl.cac.service.DataService;
import com.xydl.cac.service.ReportService;
import com.xydl.cac.service.WarningService;
import io.swagger.annotations.Api;
@@ -28,6 +29,9 @@ public class WarningController extends BasicController {
@Resource
WarningService service;
+ @Resource
+ DataService dataService;
+
@GetMapping("list")
@ApiOperation("查询列表")
public Response> list(@Validated ConditionModel condition) throws Exception {
@@ -65,13 +69,20 @@ public class WarningController extends BasicController {
}
+ Boolean isHandle = false;
+
@PostMapping("oneKeyUpdateState")
@ApiOperation("一键修改处理状态")
public Response oneKeyUpdateState() throws Exception {
- ConditionModel condition = new ConditionModel();
- condition.setState("1");
- List warnings = service.listAll(condition);
- service.oneKeyUpdateState(warnings);
- return Response.success("OK");
+ try {
+ if (isHandle) {
+ throw new BusinessException("相同请求正在处理中, 请勿重复处理");
+ }
+ isHandle = true;
+ service.oneKeyUpdateState();
+ return Response.success("OK");
+ } finally {
+ isHandle = false;
+ }
}
}
diff --git a/src/main/java/com/xydl/cac/entity/I2syncField.java b/src/main/java/com/xydl/cac/entity/I2syncField.java
index 98d1a05..d770945 100644
--- a/src/main/java/com/xydl/cac/entity/I2syncField.java
+++ b/src/main/java/com/xydl/cac/entity/I2syncField.java
@@ -36,4 +36,7 @@ public class I2syncField {
@Column(name = "attach")
private String attach;
+ @Column(name = "conversion")
+ private String conversion;
+
}
\ No newline at end of file
diff --git a/src/main/java/com/xydl/cac/entity/IedDlConfig.java b/src/main/java/com/xydl/cac/entity/IedDlConfig.java
index 0c468e3..7fe2d31 100644
--- a/src/main/java/com/xydl/cac/entity/IedDlConfig.java
+++ b/src/main/java/com/xydl/cac/entity/IedDlConfig.java
@@ -58,6 +58,10 @@ public class IedDlConfig {
@Column(name = "active")
private Integer active;
+ @ApiModelProperty("是否上传健康评估 0:不传 1:要传")
+ @Column(name = "upload")
+ private Integer upload;
+
@Transient
private NSensor sensor;
@Transient
diff --git a/src/main/java/com/xydl/cac/entity/IedDlRecord.java b/src/main/java/com/xydl/cac/entity/IedDlRecord.java
index 7e52967..a5c2201 100644
--- a/src/main/java/com/xydl/cac/entity/IedDlRecord.java
+++ b/src/main/java/com/xydl/cac/entity/IedDlRecord.java
@@ -1,6 +1,6 @@
package com.xydl.cac.entity;
-import com.fasterxml.jackson.annotation.JsonInclude;
+import com.xydl.cac.model.spectrogram.SpectrogramModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
@@ -11,7 +11,6 @@ import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.util.Date;
-@JsonInclude(JsonInclude.Include.NON_NULL)
@Data
@Builder
@AllArgsConstructor
@@ -42,11 +41,36 @@ public class IedDlRecord {
@Column(name = "filename")
private String filename;
+ @ApiModelProperty("采集时间")
+ @Column(name = "d_time")
+ private Date dTime;
+
@ApiModelProperty("创建时间")
@Column(name = "create_time")
private Date createTime;
+ @ApiModelProperty("devId")
+ @Column(name = "dev_id")
+ private Integer devId;
+
+ @ApiModelProperty("typeId")
+ @Column(name = "type_id")
+ private Integer typeId;
+
+ @ApiModelProperty("解析后数据")
+ @Column(name = "data")
+ private String data;
+
+ @ApiModelProperty("是否上传健康评估 0:未传 1:已传")
+ @Column(name = "upload")
+ private Integer upload;
+
+ @Transient
+ String localFullPath;
+
@Transient
IedDlConfig config;
+ @Transient
+ SpectrogramModel model;
}
\ No newline at end of file
diff --git a/src/main/java/com/xydl/cac/entity/NSensor.java b/src/main/java/com/xydl/cac/entity/NSensor.java
index 4098936..8bf4acc 100644
--- a/src/main/java/com/xydl/cac/entity/NSensor.java
+++ b/src/main/java/com/xydl/cac/entity/NSensor.java
@@ -7,6 +7,7 @@ import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
import javax.persistence.*;
import java.util.ArrayList;
@@ -64,6 +65,34 @@ public class NSensor {
@ApiModelProperty("关联icd表中的id")
private Integer icdId;
+ @Column(name = "order_num")
+ @ApiModelProperty("排序编号")
+ private Integer orderNum;
+
+ @ApiModelProperty("ip")
+ @Column(name = "ip")
+ private String ip;
+
+ @Column(name = "port")
+ @ApiModelProperty("port")
+ private Integer port;
+
+ @ApiModelProperty("username")
+ @Column(name = "username")
+ private String username;
+
+ @ApiModelProperty("passwd")
+ @Column(name = "passwd")
+ private String passwd;
+
+ @Column(name = "tm_id")
+ @ApiModelProperty("tmId")
+ private Integer tmId;
+
+ @Column(name = "tm_type")
+ @ApiModelProperty("tmType")
+ private Integer tmType;
+
@ApiModelProperty("主设备名称")
@Transient
private String zsbName;
@@ -104,4 +133,13 @@ public class NSensor {
points.add(point);
return null;
}
+
+ public boolean canTempMeasure() {
+ if (StringUtils.isNotBlank(ip) && StringUtils.isNotBlank(username) && StringUtils.isNotBlank(passwd)
+ && port != null && tmId != null && tmType != null) {
+ return true;
+ } else {
+ return false;
+ }
+ }
}
\ No newline at end of file
diff --git a/src/main/java/com/xydl/cac/entity/ThermalConfig.java b/src/main/java/com/xydl/cac/entity/ThermalConfig.java
new file mode 100644
index 0000000..ddf8c33
--- /dev/null
+++ b/src/main/java/com/xydl/cac/entity/ThermalConfig.java
@@ -0,0 +1,45 @@
+package com.xydl.cac.entity;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.*;
+import javax.validation.constraints.NotNull;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@Entity
+@Table(name = "thermal_config")
+@ApiModel("热成像测温配置表")
+public class ThermalConfig {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Column(name = "id")
+ private Integer id;
+
+ @NotNull(message = "typeId不能为空")
+ @Column(name = "type_id")
+ @ApiModelProperty("类型Id")
+ private Integer typeId;
+
+ @ApiModelProperty("最高温度字段")
+ @Column(name = "maxtemp")
+ private String maxtemp;
+
+ @ApiModelProperty("最低温度字段")
+ @Column(name = "mintemp")
+ private String mintemp;
+
+ @ApiModelProperty("平均温度字段")
+ @Column(name = "avertemp")
+ private String avertemp;
+}
\ No newline at end of file
diff --git a/src/main/java/com/xydl/cac/entity/WarnRule.java b/src/main/java/com/xydl/cac/entity/WarnRule.java
index 9bfac57..7612483 100644
--- a/src/main/java/com/xydl/cac/entity/WarnRule.java
+++ b/src/main/java/com/xydl/cac/entity/WarnRule.java
@@ -105,13 +105,13 @@ public class WarnRule {
} else {
this.comparator = comparator;
this.operator = operator;
- if (Constants.FloatCompare.equalsIgnoreCase(comparator)) {
+ if (Constants.Float.equalsIgnoreCase(comparator)) {
actualComp = new FloatCompare();
actualComp.setOperator(operator);
- } else if (Constants.IntCompare.equalsIgnoreCase(comparator)) {
+ } else if (Constants.Int.equalsIgnoreCase(comparator)) {
actualComp = new IntCompare();
actualComp.setOperator(operator);
- } else if (Constants.MissCompare.equalsIgnoreCase(comparator)) {
+ } else if (Constants.Miss.equalsIgnoreCase(comparator)) {
actualComp = new MissCompare();
actualComp.setOperator(operator);
} else {
@@ -141,7 +141,7 @@ public class WarnRule {
public List checkData(List> list) throws Exception {
List result = null;
if (CollectionUtils.isEmpty(list)) {
- if (Constants.MissCompare.equalsIgnoreCase(comparator)) {
+ if (Constants.Miss.equalsIgnoreCase(comparator)) {
boolean r = this.triggerRule(null);
if (r) {
result = new ArrayList<>();
diff --git a/src/main/java/com/xydl/cac/entity/constants/Constants.java b/src/main/java/com/xydl/cac/entity/constants/Constants.java
index 8e32afc..30f5ed2 100644
--- a/src/main/java/com/xydl/cac/entity/constants/Constants.java
+++ b/src/main/java/com/xydl/cac/entity/constants/Constants.java
@@ -13,7 +13,13 @@ public class Constants {
public static final Integer Server = 1;
public static final Integer Client = 0;
- public static String FloatCompare = "float";
- public static String IntCompare = "int";
- public static String MissCompare = "miss";
+ public static String Float = "float";
+ public static String Int = "int";
+ public static String Varchar = "varchar";
+ public static String Text = "text";
+ public static String DateTime = "datetime";
+ public static String Miss = "miss";
+
+ public static final Integer I2BatchSize = 500;
+
}
diff --git a/src/main/java/com/xydl/cac/iec/IEDCollectService.java b/src/main/java/com/xydl/cac/iec/IEDCollectService.java
index 3d1009c..9bcc318 100644
--- a/src/main/java/com/xydl/cac/iec/IEDCollectService.java
+++ b/src/main/java/com/xydl/cac/iec/IEDCollectService.java
@@ -10,7 +10,9 @@ import com.xydl.cac.repository.*;
import com.xydl.cac.service.DataService;
import com.xydl.cac.service.IedDlRecordService;
import com.xydl.cac.socket.WebSocketServer;
+import com.xydl.cac.spectrogram.SpectrogramHandler;
import com.xydl.cac.util.DateUtil;
+import com.xydl.cac.util.JkpgFtp;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.CollectionUtils;
@@ -33,6 +35,9 @@ public class IEDCollectService {
WebSocketServer _webSocketServer;
BizConfig _bizConfig;
WarningRepository _warningRepository;
+ SpectrogramHandler _spectrogramHandler;
+ boolean _warning;
+ JkpgFtp _jkpgFtp;
String folder = "/record";
HashMap eqmidTimeMap = new HashMap<>();
@@ -41,8 +46,9 @@ public class IEDCollectService {
IcdConfigTypeInstRepository instRepository, RptparamindexRepository rptparamindexRepository,
IedDlRecordService dlRecordService, DataService dataService,
String xml, IcdIed ied,
- WebSocketServer webSocketServer, BizConfig bizConfig,
- WarningRepository warningRepository) {
+ WebSocketServer webSocketServer, BizConfig bizConfig, boolean warning,
+ WarningRepository warningRepository, SpectrogramHandler spectrogramHandler,
+ JkpgFtp jkpgFtp) {
_configRepository = configRepository;
_attRepository = attRepository;
_instRepository = instRepository;
@@ -53,7 +59,10 @@ public class IEDCollectService {
this.ied = ied;
_webSocketServer = webSocketServer;
_bizConfig = bizConfig;
+ _warning = warning;
_warningRepository = warningRepository;
+ _spectrogramHandler = spectrogramHandler;
+ _jkpgFtp = jkpgFtp;
iecClient = new IecClient();
}
@@ -87,11 +96,13 @@ public class IEDCollectService {
String err = "61850采集数据异常, ied=" + ied.getName() + ", ip=" + ied.getIp() + ", port=" + ied.getPort()
+ ", " + ex.getMessage();
log.error(err, ex);
- this.saveWarning(err);
- String key = ied.getName() + ied.getIp() + ied.getPort();
- if (!StaticVariable.doneWarnMap.containsKey(key)) {
- StaticVariable.doneWarnMap.put(key, "1");
- _webSocketServer.sendMessage(err, null);
+ if (_warning) {
+ this.saveWarning(err);
+ String key = ied.getName() + ied.getIp() + ied.getPort();
+ if (!StaticVariable.doneWarnMap.containsKey(key)) {
+ StaticVariable.doneWarnMap.put(key, "1");
+ _webSocketServer.sendMessage(err, null);
+ }
}
} finally {
iecClient.disconnect();
@@ -99,6 +110,9 @@ public class IEDCollectService {
}
private void saveWarning(String err) {
+ if (err.length() > 254) {
+ err = err.substring(0, 254);
+ }
Warning warning = Warning.builder()
.zsbName("61850采集数据")
.dTime(new Date())
@@ -148,6 +162,11 @@ public class IEDCollectService {
value = valueNode.getValueString();
String time = timeNode.getValueString();
log.info("采集到" + fc + " " + paramindexNew + "=" + value + ", t=" + time);
+ // 句容抽蓄 局放数据为0异常特殊处理
+ if (paramindexNew.toLowerCase().contains("avdsch") && value.equalsIgnoreCase("0.0")) {
+ log.warn("avdsch数据异常,改为-70");
+ value = "-70";
+ }
if ("NaN".equalsIgnoreCase(value)) {
return;
}
@@ -213,16 +232,23 @@ public class IEDCollectService {
&& matchContain(filename, config.getContain())) {
IedDlRecord record = new IedDlRecord();
record.setConfigId(config.getId());
+ record.setDevId(config.getDevId());
+ record.setTypeId(config.getSensor().getTypeId());
record.setFilename(filename);
record.setRemotePath(config.getPath() + filename);
boolean exist = _dlRecordService.exist(record);
if (!exist) {
- String localFilePath = localPath + "/" + filename;
- iecClient.getFile(record.getRemotePath(), _bizConfig.getDatapath() + localFilePath, config.getTodel());
- record.setPath(_bizConfig.getDataNginxPath() + localFilePath);
- record.setCreateTime(new Date());
- _dlRecordService.add(record);
+ String relativePath = localPath + "/" + filename;
+ String localFullPath = _bizConfig.getDatapath() + relativePath;
+ record.setLocalFullPath(localFullPath);
+ iecClient.getFile(record.getRemotePath(), localFullPath, config.getTodel());
+ record.setPath(_bizConfig.getDataNginxPath() + relativePath);
log.info("采集到" + record.getRemotePath());
+ _spectrogramHandler.processFile(record);
+ if (config.getUpload() != null && config.getUpload().intValue() == Constants.TRUE) {
+ _jkpgFtp.upload(record);
+ }
+ _dlRecordService.add(record);
}
}
}
diff --git a/src/main/java/com/xydl/cac/iec/IecClient.java b/src/main/java/com/xydl/cac/iec/IecClient.java
index c671ea3..2d1c5e1 100644
--- a/src/main/java/com/xydl/cac/iec/IecClient.java
+++ b/src/main/java/com/xydl/cac/iec/IecClient.java
@@ -31,8 +31,7 @@ public class IecClient implements ClientEventListener {
public boolean keep = false;
public boolean connected = false;
- private RealTimeDataService realTimeDataService;
- private WebSocketServer webSocketServer;
+ private WebSocketServer webSocketServer = null;
public int retry = 0;
public int seconds = 0;
private boolean inRetry = false;
@@ -41,9 +40,10 @@ public class IecClient implements ClientEventListener {
public IecClient() {
}
- public IecClient(RealTimeDataService _realTimeDataService, WebSocketServer _webSocketServer) {
- realTimeDataService = _realTimeDataService;
- webSocketServer = _webSocketServer;
+ public IecClient(WebSocketServer _webSocketServer, boolean warning) {
+ if (warning) {
+ webSocketServer = _webSocketServer;
+ }
}
public void init(IcdIed _ied, String xml) throws Exception {
diff --git a/src/main/java/com/xydl/cac/iec/IecServerService.java b/src/main/java/com/xydl/cac/iec/IecServerService.java
index f02518d..e19ee98 100644
--- a/src/main/java/com/xydl/cac/iec/IecServerService.java
+++ b/src/main/java/com/xydl/cac/iec/IecServerService.java
@@ -41,7 +41,7 @@ public class IecServerService {
public void startServer(Integer fileId, int port) throws BusinessException {
Optional optional = fileRepository.findById(fileId);
if (!optional.isPresent()) {
- throw new BusinessException("未找到该文件");
+ throw new BusinessException("未找到该文件fileId=" + fileId);
}
IcdFile icdFile = optional.get();
if (icdFile.getSrv() != Constants.Server) {
@@ -94,7 +94,7 @@ public class IecServerService {
public List listParamindex(Integer fileId) throws Exception {
Optional optional = fileRepository.findById(fileId);
if (!optional.isPresent()) {
- throw new BusinessException("未找到该文件");
+ throw new BusinessException("未找到该文件fileId=" + fileId);
}
IcdFile icdFile = optional.get();
if (icdFile.getSrv() != Constants.Server) {
diff --git a/src/main/java/com/xydl/cac/iec/RealTimeDataService.java b/src/main/java/com/xydl/cac/iec/RealTimeDataService.java
index b34eb52..6b1436d 100644
--- a/src/main/java/com/xydl/cac/iec/RealTimeDataService.java
+++ b/src/main/java/com/xydl/cac/iec/RealTimeDataService.java
@@ -10,6 +10,7 @@ import com.xydl.cac.repository.IcdFileRepository;
import com.xydl.cac.repository.IcdIedRepository;
import com.xydl.cac.socket.WebSocketServer;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -21,6 +22,8 @@ import java.util.*;
@Service
@Slf4j
public class RealTimeDataService {
+ @Value("${cac.61850.warning:true}")
+ public boolean warning;
@Resource
IcdFileRepository fileRepository;
@Resource
@@ -52,7 +55,7 @@ public class RealTimeDataService {
}
inDoing = true;
IcdFile icdFile = optionalFile.get();
- IecClient iecClient = new IecClient(this, webSocketServer);
+ IecClient iecClient = new IecClient(webSocketServer, warning);
try {
iecClient.init(ied, icdFile.getXml());
iecClient.keep = true;
diff --git a/src/main/java/com/xydl/cac/model/SanbizhiModel.java b/src/main/java/com/xydl/cac/model/SanbizhiModel.java
new file mode 100644
index 0000000..da6c908
--- /dev/null
+++ b/src/main/java/com/xydl/cac/model/SanbizhiModel.java
@@ -0,0 +1,125 @@
+package com.xydl.cac.model;
+
+import lombok.Data;
+
+import java.util.Iterator;
+import java.util.Map;
+
+@Data
+public class SanbizhiModel {
+ Float c2h2;
+ Float c2h4;
+ Float ch4;
+ Float h2;
+ Float c2h6;
+ Float c2h2_c2h4_value;
+ String c2h2_c2h4_code;
+ Float ch4_h2_value;
+ String ch4_h2_code;
+ Float c2h4_c2h6_value;
+ String c2h4_c2h6_code;
+ String status;
+ String desc;
+
+ public boolean build(Map map) {
+ Iterator it = map.keySet().iterator();
+ while (it.hasNext()) {
+ String key = it.next();
+ Object value = map.get(key);
+ String name = key.toLowerCase().replace("ppm", "");
+ if (value != null) {
+ if (name.equals("c2h2")) {
+ c2h2 = Float.parseFloat(value.toString());
+ } else if (name.equals("c2h4")) {
+ c2h4 = Float.parseFloat(value.toString());
+ } else if (name.equals("ch4")) {
+ ch4 = Float.parseFloat(value.toString());
+ } else if (name.equals("h2")) {
+ h2 = Float.parseFloat(value.toString());
+ } else if (name.equals("c2h6")) {
+ c2h6 = Float.parseFloat(value.toString());
+ }
+ }
+ }
+ if (c2h2 == null || c2h4 == null || ch4 == null || h2 == null || c2h6 == null) {
+ status = "必要数据缺失";
+ return false;
+ }
+ c2h2_c2h4_value = c2h2 / c2h4;
+ ch4_h2_value = ch4 / h2;
+ c2h4_c2h6_value = c2h4 / c2h6;
+ if (c2h2_c2h4_value < 0.1) {
+ c2h2_c2h4_code = "0";
+ } else if (c2h2_c2h4_value < 1) {
+ c2h2_c2h4_code = "1";
+ } else if (c2h2_c2h4_value < 3) {
+ c2h2_c2h4_code = "1";
+ } else {
+ c2h2_c2h4_code = "2";
+ }
+ if (ch4_h2_value < 0.1) {
+ ch4_h2_code = "1";
+ } else if (ch4_h2_value < 1) {
+ ch4_h2_code = "0";
+ } else if (ch4_h2_value < 3) {
+ ch4_h2_code = "2";
+ } else {
+ ch4_h2_code = "2";
+ }
+ if (c2h4_c2h6_value < 0.1) {
+ c2h4_c2h6_code = "0";
+ } else if (c2h4_c2h6_value < 1) {
+ c2h4_c2h6_code = "0";
+ } else if (c2h4_c2h6_value < 3) {
+ c2h4_c2h6_code = "1";
+ } else {
+ c2h4_c2h6_code = "2";
+ }
+ status = "正常";
+ if (c2h2_c2h4_code.equals("0")) {
+ if (c2h4_c2h6_code.equals("0")) {
+ if (ch4_h2_code.equals("0")) {
+
+ } else if (ch4_h2_code.equals("1")) {
+ status = "局部放电";
+ desc = "高湿度,高含气量引起油中低能量密度的局部放电";
+ } else if (ch4_h2_code.equals("2")) {
+ status = "低温过热(150-300)C";
+ desc = "分接开关接触不良,引线夹件螺丝松动或接头焊接不良,涡流引起铜过热,铁心漏磁,局部短路,层间绝缘不良,铁心多点接等";
+ }
+ } else if (c2h4_c2h6_code.equals("1")) {
+ if (ch4_h2_code.equals("0")) {
+ status = "低温过热(低于150C)";
+ desc = "绝缘导线过热,注意CO和CO₂含量和CO₂/CO值";
+ } else if (ch4_h2_code.equals("1")) {
+
+ } else if (ch4_h2_code.equals("2")) {
+ status = "中温过热(300-700)C";
+ desc = "分接开关接触不良,引线夹件螺丝松动或接头焊接不良,涡流引起铜过热,铁心漏磁,局部短路,层间绝缘不良,铁心多点接等";
+ }
+ } else if (c2h4_c2h6_code.equals("2")) {
+ status = "高温过热(高于700C)";
+ desc = "分接开关接触不良,引线夹件螺丝松动或接头焊接不良,涡流引起铜过热,铁心漏磁,局部短路,层间绝缘不良,铁心多点接等";
+ }
+ } else if (c2h2_c2h4_code.equals("1")) {
+ if (ch4_h2_code.equals("0")) {
+ status = "低能放电";
+ } else if (ch4_h2_code.equals("1")) {
+ status = "低能放电";
+ } else if (ch4_h2_code.equals("2")) {
+ status = "低能放电兼过热";
+ }
+ desc = "引线对电位未固定的部件之间连续火花放电,分接抽头引线和油膜闪络,不同电位之间的油中火花放电或悬浮电位之间的火花放电";
+ } else if (c2h2_c2h4_code.equals("2")) {
+ if (ch4_h2_code.equals("0")) {
+ status = "电弧放电";
+ } else if (ch4_h2_code.equals("1")) {
+ status = "电弧放电";
+ } else if (ch4_h2_code.equals("2")) {
+ status = "电弧放电兼过热";
+ }
+ desc = "线圈匝间、层间短路,相间闪络,分接头引线间油膜闪络,引线对箱壳放电,线圈熔断,分接开关飞弧,因环路电流引起电弧,引线对其他接地体放电等";
+ }
+ return true;
+ }
+}
diff --git a/src/main/java/com/xydl/cac/model/StaticVariable.java b/src/main/java/com/xydl/cac/model/StaticVariable.java
index dcbdbb3..e0dd7ca 100644
--- a/src/main/java/com/xydl/cac/model/StaticVariable.java
+++ b/src/main/java/com/xydl/cac/model/StaticVariable.java
@@ -31,6 +31,7 @@ public class StaticVariable {
public static List jg_Cache = null;
public static List zsb_Cache = null;
public static ConcurrentHashMap rule_Cache = new ConcurrentHashMap<>();
+ public static HashMap ruleRelationMap = new HashMap<>();
// 更新服务端
@@ -54,6 +55,19 @@ public class StaticVariable {
if (time != null) {
map.put("acquisitionTime", time);
}
+
+ // 规则触发
+ String key = eqmid + "_" + colname;
+ if (StaticVariable.ruleRelationMap.containsKey(key)) {
+ Integer ruleId = StaticVariable.ruleRelationMap.get(key);
+ WarnRule rule = StaticVariable.rule_Cache.get(ruleId);
+ if (rule != null) {
+ boolean r = rule.triggerRule(value);
+ if (r) {
+ map.put(colname, value + ",1");
+ }
+ }
+ }
}
// 更新最新数据缓存
diff --git a/src/main/java/com/xydl/cac/model/spectrogram/SouthPd.java b/src/main/java/com/xydl/cac/model/spectrogram/SouthPd.java
new file mode 100644
index 0000000..de41cfc
--- /dev/null
+++ b/src/main/java/com/xydl/cac/model/spectrogram/SouthPd.java
@@ -0,0 +1,89 @@
+package com.xydl.cac.model.spectrogram;
+
+import lombok.Data;
+
+import java.io.DataInputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+public class SouthPd extends SpectrogramModel {
+ Float version;
+ Float fileVersion;
+ Short code;
+ String flag;
+ String name;
+ String pdType;
+ String warnLevel;
+ String probabilityFlag;
+ Float probability1;
+ Float probability2;
+ Float probability3;
+ Float probability4;
+ Float probability5;
+ Float probability6;
+ Float probability7;
+ Integer m;
+ Integer n;
+ Integer p;
+ Float hz50;
+ Float hz100;
+ String picType;
+ String unit;
+ Float minLimit;
+ Float maxLimit;
+
+ List> dataPD;
+ List> dataPS;
+
+ public void readFrom(DataInputStream dis) throws Exception {
+ version = readLittleEndianFloat(dis);
+ fileVersion = readLittleEndianFloat(dis);
+ code = readLittleEndianShort(dis);
+ createTime = readLittleEndianLong(dis);
+ flag = readString(dis, 1);
+ name = readString(dis, 32);
+ pdType = readString(dis, 1);
+ warnLevel = readString(dis, 1);
+ probabilityFlag = readString(dis, 1);
+ probability1 = readLittleEndianFloat(dis);
+ probability2 = readLittleEndianFloat(dis);
+ probability3 = readLittleEndianFloat(dis);
+ probability4 = readLittleEndianFloat(dis);
+ probability5 = readLittleEndianFloat(dis);
+ probability6 = readLittleEndianFloat(dis);
+ probability7 = readLittleEndianFloat(dis);
+ m = readLittleEndianInt(dis);
+ n = readLittleEndianInt(dis);
+ p = readLittleEndianInt(dis);
+ hz50 = readLittleEndianFloat(dis);
+ hz100 = readLittleEndianFloat(dis);
+ picType = readString(dis, 1);
+ unit = readString(dis, 1);
+ minLimit = readLittleEndianFloat(dis);
+ maxLimit = readLittleEndianFloat(dis);
+ dis.readInt();
+
+ if ("0".equalsIgnoreCase(picType)) {
+ dataPD = new ArrayList<>();
+ for (int i = 0; i < m; i++) {
+ List list = new ArrayList<>();
+ for (int j = 0; j < n; j++) {
+ Integer v = readLittleEndianInt(dis);
+ list.add(v);
+ }
+ dataPD.add(list);
+ }
+ } else if ("1".equalsIgnoreCase(picType)) {
+ dataPS = new ArrayList<>();
+ for (int i = 0; i < p; i++) {
+ List list = new ArrayList<>();
+ for (int j = 0; j < m; j++) {
+ Float v = readLittleEndianFloat(dis);
+ list.add(v);
+ }
+ dataPS.add(list);
+ }
+ }
+ }
+}
diff --git a/src/main/java/com/xydl/cac/model/spectrogram/SouthYsp.java b/src/main/java/com/xydl/cac/model/spectrogram/SouthYsp.java
new file mode 100644
index 0000000..bfa22d8
--- /dev/null
+++ b/src/main/java/com/xydl/cac/model/spectrogram/SouthYsp.java
@@ -0,0 +1,47 @@
+package com.xydl.cac.model.spectrogram;
+
+import lombok.Data;
+
+import java.io.DataInputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+public class SouthYsp extends SpectrogramModel {
+ Float version;
+ Float fileVersion;
+ Short type;
+ String flag;
+ String name;
+ Float xInterval;
+ Float yMax;
+ String xUnit;
+ String yUnit;
+ Integer k;
+ Integer m;
+ List channels = new ArrayList<>();
+
+ public void readFrom(DataInputStream dis) throws Exception {
+ version = readLittleEndianFloat(dis);
+ fileVersion = readLittleEndianFloat(dis);
+ type = readLittleEndianShort(dis);
+ createTime = readLittleEndianLong(dis);
+ flag = readString(dis, 1);
+ name = readString(dis, 32);
+ xInterval = readLittleEndianFloat(dis);
+ yMax = readLittleEndianFloat(dis);
+ xUnit = readString(dis, 1);
+ yUnit = readString(dis, 1);
+ k = readLittleEndianInt(dis);
+ m = dis.read();
+ for (int i = 0; i < m; i++) {
+ SouthYspChannel channel = new SouthYspChannel();
+ channel.readFrom(dis);
+ channels.add(channel);
+ }
+ dis.readInt();
+ for (SouthYspChannel channel : channels) {
+ channel.readDataFrom(dis, k);
+ }
+ }
+}
diff --git a/src/main/java/com/xydl/cac/model/spectrogram/SouthYspChannel.java b/src/main/java/com/xydl/cac/model/spectrogram/SouthYspChannel.java
new file mode 100644
index 0000000..f2a5174
--- /dev/null
+++ b/src/main/java/com/xydl/cac/model/spectrogram/SouthYspChannel.java
@@ -0,0 +1,32 @@
+package com.xydl.cac.model.spectrogram;
+
+import lombok.Data;
+
+import java.io.DataInputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import static com.xydl.cac.model.spectrogram.SpectrogramModel.readLittleEndianFloat;
+
+@Data
+public class SouthYspChannel {
+ Integer n;
+ List crests = new ArrayList<>();
+ List data = new ArrayList<>();
+
+ public void readFrom(DataInputStream dis) throws Exception {
+ n = dis.read();
+ for (int i = 0; i < n; i++) {
+ YspChannelCrest crest = new YspChannelCrest();
+ crest.readFrom(dis);
+ crests.add(crest);
+ }
+ }
+
+ public void readDataFrom(DataInputStream dis, Integer k) throws Exception {
+ for (int i = 0; i < k; i++) {
+ Float v = readLittleEndianFloat(dis);
+ data.add(v);
+ }
+ }
+}
diff --git a/src/main/java/com/xydl/cac/model/spectrogram/SpectrogramModel.java b/src/main/java/com/xydl/cac/model/spectrogram/SpectrogramModel.java
new file mode 100644
index 0000000..b926f0c
--- /dev/null
+++ b/src/main/java/com/xydl/cac/model/spectrogram/SpectrogramModel.java
@@ -0,0 +1,59 @@
+package com.xydl.cac.model.spectrogram;
+
+import lombok.Data;
+
+import java.io.DataInputStream;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.charset.StandardCharsets;
+
+@Data
+public class SpectrogramModel {
+
+ Long createTime;
+
+ // 读取小端序的int(4字节)
+ public static int readLittleEndianInt(DataInputStream dis) throws IOException {
+ byte[] bytes = new byte[4];
+ dis.readFully(bytes);
+ return ByteBuffer.wrap(bytes)
+ .order(ByteOrder.LITTLE_ENDIAN)
+ .getInt();
+ }
+
+ // 读取小端序的short(2字节)
+ public static short readLittleEndianShort(DataInputStream dis) throws IOException {
+ byte[] bytes = new byte[2];
+ dis.readFully(bytes);
+ return ByteBuffer.wrap(bytes)
+ .order(ByteOrder.LITTLE_ENDIAN)
+ .getShort();
+ }
+
+ // 读取小端序的long(8字节)
+ public static long readLittleEndianLong(DataInputStream dis) throws IOException {
+ byte[] bytes = new byte[8];
+ dis.readFully(bytes);
+ return ByteBuffer.wrap(bytes)
+ .order(ByteOrder.LITTLE_ENDIAN)
+ .getLong();
+ }
+
+ // 读取小端序的float(4字节)
+ public static float readLittleEndianFloat(DataInputStream dis) throws IOException {
+ byte[] bytes = new byte[4];
+ dis.readFully(bytes);
+ return ByteBuffer.wrap(bytes)
+ .order(ByteOrder.LITTLE_ENDIAN)
+ .getFloat();
+ }
+
+ // 读取String
+ public static String readString(DataInputStream dis, int length) throws IOException {
+ byte[] bytes = new byte[length];
+ dis.readFully(bytes);
+ String str = new String(bytes, StandardCharsets.UTF_8);
+ return str.replaceAll("\u0000", "");
+ }
+}
diff --git a/src/main/java/com/xydl/cac/model/spectrogram/Ysp.java b/src/main/java/com/xydl/cac/model/spectrogram/Ysp.java
new file mode 100644
index 0000000..2d168ab
--- /dev/null
+++ b/src/main/java/com/xydl/cac/model/spectrogram/Ysp.java
@@ -0,0 +1,40 @@
+package com.xydl.cac.model.spectrogram;
+
+import lombok.Data;
+
+import java.io.DataInputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+public class Ysp extends SpectrogramModel {
+ Integer code;
+ Integer length;
+ Long createTime;
+ Integer flag;
+ Float xInterval;
+ Float yMax;
+ Integer xUnit;
+ Integer yUnit;
+ Integer k;
+ Integer m;
+ List channels = new ArrayList<>();
+
+ public void readFrom(DataInputStream dis) throws Exception {
+ code = dis.read();
+ length = readLittleEndianInt(dis);
+ createTime = readLittleEndianLong(dis);
+ flag = dis.read();
+ xInterval = readLittleEndianFloat(dis);
+ yMax = readLittleEndianFloat(dis);
+ xUnit = dis.read();
+ yUnit = dis.read();
+ k = readLittleEndianInt(dis);
+ m = dis.read();
+ for (int i = 0; i < m; i++) {
+ YspChannel channel = new YspChannel();
+ channel.readFrom(dis, k);
+ channels.add(channel);
+ }
+ }
+}
diff --git a/src/main/java/com/xydl/cac/model/spectrogram/YspChannel.java b/src/main/java/com/xydl/cac/model/spectrogram/YspChannel.java
new file mode 100644
index 0000000..c73a52e
--- /dev/null
+++ b/src/main/java/com/xydl/cac/model/spectrogram/YspChannel.java
@@ -0,0 +1,29 @@
+package com.xydl.cac.model.spectrogram;
+
+import lombok.Data;
+
+import java.io.DataInputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import static com.xydl.cac.model.spectrogram.SpectrogramModel.readLittleEndianFloat;
+
+@Data
+public class YspChannel {
+ Integer n;
+ List crests = new ArrayList<>();
+ List data = new ArrayList<>();
+
+ public void readFrom(DataInputStream dis, Integer k) throws Exception {
+ n = dis.read();
+ for (int i = 0; i < n; i++) {
+ YspChannelCrest crest = new YspChannelCrest();
+ crest.readFrom(dis);
+ crests.add(crest);
+ }
+ for (int i = 0; i < k; i++) {
+ Float v = readLittleEndianFloat(dis);
+ data.add(v);
+ }
+ }
+}
diff --git a/src/main/java/com/xydl/cac/model/spectrogram/YspChannelCrest.java b/src/main/java/com/xydl/cac/model/spectrogram/YspChannelCrest.java
new file mode 100644
index 0000000..d167bbc
--- /dev/null
+++ b/src/main/java/com/xydl/cac/model/spectrogram/YspChannelCrest.java
@@ -0,0 +1,28 @@
+package com.xydl.cac.model.spectrogram;
+
+import lombok.Data;
+
+import java.io.DataInputStream;
+
+import static com.xydl.cac.model.spectrogram.SpectrogramModel.*;
+
+@Data
+public class YspChannelCrest {
+ String name;
+ Integer j;
+ Float time;
+ Float startTime;
+ Float endTime;
+ Float height;
+ Float area;
+
+ public void readFrom(DataInputStream dis) throws Exception {
+ name = readString(dis, 10);
+ j = dis.read();
+ time = readLittleEndianFloat(dis);
+ startTime = readLittleEndianFloat(dis);
+ endTime = readLittleEndianFloat(dis);
+ height = readLittleEndianFloat(dis);
+ area = readLittleEndianFloat(dis);
+ }
+}
diff --git a/src/main/java/com/xydl/cac/repository/RptparamindexRepository.java b/src/main/java/com/xydl/cac/repository/RptparamindexRepository.java
index 0a4fa6a..ef85c51 100644
--- a/src/main/java/com/xydl/cac/repository/RptparamindexRepository.java
+++ b/src/main/java/com/xydl/cac/repository/RptparamindexRepository.java
@@ -13,7 +13,7 @@ public interface RptparamindexRepository extends JpaRepository findAllByEqmid(Integer eqmid);
- List findAllByEqmidInAndColnameIsNotNull(List eqmidList);
+ List findAllByEqmidInAndColnameIsNotNullAndTablenameIsNotNull(List eqmidList);
List findAllByParamindexStartingWith(String param);
diff --git a/src/main/java/com/xydl/cac/repository/ThermalConfigRepository.java b/src/main/java/com/xydl/cac/repository/ThermalConfigRepository.java
new file mode 100644
index 0000000..f6c3bed
--- /dev/null
+++ b/src/main/java/com/xydl/cac/repository/ThermalConfigRepository.java
@@ -0,0 +1,12 @@
+package com.xydl.cac.repository;
+
+import com.xydl.cac.entity.ThermalConfig;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.stereotype.Repository;
+
+
+@Repository
+public interface ThermalConfigRepository extends JpaRepository, JpaSpecificationExecutor {
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/xydl/cac/repository/WarningRepository.java b/src/main/java/com/xydl/cac/repository/WarningRepository.java
index 22aa099..933c844 100644
--- a/src/main/java/com/xydl/cac/repository/WarningRepository.java
+++ b/src/main/java/com/xydl/cac/repository/WarningRepository.java
@@ -3,10 +3,17 @@ package com.xydl.cac.repository;
import com.xydl.cac.entity.Warning;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
@Repository
public interface WarningRepository extends JpaRepository, JpaSpecificationExecutor {
+ @Modifying
+ @Query("update Warning set state = :frontState where state = :afterState")
+ int updateWarningState(@Param("frontState") String frontState , @Param("afterState") String afterState);
+
}
\ No newline at end of file
diff --git a/src/main/java/com/xydl/cac/service/DataService.java b/src/main/java/com/xydl/cac/service/DataService.java
index 8f981d5..51d8fba 100644
--- a/src/main/java/com/xydl/cac/service/DataService.java
+++ b/src/main/java/com/xydl/cac/service/DataService.java
@@ -12,7 +12,9 @@ public interface DataService {
List getDataTables() throws Exception;
- List getDataTableColumns(String tableName) throws Exception;
+ List getDataTableColumns(String tableName);
+
+ String getFieldType(String tableName, String field);
OnePage> getData(String tableName, Integer devId, List points, ConditionModel model) throws Exception;
@@ -23,4 +25,5 @@ public interface DataService {
Map getLastOneData(String tableName, Integer devId, ModevTypePoint point) throws Exception;
void insertData(String tableName, Integer devId, String time, String colname, String value);
+
}
diff --git a/src/main/java/com/xydl/cac/service/IedDlRecordService.java b/src/main/java/com/xydl/cac/service/IedDlRecordService.java
index 0615d99..95c754d 100644
--- a/src/main/java/com/xydl/cac/service/IedDlRecordService.java
+++ b/src/main/java/com/xydl/cac/service/IedDlRecordService.java
@@ -1,13 +1,20 @@
package com.xydl.cac.service;
import com.xydl.cac.entity.IedDlRecord;
+import com.xydl.cac.exception.BusinessException;
import org.springframework.data.domain.Page;
+import java.util.Date;
+
public interface IedDlRecordService {
- Page list(Integer configId, int pageNum, int pageSize) throws Exception;
+ Page list(Integer configId, Integer devId, Date startTime, Date endTime, int pageNum, int pageSize) throws Exception;
void add(IedDlRecord item);
boolean exist(IedDlRecord item);
+
+ void update(IedDlRecord item);
+
+ void rebuildData(Integer id) throws BusinessException;
}
diff --git a/src/main/java/com/xydl/cac/service/ThermalConfigService.java b/src/main/java/com/xydl/cac/service/ThermalConfigService.java
new file mode 100644
index 0000000..b2f6a08
--- /dev/null
+++ b/src/main/java/com/xydl/cac/service/ThermalConfigService.java
@@ -0,0 +1,11 @@
+package com.xydl.cac.service;
+
+import com.xydl.cac.entity.ThermalConfig;
+
+
+public interface ThermalConfigService {
+
+ ThermalConfig getConfig();
+
+ void saveConfig(ThermalConfig model);
+}
diff --git a/src/main/java/com/xydl/cac/service/WarningService.java b/src/main/java/com/xydl/cac/service/WarningService.java
index c643197..c754f80 100644
--- a/src/main/java/com/xydl/cac/service/WarningService.java
+++ b/src/main/java/com/xydl/cac/service/WarningService.java
@@ -15,5 +15,5 @@ public interface WarningService {
void updateState(Warning warning) throws Exception;
- void oneKeyUpdateState(List warnings);
+ void oneKeyUpdateState();
}
diff --git a/src/main/java/com/xydl/cac/service/impl/DataServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/DataServiceImpl.java
index 29fa793..c883298 100644
--- a/src/main/java/com/xydl/cac/service/impl/DataServiceImpl.java
+++ b/src/main/java/com/xydl/cac/service/impl/DataServiceImpl.java
@@ -1,6 +1,7 @@
package com.xydl.cac.service.impl;
import com.xydl.cac.entity.*;
+import com.xydl.cac.entity.constants.Constants;
import com.xydl.cac.model.ColumnModel;
import com.xydl.cac.model.ConditionModel;
import com.xydl.cac.model.OnePage;
@@ -19,11 +20,14 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
+import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
+import static com.xydl.cac.entity.constants.Constants.I2BatchSize;
+
@Service
@Slf4j
@Transactional(rollbackFor = Exception.class)
@@ -59,7 +63,7 @@ public class DataServiceImpl implements DataService {
}
@Override
- public List getDataTableColumns(String tableName) throws Exception {
+ public List getDataTableColumns(String tableName) {
if (StringUtils.isBlank(schema)) {
this.getDatabase();
}
@@ -100,6 +104,19 @@ public class DataServiceImpl implements DataService {
return field;
}
+ @Cacheable(value = "fieldType", key = "#tableName + '-' + #field")
+ public String getFieldType(String tableName, String field) {
+ String type = "";
+ List columnList = this.getDataTableColumns(tableName);
+ for (ColumnModel col : columnList) {
+ if (col.getName().equals(field)) {
+ type = col.getType();
+ break;
+ }
+ }
+ return type;
+ }
+
private void getDatabase() {
String sql = "select database()";
List list = jdbcTemplate.queryForList(sql, String.class);
@@ -220,7 +237,11 @@ public class DataServiceImpl implements DataService {
String sqlSelect = "SELECT DATE_FORMAT(" + timeField + ", '%Y-%m-%d %H:%i:%s') as acquisitionTime";
for (ModevTypePoint point : points) {
if (StringUtils.isNotBlank(point.getField())) {
- sqlSelect = sqlSelect + ", " + point.getField();
+ if (Constants.DateTime.equalsIgnoreCase(point.getType())) {
+ sqlSelect = sqlSelect + ", " + "DATE_FORMAT(" + point.getField() + ", '%Y-%m-%d %H:%i:%s') as " + point.getField();
+ } else {
+ sqlSelect = sqlSelect + ", " + point.getField();
+ }
}
}
@@ -244,7 +265,7 @@ public class DataServiceImpl implements DataService {
@Override
public List> getLatestData(String tableName, Integer devId, List points, Date start) throws Exception {
ConditionModel model = new ConditionModel();
- model.setPageSize(500);
+ model.setPageSize(I2BatchSize);
model.setPageNum(1);
model.setStartTime(start);
model.setExcludeStartTime(true);
@@ -274,6 +295,12 @@ public class DataServiceImpl implements DataService {
@Override
public void insertData(String tableName, Integer devId, String time, String colname, String value) {
+ if (StringUtils.isBlank(tableName)) {
+ return;
+ }
+ if (StringUtils.isBlank(colname)) {
+ return;
+ }
String devField = DataTable.getDevidField(tableName);
String timeField = this.getTimeField(tableName);
String sqlFrom = " FROM " + tableName;
@@ -281,6 +308,21 @@ public class DataServiceImpl implements DataService {
String sqlCount = "SELECT count(*)" + sqlFrom + sqlWhere;
Long count = jdbcTemplate.queryForObject(sqlCount, Long.class);
+ String type = this.getFieldType(tableName, colname);
+ if (Constants.Varchar.equalsIgnoreCase(type)) {
+ value = "'" + value + "'";
+ } else if (Constants.Text.equalsIgnoreCase(type)) {
+ value = "'" + value + "'";
+ } else if (Constants.DateTime.equalsIgnoreCase(type)) {
+ BigDecimal bigval = new BigDecimal(value);
+ Long ts = bigval.longValue();
+ if (ts.toString().length() < 11) {
+ ts = ts * 1000;
+ }
+ Date date = new Date(ts);
+ value = DateUtil.format(date);
+ value = "'" + value + "'";
+ }
if (count > 0) {
String sql = "UPDATE " + tableName + " set " + colname + "=" + value
+ sqlWhere;
diff --git a/src/main/java/com/xydl/cac/service/impl/IedDlRecordServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/IedDlRecordServiceImpl.java
index c214d04..a144c92 100644
--- a/src/main/java/com/xydl/cac/service/impl/IedDlRecordServiceImpl.java
+++ b/src/main/java/com/xydl/cac/service/impl/IedDlRecordServiceImpl.java
@@ -2,40 +2,55 @@ package com.xydl.cac.service.impl;
import com.xydl.cac.entity.IedDlConfig;
import com.xydl.cac.entity.IedDlRecord;
+import com.xydl.cac.exception.BusinessException;
import com.xydl.cac.repository.IedDlRecordRepository;
import com.xydl.cac.service.IedDlConfigService;
import com.xydl.cac.service.IedDlRecordService;
+import com.xydl.cac.spectrogram.SpectrogramHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import javax.persistence.criteria.Predicate;
+import java.util.Date;
import java.util.List;
+import java.util.Optional;
@Service
@Slf4j
-@Transactional(rollbackFor = Exception.class)
public class IedDlRecordServiceImpl implements IedDlRecordService {
@Resource
IedDlRecordRepository repository;
@Resource
IedDlConfigService configService;
+ @Resource
+ SpectrogramHandler spectrogramHandler;
@Override
- public Page list(Integer configId, int pageNum, int pageSize) throws Exception {
+ public Page list(Integer configId, Integer devId, Date startTime, Date endTime, int pageNum, int pageSize) throws Exception {
PageRequest request = PageRequest.of(pageNum - 1, pageSize);
Specification specification = (root, query, builder) -> {
Predicate predicate = builder.conjunction();
if (configId != null) {
predicate.getExpressions().add(builder.equal(root.get("configId"), configId));
+ query.orderBy(builder.desc(root.get("dTime")));
+ } else if (devId != null) {
+ predicate.getExpressions().add(builder.equal(root.get("devId"), devId));
+ query.orderBy(builder.desc(root.get("dTime")));
+ } else {
+ query.orderBy(builder.desc(root.get("id")));
+ }
+ if (startTime != null) {
+ predicate.getExpressions().add(builder.greaterThan(root.get("dTime"), startTime));
+ }
+ if (endTime != null) {
+ predicate.getExpressions().add(builder.lessThanOrEqualTo(root.get("dTime"), endTime));
}
- query.orderBy(builder.desc(root.get("id")));
return predicate;
};
Page result = repository.findAll(specification, request);
@@ -48,6 +63,7 @@ public class IedDlRecordServiceImpl implements IedDlRecordService {
break;
}
}
+ spectrogramHandler.jsonToModel(item);
}
}
return result;
@@ -69,4 +85,20 @@ public class IedDlRecordServiceImpl implements IedDlRecordService {
}
}
+ @Override
+ public void update(IedDlRecord item) {
+ repository.save(item);
+ }
+
+ @Override
+ public void rebuildData(Integer id) throws BusinessException {
+ Optional optional = repository.findById(id);
+ if (!optional.isPresent()) {
+ throw new BusinessException("未找到该记录");
+ }
+ IedDlRecord record = optional.get();
+ spectrogramHandler.processFile(record);
+ repository.save(record);
+ }
+
}
diff --git a/src/main/java/com/xydl/cac/service/impl/JgServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/JgServiceImpl.java
index c435b7b..3f2d0e4 100644
--- a/src/main/java/com/xydl/cac/service/impl/JgServiceImpl.java
+++ b/src/main/java/com/xydl/cac/service/impl/JgServiceImpl.java
@@ -105,7 +105,7 @@ public class JgServiceImpl implements JgService {
item.setId(null);
Optional optionalBdz = bdzRepository.findById(item.getBdzid());
if (!optionalBdz.isPresent()) {
- throw new BusinessException("未找到该变电站");
+ throw new BusinessException("未找到该变电站id=" + item.getBdzid());
}
List list = repository.findByBdzidAndMc(item.getBdzid(), item.getMc());
if (!CollectionUtils.isEmpty(list)) {
@@ -119,7 +119,7 @@ public class JgServiceImpl implements JgService {
public void update(Jg item) throws Exception {
Optional optionalBdz = bdzRepository.findById(item.getBdzid());
if (!optionalBdz.isPresent()) {
- throw new BusinessException("未找到该变电站");
+ throw new BusinessException("未找到该变电站id=" + item.getBdzid());
}
List list = repository.findByBdzidAndMcAndIdIsNot(item.getBdzid(), item.getMc(), item.getId());
if (!CollectionUtils.isEmpty(list)) {
@@ -144,7 +144,7 @@ public class JgServiceImpl implements JgService {
public Jg detail(Integer id) throws Exception {
Optional optional = repository.findById(id);
if (!optional.isPresent()) {
- throw new BusinessException("未找到该区域");
+ throw new BusinessException("未找到该区域id=" + id);
}
Jg jg = optional.get();
Optional optionalBdz = bdzRepository.findById(jg.getBdzid());
diff --git a/src/main/java/com/xydl/cac/service/impl/NSensorServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/NSensorServiceImpl.java
index bdb38ee..8526cb5 100644
--- a/src/main/java/com/xydl/cac/service/impl/NSensorServiceImpl.java
+++ b/src/main/java/com/xydl/cac/service/impl/NSensorServiceImpl.java
@@ -60,6 +60,7 @@ public class NSensorServiceImpl implements NSensorService {
if (typeId != null) {
predicate.getExpressions().add(builder.equal(root.get("typeId"), typeId));
}
+ query.orderBy(builder.asc(root.get("orderNum")));
return predicate;
};
List list = repository.findAll(specification);
@@ -210,6 +211,19 @@ public class NSensorServiceImpl implements NSensorService {
// 获取数据
SensorDetail> result = this.getData(sensor, points, model);
+ if (sensor.getTypeName().contains("油色谱")) {
+ if (result.getContent() != null) {
+ for (Map map : result.getContent()) {
+ SanbizhiModel sanbizhi = new SanbizhiModel();
+ try {
+ sanbizhi.build(map);
+ } catch (Exception ignore) {
+ sanbizhi.setStatus("有异常数据");
+ }
+ map.put("sanbizhi", sanbizhi);
+ }
+ }
+ }
return result;
}
diff --git a/src/main/java/com/xydl/cac/service/impl/ParamBindServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/ParamBindServiceImpl.java
index a68673d..aae0bee 100644
--- a/src/main/java/com/xydl/cac/service/impl/ParamBindServiceImpl.java
+++ b/src/main/java/com/xydl/cac/service/impl/ParamBindServiceImpl.java
@@ -12,11 +12,13 @@ import com.xydl.cac.service.ModevTypeService;
import com.xydl.cac.service.ParamBindService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
+import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
+import javax.persistence.criteria.Predicate;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -82,7 +84,12 @@ public class ParamBindServiceImpl implements ParamBindService {
for (Zsb zsb : zsbList) {
zsbMap.put(zsb.getId(), zsb);
}
- List sensorList = sensorRepository.findAll();
+ Specification specification = (root, query, builder) -> {
+ Predicate predicate = builder.conjunction();
+ query.orderBy(builder.asc(root.get("orderNum")));
+ return predicate;
+ };
+ List sensorList = sensorRepository.findAll(specification);
// 每一个放入上一层
for (NSensor sensor : sensorList) {
diff --git a/src/main/java/com/xydl/cac/service/impl/ThermalConfigServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/ThermalConfigServiceImpl.java
new file mode 100644
index 0000000..63678b4
--- /dev/null
+++ b/src/main/java/com/xydl/cac/service/impl/ThermalConfigServiceImpl.java
@@ -0,0 +1,38 @@
+package com.xydl.cac.service.impl;
+
+import com.xydl.cac.entity.ThermalConfig;
+import com.xydl.cac.repository.ThermalConfigRepository;
+import com.xydl.cac.service.ThermalConfigService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+@Slf4j
+@Transactional(rollbackFor = Exception.class)
+public class ThermalConfigServiceImpl implements ThermalConfigService {
+
+ @Resource
+ ThermalConfigRepository repository;
+
+ @Override
+ public ThermalConfig getConfig() {
+ ThermalConfig result = null;
+ List list = repository.findAll();
+ if (!CollectionUtils.isEmpty(list)) {
+ result = list.get(0);
+ }
+ return result;
+ }
+
+ @Override
+ public void saveConfig(ThermalConfig model) {
+ repository.deleteAll();
+ model.setId(null);
+ repository.save(model);
+ }
+}
diff --git a/src/main/java/com/xydl/cac/service/impl/WarnRuleServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/WarnRuleServiceImpl.java
index acdeec2..c419725 100644
--- a/src/main/java/com/xydl/cac/service/impl/WarnRuleServiceImpl.java
+++ b/src/main/java/com/xydl/cac/service/impl/WarnRuleServiceImpl.java
@@ -78,7 +78,7 @@ public class WarnRuleServiceImpl implements WarnRuleService {
public void update(WarnRule item) throws Exception {
Optional optional = repository.findById(item.getId());
if (!optional.isPresent()) {
- throw new BusinessException("未找到该告警规则");
+ throw new BusinessException("未找到该告警规则id=" + item.getId());
}
WarnRule rule = optional.get();
rule.setComparator(item.getComparator());
diff --git a/src/main/java/com/xydl/cac/service/impl/WarningServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/WarningServiceImpl.java
index aee38db..429b38d 100644
--- a/src/main/java/com/xydl/cac/service/impl/WarningServiceImpl.java
+++ b/src/main/java/com/xydl/cac/service/impl/WarningServiceImpl.java
@@ -97,7 +97,7 @@ public class WarningServiceImpl implements WarningService {
public void updateState(Warning warning) throws Exception {
Optional byId = repository.findById(warning.getId());
if (!byId.isPresent()) {
- throw new BusinessException("未找到该告警" + warning.getId());
+ throw new BusinessException("未找到该告警id=" + warning.getId());
}
Warning war = byId.get();
war.setState(warning.getState());
@@ -106,15 +106,8 @@ public class WarningServiceImpl implements WarningService {
}
@Override
- public void oneKeyUpdateState(List warnings) {
- Date date = new Date();
- for (Warning warning : warnings) {
- warning.setState("0");
- warning.setProcessTime(date);
- }
- if (null != warnings && warnings.size() > 0) {
- repository.saveAll(warnings);
- }
+ public void oneKeyUpdateState() {
+ repository.updateWarningState("0", "1");
}
diff --git a/src/main/java/com/xydl/cac/service/impl/ZsbServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/ZsbServiceImpl.java
index 229c5af..5cb0fc3 100644
--- a/src/main/java/com/xydl/cac/service/impl/ZsbServiceImpl.java
+++ b/src/main/java/com/xydl/cac/service/impl/ZsbServiceImpl.java
@@ -93,7 +93,7 @@ public class ZsbServiceImpl implements ZsbService {
item.setBdzid(jg.getBdzid());
Optional optionalLx = lxRepository.findById(item.getLxid());
if (!optionalLx.isPresent()) {
- throw new BusinessException("未找到该设备类型");
+ throw new BusinessException("未找到该设备类型id=" + item.getLxid());
}
List list = repository.findByJgidAndMc(item.getJgid(), item.getMc());
if (!CollectionUtils.isEmpty(list)) {
@@ -109,7 +109,7 @@ public class ZsbServiceImpl implements ZsbService {
item.setBdzid(jg.getBdzid());
Optional optionalLx = lxRepository.findById(item.getLxid());
if (!optionalLx.isPresent()) {
- throw new BusinessException("未找到该设备类型");
+ throw new BusinessException("未找到该设备类型id=" + item.getLxid());
}
List list = repository.findByJgidAndMcAndIdIsNot(item.getJgid(), item.getMc(), item.getId());
if (!CollectionUtils.isEmpty(list)) {
@@ -133,7 +133,7 @@ public class ZsbServiceImpl implements ZsbService {
public Zsb detail(Integer id) throws Exception {
Optional optional = repository.findById(id);
if (!optional.isPresent()) {
- throw new BusinessException("未找到该主设备");
+ throw new BusinessException("未找到该主设备id=" + id);
}
Zsb zsb = optional.get();
Jg jg = jgService.detail(zsb.getJgid());
diff --git a/src/main/java/com/xydl/cac/spectrogram/ProcessorPd.java b/src/main/java/com/xydl/cac/spectrogram/ProcessorPd.java
new file mode 100644
index 0000000..7ceb12d
--- /dev/null
+++ b/src/main/java/com/xydl/cac/spectrogram/ProcessorPd.java
@@ -0,0 +1,34 @@
+package com.xydl.cac.spectrogram;
+
+import com.xydl.cac.model.spectrogram.SouthPd;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.io.DataInputStream;
+import java.io.FileInputStream;
+
+@Service
+@Slf4j
+public class ProcessorPd {
+
+ public SouthPd process(String localFilePath) {
+ try (DataInputStream dis = new DataInputStream(new FileInputStream(localFilePath))) {
+ SouthPd model = this.readOneBlock(dis);
+ return model;
+ } catch (Exception e) {
+ log.error("解析文件失败" + localFilePath, e);
+ return null;
+ }
+ }
+
+ private SouthPd readOneBlock(DataInputStream dis) throws Exception {
+ SouthPd model = new SouthPd();
+ model.readFrom(dis);
+ return model;
+ }
+
+ public static void main(String[] args) {
+ ProcessorPd processorYsp = new ProcessorPd();
+ processorYsp.process("C:/Code/cac/局放谱图/50100055_5__001_01_20250409180000.dat");
+ }
+}
diff --git a/src/main/java/com/xydl/cac/spectrogram/ProcessorYsp.java b/src/main/java/com/xydl/cac/spectrogram/ProcessorYsp.java
new file mode 100644
index 0000000..29c5fd0
--- /dev/null
+++ b/src/main/java/com/xydl/cac/spectrogram/ProcessorYsp.java
@@ -0,0 +1,34 @@
+package com.xydl.cac.spectrogram;
+
+import com.xydl.cac.model.spectrogram.*;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.io.DataInputStream;
+import java.io.FileInputStream;
+
+@Service
+@Slf4j
+public class ProcessorYsp {
+
+ public SouthYsp process(String localFilePath) {
+ try (DataInputStream dis = new DataInputStream(new FileInputStream(localFilePath))) {
+ SouthYsp model = this.readOneBlock(dis);
+ return model;
+ } catch (Exception e) {
+ log.error("解析文件失败" + localFilePath, e);
+ return null;
+ }
+ }
+
+ private SouthYsp readOneBlock(DataInputStream dis) throws Exception {
+ SouthYsp model = new SouthYsp();
+ model.readFrom(dis);
+ return model;
+ }
+
+ public static void main(String[] args) {
+ ProcessorYsp processorYsp = new ProcessorYsp();
+ processorYsp.process("C:/Code/cac/谱图文件/0312B12000042A3840001_203_07_20250113163055.dat");
+ }
+}
diff --git a/src/main/java/com/xydl/cac/spectrogram/SpectrogramHandler.java b/src/main/java/com/xydl/cac/spectrogram/SpectrogramHandler.java
new file mode 100644
index 0000000..d52a4e4
--- /dev/null
+++ b/src/main/java/com/xydl/cac/spectrogram/SpectrogramHandler.java
@@ -0,0 +1,93 @@
+package com.xydl.cac.spectrogram;
+
+import com.xydl.cac.config.BizConfig;
+import com.xydl.cac.entity.IedDlRecord;
+import com.xydl.cac.entity.ModevType;
+import com.xydl.cac.model.spectrogram.SouthPd;
+import com.xydl.cac.model.spectrogram.SouthYsp;
+import com.xydl.cac.model.spectrogram.SpectrogramModel;
+import com.xydl.cac.service.ModevTypeService;
+import com.xydl.cac.util.DateUtil;
+import com.xydl.cac.util.JSONUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+@Service
+@Slf4j
+public class SpectrogramHandler {
+
+ @Resource
+ BizConfig bizConfig;
+ @Resource
+ ModevTypeService modevTypeService;
+ @Resource
+ ProcessorYsp processorYsp;
+ @Resource
+ ProcessorPd processorPd;
+
+ public void processFile(IedDlRecord record) {
+ record.setCreateTime(new Date());
+ if (record.getTypeId() == null) {
+ return;
+ }
+ String localFilePath = record.getPath().replaceFirst(bizConfig.getDataNginxPath(), bizConfig.getDatapath());
+ try {
+ ModevType modevType = modevTypeService.detail(record.getTypeId());
+
+ // 谱图解析
+ if (modevType.getMc().contains("油色谱")) {
+ SouthYsp model = processorYsp.process(localFilePath);
+ this.setData(record, model);
+ log.info("解析油色谱谱图文件成功");
+ } else if (modevType.getMc().contains("局部放电")) {
+ SouthPd model = processorPd.process(localFilePath);
+ this.setData(record, model);
+ log.info("解析局部放电谱图文件成功");
+ } else {
+ log.error("缺少该类型" + record.getTypeId() + "的谱图处理模块");
+ }
+ } catch (Exception ex) {
+ log.error("解析谱图文件失败, typeId=" + record.getTypeId() + ", devId=" + record.getDevId()
+ + ", file=" + localFilePath, ex);
+ }
+ }
+
+ private void setData(IedDlRecord record, SpectrogramModel model) {
+ String json = JSONUtil.object2Json(model);
+ record.setData(json);
+ try {
+ String str = String.valueOf(model.getCreateTime());
+ Date dtime = DateUtil.parse(str, "yyyyMMddHHmmss");
+ record.setDTime(dtime);
+ } catch (Exception ignore) {
+ }
+ }
+
+ public void jsonToModel(IedDlRecord record) {
+ if (record.getTypeId() == null) {
+ return;
+ }
+ if (record.getData() == null) {
+ return;
+ }
+ try {
+ ModevType modevType = modevTypeService.detail(record.getTypeId());
+ if (modevType.getMc().contains("油色谱")) {
+ SouthYsp model = JSONUtil.json2Object(record.getData(), SouthYsp.class);
+ record.setModel(model);
+ record.setData(null);
+ } else if (modevType.getMc().contains("局部放电")) {
+ SouthPd model = JSONUtil.json2Object(record.getData(), SouthPd.class);
+ record.setModel(model);
+ record.setData(null);
+ }
+ } catch (Exception ex) {
+ log.error("谱图数据data内容存在异常, typeId=" + record.getTypeId() + ", devId=" + record.getDevId()
+ + ", file=" + record.getPath());
+ }
+ }
+
+}
diff --git a/src/main/java/com/xydl/cac/task/AsyncTask.java b/src/main/java/com/xydl/cac/task/AsyncTask.java
index 454402e..c08f330 100644
--- a/src/main/java/com/xydl/cac/task/AsyncTask.java
+++ b/src/main/java/com/xydl/cac/task/AsyncTask.java
@@ -1,14 +1,15 @@
package com.xydl.cac.task;
import com.xydl.cac.config.BizConfig;
-import com.xydl.cac.entity.IcdIed;
-import com.xydl.cac.entity.IedDlConfig;
-import com.xydl.cac.entity.Rptparamindex;
+import com.xydl.cac.entity.*;
import com.xydl.cac.iec.IEDCollectService;
import com.xydl.cac.repository.*;
import com.xydl.cac.service.DataService;
import com.xydl.cac.service.IedDlRecordService;
import com.xydl.cac.socket.WebSocketServer;
+import com.xydl.cac.spectrogram.SpectrogramHandler;
+import com.xydl.cac.util.JkpgFtp;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
@@ -17,6 +18,8 @@ import java.util.List;
@Service
public class AsyncTask {
+ @Value("${cac.61850.warning:true}")
+ public boolean warning;
@Resource
IcdConfigTypeRepository configRepository;
@Resource
@@ -35,6 +38,10 @@ public class AsyncTask {
BizConfig bizConfig;
@Resource
WarningRepository warningRepository;
+ @Resource
+ SpectrogramHandler spectrogramHandler;
+ @Resource
+ JkpgFtp jkpgFtp;
@Async
public void collectIed(String xml, IcdIed ied, List rptList, List dlList) {
@@ -42,8 +49,9 @@ public class AsyncTask {
instRepository, rptparamindexRepository,
dlRecordService, dataService,
xml, ied,
- webSocketServer, bizConfig,
- warningRepository);
+ webSocketServer, bizConfig, warning,
+ warningRepository, spectrogramHandler,
+ jkpgFtp);
iedService.collectAndSave(rptList, dlList);
}
}
diff --git a/src/main/java/com/xydl/cac/task/CacheTask.java b/src/main/java/com/xydl/cac/task/CacheTask.java
index cbca1ca..d4fc7af 100644
--- a/src/main/java/com/xydl/cac/task/CacheTask.java
+++ b/src/main/java/com/xydl/cac/task/CacheTask.java
@@ -24,6 +24,7 @@ public class CacheTask {
StaticVariable.jg_Cache = null;
StaticVariable.zsb_Cache = null;
StaticVariable.rule_Cache.clear();
+ StaticVariable.ruleRelationMap.clear();
StaticVariable.paramRelationMap.clear();
}
@@ -42,6 +43,10 @@ public class CacheTask {
item.initComparator(item.getComparator(), item.getOperator());
StaticVariable.rule_Cache.put(item.getId(), item);
}
+ if (item.getNSensor() != null && item.getTypePoint() != null) {
+ String key = item.getNSensor().getDevId() + "_" + item.getTypePoint().getField();
+ StaticVariable.ruleRelationMap.put(key, item.getId());
+ }
}
} catch (Exception e) {
log.error("CacheTask.refreshRule error.", e);
diff --git a/src/main/java/com/xydl/cac/task/Client61850Task.java b/src/main/java/com/xydl/cac/task/Client61850Task.java
index d43f726..b4bc83c 100644
--- a/src/main/java/com/xydl/cac/task/Client61850Task.java
+++ b/src/main/java/com/xydl/cac/task/Client61850Task.java
@@ -24,6 +24,8 @@ public class Client61850Task {
@Value("${cac.61850.enable:true}")
public boolean enable;
+ @Value("${cac.61850.check:false}")
+ public boolean check;
@Resource
AsyncTask asyncTask;
@Resource
@@ -83,16 +85,24 @@ public class Client61850Task {
return;
}
- List rptList = rptparamindexRepository.findAllByEqmidInAndColnameIsNotNull(eqmidList);
+ List rptList = rptparamindexRepository.findAllByEqmidInAndColnameIsNotNullAndTablenameIsNotNull(eqmidList);
List dlList = dlConfigRepository.findByDevIdIn(eqmidList);
if (CollectionUtils.isEmpty(rptList) && CollectionUtils.isEmpty(dlList)) {
return;
}
+ List dlNewList = new ArrayList<>();
+ for (IedDlConfig item : dlList) {
+ List senList = sensorRepository.findByDevId(item.getDevId());
+ if (!CollectionUtils.isEmpty(senList)) {
+ item.setSensor(senList.get(0));
+ dlNewList.add(item);
+ }
+ }
List icdFileList = fileRepository.findAll();
if (!CollectionUtils.isEmpty(icdFileList)) {
for (IcdFile icdFile : icdFileList) {
- this.collectIcdFile(icdFile, rptList, dlList);
+ this.collectIcdFile(icdFile, rptList, dlNewList);
}
}
}
@@ -111,7 +121,7 @@ public class Client61850Task {
@Scheduled(initialDelay = 60 * 1000, fixedDelay = 60 * 1000)
private void testAll() {
- if (!enable) {
+ if (!check) {
return;
}
List iedTestList = new ArrayList<>();
diff --git a/src/main/java/com/xydl/cac/task/ClientThermalTask.java b/src/main/java/com/xydl/cac/task/ClientThermalTask.java
new file mode 100644
index 0000000..c07d5df
--- /dev/null
+++ b/src/main/java/com/xydl/cac/task/ClientThermalTask.java
@@ -0,0 +1,101 @@
+package com.xydl.cac.task;
+
+import com.xydl.cac.entity.ModevType;
+import com.xydl.cac.entity.NSensor;
+import com.xydl.cac.entity.ThermalConfig;
+import com.xydl.cac.repository.NSensorRepository;
+import com.xydl.cac.service.ModevTypeService;
+import com.xydl.cac.service.ThermalConfigService;
+import com.xydl.cac.thermal.ThermalCollectService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import javax.annotation.PreDestroy;
+import javax.annotation.Resource;
+import java.util.*;
+
+@Service
+@Slf4j
+public class ClientThermalTask {
+
+ @Resource
+ ThermalConfigService configService;
+ @Resource
+ ModevTypeService modevTypeService;
+ @Resource
+ NSensorRepository sensorRepository;
+ @Resource
+ ThermalCollectService collectService;
+
+ int shutdown = 0;
+ boolean inDoing = false;
+
+ @PreDestroy
+ private void preDestroy() {
+ shutdown = 1;
+ }
+
+ @Scheduled(cron = "0 * * * * ?")
+ public void collectAll() {
+ ThermalConfig config = configService.getConfig();
+ if (config == null) {
+ return;
+ }
+ if (inDoing) {
+ return;
+ }
+ inDoing = true;
+ try {
+ Calendar cal = Calendar.getInstance();
+ int h = cal.get(Calendar.HOUR_OF_DAY);
+ int m = cal.get(Calendar.MINUTE);
+ m = h * 60 + m;
+
+ ModevType modevType = modevTypeService.detail(config.getTypeId());
+ int intervals = 30;
+ if (modevType.getIntervals() != null) {
+ intervals = modevType.getIntervals();
+ }
+ int x = m % intervals;
+ if (x == 0) {
+ this.collectOneConfig(config, modevType);
+ }
+ } catch (Exception e) {
+ log.error("ClientThermalTask.collectAll error.", e);
+ } finally {
+ inDoing = false;
+ }
+ }
+
+ private void collectOneConfig(ThermalConfig config, ModevType modevType) {
+ if (shutdown == 1) {
+ return;
+ }
+ List list = sensorRepository.findByTypeId(modevType.getId());
+ if (CollectionUtils.isEmpty(list)) {
+ return;
+ }
+ HashMap> map = new HashMap<>();
+
+ for (NSensor sensor : list) {
+ sensor.setTableName(modevType.getTablename());
+ if (sensor.canTempMeasure()) {
+ String key = sensor.getIp() + sensor.getPort() + sensor.getUsername();
+ List sub = map.get(key);
+ if (sub == null) {
+ sub = new ArrayList<>();
+ map.put(key, sub);
+ }
+ sub.add(sensor);
+ }
+ }
+ Iterator it = map.keySet().iterator();
+ while (it.hasNext()) {
+ String key = it.next();
+ List sub = map.get(key);
+ collectService.collectAndSave(sub, config);
+ }
+ }
+}
diff --git a/src/main/java/com/xydl/cac/task/I2syncTask.java b/src/main/java/com/xydl/cac/task/I2syncTask.java
index cf359b9..17c8cf0 100644
--- a/src/main/java/com/xydl/cac/task/I2syncTask.java
+++ b/src/main/java/com/xydl/cac/task/I2syncTask.java
@@ -22,6 +22,8 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import static com.xydl.cac.entity.constants.Constants.I2BatchSize;
+
@Service
@Slf4j
public class I2syncTask {
@@ -89,6 +91,8 @@ public class I2syncTask {
for (I2syncField field : fieldList) {
ModevTypePoint point = new ModevTypePoint();
point.setField(field.getFieldName());
+ String type = dataService.getFieldType(config.getTableName(), point.getField());
+ point.setType(type);
points.add(point);
}
List list = sensorRepository.findByTypeId(config.getModevtypeId());
@@ -116,6 +120,7 @@ public class I2syncTask {
record.setModevtypeId(sensor.getTypeId());
} else {
record = recordList.get(0);
+ record.setModevtypeId(sensor.getTypeId());
}
// 查询最新数据
@@ -132,7 +137,7 @@ public class I2syncTask {
log.info("I2syncTask.syncOneSensor 同步导出" + sensor.getName() + "(" + sensor.getSensorCode() + ") "
+ count + "条数据,最后数据时间" + DateUtil.format(record.getLastDTime()));
- if (count >= 1000) {
+ if (count >= I2BatchSize) {
dataList.clear();
this.syncOneSensor(sensor, config, fieldList, points);
}
diff --git a/src/main/java/com/xydl/cac/task/RuleCheckTask.java b/src/main/java/com/xydl/cac/task/RuleCheckTask.java
index 148d448..0d8e06e 100644
--- a/src/main/java/com/xydl/cac/task/RuleCheckTask.java
+++ b/src/main/java/com/xydl/cac/task/RuleCheckTask.java
@@ -77,13 +77,14 @@ public class RuleCheckTask {
for (TriggerModel model : warnList) {
this.sendWarning(rule, model);
}
- if (rule.getNotifyCom() != null && rule.getNotifyCom().intValue() == Constants.TRUE) {
+ if (warnList.size() > 0 &&
+ rule.getNotifyCom() != null && rule.getNotifyCom().intValue() == Constants.TRUE) {
// 通知串口
serialPortServer.sendData();
}
}
} catch (Exception e) {
- log.error("RuleCheckTask.ruleCheck error.", e);
+ log.error("RuleCheckTask.ruleCheck error. ruleId=" + rule.getId(), e);
}
}
diff --git a/src/main/java/com/xydl/cac/thermal/ThermalCollectService.java b/src/main/java/com/xydl/cac/thermal/ThermalCollectService.java
new file mode 100644
index 0000000..3b13272
--- /dev/null
+++ b/src/main/java/com/xydl/cac/thermal/ThermalCollectService.java
@@ -0,0 +1,73 @@
+package com.xydl.cac.thermal;
+
+import com.netsdk.lib.NetSDKLib;
+import com.netsdk.module.LoginModule;
+import com.netsdk.module.ThermalCameraModule;
+import com.xydl.cac.entity.NSensor;
+import com.xydl.cac.entity.ThermalConfig;
+import com.xydl.cac.model.StaticVariable;
+import com.xydl.cac.service.DataService;
+import com.xydl.cac.util.DateUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+@Service
+@Slf4j
+public class ThermalCollectService {
+
+ @Resource
+ DataService dataService;
+
+ public void collectAndSave(List list, ThermalConfig config) {
+ try {
+ LoginModule.init(null, null);
+ NSensor sensor = list.get(0);
+ boolean r = LoginModule.login(sensor.getIp(), sensor.getPort(), sensor.getUsername(), sensor.getPasswd());
+ if (r) {
+ log.info("登入成功" + sensor.getIp() + ":" + sensor.getPort() + ", 用户名:" + sensor.getUsername());
+ } else {
+ log.error("登入失败" + sensor.getIp() + ":" + sensor.getPort() + ", 用户名:" + sensor.getUsername());
+ return;
+ }
+ String time = DateUtil.format(new Date());
+ for (NSensor item : list) {
+ NetSDKLib.NET_RADIOMETRYINFO data = ThermalCameraModule.queryItemTemper(0, 0, sensor.getTmId(), sensor.getTmType());
+ if (data == null) {
+ log.warn("没有采集到数据, 序号" + item.getTmId() + "测量项目" + sensor.getTmType());
+ } else {
+ log.info("采集到序号" + item.getTmId() + "测量项目" + sensor.getTmType() + "的max="
+ + data.fTemperMax + ", min=" + data.fTemperMin + ", aver=" + data.fTemperAver);
+ if (StringUtils.isNotBlank(config.getMaxtemp())) {
+ String value = String.valueOf(data.fTemperMax);
+ dataService.insertData(item.getTableName(), item.getDevId(), time, config.getMaxtemp(), value);
+ // 更新最新数据缓存
+ StaticVariable.updateLastData(item.getDevId(), config.getMaxtemp(), value, time);
+ }
+ if (StringUtils.isNotBlank(config.getMintemp())) {
+ String value = String.valueOf(data.fTemperMin);
+ dataService.insertData(item.getTableName(), item.getDevId(), time, config.getMintemp(), value);
+ // 更新最新数据缓存
+ StaticVariable.updateLastData(item.getDevId(), config.getMintemp(), value, time);
+ }
+ if (StringUtils.isNotBlank(config.getAvertemp())) {
+ String value = String.valueOf(data.fTemperAver);
+ dataService.insertData(item.getTableName(), item.getDevId(), time, config.getAvertemp(), value);
+ // 更新最新数据缓存
+ StaticVariable.updateLastData(item.getDevId(), config.getAvertemp(), value, time);
+ }
+ }
+ }
+
+ LoginModule.logout();
+ } catch (Exception ex) {
+ log.error("热成像测温采集异常, " + ex.getMessage(), ex);
+ } finally {
+ LoginModule.cleanup();
+ }
+ }
+}
diff --git a/src/main/java/com/xydl/cac/transform/I2DataTransformer.java b/src/main/java/com/xydl/cac/transform/I2DataTransformer.java
index 3dab3fe..dc85d65 100644
--- a/src/main/java/com/xydl/cac/transform/I2DataTransformer.java
+++ b/src/main/java/com/xydl/cac/transform/I2DataTransformer.java
@@ -6,6 +6,7 @@ import com.xydl.cac.model.i2sync.Attr;
import com.xydl.cac.model.i2sync.Datanode;
import com.xydl.cac.model.i2sync.Monitordata;
import com.xydl.cac.model.i2sync.Request;
+import com.xydl.cac.util.DataUtil;
import com.xydl.cac.util.DateUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@@ -65,6 +66,9 @@ public class I2DataTransformer {
List attrs = new ArrayList<>();
for (I2syncField field : fieldList) {
Object value = dataMap.get(field.getFieldName());
+ if (StringUtils.isNotBlank(field.getConversion())) {
+ value = DataUtil.convert(value, field.getConversion());
+ }
if (value != null) {
Attr attr = new Attr();
attr.setName(field.getDestFieldName());
diff --git a/src/main/java/com/xydl/cac/util/DataTable.java b/src/main/java/com/xydl/cac/util/DataTable.java
index 8c3fc1b..b5ca41b 100644
--- a/src/main/java/com/xydl/cac/util/DataTable.java
+++ b/src/main/java/com/xydl/cac/util/DataTable.java
@@ -2,65 +2,8 @@ package com.xydl.cac.util;
public class DataTable {
- public static String getTimeField(String tableName) {
- switch (tableName) {
- case "data_dlq_jbfd":
- case "data_sf6_qtsf":
- case "data_sf6_qtyl":
- case "data_tx":
- case "data_ws":
- case "data_ysp":
- case "data_dcyw":
- case "data_dr_jyjc":
- case "data_jsyhw_jyjc":
- case "data_fhzxq":
- case "data_fhdlbx":
- case "data_microclimate":
- return "acquisitionTime";
- case "data_eaif_h":
- case "data_eif_h":
- return "capturetime";
- default:
- return "d_time";
- }
- }
-
public static String getDevidField(String tableName) {
return "eqmid";
}
- public static String getDevType(String tableName) {
- switch (tableName) {
- case "data_byq_jbfd":
- return "021001"; // 变压器/电抗器 局部放电
- case "data_ysp":
- return "021002"; // 变压器/电抗器 油中溶解气体
- case "data_ws":
- return "021003"; // 变压器/电抗器 微水
- case "data_tx":
- return "021004"; // 变压器/电抗器 铁芯接地电流
- case "data_dcyw":
- return "021005"; // 变压器/电抗器 顶层油温
- case "data_dr_jyjc":
- return "022001"; // 电容型设备 绝缘监测
- case "data_jsyhw_jyjc":
- return "023001"; // 金属氧化物避雷器 绝缘监测
- case "data_dlq_jbfd":
- return "024001"; // 断路器/GIS 局部放电
- case "data_fhzxq":
- return "024002"; // 断路器/GIS 分合闸线圈电流波形
- case "data_fhdlbx":
- return "024003"; // 断路器/GIS 负荷电流波形
- case "data_sf6_qtyl":
- return "024004"; // 断路器/GIS SF6 气体压力
- case "data_sf6_qtsf":
- return "024005"; // 断路器/GIS SF6气体水分
- case "data_cnj":
- return "024006"; // 断路器/GIS 储能电机工作状态
- case "data_microclimate":
- return "025001"; // 综合 变电站微气象
- default:
- return "";
- }
- }
}
diff --git a/src/main/java/com/xydl/cac/util/DataUtil.java b/src/main/java/com/xydl/cac/util/DataUtil.java
index a22ca43..87c68a5 100644
--- a/src/main/java/com/xydl/cac/util/DataUtil.java
+++ b/src/main/java/com/xydl/cac/util/DataUtil.java
@@ -66,4 +66,28 @@ public class DataUtil {
list.addAll(newlist);
}
}
+
+ public static Object convert(Object obj, String conversion) {
+ if (obj instanceof Number) {
+ float f = (float) obj;
+ if (conversion.startsWith("*")) {
+ float c = Float.parseFloat(conversion.replaceAll("\\*", "").
+ replaceAll(" ", ""));
+ return f * c;
+ } else if (conversion.startsWith("/")) {
+ float c = Float.parseFloat(conversion.replaceAll("\\/", "").
+ replaceAll(" ", ""));
+ return f / c;
+ } else if (conversion.startsWith("+")) {
+ float c = Float.parseFloat(conversion.replaceAll("\\+", "").
+ replaceAll(" ", ""));
+ return f + c;
+ } else if (conversion.startsWith("-")) {
+ float c = Float.parseFloat(conversion.replaceAll("\\-", "").
+ replaceAll(" ", ""));
+ return f - c;
+ }
+ }
+ return obj;
+ }
}
diff --git a/src/main/java/com/xydl/cac/util/IcdXmlUtil.java b/src/main/java/com/xydl/cac/util/IcdXmlUtil.java
index 5da9067..b9d0f1a 100644
--- a/src/main/java/com/xydl/cac/util/IcdXmlUtil.java
+++ b/src/main/java/com/xydl/cac/util/IcdXmlUtil.java
@@ -31,7 +31,7 @@ public class IcdXmlUtil {
return icdFile;
}
- private static void processTypeRoot(JsonNode root, IcdFile icdFile) {
+ private static void processTypeRoot(JsonNode root, IcdFile icdFile) throws BusinessException {
LinkedHashMap configMap = new LinkedHashMap<>();
Map mapLNodeType = buildLNodeTypeMap(root);
@@ -77,7 +77,7 @@ public class IcdXmlUtil {
}
private static void processIEDNode(LinkedHashMap configMap, JsonNode iedNode,
- Map mapLNodeType, Map mapDOType, Map mapDAType) {
+ Map mapLNodeType, Map mapDOType, Map mapDAType) throws BusinessException {
String iedName = iedNode.get("name").asText();
List devList = findNodes(iedNode, "LDevice");
@@ -88,7 +88,7 @@ public class IcdXmlUtil {
}
private static void processTypeDeviceNode(LinkedHashMap configMap, String iedName, JsonNode deviceNode,
- Map mapLNodeType, Map mapDOType, Map mapDAType) {
+ Map mapLNodeType, Map mapDOType, Map mapDAType) throws BusinessException {
String ldeviceInst = deviceNode.get("inst").asText();
Map mapLN = buildLNMap(deviceNode);
@@ -115,6 +115,9 @@ public class IcdXmlUtil {
}
JsonNode nodeLNodeType = mapLNodeType.get(lnType);
JsonNode nodeDO = findLNodeType_DO_Node(nodeLNodeType, doName);
+ if (nodeDO == null) {
+ throw new BusinessException(lnType + "该LNodeType节点下缺少名字为" + doName + "的DO节点");
+ }
String doType = nodeDO.get("type").asText();
JsonNode nodeDoDesc = nodeDO.get("desc");
String doDesc = null;
diff --git a/src/main/java/com/xydl/cac/util/JkpgFtp.java b/src/main/java/com/xydl/cac/util/JkpgFtp.java
new file mode 100644
index 0000000..0f5d269
--- /dev/null
+++ b/src/main/java/com/xydl/cac/util/JkpgFtp.java
@@ -0,0 +1,59 @@
+package com.xydl.cac.util;
+
+import com.jcraft.jsch.JSchException;
+import com.xydl.cac.entity.IedDlRecord;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+@Component
+@Slf4j
+public class JkpgFtp {
+ @Value("${cac.jkpg.ip:}")
+ private String ip;
+ @Value("${cac.jkpg.port:22}")
+ private Integer port;
+ @Value("${cac.jkpg.user:}")
+ private String user;
+ @Value("${cac.jkpg.pass:}")
+ private String pass;
+ @Value("${cac.jkpg.pass:}")
+ private String path;
+
+ SFTPTool sftpTool = new SFTPTool();
+ boolean connected = false;
+
+ public void connect() {
+ if (StringUtils.isBlank(ip)) {
+ log.error("健康评估的IP未配置");
+ return;
+ }
+ if (StringUtils.isBlank(user)) {
+ log.error("健康评估的user未配置");
+ return;
+ }
+ try {
+ sftpTool.connect(ip, port, user, pass);
+ sftpTool.cdmkdir(path);
+ connected = true;
+ } catch (Exception e) {
+ log.error("SFTP连接健康评估失败", e);
+ connected = false;
+ }
+ }
+
+ public void upload(IedDlRecord record) {
+ if (!connected) {
+ this.connect();
+ }
+ if (connected) {
+ try {
+ sftpTool.upload(record.getLocalFullPath(), record.getFilename());
+ log.info("SFTP上传健康评估成功, " + record.getFilename());
+ } catch (Exception e) {
+ log.error("SFTP上传健康评估失败, " + record.getFilename(), e);
+ }
+ }
+ }
+}
diff --git a/src/main/java/com/xydl/cac/util/SFTPTool.java b/src/main/java/com/xydl/cac/util/SFTPTool.java
index 3ea8a6e..459aa1e 100644
--- a/src/main/java/com/xydl/cac/util/SFTPTool.java
+++ b/src/main/java/com/xydl/cac/util/SFTPTool.java
@@ -1,6 +1,7 @@
package com.xydl.cac.util;
import com.jcraft.jsch.*;
+import org.apache.commons.lang3.StringUtils;
import java.io.*;
import java.util.Properties;
@@ -70,4 +71,38 @@ public class SFTPTool {
return sftp.ls(remotePath);
}
+ public void cdmkdir(String remotePath) throws SftpException {
+ if (StringUtils.isNotBlank(remotePath)) {
+ if (remotePath.startsWith("/")) {
+ sftp.cd("/");
+ }
+ String[] dirs = remotePath.split("/");
+ for (String dir : dirs) {
+ if (StringUtils.isNotBlank(dir)) {
+ try {
+ sftp.cd(dir);
+ } catch (SftpException e) {
+ sftp.mkdir(dir);
+ sftp.cd(dir);
+ }
+ }
+ }
+ }
+ }
+
+ public static void main(String[] args) {
+ SFTPTool sftpTool = new SFTPTool();
+ try {
+ String path = "abc/aaa";
+ sftpTool.connect("192.168.1.190", 22, "root", "123456");
+ sftpTool.cdmkdir(path);
+ sftpTool.upload("C:\\Code\\cac\\局放谱图\\50100055_5__001_01_20250409175800.dat",
+ "50100055_5__001_01_20250409175800.dat");
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ sftpTool.disconnect();
+ }
+ }
+
}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index e3ccde9..bf6c032 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -41,6 +41,8 @@ cac:
datapath: /home/xydl/ncac/data
61850:
enable: false
+ check: false
+ warning: true
i2:
enable: false
url: http://192.168.1.190:8080/busi-back-ws/service/XydlService
@@ -53,3 +55,9 @@ cac:
name: ttyCH341USB0
intervaltime: 60
warntime: 5
+ jkpg:
+ ip: 192.168.1.190
+ port: 22
+ user: sftpuser
+ pass: 123456
+ path: filestore/comtrad
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index b9815c4..05393b9 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -41,9 +41,11 @@ cac:
datapath: /home/xydl/ncac/data
61850:
enable: true
+ check: false
+ warning: true
i2:
enable: false
- url: http://192.168.1.190:8080/busi-back-ws/service/XydlService
+ url: http://127.0.0.1:8080/busi-back-ws/service/XydlService
dingding:
send: false
token: e65e730cba22e320e16926fd4ff19ce787fa2162d065792bb6562c6d4a4cf328
@@ -52,4 +54,10 @@ cac:
warnport:
name: ttyCH341USB0
intervaltime: 60
- warntime: 5
\ No newline at end of file
+ warntime: 5
+ jkpg:
+ ip: 127.0.0.1
+ port: 22
+ user: sftpuser
+ pass: 123456
+ path: filestore/comtrad
diff --git a/src/main/resources/dynamic-lib-load.xml b/src/main/resources/dynamic-lib-load.xml
new file mode 100644
index 0000000..86434a4
--- /dev/null
+++ b/src/main/resources/dynamic-lib-load.xml
@@ -0,0 +1,51 @@
+
+
+
+ avnetsdk
+ dhconfigsdk
+ dhnetsdk
+ play
+ RenderEngine
+ ImageAlg
+ Infra
+ IvsDrawer
+ StreamConvertor
+ libeay32
+ ssleay32
+
+
+ avnetsdk
+ dhconfigsdk
+ dhnetsdk
+ play
+ RenderEngine
+ Infra
+ ImageAlg
+ StreamConvertor
+ libeay32
+ ssleay32
+
+
+ avnetsdk
+ dhnetsdk
+ dhconfigsdk
+ StreamConvertor
+ ImageAlg
+ crypto
+ ssl
+
+
+ avnetsdk
+ dhconfigsdk
+ dhnetsdk
+ StreamConvertor
+ crypto
+ ssl
+
+
+ avnetsdk
+ dhnetsdk
+ dhconfigsdk
+ StreamConvertor
+
+
\ No newline at end of file
diff --git a/src/main/resources/linux64/libImageAlg.so b/src/main/resources/linux64/libImageAlg.so
new file mode 100644
index 0000000..00b1df2
Binary files /dev/null and b/src/main/resources/linux64/libImageAlg.so differ
diff --git a/src/main/resources/linux64/libStreamConvertor.so b/src/main/resources/linux64/libStreamConvertor.so
new file mode 100644
index 0000000..e34a645
Binary files /dev/null and b/src/main/resources/linux64/libStreamConvertor.so differ
diff --git a/src/main/resources/linux64/libavnetsdk.so b/src/main/resources/linux64/libavnetsdk.so
new file mode 100644
index 0000000..6e04490
Binary files /dev/null and b/src/main/resources/linux64/libavnetsdk.so differ
diff --git a/src/main/resources/linux64/libcrypto.so b/src/main/resources/linux64/libcrypto.so
new file mode 100644
index 0000000..63cdf89
Binary files /dev/null and b/src/main/resources/linux64/libcrypto.so differ
diff --git a/src/main/resources/linux64/libdhconfigsdk.so b/src/main/resources/linux64/libdhconfigsdk.so
new file mode 100644
index 0000000..8c3c351
Binary files /dev/null and b/src/main/resources/linux64/libdhconfigsdk.so differ
diff --git a/src/main/resources/linux64/libdhnetsdk.so b/src/main/resources/linux64/libdhnetsdk.so
new file mode 100644
index 0000000..d786238
Binary files /dev/null and b/src/main/resources/linux64/libdhnetsdk.so differ
diff --git a/src/main/resources/linux64/libssl.so b/src/main/resources/linux64/libssl.so
new file mode 100644
index 0000000..93d0d40
Binary files /dev/null and b/src/main/resources/linux64/libssl.so differ