package com.iailab.netsdk.lib; import com.iailab.netsdk.lib.NetSDKLib.LLong; import com.iailab.netsdk.lib.enumeration.*; import com.iailab.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<String> getFieldOrder(){ List<String> fieldOrderList = new ArrayList<String>(); 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å¡æœ€å¤§ä¸ªæ•° // 错误类型代å·ï¼Œå¯¹åº”CLIENT_GetLastError接å£çš„返回值, å进制 // 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_WIFI_SEARCH_EX = 0x8000; // 获å–到周围环境ä¸WIFI设备上报事件(对应结构体 ALARM_WIFI_SEARCH_INFO_EX) 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) /* start 西欧报è¦ä¸»æœºäº‹ä»¶,预留58个事件*/ public static final int NET_ALARM_AREAARM_MODECHANGE =0x330e; // 区域防区模å¼æ”¹å˜(对应结构体ALARM_AREAARM_MODECHANGE_INFO) public static final int NET_ALARM_AREAALARM =0x3310; // 区域报è¦(对应结构体ALARM_AREAALARM_INFO) /* end 西欧报è¦ä¸»æœºäº‹ä»¶,预留58个事件 */ /* start é›·çƒè”动事件,预留64个事件*/ 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_UPLOAD_RCEMERGENCY_CALL =0x4023; // 紧急呼å«æŠ¥è¦äº‹ä»¶, 对应结构体 ALARM_RCEMERGENCY_CALL_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) // 订阅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) // 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) /** * 扬声器æ’放能力(CFG_CAP_SPEAK) */ public static final String CFG_CAP_CMD_SPEAK = "speak.getCaps"; // 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) public static final int NET_EM_CFG_RADIO_REGULATOR = 11102; // äººä½“æµ‹æ¸©æ ‡å‡†é»‘ä½“é…ç½®, 对应结构体 NET_CFG_RADIO_REGULATOR,通é“å·ä¸èƒ½ä¸º-1 // 命令类型, 对应 CLIENT_QueryNewSystemInfo æŽ¥å£ 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) // 远程é…ç½®ç»“æž„ä½“ç›¸å…³å¸¸é‡ 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_SUNTIME_COUNT = 12; // 日出日è½æ—¶é—´ä¸ªæ•° 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; // 最大物体个数 // 查询类型,对应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 // 设备信æ¯ç±»åž‹,对应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_ACCESSCONTROL_CAPS = 0x20; // 获å–é—¨ç¦èƒ½åŠ›, pInBuf = NET_IN_AC_CAPS*, pOutBuf = NET_OUT_AC_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* // 设备能力类型, 对应CLIENT_GetDevCapsæŽ¥å£ 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_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_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 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_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; // 事件å称长度 // 支æŒç”¨æˆ·å最大长度为8ä½æˆ–16ä½çš„设备,对应扩展接å£CLIENT_QueryUserInfoExå’ŒCLIENT_OperateUserInfoEx 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_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 final int NET_DATA_CALL_BACK_VALUE = 1000; // é…åˆEM_REAL_DATA_TYPE使用,ç æµè½¬æ¢åŽçš„æ•°æ®å›žè°ƒå‡½æ•°(fRealDataCallBackEx,fDataCallBack)ä¸çš„å‚æ•°dwDataType的值 // 为所转æ¢çš„ç æµç±»åž‹åŠ 上NET_DATA_CALL_BACK_VALUE. // å³,dwDataType = NET_DATA_CALL_BACK_VALUE + emDataType // 在回调函数ä¸æŽ¥å—ç æµè½¬æ¢åŽçš„æ•°æ®,å¿…é¡»è¦å…ˆåˆ¤æ– dwDataType 的值是å¦ä¸º NET_DATA_CALL_BACK_VALUEå’ŒemDataType之和 // å¦,EM_REAL_DATA_TYPE_PRIVATEä¸ç”¨åšæ¤åˆ¤æ– 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 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 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 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<szFacePicInfo.length;i++){ szFacePicInfo[i]=new NET_PIC_INFO(); } } } ///////////////////////////////////ç›®æ ‡è¯†åˆ«æ¨¡å—相关结构体/////////////////////////////////////// public static class NET_UID_CHAR extends SdkStructure { public byte[] szUID = new byte[NET_MAX_PERSON_ID_LEN];//UID内容 } public static class NET_UUID_CHAR extends SdkStructure { public byte[] szUUID = new byte[64];//UUID内容 } //ç›®æ ‡è¯†åˆ«æ•°æ®åº“æ“作 public static class EM_OPERATE_FACERECONGNITIONDB_TYPE { public static final int NET_FACERECONGNITIONDB_UNKOWN = 0; public static final int NET_FACERECONGNITIONDB_ADD = 1; //æ·»åŠ äººå‘˜ä¿¡æ¯å’Œäººè„¸æ ·æœ¬ï¼Œå¦‚果人员已ç»å˜åœ¨ï¼Œå›¾ç‰‡æ•°æ®å’ŒåŽŸæ¥çš„æ•°æ®åˆå¹¶ public static final int NET_FACERECONGNITIONDB_DELETE = 2; //åˆ é™¤äººå‘˜ä¿¡æ¯å’Œäººè„¸æ ·æœ¬ public static final int NET_FACERECONGNITIONDB_MODIFY = 3; //修改人员信æ¯å’Œäººè„¸æ ·æœ¬,人员的UIDæ ‡è¯†å¿…å¡« public static final int NET_FACERECONGNITIONDB_DELETE_BY_UID = 4; //通过UIDåˆ é™¤äººå‘˜ä¿¡æ¯å’Œäººè„¸æ ·æœ¬ } //CLIENT_OperateFaceRecognitionDB接å£è¾“å…¥å‚æ•° public static class NET_IN_OPERATE_FACERECONGNITIONDB extends SdkStructure { public int dwSize; public int emOperateType; //æ“作类型, å–EM_OPERATE_FACERECONGNITIONDB_TYPEä¸çš„值 public FACERECOGNITION_PERSON_INFO stPersonInfo; //äººå‘˜ä¿¡æ¯ //emOperateTypeæ“作类型为ET_FACERECONGNITIONDB_DELETE_BY_UID时使用,stPeronInfoå—æ®µæ— æ•ˆ public int nUIDNum; //UID个数 public Pointer stuUIDs; //äººå‘˜å”¯ä¸€æ ‡è¯†ç¬¦,首次由æœåŠ¡ç«¯ç”Ÿæˆ,区别于IDå—段, NET_UID_CHAR[] // å›¾ç‰‡äºŒè¿›åˆ¶æ•°æ® public Pointer pBuffer; //缓冲地å€, char * public int nBufferLen; //缓冲数æ®é•¿åº¦ public int bUsePersonInfoEx; // 使用人员扩展信æ¯, 1:true 0:false public FACERECOGNITION_PERSON_INFOEX stPersonInfoEx; // 人员信æ¯æ‰©å±• //emOperateTypeæ“作类型为NET_FACERECONGNITIONDB_DELETE_BY_UUID时使用,stPeronInfoå—æ®µæ— æ•ˆ public int nUUIDNum; //UUID个数 public Pointer stuUUIDs; //äººå‘˜å”¯ä¸€æ ‡è¯†ç¬¦,由平å°ç«¯ä¸‹å‘,区别于UIDå—段. 由用户申请内å˜,大å°ä¸ºsizeof(NET_UUID_CHAR)*nUUIDNum public NET_IN_OPERATE_FACERECONGNITIONDB() { this.dwSize = this.size(); } } // 错误代ç ,emOperateTypeæ“作类型为ET_FACERECONGNITIONDB_DELETE_BY_UID时使用 public static class EM_ERRORCODE_TYPE extends SdkStructure { public static final int EM_ERRORCODE_TYPE_UNKNOWN = -1; // 未知错误 public static final int EM_ERRORCODE_TYPE_SUCCESS=0; // æˆåŠŸ public static final int EM_ERRORCODE_TYPE_PERSON_NOT_EXIST=1; // 人员ä¸å˜åœ¨ public static final int EM_ERRORCODE_TYPE_DATABASE_ERROR=2; // æ•°æ®åº“æ“作失败 }; //CLIENT_OperateFaceRecognitionDB接å£è¾“出å‚æ•° public static class NET_OUT_OPERATE_FACERECONGNITIONDB extends SdkStructure { public int dwSize; public byte[] szUID = new byte[NET_MAX_PERSON_ID_LEN]; // äººå‘˜å”¯ä¸€æ ‡è¯†ç¬¦, åªæœ‰åœ¨æ“作类型为NET_FACERECONGNITIONDB_ADD时有效 //emOperateTypeæ“作类型为ET_FACERECONGNITIONDB_DELETE_BY_UID时使用 public int nErrorCodeNum; // 错误ç 个数 public int[] emErrorCodes=new int[512]; // 错误ç // emOperateTypeæ“作类型为ET_FACERECONGNITIONDB_DELETE_BY_UID时使用 public NET_OUT_OPERATE_FACERECONGNITIONDB() { this.dwSize = this.size(); } } //äººè„¸å¯¹æ¯”æ¨¡å¼ public static class EM_FACE_COMPARE_MODE extends SdkStructure { public static final int NET_FACE_COMPARE_MODE_UNKOWN = 0; public static final int NET_FACE_COMPARE_MODE_NORMAL = 1; //æ£å¸¸ public static final int NET_FACE_COMPARE_MODE_AREA = 2; //指定人脸区域组åˆåŒºåŸŸ public static final int NET_FACE_COMPARE_MODE_AUTO = 3; //智能模å¼,ç®—æ³•æ ¹æ®äººè„¸å„个区域情况自动选å–ç»„åˆ } //人脸区域 public static class EM_FACE_AREA_TYPE extends SdkStructure { public static final int NET_FACE_AREA_TYPE_UNKOWN = 0; public static final int NET_FACE_AREA_TYPE_EYEBROW = 1; //眉毛 public static final int NET_FACE_AREA_TYPE_EYE = 2; //çœ¼ç› public static final int NET_FACE_AREA_TYPE_NOSE= 3; //é¼»å public static final int NET_FACE_AREA_TYPE_MOUTH = 4; //嘴巴 public static final int NET_FACE_AREA_TYPE_CHEEK =5; //脸颊 } public static class NET_FACE_MATCH_OPTIONS extends SdkStructure { public int dwSize; public int nMatchImportant; // 人员é‡è¦ç‰çº§1~10,数值越高越é‡è¦,(查询é‡è¦ç‰çº§å¤§äºŽç‰äºŽæ¤ç‰çº§çš„人员), 类型为unsigned int public int emMode; // 人脸比对模å¼,详è§EM_FACE_COMPARE_MODE, å–EM_FACE_COMPARE_MODEä¸çš„值 public int nAreaNum; // 人脸区域个数 public int[] szAreas= new int[MAX_FACE_AREA_NUM]; // 人脸区域组åˆ,emMode为NET_FACE_COMPARE_MODE_AREA时有效, æ•°ç»„å…ƒç´ å–EM_FACE_AREA_TYPEä¸çš„值 public int nAccuracy; // 识别精度(å–值1~10,éšç€å€¼å¢žå¤§,检测精度æ高,检测速度下é™ã€‚最å°å€¼ä¸º1表示检测速度优先,最大值为10表示检测精度优先。暂时åªå¯¹ç›®æ ‡æ£€æµ‹æœ‰æ•ˆ) public int nSimilarity; // 相似度(必须大于该相识度æ‰æŠ¥å‘Š;百分比表示,1~100) public int nMaxCandidate; // 报告的最大候选个数(æ ¹æ®ç›¸ä¼¼åº¦è¿›è¡ŒæŽ’åº,å–相似度最大的候选人数报告) public int emQueryMode; // 以图æœå›¾æŸ¥è¯¢æ¨¡å¼ï¼Œè¯¦è§EM_FINDPIC_QUERY_MODE public int emOrdered; // 以图æœå›¾ç»“果上报排åºæ–¹å¼ï¼Œè¯¦è§EM_FINDPIC_QUERY_ORDERED public NET_FACE_MATCH_OPTIONS() { this.dwSize = this.size(); } } // 以图æœå›¾æŸ¥è¯¢æ¨¡å¼ public static class EM_FINDPIC_QUERY_MODE extends SdkStructure { public static final int EM_FINDPIC_QUERY_UNKNOWN = 0; // 未知 public static final int EM_FINDPIC_QUERY_PASSIVE = 1; // 被动查询 public static final int EM_FINDPIC_QUERY_ACTIVE = 2; // ä¸»åŠ¨æŽ¨é€ } // 以图æœå›¾ç»“果上报排åºæ–¹å¼ public static class EM_FINDPIC_QUERY_ORDERED extends SdkStructure { public static final int EM_FINDPIC_QUERY_BY_SIMILARITY = 0; // 按相似度从高到底 public static final int EM_FINDPIC_QUERY_BY_TIME_FORWARD = 1; // 按时间æ£åº public static final int EM_FINDPIC_QUERY_BY_TIME_REVERSE = 2; // æŒ‰æ—¶é—´å€’åº } //ç›®æ ‡è¯†åˆ«äººè„¸ç±»åž‹ public static class EM_FACERECOGNITION_FACE_TYPE extends SdkStructure { public static final int EM_FACERECOGNITION_FACE_TYPE_UNKOWN = 0; public static final int EM_FACERECOGNITION_FACE_TYPE_ALL = 1; // 所有人脸 public static final int EM_FACERECOGNITION_FACE_TYPE_REC_SUCCESS= 2; // 识别æˆåŠŸ public static final int EM_FACERECOGNITION_FACE_TYPE_REC_FAIL = 3; // 识别失败 } public static class NET_FACE_FILTER_CONDTION extends SdkStructure { public int dwSize; public NET_TIME stStartTime=new NET_TIME(); // 开始时间 public NET_TIME stEndTime=new NET_TIME(); // 结æŸæ—¶é—´ public byte[] szMachineAddress = new byte[MAX_PATH]; // 地点,支æŒæ¨¡ç³ŠåŒ¹é… public int nRangeNum; // 实际数æ®åº“个数 public byte[] szRange = new byte[MAX_FACE_DB_NUM]; // 待查询数æ®åº“类型,详è§EM_FACE_DB_TYPE public int emFaceType; // 待查询人脸类型,详è§EM_FACERECOGNITION_FACE_TYPE, å–EM_FACERECOGNITION_FACE_TYPEä¸çš„值 public int nGroupIdNum; // 人员组数 public GROUP_ID[] szGroupIdArr = new GROUP_ID[MAX_GOURP_NUM]; // 人员组ID public NET_TIME stBirthdayRangeStart=new NET_TIME(); // 生日起始时间 public NET_TIME stBirthdayRangeEnd=new NET_TIME(); // 生日结æŸæ—¶é—´ public byte[] byAge = new byte[MAX_AGE_NUM]; // 年龄区间,当byAge[0]=0与byAge[1]=0时,表示查询全年龄 public byte[] byReserved = new byte[2]; // ä¿ç•™å—èŠ‚å¯¹é½ public int[] emEmotion = new int[MAX_EMOTION_NUM]; // 表情æ¡ä»¶ public int nEmotionNum; // 表情æ¡ä»¶çš„个数 public int nUIDNum; // äººå‘˜å”¯ä¸€æ ‡è¯†æ•° public byte[] szUIDs=new byte[64*32]; // äººå‘˜å”¯ä¸€æ ‡è¯†åˆ—è¡¨ public int nUUIDNum; // å¹³å°ç«¯äººå‘˜å”¯ä¸€æ ‡è¯†æ•° public byte[] szUUIDs=new byte[64*32]; // å¹³å°ç«¯äººå‘˜å”¯ä¸€æ ‡è¯†åˆ—è¡¨ï¼Œæ ¹æ®faceRecognitionServer.getCaps获å–到的能力是å¦å˜åœ¨å—段SupportIDFromServer且值为true时有效 public int bIsUsingRealUTCTime; // 是å¦ä½¿ç”¨UTCæ ¼å¼çš„开始ã€ç»“æŸæ—¶é—´ public NET_TIME stuStartTimeRealUTC = new NET_TIME(); // 开始时间(UTCæ—¶é—´æ ¼å¼ï¼‰ public NET_TIME stuEndTimeRealUTC = new NET_TIME(); // 结æŸæ—¶é—´ï¼ˆUTCæ—¶é—´æ ¼å¼ï¼‰å¤‡æ³¨ï¼šä¸ŽStartTimeRealUTCé…对使用 public int bIsUsingRegisterStorageTime; // 是å¦ä½¿ç”¨æ³¨å†Œåº“人员的开始ã€ç»“æŸæ—¶é—´ public NET_TIME stuStartRegisterStorageTime = new NET_TIME(); // 注册库人员的入库开始时间 public NET_TIME stuEndRegisterStorageTime = new NET_TIME(); // 注册库人员的入库结æŸæ—¶é—´ public int bIsUsingModifyTime; // 是å¦ä½¿ç”¨æ³¨å†Œåº“人员的修改开始ã€ç»“æŸæ—¶é—´ public NET_TIME stuStartModifyTime= new NET_TIME(); // 注册库人员的修改开始时间 public NET_TIME stuEndModifyTime= new NET_TIME(); // 注册库人员的修改结æŸæ—¶é—´ public NET_FACE_FILTER_CONDTION() { for(int i=0;i<szGroupIdArr.length;i++){ szGroupIdArr[i]=new GROUP_ID(); } this.dwSize = this.size(); } } // 人员组ID public static class GROUP_ID extends SdkStructure { public byte[] szGroupId= new byte[NET_COMMON_STRING_64]; //人员组ID } //CLIENT_StartFindFaceRecognition接å£è¾“å…¥å‚æ•° public static class NET_IN_STARTFIND_FACERECONGNITION extends SdkStructure { public int dwSize; public int bPersonEnable; // 人员信æ¯æŸ¥è¯¢æ¡ä»¶æ˜¯å¦æœ‰æ•ˆ, BOOL类型,å–值0或1 public FACERECOGNITION_PERSON_INFO stPerson=new FACERECOGNITION_PERSON_INFO(); // 人员信æ¯æŸ¥è¯¢æ¡ä»¶ public NET_FACE_MATCH_OPTIONS stMatchOptions=new NET_FACE_MATCH_OPTIONS(); // 人脸匹é…选项 public NET_FACE_FILTER_CONDTION stFilterInfo=new NET_FACE_FILTER_CONDTION(); // 查询过滤æ¡ä»¶ // å›¾ç‰‡äºŒè¿›åˆ¶æ•°æ® public Pointer pBuffer; // 缓冲地å€, char * public int nBufferLen; // 缓冲数æ®é•¿åº¦ public int nChannelID; // 通é“å· public int bPersonExEnable; // 人员信æ¯æŸ¥è¯¢æ¡ä»¶æ˜¯å¦æœ‰æ•ˆ, 并使用扩展结构体 public FACERECOGNITION_PERSON_INFOEX stPersonInfoEx=new FACERECOGNITION_PERSON_INFOEX(); // 人员信æ¯æ‰©å±• public int nSmallPicIDNum; // å°å›¾IDæ•°é‡ public int[] nSmallPicID = new int[MAX_SMALLPIC_NUM]; // å°å›¾ID public int emObjectType; // æœç´¢çš„ç›®æ ‡ç±»åž‹,å‚考EM_OBJECT_TYPE public byte[] szChannel = new byte[NET_COMMON_STRING_32]; // 通é“å·(使用) public NET_IN_STARTFIND_FACERECONGNITION() { this.dwSize = this.size(); } } //CLIENT_StartFindFaceRecognition接å£è¾“出å‚æ•° public static class NET_OUT_STARTFIND_FACERECONGNITION extends SdkStructure { public int dwSize; public int nTotalCount; // 返回的符åˆæŸ¥è¯¢æ¡ä»¶çš„记录个数 // -1表示总æ¡æ•°æœªç”Ÿæˆ,è¦æŽ¨è¿ŸèŽ·å– // 使用CLIENT_AttachFaceFindState接å£çŠ¶æ€ public LLong lFindHandle; // 查询å¥æŸ„ public int nToken; // 获å–到的查询令牌 public NET_OUT_STARTFIND_FACERECONGNITION() { this.dwSize = this.size(); } } //CLIENT_DoFindFaceRecognition 接å£è¾“å…¥å‚æ•° public static class NET_IN_DOFIND_FACERECONGNITION extends SdkStructure { public int dwSize; public LLong lFindHandle; // 查询å¥æŸ„ public int nBeginNum; // 查询起始åºå· public int nCount; // 当å‰æƒ³æŸ¥è¯¢çš„记录æ¡æ•° public int emDataType; // æŒ‡å®šæŸ¥è¯¢ç»“æžœè¿”å›žå›¾ç‰‡çš„æ ¼å¼. å‚考 EM_NEEDED_PIC_RETURN_TYPE public NET_IN_DOFIND_FACERECONGNITION() { this.dwSize = this.size(); } } // æŸ¥è¯¢ç»“æžœè¿”å›žå›¾ç‰‡çš„æ ¼å¼ public static class EM_NEEDED_PIC_RETURN_TYPE extends SdkStructure { public static final int EM_NEEDED_PIC_TYPE_UNKOWN = 0; // 未知类型 public static final int EM_NEEDED_PIC_TYPE_HTTP_URL = 1; // 返回图片HTTP链接 public static final int EM_NEEDED_PIC_TYPE_BINARY_DATA = 2; // è¿”å›žå›¾ç‰‡äºŒè¿›åˆ¶æ•°æ® public static final int EM_NEEDED_PIC_TYPE_HTTP_AND_BINARY = 3; // 返回二进制和HTTP链接 } //å€™é€‰äººå‘˜ä¿¡æ¯ public static class CANDIDATE_INFO extends SdkStructure { public FACERECOGNITION_PERSON_INFO stPersonInfo; // äººå‘˜ä¿¡æ¯ // 布控(ç¦æ¢åå•ï¼‰åº“,指布控库ä¸äººå‘˜ä¿¡æ¯ï¼› // 历å²åº“,指历å²åº“ä¸äººå‘˜ä¿¡æ¯ // 报è¦åº“,æŒ‡å¸ƒæŽ§åº“çš„äººå‘˜ä¿¡æ¯ public byte bySimilarity; // 和查询图片的相似度,百分比表示,1~100 public byte byRange; // 人员所属数æ®åº“范围,详è§EM_FACE_DB_TYPE public byte[] byReserved1 = new byte[2]; public NET_TIME stTime; // 当byRange为历å²æ•°æ®åº“时有效,表示查询人员出现的时间 public byte[] szAddress = new byte[MAX_PATH]; // 当byRange为历å²æ•°æ®åº“时有效,表示查询人员出现的地点 public int bIsHit; // BOOL类型,是å¦æœ‰è¯†åˆ«ç»“æžœ,指这个检测出的人脸在库ä¸æœ‰æ²¡æœ‰æ¯”对结果 public NET_PIC_INFO_EX3 stuSceneImage; // 人脸全景图 public int nChannelID; // 通é“å· public byte[] byReserved = new byte[32]; // ä¿ç•™å—节 public CANDIDATE_INFO() {} } // 物体对应图片文件信æ¯(包å«å›¾ç‰‡è·¯å¾„),对应C++头文件DH_PIC_INFO_EX3 public static class NET_PIC_INFO_EX3 extends SdkStructure { public int dwOffSet; // 文件在二进制数æ®å—ä¸çš„å移ä½ç½®, å•ä½:å—节 public int dwFileLenth; // 文件大å°, å•ä½:å—节 public short wWidth; // 图片宽度, å•ä½:åƒç´ public short wHeight; // 图片高度, å•ä½:åƒç´ public byte[] szFilePath = new byte[64]; // 文件路径 public byte bIsDetected; // 图片是å¦ç®—法检测出æ¥çš„检测过的æ交识别æœåŠ¡å™¨æ—¶, // 则ä¸éœ€è¦å†æ—¶æ£€æµ‹å®šä½æŠ 图,1:检测过的,0:没有检测过 public byte[] bReserved = new byte[11]; // ä¿ç•™ } //CLIENT_DoFindFaceRecognition接å£è¾“出å‚æ•° public static class NET_OUT_DOFIND_FACERECONGNITION extends SdkStructure { public int dwSize; public int nCadidateNum; // 实际返回的候选信æ¯ç»“构体个数 public CANDIDATE_INFO[] stCadidateInfo = (CANDIDATE_INFO[])new CANDIDATE_INFO().toArray(MAX_FIND_COUNT);//候选信æ¯æ•°ç»„ // å›¾ç‰‡äºŒè¿›åˆ¶æ•°æ® public Pointer pBuffer; // 缓冲地å€, char * public int nBufferLen; // 缓冲数æ®é•¿åº¦ public int bUseCandidatesEx; // 是å¦ä½¿ç”¨å€™é€‰å¯¹è±¡æ‰©å±•ç»“构体, // 若为1-true, 则表示使用stuCandidatesEx, 且stuCandidatesæ— æ•ˆ, å¦åˆ™ç›¸å public int nCadidateExNum; // 实际返回的候选信æ¯ç»“构体个数 public CANDIDATE_INFOEX[] stuCandidatesEx = (CANDIDATE_INFOEX[])new CANDIDATE_INFOEX().toArray(MAX_FIND_COUNT); // 当å‰äººè„¸åŒ¹é…到的候选对象信æ¯, 实际返回个数åŒnCandidateNum public NET_OUT_DOFIND_FACERECONGNITION() { this.dwSize = this.size(); } } /////////////////////////////////智能支æŒ///////////////////////////////// //CLIENT_DetectFace接å£è¾“å…¥å‚æ•° public static class NET_IN_DETECT_FACE extends SdkStructure { public int dwSize; public NET_PIC_INFO stPicInfo;//å¤§å›¾ä¿¡æ¯ // å›¾ç‰‡äºŒè¿›åˆ¶æ•°æ® public Pointer pBuffer;//缓冲地å€, char * public int nBufferLen;//缓冲数æ®é•¿åº¦ public NET_IN_DETECT_FACE() { this.dwSize = this.size(); } } //CLIENT_DetectFace接å£è¾“出å‚æ•° public static class NET_OUT_DETECT_FACE extends SdkStructure { public int dwSize; public Pointer pPicInfo;//检测出的人脸图片信æ¯,由用户申请空间, NET_PIC_INFO* public int nMaxPicNum;//最大人脸图片信æ¯ä¸ªæ•° public int nRetPicNum;//实际返回的人脸图片个数 // å›¾ç‰‡äºŒè¿›åˆ¶æ•°æ® public Pointer pBuffer;//缓冲地å€,由用户申请空间,å˜æ”¾æ£€æµ‹å‡ºçš„人脸图片数æ®, char * public int nBufferLen;//缓冲数æ®é•¿åº¦ public NET_OUT_DETECT_FACE() { this.dwSize = this.size(); } } // ç›®æ ‡è¯†åˆ«äº‹ä»¶ç±»åž‹ public static class EM_FACERECOGNITION_ALARM_TYPE extends SdkStructure { public static final int NET_FACERECOGNITION_ALARM_TYPE_UNKOWN = 0; public static final int NET_FACERECOGNITION_ALARM_TYPE_ALL = 1; //ç¦æ¢/å…许åå• public static final int NET_FACERECOGNITION_ALARM_TYPE_BLACKLIST = 2; //ç¦æ¢åå• public static final int NET_FACERECOGNITION_ALARM_TYPE_WHITELIST = 3; //å…许åå• } // NET_FILE_QUERY_FACE å¯¹åº”çš„ç›®æ ‡è¯†åˆ«æœåŠ¡æŸ¥è¯¢å‚æ•° public static class MEDIAFILE_FACERECOGNITION_PARAM extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° //////// 查询过滤æ¡ä»¶ public NET_TIME stStartTime; // 开始时间 public NET_TIME stEndTime; // 结æŸæ—¶é—´ public byte[] szMachineAddress = new byte[MAX_PATH];//地点,支æŒæ¨¡ç³ŠåŒ¹é… public int nAlarmType; // 待查询报è¦ç±»åž‹,è¯¦è§ EM_FACERECOGNITION_ALARM_TYPE public int abPersonInfo; // 人员信æ¯æ˜¯å¦æœ‰æ•ˆ, BOOL类型,å–值0或1 public FACERECOGNITION_PERSON_INFO stPersonInfo; // äººå‘˜ä¿¡æ¯ public int nChannelId; // 通é“å· public int nGroupIdNum; // 人员组数 public GROUP_ID[] szGroupIdArr = (GROUP_ID[])new GROUP_ID().toArray(MAX_GOURP_NUM); // 人员组ID public int abPersonInfoEx; // 人员信æ¯æ‰©å±•æ˜¯å¦æœ‰æ•ˆ public FACERECOGNITION_PERSON_INFOEX stPersonInfoEx; // 人员信æ¯æ‰©å±• public int bSimilaryRangeEnable; //相似度是å¦æœ‰æ•ˆ public int[] nSimilaryRange=new int[2]; //相似度范围 public int nFileType; // 文件类型,0:查询任æ„类型,1:查询jpg图片,2:查询dav public int bOnlySupportRealUTC;// 为TRUE表示仅下å‘stuStartTimeRealUTCå’ŒstuEndTimeRealUTC(ä¸ä¸‹å‘stStartTime, stEndTime), 为FALSE表示仅下å‘stStartTime, stEndTime(ä¸ä¸‹å‘stuStartTimeRealUTCå’ŒstuEndTimeRealUTC) public NET_TIME stuStartTimeRealUTC;// UTC开始时间(æ ‡å‡†UTC时间), 与stuEndTimeRealUTCé…对使用,与(stStartTime, stEndTime)互斥 public NET_TIME stuEndTimeRealUTC;// UTC结æŸæ—¶é—´(æ ‡å‡†UTC时间), 与stuStartTimeRealUTCé…对使用,与(stStartTime, stEndTime)互斥 public MEDIAFILE_FACERECOGNITION_PARAM() { this.dwSize = this.size(); } } // 图片类型 public static class EM_FACEPIC_TYPE extends SdkStructure { public static final int NET_FACEPIC_TYPE_UNKOWN = 0; // 未知类型 public static final int NET_FACEPIC_TYPE_GLOBAL_SENCE = 1; // 人脸全景大图 public static final int NET_FACEPIC_TYPE_SMALL = 2; // 人脸å°å›¾ } // å‚æ•°è¯¦ç»†ä¿¡æ¯ public static class MEDIAFILE_FACE_DETECTION_DETAIL_PARAM extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int dwObjectId; // 物体ID public int dwFrameSequence; // 帧åºå· public NET_TIME_EX stTime; // å‘生时间 public MEDIAFILE_FACE_DETECTION_DETAIL_PARAM() { this.dwSize = this.size(); } } // ç›®æ ‡æ£€æµ‹äººè„¸æˆ´çœ¼é•œç‰¹å¾ç±»åž‹ public static class EM_FACEDETECT_GLASSES_TYPE extends SdkStructure { public static final int EM_FACEDETECT_GLASSES_UNKNOWN = 0; // 未知 public static final int EM_FACEDETECT_WITH_GLASSES = 1; // 戴眼镜 public static final int EM_FACEDETECT_WITHOUT_GLASSES = 2; // ä¸æˆ´çœ¼é•œ } //体温类型 public static class EM_TEMPERATURE_TYPE extends SdkStructure { public static final int EM_TEMPERATURE_TYPE_UNKNOWN = -1; // 未知 public static final int EM_TEMPERATURE_TYPE_UNDEFINE=0; // 未识别 public static final int EM_TEMPERATURE_TYPE_LOW=1; // 体温过低 public static final int EM_TEMPERATURE_TYPE_NORMAL=2; // 体温æ£å¸¸ public static final int EM_TEMPERATURE_TYPE_HIGH=3; // 体温过高 } // NET_FILE_QUERY_FACE_DETECTION å¯¹åº”çš„ç›®æ ‡è¯†åˆ«æœåŠ¡æŸ¥è¯¢å‚æ•° public static class MEDIAFILE_FACE_DETECTION_PARAM extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° ////////查询过滤æ¡ä»¶ public int nChannelID; // 通é“å· public NET_TIME stuStartTime; // 起始时间 public NET_TIME stuEndTime; // 结æŸæ—¶é—´ public int emPicType; // 图片类型,对应枚举 EM_FACEPIC_TYPE public int bDetailEnable; // 是å¦æœ‰è¯¦ç»†ä¿¡æ¯,boolean类型,为1或者0 public MEDIAFILE_FACE_DETECTION_DETAIL_PARAM stuDetail; // å‚æ•°è¯¦ç»†ä¿¡æ¯ public int emSex; // 性别类型, å‚考 EM_DEV_EVENT_FACEDETECT_SEX_TYPE public int bAgeEnable; // 是å¦æŒ‡å®šå¹´é¾„段 public int[] nAgeRange = new int[2]; // 年龄范围 public int nEmotionValidNum; // 人脸特å¾æ•°ç»„有效个数,与 emFeature 结åˆä½¿ç”¨, 如果为0则表示查询所有表情 public int[] emEmotion = new int[NET_MAX_FACEDETECT_FEATURE_NUM]; // 人脸特å¾æ•°ç»„,与 byFeatureValidNum 结åˆä½¿ç”¨,对应 EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE public int emGlasses; // 是å¦æˆ´çœ¼é•œ,å‚考 EM_FACEDETECT_GLASSES_TYPE public int emMask; // 是å¦å¸¦å£ç½©,å‚考 EM_MASK_STATE_TYPE public int emBeard; // 是å¦æœ‰èƒ¡å,å‚考 EM_BEARD_STATE_TYPE public int nIsStranger; // 0-都查询;1-仅查未开å¯é™Œç”Ÿäººæ¨¡å¼ï¼›2-仅查开å¯é™Œç”Ÿäººæ¨¡å¼ 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 int[] nChannelIDs = new int[256]; // 通é“å·æ•°ç»„ public int nChannelNum; // 通é“å·æ•°ç»„æ•°é‡ public MEDIAFILE_FACE_DETECTION_PARAM() { this.dwSize = this.size(); } } // NET_FILE_QUERY_FACE_DETECTIONå¯¹åº”çš„ç›®æ ‡è¯†åˆ«æœåŠ¡FINDNEXT查询返回å‚æ•° public static class MEDIAFILE_FACE_DETECTION_INFO extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int ch; // 通é“å· public byte[] szFilePath = new byte[128]; // 文件路径 public int size; // 文件长度,该å—段废弃,请使用sizeEx public NET_TIME starttime; // 开始时间 public NET_TIME endtime; // 结æŸæ—¶é—´ public int nWorkDirSN; // å·¥ä½œç›®å½•ç¼–å· public byte nFileType; // 文件类型 1:jpg图片 public byte bHint; // 文件定ä½ç´¢å¼• public byte bDriveNo; // ç£ç›˜å· public byte byPictureType; // 图片类型, 0-普通, 1-åˆæˆ, 2-æŠ å›¾ public int nCluster; // ç°‡å· public int emPicType; // 图片类型,è¯¦è§ EM_FACEPIC_TYPE public int dwObjectId; // 物体ID public int[] dwFrameSequence = new int[NET_MAX_FRAMESEQUENCE_NUM]; // 帧åºå·,数组有2ä¸ªå…ƒç´ æ—¶,第一个表示å°å›¾,第二个表示大图 public int nFrameSequenceNum; // 帧åºå·ä¸ªæ•° public NET_TIME_EX[] stTimes = (NET_TIME_EX[])new NET_TIME_EX().toArray(NET_MAX_TIMESTAMP_NUM); // å‘生时间,数组有2ä¸ªå…ƒç´ æ—¶,第一个表示å°å›¾,第二个表示大图 public int nTimeStampNum; // 表示在簇ä¸çš„图片åºå· public int nPicIndex; // 表示在簇ä¸çš„图片åºå· // 对于åŒä¸€ä¸ªç°‡ä¸æ‰“åŒ…å¤šå¼ å›¾ç‰‡,æ供索引方å¼å®šä½å›¾ç‰‡ public int emSex; // 性别类型,å‚考 EM_DEV_EVENT_FACEDETECT_SEX_TYPE public int nAge; // 年龄 public int emEmotion; // 人脸表情,å‚考 EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE public int emGlasses; // 是å¦æˆ´çœ¼é•œ,å‚考 EM_FACEDETECT_GLASSES_TYPE public long sizeEx; // 文件长度扩展,支æŒæ–‡ä»¶é•¿åº¦å¤§äºŽ4G,å•ä½å—节 public int emMask; // 是å¦å¸¦å£ç½©,å‚考 EM_MASK_STATE_TYPE public int emBeard; // 是å¦æœ‰èƒ¡å,å‚考 EM_BEARD_STATE_TYPE public byte[] szReserved = new byte[4]; public int emEye; // 眼ç›çŠ¶æ€,å‚考 EM_EYE_STATE_TYPE public int emMouth; // 嘴巴状æ€,å‚考 EM_MOUTH_STATE_TYPE public int nAttractive; // é…力值 public int nIsStranger; // 0-未知;1-未开å¯é™Œç”Ÿäººæ¨¡å¼ï¼›2-å¼€å¯äº†é™Œç”Ÿäººæ¨¡å¼ public byte[] szFaceObjectUrl = new byte[128]; // 当 emPicType 为 NET_FACEPIC_TYPE_GLOBAL_SENCE æ—¶, 代表人脸å°å›¾è·¯å¾„ public NET_EULER_ANGLE stuFaceCaptureAngle; // 人脸在抓æ‹å›¾ç‰‡ä¸çš„角度信æ¯, nPitch:抬头低头的俯仰角, nYawå·¦å³è½¬å¤´çš„å航角, nRoll头在平é¢å†…å·¦åå³å的翻滚角 // 角度值å–值范围[-90,90], 三个角度值都为999表示æ¤è§’度信æ¯æ— 效 public int nFaceQuality; // 人脸抓æ‹è´¨é‡åˆ†æ•° public NET_FACEDETECT_IMAGE_INFO stuSceneImage; // å¤§å›¾ä¿¡æ¯ public NET_POINT stuFaceCenter; // 人脸型心(ä¸æ˜¯åŒ…å›´ç›’ä¸å¿ƒ), 0-8191相对åæ ‡, 相对于å°å›¾ public int bRealUTC; // 为TRUE表示仅stuStartTimeRealUTCå’ŒstuEndTimeRealUTC有效(仅使用stuStartTimeRealUTCå’ŒstuEndTimeRealUTC), 为FALSE表示仅starttimeå’Œendtime有效(仅使用starttimeå’Œendtime) public NET_TIME stuStartTimeRealUTC; // UTC开始时间(æ ‡å‡†UTC时间), 与stuEndTimeRealUTCé…对使用 public NET_TIME stuEndTimeRealUTC; // UTC结æŸæ—¶é—´(æ ‡å‡†UTC时间), 与stuStartTimeRealUTCé…对使用 public MEDIAFILE_FACE_DETECTION_INFO() { this.dwSize = this.size(); } } // NET_MEDIA_QUERY_TRAFFICCAR对应的查询æ¡ä»¶ public static class MEDIA_QUERY_TRAFFICCAR_PARAM extends SdkStructure { public int nChannelID; // 通é“å·ä»Ž0开始,-1è¡¨ç¤ºæŸ¥è¯¢æ‰€æœ‰é€šé“ public NET_TIME StartTime; // 开始时间 public NET_TIME EndTime; // 结æŸæ—¶é—´ public int nMediaType; // 文件类型,0:ä»»æ„类型, 1:jpg图片, 2:dav文件 public int nEventType; // 事件类型,详è§"智能分æžäº‹ä»¶ç±»åž‹", 0:表示查询任æ„事件,æ¤å‚数废弃,请使用pEventTypes public byte[] szPlateNumber = new byte[32]; // 车牌å·, "\0"则表示查询任æ„è½¦ç‰Œå· public int nSpeedUpperLimit; // 查询的车速范围; é€Ÿåº¦ä¸Šé™ å•ä½: km/h public int nSpeedLowerLimit; // 查询的车速范围; é€Ÿåº¦ä¸‹é™ å•ä½: km/h public int bSpeedLimit; // 是å¦æŒ‰é€Ÿåº¦æŸ¥è¯¢; TRUE:按速度查询,nSpeedUpperLimitå’ŒnSpeedLowerLimit有效。 public int dwBreakingRule; // è¿ç« 类型: // 当事件类型为 EVENT_IVS_TRAFFICGATEæ—¶ // 第一ä½:逆行; 第二ä½:压线行驶; 第三ä½:超速行驶; // 第四ä½ï¼šæ¬ 速行驶; 第五ä½:闯红ç¯; // 当事件类型为 EVENT_IVS_TRAFFICJUNCTION // 第一ä½:闯红ç¯; 第二ä½:ä¸æŒ‰è§„定车é“行驶; // 第三ä½:逆行; 第四ä½ï¼šè¿ç« 掉头; // 第五ä½:压线行驶; 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 byte[] szVehicleSize = new byte[16]; // 车辆大å°ç±»åž‹:"Light-duty":å°åž‹è½¦;"Medium":ä¸åž‹è½¦; "Oversize":大型车; "Unknown": 未知 public int nGroupID; // 事件组编å·(æ¤å€¼>=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 EM_SAFE_BELT_STATE} */ public int emSafeBelSate; /** * 打电è¯çŠ¶æ€ {@link 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 EM_CATEGORY_TYPE} */ public int emCarType; /** * é®é˜³æ¿çŠ¶æ€ {@link NET_SUNSHADE_STATE} */ public int emSunShadeState; /** * 是å¦æŠ½çƒŸ {@link 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<Contour.length;i++){ Contour[i]=new NET_POINT(); } } } // ç‰©ä½“æˆªå›¾ä¿¡æ¯ public static class IMAGE_INFO extends SdkStructure { public int nLength; // 图片大å°,å•ä½:å—节 public int nWidth; // 图片宽度 public int nHeight; // 图片高度 public byte[] szFilePath=new byte[260]; // 文件路径 public byte[] byReserved=new byte[512]; // 预留å—节 }; // ç›®æ ‡äººè„¸ä¿¡æ¯ public static class FACE_INFO_OBJECT extends SdkStructure { public IMAGE_INFO stuImageInfo; // ç‰©ä½“æˆªå›¾ä¿¡æ¯ public int emSex; // 性别类型 public int nAge; // 年龄 public int emGlasses; // 是å¦æˆ´çœ¼é•œ public int emEmotion; // 人脸表情 public byte[] szReserved = new byte[4]; public int emEye; // 眼ç›çŠ¶æ€ public int emMouth; // å˜´å·´çŠ¶æ€ public int emMask; // 是å¦å¸¦å£ç½© public int emBeard; // 是å¦æœ‰èƒ¡å public int nAttractive; // é…力值,0表示未识别,识别时范围1-100,得分高é…力高 public NET_EULER_ANGLE stuFaceCaptureAngle; // 人脸在抓æ‹å›¾ç‰‡ä¸çš„角度信æ¯, nPitch:抬头低头的俯仰角, nYawå·¦å³è½¬å¤´çš„å航角, nRoll头在平é¢å†…å·¦åå³å的翻滚角 // 角度值å–值范围[-90,90], 三个角度值都为999表示æ¤è§’度信æ¯æ— 效 public int nFaceQuality; // 人脸抓æ‹è´¨é‡åˆ†æ•° public double fMaxTemp; // æ¸©åº¦ä¿¡æ¯ public int nIsOverTemp; // 是å¦æ¸©åº¦å¼‚常 public int nIsUnderTemp; // 是å¦æ¸©åº¦å¼‚常 public int emTempUnit; // 温度å•ä½ EM_TEMPERATURE_UNIT public byte[] byReserved=new byte[2012]; // ä¿ç•™å—段 }; public static class EM_TEMPERATURE_UNIT extends SdkStructure { public final static int EM_TEMPERATURE_CENTIGRADE = 0; // æ‘„æ°åº¦ public final static int EM_TEMPERATURE_FAHRENHEIT = 1; // åŽæ°åº¦ public final static int EM_TEMPERATURE_KELVIN = 2; // 开尔文 } // NET_FILE_QUERY_FACE å¯¹åº”çš„ç›®æ ‡è¯†åˆ«æœåŠ¡FINDNEXT查询返回å‚æ•° public static class MEDIAFILE_FACERECOGNITION_INFO extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int bGlobalScenePic; // 全景图是å¦å˜åœ¨, BOOL类型,å–值0或1 public NET_PIC_INFO_EX stGlobalScenePic; // 全景图片文件路径 public NET_MSG_OBJECT stuObject; // ç›®æ ‡äººè„¸ç‰©ä½“ä¿¡æ¯ public NET_PIC_INFO_EX stObjectPic; // ç›®æ ‡äººè„¸æ–‡ä»¶è·¯å¾„ public int nCandidateNum; // 当å‰äººè„¸åŒ¹é…åˆ°çš„å€™é€‰å¯¹è±¡æ•°é‡ public CANDIDATE_INFO[] stuCandidates = (CANDIDATE_INFO[])new CANDIDATE_INFO().toArray(NET_MAX_CANDIDATE_NUM); //当å‰äººè„¸åŒ¹é…åˆ°çš„å€™é€‰å¯¹è±¡ä¿¡æ¯ public NET_CANDIDAT_PIC_PATHS[] stuCandidatesPic = (NET_CANDIDAT_PIC_PATHS[])new NET_CANDIDAT_PIC_PATHS().toArray(NET_MAX_CANDIDATE_NUM);// 当å‰äººè„¸åŒ¹é…到的候选对象图片文件路径 public NET_TIME stTime; // 报è¦å‘生时间 public byte[] szAddress = new byte[MAX_PATH]; // 报è¦å‘生地点 public int nChannelId; // 通é“å· public int bUseCandidatesEx; // 是å¦ä½¿ç”¨å€™é€‰å¯¹è±¡æ‰©å±•ç»“构体, 1-true, 0-false // 若为TRUE, 则表示使用stuCandidatesEx, 且stuCandidatesæ— æ•ˆ, å¦åˆ™ç›¸å public int nCandidateExNum; // 当å‰äººè„¸åŒ¹é…到的候选对象(扩展结构体) æ•°é‡ public CANDIDATE_INFOEX[] stuCandidatesEx = (CANDIDATE_INFOEX[])new CANDIDATE_INFOEX().toArray(NET_MAX_CANDIDATE_NUM); // 当å‰äººè„¸åŒ¹é…到的候选对象信æ¯, 实际返回个数åŒnCandidateNum public FACE_INFO_OBJECT stuFaceInfoObject; // ç›®æ ‡äººè„¸ä¿¡æ¯ public NET_POINT stuFaceCenter; // 人脸型心(ä¸æ˜¯åŒ…å›´ç›’ä¸å¿ƒ), 0-8191相对åæ ‡, 相对于å°å›¾ public NET_MEDIAFILE_GENERAL_INFO stuGeneralInfo; // é€šç”¨ä¿¡æ¯ public int nRecNo; // æ•°æ®åº“è®°å½•å· public int bRealUTC; // 为TRUE表示仅stuStartTimeRealUTCå’ŒstuEndTimeRealUTC有效(仅使用stuStartTimeRealUTCå’ŒstuEndTimeRealUTC), 为FALSE表示stuStartTimeRealUTCå’ŒstuEndTimeRealUTCæ— æ•ˆ public NET_TIME stuStartTimeRealUTC; // UTC开始时间(æ ‡å‡†UTC时间), 与stuEndTimeRealUTCé…对使用 public NET_TIME stuEndTimeRealUTC; // UTC结æŸæ—¶é—´(æ ‡å‡†UTC时间), 与stuStartTimeRealUTCé…对使用 public MEDIAFILE_FACERECOGNITION_INFO() { this.dwSize = this.size(); } @Override public int fieldOffset(String name) { return super.fieldOffset(name); } } //æ¯ä¸ªè§†é¢‘输入通é“对应的所有事件规则:缓冲区pRuleBuf填充多个事件规则信æ¯ï¼Œæ¯ä¸ªäº‹ä»¶è§„则信æ¯å†…容为 CFG_RULE_INFO + "事件类型对应的规则é…置结构体"。 public static class CFG_ANALYSERULES_INFO extends SdkStructure { public int nRuleCount; // 事件规则个数 public Pointer pRuleBuf; // æ¯ä¸ªè§†é¢‘输入通é“对应的视频分æžäº‹ä»¶è§„则é…置缓冲, 对应 CFG_RULE_INFO[] public int nRuleLen; // ç¼“å†²å¤§å° } // è§„åˆ™é€šç”¨ä¿¡æ¯ public static class CFG_RULE_COMM_INFO extends SdkStructure { public byte bRuleId; // è§„åˆ™ç¼–å· public int emClassType; // 规则所属的场景, EM_SCENE_TYPE public byte[] bReserved = new byte[512]; // ä¿ç•™å—节 } public static class CFG_RULE_INFO extends SdkStructure { public int dwRuleType; // 事件类型,详è§dhnetsdk.hä¸"智能分æžäº‹ä»¶ç±»åž‹" public int nRuleSize; // 该事件类型规则é…ç½®ç»“æž„ä½“å¤§å° public CFG_RULE_COMM_INFO stuRuleCommInfo; // è§„åˆ™é€šç”¨ä¿¡æ¯ } // 应用场景, 内容与 EM_SCENE_CLASS_TYPE 一致 public static class EM_SCENE_TYPE extends SdkStructure { public static final int EM_SCENE_UNKNOW = 0; // 未知 public static final int EM_SCENE_NORMAL = 1; // "Normal" 普通场景 public static final int EM_SCENE_TRAFFIC = 2; // "Traffic" 交通场景 public static final int EM_SCENE_TRAFFIC_PATROL = 3; // "TrafficPatrol" 交通巡视 public static final int EM_SCENE_FACEDETECTION = 4; // "FaceDetection" ç›®æ ‡æ£€æµ‹/ç›®æ ‡è¯†åˆ« public static final int EM_SCENE_ATM = 5; // "ATM" public static final int EM_SCENE_INDOOR = 6; // "Indoor" 室内行为分æžï¼Œå’Œæ™®é€šè§„则相åŒï¼Œå¯¹å®¤å†…场景的算法优化版 public static final int EM_SCENE_FACERECOGNITION = 7; // "FaceRecognition" ç›®æ ‡è¯†åˆ« public static final int EM_SCENE_PS = 8; public static final int EM_SCENE_NUMBERSTAT = 9; // "NumberStat" 客æµé‡ç»Ÿè®¡ public static final int EM_SCENE_HEAT_MAP = 10; // "HeatMap" çƒåº¦å›¾ public static final int EM_SCENE_VIDEODIAGNOSIS = 11; // "VideoDiagnosis" è§†é¢‘è¯Šæ– public static final int EM_SCENE_VEHICLEANALYSE = 12; // "VehicleAnalyse" 车辆特å¾æ£€æµ‹åˆ†æž public static final int EM_SCENE_COURSERECORD = 13; // "CourseRecord" è‡ªåŠ¨å½•æ’ public static final int EM_SCENE_VEHICLE = 14; // "Vehicle" 车载场景(车载行业用,ä¸åŒäºŽæ™ºèƒ½äº¤é€šçš„Traffic) public static final int EM_SCENE_STANDUPDETECTION = 15; // "StandUpDetection" 起立检测 public static final int EM_SCENE_GATE = 16; // "Gate" å¡å£ public static final int EM_SCENE_SDFACEDETECTION = 17; // "SDFaceDetect" å¤šé¢„ç½®ç‚¹ç›®æ ‡æ£€æµ‹ï¼Œé…置一æ¡è§„则但å¯ä»¥åœ¨ä¸åŒé¢„置点下生效 public static final int EM_SCENE_HEAT_MAP_PLAN = 18; // "HeatMapPlan" çƒæœºçƒåº¦å›¾è®¡åˆ’ public static final int EM_SCENE_NUMBERSTAT_PLAN = 19; // "NumberStatPlan" çƒæœºå®¢æµé‡ç»Ÿè®¡è®¡åˆ’ public static final int EM_SCENE_ATMFD = 20; // "ATMFD"金èžç›®æ ‡æ£€æµ‹ï¼ŒåŒ…括æ£å¸¸äººè„¸ã€å¼‚常人脸ã€ç›¸é‚»äººè„¸ã€å¤´ç›”人脸ç‰é’ˆå¯¹ATM场景特殊优化 public static final int EM_SCENE_HIGHWAY = 21; // "Highway" 高速交通事件检测 public static final int EM_SCENE_CITY = 22; // "City" 城市交通事件检测 public static final int EM_SCENE_LETRACK = 23; // "LeTrack" 民用简易跟踪 public static final int EM_SCENE_SCR = 24; // "SCR"打é¶ç›¸æœº public static final int EM_SCENE_STEREO_VISION = 25; // "StereoVision"立体视觉(åŒç›®) public static final int EM_SCENE_HUMANDETECT = 26; // "HumanDetect"人体检测 public static final int EM_SCENE_FACEANALYSIS = 27; // "FaceAnalysis" 人脸分æž(åŒæ—¶æ”¯æŒç›®æ ‡æ£€æµ‹ã€ç›®æ ‡è¯†åˆ«ã€äººè„¸å±žæ€§ç‰ç»¼åˆåž‹ä¸šåŠ¡) public static final int EM_SCENE_XRAY_DETECTION = 28; // "XRayDetection" X光检测 public static final int EM_SCENE_STEREO_NUMBER = 29; // "StereoNumber" åŒç›®ç›¸æœºå®¢æµé‡ç»Ÿè®¡ public static final int EM_SCENE_CROWD_DISTRI_MAP = 30; // "CrowdDistriMap" 人群分布图 public static final int EM_SCENE_CLASS_OBJECTDETECT = 31; // "ObjectDetect"ç›®æ ‡æ£€æµ‹ public static final int EM_SCENE_FACEATTRIBUTE = 32; // "FaceAttribute" IVSSç›®æ ‡æ£€æµ‹ public static final int EM_SCENE_FACECOMPARE = 33; // "FaceCompare" IVSSç›®æ ‡è¯†åˆ« public static final int EM_SCENE_STEREO_BEHAVIOR = 34; // "StereoBehavior" 立体行为分æž(典型场景ATM舱) public static final int EM_SCENE_INTELLICITYMANAGER = 35;// "IntelliCityMgr" 智慧城管 public static final int EM_SCENE_PROTECTIVECABIN = 36; // "ProtectiveCabin" 防护舱(ATM舱内) public static final int EM_SCENE_AIRPLANEDETECT = 37; // "AirplaneDetect" 飞机行为检测 public static final int EM_SCENE_CROWDPOSTURE = 38; // "CrowdPosture" 人群æ€åŠ¿ï¼ˆäººç¾¤åˆ†å¸ƒå›¾æœåŠ¡ï¼‰ public static final int EM_SCENE_PHONECALLDETECT = 39; // "PhoneCallDetect" 打电è¯æ£€æµ‹ public static final int EM_SCENE_SMOKEDETECTION = 40; // "SmokeDetection" 烟雾检测 public static final int EM_SCENE_BOATDETECTION = 41; // "BoatDetection" 船åªæ£€æµ‹ public static final int EM_SCENE_SMOKINGDETECT = 42; // "SmokingDetect" å¸çƒŸæ£€æµ‹ public static final int EM_SCENE_WATERMONITOR = 43; // "WaterMonitor" 水利监测 public static final int EM_SCENE_GENERATEGRAPHDETECTION = 44; // GenerateGraphDetection 生æˆå›¾è§„则 public static final int EM_SCENE_TRAFFIC_PARK = 45; // "TrafficPark" 交通åœè½¦ public static final int EM_SCENE_OPERATEMONITOR = 46; // "OperateMonitor" 作业检测 public static final int EM_SCENE_INTELLI_RETAIL = 47; // "IntelliRetail" 智慧零售大类 public static final int EM_SCENE_CLASSROOM_ANALYSE = 48; // "ClassroomAnalyse" æ•™è‚²æ™ºæ…§è¯¾å ‚ public static final int EM_SCENE_FEATURE_ABSTRACT = 49; // "FeatureAbstract" 特å¾å‘é‡æå–大类 public static final int EM_SCENE_FACEBODY_DETECT = 50; // "FaceBodyDetect"人体检测 public static final int EM_SCENE_FACEBODY_ANALYSE = 51; // "FaceBodyAnalyse"人体识别 public static final int EM_SCENE_VEHICLES_DISTRI = 52; // "VehiclesDistri"车辆密度 public static final int EM_SCENE_INTELLI_BREED = 53; // "IntelliBreed" 智慧养殖检测 public static final int EM_SCENE_INTELLI_PS = 54; public static final int EM_SCENE_ELECTRIC_DETECT = 55; // "ElectricDetect" 电力检测 public static final int EM_SCENE_RADAR_DETECT = 56; // "RadarDetect" 雷检检测 public static final int EM_SCENE_PARKINGSPACE=57; // "ParkingSpace" 车ä½æ£€æµ‹å¤§ç±» public static final int EM_SCENE_INTELLI_FINANCE = 58; // "IntelliFinance" æ™ºæ…§é‡‘èž public static final int EM_SCENE_CROWD_ABNORMAL = 59; // "CrowdAbnormal" public static final int EM_SCENE_ANATOMYTEMP_DETECT = 60; // "AnatomyTempDetect" 超温检测 public static final int EM_SCENE_WEATHER_MONITOR = 61; // "WeatherMonitor"天气监控 public static final int EM_SCENE_ELEVATOR_ACCESS_CONTROL = 62;// "ElevatorAccessControl" ç”µæ¢¯é—¨ç¦ public static final int EM_SCENE_BREAK_RULE_BUILDING = 63; // "BreakRuleBuilding"è¿ç« å»ºç‘ public static final int EM_SCENE_PANORAMA_TRAFFIC = 64; // "PanoramaTraffic"全景交通 public static final int EM_SCENE_PORTRAIT_DETECT = 65; // "PortraitDetect"人åƒæ£€æµ‹ public static final int EM_SCENE_CONVEY_OR_BLOCK = 66; // "ConveyorBlock" ä¼ é€å¸¦é˜»å¡ž public static final int EM_SCENE_KITCHEN_ANIMAL = 67; // "KitchenAnimal" 厨房有害动物检测 public static final int EM_SCENE_ALLSEEINGEYE = 68; // "AllSeeingEye" 万物检测 public static final int EM_SCENE_DRIVE = 69; // "Drive" é©¾é©¶è¡Œä¸ºåˆ†æž public static final int EM_SCENE_DRIVEASSISTANT = 70; // "DriveAssistant" 高级驾驶辅助系统 public static final int EM_SCENE_INCABINMONITOR = 71; // "InCabinMonitor" 车内驾驶舱监测 public static final int EM_SCENE_BLINDSPOTDETECTION = 72; // "BlindSpotDetection" 盲区检测 public static final int EM_SCENE_CONVERYER_BELT = 73; // "ConveyerBelt" ä¼ é€å¸¦æ£€æµ‹ public static final int EM_SCENE_INTELLI_LOGISTICS = 74; // "IntelliLogistics" æ™ºæ…§ç‰©æµ public static final int EM_SCENE_SMOKE_FIRE = 75; // "SmokeFire" 烟ç«æ£€æµ‹ public static final int EM_SCENE_OBJECT_MONITOR = 76; // "ObjectMonitor" 物å“监控 public static final int EM_SCENE_FIRE_FACILITIES = 77; // "FireFacilities" 消防设施检测 public static final int EM_SCENE_FIRE_CONTROL = 78; // "IntelliFireControl" 智慧消防 public static final int EM_SCENE_INTELLI_PARKING = 79; // "IntelliParking" 智能åœè½¦ public static final int EM_SCENE_FINANCE_REGULATION = 80; // "FinanceRegulation" 金èžå¸¸è§„ public static final int EM_SCENE_ENERGY = 81; // "Energy" æ™ºæ…§èƒ½æº public static final int EM_SCENE_FIRE_CONTROL_EX = 82; // "FireControl" 智慧消防 public static final int EM_SCENE_ANIMAL_DETECTION = 83; // "AnimalDetection" 动物检测 public static final int EM_SCENE_FIRE_CONTROL_MONITOR = 84; // "FireControlMonitor" ç«è¦ç›‘控 public static final int EM_SCENE_PROTECTIVE_SUIT = 85; // "ProtectiveSuit" 防护æœæˆ–工作æœæ£€æµ‹ public static final int EM_SCENE_FISH_MONITOR = 86; // "FishMonitor" 鱼群监测 public static final int EM_SCENE_SHOPTRUCK_DETECT = 87; // "ShopTruckDetect" 工程车检测 } public static class EM_SCENE_CLASS_TYPE extends SdkStructure { public static final int EM_SCENE_CLASS_UNKNOW = 0; // 未知 public static final int EM_SCENE_CLASS_NORMAL = 1; // "Normal" 普通场景 public static final int EM_SCENE_CLASS_TRAFFIC = 2; // "Traffic" 交通场景 public static final int EM_SCENE_CLASS_TRAFFIC_PATROL = 3; // "TrafficPatrol" 交通巡视 public static final int EM_SCENE_CLASS_FACEDETECTION = 4; // "FaceDetection" ç›®æ ‡æ£€æµ‹/ç›®æ ‡è¯†åˆ« public static final int EM_SCENE_CLASS_ATM = 5; // "ATM" public static final int EM_SENCE_CLASS_INDOOR = 6; // "Indoor" 室内行为分æžï¼Œå’Œæ™®é€šè§„则相åŒï¼Œå¯¹å®¤å†…场景的算法优化版 public static final int EM_SENCE_CLASS_FACERECOGNITION = 7; // "FaceRecognition" ç›®æ ‡è¯†åˆ« public static final int EM_SENCE_CLASS_PS = 8; public static final int EM_SENCE_CLASS_NUMBERSTAT = 9; // "NumberStat" 客æµé‡ç»Ÿè®¡ public static final int EM_SENCE_CLASS_HEAT_MAP = 10; // "HeatMap" çƒåº¦å›¾ public static final int EM_SENCE_CLASS_VIDEODIAGNOSIS = 11; // "VideoDiagnosis" è§†é¢‘è¯Šæ– public static final int EM_SENCE_CLASS_VEHICLEANALYSE = 12; // "VehicleAnalyse" 车辆特å¾æ£€æµ‹åˆ†æž public static final int EM_SENCE_CLASS_COURSERECORD = 13; // "CourseRecord" è‡ªåŠ¨å½•æ’ public static final int EM_SENCE_CLASS_VEHICLE = 14; // "Vehicle" 车载场景(车载行业用,ä¸åŒäºŽæ™ºèƒ½äº¤é€šçš„Traffic) public static final int EM_SENCE_CLASS_STANDUPDETECTION = 15; // "StandUpDetection" 起立检测 public static final int EM_SCENE_CLASS_GATE = 16; // "Gate" å¡å£ public static final int EM_SCENE_CLASS_SDFACEDETECTION = 17; // "SDFaceDetect" å¤šé¢„ç½®ç‚¹ç›®æ ‡æ£€æµ‹ï¼Œé…置一æ¡è§„则但å¯ä»¥åœ¨ä¸åŒé¢„置点下生效 public static final int EM_SCENE_CLASS_HEAT_MAP_PLAN = 18; // "HeatMapPlan" çƒæœºçƒåº¦å›¾è®¡åˆ’ public static final int EM_SCENE_CLASS_NUMBERSTAT_PLAN = 19; // "NumberStatPlan" çƒæœºå®¢æµé‡ç»Ÿè®¡è®¡åˆ’ public static final int EM_SCENE_CLASS_ATMFD = 20; // "ATMFD"金èžç›®æ ‡æ£€æµ‹ï¼ŒåŒ…括æ£å¸¸äººè„¸ã€å¼‚常人脸ã€ç›¸é‚»äººè„¸ã€å¤´ç›”人脸ç‰é’ˆå¯¹ATM场景特殊优化 public static final int EM_SCENE_CLASS_HIGHWAY = 21; // "Highway" 高速交通事件检测 public static final int EM_SCENE_CLASS_CITY = 22; // "City" 城市交通事件检测 public static final int EM_SCENE_CLASS_LETRACK = 23; // "LeTrack" 民用简易跟踪 public static final int EM_SCENE_CLASS_SCR = 24; // "SCR" 打é¶ç›¸æœº public static final int EM_SCENE_CLASS_STEREO_VISION = 25; // "StereoVision" 立体视觉(åŒç›®) public static final int EM_SCENE_CLASS_HUMANDETECT = 26; // "HumanDetect"人体检测 public static final int EM_SCENE_CLASS_FACEANALYSIS = 27; // "FaceAnalysis" äººè„¸åˆ†æž public static final int EM_SCENE_CLASS_XRAY_DETECTION = 28; // "XRayDetection" X光检测 public static final int EM_SCENE_CLASS_STEREO_NUMBER = 29; // "StereoNumber" åŒç›®ç›¸æœºå®¢æµé‡ç»Ÿè®¡ public static final int EM_SCENE_CLASS_CROWDDISTRIMAP = 30; // "CrowdDistriMap"人群分布图 public static final int EM_SCENE_CLASS_OBJECTDETECT = 31; // "ObjectDetect"ç›®æ ‡æ£€æµ‹ public static final int EM_SCENE_CLASS_FACEATTRIBUTE = 32; // "FaceAttribute" IVSSç›®æ ‡æ£€æµ‹ public static final int EM_SCENE_CLASS_FACECOMPARE = 33; // "FaceCompare" IVSSç›®æ ‡è¯†åˆ« public static final int EM_SCENE_CLASS_STEREO_BEHAVIOR = 34; // "StereoBehavior" 立体行为分æž(典型场景ATM舱) public static final int EM_SCENE_CLASS_INTELLICITYMANAGER = 35; // "IntelliCityMgr" 智慧城管 public static final int EM_SCENE_CLASS_PROTECTIVECABIN = 36; // "ProtectiveCabin" 防护舱(ATM舱内) public static final int EM_SCENE_CLASS_AIRPLANEDETECT = 37; // "AirplaneDetect" 飞机行为检测 public static final int EM_SCENE_CLASS_CROWDPOSTURE = 38; // "CrowdPosture" 人群æ€åŠ¿ï¼ˆäººç¾¤åˆ†å¸ƒå›¾æœåŠ¡ï¼‰ public static final int EM_SCENE_CLASS_PHONECALLDETECT = 39; // "PhoneCallDetect" 打电è¯æ£€æµ‹ public static final int EM_SCENE_CLASS_SMOKEDETECTION = 40; // "SmokeDetection" 烟雾检测 public static final int EM_SCENE_CLASS_BOATDETECTION = 41; // "BoatDetection" 船åªæ£€æµ‹ public static final int EM_SCENE_CLASS_SMOKINGDETECT = 42; // "SmokingDetect" å¸çƒŸæ£€æµ‹ public static final int EM_SCENE_CLASS_WATERMONITOR = 43; // "WaterMonitor" 水利监测 public static final int EM_SCENE_CLASS_GENERATEGRAPHDETECTION = 44;// "GenerateGraphDetection" 生æˆå›¾è§„则 public static final int EM_SCENE_CLASS_TRAFFIC_PARK = 45; // "TrafficPark" 交通åœè½¦ public static final int EM_SCENE_CLASS_OPERATEMONITOR = 46; // "OperateMonitor" 作业检测 public static final int EM_SCENE_CLASS_INTELLI_RETAIL = 47; // IntelliRetail" 智慧零售大类 public static final int EM_SCENE_CLASS_CLASSROOM_ANALYSE = 48;// "ClassroomAnalyse" æ•™è‚²æ™ºæ…§è¯¾å ‚ public static final int EM_SCENE_CLASS_FEATURE_ABSTRACT = 49; // "FeatureAbstract" 特å¾å‘é‡æå–大类 public static final int EM_SCENE_CLASS_FACEBODY_DETECT = 50; // "FaceBodyDetect" 人åƒæ£€æµ‹å¤§ç±» public static final int EM_SCENE_CLASS_FACEBODY_ANALYSE = 51;// "FaceBodyAnalyse"人åƒè¯†åˆ«å¤§ç±» public static final int EM_SCENE_CLASS_VEHICLES_DISTRI = 52; // "VehiclesDistri" 车辆密度 public static final int EM_SCENE_CLASS_INTELLI_BREED = 53; // "IntelliBreed"智慧养殖检测 public static final int EM_SCENE_CLASS_INTELLI_PS = 54; public static final int EM_SCENE_CLASS_ELECTRIC_DETECT = 55; // "ElectricDetect" 电力检测 public static final int EM_SCENE_CLASS_RADAR_DETECT = 56; // "RadarDetect"雷达检测 public static final int EM_SCENE_CLASS_PARKINGSPACE = 57; // "ParkingSpace" 车ä½æ£€æµ‹å¤§ç±» public static final int EM_SCENE_CLASS_INTELLI_FINANCE = 58; // "IntelliFinance"æ™ºæ…§é‡‘èž public static final int EM_SCENE_CLASS_CROWD_ABNORMAL=59; // "CrowdAbnormal" 人群异常检测 public static final int EM_SCENE_CLASS_ANATOMYTEMP_DETECT = 60; // "AnatomyTempDetect" public static final int EM_CLASS_WEATHER_MONITOR = 61; // 天气监控 "WeatherMonitor" public static final int EM_SCENE_CLASS_ELEVATOR_ACCESS_CONTROL = 62; // "ElevatorAccessControl" ç”µæ¢¯é—¨ç¦ public static final int EM_SCENE_CLASS_BREAK_RULE_BUILDING = 63; // "BreakRuleBuilding"è¿ç« å»ºç‘ public static final int EM_SCENE_CLASS_PANORAMA_TRAFFIC = 64; // "PanoramaTraffic"全景交通 public static final int EM_SCENE_CLASS_PORTRAIT_DETECT = 65; // "PortraitDetect"人åƒæ£€æµ‹ public static final int EM_SCENE_CLASS_CONVEY_OR_BLOCK = 66; // "ConveyorBlock" ä¼ é€å¸¦é˜»å¡ž public static final int EM_SCENE_CLASS_KITCHEN_ANIMAL = 67; // "KitchenAnimal" 厨房有害动物检测 public static final int EM_SCENE_CLASS_ALLSEEINGEYE = 68; // "AllSeeingEye" 万物检测 public static final int EM_SCENE_CLASS_DRIVE = 69; // "Drive" é©¾é©¶è¡Œä¸ºåˆ†æž public static final int EM_SCENE_CLASS_DRIVEASSISTANT = 70; // "DriveAssistant" 高级驾驶辅助系统 public static final int EM_SCENE_CLASS_INCABINMONITOR = 71; // "InCabinMonitor" 车内驾驶舱监测 public static final int EM_SCENE_CLASS_BLINDSPOTDETECTION =72; // "BlindSpotDetection" 盲区检测 public static final int EM_SCENE_CLASS_CONVERYER_BELT = 73; // "ConveyerBelt" ä¼ é€å¸¦æ£€æµ‹ public static final int EM_SCENE_CLASS_INTELLI_LOGISTICS = 74; // "IntelliLogistics" æ™ºæ…§ç‰©æµ public static final int EM_SCENE_CLASS_SMOKE_FIRE = 75; // "SmokeFire" 烟ç«æ£€æµ‹ public static final int EM_SCENE_CLASS_OBJECT_MONITOR = 76; // "ObjectMonitor" 物å“监控 public static final int EM_SCENE_CLASS_FIRE_FACILITIES = 77; // "FireFacilities" 消防设施检测 public static final int EM_SCENE_CLASS_FIRE_CONTROL = 78; // "IntelliFireControl" 智慧消防 public static final int EM_SCENE_CLASS_INTELLI_PARKING = 79; // "IntelliParking" 智能åœè½¦ public static final int EM_SCENE_CLASS_FINANCE_REGULATION = 80; // "FinanceRegulation" 金èžå¸¸è§„ public static final int EM_SCENE_CLASS_ENERGY = 81; // "Energy" æ™ºæ…§èƒ½æº public static final int EM_SCENE_CLASS_FIRE_CONTROL_EX = 82; // "FireControl" 智慧消防 public static final int EM_SCENE_CLASS_ANIMAL_DETECTION = 83; // "AnimalDetection" 动物检测 public static final int EM_SCENE_CLASS_FIRE_CONTROL_MONITOR = 84; // "FireControlMonitor" ç«è¦ç›‘控 public static final int EM_SCENE_CLASS_PROTECTIVE_SUIT =85; // "ProtectiveSuit" 防护æœæˆ–工作æœæ£€æµ‹ public static final int EM_SCENE_CLASS_FISH_MONITOR = 86; // "FishMonitor" 鱼群监测 public static final int EM_SCENE_CLASS_SHOPTRUCK_DETECT = 87; // "ShopTruckDetect"工程车检测 } //åŒºåŸŸé¡¶ç‚¹ä¿¡æ¯ public static class CFG_POLYGON extends SdkStructure { public int nX;//0~8191 public int nY; } //åŒºåŸŸä¿¡æ¯ public static class CFG_REGION extends SdkStructure { public int nPointNum; public CFG_POLYGON[] stuPolygon = (CFG_POLYGON[])new CFG_POLYGON().toArray(MAX_POLYGON_NUM); } public static class CFG_SIZE_Attribute extends Union { public float nWidth;//宽 public float nArea;//é¢ç§¯ } //Size public static class CFG_SIZE extends SdkStructure { public CFG_SIZE_Attribute attr=new CFG_SIZE_Attribute(); public float nHeight;//高 } public static class NET_SIZE extends SdkStructure { public int nWidth; // 宽度 public int nHeight; // 高度 } //æ ¡å‡†æ¡†ä¿¡æ¯ public static class CFG_CALIBRATEBOX_INFO extends SdkStructure { public CFG_POLYGON stuCenterPoint;//æ ¡å‡†æ¡†ä¸å¿ƒç‚¹åæ ‡(点的åæ ‡å½’ä¸€åŒ–åˆ°[0,8191]区间) public float fRatio;//ç›¸å¯¹åŸºå‡†æ ¡å‡†æ¡†çš„æ¯”çŽ‡(比如1表示基准框大å°ï¼Œ0.5表示基准框大å°çš„一åŠ) } //尺寸过滤器 public static class CFG_SIZEFILTER_INFO extends SdkStructure { public int nCalibrateBoxNum;//æ ¡å‡†æ¡†ä¸ªæ•° public CFG_CALIBRATEBOX_INFO[] stuCalibrateBoxs = (CFG_CALIBRATEBOX_INFO[])new CFG_CALIBRATEBOX_INFO().toArray(MAX_CALIBRATEBOX_NUM);//æ ¡å‡†æ¡†(è¿œç«¯è¿‘ç«¯æ ‡å®šæ¨¡å¼ä¸‹æœ‰æ•ˆ) public byte bMeasureModeEnable;//计é‡æ–¹å¼å‚数是å¦æœ‰æ•ˆï¼Œ 类型bool, å–值0或1 public byte bMeasureMode;//计é‡æ–¹å¼,0-åƒç´ ,ä¸éœ€è¦è¿œç«¯ã€è¿‘ç«¯æ ‡å®š,1-实际长度,å•ä½ï¼šç±³,2-è¿œç«¯è¿‘ç«¯æ ‡å®šåŽçš„åƒç´ public byte bFilterTypeEnable;//过滤类型å‚数是å¦æœ‰æ•ˆï¼Œ 类型bool, å–值0或1 // ByArea,ByRatio仅作兼容,使用独立的ByAreaå’ŒByRatio选项代替 2012/03/06 public byte bFilterType;//过滤类型:0:"ByLength",1:"ByArea",2"ByWidthHeight" public byte[] bReserved=new byte[2]; // ä¿ç•™å—段 public byte bFilterMinSizeEnable;//物体最å°å°ºå¯¸å‚数是å¦æœ‰æ•ˆï¼Œ 类型bool, å–值0或1 public byte bFilterMaxSizeEnable;//物体最大尺寸å‚数是å¦æœ‰æ•ˆï¼Œ 类型bool, å–值0或1 public CFG_SIZE stuFilterMinSize;//物体最å°å°ºå¯¸"ByLength"模å¼ä¸‹è¡¨ç¤ºå®½é«˜çš„尺寸,"ByArea"模å¼ä¸‹å®½è¡¨ç¤ºé¢ç§¯ï¼Œé«˜æ— 效(è¿œç«¯è¿‘ç«¯æ ‡å®šæ¨¡å¼ä¸‹è¡¨ç¤ºåŸºå‡†æ¡†çš„宽高尺寸)。 public CFG_SIZE stuFilterMaxSize;//物体最大尺寸"ByLength"模å¼ä¸‹è¡¨ç¤ºå®½é«˜çš„尺寸,"ByArea"模å¼ä¸‹å®½è¡¨ç¤ºé¢ç§¯ï¼Œé«˜æ— 效(è¿œç«¯è¿‘ç«¯æ ‡å®šæ¨¡å¼ä¸‹è¡¨ç¤ºåŸºå‡†æ¡†çš„宽高尺寸)。 public byte abByArea;//类型bool, å–值0或1 public byte abMinArea;//类型bool, å–值0或1 public byte abMaxArea;//类型bool, å–值0或1 public byte abMinAreaSize;//类型bool, å–值0或1 public byte abMaxAreaSize;//类型bool, å–值0或1 public byte bByArea;//是å¦æŒ‰é¢ç§¯è¿‡æ»¤é€šè¿‡èƒ½åŠ›ComplexSizeFilter判æ–是å¦å¯ç”¨ï¼Œ 类型bool, å–值0或1 public byte[] bReserved1 = new byte[2]; // è¡¥é½ public float nMinArea;//最å°é¢ç§¯ public float nMaxArea;//最大é¢ç§¯ public CFG_SIZE stuMinAreaSize;//最å°é¢ç§¯çŸ©å½¢æ¡†å°ºå¯¸"计é‡æ–¹å¼"为"åƒç´ "时,表示最å°é¢ç§¯çŸ©å½¢æ¡†çš„宽高尺寸;"计é‡æ–¹å¼"为"è¿œç«¯è¿‘ç«¯æ ‡å®šæ¨¡å¼"时,表示基准框的最å°å®½é«˜å°ºå¯¸ï¼› public CFG_SIZE stuMaxAreaSize;//最大é¢ç§¯çŸ©å½¢æ¡†å°ºå¯¸,åŒä¸Š public byte abByRatio;//类型bool, å–值0或1 public byte abMinRatio;//类型bool, å–值0或1 public byte abMaxRatio;//类型bool, å–值0或1 public byte abMinRatioSize;//类型bool, å–值0或1 public byte abMaxRatioSize;//类型bool, å–值0或1 public byte bByRatio;//是å¦æŒ‰å®½é«˜æ¯”过滤通过能力ComplexSizeFilter判æ–是å¦å¯ç”¨ï¼Œ 类型bool, å–值0或1 public byte[] bReserved2 = new byte[6]; public double dMinRatio;//最å°å®½é«˜æ¯” public double dMaxRatio;//最大宽高比 public CFG_SIZE stuMinRatioSize;//最å°å®½é«˜æ¯”矩形框尺寸,最å°å®½é«˜æ¯”对应矩形框的宽高尺寸。 public CFG_SIZE stuMaxRatioSize;//最大宽高比矩形框尺寸,åŒä¸Š public byte nAreaCalibrateBoxNum;//é¢ç§¯æ ¡å‡†æ¡†ä¸ªæ•° public CFG_CALIBRATEBOX_INFO[] stuAreaCalibrateBoxs = (CFG_CALIBRATEBOX_INFO[])new CFG_CALIBRATEBOX_INFO().toArray(MAX_CALIBRATEBOX_NUM);//é¢ç§¯æ ¡å‡†æ¡† public byte nRatioCalibrateBoxs;//å®½é«˜æ ¡å‡†æ¡†ä¸ªæ•° public CFG_CALIBRATEBOX_INFO[] stuRatioCalibrateBoxs = (CFG_CALIBRATEBOX_INFO[])new CFG_CALIBRATEBOX_INFO().toArray(MAX_CALIBRATEBOX_NUM);//å®½é«˜æ ¡å‡†æ¡† public byte abBySize;//长宽过滤使能å‚数是å¦æœ‰æ•ˆï¼Œ 类型bool, å–值0或1 public byte bBySize;//长宽过滤使能, 类型bool, å–值0或1 public byte[] bReserved3=new byte[6]; // ä¿ç•™å—段 } //å„ç§ç‰©ä½“特定的过滤器 public static class CFG_OBJECT_SIZEFILTER_INFO extends SdkStructure { public byte[] szObjectType = new byte[MAX_NAME_LEN];//物体类型 public CFG_SIZEFILTER_INFO stSizeFilter;//对应的尺寸过滤器 } //特殊区域的属性类型 public static class EM_SEPCIALREGION_PROPERTY_TYPE extends SdkStructure { public static final int EM_SEPCIALREGION_PROPERTY_TYPE_HIGHLIGHT = 1;//高亮,键盘检测区域具有æ¤ç‰¹æ€§ public static final int EM_SEPCIALREGION_PROPERTY_TYPE_REGULARBLINK = 2; //规律的闪çƒï¼Œæ’å¡åŒºåŸŸå…·æœ‰æ¤ç‰¹æ€§ public static final int EM_SEPCIALREGION_PROPERTY_TYPE_IREGULARBLINK = 3; //ä¸è§„律的闪çƒï¼Œå±å¹•åŒºåŸŸå…·æœ‰æ¤ç‰¹æ€§ public static final int EM_SEPCIALREGION_PROPERTY_TYPE_NUM = 4; } //特殊检测区,是指从检测区ä¸åŒºåˆ†å‡ºæ¥ï¼Œæœ‰ç‰¹æ®Šæ£€æµ‹å±žæ€§çš„区域 public static class CFG_SPECIALDETECT_INFO extends SdkStructure { public int nDetectNum;//检测区域顶点数 public CFG_POLYGON[] stDetectRegion = (CFG_POLYGON[])new CFG_POLYGON().toArray(MAX_POLYGON_NUM);//检测区域 public int nPropertyNum;//特殊检测区属性个数 public int[] nPropertys = new int[EM_SEPCIALREGION_PROPERTY_TYPE.EM_SEPCIALREGION_PROPERTY_TYPE_NUM];//特殊检测区属性 } //å„类物体的å类型 public static class CFG_CATEGORY_TYPE extends SdkStructure { public static final int CFG_CATEGORY_TYPE_UNKNOW = 0; //未知类型 //车型相关å类别 public static final int CFG_CATEGORY_VEHICLE_TYPE_MOTOR = 1; //"Motor"机动车 public static final int CFG_CATEGORY_VEHICLE_TYPE_NON_MOTOR = 2; //"Non-Motor"éžæœºåŠ¨è½¦ public static final int CFG_CATEGORY_VEHICLE_TYPE_BUS = 3; //"Bus"公交车 public static final int CFG_CATEGORY_VEHICLE_TYPE_BICYCLE = 4; //"Bicycle"自行车 public static final int CFG_CATEGORY_VEHICLE_TYPE_MOTORCYCLE = 5; //"Motorcycle"摩托车 public static final int CFG_CATEGORY_VEHICLE_TYPE_UNLICENSEDMOTOR = 6; //"UnlicensedMotor":æ— ç‰ŒæœºåŠ¨è½¦ public static final int CFG_CATEGORY_VEHICLE_TYPE_LARGECAR = 7; //"LargeCar"大型汽车 public static final int CFG_CATEGORY_VEHICLE_TYPE_MICROCAR = 8; //"MicroCar"å°åž‹æ±½è½¦ public static final int CFG_CATEGORY_VEHICLE_TYPE_EMBASSYCAR = 9; //"EmbassyCar"使馆汽车 public static final int CFG_CATEGORY_VEHICLE_TYPE_MARGINALCAR = 10; //"MarginalCar"领馆汽车 public static final int CFG_CATEGORY_VEHICLE_TYPE_AREAOUTCAR = 11; //"AreaoutCar"境外汽车 public static final int CFG_CATEGORY_VEHICLE_TYPE_FOREIGNCAR = 12; //"ForeignCar"外ç±æ±½è½¦ public static final int CFG_CATEGORY_VEHICLE_TYPE_DUALTRIWHEELMOTORCYCLE = 13; //"DualTriWheelMotorcycle"两ã€ä¸‰è½®æ‘©æ‰˜è½¦ public static final int CFG_CATEGORY_VEHICLE_TYPE_LIGHTMOTORCYCLE = 14; //"LightMotorcycle"轻便摩托车 public static final int CFG_CATEGORY_VEHICLE_TYPE_EMBASSYMOTORCYCLE = 15 ; //"EmbassyMotorcycle"使馆摩托车 public static final int CFG_CATEGORY_VEHICLE_TYPE_MARGINALMOTORCYCLE = 16; //"MarginalMotorcycle"领馆摩托车 public static final int CFG_CATEGORY_VEHICLE_TYPE_AREAOUTMOTORCYCLE = 17; //"AreaoutMotorcycle"境外摩托车 public static final int CFG_CATEGORY_VEHICLE_TYPE_FOREIGNMOTORCYCLE = 18; //"ForeignMotorcycle"外ç±æ‘©æ‰˜è½¦ public static final int CFG_CATEGORY_VEHICLE_TYPE_FARMTRANSMITCAR = 19; //"FarmTransmitCar"农用è¿è¾“车 public static final int CFG_CATEGORY_VEHICLE_TYPE_TRACTOR = 20; //"Tractor"拖拉机 public static final int CFG_CATEGORY_VEHICLE_TYPE_TRAILER = 21; //"Trailer"挂车 public static final int CFG_CATEGORY_VEHICLE_TYPE_COACHCAR = 22; //"CoachCar"教练汽车 public static final int CFG_CATEGORY_VEHICLE_TYPE_COACHMOTORCYCLE = 23; //"CoachMotorcycle"教练摩托车 public static final int CFG_CATEGORY_VEHICLE_TYPE_TRIALCAR = 24; //"TrialCar"试验汽车 public static final int CFG_CATEGORY_VEHICLE_TYPE_TRIALMOTORCYCLE = 25; //"TrialMotorcycle"试验摩托车 public static final int CFG_CATEGORY_VEHICLE_TYPE_TEMPORARYENTRYCAR = 26; //"TemporaryEntryCar"临时入境汽车 public static final int CFG_CATEGORY_VEHICLE_TYPE_TEMPORARYENTRYMOTORCYCLE = 27; //"TemporaryEntryMotorcycle"临时入境摩托车 public static final int CFG_CATEGORY_VEHICLE_TYPE_TEMPORARYSTEERCAR = 28; //"TemporarySteerCar"临时行驶车 public static final int CFG_CATEGORY_VEHICLE_TYPE_PASSENGERCAR = 29; //"PassengerCar"客车 public static final int CFG_CATEGORY_VEHICLE_TYPE_LARGETRUCK = 30; //"LargeTruck"大货车 public static final int CFG_CATEGORY_VEHICLE_TYPE_MIDTRUCK =31 ; //"MidTruck"ä¸è´§è½¦ public static final int CFG_CATEGORY_VEHICLE_TYPE_SALOONCAR = 32; //"SaloonCar"轿车 public static final int CFG_CATEGORY_VEHICLE_TYPE_MICROBUS = 33; //"Microbus"é¢åŒ…车 public static final int CFG_CATEGORY_VEHICLE_TYPE_MICROTRUCK = 34; //"MicroTruck"å°è´§è½¦ public static final int CFG_CATEGORY_VEHICLE_TYPE_TRICYCLE = 35; //"Tricycle"三轮车 public static final int CFG_CATEGORY_VEHICLE_TYPE_PASSERBY = 36; //"Passerby"行人 //车牌相关å类别 public static final int CFG_CATEGORY_PLATE_TYPE_NORMAL = 37; //"Normal"è“ç‰Œé»‘å— public static final int CFG_CATEGORY_PLATE_TYPE_YELLOW = 38; //"Yellow"黄牌 public static final int CFG_CATEGORY_PLATE_TYPE_DOUBLEYELLOW = 39; //"DoubleYellow"åŒå±‚黄尾牌 public static final int CFG_CATEGORY_PLATE_TYPE_POLICE = 40; //"Police"è¦ç‰Œ public static final int CFG_CATEGORY_PLATE_TYPE_WJ = 41; // public static final int CFG_CATEGORY_PLATE_TYPE_OUTERGUARD = 42; // public static final int CFG_CATEGORY_PLATE_TYPE_DOUBLEOUTERGUARD = 43; // public static final int CFG_CATEGORY_PLATE_TYPE_SAR = 44; //"SAR"港澳特区å·ç‰Œ public static final int CFG_CATEGORY_PLATE_TYPE_TRAINNING = 45; //"Trainning"教练车å·ç‰Œ public static final int CFG_CATEGORY_PLATE_TYPE_PERSONAL = 46; //"Personal"个性å·ç‰Œ public static final int CFG_CATEGORY_PLATE_TYPE_AGRI = 47; //"Agri"农用牌 public static final int CFG_CATEGORY_PLATE_TYPE_EMBASSY = 48; //"Embassy"使馆å·ç‰Œ public static final int CFG_CATEGORY_PLATE_TYPE_MOTO = 49; //"Moto"摩托车å·ç‰Œ public static final int CFG_CATEGORY_PLATE_TYPE_TRACTOR = 50; //"Tractor"拖拉机å·ç‰Œ public static final int CFG_CATEGORY_PLATE_TYPE_OFFICIALCAR = 51; //"OfficialCar"公务车 public static final int CFG_CATEGORY_PLATE_TYPE_PERSONALCAR = 52; //"PersonalCar"ç§å®¶è½¦ public static final int CFG_CATEGORY_PLATE_TYPE_WARCAR = 53; // public static final int CFG_CATEGORY_PLATE_TYPE_OTHER = 54; //"Other"其他å·ç‰Œ public static final int CFG_CATEGORY_PLATE_TYPE_CIVILAVIATION = 55; //"Civilaviation"民航å·ç‰Œ public static final int CFG_CATEGORY_PLATE_TYPE_BLACK = 56; //"Black"黑牌 } //ä¸åŒåŒºåŸŸå„ç§ç±»åž‹ç‰©ä½“的检测模å—é…ç½® public static class CFG_MODULE_INFO extends SdkStructure { // ä¿¡æ¯ public byte[] szObjectType = new byte[MAX_NAME_LEN];//默认物体类型,详è§"支æŒçš„检测物体类型列表" public byte bSnapShot;//是å¦å¯¹è¯†åˆ«ç‰©ä½“抓图,类型bool,å–值0或1 public byte bSensitivity;//çµæ•åº¦,å–值1-10,值越å°çµæ•åº¦è¶Šä½Ž public byte bMeasureModeEnable;//计é‡æ–¹å¼å‚数是å¦æœ‰æ•ˆï¼Œç±»åž‹bool,å–值0或1 public byte bMeasureMode;//计é‡æ–¹å¼,0-åƒç´ ,ä¸éœ€è¦è¿œç«¯ã€è¿‘ç«¯æ ‡å®š,1-实际长度,å•ä½ï¼šç±³,2-è¿œç«¯è¿‘ç«¯æ ‡å®šåŽçš„åƒç´ public int nDetectRegionPoint;//检测区域顶点数 public CFG_POLYGON[] stuDetectRegion = (CFG_POLYGON[])new CFG_POLYGON().toArray(MAX_POLYGON_NUM);//检测区域 public int nTrackRegionPoint;//跟踪区域顶点数 public CFG_POLYGON[] stuTrackRegion = (CFG_POLYGON[])new CFG_POLYGON().toArray(MAX_POLYGON_NUM);//跟踪区域 public byte bFilterTypeEnable;//过滤类型å‚数是å¦æœ‰æ•ˆï¼Œç±»åž‹bool,å–值0或1 // ByArea,ByRatio仅作兼容使枚懒⒌腂yAreaå’ŒByRatio选项代替 2012/03/06 public byte nFilterType;//过滤类型:0:"ByLength",1:"ByArea",2:"ByWidthHeight",3:"ByRatio": public byte bBackgroudEnable;//区域的背景类型å‚数是å¦æœ‰æ•ˆï¼Œç±»åž‹bool,å–值0或1 public byte bBackgroud;//区域的背景类型,0-普通类型,1-高光类型 public byte abBySize;//长宽过滤使能å‚数是å¦æœ‰æ•ˆï¼Œç±»åž‹bool,å–值0或1 public byte bBySize;//长宽过滤使能,类型bool,å–值0或1 public byte bFilterMinSizeEnable;//物体最å°å°ºå¯¸å‚数是å¦æœ‰æ•ˆï¼Œç±»åž‹bool,å–值0或1 public byte bFilterMaxSizeEnable;//物体最大尺寸å‚数是å¦æœ‰æ•ˆï¼Œç±»åž‹bool,å–值0或1 public CFG_SIZE stuFilterMinSize;//物体最å°å°ºå¯¸"ByLength"模å¼ä¸‹è¡¨ç¤ºå®½é«˜çš„尺寸,"ByArea"模å¼ä¸‹å®½è¡¨ç¤ºé¢ç§¯ï¼Œé«˜æ— 效。 public CFG_SIZE stuFilterMaxSize;//物体最大尺寸"ByLength"模å¼ä¸‹è¡¨ç¤ºå®½é«˜çš„尺寸,"ByArea"模å¼ä¸‹å®½è¡¨ç¤ºé¢ç§¯ï¼Œé«˜æ— 效。 public int nExcludeRegionNum;//排除区域数 public CFG_REGION[] stuExcludeRegion = (CFG_REGION[])new CFG_REGION().toArray(MAX_EXCLUDEREGION_NUM);//排除区域 public int nCalibrateBoxNum;//æ ¡å‡†æ¡†ä¸ªæ•° public CFG_CALIBRATEBOX_INFO[] stuCalibrateBoxs = (CFG_CALIBRATEBOX_INFO[])new CFG_CALIBRATEBOX_INFO().toArray(MAX_CALIBRATEBOX_NUM);//æ ¡å‡†æ¡†(è¿œç«¯è¿‘ç«¯æ ‡å®šæ¨¡å¼ä¸‹æœ‰æ•ˆ) public byte bAccuracy;//检测精度是å¦æœ‰æ•ˆï¼Œç±»åž‹bool,å–值0或1 public byte byAccuracy;//检测精度 public byte bMovingStep;//算法移动æ¥é•¿æ˜¯å¦æœ‰æ•ˆï¼Œç±»åž‹bool,å–值0或1 public byte byMovingStep;//算法移动æ¥é•¿ public byte bScalingFactor;//ç®—æ³•ç¼©æ”¾å› å是å¦æœ‰æ•ˆï¼Œç±»åž‹bool,å–值0或1 public byte byScalingFactor;//ç®—æ³•ç¼©æ”¾å› å public byte[] bReserved2 = new byte[1];//ä¿ç•™å—段 public byte abDetectBalance;//æ¼æ£€å’Œè¯¯æ£€å¹³è¡¡å‚数是å¦æœ‰æ•ˆï¼Œç±»åž‹bool,å–值0或1 public int nDetectBalance;//æ¼æ£€å’Œè¯¯æ£€å¹³è¡¡0-折ä¸æ¨¡å¼(默认)1-æ¼æ£€æ›´å°‘2-误检更少 public byte abByRatio;//类型bool,å–值0或1 public byte abMinRatio;;//类型bool,å–值0或1 public byte abMaxRatio;;//类型bool,å–值0或1 public byte abMinAreaSize;;//类型bool,å–值0或1 public byte abMaxAreaSize;;//类型bool,å–值0或1 public byte bByRatio;//是å¦æŒ‰å®½é«˜æ¯”过滤通过能力ComplexSizeFilter判æ–是å¦å¯ç”¨å¯ä»¥å’ŒnFilterTypeå¤ç”¨ï¼Œç±»åž‹bool,å–值0或1 public byte byLowDetectSensitivity; // 车辆检测低çµæ•åº¦, å–值1~100 public byte byHighDetectSensitivity;// 车辆检测高çµæ•åº¦, å–值1~100 public double dMinRatio;//最å°å®½é«˜æ¯” public double dMaxRatio;//最大宽高比 public CFG_SIZE stuMinAreaSize;//最å°é¢ç§¯çŸ©å½¢æ¡†å°ºå¯¸"计é‡æ–¹å¼"为"åƒç´ "时,表示最å°é¢ç§¯çŸ©å½¢æ¡†çš„宽高尺寸;"计é‡æ–¹å¼"为"è¿œç«¯è¿‘ç«¯æ ‡å®šæ¨¡å¼"时,表示基准框的最å°å®½é«˜å°ºå¯¸ï¼› public CFG_SIZE stuMaxAreaSize;//最大é¢ç§¯çŸ©å½¢æ¡†å°ºå¯¸,åŒä¸Š public byte abByArea;//类型bool,å–值0或1 public byte abMinArea;//类型bool,å–值0或1 public byte abMaxArea;//类型bool,å–值0或1 public byte abMinRatioSize;//类型bool,å–值0或1 public byte abMaxRatioSize;//类型bool,å–值0或1 public byte bByArea;//是å¦æŒ‰é¢ç§¯è¿‡æ»¤é€šè¿‡èƒ½åŠ›ComplexSizeFilter判æ–是å¦å¯ç”¨å¯ä»¥å’ŒnFilterTypeå¤ç”¨ï¼Œç±»åž‹bool,å–值0或1 public byte[] bReserved3 = new byte[2]; public float nMinArea;//最å°é¢ç§¯ public float nMaxArea;//最大é¢ç§¯ public CFG_SIZE stuMinRatioSize;//最å°å®½é«˜æ¯”矩形框尺寸,最å°å®½é«˜æ¯”对应矩形框的宽高尺寸。 public CFG_SIZE stuMaxRatioSize;//最大宽高比矩形框尺寸,åŒä¸Š public int nAreaCalibrateBoxNum;//é¢ç§¯æ ¡å‡†æ¡†ä¸ªæ•° public CFG_CALIBRATEBOX_INFO[] stuAreaCalibrateBoxs = (CFG_CALIBRATEBOX_INFO[])new CFG_CALIBRATEBOX_INFO().toArray(MAX_CALIBRATEBOX_NUM);//é¢ç§¯æ ¡å‡†æ¡† public int nRatioCalibrateBoxs;//æ¯”ä¾‹æ ¡å‡†æ¡†ä¸ªæ•° public CFG_CALIBRATEBOX_INFO[] stuRatioCalibrateBoxs = (CFG_CALIBRATEBOX_INFO[])new CFG_CALIBRATEBOX_INFO().toArray(MAX_CALIBRATEBOX_NUM);//æ¯”ä¾‹æ ¡å‡†æ¡†ä¸ªæ•° public byte bAntiDisturbance;//是å¦å¼€å¯åŽ»æ‰°åŠ¨æ¨¡å—,类型bool,å–值0或1 public byte bBacklight;//是å¦æœ‰é€†å…‰ï¼Œç±»åž‹bool,å–值0或1 public byte bShadow;//是å¦æœ‰é˜´å½±ï¼Œç±»åž‹bool,å–值0或1 public byte bContourAssistantTrack;//是å¦å¼€å¯è½®å»“è¾…åŠ©è·Ÿè¸ªï¼Œä¾‹ï¼šåœ¨ç›®æ ‡è¯†åˆ«æ—¶å¯ä»¥é€šè¿‡è·Ÿè¸ªäººä½“æ¥è¾…助识别脸,类型bool,å–值0或1 public int nPtzPresetId;//云å°é¢„置点,0~255,0表示固定场景,忽略预置点。大于0表示在æ¤é¢„置点时模å—有效 public int nObjectFilterNum;//物体特定的过滤器个数 public CFG_OBJECT_SIZEFILTER_INFO[] stObjectFilter= (CFG_OBJECT_SIZEFILTER_INFO[])new CFG_OBJECT_SIZEFILTER_INFO().toArray(MAX_OBJECT_LIST_SIZE);//ç‰©ä½“ç‰¹å®šçš„è¿‡æ»¤å™¨ä¿¡æ¯ public int abObjectImageSize; //BOOL类型,å–值0或1 public CFG_SIZE stObjectImageSize;//ä¿è¯ç‰©ä½“图åƒå°ºå¯¸ç›¸åŒ,å•ä½æ˜¯åƒç´ ,ä¸æ”¯æŒå°æ•°ï¼Œå–值:>=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 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_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 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;i<stuTimeSectionWeekDay.length;i++){ stuTimeSectionWeekDay[i]=new CFG_TIME_SECTION(); } } } // 报è¦è”åŠ¨ä¿¡æ¯ public static class CFG_ALARM_MSG_HANDLE extends SdkStructure { /** 能力 */ public byte abRecordMask; public byte abRecordEnable; public byte abRecordLatch; public byte abAlarmOutMask; public byte abAlarmOutEn; public byte abAlarmOutLatch; public byte abExAlarmOutMask; public byte abExAlarmOutEn; public byte abPtzLinkEn; public byte abTourMask; public byte abTourEnable; public byte abSnapshot; public byte abSnapshotEn; public byte abSnapshotPeriod; public byte abSnapshotTimes; public byte abTipEnable; public byte abMailEnable; public byte abMessageEnable; public byte abBeepEnable; public byte abVoiceEnable; public byte abMatrixMask; public byte abMatrixEnable; public byte abEventLatch; public byte abLogEnable; public byte abDelay; public byte abVideoMessageEn; public byte abMMSEnable; public byte abMessageToNetEn; public byte abTourSplit; public byte abSnapshotTitleEn; public byte abChannelCount; public byte abAlarmOutCount; public byte abPtzLinkEx; public byte abSnapshotTitle; public byte abMailDetail; public byte abVideoTitleEn; public byte abVideoTitle; public byte abTour; public byte abDBKeys; public byte abJpegSummary; public byte abFlashEn; public byte abFlashLatch; /** è¡¥é½ */ public byte[] byReserved1=new byte[2]; /** 设备的视频通é“æ•° */ public int nChannelCount; /** 设备的报è¦è¾“出个数 */ public int nAlarmOutCount; /** 录åƒé€šé“掩ç (按ä½) */ public int[] dwRecordMask=new int[16]; /** 录åƒä½¿èƒ½ */ public int bRecordEnable; /** 录åƒå»¶æ—¶æ—¶é—´(秒) */ public int nRecordLatch; /** 报è¦è¾“出通é“掩ç */ public int[] dwAlarmOutMask=new int[16]; /** 报è¦è¾“出使能 */ public int bAlarmOutEn; /** 报è¦è¾“出延时时间(秒) */ public int nAlarmOutLatch; /** 扩展报è¦è¾“出通é“掩ç */ public int[] dwExAlarmOutMask=new int[16]; /** 扩展报è¦è¾“出使能 */ public int bExAlarmOutEn; /** 云å°è”动项 */ public CFG_PTZ_LINK[] stuPtzLink=new CFG_PTZ_LINK[256]; /** 云å°è”动使能 */ public int bPtzLinkEn; /** 轮询通é“掩ç */ public int[] dwTourMask=new int[16]; /** 轮询使能 */ public int bTourEnable; /** 快照通é“å·æŽ©ç */ public int[] dwSnapshot=new int[16]; /** 快照使能 */ public int bSnapshotEn; /** è¿žæ‹å‘¨æœŸ(秒) */ public int nSnapshotPeriod; /** è¿žæ‹æ¬¡æ•° */ public int nSnapshotTimes; /** 本地消æ¯æ¡†æ示 */ public int bTipEnable; /** å‘é€é‚®ä»¶ï¼Œå¦‚果有图片,作为附件 */ public int bMailEnable; /** ä¸Šä¼ åˆ°æŠ¥è¦æœåŠ¡å™¨ */ public int bMessageEnable; /** 蜂鸣 */ public int bBeepEnable; /** è¯éŸ³æ示 */ public int bVoiceEnable; /** è”动视频矩阵通é“掩ç */ public int[] dwMatrixMask=new int[16]; /** è”动视频矩阵 */ public int bMatrixEnable; /** è”动开始延时时间(秒),0ï¼15 */ public int nEventLatch; /** 是å¦è®°å½•æ—¥å¿— */ public int bLogEnable; /** 设置时先延时å†ç”Ÿæ•ˆï¼Œå•ä½ä¸ºç§’ */ public int nDelay; /** å åŠ æ示å—幕到视频。å åŠ çš„å—幕包括事件类型,通é“å·ï¼Œç§’计时。 */ public int bVideoMessageEn; /** å‘é€å½©ä¿¡ä½¿èƒ½ */ public int bMMSEnable; /** 消æ¯ä¸Šä¼ 给网络使能 */ public int bMessageToNetEn; /** è½®å·¡æ—¶çš„åˆ†å‰²æ¨¡å¼ 0: 1ç”»é¢; 1: 8ç”»é¢ */ public int nTourSplit; /** 是å¦å åŠ å›¾ç‰‡æ ‡é¢˜ */ public int bSnapshotTitleEn; /** 云å°é…置数 */ public int nPtzLinkExNum; /** 扩展云å°ä¿¡æ¯ */ public CFG_PTZ_LINK_EX[] stuPtzLinkEx=new CFG_PTZ_LINK_EX[256]; /** å›¾ç‰‡æ ‡é¢˜å†…å®¹æ•° */ public int nSnapTitleNum; /** å›¾ç‰‡æ ‡é¢˜å†…å®¹ */ public CFG_EVENT_TITLE[] stuSnapshotTitle=new CFG_EVENT_TITLE[256]; /** 邮件详细内容 */ public CFG_MAIL_DETAIL stuMailDetail=new CFG_MAIL_DETAIL(); /** 是å¦å åŠ è§†é¢‘æ ‡é¢˜ï¼Œä¸»è¦æŒ‡ä¸»ç æµ */ public int bVideoTitleEn; /** è§†é¢‘æ ‡é¢˜å†…å®¹æ•°ç›® */ public int nVideoTitleNum; /** è§†é¢‘æ ‡é¢˜å†…å®¹ */ public CFG_EVENT_TITLE[] stuVideoTitle=new CFG_EVENT_TITLE[256]; /** 轮询è”动数目 */ public int nTourNum; /** 轮询è”动é…ç½® */ public CFG_TOURLINK[] stuTour=new CFG_TOURLINK[256]; /** 指定数æ®åº“关键å—的有效数 */ public int nDBKeysNum; /** 指定事件详细信æ¯é‡Œéœ€è¦å†™åˆ°æ•°æ®åº“çš„å…³é”®å— */ public byte[] szDBKeys=new byte[64*64]; /** å åŠ åˆ°JPEG图片的摘è¦ä¿¡æ¯ */ public byte[] byJpegSummary=new byte[1024]; /** 是å¦ä½¿èƒ½è¡¥å…‰ç¯ */ public int bFlashEnable; /** 补光ç¯å»¶æ—¶æ—¶é—´(秒),延时时间范围:[10,300] */ public int nFlashLatch; public byte abAudioFileName; public byte abAlarmBellEn; public byte abAccessControlEn; public byte abAccessControl; /** è”动è¯éŸ³æ–‡ä»¶ç»å¯¹è·¯å¾„ */ public byte[] szAudioFileName=new byte[MAX_PATH]; /** è¦å·ä½¿èƒ½ */ public int bAlarmBellEn; /** é—¨ç¦ä½¿èƒ½ */ public int bAccessControlEn; /** é—¨ç¦ç»„æ•° */ public int dwAccessControl; /** é—¨ç¦è”动æ“ä½œä¿¡æ¯ */ public int[] emAccessControlType=new int[8]; public byte abTalkBack; /** è¡¥é½ */ public byte[] byReserved2=new byte[3]; /** è¯éŸ³å‘¼å«è”åŠ¨ä¿¡æ¯ */ public CFG_TALKBACK_INFO stuTalkback=new CFG_TALKBACK_INFO(); public byte abPSTNAlarmServer; /** è¡¥é½ */ public byte[] byReserved3=new byte[3]; /** 电è¯æŠ¥è¦ä¸å¿ƒè”åŠ¨ä¿¡æ¯ */ public CFG_PSTN_ALARM_SERVER stuPSTNAlarmServer=new CFG_PSTN_ALARM_SERVER(); /** 事件å“应时间表 */ public CFG_TIME_SCHEDULE stuTimeSection=new CFG_TIME_SCHEDULE(); public byte abAlarmBellLatch; /** è¡¥é½ */ public byte[] byReserved4=new byte[3]; /** è¦å·è¾“出延时时间(10-300秒) */ public int nAlarmBellLatch; public byte abAudioPlayTimes; public byte abAudioLinkTime; /** è¡¥é½ */ public byte[] byReserved5=new byte[2]; /** è”动è¯éŸ³æ’放次数 */ public int nAudioPlayTimes; /** è”动è¯éŸ³æ’放的时间, å•ä½ï¼šç§’ */ public int nAudioLinkTime; /** nAlarmOutTime 是å¦æœ‰æ•ˆ */ public byte abAlarmOutTime; /** 报è¦è¾“出æŒç»æ—¶é—´,å•ä½ç§’, å¦‚æžœæ— æ¤å—段,按设备原æ¥çš„æ–¹å¼å®žçŽ° */ public int nAlarmOutTime; /** nBeepTime 是å¦æœ‰æ•ˆ */ public byte abBeepTime; /** 蜂鸣时长,å•ä½ç§’,最大值为3600,0代表æŒç»èœ‚鸣 */ public int nBeepTime; public CFG_ALARM_MSG_HANDLE(){ for(int i=0;i<stuPtzLink.length;i++){ stuPtzLink[i]=new CFG_PTZ_LINK(); } for(int i=0;i<stuPtzLinkEx.length;i++){ stuPtzLinkEx[i]=new CFG_PTZ_LINK_EX(); } for(int i=0;i<stuSnapshotTitle.length;i++){ stuSnapshotTitle[i]=new CFG_EVENT_TITLE(); } for(int i=0;i<stuVideoTitle.length;i++){ stuVideoTitle[i]=new CFG_EVENT_TITLE(); } for(int i=0;i<stuTour.length;i++){ stuTour[i]=new CFG_TOURLINK(); } } } // 报è¦è”åŠ¨ä¿¡æ¯ public static class NET_ALARM_MSG_HANDLE extends SdkStructure { //能力 public byte abChannelCount; // 是å¦æ”¯æŒé€šé“æ•°é‡ bool类型,å–值0或1 public byte abAlarmOutCount; // 是å¦æ”¯æŒæŠ¥è¦è¾“å‡ºæ•°é‡ bool类型,å–值0或1 public byte abRecordMask; // 是å¦æ”¯æŒå½•åƒé€šé“ bool类型,å–值0或1 public byte abRecordEnable; // 是å¦æ”¯æŒå½•åƒä½¿èƒ½ bool类型,å–值0或1 public byte abRecordLatch; // 是å¦æ”¯æŒå½•åƒå»¶æ—¶ bool类型,å–值0或1 public byte abAlarmOutMask; // 是å¦æ”¯æŒæŠ¥è¦è¾“å‡ºé€šé“ bool类型,å–值0或1 public byte abAlarmOutEn; // 是å¦æ”¯æŒæŠ¥è¦è¾“出使能 bool类型,å–值0或1 public byte abAlarmOutLatch; // 是å¦æ”¯æŒæŠ¥è¦è¾“出延时 bool类型,å–值0或1 public byte abExAlarmOutMask; // 是å¦æ”¯æŒæ‰©å±•æŠ¥è¦è¾“å‡ºé€šé“ bool类型,å–值0或1 public byte abExAlarmOutEn; // 是å¦æ”¯æŒæ‰©å±•æŠ¥è¦è¾“出使能 bool类型,å–值0或1 public byte abPtzLinkEn; // 是å¦æ”¯æŒäº‘å°è”动使能 bool类型,å–值0或1 public byte abTourMask; // 是å¦æ”¯æŒè½®å·¡æŽ©ç bool类型,å–值0或1 public byte abTourEnable; // 是å¦æ”¯æŒè½®å·¡ä½¿èƒ½ bool类型,å–值0或1 public byte abSnapshot; // 是å¦æ”¯æŒå¿«ç…§ bool类型,å–值0或1 public byte abSnapshotEn; // 是å¦æ”¯æŒå¿«ç…§ä½¿èƒ½ bool类型,å–值0或1 public byte abSnapshotPeriod; // 是å¦æ”¯æŒå¸§é—´éš”,æ¯éš”å¤šå°‘å¸§æŠ“ä¸€å¼ å›¾ç‰‡ bool类型,å–值0或1 public byte abSnapshotTimes; // 是å¦æ”¯æŒè¿žæ‹æ¬¡æ•° bool类型,å–值0或1 public byte abTipEnable; // 是å¦æ”¯æŒæœ¬åœ°æ¶ˆæ¯æ¡†æ示 bool类型,å–值0或1 public byte abMailEnable; // 是å¦æ”¯æŒå‘é€é‚®ä»¶ bool类型,å–值0或1 public byte abMessageEnable; // 是å¦æ”¯æŒä¸Šä¼ 到报è¦ä¸å¿ƒæœåŠ¡å™¨ bool类型,å–值0或1 public byte abBeepEnable; // 是å¦æ”¯æŒèœ‚鸣 bool类型,å–值0或1 public byte abVoiceEnable; // 是å¦æ”¯æŒè¯éŸ³æ示 bool类型,å–值0或1 public byte abMatrixMask; // 是å¦æ”¯æŒè”动视频矩阵掩ç bool类型,å–值0或1 public byte abMatrixEnable; // 是å¦æ”¯æŒè”动视频矩阵使能 bool类型,å–值0或1 public byte abEventLatch; // 是å¦æ”¯æŒè”动开始延时时间 bool类型,å–值0或1 public byte abLogEnable; // 是å¦æ”¯æŒæ—¥å¿—使能 bool类型,å–值0或1 public byte abDelay; // 是å¦æ”¯æŒæŠ¥è¦å»¶æ—¶ bool类型,å–值0或1 public byte abVideoMessageEn; // 是å¦æ”¯æŒå åŠ æ示å—幕到视频 bool类型,å–值0或1 public byte abMMSEnable; // 是å¦æ”¯æŒå‘é€çŸæ¶ˆæ¯ bool类型,å–值0或1 public byte abMessageToNetEn; // 是å¦æ”¯æŒæ¶ˆæ¯ä¸Šä¼ 给网络使能 bool类型,å–值0或1 public byte abTourSplit; // 是å¦æ”¯æŒæ¢é¢åˆ†å‰²è½®å·¡ bool类型,å–值0或1 public byte abSnapshotTitleEn; // 是å¦æ”¯æŒå åŠ å›¾ç‰‡æ ‡é¢˜ä½¿èƒ½ bool类型,å–值0或1 public byte abPtzLinkEx; // 是å¦æ”¯æŒäº‘å°è”动使能 bool类型,å–值0或1 public byte abSnapshotTitle; // 是å¦æ”¯æŒå åŠ å›¾ç‰‡æ ‡é¢˜ bool类型,å–值0或1 public byte abMailDetail; // 是å¦æ”¯æŒé‚®ä»¶è¯¦æƒ… bool类型,å–值0或1 public byte abVideoTitleEn; // 是å¦æ”¯æŒå åŠ è§†é¢‘æ ‡é¢˜ï¼Œä¸»è¦æŒ‡ä¸»ç æµ bool类型,å–值0或1 public byte abVideoTitle; // 是å¦æ”¯æŒè§†é¢‘æ ‡é¢˜å†…å®¹ bool类型,å–值0或1 public byte abTour; // 是å¦æ”¯æŒè½®å·¡ bool类型,å–值0或1 public byte abDBKeys; // 是å¦æ”¯æŒæŒ‡å®šäº‹ä»¶è¯¦ç»†ä¿¡æ¯é‡Œéœ€è¦å†™åˆ°æ•°æ®åº“çš„å…³é”®å— bool类型,å–值0或1 public byte abJpegSummary; // 是å¦æ”¯æŒå åŠ åˆ°JPEG图片的摘è¦ä¿¡æ¯ bool类型,å–值0或1 public byte abFlashEn; // 是å¦æ”¯æŒè¡¥å…‰ç¯ä½¿èƒ½ bool类型,å–值0或1 public byte abFlashLatch; // 是å¦æ”¯æŒè¡¥å…‰ç¯å»¶æ—¶bool类型,å–值0或1 public byte abAudioFileName; // 是å¦æ”¯æŒè”动è¯éŸ³æ–‡ä»¶ç»å¯¹è·¯å¾„ bool类型,å–值0或1 public byte abAlarmBellEn; // 是å¦æ”¯æŒè¦å·ä½¿èƒ½ bool类型,å–值0或1 public byte abAccessControlEn; // 是å¦æ”¯æŒé—¨ç¦æŽ§åˆ¶ä½¿èƒ½ bool类型,å–值0或1 public byte abAccessControl; // 是å¦æ”¯æŒé—¨ç¦æŽ§åˆ¶ bool类型,å–值0或1 public byte abTalkBack; // 是å¦æ”¯æŒè¯éŸ³å‘¼å« bool类型,å–值0或1 public byte abPSTNAlarmServer; // 是å¦æ”¯æŒç”µè¯æŠ¥è¦ä¸å¿ƒ bool类型,å–值0或1 public byte abAlarmBellLatch; // 是å¦æ”¯æŒè¦å·è¾“出延时 bool类型,å–值0或1 public byte abPlayTimes; // 是å¦æ”¯æŒè”动è¯éŸ³æ’放次数 bool类型,å–值0或1 public byte abReboot; // 是å¦æ”¯æŒé‡å¯ä½¿èƒ½ bool类型,å–值0或1 public byte abBeepTime; // 是å¦æ”¯æŒèœ‚鸣时长 bool类型,å–值0或1 public byte[] byReserved = new byte[68]; // 能力ä¿ç•™å—段 //ä¿¡æ¯ public CFG_TIME_SCHEDULE stuTimeSection; // 事件å“应时间表 public int nChannelCount; // 设备的视频通é“æ•° public int nAlarmOutCount; // 设备的报è¦è¾“出个数 public int[] dwRecordMask = new int[MAX_CHANNEL_COUNT]; // 录åƒé€šé“掩ç (按ä½) public int bRecordEnable; // 录åƒä½¿èƒ½ public int nRecordLatch; // 录åƒå»¶æ—¶æ—¶é—´(秒) public int[] dwAlarmOutMask = new int[MAX_CHANNEL_COUNT]; // 报è¦è¾“出通é“掩ç public int bAlarmOutEn; // 报è¦è¾“出使能 public int nAlarmOutLatch; // 报è¦è¾“出延时时间(秒) public int[] dwExAlarmOutMask = new int[MAX_CHANNEL_COUNT]; // 扩展报è¦è¾“出通é“掩ç public int bExAlarmOutEn; // 扩展报è¦è¾“出使能 public CFG_PTZ_LINK[] stuPtzLink = (CFG_PTZ_LINK [])new CFG_PTZ_LINK().toArray(MAX_VIDEO_CHANNEL_NUM); // 云å°è”动项 //这个å‚数并没有被解æžï¼Œåº”该是被扩展替代 public int bPtzLinkEn; // 云å°è”动使能 public int[] dwTourMask = new int[MAX_CHANNEL_COUNT]; // 轮询通é“掩ç public int bTourEnable; // 轮询使能 public int[] dwSnapshot = new int[MAX_CHANNEL_COUNT]; // 快照通é“å·æŽ©ç public int bSnapshotEn; // 快照使能 public int nSnapshotPeriod; // è¿žæ‹å‘¨æœŸ(秒) public int nSnapshotTimes; // è¿žæ‹æ¬¡æ•° public int bTipEnable; // 本地消æ¯æ¡†æ示 public int bMailEnable; // å‘é€é‚®ä»¶ï¼Œå¦‚果有图片,作为附件 public int bMessageEnable; // ä¸Šä¼ åˆ°æŠ¥è¦æœåŠ¡å™¨ public int bBeepEnable; // 蜂鸣 public int bVoiceEnable; // è¯éŸ³æ示 public int nPlayTimes; // è”动è¯éŸ³æ’放次数bVoiceEnable=TRUE时生效 public int[] dwMatrixMask = new int[MAX_CHANNEL_COUNT]; // è”动视频矩阵通é“掩ç public int bMatrixEnable; // è”动视频矩阵 public int nEventLatch; // è”动开始延时时间(秒),0ï¼15 public int bLogEnable; // 是å¦è®°å½•æ—¥å¿— public int nDelay; // 设置时先延时å†ç”Ÿæ•ˆï¼Œå•ä½ä¸ºç§’ public int bVideoMessageEn; // å åŠ æ示å—幕到视频。å åŠ çš„å—幕包括事件类型,通é“å·ï¼Œç§’计时。 public int bMMSEnable; // å‘é€å½©ä¿¡ä½¿èƒ½ public int bMessageToNetEn; // 消æ¯ä¸Šä¼ 给网络使能 public int nTourSplit; // è½®å·¡æ—¶çš„åˆ†å‰²æ¨¡å¼ 0: 1ç”»é¢; 1: 8ç”»é¢ public int bSnapshotTitleEn; // 是å¦å åŠ å›¾ç‰‡æ ‡é¢˜ public int nPtzLinkExNum; // 云å°é…置数 public CFG_PTZ_LINK_EX[] stuPtzLinkEx = (CFG_PTZ_LINK_EX [])new CFG_PTZ_LINK_EX().toArray(MAX_VIDEO_CHANNEL_NUM); // 扩展云å°ä¿¡æ¯ public int nSnapTitleNum; // å›¾ç‰‡æ ‡é¢˜å†…å®¹æ•° public NET_CFG_EVENT_TITLE[] stuSnapshotTitle = (NET_CFG_EVENT_TITLE [])new NET_CFG_EVENT_TITLE().toArray(MAX_VIDEO_CHANNEL_NUM); // å›¾ç‰‡æ ‡é¢˜å†…å®¹ public CFG_MAIL_DETAIL stuMailDetail; // 邮件详细内容 public int bVideoTitleEn; // 是å¦å åŠ è§†é¢‘æ ‡é¢˜ï¼Œä¸»è¦æŒ‡ä¸»ç æµ public int nVideoTitleNum; // è§†é¢‘æ ‡é¢˜å†…å®¹æ•°ç›® public NET_CFG_EVENT_TITLE[] stuVideoTitle = (NET_CFG_EVENT_TITLE [])new NET_CFG_EVENT_TITLE().toArray(MAX_VIDEO_CHANNEL_NUM); // è§†é¢‘æ ‡é¢˜å†…å®¹ public int nTourNum; // 轮询è”动数目 public CFG_TOURLINK[] stuTour = (CFG_TOURLINK [])new CFG_TOURLINK().toArray(MAX_VIDEO_CHANNEL_NUM);// 轮询è”动é…ç½® public int nDBKeysNum; // 指定数æ®åº“关键å—的有效数 public byte[] szDBKeys = new byte[MAX_DBKEY_NUM * MAX_CHANNELNAME_LEN]; // 指定事件详细信æ¯é‡Œéœ€è¦å†™åˆ°æ•°æ®åº“çš„å…³é”®å— public byte[] byJpegSummary = new byte[MAX_SUMMARY_LEN]; // å åŠ åˆ°JPEG图片的摘è¦ä¿¡æ¯ public int bFlashEnable; // 是å¦ä½¿èƒ½è¡¥å…‰ç¯ public int nFlashLatch; // 补光ç¯å»¶æ—¶æ—¶é—´(秒),延时时间范围:[10,300] public byte[] szAudioFileName = new byte[MAX_PATH]; // è”动è¯éŸ³æ–‡ä»¶ç»å¯¹è·¯å¾„ public int bAlarmBellEn; // è¦å·ä½¿èƒ½ public int bAccessControlEn; // é—¨ç¦ä½¿èƒ½ public int dwAccessControl; // é—¨ç¦ç»„æ•° public int[] emAccessControlType = new int[MAX_ACCESSCONTROL_NUM]; // é—¨ç¦è”动æ“作信æ¯,详è§EM_CFG_ACCESSCONTROLTYPE public CFG_TALKBACK_INFO stuTalkback; // è¯éŸ³å‘¼å«è”åŠ¨ä¿¡æ¯ public CFG_PSTN_ALARM_SERVER stuPSTNAlarmServer; // 电è¯æŠ¥è¦ä¸å¿ƒè”åŠ¨ä¿¡æ¯ public int nAlarmBellLatch; // è¦å·è¾“出延时时间(10-300秒) public int bReboot; //é‡å¯ä½¿èƒ½TRUE:使能 FALSE:ä¸ä½¿èƒ½ public int nBeepTime; //蜂鸣时长最大值为3600,0代表æŒç»èœ‚鸣 public int abAudioLinkTime; //è”动è¯éŸ³æ—¶é—´ä½¿èƒ½ public int nAudioLinkTime; // è”动è¯éŸ³æ’放的时间, å•ä½ï¼šç§’ public int abAudioPlayTimes; // è”动è¯éŸ³æ’放使能 public int nAudioPlayTimes; // è”动è¯éŸ³æ’放次数 public byte[] byReserve = new byte[2036]; // 预留å—节 } // æ—¶é—´æ®µä¿¡æ¯ public static class CFG_TIME_SECTION extends SdkStructure { public int dwRecordMask;//录åƒæŽ©ç ,按ä½åˆ†åˆ«ä¸ºåŠ¨æ€æ£€æµ‹å½•åƒã€æŠ¥è¦å½•åƒã€å®šæ—¶å½•åƒã€Bit3~Bit15ä¿ç•™ã€Bit16动æ€æ£€æµ‹æŠ“图ã€Bit17报è¦æŠ“图ã€Bit18定时抓图 // 当表示推é€æ—¶é—´æ®µæ—¶, 表示使能:1表示使能,0表示éžä½¿èƒ½ public int nBeginHour; public int nBeginMin; public int nBeginSec; public int nEndHour; public int nEndMin; public int nEndSec; public void setStartTime(int nBeginHour, int nBeginMin, int nBeginSec) { this.nBeginHour = nBeginHour; this.nBeginMin = nBeginMin; this.nBeginSec = nBeginSec; } public void setEndTime(int nEndHour, int nEndMin, int nEndSec) { this.nEndHour = nEndHour; this.nEndMin = nEndMin; this.nEndSec = nEndSec; } public String startTime() { return nBeginHour + ":" + nBeginMin + ":" + nBeginSec; } public String endTime() { return nEndHour + ":" + nEndMin + ":" + nEndSec; } } // 事件类型EVENT_IVS_FACERECOGNITION(ç›®æ ‡è¯†åˆ«)对应的规则é…ç½® public static class CFG_FACERECOGNITION_INFO extends SdkStructure { // ä¿¡æ¯ public byte[] szRuleName = new byte[MAX_NAME_LEN]; // 规则å称,ä¸åŒè§„则ä¸èƒ½é‡å public byte bRuleEnable; // 规则使能,bool类型,å–值0或1 public byte[] bReserved = new byte[2]; // ä¿ç•™å—段 public int nObjectTypeNum; // 相应物体类型个数 public byte[] szObjectTypes = new byte[MAX_OBJECT_LIST_SIZE*MAX_NAME_LEN];//相应物体类型列表 public int nPtzPresetId; // 云å°é¢„置点编å·0~65535 public byte bySimilarity; // 相似度,必须大于该相识度æ‰æŠ¥å‘Š(1~100) public byte byAccuracy; // 识别精度(å–值1~10,éšç€å€¼å¢žå¤§ï¼Œæ£€æµ‹ç²¾åº¦æ高,检测速度下é™ã€‚最å°å€¼ä¸º1表示检测速度优先,最大值为10表示检测精度优先) public byte byMode; // 对比模å¼,0-æ£å¸¸,1-指定人脸区域组åˆ, public byte byImportantRank; // 查询é‡è¦ç‰çº§å¤§äºŽç‰äºŽæ¤ç‰çº§çš„人员(1~10,数值越高越é‡è¦) public int nAreaNum; // 区域数 public byte[] byAreas = new byte[8]; // 人脸区域组åˆ,0-眉毛,1-眼ç›ï¼Œ2-é¼»å,3-嘴巴,4-脸颊(æ¤å‚数在对比模å¼ä¸º1时有效) public int nMaxCandidate; // 报告的最大匹é…图片个数 public CFG_ALARM_MSG_HANDLE stuEventHandler; // 报è¦è”动 public TIME_SECTION_WEEK_DAY_10[] stuTimeSectionWeekDay = (TIME_SECTION_WEEK_DAY_10[])new TIME_SECTION_WEEK_DAY_10().toArray(WEEK_DAY_NUM); // 事件å“应时间段 } // 事件类型EVENT_IVSS_FACEATTRIBUTE(IVSSç›®æ ‡æ£€æµ‹äº‹ä»¶) 对应的规则é…ç½® public static class CFG_FACEATTRIBUTE_INFO extends SdkStructure { // ä¿¡æ¯ public byte[] szRuleName = new byte[MAX_NAME_LEN]; // 规则å称,ä¸åŒè§„则ä¸èƒ½é‡å public byte bRuleEnable; // 规则使能,bool类型,å–值0或1 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 CFG_ALARM_MSG_HANDLE stuEventHandler; // 报è¦è”动 public TIME_SECTION_WEEK_DAY_10[] stuTimeSectionWeekDay = (TIME_SECTION_WEEK_DAY_10[])new TIME_SECTION_WEEK_DAY_10().toArray(WEEK_DAY_NUM);// 事件å“应时间段 public int nPtzPresetId; // 云å°é¢„ç½®ç‚¹ç¼–å· 0~65535 public int nMinDuration; // 最çŸè§¦å‘时间,å•ä½ï¼šç§’ public int nTriggerTargetsNumber; // 触å‘报è¦çš„人脸个数 public int nSensitivity; // çµæ•åº¦,范围[1,10],çµæ•åº¦è¶Šé«˜è¶Šå®¹æ˜“检测 public int nReportInterval; // é‡å¤æŠ¥è¦é—´éš”,å•ä½:秒,[0,600](ç‰äºŽ0表示ä¸é‡å¤æŠ¥è¦) public int bSizeFileter; // 规则特定的尺寸过滤器是å¦æœ‰æ•ˆ,bool类型 å–值0或1 public CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器 public int nFaceFeatureNum; // 需è¦æ£€æµ‹çš„人脸属性个数 public int[] emFaceFeatureType = new int[MAX_FEATURE_LIST_SIZE]; // 需检测的人脸属性, å‚考 EM_FACEFEATURE_TYPE public boolean bFeatureFilter; // 在人脸属性开å¯å‰æ下,如果人脸图åƒè´¨é‡å¤ªå·®ï¼Œæ˜¯å¦ä¸ä¸ŠæŠ¥å±žæ€§ public int nMinQuality; // 人脸图片质é‡é˜ˆå€¼,å’ŒbFeatureFilter一起使用 范围[0,100] } // è”动的布控组 public static class CFG_LINKGROUP_INFO extends SdkStructure { public int bEnable; // 布控组是å¦å¯ç”¨,bool类型 å–值0或1 public byte[] szGroupID = new byte[MAX_GROUP_ID_LEN]; // 布控组ID public byte bySimilarity; // 相似度阈值 public byte[] szColorName = new byte[MAX_COLOR_NAME_LEN]; // 事件触å‘时绘制人脸框的颜色 public int bShowTitle; // 事件触å‘时规则框上是å¦æ˜¾ç¤ºæŠ¥è¦æ ‡é¢˜,bool类型 å–值0或1 public int bShowPlate; // 事件触å‘时是å¦æ˜¾ç¤ºæ¯”对é¢æ¿ ,bool类型 å–值0或1 public byte[] bReserved=new byte[511]; // ä¿ç•™å—段 public CFG_ALARM_MSG_HANDLE stuEventHandler; // 报è¦è”动 } // é™Œç”Ÿäººå¸ƒé˜²æ¨¡å¼ public static class CFG_STRANGERMODE_INFO extends SdkStructure { public int bEnable; // 模å¼æ˜¯å¦å¯ç”¨,bool类型 å–值0或1 public byte[] szColorHex = new byte[MAX_COLOR_HEX_LEN]; // 事件触å‘时绘制人脸框的颜色 public int bShowTitle; // 事件触å‘时规则框上是å¦æ˜¾ç¤ºæŠ¥è¦æ ‡é¢˜,bool类型 å–值0或1 public int bShowPlate; // 事件触å‘时是å¦æ˜¾ç¤ºæ¯”对é¢æ¿,bool类型 å–值0或1 public byte[] bReserved=new byte[512]; // ä¿ç•™å—段 public CFG_ALARM_MSG_HANDLE stuEventHandler; // 报è¦è”动 } // 事件类型EVENT_IVS_FACEANALYSIS(人脸分æžäº‹ä»¶) 对应的规则é…ç½® public static class CFG_FACEANALYSIS_INFO extends SdkStructure { public byte[] szRuleName = new byte[MAX_NAME_LEN]; // 规则å称,ä¸åŒè§„则ä¸èƒ½é‡å public byte bRuleEnable; // 规则使能,bool类型,å–值0或1 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 CFG_ALARM_MSG_HANDLE stuEventHandler; // 报è¦è”动 public TIME_SECTION_WEEK_DAY_10[] stuTimeSectionWeekDay = (TIME_SECTION_WEEK_DAY_10[])new TIME_SECTION_WEEK_DAY_10().toArray(WEEK_DAY_NUM);// 事件å“应时间段 public int nPtzPresetId; // 云å°é¢„ç½®ç‚¹ç¼–å· 0~65535 public int nSensitivity; // çµæ•åº¦,范围[1,10],çµæ•åº¦è¶Šé«˜è¶Šå®¹æ˜“检测 public int nLinkGroupNum; // è”动布控个数 public CFG_LINKGROUP_INFO[] stuLinkGroupArr = (CFG_LINKGROUP_INFO[])new CFG_LINKGROUP_INFO().toArray(MAX_LINK_GROUP_NUM); // è”动的布控组 public CFG_STRANGERMODE_INFO stuStrangerMode; // é™Œç”Ÿäººå¸ƒé˜²æ¨¡å¼ public int bSizeFileter; // 规则特定的尺寸过滤器是å¦æœ‰æ•ˆ public CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器, 1-true 0-false public int bFeatureEnable; // 是å¦å¼€å¯äººè„¸å±žæ€§è¯†åˆ« public int nFaceFeatureNum; // 需è¦æ£€æµ‹çš„人脸属性个数 public int[] emFaceFeatureType = new int[MAX_FEATURE_LIST_SIZE]; // 需检测的人脸属性, å‚考 EM_FACEFEATURE_TYPE public int bFeatureFilter; // 在人脸属性开å¯å‰æ下,如果人脸图åƒè´¨é‡å¤ªå·®ï¼Œæ˜¯å¦ä¸ä¸ŠæŠ¥å±žæ€§ // true-图åƒå¤ªå·®ä¸ä¸ŠæŠ¥å±žæ€§ false-图åƒå¾ˆå·®ä¹Ÿä¸ŠæŠ¥å±žæ€§(å¯èƒ½ä¼šéžå¸¸ä¸å‡†ï¼Œå½±å“用户体验) public int nMinQuality; // 人脸图片质é‡é˜ˆå€¼,å’ŒbFeatureFilter一起使用 范围[1,100] } // 事件类型EVENT_IVSS_FACECOMPARE(IVSSç›®æ ‡è¯†åˆ«äº‹ä»¶) 对应的规则é…ç½® public static class CFG_FACECOMPARE_INFO extends SdkStructure { public byte[] szRuleName = new byte[MAX_NAME_LEN]; // 规则å称,ä¸åŒè§„则ä¸èƒ½é‡å public byte bRuleEnable; // 规则使能,bool类型,å–值0或1 public byte[] bReserved = new byte[3]; // ä¿ç•™å— public int nObjectTypeNum; // 相应物体类型个数 public byte[] szObjectTypes = new byte[MAX_OBJECT_LIST_SIZE*MAX_NAME_LEN]; // 相应物体类型列表 public CFG_ALARM_MSG_HANDLE stuEventHandler; // 报è¦è”动 public TIME_SECTION_WEEK_DAY_10[] stuTimeSectionWeekDay = (TIME_SECTION_WEEK_DAY_10[])new TIME_SECTION_WEEK_DAY_10().toArray(WEEK_DAY_NUM);// 事件å“应时间段 public int nPtzPresetId; // 云å°é¢„ç½®ç‚¹ç¼–å· 0~65535 public int nLinkGroupNum; // è”动布控个数 public CFG_LINKGROUP_INFO[] stuLinkGroupArr = (CFG_LINKGROUP_INFO[])new CFG_LINKGROUP_INFO().toArray(MAX_LINK_GROUP_NUM); // è”动的布控组 public CFG_STRANGERMODE_INFO stuStrangerMode; // é™Œç”Ÿäººå¸ƒé˜²æ¨¡å¼ } // 智能报è¦äº‹ä»¶å…¬å…±ä¿¡æ¯ public static class EVENT_INTELLI_COMM_INFO extends SdkStructure { public int emClassType; // 智能事件所属大类, å–值为 EM_CLASS_TYPE ä¸çš„值 public int nPresetID; // 该事件触å‘的预置点,对应该设置规则的预置点 public byte[] bReserved = new byte[124]; // ä¿ç•™å—节,留待扩展. } // 事件类型EVENT_IVS_FACERECOGNITION(ç›®æ ‡è¯†åˆ«)对应的数æ®å—æè¿°ä¿¡æ¯ public static class DEV_EVENT_FACERECOGNITION_INFO extends SdkStructure { public int nChannelID; // 通é“å· public byte[] szName = new byte[128]; // 事件å称 public int nEventID; // 事件ID public NET_TIME_EX UTC; // 事件å‘生的时间 public NET_MSG_OBJECT stuObject; // 检测到的物体 public int nCandidateNum; // 当å‰äººè„¸åŒ¹é…åˆ°çš„å€™é€‰å¯¹è±¡æ•°é‡ public CANDIDATE_INFO[] stuCandidates = (CANDIDATE_INFO[])new CANDIDATE_INFO().toArray(NET_MAX_CANDIDATE_NUM);//当å‰äººè„¸åŒ¹é…åˆ°çš„å€™é€‰å¯¹è±¡ä¿¡æ¯ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示æŒç»æ€§äº‹ä»¶å¼€å§‹,2表示æŒç»æ€§äº‹ä»¶ç»“æŸ; public byte byImageIndex; // 图片的åºå·,åŒä¸€æ—¶é—´å†…(精确到秒)å¯èƒ½æœ‰å¤šå¼ 图片,从0开始 public byte[] byReserved1 = new byte[2]; // å¯¹é½ public int bGlobalScenePic; // 全景图是å¦å˜åœ¨, 类型为BOOL, å–值为0或者1 public NET_PIC_INFO stuGlobalScenePicInfo; // å…¨æ™¯å›¾ç‰‡ä¿¡æ¯ public byte[] szSnapDevAddress = new byte[MAX_PATH]; // 抓æ‹å½“å‰äººè„¸çš„è®¾å¤‡åœ°å€ public int nOccurrenceCount; // 事件触å‘累计次数, 类型为unsigned int public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // æ™ºèƒ½äº‹ä»¶å…¬å…±ä¿¡æ¯ public NET_FACE_DATA stuFaceData; // äººè„¸æ•°æ® public byte[] szUID = new byte[NET_COMMON_STRING_32]; // 抓æ‹äººå‘˜å†™å…¥æ•°æ®åº“çš„å”¯ä¸€æ ‡è¯†ç¬¦ public NET_FEATURE_VECTOR stuFeatureVector; // 特å¾å€¼ä¿¡æ¯ public byte[] szFeatureVersion = new byte[32]; // 特å¾å€¼ç®—法版本 public int emFaceDetectStatus; // 人脸在摄åƒæœºç”»é¢ä¸çš„状æ€,详è§EM_FACE_DETECT_STATUS public byte[] szSourceID = new byte[32]; // 事件关è”ID,åŒä¸€ä¸ªç‰©ä½“或图片生æˆå¤šä¸ªäº‹ä»¶æ—¶SourceIDç›¸åŒ public NET_PASSERBY_INFO stuPasserbyInfo; // è·¯äººåº“ä¿¡æ¯ public int nStayTime; // 路人逗留时间 å•ä½ï¼šç§’ public NET_GPS_INFO stuGPSInfo; // GPSä¿¡æ¯ public byte[] szCameraID = new byte[64]; // å›½æ ‡ç¼–ç public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率 public int nPerFlag; // ICC人脸å系统, äººè„¸æ ‡ç¾æ ‡å¿—ä½, -1:未知, 0:授æƒäººè„¸, 1:未授æƒäººè„¸, 2:陌生人 public byte[] bReserved = new byte[360]; // ä¿ç•™å—节,留待扩展. public int nRetCandidatesExNum; // 当å‰äººè„¸åŒ¹é…到的候选对象数é‡å®žé™…返回值 public CANDIDATE_INFOEX[] stuCandidatesEx = (CANDIDATE_INFOEX[])new CANDIDATE_INFOEX().toArray(NET_MAX_CANDIDATE_NUM); // 当å‰äººè„¸åŒ¹é…到的候选对象信æ¯æ‰©å±• public byte[] szSerialUUID = new byte[22]; // 级è”物体IDå”¯ä¸€æ ‡è¯† // æ ¼å¼å¦‚下:å‰2ä½%d%d:01-视频片段,02-图片,03-文件,99-其他; // ä¸é—´14ä½YYYYMMDDhhmmss:年月日时分秒;åŽ5ä½%u%u%u%u%u:物体ID,如00001 public byte[] byReserved = new byte[2]; // å¯¹é½ public NET_CUSTOM_PROJECTS_INFO stuCustomProjects; // é¡¹ç›®ä¿¡æ¯ public boolean bIsDuplicateRemove; // 智慧零售,是å¦ç¬¦åˆåŽ»é‡ç–略(TRUEï¼šç¬¦åˆ FALSE:ä¸ç¬¦åˆï¼‰ public byte[] byReserved2=new byte[4]; // å—èŠ‚å¯¹é½ public NET_IMAGE_INFO_EX2[] stuImageInfo = (NET_IMAGE_INFO_EX2[])new NET_IMAGE_INFO_EX2().toArray(32); // 图片信æ¯æ•°ç»„ public int nImageInfoNum; // 图片信æ¯ä¸ªæ•° public NET_MSG_OBJECT_SUPPLEMENT stuObjectSupplement; // 检测到的物体补充å—段 public int nMode; //0-普通 1-å¼€å¯é™Œç”Ÿäººæ¨¡å¼ public SCENE_IMAGE_INFO stuThumImageInfo=new SCENE_IMAGE_INFO(); //å¤§å›¾ï¼ˆå…¨æ™¯å›¾ï¼‰çš„ç¼©ç•¥å›¾ä¿¡æ¯ public SCENE_IMAGE_INFO stuHumanImageInfo=new SCENE_IMAGE_INFO(); //äººä½“å›¾ç‰‡ä¿¡æ¯ public byte[] szVideoPath=new byte[256]; //è¿ç« å…³è”视频FTPä¸Šä¼ è·¯å¾„ public int bIsHighFrequencyAlarm; // 是å¦æ˜¯é«˜é¢‘æ¬¡æŠ¥è¦ public byte[] szFrequencyAlarmName=new byte[32]; // 频次报è¦å称, 当bIsHighFrequencyAlarmå—段值为TRUEæ—¶æ‰æœ‰æ•ˆï¼Œè¡¨ç¤ºé«˜é¢‘次报è¦å称 public double PTS; // 时间戳(å•ä½æ˜¯æ¯«ç§’) public byte[] szSubCode=new byte[32]; // 触å‘人脸抓æ‹çš„事件类型 public int nRegionCode; // 区域编ç public byte[] byReserved3=new byte[236]; //ä¿ç•™å—节 @Override public int fieldOffset(String name) { return super.fieldOffset(name); } } // è·¯äººä¿¡æ¯ public static class NET_PASSERBY_INFO extends SdkStructure { public byte[] szPasserbyUID = new byte[MAX_COMMON_STRING_32]; // è·¯äººå”¯ä¸€æ ‡è¯†ç¬¦ public byte[] szPasserbyGroupId = new byte[MAX_COMMON_STRING_64]; // 路人库ID public byte[] szPasserbyGroupName = new byte[MAX_COMMON_STRING_128]; // 路人库å称 public byte[] byReserved = new byte[128]; // ä¿ç•™ } // 候选人员信æ¯æ‰©å±•ç»“构体 public static class CANDIDATE_INFOEX extends SdkStructure { public FACERECOGNITION_PERSON_INFOEX stPersonInfo; // 1 人员信æ¯æ‰©å±• // 布控(ç¦æ¢åå•ï¼‰åº“,指布控库ä¸äººå‘˜ä¿¡æ¯ï¼› // 历å²åº“,指历å²åº“ä¸äººå‘˜ä¿¡æ¯ // 报è¦åº“,æŒ‡å¸ƒæŽ§åº“çš„äººå‘˜ä¿¡æ¯ public byte bySimilarity; // 1 和查询图片的相似度,百分比表示,1~100 public byte byRange; // 人员所属数æ®åº“范围,详è§EM_FACE_DB_TYPE public byte[] byReserved1 = new byte[2]; public NET_TIME stTime=new NET_TIME(); // 当byRange为历å²æ•°æ®åº“时有效,表示查询人员出现的时间 public byte[] szAddress = new byte[MAX_PATH]; // 当byRange为历å²æ•°æ®åº“时有效,表示查询人员出现的地点 public int bIsHit; // 是å¦æœ‰è¯†åˆ«ç»“æžœ,指这个检测出的人脸在库ä¸æœ‰æ²¡æœ‰æ¯”对结果 public NET_PIC_INFO_EX3 stuSceneImage=new NET_PIC_INFO_EX3(); // 人脸全景图 public int nChannelID; // 通é“å· public byte[] szFilePathEx = new byte[256]; // 文件路径 public byte[] byReserved = new byte[1024]; // ä¿ç•™å—节 @Override public int fieldOffset(String name) { return super.fieldOffset(name); } @Override public String toString() { return "CANDIDATE_INFOEX{" + "stPersonInfo=" + stPersonInfo + ", bySimilarity=" + bySimilarity + ", byRange=" + byRange + ", stTime=" + stTime + ", szAddress=" + new String(szAddress) + ", bIsHit=" + bIsHit + ", stuSceneImage=" + stuSceneImage + ", nChannelID=" + nChannelID + ", szFilePathEx=" + new String(szFilePathEx) + '}'; } } // å˜å‚¨IVSS需求,特å¾å€¼ä¿¡æ¯ public static class NET_FEATURE_VECTOR extends SdkStructure { public int dwOffset; // 人脸å°å›¾ç‰¹å¾å€¼åœ¨äºŒè¿›åˆ¶æ•°æ®å—ä¸çš„å移 public int dwLength; // 人脸å°å›¾ç‰¹å¾å€¼é•¿åº¦ï¼Œå•ä½:å—节 public byte[] byReserved = new byte[120]; // ä¿ç•™ } // 人员信æ¯æ‰©å±•ç»“构体 public static class FACERECOGNITION_PERSON_INFOEX extends SdkStructure { public byte[] szPersonName = new byte[NET_MAX_PERSON_NAME_LEN]; // ---姓å public short wYear; // 出生年,作为查询æ¡ä»¶æ—¶,æ¤å‚æ•°å¡«0,则表示æ¤å‚æ•°æ— æ•ˆ public byte byMonth; // 出生月,作为查询æ¡ä»¶æ—¶,æ¤å‚æ•°å¡«0,则表示æ¤å‚æ•°æ— æ•ˆ public byte byDay; // 出生日,作为查询æ¡ä»¶æ—¶,æ¤å‚æ•°å¡«0,则表示æ¤å‚æ•°æ— æ•ˆ public byte bImportantRank; // 人员é‡è¦ç‰çº§,1~10,数值越高越é‡è¦,作为查询æ¡ä»¶æ—¶,æ¤å‚æ•°å¡«0,则表示æ¤å‚æ•°æ— æ•ˆ public byte bySex; // 性别,1-ç”·,2-女,作为查询æ¡ä»¶æ—¶,æ¤å‚æ•°å¡«0,则表示æ¤å‚æ•°æ— æ•ˆ public byte[] szID = new byte[NET_MAX_PERSON_ID_LEN]; // ---äººå‘˜å”¯ä¸€æ ‡ç¤º(è¯ä»¶å·ç ,å·¥å·,或其他编å·) 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[] szUID = new byte[NET_MAX_PERSON_ID_LEN]; // ---äººå‘˜å”¯ä¸€æ ‡è¯†ç¬¦,首次由æœåŠ¡ç«¯ç”Ÿæˆ,区别于IDå—段 // 修改,åˆ é™¤æ“作时必填 public byte[] szCountry = new byte[NET_COUNTRY_LENGTH]; // 国ç±,符åˆISO3166规范 public byte byIsCustomType; // 人员类型是å¦ä¸ºè‡ªå®šä¹‰: 0 使用Type规定的类型 1 自定义,使用szCustomTypeå—段 public byte[] szCustomType = new byte[NET_COMMON_STRING_16]; // 人员自定义类型 public byte[] szComment = new byte[NET_COMMENT_LENGTH]; // ---å¤‡æ³¨ä¿¡æ¯ public byte[] szGroupID = new byte[NET_GROUPID_LENGTH]; // 人员所属组ID public byte[] szGroupName = new byte[NET_GROUPNAME_LENGTH]; // ---人员所属组å, 用户自己申请内å˜çš„情况时, public int emEmotion; // 表情, å‚考 EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE public byte[] szHomeAddress = new byte[NET_COMMON_STRING_128]; // 注册人员家åºåœ°å€ public int emGlassesType; // 眼镜类型, å‚考 EM_GLASSES_TYPE public byte[] szReserved1 = new byte[4]; // public int emEye; // 眼ç›çŠ¶æ€, å‚考 EM_EYE_STATE_TYPE public int emMouth; // 嘴巴状æ€, å‚考 EM_MOUTH_STATE_TYPE public int emMask; // å£ç½©çŠ¶æ€, å‚考 EM_MASK_STATE_TYPE public int emBeard; // 胡å状æ€, å‚考 EM_BEARD_STATE_TYPE public int nAttractive; // é…力值, -1è¡¨ç¤ºæ— æ•ˆ, 0未识别,识别时范围1-100,得分高é…力高 public int emFeatureState; // 人员建模状æ€, å‚考 EM_PERSON_FEATURE_STATE public int bAgeEnable; // 是å¦æŒ‡å®šå¹´é¾„段, 1-true; 0-false public int[] nAgeRange = new int[2]; // 年龄范围 public int nEmotionValidNum; // 人脸特å¾æ•°ç»„有效个数,与 emFeature 结åˆä½¿ç”¨, 如果为0则表示查询所有表情 public int[] emEmotions = new int[NET_MAX_FACEDETECT_FEATURE_NUM];// 人脸特å¾æ•°ç»„,与 byFeatureValidNum 结åˆä½¿ç”¨ 设置查询æ¡ä»¶çš„时候使用, å‚考 EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE public int nCustomPersonInfoNum; // 注册人员信æ¯æ‰©å±•ä¸ªæ•° public CUSTOM_PERSON_INFO[] szCustomPersonInfo = new CUSTOM_PERSON_INFO[NET_MAX_CUSTOM_PERSON_INFO_NUM]; //注册人员信æ¯æ‰©å±• public int emRegisterDbType; // 注册库类型,详è§EM_REGISTER_DB_TYPE public NET_TIME stuEffectiveTime=new NET_TIME(); // 有效期时间 /** * å»ºæ¨¡å¤±è´¥åŽŸå› ,对应{@link com.iailab.netsdk.lib.enumeration.EM_PERSON_FEATURE_ERRCODE} */ public int emFeatureErrCode; public int wFacePicNumEx; // äººè„¸å›¾ç‰‡å¼ æ•° public NET_FACE_PIC_INFO[] szFacePicInfoEx = new NET_FACE_PIC_INFO[6]; // 当å‰äººå‘˜å¯¹åº”çš„å›¾ç‰‡ä¿¡æ¯ public NET_PERSON_FEATURE_VALUE_INFO stuPersonFeatureValue=new NET_PERSON_FEATURE_VALUE_INFO(); // 人员特å¾ä¿¡æ¯ public int bFrozenStatus; // äººå‘˜å†»ç»“çŠ¶æ€ public byte[] szReserved=new byte[4]; // ä¿ç•™å—节 public NET_PERSON_FREQUENCY_INFO stuFrequencyInfo=new NET_PERSON_FREQUENCY_INFO(); // 频次报è¦ä¿¡æ¯ public byte[] szUUID=new byte[64]; public byte[] byReserved = new byte[188]; // ä¿ç•™å—节 public FACERECOGNITION_PERSON_INFOEX(){ for(int i=0;i<szFacePicInfo.length;i++){ szFacePicInfo[i]=new NET_PIC_INFO(); } for(int i=0;i<szCustomPersonInfo.length;i++){ szCustomPersonInfo[i]=new CUSTOM_PERSON_INFO(); } for(int i=0;i<szFacePicInfoEx.length;i++){ szFacePicInfoEx[i]=new NET_FACE_PIC_INFO(); } } } //注册人员信æ¯æ‰©å±•ç»“构体 public static class CUSTOM_PERSON_INFO extends SdkStructure { public byte[] szPersonInfo = new byte[NET_MAX_PERSON_INFO_LEN]; //äººå‘˜æ‰©å±•ä¿¡æ¯ public byte[] byReserved = new byte[124]; // ä¿ç•™å—节 } // 人体测温温度å•ä½ public static class EM_HUMAN_TEMPERATURE_UNIT extends SdkStructure { public static final int EM_HUMAN_TEMPERATURE_UNKNOWN = -1; // 未知 public static final int EM_HUMAN_TEMPERATURE_CENTIGRADE = 0; // æ‘„æ°åº¦ public static final int EM_HUMAN_TEMPERATURE_FAHRENHEIT = 1; // åŽæ°åº¦ public static final int EM_HUMAN_TEMPERATURE_KELVIN = 2; // 开尔文 }; // äººè„¸æ•°æ® public static class NET_FACE_DATA extends SdkStructure { public int emSex; // 性别, å‚考 EM_DEV_EVENT_FACEDETECT_SEX_TYPE public int nAge; // 年龄,-1表示该å—段数æ®æ— 效 public int nFeatureValidNum; // 人脸特å¾æ•°ç»„有效个数,与 emFeature 结åˆä½¿ç”¨ public int[] emFeature = new int[NET_MAX_FACEDETECT_FEATURE_NUM]; // 人脸特å¾æ•°ç»„,与 nFeatureValidNum 结åˆä½¿ç”¨, å‚考 EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE public byte[] szReserved1 = new byte[4]; // public int emEye; // 眼ç›çŠ¶æ€, å‚考 EM_EYE_STATE_TYPE public int emMouth; // 嘴巴状æ€, å‚考 EM_MOUTH_STATE_TYPE public int emMask; // å£ç½©çŠ¶æ€, å‚考 EM_MASK_STATE_TYPE public int emBeard; // 胡å状æ€, å‚考 EM_BEARD_STATE_TYPE public int nAttractive; // é…力值, -1è¡¨ç¤ºæ— æ•ˆ, 0未识别,识别时范围1-100,得分高é…力高 public byte[] bReserved1 = new byte[4]; // ä¿ç•™å—节 public NET_EULER_ANGLE stuFaceCaptureAngle; // 人脸在抓æ‹å›¾ç‰‡ä¸çš„角度信æ¯, nPitch:抬头低头的俯仰角, nYawå·¦å³è½¬å¤´çš„å航角, nRoll头在平é¢å†…å·¦åå³å的翻滚角 // 角度值å–值范围[-90,90], 三个角度值都为999表示æ¤è§’度信æ¯æ— 效 public int nFaceQuality; // 人脸抓æ‹è´¨é‡åˆ†æ•° public int nFaceAlignScore; // 人脸对é½å¾—分分数,范围 0~10000,-1ä¸ºæ— æ•ˆå€¼ public int nFaceClarity; // 人脸清晰度分数,范围 0~10000,-1ä¸ºæ— æ•ˆå€¼ public double dbTemperature; // 温度, bAnatomyTempDetect 为TRUE时有效 public int bAnatomyTempDetect; // 是å¦äººä½“测温 public int emTemperatureUnit; // 温度å•ä½, bAnatomyTempDetect 为TRUE时有效 public boolean bIsOverTemp; // 是å¦æ¸©åº¦å¼‚常, bAnatomyTempDetect 为TRUE时有效 public boolean bIsUnderTemp; // 是å¦æ¸©åº¦å¼‚常, bAnatomyTempDetect 为TRUE时有效 public NET_FACE_ORIGINAL_SIZE stuOriginalSize; // 算法人脸分æžæ—¶çš„实际人脸图片尺寸, 宽高为0æ—¶æ— æ•ˆ public int emGlass; /** æˆ´çœ¼é•œçŠ¶æ€ {@link EM_GLASS_STATE_TYPE} */ public byte[] bReserved = new byte[64]; // ä¿ç•™å—节,留待扩展. } //ç›®æ ‡æ£€æµ‹å¯¹åº”æ€§åˆ«ç±»åž‹ public static class EM_DEV_EVENT_FACEDETECT_SEX_TYPE extends SdkStructure { public static final int EM_DEV_EVENT_FACEDETECT_SEX_TYPE_UNKNOWN = 0; //未知 public static final int EM_DEV_EVENT_FACEDETECT_SEX_TYPE_MAN = 1; //男性 public static final int EM_DEV_EVENT_FACEDETECT_SEX_TYPE_WOMAN = 2; //女性 } //ç›®æ ‡æ£€æµ‹å¯¹åº”äººè„¸ç‰¹å¾ç±»åž‹ public static class EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE extends SdkStructure { public static final int EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_UNKNOWN = 0; //未知 public static final int EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_WEAR_GLASSES = 1; //戴眼镜 public static final int EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_SMILE = 2; //微笑 public static final int EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_ANGER = 3; //愤怒 public static final int EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_SADNESS = 4; //悲伤 public static final int EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_DISGUST = 5; //åŽŒæ¶ public static final int EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_FEAR = 6; //害怕 public static final int EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_SURPRISE = 7; //惊讶 public static final int EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_NEUTRAL = 8; //æ£å¸¸ public static final int EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_LAUGH = 9; //大笑 public static final int EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_NOGLASSES = 10; // 没戴眼镜 public static final int EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_HAPPY = 11; // 高兴 public static final int EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_CONFUSED = 12; // 困惑 public static final int EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_SCREAM = 13; // å°–å« public static final int EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_WEAR_SUNGLASSES = 14; // 戴太阳眼镜 } // 眼ç›çŠ¶æ€ public static class EM_EYE_STATE_TYPE extends 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; // ç眼 } // å˜´å·´çŠ¶æ€ public static class EM_MOUTH_STATE_TYPE extends 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; // å¼ å˜´ } // å£ç½©çŠ¶æ€ public static class EM_MASK_STATE_TYPE extends 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; // 戴å£ç½© } // 胡åçŠ¶æ€ public static class EM_BEARD_STATE_TYPE extends 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; // 有胡å } // äººå‘˜å»ºæ¨¡çŠ¶æ€ public static class EM_PERSON_FEATURE_STATE extends SdkStructure { public static final int EM_PERSON_FEATURE_UNKNOWN = 0; // 未知 public static final int EM_PERSON_FEATURE_FAIL = 1; // 建模失败,å¯èƒ½æ˜¯å›¾ç‰‡ä¸ç¬¦åˆè¦æ±‚,需è¦æ¢å›¾ç‰‡ public static final int EM_PERSON_FEATURE_USEFUL = 2; // 有å¯ç”¨çš„特å¾å€¼ public static final int EM_PERSON_FEATURE_CALCULATING = 3; // æ£åœ¨è®¡ç®—特å¾å€¼ public static final int EM_PERSON_FEATURE_UNUSEFUL = 4; // 已建模,但算法å‡çº§å¯¼è‡´æ•°æ®ä¸å¯ç”¨ï¼Œéœ€è¦é‡æ–°å»ºæ¨¡ } // äº‹ä»¶æ–‡ä»¶çš„æ–‡ä»¶æ ‡ç¾ç±»åž‹ public static class EM_EVENT_FILETAG extends SdkStructure { public static final int NET_ATMBEFOREPASTE = 1; //ATMè´´æ¡å‰ public static final int NET_ATMAFTERPASTE = 2; //ATMè´´æ¡åŽ } // äº‹ä»¶å¯¹åº”æ–‡ä»¶ä¿¡æ¯ public static class NET_EVENT_FILE_INFO extends SdkStructure { public byte bCount; // 当å‰æ–‡ä»¶æ‰€åœ¨æ–‡ä»¶ç»„ä¸çš„文件总数 public byte bIndex; // 当å‰æ–‡ä»¶åœ¨æ–‡ä»¶ç»„ä¸çš„文件编å·(ç¼–å·1开始) public byte bFileTag; // æ–‡ä»¶æ ‡ç¾,具体说明è§æžšä¸¾ç±»åž‹ EM_EVENT_FILETAG public byte bFileType; // 文件类型,0-普通1-åˆæˆ2-æŠ å›¾ public NET_TIME_EX stuFileTime; // 文件时间 public int nGroupId; // åŒä¸€ç»„抓æ‹æ–‡ä»¶çš„å”¯ä¸€æ ‡è¯† @Override public String toString() { return "事件对应文件信æ¯,NET_EVENT_FILE_INFO{" + "bCount=" + bCount + ", bIndex=" + bIndex + ", bFileTag=" + bFileTag + ", bFileType=" + bFileType + ", stuFileTime=" + stuFileTime.toStringTime() + ", nGroupId=" + nGroupId + '}'; } } // å¤šç›®æ ‡æ£€æµ‹ä¿¡æ¯ public static class NET_FACE_INFO extends SdkStructure { public int nObjectID; // 物体ID,æ¯ä¸ªID表示一个唯一的物体 public byte[] szObjectType = new byte[128]; // 物体类型 public int nRelativeID; // Relative与å¦ä¸€å¼ 图片ID相åŒ,è¡¨ç¤ºè¿™å¼ äººè„¸æŠ å›¾æ˜¯ä»Žå¤§å›¾ä¸å–出的 public DH_RECT BoundingBox; // 包围盒 public NET_POINT Center; // 物体型心 } public static class EM_FACE_DETECT_STATUS extends SdkStructure { public static final int EM_FACE_DETECT_UNKNOWN = 0; // 未知 public static final int EM_FACE_DETECT_APPEAR = 1; //出现 public static final int EM_FACE_DETECT_INPICTURE = 2; //在画é¢ä¸ public static final int EM_FACE_DETECT_EXIT = 3; //离开 } // 姿æ€è§’æ•°æ® public static class NET_EULER_ANGLE extends SdkStructure { public int nPitch; // 仰俯角 public int nYaw; // å航角 public int nRoll; // 翻滚角 } //事件类型EVENT_IVS_FACEDETECT(ç›®æ ‡æ£€æµ‹äº‹ä»¶)对应的数æ®å—æè¿°ä¿¡æ¯ public static class DEV_EVENT_FACEDETECT_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[] reserved = 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 public byte[] szSnapDevAddress = new byte[MAX_PATH];// 抓æ‹å½“å‰äººè„¸çš„设备地å€,如:滨康路37å· public int nOccurrenceCount; // 事件触å‘累计次数, 类型为unsigned int public int emSex; // 性别, å–值为EM_DEV_EVENT_FACEDETECT_SEX_TYPEä¸çš„值 public int nAge; // 年龄,-1表示该å—段数æ®æ— 效 public int nFeatureValidNum; //人脸特å¾æ•°ç»„有效个数,与emFeature结åˆä½¿ç”¨, 类型为unsigned int public int[] emFeature = new int[NET_MAX_FACEDETECT_FEATURE_NUM]; // 人脸特å¾æ•°ç»„,与nFeatureValidNum, å–值为EM_DEV_EVENT_FACEDETECT_FEATURE_TYPEä¸çš„值 public int nFacesNum; // 指示stuFacesæœ‰æ•ˆæ•°é‡ public NET_FACE_INFO[] stuFaces = (NET_FACE_INFO[])new NET_FACE_INFO().toArray(10);// å¤šå¼ äººè„¸æ—¶ä½¿ç”¨,æ¤æ—¶æ²¡æœ‰Object public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // æ™ºèƒ½äº‹ä»¶å…¬å…±ä¿¡æ¯ public byte[] szReserved1 = new byte[4]; /**眼ç›çŠ¶æ€ {@link com.iailab.netsdk.lib.enumeration.EM_EYE_STATE_TYPE} * */ public int emEye; /**å˜´å·´çŠ¶æ€ {@link com.iailab.netsdk.lib.enumeration.EM_MOUTH_STATE_TYPE} * */ public int emMouth; /**å£ç½©çŠ¶æ€ {@link com.iailab.netsdk.lib.enumeration.EM_MASK_STATE_TYPE} * */ public int emMask; /**胡åçŠ¶æ€ {@link com.iailab.netsdk.lib.enumeration.EM_BEARD_STATE_TYPE} * */ public int emBeard; public int nAttractive; // é…力值, -1è¡¨ç¤ºæ— æ•ˆ, 0未识别,识别时范围1-100,得分高é…力高 public byte[] szUID = new byte[NET_COMMON_STRING_32]; // 抓æ‹äººå‘˜å†™å…¥æ•°æ®åº“çš„å”¯ä¸€æ ‡è¯†ç¬¦ public byte[] bReserved2 = new byte[4]; // ä¿ç•™å—节 public NET_FEATURE_VECTOR stuFeatureVector; // 特å¾å€¼ä¿¡æ¯ public byte[] szFeatureVersion = new byte[32]; // 特å¾å€¼ç®—法版本 public int emFaceDetectStatus; // 人脸在摄åƒæœºç”»é¢ä¸çš„çŠ¶æ€ ï¼Œå‚考EM_FACE_DETECT_STATUS public NET_EULER_ANGLE stuFaceCaptureAngle; // 人脸在抓æ‹å›¾ç‰‡ä¸çš„角度信æ¯, nPitch:抬头低头的俯仰角, nYawå·¦å³è½¬å¤´çš„å航角, nRoll头在平é¢å†…å·¦åå³å的翻滚角 // 角度值å–值范围[-90,90], 三个角度值都为999表示æ¤è§’度信æ¯æ— 效 public int nFaceQuality; // 人脸抓æ‹è´¨é‡åˆ†æ•°,范围 0~10000 public double dHumanSpeed; // 人的è¿åŠ¨é€Ÿåº¦, km/h public int nFaceAlignScore; // 人脸对é½å¾—分分数,范围 0~10000,-1ä¸ºæ— æ•ˆå€¼ public int nFaceClarity; // 人脸清晰度分数,范围 0~10000,-1ä¸ºæ— æ•ˆå€¼ public int bHumanTemperature; // 人体温信æ¯æ˜¯å¦æœ‰æ•ˆ public NET_HUMAN_TEMPERATURE_INFO stuHumanTemperature = new NET_HUMAN_TEMPERATURE_INFO(); // 人体温信æ¯, bHumanTemperature为TURE时有效 public byte[] szCameraID = new byte[64]; // å›½æ ‡ç¼–ç public NET_RESOLUTION_INFO stuResolution = new NET_RESOLUTION_INFO(); // 对应图片的分辨率 public NET_FACE_ORIGINAL_SIZE stuOriginalSize = new NET_FACE_ORIGINAL_SIZE(); // 算法人脸分æžæ—¶çš„实际人脸尺寸. 宽高为0æ˜¯æ— æ•ˆ public int emGlass; // 戴眼镜状æ€,å‚考枚举EM_GLASS_STATE_TYPE public int emHat; // 帽å状æ€ï¼Œå‚考枚举EM_HAT_STYLE public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); // 事件公共扩展å—段结构体 public Pointer pstuImageInfo; // 图片信æ¯æ•°ç»„ ,指æ£å¯¹åº”结构体 NET_IMAGE_INFO_EX3的数组 public int nImageInfoNum; // 图片信æ¯ä¸ªæ•° public byte[] bReserved = new byte[392 - POINTERSIZE]; // ä¿ç•™å—节,留待扩展 } // 事件类型EVENT_IVS_TRAFFICJAM(äº¤é€šæ‹¥å µäº‹ä»¶)对应的数æ®å—æè¿°ä¿¡æ¯ public static class DEV_EVENT_TRAFFICJAM_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(); /** * 事件ID */ public int nEventID; /** * 对应车é“å· */ public int nLane; /** * äº‹ä»¶å¯¹åº”æ–‡ä»¶ä¿¡æ¯ */ public NET_EVENT_FILE_INFO stuFileInfo = new NET_EVENT_FILE_INFO(); /** * 事件动作,0表示脉冲事件,1表示æŒç»æ€§äº‹ä»¶å¼€å§‹,2表示æŒç»æ€§äº‹ä»¶ç»“æŸ; */ public byte bEventAction; /** * è¡¨ç¤ºæ‹¥å µé•¿åº¦(总车é“长度百分比)0-100 */ public byte bJamLenght; /** * ä¿ç•™å—节 */ public byte reserved; /** * 图片的åºå·, åŒä¸€æ—¶é—´å†…(精确到秒)å¯èƒ½æœ‰å¤šå¼ 图片, 从0开始 */ public byte byImageIndex; /** * 开始åœè½¦æ—¶é—´ */ public NET_TIME_EX stuStartJamTime = new NET_TIME_EX(); /** * 表示抓æ‹åºå·,如3,2,1,1表示抓æ‹ç»“æŸ,0表示异常结æŸ(bEventAction=2æ—¶æ¤å‚数有效) */ public int nSequence; /** * 报è¦æ—¶é—´é—´éš”,å•ä½:秒。(æ¤äº‹ä»¶ä¸ºè¿žç»æ€§äº‹ä»¶,在收到第一个æ¤äº‹ä»¶ä¹‹åŽ,若在超过间隔时间åŽæœªæ”¶åˆ°æ¤äº‹ä»¶çš„åŽç»äº‹ä»¶,则认为æ¤äº‹ä»¶å¼‚常结æŸäº†) */ public int nAlarmIntervalTime; /** * æŠ“å›¾æ ‡å¿—(按ä½),具体è§NET_RESERVED_COMMON */ public int dwSnapFlagMask; /** * 对应图片的分辨率 */ public NET_RESOLUTION_INFO stuResolution = new NET_RESOLUTION_INFO(); /** * è¡¨å®žé™…çš„æ‹¥å µé•¿åº¦,å•ä½ç±³ */ public int nJamRealLength; /** * æ‰©å±•ä¿¡æ¯ */ public NET_EXTENSION_INFO stuExtensionInfo = new NET_EXTENSION_INFO(); /** * åŒºåŸŸæ‹¥å µæ ‡å¿—æ˜¯å¦æœ‰æ•ˆ */ public int bJamRegionFlagValid; /** * åŒºåŸŸæ‹¥å µæ ‡å¿— 0-车é“æ‹¥å µ 1-åŒºåŸŸæ‹¥å µ */ public int nJamRegionFlag; /** * ä¿ç•™å—节,留待扩展. */ public byte[] bReserved = new byte[868]; /** * äº¤é€šè½¦è¾†ä¿¡æ¯ */ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar = new DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO(); /** * å…¬å…±ä¿¡æ¯ */ public EVENT_COMM_INFO stCommInfo = new EVENT_COMM_INFO(); public DEV_EVENT_TRAFFICJAM_INFO() { } // å…¬å…±ä¿¡æ¯ } // è½¦è¾†è¡Œé©¶æ–¹å‘ public static class NET_FLOWSTAT_DIRECTION extends SdkStructure { public static final int DRIVING_DIR_UNKNOW = 0 ; //å…¼å®¹ä¹‹å‰ public static final int DRIVING_DIR_APPROACH = 1 ; //上行,å³è½¦è¾†ç¦»è®¾å¤‡éƒ¨ç½²ç‚¹è¶Šæ¥è¶Šè¿‘ public static final int DRIVING_DIR_LEAVE = 2 ; //下行,å³è½¦è¾†ç¦»è®¾å¤‡éƒ¨ç½²ç‚¹è¶Šæ¥è¶Šè¿œ } //车辆æµé‡ç»Ÿè®¡è½¦è¾†è¡Œé©¶æ–¹å‘ä¿¡æ¯ public static class NET_TRAFFIC_FLOWSTAT_INFO_DIR extends SdkStructure { public int emDrivingDir; //è¡Œé©¶æ–¹å‘ (å‚è§NET_FLOWSTAT_DIRECTION) public byte[] szUpGoing = new byte[FLOWSTAT_ADDR_NAME]; //上行地点 public byte[] szDownGoing = new byte[FLOWSTAT_ADDR_NAME]; //下行地点 public byte[] reserved= new byte[32]; //ä¿ç•™å—节 } public static class NET_TRAFFIC_JAM_STATUS extends SdkStructure { public static final int JAM_STATUS_UNKNOW = 0; //未知 public static final int JAM_STATUS_CLEAR = 1; //通畅 public static final int JAM_STATUS_JAMMED = 2; //æ‹¥å µ } public static class NET_TRAFFIC_FLOW_STATE extends SdkStructure { public int nLane; // 车é“å· public int dwState; // 状æ€å€¼ // 1- æµé‡è¿‡å¤§ // 2- æµé‡è¿‡å¤§æ¢å¤ // 3- æ£å¸¸ // 4- æµé‡è¿‡å° // 5- æµé‡è¿‡å°æ¢å¤ public int dwFlow; // æµé‡å€¼, å•ä½: 辆 public int dwPeriod; // æµé‡å€¼å¯¹åº”的统计时间 public NET_TRAFFIC_FLOWSTAT_INFO_DIR stTrafficFlowDir; // 车é“æ–¹å‘ä¿¡æ¯ public int nVehicles; // 通过车辆总数 public float fAverageSpeed; // å¹³å‡è½¦é€Ÿ,å•ä½km/h public float fAverageLength; // å¹³å‡è½¦é•¿,å•ä½ç±³ public float fTimeOccupyRatio; // 时间å 有率,å³å•ä½æ—¶é—´å†…通过æ–é¢çš„车辆所用时间的总和å å•ä½æ—¶é—´çš„比例 public float fSpaceOccupyRatio; // 空间å 有率,å³æŒ‰ç™¾åˆ†çŽ‡è®¡é‡çš„车辆长度总和除以时间间隔内车辆平å‡è¡Œé©¶è·ç¦» public float fSpaceHeadway; // 车头间è·,相邻车辆之间的è·ç¦»,å•ä½ç±³/辆 public float fTimeHeadway; // 车头时è·,å•ä½ç§’/辆 public float fDensity; // 车辆密度,æ¯å…¬é‡Œçš„车辆数,å•ä½è¾†/km public int nOverSpeedVehicles; // 超速车辆数 public int nUnderSpeedVehicles; // 低速车辆数 public int nLargeVehicles; // 大车交通é‡(9ç±³<车长<12ç±³),辆/å•ä½æ—¶é—´ public int nMediumVehicles; // ä¸åž‹è½¦äº¤é€šé‡(6ç±³<车长<9ç±³),辆/å•ä½æ—¶é—´ public int nSmallVehicles; // å°è½¦äº¤é€šé‡(4ç±³<车长<6ç±³),辆/å•ä½æ—¶é—´, public int nMotoVehicles; // 摩托交通é‡(微型车,车长<4ç±³),辆/å•ä½æ—¶é—´, public int nLongVehicles; // 超长交通é‡(车长>=12ç±³),辆/å•ä½æ—¶é—´, public int nVolume; // 交通é‡, 辆/å•ä½æ—¶é—´, æŸæ—¶é—´é—´éš”通过车é“ã€é“路或其他通é“上一点的车辆数,常以1å°æ—¶è®¡, public int nFlowRate; // æµçŽ‡å°è½¦å½“é‡,辆/å°æ—¶, 车辆通过车é“ã€é“è·¯æŸä¸€æ–é¢æˆ–æŸä¸€è·¯æ®µçš„当é‡å°æ—¶æµé‡ public int nBackOfQueue; // 排队长度,å•ä½ï¼šç±³, 从信å·äº¤å‰å£åœè½¦çº¿åˆ°ä¸Šæ¸¸æŽ’队车辆末端之间的è·ç¦» public int nTravelTime; // 旅行时间,å•ä½ï¼šç§’, 车辆通过æŸä¸€æ¡é“路所用时间。包括所有åœè½¦å»¶è¯¯ public int nDelay; // 延误,å•ä½ï¼šç§’,驾驶员ã€ä¹˜å®¢æˆ–行人花费的é¢å¤–的行程时间 public byte[] byDirection = new byte[MAX_DRIVING_DIR_NUM]; // 车é“æ–¹å‘,详è§NET_ROAD_DIRECTION public byte byDirectionNum; // 车é“行驶方å‘个数 public byte[] reserved1 = new byte[3]; // å—èŠ‚å¯¹é½ public int emJamState; // é“路拥挤状况 (å‚è§ NET_TRAFFIC_JAM_STATUS ) // æŒ‰è½¦è¾†ç±»åž‹ç»Ÿè®¡äº¤é€šé‡ 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; // é“è·¯ç‰çº§, å‚考 NET_TRAFFIC_ROAD_RANK public int nState; // æµé‡çŠ¶æ€ // 1- æµé‡è¿‡å¤§(æ‹¥å µ) // 2- æµé‡è¿‡å¤§æ¢å¤(ç•¥å µ) // 3- æ£å¸¸ // 4- æµé‡è¿‡å°(通畅) // 5- æµé‡è¿‡å°æ¢å¤(良好) public int bOccupyHeadCoil; // 车头虚拟线圈是å¦è¢«å 用 TURE表示å 用,FALSE表示未å 用 public int bOccupyTailCoil; // 车尾虚拟线圈是å¦è¢«å 用 TURE表示å 用,FALSE表示未å 用 public int bStatistics; // æµé‡æ•°æ®æ˜¯å¦æœ‰æ•ˆ TURE表示有效,FALSEè¡¨ç¤ºæ— æ•ˆ public int nLeftVehicles; // 左转车辆总数,å•ä½:分钟 public int nRightVehicles; // å³è½¬è½¦è¾†æ€»æ•°,å•ä½:分钟 public int nStraightVehicles; // 直行车辆总数,å•ä½:分钟 public int nUTurnVehicles; // 掉头车辆总数,å•ä½:分钟 public NET_POINT stQueueEnd; // æ¯ä¸ªè½¦é“的最åŽä¸€è¾†è½¦åæ ‡,采用8192åæ ‡ç³» public double dBackOfQueue; // 排队长度,å•ä½ï¼šç±³, 从信å·äº¤å‰å£åœè½¦çº¿åˆ°ä¸Šæ¸¸æŽ’队车辆末端之间的è·ç¦» public int dwPeriodByMili; // æµé‡å€¼çš„毫秒时间,值ä¸è¶…过60000,å’ŒdwPeriod一起使用,æµé‡å€¼æ€»æ—¶é—´:dwPeriod*60*1000+dwPeriodByMili(å•ä½ï¼šæ¯«ç§’) public int nBusVehicles; // 公交车交通é‡(辆/å•ä½æ—¶é—´) public int nMPVVehicles; // MPV交通é‡(辆/å•ä½æ—¶é—´) public int nMidPassengerCarVehicles; // ä¸å®¢è½¦äº¤é€šé‡(辆/å•ä½æ—¶é—´) public int nMiniCarriageVehicles; // 微型轿车交通é‡(辆/å•ä½æ—¶é—´) public int nOilTankTruckVehicles; // æ²¹ç½è½¦äº¤é€šé‡(辆/å•ä½æ—¶é—´) public int nPickupVehicles; // çš®å¡è½¦äº¤é€šé‡(辆/å•ä½æ—¶é—´) public int nSUVVehicles; // SUV交通é‡(辆/å•ä½æ—¶é—´) public int nSUVorMPVVehicles; // SUV或者MPV交通é‡(辆/å•ä½æ—¶é—´) public int nTankCarVehicles; // 槽ç½è½¦äº¤é€šé‡(辆/å•ä½æ—¶é—´) public int nUnknownVehicles; // 未知车辆交通é‡(辆/å•ä½æ—¶é—´) public int emCustomFlowAttribute; // 车é“æµé‡ä¿¡æ¯å±žæ€§ public int nRoadFreeLength; // é“路空闲长度,例:如设定路段长度为100米,实际检测到排队长度为30米,那么é“路空闲长度就为70米,å•ä½ï¼šç±³ 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]; // 空间å æœ‰ç›®æ ‡ä¸ªæ•°ï¼Œå³åŒºåŸŸè½¦è¾†æ•°ï¼Œè¯¥è½¦é“内指定区域的车辆数目,支æŒè½¦é“内多区域统计,ä¸åŒåŒºåŸŸè½¦è¾†æ•°ä½¿ç”¨|符å·åˆ†éš”。 public int nPresetID; // 云å°é¢„置点,çƒæœºé¢„置点必大于0 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 + ", 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 + ", reserved1=" + Arrays.toString(reserved1) + ", 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 + ", 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 + '}'; } } //事件类型 EVENT_IVS_TRAFFIC_FLOWSTATE(交通æµé‡äº‹ä»¶)对应数æ®å—æè¿°ä¿¡æ¯ public static class DEV_EVENT_TRAFFIC_FLOW_STATE extends SdkStructure { public int nChannelID; // 通é“å· public byte[] szName = new byte[NET_EVENT_NAME_LEN]; // 事件å称 public int nRuleID; // 规则编å·,ç”¨äºŽæ ‡ç¤ºå“ªä¸ªè§„åˆ™è§¦å‘的事件,缺çœæ—¶é»˜è®¤ä¸º0 public byte[] bReserved1 = new byte[4]; // å—èŠ‚å¯¹é½ public int PTS; // 时间戳(å•ä½æ˜¯æ¯«ç§’) public NET_TIME_EX UTC; // 事件å‘生的时间 public int nEventID; // 事件ID public int nSequence; // åºå· public int nStateNum; // æµé‡çŠ¶æ€æ•°é‡ public NET_TRAFFIC_FLOW_STATE[] stuStates = (NET_TRAFFIC_FLOW_STATE[])new NET_TRAFFIC_FLOW_STATE().toArray(NET_MAX_LANE_NUM); // æµé‡çŠ¶æ€, æ¯ä¸ªè½¦é“对应数组ä¸ä¸€ä¸ªå…ƒç´ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // æ™ºèƒ½äº‹ä»¶å…¬å…±ä¿¡æ¯ public int nStopVehiclenum; // é™æ¢è½¦è¾†æ•°ï¼Œå½“å‰æ—¶åˆ»æ£€æµ‹èŒƒå›´å†…车速å°äºŽæŸä¸ªé˜€å€¼çš„车辆数,å•ä½ï¼šè¾† public int nDetectionAreaVehicleNum; // 车辆总数,当å‰æ—¶åˆ»æ£€æµ‹èŒƒå›´å†…检测到的所有车é“内的车辆总数,å•ä½ï¼šè¾† public byte[] bReserved = new byte[884]; // ä¿ç•™å—节 } // 图片分辨率 public static class NET_RESOLUTION_INFO extends SdkStructure { public short snWidth;//宽 public short snHight;//高 @Override public String toString() { return "NET_RESOLUTION_INFO{" + "宽=" + snWidth + ",高=" + snHight + '}'; } } public static class EM_COMMON_SEAT_TYPE extends 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;//副驾驶 } // è¿è§„çŠ¶æ€ public static class EVENT_COMM_STATUS extends SdkStructure { public byte bySmoking;//是å¦æŠ½çƒŸ public byte byCalling;//是å¦æ‰“ç”µè¯ public byte[] szReserved = new byte[14];//预留å—段 } public static class NET_SAFEBELT_STATE extends SdkStructure { public static final int SS_NUKNOW = 0;//未知 public static final int SS_WITH_SAFE_BELT = 1;//已系安全带 public static final int SS_WITHOUT_SAFE_BELT = 2;//未系安全带 } //é®é˜³æ¿çŠ¶æ€ public static class NET_SUNSHADE_STATE extends SdkStructure { public static final int SS_NUKNOW_SUN_SHADE = 0;//未知 public static final int SS_WITH_SUN_SHADE = 1;//有é®é˜³æ¿ public static final int SS_WITHOUT_SUN_SHADE = 2;//æ— é®é˜³æ¿ } // 驾驶ä½è¿è§„ä¿¡æ¯ public static class EVENT_COMM_SEAT extends SdkStructure { public int bEnable;//是å¦æ£€æµ‹åˆ°åº§é©¾ä¿¡æ¯, 类型BOOL, å–值0或者1 public int emSeatType;//座驾类型,0:未识别;1:主驾驶; å–值为EM_COMMON_SEAT_TYPEä¸çš„值 public EVENT_COMM_STATUS stStatus;//è¿è§„çŠ¶æ€ public int emSafeBeltStatus;//安全带状æ€, å–值为NET_SAFEBELT_STATEä¸çš„值 public int emSunShadeStatus;//é®é˜³æ¿çŠ¶æ€, å–值为NET_SUNSHADE_STATEä¸çš„值 public byte[] szReserved = new byte[24];//预留å—节 } // 车辆物件 public static class EVENT_COMM_ATTACHMENT extends SdkStructure { public int emAttachmentType;//物件类型, å–值为EM_COMM_ATTACHMENT_TYPEä¸çš„值 public NET_RECT stuRect;//åæ ‡ public byte[] bReserved = new byte[20];//预留å—节 } //NTPæ ¡æ—¶çŠ¶æ€ public static class EM_NTP_STATUS extends SdkStructure { public static final int NET_NTP_STATUS_UNKNOWN = 0; public static final int NET_NTP_STATUS_DISABLE = 1; public static final int NET_NTP_STATUS_SUCCESSFUL = 2; public static final int NET_NTP_STATUS_FAILED = 3; } // äº¤é€šæŠ“å›¾å›¾ç‰‡ä¿¡æ¯ public static class EVENT_PIC_INFO extends SdkStructure { public int nOffset; // 原始图片å移,å•ä½å—节 public int nLength; // 原始图片长度,å•ä½å—节 public int nIndexInData; // åœ¨ä¸Šä¼ å›¾ç‰‡æ•°æ®ä¸çš„图片åºå· } public static class EVENT_COMM_INFO extends SdkStructure { public int emNTPStatus; // NTPæ ¡æ—¶çŠ¶æ€, å–值为EM_NTP_STATUSä¸çš„值 public int nDriversNum; // 驾驶员信æ¯æ•° public Pointer pstDriversInfo; // 驾驶员信æ¯æ•°æ®ï¼Œç±»åž‹ä¸º NET_MSG_OBJECT_EX* public Pointer pszFilePath; // 本地硬盘或者sdå¡æˆåŠŸå†™å…¥è·¯å¾„,为NULLæ—¶,路径ä¸å˜åœ¨ï¼Œ 类型为char * public Pointer pszFTPPath; // 设备æˆåŠŸå†™åˆ°ftpæœåŠ¡å™¨çš„路径, 类型为char * public Pointer pszVideoPath; // 当å‰æŽ¥å…¥éœ€è¦èŽ·å–当å‰è¿ç« çš„å…³è”视频的FTPä¸Šä¼ è·¯å¾„ï¼Œ 类型为char * public EVENT_COMM_SEAT[] stCommSeat = new EVENT_COMM_SEAT[COMMON_SEAT_MAX_NUMBER];// 驾驶ä½ä¿¡æ¯ public int nAttachmentNum; // 车辆物件个数 public EVENT_COMM_ATTACHMENT[] stuAttachment = new EVENT_COMM_ATTACHMENT[NET_MAX_ATTACHMENT_NUM];//è½¦è¾†ç‰©ä»¶ä¿¡æ¯ public int nAnnualInspectionNum; // å¹´æ£€æ ‡å¿—ä¸ªæ•° public NET_RECT[] stuAnnualInspection = new NET_RECT[NET_MAX_ANNUUALINSPECTION_NUM];//å¹´æ£€æ ‡å¿— public float fHCRatio; // HC所å 比例,å•ä½ï¼š% public float fNORatio; // NO所å 比例,å•ä½ï¼š% public float fCOPercent; // CO所å 百分比,å•ä½ï¼š% å–值0~100 public float fCO2Percent; // CO2所å 百分比,å•ä½ï¼š% å–值0~100 public float fLightObscuration; // ä¸é€å…‰åº¦ï¼Œå•ä½ï¼š% å–值0~100 public int nPictureNum; // åŽŸå§‹å›¾ç‰‡å¼ æ•° public EVENT_PIC_INFO[] stuPicInfos =new EVENT_PIC_INFO[NET_MAX_EVENT_PIC_NUM];// åŽŸå§‹å›¾ç‰‡ä¿¡æ¯ public float fTemperature; // 温度值,å•ä½æ‘„æ°åº¦ public int nHumidity; // 相对湿度百分比值 public float fPressure; // 气压值,å•ä½Kpa public float fWindForce; // 风力值,å•ä½m/s public int nWindDirection; // 风å‘,å•ä½åº¦,范围:[0,360] public float fRoadGradient; // é“è·¯å¡åº¦å€¼,å•ä½åº¦ public float fAcceleration; // åŠ é€Ÿåº¦å€¼,å•ä½:m/s2 public NET_RFIDELETAG_INFO stuRFIDEleTagInfo=new NET_RFIDELETAG_INFO(); // RFID 电åè½¦ç‰Œæ ‡ç¾ä¿¡æ¯ public EVENT_PIC_INFO stuBinarizedPlateInfo=new EVENT_PIC_INFO(); // äºŒå€¼åŒ–è½¦ç‰ŒæŠ å›¾ public EVENT_PIC_INFO stuVehicleBodyInfo=new EVENT_PIC_INFO(); // è½¦èº«ç‰¹å†™æŠ å›¾ public int emVehicleTypeInTollStation; // 收费站车型分类,详è§EM_VEHICLE_TYPE public int emSnapCategory; // 抓æ‹çš„类型,默认为机动车,详è§EM_SNAPCATEGORY public int nRegionCode; // 车牌所属地区代ç ,默认-1表示未识别 public int emVehicleTypeByFunc; // 按功能划分的车辆类型,详è§EM_VEHICLE_TYPE_BY_FUNC public int emStandardVehicleType; // æ ‡å‡†è½¦è¾†ç±»åž‹ï¼Œè¯¦è§EM_STANDARD_VEHICLE_TYPE public int nExtraPlateCount; // é¢å¤–è½¦ç‰Œæ•°é‡ public byte[] szExtraPlateNumer = new byte[3*32]; // é¢å¤–è½¦ç‰Œä¿¡æ¯ /** 海外车辆类型ä¸çš„å类别 {@link com.iailab.netsdk.lib.enumeration.EM_OVERSEA_VEHICLE_CATEGORY_TYPE} */ public int emOverseaVehicleCategory; /** 车牌所属国家的çœã€å·žç‰åœ°åŒºå */ public byte[] szProvince=new byte[64]; /** 物体在雷达åæ ‡ç³»ä¸çš„ä¿¡æ¯,å•ä½ï¼šç±³ï¼Œè®¾å¤‡è§†è§’:å³æ‰‹æ–¹å‘为Xè½´æ£å‘,æ£å‰æ–¹ä¸ºYè½´æ£å‘ */ public NET_EVENT_RADAR_INFO stuRadarInfo=new NET_EVENT_RADAR_INFO(); /** 触å‘事件时物体的GPSä¿¡æ¯ */ public NET_EVENT_GPS_INFO stuGPSInfo=new NET_EVENT_GPS_INFO(); /** 辅车牌信æ¯ï¼ŒæŸäº›å›½å®¶æˆ–地区一车多牌,比如港澳三地车,一车会有3个车牌,其ä¸ä¸€ä¸ªä¸»è½¦ç‰Œï¼Œä¸€èˆ¬æ˜¯å†…地å‘给香港或澳门的能以æ¤åœ¨å†…地行驶的"港澳牌"ï¼›å¦å¤–两个分别是香港牌或澳门牌,是得以在香港或澳门行驶的牌照,而这两个则称为辅牌,有辅牌的车的车牌相关信æ¯åˆ™å¡«åœ¨æ¤å—段,目å‰æœ€å¤š2个辅车牌 */ public NET_EXTRA_PLATES[] stuExtraPlates=new NET_EXTRA_PLATES[2]; /** 辅车牌有效个数 */ public int nExtraPlatesCount; /** 车牌识别置信度 */ public int nPlateRecogniseConf; /** 车辆姿æ€ç½®ä¿¡åº¦ */ public int nVecPostureConf; /** 车身颜色置信度 */ public int nVecColorConf; /** 特殊车辆识别结果置信度 */ public int nSpecialVehConf; /** 机动车是å¦ä¸ºå¤§è§’度 */ public int nIsLargeAngle; /** 当å‰æœºåŠ¨è½¦è½¦èº«æ˜¯å¦æ›¾ç»å…³è”车牌 */ public int nIsRelatedPlate; /** 机动车检测置信度 */ public int nDetectConf; /** 机动车清晰度分值 */ public int nClarity; /** 机动车完整度评分 */ public int nCompleteScore; /** 机动车优选分数 */ public int nQeScore; /** 预留å—节 */ public byte[] bReserved=new byte[128]; public byte[] szCountry = new byte[20]; // 国家 public EVENT_COMM_INFO(){ for(int i=0;i<stCommSeat.length;i++){ stCommSeat[i]=new EVENT_COMM_SEAT(); } for(int i=0;i<stuAttachment.length;i++){ stuAttachment[i]=new EVENT_COMM_ATTACHMENT(); } for(int i=0;i<stuAnnualInspection.length;i++){ stuAnnualInspection[i]=new NET_RECT(); } for(int i=0;i<stuPicInfos.length;i++){ stuPicInfos[i]=new EVENT_PIC_INFO(); } for(int i=0;i<stuExtraPlates.length;i++){ stuExtraPlates[i]=new NET_EXTRA_PLATES(); } } } //收费站车型分类 public static class EM_VEHICLE_TYPE extends SdkStructure { public static final int EM_VEHICLE_TYPE_UNKNOWN = 0; // 未知 public static final int EM_VEHICLE_TYPE_PASSENGERCAR1 = 1; // 客1 public static final int EM_VEHICLE_TYPE_TRUCK1 = 2; // è´§1 public static final int EM_VEHICLE_TYPE_PASSENGERCAR2 = 3; // 客2 public static final int EM_VEHICLE_TYPE_TRUCK2 = 4; // è´§2 public static final int EM_VEHICLE_TYPE_PASSENGERCAR3 = 5; // 客3 public static final int EM_VEHICLE_TYPE_TRUCK3 = 6; // è´§3 public static final int EM_VEHICLE_TYPE_PASSENGERCAR4 = 7; // 客4 public static final int EM_VEHICLE_TYPE_TRUCK4 = 8; // è´§4 public static final int EM_VEHICLE_TYPE_PASSENGERCAR5 = 9; // 客5 public static final int EM_VEHICLE_TYPE_TRUCK5 = 10; // è´§5 } //抓æ‹çš„类型 public static class EM_SNAPCATEGORY extends SdkStructure { public static final int EM_SNAPCATEGORY_MOTOR = 0; // 机动车 public static final int EM_SNAPCATEGORY_NONMOTOR = 1; // éžæœºåŠ¨è½¦ } // RFID 电åè½¦ç‰Œæ ‡ç¾ä¿¡æ¯ public static class NET_RFIDELETAG_INFO extends SdkStructure { public byte[] szCardID = new byte[MAX_RFIDELETAG_CARDID_LEN]; // å¡å· public int nCardType; // å¡å·ç±»åž‹, 0:交通管ç†æœºå…³å‘è¡Œå¡, 1:æ–°è½¦å‡ºåŽ‚é¢„è£…å¡ public int emCardPrivince; // å¡å·çœä»½, 对应 EM_CARD_PROVINCE public byte[] szPlateNumber = new byte[NET_MAX_PLATE_NUMBER_LEN]; // 车牌å·ç public byte[] szProductionDate = new byte[MAX_RFIDELETAG_DATE_LEN]; // 出厂日期 public int emCarType; // 车辆类型, 对应 EM_CAR_TYPE public int nPower; // 功率,å•ä½ï¼šåƒç“¦æ—¶ï¼ŒåŠŸçŽ‡å€¼èŒƒå›´0~254ï¼›255表示该车功率大于å¯å˜å‚¨çš„最大功率值 public int nDisplacement; // 排é‡,å•ä½ï¼šç™¾æ¯«å‡ï¼ŒæŽ’é‡å€¼èŒƒå›´0~254ï¼›255表示该车排é‡å¤§äºŽå¯å˜å‚¨çš„最大排é‡å€¼ public int nAntennaID; // 天线ID,å–值范围:1~4 public int emPlateType; // å·ç‰Œç§ç±», 对应 EM_PLATE_TYPE public byte[] szInspectionValidity = new byte[MAX_RFIDELETAG_DATE_LEN]; // 检验有效期,年-月 public int nInspectionFlag; // é€¾æœŸæœªå¹´æ£€æ ‡å¿—, 0:已年检, 1:逾期未年检 public int nMandatoryRetirement; // 强制报废期,从检验有效期开始,è·ç¦»å¼ºåˆ¶æŠ¥åºŸæœŸçš„å¹´æ•° public int emCarColor; // 车身颜色, 对应 EM_CAR_COLOR_TYPE public int nApprovedCapacity; // æ ¸å®šè½½å®¢é‡ï¼Œè¯¥å€¼<0æ—¶ï¼šæ— æ•ˆï¼›æ¤å€¼è¡¨ç¤ºæ ¸å®šè½½å®¢ï¼Œå•ä½ä¸ºäºº public int nApprovedTotalQuality; // æ¤å€¼è¡¨ç¤ºæ€»è´¨é‡ï¼Œå•ä½ä¸ºç™¾åƒå…‹ï¼›è¯¥å€¼<0æ—¶ï¼šæ— æ•ˆï¼›è¯¥å€¼çš„æœ‰æ•ˆèŒƒå›´ä¸º0~0x3FF,0x3FF(1023)表示数æ®å€¼è¶…过了å¯å˜å‚¨çš„最大值 public NET_TIME_EX stuThroughTime; // 过车时间 public int emUseProperty; // 使用性质, 对应 EM_USE_PROPERTY_TYPE public byte[] szPlateCode = new byte[MAX_COMMON_STRING_8]; // å‘牌代å·ï¼ŒUTF-8ç¼–ç public byte[] szPlateSN = new byte[MAX_COMMON_STRING_16]; // å·ç‰Œå·ç åºå·ï¼ŒUTF-8ç¼–ç public byte[] szTID = new byte[MAX_COMMON_STRING_64]; // æ ‡ç¾(å”¯ä¸€æ ‡è¯†), UTF-8ç¼–ç public byte[] bReserved = new byte[40]; // ä¿ç•™å—节,留待扩展. } // è½¦æ£€å™¨å†—ä½™ä¿¡æ¯ public static class NET_SIG_CARWAY_INFO_EX extends SdkStructure { public byte[] byRedundance = new byte[8];//由车检器产生抓æ‹ä¿¡å·å†—ä½™ä¿¡æ¯ public byte[] bReserved = new byte[120];//ä¿ç•™å—段 } // 颜色RGBA public static class NET_COLOR_RGBA extends SdkStructure { public int nRed;//红 public int nGreen;//绿 public int nBlue;//è“ public int nAlpha;//é€æ˜Ž public String toString() { return "[" + nRed + " " + nGreen + " " + nBlue + " " + nAlpha + "]"; } } // TrafficCar äº¤é€šè½¦è¾†ä¿¡æ¯ public static class DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO extends SdkStructure { public byte[] szPlateNumber = new byte[32]; //车牌å·ç public byte[] szPlateType = new byte[32]; //å·ç‰Œç±»åž‹å‚è§VideoAnalyseRuleä¸è½¦ç‰Œç±»åž‹å®šä¹‰ public byte[] szPlateColor = new byte[32]; //车牌颜色"Blue","Yellow", public byte[] szVehicleColor = new byte[32]; //车身颜色"White", public int nSpeed; //速度å•ä½Km/H public byte[] szEvent = new byte[64]; //触å‘的相关事件å‚è§äº‹ä»¶åˆ—表Event public byte[] szViolationCode = new byte[32]; //è¿ç« 代ç 详è§TrafficGlobal.ViolationCode public byte[] szViolationDesc = new byte[64]; //è¿ç« æè¿° public int nLowerSpeedLimit; //é€Ÿåº¦ä¸‹é™ public int nUpperSpeedLimit; //é€Ÿåº¦ä¸Šé™ public int nOverSpeedMargin; //é™é«˜é€Ÿå®½é™å€¼å•ä½ï¼škm/h public int nUnderSpeedMargin; //é™ä½Žé€Ÿå®½é™å€¼å•ä½ï¼škm/h public int nLane; //车é“å‚è§äº‹ä»¶åˆ—表EventListä¸å¡å£å’Œè·¯å£äº‹ä»¶ã€‚ public int nVehicleSize; //车辆大å°,-1表示未知,å¦åˆ™æŒ‰ä½ // 第0ä½:"Light-duty", å°åž‹è½¦ // 第1ä½:"Medium", ä¸åž‹è½¦ // 第2ä½:"Oversize", 大型车 // 第3ä½:"Minisize", 微型车 // 第4ä½:"Largesize", 长车 public float fVehicleLength; // 车辆长度å•ä½ç±³ public int nSnapshotMode; // 抓æ‹æ–¹å¼0-未分类,1-全景,2-近景,4-åŒå‘抓æ‹,8-åå‘抓æ‹,16-å·ç‰Œå›¾åƒ public byte[] szChannelName = new byte[32]; // 本地或远程的通é“å称,å¯ä»¥æ˜¯åœ°ç‚¹ä¿¡æ¯æ¥æºäºŽé€šé“æ ‡é¢˜é…ç½®ChannelTitle.Name public byte[] szMachineName = new byte[256]; // 本地或远程设备å称æ¥æºäºŽæ™®é€šé…ç½®General.MachineName public byte[] szMachineGroup = new byte[256]; // 机器分组或å«è®¾å¤‡æ‰€å±žå•ä½é»˜è®¤ä¸ºç©º,用户å¯ä»¥å°†ä¸åŒçš„设备编为一组,便于管ç†,å¯é‡å¤ã€‚ public byte[] szRoadwayNo = new byte[64]; // é“è·¯ç¼–å· public byte[] szDrivingDirection = new byte[3*NET_MAX_DRIVINGDIRECTION];// // è¡Œé©¶æ–¹å‘ , "DrivingDirection" : ["Approach", "", ""], // "Approach"-上行,å³è½¦è¾†ç¦»è®¾å¤‡éƒ¨ç½²ç‚¹è¶Šæ¥è¶Šè¿‘ï¼›"Leave"-下行, // å³è½¦è¾†ç¦»è®¾å¤‡éƒ¨ç½²ç‚¹è¶Šæ¥è¶Šè¿œ,第二和第三个å‚数分别代表上行和 // 下行的两个地点 public Pointer szDeviceAddress; // 设备地å€,OSDå åŠ åˆ°å›¾ç‰‡ä¸Šçš„,æ¥æºäºŽé… ç½®TrafficSnapshot.DeviceAddress,'\0'ç»“æŸ public byte[] szVehicleSign = new byte[32]; // è½¦è¾†æ ‡è¯†,例如 public NET_SIG_CARWAY_INFO_EX stuSigInfo; // 由车检器产生抓æ‹ä¿¡å·å†—ä½™ä¿¡æ¯ public Pointer szMachineAddr; // 设备部署地点 public float fActualShutter; // 当å‰å›¾ç‰‡æ›å…‰æ—¶é—´,å•ä½ä¸ºæ¯«ç§’ public byte byActualGain; // 当å‰å›¾ç‰‡å¢žç›Š,范围为0~100 public byte byDirection; // 车é“æ–¹å‘,0-å—å‘北1-西å—å‘东北2-西å‘东 public byte[] byReserved = new byte[2]; public Pointer szDetailedAddress; // 详细地å€,作为szDeviceAddress的补充 public byte[] szDefendCode = new byte[NET_COMMON_STRING_64];//图片防伪ç public int nTrafficBlackListID; // å…³è”ç¦æ¢åå•æ•°æ®åº“记录默认主键ID,0,æ— æ•ˆï¼›>0,ç¦æ¢åå•æ•°æ®è®°å½• 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.iailab.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 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.iailab.netsdk.lib.enumeration.EM_PLATE_ATTRIBUTE} */ public int emPlateAttribute; /** * 交通车辆信æ¯æ‰©å±•, refer to {@link com.iailab.netsdk.lib.structure.NET_TRAFFICCAR_INFO_EXTERN} */ public Pointer pTrafficInfoExtern; /** * ä¿ç•™å—节,留待扩展 */ public byte[] bReserved = new byte[132 - 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.iailab.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 byte[] bReserved = new byte[184];//ä¿ç•™å—节,留待扩展. public com.iailab.netsdk.lib.structure.DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar = new com.iailab.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 NET_MSG_OBJECT stuObject = new NET_MSG_OBJECT(); /** * è½¦èº«ä¿¡æ¯ */ public NET_MSG_OBJECT stuVehicle = new NET_MSG_OBJECT(); /** * äº‹ä»¶å¯¹åº”æ–‡ä»¶ä¿¡æ¯ */ public NET_EVENT_FILE_INFO stuFileInfo = new 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 NET_RESOLUTION_INFO stuResolution = new NET_RESOLUTION_INFO(); /** * äº¤é€šè½¦è¾†ä¿¡æ¯ */ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar = new DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO(); /** * 车ä½ç»¼åˆçš„状æ€,0-å 用,1-空闲,2-压线 */ public int nParkingSpaceStatus; /** * åœè½¦åœºä¿¡æ¯ */ public DEV_TRAFFIC_PARKING_INFO stTrafficParingInfo = new 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 byte[] bReserved = new byte[364]; /** * å…¬å…±ä¿¡æ¯ */ public EVENT_COMM_INFO stCommInfo = new EVENT_COMM_INFO(); /** * 车ä½å›¾ç‰‡ä¿¡æ¯ */ public NET_INTELLIGENCE_IMAGE_INFO stuParkingImage = new NET_INTELLIGENCE_IMAGE_INFO(); /** * 车ä½ç½®ä¿¡åº¦ï¼ˆ0-100) */ public int nConfidence; /** * 是å¦è·¨ä½ {@link com.iailab.netsdk.lib.enumeration.EM_ACROSS_PARKING} */ public int emAcrossParking; /** * åœè½¦æ–¹å‘ {@link com.iailab.netsdk.lib.enumeration.EM_PARKINGSPACE_DIRECTION} */ public int emParkingDirection; /** * ç¦åœçŠ¶æ€ {@link com.iailab.netsdk.lib.enumeration.EM_FORBID_PARKING_STATUS} */ public int emForbidParkingStatus; /** * 是å¦å°è½¦å å¤§è½¦ä½ {@link com.iailab.netsdk.lib.enumeration.EM_SMALL_OCCUPY_LARGE} */ public int emSmallOccupyLarge; /** * 是å¦ä¸ºéžå…许åå•è½¦è¾† {@link com.iailab.netsdk.lib.enumeration.EM_NON_ALLOW_LIST_CAR} */ public int emNonAllowListCar; /** * 是å¦ä¸ºéžæ–°èƒ½æºè½¦è¾† {@link com.iailab.netsdk.lib.enumeration.EM_NON_NEW_ENERGY_CAR} */ public int emNonNewEnergyCar; /** * 为图片信æ¯åšé¢„ç•™å—节,新增的å—段请在该ä¿ç•™å—节下é¢æ·»åŠ */ public byte[] byReserved1 = new byte[992]; /** * 触å‘类型 {@link com.iailab.netsdk.lib.enumeration.EM_PARKING_TRIGGER_TYPE} */ public int emTriggerType; /** * 一ä½å¤šè½¦ä¿¡æ¯, 如果车ä½æ¤å‰æ²¡æœ‰è½¦å 用, ä¸ä¼šå¸¦æœ‰æœ¬å—æ®µä¿¡æ¯ */ public DEV_OCCUPIED_WARNING_INFO stuOccupiedWarningInfo = new DEV_OCCUPIED_WARNING_INFO(); /** * 所有使能的车ä½å· */ public ParkingNoWithSize32[] szAllParkingNo = new ParkingNoWithSize32[12]; /** * 使能车ä½å·çš„个数 */ public int nParkingNoNum; /** * 车ä½æœ‰è½¦çš„事件类型 {@link com.iailab.netsdk.lib.enumeration.EM_PARKING_SPACE_TYPE} */ public int emParkingSpaceType; /** * åœè½¦å˜æ›´ä¿¡æ¯ */ public NET_PARKING_CHANGE_INFO stuParkingChangeInfo = new 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<szAllParkingNo.length;i++){ szAllParkingNo[i] = new ParkingNoWithSize32(); } } } // åœè½¦å˜æ›´ä¿¡æ¯ public static class NET_PARKING_CHANGE_INFO extends SdkStructure { public byte[] szPreParkingNo = new byte[32]; // å˜æ›´å‰çš„è½¦ä½ public byte[] szAfterParkingNo = new byte[32]; // å˜æ›´åŽçš„è½¦ä½ public int nStrandTime; // å˜æ›´è½¦ä½åœè½¦æ—¶é•¿ï¼Œå•ä½ï¼šç§’ public byte[] byReserved = new byte[252]; // ä¿ç•™å—节 } // 车ä½æœ‰è½¦äº‹ä»¶ç±»åž‹ public static class EM_PARKING_SPACE_TYPE { public static int EM_PARKING_SPACE_TYPE_UNKNOWN = -1; // 未知 public static int EM_PARKING_SPACE_TYPE_NORMAL = 0; // æ£å¸¸é©¶å…¥ public static int EM_PARKING_SPACE_TYPE_CHANGE = 1; // 泊车å˜æ›´äº‹ä»¶ } // 是å¦è·¨ä½ public static class EM_ACROSS_PARKING { public static int EM_ACROSS_PARKING_UNKNOWN = 0; // 未知 public static int EM_ACROSS_PARKING_NO = 1; // æœªè·¨ä½ public static int EM_ACROSS_PARKING_YES = 2; // è·¨ä½ } // 一ä½å¤šè½¦ä¿¡æ¯ public class DEV_OCCUPIED_WARNING_INFO extends SdkStructure { public byte[] szParkingNo = new byte[32]; // 车ä½å· public DEV_OCCUPIED_WARNING_PLATE_NUMBER[] szPlateNumber = new DEV_OCCUPIED_WARNING_PLATE_NUMBER[5]; // 车牌å·ç public int nPlateNumber; // è½¦ç‰Œæ•°é‡ public byte[] bReserved = new byte[508]; // 预留å—节 public DEV_OCCUPIED_WARNING_INFO(){ for(int i = 0;i<szPlateNumber.length;i++){ szPlateNumber[i] = new DEV_OCCUPIED_WARNING_PLATE_NUMBER(); ; } } } public class DEV_OCCUPIED_WARNING_PLATE_NUMBER extends SdkStructure { public byte[] plateNumber = new byte[64]; } // 事件类型 EVENT_IVS_TRAFFIC_PARKINGSPACENOPARKING(车ä½æ— 车事件)对应的数æ®å—æè¿°ä¿¡æ¯ // 由于历å²åŽŸå› ,如果è¦å¤„ç†å¡å£äº‹ä»¶,DEV_EVENT_TRAFFICJUNCTION_INFOå’ŒEVENT_IVS_TRAFFICGATEè¦ä¸€èµ·å¤„ç†,以防æ¢æœ‰è§†é¢‘电è¦å’Œçº¿åœˆç”µè¦åŒæ—¶æŽ¥å…¥å¹³å°çš„情况å‘生 // å¦å¤–EVENT_IVS_TRAFFIC_TOLLGATEåªæ”¯æŒæ–°å¡å£äº‹ä»¶çš„é…ç½® /** * @author 260611 * @description 事件类型 EVENT_IVS_TRAFFIC_PARKINGSPACENOPARKING(车ä½æ— 车事件)对应的数æ®å—æè¿°ä¿¡æ¯ * @origin autoTool * @date 2023/06/20 10:13:06 */ public static class DEV_EVENT_TRAFFIC_PARKINGSPACENOPARKING_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 NET_MSG_OBJECT stuObject = new NET_MSG_OBJECT(); /** * è½¦èº«ä¿¡æ¯ */ public NET_MSG_OBJECT stuVehicle = new NET_MSG_OBJECT(); /** * äº‹ä»¶å¯¹åº”æ–‡ä»¶ä¿¡æ¯ */ public NET_EVENT_FILE_INFO stuFileInfo = new 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 NET_RESOLUTION_INFO stuResolution = new NET_RESOLUTION_INFO(); /** * äº¤é€šè½¦è¾†ä¿¡æ¯ */ public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar = new DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO(); /** * åœè½¦åœºä¿¡æ¯ */ public DEV_TRAFFIC_PARKING_INFO stTrafficParingInfo = new 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 pstuImageInfo; /** * 图片信æ¯ä¸ªæ•° */ public int nImageInfoNum; /** * ä¿ç•™å—节 */ public byte[] bReserved = new byte[364 - NetSDKLib.POINTERSIZE]; /** * å…¬å…±ä¿¡æ¯ */ public EVENT_COMM_INFO stCommInfo = new EVENT_COMM_INFO(); /** * å…¨æ™¯å¤§å›¾ä¿¡æ¯ */ public NET_INTELLIGENCE_IMAGE_INFO stuGlobalImage = new NET_INTELLIGENCE_IMAGE_INFO(); /** * 车ä½å›¾ç‰‡ä¿¡æ¯ */ public NET_INTELLIGENCE_IMAGE_INFO stuParkingImage = new NET_INTELLIGENCE_IMAGE_INFO(); /** * 车ä½ç½®ä¿¡åº¦ï¼ˆ0-100) */ public int nConfidence; /** * 为图片信æ¯åšé¢„ç•™å—节,新增的å—段请在该ä¿ç•™å—节下é¢æ·»åŠ */ public byte[] byReserved1 = new byte[1016]; /** * 触å‘æ–¹å¼ {@link com.iailab.netsdk.lib.enumeration.EM_PARKING_TRIGGER_TYPE} */ public int emTriggerType; /** * 匹é…åˆ°çš„è½¦è¾†é©¶å…¥ä¿¡æ¯ */ public DEV_MATCH_PARKING_INFO[] stuMatchParkingInfo = new DEV_MATCH_PARKING_INFO[5]; /** * 匹é…到的车辆驶入信æ¯ä¸ªæ•° */ public int nMatchParkingNum; /** * 所有使能的车ä½å· */ public ParkingNoWithSize32[] szAllParkingNo = new ParkingNoWithSize32[12]; /** * 使能车ä½å·çš„个数 */ public int nParkingNoNum; /** * 事件公共扩展å—段结构体 */ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); public DEV_EVENT_TRAFFIC_PARKINGSPACENOPARKING_INFO() { for (int i = 0; i < stuMatchParkingInfo.length; i++) { stuMatchParkingInfo[i] = new DEV_MATCH_PARKING_INFO(); } for(int i = 0;i<szAllParkingNo.length;i++){ szAllParkingNo[i] = new ParkingNoWithSize32(); } } } public class ParkingNoWithSize32 extends SdkStructure { public byte[] parkingNo = new byte[32]; } // 匹é…åˆ°çš„è½¦è¾†é©¶å…¥ä¿¡æ¯ public class DEV_MATCH_PARKING_INFO extends SdkStructure { public byte[] szParkingNo = new byte[32]; // 驶入的车ä½å· public byte[] szPlateNum = new byte[64]; // 驶入的车牌å·ä¿¡æ¯ public int nSimilarity; // 驶出车牌å·ç 与匹é…到的驶入车牌å·ç 的相似度, 全匹é…æˆåŠŸä¸º100, 失败为0。 // 如果开å¯æ¨¡ç³ŠåŒ¹é…, 全匹é…ä¸ä¸º100则进行模糊匹é…, 如下 // 1. 除汉å—外,所有的数å—å’Œå—æ¯ä¸€æ · 为95 // 2. 有一ä½æ•°å—或å—æ¯ä¸ä¸€æ ·ï¼Œåˆ™ä¸º90 // 3. 有两ä½æ•°å—或å—æ¯ä¸ä¸€æ ·ï¼Œåˆ™ä¸º80 // 其他的情况则认为没有匹é…到,则为0 public byte[] bReserved = new byte[508]; // ä¿ç•™å—节 } /** * @author 260611 * @description 事件类型 EVENT_IVS_TRAFFIC_PEDESTRAIN(交通行人事件)对应数æ®å—æè¿°ä¿¡æ¯ * @origin autoTool * @date 2023/08/02 10:47:11 */ public class DEV_EVENT_TRAFFIC_PEDESTRAIN_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 NET_EVENT_FILE_INFO stuFileInfo = new NET_EVENT_FILE_INFO(); /** * 对应图片的分辨率 */ public NET_RESOLUTION_INFO stuResolution = new NET_RESOLUTION_INFO(); /** * æŠ“å›¾æ ‡å¿—(按ä½),0ä½:"*",1ä½:"Timing",2ä½:"Manual",3ä½:"Marked",4ä½:"Event",5ä½:"Mosaic",6ä½:"Cutout" */ public int dwSnapFlagMask; /** * 事件动作,0表示脉冲事件,1表示æŒç»æ€§äº‹ä»¶å¼€å§‹,2表示æŒç»æ€§äº‹ä»¶ç»“æŸ; */ public byte bEventAction; public byte[] bReserved2 = new byte[2]; /** * 图片的åºå·, åŒä¸€æ—¶é—´å†…(精确到秒)å¯èƒ½æœ‰å¤šå¼ 图片, 从0开始 */ public byte byImageIndex; /** * 对应车é“å· */ public int nLane; /** * 检测到的物体 */ public NET_MSG_OBJECT stuObject = new NET_MSG_OBJECT(); /** * æ™ºèƒ½äº‹ä»¶å…¬å…±ä¿¡æ¯ */ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo = new EVENT_INTELLI_COMM_INFO(); /** * äº¤é€šè½¦è¾†éƒ¨åˆ†ä¿¡æ¯ */ public EVENT_TRAFFIC_CAR_PART_INFO stuTrafficCarPartInfo = new EVENT_TRAFFIC_CAR_PART_INFO(); /** * 行人信æ¯, 废弃 */ public EVENT_VEHICLE_INFO stuVehicle = new EVENT_VEHICLE_INFO(); /** * 行人信æ¯, refer to {@link NET_MSG_OBJECT} */ public Pointer pstuVehicle; /** * ä¿ç•™å—节 */ public byte[] bReserved = new byte[252 - POINTERSIZE]; /** * å…¬å…±ä¿¡æ¯ */ public EVENT_COMM_INFO stCommInfo = new EVENT_COMM_INFO(); public DEV_EVENT_TRAFFIC_PEDESTRAIN_INFO() { } } //事件类型 EVENT_IVS_TRAFFIC_THROW(交通抛洒物å“事件)对应数æ®å—æè¿°ä¿¡æ¯ public static class DEV_EVENT_TRAFFIC_THROW_INFO extends SdkStructure { public int nChannelID; // 通é“å· public byte[] szName = new byte[NET_EVENT_NAME_LEN]; // 事件å称 public byte[] bReserved1 = new byte[8]; // å—èŠ‚å¯¹é½ public int PTS; // 时间戳(å•ä½æ˜¯æ¯«ç§’) public NET_TIME_EX UTC; // 事件å‘生的时间 public int nEventID; // 事件ID public NET_EVENT_FILE_INFO stuFileInfo; // äº‹ä»¶å¯¹åº”æ–‡ä»¶ä¿¡æ¯ public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率 public int dwSnapFlagMask; // æŠ“å›¾æ ‡å¿—(按ä½),0ä½:"*",1ä½:"Timing",2ä½:"Manual",3ä½:"Marked",4ä½:"Event",5ä½:"Mosaic",6ä½:"Cutout" public byte bEventAction; // 事件动作,0表示脉冲事件,1表示æŒç»æ€§äº‹ä»¶å¼€å§‹,2表示æŒç»æ€§äº‹ä»¶ç»“æŸ; public byte[] bReserved2 = new byte[2]; public byte byImageIndex; // 图片的åºå·, åŒä¸€æ—¶é—´å†…(精确到秒)å¯èƒ½æœ‰å¤šå¼ 图片, 从0开始 public int nLane; // 对应车é“å· public NET_MSG_OBJECT stuObject; // 检测到的物体 public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // æ™ºèƒ½äº‹ä»¶å…¬å…±ä¿¡æ¯ public EVENT_TRAFFIC_CAR_PART_INFO stuTrafficCarPartInfo; // äº¤é€šè½¦è¾†éƒ¨åˆ†ä¿¡æ¯ public NET_GPS_INFO stuGPSInfo; // GPSä¿¡æ¯ public byte[] bReserved = new byte[340]; // ä¿ç•™å—节 public EVENT_COMM_INFO stCommInfo; // å…¬å…±ä¿¡æ¯ } // äº¤é€šè½¦è¾†éƒ¨åˆ†ä¿¡æ¯ public class EVENT_TRAFFIC_CAR_PART_INFO extends SdkStructure { public byte[] szMachineName = new byte[128]; // 本地或远程设备å称 æ¥æºäºŽæ™®é€šé…ç½®General.MachineName public byte[] szRoadwayNo = new byte[32]; // é“è·¯ç¼–å· public byte[] bReserved = new byte[352]; // ä¿ç•™å—节 } // 事件上报æºå¸¦å¡ç‰‡ä¿¡æ¯ public static class EVENT_CARD_INFO extends SdkStructure { public byte[] szCardNumber = new byte[NET_EVENT_CARD_LEN];// å¡ç‰‡åºå·å—符串 public byte[] bReserved = new byte[32]; // ä¿ç•™å—节,留待扩展. } // 车辆方å‘ä¿¡æ¯ public static class EM_VEHICLE_DIRECTION extends SdkStructure { public static final int NET_VEHICLE_DIRECTION_UNKOWN = 0; // 未知 public static final int NET_VEHICLE_DIRECTION_HEAD = 1; // 车头 public static final int NET_VEHICLE_DIRECTION_TAIL = 2; // 车尾 public static final int NET_VEHICLE_DIRECTION_VEHBODYSIDE = 3; // 车身(侧é¢) } // å¼€é—¸çŠ¶æ€ public static class EM_OPEN_STROBE_STATE extends SdkStructure { public static final int NET_OPEN_STROBE_STATE_UNKOWN = 0; // æœªçŸ¥çŠ¶æ€ public static final int NET_OPEN_STROBE_STATE_CLOSE = 1; // 关闸 public static final int NET_OPEN_STROBE_STATE_AUTO = 2; // 自动开闸 public static final int NET_OPEN_STROBE_STATE_MANUAL = 3; // 手动开闸 } public static class RESERVED_PARA extends SdkStructure { public int dwType; //pDataçš„æ•°æ®ç±»åž‹ //当[dwType]为 RESERVED_TYPE_FOR_INTEL_BOX æ—¶,pData 对应为结构体 RESERVED_DATA_INTEL_BOX çš„åœ°å€ //当[dwType]为 RESERVED_TYPE_FOR_COMMON æ—¶,[pData]对应为结构体 NET_RESERVED_COMMON çš„ç»“æž„ä½“åœ°å€ //当[dwType]为 RESERVED_TYPE_FOR_PATH æ—¶,[pData]对应结构体NET_RESERVED_PATHçš„ç»“æž„ä½“åœ°å€ public Pointer pData; //æ•°æ®,由用户申请内å˜ï¼Œå¤§å°å‚考对应的结构体 } // 事件类型 EVENT_IVS_TRAFFICJUNCTION 交通路å£è€è§„则事件/视频电è¦ä¸Šçš„交通å¡å£è€è§„则事件对应的数æ®å—æè¿°ä¿¡æ¯ // 由于历å²åŽŸå› ,如果è¦å¤„ç†å¡å£äº‹ä»¶,DEV_EVENT_TRAFFICJUNCTION_INFO å’Œ EVENT_IVS_TRAFFICGATEè¦ä¸€èµ·å¤„ç† // 以防æ¢æœ‰è§†é¢‘电è¦å’Œçº¿åœˆç”µè¦åŒæ—¶æŽ¥å…¥å¹³å°çš„情况å‘生, å¦å¤–EVENT_IVS_TRAFFIC_TOLLGATEåªæ”¯æŒæ–°å¡å£äº‹ä»¶çš„é…ç½® public static class DEV_EVENT_TRAFFICJUNCTION_INFO extends SdkStructure { public int nChannelID; // 通é“å· public byte[] szName = new byte[NET_EVENT_NAME_LEN]; // 事件å称 public byte byMainSeatBelt; // 主驾驶座,系安全带状æ€,1-系安全带,2-未系安全带 public byte bySlaveSeatBelt; // 副驾驶座,系安全带状æ€,1-系安全带,2-未系安全带 public byte byVehicleDirection; // 当å‰è¢«æŠ“æ‹åˆ°çš„车辆是车头还是车尾,å…·ä½“è¯·è§ EM_VEHICLE_DIRECTION public byte byOpenStrobeState; // 开闸状æ€,å…·ä½“è¯·è§ EM_OPEN_STROBE_STATE public double PTS; // 时间戳(å•ä½æ˜¯æ¯«ç§’) public NET_TIME_EX UTC; // 事件å‘生的时间 public int nEventID; // 事件ID public NET_MSG_OBJECT stuObject; // 检测到的物体 public int nLane; // 对应车é“å· public int dwBreakingRule; // è¿å规则掩ç ,第一ä½:闯红ç¯; // 第二ä½:ä¸æŒ‰è§„定车é“行驶; // 第三ä½:逆行; 第四ä½ï¼šè¿ç« 掉头; // 第五ä½:äº¤é€šå µå¡ž; 第å…ä½:交通异常空闲 // 第七ä½:压线行驶; å¦åˆ™é»˜è®¤ä¸º:交通路å£äº‹ä»¶ public NET_TIME_EX RedLightUTC; // 红ç¯å¼€å§‹UTC时间 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 byDirection; // è·¯å£æ–¹å‘,1-表示æ£å‘,2-表示åå‘ public byte byLightState; // LightState表示红绿ç¯çŠ¶æ€:0 未知,1 绿ç¯,2 红ç¯,3 é»„ç¯ public byte byReserved; // ä¿ç•™å—节 public byte byImageIndex; // 图片的åºå·, åŒä¸€æ—¶é—´å†…(精确到秒)å¯èƒ½æœ‰å¤šå¼ 图片, 从0开始 public NET_MSG_OBJECT stuVehicle; // è½¦èº«ä¿¡æ¯ 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[] szRecordFile = new byte[NET_COMMON_STRING_128];// 报è¦å¯¹åº”的原始录åƒæ–‡ä»¶ä¿¡æ¯ public EVENT_JUNCTION_CUSTOM_INFO stuCustomInfo; // è‡ªå®šä¹‰ä¿¡æ¯ public byte byPlateTextSource; // 车牌识别æ¥æº, 0:本地算法识别,1:åŽç«¯æœåŠ¡å™¨ç®—法识别 public byte[] bReserved1 = new byte[3]; // ä¿ç•™å—节,留待扩展. public NET_GPS_INFO stuGPSInfo; // GPSä¿¡æ¯ public byte byNoneMotorInfo; // 0-æ— éžæœºåŠ¨è½¦äººå‘˜ä¿¡æ¯ä¿¡æ¯,1-有éžæœºåŠ¨è½¦äººå‘˜ä¿¡æ¯ä¿¡æ¯ æ¤å—段为1时下é¢11个å—段生效 public byte byBag; // 是å¦èƒŒåŒ…, 0-未知 1-ä¸èƒŒåŒ… 2-背包 public byte byUmbrella; // 是å¦æ‰“伞, 0-未知 1-ä¸æ‰“伞 2-打伞 public byte byCarrierBag; // 手æ包状æ€,0-未知 1-没有 2-有 public byte byHat; // 是å¦æˆ´å¸½å, 0-未知 1-ä¸æˆ´å¸½å 2-戴帽å public byte byHelmet; // 头盔状æ€,0-未知 1-没有 2-有 public byte bySex; // 性别,0-未知 1-男性 2-女性 public byte byAge; // 年龄 public NET_COLOR_RGBA stuUpperBodyColor; // 上身颜色 public NET_COLOR_RGBA stuLowerBodyColor; // 下身颜色 public byte byUpClothes; // 上身衣æœç±»åž‹ 0:未知 1:长袖 2:çŸè¢– 3:长裤 4:çŸè£¤ 5:裙å 6:背心 7:超çŸè£¤ 8:超çŸè£™ public byte byDownClothes; // 下身衣æœç±»åž‹ 0:未知 1:长袖 2:çŸè¢– 3:长裤 4:çŸè£¤ 5:裙å 6:背心 7:超çŸè£¤ 8:超çŸè£™ public NET_EXTENSION_INFO stuExtensionInfo; // æ‰©å±•ä¿¡æ¯ public byte[] bReserved = new byte[22]; // ä¿ç•™å—节,留待扩展. public int nTriggerType; // TriggerType:触å‘类型,0车检器,1é›·è¾¾,2视频 public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // äº¤é€šè½¦è¾†ä¿¡æ¯ public int dwRetCardNumber; // å¡ç‰‡ä¸ªæ•° public EVENT_CARD_INFO[] stuCardInfo = (EVENT_CARD_INFO[])new EVENT_CARD_INFO().toArray(NET_EVENT_MAX_CARD_NUM);// å¡ç‰‡ä¿¡æ¯ public EVENT_COMM_INFO stCommInfo; // å…¬å…±ä¿¡æ¯ public int bNonMotorInfoEx; // 是å¦æœ‰éžæœºåŠ¨è½¦ä¿¡æ¯, 1-true; 0-false public VA_OBJECT_NONMOTOR stuNonMotor; // éžæœºåŠ¨è½¦ä¿¡æ¯ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // æ™ºèƒ½äº‹ä»¶å…¬å…±ä¿¡æ¯ public EVENT_PLATE_INFO stuPlateInfo = new EVENT_PLATE_INFO(); // 车辆信æ¯ï¼Œè®°å½•äº†è½¦å¤´ã€è½¦å°¾è½¦ç‰Œå·å’Œè½¦ç‰Œé¢œè‰² public int bSceneImage; // 全景图是å¦æœ‰æ•ˆ public SCENE_IMAGE_INFO_EX stuSceneImage = new SCENE_IMAGE_INFO_EX(); // 全景图 public Pointer pstObjects; // æ£€æµ‹åˆ°çš„å¤šä¸ªè½¦ç‰Œä¿¡æ¯ public int nObjectNum; // 检测到的多个车牌个数 public int emVehiclePosture; // 车辆姿势 public int nVehicleSignConfidence; // è½¦æ ‡ç½®ä¿¡åº¦ï¼ˆèŒƒå›´ï¼š0~100) public int nVehicleCategoryConfidence; // 车型置信度(范围:0~100) public int emCarDrivingDirection; // è§„åˆ™åŒºå†…è½¦è¾†è¡Œé©¶æ–¹å‘ public NET_IMAGE_INFO_EX2 stuImageInfo[] = new NET_IMAGE_INFO_EX2[32]; // 图片信æ¯æ•°ç»„ public int nImageInfoNum; // 图片信æ¯ä¸ªæ•° public byte[] szSerialNo =new byte[128]; // 和客户端请求的抓图åºåˆ—å·å¯¹åº” public int nAlarmCompliance; // 报è¦åˆè§„, 0:未知, 1:ä¸åˆè§„, 2:åˆè§„ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); // 事件公共扩展å—段结构体 public NET_MSG_OBJECT_SUPPLEMENT stObjectInfoEx; // 视频分æžç‰©ä½“ä¿¡æ¯è¡¥å……å—段,与 DH_MSG_OBJECT çš„åˆé›†è¡¨ç¤ºè§†é¢‘分æžç‰©ä½“ä¿¡æ¯ public Pointer pstuObjectEx2; // 检测到的物体扩展,指针对应结构体NET_MSG_OBJECT_EX2 public Pointer pstuVehicleEx2; // 车身信æ¯æ‰©å±•ï¼ŒæŒ‡é’ˆå¯¹åº”结构体NET_MSG_OBJECT_EX2 public Pointer pstuObjectsEx2; // 检测到的多个车牌信æ¯æ‰©å±•ï¼Œæ•°é‡ä¸ºnObjectNum,指针对应结构体NET_MSG_OBJECT_EX2 public int nPresetID; // 事件触å‘的预置点å·ï¼Œä»Ž1开始, 0表示未知 public byte[] byReserved2 = new byte[584-3*POINTERSIZE]; // ä¿ç•™å—节 public DEV_EVENT_TRAFFICJUNCTION_INFO(){ for(int i = 0; i < 32; i ++){ stuImageInfo[i] = new NET_IMAGE_INFO_EX2(); } } } // éžæœºåŠ¨è½¦å¯¹è±¡ public static class VA_OBJECT_NONMOTOR extends SdkStructure { /** * 物体ID,æ¯ä¸ªID表示一个唯一的物体 */ public int nObjectID; /** * éžæœºåŠ¨è½¦å类型 */ public int emCategory; /** * 包围盒, éžæœºåŠ¨è½¦çŸ©å½¢æ¡†ï¼Œ0~8191相对åæ ‡ */ public DH_RECT stuBoundingBox = new DH_RECT(); /** * 包围盒, éžæœºåŠ¨è½¦çŸ©å½¢æ¡†ï¼Œç»å¯¹åæ ‡ */ public DH_RECT stuOriginalBoundingBox = new DH_RECT(); /** * éžæœºåŠ¨è½¦é¢œè‰², RGBA */ public NET_COLOR_RGBA stuMainColor = new NET_COLOR_RGBA(); /** * éžæœºåŠ¨è½¦é¢œè‰², 枚举 */ public int emColor; /** * 是å¦æœ‰æŠ 图 */ public int bHasImage; /** * 物体截图 */ public NET_NONMOTOR_PIC_INFO stuImage = new NET_NONMOTOR_PIC_INFO(); /** * éª‘è½¦äººæ•°é‡ */ public int nNumOfCycling; /** * 骑车人特å¾,个数和nNumOfCyclingå…³è” */ public NET_RIDER_INFO[] stuRiderList = (NET_RIDER_INFO[])new NET_RIDER_INFO().toArray(NetSDKLib.MAX_RIDER_NUM); /** * 全景广角图 */ public SCENE_IMAGE_INFO stuSceneImage = new SCENE_IMAGE_INFO(); /** * 人脸全景广角图 */ public FACE_SCENE_IMAGE stuFaceSceneImage = new FACE_SCENE_IMAGE(); /** * æ£€æµ‹åˆ°çš„äººè„¸æ•°é‡ */ public int nNumOfFace; /** * 物体速度,å•ä½ä¸ºkm/h */ public float fSpeed; /** * éžæœºåŠ¨è½¦ç‰¹å¾å€¼æ•°æ®åœ¨äºŒè¿›åˆ¶æ•°æ®ä¸çš„ä½ç½®ä¿¡æ¯ */ public NET_NONMOTOR_FEATURE_VECTOR_INFO stuNonMotorFeatureVectorInfo = new NET_NONMOTOR_FEATURE_VECTOR_INFO(); /** * éžæœºåŠ¨è½¦ç‰¹å¾å€¼ç‰ˆæœ¬å· */ public int emNonMotorFeatureVersion; /** * éžæœºåŠ¨è½¦ç‰Œä¿¡æ¯ */ public NET_NONMOTOR_PLATE_INFO stuNomotorPlateInfo = new NET_NONMOTOR_PLATE_INFO(); /** * 物体型心(ä¸æ˜¯åŒ…å›´ç›’ä¸å¿ƒ), 0-8191相对åæ ‡, 相对于大图 */ public NET_POINT stuObjCenter = new NET_POINT(); /** * 人脸特å¾å€¼æ•°æ®åœ¨äºŒè¿›åˆ¶æ•°æ®ä¸çš„ä½ç½®ä¿¡æ¯, 废弃 */ public NET_FACE_FEATURE_VECTOR_INFO stuFaceFeatureVectorInfo = new NET_FACE_FEATURE_VECTOR_INFO(); /** * 人脸特å¾å€¼ç‰ˆæœ¬å·, 废弃 */ public int emFaceFeatureVersion; /** éžæœºåŠ¨è½¦ç±»åž‹ç½®ä¿¡åº¦ */ public int nCategoryConf; /** éžæœºåŠ¨è½¦ç‰¹å¾å€¼ç‰ˆæœ¬å·-å—符串 */ public byte[] szNonMotorFeatureVersion=new byte[32]; /** éžæœºåŠ¨è½¦çš„角度 {@link com.iailab.netsdk.lib.enumeration.EM_OBJECT_NONMOTORANGLE_TYPE} */ public int emNonMotorAngle; /** éžæœºåŠ¨è½¦è½¦ç¯® {@link com.iailab.netsdk.lib.enumeration.EM_OBJECT_BASKET_TYPE} */ public int emBasket; /** éžæœºåŠ¨è½¦åŽå¤‡ç®± {@link com.iailab.netsdk.lib.enumeration.EM_OBJECT_STORAGEBOX_TYPE} */ public int emStorageBox; /** éžæœºåŠ¨è½¦å®Œæ•´åº¦è¯„分,范围[0,100],越大越完整 */ public int nCompleteScore; /** éžæœºåŠ¨è½¦æ¸…晰度分值 å–值范围为[1,100], 越大越清晰, 0ä¸ºæ— æ•ˆå€¼ */ public int nClarityScore; /** ç›®æ ‡å‡ºçŽ°çš„å¸§å· */ public int nStartSequence; /** ç›®æ ‡æ¶ˆå¤±çš„å¸§å· */ public int nEndSequence; /** éžæœºåŠ¨è½¦è½¦èº«åŠéª‘手整体,是å¦è™šæ£€ï¼Œ0: å¦ï¼Œ1: 是 */ public int bIsErrorDetect; /** 图åƒæˆåƒå…‰æºç±»åž‹, 0:未知, 1:å¯è§å…‰æˆåƒ, 2:近红外æˆåƒ(ç°åº¦å›¾), 3:çƒçº¢å¤–æˆåƒ(伪彩色) */ public int nImageLightType; /** éžæœºåŠ¨è½¦ç»¼åˆè´¨é‡è¯„分,范围[0,100],越大质é‡è¶Šå¥½ */ public int nAbsScore; /** 雨棚(伞)类型 {@link com.iailab.netsdk.lib.enumeration.EM_RAIN_SHED_TYPE} */ public int emRainShedType; /** æ™ºèƒ½ç‰©ä½“å…¨å±€å”¯ä¸€ç‰©ä½“æ ‡è¯† 有效数æ®ä½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 byte[] szReserved=new byte[2]; /** éžæœºåŠ¨è½¦çš„骑手和车身是å¦å•ç‹¬æå–, 0:å¦, 1:是 */ public int nHumanFeatureExtractSingle; /** 结构化éžæœºåŠ¨è½¦æ”¯æŒäººä½“图 */ public SCENE_IMAGE_INFO stuHumanImage = new SCENE_IMAGE_INFO(); /** ä¿ç•™ */ public byte[] byReserved=new byte[2848]; } // éžæœºåŠ¨è½¦é…ç‰Œä¿¡æ¯ public static class NET_NONMOTOR_PLATE_INFO extends SdkStructure { public byte[] szPlateNumber=new byte[128]; // éžæœºåŠ¨è½¦è½¦ç‰Œå· public NET_RECT stuBoundingBox; // 包围盒, éžæœºåŠ¨è½¦çŸ©å½¢æ¡†ï¼Œ0~8191相对åæ ‡ public NET_RECT stuOriginalBoundingBox; // 包围盒, éžæœºåŠ¨è½¦çŸ©å½¢æ¡†ï¼Œç»å¯¹åæ ‡ public NET_NONMOTOR_PLATE_IMAGE stuPlateImage; // éžæœºåŠ¨è½¦è½¦ç‰ŒæŠ 图 public int emPlateColor; // 车牌颜色 public byte[] byReserved=new byte[132]; // ä¿ç•™ }; // éžæœºåŠ¨è½¦è½¦ç‰Œå›¾ç‰‡ä¿¡æ¯ public static class NET_NONMOTOR_PLATE_IMAGE extends SdkStructure { public int nOffset; // 在二进制数æ®å—ä¸çš„å移 public int nLength; // å›¾ç‰‡å¤§å° public int nWidth; // 图片宽度 public int nHeight; // 图片高度 public byte[] byReserved=new byte[512]; // ä¿ç•™å—节 }; public static class NET_NONMOTOR_FEATURE_VECTOR_INFO extends SdkStructure { public int nOffset; // éžæœºåŠ¨è½¦ç‰¹å¾å€¼åœ¨äºŒè¿›åˆ¶æ•°æ®ä¸çš„å移, å•ä½:å—节 public int nLength; // éžæœºåŠ¨è½¦ç‰¹å¾å€¼æ•°æ®é•¿åº¦, å•ä½:å—节 public byte[] byReserved = new byte[32]; // ä¿ç•™ } public static class EM_FEATURE_VERSION extends SdkStructure { public static final int EM_FEATURE_VERSION_UNKNOWN = 0; // 未知 public static final int EM_FEATURE_VERSION_FACE_LARGE_1_01_001 = 1; // 人脸,大模型,1.01.001 public static final int EM_FEATURE_VERSION_FACE_LARGE_1_02_001 = 2; // 人脸,大模型,1.02.001 public static final int EM_FEATURE_VERSION_FACE_LARGE_1_03_001 = 3; // 人脸,大模型,1.03.001 public static final int EM_FEATURE_VERSION_FACE_LARGE_1_04_001 = 4; // 人脸,大模型,1.04.001 public static final int EM_FEATURE_VERSION_FACE_MIDDLE_1_01_002 = 31; // 人脸,ä¸æ¨¡åž‹ï¼Œ1.01.002 public static final int EM_FEATURE_VERSION_FACE_MIDDLE_1_02_002 = 32; // 人脸,ä¸æ¨¡åž‹ï¼Œ1.02.002 public static final int EM_FEATURE_VERSION_FACE_MIDDLE_1_03_002 = 33; // 人脸,ä¸æ¨¡åž‹ï¼Œ1.03.002 public static final int EM_FEATURE_VERSION_FACE_MIDDLE_1_04_002 = 34; // 人脸,ä¸æ¨¡åž‹ï¼Œ1.04.002 public static final int EM_FEATURE_VERSION_FACE_SMALL_1_01_003 = 61; // 人脸,å°æ¨¡åž‹ï¼Œ1.01.003 public static final int EM_FEATURE_VERSION_FACE_SMALL_1_02_003 = 62; // 人脸,å°æ¨¡åž‹ï¼Œ1.02.003 public static final int EM_FEATURE_VERSION_HUMAN_NONMOTOR = 91; // 人和éžæœºåŠ¨è½¦ï¼Œå…¨å±€æ— ç‰ˆæœ¬å· 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.00.01 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.00 public static final int EM_FEATURE_VERSION_TRAFFIC = 121; // æœºåŠ¨è½¦ï¼Œå…¨å±€æ— ç‰ˆæœ¬å· public static final int EM_FEATURE_VERSION_TRAFFIC_FLOAT = 122; // 机动车,全局浮点版本å·0 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.01 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.00.02 public static final int EM_FEATURE_VERSION_SHANGTANG_FACE_1_5_0 = 151; // 商汤,人脸,1.5.0 public static final int EM_FEATURE_VERSION_SHANGTANG_FACE_1_8_1 = 152; // 商汤,人脸,1.8.1 public static final int EM_FEATURE_VERSION_SHANGTANG_FACE_2_1_3 = 153; // 商汤,人脸,2.1.3 public static final int EM_FEATURE_VERSION_SHANGTANG_FACE_2_39_6 = 154; // 商汤,人脸,2.39.6 public static final int EM_FEATURE_VERSION_SHANGTANG_FACE_2_39_7 = 155; // 商汤,人脸,2.39.7 public static final int EM_FEATURE_VERSION_SHANGTANG_FACE_2_39_8 = 156; // 商汤,人脸,2.39.8 public static final int EM_FEATURE_VERSION_SHANGTANG_FACE_239 = 157; // 商汤,人脸,239 public static final int EM_FEATURE_VERSION_SHANGTANG_FACE_242 = 158; // 商汤,人脸,242 public static final int EM_FEATURE_VERSION_SHANGTANG_FACE_244 = 159; // 商汤,人脸,244 public static final int EM_FEATURE_VERSION_SHANGTANG_FACE_245 = 160; // 商汤,人脸,245 public static final int EM_FEATURE_VERSION_SHENMO_HUMAN_TRAFFIC_NON_2_4_2 = 181; // æ·±çžï¼Œäººè„¸/机动车/éžæœºåŠ¨è½¦ï¼Œ2.4.2 public static final int EM_FEATURE_VERSION_SHENMO_HUMAN_TRAFFIC_NON_2_5_7 = 182; // æ·±çžï¼Œäººè„¸/机动车/éžæœºåŠ¨è½¦ï¼Œ2.5.7 } // éžæœºåŠ¨è½¦æŠ å›¾ä¿¡æ¯ public static class NET_NONMOTOR_PIC_INFO extends SdkStructure { public int uOffset; // 在二进制数æ®å—ä¸çš„å移 public int uLength; // 图片大å°,å•ä½ï¼šå—节 public int uWidth; // 图片宽度 public int uHeight; // 图片高度 public byte[] szFilePath = new byte[MAX_PATH_LEN]; // 文件路径 public byte[] byReserved = new byte[512]; // ä¿ç•™ } // éª‘è½¦äººè„¸å›¾ç‰‡ä¿¡æ¯ public static class RIDER_FACE_IMAGE_INFO extends SdkStructure { public int uOffset; // 在二进制数æ®å—ä¸çš„å移 public int uLength; // 图片大å°,å•ä½ï¼šå—节 public int uWidth; // 图片宽度 public int uHeight; // 图片高度 public byte[] byReserved = new byte[48]; // ä¿ç•™ } // æ–œè§†çŠ¶æ€ public static class EM_STRABISMUS_TYPE extends 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; // 斜视 } // 是å¦å¸¦çœ¼é•œ public static class EM_HAS_GLASS extends 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; // 戴黑框眼镜 } // 人脸属性 public static class NET_FACE_ATTRIBUTE_EX extends SdkStructure { public int emSex; // 性别,å‚考EM_SEX_TYPE public int nAge; // 年龄,-1表示该å—段数æ®æ— 效 public byte[] szReserved = new byte[4]; // public int emEye; // 眼ç›çŠ¶æ€ï¼Œå‚考EM_EYE_STATE_TYPE public int emMouth; // 嘴巴状æ€ï¼Œå‚考EM_MOUTH_STATE_TYPE public int emMask; // å£ç½©çŠ¶æ€ï¼Œ å‚考EM_MASK_STATE_TYPE public int emBeard; // 胡å状æ€ï¼Œ EM_BEARD_STATE_TYPE public int nAttractive; // é…力值, 0未识别,识别时范围1-100,得分高é…力高 public int emGlass; // 眼镜,å‚考EM_HAS_GLASS public int emEmotion; // 表情,å‚考EM_EMOTION_TYPE public NET_RECT stuBoundingBox; // 包围盒(8192åæ ‡ç³») public byte[] byReserved1 = new byte[4]; // ä¿ç•™ public int emStrabismus; // 斜视状æ€ï¼ŒEM_STRABISMUS_TYPE public byte[] byReserved = new byte[64]; // ä¿ç•™ } // éª‘è½¦äººä¿¡æ¯ public static class NET_RIDER_INFO extends SdkStructure { public int bFeatureValid; // 是å¦è¯†åˆ«åˆ°ç‰¹å¾ä¿¡æ¯, TRUE时下é¢æ•°æ®æ‰æœ‰æ•ˆ, 1-true; 0-false public int emSex; // 性别, 对应枚举 EM_SEX_TYPE public int nAge; // 年龄 public int emHelmet; // 头盔状æ€, 对应枚举 EM_NONMOTOR_OBJECT_STATUS public int emCall; // 是å¦åœ¨æ‰“电è¯, 对应枚举 EM_NONMOTOR_OBJECT_STATUS public int emBag; // 是å¦æœ‰èƒŒåŒ…, 对应枚举 EM_NONMOTOR_OBJECT_STATUS public int emCarrierBag; // 有没有手æ包, 对应枚举 EM_NONMOTOR_OBJECT_STATUS public int emUmbrella; // 是å¦æ‰“伞, 对应枚举 EM_NONMOTOR_OBJECT_STATUS public int emGlasses; // 是å¦æœ‰å¸¦çœ¼é•œ, 对应枚举 EM_NONMOTOR_OBJECT_STATUS public int emMask; // 是å¦å¸¦å£ç½©, 对应枚举 EM_NONMOTOR_OBJECT_STATUS public int emEmotion; // 表情, 对应枚举 EM_EMOTION_TYPE public int emUpClothes; // 上衣类型, 对应枚举 EM_CLOTHES_TYPE public int emDownClothes; // 下衣类型, 对应枚举 EM_CLOTHES_TYPE public int emUpperBodyColor; // 上衣颜色, 对应枚举 EM_OBJECT_COLOR_TYPE public int emLowerBodyColor; // 下衣颜色, 对应枚举 EM_OBJECT_COLOR_TYPE public int bHasFaceImage; // 是å¦æœ‰éª‘è½¦äººäººè„¸æŠ å›¾ä¿¡æ¯ public RIDER_FACE_IMAGE_INFO stuFaceImage; // 骑车人人脸特写æè¿° public int bHasFaceAttributes; // 是å¦æœ‰äººè„¸å±žæ€§ public NET_FACE_ATTRIBUTE_EX stuFaceAttributes; // 人脸属性 public byte[] byReserved = new byte[316]; // ä¿ç•™ } // 性别 public static class EM_SEX_TYPE extends 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; //女性 } // 事件/ç‰©ä½“çŠ¶æ€ public static class EM_NONMOTOR_OBJECT_STATUS extends 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; // 是 } // 表情 public static class EM_EMOTION_TYPE extends 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; // å¹³é™ } public static class EM_CLOTHES_TYPE extends 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; //超çŸè£™ } // éžæœºåŠ¨è½¦å类型 public static class EM_CATEGORY_NONMOTOR_TYPE extends SdkStructure { public static final int EM_CATEGORY_NONMOTOR_TYPE_UNKNOWN = 0; // 未知 public static final int EM_CATEGORY_NONMOTOR_TYPE_TRICYCLE = 1; // "Tricycle" 三轮车 public static final int EM_CATEGORY_NONMOTOR_TYPE_MOTORCYCLE = 2; // "Motorcycle" 摩托车 public static final int EM_CATEGORY_NONMOTOR_TYPE_NON_MOTOR = 3; // "Non-Motor"éžæœºåŠ¨è½¦ public static final int EM_CATEGORY_NONMOTOR_TYPE_BICYCLE = 4; // "Bicycle" 自行车 public static final int EM_CATEGORY_NONMOTOR_TYPE_DUALTRIWHEELMOTORCYCLE = 5; // "DualTriWheelMotorcycle"两ã€ä¸‰è½®æ‘©æ‰˜è½¦ public static final int EM_CATEGORY_NONMOTOR_TYPE_LIGHTMOTORCYCLE = 6; // "LightMotorcycle" 轻便摩托车 public static final int EM_CATEGORY_NONMOTOR_TYPE_EMBASSYMOTORCYCLE = 7; // "EmbassyMotorcycle "使馆摩托车 public static final int EM_CATEGORY_NONMOTOR_TYPE_MARGINALMOTORCYCLE = 8; // "MarginalMotorcycle "领馆摩托车 public static final int EM_CATEGORY_NONMOTOR_TYPE_AREAOUTMOTORCYCLE = 9; // "AreaoutMotorcycle "境外摩托车 public static final int EM_CATEGORY_NONMOTOR_TYPE_FOREIGNMOTORCYCLE = 10; // "ForeignMotorcycle "外ç±æ‘©æ‰˜è½¦ public static final int EM_CATEGORY_NONMOTOR_TYPE_TRIALMOTORCYCLE = 11; // "TrialMotorcycle "试验摩托车 public static final int EM_CATEGORY_NONMOTOR_TYPE_COACHMOTORCYCLE = 12; // "CoachMotorcycle "教练摩托车 } // 颜色类型 public static class EM_OBJECT_COLOR_TYPE extends 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; // æ— æ³•è¯†åˆ« } public static class NET_SEAT_INFO extends SdkStructure { public NET_RECT stuFaceRect; // 人脸矩形框信æ¯(8192åæ ‡ç³») public byte bySunShade; // é®é˜³æ¿çŠ¶æ€ 0: 未知 1ï¼šæ— é®é˜³æ¿ 2:有é®é˜³æ¿ public byte byDriverCalling; // 打电è¯çŠ¶æ€ 0: 未知 1ï¼šæœªæ‰“ç”µè¯ 2ï¼šæ‰“ç”µè¯ public byte byDriverSmoking; // æŠ½çƒŸçŠ¶æ€ 0: 未知 1:未å¸çƒŸ 2:å¸çƒŸ public byte bySafeBelt; // å®‰å…¨å¸¦çŠ¶æ€ 0: 未知 1:未系安全带 2:系安全带 public byte[] byReserved = new byte[32]; // ä¿ç•™å—节 } public static class NET_VEHICLE_ATTACH extends SdkStructure { public int nType; // 附件类型 0-未知 1-å¹´æ£€æ ‡å¿— 2-挂件 3-纸巾盒 4-香水盒 public NET_RECT stuBoundingBox; // 包围盒信æ¯(8192åæ ‡ç³») public byte[] byReserved = new byte[32]; // ä¿ç•™å—节 } //å¡å£äº‹ä»¶ä¸“ç”¨ä¸ŠæŠ¥å†…å®¹ï¼Œéœ€æ±‚å¢žåŠ åˆ°Custom下 public static class EVENT_JUNCTION_CUSTOM_INFO extends SdkStructure { public EVENT_CUSTOM_WEIGHT_INFO stuWeightInfo; // åŽŸå§‹å›¾ç‰‡ä¿¡æ¯ public int nCbirFeatureOffset; // æ•°æ®å移,å•ä½å—节 (由于结构体ä¿ç•™å—节有é™çš„é™åˆ¶,æ·»åŠ åœ¨æ¤å¤„, 下åŒï¼‰ public int nCbirFeatureLength; // æ•°æ®å¤§å°ï¼Œå•ä½å—节 public int dwVehicleHeadDirection; // 车头æœå‘ 0:未知 1:å·¦ 2:ä¸ 3:å³ public int nAvailableSpaceNum; // åœè½¦åœºè½¦ä½ä½™ä½æ•°é‡ public NET_RADAR_FREE_STREAM stuRadarFreeStream; // 雷达自由æµä¿¡æ¯ public NET_CUSTOM_MEASURE_TEMPER stuMeasureTemper; // æµ‹æ¸©ä¿¡æ¯ public byte[] bReserved = new byte[12]; // 预留å—节 } // 雷达自由æµä¿¡æ¯ public static class NET_RADAR_FREE_STREAM extends SdkStructure { public long nABSTime; // 1å¹´1月1æ—¥0时起至今的毫秒数 public int nVehicleID; // 车辆ID public int unOBUMAC; // OBUçš„MACåœ°å€ } //称é‡ä¿¡æ¯ public static class EVENT_CUSTOM_WEIGHT_INFO extends SdkStructure { public int dwRoughWeight; // 毛é‡,车辆满载货物é‡é‡ã€‚å•ä½KG public int dwTareWeight; // çš®é‡,空车é‡é‡ã€‚å•ä½KG public int dwNetWeight; // 净é‡,载货é‡é‡ã€‚å•ä½KG public byte[] bReserved = new byte[28]; // 预留å—节 } // 事件类型 EVENT_IVS_TRAFFICGATE(交通å¡å£è€è§„则事件/线圈电è¦ä¸Šçš„交通å¡å£è€è§„则事件)对应的数æ®å—æè¿°ä¿¡æ¯ // 由于历å²åŽŸå› ,如果è¦å¤„ç†å¡å£äº‹ä»¶,DEV_EVENT_TRAFFICJUNCTION_INFOå’ŒEVENT_IVS_TRAFFICGATEè¦ä¸€èµ·å¤„ç†,以防æ¢æœ‰è§†é¢‘电è¦å’Œçº¿åœˆç”µè¦åŒæ—¶æŽ¥å…¥å¹³å°çš„情况å‘生 // å¦å¤– EVENT_IVS_TRAFFIC_TOLLGATE åªæ”¯æŒæ–°å¡å£äº‹ä»¶çš„é…ç½® public static class DEV_EVENT_TRAFFICGATE_INFO extends SdkStructure { public int nChannelID; // 通é“å· public byte[] szName = new byte[NET_EVENT_NAME_LEN]; // 事件å称 public byte byOpenStrobeState; // 开闸状æ€,具体请è§EM_OPEN_STROBE_STATE public byte bReserved1[] = new byte[3]; // å—èŠ‚å¯¹é½ public double PTS; // 时间戳(å•ä½æ˜¯æ¯«ç§’) public NET_TIME_EX UTC; // 事件å‘生的时间 public int nEventID; // 事件ID public NET_MSG_OBJECT stuObject; // 检测到的物体 public int nLane; // 对应车é“å· public int nSpeed; // 车辆实际速度Km/h public int nSpeedUpperLimit; // é€Ÿåº¦ä¸Šé™ å•ä½ï¼škm/h public int nSpeedLowerLimit; // é€Ÿåº¦ä¸‹é™ å•ä½ï¼škm/h public int dwBreakingRule; // è¿å规则掩ç ,第一ä½:逆行; // 第二ä½:压线行驶; 第三ä½:超速行驶; // 第四ä½ï¼šæ¬ 速行驶; 第五ä½:闯红ç¯;第å…ä½:穿过路å£(å¡å£äº‹ä»¶) // 第七ä½: 压黄线; 第八ä½: 有车å é“; 第ä¹ä½: 黄牌å é“;å¦åˆ™é»˜è®¤ä¸º:交通å¡å£äº‹ä»¶ public NET_EVENT_FILE_INFO stuFileInfo; // äº‹ä»¶å¯¹åº”æ–‡ä»¶ä¿¡æ¯ public NET_MSG_OBJECT stuVehicle; // è½¦èº«ä¿¡æ¯ public byte szManualSnapNo[] = new byte[64]; // 手动抓æ‹åºå· public int nSequence; // 表示抓æ‹åºå·,如3,2,1,1表示抓æ‹ç»“æŸ,0è¡¨ç¤ºå¼‚å¸¸ç»“æŸ public byte bEventAction; // 事件动作,0表示脉冲事件,1表示æŒç»æ€§äº‹ä»¶å¼€å§‹,2表示æŒç»æ€§äº‹ä»¶ç»“æŸ; public byte[] byReserved = new byte[3]; // ä¿ç•™å—节 public byte[] szSnapFlag = new byte[16]; // 设备产生的抓æ‹æ ‡è¯† public byte bySnapMode; // 抓æ‹æ–¹å¼,0-未分类 1-全景 2-近景 4-åŒå‘æŠ“æ‹ 8-åå‘æŠ“æ‹ 16-å·ç‰Œå›¾åƒ public byte byOverSpeedPercentage; // 超速百分比 public byte byUnderSpeedingPercentage; // æ¬ é€Ÿç™¾åˆ†æ¯” public byte byRedLightMargin; // 红ç¯å®¹è®¸é—´éš”时间,å•ä½ï¼šç§’ public byte byDriveDirection; // 行驶方å‘,0-上行(å³è½¦è¾†ç¦»è®¾å¤‡éƒ¨ç½²ç‚¹è¶Šæ¥è¶Šè¿‘),1-下行(å³è½¦è¾†ç¦»è®¾å¤‡éƒ¨ç½²ç‚¹è¶Šæ¥è¶Šè¿œ) public byte[] szRoadwayNo = new byte[32]; // é“è·¯ç¼–å· public byte[] szViolationCode = new byte[16]; // è¿ç« 代ç public byte[] szViolationDesc = new byte[128]; // è¿ç« æè¿° public NET_RESOLUTION_INFO stuResolution; // 对应图片的分辨率 public byte[] szVehicleType= new byte[32]; // 车辆大å°ç±»åž‹ Minisize"微型车,"Light-duty"å°åž‹è½¦,"Medium"ä¸åž‹è½¦, // "Oversize"大型车,"Huge"超大车,"Largesize"长车 "Unknown"未知 public byte byVehicleLenth; // 车辆长度, å•ä½ç±³ public byte byLightState; // LightState表示红绿ç¯çŠ¶æ€:0 未知,1 绿ç¯,2 红ç¯,3 é»„ç¯ public byte byReserved1; // ä¿ç•™å—节,留待扩展 public byte byImageIndex; // 图片的åºå·, åŒä¸€æ—¶é—´å†…(精确到秒)å¯èƒ½æœ‰å¤šå¼ 图片, 从0开始 public int nOverSpeedMargin; // é™é«˜é€Ÿå®½é™å€¼ å•ä½ï¼škm/h public int nUnderSpeedMargin; // é™ä½Žé€Ÿå®½é™å€¼ å•ä½ï¼škm/h public byte[] szDrivingDirection = new byte[3*NET_MAX_DRIVINGDIRECTION]; // // "DrivingDirection" : ["Approach", "", ""],è¡Œé©¶æ–¹å‘ // "Approach"-上行,å³è½¦è¾†ç¦»è®¾å¤‡éƒ¨ç½²ç‚¹è¶Šæ¥è¶Šè¿‘ï¼›"Leave"-下行, // å³è½¦è¾†ç¦»è®¾å¤‡éƒ¨ç½²ç‚¹è¶Šæ¥è¶Šè¿œ,第二和第三个å‚数分别代表上行和 // 下行的两个地点,UTF-8ç¼–ç public byte[] szMachineName = new byte[256]; // 本地或远程设备å称 public byte[] szMachineAddress = new byte[256]; // 机器部署地点ã€é“路编ç public byte[] szMachineGroup = new byte[256]; // 机器分组ã€è®¾å¤‡æ‰€å±žå•ä½ public int dwSnapFlagMask; // æŠ“å›¾æ ‡å¿—(按ä½),具体è§NET_RESERVED_COMMON, 0ä½:"*",1ä½:"Timing",2ä½:"Manual",3ä½:"Marked",4ä½:"Event",5ä½:"Mosaic",6ä½:"Cutout" public NET_SIG_CARWAY_INFO_EX stuSigInfo; // 由车检器产生抓æ‹ä¿¡å·å†—ä½™ä¿¡æ¯ public byte[] szFilePath = new byte[MAX_PATH]; // 文件路径 public NET_TIME_EX RedLightUTC; // 红ç¯å¼€å§‹UTC时间 public Pointer szDeviceAddress; // 设备地å€,OSDå åŠ åˆ°å›¾ç‰‡ä¸Šçš„,æ¥æºäºŽé…ç½®TrafficSnapshot.DeviceAddress,'\0'ç»“æŸ public float fActualShutter; // 当å‰å›¾ç‰‡æ›å…‰æ—¶é—´,å•ä½ä¸ºæ¯«ç§’ public byte byActualGain; // 当å‰å›¾ç‰‡å¢žç›Š,范围为0~100 public byte byDirection; // 0-å—å‘北 1-西å—å‘东北 2-西å‘东 3-西北å‘ä¸œå— 4-北å‘å— 5-东北å‘è¥¿å— 6-东å‘西 7-东å—å‘西北 8-未知 public byte bReserve; // ä¿ç•™å—节, å—èŠ‚å¯¹é½ public byte bRetCardNumber; // å¡ç‰‡ä¸ªæ•° public EVENT_CARD_INFO[] stuCardInfo = (EVENT_CARD_INFO[])new EVENT_CARD_INFO().toArray(NET_EVENT_MAX_CARD_NUM);// å¡ç‰‡ä¿¡æ¯ public byte[] szDefendCode = new byte[NET_COMMON_STRING_64]; // 图片防伪ç public int nTrafficBlackListID; // å…³è”ç¦æ¢åå•æ•°æ®åº“记录默认主键ID, 0,æ— æ•ˆï¼›> 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 byte[] bReserved = new byte[968]; // ä¿ç•™å—节 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 byte[] bReserved = new byte[832]; // ä¿ç•™å—节 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 byte[] bReserved = new byte[968]; // ä¿ç•™å—节 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 byte[] bReserved = new byte[968]; // ä¿ç•™å—节 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 byte[] bReserved = new byte[968]; // ä¿ç•™å—节 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 byte[] bReserved = new byte[1016]; // ä¿ç•™å—节,留待扩展. public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // äº¤é€šè½¦è¾†ä¿¡æ¯ public EVENT_COMM_INFO stCommInfo; // å…¬å…±ä¿¡æ¯ } //事件类型 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 byte[] byReserved = new byte[884]; public EVENT_COMM_INFO stCommInfo; // å…¬å…±ä¿¡æ¯ } //事件类型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 byte[] bReserved = new byte[836]; // ä¿ç•™å—节,留待扩展.留待扩展. public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // äº¤é€šè½¦è¾†ä¿¡æ¯ public EVENT_COMM_INFO stCommInfo; // å…¬å…±ä¿¡æ¯ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new 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 byte[] bReserved = new byte[984]; // ä¿ç•™å—节,留待扩展. public EVENT_COMM_INFO stCommInfo; // å…¬å…±ä¿¡æ¯ } //事件类型 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 byte[] bReserved = new byte[980]; // ä¿ç•™å—节,留待扩展. public EVENT_COMM_INFO stCommInfo; // å…¬å…±ä¿¡æ¯ } //事件类型 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 DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // äº¤é€šè½¦è¾†ä¿¡æ¯ public NET_GPS_INFO stuGPSInfo; // GPSä¿¡æ¯ public byte[] bReserved = new byte[984]; // ä¿ç•™å—节 public EVENT_COMM_INFO stCommInfo; // å…¬å…±ä¿¡æ¯ } // 事件类型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 byte[] byReserved = new byte[728]; // ä¿ç•™å—节 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 NET_TIME_EX UTC = new 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 byte[] byReserved = new byte[128]; // 预留å—节 } // 事件类型 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 byte[] bReserved = new byte[264]; // ä¿ç•™å—节,留待扩展. 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 DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; //äº¤é€šè½¦è¾†ä¿¡æ¯ public 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 byte[] byReserved = new byte[19500]; // 预留å—节 } // 事件类型 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<stuPoints.length;i++){ stuPoints[i]=new NET_POINT(); } } } // 抓图类型 public static class NET_CAPTURE_FORMATS extends SdkStructure { public static final int NET_CAPTURE_BMP = 0; public static final int NET_CAPTURE_JPEG = 1; // 100%è´¨é‡çš„JPEG public static final int NET_CAPTURE_JPEG_70 = 2; // 70%è´¨é‡çš„JPEG public static final int NET_CAPTURE_JPEG_50 = 3; public static final int NET_CAPTURE_JPEG_30 = 4; } // 抓图å‚数结构体 public static class SNAP_PARAMS extends SdkStructure { public int Channel; // æŠ“å›¾çš„é€šé“ public int Quality; // 画质;1~6 public int ImageSize; // ç”»é¢å¤§å°ï¼›0:QCIF,1:CIF,2:D1 public int mode; // 抓图模å¼ï¼›-1:表示åœæ¢æŠ“图, 0:表示请求一帧, 1:表示定时å‘é€è¯·æ±‚, 2:表示连ç»è¯·æ±‚ public int InterSnap; // 时间å•ä½ç§’;若mode=1表示定时å‘é€è¯·æ±‚æ—¶ // åªæœ‰éƒ¨åˆ†ç‰¹æ®Šè®¾å¤‡(如:车载设备)支æŒé€šè¿‡è¯¥å—段实现定时抓图时间间隔的é…ç½® // 建议通过 CFG_CMD_ENCODE é…置的stuSnapFormat[nSnapMode].stuVideoFormat.nFrameRateå—段实现相关功能 public int CmdSerial; // 请求åºåˆ—å·ï¼Œæœ‰æ•ˆå€¼èŒƒå›´ 0~65535,超过范围会被截æ–为 unsigned short public int[] Reserved = new int[4]; } // 对应CLIENT_StartSearchDevicesæŽ¥å£ public static class DEVICE_NET_INFO_EX extends SdkStructure { public int iIPVersion; // 4 for IPV4, 6 for IPV6 public byte[] szIP = new byte[64]; // IPIPV4形如"192.168.0.1" public int nPort; // tcpç«¯å£ public byte[] szSubmask = new byte[64]; // å网掩ç IPV6æ— å网掩ç public byte[] szGateway = new byte[64]; // 网关 public byte[] szMac = new byte[NET_MACADDR_LEN]; // MACåœ°å€ public byte[] szDeviceType = new byte[NET_DEV_TYPE_LEN]; // 设备类型 public byte byManuFactory; // ç›®æ ‡è®¾å¤‡çš„ç”Ÿäº§åŽ‚å•†,具体å‚考EM_IPC_TYPEç±» public byte byDefinition; // 1-æ ‡æ¸…2-高清 public byte bDhcpEn; // Dhcp使能状æ€,true-å¼€,false-å…³, 类型为bool, å–值0或者1 public byte byReserved1; // å—èŠ‚å¯¹é½ public byte[] verifyData = new byte[88]; // æ ¡éªŒæ•°æ®é€šè¿‡å¼‚æ¥æœç´¢å›žè°ƒèŽ·å–(在修改设备IP时会用æ¤ä¿¡æ¯è¿›è¡Œæ ¡éªŒ) public byte[] szSerialNo = new byte[NET_DEV_SERIALNO_LEN]; // åºåˆ—å· public byte[] szDevSoftVersion = new byte[NET_MAX_URL_LEN]; // è®¾å¤‡è½¯ä»¶ç‰ˆæœ¬å· public byte[] szDetailType = new byte[NET_DEV_TYPE_LEN]; // è®¾å¤‡åž‹å· public byte[] szVendor = new byte[NET_MAX_STRING_LEN]; // OEM客户类型 public byte[] szDevName = new byte[NET_MACHINE_NAME_NUM]; // 设备å称 public byte[] szUserName = new byte[NET_USER_NAME_LENGTH_EX]; // 登陆设备用户å(在修改设备IP时需è¦å¡«å†™ï¼‰ public byte[] szPassWord = new byte[NET_USER_NAME_LENGTH_EX]; // 登陆设备密ç (在修改设备IP时需è¦å¡«å†™ï¼‰ public short nHttpPort; // HTTPæœåŠ¡ç«¯å£å·, unsigned short类型 public short wVideoInputCh; // 视频输入通é“æ•° public short wRemoteVideoInputCh; // 远程视频输入通é“æ•° public short wVideoOutputCh; // 视频输出通é“æ•° public short wAlarmInputCh; // 报è¦è¾“入通é“æ•° public short wAlarmOutputCh; // 报è¦è¾“出通é“æ•° public int bNewWordLen; // TRUE使用新密ç å—段szNewPassWord, BOOL类型 public byte[] szNewPassWord = new byte[NET_COMMON_STRING_64]; // 登陆设备密ç (在修改设备IP时需è¦å¡«å†™ï¼‰ public byte byInitStatus; // 设备åˆå§‹åŒ–状æ€ï¼ŒæŒ‰ä½ç¡®å®šåˆå§‹åŒ–çŠ¶æ€ // bit0~1:0-è€è®¾å¤‡ï¼Œæ²¡æœ‰åˆå§‹åŒ–功能 1-未åˆå§‹åŒ–è´¦å· 2-å·²åˆå§‹åŒ–账户 // bit2~3:0-è€è®¾å¤‡ï¼Œä¿ç•™ 1-公网接入未使能 2-公网接入已使能 // bit4~5:0-è€è®¾å¤‡ï¼Œä¿ç•™ 1-手机直连未使能 2-手机直连使能 public byte byPwdResetWay; // 支æŒå¯†ç é‡ç½®æ–¹å¼ï¼šæŒ‰ä½ç¡®å®šå¯†ç é‡ç½®æ–¹å¼ï¼Œåªåœ¨è®¾å¤‡æœ‰åˆå§‹åŒ–è´¦å·æ—¶æœ‰æ„义 // bit0-支æŒé¢„ç½®æ‰‹æœºå· bit1-支æŒé¢„置邮箱 bit2-支æŒæ–‡ä»¶å¯¼å‡º public byte bySpecialAbility; // 设备åˆå§‹åŒ–能力,按ä½ç¡®å®šåˆå§‹åŒ–能力 public byte[] szNewDetailType = new byte[NET_COMMON_STRING_64]; // è®¾å¤‡åž‹å· public int bNewUserName; // TRUE表示使用新用户å(szNewUserName)å—段. BOOL类型 public byte[] szNewUserName = new byte[NET_COMMON_STRING_64]; // 登陆设备用户å(在修改设备IP时需è¦å¡«å†™ï¼‰ public byte byPwdFindVersion; // 密ç 找回的版本å·,设备支æŒå¯†ç é‡ç½®æ—¶æœ‰æ•ˆ; // 0-设备使用的是è€æ–¹æ¡ˆçš„密ç é‡ç½®ç‰ˆæœ¬;1-支æŒé¢„ç•™è”系方å¼è¿›è¡Œå¯†ç é‡ç½®æ“作; // 2-支æŒæ›´æ¢è”系方å¼è¿›è¡Œå¯†ç é‡ç½®æ“作; public byte[] szDeviceID=new byte[24]; // å—段, ä¸ä½œä¸ºé€šç”¨å议,ä¸å¯¹æŽ¥é€šç”¨å®¢æˆ·ç«¯ public int dwUnLoginFuncMask; // 未登陆功能掩ç // Bit0-Wifi列表扫æåŠWLan设置 // Bit1-支æŒä¼šè¯å¤–修改过期密ç // Bit2-设备是å¦æ”¯æŒä¸²å£æ—¥å¿—é‡å®šå‘(æå‰å¼•å¯¼åŠŸèƒ½ï¼‰ public byte[] szMachineGroup=new byte[64]; // 设备分组 public byte[] cReserved=new byte[12]; // 扩展å—段 } // 视频输入通é“ä¿¡æ¯ public static class NET_VIDEO_INPUTS extends SdkStructure { public int dwSize; public byte[] szChnName = new byte[64]; // 通é“å称 public int bEnable; // 使能 public byte[] szControlID = new byte[128]; // 控制ID public byte[] szMainStreamUrl = new byte[MAX_PATH]; // 主ç æµurlåœ°å€ public byte[] szExtraStreamUrl = new byte[MAX_PATH]; // è¾…ç æµurlåœ°å€ public int nOptionalMainUrlCount; // 备用主ç æµåœ°å€æ•°é‡ public byte[] szOptionalMainUrls = new byte[8*MAX_PATH]; // 备用主ç æµåœ°å€åˆ—表 public int nOptionalExtraUrlCount; // 备用辅ç æµåœ°å€æ•°é‡ public byte[] szOptionalExtraUrls = new byte[8*MAX_PATH]; // 备用辅ç æµåœ°å€åˆ—表 public byte[] szCaption=new byte[32]; // 通é“备注 public int emServiceType; // 指ç æµä¼ 输的æœåŠ¡ç±»åž‹ï¼Œå‚考EM_STREAM_TRANSMISSION_SERVICE_TYPE public NET_SOURCE_STREAM_ENCRYPT stuSourceStreamEncrypt; // ç æµåŠ å¯†æ–¹å¼ public NET_VIDEO_INPUTS() { this.dwSize = this.size(); } } // è¿œç¨‹è®¾å¤‡ä¿¡æ¯ public static class NET_REMOTE_DEVICE extends SdkStructure { public int dwSize; public int bEnable; // 使能,1-true 0-false public byte[] szIp = new byte[16]; // IP public byte[] szUser = new byte[8]; // 用户å, 建议使用szUserEx public byte[] szPwd = new byte[8]; // 密ç , 建议使用szPwdEx public int nPort; // ç«¯å£ public int nDefinition; // 清晰度, 0-æ ‡æ¸…, 1-高清 public int emProtocol; // å议类型 NET_DEVICE_PROTOCOL public byte[] szDevName = new byte[64]; // 设备å称 public int nVideoInputChannels; // 视频输入通é“æ•° public int nAudioInputChannels; // 音频输入通é“æ•° public byte[] szDevClass = new byte[32]; // 设备类型, 如IPC, DVR, NVRç‰ public byte[] szDevType = new byte[32]; // 设备具体型å·, 如IPC-HF3300 public int nHttpPort; // Httpç«¯å£ public int nMaxVideoInputCount; // 视频输入通é“最大数 public int nRetVideoInputCount; // 返回实际通é“个数 public Pointer pstuVideoInputs; // 视频输入通é“ä¿¡æ¯ NET_VIDEO_INPUTS* public byte[] szMachineAddress = new byte[256]; // 设备部署地 public byte[] szSerialNo = new byte[48]; // 设备åºåˆ—å· public int nRtspPort; // Rtspç«¯å£ /*以下用于新平å°æ‰©å±•*/ public byte[] szUserEx = new byte[32]; // 用户å public byte[] szPwdEx = new byte[32]; // 密ç public byte[] szVendorAbbr=new byte[NET_COMMON_STRING_32]; // 厂商缩写 public byte[] szSoftwareVersion=new byte[NET_COMMON_STRING_64]; // 设备软件版本 public NET_TIME stuActivationTime; // å¯åŠ¨æ—¶é—´ public byte[] szMac=new byte[NET_COMMON_STRING_32]; // MACåœ°å€ public NET_REMOTE_DEVICE() { this.dwSize = this.size(); } } // å¯ç”¨çš„显示æºä¿¡æ¯ public static class NET_MATRIX_CAMERA_INFO extends SdkStructure { public int dwSize; public byte[] szName = new byte[128]; // å称 public byte[] szDevID = new byte[128]; // 设备ID public byte[] szszControlID = new byte[128]; // 控制ID public int nChannelID; // 通é“å·, DeviceID设备内唯一 public int nUniqueChannel; // 设备内统一编å·çš„唯一通é“å· public int bRemoteDevice; // 是å¦è¿œç¨‹è®¾å¤‡ public NET_REMOTE_DEVICE stuRemoteDevice; // è¿œç¨‹è®¾å¤‡ä¿¡æ¯ public int emStreamType; // 视频ç æµç±»åž‹ NET_STREAM_TYPE public int emChannelType; // 通é“类型应 NET_LOGIC_CHN_TYPE public boolean bEnable; // 仅在使用DeviceIDæ·»åŠ /åˆ é™¤è®¾å¤‡æ—¶çš„ä½¿èƒ½ï¼Œé€šè¿‡DeviceInfoæ“作ä¸è¦ä½¿ç”¨ public int emVideoStream; // 视频ç æµ,å‚考EM_VIDEO_STREAM public NET_MATRIX_CAMERA_INFO() { this.dwSize = this.size(); stuRemoteDevice = new NET_REMOTE_DEVICE(); } } // CLIENT_MatrixGetCameras接å£çš„输入å‚æ•° public static class NET_IN_MATRIX_GET_CAMERAS extends SdkStructure { public int dwSize; public NET_IN_MATRIX_GET_CAMERAS() { this.dwSize = this.size(); } } // CLIENT_MatrixGetCameras接å£çš„输出å‚æ•° public static class NET_OUT_MATRIX_GET_CAMERAS extends SdkStructure { public int dwSize; public Pointer pstuCameras; // 显示æºä¿¡æ¯æ•°ç»„, 用户分é…å†…å˜ NET_MATRIX_CAMERA_INFO public int nMaxCameraCount; // 显示æºæ•°ç»„å¤§å° public int nRetCameraCount; // 返回的显示æºæ•°é‡ public NET_OUT_MATRIX_GET_CAMERAS() { this.dwSize = this.size(); } } // CLIENT_SnapPictureToFile 接å£è¾“å…¥å‚æ•° public static class NET_IN_SNAP_PIC_TO_FILE_PARAM extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public SNAP_PARAMS stuParam; // 抓图å‚æ•°, å…¶ä¸modeå—段仅一次性抓图, ä¸æ”¯æŒå®šæ—¶æˆ–æŒç»æŠ“图; 除了车载DVR, 其他设备仅支æŒæ¯ç§’ä¸€å¼ çš„æŠ“å›¾é¢‘çŽ‡ public byte[] szFilePath = new byte[MAX_PATH];// å†™å…¥æ–‡ä»¶çš„åœ°å€ public NET_IN_SNAP_PIC_TO_FILE_PARAM() { this.dwSize = this.size(); this.stuParam = new SNAP_PARAMS(); } } // CLIENT_SnapPictureToFile 接å£è¾“出å‚æ•° public static class NET_OUT_SNAP_PIC_TO_FILE_PARAM extends SdkStructure { public int dwSize; public Pointer szPicBuf; // 图片内容,用户分é…å†…å˜ public int dwPicBufLen; // 图片内容内å˜å¤§å°, å•ä½:å—节 public int dwPicBufRetLen; // 返回的图片大å°, å•ä½:å—节 public NET_OUT_SNAP_PIC_TO_FILE_PARAM() { this.dwSize = this.size(); } public NET_OUT_SNAP_PIC_TO_FILE_PARAM(int nMaxBuf) { this.dwSize = this.size(); this.dwPicBufLen = nMaxBuf; Memory mem = new Memory(nMaxBuf); mem.clear(); this.szPicBuf = mem; } } // 录åƒæ–‡ä»¶ä¿¡æ¯ public static class NET_RECORDFILE_INFO extends SdkStructure { public int ch; // 通é“å· public byte[] filename = new byte[124]; // 文件å public int framenum; // 文件总帧数 public int size; // 文件长度 public NET_TIME starttime = new NET_TIME(); // 开始时间 public NET_TIME endtime = new NET_TIME(); // 结æŸæ—¶é—´ public int driveno; // ç£ç›˜å·(区分网络录åƒå’Œæœ¬åœ°å½•åƒçš„类型,0ï¼127表示本地录åƒ,å…¶ä¸64表示光盘1,128表示网络录åƒ) public int startcluster; // èµ·å§‹ç°‡å· public byte nRecordFileType; // 录象文件类型 0:普通录象;1:报è¦å½•è±¡ï¼›2:移动检测;3:å¡å·å½•è±¡ï¼›4:图片, 5: 智能录åƒ,255:æ‰€æœ‰å½•åƒ public byte bImportantRecID; // 0:æ™®é€šå½•åƒ 1:é‡è¦å½•åƒ public byte bHint; // 文件定ä½ç´¢å¼•(nRecordFileType==4<图片>æ—¶,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时有效 } // 控制类型,对应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;//å议版本å·,åªè¯»,获å–时,该å—段有效;设置时,该å—æ®µæ— æ•ˆ } // 设备软件版本信æ¯,高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 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[] byReserved = new byte[2048];//扩展å—节 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<stVideoInZoomUnit.length;i++){ stVideoInZoomUnit[i]=new CFG_VIDEO_IN_ZOOM_UNIT(); } } } // è®¾å¤‡çŠ¶æ€ public static class CFG_TRAFFIC_DEVICE_STATUS extends SdkStructure { public byte[] szType = new byte[MAX_PATH]; // 设备类型 支æŒï¼š"Radar","Detector","SigDetector","StroboscopicLamp"," FlashLamp" public byte[] szSerialNo = new byte[MAX_PATH]; // è®¾å¤‡ç¼–å· public byte[] szVendor = new byte[MAX_PATH]; // 生产厂商 public int nWokingState; // å·¥ä½œçŠ¶æ€ 0-æ•…éšœ,1-æ£å¸¸å·¥ä½œ public byte byLightState; // RS485ç¯çš„亮ç状æ€ï¼ŒType 为"DhrsStroboscopicLamp"或者"DhrsSteadyLamp"时有效 // 0-未知, 1-ç¯äº®, 2-ç¯ç public byte[] byReserved = new byte[3]; // 预留å—节 } // 获å–设备工作状æ€æ˜¯å¦æ£å¸¸ (对应命令 CFG_CAP_CMD_DEVICE_STATE ) public static class CFG_CAP_TRAFFIC_DEVICE_STATUS extends SdkStructure { public int nStatus; // stuStatus 实际个数 public CFG_TRAFFIC_DEVICE_STATUS[] stuStatus = (CFG_TRAFFIC_DEVICE_STATUS[]) new CFG_TRAFFIC_DEVICE_STATUS().toArray(MAX_STATUS_NUM); } // è§†é¢‘è¾“å…¥é€šé“ public static class CFG_RemoteDeviceVideoInput extends SdkStructure { public int bEnable; public byte[] szName = new byte[MAX_DEVICE_NAME_LEN]; public byte[] szControlID = new byte[MAX_DEV_ID_LEN_EX]; public byte[] szMainUrl = new byte[MAX_PATH]; // 主ç æµurlåœ°å€ public byte[] szExtraUrl = new byte[MAX_PATH]; // è¾…ç æµurlåœ°å€ public int nServiceType; // æœåŠ¡ç±»åž‹, 0-TCP, 1-UDP, 2-MCAST, -1-AUTO } // 远程设备 public static class AV_CFG_RemoteDevice extends SdkStructure { public int nStructSize; public int bEnable; // 使能 public byte[] szID = new byte[AV_CFG_Device_ID_Len]; // 设备ID public byte[] szIP = new byte[AV_CFG_IP_Address_Len]; // 设备IP public int nPort; // ç«¯å£ public byte[] szProtocol = new byte[AV_CFG_Protocol_Len]; // å议类型 public byte[] szUser = new byte[AV_CFG_User_Name_Len]; // 用户å public byte[] szPassword = new byte[AV_CFG_Password_Len]; // 密ç public byte[] szSerial = new byte[AV_CFG_Serial_Len]; // 设备åºåˆ—å· public byte[] szDevClass = new byte[AV_CFG_Device_Class_Len]; // 设备类型 public byte[] szDevType = new byte[AV_CFG_Device_Type_Len]; // è®¾å¤‡åž‹å· public byte[] szName = new byte[AV_CFG_Device_Name_Len]; // 机器å称 public byte[] szAddress = new byte[AV_CFG_Address_Len]; // 机器部署地点 public byte[] szGroup = new byte[AV_CFG_Group_Name_Len]; // 机器分组 public int nDefinition; // 清晰度, 0-æ ‡æ¸…, 1-高清 public int nVideoChannel; // 视频输入通é“æ•° public int nAudioChannel; // 音频输入通é“æ•° public int nRtspPort; // Rtsp端å£å· public byte[] szVendor = new byte[MAX_PATH]; // 设备接入类型 public Pointer pVideoInput; // 视频输入通é“,用户申请nMaxVideoInputs个CFG_RemoteDeviceVideoInput空间 public int nMaxVideoInputs; public int nRetVideoInputs; public int nHttpPort; // http端å£å· /* 以下3项为国际接入方å¼ç›¸å…³ */ public int bGB28181; // 是å¦æœ‰å›½é™…æŽ¥å…¥æ–¹å¼ public int nDevLocalPort; // è®¾å¤‡æœ¬åœ°ç«¯å£ public byte[] szDeviceNo = new byte[AV_CFG_DeviceNo_Len]; // è®¾å¤‡ç¼–å· public int nLoginType; // ç™»å½•æ–¹å¼ 0 : TCPç›´è¿ž(默认方å¼) 6 : 主动注册 7 : P2Pæ–¹å¼ï¼Œæ¤æ–¹å¼æ—¶é€šè¿‡SerialNo与设备通过P2P连接 public byte[] szVersion=new byte[32]; // 设备软件版本 public boolean bPoE; // 是å¦ç”±PoE端å£è¿žæŽ¥, 该选项为åªè¯», åªèƒ½ç”±è®¾å¤‡ä¿®æ”¹ public int nPoEPort; // PoE物ç†ç«¯å£å·, 该选项为åªè¯», åªèƒ½ç”±è®¾å¤‡ä¿®æ”¹ public byte[] szMac=new byte[18]; // 设备mac地å€ï¼Œå†’å·+大写 public AV_CFG_RemoteDevice() { this.nStructSize = this.size(); } } // 录åƒæ¨¡å¼ public static class AV_CFG_RecordMode extends SdkStructure { public int nStructSize; public int nMode; // 录åƒæ¨¡å¼, 0-自动录åƒï¼Œ1-手动录åƒï¼Œ2-å…³é—å½•åƒ public int nModeExtra1; // è¾…ç æµå½•åƒæ¨¡å¼, 0-自动录åƒï¼Œ1-手动录åƒï¼Œ2-å…³é—å½•åƒ public int nModeExtra2; // è¾…ç æµ2录åƒæ¨¡å¼, 0-自动录åƒï¼Œ1-手动录åƒï¼Œ2-å…³é—å½•åƒ public AV_CFG_RecordMode() { this.nStructSize = this.size(); } } // 视频分æžèµ„æºç±»åž‹ public static class CFG_VIDEO_SOURCE_TYPE extends SdkStructure { public static final int CFG_VIDEO_SOURCE_REALSTREAM = 0; // å®žæ—¶æµ public static final int CFG_VIDEO_SOURCE_FILESTREAM = 1; // æ–‡ä»¶æµ } // 分æžæºæ–‡ä»¶ç±»åž‹ public static class CFG_SOURCE_FILE_TYPE extends SdkStructure { public static final int CFG_SOURCE_FILE_UNKNOWN = 0; // 未知类型 public static final int CFG_SOURCE_FILE_RECORD = 1; // 录åƒæ–‡ä»¶ public static final int CFG_SOURCE_FILE_PICTURE = 2; // 图片文件 } // 视频分æžæºæ–‡ä»¶ä¿¡æ¯ public static class CFG_SOURCE_FILE_INFO extends SdkStructure { public byte[] szFilePath = new byte[MAX_PATH];// 文件路径 public int emFileType; // æ–‡ä»¶ç±»åž‹ï¼Œè¯¦è§ CFG_SOURCE_FILE_TYPE } // æ¯ä¸ªè§†é¢‘输入通é“对应的视频分æžèµ„æºé…ç½®ä¿¡æ¯ public static class CFG_ANALYSESOURCE_INFO extends SdkStructure { public byte bEnable; // 视频分æžä½¿èƒ½ 1-使能, 0-ç¦ç”¨ public byte[] bReserved = new byte[3]; // ä¿ç•™å¯¹é½ public int nChannelID; // 智能分æžçš„å‰ç«¯è§†é¢‘通é“å· public int nStreamType; // 智能分æžçš„å‰ç«¯è§†é¢‘ç æµç±»åž‹ï¼Œ0:抓图ç æµ; 1:主ç æµ; 2:åç æµ1; 3:åç æµ2; 4:åç æµ3; 5:ç‰©ä½“æµ public byte[] szRemoteDevice = new byte[MAX_NAME_LEN];// 设备å public int abDeviceInfo; // 设备信æ¯æ˜¯å¦æœ‰æ•ˆ ; 1-有效,0-æ— æ•ˆ public AV_CFG_RemoteDevice stuDeviceInfo; // è®¾å¤‡ä¿¡æ¯ public int emSourceType; // 视频分æžæºç±»åž‹ï¼Œè¯¦è§ CFG_VIDEO_SOURCE_TYPE public CFG_SOURCE_FILE_INFO stuSourceFile; // 当视频分æžæºç±»åž‹ä¸º CFG_VIDEO_SOURCE_FILESTREAM 时,有效 } public static class CFG_OVERSPEED_INFO extends SdkStructure { public int[] nSpeedingPercentage = new int[2]; // 超速百分比区间è¦æ±‚区间ä¸èƒ½é‡å 。有效值为0,æ£æ•°,-1,-1è¡¨ç¤ºæ— ç©·å¤§å€¼ // å¦‚æžœæ˜¯æ¬ é€Ÿï¼šè¦æ±‚区间ä¸èƒ½é‡å 。有效值为0,æ£æ•°,-1,-1è¡¨ç¤ºæ— ç©·å¤§å€¼ï¼Œæ¬ é€Ÿç™¾åˆ†æ¯”çš„è®¡ç®—æ–¹å¼ï¼šé™ä½Žé€Ÿ-实际车速/é™ä½Žé€Ÿ public byte[] szCode = new byte[MAX_VIOLATIONCODE]; // è¿ç« 代ç public byte[] szDescription = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // è¿ç« æè¿° } // è¿ç« 代ç é…置表 public static class VIOLATIONCODE_INFO extends SdkStructure { public byte[] szRetrograde = new byte[MAX_VIOLATIONCODE]; // 逆行 public byte[] szRetrogradeDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // è¿ç« æè¿°ä¿¡æ¯ public byte[] szRetrogradeShowName = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // 显示å称 public byte[] szRetrogradeHighway = new byte[MAX_VIOLATIONCODE]; // 逆行-高速公路 public byte[] szRetrogradeHighwayDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // è¿ç« æè¿°ä¿¡æ¯ public byte[] szRunRedLight = new byte[MAX_VIOLATIONCODE]; // é—¯çº¢ç¯ public byte[] szRunRedLightDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // è¿ç« æè¿°ä¿¡æ¯ public byte[] szCrossLane = new byte[MAX_VIOLATIONCODE]; // è¿ç« å˜é“ public byte[] szCrossLaneDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // è¿ç« æè¿°ä¿¡æ¯ public byte[] szCrossLaneShowName = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // è¿ç« å˜é“显示å称 public byte[] szTurnLeft = new byte[MAX_VIOLATIONCODE]; // è¿ç« 左转 public byte[] szTurnLeftDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // è¿ç« æè¿°ä¿¡æ¯ public byte[] szTurnRight = new byte[MAX_VIOLATIONCODE]; // è¿ç« å³è½¬ public byte[] szTurnRightDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // è¿ç« æè¿°ä¿¡æ¯ public byte[] szU_Turn = new byte[MAX_VIOLATIONCODE]; // è¿ç« 掉头 public byte[] szU_TurnDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // è¿ç« æè¿°ä¿¡æ¯ public byte[] szU_TurnShowName = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // æ˜¾ç¤ºä¿¡æ¯ public byte[] szJam = new byte[MAX_VIOLATIONCODE]; // äº¤é€šæ‹¥å µ public byte[] szJamDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // è¿ç« æè¿°ä¿¡æ¯ public byte[] szParking = new byte[MAX_VIOLATIONCODE]; // è¿ç« åœè½¦ public byte[] szParkingDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // è¿ç« æè¿°ä¿¡æ¯ public byte[] szParkingShowName = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // è¿ç« åœè½¦æ˜¾ç¤ºå称 // 超速 å’Œ 超速比例 åªéœ€ä¸”必须有一个é…ç½® public byte[] szOverSpeed = new byte[MAX_VIOLATIONCODE]; // 超速 public byte[] szOverSpeedDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // è¿ç« æè¿°ä¿¡æ¯ public CFG_OVERSPEED_INFO[] stOverSpeedConfig = (CFG_OVERSPEED_INFO[])new CFG_OVERSPEED_INFO().toArray(5); // 超速比例代ç // 超速(高速公路) å’Œ 超速比例(高速公路) åªéœ€ä¸”必须有一个é…ç½® public byte[] szOverSpeedHighway = new byte[MAX_VIOLATIONCODE]; // 超速-高速公路 public byte[] szOverSpeedHighwayDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // 超速-è¿ç« æè¿°ä¿¡æ¯ public CFG_OVERSPEED_INFO[] stOverSpeedHighwayConfig = (CFG_OVERSPEED_INFO[])new CFG_OVERSPEED_INFO().toArray(5); // 超速比例代ç // æ¬ é€Ÿ å’Œ æ¬ é€Ÿæ¯”ä¾‹ åªéœ€ä¸”必须有一个é…ç½® public byte[] szUnderSpeed = new byte[MAX_VIOLATIONCODE]; // æ¬ é€Ÿ public byte[] szUnderSpeedDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // è¿ç« æè¿°ä¿¡æ¯ public CFG_OVERSPEED_INFO[] stUnderSpeedConfig = (CFG_OVERSPEED_INFO[]) new CFG_OVERSPEED_INFO().toArray(5); // æ¬ é€Ÿé…置信æ¯æ˜¯ä¸€ä¸ªæ•°ç»„,ä¸åŒçš„æ¬ é€Ÿæ¯”è¿ç« 代ç ä¸åŒï¼Œä¸ºç©ºè¡¨ç¤ºè¿ç« 代ç ä¸åŒºåˆ†è¶…速比 public byte[] szOverLine = new byte[MAX_VIOLATIONCODE]; // 压线 public byte[] szOverLineDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // è¿ç« æè¿°ä¿¡æ¯ public byte[] szOverLineShowName = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // 压线显示å称 public byte[] szOverYellowLine = new byte[MAX_VIOLATIONCODE]; // 压黄线 public byte[] szOverYellowLineDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // è¿ç« æè¿°ä¿¡æ¯ public byte[] szYellowInRoute = new byte[MAX_VIOLATIONCODE]; // 黄牌å é“ public byte[] szYellowInRouteDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // 黄牌å é“è¿ç« æè¿°ä¿¡æ¯ public byte[] szWrongRoute = new byte[MAX_VIOLATIONCODE]; // ä¸æŒ‰è½¦é“行驶 public byte[] szWrongRouteDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // ä¸æŒ‰è½¦é“行驶è¿ç« æè¿°ä¿¡æ¯ public byte[] szDrivingOnShoulder = new byte[MAX_VIOLATIONCODE]; // 路肩行驶 public byte[] szDrivingOnShoulderDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // 路肩行驶è¿ç« æè¿°ä¿¡æ¯ public byte[] szPassing = new byte[MAX_VIOLATIONCODE]; // æ£å¸¸è¡Œé©¶ public byte[] szPassingDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // æ£å¸¸è¡Œé©¶è¿ç« æè¿°ä¿¡æ¯ public byte[] szNoPassing = new byte[MAX_VIOLATIONCODE]; // ç¦æ¢è¡Œé©¶ public byte[] szNoPassingDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // ç¦æ¢è¡Œé©¶è¿ç« æè¿°ä¿¡æ¯ public byte[] szFakePlate = new byte[MAX_VIOLATIONCODE]; // 套牌 public byte[] szFakePlateDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // 套牌è¿ç« æè¿°ä¿¡æ¯ public byte[] szParkingSpaceParking = new byte[MAX_VIOLATIONCODE]; // 车ä½æœ‰è½¦ public byte[] szParkingSpaceParkingDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // 车ä½æœ‰è½¦è¿ç« æè¿°ä¿¡æ¯ã€ public byte[] szParkingSpaceNoParking = new byte[MAX_VIOLATIONCODE]; // 车ä½æ— 车 public byte[] szParkingSpaceNoParkingDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // 车ä½æ— 车è¿ç« æè¿°ä¿¡æ¯ public byte[] szWithoutSafeBelt = new byte[MAX_VIOLATIONCODE]; // ä¸ç³»å®‰å…¨å¸¦ public byte[] szWithoutSafeBeltShowName = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // ä¸ç³»å®‰å…¨å¸¦æ˜¾ç¤ºå称 public byte[] szWithoutSafeBeltDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // ä¸ç³»å®‰å…¨å¸¦è¿ç« æè¿°ä¿¡æ¯ public byte[] szDriverSmoking = new byte[MAX_VIOLATIONCODE]; // 驾驶员抽烟 public byte[] szDriverSmokingShowName = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // 驾驶员抽烟显示å称 public byte[] szDriverSmokingDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // 驾驶员抽烟带è¿ç« æè¿°ä¿¡æ¯ public byte[] szDriverCalling = new byte[MAX_VIOLATIONCODE]; // é©¾é©¶å‘˜æ‰“ç”µè¯ public byte[] szDriverCallingShowName = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // 驾驶员打电è¯æ˜¾ç¤ºå称 public byte[] szDriverCallingDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // 驾驶员打电è¯è¿ç« æè¿°ä¿¡æ¯ public byte[] szBacking = new byte[MAX_VIOLATIONCODE]; // è¿ç« 倒车 public byte[] szBackingShowName = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // è¿ç« 倒车显示å称 public byte[] szBackingDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // è¿ç« 倒车æè¿°ä¿¡æ¯ public byte[] szVehicleInBusRoute = new byte[MAX_VIOLATIONCODE]; // è¿ç« å é“ public byte[] szVehicleInBusRouteShowName = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // è¿ç« å é“显示å称 public byte[] szVehicleInBusRouteDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // è¿ç« å é“æè¿°ä¿¡æ¯ public byte[] szPedestrianRunRedLight = new byte[MAX_VIOLATIONCODE]; // è¡Œäººé—¯çº¢ç¯ public byte[] szPedestrianRunRedLightShowName = new byte[MAX_VIOLATIONCODE_DESCRIPT];// 行人闯红ç¯æ˜¾ç¤ºå称 public byte[] szPedestrianRunRedLightDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // 行人闯红ç¯æè¿°ä¿¡æ¯ public byte[] szPassNotInOrder = new byte[MAX_VIOLATIONCODE]; // 未按规定ä¾æ¬¡é€šè¡Œ public byte[] szPassNotInOrderShowName = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // 未按规定ä¾æ¬¡é€šè¡Œæ˜¾ç¤ºå称 public byte[] szPassNotInOrderDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // 未按规定ä¾æ¬¡é€šè¡Œæè¿°ä¿¡æ¯ public byte[] szTrafficBan = new byte[MAX_VIOLATIONCODE]; // 机动车è¿æ³•ç¦ä»¤æ ‡è¯† public byte[] szTrafficBanShowName = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // 机动车è¿æ³•ç¦ä»¤æ ‡è¯†æ˜¾ç¤ºå称 public byte[] szTrafficBanDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // æè¿°ä¿¡æ¯ public byte[] szParkingB = new byte[MAX_VIOLATIONCODE]; // Bç±»è¿ç« åœè½¦ public byte[] szParkingBDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // Bç±»è¿ç« æè¿°ä¿¡æ¯ public byte[] szParkingBShowName = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // Bç±»è¿ç« åœè½¦æ˜¾ç¤ºå称 public byte[] szParkingC = new byte[MAX_VIOLATIONCODE]; // Cç±»è¿ç« åœè½¦ public byte[] szParkingCDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // Cç±»è¿ç« æè¿°ä¿¡æ¯ public byte[] szParkingCShowName = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // Cç±»è¿ç« åœè½¦æ˜¾ç¤ºå称 public byte[] szParkingD = new byte[MAX_VIOLATIONCODE]; // Dç±»è¿ç« åœè½¦ public byte[] szParkingDDesc = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // Dç±»è¿ç« æè¿°ä¿¡æ¯ public byte[] szParkingDShowName = new byte[MAX_VIOLATIONCODE_DESCRIPT]; // Dç±»è¿ç« åœè½¦æ˜¾ç¤ºå称 public byte[] szNonMotorHoldUmbrella=new byte[MAX_VIOLATIONCODE]; // éžæœºåŠ¨è½¦è£…载伞具代ç public byte[] szNonMotorHoldUmbrellaDesc=new byte[MAX_VIOLATIONCODE_DESCRIPT]; // éžæœºåŠ¨è½¦è£…载伞具æè¿°ä¿¡æ¯ public byte[] szNonMotorHoldUmbrellaShowName=new byte[MAX_VIOLATIONCODE_DESCRIPT]; // éžæœºåŠ¨è½¦è£…载伞具显示å称 public int nBigCarOverSpeedConfigNum; // 大车超速é…置信æ¯æ•°é‡ public CFG_OVERSPEED_INFO[] stBigCarOverSpeedConfig=(CFG_OVERSPEED_INFO[])new CFG_OVERSPEED_INFO().toArray(5); // 大车超速é…ç½®ä¿¡æ¯ } // è¿ç« 抓æ‹æ—¶é—´é…置表 public static class TIME_SCHEDULE_INFO extends SdkStructure { public int bEnable; // 是å¦å¯ç”¨æ—¶é—´è¡¨ public TIME_SECTION_WEEK_DAY_6[] stuTimeScheduleWeekDay = (TIME_SECTION_WEEK_DAY_6[])new TIME_SECTION_WEEK_DAY_6().toArray(WEEK_DAY_NUM); // 时间表 } // è¿ç« 抓æ‹è‡ªå®šä¹‰æ—¶é—´é…ç½® public static class VIOLATION_TIME_SCHEDULE extends SdkStructure { public int abTrafficGate; // 是å¦æºå¸¦äº¤é€šå¡å£ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficGate; // 交通å¡å£æ—¶é—´é…ç½® public int abTrafficJunction; // 是å¦æºå¸¦äº¤é€šè·¯å£ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficJunction; // 交通路å£æ—¶é—´é…ç½® public int abTrafficTollGate; // 是å¦æºå¸¦æ–°äº¤é€šå¡å£ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficTollGate; // 新交通å¡å£æ—¶é—´é…ç½® public int abTrafficRunRedLight; // 是å¦æºå¸¦äº¤é€šé—¯çº¢ç¯ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficRunRedLight; // 交通闯红ç¯æ—¶é—´é…ç½® public int abTrafficRunYellowLight; // 是å¦æºå¸¦äº¤é€šé—¯é»„ç¯ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficRunYellowLight; // 交通闯黄ç¯æ—¶é—´é…ç½® public int abTrafficOverLine; // 是å¦æºå¸¦äº¤é€šåŽ‹çº¿ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficOverLine; // 交通压线时间é…ç½® public int abTrafficOverYellowLine; // 是å¦æºå¸¦äº¤é€šåŽ‹é»„çº¿ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficOverYellowLine; // 交通压黄线时间é…ç½® public int abTrafficRetrograde; // 是å¦æºå¸¦äº¤é€šé€†è¡Œä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficRetrograde; // 交通逆行时间é…ç½® public int abTrafficTurnLeft; // 是å¦æºå¸¦äº¤é€šè¿ç« å·¦è½¬ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficTurnLeft; // 交通è¿ç« 左转时间é…ç½® public int abTrafficTurnRight; // 是å¦æºå¸¦äº¤é€šè¿ç« å³è½¬ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficTurnRight; // 交通路å£è¿ç« å³è½¬ç±»åž‹ public int abTrafficU_Turn; // 是å¦æºå¸¦äº¤é€šè¿ç« æŽ‰å¤´ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficU_Turn; // 交通è¿ç« 掉头时间é…ç½® public int abTrafficCrossLane; // 是å¦æºå¸¦äº¤é€šè¿ç« å˜é“ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficCrossLane; // 交通è¿ç« å˜é“时间é…ç½® public int abTrafficParking; // 是å¦æºå¸¦äº¤é€šè¿ç« åœè½¦ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficParking; // 交通è¿ç« åœè½¦æ—¶é—´é…ç½® public int abTrafficJam; // 是å¦æºå¸¦äº¤é€šæ‹¥å µä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficJam; // äº¤é€šæ‹¥å µæ—¶é—´é…ç½® public int abTrafficIdle; // 是å¦æºå¸¦äº¤é€šäº¤é€šç©ºé—²ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficIdle; // 交通交通空闲时间é…ç½® public int abTrafficWaitingArea; // 是å¦æºå¸¦äº¤é€šè¿ç« é©¶å…¥å¾…è¡ŒåŒºä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficWaitingArea; // 交通è¿ç« 驶入待行区时间é…ç½® public int abTrafficUnderSpeed; // 是å¦æºå¸¦äº¤é€šæ¬ é€Ÿä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficUnderSpeed; // äº¤é€šæ¬ é€Ÿæ—¶é—´é…ç½® public int abTrafficOverSpeed; // 是å¦æºå¸¦äº¤é€šè¶…é€Ÿä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficOverSpeed; // 交通超速时间é…ç½® public int abTrafficWrongRoute; // 是å¦æºå¸¦äº¤é€šä¸æŒ‰è½¦é“è¡Œé©¶ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficWrongRoute; // 交通ä¸æŒ‰è½¦é“行驶时间é…ç½® public int abTrafficYellowInRoute; // 是å¦æºå¸¦äº¤é€šé»„牌å é“ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficYellowInRoute; // 交通黄牌å é“时间é…ç½® public int abTrafficVehicleInRoute; // 是å¦æºå¸¦äº¤é€šæœ‰è½¦å é“ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficVehicleInRoute; // 交通有车å é“时间é…ç½® public int abTrafficControl; // 是å¦æºå¸¦äº¤é€šäº¤é€šç®¡ç†ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficControl; // 交通交通管ç†æ—¶é—´é…ç½® public int abTrafficObjectAlarm; // 是å¦æºå¸¦äº¤é€šæŒ‡å®šç±»åž‹æŠ“æ‹ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficObjectAlarm; // 交通指定类型抓æ‹æ—¶é—´é…ç½® public int abTrafficAccident; // 是å¦æºå¸¦äº¤é€šäº¤é€šäº‹æ•…ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficAccident; // 交通交通事故时间é…ç½® public int abTrafficStay; // 是å¦æºå¸¦äº¤é€šäº¤é€šåœç•™/æ»žç•™ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficStay; // 交通交通åœç•™/滞留时间é…ç½® public int abTrafficPedestrainPriority; // 是å¦æºå¸¦äº¤é€šæ–‘é©¬çº¿è¡Œäººä¼˜å…ˆä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficPedestrainPriority; // 交通斑马线行人优先时间é…ç½® public int abTrafficPedestrain; // 是å¦æºå¸¦äº¤é€šäº¤é€šè¡Œäººäº‹ä»¶ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficPedestrain; // 交通交通行人事件时间é…ç½® public int abTrafficThrow; // 是å¦æºå¸¦äº¤é€šäº¤é€šæŠ›æ´’物å“äº‹ä»¶ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficThrow; // 交通交通抛洒物å“事件时间é…ç½® public int abTrafficVehicleInBusRoute; // 是å¦æºå¸¦äº¤é€šè¿ç« å é“ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficVehicleInBusRoute; // 交通è¿ç« å é“时间é…ç½® public int abTrafficBacking; // 是å¦æºå¸¦äº¤é€šè¿ç« å€’è½¦ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficBacking; // 交通è¿ç« 倒车时间é…ç½® public int abTrafficOverStopLine; // 是å¦æºå¸¦äº¤é€šåŽ‹åœæ¢çº¿ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficOverStopLine; // 交通压åœæ¢çº¿æ—¶é—´é…ç½® public int abTrafficParkingOnYellowBox; // 是å¦æºå¸¦äº¤é€šé»„ç½‘æ ¼çº¿æŠ“æ‹ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficParkingOnYellowBox; // äº¤é€šé»„ç½‘æ ¼çº¿æŠ“æ‹æ—¶é—´é…ç½® public int abTrafficParkingSpaceParking; // 是å¦æºå¸¦äº¤é€šè½¦ä½æœ‰è½¦ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficParkingSpaceParking; // 交通车ä½æœ‰è½¦æ—¶é—´é…ç½® public int abTrafficParkingSpaceNoParking; // 是å¦æºå¸¦äº¤é€šè½¦ä½æ— è½¦ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficParkingSpaceNoParking; // 交通车ä½æ— 车时间é…ç½® public int abTrafficParkingSpaceOverLine; // 是å¦æºå¸¦äº¤é€šè½¦ä½æœ‰è½¦åŽ‹çº¿ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficParkingSpaceOverLine; // 交通车ä½æœ‰è½¦åŽ‹çº¿æ—¶é—´é…ç½® public int abParkingSpaceDetection; // 是å¦æºå¸¦äº¤é€šå¤šåœè½¦ä½çŠ¶æ€æ£€æµ‹ä¿¡æ¯ public TIME_SCHEDULE_INFO stParkingSpaceDetection; // 交通多åœè½¦ä½çŠ¶æ€æ£€æµ‹æ—¶é—´é…ç½® public int abTrafficRestrictedPlate; // 是å¦æºå¸¦äº¤é€šå—é™è½¦ç‰Œä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficRestrictedPlate; // 交通å—é™è½¦ç‰Œæ—¶é—´é…ç½® public int abTrafficWithoutSafeBelt; // 是å¦æºå¸¦äº¤é€šä¸ç³»å®‰å…¨å¸¦ä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficWithoutSafeBelt; // 交通ä¸ç³»å®‰å…¨å¸¦æ—¶é—´é…ç½® public int abTrafficNoPassing; // 是å¦æºå¸¦äº¤é€šç¦è¡Œä¿¡æ¯ public TIME_SCHEDULE_INFO stTrafficNoPassing; // 交通ç¦è¡Œæ—¶é—´é…ç½® public int abVehicleAnalyse; // 是å¦æºå¸¦äº¤é€šè½¦è¾†ç‰¹å¾æ£€æµ‹åˆ†æžä¿¡æ¯ public TIME_SCHEDULE_INFO stVehicleAnalyse; // 交通车辆特å¾æ—¶é—´é…ç½® public int abCrossLineDetection; // 是å¦æºå¸¦äº¤é€šè¦æˆ’çº¿ä¿¡æ¯ public TIME_SCHEDULE_INFO stCrossLineDetection; // 交通è¦æˆ’线时间é…ç½® public int abCrossFenceDetection; // 是å¦æºå¸¦äº¤é€šç©¿è¶Šå›´æ ä¿¡æ¯ public TIME_SCHEDULE_INFO stCrossFenceDetection; // 交通穿越围æ 时间é…ç½® public int abCrossRegionDetection; // 是å¦æºå¸¦äº¤é€šè¦æˆ’åŒºä¿¡æ¯ public TIME_SCHEDULE_INFO stCrossRegionDetection; // 交通è¦æˆ’区时间é…ç½® public int abPasteDetection; // 是å¦æºå¸¦äº¤é€šATMè´´æ¡ä¿¡æ¯ public TIME_SCHEDULE_INFO stPasteDetection; // 交通ATMè´´æ¡æ—¶é—´é…ç½® public int abLeftDetection; // 是å¦æºå¸¦äº¤é€šç‰©å“é—ç•™ä¿¡æ¯ public TIME_SCHEDULE_INFO stLeftDetection; // 交通物å“é—留时间é…ç½® public int abPreservation; // 是å¦æºå¸¦äº¤é€šç‰©å“ä¿å…¨ä¿¡æ¯ public TIME_SCHEDULE_INFO stPreservation; // 交通物å“ä¿å…¨æ—¶é—´é…ç½® public int abTakenAwayDetection; // 是å¦æºå¸¦äº¤é€šç‰©å“æ¬ç§»ä¿¡æ¯ public TIME_SCHEDULE_INFO stTakenAwayDetection; // 交通物å“æ¬ç§»æ—¶é—´é…ç½® public int abStayDetection; // 是å¦æºå¸¦äº¤é€šåœç•™/æ»žç•™ä¿¡æ¯ public TIME_SCHEDULE_INFO stStayDetection; // 交通åœç•™/滞留时间é…ç½® public int abParkingDetection; // 是å¦æºå¸¦äº¤é€šéžæ³•åœè½¦ä¿¡æ¯ public TIME_SCHEDULE_INFO stParkingDetection; // 交通éžæ³•åœè½¦æ—¶é—´é…ç½® public int abWanderDetection; // 是å¦æºå¸¦äº¤é€šå¾˜å¾Šä¿¡æ¯ public TIME_SCHEDULE_INFO stWanderDetection; // 交通徘徊时间é…ç½® public int abMoveDetection; // 是å¦æºå¸¦äº¤é€šè¿åŠ¨ä¿¡æ¯ public TIME_SCHEDULE_INFO stMoveDetection; // 交通è¿åŠ¨æ—¶é—´é…ç½® public int abTailDetection; // 是å¦æºå¸¦äº¤é€šå°¾éšä¿¡æ¯ public TIME_SCHEDULE_INFO stTailDetection; // 交通尾éšæ—¶é—´é…ç½® public int abRioterDetection; // 是å¦æºå¸¦äº¤é€šèšé›†ä¿¡æ¯ public TIME_SCHEDULE_INFO stRioterDetection; // 交通èšé›†æ—¶é—´é…ç½® public int abFightDetection; // 是å¦æºå¸¦äº¤é€šæ‰“æž¶ä¿¡æ¯ public TIME_SCHEDULE_INFO stFightDetection; // 交通打架时间é…ç½® public int abRetrogradeDetection; // 是å¦æºå¸¦äº¤é€šé€†è¡Œä¿¡æ¯ public TIME_SCHEDULE_INFO stRetrogradeDetection; // 交通逆行时间é…ç½® public int abFireDetection; // 是å¦æºå¸¦äº¤é€šç«ç„°ä¿¡æ¯ public TIME_SCHEDULE_INFO stFireDetection; // 交通ç«ç„°æ—¶é—´é…ç½® public int abSmokeDetection; // 是å¦æºå¸¦äº¤é€šçƒŸé›¾ä¿¡æ¯ public TIME_SCHEDULE_INFO stSmokeDetection; // 交通烟雾时间é…ç½® public int abNumberStat; // 是å¦æºå¸¦äº¤é€šæ•°é‡ç»Ÿè®¡ä¿¡æ¯ public TIME_SCHEDULE_INFO stNumberStat; // 交通数é‡ç»Ÿè®¡æ—¶é—´é…ç½® public int abVideoAbnormalDetection; // 是å¦æºå¸¦äº¤é€šè§†é¢‘å¼‚å¸¸ä¿¡æ¯ public TIME_SCHEDULE_INFO stVideoAbnormalDetection; // 交通视频异常时间é…ç½® public int abPSRiseDetection; // 是å¦æºå¸¦å›šçŠ¯èµ·èº«æ£€æµ‹ä¿¡æ¯ public TIME_SCHEDULE_INFO stPSRiseDetection; // 囚犯起身检测时间é…ç½® public int abFaceDetection; // 是å¦æºå¸¦ç›®æ ‡æ£€æµ‹ä¿¡æ¯ public TIME_SCHEDULE_INFO stFaceDetection; // ç›®æ ‡æ£€æµ‹æ—¶é—´é…ç½® public int abFaceRecognition; // 是å¦æºå¸¦ç›®æ ‡è¯†åˆ«ä¿¡æ¯ public TIME_SCHEDULE_INFO stFaceRecognition; // ç›®æ ‡è¯†åˆ«æ—¶é—´é…ç½® public int abDensityDetection; // 是å¦æºå¸¦å¯†é›†åº¦æ£€æµ‹ä¿¡æ¯ public TIME_SCHEDULE_INFO stDensityDetection; // 密集度检测时间é…ç½® public int abQueueDetection; // 是å¦æºå¸¦æŽ’é˜Ÿæ£€æµ‹ä¿¡æ¯ public TIME_SCHEDULE_INFO stQueueDetection; // 排队检测时间é…ç½® public int abClimbDetection; // 是å¦æºå¸¦æ”€é«˜æ£€æµ‹ä¿¡æ¯ public TIME_SCHEDULE_INFO stClimbDetection; // 攀高时间é…ç½® public int abLeaveDetection; // 是å¦æºå¸¦ç¦»å²—æ£€æµ‹ä¿¡æ¯ public TIME_SCHEDULE_INFO stLeaveDetection; // 离岗时间é…ç½® public int abVehicleOnPoliceCar; // 是å¦æºå¸¦è½¦è½½è¦è½¦ä¿¡æ¯ public TIME_SCHEDULE_INFO stVehicleOnPoliceCar; // 车载è¦è½¦æ—¶é—´é…ç½® public int abVehicleOnBus; // 是å¦æºå¸¦è½¦è½½å…¬äº¤ä¿¡æ¯ public TIME_SCHEDULE_INFO stVehicleOnBus; // 车载公交时间é…ç½® public int abVehicleOnSchoolBus; // 是å¦æºå¸¦è½¦è½½æ ¡è½¦ä¿¡æ¯ public TIME_SCHEDULE_INFO stVehicleOnSchoolBus; // è½¦è½½æ ¡è½¦æ—¶é—´é…ç½® public Boolean abTrafficNonMotorHoldUmbrella; // 是å¦æºå¸¦éžæœºåŠ¨è½¦è£…载伞具时间é…ç½® public TIME_SCHEDULE_INFO stTrafficNonMotorHoldUmbrella; // éžæœºåŠ¨è½¦è£…载伞具时间é…ç½® } // 交通全局é…置对应图片命åæ ¼å¼å‚æ•°é…ç½® public static class TRAFFIC_NAMING_FORMAT extends SdkStructure { public byte[] szFormat = new byte[CFG_COMMON_STRING_256]; // å›¾ç‰‡æ ¼å¼ } // CFG_NET_TIME 时间 public static class CFG_NET_TIME extends SdkStructure { public int nStructSize; public int dwYear; // å¹´ public int dwMonth; // 月 public int dwDay; // æ—¥ public int dwHour; // æ—¶ public int dwMinute; // 分 public int dwSecond; // 秒 public CFG_NET_TIME() { this.nStructSize = this.size(); } } // PERIOD_OF_VALIDITY public static class PERIOD_OF_VALIDITY extends SdkStructure { public CFG_NET_TIME stBeginTime; // æ ‡å®šå¼€å§‹æ—¶é—´ public CFG_NET_TIME stEndTime; // æ ‡å®šåˆ°æœŸæ—¶é—´ } // 交通全局é…ç½®å¯¹åº”æ ‡å®šç›¸å…³é…ç½® public static class TRAFFIC_CALIBRATION_INFO extends SdkStructure { public byte[] szUnit = new byte[CFG_COMMON_STRING_256]; // æ ‡å®šå•ä½ public byte[] szCertificate = new byte[CFG_COMMON_STRING_256]; // æ ‡å®šè¯ä¹¦ public PERIOD_OF_VALIDITY stPeriodOfValidity; // æ ‡å®šæœ‰æ•ˆæœŸ } // TRAFFIC_EVENT_CHECK_MASK public static class TRAFFIC_EVENT_CHECK_MASK extends SdkStructure { public int abTrafficGate; // 是å¦æºå¸¦äº¤é€šå¡å£ä¿¡æ¯ public int nTrafficGate; // 交通å¡å£æ£€æµ‹æ¨¡å¼æŽ©ç public int abTrafficJunction; // 是å¦æºå¸¦äº¤é€šè·¯å£ä¿¡æ¯ public int nTrafficJunction; // 交通路å£æ£€æµ‹æ¨¡å¼æŽ©ç public int abTrafficTollGate; // 是å¦æºå¸¦æ–°äº¤é€šå¡å£ä¿¡æ¯ public int nTrafficTollGate; // 新交通å¡å£æ£€æµ‹æ¨¡å¼æŽ©ç public int abTrafficRunRedLight; // 是å¦æºå¸¦äº¤é€šé—¯çº¢ç¯ä¿¡æ¯ public int nTrafficRunRedLight; // 交通闯红ç¯æ£€æµ‹æ¨¡å¼æŽ©ç public int abTrafficRunYellowLight; // 是å¦æºå¸¦äº¤é€šé—¯é»„ç¯ä¿¡æ¯ public int nTrafficRunYellowLight; // 交通闯黄ç¯æ£€æµ‹æ¨¡å¼æŽ©ç public int abTrafficOverLine; // 是å¦æºå¸¦äº¤é€šåŽ‹çº¿ä¿¡æ¯ public int nTrafficOverLine; // 交通压线检测模å¼æŽ©ç public int abTrafficOverYellowLine; // 是å¦æºå¸¦äº¤é€šåŽ‹é»„çº¿ä¿¡æ¯ public int nTrafficOverYellowLine; // 交通压黄线检测模å¼æŽ©ç public int abTrafficRetrograde; // 是å¦æºå¸¦äº¤é€šé€†è¡Œä¿¡æ¯ public int nTrafficRetrograde; // 交通逆行检测模å¼æŽ©ç public int abTrafficTurnLeft; // 是å¦æºå¸¦äº¤é€šè¿ç« å·¦è½¬ä¿¡æ¯ public int nTrafficTurnLeft; // 交通è¿ç« 左转检测模å¼æŽ©ç public int abTrafficTurnRight; // 是å¦æºå¸¦äº¤é€šè¿ç« å³è½¬ä¿¡æ¯ public int nTrafficTurnRight; // 交通路å£è¿ç« å³è½¬ç±»åž‹ public int abTrafficU_Turn; // 是å¦æºå¸¦äº¤é€šè¿ç« æŽ‰å¤´ä¿¡æ¯ public int nTrafficU_Turn; // 交通è¿ç« 掉头检测模å¼æŽ©ç public int abTrafficCrossLane; // 是å¦æºå¸¦äº¤é€šè¿ç« å˜é“ä¿¡æ¯ public int nTrafficCrossLane; // 交通è¿ç« å˜é“检测模å¼æŽ©ç public int abTrafficParking; // 是å¦æºå¸¦äº¤é€šè¿ç« åœè½¦ä¿¡æ¯ public int nTrafficParking; // 交通è¿ç« åœè½¦æ£€æµ‹æ¨¡å¼æŽ©ç public int abTrafficJam; // 是å¦æºå¸¦äº¤é€šæ‹¥å µä¿¡æ¯ public int nTrafficJam; // äº¤é€šæ‹¥å µæ£€æµ‹æ¨¡å¼æŽ©ç public int abTrafficIdle; // 是å¦æºå¸¦äº¤é€šäº¤é€šç©ºé—²ä¿¡æ¯ public int nTrafficIdle; // 交通交通空闲检测模å¼æŽ©ç public int abTrafficWaitingArea; // 是å¦æºå¸¦äº¤é€šè¿ç« é©¶å…¥å¾…è¡ŒåŒºä¿¡æ¯ public int nTrafficWaitingArea; // 交通è¿ç« 驶入待行区检测模å¼æŽ©ç public int abTrafficUnderSpeed; // 是å¦æºå¸¦äº¤é€šæ¬ é€Ÿä¿¡æ¯ public int nTrafficUnderSpeed; // äº¤é€šæ¬ é€Ÿæ£€æµ‹æ¨¡å¼æŽ©ç public int abTrafficOverSpeed; // 是å¦æºå¸¦äº¤é€šè¶…é€Ÿä¿¡æ¯ public int nTrafficOverSpeed; // 交通超速检测模å¼æŽ©ç public int abTrafficWrongRoute; // 是å¦æºå¸¦äº¤é€šä¸æŒ‰è½¦é“è¡Œé©¶ä¿¡æ¯ public int nTrafficWrongRoute; // 交通ä¸æŒ‰è½¦é“行驶检测模å¼æŽ©ç public int abTrafficYellowInRoute; // 是å¦æºå¸¦äº¤é€šé»„牌å é“ä¿¡æ¯ public int nTrafficYellowInRoute; // 交通黄牌å é“检测模å¼æŽ©ç public int abTrafficVehicleInRoute; // 是å¦æºå¸¦äº¤é€šæœ‰è½¦å é“ä¿¡æ¯ public int nTrafficVehicleInRoute; // 交通有车å é“检测模å¼æŽ©ç public int abTrafficControl; // 是å¦æºå¸¦äº¤é€šäº¤é€šç®¡ç†ä¿¡æ¯ public int nTrafficControl; // 交通交通管ç†æ£€æµ‹æ¨¡å¼æŽ©ç public int abTrafficObjectAlarm; // 是å¦æºå¸¦äº¤é€šæŒ‡å®šç±»åž‹æŠ“æ‹ä¿¡æ¯ public int nTrafficObjectAlarm; // 交通指定类型抓æ‹æ£€æµ‹æ¨¡å¼æŽ©ç public int abTrafficAccident; // 是å¦æºå¸¦äº¤é€šäº¤é€šäº‹æ•…ä¿¡æ¯ public int nTrafficAccident; // 交通交通事故检测模å¼æŽ©ç public int abTrafficStay; // 是å¦æºå¸¦äº¤é€šäº¤é€šåœç•™/æ»žç•™ä¿¡æ¯ public int nTrafficStay; // 交通交通åœç•™/滞留检测模å¼æŽ©ç public int abTrafficPedestrainPriority; // 是å¦æºå¸¦äº¤é€šæ–‘é©¬çº¿è¡Œäººä¼˜å…ˆä¿¡æ¯ public int nTrafficPedestrainPriority; // 交通斑马线行人优先检测模å¼æŽ©ç public int abTrafficPedestrain; // 是å¦æºå¸¦äº¤é€šäº¤é€šè¡Œäººäº‹ä»¶ä¿¡æ¯ public int nTrafficPedestrain; // 交通交通行人事件检测模å¼æŽ©ç public int abTrafficThrow; // 是å¦æºå¸¦äº¤é€šäº¤é€šæŠ›æ´’物å“äº‹ä»¶ä¿¡æ¯ public int nTrafficThrow; // 交通交通抛洒物å“事件检测模å¼æŽ©ç public int abTrafficVehicleInBusRoute; // 是å¦æºå¸¦äº¤é€šè¿ç« å é“ä¿¡æ¯ public int nTrafficVehicleInBusRoute; // 交通è¿ç« å é“检测模å¼æŽ©ç public int abTrafficBacking; // 是å¦æºå¸¦äº¤é€šè¿ç« å€’è½¦ä¿¡æ¯ public int nTrafficBacking; // 交通è¿ç« 倒车检测模å¼æŽ©ç public int abTrafficOverStopLine; // 是å¦æºå¸¦äº¤é€šåŽ‹åœæ¢çº¿ä¿¡æ¯ public int nTrafficOverStopLine; // 交通压åœæ¢çº¿æ£€æµ‹æ¨¡å¼æŽ©ç public int abTrafficParkingOnYellowBox; // 是å¦æºå¸¦äº¤é€šé»„ç½‘æ ¼çº¿æŠ“æ‹ä¿¡æ¯ public int nTrafficParkingOnYellowBox; // äº¤é€šé»„ç½‘æ ¼çº¿æŠ“æ‹æ£€æµ‹æ¨¡å¼æŽ©ç public int abTrafficParkingSpaceParking; // 是å¦æºå¸¦äº¤é€šè½¦ä½æœ‰è½¦ä¿¡æ¯ public int nTrafficParkingSpaceParking; // 交通车ä½æœ‰è½¦æ£€æµ‹æ¨¡å¼æŽ©ç public int abTrafficParkingSpaceNoParking; // 是å¦æºå¸¦äº¤é€šè½¦ä½æ— è½¦ä¿¡æ¯ public int nTrafficParkingSpaceNoParking; // 交通车ä½æ— 车检测模å¼æŽ©ç public int abTrafficParkingSpaceOverLine; // 是å¦æºå¸¦äº¤é€šè½¦ä½æœ‰è½¦åŽ‹çº¿ä¿¡æ¯ public int nTrafficParkingSpaceOverLine; // 交通车ä½æœ‰è½¦åŽ‹çº¿æ£€æµ‹æ¨¡å¼æŽ©ç public int abParkingSpaceDetection; // 是å¦æºå¸¦äº¤é€šå¤šåœè½¦ä½çŠ¶æ€æ£€æµ‹ä¿¡æ¯ public int nParkingSpaceDetection; // 交通多åœè½¦ä½çŠ¶æ€æ£€æµ‹æ£€æµ‹æ¨¡å¼æŽ©ç public int abTrafficRestrictedPlate; // 是å¦æºå¸¦äº¤é€šå—é™è½¦ç‰Œä¿¡æ¯ public int nTrafficRestrictedPlate; // 交通å—é™è½¦ç‰Œæ£€æµ‹æ¨¡å¼æŽ©ç public int abTrafficWithoutSafeBelt; // 是å¦æºå¸¦äº¤é€šä¸ç³»å®‰å…¨å¸¦ä¿¡æ¯ public int nTrafficWithoutSafeBelt; // 交通ä¸ç³»å®‰å…¨å¸¦æ£€æµ‹æ¨¡å¼æŽ©ç public int abTrafficNoPassing; // 是å¦æºå¸¦äº¤é€šç¦è¡Œä¿¡æ¯ public int nTrafficNoPassing; // 交通ç¦è¡Œæ£€æµ‹æ¨¡å¼æŽ©ç public int abVehicleAnalyse; // 是å¦æºå¸¦äº¤é€šè½¦è¾†ç‰¹å¾æ£€æµ‹åˆ†æžä¿¡æ¯ public int nVehicleAnalyse; // 交通车辆特å¾æ£€æµ‹æ¨¡å¼æŽ©ç public int abCrossLineDetection; // 是å¦æºå¸¦äº¤é€šè¦æˆ’çº¿ä¿¡æ¯ public int nCrossLineDetection; // 交通è¦æˆ’线检测模å¼æŽ©ç public int abCrossFenceDetection; // 是å¦æºå¸¦äº¤é€šç©¿è¶Šå›´æ ä¿¡æ¯ public int nCrossFenceDetection; // 交通穿越围æ 检测模å¼æŽ©ç public int abCrossRegionDetection; // 是å¦æºå¸¦äº¤é€šè¦æˆ’åŒºä¿¡æ¯ public int nCrossRegionDetection; // 交通è¦æˆ’区检测模å¼æŽ©ç public int abPasteDetection; // 是å¦æºå¸¦äº¤é€šATMè´´æ¡ä¿¡æ¯ public int nPasteDetection; // 交通ATMè´´æ¡æ£€æµ‹æ¨¡å¼æŽ©ç public int abLeftDetection; // 是å¦æºå¸¦äº¤é€šç‰©å“é—ç•™ä¿¡æ¯ public int nLeftDetection; // 交通物å“é—留检测模å¼æŽ©ç public int abPreservation; // 是å¦æºå¸¦äº¤é€šç‰©å“ä¿å…¨ä¿¡æ¯ public int nPreservation; // 交通物å“ä¿å…¨æ£€æµ‹æ¨¡å¼æŽ©ç public int abTakenAwayDetection; // 是å¦æºå¸¦äº¤é€šç‰©å“æ¬ç§»ä¿¡æ¯ public int nTakenAwayDetection; // 交通物å“æ¬ç§»æ£€æµ‹æ¨¡å¼æŽ©ç public int abStayDetection; // 是å¦æºå¸¦äº¤é€šåœç•™/æ»žç•™ä¿¡æ¯ public int nStayDetection; // 交通åœç•™/滞留检测模å¼æŽ©ç public int abParkingDetection; // 是å¦æºå¸¦äº¤é€šéžæ³•åœè½¦ä¿¡æ¯ public int nParkingDetection; // 交通éžæ³•åœè½¦æ£€æµ‹æ¨¡å¼æŽ©ç public int abWanderDetection; // 是å¦æºå¸¦äº¤é€šå¾˜å¾Šä¿¡æ¯ public int nWanderDetection; // 交通徘徊检测模å¼æŽ©ç public int abMoveDetection; // 是å¦æºå¸¦äº¤é€šè¿åŠ¨ä¿¡æ¯ public int nMoveDetection; // 交通è¿åŠ¨æ£€æµ‹æ¨¡å¼æŽ©ç public int abTailDetection; // 是å¦æºå¸¦äº¤é€šå°¾éšä¿¡æ¯ public int nTailDetection; // 交通尾éšæ£€æµ‹æ¨¡å¼æŽ©ç public int abRioterDetection; // 是å¦æºå¸¦äº¤é€šèšé›†ä¿¡æ¯ public int nRioterDetection; // 交通èšé›†æ£€æµ‹æ¨¡å¼æŽ©ç public int abFightDetection; // 是å¦æºå¸¦äº¤é€šæ‰“æž¶ä¿¡æ¯ public int nFightDetection; // 交通打架检测模å¼æŽ©ç public int abRetrogradeDetection; // 是å¦æºå¸¦äº¤é€šé€†è¡Œä¿¡æ¯ public int nRetrogradeDetection; // 交通逆行检测模å¼æŽ©ç public int abFireDetection; // 是å¦æºå¸¦äº¤é€šç«ç„°ä¿¡æ¯ public int nFireDetection; // 交通ç«ç„°æ£€æµ‹æ¨¡å¼æŽ©ç public int abSmokeDetection; // 是å¦æºå¸¦äº¤é€šçƒŸé›¾ä¿¡æ¯ public int nSmokeDetection; // 交通烟雾检测模å¼æŽ©ç public int abNumberStat; // 是å¦æºå¸¦äº¤é€šæ•°é‡ç»Ÿè®¡ä¿¡æ¯ public int nNumberStat; // 交通数é‡ç»Ÿè®¡æ£€æµ‹æ¨¡å¼æŽ©ç public int abVideoAbnormalDetection; // 是å¦æºå¸¦äº¤é€šè§†é¢‘å¼‚å¸¸ä¿¡æ¯ public int nVideoAbnormalDetection; // 交通视频异常检测模å¼æŽ©ç public int abPSRiseDetection; // 是å¦æºå¸¦å›šçŠ¯èµ·èº«æ£€æµ‹ä¿¡æ¯ public int nPSRiseDetection; // 囚犯起身检测检测模å¼æŽ©ç public int abFaceDetection; // 是å¦æºå¸¦ç›®æ ‡æ£€æµ‹ä¿¡æ¯ public int nFaceDetection; // ç›®æ ‡æ£€æµ‹æ£€æµ‹æ¨¡å¼æŽ©ç public int abFaceRecognition; // 是å¦æºå¸¦ç›®æ ‡è¯†åˆ«ä¿¡æ¯ public int nFaceRecognition; // ç›®æ ‡è¯†åˆ«æ£€æµ‹æ¨¡å¼æŽ©ç public int abDensityDetection; // 是å¦æºå¸¦å¯†é›†åº¦æ£€æµ‹ä¿¡æ¯ public int nDensityDetection; // 密集度检测检测模å¼æŽ©ç public int abQueueDetection; // 是å¦æºå¸¦æŽ’é˜Ÿæ£€æµ‹ä¿¡æ¯ public int nQueueDetection; // 排队检测检测模å¼æŽ©ç public int abClimbDetection; // 是å¦æºå¸¦æ”€é«˜æ£€æµ‹ä¿¡æ¯ public int nClimbDetection; // 攀高检测模å¼æŽ©ç public int abLeaveDetection; // 是å¦æºå¸¦ç¦»å²—æ£€æµ‹ä¿¡æ¯ public int nLeaveDetection; // 离岗检测模å¼æŽ©ç public int abVehicleOnPoliceCar; // 是å¦æºå¸¦è½¦è½½è¦è½¦ä¿¡æ¯ public int nVehicleOnPoliceCar; // 车载è¦è½¦æ£€æµ‹æ¨¡å¼æŽ©ç public int abVehicleOnBus; // 是å¦æºå¸¦è½¦è½½å…¬äº¤ä¿¡æ¯ public int nVehicleOnBus; // 车载公交检测模å¼æŽ©ç public int abVehicleOnSchoolBus; // 是å¦æºå¸¦è½¦è½½æ ¡è½¦ä¿¡æ¯ public int nVehicleOnSchoolBus; // è½¦è½½æ ¡è½¦æ£€æµ‹æ¨¡å¼æŽ©ç } // 交通全局é…置对应ç¯ç»„状æ€é…ç½® public static class ENABLE_LIGHT_STATE_INFO extends SdkStructure { public int bEnable; // 是å¦å¯åŠ¨åº”用层收到的ç¯ç»„状æ€ç»™åº•å±‚ } // 车é“检测类型 public static class EM_CHECK_TYPE extends SdkStructure { public static final int EM_CHECK_TYPE_UNKNOWN = 0; // ä¸è¯†åˆ«çš„检测类型 public static final int EM_CHECK_TYPE_PHYSICAL = 1; // 物ç†æ£€æµ‹ public static final int EM_CHECK_TYPE_VIDEO = 2; // 视频检测 } // TRAFFIC_EVENT_CHECK_INFO public static class TRAFFIC_EVENT_CHECK_INFO extends SdkStructure { public int abTrafficGate; // 是å¦æºå¸¦äº¤é€šå¡å£ä¿¡æ¯ public int emTrafficGate; // 交通å¡å£æ£€æµ‹ç±»åž‹ EM_CHECK_TYPE public int abTrafficJunction; // 是å¦æºå¸¦äº¤é€šè·¯å£ä¿¡æ¯ public int emTrafficJunction; // 交通路å£æ£€æµ‹ç±»åž‹ public int abTrafficTollGate; // 是å¦æºå¸¦æ–°äº¤é€šå¡å£ä¿¡æ¯ public int emTrafficTollGate; // 新交通å¡å£æ£€æµ‹ç±»åž‹ public int abTrafficRunRedLight; // 是å¦æºå¸¦äº¤é€šé—¯çº¢ç¯ä¿¡æ¯ public int emTrafficRunRedLight; // 交通闯红ç¯æ£€æµ‹ç±»åž‹ public int abTrafficRunYellowLight; // 是å¦æºå¸¦äº¤é€šé—¯é»„ç¯ä¿¡æ¯ public int emTrafficRunYellowLight; // 交通闯黄ç¯æ£€æµ‹ç±»åž‹ public int abTrafficOverLine; // 是å¦æºå¸¦äº¤é€šåŽ‹çº¿ä¿¡æ¯ public int emTrafficOverLine; // 交通压线检测类型 public int abTrafficOverYellowLine; // 是å¦æºå¸¦äº¤é€šåŽ‹é»„çº¿ä¿¡æ¯ public int emTrafficOverYellowLine; // 交通压黄线检测类型 public int abTrafficRetrograde; // 是å¦æºå¸¦äº¤é€šé€†è¡Œä¿¡æ¯ public int emTrafficRetrograde; // 交通逆行检测类型 public int abTrafficTurnLeft; // 是å¦æºå¸¦äº¤é€šè¿ç« å·¦è½¬ä¿¡æ¯ public int emTrafficTurnLeft; // 交通è¿ç« 左转检测类型 public int abTrafficTurnRight; // 是å¦æºå¸¦äº¤é€šè¿ç« å³è½¬ä¿¡æ¯ public int emTrafficTurnRight; // 交通路å£è¿ç« å³è½¬ç±»åž‹ public int abTrafficU_Turn; // 是å¦æºå¸¦äº¤é€šè¿ç« æŽ‰å¤´ä¿¡æ¯ public int emTrafficU_Turn; // 交通è¿ç« 掉头检测类型 public int abTrafficCrossLane; // 是å¦æºå¸¦äº¤é€šè¿ç« å˜é“ä¿¡æ¯ public int emTrafficCrossLane; // 交通è¿ç« å˜é“检测类型 public int abTrafficParking; // 是å¦æºå¸¦äº¤é€šè¿ç« åœè½¦ä¿¡æ¯ public int emTrafficParking; // 交通è¿ç« åœè½¦æ£€æµ‹ç±»åž‹ public int abTrafficJam; // 是å¦æºå¸¦äº¤é€šæ‹¥å µä¿¡æ¯ public int emTrafficJam; // äº¤é€šæ‹¥å µæ£€æµ‹ç±»åž‹ public int abTrafficIdle; // 是å¦æºå¸¦äº¤é€šäº¤é€šç©ºé—²ä¿¡æ¯ public int emTrafficIdle; // 交通交通空闲检测类型 public int abTrafficWaitingArea; // 是å¦æºå¸¦äº¤é€šè¿ç« é©¶å…¥å¾…è¡ŒåŒºä¿¡æ¯ public int emTrafficWaitingArea; // 交通è¿ç« 驶入待行区检测类型 public int abTrafficUnderSpeed; // 是å¦æºå¸¦äº¤é€šæ¬ é€Ÿä¿¡æ¯ public int emTrafficUnderSpeed; // äº¤é€šæ¬ é€Ÿæ£€æµ‹ç±»åž‹ public int abTrafficOverSpeed; // 是å¦æºå¸¦äº¤é€šè¶…é€Ÿä¿¡æ¯ public int emTrafficOverSpeed; // 交通超速检测类型 public int abTrafficWrongRoute; // 是å¦æºå¸¦äº¤é€šä¸æŒ‰è½¦é“è¡Œé©¶ä¿¡æ¯ public int emTrafficWrongRoute; // 交通ä¸æŒ‰è½¦é“行驶检测类型 public int abTrafficYellowInRoute; // 是å¦æºå¸¦äº¤é€šé»„牌å é“ä¿¡æ¯ public int emTrafficYellowInRoute; // 交通黄牌å é“检测类型 public int abTrafficVehicleInRoute; // 是å¦æºå¸¦äº¤é€šæœ‰è½¦å é“ä¿¡æ¯ public int emTrafficVehicleInRoute; // 交通有车å é“检测类型 public int abTrafficControl; // 是å¦æºå¸¦äº¤é€šäº¤é€šç®¡ç†ä¿¡æ¯ public int emTrafficControl; // 交通交通管ç†æ£€æµ‹ç±»åž‹ public int abTrafficObjectAlarm; // 是å¦æºå¸¦äº¤é€šæŒ‡å®šç±»åž‹æŠ“æ‹ä¿¡æ¯ public int emTrafficObjectAlarm; // 交通指定类型抓æ‹æ£€æµ‹ç±»åž‹ public int abTrafficAccident; // 是å¦æºå¸¦äº¤é€šäº¤é€šäº‹æ•…ä¿¡æ¯ public int emTrafficAccident; // 交通交通事故检测类型 public int abTrafficStay; // 是å¦æºå¸¦äº¤é€šäº¤é€šåœç•™/æ»žç•™ä¿¡æ¯ public int emTrafficStay; // 交通交通åœç•™/滞留检测类型 public int abTrafficPedestrainPriority; // 是å¦æºå¸¦äº¤é€šæ–‘é©¬çº¿è¡Œäººä¼˜å…ˆä¿¡æ¯ public int emTrafficPedestrainPriority; // 交通斑马线行人优先检测类型 public int abTrafficPedestrain; // 是å¦æºå¸¦äº¤é€šäº¤é€šè¡Œäººäº‹ä»¶ä¿¡æ¯ public int emTrafficPedestrain; // 交通交通行人事件检测类型 public int abTrafficThrow; // 是å¦æºå¸¦äº¤é€šäº¤é€šæŠ›æ´’物å“äº‹ä»¶ä¿¡æ¯ public int emTrafficThrow; // 交通交通抛洒物å“事件检测类型 public int abTrafficVehicleInBusRoute; // 是å¦æºå¸¦äº¤é€šè¿ç« å é“ä¿¡æ¯ public int emTrafficVehicleInBusRoute; // 交通è¿ç« å é“检测类型 public int abTrafficBacking; // 是å¦æºå¸¦äº¤é€šè¿ç« å€’è½¦ä¿¡æ¯ public int emTrafficBacking; // 交通è¿ç« 倒车检测类型 public int abTrafficOverStopLine; // 是å¦æºå¸¦äº¤é€šåŽ‹åœæ¢çº¿ä¿¡æ¯ public int emTrafficOverStopLine; // 交通压åœæ¢çº¿æ£€æµ‹ç±»åž‹ public int abTrafficParkingOnYellowBox; // 是å¦æºå¸¦äº¤é€šé»„ç½‘æ ¼çº¿æŠ“æ‹ä¿¡æ¯ public int emTrafficParkingOnYellowBox; // äº¤é€šé»„ç½‘æ ¼çº¿æŠ“æ‹æ£€æµ‹ç±»åž‹ public int abTrafficParkingSpaceParking; // 是å¦æºå¸¦äº¤é€šè½¦ä½æœ‰è½¦ä¿¡æ¯ public int emTrafficParkingSpaceParking; // 交通车ä½æœ‰è½¦æ£€æµ‹ç±»åž‹ public int abTrafficParkingSpaceNoParking; // 是å¦æºå¸¦äº¤é€šè½¦ä½æ— è½¦ä¿¡æ¯ public int emTrafficParkingSpaceNoParking; // 交通车ä½æ— 车检测类型 public int abTrafficParkingSpaceOverLine; // 是å¦æºå¸¦äº¤é€šè½¦ä½æœ‰è½¦åŽ‹çº¿ä¿¡æ¯ public int emTrafficParkingSpaceOverLine; // 交通车ä½æœ‰è½¦åŽ‹çº¿æ£€æµ‹ç±»åž‹ public int abParkingSpaceDetection; // 是å¦æºå¸¦äº¤é€šå¤šåœè½¦ä½çŠ¶æ€æ£€æµ‹ä¿¡æ¯ public int emParkingSpaceDetection; // 交通多åœè½¦ä½çŠ¶æ€æ£€æµ‹æ£€æµ‹ç±»åž‹ public int abTrafficRestrictedPlate; // 是å¦æºå¸¦äº¤é€šå—é™è½¦ç‰Œä¿¡æ¯ public int emTrafficRestrictedPlate; // 交通å—é™è½¦ç‰Œæ£€æµ‹ç±»åž‹ public int abTrafficWithoutSafeBelt; // 是å¦æºå¸¦äº¤é€šä¸ç³»å®‰å…¨å¸¦ä¿¡æ¯ public int emTrafficWithoutSafeBelt; // 交通ä¸ç³»å®‰å…¨å¸¦æ£€æµ‹ç±»åž‹ public int abTrafficNoPassing; // 是å¦æºå¸¦äº¤é€šç¦è¡Œä¿¡æ¯ public int emTrafficNoPassing; // 交通ç¦è¡Œæ£€æµ‹ç±»åž‹ public int abVehicleAnalyse; // 是å¦æºå¸¦äº¤é€šè½¦è¾†ç‰¹å¾æ£€æµ‹åˆ†æžä¿¡æ¯ public int emVehicleAnalyse; // 交通车辆特å¾æ£€æµ‹ç±»åž‹ public int abCrossLineDetection; // 是å¦æºå¸¦äº¤é€šè¦æˆ’çº¿ä¿¡æ¯ public int emCrossLineDetection; // 交通è¦æˆ’线检测类型 public int abCrossFenceDetection; // 是å¦æºå¸¦äº¤é€šç©¿è¶Šå›´æ ä¿¡æ¯ public int emCrossFenceDetection; // 交通穿越围æ 检测类型 public int abCrossRegionDetection; // 是å¦æºå¸¦äº¤é€šè¦æˆ’åŒºä¿¡æ¯ public int emCrossRegionDetection; // 交通è¦æˆ’区检测类型 public int abPasteDetection; // 是å¦æºå¸¦äº¤é€šATMè´´æ¡ä¿¡æ¯ public int emPasteDetection; // 交通ATMè´´æ¡æ£€æµ‹ç±»åž‹ public int abLeftDetection; // 是å¦æºå¸¦äº¤é€šç‰©å“é—ç•™ä¿¡æ¯ public int emLeftDetection; // 交通物å“é—留检测类型 public int abPreservation; // 是å¦æºå¸¦äº¤é€šç‰©å“ä¿å…¨ä¿¡æ¯ public int emPreservation; // 交通物å“ä¿å…¨æ£€æµ‹ç±»åž‹ public int abTakenAwayDetection; // 是å¦æºå¸¦äº¤é€šç‰©å“æ¬ç§»ä¿¡æ¯ public int emTakenAwayDetection; // 交通物å“æ¬ç§»æ£€æµ‹ç±»åž‹ public int abStayDetection; // 是å¦æºå¸¦äº¤é€šåœç•™/æ»žç•™ä¿¡æ¯ public int emStayDetection; // 交通åœç•™/滞留检测类型 public int abParkingDetection; // 是å¦æºå¸¦äº¤é€šéžæ³•åœè½¦ä¿¡æ¯ public int emParkingDetection; // 交通éžæ³•åœè½¦æ£€æµ‹ç±»åž‹ public int abWanderDetection; // 是å¦æºå¸¦äº¤é€šå¾˜å¾Šä¿¡æ¯ public int emWanderDetection; // 交通徘徊检测类型 public int abMoveDetection; // 是å¦æºå¸¦äº¤é€šè¿åŠ¨ä¿¡æ¯ public int emMoveDetection; // 交通è¿åŠ¨æ£€æµ‹ç±»åž‹ public int abTailDetection; // 是å¦æºå¸¦äº¤é€šå°¾éšä¿¡æ¯ public int emTailDetection; // 交通尾éšæ£€æµ‹ç±»åž‹ public int abRioterDetection; // 是å¦æºå¸¦äº¤é€šèšé›†ä¿¡æ¯ public int emRioterDetection; // 交通èšé›†æ£€æµ‹ç±»åž‹ public int abFightDetection; // 是å¦æºå¸¦äº¤é€šæ‰“æž¶ä¿¡æ¯ public int emFightDetection; // 交通打架检测类型 public int abRetrogradeDetection; // 是å¦æºå¸¦äº¤é€šé€†è¡Œä¿¡æ¯ public int emRetrogradeDetection; // 交通逆行检测类型 public int abFireDetection; // 是å¦æºå¸¦äº¤é€šç«ç„°ä¿¡æ¯ public int emFireDetection; // 交通ç«ç„°æ£€æµ‹ç±»åž‹ public int abSmokeDetection; // 是å¦æºå¸¦äº¤é€šçƒŸé›¾ä¿¡æ¯ public int emSmokeDetection; // 交通烟雾检测类型 public int abNumberStat; // 是å¦æºå¸¦äº¤é€šæ•°é‡ç»Ÿè®¡ä¿¡æ¯ public int emNumberStat; // 交通数é‡ç»Ÿè®¡æ£€æµ‹ç±»åž‹ public int abVideoAbnormalDetection; // 是å¦æºå¸¦äº¤é€šè§†é¢‘å¼‚å¸¸ä¿¡æ¯ public int emVideoAbnormalDetection; // 交通视频异常检测类型 public int abPSRiseDetection; // 是å¦æºå¸¦å›šçŠ¯èµ·èº«æ£€æµ‹ä¿¡æ¯ public int emPSRiseDetection; // 囚犯起身检测检测类型 public int abFaceDetection; // 是å¦æºå¸¦ç›®æ ‡æ£€æµ‹ä¿¡æ¯ public int emFaceDetection; // ç›®æ ‡æ£€æµ‹æ£€æµ‹ç±»åž‹ public int abFaceRecognition; // 是å¦æºå¸¦ç›®æ ‡è¯†åˆ«ä¿¡æ¯ public int emFaceRecognition; // ç›®æ ‡è¯†åˆ«æ£€æµ‹ç±»åž‹ public int abDensityDetection; // 是å¦æºå¸¦å¯†é›†åº¦æ£€æµ‹ä¿¡æ¯ public int emDensityDetection; // 密集度检测检测类型 public int abQueueDetection; // 是å¦æºå¸¦æŽ’é˜Ÿæ£€æµ‹ä¿¡æ¯ public int emQueueDetection; // 排队检测检测类型 public int abClimbDetection; // 是å¦æºå¸¦æ”€é«˜æ£€æµ‹ä¿¡æ¯ public int emClimbDetection; // 攀高检测类型 public int abLeaveDetection; // 是å¦æºå¸¦ç¦»å²—æ£€æµ‹ä¿¡æ¯ public int emLeaveDetection; // 离岗检测类型 public int abVehicleOnPoliceCar; // 是å¦æºå¸¦è½¦è½½è¦è½¦ä¿¡æ¯ public int emVehicleOnPoliceCar; // 车载è¦è½¦æ£€æµ‹ç±»åž‹ public int abVehicleOnBus; // 是å¦æºå¸¦è½¦è½½å…¬äº¤ä¿¡æ¯ public int emVehicleOnBus; // 车载公交检测类型 public int abVehicleOnSchoolBus; // 是å¦æºå¸¦è½¦è½½æ ¡è½¦ä¿¡æ¯ public int emVehicleOnSchoolBus; // è½¦è½½æ ¡è½¦æ£€æµ‹ç±»åž‹ public int abStandUpDetection; // 是å¦æºå¸¦å¦ç”Ÿèµ·ç«‹ä¿¡æ¯ public int emStandUpDetection; // å¦ç”Ÿèµ·ç«‹æ£€æµ‹ç±»åž‹ } // MixModeConfigä¸å…³äºŽè½¦é“é…ç½®ä¿¡æ¯ public static class MIX_MODE_LANE_INFO extends SdkStructure { public int nLaneNum; // 车é“é…置个数 public TRAFFIC_EVENT_CHECK_INFO[] stCheckInfo = (TRAFFIC_EVENT_CHECK_INFO[]) new TRAFFIC_EVENT_CHECK_INFO().toArray(MAX_LANE_CONFIG_NUMBER); // 车é“é…ç½®å¯¹åº”äº‹ä»¶æ£€æµ‹ä¿¡æ¯ } // MixModeConfig æ··åˆæ¨¡å¼è¿ç« é…ç½® public static class MIX_MODE_CONFIG extends SdkStructure { public int bLaneDiffEnable; // 是å¦æŒ‰è½¦é“区分 public MIX_MODE_LANE_INFO stLaneInfo; public TRAFFIC_EVENT_CHECK_INFO stCheckInfo; } // CFG_CMD_TRAFFICGLOBAL 交通全局é…ç½®é…置表 public static class CFG_TRAFFICGLOBAL_INFO extends SdkStructure { public VIOLATIONCODE_INFO stViolationCode; // è¿ç« 代ç é…置表 public int bEnableRedList; // 使能红åå•æ£€æµ‹ï¼Œä½¿èƒ½åŽï¼Œåå•å†…车辆è¿ç« ä¸ä¸ŠæŠ¥ public int abViolationTimeSchedule; // 是å¦æºå¸¦è¿ç« 抓æ‹è‡ªå®šä¹‰æ—¶é—´é…ç½® public VIOLATION_TIME_SCHEDULE stViolationTimeSchedule; // è¿ç« 抓æ‹è‡ªå®šä¹‰æ—¶é—´é…ç½® public int abEnableBlackList; // 是å¦æºå¸¦ä½¿èƒ½ç¦æ¢åå•æ£€æµ‹ä¿¡æ¯ public int bEnableBlackList; // 使能ç¦æ¢åå•æ£€æµ‹ public int abPriority; // 是å¦æºå¸¦è¿ç« 优先级å‚æ•° public int nPriority; // è¿ç« 优先级个数 public byte[] szPriority = new byte[MAX_PRIORITY_NUMBER*CFG_COMMON_STRING_256]; // è¿ç« 优先级, 0为最高优先级 public int abNamingFormat; // 是å¦æºå¸¦å›¾ç‰‡å‘½åæ ¼å¼å‚æ•° public TRAFFIC_NAMING_FORMAT stNamingFormat; // 图片命åæ ¼å¼å‚æ•°é…ç½® public int abVideoNamingFormat; // 是å¦æºå¸¦å½•åƒå‘½åæ ¼å¼å‚æ•° public TRAFFIC_NAMING_FORMAT stVideoNamingFormat; // 录åƒå‘½åæ ¼å¼å‚æ•°é…ç½® public int abCalibration; // 是å¦æºå¸¦æ ‡å®šä¿¡æ¯ public TRAFFIC_CALIBRATION_INFO stCalibration; // æ ‡å®šä¿¡æ¯ public int abAddress; // 是å¦æºå¸¦æŸ¥è¯¢åœ°å€å‚æ•° public byte[] szAddress = new byte[CFG_COMMON_STRING_256]; // 查询地å€ï¼ŒUTF-8ç¼–ç public int abTransferPolicy; // 是å¦æºå¸¦ä¼ 输ç–ç•¥å‚æ•° public int emTransferPolicy; // ä¼ è¾“ç–ç•¥, EM_TRANSFER_POLICY public int abSupportModeMaskConfig; // 是å¦æºå¸¦è¿ç« 掩ç public TRAFFIC_EVENT_CHECK_MASK stSupportModeMaskConfig; // è¿ç« 类型支æŒçš„检测模å¼æŽ©ç é…ç½® public int abIsEnableLightState; // 是å¦æºå¸¦ç¯ç»„çŠ¶æ€ public ENABLE_LIGHT_STATE_INFO stIsEnableLightState; // 交通全局é…置对应图片命åæ ¼å¼å‚æ•°é…ç½® public int abMixModeInfo; // 是å¦å«æœ‰æ··åˆæ¨¡å¼é…ç½® public MIX_MODE_CONFIG stMixModeInfo; // æ··åˆæ¨¡å¼é…ç½® } // 手动抓æ‹å‚æ•° public static class MANUAL_SNAP_PARAMETER extends SdkStructure { public int nChannel; // 抓图通é“,从0开始 public byte[] bySequence = new byte[64]; // 抓图åºåˆ—å·å—符串 public byte[] byReserved = new byte[60]; // ä¿ç•™å—段 } // 视频统计å°è®¡ä¿¡æ¯ public static class NET_VIDEOSTAT_SUBTOTAL extends SdkStructure { public int nTotal; // 设备è¿è¡ŒåŽäººæ•°ç»Ÿè®¡æ€»æ•° public int nHour; // å°æ—¶å†…的总人数 public int nToday; // 当天的总人数 public int nOSD; // 统计人数,用于OSD显示, å¯æ‰‹åŠ¨æ¸…除 public int nTotalNonMotor; // 设备è¿è¡ŒåŽéžæœºåŠ¨è½¦ç»Ÿè®¡æ€»æ•°,é‡å¯åŽä»Žä¸Šæ¬¡æ€»æ•°å¼€å§‹ç»§ç»ç´¯åŠ public int nHourNonMotor; // å°æ—¶å†…的总éžæœºåŠ¨è½¦æ•°é‡ public int nTodayNonMotor; // 当天的总éžæœºåŠ¨è½¦æ•°(自然天) public int nTotalPig; // 设备è¿è¡ŒåŽçŒªåªç»Ÿè®¡æ€»æ•°,é‡å¯åŽä»Žä¸Šæ¬¡æ€»æ•°å¼€å§‹ç»§ç»ç´¯åŠ public int nHourPig; // å°æ—¶å†…的总猪åªæ•°é‡ public int nTodayPig; // 当天的总猪åªæ•°(自然天) public int nTotalPigInTimeSection; // IPC专用,如果ä¸æ‰§è¡ŒclearSectionStatæ“作,ç‰åŒäºŽTodayPig猪åªæ•°ã€‚ public byte[] reserved = new byte[224]; } // 视频统计摘è¦ä¿¡æ¯ public static class NET_VIDEOSTAT_SUMMARY extends SdkStructure { public int nChannelID; // 通é“å· public byte[] szRuleName = new byte[32]; // 规则å称 public NET_TIME_EX stuTime; // 统计时间 public NET_VIDEOSTAT_SUBTOTAL stuEnteredSubtotal; // 进入å°è®¡ public NET_VIDEOSTAT_SUBTOTAL stuExitedSubtotal; // 出去å°è®¡ public int nInsidePeopleNum; // 区域内人数 public int emRuleType; // 规则类型, å‚考枚举 EM_RULE_TYPE public int nRetExitManNum; // 离开的人数个数 public NET_EXITMAN_STAY_STAT[] stuExitManStayInfo = (NET_EXITMAN_STAY_STAT[])new NET_EXITMAN_STAY_STAT().toArray(MAX_EXIT_MAN_NUM); // ç¦»å¼€äººå‘˜çš„æ»žç•™æ—¶é—´ä¿¡æ¯ public int nPlanID; // 计划ID,ä»…çƒæœºæœ‰æ•ˆ,从1开始 public int nAreaID; // 区域ID(一个预置点å¯ä»¥å¯¹åº”多个区域ID) public int nCurrentDayInsidePeopleNum; // 当天区域内总人数 public int nInsideTotalNonMotor; // 区域内éžæœºåŠ¨è½¦æ€»æ•° public int nInsideTodayNonMotor; // 当天的éžæœºåŠ¨è½¦æ•° public int nRetNonMotorNum; // éžæœºåŠ¨è½¦çš„滞留个数 public NET_NONMOTOR_STAY_STAT[] stuNonMotorStayStat = (NET_NONMOTOR_STAY_STAT[])new NET_NONMOTOR_STAY_STAT().toArray(MAX_EXIT_MAN_NUM);// éžæœºåŠ¨è½¦çš„æ»žç•™æ—¶é—´ä¿¡æ¯ public int nInsideTotalPig; // 区域内猪åªæ•° public int nPigStayStatCount; // 猪åªç¦»å¼€æ»žç•™æ—¶é—´ä¿¡æ¯ä¸ªæ•° public NET_PIG_STAY_STAT[] stuPigStayStatInfo = new NET_PIG_STAY_STAT[32];//猪åªç¦»å¼€æ»žç•™æ—¶é—´ä¿¡æ¯ public int nInsideTodayPig; // 当天的猪åªæ•° public byte[] szReserved = new byte[4]; //å—èŠ‚å¯¹é½ public NET_PASSED_SUBTOTAL_INFO stuPassedSubtotal = new NET_PASSED_SUBTOTAL_INFO();// ç»è¿‡å°è®¡ public byte[] reserved = new byte[884]; //ä¿ç•™å—节 public NET_VIDEOSTAT_SUMMARY() { for (int i = 0; i < stuExitManStayInfo.length; i++) { stuExitManStayInfo[i] = new NET_EXITMAN_STAY_STAT(); } for (int i = 0; i < stuNonMotorStayStat.length; i++) { stuNonMotorStayStat[i] = new NET_NONMOTOR_STAY_STAT(); } for (int i = 0; i < stuPigStayStatInfo.length; i++) { stuPigStayStatInfo[i] = new NET_PIG_STAY_STAT(); } } } // ç¦»å¼€äººå‘˜çš„æ»žç•™æ—¶é—´ä¿¡æ¯ public static class NET_EXITMAN_STAY_STAT extends SdkStructure { public NET_TIME stuEnterTime; // 人员进入区域时间 public NET_TIME stuExitTime; // 人员离开区域时间 public byte[] reserved = new byte[128]; // ä¿ç•™å—节 } // CLIENT_AttachVideoStatSummary å…¥å‚ public static class NET_IN_ATTACH_VIDEOSTAT_SUM extends SdkStructure { public int dwSize; public int nChannel; // 视频通é“å· public Callback cbVideoStatSum; // 视频统计摘è¦ä¿¡æ¯å›žè°ƒ, fVideoStatSumCallBack 回调 public Pointer dwUser; // ç”¨æˆ·æ•°æ® public NET_IN_ATTACH_VIDEOSTAT_SUM() { this.dwSize = this.size(); } } // CLIENT_AttachVideoStatSummary å‡ºå‚ public static class NET_OUT_ATTACH_VIDEOSTAT_SUM extends SdkStructure { public int dwSize; public NET_OUT_ATTACH_VIDEOSTAT_SUM() { this.dwSize = this.size(); } } public static class EM_OTHER_RULE_TYPE extends SdkStructure { public static final int EM_OTHER_RULE_TYPE_UNKOWN = 0; // 未知 public static final int EM_OTHER_RULE_TYPE_AVERAGE_STAYTIME = 1; // å¹³å‡æ»žç•™æ—¶é—´ } // 接å£(CLIENT_StartFindNumberStat)输入å‚æ•° public static class NET_IN_FINDNUMBERSTAT extends SdkStructure { public int dwSize; // æ¤ç»“æž„ä½“å¤§å° public int nChannelID; // è¦è¿›è¡ŒæŸ¥è¯¢çš„通é“å· public NET_TIME stStartTime; // 开始时间 暂时精确到å°æ—¶ public NET_TIME stEndTime; // 结æŸæ—¶é—´ 暂时精确到å°æ—¶ public int nGranularityType; // 查询粒度0:分钟,1:å°æ—¶,2:æ—¥,3:周,4:月,5:å£,6:å¹´ // 7:å³æ—¶, 8:人员 (7å’Œ8åªåœ¨emRuleType为EM_RULE_MAN_NUM_DETECTION时有效) public int nWaittime; // ç‰å¾…接收数æ®çš„超时时间 public int nPlanID; // 计划ID,ä»…çƒæœºæœ‰æ•ˆ,从1开始 public int emRuleType; // 规则类型 public int nMinStayTime; // å‚考枚举 EM_RULE_TYPE, 区域人数查询最å°æ»žç•™æ—¶é—´ï¼Œä¸å¡«é»˜è®¤ä¸º0,返回滞留时长大于ç‰äºŽè¯¥æ—¶é—´çš„äººæ•°ä¿¡æ¯ // NumberStatæ—¶ä¸éœ€è¦æ¤å‚æ•° public int nAreaIDNum; // 区域ID个数 public int[] nAreaID = new int[20]; // 区域ID(一个预置点å¯ä»¥å¯¹åº”多个区域ID) public int emOtherRule; // 其他规则, å‚考 EM_OTHER_RULE_TYPE public int nGranularityExt; // 当查询粒度为分钟时,用以细化具体粒度 ä¸å¡«é»˜è®¤5分钟粒度 public NET_IN_FINDNUMBERSTAT() { this.dwSize = this.size(); } } // 规则类型 public static class EM_RULE_TYPE extends SdkStructure { public static final int EM_RULE_UNKNOWN = 0; // 未知 public static final int EM_RULE_NUMBER_STAT = 1; // 人数统计 public static final int EM_RULE_MAN_NUM_DETECTION = 2; // 区域内人数统计 } // 接å£(CLIENT_StartFindNumberStat)输出å‚æ•° public static class NET_OUT_FINDNUMBERSTAT extends SdkStructure { public int dwSize; // æ¤ç»“æž„ä½“å¤§å° public int dwTotalCount; // 符åˆæ¤æ¬¡æŸ¥è¯¢æ¡ä»¶çš„结果总æ¡æ•° public NET_OUT_FINDNUMBERSTAT() { this.dwSize = this.size(); } } // 接å£(CLIENT_DoFindNumberStat)输入å‚æ•° public static class NET_IN_DOFINDNUMBERSTAT extends SdkStructure { public int dwSize; // æ¤ç»“æž„ä½“å¤§å° public int nBeginNumber; // [0, totalCount-1], 查询起始åºå·,表示从beginNumberæ¡è®°å½•å¼€å§‹,å–countæ¡è®°å½•è¿”回; public int nCount; // æ¯æ¬¡æŸ¥è¯¢çš„æµé‡ç»Ÿè®¡æ¡æ•° public int nWaittime; // ç‰å¾…接收数æ®çš„超时时间 public NET_IN_DOFINDNUMBERSTAT() { this.dwSize = this.size(); } } public static class NET_NUMBERSTAT extends SdkStructure { public int dwSize; public int nChannelID; // 统计通é“å· public byte[] szRuleName = new byte[NET_CHAN_NAME_LEN]; // 规则å称 public NET_TIME stuStartTime; // 开始时间 public NET_TIME stuEndTime; // 结æŸæ—¶é—´ public int nEnteredSubTotal; // 进入人数å°è®¡ public int nExitedSubtotal; // 出去人数å°è®¡ public int nAvgInside; // å¹³å‡ä¿æœ‰äººæ•°(除去零值) public int nMaxInside; // 最大ä¿æœ‰äººæ•° public int nEnteredWithHelmet; // 戴安全帽进入人数å°è®¡ public int nEnteredWithoutHelmet; // ä¸æˆ´å®‰å…¨å¸½è¿›å…¥äººæ•°å°è®¡ public int nExitedWithHelmet; // 戴安全帽出去人数å°è®¡ public int nExitedWithoutHelmet; // ä¸æˆ´å®‰å…¨å¸½å‡ºåŽ»äººæ•°å°è®¡ public int nInsideSubtotal; // 在区域内人数å°è®¡ public int nPlanID; // 计划ID,ä»…çƒæœºæœ‰æ•ˆ,从1开始 public int nAreaID; // 区域ID(一个预置点å¯ä»¥å¯¹åº”多个区域ID) public int nAverageStayTime; // 区域内平å‡æ»žç•™æ—¶é—´ public NET_TEMPERATURE_STATISTICS_INFO stuTempInfo; // 温度统计信æ¯(NET_IN_FINDNUMBERSTAT å—段 emRuleType å–值为 EM_RULE_ANATOMYTEMP_DETECT 时有效) public int nPassedSubtotal; // ç»è¿‡äººæ•°å°è®¡ public int nEnteredDupSubtotal; // 进入é‡å¤äººæ•°å°è®¡ public int nExitedDupSubtotal; // 出去é‡å¤äººæ•°å°è®¡ public int nEnteredNoDupSubtotal; // 去é‡åŽçš„进入人数å°è®¡ public int nExitedNoDupSubtotal; // 去é‡åŽçš„出去人数å°è®¡ public int nClusterAreaID; // 多通é“èžåˆåŒºåŸŸID public int nBatchTotal; // 批次数å°è®¡ public NET_NUMBERSTAT() { this.dwSize = this.size(); } } // 接å£(CLIENT_DoFindNumberStat)输出å‚æ•° public static class NET_OUT_DOFINDNUMBERSTAT extends SdkStructure { public int dwSize; // æ¤ç»“æž„ä½“å¤§å° public int nCount; // 查询返人数统计信æ¯ä¸ªæ•° public Pointer pstuNumberStat; // 返人数统计信æ¯æ•°ç»„, NET_NUMBERSTAT类型 ,由用户申请内å˜ï¼Œå¤§å°ä¸ºnBufferLen public int nBufferLen; // 用户申请的内å˜å¤§å°,以NET_NUMBERSTATä¸çš„dwsize大å°ä¸ºå•ä½ public int nMinStayTime; // 区域人数查询时指定的最å°æ»žç•™æ—¶é—´ public NET_OUT_DOFINDNUMBERSTAT() { this.dwSize = this.size(); } } public static class CONNECT_STATE extends SdkStructure { public static final int CONNECT_STATE_UNCONNECT = 0; public static final int CONNECT_STATE_CONNECTING = 1; public static final int CONNECT_STATE_CONNECTED = 2; public static final int CONNECT_STATE_ERROR = 255; } // 虚拟摄åƒå¤´çŠ¶æ€æŸ¥è¯¢ public static class NET_DEV_VIRTUALCAMERA_STATE_INFO extends SdkStructure { public int nStructSize; //ç»“æž„ä½“å¤§å° public int nChannelID; //通é“å· public int emConnectState; //连接状æ€, å–值范围为CONNECT_STATEä¸çš„值 public int uiPOEPort; //æ¤è™šæ‹Ÿæ‘„åƒå¤´æ‰€è¿žæŽ¥çš„POE端å£å·,0表示ä¸æ˜¯POE连接, 类型为unsigned int public byte[] szDeviceName = new byte[64]; //设备å称 public byte[] szDeviceType = new byte[128]; //设备类型 public byte[] szSystemType = new byte[128]; //系统版本 public byte[] szSerialNo = new byte[NET_SERIALNO_LEN];//åºåˆ—å· public int nVideoInput; //视频输入 public int nAudioInput; //音频输入 public int nAlarmOutput; //å¤–éƒ¨æŠ¥è¦ public NET_DEV_VIRTUALCAMERA_STATE_INFO() { this.nStructSize = this.size(); } } // 录åƒæ–‡ä»¶ç±»åž‹ public static class NET_RECORD_TYPE extends SdkStructure { public final static int NET_RECORD_TYPE_ALL = 0; // æ‰€æœ‰å½•åƒ public final static int NET_RECORD_TYPE_NORMAL = 1; // æ™®é€šå½•åƒ public final static int NET_RECORD_TYPE_ALARM = 2; // 外部报è¦å½•åƒ public final static int NET_RECORD_TYPE_MOTION = 3; // 动检报è¦å½•åƒ } // å¯¹è®²æ–¹å¼ public static class EM_USEDEV_MODE extends SdkStructure { public static final int NET_TALK_CLIENT_MODE = 0; // 设置客户端方å¼è¿›è¡Œè¯éŸ³å¯¹è®² public static final int NET_TALK_SERVER_MODE = 1; // 设置æœåŠ¡å™¨æ–¹å¼è¿›è¡Œè¯éŸ³å¯¹è®² public static final int NET_TALK_ENCODE_TYPE = 2; // 设置è¯éŸ³å¯¹è®²ç¼–ç æ ¼å¼(对应 NETDEV_TALKDECODE_INFO) public static final int NET_ALARM_LISTEN_MODE = 3; // 设置报è¦è®¢é˜…æ–¹å¼ public static final int NET_CONFIG_AUTHORITY_MODE = 4; // 设置通过æƒé™è¿›è¡Œé…ç½®ç®¡ç† public static final int NET_TALK_TALK_CHANNEL = 5; // 设置对讲通é“(0~MaxChannel-1) public static final int NET_RECORD_STREAM_TYPE = 6; // 设置待查询åŠæŒ‰æ—¶é—´å›žæ”¾çš„录åƒç æµç±»åž‹(0-主辅ç æµ,1-主ç æµ,2-è¾…ç æµ) public static final int NET_TALK_SPEAK_PARAM = 7; // 设置è¯éŸ³å¯¹è®²å–Šè¯å‚æ•°,对应结构体 NET_SPEAK_PARAM public static final int NET_RECORD_TYPE = 8; // 设置按时间录åƒå›žæ”¾åŠä¸‹è½½çš„录åƒæ–‡ä»¶ç±»åž‹(è¯¦è§ NET_RECORD_TYPE) public static final int NET_TALK_MODE3 = 9; // 设置三代设备的è¯éŸ³å¯¹è®²å‚æ•°, 对应结构体 NET_TALK_EX public static final int NET_PLAYBACK_REALTIME_MODE = 10; // 设置实时回放功能(0-å…³é—,1å¼€å¯) public static final int NET_TALK_TRANSFER_MODE = 11; // 设置è¯éŸ³å¯¹è®²æ˜¯å¦ä¸ºè½¬å‘模å¼, 对应结构体 NET_TALK_TRANSFER_PARAM public static final int NET_TALK_VT_PARAM = 12; // 设置VT对讲å‚æ•°, 对应结构体 NET_VT_TALK_PARAM public static final int NET_TARGET_DEV_ID = 13; // è®¾ç½®ç›®æ ‡è®¾å¤‡æ ‡ç¤ºç¬¦, 用以查询新系统能力(éž0-转å‘系统能力消æ¯) } // è¯éŸ³ç¼–ç 类型 public static class NET_TALK_CODING_TYPE extends SdkStructure { public static final int NET_TALK_DEFAULT = 0; // æ— å¤´PCM public static final int NET_TALK_PCM = 1; // 带头PCM public static final int NET_TALK_G711a = 2; // G711a public static final int NET_TALK_AMR = 3; // AMR public static final int NET_TALK_G711u = 4; // G711u public static final int NET_TALK_G726 = 5; // G726 public static final int NET_TALK_G723_53 = 6; // G723_53 public static final int NET_TALK_G723_63 = 7; // G723_63 public static final int NET_TALK_AAC = 8; // AAC public static final int NET_TALK_OGG = 9; // OGG public static final int NET_TALK_G729 = 10; // G729 public static final int NET_TALK_MPEG2 = 11; // MPEG2 public static final int NET_TALK_MPEG2_Layer2 = 12; // MPEG2-Layer2 public static final int NET_TALK_G722_1 = 13; // G.722.1 public static final int NET_TALK_ADPCM = 21; // ADPCM public static final int NET_TALK_MP3 = 22; // MP3 } // 设备支æŒçš„è¯éŸ³å¯¹è®²ç±»åž‹ public static class NETDEV_TALKFORMAT_LIST extends SdkStructure { public int nSupportNum; // 个数 public NETDEV_TALKDECODE_INFO[] type = (NETDEV_TALKDECODE_INFO[])new NETDEV_TALKDECODE_INFO().toArray(64); // ç¼–ç 类型 public byte[] reserved = new byte[64]; } // è¯éŸ³ç¼–ç ä¿¡æ¯ public static class NETDEV_TALKDECODE_INFO extends SdkStructure { public int encodeType; // ç¼–ç 类型, encodeType对应NET_TALK_CODING_TYPE public int nAudioBit; // ä½æ•°,如8或16ç‰ public int dwSampleRate; // é‡‡æ ·çŽ‡,如8000或16000ç‰ public int nPacketPeriod; // 打包周期, å•ä½ms, ç›®å‰åªèƒ½æ˜¯25 public byte[] reserved = new byte[60]; } // è¯éŸ³å¯¹è®²å–Šè¯å‚æ•° public static class NET_SPEAK_PARAM extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nMode; // 0:对讲(默认模å¼ï¼‰,1:喊è¯ï¼›ä»Žå–Šè¯åˆ‡æ¢åˆ°å¯¹è®²è¦é‡æ–°è®¾ç½® public int nSpeakerChannel; // 扬声器通é“å·,å–Šè¯æ—¶æœ‰æ•ˆ public boolean bEnableWait; // å¼€å¯å¯¹è®²æ—¶æ˜¯å¦ç‰å¾…设备的å“应,默认ä¸ç‰å¾….TRUE:ç‰å¾…;FALSE:ä¸ç‰å¾… // 超时时间由CLIENT_SetNetworkParam设置,对应NET_PARAMçš„nWaittimeå—段 public NET_SPEAK_PARAM() { this.dwSize = this.size(); } } // 是å¦å¼€å¯è¯éŸ³å¯¹è®²çš„转å‘æ¨¡å¼ public static class NET_TALK_TRANSFER_PARAM extends SdkStructure { public int dwSize; public int bTransfer; // 是å¦å¼€å¯è¯éŸ³å¯¹è®²è½¬å‘模å¼, TRUE: å¼€å¯è½¬å‘ public NET_TALK_TRANSFER_PARAM() { this.dwSize = this.size(); } } // 预览类型,对应CLIENT_RealPlayExæŽ¥å£ public static class NET_RealPlayType extends SdkStructure { public static final int NET_RType_Realplay = 0; // 实时预览 public static final int NET_RType_Multiplay = 1; // 多画é¢é¢„览 public static final int NET_RType_Realplay_0 = 2; // 实时预览-主ç æµ ,ç‰åŒäºŽNET_RType_Realplay public static final int NET_RType_Realplay_1 = 3; // 实时预览-从ç æµ1 public static final int NET_RType_Realplay_2 = 4; // 实时预览-从ç æµ2 public static final int NET_RType_Realplay_3 = 5; // 实时预览-从ç æµ3 public static final int NET_RType_Multiplay_1 = 6; // 多画é¢é¢„览ï¼1ç”»é¢ public static final int NET_RType_Multiplay_4 = 7; // 多画é¢é¢„览ï¼4ç”»é¢ public static final int NET_RType_Multiplay_8 = 8; // 多画é¢é¢„览ï¼8ç”»é¢ public static final int NET_RType_Multiplay_9 = 9; // 多画é¢é¢„览ï¼9ç”»é¢ public static final int NET_RType_Multiplay_16 = 10; // 多画é¢é¢„览ï¼16ç”»é¢ public static final int NET_RType_Multiplay_6 = 11; // 多画é¢é¢„览ï¼6ç”»é¢ public static final int NET_RType_Multiplay_12 = 12; // 多画é¢é¢„览ï¼12ç”»é¢ public static final int NET_RType_Multiplay_25 = 13; // 多画é¢é¢„览ï¼25ç”»é¢ public static final int NET_RType_Multiplay_36 = 14; // 多画é¢é¢„览ï¼36ç”»é¢ public static final int NET_RType_Multiplay_64 = 15; // 多画é¢é¢„览ï¼64ç”»é¢ public static final int NET_RType_Multiplay_255 = 16; // ä¸ä¿®æ”¹å½“å‰é¢„览通é“æ•° public static final int NET_RType_Realplay_Audio = 17; // åªæ‹‰éŸ³é¢‘, éžé€šç”¨ public static final int NET_RType_Realplay_Test = 255; // 带宽测试ç æµ } // 实时预览的实时数æ®æ ‡å¿—, 对应 CLIENT_SetRealDataCallBackEx(Ex2) ä¸çš„ dwFlag å‚æ•° // æ”¯æŒ '|' è¿ç®—符, 如 dwFlag = REALDATA_FLAG_RAW_DATA | REALDATA_FLAG_YUV_DATA public static class EM_REALDATA_FLAG extends SdkStructure { public static final int REALDATA_FLAG_RAW_DATA = 0x01; // 原始数æ®æ ‡å¿—, 对应fRealDataCallBack(Ex/Ex2)å›žè°ƒå‡½æ•°ä¸ dwDataType 为0, 0x01 = 0x01 << 0 public static final int REALDATA_FLAG_DATA_WITH_FRAME_INFO = 0x02; // 带有帧信æ¯çš„æ•°æ®æ ‡å¿—, 对应fRealDataCallBack(Ex/Ex2)å›žè°ƒå‡½æ•°ä¸ dwDataType 为1, 0x02 = 0x01 << 1 public static final int REALDATA_FLAG_YUV_DATA = 0x04; // YUV æ•°æ®æ ‡å¿—, 对应fRealDataCallBack(Ex/Ex2)å›žè°ƒå‡½æ•°ä¸ dwDataType 为2, 0x04 = 0x01 << 2 public static final int REALDATA_FLAG_PCM_AUDIO_DATA = 0x08; // PCM 音频数æ®æ ‡å¿—, 对应fRealDataCallBack(Ex/Ex2)å›žè°ƒå‡½æ•°ä¸ dwDataType 为3, 0x08 = 0x01 << 3 } // 回调视频数æ®å¸§çš„帧å‚数结构体 public static class tagVideoFrameParam extends SdkStructure { public byte encode; // ç¼–ç 类型 public byte frametype; // I = 0, P = 1, B = 2... public byte format; // PAL - 0, NTSC - 1 public byte size; // CIF - 0, HD1 - 1, 2CIF - 2, D1 - 3, VGA - 4, QCIF - 5, QVGA - 6 , // SVCD - 7,QQVGA - 8, SVGA - 9, XVGA - 10,WXGA - 11,SXGA - 12,WSXGA - 13,UXGA - 14,WUXGA - 15, LFT - 16, 720 - 17, 1080 - 18 ,1_3M-19 // 2M-20, 5M-21;当size=255时,æˆå‘˜å˜é‡width,height 有效 public int fourcc; // 如果是H264ç¼–ç 则总为0,å¦åˆ™å€¼ä¸º*( DWORD*)"DIVX",å³0x58564944 public short width; // 宽,å•ä½æ˜¯åƒç´ ,当size=255时有效 public short height; // 高,å•ä½æ˜¯åƒç´ ,当size=255时有效 public NET_TIME struTime; // æ—¶é—´ä¿¡æ¯ } // 回调音频数æ®å¸§çš„帧å‚数结构体 public static class tagCBPCMDataParam extends SdkStructure { public byte channels; // 声é“æ•° public byte samples; // é‡‡æ · 0 - 8000, 1 - 11025, 2 - 16000, 3 - 22050, 4 - 32000, 5 - 44100, 6 - 48000 public byte depth; // é‡‡æ ·æ·±åº¦ å–值8或者16ç‰ã€‚直接表示 public byte param1; // 0 - æŒ‡ç¤ºæ— ç¬¦å·,1-æŒ‡ç¤ºæœ‰ç¬¦å· public int reserved; // ä¿ç•™ } // 视频预览æ–开事件类型 public static class EM_REALPLAY_DISCONNECT_EVENT_TYPE extends SdkStructure { public static final int DISCONNECT_EVENT_REAVE = 0; // 表示高级用户抢å ä½Žçº§ç”¨æˆ·èµ„æº public static final int DISCONNECT_EVENT_NETFORBID = 1; // ç¦æ¢å…¥ç½‘ public static final int DISCONNECT_EVENT_SUBCONNECT = 2; // 动æ€å链接æ–å¼€ } // ç”µæ± ç”µåŽ‹è¿‡ä½ŽæŠ¥è¦ public static class ALARM_BATTERYLOWPOWER_INFO extends SdkStructure { public int dwSize; //ç»“æž„ä½“å¤§å° public int nAction; //0:开始1:åœæ¢ public int nBatteryLeft; //剩余电é‡ç™¾åˆ†æ¯”,å•ä½% public NET_TIME stTime; //事件å‘生时间 public int nChannelID; //通é“å·,æ ‡è¯†åè®¾å¤‡ç”µæ± ,从0开始 public NET_GPS_STATUS_INFO stGPSStatus; // GPSä¿¡æ¯ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展å—段结构体 public ALARM_BATTERYLOWPOWER_INFO() { this.dwSize = this.size(); } } // æ¸©åº¦è¿‡é«˜æŠ¥è¦ public static class ALARM_TEMPERATURE_INFO extends SdkStructure { public int dwSize; //ç»“æž„ä½“å¤§å° public byte[] szSensorName = new byte[NET_MACHINE_NAME_NUM];//æ¸©åº¦ä¼ æ„Ÿå™¨å称 public int nChannelID; //通é“å· public int nAction; //0:开始1:åœæ¢ public float fTemperature; //当å‰æ¸©åº¦å€¼,å•ä½æ‘„æ°åº¦ public NET_TIME stTime=new NET_TIME(); //事件å‘生时间 public NET_GPS_STATUS_INFO stuGPSStatus=new NET_GPS_STATUS_INFO(); // GPSä¿¡æ¯ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展å—段结构体 public ALARM_TEMPERATURE_INFO() { this.dwSize = this.size(); } } // 普通报è¦ä¿¡æ¯ public static class NET_CLIENT_STATE_EX extends SdkStructure { public int channelcount; public int alarminputcount; public byte[] alarm = new byte[32]; // å¤–éƒ¨æŠ¥è¦ public byte[] motiondection = new byte[32]; // 动æ€æ£€æµ‹ public byte[] videolost = new byte[32]; // 视频丢失 public byte[] bReserved = new byte[32]; } // 视频é®æŒ¡æŠ¥è¦çŠ¶æ€ä¿¡æ¯å¯¹åº”结构体 public static class NET_CLIENT_VIDEOBLIND_STATE extends SdkStructure { public int dwSize; public int channelcount; public int[] dwAlarmState = new int[NET_MAX_CHANMASK];//æ¯ä¸€ä¸ªint按ä½è¡¨ç¤º32通é“的报è¦çŠ¶æ€,0-è¡¨ç¤ºæ— æŠ¥è¦,1-è¡¨ç¤ºæœ‰æŠ¥è¦ public NET_CLIENT_VIDEOBLIND_STATE() { this.dwSize = this.size(); } } // 视频丢失报è¦çŠ¶æ€ä¿¡æ¯å¯¹åº”结构体 public static class NET_CLIENT_VIDEOLOST_STATE extends SdkStructure { public int dwSize; public int channelcount; public int[] dwAlarmState = new int[NET_MAX_CHANMASK];//æ¯ä¸€ä¸ªint按ä½è¡¨ç¤º32通é“的报è¦çŠ¶æ€ï¼ˆåªæœ‰dwAlarmState[0]有效),0-è¡¨ç¤ºæ— æŠ¥è¦,1-è¡¨ç¤ºæœ‰æŠ¥è¦ public NET_CLIENT_VIDEOLOST_STATE() { this.dwSize = this.size(); } } // é—¨ç¦å¼€é—¨ CLIENT_ControlDevice接å£çš„ CTRLTYPE_CTRL_ACCESS_OPEN 命令å‚æ•° public static class NET_CTRL_ACCESS_OPEN extends SdkStructure { public int dwSize; public int nChannelID; // 通é“å·(0开始) public Pointer szTargetID; // 转å‘ç›®æ ‡è®¾å¤‡ID,为NULL表示ä¸è½¬å‘ public byte[] szUserID = new byte[MAX_COMMON_STRING_32];//远程用户ID public int emOpenDoorType; // 开门方å¼, å‚考 EM_OPEN_DOOR_TYPE /** * EM_OPEN_DOOR_DIRECTION */ public int emOpenDoorDirection; // å¼€é—¨æ–¹å‘ /** * EM_REMOTE_CHECK_CODE */ public int emRemoteCheckCode; // 远程æƒé™éªŒè¯ç»“æžœ public byte[] szShortNumber = new byte[16]; // 兼容å—段 public NET_CTRL_ACCESS_OPEN() { this.dwSize = this.size(); } } // é—¨ç¦æŽ§åˆ¶--å¼€é—¨æ–¹å¼ public static class EM_OPEN_DOOR_TYPE extends SdkStructure { public static final int EM_OPEN_DOOR_TYPE_UNKNOWN = 0; public static final int EM_OPEN_DOOR_TYPE_REMOTE = 1; // 远程开门 public static final int EM_OPEN_DOOR_TYPE_LOCAL_PASSWORD = 2; // 本地密ç 开门 public static final int EM_OPEN_DOOR_TYPE_LOCAL_CARD = 3; // 本地刷å¡å¼€é—¨ public static final int EM_OPEN_DOOR_TYPE_LOCAL_BUTTON = 4; // 本地按钮开门 } // é—¨ç¦å…³é—¨CLIENT_ControlDevice接å£çš„ CTRLTYPE_CTRL_ACCESS_CLOSE 命令å‚æ•° public static class NET_CTRL_ACCESS_CLOSE extends SdkStructure { public int dwSize; public int nChannelID;//通é“å·(0开始) public NET_CTRL_ACCESS_CLOSE() { this.dwSize = this.size(); } } // é—¨ç¦çŠ¶æ€ç±»åž‹ public static class EM_NET_DOOR_STATUS_TYPE extends SdkStructure { public static final int EM_NET_DOOR_STATUS_UNKNOWN=0; public static final int EM_NET_DOOR_STATUS_OPEN=EM_NET_DOOR_STATUS_UNKNOWN+1; //门打开 public static final int EM_NET_DOOR_STATUS_CLOSE=EM_NET_DOOR_STATUS_OPEN+1; //é—¨å…³é— public static final int EM_NET_DOOR_STATUS_BREAK=EM_NET_DOOR_STATUS_CLOSE+1; //门异常打开 } // é—¨ç¦çŠ¶æ€ä¿¡æ¯(CLIENT_QueryDevState 接å£è¾“å…¥å‚æ•°) public static class NET_DOOR_STATUS_INFO extends SdkStructure { public int dwSize; public int nChannel;//é—¨ç¦é€šé“å· public int emStateType;//é—¨ç¦çŠ¶æ€ä¿¡æ¯, 对应枚举EM_NET_DOOR_STATUS_TYPE public NET_DOOR_STATUS_INFO() { this.dwSize = this.size(); } } // å¼€å¯é“é—¸å‚æ•°(对应 CTRLTYPE_CTRL_OPEN_STROBE 命令) public static class NET_CTRL_OPEN_STROBE extends SdkStructure { public int dwSize; public int nChannelId; // 通é“å· public byte[] szPlateNumber = new byte[64]; // 车牌å·ç public int emOpenType; // 开闸类型,EM_OPEN_STROBE_TYPE public int nLocation; // 开闸车é“å· public byte[] szCustomParkNo = new byte[32];// 自定义车é“å·ï¼Œä¼˜å…ˆä½¿ç”¨è‡ªå®šä¹‰è½¦é“å·ï¼Œè‡ªå®šä¹‰è½¦é“å·ä¸ºç©ºï¼Œåˆ™ä½¿ç”¨location public NET_CTRL_OPEN_STROBE() { this.dwSize = this.size(); } } // 刻录控制 (对应 CTRLTYPE_BURNING_START 命令) public static class BURNNG_PARM extends SdkStructure { public int channelMask; // 通é“掩ç ,按ä½è¡¨ç¤ºè¦åˆ»å½•çš„é€šé“ public byte devMask; // 刻录机掩ç ,æ ¹æ®æŸ¥è¯¢åˆ°çš„刻录机列表,按ä½è¡¨ç¤º public byte bySpicalChannel; // ç”»ä¸ç”»é€šé“(通é“æ•°+31,例如对于4通é“设备,该值应为35) public byte[] byReserved = new byte[2]; // ä¿ç•™å—段 } // å…³é—é“é—¸å‚æ•°(对应 CTRLTYPE_CTRL_CLOSE_STROBE 命令) public static class NET_CTRL_CLOSE_STROBE extends SdkStructure { public int dwSize; public int nChannelId; // 通é“å· public int nLocation; // 关闸车é“å· public NET_CTRL_CLOSE_STROBE() { this.dwSize = this.size(); } } // é“闸控制方å¼æžšä¸¾ public static class NET_EM_CFG_TRAFFICSTROBE_CTRTYPE extends SdkStructure { public static final int NET_EM_CFG_CTRTYPE_UNKNOWN = 0; // 未定义 public static final int NET_EM_CFG_CTRTYPE_TRAFFICTRUSTLIST = 1; // 通过å…许åå•æŽ§åˆ¶æ˜¯å¦å¼€é—¸ï¼›åªæœ‰å…许åå•å†…车辆æ‰å¼€é—¸ public static final int NET_EM_CFG_CTRTYPE_ALLSNAPCAR = 2; // 针对所有抓æ‹è½¦è¾†éƒ½å¼€é—¸ public static final int NET_EM_CFG_CTRTYPE_ORDER = 3; // 通过上层下å‘的命令开闸 } // 所有车开闸ç§ç±» public static class NET_EM_CFG_ALL_SNAP_CAR extends SdkStructure { public static final int NET_EM_CFG_ALL_SNAP_CAR_UNKNOWN = 0; // 未知开闸ç§ç±» public static final int NET_EM_CFG_ALL_SNAP_CAR_PLATE = 1; // 所有有牌车车辆 public static final int NET_EM_CFG_ALL_SNAP_CAR_NOPLATE = 2; // æ‰€æœ‰æ— ç‰Œè½¦è½¦è¾† } // é“闸常开é…ç½® public static class NET_CFG_STATIONARY_OPEN extends SdkStructure { public int bEnable; // 使能 public CFG_TIME_SCHEDULE stTimeShecule = new CFG_TIME_SCHEDULE(); // 常开模å¼æ‰§è¡Œæ—¶é—´æ®µ } // é“é—¸é…置信æ¯(对应 NET_EM_CFG_TRAFFICSTROBE 命令) public static class NET_CFG_TRAFFICSTROBE_INFO extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int bEnable; // 使能 public int nCtrlTypeCount; // é“闸控制方å¼ä¸ªæ•° public int[] emCtrlType = new int[NET_CFG_MAX_CTRLTYPE_NUM]; // é“闸控制方å¼, 详è§NET_EM_CFG_TRAFFICSTROBE_CTRTYPE public int nAllSnapCarCount; // 所有车开闸ç§ç±»ä¸ªæ•° public int[] emAllSnapCar = new int[NET_MAX_ALL_SNAP_CAR_COUNT]; // 所有车开闸ç§ç±», 详è§NET_EM_CFG_ALL_SNAP_CAR public NET_ALARM_MSG_HANDLE stuEventHandler; // å¼€å¯é“é—¸è”动å‚æ•° public NET_ALARM_MSG_HANDLE stuEventHandlerClose; // å…³é—é“é—¸è”动å‚æ•° public byte[] szOrderIP = new byte[NET_MAX_IPADDR_EX_LEN]; // 负责命令开闸的平å°IP public int emCtrlTypeOnDisconnect; // å¹³å°IP与设备æ–开连接åŽï¼Œè®¾å¤‡é‡‡ç”¨çš„开闸方å¼, 详è§NET_EM_CFG_TRAFFICSTROBE_CTRTYPE public NET_CFG_STATIONARY_OPEN stuStationaryOpen; // é“闸常开é…ç½® public NET_CFG_TRAFFICSTROBE_INFO() { this.dwSize = this.size(); } } // 报è¦çŠ¶æ€ (对应 CTRLTYPE_TRIGGER_ALARM_OUT 命令) public static class ALARMCTRL_PARAM extends SdkStructure { public int dwSize; public int nAlarmNo; // 报è¦é€šé“å·,从0开始 public int nAction; // 1:触å‘报è¦,0:åœæ¢æŠ¥è¦ public ALARMCTRL_PARAM() { this.dwSize = this.size(); } } // 查询 IVS å‰ç«¯è®¾å¤‡å…¥å‚ public static class NET_IN_IVS_REMOTE_DEV_INFO extends SdkStructure { public int dwSize; // è¯¥ç»“æž„ä½“å¤§å° public int nChannel; // 通é“å· public NET_IN_IVS_REMOTE_DEV_INFO() { this.dwSize = this.size(); } } // 查询 IVS å‰ç«¯è®¾å¤‡å‡ºå‚ public static class NET_OUT_IVS_REMOTE_DEV_INFO extends SdkStructure { public int dwSize; // è¯¥ç»“æž„ä½“å¤§å° public int nPort; // ç«¯å£ public byte[] szIP = new byte[64]; // 设备IP public byte[] szUser = new byte[64]; // 用户å public byte[] szPassword = new byte[64]; // 密ç public byte[] szAddress = new byte[128]; // 机器部署地点 public NET_OUT_IVS_REMOTE_DEV_INFO() { this.dwSize = this.size(); } } // 获å–视频通é“属性命令的å类型 public static class NET_VIDEO_CHANNEL_TYPE extends SdkStructure { public static final int NET_VIDEO_CHANNEL_TYPE_ALL = 0; // 全部 public static final int NET_VIDEO_CHANNEL_TYPE_INPUT = 1; // 输入 public static final int NET_VIDEO_CHANNEL_TYPE_OUTPUT = 2; // 输出 } // CLIENT_QueryDevInfo , NET_QUERY_VIDEOCHANNELSINFO 命令输入å‚æ•° public static class NET_IN_GET_VIDEOCHANNELSINFO extends SdkStructure { public int dwSize; public int emType; // 需è¦èŽ·å–的通é“类型,详è§NET_VIDEO_CHANNEL_TYPE public NET_IN_GET_VIDEOCHANNELSINFO() { this.dwSize = this.size(); } } public static class NET_VIDEOCHANNELS_INPUT extends SdkStructure { public int nThermographyCount; // çƒæˆåƒé€šé“个数 public int[] nThermography = new int[64]; // çƒæˆåƒé€šé“的通é“å· public int nMultiPreviewCount; // 多画é¢é¢„览通é“个数 public int[] nMultiPreview = new int[4]; // 多画é¢é¢„览通é“å· public int nPIPCount; // ç”»ä¸ç”»é€šé“个数 public int[] nPIP = new int[4]; // ç”»ä¸ç”»é€šé“å· public int nCompressPlayCount; // 二次压缩回放通é“个数 public int[] nCompressPlay = new int[4]; // 二次压缩回放通é“å· public int nSDCount; // çƒæœºé€šé“个数 public int[] nSD = new int[64]; // çƒæœºé€šé“å· public int nPTZCount; // 支æŒäº‘å°ç¨‹åºçš„通é“æ•°é‡ public short[] nPTZ = new short[64]; // 支æŒäº‘å°ç¨‹åºçš„通é“å· public int nFuseRadarCount; // 支æŒèžåˆé›·è¾¾æµï¼Œå¯è§å…‰å åŠ é›·è¾¾æµçš„通é“æ•°é‡ public int[] nFuseRadar=new int[64]; // 支æŒèžåˆé›·è¾¾æµï¼Œå¯è§å…‰å åŠ é›·è¾¾æµçš„通é“å· public int nPureRadarCount; // 支æŒçº¯é›·è¾¾æµï¼Œæ— å¯è§å…‰çš„通é“æ•°é‡ public int[] nPureRadar=new int[64]; // 支æŒçº¯é›·è¾¾æµï¼Œæ— å¯è§å…‰çš„通é“å· public byte[] reserved=new byte[4096]; } public static class NET_VIDEOCHANNELS_OUTPUT extends SdkStructure { public int nVGACount; // VGA输出个数 public int[] nVGA = new int[128]; // VGA输出 public int nTVCount; // TV输出个数 public int[] nTV = new int[128]; // TV输出 public byte[] reserved = new byte[512]; } //CLIENT_QueryDevInfo , NET_QUERY_VIDEOCHANNELSINFO 命令输出å‚æ•° public static class NET_OUT_GET_VIDEOCHANNELSINFO extends SdkStructure { public int dwSize; public NET_VIDEOCHANNELS_INPUT stInputChannels; // 输入通é“ä¿¡æ¯,获å–类型为NET_VIDEO_CHANNEL_TYPE_ALL/INPUT时有效 public NET_VIDEOCHANNELS_OUTPUT stOutputChannels; // 输出通é“ä¿¡æ¯,获å–类型为NET_VIDEO_CHANNEL_TYPE_ALL/OUTPUT时有效 public NET_VIDEOCHANNELS_INPUT_EX stInputChannelsEx; // 输入通é“扩展信æ¯,获å–类型为NET_VIDEO_CHANNEL_TYPE_ALL/INPUT时有效 public NET_OUT_GET_VIDEOCHANNELSINFO() { this.dwSize = this.size(); } } // çƒæˆåƒè‰²å½© public static class NET_THERMO_COLORIZATION extends SdkStructure { public static final int NET_THERMO_COLORIZATION_UNKNOWN = 0; // 未知 public static final int NET_THERMO_COLORIZATION_WHITE_HOT = 1; // ç™½çƒ public static final int NET_THERMO_COLORIZATION_BLACK_HOT = 2; // é»‘çƒ public static final int NET_THERMO_COLORIZATION_IRONBOW2 = 3; // é“虹2 public static final int NET_THERMO_COLORIZATION_ICEFIRE = 4; // å†°ç« public static final int NET_THERMO_COLORIZATION_FUSION = 5; // èžåˆ public static final int NET_THERMO_COLORIZATION_RAINBOW = 6; // 彩虹 public static final int NET_THERMO_COLORIZATION_GLOBOW = 6; // .. public static final int NET_THERMO_COLORIZATION_IRONBOW1 = 7; // é“虹1 public static final int NET_THERMO_COLORIZATION_SEPIA = 8; // æ·±è¤ public static final int NET_THERMO_COLORIZATION_COLOR1 = 9; // 彩色1 public static final int NET_THERMO_COLORIZATION_COLOR2 = 10; // 彩色2 public static final int NET_THERMO_COLORIZATION_RAIN = 11; // 雨天 public static final int NET_THERMO_COLORIZATION_RED_HOT = 12; // çº¢çƒ public static final int NET_THERMO_COLORIZATION_GREEN_HOT = 13; // ç»¿çƒ } // çƒæˆåƒæ„Ÿå…´è¶£åŒºåŸŸæ¨¡å¼ public static class NET_THERMO_ROI extends SdkStructure { public static final int NET_THERMO_ROI_UNKNOWN = 0; // 未知 public static final int NET_THERMO_ROI_FULL_SCREEN = 1; // å…¨å± public static final int NET_THERMO_ROI_SKY = 2; // 顶部 public static final int NET_THERMO_ROI_GROUND = 3; // ä¸éƒ¨ public static final int NET_THERMO_ROI_HORIZONTAL = 4; // 底部 public static final int NET_THERMO_ROI_CENTER_75 = 5; // ä¸å¿ƒç‚¹ 75% public static final int NET_THERMO_ROI_CENTER_50 = 6; // ä¸å¿ƒç‚¹ 50% public static final int NET_THERMO_ROI_CENTER_25 = 7; // ä¸å¿ƒç‚¹ 25% public static final int NET_THERMO_ROI_CUSTOM = 8; // 自定义 } // çƒæˆåƒæ¨¡å¼ public static class NET_THERMO_MODE extends SdkStructure { public static final int NET_THERMO_MODE_UNKNOWN = 0; // 未知 public static final int NET_THERMO_MODE_DEFAULT = 1; // 默认 public static final int NET_THERMO_MODE_INDOOR = 2; // 室内 public static final int NET_THERMO_MODE_OUTDOOR = 3; // 室外 } // CLIENT_QueryDevInfo æŽ¥å£ NET_QUERY_DEV_THERMO_GRAPHY_PRESET å‘½ä»¤å…¥å‚ public static class NET_IN_THERMO_GET_PRESETINFO extends SdkStructure { public int dwSize; public int nChannel; // 通é“å· public int emMode; // 模å¼, å‚考NET_THERMO_MODE public NET_IN_THERMO_GET_PRESETINFO() { this.dwSize = this.size(); } } // CLIENT_QueryDevInfo æŽ¥å£ NET_QUERY_DEV_THERMO_GRAPHY_PRESET å‘½ä»¤å‡ºå‚ public static class NET_OUT_THERMO_GET_PRESETINFO extends SdkStructure { public int dwSize; public NET_THERMO_GRAPHY_INFO stInfo; // çƒæˆåƒä¿¡æ¯ public NET_OUT_THERMO_GET_PRESETINFO() { this.dwSize = this.size(); } } // çƒæˆåƒä¼˜åŒ–区域 public static class NET_THERMO_GRAPHY_OPTREGION extends SdkStructure { public int bOptimizedRegion; // 是å¦å¼€å¯ä¼˜åŒ–区域 public int nOptimizedROIType; // 优化区域类型,è§NET_THERMO_ROI public int nCustomRegion; // 自定义区域个数 public NET_RECT[] stCustomRegions = (NET_RECT[])new NET_RECT().toArray(64); // 自定义区域,仅在 nOptimizedROIType 为 NET_THERMO_ROI_CUSTOM 时有效 public byte[] Reserved = new byte[256]; } // çƒæˆåƒä¿¡æ¯ public static class NET_THERMO_GRAPHY_INFO extends SdkStructure { public int nBrightness; // 亮度 public int nSharpness; // é”度 public int nEZoom; // å€æ•° public int nThermographyGamma; // 伽马值 public int nColorization; // 色彩,è§NET_THERMO_COLORIZATION public int nSmartOptimizer; // 优化指数 public NET_THERMO_GRAPHY_OPTREGION stOptRegion; // 优化区域 public int nAgc; // 自动增益控制 public int nAgcMaxGain; // 最大自动增益 public int nAgcPlateau; // 增益å‡è¡¡ public byte[] reserved = new byte[244]; // ä¿ç•™å—段 } // CLIENT_QueryDevInfo æŽ¥å£ NET_QUERY_DEV_THERMO_GRAPHY_OPTREGION å‘½ä»¤å…¥å‚ public static class NET_IN_THERMO_GET_OPTREGION extends SdkStructure { public int dwSize; public int nChannel; // 通é“å· public NET_IN_THERMO_GET_OPTREGION() { this.dwSize = this.size(); } } // CLIENT_QueryDevInfo æŽ¥å£ NET_QUERY_DEV_THERMO_GRAPHY_OPTREGION å‘½ä»¤å‡ºå‚ public static class NET_OUT_THERMO_GET_OPTREGION extends SdkStructure { public int dwSize; public NET_THERMO_GRAPHY_OPTREGION stInfo; // ä¼˜åŒ–åŒºåŸŸä¿¡æ¯ public NET_OUT_THERMO_GET_OPTREGION() { this.dwSize = this.size(); } } // CLIENT_QueryDevInfo æŽ¥å£ NET_QUERY_DEV_THERMO_GRAPHY_EXTSYSINFO å‘½ä»¤å…¥å‚ public static class NET_IN_THERMO_GET_EXTSYSINFO extends SdkStructure { public int dwSize; public int nChannel; // 通é“å· public NET_IN_THERMO_GET_EXTSYSINFO() { this.dwSize = this.size(); } } // CLIENT_QueryDevInfo æŽ¥å£ NET_QUERY_DEV_THERMO_GRAPHY_EXTSYSINFO å‘½ä»¤å‡ºå‚ public static class NET_OUT_THERMO_GET_EXTSYSINFO extends SdkStructure { public int dwSize; public NET_THERMO_SYSINFO stInfo; // 通é“å· public NET_OUT_THERMO_GET_EXTSYSINFO() { this.dwSize = this.size(); } } // å¤–éƒ¨ç³»ç»Ÿä¿¡æ¯ public static class NET_THERMO_SYSINFO extends SdkStructure { public byte[] szSerialNumber = new byte[64]; // åºåˆ—å· public byte[] szSoftwareVersion = new byte[64]; // 软件版本 public byte[] szFirmwareVersion = new byte[64]; // 固件版本 public byte[] szLibVersion = new byte[64]; // 库版本 public byte[] reserved = new byte[256]; } // CLIENT_GetDevCaps æŽ¥å£ NET_THERMO_GRAPHY_CAPS å‘½ä»¤å…¥å‚ public static class NET_IN_THERMO_GETCAPS extends SdkStructure { public int dwSize; public int nChannel; // 通é“å· public NET_IN_THERMO_GETCAPS() { this.dwSize = this.size(); } } // CLIENT_GetDevCaps æŽ¥å£ NET_THERMO_GRAPHY_CAPS å‘½ä»¤å‡ºå‚ public static class NET_OUT_THERMO_GETCAPS extends SdkStructure { public int dwSize; public int dwModes; // 支æŒçš„预置模å¼æŽ©ç public int dwColorization; // 预置ç€è‰²æ¨¡å¼æŽ©ç public int dwROIModes; // 预置感兴趣区域模å¼æŽ©ç public RANGE stBrightness; // 亮度相关能力 public RANGE stSharpness; // é”度相关能力 public RANGE stEZoom; // å€æ•°ç›¸å…³èƒ½åŠ› public RANGE stThermographyGamma; // 伽马相关能力 public RANGE stSmartOptimizer; // 优化å‚数相关能力 public NET_FFCPERIOD_RANGE stFFCPeriod; // 平场èšç„¦æ ¡å‡†ç›¸å…³èƒ½åŠ› public NET_OUT_THERMO_GETCAPS() { this.dwSize = this.size(); } } // range public static class RANGE extends SdkStructure { public float fMax; // 最大值 public float fMin; // 最å°å€¼ public boolean abStep; // 是å¦å¯ç”¨æ¥é•¿ public float fStep; // æ¥é•¿ public boolean abDefault; // 是å¦å¯ç”¨é»˜è®¤å€¼ public float fDefault; // 默认值 public byte[] reserved = new byte[16]; } // CLIENT_GetDevCaps æŽ¥å£ NET_RADIOMETRY_CAPS å‘½ä»¤å…¥å‚ public static class NET_IN_RADIOMETRY_GETCAPS extends SdkStructure { public int dwSize; public int nChannel; // 通é“å· public NET_IN_RADIOMETRY_GETCAPS() { this.dwSize = this.size(); } } // 测温模å¼çš„类型 public static class NET_RADIOMETRY_METERTYPE extends SdkStructure { public static final int NET_RADIOMETRY_METERTYPE_UNKNOWN = 0; public static final int NET_RADIOMETRY_METERTYPE_SPOT = 1; // 点 public static final int NET_RADIOMETRY_METERTYPE_LINE = 2; // 线 public static final int NET_RADIOMETRY_METERTYPE_AREA = 3; // 区域 } // 点,线,区域总个数能力 public static class NET_RADIOMETRY_TOTALNUM extends SdkStructure { public int dwMaxNum; // 最多支æŒä¸ªæ•° public int dwMaxSpots; // 最多点的个数 public int dwMaxLines; // 最多划线的æ¡æ•° public int dwMaxAreas; // 最多区域的个数 public byte[] reserved = new byte[32]; // ä¿ç•™å—节 } // CLIENT_GetDevCaps æŽ¥å£ NET_RADIOMETRY_CAPS å‘½ä»¤å‡ºå‚ public static class NET_OUT_RADIOMETRY_GETCAPS extends SdkStructure { public int dwSize; public NET_RADIOMETRY_TOTALNUM stTotalNum; // 点,线,区域总个数能力 public int dwMaxPresets; // 最多测温预置点的个数 public int dwMeterType; // 测温模å¼çš„类型掩ç ,è§NET_RADIOMETRY_METERTYPE public RANGE stObjectEmissivity; // è¾å°„系数相关能力 public RANGE stObjectDistance; // è·ç¦»ç›¸å…³èƒ½åŠ› public RANGE stReflectedTemperature; // å射温度相关能力 public RANGE stRelativeHumidity; // 相对湿度相关能力 public RANGE stAtmosphericTemperature; // 大气温度相关能力 public int nStatisticsMinPeriod; // 测温点统计功能最å°å˜å‚¨æ•°æ®é—´éš” å•ä½ä¸ºç§’ public float fIsothermMaxTemp; // è‰²æ ‡æ¡æœ€é«˜çš„温度值 public float fIsothermMinTemp; // è‰²æ ‡æ¡æœ€ä½Žçš„温度值 public NET_OUT_RADIOMETRY_GETCAPS() { this.dwSize = this.size(); } } // æµ‹æ¸©ä¿¡æ¯ public static class NET_RADIOMETRYINFO extends SdkStructure { public int nMeterType; // 返回测温类型,è§NET_RADIOMETRY_METERTYPE public int nTemperUnit; // 温度å•ä½(当å‰é…置的温度å•ä½),è§ NET_TEMPERATURE_UNIT public float fTemperAver; // 点的温度或者平å‡æ¸©åº¦ 点的时候 åªè¿”回æ¤å—段 public float fTemperMax; // 最高的温度 public float fTemperMin; // 最低的温度 public float fTemperMid; // ä¸é—´æ¸©åº¦å€¼ public float fTemperStd; // æ ‡å‡†æ–¹å·®å€¼ public byte[] reserved = new byte[64]; } // 获å–测温项温度的æ¡ä»¶ public static class NET_RADIOMETRY_CONDITION extends SdkStructure { public int nPresetId; // é¢„ç½®ç‚¹ç¼–å· public int nRuleId; // è§„åˆ™ç¼–å· public int nMeterType; // 测温项类别,è§NET_RADIOMETRY_METERTYPE public byte[] szName = new byte[64]; // 测温项的å称,从测温é…置规则åå—ä¸é€‰å– public int nChannel; // 通é“å· public byte[] reserved = new byte[256]; } // CLIENT_QueryDevInfo æŽ¥å£ NET_QUERY_DEV_RADIOMETRY_POINT_TEMPER å‘½ä»¤å…¥å‚ public static class NET_IN_RADIOMETRY_GETPOINTTEMPER extends SdkStructure { public int dwSize; public int nChannel; // 通é“å· public NET_POINT stCoordinate; // 测温点的åæ ‡,åæ ‡å€¼ 0~8192 public NET_IN_RADIOMETRY_GETPOINTTEMPER() { this.dwSize = this.size(); } } // CLIENT_QueryDevInfo æŽ¥å£ NET_QUERY_DEV_RADIOMETRY_POINT_TEMPER å‘½ä»¤å‡ºå‚ public static class NET_OUT_RADIOMETRY_GETPOINTTEMPER extends SdkStructure { public int dwSize; public NET_RADIOMETRYINFO stPointTempInfo; // 获å–测温点的å‚数值 public NET_OUT_RADIOMETRY_GETPOINTTEMPER() { this.dwSize = this.size(); } } // CLIENT_QueryDevInfo æŽ¥å£ NET_QUERY_DEV_RADIOMETRY_TEMPER å‘½ä»¤å…¥å‚ public static class NET_IN_RADIOMETRY_GETTEMPER extends SdkStructure { public int dwSize; public NET_RADIOMETRY_CONDITION stCondition; // 获å–测温项温度的æ¡ä»¶ public NET_IN_RADIOMETRY_GETTEMPER() { this.dwSize = this.size(); } } // CLIENT_QueryDevInfo æŽ¥å£ NET_QUERY_DEV_RADIOMETRY_TEMPER å‘½ä»¤å‡ºå‚ public static class NET_OUT_RADIOMETRY_GETTEMPER extends SdkStructure { public int dwSize; public NET_RADIOMETRYINFO stTempInfo; // 获å–测温å‚数值 public NET_OUT_RADIOMETRY_GETTEMPER() { this.dwSize = this.size(); } } // 云å°é¢„置点 public static class NET_PTZ_PRESET extends SdkStructure { public int nIndex; // ç¼–å· public byte[] szName = new byte[PTZ_PRESET_NAME_LEN]; // å称 public int[] nPosition = new int[3]; // 预置点的åæ ‡å’Œæ”¾å¤§å€æ•° // 第一个å‚数是水平åæ ‡,范围[0,3599],表示0度到359.9度,度数扩大10å€è¡¨ç¤º // 第二个å‚数是垂直åæ ‡,范围[-1800,1800],表示-180.0度到+180.0度,度数扩大10å€è¡¨ç¤º // 第三个å‚数是放大å‚æ•°,范围[0,128],表示最å°å€åˆ°æœ€å¤§å€çš„å˜å€ä½ç½® public int bSetNameEx; // 设置预置点å称时需置TRUE public byte[] szNameEx = new byte[256]; // å称,支æŒ256å—节长度 public byte[] szReserve = new byte[52]; // 预留å—节 } // 云å°é¢„置点列表 public static class NET_PTZ_PRESET_LIST extends SdkStructure { public int dwSize; public int dwMaxPresetNum; // 预置点最大个数 public int dwRetPresetNum; // 返回预置点个数 public Pointer pstuPtzPorsetList; // 预置点列表(å…¥å‚需è¦æ ¹æ®æœ€å¤§ä¸ªæ•°ç”³è¯·å†…å˜),内å˜å¤§å°ä¸ºsizeof(NET_PTZ_PRESET)*dwMaxPresetNum public NET_PTZ_PRESET_LIST() { this.dwSize = this.size(); } } //-------------------------------报è¦å±žæ€§--------------------------------- // 云å°è”动 public static class SDK_PTZ_LINK extends SdkStructure { public int iType;//0-None,1-Preset,2-Tour,3-Pattern public int iValue; } ////////////////////////////////HDVR专用////////////////////////////////// // 报è¦è”动扩展结构体 public static class NET_MSG_HANDLE_EX extends SdkStructure { /* 消æ¯å¤„ç†æ–¹å¼,å¯ä»¥åŒæ—¶å¤šç§å¤„ç†æ–¹å¼,包括 * 0x00000001 - 报è¦ä¸Šä¼ * 0x00000002 - è”动录象 * 0x00000004 - 云å°è”动 * 0x00000008 - å‘é€é‚®ä»¶ * 0x00000010 - 本地轮巡 * 0x00000020 - 本地æ示 * 0x00000040 - 报è¦è¾“出 * 0x00000080 - Ftpä¸Šä¼ * 0x00000100 - 蜂鸣 * 0x00000200 - è¯éŸ³æ示 * 0x00000400 - 抓图 */ /*当å‰æŠ¥è¦æ‰€æ”¯æŒçš„处ç†æ–¹å¼,按ä½æŽ©ç 表示*/ public int dwActionMask; /*触å‘动作,按ä½æŽ©ç 表示,具体动作所需è¦çš„å‚数在å„自的é…ç½®ä¸ä½“现*/ public int dwActionFlag; /*报è¦è§¦å‘的输出通é“,报è¦è§¦å‘的输出,为1表示触å‘该输出*/ public byte[] byRelAlarmOut = new byte[NET_MAX_ALARMOUT_NUM_EX]; public int dwDuration;/*报è¦æŒç»æ—¶é—´*/ /*è”动录象*/ public byte[] byRecordChannel = new byte[NET_MAX_VIDEO_IN_NUM_EX];/*报è¦è§¦å‘的录象通é“,为1表示触å‘该通é“*/ public int dwRecLatch;/*录象æŒç»æ—¶é—´*/ /*抓图通é“*/ public byte[] bySnap = new byte[NET_MAX_VIDEO_IN_NUM_EX]; /*轮巡通é“*/ public byte[] byTour = new byte[NET_MAX_VIDEO_IN_NUM_EX];/*轮巡通é“0-31è·¯*/ /*云å°è”动*/ public SDK_PTZ_LINK[] struPtzLink = (SDK_PTZ_LINK[])new SDK_PTZ_LINK().toArray(NET_MAX_VIDEO_IN_NUM_EX); public int dwEventLatch;/*è”动开始延时时间,s为å•ä½,范围是0~15,默认值是0*/ /*报è¦è§¦å‘çš„æ— çº¿è¾“å‡ºé€šé“,报è¦è§¦å‘的输出,为1表示触å‘该输出*/ public byte[] byRelWIAlarmOut = new byte[NET_MAX_ALARMOUT_NUM_EX]; public byte bMessageToNet; public byte bMMSEn;/*çŸä¿¡æŠ¥è¦ä½¿èƒ½*/ public byte bySnapshotTimes;/*çŸä¿¡å‘é€æŠ“å›¾å¼ æ•°*/ public byte bMatrixEn;/*!<矩阵使能*/ public int dwMatrix;/*!<矩阵掩ç */ public byte bLog;/*!<日志使能,ç›®å‰åªæœ‰åœ¨WTN动æ€æ£€æµ‹ä¸ä½¿ç”¨*/ public byte bSnapshotPeriod;/*!<抓图帧间隔,æ¯éš”å¤šå°‘å¸§æŠ“ä¸€å¼ å›¾ç‰‡,一定时间内抓æ‹çš„å¼ æ•°è¿˜ä¸ŽæŠ“å›¾å¸§çŽ‡æœ‰å…³ã€‚0表示ä¸éš”帧,è¿žç»æŠ“æ‹ã€‚*/ public byte[] byTour2 = new byte[NET_MAX_VIDEO_IN_NUM_EX];/*轮巡通é“32-63è·¯*/ public byte byEmailType;/*<0,图片附件,1,录åƒé™„件>*/ 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[] byReserved1 = new byte[2]; // å—èŠ‚å¯¹é½ 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 NET_RECORDSET_ACCESS_CTL_CARDREC() { this.dwSize = this.size(); for(int i = 0; i<stuCompanionInfo.length;i++){ stuCompanionInfo[i] = new NET_COMPANION_INFO(); } } } // 性别 public static class NET_ACCESSCTLCARD_SEX extends SdkStructure { public static final int NET_ACCESSCTLCARD_SEX_UNKNOWN = 0; // 未知 public static final int NET_ACCESSCTLCARD_SEX_MALE = 1; // ç”· public static final int NET_ACCESSCTLCARD_SEX_FEMALE = 2; // 女 } // æ°‘æ— public static class EM_CITIZENIDCARD_EC_TYPE extends SdkStructure { public static final int EM_CITIZENIDCARD_EC_Unknown = 0; // 未知 public static final int EM_CITIZENIDCARD_EC_Han = 1; // æ±‰æ— public static final int EM_CITIZENIDCARD_EC_Mongolian = 2; // è’™å¤æ— public static final int EM_CITIZENIDCARD_EC_Hui = 3; // å›žæ— public static final int EM_CITIZENIDCARD_EC_Tibetan = 4; // è—æ— public static final int EM_CITIZENIDCARD_EC_Uygur = 5; // ç»´å¾å°”æ— public static final int EM_CITIZENIDCARD_EC_Miao = 6; // è‹—æ— public static final int EM_CITIZENIDCARD_EC_Yi = 7; // å½æ— public static final int EM_CITIZENIDCARD_EC_Zhuang = 8; // å£®æ— public static final int EM_CITIZENIDCARD_EC_Bouyei = 9; // 布ä¾æ— public static final int EM_CITIZENIDCARD_EC_Korean = 10; // æœé²œæ— public static final int EM_CITIZENIDCARD_EC_Manchu = 11; // æ»¡æ— public static final int EM_CITIZENIDCARD_EC_Dong = 12; // ä¾—æ— public static final int EM_CITIZENIDCARD_EC_Yao = 13; // ç‘¶æ— public static final int EM_CITIZENIDCARD_EC_Bai = 14; // ç™½æ— public static final int EM_CITIZENIDCARD_EC_Tujia = 15; // åœŸå®¶æ— public static final int EM_CITIZENIDCARD_EC_Hani = 16; // å“ˆå°¼æ— public static final int EM_CITIZENIDCARD_EC_Kazak = 17; // 哈è¨å…‹æ— public static final int EM_CITIZENIDCARD_EC_Dai = 18; // å‚£æ— public static final int EM_CITIZENIDCARD_EC_Li = 19; // é»Žæ— public static final int EM_CITIZENIDCARD_EC_Lisu = 20; // å‚ˆåƒ³æ— public static final int EM_CITIZENIDCARD_EC_Va = 21; // ä½¤æ— public static final int EM_CITIZENIDCARD_EC_She = 22; // ç•²æ— public static final int EM_CITIZENIDCARD_EC_Gaoshan = 23; // é«˜å±±æ— public static final int EM_CITIZENIDCARD_EC_Lahu = 24; // æ‹‰ç¥œæ— public static final int EM_CITIZENIDCARD_EC_Shui = 25; // æ°´æ— public static final int EM_CITIZENIDCARD_EC_Dongxiang = 26; // ä¸œä¹¡æ— public static final int EM_CITIZENIDCARD_EC_Naxi = 27; // çº³è¥¿æ— public static final int EM_CITIZENIDCARD_EC_Jingpo = 28; // æ™¯é¢‡æ— public static final int EM_CITIZENIDCARD_EC_Kirgiz = 29; // 柯尔克åœæ— public static final int EM_CITIZENIDCARD_EC_Tu = 30; // åœŸæ— public static final int EM_CITIZENIDCARD_EC_Daur = 31; // è¾¾æ–¡å°”æ— public static final int EM_CITIZENIDCARD_EC_Mulam = 32; // ä»«ä½¬æ— public static final int EM_CITIZENIDCARD_EC_Qoiang = 33; // ç¾Œæ— public static final int EM_CITIZENIDCARD_EC_Blang = 34; // å¸ƒæœ—æ— public static final int EM_CITIZENIDCARD_EC_Salar = 35; // æ’’æ‹‰æ— public static final int EM_CITIZENIDCARD_EC_Maonan = 36; // 毛å—æ— public static final int EM_CITIZENIDCARD_EC_Gelo = 37; // ä»¡ä½¬æ— public static final int EM_CITIZENIDCARD_EC_Xibe = 38; // é”¡ä¼¯æ— public static final int EM_CITIZENIDCARD_EC_Achang = 39; // é˜¿æ˜Œæ— public static final int EM_CITIZENIDCARD_EC_Pumi = 40; // æ™®ç±³æ— public static final int EM_CITIZENIDCARD_EC_Tajik = 41; // å¡”å‰å…‹æ— public static final int EM_CITIZENIDCARD_EC_Nu = 42; // æ€’æ— public static final int EM_CITIZENIDCARD_EC_Ozbek = 43; // 乌åœåˆ«å…‹æ— public static final int EM_CITIZENIDCARD_EC_Russian = 44; // ä¿„ç½—æ–¯æ— public static final int EM_CITIZENIDCARD_EC_Ewenkl = 45; // é„‚æ¸©å…‹æ— public static final int EM_CITIZENIDCARD_EC_Deang = 46; // å¾·æ˜‚æ— public static final int EM_CITIZENIDCARD_EC_Bonan = 47; // ä¿å®‰æ— public static final int EM_CITIZENIDCARD_EC_Yugur = 48; // è£•å›ºæ— public static final int EM_CITIZENIDCARD_EC_Jing = 49; // äº¬æ— public static final int EM_CITIZENIDCARD_EC_Tatar = 50; // å¡”å¡”å°”æ— public static final int EM_CITIZENIDCARD_EC_Drung = 51; // ç‹¬é¾™æ— public static final int EM_CITIZENIDCARD_EC_Oroqen = 52; // é„‚ä¼¦æ˜¥æ— public static final int EM_CITIZENIDCARD_EC_Hezhen = 53; // èµ«å“²æ— public static final int EM_CITIZENIDCARD_EC_Moinba = 54; // é—¨å·´æ— public static final int EM_CITIZENIDCARD_EC_Lhoba = 55; // çžå·´æ— public static final int EM_CITIZENIDCARD_EC_Jino = 56; // åŸºè¯ºæ— } //è€ƒå‹¤çŠ¶æ€ public static class NET_ATTENDANCESTATE extends SdkStructure { public static final int NET_ATTENDANCESTATE_UNKNOWN = 0; public static final int NET_ATTENDANCESTATE_SIGNIN = 1; // ç¾å…¥ public static final int NET_ATTENDANCESTATE_GOOUT = 2; // 外出 public static final int NET_ATTENDANCESTATE_GOOUT_AND_RETRUN = 3; // å¤–å‡ºå½’æ¥ public static final int NET_ATTENDANCESTATE_SIGNOUT = 4; // ç¾å‡º public static final int NET_ATTENDANCESTATE_WORK_OVERTIME_SIGNIN = 5; // åŠ çç¾åˆ° public static final int NET_ATTENDANCESTATE_WORK_OVERTIME_SIGNOUT = 6; // åŠ çç¾å‡º } // å¼€é—¨æ–¹å‘ public static class NET_ENUM_DIRECTION_ACCESS_CTL extends SdkStructure { public static final int NET_ENUM_DIRECTION_UNKNOWN = 0; public static final int NET_ENUM_DIRECTION_ENTRY = 1; // 进门 public static final int NET_ENUM_DIRECTION_EXIT = 2; // 出门 } // 记录集类型 public static class EM_NET_RECORD_TYPE extends SdkStructure { public static final int NET_RECORD_UNKNOWN = 0; public static final int NET_RECORD_TRAFFICREDLIST = 1; // 交通å…许åå•è´¦æˆ·è®°å½•, 查询æ¡ä»¶å¯¹åº” FIND_RECORD_TRAFFICREDLIST_CONDITION 结构体,记录信æ¯å¯¹åº” NET_TRAFFIC_LIST_RECORD 结构体 public static final int NET_RECORD_TRAFFICBLACKLIST = 2; // 交通ç¦æ¢åå•è´¦å·è®°å½•,查询æ¡ä»¶å¯¹åº” FIND_RECORD_TRAFFICREDLIST_CONDITION 结构体,记录信æ¯å¯¹åº” NET_TRAFFIC_LIST_RECORD 结构体 public static final int NET_RECORD_BURN_CASE = 3; // 刻录案件记录,查询æ¡ä»¶å¯¹åº” FIND_RECORD_BURN_CASE_CONDITION 结构体,记录信æ¯å¯¹åº” NET_BURN_CASE_INFO 结构体 public static final int NET_RECORD_ACCESSCTLCARD = 4; // é—¨ç¦å¡,查询æ¡ä»¶å¯¹åº” FIND_RECORD_ACCESSCTLCARD_CONDITION 结构体,记录信æ¯å¯¹åº” NET_RECORDSET_ACCESS_CTL_CARD 结构体 public static final int NET_RECORD_ACCESSCTLPWD = 5; // é—¨ç¦å¯†ç ,查询æ¡ä»¶å¯¹åº” FIND_RECORD_ACCESSCTLPWD_CONDITION 结构体,记录信æ¯å¯¹åº” NET_RECORDSET_ACCESS_CTL_PWD public static final int NET_RECORD_ACCESSCTLCARDREC = 6; // é—¨ç¦å‡ºå…¥è®°å½•ï¼ˆå¿…é¡»åŒæ—¶æŒ‰å¡å·å’Œæ—¶é—´æ®µæŸ¥è¯¢,建议用 NET_RECORD_ACCESSCTLCARDREC_EX 查询),查询æ¡ä»¶å¯¹åº” FIND_RECORD_ACCESSCTLCARDREC_CONDITION 结构体,记录信æ¯å¯¹åº” NET_RECORDSET_ACCESS_CTL_CARDREC 结构体 public static final int NET_RECORD_ACCESSCTLHOLIDAY = 7; // å‡æ—¥è®°å½•é›†,查询æ¡ä»¶å¯¹åº” FIND_RECORD_ACCESSCTLHOLIDAY_CONDITION 结构体,记录信æ¯å¯¹åº” NET_RECORDSET_HOLIDAY 结构体 public static final int NET_RECORD_TRAFFICFLOW_STATE = 8; // 查询交通æµé‡è®°å½•,查询æ¡ä»¶å¯¹åº” FIND_RECORD_TRAFFICFLOW_CONDITION 结构体,记录信æ¯å¯¹åº” NET_RECORD_TRAFFIC_FLOW_STATE 结构体 public static final int NET_RECORD_VIDEOTALKLOG = 9; // 通è¯è®°å½•,查询æ¡ä»¶å¯¹åº” FIND_RECORD_VIDEO_TALK_LOG_CONDITION 结构体,记录信æ¯å¯¹åº” NET_RECORD_VIDEO_TALK_LOG 结构体 public static final int NET_RECORD_REGISTERUSERSTATE = 10; // 状æ€è®°å½•,查询æ¡ä»¶å¯¹åº” FIND_RECORD_REGISTER_USER_STATE_CONDITION 结构体,记录信æ¯å¯¹åº” NET_RECORD_REGISTER_USER_STATE 结构体 public static final int NET_RECORD_VIDEOTALKCONTACT = 11; // è”系人记录,查询æ¡ä»¶å¯¹åº” FIND_RECORD_VIDEO_TALK_CONTACT_CONDITION 结构体,记录信æ¯å¯¹åº” NET_RECORD_VIDEO_TALK_CONTACT 结构体 public static final int NET_RECORD_ANNOUNCEMENT = 12; // 公告记录,查询æ¡ä»¶å¯¹åº” FIND_RECORD_ANNOUNCEMENT_CONDITION 结构体,记录信æ¯å¯¹åº” NET_RECORD_ANNOUNCEMENT_INFO 结构体 public static final int NET_RECORD_ALARMRECORD = 13; // 报è¦è®°å½•,查询æ¡ä»¶å¯¹åº” FIND_RECORD_ALARMRECORD_CONDITION 结构体,记录信æ¯å¯¹åº” NET_RECORD_ALARMRECORD_INFO 结构体 public static final int NET_RECORD_COMMODITYNOTICE = 14; // 下å‘商å“记录,查询æ¡ä»¶å¯¹åº” FIND_RECORD_COMMODITY_NOTICE_CONDITION 结构体,记录信æ¯å¯¹åº” NET_RECORD_COMMODITY_NOTICE 结构体 public static final int NET_RECORD_HEALTHCARENOTICE = 15; // 就诊信æ¯è®°å½•,查询æ¡ä»¶å¯¹åº” FIND_RECORD_HEALTH_CARE_NOTICE_CONDITION 结构体,记录信æ¯å¯¹åº” NET_RECORD_HEALTH_CARE_NOTICE 结构体 public static final int NET_RECORD_ACCESSCTLCARDREC_EX = 16; // é—¨ç¦å‡ºå…¥è®°å½•(å¯é€‰æ‹©éƒ¨åˆ†æ¡ä»¶æŸ¥è¯¢,建议替代NET_RECORD_ACCESSCTLCARDREC),查询æ¡ä»¶å¯¹åº” FIND_RECORD_ACCESSCTLCARDREC_CONDITION_EX 结构体,记录信æ¯å¯¹åº” NET_RECORDSET_ACCESS_CTL_CARDREC 结构体 public static final int NET_RECORD_GPS_LOCATION = 17; // GPSä½ç½®ä¿¡æ¯è®°å½•, åªå®žçŽ°importå’Œclear,记录信æ¯å¯¹åº” NET_RECORD_GPS_LOCATION_INFO 结构体 public static final int NET_RECORD_RESIDENT = 18; // 公租房租户信æ¯,查询æ¡ä»¶å¯¹åº” FIND_RECORD_RESIDENT_CONDTION结构体, 记录信æ¯å¯¹åº” NET_RECORD_RESIDENT_INFO 结构体 public static final int NET_RECORD_SENSORRECORD = 19; // 监测é‡æ•°æ®è®°å½•,查询æ¡ä»¶å¯¹åº” FIND_RECORD_SENSORRECORD_CONDITION 结构体,记录信æ¯å¯¹åº” NET_RECORD_SENSOR_RECORD 结构体 public static final int NET_RECORD_ACCESSQRCODE = 20; // 开门二维ç 记录集,记录信æ¯å¯¹åº” NET_RECORD_ACCESSQRCODE_INFO结构体 public static final int NET_RECORD_ACCESS_BLUETOOTH = 22; // è“牙开门记录集, 查询æ¡ä»¶å¯¹åº” FIND_RECORD_ACCESS_BLUETOOTH_INFO_CONDITION 结构体, 记录信æ¯å¯¹åº” NET_RECORD_ACCESS_BLUETOOTH_INFO 结构体 public static final int NET_RECORD_ACCESS_CONSUMPTION=29; // 消费记录 查询æ¡ä»¶å¯¹åº” FIND_RECORD_ACCESS_CTL_CONSUMPTION_INFO_CONDITION 结构体, 记录信æ¯å¯¹åº” NET_RECORD_ACCESS_CTL_CONSUMPTION_INFO 结构体 } //交通ç¦æ¢/å…许åå•è®°å½•ä¿¡æ¯ public static class NET_TRAFFIC_LIST_RECORD extends SdkStructure { public int dwSize; public int nRecordNo; // 之å‰æŸ¥è¯¢åˆ°çš„è®°å½•å· public byte[] szMasterOfCar = new byte[NET_MAX_NAME_LEN]; // 车主姓å public byte[] szPlateNumber = new byte[NET_MAX_PLATE_NUMBER_LEN]; // 车牌å·ç public int emPlateType; // 车牌类型,对应EM_NET_PLATE_TYPE public int emPlateColor; // 车牌颜色 ,对应EM_NET_PLATE_COLOR_TYPE public int emVehicleType; // 车辆类型 ,对应EM_NET_VEHICLE_TYPE public int emVehicleColor; // 车身颜色,对应EM_NET_VEHICLE_COLOR_TYPE public NET_TIME stBeginTime; // 开始时间 public NET_TIME stCancelTime; // 撤销时间 public int nAuthrityNum; // æƒé™ä¸ªæ•° public NET_AUTHORITY_TYPE[] stAuthrityTypes = new NET_AUTHORITY_TYPE[NET_MAX_AUTHORITY_LIST_NUM]; // æƒé™åˆ—表 , å…许åå•ä»…有 public int emControlType; // 布控类型 ,ç¦æ¢åå•ä»…有,对应EM_NET_TRAFFIC_CAR_CONTROL_TYPE /** 布控路线ID */ public int nControlledRouteID; public int nLocation; // 车辆所处ä½ç½® public int bLocation; // 车辆所处ä½ç½®æ˜¯å¦ä¸‹å‘,TRUE:ä¸‹å‘ -1,FALSE:ä¸ä¸‹å‘ -0 public byte[] szCustomParkNo = new byte[32]; // 自定义车ä½å·ï¼Œé€‚用于车检器场景 public byte[] szProvince = new byte[64]; // çœä»½ç±»åž‹ public byte[] szMasterOfCarEx = new byte[64]; // 车主姓å(拓展) public int bIsMasterOfCarExValid; // 是å¦ä½¿ç”¨szMasterOfCarExä¸‹å‘ public static class ByReference extends NET_TRAFFIC_LIST_RECORD implements Structure.ByReference {} public NET_TRAFFIC_LIST_RECORD() { for(int i=0;i<NET_MAX_AUTHORITY_LIST_NUM;i++){ stAuthrityTypes[i]=new NET_AUTHORITY_TYPE(); } this.dwSize = this.size(); } } //车牌类型 public static class EM_NET_PLATE_TYPE extends SdkStructure { public static final int NET_PLATE_TYPE_UNKNOWN = 0; public static final int NET_PLATE_TYPE_NORMAL = 1; // "Normal" è“牌黑牌 public static final int NET_PLATE_TYPE_YELLOW = 2; // "Yellow" 黄牌 public static final int NET_PLATE_TYPE_DOUBLEYELLOW = 3; // "DoubleYellow" åŒå±‚黄尾牌 public static final int NET_PLATE_TYPE_POLICE = 4; // "Police" è¦ç‰Œ public static final int NET_PLATE_TYPE_WJ = 5; // public static final int NET_PLATE_TYPE_OUTERGUARD = 6; // public static final int NET_PLATE_TYPE_DOUBLEOUTERGUARD = 7; // public static final int NET_PLATE_TYPE_SAR = 8; // "SAR" 港澳特区å·ç‰Œ public static final int NET_PLATE_TYPE_TRAINNING = 9; // "Trainning" 教练车å·ç‰Œ public static final int NET_PLATE_TYPE_PERSONAL = 10; // "Personal" 个性å·ç‰Œ public static final int NET_PLATE_TYPE_AGRI = 11; // "Agri" 农用牌 public static final int NET_PLATE_TYPE_EMBASSY = 12; // "Embassy" 使馆å·ç‰Œ public static final int NET_PLATE_TYPE_MOTO = 13; // "Moto" 摩托车å·ç‰Œ public static final int NET_PLATE_TYPE_TRACTOR = 14; // "Tractor" 拖拉机å·ç‰Œ public static final int NET_PLATE_TYPE_OFFICIALCAR = 15; // "OfficialCar " 公务车 public static final int NET_PLATE_TYPE_PERSONALCAR = 16; // "PersonalCar" ç§å®¶è½¦ public static final int NET_PLATE_TYPE_WARCAR = 17; // "WarCar" 军用 public static final int NET_PLATE_TYPE_OTHER = 18; // "Other" 其他å·ç‰Œ public static final int NET_PLATE_TYPE_CIVILAVIATION = 19; // "Civilaviation" 民航å·ç‰Œ public static final int NET_PLATE_TYPE_BLACK = 20; // "Black" 黑牌 public static final int NET_PLATE_TYPE_PURENEWENERGYMICROCAR = 21; // "PureNewEnergyMicroCar" 纯电动新能æºå°è½¦ public static final int NET_PLATE_TYPE_MIXEDNEWENERGYMICROCAR = 22; // "MixedNewEnergyMicroCar" æ··åˆæ–°èƒ½æºå°è½¦ public static final int NET_PLATE_TYPE_PURENEWENERGYLARGECAR = 23; // "PureNewEnergyLargeCar" 纯电动新能æºå¤§è½¦ public static final int NET_PLATE_TYPE_MIXEDNEWENERGYLARGECAR = 24; // "MixedNewEnergyLargeCar" æ··åˆæ–°èƒ½æºå¤§è½¦ } //车牌颜色 public static class EM_NET_PLATE_COLOR_TYPE extends SdkStructure { public static final int NET_PLATE_COLOR_OTHER = 0; // 其他颜色 public static final int NET_PLATE_COLOR_BLUE = 1; // è“色 "Blue" public static final int NET_PLATE_COLOR_YELLOW = 2; // 黄色 "Yellow" public static final int NET_PLATE_COLOR_WHITE = 3; // 白色 "White" public static final int NET_PLATE_COLOR_BLACK = 4; // 黑色 "Black" public static final int NET_PLATE_COLOR_YELLOW_BOTTOM_BLACK_TEXT = 5; // é»„åº•é»‘å— "YellowbottomBlackText" public static final int NET_PLATE_COLOR_BLUE_BOTTOM_WHITE_TEXT = 6; // è“åº•ç™½å— "BluebottomWhiteText" public static final int NET_PLATE_COLOR_BLACK_BOTTOM_WHITE_TEXT = 7; // é»‘åº•ç™½å— "BlackBottomWhiteText" public static final int NET_PLATE_COLOR_SHADOW_GREEN = 8; // æ¸å˜ç»¿ "ShadowGreen" public static final int NET_PLATE_COLOR_YELLOW_GREEN = 9; // 黄绿åŒæ‹¼ "YellowGreen" } //车辆类型 public static class EM_NET_VEHICLE_TYPE extends SdkStructure { public static final int NET_VEHICLE_TYPE_UNKNOW = 0; // 未知类型 public static final int NET_VEHICLE_TYPE_MOTOR = 1; // "Motor" 机动车 public static final int NET_VEHICLE_TYPE_NON_MOTOR = 2; // "Non-Motor"éžæœºåŠ¨è½¦ public static final int NET_VEHICLE_TYPE_BUS = 3; // "Bus"公交车 public static final int NET_VEHICLE_TYPE_BICYCLE = 4; // "Bicycle" 自行车 public static final int NET_VEHICLE_TYPE_MOTORCYCLE = 5; // "Motorcycle"摩托车 public static final int NET_VEHICLE_TYPE_UNLICENSEDMOTOR = 6; // "UnlicensedMotor": æ— ç‰ŒæœºåŠ¨è½¦ public static final int NET_VEHICLE_TYPE_LARGECAR = 7; // "LargeCar" 大型汽车 public static final int NET_VEHICLE_TYPE_MICROCAR = 8; // "MicroCar" å°åž‹æ±½è½¦ public static final int NET_VEHICLE_TYPE_EMBASSYCAR = 9; // "EmbassyCar" 使馆汽车 public static final int NET_VEHICLE_TYPE_MARGINALCAR = 10; // "MarginalCar" 领馆汽车 public static final int NET_VEHICLE_TYPE_AREAOUTCAR = 11; // "AreaoutCar" 境外汽车 public static final int NET_VEHICLE_TYPE_FOREIGNCAR = 12; // "ForeignCar" 外ç±æ±½è½¦ public static final int NET_VEHICLE_TYPE_DUALTRIWHEELMOTORCYCLE = 13; // "DualTriWheelMotorcycle"两ã€ä¸‰è½®æ‘©æ‰˜è½¦ public static final int NET_VEHICLE_TYPE_LIGHTMOTORCYCLE = 14; // "LightMotorcycle" 轻便摩托车 public static final int NET_VEHICLE_TYPE_EMBASSYMOTORCYCLE = 15; // "EmbassyMotorcycle "使馆摩托车 public static final int NET_VEHICLE_TYPE_MARGINALMOTORCYCLE = 16; // "MarginalMotorcycle "领馆摩托车 public static final int NET_VEHICLE_TYPE_AREAOUTMOTORCYCLE = 17; // "AreaoutMotorcycle "境外摩托车 public static final int NET_VEHICLE_TYPE_FOREIGNMOTORCYCLE = 18; // "ForeignMotorcycle "外ç±æ‘©æ‰˜è½¦ public static final int NET_VEHICLE_TYPE_FARMTRANSMITCAR = 19; // "FarmTransmitCar" 农用è¿è¾“车 public static final int NET_VEHICLE_TYPE_TRACTOR = 20; // "Tractor" 拖拉机 public static final int NET_VEHICLE_TYPE_TRAILER = 21; // "Trailer" 挂车 public static final int NET_VEHICLE_TYPE_COACHCAR = 22; // "CoachCar"教练汽车 public static final int NET_VEHICLE_TYPE_COACHMOTORCYCLE = 23; // "CoachMotorcycle "教练摩托车 public static final int NET_VEHICLE_TYPE_TRIALCAR = 24; // "TrialCar" 试验汽车 public static final int NET_VEHICLE_TYPE_TRIALMOTORCYCLE = 25; // "TrialMotorcycle "试验摩托车 public static final int NET_VEHICLE_TYPE_TEMPORARYENTRYCAR = 26; // "TemporaryEntryCar"临时入境汽车 public static final int NET_VEHICLE_TYPE_TEMPORARYENTRYMOTORCYCLE = 27; // "TemporaryEntryMotorcycle"临时入境摩托车 public static final int NET_VEHICLE_TYPE_TEMPORARYSTEERCAR = 28; // "TemporarySteerCar"临时行驶车 public static final int NET_VEHICLE_TYPE_PASSENGERCAR = 29; // "PassengerCar" 客车 public static final int NET_VEHICLE_TYPE_LARGETRUCK = 30; // "LargeTruck" 大货车 public static final int NET_VEHICLE_TYPE_MIDTRUCK = 31; // "MidTruck" ä¸è´§è½¦ public static final int NET_VEHICLE_TYPE_SALOONCAR = 32; // "SaloonCar" 轿车 public static final int NET_VEHICLE_TYPE_MICROBUS = 33; // "Microbus"é¢åŒ…车 public static final int NET_VEHICLE_TYPE_MICROTRUCK = 34; // "MicroTruck"å°è´§è½¦ public static final int NET_VEHICLE_TYPE_TRICYCLE = 35; // "Tricycle"三轮车 public static final int NET_VEHICLE_TYPE_PASSERBY = 36; // "Passerby" 行人 } //车身颜色 public static class EM_NET_VEHICLE_COLOR_TYPE extends SdkStructure { public static final int NET_VEHICLE_COLOR_OTHER = 0; // 其他颜色 public static final int NET_VEHICLE_COLOR_WHITE = 1; // 白色 "White" public static final int NET_VEHICLE_COLOR_BLACK = 2; // 黑色 "Black" public static final int NET_VEHICLE_COLOR_RED = 3; // 红色 "Red" public static final int NET_VEHICLE_COLOR_YELLOW = 4; // 黄色 "Yellow" public static final int NET_VEHICLE_COLOR_GRAY = 5; // ç°è‰² "Gray" public static final int NET_VEHICLE_COLOR_BLUE = 6; // è“色 "Blue" public static final int NET_VEHICLE_COLOR_GREEN = 7; // 绿色 "Green" public static final int NET_VEHICLE_COLOR_PINK = 8; // 粉红色 "Pink" public static final int NET_VEHICLE_COLOR_PURPLE = 9; // 紫色 "Purple" public static final int NET_VEHICLE_COLOR_BROWN = 10; // 棕色 "Brown" } // 交通æµé‡è®°å½• public static class NET_RECORD_TRAFFIC_FLOW_STATE extends SdkStructure { public int dwSize; public int nRecordNum; // è®°å½•ç¼–å· public int nChannel; // 通é“å· public int nLane; // 车é“å· public int nVehicles; // 通过车辆总数 public float fAverageSpeed; // å¹³å‡è½¦é€Ÿ,å•ä½km/h public float fTimeOccupyRatio; // 时间å 有率,å³å•ä½æ—¶é—´å†…通过æ–é¢çš„车辆所用时间的总和å å•ä½æ—¶é—´çš„比例 public float fSpaceOccupyRatio; // 空间å 有率,å³æŒ‰ç™¾åˆ†çŽ‡è®¡é‡çš„车辆长度总和除以时间间隔内车辆平å‡è¡Œé©¶è·ç¦» public float fSpaceHeadway; // 车头间è·,相邻车辆之间的è·ç¦»,å•ä½ç±³/辆 public float fTimeHeadway; // 车头时è·,å•ä½ç§’/辆 public int nLargeVehicles; // 大车交通é‡(9ç±³<车长<12ç±³),辆/å•ä½æ—¶é—´ public int nMediumVehicles; // ä¸åž‹è½¦äº¤é€šé‡(6ç±³<车长<9ç±³),辆/å•ä½æ—¶é—´ public int nSmallVehicles; // å°è½¦äº¤é€šé‡(4ç±³<车长<6ç±³),辆/å•ä½æ—¶é—´, public float fBackOfQueue; // 排队长度,å•ä½ï¼šç±³, 从信å·äº¤å‰å£åœè½¦çº¿åˆ°ä¸Šæ¸¸æŽ’队车辆末端之间的è·ç¦» public int nPasserby; // 通过行人数 public NET_RECORD_TRAFFIC_FLOW_STATE() { this.dwSize = this.size(); } } //æƒé™åˆ—表 , å…许åå•ä»…有 public static class NET_AUTHORITY_TYPE extends SdkStructure { public int dwSize; public int emAuthorityType; //æƒé™ç±»åž‹ï¼Œå¯¹åº”EM_NET_AUTHORITY_TYPE public int bAuthorityEnable; //æƒé™ä½¿èƒ½ public NET_AUTHORITY_TYPE() { this.dwSize = this.size(); } } //æƒé™ç±»åž‹ public static class EM_NET_AUTHORITY_TYPE extends SdkStructure { public static final int NET_AUTHORITY_UNKNOW = 0; public static final int NET_AUTHORITY_OPEN_GATE = 1; //开闸æƒé™ } //布控类型 public static class EM_NET_TRAFFIC_CAR_CONTROL_TYPE extends SdkStructure { public static final int NET_CAR_CONTROL_OTHER = 0; public static final int NET_CAR_CONTROL_OVERDUE_NO_CHECK = 1; // 过期未检 "OverdueNoCheck" public static final int NET_CAR_CONTROL_BRIGANDAGE_CAR = 2; // "BrigandageCar" public static final int NET_CAR_CONTROL_BREAKING = 3; // è¿ç« "Breaking" public static final int NET_CAR_CONTROL_CAUSETROUBLE_ESCAPE = 4; // "CausetroubleEscape" public static final int NET_CAR_CONTROL_CAUSETROUBLE_OVERDUEPARKING = 5; // åœè½¦æ¬ è´¹ "OverdueParking" public static final int NET_CAR_CONTROL_COUNTERFEI_PLATE_CAR = 6; // å‡ç‰Œè½¦ "CounterfeitPlateCar" public static final int NET_CAR_CONTROL_FAKE_PLATE_CAR = 7; // 套牌车 "FakePlateCar" public static final int NET_CAR_CONTROL_FOCAL_CAR = 8; // é‡ç‚¹è½¦è¾† "FocalCar" public static final int NET_CAR_CONTROL_GUARANTEE_CAR = 9; // ä¿éšœè½¦è¾† "GuaranteeCar" public static final int NET_CAR_CONTROL_FOLLOW_CAR = 10; // 关注车辆 "FollowCar" } // 呼å«ç±»åž‹ public static class EM_VIDEO_TALK_LOG_CALLTYPE extends SdkStructure { public static final int EM_VIDEO_TALK_LOG_CALLTYPE_UNKNOWN = 0; // 未知 public static final int EM_VIDEO_TALK_LOG_CALLTYPE_INCOMING = 1; // 呼入 public static final int EM_VIDEO_TALK_LOG_CALLTYPE_OUTGOING = 2; // 呼出 public static final int EM_VIDEO_TALK_LOG_CALLTYPE_MAX = 3; } // æœ€ç»ˆçŠ¶æ€ public static class EM_VIDEO_TALK_LOG_ENDSTATE extends SdkStructure { public static final int EM_VIDEO_TALK_LOG_ENDSTATE_UNKNOWN = 0; // 未知 public static final int EM_VIDEO_TALK_LOG_ENDSTATE_MISSED = 1; // 未接 public static final int EM_VIDEO_TALK_LOG_ENDSTATE_RECEIVED = 2; // 已接 public static final int EM_VIDEO_TALK_LOG_ENDSTATE_MAX = 3; } // 对方类型 public static class EM_VIDEO_TALK_LOG_PEERTYPE extends SdkStructure { public static final int EM_VIDEO_TALK_LOG_PEERTYPE_UNKNOWN = 0; // 未知 public static final int EM_VIDEO_TALK_LOG_PEERTYPE_VTO = 1; // é—¨å£æœº public static final int EM_VIDEO_TALK_LOG_PEERTYPE_VTH = 2; // 室内机 public static final int EM_VIDEO_TALK_LOG_PEERTYPE_VTS = 3; // 管ç†ä¸å¿ƒ } // 通è¯è®°å½•æŸ¥è¯¢æ¡ä»¶ public static class FIND_RECORD_VIDEO_TALK_LOG_CONDITION extends SdkStructure { public int dwSize; public int bCallTypeEnable; // 呼å«ç±»åž‹æŸ¥è¯¢æ¡ä»¶æ˜¯å¦æœ‰æ•ˆ public int nCallTypeListNum; // 对应 emCallTypeList ä¸æœ‰æ•ˆæžšä¸¾ä¸ªæ•° public int[] emCallTypeList = new int[NET_MAX_CALLTYPE_LIST_NUM]; // 呼å«ç±»åž‹ä½¿èƒ½åˆ—表, 详è§EM_VIDEO_TALK_LOG_CALLTYPE public int bEndStateEnable; // 最终状æ€æŸ¥è¯¢æ¡ä»¶æ˜¯å¦æœ‰æ•ˆ public int nEndStateListNum; // 对应 emEndStateList ä¸æœ‰æ•ˆæžšä¸¾ä¸ªæ•° public int[] emEndStateList = new int[NET_MAX_ENDSTATE_LIST_NUM]; // 最终状æ€ä½¿èƒ½åˆ—表, 详è§EM_VIDEO_TALK_LOG_ENDSTATE public int bTimeEnable; // å¯ç”¨æ—¶é—´æ®µæŸ¥è¯¢ public NET_TIME stStartTime; // 起始时间 public NET_TIME stEndTime; // 结æŸæ—¶é—´ public FIND_RECORD_VIDEO_TALK_LOG_CONDITION() { this.dwSize = this.size(); } } // 通è¯è®°å½•è®°å½•é›†ä¿¡æ¯ public static class NET_RECORD_VIDEO_TALK_LOG extends SdkStructure { public int dwSize; public int nRecNo; // 记录集编å·,åªè¯» public NET_TIME stuCreateTime; // 开始时间 public int emCallType; // 呼å«ç±»åž‹,详è§EM_VIDEO_TALK_LOG_CALLTYPE public int emEndState; // 最终状æ€,详è§EM_VIDEO_TALK_LOG_ENDSTATE public byte[] szPeerNumber = new byte[NET_COMMON_STRING_64]; // 对方å·ç å¯ä»¥æ˜¯çŸå·,ä¸å·æˆ–é•¿å· public int emPeerType; // 对方类型,详è§EM_VIDEO_TALK_LOG_PEERTYPE public byte[] szLocalNumber = new byte[NET_COMMON_STRING_64]; // 本机å·ç å¯ä»¥æ˜¯çŸå·,ä¸å·æˆ–é•¿å· public int nTalkTime; // 通è¯æ—¶é—´ å•ä½ç§’ public int nMessageTime; // 留言时间 å•ä½ç§’ public byte[] szPicturePath = new byte[NET_COMMON_STRING_128]; // 图片路径 public int emOfflineCall; // å¹³å°æ–线是å¦å‘¼å‡º,NET_EM_OFFLINE_CALL_TYPE public NET_TIME_EX stuCreateTimeRealUTC = new NET_TIME_EX(); // 真实UTC开始时间 public NET_RECORD_VIDEO_TALK_LOG() { this.dwSize = this.size(); } } // CLIENT_FindRecord接å£è¾“出å‚æ•° public static class NET_OUT_FIND_RECORD_PARAM extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public LLong lFindeHandle; // 查询记录å¥æŸ„,å”¯ä¸€æ ‡è¯†æŸæ¬¡æŸ¥è¯¢ public NET_OUT_FIND_RECORD_PARAM() { this.dwSize = this.size(); } } // CLIENT_FindNextRecord接å£è¾“å…¥å‚æ•° public static class NET_IN_FIND_NEXT_RECORD_PARAM extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public LLong lFindeHandle; // 查询å¥æŸ„ public int nFileCount; // 当å‰æƒ³æŸ¥è¯¢çš„记录æ¡æ•° public NET_IN_FIND_NEXT_RECORD_PARAM() { this.dwSize = this.size(); } } //CLIENT_FindNextRecord接å£è¾“出å‚æ•° public static class NET_OUT_FIND_NEXT_RECORD_PARAM extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public Pointer pRecordList; // 记录列表,用户分é…内å˜ï¼Œå¯¹åº” 交通ç¦æ¢/å…许åå•è®°å½•ä¿¡æ¯ NET_TRAFFIC_LIST_RECORD public int nMaxRecordNum; // 列表记录数 public int nRetRecordNum; // 查询到的记录æ¡æ•°,当查询到的æ¡æ•°å°äºŽæƒ³æŸ¥è¯¢çš„æ¡æ•°æ—¶,æŸ¥è¯¢ç»“æŸ public NET_OUT_FIND_NEXT_RECORD_PARAM() { this.dwSize = this.size(); } } // CLIENT_QueryRecordCount接å£è¾“å…¥å‚æ•° public static class NET_IN_QUEYT_RECORD_COUNT_PARAM extends SdkStructure { public int dwSize;//ç»“æž„ä½“å¤§å° public LLong lFindeHandle;//查询å¥æŸ„ public NET_IN_QUEYT_RECORD_COUNT_PARAM() { this.dwSize = this.size(); } } // CLIENT_QueryRecordCount接å£è¾“出å‚æ•° public static class NET_OUT_QUEYT_RECORD_COUNT_PARAM extends SdkStructure { public int dwSize;//ç»“æž„ä½“å¤§å° public int nRecordCount;//设备返回的记录æ¡æ•° public NET_OUT_QUEYT_RECORD_COUNT_PARAM() { this.dwSize = this.size(); } } // CLIENT_OperateTrafficList接å£è¾“å…¥å‚æ•°, public static class NET_IN_OPERATE_TRAFFIC_LIST_RECORD extends SdkStructure { public int dwSize; public int emOperateType; // emOperateType对应EM_RECORD_OPERATE_TYPE public int emRecordType; // è¦æ“作记录信æ¯ç±»åž‹,emRecordType对应EM_NET_RECORD_TYPE public Pointer pstOpreateInfo; // 对应 æ·»åŠ NET_INSERT_RECORD_INFO/ åˆ é™¤NET_REMOVE_RECORD_INFO / 修改NET_UPDATE_RECORD_INFO public NET_IN_OPERATE_TRAFFIC_LIST_RECORD() { this.dwSize = this.size(); } } // æ·»åŠ public static class NET_INSERT_RECORD_INFO extends SdkStructure { public int dwSize; public NET_TRAFFIC_LIST_RECORD.ByReference pRecordInfo = new NET_TRAFFIC_LIST_RECORD.ByReference(); // è®°å½•å†…å®¹ä¿¡æ¯ public NET_INSERT_RECORD_INFO () { this.dwSize = this.size(); } } // åˆ é™¤ public static class NET_REMOVE_RECORD_INFO extends SdkStructure { public int dwSize; public int nRecordNo; // 之å‰æŸ¥è¯¢åˆ°çš„记录å·ï¼Œå¯¹åº”NET_TRAFFIC_LIST_RECORD里的nRecordNo public NET_REMOVE_RECORD_INFO() { this.dwSize = this.size(); } } // 修改 public static class NET_UPDATE_RECORD_INFO extends SdkStructure{ public int dwSize; public NET_TRAFFIC_LIST_RECORD.ByReference pRecordInfo=new NET_TRAFFIC_LIST_RECORD.ByReference(); // è®°å½•å†…å®¹ä¿¡æ¯ ï¼Œå¯¹åº” NET_TRAFFIC_LIST_RECORD public NET_UPDATE_RECORD_INFO() { this.dwSize = this.size(); } } // ç¦æ¢/å…许åå•æ“作类型 public static class EM_RECORD_OPERATE_TYPE extends SdkStructure { public static final int NET_TRAFFIC_LIST_INSERT = 0; // å¢žåŠ è®°å½•æ“作 public static final int NET_TRAFFIC_LIST_UPDATE = 1; // 更新记录æ“作 public static final int NET_TRAFFIC_LIST_REMOVE = 2; // åˆ é™¤è®°å½•æ“作 public static final int NET_TRAFFIC_LIST_MAX = 3; } // CLIENT_OperateTrafficList接å£è¾“出å‚æ•°,现阶段实现的æ“作接å£ä¸,åªæœ‰è¿”回nRecordNoçš„æ“作,stRetRecordæš‚æ—¶ä¸å¯ç”¨,是null public static class NET_OUT_OPERATE_TRAFFIC_LIST_RECORD extends SdkStructure { public int dwSize; public int nRecordNo; //è®°å½•å· public NET_OUT_OPERATE_TRAFFIC_LIST_RECORD() { this.dwSize = this.size(); } } // 记录集æ“作å‚æ•° public static class NET_CTRL_RECORDSET_PARAM extends SdkStructure { public int dwSize; public int emType; // 记录集信æ¯ç±»åž‹,对应EM_NET_RECORD_TYPE public Pointer pBuf; // 新增\æ›´æ–°\查询\导入时,为记录集信æ¯ç¼“å˜,详è§EM_NET_RECORD_TYPE注释 // åˆ é™¤æ—¶,为å˜æ”¾è®°å½•é›†ç¼–å·çš„内å˜åœ°å€(类型为int*), 批é‡åˆ 除时,为NET_CTRL_RECORDSET_REMOVEEX_PARAM, 由用户申请内å˜, 长度为nBufLen public int nBufLen; // 记录集信æ¯ç¼“å˜å¤§å° public NET_CTRL_RECORDSET_PARAM() { this.dwSize = this.size(); } } // ç¦æ¢/å…许åå•ä¸Šä¼ public static class NETDEV_BLACKWHITE_LIST_INFO extends SdkStructure { public byte[] szFile = new byte[MAX_PATH_STOR]; // ç¦æ¢/å…许åå•æ–‡ä»¶è·¯å¾„ public int nFileSize; // å‡çº§æ–‡ä»¶å¤§å° public byte byFileType; // 当å‰æ–‡ä»¶ç±»åž‹,0-ç¦æ¢åå•,1-å…许åå• public byte byAction; // 动作,0-覆盖,1-è¿½åŠ public byte[] byReserved = new byte[126]; // ä¿ç•™ } // GPSä¿¡æ¯(车载设备) public static class GPS_Info extends SdkStructure { public NET_TIME revTime; // 定ä½æ—¶é—´ public byte[] DvrSerial = new byte[50]; // 设备åºåˆ—å· public double longitude; // ç»åº¦(å•ä½æ˜¯ç™¾ä¸‡åˆ†ä¹‹åº¦,范围0-360度) public double latidude; // 纬度(å•ä½æ˜¯ç™¾ä¸‡åˆ†ä¹‹åº¦,范围0-180度) public double height; // 高度(ç±³) public double angle; // æ–¹å‘角(æ£åŒ—æ–¹å‘为原点,顺时针为æ£) public double speed; // 速度(å•ä½æ˜¯æµ·é‡Œ,speed/1000*1.852公里/å°æ—¶) public short starCount; // 定ä½æ˜Ÿæ•°,æ— ç¬¦å· public int antennaState; // 天线状æ€(true 好,false å) public int orientationState; // 定ä½çŠ¶æ€(true 定ä½,false ä¸å®šä½) public static class ByValue extends GPS_Info implements SdkStructure.ByValue { } } // 报è¦çŠ¶æ€ä¿¡æ¯ public static class ALARM_STATE_INFO extends SdkStructure { public int nAlarmCount; // å‘生的报è¦äº‹ä»¶ä¸ªæ•° public int[] nAlarmState = new int[128]; // å‘生的报è¦äº‹ä»¶ç±»åž‹ public byte[] byRserved = new byte[128]; // ä¿ç•™å—节 public static class ByValue extends ALARM_STATE_INFO implements SdkStructure.ByValue { } } // 对应CLIENT_SearchDevicesByIPsæŽ¥å£ public static class DEVICE_IP_SEARCH_INFO extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nIpNum; // 当å‰æœç´¢çš„IP个数 public DEVICE_IP[] szIPArr = (DEVICE_IP[])new DEVICE_IP().toArray(NET_MAX_SAERCH_IP_NUM); // 具体待æœç´¢çš„IPä¿¡æ¯æ•°ç»„ public DEVICE_IP_SEARCH_INFO() { this.dwSize = this.size(); } } // 具体待æœç´¢çš„IPä¿¡æ¯ public static class DEVICE_IP extends SdkStructure { public byte[] szIP = new byte[64]; // 具体待æœç´¢çš„IPä¿¡æ¯ } // CLIENT_UploadRemoteFile 接å£è¾“å…¥å‚æ•°(ä¸Šä¼ æ–‡ä»¶åˆ°è®¾å¤‡) public static class NET_IN_UPLOAD_REMOTE_FILE extends SdkStructure { public int dwSize; public Pointer pszFileSrc; // æºæ–‡ä»¶è·¯å¾„ public Pointer pszFileDst; // ç›®æ ‡æ–‡ä»¶è·¯å¾„ public Pointer pszFolderDst; // ç›®æ ‡æ–‡ä»¶å¤¹è·¯å¾„ï¼šå¯ä¸ºNULL, NULL时设备使用默认路径 public int nPacketLen; // 文件分包大å°(å—节): 0表示ä¸åˆ†åŒ… public NET_IN_UPLOAD_REMOTE_FILE(){ this.dwSize = this.size(); } } // CLIENT_UploadRemoteFile 接å£è¾“出å‚æ•°(ä¸Šä¼ æ–‡ä»¶åˆ°è®¾å¤‡) public static class NET_OUT_UPLOAD_REMOTE_FILE extends SdkStructure { public int dwSize; public NET_OUT_UPLOAD_REMOTE_FILE() { this.dwSize = this.size(); } } // CLIENT_ListRemoteFile 接å£è¾“å…¥å‚æ•° public static class NET_IN_LIST_REMOTE_FILE extends SdkStructure { public int dwSize; public String pszPath; // 路径 public int bFileNameOnly; // åªèŽ·å–文件å称, ä¸è¿”回文件夹信æ¯, 文件信æ¯ä¸åªæœ‰æ–‡ä»¶å有效, BOOL类型 public int emCondition; // 指定获å–文件的æ¡ä»¶, 对应 NET_REMOTE_FILE_COND public NET_IN_LIST_REMOTE_FILE() { this.dwSize = this.size(); } } // CLIENT_ListRemoteFile 接å£è¾“出å‚æ•° public static class NET_OUT_LIST_REMOTE_FILE extends SdkStructure { public int dwSize; public Pointer pstuFiles; // 文件信æ¯æ•°ç»„, 用户分é…内å˜, 对应 NET_REMOTE_FILE_INFO[],大å°ä¸ºsizeof(NET_REMOTE_FILE_INFO)*nMaxFileCount public int nMaxFileCount; // 文件信æ¯æ•°ç»„大å°, 用户填写 public int nRetFileCount; // è¿”å›žçš„æ–‡ä»¶æ•°é‡ public NET_OUT_LIST_REMOTE_FILE() { this.dwSize = this.size(); } } // 文件/ç›®å½•ä¿¡æ¯ public static class SDK_REMOTE_FILE_INFO extends SdkStructure { public int dwSize; public int bDirectory; // 是å¦æ–‡ä»¶å¤¹, BOOL类型 public byte[] szPath = new byte[MAX_PATH]; // 路径 public NET_TIME stuCreateTime; // 创建时间 public NET_TIME stuModifyTime; // 修改时间 public long nFileSize; // æ–‡ä»¶å¤§å° public byte[] szFileType = new byte[NET_FILE_TYPE_LEN]; // 文件类型 public SDK_REMOTE_FILE_INFO() { this.dwSize = this.size(); } } // 获å–文件的æ¡ä»¶ public static class NET_REMOTE_FILE_COND extends SdkStructure { public static final int NET_REMOTE_FILE_COND_NONE = 0; // æ— æ¡ä»¶ public static final int NET_REMOTE_FILE_COND_VOICE = 1; // è¯éŸ³è”动的文件,*æ— æ³•*按路径获å–,*åªèƒ½*获å–获å–文件å称 } // CLIENT_RemoveRemoteFiles 接å£è¾“å…¥å‚æ•° public static class NET_IN_REMOVE_REMOTE_FILES extends SdkStructure { public int dwSize; public Pointer pszPathPointer; // 文件路径数组指针,对应 FILE_PATH[] public int nFileCount; // æ–‡ä»¶è·¯å¾„æ•°é‡ public NET_IN_REMOVE_REMOTE_FILES() { this.dwSize = this.size(); } } public static class FILE_PATH extends SdkStructure { public String pszPath; } // CLIENT_RemoveRemoteFiles 接å£è¾“出å‚æ•° public static class NET_OUT_REMOVE_REMOTE_FILES extends SdkStructure { public int dwSize; public NET_OUT_REMOVE_REMOTE_FILES() { this.dwSize = this.size(); } } // CLIENT_ParkingControlAttachRecord()接å£è¾“å…¥å‚æ•° public static class NET_IN_PARKING_CONTROL_PARAM extends SdkStructure { public int dwSize; public Callback cbCallBack; // æ•°æ®å›žè°ƒå‡½æ•°,fParkingControlRecordCallBack 回调 public Pointer dwUser; // 用户定义å‚æ•° public NET_IN_PARKING_CONTROL_PARAM() { this.dwSize = this.size(); } } // CLIENT_ParkingControlDetachRecord()接å£è¾“出å‚æ•° public static class NET_OUT_PARKING_CONTROL_PARAM extends SdkStructure { public int dwSize; public NET_OUT_PARKING_CONTROL_PARAM() { this.dwSize = this.size(); } } // è¿‡è½¦è®°å½•ä¿¡æ¯ public static class NET_CAR_PASS_ITEM extends SdkStructure { public int dwSize; public NET_TIME stuTime; // 过车时间 public int dwCardNo; // å¡å· public int emCardType; // 智能åœè½¦ç³»ç»Ÿå‡ºå…¥å£æœºICå¡ç”¨æˆ·ç±»åž‹,对应 NET_ECK_IC_CARD_USER_TYPE public int emFlag; // 过车记录类型,对应 NET_ECK_CAR_PASS_FLAG public NET_CAR_PASS_ITEM(){ this.dwSize = this.size(); } } // 智能åœè½¦ç³»ç»Ÿå‡ºå…¥å£æœºICå¡ç”¨æˆ·ç±»åž‹ public static class NET_ECK_IC_CARD_USER_TYPE extends SdkStructure { public static final int NET_ECK_IC_CARD_USER_UNKNOWN = 0; public static final int NET_ECK_IC_CARD_USER_ALL = 1; // 全部类型 public static final int NET_ECK_IC_CARD_USER_TEMP = 2; // 临时用户 public static final int NET_ECK_IC_CARD_USER_LONG = 3; // 长期用户 public static final int NET_ECK_IC_CARD_USER_ADMIN = 4; // 管ç†å‘˜ public static final int NET_ECK_IC_CARD_USER_BLACK_LIST = 5; // ç¦æ¢åå• } // 智能åœè½¦ç³»ç»Ÿå‡ºå…¥å£æœºå¼‚常过车记录类型 public static class NET_ECK_CAR_PASS_FLAG extends SdkStructure { public static final int NET_ECK_CAR_PASS_FLAG_NORMAL = 0; // æ£å¸¸ public static final int NET_ECK_CAR_PASS_FLAG_ABNORMAL = 1; // 异常 public static final int NET_ECK_CAR_PASS_FLAG_ALL = 2; // 全部 } // CLIENT_ParkingControlStartFind接å£è¾“å…¥å‚æ•°****************** public static class NET_IN_PARKING_CONTROL_START_FIND_PARAM extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int bSearchCount; // 查询记录调试是å¦æœ‰æ•ˆ public int dwSearchCount; // 查询记录æ¡æ•°, 数值范围1~100 public int bBegin; // 查询开始时间是å¦æœ‰æ•ˆ public NET_TIME stuBegin; // 查询开始时间 public int bEnd; // 查询结æŸæ—¶é—´æ˜¯å¦æœ‰æ•ˆ public NET_TIME stuEnd; // 查询结æŸæ—¶é—´ public int bCardType; // å¡ç±»åž‹æ˜¯å¦æœ‰æ•ˆ public int emCardType; // å¡ç±»åž‹,对应 NET_ECK_IC_CARD_USER_TYPE public int bFlag; // è¿‡è½¦æ ‡è®°æ˜¯å¦æœ‰æ•ˆ public int emFlag; // è¿‡è½¦æ ‡è®°ï¼Œå¯¹åº” NET_ECK_CAR_PASS_FLAG public NET_IN_PARKING_CONTROL_START_FIND_PARAM() { this.dwSize = this.size(); } } // CLIENT_ParkingControlStartFind接å£è¾“出å‚æ•° public static class NET_OUT_PARKING_CONTROL_START_FIND_PARAM extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int dwTotalCount; // 符åˆæ¤æ¬¡æŸ¥è¯¢æ¡ä»¶çš„结果总æ¡æ•° public NET_OUT_PARKING_CONTROL_START_FIND_PARAM(){ this.dwSize = this.size(); } } // CLIENT_ParkingControlDoFind接å£è¾“å…¥å‚æ•°******************* public static class NET_IN_PARKING_CONTROL_DO_FIND_PARAM extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int dwFileCount; // 当å‰æƒ³æŸ¥è¯¢çš„记录æ¡æ•° public NET_IN_PARKING_CONTROL_DO_FIND_PARAM(){ this.dwSize = this.size(); } } // CLIENT_ParkingControlDoFind接å£è¾“出å‚æ•° public static class NET_OUT_PARKING_CONTROL_DO_FIND_PARAM extends SdkStructure{ public int dwSize; // ç»“æž„ä½“å¤§å° public Pointer pstuRecordList; // 记录列表,用户分é…内å˜,对应NET_CAR_PASS_ITEM[],大å°nMaxRecordNum个NET_CAR_PASS_ITEM public int nMaxRecordNum; // 列表记录数 public int nRetRecordNum; // 查询到的记录æ¡æ•°,当查询到的æ¡æ•°å°äºŽæƒ³æŸ¥è¯¢çš„æ¡æ•°æ—¶,æŸ¥è¯¢ç»“æŸ public NET_OUT_PARKING_CONTROL_DO_FIND_PARAM(){ this.dwSize = this.size(); } } // CLIENT_ParkingControlAttachParkInfo()接å£è¾“å…¥å‚æ•° public static class NET_IN_PARK_INFO_PARAM extends SdkStructure { public int dwSize; public NET_PARK_INFO_FILTER stuFilter; public Callback cbCallBack; // æ•°æ®å›žè°ƒå‡½æ•°,fParkInfoCallBack 回调 public Pointer dwUser; // 用户定义å‚æ•° public NET_IN_PARK_INFO_PARAM() { this.dwSize = this.size(); } } // CLIENT_ParkingControlAttachParkInfo()接å£è¾“出å‚æ•° public static class NET_OUT_PARK_INFO_PARAM extends SdkStructure { public int dwSize; public NET_OUT_PARK_INFO_PARAM() { this.dwSize = this.size(); } } // 车ä½æ£€æµ‹å™¨ä¿¡æ¯æŸ¥è¯¢æ¡ä»¶ public static class NET_PARK_INFO_FILTER extends SdkStructure { public int dwSize; public int dwNum; // 车ä½æ£€æµ‹å™¨ç±»åž‹æ•°é‡ public int[] emType = new int[NET_ECK_PARK_DETECTOR_TYPE.NET_ECK_PARK_DETECTOR_TYPE_ALL]; // 车ä½æ£€æµ‹å™¨ç±»åž‹ public NET_PARK_INFO_FILTER() { this.dwSize = this.size(); } } // 车ä½æ£€æµ‹å™¨ç±»åž‹ public static class NET_ECK_PARK_DETECTOR_TYPE extends SdkStructure { public static final int NET_ECK_PARK_DETECTOR_TYPE_SONIC = 0; // 超声波探测器 public static final int NET_ECK_PARK_DETECTOR_TYPE_CAMERA = 1; // 相机检测器 public static final int NET_ECK_PARK_DETECTOR_TYPE_ALL = 2; } // 车ä½ä¿¡æ¯ public static class NET_PARK_INFO_ITEM extends SdkStructure { public int dwSize; public byte[] szParkNo = new byte[NET_COMMON_STRING_32]; // 车ä½å· public int emState; // 车ä½çŠ¶æ€,对应 NET_ECK_PARK_STATE public int dwScreenIndex; // 车ä½å·æ˜¾ç¤ºå¯¹åº”的诱导å±åˆ†å±å· public int dwFreeParkNum; // å±å·æ˜¾ç¤ºçš„当å‰ç©ºä½™è½¦ä½æ•°ç›® public NET_PARK_INFO_ITEM(){ this.dwSize = this.size(); } } // 智能åœè½¦ç³»ç»Ÿè½¦ä½çŠ¶æ€ public static class NET_ECK_PARK_STATE extends SdkStructure { public static final int NET_ECK_PARK_STATE_UNKOWN = 0; public static final int NET_ECK_PARK_STATE_PARK = 1; // 车ä½æœ‰è½¦ public static final int NET_ECK_PARK_STATE_NOPARK = 2; // 车ä½æ— 车 } // 智能åœè½¦ç³»ç»Ÿå‡ºå…¥å£æœºè®¾ç½®è½¦ä½ä¿¡æ¯ å‚æ•° NET_CTRL_ECK_SET_PARK_INFO public static class NET_CTRL_ECK_SET_PARK_INFO_PARAM extends SdkStructure { public int dwSize; public int nScreenNum; // å±æ•°é‡, ä¸è¶…过 ECK_SCREEN_NUM_MAX public int[] nScreenIndex = new int[ECK_SCREEN_NUM_MAX]; // å±å·, æ¯ä¸ªå…ƒç´ 表示å±åºå· public int[] nFreeParkNum = new int[ECK_SCREEN_NUM_MAX]; // 对应å±ç®¡ç†ä¸‹çš„空余车ä½æ•° // é•¿åº¦å’Œä¸‹æ ‡ä¸ŽnScreenIndex一致,æ¯ä¸ªå…ƒç´ 表示对应å±å·ä¸‹çš„ç©ºä½™è½¦ä½ public NET_CTRL_ECK_SET_PARK_INFO_PARAM(){ this.dwSize = this.size(); } } // CLIENT_PowerControl接å£è¾“å…¥å‚æ•°(电视墙电æºæŽ§åˆ¶) public static class NET_IN_WM_POWER_CTRL extends SdkStructure { public int dwSize; public int nMonitorWallID; // 电视墙åºå· public String pszBlockID; // 区å—ID, NULL/""-æ‰€æœ‰åŒºå— public int nTVID; // 显示å•å…ƒåºå·, -1表示区å—ä¸æ‰€æœ‰æ˜¾ç¤ºå•å…ƒ public int bPowerOn; // 是å¦æ‰“å¼€ç”µæº public NET_IN_WM_POWER_CTRL() { this.dwSize = this.size(); } } // CLIENT_PowerControl接å£è¾“出å‚æ•°(电视墙电æºæŽ§åˆ¶) public static class NET_OUT_WM_POWER_CTRL extends SdkStructure { public int dwSize; public NET_OUT_WM_POWER_CTRL() { this.dwSize = this.size(); } } // CLIENT_LoadMonitorWallCollection接å£è¾“å…¥å‚æ•°(载入电视墙预案) public static class NET_IN_WM_LOAD_COLLECTION extends SdkStructure { public int dwSize; public int nMonitorWallID; // 电视墙åºå· public Pointer pszName; // 预案å称 public NET_IN_WM_LOAD_COLLECTION() { this.dwSize = this.size(); } } // CLIENT_LoadMonitorWallCollection接å£è¾“出å‚æ•°(载入电视墙预案) public static class NET_OUT_WM_LOAD_COLLECTION extends SdkStructure { public int dwSize; public NET_OUT_WM_LOAD_COLLECTION() { this.dwSize = this.size(); } } // CLIENT_SaveMonitorWallCollection接å£è¾“å…¥å‚æ•°(ä¿å˜ç”µè§†å¢™é¢„案) public static class NET_IN_WM_SAVE_COLLECTION extends SdkStructure { public int dwSize; public int nMonitorWallID; // 电视墙åºå· public Pointer pszName; // 预案å称 public Pointer pszControlID; // 控制id public byte[] bReserverd=new byte[4]; // ä¿ç•™å—节,用于å—èŠ‚å¯¹é½ public int emType; // 预案类型 EM_SAVE_COLLECTION_TYPE public NET_IN_WM_SAVE_COLLECTION() { this.dwSize = this.size(); } } // CLIENT_SaveMonitorWallCollection接å£è¾“出å‚æ•°(ä¿å˜ç”µè§†å¢™é¢„案) public static class NET_OUT_WM_SAVE_COLLECTION extends SdkStructure { public int dwSize; public NET_OUT_WM_SAVE_COLLECTION() { this.dwSize = this.size(); } } // åˆ†å‰²æ¨¡å¼ public static class NET_SPLIT_MODE extends SdkStructure { public static final int NET_SPLIT_1 = 1; // 1ç”»é¢ public static final int NET_SPLIT_2 = 2; // 2ç”»é¢ public static final int NET_SPLIT_4 = 4; // 4ç”»é¢ public static final int NET_SPLIT_5 = 5; // 5ç”»é¢ public static final int NET_SPLIT_6 = 6; // 6ç”»é¢ public static final int NET_SPLIT_8 = 8; // 8ç”»é¢ public static final int NET_SPLIT_9 = 9; // 9ç”»é¢ public static final int NET_SPLIT_12 = 12; // 12ç”»é¢ public static final int NET_SPLIT_16 = 16; // 16ç”»é¢ public static final int NET_SPLIT_20 = 20; // 20ç”»é¢ public static final int NET_SPLIT_25 = 25; // 25ç”»é¢ public static final int NET_SPLIT_36 = 36; // 36ç”»é¢ public static final int NET_SPLIT_64 = 64; // 64ç”»é¢ public static final int NET_SPLIT_144 = 144; // 144ç”»é¢ public static final int NET_PIP_1 = NET_SPLIT_PIP_BASE + 1; // ç”»ä¸ç”»æ¨¡å¼, 1个全å±å¤§ç”»é¢+1个å°ç”»é¢çª—å£ public static final int NET_PIP_3 = NET_SPLIT_PIP_BASE + 3; // ç”»ä¸ç”»æ¨¡å¼, 1个全å±å¤§ç”»é¢+3个å°ç”»é¢çª—å£ public static final int NET_SPLIT_FREE = NET_SPLIT_PIP_BASE * 2; // 自由开窗模å¼,å¯ä»¥è‡ªç”±åˆ›å»ºã€å…³é—窗å£,自由设置窗å£ä½ç½®å’ŒZè½´æ¬¡åº public static final int NET_COMPOSITE_SPLIT_1 = NET_SPLIT_PIP_BASE * 3 + 1;// èžåˆå±æˆå‘˜1分割 public static final int NET_COMPOSITE_SPLIT_4 = NET_SPLIT_PIP_BASE * 3 + 4;// èžåˆå±æˆå‘˜4分割 public static final int NET_SPLIT_3 = 10; // 3ç”»é¢ public static final int NET_SPLIT_3B = 11; // 3ç”»é¢å€’å“ public static final int NET_SPLIT_4A = NET_SPLIT_PIP_BASE * 4 + 1; // 4个画é¢, 一个大画é¢åœ¨å·¦è¾¹ï¼Œ3个å°ç”»é¢åœ¨å³è¾¹æŽ’æˆä¸€åˆ— } // 区å—窗å£ä¿¡æ¯ public static class NET_WINDOW_COLLECTION extends SdkStructure { public int dwSize; public int nWindowID; // 窗å£ID public int bWndEnable; // 窗å£æ˜¯å¦æœ‰æ•ˆ public DH_RECT stuRect; // 窗å£åŒºåŸŸ, 自由分割模å¼ä¸‹æœ‰æ•ˆ public int bDirectable; // åæ ‡æ˜¯å¦æ»¡è¶³ç›´é€šæ¡ä»¶ public int nZOrder; // 窗å£Zæ¬¡åº public int bSrcEnable; // 显示æºæ˜¯å¦æœ‰æ•ˆ public byte[] szDeviceID = new byte[NET_DEV_ID_LEN_EX]; // 设备ID public int nVideoChannel; // 视频通é“å· public int nVideoStream; // 视频ç æµç±»åž‹ public int nAudioChannel; // éŸ³é¢‘é€šé“ public int nAudioStream; // 音频ç æµç±»åž‹ public int nUniqueChannel; // 设备内统一编å·çš„唯一通é“å· public NET_MONITOR_WALL_DEVICE_INFO stuDeviceInfo; // è®¾å¤‡è¯¦ç»†ä¿¡æ¯ public int nInterval; // 轮巡时间间隔,å•ä½ç§’ (窗å£è½®å·¡æœ‰æ•ˆï¼Œå¦åˆ™å¿½ç•¥) public NET_REMOTE_DEVICE stuDeviceInfoEx = new NET_REMOTE_DEVICE(); // 设备详细信æ¯æ‰©å±• public NET_WINDOW_COLLECTION() { this.dwSize = this.size(); } } // 分割窗å£OSDä¿¡æ¯ public static class NET_SPLIT_OSD extends SdkStructure { public int dwSize; public Boolean bEnable; // 使能 public NET_COLOR_RGBA stuFrontColor; // å‰æ™¯é¢œè‰² public NET_COLOR_RGBA stuBackColor; // 背景颜色 public DH_RECT stuFrontRect; // å‰æ™¯åŒºåŸŸ public DH_RECT stuBackRect; // 背景区域 public Boolean bRoll; // 是å¦æ»šåŠ¨æ˜¾ç¤º, åªå¯¹æ–‡æœ¬æœ‰æ•ˆ public byte byRollMode; // 滚动模å¼, åªå¯¹æ–‡æœ¬æœ‰æ•ˆ, 0-从左往å³, 1-从å³å¾€å·¦, 2-从上往下滚动, 3-从下往上滚动 public byte byRoolSpeed; // 滚动速率, åªå¯¹æ–‡æœ¬æœ‰æ•ˆ, 0~4, 数值越大滚动越快 public byte byFontSize; // å—体大å°, åªå¯¹æ–‡æœ¬æœ‰æ•ˆ public byte byTextAlign; // 对é½æ–¹å¼, 0-é å·¦, 1-å±…ä¸, 2-é å³ public byte byType; // OSD类型, 0-文本, 1-å›¾æ ‡, 2-时间 public byte[] Reserved=new byte[3]; // ä¿ç•™å—节 public byte[] szContent=new byte[MAX_PATH]; // OSD内容 // è‹¥ç±»åž‹ä¸ºå›¾æ ‡, å†…å®¹ä¸ºå›¾æ ‡å称 // 若类型为Time,内容为â€Dateâ€(日期),â€Weekâ€(星期),â€Timeâ€(时间),â€\nâ€(æ¢è¡Œ)的自由组åˆã€‚ // 例如:ä¸åŒè¡Œæ˜¾ç¤ºï¼Œéœ€è¦å°†æ¤å—段填为"Date\nTime",在å±å¹•ä¸Šå°±ä¼šæ˜¾ç¤º // 2018å¹´4月23æ—¥ // 16:49:15 // åŒè¡Œæ˜¾ç¤ºï¼Œéœ€è¦å°†æ¤å—段填为"DateTime",在å±å¹•ä¸Šå°±ä¼šæ˜¾ç¤º // 2018å¹´4月23æ—¥16:49:15 public float fPitch; // å—符间è·, 0.0 ~ 5.0 public byte[] szFontType=new byte[NET_COMMON_STRING_64]; // å—体类型 public byte[] szPattern=new byte[8]; // æ–‡æœ¬æ˜¾ç¤ºæ¨¡å¼ Row:横排(默认) Column:竖排 public byte[] szContentEx=new byte[1024]; // OSD内容 }; // æ‹¼æŽ¥åŒºåº•å›¾ä¿¡æ¯ public static class NET_SCREEEN_BACKGROUD extends SdkStructure { public Boolean bEnable; // 底图是å¦å¼€å¯ public byte[] szName=new byte[130]; // 底图å称,底图是已ç»ä¸Šä¼ 的文件,ä¸å¸¦è·¯å¾„å称 public byte[] byReserved=new byte[130]; // ä¿ç•™å—节用 } ; // 区å—æ”¶è— public static class NET_BLOCK_COLLECTION extends SdkStructure { public int dwSize; public int emSplitMode; // 分割模å¼ï¼Œå¯¹åº” NET_SPLIT_MODE public NET_WINDOW_COLLECTION[] stuWnds = new NET_WINDOW_COLLECTION[NET_MAX_SPLIT_WINDOW]; // 窗å£ä¿¡æ¯æ•°ç»„ public int nWndsCount; // 窗å£æ•°é‡ public byte[] szName = new byte[NET_DEVICE_NAME_LEN]; // 收è—夹å称 public int nScreen; // 输出通é“å·, åŒ…æ‹¬æ‹¼æŽ¥å± public byte[] szCompositeID = new byte[NET_DEV_ID_LEN_EX]; // 拼接å±ID public Pointer pstuWndsEx; // 窗å£ä¿¡æ¯æ•°ç»„指针 NET_WINDOW_COLLECTION[] , 由用户分é…内å˜. 当stuWnds数组大å°ä¸å¤Ÿç”¨æ—¶å¯ä»¥ä½¿ç”¨ public int nMaxWndsCountEx; // 最大窗å£æ•°é‡, 用户填写. pstuWndsExæ•°ç»„çš„å…ƒç´ ä¸ªæ•° public int nRetWndsCountEx; // 返回窗å£æ•°é‡ public int nSplitOsdCount; // OSD的个数 public NET_SPLIT_OSD[] stuSplitOsd=new NET_SPLIT_OSD[20]; // 拼接区OSDå åŠ ä¿¡æ¯ï¼Œ public NET_SCREEEN_BACKGROUD stuScreenBackground; // 拼接区底图信æ¯ï¼Œç›®å‰ä»…预案获å–时使用 public NET_BLOCK_COLLECTION() { this.dwSize = this.size(); for (int i = 0; i < stuWnds.length; ++i) { stuWnds[i] = new NET_WINDOW_COLLECTION(); } } } // 电视墙显示å•å…ƒ public static class NET_MONITORWALL_OUTPUT extends SdkStructure { public int dwSize; public byte[] szDeviceID = new byte[NET_DEV_ID_LEN]; // 设备ID, 本机时为"" public int nChannel; // 通é“å· public byte[] szName = new byte[NET_DEV_NAME_LEN]; // å±å¹•å称 public boolean bIsVirtual; // 是å¦æ˜¯è™šæ‹Ÿå±ï¼ˆè™šæ‹Ÿå±è¡¨ç¤ºåœ¨æœ¬è®¾å¤‡ä¸Šä¸å˜åœ¨çš„å±ï¼‰TRUE:è™šæ‹Ÿå± FALSE:éžè™šæ‹Ÿå± public byte[] szAddress=new byte[40]; // 归属设备地å€IP public NET_MONITOR_WALL_OUT_MODE_INFO stuOutMode; // 输出模å¼ä¿¡æ¯ public NET_MONITORWALL_OUTPUT() { this.dwSize = this.size(); } } // ç”µè§†å¢™æ˜¾ç¤ºåŒºå— public static class NET_MONITORWALL_BLOCK extends SdkStructure { public int dwSize; public byte[] szName = new byte[NET_DEV_NAME_LEN]; // 区å—å称 public byte[] szCompositeID = new byte[NET_DEV_ID_LEN]; // 拼接å±ID public byte[] szControlID = new byte[NET_DEV_ID_LEN]; // 控制ID public int nSingleOutputWidth; // å•ä¸ªæ˜¾ç¤ºå•å…ƒæ‰€å çš„ç½‘æ ¼åˆ—æ•° public int nSingleOutputHeight; // å•ä¸ªæ˜¾ç¤ºå•å…ƒæ‰€å çš„ç½‘æ ¼è¡Œæ•° public DH_RECT stuRect; // 区域åæ ‡ public NET_TSECT_WEEK_DAY[] stuPowerSchedule = (NET_TSECT_WEEK_DAY[])new NET_TSECT_WEEK_DAY().toArray(NET_TSCHE_DAY_NUM); // 开机时间表, 第一维å„å…ƒç´ è¡¨ç¤ºå‘¨æ—¥~周å…和节å‡æ—¥ public Pointer pstuOutputs; // 显示å•å…ƒæ•°ç»„ NET_MONITORWALL_OUTPUT[] , 用户分é…å†…å˜ public int nMaxOutputCount; // 显示å•å…ƒæ•°ç»„大å°, 用户填写 public int nRetOutputCount; // 返回的显示å•å…ƒæ•°é‡ public byte[] szBlockType = new byte[NET_COMMON_STRING_32]; // 显示å•å…ƒç»„类型,为支æŒç”±æŽ¥æ”¶å¡ç»„æˆå•å…ƒçš„å°é—´è·LED区å—è€Œå¢žåŠ è¯¥å—段,其他类型 public int nOutputDelay; // 输出延迟,å•ä½ï¼šæ¯«ç§’ public NET_MONITORWALL_BLOCK() { this.dwSize = this.size(); } } public static class NET_TSECT_WEEK_DAY extends SdkStructure { public NET_TSECT[] stuPowerSchedule = (NET_TSECT[])new NET_TSECT().toArray(NET_TSCHE_SEC_NUM); } // 电视墙é…ç½® public static class NET_MONITORWALL extends SdkStructure { public int dwSize; public byte[] szName = new byte[NET_DEV_NAME_LEN]; // å称 public int nGridLine; // ç½‘æ ¼è¡Œæ•° public int nGridColume; // ç½‘æ ¼åˆ—æ•° public Pointer pstuBlocks; // 显示区å—数组 NET_MONITORWALL_BLOCK[] , 用户分é…å†…å˜ public int nMaxBlockCount; // 显示区å—数组大å°, 用户填写 public int nRetBlockCount; // 返回的显示区å—æ•°é‡ public int bDisable; // 是å¦ç¦ç”¨, 0-该电视墙有效, 1-è¯¥ç”µè§†å¢™æ— æ•ˆ public byte[] szDesc = new byte[NET_COMMON_STRING_256]; // 电视墙æè¿°ä¿¡æ¯ public NET_MONITORWALL() { this.dwSize = this.size(); } } // 电视墙预案 public static class NET_MONITORWALL_COLLECTION extends SdkStructure { public int dwSize; public byte[] szName = new byte[NET_DEVICE_NAME_LEN]; // 电视墙预案å称 public NET_BLOCK_COLLECTION[] stuBlocks = new NET_BLOCK_COLLECTION[NET_MAX_BLOCK_NUM];// 区å—数组 public int nBlocksCount; // 区å—æ•°é‡ public byte[] szControlID = new byte[NET_DEV_ID_LEN_EX]; // 控制ID public NET_MONITORWALL stuMonitorWall; // 电视墙é…ç½® public int emType; // 预案类型 public byte[] byReserved=new byte[4]; // ä¿ç•™å—节用,于å—èŠ‚å¯¹é½ public NET_MONITORWALL_COLLECTION() { this.dwSize = this.size(); for(int i = 0; i < NET_MAX_BLOCK_NUM; i++) { stuBlocks[i] = new NET_BLOCK_COLLECTION(); } } } // CLIENT_GetMonitorWallCollections接å£è¾“å…¥å‚æ•°(获å–电视墙预案信æ¯) public static class NET_IN_WM_GET_COLLECTIONS extends SdkStructure { public int dwSize; public int nMonitorWallID; // 电视墙ID public NET_IN_WM_GET_COLLECTIONS() { this.dwSize = this.size(); } } // CLIENT_GetMonitorWallCollections接å£è¾“出å‚æ•°(获å–电视墙预案信æ¯) public static class NET_OUT_WM_GET_COLLECTIONS extends SdkStructure { public int dwSize; public Pointer pCollections; // 电视墙预案数组, 对应 NET_MONITORWALL_COLLECTION 指针 public int nMaxCollectionsCount; // ç”µè§†å¢™é¢„æ¡ˆæ•°ç»„å¤§å° public int nCollectionsCount; // ç”µè§†å¢™é¢„æ¡ˆæ•°é‡ public NET_OUT_WM_GET_COLLECTIONS() { this.dwSize = this.size(); } } // 级è”æƒé™éªŒè¯ä¿¡æ¯ public static class SDK_CASCADE_AUTHENTICATOR extends SdkStructure { public int dwSize; public byte[] szUser = new byte[NET_NEW_USER_NAME_LENGTH]; // 用户å public byte[] szPwd = new byte[NET_NEW_USER_PSW_LENGTH]; // 密ç public byte[] szSerialNo = new byte[NET_SERIALNO_LEN]; // 设备åºåˆ—å· public SDK_CASCADE_AUTHENTICATOR() { this.dwSize = this.size(); } } public static class EM_SRC_PUSHSTREAM_TYPE extends SdkStructure { public static final int EM_SRC_PUSHSTREAM_AUTO = 0; // è®¾å¤‡ç«¯æ ¹æ®ç æµå¤´è‡ªåŠ¨è¯†åˆ«ï¼Œé»˜è®¤å€¼ public static final int EM_SRC_PUSHSTREAM_HIKVISION = 1; // ç§æœ‰ç æµ public static final int EM_SRC_PUSHSTREAM_PS = 2; // PSæµ public static final int EM_SRC_PUSHSTREAM_TS = 3; // TSæµ public static final int EM_SRC_PUSHSTREAM_SVAC = 4; // SVACç æµ } // æ˜¾ç¤ºæº public static class NET_SPLIT_SOURCE extends SdkStructure { public int dwSize; public int bEnable; // 使能 public byte[] szIp = new byte[NET_MAX_IPADDR_LEN]; // IP, 空表示没有设置 public byte[] szUser = new byte[NET_USER_NAME_LENGTH]; // 用户å, 建议使用szUserEx public byte[] szPwd = new byte[NET_USER_PSW_LENGTH]; // 密ç , 建议使用szPwdEx public int nPort; // ç«¯å£ public int nChannelID; // 通é“å· public int nStreamType; // 视频ç æµ, -1-自动, 0-主ç æµ, 1-è¾…ç æµ1, 2-è¾…ç æµ2, 3-è¾…ç æµ3, 4-snap, 5-预览 public int nDefinition; // 清晰度, 0-æ ‡æ¸…, 1-高清 public int emProtocol; // å议类型,对应 NET_DEVICE_PROTOCOL public byte[] szDevName = new byte[NET_DEVICE_NAME_LEN]; // 设备å称 public int nVideoChannel; // 视频输入通é“æ•° public int nAudioChannel; // 音频输入通é“æ•° //-------------------------------------------------------------------------------------- // 以下åªå¯¹è§£ç 器有效 public int bDecoder; // 是å¦æ˜¯è§£ç 器 public byte byConnType; // -1: auto, 0:TCPï¼›1:UDPï¼›2ï¼šç»„æ’ public byte byWorkMode; // 0:直连;1ï¼šè½¬å‘ public short wListenPort; // 指示侦å¬æœåŠ¡çš„端å£,转å‘时有效; byConnType为组æ’æ—¶,则作为多æ’ç«¯å£ public byte[] szDevIpEx = new byte[NET_MAX_IPADDR_OR_DOMAIN_LEN]; // szDevIp扩展,å‰ç«¯DVRçš„IP地å€(å¯ä»¥è¾“入域å) public byte bySnapMode; // 抓图模å¼(nStreamType==4时有效) 0:表示请求一帧,1:表示定时å‘é€è¯·æ±‚ public byte byManuFactory; // ç›®æ ‡è®¾å¤‡çš„ç”Ÿäº§åŽ‚å•†, 具体å‚考EM_IPC_TYPEç±» public byte byDeviceType; // ç›®æ ‡è®¾å¤‡çš„è®¾å¤‡ç±»åž‹, 0:IPC public byte byDecodePolicy; // ç›®æ ‡è®¾å¤‡çš„è§£ç ç–ç•¥, 0:å…¼å®¹ä»¥å‰ // 1:实时ç‰çº§é«˜ 2:实时ç‰çº§ä¸ // 3:实时ç‰çº§ä½Ž 4:默认ç‰çº§ // 5:æµç•…ç‰çº§é«˜ 6:æµç•…ç‰çº§ä¸ // 7:æµç•…ç‰çº§ä½Ž //-------------------------------------------------------------------------------------- public int dwHttpPort; // Http端å£å·, 0-65535 public int dwRtspPort; // Rtsp端å£å·, 0-65535 public byte[] szChnName = new byte[NET_DEVICE_NAME_LEN]; // 远程通é“å称, åªæœ‰è¯»å–到的å称ä¸ä¸ºç©ºæ—¶æ‰å¯ä»¥ä¿®æ”¹è¯¥é€šé“çš„å称 public byte[] szMcastIP = new byte[NET_MAX_IPADDR_LEN]; // 多æ’IP地å€, byConnType为组æ’时有效 public byte[] szDeviceID = new byte[NET_DEV_ID_LEN_EX]; // 设备ID, ""-null, "Local"-本地通é“, "Remote"-远程通é“, 或者填入具体的RemoteDeviceä¸çš„设备ID public int bRemoteChannel; // 是å¦è¿œç¨‹é€šé“(åªè¯») public int nRemoteChannelID; // 远程通é“ID(åªè¯»), bRemoteChannel=TRUE时有效 public byte[] szDevClass = new byte[NET_DEV_TYPE_LEN]; // 设备类型, 如IPC, DVR, NVRç‰ public byte[] szDevType = new byte[NET_DEV_TYPE_LEN]; // 设备具体型å·, 如IPC-HF3300 public byte[] szMainStreamUrl = new byte[MAX_PATH]; // 主ç æµurl地å€, byManuFactory为NET_IPC_OTHER时有效 public byte[] szExtraStreamUrl = new byte[MAX_PATH]; // è¾…ç æµurl地å€, byManuFactory为NET_IPC_OTHER时有效 public int nUniqueChannel; // 设备内统一编å·çš„唯一通é“å·, åªè¯» public SDK_CASCADE_AUTHENTICATOR stuCascadeAuth; // 级è”认è¯ä¿¡æ¯, 设备ID为"Local/Cascade/SerialNo"时有效, å…¶ä¸SerialNo是设备åºåˆ—å· public int nHint; // 0-普通视频æº, 1-报è¦è§†é¢‘æº public int nOptionalMainUrlCount; // 备用主ç æµåœ°å€æ•°é‡ public byte[] szOptionalMainUrls = new byte[NET_MAX_OPTIONAL_URL_NUM * MAX_PATH]; // 备用主ç æµåœ°å€åˆ—表 public int nOptionalExtraUrlCount; // 备用辅ç æµåœ°å€æ•°é‡ public byte[] szOptionalExtraUrls = new byte[NET_MAX_OPTIONAL_URL_NUM * MAX_PATH]; // 备用辅ç æµåœ°å€åˆ—表 //-------------------------------------------------------------------------------------- //åè®®åŽç»æ·»åŠ å—段 public int nInterval; // 轮巡时间间隔 å•ä½ï¼šç§’ public byte[] szUserEx = new byte[NET_NEW_USER_NAME_LENGTH];// 用户å public byte[] szPwdEx = new byte[NET_NEW_USER_PSW_LENGTH]; // 密ç public int emPushStream; // 推æµæ–¹å¼çš„ç æµç±»åž‹,åªæœ‰byConnType为TCP-Push或UDP-Pushæ‰æœ‰è¯¥å—段,对应 EM_SRC_PUSHSTREAM_TYPE public NET_RECT stuSRect; // 视频æºåŒºåŸŸ,当szDeviceIDä¸ä¸ºç©ºæ—¶æœ‰æ•ˆ public NET_SOURCE_STREAM_ENCRYPT stuSourceStreamEncrypt; // ç æµåŠ å¯†æ–¹å¼ public byte[] szSerialNo=new byte[NET_SERIALNO_LEN]; // 设备åºåˆ—å·,当连接设备的å议类型为云ç¿æŽ¥å…¥ï¼Œè¯¥å—段必填 public byte[] szCaption=new byte[128]; // 通é“备注,å¯ç”¨äºŽåœ¨OSD显示 public int bUserStreamUrlEx; // 是å¦ä½¿ç”¨szMainStreamUrlEx/szExtraStreamUrlExå—段 public byte[] szMainStreamUrlEx=new byte[1024]; // 主ç æµurl地å€, byManuFactory为DH_IPC_OTHER时有效 public byte[] szExtraStreamUrlEx=new byte[1024]; // è¾…ç æµurl地å€, byManuFactory为DH_IPC_OTHER时有效 public NET_SPLIT_SOURCE() { this.dwSize = this.size(); } } // 显示æºç æµåŠ å¯†æ–¹å¼ public static class NET_SOURCE_STREAM_ENCRYPT extends SdkStructure { public int emEncryptLevel; // åŠ å¯†ç‰çº§ public int emAlgorithm; // åŠ å¯†ç®—æ³• public int emExchange; // 密钥交æ¢æ–¹å¼ public Boolean bUnvarnished; // MTS使用场景,true为交互MIKEYåŽè®©æ•°æ®ä¸è¿›è¡ŒåŠ /解密 public byte[] szPSK=new byte[1032]; // 密钥 public byte[] byReserved=new byte[1024]; // ä¿ç•™å—节 }; // 矩阵åå¡ä¿¡æ¯ public static class NET_MATRIX_CARD extends SdkStructure { public int dwSize; public int bEnable; // 是å¦æœ‰æ•ˆ public int dwCardType; // åå¡ç±»åž‹ public byte[] szInterface = new byte[NET_MATRIX_INTERFACE_LEN]; // ä¿¡å·æŽ¥å£ç±»åž‹, "CVBS", "VGA", "DVI"... public byte[] szAddress = new byte[NET_MAX_IPADDR_OR_DOMAIN_LEN]; // 设备ip或域å, æ— ç½‘ç»œæŽ¥å£çš„åå¡å¯ä»¥ä¸ºç©º public int nPort; // 端å£å·, æ— ç½‘ç»œæŽ¥å£çš„åå¡å¯ä»¥ä¸º0 public int nDefinition; // 清晰度, 0=æ ‡æ¸…, 1=高清 public int nVideoInChn; // 视频输入通é“æ•° public int nAudioInChn; // 音频输入通é“æ•° public int nVideoOutChn; // 视频输出通é“æ•° public int nAudioOutChn; // 音频输出通é“æ•° public int nVideoEncChn; // 视频编ç 通é“æ•° public int nAudioEncChn; // 音频编ç 通é“æ•° public int nVideoDecChn; // 视频解ç 通é“æ•° public int nAudioDecChn; // 音频解ç 通é“æ•° public int nStauts; // 状æ€: -1-未知, 0-æ£å¸¸, 1-æ— å“应, 2-网络掉线, 3-冲çª, 4-æ£åœ¨å‡çº§, 5-链路状æ€å¼‚常, 6-åæ¿èƒŒæ¿æœªæ’好, 7-程åºç‰ˆæœ¬å‡ºé”™ public int nCommPorts; // 串å£æ•° public int nVideoInChnMin; // 视频输入通é“å·æœ€å°å€¼ public int nVideoInChnMax; // 视频输入通é“å·æœ€å¤§å€¼ public int nAudioInChnMin; // 音频输入通é“å·æœ€å°å€¼ public int nAudioInChnMax; // 音频输入通é“å·æœ€å¤§å€¼ public int nVideoOutChnMin; // 视频输出通é“å·æœ€å°å€¼ public int nVideoOutChnMax; // 视频输出通é“å·æœ€å¤§å€¼ public int nAudioOutChnMin; // 音频输出通é“å·æœ€å°å€¼ public int nAudioOutChnMax; // 音频输出通é“å·æœ€å¤§å€¼ public int nVideoEncChnMin; // 视频编ç 通é“å·æœ€å°å€¼ public int nVideoEncChnMax; // 视频编ç 通é“å·æœ€å¤§å€¼ public int nAudioEncChnMin; // 音频编ç 通é“å·æœ€å°å€¼ public int nAudioEncChnMax; // 音频编ç 通é“å·æœ€å¤§å€¼ public int nVideoDecChnMin; // 视频解ç 通é“å·æœ€å°å€¼ public int nVideoDecChnMax; // 视频解ç 通é“å·æœ€å¤§å€¼ public int nAudioDecChnMin; // 音频解ç 通é“å·æœ€å°å€¼ public int nAudioDecChnMax; // 音频解ç 通é“å·æœ€å¤§å€¼ public int nCascadeChannels; // 级è”通é“æ•° public int nCascadeChannelBitrate; // 级è”通é“带宽, å•ä½Mbps public int nAlarmInChnCount; // 报è¦è¾“入通é“æ•° public int nAlarmInChnMin; // 报è¦è¾“入通é“å·æœ€å°å€¼ public int nAlarmInChnMax; // 报è¦è¾“入通é“å·æœ€å¤§å€¼ public int nAlarmOutChnCount; // 报è¦è¾“出通é“æ•° public int nAlarmOutChnMin; // 报è¦è¾“入通é“å·æœ€å°å€¼ public int nAlarmOutChnMax; // 报è¦è¾“入通é“å·æœ€å¤§å€¼ public int nVideoAnalyseChnCount; // 智能分æžé€šé“æ•° public int nVideoAnalyseChnMin; // 智能分æžé€šé“å·æœ€å°å€¼ public int nVideoAnalyseChnMax; // 智能分æžé€šé“å·æœ€å¤§å€¼ public int nCommPortMin; // 串å£å·æœ€å°å€¼ public int nCommPortMax; // 串å£å·æœ€å¤§å€¼ public byte[] szVersion = new byte[NET_COMMON_STRING_32]; // ç‰ˆæœ¬ä¿¡æ¯ public NET_TIME stuBuildTime; // 编译时间 public byte[] szBIOSVersion = new byte[NET_COMMON_STRING_64]; // BIOSç‰ˆæœ¬å· public byte[] szMAC = new byte[NET_MACADDR_LEN]; // MACåœ°å€ public NET_MATRIX_CARD() { this.dwSize = this.size(); } } // 矩阵åå¡åˆ—表 public static class NET_MATRIX_CARD_LIST extends SdkStructure { public int dwSize; public int nCount; // åå¡æ•°é‡ public NET_MATRIX_CARD[] stuCards = new NET_MATRIX_CARD[NET_MATRIX_MAX_CARDS]; // åå¡åˆ—表 public NET_MATRIX_CARD_LIST() { this.dwSize = this.size(); for(int i = 0; i < NET_MATRIX_MAX_CARDS; i++) { stuCards[i] = new NET_MATRIX_CARD(); } } } // CLIENT_FindFramInfo 接å£è¾“å…¥å‚æ•° public static class NET_IN_FIND_FRAMEINFO_PRAM extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public boolean abFileName; // 文件å是å¦ä½œä¸ºæœ‰æ•ˆçš„查询æ¡ä»¶,若文件å有效,则ä¸ç”¨å¡«å……文件信æ¯ï¼ˆstRecordInfo) public byte[] szFileName = new byte[MAX_PATH]; // 文件å public NET_RECORDFILE_INFO stuRecordInfo; // æ–‡ä»¶ä¿¡æ¯ public int dwFramTypeMask; // 帧类型掩ç ,详è§â€œå¸§ç±»åž‹æŽ©ç 定义â€,FRAME_TYPE_MOTION 动检帧; FRAME_TYPE_HUMAN动检帧(人); FRAME_TYPE_VEHICLE动检帧(车) public int bSendByUTCTime; // 是å¦ä½¿ç”¨UTC时间 public NET_TIME stuStartTimeRealUTC = new NET_TIME(); // UTC开始时间 public NET_TIME stuEndTimeRealUTC = new NET_TIME(); // UTC结æŸæ—¶é—´ public NET_IN_FIND_FRAMEINFO_PRAM() { this.dwSize = this.size(); } } // CLIENT_FindFramInfo 接å£è¾“出å‚æ•° public static class NET_OUT_FIND_FRAMEINFO_PRAM extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public LLong lFindHandle; // 文件查找å¥æŸ„ public NET_OUT_FIND_FRAMEINFO_PRAM() { this.dwSize = this.size(); } } // CLIENT_FileStreamClearTags / CLIENT_FileStreamSetTags 接å£è¾“å…¥å‚æ•° public static class NET_IN_FILE_STREAM_TAGS_INFO extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nArrayCount; // æ ‡ç¾æ•°ç»„个数 public Pointer pstuTagInfo; // æ ‡ç¾æ•°ç»„,å„项内容关系为"且", 用户分é…内å˜,大å°ä¸ºsizeof( NET_FILE_STREAM_TAG_INFO )*nArrayCount public NET_IN_FILE_STREAM_TAGS_INFO() { this.dwSize = this.size(); } } // CLIENT_FileStreamClearTags / CLIENT_FileStreamSetTags 接å£è¾“出å‚æ•° public static class NET_OUT_FILE_STREAM_TAGS_INFO extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public NET_OUT_FILE_STREAM_TAGS_INFO() { this.dwSize = this.size(); } } // æ ‡ç¾æ•°ç»„ public static class NET_FILE_STREAM_TAG_INFO extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public NET_TIME stuTime; // æ ‡ç¾æ—¶é—´ public byte[] szContext = new byte[NET_COMMON_STRING_64]; // æ ‡ç¾å†…容,ä¸æ–‡å¿…须使用utf8ç¼–ç public byte[] szUserName = new byte[NET_COMMON_STRING_32]; // 用户å,ä¸æ–‡å¿…须使用utf8ç¼–ç ,EVSå¢žåŠ public byte[] szChannelName = new byte[NET_COMMON_STRING_64]; // 通é“å称,ä¸æ–‡å¿…须使用utf8ç¼–ç ,EVSå¢žåŠ public int nDuration; // æ‰“æ ‡çš„å½•åƒæŒç»æ—¶é—´ï¼Œå•ä½ç§’ public NET_FILE_STREAM_TAG_INFO() { this.dwSize = this.size(); } } // CLIENT_FileStreamGetTags 接å£è¾“å…¥å‚æ•° public static class NET_IN_FILE_STREAM_GET_TAGS_INFO extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public NET_IN_FILE_STREAM_GET_TAGS_INFO() { this.dwSize = this.size(); } } // CLIENT_FileStreamGetTags 接å£è¾“出å‚æ•° public static class NET_OUT_FILE_STREAM_GET_TAGS_INFO extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nMaxNumber; // æ ‡ç¾æ•°ç»„最大个数 public int nRetTagsCount; // å®žé™…è¿”å›žçš„æ ‡ç¾ä¿¡æ¯ä¸ªæ•° public Pointer pstuTagInfo; // æ ‡ç¾æ•°ç»„ NET_FILE_STREAM_TAG_INFO_EX public NET_OUT_FILE_STREAM_GET_TAGS_INFO() { this.dwSize = this.size(); } } // æŸ¥è¯¢åˆ°çš„æ ‡ç¾ä¿¡æ¯ public static class NET_FILE_STREAM_TAG_INFO_EX extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public NET_TIME stuTime; // æ ‡ç¾æ‰€å¯¹äºŽè§†é¢‘的时间,精确到秒 public int nMillisecond; // 毫秒 public int nSequence; // 视频åºåˆ—å· public byte[] szContext = new byte[NET_COMMON_STRING_64]; // æ ‡ç¾å†…容,ä¸æ–‡å¿…须使用utf8ç¼–ç public NET_TIME stuStartTime; // 录åƒæ–‡ä»¶å¼€å§‹æ—¶é—´ public NET_TIME stuEndTime; // 录åƒæ–‡ä»¶ç»“æŸæ—¶é—´ public int emType; // 文件类型,对应 NET_FILE_STREAM_TYPE public byte[] szUserName = new byte[NET_COMMON_STRING_32]; // 用户å,ä¸æ–‡å¿…须使用utf8ç¼–ç ,EVSå¢žåŠ public byte[] szChannelName = new byte[NET_COMMON_STRING_64]; // 通é“å称,ä¸æ–‡å¿…须使用utf8ç¼–ç ,EVSå¢žåŠ public int nDuration; // æ‰“æ ‡çš„å½•åƒæŒç»æ—¶é—´ï¼Œå•ä½ç§’ public NET_FILE_STREAM_TAG_INFO_EX() { this.dwSize = this.size(); } } // 文件类型 public static class NET_FILE_STREAM_TYPE extends SdkStructure { public static final int NET_FILE_STREAM_TYPE_UNKNOWN = 0; // 未知 public static final int NET_FILE_STREAM_TYPE_NORMAL = 1; // 普通 public static final int NET_FILE_STREAM_TYPE_ALARM = 2; // æŠ¥è¦ public static final int NET_FILE_STREAM_TYPE_DETECTION = 3; // 动检 } // 一å±å¹•çš„分割模å¼ä¿¡æ¯ï¼Œ CLIENT_GetSplitMode/CLIENT_SetSplitModeå‚æ•° public static class NET_SPLIT_MODE_INFO extends SdkStructure { public int dwSize; public int emSplitMode; // 分割模å¼, NET_SPLIT_MODE public int nGroupID; // 分组åºå· public int dwDisplayType; // 显示类型;具体è§NET_SPLIT_DISPLAY_TYPE(注释å„模å¼ä¸‹æ˜¾ç¤ºå†…容由"PicInPic"决定, å„模å¼ä¸‹æ˜¾ç¤ºå†…容按NVD旧有规则决定(å³DisChnå—段决定)。兼容,没有这一个项时,默认为普通显示类型,å³"General") public NET_SPLIT_MODE_INFO() { this.dwSize = this.size(); } } // 分割能力, CLIENT_GetSplitCaps å‚æ•° public static class NET_SPLIT_CAPS extends SdkStructure { public int dwSize; public int nModeCount; // 支æŒçš„分割模å¼æ•°é‡ public int[] emSplitMode = new int[NET_MAX_SPLIT_MODE_NUM]; // 支æŒçš„分割模å¼, è§ NET_SPLIT_MODE public int nMaxSourceCount; // 最大显示æºé…置数 public int nFreeWindowCount; // 支æŒçš„最大自由开窗数目 public int bCollectionSupported; // 是å¦æ”¯æŒåŒºå—收è—, BOOL类型,0或1 public int dwDisplayType; // 掩ç 表示多个显示类型,具体è§NET_SPLIT_DISPLAY_TYPE(注释å„模å¼ä¸‹æ˜¾ç¤ºå†…容由"PicInPic"决定, å„模å¼ä¸‹æ˜¾ç¤ºå†…容按NVD旧有规则决定(å³DisChnå—段决定)。兼容,没有这一个项时,默认为普通显示类型,å³"General") public int nPIPModeCount; // ç”»ä¸ç”»æ”¯æŒçš„分割模å¼æ•°é‡ public int[] emPIPSplitMode = new int[NET_MAX_SPLIT_MODE_NUM]; // ç”»ä¸ç”»æ”¯æŒçš„分割模å¼, è§ NET_SPLIT_MODE public int[] nInputChannels = new int[NET_SPLIT_INPUT_NUM]; // 支æŒçš„è¾“å…¥é€šé“ public int nInputChannelCount; // 支æŒçš„输入通é“个数, 0表示没有输入通é“é™åˆ¶ public int nBootModeCount; // å¯åŠ¨åˆ†å‰²æ¨¡å¼æ•°é‡ public int[] emBootMode = new int[NET_MAX_SPLIT_MODE_NUM]; // 支æŒçš„å¯åŠ¨é»˜è®¤ç”»é¢åˆ†å‰²æ¨¡å¼, è§ NET_SPLIT_MODE public NET_SPLIT_CAPS() { this.dwSize = this.size(); } } // (设置显示æº, 支æŒåŒæ—¶è®¾ç½®å¤šä¸ªçª—å£)CLIENT_SplitSetMultiSource 接å£çš„输入å‚æ•° public static class NET_IN_SPLIT_SET_MULTI_SOURCE extends SdkStructure { public int dwSize; public int emCtrlType; // 视频输出控制方å¼,è§ EM_VIDEO_OUT_CTRL_TYPE public int nChannel; // 视频输出逻辑通é“å·, emCtrlType为EM_VIDEO_OUT_CTRL_CHANNEL时有效 public String pszCompositeID; // 拼接å±ID, emCtrlType为EM_VIDEO_OUT_CTRL_COMPOSITE_ID时有效 public int bSplitModeEnable; // 是å¦æ”¹å˜åˆ†å‰²æ¨¡å¼, BOOL类型,0或1 public int emSplitMode; // 分割模å¼, bSplitModeEnable=TRUE时有效,è§ NET_SPLIT_MODE public int nGroupID; // 分割分组å·, bSplitModeEnable=TRUE时有效 public Pointer pnWindows; // 窗å£å·æ•°ç»„ int[],由用户申请内å˜ï¼Œå¤§å°ä¸ºsizeof(int)*nWindowCount public int nWindowCount; // 窗å£æ•°é‡ public Pointer pstuSources; // 视频æºä¿¡æ¯, 分别对应æ¯ä¸ªçª—å£, æ•°é‡åŒçª—å£æ•° NET_SPLIT_SOURCE[] ,由用户申请内å˜ï¼Œå¤§å°ä¸ºsizeof(NET_SPLIT_SOURCE)*nWindowCount public NET_IN_SPLIT_SET_MULTI_SOURCE() { this.dwSize = this.size(); } } // (设置显示æº, 支æŒåŒæ—¶è®¾ç½®å¤šä¸ªçª—å£) CLIENT_SplitSetMultiSource 接å£çš„输出å‚æ•° public static class NET_OUT_SPLIT_SET_MULTI_SOURCE extends SdkStructure { public int dwSize; public NET_OUT_SPLIT_SET_MULTI_SOURCE() { this.dwSize = this.size(); } } // (下ä½çŸ©é˜µåˆ‡æ¢) CLIENT_MatrixSwitch 输入å‚æ•° public static class NET_IN_MATRIX_SWITCH extends SdkStructure { public int dwSize; public int emSplitMode; // 分割模å¼,è§ NET_SPLIT_MODE public Pointer pnOutputChannels; // 输出通é“, å¯åŒæ—¶æŒ‡å®šå¤šä¸ªè¾“出通é“一起切æ¢, 内容一致 // ç”±ç”¨æˆ·ç”³è¯·å†…å˜ int[] ,大å°ä¸ºsizeof(int)*nOutputChannelCount public int nOutputChannelCount; // 输出通é“æ•° public Pointer pnInputChannels; // 输入通é“, æ¯ä¸ªåˆ†å‰²çª—å£ä¸€ä¸ªå¯¹åº”ä¸€ä¸ªè¾“å…¥é€šé“ // ç”±ç”¨æˆ·ç”³è¯·å†…å˜ int[] ,大å°ä¸ºsizeof(int)*nInputChannelCount public int nInputChannelCount; // 输入通é“æ•° public NET_IN_MATRIX_SWITCH() { this.dwSize = this.size(); } } // (下ä½çŸ©é˜µåˆ‡æ¢) CLIENT_MatrixSwitch 输出å‚æ•° public static class NET_OUT_MATRIX_SWITCH extends SdkStructure { public int dwSize; public NET_OUT_MATRIX_SWITCH() { this.dwSize = this.size(); } } // åˆ»å½•æ¨¡å¼ public static class NET_BURN_MODE extends SdkStructure { public static final int BURN_MODE_SYNC = 0; // åŒæ¥ public static final int BURN_MODE_TURN = 1; // è½®æµ public static final int BURN_MODE_CYCLE = 2; // 循环 } // 刻录æµæ ¼å¼ public static class NET_BURN_RECORD_PACK extends SdkStructure { public static final int BURN_PACK_DHAV = 0; // DHAV public static final int BURN_PACK_PS = 1; // PS public static final int BURN_PACK_ASF = 2; // ASF public static final int BURN_PACK_MP4 = 3; // MP4 public static final int BURN_PACK_TS = 4; // TS } // åˆ»å½•æ‰©å±•æ¨¡å¼ public static class NET_BURN_EXTMODE extends SdkStructure { public static final int BURN_EXTMODE_UNKNOWN = 0; // 未知 public static final int BURN_EXTMODE_NORMAL = 1; // æ£å¸¸åˆ»å½• public static final int BURN_EXTMODE_NODISK = 2; // æ— ç›˜åˆ»å½• } // (开始刻录) CLIENT_StartBurn 接å£è¾“å…¥å‚æ•° public static class NET_IN_START_BURN extends SdkStructure { public int dwSize; public int dwDevMask; // 刻录设备掩ç , 按ä½è¡¨ç¤ºå¤šä¸ªåˆ»å½•è®¾å¤‡ç»„åˆ public int[] nChannels = new int[NET_MAX_BURN_CHANNEL_NUM]; // 刻录通é“数组 public int nChannelCount; // 刻录通é“æ•° public int emMode; // 刻录模å¼,è§ NET_BURN_MODE public int emPack; // 刻录æµæ ¼å¼,è§ NET_BURN_RECORD_PACK public int emExtMode; // 刻录扩展模å¼, è§ NET_BURN_EXTMODE public NET_IN_START_BURN() { this.dwSize = this.size(); } } // (开始刻录)CLIENT_StartBurn 接å£è¾“出å‚æ•° public static class NET_OUT_START_BURN extends SdkStructure { public int dwSize; public NET_OUT_START_BURN() { this.dwSize = this.size(); } } // (打开会è¯)CLIENT_StartBurnSession 接å£è¾“å…¥å‚æ•° public static class NET_IN_START_BURN_SESSION extends SdkStructure { public int dwSize; public int nSessionID; // 会è¯ID public NET_IN_START_BURN_SESSION() { this.dwSize = this.size(); } } // (打开会è¯)CLIENT_StartBurnSession 接å£è¾“出å‚æ•° public static class NET_OUT_START_BURN_SESSION extends SdkStructure { public int dwSize; public NET_OUT_START_BURN_SESSION() { this.dwSize = this.size(); } } // CLIENT_ControlDevice接å£çš„ CTRLTYPE_CTRL_EJECT_BURNERã€CTRLTYPE_CTRL_CLOSE_BURNER ç‰ å‘½ä»¤å‚æ•° public static class NET_CTRL_BURNERDOOR extends SdkStructure { public int dwSize; public Pointer szBurnerName; // 光盘å称,如“/dev/sdaâ€, ç”¨æˆ·ç”³è¯·å†…å˜ public int bResult; // æ“作结果 public int bSafeEject; // 是å¦å®‰å…¨å¼¹å‡ºå…‰é©±, 1-弹出å‰åšæ•°æ®ä¿å˜, 0-直接弹出 public NET_CTRL_BURNERDOOR() { this.dwSize = this.size(); } } // å…‰é©±æ‰˜ç›˜çŠ¶æ€ public static class EM_NET_BURN_DEV_TRAY_TYPE extends SdkStructure { public static final int EM_NET_BURN_DEV_TRAY_TYPE_UNKNOWN = 0; // 未知 public static final int EM_NET_BURN_DEV_TRAY_TYPE_READY = 1; // 光盘就绪 public static final int EM_NET_BURN_DEV_TRAY_TYPE_OPEN = 2; // 托盘弹出 public static final int EM_NET_BURN_DEV_TRAY_TYPE_NODISK = 3; // æ— ç›˜ public static final int EM_NET_BURN_DEV_TRAY_TYPE_NOT_READY = 4; // 光盘未就绪 } // å…‰é©±ä½¿ç”¨çŠ¶æ€ public static class EM_NET_BURN_DEV_OPERATE_TYPE extends SdkStructure { public static final int EM_NET_BURN_DEV_OPERATE_TYPE_UNKNOWN = 0; // 未知 public static final int EM_NET_BURN_DEV_OPERATE_TYPE_WRITE = 1; // 执行写 public static final int EM_NET_BURN_DEV_OPERATE_TYPE_READ = 2; // 执行读 public static final int EM_NET_BURN_DEV_OPERATE_TYPE_IDLE = 3; // 空闲 } // åˆ»å½•æœºä¿¡æ¯ public static class NET_DEV_BURNING extends SdkStructure { public int dwDriverType; // 刻录驱动器类型;0:DHFS,1:DISK,2:CDRW public int dwBusType; // 总线类型;0:USB,1:1394,2:IDE, 3: SATA, 4: ESATA public int dwTotalSpace; // 总容é‡(KB) public int dwRemainSpace; // 剩余容é‡(KB) public byte[] dwDriverName = new byte[NET_BURNING_DEV_NAMELEN]; // 刻录驱动器å称 public int emTrayType; // 光驱托盘状æ€, 详è§EM_NET_BURN_DEV_TRAY_TYPE public int emOperateType; // 光盘使用状æ€, 详è§EM_NET_BURN_DEV_OPERATE_TYPE } // è®¾å¤‡åˆ»å½•æœºä¿¡æ¯ public static class NET_BURNING_DEVINFO extends SdkStructure { public int dwDevNum; // 刻录设备个数 public NET_DEV_BURNING[] stuList = (NET_DEV_BURNING[])new NET_DEV_BURNING().toArray(NET_MAX_BURNING_DEV_NUM); // å„åˆ»å½•è®¾å¤‡ä¿¡æ¯ } // CLIENT_AttachBurnState()输入å‚æ•° public static class NET_IN_ATTACH_STATE extends SdkStructure { public int dwSize; public Pointer szDeviceName; // 光盘å称,如"/dev/sda" public fAttachBurnStateCB cbAttachState; // 刻录监å¬å›žè°ƒ public Pointer dwUser; // ç”¨æˆ·æ•°æ® public LLong lBurnSession; // 刻录会è¯å¥æŸ„, CLIENT_StartBurnSession的返回值. 该值为0æ—¶, szDeviceName有效, æ¤æ—¶æŒ‰åˆ»å½•è®¾å¤‡è®¢é˜…åˆ»å½•çŠ¶æ€ public fAttachBurnStateCBEx cbAttachStateEx; // 扩展刻录监å¬å›žè°ƒ public Pointer dwUserEx; // 扩展刻录监å¬å›žè°ƒç”¨æˆ·æ•°æ® public NET_IN_ATTACH_STATE() { this.dwSize = this.size(); } } // CLIENT_AttachBurnState 输出å‚æ•° public static class NET_OUT_ATTACH_STATE extends SdkStructure { public int dwSize; public NET_OUT_ATTACH_STATE() { this.dwSize = this.size(); } } //CLIENT_StartUploadFileBurned 输入å‚æ•° public static class NET_IN_FILEBURNED_START extends SdkStructure{ public int dwSize; public Pointer szMode; // æ–‡ä»¶ä¸Šä¼ æ–¹å¼ // "append", è¿½åŠ æ¨¡å¼,æ¤æ—¶åˆ»å½•æ–‡ä»¶å固定为" FILE.zip ",filename被忽略 // "evidence", è¯æ®ç‰å¤§é™„件, è¦æ±‚å•ç‹¬åˆ»å½•çš„光盘内 public Pointer szDeviceName; // 光盘å称,如"/dev/sda" public Pointer szFilename; // 本地文件å称 public fBurnFileCallBack cbBurnPos; // 刻录进度回调 public Pointer dwUser; // ç”¨æˆ·æ•°æ® public LLong lBurnSession; // 刻录会è¯å¥æŸ„, CLIENT_StartBurnSession的返回值. 该值为0æ—¶, szDeviceName有效, æ¤æ—¶æŒ‰åˆ»å½•è®¾å¤‡è®¢é˜…åˆ»å½•çŠ¶æ€ public NET_IN_FILEBURNED_START() { this.dwSize = this.size(); } } //CLIENT_StartUploadFileBurned 输出å‚æ•° public static class NET_OUT_FILEBURNED_START extends SdkStructure{ public int dwSize; public byte[] szState = new byte[MAX_COMMON_STRING_16]; //char[] // "start":系统准备就绪,å¯ä»¥å¼€å§‹ä¸Šä¼ ; "busy":系统忙,ç¨åŽåœ¨è¯•ã€‚"error":系统未在刻录ä¸,返回出错,请求失败 public NET_OUT_FILEBURNED_START() { this.dwSize = this.size(); } } // fAttachBurnStateCB å‚æ•° public static class NET_CB_BURNSTATE extends SdkStructure { public int dwSize; public Pointer szState; // 消æ¯ç±»åž‹ //"UploadFileStart":å¯ä»¥å¼€å§‹é™„ä»¶ä¸Šä¼ //"InitBurnDevice":åˆå§‹åŒ–刻录设备 //"Burning":åˆ»å½•ä¸ //"BurnExtraFileStop":刻录åœæ¢ //"BurnFilePause":åˆ»å½•æš‚åœ //"SpaceFull":刻录空间满 //"BurnFileError":刻录出错 public Pointer szFileName; // 当å‰åˆ»å½•é™„件文件å,用于"UploadFileStart"å¼€å§‹é™„ä»¶ä¸Šä¼ æ¶ˆæ¯ public int dwTotalSpace; // 总容é‡,å•ä½KB,用于"Burning"刻录ä¸,显示容é‡æˆ–计算进度 public int dwRemainSpace; // 剩余容é‡,å•ä½KB,用于"Burning"åˆ»å½•ä¸ public Pointer szDeviceName; // 刻录设备å称,用于区分ä¸åŒçš„刻录设备 public int nRemainTime; // 刻录剩余时间, å•ä½ç§’, -1ä»£è¡¨æ— æ•ˆ } // åˆ»å½•çŠ¶æ€ public static class NET_BURN_STATE extends SdkStructure { public static final int BURN_STATE_STOP = 0; // åœæ¢ public static final int BURN_STATE_STOPING = 1; // åœæ¢ä¸ public static final int BURN_STATE_INIT = 2; // åˆå§‹åŒ– public static final int BURN_STATE_BURNING = 3; // åˆ»å½•ä¸ public static final int BURN_STATE_PAUSE = 4; // æš‚åœ public static final int BURN_STATE_CHANGE_DISK = 5; // æ¢ç›˜ä¸ public static final int BURN_STATE_PREPARE_EXTRA_FILE = 6; // 附件åˆå§‹åŒ– public static final int BURN_STATE_WAIT_EXTRA_FILE = 7; // ç‰å¾…附件刻录 public static final int BURN_STATE_UPLOAD_FILE_START = 8; // é™„ä»¶åˆ»å½•ä¸ public static final int BURN_STATE_CHECKING_DISK = 9; // æ£€æµ‹å…‰ç›˜ä¸ public static final int BURN_STATE_DISK_READY = 10; // 光盘准备就绪 } // 刻录错误ç public static class NET_BURN_ERROR_CODE extends SdkStructure { public static final int BURN_CODE_NORMAL = 0; // æ£å¸¸ public static final int BURN_CODE_UNKNOWN_ERROR = 1; // 未知错误 public static final int BURN_CODE_SPACE_FULL = 2; // 刻录满 public static final int BURN_CODE_START_ERROR = 3; // 开始刻录出错 public static final int BURN_CODE_STOP_ERROR = 4; // åœæ¢åˆ»å½•å‡ºé”™ public static final int BURN_CODE_WRITE_ERROR = 5; // 刻录出错 public static final int BURN_CODE_UNKNOWN = 6; // 未知 } // CLIENT_BurnGetState 接å£è¾“å…¥å‚æ•° public static class NET_IN_BURN_GET_STATE extends SdkStructure { public int dwSize; public NET_IN_BURN_GET_STATE() { this.dwSize = this.size(); } } // å…‰é©±ä½¿ç”¨çŠ¶æ€ public static class EM_NET_BURN_DEV_USED_STATE extends SdkStructure { public static final int EM_NET_BURN_DEV_USED_STATE_UNKNOWN = 0; //未知 public static final int EM_NET_BURN_DEV_USED_STATE_STOP = 1; //åœæ¢ public static final int EM_NET_BURN_DEV_USED_STATE_BURNING = 2; //åˆ»å½•ä¸ } // åˆ»å½•è®¾å¤‡çŠ¶æ€ public static class NET_BURN_DEV_STATE extends SdkStructure { public int dwSize; public int nDeviceID; // 光驱设备ID public byte[] szDevName = new byte[NET_BURNING_DEV_NAMELEN]; // 光驱设备å称 public int dwTotalSpace; // 光驱总容é‡, å•ä½KB public int dwRemainSpace; // 光驱剩余容é‡, å•ä½KB public int emUsedType; // 光驱使用状æ€, 详è§EM_NET_BURN_DEV_USED_STATE public int emError; // å•ä¸ªå…‰é©±å‡ºé”™çŠ¶æ€, 详è§NET_BURN_ERROR_CODE public int emDiskState; // 光盘状æ€,EM_DISK_STATE public NET_BURN_DEV_STATE() { this.dwSize = this.size(); } } // CLIENT_BurnGetState 接å£è¾“出å‚æ•° public static class NET_OUT_BURN_GET_STATE extends SdkStructure { public int dwSize; public int emState; // 刻录状æ€, 详è§NET_BURN_STATE public int emErrorCode; // 错误ç , 详è§NET_BURN_ERROR_CODE public int dwDevMask; // 刻录设备掩ç , 按ä½è¡¨ç¤ºå¤šä¸ªåˆ»å½•è®¾å¤‡ç»„åˆ public int[] nChannels = new int[NET_MAX_BURN_CHANNEL_NUM]; // 刻录通é“数组 public int nChannelCount; // 刻录通é“æ•° public int emMode; // 刻录模å¼, 详è§NET_BURN_MODE public int emPack; // 刻录æµæ ¼å¼, 详è§NET_BURN_RECORD_PACK public int nFileIndex; // 当å‰åˆ»å½•æ–‡ä»¶ç¼–å· public NET_TIME stuStartTime; // 刻录开始时间 public NET_BURN_DEV_STATE[] stuDevState = (NET_BURN_DEV_STATE[])new NET_BURN_DEV_STATE().toArray(NET_MAX_BURNING_DEV_NUM); // åˆ»å½•è®¾å¤‡çŠ¶æ€ public int nRemainTime; // 刻录剩余时间, å•ä½ç§’, -1ä»£è¡¨æ— æ•ˆ public int emExtMode; // 扩展模å¼,å½“ä¸ºæ— ç›˜åˆ»å½•æ—¶ï¼ŒstuDevStateå¯èƒ½æ— 效, 详è§NET_BURN_EXTMODE public NET_OUT_BURN_GET_STATE() { this.dwSize = this.size(); } } // 雷达监测超速报è¦äº‹ä»¶ 智能楼宇专用 ( NET_ALARM_RADAR_HIGH_SPEED ) public static class ALARM_RADAR_HIGH_SPEED_INFO extends SdkStructure { public NET_TIME_EX stuTime; // 事件å‘生时间 public float fSpeed; // 速度(å•ä½:km/h) public byte[] szPlateNumber = new byte[16]; // 车牌 public boolean bRealUTC; // RealUTC 是å¦æœ‰æ•ˆï¼ŒbRealUTC 为 TRUE 时,用 RealUTC,å¦åˆ™ç”¨ stuTime å—段 public NET_TIME_EX RealUTC; // 事件å‘ç”Ÿçš„æ—¶é—´ï¼ˆæ ‡å‡†UTC) public byte[] byReserved=new byte[958]; // 预留å—段 } // 设备巡检报è¦äº‹ä»¶ 智网专用 ( NET_ALARM_POLLING_ALARM ) public static class ALARM_POLLING_ALARM_INFO extends SdkStructure { public NET_TIME_EX stuTime; // 事件å‘生时间 public boolean bRealUTC; // RealUTC 是å¦æœ‰æ•ˆï¼ŒbRealUTC 为 TRUE 时,用 RealUTC,å¦åˆ™ç”¨ stuTime å—段 public NET_TIME_EX RealUTC; // 事件å‘ç”Ÿçš„æ—¶é—´ï¼ˆæ ‡å‡†UTC) public byte[] byReserved=new byte[974]; // 预留å—段 } // é—¨ç¦äº‹ä»¶ ALARM_ACCESS_CTL_EVENT public static class ALARM_ACCESS_CTL_EVENT_INFO extends SdkStructure { public int dwSize; public int nDoor; // 门通é“å· public byte[] szDoorName = new byte[NET_MAX_DOORNAME_LEN]; // é—¨ç¦å称 public NET_TIME stuTime; // 报è¦äº‹ä»¶å‘生的时间 public int emEventType; // é—¨ç¦äº‹ä»¶ç±»åž‹ å‚考 NET_ACCESS_CTL_EVENT_TYPE public int bStatus; // 刷å¡ç»“æžœ,TRUE表示æˆåŠŸ,FALSE表示失败 public int emCardType; // å¡ç±»åž‹, å‚考 NET_ACCESSCTLCARD_TYPE public int emOpenMethod; // 开门方å¼, å‚考 NET_ACCESS_DOOROPEN_METHOD public byte[] szCardNo = new byte[NET_MAX_CARDNO_LEN]; // å¡å· public byte[] szPwd = new byte[NET_MAX_CARDPWD_LEN]; // 密ç public byte[] szReaderID = new byte[NET_COMMON_STRING_32]; // 门读å¡å™¨ID public byte[] szUserID = new byte[NET_COMMON_STRING_64]; // 开门用户 public byte[] szSnapURL = new byte[NET_COMMON_STRING_256]; // 抓æ‹ç…§ç‰‡å˜å‚¨åœ°å€ 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 验è¯é€šè¿‡,控制å°æœªæŽˆæƒ public int nPunchingRecNo; // 刷å¡è®°å½•é›†ä¸çš„è®°å½•ç¼–å· public int nNumbers; // æŠ“å›¾å¼ æ•° public int emStatus; // å¡çŠ¶æ€ NET_ACCESSCTLCARD_STATE public byte[] szSN = new byte[32]; // 智能é”åºåˆ—å· public int emAttendanceState; // 考勤状æ€, å‚考 NET_ATTENDANCESTATE public byte[] szQRCode = new byte[512]; // 二维ç public byte[] szCallLiftFloor = new byte[16]; // å‘¼æ¢¯æ¥¼å±‚å· public int emCardState; // 是å¦ä¸ºé‡‡é›†å¡ç‰‡,å‚考 EM_CARD_STATE public byte[] szCitizenIDNo = new byte[20]; // è¯ä»¶å· public COMPANION_CARD[] szCompanionCards = new COMPANION_CARD[MAX_COMPANION_CARD_NUM]; // 陪åŒè€…å¡å·ä¿¡æ¯ public int nCompanionCardCount; // 陪åŒè€…å¡å·ä¸ªæ•° public int emHatStyle; // 帽å类型 public int emHatColor; // 帽å颜色 public int emLiftCallerType; // 梯控方å¼è§¦å‘者 public int bManTemperature; // 人员温度信æ¯æ˜¯å¦æœ‰æ•ˆ public NET_MAN_TEMPERATURE_INFO stuManTemperatureInfo; // 人员温度信æ¯, bManTemperature 为TRUE 时有效 public byte[] szCitizenName = new byte[256]; // è¯ä»¶å§“å public int emMask; // å£ç½©çŠ¶æ€ï¼ˆEM_MASK_STATE_UNKNOWNã€EM_MASK_STATE_NOMASKã€EM_MASK_STATE_WEAR 有效)å‚考EM_MASK_STATE_TYPE public byte[] szCardName = new byte[NET_MAX_CARDNAME_LEN]; // å¡å‘½å public int nFaceIndex; // 一人脸时的人脸åºå· public int emUserType; // 用户类型( EM_USER_TYPE_ORDINARY 至 EM_USER_TYPE_DISABLED 有效 ) å‚考EM_USER_TYPE public int bRealUTC; // RealUTC 是å¦æœ‰æ•ˆï¼ŒbRealUTC 为 TRUE 时,用 RealUTC,å¦åˆ™ç”¨ stuTime å—段 public NET_TIME_EX RealUTC; // 事件å‘ç”Ÿçš„æ—¶é—´ï¼ˆæ ‡å‡†UTC) public byte[] szCompanyName = new byte[200]; // å…¬å¸å称 public int nScore; // 人脸质é‡è¯„分 public int nLiftNo; // ç”µæ¢¯ç¼–å· public int emQRCodeIsExpired; // 二维ç 是å¦è¿‡æœŸã€‚默认值0 ,EM_QRCODE_IS_EXPIRED public int emQRCodeState; // 二维ç 状æ€,EM_QRCODE_STATE public NET_TIME stuQRCSodeValidTo; // 二维ç 截æ¢æ—¥æœŸ public byte[] szDynPWD=new byte[32]; // å¹³å°é€šè¿‡å¯†ç æ ¡éªŒæƒé™ã€‚用于动æ€å¯†ç æ ¡éªŒï¼ŒåŠ¨æ€å¯†ç 由手机APP生æˆï¼Œè®¾å¤‡ä»…é€ä¼ ç»™å¹³å° // public byte[] byReserved=new byte[1436]; // 预留å—段 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 byte[] szDeviceID=new byte[128]; // é—¨ç¦è®¾å¤‡ç¼–å· public byte[] szUserUniqueID=new byte[128]; // 用户唯一表示ID public int bUseCardNameEx; // 是å¦ä½¿ç”¨å¡å‘½å扩展 public byte[] szCardNameEx=new byte[128]; // å¡å‘½å扩展 public byte[] szTempPassword=new byte[64]; // 临时密ç public byte[] szNote=new byte[512]; // 摘è¦ä¿¡æ¯ public int nHSJCResult; //æ ¸é…¸æ£€æµ‹æŠ¥å‘Šç»“æžœ -1: 未知 2: 未检测 3: 过期 public NET_VACCINE_INFO stuVaccineInfo=new NET_VACCINE_INFO(); // æ–°å† ç–«è‹—æŽ¥ç§ä¿¡æ¯ public NET_TRAVEL_INFO stuTravelInfo=new NET_TRAVEL_INFO(); // 行程ç ä¿¡æ¯ public byte[] szQRCodeEx=new byte[2048]; //大二维ç 内容 public NET_HSJC_INFO stuHSJCInfo; // æ ¸é…¸ä¿¡æ¯ public NET_ANTIGEN_INFO stuAntigenInfo; // æŠ—åŽŸæ£€æµ‹ä¿¡æ¯ public byte[] szHealthGreenStatus=new byte[20]; // 个人å¥åº·çŠ¶æ€ 绿ç :"Green" 红ç :"Red" 黄ç :"Yellow" æ©™:"Orange" 未知:"None" public byte[] szReserved=new byte[2048]; // 预留å—节 public ALARM_ACCESS_CTL_EVENT_INFO() { super(); this.dwSize = this.size(); for (int i = 0; i < szCompanionCards.length; ++i) { szCompanionCards[i] = new COMPANION_CARD(); } } } // 消è¦äº‹ä»¶ public static class ALARM_ALARMCLEAR_INFO extends SdkStructure { public int dwSize; public int nChannelID; // 通é“å· public NET_TIME stuTime; // 报è¦äº‹ä»¶å‘生的时间 public int bEventAction; // 事件动作,0表示脉冲事件,1表示æŒç»æ€§äº‹ä»¶å¼€å§‹,2表示æŒç»æ€§äº‹ä»¶ç»“æŸ; public byte[] byReserved = new byte[1292]; // è¡¥é½å—节 public ALARM_ALARMCLEAR_INFO() { this.dwSize = this.size(); } @Override public String toString() { return "ALARM_ALARMCLEAR_INFO [dwSize=" + dwSize + ", nChannelID=" + nChannelID + ", stuTime=" + stuTime + ", bEventAction=" + bEventAction + "]"; } } public static class NET_ALARM_TYPE { public static final int NET_ALARM_LOCAL = 0; //开关é‡é˜²åŒºçš„报è¦äº‹ä»¶(对应 NET_ALARM_ALARM_EX2 事件) public static final int NET_ALARM_ALARMEXTENDED = 1; //扩展模å—报è¦äº‹ä»¶(对应 NET_ALARM_ALARMEXTENDED 事件) public static final int NET_ALARM_TEMP = 2; //温度报è¦äº‹ä»¶(对应 NET_ALARM_TEMPERATURE 事件) public static final int NET_ALARM_URGENCY = 3; //紧急报è¦äº‹ä»¶(对应 NET_URGENCY_ALARM_EX 事件) public static final int NET_ALARM_RCEMERGENCYCALL = 4; //紧急呼å«æŠ¥è¦äº‹ä»¶(对应 NET_ALARM_RCEMERGENCY_CALL 事件) public static final int NET_ALARM_ALL = 5; //所有报è¦äº‹ä»¶ } // CLIENT_ControlDevice 接å£çš„ NET_CTRL_CLEAR_ALARM 命令å‚æ•° public static class NET_CTRL_CLEAR_ALARM extends SdkStructure { public int dwSize; public int nChannelID; // 防区通é“å·, -1 è¡¨ç¤ºæ‰€æœ‰é€šé“ public int emAlarmType; // 事件类型(支æŒçš„类型较少,建议用nEventTypeå—段) NET_ALARM_TYPE public String szDevPwd; // 登陆设备的密ç ,如ä¸ä½¿ç”¨åŠ 密消è¦,直接赋值为NULL public int bEventType; // 表示是å¦å¯ç”¨nEventTypeå—段, TRUE:nEventType代替emAlarmTypeå—段, FALSE:沿用emAlarmTypeå—段,忽略nEventTypeå—段 public int nEventType; // 事件类型, 对应 fMessCallBack 回调æ¥ä¸Šçš„lCommandå—段, å³CLIENT_StartListenEx接å£èŽ·å¾—事件类型 // 比如NET_ALARM_ALARM_EX2表示本地报è¦äº‹ä»¶ public byte[] szName = new byte[128]; // 事件å称 public int bIsUsingName; // 事件å称å—段是å¦æœ‰æ•ˆ public NET_CTRL_CLEAR_ALARM() { this.dwSize = this.size(); } @Override public String toString() { return "NET_CTRL_CLEAR_ALARM [dwSize=" + dwSize + ", nChannelID=" + nChannelID + ", emAlarmType=" + emAlarmType + ", szDevPwd=" + szDevPwd + ", bEventType=" + bEventType + ", nEventType=" + nEventType + "]"; } } // CLIENT_ControlDevice接å£çš„ CTRLTYPE_CTRL_START_ALARMBELL / CTRLTYPE_CTRL_STOP_ALARMBELL命令å‚æ•° public static class NET_CTRL_ALARMBELL extends SdkStructure { public int dwSize; public int nChannelID; // 通é“å·(0开始) public NET_CTRL_ALARMBELL(){ this.dwSize = this.size(); } } // è¦ç¯é…ç½®(对应 CFG_CMD_ALARMLAMP) public static class CFG_ALARMLAMP_INFO extends SdkStructure { public int emAlarmLamp; // è¦ç¯çŠ¶æ€,å‚考 EM_ALARMLAMP_MODE } // è¦ç¯çŠ¶æ€ public static class EM_ALARMLAMP_MODE extends SdkStructure { public static final int EM_ALARMLAMP_MODE_UNKNOWN = -1; // 未知 public static final int EM_ALARMLAMP_MODE_OFF = 0; // ç public static final int EM_ALARMLAMP_MODE_ON = 1; // 亮 public static final int EM_ALARMLAMP_MODE_BLINK = 2; // é—ªçƒ } // å‘é€çš„通知类型,对应CLIENT_SendNotifyToDevæŽ¥å£ public static class NET_EM_NOTIFY_TYPE extends SdkStructure { public static final int NET_EM_NOTIFY_PATROL_STATUS = 1; // å‘é€å·¡æ›´é€šçŸ¥ (对应结构体 NET_IN_PATROL_STATUS_INFO, NET_OUT_PATROL_STATUS_INFO ) } // å·¡æ›´çŠ¶æ€ public static class NET_EM_PATROL_STATUS extends SdkStructure { public static final int NET_EM_PATROL_STATUS_UNKNOWN = 0; // æœªçŸ¥çŠ¶æ€ public static final int NET_EM_PATROL_STATUS_BEGIN = 1; // 巡更开始 public static final int NET_EM_PATROL_STATUS_END = 2; // å·¡æ›´ç»“æŸ public static final int NET_EM_PATROL_STATUS_FAIL = 3; // 巡更失败 } // CLIENT_SendNotifyToDev å…¥å‚ (对应枚举 NET_EM_NOTIFY_PATROL_STATUS) public static class NET_IN_PATROL_STATUS_INFO extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int emPatrolStatus; // 巡更状æ€,å‚考 NET_EM_PATROL_STATUS public NET_IN_PATROL_STATUS_INFO() { this.dwSize = this.size(); } } // CLIENT_SendNotifyToDev å‡ºå‚ (对应枚举 NET_EM_NOTIFY_PATROL_STATUS) public static class NET_OUT_PATROL_STATUS_INFO extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public NET_OUT_PATROL_STATUS_INFO() { this.dwSize = this.size(); } } // 报è¦äº‹ä»¶ç±»åž‹ NET_ALARM_TALKING_INVITE (设备请求对方å‘起对讲事件)对应的数æ®æè¿°ä¿¡æ¯ public static class ALARM_TALKING_INVITE_INFO extends SdkStructure { public int dwSize; public int emCaller; // 设备希望的对讲å‘èµ·æ–¹,å–值å‚考 EM_TALKING_CALLER public NET_TIME stuTime; // 事件触å‘时间 public byte[] szCallID = new byte[NET_COMMON_STRING_64]; // 呼å«æƒŸä¸€æ ‡è¯†ç¬¦ public int nLevel; // 表示所呼å«è®¾å¤‡æ‰€å¤„层级 public TALKINGINVITE_REMOTEDEVICEINFO stuRemoteDeviceInfo; // è¿œç«¯è®¾å¤‡ä¿¡æ¯ public int bRealUTC; // RealUTC 是å¦æœ‰æ•ˆï¼ŒbRealUTC 为 TRUE 时,用 RealUTC,å¦åˆ™ç”¨ stuTime å—段 public NET_TIME_EX RealUTC; // 事件å‘ç”Ÿçš„æ—¶é—´ï¼ˆæ ‡å‡†UTC) public ALARM_TALKING_INVITE_INFO() { this.dwSize = this.size(); } } // 对讲å‘èµ·æ–¹ public static class EM_TALKING_CALLER extends SdkStructure { public static final int EM_TALKING_CALLER_UNKNOWN = 0; // 未知å‘èµ·æ–¹ public static final int EM_TALKING_CALLER_PLATFORM = 1; // 对讲å‘èµ·æ–¹ä¸ºå¹³å° } // Invite事件远程设备åè®® public static class TALKINGINVITE_REMOTEDEVICE_PROTOCOL extends SdkStructure { public static final int EM_TALKINGINVITE_REMOTEDEVICE_PROTOCOL_UNKNOWN = 0; // 未知 public static final int EM_TALKINGINVITE_REMOTEDEVICE_PROTOCOL_HIKVISION = 1; // } // Inviteäº‹ä»¶è¿œç«¯è®¾å¤‡ä¿¡æ¯ public static class TALKINGINVITE_REMOTEDEVICEINFO extends SdkStructure { public byte[] szIP = new byte[MAX_REMOTEDEVICEINFO_IPADDR_LEN]; // 设备IP public int nPort; // ç«¯å£ public int emProtocol; // å议类型,å–值å‚考 EM_TALKINGINVITE_REMOTEDEVICE_PROTOCOL public byte[] szUser = new byte[MAX_REMOTEDEVICEINFO_USERNAME_LEN]; // 用户å public byte[] szPassword = new byte[MAX_REMOTEDEVICEINFO_USERPSW_LENGTH];// 密ç public byte[] szReverse = new byte[1024]; // ä¿ç•™å—段 } // IO控制命令,对应 CLIENT_QueryIOControlState æŽ¥å£ å’Œ CLIENT_IOControl æŽ¥å£ public static class NET_IOTYPE extends SdkStructure { public static final int NET_ALARMINPUT = 1; // 控制报è¦è¾“å…¥,对应结构体为 ALARM_CONTROL public static final int NET_ALARMOUTPUT = 2; // 控制报è¦è¾“出,对应结构体为 ALARM_CONTROL public static final int NET_DECODER_ALARMOUT = 3; // 控制报è¦è§£ç 器输出,对应结构体为 DECODER_ALARM_CONTROL public static final int NET_WIRELESS_ALARMOUT = 5; // æŽ§åˆ¶æ— çº¿æŠ¥è¦è¾“出,对应结构体为 ALARM_CONTROL public static final int NET_ALARM_TRIGGER_MODE = 7; // 报è¦è§¦å‘æ–¹å¼ï¼ˆæ‰‹åŠ¨,自动,å…³é—),使用 TRIGGER_MODE_CONTROL 结构体 } // 报è¦IO控制 public static class ALARM_CONTROL extends SdkStructure { public short index; // 端å£åºå· public short state; // 端å£çŠ¶æ€ï¼Œ0 - å…³é—,1 - 打开 } // 报è¦è§£ç 器控制 public static class DECODER_ALARM_CONTROL extends SdkStructure { public int decoderNo; // 报è¦è§£ç 器å·,从0开始 public short alarmChn; // 报è¦è¾“出å£,从0开始 public short alarmState; // 报è¦è¾“出状æ€ï¼›1:打开,0ï¼šå…³é— } // 触å‘æ–¹å¼ public static class TRIGGER_MODE_CONTROL extends SdkStructure { public short index; // 端å£åºå· public short mode; // 触å‘æ–¹å¼(0å…³é—1手动2自动);ä¸è®¾ç½®çš„通é“,sdk默认将ä¿æŒåŽŸæ¥çš„设置。 public byte[] bReserved = new byte[28]; } // 报è¦è¾“出通é“的状æ€çš„é…ç½®, 对应 命令 CFG_CMD_ALARMOUT public static class CFG_ALARMOUT_INFO extends SdkStructure { public int nChannelID; // 报è¦é€šé“å·(0开始) public byte[] szChnName = new byte[MAX_CHANNELNAME_LEN]; // 报è¦é€šé“å称 public byte[] szOutputType = new byte[MAX_NAME_LEN]; // 输出类型, 用户自定义 public int nOutputMode; // 输出模å¼, 0-自动报è¦, 1-强制报è¦, 2-å…³é—æŠ¥è¦ public int nPulseDelay; // 脉冲模å¼è¾“出时间, å•ä½ä¸ºç§’(0-255秒) public int nSlot; // æ ¹åœ°å€, 0表示本地通é“, 1表示连接在第一个串å£ä¸Šçš„扩展通é“, 2ã€3...以æ¤ç±»æŽ¨, -1è¡¨ç¤ºæ— æ•ˆ public int nLevel1; // 第一级级è”地å€, 表示连接在第nSlot串å£ä¸Šçš„第nLevel1个探测器或仪表, 从0开始, -1è¡¨ç¤ºæ— æ•ˆ public byte abLevel2; // 类型为bool, 表示nLevel2å—段是å¦å˜åœ¨ public int nLevel2; // 第二级级è”地å€, 表示连接在第nLevel1个的仪表上的探测器åºå·, 从0开始 public int emPole; // 输出有效模å¼,EM_ALARMOUT_POLE } // 检测采集设备报è¦äº‹ä»¶, 对应事件类型 NET_ALARM_SCADA_DEV_ALARM public static class ALARM_SCADA_DEV_INFO extends SdkStructure { public int dwSize; public int nChannel; // 通é“å· public NET_TIME stuTime; // 事件å‘生的时间 public byte[] szDevName = new byte[NET_COMMON_STRING_64]; // 故障设备å称 public byte[] szDesc = new byte[NET_COMMON_STRING_256]; // 报è¦æè¿° public int nAction; // -1:未知 0:脉冲 1:开始 2:åœæ¢ public byte[] szID = new byte[NET_COMMON_STRING_32]; // 点ä½ID, ç›®å‰ä½¿ç”¨16å—节 public byte[] szSensorID = new byte[NET_COMMON_STRING_32]; // 探测器ID, ç›®å‰ä½¿ç”¨16å—节 public byte[] szDevID = new byte[NET_COMMON_STRING_32]; // 设备ID, ç›®å‰ä½¿ç”¨16å—节 public byte[] szPointName = new byte[NET_COMMON_STRING_64]; // 点ä½å,ä¸Žç‚¹è¡¨åŒ¹é… public int nAlarmFlag; // 0:开始, 1:ç»“æŸ public int emDevType; // 设备类型,详è§EM_ALARM_SCADA_DEV_TYPE public int emDevStatus; // 设备状æ€ï¼Œè¯¦è§EM_SCADA_DEVICE_STATUS public ALARM_SCADA_DEV_INFO() { this.dwSize = this.size(); } } //SCADA类型 public static class EM_ALARM_SCADA_DEV_TYPE extends SdkStructure { public static final int EM_ALARM_SCADA_DEV_UNKNOWN = 0; // 未知 public static final int EM_ALARM_SCADA_DEV_LEAKAGE = 1; // æ¼æ°´æ£€æµ‹ public static final int EM_ALARM_SCADA_DEV_THCONTROLLER = 2; // 湿温度 public static final int EM_ALARM_SCADA_DEV_UPS = 3; // UPS public static final int EM_ALARM_SCADA_DEV_SWITCH = 4; // å¼€å…³ç”µæº public static final int EM_ALARM_SCADA_DEV_ELECTRICMETER = 5; // 智能电表 public static final int EM_ALARM_SCADA_DEV_COMMERCIALPOWER = 6; // 市电检测 public static final int EM_ALARM_SCADA_DEV_BATTERY = 7; // è“„ç”µæ± public static final int EM_ALARM_SCADA_DEV_AIRCONDITION = 8; // 空调 public static final int EM_ALARM_SCADA_DEV_ACCESS = 9; // é—¨ç¦ public static final int EM_ALARM_SCADA_DEV_SMOKINGSENSOR = 10; // 烟感 public static final int EM_ALARM_SCADA_DEV_INFRARED = 11; // 红外 public static final int EM_ALARM_SCADA_DEV_CHEMICAL = 12; // 化工 public static final int EM_ALARM_SCADA_DEV_PERIMETER = 13; // 周界 public static final int EM_ALARM_SCADA_DEV_DOORMAGNETISM = 14; // public static final int EM_ALARM_SCADA_DEV_DISTANCE = 15; // æµ‹è· public static final int EM_ALARM_SCADA_DEV_WINDSENSOR = 16; // 风速 public static final int EM_ALARM_SCADA_DEV_LOCATION = 17; // ä½ç½® public static final int EM_ALARM_SCADA_DEV_ATMOSPHERE = 18; // 大气 public static final int EM_ALARM_SCADA_DEV_SOLARPOWER = 19; // 太阳能 } //è®¾å¤‡çŠ¶æ€ public static class EM_SCADA_DEVICE_STATUS extends SdkStructure { public static final int EM_SCADA_DEVICE_STATUS_KNOWN = -1; // 未知 public static final int EM_SCADA_DEVICE_STATUS_NORMAL = 0; // æ£å¸¸ public static final int EM_SCADA_DEVICE_STATUS_ALARM = 1; // æŠ¥è¦ public static final int EM_SCADA_DEVICE_STATUS_OFFLINE = 2; // 离线 } // 点ä½ç±»åž‹ public static class EM_NET_SCADA_POINT_TYPE extends SdkStructure { public static final int EM_NET_SCADA_POINT_TYPE_UNKNOWN = 0; // 未知 public static final int EM_NET_SCADA_POINT_TYPE_ALL = 1; // 所有类型 public static final int EM_NET_SCADA_POINT_TYPE_YC = 2; // é¥æµ‹ 模拟é‡è¾“å…¥ public static final int EM_NET_SCADA_POINT_TYPE_YX = 3; // é¥ä¿¡ 开关é‡è¾“å…¥ public static final int EM_NET_SCADA_POINT_TYPE_YT = 4; // é¥è°ƒ 模拟é‡è¾“出 public static final int EM_NET_SCADA_POINT_TYPE_YK = 5; // é¥æŽ§ 开关é‡è¾“出 } // CLIENT_SCADAAttachInfo()接å£è¾“å…¥å‚æ•° public static class NET_IN_SCADA_ATTACH_INFO extends SdkStructure { public int dwSize; public Callback cbCallBack; // æ•°æ®å›žè°ƒå‡½æ•°, fSCADAAttachInfoCallBack 回调 public int emPointType; // 点ä½ç±»åž‹,å–值å‚考 EM_NET_SCADA_POINT_TYPE public Pointer dwUser; // 用户定义å‚æ•° public NET_IN_SCADA_ATTACH_INFO() { this.dwSize = this.size(); } } // CLIENT_SCADAAttachInfo()接å£è¾“出å‚æ•° public static class NET_OUT_SCADA_ATTACH_INFO extends SdkStructure { public int dwSize; public NET_OUT_SCADA_ATTACH_INFO() { this.dwSize = this.size(); } } // 监测点ä½ä¿¡æ¯åˆ—表 public static class NET_SCADA_NOTIFY_POINT_INFO_LIST extends SdkStructure { public int dwSize; public int nList; // 监测点ä½ä¿¡æ¯ä¸ªæ•° public NET_SCADA_NOTIFY_POINT_INFO[] stuList = (NET_SCADA_NOTIFY_POINT_INFO[])new NET_SCADA_NOTIFY_POINT_INFO().toArray(MAX_SCADA_POINT_LIST_INFO_NUM); // 监测点ä½ä¿¡æ¯ public NET_SCADA_NOTIFY_POINT_INFO_LIST() { this.dwSize = this.size(); } } // 监测点ä½ä¿¡æ¯ public static class NET_SCADA_NOTIFY_POINT_INFO extends SdkStructure { public int dwSize; public byte[] szDevName = new byte[NET_COMMON_STRING_64]; // 设备å称,与getInfo获å–çš„å称一致 public int emPointType; // 点ä½ç±»åž‹,å–值å‚考 EM_NET_SCADA_POINT_TYPE public byte[] szPointName = new byte[NET_COMMON_STRING_64]; // 点ä½å,与点ä½è¡¨çš„å–值一致 public float fValue; // Type为YC时为浮点数 public int nValue; // Type为YX时为整数 public byte[] szFSUID = new byte[NET_COMMON_STRING_64]; // 现场监控å•å…ƒID(Field Unit), å³è®¾å¤‡æœ¬èº« public byte[] szID = new byte[NET_COMMON_STRING_64]; // 点ä½ID public byte[] szSensorID = new byte[NET_COMMON_STRING_64]; // 探测器ID public NET_TIME_EX stuCollectTime; // 采集时间 public NET_SCADA_NOTIFY_POINT_INFO() { this.dwSize = this.size(); } } public static class CFG_TRAFFICSNAPSHOT_NEW_INFO extends SdkStructure { public int nCount; // 有效æˆå‘˜ä¸ªæ•° public CFG_TRAFFICSNAPSHOT_INFO[] stInfo = (CFG_TRAFFICSNAPSHOT_INFO[])new CFG_TRAFFICSNAPSHOT_INFO().toArray(8); // 交通抓æ‹è¡¨æ•°ç»„ } // CFG_CMD_INTELLECTIVETRAFFIC public static class CFG_TRAFFICSNAPSHOT_INFO extends SdkStructure { public byte[] szDeviceAddress = new byte[MAX_DEVICE_ADDRESS]; // è®¾å¤‡åœ°å€ UTF-8ç¼–ç ,256å—节 public int nVideoTitleMask; // OSDå åŠ ç±»åž‹æŽ©ç 从低ä½åˆ°é«˜ä½åˆ†åˆ«è¡¨ç¤ºï¼š0-时间 1-地点 2-车牌3-车长 4-车速 5-é™é€Ÿ6-大车é™é€Ÿ 7-å°è½¦é™é€Ÿ8-超速 9-è¿æ³•ä»£ç 10-车é“å· 11-车身颜色 12-车牌类型 13-车牌颜色14-红ç¯ç‚¹äº®æ—¶é—´ 15-è¿ç« 类型 16-é›·è¾¾æ–¹å‘ 17-è®¾å¤‡ç¼–å· 18-æ ‡å®šåˆ°æœŸæ—¶é—´ 19-车型 20-è¡Œé©¶æ–¹å‘ public int nRedLightMargin; // 红ç¯å†—余间隔时间 红ç¯å¼€å§‹çš„一段时间内,车辆通行ä¸ç®—闯红ç¯ï¼Œå•ä½ï¼šç§’ public float fLongVehicleLengthLevel; // 超长车长度最å°é˜ˆå€¼ å•ä½ï¼šç±³ï¼ŒåŒ…å« public float[] arfLargeVehicleLengthLevel = new float[2]; // 大车长度阈值 å•ä½ï¼šç±³ï¼ŒåŒ…å«å°å€¼ public float[] arfMediumVehicleLengthLevel = new float[2]; // ä¸åž‹è½¦é•¿åº¦é˜ˆå€¼ å•ä½ï¼šç±³ï¼ŒåŒ…å«å°å€¼ public float[] arfSmallVehicleLengthLevel = new float[2]; // å°è½¦é•¿åº¦é˜ˆå€¼ å•ä½ï¼šç±³ï¼ŒåŒ…å«å°å€¼ public float fMotoVehicleLengthLevel; // 摩托车长度最大阈值 å•ä½ï¼šç±³ï¼Œä¸åŒ…å« public BREAKINGSNAPTIMES_INFO stBreakingSnapTimes; // è¿ç« 抓æ‹å¼ æ•° public DETECTOR_INFO[] arstDetector = (DETECTOR_INFO[])new DETECTOR_INFO().toArray(MAX_DETECTOR); // 车检器é…ç½®ï¼Œä¸‹æ ‡æ˜¯è½¦é“å· public int nCarType; // 抓æ‹è½¦è¾†ç±»åž‹ 0-大å°è½¦éƒ½æŠ“æ‹1-抓æ‹å°è½¦2-抓æ‹å¤§è½¦3-大å°è½¦éƒ½ä¸æŠ“æ‹ public int nMaxSpeed; // 当测得的速度超过最大速度时,则以最大速度计 0~255km/h public int nFrameMode; // å¸§é—´éš”æ¨¡å¼ 1-速度自适应(超过速度上é™å–0间隔,低于速度下é™å–2间隔,ä¸é—´å–1间隔)2-ç”±è”动å‚数决定 public int[] arnAdaptiveSpeed = new int[2]; // 速度自适应下é™å’Œä¸Šé™ public CFG_ALARM_MSG_HANDLE stuEventHandler; // 交通抓æ‹è”动å‚æ•° public int abSchemeRange; // BOOL类型,TRUE:方案针对相机,以车到0的值为准;FALSE:方案针对车é“。ä¸å¯ä»¥ä¿®æ”¹æ¤å—段数æ®, åªå†…部使用 public int nVideoTitleMask1; // 从低ä½åˆ°é«˜ä½åˆ†åˆ«è¡¨ç¤ºï¼š0-è½¦æ ‡ 1-红ç¯ç»“æŸæ—¶é—´ 2-è®¾å¤‡åˆ¶é€ åŽ‚å•† 3-å°è½¦ä½Žé™é€Ÿ 4-大车低é™é€Ÿ 5-å°è½¦é«˜é™é€Ÿ 6-大车高é™é€Ÿ 7-è®¾å¤‡å·¥ä½œæ¨¡å¼ 8-通用自定义 9-车é“自定义 10-抓æ‹è§¦å‘æº 11-åœè½¦åœºåŒºåŸŸ12-车辆类型(é¢åŒ…车ã€è½¿è½¦ç‰ç‰) 13-ä¸è½¦ä½Žé™é€Ÿ 14-ä¸è½¦é«˜é™é€Ÿ 15-é“è·¯æ–¹å‘ 16-GPSä¿¡æ¯ public int nMergeVideoTitleMask; // åˆæˆå›¾ç‰‡OSDå åŠ ç±»åž‹æŽ©ç å‚ç…§nVideoTitleMaskå—段 public int nMergeVideoTitleMask1; // åˆæˆå›¾ç‰‡OSDå åŠ ç±»åž‹æŽ©ç å‚ç…§nVideoTitleMask1å—段 public int nTriggerSource; // 触å‘æºæŽ©ç 0-RS232 1-RS485 2-IO 3-Video 4-Net public int nSnapMode; // 抓æ‹æ¨¡å¼ 0-å…¨éƒ¨æŠ“æ‹ 1-è¶…é€ŸæŠ“æ‹ 2-逆å‘æŠ“æ‹ 3-PKæ¨¡å¼ public int nWorkMode; // å·¥ä½œæ¨¡å¼ 0-自动模å¼ï¼Œ1-线圈抓æ‹æ¨¡å¼ï¼Œ2-线圈抓æ‹è¯†åˆ«ï¼Œ3-视频抓æ‹ï¼Œ4-视频识别, 5-æ··åˆæŠ“æ‹ï¼ˆå¸¦è¯†åˆ«ï¼‰ public int nCarThreShold; // 车长阈值 区分大å°è½¦é•¿çš„阈值,å•ä½: cm public int nSnapType; // 抓æ‹æˆ–抓录选择 0-æ£å¸¸æŠ“æ‹æ¨¡å¼ 1-视频抓æ‹æ¨¡å¼ 2-黑å±å¿«æŠ“æ¨¡å¼ public int[] nCustomFrameInterval = new int[3]; // 自定义抓æ‹å¸§é—´éš” ç¬¬ä¸€ä¸ªå…ƒç´ æŒ‡è½¦é€Ÿå°äºŽé€Ÿåº¦è‡ªé€‚应下é™æ—¶çš„抓æ‹å¸§é—´éš”,ä¾æ¬¡ç±»æŽ¨ public int nKeepAlive; // 与雷达ã€è½¦æ£€å™¨çš„默认ä¿æ´»å‘¨æœŸ å•ä½ç§’ public OSD_INFO stOSD; // 原始图片OSDå‚æ•°é…ç½® public OSD_INFO stMergeOSD; // åˆæˆå›¾ç‰‡OSDå‚æ•°é…ç½® public CFG_NET_TIME stValidUntilTime; // æ ‡å®šåˆ°æœŸæ—¶é—´ï¼ŒæŒ‡è¯¥æ—¶é—´ç‚¹ä¹‹å‰æŠ“æ‹ç…§ç‰‡æœ‰æ•ˆ public RADAR_INFO stRadar; public byte[] szRoadwayCode = new byte[MAX_ROADWAYNO]; // é“路代ç public int nVideoTitleMask2; // 原始图片OSDå åŠ ç±»åž‹æŽ©ç 2 从低ä½åˆ°é«˜ä½åˆ†åˆ«è¡¨ç¤ºï¼š0-国别 1-å°¾æ°”æ•°æ® public int nMergeVideoTitleMask2; // åˆæˆå›¾ç‰‡OSDå åŠ ç±»åž‹æŽ©ç 2 å‚ç…§nVideoTitleMask2å—段 public int nParkType; // 出入å£ç±»åž‹ï¼Œ0-默认( 兼容以å‰ï¼Œä¸åŒºåˆ†å‡ºå£/å…¥å£ ),1-å…¥å£ç›¸æœºï¼Œ 2-出å£ç›¸æœº public int nCoilSpeedAdjustDelayFrameTime; // çº¿åœˆé€Ÿåº¦æ ¡æ£ç‰å¾…时间,范围ã€500, 4000】,å•ä½ï¼šæ¯«ç§’ public boolean bCoilSpeedAdjustEnable; // çº¿åœˆé€Ÿåº¦æ ¡æ£ä½¿èƒ½ï¼ŒTRUEï¼šæ ¡æ£ FALSE:ä¸æ ¡æ£ public int nSnapSigMinConfidence; // 触å‘雷达信å·æŠ“æ‹å€¼ï¼ŒèŒƒå›´ã€0~100】 public int emMixSnapSpeedSource; // 视频抓æ‹é€Ÿåº¦æ¥æº,EM_MIX_SNAP_SPEED_SOURCE } public static class COIL_MAP_INFO extends SdkStructure { public int nPhyCoilID; // 物ç†çº¿åœˆå· public int nLogicCoilID; // é€»è¾‘çº¿åœˆå· } // 车检器é…ç½® public static class DETECTOR_INFO extends SdkStructure { public int nDetectBreaking; // è¿ç« 类型掩ç 从低ä½åˆ°é«˜ä½ä¾æ¬¡æ˜¯ï¼š0-æ£å¸¸1-闯红ç¯2-压线3-逆行4-æ¬ é€Ÿ5-超速6-有车å é“ // 7-黄牌å é“ 8-é—¯é»„ç¯ 9-è¿ç« å å…¬äº¤è½¦é“ 10-ä¸ç³»å®‰å…¨å¸¦ 11-驾驶员抽烟 12-é©¾é©¶å‘˜æ‰“ç”µè¯ public COILCONFIG_INFO[] arstCoilCfg = (COILCONFIG_INFO[])new COILCONFIG_INFO().toArray(MAX_COILCONFIG); // 线圈é…置数组 public int nRoadwayNumber; // 车é“å· 1-16 ; 0表示ä¸å¯ç”¨ public int nRoadwayDirection; // 车é“æ–¹å‘(车开往的方å‘) 0-å—å‘北 1-西å—å‘东北 2-东 3-西北å‘ä¸œå— 4-北å‘å— 5-东北å‘è¥¿å— 6-东å‘西 7-东å—å‘西北 8-忽略 public int nRedLightCardNum; // å¡å£å›¾ç‰‡åºå· 表示将电è¦ä¸çš„æŸä¸€å¼ 图片作为å¡å£å›¾ç‰‡ï¼ˆå…±ä¸‰å¼ ),0表示ä¸é‡‡ç”¨ï¼Œ1~3,表示采用对应åºå·çš„图片 public int nCoilsNumber; // 线圈个数 1-3 public int nOperationType; // ä¸šåŠ¡æ¨¡å¼ 0-å¡å£ç”µè¦1-电è¦2-å¡å£ public int[] arnCoilsDistance = new int[3]; // 两两线圈的间隔 范围0-1000,å•ä½ä¸ºåŽ˜ç±³ public int nCoilsWidth; // æ¯ä¸ªçº¿åœˆçš„宽度 0~200cm public int[] arnSmallCarSpeedLimit = new int[2]; // å°åž‹è½¦è¾†é€Ÿåº¦ä¸‹é™å’Œä¸Šé™ 0~255km/h,ä¸å¯ç”¨å¤§å°è½¦é™é€Ÿæ—¶ä½œä¸ºæ™®é€šè½¦è¾†é™é€Ÿ public int[] arnBigCarSpeedLimit = new int[2]; // 大型车辆速度下é™å’Œä¸Šé™ 0~255km/h,å¯ç”¨å¤§å°è½¦é™é€Ÿæ—¶æœ‰æ•ˆ public int nOverSpeedMargin; // é™é«˜é€Ÿå®½é™å€¼ å•ä½ï¼škm/h public int nBigCarOverSpeedMargin; // 大车é™é«˜é€Ÿå®½é™å€¼ å•ä½ï¼škm/h,å¯ç”¨å¤§å°è½¦é™é€Ÿæ—¶æœ‰æ•ˆ public int nUnderSpeedMargin; // é™ä½Žé€Ÿå®½é™å€¼ å•ä½ï¼škm/h public int nBigCarUnderSpeedMargin; // 大车é™ä½Žé€Ÿå®½é™å€¼ å•ä½ï¼škm/h,å¯ç”¨å¤§å°è½¦é™é€Ÿæ—¶æœ‰æ•ˆ public byte bSpeedLimitForSize; // bool类型,是å¦å¯ç”¨å¤§å°è½¦é™é€Ÿ public byte bMaskRetrograde; // bool类型,逆行是å¦è§†ä¸ºè¿ç« 行为 public byte[] byReserved = new byte[2]; // ä¿ç•™å¯¹é½ public byte[] szDrivingDirection = new byte[3*MAX_DRIVINGDIRECTION]; // "DrivingDirection" : ["Approach", "", ""],è¡Œé©¶æ–¹å‘ // "Approach"-上行,å³è½¦è¾†ç¦»è®¾å¤‡éƒ¨ç½²ç‚¹è¶Šæ¥è¶Šè¿‘ï¼›"Leave"-下行, // å³è½¦è¾†ç¦»è®¾å¤‡éƒ¨ç½²ç‚¹è¶Šæ¥è¶Šè¿œï¼Œç¬¬äºŒå’Œç¬¬ä¸‰ä¸ªå‚数分别代表上行和 // 下行的两个地点,UTF-8ç¼–ç public int nOverPercentage; // 超速百分比,超过é™é€Ÿç™¾åˆ†æ¯”åŽæŠ“æ‹ public int nCarScheme; // 具体的方案Index,具体方案å«ä¹‰å‚å‚考打包环境local.png;æ ¹æ®CFG_TRAFFICSNAPSHOT_INFO.abSchemeRangeå—段区分作用范围 public int nSigScheme; // åŒä¸Šï¼Œéžå¡å£ä½¿ç”¨ public int bEnable; // BOOL类型,车é“是å¦æœ‰æ•ˆï¼Œåªæœ‰æœ‰æ•ˆæ—¶æ‰æŠ“æ‹ public int[] nYellowSpeedLimit = new int[2]; //黄牌车é™é€Ÿä¸Šé™å’Œä¸‹é™ 范围0~255km/h public int nRoadType; //工作路段 0 普通公路 1 高速公路 public int nSnapMode; //抓æ‹æ¨¡å¼ 0-å…¨éƒ¨æŠ“æ‹ 1-è¶…é€ŸæŠ“æ‹ 2-逆å‘æŠ“æ‹ public int nDelayMode; //延时抓æ‹æ–¹æ¡ˆ 0-使DelaySnapshotDistance,1-使用DelayTime public int nDelayTime; //延时抓æ‹æ—¶é—´ 闯红ç¯ç¬¬ä¸‰å¼ 抓æ‹ä½ç½®è·ç¦»æœ€åŽä¸€ä¸ªçº¿åœˆçš„时间,å•ä½æ¯«ç§’ public int nTriggerMode; //触å‘æ¨¡å¼ 0-å…¥çº¿åœˆè§¦å‘ 1-å‡ºçº¿åœˆè§¦å‘ 2-å‡ºå…¥éƒ½æŠ“æ‹ 3-å…³é— public int nErrorRange; //速度误差值,进线圈2与进线圈3之间的速度误差值,若实际误差大于或ç‰äºŽè¯¥å€¼ï¼Œè§†é€Ÿåº¦æ— 效,å¦åˆ™å–å¹³å‡é€Ÿåº¦ 0-20 public double dSpeedCorrection; //é€Ÿåº¦æ ¡æ£ç³»æ•°ï¼Œå³é€Ÿåº¦å€¼ä¸ºæµ‹å‡ºçš„值乘以该系数 public int[] nDirection = new int[2]; //相对车é“æ–¹å‘需è¦ä¸ŠæŠ¥è½¦è¾†è¡Œé©¶æ–¹å‘,nDirection[0] 0--空 1--æ£å‘ ; nDirection[1] 0--空 1--åå‘ public byte[] szCustomParkNo = new byte[CFG_COMMON_STRING_32 + 1];// 自定义车ä½å·ï¼ˆåœè½¦åœºç”¨ï¼‰ public byte[] btReserved = new byte[3]; public int nCoilMap; // æœ‰å¤šå°‘å¯¹çº¿åœˆæ˜ å°„å…³ç³» public COIL_MAP_INFO[] stuCoilMap = (COIL_MAP_INFO[])new COIL_MAP_INFO().toArray(16);; // 线圈å·æ˜ 射关系 } // 线圈é…ç½® public static class COILCONFIG_INFO extends SdkStructure { public int nDelayFlashID; // 延时闪光ç¯åºå· æ¯ä¸ªçº¿åœˆå¯¹åº”的延时闪关ç¯åºå·ï¼ŒèŒƒå›´0~5,0表示ä¸å»¶æ—¶ä»»ä½•é—ªå…‰ç¯ public int nFlashSerialNum; // 闪光ç¯åºå· 范围0~5,0表示ä¸æ‰“å¼€é—ªå…‰ç¯ public int nRedDirection; // 红ç¯æ–¹å‘ æ¯ä¸ªçº¿åœˆå¯¹åº”的红ç¯æ–¹å‘:0-ä¸å…³è”,1-左转红ç¯,2-直行红ç¯,3-å³è½¬çº¢ç¯,4-å¾…å·¦,5-å¾…ç›´,6-å¾…å³, åªåœ¨ç”µè¦ä¸æœ‰æ•ˆ public int nTriggerMode ; // 线圈触å‘æ¨¡å¼ è§¦å‘模å¼ï¼š0-入线圈触å‘1-å‡ºçº¿åœˆè§¦å‘ public int nFlashSerialNum2; //å¤šæŠ“ç¬¬äºŒå¼ å¯¹åº”é—ªå…‰ç¯åºå· 范围0~5,0表示ä¸æ‰“å¼€é—ªå…‰ç¯ public int nFlashSerialNum3; //å¤šæŠ“ç¬¬ä¸‰å¼ å¯¹åº”é—ªå…‰ç¯åºå· 范围0~5,0表示ä¸æ‰“å¼€é—ªå…‰ç¯ } // è¿ç« 抓æ‹å¼ æ•° public static class BREAKINGSNAPTIMES_INFO extends SdkStructure { public int nNormal; // æ£å¸¸ public int nRunRedLight; // é—¯çº¢ç¯ public int nOverLine; // 压线 public int nOverYellowLine; // 压黄线 public int nRetrograde; // é€†å‘ public int nUnderSpeed; // æ¬ é€Ÿ public int nOverSpeed; // 超速 public int nWrongRunningRoute; // 有车å é“ public int nYellowInRoute; // 黄牌å é“ public int nSpecialRetrograde; // 特殊逆行 public int nTurnLeft; // è¿ç« 左转 public int nTurnRight; // è¿ç« å³è½¬ public int nCrossLane; // è¿ç« å˜é“ public int nU_Turn; // è¿ç« 调头 public int nParking; // è¿ç« åœè½¦ public int nWaitingArea; // è¿ç« 进入待行区 public int nWrongRoute; // ä¸æŒ‰è½¦é“行驶 public int nParkingSpaceParking; // 车ä½æœ‰è½¦ public int nParkingSpaceNoParking; // 车ä½æ— 车 public int nRunYellowLight; // é—¯é»„ç¯ public int nStay; // è¿ç« åœç•™ public int nPedestrainPriority; // 斑马线行人优先è¿ç« public int nVehicleInBusRoute; // è¿ç« å é“ public int nBacking; // è¿ç« 倒车 public int nOverStopLine; // 压åœæ¢çº¿ public int nParkingOnYellowBox; // é»„ç½‘æ ¼çº¿åœè½¦ public int nRestrictedPlate; // å—é™è½¦ç‰Œ public int nNoPassing; // ç¦è¡Œ public int nWithoutSafeBelt; // ä¸ç³»å®‰å…¨å¸¦ public int nDriverSmoking; // 驾驶员抽烟 public int nDriverCalling; // é©¾é©¶å‘˜æ‰“ç”µè¯ public int nPedestrianRunRedLight; // è¡Œäººé—¯çº¢ç¯ public int nPassNotInOrder; // 未按规定ä¾æ¬¡é€šè¡Œ } // OSD属性 public static class OSD_INFO extends SdkStructure { public BLACK_REGION_INFO stBackRegionInfo; //OSD黑边属性 public int nOSDAttrScheme; //OSD属性é…置方案 0=未知 , 1=全体OSD项共用属性 , 2=æ¯ä¸ªOSD项一个属性 public OSD_ATTR_SCHEME stOSDAttrScheme; //OSD属性é…置方案内容 public OSD_CUSTOM_SORT[] stOSDCustomSorts = (OSD_CUSTOM_SORT[])new OSD_CUSTOM_SORT().toArray(MAX_OSD_CUSTOM_SORT_NUM); //OSDå åŠ å†…å®¹è‡ªå®šä¹‰æŽ’åº public int nOSDCustomSortNum; public int nRedLightTimeDisplay; //OSD红ç¯æ—¶é—´é…ç½® 0=未知,1=è¿æ³•æœ€åŽä¸€å¼ ,2=æ‰€æœ‰å¼ public byte cSeperater; //OSDä¸åŒé¡¹ä¹‹é—´çš„分隔符 public byte[] bReserved = new byte[3]; //å—èŠ‚å¯¹é½ public byte[] szOSDOrder = new byte[MAX_CONF_CHAR]; public int nOSDContentScheme; //0=未知, 1=Mask , 2=CustomizeSort public OSD_CUSTOM_INFO stOSDCustomInfo; //OSD自定义项 } // OSD黑边 public static class BLACK_REGION_INFO extends SdkStructure { public int nHeight; //黑边高度 å–值范围:0 ~ ( 8192-原图片高度) public int nOSDPosition; //黑边ä½ç½® 0=未知 , 1=顶部 , 2=底部 } // OSD属性é…置方案内容 public static class OSD_ATTR_SCHEME extends SdkStructure { public OSD_WHOLE_ATTR stWholeAttr; //全体OSD项共用属性 } // 全体OSD项共用属性 public static class OSD_WHOLE_ATTR extends SdkStructure { public int bPositionAsBlackRegion; //BOOL类型,ä½ç½®æ˜¯å¦åŒé»‘边相åŒ,true时,下é¢çš„Positionæ— æ•ˆ,BOOL类型 public CFG_RECT stPostion; //ä½ç½®,ä¸èƒ½è¶…过图片范围 public int bNewLine; //BOOL类型,超出矩形范围是å¦æ¢è¡Œ,bPositionAsBlackRegion为true时有效,BOOL类型 public int bLoneVehicle; //BOOL类型,车辆信æ¯ç‹¬ç«‹æ˜¾ç¤º,true 一行显示一辆车信æ¯,false å…许多辆车信æ¯æ˜¾ç¤ºåœ¨ä¸€è¡Œ,BOOL类型 } // OSDå åŠ å†…å®¹è‡ªå®šä¹‰æŽ’åº public static class OSD_CUSTOM_SORT extends SdkStructure { public OSD_CUSTOM_ELEMENT[] stElements = (OSD_CUSTOM_ELEMENT[])new OSD_CUSTOM_ELEMENT().toArray(MAX_OSD_CUSTOM_SORT_ELEM_NUM); //具体å åŠ å…ƒç´ public int nElementNum; } // OSD具体å åŠ å…ƒç´ public static class OSD_CUSTOM_ELEMENT extends SdkStructure { public int nNameType; //å称类型, 0:szNameå—段å«ä¹‰å‚ç…§szOSDOrderå—段定义的项 // 1:"Name"å—æ®µè¡¨ç¤ºè‡ªå®šä¹‰é¡¹ï¼Œæ— éœ€è§£æž public byte[] szName = new byte[MAX_OSD_CUSTOM_VALUE_LEN]; // 该项å称 public byte[] szPrefix = new byte[MAX_PRE_POX_STR_LEN]; // å åŠ å‰ç¼€å—符串 public byte[] szPostfix = new byte[MAX_PRE_POX_STR_LEN]; // å åŠ åŽç¼€å—符串 public int nSeperaterCount; // åŽé¢æ·»åŠ 分隔符个数 } // OSD自定义项 public static class OSD_CUSTOM_INFO extends SdkStructure { public OSD_CUSTOM_GENERAL_INFO[] stGeneralInfos = (OSD_CUSTOM_GENERAL_INFO[])new OSD_CUSTOM_GENERAL_INFO().toArray(MAX_OSD_CUSTOM_GENERAL_NUM); //具体å åŠ å…ƒç´ public int nGeneralInfoNum; } public static class OSD_CUSTOM_GENERAL_INFO extends SdkStructure { public int bEnable; //BOOL类型,是å¦å åŠ } public static class RADAR_INFO extends SdkStructure { public int nAngle; //角度,用于修æ£é›·è¾¾æŽ¢å¤´å®‰è£…çš„è§’åº¦é€ æˆçš„速度误差,范围[0,90] public int nAntiJammingValue; //抗干扰门槛值 public int nComeInValue; //æ¥å‘进入门槛值,å–值范围[0,65535] public int nComeOutValue; //æ¥å‘离开门槛值 public int nDelayTime; //雷达延时,å•ä½ms,范围[0,255] public int nDetectBreaking; //è¿ç« 类型掩ç ,从低ä½åˆ°é«˜ä½ä¾æ¬¡æ˜¯: //0-æ£å¸¸,1-闯红ç¯, 2-压线, 3-逆行,4-æ¬ é€Ÿ //5-超速,6-有车å é“,7-黄牌å é“,8-闯黄ç¯,9-è¿ç« å å…¬äº¤è½¦é“ public int nDetectMode; //æ£€æµ‹æ¨¡å¼ 0-车头检测 1-车尾检测 2-åŒå‘检测 public int nInstallMode; //é›·è¾¾å®‰è£…æ–¹å¼ 0-侧é¢å®‰è£… 1-上方安装 public int nLevel; //çµæ•åº¦,0级çµæ•åº¦æœ€é«˜,范围[0,5] public int nMultiTargetFilter; //å¤šç›®æ ‡è¿‡æ»¤æ¨¡å¼,0-æ£å¸¸ 1-过滤 public int nWentEndValue; //去å‘ä¿¡å·ç»“æŸé—¨æ§›å€¼ public int nWentInValue; //去å‘进入门槛值 public int nWentOutValue; //去å‘离开门槛值 } // 串å£çŠ¶æ€ public static class NET_COMM_STATE extends SdkStructure { public int uBeOpened; // 串å£æ˜¯å¦æ‰“å¼€,0:未打开 1:打开. public int uBaudRate; // 波特率, 1~8分别表示 1200 2400 4800 9600 19200 38400 57600 115200 public int uDataBites; // æ•°æ®ä½ï¼Œ4~8表示4ä½~8ä½ public int uStopBits; // åœæ¢ä½, 232ä¸²å£ ï¼š 数值0 代表åœæ¢ä½1; 数值1 代表åœæ¢ä½1.5; 数值2 代表åœæ¢ä½2. 485ä¸²å£ ï¼š 数值1 代表åœæ¢ä½1; 数值2 代表åœæ¢ä½2. public int uParity; // 检验, 0ï¼šæ— æ ¡éªŒï¼Œ1ï¼šå¥‡æ ¡éªŒï¼›2:å¶æ ¡éªŒ; public byte[] bReserved = new byte[32]; } // é—¨ç¦å¡è®°å½•æŸ¥è¯¢æ¡ä»¶ public static class FIND_RECORD_ACCESSCTLCARD_CONDITION extends SdkStructure { public int dwSize; public byte[] szCardNo = new byte[NET_MAX_CARDNO_LEN]; // å¡å· public byte[] szUserID = new byte[NET_MAX_USERID_LEN]; // 用户ID public int bIsValid; // 是å¦æœ‰æ•ˆ, 1:有效, 0:æ— æ•ˆ , boolean类型,为1或者0 public int abCardNo; // å¡å·æŸ¥è¯¢æ¡ä»¶æ˜¯å¦æœ‰æ•ˆ,针对æˆå‘˜ szCardNo,boolean类型,为1或者0 public int abUserID; // 用户ID查询æ¡ä»¶æ˜¯å¦æœ‰æ•ˆ,针对æˆå‘˜ szUserID, boolean类型,为1或者0 public int abIsValid; // IsValid查询æ¡ä»¶æ˜¯å¦æœ‰æ•ˆ,针对æˆå‘˜ bIsValid, boolean类型,为1或者0 public FIND_RECORD_ACCESSCTLCARD_CONDITION() { this.dwSize = this.size(); } } // é—¨ç¦å¡è®°å½•é›†ä¿¡æ¯ public static class NET_RECORDSET_ACCESS_CTL_CARD extends SdkStructure { public int dwSize; public int nRecNo; // 记录集编å·,åªè¯» public NET_TIME stuCreateTime = new NET_TIME(); // 创建时间 public byte[] szCardNo = new byte[NET_MAX_CARDNO_LEN]; // å¡å· public byte[] szUserID = new byte[NET_MAX_USERID_LEN]; // 用户ID, 设备暂ä¸æ”¯æŒ public int emStatus; // å¡çŠ¶æ€ NET_ACCESSCTLCARD_STATE public int emType; // å¡ç±»åž‹ NET_ACCESSCTLCARD_TYPE public byte[] szPsw = new byte[NET_MAX_CARDPWD_LEN]; // å¡å¯†ç public int nDoorNum; // 有效的门数目; public int[] sznDoors = new int[NET_MAX_DOOR_NUM]; // 有æƒé™çš„é—¨åºå·,å³CFG_CMD_ACCESS_EVENTé…ç½®çš„æ•°ç»„ä¸‹æ ‡ public int nTimeSectionNum; // 有效的的开门时间段数目 public int[] sznTimeSectionNo = new int[NET_MAX_TIMESECTION_NUM]; // 开门时间段索引,å³CFG_ACCESS_TIMESCHEDULE_INFOçš„æ•°ç»„ä¸‹æ ‡ public int nUserTime; // 使用次数,仅当æ¥å®¾å¡æ—¶æœ‰æ•ˆ public NET_TIME stuValidStartTime = new NET_TIME(); // 开始有效期, 设备暂ä¸æ”¯æŒæ—¶åˆ†ç§’ public NET_TIME stuValidEndTime = new NET_TIME(); // 结æŸæœ‰æ•ˆæœŸ, 设备暂ä¸æ”¯æŒæ—¶åˆ†ç§’ public int bIsValid; // 是å¦æœ‰æ•ˆ,1有效; 0æ— æ•ˆ, boolean类型,为1或者0 public NET_ACCESSCTLCARD_FINGERPRINT_PACKET stuFingerPrintInfo; // 下å‘ä¿¡æ¯æ•°æ®ä¿¡æ¯ï¼Œä»…为兼容性ä¿ç•™ï¼Œè¯·ä½¿ç”¨ stuFingerPrintInfoEx, 如果使用,内部的 pPacketData,请åˆå§‹åŒ– public int bFirstEnter; // 是å¦æ‹¥æœ‰é¦–å¡æƒé™, boolean类型,为1或者0 public byte[] szCardName = new byte[NET_MAX_CARDNAME_LEN]; // å¡å‘½å public byte[] szVTOPosition = new byte[NET_COMMON_STRING_64]; // é—¨å£æœºå…³è”ä½ç½® public int bHandicap; // 是å¦ä¸ºæ®‹éšœäººå£«å¡, boolean类型,为1或者0 public int bEnableExtended; // å¯ç”¨æˆå‘˜ stuFingerPrintInfoEx, boolean类型,为1或者0 public NET_ACCESSCTLCARD_FINGERPRINT_PACKET_EX stuFingerPrintInfoEx; // ä¿¡æ¯æ•°æ®ä¿¡æ¯, 如果使用,内部的 pPacketData,请åˆå§‹åŒ– public int nFaceDataNum; // 人脸数æ®ä¸ªæ•°ä¸è¶…过20 public NET_FACE_FACEDATA[] szFaceDataArr = (NET_FACE_FACEDATA[])new NET_FACE_FACEDATA().toArray(MAX_FACE_COUTN);// 人脸模æ¿æ•°æ® public byte[] szDynamicCheckCode = new byte[MAX_COMMON_STRING_16];// 动æ€æ ¡éªŒç 。 // VTOç‰è®¾å¤‡ä¼šä¿å˜æ¤æ ¡éªŒç ,以åŽæ¯æ¬¡åˆ·å¡éƒ½ä»¥ä¸€å®šçš„算法生æˆæ–°æ ¡éªŒç 并写入ICå¡ä¸ï¼ŒåŒæ—¶æ›´æ–°VTOè®¾å¤‡çš„æ ¡éªŒç ,åªæœ‰å¡å·å’Œæ¤æ ¡éªŒç åŒæ—¶éªŒè¯é€šè¿‡æ—¶æ‰å¯å¼€é—¨ã€‚ public int nRepeatEnterRouteNum; // å潜路径个数 public int[] arRepeatEnterRoute = new int[MAX_REPEATENTERROUTE_NUM]; // å潜路径 public int nRepeatEnterRouteTimeout; // å潜超时时间 public int bNewDoor; // 是å¦å¯åŠ¨æ–°å¼€é—¨æŽˆæƒå—段,TRUE表示使用nNewDoorNumå’ŒnNewDoorså—段下å‘开门æƒé™, BOOL类型 public int nNewDoorNum; // 有效的门数目; public int[] nNewDoors = new int[MAX_ACCESSDOOR_NUM]; // 有æƒé™çš„é—¨åºå·,å³CFG_CMD_ACCESS_EVENTé…ç½®çš„æ•°ç»„ä¸‹æ ‡ public int nNewTimeSectionNum; // 有效的的开门时间段数目 public int[] nNewTimeSectionNo = new int[MAX_ACCESSDOOR_NUM]; // 开门时间段索引,å³CFG_ACCESS_TIMESCHEDULE_INFOçš„æ•°ç»„ä¸‹æ ‡ public byte[] szCitizenIDNo = new byte[MAX_COMMON_STRING_32]; // è¯ä»¶å·ç public int nSpecialDaysScheduleNum; // å‡æ—¥è®¡åˆ’è¡¨ç¤ºæ•°é‡ public int[] arSpecialDaysSchedule = new int[MAX_ACCESSDOOR_NUM];// å‡æ—¥è®¡åˆ’æ ‡è¯†// 缺点:目å‰æ–¹æ¡ˆåªæ”¯æŒä¸€å¡åˆ·ä¸€ä¸ªè®¾å¤‡ã€‚ public int nUserType; // 用户类型, 0 普通用户, 1 ç¦æ¢åå•ç”¨æˆ· public int nFloorNum; // æœ‰æ•ˆçš„æ¥¼å±‚æ•°é‡ public FLOOR_NO[] szFloorNoArr = (FLOOR_NO[])new FLOOR_NO().toArray(MAX_ACCESS_FLOOR_NUM); // æ¥¼å±‚å· public byte[] szSection = new byte[MAX_COMMON_STRING_64]; //部门å称 public int nScore; //信用积分 public byte[] szCompanyName = new byte[MAX_COMPANY_NAME_LEN];//å•ä½å称 public int nSectionID; //部门ID 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 emAuthority; // 用户æƒé™ï¼Œè¯¦è§NET_ACCESSCTLCARD_AUTHORITY public byte[] szCompanionName=new byte[120]; // 陪åŒäººå§“å public byte[] szCompanionCompany=new byte[200]; // 陪åŒäººå•ä½ public NET_TIME stuTmpAuthBeginTime; // 临时授æƒå¼€å§‹æ—¶é—´,当该时间和其他时间åŒæ—¶ç”Ÿæ•ˆæ—¶ï¼Œä»¥æ¤æ—¶é—´ä¸ºæœ€é«˜ä¼˜å…ˆçº§ public NET_TIME stuTmpAuthEndTime; // 临时授æƒç»“æŸæ—¶é—´,当该时间和其他时间åŒæ—¶ç”Ÿæ•ˆæ—¶ï¼Œä»¥æ¤æ—¶é—´ä¸ºæœ€é«˜ä¼˜å…ˆçº§ public int bFloorNoExValid; // 楼层å·æ‰©å±• szFloorNoEx 是å¦æœ‰æ•ˆ public int nFloorNumEx; // 有效的楼层数é‡æ‰©å±• public byte[] szFloorNoEx=new byte[512*NET_COMMON_STRING_4]; // 楼层å·æ‰©å±• public byte[] szSubUserID=new byte[32]; // 用户ID public byte[] szPhoneNumber=new byte[32]; // 人员电è¯å·ç public byte[] szPhotoPath=new byte[256]; // 人员照片对应在ftp上的路径 public byte[] szCause=new byte[64]; // æ¥è®¿åŽŸå› public byte[] szCompanionCard=new byte[32]; // 陪åŒäººå‘˜è¯ä»¶å· public byte[] szCitizenAddress=new byte[128]; // è¯ä»¶åœ°å€ public NET_TIME stuBirthDay; // 出生日期(年月日有效) public boolean bFloorNoEx2Valid; // stuFloors2 是å¦æœ‰æ•ˆ /** * 对应结构体{@link NET_FLOORS_INFO} */ public Pointer pstuFloorsEx2; // 楼层å·ï¼ˆå†æ¬¡æ‰©å±•ï¼‰ public byte[] szDefaultFloor=new byte[8]; // 默认楼层å·ï¼ˆæ¢¯æŽ§éœ€æ±‚) public int nUserTimeSectionNum; // 用户时间段有效个数 public USER_TIME_SECTION[] szUserTimeSections= (USER_TIME_SECTION[])new USER_TIME_SECTION().toArray(6); //é’ˆå¯¹ç”¨æˆ·è‡ªèº«çš„å¼€é—¨æ—¶é—´æ®µæ ¡éªŒï¼Œæœ€å¤šæ”¯æŒ6个时间段 public byte[] szWorkClass=new byte[256]; // 工作ç别 public byte[] byReverseed = new byte[1476]; //ä¿ç•™å¤§å° public NET_RECORDSET_ACCESS_CTL_CARD() { this.dwSize = this.size(); } } // 用户æƒé™ public static class NET_ACCESSCTLCARD_AUTHORITY extends SdkStructure { public static final int NET_ACCESSCTLCARD_AUTHORITY_UNKNOWN = 0; // 未知 public static final int NET_ACCESSCTLCARD_AUTHORITY_ADMINISTRATORS = 1; // 管ç†å‘˜ public static final int NET_ACCESSCTLCARD_AUTHORITY_CUSTOMER = 2; // 普通用户 } public static class FLOOR_NO extends SdkStructure { public byte[] szFloorNo = new byte[NET_COMMON_STRING_4]; // æ¥¼å±‚å· } // å¡çŠ¶æ€ public static class NET_ACCESSCTLCARD_STATE extends SdkStructure { public static final int NET_ACCESSCTLCARD_STATE_UNKNOWN = -1; public static final int NET_ACCESSCTLCARD_STATE_NORMAL = 0; // æ£å¸¸ public static final int NET_ACCESSCTLCARD_STATE_LOSE = 0x01; // 挂失 public static final int NET_ACCESSCTLCARD_STATE_LOGOFF = 0x02; // 注销 public static final int NET_ACCESSCTLCARD_STATE_FREEZE = 0x04; // 冻结 public static final int NET_ACCESSCTLCARD_STATE_ARREARAGE = 0x08; // æ¬ è´¹ public static final int NET_ACCESSCTLCARD_STATE_OVERDUE = 0x10; // 逾期 public static final int NET_ACCESSCTLCARD_STATE_PREARREARAGE = 0x20; // é¢„æ¬ è´¹(还是å¯ä»¥å¼€é—¨,但有è¯éŸ³æ示) } // ä¿¡æ¯æ•°æ®ï¼Œåªç”¨äºŽä¸‹å‘ä¿¡æ¯ public static class NET_ACCESSCTLCARD_FINGERPRINT_PACKET extends SdkStructure { public int dwSize; public int nLength; // å•ä¸ªæ•°æ®åŒ…长度,å•ä½å—节 public int nCount; // 包个数 public Pointer pPacketData; // 所有信æ¯æ•°æ®åŒ…,用户申请内å˜å¹¶å¡«å……,长度为 nLength*nCount public NET_ACCESSCTLCARD_FINGERPRINT_PACKET() { this.dwSize = this.size(); } } // ä¿¡æ¯æ•°æ®æ‰©å±•ï¼Œå¯ç”¨äºŽä¸‹å‘和获å–ä¿¡æ¯ public static class NET_ACCESSCTLCARD_FINGERPRINT_PACKET_EX extends SdkStructure { public int nLength; // å•ä¸ªæ•°æ®åŒ…长度,å•ä½å—节 public int nCount; // 包个数 public Pointer pPacketData; // 所有信æ¯æ•°æ®åŒ…, 用户申请内å˜,大å°è‡³å°‘为nLength * nCount public int nPacketLen; // pPacketData 指å‘内å˜åŒºçš„大å°ï¼Œç”¨æˆ·å¡«å†™ public int nRealPacketLen; // 返回给用户实际信æ¯æ€»å¤§å° public int nDuressIndex; // èƒè¿«ä¿¡æ¯åºå·ï¼ŒèŒƒå›´1~nCount public byte[] byReverseed = new byte[1020]; //ä¿ç•™å¤§å° } // 查询记录能力集能力集 public static class CFG_CAP_RECORDFINDER_INFO extends SdkStructure { public int nMaxPageSize;//最大分页æ¡æ•° public int bSupportRealUTC;// 查询表是å¦æ”¯æŒæŒ‰çœŸå®žUTC时间作为æ¡ä»¶æŸ¥è¯¢ } // 时间åŒæ¥æœåŠ¡å™¨é…ç½® public static class CFG_NTP_INFO extends SdkStructure { public int bEnable; // 使能开关,BOOL类型 public byte[] szAddress = new byte[MAX_ADDRESS_LEN]; // IP地å€æˆ–网络å public int nPort; // 端å£å· public int nUpdatePeriod; // 更新周期,å•ä½ä¸ºåˆ†é’Ÿ public int emTimeZoneType; // 时区, å‚考 EM_CFG_TIME_ZONE_TYPE public byte[] szTimeZoneDesc = new byte[MAX_NAME_LEN]; // 时区æè¿° public int nSandbyServerNum; // 实际备用NTPæœåŠ¡å™¨ä¸ªæ•° public CFG_NTP_SERVER[] stuStandbyServer = (CFG_NTP_SERVER[])new CFG_NTP_SERVER().toArray(MAX_NTP_SERVER); // 备选NTPæœåŠ¡å™¨åœ°å€ public int nTolerance; // (机器人使用)表示设置的时间和当å‰æ—¶é—´çš„容差,å•ä½ä¸ºç§’,如果设置的时间和当å‰çš„时间在容差范围内,则ä¸æ›´æ–°å½“å‰æ—¶é—´ã€‚0 表示æ¯æ¬¡éƒ½ä¿®æ”¹ã€‚ } // NTPæœåŠ¡å™¨ public static class CFG_NTP_SERVER extends SdkStructure { public int bEnable; // BOOL类型 public byte[] szAddress = new byte[MAX_ADDRESS_LEN]; // IP地å€æˆ–网络å public int nPort; // 端å£å· } // 时区定义(NTP) public static class EM_CFG_TIME_ZONE_TYPE extends SdkStructure { public static final int EM_CFG_TIME_ZONE_0 = 0; // {0, 0*3600,"GMT+00:00"} public static final int EM_CFG_TIME_ZONE_1 = 1; // {1, 1*3600,"GMT+01:00"} public static final int EM_CFG_TIME_ZONE_2 = 2; // {2, 2*3600,"GMT+02:00"} public static final int EM_CFG_TIME_ZONE_3 = 3; // {3, 3*3600,"GMT+03:00"} public static final int EM_CFG_TIME_ZONE_4 = 4; // {4, 3*3600+1800,"GMT+03:30"} public static final int EM_CFG_TIME_ZONE_5 = 5; // {5, 4*3600,"GMT+04:00"} public static final int EM_CFG_TIME_ZONE_6 = 6; // {6, 4*3600+1800,"GMT+04:30"} public static final int EM_CFG_TIME_ZONE_7 = 7; // {7, 5*3600,"GMT+05:00"} public static final int EM_CFG_TIME_ZONE_8 = 8; // {8, 5*3600+1800,"GMT+05:30"} public static final int EM_CFG_TIME_ZONE_9 = 9; // {9, 5*3600+1800+900,"GMT+05:45"} public static final int EM_CFG_TIME_ZONE_10 = 10; // {10, 6*3600,"GMT+06:00"} public static final int EM_CFG_TIME_ZONE_11 = 11; // {11, 6*3600+1800,"GMT+06:30"} public static final int EM_CFG_TIME_ZONE_12 = 12; // {12, 7*3600,"GMT+07:00"} public static final int EM_CFG_TIME_ZONE_13 = 13; // {13, 8*3600,"GMT+08:00"} public static final int EM_CFG_TIME_ZONE_14 = 14; // {14, 9*3600,"GMT+09:00"} public static final int EM_CFG_TIME_ZONE_15 = 15; // {15, 9*3600+1800,"GMT+09:30"} public static final int EM_CFG_TIME_ZONE_16 = 16; // {16, 10*3600,"GMT+10:00"} public static final int EM_CFG_TIME_ZONE_17 = 17; // {17, 11*3600,"GMT+11:00"} public static final int EM_CFG_TIME_ZONE_18 = 18; // {18, 12*3600,"GMT+12:00"} public static final int EM_CFG_TIME_ZONE_19 = 19; // {19, 13*3600,"GMT+13:00"} public static final int EM_CFG_TIME_ZONE_20 = 20; // {20, -1*3600,"GMT-01:00"} public static final int EM_CFG_TIME_ZONE_21 = 21; // {21, -2*3600,"GMT-02:00"} public static final int EM_CFG_TIME_ZONE_22 = 22; // {22, -3*3600,"GMT-03:00"} public static final int EM_CFG_TIME_ZONE_23 = 23; // {23, -3*3600-1800,"GMT-03:30"} public static final int EM_CFG_TIME_ZONE_24 = 24; // {24, -4*3600,"GMT-04:00"} public static final int EM_CFG_TIME_ZONE_25 = 25; // {25, -5*3600,"GMT-05:00"} public static final int EM_CFG_TIME_ZONE_26 = 26; // {26, -6*3600,"GMT-06:00"} public static final int EM_CFG_TIME_ZONE_27 = 27; // {27, -7*3600,"GMT-07:00"} public static final int EM_CFG_TIME_ZONE_28 = 28; // {28, -8*3600,"GMT-08:00"} public static final int EM_CFG_TIME_ZONE_29 = 29; // {29, -9*3600,"GMT-09:00"} public static final int EM_CFG_TIME_ZONE_30 = 30; // {30, -10*3600,"GMT-10:00"} public static final int EM_CFG_TIME_ZONE_31 = 31; // {31, -11*3600,"GMT-11:00"} public static final int EM_CFG_TIME_ZONE_32 = 32; // {32, -12*3600,"GMT-12:00"} } // äº‹ä»¶ä¿¡æ¯ public static class EVENT_INFO extends SdkStructure { public int nEvent; // 事件类型,å‚è§æ™ºèƒ½äº‹ä»¶ç±»åž‹ï¼Œå¦‚ EVENT_IVS_ALL public int [] arrayObejctType=new int[16]; // 支æŒçš„物体类型,当å‰æ”¯æŒ EM_OBJECT_TYPE_HUMAN, EM_OBJECT_TYPE_VECHILE, EM_OBJECT_TYPE_NOMOTOR, EM_OBJECT_TYPE_ALL public int nObjectCount; // szObejctType æ•°é‡ public byte[] byReserved=new byte[512]; // 预留å—段 }; // 录åƒä¿¡æ¯å¯¹åº” CLIENT_FindFileEx 接å£çš„ NET_FILE_QUERY_FILE 命令 查询æ¡ä»¶ // ç›®å‰æ”¯æŒé€šè¿‡è·¯å¾„查询 public static class NET_IN_MEDIA_QUERY_FILE extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public String szDirs; // 工作目录列表,一次å¯æŸ¥è¯¢å¤šä¸ªç›®å½•,为空表示查询所有目录。目录之间以分å·åˆ†éš”,如“/mnt/dvr/sda0;/mnt/dvr/sda1â€,szDirs==null 或"" 表示查询所有 public int nMediaType; // 文件类型,0:查询任æ„类型,1:查询jpg图片,2:查询dav public int nChannelID; // 通é“å·ä»Ž0开始,-1è¡¨ç¤ºæŸ¥è¯¢æ‰€æœ‰é€šé“ public NET_TIME stuStartTime; // 开始时间 public NET_TIME stuEndTime; // 结æŸæ—¶é—´ public int[] nEventLists = new int[MAX_IVS_EVENT_NUM]; // 事件类型列表,å‚è§æ™ºèƒ½åˆ†æžäº‹ä»¶ç±»åž‹ public int nEventCount; // 事件总数 public byte byVideoStream; // 视频ç æµ 0-未知 1-主ç æµ 2-è¾…ç æµ1 3-è¾…ç æµ2 4-è¾…ç æµ3 public byte[] bReserved = new byte[3]; // å—èŠ‚å¯¹é½ public int[] emFalgLists = new int[EM_RECORD_SNAP_FLAG_TYPE.FLAG_TYPE_MAX]; // 录åƒæˆ–æŠ“å›¾æ–‡ä»¶æ ‡å¿—, ä¸è®¾ç½®æ ‡å¿—表示查询所有文件, å‚考 EM_RECORD_SNAP_FLAG_TYPE public int nFalgCount; // æ ‡å¿—æ€»æ•° public NET_RECORD_CARD_INFO stuCardInfo; // å¡å·å½•åƒä¿¡æ¯, emFalgLists包å«å¡å·å½•åƒæ—¶æœ‰æ•ˆ public int nUserCount; // 用户å有效个数 public byte[] szUserName = new byte[MAX_QUERY_USER_NUM * NET_NEW_USER_NAME_LENGTH]; // 用户å public int emResultOrder; // 查询结果排åºæ–¹å¼, å‚考 EM_RESULT_ORDER_TYPE public int bTime; // 是å¦æŒ‰æ—¶é—´æŸ¥è¯¢ public int emCombination; // 查询结果是å¦åˆå¹¶å½•åƒæ–‡ä»¶ public EVENT_INFO[] stuEventInfo=(EVENT_INFO[])new EVENT_INFO().toArray(16); // 事件信æ¯ï¼Œå½“查询为 DH_FILE_QUERY_FILE_EX 类型时有效 public int nEventInfoCount; // stuEventInfo 个数 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 NET_IN_MEDIA_QUERY_FILE() { this.dwSize = this.size(); } } // 录åƒä¿¡æ¯å¯¹åº” CLIENT_FindFileEx 接å£çš„ NET_FILE_QUERY_FILE 命令 查询结果 public static class NET_OUT_MEDIA_QUERY_FILE extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nChannelID; // 通é“å·ä»Ž0开始,-1è¡¨ç¤ºæŸ¥è¯¢æ‰€æœ‰é€šé“ public NET_TIME stuStartTime; // 开始时间 public NET_TIME stuEndTime; // 结æŸæ—¶é—´ public int nFileSize; // 文件长度 public byte byFileType; // 文件类型 1:jpg图片, 2: dav public byte byDriveNo; // 该å—段已废弃,åŽç»å¼€å‘使用 nDriveNoæˆå‘˜ public byte byPartition; // åˆ†åŒºå· public byte byVideoStream; // 视频ç æµ 0-未知 1-主ç æµ 2-è¾…ç æµ1 3-è¾…ç æµ 4-è¾…ç æµ public int nCluster; // ç°‡å· public byte[] szFilePath = new byte[MAX_PATH]; // 文件路径 public int[] nEventLists = new int[MAX_IVS_EVENT_NUM]; // å…³è”的事件列表,事件类型列表,å‚è§æ™ºèƒ½åˆ†æžäº‹ä»¶ç±»åž‹ public int nEventCount; //事件总数 public int[] emFalgLists = new int[EM_RECORD_SNAP_FLAG_TYPE.FLAG_TYPE_MAX]; // 录åƒæˆ–æŠ“å›¾æ–‡ä»¶æ ‡å¿—, å‚考 EM_RECORD_SNAP_FLAG_TYPE public int nFalgCount; //æ ‡å¿—æ€»æ•° public int nDriveNo; // ç£ç›˜å· //é¢‘æµ“ç¼©æ–‡ä»¶ç›¸å…³ä¿¡æ¯ public byte[] szSynopsisPicPath = new byte[NET_COMMON_STRING_512]; // 预处ç†æ–‡ä»¶æå–到的快照 文件路径 // 支æŒHTTP URL表示:"http://www.te.com/1.jpg" // 支æŒFTP URL表示: "ftp://ftp.te.com/1.jpg" // 支æŒæœåŠ¡å™¨æœ¬åœ°è·¯å¾„ // a)"C:/pic/1.jpg" // b)"/mnt//2010/8/11/dav/15:40:50.jpg" public int nSynopsisMaxTime; // 支æŒæµ“缩视频最大时间长度,å•ä½ 秒 public int nSynopsisMinTime; // 支æŒæµ“缩视频最å°æ—¶é—´é•¿åº¦,å•ä½ 秒 //文件摘è¦ä¿¡æ¯ public int nFileSummaryNum; // 文件摘è¦ä¿¡æ¯æ•° public NET_FILE_SUMMARY_INFO[] stFileSummaryInfo = (NET_FILE_SUMMARY_INFO[])new NET_FILE_SUMMARY_INFO().toArray(MAX_FILE_SUMMARY_NUM); // 文件摘è¦ä¿¡æ¯ public long nFileSizeEx; // 文件长度扩展,支æŒæ–‡ä»¶é•¿åº¦å¤§äºŽ4G,å•ä½å—节 public int nTotalFrame; // 查询录åƒæ®µå†…所有帧总和,ä¸åŒºåˆ†å¸§ç±»åž‹ public int emFileState; // 录åƒæ–‡ä»¶çš„状æ€,EM_VIDEO_FILE_STATE public byte[] szWorkDir=new byte[256]; // 录åƒæ–‡ä»¶çš„å˜å‚¨ç›®å½• public byte[] szThumbnail=new byte[260]; // 缩略图路径,å¯æ ¹æ®è¯¥è·¯å¾„下载缩略图 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 NET_OUT_MEDIA_QUERY_FILE() { this.dwSize = this.size(); } } // å¡å·å½•åƒä¿¡æ¯ public static class NET_RECORD_CARD_INFO extends SdkStructure { public int dwSize; public int nType; // 类型, 0-Card, 1-Field public byte[] szCardNo = new byte[NET_MAX_CARD_INFO_LEN]; // å¡å· public int emTradeType; // 交易类型, å‚考 EM_ATM_TRADE_TYPE public byte[] szAmount = new byte[NET_COMMON_STRING_64]; // 交易金é¢, 空å—符串表示ä¸é™é‡‘é¢ public int nError; // 错误ç , 0-所有错误, 1-åžé’ž, 2-åžå¡ public int nFieldCount; // 域数é‡, 按域查询时有效 public byte[] szFields = new byte[MAX_CARD_RECORD_FIELD_NUM * NET_COMMON_STRING_256]; // 域信æ¯, 按域查询时有效 public byte[] szChange = new byte[NET_COMMON_STRING_32]; // 零钱 public NET_RECORD_CARD_INFO() { this.dwSize = this.size(); } } // 文件摘è¦ä¿¡æ¯ public static class NET_FILE_SUMMARY_INFO extends SdkStructure { public byte[] szKey = new byte[NET_COMMON_STRING_64]; // 摘è¦å称 public byte[] szValue = new byte[NET_COMMON_STRING_512]; // 摘è¦å†…容 public byte[] bReserved = new byte[256]; // ä¿ç•™å—段 } // 录åƒæˆ–æŠ“å›¾æ–‡ä»¶æ ‡å¿— public static class EM_RECORD_SNAP_FLAG_TYPE extends SdkStructure { public static final int FLAG_TYPE_TIMING = 0; //定时文件 public static final int FLAG_TYPE_MANUAL = 1; //手动文件 public static final int FLAG_TYPE_MARKED = 2; //é‡è¦æ–‡ä»¶ public static final int FLAG_TYPE_EVENT = 3; //事件文件 public static final int FLAG_TYPE_MOSAIC = 4; //åˆæˆå›¾ç‰‡ public static final int FLAG_TYPE_CUTOUT = 5; //æŠ å›¾å›¾ç‰‡ public static final int FLAG_TYPE_LEAVE_WORD = 6; //留言文件 public static final int FLAG_TYPE_TALKBACK_LOCAL_SIDE = 7; //对讲本地方文件 public static final int FLAG_TYPE_TALKBACK_REMOTE_SIDE = 8; //对讲远程方文件 public static final int FLAG_TYPE_SYNOPSIS_VIDEO = 9; //浓缩视频 public static final int FLAG_TYPE_ORIGINAL_VIDEO = 10; //原始视频 public static final int FLAG_TYPE_PRE_ORIGINAL_VIDEO = 11; //å·²ç»é¢„处ç†çš„原始视频 public static final int FLAG_TYPE_BLACK_PLATE = 12; //ç¦æ¢åå•å›¾ç‰‡ public static final int FLAG_TYPE_ORIGINAL_PIC = 13; //原始图片 public static final int FLAG_TYPE_CARD = 14; //å¡å·å½•åƒ public static final int FLAG_TYPE_MAX = 128; } // 交易类型 public static class EM_ATM_TRADE_TYPE extends SdkStructure { public static final int ATM_TRADE_ALL = 0; // 所有类型 public static final int ATM_TRADE_ENQUIRY = 1; // 查询 public static final int ATM_TRADE_WITHDRAW = 2; // å–款 public static final int ATM_TRADE_MODIFY_PASSWORD = 3; // 修改密ç public static final int ATM_TRADE_TRANSFER = 4; // 转账 public static final int ATM_TRADE_DEPOSIT = 5; // å˜æ¬¾ public static final int ATM_TRADE_CARDLESS_ENQUIRY = 6; // æ— å¡æŸ¥è¯¢ public static final int ATM_TRADE_CARDLESS_DEPOSIT = 7; // æ— å¡å˜æ¬¾ public static final int ATM_TRADE_OTHER = 8; // 其他 } // 查询结果排åºæ–¹å¼ public static class EM_RESULT_ORDER_TYPE extends SdkStructure { public static final int EM_RESULT_ORDER_UNKNOWN = 0; // 未知 public static final int EM_RESULT_ORDER_ASCENT_BYTIME = 1; // 按时间å‡åºæŽ’åº public static final int EM_RESULT_ORDER_DESCENT_BYTIME = 2; // 按时间é™åºæŽ’åº } // CLIENT_ControlDevice 接å£çš„ CTRLTYPE_CTRL_START_VIDEO_ANALYSE 命令å‚æ•°, å¼€å§‹è§†é¢‘æ™ºèƒ½åˆ†æž public static class NET_CTRL_START_VIDEO_ANALYSE extends SdkStructure { public int dwSize; public int nChannelId; // 通é“å· public NET_CTRL_START_VIDEO_ANALYSE() { this.dwSize = this.size(); } } // CLIENT_ControlDevice 接å£çš„ CTRLTYPE_CTRL_STOP_VIDEO_ANALYSE 命令å‚æ•°, åœæ¢è§†é¢‘æ™ºèƒ½åˆ†æž public static class NET_CTRL_STOP_VIDEO_ANALYSE extends SdkStructure { public int dwSize; public int nChannelId; // 通é“å· public NET_CTRL_STOP_VIDEO_ANALYSE() { this.dwSize = this.size(); } } // CLIENT_AttachVideoAnalyseState 接å£è¾“å…¥å‚æ•° public static class NET_IN_ATTACH_VIDEOANALYSE_STATE extends SdkStructure { public int dwSize; public int nChannleId; // 通é“å· public Callback cbVideoAnalyseState; // 视频分æžçŠ¶æ€å›žè°ƒå‡½æ•°,fVideoAnalyseState 回调 public Pointer dwUser; // ç”¨æˆ·ä¿¡æ¯ public NET_IN_ATTACH_VIDEOANALYSE_STATE() { this.dwSize = this.size(); } } // CLIENT_AttachVideoAnalyseState 接å£è¾“出å‚æ•° public static class NET_OUT_ATTACH_VIDEOANALYSE_STATE extends SdkStructure { public int dwSize; public LLong lAttachHandle; // 分æžè¿›åº¦å¥æŸ„,å”¯ä¸€æ ‡è¯†æŸä¸€é€šé“的分æžè¿›åº¦ public NET_OUT_ATTACH_VIDEOANALYSE_STATE() { this.dwSize = this.size(); } } public static class NET_VIDEOANALYSE_STATE extends SdkStructure { public int dwSize; public int dwProgress; // 分æžè¿›åº¦,0-100 public byte[] szState = new byte[NET_COMMON_STRING_64]; // 通é“状æ€,Running":è¿è¡Œ,"Stop":åœæ¢,"NoStart":未å¯åŠ¨,"Failed":失败,"Successed":æˆåŠŸ public byte[] szFailedCode = new byte[NET_COMMON_STRING_64]; // 错误ç public NET_VIDEOANALYSE_STATE() { this.dwSize = this.size(); } } // çƒæˆåƒç«æƒ…事件信æ¯ä¸ŠæŠ¥äº‹ä»¶, 对应事件 NET_ALARM_FIREWARNING_INFO // çƒæˆåƒç«æƒ…事件信æ¯ä¸ŠæŠ¥äº‹ä»¶ #define DH_ALARM_FIREWARNING_INFO 0x31da // çƒæˆåƒç«æƒ…事件信æ¯ä¸ŠæŠ¥(对应结构体 ALARM_FIREWARNING_INFO_DETAIL) public static class ALARM_FIREWARNING_INFO_DETAIL extends SdkStructure { public int nChannel; // 对应视频通é“å· public int nWarningInfoCount; // 报è¦ä¿¡æ¯ä¸ªæ•° public NET_FIREWARNING_INFO[] stuFireWarningInfo = new NET_FIREWARNING_INFO[MAX_FIREWARNING_INFO_NUM]; // 具体报è¦ä¿¡æ¯ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展å—段结构体 public byte[] reserved = new byte[256]; public ALARM_FIREWARNING_INFO_DETAIL() { for(int i = 0; i < stuFireWarningInfo.length; i++) { stuFireWarningInfo[i] = new NET_FIREWARNING_INFO(); } } } //çƒæˆåƒç«æƒ…äº‹ä»¶ä¿¡æ¯ public static class NET_FIREWARNING_INFO extends SdkStructure { public int nPresetId; // é¢„ç½®ç‚¹ç¼–å· ä»Žæµ‹æ¸©è§„åˆ™é…ç½® CFG_RADIOMETRY_RULE_INFO ä¸é€‰æ‹© public NET_RECT stuBoundingBox; // ç€ç«ç‚¹çŸ©å½¢æ¡† public int nTemperatureUnit; // 温度å•ä½(当å‰é…置的温度å•ä½),è§ NET_TEMPERATURE_UNIT public float fTemperature; // 最高点温度值 åŒå¸§æ£€æµ‹å’Œå·®åˆ†æ£€æµ‹æä¾› public int nDistance; // ç€ç«ç‚¹è·ç¦»,å•ä½ç±³ 0è¡¨ç¤ºæ— æ•ˆ public GPS_POINT stuGpsPoint; // ç€ç«ç‚¹ç»çº¬åº¦ public PTZ_POSITION_UNIT stuPTZPosition; // 云å°è¿è¡Œä¿¡æ¯ public float fAltitude; // 高度(å•ä½ï¼šç±³) public int nThermoHFOV; // Uint32 çƒæˆåƒæ¨ªå‘视角 public int nThermoVFOV; // Uint32 çƒæˆåƒçºµå‘视角 public int nFSID; // ç«æƒ…ç¼–å·ID public NET_FIRING_GPS_INFO stuFiringGPS; // ç€ç«ç‚¹çš„GPSåæ ‡ public byte[] reserved=new byte[148]; } // ç€ç«ç‚¹ç»çº¬åº¦ public static class GPS_POINT extends SdkStructure { public int dwLongitude; // ç»åº¦(å•ä½æ˜¯ç™¾ä¸‡åˆ†ä¹‹åº¦,范围0-360度)如东ç»120.178274度表示为300178274 public int dwLatidude; // 纬度(å•ä½æ˜¯ç™¾ä¸‡åˆ†ä¹‹åº¦,范围0-180度)如北纬30.183382度表示为120183382 // ç»çº¬åº¦çš„具体转æ¢æ–¹å¼å¯ä»¥å‚考结构体 NET_WIFI_GPS_INFO ä¸çš„注释 } //云å°æŽ§åˆ¶åæ ‡å•å…ƒ public static class PTZ_POSITION_UNIT extends SdkStructure { public int nPositionX; // 云å°æ°´å¹³æ–¹å‘角度,归一化到-1~1 public int nPositionY; // 云å°åž‚ç›´æ–¹å‘角度,归一化到-1~1 public int nZoom; // 云å°å…‰åœˆæ”¾å¤§å€çŽ‡,归一化到 0~1 public byte[] szReserve = new byte[32]; // 预留32å—节 } // æœç´¢åˆ°çš„åœ°ç‚¹ä¿¡æ¯ public static class NET_WIFI_GPS_INFO extends SdkStructure { public int emPositioningResult; // 定ä½ç»“æžœ, å‚考 NET_GPS_POSITION_RESULT 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 int nSpeed; // 速度, å•ä½åƒåˆ†ä¹‹ä¸€km/H public byte[] reserved = new byte[112]; // ä¿ç•™å—段 } // 定ä½ç»“æžœ public static class NET_GPS_POSITION_RESULT extends SdkStructure { public static final int NET_GPS_POSITION_RESULT_UNKNOWN = 0; // 未知 public static final int NET_GPS_POSITION_RESULT_FAILED = 1; // 有GPSæ•°æ®,但定ä½å¤±è´¥,æ¤æ—¶å®šä½æ•°æ®æ— æ„义 public static final int NET_GPS_POSITION_RESULT_SUCCEED = 2; // 有GPSæ•°æ®,且定ä½æˆåŠŸ,æ¤æ—¶å®šä½æ•°æ®æœ‰æ„义 } // çƒæˆåƒå¢žç›Šæ¨¡å¼ public static class CFG_THERMO_GAIN_MODE extends SdkStructure { public static final int CFG_THERMO_GAIN_MODE_UNKNOWN = 0; public static final int CFG_THERMO_GAIN_MODE_HIGHTEMP = 1; // 温度异常 public static final int CFG_THERMO_GAIN_MODE_LOWTEMP = 2; // 温度异常 public static final int CFG_THERMO_GAIN_MODE_AUTO = 3; // 自动 } // çƒæˆåƒè‡ªåŠ¨å¢žç›Šè®¾ç½® public static class CFG_THERMO_AUTO_GAIN extends SdkStructure { public int nLowToHigh; // 温度超过æ¤è®¾å®šå€¼æ—¶ï¼Œè‡ªåŠ¨åˆ‡æ¢åˆ°é«˜çš„æ¸©åº¦æ¨¡å¼ public int nLHROI; // 由低的温度切æ¢åˆ°é«˜çš„温度时的ROI 百分比0~100 public int nHighToLow; // 温度下é™åˆ°æ¤è®¾å®šå€¼æ—¶ï¼Œè‡ªåŠ¨åˆ‡æ¢åˆ°ä½Žçš„æ¸©åº¦æ¨¡å¼ public int nHLROI; // 由高的温度切æ¢åˆ°ä½Žçš„温度时的ROI 百分比0~100 } // çƒæˆåƒé…置,å•ä¸ªæ¨¡å¼çš„é…ç½® public static class CFG_THERMOGRAPHY_OPTION extends SdkStructure { public int nEZoom; // å€æ•° public int nThermographyGamma; // 伽马值 public int nColorization; // ä¼ªå½©è‰²ï¼Œè§ NET_THERMO_COLORIZATION public int nSmartOptimizer; // 智能场景优化指数 0 ~100, 具体å–值范围由能力决定 public int bOptimizedRegion; // 是å¦å¼€å¯æ„Ÿå…´è¶£åŒºåŸŸï¼Œåªæœ‰æ„Ÿå…´è¶£åŒºåŸŸå†…çš„ä¿¡æ¯ä¼šè¢«çº³å…¥ç»Ÿè®¡ç”¨æ¥åšè‡ªåŠ¨äº®åº¦è°ƒæ•´ï¼ˆAGC) public int nOptimizedROIType; // æ„Ÿå…´è¶£åŒºåŸŸç±»åž‹ï¼Œè§ NET_THERMO_ROI public int nCustomRegion; // 自定义区域个数 public CFG_RECT[] stCustomRegions = (CFG_RECT[])new CFG_RECT().toArray(64); // 自定义区域,仅在 nOptimizedROIType 为 NET_THERMO_ROI_CUSTOM 时有效 public byte[] Reserved = new byte[256]; // æ¤ä¿ç•™å—段确ä¿æ¤ç»“构布局与 NET_THERMO_GRAPHY_INFO ç›¸åŒ public int nAgc; // 自动增益控制 [0-255]具体å–值范围由能力决定 public int nAgcMaxGain; // 最大自动增益 [0-255]具体å–值范围由能力决定 public int nAgcPlateau; // 增益å‡è¡¡ 具体å–值范围由能力决定 public int nGainMode; // 增益模å¼ï¼Œå‚è§ CFG_THERMO_GAIN_MODE public CFG_THERMO_AUTO_GAIN stAutoGain; // 自动增益设置,åªåœ¨å¢žç›Šæ¨¡å¼ä¸º CFG_THERMO_GAIN_MODE_AUTO 有效 public CFG_THERMO_GAIN stuHighTempGain; // 高的温度下的增益设置 public int nBaseBrightness; // 基准亮度 public int nStretchIntensity; // 拉伸强度 public CFG_RECT stuContrastRect; // 区域增强ä½ç½®,å¢žåŠ æœ¬åŒºåŸŸä¸Žå‘¨è¾¹çš„å¯¹æ¯”åº¦,8192åæ ‡ç³» } // çƒæˆåƒé…ç½® public static class CFG_THERMOGRAPHY_INFO extends SdkStructure { public int nModeCount; // 模å¼ä¸ªæ•°ï¼Œç›®å‰åªæœ‰ä¸€ä¸ª public CFG_THERMOGRAPHY_OPTION[] stOptions = new CFG_THERMOGRAPHY_OPTION[16]; // 对应ä¸åŒæ¨¡å¼çš„é…ç½® public CFG_THERMOGRAPHY_INFO() { for(int i = 0; i < stOptions.length; i++) { stOptions[i] = new CFG_THERMOGRAPHY_OPTION(); } } } // 温度å•ä½ public static class NET_TEMPERATURE_UNIT extends SdkStructure { public static final int NET_TEMPERATURE_UNIT_UNKNOWN = 0; public static final int NET_TEMPERATURE_UNIT_CENTIGRADE = 1; // æ‘„æ°åº¦ public static final int NET_TEMPERATURE_UNIT_FAHRENHEIT = 2; // åŽæ°åº¦ } // 测温规则é…置结构, 对应命令 CFG_CMD_THERMOMETRY_RULE public static class CFG_RADIOMETRY_RULE_INFO extends SdkStructure { public int nCount; // 规则个数 public CFG_RADIOMETRY_RULE[] stRule = new CFG_RADIOMETRY_RULE[512]; // 测温规则 public CFG_RADIOMETRY_RULE_EX[] stRuleEx = new CFG_RADIOMETRY_RULE_EX[512]; //测温规则-扩展新增的å—段 public CFG_RADIOMETRY_RULE_INFO() { for(int i = 0; i < stRule.length; i++) { stRule[i] = new CFG_RADIOMETRY_RULE(); } } } // 区域测温的å类型 public static class EM_CFG_AREA_SUBTYPE extends SdkStructure { public static final int EM_CFG_AREA_SUBTYPE_UNKNOWN = 0; public static final int EM_CFG_AREA_SUBTYPE_RECT = 1; // 矩形 public static final int EM_CFG_AREA_SUBTYPE_ELLIPSE = 2; // æ¤åœ† public static final int EM_CFG_AREA_SUBTYPE_POLYGON = 3; // 多边形 } // 测温规则 public static class CFG_RADIOMETRY_RULE extends SdkStructure { public int bEnable; // 测温使能, BOOL类型 public int nPresetId; // é¢„ç½®ç‚¹ç¼–å· public int nRuleId; // è§„åˆ™ç¼–å· public byte[] szName = new byte[128]; // 自定义å称 public int nMeterType; // 测温模å¼çš„ç±»åž‹ï¼Œè§ NET_RADIOMETRY_METERTYPE public CFG_POLYGON[] stCoordinates = new CFG_POLYGON[64]; // 测温点åæ ‡ 使用相对åæ ‡ä½“ç³»ï¼Œå–值å‡ä¸º0~8191 public int nCoordinateCnt; // 测温点åæ ‡å®žé™…ä¸ªæ•° public int nSamplePeriod; // æ¸©åº¦é‡‡æ ·å‘¨æœŸ å•ä½ : 秒 public CFG_RADIOMETRY_ALARMSETTING[] stAlarmSetting = new CFG_RADIOMETRY_ALARMSETTING[64]; // 测温点报è¦è®¾ç½® public int nAlarmSettingCnt; // 测温点报è¦è®¾ç½®å®žé™…个数 public CFG_RADIOMETRY_LOCALPARAM stLocalParameters; // 本地å‚æ•°é…ç½® public int emAreaSubType; // 区域测温的å类型, è§EM_CFG_AREA_SUBTYPE public CFG_RADIOMETRY_RULE() { for(int i = 0; i < stCoordinates.length; i++) { stCoordinates[i] = new CFG_POLYGON(); } for(int i = 0; i < stAlarmSetting.length; i++) { stAlarmSetting[i] = new CFG_RADIOMETRY_ALARMSETTING(); } } } // 温度统计 public static class CFG_TEMP_STATISTICS extends SdkStructure { public int bEnable; // 是å¦å¼€å¯æ¸©åº¦ç»Ÿè®¡ public byte[] szName = new byte[128]; // 测温项的åå— public int nMeterType; // 测温模å¼çš„ç±»åž‹ï¼Œè§ NET_RADIOMETRY_METERTYPE public int nPeriod; // ä¿å˜æ¸©åº¦æ•°æ®å‘¨æœŸ } // 温度统计é…置结构 public static class CFG_TEMP_STATISTICS_INFO extends SdkStructure { public int nCount; // 个数 public CFG_TEMP_STATISTICS[] stStatistics = new CFG_TEMP_STATISTICS[64]; // 温度统计 public CFG_TEMP_STATISTICS_INFO() { for(int i = 0; i < stStatistics.length; i++) { stStatistics[i] = new CFG_TEMP_STATISTICS(); } } } // 温度å•ä½ public static class CFG_TEMPERATURE_UNIT extends SdkStructure { public static final int TEMPERATURE_UNIT_UNKNOWN = 0; public static final int TEMPERATURE_UNIT_CENTIGRADE = 1; // æ‘„æ°åº¦ public static final int TEMPERATURE_UNIT_FAHRENHEIT = 2; // åŽæ°åº¦ } // çƒæˆåƒæµ‹æ¸©å…¨å±€é…ç½® public static class CFG_THERMOMETRY_INFO extends SdkStructure { public int nRelativeHumidity; // 相对湿度 public float fAtmosphericTemperature; // 大气温度 public float fObjectEmissivity; // 物体è¾å°„系数 public int nObjectDistance; // 物体è·ç¦» public float fReflectedTemperature; // 物体å射温度 public int nTemperatureUnit; // 温度å•ä½ï¼Œè§ TEMPERATURE_UNIT public int bIsothermEnable; // è‰²æ ‡åŠŸèƒ½ä½¿èƒ½ public int nMinLimitTemp; // ç‰æ¸©çº¿ä¸‹é™æ¸©åº¦å€¼ public int nMediumTemp; // ç‰æ¸©çº¿ä¸ä½æ¸©åº¦å€¼ public int nMaxLimitTemp; // ç‰æ¸©çº¿ä¸Šé™æ¸©åº¦å€¼ public int nSaturationTemp; // ç‰æ¸©çº¿é¥±å’Œæ¸©åº¦å€¼ public CFG_RECT stIsothermRect; // 色温æ¡çŸ©å½¢åŒºåŸŸï¼ˆOSD ä½ç½®ï¼‰ï¼Œä½¿ç”¨ç›¸å¯¹åæ ‡ä½“ç³»ï¼Œå–值å‡ä¸º0-8191 public int bColorBarDisplay; // 是å¦æ˜¾ç¤ºè‰²æ ‡æ¡ï¼ˆOSD å åŠ ï¼‰ public int bHotSpotFollow; // 是å¦å¼€å¯çƒç‚¹æŽ¢æµ‹è¿½è¸ªä½¿èƒ½ public int bTemperEnable; // 测温开关 public CFG_RGBA stHighCTMakerColor; // é«˜è‰²æ¸©æ ‡æ³¨é¢œè‰² public CFG_RGBA stLowCTMakerColor; // ä½Žè‰²æ¸©æ ‡æ³¨é¢œè‰² } // 测温点报è¦è®¾ç½® public static class CFG_RADIOMETRY_ALARMSETTING extends SdkStructure { public int nId; // 报è¦å”¯ä¸€ç¼–å· æŠ¥è¦ç¼–å·ç»Ÿä¸€ç¼–ç public int bEnable; // 是å¦å¼€å¯è¯¥ç‚¹æŠ¥è¦, BOOL类型 public int nResultType; // 测温报è¦ç»“æžœç±»åž‹ï¼Œè§ CFG_STATISTIC_TYPE,å¯å–值: // 点测温:具体值, // 线测温:最大, 最å°, å¹³å‡ // 区域测温:最大, 最å°, å¹³å‡, æ ‡å‡†, ä¸é—´, ISO public int nAlarmCondition; // 报è¦æ¡ä»¶ï¼Œè§ CFG_COMPARE_RESULT public float fThreshold; // 报è¦é˜ˆå€¼æ¸©åº¦ 浮点数 public float fHysteresis; // 温度误差,浮点数,比如0.1 表示æ£è´Ÿè¯¯å·®åœ¨0.1范围内 public int nDuration; // 阈值温度æŒç»æ—¶é—´ å•ä½ï¼šç§’ } // 测温规则本地å‚æ•°é…ç½® public static class CFG_RADIOMETRY_LOCALPARAM extends SdkStructure { public int bEnable; // 是å¦å¯ç”¨æœ¬åœ°é…ç½®, BOOL类型 public float fObjectEmissivity; // ç›®æ ‡è¾å°„系数 浮点数 0~1 public int nObjectDistance; // ç›®æ ‡è·ç¦» public int nRefalectedTemp; // ç›®æ ‡å射温度 } // 通é“录åƒç»„çŠ¶æ€ public static class CFG_DEVRECORD_INFO extends SdkStructure { public byte[] szDevName = new byte[MAX_NAME_LEN]; // 设备å称 public byte[] szIP = new byte[MAX_ADDRESS_LEN]; // 设备IP public byte[] szChannel = new byte[MAX_NAME_LEN]; // 通é“å· public byte[] szChannelName = new byte[MAX_NAME_LEN]; // 通é“å称 public byte[] szStoragePosition = new byte[MAX_NAME_LEN]; // å˜å‚¨ä½ç½®ä¿¡æ¯ public byte byStatus; // çŠ¶æ€ 0:未知 1:å½•åƒ 2:åœæ¢ public byte[] byReserved = new byte[3]; // å—èŠ‚å¯¹é½ } public static class CFG_DEVRECORDGROUP_INFO extends SdkStructure { public int nChannelNum; // 通é“个数 public CFG_DEVRECORD_INFO[] stuDevRecordInfo = (CFG_DEVRECORD_INFO[])new CFG_DEVRECORD_INFO().toArray(MAX_CHAN_NUM); // 通é“录åƒçŠ¶æ€ä¿¡æ¯ } // å˜å‚¨ç»„通é“相关é…ç½® public static class AV_CFG_StorageGroupChannel extends SdkStructure { public int nStructSize; public int nMaxPictures; // æ¯ä¸ªé€šé“文件夹图片å˜å‚¨ä¸Šé™, 超过就覆盖 public byte[] szPath = new byte[AV_CFG_Max_ChannelRule]; // 通é“在命å规则里的å—符串表示, %c对应的内容 public AV_CFG_StorageGroupChannel() { this.nStructSize = this.size(); } } public static class DEVICE_NAME extends SdkStructure { public byte[] szDeviceName = new byte[MAX_DEVICE_NAME_LEN]; // 历å²SSID } // å˜å‚¨ç»„é…ç½® public static class AV_CFG_StorageGroup extends SdkStructure { public int nStructSize; public byte[] szName = new byte[AV_CFG_Group_Name_Len]; // 分组å称 public byte[] szMemo = new byte[AV_CFG_Group_Memo_Len]; // 分组说明 public int nFileHoldTime; // 文件ä¿ç•™æ—¶é—´ public int bOverWrite; // å˜å‚¨ç©ºé—´æ»¡æ˜¯å¦è¦†ç›– public byte[] szRecordPathRule = new byte[AV_CFG_Max_Path]; // 录åƒæ–‡ä»¶è·¯å¾„命å规则 public byte[] szPicturePathRule = new byte[AV_CFG_Max_Path]; // 图片文件路径命å规则 %yå¹´, %M月, %dæ—¥, %hæ—¶, %m分, %s秒, %c通é“路径 // 如果年月日时分秒出现两次, 第一次表示开始时间, 第二次表示结æŸæ—¶é—´ public AV_CFG_StorageGroupChannel[] stuChannels = new AV_CFG_StorageGroupChannel[AV_CFG_Max_Channel_Num];// 通é“相关é…ç½® public int nChannelCount; // 通é“é…置数 public byte[] szCustomName = new byte[AV_CFG_Group_Name_Len]; // 自定义å称,若为空使用szName public DEVICE_NAME[] szSubDevices = new DEVICE_NAME[MAX_DEV_NUM]; // å设备列表 public int nSubDevices; // åè®¾å¤‡æ•°é‡ public AV_CFG_StorageGroup() { this.nStructSize = this.size(); for (int i = 0; i < stuChannels.length; ++i) { stuChannels[i] = new AV_CFG_StorageGroupChannel(); } for (int i = 0; i < szSubDevices.length; ++i) { szSubDevices[i] = new DEVICE_NAME(); } } }; // 巡航路径ä¸çš„预置点 public static class CFG_PTZTOUR_PRESET extends SdkStructure { public int nPresetID; // é¢„ç½®ç‚¹ç¼–å· public int nDuration; // 在改预置点的åœç•™æ—¶é—´, å•ä½ç§’ public int nSpeed; // 到达该预置点的转动速度, 1~10 public int bEnable; // 预置点èšç„¦ä½¿èƒ½ï¼Œ0为ä¸ä½¿èƒ½ï¼Œ1为使能 } // 巡航路径 public static class CFG_PTZTOUR_SINGLE extends SdkStructure { public int bEnable; // 使能 public byte[] szName = new byte[CFG_COMMON_STRING_64]; // å称 public int nPresetsNum; // é¢„ç½®ç‚¹æ•°é‡ public CFG_PTZTOUR_PRESET[] stPresets = new CFG_PTZTOUR_PRESET[CFG_MAX_PTZTOUR_PRESET_NUM]; // 该路径包å«çš„预置点å‚æ•° public CFG_PTZTOUR_SINGLE() { for (int i = 0; i < stPresets.length; ++i) { stPresets[i] = new CFG_PTZTOUR_PRESET(); } } } // 云å°å·¡èˆªè·¯å¾„é…ç½® public static class CFG_PTZTOUR_INFO extends SdkStructure { public int nCount; // å·¡èˆªè·¯å¾„æ•°é‡ public CFG_PTZTOUR_SINGLE[] stTours = new CFG_PTZTOUR_SINGLE[CFG_MAX_PTZTOUR_NUM]; // 巡航路径, æ¯ä¸ªé€šé“包å«å¤šæ¡å·¡èˆªè·¯å¾„ public CFG_PTZTOUR_INFO() { for (int i = 0; i < stTours.length; ++i) { stTours[i] = new CFG_PTZTOUR_SINGLE(); } } } // 云å°æŽ§åˆ¶åæ ‡å•å…ƒ public static class CFG_PTZ_SPACE_UNIT extends SdkStructure { public int nPositionX; //云å°æ°´å¹³è¿åŠ¨ä½ç½®ï¼Œæœ‰æ•ˆèŒƒå›´ï¼š[0,3600] public int nPositionY; //云å°åž‚ç›´è¿åŠ¨ä½ç½®ï¼Œæœ‰æ•ˆèŒƒå›´ï¼š[-1800,1800] public int nZoom; //云å°å…‰åœˆå˜åŠ¨ä½ç½®ï¼Œæœ‰æ•ˆèŒƒå›´ï¼š[0,128] } // 云å°æŽ§åˆ¶é¢„置点结构 public static class PTZ_PRESET extends SdkStructure { public int bEnable; // 该预置点是å¦ç”Ÿæ•ˆ public byte[] szName = new byte[MAX_PTZ_PRESET_NAME_LEN]; // 预置点å称 public CFG_PTZ_SPACE_UNIT stPosition; // 预置点的åæ ‡å’Œæ”¾å¤§å€æ•° } // 云å°é¢„置点é…置对应结构 public static class PTZ_PRESET_INFO extends SdkStructure { public int dwMaxPtzPresetNum; // 最大预置点个数 public int dwRetPtzPresetNum; // 实际使用预置点个数 public Pointer pstPtzPreset; // 预置点信æ¯(æ ¹æ®æœ€å¤§ä¸ªæ•°ç”³è¯·å†…å˜ï¼Œå¤§å°sizeof(PTZ_PRESET)*dwMaxPtzPresetNum) } // 统计é‡ç±»åž‹ public static class CFG_STATISTIC_TYPE extends SdkStructure { public static final int CFG_STATISTIC_TYPE_UNKNOWN = 0; public static final int CFG_STATISTIC_TYPE_VAL = 1; // 具体值 public static final int CFG_STATISTIC_TYPE_MAX = 2; // 最大 public static final int CFG_STATISTIC_TYPE_MIN = 3; // æœ€å° public static final int CFG_STATISTIC_TYPE_AVR = 4; // å¹³å‡ public static final int CFG_STATISTIC_TYPE_STD = 5; // æ ‡å‡† public static final int CFG_STATISTIC_TYPE_MID = 6; // ä¸é—´ public static final int CFG_STATISTIC_TYPE_ISO = 7; // ISO } // 比较è¿ç®—结果 public static class CFG_COMPARE_RESULT extends SdkStructure { public static final int CFG_COMPARE_RESULT_UNKNOWN = 0; public static final int CFG_COMPARE_RESULT_BELOW = 1; // 低于 public static final int CFG_COMPARE_RESULT_MATCH = 2; // åŒ¹é… public static final int CFG_COMPARE_RESULT_ABOVE = 3; // 高于 } // 记录集新增æ“作(insert)å‚æ•° public static class NET_CTRL_RECORDSET_INSERT_PARAM extends SdkStructure { public int dwSize; public NET_CTRL_RECORDSET_INSERT_IN stuCtrlRecordSetInfo; // 记录集信æ¯(用户填写) public NET_CTRL_RECORDSET_INSERT_OUT stuCtrlRecordSetResult; // 记录集信æ¯(设备返回) public NET_CTRL_RECORDSET_INSERT_PARAM() { this.dwSize = this.size(); } } // 记录集新增æ“作(insert)输入å‚æ•° public static class NET_CTRL_RECORDSET_INSERT_IN extends SdkStructure { public int dwSize; public int emType; // 记录集信æ¯ç±»åž‹, å–值å‚考 EM_NET_RECORD_TYPE public Pointer pBuf; // 记录集信æ¯ç¼“å˜,详è§EM_NET_RECORD_TYPE注释,由用户申请内å˜. public int nBufLen; // 记录集信æ¯ç¼“å˜å¤§å°,大å°å‚照记录集信æ¯ç±»åž‹å¯¹åº”的结构体 public NET_CTRL_RECORDSET_INSERT_IN() { this.dwSize = this.size(); } } // 记录集新增æ“作(insert)输出å‚æ•° public static class NET_CTRL_RECORDSET_INSERT_OUT extends SdkStructure { public int dwSize; public int nRecNo; // 记录编å·(新增insert时设备返回) public NET_CTRL_RECORDSET_INSERT_OUT() { this.dwSize = this.size(); } } // é—¨ç¦å¯†ç 记录查询æ¡ä»¶ public static class FIND_RECORD_ACCESSCTLPWD_CONDITION extends SdkStructure { public int dwSize; public byte[] szUserID = new byte[NET_MAX_USERID_LEN]; // 用户ID public FIND_RECORD_ACCESSCTLPWD_CONDITION() { this.dwSize = this.size(); } } // é—¨ç¦å¯†ç è®°å½•é›†ä¿¡æ¯ public static class NET_RECORDSET_ACCESS_CTL_PWD extends SdkStructure { public int dwSize; public int nRecNo; // 记录集编å·,åªè¯» public NET_TIME stuCreateTime; // 创建时间 public byte[] szUserID = new byte[NET_MAX_USERID_LEN]; // 用户ID, 设备暂ä¸æ”¯æŒ public byte[] szDoorOpenPwd = new byte[NET_MAX_CARDPWD_LEN]; // 开门密ç public byte[] szAlarmPwd = new byte[NET_MAX_CARDPWD_LEN]; // 报è¦å¯†ç public int nDoorNum; // 有效的的门数目 public int[] sznDoors = new int[NET_MAX_DOOR_NUM]; // 有æƒé™çš„é—¨åºå·,å³ CFG_CMD_ACCESS_EVENT é…ç½®CFG_ACCESS_EVENT_INFOçš„æ•°ç»„ä¸‹æ ‡ public byte[] szVTOPosition = new byte[NET_COMMON_STRING_64]; // é—¨å£æœºå…³è”ä½ç½® public int nTimeSectionNum; // 开门时间段个数 public int[] nTimeSectionIndex = new int[NET_MAX_TIMESECTION_NUM]; // 开门时间段索引,是个数组,æ¯ä¸ªå…ƒç´ 与sznDoorsä¸çš„门对应 public int bNewDoor; // BOOL类型, 是å¦å¯åŠ¨æ–°å¼€é—¨æŽˆæƒå—段,TRUE表示使用 nNewDoorNum å’Œ nNewDoors å—段下å‘开门æƒé™ public int nNewDoorNum; // 有效的门数目; public int[] nNewDoors = new int[MAX_ACCESSDOOR_NUM]; // 有æƒé™çš„é—¨åºå·,å³ CFG_CMD_ACCESS_EVENT é…ç½®çš„æ•°ç»„ä¸‹æ ‡ public int nNewTimeSectionNum; // 有效的的开门时间段数目 public int[] nNewTimeSectionNo = new int[MAX_ACCESSDOOR_NUM]; // 开门时间段索引,å³ CFG_ACCESS_TIMESCHEDULE_INFO çš„æ•°ç»„ä¸‹æ ‡ public NET_TIME stuValidStartTime; // 开始有效期 public NET_TIME stuValidEndTime; // 结æŸæœ‰æ•ˆæœŸ public int nValidCounts; // 有效次数 public byte[] szCitizenIDNo=new byte[20]; // è¯ä»¶å·ç public NET_RECORDSET_ACCESS_CTL_PWD() { this.dwSize = this.size(); } } // 开门二维ç è®°å½•é›†ä¿¡æ¯ public static class NET_RECORD_ACCESSQRCODE_INFO extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nRecNo; // 记录集编å·,åªè¯» public byte[] szQRCode = new byte[NET_MAX_QRCODE_LEN]; // 二维ç public int nLeftTimes; // 剩余的有效次数 public NET_TIME stuStartTime; // 有效期开始时间 public NET_TIME stuEndTime; // 有效期截æ¢æ—¶é—´ public byte[] szRoomNumber = new byte[16]; // æˆ¿é—´å· public byte[] szUserID=new byte[32]; // 用户ID public NET_RECORD_ACCESSQRCODE_INFO(){ this.dwSize = this.size(); } } // 查询盒å工作状æ€, 对应命令 NET_DEVSTATE_GET_WORK_STATE public static class NET_QUERY_WORK_STATE extends SdkStructure { public int dwSize; // ä¿ç•™å—段 public NET_WORKSTATE stuWorkState; // è¿è¡ŒçŠ¶æ€ public NET_QUERY_WORK_STATE() { this.dwSize = this.size(); } } // è®¾å¤‡å·¥ä½œçŠ¶æ€ public static class NET_WORKSTATE extends SdkStructure { public int bOnline; // 设备是å¦åœ¨çº¿,BOOL类型 public byte[] szFirmwareVersion = new byte[NET_COMMON_STRING_128]; // å›ºä»¶ç‰ˆæœ¬å· public float fTemperature; // 温度值, å•ä½æ‘„æ°åº¦ public float fPowerDissipation; // 功耗, å•ä½W public int nUtilizationOfCPU; // CPU 使用率 public int nStorageNum; // å˜å‚¨è®¾å¤‡ä¸ªæ•° public NET_STORAGE_INFO[] stuStorages = new NET_STORAGE_INFO[MAX_STORAGE_NUM]; // å˜å‚¨è®¾å¤‡ä¿¡æ¯ public int nUpTimeLast; // 上次上电时间, å•ä½: 秒 public int nUpTimeTotal; // 总共上电时间, å•ä½: 秒 public double dbMemInfoTotal; // 总内å˜å¤§å°, å•ä½: å—节 public double dbMemInfoFree; // 剩余内å˜å¤§å°, å•ä½: å—节 public byte[] byReserved1 = new byte[4]; // å—节对é½ï¼Œéžä¿ç•™å—节 public byte[] szDevType = new byte[32]; // è®¾å¤‡åž‹å· public NET_RESOURCE_STATE stuResourceStat; // ç½‘ç»œèµ„æº public byte[] byReserved = new byte[8]; // ä¿ç•™å—节 public NET_WORKSTATE() { for(int i = 0; i < MAX_STORAGE_NUM; i++) { stuStorages[i] = new NET_STORAGE_INFO(); } } } // å˜å‚¨è®¾å¤‡ä¿¡æ¯ public static class NET_STORAGE_INFO extends SdkStructure { public int emState; // å˜å‚¨è®¾å¤‡çŠ¶æ€, ENUM_STORAGE_STATE public int nPartitonNum; // 分区个数 public NET_PARTITION_INFO[] stuPartions = new NET_PARTITION_INFO[MAX_PARTITION_NUM]; // åˆ†åŒºä¿¡æ¯ public byte[] byReserved = new byte[128]; // ä¿ç•™å—段 public NET_STORAGE_INFO() { for(int i = 0; i < MAX_PARTITION_NUM; i++) { stuPartions[i] = new NET_PARTITION_INFO(); } } } // ç½‘ç»œèµ„æº public static class NET_RESOURCE_STATE extends SdkStructure { public int nIPChanneIn; // IP通é“接入速度, å•ä½: kbps public int nNetRemain; // 网络接收剩余能力, å•ä½: kbps public int nNetCapability; // 网络接收总能力, å•ä½: kbps public int nRemotePreview; // 远程预览能力, å•ä½: kbps public int nRmtPlayDownload; // 远程回放åŠä¸‹è½½èƒ½åŠ›, å•ä½: kbps public int nRemoteSendRemain; // 远程å‘é€å‰©ä½™èƒ½åŠ›, å•ä½: kbps public int nRemoteSendCapability; // 远程å‘é€æ€»èƒ½åŠ›, å•ä½: kbps public byte[] byReserved = new byte[32]; // ä¿ç•™å—节 } // å˜å‚¨è®¾å¤‡åˆ†åŒºä¿¡æ¯ public static class NET_PARTITION_INFO extends SdkStructure { public double dbTotalBytes; // 分区总空间 public double dbUsedBytes; // 分区使用的空间 public int bError; // 是å¦å¼‚常, BOOL类型 public byte[] byReserved = new byte[64]; // ä¿ç•™å—段 } // CLIENT_GetSelfCheckInfo 输入å‚æ•° public static class NET_IN_GET_SELTCHECK_INFO extends SdkStructure { public int dwSize; // 用户使用该结构体时,dwSize 需赋值为 sizeof (NET_IN_GET_SELTCHECK_INFO) public NET_IN_GET_SELTCHECK_INFO() { this.dwSize = this.size(); } } // è®¾å¤‡è‡ªæ£€ä¿¡æ¯ public static class NET_SELFCHECK_INFO extends SdkStructure { public int dwSize; public int nAlarmIn; // 报è¦è¾“入通é“æ•° public int nAlarmOut; // 报è¦è¾“出通é“æ•° public NET_TIME stuTime; // 上报时间 public byte[] szPlateNo = new byte[NET_MAX_PLATE_NUMBER_LEN]; // 车牌 public byte[] szICCID = new byte[NET_MAX_SIM_LEN]; // SIMå¡å·,建议使用szICCIDExInfoå—段 public byte byOrientation; // 定ä½çŠ¶æ€,0-未定ä½,1-å®šä½ public byte byACCState; // ACC 状æ€,0-å…³é—,1-打开 public byte byConstantElecState; // 常电状æ€,0-æ£å¸¸è¿žæŽ¥,1-æ–å¼€,2-æ¬ åŽ‹,3-高压 public byte byAntennaState; // 通信信å·çŠ¶æ€,0-æ£å¸¸,1-未知故障,2-未接,3-çŸè·¯ // å¤–éƒ¨è®¾å¤‡çŠ¶æ€ public byte byReportStation; // 报站器状æ€,0-未接,1-æ£å¸¸,2-异常 public byte byControlScreen; // 调度å±çŠ¶æ€,0-未接,1-æ£å¸¸,2-异常 public byte byPOS; // POS机状æ€,0-未接,1-æ£å¸¸,2-异常 public byte byCoinBox; // 投å¸ç®±çŠ¶æ€,0-未接,1-æ£å¸¸,2-异常 // 能力集 public int bTimerSnap; // 定时抓图,TRUE-支æŒ,FALSE-ä¸æ”¯æŒ, BOOL类型 public int bElectronEnclosure; // 电åå›´æ ,TRUE-支æŒ,FALSE-ä¸æ”¯æŒ, BOOL类型 public int bTeleUpgrade; // 远程å‡çº§,TRUE-支æŒ,FALSE-ä¸æ”¯æŒ, BOOL类型 public NET_HDD_STATE[] stuHddStates = new NET_HDD_STATE[NET_MAX_DISKNUM]; // ç¡¬ç›˜çŠ¶æ€ public int nHddNum; // 硬盘个数 public Pointer pChannleState; // 通é“状æ€,是一个 NET_CHANNLE_STATE 数组, // CLIENT_AttachMission接å£,NET_MISSION_TYPE_SELFCHECK类型,回调函数,内å˜ç”±SDK申请,SDK释放 // CLIENT_GetSelfCheckInfo接å£,出å‚,内å˜ç”±ç”¨æˆ·ç”³è¯·,用户释放,大å°ä¸ºsizeof(NET_CHANNLE_STATE)*nChannelMax public int nChannleNum; // 实际上报的通é“个数 public int nChannelMax; // CLIENT_GetSelfCheckInfo接å£,pChannleState内å˜çš„最大NET_CHANNLE_STATE个数 public int emConnState; // PAD/DVR连接状æ€, å‚考 NET_PAD_CONNECT_STATE public int emHomeState; // Home键状æ€ï¼Œ å‚考 NET_HOME_STATE public byte[] szICCIDExInfo = new byte[NET_COMMON_STRING_256]; // SIMå¡å·æ‰©å±•ä¿¡æ¯ï¼Œç”¨äºŽå—段扩展使用 public byte by3GState; // 3G/4G状æ€, 0-未连接,1-连接,2-模å—未找到 public byte byWifiState; // Wifi状æ€, 0-未连接,1-连接,2-模å—未找到 public byte byGpsState; // Gps状æ€, 0-未连接,1-连接,2-模å—未找到 public byte byBlackBoxState; // BlackBox状æ€, 0-未接,1-æ£å¸¸ public int nCpuUsage; // CPU使用百分比, å•ä½% public int nTemperature; // 设备内部温度, æ‘„æ°åº¦ public byte[] szVendor=new byte[32]; // 生产厂商 public byte[] szFirmwareVersion=new byte[128]; // 设备程åºç‰ˆæœ¬ï¼Œæ˜¯ä¸€ä¸ªå—符数组 public byte[] szSecurityBaseLineVersion=new byte[8]; // 安全基线版本 public NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS状æ€ä¿¡æ¯ public byte[] szNetworkOperName=new byte[32]; // 4Gè¿è¥å•†ç½‘络信æ¯ï¼Œéœ€è¦å‘simå¡æä¾›æ–¹èŽ·å– public int emEmergencyStatus; // 紧急报è¦çŠ¶æ€,EM_EMERGENCYSTATUS_TYPE public int emTamperAletStatus; // 设备é”状æ€,EM_TAMPERALTERSTATUS_TYPE public byte[] szImei=new byte[16]; // 国际移动设备辨识ç 15ä½æ•°å—æ ‡è¯† public int nGSMsignalStrength; // 3Gä¿¡å·å¼ºåº¦0 - 31 public int nMcc; // 移动信å·æ‰€å±žå›½å®¶ç public int nMnc; // 移动网络å·ç ,用于识别移动客户所属的移动网络,2~3ä½æ•°å—ç»„æˆ public int nLAC; // ä½ç½®åŒºç (移动通信系统ä¸ï¼‰,是为寻呼而设置的一个区域,覆盖一片地ç†åŒºåŸŸï¼ŒåˆæœŸä¸€èˆ¬æŒ‰è¡Œæ”¿åŒºåŸŸåˆ’分(一个县或一个区),现在很çµæ´»äº†ï¼ŒæŒ‰å¯»å‘¼é‡åˆ’分 public int nCi; // å°åŒºè¯†åˆ«ç ,三ç§ä¸»è¦çš„基于ä½ç½®æœåŠ¡ï¼ˆLBS)技术之一。å°åŒºè¯†åˆ«ç 通过识别网络ä¸å“ªä¸€ä¸ªå°åŒºä¼ 输用户呼å«å¹¶å°†è¯¥ä¿¡æ¯ç¿»è¯‘æˆçº¬åº¦å’Œç»åº¦æ¥ç¡®å®šç”¨æˆ·ä½ç½® public int nAlarmInStatusNum; // IO报è¦è¾“入状æ€ä¸ªæ•° public int[] nAlarmInStatus=new int[32]; // IO报è¦è¾“入状æ€åˆ—表一维数组,æ¯ä¸ªæˆå‘˜è¡¨ç¤ºå¯¹åº”的通é“报è¦è¾“入状æ€ï¼ˆ0=Off; 1 =On) public int nAlarmOutStatusNum; // IO报è¦è¾“出状æ€ä¸ªæ•° public int[] nAlarmOutStatus=new int[32]; // IO报è¦è¾“出状æ€åˆ—表一维数组,æ¯ä¸ªæˆå‘˜è¡¨ç¤ºå¯¹åº”的通é“报è¦è¾“出状æ€ï¼ˆ0=Off; 1 =On) public byte[] szMasterSvrAddr=new byte[128]; // 主æœåŠ¡å™¨åœ°å€ï¼ŒIPv4æ ¼å¼ä¸ºç‚¹åˆ†å进制,IPv6æ ¼å¼ä¸ºx:x:x:x:x:x:x:x,其ä¸x是16ä½çš„åå…进制值 public byte[] szSlaveSvrAddr=new byte[128]; // 从æœåŠ¡å™¨åœ°å€ï¼ŒIPv4æ ¼å¼ä¸ºç‚¹åˆ†å进制,IPv6æ ¼å¼ä¸ºx:x:x:x:x:x:x:x,其ä¸x是16ä½çš„åå…进制值 public byte[] szSerialNo=new byte[48]; // 设备åºåˆ—å· public int emSignalStrength; // GPS 模å—ä¿¡å·å¼ºåº¦,å‚考枚举EM_GPS_SIGNAL_STRENGTH_TYPE public int emDataType; // 事件数æ®ç±»åž‹,å‚考枚举EM_SELFCHECK_DATA_TYPE public NET_SELFCHECK_INFO() { this.dwSize = this.size(); for(int i = 0; i < NET_MAX_DISKNUM; i++) { stuHddStates[i] = new NET_HDD_STATE(); } } } // ç¡¬ç›˜çŠ¶æ€ public static class NET_HDD_STATE extends SdkStructure { public int dwSize; public int nState; // 硬盘状æ€,0-æ£å¸¸,1-错误 public double dbTotalSize; // 硬盘总容é‡,å—节为å•ä½ public NET_PARTITION_STATE[] stuPartitions = new NET_PARTITION_STATE[NET_MAX_STORAGE_PARTITION_NUM]; // åˆ†åŒºçŠ¶æ€ public int nPartitionNum; // 分区数 public NET_HDD_STATE() { this.dwSize = this.size(); for(int i = 0; i < NET_MAX_STORAGE_PARTITION_NUM; i++) { stuPartitions[i] = new NET_PARTITION_STATE(); } } } // åˆ†åŒºçŠ¶æ€ public static class NET_PARTITION_STATE extends SdkStructure { public int dwSize; public int nStatus; // 分区状æ€,0-æ£å¸¸,1-错误 public double dbTotalSize; // 分区总容é‡,å—节为å•ä½ public double dbRemainSize; // 剩余容é‡,å—节为å•ä½ public NET_PARTITION_STATE() { this.dwSize = this.size(); } } // 录åƒçŠ¶æ€è¯¦ç»†ä¿¡æ¯ public static class NET_RECORD_STATE_DETAIL extends SdkStructure { public int dwSize; public int bMainStream; // 主ç æµ, TRUE-æ£åœ¨å½•åƒ, FALSE-æ²¡åœ¨å½•åƒ public int bExtraStream1; // è¾…ç æµ1, TRUE-æ£åœ¨å½•åƒ, FALSE-æ²¡åœ¨å½•åƒ public int bExtraStream2; // è¾…ç æµ2, TRUE-æ£åœ¨å½•åƒ, FALSE-æ²¡åœ¨å½•åƒ public int bExtraStream3; // è¾…ç æµ3, TRUE-æ£åœ¨å½•åƒ, FALSE-æ²¡åœ¨å½•åƒ public NET_RECORD_STATE_DETAIL() { this.dwSize = this.size(); } } // ç¡¬ç›˜ä¿¡æ¯ public static class NET_DEV_DISKSTATE extends SdkStructure { public int dwVolume; // 硬盘的容é‡, å•ä½MB(B表示å—节) public int dwFreeSpace; // 硬盘的剩余空间, å•ä½MB(B表示å—节) public byte dwStatus; // 高四ä½çš„值表示硬盘类型,具体è§æžšä¸¾ç±»åž‹EM_DISK_TYPE;低四ä½çš„值表示硬盘的状æ€,0-ä¼‘çœ ,1-活动,2-æ•…éšœç‰ï¼›å°†DWORD拆æˆå››ä¸ªBYTE public byte bDiskNum; // ç¡¬ç›˜å· public byte bSubareaNum; // åˆ†åŒºå· public byte bSignal; // æ ‡è¯†,0为本地 1为远程 } // è®¾å¤‡ç¡¬ç›˜ä¿¡æ¯ public static class NET_DEV_HARDDISK_STATE extends SdkStructure { public int dwDiskNum; // 个数 public NET_DEV_DISKSTATE[] stDisks = new NET_DEV_DISKSTATE[NET_MAX_DISKNUM]; // ç¡¬ç›˜æˆ–åˆ†åŒºä¿¡æ¯ public NET_DEV_HARDDISK_STATE() { for(int i = 0; i < NET_MAX_DISKNUM; i++) { stDisks[i] = new NET_DEV_DISKSTATE(); } } } public static class EM_DISK_TYPE extends SdkStructure { public static final int SDK_DISK_READ_WRITE = 0; // 读写驱动器 public static final int SDK_DISK_READ_ONLY = 1; // åªè¯»é©±åŠ¨å™¨ public static final int SDK_DISK_BACKUP = 2; // 备份驱动器或媒体驱动器 public static final int SDK_DISK_REDUNDANT = 3; // 冗余驱动器 public static final int SDK_DISK_SNAPSHOT = 4; // 快照驱动器 } //è¡¨ç¤ºç¡¬ç›˜çš„åŸºæœ¬ä¿¡æ¯ public static class NETDEV_DEVICE_INFO extends SdkStructure { public byte[] byModle = new byte[32]; // åž‹å· public byte[] bySerialNumber = new byte[32]; // åºåˆ—å· public byte[] byFirmWare = new byte[32]; // å›ºä»¶å· public int nAtaVersion; // ATAåè®®ç‰ˆæœ¬å· public int nSmartNum ; // smart ä¿¡æ¯æ•° public long Sectors; public int nStatus; // ç£ç›˜çŠ¶æ€ 0-æ£å¸¸ 1-异常 public int[] nReserved = new int[33]; // ä¿ç•™å—节 } //硬盘的smartä¿¡æ¯,å¯èƒ½ä¼šæœ‰å¾ˆå¤šæ¡,最多ä¸è¶…过30个   public static class NETDEV_SMART_VALUE extends SdkStructure { public byte byId; // ID public byte byCurrent; // 属性值 public byte byWorst; // 最大出错值 public byte byThreshold; // 阈值 public byte[] szName = new byte[64]; // 属性å public byte[] szRaw = new byte[8]; // 实际值 public int nPredict; // çŠ¶æ€ public byte[] reserved = new byte[128]; } //硬盘smartä¿¡æ¯æŸ¥è¯¢ public static class NETDEV_SMART_HARDDISK extends SdkStructure { public byte nDiskNum; // ç¡¬ç›˜å· public byte byRaidNO; // Raidå盘,0表示å•ç›˜ public byte[] byReserved = new byte[2]; // ä¿ç•™å—节 public NETDEV_DEVICE_INFO deviceInfo; public NETDEV_SMART_VALUE[] smartValue = new NETDEV_SMART_VALUE[MAX_SMART_VALUE_NUM]; public NETDEV_SMART_HARDDISK() { for(int i = 0; i < MAX_SMART_VALUE_NUM; i++) { smartValue[i] = new NETDEV_SMART_VALUE(); } } } // 扩展网络é…置结构体 public static class NETDEV_NET_CFG_EX extends SdkStructure { public int dwSize; public byte[] sDevName = new byte[NET_MAX_NAME_LEN]; // 设备主机å public short wTcpMaxConnectNum; // TCP最大连接数 public short wTcpPort; // TCP帧å¬ç«¯å£ public short wUdpPort; // UDP侦å¬ç«¯å£ public short wHttpPort; // HTTP端å£å· public short wHttpsPort; // HTTPS端å£å· public short wSslPort; // SSL端å£å· public int nEtherNetNum; // 以太网å£æ•° public NET_ETHERNET_EX[] stEtherNet = new NET_ETHERNET_EX[NET_MAX_ETHERNET_NUM_EX]; // ä»¥å¤ªç½‘å£ public NET_REMOTE_HOST struAlarmHost; // 报è¦æœåŠ¡å™¨ public NET_REMOTE_HOST struLogHost; // 日志æœåŠ¡å™¨ public NET_REMOTE_HOST struSmtpHost; // SMTPæœåŠ¡å™¨ public NET_REMOTE_HOST struMultiCast; // 多æ’组 public NET_REMOTE_HOST struNfs; // NFSæœåŠ¡å™¨ public NET_REMOTE_HOST struPppoe; // PPPoEæœåŠ¡å™¨ public byte[] sPppoeIP = new byte[NET_MAX_IPADDR_LEN]; // PPPoE注册返回的IP public NET_REMOTE_HOST struDdns; // DDNSæœåŠ¡å™¨ public byte[] sDdnsHostName = new byte[NET_MAX_HOST_NAMELEN]; // DDNS主机å public NET_REMOTE_HOST struDns; // DNSæœåŠ¡å™¨ public NET_MAIL_CFG struMail; // 邮件é…ç½® public byte[] bReserved = new byte[128]; // ä¿ç•™å—节 public NETDEV_NET_CFG_EX() { this.dwSize = this.size(); for(int i = 0; i < NET_MAX_ETHERNET_NUM_EX; i++) { stEtherNet[i] = new NET_ETHERNET_EX(); } } } // 以太网扩展é…ç½® public static class NET_ETHERNET_EX extends SdkStructure { public byte[] sDevIPAddr = new byte[NET_MAX_IPADDR_LEN]; // DVR IP åœ°å€ public byte[] sDevIPMask = new byte[NET_MAX_IPADDR_LEN]; // DVR IP 地å€æŽ©ç public byte[] sGatewayIP = new byte[NET_MAX_IPADDR_LEN]; // ç½‘å…³åœ°å€ /* * 1:10Mbps å…¨åŒå·¥ * 2:10Mbps 自适应 * 3:10Mbps åŠåŒå·¥ * 4:100Mbps å…¨åŒå·¥ * 5:100Mbps 自适应 * 6:100Mbps åŠåŒå·¥ * 7:自适应 */ // 为了扩展将DWORD拆æˆå››ä¸ª public byte dwNetInterface; // NSP public byte bTranMedia; // 0:有线,1ï¼šæ— çº¿ public byte bValid; // 按ä½è¡¨ç¤º,第一ä½ï¼š1:有效 0ï¼šæ— æ•ˆï¼›ç¬¬äºŒä½ï¼š0:DHCPå…³é— 1:DHCP使能;第三ä½ï¼š0:ä¸æ”¯æŒDHCP 1:支æŒDHCP public byte bDefaultEth; // 是å¦ä½œä¸ºé»˜è®¤çš„ç½‘å¡ 1:默认 0:éžé»˜è®¤ public byte[] byMACAddr = new byte[NET_MACADDR_LEN]; // MAC地å€,åªè¯» public byte bMode; // 网å¡æ‰€å¤„模å¼, 0:绑定模å¼, 1:è´Ÿè½½å‡è¡¡æ¨¡å¼, 2:多å€æ¨¡å¼, 3:å®¹é”™æ¨¡å¼ public byte[] bReserved1 = new byte[3]; // å—èŠ‚å¯¹é½ public byte[] szEthernetName = new byte[NET_MAX_NAME_LEN]; // 网å¡å,åªè¯» public byte[] bReserved = new byte[12]; // ä¿ç•™å—节 } // 远程主机é…ç½® public static class NET_REMOTE_HOST extends SdkStructure { public byte byEnable; // 连接使能 public byte byAssistant; // ç›®å‰åªå¯¹äºŽPPPoEæœåŠ¡å™¨æœ‰ç”¨,0:在有线网å¡æ‹¨å·ï¼›1ï¼šåœ¨æ— çº¿ç½‘å¡ä¸Šæ‹¨å· public short wHostPort; // 远程主机 ç«¯å£ public byte[] sHostIPAddr = new byte[NET_MAX_IPADDR_LEN]; // 远程主机 IP åœ°å€ public byte[] sHostUser = new byte[NET_MAX_HOST_NAMELEN]; // 远程主机 用户å public byte[] sHostPassword = new byte[NET_MAX_HOST_PSWLEN]; // 远程主机 密ç } // 邮件é…ç½® public static class NET_MAIL_CFG extends SdkStructure { public byte[] sMailIPAddr = new byte[NET_MAX_IPADDR_LEN]; // 邮件æœåŠ¡å™¨IPåœ°å€ public short wMailPort; // 邮件æœåŠ¡å™¨ç«¯å£ public short wReserved; // ä¿ç•™ public byte[] sSenderAddr = new byte[NET_MAX_MAIL_ADDR_LEN]; // å‘é€åœ°å€ public byte[] sUserName = new byte[NET_MAX_NAME_LEN]; // 用户å public byte[] sUserPsw = new byte[NET_MAX_NAME_LEN]; // 用户密ç public byte[] sDestAddr = new byte[NET_MAX_MAIL_ADDR_LEN]; // ç›®çš„åœ°å€ public byte[] sCcAddr = new byte[NET_MAX_MAIL_ADDR_LEN]; // 抄é€åœ°å€ public byte[] sBccAddr = new byte[NET_MAX_MAIL_ADDR_LEN]; // æš—æŠ„åœ°å€ public byte[] sSubject = new byte[NET_MAX_MAIL_SUBJECT_LEN]; // æ ‡é¢˜ } // 自动维护é…ç½® public static class NETDEV_AUTOMT_CFG extends SdkStructure { public int dwSize; public byte byAutoRebootDay; // 自动é‡å¯ï¼›0:从ä¸, 1:æ¯å¤©,2:æ¯æ˜ŸæœŸæ—¥,3:æ¯æ˜ŸæœŸä¸€,...... public byte byAutoRebootTime; // 0:0:00,1:1:00,......23:23:00 public byte byAutoDeleteFilesTime; // è‡ªåŠ¨åˆ é™¤æ–‡ä»¶ï¼›0:从ä¸,1:24H,2:48H,3:72H,4:96H,...... public byte[] reserved = new byte[13]; // ä¿ç•™ä½ public NETDEV_AUTOMT_CFG() { this.dwSize = this.size(); } } // 电åå›´æ 类型枚举 public static class ENCLOSURE_TYPE { public static final int ENCLOSURE_UNKNOWN = 0x00; // 未知 public static final int ENCLOSURE_LIMITSPEED = 0x01; // é™é€ŸåŒº public static final int ENCLOSURE_DRIVEALLOW = 0x02; // 驾驶区 public static final int ENCLOSURE_FORBIDDRIVE = 0x04; // ç¦æ¢åŒº public static final int ENCLOSURE_LOADGOODS = 0x08; // 装货区 public static final int ENCLOSURE_UPLOADGOODS = 0x10; // å¸è´§åŒº public static final int ENCLOSURE_FLYALLOW = 0x20; // 飞行区 public static final int ENCLOSURE_MANUALFORBIDFLY = 0x40; // ç¦é£žåŒº(手动设置) public static final int ENCLOSURE_FIXEDFORBIDFLY = 0x80; // ç¦é£žåŒº(机场) - ä¸å¯é…ç½® public static final int ENCLOSURE_FiXEDLIMITFLY = 0x81; // é™åˆ¶é£žè¡Œ - ä¸å¯é…ç½® } // 电åå›´æ é…ç½® public static class NETDEV_ENCLOSURE_CFG extends SdkStructure { public int unType; // 电åå›´æ 类型掩ç ,è§ ENCLOSURE_TYPE public byte[] bRegion = new byte[8]; // å‰å››ä½åˆ†åˆ«ä»£è¡¨å›½å®¶ã€çœã€å¸‚或区ã€åŽ¿(0-255),åŽ4bytesä¿ç•™ public int unId; // 一个区域以一个IDæ ‡è¯† public int unSpeedLimit; // é™é€Ÿ,å•ä½km/h public int unPointNum; // 电åå›´æ 区域顶点数 public GPS_POINT[] stPoints = (GPS_POINT[]) new GPS_POINT().toArray(128); // 电åå›´æ åŒºåŸŸä¿¡æ¯ public byte[] szStationName = new byte[32]; // 电åå›´æ 包围的车站站点å称 public byte bDisenable; // 去使能。 0 å¯ç”¨ ;1 ä¸å¯ç”¨ public byte bShape; // å›´æ 形状 0 多边形 1 圆形 public byte bLimitType; // å›´æ é™åˆ¶ç±»åž‹ 0 æ— ; 1 é™é«˜; 2 é™åŠå¾„; 3 é™é«˜é™åŠå¾„ public byte bAction; // 触å‘å›´æ åŽï¼Œè®¾å¤‡çš„动作;0 æ— ,兼容以å‰; 1 åªæŠ¥å‘Š; 2 悬åœ; 3 返航; public int nLimitAltitude; // 高度 å•ä½ï¼šåŽ˜ç±³ã€‚ 0 æ— æ•ˆ public int nAlarmAltitude; // 预è¦é«˜åº¦å•ä½ï¼šåŽ˜ç±³ã€‚ 0 æ— æ•ˆ public int unLimitRadius; // åŠå¾„å•ä½ï¼šåŽ˜ç±³ã€‚0 æ— æ•ˆ public int unAlarmRadius; // 预è¦åŠå¾„:厘米。0 æ— æ•ˆ public byte[] reserved = new byte[12]; // ä¿ç•™ } // 电åå›´æ 版本å·é…ç½® public static class NETDEV_ENCLOSURE_VERSION_CFG extends SdkStructure { public int unType; // å›´æ 类型掩ç ,如LIMITSPEED | DRIVEALLOW public int[] unVersion = new int[32]; // æ¯ä¸ªç±»åž‹ä¸€ä¸ªç‰ˆæœ¬å·,用于统一平å°ä¸Žè®¾å¤‡ä¸Šçš„å›´æ é…ç½® public int nReserved; // ä¿ç•™ } // å‘视频输出å£æŠ•æ”¾è§†é¢‘和图片文件, CLIENT_ControlDevice接å£çš„ CTRLTYPE_CTRL_DELIVERY_FILE 命令å‚æ•° public static class NET_CTRL_DELIVERY_FILE extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nPort; // è§†é¢‘è¾“å‡ºå£ public int emPlayMode; // æ’放类型, å‚考 EM_VIDEO_PLAY_MODE_TYPE public NET_TIME stuStartPlayTime; // 开始æ’放的时间 public NET_TIME stuStopPlayTime; // 结æŸæ’放的时间,emPlayMode为 EM_VIDEO_PLAY_MODE_TYPE_REPEAT 时,æ¤å€¼æœ‰æ•ˆ public int nFileCount; // 投放的文件个数 public NET_DELIVERY_FILE_INFO[] stuFileInfo = new NET_DELIVERY_FILE_INFO[MAX_DELIVERY_FILE_NUM]; // 投放的文件信æ¯(推è使用stuFileInfoEx,二者互斥) // 如果nFileCountExä¸ä¸º0,视为使用stuFileInfoEx,stuFileInfoå€¼æ— æ•ˆ public int emOperateType; // æ“ä½œç±»åž‹ã€‚å¦‚æ— è¯¥å—段,默认为EM_VIDEO_PLAY_OPERATE_TYPE_REPLACE public int nFileCountEx; // 投放的文件个数 public NET_DELIVERY_FILE_INFOEX[] stuFileInfoEx = new NET_DELIVERY_FILE_INFOEX[MAX_DELIVERY_FILE_NUM]; // æŠ•æ”¾çš„æ–‡ä»¶ä¿¡æ¯ public int nNumber; // 当å‰å¹¿å‘Šè®¡åˆ’ç¼–å·,调用者å¯ä»¥é€šè¿‡æ¤ç¼–å·æ¥è®¾ç½®ä¸åŒå¹¿å‘Šè®¡åˆ’ public NET_CFG_TIME_SCHEDULE stuTimeSection; // æ’放时间段 public boolean bEnable; // æ’放使能 public byte[] szName = new byte[128]; // 广告å称 public NET_CTRL_DELIVERY_FILE() { this.dwSize = this.size(); for(int i = 0; i < MAX_DELIVERY_FILE_NUM; i++) { stuFileInfo[i] = new NET_DELIVERY_FILE_INFO(); } for(int i = 0; i < MAX_DELIVERY_FILE_NUM; i++) { stuFileInfoEx[i] = new NET_DELIVERY_FILE_INFOEX(); } } } public static class NET_DELIVERY_FILE_INFOEX extends SdkStructure { public int emFileType; // 文件类型, å‚考 EM_DELIVERY_FILE_TYPE public byte[] szFileURL = new byte[DELIVERY_FILE_URL_LEN]; // 文件的资æºåœ°å€ public int nImageSustain; // æ¯å¼ 图片åœç•™å¤šé•¿æ—¶é—´ï¼Œå•ä½ç§’ (emFileType为 EM_DELIVERY_FILE_TYPE_IMAGE æ—¶æ¤å—段有效) public int emPlayWithMode; // 文件所属的模å¼, å‚考 EM_PLAY_WITH_MODE public byte[] szFileURLEx=new byte[512]; // NET_OUT_GET_ADVERTIMENT_CAPSä¸bSupport为true时填写æ¤å—段,并且szFileURL填空 public NET_CFG_TIME_SCHEDULE stuTimeSection = new NET_CFG_TIME_SCHEDULE();//æ’放时间段 public int nSize; // æ–‡ä»¶å¤§å° public int nID; // æ–‡ä»¶ç¼–å· public byte[] byReserved=new byte[1024]; // ä¿ç•™å—节 } // æŠ•æ”¾æ–‡ä»¶ä¿¡æ¯ public static class NET_DELIVERY_FILE_INFO extends SdkStructure { public int emFileType; // 文件类型, å‚考 EM_DELIVERY_FILE_TYPE public byte[] szFileURL = new byte[DELIVERY_FILE_URL_LEN]; // 文件的资æºåœ°å€ public int nImageSustain; // æ¯å¼ 图片åœç•™å¤šé•¿æ—¶é—´ï¼Œå•ä½ç§’ (emFileType为 EM_DELIVERY_FILE_TYPE_IMAGE æ—¶æ¤å—段有效) public int emPlayWithMode; // 文件所属的模å¼, å‚考 EM_PLAY_WITH_MODE public byte[] byReserved = new byte[1020]; // ä¿ç•™å—节 } // 视频æ’æ”¾æ¨¡å¼ public static class EM_VIDEO_PLAY_MODE_TYPE extends SdkStructure { public static final int EM_VIDEO_PLAY_MODE_TYPE_UNKNOWN = 0; // 未知 public static final int EM_VIDEO_PLAY_MODE_TYPE_ONCE = 1; // æ’放一次 public static final int EM_VIDEO_PLAY_MODE_TYPE_REPEAT = 2; // 循环æ’放 } // 投放的文件类型 public static class EM_DELIVERY_FILE_TYPE extends SdkStructure { public static final int EM_DELIVERY_FILE_TYPE_UNKNOWN = 0; // 未知 public static final int EM_DELIVERY_FILE_TYPE_VIDEO = 1; // 视频 public static final int EM_DELIVERY_FILE_TYPE_IMAGE = 2; // 图片 public static final int EM_DELIVERY_FILE_TYPE_AUDIO = 3; // 音频 } // CLIENT_ControlDevice接å£çš„ CTRLTYPE_CTRL_START_PLAYAUDIO 命令å‚æ•° public static class NET_CTRL_START_PLAYAUDIO extends SdkStructure { public int dwSize; public byte[] szAudioPath = new byte[NET_MAX_AUDIO_PATH]; public NET_CTRL_START_PLAYAUDIO() { this.dwSize = this.size(); } } // 公告记录信æ¯æŸ¥è¯¢æ¡ä»¶ public static class FIND_RECORD_ANNOUNCEMENT_CONDITION extends SdkStructure { public int dwSize; public int bTimeEnable; // å¯ç”¨æ—¶é—´æ®µæŸ¥è¯¢, BOOL类型 public NET_TIME stStartTime; // 起始时间 public NET_TIME stEndTime; // 结æŸæ—¶é—´ public FIND_RECORD_ANNOUNCEMENT_CONDITION() { this.dwSize = this.size(); } } //å…¬å‘Šè®°å½•ä¿¡æ¯ public static class NET_RECORD_ANNOUNCEMENT_INFO extends SdkStructure { public int dwSize; public int nRecNo; // 记录集编å·,åªè¯» public NET_TIME stuCreateTime; // 创建时间 public NET_TIME stuIssueTime; // 公告å‘布时间 public byte[] szAnnounceTitle = new byte[NET_COMMON_STRING_64]; // å…¬å‘Šæ ‡é¢˜ public byte[] szAnnounceContent = new byte[NET_COMMON_STRING_256];//公告内容 public byte[] szAnnounceDoor = new byte[NET_COMMON_STRING_16]; //公告è¦å‘é€çš„æˆ¿é—´å· public NET_TIME stuExpireTime; //公告过期的时间 public int emAnnounceState; //å…¬å‘Šçš„çŠ¶æ€ , å‚考 NET_ANNOUNCE_STATE public int emAnnounceReadFlag; //公告是å¦å·²ç»æµè§ˆ, å‚考 NET_ANNOUNCE_READFLAG public int nBackgroundPicture; // é—¨ç¦å…¬å‘Šå¯ä»¥é€‰æ‹©èƒŒæ™¯å›¾ç‰‡(具体图片由色设备绑定): 0 : 图片1 , 1:图片2 , 2 : 图片3 public int bUseEx; // 是å¦ä½¿ç”¨szAnnounceTitleEx/szAnnounceContentExå—段 public byte[] szAnnounceTitleEx = new byte[256]; // å…¬å‘Šæ ‡é¢˜ public byte[] szAnnounceContentEx = new byte[1024]; // 公告内容 public NET_TIME_EX stuCreateTimeRealUTC = new NET_TIME_EX(); // 真UTC创建时间 public NET_TIME stuIssueTimeRealUTC = new NET_TIME(); // 真UTC公告å‘布时间 public NET_TIME stuExpirTimeRealUTC = new NET_TIME(); // 真UTC公告过期的时间 public NET_RECORD_ANNOUNCEMENT_INFO() { this.dwSize = this.size(); } } //å…¬å‘Šçš„çŠ¶æ€ public static class NET_ANNOUNCE_STATE extends SdkStructure { public static final int NET_ANNOUNCE_STATE_UNSENDED = 0; //åˆå§‹çŠ¶æ€(未å‘é€) public static final int NET_ANNOUNCE_STATE_SENDED = 1; //å·²ç»å‘é€ public static final int NET_ANNOUNCE_STATE_EXPIRED = 2; //å·²ç»è¿‡æœŸ public static final int NET_ANNOUNCE_STATE_UNKNOWN = 3; //未知 } //公告是å¦å·²ç»æµè§ˆ public static class NET_ANNOUNCE_READFLAG extends SdkStructure { public static final int NET_ANNOUNCE_READFLAG_UNREADED = 0; //未读 public static final int NET_ANNOUNCE_READFLAG_READED = 1; //已读 public static final int NET_ANNOUNCE_READFLAG_UNKNOWN = 2; //未知 } // 开始实时预览并指定回调数æ®æ ¼å¼å…¥å‚ public static class NET_IN_REALPLAY_BY_DATA_TYPE extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nChannelID; // 通é“ç¼–å· public Pointer hWnd; // 窗å£å¥æŸ„, HWND类型 public int rType; // ç æµç±»åž‹ ,å‚考 NET_RealPlayType public fRealDataCallBackEx cbRealData; // æ•°æ®å›žè°ƒå‡½æ•° public int emDataType; // 回调的数æ®ç±»åž‹ï¼Œå‚考 EM_REAL_DATA_TYPE public Pointer dwUser; // ç”¨æˆ·æ•°æ® public String szSaveFileName; // 转æ¢åŽçš„文件å public fRealDataCallBackEx2 cbRealDataEx; // æ•°æ®å›žè°ƒå‡½æ•°-扩展 public int emAudioType; // éŸ³é¢‘æ ¼å¼,对应枚举EM_AUDIO_DATA_TYPE public fDataCallBackEx cbRealDataEx2;// æ•°æ®å›žè°ƒï¼ˆæ‰©å±•å¸¦æ—¶é—´æˆ³ï¼Œå¸§ç±»åž‹ï¼‰,使用fDataCallBackEx public NET_IN_REALPLAY_BY_DATA_TYPE() { this.dwSize = this.size(); } } // 开始实时预览并指定回调数æ®æ ¼å¼å‡ºå‚ public static class NET_OUT_REALPLAY_BY_DATA_TYPE extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public NET_OUT_REALPLAY_BY_DATA_TYPE() { this.dwSize = this.size(); } } // 实时预览回调数æ®ç±»åž‹ public static class EM_REAL_DATA_TYPE extends SdkStructure { public static final int EM_REAL_DATA_TYPE_PRIVATE = 0; // ç§æœ‰ç æµ public static final int EM_REAL_DATA_TYPE_GBPS = 1; // å›½æ ‡PSç æµ public static final int EM_REAL_DATA_TYPE_TS = 2; // TSç æµ public static final int EM_REAL_DATA_TYPE_MP4 = 3; // MP4文件(从回调函数出æ¥çš„是ç§æœ‰ç æµæ•°æ®,å‚æ•°dwDataType值为0) public static final int EM_REAL_DATA_TYPE_H264 = 4; // 裸H264ç æµ public static final int EM_REAL_DATA_TYPE_FLV_STREAM = 5; // æµå¼FLV } // 开始回放并指定回调数æ®æ ¼å¼ å…¥å‚ public static class NET_IN_PLAYBACK_BY_DATA_TYPE extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nChannelID; // 通é“ç¼–å· public NET_TIME stStartTime; // 开始时间 public NET_TIME stStopTime; // 结æŸæ—¶é—´ public Pointer hWnd; // æ’æ”¾çª—æ ¼, å¯ä¸ºNULL public Callback cbDownLoadPos; // 进度回调 public Pointer dwPosUser; // è¿›åº¦å›žè°ƒç”¨æˆ·ä¿¡æ¯ public Callback fDownLoadDataCallBack; // æ•°æ®å›žè°ƒ public int emDataType; // 回调的数æ®ç±»åž‹ public Pointer dwDataUser; // æ•°æ®å›žè°ƒç”¨æˆ·ä¿¡æ¯ public int nPlayDirection; // æ’放方å‘, 0:æ£æ”¾; 1:倒放; public int emAudioType; // 音频类型,EM_AUDIO_DATA_TYPE public Callback fDownLoadDataCallBackEx;// æ•°æ®å›žè°ƒï¼ˆæ‰©å±•å¸¦æ—¶é—´æˆ³ï¼Œå¸§ç±»åž‹ï¼‰,使用fDataCallBackEx public NET_IN_PLAYBACK_BY_DATA_TYPE() { this.dwSize = this.size(); } } // 开始回放并指定回调数æ®æ ¼å¼ å‡ºå‚ public static class NET_OUT_PLAYBACK_BY_DATA_TYPE extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public NET_OUT_PLAYBACK_BY_DATA_TYPE() { this.dwSize = this.size(); } } // 开始下载并指定回调数æ®æ ¼å¼ å…¥å‚ public static class NET_IN_DOWNLOAD_BY_DATA_TYPE extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nChannelID; // 通é“ç¼–å· public int emRecordType; // 录åƒç±»åž‹, 详è§EM_QUERY_RECORD_TYPE public String szSavedFileName; // 下载的文件路径 public NET_TIME stStartTime; // 开始时间 public NET_TIME stStopTime; // 结æŸæ—¶é—´ public Callback cbDownLoadPos; // 进度回调 public Pointer dwPosUser; // è¿›åº¦å›žè°ƒç”¨æˆ·ä¿¡æ¯ public Callback fDownLoadDataCallBack; // æ•°æ®å›žè°ƒ public int emDataType; // 回调的数æ®ç±»åž‹,è¯¦è§ EM_REAL_DATA_TYPE public Pointer dwDataUser; // æ•°æ®å›žè°ƒç”¨æˆ·ä¿¡æ¯ public int emAudioType; // 音频类型,对应枚举EM_AUDIO_DATA_TYPE public NET_IN_DOWNLOAD_BY_DATA_TYPE() { this.dwSize = this.size(); } } // 开始下载并指定回调数æ®æ ¼å¼ å‡ºå‚ public static class NET_OUT_DOWNLOAD_BY_DATA_TYPE extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public NET_OUT_DOWNLOAD_BY_DATA_TYPE() { this.dwSize = this.size(); } } // 事件类型 NET_ALARM_HIGH_SPEED (车辆超速报è¦äº‹ä»¶)对应的数æ®å—æè¿°ä¿¡æ¯ public static class ALARM_HIGH_SPEED_INFO extends SdkStructure { public int nAction; // 事件动作,1表示æŒç»æ€§äº‹ä»¶å¼€å§‹,2表示æŒç»æ€§äº‹ä»¶ç»“æŸ; public NET_TIME_EX stuTime; // 事件å‘生的时间 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 byte[] byReserved = new byte[508]; // ä¿ç•™å—节 } // GPS状æ€ä¿¡æ¯ public static class NET_GPS_STATUS_INFO extends SdkStructure { public NET_TIME revTime=new NET_TIME(); // 定ä½æ—¶é—´ public byte[] DvrSerial = new byte[50]; // 设备åºåˆ—å· public byte[] byRserved1 = new byte[6]; // 对é½å—节 public double longitude; // ç»åº¦(å•ä½æ˜¯ç™¾ä¸‡åˆ†ä¹‹åº¦,范围0-360度) public double latidude; // 纬度(å•ä½æ˜¯ç™¾ä¸‡åˆ†ä¹‹åº¦,范围0-180度) public double height; // 高度(ç±³) public double angle; // æ–¹å‘角(æ£åŒ—æ–¹å‘为原点,顺时针为æ£) public double speed; // 速度(å•ä½km/H) public short starCount; // 定ä½æ˜Ÿæ•°, emDateSource为 EM_DATE_SOURCE_GPS时有效 public byte[] byRserved2 = new byte[2]; // 对é½å—节 public int antennaState; // 天线状æ€, å‚考 NET_THREE_STATUS_BOOL, emDateSource为 EM_DATE_SOURCE_GPS时有效 public int orientationState; // 定ä½çŠ¶æ€, å‚考 NET_THREE_STATUS_BOOL public int workStae; // 工作状æ€(0=未定ä½,1=éžå·®åˆ†å®šä½,2=差分定ä½,3=æ— æ•ˆPPS,6=æ£åœ¨ä¼°ç®— // emDateSource为 EM_DATE_SOURCE_GPS时有效 public int nAlarmCount; // å‘生的报è¦ä½ç½®ä¸ªæ•° public int[] nAlarmState = new int[128]; // å‘生的报è¦ä½ç½®,值å¯èƒ½å¤šä¸ª, emDateSource为 EM_DATE_SOURCE_GPS时有效 public byte bOffline; // 0-实时 1-è¡¥ä¼ public byte bSNR; // GPS信噪比,表示GPSä¿¡å·å¼ºåº¦,值越大,ä¿¡å·è¶Šå¼º 范围:0~100,0表示ä¸å¯ç”¨ public byte[] byRserved3 = new byte[2]; // 对é½å—节 public int emDateSource; // æ•°æ®æ¥æº, å‚考 EM_DATE_SOURCE public int nSignalStrength; // 在当å‰å·¥ä½œæ¨¡å¼ä¸‹ï¼ˆGPS或北斗ç‰ç³»ç»Ÿï¼‰çš„ä¿¡å·å¼ºåº¦ public float fHdop; // æ°´å¹³ç²¾åº¦å› åæƒ¯æ€§å¯¼èˆªæ—¶æ— æ•ˆ public float fPdop; // ä½ç½®ç²¾åº¦å› å,æƒ¯æ€§å¯¼èˆªæ—¶æ— æ•ˆ public byte[] byRserved = new byte[100]; // ä¿ç•™å—节 } //三æ€å¸ƒå°”类型 public static class NET_THREE_STATUS_BOOL extends SdkStructure { public static final int BOOL_STATUS_FALSE = 0; public static final int BOOL_STATUS_TRUE = 1; public static final int BOOL_STATUS_UNKNOWN = 2; //未知 } // æ•°æ®æ¥æº public static class EM_DATE_SOURCE extends SdkStructure { public static final int EM_DATE_SOURCE_GPS = 0; // GPS public static final int EM_DATE_SOURCE_INERTIALNAVIGATION = 1; // æƒ¯æ€§å¯¼èˆªæ•°æ® } // Gps定ä½ä¿¡æ¯ public static class NET_GPS_LOCATION_INFO extends SdkStructure { public GPS_Info stuGpsInfo; // GPSä¿¡æ¯ public ALARM_STATE_INFO stuAlarmStateInfo; // 报è¦çŠ¶æ€ä¿¡æ¯ public int nTemperature; // 温度(å•ä½:0.1æ‘„æ°åº¦) public int nHumidity; // 湿度(å•ä½:0.1%) public int nIdleTime; // æ€ é€Ÿæ—¶é•¿(å•ä½:秒) public int nMileage; // 里程(å•ä½:0.1km) public int nVoltage; // 设置电压值(å•ä½:0.1ä¼) public byte bOffline; // 0-实时 1-è¡¥ä¼ public byte[] byReserved = new byte[1023]; } // 事件类型 NET_ALARM_VIDEO_LOSS (视频丢失事件)对应的数æ®å—æè¿°ä¿¡æ¯ public static class ALARM_VIDEO_LOSS_INFO extends SdkStructure { public int nAction; // 事件动作,1表示æŒç»æ€§äº‹ä»¶å¼€å§‹,2表示æŒç»æ€§äº‹ä»¶ç»“æŸ; public int nChannelID; // 通é“å· public double dbPTS; // 时间戳(å•ä½æ˜¯æ¯«ç§’) public byte[] byReserved1 = new byte[4]; // å—èŠ‚å¯¹é½ public NET_TIME_EX stuTime; // 事件å‘生的时间 public NET_TIME_EX stuStartTime; // 开始时间,nAction为2时上报æ¤å—段 public NET_GPS_STATUS_INFO stuGPS; // GPSä¿¡æ¯ /** * 采集æºåˆ†è¾¨çŽ‡ {@link com.iailab.netsdk.lib.enumeration.EM_NET_VIFORMAT_TYPE} */ public int emViFormat; /** * 事件公共扩展å—段结构体 */ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); public byte[] byReserved = new byte[1020]; // ä¿ç•™å—节 } //报è¦äº‹ä»¶ç±»åž‹ NET_ALARM_BUS_SHARP_ACCELERATE(è½¦è¾†æ€¥åŠ é€Ÿäº‹ä»¶)对应的数æ®æè¿°ä¿¡æ¯ public static class ALARM_BUS_SHARP_ACCELERATE_INFO extends SdkStructure { public int dwSize; public NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPSä¿¡æ¯ public NET_TIME_EX stuTime; // 事件å‘生的时间 public ALARM_BUS_SHARP_ACCELERATE_INFO() { this.dwSize = this.size(); } } //报è¦äº‹ä»¶ç±»åž‹ NET_ALARM_BUS_SHARP_DECELERATE(车辆急å‡é€Ÿäº‹ä»¶)对应的数æ®æè¿°ä¿¡æ¯ public static class ALARM_BUS_SHARP_DECELERATE_INFO extends SdkStructure { public int dwSize; public NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPSä¿¡æ¯ public NET_TIME_EX stuTime; // 事件å‘生的时间 public ALARM_BUS_SHARP_DECELERATE_INFO() { this.dwSize = this.size(); } } // GPS未定ä½æŠ¥è¦(NET_ALARM_GPS_NOT_ALIGNED) public static class ALARM_GPS_NOT_ALIGNED_INFO extends SdkStructure { public int nAction; // 事件动作,0表示脉冲事件,1表示报è¦å¼€å§‹,2表示报è¦ç»“æŸ; public NET_TIME_EX stuTime; // 事件å‘生的时间 public byte[] byReserved = new byte[1024]; // ä¿ç•™å—节 } // å‰ç«¯æ–网报è¦ä¿¡æ¯, 对应 NET_ALARM_FRONTDISCONNECT public static class ALARM_FRONTDISCONNET_INFO extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nChannelID; // 通é“å· public int nAction; // 0:开始 1:åœæ¢ public NET_TIME stuTime; // 事件å‘生时间 public byte[] szIpAddress = new byte[MAX_PATH]; // å‰ç«¯IPCçš„IPåœ°å€ public NET_GPS_STATUS_INFO stGPSStatus; // GPSä¿¡æ¯ åŠŸèƒ½ï¼Œä»…éƒ¨åˆ†è®¾å¤‡æœ‰æ•ˆã€‚æŠ¥è¦ç±»åž‹ä¸ºDH_ALARM_FRONTDISCONNECTæ—¶,æ¤å—æ®µæ— æ•ˆã€‚ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展å—段结构体 public ALARM_FRONTDISCONNET_INFO() { this.dwSize = this.size(); } } // å˜å‚¨é”™è¯¯æŠ¥è¦, 对应 NET_ALARM_STORAGE_FAILURE_EX public static class ALARM_STORAGE_FAILURE_EX extends SdkStructure { public int dwSize; public int nAction; // 0:开始 1:åœæ¢ public byte[] szName = new byte[NET_EVENT_NAME_LEN]; // 事件å称 public byte[] szDevice = new byte[NET_STORAGE_NAME_LEN]; // å˜å‚¨è®¾å¤‡å称 public byte[] szGroup = new byte[NET_STORAGE_NAME_LEN]; // å˜å‚¨ç»„å称 public byte[] szPath = new byte[MAX_PATH]; // 路径 public int emError; // 错误类型, å‚考 EM_STORAGE_ERROR public int nPhysicNo; // 硬盘所在槽编ç , 从1开始 public NET_TIME_EX stuTime; // 事件å‘生的时间 public NET_GPS_STATUS_INFO stGPSStatus; // GPSä¿¡æ¯ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展å—段结构体 public ALARM_STORAGE_FAILURE_EX() { this.dwSize = this.size(); } } // å˜å‚¨ç»„ä¸å˜åœ¨äº‹ä»¶ä¿¡æ¯, 对应 NET_ALARM_STORAGE_NOT_EXIST public static class ALARM_STORAGE_NOT_EXIST_INFO extends SdkStructure { public int dwSize; public int nAction; // 0:开始 1:åœæ¢ public byte[] szGroup = new byte[NET_STORAGE_NAME_LEN]; // 在录åƒæˆ–抓图å˜å‚¨ç‚¹ä¸è®¾ç½®ä½†ä¸å˜åœ¨çš„组 public NET_TIME stuTime; // 事件触å‘时间 /** * gpsä¿¡æ¯ */ public NET_GPS_STATUS_INFO stGPSStatus; public ALARM_STORAGE_NOT_EXIST_INFO() { this.dwSize = this.size(); } } // 车辆ACC报è¦äº‹ä»¶, 对应事件类型 NET_ALARM_VEHICLE_ACC public static class ALARM_VEHICLE_ACC_INFO extends SdkStructure { public int dwSize; public int nACCStatus; // ACC状æ€, 0:æ— æ•ˆ, 1:å¼€å¯, 2:å…³é— public int nAction; // 事件动作, 0:Start, 1:Stop public NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPSä¿¡æ¯ public int nConstantElectricStatus; // 常电状æ€, 0:未知, 1:连接, 2:æ–å¼€ public NET_TIME_EX stuTime; // 事件å‘生的时间 public int nTotalMileage; // 总的里程数,å•ä½:ç±³,当nACCStatus为2æ—¶,å°†ntotalMileage进行上报 public NET_TIME_EX stuStartTime; // nACCStatus为1时刻的时间 public NET_GPS_STATUS_INFO stuStartGPS; // nACCStatus为1时刻的GPSä¿¡æ¯ public ALARM_VEHICLE_ACC_INFO() { this.dwSize = this.size(); } } // 事件类型 NET_ALARM_VIDEOBLIND(视频é®æŒ¡äº‹ä»¶)对应的数æ®å—æè¿°ä¿¡æ¯ public static class ALARM_VIDEO_BLIND_INFO extends SdkStructure { public int nAction; // 事件动作,1表示æŒç»æ€§äº‹ä»¶å¼€å§‹,2表示æŒç»æ€§äº‹ä»¶ç»“æŸ; public int nChannelID; // 通é“å· public double dbPTS; // 时间戳(å•ä½æ˜¯æ¯«ç§’) public NET_TIME_EX stuTime; // 事件å‘生的时间 public int nEventID; // 事件ID public NET_TIME_EX stuStartTime; // 开始时间,nAction为2时上报æ¤å—段 public NET_GPS_STATUS_INFO stuGPS; // GPSä¿¡æ¯ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展å—段结构体 public byte[] byReserved = new byte[1024]; // ä¿ç•™å—节 } // 紧急事件(对应 NET_URGENCY_ALARM_EX2, 对原有的 NET_URGENCY_ALARM_EX 类型的å‡çº§, 指人为触å‘的紧急事件, 一般处ç†æ˜¯è”动外部通讯功能请求帮助) public static class ALARM_URGENCY_ALARM_EX2 extends SdkStructure { public int dwSize; public NET_TIME stuTime; // 事件产生的时间 public int nID; // ç”¨äºŽæ ‡è¯†ä¸åŒçš„紧急事件 /** 0:脉冲*/ public int nAction; /** GPSä¿¡æ¯*/ public NET_GPS_STATUS_INFO stuGPSStatusInfo=new NET_GPS_STATUS_INFO(); /** 国际移动设备辨识ç 15ä½æ•°å—æ ‡è¯†*/ public byte[] szImei=new byte[16]; /** è·ç¦»ä¸Šæ¬¡ä¸ŠæŠ¥çš„GPS移动è·ç¦», å•ä½0.1Km*/ public int nDistance; /** 车牌å·ç */ public byte[] szPlateNumber=new byte[64]; /** 应ç”å·ç */ public byte[] szReplyNumber=new byte[16]; /** 线路信æ¯*/ public byte[] szLine=new byte[64]; public ALARM_URGENCY_ALARM_EX2() { this.dwSize = this.size(); } } // 事件类型 NET_ALARM_DRIVER_NOTCONFIRM (å¸æœºæœªæŒ‰ç¡®è®¤æŒ‰é’®æŠ¥è¦äº‹ä»¶)对应的数æ®å—æè¿°ä¿¡æ¯ public static class ALARM_DRIVER_NOTCONFIRM_INFO extends SdkStructure { public int nAction; // 事件动作,1表示æŒç»æ€§äº‹ä»¶å¼€å§‹,2表示æŒç»æ€§äº‹ä»¶ç»“æŸ; public NET_TIME_EX stuTime; // 事件å‘生的时间 public double dbPTS; // 时间戳(å•ä½æ˜¯æ¯«ç§’) public byte[] byReserved = new byte[512]; // ä¿ç•™å—节 } // äº¤é€šæ‹¥å¡žæŠ¥è¦ public static class ALARM_TRAF_CONGESTION_INFO extends SdkStructure { public int nDriveWayID; // 车é“å· public int nCongestionLevel; // 交通拥塞ç‰çº§:1,2,3,4,5,6;1çº§æœ€ä¸¥é‡ public NET_TIME stuTime; // 报è¦å‘生时间 public int nState; // 设备状æ€,0表示故障æ¢å¤,1表示å‘生故障 public int dwChannel; // 报è¦çš„通é“å· public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展å—段结构体 public byte[] reserve = new byte[28]; } // RAIDå¼‚å¸¸ä¿¡æ¯ public static class ALARM_RAID_INFO extends SdkStructure { public int nRaidNumber; // 上报的RAID个数 public RAID_STATE_INFO[] stuRaidInfo = new RAID_STATE_INFO[NET_MAX_RAID_NUM]; // 异常的RAIDä¿¡æ¯ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展å—段结构体 public byte[] reserved = new byte[128]; public ALARM_RAID_INFO() { for (int i = 0; i < stuRaidInfo.length; ++i) { stuRaidInfo[i] = new RAID_STATE_INFO(); } } } public static class RAID_STATE_INFO extends SdkStructure { public byte[] szName = new byte[16]; // Raidå称 public byte byType; // 类型 1:Jbod 2:Raid0 3:Raid1 4:Raid5 public byte byStatus; // çŠ¶æ€ 0:Error ,1:Active,2:Degraded,3:Inactive,4:Resyncing public byte[] byReserved = new byte[2]; public int nCntMem; // nMember数组的有效数æ®ä¸ªæ•° public int[] nMember = new int[32]; // 1,2,3,... 组æˆç£ç›˜é€šé“,是个数组 public int nCapacity; // 容é‡,å•ä½G public int nRemainSpace; // 剩余容é‡,å•ä½M public int nTank; // 扩展柜 0:主机,1:扩展柜1,2:扩展柜2,…… public byte[] reserved = new byte[32]; } // æµé‡ç»Ÿè®¡æŠ¥è¦é€šé“ä¿¡æ¯ public static class ALARM_TRAFFIC_FLUX_LANE_INFO extends SdkStructure { public NET_TIME stuCurTime; // 当å‰æ—¶é—´ public int nLane; // 车é“å· public int nState; // 状æ€å€¼ï¼š1-è¡¨ç¤ºæ‹¥å µ, 2-è¡¨ç¤ºæ‹¥å µæ¢å¤, 3-表示æ£å¸¸, 4-表示ä¸æ–, 5-表示ä¸æ–æ¢å¤ public int nFlow; // æµé‡å€¼,å•ä½ï¼šè¾†/分 public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展å—段结构体 public byte[] byReserved = new byte[124]; // ä¿ç•™ } // CLIENT_AttachBusState, 订阅Bus状æ€è¾“å…¥å‚结构 public static class NET_IN_BUS_ATTACH extends SdkStructure { public int dwSize; public fBusStateCallBack cbBusState; // 状æ€å›žè°ƒå‡½æ•° public Pointer dwUser; // ç”¨æˆ·æ•°æ® public NET_IN_BUS_ATTACH() { this.dwSize = this.size(); } } // CLIENT_AttachBusState, 订阅Bus状æ€è¾“出å‚结构 public static class NET_OUT_BUS_ATTACH extends SdkStructure { public int dwSize; public NET_OUT_BUS_ATTACH() { this.dwSize = this.size(); } } // 事件类型 NET_ALARM_BUS_PASSENGER_CARD_CHECK (乘客刷å¡äº‹ä»¶)对应的数æ®æè¿°ä¿¡æ¯ public static class ALARM_PASSENGER_CARD_CHECK extends SdkStructure { public int bEventConfirm; // 是å¦éœ€è¦å›žå¤, BOOL类型 public byte[] szCardNum = new byte[NET_MAX_BUSCARD_NUM]; // 公交å¡å· public NET_GPS_STATUS_INFO stuGPS; // GPSä¿¡æ¯ public NET_TIME_EX UTC; // 刷å¡æ—¶é—´ public int nTime; // UTCæ•´åž‹ public int emType; // 刷å¡ç±»åž‹, å‚考 EM_PASSENGER_CARD_CHECK_TYPE public byte[] szMac = new byte[NET_MAX_POS_MAC_NUM]; // 刷å¡æœºMacç (默认"0000",兼容è€è®¾å¤‡) public byte[] reserved = new byte[1012]; // 预留 } public static class EM_PASSENGER_CARD_CHECK_TYPE extends SdkStructure { public static final int EM_PASSENGER_CARD_CHECK_TYPE_UNKOWN = 0; // 未知 public static final int EM_PASSENGER_CARD_CHECK_TYPE_SIGNIN = 1; // ç¾åˆ°/上车 public static final int EM_PASSENGER_CARD_CHECK_TYPE_SIGNOUT = 2; // ç¾å‡º/下车 public static final int EM_PASSENGER_CARD_CHECK_TYPE_NORMAL = 3; // æ£å¸¸åˆ·å¡ï¼Œä¸åŒºåˆ†ä¸Šä¸‹è½¦ } // CLIENT_AttachEventRestore 接å£è¾“å…¥å‚æ•° public static class NET_IN_ATTACH_EVENT_RESTORE extends SdkStructure { public int dwSize; //ç»“æž„ä½“å¤§å° public byte[] szUuid = new byte[MAX_EVENT_RESTORE_UUID]; //å®¢æˆ·ç«¯æƒŸä¸€æ ‡è¯† public NET_IN_ATTACH_EVENT_RESTORE() { this.dwSize = this.size(); } } public static class GPS_TEMP_HUMIDITY_INFO extends SdkStructure { public double dTemperature; // 温度值(æ‘„æ°åº¦),实际值的1000å€,如30.0æ‘„æ°åº¦è¡¨ç¤ºä¸º30000 public double dHumidity; // 湿度值(%),实际值的1000å€,如30.0%表示为30000 public byte[] bReserved = new byte[128]; // ä¿ç•™å—节 public static class ByValue extends GPS_Info implements SdkStructure.ByValue { } } // 事件类型 NET_ALARM_FACEINFO_COLLECT (人脸信æ¯å½•å…¥äº‹ä»¶)对应的数æ®å—æè¿°ä¿¡æ¯ public static class ALARM_FACEINFO_COLLECT_INFO extends SdkStructure { public int nAction; // 事件动作,1表示æŒç»æ€§äº‹ä»¶å¼€å§‹,2表示æŒç»æ€§äº‹ä»¶ç»“æŸ; public NET_TIME_EX stuTime; // 事件å‘生的时间 public double dbPTS; // 时间戳(å•ä½æ˜¯æ¯«ç§’) public byte[] szUserID = new byte[NET_MAX_USERID_LEN]; // 用户ID public byte[] byReserved = new byte[512]; // ä¿ç•™å—节 } // 人脸信æ¯è®°å½•æ“作类型, æŽ¥å£ CLIENT_FaceInfoOpreate public static class EM_FACEINFO_OPREATE_TYPE extends SdkStructure { public static final int EM_FACEINFO_OPREATE_ADD = 0; // æ·»åŠ , pInbuf = NET_IN_ADD_FACE_INFO , pOutBuf = NET_OUT_ADD_FACE_INFO public static final int EM_FACEINFO_OPREATE_GET = 1; // 获å–, pInBuf = NET_IN_GET_FACE_INFO , pOutBuf = NET_OUT_GET_FACE_INFO public static final int EM_FACEINFO_OPREATE_UPDATE = 2; // æ›´æ–°, pInbuf = NET_IN_UPDATE_FACE_INFO , pOutBuf = NET_OUT_UPDATE_FACE_INFO public static final int EM_FACEINFO_OPREATE_REMOVE = 3; // åˆ é™¤, pInbuf = NET_IN_REMOVE_FACE_INFO , pOutBuf = NET_OUT_REMOVE_FACE_INFO public static final int EM_FACEINFO_OPREATE_CLEAR = 4; // 清除, pInbuf = NET_IN_CLEAR_FACE_INFO, pOutBuf = NET_OUT_CLEAR_FACE_INFO public static final int EM_FACEINFO_OPREATE_GETFACEEIGEN = 5; // 获å–人脸特å¾å€¼, pInbuf = NET_IN_GETFACEEIGEN_INFO, pOutBuf = NET_OUT_GETFACEEIGEN_INFO } // æ·»åŠ äººè„¸è®°å½•ä¿¡æ¯è¾“å…¥å‚æ•° public static class NET_IN_ADD_FACE_INFO extends SdkStructure { public int dwSize; public byte[] szUserID = new byte[NET_MAX_USERID_LEN]; // 用户ID public NET_FACE_RECORD_INFO stuFaceInfo; // äººè„¸æ•°æ® public NET_IN_ADD_FACE_INFO() { this.dwSize = this.size(); } } // äººè„¸ä¿¡æ¯ public static class NET_FACE_RECORD_INFO extends SdkStructure { public byte[] szUserName = new byte[MAX_USER_NAME_LEN]; // 用户å public int nRoom; // 房间个数 public NET_FACE_ROOMNO[] szRoomNoArr = (NET_FACE_ROOMNO[])new NET_FACE_ROOMNO().toArray(MAX_ROOMNUM_COUNT); // 房间å·åˆ—表 public int nFaceData; // 人脸模æ¿æ•°æ®ä¸ªæ•° public NET_FACE_FACEDATA[] szFaceDataArr = (NET_FACE_FACEDATA[])new NET_FACE_FACEDATA().toArray(MAX_FACE_COUTN);// 人脸模æ¿æ•°æ® public int[] nFaceDataLen = new int[MAX_FACE_COUTN]; // 人脸模版数æ®å¤§å° public int nFacePhoto; // 人脸照片个数 public int[] nFacePhotoLen = new int[MAX_PHOTO_COUNT]; // æ¯å¼ å›¾ç‰‡çš„å¤§å° public FACE_PHOTO[] pszFacePhotoArr = (FACE_PHOTO[])new FACE_PHOTO().toArray(MAX_PHOTO_COUNT); // 人脸照片数æ®,大å°ä¸è¶…过120K public int bValidDate; //是å¦è®¾ç½®äººè„¸æœ‰æ•ˆæ—¶é—´ public NET_TIME stuValidDateStart; //人脸有效开始时间 public NET_TIME stuValidDateEnd; //人脸有效结æŸæ—¶é—´ public int nValidCounts; // 刷脸有效次数:å°äºŽ0表示ä¸é™æ¬¡æ•°ï¼Œ ç‰äºŽ0刷脸次数已用完 public int bValidCountsEnable; // 次数å—段使能 public int bFaceDataExEnable; // 人脸模æ¿æ•°æ®æ‰©å±•ä½¿èƒ½ public Pointer[] pszFaceDataEx=new Pointer[MAX_FACE_COUTN]; // 人脸模æ¿æ•°æ®æ‰©å±•, 由用户申请释放, æ¯å¼ 照片最大为8K //public FACE_PHOTO_EX[] pszFaceDataExArr = (FACE_PHOTO_EX[])new FACE_PHOTO_EX().toArray(MAX_FACE_COUTN); // 人脸模æ¿æ•°æ®æ‰©å±•, 由用户申请释放, æ¯å¼ 照片最大为8K public byte[] byReserved = new byte[240]; // ä¿ç•™å—节 } public static class NET_FACE_ROOMNO extends SdkStructure { public byte[] szRoomNo = new byte[NET_COMMON_STRING_16]; // æˆ¿é—´å· } public static class NET_FACE_FACEDATA extends SdkStructure { public byte[] szFaceData = new byte[MAX_FACE_DATA_LEN]; // äººè„¸æ•°æ® } public static class FACE_PHOTO extends SdkStructure { public Pointer pszFacePhoto; } /*public static class FACE_PHOTO_EX extends SdkStructure { public Pointer pszFaceDataEx; }*/ // æ·»åŠ äººè„¸è®°å½•ä¿¡æ¯è¾“出å‚æ•° public static class NET_OUT_ADD_FACE_INFO extends SdkStructure { public int dwSize; public NET_OUT_ADD_FACE_INFO() { this.dwSize = this.size(); } } // 获å–人脸记录信æ¯è¾“å…¥å‚æ•° public static class NET_IN_GET_FACE_INFO extends SdkStructure { public int dwSize; public byte[] szUserID = new byte[NET_MAX_USERID_LEN]; // 用户ID public NET_IN_GET_FACE_INFO() { this.dwSize = this.size(); } } // 获å–人脸记录信æ¯è¾“出å‚æ•° public static class NET_OUT_GET_FACE_INFO extends SdkStructure { public int dwSize; public int nFaceData; // 人脸模æ¿æ•°æ®ä¸ªæ•° public NET_FACE_FACEDATA[] szFaceDataArr = (NET_FACE_FACEDATA[])new NET_FACE_FACEDATA().toArray(MAX_FACE_COUTN); // 人脸模æ¿æ•°æ® public int nPhotoData; // 白光人脸照片数æ®ä¸ªæ•°, 最大个数:5 public int[] nInPhotoDataLen = new int[MAX_PHOTO_COUNT]; // 用户申请的æ¯å¼ ç™½å…‰äººè„¸ç…§ç‰‡å¤§å° public int[] nOutPhotoDataLen = new int[MAX_PHOTO_COUNT]; // æ¯å¼ ç™½å…‰äººè„¸ç…§ç‰‡å®žé™…çš„å¤§å° public Pointer[] pPhotoData = new Pointer[MAX_PHOTO_COUNT]; // 白光人脸照片数æ®, 由用户申请释放, æ¯å¼ 照片最大为200K public NET_OUT_GET_FACE_INFO() { this.dwSize = this.size(); } } // 更新人脸记录信æ¯è¾“å…¥å‚æ•° public static class NET_IN_UPDATE_FACE_INFO extends SdkStructure { public int dwSize; public byte[] szUserID = new byte[NET_MAX_USERID_LEN]; // 用户ID public NET_FACE_RECORD_INFO stuFaceInfo; // äººè„¸æ•°æ® public NET_IN_UPDATE_FACE_INFO() { this.dwSize = this.size(); } } // 更新人脸记录信æ¯è¾“出å‚æ•° public static class NET_OUT_UPDATE_FACE_INFO extends SdkStructure { public int dwSize; public NET_OUT_UPDATE_FACE_INFO() { this.dwSize = this.size(); } } // åˆ é™¤äººè„¸è®°å½•ä¿¡æ¯è¾“å…¥å‚æ•° public static class NET_IN_REMOVE_FACE_INFO extends SdkStructure { public int dwSize; public byte[] szUserID = new byte[NET_MAX_USERID_LEN]; // 用户ID public NET_IN_REMOVE_FACE_INFO() { this.dwSize = this.size(); } } // åˆ é™¤äººè„¸è®°å½•ä¿¡æ¯è¾“出å‚æ•° public static class NET_OUT_REMOVE_FACE_INFO extends SdkStructure { public int dwSize; public NET_OUT_REMOVE_FACE_INFO() { this.dwSize = this.size(); } } // 清除人脸记录信æ¯è¾“å…¥å‚æ•° public static class NET_IN_CLEAR_FACE_INFO extends SdkStructure { public int dwSize; public NET_IN_CLEAR_FACE_INFO() { this.dwSize = this.size(); } } // 清除人脸记录信æ¯è¾“出å‚æ•° public static class NET_OUT_CLEAR_FACE_INFO extends SdkStructure { public int dwSize; public NET_OUT_CLEAR_FACE_INFO() { this.dwSize = this.size(); } } // æ·»åŠ èŠ‚ç›®ä¿¡æ¯æŽ¥å£è¾“å…¥å‚æ•° public static class NET_IN_ADD_ONE_PROGRAMME extends SdkStructure { public int dwSize; public NET_PROGRAMME_INFO stuProgrammeInfo; // èŠ‚ç›®ä¿¡æ¯ public NET_IN_ADD_ONE_PROGRAMME() { this.dwSize = this.size(); } } // æ·»åŠ èŠ‚ç›®ä¿¡æ¯æŽ¥å£è¾“出å‚æ•° public static class NET_OUT_ADD_ONE_PROGRAMME extends SdkStructure { public int dwSize; public byte[] szProgrammeID = new byte[MAX_COMMON_STRING_64]; // 节目ID public NET_OUT_ADD_ONE_PROGRAMME() { this.dwSize = this.size(); } } // 诱导å±èŠ‚ç›®é…ç½®ä¿¡æ¯ public static class NET_PROGRAMME_INFO extends SdkStructure { public byte[] szProgrammeName = new byte[MAX_COMMON_STRING_64]; // 节目å称 public byte[] szProgrammeID = new byte[MAX_COMMON_STRING_64]; // 节目IDï¼Œæ·»åŠ æ—¶æ— æ•ˆï¼Œç”¨äºŽä¿®æ”¹ã€åˆ 除 public int bEnable; // 节目是å¦å¯ç”¨,BOOL类型 public NET_ORDINARY_INFO stuOrdinaryInfo = new NET_ORDINARY_INFO(); // 普通节目信æ¯ï¼Œæ¤å‚数需è¦åœ¨åº“里new对象 public byte[] byReserved = new byte[512]; // ä¿ç•™å—节 } // 诱导å±æ™®é€šèŠ‚ç›®ä¿¡æ¯ public static class NET_ORDINARY_INFO extends SdkStructure { public int bTempletState; // 节目是å¦ä¿å˜ä¸ºæ¨¡æ¿, BOOL类型 public byte[] szDescription = new byte[MAX_COMMON_STRING_128]; // 节目æè¿°ä¿¡æ¯ public int nWhnCount; // 诱导å±çª—å£ä¸ªæ•° public NET_GUIDESCREEN_WINDOW_INFO[] stuWindowsInfo = (NET_GUIDESCREEN_WINDOW_INFO[])new NET_GUIDESCREEN_WINDOW_INFO().toArray(MAX_WINDOWS_COUNT); // 诱导å±çª—å£ä¿¡æ¯ public byte[] byReserved = new byte[128]; // ä¿ç•™å—节 } // 诱导å±çª—å£ä¿¡æ¯ public static class NET_GUIDESCREEN_WINDOW_INFO extends SdkStructure { public byte[] szWindowID = new byte[MAX_COMMON_STRING_64]; // 窗å£ID public int nVolume; // 窗å£éŸ³é‡ï¼Œç›¸å¯¹æ•´å±éŸ³é‡çš„百分比 public NET_COLOR_RGBA stuColor; // 窗å£èƒŒæ™¯é¢œè‰² public int nDiaphaneity; // 窗å£èƒŒæ™¯é€æ˜Žåº¦0-100 public int emTourPeriodType; // 窗å£è½®è®ç±»åž‹, 对应 EM_TOURPERIOD_TYPE public int nTourPeriodTime; // 自定义轮è®æ—¶é—´ï¼Œå•ä½ç§’, è½®è®ç±»åž‹ä¸ºè‡ªå®šä¹‰è½®è®æ—¶æœ‰æ•ˆ public int bAutoPlay; // 预览自动æ’放,Videoå…ƒç´ æœ‰æ•ˆ, BOOL类型 public int bLoopPlay; // 预览循环æ’放,Videoå…ƒç´ æœ‰æ•ˆ, BOOL类型 public int nElementsCount; // 诱导å±çª—å£å…ƒç´ 个数 public Pointer pstElementsBuf; // 诱导å±çª—å£å…ƒç´ ä¿¡æ¯ç¼“å˜åŒº, æ ¹æ®ç±»åž‹å¯¹åº”ä¸åŒçš„结构体 // å¡«å……å¤šä¸ªå…ƒç´ ä¿¡æ¯, æ¯ä¸ªå…ƒç´ ä¿¡æ¯å†…容为 NET_ELEMENT_COMMON_INFO + å…ƒç´ ç±»åž‹å¯¹åº”çš„ç»“æž„ä½“ public int nBufLen; // 诱导å±çª—å£å…ƒç´ ä¿¡æ¯ç¼“å˜åŒºå¤§å° public byte[] byReserved = new byte[128]; // ä¿ç•™å—节 } // 窗å£å…ƒç´ é€šæœ‰ä¿¡æ¯ public static class NET_ELEMENT_COMMON_INFO extends SdkStructure { public int emElementsType; // 窗å£å…ƒç´ 类型,对应枚举 EM_ELEMENTS_TYPE public byte[] byReserved = new byte[128]; // ä¿ç•™å—节 } //窗å£è½®è®å‘¨æœŸç±»åž‹ public static class EM_TOURPERIOD_TYPE extends SdkStructure { public static final int EM_TOURPERIOD_UNKNOWN = 0; // 未知 public static final int EM_TOURPERIOD_PROGRAMME = 1; // 节目周期 public static final int EM_TOURPERIOD_PLAN = 2; // 计划周期 public static final int EM_TOURPERIOD_CUSTOM = 3; // 自定义周期 } // 诱导å±çª—å£å…ƒç´ 类型 public static class EM_ELEMENTS_TYPE extends SdkStructure { public static final int EM_ELEMENTS_UNKNOWN = 0; // 未知 public static final int EM_ELEMENTS_VIDEO = 1; // è§†é¢‘å…ƒç´ , 对应 NET_VIDEO_ELEMENT_INFO public static final int EM_ELEMENTS_PICTURE = 2; // å›¾ç‰‡å…ƒç´ , 对应 NET_PICTURE_ELEMENT_INFO public static final int EM_ELEMENTS_TEXT = 3; // æ–‡æœ¬å…ƒç´ , 对应 NET_TEXT_ELEMENT_INFO public static final int EM_ELEMENTS_PLACEHOLDER = 4; // å ä½ç¬¦å…ƒç´ , 对应 NET_PLACEHOLDER_ELEMENT_INFO public static final int EM_ELEMENTS_CAPTURE = 5; // 抓æ‹å…ƒç´ , 对应 NET_CAPTURE_ELEMENT_INFO } // è§†é¢‘å…ƒç´ ä¿¡æ¯ public static class NET_VIDEO_ELEMENT_INFO extends SdkStructure { public byte[] szName = new byte[MAX_COMMON_STRING_64]; // ç´ æ自定义å称 public int bFillerState; // 是å¦åž«ç‰‡, BOOL类型 public byte[] szPath = new byte[MAX_COMMON_STRING_128]; // æ–‡ä»¶åœ°å€ public int nPlayCount; // æ’放次数 public int nNote; // 注释信æ¯ä¸ªæ•° public NET_GUIDESCREEN_NOTE_INFO[] stuNoteInfo = (NET_GUIDESCREEN_NOTE_INFO[])new NET_GUIDESCREEN_NOTE_INFO().toArray(MAX_NOTE_COUNT); // æ³¨é‡Šä¿¡æ¯ public byte[] byReserved = new byte[128]; // ä¿ç•™å—节 } // 诱导å±çª—å£å…ƒç´ æ³¨é‡Šä¿¡æ¯ public static class NET_GUIDESCREEN_NOTE_INFO extends SdkStructure { public int bEnable; // 是å¦æœ‰æ•ˆ, BOOL类型 public NET_GUIDESCREEN_TEXT_INFO stuTextInfo; // æ–‡å—æ³¨é‡Šä¿¡æ¯ public NET_RECT stuRect; // æ–‡å—注释的åæ ‡ public byte[] byReserved = new byte[128]; // ä¿ç•™å—节 } // æ–‡æœ¬ä¿¡æ¯ public static class NET_GUIDESCREEN_TEXT_INFO extends SdkStructure { public byte[] szContent = new byte[MAX_ELEMENTTEXT_LENGTH]; // 文本内容 public int nFontSize; // å—ä½“å¤§å° public NET_COLOR_RGBA stuFontColor; // å—体颜色 public byte[] szFontStyle = new byte[MAX_COMMON_STRING_32]; // å—体类型 public double dbLineHeight; // 行高 public int emHoriAlign; // 水平对é½æ–¹å‘, 对应 EM_HORI_ALIGN_TYPE public int emVertAlign; // 垂直对é½æ–¹å‘, 对应 EM_VERT_ALIGN_TYPE public int nPlayTime; // æ’放时间, å•ä½ç§’ public int nPlayCount; // æ’放次数 public int nStayTime; // åœç•™é—´éš”(切入切出的间隔时间)å•ä½ï¼šs public int emEnterStyle; // åˆ‡å…¥é£Žæ ¼, 对应 EM_PIC_STYLE_TYPE public int emExitStyle; // åˆ‡å‡ºé£Žæ ¼, 对应 EM_PIC_STYLE_TYPE public byte[] byReserved = new byte[128]; // ä¿ç•™å—节 } // 水平对é½ç±»åž‹ public static class EM_HORI_ALIGN_TYPE extends SdkStructure { public static final int EM_HORI_ALIGN_UNKNOWN = 0; // 未知 public static final int EM_HORI_ALIGN_LEFT = 1; // å·¦å¯¹é½ public static final int EM_HORI_ALIGN_CENTER = 2; // å±…ä¸ public static final int EM_HORI_ALIGN_RIGHT = 3; // å³å¯¹é½ } // 垂直对é½ç±»åž‹ public static class EM_VERT_ALIGN_TYPE extends SdkStructure { public static final int EM_VERT_ALIGN_UNKNOWN = 0; // 未知 public static final int EM_VERT_ALIGN_UP = 1; // ä¸Šå¯¹é½ public static final int EM_VERT_ALIGN_CENTER = 2; // å±…ä¸ public static final int EM_VERT_ALIGN_DOWN = 3; // ä¸‹å¯¹é½ } // 切入(切出) é£Žæ ¼ public static class EM_PIC_STYLE_TYPE extends SdkStructure { public static final int EM_PIC_STYLE_UNKNOWN = 0; // 未知 public static final int EM_PIC_STYLE_DEFAULT = 1; // 默认 public static final int EM_PIC_STYLE_UP = 2; // 上移 public static final int EM_PIC_STYLE_DOWN = 3; // 下移 public static final int EM_PIC_STYLE_LEFT = 4; // 左移 public static final int EM_PIC_STYLE_RIGHT = 5; // å³ç§» } // å›¾ç‰‡å…ƒç´ ä¿¡æ¯ public static class NET_PICTURE_ELEMENT_INFO extends SdkStructure { public byte[] szName = new byte[MAX_COMMON_STRING_64]; // ç´ æ自定义å称 public int bFillerState; // 是å¦åž«ç‰‡, BOOL类型 public byte[] szPath = new byte[MAX_COMMON_STRING_128]; // å›¾ç‰‡æ–‡ä»¶åœ°å€ public int nPlayTime; // æ’放时间, å•ä½ç§’ public int nPlayCount; // æ’放次数 public int nDiaphaneity; // é€æ˜Žåº¦, 0-100 public int nStayTime; // åœç•™æ—¶é—´, å•ä½ç§’ public int emEnterStyle; // åˆ‡å…¥é£Žæ ¼, 对应 EM_PIC_STYLE_TYPE public int emExitStyle; // åˆ‡å‡ºé£Žæ ¼, 对应 EM_PIC_STYLE_TYPE public int nNote; // 注释信æ¯ä¸ªæ•° public NET_GUIDESCREEN_NOTE_INFO[] stuNoteInfo = (NET_GUIDESCREEN_NOTE_INFO[])new NET_GUIDESCREEN_NOTE_INFO().toArray(MAX_NOTE_COUNT); // æ³¨é‡Šä¿¡æ¯ public byte[] byReserved = new byte[128]; // ä¿ç•™å—节 } // 诱导å±çª—å£æ–‡æœ¬å…ƒç´ ä¿¡æ¯ public static class NET_TEXT_ELEMENT_INFO extends SdkStructure { public byte[] szName = new byte[MAX_COMMON_STRING_64]; // ç´ æ自定义å称 public int bFillerState; // 是å¦åž«ç‰‡, 对应 BOOL类型 public NET_GUIDESCREEN_TEXT_INFO stuElementsText; // æ–‡æœ¬å…ƒç´ ä¿¡æ¯ public int nNote; // 注释信æ¯ä¸ªæ•° public NET_GUIDESCREEN_NOTE_INFO[] stuNoteInfo = (NET_GUIDESCREEN_NOTE_INFO[])new NET_GUIDESCREEN_NOTE_INFO().toArray(MAX_NOTE_COUNT); // æ³¨é‡Šä¿¡æ¯ public byte[] byReserved = new byte[128]; // ä¿ç•™å—节 } // 诱导å±çª—å£å ä½ç¬¦å…ƒç´ ä¿¡æ¯ public static class NET_PLACEHOLDER_ELEMENT_INFO extends SdkStructure { public byte[] szName = new byte[MAX_COMMON_STRING_64]; // ç´ æ自定义å称 public int bFillerState; // 是å¦åž«ç‰‡, BOOL类型 public int nNote; // 注释信æ¯ä¸ªæ•° public NET_GUIDESCREEN_NOTE_INFO[] stuNoteInfo = (NET_GUIDESCREEN_NOTE_INFO[])new NET_GUIDESCREEN_NOTE_INFO().toArray(MAX_NOTE_COUNT); // æ³¨é‡Šä¿¡æ¯ public byte[] byReserved = new byte[128]; // ä¿ç•™å—节 } public static class NET_CAPTURE_OSD_INFO extends SdkStructure { public int bEnable; // å åŠ ä½¿èƒ½ public NET_COLOR_RGBA stuFontColor; // æ–‡å—颜色 public NET_COLOR_RGBA stuBackGroundColor; // 背景颜色 public int nFontSize; // å—ä½“å¤§å° public byte[] szContent=new byte[MAX_COMMON_STRING_512]; // OSD内容 public byte[] byReserved=new byte[1024]; // ä¿ç•™å—节 }; // 抓æ‹å…ƒç´ ä¿¡æ¯ public static class NET_CAPTURE_ELEMENT_INFO extends SdkStructure { public byte[] szName = new byte[MAX_COMMON_STRING_64]; // ç´ æ自定义å称 public int bFillerState; // 是å¦åž«ç‰‡, BOOL类型 public byte[] szUserName = new byte[NET_USER_NAME_LEN_EX]; // 用户å public byte[] szPassWord = new byte[NET_USER_PSW_LEN_EX]; // 密ç public byte[] szIP = new byte[NET_MAX_IPADDR_LEN_EX]; // IPåœ°å€ public int nPort; // 端å£å· public int nChannel; // 通é“å· public int emCaptureType; // 抓æ‹ç±»åž‹, 对应 EM_CAPTURE_TYPE public int nPlayTime; // æ’放时间, å•ä½ç§’ public int nNote; // 注释信æ¯ä¸ªæ•° public NET_GUIDESCREEN_NOTE_INFO[] stuNoteInfo = (NET_GUIDESCREEN_NOTE_INFO[])new NET_GUIDESCREEN_NOTE_INFO().toArray(MAX_NOTE_COUNT); // æ³¨é‡Šä¿¡æ¯ public Pointer pstOsdInfo; // OSDå åŠ ä¿¡æ¯, 由用户申请和释放内å˜ï¼Œè‹¥ä¸ºNULL,则ä¸ä¸‹å‘(获å–)OSDä¿¡æ¯,对应结构体NET_CAPTURE_OSD_INFO public byte[] byReserved = new byte[124]; // ä¿ç•™å—节 } // 抓æ‹ç±»åž‹ public static class EM_CAPTURE_TYPE extends SdkStructure { public static final int EM_CAPTURE_UNKNOWN = 0; // 未知 public static final int EM_CAPTURE_VIDEO = 1; // 视频 public static final int EM_CAPTURE_PICTURE = 2; // 图片 } // 设置诱导å±å±å¹•é…置信æ¯è¾“å…¥å‚æ•° public static class NET_IN_SET_GUIDESCREEN_CFG extends SdkStructure { public int dwSize; public int nScreenCount; // 诱导å±å±žæ€§é…置信æ¯ä¸ªæ•°, 值由用户指定 // 诱导å±å±žæ€§é…置信æ¯, 内å˜ç”±ç”¨æˆ·ç»´æŠ¤, NET_GUIDESCREEN_ATTRIBUTE_INFO // 大å°ä¸ºnScreenCount 个 NET_GUIDESCREEN_ATTRIBUTE_INFO public Pointer pstGuideScreenCfg; public NET_IN_SET_GUIDESCREEN_CFG() { this.dwSize = this.size(); } } // 设置诱导å±å±å¹•é…置信æ¯è¾“出å‚æ•° public static class NET_OUT_SET_GUIDESCREEN_CFG extends SdkStructure { public int dwSize; public NET_OUT_SET_GUIDESCREEN_CFG() { this.dwSize = this.size(); } } // 诱导å±å±žæ€§é…ç½®ä¿¡æ¯ public static class NET_GUIDESCREEN_ATTRIBUTE_INFO extends SdkStructure { public int dwSize; public byte[] szScreenID = new byte[MAX_COMMON_STRING_64]; // å±å¹•ID public int emStatus; // 显示å±å¼€å…³çŠ¶æ€ 对应 EM_SCREEN_STATUS_TYPE public int bIsForeverOpen; // 是å¦æ°¸ä¹…å¼€å±, 0ï¼šå¼€å± 1ï¼šå…³å± public int nScreenTime; // 开关å±æ—¶é—´ä¸ªæ•° public NET_SCREEN_TIME_INFO[] stuScreenTime = (NET_SCREEN_TIME_INFO[])new NET_SCREEN_TIME_INFO().toArray(MAX_SCREENTIME_COUNT); // 开关å±æ—¶é—´æ•°ç»„ public int nBright; // 显示å±äº®åº¦, 1-100 public int nContrast; // 显示å±å¯¹æ¯”度, 1-100 public int nSaturation; // 显示å±é¥±å’Œåº¦, 1-100 public int nVolume; // å±å¹•æ•´ä½“éŸ³é‡ public int nWidth; // 宽度 public int nHeight; // 高度 public int nWindowsCount; // 窗å£ä¸ªæ•° public NET_GUIDESCREEN_WINDOW_RECT_INFO[] stuWindows = (NET_GUIDESCREEN_WINDOW_RECT_INFO[])new NET_GUIDESCREEN_WINDOW_RECT_INFO().toArray(MAX_WINDOWS_COUNT); // 窗å£ä¿¡æ¯ public NET_GUIDESCREEN_AUTO_BRIGHT stuAutoBright; // 诱导å±è‡ªåŠ¨è°ƒèŠ‚å±å¹•äº®åº¦ä¿¡æ¯ public byte[] byReserved = new byte[512]; // ä¿ç•™å—节 public NET_GUIDESCREEN_ATTRIBUTE_INFO() { this.dwSize = this.size(); } } // 诱导å±è‡ªåŠ¨è°ƒèŠ‚å±å¹•äº®åº¦ä¿¡æ¯ public static class NET_GUIDESCREEN_AUTO_BRIGHT extends SdkStructure { public int bEnable; // 是å¦ä½¿èƒ½è‡ªåŠ¨äº®åº¦é…ç½® public int nLightBright; // 白天的亮度 public int nDarkBright; // 夜间的亮度 public NET_SUN_RISE_SET_TIME[] stuSunTime = (NET_SUN_RISE_SET_TIME[])new NET_SUN_RISE_SET_TIME().toArray(MAX_SUNTIME_COUNT); // 日出日è½æ—¶é—´ public byte[] byReserved = new byte[128]; // ä¿ç•™å—节 } // 诱导å±é…置日出日è½æ—¶é—´ public static class NET_SUN_RISE_SET_TIME extends SdkStructure { public int nSunrise; // 日出时间, 默认上åˆ6 æ—¶ public int nSunset; // æ—¥è½æ—¶é—´, 默认下åˆ18 æ—¶ public byte[] byReserved = new byte[32]; // ä¿ç•™å—节 } //开关å±æ—¶é—´ä¿¡æ¯ public static class NET_SCREEN_TIME_INFO extends SdkStructure { public int bEnable; // 是å¦å¯ç”¨, BOOL类型 public int emDateType; // 开关å±æ—¥æœŸç±»åž‹ 对应 EM_SCREEN_DATE_TYPE public int nDateCount; // 开关å±æ—¥æœŸä¸ªæ•°' public int[] nPlayDates = new int[MAX_PLAYDATES_COUNT]; // 开关å±æ—¥æœŸ public NET_PROGRAMME_TIME_INFO stuOpenTime; // å¼€å±æ—¶é—´ public NET_PROGRAMME_TIME_INFO stuCloseTime; // å…³å±æ—¶é—´ public byte[] byReserved = new byte[128]; // ä¿ç•™ } // 诱导å±çª—å£åæ ‡ä¿¡æ¯ public static class NET_GUIDESCREEN_WINDOW_RECT_INFO extends SdkStructure { public byte[] szWindowID = new byte[MAX_COMMON_STRING_64]; // 窗å£ID public NET_RECT stuRect; // 窗å£åæ ‡ public int nWindowBright; // 诱导å±çª—å£äº®åº¦ï¼Œå•ç‹¬é…ç½®æŸä¸ªåå±çš„亮度,填0时以整å±äº®åº¦ä¸ºå‡† public byte[] byReserved = new byte[132]; // ä¿ç•™ } // èŠ‚ç›®æ—¶é—´ä¿¡æ¯ public static class NET_PROGRAMME_TIME_INFO extends SdkStructure { public int dwHour; // æ—¶ public int dwMinute; // 分 public int dwSecond; // 秒 public String toString() { return dwHour + ":" + dwMinute + ":" + dwSecond; } } // 显示å±å¼€å…³çŠ¶æ€ï¼ˆæžšä¸¾è½¬ç»“构体) public static class EM_SCREEN_STATUS_TYPE extends SdkStructure { public static final int EM_SCREEN_STATUS_UNKNOWN = 0; // 未知 public static final int EM_SCREEN_STATUS_ON = 1; // å¼€ public static final int EM_SCREEN_STATUS_OFF = 2; // å…³ } // 日期类型枚(枚举转结构体) public static class EM_SCREEN_DATE_TYPE extends SdkStructure { public static final int EM_SCREEN_DATE_UNKNOWN = 0; // 未知 public static final int EM_SCREEN_DATE_MONTH = 1; // æ¯æœˆ public static final int EM_SCREEN_DATE_WEEK = 2; // æ¯å‘¨ public static final int EM_SCREEN_DATE_DAY = 3; // æ¯æ—¥ } // å¢žåŠ å³æ—¶èŠ‚目计划输入å‚æ•° public static class NET_IN_ADD_IMME_PROGRAMMEPLAN extends SdkStructure { public int dwSize; public NET_IMMEDIATELY_PLAN_INFO stuImmePlan; // å³æ—¶èŠ‚ç›®è®¡åˆ’ä¿¡æ¯ public NET_IN_ADD_IMME_PROGRAMMEPLAN() { this.dwSize = this.size(); } } // å¢žåŠ èŠ‚ç›®è®¡åˆ’è¾“å‡ºå‚æ•° public static class NET_OUT_ADD_PROGRAMMEPLAN extends SdkStructure { public int dwSize; public byte[] szPlanID = new byte[MAX_COMMON_STRING_64]; // 节目计划ID char[] public NET_OUT_ADD_PROGRAMMEPLAN() { this.dwSize = this.size(); } } // å³æ—¶èŠ‚目计划é…ç½®ä¿¡æ¯ public static class NET_IMMEDIATELY_PLAN_INFO extends SdkStructure { public byte[] szPlanName = new byte[MAX_COMMON_STRING_64]; // 节目计划å称 public byte[] szPlanID = new byte[MAX_COMMON_STRING_64]; // 节目计划ID ï¼Œæ·»åŠ æ—¶æ— æ•ˆï¼Œç”¨äºŽä¿®æ”¹ã€åˆ 除 public byte[] szSplitScreenID = new byte[MAX_COMMON_STRING_64]; // 分å±ID public int bEnable; // 计划是å¦å¯ç”¨ , BOOL类型 public int nPlayTime; // æ’放时长, å•ä½ : 分钟 public byte[] szProgrammeName = new byte[MAX_COMMON_STRING_64]; // å³æ—¶å‘布的节目å称 public byte[] szProgrammeID = new byte[MAX_COMMON_STRING_64]; // å³æ—¶å‘布的节目ID public byte[] byReserved = new byte[512]; // ä¿ç•™å—节 } // 修改节目信æ¯æŽ¥å£è¾“å…¥å‚æ•° public static class NET_IN_MODIFY_ONE_PROGRAMME extends SdkStructure { public int dwSize; public NET_PROGRAMME_INFO stuProgrammeInfo; // èŠ‚ç›®ä¿¡æ¯ public NET_IN_MODIFY_ONE_PROGRAMME() { this.dwSize = this.size(); } } // 修改节目信æ¯æŽ¥å£è¾“出å‚æ•° public static class NET_OUT_MODIFY_ONE_PROGRAMME extends SdkStructure { public int dwSize; public NET_OUT_MODIFY_ONE_PROGRAMME() { this.dwSize = this.size(); } } // 批é‡åˆ 除节目信æ¯æŽ¥å£è¾“å…¥å‚æ•° public static class NET_IN_DEL_PROGRAMMES extends SdkStructure { public int dwSize; public int nProgrammeID; // 节目ID个数 public PRO_GRAMME_ID[] szProGrammeIdListArr = (PRO_GRAMME_ID[])new PRO_GRAMME_ID().toArray(MAX_PROGRAMMES_COUNT); // 需è¦åˆ 除的节目ID列表 public NET_IN_DEL_PROGRAMMES() { this.dwSize = this.size(); } } // 需è¦åˆ 除的节目ID public static class PRO_GRAMME_ID extends SdkStructure { public byte[] szProGrammeIdList = new byte[MAX_COMMON_STRING_64]; // 需è¦åˆ 除的节目ID } // 批é‡åˆ 除节目信æ¯æŽ¥å£è¾“出å‚æ•° public static class NET_OUT_DEL_PROGRAMMES extends SdkStructure { public int dwSize; public NET_OUT_DEL_PROGRAMMES() { this.dwSize = this.size(); } } // 修改å³æ—¶èŠ‚目计划输入å‚æ•° public static class NET_IN_MODIFY_IMME_PROGRAMMEPLAN extends SdkStructure { public int dwSize; public NET_IMMEDIATELY_PLAN_INFO stuImmePlan; // å³æ—¶èŠ‚ç›®è®¡åˆ’ä¿¡æ¯ public NET_IN_MODIFY_IMME_PROGRAMMEPLAN() { this.dwSize = this.size(); } } // 修改å³æ—¶èŠ‚目计划输出å‚æ•° public static class NET_OUT_MODIFY_IMME_PROGRAMMEPLAN extends SdkStructure { public int dwSize; public NET_OUT_MODIFY_IMME_PROGRAMMEPLAN() { this.dwSize = this.size(); } } // å¢žåŠ å®šæ—¶èŠ‚ç›®è®¡åˆ’è¾“å…¥å‚æ•° public static class NET_IN_ADD_TIMER_PROGRAMMEPLAN extends SdkStructure { public int dwSize; public NET_TIMER_PLAN_INFO stuTimerPlan; // å®šæ—¶èŠ‚ç›®è®¡åˆ’ä¿¡æ¯ public NET_IN_ADD_TIMER_PROGRAMMEPLAN() { this.dwSize = this.size(); } } // 定时节目计划é…ç½®ä¿¡æ¯ public static class NET_TIMER_PLAN_INFO extends SdkStructure { public byte[] szPlanName = new byte[MAX_COMMON_STRING_64]; // 节目计划å称 public byte[] szPlanID = new byte[MAX_COMMON_STRING_64]; // 节目计划IDï¼Œæ·»åŠ æ—¶æ— æ•ˆï¼Œç”¨äºŽä¿®æ”¹ã€åˆ 除 public byte[] szSplitScreenID = new byte[MAX_COMMON_STRING_64]; // 分å±ID public int emDataType; // 节目计划日期类型, 对应 EM_TIMERPLAN_DATE_TYPE public int nDataCount; // 节目计划日期个数 public int[] nPlayDates = new int[MAX_PLAYDATES_COUNT]; // 节目æ’放日期列表 public NET_PROGRAMME_DATA stuSatrtDate = new NET_PROGRAMME_DATA(); // 节目开始日期 public NET_PROGRAMME_DATA stuEndDate = new NET_PROGRAMME_DATA(); // 节目结æŸæ—¥æœŸ public int emReviewState; // å®¡æ ¸çŠ¶æ€, 对应 EM_REVIES_STATE public byte[] szReviewOpinion = new byte[MAX_COMMON_STRING_64]; // å®¡æ ¸æ„è§ public int bOverdue; // 计划是å¦è¿‡æœŸ, BOOL类型 public int nProgrammes; // 节目个数 public NET_PROGRAMME_OF_PLAN[] stuProgrammes = (NET_PROGRAMME_OF_PLAN[])new NET_PROGRAMME_OF_PLAN().toArray(MAX_PROGRAMMES_COUNT); // èŠ‚ç›®ç»„ä¿¡æ¯ public byte[] byReserved = new byte[512]; // ä¿ç•™å—节 } // 定时计划日期类型 public static class EM_TIMERPLAN_DATE_TYPE extends SdkStructure { public static final int EM_TIMERPLAN_DATE_UNKNOWN = 0; // 未知 public static final int EM_TIMERPLAN_DATE_MONTH = 1; // æ¯æœˆ public static final int EM_TIMERPLAN_DATE_WEEK = 2; // æ¯å‘¨ public static final int EM_TIMERPLAN_DATE_DAY = 3; // æ¯æ—¥ public static final int EM_TIMERPLAN_DATE_CUSTOM = 4; // 自定义 } // èŠ‚ç›®æ—¥æœŸæ ¼å¼ public static class NET_PROGRAMME_DATA extends SdkStructure { public int dwYear; // å¹´ public int dwMonth; // 月 public int dwDay; // æ—¥ public String toString() { return dwYear + "-" + dwMonth + "-" + dwDay; } } // 节目计划ä¸çš„èŠ‚ç›®ä¿¡æ¯ public static class NET_PROGRAMME_OF_PLAN extends SdkStructure { public byte[] szProgrammeName = new byte[MAX_COMMON_STRING_64]; // 节目å称 public byte[] szProgrammeID = new byte[MAX_COMMON_STRING_64]; // 节目ID public int bIsBgProgramme; // 是å¦èƒŒæ™¯èŠ‚ç›®, BOOL类型 public NET_PROGRAMME_TIME_INFO stuSatrtTime; // 节目开始时间 public NET_PROGRAMME_TIME_INFO stuEndTime; // 节目结æŸæ—¶é—´ public byte[] byReserved = new byte[128]; // ä¿ç•™å—节 } // å®¡æ ¸çŠ¶æ€ public static class EM_REVIES_STATE extends SdkStructure { public static final int EM_REVIES_UNKNOWN = 0; // 未知 public static final int EM_REVIES_PASS = 1; // 通过 public static final int EM_REVIES_NOTPASS = 2; // ä¸é€šè¿‡ } // 修改定时节目计划输入å‚æ•° public static class NET_IN_MODIFY_TIMER_PROGRAMMEPLAN extends SdkStructure { public int dwSize; public NET_TIMER_PLAN_INFO stuTimerPlan; // å®šæ—¶èŠ‚ç›®è®¡åˆ’ä¿¡æ¯ public NET_IN_MODIFY_TIMER_PROGRAMMEPLAN() { this.dwSize = this.size(); } } // 修改定时节目计划输出å‚æ•° public static class NET_OUT_MODIFY_TIMER_PROGRAMMEPLAN extends SdkStructure { public int dwSize; public NET_OUT_MODIFY_TIMER_PROGRAMMEPLAN() { this.dwSize = this.size(); } } // åˆ é™¤å¤šä¸ªèŠ‚ç›®è®¡åˆ’è¾“å…¥å‚æ•° public static class NET_IN_DEL_PROGRAMMEPLANS extends SdkStructure { public int dwSize; public int nPlanID; // 节目计划ID个数 public PLAN_ID[] szPlanIDArr = (PLAN_ID[])new PLAN_ID().toArray(MAX_PROGRAMMES_COUNT); // 节目计划ID public NET_IN_DEL_PROGRAMMEPLANS() { this.dwSize = this.size(); } } // 节目计划ID public static class PLAN_ID extends SdkStructure { public byte[] szPlanID = new byte[MAX_COMMON_STRING_64]; // 节目计划ID } // åˆ é™¤å¤šä¸ªèŠ‚ç›®è®¡åˆ’è¾“å‡ºå‚æ•° public static class NET_OUT_DEL_PROGRAMMEPLANS extends SdkStructure { public int dwSize; public NET_OUT_DEL_PROGRAMMEPLANS() { this.dwSize = this.size(); } } // 通过诱导å±ID 获å–诱导å±é…置信æ¯è¾“å…¥å‚æ•° public static class NET_IN_GET_GUIDESCREEN_CFG_BYID extends SdkStructure { public int dwSize; public byte[] szScreenID = new byte[MAX_COMMON_STRING_64]; // å±ID public NET_IN_GET_GUIDESCREEN_CFG_BYID() { this.dwSize = this.size(); } } // 通过诱导å±ID 获å–诱导å±é…置信æ¯è¾“出å‚æ•° public static class NET_OUT_GET_GUIDESCREEN_CFG_BYID extends SdkStructure { public int dwSize; public NET_GUIDESCREEN_ATTRIBUTE_INFO stuGuideScreenCfg; // 诱导å±å±žæ€§ä¿¡æ¯ public NET_OUT_GET_GUIDESCREEN_CFG_BYID() { this.dwSize = this.size(); } } // 获å–所有诱导å±é…置信æ¯è¾“å…¥å‚æ•° public static class NET_IN_GET_ALL_GUIDESCREEN_CFG extends SdkStructure { public int dwSize; public NET_IN_GET_ALL_GUIDESCREEN_CFG() { this.dwSize = this.size(); } } // 获å–所有诱导å±é…置信æ¯è¾“出å‚æ•° public static class NET_OUT_GET_ALL_GUIDESCREEN_CFG extends SdkStructure { public int dwSize; public int nMaxScreen; // 最大诱导å±ä¸ªæ•°, 值由用户指定 public int nRetScreen; // 实际返回的诱导å±ä¸ªæ•° public Pointer pstGuideScreenCfg; // 用于å˜æ”¾èŽ·å–到的诱导å±å±žæ€§ä¿¡æ¯, 内å˜ç”±ç”¨æˆ·ç»´æŠ¤ // 大å°ä¸ºnMaxScreen 个 NET_GUIDESCREEN_ATTRIBUTE_INFO // 对应 NET_GUIDESCREEN_ATTRIBUTE_INFO[] public NET_OUT_GET_ALL_GUIDESCREEN_CFG() { this.dwSize = this.size(); } } // 通过节目ID 获å–节目信æ¯è¾“å…¥å‚æ•° public static class NET_IN_GET_PROGRAMME_BYID extends SdkStructure { public int dwSize; public byte[] szProgrammeID = new byte[MAX_COMMON_STRING_64]; // 节目ID public NET_IN_GET_PROGRAMME_BYID() { this.dwSize = this.size(); } } // 通过节目ID 获å–节目信æ¯è¾“出å‚æ•° public static class NET_OUT_GET_PROGRAMME_BYID extends SdkStructure { public int dwSize; public NET_PROGRAMME_INFO stuProgrammeInfo; // 节目é…ç½®ä¿¡æ¯ public NET_OUT_GET_PROGRAMME_BYID() { this.dwSize = this.size(); } } // 获å–所有节目信æ¯è¾“å…¥å‚æ•° public static class NET_IN_GET_ALL_PROGRAMMES extends SdkStructure { public int dwSize; public NET_IN_GET_ALL_PROGRAMMES() { this.dwSize = this.size(); } } // 获å–所有节目信æ¯è¾“出å‚æ•° public static class NET_OUT_GET_ALL_PROGRAMMES extends SdkStructure { public int dwSize; public int nMaxCnt; // pstProgrammeInfo最大NET_PROGRAMME_INFO 个数 public int nRetCnt; // pstProgrammeInfo实际返回的 NET_PROGRAMME_INFO 个数 public Pointer pstProgrammeInfo; // 节目é…置信æ¯, 内å˜ç”±ç”¨æˆ·ç»´æŠ¤,对应 NET_PROGRAMME_INFO[] // 大å°ä¸º nMaxCnt 个 NET_PROGRAMME_INFO public NET_OUT_GET_ALL_PROGRAMMES() { this.dwSize = this.size(); } } // 获å–所有节目的简è¦ä¿¡æ¯è¾“å…¥å‚æ•° public static class NET_IN_GET_ALL_BRIEFLYPROGRAMMES extends SdkStructure { public int dwSize; public NET_IN_GET_ALL_BRIEFLYPROGRAMMES() { this.dwSize = this.size(); } } // 获å–所有节目的简è¦ä¿¡æ¯è¾“出å‚æ•° public static class NET_OUT_GET_ALL_BRIEFLYPROGRAMMES extends SdkStructure { public int dwSize; public int nRetCnt; // 实际返回的个数 public NET_BRIEFLY_PROGRAMME_INFO[] stuBriProgrammes = (NET_BRIEFLY_PROGRAMME_INFO[])new NET_BRIEFLY_PROGRAMME_INFO().toArray(MAX_PROGRAMMES_COUNT); // 节目简è¦ä¿¡æ¯ public NET_OUT_GET_ALL_BRIEFLYPROGRAMMES() { this.dwSize = this.size(); } } // 节目简è¦ä¿¡æ¯ public static class NET_BRIEFLY_PROGRAMME_INFO extends SdkStructure { public byte[] szProgrammeName = new byte[MAX_COMMON_STRING_64]; // 节目å称 public byte[] szProgrammeID = new byte[MAX_COMMON_STRING_64]; // 节目ID public int emProgrammeType; // 简è¦èŠ‚目信æ¯ç±»åž‹,对应枚举 EM_BRIEFLYPROGRAM_TYPE public int bEnable; // 节目是å¦å¯ç”¨, BOOL类型 public int bTempletState; // 节目是å¦ä¿å˜ä¸ºæ¨¡æ¿, BOOL类型 public byte[] byReserved = new byte[512]; // ä¿ç•™å—节 } // 简è¦èŠ‚目信æ¯ç±»åž‹ public static class EM_BRIEFLYPROGRAM_TYPE extends SdkStructure { public static final int EM_BRIEFLYPROGRAM_UNKNOWN = 0; // 未知 public static final int EM_BRIEFLYPROGRAM_BAR = 1; // 广告节目 public static final int EM_BRIEFLYPROGRAM_ORDINARY = 2; // 普通节目 } // 获å–所有节目计划输入å‚æ•° public static class NET_IN_GET_ALL_PROGRAMMEPLANS extends SdkStructure { public int dwSize; public NET_IN_GET_ALL_PROGRAMMEPLANS() { this.dwSize = this.size(); } } // 获å–所有节目计划输出å‚æ•° public static class NET_OUT_GET_ALL_PROGRAMMEPLANS extends SdkStructure { public int dwSize; public int nMaxPlanCnt; // å³æ—¶èŠ‚目和定时节目计划最大个数, 由用户指定 public int nRetImmCnt; // 实际返回的å³æ—¶èŠ‚目计划个数 public Pointer pstImmePlan; // å³æ—¶èŠ‚目计划信æ¯, 对应 NET_IMMEDIATELY_PLAN_INFO[], // å¤§å° nMaxPlanCnt 个 NET_IMMEDIATELY_PLAN_INFO public int nRetTimerCnt; // 实际返回的定时节目计划个数 public Pointer pstTimerPlan; // 定时节目计划信æ¯,对应 NET_TIMER_PLAN_INFO[], // å¤§å° nMaxPlanCnt 个 NET_TIMER_PLAN_INFO public NET_OUT_GET_ALL_PROGRAMMEPLANS() { this.dwSize = this.size(); } } // å³æ—¶è®¡åˆ’与定时计划信æ¯æ•°ç»„ public static class NET_PROGRAMME_PLANS_INFO extends SdkStructure { public NET_IMMEDIATELY_PLAN_INFO[] szImmePlan; // å³æ—¶èŠ‚目计划信æ¯æ•°ç»„ public NET_TIMER_PLAN_INFO[] szTimerPlan; // 定时节目计划信æ¯æ•°ç»„ public NET_PROGRAMME_PLANS_INFO() {} public NET_PROGRAMME_PLANS_INFO(int maxPlanCount) { szImmePlan = new NET_IMMEDIATELY_PLAN_INFO[maxPlanCount]; szTimerPlan = new NET_TIMER_PLAN_INFO[maxPlanCount]; for(int i = 0; i < maxPlanCount; i++) { szImmePlan[i] = new NET_IMMEDIATELY_PLAN_INFO(); szTimerPlan[i] = new NET_TIMER_PLAN_INFO(); } } } // 通过节目计划ID 获å–节目计划输入å‚æ•° public static class NET_IN_GET_PROGRAMMEPLAN_BYID extends SdkStructure { public int dwSize; public byte[] szPlanID = new byte[MAX_COMMON_STRING_64]; // 节目计划ID public NET_IN_GET_PROGRAMMEPLAN_BYID() { this.dwSize = this.size(); } } // 通过节目计划ID 获å–节目计划输出å‚æ•° public static class NET_OUT_GET_PROGRAMMEPLAN_BYID extends SdkStructure { public int dwSize; public int emPlanType; // 节目计划类型, 对应 EM_PROGRAMMEPLAN_TYPE public NET_IMMEDIATELY_PLAN_INFO stuImmePlan; // å³æ—¶èŠ‚目计划信æ¯, emPlanType 为 EM_PROGRAMMEPLAN_IMME 时有效 public NET_TIMER_PLAN_INFO stuTimerPlan; // 定时节目计划信æ¯, emPlanType 为 EM_PROGRAMMEPLAN_TIMER 时有效 public NET_OUT_GET_PROGRAMMEPLAN_BYID() { this.dwSize = this.size(); } } // 节目计划类型 public static class EM_PROGRAMMEPLAN_TYPE extends SdkStructure { public static final int EM_PROGRAMMEPLAN_UNKNOWN = 0; // 未知 public static final int EM_PROGRAMMEPLAN_IMME = 1; // å³æ—¶è®¡åˆ’ public static final int EM_PROGRAMMEPLAN_TIMER = 2; // 定时计划 } //设置光带状æ€ä¿¡æ¯è¾“å…¥å‚æ•° public static class NET_IN_SET_GD_STATUS extends SdkStructure { public int dwSize; public byte[] szScreenID = new byte[MAX_COMMON_STRING_64]; // 分å±ID, å³çª—å£ID public int nGDNum; // 光带总数 public int[] emStatus = new int[MAX_GD_COUNT]; // 光带信æ¯, 对应 EM_GD_COLOR_TYPE public NET_IN_SET_GD_STATUS() { this.dwSize = this.size(); } } //设置光带状æ€ä¿¡æ¯è¾“出å‚æ•° public static class NET_OUT_SET_GD_STATUS extends SdkStructure { public int dwSize; public NET_OUT_SET_GD_STATUS() { this.dwSize = this.size(); } } // 光带颜色类型 public static class EM_GD_COLOR_TYPE extends SdkStructure { public static final int EM_GD_COLOR_RED = 0; // 红色 public static final int EM_GD_COLOR_GREEN = 1; // 绿色 public static final int EM_GD_COLOR_YELLOW = 2; // 黄色 } // 用户信æ¯è¡¨ public static class USER_MANAGE_INFO_EX extends SdkStructure { public int dwRightNum; // æƒé™ä¿¡æ¯ public OPR_RIGHT_EX[] rightList = (OPR_RIGHT_EX[])new OPR_RIGHT_EX().toArray(NET_MAX_RIGHT_NUM); public int dwGroupNum; // ç”¨æˆ·ç»„ä¿¡æ¯ public USER_GROUP_INFO_EX[] groupList = (USER_GROUP_INFO_EX[])new USER_GROUP_INFO_EX().toArray(NET_MAX_GROUP_NUM); public int dwUserNum; // ç”¨æˆ·ä¿¡æ¯ public USER_INFO_EX[] userList = (USER_INFO_EX[])new USER_INFO_EX().toArray(NET_MAX_USER_NUM); public int dwFouctionMask; // 掩ç ï¼›0x00000001 - 支æŒç”¨æˆ·å¤ç”¨,0x00000002 - 密ç 修改需è¦æ ¡éªŒ public byte byNameMaxLength; // 支æŒçš„用户å最大长度 public byte byPSWMaxLength; // 支æŒçš„密ç 最大长度 public byte[] byReserve = new byte[254]; } // æƒé™ä¿¡æ¯ public static class OPR_RIGHT_EX extends SdkStructure { public int dwID; public byte[] name = new byte[NET_RIGHT_NAME_LENGTH]; public byte[] memo = new byte[NET_MEMO_LENGTH]; } // ç”¨æˆ·ç»„ä¿¡æ¯ public static class USER_GROUP_INFO_EX extends SdkStructure { public int dwID; public byte[] name = new byte[NET_USER_NAME_LENGTH_EX]; public int dwRightNum; public int[] rights = new int[NET_MAX_RIGHT_NUM]; public byte[] memo = new byte[NET_MEMO_LENGTH]; } // ç”¨æˆ·ä¿¡æ¯ public static class USER_INFO_EX extends SdkStructure { public int dwID; public int dwGroupID; public byte[] name = new byte[NET_USER_NAME_LENGTH_EX]; public byte[] passWord = new byte[NET_USER_PSW_LENGTH_EX]; public int dwRightNum; public int[] rights = new int[NET_MAX_RIGHT_NUM]; public byte[] memo = new byte[NET_MEMO_LENGTH]; public int dwFouctionMask; // 掩ç ,0x00000001 - 支æŒç”¨æˆ·å¤ç”¨ public byte[] byReserve = new byte[32]; } // CLIENT_DownloadRemoteFile 接å£è¾“å…¥å‚æ•°(文件下载) public static class NET_IN_DOWNLOAD_REMOTE_FILE extends SdkStructure { public int dwSize; public Pointer pszFileName; // 需è¦ä¸‹è½½çš„文件å public Pointer pszFileDst; // å˜æ”¾æ–‡ä»¶è·¯å¾„ public NET_IN_DOWNLOAD_REMOTE_FILE() { this.dwSize = this.size(); } } // CLIENT_DownloadRemoteFile 接å£è¾“出å‚æ•°(文件下载) public static class NET_OUT_DOWNLOAD_REMOTE_FILE extends SdkStructure { public int dwSize; public int dwMaxFileBufLen; // 文件缓å˜åŒºpstFileBuf的大å°, 由用户指定 public Pointer pstFileBuf; // 文件缓å˜åŒº, 由用户申请和释放 public int dwRetFileBufLen; // 缓å˜åŒºä¸è¿”回的实际文件数æ®å¤§å° public byte[] byReserved=new byte[4]; // å—èŠ‚å¯¹é½ public NET_OUT_DOWNLOAD_REMOTE_FILE() { this.dwSize = this.size(); } } // 车牌对比, 对应事件 EVENT_IVS_VEHICLE_RECOGNITION public static class DEV_EVENT_VEHICLE_RECOGNITION_INFO extends SdkStructure { public byte[] szName = new byte[128]; // 事件å称 public double PTS; // 时间戳(å•ä½æ˜¯æ¯«ç§’) public NET_TIME_EX UTC; // 事件å‘生的时间 public int nEventID; // 事件ID public int nVehicleAction; // 车辆动作 0-未知,1-在检测区域内,2-离开检测区域 public NET_MSG_OBJECT stuObject; // 检测到的物体 public NET_MSG_OBJECT stuVehicle; // è½¦èº«ä¿¡æ¯ public NET_SEAT_INFO stuMainSeatInfo; // 主驾驶ä½ä¿¡æ¯ public NET_SEAT_INFO stuSlaveSeatInfo; // 副驾驶ä½ä¿¡æ¯ public int nVehicleAttachNum; // è½¦ä¸Šé™„ä»¶æ•°é‡ public NET_VEHICLE_ATTACH[] stuVehicleAttach = (NET_VEHICLE_ATTACH[])new NET_VEHICLE_ATTACH().toArray(8); // è½¦ä¸Šé™„ä»¶æ•°æ® public byte[] szCountry = new byte[32]; // 国家,2å—节,符åˆISO3166规范 public int nCarCandidateNum; // å€™é€‰è½¦è¾†æ•°é‡ public NET_CAR_CANDIDATE_INFO[] stuCarCandidate = (NET_CAR_CANDIDATE_INFO[])new NET_CAR_CANDIDATE_INFO().toArray(MAX_CAR_CANDIDATE_NUM); // å€™é€‰è½¦è¾†æ•°æ® public EVENT_COMM_INFO stCommInfo; // å…¬å…±ä¿¡æ¯ public int nChannel; // 通é“å· public byte[] bReserved = new byte[1024]; } // 事件类型EVENT_IVS_ELEVATOR_ABNORMAL(电动扶梯è¿è¡Œå¼‚常事件)对应的数æ®å—æè¿°ä¿¡æ¯ public static class DEV_EVENT_ELEVATOR_ABNORMAL_INFO extends SdkStructure { public int nChannelID; // 通é“å· public int nEventID; // 事件ID public byte[] szName = new byte[SDK_EVENT_NAME_LEN]; // 事件å称 public double dbPTS; // 时间戳(å•ä½æ˜¯æ¯«ç§’) public NET_TIME_EX UTC; // 事件å‘生的时间 public int nAction; // 1:开始 2:åœæ¢ public int emClassType; // 智能事件所属大类,å‚考EM_CLASS_TYPE public int nDetectRegionPointNum; // 扶梯检测区顶点数 public NET_POINT[] stuDetectRegion = new NET_POINT[20]; // 扶梯检测区多边形类型,多边形ä¸æ¯ä¸ªé¡¶ç‚¹çš„åæ ‡å½’ä¸€åŒ–åˆ°[0,8191]区间。 public NET_POINT[] stuDirection = new NET_POINT[2]; // 扶梯的è¿åŠ¨æ–¹å‘,第一个点是起点,第二个点是终点。åæ ‡å½’ä¸€åŒ–åˆ°[0,8191]区间。 public Pointer pstuImageInfo; // 图片信æ¯æ•°ç»„,指针对应NET_IMAGE_INFO_EX2结构体数组 public int nImageInfoNum; // 图片信æ¯ä¸ªæ•° public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();// 事件公共扩展å—段结构体 public byte[] byReserved1 = new byte[908]; // ä¿ç•™å—节 public DEV_EVENT_ELEVATOR_ABNORMAL_INFO() { for(int i=0;i<stuDetectRegion.length;i++){ stuDetectRegion[i]=new NET_POINT(); } for(int i=0;i<stuDirection.length;i++){ stuDirection[i]=new NET_POINT(); } } } public static class NET_CAR_CANDIDATE_INFO extends SdkStructure { public NET_VEHICLE_INFO stuVehicleInfo=new NET_VEHICLE_INFO(); // è½¦è¾†ä¿¡æ¯ public int nDifferentAttributresNum; // 和数æ®åº“ä¸ç›¸ç¬¦çš„属性数目 public int[] nDifferentAttributres = new int[16]; // 和数æ®åº“ä¸ç›¸ç¬¦çš„属性集åˆ,å…ƒç´ å€¼å–值æ„义:0-未知 1-车牌属地 2-è½¦æ ‡ 3-车型 4-车色 5-车牌颜色 public byte[] bReserved = new byte[512]; } public static class NET_VEHICLE_INFO extends SdkStructure { public int nUID; // è½¦è¾†å”¯ä¸€æ ‡è¯†ç¬¦,ç”±æœåŠ¡ç«¯ç”Ÿæˆç”¨äºŽç¨‹åºä¸è¡¨ç¤ºæƒŸä¸€ public byte[] szGroupID = new byte[64]; // 车辆所属组ID public byte[] szGroupName = new byte[128]; // 车辆所属组å public byte[] szPlateNumber = new byte[64]; // 车牌å·ç public byte[] szPlateCountry = new byte[4]; // 车辆所在国家,2å—节,符åˆISO3166规范 public int nPlateType; // 车牌类型 // 01 大型汽车å·ç‰Œ é»„åº•é»‘å— // 02 å°åž‹æ±½è½¦å·ç‰Œ è“åº•ç™½å— // 03 使馆汽车å·ç‰Œ 黑底白å—ã€çº¢â€œä½¿â€å— // 04 领馆汽车å·ç‰Œ 黑底白å—ã€çº¢â€œé¢†â€å— // 05 境外汽车å·ç‰Œ 黑底白ã€çº¢å— // 06 外ç±æ±½è½¦å·ç‰Œ é»‘åº•ç™½å— // 13 农用è¿è¾“车å·ç‰Œ 黄底黑å—黑框线 // 15 挂车å·ç‰Œ 黄底黑å—黑框线 // 16 教练汽车å·ç‰Œ 黄底黑å—黑框线 // 18 试验汽车å·ç‰Œ // 20 临时入境汽车å·ç‰Œ 白底红å—黑“临时入境†// 22 临时行驶车å·ç‰Œ 白底黑å—黑线框 // 23 公安è¦ç”¨æ±½è½¦å·ç‰Œ public int nVehicleType; // 车型(轿车ã€å¡è½¦ç‰) // 001 巡逻车 // 002 交è¦è½¦è¾† // 003 消防车 // 004 å•å…µ // 005 其他è¦è½¦ // 006 其他设备 // 020 政府车辆 // 031 æ ¡è½¦ // 032 è¿é’žè½¦ // 033 客è¿è½¦è¾† // 034 公交车 // 035 出租车 // 036 å±é™©å“车辆 public int nBrand; // è½¦è¾†è½¦æ ‡,需è¦é€šè¿‡æ˜ 射表得到真æ£çš„è½¦æ ‡.åŒå¡å£äº‹ä»¶çš„CarLogoIndex public int nCarSeries; // 车辆åå“牌,需è¦é€šè¿‡æ˜ 射表得到真æ£çš„åå“牌,åŒå¡å£äº‹ä»¶çš„SubBrand public int nCarSeriesModelYearIndex; // 车辆å“牌年款,需è¦é€šè¿‡æ˜ 射表得到真æ£çš„年款,åŒå¡å£äº‹ä»¶çš„BrandYear 车头年款åºå·èŒƒå›´1~999;车尾年款åºå·èŒƒå›´1001~1999ï¼›0表示未知;1000预留。 public NET_COLOR_RGBA stuVehicleColor=new NET_COLOR_RGBA(); // 车色 ç¬¬ä¸€ä¸ªå…ƒç´ è¡¨ç¤ºçº¢è‰²åˆ†é‡å€¼ï¼› ç¬¬äºŒä¸ªå…ƒç´ è¡¨ç¤ºç»¿è‰²åˆ†é‡å€¼ï¼› ç¬¬ä¸‰ä¸ªå…ƒç´ è¡¨ç¤ºè“色分é‡å€¼ï¼› ç¬¬å››ä¸ªå…ƒç´ è¡¨ç¤ºé€æ˜Žåº¦åˆ†é‡(æ— æ„义) public NET_COLOR_RGBA stuPlateColor=new NET_COLOR_RGBA(); // 车牌颜色,规则åŒè½¦è‰² public byte[] szOwnerName = new byte[64]; // 车主å称 public int nSex; // 车主性别 public int nCertificateType; // 车主è¯ä»¶ç±»åž‹ 0-未知 1-è¯ä»¶ 2-护照 3-å†›å®˜è¯ public byte[] szPersonID = new byte[32]; // 人员è¯ä»¶å·ç ,å·¥å·,æˆ–å…¶ä»–ç¼–å· public byte[] szOwnerCountry = new byte[4]; // 车主国ç±,2å—节,符åˆISO3166规范 public byte[] szProvince = new byte[64]; // çœä»½ public byte[] szCity = new byte[64]; // 城市 public byte[] szHomeAddress = new byte[128]; // 注册人员家åºåœ°å€(IVSS需求) public byte[] szEmail = new byte[32]; // 车主电å邮箱 public byte[] szPhoneNo = new byte[128]; // 注册车主电è¯å·ç public int nVehicleColorState; //车色状æ€:0-未知,1-已知 public int nPlateColorState; //车牌颜色状æ€:0-未知,1-已知 public byte[] bReserved = new byte[504]; @Override public String toString() { return "NET_VEHICLE_INFO{" + "nUID=" + nUID + ", szGroupID=" + new String(szGroupID) + ", szGroupName=" + new String(szGroupName) + ", szPlateCountry=" + new String(szPlateCountry) + ", nPlateType=" + nPlateType + ", nVehicleType=" + nVehicleType + ", nBrand=" + nBrand + ", nCarSeries=" + nCarSeries + ", nCarSeriesModelYearIndex=" + nCarSeriesModelYearIndex + ", stuVehicleColor=" + stuVehicleColor + ", stuPlateColor=" + stuPlateColor + ", szOwnerName=" + new String(szOwnerName) + ", nSex=" + nSex + ", nCertificateType=" + nCertificateType + ", szPersonID=" + new String(szPersonID) + ", szOwnerCountry=" + new String(szOwnerCountry) + ", szProvince=" + new String(szProvince) + ", szCity=" + new String(szCity) + ", szHomeAddress=" + new String(szHomeAddress) + ", szEmail=" + new String(szEmail) + ", szPhoneNo=" + new String(szPhoneNo) + ", nVehicleColorState=" + nVehicleColorState + ", nPlateColorState=" + nPlateColorState + ", bReserved=" + new String(bReserved) + '}'; } } //获å–æ’放盒上全部节目信æ¯æŽ¥å£è¾“å…¥å‚æ•° public static class NET_IN_GET_ALL_PLAYBOX_PROGRAM extends SdkStructure { public int dwSize; public NET_IN_GET_ALL_PLAYBOX_PROGRAM() { this.dwSize = this.size(); } } //获å–æ’放盒上全部节目信æ¯æŽ¥å£è¾“出å‚æ•° public static class NET_OUT_GET_ALL_PLAYBOX_PROGRAM extends SdkStructure { public int dwSize; public int nMaxProgramCount; // 节目信æ¯æœ€å¤§ä¸ªæ•°ï¼Œç”±ç”¨æˆ·æŒ‡å®š public int nRetProgramCount; // 实际返回的节目信æ¯ä¸ªæ•° public Pointer pstProgramInfo; // æ’放盒上的节目信æ¯, 内å˜èµ„æºç”±ç”¨æˆ·ç»´æŠ¤,对应 NET_PROGRAM_ON_PLAYBOX[] public NET_OUT_GET_ALL_PLAYBOX_PROGRAM() { this.dwSize = this.size(); } } // æ’æ”¾ç›’èŠ‚ç›®ä¿¡æ¯ public static class NET_PROGRAM_ON_PLAYBOX extends SdkStructure { public byte[] szProgrammeName = new byte[MAX_COMMON_STRING_64]; // 节目å称 public byte[] szProgrammeID = new byte[MAX_COMMON_STRING_64]; // 节目ID, æ·»åŠ èŠ‚ç›®æ—¶ä¸éœ€è¦æŒ‡å®š public int bEnable; // 节目是å¦å¯ç”¨ public int emProgramType; // 节目类型, å‚考 EM_PLAYBOXPROGRAM_TYPE public NET_PROGRAM_LOGO_INFO stuLogoInfo; // LOGO节目信æ¯, emProgramType为EM_PROGRAM_ON_PLAYBOX_LOGO时有效 public NET_PROGRAM_BAR_INFO stuBarInfo; // 广告æ¡èŠ‚目信æ¯, emProgramType为EM_PROGRAM_ON_PLAYBOX_BAR时有效 public NET_PROGRAM_ORDINARY_INFO stuOrdinaryInfo = new NET_PROGRAM_ORDINARY_INFO(); // 普通节目信æ¯, emProgramType为EM_PROGRAM_ON_PLAYBOX_ORDINARY时有效, æ¤å‚数需è¦åœ¨åº“里new对象 public byte[] byReserved = new byte[512]; // ä¿ç•™å—节 } // æ’放盒节目类型 public static class EM_PLAYBOXPROGRAM_TYPE extends SdkStructure { public static final int EM_PROGRAM_ON_PLAYBOX_LOGO = 0; // LOGO, 对应结构体 NET_PROGRAM_LOGO_INFO public static final int EM_PROGRAM_ON_PLAYBOX_BAR = 1; // 广告æ¡, 对应结构体 NET_PROGRAM_BAR_INFO public static final int EM_PROGRAM_ON_PLAYBOX_ORDINARY = 2; // 普通节目, 对应结构体 NET_PROGRAM_ORDINARY_INFO } // LOGOèŠ‚ç›®ä¿¡æ¯ public static class NET_PROGRAM_LOGO_INFO extends SdkStructure { public byte[] szLogoPath = new byte[MAX_COMMON_STRING_128]; // Logo路径 public NET_RECT stuBackgroundRect; // Logoä½ç½® public int nDiaphaneity; // é€æ˜Žåº¦, 0-100 public byte[] byReserved = new byte[128]; // ä¿ç•™å—节 } // 广告æ¡èŠ‚ç›®ä¿¡æ¯ public static class NET_PROGRAM_BAR_INFO extends SdkStructure { public byte[] szContent = new byte[MAX_COMMON_STRING_512]; // 广告内容 public NET_COLOR_RGBA stuFontColor; // å—体颜色 public int nFontSize; // å—ä½“å¤§å° public byte[] szFontStyle = new byte[MAX_COMMON_STRING_32]; // å—体类型 public int nPlaySpeed; // æ’放速度 public NET_RECT stuBackgroundRect; // 广告æ¡ä½ç½® public NET_COLOR_RGBA stuBackColor; // 广告æ¡èƒŒæ™¯é¢œè‰² public int nDiaphaneity; // é€æ˜Žåº¦, 0-100 public byte[] byReserved = new byte[128]; // ä¿ç•™å—节 } // æ™®é€šå¹¿å‘ŠèŠ‚ç›®ä¿¡æ¯ public static class NET_PROGRAM_ORDINARY_INFO extends SdkStructure { public int bTempletState; // 节目是å¦ä¿å˜ä¸ºæ¨¡æ¿ public byte[] szDescription = new byte[MAX_COMMON_STRING_128]; // 节目æè¿°ä¿¡æ¯ public int nWidth; // 画布宽度 public int nHeight; // 画布高度 public int nWinCount; // 窗å£æ•°é‡ public NET_PLAYBOX_WINDOWS_INFO[] stuWindowsInfo = (NET_PLAYBOX_WINDOWS_INFO[])new NET_PLAYBOX_WINDOWS_INFO().toArray(MAX_WINDOWS_COUNT); // 窗å£ä¿¡æ¯ public byte[] byReserved = new byte[128]; // ä¿ç•™å—节 } // æ’放盒上窗å£ä¿¡æ¯ public static class NET_PLAYBOX_WINDOWS_INFO extends SdkStructure { public NET_RECT stuRect; // 窗å£ä½ç½® public int nZorder; // 窗å£Zè½´åº public int nVolume; // 窗å£éŸ³é‡ï¼Œç›¸å¯¹æ•´å±éŸ³é‡çš„百分比 public NET_COLOR_RGBA stuBackColor; // 窗å£èƒŒæ™¯é¢œè‰² public int nDiaphaneity; // 窗å£èƒŒæ™¯é€æ˜Žåº¦0-100 public int emTourPeriodType; // 窗å£è½®è®ç±»åž‹ EM_TOURPERIOD_TYPE public int nTourPeriodTime; // 自定义轮è®æ—¶é—´ï¼Œå•ä½ç§’, è½®è®ç±»åž‹ä¸ºè‡ªå®šä¹‰è½®è®æ—¶æœ‰æ•ˆ public int bAutoPlay; // 预览自动æ’放,Videoå…ƒç´ æœ‰æ•ˆ public int bLoopPlay; // 预览循环æ’放,Videoå…ƒç´ æœ‰æ•ˆ public int nElementsCount; // 诱导å±çª—å£å…ƒç´ 个数 public Pointer pstElementsBuf; // æ’放盒窗å£å…ƒç´ ä¿¡æ¯ç¼“å˜åŒº, æ ¹æ®ç±»åž‹å¯¹åº”ä¸åŒçš„结构体 // å¡«å……å¤šä¸ªå…ƒç´ ä¿¡æ¯, æ¯ä¸ªå…ƒç´ ä¿¡æ¯å†…容为 NET_ELEMENT_COMMON_INFO + å…ƒç´ ç±»åž‹å¯¹åº”çš„ç»“æž„ä½“ public int nBufLen; // 诱导å±çª—å£å…ƒç´ ä¿¡æ¯ç¼“å˜åŒºå¤§å° public byte[] byReserved = new byte[128]; // ä¿ç•™å—节 } // 通过programme ID 获å–æ’放盒上对应的节目信æ¯è¾“å…¥å‚æ•° public static class NET_IN_GET_PLAYBOX_PROGRAM_BYID extends SdkStructure { public int dwSize; public byte[] szProgrammeID = new byte[MAX_COMMON_STRING_64]; // 节目ID public NET_IN_GET_PLAYBOX_PROGRAM_BYID() { this.dwSize = this.size(); } } // 通过programme ID 获å–æ’放盒上对应的节目信æ¯è¾“出å‚æ•° public static class NET_OUT_GET_PLAYBOX_PROGRAM_BYID extends SdkStructure { public int dwSize; public NET_PROGRAM_ON_PLAYBOX stuPlayBoxProgram; // æ’æ”¾ç›’èŠ‚ç›®ä¿¡æ¯ public NET_OUT_GET_PLAYBOX_PROGRAM_BYID() { this.dwSize = this.size(); } } // 在æ’æ”¾ç›’ä¸Šæ·»åŠ ä¸€ä¸ªèŠ‚ç›®ä¿¡æ¯è¾“å…¥å‚æ•° public static class NET_IN_ADD_ONE_PLAYBOX_PRAGROM extends SdkStructure { public int dwSize; public NET_PROGRAM_ON_PLAYBOX stuPlayBoxProgram; // æ’æ”¾ç›’èŠ‚ç›®ä¿¡æ¯ public NET_IN_ADD_ONE_PLAYBOX_PRAGROM() { this.dwSize = this.size(); } } // 在æ’æ”¾ç›’ä¸Šæ·»åŠ ä¸€ä¸ªèŠ‚ç›®ä¿¡æ¯è¾“出å‚æ•° public static class NET_OUT_ADD_ONE_PLAYBOX_PRAGROM extends SdkStructure { public int dwSize; public byte[] szProgrammeID = new byte[MAX_COMMON_STRING_64]; // 节目ID public NET_OUT_ADD_ONE_PLAYBOX_PRAGROM() { this.dwSize = this.size(); } } // 在æ’放盒上修改指定ID的节目信æ¯è¾“å…¥å‚æ•° public static class NET_IN_MODIFY_PLAYBOX_PROGRAM_BYID extends SdkStructure { public int dwSize; public NET_PROGRAM_ON_PLAYBOX stuPlayBoxProgram; // æ’æ”¾ç›’èŠ‚ç›®ä¿¡æ¯ public NET_IN_MODIFY_PLAYBOX_PROGRAM_BYID() { this.dwSize = this.size(); } } // 在æ’放盒上修改指定ID的节目信æ¯è¾“出å‚æ•° public static class NET_OUT_MODIFY_PLAYBOX_PROGRAM_BYID extends SdkStructure { public int dwSize; public NET_OUT_MODIFY_PLAYBOX_PROGRAM_BYID() { this.dwSize = this.size(); } } // 云å°å®šä½ä¿¡æ¯æŠ¥è¦ public static class NET_PTZ_LOCATION_INFO extends SdkStructure { public int nChannelID; // 通é“å· public int nPTZPan; // 云å°æ°´å¹³è¿åŠ¨ä½ç½®,有效范围:[0,3600] public int nPTZTilt; // 云å°åž‚ç›´è¿åŠ¨ä½ç½®,有效范围:[-1800,1800] public int nPTZZoom; // 云å°å…‰åœˆå˜åŠ¨ä½ç½®,有效范围:[0,128] public byte bState; // 云å°è¿åŠ¨çŠ¶æ€, 0-未知 1-è¿åŠ¨ 2-空闲 public byte bAction; // 云å°åŠ¨ä½œ, // 255-未知,0-预置点,1-线扫,2-巡航,3-巡迹,4-水平旋转,5-普通移动,6-巡迹录制, // 7-全景云å°æ‰«æ,8-çƒåº¦å›¾,9-精确定ä½,10-è®¾å¤‡æ ¡æ£,11-智能é…置,12-云å°é‡å¯ public byte bFocusState; // 云å°èšç„¦çŠ¶æ€, 0-未知, 1-è¿åŠ¨çŠ¶æ€, 2-空闲 public byte bEffectiveInTimeSection; // 在时间段内预置点状æ€æ˜¯å¦æœ‰æ•ˆ // 如果当å‰ä¸ŠæŠ¥çš„预置点是时间段内的预置点,则为1,其他情况为0 public int nPtzActionID; // 巡航IDå· public int dwPresetID; // 云å°æ‰€åœ¨é¢„ç½®ç‚¹ç¼–å· public float fFocusPosition; // èšç„¦ä½ç½® public byte bZoomState; // 云å°ZOOM状æ€,0-未知,1-ZOOM,2-空闲 public byte[] bReserved = new byte[3]; // å¯¹é½ public int dwSequence; // 包åºå·,ç”¨äºŽæ ¡éªŒæ˜¯å¦ä¸¢åŒ… public int dwUTC; // 对应的UTC(1970-1-1 00:00:00)秒数。 public int emPresetStatus; // 预置点ä½ç½®,å‚考 EM_DH_PTZ_PRESET_STATUS public int nZoomValue; // 真实å˜å€å€¼ 当å‰å€çŽ‡ï¼ˆæ‰©å¤§100å€è¡¨ç¤ºï¼‰ public NET_PTZSPACE_UNNORMALIZED stuAbsPosition; // 云å°æ–¹å‘与放大å€æ•°ï¼ˆæ‰©å¤§100å€è¡¨ç¤ºï¼‰ // ç¬¬ä¸€ä¸ªå…ƒç´ ä¸ºæ°´å¹³è§’åº¦ï¼Œ0-36000ï¼› // ç¬¬äºŒä¸ªå…ƒç´ ä¸ºåž‚ç›´è§’åº¦ï¼Œï¼ˆ-18000)-(18000); // ç¬¬ä¸‰ä¸ªå…ƒç´ ä¸ºæ˜¾ç¤ºæ”¾å¤§å€æ•°ï¼Œ0-MaxZoom*100 public int nFocusMapValue; // èšç„¦æ˜ 射值 public int nZoomMapValue; // å˜å€æ˜ 射值 public int emPanTiltStatus; //云å°P/Tè¿åŠ¨çŠ¶æ€ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND();// 事件公共扩展å—段结构体 public byte[] reserved = new byte[696]; // ä¿ç•™å—段 } // 云å°å®šä½ä¸éžå½’一化åæ ‡å’Œå˜å€ public static class NET_PTZSPACE_UNNORMALIZED extends SdkStructure { public int nPosX; // xåæ ‡ public int nPosY; // yåæ ‡ public int nZoom; // 放大å€çŽ‡ public byte[] byReserved = new byte[52]; // 预留å—节 } // 预置点状æ€æžšä¸¾ public static class EM_DH_PTZ_PRESET_STATUS extends SdkStructure { public static final int EM_DH_PTZ_PRESET_STATUS_UNKNOWN = 0; // 未知 public static final int EM_DH_PTZ_PRESET_STATUS_REACH = 1; // 预置点到达 public static final int EM_DH_PTZ_PRESET_STATUS_UNREACH = 2; // 预置点未到达 } //通用æ›å…‰å±žæ€§é…ç½® public static class NET_VIDEOIN_EXPOSURE_NORMAL_INFO extends SdkStructure { public int dwSize; public int emCfgType; // é…置类型,获å–和设置时都è¦æŒ‡å®š,对应枚举 NET_EM_CONFIG_TYPE public int emExposureMode; // æ›å…‰æ¨¡å¼, 对应枚举 NET_EM_EXPOSURE_MODE public int nAntiFlicker; // 防闪çƒ0-Outdoor 1-50Hzé˜²é—ªçƒ 2-60Hzé˜²é—ªçƒ public int nCompensation; // æ›å…‰è¡¥å¿0-100 public int nGain; // 增益值 public int nGainMin; // 增益下é™0-100 public int nGainMax; // 增益上é™0-100 public int nExposureIris; // 光圈值,模å¼ä¸ºå…‰åœˆä¼˜å…ˆæ—¶æœ‰æ•ˆï¼Œ0-100 public double dbExposureValue1; // 自动æ›å…‰æ—¶é—´ä¸‹é™æˆ–者手动æ›å…‰è‡ªå®šä¹‰æ—¶é—´,毫秒为å•ä½ï¼Œå–值0.1ms~80ms public double dbExposureValue2; // 自动æ›å…‰æ—¶é—´ä¸Šé™,毫秒为å•ä½ï¼Œå–值0.1ms~80ms,且必须ä¸å°äºŽ"ExposureValue1"å–值 public Boolean bIrisAuto; // 自动光圈使能 public int emDoubleExposure; // åŒå¿«é—¨çš„支æŒç±»åž‹ public NET_VIDEOIN_EXPOSURE_NORMAL_INFO() { this.dwSize = this.size(); } } // æ¯ä¸ªé€šé“对应的é…置类型 public static class NET_EM_CONFIG_TYPE extends SdkStructure { public static final int NET_EM_CONFIG_DAYTIME = 0; // 白天 public static final int NET_EM_CONFIG_NIGHT = 1; // 夜晚 public static final int NET_EM_CONFIG_NORMAL = 2; // 普通 } // é€é›¾æ¨¡å¼ public static class NET_EM_DEFOG_MODE extends SdkStructure { public static final int NET_EM_DEFOG_UNKNOW = 0; // æœªçŸ¥æ¨¡å¼ public static final int NET_EM_DEFOG_OFF = 1; // å…³é— public static final int NET_EM_DEFOG_AUTO = 2; // 自动 public static final int NET_EM_DEFOG_MANAUL = 3; // 手动 } // 大气光模å¼æžšä¸¾ public static class NET_EM_INTENSITY_MODE extends SdkStructure { public static final int NET_EM_INTENSITY_MODE_UNKNOW = 0; // æœªçŸ¥æ–¹å¼ public static final int NET_EM_INTENSITY_MODE_AUTO = 1; // 自动 public static final int NET_EM_INTENSITY_MODE_MANUAL = 2; // 手动 } // æ›å…‰æ¨¡å¼ public static class NET_EM_EXPOSURE_MODE extends SdkStructure { public static final int NET_EM_EXPOSURE_AUTO = 0; // 默认自动 public static final int NET_EM_EXPOSURE_LOWNICE = 1; // 低噪声 public static final int NET_EM_EXPOSURE_ANTISHADOW = 2; // 防拖影 public static final int NET_EM_EXPOSURE_MANUALRANGE = 4; // 手动区间 public static final int NET_EM_EXPOSURE_APERTUREFIRST = 5; // 光圈优先 public static final int NET_EM_EXPOSURE_MANUALFIXATION = 6; // 手动固定 public static final int NET_EM_EXPOSURE_GIANFIRST = 7; // 增益优先 public static final int NET_EM_EXPOSURE_SHUTTERFIRST = 8; // 快门优先 public static final int NET_EM_EXPOSURE_FLASHMATCH = 9; // 闪光ç¯åŒ¹é…æ¨¡å¼ } // èƒŒå…‰æ¨¡å¼ public static class NET_EM_BACK_MODE extends SdkStructure { public static final int NET_EM_BACKLIGHT_MODE_UNKNOW = 0; // æœªçŸ¥æ¨¡å¼ public static final int NET_EM_BACKLIGHT_MODE_OFF = 1; // å…³é— public static final int NET_EM_BACKLIGHT_MODE_BACKLIGHT = 2; // èƒŒå…‰è¡¥å¿ public static final int NET_EM_BACKLIGHT_MODE_WIDEDYNAMIC = 3; // å®½åŠ¨æ€ public static final int NET_EM_BACKLIGHT_MODE_GLAREINHIBITION = 4; // 强光抑制 public static final int NET_EM_BACKLIGHT_MODE_SSA = 5; // 场景自适应 } // 背光补å¿æ¨¡å¼ public static class NET_EM_BLACKLIGHT_MODE extends SdkStructure { public static final int NET_EM_BLACKLIGHT_UNKNOW = 0; // æœªçŸ¥æ¨¡å¼ public static final int NET_EM_BLACKLIGHT_DEFAULT = 1; // é»˜è®¤æ¨¡å¼ public static final int NET_EM_BLACKLIGHT_REGION = 2; // è‡ªå®šä¹‰åŒºåŸŸæ¨¡å¼ } // 背光é…ç½® public static class NET_VIDEOIN_BACKLIGHT_INFO extends SdkStructure { public int dwSize; public int emCfgType; // é…置类型,获å–和设置时都è¦æŒ‡å®š, 对应枚举 NET_EM_CONFIG_TYPE public int emBlackMode; // 背光模å¼, 对应枚举 NET_EM_BACK_MODE public int emBlackLightMode; // 背光补å¿æ¨¡å¼, 对应枚举 NET_EM_BLACKLIGHT_MODE public NET_RECT stuBacklightRegion; // 背光补å¿åŒºåŸŸ public int nWideDynamicRange; // 宽动æ€å€¼ï¼ŒemBlackMode为NET_EM_BACKLIGHT_MODE_WIDEDYNAMIC时生效 public int nGlareInhibition; // 强光抑制0-100,emBlackMode为NET_EM_BACKLIGHT_MODE_GLAREINHIBITION时生效 public NET_VIDEOIN_BACKLIGHT_INFO() { this.dwSize = this.size(); } } // èšç„¦æ¨¡å¼é…ç½® public static class NET_VIDEOIN_FOCUSMODE_INFO extends SdkStructure { public int dwSize; public int emCfgType; // é…置类型,获å–和设置时都è¦æŒ‡å®š,对应枚举 NET_EM_CONFIG_TYPE public int emFocusMode; // èšç„¦æ¨¡å¼, 对应枚举 NET_EM_FOCUS_MODE public NET_VIDEOIN_FOCUSMODE_INFO() { this.dwSize = this.size(); } } // èšç„¦æ¨¡å¼ public static class NET_EM_FOCUS_MODE extends SdkStructure { public static final int NET_EM_FOCUS_OFF = 0; // å…³é— public static final int NET_EM_FOCUS_ASSIST = 1; // 辅助èšç„¦ public static final int NET_EM_FOCUS_AUTO = 2; // 自动èšç„¦ public static final int NET_EM_FOCUS_SEMI_AUTO = 3; // åŠè‡ªåŠ¨èšç„¦ public static final int NET_EM_FOCUS_MANUAL = 4; // 手动èšç„¦ } // 图åƒå±žæ€§é…ç½® public static class NET_VIDEOIN_IMAGE_INFO extends SdkStructure { public int dwSize; public int emCfgType; // é…置类型,获å–和设置时都è¦åˆ¶å®š,对应枚举 NET_EM_CONFIG_TYPE public int bMirror; // 是å¦å¼€å¯ç”»é¢é•œåƒåŠŸèƒ½ public int bFlip; // 是å¦å¼€å¯ç”»é¢ç¿»è½¬åŠŸèƒ½ public int nRotate90; // 0-ä¸æ—‹è½¬ï¼Œ1-顺时针90°,2-逆时针90° public NET_VIDEOIN_IMAGE_INFO() { this.dwSize = this.size(); } } // 网络åè®®é…ç½® public static class CFG_DVRIP_INFO extends SdkStructure { public int nTcpPort; // TCPæœåŠ¡ç«¯å£,1025~65535 public int nSSLPort; // SSLæœåŠ¡ç«¯å£,1025~65535 public int nUDPPort; // UDPæœåŠ¡ç«¯å£,1025~65535 public int nMaxConnections; // 最大连接数 public int bMCASTEnable; // 组æ’使能 public int nMCASTPort; // 组æ’端å£å· public byte[] szMCASTAddress = new byte[MAX_ADDRESS_LEN]; // 组æ’åœ°å€ public int nRegistersNum; // 主动注册é…置个数 public CFG_REGISTER_SERVER_INFO[] stuRegisters = (CFG_REGISTER_SERVER_INFO[])new CFG_REGISTER_SERVER_INFO().toArray(MAX_REGISTER_NUM);// 主动注册é…ç½® public int emStreamPolicy; // 带宽ä¸è¶³æ—¶ç æµç–ç•¥,对应枚举 EM_STREAM_POLICY public CFG_REGISTERSERVER_VEHICLE stuRegisterServerVehicle; // 车载专用主动注册é…ç½® } // 带宽ä¸è¶³æ—¶ç æµç–ç•¥ public static class EM_STREAM_POLICY extends SdkStructure { public static final int STREAM_POLICY_UNKNOWN = 0; public static final int STREAM_POLICY_NONE = 1; // æ— ç–ç•¥,ä¸å¼€å¯ä½¿èƒ½"None" public static final int STREAM_POLICY_QUALITY = 2; // 画质优先"Quality" public static final int STREAM_POLICY_FLUENCY = 3; // æµç•…度优先"Fluency" public static final int STREAM_POLICY_AUTOADAPT = 4; // 自动"AutoAdapt" } // 主动注册é…ç½® public static class CFG_REGISTER_SERVER_INFO extends SdkStructure { public int bEnable; // 主动注册使能 public byte[] szDeviceID = new byte[MAX_ADDRESS_LEN]; // 设备ID public int nServersNum; // æœåŠ¡å™¨ä¸ªæ•° public CFG_SERVER_INFO[] stuServers = (CFG_SERVER_INFO[])new CFG_SERVER_INFO().toArray(MAX_SERVER_NUM); // æœåŠ¡å™¨æ•°ç»„ } // æœåŠ¡å™¨ public static class CFG_SERVER_INFO extends SdkStructure { public int nPort; // æœåŠ¡å™¨ç«¯å£å· public byte[] szAddress = new byte[MAX_ADDRESS_LEN]; // IP地å€æˆ–网络å } // 车载专用主动注册é…ç½® public static class CFG_REGISTERSERVER_VEHICLE extends SdkStructure { public int bEnable; // 主动注册使能 public int bRepeatEnable; // 是å¦å‘é€ç›¸åŒåæ ‡æ•°æ® public byte[] szDeviceID = new byte[MAX_ADDRESS_LEN]; // å设备ID public int nSendInterval; // å‘é€é—´éš”, å•ä½ï¼šç§’ public byte[] szAddress = new byte[MAX_ADDRESS_LEN]; // IP地å€æˆ–网络å public int nPort; // 端å£å· public int emSendPolicy; // ä¸Šä¼ ç–ç•¥,对应枚举 EM_CFG_SENDPOLICY public byte[] szTestAddress = new byte[MAX_ADDRESS_LEN]; // 测试IP地å€æˆ–网络å public int nTestPort; // 测试端å£å· public byte[] byReserved = new byte[1024]; // ä¿ç•™å—节 } // ä¸Šä¼ ç–ç•¥ public static class EM_CFG_SENDPOLICY extends SdkStructure { public static final int EM_SNEDPOLICY_UNKNOWN = -1; public static final int EM_SENDPOLICY_TIMING = 0; // 定时上报 public static final int EM_SENDPOLICY_EVENT = 1; // 事件触å‘上报 } // 网络接å£é…ç½® public static class CFG_NETWORK_INFO extends SdkStructure { /** 主机å称 */ public byte[] szHostName = new byte[128]; /** 所属域 */ public byte[] szDomain = new byte[128]; /** é»˜è®¤ä½¿ç”¨çš„ç½‘å¡ */ public byte[] szDefInterface = new byte[128]; /** 网å¡æ•°é‡ */ public int nInterfaceNum; /** 网å¡åˆ—表 */ public CFG_NETWORK_INTERFACE[] stuInterfaces = (CFG_NETWORK_INTERFACE[]) new CFG_NETWORK_INTERFACE() .toArray(32); /** 虚拟绑定网å£æ•°é‡ */ public int nBondInterfaceNum; /** 虚拟绑定网å£åˆ—表 */ public CFG_NETWORK_BOND_INTERFACE[] stuBondInterfaces = (CFG_NETWORK_BOND_INTERFACE[]) new CFG_NETWORK_BOND_INTERFACE() .toArray(32); /** ç½‘æ¡¥æ•°é‡ */ public int nBrInterfaceNum; /** 网桥列表 */ public CFG_NETWORK_BR_INTERFACE[] stuBrInterfaces = (CFG_NETWORK_BR_INTERFACE[]) new CFG_NETWORK_BR_INTERFACE() .toArray(32); } // ç½‘ç»œæŽ¥å£ public static class CFG_NETWORK_INTERFACE extends SdkStructure { public byte[] szName = new byte[MAX_NAME_LEN]; // 网络接å£å称 public byte[] szIP = new byte[MAX_ADDRESS_LEN]; // ipåœ°å€ public byte[] szSubnetMask = new byte[MAX_ADDRESS_LEN]; // å网掩ç public byte[] szDefGateway = new byte[MAX_ADDRESS_LEN]; // 默认网关 public int bDhcpEnable; // 是å¦å¼€å¯DHCP public int bDnsAutoGet; // DNS获å–æ–¹å¼ï¼Œdhcp使能时å¯ä»¥è®¾ç½®ä¸ºtrue,支æŒé€šè¿‡dhcpèŽ·å– public DNS_SERVERS[] szDnsServersArr = (DNS_SERVERS[])new DNS_SERVERS().toArray(MAX_DNS_SERVER_NUM); // DNSæœåŠ¡å™¨åœ°å€ public int nMTU; // ç½‘ç»œæœ€å¤§ä¼ è¾“å•å…ƒ public byte[] szMacAddress = new byte[MAX_ADDRESS_LEN]; // macåœ°å€ public int bInterfaceEnable; // 网络接å£ä½¿èƒ½å¼€å…³ï¼Œè¡¨ç¤ºè¯¥ç½‘å£é…置是å¦ç”Ÿæ•ˆã€‚ä¸ç”Ÿæ•ˆæ—¶ï¼ŒIP地å€ä¸è®¾ç½®åˆ°ç½‘å¡ä¸Šã€‚ public int bReservedIPEnable; // DHCP失败时是å¦ä½¿ç”¨ä¿ç•™IP,使用ä¿ç•™IP时还继ç»å‘DHCP请求 public int emNetTranmissionMode; // ç½‘ç»œä¼ è¾“æ¨¡å¼ï¼Œé»˜è®¤adapt自适应模å¼, 对应枚举 CFG_ENUM_NET_TRANSMISSION_MODE public int emInterfaceType; // 网å£ç±»åž‹, 对应枚举 CFG_ENUM_NET_INTERFACE_TYPE public int bBond; // 是å¦ç»‘定虚拟网å£,对应枚举 CFG_THREE_STATUS_BOOL } public static class DNS_SERVERS extends SdkStructure { public byte[] szDnsServers = new byte[MAX_ADDRESS_LEN]; // DNSæœåŠ¡å™¨åœ°å€ } // ç½‘ç»œä¼ è¾“æ¨¡å¼ public static class CFG_ENUM_NET_TRANSMISSION_MODE extends SdkStructure { public static final int CFG_ENUM_NET_MODE_ADAPT = 0; // 自适应 public static final int CFG_ENUM_NET_MODE_HALF10M = 1; // 10MåŠåŒå·¥ public static final int CFG_ENUM_NET_MODE_FULL10M = 2; // 10Må…¨åŒå·¥ public static final int CFG_ENUM_NET_MODE_HALF100M = 3; // 100MåŠåŒå·¥ public static final int CFG_ENUM_NET_MODE_FULL100M = 4; // 100Må…¨åŒå·¥ } // 网å£ç±»åž‹ public static class CFG_ENUM_NET_INTERFACE_TYPE extends SdkStructure { public static final int CFG_ENUM_NET_INTERFACE_TYPE_UNKNOWN = 0; // 未知 public static final int CFG_ENUM_NET_INTERFACE_TYPE_STANDARD = 1; // æ ‡å‡†ç½‘å£ public static final int CFG_ENUM_NET_INTERFACE_TYPE_MANAGER = 2; // 管ç†ç½‘å£ public static final int CFG_ENUM_NET_INTERFACE_TYPE_EXTEND = 3; // æ‰©å±•ç½‘å£ } //三æ€å¸ƒå°”类型 public static class CFG_THREE_STATUS_BOOL extends SdkStructure { public static final int CFG_BOOL_STATUS_UNKNOWN = -1; //未知 public static final int CFG_BOOL_STATUS_FALSE = 0; public static final int CFG_BOOL_STATUS_TRUE = 1; } // RTMPé…ç½® public static class CFG_RTMP_INFO extends SdkStructure { public int bEnable; // RTMPé…置是å¦å¼€å¯ public byte[] szAddr = new byte[MAX_ADDRESS_LEN]; // RTMPæœåŠ¡å™¨åœ°å€ public int nPort; // RTMPæœåŠ¡å™¨ç«¯å£ public int nMainChnNum; // 主ç æµé€šé“个数 public int[] szMainChannel = new int[AV_CFG_Max_Channel_Num]; // å¯ç”¨ä¸»ç æµé€šé“å·åˆ—表:æ¯ä¸ªæˆå‘˜è¡¨ç¤ºå¯¹åº”的通é“需è¦ä¸Šä¼ 到RTMPæœåŠ¡å™¨,通é“å·ä»Ž0开始 public int nExtraChnNum; // è¾…ç æµé€šé“个数 public int[] szExtraChannel = new int[AV_CFG_Max_Channel_Num]; // å¯ç”¨è¾…ç æµé€šé“å·åˆ—表:æ¯ä¸ªæˆå‘˜è¡¨ç¤ºå¯¹åº”的通é“需è¦ä¸Šä¼ 到RTMPæœåŠ¡å™¨,通é“å·ä»Ž0开始 public byte[] szCustomPath = new byte[MAX_ADDRESS_LEN]; // 路径å public byte[] szStreamPath = new byte[MAX_ADDRESS_LEN]; // ç æµè·¯å¾„å‰ç¼€:ä¸åŒé€šé“以åŽç¼€æ•°å—区分 } // 下载远程文件事件,对应 NET_ALARM_DOWNLOAD_REMOTE_FILE public static class ALARM_DOWNLOAD_REMOTE_FILE_INFO extends SdkStructure { public double dbPTS; // 时间戳(å•ä½æ˜¯æ¯«ç§’) public NET_TIME_EX stuTime; // 事件å‘生的时间 public int nEventID; // 事件ID public byte[] szURL = new byte[NET_COMMON_STRING_256]; // 下载文件对应的URLåœ°å€ public int nProgress; // 下载进度[0,100] public byte[] byReserved = new byte[1020]; // ä¿ç•™å—节 } // CLIENT_GetSplitWindowsInfo接å£è¾“å…¥å‚æ•° public static class NET_IN_SPLIT_GET_WINDOWS extends SdkStructure { public int dwSize; public int nChannel; // 通é“å· public NET_IN_SPLIT_GET_WINDOWS() { this.dwSize = this.size(); } } // CLIENT_GetSplitWindowsInfo接å£è¾“出å‚æ•° public static class NET_OUT_SPLIT_GET_WINDOWS extends SdkStructure { public int dwSize; public NET_BLOCK_COLLECTION stuWindows; // 窗å£ä¿¡æ¯ public NET_OUT_SPLIT_GET_WINDOWS() { this.dwSize = this.size(); } } // èžåˆå±é€šé“ä¿¡æ¯ public static class NET_COMPOSITE_CHANNEL extends SdkStructure { public int dwSize; public byte[] szMonitorWallName = new byte[NET_DEVICE_NAME_LEN]; // 电视墙å称 public byte[] szCompositeID = new byte[NET_DEV_ID_LEN_EX]; // èžåˆå±ID public int nVirtualChannel; // 虚拟通é“å· public NET_COMPOSITE_CHANNEL() { this.dwSize = this.size(); } } // 电视墙 public static class AV_CFG_MonitorWall extends SdkStructure { public int nStructSize; public byte[] szName = new byte[AV_CFG_Monitor_Name_Len]; // å称 public int nLine; // 网络行数 public int nColumn; // ç½‘æ ¼åˆ—æ•° public int nBlockCount; // 区å—æ•°é‡ public AV_CFG_MonitorWallBlock[] stuBlocks = new AV_CFG_MonitorWallBlock[AV_CFG_Max_Block_In_Wall];// 区å—数组 public int bDisable; // 是å¦ç¦ç”¨, 0-该电视墙有效, 1-è¯¥ç”µè§†å¢™æ— æ•ˆ public byte[] szDesc = new byte[CFG_COMMON_STRING_256]; // 电视墙æè¿°ä¿¡æ¯ public AV_CFG_MonitorWall() { this.nStructSize = this.size(); for(int i = 0; i < stuBlocks.length; i++){ stuBlocks[i] = new AV_CFG_MonitorWallBlock(); } } @Override public int fieldOffset(String name){ return super.fieldOffset(name); } } // ç”µè§†å¢™åŒºå— public static class AV_CFG_MonitorWallBlock extends SdkStructure { public int nStructSize; public int nLine; // å•ä¸ªTVå çš„ç½‘æ ¼è¡Œæ•° public int nColumn; // å•ä¸ªTVå çš„ç½‘æ ¼åˆ—æ•° public AV_CFG_Rect stuRect=new AV_CFG_Rect(); // 区å—的区域åæ ‡ public int nTVCount; // TVæ•°é‡ public AV_CFG_MonitorWallTVOut[] stuTVs = new AV_CFG_MonitorWallTVOut[AV_CFG_Max_TV_In_Block]; // TV数组 public TIME_SECTION_WEEK_DAY_6[] stuTimeSectionWeekDay = new TIME_SECTION_WEEK_DAY_6[WEEK_DAY_NUM]; // 开关机时间 public byte[] szName = new byte[AV_CFG_Channel_Name_Len]; // 区å—å称 public byte[] szCompositeID = new byte[AV_CFG_Device_ID_Len]; // èžåˆå±ID public byte[] szBlockType = new byte[NET_COMMON_STRING_32]; // 显示å•å…ƒç»„类型,为支æŒç”±æŽ¥æ”¶å¡ç»„æˆå•å…ƒçš„å°é—´è·LED区å—è€Œå¢žåŠ è¯¥å—段,其他类型的区å—填写为"LCD",如ä¸å˜åœ¨è¯¥å—段,默认采用LCD public int nOutputDelay; // 输出延迟,å•ä½ï¼šæ¯«ç§’ public AV_CFG_MonitorWallBlock() { this.nStructSize = this.size(); for(int i = 0; i < stuTVs.length; i++){ stuTVs[i] = new AV_CFG_MonitorWallTVOut(); } for(int i = 0; i < stuTimeSectionWeekDay.length; i++){ stuTimeSectionWeekDay[i] = new TIME_SECTION_WEEK_DAY_6(); } } @Override public int fieldOffset(String name){ return super.fieldOffset(name); } } // 区域 public static class AV_CFG_Rect extends SdkStructure { public int nStructSize; public int nLeft; public int nTop; public int nRight; public int nBottom; public AV_CFG_Rect() { this.nStructSize = this.size(); } }; // 电视墙输出通é“ä¿¡æ¯ public static class AV_CFG_MonitorWallTVOut extends SdkStructure { public int nStructSize; public byte[] szDeviceID = new byte[AV_CFG_Device_ID_Len]; // 设备ID, 为空或"Local"表示本地设备 public int nChannelID; // 通é“ID public byte[] szName = new byte[AV_CFG_Channel_Name_Len]; // å±å¹•å称 public boolean bIsVirtual; // 是å¦æ˜¯è™šæ‹Ÿå±ï¼ˆè™šæ‹Ÿå±è¡¨ç¤ºåœ¨æœ¬è®¾å¤‡ä¸Šä¸å˜åœ¨çš„å±ï¼‰TRUE:è™šæ‹Ÿå± FALSE:éžè™šæ‹Ÿå± public byte[] szAddress=new byte[40]; // 归属设备地å€IP public AV_CFG_MONITOR_WALL_OUT_MODE_INFO stuOutMode=new AV_CFG_MONITOR_WALL_OUT_MODE_INFO(); // 输出模å¼ä¿¡æ¯ public AV_CFG_MonitorWallTVOut() { this.nStructSize = this.size(); } } // CLIENT_OpenSplitWindow接å£è¾“å…¥å‚æ•°(开窗) public static class NET_IN_SPLIT_OPEN_WINDOW extends SdkStructure { public int dwSize; public int nChannel; // 通é“å·(å±å·) public DH_RECT stuRect; // 窗å£ä½ç½®, 0~8192 public int bDirectable; // åæ ‡æ˜¯å¦æ»¡è¶³ç›´é€šæ¡ä»¶, 直通是指拼接å±æ–¹å¼ä¸‹,æ¤çª—å£åŒºåŸŸæ£å¥½ä¸ºç‰©ç†å±åŒºåŸŸ public NET_IN_SPLIT_OPEN_WINDOW() { this.dwSize = this.size(); } } // CLIENT_OpenSplitWindow接å£è¾“出å‚æ•°(开窗) public static class NET_OUT_SPLIT_OPEN_WINDOW extends SdkStructure { public int dwSize; public int nWindowID; // 窗å£åºå· public int nZOrder; // 窗å£æ¬¡åº public NET_OUT_SPLIT_OPEN_WINDOW() { this.dwSize = this.size(); } } // CLIENT_CloseSplitWindow接å£è¾“å…¥å‚æ•°(关窗) public static class NET_IN_SPLIT_CLOSE_WINDOW extends SdkStructure { public int dwSize; public int nChannel; // 输出通é“å·æˆ–èžåˆå±è™šæ‹Ÿé€šé“å·, pszCompositeID为NULL时有效 public int nWindowID; // 窗å£åºå· public String pszCompositeID; // èžåˆå±ID public NET_IN_SPLIT_CLOSE_WINDOW() { this.dwSize = this.size(); } } // CLIENT_CloseSplitWindow接å£è¾“出å‚æ•°(关窗) public static class NET_OUT_SPLIT_CLOSE_WINDOW extends SdkStructure { public int dwSize; public NET_OUT_SPLIT_CLOSE_WINDOW() { this.dwSize = this.size(); } } // CLIENT_GetGroupInfoForChannel接å£è¾“å…¥å‚æ•° public static class NET_IN_GET_GROUPINFO_FOR_CHANNEL extends SdkStructure { public int dwSize; public int nChannelID; // 通é“å· public NET_IN_GET_GROUPINFO_FOR_CHANNEL() { this.dwSize = this.size(); } } // CLIENT_GetGroupInfoForChannel接å£è¾“出å‚æ•° public static class NET_OUT_GET_GROUPINFO_FOR_CHANNEL extends SdkStructure { public int dwSize; 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_OUT_GET_GROUPINFO_FOR_CHANNEL() { this.dwSize = this.size(); } } // CLIENT_FaceRecognitionPutDisposition 接å£è¾“å…¥å‚æ•° public static class NET_IN_FACE_RECOGNITION_PUT_DISPOSITION_INFO extends SdkStructure { public int dwSize; public byte[] szGroupId = new byte[NET_COMMON_STRING_64]; // 人员组ID public int nDispositionChnNum; // 布控视频通é“个数 public NET_DISPOSITION_CHANNEL_INFO[] stuDispositionChnInfo = (NET_DISPOSITION_CHANNEL_INFO[])new NET_DISPOSITION_CHANNEL_INFO().toArray(NET_MAX_CAMERA_CHANNEL_NUM); // 布控视频通é“ä¿¡æ¯ public NET_IN_FACE_RECOGNITION_PUT_DISPOSITION_INFO() { this.dwSize = this.size(); } } // 布控的视频通é“ä¿¡æ¯ public static class NET_DISPOSITION_CHANNEL_INFO extends SdkStructure { public int nChannelID; // 视频通é“å· public int nSimilary; // 相似度阈值, 0-100 public byte[] bReserved = new byte[256]; // ä¿ç•™ } // CLIENT_FaceRecognitionPutDisposition 接å£è¾“出å‚æ•° public static class NET_OUT_FACE_RECOGNITION_PUT_DISPOSITION_INFO extends SdkStructure { public int dwSize; public int nReportCnt; // 通é“布控结果个数 public int[] bReport = new int[NET_MAX_CAMERA_CHANNEL_NUM]; // 通é“布控结果, TRUEè¿½åŠ æˆåŠŸ, FALSEè¿½åŠ å¤±è´¥ public NET_OUT_FACE_RECOGNITION_PUT_DISPOSITION_INFO() { this.dwSize = this.size(); } } // CLIENT_FaceRecognitionDelDisposition 接å£è¾“å…¥å‚æ•° public static class NET_IN_FACE_RECOGNITION_DEL_DISPOSITION_INFO extends SdkStructure { public int dwSize; public byte[] szGroupId = new byte[NET_COMMON_STRING_64]; // 人员组ID public int nDispositionChnNum; // 撤控视频通é“个数 public int[] nDispositionChn = new int[NET_MAX_CAMERA_CHANNEL_NUM]; // 撤控视频通é“列表 public NET_IN_FACE_RECOGNITION_DEL_DISPOSITION_INFO() { this.dwSize = this.size(); } } // CLIENT_FaceRecognitionDelDisposition 接å£è¾“出å‚æ•° public static class NET_OUT_FACE_RECOGNITION_DEL_DISPOSITION_INFO extends SdkStructure { public int dwSize; public int nReportCnt; // 通é“布控结果个数 public int[] bReport = new int[NET_MAX_CAMERA_CHANNEL_NUM]; // 通é“布控结果, TRUEåˆ é™¤æˆåŠŸ, FALSEåˆ é™¤å¤±è´¥ public NET_OUT_FACE_RECOGNITION_DEL_DISPOSITION_INFO() { this.dwSize = this.size(); } } // 人è¯æ¯”对事件,用实时æ‹æ‘„的人脸照片,和该人æŒæœ‰çš„è¯ä»¶ç…§ç‰‡è¿›è¡Œæ¯”对,并上报检测结果 // 对应事件类型为 EVENT_IVS_CITIZEN_PICTURE_COMPARE public static class DEV_EVENT_CITIZEN_PICTURE_COMPARE_INFO extends SdkStructure { //公共å—段 public int nChannelID; // 通é“å·,从0开始 public int nEventAction; // 事件动作, 0表示脉冲, -1表示未知 public double dbPTS; // 时间戳(å•ä½æ˜¯æ¯«ç§’) public byte[] szName = new byte[NET_EVENT_NAME_LEN]; // 事件å称 public NET_TIME_EX stuUTC; // 事件å‘生的时间 public int nEventID; // 事件ID //事件对应å—段 public byte bCompareResult; // 人è¯æ¯”对结果,相似度大于ç‰äºŽé˜ˆå€¼è®¤ä¸ºæ¯”对æˆåŠŸ,1-表示æˆåŠŸ,0-表示失败 public byte nSimilarity; // ä¸¤å¼ å›¾ç‰‡çš„ç›¸ä¼¼åº¦,å•ä½ç™¾åˆ†æ¯”,范围[1,100] public byte nThreshold; // 检测阈值,范围[1,100] public int emSex; // 性别, å‚考 EM_CITIZENIDCARD_SEX_TYPE public int nECType; // æ°‘æ—(å‚ç…§DEV_EVENT_ALARM_CITIZENIDCARD_INFOçš„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; // 有效期é™èµ·å§‹æ—¥æœŸ(年月日) public int bLongTimeValidFlag; // 该值为 TRUE, 截æ¢æ—¥æœŸ 表示长期有效,æ¤æ—¶ stuValidityEnd å€¼æ— æ„义 // 该值为 FALSE, æ¤æ—¶ 截æ¢æ—¥æœŸ 查看 stuValidityEnd 值 public NET_TIME stuValidityEnd; // 有效期é™ç»“æŸæ—¥æœŸ(年月日) public CITIZEN_PICTURE_COMPARE_IMAGE_INFO[] stuImageInfo = (CITIZEN_PICTURE_COMPARE_IMAGE_INFO[])new CITIZEN_PICTURE_COMPARE_IMAGE_INFO().toArray(2); // 图片信æ¯ï¼Œç¬¬ä¸€å¼ 为æ‹æ‘„ç…§ç‰‡ï¼Œç¬¬äºŒå¼ ä¸ºè¯ä»¶ç…§ç‰‡ public byte[] szCardNo = new byte[NET_COMMON_STRING_32]; // ICå¡å· public byte[] szCellPhone = new byte[NET_COMMON_STRING_20]; // 手机å·ï¼ˆæ¯”对时先输入手机å·ï¼‰ public NET_EXTENSION_INFO stuExtensionInfo; // æ‰©å±•ä¿¡æ¯ public CITIZEN_PICTURE_COMPARE_IMAGE_INFO_EX[] stuImageInfoEx = (CITIZEN_PICTURE_COMPARE_IMAGE_INFO_EX[])new CITIZEN_PICTURE_COMPARE_IMAGE_INFO_EX().toArray(6); // å›¾ç‰‡æ‰©å±•ä¿¡æ¯ public byte[] szCallNumber = new byte[20]; // 呼å«å·ç public int emDoorOpenMethod; // 开门方å¼ï¼ˆäººè¯ç…§ç‰‡æˆ–者人è¯ä¿¡æ¯ï¼‰ å‚考 NET_ACCESS_DOOROPEN_METHOD public int nEventGroupID; // 事件ID,用于ä¸åŒäº‹ä»¶è¿›è¡Œå…³è” public int nEventType; // 事件类型:0:人è¯æ¯”对结果 1:人è¯äººè„¸é‡‡é›† 2:访客登记 3:人脸æƒé™ä¸‹å‘ 4:人è¯äººè„¸åº•åº“查询 public byte[] szUserID = new byte[32]; // 人è¯äººè„¸é‡‡é›†æ—¶äººå‘˜ID public byte[] szBuildingNo = new byte[16]; // æ¥¼å· public byte[] szBuildingUnitNo = new byte[16]; // å•å…ƒå· public byte[] szBuildingRoomNo = new byte[16]; // æˆ¿é—´å· public int nFaceIndex; // 人脸åºå· public int emMask; // å£ç½©çŠ¶æ€ EM_MASK_STATE_TYPE public int bManTemperature; // 人员温度信æ¯æ˜¯å¦æœ‰æ•ˆ public NET_MAN_TEMPERATURE_INFO stuManTemperatureInfo; // 人员温度信æ¯, bManTemperature 为TRUE 时有效 public double dbBulkOilQuantity; // æ•£è£…æ²¹é‡ public int nScore; // 人脸质é‡è¯„分 public Pointer pstuCardNoArray; // å¡å·æ•°ç»„ä¿¡æ¯,对应NET_CARDNOARRAY_INFO public Pointer pstuFingerPrint; // ä¿¡æ¯æ•°ç»„ä¿¡æ¯,对应NET_FINGERPRINT_INFO public byte[] szIDPhysicalNumber=new byte[20]; // 物ç†è¯ä»¶å·ï¼ˆè¯ä»¶åºåˆ—å·ï¼‰ //public byte[] byReserved = new byte[24]; // 预留å—节 public int emCardType; //å¡ç±»åž‹,å‚考EM_CARD_TYPE public int nCardTypeNum; // å¡ç±»åž‹æ•°ç»„个数 public int[] arrCardTypeArray = new int[5]; // å¡ç±»åž‹æ•°ç»„ public int nVisitorNumber; // 访客人数 public byte[] szTrafficPlate = new byte[32]; // 访客车牌 public byte[] szRespondentsName = new byte[32]; // 被访者者姓å,人è¯ç™»è®°åœºæ™¯ä½¿ç”¨ public byte[] szStudentNum = new byte[32]; // 用于记录å¦ç”Ÿå¦å·é»˜è®¤â€FFFFFFâ€,若为å¦å·¥å·ä¸ŠæŠ¥ï¼Œåˆ™å¡«å¯¹åº”å¦å·¥å·ä¿¡æ¯ } // 人è¯å¯¹æ¯”å›¾ç‰‡ä¿¡æ¯ public static class CITIZEN_PICTURE_COMPARE_IMAGE_INFO extends SdkStructure { public int dwOffSet; // 文件在二进制数æ®å—ä¸çš„å移ä½ç½®, å•ä½:å—节 public int dwFileLenth; // 文件大å°, å•ä½:å—节 public short wWidth; // 图片宽度, å•ä½:åƒç´ public short wHeight; // 图片高度, å•ä½:åƒç´ public byte[] byReserved = new byte[256]; // ä¿ç•™å—节 } // 人è¯å¯¹æ¯”æ‰©å±•å›¾ç‰‡ä¿¡æ¯ public static class CITIZEN_PICTURE_COMPARE_IMAGE_INFO_EX extends SdkStructure { public int emType; // 图片类型, å‚考枚举 CITIZEN_PICTURE_COMPARE_TYPE public int dwOffSet; // 文件在二进制数æ®å—ä¸çš„å移ä½ç½®, å•ä½:å—节 public int dwFileLenth; // 文件大å°, å•ä½:å—节 public short wWidth; // 图片宽度, å•ä½:åƒç´ public short wHeight; // 图片高度, å•ä½:åƒç´ public byte[] byReserved = new byte[64]; // ä¿ç•™å—节 } // 图片类型 public static class CITIZEN_PICTURE_COMPARE_TYPE extends SdkStructure { public static final int CITIZEN_PICTURE_COMPARE_TYPE_UNKNOWN = -1; public static final int CITIZEN_PICTURE_COMPARE_TYPE_LOCAL = 0; // 本地人脸库图 public static final int CITIZEN_PICTURE_COMPARE_TYPE_FACEMAP = 1; // æ‹æ‘„场景图 } public static class EM_CITIZENIDCARD_SEX_TYPE extends SdkStructure { public static final int EM_CITIZENIDCARD_SEX_TYPE_UNKNOWN = 0; // 未知 public static final int EM_CITIZENIDCARD_SEX_TYPE_MALE = 1; // ç”· public static final int EM_CITIZENIDCARD_SEX_TYPE_FEMALE = 2; // 女 public static final int EM_CITIZENIDCARD_SEX_TYPE_UNTOLD = 3; // 未说明 } /** * 事件类型 EVENT_IVS_HUMANTRAIT(人体特å¾äº‹ä»¶)对应的数æ®å—æè¿°ä¿¡æ¯ */ public static class DEV_EVENT_HUMANTRAIT_INFO extends SdkStructure { /** * 通é“å· */ public int nChannelID; /** * 事件å称 */ public byte szName[] = new byte[SDK_EVENT_NAME_LEN]; /** * 事件ID */ public int nEventID; /** * 时间戳(å•ä½æ˜¯æ¯«ç§’) */ public double PTS; /** * 事件å‘生的时间 */ public NET_TIME_EX UTC = new NET_TIME_EX(); /** * 1:开始 2:åœæ¢ */ public int nAction; /** * 智能事件所属大类 */ public int emClassType; /** * 事件组ID,一次检测的多个人体特å¾nGroupIDç›¸åŒ */ public int nGroupID; /** * 一个事件组内的抓æ‹å¼ æ•°(人体个数),一次检测的多个人体特å¾nCountInGroupç›¸åŒ */ public int nCountInGroup; /** * 一个事件组内的抓æ‹åºå·ï¼Œä»Ž1开始 */ public int nIndexInGroup; /** * äººä½“å›¾ç‰‡ä¿¡æ¯ */ public HUMAN_IMAGE_INFO stuHumanImage = new HUMAN_IMAGE_INFO(); /** * äººè„¸å›¾ç‰‡ä¿¡æ¯ */ public FACE_IMAGE_INFO stuFaceImage = new FACE_IMAGE_INFO(); /** * æ£€æµ‹åˆ°çš„äººçš„ä¿¡æ¯ */ public int emDetectObject; /** * 人体属性 */ public HUMAN_ATTRIBUTES_INFO stuHumanAttributes = new HUMAN_ATTRIBUTES_INFO(); /** * å…¨æ™¯å¤§å›¾ä¿¡æ¯ */ public SCENE_IMAGE_INFO stuSceneImage = new SCENE_IMAGE_INFO(); /** * 人脸属性 */ public NET_FACE_ATTRIBUTE stuFaceAttributes = new NET_FACE_ATTRIBUTE(); /** * 人脸全景图 */ public FACE_SCENE_IMAGE stuFaceSceneImage = new FACE_SCENE_IMAGE(); /** * æ‰©å±•ä¿¡æ¯ */ public NET_EXTENSION_INFO stuExtensionInfo = new NET_EXTENSION_INFO(); /** * 补充事件,表示当å‰äººä½“特å¾æ˜¯ç”±è¯¥äº‹ä»¶äº§ç”Ÿçš„ */ public NET_HUMANTRAIT_EXTENSION_INFO stuHumanTrait = new NET_HUMANTRAIT_EXTENSION_INFO(); /** * 人体特å¾å€¼æ•°æ®åœ¨äºŒè¿›åˆ¶æ•°æ®ä¸çš„ä½ç½®ä¿¡æ¯ */ public NET_HUMAN_FEATURE_VECTOR_INFO stuHumanFeatureVectorInfo = new NET_HUMAN_FEATURE_VECTOR_INFO(); /** * 人体特å¾å€¼ç‰ˆæœ¬å· */ public int emHumanFeatureVersion; /** * 人脸特å¾å€¼æ•°æ®åœ¨äºŒè¿›åˆ¶æ•°æ®ä¸çš„ä½ç½®ä¿¡æ¯ */ public NET_FACE_FEATURE_VECTOR_INFO stuFaceFeatureVectorInfo = new NET_FACE_FEATURE_VECTOR_INFO(); /** * 人脸特å¾å€¼ç‰ˆæœ¬å· */ public int emFaceFeatureVersion; /** * åˆè§„æ ‡è®°0:ä¸åˆè§„,1:åˆè§„,没有开å¯åˆè§„æ£€æµ‹ï¼Œæ— æ¤å—段。 æ¤å—段已废弃 */ public int nCompliantMark; /** * 判æ–是å¦åˆè§„的属性列表个数 */ public int nCompliantDetailsNum; /** * 判æ–是å¦åˆè§„的属性列表,ä¸åˆè§„检测报ä¸åˆè§„的属性å—段,åˆè§„检测报åˆè§„的属性å—段,没有开å¯åˆè§„æ£€æµ‹ï¼Œæ— æ¤å—段。 */ public int[] emCompliantDetailType = new int[32]; /** * å…³è”的人体消æ¯ç±»åž‹åˆ—表个数 */ public int nHumanPostureTypeNum; /** * å…³è”的人体消æ¯ç±»åž‹åˆ—表 */ public int emHumanPostureType[] = new int[32]; /** * 与最优人脸åŒç”»é¢çš„人体信æ¯ï¼ŒemHumanPostureType包å«EM_HUMAN_POSTURE_ALONG_WITH_FACE时有效 */ public HUMAN_IMAGE_INFO stuAlongWithFaceHumanImage = new HUMAN_IMAGE_INFO(); /** * 与最优人脸åŒç”»é¢äººä½“的全景图,emHumanPostureType包å«EM_HUMAN_POSTURE_ALONG_WITH_FACE时有效 */ public SCENE_IMAGE_INFO stuAlongWithFaceHumanSceneImage = new SCENE_IMAGE_INFO(); /** * 与最优人脸åŒç”»é¢äººä½“的属性,emHumanPostureType包å«EM_HUMAN_POSTURE_ALONG_WITH_FACE时有效 */ public HUMAN_ATTRIBUTES_INFO stuAlongWithFaceHumanAttributes = new HUMAN_ATTRIBUTES_INFO(); /** * 是å¦å¼€å¯åˆè§„检测 */ public int bCompliantMarkEnable; /** * 人体特å¾å€¼æ•°æ®åœ¨äºŒè¿›åˆ¶æ•°æ®ä¸çš„ä½ç½®ä¿¡æ¯ */ public NET_HUMAN_FEATURE_VECTOR_INFO stuAlongWithFaceHumanVectorInfo = new NET_HUMAN_FEATURE_VECTOR_INFO(); /** * 人体特å¾å€¼ç‰ˆæœ¬å· */ public int emAlongWithFaceHumanVersion; /** * åˆè§„模å¼: 0-ä¸åˆè§„,1-åˆè§„,没有开å¯åˆè§„æ£€æµ‹ï¼Œæ— æ¤å—段 */ public int nCompliantMode; /** * 1:ä¸åˆè§„ 2:åˆè§„ */ public int nAlarmCompliance; /** * ç›®æ ‡åœ¨è§†é¢‘ä¸å‡ºçŽ°æ—¶çš„视频帧编å·ã€‚视频帧编å·åªèƒ½åœ¨ä¸€ä¸ªé€šé“内表示唯一,且ä¸è¿žç»ã€‚视频æµæ—¶è¯¥å€¼æœ‰æ•ˆ */ public int nStartSequence; /** * ç›®æ ‡åœ¨è§†é¢‘ä¸æ¶ˆå¤±æ—¶çš„视频帧编å·ã€‚视频帧编å·åªèƒ½åœ¨ä¸€ä¸ªé€šé“内表示唯一,且ä¸è¿žç»ã€‚视频æµæ—¶è¯¥å€¼æœ‰æ•ˆã€‚ */ public int nEndSequence; /** * 图åƒæˆåƒå…‰æºç±»åž‹ */ public int emImageLightType; /** * stuHumanAttributes 的扩展 */ public HUMAN_ATTRIBUTES_INFO_EX stuHumanAttributesEx = new HUMAN_ATTRIBUTES_INFO_EX(); /** * stuAlongWithFaceHumanAttributes 的扩展 */ public HUMAN_ATTRIBUTES_INFO_EX stuAlongWithFaceHumanAttributesEx = new HUMAN_ATTRIBUTES_INFO_EX(); /** * 图片信æ¯æ•°ç»„ */ public NET_IMAGE_INFO_EX2[] stuImageInfo = new NET_IMAGE_INFO_EX2[32]; /** * 图片信æ¯ä¸ªæ•° */ public int nImageInfoNum; /** * æ™ºèƒ½ç‰©ä½“å…¨å±€å”¯ä¸€ç‰©ä½“æ ‡è¯† */ public byte[] szObjectUUID=new byte[48]; /** * 人体特å¾å€¼ç‰ˆæœ¬å·-å—符串 */ public byte[] szHumanFeatureVersion=new byte[32]; /** * ç›®æ ‡ç‰¹å¾å€¼ç‰ˆæœ¬å·-å—符串 */ public byte[] szFaceFeatureVersion=new byte[32]; /** * 人体特å¾å€¼ç‰ˆæœ¬å·-å—符串 */ public byte[] szAlongWithFaceHumanVersion=new byte[32]; /** * 事件公共扩展å—段结构体 */ public NET_EVENT_INFO_EXTEND stuEventInfoEx=new NET_EVENT_INFO_EXTEND(); /** * 有效数æ®ä½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 byte[] szReserved=new byte[2]; /** * 图片信æ¯æ•°ç»„ {@link com.iailab.netsdk.lib.structure.NET_IMAGE_INFO_EX3} */ public Pointer pstuImageInfo; /** * 检测物体具体包å«çš„ä¿¡æ¯ç±»åž‹: 0: åªåŒ…å«å±žæ€§ 1: åªåŒ…å«ç‰¹å¾å€¼ 2: 属性ã€ç‰¹å¾å€¼éƒ½åŒ…å« 3:属性和特å¾å€¼éƒ½ä¸åŒ…å« */ public int nDetectMode; /** * ä¿ç•™å—节 */ public byte byReserved[] = new byte[852-POINTERSIZE]; public DEV_EVENT_HUMANTRAIT_INFO(){ for(int i=0;i<stuImageInfo.length;i++){ stuImageInfo[i]=new NET_IMAGE_INFO_EX2(); } } } // äººä½“å›¾ç‰‡ä¿¡æ¯ public static class HUMAN_IMAGE_INFO extends SdkStructure { public int nOffSet; // å移 public int nLength; // 图片大å°,å•ä½å—节 public int nWidth; // 图片宽度 public int nHeight; // 图片高度 public int nIndexInData; // åœ¨ä¸Šä¼ å›¾ç‰‡æ•°æ®ä¸çš„图片åºå· public byte[] byReserved = new byte[52]; // 预留å—节 } // äººè„¸å›¾ç‰‡ä¿¡æ¯ public static class FACE_IMAGE_INFO extends SdkStructure { public int nOffSet; // å移 public int nLength; // 图片大å°,å•ä½å—节 public int nWidth; // 图片宽度 public int nHeight; // 图片高度 public byte[] byReserved = new byte[56]; // 预留å—节 } // æ£€æµ‹åˆ°çš„äººçš„ä¿¡æ¯ public static class EM_DETECT_OBJECT extends SdkStructure { public static final int EM_DETECT_OBJECT_UNKNOWN = 0; // æœªçŸ¥ä¿¡æ¯ public static final int EM_DETECT_OBJECT_HUMAN_BODY_AND_FACE = 1; // 人体和人脸都有 public static final int EM_DETECT_OBJECT_HUMAN_BODY = 2; // 仅有人体 public static final int EM_DETECT_OBJECT_HUMAN_FACE = 3; // 仅有人脸 } // 角度 public static class EM_ANGLE_TYPE extends 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; // èƒŒé¢ } // 是å¦æ‰“伞 public static class EM_HAS_UMBRELLA extends 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; // 打伞 } // 包类型 public static class EM_BAG_TYPE extends 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 class EM_CLOTHES_PATTERN extends 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 class EM_HAIR_STYLE extends 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 class EM_CAP_TYPE extends 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; // 安全帽 } // äººä½“å±žæ€§ä¿¡æ¯ public static class HUMAN_ATTRIBUTES_INFO extends SdkStructure { public int emCoatColor; // 上衣颜色, è¯¦è§ EM_CLOTHES_COLOR public int emCoatType; // 上衣类型, è¯¦è§ EM_COAT_TYPE public int emTrousersColor; // 裤å颜色, è¯¦è§ EM_CLOTHES_COLOR public int emTrousersType; // 裤å类型, è¯¦è§ EM_TROUSERS_TYPE public int emHasHat; // 是å¦æˆ´å¸½å, è¯¦è§ EM_HAS_HAT public int emHasBag; // 是å¦å¸¦åŒ…, è¯¦è§ EM_HAS_BAG public NET_RECT stuBoundingBox; // 包围盒(8192åæ ‡ç³») public int nAge; // 年龄 public int emSex; // 性别, è¯¦è§ EM_SEX_TYPE public int emAngle; // 角度, è¯¦è§ EM_ANGLE_TYPE public int emHasUmbrella; // 是å¦æ‰“伞, è¯¦è§ EM_HAS_UMBRELLA public int emBag; // 包类型 , 详è§EM_BAG_TYPE public int emUpperPattern; // 上åŠèº«è¡£æœå›¾æ¡ˆ, 详è§EM_CLOTHES_PATTERN public int emHairStyle; // 头å‘æ ·å¼, 详è§EM_HAIR_STYLE public int emCap; // 帽类型, 详è§EM_CAP_TYPE public byte[] byReserved = new byte[80]; // 预留å—节 } // è¡£æœé¢œè‰² public static class EM_CLOTHES_COLOR extends 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_OTHER = 13; // 其他颜色(该选项设备å议已ä¸æ”¯æŒ, æ¤å¤„为了兼容ä¿ç•™) } //上衣类型 public static class EM_COAT_TYPE extends 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; // çŸè¢– } // 裤å类型 public static class EM_TROUSERS_TYPE extends 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; // 裙å } // 是å¦æˆ´å¸½å public static class EM_HAS_HAT extends 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; // 戴帽å } // 是å¦æˆ´åŒ…(包括背包或拎包) public static class EM_HAS_BAG extends 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; // 带包 } // 全景广角图 public static class SCENE_IMAGE_INFO extends SdkStructure { public int nOffSet; // 在二进制数æ®å—ä¸çš„å移 public int nLength; // 图片大å°,å•ä½å—节 public int nWidth; // 图片宽度(åƒç´ ) public int nHeight; // 图片高度(åƒç´ ) public int nIndexInData; // åœ¨ä¸Šä¼ å›¾ç‰‡æ•°æ®ä¸çš„图片åºå· public byte[] byReserved = new byte[52]; // 预留å—节 } // 人脸属性 public static class NET_FACE_ATTRIBUTE extends SdkStructure { public int emSex; // 性别, è¯¦è§ EM_DEV_EVENT_FACEDETECT_SEX_TYPE public int nAge; // 年龄,-1表示该å—段数æ®æ— 效 public int nFeatureValidNum; // 人脸特å¾æ•°ç»„有效个数,与 emFeature 结åˆä½¿ç”¨ public int[] emFeatures = new int[NET_MAX_FACEDETECT_FEATURE_NUM]; // 人脸特å¾æ•°ç»„,与 nFeatureValidNum 结åˆä½¿ç”¨ , è¯¦è§ EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE public byte[] szReserved = new byte[4]; // public int emEye; // 眼ç›çŠ¶æ€, è¯¦è§ EM_EYE_STATE_TYPE public int emMouth; // 嘴巴状æ€, è¯¦è§ EM_MOUTH_STATE_TYPE public int emMask; // å£ç½©çŠ¶æ€, è¯¦è§ EM_MASK_STATE_TYPE public int emBeard; // 胡å状æ€, è¯¦è§ EM_BEARD_STATE_TYPE public int nAttractive; // é…力值, 0未识别,识别时范围1-100,得分高é…力高 public NET_RECT stuBoundingBox; // 包围盒(8192åæ ‡ç³») public byte[] bReserved = new byte[112]; // ä¿ç•™å—节,留待扩展. } // 人脸全景图 public static class FACE_SCENE_IMAGE extends SdkStructure { public int nOffSet; // 在二进制数æ®å—ä¸çš„å移 public int nLength; // 图片大å°,å•ä½å—节 public int nWidth; // 图片宽度(åƒç´ ) public int nHeight; // 图片高度(åƒç´ ) public byte[] byReserved = new byte[56]; // 预留å—节 } // äº‹ä»¶æ‰©å±•ä¿¡æ¯ public static class NET_EXTENSION_INFO extends SdkStructure { public byte[] szEventID = new byte[MAX_EVENT_ID_LEN]; // å›½æ ‡äº‹ä»¶ID public byte[] byReserved = new byte[80]; // ä¿ç•™å—节 } // 当å‰äººä½“特å¾æ˜¯ç”±ä»€ä¹ˆäº‹ä»¶äº§ç”Ÿçš„ public static class NET_HUMANTRAIT_EXTENSION_INFO extends SdkStructure { public byte[] szAdditionalCode = new byte[MAX_HUMANTRAIT_EVENT_LEN]; // 当å‰äººä½“特å¾æ˜¯ç”±ä»€ä¹ˆäº‹ä»¶äº§ç”Ÿçš„,设备刚好返回32个å—节数æ®ï¼Œå¤šåŠ 4个å—节用于å—节对é½å’Œæ·»åŠ å—符结æŸç¬¦ public byte[] byReserved = new byte[32]; // ä¿ç•™å—节 } // 事件类型 NET_ALARM_WIFI_SEARCH (æœç´¢WIFI设备)对应的数æ®æè¿°ä¿¡æ¯ public static class ALARM_WIFI_SEARCH_INFO extends SdkStructure { public int nWifiNum; // WIFI设备数é‡, 指示stuWifiçš„æœ‰æ•ˆæ•°é‡ public NET_WIFI_DEV_INFO[] stuWifi = (NET_WIFI_DEV_INFO[])new NET_WIFI_DEV_INFO().toArray(1024); // 周围Wifiè®¾å¤‡çš„ä¿¡æ¯ public int nChannel; // 通é“å· public NET_WIFI_BASIC_INFO stuWifiBasiInfo; // Wifiäº‹ä»¶ä¸ŠæŠ¥åŸºç¡€ä¿¡æ¯ public int bGPSinfo; // 是å¦åŒ…å«GPSä¿¡æ¯ public NET_WIFI_GPS_INFO stuWifiGPSInfo; // GPSä¿¡æ¯ public byte[] reserved = new byte[376]; // 预留 } public static class ALARM_WIFI_SEARCH_INFO_EX extends SdkStructure { public Pointer pstuWifi; // 周围Wifiè®¾å¤‡çš„ä¿¡æ¯ public int nWifiNum; // Wifi设备数é‡ï¼ŒpstuWifi 的个数 public int nChannel; // 通é“å· public NET_WIFI_BASIC_INFO stuWifiBasiInfo; // Wifiäº‹ä»¶ä¸ŠæŠ¥åŸºç¡€ä¿¡æ¯ public int bGPSinfo; // 是å¦åŒ…å«GPSä¿¡æ¯ public NET_WIFI_GPS_INFO stuWifiGPSInfo; // GPSä¿¡æ¯ public byte[] reserved=new byte[512]; // 预留 }; // æœç´¢åˆ°çš„WIFIè®¾å¤‡ä¿¡æ¯ public static class NET_WIFI_DEV_INFO extends SdkStructure { public byte[] szMac = new byte[NET_MACADDR_LEN]; // Wifi设备的Macåœ°å€ public int nLinkQuality; // 链接质é‡ç™¾åˆ†æ¯”, 0~100 public NET_TIME_EX stuEnterTime; // 第一被æœç´¢åˆ°çš„时间 public NET_TIME_EX stuLeaveTime; // 消失的时间 public int nSearchedCount; // 被æœç´¢åˆ°çš„次数 public byte[] szSSID = new byte[24]; // 网络å称 public NET_TIME_EX UTC; // 事件å‘生时间 public int emDevType; // WIFI设备类型, å‚考 EM_WIRELESS_DEV_TYPE public int nChannel; // Wifi设备当å‰æ‰€åœ¨çš„ä¿¡é“ public int emAuth; // 认è¯æ–¹å¼, å‚考 EM_WIRELESS_AUTHENTICATION public int emEncrypt; // æ•°æ®åŠ 密方å¼, å‚考 EM_WIRELESS_DATA_ENCRYPT public byte[] szAPMac = new byte[NET_MACADDR_LEN]; // 接入çƒç‚¹Mac public int nAPChannel; // 接入çƒç‚¹é¢‘é“ public byte[] szAPSSID = new byte[24]; // 接入çƒç‚¹SSID public int emAPEncrypt; // 接入çƒç‚¹åŠ 密类型, å‚考 EM_WIRELESS_DATA_ENCRYPT public int nRssiQuality; // ä¿¡å·å¼ºåº¦ public byte[] szManufacturer = new byte[MAX_MANUFACTURER_LEN];// Mac地å€æ‰€å±žåˆ¶é€ 商 public MACHISTORY_SSID[] szMacHistorySSIDList = (MACHISTORY_SSID[])new MACHISTORY_SSID().toArray(MAX_MACHISTORY_SSID_NUM); // æ¤è®¾å¤‡æ›¾ç»è¿žæŽ¥è¿‡çš„历å²SSID列表 public int nRetMacHistorySSIDNum; // æ¤è®¾å¤‡å®žé™…连接过的SSID个数 public byte[] reserved = new byte[264]; // 预留 } // 历å²SSID public static class MACHISTORY_SSID extends SdkStructure { public byte[] szMacHistorySSID = new byte[MAX_MACHISTORY_SSID_LEN]; // 历å²SSID } // æœç´¢åˆ°çš„WIFIåŸºæœ¬ä¿¡æ¯ public static class NET_WIFI_BASIC_INFO extends SdkStructure { public int nPeriodUTC; // 本周期上报的起始时间,为åŒä¸€ä¸ŠæŠ¥å‘¨æœŸçš„æ ‡è¯†ï¼›å½“åŒä¸€ä¸ŠæŠ¥å‘¨æœŸå†…设备总数超过å•æ¬¡ä¸ŠæŠ¥æ•°é‡ä¸Šé™æ—¶éœ€è¦å¤šæ¬¡ä¸ŠæŠ¥äº‹ä»¶ï¼Œè¯¥å€¼ä½œä¸ºåŒä¸€ä¸ŠæŠ¥å‘¨æœŸå†…å¤šæ¬¡ä¸ŠæŠ¥äº‹ä»¶çš„æ ‡è¯†ç ï¼› public int nDeviceSum; // 本周期上报的wifi总数,åŒä¸€ä¸ŠæŠ¥å‘¨æœŸå†…的事件ä¸çš„该值å‡åº”为本周期上报的wifi总数 public int nCurDeviceCount; // 本次事件上报的Wifi设备数é‡ï¼Œåº”与ALARM_WIFI_SEARCH_INFO结构体ä¸çš„nWifiNum值一致;åŒä¸€ä¸ŠæŠ¥å‘¨æœŸå†…该值的累积总数与nDeviceSum一致。 public byte[] reserved = new byte[500]; // 预留å—节 } // 事件类型 NET_ALARM_WIFI_VIRTUALINFO_SEARCH (获å–周围wifi设备虚拟信æ¯äº‹ä»¶)对应的数æ®æè¿°ä¿¡æ¯ public static class ALARM_WIFI_VIRTUALINFO_SEARCH_INFO extends SdkStructure { public int nVirtualInfoNum; // WIFI设备虚拟身份数é‡, 指示stuVirtualInfoçš„æœ‰æ•ˆæ•°é‡ public NET_WIFI_VIRTUALINFO[] stuVirtualInfo = (NET_WIFI_VIRTUALINFO[])new NET_WIFI_VIRTUALINFO().toArray(MAX_VIRTUALINFO_NUM); // 周围Wifiè™šæ‹Ÿèº«ä»½ä¿¡æ¯ public int nChannel; // 通é“å· public byte[] reserved = new byte[512]; // 预留 } // æœç´¢åˆ°çš„WIFIè®¾å¤‡è™šæ‹Ÿèº«ä»½ä¿¡æ¯ public static class NET_WIFI_VIRTUALINFO extends SdkStructure { public NET_TIME_EX stuAccessTime; // 访问时间,时间ä¸ç²¾ç¡®ä»…ä¾›å‚考 public byte[] szSrcMac = new byte[NET_MACADDR_LEN]; // 虚拟信æ¯çš„æ¥æºMAC,å—æ¯å¤§å†™ï¼Œç”¨"-"分隔 public byte[] szDstMac = new byte[NET_MACADDR_LEN]; // 虚拟信æ¯çš„ç›®æ ‡MAC,å—æ¯å¤§å†™ï¼Œç”¨"-"分隔 public int nProtocal; // å议代å·ï¼Œä¸Šç½‘åº”ç”¨å¯¹åº”çš„æ ‡è¯†ç public byte[] szUrl = new byte[NET_MAX_URL_LEN]; // 上网url public byte[] szDomain = new byte[MAX_VIRTUALINFO_DOMAIN_LEN]; // 上网域 public byte[] szTitle = new byte[MAX_VIRTUALINFO_TITLE_LEN]; // ä¸Šç½‘æ ‡é¢˜ public byte[] szUsrName = new byte[MAX_VIRTUALINFO_USERNAME_LEN]; // 用户å public byte[] szPassWord = new byte[MAX_VIRTUALINFO_PASSWORD_LEN]; // 密ç public byte[] szPhoneNum = new byte[MAX_VIRTUALINFO_PHONENUM_LEN]; // æ‰‹æœºå· public byte[] szImei = new byte[MAX_VIRTUALINFO_IMEI_LEN]; // å›½é™…ç§»åŠ¨è®¾å¤‡æ ‡è¯† public byte[] szImsi = new byte[MAX_VIRTUALINFO_IMSI_LEN]; // 国际移动用户识别ç public byte[] szLatitude = new byte[MAX_VIRTUALINFO_LATITUDE_LEN]; // ç»åº¦ public byte[] szLongitude = new byte[MAX_VIRTUALINFO_LONGITUDE_LEN]; // 纬度 public byte[] szSrcIP = new byte[NET_MAX_IPADDR_LEN_EX]; // æºIP public byte[] szDstIP = new byte[NET_MAX_IPADDR_LEN_EX]; // 目的IP public int nSrcPort; // æºç«¯å£ public int nDstPort; // ç›®çš„ç«¯å£ public byte[] szSiteNum = new byte[MAX_COMMON_STRING_16]; // åœºæ‰€ç¼–å· public byte[] szDevNum = new byte[MAX_COMMON_STRING_32]; // é‡‡é›†è®¾å¤‡ç¼–å· public byte[] szUserID = new byte[MAX_COMMON_STRING_32]; // 虚拟用户ID public byte[] szIDFA = new byte[MAX_COMMON_STRING_64]; // 苹果手机的IDFA public byte[] reserved = new byte[368]; // 预留 } // 事件类型 EVENT_IVS_ACCESS_CTL (é—¨ç¦äº‹ä»¶)对应数æ®å—æè¿°ä¿¡æ¯ public static class DEV_EVENT_ACCESS_CTL_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_MSG_OBJECT stuObject; // 检测到的物体 public NET_EVENT_FILE_INFO stuFileInfo; // äº‹ä»¶å¯¹åº”æ–‡ä»¶ä¿¡æ¯ public int emEventType; // é—¨ç¦äº‹ä»¶ç±»åž‹, å‚考 NET_ACCESS_CTL_EVENT_TYPE public int bStatus; // 刷å¡ç»“æžœ, 1表示æˆåŠŸ, 0表示失败 public int emCardType; // å¡ç±»åž‹, å‚考 NET_ACCESSCTLCARD_TYPE public int emOpenMethod; // 开门方å¼, å‚考 NET_ACCESS_DOOROPEN_METHOD public byte[] szCardNo = new byte[NET_MAX_CARDNO_LEN]; // å¡å· public byte[] szPwd = new byte[NET_MAX_CARDPWD_LEN]; // 密ç public byte[] szReaderID = new byte[NET_COMMON_STRING_32]; // 门读å¡å™¨ID public byte[] szUserID = new byte[NET_COMMON_STRING_64]; // 开门用户 public byte[] szSnapURL = new byte[NET_COMMON_STRING_128]; // 抓æ‹ç…§ç‰‡å˜å‚¨åœ°å€ 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 验è¯é€šè¿‡,控制å°æœªæŽˆæƒ public int nPunchingRecNo; // 刷å¡è®°å½•é›†ä¸çš„è®°å½•ç¼–å· public int nNumbers; // æŠ“å›¾å¼ æ•° public byte byImageIndex; // 图片的åºå·, åŒä¸€æ—¶é—´å†…(精确到秒)å¯èƒ½æœ‰å¤šå¼ 图片, 从0开始 public byte[] byReserved = new byte[3]; // å—èŠ‚å¯¹é½ public int dwSnapFlagMask; // æŠ“å›¾æ ‡å¿—(按ä½),å…·ä½“è§ NET_RESERVED_COMMON public int emAttendanceState; // 考勤状æ€, å‚考 NET_ATTENDANCESTATE 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 int uSimilarity; // ç›®æ ‡è¯†åˆ«ç›¸ä¼¼åº¦,范围为0~100 public DEV_ACCESS_CTL_IMAGE_INFO[] stuImageInfo = (DEV_ACCESS_CTL_IMAGE_INFO[])new DEV_ACCESS_CTL_IMAGE_INFO().toArray(6); // å›¾ç‰‡ä¿¡æ¯ public int nImageInfoCount; // 图片信æ¯æ•°é‡ public byte[] szCitizenIDNo = new byte[20]; // è¯ä»¶å· public int nGroupID; // 事件组ID public int nCompanionCardCount; // 陪åŒè€…å¡å·ä¸ªæ•° public COMPANION_CARD[] szCompanionCards = (COMPANION_CARD[])new COMPANION_CARD().toArray(MAX_COMPANION_CARD_NUM); // 陪åŒè€…å¡å·ä¿¡æ¯ public DEV_ACCESS_CTL_CUSTOM_WORKER_INFO stuCustomWorkerInfo; // äººå‘˜ä¿¡æ¯ public int emCardState; // 当å‰äº‹ä»¶æ˜¯å¦ä¸ºé‡‡é›†å¡ç‰‡,å‚考EM_CARD_STATE public byte[] szSN = new byte[32]; // 设备åºåˆ—å· public int emHatStyle; // 帽å类型(å‚考EM_HAT_STYLE) public int emHatColor; // 帽å颜色(å‚考EM_UNIFIED_COLOR_TYPE) public int emLiftCallerType; // 梯控方å¼è§¦å‘者(å‚考EM_LIFT_CALLER_TYPE) public int bManTemperature; // 人员温度信æ¯æ˜¯å¦æœ‰æ•ˆ public NET_MAN_TEMPERATURE_INFO stuManTemperatureInfo; // 人员温度信æ¯, bManTemperature 为TRUE时有效 public byte[] szCitizenName=new byte[256]; // è¯ä»¶å§“å public int nCompanionInfo; // 陪åŒäººå‘˜ stuCompanionInfo 个数 public NET_COMPANION_INFO[] stuCompanionInfo =(NET_COMPANION_INFO[])new NET_COMPANION_INFO().toArray(12); // 陪åŒäººå‘˜ä¿¡æ¯ public int emMask; // å£ç½©çŠ¶æ€ï¼ˆEM_MASK_STATE_UNKNOWNã€EM_MASK_STATE_NOMASKã€EM_MASK_STATE_WEAR 有效) public int nFaceIndex; // 一人多脸的人脸åºå· public int bClassNumberEx; // szClassNumberEx 是å¦æœ‰æ•ˆï¼Œä¸ºTRUE时,szClassNumberEx 有效 public byte[] szClassNumberEx = new byte[512]; // ç级 public byte[] szDormitoryNo = new byte[64]; // 宿èˆå· public byte[] szStudentNo = new byte[64]; // å¦å· public int emUserType; // 用户类型( EM_USER_TYPE_ORDINARY 至 EM_USER_TYPE_DISABLED 有效 ) EM_USER_TYPE public int bRealUTC; // RealUTC 是å¦æœ‰æ•ˆï¼ŒbRealUTC 为 TRUE 时,用 RealUTC,å¦åˆ™ç”¨ UTC å—段 public NET_TIME_EX RealUTC; // 事件å‘ç”Ÿçš„æ—¶é—´ï¼ˆæ ‡å‡†UTC) public byte[] szQRCode = new byte[512]; // 二维ç ä¿¡æ¯ public byte[] szCompanyName = new byte[200]; // å…¬å¸å称 public int nScore; // 人脸质é‡è¯„分 /** {@link com.iailab.netsdk.lib.enumeration.EM_FACE_CHECK} */ public int emFaceCheck; // 刷å¡å¼€é—¨æ—¶ï¼Œé—¨ç¦åŽå°æ ¡éªŒäººè„¸æ˜¯å¦æ˜¯åŒä¸€ä¸ªäºº /** {@link com.iailab.netsdk.lib.enumeration.EM_QRCODE_IS_EXPIRED} */ public int emQRCodeIsExpired; // 二维ç 是å¦è¿‡æœŸã€‚默认值0 /** {@link com.iailab.netsdk.lib.enumeration.EM_QRCODE_STATE} */ public int emQRCodeState; // 二维ç çŠ¶æ€ public NET_TIME stuQRCodeValidTo; // 二维ç 截æ¢æ—¥æœŸ public int nBlockId; // 上报事件数æ®åºåˆ—å·ä»Ž1开始自增 public byte[] szSection=new byte[64]; // 部门å称 public byte[] szWorkClass=new byte[256]; // 工作ç级 /** {@link com.iailab.netsdk.lib.enumeration.EM_TEST_ITEMS } */ public int emTestItems; // 测试项目 public NET_TEST_RESULT stuTestResult; // ESD阻值测试结果 public byte[] szDeviceID=new byte[128]; // é—¨ç¦è®¾å¤‡ç¼–å· public byte[] szUserUniqueID=new byte[128]; // 用户唯一表示ID public int bUseCardNameEx; // 是å¦ä½¿ç”¨å¡å‘½å扩展 public byte[] szCardNameEx=new byte[128]; // å¡å‘½å扩展 public int nHSJCResult; //æ ¸é…¸æ£€æµ‹æŠ¥å‘Šç»“æžœ -1: 未知 2: 未检测 3: 过期 public NET_VACCINE_INFO stuVaccineInfo=new NET_VACCINE_INFO(); // æ–°å† ç–«è‹—æŽ¥ç§ä¿¡æ¯ public NET_TRAVEL_INFO stuTravelInfo=new NET_TRAVEL_INFO(); // 行程ç ä¿¡æ¯ public byte[] szTrafficPlate=new byte[32]; // 车牌 public byte[] szQRCodeEx=new byte[2048]; //大二维ç 内容 public byte[] szReversed=new byte[4424]; // 预留å—节 } //用户类型 public static class EM_USER_TYPE { public static final int EM_USER_TYPE_UNKNOWN = -1; // 未知 public static final int EM_USER_TYPE_ORDINARY = 0; // 普通用户 public static final int EM_USER_TYPE_BLACKLIST = 1; // public static final int EM_USER_TYPE_VIP = 2; // public static final int EM_USER_TYPE_GUEST = 3; // public static final int EM_USER_TYPE_PATROL = 4; // public static final int EM_USER_TYPE_DISABLED = 5; // public static final int EM_USER_TYPE_FROZEN = 6; // 冻结用户 public static final int EM_USER_TYPE_LOGOUT = 7; // 注销用户 public static final int EM_USER_TYPE_LOSSCARD = 8; // æŒ‚å¤±å¡ } // äººå‘˜æ¸©åº¦ä¿¡æ¯ public static class NET_MAN_TEMPERATURE_INFO extends SdkStructure { public float fCurrentTemperature; // 人员体温 public int emTemperatureUnit; // 温度å•ä½(å‚考EM_HUMAN_TEMPERATURE_UNIT) public int bIsOverTemperature; // 是å¦è¶…温 public byte[] byReserved=new byte[260]; // 预留å—节 }; // 陪åŒäººå‘˜ä¿¡æ¯ public static class NET_COMPANION_INFO extends SdkStructure { public byte[] szCompanionCard=new byte[32]; // 陪åŒè€…å¡å· public byte[] szCompanionUserID=new byte[32]; // 陪åŒè€…ID public byte[] szCompanionName=new byte[120]; // 陪åŒè€…姓å public byte[] byReserved=new byte[256]; // 预留å—段 }; // äººå‘˜ä¿¡æ¯ public static class DEV_ACCESS_CTL_CUSTOM_WORKER_INFO extends SdkStructure { 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 byte[] bReserved = new byte[256]; // ä¿ç•™å—节,留待扩展. } //å›¾ç‰‡ä¿¡æ¯ public static class DEV_ACCESS_CTL_IMAGE_INFO extends SdkStructure { public int emType; // 图片类型, å‚考 EM_ACCESS_CTL_IMAGE_TYPE public int nOffSet; // 二进制å—å移å—节 public int nLength; // å›¾ç‰‡å¤§å° public int nWidth; // 图片宽度(å•ä½:åƒç´ ) public int nHeight; // 图片高度(å•ä½:åƒç´ ) public byte[] byReserved = new byte[64]; // ä¿ç•™å—节 } //图片类型 public static class EM_ACCESS_CTL_IMAGE_TYPE extends SdkStructure { public static final int EM_ACCESS_CTL_IMAGE_UNKNOWN = -1; // 未知 public static final int EM_ACCESS_CTL_IMAGE_LOCAL = 0; // 本地人脸图库 public static final int EM_ACCESS_CTL_IMAGE_SCENE = 1; // æ‹æ‘„åœºæ™¯æŠ å›¾ public static final int EM_ACCESS_CTL_IMAGE_FACE = 2; // äººè„¸æŠ å›¾ } public static class COMPANION_CARD extends SdkStructure { public byte[] szCompanionCard = new byte[NET_MAX_CARDINFO_LEN]; // 陪åŒè€…å¡å·ä¿¡æ¯ } // é—¨ç¦äº‹ä»¶ç±»åž‹ public static class NET_ACCESS_CTL_EVENT_TYPE extends SdkStructure { public static final int NET_ACCESS_CTL_EVENT_UNKNOWN = 0; public static final int NET_ACCESS_CTL_EVENT_ENTRY = 1; // 进门 public static final int NET_ACCESS_CTL_EVENT_EXIT = 2; // 出门 } // 当å‰é—¨é‡‡é›†çŠ¶æ€ public static class EM_CARD_STATE extends SdkStructure { public static final int EM_CARD_STATE_UNKNOWN = -1; // 未知 public static final int EM_CARD_STATE_SWIPE = 0; // é—¨ç¦åˆ·å¡ public static final int EM_CARD_STATE_COLLECTION = 1; // é—¨ç¦é‡‡é›†å¡ } // 获å–çƒåº¦ç»Ÿè®¡ä¿¡æ¯, 对应命令 NET_DEVSTATE_GET_HEAT_MAP public static class NET_QUERY_HEAT_MAP extends SdkStructure { public int dwSize; // è¯¥ç»“æž„ä½“å¤§å° public NET_IN_QUERY_HEAT_MAP stuIn; // çƒåº¦ç»Ÿè®¡ä¿¡æ¯æŸ¥è¯¢æ¡ä»¶ public NET_OUT_QUERY_HEAT_MAP stuOut; // çƒåº¦ç»Ÿè®¡ä¿¡æ¯æŸ¥è¯¢ç»“æžœ public NET_QUERY_HEAT_MAP() { this.dwSize = this.size(); } } // 获å–çƒåº¦ç»Ÿè®¡ä¿¡æ¯å…¥å‚ public static class NET_IN_QUERY_HEAT_MAP extends SdkStructure { public int nChannel; // 通é“å· public NET_TIME_EX stuBegin; // 开始时间 public NET_TIME_EX stuEnd; // 结æŸæ—¶é—´ public int nPlanID; // 计划ID,ä»…çƒæœºæœ‰æ•ˆ,从1开始 public int emDataType; // 希望获å–çš„æ•°æ®ç±»åž‹, å‚考 EM_HEAT_PIC_DATA_TYPE public byte[] reserved = new byte[1016]; // 预留 } // 获å–çƒåº¦ç»Ÿè®¡ä¿¡æ¯å‡ºå‚ public static class NET_OUT_QUERY_HEAT_MAP extends SdkStructure { public int nWidth; // 图片宽度 public int nHeight; // 图片高度 public Pointer pBufData; // çƒåº¦æ•°æ®ç°é˜¶ä½å›¾, 用户申请内å˜,大å°ä¸ºnBufLen // è‹¥emDataType为EM_HEAT_PIC_DATA_TYPE_GRAYDATA,则一个å—节表示一个点 // è‹¥emDataType为EM_HEAT_PIC_DATA_TYPE_SOURCEDATA,则四个å—节表示一个点 public int nBufLen; // pBufData最大长度 public int nBufRet; // 实际返回的长度 public int nAverage; // å‡å€¼ä¿¡æ¯ public int nPlanID; // 计划ID,与请求NET_IN_QUERY_HEAT_MAPçš„nPlanID对应 public int emDataType; // 获å–到的数æ®ç±»åž‹, å‚考 EM_HEAT_PIC_DATA_TYPE public int nPixelMax; // 实际åƒç´ 点的最大值 public int nPixelMin; // 实际åƒç´ 点的最å°å€¼ public byte[] reserved = new byte[1004]; // 预留 } // çƒåº¦å›¾æ•°æ®ç±»åž‹ public static class EM_HEAT_PIC_DATA_TYPE extends SdkStructure { public static final int EM_HEAT_PIC_DATA_TYPE_UNKNOWN = 0; // 未知类型 public static final int EM_HEAT_PIC_DATA_TYPE_GRAYDATA = 1; // ç°åº¦æ•°æ® public static final int EM_HEAT_PIC_DATA_TYPE_SOURCEDATA = 2; // åŽŸå§‹æ•°æ® } // 通é“å称é…ç½® public static class NET_ENCODE_CHANNELTITLE_INFO extends SdkStructure { public int dwSize; public byte[] szChannelName = new byte[MAX_CHANNEL_NAME_LEN]; // 通é“å称 public NET_ENCODE_CHANNELTITLE_INFO() { this.dwSize = this.size(); } } // 视频分æžå…¨å±€é…ç½® public static class CFG_ANALYSEGLOBAL_INFO extends SdkStructure { // ä¿¡æ¯ public byte[] szSceneType = new byte[MAX_NAME_LEN]; // 应用场景,详è§"支æŒçš„场景列表", å‚考 EM_SCENE_TYPE 里的场景 //äº¤é€šåœºæ™¯ä¿¡æ¯ public double CameraHeight; // æ‘„åƒå¤´ç¦»åœ°é«˜åº¦ å•ä½ï¼šç±³ public double CameraDistance; // æ‘„åƒå¤´ç¦»åœ°é¢æ£€æµ‹åŒºåŸŸä¸å¿ƒçš„æ°´å¹³è·ç¦» å•ä½ï¼šç±³ public CFG_POLYGON stuNearDetectPoint; // 近景检测点 public CFG_POLYGON stuFarDectectPoint; // 远景检测点 public int nNearDistance; // NearDetectPoint,转æ¢åˆ°å®žé™…场景ä¸æ—¶,离摄åƒå¤´åž‚直线的水平è·ç¦» public int nFarDistance; // FarDectectPoint,转æ¢åˆ°å®žé™…场景ä¸æ—¶,离摄åƒå¤´åž‚直线的水平è·ç¦» public byte[] szSubType = new byte[MAX_NAME_LEN]; // 交通场景的å类型,"Gate",å¡å£ç±»åž‹,"Junction" è·¯å£ç±»åž‹,"ParkingSpace" 车ä½æ£€æµ‹ç±»åž‹ public int nLaneNum; // 车é“æ•° public CFG_LANE[] stuLanes = (CFG_LANE[])new CFG_LANE().toArray(MAX_LANE_NUM); // 车é“ä¿¡æ¯ public int nPlateHintNum; // 车牌å—符暗示个数 public PLATE_HINT[] szPlateHintsArr = (PLATE_HINT[])new PLATE_HINT().toArray(MAX_PLATEHINT_NUM); // 车牌å—符暗示数组,在æ‹æ‘„图片质é‡è¾ƒå·®è½¦ç‰Œè¯†åˆ«ä¸ç¡®å®šæ—¶ï¼Œæ ¹æ®æ¤æ•°ç»„ä¸çš„å—符进行匹é…ï¼Œæ•°ç»„ä¸‹æ ‡è¶Šå°ï¼ŒåŒ¹é…优先级越高 public int nLightGroupNum; // ç¯ç»„æ•° public CFG_LIGHTGROUPS[] stLightGroups = (CFG_LIGHTGROUPS[])new CFG_LIGHTGROUPS().toArray(MAX_LIGHTGROUP_NUM); // ç¯ç»„é…ç½®ä¿¡æ¯ public boolean bHangingWordPlate; // 是å¦è¯†åˆ«æŒ‚å—车牌 public boolean bNonStdPolicePlate; // 是å¦è¯†åˆ«éžæ ‡å‡†è¦ç‰Œ public boolean 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 int nStaffNum; // æ ‡å°ºæ•° public CFG_STAFF[] stuStaffs = (CFG_STAFF[])new CFG_STAFF().toArray(MAX_STAFF_NUM); // æ ‡å°º public int nCalibrateAreaNum; // æ ‡å®šåŒºåŸŸæ•° public CFG_CALIBRATEAREA_INFO[] stuCalibrateArea = (CFG_CALIBRATEAREA_INFO[])new CFG_CALIBRATEAREA_INFO().toArray(MAX_CALIBRATEBOX_NUM); // æ ‡å®šåŒºåŸŸ(若该å—段ä¸å˜åœ¨ï¼Œåˆ™ä»¥æ•´å¹…åœºæ™¯ä¸ºæ ‡å®šåŒºåŸŸ) public boolean bFaceRecognition; // ç›®æ ‡è¯†åˆ«åœºæ™¯æ˜¯å¦æœ‰æ•ˆ public CFG_FACERECOGNITION_SCENCE_INFO stuFaceRecognitionScene; // ç›®æ ‡è¯†åˆ«åœºæ™¯ public byte abJitter; public byte abDejitter; public byte[] bReserved = new byte[2]; // ä¿ç•™å—段 public int nJitter; // æ‘„åƒæœºæŠ–动率 : æ‘„åƒæœºæŠ–动率,å–值0-100,å应é™æ¢æ‘„åƒæœºæŠ–动程度,抖动越厉害,值越大。 public boolean bDejitter; // 是å¦å¼€å¯åŽ»æŠ–åŠ¨æ¨¡å— ç›®å‰ä¸å®žçŽ° public boolean abCompatibleMode; public int nCompatibleMode; // 0:"OldTrafficRule" : 交通è€è§„则兼容模å¼;1:"NewTrafficRule" : 交通新规则兼容模å¼;-1:å—符串错误 public int nCustomDataLen; // 实际数æ®é•¿åº¦ï¼Œä¸èƒ½å¤§äºŽ1024 public byte[] byCustomData = new byte[1024]; // 第三方自定义é…ç½®æ•°æ® public double CameraAngle; // æ‘„åƒå¤´ä¸Žåž‚æ–¹å‘的夹角 public CFG_POLYGON stuLandLineStart; // 地平线线段起始点(点的åæ ‡åæ ‡å½’ä¸€åŒ–åˆ°[0,8192)区间。) public CFG_POLYGON stuLandLineEnd; // 地平线线段终æ¢ç‚¹(点的åæ ‡åæ ‡å½’ä¸€åŒ–åˆ°[0,8192)区间。) public boolean bFaceDetection; // ç›®æ ‡æ£€æµ‹åœºæ™¯æ˜¯å¦æœ‰æ•ˆ public CFG_FACEDETECTION_SCENCE_INFO stuFaceDetectionScene=new CFG_FACEDETECTION_SCENCE_INFO(); // ç›®æ ‡æ£€æµ‹åœºæ™¯ public CFG_TIME_PERIOD stuDayTimePeriod=new CFG_TIME_PERIOD(); // æ ‡å®šç™½å¤©çš„æ—¶é—´æ®µ.(8,20),表示从8点到晚上20点为白天 public CFG_TIME_PERIOD stuNightTimePeriod=new CFG_TIME_PERIOD(); // æ ‡å®šé»‘å¤œçš„æ—¶é—´æ®µ.(20,7),表示从晚8点到凌晨7点为黑夜 public CFG_TIME_PERIOD_SCENE_INFO stuTimePeriodSceneInfo; // å¤šåœºæ™¯æ ‡å®šç™½å¤©å’Œé»‘å¤œæ—¶é—´æ®µ public CFG_CALIBRATEAREA_SCENE_INFO stuCalibrateAreaSceneInfo; // å¤šåœºæ™¯æ ‡å®šåŒºåŸŸé…ç½®ä¿¡æ¯ public int emSwitchMode; // 昼夜算法切æ¢æ¨¡å¼,è¯¦è§ CFG_TIMEPERIOD_SWITCH_MODE public int nSceneNum; // 场景数, >0时表示支æŒå¤šåœºæ™¯, 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 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;i<stuTimeSection.length;i++){ stuTimeSection[i]=new CFG_TIME_SECTION(); } } } public static class TIME_SECTION_WEEK_DAY_6 extends SdkStructure { public CFG_TIME_SECTION[] stuTimeSection = (CFG_TIME_SECTION[])new CFG_TIME_SECTION().toArray(MAX_REC_TSECT); // 事件å“应时间段, æ¯å¤©æœ€å¤š6个时间段 public TIME_SECTION_WEEK_DAY_6(){ for(int i=0;i<stuTimeSection.length;i++){ stuTimeSection[i]=new CFG_TIME_SECTION(); } } } public static class TIME_SECTION_WEEK_DAY_4 extends SdkStructure { public CFG_TIME_SECTION[] stuTimeSection = (CFG_TIME_SECTION[])new CFG_TIME_SECTION().toArray(MAX_DOOR_TIME_SECTION); // 事件å“应时间段, æ¯å¤©æœ€å¤š4个时间段 public TIME_SECTION_WEEK_DAY_4(){ for(int i=0;i<stuTimeSection.length;i++){ stuTimeSection[i]=new CFG_TIME_SECTION(); } } } public static class TIME_SECTION_WEEK_DAY_2 extends SdkStructure { public CFG_TIME_SECTION[] stuTimeSection = (CFG_TIME_SECTION[])new CFG_TIME_SECTION().toArray(MAX_NAS_TIME_SECTION); // 事件å“应时间段, æ¯å¤©æœ€å¤š4个时间段 public TIME_SECTION_WEEK_DAY_2(){ for(int i=0;i<stuTimeSection.length;i++){ stuTimeSection[i]=new CFG_TIME_SECTION(); } } } // 设备ID public static class DEVICE_ID extends SdkStructure { public byte[] szDeviceID = new byte[NET_DEV_ID_LEN_EX]; // 设备ID } // 设备通知类型 public static class EM_DEVICE_NOTIFY_TYPE extends SdkStructure { public static final int EM_DEVICE_NOTIFY_TYPE_UNKNOWN = 0; // 未知 public static final int EM_DEVICE_NOTIFY_TYPE_NEW = 1; // æ–°è®¾å¤‡æ·»åŠ public static final int EM_DEVICE_NOTIFY_TYPE_UPDATE = 2; // 设备信æ¯æ›´æ–° public static final int EM_DEVICE_NOTIFY_TYPE_REMOVE = 3; // è®¾å¤‡åˆ é™¤ public static final int EM_DEVICE_NOTIFY_TYPE_CONNECT = 4; // 设备有通é“上下线 } // å‘è®¾å¤‡æ³¨å†Œçš„å›žè°ƒè¿”å›žä¿¡æ¯ public static class NET_CB_ATTACH_DEVICE_STATE extends SdkStructure { public int emNotifyType; // 通知类型, è¯¦è§ EM_DEVICE_NOTIFY_TYPE public int nRetCount; // 设备个数 public DEVICE_ID[] szDeviceIDsArr = (DEVICE_ID[])new DEVICE_ID().toArray(MAX_LINK_DEVICE_NUM); // 设备列表 public byte[] byReserved = new byte[512]; // ä¿ç•™å—节 } // CLIENT_AttachDeviceState 注册设备状æ€å›žè°ƒå…¥å‚结构 public static class NET_IN_ATTACH_DEVICE_STATE extends SdkStructure { public int dwSize; public Callback cbDeviceState; //回调函数 public Pointer dwUser; //ç”¨æˆ·æ•°æ® public NET_IN_ATTACH_DEVICE_STATE() { this.dwSize = this.size(); } } // CLIENT_AttachDeviceState 注册设备状æ€å›žè°ƒå‡ºå‚结构 public static class NET_OUT_ATTACH_DEVICE_STATE extends SdkStructure { public int dwSize; public NET_OUT_ATTACH_DEVICE_STATE() { this.dwSize = this.size(); } } // CLIENT_AsyncAddDevice æ·»åŠ è®¾å¤‡å…¥å‚结构 public static class NET_IN_ASYNC_ADD_DEVICE extends SdkStructure { public int dwSize; public int nCount; // URL个数 public DEVICE_URL[] szUrlsArr = (DEVICE_URL[])new DEVICE_URL().toArray(MAX_ADD_DEVICE_NUM); // URL组 public NET_IN_ASYNC_ADD_DEVICE() { this.dwSize = this.size(); } } // 设备URL public static class DEVICE_URL extends SdkStructure { public byte[] szUrl = new byte[MAX_COMMON_STRING_512]; // URL } // CLIENT_AsyncAddDevice æ·»åŠ è®¾å¤‡å‡ºå‚结构 public static class NET_OUT_ASYNC_ADD_DEVICE extends SdkStructure { public int dwSize; public int nTaskID; //任务ID public NET_OUT_ASYNC_ADD_DEVICE() { this.dwSize = this.size(); } } // è®¾å¤‡çš„æ·»åŠ çŠ¶æ€ public static class EM_DEVICE_ADD_STATE extends SdkStructure { public static final int EM_DEVICE_ADD_STATE_UNKNOWN = 0; // 未知 public static final int EM_DEVICE_ADD_STATE_WAIT = 1; // ç‰å¾…æ·»åŠ public static final int EM_DEVICE_ADD_STATE_CONNECT = 2; // è¿žæŽ¥ä¸ public static final int EM_DEVICE_ADD_STATE_FAILURE = 3; // æ·»åŠ å¤±è´¥ public static final int EM_DEVICE_ADD_STATE_SUCCESS = 4; // æ·»åŠ æˆåŠŸ public static final int EM_DEVICE_ADD_STATE_STOP = 5; // åœæ¢æ·»åŠ } // æ³¨å†Œæ·»åŠ è®¾å¤‡çš„å›žè°ƒè¿”å›žä¿¡æ¯ public static class NET_CB_ATTACH_ADD_DEVICE extends SdkStructure { public int nTaskID; // 任务ID public int emAddState; // æ·»åŠ è®¾å¤‡ç»“æžœ public int nIndex; // 任务ä¸è®¾å¤‡åºå· public byte[] byReserved = new byte[512]; // ä¿ç•™å—节 } // CLIENT_AttachAddDevice æ³¨å†Œæ·»åŠ è®¾å¤‡å›žè°ƒå…¥å‚结构 public static class NET_IN_ATTACH_ADD_DEVICE extends SdkStructure { public int dwSize; public Callback cbAddDevice; //回调函数 public Pointer dwUser; //ç”¨æˆ·æ•°æ® public NET_IN_ATTACH_ADD_DEVICE() { this.dwSize = this.size(); } } // CLIENT_AttachAddDevice æ³¨å†Œæ·»åŠ è®¾å¤‡å›žè°ƒå‡ºå‚结构 public static class NET_OUT_ATTACH_ADD_DEVICE extends SdkStructure { public int dwSize; public NET_OUT_ATTACH_ADD_DEVICE() { this.dwSize = this.size(); } } // CLIENT_GetAddDeviceInfo 获å–æ·»åŠ ä¸çš„设备状æ€å…¥å‚结构 public static class NET_IN_GET_ADD_DEVICE_LIST_INFO extends SdkStructure { public int dwSize; public int nTaskID; // 任务ID public int nCount; // 设备个数 public int[] nIndex = new int[MAX_ADD_DEVICE_NUM]; // 设备åºå·åˆ—表(NET_IN_ADD_DEVICEä¸szUrlsçš„åºå·ï¼Œä»Ž0开始) public NET_IN_GET_ADD_DEVICE_LIST_INFO() { this.dwSize = this.size(); } } // æ·»åŠ ä¸è®¾å¤‡çš„ç»“æžœä¿¡æ¯ public static class NET_GET_ADD_DEVICE_INFO extends SdkStructure { public byte[] szDeviceID = new byte[NET_DEV_ID_LEN_EX]; // 设备ID public byte[] szUrl = new byte[NET_COMMON_STRING_512]; // url public int emAddState; // 当å‰æ·»åŠ 状æ€ï¼Œè¯¦è§ EM_DEVICE_ADD_STATE public int nErrorCode; // 错误ç public byte[] byReserved = new byte[512]; // ä¿ç•™å—节 } // CLIENT_GetAddDeviceInfo 获å–æ·»åŠ ä¸çš„设备状æ€å‡ºå‚结构 public static class NET_OUT_GET_ADD_DEVICE_LIST_INFO extends SdkStructure { public int dwSize; public int nRetCount; // 设备个数 public NET_GET_ADD_DEVICE_INFO[] stuDeviceInfo = (NET_GET_ADD_DEVICE_INFO[])new NET_GET_ADD_DEVICE_INFO().toArray(MAX_ADD_DEVICE_NUM); // 设备信æ¯åˆ—表 public NET_OUT_GET_ADD_DEVICE_LIST_INFO() { this.dwSize = this.size(); } } // CLIENT_GetDeviceInfo 获å–å·²æ·»åŠ çš„è®¾å¤‡çŠ¶æ€å…¥å‚结构 public static class NET_IN_GET_DEVICE_LIST_INFO extends SdkStructure { public int dwSize; public int nCount; // 设备个数 public DEVICE_ID[] szDeviceIDsArr = (DEVICE_ID[])new DEVICE_ID().toArray(MAX_LINK_DEVICE_NUM); // 设备列表 public NET_IN_GET_DEVICE_LIST_INFO() { this.dwSize = this.size(); } } // å·²æ·»åŠ è®¾å¤‡çš„ç»“æžœä¿¡æ¯ public static class NET_GET_DEVICE_INFO extends SdkStructure { public byte[] szDeviceID = new byte[NET_DEV_ID_LEN_EX]; // 设备ID public byte[] szUrl = new byte[NET_COMMON_STRING_512]; // url public byte[] szSerialNo = new byte[NET_COMMON_STRING_32]; // 设备åºåˆ—å· public byte[] szDeviceType = new byte[NET_COMMON_STRING_64]; // 设备类型 public byte[] szDeviceClass = new byte[NET_DEV_CLASS_LEN]; // 设备大类 public int nMacCount; // 设备mac个数 public DEVICE_MAC[] szMacsArr = (DEVICE_MAC[])new DEVICE_MAC().toArray(MAX_MACADDR_NUM); // 设备mac地å€ç»„ public byte[] szDevSoftVersion = new byte[NET_COMMON_STRING_128]; // è®¾å¤‡è½¯ä»¶ç‰ˆæœ¬å· public byte[] szDeviceName = new byte[NET_DEV_NAME_LEN]; // 设备å称 public byte[] szDetail = new byte[NET_COMMON_STRING_512]; // è®¾å¤‡è¯¦ç»†ä¿¡æ¯ public int nVideoInputCh; // 视频输入通é“æ•° public int nVideoOutputCh; // 视频输出通é“æ•° public int nAudioInputCh; // 音频输入通é“æ•° public int nAudioOutputCh; // 音频输出通é“æ•° public int nAlarmInputCh; // 报è¦è¾“入通é“æ•° public int nAlarmOutputCh; // 报è¦è¾“出通é“æ•° public int nErrorCode; // 设备离线错误ç public int nVtoDoors; // é—¨ç¦è®¾å¤‡å¯æŽ§åˆ¶çš„门的总数 public byte byOnline; // 设备是å¦åœ¨çº¿ 0:离线 1:在线 public byte[] byReserved = new byte[511]; // ä¿ç•™å—节 } // 设备macåœ°å€ public static class DEVICE_MAC extends SdkStructure { public byte[] szMac = new byte[NET_MACADDR_LEN]; // 设备macåœ°å€ } // CLIENT_GetDeviceInfo 获å–å·²æ·»åŠ çš„è®¾å¤‡çŠ¶æ€å‡ºå‚结构 public static class NET_OUT_GET_DEVICE_LIST_INFO extends SdkStructure { public int dwSize; public int nMaxCount; // 用户申请的设备个数 public int nRetCount; // 实际返回的设备个数 public Pointer pstuDeviceInfo; // 设备信æ¯åˆ—表 用户分é…内å˜,大å°ä¸ºsizeof(NET_GET_DEVICE_INFO)*nMaxCount, 对应 NET_GET_DEVICE_INFO[] public NET_OUT_GET_DEVICE_LIST_INFO() { this.dwSize = this.size(); } } // CLIENT_SetConnectChannel 设置连接通é“å…¥å‚结构 public static class NET_IN_SET_CONNECT_CHANNEL extends SdkStructure { public int dwSize; public byte[] szDeviceID = new byte[NET_DEV_ID_LEN_EX]; // 设备ID public int nCount; // 通é“个数 public int[] nChannels = new int[MAX_DEVICE_CHANNEL_NUM]; // 通é“列表 public NET_IN_SET_CONNECT_CHANNEL() { this.dwSize = this.size(); } } // CLIENT_SetConnectChannel 设置连接通é“出å‚结构 public static class NET_OUT_SET_CONNECT_CHANNEL extends SdkStructure { public int dwSize; public NET_OUT_SET_CONNECT_CHANNEL() { this.dwSize = this.size(); } } // CLIENT_GetChannelInfo 获å–设备通é“ä¿¡æ¯å…¥å‚结构 public static class NET_IN_GET_CHANNEL_INFO extends SdkStructure { public int dwSize; public byte[] szDeviceID = new byte[NET_DEV_ID_LEN_EX]; // 设备ID public NET_IN_GET_CHANNEL_INFO() { this.dwSize = this.size(); } } // 获å–设备通é“ä¿¡æ¯ç»“æžœä¿¡æ¯ public static class NET_GET_CHANNEL_INFO extends SdkStructure { public int nRemoteChannel; // 远程通é“å· public int nLogicChannel; // 分é…çš„é€»è¾‘é€šé“ public byte[] szName = new byte[NET_DEV_NAME_LEN]; // 通é“å称 public byte[] szDetail = new byte[NET_COMMON_STRING_512]; // è®¾å¤‡è¯¦ç»†ä¿¡æ¯ public byte[] szDeviceType = new byte[NET_COMMON_STRING_64]; // 设备类型 public byte[] szDeviceClass = new byte[NET_DEV_CLASS_LEN]; // 设备大类 public byte[] szIP = new byte[NET_MAX_IPADDR_LEN]; // ipåœ°å€ public byte[] szMac = new byte[NET_MACADDR_LEN]; // 设备macåœ°å€ public byte[] szSerialNo = new byte[NET_DEV_SERIALNO_LEN]; // 设备åºåˆ—å· public byte[] szDevSoftVersion = new byte[NET_COMMON_STRING_128]; // è®¾å¤‡è½¯ä»¶ç‰ˆæœ¬å· public int nVideoInputCh; // 视频输入通é“æ•° public int nVideoOutputCh; // 视频输出通é“æ•° public int nAudioInputCh; // 音频输入通é“æ•° public int nAudioOutputCh; // 音频输出通é“æ•° public int nAlarmInputCh; // 报è¦è¾“入通é“æ•° public int nAlarmOutputCh; // 报è¦è¾“出通é“æ•° public byte byOnline; // 通é“是å¦åœ¨çº¿0:离线 1:在线 public byte byUsed; // 该通é“是å¦è¢«æœ¬åœ°è®¾å¤‡ä½¿ç”¨ 0:未使用 1:使用 public byte[] byReserved = new byte[510]; // ä¿ç•™å—节 } // CLIENT_GetChannelInfo 获å–设备通é“ä¿¡æ¯å‡ºå‚结构 public static class NET_OUT_GET_CHANNEL_INFO extends SdkStructure { public int dwSize; public int nMaxCount; // 用户申请的通é“个数 public int nRetCount; // 实际返回的通é“个数 public Pointer pstuChannelInfo; // 通é“ä¿¡æ¯åˆ—表 用户分é…内å˜,大å°ä¸ºsizeof(NET_GET_CHANNEL_INFO)*nMaxCount, 对应 NET_GET_CHANNEL_INFO[] public NET_OUT_GET_CHANNEL_INFO() { this.dwSize = this.size(); } } // CLIENT_RemoveDevice åˆ é™¤è®¾å¤‡å…¥å‚结构 public static class NET_IN_REMOVE_DEVICE extends SdkStructure { public int dwSize; public int nCount; // 设备个数 public DEVICE_ID[] szDeviceIDsArr = (DEVICE_ID[])new DEVICE_ID().toArray(MAX_LINK_DEVICE_NUM); // 设备列表 public NET_IN_REMOVE_DEVICE() { this.dwSize = this.size(); } } // CLIENT_RemoveDevice åˆ é™¤è®¾å¤‡å‡ºå‚结构 public static class NET_OUT_REMOVE_DEVICE extends SdkStructure { public int dwSize; public NET_OUT_REMOVE_DEVICE() { this.dwSize = this.size(); } } // CLIENT_CancelAddDeviceTask 接å£è¾“å…¥å‚æ•° public static class NET_IN_CANCEL_ADD_TASK extends SdkStructure { public int dwSize; public int nTaskID; // 任务ID public NET_IN_CANCEL_ADD_TASK() { this.dwSize = this.size(); } } // CLIENT_CancelAddDeviceTask 接å£è¾“出å‚æ•° public static class NET_OUT_CANCEL_ADD_TASK extends SdkStructure { public int dwSize; public NET_OUT_CANCEL_ADD_TASK() { this.dwSize = this.size(); } } // CLIENT_ConfirmAddDeviceTask 接å£è¾“å…¥å‚æ•° public static class NET_IN_CONFIRM_ADD_TASK extends SdkStructure { public int dwSize; public int nTaskID; // 任务ID public NET_IN_CONFIRM_ADD_TASK() { this.dwSize = this.size(); } } // CLIENT_ConfirmAddDeviceTask 接å£è¾“出å‚æ•° public static class NET_OUT_CONFIRM_ADD_TASK extends SdkStructure { public int dwSize; public NET_OUT_CONFIRM_ADD_TASK() { this.dwSize = this.size(); } } // CLIENT_SCADAAlarmAttachInfo()接å£è¾“å…¥å‚æ•° public static class NET_IN_SCADA_ALARM_ATTACH_INFO extends SdkStructure { public int dwSize; public Callback cbCallBack; // æ•°æ®å›žè°ƒå‡½æ•°,对应回调 fSCADAAlarmAttachInfoCallBack public Pointer dwUser; // 用户定义å‚æ•° public NET_IN_SCADA_ALARM_ATTACH_INFO() { this.dwSize = this.size(); } } // CLIENT_SCADAAlarmAttachInfo()接å£è¾“出å‚æ•° public static class NET_OUT_SCADA_ALARM_ATTACH_INFO extends SdkStructure { public int dwSize; public NET_OUT_SCADA_ALARM_ATTACH_INFO() { this.dwSize = this.size(); } } // CLIENT_SyncParkingInfo 接å£è¾“å…¥å‚æ•° public static class NET_IN_SYNC_PARKING_INFO extends SdkStructure { public int dwSize; public int nChannel; // 通é“å· public byte[] szParkingNum = new byte[32]; // 车ä½ç¼–å· public int dwPresetNum; // é¢„ç½®ç‚¹ç¼–å· public int bHaveCar; // 车ä½æ˜¯å¦æœ‰è½¦ public int bParkingFault; // 车ä½æ˜¯å¦æœ‰æ•…éšœ public int nSnapTimes; // è¡¥æ‹æ¬¡æ•°ï¼ˆå–值范围:0-5) public int nSnapIntervel; // è¡¥æ‹é—´éš”(å–值范围:3-10) public NET_IN_SYNC_PARKING_INFO() { this.dwSize = this.size(); } } // CLIENT_SyncParkingInfo 接å£è¾“出å‚æ•° public static class NET_OUT_SYNC_PARKING_INFO extends SdkStructure { public int dwSize; public NET_OUT_SYNC_PARKING_INFO() { this.dwSize = this.size(); } } // 监测点ä½æŠ¥è¦ä¿¡æ¯åˆ—表 public static class NET_SCADA_NOTIFY_POINT_ALARM_INFO_LIST extends SdkStructure { public int dwSize; public int nList; // 监测点ä½æŠ¥è¦ä¿¡æ¯ä¸ªæ•° public NET_SCADA_NOTIFY_POINT_ALARM_INFO[] stuList = (NET_SCADA_NOTIFY_POINT_ALARM_INFO[])new NET_SCADA_NOTIFY_POINT_ALARM_INFO().toArray(MAX_SCADA_POINT_LIST_ALARM_INFO_NUM); // 监测点ä½æŠ¥è¦ä¿¡æ¯ public NET_SCADA_NOTIFY_POINT_ALARM_INFO_EX[] stuListEx = (NET_SCADA_NOTIFY_POINT_ALARM_INFO_EX[])new NET_SCADA_NOTIFY_POINT_ALARM_INFO_EX().toArray(256);// 监测点ä½æŠ¥è¦ä¿¡æ¯ public NET_SCADA_NOTIFY_POINT_ALARM_INFO_LIST() { this.dwSize = this.size(); } } // 监测点ä½æŠ¥è¦ä¿¡æ¯ public static class NET_SCADA_NOTIFY_POINT_ALARM_INFO extends SdkStructure { public int dwSize; public byte[] szDevID = new byte[NET_COMMON_STRING_16]; // 设备ID public byte[] szPointID = new byte[NET_COMMON_STRING_128]; // 点ä½ID public int bAlarmFlag; // 报è¦æ ‡å¿—, 1-true 0-false public NET_TIME stuAlarmTime; // 报è¦æ—¶é—´ public int nAlarmLevel; // 报è¦çº§åˆ«ï¼ˆ0~6) public int nSerialNo; // 报è¦ç¼–å·,åŒä¸€ä¸ªå‘Šè¦çš„开始和结æŸçš„ç¼–å·æ˜¯ç›¸åŒçš„。 public byte[] szAlarmDesc = new byte[NET_COMMON_STRING_128]; // 报è¦æè¿° public byte[] szSignalName = new byte[64]; // 点ä½å称 public NET_SCADA_NOTIFY_POINT_ALARM_INFO() { this.dwSize = this.size(); } } // ä¿¡æ¯é‡‡é›†(对应 CTRLTYPE_CTRL_CAPTURE_FINGER_PRINT 命令) public static class NET_CTRL_CAPTURE_FINGER_PRINT extends SdkStructure { public int dwSize; public int nChannelID; // é—¨ç¦åºå·(从开始) public byte[] szReaderID = new byte[NET_COMMON_STRING_32]; // 读å¡å™¨ID public byte[] szUserID = new byte[12]; // 用户ID(智能楼宇需求,å¯é€‰ï¼‰ public NET_CTRL_CAPTURE_FINGER_PRINT() { this.dwSize = this.size(); } } // é—¨ç¦çŠ¶æ€äº‹ä»¶ public static class ALARM_ACCESS_CTL_STATUS_INFO extends SdkStructure { public int dwSize; public int nDoor; // 门通é“å· public NET_TIME stuTime; // 事件å‘生的时间 public int emStatus; // é—¨ç¦çŠ¶æ€, 对应 NET_ACCESS_CTL_STATUS_TYPE public byte[] szSerialNumber = new byte[256]; //æ— çº¿è®¾å¤‡åºåˆ—å·(智能é”) public boolean bRealUTC; // RealUTC 是å¦æœ‰æ•ˆï¼ŒbRealUTC 为 TRUE 时,用 RealUTC,å¦åˆ™ç”¨ // stuTime å—段 public NET_TIME_EX RealUTC; // 事件å‘ç”Ÿçš„æ—¶é—´ï¼ˆæ ‡å‡†UTC) public ALARM_ACCESS_CTL_STATUS_INFO() { this.dwSize = this.size(); } } //事件类型 EVENT_IVS_SNAPMANUAL(SnapManual事件)对应数æ®å—æè¿°ä¿¡æ¯ public static class DEV_EVENT_SNAPMANUAL 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_EVENT_FILE_INFO stuFileInfo; // äº‹ä»¶å¯¹åº”æ–‡ä»¶ä¿¡æ¯ public byte byImageIndex; // 图片的åºå·, åŒä¸€æ—¶é—´å†…(精确到秒)å¯èƒ½æœ‰å¤šå¼ 图片, 从0开始 public int dwSnapFlagMask; // æŠ“å›¾æ ‡å¿—(按ä½),å…·ä½“è§ NET_RESERVED_COMMON public byte[] bReserved = new byte[1024]; // ä¿ç•™å—节,留待扩展. } // å³æ—¶æŠ“图(åˆå手动抓图)å…¥å‚, 对应命令 CTRLTYPE_CTRL_SNAP_MNG_SNAP_SHOT public static class NET_IN_SNAP_MNG_SHOT extends SdkStructure { public int dwSize; // è¯¥ç»“æž„ä½“å¤§å° public int nChannel; // 通é“å· public int nTime; // è¿žæ‹æ¬¡æ•°, 0表示åœæ¢æŠ“æ‹,æ£æ•°è¡¨ç¤ºè¿žç»æŠ“æ‹çš„å¼ æ•° public NET_IN_SNAP_MNG_SHOT() { this.dwSize = this.size(); } } // å³æ—¶æŠ“图(åˆå手动抓图)出å‚, 对应命令 CTRLTYPE_CTRL_SNAP_MNG_SNAP_SHOT public static class NET_OUT_SNAP_MNG_SHOT extends SdkStructure { public int dwSize; // è¯¥ç»“æž„ä½“å¤§å° public NET_OUT_SNAP_MNG_SHOT() { this.dwSize = this.size(); } } // 获å–æ‘„åƒæœºçŠ¶æ€, CLIENT_QueryDevInfo æŽ¥å£ NET_QUERY_GET_CAMERA_STATE å‘½ä»¤å…¥å‚ public static class NET_IN_GET_CAMERA_STATEINFO extends SdkStructure { public int dwSize; public int bGetAllFlag; // 是å¦æŸ¥è¯¢æ‰€æœ‰æ‘„åƒæœºçŠ¶æ€,若该æˆå‘˜ä¸º TRUE,则 nChannels æˆå‘˜æ— 需设置, 1-true; 0-false public int nValidNum; // 该æˆå‘˜,bGetAllFlag 为 FALSE时有效,表示 nChannels æˆå‘˜æœ‰æ•ˆä¸ªæ•° public int[] nChannels = new int[NET_MAX_CAMERA_CHANNEL_NUM]; // 该æˆå‘˜,bGetAllFlag 为 FALSE时有效,将需è¦æŸ¥è¯¢çš„通é“å·ä¾æ¬¡å¡«å…¥ public NET_IN_GET_CAMERA_STATEINFO() { this.dwSize = this.size(); } } // 获å–æ‘„åƒæœºçŠ¶æ€, CLIENT_QueryDevInfo æŽ¥å£ NET_QUERY_GET_CAMERA_STATE å‘½ä»¤å‡ºå‚ public static class NET_OUT_GET_CAMERA_STATEINFO extends SdkStructure { public int dwSize; public int nValidNum; // 查询到的摄åƒæœºé€šé“状æ€æœ‰æ•ˆä¸ªæ•°,ç”±sdk返回 public int nMaxNum; // pCameraStateInfo 数组最大个数,由用户填写 public Pointer pCameraStateInfo; // æ‘„åƒæœºé€šé“ä¿¡æ¯æ•°ç»„,由用户分é…, 对应 NET_CAMERA_STATE_INFO[] public NET_OUT_GET_CAMERA_STATEINFO() { this.dwSize = this.size(); } } public static class NET_CAMERA_STATE_INFO extends SdkStructure { public int nChannel; // æ‘„åƒæœºé€šé“å·, -1表示通é“å·æ— 效 public int emConnectionState; // 连接状æ€, å‚考 EM_CAMERA_STATE_TYPE public byte[] szReserved = new byte[1024]; // ä¿ç•™å—节 } public static class EM_CAMERA_STATE_TYPE extends SdkStructure { public static final int EM_CAMERA_STATE_TYPE_UNKNOWN = 0; // 未知 public static final int EM_CAMERA_STATE_TYPE_CONNECTING = 1; // æ£åœ¨è¿žæŽ¥ public static final int EM_CAMERA_STATE_TYPE_CONNECTED = 2; // 已连接 public static final int EM_CAMERA_STATE_TYPE_UNCONNECT = 3; // 未连接 public static final int EM_CAMERA_STATE_TYPE_EMPTY = 4; // 通é“未é…ç½®,æ— ä¿¡æ¯ public static final int EM_CAMERA_STATE_TYPE_DISABLE = 5; // 通é“有é…ç½®,但被ç¦ç”¨ } // CLIENT_StartFindFaceInfo 输入å‚æ•° public static class NET_IN_FACEINFO_START_FIND extends SdkStructure { public int dwSize; public byte[] szUserID = new byte[NET_MAX_USERID_LEN]; // 用户ID public NET_IN_FACEINFO_START_FIND() { this.dwSize = this.size(); } } // CLIENT_StartFindFaceInfo 输出å‚æ•° public static class NET_OUT_FACEINFO_START_FIND extends SdkStructure { public int dwSize; public int nTotalCount; // 符åˆæŸ¥è¯¢æ¡ä»¶çš„总数 public NET_OUT_FACEINFO_START_FIND() { this.dwSize = this.size(); } } // CLIENT_DoFindFaceInfo 输入å‚æ•° public static class NET_IN_FACEINFO_DO_FIND extends SdkStructure { public int dwSize; public int nStartNo; // 起始åºå· public int nCount; // 本次查询的æ¡æ•° public NET_IN_FACEINFO_DO_FIND() { this.dwSize = this.size(); } } // CLIENT_DoFindFaceInfo 输出å‚æ•° public static class NET_OUT_FACEINFO_DO_FIND extends SdkStructure { public int dwSize; public int nRetNum; // 本次查询到的个数 public Pointer pstuInfo; // 查询结果, 用户分é…内å˜,大å°ä¸ºsizeof(NET_FACEINFO)*nMaxNum, 对应 NET_FACEINFO[] public int nMaxNum; // 用户分é…内å˜çš„个数 public byte[] byReserved = new byte[4]; public NET_OUT_FACEINFO_DO_FIND() { this.dwSize = this.size(); } } // äººè„¸ä¿¡æ¯ public static class NET_FACEINFO extends SdkStructure { public byte[] szUserID = new byte[NET_MAX_USERID_LEN]; // 用户ID public int nMD5; // 有效的MD5ç¼–ç æ•°é‡ public MD5[] szMD5Arr = (MD5[])new MD5().toArray(5); // 图片对应的32å—节MD5ç¼–ç åŠ å¯† public byte[] byReserved = new byte[512]; } // 图片对应的32å—节MD5ç¼–ç åŠ å¯† public static class MD5 extends SdkStructure { public byte[] szMD5 = new byte[NET_COMMON_STRING_64]; } // åˆå§‹åŒ–设备账户输入结构体 public static class NET_IN_INIT_DEVICE_ACCOUNT extends SdkStructure { public int dwSize; // 结构体大å°:åˆå§‹åŒ–结构体时赋值 public byte[] szMac = new byte[NET_MACADDR_LEN]; // 设备macåœ°å€ public byte[] szUserName = new byte[MAX_USER_NAME_LEN]; // 用户å public byte[] szPwd = new byte[MAX_PWD_LEN]; // 设备密ç public byte[] szCellPhone = new byte[MAX_CELL_PHONE_NUMBER_LEN]; // é¢„ç•™æ‰‹æœºå· public byte[] szMail = new byte[MAX_MAIL_LEN]; // 预留邮箱 public byte byInitStatus; // æ¤å—段已ç»åºŸå¼ƒ public byte byPwdResetWay; // 设备支æŒçš„密ç é‡ç½®æ–¹å¼ï¼šæœç´¢è®¾å¤‡æŽ¥å£(CLIENT_SearchDevicesã€CLIENT_StartSearchDevices的回调函数ã€CLIENT_SearchDevicesByIPs)返回å—段byPwdResetWay的值 // 该值的具体å«ä¹‰è§ DEVICE_NET_INFO_EX 结构体,需è¦ä¸Žè®¾å¤‡æœç´¢æŽ¥å£è¿”回的 byPwdResetWay 值ä¿æŒä¸€è‡´ // bit0 : 1-支æŒé¢„留手机å·ï¼Œæ¤æ—¶éœ€è¦åœ¨szCellPhone数组ä¸å¡«å…¥é¢„留手机å·(如果需è¦è®¾ç½®é¢„留手机) ; // bit1 : 1-支æŒé¢„留邮箱,æ¤æ—¶éœ€è¦åœ¨szMail数组ä¸å¡«å…¥é¢„留邮箱(如果需è¦è®¾ç½®é¢„留邮箱) public byte[] byReserved = new byte[2]; // ä¿ç•™å—段 public NET_IN_INIT_DEVICE_ACCOUNT() { this.dwSize = this.size(); } } // åˆå§‹åŒ–设备账户输出结构体 public static class NET_OUT_INIT_DEVICE_ACCOUNT extends SdkStructure { public int dwSize; // 结构体大å°:åˆå§‹åŒ–结构体时赋值 public NET_OUT_INIT_DEVICE_ACCOUNT() { this.dwSize = this.size(); } } //用户æƒé™ public static class NET_ATTENDANCE_AUTHORITY extends SdkStructure { public static final int NET_ATTENDANCE_AUTHORITY_UNKNOWN = -1; public static final int NET_ATTENDANCE_AUTHORITY_CUSTOMER = 0; //普通用户 public static final int NET_ATTENDANCE_AUTHORITY_ADMINISTRATORS = 1; //管ç†å‘˜ } //è€ƒå‹¤ç”¨æˆ·ä¿¡æ¯ public static class NET_ATTENDANCE_USERINFO extends SdkStructure { public byte[] szUserID = new byte[MAX_COMMON_STRING_32]; //用户编å·ID public byte[] szUserName = new byte[MAX_ATTENDANCE_USERNAME_LEN]; //人员姓å public byte[] szCardNo = new byte[MAX_COMMON_STRING_32]; // å¡å· public int emAuthority; // 用户æƒé™ public byte[] szPassword = new byte[MAX_COMMON_STRING_32]; // 密ç public int nPhotoLength; // 照片数æ®é•¿åº¦ public byte[] szClassNumber = new byte[MAX_CLASS_NUMBER_LEN]; // ç级 public byte[] szPhoneNumber = new byte[MAX_PHONENUMBER_LEN]; // ç”µè¯ public byte[] byReserved = new byte[208]; // ä¿ç•™å—节 } // CLIENT_Attendance_AddUser å…¥å‚ public static class NET_IN_ATTENDANCE_ADDUSER extends SdkStructure { public int dwSize; public NET_ATTENDANCE_USERINFO stuUserInfo = new NET_ATTENDANCE_USERINFO(); // ç”¨æˆ·ä¿¡æ¯ public Pointer pbyPhotoData; // ç…§ç‰‡æ•°æ® public NET_IN_ATTENDANCE_ADDUSER() { this.dwSize = this.size(); } } // CLIENT_Attendance_AddUser å‡ºå‚ public static class NET_OUT_ATTENDANCE_ADDUSER extends SdkStructure { public int dwSize; public NET_OUT_ATTENDANCE_ADDUSER() { this.dwSize = this.size(); } } // CLIENT_Attendance_DelUser å…¥å‚ public static class NET_IN_ATTENDANCE_DELUSER extends SdkStructure { public int dwSize; public byte[] szUserID = new byte[MAX_COMMON_STRING_32]; // 用户ID public NET_IN_ATTENDANCE_DELUSER() { this.dwSize = this.size(); } } // CLIENT_Attendance_DelUser å‡ºå‚ public static class NET_OUT_ATTENDANCE_DELUSER extends SdkStructure { public int dwSize; public NET_OUT_ATTENDANCE_DELUSER() { this.dwSize = this.size(); } } // CLIENT_Attendance_ModifyUser å…¥å‚ public static class NET_IN_ATTENDANCE_ModifyUSER extends SdkStructure { public int dwSize; public NET_ATTENDANCE_USERINFO stuUserInfo = new NET_ATTENDANCE_USERINFO(); // ç”¨æˆ·ä¿¡æ¯ public Pointer pbyPhotoData; // ç…§ç‰‡æ•°æ® public NET_IN_ATTENDANCE_ModifyUSER() { this.dwSize = this.size(); } } // CLIENT_Attendance_ModifyUser å‡ºå‚ public static class NET_OUT_ATTENDANCE_ModifyUSER extends SdkStructure { public int dwSize; public NET_OUT_ATTENDANCE_ModifyUSER() { this.dwSize = this.size(); } } // CLIENT_Attendance_GetUser å…¥å‚ public static class NET_IN_ATTENDANCE_GetUSER extends SdkStructure { public int dwSize; public byte[] szUserID = new byte[MAX_COMMON_STRING_32]; // 用户ID public NET_IN_ATTENDANCE_GetUSER() { this.dwSize = this.size(); } } // CLIENT_Attendance_GetUser å‡ºå‚ public static class NET_OUT_ATTENDANCE_GetUSER extends SdkStructure { public int dwSize; public NET_ATTENDANCE_USERINFO stuUserInfo = new NET_ATTENDANCE_USERINFO(); // ç”¨æˆ·ä¿¡æ¯ public int nMaxLength; // 最大å˜æ”¾ç…§ç‰‡æ•°æ®çš„长度 public Pointer pbyPhotoData; // ç…§ç‰‡æ•°æ® public NET_OUT_ATTENDANCE_GetUSER() { this.dwSize = this.size(); } } //CLIENT_Attendance_InsertFingerByUserID å…¥å‚ public static class NET_IN_FINGERPRINT_INSERT_BY_USERID extends SdkStructure { public int dwSize; public byte[] szUserID = new byte[NET_COMMON_STRING_32]; // 用户ID public int nSinglePacketLen; // å•ä¸ªä¿¡æ¯æ•°æ®åŒ…长度 public int nPacketCount; // ä¿¡æ¯æ•°æ®åŒ…的个数 public Pointer szFingerPrintInfo; // ä¿¡æ¯æ•°æ®(æ•°æ®æ€»é•¿åº¦å³nSinglePacketLen*nPacketCount) public NET_IN_FINGERPRINT_INSERT_BY_USERID() { this.dwSize = this.size(); } } //CLIENT_Attendance_InsertFingerByUserID å‡ºå‚ public static class NET_OUT_FINGERPRINT_INSERT_BY_USERID extends SdkStructure { public int dwSize; public int[] nFingerPrintID = new int[NET_MAX_FINGER_PRINT]; //ä¿¡æ¯ID数组 public int nReturnedCount; //数组ä¸å®žé™…返回的个数 public int nFailedCode; //错误ç 0:æˆåŠŸ; 1:其他错误; 2:超过本用户下信æ¯èƒ½åŠ›çš„é™åˆ¶. public NET_OUT_FINGERPRINT_INSERT_BY_USERID() { this.dwSize = this.size(); } } //CLIENT_Attendance_RemoveFingerByUserID å…¥å‚(removeByUserID) public static class NET_CTRL_IN_FINGERPRINT_REMOVE_BY_USERID extends SdkStructure { public int dwSize; public byte[] szUserID = new byte[NET_COMMON_STRING_32]; // 用户ID public NET_CTRL_IN_FINGERPRINT_REMOVE_BY_USERID() { this.dwSize = this.size(); } } //CLIENT_Attendance_RemoveFingerByUserID å‡ºå‚ public static class NET_CTRL_OUT_FINGERPRINT_REMOVE_BY_USERID extends SdkStructure { public int dwSize; public NET_CTRL_OUT_FINGERPRINT_REMOVE_BY_USERID() { this.dwSize = this.size(); } } //CLIENT_Attendance_RemoveFingerRecord å…¥å‚(remove) public static class NET_CTRL_IN_FINGERPRINT_REMOVE extends SdkStructure { public int dwSize; public int nFingerPrintID; // ä¿¡æ¯ç¼–å· public NET_CTRL_IN_FINGERPRINT_REMOVE() { this.dwSize = this.size(); } } //CLIENT_Attendance_RemoveFingerRecord å‡ºå‚ public static class NET_CTRL_OUT_FINGERPRINT_REMOVE extends SdkStructure { public int dwSize; public NET_CTRL_OUT_FINGERPRINT_REMOVE() { this.dwSize = this.size(); } } //CLIENT_Attendance_GetFingerRecord å…¥å‚ public static class NET_CTRL_IN_FINGERPRINT_GET extends SdkStructure { public int dwSize; public int nFingerPrintID; // ä¿¡æ¯ç¼–å· public NET_CTRL_IN_FINGERPRINT_GET() { this.dwSize = this.size(); } } //CLIENT_Attendance_GetFingerRecord å‡ºå‚ public static class NET_CTRL_OUT_FINGERPRINT_GET extends SdkStructure { public int dwSize; public byte[] szUserID = new byte[NET_COMMON_STRING_32]; // 所属用户的用户ID public byte[] szFingerPrintName = new byte[NET_COMMON_STRING_32]; // ä¿¡æ¯å称 public int nFingerPrintID; // ä¿¡æ¯ID public int nRetLength; // 实际返回的二进制信æ¯æ•°æ®é•¿åº¦ public int nMaxFingerDataLength; // 二进制信æ¯æ•°æ®çš„最大长度 public Pointer szFingerPrintInfo; // ä¿¡æ¯æ•°æ® public NET_CTRL_OUT_FINGERPRINT_GET() { this.dwSize = this.size(); } } //CLIENT_Attendance_FindUser å…¥å‚ public static class NET_IN_ATTENDANCE_FINDUSER extends SdkStructure { public int dwSize; public int nOffset; // 查询å移 public int nPagedQueryCount; // 查询个数,分页查询,最多ä¸è¶…过100 public NET_IN_ATTENDANCE_FINDUSER() { this.dwSize = this.size(); } }; //CLIENT_Attendance_FindUser å‡ºå‚ public static class NET_OUT_ATTENDANCE_FINDUSER extends SdkStructure { public int dwSize; public int nTotalUser; // 总的用户数 public int nMaxUserCount; // 用户信æ¯æœ€å¤§ç¼“å˜æ•° public Pointer stuUserInfo; // 用户信æ¯ï¼Œå†…å˜ç”±ç”¨æˆ·ç”³è¯·ï¼Œå¤§å°ä¸º(sizeof(NET_ATTENDANCE_USERINFO)*nMaxUserCount) public int nRetUserCount; // 实际返回的用户个数 public int nMaxPhotoDataLength; // 照片数æ®æœ€å¤§é•¿åº¦ public int nRetPhoteLength; // 实际返回的照片数æ®é•¿åº¦ public Pointer pbyPhotoData; // ç…§ç‰‡æ•°æ® public NET_OUT_ATTENDANCE_FINDUSER() { this.dwSize = this.size(); } } //CLIENT_Attendance_GetFingerByUserID å…¥å‚ public static class NET_IN_FINGERPRINT_GETBYUSER extends SdkStructure { public int dwSize; public byte[] szUserID = new byte[NET_COMMON_STRING_32]; // 用户ID public NET_IN_FINGERPRINT_GETBYUSER() { this.dwSize = this.size(); } } //CLIENT_Attendance_GetFingerByUserID å‡ºå‚ public static class NET_OUT_FINGERPRINT_GETBYUSER extends SdkStructure { public int dwSize; public int[] nFingerPrintIDs = new int[NET_MAX_FINGER_PRINT];// ä¿¡æ¯ID数组 public int nRetFingerPrintCount; // 实际返回的信æ¯ID个数,å³nFingerPrintIDs数组ä¸å®žé™…有效个数 public int nSinglePacketLength; // å•ä¸ªä¿¡æ¯æ•°æ®åŒ…长度 public int nMaxFingerDataLength; // 接å—ä¿¡æ¯æ•°æ®çš„缓å˜çš„最大长度 public int nRetFingerDataLength; // 实际返回的总的信æ¯æ•°æ®åŒ…的长度 public Pointer pbyFingerData; // ä¿¡æ¯æ•°æ® public NET_OUT_FINGERPRINT_GETBYUSER() { this.dwSize = this.size(); } } // 获å–考勤机在线状æ€å…¥å‚ public static class NET_IN_ATTENDANCE_GETDEVSTATE extends SdkStructure { public int dwSize; public NET_IN_ATTENDANCE_GETDEVSTATE() { this.dwSize = this.size(); } } // 获å–考勤机在线状æ€å‡ºå‚ public static class NET_OUT_ATTENDANCE_GETDEVSTATE extends SdkStructure { public int dwSize; public int nState; // 0:离线;1:在线;其他:未知;è€ƒå‹¤æœºçŠ¶æ€ public NET_OUT_ATTENDANCE_GETDEVSTATE() { this.dwSize = this.size(); } } // 输入通é“基本é…ç½® public static class CFG_VIDEO_IN_INFO extends SdkStructure { public byte[] szDevType = new byte[MAX_NAME_LEN]; // 通é“类型(指通é“连接的设备类型) public byte[] szDevID = new byte[MAX_NAME_LEN]; // æ‘„åƒå¤´å”¯ä¸€ç¼–å· public byte[] szChnName = new byte[MAX_NAME_LEN]; // 通é“å称 public byte[] szManufacturer = new byte[MAX_NAME_LEN]; // 厂商 public byte[] szModel = new byte[MAX_NAME_LEN]; // è®¾å¤‡åž‹å· public byte[] szAddress = new byte[MAX_ADDRESS_LEN]; // å®‰è£…åœ°å€ public byte[] szCivilCode = new byte[MAX_NAME_LEN]; // 行政区域 public byte[] szOwner = new byte[MAX_NAME_LEN]; // 设备归属 public int bParental; // 是å¦æœ‰å设备 public int bEnable; // 通é“使能 public int nRegisterWay; // æ³¨å†Œæ–¹å¼ // 0-符åˆsip3261æ ‡å‡†çš„è®¤è¯æ³¨å†Œæ¨¡å¼ // 1-基于å£ä»¤çš„åŒå‘认è¯æ³¨å†Œæ¨¡å¼ // 2-基于数å—è¯ä¹¦çš„åŒå‘认è¯æ³¨å†Œæ¨¡å¼ public int bSecrecy; // 属性, FALSEä¸æ¶‰å¯†, TRUE涉密 public byte[] szUpperDevID = new byte[MAX_NAME_LEN]; // 上级连接设备设备ID public int nUpperDevOutChn; // 上级连接设备输出通é“å· public byte[] szRemoteName = new byte[MAX_NAME_LEN]; // 远程通é“å称 public int emSignalType; // 输入信å·ç±»åž‹ , 详è§EM_CFG_VIDEO_SIGNAL_TYPE public int emLineType; // 通é“接入线缆的类型, 详è§EM_CFG_VIDEO_LINE_TYPE } // 输入信å·ç±»åž‹ public static class EM_CFG_VIDEO_SIGNAL_TYPE extends SdkStructure { public static final int EM_CFG_VIDEO_SIGNAL_UNKNOWN = 0; public static final int EM_CFG_VIDEO_SIGNAL_CVBS = 1; public static final int EM_CFG_VIDEO_SIGNAL_SDI = 2; public static final int EM_CFG_VIDEO_SIGNAL_VGA = 3; public static final int EM_CFG_VIDEO_SIGNAL_DVI = 4; public static final int EM_CFG_VIDEO_SIGNAL_HDMI = 5; public static final int EM_CFG_VIDEO_SIGNAL_YPBPR = 6; public static final int EM_CFG_VIDEO_SIGNAL_SFP = 7; public static final int EM_CFG_VIDEO_SIGNAL_HDCVI = 8; public static final int EM_CFG_VIDEO_SIGNAL_DUALLINK = 9; public static final int EM_CFG_VIDEO_SIGNAL_AHD = 10; public static final int EM_CFG_VIDEO_SIGNAL_AUTO = 11; public static final int EM_CFG_VIDEO_SIGNAL_TVI = 12; } // 通é“接入线缆的类型 public static class EM_CFG_VIDEO_LINE_TYPE extends SdkStructure { public static final int EM_CFG_VIDEO_LINE_TYPE_UNKNOWN = 0; // 未知 public static final int EM_CFG_VIDEO_LINE_TYPE_COAXIAL = 1; // åŒè½´çº¿ public static final int EM_CFG_VIDEO_LINE_TYPE_TP10 = 2; // 10欧姆阻抗åŒç»žçº¿ public static final int EM_CFG_VIDEO_LINE_TYPE_TP17 = 3; // 17欧姆阻抗åŒç»žçº¿ public static final int EM_CFG_VIDEO_LINE_TYPE_TP25 = 4; // 25欧姆阻抗åŒç»žçº¿ public static final int EM_CFG_VIDEO_LINE_TYPE_TP35 = 5; // 35欧姆阻抗åŒç»žçº¿ } // 通é“å称é…ç½® public static class AV_CFG_ChannelName extends SdkStructure { public int nStructSize; public int nSerial; // æ‘„åƒå¤´å”¯ä¸€ç¼–å· public byte[] szName = new byte[CFG_MAX_CHANNEL_NAME_LEN];// 通é“å public AV_CFG_ChannelName() { this.nStructSize = this.size(); } } // 设备通过Wifi模å—扫æå‘¨å›´æ— çº¿è®¾å¤‡é…ç½® public static class CFG_WIFI_SEARCH_INFO extends SdkStructure { public int bEnable; // 是å¦ç”Ÿæ•ˆ, boolean类型,为1或者0 public int nPeriod; // 事件上报周期,å•ä½ç§’,该值需è¦å¤§äºŽç‰äºŽ6 public int bOptimizNotification; // boolean类型,为1或者0,默认值是0,置0时,æœç´¢åˆ°çš„设备状æ€æ¯æ¬¡å‡å…¨éƒ¨ä¸ŠæŠ¥,ç½®1时,æœç´¢åˆ°çš„设备状æ€åœ¨æœªè¶…过PDä¸OptimizationPeriodå–值周期时,åªä¸ŠæŠ¥æ–°å¢ž/离开的设备状æ€ï¼›è¶…过PDä¸OptimizationPeriodå–值周期时,当次需上报æœç´¢åˆ°çš„å…¨éƒ¨è®¾å¤‡çŠ¶æ€ } public static class EM_CFG_CARD_STATE extends SdkStructure { public static final int EM_CFG_CARD_STATE_UNKNOWN = -1; // 未知 public static final int EM_CFG_CARD_STATE_SWIPE = 0; // é—¨ç¦åˆ·å¡ public static final int EM_CFG_CARD_STATE_COLLECTION = 1; // é—¨ç¦é‡‡é›†å¡ } // é—¨ç¦äº‹ä»¶é…ç½® public static class CFG_ACCESS_EVENT_INFO extends SdkStructure { public byte[] szChannelName = new byte[MAX_NAME_LEN]; // é—¨ç¦é€šé“å称 public int emState; // é—¨ç¦çŠ¶æ€, å‚考 CFG_ACCESS_STATE public int emMode; // é—¨ç¦æ¨¡å¼, å‚考 CFG_ACCESS_MODE public int nEnableMode; // é—¨ç¦ä½¿èƒ½ç”µå¹³å€¼, 0:低电平有效(æ–电å¯åŠ¨); 1:高电平有效(通电å¯åŠ¨); public int bSnapshotEnable; // 事件è”动抓图使能, 1-true, 0-false // 能力 public byte abDoorOpenMethod; public byte abUnlockHoldInterval; public byte abCloseTimeout; public byte abOpenAlwaysTimeIndex; public byte abCloseAlwaysTimeIndex; public byte abHolidayTimeIndex; public byte abBreakInAlarmEnable; public byte abRepeatEnterAlarmEnable; public byte abDoorNotClosedAlarmEnable; public byte abDuressAlarmEnable; public byte abDoorTimeSection; public byte abSensorEnable; public byte abFirstEnterEnable; public byte abRemoteCheck; public byte abRemoteDetail; public byte abHandicapTimeOut; public byte abCheckCloseSensor; public byte abAutoRemoteCheck; public byte[] reverse = new byte[2]; public int emDoorOpenMethod; // 开门方å¼, å‚考 CFG_DOOR_OPEN_METHOD public int nUnlockHoldInterval; // é—¨é”ä¿æŒæ—¶é—´(自动关门时间),å•ä½æ¯«ç§’,[250, 20000] public int nCloseTimeout; // 关门超时时间, 超过阈值未关会触å‘报è¦ï¼Œå•ä½ç§’,[0,9999];0表示ä¸æ£€æµ‹è¶…æ—¶ public int nOpenAlwaysTimeIndex; // 常开时间段, 值为CFG_ACCESS_TIMESCHEDULE_INFOé…ç½®çš„æ•°ç»„ä¸‹æ ‡ public int nCloseAlwaysTimeIndex; // 常关时间段, 值为CFG_ACCESS_TIMESCHEDULE_INFOé…ç½®çš„æ•°ç»„ä¸‹æ ‡ public int nHolidayTimeRecoNo; // å‡æœŸå†…时间段, 值为å‡æ—¥è®°å½•é›†çš„记录编å·ï¼Œå¯¹åº”NET_RECORDSET_HOLIDAYçš„nRecNo public int bBreakInAlarmEnable; // 闯入报è¦ä½¿èƒ½, 1-true, 0-false public int bRepeatEnterAlarm; // å潜报è¦ä½¿èƒ½, 1-true, 0-false public int bDoorNotClosedAlarmEnable; // 门未关报è¦ä½¿èƒ½, 1-true, 0-false public int bDuressAlarmEnable; // èƒè¿«æŠ¥è¦ä½¿èƒ½, 1-true, 0-false public CFG_DOOROPEN_TIMESECTION_WEEK_DAY[] stuDoorTimeSectionArr = (CFG_DOOROPEN_TIMESECTION_WEEK_DAY[])new CFG_DOOROPEN_TIMESECTION_WEEK_DAY().toArray(WEEK_DAY_NUM);// åˆ†æ—¶æ®µå¼€é—¨ä¿¡æ¯ public int bSensorEnable; // é—¨ç£ä½¿èƒ½, 1-true, 0-false public CFG_ACCESS_FIRSTENTER_INFO stuFirstEnterInfo; // 首å¡å¼€é—¨ä¿¡æ¯ public int bRemoteCheck; // 1-true, 0-false, 是å¦éœ€è¦å¹³å°éªŒè¯, TRUE表示æƒé™é€šè¿‡åŽå¿…é¡»è¦å¹³å°éªŒè¯åŽæ‰èƒ½å¼€é—¨, FALSE表示æƒé™éªŒè¯é€šè¿‡åŽå¯ç«‹å³å¼€é—¨ public CFG_REMOTE_DETAIL_INFO stuRemoteDetail; // 与bRemoteChecké…åˆä½¿ç”¨, 如果远端验è¯æœªåº”ç”, 设定的设备超时时间到åŽ, 是æ£å¸¸å¼€é—¨è¿˜æ˜¯ä¸å¼€é—¨ public CFG_HANDICAP_TIMEOUT_INFO stuHandicapTimeOut; // 针对残障人士的开门å‚æ•° public int bCloseCheckSensor; // é—é”å‰æ˜¯å¦æ£€æµ‹é—¨ç£, 1-true, 0-false // true:则当开é”ä¿æŒæ—¶é—´è®¡æ—¶ç»“æŸåŽï¼Œåªæœ‰ç›‘测到有效门ç£ä¿¡å·æ—¶ï¼Œæ‰å¯ä»¥æ¢å¤å…³é—é”的动作。 // å之,如果开é”ä¿æŒæ—¶é—´å·²åˆ°ï¼Œä½†æœªæ£€æµ‹åˆ°æœ‰æ•ˆé—¨ç£ä¿¡å·ï¼Œåˆ™ä¸€ç›´ä¿æŒå¼€é”状æ€ï¼› // false(默认):则直接按照设定的开é”ä¿æŒæ—¶é—´è¿›è¡Œå¼€é”ä¿æŒå’Œæ¢å¤å…³é—的动作。 public CFG_AUTO_REMOTE_CHECK_INFO stuAutoRemoteCheck; // 开门远程验è¯, 如果开å¯, 在该时间段内, 设备通过多人组åˆå¼€é—¨äº‹ä»¶é€šçŸ¥åˆ°å¹³å°ç¡®è®¤æ˜¯å¦å¯ä»¥å¼€é—¨ public int bLocalControlEnable; // 本地控制å¯ç”¨, 1-TRUE å¯ç”¨, 0-false åœç”¨ public int bRemoteControlEnable; // 远程控制å¯ç”¨, 1-true å¯ç”¨, 0-false åœç”¨ public int nSensorDelay; // ä¼ æ„Ÿå™¨è¾“å‡ºå»¶æ—¶ï¼Œè¶…è¿‡æ¤æ—¶é—´åˆ¤æ–有人, å•ä½ï¼šç§’。 0~10 public int nHumanStatusSensitivity; // 人状æ€å˜åŒ–检测çµæ•åº¦,在æ¤æ—¶é—´å†…,判æ–有人 å•ä½ï¼š 秒。 0~300 public int nDetectSensitivity; // ä¼ æ„Ÿå™¨æœ¬èº«çš„æ£€æµ‹çµæ•åº¦ å•ä½ï¼š%, 0~100 public int bLockTongueEnable; // é”舌使能, 1-true, 0-false public int nABLockRoute; // AB互é”路线与AB互é”çš„index对应;-1ä»£è¡¨æ— æ•ˆ public int nDoorNotClosedReaderAlarmTime; // 门未关超时读å¡å™¨æŠ¥è¦, å•ä½ï¼šç§’ public int bEnable; // 使能项,æ¤é€šé“é…置是å¦å¯ç”¨, 1-true为使能, 0-falseä¸ºå…³é— public byte[] szSN = new byte[CFG_MAX_SN_LEN]; // æ— çº¿è®¾å¤‡åºåˆ—å·,åªèŽ·å–,ä¸èƒ½è®¾ç½® public int nCloseDuration; // é—¨é—åˆæ—¶é—´,å•ä½ï¼šç§’ public int nUnlockReloadInterval; // å¼€é”命令å“应间隔时间,å•ä½:毫秒 public int emAccessProtocol; // é—¨ç¦åè®®, å‚考 CFG_EM_ACCESS_PROTOCOL public int emProtocolType; // å‚考 CFG_EM_SERIAL_PROTOCOL_TYPE, 串å£å议下的具体å议功能,当emAccessProtocol为CFG_EM_ACCESS_PROTOCOL_SERIAL时有效 public CFG_ACCESS_CONTROL_UDP_INFO stuAccessControlUdpInfo; // é—¨ç¦udpå¼€é”ä¿¡æ¯,当emAccessProtocol为CFG_EM_ACCESS_PROTOCOL_REMOTE时有效 public int nEntranceLockChannel; // é—¨ç¦æŽ§åˆ¶å™¨ä¸‹çš„å通é“,当emAccessProtocol为CFG_EM_ACCESS_PROTOCOL_REMOTE时有效 public int bSnapshotUpload; // 使能项,抓图是å¦ä¸Šä¼ , 1-trueä¸ºæŠ“å›¾ä¸Šä¼ , 0-false为抓图ä¸ä¸Šä¼ public int nSnapUploadPos; // æŠ“å›¾ä¸Šä¼ åœ°å€,对应的是NASé…ç½®é¡¹çš„ä¸‹æ ‡ï¼ŒNASé…置为CFG_CMD_NASEX public int bCustomPasswordEnable; // 是å¦å¯ç”¨ä¸ªæ€§åŒ–密ç , 1-true, 0-false public int nRepeatEnterTime; // é‡å¤è¿›å…¥æ—¶é—´,0~180秒,0表示ä¸å¯ç”¨ public int nCardNoConvert; // å¡å·è½¬æ¢ï¼Œ0:ä¸éœ€è¦è½¬æ¢,1:å—节å–å,2:按HIDproè½¬æ¢ public int bUnAuthorizedMaliciousSwipEnable; // 未授æƒæ¶æ„刷å¡äº‹ä»¶ä½¿èƒ½, 1-true, 0-false public int bFakeLockedAlarmEnable; // å‡é”报è¦ä½¿èƒ½, 1-true, 0-false public int emReadCardState; // 当å‰é—¨é‡‡é›†çŠ¶æ€,å‚考EM_CFG_CARD_STATE public int bHelmetEnable; // 是å¦æ£€æµ‹å®‰å…¨å¸½ public int nSpecialDaysOpenAlwaysTime; // é—¨ç¦å‡æ—¥å¸¸å¼€æ—¶é—´æ®µ,值为SpecialDaysSchedule索引 public int nSpecialDaysCloseAlwaysTime; // é—¨ç¦å‡æ—¥å¸¸é—时间段,值为SpecialDaysSchedule索引 public int nSensorType; // é—¨ç£ç±»åž‹, 0: 未知, 1: 常开型门ç£, 2: 常é—åž‹é—¨ç£ public CFG_AUTO_REMOTE_CHECK_INFO_EX stuAutoRemoteCheckEx; // è‡ªåŠ¨è¿œç¨‹å¼€é—¨æ‰©å±•ä¿¡æ¯ public byte[] szResvered = new byte[1024]; // ä¿ç•™å—节 } // åˆ†æ—¶æ®µå¼€é—¨ä¿¡æ¯ public static class CFG_DOOROPEN_TIMESECTION_WEEK_DAY extends SdkStructure { public CFG_DOOROPEN_TIMESECTION_INFO[] stuDoorTimeSection = (CFG_DOOROPEN_TIMESECTION_INFO[])new CFG_DOOROPEN_TIMESECTION_INFO().toArray(MAX_DOOR_TIME_SECTION); } // 分时段开门 public static class CFG_DOOROPEN_TIMESECTION_INFO extends SdkStructure { public CFG_TIME_PERIOD stuTime; // 时间段 public int emDoorOpenMethod; // 开门模å¼, å‚考 CFG_DOOR_OPEN_METHOD } // 首å¡å¼€é—¨ä¿¡æ¯ public static class CFG_ACCESS_FIRSTENTER_INFO extends SdkStructure { public int bEnable; // 在指定的时间,åªæœ‰æ‹¥æœ‰é¦–å¡æƒé™çš„用户验è¯é€šè¿‡åŽï¼Œå…¶ä»–的用户æ‰èƒ½åˆ·å¡(ä¿¡æ¯ç‰)进入,1-true 使能, 0-false å…³é— public int emStatus; // 首å¡æƒé™éªŒè¯é€šè¿‡åŽçš„é—¨ç¦çŠ¶æ€, å‚考 CFG_ACCESS_FIRSTENTER_STATUS public int nTimeIndex; // 需è¦é¦–å¡éªŒè¯çš„时间段, 值为 é…ç½® "AccessTimeSchedule"çš„é—¨ç¦åˆ·å¡æ—¶é—´æ®µçš„ä¸‹æ ‡ } // è¿œç¨‹å¼€é—¨éªŒè¯ public static class CFG_REMOTE_DETAIL_INFO extends SdkStructure { public int nTimeOut; // 超时时间, 0表示永久ç‰å¾…, 其他值表示超时时间(å•ä½ä¸ºç§’) public int bTimeOutDoorStatus; // 超时åŽçš„门状æ€, 1-true:打开, 0-false:å…³é— } // é’ˆå¯¹æ®‹éšœäººå£«çš„å¼€é—¨ä¿¡æ¯ public static class CFG_HANDICAP_TIMEOUT_INFO extends SdkStructure { public int nUnlockHoldInterval; // é—¨é”ä¿æŒæ—¶é—´(自动关门时间),å•ä½æ¯«ç§’,[250, 60000] public int nCloseTimeout; // 关门超时时间, 超过阈值未关会触å‘报è¦ï¼Œå•ä½ç§’,[0,9999];0表示ä¸æ£€æµ‹è¶…æ—¶ } // å¼€é—¨è¿œç¨‹éªŒè¯ public static class CFG_AUTO_REMOTE_CHECK_INFO extends SdkStructure { public int bEnable; // 使能项, 1-true: å¼€å¯, 0-false: å…³é— public int nTimeSechdule; // 对应CFG_CMD_ACCESSTIMESCHEDULEé…置的索引 } // DHé—¨ç¦udpå¼€é”ä¿¡æ¯ public static class CFG_ACCESS_CONTROL_UDP_INFO extends SdkStructure { public byte[] szAddress = new byte[CFG_MAX_ACCESS_CONTROL_ADDRESS_LEN];// åœ°å€ public int nPort; // ç«¯å£ } // é—¨ç¦çŠ¶æ€ public static class CFG_ACCESS_STATE extends SdkStructure { public static final int ACCESS_STATE_NORMAL = 0; // 普通 public static final int ACCESS_STATE_CLOSEALWAYS = 1; // 常关 public static final int ACCESS_STATE_OPENALWAYS = 2; // 常开 // 常开常é—状æ€ä¸‹,Opendoorå¼€é—¨æ— æ•ˆ. public static final int ACCESS_STATE_NOPERSONNC = 3; // æ— äººçŠ¶æ€å¸¸é— public static final int ACCESS_STATE_NOPERSONNO = 4; // æ— äººçŠ¶æ€å¸¸å¼€ } // é—¨ç¦æ¨¡å¼ public static class CFG_ACCESS_MODE extends SdkStructure { public static final int ACCESS_MODE_HANDPROTECTED = 0; // é˜²å¤¹æ¨¡å¼ public static final int ACCESS_MODE_SAFEROOM = 1; // é˜²æŠ¤æˆ¿é—´æ¨¡å¼ public static final int ACCESS_MODE_OTHER = 2; // 其它 } // è‡ªå®šä¹‰å¼€é—¨æ–¹å¼ public static class CFG_DOOR_OPEN_METHOD extends SdkStructure { public static final int CFG_DOOR_OPEN_METHOD_UNKNOWN = 0; public static final int CFG_DOOR_OPEN_METHOD_PWD_ONLY = 1; // åªå…许密ç å¼€é” public static final int CFG_DOOR_OPEN_METHOD_CARD = 2; // åªå…许刷å¡å¼€é” public static final int CFG_DOOR_OPEN_METHOD_PWD_OR_CARD = 3; // 密ç 或刷å¡å¼€é” public static final int CFG_DOOR_OPEN_METHOD_CARD_FIRST = 4; // 先刷å¡åŽå¯†ç å¼€é” public static final int CFG_DOOR_OPEN_METHOD_PWD_FIRST = 5; // 先密ç åŽåˆ·å¡å¼€é” public static final int CFG_DOOR_OPEN_METHOD_SECTION = 6; // 分时段开门 public static final int CFG_DOOR_OPEN_METHOD_FINGERPRINTONLY = 7; // ä»…ä¿¡æ¯å¼€é” public static final int CFG_DOOR_OPEN_METHOD_PWD_OR_CARD_OR_FINGERPRINT = 8; // 密ç 或刷å¡æˆ–ä¿¡æ¯å¼€é” public static final int CFG_DOOR_OPEN_METHOD_PWD_AND_CARD_AND_FINGERPINT = 9; // 密ç +刷å¡+ä¿¡æ¯ç»„åˆå¼€é” public static final int CFG_DOOR_OPEN_METHOD_PWD_AND_FINGERPRINT = 10; // 密ç +ä¿¡æ¯ç»„åˆå¼€é” public static final int CFG_DOOR_OPEN_METHOD_CARD_AND_FINGERPRINT = 11; // 刷å¡+ä¿¡æ¯å¼€é” public static final int CFG_DOOR_OPEN_METHOD_MULTI_PERSON = 12; // å¤šäººå¼€é” public static final int CFG_DOOR_OPEN_METHOD_FACEIDCARD = 13; // 人è¯å¯¹æ¯” public static final int CFG_DOOR_OPEN_METHOD_FACEIDCARD_AND_IDCARD = 14; // è¯ä»¶+ 人è¯æ¯”对 public static final int CFG_DOOR_OPEN_METHOD_FACEIDCARD_OR_CARD_OR_FINGER = 15; // 人è¯æ¯”对或刷å¡æˆ–ä¿¡æ¯ public static final int CFG_DOOR_OPEN_METHOD_FACEIPCARDANDIDCARD_OR_CARD_OR_FINGER = 16;// (è¯ä»¶+认è¯æ¯”对)或刷å¡æˆ–ä¿¡æ¯ public static final int CFG_DOOR_OPEN_METHOD_USERID_AND_PWD = 17; // UserID+密ç public static final int CFG_DOOR_OPEN_METHOD_FACE_ONLY = 18; // åªå…è®¸äººè„¸å¼€é” public static final int CFG_DOOR_OPEN_METHOD_FACE_AND_PWD = 19; // 人脸+密ç å¼€é” public static final int CFG_DOOR_OPEN_METHOD_FINGERPRINT_AND_PWD = 20; // ä¿¡æ¯+密ç å¼€é” public static final int CFG_DOOR_OPEN_METHOD_FINGERPRINT_AND_FACE = 21; // ä¿¡æ¯+äººè„¸å¼€é” public static final int CFG_DOOR_OPEN_METHOD_CARD_AND_FACE = 22; // 刷å¡+äººè„¸å¼€é” public static final int CFG_DOOR_OPEN_METHOD_FACE_OR_PWD = 23; // 人脸或密ç å¼€é” public static final int CFG_DOOR_OPEN_METHOD_FINGERPRINT_OR_PWD = 24; // ä¿¡æ¯æˆ–密ç å¼€é” public static final int CFG_DOOR_OPEN_METHOD_FINGERPRINT_OR_FACE = 25; // ä¿¡æ¯æˆ–äººè„¸å¼€é” public static final int CFG_DOOR_OPEN_METHOD_CARD_OR_FACE = 26; // 刷å¡æˆ–äººè„¸å¼€é” public static final int CFG_DOOR_OPEN_METHOD_CARD_OR_FINGERPRINT = 27; // 刷å¡æˆ–ä¿¡æ¯å¼€é” public static final int CFG_DOOR_OPEN_METHOD_FINGERPRINT_AND_FACE_AND_PWD = 28; // ä¿¡æ¯+人脸+密ç å¼€é” public static final int CFG_DOOR_OPEN_METHOD_CARD_AND_FACE_AND_PWD = 29; // 刷å¡+人脸+密ç å¼€é” public static final int CFG_DOOR_OPEN_METHOD_CARD_AND_FINGERPRINT_AND_PWD = 30; // 刷å¡+ä¿¡æ¯+密ç å¼€é” public static final int CFG_DOOR_OPEN_METHOD_CARD_AND_PWD_AND_FACE = 31; // å¡+ä¿¡æ¯+人脸组åˆå¼€é” public static final int CFG_DOOR_OPEN_METHOD_FINGERPRINT_OR_FACE_OR_PWD = 32; // ä¿¡æ¯æˆ–人脸或密ç public static final int CFG_DOOR_OPEN_METHOD_CARD_OR_FACE_OR_PWD = 33; // å¡æˆ–人脸或密ç å¼€é” public static final int CFG_DOOR_OPEN_METHOD_CARD_OR_FINGERPRINT_OR_FACE = 34; // å¡æˆ–ä¿¡æ¯æˆ–äººè„¸å¼€é” public static final int CFG_DOOR_OPEN_METHOD_CARD_AND_FINGERPRINT_AND_FACE_AND_PWD = 35;// å¡+ä¿¡æ¯+人脸+密ç 组åˆå¼€é” public static final int CFG_DOOR_OPEN_METHOD_CARD_OR_FINGERPRINT_OR_FACE_OR_PWD = 36;// å¡æˆ–ä¿¡æ¯æˆ–人脸或密ç å¼€é” public static final int CFG_DOOR_OPEN_METHOD_FACEIPCARDANDIDCARD_OR_CARD_OR_FACE = 37;//(è¯ä»¶+人è¯æ¯”对)或 åˆ·å¡ æˆ– 人脸 public static final int CFG_DOOR_OPEN_METHOD_FACEIDCARD_OR_CARD_OR_FACE = 38; // 人è¯æ¯”对 或 刷å¡(二维ç ) 或 人脸 } // 首å¡æƒé™éªŒè¯é€šè¿‡åŽçš„é—¨ç¦çŠ¶æ€ public static class CFG_ACCESS_FIRSTENTER_STATUS extends SdkStructure { public static final int ACCESS_FIRSTENTER_STATUS_UNKNOWN = 0; // æœªçŸ¥çŠ¶æ€ public static final int ACCESS_FIRSTENTER_STATUS_KEEPOPEN = 1; // KeepOpen-首å¡æƒé™éªŒè¯é€šè¿‡åŽï¼Œé—¨ä¿æŒå¸¸å¼€ public static final int ACCESS_FIRSTENTER_STATUS_NORMAL = 2; // Normal-首å¡æƒé™éªŒè¯é€šè¿‡åŽï¼Œå…¶ä»–用户æ‰èƒ½åˆ·å¡(ä¿¡æ¯ç‰)验è¯é€šè¿‡ } // é—¨ç¦åè®® public static class CFG_EM_ACCESS_PROTOCOL extends SdkStructure { public static final int CFG_EM_ACCESS_PROTOCOL_UNKNOWN = 0; // 未知 public static final int CFG_EM_ACCESS_PROTOCOL_LOCAL = 1; // 本机开关é‡æŽ§åˆ¶ public static final int CFG_EM_ACCESS_PROTOCOL_SERIAL = 2; // 串å£åè®® public static final int CFG_EM_ACCESS_PROTOCOL_REMOTE = 3; // é—¨ç¦udpå¼€é” } // 串å£å议下的具体å议功能 public static class CFG_EM_SERIAL_PROTOCOL_TYPE extends SdkStructure { public static final int CFG_EM_SERIAL_PROTOCOL_TYPE_UNKNOWN = -1; // 未知 public static final int CFG_EM_SERIAL_PROTOCOL_TYPE_UNUSED = 0; // 未使用 public static final int CFG_EM_SERIAL_PROTOCOL_TYPE_DAHUA_ACCESS_485 = 1; // é—¨ç¦485 public static final int CFG_EM_SERIAL_PROTOCOL_TYPE_LADDER_CONTROL = 2; // 梯控 public static final int CFG_EM_SERIAL_PROTOCOL_TYPE_REMOTE_READ_HEAD = 3; // è¿œè·ç¦»è¯»å¤´ } // CLIENT_MatrixSetCameras接å£çš„输入å‚æ•° public static class NET_IN_MATRIX_SET_CAMERAS extends SdkStructure { public int dwSize; public Pointer pstuCameras; // 显示æºä¿¡æ¯ NET_MATRIX_CAMERA_INFO 数组, 用户分é…内å˜ï¼Œå¤§å°ä¸ºsizeof(NET_MATRIX_CAMERA_INFO)*nCameraCount public int nCameraCount; // 显示æºæ•°ç»„å¤§å° public NET_IN_MATRIX_SET_CAMERAS() { this.dwSize = this.size(); } } // CLIENT_MatrixSetCameras接å£çš„输出å‚æ•° public static class NET_OUT_MATRIX_SET_CAMERAS extends SdkStructure { public int dwSize; public NET_OUT_MATRIX_SET_CAMERAS() { this.dwSize = this.size(); } } // å„ç§è¿ç« 事件è”动报è¦è¾“出事件 (NET_ALARM_TRAFFIC_LINKAGEALARM) public static class ALARM_TRAFFIC_LINKAGEALARM_INFO extends SdkStructure { public NET_TIME_EX stuTime; // 事件å‘生的时间 public byte[] szCode = new byte[NET_COMMON_STRING_32]; // è¿ç« è”动报è¦äº‹ä»¶ public byte[] byReserved = new byte[1024]; // ä¿ç•™å—节 } // IPC新增(2017.4),RFIDæ ‡ç¾ä¿¡æ¯é‡‡é›†äº‹ä»¶ public static class ALARM_LABELINFO extends SdkStructure { public int nChannelID; // 通é“å· public byte[] szIndexIs = new byte[NET_COMMON_STRING_8]; // 事件Index代表的å«ä¹‰ï¼Œå¦‚æ— è¯¥å—æ®µï¼Œæ— æ³•çº§è” public int nVideoIndex; // 视频通é“å· public int nACK; // 确认ID public byte[] szReceiverID = new byte[NET_COMMON_STRING_16]; // 接收器ID public byte[] szLabelID = new byte[NET_COMMON_STRING_16]; // RFIDæ ‡ç¾ public NET_TIME_EX stuDateTime; // 采集时间UTC public int emLabelDataState; // æ ‡ç¾çš„æ•°æ®çŠ¶æ€ï¼ˆè¿›å…¥0ã€ç¦»å¼€1) public byte[] byReserve = new byte[1024]; // ä¿ç•™å—节 } // 事件数æ®ç±»åž‹ public static class NET_EM_EVENT_DATA_TYPE extends SdkStructure { public static final int NET_EN_EVENT_DATA_TYPE_UNKNOWN = 0; // 未知 public static final int NET_EN_EVENT_DATA_TYPE_REAL = 1; // å®žæ—¶æ•°æ® public static final int NET_EN_EVENT_DATA_TYPE_ALARM = 2; // 报è¦æ•°æ® } // 事件类型 NET_ALARM_FLOATINGOBJECT_DETECTION (漂浮物检测事件) public static class ALARM_FLOATINGOBJECT_DETECTION_INFO extends SdkStructure { public int nAction; // 事件动作,0表示脉冲事件,1表示æŒç»æ€§äº‹ä»¶å¼€å§‹,2表示æŒç»æ€§äº‹ä»¶ç»“æŸ; public byte[] reserved1 = new byte[4]; // 预留å—段 public byte[] szName = new byte[128]; // 事件å称 public double PTS; // 时间戳(å•ä½æ˜¯æ¯«ç§’) public NET_TIME_EX UTC; // 事件å‘生的时间 public int nChannel; // 通é“å· public int nEventID; // 事件ID public int nPresetID; // 事件触å‘的预置点ID public byte[] szPresetName = new byte[64]; // 事件触å‘的预置å称 public int bExistFloatingObject; // 是å¦å˜åœ¨æ¼‚浮物 public int emEventType; // 事件数æ®ç±»åž‹,详è§NET_EM_EVENT_DATA_TYPE public float fCurrentRatio; // 漂浮物当å‰å 比(相对于检测区域)å•ä½:%, å–值范围[0, 100] public float fAlarmThreshold; // 报è¦é˜ˆå€¼ã€‚漂浮物相对于检测区域的å 比, å–值范围[0, 100] public NET_POINT[] stuDetectRegion = (NET_POINT[])new NET_POINT().toArray(NET_MAX_DETECT_REGION_NUM); // 规则检测区域 public int nDetectRegionNum; // 规则检测区域顶点数 public byte[] byReserved = new byte[1020]; // 预留å—段 } // æ°´ä½çŠ¶æ€ public static class NET_EM_WATER_LEVEL_STATUS extends SdkStructure { public static final int NET_EM_WATER_LEVEL_STATUS_UNKNOWN = 0; // 未知 public static final int NET_EM_WATER_LEVEL_STATUS_NORMAL = 1; // æ°´ä½æ£å¸¸ public static final int NET_EM_WATER_LEVEL_STATUS_HIGH = 2; // æ°´ä½é«˜äºŽä¸Šé™é˜ˆå€¼ public static final int NET_EM_WATER_LEVEL_STATUS_LOW = 3; // æ°´ä½ä½ŽäºŽä¸Šé™é˜ˆå€¼ } // æ°´ä½å°ºé¢œè‰² public static class NET_EM_WATER_RULER_COLOR extends SdkStructure { public static final int NET_EM_WATER_LEVEL_STATUS_UNKNOWN = 0; // 未知 public static final int NET_EM_WATER_RULER_COLOR_BLUE = 1; // è“色 public static final int NET_EM_WATER_RULER_COLOR_RED = 2; // 红色 } // æ°´ä½å°º public static class NET_WATER_RULER extends SdkStructure { public int emRulerColor; // æ°´ä½å°ºé¢œè‰², è¯¦è§ NET_EM_WATER_RULER_COLOR public byte[] szRulerNum = new byte[128]; // æ°´ä½å°ºç¼–å· public float fWaterLevel; // æ°´ä½å€¼ï¼ˆå¯¹äºŽæœ‰æ‹¼æŽ¥çš„æƒ…å†µï¼Œè¯¥å€¼ä¸ºæ ‡å®šçš„åŸºå‡†å€¼åŠ ä¸Šå½“å‰åˆ»åº¦å€¼ï¼Œå•ä½ï¼šç±³ï¼‰ public byte[] byReserved = new byte[512]; // ä¿ç•™å—节 } // 事件类型 NET_ALARM_WATER_LEVEL_DETECTION (æ°´ä½æ£€æµ‹äº‹ä»¶) public static class ALARM_WATER_LEVEL_DETECTION_INFO extends SdkStructure { public int nAction; // 事件动作,0表示脉冲事件,1表示æŒç»æ€§äº‹ä»¶å¼€å§‹,2表示æŒç»æ€§äº‹ä»¶ç»“æŸ; public byte[] reserved1 = new byte[4]; // 预留å—段 public byte[] szName = new byte[128]; // 事件å称 public double PTS; // 时间戳(å•ä½æ˜¯æ¯«ç§’) public NET_TIME_EX UTC; // 事件å‘生的时间 public int nChannel; // 通é“å· public int nEventID; // 事件ID public int nPresetID; // 预置点ID public byte[] szPresetName = new byte[64]; // 预置点å称 public byte[] szObjectUUID = new byte[48]; // æ™ºèƒ½ç‰©ä½“å…¨å±€å”¯ä¸€ç‰©ä½“æ ‡è¯† public int emEventType; // 事件数æ®ç±»åž‹, è¯¦è§ NET_EM_EVENT_DATA_TYPE public int emStatus; // æ°´ä½çŠ¶æ€, è¯¦è§ NET_EM_WATER_LEVEL_STATUS public NET_WATER_RULER stuWaterRuler; // æ°´ä½å°º public byte[] byReserved = new byte[1024]; // 预留å—段 } // 事件类型 EVENT_IVS_FLOATINGOBJECT_DETECTION (漂浮物检测)对应的规则é…ç½® public static class CFG_FLOATINGOBJECT_DETECTION_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 int nDetectRegionPoint; // 检测区顶点数 public CFG_POLYGON[] stuDetectRegion=(CFG_POLYGON[])new CFG_POLYGON().toArray(MAX_POLYGON_NUM); // 检测区 public float fAlarmThreshold; // 报è¦é˜ˆå€¼ã€‚当检测区域内的漂浮物å 比超过阈值时则产生报è¦;å•ä½:%,å–值范围(0, 100] public int nAlarmInterval; // 报è¦æ—¶é—´é—´éš”。(å•ä½ï¼šç§’)。å–值范围[60, 86400] public int bDataUpload; // 是å¦ä¸ŠæŠ¥å®žæ—¶æ•°æ®ã€‚ public int nUpdateInterval; // 实时数æ®ä¸ŠæŠ¥é—´éš”。(å•ä½ï¼šç§’)。å–值范围[60, 86400] public byte[] byReserved=new byte[4096]; // ä¿ç•™å—节 }; // 事件类型 EVENT_IVS_WATER_LEVEL_DETECTION (æ°´ä½æ£€æµ‹äº‹ä»¶)对应的规则é…ç½® public static class CFG_WATER_LEVEL_DETECTION_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 int nBaseLinePointNum; // 拼接的水ä½å°ºåæ ‡ç‚¹æ•° public CFG_POLYGON[] stuBaseLine=(CFG_POLYGON[])new CFG_POLYGON().toArray(16); // 对于拼接的水ä½å°ºï¼Œéœ€é¡µé¢ä¸Šæ ‡å®šå‡ºæ‹¼æŽ¥å¤„ï¼Œè‹¥æ— æ‹¼æŽ¥æ— éœ€å¡«å…… // 一般4个点,最大ä¸è¶…过16个点,æ¯ä¸ªç‚¹åæ ‡å½’ä¸€åŒ–åˆ°[0,8192]区间 public float fBaseLevel; // 对应BaseLineæ ‡å®šçš„å®žé™…æ°´ä½å€¼ã€‚(å•ä½ï¼šç±³ï¼‰ public float fHighLevel; // æ°´ä½ä¸Šé™æŠ¥è¦é˜ˆå€¼(å•ä½ï¼šç±³) public float fLowLevel; // æ°´ä½ä¸‹é™æŠ¥è¦é˜ˆå€¼(å•ä½ï¼šç±³) public int nAlarmInterval; // 报è¦æ—¶é—´é—´éš”。(å•ä½ï¼šç§’)。å–值范围[60, 86400] public int bDataUpload; // 是å¦ä¸ŠæŠ¥å®žæ—¶æ•°æ®ã€‚ public int nUpdateInterval; // 实时数æ®ä¸ŠæŠ¥é—´éš”。(å•ä½ï¼šç§’)。å–值范围[60, 86400] public byte[] byReserved=new byte[4096]; // ä¿ç•™å—节 }; // 事件类型NET_ALARM_TRAFFIC_JUNCTION public static class ALARM_TAFFIC_JUNCTION_INFO extends SdkStructure { public int nAction; // 事件动作 public int nChannelID; // 通é“å· public byte[] szName = new byte[NET_EVENT_NAME_LEN]; // 事件å称 public byte byMainSeatBelt; // 主驾驶座,系安全带状æ€,1-系安全带,2-未系安全带 public byte bySlaveSeatBelt; // 副驾驶座,系安全带状æ€,1-系安全带,2-未系安全带 public byte byVehicleDirection; // 当å‰è¢«æŠ“æ‹åˆ°çš„车辆是车头还是车尾,å…·ä½“è¯·è§ EM_VEHICLE_DIRECTION public byte byOpenStrobeState; // 开闸状æ€,å…·ä½“è¯·è§ EM_OPEN_STROBE_STATE public byte[] byReserved1=new byte[4]; // å—èŠ‚å¯¹é½ public double PTS; // 时间戳(å•ä½æ˜¯æ¯«ç§’) public NET_TIME_EX UTC; // 事件å‘生的时间 public int nEventID; // 事件ID public NET_MSG_OBJECT stuObject; // 检测到的物体 public int nLane; // 对应车é“å· public int dwBreakingRule; // è¿å规则掩ç ,第一ä½:闯红ç¯; // 第二ä½:ä¸æŒ‰è§„定车é“行驶; // 第三ä½:逆行; 第四ä½ï¼šè¿ç« 掉头; // 第五ä½:äº¤é€šå µå¡ž; 第å…ä½:交通异常空闲 // 第七ä½:压线行驶; å¦åˆ™é»˜è®¤ä¸º:交通路å£äº‹ä»¶ public NET_TIME_EX RedLightUTC; // 红ç¯å¼€å§‹UTC时间 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 byDirection; // è·¯å£æ–¹å‘,1-表示æ£å‘,2-表示åå‘ public byte byLightState; // LightState表示红绿ç¯çŠ¶æ€:0 未知,1 绿ç¯,2 红ç¯,3 é»„ç¯ public byte byReserved2; // ä¿ç•™å—节 public byte byImageIndex; // 图片的åºå·, åŒä¸€æ—¶é—´å†…(精确到秒)å¯èƒ½æœ‰å¤šå¼ 图片, 从0开始 public NET_MSG_OBJECT stuVehicle; // è½¦èº«ä¿¡æ¯ 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[] szRecordFile = new byte[NET_COMMON_STRING_128];// 报è¦å¯¹åº”的原始录åƒæ–‡ä»¶ä¿¡æ¯ public EVENT_JUNCTION_CUSTOM_INFO stuCustomInfo; // è‡ªå®šä¹‰ä¿¡æ¯ public byte byPlateTextSource; // 车牌识别æ¥æº, 0:本地算法识别,1:åŽç«¯æœåŠ¡å™¨ç®—法识别 public byte[] byReserved3 = new byte[3]; // ä¿ç•™å—节,留待扩展. public NET_GPS_INFO stuGPSInfo; // GPSä¿¡æ¯ public byte byNoneMotorInfo; // 0-æ— éžæœºåŠ¨è½¦äººå‘˜ä¿¡æ¯ä¿¡æ¯,1-有éžæœºåŠ¨è½¦äººå‘˜ä¿¡æ¯ä¿¡æ¯ æ¤å—段为1时下é¢11个å—段生效 public byte byBag; // 是å¦èƒŒåŒ…, 0-未知 1-ä¸èƒŒåŒ… 2-背包 public byte byUmbrella; // 是å¦æ‰“伞, 0-未知 1-ä¸æ‰“伞 2-打伞 public byte byCarrierBag; // 手æ包状æ€,0-未知 1-没有 2-有 public byte byHat; // 是å¦æˆ´å¸½å, 0-未知 1-ä¸æˆ´å¸½å 2-戴帽å public byte byHelmet; // 头盔状æ€,0-未知 1-没有 2-有 public byte bySex; // 性别,0-未知 1-男性 2-女性 public byte byAge; // 年龄 public NET_COLOR_RGBA stuUpperBodyColor; // 上身颜色 public NET_COLOR_RGBA stuLowerBodyColor; // 下身颜色 public byte byUpClothes; // 上身衣æœç±»åž‹ 0:未知 1:长袖 2:çŸè¢– 3:长裤 4:çŸè£¤ 5:裙å 6:背心 7:超çŸè£¤ 8:超çŸè£™ public byte byDownClothes; // 下身衣æœç±»åž‹ 0:未知 1:长袖 2:çŸè¢– 3:长裤 4:çŸè£¤ 5:裙å 6:背心 7:超çŸè£¤ 8:超çŸè£™ public NET_EXTENSION_INFO stuExtensionInfo; // æ‰©å±•ä¿¡æ¯ public byte[] byReserved4 = new byte[22]; // ä¿ç•™å—节,留待扩展. public int nTriggerType; // TriggerType:触å‘类型,0车检器,1é›·è¾¾,2视频 public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // äº¤é€šè½¦è¾†ä¿¡æ¯ public int dwRetCardNumber; // å¡ç‰‡ä¸ªæ•° public EVENT_CARD_INFO[] stuCardInfo = (EVENT_CARD_INFO[])new EVENT_CARD_INFO().toArray(NET_EVENT_MAX_CARD_NUM);// å¡ç‰‡ä¿¡æ¯ public EVENT_COMM_INFO stCommInfo; // å…¬å…±ä¿¡æ¯ public int bNonMotorInfoEx; // 是å¦æœ‰éžæœºåŠ¨è½¦ä¿¡æ¯, 1-true; 0-false public VA_OBJECT_NONMOTOR stuNonMotor; // éžæœºåŠ¨è½¦ä¿¡æ¯ public byte[] byReserved = new byte[2048]; // ä¿ç•™å—节,留待扩展 } // é—¨ç¦æŽ§åˆ¶å™¨æ“作类型 public static class NET_EM_ACCESS_CTL_MANAGER extends SdkStructure { public static final int NET_EM_ACCESS_CTL_MANAGER_ADDDEVICE = 0; // æ·»åŠ å•ä¸ªåˆ†æŽ§å™¨, 对应结构体 pstInParam = NET_IN_ACCESS_CTL_MANAGER_ADDDEVICE, pstOutParam = NET_OUT_ACCESS_CTL_MANAGER_ADDDEVICE public static final int NET_EM_ACCESS_CTL_MANAGER_MODIFYDEVICE = 1; // 修改分控器å称, 对应结构体 pstInParam = NET_IN_ACCESS_CTL_MANAGER_MODIFYDEVICE, pstOutParam = NET_OUT_ACCESS_CTL_MANAGER_MODIFYDEVICE public static final int NET_EM_ACCESS_CTL_MANAGER_REMOVEDEVICE = 2; // åˆ é™¤åˆ†æŽ§å™¨, 对应结构体 pstInParam = NET_IN_ACCESS_CTL_MANAGER_REMOVEDEVICE, pstOutParam = NET_OUT_ACCESS_CTL_MANAGER_REMOVEDEVICE public static final int NET_EM_ACCESS_CTL_GETSUBCONTROLLER_INFO = 3; // 获å–分控器信æ¯, 对应结构体 pstInParam = NET_IN_GET_SUB_CONTROLLER_INFO, pstOutParam = NET_OUT_GET_SUB_CONTROLLER_INFO public static final int NET_EM_ACCESS_CTL_GETSUBCONTROLLER_STATE = 4; // 获å–分控器状æ€, 对应结构体 pstInParam = NET_IN_GET_SUB_CONTROLLER_STATE, pstOutParam = NET_OUT_GET_SUB_CONTROLLER_STATE public static final int NET_EM_ACCESS_CTL_SET_REPEAT_ENTERROUTE = 5; // 设置å潜路径信æ¯, 对应结构体 pstInparam = NET_IN_SET_REPEAT_ENTERROUTE, pstOutParam = NET_OUT_SET_REPEAT_ENTERROUTE public static final int NET_EM_ACCESS_CTL_GET_REPEAT_ENTERROUTE = 6; // 获å–å潜路径信æ¯, 对应结构体 pstInparam = NET_IN_GET_REPEAT_ENTERROUTE, pstOutParam = NET_OUT_GET_REPEAT_ENTERROUTE public static final int NET_EM_ACCESS_CTL_SET_ABLOCK_ROUTE = 7; // 设置AB互é”路径信æ¯, 对应结构体 pstInparam = NET_IN_SET_ABLOCK_ROUTE, pstOutParam = NET_OUT_SET_ABLOCK_ROUTE public static final int NET_EM_ACCESS_CTL_GET_ABLOCK_ROUTE = 8; // 获å–AB互é”路径信æ¯, 对应结构体 pstInparam = NET_IN_GET_ABLOCK_ROUTE, pstOutParam = NET_OUT_GET_ABLOCK_ROUTE public static final int NET_EM_ACCESS_CTL_GET_LOGSTATUS = 9; // 获å–日志åŒæ¥çŠ¶æ€,对应结构体 pstInparam = NET_IN_GET_LOGSTATUS, pstOutParam = NET_OUT_GET_LOGSTATUS public static final int NET_EM_ACCESS_CTL_SYNCHRO_OFFLINE_LOG = 10; // åŒæ¥ç¦»çº¿æ—¥å¿—, 对应结构体 pstInparam = NET_IN_SYNCHRO_OFFLINE_LOG, pstOutParam = NET_OUT_SYNCHRO_OFFLINE_LOG public static final int NET_EM_ACCESS_CTL_SYNCHRO_TIME = 11; // åŒæ¥åˆ†æŽ§å™¨æ—¶é—´,对应结构体 pstInparam = NET_IN_SYNCHRO_CONTROLLER_TIME, pstOutParam = NET_OUT_SYNCHRO_CONTROLLER_TIME public static final int NET_EM_ACCESS_CTL_SET_QRCODEDECODE_INFO = 12; // 设置二维ç 的解ç ä¿¡æ¯, 对应结构体 pstInparam = NET_IN_SET_QRCODE_DECODE_INFO, pstOutParam = NET_OUT_SET_QRCODE_DECODE_INFO } // 获å–分控器信æ¯å…¥å‚ public static class NET_IN_GET_SUB_CONTROLLER_INFO extends SdkStructure { public int dwSize; public int[] nSubControllerID = new int[MAX_ACCESSSUBCONTROLLER_NUM]; // 分控器ID, å–值范围 -1~255, -1:获å–所有,0:获å–本地,1~255:外置分控 public int nSubControllerNum; // 需è¦æŸ¥è¯¢çš„åˆ†æŽ§å™¨æ•°é‡ public NET_IN_GET_SUB_CONTROLLER_INFO() { this.dwSize = this.size(); } } // 获å–分控器信æ¯å‡ºå‚ public static class NET_OUT_GET_SUB_CONTROLLER_INFO extends SdkStructure { public int dwSize; public NET_SUB_CONTROLLER_INFO[] stuSubControllerInfo = (NET_SUB_CONTROLLER_INFO[])new NET_SUB_CONTROLLER_INFO().toArray(MAX_ACCESSSUBCONTROLLER_NUM); // åˆ†æŽ§å™¨ä¿¡æ¯ public int nRetNum; // æŸ¥è¯¢åˆ°çš„åˆ†æŽ§å™¨æ•°é‡ public NET_OUT_GET_SUB_CONTROLLER_INFO() { this.dwSize = this.size(); } } // åˆ†æŽ§å™¨ä¿¡æ¯ public static class NET_SUB_CONTROLLER_INFO extends SdkStructure { public int nSubControllerID; // 分控器ID,å–值范围 0~255,0为本地 public byte[] szSubControllerName = new byte[MAX_COMMON_STRING_128]; // 分控器å称 public int emProperty; // é—¨ç¦å•åŒå‘, 对应枚举 NET_ACCESS_PROPERTY public byte[] szDeviceType = new byte[MAX_COMMON_STRING_128]; // åˆ†æŽ§å™¨åž‹å· public byte[] szVesion = new byte[MAX_COMMON_STRING_128]; // åˆ†æŽ§å™¨ç‰ˆæœ¬å· public int nDoorNum; // é—¨æ•°é‡ public NET_CARDREAD_INFO[] stuReaderInfo = (NET_CARDREAD_INFO[])new NET_CARDREAD_INFO().toArray(MAX_ACCESSDOOR_NUM); // 门对应的读å¡å™¨å· public byte[] byReserved = new byte[128]; } // 读å¡å™¨ä¿¡æ¯ public static class NET_CARDREAD_INFO extends SdkStructure { public int nDoor; // é—¨åºå· public int nReadNum; // 读å¡å™¨æ•°é‡ public READ_ID[] szReadIDArr = (READ_ID[])new READ_ID().toArray(MAX_ACCESS_READER_NUM);// 读å¡å™¨ID public byte[] byReserved = new byte[64]; } // 读å¡å™¨ID public static class READ_ID extends SdkStructure { public byte[] szReadID = new byte[NET_COMMON_STRING_32]; // 读å¡å™¨ID } // å•åŒå‘ public static class NET_ACCESS_PROPERTY extends SdkStructure { public static final int NET_EM_ACCESS_PROPERTY_UNKNOWN = 0; // 未知 public static final int NET_EM_ACCESS_PROPERTY_BIDIRECT = 1; // åŒå‘é—¨ç¦ public static final int NET_EM_ACCESS_PROPERTY_UNIDIRECT = 2; // å•å‘门径 } // é—¨ç¦åˆ·å¡æ—¶é—´æ®µï¼Œå¯¹æ¤é…置,通é“å·å®žé™…表示é…置索引, 对应命令 CFG_CMD_ACCESSTIMESCHEDULE public static class CFG_ACCESS_TIMESCHEDULE_INFO extends SdkStructure { public TIME_SECTION_WEEK_DAY_4[] stuTimeWeekDay = (TIME_SECTION_WEEK_DAY_4[])new TIME_SECTION_WEEK_DAY_4().toArray(WEEK_DAY_NUM); // 刷å¡æ—¶é—´æ®µ public int bEnable; // 时间段使能开关, 1-true; 0-false public byte[] szName = new byte[CFG_COMMON_STRING_128]; // 自定义å称 public int[] nTimeScheduleConsumptionTimes=new int[7*4]; // æ¯ä¸ªæ—¶é—´æ®µå¯æ¶ˆè´¹çš„次数 // 第一维:å‰7ä¸ªå…ƒç´ ä»£è¡¨æ¯å‘¨7天,第8ä¸ªå…ƒç´ å¯¹åº”èŠ‚å‡æ—¥ // 7ä¸ªå…ƒç´ ä¸ç¬¬ä¸€ä¸ªæ˜¯æ˜ŸæœŸæ—¥ï¼Œç¬¬äºŒä¸ªæ˜¯æ˜ŸæœŸä¸€ï¼Œä»¥æ¤ç±»æŽ¨ // 第二维:æ¯å¤©æœ€å¤š6个时间段 // (设备åªæ”¯æŒ7*4,数组大å°å’ŒstuTimeä¿æŒä¸€è‡´ï¼‰ public int nConsumptionStrategyNums; // 消费ç–略的个数 public DayTimeStrategy[] szConsumptionStrategy=new DayTimeStrategy[42]; // 消费ç–ç•¥,æ¯å¤©æœ€å¤š6个时间段,æ¯6ä¸ªå…ƒç´ å¯¹åº”ä¸€å¤©, 一共7天。 // æ¯ä¸ªæ—¶æ®µæ ¼å¼ä¸º"星期 æ—¶:分:秒-æ—¶:分:秒 消费类型 å¯æ¶ˆè´¹æ¬¡æ•° å¯æ¶ˆè´¹é‡‘é¢" // 星期从0开始,表示周日,å‰6个时段å‰é¢éƒ½æ˜¯0,表示周日的6个时段,剩下ä¾æ¬¡å‘¨ä¸€ï¼Œå‘¨äºŒ... 一共42个时段。 // 消费类型包括:0为定é¢æ¶ˆè´¹ï¼Œ1为éžå®šé¢æ¶ˆè´¹ï¼›å¯æ¶ˆè´¹æ¬¡æ•°æœ€å¤§ä¸Šé™200次;å¯æ¶ˆè´¹é‡‘é¢æœ€é«˜999900,也就是9999å…ƒ } public static class DayTimeStrategy extends SdkStructure{ public byte[] dayTime=new byte[34]; } // 普通é…ç½® (CFG_CMD_DEV_GENERRAL) General public static class CFG_DEV_DISPOSITION_INFO extends SdkStructure { public int nLocalNo; // 本机编å·ï¼Œä¸»è¦ç”¨äºŽé¥æŽ§å™¨åŒºåˆ†ä¸åŒè®¾å¤‡ 0~998 public byte[] szMachineName = new byte[256]; // 机器åç§°æˆ–ç¼–å· public byte[] szMachineAddress = new byte[256]; // 机器部署地点å³é“路编ç public byte[] szMachineGroup = new byte[256]; // 机器分组或å«è®¾å¤‡æ‰€å±žå•ä½ 默认为空,用户å¯ä»¥å°†ä¸åŒçš„设备编为一组,便于管ç†ï¼Œå¯é‡å¤ã€‚ public byte[] szMachineID = new byte[64]; // 机器编å·, è”网平å°å†…唯一 public int nLockLoginTimes; // 登陆失败å¯å°è¯•æ¬¡æ•° public int nLoginFailLockTime; // 登陆失败é”定时间 public int bLockLoginEnable; // 登陆失败å¯å°è¯•æ¬¡æ•°ä½¿èƒ½, 1-true; 0-false public byte[] bReserved = new byte[948]; // ä¿ç•™å—节 } // æŽ¥å£ CLIENT_StartVideoDiagnosis 的输入å‚æ•° public static class NET_IN_VIDEODIAGNOSIS extends SdkStructure { public int dwSize; // æ¤ç»“æž„ä½“å¤§å° public int nDiagnosisID; // 视频诊æ–ID,从0开始 public int dwWaitTime; // 接å£è¶…æ—¶ç‰å¾…时间 public Callback cbVideoDiagnosis; // 视频诊æ–结果回调函数, 对应回调函数 fRealVideoDiagnosis public Pointer dwUser; // 用户自定义å‚æ•° public NET_IN_VIDEODIAGNOSIS() { this.dwSize = this.size(); } } // æŽ¥å£ CLIENT_StartVideoDiagnosis 的输出å‚æ•° public static class NET_OUT_VIDEODIAGNOSIS extends SdkStructure { public int dwSize; // æ¤ç»“æž„ä½“å¤§å° public LLong lDiagnosisHandle; // 订阅å¥æŸ„ public NET_OUT_VIDEODIAGNOSIS() { this.dwSize = this.size(); } } // cbVideoDiagnosis 回调å‚数类型 public static class NET_REAL_DIAGNOSIS_RESULT extends SdkStructure { public int dwSize; // æ¤ç»“æž„ä½“å¤§å° public Pointer pstDiagnosisCommonInfo; // 视频诊æ–通用信æ¯, 对应 NET_VIDEODIAGNOSIS_COMMON_INFO public int nTypeCount; // 诊æ–结果数æ®è¯Šæ–类型个数 public Pointer pDiagnosisResult; // 一次诊æ–结果数æ®, 大å°ä¸º dwBufSize, æ ¼å¼å¦‚ NET_DIAGNOSIS_RESULT_HEADER+诊æ–类型1+NET_DIAGNOSIS_RESULT_HEADER+诊æ–类型2+... public int dwBufSize; // 缓冲长度 public NET_REAL_DIAGNOSIS_RESULT() { this.dwSize = this.size(); } } public static class NET_DIAGNOSIS_RESULT_HEADER extends SdkStructure { public int dwSize; // æ¤ç»“æž„ä½“å¤§å° public byte[] szDiagnosisType = new byte[MAX_PATH]; // 诊æ–类型,详è§"视频诊æ–上报结果检测类型定义" 如 NET_DIAGNOSIS_DITHER public int nDiagnosisTypeLen; // 该诊æ–ç±»åž‹ç»“æž„ä½“å¤§å° public NET_DIAGNOSIS_RESULT_HEADER() { this.dwSize = this.size(); } } // 视频诊æ–ç»“æžœä¸ŠæŠ¥é€šç”¨æ•°æ® public class NET_VIDEODIAGNOSIS_COMMON_INFO extends SdkStructure { /** æ¤ç»“æž„ä½“å¤§å° */ public int dwSize; /** æ£€æµ‹é€šé“ */ public int nDiagnosisID; /** 计划å称 */ public NET_ARRAY stProject=new NET_ARRAY(); /** 任务å称 */ public NET_ARRAY stTask=new NET_ARRAY(); /** å‚数表å称 */ public NET_ARRAY stProfile=new NET_ARRAY(); /** è®¾å¤‡å”¯ä¸€æ ‡å¿— */ public NET_ARRAY stDeviceID=new NET_ARRAY(); /** 开始时间 */ public NET_TIME stStartTime=new NET_TIME(); /** 结æŸæ—¶é—´ */ public NET_TIME stEndTime=new NET_TIME(); /** 视频通é“å· å‰ç«¯è®¾å¤‡æ¯”如DVR,IPCçš„é€šé“ */ public int nVideoChannelID; /** 视频ç æµ {@link NET_STREAM_TYPE} */ public int emVideoStream; /** 诊æ–结果类型 {@link NET_VIDEODIAGNOSIS_RESULT_TYPE} */ public int emResultType; /** 诊æ–结果 */ public int bCollectivityState; /** å¤±è´¥åŽŸå› {@link NET_VIDEODIAGNOSIS_FAIL_TYPE} */ public int emFailedCause; /** å¤±è´¥åŽŸå› æè¿° */ public byte[] szFailedCode=new byte[64]; /** 诊æ–结果å˜æ”¾åœ°å€,建议使用szResultAddressExå—段 */ public byte[] szResultAddress=new byte[128]; /** ç 率 å•ä½ kb/s, æ¯å¤©ä¸ŠæŠ¥ä¸€æ¬¡ */ public int nFrameRate; /** 宽 æ¯å¤©ä¸ŠæŠ¥ä¸€æ¬¡ */ public int nFrameWidth; /** 高 æ¯å¤©ä¸ŠæŠ¥ä¸€æ¬¡ */ public int nFrameHeight; /** 背景图片个数 */ public int nBackPic; /** 背景图片路径 */ public BACK_PICTURE_ADDRESS[] szBackPicAddressArr = new BACK_PICTURE_ADDRESS[MAX_BACKPIC_COUNT]; // 背景图片路径列表 /** 诊æ–结果å˜æ”¾åœ°å€æ‰©å±• */ public byte[] szResultAddressEx=new byte[256]; /** æµå¼€å§‹æ—¶é—´ */ public NET_TIME stStreamStartTime=new NET_TIME(); /** æµç»“æŸæ—¶é—´ */ public NET_TIME stStreamEndTime=new NET_TIME(); public NET_VIDEODIAGNOSIS_COMMON_INFO(){ for(int i=0;i<szBackPicAddressArr.length;i++){ szBackPicAddressArr[i]=new BACK_PICTURE_ADDRESS(); } this.dwSize=this.size(); } } // 背景图片路径 public static class BACK_PICTURE_ADDRESS extends SdkStructure { public byte[] szBackPicAddress = new byte[NET_COMMON_STRING_128]; // 背景图片路径 } // 通用å˜é•¿å—符串以‘\0â€™ç»“æŸ public static class NET_ARRAY extends SdkStructure { public int dwSize; // æ¤ç»“æž„ä½“å¤§å° public Pointer pArray; // 缓冲区 ç›®å‰æœ€å°260å—节,è°ƒç”¨è€…ç”³è¯·å†…å˜ å¡«å……æ•°æ®ä¿è¯æ˜¯'\0'ç»“æŸ public int dwArrayLen; // 缓冲空间长度 public NET_ARRAY() { this.dwSize = this.size(); } } // 视频ç æµç±»åž‹ public static class NET_STREAM_TYPE extends SdkStructure { public static final int NET_EM_STREAM_ERR = 0; // 其它 public static final int NET_EM_STREAM_MAIN = 1; // "Main"-主ç æµ public static final int NET_EM_STREAM_EXTRA_1 = 2; // "Extra1"-è¾…ç æµ1 public static final int NET_EM_STREAM_EXTRA_2 = 3; // "Extra2"-è¾…ç æµ2 public static final int NET_EM_STREAM_EXTRA_3 = 4; // "Extra3"-è¾…ç æµ3 public static final int NET_EM_STREAM_SNAPSHOT = 5; // "Snapshot"-抓图ç æµ public static final int NET_EM_STREAM_OBJECT = 6; // "Object"-ç‰©ä½“æµ public static final int NET_EM_STREAM_AUTO = 7; // "Auto"-自动选择åˆé€‚ç æµ public static final int NET_EM_STREAM_PREVIEW = 8; // "Preview"-预览裸数æ®ç æµ public static final int NET_EM_STREAM_NONE = 9; // æ— è§†é¢‘ç æµ(纯音频) } // 视频诊æ–结果类型 public static class NET_VIDEODIAGNOSIS_RESULT_TYPE extends SdkStructure { public static final int NET_EM_ROTATION = 0; // "Rotation" -视频轮巡分æžç»“æžœ public static final int NET_EM_REAL = 1; // "Real" -实时视频分æžç»“æžœ public static final int NET_EM_NR_UNKNOW = 2; // 未定义 } //视频诊æ–é”™è¯¯åŽŸå› public static class NET_VIDEODIAGNOSIS_FAIL_TYPE extends SdkStructure { public static final int NET_EM_NO_ERROR = 0; // 诊æ–æˆåŠŸ public static final int NET_EM_DISCONNECT = 1; // "Disconnect" - 末能连接设备 public static final int NET_EM_CH_NOT_EXIST = 2; // "ChannelNotExist" - 通é“ä¸å˜åœ¨ public static final int NET_EM_LOGIN_OVER_TIME = 3; // "LoginOverTime" - 登录超时 public static final int NET_EM_NO_VIDEO = 4; // "NoVideo" - 登录æˆåŠŸæ— 视频 public static final int NET_EM_NO_RIGHT = 5; // "NoRight" - æ— æ“作æƒé™ public static final int NET_EM_PLATFROM_LOGIN_FAILED = 6; // "PlatformLoginFailed" - å¹³å°ç™»å…¥å¤±è´¥ public static final int NET_EM_PLATFROM_DISCONNECT = 7; // "PlatformDisconnect" - å¹³å°æ–开连接 public static final int NET_EM_GET_STREAM_OVER_TIME = 8; // "GetStreamOverTime" - 获å–ç æµè¶…æ—¶ public static final int NET_EM_GET_NO_ENOUGH_STREAM = 9; // "NoEnoughStream" - ç æµä¸è¶³ public static final int NET_EM_DECODE_STREAM_FAILED = 10; // "DecodeStreamFailed" - 解ç 失败 public static final int NET_EM_GET_OFF_LINE = 11; // "OffLine" - å‰ç«¯è®¾å¤‡ç¦»çº¿ public static final int NET_EM_NF_UNKNOW = 12; // å…¶ä»–åŽŸå› ,详è§ç»“æž„ä½“é‡Œçš„å¤±è´¥åŽŸå› æè¿° public static final int NET_EM_NOT_SD = 13; // "NotSD" - 设备éžçƒæœºï¼Œäº‘å°ç±»æ£€æµ‹æ— 效 } // æŽ¥å£ CLIENT_StartFindDiagnosisResult 的输入å‚æ•° public static class NET_IN_FIND_DIAGNOSIS extends SdkStructure { public int dwSize; // æ¤ç»“æž„ä½“å¤§å° public int nDiagnosisID; // 视频诊æ–ID,从0开始 public int dwWaitTime; // 接å£è¶…æ—¶ç‰å¾…时间 public NET_ARRAY stuDeviceID; // è®¾å¤‡å”¯ä¸€æ ‡å¿—,pArray : null表示ä¸ä½¿ç”¨è®¾å¤‡ID查询 public NET_TIME stuStartTime; // 开始时间 public NET_TIME stuEndTime; // 结æŸæ—¶é—´ public int nVideoChannel; // 视频通é“å·,-1:所有通é“å· public int nTypeCount; // 诊æ–类型个数,0:ä¸ä½¿ç”¨è¯Šæ–类型查询 public Pointer pstDiagnosisTypes; // 诊æ–类型数组,表示需è¦æŸ¥è¯¢çš„诊æ–类型, 对应 NET_ARRAY[] // 由用户申请内å˜ï¼Œå¤§å°ä¸ºsizeof(NET_ARRAY)*nTypeCount public byte[] szProjectName = new byte[MAX_PATH]; // 计划å称 public int nCollectivityStateNum; // 需è¦æŸ¥è¯¢çš„诊æ–结果状æ€ä¸ªæ•°, 为0时表示需è¦æŸ¥è¯¢çš„诊æ–结果类型为æˆåŠŸ public int[] emCollectivityState=new int[2]; // 需è¦æŸ¥è¯¢çš„诊æ–结果状æ€æ•°ç»„, 表示需è¦æŸ¥è¯¢çš„诊æ–结果类型,对应枚举EM_COLLECTIVITY_STATE public NET_IN_FIND_DIAGNOSIS() { this.dwSize = this.size(); } } // æŽ¥å£ CLIENT_StartFindDiagnosisResult 的输出å‚æ•° public static class NET_OUT_FIND_DIAGNOSIS extends SdkStructure { public int dwSize; // æ¤ç»“æž„ä½“å¤§å° public LLong lFindHandle; // 查询å¥æŸ„ public int dwTotalCount; // 符åˆæ¡ä»¶çš„总个数 public NET_OUT_FIND_DIAGNOSIS() { this.dwSize = this.size(); } } // æŽ¥å£ CLIENT_DoFindDiagnosisResult 的输入å‚æ•° public static class NET_IN_DIAGNOSIS_INFO extends SdkStructure { public int dwSize; // æ¤ç»“æž„ä½“å¤§å° public int nDiagnosisID; // 视频诊æ–ID,从0开始 public int dwWaitTime; // 接å£è¶…æ—¶ç‰å¾…时间 public int nFindCount; // æ¯æ¬¡æŸ¥è¯¢çš„视频诊æ–结果æ¡æ•° public int nBeginNumber; // 查询起始åºå· 0<=beginNumber<= totalCount-1 public NET_IN_DIAGNOSIS_INFO() { this.dwSize = this.size(); } } // æŽ¥å£ CLIENT_DoFindDiagnosisResult 的输出å‚æ•° public static class NET_OUT_DIAGNOSIS_INFO extends SdkStructure { public int dwSize; // æ¤ç»“æž„ä½“å¤§å° public int nInputNum; // 用户分é…çš„ NET_VIDEODIAGNOSIS_RESULT_INFO 个数 public int nReturnNum; // 返回结果个数 public Pointer pstDiagnosisResult; // ç»“æžœæ•°æ® ç»“æž„ä½“æŒ‡é’ˆéœ€è¦è°ƒç”¨è€…分é…, 对应 NET_VIDEODIAGNOSIS_RESULT_INFO[] // 申请内å˜å¤§å°ä¸ºsizeof(NET_VIDEODIAGNOSIS_RESULT_INFO)*nInputNum public NET_OUT_DIAGNOSIS_INFO() { this.dwSize = this.size(); } } public static class NET_VIDEODIAGNOSIS_RESULT_INFO extends SdkStructure { public int dwSize; // æ¤ç»“æž„ä½“å¤§å° public Pointer pstDiagnosisCommonInfo; // 视频诊æ–é€šç”¨ä¿¡æ¯ ä»¥ä¸‹ç»“æž„ä½“æŒ‡é’ˆéœ€è¦è°ƒç”¨è€…分é…, 对应 NET_VIDEODIAGNOSIS_COMMON_INFO public int abDither; // 用于表示æ¤æ¬¡ç»“æžœä¸è¿™ä¸ªè¯Šæ–项是å¦æœ‰æ•ˆ, 1-true, 0-false public Pointer pstDither; // 视频抖动检测, 对应 NET_VIDEO_DITHER_DETECTIONRESULT public int abStration; // 用于表示æ¤æ¬¡ç»“æžœä¸è¿™ä¸ªè¯Šæ–项是å¦æœ‰æ•ˆ, 1-true, 0-false public Pointer pstStration; // 视频æ¡çº¹æ£€æµ‹, 对应 NET_VIDEO_STRIATION_DETECTIONRESULT public int abLoss; // 用于表示æ¤æ¬¡ç»“æžœä¸è¿™ä¸ªè¯Šæ–项是å¦æœ‰æ•ˆ, 1-true, 0-false public Pointer pstLoss; // 视频丢失检测, 对应 NET_VIDEO_LOSS_DETECTIONRESULT public int abCover; // 用于表示æ¤æ¬¡ç»“æžœä¸è¿™ä¸ªè¯Šæ–项是å¦æœ‰æ•ˆ, 1-true, 0-false public Pointer pstCover; // 视频é®æŒ¡æ£€æµ‹, 对应 NET_VIDEO_COVER_DETECTIONRESULT public int abFrozen; // 用于表示æ¤æ¬¡ç»“æžœä¸è¿™ä¸ªè¯Šæ–项是å¦æœ‰æ•ˆ, 1-true, 0-false public Pointer pstFrozen; // 视频冻结检测, 对应 NET_VIDEO_FROZEN_DETECTIONRESULT public int abBrightness; // 用于表示æ¤æ¬¡ç»“æžœä¸è¿™ä¸ªè¯Šæ–项是å¦æœ‰æ•ˆ, 1-true, 0-false public Pointer pstBrightness; // 视频亮度异常检测, 对应 NET_VIDEO_BRIGHTNESS_DETECTIONRESULT public int abContrast; // 用于表示æ¤æ¬¡ç»“æžœä¸è¿™ä¸ªè¯Šæ–项是å¦æœ‰æ•ˆ, 1-true, 0-false public Pointer pstContrast; // 视频对比度异常检测, 对应 NET_VIDEO_CONTRAST_DETECTIONRESULT public int abUnbalance; // 用于表示æ¤æ¬¡ç»“æžœä¸è¿™ä¸ªè¯Šæ–项是å¦æœ‰æ•ˆ, 1-true, 0-false public Pointer pstUnbalance; // 视频å色检测, 对应 NET_VIDEO_UNBALANCE_DETECTIONRESULT public int abNoise; // 用于表示æ¤æ¬¡ç»“æžœä¸è¿™ä¸ªè¯Šæ–项是å¦æœ‰æ•ˆ, 1-true, 0-false public Pointer pstNoise; // 视频噪声检测, 对应 NET_VIDEO_NOISE_DETECTIONRESULT public int abBlur; // 用于表示æ¤æ¬¡ç»“æžœä¸è¿™ä¸ªè¯Šæ–项是å¦æœ‰æ•ˆ, 1-true, 0-false public Pointer pstBlur; // 视频模糊检测, 对应 NET_VIDEO_BLUR_DETECTIONRESULT public int abSceneChange; // 用于表示æ¤æ¬¡ç»“æžœä¸è¿™ä¸ªè¯Šæ–项是å¦æœ‰æ•ˆ, 1-true, 0-false public Pointer pstSceneChange; // 视频场景å˜åŒ–检测, 对应 NET_VIDEO_SCENECHANGE_DETECTIONRESULT public int abVideoDelay; // 用于表示æ¤æ¬¡ç»“æžœä¸è¿™ä¸ªè¯Šæ–项是å¦æœ‰æ•ˆ, 1-true, 0-false public Pointer pstVideoDelay; // 视频延迟检测, 对应 NET_VIDEO_DELAY_DETECTIONRESUL public int abPTZMoving; // 用于表示æ¤æ¬¡ç»“æžœä¸è¿™ä¸ªè¯Šæ–项是å¦æœ‰æ•ˆ, 1-true, 0-false public Pointer pstPTZMoving; // 云å°æ“作检测, 对应 NET_PTZ_MOVING_DETECTIONRESULT public int abBlackAndWhite; // 用于表示æ¤æ¬¡ç»“æžœä¸è¿™ä¸ªè¯Šæ–项是å¦æœ‰æ•ˆ, 1-true, 0-false public Pointer pstBlackAndWhite; // 黑白图åƒæ£€æµ‹, 对应 NET_BLACK_WHITE_DETECTIONRESULT public int abDramaticChange; // 用于表示æ¤æ¬¡ç»“æžœä¸è¿™ä¸ªè¯Šæ–项是å¦æœ‰æ•ˆ, 1-true, 0-false public Pointer pstDramaticChange; // 场景剧å˜æ£€æµ‹, 对应 NET_DIAGNOSIS_DRAMATIC_DETECTIONRESULT public boolean abVideoAvailability; // 是å¦æ”¯æŒè§†é¢‘完好率监测 public Pointer pstVideoAvailability; // 视频完好率监测结果,对应NET_VIDEO_AVAILABILITY_DETECTIONRESULT public boolean abSnowflake; // 是å¦æ”¯æŒé›ªèŠ±å±æ£€æµ‹ public Pointer pstSnowflake; // 雪花å±æ£€æµ‹,对应NET_VIDEO_SNOWFLAKE_DETECTIONRESULT public boolean abAlgorithmType; //是å¦æ”¯æŒè§†é¢‘算法类型检测结果 public Pointer pstAlgorithmType; //视频算法类型检测结果,对应NET_VIDEO_ALGORITHMTYPE_DETECTIONRESULT public boolean abVideoFilckering; //是å¦æ”¯æŒè§†é¢‘闪频检测 public Pointer pstVideoFilckering; //视频闪频检测,对应NET_VIDEO_FILCKERING_DETECTION_RESULT public boolean abVideoLossFrame; //是å¦æ”¯æŒè§†é¢‘丢帧检测 public Pointer pstVideoLossFrame; //视频丢帧检测,对应NET_VIDEO_LOSS_FRAME_DETECTION_RESULT public NET_VIDEODIAGNOSIS_RESULT_INFO() { this.dwSize = this.size(); } } // 对应检测类型(NET_DIAGNOSIS_DITHER) 视频抖动检测结果 -- ç”»é¢å˜åŒ– 风å¹,晃动,转动包括云å°è½¬åŠ¨ public static class NET_VIDEO_DITHER_DETECTIONRESULT extends SdkStructure { public int dwSize; // æ¤ç»“æž„ä½“å¤§å° public int nValue; // 检测结果é‡åŒ–值 public int emState; // æ£€æµ‹ç»“æžœçŠ¶æ€ ä¸€èˆ¬å°äºŽæ˜¯æ£å¸¸,大于是异常,ä¸é—´æ˜¯è¦å‘Š, å‚考 NET_STATE_TYPE public int nDuration; // 状æ€æŒç»æ—¶é—´ 检测项æŒç»æ£€æµ‹æ—¶é—´ æš‚æ—¶æ— ç”¨ public byte[] szPicUrl= new byte[256]; // å¼‚å¸¸æ£€æµ‹ç»“æžœå›¾ç‰‡åœ°å€ public NET_VIDEO_DITHER_DETECTIONRESULT() { this.dwSize = this.size(); } } public static class NET_STATE_TYPE extends SdkStructure { public static final int NET_EM_STATE_ERR = 0; // 其它 public static final int NET_EM_STATE_NORMAL = 1; // "Normal" æ£å¸¸ public static final int NET_EM_STATE_WARNING = 2; // "Warning" è¦å‘Š public static final int NET_EM_STATE_ABNORMAL = 3; // "Abnormal" 异常 } // 对应检测类型(NET_DIAGNOSIS_STRIATION)视频æ¡çº¹æ£€æµ‹ç»“æžœ -- 相机å—到干扰出现异常æ¡çº¹ public static class NET_VIDEO_STRIATION_DETECTIONRESULT extends SdkStructure { public int dwSize; // æ¤ç»“æž„ä½“å¤§å° public int nValue; // 检测结果é‡åŒ–值 public int emState; // 检测结果状æ€, å‚考 NET_STATE_TYPE public int nDuration; // 状æ€æŒç»æ—¶é—´ public byte[] szPicUrl=new byte[256]; // å¼‚å¸¸æ£€æµ‹ç»“æžœå›¾ç‰‡åœ°å€ public NET_VIDEO_STRIATION_DETECTIONRESULT() { this.dwSize = this.size(); } } // 对应检测类型(NET_DIAGNOSIS_LOSS)视频丢失检测结果 -- æ–电 æ–线ç‰é€ æˆçš„ public static class NET_VIDEO_LOSS_DETECTIONRESULT extends SdkStructure { public int dwSize; // æ¤ç»“æž„ä½“å¤§å° public int emState; // 检测结果状æ€, å‚考 NET_STATE_TYPE public int nDuration; // 状æ€æŒç»æ—¶é—´ public byte[] szPicUrl=new byte[256]; // å¼‚å¸¸æ£€æµ‹ç»“æžœå›¾ç‰‡åœ°å€ public NET_VIDEO_LOSS_DETECTIONRESULT() { this.dwSize = this.size(); } } // 对应检测类型(NET_DIAGNOSIS_COVER)视频é®æŒ¡æ£€æµ‹ç»“æžœ -- 相机被é®æŒ¡äº† public static class NET_VIDEO_COVER_DETECTIONRESULT extends SdkStructure { public int dwSize; // æ¤ç»“æž„ä½“å¤§å° public int nValue; // 检测结果é‡åŒ–值 public int emState; // 检测结果状æ€, å‚考 NET_STATE_TYPE public int nDuration; // 状æ€æŒç»æ—¶é—´ public byte[] szPicUrl=new byte[256]; // å¼‚å¸¸æ£€æµ‹ç»“æžœå›¾ç‰‡åœ°å€ public NET_VIDEO_COVER_DETECTIONRESULT() { this.dwSize = this.size(); } } // 对应检测类型(NET_DIAGNOSIS_FROZEN)视频冻结检测结果 -- ç”»é¢ä¸åŠ¨å¤šä¹…为冻结 public static class NET_VIDEO_FROZEN_DETECTIONRESULT extends SdkStructure { public int dwSize; // æ¤ç»“æž„ä½“å¤§å° public int emState; // 检测结果状æ€, å‚考 NET_STATE_TYPE public int nDuration; // 状æ€æŒç»æ—¶é—´ public byte[] szPicUrl=new byte[256]; // å¼‚å¸¸æ£€æµ‹ç»“æžœå›¾ç‰‡åœ°å€ public NET_VIDEO_FROZEN_DETECTIONRESULT() { this.dwSize = this.size(); } } // 对应检测类型(NET_DIAGNOSIS_BRIGHTNESS)视频亮度异常检测结果 --以下是相机é…ç½®ä¸æ£ç¡®çš„一些现象检测 public static class NET_VIDEO_BRIGHTNESS_DETECTIONRESULT extends SdkStructure { public int dwSize; // æ¤ç»“æž„ä½“å¤§å° public int nValue; // 检测结果é‡åŒ–值 public int emState; // 检测结果状æ€, å‚考 NET_STATE_TYPE public int nDuration; // 状æ€æŒç»æ—¶é—´ public byte[] szPicUrl=new byte[256]; // å¼‚å¸¸æ£€æµ‹ç»“æžœå›¾ç‰‡åœ°å€ public NET_VIDEO_BRIGHTNESS_DETECTIONRESULT() { this.dwSize = this.size(); } } // 对应检测类型(NET_DIAGNOSIS_CONTRAST)视频对比度异常检测结果 public static class NET_VIDEO_CONTRAST_DETECTIONRESULT extends SdkStructure { public int dwSize; // æ¤ç»“æž„ä½“å¤§å° public int nValue; // 检测结果é‡åŒ–值 public int emState; // 检测结果状æ€, å‚考 NET_STATE_TYPE public int nDuration; // 状æ€æŒç»æ—¶é—´ public byte[] szPicUrl=new byte[256]; // å¼‚å¸¸æ£€æµ‹ç»“æžœå›¾ç‰‡åœ°å€ public NET_VIDEO_CONTRAST_DETECTIONRESULT() { this.dwSize = this.size(); } } // 对应检测类型(NET_DIAGNOSIS_UNBALANCE)视频å色异常检测结果 public static class NET_VIDEO_UNBALANCE_DETECTIONRESULT extends SdkStructure { public int dwSize; // æ¤ç»“æž„ä½“å¤§å° public int nValue; // 检测结果é‡åŒ–值 public int emState; // 检测结果状æ€, å‚考 NET_STATE_TYPE public int nDuration; // 状æ€æŒç»æ—¶é—´ public byte[] szPicUrl=new byte[256]; // å¼‚å¸¸æ£€æµ‹ç»“æžœå›¾ç‰‡åœ°å€ public NET_VIDEO_UNBALANCE_DETECTIONRESULT() { this.dwSize = this.size(); } } // 对应检测类型(NET_DIAGNOSIS_NOISE)视频噪声异常检测结果 public static class NET_VIDEO_NOISE_DETECTIONRESULT extends SdkStructure { public int dwSize; // æ¤ç»“æž„ä½“å¤§å° public int nValue; // 检测结果é‡åŒ–值 public int emState; // 检测结果状æ€, å‚考 NET_STATE_TYPE public int nDuration; // 状æ€æŒç»æ—¶é—´ public byte[] szPicUrl=new byte[256]; // å¼‚å¸¸æ£€æµ‹ç»“æžœå›¾ç‰‡åœ°å€ public NET_VIDEO_NOISE_DETECTIONRESULT() { this.dwSize = this.size(); } } // 对应检测类型(NET_DIAGNOSIS_BLUR)视频模糊异常检测结果 public static class NET_VIDEO_BLUR_DETECTIONRESULT extends SdkStructure { public int dwSize; // æ¤ç»“æž„ä½“å¤§å° public int nValue; // 检测结果é‡åŒ–值 public int emState; // 检测结果状æ€, å‚考 NET_STATE_TYPE public int nDuration; // 状æ€æŒç»æ—¶é—´ public byte[] szPicUrl=new byte[256]; // å¼‚å¸¸æ£€æµ‹ç»“æžœå›¾ç‰‡åœ°å€ public NET_VIDEO_BLUR_DETECTIONRESULT() { this.dwSize = this.size(); } } // 对应检测类型(NET_DIAGNOSIS_SCENECHANGE)视频场景å˜åŒ–检测结果 public static class NET_VIDEO_SCENECHANGE_DETECTIONRESULT extends SdkStructure { public int dwSize; // æ¤ç»“æž„ä½“å¤§å° public int nValue; // 检测结果é‡åŒ–值 public int emState; // 检测结果状æ€, å‚考 NET_STATE_TYPE public int nDuration; // 状æ€æŒç»æ—¶é—´ public byte[] szPicUrl=new byte[256]; // å¼‚å¸¸æ£€æµ‹ç»“æžœå›¾ç‰‡åœ°å€ public NET_VIDEO_SCENECHANGE_DETECTIONRESULT() { this.dwSize = this.size(); } } // CLIENT_DeleteDevConfig 输入å‚æ•° public static class NET_IN_DELETECFG extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public String szCommand; // é…置命令 public NET_IN_DELETECFG() { this.dwSize = this.size(); } } // CLIENT_DeleteDevConfig 输出å‚æ•° public static class NET_OUT_DELETECFG extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nError; // 设备返回的错误ç public int nRestart; // 设备是å¦é‡å¯ public int dwOptionMask; // 选项 具体è§æžšä¸¾ NET_EM_CONFIGOPTION public NET_OUT_DELETECFG() { this.dwSize = this.size(); } } public static class NET_EM_CONFIGOPTION extends SdkStructure { public static final int NET_EM_CONFIGOPTION_OK = 0; public static final int NET_EM_CONFIGOPTION_NEEDRESTART = 1; // 需è¦é‡å¯åº”ç”¨ç¨‹åº public static final int NET_EM_CONFIGOPTION_NEEDREBOOT = 2; // 需è¦é‡å¯ç³»ç»Ÿ public static final int NET_EM_CONFIGOPTION_WRITEFILEERROR = 4; // 写文件出错 public static final int NET_EM_CONFIGOPTION_CAPSNOTSUPPORT = 8; // 设备特性ä¸æ”¯æŒ public static final int NET_EM_CONFIGOPTION_VALIDATEFAILED = 16; // é…ç½®æ ¡éªŒå¤±è´¥ } // CLIENT_GetMemberNames 输入å‚æ•° public static class NET_IN_MEMBERNAME extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public String szCommand; // é…置命令 public NET_IN_MEMBERNAME() { this.dwSize = this.size(); } } // CLIENT_GetMemberNames 输出å‚æ•° public static class NET_OUT_MEMBERNAME extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nError; // 设备返回的错误ç public int nRestart; // 设备是å¦é‡å¯ public int nTotalNameCount; // å称个数 通过能力集得到,调用者填写 public int nRetNameCount; // 返回的实际å称个数 public Pointer pstNames; // å称数组 调用者申请内å˜,个数是 nTotalNameCount 个 NET_ARRAY // 由用户申请内å˜ï¼Œå¤§å°ä¸ºsizeof(NET_ARRAY)*nTotalNameCount public NET_OUT_MEMBERNAME() { this.dwSize = this.size(); } } // 视频诊æ–å‚数表(CFG_CMD_VIDEODIAGNOSIS_PROFILE),支æŒå¤šç§å‚数表,用表å称æ¥ç´¢å¼• 调用者申请内å˜å¹¶åˆå§‹åŒ– public static class CFG_VIDEODIAGNOSIS_PROFILE extends SdkStructure { public int nTotalProfileNum; // 调用者分é…å‚数表数 æ ¹æ®èƒ½åŠ›é›†èŽ·å– public int nReturnProfileNum; // 返回的实际å‚数表数 public Pointer pstProfiles; // è°ƒç”¨è€…åˆ†é… nTotalProfileNum 个 CFG_VIDEO_DIAGNOSIS_PROFILE } public static class CFG_VIDEO_DIAGNOSIS_PROFILE extends SdkStructure { public byte[] szName = new byte[MAX_PATH]; // å称Ansiç¼–ç public Pointer pstDither; // 视频抖动检测, 对应 CFG_VIDEO_DITHER_DETECTION public Pointer pstStriation; // 视频æ¡çº¹æ£€æµ‹, 对应 CFG_VIDEO_STRIATION_DETECTION public Pointer pstLoss; // 视频丢失检测, 对应 CFG_VIDEO_LOSS_DETECTION public Pointer pstCover; // 视频é®æŒ¡æ£€æµ‹, 对应 CFG_VIDEO_COVER_DETECTION public Pointer pstFrozen; // 视频冻结检测, 对应 CFG_VIDEO_FROZEN_DETECTION public Pointer pstBrightness; // 视频亮度异常检测, 对应 CFG_VIDEO_BRIGHTNESS_DETECTION public Pointer pstContrast; // 对比度异常检测, 对应 CFG_VIDEO_CONTRAST_DETECTION public Pointer pstUnbalance; // å色异常检测, 对应 CFG_VIDEO_UNBALANCE_DETECTION public Pointer pstNoise; // 噪声检测, 对应 CFG_VIDEO_NOISE_DETECTION public Pointer pstBlur; // 模糊检测, 对应 CFG_VIDEO_BLUR_DETECTION public Pointer pstSceneChange; // 场景å˜åŒ–检测, 对应 CFG_VIDEO_SCENECHANGE_DETECTION public Pointer pstVideoDelay; // 视频延时检测, 对应 CFG_VIDEO_DELAY_DETECTION public Pointer pstPTZMoving; // 云å°ç§»åŠ¨æ£€æµ‹, 对应 CFG_PTZ_MOVING_DETECTION public Pointer pstBlackAndWhite; // 黑白图åƒæ£€æµ‹, 对应 CFG_VIDEO_BLACKWHITE_DETECTION public Pointer pstDramaticChange; // 场景剧å˜æ£€æµ‹, 对应 CFG_VIDEO_DRAMATICCHANGE_DETECTION public Pointer pstVideoAvailability; // 视频完好率监测,对应 CFG_VIDEO_AVAILABILITY_DETECTION public Pointer pstSnowflake; // 雪花å±æ£€æµ‹,对应 CFG_VIDEO_SNOWFLAKE_DETECTION public Pointer pstVideoAlgorithmType; // 视频算法类型检测,对应CFG_VIDEO_ALGORITHMTYPE_DETECTION public Pointer pstuVideoFilckeringDetection; // 闪频检测,对应 CFG_VIDEO_FILCKERING_DETECTION public Pointer pstuVideoLossFrameDetection; // 丢帧检测,对应 CFG_VIDEO_LOSS_FRAME_DETECTION public int bIsCompareRecord; // 是å¦æ¯”è¾ƒå½•åƒ } ///////////////////////////////////视频诊æ–å‚æ•°é…ç½®/////////////////////////////////////// // 视频抖动检测 public static class CFG_VIDEO_DITHER_DETECTION extends SdkStructure { public int bEnable; // 使能é…ç½®, 1-true, 0-false public int nMinDuration; // 最çŸæŒç»æ—¶é—´ å•ä½ï¼šç§’ 0~65535 public byte byThrehold1; // 预è¦é˜€å€¼ å–值1-100 public byte byThrehold2; // 报è¦é˜€å€¼ å–值1-100 } // æ¡çº¹æ£€æµ‹ public static class CFG_VIDEO_STRIATION_DETECTION extends SdkStructure { public int bEnable; // 使能é…ç½®, 1-true, 0-false public int nMinDuration; // 最çŸæŒç»æ—¶é—´ å•ä½ï¼šç§’ 0~65535 public byte byThrehold1; // 预è¦é˜€å€¼ å–值1-100 public byte byThrehold2; // 报è¦é˜€å€¼ å–值1-100 public byte[] byReserved1 = new byte[2]; // å—èŠ‚å¯¹é½ public int bUVDetection; // UV分é‡æ˜¯å¦æ£€æµ‹, 1-true, 0-false } // 视频丢失检测 public static class CFG_VIDEO_LOSS_DETECTION extends SdkStructure { public int bEnable; // 使能é…ç½®, 1-true, 0-false public int nMinDuration; // 最çŸæŒç»æ—¶é—´ å•ä½ï¼šç§’ 0~65535 } // 视频é®æŒ¡æ£€æµ‹ public static class CFG_VIDEO_COVER_DETECTION extends SdkStructure { public int bEnable; // 使能é…ç½®, 1-true, 0-false public int nMinDuration; // 最çŸæŒç»æ—¶é—´ å•ä½ï¼šç§’ 0~65535 public byte byThrehold1; // 预è¦é˜€å€¼ å–值1-100 public byte byThrehold2; // 报è¦é˜€å€¼ å–值1-100 } // ç”»é¢å†»ç»“检测 public static class CFG_VIDEO_FROZEN_DETECTION extends SdkStructure { public int bEnable; // 使能é…ç½®, 1-true, 0-false public int nMinDuration; // 最çŸæŒç»æ—¶é—´ å•ä½ï¼šç§’ 0~65535 } // 亮度异常检测 public static class CFG_VIDEO_BRIGHTNESS_DETECTION extends SdkStructure { public int bEnable; // 使能é…ç½®, 1-true, 0-false public int nMinDuration; // 最çŸæŒç»æ—¶é—´ å•ä½ï¼šç§’ 0~65535 public byte bylowerThrehold1; // 预è¦é˜€å€¼ å–值1-100 public byte bylowerThrehold2; // 报è¦é˜€å€¼ å–值1-100 public byte byUpperThrehold1; // 预è¦é˜€å€¼ å–值1-100 public byte byUpperThrehold2; // 报è¦é˜€å€¼ å–值1-100 } // 对比度异常检测 public static class CFG_VIDEO_CONTRAST_DETECTION extends SdkStructure { public int bEnable; // 使能é…ç½®, 1-true, 0-false public int nMinDuration; // 最çŸæŒç»æ—¶é—´ å•ä½ï¼šç§’ 0~65535 public byte bylowerThrehold1; // 预è¦é˜€å€¼ å–值1-100 public byte bylowerThrehold2; // 报è¦é˜€å€¼ å–值1-100 public byte byUpperThrehold1; // 预è¦é˜€å€¼ å–值1-100 public byte byUpperThrehold2; // 报è¦é˜€å€¼ å–值1-100 } // å色检测 public static class CFG_VIDEO_UNBALANCE_DETECTION extends SdkStructure { public int bEnable; // 使能é…ç½®, 1-true, 0-false public int nMinDuration; // 最çŸæŒç»æ—¶é—´ å•ä½ï¼šç§’ 0~65535 public byte byThrehold1; // 预è¦é˜€å€¼ å–值1-100 public byte byThrehold2; // 报è¦é˜€å€¼ å–值1-100 } // 噪声检测 public static class CFG_VIDEO_NOISE_DETECTION extends SdkStructure { public int bEnable; // 使能é…ç½®, 1-true, 0-false public int nMinDuration; // 最çŸæŒç»æ—¶é—´ å•ä½ï¼šç§’ 0~65535 public byte byThrehold1; // 预è¦é˜€å€¼ å–值1-100 public byte byThrehold2; // 报è¦é˜€å€¼ å–值1-100 } // 模糊检测 public static class CFG_VIDEO_BLUR_DETECTION extends SdkStructure { public int bEnable; // 使能é…ç½®, 1-true, 0-false public int nMinDuration; // 最çŸæŒç»æ—¶é—´ å•ä½ï¼šç§’ 0~65535 public byte byThrehold1; // 预è¦é˜€å€¼ å–值1-100 public byte byThrehold2; // 报è¦é˜€å€¼ å–值1-100 } // 场景å˜åŒ–检测 public static class CFG_VIDEO_SCENECHANGE_DETECTION extends SdkStructure { public int bEnable; // 使能é…ç½®, 1-true, 0-false public int nMinDuration; // 最çŸæŒç»æ—¶é—´ å•ä½ï¼šç§’ 0~65535 public byte byThrehold1; // 预è¦é˜€å€¼ å–值1-100 public byte byThrehold2; // 报è¦é˜€å€¼ å–值1-100 } // 视频延时检测 public static class CFG_VIDEO_DELAY_DETECTION extends SdkStructure { public int bEnable; // 使能é…ç½®, 1-true, 0-false } // 云å°ç§»åŠ¨æ£€æµ‹ public static class CFG_PTZ_MOVING_DETECTION extends SdkStructure { public int bEnable; // 使能é…ç½®, 1-true, 0-false } // 黑白图åƒæ£€æµ‹ public static class CFG_VIDEO_BLACKWHITE_DETECTION extends SdkStructure { public int bEnable; // 使能é…ç½®, 1-true, 0-false public int nEarlyWarning; // 预è¦é˜ˆå€¼ public int nAlarm; // 报è¦é˜ˆå€¼ public int nMinDuration; // 最çŸæŒç»æ—¶é—´ } // 场景剧å˜æ£€æµ‹ public static class CFG_VIDEO_DRAMATICCHANGE_DETECTION extends SdkStructure { public int bEnable; // 使能é…ç½®, 1-true, 0-false public int nEarlyWarning; // 预è¦é˜ˆå€¼ public int nAlarm; // 报è¦é˜ˆå€¼ public int nMinDuration; // 最çŸæŒç»æ—¶é—´ } // 视频诊æ–任务表(CFG_CMD_VIDEODIAGNOSIS_TASK),ä¸åŒçš„任务通过åå索引 调用者申请内å˜å¹¶åˆå§‹åŒ– public static class CFG_VIDEODIAGNOSIS_TASK extends SdkStructure { public int nTotalTaskNum; // 调用者分é…任务个数 æ ¹æ®èƒ½åŠ›é›†èŽ·å– public int nReturnTaskNum; // 返回实际任务个数 public Pointer pstTasks; // 任务é…ç½® 调用者分é…å†…å˜ nTotalTaskNum 个 CFG_DIAGNOSIS_TASK } public static class CFG_DIAGNOSIS_TASK extends SdkStructure { public byte[] szTaskName = new byte[MAX_PATH]; // 任务å称Ansiç¼–ç public byte[] szProfileName = new byte[MAX_PATH]; // 本任务使用的诊æ–å‚数表åAnsiç¼–ç public int nTotalSourceNum; // 调用者分é…任务数æ®æºçš„个数 æ ¹æ®èƒ½åŠ›é›†èŽ·å– public int nReturnSourceNum; // 返回实际任务数æ®æºçš„个数 public Pointer pstSources; // 任务数æ®æº 调用者分é…å†…å˜ nTotalSourceNum 个 CFG_TAST_SOURCES } public static class CFG_TAST_SOURCES extends SdkStructure { // 能力 public byte abDeviceID; // abDeviceID(使用szDeviceID) å’Œ abRemoteDevice(使用stRemoteDevice) 必须有一个为true,å¦åˆ™Sources是null public byte abRemoteDevice; public byte[] szDeviceID = new byte[MAX_PATH]; // 设备ID public CFG_TASK_REMOTEDEVICE stRemoteDevice = new CFG_TASK_REMOTEDEVICE(); // è®¾å¤‡è¯¦ç»†ä¿¡æ¯ public int nVideoChannel; // 视频通é“å· public int emVideoStream; // 视频ç æµç±»åž‹, å‚考 CFG_EM_STREAM_TYPE public int nDuration; // æŒç»è¯Šæ–时间 public int abStartTime; // 0 表示æºä¸ºå®žæ—¶ç æµ, stuStartTimeå—æ®µæ— æ•ˆ; 1表示æºä¸ºå½•åƒæ–‡ä»¶, stuStartTimeå—段有效 public CFG_NET_TIME stuStartTime; // 当abStartTime为TRUE时有效,表示æºä¸æ˜¯å®žæ—¶é¢„览ç æµ, 而是录åƒæ–‡ä»¶ï¼Œè¯¥æ—¶é—´è¡¨ç¤ºè¦åˆ†æžçš„录åƒçš„开始时间 // stuStartTimeå—段作废,åŽç»éƒ½ä½¿ç”¨stuDiagnosisRecordInfo,ä¿ç•™æ¤å—段åªä¸ºå…¼å®¹è€è®¾å¤‡ public int abDiagnosisRecordInfo; // 表示stuDiagnosisRecordInfoå—段是å¦æœ‰æ•ˆ; è‹¥æºä¸ºå½•åƒæ–‡ä»¶åˆ™è®¾ç½®ä¸ºTRUE, å¦åˆ™è®¾ç½®æˆFALSE. public NET_VIDEO_DIAGNOSIS_RECORD_INFO stuDiagnosisRecordInfo; // 视频诊æ–录åƒä¿¡æ¯, 当 abDiagnosisRecordInfo 为TRUE有效 public int emSourceInputType; // 视频æºè¾“入方å¼,EM_VIDEO_CHANNEL_SOURCE_INPUT_TYPE public byte[] szPath=new byte[MAX_PATH]; // 视频æµåœ°å€ï¼Œå—段ä¸ä¸ºç©ºä¼˜å…ˆä½¿ç”¨ public int abCompareRecordInfo; // 表示stuCompareRecordInfoå—段是å¦æœ‰æ•ˆ; public NET_VIDEO_DIAGNOSIS_COMPARE_RECORD_INFO stuCompareRecordInfo; // 比较录åƒè¯¦ç»†ä¿¡æ¯ } // è®¾å¤‡è¯¦ç»†ä¿¡æ¯ public static class CFG_TASK_REMOTEDEVICE extends SdkStructure { public byte[] szAddress = new byte[MAX_PATH]; // 设备地å€æˆ–域å public int dwPort; // 端å£å· public byte[] szUserName = new byte[MAX_PATH]; // 用户å public byte[] szPassword = new byte[MAX_PATH]; // 密ç 明文 public byte[] szProtocolType = new byte[MAX_PATH];// 连接设备的å议类型 public Pointer pVideoInput; // 视频输入通é“,用户申请nMaxVideoInputs 个 CFG_RemoteDeviceVideoInput public int nMaxVideoInputs; // 视频输入通é“最大数 public int nRetVideoInputs; // 返回的视频输入通é“æ•° } public static class CFG_EM_STREAM_TYPE extends SdkStructure { public static final int CFG_EM_STREAM_ERR = 0; // 其它 public static final int CFG_EM_STREAM_MAIN = 1; // "Main"-主ç æµ public static final int CFG_EM_STREAM_EXTRA_1 = 2; // "Extra1"-è¾…ç æµ1 public static final int CFG_EM_STREAM_EXTRA_2 = 3; // "Extra2"-è¾…ç æµ2 public static final int CFG_EM_STREAM_EXTRA_3 = 4; // "Extra3"-è¾…ç æµ3 public static final int CFG_EM_STREAM_SNAPSHOT = 5; // "Snapshot"-抓图ç æµ public static final int CFG_EM_STREAM_OBJECT = 6; // "Object"-ç‰©ä½“æµ } // 频诊æ–计划表(CFG_CMD_VIDEODIAGNOSIS_PROJECT),ä¸åŒçš„计划通过åå—索引 调用者申请内å˜å¹¶åˆå§‹åŒ– public static class CFG_VIDEODIAGNOSIS_PROJECT extends SdkStructure { public int nTotalProjectNum; // 调用者分é…计划个数 æ ¹æ®èƒ½åŠ›é›†èŽ·å– public int nReturnProjectNum; // 返回实际计划个数 public Pointer pstProjects; // 计划é…ç½® 调用者分é…å†…å˜ nTotalProjectNum 个 CFG_DIAGNOSIS_PROJECT } public static class CFG_DIAGNOSIS_PROJECT extends SdkStructure { public byte[] szProjectName = new byte[MAX_PATH]; // 计划å称Ansiç¼–ç public int nTotalTaskNum; // 调用者分é…任务列表个数 æ ¹æ®èƒ½åŠ›é›†èŽ·å– public int nReturnTaskNum; // 返回实际任务列表个数 public Pointer pstProjectTasks; // 任务列表 调用者分é…å†…å˜ nTotalTaskNum 个 CFG_PROJECT_TASK } // 视频诊æ–计划 public static class CFG_PROJECT_TASK extends SdkStructure { public int bEnable; // 任务是å¦ä½¿èƒ½, 1-true, 0-false public byte[] szTaskName = new byte[MAX_PATH]; // 任务å称Ansiç¼–ç public TIME_SECTION_WEEK_DAY_6[] stTimeSectionWeekDay = (TIME_SECTION_WEEK_DAY_6[])new TIME_SECTION_WEEK_DAY_6().toArray(WEEK_DAY_NUM); // 任务时间段 public int bIsCycle; // 任务是å¦å¾ªçŽ¯, 1表示循环, 0表示ä¸å¾ªçŽ¯ //public int emTaskType; // 任务类型 EM_VIDEODIAGNOSIS_PROJECT_TASK_TYPE public int bIsRepeat; // 任务是å¦é‡å¤æ‰§è¡Œï¼Œï¼ˆè·¨å¤©/周是å¦é‡å¤æ‰§è¡Œï¼‰ public int nCycleInterval; // 任务循环间隔,å•ä½ç§’ } // 任务类型 public static class EM_VIDEODIAGNOSIS_PROJECT_TASK_TYPE { public static final int EM_VIDEODIAGNOSIS_PROJECT_TASK_TYPE_UNKNOWN = 0; // 未知 public static final int EM_VIDEODIAGNOSIS_PROJECT_TASK_TYPE_BY_TIMESECTION = 1; // 基于TimeSection进行分æžï¼Œåˆ†æžæ—¶é—´æ ¹æ®TimeSection控制 public static final int EM_VIDEODIAGNOSIS_PROJECT_TASK_TYPE_BY_CHANNELNUM = 2; // 基于通é“æ•°é‡è¿›è¡Œåˆ†æžï¼Œä»»åŠ¡ä¸‹å‘ç«‹å³æ‰§è¡Œï¼Œå•æ¬¡ä»»åŠ¡ç›´è‡³æ‰€æœ‰é€šé“分æžå®Œæ¯•æ‰åœæ¢ï¼ŒIsCycle为true则开å¯ä¸‹æ¬¡åˆ†æž,è‹¥æ— æ¤å—段默认基于TimeSection } // 获å–视频诊æ–进行状æ€( CFG_CMD_VIDEODIAGNOSIS_GETSTATE )对应结构体 public static class CFG_VIDEODIAGNOSIS_STATE_INFO extends SdkStructure { public int bEnable; // 是å¦ä½¿èƒ½, 1-true, 0-false public int bRunning; // 是å¦æ£åœ¨è¿è¡Œ, 1-true, 0-false, 使能开å¯ï¼Œå¹¶ä¸”当å‰æœ‰å·¥ä½œä»»åŠ¡æ£åœ¨è¿›è¡Œï¼Œæ²¡æœ‰é”™è¯¯å‘生。 public byte[] szCurrentProject = new byte[MAX_PATH]; // 当å‰è®¡åˆ’å称 public byte[] szCurrentTask = new byte[MAX_PATH]; // 当å‰ä»»åŠ¡å称 public byte[] szCurrentProfile = new byte[MAX_PATH]; // 当å‰ä»»åŠ¡é…ç½®å‚数表å称 public int nCurrentSourceCount; // 当å‰ä»»åŠ¡è½®è®è§†é¢‘æºä¸ªæ•° public int nCurrentSourceIndex; // 当å‰ä»»åŠ¡å½“å‰è§†é¢‘æºåºå· 从0开始 public CFG_TIME_SECTION stCurrentTimeSection; // 当å‰è®¡åˆ’时间段 public int nTaskCountOfProject; // 当å‰è®¡åˆ’总任务数 public int nIndexOfCurrentTask; // 当å‰ä»»åŠ¡åºå· 从0开始 public int emTaskState; // 任务è¿è¡ŒçŠ¶æ€,对应枚举EM_VIDEODIAGNOSIS_TASK_STATE } // 云å°æ”¯æŒèƒ½åŠ›ä¿¡æ¯( CFG_CAP_CMD_PTZ_ENABLE )对应结构体 public static class CFG_CAP_PTZ_ENABLEINFO extends SdkStructure { public int bEnable; //该通é“是å¦æ”¯æŒäº‘å° } // CLIENT_GetVideoDiagnosisState å…¥å‚ public static class NET_IN_GET_VIDEODIAGNOSIS_STATE extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public byte[] szProject = new byte[128]; // 计划å,为空表示所有执行的计划 public NET_IN_GET_VIDEODIAGNOSIS_STATE() { this.dwSize = this.size(); } } // 诊æ–çŠ¶æ€ public static class VIDEODIAGNOSIS_STATE extends SdkStructure { public int bEnable; // 是å¦ä½¿èƒ½ public int bRunning; // 是å¦æ£åœ¨è¿è¡Œ 使能开å¯ï¼Œå¹¶ä¸”当å‰æœ‰å·¥ä½œä»»åŠ¡æ£åœ¨è¿›è¡Œï¼Œæ²¡æœ‰é”™è¯¯å‘生。 public byte[] szCurrentProject = new byte[MAX_PATH]; // 当å‰è®¡åˆ’å称 public byte[] szCurrentTask = new byte[MAX_PATH]; // 当å‰ä»»åŠ¡å称 public byte[] szCurrentProfile = new byte[MAX_PATH]; // 当å‰ä»»åŠ¡é…ç½®å‚数表å称 public int nCurrentSourceCount; // 当å‰ä»»åŠ¡è½®è®è§†é¢‘æºä¸ªæ•° public int nCurrentSourceIndex; // 当å‰ä»»åŠ¡å½“å‰è§†é¢‘æºåºå· 从0开始 public NET_TSECT stCurrentTimeSection; // 当å‰è®¡åˆ’时间段 public int nTaskCountOfProject; // 当å‰è®¡åˆ’总任务数 public int nIndexOfCurrentTask; // 当å‰ä»»åŠ¡åºå· 从0开始 public byte[] byReserved = new byte[512]; // ä¿ç•™å—节 } // CLIENT_GetVideoDiagnosisState å‡ºå‚ public static class NET_OUT_GET_VIDEODIAGNOSIS_STATE extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public VIDEODIAGNOSIS_STATE[] stuState = (VIDEODIAGNOSIS_STATE[])new VIDEODIAGNOSIS_STATE().toArray(2);// 工作状æ€,æ•°ç»„ä¸‹æ ‡0:Tour,1:RealTime public NET_OUT_GET_VIDEODIAGNOSIS_STATE() { this.dwSize = this.size(); } } // CLIENT_RadiometryAttach å…¥å‚ public static class NET_IN_RADIOMETRY_ATTACH extends SdkStructure { public int dwSize; public int nChannel; // 视频通é“å· -1 表示全部 public Callback cbNotify; // 状æ€å›žè°ƒå‡½æ•°æŒ‡é’ˆ, 对应回调函数 fRadiometryAttachCB public Pointer dwUser; // ç”¨æˆ·æ•°æ® public NET_IN_RADIOMETRY_ATTACH() { this.dwSize = this.size(); } } // CLIENT_RadiometryAttach å‡ºå‚ public static class NET_OUT_RADIOMETRY_ATTACH extends SdkStructure { public int dwSize; public NET_OUT_RADIOMETRY_ATTACH() { this.dwSize = this.size(); } } // çƒå›¾æ•°æ® public static class NET_RADIOMETRY_DATA extends SdkStructure { public NET_RADIOMETRY_METADATA stMetaData; // å…ƒæ•°æ® public Pointer pbDataBuf; // çƒå›¾æ•°æ®ç¼“冲区(压缩过的数æ®,里é¢æ˜¯æ¯ä¸ªåƒç´ 点的温度数æ®,å¯ä»¥ä½¿ç”¨å…ƒæ•°æ®ä¿¡æ¯è§£åŽ‹ï¼‰ public int dwBufSize; // çƒå›¾æ•°æ®ç¼“å†²åŒºå¤§å° public byte[] reserved = new byte[512]; } // çƒå›¾å…ƒæ•°æ®ä¿¡æ¯ public static class NET_RADIOMETRY_METADATA extends SdkStructure { public int nHeight; // 高 public int nWidth; // 宽 public int nChannel; // é€šé“ public NET_TIME stTime; // 获å–æ•°æ®æ—¶é—´ public int nLength; // æ•°æ®å¤§å° public byte[] szSensorType = new byte[64]; // 机芯类型 public int nUnzipParamR; // 解压缩å‚æ•°R public int nUnzipParamB; // 解压缩å‚æ•°B public int nUnzipParamF; // 解压缩å‚æ•°F public int nUnzipParamO; // 解压缩å‚æ•°O public byte[] Reserved = new byte[256]; } // CLIENT_RadiometryFetch å…¥å‚ public static class NET_IN_RADIOMETRY_FETCH extends SdkStructure { public int dwSize; public int nChannel; // 通é“å·, 通é“å·è¦ä¸Žè®¢é˜…时一致, -1除外 public NET_IN_RADIOMETRY_FETCH() { this.dwSize = this.size(); } } // CLIENT_RadiometryFetch å‡ºå‚ public static class NET_OUT_RADIOMETRY_FETCH extends SdkStructure { public int dwSize; public int nStatus; // 0: 未知, 1: 空闲, 2: 获å–çƒå›¾ä¸ public NET_OUT_RADIOMETRY_FETCH() { this.dwSize = this.size(); } } // 设备信æ¯ç±»åž‹,对应 CLIENT_StartFind CLIENT_DoFind CLIENT_StopFind æŽ¥å£ public static class NET_FIND extends SdkStructure { public static final int NET_FIND_RADIOMETRY = 0; // çƒæˆåƒæ¸©åº¦æŸ¥è¯¢, pInBuf= NET_IN_RADIOMETRY_*FIND*, pOutBuf= NET_OUT_RADIOMETRY_*FIND* public static final int NET_FIND_POS_EXCHANGE = 1; // POS交易信æ¯æŸ¥è¯¢,pInBuf = NET_IN_POSEXCHANGE_*FIND*,pOutBuf= NET_OUT_POSEXCHANGE_*FIND* } //çƒæˆåƒæŸ¥è¯¢ä¿å˜å‘¨æœŸ public static class EM_RADIOMETRY_PERIOD extends SdkStructure { public static final int EM_RADIOMETRY_PERIOD_UNKNOWN = 0; // 未知 public static final int EM_RADIOMETRY_PERIOD_5 = 5; // 5分钟记录表,默认 public static final int EM_RADIOMETRY_PERIOD_10 = 10; // 10分钟记录表 public static final int EM_RADIOMETRY_PERIOD_15 = 15; // 15分钟记录表 public static final int EM_RADIOMETRY_PERIOD_30 = 30; // 30分钟记录表 } // CLIENT_StartFind æŽ¥å£ NET_FIND_RADIOMETRY å‘½ä»¤å…¥å‚ public static class NET_IN_RADIOMETRY_STARTFIND extends SdkStructure { public int dwSize; public NET_TIME stStartTime; // 查询开始时间 public NET_TIME stEndTime; // 查询结æŸæ—¶é—´ public int nMeterType; // 查询类别,è§NET_RADIOMETRY_METERTYPE public int nChannel; // 通é“å· public int emPeriod; // 所查询表的ä¿å˜å‘¨æœŸ,详è§EM_RADIOMETRY_PERIOD public NET_IN_RADIOMETRY_STARTFIND() { this.dwSize = this.size(); } } // CLIENT_StartFind æŽ¥å£ NET_FIND_RADIOMETRY å‘½ä»¤å‡ºå‚ public static class NET_OUT_RADIOMETRY_STARTFIND extends SdkStructure { public int dwSize; public int nFinderHanle; // å–到的查询å¥æŸ„ public int nTotalCount; // 符åˆæ¤æ¬¡æŸ¥è¯¢æ¡ä»¶çš„结果总æ¡æ•° public NET_OUT_RADIOMETRY_STARTFIND() { this.dwSize = this.size(); } } // CLIENT_DoFind æŽ¥å£ NET_FIND_RADIOMETRY å‘½ä»¤å…¥å‚ public static class NET_IN_RADIOMETRY_DOFIND extends SdkStructure { public int dwSize; public int nFinderHanle; // 查询å¥æŸ„ public int nBeginNumber; // æœ¬æ¬¡æŸ¥è¯¢å¼€å§‹çš„ç´¢å¼•å· public int nCount; // 本次查询æ¡æ•°,最大为NET_IN_RADIOMETRY_DOFIND_MAX public NET_IN_RADIOMETRY_DOFIND() { this.dwSize = this.size(); } } // çƒæˆåƒæŸ¥è¯¢è¿”回的查询结果 public static class NET_RADIOMETRY_QUERY extends SdkStructure { public NET_TIME stTime; // 记录时间 public int nPresetId; // é¢„ç½®ç‚¹ç¼–å· public int nRuleId; // è§„åˆ™ç¼–å· public byte[] szName = new byte[64]; // 查询项å称 public NET_POINT stCoordinate; // 查询测温点åæ ‡ public int nChannel; // 通é“å· public NET_RADIOMETRYINFO stTemperInfo; // 测温信æ¯,ç›®å‰nTemperMid, nTemperStd æˆå‘˜æ— 效 //public NET_POINT stCoordinates[8]; // 查询测温点åæ ‡ public NET_POINT[] stCoordinates = (NET_POINT[])new NET_POINT().toArray(8); public int nCoordinateNum; // 查询温度点åæ ‡è¿”å›žçš„ä¸ªæ•° public byte[] reserved = new byte[220]; } // CLIENT_DoFind æŽ¥å£ NET_FIND_RADIOMETRY å‘½ä»¤å‡ºå‚ public static class NET_OUT_RADIOMETRY_DOFIND extends SdkStructure { public int dwSize; public int nFound; // 实际查询到的点数 public NET_RADIOMETRY_QUERY[] stInfo = (NET_RADIOMETRY_QUERY[])new NET_RADIOMETRY_QUERY().toArray(NET_RADIOMETRY_DOFIND_MAX); // æ¸©åº¦ç»Ÿè®¡ä¿¡æ¯ public NET_OUT_RADIOMETRY_DOFIND() { this.dwSize = this.size(); } } // CLIENT_StopFind æŽ¥å£ NET_FIND_RADIOMETRY å‘½ä»¤å…¥å‚ public static class NET_IN_RADIOMETRY_STOPFIND extends SdkStructure { public int dwSize; public int nFinderHanle; // 查询å¥æŸ„ public NET_IN_RADIOMETRY_STOPFIND() { this.dwSize = this.size(); } } // CLIENT_StopFind æŽ¥å£ NET_FIND_RADIOMETRY å‘½ä»¤å‡ºå‚ public static class NET_OUT_RADIOMETRY_STOPFIND extends SdkStructure { public int dwSize; public NET_OUT_RADIOMETRY_STOPFIND() { this.dwSize = this.size(); } } // IPC报è¦,IPC通过DVR或NVR上报的本地报è¦(对应事件 NET_ALARM_IPC) public static class ALARM_IPC_INFO extends SdkStructure { public int dwSize; public int nChannelID; // 通é“å· public int nEventAction; // 事件动作,0表示脉冲事件,1表示æŒç»æ€§äº‹ä»¶å¼€å§‹,2表示æŒç»æ€§äº‹ä»¶ç»“æŸ; public NET_TIME_EX UTC; // 事件å‘生的时间 public byte[] szName = new byte[MAX_ALARM_CHANNEL_NAME_LEN]; // 报è¦é€šé“å称 public int nAlarmChannel; // 报è¦è¾“入通é“å·ï¼Œä»Ž0开始。没有该å—æ®µè¡¨ç¤ºæ— æ³•åŒºåˆ†æŠ¥è¦é€šé“å·ã€‚ public ALARM_IPC_INFO() { this.dwSize = this.size(); } } // è“牙开门记录集信æ¯æŸ¥è¯¢æ¡ä»¶ public static class FIND_RECORD_ACCESS_BLUETOOTH_INFO_CONDITION extends SdkStructure { public int dwSize; public byte[] szUserName = new byte[NET_COMMON_STRING_128]; // 用户å public FIND_RECORD_ACCESS_BLUETOOTH_INFO_CONDITION() { this.dwSize = this.size(); } } // è“ç‰™å¼€é—¨è®°å½•é›†ä¿¡æ¯ public static class NET_RECORD_ACCESS_BLUETOOTH_INFO extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nRecNo; // 记录集编å·,åªè¯» public byte[] szUserName = new byte[NET_COMMON_STRING_128]; // 用户å public byte[] szPassword = new byte[NET_COMMON_STRING_128]; // 密ç public byte[] szMac = new byte[NET_COMMON_STRING_32]; // macåœ°å€ public byte[] szNote = new byte[NET_COMMON_STRING_128]; // ç”¨æˆ·å¤‡æ³¨ä¿¡æ¯ public NET_RECORD_ACCESS_BLUETOOTH_INFO() { this.dwSize = this.size(); } } // 智能é”æ·»åŠ æ›´æ–°ç”¨æˆ·ä¿¡æ¯æŽ¥å£ CLIENT_UpdateSmartLockUser å…¥å‚ public static class NET_IN_SMARTLOCK_UPDATE_USER_INFO extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public byte[] szSerialNumber = new byte[32]; // 设备åºåˆ—å· public byte[] szCredentialHolder = new byte[16]; // 身份拥有者(与AccessControlCard记录集ä¸çš„UserID概念一致) public byte[] szUserName = new byte[32]; // 用户å称 public NET_TIME stuStartTime; // 起始时间 public NET_TIME stuEndTime; // 结æŸæ—¶é—´ public byte[] szReserve = new byte[512]; // ä¿ç•™å—段 public int nCardInfoNum; // å¡ä¿¡æ¯æ•°é‡ public NET_SMARTLOCK_CARDINFO[] stuCardInfo = (NET_SMARTLOCK_CARDINFO[])new NET_SMARTLOCK_CARDINFO().toArray(4); // å¡çš„ä¿¡æ¯ public int nPwdInfoNum; // 密ç ä¿¡æ¯æ•°é‡ public NET_SMARTLOCK_PWDINFO[] stuPwdInfo = (NET_SMARTLOCK_PWDINFO[])new NET_SMARTLOCK_PWDINFO().toArray(4); // 密ç ä¿¡æ¯ public int nFingerPrintInfoNum; // 密ç ä¿¡æ¯æ•°é‡ public NET_SMARTLOCK_FPINFO[] stuFingerPrintInfo = (NET_SMARTLOCK_FPINFO[])new NET_SMARTLOCK_FPINFO().toArray(4); // ä¿¡æ¯ä¿¡æ¯ public int nTaskID; // 任务ID public NET_IN_SMARTLOCK_UPDATE_USER_INFO() { this.dwSize = this.size(); } } // 智能é”æ·»åŠ æ›´æ–°ç”¨æˆ·ä¿¡æ¯æŽ¥å£ CLIENT_UpdateSmartLockUser å‡ºå‚ public static class NET_OUT_SMARTLOCK_UPDATE_USER_INFO extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public NET_OUT_SMARTLOCK_UPDATE_USER_INFO() { this.dwSize = this.size(); } } // å¡ç‰‡ä¿¡æ¯ public static class NET_SMARTLOCK_CARDINFO extends SdkStructure { public int emType; // 开门类型, å‚考 NET_ACCESS_METHOD public int nIndex; // 用户信æ¯åºå· public byte[] szCardNo = new byte[32]; // å¡å· public int emCardType; // å¡ç±»åž‹, å‚考 NET_ACCESSCTLCARD_TYPE public byte[] szReserve = new byte[512]; // ä¿ç•™å—段 } // 密ç ä¿¡æ¯ public static class NET_SMARTLOCK_PWDINFO extends SdkStructure { public int emType; // 开门类型, å‚考 NET_ACCESS_METHOD public int nIndex; // 用户信æ¯åºå· public byte[] szPassword = new byte[32]; // 密ç public int dwUseTime; // 使用次数 public byte[] szReserve = new byte[512]; // ä¿ç•™å—段 } // ä¿¡æ¯ä¿¡æ¯ public static class NET_SMARTLOCK_FPINFO extends SdkStructure { public int emType; // 开门类型, å‚考 NET_ACCESS_METHOD public int nIndex; // 用户信æ¯åºå· public int nFingerprintLen; // ä¿¡æ¯æ•°æ®é•¿åº¦,ä¸è¶…过1.5K public Pointer pFingerprintData; // ä¿¡æ¯æ•°æ® public byte[] szReserve = new byte[512]; // ä¿ç•™å—段 } // æŽ§åˆ¶æ–¹å¼ public static class NET_ACCESS_METHOD extends SdkStructure { public static final int NET_ACCESS_METHOD_UNKNOWN = 0; // 未知 public static final int NET_ACCESS_METHOD_CARD = 1; // å¡ public static final int NET_ACCESS_METHOD_PASSWORD = 2; // 密ç public static final int NET_ACCESS_METHOD_FINGERPRINT = 3; // ä¿¡æ¯ } // 获å–当å‰æ™ºèƒ½é”çš„æ³¨å†Œç”¨æˆ·ä¿¡æ¯ CLIENT_GetSmartLockRegisterInfo å…¥å‚ (æ¯æ¬¡èŽ·å–最多获å–32æ¡ä¿¡æ¯) public static class NET_IN_GET_SMART_LOCK_REGISTER_INFO extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public byte[] szSerialNumber = new byte[MAX_COMMON_STRING_32]; // 设备åºåˆ—å· public int nOffset; // 用户列表的åç§»é‡ public NET_IN_GET_SMART_LOCK_REGISTER_INFO() { this.dwSize = this.size(); } } // æ³¨å†Œç”¨æˆ·çš„ä¿¡æ¯ public static class NET_SMART_LOCK_REGISTER_INFO extends SdkStructure { public int emType; // å¼€é”æ–¹å¼ç±»åž‹, å‚考 NET_ACCESS_METHOD public byte[] szUserID = new byte[MAX_COMMON_STRING_16]; // 用户ID(éžAccessControlCard记录集ä¸çš„UserID概念) public byte[] szName = new byte[MAX_COMMON_STRING_32]; // 用户å称 public byte[] byReserved = new byte[512]; // ä¿ç•™å—段 } // 获å–当å‰æ™ºèƒ½é”çš„æ³¨å†Œç”¨æˆ·ä¿¡æ¯ CLIENT_GetSmartLockRegisterInfo å‡ºå‚ public static class NET_OUT_GET_SMART_LOCK_REGISTER_INFO extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nTotalCount; // æ€»çš„ç”¨æˆ·æ•°é‡ public int nReturnCount; // å®žé™…è¿”å›žçš„ç”¨æˆ·æ•°é‡ public NET_SMART_LOCK_REGISTER_INFO[] stuRegisterInfo = (NET_SMART_LOCK_REGISTER_INFO[])new NET_SMART_LOCK_REGISTER_INFO().toArray(MAX_NUMBER_REGISTER_INFO); // æ³¨å†Œç”¨æˆ·çš„ä¿¡æ¯ public NET_OUT_GET_SMART_LOCK_REGISTER_INFO() { this.dwSize = this.size(); } } // 智能é”ä¿®æ”¹ç”¨æˆ·ä¿¡æ¯ CLIENT_SetSmartLockUserName å…¥å‚ public static class NET_IN_SET_SMART_LOCK_USERNAME extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int emType; // å¼€é”æ–¹å¼ç±»åž‹, å‚考 NET_ACCESS_METHOD public byte[] szSerialNumber = new byte[MAX_COMMON_STRING_32]; // 智能é”åºåˆ—å· public byte[] szUserID = new byte[MAX_COMMON_STRING_16]; // 用户ID(éžAccessControlCard记录集ä¸çš„UserID概念) public byte[] szName = new byte[MAX_COMMON_STRING_32]; // 需è¦ä¿®æ”¹æˆçš„å称 public NET_IN_SET_SMART_LOCK_USERNAME() { this.dwSize = this.size(); } } // 智能é”ä¿®æ”¹ç”¨æˆ·ä¿¡æ¯ CLIENT_SetSmartLockUserName å‡ºå‚ public static class NET_OUT_SET_SMART_LOCK_USERNAME extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public NET_OUT_SET_SMART_LOCK_USERNAME() { this.dwSize = this.size(); } } // 智能é”åˆ é™¤ç”¨æˆ·æŽ¥å£ CLIENT_RemoveSmartLockUser å…¥å‚ public static class NET_IN_SMARTLOCK_REMOVE_USER_INFO extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public byte[] szSerialNumber = new byte[32]; // 设备åºåˆ—å· public byte[] szCredentialHolder = new byte[16]; // 身份拥有者(与AccessControlCard记录集ä¸çš„UserID概念一致) public int emType; // 开门类型,unknown 表示全部, å‚考 NET_ACCESS_METHOD public int nIndex; // æŸç§å¼€é—¨æ–¹å¼çš„索引å·ï¼Œ-1表示全部 public int nTaskID; // 任务ID public NET_IN_SMARTLOCK_REMOVE_USER_INFO() { this.dwSize = this.size(); } } // 智能é”åˆ é™¤ç”¨æˆ·æŽ¥å£ CLIENT_RemoveSmartLockUser å‡ºå‚ public static class NET_OUT_SMARTLOCK_REMOVE_USER_INFO extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public NET_OUT_SMARTLOCK_REMOVE_USER_INFO() { this.dwSize = this.size(); } } // 获å–对ç ä¿¡æ¯, 对应命令 NET_DEVSTATE_GET_CODEID_LIST public static class NET_GET_CODEID_LIST extends SdkStructure { public int dwSize; public int nStartIndex; // 开始的索引å·,开始第一次查询å¯è®¾ä¸º0 public int nQueryNum; // 本次获å–的对ç æ¡æ•°,æ¤å€¼å°äºŽç‰äºŽèƒ½åŠ›é›†ä¸nMaxPageSizeå—段的值 public int nRetCodeIDNum; // 实际返回的对ç æ¡æ•° public Pointer pstuCodeIDInfo; // 获å–对ç 的内容, 对应 NET_CODEID_INFO[],内å˜ç”±ç”¨æˆ·åˆ†é…,ä¸èƒ½å°äºŽnQueryNum*sizeof(NET_CODEID_INFO) public NET_GET_CODEID_LIST() { this.dwSize = this.size(); } } // 对ç ä¿¡æ¯ public static class NET_CODEID_INFO extends SdkStructure { public int dwSize; public long nWirelessId; // æ— çº¿IDå· public int emType; // æ— çº¿è®¾å¤‡ç±»åž‹, 对应枚举 NET_WIRELESS_DEVICE_TYPE public byte[] szName = new byte[NET_USER_NAME_LENGTH]; // 用户å public int bEnable; // 是å¦å¯ç”¨äº†æ¤è®¾å¤‡, 1-true; 0-false public byte[] szCustomName = new byte[NET_COMMON_STRING_64]; // 自定义å称 public int nChannel; // æ— çº¿é˜²åŒºçš„alarm通é“å·,Alarmé…ç½®çš„ä¸‹æ ‡,åªæœ‰Type为Defenceæ—¶æ¤å—段æ‰æœ‰æ•ˆã€‚ public int emMode; // æ— çº¿è®¾å¤‡å·¥ä½œæ¨¡å¼, 对应枚举 EM_WIRELESS_DEVICE_MODE public int emSenseMethod; // ä¼ æ„Ÿå™¨æ–¹å¼, 对应枚举 EM_CODEID_SENSE_METHOD_TYPE public byte[] szSerialNumber = new byte[NET_WIRELESS_DEVICE_SERIAL_NUMBER_MAX_LEN]; // æ— çº¿è®¾å¤‡åºåˆ—å· public int nTaskID; // 任务ID public byte[] szRoomNo=new byte[64]; // 智能é”æˆ¿é—´å· public int nMaxFingerprints; // ä¿¡æ¯æ•°é‡:为0时表示ä¸æ”¯æŒä¿¡æ¯ public int nMaxCards; // å¡ç‰‡æ•°é‡:为0时表示ä¸æ”¯æŒå¡ç‰‡ public int nMaxPwd; // 密ç æ•°é‡:为0时表示ä¸æ”¯æŒå¯†ç public byte[] szRandSalt=new byte[128]; // 智能门é”å¤æ‚ç›å€¼ public NET_CODEID_INFO() { this.dwSize = this.size(); } } // æ— çº¿è®¾å¤‡ç±»åž‹ public static class NET_WIRELESS_DEVICE_TYPE extends SdkStructure { public static final int NET_WIRELESS_DEVICE_TYPE_UNKNOWN = 0; public static final int NET_WIRELESS_DEVICE_TYPE_KEYBOARD = 1; // æ— çº¿é”®ç›˜ public static final int NET_WIRELESS_DEVICE_TYPE_DEFENCE = 2; // æ— çº¿é˜²åŒº public static final int NET_WIRELESS_DEVICE_TYPE_REMOTECONTROL = 3; // æ— çº¿é¥æŽ§ public static final int NET_WIRELESS_DEVICE_TYPE_MAGNETOMER = 4; // æ— çº¿é—¨ç£ public static final int NET_WIRELESS_DEVICE_TYPE_ALARMBELL = 5; // æ— çº¿è¦å· public static final int NET_WIRELESS_DEVICE_TYPE_SWITCHER = 6; // æ— çº¿æ’座 public static final int NET_WIRELESS_DEVICE_TYPE_SMARTLOCK = 7; // æ— çº¿æ™ºèƒ½é” public static final int NET_WIRELESS_DEVICE_TYPE_REPEATER = 8; // æ— çº¿ä¸ç»§å™¨ } // æ— çº¿è®¾å¤‡å·¥ä½œæ¨¡å¼ public static class EM_WIRELESS_DEVICE_MODE extends SdkStructure { public static final int EM_WIRELESS_DEVICE_MODE_UNKNOWN = 0; // 模å¼æœªè¯†åˆ« public static final int EM_WIRELESS_DEVICE_MODE_NORMAL = 1; // Normal æ™®é€šæ¨¡å¼ public static final int EM_WIRELESS_DEVICE_MODE_POLLING = 2; // Polling å·¡æ£€æ¨¡å¼ åªæœ‰Type为RemoteControlæ—¶æ‰èƒ½å¤„äºŽå·¡æ£€æ¨¡å¼ } // ä¼ æ„Ÿå™¨æ–¹å¼ public static class EM_CODEID_SENSE_METHOD_TYPE extends SdkStructure { public static final int EM_CODEID_SENSE_METHOD_TYPE_UNKOWN = 0; // 未知的 public static final int EM_CODEID_SENSE_METHOD_TYPE_DOOR_MAGNETISM = 1; // é—¨ç£ public static final int EM_CODEID_SENSE_METHOD_TYPE_GAS_SENSOR = 2; // ç‡ƒæ°”ä¼ æ„Ÿ public static final int EM_CODEID_SENSE_METHOD_TYPE_CURTAIN_SENSOR = 3; // å¹•å¸˜ä¼ æ„Ÿå™¨ public static final int EM_CODEID_SENSE_METHOD_TYPE_MOBILE_SENSOR = 4; // ç§»åŠ¨ä¼ æ„Ÿå™¨ public static final int EM_CODEID_SENSE_METHOD_TYPE_PASSIVEINFRA = 5; // è¢«åŠ¨çº¢å¤–ä¼ æ„Ÿå™¨ public static final int EM_CODEID_SENSE_METHOD_TYPE_URGENCY_BUTTON = 6; // 紧急按钮 public static final int EM_CODEID_SENSE_METHOD_TYPE_SMOKING_SENSOR = 7; // çƒŸé›¾ä¼ æ„Ÿå™¨ public static final int EM_CODEID_SENSE_METHOD_TYPE_DOUBLEMETHOD = 8; // åŒé‰´ä¼ 感器(红外+微波) public static final int EM_CODEID_SENSE_METHOD_TYPE_WATER_SENSOR = 9; // æ°´æµ¸ä¼ æ„Ÿå™¨ public static final int EM_CODEID_SENSE_METHOD_TYPE_THREEMETHOD = 10; // 三技术 } // CLIENT_EncryptString 接å£å…¥å‚ public static class NET_IN_ENCRYPT_STRING extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public byte[] szCard = new byte[33]; // 需è¦åŠ 密的å—符串 public byte[] byReserved1 = new byte[3]; // å—èŠ‚å¯¹é½ public byte[] szKey = new byte[33]; // 秘钥 public byte[] byReserved2 = new byte[3]; // å—èŠ‚å¯¹é½ public NET_IN_ENCRYPT_STRING() { this.dwSize = this.size(); } } // CLIENT_EncryptString 接å£å‡ºå‚ public static class NET_OUT_ENCRYPT_STRING extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public byte[] szEncryptString = new byte[1024]; // åŠ å¯†åŽå—符串 public NET_OUT_ENCRYPT_STRING() { this.dwSize = this.size(); } } // 设置二维ç 的解ç ä¿¡æ¯å…¥å‚ public static class NET_IN_SET_QRCODE_DECODE_INFO extends SdkStructure { public int dwSize; public int emCipher; // åŠ å¯†æ–¹å¼, å‚考枚举 NET_ENUM_QRCODE_CIPHER public byte[] szKey = new byte[33]; // 秘钥 public byte[] byReserved = new byte[3]; // å—èŠ‚å¯¹é½ public NET_IN_SET_QRCODE_DECODE_INFO() { this.dwSize = this.size(); } } // 设置二维ç 的解ç ä¿¡æ¯å‡ºå‚ public static class NET_OUT_SET_QRCODE_DECODE_INFO extends SdkStructure { public int dwSize; public NET_OUT_SET_QRCODE_DECODE_INFO() { this.dwSize = this.size(); } } // ä½¿ç”¨çš„åŠ å¯†ç®—æ³• public static class NET_ENUM_QRCODE_CIPHER extends SdkStructure { public static final int NET_ENUM_QRCODE_CIPHER_UNKNOWN = 0; public static final int NET_ENUM_QRCODE_CIPHER_AES256 = 1; // AES-256 } //é—¨ç¦å¡æ•°æ®æ“作事件 public static class ALARM_ACCESS_CARD_OPERATE_INFO extends SdkStructure { public int dwSize; public int emActionType; // é—¨ç¦å¡æ•°æ®æ“作类型, å‚考 NET_ACCESS_ACTION_TYPE public byte[] szCardNo = new byte[NET_MAX_CARDINFO_LEN]; // é—¨ç¦å¡å¡å· public int emResult; // æ“作结果,-1为未知,0为失败,1为æˆåŠŸ,å‚考 NET_THREE_STATUS_BOOL public int nChannelID; // 门通é“å·(或者门é”,门和门é”一一对应), 从0开始 public byte[] szCredentialHolder = new byte[16]; // 身份拥有者 public int emType; // 用户类型, å‚考 NET_ACCESS_METHOD public byte[] szSerialNum = new byte[32]; // åºåˆ—å· public int nIndex; // æŸå¼€é—¨æ–¹å¼ä¸‹çš„ç´¢å¼•å· public int nTaskID; // 任务ID public int emErrorde; // æ“作错误ç (åªæœ‰å½“æ“作结果emResult=0æ—¶æ‰æœ‰æ•ˆ) public ALARM_ACCESS_CARD_OPERATE_INFO() { this.dwSize = this.size(); } } //é—¨ç¦å¡æ•°æ®æ“作类型 public static class NET_ACCESS_ACTION_TYPE extends SdkStructure { public static final int NET_ACCESS_ACTION_TYPE_UNKNOWN = 0; // 未知 public static final int NET_ACCESS_ACTION_TYPE_INSERT = 1; // æ’å…¥ public static final int NET_ACCESS_ACTION_TYPE_UPDATE = 2; // æ›´æ–° public static final int NET_ACCESS_ACTION_TYPE_REMOVE = 3; // åˆ é™¤ } // é—¨ç¦æœªå…³äº‹ä»¶è¯¦ç»†ä¿¡æ¯ public static class ALARM_ACCESS_CTL_NOT_CLOSE_INFO extends SdkStructure { public int dwSize; public int nDoor; // 门通é“å· public byte[] szDoorName = new byte[NET_MAX_DOORNAME_LEN]; // é—¨ç¦å称 public NET_TIME stuTime; // 报è¦äº‹ä»¶å‘生的时间 public int nAction; // 0:开始 1:åœæ¢ public int nEventID; // 事件ID public boolean bRealUTC; // RealUTC 是å¦æœ‰æ•ˆï¼ŒbRealUTC 为 TRUE 时,用RealUTC,å¦åˆ™ç”¨ stuTime å—段 public NET_TIME_EX RealUTC; // 事件å‘ç”Ÿçš„æ—¶é—´ï¼ˆæ ‡å‡†UTC) public ALARM_ACCESS_CTL_NOT_CLOSE_INFO() { this.dwSize = this.size(); } } // é—¯å…¥äº‹ä»¶è¯¦ç»†ä¿¡æ¯ public static class ALARM_ACCESS_CTL_BREAK_IN_INFO extends SdkStructure { public int dwSize; public int nDoor; // 门通é“å· public byte[] szDoorName = new byte[NET_MAX_DOORNAME_LEN]; // é—¨ç¦å称 public NET_TIME stuTime; // 报è¦äº‹ä»¶å‘生的时间 public int nEventID; //事件ID public int emMethod; // é—¯å…¥æ–¹å¼ public boolean bRealUTC; // RealUTC 是å¦æœ‰æ•ˆï¼ŒbRealUTC 为 TRUE 时,用RealUTC,å¦åˆ™ç”¨ stuTime å—段 public NET_TIME_EX RealUTC; // 事件å‘ç”Ÿçš„æ—¶é—´ï¼ˆæ ‡å‡†UTC) public byte[] reserved=new byte[4]; // å—èŠ‚å¯¹é½ public ALARM_ACCESS_CTL_BREAK_IN_INFO() { this.dwSize = this.size(); } } // é—¨ç¦æŽ§åˆ¶-é‡ç½®å¯†ç (对应CLIENT_ControlDevice接å£çš„ CTRLTYPE_CTRL_ACCESS_RESET_PASSWORD 命令) public static class NET_CTRL_ACCESS_RESET_PASSWORD extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nChannelID; // é—¨ç¦åºå·(从0开始) public int emType; // 密ç 类型, å‚考 EM_ACCESS_PASSWORD_TYPE public byte[] szUserID = new byte[MAX_COMMON_STRING_32]; // 用户ID public byte[] szNewPassword = new byte[MAX_COMMON_STRING_32]; // 新密ç public NET_CTRL_ACCESS_RESET_PASSWORD() { this.dwSize = this.size(); } } // é—¨ç¦æŽ§åˆ¶å¯†ç 类型 public static class EM_ACCESS_PASSWORD_TYPE extends SdkStructure { public static final int EM_ACCESS_PASSWORD_OPENDOOR = 1; // 开门密ç public static final int EM_ACCESS_PASSWORD_ALARM = 2; // 防劫æŒæŠ¥è¦å¯†ç } //è®¾ç½®å¯¹è®²çŠ¶æ€ public static class EM_CALL_STATUS extends SdkStructure { public static final int EM_CALL_STATUS_UNKNOWN = 0; public static final int EM_CALL_STATUS_TRYING = 1; // 通è¯è¯·æ±‚æ£åœ¨å¤„ç†äº‹ä»¶ public static final int EM_CALL_STATUS_RINGING = 2; // 主å«æ—¶ï¼Œè¢«å«å›žé“ƒäº‹ä»¶ public static final int EM_CALL_STATUS_PREPARECONNECTED = 3; // 收到对端通è¯æŽ¥é€š public static final int EM_CALL_STATUS_CONNECTED = 4; // åŒæ–¹é€šè¯å·²ç»æ£å¼å»ºç«‹ public static final int EM_CALL_STATUS_CALLED = 5; // 被å«æ¥ç”µäº‹ä»¶ public static final int EM_CALL_STATUS_PREPARELEAVINGMESSAGE = 6; // 收到留言请求事件 public static final int EM_CALL_STATUS_LEAVINGMESSAGECONNECTED = 7; // 留言通è¯æŽ¥é€šäº‹ä»¶ public static final int EM_CALL_STATUS_CALLEND = 8; // 呼å«ç»“æŸäº‹ä»¶ public static final int EM_CALL_STATUS_CALLTRANSFER = 9; // 转移呼å«åˆ°å…¶ä»–设备 public static final int EM_CALL_STATUS_CALLTRANSFERCONNECTED = 10; // 呼å«è½¬ç§»æŽ¥é€š public static final int EM_CALL_STATUS_HELD = 11; // 呼å«ä¿æŒ public static final int EM_CALL_STATUS_RESUME = 12; // 呼å«å¬å›ž public static final int EM_CALL_STATUS_DND = 13; // å…打扰 public static final int EM_CALL_STATUS_REMOTESDPCHANGE = 14; // 远端SDPæ”¹å˜ public static final int EM_CALL_STATUS_REFUSE = 15; // 拒接 } // CLIENT_ControlDeviceEx接å£çš„ DH_CTRL_SET_THIRD_CALLSTATUS 命令å‚æ•°å…¥å‚ public static class NET_IN_VTP_THIRDCALL_STATUS extends SdkStructure { public int dwSize; public int emCallStatus; // é—¨ç¦å¯¹è®²çŠ¶æ€,å‚考EM_CALL_STATUS public NET_IN_VTP_THIRDCALL_STATUS() { this.dwSize = this.size(); } } // CLIENT_ControlDeviceEx接å£çš„ DH_CTRL_SET_THIRD_CALLSTATUS 命令å‚æ•°å‡ºå‚ public static class NET_OUT_VTP_THIRDCALL_STATUS extends SdkStructure { public int dwSize; public byte[] szCallID= new byte[64]; // 对讲id public NET_OUT_VTP_THIRDCALL_STATUS() { this.dwSize = this.size(); } } // 录åƒå›žæ”¾å…¥å‚ä¿¡æ¯ public static class NET_IN_PLAY_BACK_BY_TIME_INFO extends SdkStructure { public NET_TIME stStartTime; // 开始时间 public NET_TIME stStopTime; // 结æŸæ—¶é—´ public Pointer hWnd; // æ’æ”¾çª—æ ¼, å¯ä¸ºNULL public fDownLoadPosCallBack cbDownLoadPos; // 进度回调 public Pointer dwPosUser; // è¿›åº¦å›žè°ƒç”¨æˆ·ä¿¡æ¯ public fDataCallBack fDownLoadDataCallBack; // æ•°æ®å›žè°ƒ public Pointer dwDataUser; // æ•°æ®å›žè°ƒç”¨æˆ·ä¿¡æ¯ public int nPlayDirection; // æ’放方å‘, 0:æ£æ”¾; 1:倒放; public int nWaittime; // 接å£è¶…时时间, ç›®å‰å€’放使用 public byte[] bReserved = new byte[1024]; // 预留å—节 } // 录åƒå›žæ”¾å‡ºå‚ä¿¡æ¯ public static class NET_OUT_PLAY_BACK_BY_TIME_INFO extends SdkStructure { public byte[] bReserved = new byte[1024]; // 预留å—节 } // 扩展模å—掉线事件 对应事件类型 NET_ALARM_MODULE_LOST public static class ALARM_MODULE_LOST_INFO extends SdkStructure { public int dwSize; public NET_TIME stuTime; // 事件上报时间 public int nSequence; // 扩展模å—接的总线的åºå·(从0开始) public int emBusType; // 总线类型, å‚考枚举 NET_BUS_TYPE public int nAddr; // 掉线的扩展模å—æ•°ç›® public int[] anAddr = new int[MAX_ALARMEXT_MODULE_NUM]; // 掉线的扩展模å—çš„åºå·(从0开始) public byte[] szDevType = new byte[NET_COMMON_STRING_64]; // 设备类型 "SmartLock",是级è”设备,当设备类型"AlarmDefence"接å£åºå·ä¸ºæŠ¥è¦åºå· public int bOnline; // 在线情况 默认0。 0-ä¸åœ¨çº¿; 1-在线 public byte[] szSN = new byte[32]; // æ— çº¿é…件åºåˆ—å· public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); //事件公共扩展å—段结构体 public ALARM_MODULE_LOST_INFO() { this.dwSize = this.size(); } } // 总线类型 public static class NET_BUS_TYPE extends SdkStructure { public static final int NET_BUS_TYPE_UNKNOWN = 0; public static final int NET_BUS_TYPE_MBUS = 1; // M-BUS总线 public static final int NET_BUS_TYPE_RS485 = 2; // RS-485总线 public static final int NET_BUS_TYPE_CAN = 3; // CAN总线 } //节å‡æ—¥è®°å½•ä¿¡æ¯ public static class NET_RECORDSET_HOLIDAY extends SdkStructure { public int dwSize; public int nRecNo; // 记录集编å·,åªè¯» public int nDoorNum; // 有效的的门数目 public int[] sznDoors = new int[NET_MAX_DOOR_NUM]; // 有æƒé™çš„é—¨åºå·,å³CFG_CMD_ACCESS_EVENTé…ç½®CFG_ACCESS_EVENT_INFOçš„æ•°ç»„ä¸‹æ ‡ public NET_TIME stuStartTime; // 开始时间 public NET_TIME stuEndTime; // 结æŸæ—¶é—´ public int bEnable; // å‡æœŸä½¿èƒ½ public byte[] szHolidayNo = new byte[NET_COMMON_STRING_32]; // å‡æœŸç¼–å· public byte[] szHolidayName = new byte [NET_COMMON_STRING_128]; // å‡æœŸå称 public NET_RECORDSET_HOLIDAY() { this.dwSize = this.size(); } } // 事件类型 EVENT_IVS_FLOATINGOBJECT_DETECTION (漂浮物检测)对应的规则é…ç½® public static class NET_FLOATINGOBJECT_DETECTION_RULE_INFO extends SdkStructure { public int nDetectRegionPoint; // 检测区顶点数 public POINTCOORDINATE[] stuDetectRegion=(POINTCOORDINATE[]) new POINTCOORDINATE().toArray(20); // 检测区 public float fAlarmThreshold; // 报è¦é˜ˆå€¼ã€‚当检测区域内的漂浮物å 比超过阈值时则产生报è¦;å•ä½:%,å–值范围(0, 100] public int nAlarmInterval; // 报è¦æ—¶é—´é—´éš”。(å•ä½ï¼šç§’)。å–值范围[60, 86400] public int bDataUpload; // 是å¦ä¸ŠæŠ¥å®žæ—¶æ•°æ®ã€‚ public int nUpdateInterval; // 实时数æ®ä¸ŠæŠ¥é—´éš”。(å•ä½ï¼šç§’)。å–值范围[60, 86400] public byte[] byReserved=new byte[4096]; // ä¿ç•™å—节 }; // å †ç§¯ç‰©ç‚¹é˜µå›¾ä¿¡æ¯ public static class NET_FLOATINGOBJECT_MASK_INFO extends SdkStructure { public int nColNum; // 点阵列数 public int nOffset; // å移 public int nLength; // 长度 public byte[] byReserved=new byte[508]; // 预留å—段 }; // 事件类型 EVENT_IVS_FLOATINGOBJECT_DETECTION (漂浮物检测事件) 对应的数æ®å—æè¿°ä¿¡æ¯ public static class DEV_EVENT_FLOATINGOBJECT_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 NET_POINT[] stuDetectRegion = (NET_POINT[])new NET_POINT().toArray(NET_MAX_DETECT_REGION_NUM); // 规则检测区域 public int nDetectRegionNum; // 规则检测区域顶点数 public int nImageIndex; // 图片的åºå·, åŒä¸€æ—¶é—´å†…(精确到秒)å¯èƒ½æœ‰å¤šå¼ 图片, 从0开始 public int dwSnapFlagMask; // æŠ“å›¾æ ‡å¿—(按ä½),具体è§NET_RESERVED_COMMON public int nSourceIndex; // 事件æºè®¾å¤‡ä¸Šçš„index,-1表示数æ®æ— 效 public byte[] szSourceDevice = new byte[MAX_PATH]; // 事件æºè®¾å¤‡å”¯ä¸€æ ‡è¯†,å—段ä¸å˜åœ¨æˆ–者为空表示本地设备 public int nOccurrenceCount; // 事件触å‘累计次数 public int nObjectNum; // 检测到的物体个数 public NET_MSG_OBJECT[] stuObjects = (NET_MSG_OBJECT[]) new NET_MSG_OBJECT().toArray(HDBJ_MAX_OBJECTS_NUM); // 检测到的物体 public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // æ™ºèƒ½äº‹ä»¶å…¬å…±ä¿¡æ¯ public byte[] szPresetName = new byte[64]; // 事件触å‘的预置å称 public int bExistFloatingObject; // 是å¦å˜åœ¨æ¼‚浮物 public int emEventType; // 事件数æ®ç±»åž‹,详è§NET_EM_EVENT_DATA_TYPE public float fCurrentRatio; // 漂浮物当å‰å 比(相对于检测区域)å•ä½:%, å–值范围[0, 100] public float fAlarmThreshold; // 报è¦é˜ˆå€¼ã€‚漂浮物相对于检测区域的å 比, å–值范围[0, 100] public NET_INTELLIGENCE_IMAGE_INFO stuOriginalImage; // 原始图 public NET_INTELLIGENCE_IMAGE_INFO stuSceneImage; // çƒæœºå˜åˆ°æœ€å°å€ä¸‹çš„抓图 public NET_FLOATINGOBJECT_MASK_INFO stuObjectMaskInfo; // å †ç§¯ç‰©ç‚¹é˜µå›¾ä¿¡æ¯ /** 用æ¥åŒºåˆ†æ˜¯æ™®é€šæ¼‚浮物场景还是泡沫检测场景 {@link com.iailab.netsdk.lib.enumeration.EM_FLOATINGOBJECT_DETECTION_SENCE_TYPE} */ public int emDetectSenceType; public int nImageInfoNum; // 图片信æ¯ä¸ªæ•° public Pointer pstuImageInfo; //图片信æ¯æ•°ç»„, refer to {@link NET_IMAGE_INFO_EX3} public byte[] byReserved=new byte[3428 - POINTERSIZE];//ä¿ç•™å—节,留待扩展. } // 事件类型 EVENT_IVS_WATER_LEVEL_DETECTION(æ°´ä½æ£€æµ‹äº‹ä»¶)对应的数æ®å—æè¿°ä¿¡æ¯ public static class DEV_EVENT_WATER_LEVEL_DETECTION_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 NET_EVENT_FILE_INFO stuFileInfo; // äº‹ä»¶å¯¹åº”æ–‡ä»¶ä¿¡æ¯ public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // æ™ºèƒ½äº‹ä»¶å…¬å…±ä¿¡æ¯ public byte[] szPresetName = new byte[64]; // 预置点å称 public byte[] szObjectUUID = new byte[48]; // æ™ºèƒ½ç‰©ä½“å…¨å±€å”¯ä¸€ç‰©ä½“æ ‡è¯† public int emEventType; // 事件数æ®ç±»åž‹,详è§NET_EM_EVENT_DATA_TYPE public int emStatus; // æ°´ä½çŠ¶æ€,详è§NET_EM_WATER_LEVEL_STATUS public NET_WATER_RULER stuWaterRuler; // æ°´ä½å°º public NET_INTELLIGENCE_IMAGE_INFO stuOriginalImage; // 原始图 public NET_INTELLIGENCE_IMAGE_INFO stuSceneImage; // çƒæœºå˜åˆ°æœ€å°å€ä¸‹çš„抓图 public byte[] byReserved = new byte[1024]; // ä¿ç•™å—节 } // 全景广角图 public static class SCENE_IMAGE_INFO_EX extends SdkStructure { public int nOffSet; // 在二进制数æ®å—ä¸çš„å移 public int nLength; // 图片大å°,å•ä½å—节 public int nWidth; // 图片宽度(åƒç´ ) public int nHeight; // 图片高度(åƒç´ ) public byte[] szFilePath = new byte[260]; // 全景图片路径 public byte[] byReserved = new byte[512]; // 预留å—节 } // 水果类型 public static class EM_FRUIT_TYPE extends SdkStructure { public static final int EM_FRUIT_TYPE_UNKNOWN = 0; // 未知 public static final int EM_FRUIT_TYPE_GREEN_TANGERINE = 1; // é’橘 public static final int EM_FRUIT_TYPE_YELLOW_TANGERINE_ORANGE = 2; // 黄橘,橙类 public static final int EM_FRUIT_TYPE_GRAPEFRUIT = 3; // 柚å public static final int EM_FRUIT_TYPE_LEMON = 4; // æŸ æª¬ public static final int EM_FRUIT_TYPE_WATERMELON = 5; // 西瓜 public static final int EM_FRUIT_TYPE_BANANA = 6; // 香蕉 public static final int EM_FRUIT_TYPE_RED_APPLE = 7; // 红苹果 public static final int EM_FRUIT_TYPE_GREEN_APPLE = 8; // é’苹果 public static final int EM_FRUIT_TYPE_MUSKMELON = 9; // 香瓜 public static final int EM_FRUIT_TYPE_HAMIMELON = 10; // 哈密瓜 public static final int EM_FRUIT_TYPE_PEAR = 11; // 梨 public static final int EM_FRUIT_TYPE_KIWI = 12; // 奇异果 public static final int EM_FRUIT_TYPE_PAPAYA = 13; // 木瓜 public static final int EM_FRUIT_TYPE_PINEAPPLE = 14; // è è public static final int EM_FRUIT_TYPE_MANGO = 15; // 芒果 public static final int EM_FRUIT_TYPE_LONGAN = 16; // 龙眼 public static final int EM_FRUIT_TYPE_GINSENG_FRUIT = 17; // 人å‚æžœ public static final int EM_FRUIT_TYPE_POMEGRABATE = 18; // 石榴 public static final int EM_FRUIT_TYPE_COCONUT = 19; // 椰å public static final int EM_FRUIT_TYPE_CREAM_JUJUBE = 20; // 奶油枣 public static final int EM_FRUIT_TYPE_WINTER_JUJUBE = 21; // 冬枣 public static final int EM_FRUIT_TYPE_AVOCADO = 22; // 牛油果 public static final int EM_FRUIT_TYPE_RED_PLUM = 23; // 红布林 public static final int EM_FRUIT_TYPE_PITAYA = 24; // ç«é¾™æžœ public static final int EM_FRUIT_TYPE_GUAVA = 25; // èŠä¹ public static final int EM_FRUIT_TYPE_PERSIMMON = 26; // 柿å public static final int EM_FRUIT_TYPE_YACON = 27; // 雪莲果 } // æ£€æµ‹åˆ°çš„æ°´æžœä¿¡æ¯ public static class NET_CANDIDATE_FRUIT_INFO extends SdkStructure { public int nSimilarity; // 相似度 public int emFruitType; // 检测到的水果类型,å‚考EM_FRUIT_TYPE public byte[] byReserved = new byte[1024]; // 预留å—节 } // 事件类型 EVENT_IVS_WEIGHING_PLATFORM_DETECTION(称é‡å¹³å°æ£€æµ‹äº‹ä»¶) 对应的数æ®å—æè¿°ä¿¡æ¯ public static class DEV_EVENT_WEIGHING_PLATFORM_DETECTION_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 EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // æ™ºèƒ½äº‹ä»¶å…¬å…±ä¿¡æ¯ public int nCandidateFruitNum; // 检测到的水果信æ¯ä¸ªæ•° public NET_CANDIDATE_FRUIT_INFO[] stuFruitInfos = (NET_CANDIDATE_FRUIT_INFO[])new NET_CANDIDATE_FRUIT_INFO().toArray(100);// æ£€æµ‹åˆ°çš„æ°´æžœä¿¡æ¯ public SCENE_IMAGE_INFO_EX stuSceneImage; // 全景图 public SCENE_IMAGE_INFO_EX stuFruitImage; // æ°´æžœæŠ å›¾ public byte[] byReserved = new byte[1024]; // ä¿ç•™å—节 } // å®‰å…¨å¸½ä½©æˆ´çŠ¶æ€ public static class EM_WORK_HELMET_STATE extends SdkStructure { public static final int EM_HELMET_STATE_UNKNOWN = 0; // 未知 public static final int EM_HELMET_STATE_NOTWEAR = 1; // ä¸å¸¦å®‰å…¨å¸½ public static final int EM_HELMET_STATE_WEAR = 2; // 有带安全帽 } // 安全帽属性 public static class NET_HELMET_ATTRIBUTE extends SdkStructure { public int emHelmetState; // 安全帽佩戴状æ€ï¼Œå‚考EM_WORK_HELMET_STATE public int emHelmetColor; // 安全帽颜色,å‚考EM_CLOTHES_COLOR public byte[] byReserved = new byte[1024]; // ä¿ç•™å—节 } // 工作æœç©¿æˆ´çŠ¶æ€ public static class EM_WORKCLOTHES_STATE extends SdkStructure { public static final int EM_WORKCLOTHES_STATE_UNKNOWN = 0; // 未知 public static final int EM_WORKCLOTHES_STATE_NOTWEAR = 1; // æ— å·¥ä½œæœ public static final int EM_WORKCLOTHES_STATE_WEAR = 2; // æœ‰å·¥ä½œæœ } //工作æœåˆæ³•çŠ¶æ€ public static class EM_CLOTHES_LEGAL_STATE extends SdkStructure{ public static final int EM_CLOTHES_LEGAL_STATE_UNKNOWN = 0; // 未知 public static final int EM_CLOTHES_LEGAL_STATE_WRONGFUL = 1; // ä¸åˆæ³• public static final int EM_CLOTHES_LEGAL_STATE_LEGAL = 2; // åˆæ³• } // 工作æœå±žæ€§ public static class NET_WORKCLOTHES_ATTRIBUTE extends SdkStructure { public int emWorkClothesState; // 工作æœç©¿æˆ´çŠ¶æ€ï¼Œå‚考EM_WORKCLOTHES_STATE public int emWorkClothColor; // 工作æœé¢œè‰²,å‚考EM_CLOTHES_COLOR public int emWorkClothesLegalState; // 工作æœåˆæ³•çŠ¶æ€,å‚考EM_CLOTHES_LEGAL_STATE public byte[] byReserved = new byte[1020]; // ä¿ç•™å—节 } // å·¥ä½œè£¤ç©¿æˆ´çŠ¶æ€ public static class EM_WORKPANTS_STATE extends SdkStructure{ public static final int EM_WORKPANTS_STATE_UNKNOWN = 0; // 未知 public static final int EM_WORKPANTS_STATE_NOTWEAR = 1; // 没有 public static final int EM_WORKPANTS_STATE_WEAR = 2; // 有 } //工作裤属性 public static class NET_WORKPANTS_ATTRIBUTE extends SdkStructure{ public int emWorkPantsState; // 工作裤穿戴状æ€,å‚考EM_WORKPANTS_STATE public int emWorkPantsColor; // 工作裤颜色,å‚考EM_CLOTHES_COLOR public byte[] byReserved = new byte[1024]; // 预留å—节 } // 事件类型 EVENT_IVS_WORKCLOTHES_DETECT(工装(安全帽/工作æœç‰)) 对应的数æ®å—æè¿°ä¿¡æ¯ public static class DEV_EVENT_WORKCLOTHES_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 emClassType; // 智能事件所属大类,详è§EM_SCENE_CLASS_TYPE public int nRuleID; // 智能事件规则编å·ï¼Œç”¨äºŽæ ‡ç¤ºå“ªä¸ªè§„则触å‘的事件 public int nObjectID; // 物体ID public int nGroupID; // 事件组ID,一次检测的多个nGroupIDç›¸åŒ public int nCountInGroup; // 一个事件组内的抓æ‹å¼ æ•°,一次检测的多个nCountInGroupç›¸åŒ public int nIndexInGroup; // 一个事件组内的抓æ‹åºå·ï¼Œä»Ž1开始 public SCENE_IMAGE_INFO stuSceneImage; // å…¨æ™¯å¤§å›¾ä¿¡æ¯ public HUMAN_IMAGE_INFO stuHumanImage; // 人体å°å›¾ä¿¡æ¯ public NET_HELMET_ATTRIBUTE stuHelmetAttribute; // 安全帽属性 public NET_WORKCLOTHES_ATTRIBUTE stuWorkClothesAttribute; // 工作æœå±žæ€§ public NET_WORKPANTS_ATTRIBUTE stuWorkPantsAttribute; // 工作裤属性 public int nAlarmType; // ä¸è§„范报è¦ç±»åž‹ 0-未知 1-防护æœä¸è§„范 2: 工作æœä¸è§„范3:安全帽ä¸è§„范4:安全帽和工作æœä¸è§„范 public byte szSourceID[] = new byte[32]; // 事件关è”ID。应用场景是åŒä¸€ä¸ªç‰©ä½“或者åŒä¸€å¼ 图片åšä¸åŒåˆ†æžï¼Œäº§ç”Ÿçš„多个事件的SourceIDç›¸åŒ public int emRuleType; // 报è¦è§„则类型 public NET_IMAGE_INFO_EX2 stuImageInfo[] = (NET_IMAGE_INFO_EX2[])new NET_IMAGE_INFO_EX2().toArray(32); //图片信æ¯æ•°ç»„ public int nImageInfoNum; //图片信æ¯ä¸ªæ•° /** * 普通帽å相关属性状æ€ä¿¡æ¯ */ public NET_NORMALHAT_ATTRIBUTE stuNormalHat=new NET_NORMALHAT_ATTRIBUTE(); /** * å£ç½©ç›¸å…³å±žæ€§çŠ¶æ€ä¿¡æ¯ */ public NET_MASK_ATTRIBUTE stuMask=new NET_MASK_ATTRIBUTE(); /** * 围裙相关属性状æ€ä¿¡æ¯ */ public NET_APRON_ATTRIBUTE stuApron=new NET_APRON_ATTRIBUTE(); /** * 手套相关属性状æ€ä¿¡æ¯ */ public NET_GLOVE_ATTRIBUTE stuGlove=new NET_GLOVE_ATTRIBUTE(); /** * é´å相关属性状æ€ä¿¡æ¯ */ public NET_BOOT_ATTRIBUTE stuBoot=new NET_BOOT_ATTRIBUTE(); /** * 鞋套相关属性状æ€ä¿¡æ¯ */ public NET_SHOESCOVER_ATTRIBUTE stuShoesCover=new NET_SHOESCOVER_ATTRIBUTE(); /** * æ— å¸½å相关属性状æ€ä¿¡æ¯ */ public NET_NOHAT_ATTRIBUTE stuNoHat=new NET_NOHAT_ATTRIBUTE(); /** * 防护é¢ç½©ç›¸å…³å±žæ€§çŠ¶æ€ä¿¡æ¯ */ public NET_PROHELMET_ATTRIBUTE stuProhelmet = new NET_PROHELMET_ATTRIBUTE(); /** * 事件公共扩展å—段结构体 */ public NET_EVENT_INFO_EXTEND stuEventInfoEx = new NET_EVENT_INFO_EXTEND(); public NET_FIREPROOF_CLOTHES stuFireProofClothes = new NET_FIREPROOF_CLOTHES();// 防ç«è¡£ç›¸å…³å±žæ€§çŠ¶æ€ä¿¡æ¯ public Pointer pstObjectInfo; // 物体信æ¯æ•°æ® ,对应NET_MSG_OBJECT_EX2数组 public int nObjectNum; // 物体信æ¯æ•° public NET_GLASSES_RELATED_INFO stuGlassesInfo = new NET_GLASSES_RELATED_INFO();// 眼镜相关属性状æ€ä¿¡æ¯ /** * 预留å—节 */ public byte[] byReserved = new byte[620-POINTERSIZE]; } // æ™ºèƒ½äº‹ä»¶æŠ“å›¾ä¿¡æ¯ public static class NET_INTELLIGENCE_IMAGE_INFO extends SdkStructure { public int nOffSet; // 在二进制数æ®å—ä¸çš„å移 public int nLength; // 图片大å°,å•ä½å—节 public int nWidth; // 图片宽度(åƒç´ ) public int nHeight; // 图片高度(åƒç´ ) public byte[] byReserved = new byte[48]; // 预留å—节 } // 事件类型 EVENT_IVS_RADAR_SPEED_LIMIT_ALARM(é›·è¾¾é™é€ŸæŠ¥è¦äº‹ä»¶)对应的数æ®å—æè¿°ä¿¡æ¯ public static class DEV_EVENT_RADAR_SPEED_LIMIT_ALARM_INFO extends SdkStructure { public int nChannelID; // 通é“å· public int nAction; // 0:脉冲 1:开始 2:åœæ¢ public byte[] szAddress = new byte[32]; // 设备IPåœ°å€ public int nSpeed; // 时速, å•ä½km/h public NET_TIME_EX UTC; // 事件å‘生时间 public int nGroupID; // 事件组ID public int nCountInGroup; // 一个事件组内的抓æ‹å¼ æ•° public int nIndexInGroup; // 一个事件组内的抓æ‹åºå·ï¼Œæµ‹é€Ÿè¿‡ç¨‹ç¬¬nå¼ å›¾ç‰‡,从1开始 public EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // æ™ºèƒ½äº‹ä»¶å…¬å…±ä¿¡æ¯ public byte[] byReserved = new byte[1024]; // ä¿ç•™å—节 } /************************************************************************************************* * é—¨ç¦ç”¨æˆ·ä¿¡æ¯æ“作:增ã€åˆ ã€æ”¹ã€æŸ¥ã€æ¸…空 ************************************************************************************************/ // 人员信æ¯æ“作类型 public static class NET_EM_ACCESS_CTL_USER_SERVICE extends SdkStructure { public static final int NET_EM_ACCESS_CTL_USER_SERVICE_INSERT = 0; // æ·»åŠ /更新人员信æ¯, pstInParam = NET_IN_ACCESS_USER_SERVICE_INSERT , pstOutParam = NET_OUT_ACCESS_USER_SERVICE_INSERT public static final int NET_EM_ACCESS_CTL_USER_SERVICE_GET = 1; // 获å–人员信æ¯, pstInParam = NET_IN_ACCESS_USER_SERVICE_GET , pstOutParam = NET_OUT_ACCESS_USER_SERVICE_GET public static final int NET_EM_ACCESS_CTL_USER_SERVICE_REMOVE = 2; // åˆ é™¤äººå‘˜ä¿¡æ¯,包å«æ‰€æœ‰æŽˆæƒä¿¡æ¯ pstInParam = NET_IN_ACCESS_USER_SERVICE_REMOVE , pstOutParam = NET_OUT_ACCESS_USER_SERVICE_REMOVE public static final int NET_EM_ACCESS_CTL_USER_SERVICE_CLEAR = 3; // 清空所有人员信æ¯, pstInParam = NET_IN_ACCESS_USER_SERVICE_CLEAR , pstOutParam = NET_OUT_ACCESS_USER_SERVICE_CLEAR } // 新增或更新用户信æ¯å…¥å‚ public static class NET_IN_ACCESS_USER_SERVICE_INSERT extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nInfoNum; // 用户信æ¯æ•°é‡ public Pointer pUserInfo; // 用户信æ¯,对应数组 NET_ACCESS_USER_INFO,内å˜ç”±ç”¨æˆ·ç”³è¯·é‡Šæ”¾ï¼Œç”³è¯·å¤§å°ä¸å°äºŽnInfoNum*sizeof(NET_ACCESS_USER_INFO); public NET_IN_ACCESS_USER_SERVICE_INSERT() { this.dwSize = this.size(); } } // 新增或更新用户信æ¯å‡ºå‚ public static class NET_OUT_ACCESS_USER_SERVICE_INSERT extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nMaxRetNum; // 申请的最大返回的错误信æ¯æ•°é‡,ä¸å°äºŽNET_IN_ACCESS_USER_SERVICE_INSERTä¸nInfoNum public Pointer pFailCode; // 对应 FAIL_CODE, 用户分é…释放内å˜,æ’入失败时,对应æ’入的æ¯ä¸€é¡¹çš„结果,返回个数åŒNET_IN_ACCESS_USER_SERVICE_INSERTä¸nInfoNum public NET_OUT_ACCESS_USER_SERVICE_INSERT() { this.dwSize = this.size(); } } // æ’入失败时,对应æ’入的æ¯ä¸€é¡¹çš„结果 public static class FAIL_CODE extends SdkStructure { public int nFailCode; // 对应 NET_EM_FAILCODE } // 获å–用户信æ¯å…¥å‚ public static class NET_IN_ACCESS_USER_SERVICE_GET extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nUserNum; // æŸ¥è¯¢çš„æ•°é‡ public USERID[] szUserIDs = new USERID[100]; // 用户ID列表 public USERIDEX[] szUserIDEx = new USERIDEX[100]; // 用户ID扩展,当å‰åªæ”¯æŒ32ä½æœ‰æ•ˆå€¼ä¸‹å‘ public int bUserIDEx; // szUserIDEx 是å¦æœ‰æ•ˆï¼Œä¸ºTRUE时,使用szUserIDExå—段 public NET_IN_ACCESS_USER_SERVICE_GET() { for(int i=0;i<szUserIDs.length;i++){ szUserIDs[i]=new USERID(); } for (int i = 0; i < szUserIDEx.length; i++) { szUserIDEx[i]=new USERIDEX(); } this.dwSize = this.size(); } } public static class USERID extends SdkStructure { public byte[] szUserID = new byte[32]; // 用户ID } public static class USERIDEX extends SdkStructure { public byte[] szUserIDEx = new byte[128]; // 用户ID扩展,当å‰åªæ”¯æŒ32ä½æœ‰æ•ˆå€¼ä¸‹å‘ } // 获å–用户信æ¯å‡ºå‚ public static class NET_OUT_ACCESS_USER_SERVICE_GET extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nMaxRetNum; // æŸ¥è¯¢è¿”å›žçš„æœ€å¤§æ•°é‡ public Pointer pUserInfo; // 用户信æ¯ï¼Œå¯¹åº”数组 NET_ACCESS_USER_INFO,内å˜ç”±ç”¨æˆ·ç”³è¯·é‡Šæ”¾ï¼Œç”³è¯·å¤§å°ä¸å°äºŽ nUserNum*sizeof(NET_ACCESS_USER_INFO) // 返回个数åŒNET_IN_ACCESS_USER_SERVICE_GETä¸nUserNum public Pointer pFailCode; // 对应FAIL_CODE, 查询失败时,内å˜ç”±ç”¨æˆ·ç”³è¯·é‡Šæ”¾,对应查询的æ¯ä¸€é¡¹çš„结果,返回个数åŒNET_IN_ACCESS_USER_SERVICE_GETä¸nUserNum public NET_OUT_ACCESS_USER_SERVICE_GET() { this.dwSize = this.size(); } } // åˆ é™¤æŒ‡å®šID人员信æ¯å…¥å‚ public static class NET_IN_ACCESS_USER_SERVICE_REMOVE extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nUserNum; // åˆ é™¤çš„æ•°é‡ public USERID[] szUserIDs = (USERID[])new USERID().toArray(100); // 用户ID列表 public USERIDEX[] szUserIDEx = (USERIDEX[])new USERIDEX().toArray(100); // 用户ID扩展,当å‰åªæ”¯æŒ32ä½æœ‰æ•ˆå€¼ä¸‹å‘ public int bUserIDEx; // szUserIDEx 是å¦æœ‰æ•ˆï¼Œä¸ºTRUE时,使用szUserIDExå—段 public NET_IN_ACCESS_USER_SERVICE_REMOVE() { this.dwSize = this.size(); } } // åˆ é™¤æŒ‡å®šID人员信æ¯å‡ºå‚ public static class NET_OUT_ACCESS_USER_SERVICE_REMOVE extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nMaxRetNum; // 返回的最大数é‡,ä¸å°äºŽ NET_IN_ACCESS_USER_SERVICE_REMOVEä¸nUserNum public Pointer pFailCode; // 对应FAIL_CODE, æ’入失败时,内å˜ç”±ç”¨æˆ·ç”³è¯·é‡Šæ”¾,对应æ’入的æ¯ä¸€é¡¹çš„结果,返回个数åŒNET_IN_ACCESS_USER_SERVICE_REMOVEä¸nUserNum public NET_OUT_ACCESS_USER_SERVICE_REMOVE() { this.dwSize = this.size(); } } // åˆ é™¤æ‰€æœ‰äººå‘˜ä¿¡æ¯å…¥å‚ public static class NET_IN_ACCESS_USER_SERVICE_CLEAR extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public NET_IN_ACCESS_USER_SERVICE_CLEAR() { this.dwSize = this.size(); } } // åˆ é™¤æ‰€æœ‰äººå‘˜ä¿¡æ¯å‡ºå‚ public static class NET_OUT_ACCESS_USER_SERVICE_CLEAR extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public NET_OUT_ACCESS_USER_SERVICE_CLEAR() { this.dwSize = this.size(); } } // 用户类型 public static class NET_ENUM_USER_TYPE extends SdkStructure { public static final int NET_ENUM_USER_TYPE_UNKNOWN = -1; // 未知用户 public static final int NET_ENUM_USER_TYPE_NORMAL = 0; // public static final int NET_ENUM_USER_TYPE_BLACKLIST = 1; // public static final int NET_ENUM_USER_TYPE_GUEST = 2; // public static final int NET_ENUM_USER_TYPE_PATROL = 3; // public static final int NET_ENUM_USER_TYPE_VIP = 4; // public static final int NET_ENUM_USER_TYPE_HANDICAP = 5; // } // ç”¨æˆ·ä¿¡æ¯ public static class NET_ACCESS_USER_INFO extends SdkStructure { public byte[] szUserID = new byte[NET_MAX_USERID_LEN]; // 用户ID public byte[] szName = new byte[MAX_COMMON_STRING_32]; // 人员å称 public int emUserType; // 用户类型, 对应枚举 NET_ENUM_USER_TYPE public int nUserStatus; // 用户状æ€, 0 æ£å¸¸, 1 冻结 public int nUserTime; // æ¥å®¾å¡çš„通行次数 public byte[] szCitizenIDNo = new byte[MAX_COMMON_STRING_32]; // è¯ä»¶å·ç public byte[] szPsw = new byte[NET_MAX_CARDPWD_LEN]; // UserID+密ç 开门时密ç public int nDoorNum; // 有效的门数目; public int[] nDoors = new int[NET_MAX_DOOR_NUM]; // 有æƒé™çš„é—¨åºå·,å³ CFG_CMD_ACCESS_EVENT é…ç½®çš„æ•°ç»„ä¸‹æ ‡ public int nTimeSectionNum; // 有效的的开门时间段数目 public int[] nTimeSectionNo = new int[NET_MAX_TIMESECTION_NUM]; // 开门时间段索引,å³ CFG_ACCESS_TIMESCHEDULE_INFO çš„æ•°ç»„ä¸‹æ ‡ public int nSpecialDaysScheduleNum; // å‡æ—¥è®¡åˆ’è¡¨ç¤ºæ•°é‡ public int[] nSpecialDaysSchedule = new int[MAX_ACCESSDOOR_NUM]; // å‡æ—¥è®¡åˆ’æ ‡è¯†, å³ NET_EM_CFG_ACCESSCTL_SPECIALDAYS_SCHEDULE é…ç½®çš„ä¸‹æ ‡ public NET_TIME stuValidBeginTime = new NET_TIME(); // 开始有效期 public NET_TIME stuValidEndTime = new NET_TIME(); // 结æŸæœ‰æ•ˆæœŸ public int bFirstEnter; // 是å¦æ‹¥æœ‰é¦–å¡æƒé™, 1-true, 0-false public int nFirstEnterDoorsNum; // 拥有首用户æƒé™çš„é—¨æ•°é‡ public int[] nFirstEnterDoors = new int[NET_MAX_DOOR_NUM]; // 拥有首用户æƒé™çš„é—¨åºå·ï¼ŒbFirstEnter为TRUE时有效,-1è¡¨ç¤ºå…¨é€šé“ public int emAuthority; // 用户æƒé™ï¼Œå¯é€‰, 对应枚举 NET_ATTENDANCE_AUTHORITY public int nRepeatEnterRouteTimeout; // å潜超时时间 public int nFloorNum; // æœ‰æ•ˆçš„æ¥¼å±‚æ•°é‡ public ACCESS_FLOOR_INFO[] szFloorNos = (ACCESS_FLOOR_INFO[])new ACCESS_FLOOR_INFO().toArray(MAX_ACCESS_FLOOR_NUM); // 楼层å·åˆ—表 public int nRoom; // 房间个数 public ROOM_INFO[] szRoomNos = (ROOM_INFO[])new ROOM_INFO().toArray(MAX_ROOMNUM_COUNT); // 房间å·åˆ—表 public boolean bFloorNoExValid; // szFloorNoEx 是å¦æœ‰æ•ˆ public int nFloorNumEx; // 有效的楼层数é‡æ‰©å±• public FloorNoEx_INFO[] szFloorNoEx=(FloorNoEx_INFO[])new FloorNoEx_INFO().toArray(256); // 楼层å·æ‰©å±• public byte[] szClassInfo=new byte[256]; // ççº§ä¿¡æ¯ public byte[] szStudentNo=new byte[64]; // å¦å· public byte[] szCitizenAddress=new byte[128]; // è¯ä»¶åœ°å€ public NET_TIME stuBirthDay; // 出生日期(年月日有效) public int emSex; // 性别,枚举值å‚考NET_ACCESSCTLCARD_SEX public byte[] szDepartment=new byte[128]; // 部门 public byte[] szSiteCode=new byte[32]; // 站点ç public byte[] szPhoneNumber=new byte[32]; // 手机å·ç public byte[] szDefaultFloor=new byte[8]; // é»˜è®¤æ¥¼å±‚å· public boolean bFloorNoEx2Valid; // 是å¦ä½¿ç”¨æ‰©å±•ç»“构体 /** * 对应结构体,{@link NET_FLOORS_INFO} */ public Pointer pstuFloorsEx2; // 楼层å·ï¼ˆå†æ¬¡æ‰©å±•ï¼‰ public boolean bHealthStatus; // 人员å¥åº·çŠ¶æ€ public int nUserTimeSectionsNum; // ç”¨æˆ·è‡ªèº«çš„å¼€é—¨æ—¶é—´æ®µæ ¡éªŒæœ‰æ•ˆä¸ªæ•° // é’ˆå¯¹ç”¨æˆ·è‡ªèº«çš„å¼€é—¨æ—¶é—´æ®µæ ¡éªŒ public USER_TIME_SECTION[] szUserTimeSections=(USER_TIME_SECTION[]) new USER_TIME_SECTION().toArray(6); public byte[] szECType=new byte[64]; // ä¿ç•™å—段 /** * EM_TYPE_OF_CERTIFICATE */ public int emTypeOfCertificate; // è¯ä»¶ç±»åž‹ public byte[] szCountryOrAreaCode=new byte[8]; // 国ç±æˆ–所在地区代ç ,符åˆGB/T2659-2000的规范 public byte[] szCountryOrAreaName=new byte[64]; // 国ç±æˆ–所在地区å称,符åˆGB/T2659-2000的规范 public byte[] szCertificateVersionNumber=new byte[64];// 永久居ä½è¯çš„è¯ä»¶ç‰ˆæœ¬å· public byte[] szApplicationAgencyCode=new byte[64]; // 申请å—ç†æœºå…³ä»£ç public byte[] szIssuingAuthority=new byte[64]; // ç¾å‘机关 public byte[] szStartTimeOfCertificateValidity=new byte[64]; // è¯ä»¶æœ‰æ•ˆå¼€å§‹æ—¶é—´ public byte[] szEndTimeOfCertificateValidity=new byte[64]; // è¯ä»¶æœ‰æ•ˆç»“æŸæ—¶é—´ public int nSignNum; // è¯ä»¶ç¾å‘次数 public byte[] szActualResidentialAddr=new byte[108]; // 实际家åºä½å€ /** 工作ç别 */ public byte[] szWorkClass=new byte[256]; /** 有效时间段内å¯åŠ¨æ—¶é—´ */ public NET_TIME stuStartTimeInPeriodOfValidity=new NET_TIME(); /** 测试项目 {@link com.iailab.netsdk.lib.enumeration.EM_TEST_ITEMS } */ public int emTestItems; /** szNameEx 是å¦æœ‰æ•ˆï¼Œä¸ºTRUE时,使用szNameExå—段 */ public int bUseNameEx; /** 人员å称扩展 */ public byte[] szNameEx=new byte[128]; /** 是å¦ä½¿ç”¨ç”¨æˆ·ä¿¡æ¯ç»“构体 */ public int bUserInfoExValid; /** æ‰©å±•ç”¨æˆ·ä¿¡æ¯ NET_ACCESS_USER_INFO_EX */ public Pointer pstuUserInfoEx; /** 授æƒæ—¶é—´ã€è¿‡æœŸæ—¶é—´ï¼Œæ—¶é—´å•ä½: å°æ—¶ */ public int nAuthOverdueTime; /** 人员å¥åº·çŠ¶æ€ï¼ˆæ·»åŠ ) {@link com.iailab.netsdk.lib.enumeration.EM_GREENCNHEALTH_STATUS} */ public int emGreenCNHealthStatus; /** 电å通行è¯çŠ¶æ€ï¼ˆæ·»åŠ ) {@link com.iailab.netsdk.lib.enumeration.EM_ALLOW_PERMIT_FLAG} */ public int emAllowPermitFlag; /** å‡æ—¥ç»„HolidayGroup索引值 */ public int nHolidayGroupIndex; /** ä¿¡æ¯æ›´æ–°æ—¶é—´,UTC时间 */ public com.iailab.netsdk.lib.structure.NET_TIME stuUpdateTime=new com.iailab.netsdk.lib.structure.NET_TIME(); /** * 用户的门通é“起始有效期,æ¯ä¸ªé€šé“设置一个有效期,æ•°ç»„å…ƒç´ ä¸Žé—¨é€šé“一一对应 */ public byte[] szValidFroms = new byte[8 * 24]; /** * 用户的门通é“起始有效期有效个数, 最大值为8 */ public int nValidFromsNum; /** * 用户的门通é“截æ¢æœ‰æ•ˆæœŸæœ‰æ•ˆä¸ªæ•°, 最大值为8 */ public int nValidTosNum; /** * 用户的门通é“截æ¢æœ‰æ•ˆæœŸ,æ¯ä¸ªé€šé“设置一个有效期,æ•°ç»„å…ƒç´ ä¸Žé—¨é€šé“一一对应 */ public byte[] szValidTos = new byte[8 * 24]; /** * 用户ID扩展,当å‰åªæ”¯æŒ32ä½æœ‰æ•ˆå€¼ä¸‹å‘ */ public byte[] szUserIDEx = new byte[128]; /** * szUserIDEx 是å¦æœ‰æ•ˆï¼Œä¸ºTRUE时,使用szUserIDExå—段 */ public int bUserIDEx; /** * 金èžä¸šåŠ¡åº“的人员æƒé™ï¼Œ-1:表示未知, 0:å˜å–人, 1:å¤æ ¸äºº, 2:管ç†å‘˜ */ public int nFinancialUserType; /** * 自定义人员类型枚举 0 : 未知,1:轻工类型 */ public int nCustomUserType; /** * 自定义类型的枚举 0默认值 1å¦ç”Ÿ 2教师 3ä¿å®‰ 4ä¿éšœäººå‘˜ 5其他 6家属 7å—é™ç”¨æˆ· 8临时 9临时人员 10维修工 11åšå£« 12硕士 13本科 * 14特定å¦ç”Ÿ 15在编 16æ ¡è˜ 17ç‰¹æ®Šå²—ä½ 19一般 20特殊 21蒋钱湾居民 22立信公寓长城别苑居民 23社区居民 24常ä½æˆ· 25租户 * 26æ•™èŒå·¥å®¶å±ž 27预留1 28预留2 29预留3 30预留4 31预留5 32预留6 33预留7 34预留8 35预留9 36预留10 37预留11 * 38预留12 39预留13 40预留14 */ public int nCustomUserTypeValue; /** * å…许ç¾å…¥çš„时间点 */ public com.iailab.netsdk.lib.structure.NET_TIME_EX stuAllowCheckInTime = new com.iailab.netsdk.lib.structure.NET_TIME_EX(); /** * å…许ç¾å‡ºçš„时间点 */ public com.iailab.netsdk.lib.structure.NET_TIME_EX stuAllowCheckOutTime = new com.iailab.netsdk.lib.structure.NET_TIME_EX(); /** * 扩展用户信æ¯V2, refer to {@link NET_ACCESS_USER_INFO_EX2} */ public Pointer pstuUserInfoEx2; /** * 是å¦ä½¿ç”¨ç”¨æˆ·ä¿¡æ¯ç»“构体V2 */ public int bUserInfoEx2Valid; /** * ä¿ç•™å—段 */ public byte[] byReserved = new byte[660 - 2 * POINTERSIZE]; public NET_ACCESS_USER_INFO() { } } public static class FloorNoEx_INFO extends SdkStructure{ public byte[] szFloorNoEx=new byte[4]; } public static class ACCESS_FLOOR_INFO extends SdkStructure { public byte[] szFloorNo = new byte[NET_COMMON_STRING_16]; // æ¥¼å±‚å· } public static class ROOM_INFO extends SdkStructure { public byte[] szRoomNo = new byte[NET_COMMON_STRING_16]; // æˆ¿é—´å· } // æ“作错误ç public static class NET_EM_FAILCODE extends SdkStructure { public static final int NET_EM_FAILCODE_NOERROR = 0; // 没有错误 public static final int NET_EM_FAILCODE_UNKNOWN = 1; // 未知错误 public static final int NET_EM_FAILCODE_INVALID_PARAM = 2; // å‚数错误 public static final int NET_EM_FAILCODE_INVALID_PASSWORD = 3; // æ— æ•ˆå¯†ç public static final int NET_EM_FAILCODE_INVALID_FP = 4; // æ— æ•ˆä¿¡æ¯æ•°æ® public static final int NET_EM_FAILCODE_INVALID_FACE = 5; // æ— æ•ˆäººè„¸æ•°æ® public static final int NET_EM_FAILCODE_INVALID_CARD = 6; // æ— æ•ˆå¡æ•°æ® public static final int NET_EM_FAILCODE_INVALID_USER = 7; // æ— æ•ˆäººæ•°æ® public static final int NET_EM_FAILCODE_FAILED_GET_SUBSERVICE = 8; // 能力集åæœåŠ¡èŽ·å–失败 public static final int NET_EM_FAILCODE_FAILED_GET_METHOD = 9; // 获å–组件的方法集失败 public static final int NET_EM_FAILCODE_FAILED_GET_SUBCAPS = 10; // 获å–资æºå®žä½“能力集失败 public static final int NET_EM_FAILCODE_ERROR_INSERT_LIMIT = 11; // 已达æ’å…¥ä¸Šé™ public static final int NET_EM_FAILCODE_ERROR_MAX_INSERT_RATE = 12; // 已达最大æ’入速度 public static final int NET_EM_FAILCODE_FAILED_ERASE_FP = 13; // 清除信æ¯æ•°æ®å¤±è´¥ public static final int NET_EM_FAILCODE_FAILED_ERASE_FACE = 14; // 清除人脸数æ®å¤±è´¥ public static final int NET_EM_FAILCODE_FAILED_ERASE_CARD = 15; // 清除å¡æ•°æ®å¤±è´¥ public static final int NET_EM_FAILCODE_NO_RECORD = 16; // 没有记录 public static final int NET_EM_FAILCODE_NOMORE_RECORD = 17; // 查找到最åŽï¼Œæ²¡æœ‰æ›´å¤šè®°å½• public static final int NET_EM_FAILCODE_RECORD_ALREADY_EXISTS = 18; // 下å‘å¡æˆ–ä¿¡æ¯æ—¶ï¼Œæ•°æ®é‡å¤ public static final int NET_EM_FAILCODE_MAX_FP_PERUSER = 19; // 超过个人最大信æ¯è®°å½•æ•° public static final int NET_EM_FAILCODE_MAX_CARD_PERUSER = 20; // 超过个人最大å¡ç‰‡è®°å½•æ•° public static final int NET_EM_FAILCODE_EXCEED_MAX_PHOTOSIZE=21; // è¶…å‡ºæœ€å¤§ç…§ç‰‡å¤§å° public static final int NET_EM_FAILCODE_INVALID_USERID=22; // 用户IDæ— æ•ˆï¼ˆæœªæ‰¾åˆ°å®¢æˆ·ï¼‰ public static final int NET_EM_FAILCODE_EXTRACTFEATURE_FAIL=23; // æå–人脸特å¾å¤±è´¥ public static final int NET_EM_FAILCODE_PHOTO_EXIST=24; // 人脸照片已å˜åœ¨ public static final int NET_EM_FAILCODE_PHOTO_OVERFLOW=25; // 超出最大人脸照片数 public static final int NET_EM_FAILCODE_INVALID_PHOTO_FORMAT=26; // ç…§ç‰‡æ ¼å¼æ— 效 public static final int NET_EM_FAILCODE_EXCEED_ADMINISTRATOR_LIMIT=27; // 超出管ç†å‘˜äººæ•°é™åˆ¶ public static final int NET_EM_FAILECODE_FACE_FEATURE_ALREADY_EXIST=28; // 人脸特å¾å·²å˜åœ¨ public static final int NET_EM_FAILECODE_FINGERPRINT_EXIST=29; // ä¿¡æ¯å·²å˜åœ¨ public static final int NET_EM_FAILECODE_CITIZENID_EXIST=30; // è¯ä»¶å·å·²å˜åœ¨ public static final int NET_EM_FAILECODE_NORMAL_USER_NOTSUPPORT=31; // ä¸æ”¯æŒæ™®é€šç”¨æˆ·ä¸‹å‘ public static final int NET_EM_FAILCODE_NO_FACE_DETECTED=32; // 图片ä¸æ£€æµ‹åˆ°0ä¸ªäººè„¸ç›®æ ‡ public static final int NET_EM_FAILCODE_MULTI_FACE_DETECTED=33; // 图片ä¸æ£€æµ‹åˆ°å¤šä¸ªäººè„¸ï¼Œæ— æ³•è¿”å›žç‰¹å¾ public static final int NET_EM_FAILCODE_PICTURE_DECODING_ERROR=34; // 图片解ç 错误 public static final int NET_EM_FAILCODE_LOW_PICTURE_QUALITY=35; // 图片质é‡å¤ªä½Ž public static final int NET_EM_FAILCODE_NOT_RECOMMENDED=36; // 结果ä¸æŽ¨è使用,比如:对外国人,特å¾æå–æˆåŠŸï¼Œä½†ç®—法支æŒä¸å¥½ï¼Œå®¹æ˜“é€ æˆè¯¯è¯†åˆ« public static final int NET_EM_FAILCODE_FACE_ANGLE_OVER_THRESHOLDS=37; // 人脸角度超过é…置阈值 public static final int NET_EM_FAILCODE_FACE_RADIO_EXCEEDS_RANGE=38; // 人脸å 比超出范围,算法建议å 比:ä¸è¦è¶…过2/3;ä¸è¦å°äºŽ1/3 public static final int NET_EM_FAILCODE_FACE_OVER_EXPOSED=39; // 人脸过爆 public static final int NET_EM_FAILCODE_FACE_UNDER_EXPOSED=40; // äººè„¸æ¬ çˆ† public static final int NET_EM_FAILCODE_BRIGHTNESS_IMBALANCE=41; // 人脸亮度ä¸å‡è¡¡ ,用于判æ–阴阳脸 public static final int NET_EM_FAILCODE_FACE_LOWER_CONFIDENCE=42; // 人脸的置信度低 public static final int NET_EM_FAILCODE_FACE_LOW_ALIGN=43; // 人脸对é½åˆ†æ•°ä½Ž public static final int NET_EM_FAILCODE_FRAGMENTARY_FACE_DETECTED=44; // 人脸å˜åœ¨é®æŒ¡ã€æ®‹ç¼ºä¸å…¨ public static final int NET_EM_FAILCODE_PUPIL_DISTANCE_NOT_ENOUGH=45; // 人脸瞳è·å°äºŽé˜ˆå€¼ public static final int NET_EM_FAILCODE_FACE_DATA_DOWNLOAD_FAILED=46; // 人脸数æ®ä¸‹è½½å¤±è´¥ public static final int NET_EM_FAILCODE_FACE_FFE_FAILED=47; // 人脸å¯æ£€æµ‹ï¼Œä½†ç‰¹å¾å€¼æå–失败(算法场景) public static final int NET_EM_FAILCODE_PHOTO_FEATURE_FAILED_FOR_FA=48; // äººè„¸ç…§ç‰‡å› å£ç½©ï¼Œå¸½å,墨镜ç‰äººè„¸å±žæ€§ä¸ç¬¦åˆè€Œæå–特å¾å€¼é”™è¯¯ public static final int NET_EM_FAILCODE_FACE_DATA_PHOTO_INCOMPLETE=49; // 人脸照片ä¸å®Œæ•´ } /************************************************************************************************* * é—¨ç¦å¡ä¿¡æ¯æ“作:增ã€åˆ ã€æ”¹ã€æŸ¥ã€æ¸…空 ************************************************************************************************/ // å¡ç‰‡ä¿¡æ¯æ“作类型 public static class NET_EM_ACCESS_CTL_CARD_SERVICE extends SdkStructure { public static final int NET_EM_ACCESS_CTL_CARD_SERVICE_INSERT = 0; // æ·»åŠ , pstInParam = NET_IN_ACCESS_CARD_SERVICE_INSERT , pstOutParam = NET_OUT_ACCESS_CARD_SERVICE_INSERT public static final int NET_EM_ACCESS_CTL_CARD_SERVICE_GET = 1; // 获å–, pstInParam = NET_IN_ACCESS_CARD_SERVICE_GET , pstOutParam = NET_OUT_ACCESS_CARD_SERVICE_GET public static final int NET_EM_ACCESS_CTL_CARD_SERVICE_UPDATE = 2; // æ›´æ–°, pstInParam = NET_IN_ACCESS_CARD_SERVICE_UPDATE , pstOutParam = NET_OUT_ACCESS_CARD_SERVICE_UPDATE public static final int NET_EM_ACCESS_CTL_CARD_SERVICE_REMOVE = 3; // åˆ é™¤, pstInParam = NET_IN_ACCESS_CARD_SERVICE_REMOVE , pstOutParam = NET_OUT_ACCESS_CARD_SERVICE_REMOVE public static final int NET_EM_ACCESS_CTL_CARD_SERVICE_CLEAR = 4; // 清空, pstInParam = NET_IN_ACCESS_CARD_SERVICE_CLEAR , pstOutParam = NET_OUT_ACCESS_CARD_SERVICE_CLEAR } /** * @author 260611 * @description å¡ç‰‡ä¿¡æ¯ * @origin autoTool * @date 2023/09/18 10:23:47 */ public class NET_ACCESS_CARD_INFO extends SdkStructure { /** * / å¡å· */ public byte[] szCardNo = new byte[32]; /** * / 用户ID */ public byte[] szUserID = new byte[32]; /** * / å¡ç±»åž‹,åªæ”¯æŒä¸€èˆ¬å¡ã€èƒè¿«å¡å’Œæ¯å¡ {@link NET_ACCESSCTLCARD_TYPE} */ public int emType; /** * / 动æ€æ ¡éªŒç */ public byte[] szDynamicCheckCode = new byte[16]; /** * / ä¿¡æ¯æ›´æ–°æ—¶é—´,UTC时间 */ public com.iailab.netsdk.lib.structure.NET_TIME stuUpdateTime = new com.iailab.netsdk.lib.structure.NET_TIME(); /** * / 用户ID扩展,当å‰åªæ”¯æŒ32ä½æœ‰æ•ˆå€¼ä¸‹å‘ */ public byte[] szUserIDEx = new byte[128]; /** * / szUserIDEx 是å¦æœ‰æ•ˆï¼Œä¸ºTRUE时,使用szUserIDExå—段 */ public int bUserIDEx; /** * / ä¿ç•™å—节 */ public byte[] byReserved = new byte[3940]; public NET_ACCESS_CARD_INFO() { } } // 新增å¡ç‰‡ä¿¡æ¯å…¥å‚ public static class NET_IN_ACCESS_CARD_SERVICE_INSERT extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nInfoNum; // 用户信æ¯æ•°é‡ public Pointer pCardInfo; // å¡ç‰‡ä¿¡æ¯,对应数组NET_ACCESS_CARD_INFO,用户分é…释放内å˜,大å°ä¸ºsizeof(NET_ACCESS_CARD_INFO)*nInfoNum public NET_IN_ACCESS_CARD_SERVICE_INSERT() { this.dwSize = this.size(); } } // 新增å¡ç‰‡ä¿¡æ¯å‡ºå‚ public static class NET_OUT_ACCESS_CARD_SERVICE_INSERT extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nMaxRetNum; // 最大返回的用户信æ¯æ•°é‡,ä¸å°äºŽNET_IN_ACCESS_CARD_SERVICE_INSERTä¸nInfoNum public Pointer pFailCode; // 对应 FAIL_CODE, 用户分é…释放内å˜,æ’入失败时,对应æ’入的æ¯ä¸€é¡¹çš„结果,返回个数åŒNET_IN_ACCESS_CARD_SERVICE_INSERTä¸nInfoNum public byte[] byReserved = new byte[4]; public NET_OUT_ACCESS_CARD_SERVICE_INSERT() { this.dwSize = this.size(); } } // 获å–å¡ç‰‡ä¿¡æ¯å…¥å‚ public static class NET_IN_ACCESS_CARD_SERVICE_GET extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nCardNum; // æŸ¥è¯¢çš„æ•°é‡ public CARDNO[] szCardNos = (CARDNO[])new CARDNO().toArray(100); // å¡å·åˆ—表 public NET_IN_ACCESS_CARD_SERVICE_GET() { this.dwSize = this.size(); } } public static class CARDNO extends SdkStructure { public byte[] szCardNo = new byte[32]; // å¡å· } // 获å–å¡ç‰‡ä¿¡æ¯å‡ºå‚ public static class NET_OUT_ACCESS_CARD_SERVICE_GET extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nMaxRetNum; // æŸ¥è¯¢è¿”å›žçš„æœ€å¤§æ•°é‡ public Pointer pCardInfo; // å¡ç‰‡ä¿¡æ¯,对应数组NET_ACCESS_CARD_INFO,内å˜ç”±ç”¨æˆ·ç”³è¯·é‡Šæ”¾ï¼Œç”³è¯·å¤§å°ä¸å°äºŽnCardNum*sizeof(NET_ACCESS_CARD_INFO); // 返回个数åŒNET_IN_ACCESS_CARD_SERVICE_GETä¸nCardNum public Pointer pFailCode; // 对应FAIL_CODE, 查询失败时,对应查询的æ¯ä¸€é¡¹çš„结果,返回个数åŒNET_IN_ACCESS_CARD_SERVICE_GETä¸nCardNum public NET_OUT_ACCESS_CARD_SERVICE_GET() { this.dwSize = this.size(); } } // æ›´æ–°å¡ç‰‡ä¿¡æ¯å…¥å‚ public static class NET_IN_ACCESS_CARD_SERVICE_UPDATE extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nInfoNum; // 用户信æ¯æ•°é‡ public Pointer pCardInfo; // å¡ç‰‡ä¿¡æ¯, 对应数组NET_ACCESS_CARD_INFO,用户分é…释放内å˜,大å°ä¸ºsizeof(NET_ACCESS_CARD_INFO)*nInfoNum public NET_IN_ACCESS_CARD_SERVICE_UPDATE() { this.dwSize = this.size(); } } // æ›´æ–°å¡ç‰‡ä¿¡æ¯å‡ºå‚ public static class NET_OUT_ACCESS_CARD_SERVICE_UPDATE extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nMaxRetNum; // 最大返回的用户信æ¯æ•°é‡,ä¸å°äºŽNET_IN_ACCESS_CARD_SERVICE_UPDATEä¸nInfoNum public Pointer pFailCode; // 对应 FAIL_CODE, 用户分é…释放内å˜,æ’入失败时,对应æ’入的æ¯ä¸€é¡¹çš„结果,返回个数åŒNET_IN_ACCESS_CARD_SERVICE_UPDATEä¸nInfoNum public byte[] byReserved = new byte[4]; public NET_OUT_ACCESS_CARD_SERVICE_UPDATE() { this.dwSize = this.size(); } } // åˆ é™¤æŒ‡å®šå¡å·ä¿¡æ¯å…¥å‚ public static class NET_IN_ACCESS_CARD_SERVICE_REMOVE extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nCardNum; // åˆ é™¤çš„æ•°é‡ public CARDNO[] szCardNos = (CARDNO[])new CARDNO().toArray(100); // å¡å·åˆ—表 public NET_IN_ACCESS_CARD_SERVICE_REMOVE() { this.dwSize = this.size(); } } // åˆ é™¤æŒ‡å®šå¡å·ä¿¡æ¯å‡ºå‚ public static class NET_OUT_ACCESS_CARD_SERVICE_REMOVE extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nMaxRetNum; // 最大返回信æ¯æ•°é‡,ä¸å°äºŽ NET_IN_ACCESS_CARD_SERVICE_REMOVEä¸nCardNum public Pointer pFailCode; // 对应 FAIL_CODE, 用户分é…释放内å˜,æ’入失败时,å¯¹åº”åˆ é™¤çš„æ¯ä¸€é¡¹çš„结果,返回个数åŒNET_IN_ACCESS_CARD_SERVICE_REMOVEä¸nCardNum public byte[] byReserved = new byte[4]; public NET_OUT_ACCESS_CARD_SERVICE_REMOVE() { this.dwSize = this.size(); } } // åˆ é™¤æ‰€æœ‰å¡ç‰‡ä¿¡æ¯å…¥å‚ public static class NET_IN_ACCESS_CARD_SERVICE_CLEAR extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public NET_IN_ACCESS_CARD_SERVICE_CLEAR() { this.dwSize = this.size(); } } // åˆ é™¤æ‰€æœ‰å¡ç‰‡ä¿¡æ¯å‡ºå‚ public static class NET_OUT_ACCESS_CARD_SERVICE_CLEAR extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public NET_OUT_ACCESS_CARD_SERVICE_CLEAR() { this.dwSize = this.size(); } } // 产å“定义 public static class NET_PRODUCTION_DEFNITION extends SdkStructure { public int dwSize; public int nVideoInChannel; // 视频输入通é“æ•° public int nVideoOutChannel; // 视频输出通é“æ•° public int nRemoteDecChannel; // 远程解ç 通é“æ•° public byte[] szDevType = new byte[NET_DEV_TYPE_LEN]; // 设备类型 public byte[] szVendor = new byte[NET_MAX_NAME_LEN]; // OEM客户 public int nOEMVersion; // OEM版本 public int nMajorVerion; // ä¸»ç‰ˆæœ¬å· public int nMinorVersion; // æ¬¡ç‰ˆæœ¬å· public int nRevision; // 修订版本 public byte[] szWebVerion = new byte[NET_MAX_NAME_LEN]; // Web版本 public byte[] szDefLanguage = new byte[NET_MAX_NAME_LEN]; // 默认è¯è¨€ public NET_TIME stuBuildDateTime; // å‘布时间, 精确到秒 public int nAudioInChannel; // 音频输入通é“æ•° public int nAudioOutChannel; // 音频输出通é“æ•° public int bGeneralRecord; // 是å¦æ”¯æŒå®šæ—¶å˜å‚¨ public int bLocalStore; // 是å¦æ”¯æŒæœ¬åœ°å˜å‚¨ public int bRemoteStore; // 是å¦æ”¯æŒç½‘络å˜å‚¨ public int bLocalurgentStore; // 是å¦æ”¯æŒç´§æ€¥å˜å‚¨åˆ°æœ¬åœ° public int bRealtimeCompress; // 是å¦æ”¯æŒå®žæ—¶åŽ‹ç¼©å˜å‚¨ public int dwVideoStandards; // 支æŒçš„视频制å¼åˆ—表, bit0-PAL, bit1-NTSC public int nDefVideoStandard; // 默认视频制å¼, 0-PAL, 1-NTSC public int nMaxExtraStream; // 最大辅ç æµè·¯æ•° public int nRemoteRecordChannel; // 远程录åƒé€šé“æ•° public int nRemoteSnapChannel; // 远程抓图通é“æ•° public int nRemoteVideoAnalyseChannel; // 远程视频分æžé€šé“æ•° public int nRemoteTransmitChannel; // 远程实时æµè½¬å‘最大通é“æ•° public int nRemoteTransmitFileChannel; // 远程文件æµç«¹ç通é“通é“æ•° public int nStreamTransmitChannel; // æœ€å¤§ç½‘ç»œä¼ è¾“é€šé“总数 public int nStreamReadChannel; // 最大读文件æµé€šé“总数 public int nMaxStreamSendBitrate; // 最大ç æµç½‘络å‘é€èƒ½åŠ›, kbps public int nMaxStreamRecvBitrate; // 最大ç æµç½‘络接å£èƒ½åŠ›, kbps public int bCompressOldFile; // 是å¦åŽ‹ç¼©æ—§æ–‡ä»¶, 去除P帧, ä¿ç•™I帧 public int bRaid; // 是å¦æ”¯æŒRAID public int nMaxPreRecordTime; // 最大预录时间, s public int bPtzAlarm; // 是å¦æ”¯æŒäº‘å°æŠ¥è¦ public int bPtz; // 是å¦æ”¯æŒäº‘å° public int bATM; // 是å¦æ˜¾ç¤ºATM相关功能 public int b3G; // 是å¦æ”¯æŒ3Gæ¨¡å— public int bNumericKey; // 是å¦å¸¦æ•°å—é”® public int bShiftKey; // 是å¦å¸¦Shifté”® public int bCorrectKeyMap; // æ•°å—å—æ¯æ˜ 射表是å¦æ£ç¡® public int bNewATM; // 新的二代ATMå‰é¢æ¿ public int bDecoder; // 是å¦æ˜¯è§£ç 器 public DEV_DECODER_INFO stuDecoderInfo; // 解ç 器信æ¯, bDecoder=true时有效 public int nVideoOutputCompositeChannels; // èžåˆå±è¾“出通é“ä¸Šé™ public int bSupportedWPS; // 是å¦æ”¯æŒWPS功能 public int nVGAVideoOutputChannels; // VGA视频输出通é“æ•° public int nTVVideoOutputChannels; // TV视频输出通é“æ•° public int nMaxRemoteInputChannels; // 最大远程通é“æ•° public int nMaxMatrixInputChannels; // 最大矩阵通é“æ•° public int nMaxRoadWays; // 智能交通最大车é“æ•° 1~6 public int nMaxParkingSpaceScreen; // 和相机对接最多支æŒçš„区域å±ä¸ªæ•° 0~20 public int nPtzHorizontalAngleMin; // 云å°æ°´å¹³æœ€å°è§’度, [0-360] public int nPtzHorizontalAngleMax; // 云å°æ°´å¹³æœ€å¤§è§’度, [0-360] public int nPtzVerticalAngleMin; // 云å°åž‚直最å°è§’度, [-90,90] public int nPtzVerticalAngleMax; // 云å°åž‚直最大角度, [-90,90] public int bPtzFunctionMenu; // 是å¦æ”¯æŒäº‘å°åŠŸèƒ½èœå• public int bLightingControl; // 是å¦æ”¯æŒç¯å…‰æŽ§åˆ¶ public int dwLightingControlMode; // 手动ç¯å…‰æŽ§åˆ¶æ¨¡å¼, 按ä½, è§NET_LIGHTING_CTRL_ON_OFF public int nNearLightNumber; // è¿‘å…‰ç¯ç»„æ•°é‡, 0表示ä¸æ”¯æŒ public int nFarLightNumber; // 远光ç¯ç»„æ•°é‡, 0表示ä¸æ”¯æŒ public int bFocus; // 是å¦æ”¯æŒæŽ§åˆ¶èšç„¦ public int bIris; // 是å¦æ”¯æŒæŽ§åˆ¶å…‰åœˆ public byte[] szPtzProtocolList = new byte[NET_COMMON_STRING_1024];// 云å°æ”¯æŒçš„å议列表, å¯ä»¥æ˜¯å¤šä¸ª, æ¯ä¸ªç”¨';'分隔 public int bRainBrushControl; // 是å¦æ”¯æŒé›¨åˆ·æŽ§åˆ¶ public int nBrushNumber; // 雨刷数é‡, 为0时表示ä¸æ”¯æŒ public int[] nLowerMatrixInputChannels = new int[NET_MAX_LOWER_MITRIX_NUM]; // 下ä½çŸ©é˜µè§†é¢‘输入通é“, ä¸‹æ ‡å¯¹åº”çŸ©é˜µç¼–å· public int[] nLowerMatrixOutputChannels = new int[NET_MAX_LOWER_MITRIX_NUM];// 下ä½çŸ©é˜µè§†é¢‘输出通é“, ä¸‹æ ‡å¯¹åº”çŸ©é˜µç¼–å· public int bSupportVideoAnalyse; // 是å¦æ”¯æŒæ™ºèƒ½åˆ†æž public int bSupportIntelliTracker; // 是å¦æ”¯æŒæ™ºèƒ½è·Ÿè¸ª public int nSupportBreaking; //设备支æŒçš„è¿ç« 类型掩ç (按ä½èŽ·å–) //0-é—¯çº¢ç¯ 1-压线 2-逆行 3-æ¬ é€Ÿ 4-超速 5-有车å é“ 6-黄牌å é“ 7-è¿ç« 行驶(左转ã€å³è½¬ã€è°ƒå¤´ï¼‰ //8-è¿ç« 进入待行区 9-è¿ç« åœè½¦ 10-äº¤é€šæ‹¥å µ 11-ä¸æŒ‰è½¦é“行驶 12-è¿ç« å˜é“ 13-压黄线 14-路肩行驶 //15-æ‰‹åŠ¨æŠ“æ‹ 16-è¿ç« 滞留 17-斑马线行人优先 18-æµé‡è¿‡å¤§ 19-æµé‡è¿‡å° 20-è¿ç« å é“ 21-è¿ç« 倒车 //22-压åœæ¢çº¿ 23-é—¯é»„ç¯ 24-é»„ç½‘æ ¼çº¿åœè½¦ 25-车ä½æœ‰è½¦ 26-车ä½æ— 车 27-车ä½æœ‰è½¦åŽ‹çº¿ 28-å—é™è½¦ç‰Œ //29-ç¦è¡Œ 30-ä¸ç³»å®‰å…¨å¸¦ 31-驾驶员抽烟 public int nSupportBreaking1; //0-é©¾é©¶å‘˜æ‰“ç”µè¯ 1-è¡Œäººé—¯çº¢ç¯ 2-è½¦è¾†æ‹¥å µç¦å…¥ 3-未按规定ä¾æ¬¡äº¤æ›¿é€šè¡Œ public NET_PD_VIDEOANALYSE stuVideoAnalyse; //æ™ºèƒ½åˆ†æž public int bTalkTransfer; //是å¦æ”¯æŒè½¬å‘对讲功能 public int bCameraAttribute; // 是å¦æ”¯æŒçƒæœºæ‘„åƒå¤´å±žæ€§é¡µé¢ public int bPTZFunctionViaApp; // 是å¦æ”¯æŒç”±åº”用主控的云å°åŠŸèƒ½é€»è¾‘ public int bAudioProperties; // å–‡å是å¦æ”¯æŒè¯éŸ³æ’报 public int bIsCameraIDOsd; // 是å¦æ”¯æŒæ‘„åƒæœºç¼–å·å åŠ public int bIsPlaceOsd; // 是å¦æ”¯æŒåœ°ç‚¹ä¿¡æ¯å åŠ public int nMaxGeographyTitleLine; // 地ç†ä½ç½®å åŠ æœ€å¤§æ”¯æŒè¡Œæ•° public int emAudioChannel; // 设备声é“支æŒç±»åž‹,详è§EM_AUDIO_CHANNEL_TYPE public byte[] szVendorAbbr = new byte[NET_COMMON_STRING_32]; // 厂商缩写 public byte[] szTypeVersion = new byte[NET_COMMON_STRING_32]; // 软件å‘布类型 public int bIsVideoNexus; // 是å¦æ˜¯è§†è®¯äº’è”大基线 public int emWlanScanAndConfig; // WIFI扫æåŠé…置支æŒçš„版本类型,EM_WLAN_SCAN_AND_CONFIG_TYPE public boolean bSupportLensMasking; // IPC是å¦æ”¯æŒé•œå¤´è°ƒèŠ‚到负角度,进行结构é®æŒ¡ public NET_PRODUCTION_DEFNITION(){ this.dwSize = this.size(); } } // 解ç å™¨ä¿¡æ¯ public static class DEV_DECODER_INFO extends SdkStructure { public byte[] szDecType = new byte[64]; // 类型 public int nMonitorNum; // TV个数 public int nEncoderNum; // 解ç 通é“个数 public byte[] szSplitMode = new byte[16]; // 支æŒçš„TVç”»é¢åˆ†å‰²æ•°,以数组形å¼è¡¨ç¤º,0为结尾 public byte[] bMonitorEnable = new byte[16]; // å„TV使能 public byte bTVTipDisplay; // 指示是å¦æ”¯æŒTVæ示信æ¯å åŠ è®¾ç½®, 0:ä¸æ”¯æŒ 1:支æŒ. public byte[] reserved1 = new byte[3]; public byte[] byLayoutEnable = new byte[48]; // å„解ç 通é“显示å åŠ ä¿¡æ¯ä½¿èƒ½ public int[] dwLayoutEnMask = new int[2]; // å„解ç 通é“显示å åŠ ä¿¡æ¯ä½¿èƒ½æŽ©ç ,从低ä½åˆ°é«˜ä½æ”¯æŒ64个通é“,å…¶ä¸dwLayoutEnMask[0]是低32ä½ public byte[] reserved = new byte[4]; } // æ™ºèƒ½åˆ†æž public static class NET_PD_VIDEOANALYSE extends SdkStructure { public int bSupport; // 是å¦æ”¯æŒæ™ºèƒ½åˆ†æž public NET_COMMON_STRING_64[] szSupportScenes = (NET_COMMON_STRING_64[])new NET_COMMON_STRING_64().toArray(NET_VIDEOANALYSE_SCENES); // 支æŒçš„场景 public NET_COMMON_STRING_64[] SupportRules = (NET_COMMON_STRING_64[])new NET_COMMON_STRING_64().toArray(NET_VIDEOANALYSE_RULES);; // 支æŒçš„规则 } public static class NET_COMMON_STRING_64 extends SdkStructure { public byte[] szCommon = new byte[NET_COMMON_STRING_64]; // 通用64ä½å—符串 } /************************************************************************************************* * é—¨ç¦äººè„¸ä¿¡æ¯æ“作:增ã€åˆ ã€æ”¹ã€æŸ¥ã€æ¸…空 ************************************************************************************************/ // 人脸信æ¯æ“作类型 public static class NET_EM_ACCESS_CTL_FACE_SERVICE extends SdkStructure { public static final int NET_EM_ACCESS_CTL_FACE_SERVICE_INSERT = 0; // æ·»åŠ , pInbuf = NET_IN_ACCESS_FACE_SERVICE_INSERT , pOutBuf = NET_OUT_ACCESS_FACE_SERVICE_INSERT public static final int NET_EM_ACCESS_CTL_FACE_SERVICE_GET = 1; // 获å–, pInbuf = NET_IN_ACCESS_FACE_SERVICE_GET , pOutBuf = NET_OUT_ACCESS_FACE_SERVICE_GET public static final int NET_EM_ACCESS_CTL_FACE_SERVICE_UPDATE = 2; // æ›´æ–°, pInbuf = NET_IN_ACCESS_FACE_SERVICE_UPDATE , pOutBuf = NET_OUT_ACCESS_FACE_SERVICE_UPDATE public static final int NET_EM_ACCESS_CTL_FACE_SERVICE_REMOVE = 3; // åˆ é™¤, pInbuf = NET_IN_ACCESS_FACE_SERVICE_REMOVE , pOutBuf = NET_OUT_ACCESS_FACE_SERVICE_REMOVE public static final int NET_EM_ACCESS_CTL_FACE_SERVICE_CLEAR = 4; // 清空, pInbuf = NET_IN_ACCESS_FACE_SERVICE_CLEAR , pOutBuf = NET_OUT_ACCESS_FACE_SERVICE_CLEAR } // äººè„¸ä¿¡æ¯ public static class NET_ACCESS_FACE_INFO extends SdkStructure { public byte[] szUserID = new byte[32]; // 用户ID public int nFaceData; // 人脸模æ¿æ•°æ®ä¸ªæ•°,最大20 public FACEDATA[] szFaceDatas = new FACEDATA[20]; // 人脸模æ¿æ•°æ® public int[] nFaceDataLen = new int[20]; // 人脸模版数æ®å¤§å° public int nFacePhoto; // 人脸照片个数,ä¸è¶…过5个 public int[] nInFacePhotoLen = new int[5]; // 用户申请的æ¯å¼ å›¾ç‰‡çš„å¤§å° public int[] nOutFacePhotoLen = new int[5]; // æ¯å¼ å›¾ç‰‡å®žé™…çš„å¤§å° public FACEPHOTO[] pFacePhotos = new FACEPHOTO[5]; // 人脸照片数æ®æ•°ç»„ 人脸照片数æ®,大å°ä¸è¶…过200K public int bFaceDataExEnable; // 是å¦ä½¿ç”¨æ‰©å±•äººè„¸æ¨¡æ¿æ•°æ® public int[] nMaxFaceDataLen=new int[20]; // 用户申请的扩展人脸模æ¿æ•°æ®å¤§å° public int[] nRetFaceDataLen=new int[20]; // 实际人脸模æ¿æ•°æ®å¤§å° public FACEDATAEX[] pFaceDataEx=new FACEDATAEX[20]; // 人脸模æ¿æ•°æ®æ‰©å±•å—段 当bFaceDataExEnable有效时,建议使用扩展å—段pFaceDataEx public NET_TIME stuUpdateTime=new NET_TIME(); // 人脸信æ¯æ›´æ–°æ—¶é—´,UTC时间 public byte[] szUserIDEx=new byte[128]; // 用户ID扩展,当å‰åªæ”¯æŒ32ä½æœ‰æ•ˆå€¼ä¸‹å‘ public int bUserIDEx; // szUserIDEx 是å¦æœ‰æ•ˆï¼Œä¸ºTRUE时,使用szUserIDExå—段 public int nEigenData; // 人脸特å¾å€¼ä¸ªæ•° public int[] nInEigenDataLen=new int[5]; // 用户申请的æ¯ä¸ªäººè„¸ç‰¹å¾å€¼å¤§å° public int[] nOutEigenDataLen=new int[5]; // æ¯ä¸ªäººè„¸ç‰¹å¾å€¼å®žé™…çš„å¤§å° public EIGENDATA[] pEigenDatas=new EIGENDATA[5]; // 人脸特å¾å€¼, 大å°ä¸è¶…过2048 public byte[] byReserved = new byte[1600-POINTERSIZE*5]; // ä¿ç•™å—节 public NET_ACCESS_FACE_INFO(){ for(int i=0;i<szFaceDatas.length;i++){ szFaceDatas[i]=new FACEDATA(); } for(int i=0;i<pFacePhotos.length;i++){ pFacePhotos[i]=new FACEPHOTO(); } for(int i=0;i<pFaceDataEx.length;i++){ pFaceDataEx[i]=new FACEDATAEX(); } for(int i=0;i<pEigenDatas.length;i++){ pEigenDatas[i]=new EIGENDATA(); } } } public static class EIGENDATA extends SdkStructure{ public Pointer pEigenData; // 人脸特å¾å€¼, 大å°ä¸è¶…过2048 } public static class FACEDATA extends SdkStructure { public byte[] szFaceData = new byte[2048]; // 人脸模æ¿æ•°æ® } public static class FACEDATAEX extends SdkStructure{ public Pointer pFaceDataEx;//人脸模æ¿æ•°æ®æ‹“展,当bFaceDataExEnable为true有效 } public static class FACEPHOTO extends SdkStructure { public Pointer pFacePhoto; // 人脸照片数æ®,大å°ä¸è¶…过200K } // æ·»åŠ äººè„¸è®°å½•ä¿¡æ¯è¾“å…¥å‚æ•°(NET_EM_ACCESS_CTL_FACE_SERVICE_INSERT) public static class NET_IN_ACCESS_FACE_SERVICE_INSERT extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nFaceInfoNum; // 人脸信æ¯æ•°é‡ public Pointer pFaceInfo; // 人脸数æ®,用户自行分é…æ•°æ®, 对应数组NET_ACCESS_FACE_INFO public NET_IN_ACCESS_FACE_SERVICE_INSERT() { this.dwSize = this.size(); } } // æ·»åŠ äººè„¸è®°å½•ä¿¡æ¯è¾“出å‚æ•°(NET_EM_ACCESS_CTL_FACE_SERVICE_INSERT) public static class NET_OUT_ACCESS_FACE_SERVICE_INSERT extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nMaxRetNum; // 最大返回数é‡,ä¸å°äºŽ NET_IN_ACCESS_FACE_SERVICE_INSERT ä¸çš„nFaceInfoNum public Pointer pFailCode; // 对应FAIL_CODE, 用户分é…内å˜,æ·»åŠ å¤±è´¥æ—¶,对应æ’入的æ¯ä¸€é¡¹çš„结果,返回个数åŒNET_IN_ACCESS_FACE_SERVICE_INSERTä¸çš„nFaceInfoNum public NET_OUT_ACCESS_FACE_SERVICE_INSERT() { this.dwSize = this.size(); } } // 批é‡èŽ·å–多用户多个人脸输入å‚æ•°(NET_EM_ACCESS_CTL_FACE_SERVICE_GET) public static class NET_IN_ACCESS_FACE_SERVICE_GET extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nUserNum; // 用户IDæ•°é‡,最大100 public USERID[] szUserIDs = (USERID[])new USERID().toArray(100); // 用户ID public USERIDEX[] szUserIDEx = (USERIDEX[])new USERIDEX().toArray(100); // 用户ID扩展,当å‰åªæ”¯æŒ32ä½æœ‰æ•ˆå€¼ä¸‹å‘ public int bUserIDEx; // szUserIDEx 是å¦æœ‰æ•ˆï¼Œä¸ºTRUE时,使用szUserIDExå—段 public NET_IN_ACCESS_FACE_SERVICE_GET() { this.dwSize = this.size(); } } // 批é‡èŽ·å–多用户多个人脸输出å‚æ•°(NET_EM_ACCESS_CTL_FACE_SERVICE_GET) public static class NET_OUT_ACCESS_FACE_SERVICE_GET extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nMaxRetNum; // 最大返回数é‡,ä¸å°äºŽ NET_IN_ACCESS_FACE_SERVICE_GET ä¸çš„ nUserNum public Pointer pFaceInfo; // 人脸数æ®, 对应数组NET_ACCESS_FACE_INFO,用户分é…内å˜,返回个数åŒNET_IN_ACCESS_FACE_SERVICE_GETä¸çš„nUserNum,åªè¿”äººè„¸æ¨¡ç‰ˆæ•°æ® public Pointer pFailCode; // 对应 FAIL_CODE, 用户分é…内å˜,获å–失败时,对应获å–çš„æ¯ä¸€é¡¹çš„结果,返回个数åŒNET_IN_ACCESS_FACE_SERVICE_GETä¸çš„nUserNum public NET_OUT_ACCESS_FACE_SERVICE_GET() { this.dwSize = this.size(); } } // 更新多用户多个人脸记录信æ¯è¾“å…¥å‚æ•°(NET_EM_ACCESS_CTL_FACE_SERVICE_UPDATE) public static class NET_IN_ACCESS_FACE_SERVICE_UPDATE extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nFaceInfoNum; // 人脸信æ¯æ•°é‡ public Pointer pFaceInfo; // 人脸数æ®,用户分é…内å˜, 对应数组 NET_ACCESS_FACE_INFO public NET_IN_ACCESS_FACE_SERVICE_UPDATE() { this.dwSize = this.size(); } } // 更新多用户多个人脸记录信æ¯è¾“出å‚æ•°(NET_EM_ACCESS_CTL_FACE_SERVICE_UPDATE) public static class NET_OUT_ACCESS_FACE_SERVICE_UPDATE extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nMaxRetNum; // 最大返回数é‡,ä¸å°äºŽ NET_IN_ACCESS_FACE_SERVICE_UPDATEä¸çš„nFaceInfoNum public Pointer pFailCode; // 对应 FAIL_CODE, 用户分é…内å˜.更新失败时,对应更新的æ¯ä¸€é¡¹çš„结果,返回个数åŒNET_IN_ACCESS_FACE_SERVICE_UPDATEä¸çš„nFaceInfoNum public NET_OUT_ACCESS_FACE_SERVICE_UPDATE() { this.dwSize = this.size(); } } // åˆ é™¤å¤šç”¨æˆ·çš„å¤šä¸ªäººè„¸ä¿¡æ¯è¾“å…¥å‚æ•°(NET_EM_ACCESS_CTL_FACE_SERVICE_REMOVE) public static class NET_IN_ACCESS_FACE_SERVICE_REMOVE extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nUserNum; // 用户IDæ•°é‡,最大100 public USERID[] szUserIDs = (USERID[])new USERID().toArray(100); // 用户ID public USERIDEX[] szUserIDEx = (USERIDEX[])new USERIDEX().toArray(100); // 用户ID扩展,当å‰åªæ”¯æŒ32ä½æœ‰æ•ˆå€¼ä¸‹å‘ public int bUserIDEx; // szUserIDEx 是å¦æœ‰æ•ˆï¼Œä¸ºTRUE时,使用szUserIDExå—段 public NET_IN_ACCESS_FACE_SERVICE_REMOVE() { this.dwSize = this.size(); } } // åˆ é™¤å¤šç”¨æˆ·çš„å¤šä¸ªäººè„¸ä¿¡æ¯è¾“出å‚æ•°(NET_EM_ACCESS_CTL_FACE_SERVICE_REMOVE) public static class NET_OUT_ACCESS_FACE_SERVICE_REMOVE extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nMaxRetNum; // 最大返回数é‡,ä¸å°äºŽ NET_IN_ACCESS_FACE_SERVICE_REMOVEä¸çš„nUserNum public Pointer pFailCode; // 对应 FAIL_CODE, 用户分é…内å˜.åˆ é™¤å¤±è´¥æ—¶,å¯¹åº”åˆ é™¤çš„æ¯ä¸€é¡¹çš„结果,返回个数åŒNET_IN_ACCESS_FACE_SERVICE_REMOVEä¸çš„nUserNum public NET_OUT_ACCESS_FACE_SERVICE_REMOVE() { this.dwSize = this.size(); } } // 清空所有人脸记录信æ¯è¾“å…¥å‚æ•°(NET_EM_ACCESS_CTL_FACE_SERVICE_CLEAR) public static class NET_IN_ACCESS_FACE_SERVICE_CLEAR extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public NET_IN_ACCESS_FACE_SERVICE_CLEAR() { this.dwSize = this.size(); } } // 清空所有人脸记录信æ¯è¾“出å‚æ•°(NET_EM_ACCESS_CTL_FACE_SERVICE_CLEAR) public static class NET_OUT_ACCESS_FACE_SERVICE_CLEAR extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public NET_OUT_ACCESS_FACE_SERVICE_CLEAR() { this.dwSize = this.size(); } } /************************************************************************************************* * é—¨ç¦ä¿¡æ¯ä¿¡æ¯æ“作:增ã€åˆ ã€æ”¹ã€æŸ¥ã€æ¸…空 ************************************************************************************************/ // ä¿¡æ¯ä¿¡æ¯æ“作类型 public static class NET_EM_ACCESS_CTL_FINGERPRINT_SERVICE extends SdkStructure { public static final int NET_EM_ACCESS_CTL_FINGERPRINT_SERVICE_INSERT = 0; // æ·»åŠ , pInbuf = NET_IN_ACCESS_FINGERPRINT_SERVICE_INSERT , pOutBuf = NET_OUT_ACCESS_FINGERPRINT_SERVICE_INSERT public static final int NET_EM_ACCESS_CTL_FINGERPRINT_SERVICE_GET = 1; // 获å–, pInbuf = NET_IN_ACCESS_FINGERPRINT_SERVICE_GET , pOutBuf = NET_OUT_ACCESS_FINGERPRINT_SERVICE_GET public static final int NET_EM_ACCESS_CTL_FINGERPRINT_SERVICE_UPDATE = 2; // æ›´æ–°, pInbuf = NET_IN_ACCESS_FINGERPRINT_SERVICE_UPDATE , pOutBuf = NET_OUT_ACCESS_FINGERPRINT_SERVICE_UPDATE public static final int NET_EM_ACCESS_CTL_FINGERPRINT_SERVICE_REMOVE = 3; // åˆ é™¤, pInbuf = NET_IN_ACCESS_FINGERPRINT_SERVICE_REMOVE , pOutBuf = NET_OUT_ACCESS_FINGERPRINT_SERVICE_REMOVE public static final int NET_EM_ACCESS_CTL_FINGERPRINT_SERVICE_CLEAR = 4; // 清空, pInbuf = NET_IN_ACCESS_FINGERPRINT_SERVICE_CLEAR , pOutBuf = NET_OUT_ACCESS_FINGERPRINT_SERVICE_CLEAR } // ä¿¡æ¯ä¿¡æ¯ public static class NET_ACCESS_FINGERPRINT_INFO extends SdkStructure { public byte[] szUserID = new byte[NET_MAX_USERID_LEN]; // 用户ID public int nPacketLen; // å•ä¸ªä¿¡æ¯æ•°æ®åŒ…长度 public int nPacketNum; // ä¿¡æ¯æ•°æ®åŒ…个数 public Pointer szFingerPrintInfo; // ä¿¡æ¯æ•°æ®(æ•°æ®æ€»é•¿åº¦å³nPacketLen*nPacketNum),用户分é…é‡Šæ”¾å†…å˜ public int nDuressIndex; // èƒè¿«ä¿¡æ¯åºå·,å–值范围[1,nPacketNum] éžæ³•å–值的è¯ï¼Œè¯¥å—æ®µæ— æ•ˆ public byte[] byReserved = new byte[4096]; // ä¿ç•™å—节 } // æ’入信æ¯ä¿¡æ¯å…¥å‚ public static class NET_IN_ACCESS_FINGERPRINT_SERVICE_INSERT extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nFpNum; // ä¿¡æ¯ä¿¡æ¯çš„æ•°é‡ public Pointer pFingerPrintInfo; // ä¿¡æ¯ä¿¡æ¯,用户分é…释放内å˜, 对应 NET_ACCESS_FINGERPRINT_INFO public NET_IN_ACCESS_FINGERPRINT_SERVICE_INSERT() { this.dwSize = this.size(); } } // æ’入信æ¯ä¿¡æ¯å‡ºå‚ public static class NET_OUT_ACCESS_FINGERPRINT_SERVICE_INSERT extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nMaxRetNum; // 返回信æ¯æ•°é‡,ä¸å°äºŽNET_IN_ACCESS_FINGERPRINT_SERVICE_INSERT ä¸ nFpNum public Pointer pFailCode; // 对应FAIL_CODE, 用户分é…释放内å˜,æ’入失败时,对应æ’入的æ¯ä¸€é¡¹çš„结果,返回个数åŒNET_IN_ACCESS_FINGERPRINT_SERVICE_INSERT ä¸nFpNum public NET_OUT_ACCESS_FINGERPRINT_SERVICE_INSERT() { this.dwSize = this.size(); } } // æ›´æ–°ä¿¡æ¯ä¿¡æ¯å…¥å‚ public static class NET_IN_ACCESS_FINGERPRINT_SERVICE_UPDATE extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nFpNum; // ä¿¡æ¯ä¿¡æ¯çš„æ•°é‡ public Pointer pFingerPrintInfo; // ä¿¡æ¯ä¿¡æ¯,用户分é…释放内å˜, 对应数组 NET_ACCESS_FINGERPRINT_INFO public NET_IN_ACCESS_FINGERPRINT_SERVICE_UPDATE() { this.dwSize = this.size(); } } // æ›´æ–°ä¿¡æ¯ä¿¡æ¯å‡ºå‚ public static class NET_OUT_ACCESS_FINGERPRINT_SERVICE_UPDATE extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nMaxRetNum; // 最大返回信æ¯æ•°é‡,ä¸å°äºŽ NET_IN_ACCESS_FINGERPRINT_SERVICE_UPDATEä¸nFpNum public Pointer pFailCode; // 对应 FAIL_CODE, 用户分é…释放内å˜,æ’入失败时,对应æ’入的æ¯ä¸€é¡¹çš„结果,返回个数åŒNET_IN_ACCESS_FINGERPRINT_SERVICE_UPDATEä¸nFpNum public NET_OUT_ACCESS_FINGERPRINT_SERVICE_UPDATE() { this.dwSize = this.size(); } } // 获å–ä¿¡æ¯ä¿¡æ¯å…¥å‚ public static class NET_IN_ACCESS_FINGERPRINT_SERVICE_GET extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public byte[] szUserID = new byte[NET_MAX_USERID_LEN]; // 用户ID public byte[] szUserIDEx = new byte[128]; // 用户ID扩展,当å‰åªæ”¯æŒ32ä½æœ‰æ•ˆå€¼ä¸‹å‘ public int bUserIDEx; // szUserIDEx 是å¦æœ‰æ•ˆï¼Œä¸ºTRUE时,使用szUserIDExå—段 public NET_IN_ACCESS_FINGERPRINT_SERVICE_GET() { this.dwSize = this.size(); } } // 获å–ä¿¡æ¯ä¿¡æ¯å‡ºå‚ public static class NET_OUT_ACCESS_FINGERPRINT_SERVICE_GET extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nRetFingerPrintCount; // 实际返回的信æ¯ä¸ªæ•° public int nSinglePacketLength; // å•ä¸ªä¿¡æ¯æ•°æ®åŒ…长度 public int nDuressIndex; // èƒè¿«ä¿¡æ¯åºå· public int nMaxFingerDataLength; // 接å—ä¿¡æ¯æ•°æ®çš„缓å˜çš„最大长度 public int nRetFingerDataLength; // 实际返回的总的信æ¯æ•°æ®åŒ…的长度 public Pointer pbyFingerData; // 用户分é…释放内å˜,ä¿¡æ¯æ•°æ® public NET_TIME stuUpdateTime; // ä¿¡æ¯æ›´æ–°æ—¶é—´,UTC时间 public NET_OUT_ACCESS_FINGERPRINT_SERVICE_GET() { this.dwSize = this.size(); } } // åˆ é™¤ç”¨æˆ·ä¿¡æ¯ä¿¡æ¯å…¥å‚ public static class NET_IN_ACCESS_FINGERPRINT_SERVICE_REMOVE extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nUserNum; // åˆ é™¤çš„ç”¨æˆ·æ•°é‡ public USERID[] szUserIDs = (USERID[])new USERID().toArray(100); // 用户ID public USERIDEX[] szUserIDEx = (USERIDEX[])new USERIDEX().toArray(100); // 用户ID扩展,当å‰åªæ”¯æŒ32ä½æœ‰æ•ˆå€¼ä¸‹å‘ public int bUserIDEx; // szUserIDEx 是å¦æœ‰æ•ˆï¼Œä¸ºTRUE时,使用szUserIDExå—段 public NET_IN_ACCESS_FINGERPRINT_SERVICE_REMOVE() { this.dwSize = this.size(); } } // åˆ é™¤ç”¨æˆ·ä¿¡æ¯ä¿¡æ¯å‡ºå‚ public static class NET_OUT_ACCESS_FINGERPRINT_SERVICE_REMOVE extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nMaxRetNum; // 最大返回数é‡,ä¸å°äºŽ NET_IN_ACCESS_FINGERPRINT_SERVICE_REMOVEä¸nUserNum public Pointer pFailCode; // 对应 FAIL_CODE, 用户分é…释放内å˜,åˆ é™¤å¤±è´¥æ—¶ï¼Œå¯¹åº”æ’入的æ¯ä¸€é¡¹çš„结果,返回个数åŒNET_IN_ACCESS_FINGERPRINT_SERVICE_REMOVEä¸nUserNum public NET_OUT_ACCESS_FINGERPRINT_SERVICE_REMOVE() { this.dwSize = this.size(); } } // 清除所有信æ¯ä¿¡æ¯å…¥å‚ public static class NET_IN_ACCESS_FINGERPRINT_SERVICE_CLEAR extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public NET_IN_ACCESS_FINGERPRINT_SERVICE_CLEAR() { this.dwSize = this.size(); } } // 清除所有信æ¯ä¿¡æ¯å‡ºå‚ public static class NET_OUT_ACCESS_FINGERPRINT_SERVICE_CLEAR extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public NET_OUT_ACCESS_FINGERPRINT_SERVICE_CLEAR() { this.dwSize = this.size(); } } // CLIENT_StartFindUserInfo 输入å‚æ•° public static class NET_IN_USERINFO_START_FIND extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public byte[] szUserID = new byte[MAX_COMMON_STRING_32]; // 用户ID public NET_IN_USERINFO_START_FIND() { this.dwSize = this.size(); } } // CLIENT_StartFindUserInfo 输出å‚æ•° public static class NET_OUT_USERINFO_START_FIND extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nTotalCount; // 符åˆæŸ¥è¯¢æ¡ä»¶çš„总数 public int nCapNum; // doFindä¸€æ¬¡æŸ¥è¯¢çš„æœ€å¤§æ•°é‡ public NET_OUT_USERINFO_START_FIND() { this.dwSize = this.size(); } } // CLIENT_DoFindUserInfo 输入å‚æ•° public static class NET_IN_USERINFO_DO_FIND extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nStartNo; // 起始åºå· public int nCount; // 本次查询的æ¡æ•° public NET_IN_USERINFO_DO_FIND() { this.dwSize = this.size(); } } // CLIENT_DoFindUserInfo 输出å‚æ•° public static class NET_OUT_USERINFO_DO_FIND extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nRetNum; // 本次查询到的个数 public Pointer pstuInfo; // 查询结果, 对应 NET_ACCESS_USER_INFO数组, 用户分é…释放内å˜,大å°ä¸ºsizeof(NET_ACCESS_USER_INFO)*nMaxNum public int nMaxNum; // 用户分é…内å˜çš„个数 public byte[] byReserved = new byte[4]; public NET_OUT_USERINFO_DO_FIND() { this.dwSize = this.size(); } } // CLIENT_StartFindCardInfo 输入å‚æ•° public static class NET_IN_CARDINFO_START_FIND extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public byte[] szUserID = new byte[32]; // 用户ID public byte[] szCardNo = new byte[32]; // å¡å· public int emType; // å¡ç±»åž‹,åªæ”¯æŒä¸€èˆ¬å¡ã€èƒè¿«å¡å’Œæ¯å¡, å‚考 NET_ACCESSCTLCARD_TYPE public NET_IN_CARDINFO_START_FIND() { this.dwSize = this.size(); } } // CLIENT_StartFindCardInfo 输出å‚æ•° public static class NET_OUT_CARDINFO_START_FIND extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nTotalCount; // 符åˆæŸ¥è¯¢æ¡ä»¶çš„总数 public int nCapNum; // CLIENT_DoFindCardInfo接å£ä¸€æ¬¡æŸ¥è¯¢çš„æœ€å¤§æ•°é‡ public NET_OUT_CARDINFO_START_FIND() { this.dwSize = this.size(); } } // CLIENT_DoFindCardInfo 输入å‚æ•° public static class NET_IN_CARDINFO_DO_FIND extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nStartNo; // 起始åºå· public int nCount; // 本次查询的æ¡æ•° public NET_IN_CARDINFO_DO_FIND() { this.dwSize = this.size(); } } // CLIENT_DoFindCardInfo 输出å‚æ•° public static class NET_OUT_CARDINFO_DO_FIND extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nRetNum; // 本次查询到的个数 public Pointer pstuInfo; // 查询结果, 对应 NET_ACCESS_CARD_INFO数组, 用户分é…释放内å˜,大å°ä¸ºsizeof(NET_FACEINFO)*nMaxNum public int nMaxNum; // 用户分é…内å˜çš„个数 public byte[] byReserved = new byte[4]; // ä¿ç•™å—节 public NET_OUT_CARDINFO_DO_FIND() { this.dwSize = this.size(); } } // 回放数æ®å›žè°ƒç»“构体 public static class NET_DATA_CALL_BACK_INFO extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int dwDataType; // æ•°æ®ç±»åž‹ public Pointer pBuffer; // æ•°æ® public int dwBufSize; // æ•°æ®é•¿åº¦ public NET_DATA_CALL_BACK_TIME stuTime; // 时间戳 public int emFramType; // 帧类型,EM_DATA_CALL_BACK_FRAM_TYPE public int emFramSubType; // 帧å类型,EM_DATA_CALL_BACK_FRAM_SUB_TYPE public NET_DATA_CALL_BACK_INFO() { this.dwSize = this.size(); } } // 回调数æ®æ—¶é—´ä¿¡æ¯ public static class NET_DATA_CALL_BACK_TIME 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 dwPTS; // pts 时间戳 public int dwDTS; // dts 时间戳 public int[] dwReserved=new int[3]; // 预留å—段 } // å‡çº§ç±»åž‹ public static class EM_UPGRADE_TYPE extends SdkStructure { public static final int DH_UPGRADE_BIOS_TYPE = 1; // BIOSå‡çº§ public static final int DH_UPGRADE_WEB_TYPE = 2; // WEBå‡çº§ public static final int DH_UPGRADE_BOOT_YPE = 3; // BOOTå‡çº§ public static final int DH_UPGRADE_CHARACTER_TYPE = 4; // 汉å—库 public static final int DH_UPGRADE_LOGO_TYPE = 5; // LOGO public static final int DH_UPGRADE_EXE_TYPE = 6; // EXE,例如æ’æ”¾å™¨ç‰ public static final int DH_UPGRADE_DEVCONSTINFO_TYPE = 7; // 设备固有信æ¯è®¾ç½®(如:硬件ID,MAC,åºåˆ—å·) public static final int DH_UPGRADE_PERIPHERAL_TYPE = 8; // 外设接入从片(如车载287芯片) public static final int DH_UPGRADE_GEOINFO_TYPE = 9; // 地ç†ä¿¡æ¯å®šä½èŠ¯ç‰‡ public static final int DH_UPGRADE_MENU = 10; // èœå•ï¼ˆè®¾å¤‡æ“作界é¢çš„图片) public static final int DH_UPGRADE_ROUTE = 11; // 线路文件(如公交线路) public static final int DH_UPGRADE_ROUTE_STATE_AUTO = 12; // 报站音频(与线路é…套的报站音频) public static final int DH_UPGRADE_SCREEN = 13; // 调度å±ï¼ˆå¦‚公交æ“作å±ï¼‰ } /*********************************************************************** ** 回调 ***********************************************************************/ //JNA Callback方法定义,æ–线回调 public interface fDisConnect extends Callback { public void invoke(LLong lLoginID, String pchDVRIP, int nDVRPort, Pointer dwUser); } // 网络连接æ¢å¤å›žè°ƒå‡½æ•°åŽŸå½¢ public interface fHaveReConnect extends Callback { public void invoke(LLong lLoginID, String pchDVRIP, int nDVRPort, Pointer dwUser); } // 消æ¯å›žè°ƒå‡½æ•°åŽŸå½¢(pBuf内å˜ç”±SDK内部申请释放) public interface fMessCallBack extends Callback{ public boolean invoke(int lCommand, LLong lLoginID, Pointer pStuEvent, int dwBufLen, String strDeviceIP, NativeLong nDevicePort, Pointer dwUser); } // 消æ¯å›žè°ƒå‡½æ•°åŽŸå½¢(pBuf内å˜ç”±SDK内部申请释放) // 新增å‚数说明 // bAlarmAckFlag : TRUE,该事件为å¯ä»¥è¿›è¡Œç¡®è®¤çš„事件;FALSE,è¯¥äº‹ä»¶æ— æ³•è¿›è¡Œç¡®è®¤ // nEventID 用于对 CLIENT_AlarmAck 接å£çš„å…¥å‚进行赋值,当 bAlarmAckFlag 为 TRUE æ—¶,该数æ®æœ‰æ•ˆ // pBuf内å˜ç”±SDK内部申请释放 public interface fMessCallBackEx1 extends Callback{ public boolean invoke(int lCommand, LLong lLoginID, Pointer pStuEvent, int dwBufLen, String strDeviceIP, NativeLong nDevicePort, int bAlarmAckFlag, NativeLong nEventID, Pointer dwUser); } // 订阅人脸回调函数 public interface fFaceFindState extends Callback { // pstStates 指å‘NET_CB_FACE_FIND_STATE的指针 public void invoke(LLong lLoginID, LLong lAttachHandle, Pointer pstStates, int nStateNum, Pointer dwUser); } // 智能分æžæ•°æ®å›žè°ƒ;nSequenceè¡¨ç¤ºä¸Šä¼ çš„ç›¸åŒå›¾ç‰‡æƒ…况,为0时表示是第一次出现,为2表示最åŽä¸€æ¬¡å‡ºçŽ°æˆ–仅出现一次,为1表示æ¤æ¬¡ä¹‹åŽè¿˜æœ‰ // int nState = *(int*) reserved 表示当å‰å›žè°ƒæ•°æ®çš„状æ€, 为0表示当å‰æ•°æ®ä¸ºå®žæ—¶æ•°æ®ï¼Œä¸º1表示当å‰å›žè°ƒæ•°æ®æ˜¯ç¦»çº¿æ•°æ®ï¼Œä¸º2时表示离线数æ®ä¼ é€ç»“æŸ // pAlarmInfo 对应智能事件信æ¯, pBuffer 对应智能图片信æ¯, dwBufSize 智能图片信æ¯å¤§å° public interface fAnalyzerDataCallBack extends Callback { public int invoke(LLong lAnalyzerHandle, int dwAlarmType, Pointer pAlarmInfo, Pointer pBuffer, int dwBufSize, Pointer dwUser, int nSequence, Pointer reserved) throws UnsupportedEncodingException; } // 抓图回调函数原形(pBuf内å˜ç”±SDK内部申请释放) // EncodeType ç¼–ç 类型,10:表示jpeg图片 0:mpeg4 CmdSerial : æ“作æµæ°´å·ï¼ŒåŒæ¥æŠ“图的情况下用ä¸ä¸Š public interface fSnapRev extends Callback{ public void invoke(LLong lLoginID, Pointer pBuf, int RevLen, int EncodeType, int CmdSerial, Pointer dwUser); } // 异æ¥æœç´¢è®¾å¤‡å›žè°ƒ(pDevNetInfo内å˜ç”±SDK内部申请释放) public interface fSearchDevicesCB extends Callback{ public void invoke(Pointer pDevNetInfo, Pointer pUserData); } // 按时间回放进度回调函数原形 public interface fTimeDownLoadPosCallBack extends Callback { public void invoke(LLong lPlayHandle, int dwTotalSize, int dwDownLoadSize, int index, NET_RECORDFILE_INFO.ByValue recordfileinfo, Pointer dwUser); } // 回放数æ®å›žè°ƒå‡½æ•°åŽŸå½¢ public interface fDataCallBack extends Callback { public int invoke(LLong lRealHandle, int dwDataType, Pointer pBuffer, int dwBufSize, Pointer dwUser); } // 回放进度回调函数原形 public interface fDownLoadPosCallBack extends Callback { public void invoke(LLong lPlayHandle, int dwTotalSize, int dwDownLoadSize, Pointer dwUser); } // 视频统计摘è¦ä¿¡æ¯å›žè°ƒå‡½æ•°åŽŸå½¢ï¼ŒlAttachHandle 是 CLIENT_AttachVideoStatSummary 返回值 public interface fVideoStatSumCallBack extends Callback { public void invoke(LLong lAttachHandle, NET_VIDEOSTAT_SUMMARY pBuf, int dwBufLen, Pointer dwUser); } // 回放数æ®å›žè°ƒå‡½æ•°åŽŸå½¢ï¼ˆæ‰©å±•ï¼‰ public interface fDataCallBackEx extends Callback { public int invoke(LLong lRealHandle, NET_DATA_CALL_BACK_INFO pDataCallBack, Pointer dwUser); } // 用户自定义的数æ®å›žè°ƒ lTalkHandle是CLIENT_StartTalkEx的返回值 // byAudioFlag: 0è¡¨ç¤ºæ˜¯æœ¬åœ°å½•éŸ³åº“é‡‡é›†çš„éŸ³é¢‘æ•°æ® ï¼Œ 1表示收到的设备å‘过æ¥çš„éŸ³é¢‘æ•°æ® public interface pfAudioDataCallBack extends Callback { public void invoke(LLong lTalkHandle, Pointer pDataBuf, int dwBufSize, byte byAudioFlag, Pointer dwUser); } // lHandleæ˜¯æ–‡ä»¶ä¼ è¾“å¥æŸ„ ,nTransTypeæ˜¯æ–‡ä»¶ä¼ è¾“ç±»åž‹ï¼ŒnStateæ˜¯æ–‡ä»¶ä¼ è¾“çŠ¶æ€ï¼Œ public interface fTransFileCallBack extends Callback { public void invoke(LLong lHandle, int nTransType, int nState, int nSendSize, int nTotalSize, Pointer dwUser); } // GPSä¿¡æ¯è®¢é˜…回调--扩展 public interface fGPSRevEx extends Callback { public void invoke(LLong lLoginID, GPS_Info.ByValue GpsInfo, ALARM_STATE_INFO.ByValue stAlarmInfo, Pointer dwUserData, Pointer reserved); } // GPSä¿¡æ¯è®¢é˜…回调--扩展2 public interface fGPSRevEx2 extends Callback { public void invoke(LLong lLoginID, NET_GPS_LOCATION_INFO lpData, Pointer dwUserData, Pointer reserved); } // 实时预览数æ®å›žè°ƒå‡½æ•°--扩展(pBuffer内å˜ç”±SDK内部申请释放)EM_CLASS_CROWD_ABNORMAL // lRealHandle实时预览 dwDataType: 0-åŽŸå§‹æ•°æ® 1-å¸§æ•°æ® 2-yuvæ•°æ® 3-pcméŸ³é¢‘æ•°æ® // pBuffer对应BYTE* // param:当类型为0(原始数æ®)å’Œ2(YUVæ•°æ®) 时为0。当回调的数æ®ç±»åž‹ä¸º1æ—¶param为一个tagVideoFrameParam结构体指针。 // param:当数æ®ç±»åž‹æ˜¯3æ—¶,param也是一个tagCBPCMDataParam结构体指针 public interface fRealDataCallBackEx extends Callback { public void invoke(LLong lRealHandle, int dwDataType, Pointer pBuffer, int dwBufSize, int param, Pointer dwUser); } // 实时预览数æ®å›žè°ƒå‡½æ•°åŽŸå½¢--扩展(pBuffer内å˜ç”±SDK内部申请释放) // 通过 dwDataType 过滤得到对应ç æµï¼Œå…·ä½“ç æµç±»åž‹è¯·å‚考 EM_REALDATA_FLAG; 转ç æµæ—¶ dwDataType 值请å‚考 NET_DATA_CALL_BACK_VALUE 说明 // 当转ç æµæ—¶ï¼Œparam 为具体的转ç ä¿¡æ¯ï¼ˆè§†é¢‘帧ã€éŸ³é¢‘帧ç‰ä¿¡æ¯ï¼‰ï¼Œå¯¹åº”结构体 NET_STREAMCONVERT_INFO public interface fRealDataCallBackEx2 extends Callback{ void invoke(LLong lRealHandle, int dwDataType, Pointer pBuffer, int dwBufSize, LLong param, Pointer dwUser); } // 视频预览æ–开回调函数, (param内å˜ç”±SDK内部申请释放 ) // lOperateHandle监控å¥æŸ„ dwEventType对应EM_REALPLAY_DISCONNECT_EVENT_TYPE param对应void*,事件å‚æ•° public interface fRealPlayDisConnect extends Callback { public void invoke(LLong lOperateHandle, int dwEventType, Pointer param, Pointer dwUser); } // 订阅过车记录数æ®å›žè°ƒå‡½æ•°åŽŸåž‹ lAttachHandle为CLIENT_ParkingControlAttachRecord返回值 public interface fParkingControlRecordCallBack extends Callback { public void invoke(LLong lLoginID, LLong lAttachHandle, NET_CAR_PASS_ITEM pInfo, int nBufLen, Pointer dwUser); } // 订阅车ä½ä¿¡æ¯å›žè°ƒå‡½æ•°åŽŸåž‹ public interface fParkInfoCallBack extends Callback { public void invoke(LLong lLoginID, LLong lAttachHandle, NET_PARK_INFO_ITEM pInfo, int nBufLen, Pointer dwUser); } // 订阅监测点ä½ä¿¡æ¯å›žè°ƒå‡½æ•°åŽŸåž‹ public interface fSCADAAttachInfoCallBack extends Callback { public void invoke(LLong lLoginID, LLong lAttachHandle, NET_SCADA_NOTIFY_POINT_INFO_LIST pInfo, int nBufLen, Pointer dwUser); } // é€æ˜Žä¸²å£å›žè°ƒå‡½æ•°åŽŸå½¢(pBuffer内å˜ç”±SDK内部申请释放)) public interface fTransComCallBack extends Callback { public void invoke(LLong lLoginID, LLong lTransComChannel, Pointer pBuffer, int dwBufSize, Pointer dwUser); } //视频分æžè¿›åº¦çŠ¶æ€å®žæ—¶å›žè°ƒå‡½æ•° public interface fVideoAnalyseState extends Callback { public int invoke(LLong lAttachHandle, NET_VIDEOANALYSE_STATE pAnalyseStateInfos, Pointer dwUser, Pointer pReserved); } // 侦å¬æœåŠ¡å™¨å›žè°ƒå‡½æ•°åŽŸå½¢ public interface fServiceCallBack extends Callback { public int invoke(LLong lHandle, String pIp, int wPort, int lCommand, Pointer pParam, int dwParamLen, Pointer dwUserData); } // é›·è¾¾RFIDä¿¡æ¯å›žè°ƒå‡½æ•°åŽŸå½¢ public interface fRadarRFIDCardInfoCallBack extends Callback { public int invoke(LLong lLoginID, LLong lAttachHandle, NET_RADAR_NOTIFY_RFIDCARD_INFO pBuf, int dwBufLen, Pointer pReserved, Pointer dwUser); } // CLIENT_ListenServer 接å£å›žè°ƒfServiceCallBack函数支æŒçš„命令类型 public static class EM_LISTEN_TYPE extends SdkStructure { public static final int NET_DVR_DISCONNECT = -1; // 验è¯æœŸé—´è®¾å¤‡æ–线回调 public static final int NET_DVR_SERIAL_RETURN = 1; // 设备注册æºå¸¦åºåˆ—å· å¯¹åº” char* szDevSerial public static final int NET_DEV_AUTOREGISTER_RETURN = 2; // 设备注册æºå¸¦åºåˆ—å·å’Œä»¤ç‰Œ 对应NET_CB_AUTOREGISTER public static final int NET_DEV_NOTIFY_IP_RETURN = 3; // 设备仅上报IP, ä¸ä½œä¸ºä¸»åŠ¨æ³¨å†Œç”¨, 用户获å–ipåŽåªèƒ½æŒ‰ç…§çº¦å®šçš„端å£æŒ‰ç…§éžä¸»åŠ¨æ³¨å†Œçš„类型登录 } //订阅Bus状æ€å›žè°ƒå‡½æ•°åŽŸåž‹ public interface fBusStateCallBack extends Callback { public void invoke(LLong lAttachHandle, int lCommand, Pointer pBuf, int dwBufLen, Pointer dwUser); } // GPS温湿度信æ¯è®¢é˜…回调 public interface fGPSTempHumidityRev extends Callback { public void invoke(LLong lLoginID, GPS_TEMP_HUMIDITY_INFO.ByValue GpsTHInfo, Pointer dwUserData); } // å‘设备注册的回调函数原型 public interface fDeviceStateCallBack extends Callback { public void invoke(LLong lAttachHandle, NET_CB_ATTACH_DEVICE_STATE pstDeviceState, Pointer dwUser); } // æ³¨å†Œæ·»åŠ è®¾å¤‡çš„å›žè°ƒå‡½æ•°åŽŸåž‹ public interface fAddDeviceCallBack extends Callback { public void invoke(LLong lAttachHandle, NET_CB_ATTACH_ADD_DEVICE pstAddDevice, Pointer dwUser); } // 定义监测点报è¦ä¿¡æ¯å›žè°ƒå‡½æ•°åŽŸåž‹ public interface fSCADAAlarmAttachInfoCallBack extends Callback { public void invoke(LLong lAttachHandle, NET_SCADA_NOTIFY_POINT_ALARM_INFO_LIST pInfo, int nBufLen, Pointer dwUser); } //视频诊æ–结果上报回调函数 public interface fRealVideoDiagnosis extends Callback { public int invoke(LLong lDiagnosisHandle, NET_REAL_DIAGNOSIS_RESULT pDiagnosisInfo, Pointer pBuf, int nBufLen, Pointer dwUser); } /// \fn 温度分布数æ®çŠ¶æ€å›žè°ƒå‡½æ•° /// \brief /// \param LLONG lAttachHandle [OUT] 订阅å¥æŸ„, CLIENT_RadiometryAttach 的返回值 /// \param NET_RADIOMETRY_DATA pBuf [OUT] çƒå›¾æ•°æ®ä¿¡æ¯ /// \param int nBufLen [OUT] 状æ€ä¿¡æ¯é•¿åº¦ /// \param LDWORD dwUser ç”¨æˆ·æ•°æ® /// \return æ— public interface fRadiometryAttachCB extends Callback { public void invoke(LLong lAttachHandle, NET_RADIOMETRY_DATA pBuf, int nBufLen, Pointer dwUser); } // 刻录设备回调函数原形,lAttachHandle是CLIENT_AttachBurnState返回值, æ¯æ¬¡1æ¡,pBuf->dwSize == 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:需è¦æŸ¥è¯¢çš„æ¡æ•°, 返回值为媒体文件æ¡æ•° 返回值<nFilecount则相应时间段内的文件查询完毕(æ¯æ¬¡æœ€å¤šåªèƒ½æŸ¥è¯¢20æ¡è®°å½•) // pstInParam指å‘NET_IN_DOFIND_FACERECONGNITION类型的指针 // pstOutParam指å‘NET_OUT_DOFIND_FACERECONGNITION类型的指针 public boolean CLIENT_DoFindFaceRecognition(final NET_IN_DOFIND_FACERECONGNITION pstInParam, NET_OUT_DOFIND_FACERECONGNITION pstOutParam, int nWaitTime); //结æŸæŸ¥è¯¢ public boolean CLIENT_StopFindFaceRecognition(LLong lFindHandle); // ç›®æ ‡æ£€æµ‹(è¾“å…¥ä¸€å¼ å¤§å›¾,输入大图ä¸è¢«æ£€æµ‹å‡ºæ¥çš„人脸图片) // pstInParam指å‘NET_IN_DETECT_FACE类型的指针 // pstOutParam指å‘NET_OUT_DETECT_FACE类型的指针 public boolean CLIENT_DetectFace(LLong lLoginID, NET_IN_DETECT_FACE pstInParam, NET_OUT_DETECT_FACE pstOutParam, int nWaitTime); // ç›®æ ‡è¯†åˆ«äººå‘˜ç»„æ“ä½œï¼ˆåŒ…æ‹¬æ·»åŠ ,ä¿®æ”¹å’Œåˆ é™¤ï¼‰ // pstInParam指å‘NET_IN_OPERATE_FACERECONGNITION_GROUP类型的指针 // pstOutParam指å‘NET_OUT_OPERATE_FACERECONGNITION_GROUP类型的指针 public boolean CLIENT_OperateFaceRecognitionGroup(LLong lLoginID, NET_IN_OPERATE_FACERECONGNITION_GROUP pstInParam, NET_OUT_OPERATE_FACERECONGNITION_GROUP pstOutParam, int nWaitTime); // æŸ¥è¯¢ç›®æ ‡è¯†åˆ«äººå‘˜ç»„ä¿¡æ¯ // pstInParam指å‘NET_IN_FIND_GROUP_INFO类型的指针 // pstOutParam指å‘NET_OUT_FIND_GROUP_INFO类型的指针 public boolean CLIENT_FindGroupInfo(LLong LLong, NET_IN_FIND_GROUP_INFO pstInParam, NET_OUT_FIND_GROUP_INFO pstOutParam, int nWaitTime); // 获å–布控在视频通é“的组信æ¯,pstInParam与pstOutParam内å˜ç”±ç”¨æˆ·ç”³è¯·é‡Šæ”¾ public boolean CLIENT_GetGroupInfoForChannel(LLong lLoginID, NET_IN_GET_GROUPINFO_FOR_CHANNEL pstInParam, NET_OUT_GET_GROUPINFO_FOR_CHANNEL pstOutParam, int nWaitTime); // 布控通é“äººå‘˜ç»„ä¿¡æ¯ // pstInParam指å‘NET_IN_SET_GROUPINFO_FOR_CHANNEL类型的指针 // pstOutParam指å‘NET_OUT_SET_GROUPINFO_FOR_CHANNEL类型的指针 public boolean CLIENT_SetGroupInfoForChannel(LLong lLoginID, NET_IN_SET_GROUPINFO_FOR_CHANNEL pstInParam, NET_OUT_SET_GROUPINFO_FOR_CHANNEL pstOutParam, int nWaitTime); // 以人脸库的角度进行布控, pstInParam与pstOutParam内å˜ç”±ç”¨æˆ·ç”³è¯·é‡Šæ”¾ public boolean CLIENT_FaceRecognitionPutDisposition(LLong lLoginID, NET_IN_FACE_RECOGNITION_PUT_DISPOSITION_INFO pstInParam, NET_OUT_FACE_RECOGNITION_PUT_DISPOSITION_INFO pstOutParam, int nWaitTime); // 以人脸库的角度进行撤控, pstInParam与pstOutParam内å˜ç”±ç”¨æˆ·ç”³è¯·é‡Šæ”¾ public boolean CLIENT_FaceRecognitionDelDisposition(LLong lLoginID, NET_IN_FACE_RECOGNITION_DEL_DISPOSITION_INFO pstInParam, NET_OUT_FACE_RECOGNITION_DEL_DISPOSITION_INFO pstOutParam, int nWaitTime); // è®¢é˜…äººè„¸æŸ¥è¯¢çŠ¶æ€ // pstInParam指å‘NET_IN_FACE_FIND_STATE类型的指针 // pstOutParam指å‘NET_OUT_FACE_FIND_STATE类型的指针 public LLong CLIENT_AttachFaceFindState(LLong lLoginID, NET_IN_FACE_FIND_STATE pstInParam, NET_OUT_FACE_FIND_STATE pstOutParam, int nWaitTime); //å–消订阅人脸查询状æ€,lAttachHandle为CLIENT_AttachFaceFindState返回的å¥æŸ„ public boolean CLIENT_DetachFaceFindState(LLong lAttachHandle); // 文件下载, åªé€‚用于å°æ–‡ä»¶,pInParam与pOutParam内å˜ç”±ç”¨æˆ·ç”³è¯·é‡Šæ”¾ public boolean CLIENT_DownloadRemoteFile(LLong lLoginID, NET_IN_DOWNLOAD_REMOTE_FILE pInParam, NET_OUT_DOWNLOAD_REMOTE_FILE pOutParam, int nWaitTime); // 打开日志功能 // pstLogPrintInfo指å‘LOG_SET_PRINT_INFO的指针 public boolean CLIENT_LogOpen(LOG_SET_PRINT_INFO pstLogPrintInfo); // å…³é—日志功能 public boolean CLIENT_LogClose(); // 获å–符åˆæŸ¥è¯¢æ¡ä»¶çš„文件总数 // reserved为void * public boolean CLIENT_GetTotalFileCount(LLong lFindHandle, IntByReference pTotalCount, Pointer reserved, int waittime); // 设置查询跳转æ¡ä»¶ // reserved为void * public boolean CLIENT_SetFindingJumpOption(LLong lFindHandle, NET_FINDING_JUMP_OPTION_INFO pOption, Pointer reserved, int waittime); // 按查询æ¡ä»¶æŸ¥è¯¢æ–‡ä»¶ // pQueryCondition为void *, å…·ä½“ç±»åž‹æ ¹æ®emType的类型确定,对应 EM_FILE_QUERY_TYPE // reserved为void *, å…·ä½“ç±»åž‹æ ¹æ®emType的类型确定 public LLong CLIENT_FindFileEx(LLong lLoginID, int emType, Pointer pQueryCondition, Pointer reserved, int waittime); // 查找文件:nFilecount:需è¦æŸ¥è¯¢çš„æ¡æ•°, 返回值为媒体文件æ¡æ•° 返回值<nFilecount则相应时间段内的文件查询完毕 // pMediaFileInfo为void * // reserved为void * public int CLIENT_FindNextFileEx(LLong lFindHandle, int nFilecount, Pointer pMediaFileInfo, int maxlen, Pointer reserved, int waittime); // 结æŸå½•åƒæ–‡ä»¶æŸ¥æ‰¾ public boolean CLIENT_FindCloseEx(LLong lFindHandle); // å®žæ—¶ä¸Šä¼ æ™ºèƒ½åˆ†æžæ•°æ®ï¼å›¾ç‰‡(扩展接å£,bNeedPicFile表示是å¦è®¢é˜…图片文件,Reserved类型为RESERVED_PARA) // bNeedPicFile为BOOL类型,å–值范围为0或者1, fAnalyzerDataCallBack回调 public LLong CLIENT_RealLoadPictureEx(LLong lLoginID, int nChannelID, int dwAlarmType, int bNeedPicFile, Callback cbAnalyzerData, Pointer dwUser, Pointer Reserved); // åœæ¢ä¸Šä¼ 智能分æžæ•°æ®ï¼å›¾ç‰‡ public boolean CLIENT_StopLoadPic(LLong lAnalyzerHandle); // 设置抓图回调函数, fSnapRev回调 public void CLIENT_SetSnapRevCallBack(Callback OnSnapRevMessage, Pointer dwUser); // æŠ“å›¾è¯·æ±‚æ‰©å±•æŽ¥å£ public boolean CLIENT_SnapPictureEx(LLong lLoginID, SNAP_PARAMS stParam, IntByReference reserved); // 异æ¥æœç´¢å±€åŸŸç½‘内IPCã€NVSç‰è®¾å¤‡, fSearchDevicesCB回调 public LLong CLIENT_StartSearchDevices(Callback cbSearchDevices, Pointer pUserData, String szLocalIp); // åœæ¢å¼‚æ¥æœç´¢å±€åŸŸç½‘内IPCã€NVSç‰è®¾å¤‡ public boolean CLIENT_StopSearchDevices(LLong lSearchHandle); // åŒæ¥è·¨ç½‘段æœç´¢è®¾å¤‡IP (pIpSearchInfo内å˜ç”±ç”¨æˆ·ç”³è¯·é‡Šæ”¾)DEVICE_IP_SEARCH_INFO // szLocalIp为本地IP,å¯ä¸åšè¾“å…¥, fSearchDevicesCB回调 // 接å£è°ƒç”¨1次åªå‘é€æœç´¢ä¿¡ä»¤1次 public boolean CLIENT_SearchDevicesByIPs(Pointer pIpSearchInfo, Callback cbSearchDevices, Pointer dwUserData, String szLocalIp, int dwWaitTime); // 开始实时预览 // rType : NET_RealPlayType 返回监控å¥æŸ„ public LLong CLIENT_RealPlayEx(LLong lLoginID, int nChannelID, Pointer hWnd, int rType); // åœæ¢å®žæ—¶é¢„览--扩展 lRealHandle为CLIENT_RealPlayEx的返回值 public boolean CLIENT_StopRealPlayEx(LLong lRealHandle); // 开始实时预览支æŒè®¾ç½®ç æµå›žè°ƒæŽ¥å£ rType : NET_RealPlayType 返回监控å¥æŸ„ // cbRealData 对应 fRealDataCallBackEx 回调 // cbDisconnect 对应 fRealPlayDisConnect 回调 public LLong CLIENT_StartRealPlay(LLong lLoginID, int nChannelID, Pointer hWnd, int rType, Callback cbRealData, Callback cbDisconnect, Pointer dwUser, int dwWaitTime); // åœæ¢å®žæ—¶é¢„览 public boolean CLIENT_StopRealPlay(LLong lRealHandle); // 设置实时预览数æ®å›žè°ƒå‡½æ•°æ‰©å±•æŽ¥å£ lRealHandle监控å¥æŸ„,fRealDataCallBackEx 回调 public boolean CLIENT_SetRealDataCallBackEx(LLong lRealHandle, Callback cbRealData, Pointer dwUser, int dwFlag); // 设置图象æµç•…性 // å°†è¦è°ƒæ•´å›¾è±¡çš„ç‰çº§(0-6),当level为0时,图象最æµç•…;当level为6时,图象最实时。Level的默认值为3。注æ„:直接解ç 下有效 public boolean CLIENT_AdjustFluency(LLong lRealHandle, int nLevel); // ä¿å˜æ•°æ®ä¸ºæ–‡ä»¶,lRealHandle为CLIENT_RealPlayEx的返回值,pchFileName为实时预览ä¿å˜æ–‡ä»¶å public boolean CLIENT_SaveRealData(LLong lRealHandle, String pchFileName); // 结æŸä¿å˜æ•°æ®ä¸ºæ–‡ä»¶,lRealHandle为CLIENT_RealPlayEx的返回值 public boolean CLIENT_StopSaveRealData(LLong lRealHandle); // 打开声音 public boolean CLIENT_OpenSound(LLong hPlayHandle); // å…³é—声音 public boolean CLIENT_CloseSound(); // 设置显示æº(pInparam, pOutParam内å˜ç”±ç”¨æˆ·ç”³è¯·é‡Šæ”¾) public boolean CLIENT_MatrixSetCameras(LLong lLoginID, NET_IN_MATRIX_SET_CAMERAS pInParam, NET_OUT_MATRIX_SET_CAMERAS pOutParam, int nWaitTime); // 获å–æ‰€æœ‰æœ‰æ•ˆæ˜¾ç¤ºæº // pInParam 对应 NET_IN_MATRIX_GET_CAMERAS // pOutParam 对应 NET_OUT_MATRIX_GET_CAMERAS public boolean CLIENT_MatrixGetCameras(LLong lLoginID, NET_IN_MATRIX_GET_CAMERAS pInParam, NET_OUT_MATRIX_GET_CAMERAS pOutParam, int nWaitTime); // 抓图åŒæ¥æŽ¥å£,将图片数æ®ç›´æŽ¥è¿”回给用户 // public boolean CLIENT_SnapPictureToFile(LLong lLoginID, NET_IN_SNAP_PIC_TO_FILE_PARAM pInParam, NET_OUT_SNAP_PIC_TO_FILE_PARAM pOutParam, int nWaitTime); public boolean CLIENT_SnapPictureToFile(LLong lLoginID, Pointer pInParam, Pointer pOutParam, int nWaitTime); // 查询时间段内的所有录åƒæ–‡ä»¶ // nRecordFileType 录åƒç±»åž‹ 0:æ‰€æœ‰å½•åƒ 1:å¤–éƒ¨æŠ¥è¦ 2:动æ€ç›‘æµ‹æŠ¥è¦ 3:æ‰€æœ‰æŠ¥è¦ 4:å¡å·æŸ¥è¯¢ 5:组åˆæ¡ä»¶æŸ¥è¯¢ 6:录åƒä½ç½®ä¸Žå移é‡é•¿åº¦ 8:按å¡å·æŸ¥è¯¢å›¾ç‰‡(ç›®å‰ä»…HB-Uå’ŒNVS特殊型å·çš„设备支æŒ) 9:查询图片(ç›®å‰ä»…HB-Uå’ŒNVS特殊型å·çš„设备支æŒ) 10:按å—段查询 15:返回网络数æ®ç»“æž„(金桥网å§) 16:查询所有é€æ˜Žä¸²æ•°æ®å½•åƒæ–‡ä»¶ // nriFileinfo 返回的录åƒæ–‡ä»¶ä¿¡æ¯ï¼Œæ˜¯ä¸€ä¸ª NET_RECORDFILE_INFO 结构数组 // maxlen 是 nriFileinfo缓冲的最大长度(å•ä½å—节,建议在(100~200)*sizeof(NET_RECORDFILE_INFO)之间) // filecount返回的文件个数,属于输出å‚数最大åªèƒ½æŸ¥åˆ°ç¼“冲满为æ¢çš„录åƒè®°å½•; // bTime 是å¦æŒ‰æ—¶é—´æŸ¥(ç›®å‰æ— 效) public boolean CLIENT_QueryRecordFile(LLong lLoginID, int nChannelId, int nRecordFileType, NET_TIME tmStart, NET_TIME tmEnd, String pchCardid, NET_RECORDFILE_INFO[] stFileInfo, int maxlen, IntByReference filecount, int waittime, boolean bTime); // NET_RECORDFILE_INFO[] stFileInfo Pointer 版本 public boolean CLIENT_QueryRecordFile(LLong lLoginID, int nChannelId, int nRecordFileType, NET_TIME tmStart, NET_TIME tmEnd, String pchCardid, Pointer pFileInfo, int maxlen, IntByReference filecount, int waittime, boolean bTime); // 查询时间段内是å¦æœ‰å½•åƒæ–‡ä»¶ bResult输出å‚数,true有录åƒï¼Œfalseæ²¡å½•åƒ public boolean CLIENT_QueryRecordTime(LLong lLoginID, int nChannelId, int nRecordFileType, NET_TIME tmStart, NET_TIME tmEnd, String pchCardid, IntByReference bResult, int waittime); // 通过时间下载录åƒ--扩展 // nRecordFileType 对应 EM_QUERY_RECORD_TYPE // cbTimeDownLoadPos 对应 fTimeDownLoadPosCallBack 回调 // fDownLoadDataCallBack 对应 fDataCallBack 回调 public LLong CLIENT_DownloadByTimeEx(LLong lLoginID, int nChannelId, int nRecordFileType, NET_TIME tmStart, NET_TIME tmEnd, String sSavedFileName, Callback cbTimeDownLoadPos, Pointer dwUserData, Callback fDownLoadDataCallBack, Pointer dwDataUser, Pointer pReserved); // åœæ¢å½•åƒä¸‹è½½ public boolean CLIENT_StopDownload(LLong lFileHandle); /****************************************************************************** 功能æè¿° : 通过时间下载录åƒ--扩展,å¯åŠ è½½ç æµè½¬æ¢åº“ 输入å‚æ•° : lLoginID: 登录接å£è¿”回的å¥æŸ„ nChannelId: 视频通é“å·,从0开始 nRecordFileType:录åƒç±»åž‹ 0 所有录åƒæ–‡ä»¶ 1 å¤–éƒ¨æŠ¥è¦ 2 动æ€æ£€æµ‹æŠ¥è¦ 3 æ‰€æœ‰æŠ¥è¦ 4 å¡å·æŸ¥è¯¢ 5 组åˆæ¡ä»¶æŸ¥è¯¢ 6 录åƒä½ç½®ä¸Žå移é‡é•¿åº¦ 8 按å¡å·æŸ¥è¯¢å›¾ç‰‡(ç›®å‰ä»…HB-Uå’ŒNVS特殊型å·çš„设备支æŒ) 9 查询图片(ç›®å‰ä»…HB-Uå’ŒNVS特殊型å·çš„设备支æŒ) 10 按å—段查询 15 返回网络数æ®ç»“æž„(金桥网å§) 16 查询所有é€æ˜Žä¸²æ•°æ®å½•åƒæ–‡ä»¶ tmStart: 开始时间 tmEnd: 结æŸæ—¶é—´ sSavedFileName: ä¿å˜å½•åƒæ–‡ä»¶å,支æŒå…¨è·¯å¾„ cbTimeDownLoadPos: 下载进度回调函数(回调下载进度,下载结果), 对应回调 fTimeDownLoadPosCallBack dwUserData: ä¸‹è½½è¿›åº¦å›žè°ƒå¯¹åº”ç”¨æˆ·æ•°æ® fDownLoadDataCallBack: 录åƒæ•°æ®å›žè°ƒå‡½æ•°(回调形å¼æš‚ä¸æ”¯æŒè½¬æ¢PSæµ),对应回调 fDataCallBack dwDataUser: 录åƒæ•°æ®å›žè°ƒå¯¹åº”ç”¨æˆ·æ•°æ® scType: ç æµè½¬æ¢ç±»åž‹,0-DAVç æµ(默认); 1-PSæµ,3-MP4 pReserved: ä¿ç•™å‚æ•°,åŽç»æ‰©å±• 输出å‚æ•° : N/A è¿” 回 值 : LLONG 下载录åƒå¥æŸ„ 其他说明 : 特殊接å£,SDK默认ä¸æ”¯æŒè½¬PSæµ,需SDK ******************************************************************************/ public LLong CLIENT_DownloadByTimeEx2(LLong lLoginID, int nChannelId, int nRecordFileType, NET_TIME tmStart, NET_TIME tmEnd, String sSavedFileName, Callback cbTimeDownLoadPos, Pointer dwUserData, Callback fDownLoadDataCallBack, Pointer dwDataUser, int scType, Pointer pReserved); /** * 下载录åƒæ–‡ä»¶--扩展 * sSavedFileName ä¸ä¸ºç©º, 录åƒæ•°æ®å†™å…¥åˆ°è¯¥è·¯å¾„对应的文件; fDownLoadDataCallBackä¸ä¸ºç©º, 录åƒæ•°æ®é€šè¿‡å›žè°ƒå‡½æ•°è¿”回 * pReserved æŒ‡åŠ å¯†å½•åƒçš„密ç (长度ä¸å°äºŽ 8 çš„å—符串) * * @param lLoginID 登录å¥æŸ„ * @param lpRecordFile 录åƒä¿¡æ¯ * @param sSavedFileName 本地ä¿å˜è·¯å¾„ 如果è¦ä¿å˜åˆ°æœ¬åœ°åˆ™å¿…å¡« * @param cbDownLoadPos 下载进度回调 建议使用 å¯ä»¥åœ¨ä¸‹è½½å®Œæˆæ—¶è°ƒç»“æŸä¸‹è½½æŽ¥å£ * @param dwUserData ä¸‹è½½è¿›åº¦å›žè°ƒå¯¹åº”ç”¨æˆ·æ•°æ® ä¸å»ºè®®ä½¿ç”¨ 直接填 null * @param fDownLoadDataCallBack 下载数æ®å›žè°ƒ ä¸ä¸º null 则录åƒæ•°æ® * @param dwDataUser 录åƒæ•°æ®å›žè°ƒå¯¹åº”ç”¨æˆ·æ•°æ® ä¸å»ºè®®ä½¿ç”¨ 直接填 null * @param pReserved pReserved æŒ‡åŠ å¯†å½•åƒçš„密ç (长度ä¸å°äºŽ 8 çš„å—符串) 没有的è¯å¡« null * @return 录åƒä¸‹è½½å¥æŸ„fDownLoadDataCallBack */ public LLong CLIENT_DownloadByRecordFileEx(LLong lLoginID, LPNET_RECORDFILE_INFO lpRecordFile, Pointer sSavedFileName, Callback cbDownLoadPos, Pointer dwUserData, Callback fDownLoadDataCallBack, Pointer dwDataUser, Pointer pReserved); // 下载录åƒæ–‡ä»¶--扩展 é‡è½½æŽ¥å£ // lpRecordFile 类型 替æ¢ä¸º NET_RECORDFILE_INFO public LLong CLIENT_DownloadByRecordFileEx(LLong lLoginID, NET_RECORDFILE_INFO lpRecordFile, Pointer sSavedFileName, Callback cbDownLoadPos, Pointer dwUserData, Callback fDownLoadDataCallBack, Pointer dwDataUser, Pointer pReserved); // 自适应速度的按文件下载录åƒ, pstInParam å’Œ pstOutParam 资æºç”±ç”¨æˆ·ç”³è¯·å’Œé‡Šæ”¾ // pstInParam->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); // 录æ’主机窗å£æœ€å¤§ä¸ªæ•° public static final int NET_MAX_WINDOWS_NUMBER = 64; // 录æ’主机模å¼æœ€å¤§ä¸ªæ•° public static final int NET_MAX_MODE_NUMBER = 64; /** * 录æ’主机相关 æ·»åŠ æ–°çš„è¯¾ç¨‹è®°å½• * 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); public static final int MAX_COURSE_LOGIC_CHANNEL = 64; // 录æ’主机最大逻辑通é“æ•° /** * 录æ’主机录åƒä¿¡æ¯æ“ä½œæŽ¥å£ 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 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 final int MAX_UPGRADER_SERIAL_INFO = 8; //获å–云å‡çº§ä¿¡æ¯å‡ºå‚ 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 final int NET_UPGRADE_COUNT_MAX = 256; // 最大å‡çº§ä¸ªæ•° //上报å‡çº§ç»“果结构体 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[] bReserved = new byte[604]; // ä¿ç•™å—节,留待扩展. 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 = 60; // 人群异常检测 "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 final int MAX_PIC_PATH_NUM = 16; 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 byte[] byReserved = new byte[952]; // ä¿ç•™å—节 } // 事件类型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 byte[] byReserved = new byte[952]; // ä¿ç•™å—节 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 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 final int UAV_MAX_SENSOR_NUM = 32; // æœ€å¤§ä¼ æ„Ÿå™¨ä¸ªæ•° // ä¼ æ„Ÿå™¨ä¿¡æ¯ 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 final int UAV_MAX_SATELLITE_NUM = 20; // 最多支æŒå«æ˜Ÿä¸ªæ•° // å«æ˜Ÿä¿¡æ¯ 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 = 48; // 枚举类型总数 } // 防区类型 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 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 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[32]; // 用户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 SdkStructure { /** * 通é“å· */ public int nChannelID; /** * 事件å称 */ public byte[] szName = new byte[128]; /** * å—节对é½, éžä¿ç•™å—节 */ public byte[] bReserved1 = new byte[4]; /** * 时间戳(å•ä½æ˜¯æ¯«ç§’) */ public double PTS; /** * 事件å‘生的时间 */ public com.iailab.netsdk.lib.structure.NET_TIME_EX UTC = new com.iailab.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.iailab.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 byte[] byReserved=new byte[336]; // ä¿ç•™å—节 }; // 多人多开门方å¼ç»„åˆ(对应 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; // 人脸 }; 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; // 多人开门组åˆçš„最大组åˆæ•° // 开始查找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 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[] byReserved = new byte[1011]; //预留å—节 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; // 普通物体 }; // 事件类型 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<stuObjects.length;i++){ stuObjects[i]=new NET_MSG_OBJECT(); } for(int i=0;i<DetectRegion.length;i++){ DetectRegion[i]=new NET_POINT(); } } } ; // 事件类型EVENT_IVS_BANNER_DETECTION(拉横幅检测事件)对应的规则é…ç½® public static class NET_BANNER_DETECTION_RULE_INFO extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nDetectRegionPoint; // 检测区顶点数 public POINTCOORDINATE [] stuDetectRegion=new POINTCOORDINATE[20]; // 检测区域 public int nMinDuration; // 最çŸæŒç»æ—¶é—´, å•ä½:秒,范围1-600, 默认30 public int nReportInterval; // é‡å¤æŠ¥è¦é—´éš”,å•ä½:秒,范围0-600,默认30,为0表示ä¸é‡å¤ public int nSensitivity; // 检测çµæ•åº¦,范围1-10 public int nBannerPercent; // 近景抓æ‹æ—¶æ¨ªå¹…在画é¢çš„百分比,范围1~100,默认80 public byte[] bReserved=new byte[520]; // ä¿ç•™å—节 public NET_BANNER_DETECTION_RULE_INFO() { this.dwSize = this.size(); }// æ¤ç»“æž„ä½“å¤§å° }; public static class POINTCOORDINATE extends SdkStructure { public int nX; // ç¬¬ä¸€ä¸ªå…ƒç´ è¡¨ç¤ºæ™¯ç‰©ç‚¹çš„xåæ ‡(0~8191) public int nY; // ç¬¬äºŒä¸ªå…ƒç´ è¡¨ç¤ºæ™¯ç‰©ç‚¹çš„yåæ ‡(0~8191) } ; // 事件类型 EVENT_IVS_SMART_KITCHEN_CLOTHES_DETECTION(智慧类型衣ç€æ£€æµ‹)对应的规则é…ç½® public static class NET_SMART_KITCHEN_CLOTHES_DETECTION_RULE_INFO extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int bMaskEnable; // 是å¦å¼€å¯å£ç½©æ£€æµ‹ (TRUE:å¼€å¯ FALSE:å…³é—) public int bChefHatEnable; // 是å¦å¼€å¯åŽ¨å¸ˆå¸½æ£€æµ‹ï¼ˆTRUE:å¼€å¯ FALSE:å…³é—) public int bChefClothesEnable; // 是å¦å¼€å¯åŽ¨å¸ˆæœæ£€æµ‹ï¼ˆTRUE:å¼€å¯ FALSE:å…³é—) public int nChefClothesColorNum; // é…置检查å…许的厨师æœé¢œè‰²ä¸ªæ•° public int [] emChefClothesColors=new int[8]; // 厨师衣æœé¢œè‰²(对应的枚举值EM_CFG_CHEF_CLOTHES_COLORS) public int nReportInterval; // é‡å¤æŠ¥è¦é—´éš”,å•ä½:秒,范围0-600,默认30,为0表示ä¸é‡å¤ public byte[] byReserved=new byte[4096]; // ä¿ç•™å—节 public NET_SMART_KITCHEN_CLOTHES_DETECTION_RULE_INFO() { this.dwSize = this.size(); }// æ¤ç»“æž„ä½“å¤§å° }; // 智能分æžè§„åˆ™ä¿¡æ¯ public static class NET_ANALYSE_RULE_INFO extends SdkStructure { public int emClassType; // 分æžå¤§ç±»ç±»åž‹(对应的枚举值EM_SCENE_CLASS_TYPE) public int dwRuleType; // 规则类型, 详è§dhnetsdk.hä¸"智能分æžäº‹ä»¶ç±»åž‹" // EVENT_IVS_FACEANALYSIS(人脸分æž)对应结构体 NET_FACEANALYSIS_RULE_INFO // EVENT_IVS_NONMOTORDETECT(éžæœºåŠ¨è½¦)对应结构体 NET_NONMOTORDETECT_RULE_INFO // EVENT_IVS_VEHICLEDETECT(机动车) 对应结构体 NET_VEHICLEDETECT_RULE_INFO // EVENT_IVS_HUMANTRAIT(人体) 对应结构体NET_HUMANTRAIT_RULE_INFO // EVENT_IVS_XRAY_DETECT_BYOBJECT(X光按物体检测) 对应结构体 NET_XRAY_DETECT_BYPBJECT_RULE_INFO // EVENT_IVS_WORKCLOTHES_DETECT(工装检测)对应结构体NET_WORKCLOTHDETECT_RULE_INFO // EVENT_IVS_WORKSTATDETECTION(作业统计)对应结构体NET_WORKSTATDETECTION_RULE_INFO // EVENT_IVS_CROSSLINEDETECTION(è¦æˆ’线)对应结构体NET_CROSSLINE_RULE_INFO // EVENT_IVS_CROSSREGIONDETECTION(è¦æˆ’区)对应结构体 NET_CROSSREGION_RULE_INFO // EVENT_IVS_FEATURE_ABSTRACT(特å¾æå–)对应结构体 NET_FEATURE_ABSTRACT_RULE_INFO // EVENT_IVS_ELECTRIC_GLOVE_DETECT(电力检测手套检测事件)对应结构体NET_ELECTRIC_GLOVE_DETECT_RULE_INFO // EVENT_IVS_ELECTRIC_LADDER_DETECT(电力检测梯å检测事件)对应结构体NET_ELECTRIC_LADDER_DETECT_RULE_INFO // EVENT_IVS_ELECTRIC_CURTAIN_DETECT(电力检测布幔检测事件)对应结构体NET_ELECTRIC_CURTAIN_DETECT_RULE_INFO // EVENT_IVS_ELECTRIC_FENCE_DETECT(电力检测围æ 检测事件)对应结构体NET_ELECTRIC_FENCE_DETECT_RULE_INFO // EVENT_IVS_ELECTRIC_SIGNBOARD_DETECT(ç”µåŠ›æ£€æµ‹æ ‡è¯†ç‰Œæ£€æµ‹äº‹ä»¶)对应结构体NET_ELECTRIC_SIGNBOARD_DETECT_RULE_INFO // EVENT_IVS_ELECTRIC_BELT_DETECT(电力检测安全带检测事件)对应结构体NET_ELECTRIC_BELT_DETECT_RULE_INFO // EVENT_IVS_BANNER_DETECTION(拉横幅检测事件)对应结构体NET_BANNER_DETECTION_RULE_INFO // EVENT_IVS_SMART_KITCHEN_CLOTHES_DETECTION(智慧厨房衣ç€æ£€æµ‹äº‹ä»¶)对应结构体NET_SMART_KITCHEN_CLOTHES_DETECTION_RULE_INFO // EVENT_IVS_WATER_STAGE_MONITOR(æ°´ä½æ£€æµ‹äº‹ä»¶)对应结构体NET_WATER_STAGE_MONITOR_RULE_INFO // EVENT_IVS_FLOATINGOBJECT_DETECTION(漂浮物检测事件)对应结构体 NET_FLOATINGOBJECT_DETECTION_RULE_INFO // EVENT_IVS_RIOTERDETECTION (人群èšé›†) 对应结构体 NET_RIOTERDETECTION_RULE_INFO // EVENT_IVS_LEFTDETECTION (物å“é—留事件) 对应结构体 NET_LEFTDETECTION_RULE_INFO // EVENT_IVS_PARKINGDETECTION (éžæ³•åœè½¦äº‹ä»¶) 对应结构体 NET_PARKINGDETECTION_RULE_INFO // EVENT_IVS_WANDERDETECTION( 徘徊事件)对应结构体 NET_WANDERDETECTION_RULE_INFO // EVENT_IVS_VIDEOABNORMALDETECTION (视频异常)对应结构体 NET_VIDEOABNORMALDETECTION_RULE_INFO // EVENT_IVSS_FACEATTRIBUTE (人脸属性检测) 对应结构体 NET_FACEATTRIBUTE_RULE_INFO // EVENT_IVS_MOVEDETECTION (移动检测) 对应结构体 NET_MOVEDETECTION_RULE_INFO // EVENT_IVSS_FACECOMPARE(IVSSç›®æ ‡è¯†åˆ«äº‹ä»¶) 对应结构体 NET_FACECOMPARE_INFO // EVENT_IVS_CONVEYER_BELT_DETECT(ä¼ é€å¸¦æ£€æµ‹) 对应结构体 NET_CONVEYER_BELT_DETECT_RULE_INFO // EVENT_IVS_NUMBERSTAT(æ•°é‡ç»Ÿè®¡äº‹ä»¶) 对应结构体NET_NUMBERSTAT_RULE_INFO // EVENT_IVS_STEREO_FIGHTDETECTION(立体行为分æžæ‰“架/剧烈è¿åŠ¨æ£€æµ‹) 对应结构体NET_STEREO_FIGHTDETECTION_RULE_INFO // EVENT_IVS_SMOKEDETECTION(烟雾报è¦æ£€æµ‹) 对应结构体 NET_SMOKEDETECTION_RULE_INFO // EVENT_IVS_FIREDETECTION(ç«è¦æ£€æµ‹)对应结构体 NET_FIREDETECTION_RULE_INFO // EVENT_IVS_PHONECALL_DETECT(打电è¯æ£€æµ‹)对应结构体 NET_PHONECALL_DETECT_RULE_INFO // EVENT_IVS_SMOKING_DETECT(å¸çƒŸæ£€æµ‹)对应结构体 NET_SMOKING_DETECT_RULE_INFO // EVENT_IVS_STEREO_STEREOFALLDETECTION(立体行为分æžè·Œå€’检测)对应结构体 NET_STEREO_STEREOFALLDETECTION_RULE_INFO // EVENT_IVS_WATER_LEVEL_DETECTION(æ°´ä½å°ºæ£€æµ‹)对应结构体 NET_WATER_LEVEL_DETECTION_RULE_INFO // EVENT_IVS_CLIMBDETECTION(攀高检测)对应结构体 NET_CLIMBDETECTION_RULE_INFO // EVENT_IVS_ARTICLE_DETECTION(物å“检测)对应结构体NET_ARTICLE_DETECTION_RULE_INFO // EVENT_IVS_MAN_NUM_DETECTION(立体视觉区域内人数统计事件)对应结构体NET_IVS_MAN_NUM_DETECTION_RULE_INFO // EVENT_IVS_DIALRECOGNITION(仪表检测事件)对应结构体NET_IVS_DIALRECOGNITION_RULE_INFO // EVENT_IVS_ELECTRICFAULT_DETECT(仪表类缺陷检测事件)对应结构体NET_IVS_ELECTRICFAULT_DETECT_RULE_INFO // EVENT_IVS_TRAFFIC_ROAD_BLOCK(交通路障检测事件) 对应结构体 NET_TRAFFIC_ROAD_BLOCK_RULE_INFO // EVENT_IVS_TRAFFIC_ROAD_CONSTRUCTION(交通é“路施工检测事件) 对应结构体 NET_TRAFFIC_ROAD_CONSTRUCTION_RULE_INFO // EVENT_IVS_TRAFFIC_FLOWSTATE(交通æµé‡ç»Ÿè®¡äº‹ä»¶) 对应结构体 NET_TRAFFIC_FLOWSTAT_RULE_INFO // EVENT_IVS_TRAFFIC_OVERSPEED(超速事件) 对应结构体 NET_TRAFFIC_OVERSPEED_RULE_INFO // EVENT_IVS_TRAFFIC_UNDERSPEED(æ¬ é€Ÿäº‹ä»¶) 对应结构体 NET_TRAFFIC_UNDERSPEED_RULE_INFO // EVENT_IVS_TRAFFIC_OVERYELLOWLINE(压黄线事件) 对应结构体 NET_TRAFFIC_OVERYELLOWLINE_RULE_INFO // EVENT_IVS_TRAFFIC_CROSSLANE(è¿ç« å˜é“事件) 对应结构体 NET_TRAFFIC_CROSSLANE_RULE_INFO // EVENT_IVS_TRAFFICJAM(äº¤é€šæ‹¥å µäº‹ä»¶) 对应结构体 NET_TRAFFIC_JAM_RULE_INFO // EVENT_IVS_TRAFFIC_PEDESTRAIN(交通行人事件) 对应结构体 NET_TRAFFIC_PEDESTRAIN_RULE_INFO // EVENT_IVS_TRAFFIC_THROW(抛洒物事件) 对应结构体 NET_TRAFFIC_THROW_RULE_INFO // EVENT_IVS_TRAFFIC_RETROGRADE(逆行检测事件) 对应结构体 NET_TRAFFIC_RETROGRADE_RULE_INFO // EVENT_IVS_TRAFFICACCIDENT(交通事故事件) 对应结构体 NET_TRAFFIC_ACCIDENT_RULE_INFO // EVENT_IVS_TRAFFIC_BACKING(倒车事件) 对应结构体 NET_TRAFFIC_BACKING_RULE_INFO // EVENT_IVS_FOG_DETECTION(起雾检测事件) 对应结构体 NET_FOG_DETECTION_RULE_INFO // EVENT_IVS_CROSSREGIONDETECTION(区域入侵事件) 对应结构体 NET_CROSSREGION_RULE_INFO // EVENT_IVS_TRAFFIC_PARKING(交通è¿ç« åœè½¦äº‹ä»¶) 对应结构体 NET_TRAFFIC_PARKING_RULE_INFO // EVENT_IVS_FINANCE_CASH_TRANSACTION(智慧金èžçŽ°é‡‘交易检测事件) 对应结构体 NET_FINANCE_CASH_TRANSACTION_RULE_INFO // EVENT_IVS_LEAVEDETECTION(离岗检测事件) 对应结构体 NET_LEAVEDETECTION_RULE_INFO // EVENT_IVS_LADLE_NO_DETECTION(钢包编å·è¯†åˆ«äº‹ä»¶) 对应规则é…置为空 // EVENT_IVS_DIALRECOGNITION_EX(仪表检测事件)对应结构体NET_IVS_DIALRECOGNITION_RULE_INFO public Pointer pReserved; // 规则é…ç½®, å…·ä½“ç»“æž„ä½“ç±»åž‹æ ¹æ®dwRuleTypeæ¥ç¡®å®š, 具体信æ¯è§dwRuleType的注释 public int nObjectTypeNum; // 检测物体类型个数, 为0 表示ä¸æŒ‡å®šç‰©ä½“类型 public int [] emObjectTypes=new int[16]; // 检测物体类型列表(对应的枚举值EM_ANALYSE_OBJECT_TYPE) public byte[] byReserved=new byte[956]; // ä¿ç•™å—节 } ; // 智能分æžè§„则 public static class NET_ANALYSE_RULE extends SdkStructure { public NET_ANALYSE_RULE_INFO [] stuRuleInfos=new NET_ANALYSE_RULE_INFO[MAX_ANALYSE_RULE_COUNT]; // 分æžè§„åˆ™ä¿¡æ¯ public int nRuleCount; // 分æžè§„则æ¡æ•° public byte[] byReserved=new byte[1028]; // ä¿ç•™å—节 public NET_ANALYSE_RULE(){ for(int i=0;i<stuRuleInfos.length;i++){ stuRuleInfos[i]=new NET_ANALYSE_RULE_INFO(); } } }; // 推é€å›¾ç‰‡æ–‡ä»¶ä¿¡æ¯ public static class NET_PUSH_PICFILE_INFO extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int emStartRule; // 智能任务å¯åŠ¨è§„则(对应的枚举值EM_ANALYSE_TASK_START_RULE) public NET_ANALYSE_RULE stuRuleInfo=new NET_ANALYSE_RULE(); // 分æžè§„åˆ™ä¿¡æ¯ public byte[] szTaskUserData = new byte[256]; // ä»»åŠ¡æ•°æ® public byte[] szMQConfig = new byte[4096]; // MQé…置信æ¯ï¼Œå‚考Paasåè®®é…ç½®ä¸å¿ƒ-ç®—åé…置,å°åž‹åŒ–方案使用。当远程访问类型为RabbitMqæ—¶,å°è¯•ä»Žè¯¥å—段获å–MQé…ç½® public int nIsRepeat; // 是å¦è®¸å¯é‡å¤,0默认是å¯ä»¥é‡å¤,1表示ä¸èƒ½é‡å¤ public NET_ANALYSE_TASK_GLOBAL stuGlobal=new NET_ANALYSE_TASK_GLOBAL(); // 全局é…ç½® public NET_ANALYSE_TASK_MODULE stuModule=new NET_ANALYSE_TASK_MODULE(); // 模å—é…ç½® public NET_PUSH_PICFILE_INFO() { this.dwSize = this.size(); }// æ¤ç»“æž„ä½“å¤§å° @Override public int fieldOffset(String name) { return super.fieldOffset(name); } } // 智能分æžæ•°æ®æºç±»åž‹ public static class EM_DATA_SOURCE_TYPE extends SdkStructure { public static final int EM_DATA_SOURCE_REMOTE_REALTIME_STREAM = 1; // è¿œç¨‹å®žæ—¶æµ , 对应 NET_REMOTE_REALTIME_STREAM_INFO public static final int EM_DATA_SOURCE_PUSH_PICFILE=2; // 主动推é€å›¾ç‰‡æ–‡ä»¶, 对应 NET_PUSH_PICFILE_INFO }; // CLIENT_AddAnalyseTask 接å£è¾“出å‚æ•° public static class NET_OUT_ADD_ANALYSE_TASK extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nTaskID; // 任务ID public int nVirtualChannel; // 任务对应的虚拟通é“å· public byte[] szUrl =new byte[256]; // 智能ç æµrtspåœ°å€ public NET_OUT_ADD_ANALYSE_TASK() { this.dwSize = this.size(); }// æ¤ç»“æž„ä½“å¤§å° }; // æ·»åŠ æ™ºèƒ½åˆ†æžä»»åŠ¡, 输入å‚æ•°pInParamçš„ç»“æž„ä½“ç±»åž‹æ ¹æ®emDataSourceType的值æ¥å†³å®š, pInParam å’Œ pOutParam 资æºç”±ç”¨æˆ·ç”³è¯·å’Œé‡Šæ”¾ public Boolean CLIENT_AddAnalyseTask(LLong lLoginID, int emDataSourceType, Pointer pInParam, NET_OUT_ADD_ANALYSE_TASK pOutParam, int nWaitTime); // CLIENT_StartAnalyseTask 接å£è¾“å…¥å‚æ•° public static class NET_IN_START_ANALYSE_TASK extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nTaskID; // 任务ID public NET_IN_START_ANALYSE_TASK() { this.dwSize = this.size(); }// æ¤ç»“æž„ä½“å¤§å° } ; // CLIENT_StartAnalyseTask 接å£è¾“出å‚æ•° public static class NET_OUT_START_ANALYSE_TASK extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public NET_OUT_START_ANALYSE_TASK() { this.dwSize = this.size(); }// æ¤ç»“æž„ä½“å¤§å° } ; // 视频æµå议类型 public static class EM_STREAM_PROTOCOL_TYPE extends SdkStructure { public static final int EM_STREAM_PROTOCOL_UNKNOWN=0; // 未知 public static final int EM_STREAM_PROTOCOL_PRIVATE_V2=1; // ç§æœ‰äºŒä»£ public static final int EM_STREAM_PROTOCOL_PRIVATE_V3=2; // ç§æœ‰ä¸‰ä»£ public static final int EM_STREAM_PROTOCOL_RTSP=3; // rtsp public static final int EM_STREAM_PROTOCOL_ONVIF=4; // Onvif public static final int EM_STREAM_PROTOCOL_GB28181=5; // GB28181 public static final int EM_STREAM_PROTOCOL_HIKVISION = 6; public static final int EM_STREAM_PROTOCOL_BSCP = 7; // è“星 }; // 远程实时视频æºä¿¡æ¯ public static class NET_REMOTE_REALTIME_STREAM_INFO extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int emStartRule; // 智能任务å¯åŠ¨è§„则,Pollingä»»åŠ¡æ—¶æ— æ•ˆ(å‚考)EM_ANALYSE_TASK_START_RULE public NET_ANALYSE_RULE stuRuleInfo=new NET_ANALYSE_RULE(); // 分æžè§„åˆ™ä¿¡æ¯ public int emStreamProtocolType; // 视频æµå议类型(å‚考EM_STREAM_PROTOCOL_TYPE) public byte[] szPath=new byte[NET_COMMON_STRING_256]; // 视频æµåœ°å€ public byte[] szIp=new byte[NET_MAX_IPADDR_OR_DOMAIN_LEN]; // IP åœ°å€ public short wPort; // 端å£å· public byte[] byReserved=new byte[2]; // 用于å—èŠ‚å¯¹é½ public byte[] szUser=new byte[NET_COMMON_STRING_64]; // 用户å public byte[] szPwd=new byte[NET_COMMON_STRING_64]; // 密ç public int nChannelID; // 通é“å· public int nStreamType; // ç æµç±»åž‹, 0:主ç æµ; 1:è¾…1ç æµ; 2:è¾…2ç æµ; public byte[] szTaskUserData=new byte[256]; // ä»»åŠ¡æ•°æ® public byte[] szMQConfig = new byte[4096]; // MQé…置信æ¯ï¼Œå‚考Paasåè®®é…ç½®ä¸å¿ƒ-ç®—åé…置,å°åž‹åŒ–方案使用。当远程访问类型为RabbitMqæ—¶,å°è¯•ä»Žè¯¥å—段获å–MQé…ç½® public int nIsRepeat; // 是å¦è®¸å¯é‡å¤,0默认是å¯ä»¥é‡å¤,1表示ä¸èƒ½é‡å¤ public NET_ANALYSE_TASK_GLOBAL stuGlobal=new NET_ANALYSE_TASK_GLOBAL(); // 全局é…ç½® public NET_ANALYSE_TASK_MODULE stuModule=new NET_ANALYSE_TASK_MODULE(); // 模å—é…ç½® public byte[] szChannelId=new byte[32]; // å¹³å°é€šé“ä¿¡æ¯(专用) public NET_REMOTE_REALTIME_STREAM_INFO() { this.dwSize = this.size(); }// æ¤ç»“æž„ä½“å¤§å° }; // å¯åŠ¨æ™ºèƒ½åˆ†æžä»»åŠ¡, pInParam å’Œ pOutParam 资æºç”±ç”¨æˆ·ç”³è¯·å’Œé‡Šæ”¾ public Boolean CLIENT_StartAnalyseTask(LLong lLoginID, NET_IN_START_ANALYSE_TASK pInParam, NET_OUT_START_ANALYSE_TASK pOutParam, int nWaitTime); // CLIENT_RemoveAnalyseTask 接å£è¾“å…¥å‚æ•° public static class NET_IN_REMOVE_ANALYSE_TASK extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nTaskID; // 任务ID public NET_IN_REMOVE_ANALYSE_TASK() { this.dwSize = this.size(); }// æ¤ç»“æž„ä½“å¤§å° }; // CLIENT_RemoveAnalyseTask 接å£è¾“出å‚æ•° public static class NET_OUT_REMOVE_ANALYSE_TASK extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public NET_OUT_REMOVE_ANALYSE_TASK() { this.dwSize = this.size(); }// æ¤ç»“æž„ä½“å¤§å° } ; // åˆ é™¤(åœæ¢)智能分æžä»»åŠ¡, pInParam å’Œ pOutParam 资æºç”±ç”¨æˆ·ç”³è¯·å’Œé‡Šæ”¾ public Boolean CLIENT_RemoveAnalyseTask(LLong lLoginID, NET_IN_REMOVE_ANALYSE_TASK pInParam, NET_OUT_REMOVE_ANALYSE_TASK pOutParam, int nWaitTime); /////////////////////////////////智能分æžæœåŠ¡æŽ¥å£ 开始///////////////////////////////// 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; // 最大的智能分æžæ€»èƒ½åŠ›æ•°é‡ // CLIENT_FindAnalyseTask 接å£è¾“å…¥å‚æ•° public static class NET_IN_FIND_ANALYSE_TASK extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public NET_IN_FIND_ANALYSE_TASK() { this.dwSize = this.size(); }// æ¤ç»“æž„ä½“å¤§å° }; // CLIENT_FindAnalyseTask 接å£è¾“出å‚æ•° public static class NET_OUT_FIND_ANALYSE_TASK extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nTaskNum; // 智能分æžä»»åŠ¡ä¸ªæ•° public NET_ANALYSE_TASKS_INFO [] stuTaskInfos=new NET_ANALYSE_TASKS_INFO[256]; // 智能分æžä»»åŠ¡ä¿¡æ¯ public NET_OUT_FIND_ANALYSE_TASK() { for(int i=0;i<stuTaskInfos.length;i++){ stuTaskInfos[i]=new NET_ANALYSE_TASKS_INFO(); } this.dwSize = this.size(); }// æ¤ç»“æž„ä½“å¤§å° } ; // 智能分æžä»»åŠ¡ä¿¡æ¯ public static class NET_ANALYSE_TASKS_INFO extends SdkStructure { /** 任务ID */ public int nTaskID; /** 分æžçŠ¶æ€ {@link EM_ANALYSE_STATE} */ public int emAnalyseState; /** 错误ç {@link com.iailab.netsdk.lib.enumeration.EM_ANALYSE_TASK_ERROR} */ public int emErrorCode; /** å—èŠ‚å¯¹é½ */ public byte[] byReserved1=new byte[4]; /** ä»»åŠ¡æ•°æ® */ public byte[] szTaskUserData=new byte[256]; /** 录åƒåˆ†æžè¿›åº¦ï¼Œå½“ä»»åŠ¡æ·»åŠ æŽ¥å£CLIENT_AddAnalyseTask emDataSourceTypeå‚数为录åƒåˆ†æž"EM_DATA_SOURCE_REMOTE_PICTURE_FILE"时有效 范围1~100,100表示分æžå®Œæˆ */ public int nVideoAnalysisProcess; /** 智能æµrtsp地å€ï¼Œå®žæ—¶æµæ—¶æ‰å¡«å†™ */ public byte[] szUrl=new byte[256]; /** 智能大类类型 {@link EM_SCENE_CLASS_TYPE} */ public int emClassType; /** æ•°æ®æºç±»åž‹ {@link com.iailab.netsdk.lib.enumeration.EM_DATA_SOURCE_TYPE} */ public int emSourceType; /** 任务使用的分æžåå¡ID.-1è¡¨ç¤ºæ— æ•ˆåå¡ï¼Œå¤§äºŽç‰äºŽ0的值表示åå¡IDå· emErrorCode为EM_ANALYSE_TASK_ERROR_ANALYZER_OFF_LINE或EM_ANALYSE_TASK_ERROR_ANALYZER_ON_LINEæ—¶æ¤å—段有效 */ public int nChipId; /** ä¿ç•™å—节 */ public byte[] byReserved=new byte[428]; public NET_ANALYSE_TASKS_INFO(){ } }; // 分æžçŠ¶æ€ public static class EM_ANALYSE_STATE extends SdkStructure { public static final int EM_ANALYSE_STATE_UNKNOWN=0; // 未知 public static final int EM_ANALYSE_STATE_IDLE=1; // 已创建但未è¿è¡Œ public static final int EM_ANALYSE_STATE_ANALYSING=2; // 分æžä¸ public static final int EM_ANALYSE_STATE_ANALYSING_WAITPUSH=3; // 分æžä¸å¹¶ç‰å¾…pushæ•°æ® public static final int EM_ANALYSE_STATE_FINISH=4; // æ£å¸¸å®Œæˆ public static final int EM_ANALYSE_STATE_ERROR=5; // 执行异常 public static final int EM_ANALYSE_STATE_REMOVED=6; // è¢«åˆ é™¤ public static final int EM_ANALYSE_STATE_ROUNDFINISH=7; // 完æˆä¸€è½®è§†é¢‘æºåˆ†æž public static final int EM_ANALYSE_STATE_STARTING=8; //任务开å¯çŠ¶æ€ }; /** * 查找智能分æžä»»åŠ¡ä¿¡æ¯, pInParam å’Œ pOutParam 资æºç”±ç”¨æˆ·ç”³è¯·å’Œé‡Šæ”¾ * param[in] nWaitTime 接å£è¶…时时间, å•ä½æ¯«ç§’ * return TRUE表示æˆåŠŸ FALSE表示失败 */ public Boolean CLIENT_FindAnalyseTask(LLong lLoginID, NET_IN_FIND_ANALYSE_TASK pInParam, NET_OUT_FIND_ANALYSE_TASK pOutParam, int nWaitTime); // CLIENT_PushAnalysePictureFile 接å£è¾“å…¥å‚æ•° public static class NET_IN_PUSH_ANALYSE_PICTURE_FILE extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nTaskID; // 任务ID public NET_PUSH_PICTURE_INFO [] stuPushPicInfos=(NET_PUSH_PICTURE_INFO[]) new NET_PUSH_PICTURE_INFO().toArray(MAX_ANALYSE_PICTURE_FILE_NUM); // 推é€å›¾ç‰‡ä¿¡æ¯ public int nPicNum; // 推é€å›¾ç‰‡æ•°é‡ public int nBinBufLen; // æ•°æ®ç¼“冲区长度, å•ä½:å—节 public Pointer pBinBuf; // æ•°æ®ç¼“冲区, 由用户申请和释放 public NET_IN_PUSH_ANALYSE_PICTURE_FILE() { this.dwSize = this.size(); }// æ¤ç»“æž„ä½“å¤§å° }; // X光机视角类型 public static class EM_XRAY_VIEW_TYPE extends SdkStructure { public static final int EM_XRAY_VIEW_TYPE_UNKNOWN = -1; // 未知 public static final int EM_XRAY_VIEW_TYPE_MASTER=0; // 主视角 public static final int EM_XRAY_VIEW_TYPE_SLAVE=1; // 从视角 }; // 客户自定义信æ¯, X光机专用 public static class NET_XRAY_CUSTOM_INFO extends SdkStructure { public int emViewType; // 视角类型 public byte[] szSerialNumber=new byte[128]; // æµæ°´å· public byte[] byReserved=new byte[124]; // ä¿ç•™å—节 @Override public String toString() { return "NET_XRAY_CUSTOM_INFO{" + "emViewType=" + emViewType + ", szSerialNumber=" + new String(szSerialNumber) + '}'; } } ; // 智能分æžå›¾ç‰‡ä¿¡æ¯ public static class NET_PUSH_PICTURE_INFO extends SdkStructure { public byte[] szFileID=new byte[NET_COMMON_STRING_128];// 文件ID public int nOffset; // 文件数æ®åœ¨äºŒè¿›åˆ¶æ•°æ®ä¸çš„å移, å•ä½:å—节 public int nLength; // 文件数æ®é•¿åº¦, å•ä½:å—节 public NET_XRAY_CUSTOM_INFO stuXRayCustomInfo; // 客户自定义信æ¯, X光机专用 public byte[] szUrl=new byte[512]; // 远程文件urlåœ°å€ å¸¦è®¿é—®æ‰€éœ€å¿…è¦ä¿¡æ¯ 包å«ç”¨æˆ·å 密ç public byte[] byReserved=new byte[256]; // ä¿ç•™å—节 } ; // CLIENT_PushAnalysePictureFile 接å£è¾“出å‚æ•° public static class NET_OUT_PUSH_ANALYSE_PICTURE_FILE extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public NET_OUT_PUSH_ANALYSE_PICTURE_FILE() { this.dwSize = this.size(); }// æ¤ç»“æž„ä½“å¤§å° } ; // 推é€æ™ºèƒ½åˆ†æžå›¾ç‰‡æ–‡ä»¶ï¼Œå½“CLIENT_AddAnalyseTaskçš„æ•°æ®æºç±»åž‹emDataSourceType为 EM_DATA_SOURCE_PUSH_PICFILE 时使用 public Boolean CLIENT_PushAnalysePictureFile(LLong lLoginID, NET_IN_PUSH_ANALYSE_PICTURE_FILE pInParam, NET_OUT_PUSH_ANALYSE_PICTURE_FILE pOutParam, int nWaitTime); /*--------任务开始: CLIENT_AttachAnalyseTaskState / CLIENT_DetachAnalyseTaskState --------*/ // 智能分æžä»»åŠ¡çŠ¶æ€å›žè°ƒä¿¡æ¯ public static class NET_CB_ANALYSE_TASK_STATE_INFO extends SdkStructure { public NET_ANALYSE_TASKS_INFO[] stuTaskInfos =(NET_ANALYSE_TASKS_INFO[])new NET_ANALYSE_TASKS_INFO().toArray(MAX_ANALYSE_TASK_NUM); // 智能分æžä»»åŠ¡ä¿¡æ¯ public int nTaskNum; // 任务个数 public byte[] byReserved =new byte[1024]; // ä¿ç•™å—节 }; // 智能分æžçŠ¶æ€è®¢é˜…函数原型, lAttachHandle 为 CLIENT_AttachAnalyseTaskState 函数的返回值 public interface fAnalyseTaskStateCallBack extends Callback{ public int invoke(LLong lAttachHandle, Pointer pstAnalyseTaskStateInfo, Pointer dwUser); }; // CLIENT_AttachAnalyseTaskState 接å£è¾“å…¥å‚æ•° public static class NET_IN_ATTACH_ANALYSE_TASK_STATE extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int[] nTaskIDs = new int[MAX_ANALYSE_TASK_NUM]; // 智能分æžä»»åŠ¡ID public int nTaskIdNum; // 智能分æžä»»åŠ¡ä¸ªæ•°, 0表示订阅全部任务 public fAnalyseTaskStateCallBack cbAnalyseTaskState; // 智能分æžä»»åŠ¡çŠ¶æ€è®¢é˜…函数 public Pointer dwUser; // ç”¨æˆ·æ•°æ® public NET_IN_ATTACH_ANALYSE_TASK_STATE() { this.dwSize = this.size(); }// æ¤ç»“æž„ä½“å¤§å° }; // 订阅智能分æžä»»åŠ¡çŠ¶æ€, pInParam 资æºç”±ç”¨æˆ·ç”³è¯·å’Œé‡Šæ”¾ public LLong CLIENT_AttachAnalyseTaskState(LLong lLoginID, NET_IN_ATTACH_ANALYSE_TASK_STATE pInParam, int nWaitTime); // å–消订阅智能分æžä»»åŠ¡çŠ¶æ€, lAttachHandle 为 CLIENT_AttachAnalyseTaskState接å£çš„返回值 public Boolean CLIENT_DetachAnalyseTaskState(LLong lAttachHandle); /*--------任务结æŸï¼š CLIENT_AttachAnalyseTaskState / CLIENT_DetachAnalyseTaskState --------*/ /*--------任务开始: CLIENT_AttachAnalyseTaskResult / CLIENT_DetachAnalyseTaskResult --------*/ // 事件类型 public static class EM_ANALYSE_EVENT_TYPE extends SdkStructure { public static final int EM_ANALYSE_EVENT_UNKNOWN = 0; // 未知 public static final int EM_ANALYSE_EVENT_ALL=1; // 所有事件 public static final int EM_ANALYSE_EVENT_FACE_DETECTION=2; // ç›®æ ‡æ£€æµ‹äº‹ä»¶, 对应结构体 DEV_EVENT_FACEDETECT_INFO public static final int EM_ANALYSE_EVENT_FACE_RECOGNITION=3; // ç›®æ ‡è¯†åˆ«äº‹ä»¶, 对应结构体 DEV_EVENT_FACERECOGNITION_INFO public static final int EM_ANALYSE_EVENT_TRAFFICJUNCTION=4; // 交通路å£äº‹ä»¶, 对应结构体 DEV_EVENT_TRAFFICJUNCTION_INFO public static final int EM_ANALYSE_EVENT_HUMANTRAIT=5; // 人体特å¾äº‹ä»¶, 对应结构体 DEV_EVENT_HUMANTRAIT_INFO public static final int EM_ANALYSE_EVENT_XRAY_DETECTION=6; // X光机检测事件, 对应结构体 DEV_EVENT_XRAY_DETECTION_INFO public static final int EM_ANALYSE_EVENT_WORKCLOTHESDETECT=7; // 工装(安全帽/工作æœç‰)检测事件, 对应结构体 DEV_EVENT_WORKCLOTHES_DETECT_INFO public static final int EM_ANALYSE_EVENT_WORKSTATDETECTION=8; // 作业检测事件, 对应结构体 DEV_EVENT_WORKSTATDETECTION_INFO public static final int EM_ANALYSE_EVENT_CORSSLINEDETECTION=9; // 拌线入侵事件, 对应结构体 DEV_EVENT_CROSSLINE_INFO public static final int EM_ANALYSE_EVENT_CROSSREGIONDETECTION=10; // 区域入侵事件, 对应结构体 DEV_EVENT_CROSSREGION_INFO public static final int EM_ANALYSE_EVENT_FEATURE_ABSTRACT=11; // 特å¾æå–事件 DEV_EVENT_FEATURE_ABSTRACT_INFO public static final int EM_ANALYSE_EVENT_ELECTRIC_GLOVE_DETECT=12; // 电力检测手套检测事件, 对应结构体 DEV_EVENT_ELECTRIC_GLOVE_DETECT_INFO public static final int EM_ANALYSE_EVENT_ELECTRIC_LADDER_DETECT=13; // 电力检测梯å检测事件, 对应结构体 DEV_EVENT_ELECTRIC_LADDER_DETECT_INFO public static final int EM_ANALYSE_EVENT_ELECTRIC_CURTAIN_DETECT=14; // 电力检测布幔检测事件, 对应结构体 DEV_EVENT_ELECTRIC_CURTAIN_DETECT_INFO public static final int EM_ANALYSE_EVENT_ELECTRIC_FENCE_DETECT=15; // 电力检测围æ 检测事件, 对应结构体 DEV_EVENT_ELECTRIC_FENCE_DETECT_INFO public static final int EM_ANALYSE_EVENT_ELECTRIC_SIGNBOARD_DETECT=16; // ç”µåŠ›æ£€æµ‹æ ‡è¯†ç‰Œæ£€æµ‹äº‹ä»¶, 对应结构体 DEV_EVENT_ELECTRIC_SIGNBOARD_DETECT_INFO public static final int EM_ANALYSE_EVENT_ELECTRIC_BELT_DETECT=17; // 电力检测安全带检测事件, 对应结构体 DEV_EVENT_ELECTRIC_BELT_DETECT_INFO public static final int EM_ANALYSE_EVENT_BANNER_DETECTION=18; // 拉横幅检测事件, 对应的结构体 DEV_EVENT_BANNER_DETECTION_INFO public static final int EM_ANALYSE_EVENT_SMART_KITCHEN_CLOTHES_DETECTION=19; // 智慧厨房穿ç€æ£€æµ‹äº‹ä»¶, 对应结构体 DEV_EVENT_SMART_KITCHEN_CLOTHES_DETECTION_INFO public static final int EM_ANALYSE_EVENT_WATER_STAGE_MONITOR=20; // æ°´ä½ç›‘测事件, 对应结构体DEV_EVENT_WATER_STAGE_MONITOR_INFO public static final int EM_ANALYSE_EVENT_FLOATINGOBJECT_DETECTION=21; // 漂浮物检测事件, 对应结构体 DEV_EVENT_FLOATINGOBJECT_DETECTION_INFO public static final int EM_ANALYSE_EVENT_IVS_RIOTERDETECTION=22; // 人群èšé›† 对应结构体 DEV_EVENT_RIOTERL_INFO) public static final int EM_ANALYSE_EVENT_IVS_LEFTDETECTION=23; // 物å“é—留事件 对应结构体 DEV_EVENT_LEFT_INFO public static final int EM_ANALYSE_EVENT_IVS_PARKINGDETECTION=24; // éžæ³•åœè½¦äº‹ä»¶ 对应结构体 DEV_EVENT_PARKINGDETECTION_INFO public static final int EM_ANALYSE_EVENT_IVS_WANDERDETECTION=25; // 徘徊事件对应结构体 DEV_EVENT_WANDER_INFO public static final int EM_ANALYSE_EVENT_IVS_VIDEOABNORMALDETECTION=26; // 视频异常对应结构体 DEV_EVENT_VIDEOABNORMALDETECTION_INFO public static final int EM_ANALYSE_EVENT_MOVEDETECTION=27; // è¿åŠ¨æ£€æµ‹äº‹ä»¶, 对应结构体 DEV_EVENT_MOVE_INFO public static final int EM_ANALYSE_EVENT_VIDEO_NORMAL_DETECTION=28; // 视频æ£å¸¸äº‹ä»¶,在视频诊æ–检测周期结æŸæ—¶,将未报错的诊æ–项上报æ£å¸¸äº‹ä»¶,对应结构体 DEV_EVENT_VIDEO_NORMAL_DETECTION_INFO public static final int EM_ANALYSE_EVENT_CONVEYER_BELT_BULK=29; // ä¼ é€å¸¦å¤§å—异物检测事件, 对应结构体 DEV_EVENT_CONVEYER_BELT_BULK_INFO public static final int EM_ANALYSE_EVENT_CONVEYER_BELT_NONLOAD=30; // ä¼ é€å¸¦ç©ºè½½æ£€æµ‹äº‹ä»¶, 对应结构体 DEV_EVENT_CONVEYER_BELT_NONLOAD_INFO public static final int EM_ANALYSE_EVENT_CONVEYER_BELT_RUNOFF=31; // ä¼ é€å¸¦è·‘å检测事件, 对应结构体 DEV_EVENT_CONVEYER_BELT_RUNOFF_INFO public static final int EM_ANALYSE_EVENT_CONVEYER_BELT_BLOCK=32; // ä¼ é€å¸¦é˜»å¡žæ£€æµ‹äº‹ä»¶, 对应结构体 DEV_EVENT_CONVEYORBLOCK_DETECTION_INFO public static final int EM_ANALYSE_EVENT_NUMBER_STAT=33; // æ•°é‡ç»Ÿè®¡äº‹ä»¶, 对应 结构体 DEV_EVENT_NUMBERSTAT_INFO public static final int EM_ANALYSE_EVENT_FIGHTDETECTION=34; // 斗殴事件, 对应结构体 DEV_EVENT_FIGHT_INFO public static final int EM_ANALYSE_EVENT_SMOKEDETECTION=35; // 烟雾报è¦æ£€æµ‹äº‹ä»¶, 对应结构体 DEV_EVENT_SMOKE_INFO public static final int EM_ANALYSE_EVENT_FIREDETECTION=36; // ç«è¦æ£€æµ‹äº‹ä»¶, 对应结构体 DEV_EVENT_FIRE_INFO public static final int EM_ANALYSE_EVENT_PHONECALL_DETECT=37; // 打电è¯æ£€æµ‹äº‹ä»¶, 对应结构体 DEV_EVENT_PHONECALL_DETECT_INFO public static final int EM_ANALYSE_EVENT_SMOKING_DETECT=38; // å¸çƒŸæ£€æµ‹äº‹ä»¶, 对应结构体 DEV_EVENT_SMOKING_DETECT_INFO public static final int EM_ANALYSE_EVENT_TUMBLE_DETECTION=39; // 跌倒检测事件, 对应结构体 DEV_EVENT_TUMBLE_DETECTION_INFO public static final int EM_ANALYSE_EVENT_WATER_LEVEL_DETECTION=40; // æ°´ä½å°ºæ£€æµ‹äº‹ä»¶, 对应结构体 DEV_EVENT_WATER_LEVEL_DETECTION_INFO public static final int EM_ANALYSE_EVENT_CLIMBDETECTION=41; // 攀高检测事件, 对应结构体 DEV_EVENT_IVS_CLIMB_INFO public static final int EM_ANALYSE_EVENT_MAN_NUM_DETECTION=42; // 立体视觉区域内人数统计事件, 对应结构体DEV_EVENT_MANNUM_DETECTION_INFO public static final int EM_ANALYSE_EVENT_DIALRECOGNITION=43; // 仪表检测事件, 对应结构体DEV_EVENT_DIALRECOGNITION_INFO public static final int EM_ANALYSE_EVENT_ELECTRICFAULT_DETECT=44; // 仪表类缺陷检测事件, 对应结构体DEV_EVENT_ELECTRICFAULTDETECT_INFO public static final int EM_ANALYSE_EVENT_IVS_TRAFFIC_ROAD_BLOCK=45; // 交通路障检测事件,对应结构体 DEV_EVENT_TRAFFIC_ROAD_BLOCK_INFO public static final int EM_ANALYSE_EVENT_IVS_TRAFFIC_ROAD_CONSTRUCTION=46; //交通é“路施工检测事件,对应结构体 DEV_EVENT_TRAFFIC_ROAD_CONSTRUCTION_INFO public static final int EM_ANALYSE_EVENT_IVS_TRAFFIC_FLOWSTATE=47; // 交通æµé‡ç»Ÿè®¡äº‹ä»¶,对应结构体 DEV_EVENT_TRAFFIC_FLOW_STATE public static final int EM_ANALYSE_EVENT_IVS_TRAFFIC_OVERSPEED=48; // 超速事件,对应结构体 DEV_EVENT_TRAFFIC_OVERSPEED_INFO public static final int EM_ANALYSE_EVENT_IVS_TRAFFIC_UNDERSPEED=49; // æ¬ é€Ÿäº‹ä»¶,对应结构体 DEV_EVENT_TRAFFIC_UNDERSPEED_INFO public static final int EM_ANALYSE_EVENT_IVS_TRAFFIC_OVERYELLOWLINE=50; // 压黄线事件,对应结构体 DEV_EVENT_TRAFFIC_OVERYELLOWLINE_INFO public static final int EM_ANALYSE_EVENT_IVS_TRAFFIC_CROSSLANE=51; // è¿ç« å˜é“事件, 对应结构体 DEV_EVENT_TRAFFIC_CROSSLANE_INFO public static final int EM_ANALYSE_EVENT_IVS_TRAFFICJAM=52; // äº¤é€šæ‹¥å µäº‹ä»¶, 对应结构体 DEV_EVENT_TRAFFICJAM_INFO public static final int EM_ANALYSE_EVENT_IVS_TRAFFIC_PEDESTRAIN=53; // 交通行人事件, 对应结构体 DEV_EVENT_TRAFFIC_PEDESTRAIN_INFO public static final int EM_ANALYSE_EVENT_IVS_TRAFFIC_THROW=54; // 抛洒物事件, 对应结构体 DEV_EVENT_TRAFFIC_THROW_INFO public static final int EM_ANALYSE_EVENT_IVS_TRAFFIC_RETROGRADE=55; // 交通逆行事件, 对应结构体 DEV_EVENT_TRAFFIC_RETROGRADE_INFO public static final int EM_ANALYSE_EVENT_IVS_TRAFFICACCIDENT=56; // 交通事故事件, 对应结构体 DEV_EVENT_TRAFFICACCIDENT_INFO public static final int EM_ANALYSE_EVENT_IVS_TRAFFIC_BACKING=57; // 倒车事件, 对应结构体 DEV_EVENT_IVS_TRAFFIC_BACKING_INFO public static final int EM_ANALYSE_EVENT_IVS_FOG_DETECTION=58; // 起雾检测事件, 对应结构体 DEV_EVENT_FOG_DETECTION public static final int EM_ANALYSE_EVENT_IVS_CROSSREGIONDETECTION=59; // 区域入侵事件, 对应结构体 DEV_EVENT_CROSSREGION_INFO public static final int EM_ANALYSE_EVENT_IVS_TRAFFIC_PARKING=60; // 交通è¿ç« åœè½¦äº‹ä»¶ï¼Œå¯¹åº”结构体 DEV_EVENT_TRAFFIC_PARKING_INFO public static final int EM_ANALYSE_EVENT_IVS_FINANCE_CASH_TRANSACTION=61; //智慧金èžçŽ°é‡‘交易检测事件,对应结构体 DEV_EVENT_FINANCE_CASH_TRANSACTION_INFO public static final int EM_ANALYSE_EVENT_IVS_LEAVEDETECTION=62; // 离岗检测事件,对应结构体 DEV_EVENT_IVS_LEAVE_INFO public static final int EM_ANALYSE_EVENT_IVS_LADLE_NO_DETECTION=63; // 钢包编å·è¯†åˆ«äº‹ä»¶,对应结构体 DEV_EVENT_LADLE_NO_DETECTION_INFO public static final int EM_ANALYSE_EVENT_CROSSLINEDETECTION_EX = 2000; // 拌线入侵事件(扩展), 对应结构体 DEV_EVENT_CROSSLINE_INFO_EX }; // 文件分æžçŠ¶æ€ public static class EM_FILE_ANALYSE_STATE extends SdkStructure { public static final int EM_FILE_ANALYSE_UNKNOWN = -1; // 未知 public static final int EM_FILE_ANALYSE_EXECUTING = 0; // 分æžä¸ public static final int EM_FILE_ANALYSE_FINISH = 1; // 分æžå®Œæˆ public static final int EM_FILE_ANALYSE_FAILED = 2; // 分æžå¤±è´¥ }; // 二次录åƒåˆ†æžäº‹ä»¶ä¿¡æ¯ public static class NET_SECONDARY_ANALYSE_EVENT_INFO extends SdkStructure { public int emEventType; // 事件类型(对应的枚举值EM_ANALYSE_EVENT_TYPE) public byte[] byReserved1 = new byte[4]; // å—èŠ‚å¯¹é½ public Pointer pstEventInfo; // 事件信æ¯, æ ¹æ®emEventType确定ä¸åŒçš„结构体 // EM_ANALYSE_EVENT_FACE_DETECTION (ç›®æ ‡æ£€æµ‹äº‹ä»¶), 对应结构体 DEV_EVENT_FACEDETECT_INFO // EM_ANALYSE_EVENT_FACE_RECOGNITION (ç›®æ ‡è¯†åˆ«äº‹ä»¶), 对应结构体 DEV_EVENT_FACERECOGNITION_INFO // EM_ANALYSE_EVENT_TRAFFICJUNCTION (交通路å£äº‹ä»¶), 对应结构体 DEV_EVENT_TRAFFICJUNCTION_INFO // EM_ANALYSE_EVENT_HUMANTRAIT (人体特å¾äº‹ä»¶), 对应结构体 DEV_EVENT_HUMANTRAIT_INFO // EM_ANALYSE_EVENT_XRAY_DETECTION(X光机检测事件), 对应结构体 DEV_EVENT_XRAY_DETECTION_INFO // EM_ANALYSE_EVENT_WORKCLOTHESDETECT (工装(安全帽/工作æœç‰)检测事件), 对应结构体 DEV_EVENT_WORKCLOTHES_DETECT_INFO // EM_ANALYSE_EVENT_WORKSTATDETECTION (作业检测事件), 对应结构体 DEV_EVENT_WORKSTATDETECTION_INFO // EM_ANALYSE_EVENT_CORSSLINEDETECTION (拌线入侵事件), 对应结构体 DEV_EVENT_CROSSLINE_INFO // EM_ANALYSE_EVENT_CROSSLINEDETECTION_EX (拌线入侵事件(扩展)), 对应结构体 DEV_EVENT_CROSSLINE_INFO_EX // EM_ANALYSE_EVENT_CROSSREGIONDETECTION (区域入侵事件), 对应结构体 DEV_EVENT_CROSSREGION_INFO // EM_ANALYSE_EVENT_FEATURE_ABSTRACT(特å¾æå–), 对应结构体 DEV_EVENT_FEATURE_ABSTRACT_INFO // EM_ANALYSE_EVENT_ELECTRIC_GLOVE_DETECT(电力检测手套检测事件), 对应结构体 DEV_EVENT_ELECTRIC_GLOVE_DETECT_INFO // EM_ANALYSE_EVENT_ELECTRIC_LADDER_DETECT(电力检测梯å检测事件), 对应结构体 DEV_EVENT_ELECTRIC_LADDER_DETECT_INFO // EM_ANALYSE_EVENT_ELECTRIC_CURTAIN_DETECT(电力检测布幔检测事件), 对应结构体 DEV_EVENT_ELECTRIC_CURTAIN_DETECT_INFO // EM_ANALYSE_EVENT_ELECTRIC_FENCE_DETECT(电力检测围æ 检测事件), 对应结构体 DEV_EVENT_ELECTRIC_FENCE_DETECT_INFO // EM_ANALYSE_EVENT_ELECTRIC_SIGNBOARD_DETECT(ç”µåŠ›æ£€æµ‹æ ‡è¯†ç‰Œæ£€æµ‹äº‹ä»¶), 对应结构体 DEV_EVENT_ELECTRIC_SIGNBOARD_DETECT_INFO // EM_ANALYSE_EVENT_ELECTRIC_BELT_DETECT(电力检测安全带检测事件), 对应结构体 DEV_EVENT_ELECTRIC_BELT_DETECT_INFO public byte[] byReserved = new byte[1024]; // ä¿ç•™å—节 }; // ä»»åŠ¡è‡ªå®šä¹‰æ•°æ® public static class NET_TASK_CUSTOM_DATA extends SdkStructure { public byte[] szClientIP = new byte[128]; // 客户端IP public byte[] szDeviceID = new byte[128]; // 设备ID public byte[] byReserved = new byte[256]; // ä¿ç•™å—节 }; // 智能分æžç»“果订阅的过滤æ¡ä»¶ public static class NET_ANALYSE_RESULT_FILTER extends SdkStructure { public int[] dwAlarmTypes = new int[MAX_ANALYSE_FILTER_EVENT_NUM]; // 过滤事件, 详è§dhnetsdk.hä¸"智能分æžäº‹ä»¶ç±»åž‹" public int nEventNum; // è¿‡æ»¤äº‹ä»¶æ•°é‡ public int nImageDataFlag; // 是å¦åŒ…å«å›¾ç‰‡, 0-包å«, 1-ä¸åŒ…å« public byte[] byReserved1=new byte[4]; // å¯¹é½ public int nImageTypeNum; // pImageType有效个数 /** * 对应枚举类型为EM_FILTER_IMAGE_TYPE,int数组按ä½å–值 */ public Pointer pImageType; // 过滤上报的图片类型 public byte[] byReserved =new byte[1004]; // ä¿ç•™å—节 }; // CLIENT_AttachAnalyseTaskResult 接å£è¾“å…¥å‚æ•° public static class NET_IN_ATTACH_ANALYSE_RESULT extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int[] nTaskIDs = new int[MAX_ANALYSE_TASK_NUM]; // 智能分æžä»»åŠ¡ID public int nTaskIdNum; // 智能分æžä»»åŠ¡ä¸ªæ•°, 0表示订阅全部任务 public NET_ANALYSE_RESULT_FILTER stuFilter; // 过滤æ¡ä»¶ public byte[] byReserved = new byte[4]; // å—èŠ‚å¯¹é½ public fAnalyseTaskResultCallBack cbAnalyseTaskResult; // 智能分æžä»»åŠ¡ç»“果订阅函数 public Pointer dwUser; // ç”¨æˆ·æ•°æ® public NET_IN_ATTACH_ANALYSE_RESULT() { this.dwSize = this.size(); }// æ¤ç»“æž„ä½“å¤§å° }; // 智能分æžä»»åŠ¡ç»“æžœä¿¡æ¯ public static class NET_ANALYSE_TASK_RESULT extends SdkStructure { public int nTaskID; // 任务ID public byte[] szFileID = new byte [NET_COMMON_STRING_128]; // 文件ID, 分æžæ–‡ä»¶æ—¶æœ‰æ•ˆ public int emFileAnalyseState; // 文件分æžçŠ¶æ€(对应的枚举值EM_FILE_ANALYSE_STATE) public byte[] szFileAnalyseMsg = new byte[NET_COMMON_STRING_256]; // 文件分æžé¢å¤–ä¿¡æ¯, 一般都是分æžå¤±è´¥çš„åŽŸå› public NET_SECONDARY_ANALYSE_EVENT_INFO[] stuEventInfos =new NET_SECONDARY_ANALYSE_EVENT_INFO[MAX_SECONDARY_ANALYSE_EVENT_NUM]; // äº‹ä»¶ä¿¡æ¯ public int nEventCount; // 实际的事件个数 public NET_TASK_CUSTOM_DATA stuCustomData = new NET_TASK_CUSTOM_DATA(); // è‡ªå®šä¹‰æ•°æ® public byte[] szUserData=new byte[64]; // 频æºæ•°æ®ï¼Œæ ‡ç¤ºè§†é¢‘æºä¿¡æ¯ï¼Œå¯¹åº”addPollingTaskä¸UserDataå—段。 public byte[] szTaskUserData=new byte[256]; // ä»»åŠ¡æ•°æ® public Pointer pstuEventInfosEx; // æ‰©å±•äº‹ä»¶ä¿¡æ¯ NET_SECONDARY_ANALYSE_EVENT_INFO public int nRetEventInfoExNum; // 返回扩展事件信æ¯ä¸ªæ•° public byte[] szUserDefineData =new byte[512]; // 用户定义数æ®ï¼Œå¯¹åº”analyseTaskManager.analysePushPictureFileByRuleä¸UserDefineDataå—段 public byte[] byReserved =new byte[184]; // ä¿ç•™å—节 public NET_ANALYSE_TASK_RESULT() { for(int i = 0; i < stuEventInfos.length; i ++){ this.stuEventInfos[i] = new NET_SECONDARY_ANALYSE_EVENT_INFO(); } } }; // 智能分æžä»»åŠ¡ç»“æžœå›žè°ƒä¿¡æ¯ public static class NET_CB_ANALYSE_TASK_RESULT_INFO extends SdkStructure { public NET_ANALYSE_TASK_RESULT[] stuTaskResultInfos = new NET_ANALYSE_TASK_RESULT[MAX_ANALYSE_TASK_NUM]; // 智能分æžä»»åŠ¡ç»“æžœä¿¡æ¯ public int nTaskResultNum; // 任务个数 public byte[] byReserved =new byte[1028]; // ä¿ç•™å—节 public NET_CB_ANALYSE_TASK_RESULT_INFO() { for(int i = 0; i < MAX_ANALYSE_TASK_NUM; i ++){ this.stuTaskResultInfos[i] = new NET_ANALYSE_TASK_RESULT(); } } }; // 智能分æžçŠ¶æ€è®¢é˜…函数原型, lAttachHandle 是 CLIENT_AttachAnalyseTaskResult接å£çš„返回值,pstAnalyseTaskResult对应结构体NET_CB_ANALYSE_TASK_RESULT_INFO public interface fAnalyseTaskResultCallBack extends Callback{ public int invoke(LLong lAttachHandle, Pointer pstAnalyseTaskResult, Pointer pBuf, int dwBufSize, Pointer dwUser); }; // å–消订阅智能分æžç»“æžœ, lAttachHandle 为 CLIENT_AttachAnalyseTaskResult接å£çš„返回值@@ public Boolean CLIENT_DetachAnalyseTaskResult(LLong lAttachHandle); // 订阅智能分æžç»“æžœ, pInParam 资æºç”±ç”¨æˆ·ç”³è¯·å’Œé‡Šæ”¾ public LLong CLIENT_AttachAnalyseTaskResult(LLong lLoginID, NET_IN_ATTACH_ANALYSE_RESULT pInParam, int nWaitTime); /*--------任务结æŸï¼š CLIENT_AttachAnalyseTaskResult / CLIENT_DetachAnalyseTaskResult --------*/ /*--------任务开始: T0058223ERR191213010-TASK1 åœç•™äº‹ä»¶ï¼šDEV_EVENT_STAY_INFO--------*/ // 视频分æžç‰©ä½“ä¿¡æ¯ç»“构体 public static class DH_MSG_OBJECT extends SdkStructure { public int nObjectID; // 物体ID,æ¯ä¸ªID表示一个唯一的物体 public byte[] szObjectType = new byte[128]; // 物体类型 public int nConfidence; // 置信度(0~255),值越大表示置信度越高 public int nAction; // 物体动作:1:Appear 2:Move 3: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]; // 物体上相关的带0结æŸç¬¦æ–‡æœ¬,比如车牌,集装箱å·ç‰ç‰ public byte[] szObjectSubType = new byte[62]; // 物体å类别,æ ¹æ®ä¸åŒçš„物体类型,å¯ä»¥å–以下å类型: // Vehicle Category:"Unknown" 未知,"Motor" 机动车,"Non-Motor":éžæœºåŠ¨è½¦,"Bus": 公交车,"Bicycle" 自行车,"Motorcycle":摩托车,"PassengerCar":客车, // "LargeTruck":大货车, "MidTruck":ä¸è´§è½¦,"SaloonCar":轿车,"Microbus":é¢åŒ…车,"MicroTruck":å°è´§è½¦,"Tricycle":三轮车, "Passerby":行人 // "DregsCar":渣土车, "Excavator":挖掘车, "Bulldozer":推土车, "Crane":åŠè½¦, "PumpTruck":泵车, "MachineshopTruck":工程车 // Plate Category:"Unknown" 未知,"Normal" è“牌黑牌,"Yellow" 黄牌,"DoubleYellow" åŒå±‚黄尾牌,"Police" è¦ç‰Œ, // "SAR" 港澳特区å·ç‰Œ,"Trainning" 教练车å·ç‰Œ // "Personal" 个性å·ç‰Œ,"Agri" 农用牌,"Embassy" 使馆å·ç‰Œ,"Moto" 摩托车å·ç‰Œ,"Tractor" 拖拉机å·ç‰Œ,"Other" 其他å·ç‰Œ // "Civilaviation"民航å·ç‰Œ,"Black"黑牌 // "PureNewEnergyMicroCar"纯电动新能æºå°è½¦,"MixedNewEnergyMicroCar,"æ··åˆæ–°èƒ½æºå°è½¦,"PureNewEnergyLargeCar",纯电动新能æºå¤§è½¦ // "MixedNewEnergyLargeCar"æ··åˆæ–°èƒ½æºå¤§è½¦ // HumanFace Category:"Normal" 普通人脸,"HideEye" 眼部é®æŒ¡,"HideNose" é¼»åé®æŒ¡,"HideMouth" 嘴部é®æŒ¡,"TankCar"槽ç½è½¦(装化å¦è¯å“ã€å±é™©å“) public short wColorLogoIndex; // è½¦æ ‡ç´¢å¼• public short wSubBrand; // 车辆åå“牌 需è¦é€šè¿‡æ˜ 射表得到真æ£çš„åå“牌 æ˜ å°„è¡¨è¯¦è§å¼€å‘手册 public byte byReserved1; public byte bPicEnble; // 是å¦æœ‰ç‰©ä½“å¯¹åº”å›¾ç‰‡æ–‡ä»¶ä¿¡æ¯ public NET_PIC_INFO stPicInfo; // ç‰©ä½“å¯¹åº”å›¾ç‰‡ä¿¡æ¯ public byte bShotFrame; // 是å¦æ˜¯æŠ“æ‹å¼ 的识别结果 public byte bColor; // 物体颜色(rgbaMainColor)是å¦å¯ç”¨ public byte byReserved2; // ä¿ç•™å—节,留待扩展 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 short wBrandYear; // 车辆å“牌年款 需è¦é€šè¿‡æ˜ 射表得到真æ£çš„年款 æ˜ å°„è¡¨è¯¦è§å¼€å‘手册 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 "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 byte[] byReserved=new byte[512]; // ä¿ç•™å—节 } ; //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_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 byte[] byReserved=new byte[512]; // ä¿ç•™å—节 } // 视频æºä¿¡æ¯ 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[256]; // 视频æºurl地å€, emProtocolType为EM_DEV_PROTOCOL_GENERAL 时有效 public byte[] byReserved = new byte[512]; // ä¿ç•™å—节 } // 设备å议类型 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 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 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 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ä¿¡æ¯æœ€å¤§ä¸ªæ•° public static final int MAX_COAXIAL_CONTROL_IO_COUNT =8; // å‘é€åŒè½´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 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 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.iailab.netsdk.lib.enumeration.NET_EM_LATTICE_SCREEN_SHOW_TYPE}*/ public int emControlType; /** æŽ§åˆ¶æ–¹å¼ {@link com.iailab.netsdk.lib.enumeration.NET_EM_LATTICE_SCREEN_CONTROL_TYPE}*/ public int emBackgroundMode; /** 逻辑å±èƒŒæ™¯é£Žæ ¼æ¨¡å¼ {@link com.iailab.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 final int MAX_LANES_NUM = 64 ; // ç¯ç»„监管车ä½çš„最多个数 // å•ä¸ªè½¦ä½æŒ‡ç¤ºç¯æœ¬æœºé…ç½® 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; // 是å¦æŽ¥å—远程控制 }; public static final int MAX_LIGHT_GROUP_INFO_NUM = 8 ; // 车ä½æŒ‡ç¤ºç¯æœ¬æœºé…置的最多个数 // 车ä½æŒ‡ç¤ºç¯æœ¬æœºé…ç½® 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]; // 地å€æè¿°,ä¸åŒåŽ‚商地å€ä½ä¸åŒï¼Œç”¨æ•°ç»„表示 }; 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; // 最大设备å“牌长度 // ç¯å…‰è®¾å¤‡é…ç½®ä¿¡æ¯ (对应 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 final int MAX_LIGHTING_NUM =16; // ç¯å…‰è®¾ç½®è¯¦æƒ… 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; // å…³é—æ¨¡å¼ }; public static final int MAX_LIGHTING_DETAIL_NUM =16; // ç¯å…‰è®¾ç½®(对应 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 byte[] byReserved=new byte[252]; @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]; // ä¿ç•™å—节,留待扩展. } ; public static final int NET_MAX_PLATEENABLE_NUM = 16; // 最大使能过车车牌æ’报个数 public static final int NET_MAX_BROADCAST_ELEMENT_NUM = 64; // 最大è¯éŸ³æ’æŠ¥å…ƒç´ ä¸ªæ•° // 智能交通è¯éŸ³æ’报é…ç½® 对应枚举 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 boolean bSizeFileter; // 规则特定的尺寸过滤器是å¦æœ‰æ•ˆ public NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器 public boolean bFeatureEnable; // 是å¦å¼€å¯äººè„¸å±žæ€§è¯†åˆ«, IPCå¢žåŠ public int nFaceFeatureNum; // 需è¦æ£€æµ‹çš„人脸属性个数 public int[] emFaceFeatureType = new int[32]; // 需检测的人脸属性 NET_EM_FACEFEATURE_TYPE public boolean bFeatureFilter; // 在人脸属性开å¯å‰æ下,如果人脸图åƒè´¨é‡å¤ªå·®ï¼Œæ˜¯å¦ä¸ä¸ŠæŠ¥å±žæ€§ // true-图åƒå¤ªå·®ä¸ä¸ŠæŠ¥å±žæ€§ false-图åƒå¾ˆå·®ä¹Ÿä¸ŠæŠ¥å±žæ€§(å¯èƒ½ä¼šéžå¸¸ä¸å‡†ï¼Œå½±å“用户体验) public int nMinQuality; // 人脸图片质é‡é˜ˆå€¼,å’ŒbFeatureFilter一起使用 范围[1,100] 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 boolean 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 boolean bShowTitle; // 事件触å‘时规则框上是å¦æ˜¾ç¤ºæŠ¥è¦æ ‡é¢˜ public boolean bShowPlate; // 事件触å‘时是å¦æ˜¾ç¤ºæ¯”对é¢æ¿ public NET_ALARM_MSG_HANDLE stuEventHandler; // 报è¦è”动 public byte[] bReserved = new byte[512]; // ä¿ç•™å—段 } // é™Œç”Ÿäººå¸ƒé˜²æ¨¡å¼ public static class NET_CFG_STRANGERMODE_INFO extends SdkStructure { public boolean bEnable; // 模å¼æ˜¯å¦å¯ç”¨ public byte[] szColorHex = new byte[8]; // 事件触å‘时绘制人脸框的颜色 public boolean bShowTitle; // 事件触å‘时规则框上是å¦æ˜¾ç¤ºæŠ¥è¦æ ‡é¢˜ public boolean 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;i<stuFeatureVectorList.length;i++){ stuFeatureVectorList[i] = new NET_FEATURE_VECTOR_INFO(); } } } // 特å¾å€¼ä¿¡æ¯ public static class NET_FEATURE_VECTOR_INFO extends SdkStructure { public byte[] szFeatureVersion = new byte[32]; // 特å¾ç‰ˆæœ¬ç‰ˆæœ¬å· public int emFeatureErrCode; // 特å¾å»ºæ¨¡å¤±è´¥é”™è¯¯ç EM_FEATURE_ERROR_CODE public NET_FEATURE_VECTOR stuFeatureVector; // 特å¾å€¼çš„å移和大å°ä¿¡æ¯ public NET_FACE_ATTRIBUTES stuFaceAttribute; // 人脸属性 ,当æå–人脸特å¾å‘é‡æˆåŠŸæ—¶ä¸ŠæŠ¥ public byte[] byReserved = new byte[968]; // 预留å—节 } // 特å¾å»ºæ¨¡å¤±è´¥é”™è¯¯ç public static class EM_FEATURE_ERROR_CODE { public final static int EM_FEATURE_ERROR_SUCCESS = 0; // æˆåŠŸ public final static int EM_FEATURE_ERROR_UNKNOWN = 1; // 未知 public final static int EM_FEATURE_ERROR_IMAGE_FORMAT_ERROR = 2; // å›¾ç‰‡æ ¼å¼é—®é¢˜ public final static int EM_FEATURE_ERROR_NOFACE_OR_NOTCLEAR =3; // æ— äººè„¸æˆ–ä¸å¤Ÿæ¸…æ™° public final static int EM_FEATURE_ERROR_MULT_FACES = 4; // 多个人脸 public final static int EM_FEATURE_ERROR_IMAGH_DECODE_FAILED = 5; // 图片解ç 失败 public final static int EM_FEATURE_ERROR_NOT_SUGGEST_STORAGE = 6; // ä¸æŽ¨è入库 public final static int EM_FEATURE_ERROR_DATABASE_OPERATE_FAILED = 7; // æ•°æ®åº“æ“作失败 public final static int EM_FEATURE_ERROR_GET_IMAGE_FAILED = 8; // 获å–图片失败 public final static int EM_FEATURE_ERROR_SYSTEM_EXCEPTION = 9; // 系统异常(如Licence失效ã€å»ºæ¨¡åˆ†æžå™¨æœªå¯åŠ¨å¯¼è‡´çš„失败) } // 人脸属性 public static class NET_FACE_ATTRIBUTES extends SdkStructure { public int[] nAngle = new int[3]; // 人脸抓æ‹è§’度,三个角度分别是:仰俯角,å航角,翻滚角;默认值[999,999,999]è¡¨ç¤ºæ— æ¤æ•°æ® public int nFaceQuality; // 人脸抓æ‹è´¨é‡åˆ†æ•°,å–值范围 0~10000 public int nFaceAlignScore; // 人脸对é½å¾—分分数,å–值范围 0~10000,-1ä¸ºæ— æ•ˆå€¼ public byte[] byReserved = new byte[36]; // 预留å—节 } // 事件类型EVENT_IVS_FEATURE_ABSTRACT(æå–特å¾)对应的规则é…ç½® public static class NET_FEATURE_ABSTRACT_RULE_INFO extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int nFeature; // 特å¾çš„æ•°é‡ public NET_FEATURE_ABSTRACT_VERSION[] szFeatureVersions = new NET_FEATURE_ABSTRACT_VERSION[10]; // 对图片进行特å¾å‘é‡æå–时使用,需è¦å¯¹å›¾ç‰‡è¿›è¡ŒåŒä¸€ç§ç‰¹å¾å‘é‡å¤šä¸ªç‰ˆæœ¬è¿›è¡Œæå–,最大是10个版本 public int emAbstractType; // 进行特å¾æå–的类型 EM_FEATURE_ABSTRACT_TYPE public NET_FEATURE_ABSTRACT_RULE_INFO(){ for(int i = 0;i<szFeatureVersions.length;i++){ szFeatureVersions[i] = new NET_FEATURE_ABSTRACT_VERSION(); } this.dwSize = this.size(); } } public static class NET_FEATURE_ABSTRACT_VERSION extends SdkStructure { public byte[] szFeatureVersion = new byte[32]; } // 进行特å¾æå–的类型 public static class EM_FEATURE_ABSTRACT_TYPE { public final static int EM_FEATURE_ABSTRACT_UNKNOWN = -1; // 未知 public final static int EM_FEATURE_ABSTRACT_FACE = 0; // 人脸 public final static int EM_FEATURE_ABSTRACT_HUMAN_TRAIT = 1; // 人体 public final static int EM_FEATURE_ABSTRACT_VEHICLE = 2; // 机动车 public final static int EM_FEATURE_ABSTRACT_NON_MOTOR_VEHICLE = 3; // éžæœºåŠ¨è½¦ } public static class ALARM_TRAFFIC_PARKING_TIMEOUT_INFO extends SdkStructure { public int nChannelID; // 通é“å· public int nAction; // 0:脉冲 1:开始 2:åœæ¢ public NET_TIME_EX UTC; // 事件å‘生的时间 public NET_TIME stuInParkTime; // 进场时间 public NET_TIME stuOutParkTime; // 出场时间 public int nParkingTime; // åœè½¦æ—¶é•¿ï¼Œå•ä½ç§’ public byte[] byReserved = new byte[1024]; // 预留å—节 public DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆的数æ®åº“记录 } // 嫌疑车辆上报事件, 对应事件类型 DH_ALARM_TRAFFIC_SUSPICIOUSCAR public static class ALARM_TRAFFIC_SUSPICIOUSCAR_INFO extends SdkStructure { public int dwSize; public int nAction; // 事件动作, -1:未知,0:Start, 1:Stop, 2:Pulse public DH_MSG_OBJECT stuVehicle; // è½¦èº«ä¿¡æ¯ public NET_TRAFFIC_LIST_RECORD stuCarInfo; // 车辆的ç¦æ¢åå•ä¿¡æ¯ public EVENT_COMM_INFO stCommInfo; // å…¬å…±ä¿¡æ¯ public ALARM_TRAFFIC_SUSPICIOUSCAR_INFO(){ this.dwSize = this.size(); } } // 事件类型 DH_ALARM_PARKING_LOT_STATUS_DETECTION (室外åœè½¦ä½çŠ¶æ€æ£€æµ‹äº‹ä»¶) 对应的数æ®å—æè¿°ä¿¡æ¯ public static class ALARM_PARKING_LOT_STATUS_DETECTION extends SdkStructure { public int nChannelID; // 通é“å· public int nAction; // 1:开始 2:åœæ¢ public byte[] szName = new byte[128]; // 事件å称 public int emClassType; // 智能事件所属大类 EM_CLASS_TYPE public NET_TIME_EX UTC; // 事件å‘生的时间 public double PTS; // 时间戳(å•ä½æ˜¯æ¯«ç§’) public int nEventID; // 事件ID public int nRuleID; // 智能事件规则编å·ï¼Œç”¨äºŽæ ‡ç¤ºå“ªä¸ªè§„则触å‘的事件 public int nSequence; // 帧åºå· public int nParkingStatusNum; // 室外åœè½¦ä½ä¸ªæ•° public NET_PARKING_STATUS[] stuParkingStatus = new NET_PARKING_STATUS[100]; // 室外åœè½¦ä½çŠ¶æ€ public byte[] byReserved = new byte[1020]; // 预留å—节 public ALARM_PARKING_LOT_STATUS_DETECTION(){ for(int i = 0;i<stuParkingStatus.length;i++){ stuParkingStatus[i] = new NET_PARKING_STATUS(); } } } // 室外åœè½¦ä½çŠ¶æ€ public static class NET_PARKING_STATUS extends SdkStructure { public byte[] szName = new byte[32]; // 车ä½å称 public int nID; // 车ä½ID,范围:[0,99] public int nParkedNumber; // 车ä½å†…å·²åœè½¦ä½æ•°é‡ï¼ŒèŒƒå›´:[0,255] public int emChangeStatus; // 车ä½å†…å·²åœè½¦ä½æ•°é‡ç›¸å¯¹ä¸Šæ¬¡ä¸ŠæŠ¥çš„å˜åŒ–çŠ¶æ€ EM_PARKING_NUMBER_CHANGE_STATUS public byte[] reserved = new byte[252]; // 预留å—节 } // 车ä½å†…å·²åœè½¦ä½æ•°é‡ç›¸å¯¹ä¸Šæ¬¡ä¸ŠæŠ¥çš„å˜åŒ–çŠ¶æ€ public static class EM_PARKING_NUMBER_CHANGE_STATUS { public final static int EM_PARKING_NUMBER_CHANGE_STATUS_UNKNOWN = -1; // 未知 public final static int EM_PARKING_NUMBER_CHANGE_STATUS_NO_CHANGE = 0; // æ— å˜åŒ– public final static int EM_PARKING_NUMBER_CHANGE_STATUS_INCREASE = 1; // æ•°é‡å¢žåŠ public final static int EM_PARKING_NUMBER_CHANGE_STATUS_DECREASE = 2; // æ•°é‡å‡å°‘ } // åœè½¦è¶…时检测é…ç½® public static class NET_CFG_PARKING_TIMEOUT_DETECT extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public int bEnable; // 是å¦ä½¿èƒ½åœè½¦è¶…时检测 public int nParkingTime; // å¯åœè½¦æ—¶é•¿, å•ä½ä¸ºç§’, 默认值为604800. 范围:3600-604800, 超过指定时长则判æ–为超时åœè½¦ public int nDetectInterval; // 上报超时åœè½¦é—´éš”, å•ä½ä¸ºç§’, 默认值为86400(24å°æ—¶). 最å°å€¼ä¸º600, 最大值为86400 public NET_CFG_PARKING_TIMEOUT_DETECT(){ this.dwSize = this.size(); } } // CLIENT_RemoveParkingCarInfo 接å£è¾“å…¥å‚æ•° public static class NET_IN_REMOVE_PARKING_CAR_INFO extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public DEV_OCCUPIED_WARNING_INFO stuParkingCarInfo; // 车ä½ä¿¡æ¯ public NET_IN_REMOVE_PARKING_CAR_INFO(){ this.dwSize = this.size(); } } // CLIENT_RemoveParkingCarInfo 接å£è¾“出å‚æ•° public static class NET_OUT_REMOVE_PARKING_CAR_INFO extends SdkStructure { public int dwSize; // ç»“æž„ä½“å¤§å° public NET_OUT_REMOVE_PARKING_CAR_INFO(){ this.dwSize = this.size(); } } //对应CLIENT_StartSearchDevicesExæŽ¥å£ public static class DEVICE_NET_INFO_EX2 extends SdkStructure { public DEVICE_NET_INFO_EX stuDevInfo; // 设备信æ¯ç»“构体 public byte[] szLocalIP=new byte[64]; // æœç´¢åˆ°è®¾å¤‡çš„本地IPåœ°å€ public byte[] cReserved=new byte[2048]; // 扩展å—段 }; // 异æ¥æœç´¢è®¾å¤‡å›žè°ƒ(pDevNetInfo内å˜ç”±SDK内部申请释放, å‚考DEVICE_NET_INFO_EX2) public interface fSearchDevicesCBEx extends Callback { public void invoke(LLong lSearchHandle, Pointer pDevNetInfo, Pointer pUserData); } // 异æ¥æœç´¢è®¾å¤‡(å‚考NET_IN_STARTSERACH_DEVICE,NET_OUT_STARTSERACH_DEVICE) public LLong CLIENT_StartSearchDevicesEx(Pointer pInBuf, Pointer pOutBuf); // åŒæ¥è·¨ç½‘段æœç´¢è®¾å¤‡IP (pIpSearchInfo内å˜ç”±ç”¨æˆ·ç”³è¯·é‡Šæ”¾) // szLocalIp为本地IP,å¯ä¸åšè¾“å…¥, fSearchDevicesCB回调 // 接å£è°ƒç”¨1次åªå‘é€æœç´¢ä¿¡ä»¤1次 public boolean CLIENT_SearchDevicesByIPs(DEVICE_IP_SEARCH_INFO pIpSearchInfo, Callback cbSearchDevices, Pointer dwUserData, String szLocalIp, int dwWaitTime); /** * * @param lLoginID * @param pInParam * @param pOutParam * @param nWaitTime * @return boolean */ public boolean CLIENT_AsyncAddCustomDevice(LLong lLoginID, Pointer pInParam, Pointer pOutParam, int nWaitTime); /*** * * @param lLoginID * @param nChannelID * @param dwFocusCommand * @param nFocus * @param nZoom * @param reserved * @param waittime * @return * 镜头èšç„¦æŽ§åˆ¶ dwFocusCommand = 0 * 为èšç„¦è°ƒèŠ‚dwFocusCommand = 1 * 为连ç»èšç„¦è°ƒèŠ‚dwFocusCommand = 2,为自动èšç„¦è°ƒèŠ‚,调节焦点至最佳ä½ç½®ã€‚nFocuså’ŒnZoomæ— æ•ˆã€‚ */ public boolean CLIENT_FocusControl(LLong lLoginID, int nChannelID, int dwFocusCommand, double nFocus, double nZoom, Pointer reserved , int waittime); //事件类型 EVENT_IVS_TUMBLE_DETECTION(倒地报è¦äº‹ä»¶)对应数æ®å—æè¿°ä¿¡æ¯ public static class DEV_EVENT_TUMBLE_DETECTION_INFO extends SdkStructure { public int nChannelID; // 通é“å· public byte[] szName = new byte[NET_EVENT_NAME_LEN]; // 事件å称 public int nAction; // 事件动作,1表示æŒç»æ€§äº‹ä»¶å¼€å§‹,2表示æŒç»æ€§äº‹ä»¶ç»“æŸ; public double PTS; // 时间戳(å•ä½æ˜¯æ¯«ç§’) public NET_TIME_EX UTC; // 事件å‘生的时间 public int nEventID; // 事件ID public int UTCMS; // UTC时间对应的毫秒数 public int emClassType; // 智能事件所属大类 EM_CLASS_TYPE public int nObjectID; // ç›®æ ‡ID public byte[] szObjectType = new byte[NET_COMMON_STRING_16];// 物体类型,支æŒä»¥ä¸‹: //"Unknown", "Human", "Vehicle", "Fire", "Smoke", "Plate", "HumanFace", // "Container", "Animal", "TrafficLight", "PastePaper", "HumanHead", "BulletHole", "Entity" public NET_RECT stuBoundingBox; // 物体包围盒 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 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 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(); } } } /** * 设置二维ç ä¿¡æ¯ * @param lLoginID 登录å¥æŸ„ * @param pInParam å…¥å‚,对应结构体{@link com.iailab.netsdk.lib.structure.NET_IN_SET_2DCODE} * @param pOutParam 出å‚,对应结构体{@link com.iailab.netsdk.lib.structure.NET_OUT_SET_2DCODE} * @param nWaitTime 超时时间 * @return */ public boolean CLIENT_Set2DCode(LLong lLoginID, Pointer pInParam, Pointer pOutParam, int nWaitTime); /** * 订阅çƒåº¦å›¾æ•°æ®,pInParam与pOutParam内å˜ç”±ç”¨æˆ·ç”³è¯·é‡Šæ”¾ * @param lLoginID 登录å¥æŸ„ * @param pInParam å…¥å‚,对应结构体 {@link com.iailab.netsdk.lib.structure.NET_IN_ATTACH_VIDEOSTAT_HEATMAP} * @Param pOutParam 出å‚,对应结构体{@link com.iailab.netsdk.lib.structure.NET_OUT_ATTACH_VIDEOSTAT_HEATMAP} * 也å¯ä½¿ç”¨{@link com.iailab.netsdk.lib.structure.EmptyStructure} * @param nWaitTime 超时时间 * @return */ public LLong CLIENT_AttachVideoStatHeatMap(LLong lLoginID, Pointer pInParam, Pointer pOutParam, int nWaitTime); /** * 获å–çƒå›¾æ•°æ®,pInParam与pOutParam内å˜ç”±ç”¨æˆ·ç”³è¯·é‡Šæ”¾ * @param lAttachHandle çƒåº¦å›¾è®¢é˜…å¥æŸ„ * @param pInParam å…¥å‚,对应结构体 {@link com.iailab.netsdk.lib.structure.NET_IN_GET_VIDEOSTAT_HEATMAP} * @param pOutParam 出å‚,对应结构体{@link com.iailab.netsdk.lib.structure.NET_OUT_GET_VIDEOSTAT_HEATMAP} * @param nWaitTime 超时时间 * @return */ public boolean CLIENT_GetVideoStatHeatMap(LLong lAttachHandle, Pointer pInParam, Pointer pOutParam, int nWaitTime); /** * å–消订阅çƒåº¦å›¾æ•°æ® * @param lAttachHandle 订阅å¥æŸ„ * @return */ public boolean CLIENT_DetachVideoStatHeatMap(LLong lAttachHandle); // /** * * @param lLoginID * @param pstInParam * * @param nWaitTime = NET_INTERFACE_DEFAULT_TIMEOUT * @return */ /** * è®¡ç®—ä¸¤å¼ äººè„¸å›¾ç‰‡çš„ç›¸ä¼¼åº¦faceRecognitionServer.matchTwoFace,pstInParam与pstOutParam内å˜ç”±ç”¨æˆ·ç”³è¯·é‡Šæ”¾ * @param lLoginID 登录å¥æŸ„ * @param pstInParam å…¥å‚ {@link com.iailab.netsdk.lib.structure.NET_MATCH_TWO_FACE_IN} * @param pstOutParam 出å‚{@link com.iailab.netsdk.lib.structure.NET_MATCH_TWO_FACE_OUT} * @param nWaitTime 接å£è¶…时时间,默认超时时间为3000 * @return */ public boolean CLIENT_MatchTwoFaceImage(LLong lLoginID, Pointer pstInParam, Pointer pstOutParam, int nWaitTime); /** * 设置相机å‚æ•°, pInParam å’ŒpOutParam 资æºç”±ç”¨æˆ·ç”³è¯·å’Œé‡Šæ”¾ * @param lLoginID 登录å¥æŸ„ * @param pInParam å…¥å‚ {@link com.iailab.netsdk.lib.structure.NET_IN_SET_CAMERA_CFG} * @param pOutParam 出å‚{@link com.iailab.netsdk.lib.structure.NET_OUT_SET_CAMERA_CFG} * @param nWaitTime * @return */ public boolean CLIENT_SetCameraCfg(LLong lLoginID, Pointer pInParam,Pointer pOutParam, int nWaitTime); /** * 获å–相机å‚æ•°, pInParam å’ŒpOutParam 资æºç”±ç”¨æˆ·ç”³è¯·å’Œé‡Šæ”¾ * @param lLoginID 登录å¥æŸ„ * @param pInParam å…¥å‚ {@link com.iailab.netsdk.lib.structure.NET_IN_GET_CAMERA_CFG} * @param pOutParam 出å‚{@link com.iailab.netsdk.lib.structure.NET_OUT_GET_CAMERA_CFG} * @param nWaitTime * @return */ public boolean CLIENT_GetCameraCfg(LLong lLoginID, Pointer pInParam,Pointer pOutParam, int nWaitTime); /** * 设置通é“å‚æ•°, pInParam å’ŒpOutParam 资æºç”±ç”¨æˆ·ç”³è¯·å’Œé‡Šæ”¾ * @param lLoginID 登录å¥æŸ„ * @param pInParam å…¥å‚ {@link com.iailab.netsdk.lib.structure.NET_IN_SET_CHANNEL_CFG} * @param pOutParam 出å‚{@link com.iailab.netsdk.lib.structure.NET_OUT_SET_CHANNEL_CFG} * @param nWaitTime * @return */ public boolean CLIENT_SetChannelCfg(LLong lLoginID, Pointer pInParam,Pointer pOutParam, int nWaitTime); /** * 获å–通é“å‚æ•°, pInParam å’ŒpOutParam 资æºç”±ç”¨æˆ·ç”³è¯·å’Œé‡Šæ”¾ * @param lLoginID 登录å¥æŸ„ * @param pInParam å…¥å‚ {@link com.iailab.netsdk.lib.structure.NET_IN_GET_CHANNEL_CFG} * @param pOutParam 出å‚{@link com.iailab.netsdk.lib.structure.NET_OUT_GET_CHANNEL_CFG} * @param nWaitTime * @return */ public boolean CLIENT_GetChannelCfg(LLong lLoginID, Pointer pInParam,Pointer pOutParam, int nWaitTime); /** * 订阅安全门报è¦ç»Ÿè®¡ä¿¡æ¯ * CLIENT_NET_API LLONG CALL_METHOD CLIENT_SecurityGateAttachAlarmStatistics(LLONG lLoginID, const NET_IN_SECURITYGATE_ATTACH_ALARM_STATISTICS* pInParam, NET_OUT_SECURITYGATE_ATTACH_ALARM_STATISTICS* pOutParam, int nWaitTime); * */ public LLong CLIENT_SecurityGateAttachAlarmStatistics(LLong lLoginID, Pointer pInParam, Pointer pOutParam, int nWaitTime); /** * 订阅X光机包裹数é‡ç»Ÿè®¡ä¿¡æ¯ CLIENT_NET_API LLONG CALL_METHOD CLIENT_XRayAttachPackageStatistics(LLONG lLoginID, const NET_IN_XRAY_ATTACH_PACKAGE_STATISTICS* pInParam, NET_OUT_XRAY_ATTACH_PACKAGE_STATISTICS* pOutParam, int nWaitTime); */ public LLong CLIENT_XRayAttachPackageStatistics(LLong lLoginID, Pointer pInParam, Pointer pOutParam, int nWaitTime); /** * å–消订阅X光机包裹数é‡ç»Ÿè®¡ä¿¡æ¯ * CLIENT_NET_API BOOL CALL_METHOD CLIENT_XRayDetachPackageStatistics(LLONG lAttachHandle); */ public boolean CLIENT_XRayDetachPackageStatistics(LLong lAttachHandle); /** * 交通ç¯ä¿¡å·æ£€æµ‹-获å–相机信æ¯, pInParam å’ŒpOutParam 资æºç”±ç”¨æˆ·ç”³è¯·å’Œé‡Šæ”¾ * @param lLoginID 登录å¥æŸ„ * @param pInParam å…¥å‚ {@link com.iailab.netsdk.lib.structure.NET_IN_GET_CAMERA_INFO} * @param pOutParam 出å‚{@link com.iailab.netsdk.lib.structure.NET_OUT_GET_CAMERA_INFO} * @param nWaitTime * @return */ public boolean CLIENT_GetCameraInfo(LLong lLoginID, Pointer pInParam, Pointer pOutParam, int nWaitTime); /** * 主动获å–æ¯ä¸ªçƒæˆåƒç‚¹çš„åƒç´ 温度 * @param lLoginID 登录å¥æŸ„ * @param pstInParam å…¥å‚ {@link com.iailab.netsdk.lib.structure.NET_IN_GET_HEATMAPS_INFO} * @param pstOutParam 出å‚{@link com.iailab.netsdk.lib.structure.NET_OUT_GET_HEATMAPS_INFO} * @param nWaitTime 接å£è¶…时时间,默认超时时间为 3000 * @return */ public boolean CLIENT_GetHeatMapsDirectly(LLong lLoginID, Pointer pstInParam, Pointer pstOutParam, int nWaitTime); /****************************************************************************** 功能æè¿° : é€ä¼ 扩展接å£,按é€ä¼ 类型走对应é€ä¼ æ–¹å¼æŽ¥å£ï¼Œç›®å‰æ”¯æŒF6纯é€ä¼ , åŒæ—¶å…¼å®¹CLIENT_TransmitInfoForWebæŽ¥å£ å‚数定义 : lLoginID: 登录接å£è¿”回的å¥æŸ„ pInParam: é€ä¼ 扩展接å£è¾“å…¥å‚æ•° pOutParam é€ä¼ 扩展接å£è¾“出å‚æ•° nWaittime 接å£è¶…时时间 è¿” 回 值 : BOOL TRUE :æˆåŠŸ; FALSE :失败 ******************************************************************************/ /** * * @param lLoginID * @param pInParam NET_IN_TRANSMIT_INFO * @param pOutParam NET_OUT_TRANSMIT_INFO * @return */ public boolean CLIENT_TransmitInfoForWebEx(LLong lLoginID, Pointer pInParam, Pointer pOutParam, int nWaittime); // CLIENT_TransmitInfoForWebEx输入å‚æ•° public static class NET_IN_TRANSMIT_INFO extends SdkStructure { public int dwSize; // 用户使用该结构体,dwSize需赋值为sizeof(NET_IN_TRANSMIT_INFO) public int emType; // é€ä¼ 类型,å‚考NET_TRANSMIT_INFO_TYPE public String szInJsonBuffer; // Json请求数æ®,用户申请空间 public int dwInJsonBufferSize; // Json请求数æ®é•¿åº¦ public Pointer szInBinBuffer; // 二进制请求数æ®ï¼Œç”¨æˆ·ç”³è¯·ç©ºé—´ public int dwInBinBufferSize; // 二进制请求数æ®é•¿åº¦ public int emEncryptType; // åŠ å¯†ç±»åž‹(å‚考EM_TRANSMIT_ENCRYPT_TYPE) public NET_IN_TRANSMIT_INFO() { this.dwSize = this.size(); }// æ¤ç»“æž„ä½“å¤§å° } // CLIENT_TransmitInfoForWebEx输出å‚æ•° public static class NET_OUT_TRANSMIT_INFO extends SdkStructure { public int dwSize; // 用户使用该结构体时,dwSize需赋值为sizeof(NET_OUT_TRANSMIT_INFO) public Pointer szOutBuffer; // 应ç”æ•°æ®ç¼“冲空间, 用户申请空间 public int dwOutBufferSize; // 应ç”æ•°æ®ç¼“冲空间长度 public int dwOutJsonLen; // Json应ç”æ•°æ®é•¿åº¦ public int dwOutBinLen; // 二进制应ç”æ•°æ®é•¿åº¦ public NET_OUT_TRANSMIT_INFO() { this.dwSize = this.size(); }// æ¤ç»“æž„ä½“å¤§å° } // é€ä¼ 类型 public static class NET_TRANSMIT_INFO_TYPE { public static final int NET_TRANSMIT_INFO_TYPE_DEFAULT=0; // 默认类型,å³CLIENT_TransmitInfoForWeb接å£çš„兼容é€ä¼ æ–¹å¼ public static final int NET_TRANSMIT_INFO_TYPE_F6=1; // F6纯é€ä¼ }; // é€ä¼ åŠ å¯†ç±»åž‹ public static class EM_TRANSMIT_ENCRYPT_TYPE { public static final int EM_TRANSMIT_ENCRYPT_TYPE_UNKNOWN = -1; // 未知 public static final int EM_TRANSMIT_ENCRYPT_TYPE_NORMAL= 0; // SDK内部自行确定是å¦åŠ 密,默认 public static final int EM_TRANSMIT_ENCRYPT_TYPE_MULTISEC= 1; // 设备支æŒåŠ 密的场景下,走multiSecåŠ å¯† public static final int EM_TRANSMIT_ENCRYPT_TYPE_BINARYSEC= 2; // 设备支æŒåŠ 密的场景下,走binarySecåŠ å¯†ï¼ŒäºŒè¿›åˆ¶éƒ¨åˆ†ä¸åŠ 密 } /** * 批é‡ä¸‹è½½æ–‡ä»¶,pstInParam与pstOutParam内å˜ç”±ç”¨æˆ·ç”³è¯·é‡Šæ”¾ * å…¥å‚ NET_IN_DOWNLOAD_MULTI_FILE å‡ºå‚ NET_OUT_DOWNLOAD_MULTI_FILE */ public boolean CLIENT_DownLoadMultiFile(LLong lLoginID, Pointer pstInParam, Pointer pstOutParam, int waittime); //JNA Callback方法定义,æ–线回调 public interface fMultiFileDownLoadPosCB extends Callback { public void invoke(LLong lDownLoadHandle, int dwID, int dwFileTotalSize, int dwDownLoadSize, int nError, Pointer dwUser, Pointer pReserved); } /** * 订阅摄åƒå¤´çŠ¶æ€,pstInParam与pstOutParam内å˜ç”±ç”¨æˆ·ç”³è¯·é‡Šæ”¾ * pstInParam->NET_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.iailab.netsdk.lib.structure.NET_IN_GET_DEVICE_AII_INFO} * @param pstOutParam 出å‚{@link com.iailab.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.iailab.netsdk.lib.structure.NET_IN_ATTACH_TRAFFICLIGHT_INFO} * @param pOutParam 出å‚{@link com.iailab.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.iailab.netsdk.lib.structure.NET_IN_RADAR_ALARMPOINTINFO} * @param pstOutParam å‡ºå‚ {@link com.iailab.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.iailab.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.iailab.netsdk.lib.structure.NET_IN_PTZ_STATUS_PROC} * @param pstOutParam 出å‚{@link com.iailab.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.iailab.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.iailab.netsdk.lib.structure.optimized.NET_IN_WM_GET_COLLECTIONS_V1} * param[out]pOutParam 接å£è¾“出å‚æ•°, 内å˜èµ„æºç”±ç”¨æˆ·ç”³è¯·å’Œé‡Šæ”¾ {@link com.iailab.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.iailab.netsdk.lib.structure.NET_IN_RADIOMETRY_CURRENTHOTCOLDSPOT_INFO} * @param pOutParam: å‚考{@link com.iailab.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.iailab.netsdk.lib.structure.NET_IN_SET_ZONE_ARMODE_INFO} * @param pstuOutParam: å‚考{@link com.iailab.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.iailab.netsdk.lib.structure.NET_IN_GET_ZONE_ARMODE_INFO} * @param pstuOutParam: å‚考{@link com.iailab.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.iailab.netsdk.lib.structure.NET_VEHICLE_INOUT_ANALYSE_PROC} * @param dwUser */ public void invoke(LLong lAttachHandle, Pointer pstuVehicleInOutAnalyseProc, Pointer dwUser); } /** * @param pstuInParam: å‚考{@link com.iailab.netsdk.lib.structure.NET_IN_ATTACH_TRAFFIC_FLOW_STAT_REAL_FLOW} * @param pstuOutParam: å‚考{@link com.iailab.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.iailab.netsdk.lib.structure.NET_IN_SET_BIND_MODE_INFO} * @param pstuOutParam: å‚考{@link com.iailab.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.iailab.netsdk.lib.structure.NET_IN_GET_BIND_MODE_INFO} * @param pstuOutParam: å‚考{@link com.iailab.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.iailab.netsdk.lib.structure.NET_IN_ATTACH_VIDEO_ANALYSE_TRACK_PROC} * @param pstOutParam: å‚考{@link com.iailab.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.iailab.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.iailab.netsdk.lib.structure.NET_IN_GET_GPS_STATUS_INFO} * @param pstuOutParam: å‚考{@link com.iailab.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.iailab.netsdk.lib.structure.NET_IN_PTZ_SET_ZOOM_VALUE} * @param pstuOutParam: å‚考{@link com.iailab.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.iailab.netsdk.lib.structure.NET_IN_SET_VTO_MANAGER_RELATION} * @param pstuOutParam: å‚考{@link com.iailab.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.iailab.netsdk.lib.structure.NET_IN_GET_VTO_MANAGER_RELATION} * @param pstuOutParam: å‚考{@link com.iailab.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.iailab.netsdk.lib.structure.NET_IN_ADD_SOFT_TOUR_POINT_INFO} * @param pstOutParam: å‚考{@link com.iailab.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.iailab.netsdk.lib.structure.NET_IN_REMOVE_SOFT_TOUR_POINT_INFO} * @param pstOutParam: å‚考{@link com.iailab.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.iailab.netsdk.lib.structure.NET_IN_INSERT_MULTI_TALK_DEV} * @param pstuOutParam: å‚考{@link com.iailab.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.iailab.netsdk.lib.structure.NET_IN_UPDATE_MULTI_TALK_DEV} * @param pstuOutParam: å‚考{@link com.iailab.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.iailab.netsdk.lib.structure.NET_IN_DO_FIND_TALK_DEV} * @param pstuOutParam: å‚考{@link com.iailab.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.iailab.netsdk.lib.structure.NET_IN_DOWNLOAD} * @param pstuOutParam: å‚考{@link com.iailab.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.iailab.netsdk.lib.structure.NET_IN_ATTACH_HYGROTHERMOGRAPH} * @param pstOutParam: å‚考{@link com.iailab.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.iailab.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); /** * 获å–设备点ä½ä¿¡æ¯ * @param lLoginID 登录返回ID * @param pInParam NET_IN_SCADA_GET_ATTRIBUTE_INFO * @param pOutParam NET_OUT_SCADA_GET_ATTRIBUTE_INFO * @param nWaitTime 超时时间 * @return */ public boolean CLIENT_SCADAGetAttributeInfo(LLong lLoginID, Pointer pInParam, Pointer pOutParam, int nWaitTime); }