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.structure.DEV_EVENT_TRAFFIC_CAR_MEASUREMENT_INFO; import com.netsdk.lib.utils.Initialization; import com.sun.jna.Memory; import com.sun.jna.Pointer; import java.io.File; import static com.netsdk.lib.NetSDKLib.RESERVED_TYPE_FOR_PATH; /** * @author 291189 * @version 1.0 * @description ERR220606098 * @date 2022/6/7 9:18 */ public class MeasurementDemo extends Initialization { private static String ipAddr = "172.24.1.224"; private static int port = 37777; private static String user = "admin"; private static String password = "admin123"; static int channel=0; NetSDKLib.LLong attachHandle=new NetSDKLib.LLong(0); public NetSDKLib.LLong AttachEventRealLoadPic() { // 先退订,设备不会对重复订阅作校验,重复订阅后会有重复的事件返回 if (attachHandle.longValue() != 0) { this.DetachEventRealLoadPic(); } NetSDKLib.RESERVED_PARA para=new NetSDKLib.RESERVED_PARA(); para.dwType=RESERVED_TYPE_FOR_PATH; NetSDKLib.NET_RESERVED_PATH path=new NetSDKLib.NET_RESERVED_PATH(); path.nMaxPathNum=2; path.emPictruePaths[0]=1; path.emPictruePaths[1]=2; Pointer pathPointer= new Memory(path.size()); pathPointer.clear(path.size()); ToolKits.SetStructDataToPointer(path,pathPointer,0); para.pData=pathPointer; Pointer pointerPara=new Memory(para.size()); pointerPara.clear(para.size()); ToolKits.SetStructDataToPointer(para,pointerPara,0); // 需要图片 int bNeedPicture = 1; attachHandle = netSdk.CLIENT_RealLoadPictureEx(loginHandle, channel, NetSDKLib.EVENT_IVS_TRAFFIC_CAR_MEASUREMENT , bNeedPicture, AnalyzerDataCB.getInstance(), null, pointerPara); if (attachHandle.longValue() != 0) { ToolKits.GetPointerDataToStruct(pointerPara,0,para); Pointer pData = para.pData; ToolKits.GetPointerDataToStruct(pData,0,path); System.out.println("nMaxPathNum:"+path.nMaxPathNum); int[] emPictruePaths = path.emPictruePaths; for (int i=0;i0) { String sencePicture = picturePath + "\\" + System.currentTimeMillis() + "license_Plate.jpg"; ToolKits.savePicture(pBuffer, stPicInfo.dwOffSet, stPicInfo.dwFileLenth, sencePicture); } byte[] szObjectSubType = msg.stuVehicle.szObjectSubType; System.out.println("物体子类别 szObjectSubType:"+new String(szObjectSubType,encode)); int nGroupId = msg.stuFileInfo.nGroupId; System.out.println("同一组抓拍文件的唯一标识 nGroupId:"+nGroupId); NetSDKLib.EVENT_COMM_INFO stuCommInfo = msg.stuCommInfo; Pointer pszFTPPath = stuCommInfo.pszFTPPath; String FTPPath = ToolKits.GetPointerDataToGBKString(pszFTPPath); Pointer pszVideoPath = stuCommInfo.pszVideoPath; String videoPath = ToolKits.GetPointerDataToGBKString(pszVideoPath); System.out.println("FTPPath:"+FTPPath); System.out.println("videoPath:"+videoPath); } catch (Exception e) { e.printStackTrace(); } 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){ InitTest(ipAddr, port, user, password); MeasurementDemo measurementDemo=new MeasurementDemo(); measurementDemo.RunTest(); LoginOut(); } }