package com.netsdk.demo.customize;
|
|
import com.netsdk.demo.util.CaseMenu;
|
import com.netsdk.lib.NetSDKLib;
|
import com.netsdk.lib.ToolKits;
|
import com.netsdk.lib.enumeration.*;
|
import com.netsdk.lib.structure.*;
|
import com.netsdk.lib.utils.Initialization;
|
import com.sun.jna.Pointer;
|
|
import java.io.File;
|
import java.io.UnsupportedEncodingException;
|
import java.util.Date;
|
import java.util.Objects;
|
import java.util.Scanner;
|
|
import static com.netsdk.lib.NetSDKLib.NET_MAX_DETECT_REGION_NUM;
|
import static com.netsdk.lib.NetSDKLib.EVENT_IVS_WORKCLOTHES_DETECT;
|
import static com.netsdk.lib.enumeration.EM_EVENT_TYPE.EVENT_IVS_TRAFFIC_VEHICLE_CLEANLINESS;
|
|
public class RealLoadPicExDemo extends Initialization {
|
|
|
int channel= -1;
|
|
NetSDKLib.LLong attachHandle=new NetSDKLib.LLong(0);
|
/**
|
* 订阅智能任务
|
*/
|
|
public NetSDKLib.LLong AttachEventRealLoadPic() {
|
// 先退订,设备不会对重复订阅作校验,重复订阅后会有重复的事件返回
|
if(attachHandle.longValue()!=0){
|
this.DetachEventRealLoadPic();
|
}
|
|
// 需要图片
|
int bNeedPicture = 1;
|
attachHandle = netSdk.CLIENT_RealLoadPictureEx(loginHandle, channel, EM_EVENT_TYPE.EVENT_IVS_ALL.getType(), bNeedPicture,
|
RealLoadPicExDemo.AnalyzerDataCB.getInstance(), null, null);
|
if (attachHandle.longValue() != 0) {
|
System.out.printf("Chn[%d] CLIENT_RealLoadPictureEx Success\n", channel);
|
} else {
|
System.out.printf("Chn[%d] CLIENT_RealLoadPictureEx Failed!LastError = %s\n", channel,
|
ToolKits.getErrorCode());
|
}
|
|
return attachHandle;
|
}
|
/**
|
* 报警事件(智能)回调
|
*/
|
private static class AnalyzerDataCB implements NetSDKLib.fAnalyzerDataCallBack {
|
private final File picturePath;
|
private static RealLoadPicExDemo.AnalyzerDataCB instance;
|
|
private AnalyzerDataCB() {
|
picturePath = new File("./AnalyzerPicture/");
|
if (!picturePath.exists()) {
|
picturePath.mkdirs();
|
}
|
}
|
|
public static RealLoadPicExDemo.AnalyzerDataCB getInstance() {
|
if (instance == null) {
|
instance = new RealLoadPicExDemo.AnalyzerDataCB();
|
}
|
return instance;
|
}
|
|
@Override
|
public int invoke(NetSDKLib.LLong lAnalyzerHandle, int dwAlarmType, Pointer pAlarmInfo, Pointer pBuffer, int dwBufSize,
|
Pointer dwUser, int nSequence, Pointer reserved) throws UnsupportedEncodingException {
|
if (lAnalyzerHandle == null || lAnalyzerHandle.longValue() == 0) {
|
return -1;
|
}
|
|
System.out.println("===================================EVENT RECEIVED=======================================");
|
// System.out.println(Objects.requireNonNull(EM_EVENT_IVS_TYPE.getEventType(dwAlarmType)).getDescription());
|
switch (Objects.requireNonNull(EM_EVENT_IVS_TYPE.getEventType(dwAlarmType))) {
|
case EVENT_IVS_TRAFFIC_THROW : {
|
System.out.println("交通抛洒物品事件, code = " + dwAlarmType);
|
|
DEV_EVENT_TRAFFIC_THROW_INFO msg = new DEV_EVENT_TRAFFIC_THROW_INFO();
|
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
// 通道号
|
int nChannelID = msg.nChannelID;
|
System.out.println("nChannelID:" + nChannelID);
|
//事件名称
|
byte[] szName = msg.szName;
|
System.out.println("szName:" + new String(szName));
|
//相对事件时间戳(单位是毫秒)
|
double pts = msg.PTS;
|
System.out.println("pts:" + new Date((long) pts));
|
//UTC时间
|
NET_TIME_EX UTC = msg.UTC;
|
System.out.println("UTC:" + UTC.toStringTime());
|
//事件id
|
int nEventID = msg.nEventID;
|
System.out.println("nEventID:" + nEventID);
|
//事件对应文件信息
|
NetSDKLib.NET_EVENT_FILE_INFO stuFileInfo = msg.stuFileInfo;
|
System.out.println("stuFileInfo:" + stuFileInfo.toString());
|
//图片分辨率
|
NetSDKLib.NET_RESOLUTION_INFO stuResolution = msg.stuResolution;
|
System.out.println("stuResolution:" + stuResolution.toString());
|
//图片
|
int picSizes = 0;
|
NetSDKLib.NET_PIC_INFO stPicInfo = msg.stuObject.stPicInfo;
|
System.out.println("stPicInfo:" + stPicInfo.toString());
|
//图片保存
|
if (stPicInfo != null && stPicInfo.dwFileLenth > 0) {
|
String picture = picturePath + "/" + System.currentTimeMillis() + "related_EVENT_IVS_TRAFFIC_THROW.jpg";
|
ToolKits.savePicture(pBuffer, stPicInfo.dwOffSet, stPicInfo.dwFileLenth, picture);
|
}
|
//抓图标志(按位),0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
|
int dwSnapFlagMask = msg.dwSnapFlagMask;
|
System.out.println("dwSnapFlagMask:" + dwSnapFlagMask);
|
//事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束
|
byte bEventAction = msg.bEventAction;
|
System.out.println("bEventAction:" + bEventAction);
|
//智能事件所属大类
|
int ClassType = msg.stuIntelliCommInfo.emClassType;
|
System.out.println("emClassType:" + EM_CLASS_TYPE.getNoteByValue(ClassType));
|
//对应车道号
|
int nLane = msg.nLane;
|
System.out.println("nLane:" + nLane);
|
break;
|
}
|
case EVENT_IVS_DREGS_UNCOVERED : {
|
System.out.println("渣土车未遮盖载货检测事件, code = " + dwAlarmType);
|
|
DEV_EVENT_DREGS_UNCOVERED_INFO msg = new DEV_EVENT_DREGS_UNCOVERED_INFO();
|
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
// 通道号
|
int nChannelID = msg.nChannelID;
|
System.out.println("nChannelID:" + nChannelID);
|
//事件名称
|
byte[] szName = msg.szName;
|
System.out.println("szName:" + new String(szName));
|
//相对事件时间戳(单位是毫秒)
|
double pts = msg.PTS;
|
System.out.println("pts:" + new Date((long) pts));
|
//UTC时间
|
NET_TIME_EX UTC = msg.UTC;
|
System.out.println("UTC:" + UTC.toStringTime());
|
//事件id
|
int nEventID = msg.nEventID;
|
System.out.println("nEventID:" + nEventID);
|
//智能事件所属大类
|
int ClassType = msg.emClassType;
|
System.out.println("emClassType:" + EM_CLASS_TYPE.getNoteByValue(ClassType));
|
//检测区域,[0,8191]
|
int nDetectRegionNum = msg.nDetectRegionNum;
|
System.out.println("nDetectRegionNum:" + nDetectRegionNum);
|
//事件对应文件信息
|
NetSDKLib.NET_POINT[] stuDetectRegion = msg.stuDetectRegion;
|
for(int i = 0; i < NET_MAX_DETECT_REGION_NUM; i ++){
|
System.out.println("stuDetectRegion[" + i + "]:" + stuDetectRegion[i].toString());
|
}
|
//渣土车车辆信息
|
DREGS_UNCOVERED_VEHICLE_INFO stuVehicleInfo = msg.stuVehicleInfo;
|
System.out.println("szPlateNumber:" + new String(stuVehicleInfo.szPlateNumber).trim());
|
System.out.println("stuBoundingBox:" + stuVehicleInfo.stuBoundingBox.toString());
|
//图片保存
|
if (pBuffer != null) {
|
String picture = picturePath + "/" + System.currentTimeMillis() + "related_EVENT_IVS_DREGS_UNCOVERED.jpg";
|
ToolKits.savePicture(pBuffer, 0, dwBufSize, picture);
|
}
|
break;
|
}
|
case EVENT_IVS_TRAFFIC_VEHICLE_CLEANLINESS : {
|
System.out.println("交通车辆清洁度检测事件检测, code = " + dwAlarmType);
|
|
DEV_EVENT_TRAFFIC_VEHICLE_CLEANLINESS_INFO msg = new DEV_EVENT_TRAFFIC_VEHICLE_CLEANLINESS_INFO();
|
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
// 通道号
|
int nChannelID = msg.nChannelID;
|
System.out.println("nChannelID:" + nChannelID);
|
//事件名称
|
byte[] szName = msg.szName;
|
System.out.println("szName:" + new String(szName).trim());
|
//相对事件时间戳(单位是毫秒)
|
double pts = msg.PTS;
|
System.out.println("pts:" + new Date((long) pts));
|
//UTC时间
|
NET_TIME_EX UTC = msg.UTC;
|
System.out.println("UTC:" + UTC.toStringTime());
|
//事件id
|
int nEventID = msg.nEventID;
|
System.out.println("nEventID:" + nEventID);
|
//事件id
|
int nRuleId = msg.nRuleId;
|
System.out.println("nRuleId:" + nRuleId);
|
|
//事件id
|
int objObjectID = msg.stuObject.nObjectID;
|
System.out.println("ObjObjectID:" + objObjectID);
|
|
//事件id
|
String objName = new String(msg.stuObject.szObjectType).trim();
|
System.out.println("objName:" + objName);
|
//图片
|
NetSDKLib.NET_PIC_INFO stPicInfo = msg.stuObject.stPicInfo;
|
// System.out.println("stPicInfo:" + stPicInfo.toString());
|
//图片保存
|
if (stPicInfo != null && stPicInfo.dwFileLenth > 0) {
|
String picture = picturePath + "/" + System.currentTimeMillis() + "related_EVENT_IVS_TRAFFIC_VEHICLE_CLEANLINESS.jpg";
|
System.out.println("Picture saved, the path is " + picture);
|
ToolKits.savePicture(pBuffer, stPicInfo.dwOffSet, stPicInfo.dwFileLenth, picture);
|
}
|
//图片
|
NetSDKLib.NET_PIC_INFO stPicInfo1 = msg.stuVehicle.stPicInfo;
|
// System.out.println("stPicInfo1:" + stPicInfo1.toString());
|
//图片保存
|
if (stPicInfo1 != null && stPicInfo1.dwFileLenth > 0) {
|
String picture = picturePath + "/" + System.currentTimeMillis() + "related_VehiclePic.jpg";
|
System.out.println("Picture saved, the path is " + picture);
|
ToolKits.savePicture(pBuffer, stPicInfo1.dwOffSet, stPicInfo1.dwFileLenth, picture);
|
}
|
//事件id
|
int emTriggerType = msg.emTriggerType;
|
System.out.println("emTriggerType:" + emTriggerType);
|
//事件id
|
int nCleanValue = msg.nCleanValue;
|
System.out.println("nCleanValue:" + nCleanValue);
|
break;
|
}
|
case EVENT_IVS_SCENE_CHANGE : {
|
System.out.println("场景变更事件, code = " + dwAlarmType);
|
|
DEV_ALRAM_SCENECHANGE_INFO msg = new DEV_ALRAM_SCENECHANGE_INFO();
|
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
// 通道号
|
System.out.println("nChannelID:" + msg.nChannelID);
|
// 持续型事件动作
|
System.out.println("nEventAction:" + msg.nEventAction);
|
// 时间戳
|
System.out.println("dbPTS:" + msg.dbPTS);
|
// 事件发生的时间
|
System.out.println("stuUTC:" + msg.stuUTC.toStringTime());
|
// 事件ID
|
System.out.println("nEventID:" + msg.nEventID);
|
// 图片的序号
|
System.out.println("byImageIndex:" + msg.byImageIndex);
|
// 抓图标志
|
System.out.println("dwSnapFlagMask:" + msg.dwSnapFlagMask);
|
//图片保存
|
if (msg != null) {
|
String picture = picturePath + "/" + System.currentTimeMillis() + "related_SceneChange.jpg";
|
System.out.println("Picture saved, the path is " + picture);
|
ToolKits.savePicture(pBuffer, dwBufSize, picture);
|
}
|
break;
|
}
|
case EVENT_IVS_TRAFFIC_FLOWSTATE : {
|
System.out.println("交通流量事件, code = " + dwAlarmType);
|
|
NetSDKLib.DEV_EVENT_TRAFFIC_FLOW_STATE msg = new NetSDKLib.DEV_EVENT_TRAFFIC_FLOW_STATE();
|
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
// 通道号
|
int nChannelID = msg.nChannelID;
|
System.out.println("nChannelID:" + nChannelID);
|
//事件名称
|
byte[] szName = msg.szName;
|
System.out.println("szName:" + new String(szName).trim());
|
// 规则编号
|
int nRuleID = msg.nRuleID;
|
System.out.println("nRuleID:" + nRuleID);
|
//相对事件时间戳(单位是毫秒)
|
double pts = msg.PTS;
|
System.out.println("pts:" + new Date((long) pts));
|
//UTC时间
|
NetSDKLib.NET_TIME_EX UTC = msg.UTC;
|
System.out.println("UTC:" + UTC.toStringTime());
|
//事件id
|
int nEventID = msg.nEventID;
|
System.out.println("nEventID:" + nEventID);
|
//序号
|
int Sequence = msg.nSequence;
|
System.out.println("nSequence:" + Sequence);
|
//流量状态数量
|
int nStateNum = msg.nStateNum;
|
System.out.println("nStateNum:" + nStateNum);
|
//流量状态
|
for(int i = 0; i < nStateNum; i ++){
|
System.out.println("stuStates[" + i + "]:" + msg.stuStates[i].toString());
|
}
|
//该事件触发的预置点
|
int nPresetID = msg.stuIntelliCommInfo.nPresetID;
|
System.out.println("nPresetID:" + nPresetID);
|
//智能事件所属大类
|
String emClassType = EM_CLASS_TYPE.getNoteByValue(msg.stuIntelliCommInfo.emClassType);
|
System.out.println("emClassType:" + emClassType);
|
//流量状态数量
|
int nStopVehiclenum = msg.nStopVehiclenum;
|
System.out.println("nStopVehiclenum:" + nStopVehiclenum);
|
//流量状态数量
|
int nDetectionAreaVehicleNum = msg.nDetectionAreaVehicleNum;
|
System.out.println("nDetectionAreaVehicleNum:" + nDetectionAreaVehicleNum);
|
//溢出状态
|
for(int i = 0; i < msg.nStateNum; i ++){
|
int emOverflowState = msg.stuStates[i].emOverflowState;
|
System.out.println("emOverflowState[" + i + "]:" + NET_EM_OVER_FLOW_STATE.getNoteByValue(emOverflowState));
|
}
|
//图片保存
|
if (msg != null) {
|
String picture = picturePath + "/" + System.currentTimeMillis() + "related_TrafficFlowState.jpg";
|
System.out.println("Picture saved, the path is " + picture);
|
ToolKits.savePicture(pBuffer, dwBufSize, picture);
|
}
|
break;
|
}
|
case EVENT_IVS_HELMET_DETECTION : {
|
System.out.println("安全帽检测事件, code = " + dwAlarmType);
|
|
DEV_EVENT_HELMET_DETECTION_INFO msg = new DEV_EVENT_HELMET_DETECTION_INFO();
|
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
// 通道号
|
int nChannelID = msg.nChannelID;
|
System.out.println("nChannelID:" + nChannelID);
|
// 动作
|
int nAction = msg.nAction;
|
System.out.println("nAction:" + nAction);
|
//事件名称
|
byte[] szName = msg.szName;
|
System.out.println("szName UTF-8:" + new String(szName,"UTF-8").trim());
|
System.out.println("szName GBK:" + new String(szName,"GBK").trim());
|
//相对事件时间戳(单位是毫秒)
|
double pts = msg.PTS;
|
System.out.println("pts:" + new Date((long) pts));
|
//UTC时间
|
NET_TIME_EX UTC = msg.UTC;
|
System.out.println("UTC:" + UTC.toStringTime());
|
//事件类型
|
String emClassType = EM_CLASS_TYPE.getNoteByValue(msg.emClassType);
|
System.out.println("emClassType:" + emClassType);
|
//事件id
|
int nEventID = msg.nEventID;
|
System.out.println("nEventID:" + nEventID);
|
//规则编号
|
int nRuleID = msg.nRuleID;
|
System.out.println("nRuleID:" + nRuleID);
|
//目标ID
|
int nObjectID = msg.nObjectID;
|
System.out.println("nObjectID:" + nObjectID);
|
//触发事件类型
|
String emHelmetEventType = EM_HELMET_EVENT_TYPE.getNoteByValue(msg.emHelmetEventType);
|
System.out.println("emHelmetEventType:" + emHelmetEventType);
|
//事件对应文件信息
|
NetSDKLib.NET_EVENT_FILE_INFO stuFileInfo = msg.stuFileInfo;
|
System.out.println("stuFileInfo:" + stuFileInfo.toString());
|
//图片保存
|
if (msg != null) {
|
String picture = picturePath + "/" + System.currentTimeMillis() + "related_HelmetHuman" + msg.stuHumanImage.nIndexInData + ".jpg";
|
System.out.println("Picture saved, the path is " + picture);
|
ToolKits.savePicture(pBuffer, msg.stuHumanImage.nOffSet, msg.stuHumanImage.nLength , picture);
|
}
|
//图片保存
|
if (msg != null) {
|
String picture = picturePath + "/" + System.currentTimeMillis() + "related_HelmetScene" + msg.stuSceneImage.nIndexInData + ".jpg";
|
System.out.println("Picture saved, the path is " + picture);
|
ToolKits.savePicture(pBuffer, msg.stuSceneImage.nOffSet, msg.stuSceneImage.nLength , picture);
|
}
|
break;
|
}
|
case EVENT_IVS_WORKSTATDETECTION : {
|
System.out.println("作业统计事件, code = " + dwAlarmType);
|
|
DEV_EVENT_WORKSTATDETECTION_INFO msg = new DEV_EVENT_WORKSTATDETECTION_INFO();
|
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
// 通道号
|
int nChannelID = msg.nChannelID;
|
System.out.println("nChannelID:" + nChannelID);
|
// 动作
|
int nAction = msg.nAction;
|
System.out.println("nAction:" + nAction);
|
//事件名称
|
byte[] szName = msg.szName;
|
System.out.println("szName UTF-8:" + new String(szName,"UTF-8").trim());
|
System.out.println("szName GBK:" + new String(szName,"GBK").trim());
|
//相对事件时间戳(单位是毫秒)
|
double pts = msg.PTS;
|
System.out.println("pts:" + new Date((long) pts));
|
//UTC时间
|
NET_TIME_EX UTC = msg.UTC;
|
System.out.println("UTC:" + UTC.toStringTime());
|
//事件类型
|
String emClassType = EM_CLASS_TYPE.getNoteByValue(msg.emClassType);
|
System.out.println("emClassType:" + emClassType);
|
//事件id
|
int nEventID = msg.nEventID;
|
System.out.println("nEventID:" + nEventID);
|
//规则编号
|
int nRuleID = msg.nRuleID;
|
System.out.println("nRuleID:" + nRuleID);
|
//目标ID
|
int nObjectID = msg.nObjectID;
|
System.out.println("nObjectID:" + nObjectID);
|
//作业行为状态个数
|
int nWorkActionNum = msg.nWorkActionNum;
|
System.out.println("nWorkActionNum:" + nWorkActionNum);
|
//作业行为状态信息
|
for(int i = 0; i < nWorkActionNum; i ++){
|
System.out.println("emWorkAction[" + i + "]:" + EM_WORKACTION_STATE.getNoteByValue(msg.emWorkAction[i]));
|
}
|
//触发事件类型
|
String emRuleType = EM_WORKSTATDETECTION_TYPE.getNoteByValue(msg.emRuleType);
|
System.out.println("emRuleType:" + emRuleType);
|
//图片保存
|
if (msg != null) {
|
String picture = picturePath + "/" + System.currentTimeMillis() + "related_WorkStateScene" + msg.stuSceneImage.nIndexInData + ".jpg";
|
System.out.println("Picture saved, the path is " + picture);
|
ToolKits.savePicture(pBuffer, msg.stuSceneImage.nOffSet, msg.stuSceneImage.nLength , picture);
|
}
|
break;
|
}
|
case EVENT_IVS_FACERECOGNITION: // 目标识别事件
|
{
|
System.out.println("目标识别事件, code = " + dwAlarmType);
|
NetSDKLib.DEV_EVENT_FACERECOGNITION_INFO msg = new NetSDKLib.DEV_EVENT_FACERECOGNITION_INFO();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
System.out.println("szVideoPath : " + new String(msg.szVideoPath).trim() + "\n" );
|
break;
|
|
}
|
case EVENT_IVS_NUMBERSTAT: ///< 数量统计事件
|
{
|
System.out.println("数量统计事件, code = " + dwAlarmType);
|
DEV_EVENT_NUMBERSTAT_INFO msg = new DEV_EVENT_NUMBERSTAT_INFO();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
// 通道号
|
int nChannelID = msg.nChannelID;
|
System.out.println("nChannelID:" + nChannelID);
|
// 动作
|
int nNumber = msg.nNumber;
|
System.out.println("nNumber:" + nNumber);
|
// 动作
|
int nEnteredNumber = msg.nEnteredNumber;
|
System.out.println("nEnteredNumber:" + nEnteredNumber);
|
// 动作
|
int nExitedNumber = msg.nExitedNumber;
|
System.out.println("nExitedNumber:" + nExitedNumber);
|
// 动作
|
int emType = msg.emType;
|
System.out.println("emType:" + emType + "," + EM_NUMBER_STAT_TYPE.getNoteByValue(emType));
|
//事件名称
|
byte[] szName = msg.szName;
|
System.out.println("szName UTF-8:" + new String(szName,"UTF-8").trim());
|
System.out.println("szName GBK:" + new String(szName,"GBK").trim());
|
//相对事件时间戳(单位是毫秒)
|
double pts = msg.PTS;
|
System.out.println("pts:" + new Date((long) pts));
|
//事件id
|
int nEventID = msg.nEventID;
|
System.out.println("nEventID:" + nEventID);
|
// NET_IMAGE_INFO_EX2 pstuImageInfo = new NET_IMAGE_INFO_EX2();
|
// ToolKits.GetPointerDataToStruct(msg.pstuImageInfo, 0, pstuImageInfo);
|
// System.out.println("pstuImageInfo.nOffset:" + pstuImageInfo.nOffset);
|
// System.out.println("pstuImageInfo.nLength:" + pstuImageInfo.nLength);
|
if (pBuffer != null && dwBufSize > 0) {
|
System.out.println("basic picture received!");
|
String bigPicture = picturePath + "\\" + System.currentTimeMillis() + "related_NumberStat_basic" + ".jpg";
|
ToolKits.savePicture(pBuffer, dwBufSize, bigPicture);
|
}
|
// if (pstuImageInfo != null && pstuImageInfo.nLength > 0) {
|
// System.out.println("pstuImageInfo picture received!");
|
// String bigPicture = picturePath + "\\" + System.currentTimeMillis() + "related_NumberStat_pstuImageInfo" + ".jpg";
|
// ToolKits.savePicture(pBuffer, pstuImageInfo.nOffset, pstuImageInfo.nLength, bigPicture);
|
// }
|
break;
|
}
|
case EVENT_IVS_TRAFFIC_NONMOTOR: // 交通非机动车事件检测
|
{
|
System.out.println("交通非机动车事件检测, code = " + dwAlarmType);
|
DEV_EVENT_TRAFFIC_NONMOTOR_INFO msg = new DEV_EVENT_TRAFFIC_NONMOTOR_INFO();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
// 通道号
|
int nChannelID = msg.nChannelID;
|
System.out.println("nChannelID:" + nChannelID);
|
// 动作
|
int nAction = msg.nAction;
|
System.out.println("nAction:" + nAction);
|
// 规则
|
int nRuleId = msg.nRuleId;
|
System.out.println("nRuleId:" + nRuleId);
|
// 触发方式
|
int emTriggerType = msg.emTriggerType;
|
System.out.println("emTriggerType:" + emTriggerType + "," + EM_TRIGGER_TYPE.getNoteByValue(emTriggerType));
|
//事件名称
|
byte[] szName = msg.szName;
|
System.out.println("szName UTF-8:" + new String(szName,"UTF-8").trim());
|
System.out.println("szName GBK:" + new String(szName,"GBK").trim());
|
//相对事件时间戳(单位是毫秒)
|
double pts = msg.PTS;
|
System.out.println("pts:" + new Date((long) pts));
|
//事件id
|
int nEventID = msg.nEventID;
|
System.out.println("nEventID:" + nEventID);
|
//图片保存
|
if (pBuffer != null && dwBufSize > 0) {
|
System.out.println("basic picture received!");
|
String bigPicture = picturePath + "\\" + System.currentTimeMillis() + "related_TrafficNoMotor_basic" + ".jpg";
|
ToolKits.savePicture(pBuffer, dwBufSize, bigPicture);
|
}
|
if (pBuffer != null && dwBufSize > 0 && msg.stuNonMotor.stuSceneImage.nLength > 0) {
|
System.out.println("Scene picture received!");
|
String scenePicture = picturePath + "\\" + System.currentTimeMillis() + "related_TrafficNoMotor_scene" + ".jpg";
|
ToolKits.savePicture(pBuffer, msg.stuNonMotor.stuSceneImage.nOffSet, msg.stuNonMotor.stuSceneImage.nLength , scenePicture);
|
}
|
if (pBuffer != null && dwBufSize > 0 && msg.stuNonMotor.stuFaceSceneImage.nLength > 0) {
|
System.out.println("face picture received!");
|
String facePicture = picturePath + "\\" + System.currentTimeMillis() + "related_TrafficNoMotor_face" + ".jpg";
|
ToolKits.savePicture(pBuffer, msg.stuNonMotor.stuFaceSceneImage.nOffSet, msg.stuNonMotor.stuFaceSceneImage.nLength , facePicture);
|
}
|
//图片保存
|
if (pBuffer != null && dwBufSize > 0 && msg.stuCommInfo.nPictureNum > 0) {
|
System.out.println(msg.stuCommInfo.nPictureNum + " pictures received!");
|
for(int i = 0; i < msg.stuCommInfo.nPictureNum; i ++){
|
String bigPicture = picturePath + "\\" + System.currentTimeMillis() + "related_TrafficJam_common_" + i + ".jpg";
|
ToolKits.savePicture(pBuffer, msg.stuCommInfo.stuPicInfos[i].nOffset, msg.stuCommInfo.stuPicInfos[i].nLength, bigPicture);
|
}
|
}
|
break;
|
}
|
case EVENT_IVS_TRAFFICJAM: /// 交通拥堵
|
{
|
System.out.println("交通拥堵事件, code = " + dwAlarmType);
|
NetSDKLib.DEV_EVENT_TRAFFICJAM_INFO msg = new NetSDKLib.DEV_EVENT_TRAFFICJAM_INFO();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
// 通道号
|
int nChannelID = msg.nChannelID;
|
System.out.println("nChannelID:" + nChannelID);
|
// 车道号
|
int nLane = msg.nLane;
|
System.out.println("nLane:" + nLane);
|
// 报警时间间隔
|
int nAlarmIntervalTime = msg.nAlarmIntervalTime;
|
System.out.println("nAlarmIntervalTime:" + nAlarmIntervalTime);
|
//事件名称
|
byte[] szName = msg.szName;
|
System.out.println("szName UTF-8:" + new String(szName,"UTF-8").trim());
|
System.out.println("szName GBK:" + new String(szName,"GBK").trim());
|
//相对事件时间戳(单位是毫秒)
|
double pts = msg.PTS;
|
System.out.println("pts:" + new Date((long) pts));
|
//事件id
|
int nEventID = msg.nEventID;
|
System.out.println("nEventID:" + nEventID);
|
//图片保存
|
if (pBuffer != null && dwBufSize > 0 && msg.stCommInfo.nPictureNum > 0) {
|
System.out.println(msg.stCommInfo.nPictureNum + " pictures received!");
|
for(int i = 0; i < msg.stCommInfo.nPictureNum; i ++){
|
String bigPicture = picturePath + "\\" + System.currentTimeMillis() + "related_TrafficJam_common_" + i + ".jpg";
|
ToolKits.savePicture(pBuffer, msg.stCommInfo.stuPicInfos[i].nOffset, msg.stCommInfo.stuPicInfos[i].nLength, bigPicture);
|
}
|
}
|
//交通车辆信息扩展
|
NET_TRAFFICCAR_INFO_EXTERN stInfo = new NET_TRAFFICCAR_INFO_EXTERN();
|
ToolKits.GetPointerData(msg.stTrafficCar.pTrafficInfoExtern,stInfo);
|
System.out.println("stInfo.bAverageSpeed = " + stInfo.bAverageSpeed);
|
System.out.println("stInfo.bSpaceOcpRatio = " + stInfo.bSpaceOcpRatio);
|
System.out.println("stInfo.dAverageSpeed = " + stInfo.dAverageSpeed);
|
System.out.println("stInfo.dSpaceOcpRatio = " + stInfo.dSpaceOcpRatio);
|
System.out.println("stInfo.nContainerNumber = " + stInfo.nContainerNumber);
|
System.out.println("stInfo.nContainerTextNum = " + stInfo.nContainerTextNum);
|
for(int i = 0; i < stInfo.nContainerTextNum; i ++){
|
byte[] tmp = new byte[64];
|
System.arraycopy(stInfo.szContainerText, i * 64, stInfo.nContainerTextNum, 0, 64);
|
String text = new String(tmp).trim();
|
System.out.println("stInfo.nContainerTextNum[" + i + "] = " + text);
|
}
|
break;
|
}
|
case EVENT_IVS_TRAFFIC_REAREND_ACCIDENT: // 交通事故事件
|
{
|
System.out.println("交通事故事件, code = " + dwAlarmType);
|
DEV_EVENT_TRAFFIC_REAREND_ACCIDENT_INFO msg = new DEV_EVENT_TRAFFIC_REAREND_ACCIDENT_INFO();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
// 通道号
|
int nChannelID = msg.nChannelID;
|
System.out.println("nChannelID:" + nChannelID);
|
// 动作
|
int nAction = msg.nAction;
|
System.out.println("nAction:" + nAction);
|
// 车道号
|
int nLaneID = msg.nLaneID;
|
System.out.println("nLaneID:" + nLaneID);
|
// 抓拍过程
|
int emCaptureProcess = msg.emCaptureProcess;
|
System.out.println("emCaptureProcess:" + emCaptureProcess + "," + EM_CAPTURE_PROCESS_END_TYPE.getNoteByValue(emCaptureProcess));
|
//事件名称
|
byte[] szName = msg.szName;
|
System.out.println("szName UTF-8:" + new String(szName,"UTF-8").trim());
|
System.out.println("szName GBK:" + new String(szName,"GBK").trim());
|
//相对事件时间戳(单位是毫秒)
|
double pts = msg.PTS;
|
System.out.println("pts:" + new Date((long) pts));
|
//事件id
|
int nEventID = msg.nEventID;
|
System.out.println("nEventID:" + nEventID);
|
//图片保存
|
if (pBuffer != null && dwBufSize > 0 && msg.stuCommInfo.nPictureNum > 0) {
|
System.out.println(msg.stuCommInfo.nPictureNum + " pictures received!");
|
for(int i = 0; i < msg.stuCommInfo.nPictureNum; i ++){
|
String bigPicture = picturePath + "\\" + System.currentTimeMillis() + "related_TrafficAccident_common_" + i + ".jpg";
|
ToolKits.savePicture(pBuffer, msg.stuCommInfo.stuPicInfos[i].nOffset, msg.stuCommInfo.stuPicInfos[i].nLength, bigPicture);
|
}
|
}
|
break;
|
|
}
|
case EVENT_IVS_TRAFFIC_VISIBILITY: // 交通能见度事件检测
|
{
|
System.out.println("交通能见度事件检测, code = " + dwAlarmType);
|
DEV_EVENT_TRAFFIC_VISIBILITY_INFO msg = new DEV_EVENT_TRAFFIC_VISIBILITY_INFO();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
// 通道号
|
int nChannelID = msg.nChannelID;
|
System.out.println("nChannelID:" + nChannelID);
|
// 动作
|
int nAction = msg.nAction;
|
System.out.println("nAction:" + nAction);
|
// 规则
|
int nRuleId = msg.nRuleId;
|
System.out.println("nRuleId:" + nRuleId);
|
// 能见程度
|
int nVisibility = msg.nVisibility;
|
System.out.println("nVisibility:" + nVisibility);
|
// 触发方式
|
int emTriggerType = msg.emTriggerType;
|
System.out.println("emTriggerType:" + emTriggerType + "," + EM_TRIGGER_TYPE.getNoteByValue(emTriggerType));
|
//事件名称
|
byte[] szName = msg.szName;
|
System.out.println("szName UTF-8:" + new String(szName,"UTF-8").trim());
|
System.out.println("szName GBK:" + new String(szName,"GBK").trim());
|
//相对事件时间戳(单位是毫秒)
|
double pts = msg.PTS;
|
System.out.println("pts:" + new Date((long) pts));
|
//事件id
|
int nEventID = msg.nEventID;
|
System.out.println("nEventID:" + nEventID);
|
//图片保存
|
if (pBuffer != null && dwBufSize > 0 && msg.stuCommInfo.nPictureNum > 0) {
|
System.out.println(msg.stuCommInfo.nPictureNum + " pictures received!");
|
for(int i = 0; i < msg.stuCommInfo.nPictureNum; i ++){
|
String bigPicture = picturePath + "\\" + System.currentTimeMillis() + "related_TrafficAccident_common_" + i + ".jpg";
|
ToolKits.savePicture(pBuffer, msg.stuCommInfo.stuPicInfos[i].nOffset, msg.stuCommInfo.stuPicInfos[i].nLength, bigPicture);
|
}
|
}
|
break;
|
|
}
|
case EVENT_IVS_TRAFFIC_VEHICLE_IN_EMERGENCY_LANE: // 占用应急车道事件
|
{
|
System.out.println("占用应急车道事件, code = " + dwAlarmType);
|
DEV_EVENT_TRAFFIC_VEHICLE_IN_EMERGENCY_LANE_INFO msg = new DEV_EVENT_TRAFFIC_VEHICLE_IN_EMERGENCY_LANE_INFO ();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
// 通道号
|
int nChannelID = msg.nChannelID;
|
System.out.println("nChannelID:" + nChannelID);
|
// 动作
|
int nAction = msg.nAction;
|
System.out.println("nAction:" + nAction);
|
//事件名称
|
byte[] szName = msg.szName;
|
System.out.println("szName UTF-8:" + new String(szName,"UTF-8").trim());
|
System.out.println("szName GBK:" + new String(szName,"GBK").trim());
|
//相对事件时间戳(单位是毫秒)
|
double pts = msg.PTS;
|
System.out.println("pts:" + new Date((long) pts));
|
//事件id
|
int nEventID = msg.nEventID;
|
System.out.println("nEventID:" + nEventID);
|
//图片保存
|
if (pBuffer != null && dwBufSize > 0 && msg.stuCommInfo.nPictureNum > 0) {
|
System.out.println(msg.stuCommInfo.nPictureNum + " pictures received!");
|
for(int i = 0; i < msg.stuCommInfo.nPictureNum; i ++){
|
String bigPicture = picturePath + "\\" + System.currentTimeMillis() + "related_VehicleInEmergency_common_" + i + ".jpg";
|
ToolKits.savePicture(pBuffer, msg.stuCommInfo.stuPicInfos[i].nOffset, msg.stuCommInfo.stuPicInfos[i].nLength, bigPicture);
|
}
|
}
|
break;
|
|
}
|
case EVENT_IVS_TRAFFIC_SPECIAL_VEHICLE_DETECT: // 交通能见度事件检测
|
{
|
System.out.println("特殊车辆检测, code = " + dwAlarmType);
|
DEV_EVENT_TRAFFIC_SPECIAL_VEHICLE_INFO msg = new DEV_EVENT_TRAFFIC_SPECIAL_VEHICLE_INFO ();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
// 通道号
|
int nChannelID = msg.nChannelID;
|
System.out.println("nChannelID:" + nChannelID);
|
// 动作
|
int nAction = msg.nAction;
|
System.out.println("nAction:" + nAction);
|
// 规则
|
int nRuleId = msg.nRuleId;
|
System.out.println("nRuleId:" + nRuleId);
|
// 触发方式
|
int emTriggerType = msg.emTriggerType;
|
System.out.println("emTriggerType:" + emTriggerType + "," + EM_TRIGGER_TYPE.getNoteByValue(emTriggerType));
|
//事件名称
|
byte[] szName = msg.szName;
|
System.out.println("szName UTF-8:" + new String(szName,"UTF-8").trim());
|
System.out.println("szName GBK:" + new String(szName,"GBK").trim());
|
//相对事件时间戳(单位是毫秒)
|
double pts = msg.PTS;
|
System.out.println("pts:" + new Date((long) pts));
|
//事件id
|
int nEventID = msg.nEventID;
|
System.out.println("nEventID:" + nEventID);
|
//图片保存
|
if (pBuffer != null && dwBufSize > 0 && msg.stuCommInfo.nPictureNum > 0) {
|
System.out.println(msg.stuCommInfo.nPictureNum + " pictures received!");
|
for(int i = 0; i < msg.stuCommInfo.nPictureNum; i ++){
|
String bigPicture = picturePath + "\\" + System.currentTimeMillis() + "related_SpecialVehicleDetect_common_" + i + ".jpg";
|
ToolKits.savePicture(pBuffer, msg.stuCommInfo.stuPicInfos[i].nOffset, msg.stuCommInfo.stuPicInfos[i].nLength, bigPicture);
|
}
|
}
|
break;
|
|
}
|
case EVENT_IVS_TRAFFIC_PARKING: // 停车检测
|
{
|
System.out.println("停车检测, code = " + dwAlarmType);
|
break;
|
}
|
case EVENT_IVS_TRAFFIC_PEDESTRAIN: // 行人检测
|
{
|
System.out.println("行人检测, code = " + dwAlarmType);
|
break;
|
}
|
case EVENT_IVS_CROSSREGIONDETECTION: // 区域入侵
|
{
|
System.out.println("区域入侵, code = " + dwAlarmType);
|
break;
|
}
|
case EVENT_IVS_TRAFFIC_CROSSLANE: // 违章变道
|
{
|
System.out.println("违章变道, code = " + dwAlarmType);
|
break;
|
}
|
case EVENT_IVS_TRAFFIC_RETROGRADE: // 逆行检测
|
{
|
System.out.println("逆行检测, code = " + dwAlarmType);
|
break;
|
}
|
case EVENT_IVS_TRAFFIC_BACKING: // 倒车检测
|
{
|
System.out.println("倒车检测, code = " + dwAlarmType);
|
break;
|
}
|
case EVENT_IVS_TRAFFIC_ROAD_CONSTRUCTION: // 施工检测
|
{
|
System.out.println("施工检测, code = " + dwAlarmType);
|
break;
|
}
|
case EVENT_IVS_TRAFFIC_ROAD_BLOCK: // 路障检测
|
{
|
System.out.println("路障检测, code = " + dwAlarmType);
|
break;
|
}
|
case EVENT_IVS_SMOKEDETECTION: {// 烟雾报警事件(对应 DEV_EVENT_SMOKE_INFO)
|
DEV_EVENT_SMOKE_INFO msg = new DEV_EVENT_SMOKE_INFO();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
// 全景广角图
|
if (msg.stuSceneImage != null && msg.stuSceneImage.nLength > 0) {
|
String bigPicture = picturePath + "\\" + "EVENT_IVS_SMOKEDETECTION" + System.currentTimeMillis()
|
+ ".jpg";
|
ToolKits.savePicture(pBuffer, msg.stuSceneImage.nOffSet, msg.stuSceneImage.nLength, bigPicture);
|
}
|
System.out.println(" 烟雾报警事件 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID + " 开始时间:"
|
+ msg.stuObject.stuStartTime + " 结束时间:" + msg.stuObject.stuEndTime + " 事件ID:" + msg.nEventID);
|
break;
|
}
|
case EVENT_IVS_FIREDETECTION: {// 火警事件(对应 DEV_EVENT_FIRE_INFO)
|
DEV_EVENT_FIRE_INFO msg = new DEV_EVENT_FIRE_INFO();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
// 全景广角图
|
if (msg.stuSceneImage != null && msg.stuSceneImage.nLength > 0) {
|
String bigPicture = picturePath + "\\" + "EVENT_IVS_FIREDETECTION" + System.currentTimeMillis()
|
+ ".jpg";
|
ToolKits.savePicture(pBuffer, msg.stuSceneImage.nOffSet, msg.stuSceneImage.nLength, bigPicture);
|
}
|
System.out.println(" 火警事件 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID + " 开始时间:"
|
+ msg.stuObject.stuStartTime + " 结束时间:" + msg.stuObject.stuEndTime + " 事件ID:" + msg.nEventID
|
+ " 抓拍过程:" + msg.emCaptureProcess);
|
break;
|
}
|
case EVENT_IVS_MAN_NUM_DETECTION: ///< 立体视觉区域内人数统计事件
|
{
|
NetSDKLib.DEV_EVENT_MANNUM_DETECTION_INFO msg = new NetSDKLib.DEV_EVENT_MANNUM_DETECTION_INFO();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
System.out.println(" 立体视觉区域内人数统计事件 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID +
|
" 区域人员列表数量:" + msg.nManListCount + " 人员身高:" + msg.stuManList[0].nStature);
|
break;
|
}
|
case EVENT_IVS_LEFTDETECTION: ///< 物品遗留事件
|
{
|
NetSDKLib.DEV_EVENT_LEFT_INFO msg = new NetSDKLib.DEV_EVENT_LEFT_INFO();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
System.out.println("物品遗留事件 时间(UTC):" + msg.UTC + " 开始时间:" + msg.stuObject.stuStartTime + " 结束时间:" + msg.stuObject.stuEndTime
|
+ " 事件触发的预置点号:" + msg.nPreserID + " 事件触发的预置名称:" + new String(msg.szPresetName));
|
break;
|
}
|
case EVENT_IVS_TAKENAWAYDETECTION: ///< 物品搬移事件
|
{
|
NetSDKLib.DEV_EVENT_TAKENAWAYDETECTION_INFO msg = new NetSDKLib.DEV_EVENT_TAKENAWAYDETECTION_INFO();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
System.out.println("物品搬移事件 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID + " 开始时间:" + msg.stuObject.stuStartTime + " 结束时间:" + msg.stuObject.stuEndTime
|
+ " 事件触发的预置点号:" + msg.nPreserID + " 事件触发的预置名称:" + new String(msg.szPresetName));
|
break;
|
}
|
case EVENT_IVS_TRAFFIC_MANUALSNAP: ///< 交通手动抓图事件
|
{
|
NetSDKLib.DEV_EVENT_TRAFFIC_MANUALSNAP_INFO msg = new NetSDKLib.DEV_EVENT_TRAFFIC_MANUALSNAP_INFO();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
System.out.println("交通手动抓图事件 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID + " 开始时间:" + msg.stuObject.stuStartTime + " 结束时间:" + msg.stuObject.stuEndTime
|
+ " 事件名称:" + msg.szName);
|
System.out.println("停车位数据信息个数:" + msg.nParkingInfoNum);
|
for(int i = 0; i < msg.nParkingInfoNum; i ++){
|
System.out.println("stuParkingInfo["+i+"].nChannel = " + msg.stuParkingInfo[i].nChannel);
|
System.out.println("stuParkingInfo["+i+"].nStatus = " + msg.stuParkingInfo[i].nStatus);
|
System.out.println("stuParkingInfo["+i+"].szParkingNo = [GBK]" + new String(msg.stuParkingInfo[i].szParkingNo,"GBK").trim() + ",[UTF-8]" + new String(msg.stuParkingInfo[i].szParkingNo,"UTF-8").trim() );
|
System.out.println("stuParkingInfo["+i+"].szPlateNumber = [GBK]" + new String(msg.stuParkingInfo[i].szPlateNumber,"GBK").trim() + ",[UTF-8]" + new String(msg.stuParkingInfo[i].szPlateNumber,"UTF-8").trim());
|
}
|
break;
|
}
|
case EVENT_IVS_TEMPERATURE_ALARM: ///< 温度报警事件
|
{
|
NET_DEV_EVENT_TEMPERATURE_ALARM_INFO msg = new NET_DEV_EVENT_TEMPERATURE_ALARM_INFO();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
System.out.println("温度报警事件 时间(UTC):" + msg.stuUTC.toStringTime() + " 通道号:" + msg.nChannelID
|
+ " 事件名称:" + msg.szName);
|
System.out.println("GPS信息:");
|
System.out.println("stuParkingInfo.longitude = " + msg.stuGPS.longitude);
|
System.out.println("stuParkingInfo.latidude = " + msg.stuGPS.latidude);
|
System.out.println("stuParkingInfo.height = " + msg.stuGPS.height);
|
System.out.println("stuParkingInfo.angle = " + msg.stuGPS.angle);
|
break;
|
}
|
case EVENT_IVS_TRAFFIC_OVERLINE: // 压线检测
|
{
|
System.out.println("压线检测, code = " + dwAlarmType);
|
break;
|
}
|
case EVENT_IVS_TRAFFIC_OVERSPEED: // 超速检测
|
{
|
System.out.println("超速检测, code = " + dwAlarmType);
|
break;
|
}
|
case EVENT_IVS_TRAFFIC_UNDERSPEED: // 低速检测
|
{
|
System.out.println("低速检测, code = " + dwAlarmType);
|
break;
|
}
|
case EVENT_IVS_WORKCLOTHES_DETECT: ///< 安全帽检测事件
|
{
|
System.out.println("工装检测事件, code = " + dwAlarmType);
|
NetSDKLib.DEV_EVENT_WORKCLOTHES_DETECT_INFO msg = new NetSDKLib.DEV_EVENT_WORKCLOTHES_DETECT_INFO();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
// 通道号
|
int nChannelID = msg.nChannelID;
|
System.out.println("nChannelID:" + nChannelID);
|
// 动作
|
int nAction = msg.nAction;
|
System.out.println("nAction:" + nAction);
|
//事件名称
|
byte[] szName = msg.szName;
|
System.out.println("szName UTF-8:" + new String(szName,"UTF-8").trim());
|
System.out.println("szName GBK:" + new String(szName,"GBK").trim());
|
//相对事件时间戳(单位是毫秒)
|
double pts = msg.PTS;
|
System.out.println("pts:" + new Date((long) pts));
|
//UTC时间
|
NetSDKLib.NET_TIME_EX UTC = msg.UTC;
|
System.out.println("UTC:" + UTC.toStringTime());
|
//事件类型
|
String emClassType = EM_CLASS_TYPE.getNoteByValue(msg.emClassType);
|
System.out.println("emClassType:" + emClassType);
|
//事件id
|
int nEventID = msg.nEventID;
|
System.out.println("nEventID:" + nEventID);
|
if (msg.stuSceneImage != null && msg.stuSceneImage.nLength > 0) {
|
String bigPicture = picturePath + "\\" + System.currentTimeMillis() + "related_WorkClothes" + msg.stuSceneImage.nIndexInData + ".jpg";
|
ToolKits.savePicture(pBuffer, msg.stuSceneImage.nOffSet, msg.stuSceneImage.nLength, bigPicture);
|
if (msg.stuHumanImage != null && msg.stuHumanImage.nLength > 0) {
|
String smallPicture = picturePath + "\\" + System.currentTimeMillis() + "related_WorkClothesSmall" + msg.stuSceneImage.nIndexInData + "small.jpg";
|
ToolKits.savePicture(pBuffer, msg.stuHumanImage.nOffSet, msg.stuHumanImage.nLength, smallPicture);
|
}
|
}
|
System.out.println(" 安全帽检测事件(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID + " 图片数量:" + msg.nImageInfoNum);
|
if(msg.nImageInfoNum > 0){
|
for(int i = 0; i < msg.nImageInfoNum; i ++){
|
System.out.println("pstuImageInfo picture received!");
|
String bigPicture = picturePath + "\\" + System.currentTimeMillis() + "WORKCLOTHES_DETECT_" + i + ".jpg";
|
ToolKits.savePicture(pBuffer, msg.stuImageInfo[i].nOffset, msg.stuImageInfo[i].nLength, bigPicture);
|
}
|
}
|
break;
|
}
|
case EVENT_IVS_ABNORMALRUNDETECTION: {// 异常奔跑事件(对应 DEV_EVENT_ABNORMALRUNDETECTION_INFO)
|
DEV_EVENT_ABNORMALRUNDETECTION_INFO msg = new DEV_EVENT_ABNORMALRUNDETECTION_INFO();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
if (pBuffer != null && dwBufSize > 0) {
|
System.out.println("basic picture received!");
|
String bigPicture = picturePath + "\\" + System.currentTimeMillis() + "ABNORMAL_RUN_DETECTION" + ".jpg";
|
ToolKits.savePicture(pBuffer, dwBufSize, bigPicture);
|
}
|
System.out.println("异常奔跑事件 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID + " 开始时间:" + msg.stuObject.stuStartTime + " 结束时间:" + msg.stuObject.stuEndTime
|
+ " 物体运动速度:" + msg.dbSpeed + " km/h " + " 触发速度:" + msg.dbTriggerSpeed + " km/h " + " 异常奔跑类型(0-快速奔跑, 1-突然加速, 2-突然减速):" + msg.bRunType + " 图片数量:" + msg.nImageInfoNum);
|
if(msg.nImageInfoNum > 0){
|
NET_IMAGE_INFO_EX2[] pstuImageInfo = new NET_IMAGE_INFO_EX2[msg.nImageInfoNum];
|
for(int i = 0; i < msg.nImageInfoNum; i ++){
|
pstuImageInfo[i] = new NET_IMAGE_INFO_EX2();
|
}
|
ToolKits.GetPointerDataToStructArr(msg.pstuImageInfo, pstuImageInfo);
|
for(int i = 0; i < msg.nImageInfoNum; i ++){
|
System.out.println("pstuImageInfo picture received!");
|
String bigPicture = picturePath + "\\" + System.currentTimeMillis() + "ABNORMAL_RUN_DETECTION_" + i + ".jpg";
|
ToolKits.savePicture(pBuffer, pstuImageInfo[i].nOffset, pstuImageInfo[i].nLength, bigPicture);
|
}
|
}
|
break;
|
}
|
case EVENT_IVS_OBJECT_REMOVAL_DETECTION: {// 物品拿取检测事件(对应 DEV_EVENT_OBJECT_REMOVAL_DETECTION_INFO)
|
DEV_EVENT_OBJECT_REMOVAL_DETECTION_INFO msg = new DEV_EVENT_OBJECT_REMOVAL_DETECTION_INFO();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
// 全景广角图
|
if (msg.stuSceneImage != null && msg.stuSceneImage.nLength > 0) {
|
String bigPicture = picturePath + "\\" + "EVENT_IVS_OBJECT_REMOVAL_DETECTION" + System.currentTimeMillis()
|
+ ".jpg";
|
ToolKits.savePicture(pBuffer, msg.stuSceneImage.nOffSet, msg.stuSceneImage.nLength, bigPicture);
|
}
|
System.out.println(" 物品拿取检测事件 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID + " 开始时间:"
|
+ msg.stuObject.stuStartTime + " 结束时间:" + msg.stuObject.stuEndTime + " 事件ID:" + msg.nEventID + " 图片数量:" + msg.nImageInfoNum);
|
if(msg.nImageInfoNum > 0){
|
NET_IMAGE_INFO_EX2[] pstuImageInfo = new NET_IMAGE_INFO_EX2[msg.nImageInfoNum];
|
for(int i = 0; i < msg.nImageInfoNum; i ++){
|
pstuImageInfo[i] = new NET_IMAGE_INFO_EX2();
|
}
|
ToolKits.GetPointerDataToStructArr(msg.pstuImageInfo, pstuImageInfo);
|
for(int i = 0; i < msg.nImageInfoNum; i ++){
|
System.out.println("pstuImageInfo picture received!");
|
String bigPicture = picturePath + "\\" + System.currentTimeMillis() + "OBJECT_REMOVAL_DETECTION_" + i + ".jpg";
|
ToolKits.savePicture(pBuffer, pstuImageInfo[i].nOffset, pstuImageInfo[i].nLength, bigPicture);
|
}
|
}
|
break;
|
}
|
case EVENT_IVS_OBJECT_PLACEMENT_DETECTION: {// 物品放置检测事件(对应 DEV_EVENT_OBJECT_PLACEMENT_DETECTION_INFO)
|
DEV_EVENT_OBJECT_PLACEMENT_DETECTION_INFO msg = new DEV_EVENT_OBJECT_PLACEMENT_DETECTION_INFO();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
// 全景广角图
|
if (msg.stuSceneImage != null && msg.stuSceneImage.nLength > 0) {
|
String bigPicture = picturePath + "\\" + "OBJECT_PLACEMENT_DETECTION" + System.currentTimeMillis()
|
+ ".jpg";
|
ToolKits.savePicture(pBuffer, msg.stuSceneImage.nOffSet, msg.stuSceneImage.nLength, bigPicture);
|
}
|
System.out.println(" 物品放置检测事件 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID + " 开始时间:"
|
+ msg.stuObject.stuStartTime + " 结束时间:" + msg.stuObject.stuEndTime + " 事件ID:" + msg.nEventID + " 图片数量:" + msg.nImageInfoNum);
|
if(msg.nImageInfoNum > 0){
|
NET_IMAGE_INFO_EX2[] pstuImageInfo = new NET_IMAGE_INFO_EX2[msg.nImageInfoNum];
|
for(int i = 0; i < msg.nImageInfoNum; i ++){
|
pstuImageInfo[i] = new NET_IMAGE_INFO_EX2();
|
}
|
ToolKits.GetPointerDataToStructArr(msg.pstuImageInfo, pstuImageInfo);
|
for(int i = 0; i < msg.nImageInfoNum; i ++){
|
System.out.println("pstuImageInfo picture received!");
|
String bigPicture = picturePath + "\\" + System.currentTimeMillis() + "OBJECT_PLACEMENT_DETECTION_" + i + ".jpg";
|
ToolKits.savePicture(pBuffer, pstuImageInfo[i].nOffset, pstuImageInfo[i].nLength, bigPicture);
|
}
|
}
|
break;
|
}
|
case EVENT_IVS_OBJECT_APPEAR_DETECTION: {// 目标出现事件(对应 NET_DEV_EVENT_OBJECT_APPEAR_DETECTION_INFO)
|
NET_DEV_EVENT_OBJECT_APPEAR_DETECTION_INFO msg = new NET_DEV_EVENT_OBJECT_APPEAR_DETECTION_INFO();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
// 全景广角图
|
if (msg.stuSceneImage != null && msg.stuSceneImage.nLength > 0) {
|
String bigPicture = picturePath + "\\" + "EVENT_IVS_OBJECT_APPEAR_DETECTION" + System.currentTimeMillis()
|
+ ".jpg";
|
ToolKits.savePicture(pBuffer, msg.stuSceneImage.nOffSet, msg.stuSceneImage.nLength, bigPicture);
|
}
|
System.out.println(" 目标出现事件 时间(UTC):" + msg.stuUTC + " 通道号:" + msg.nChannelID + " 事件ID:" + msg.nEventID + " 检测物体数量:" + msg.nObjectCount);
|
if(msg.nObjectCount > 0){
|
NetSDKLib.DH_MSG_OBJECT[] objects = new NetSDKLib.DH_MSG_OBJECT[msg.nObjectCount];
|
for(int i = 0; i < msg.nObjectCount; i ++){
|
objects[i] = new NetSDKLib.DH_MSG_OBJECT();
|
}
|
ToolKits.GetPointerDataToStructArr(msg.pstuObjects, objects);
|
for(int i = 0; i < msg.nObjectCount; i ++){
|
System.out.println("Object[" + i + "] 开始时间:"
|
+ objects[i].stuStartTime + " 结束时间:" + objects[i].stuEndTime );
|
}
|
}
|
break;
|
}
|
case EVENT_IVS_OBJECT_DISAPPEAR_DETECTION: {// 目标消失事件(对应 NET_DEV_EVENT_OBJECT_DISAPPEAR_DETECTION_INFO)
|
NET_DEV_EVENT_OBJECT_DISAPPEAR_DETECTION_INFO msg = new NET_DEV_EVENT_OBJECT_DISAPPEAR_DETECTION_INFO();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
// 全景广角图
|
if (msg.stuSceneImage != null && msg.stuSceneImage.nLength > 0) {
|
String bigPicture = picturePath + "\\" + "EVENT_IVS_OBJECT_DISAPPEAR_DETECTION" + System.currentTimeMillis()
|
+ ".jpg";
|
ToolKits.savePicture(pBuffer, msg.stuSceneImage.nOffSet, msg.stuSceneImage.nLength, bigPicture);
|
}
|
System.out.println(" 目标消失事件 时间(UTC):" + msg.stuUTC + " 通道号:" + msg.nChannelID + " 事件ID:" + msg.nEventID + " 检测物体数量:" + msg.nObjectCount);
|
if(msg.nObjectCount > 0){
|
NetSDKLib.DH_MSG_OBJECT[] objects = new NetSDKLib.DH_MSG_OBJECT[msg.nObjectCount];
|
for(int i = 0; i < msg.nObjectCount; i ++){
|
objects[i] = new NetSDKLib.DH_MSG_OBJECT();
|
}
|
ToolKits.GetPointerDataToStructArr(msg.pstuObjects, objects);
|
for(int i = 0; i < msg.nObjectCount; i ++){
|
System.out.println("Object[" + i + "] 开始时间:"
|
+ objects[i].stuStartTime + " 结束时间:" + objects[i].stuEndTime );
|
}
|
}
|
break;
|
}
|
case EVENT_IVS_OBJECT_STATE_DETECTION: {// 目标状态事件(对应 NET_DEV_EVENT_OBJECT_STATE_DETECTION_INFO)
|
NET_DEV_EVENT_OBJECT_STATE_DETECTION_INFO msg = new NET_DEV_EVENT_OBJECT_STATE_DETECTION_INFO();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
// 全景广角图
|
if (msg.stuSceneImage != null && msg.stuSceneImage.nLength > 0) {
|
String bigPicture = picturePath + "\\" + "EVENT_IVS_OBJECT_STATE_DETECTION" + System.currentTimeMillis()
|
+ ".jpg";
|
ToolKits.savePicture(pBuffer, msg.stuSceneImage.nOffSet, msg.stuSceneImage.nLength, bigPicture);
|
}
|
System.out.println(" 目标状态事件 时间(UTC):" + msg.stuUTC + " 通道号:" + msg.nChannelID + " 事件ID:" + msg.nEventID + " 检测物体数量:" + msg.nObjectCount);
|
if(msg.nObjectCount > 0){
|
NetSDKLib.DH_MSG_OBJECT[] objects = new NetSDKLib.DH_MSG_OBJECT[msg.nObjectCount];
|
for(int i = 0; i < msg.nObjectCount; i ++){
|
objects[i] = new NetSDKLib.DH_MSG_OBJECT();
|
}
|
ToolKits.GetPointerDataToStructArr(msg.pstuObjects, objects);
|
for(int i = 0; i < msg.nObjectCount; i ++){
|
System.out.println("Object[" + i + "] 开始时间:"
|
+ objects[i].stuStartTime + " 结束时间:" + objects[i].stuEndTime );
|
}
|
}
|
break;
|
}
|
case EVENT_IVS_CROWD_LEVEL_DETECTION: {// 拥挤程度检测事件(对应 DEV_EVENT_CROWD_LEVEL_DETECTION_INFO)
|
DEV_EVENT_CROWD_LEVEL_DETECTION_INFO msg = new DEV_EVENT_CROWD_LEVEL_DETECTION_INFO();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
System.out.println(" 拥挤程度检测事件 时间(UTC):" + msg.stuUTC.toStringTime() + " 通道号:" + msg.nChannelID
|
+ " 事件ID:" + msg.nEventID + " 触发报警人数:" + msg.nCrowdDetectNum + " 图片数量:" + msg.nImageInfoNum);
|
//多图
|
if(msg.nImageInfoNum > 0){
|
NET_IMAGE_INFO_EX3[] objects = new NET_IMAGE_INFO_EX3[msg.nImageInfoNum];
|
for(int i = 0; i < msg.nImageInfoNum; i ++){
|
objects[i] = new NET_IMAGE_INFO_EX3();
|
}
|
ToolKits.GetPointerDataToStructArr(msg.pstuImageInfo, objects);
|
for(int i = 0; i < msg.nImageInfoNum; i ++){
|
String bigPicture = picturePath + "\\" + "EVENT_IVS_CROWD_LEVEL_DETECTION_" + i + "_" + System.currentTimeMillis()
|
+ ".jpg";
|
System.out.println("Object[" + i + "] 偏移量:"
|
+ objects[i].nOffset + " 长度:" + objects[i].nLength + " 存储位置:" + bigPicture );
|
ToolKits.savePicture(pBuffer, objects[i].nOffset, objects[i].nLength, bigPicture);
|
}
|
}
|
break;
|
}
|
case EVENT_IVS_TRAFFIC_PARKINGSPACEPARKING: {// 车位有车事件(对应 DEV_EVENT_TRAFFIC_PARKINGSPACEPARKING_INFO)
|
NetSDKLib.DEV_EVENT_TRAFFIC_PARKINGSPACEPARKING_INFO msg = new NetSDKLib.DEV_EVENT_TRAFFIC_PARKINGSPACEPARKING_INFO();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
|
System.out.println(" 车位有车事件 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID + " 事件ID:" + msg.nEventID + " 图片数量:" + msg.nImageInfoNum);
|
// 停车图
|
if (msg.stuParkingImage != null && msg.stuParkingImage.nLength > 0) {
|
String bigPicture = picturePath + "\\" + "EVENT_IVS_TRAFFIC_PARKINGSPACEPARKING_" + System.currentTimeMillis()
|
+ ".jpg";
|
ToolKits.savePicture(pBuffer, msg.stuParkingImage.nOffSet, msg.stuParkingImage.nLength, bigPicture);
|
}
|
|
//多图
|
if(msg.nImageInfoNum > 0){
|
NET_IMAGE_INFO_EX3[] objects = new NET_IMAGE_INFO_EX3[msg.nImageInfoNum];
|
for(int i = 0; i < msg.nImageInfoNum; i ++){
|
objects[i] = new NET_IMAGE_INFO_EX3();
|
}
|
ToolKits.GetPointerDataToStructArr(msg.pstuImageInfo, objects);
|
for(int i = 0; i < msg.nImageInfoNum; i ++){
|
String bigPicture = picturePath + "\\" + "EVENT_IVS_TRAFFIC_PARKINGSPACEPARKINGN_" + i + "_" + System.currentTimeMillis()
|
+ ".jpg";
|
System.out.println("Object[" + i + "] 偏移量:"
|
+ objects[i].nOffset + " 长度:" + objects[i].nLength + " 存储位置:" + bigPicture );
|
ToolKits.savePicture(pBuffer, objects[i].nOffset, objects[i].nLength, bigPicture);
|
}
|
}
|
break;
|
}
|
case EVENT_IVS_TRAFFIC_PARKINGSPACENOPARKING: {// 车位无车事件(对应 DEV_EVENT_TRAFFIC_PARKINGSPACENOPARKING_INFO)
|
NetSDKLib.DEV_EVENT_TRAFFIC_PARKINGSPACENOPARKING_INFO msg = new NetSDKLib.DEV_EVENT_TRAFFIC_PARKINGSPACENOPARKING_INFO();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
|
System.out.println(" 车位无车事件 时间(UTC):" + msg.UTC + " 通道号:" + msg.nChannelID + " 事件ID:" + msg.nEventID + " 图片数量:" + msg.nImageInfoNum);
|
// 停车图
|
if (msg.stuParkingImage != null && msg.stuParkingImage.nLength > 0) {
|
String bigPicture = picturePath + "\\" + "EVENT_IVS_TRAFFIC_PARKINGSPACENOPARKING_" + System.currentTimeMillis()
|
+ ".jpg";
|
ToolKits.savePicture(pBuffer, msg.stuParkingImage.nOffSet, msg.stuParkingImage.nLength, bigPicture);
|
}
|
//多图
|
if(msg.nImageInfoNum > 0){
|
NET_IMAGE_INFO_EX3[] objects = new NET_IMAGE_INFO_EX3[msg.nImageInfoNum];
|
for(int i = 0; i < msg.nImageInfoNum; i ++){
|
objects[i] = new NET_IMAGE_INFO_EX3();
|
}
|
ToolKits.GetPointerDataToStructArr(msg.pstuImageInfo, objects);
|
for(int i = 0; i < msg.nImageInfoNum; i ++){
|
String bigPicture = picturePath + "\\" + "EVENT_IVS_TRAFFIC_PARKINGSPACENOPARKING_" + i + "_" + System.currentTimeMillis()
|
+ ".jpg";
|
System.out.println("Object[" + i + "] 偏移量:"
|
+ objects[i].nOffset + " 长度:" + objects[i].nLength + " 存储位置:" + bigPicture );
|
ToolKits.savePicture(pBuffer, objects[i].nOffset, objects[i].nLength, bigPicture);
|
}
|
}
|
break;
|
}
|
case EVENT_IVS_GENEAL_ATTITUDE: {// 通用姿态行为事件(对应 DEV_EVENT_GENEAL_ATTITUDE_INFO)
|
DEV_EVENT_GENEAL_ATTITUDE_INFO msg = new DEV_EVENT_GENEAL_ATTITUDE_INFO();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
|
System.out.println(" 通用姿态行为事件 时间(UTC):" + msg.stuUTC + " 通道号:" + msg.nChannelID + " 事件ID:" + msg.nEventID + " 图片数量:" + msg.nImageInfoNum);
|
// 全景图
|
if (msg.stuSceneImage != null && msg.stuSceneImage.nLength > 0) {
|
String bigPicture = picturePath + "\\" + "EVENT_IVS_GENEAL_ATTITUDE_" + System.currentTimeMillis()
|
+ "_fullScene.jpg";
|
ToolKits.savePicture(pBuffer, msg.stuSceneImage.nOffSet, msg.stuSceneImage.nLength, bigPicture);
|
}
|
//多图
|
if(msg.nImageInfoNum > 0){
|
NET_IMAGE_INFO_EX3[] objects = new NET_IMAGE_INFO_EX3[msg.nImageInfoNum];
|
for(int i = 0; i < msg.nImageInfoNum; i ++){
|
objects[i] = new NET_IMAGE_INFO_EX3();
|
}
|
ToolKits.GetPointerDataToStructArr(msg.pstuImageInfo, objects);
|
for(int i = 0; i < msg.nImageInfoNum; i ++){
|
String bigPicture = picturePath + "\\" + "EVENT_IVS_GENEAL_ATTITUDE_" + i + "_" + System.currentTimeMillis()
|
+ ".jpg";
|
System.out.println("Object[" + i + "] 偏移量:"
|
+ objects[i].nOffset + " 长度:" + objects[i].nLength + " 存储位置:" + bigPicture );
|
ToolKits.savePicture(pBuffer, objects[i].nOffset, objects[i].nLength, bigPicture);
|
}
|
}
|
break;
|
}
|
case EVENT_IVS_ACTION_COUNT: {// 行为自定义行为计数事件(对应 NET_DEV_EVENT_ACTION_COUNT_INFO)
|
NET_DEV_EVENT_ACTION_COUNT_INFO msg = new NET_DEV_EVENT_ACTION_COUNT_INFO();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
|
System.out.println(" 通用姿态行为事件 时间(UTC):" + msg.stuUTC + " 通道号:" + msg.nChannelID + " 事件ID:" + msg.nEventID);
|
// 全景图
|
if (msg.stuSceneImage != null && msg.stuSceneImage.nLength > 0) {
|
String bigPicture = picturePath + "\\" + "EVENT_IVS_GENEAL_ATTITUDE_" + System.currentTimeMillis()
|
+ "_fullScene.jpg";
|
ToolKits.savePicture(pBuffer, msg.stuSceneImage.nOffSet, msg.stuSceneImage.nLength, bigPicture);
|
}
|
break;
|
}
|
case EVENT_IVS_DROP_DETECTION: {// 滴漏检测事件(对应 NET_DEV_EVENT_DROP_DETECTION_INFO)
|
NET_DEV_EVENT_DROP_DETECTION_INFO msg = new NET_DEV_EVENT_DROP_DETECTION_INFO();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
|
System.out.println(" 滴漏检测事件 时间(UTC):" + msg.stuUTC + " 通道号:" + msg.nChannelID + " 事件ID:" + msg.nEventID);
|
// 全景图
|
if (msg.stuSceneImage != null && msg.stuSceneImage.nLength > 0) {
|
String bigPicture = picturePath + "\\" + "EVENT_IVS_DROP_DETECTION_" + System.currentTimeMillis()
|
+ "_fullScene.jpg";
|
ToolKits.savePicture(pBuffer, msg.stuSceneImage.nOffSet, msg.stuSceneImage.nLength, bigPicture);
|
}
|
// 全图
|
if (pBuffer != null && dwBufSize > 0) {
|
String bigPicture = picturePath + "\\" + "EVENT_IVS_DROP_DETECTION_" + System.currentTimeMillis()
|
+ "_full.jpg";
|
ToolKits.savePicture(pBuffer, 0, dwBufSize, bigPicture);
|
}
|
//多图
|
if(msg.nImageInfoNum > 0){
|
NET_IMAGE_INFO_EX3[] objects = new NET_IMAGE_INFO_EX3[msg.nImageInfoNum];
|
for(int i = 0; i < msg.nImageInfoNum; i ++){
|
objects[i] = new NET_IMAGE_INFO_EX3();
|
}
|
ToolKits.GetPointerDataToStructArr(msg.pstuImageInfo, objects);
|
for(int i = 0; i < msg.nImageInfoNum; i ++){
|
String bigPicture = picturePath + "\\" + "EVENT_IVS_GENEAL_ATTITUDE_" + i + "_" + System.currentTimeMillis()
|
+ ".jpg";
|
System.out.println("Object[" + i + "] 偏移量:"
|
+ objects[i].nOffset + " 长度:" + objects[i].nLength + " 存储位置:" + bigPicture );
|
ToolKits.savePicture(pBuffer, objects[i].nOffset, objects[i].nLength, bigPicture);
|
}
|
}
|
break;
|
}
|
case EVENT_IVS_WADING_DETECTION: {//涉水安全检测、水域监测报警(对应 NET_DEV_EVENT_WADING_DETECTION_INFO)
|
|
NET_DEV_EVENT_WADING_DETECTION_INFO msg = new NET_DEV_EVENT_WADING_DETECTION_INFO();
|
ToolKits.GetPointerData(pAlarmInfo, msg);
|
|
System.out.println(" 涉水安全检测、水域监测报警 时间(UTC):" + msg.stuUTC + " 通道号:" + msg.nChannelID + " 事件ID:" + msg.nEventID
|
+ " 事件名称-gbk:" + new String(msg.szName,"GBK").trim() + " 事件名称-utf-8:" + new String(msg.szName,"UTF-8").trim());
|
// 全图
|
if (pBuffer != null && dwBufSize > 0) {
|
String bigPicture = picturePath + "\\" + "EVENT_IVS_WADING_DETECTION_" + System.currentTimeMillis()
|
+ "_full.jpg";
|
ToolKits.savePicture(pBuffer, 0, dwBufSize, bigPicture);
|
}
|
break;
|
}
|
default:
|
System.out.println("其他事件--------------------"+ dwAlarmType);
|
break;
|
}
|
return 0;
|
}
|
}
|
|
|
/**
|
* 停止侦听智能事件
|
*/
|
public void DetachEventRealLoadPic() {
|
if (this.attachHandle.longValue() != 0) {
|
netSdk.CLIENT_StopLoadPic(this.attachHandle);
|
}
|
}
|
public void RunTest()
|
{
|
System.out.println("Run Test");
|
CaseMenu menu = new CaseMenu();;
|
menu.addItem((new CaseMenu.Item(this , "AttachEventRealLoadPic" , "AttachEventRealLoadPic")));
|
menu.addItem((new CaseMenu.Item(this , "DetachEventRealLoadPic" , "DetachEventRealLoadPic")));
|
|
menu.run();
|
}
|
|
public static void main(String[] args) {
|
RealLoadPicExDemo RealLoadPicExDemo=new RealLoadPicExDemo();
|
// Scanner sc = new Scanner(System.in);
|
// System.out.print("ip:");
|
// String ip = sc.nextLine();
|
// System.out.print("port:");
|
// String tmp = sc.nextLine();
|
// int port = Integer.parseInt(tmp);
|
// System.out.print("username:");
|
// String username = sc.nextLine();
|
// System.out.print("password:");
|
// String pwd = sc.nextLine();
|
// InitTest(ip,port,username,pwd);
|
Initialization.InitTest("172.13.76.5", 37777, "admin", "admin123");
|
RealLoadPicExDemo.RunTest();
|
LoginOut();
|
|
}
|
}
|