¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | package com.ld.igds.protocol.hk.common; |
| | | |
| | | import com.ld.igds.protocol.hk.HKConstant; |
| | | import com.sun.jna.Pointer; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | |
| | | import java.io.FileNotFoundException; |
| | | import java.io.FileOutputStream; |
| | | import java.io.IOException; |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.nio.ByteBuffer; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | |
| | | |
| | | public class FMSGCallBack_V31 implements HCNetSDK.FMSGCallBack_V31 { |
| | | |
| | | Logger log = LoggerFactory.getLogger(FMSGCallBack_V31.class); |
| | | |
| | | |
| | | //æ¥è¦ä¿¡æ¯åè°å½æ° |
| | | public boolean invoke(int lCommand, HCNetSDK.NET_DVR_ALARMER pAlarmer, Pointer pAlarmInfo, int dwBufLen, Pointer pUser) { |
| | | AlarmDataHandle(lCommand, pAlarmer, pAlarmInfo, dwBufLen, pUser); |
| | | return true; |
| | | } |
| | | |
| | | public void AlarmDataHandle(int lCommand, HCNetSDK.NET_DVR_ALARMER pAlarmer, Pointer pAlarmInfo, int dwBufLen, Pointer pUser) { |
| | | log.warn("æ¥è¦äºä»¶ç±»åï¼ lCommand:" + Integer.toHexString(lCommand)); |
| | | |
| | | String sTime; |
| | | String MonitoringSiteID; |
| | | //lCommandæ¯ä¼ çæ¥è¦ç±»å |
| | | switch (lCommand) { |
| | | |
| | | case HCNetSDK.COMM_ITS_PLATE_RESULT://äº¤éææç»æ(æ°æ¥è¦ä¿¡æ¯) |
| | | HCNetSDK.NET_ITS_PLATE_RESULT strItsPlateResult = new HCNetSDK.NET_ITS_PLATE_RESULT(); |
| | | strItsPlateResult.write(); |
| | | Pointer pItsPlateInfo = strItsPlateResult.getPointer(); |
| | | pItsPlateInfo.write(0, pAlarmInfo.getByteArray(0, strItsPlateResult.size()), 0, strItsPlateResult.size()); |
| | | strItsPlateResult.read(); |
| | | try { |
| | | String sLicense = new String(strItsPlateResult.struPlateInfo.sLicense, "GBK"); |
| | | byte VehicleType = strItsPlateResult.byVehicleType; //0-å
¶ä»è½¦è¾ï¼1-å°å车ï¼2-大å车ï¼3- è¡äººè§¦åï¼4- äºè½®è½¦è§¦åï¼5- ä¸è½®è½¦è§¦åï¼6- æºå¨è½¦è§¦å |
| | | MonitoringSiteID = new String(strItsPlateResult.byMonitoringSiteID); |
| | | log.warn("车çå·ï¼" + sLicense + ":车è¾ç±»åï¼" + VehicleType + ":çæ§ç¹ç¼å·ï¼" + MonitoringSiteID); |
| | | |
| | | } catch (UnsupportedEncodingException e1) { |
| | | // TODO Auto-generated catch block |
| | | e1.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | |
| | | //æ¥è¦å¾çä¿åï¼è½¦çï¼è½¦è¾å¾ç |
| | | for (int i = 0; i < strItsPlateResult.dwPicNum; i++) { |
| | | if (strItsPlateResult.struPicInfo[i].dwDataLen > 0) { |
| | | SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | String newName = sf.format(new Date()); |
| | | FileOutputStream fout; |
| | | try { |
| | | // String filename = "../pic/" + newName + "_type[" + strItsPlateResult.struPicInfo[i].byType + "]_ItsPlate.jpg"; |
| | | |
| | | String basePath = HKConstant.getImgBasePath(false); |
| | | |
| | | String filename = basePath + newName + ".jpg"; |
| | | |
| | | fout = new FileOutputStream(filename); |
| | | //å°åèåå
¥æä»¶ |
| | | long offset = 0; |
| | | ByteBuffer buffers = strItsPlateResult.struPicInfo[i].pBuffer.getByteBuffer(offset, strItsPlateResult.struPicInfo[i].dwDataLen); |
| | | byte[] bytes = new byte[strItsPlateResult.struPicInfo[i].dwDataLen]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | fout.write(bytes); |
| | | fout.close(); |
| | | } catch (FileNotFoundException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | | break; |
| | | case HCNetSDK.COMM_ALARM_TFS: //éè·¯è¿ç« åè¯æ¥è¦ |
| | | HCNetSDK.NET_DVR_TFS_ALARM strTfsAlarm = new HCNetSDK.NET_DVR_TFS_ALARM(); |
| | | strTfsAlarm.write(); |
| | | Pointer pTfsAlarm = strTfsAlarm.getPointer(); |
| | | pTfsAlarm.write(0, pAlarmInfo.getByteArray(0, strTfsAlarm.size()), 0, strTfsAlarm.size()); |
| | | strTfsAlarm.read(); |
| | | sTime = CommonUtil.parseTime(strTfsAlarm.dwAbsTime); //æ¥è¦ç»å¯¹æ¶é´ |
| | | int IllegalType = strTfsAlarm.dwIllegalType; // è¿ç« ç±»å |
| | | MonitoringSiteID = strTfsAlarm.byMonitoringSiteID.toString(); //çæ§ç¹ç¼å· |
| | | // 车çä¿¡æ¯ |
| | | try { |
| | | String PlateInfo = "车çå·ï¼" + new String(strTfsAlarm.struPlateInfo.sLicense, "GBK"); |
| | | System.out.println("ãéè·¯è¿ç« åè¯æ¥è¦ãæ¶é´ï¼" + sTime + "è¿ç« ç±»åï¼" + IllegalType + "车çä¿¡æ¯ï¼" + PlateInfo); |
| | | } catch (UnsupportedEncodingException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | //æ¥è¦å¾çä¿¡æ¯ |
| | | for (int i = 0; i < strTfsAlarm.dwPicNum; i++) { |
| | | if (strTfsAlarm.struPicInfo[i].dwDataLen > 0) { |
| | | SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | String newName = sf.format(new Date()); |
| | | FileOutputStream fout; |
| | | try { |
| | | // String filename = "../pic/" + newName + "_type[" + strTfsAlarm.struPicInfo[i].byType + "]_TfsPlate.jpg"; |
| | | String filename = "D:/IGDS/pic/" + newName + "_type[" + strTfsAlarm.struPicInfo[i].byType + "]_TfsPlate.jpg"; |
| | | fout = new FileOutputStream(filename); |
| | | //å°åèåå
¥æä»¶ |
| | | long offset = 0; |
| | | ByteBuffer buffers = strTfsAlarm.struPicInfo[i].pBuffer.getByteBuffer(offset, strTfsAlarm.struPicInfo[i].dwDataLen); |
| | | byte[] bytes = new byte[strTfsAlarm.struPicInfo[i].dwDataLen]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | fout.write(bytes); |
| | | fout.close(); |
| | | } catch (FileNotFoundException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | | break; |
| | | case HCNetSDK.COMM_ALARM_AID_V41: //éè·¯äºä»¶æ£æµ |
| | | HCNetSDK.NET_DVR_AID_ALARM_V41 strAIDAlarmV41 = new HCNetSDK.NET_DVR_AID_ALARM_V41(); |
| | | strAIDAlarmV41.write(); |
| | | Pointer pstrAIDAlarmV41 = strAIDAlarmV41.getPointer(); |
| | | pstrAIDAlarmV41.write(0, pAlarmInfo.getByteArray(0, strAIDAlarmV41.size()), 0, strAIDAlarmV41.size()); |
| | | strAIDAlarmV41.read(); |
| | | sTime = CommonUtil.parseTime(strAIDAlarmV41.dwAbsTime); //æ¥è¦è§¦åç»å¯¹æ¶é´ |
| | | MonitoringSiteID = strAIDAlarmV41.byMonitoringSiteID.toString(); //çæ§ç¹ç¼å· |
| | | int AIDType = strAIDAlarmV41.struAIDInfo.dwAIDType; // 交éäºä»¶ç±»å |
| | | int AIDTypeEx = strAIDAlarmV41.struAIDInfo.dwAIDTypeEx; //交éäºä»¶ç±»åæ©å± |
| | | System.out.println("ãéè·¯äºä»¶æ£æµã" + "æ¶é´ï¼" + sTime + "çæ§ç¹ï¼" + MonitoringSiteID + "交éäºä»¶ç±»åï¼" + AIDType + "交éäºä»¶ç±»åæ©å±ï¼" + AIDTypeEx); |
| | | //æ¥è¦å¾çä¿¡æ¯ |
| | | if (strAIDAlarmV41.dwPicDataLen > 0 && strAIDAlarmV41.pImage != null) { |
| | | SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | String newName = sf.format(new Date()); |
| | | FileOutputStream fout; |
| | | try { |
| | | String filename = "../pic/" + newName + "_AIDalarm.jpg"; |
| | | fout = new FileOutputStream(filename); |
| | | //å°åèåå
¥æä»¶ |
| | | long offset = 0; |
| | | ByteBuffer buffers = strAIDAlarmV41.pImage.getByteBuffer(offset, strAIDAlarmV41.dwPicDataLen); |
| | | byte[] bytes = new byte[strAIDAlarmV41.dwPicDataLen]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | fout.write(bytes); |
| | | fout.close(); |
| | | } catch (FileNotFoundException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | break; |
| | | case HCNetSDK.COMM_ALARM_TPS_V41://äº¤éæ°æ®ç»è®¡çæ¥è¦ |
| | | HCNetSDK.NET_DVR_TPS_ALARM_V41 strTPSalarmV41 = new HCNetSDK.NET_DVR_TPS_ALARM_V41(); |
| | | strTPSalarmV41.write(); |
| | | Pointer pstrTPSalarmV41 = strTPSalarmV41.getPointer(); |
| | | pstrTPSalarmV41.write(0, pAlarmInfo.getByteArray(0, strTPSalarmV41.size()), 0, strTPSalarmV41.size()); |
| | | strTPSalarmV41.read(); |
| | | sTime = CommonUtil.parseTime(strTPSalarmV41.dwAbsTime); |
| | | MonitoringSiteID = strTPSalarmV41.byMonitoringSiteID.toString(); //çæ§ç¹ç¼å· |
| | | String StartTime = CommonUtil.parseTime(strTPSalarmV41.dwStartTime); //å¼å§ç»è®¡æ¶é´ï¼ |
| | | String StopTime = CommonUtil.parseTime(strTPSalarmV41.dwStopTime); //ç»æç»è®¡æ¶é´ï¼ |
| | | System.out.println("ãäº¤éæ°æ®ç»è®¡ã" + "æ¶é´ï¼" + sTime + "çæ§ç¹ç¼å·ï¼" + MonitoringSiteID + "å¼å§ç»è®¡æ¶é´ï¼" + StartTime + "ç»æç»è®¡æ¶é´ï¼" + StopTime); |
| | | //车éç»è®¡åæ°ä¿¡æ¯ |
| | | for (int i = 0; i <= HCNetSDK.MAX_TPS_RULE; i++) { |
| | | byte LaneNo = strTPSalarmV41.struTPSInfo.struLaneParam[i].byLaneNo; //车éå· |
| | | byte TrafficState = strTPSalarmV41.struTPSInfo.struLaneParam[i].byTrafficState; //车éç¶æ 0-æ æï¼1-ç
éï¼2-æ¥æ¤ï¼3-å µå¡ |
| | | int TpsType = strTPSalarmV41.struTPSInfo.struLaneParam[i].dwTpsType; //æ°æ®ååç±»åæ å¿ï¼è¡¨ç¤ºå½åä¸ä¼ çç»è®¡åæ°ä¸ï¼åªäºæ°æ®ææï¼æä½åºå |
| | | int LaneVolume = strTPSalarmV41.struTPSInfo.struLaneParam[i].dwLaneVolume; //è½¦éæµé |
| | | int LaneVelocity = strTPSalarmV41.struTPSInfo.struLaneParam[i].dwLaneVelocity; //车éå¹³åé度 |
| | | float SpaceOccupyRation = strTPSalarmV41.struTPSInfo.struLaneParam[i].fSpaceOccupyRation; //车éå æçï¼ç¾åæ¯è®¡ç®ï¼ç©ºé´ä¸ï¼è½¦è¾é¿åº¦ä¸çæ§è·¯æ®µæ»é¿åº¦çæ¯å¼) |
| | | System.out.println("车éå·ï¼" + LaneNo + "车éç¶æï¼" + TrafficState + "è½¦éæµéï¼" + LaneVolume + "车éå æçï¼" + SpaceOccupyRation + "\n"); |
| | | } |
| | | break; |
| | | case HCNetSDK.COMM_ALARM_TPS_REAL_TIME: //宿¶è¿è½¦æ°æ®æ°æ® |
| | | HCNetSDK.NET_DVR_TPS_REAL_TIME_INFO netDvrTpsParam = new HCNetSDK.NET_DVR_TPS_REAL_TIME_INFO(); |
| | | netDvrTpsParam.write(); |
| | | Pointer pItsParkVehicle = netDvrTpsParam.getPointer(); |
| | | pItsParkVehicle.write(0, pAlarmInfo.getByteArray(0, netDvrTpsParam.size()), 0, netDvrTpsParam.size()); |
| | | netDvrTpsParam.read(); |
| | | String struTime = "" + String.format("%04d", netDvrTpsParam.struTime.wYear) + |
| | | String.format("%02d", netDvrTpsParam.struTime.byMonth) + |
| | | String.format("%02d", netDvrTpsParam.struTime.byDay) + |
| | | String.format("%02d", netDvrTpsParam.struTime.byDay) + |
| | | String.format("%02d", netDvrTpsParam.struTime.byHour) + |
| | | String.format("%02d", netDvrTpsParam.struTime.byMinute) + |
| | | String.format("%02d", netDvrTpsParam.struTime.bySecond); |
| | | Short wDeviceID = new Short(netDvrTpsParam.struTPSRealTimeInfo.wDeviceID);//设å¤ID |
| | | int channel = netDvrTpsParam.dwChan; //è§¦åæ¥è¦ééå· |
| | | String byLane = new String(String.valueOf(netDvrTpsParam.struTPSRealTimeInfo.byLane)).trim();// 对åºè½¦éå· |
| | | String bySpeed = new String(String.valueOf(netDvrTpsParam.struTPSRealTimeInfo.bySpeed)).trim();// 对åºè½¦éï¼KM/H) |
| | | int dwDownwardFlow = netDvrTpsParam.struTPSRealTimeInfo.dwDownwardFlow;//å½å车é ä»ä¸å°ä¸è½¦æµé |
| | | int dwUpwardFlow = netDvrTpsParam.struTPSRealTimeInfo.dwUpwardFlow; //å½å车é ä»ä¸å°ä¸è½¦æµé |
| | | System.out.println("ééå·ï¼" + channel + "; æ¶é´ï¼" + struTime + ";对åºè½¦éå·ï¼" + byLane + ";å½å车é ä»ä¸å°ä¸è½¦æµéï¼" + dwDownwardFlow + ";dwUpwardFlowï¼" + dwUpwardFlow); |
| | | break; |
| | | |
| | | case HCNetSDK.COMM_ALARM_TPS_STATISTICS: //ç»è®¡è¿è½¦æ°æ® |
| | | HCNetSDK.NET_DVR_TPS_STATISTICS_INFO netDvrTpsStatisticsInfo = new HCNetSDK.NET_DVR_TPS_STATISTICS_INFO(); |
| | | netDvrTpsStatisticsInfo.write(); |
| | | Pointer pTpsVehicle = netDvrTpsStatisticsInfo.getPointer(); |
| | | pTpsVehicle.write(0, pAlarmInfo.getByteArray(0, netDvrTpsStatisticsInfo.size()), 0, netDvrTpsStatisticsInfo.size()); |
| | | netDvrTpsStatisticsInfo.read(); |
| | | int Tpschannel = netDvrTpsStatisticsInfo.dwChan; //è§¦åæ¥è¦ééå· |
| | | //ç»è®¡å¼å§æ¶é´ |
| | | String struStartTime = "" + String.format("%04d", netDvrTpsStatisticsInfo.struTPSStatisticsInfo.struStartTime.wYear) + |
| | | String.format("%02d", netDvrTpsStatisticsInfo.struTPSStatisticsInfo.struStartTime.byMonth) + |
| | | String.format("%02d", netDvrTpsStatisticsInfo.struTPSStatisticsInfo.struStartTime.byDay) + |
| | | String.format("%02d", netDvrTpsStatisticsInfo.struTPSStatisticsInfo.struStartTime.byDay) + |
| | | String.format("%02d", netDvrTpsStatisticsInfo.struTPSStatisticsInfo.struStartTime.byHour) + |
| | | String.format("%02d", netDvrTpsStatisticsInfo.struTPSStatisticsInfo.struStartTime.byMinute) + |
| | | String.format("%02d", netDvrTpsStatisticsInfo.struTPSStatisticsInfo.struStartTime.bySecond); |
| | | byte TotalLaneNum = netDvrTpsStatisticsInfo.struTPSStatisticsInfo.byTotalLaneNum; //ææè½¦éæ»æ° |
| | | System.out.println("ééå·ï¼" + Tpschannel + "; å¼å§ç»è®¡æ¶é´ï¼" + struStartTime + "ææè½¦éæ»æ°ï¼" + TotalLaneNum); |
| | | break; |
| | | case HCNetSDK.COMM_ITS_PARK_VEHICLE: //åè½¦åºæ°æ®ä¸ä¼ |
| | | HCNetSDK.NET_ITS_PARK_VEHICLE strParkVehicle = new HCNetSDK.NET_ITS_PARK_VEHICLE(); |
| | | strParkVehicle.write(); |
| | | Pointer pstrParkVehicle = strParkVehicle.getPointer(); |
| | | pstrParkVehicle.write(0, pAlarmInfo.getByteArray(0, strParkVehicle.size()), 0, strParkVehicle.size()); |
| | | strParkVehicle.read(); |
| | | try { |
| | | byte ParkError = strParkVehicle.byParkError; //å车å¼å¸¸ï¼0- æ£å¸¸ï¼1- å¼å¸¸ |
| | | String ParkingNo = new String(strParkVehicle.byParkingNo, "UTF-8"); //车ä½ç¼å· |
| | | byte LocationStatus = strParkVehicle.byLocationStatus; //车ä½è½¦è¾ç¶æ 0- æ 车ï¼1- æè½¦ |
| | | MonitoringSiteID = strParkVehicle.byMonitoringSiteID.toString(); |
| | | String plateNo = new String(strParkVehicle.struPlateInfo.sLicense, "GBK"); //车çå· |
| | | } catch (UnsupportedEncodingException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | //æ¥è¦å¾çä¿¡æ¯ |
| | | for (int i = 0; i < strParkVehicle.dwPicNum; i++) { |
| | | if (strParkVehicle.struPicInfo[i].dwDataLen > 0) { |
| | | SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | String newName = sf.format(new Date()); |
| | | FileOutputStream fout; |
| | | try { |
| | | String filename = "../pic/" + newName + "_ParkVehicle.jpg"; |
| | | fout = new FileOutputStream(filename); |
| | | //å°åèåå
¥æä»¶ |
| | | long offset = 0; |
| | | ByteBuffer buffers = strParkVehicle.struPicInfo[i].pBuffer.getByteBuffer(offset, strParkVehicle.struPicInfo[i].dwDataLen); |
| | | byte[] bytes = new byte[strParkVehicle.struPicInfo[i].dwDataLen]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | fout.write(bytes); |
| | | fout.close(); |
| | | } catch (FileNotFoundException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | | break; |
| | | case HCNetSDK.COMM_ALARMHOST_CID_ALARM://æ¥è¦ä¸»æºCIDæ¥åæ¥è¦ä¸ä¼ |
| | | HCNetSDK.NET_DVR_CID_ALARM strCIDalarm = new HCNetSDK.NET_DVR_CID_ALARM(); |
| | | strCIDalarm.write(); |
| | | Pointer pstrCIDalarm = strCIDalarm.getPointer(); |
| | | pstrCIDalarm.write(0, pAlarmInfo.getByteArray(0, strCIDalarm.size()), 0, strCIDalarm.size()); |
| | | strCIDalarm.read(); |
| | | try { |
| | | String TriggerTime = "" + String.format("%04d", strCIDalarm.struTriggerTime.wYear) + |
| | | String.format("%02d", strCIDalarm.struTriggerTime.byMonth) + |
| | | String.format("%02d", strCIDalarm.struTriggerTime.byDay) + |
| | | String.format("%02d", strCIDalarm.struTriggerTime.byDay) + |
| | | String.format("%02d", strCIDalarm.struTriggerTime.byHour) + |
| | | String.format("%02d", strCIDalarm.struTriggerTime.byMinute) + |
| | | String.format("%02d", strCIDalarm.struTriggerTime.bySecond); //è§¦åæ¥è¦æ¶é´ |
| | | String sCIDCode = new String(strCIDalarm.sCIDCode, "GBK"); //CIDäºä»¶å· |
| | | String sCIDDescribe = new String(strCIDalarm.sCIDDescribe, "GBK"); //CIDäºä»¶å |
| | | byte bySubSysNo = strCIDalarm.bySubSysNo; //åç³»ç»å·ï¼ |
| | | short wDefenceNo = strCIDalarm.wDefenceNo; //é²åºç¼å· |
| | | System.out.println("ãCIDäºä»¶ã" + "è§¦åæ¶é´ï¼" + TriggerTime + "CIDäºä»¶å·ï¼" + sCIDCode + "CIDäºä»¶åï¼" + sCIDDescribe + "åç³»ç»å·ï¼" + |
| | | bySubSysNo + "é²åºç¼å·ï¼" + wDefenceNo); |
| | | } catch (UnsupportedEncodingException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | break; |
| | | case HCNetSDK.COMM_IPC_AUXALARM_RESULT: //PIRæ¥è¦ãæ 线æ¥è¦ã弿æ¥è¦ä¿¡æ¯ |
| | | System.out.println("PIRæ¥è¦ãæ 线æ¥è¦ã弿æ¥è¦è§¦å"); |
| | | break; |
| | | case HCNetSDK.COMM_ISAPI_ALARM: //ISAPIåè®®æ¥è¦ä¿¡æ¯ |
| | | HCNetSDK.NET_DVR_ALARM_ISAPI_INFO struEventISAPI = new HCNetSDK.NET_DVR_ALARM_ISAPI_INFO(); |
| | | struEventISAPI.write(); |
| | | Pointer pEventISAPI = struEventISAPI.getPointer(); |
| | | pEventISAPI.write(0, pAlarmInfo.getByteArray(0, struEventISAPI.size()), 0, struEventISAPI.size()); |
| | | struEventISAPI.read(); |
| | | String sAlarmInfo = new String(pAlarmer.sDeviceIP); |
| | | //æ¥è¦æ°æ®ç±»åï¼0- invalidï¼1- xmlï¼2- json |
| | | sAlarmInfo = "æ¥è¦è®¾å¤IPï¼" + sAlarmInfo + "ï¼ISAPIåè®®æ¥è¦ä¿¡æ¯, æ°æ®æ ¼å¼:" + struEventISAPI.byDataType + |
| | | ", å¾ç个æ°:" + struEventISAPI.byPicturesNumber; |
| | | System.out.println(sAlarmInfo); |
| | | |
| | | //æ¥è¦æ°æ®ä¿å |
| | | SimpleDateFormat sf1 = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | String curTime1 = sf1.format(new Date()); |
| | | FileOutputStream foutdata; |
| | | try { |
| | | String jsonfilename = "../pic/" + new String(pAlarmer.sDeviceIP).trim() + curTime1 + "_ISAPI_Alarm_" + ".json"; |
| | | foutdata = new FileOutputStream(jsonfilename); |
| | | //å°åèåå
¥æä»¶ |
| | | ByteBuffer jsonbuffers = struEventISAPI.pAlarmData.getByteBuffer(0, struEventISAPI.dwAlarmDataLen); |
| | | byte[] jsonbytes = new byte[struEventISAPI.dwAlarmDataLen]; |
| | | jsonbuffers.rewind(); |
| | | jsonbuffers.get(jsonbytes); |
| | | foutdata.write(jsonbytes); |
| | | foutdata.close(); |
| | | } catch (FileNotFoundException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | //å¾çæ°æ®ä¿å |
| | | for (int i = 0; i < struEventISAPI.byPicturesNumber; i++) { |
| | | HCNetSDK.NET_DVR_ALARM_ISAPI_PICDATA struPicData = new HCNetSDK.NET_DVR_ALARM_ISAPI_PICDATA(); |
| | | struPicData.write(); |
| | | Pointer pPicData = struPicData.getPointer(); |
| | | pPicData.write(0, struEventISAPI.pPicPackData.getByteArray(i * struPicData.size(), struPicData.size()), 0, struPicData.size()); |
| | | struPicData.read(); |
| | | |
| | | FileOutputStream fout; |
| | | try { |
| | | String filename = "../pic/" + new String(pAlarmer.sDeviceIP).trim() + curTime1 + |
| | | "_ISAPIPic_" + i + "_" + new String(struPicData.szFilename).trim() + ".jpg"; |
| | | fout = new FileOutputStream(filename); |
| | | //å°åèåå
¥æä»¶ |
| | | long offset = 0; |
| | | ByteBuffer buffers = struPicData.pPicData.getByteBuffer(offset, struPicData.dwPicLen); |
| | | byte[] bytes = new byte[struPicData.dwPicLen]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | fout.write(bytes); |
| | | fout.close(); |
| | | } catch (FileNotFoundException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | break; |
| | | case HCNetSDK.COMM_VCA_ALARM: // æºè½æ£æµéç¨æ¥è¦(Jsonæè
XMLæ°æ®ç»æ) |
| | | sAlarmInfo = new String(pAlarmer.sDeviceIP); |
| | | //æ¥è¦æ°æ®ç±»åï¼0- invalidï¼1- xmlï¼2- json |
| | | sAlarmInfo = "æ¥è¦è®¾å¤IPï¼" + sAlarmInfo; |
| | | System.out.println(sAlarmInfo); |
| | | |
| | | SimpleDateFormat sf0 = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | String curTime0 = sf0.format(new Date()); |
| | | FileOutputStream Data; |
| | | String jsonfile = "../pic" + new String(pAlarmer.sDeviceIP).trim() + curTime0 + "_VCA_ALARM_" + ".json"; |
| | | try { |
| | | Data = new FileOutputStream(jsonfile); |
| | | //å°åèåå
¥æä»¶ |
| | | ByteBuffer dataBuffer = pAlarmInfo.getByteBuffer(0, dwBufLen); |
| | | byte[] dataByte = new byte[dwBufLen]; |
| | | dataBuffer.rewind(); |
| | | dataBuffer.get(dataByte); |
| | | Data.write(dataByte); |
| | | Data.close(); |
| | | } catch (FileNotFoundException e) { |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | break; |
| | | |
| | | //è¡ä¸ºåæä¿¡æ¯ |
| | | case HCNetSDK.COMM_ALARM_RULE: |
| | | HCNetSDK.NET_VCA_RULE_ALARM strVcaAlarm = new HCNetSDK.NET_VCA_RULE_ALARM(); |
| | | strVcaAlarm.write(); |
| | | Pointer pVCAInfo = strVcaAlarm.getPointer(); |
| | | pVCAInfo.write(0, pAlarmInfo.getByteArray(0, strVcaAlarm.size()), 0, strVcaAlarm.size()); |
| | | strVcaAlarm.read(); |
| | | |
| | | switch (strVcaAlarm.struRuleInfo.wEventTypeEx) { |
| | | case 1: //ç©¿è¶è¦æé¢ (è¶ç侦æµ) |
| | | System.out.println("ç©¿è¶è¦æé¢æ¥è¦åç"); |
| | | break; |
| | | case 2: //ç®æ è¿å
¥åºå |
| | | |
| | | System.out.println("ç®æ è¿å
¥åºåæ¥è¦åç"); |
| | | |
| | | break; |
| | | case 3: //ç®æ 离å¼åºå |
| | | System.out.println("ç®æ 离å¼åºåæ¥è¦è§¦å"); |
| | | case 4: //å¨çå
¥ä¾µ |
| | | |
| | | System.out.println("å¨çå
¥ä¾µæ¥è¦åç"); |
| | | |
| | | break; |
| | | case 5: //å¾å¾ |
| | | System.out.println("å¾å¾äºä»¶è§¦å"); |
| | | |
| | | break; |
| | | case 8: //å¿«éç§»å¨(å¥è·)ï¼ |
| | | System.out.println("å¿«éç§»å¨(å¥è·)äºä»¶è§¦å"); |
| | | break; |
| | | case 15: //ç¦»å² |
| | | System.out.println("离å²äºä»¶è§¦å"); |
| | | case 20: //åå°æ£æµ |
| | | System.out.println("åå°äºä»¶è§¦å"); |
| | | break; |
| | | case 44: //ç©ææº |
| | | |
| | | System.out.println("ç©ææºæ¥è¦åç"); |
| | | |
| | | if ((strVcaAlarm.dwPicDataLen > 0) && (strVcaAlarm.byPicTransType == 0)) { |
| | | SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | String newName = sf.format(new Date()); |
| | | FileOutputStream fout; |
| | | try { |
| | | String filename = "../pic/" + newName + "PLAY_CELLPHONE_" + ".jpg"; |
| | | fout = new FileOutputStream(filename); |
| | | //å°åèåå
¥æä»¶ |
| | | long offset = 0; |
| | | ByteBuffer buffers = strVcaAlarm.pImage.getByteBuffer(offset, strVcaAlarm.dwPicDataLen); |
| | | byte[] bytes = new byte[strVcaAlarm.dwPicDataLen]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | fout.write(bytes); |
| | | fout.close(); |
| | | } catch (FileNotFoundException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | break; |
| | | case 45: //æç»æ£æµ |
| | | System.out.println("æç»æ£æµäºä»¶è§¦å"); |
| | | default: |
| | | System.out.println("è¡ä¸ºäºä»¶ç±»å:" + strVcaAlarm.struRuleInfo.wEventTypeEx); |
| | | break; |
| | | } |
| | | break; |
| | | case HCNetSDK.COMM_ALARM_ACS: //é¨ç¦ä¸»æºæ¥è¦ä¿¡æ¯ |
| | | HCNetSDK.NET_DVR_ACS_ALARM_INFO strACSInfo = new HCNetSDK.NET_DVR_ACS_ALARM_INFO(); |
| | | strACSInfo.write(); |
| | | Pointer pACSInfo = strACSInfo.getPointer(); |
| | | pACSInfo.write(0, pAlarmInfo.getByteArray(0, strACSInfo.size()), 0, strACSInfo.size()); |
| | | strACSInfo.read(); |
| | | /**é¨ç¦äºä»¶ç详ç»ä¿¡æ¯è§£æï¼éè¿ä¸»æ¬¡ç±»åçå¯ä»¥å¤æå½åçå
·ä½é¨ç¦ç±»åï¼ä¾å¦ï¼ä¸»ç±»åï¼0X5 次类åï¼0x4b 表示人è¸è®¤è¯éè¿ï¼ |
| | | 主类åï¼0X5 次类åï¼0x4c 表示人è¸è®¤è¯å¤±è´¥ï¼*/ |
| | | System.out.println("ãé¨ç¦ä¸»æºæ¥è¦ä¿¡æ¯ãå¡å·ï¼" + new String(strACSInfo.struAcsEventInfo.byCardNo).trim() + "ï¼å¡ç±»åï¼" + |
| | | strACSInfo.struAcsEventInfo.byCardType + "ï¼æ¥è¦ä¸»ç±»åï¼" + Integer.toHexString(strACSInfo.dwMajor) + "ï¼æ¥è¦æ¬¡ç±»åï¼" + Integer.toHexString(strACSInfo.dwMinor)); |
| | | System.out.println("å·¥å·1ï¼" + strACSInfo.struAcsEventInfo.dwEmployeeNo); |
| | | //温度信æ¯ï¼å¦æè®¾å¤æ¯ææµæ¸©åè½ï¼äººè¸æ¸©åº¦ä¿¡æ¯ä»NET_DVR_ACS_EVENT_INFO_EXTEND_V20ç»æä½è·åï¼ |
| | | if (strACSInfo.byAcsEventInfoExtendV20 == 1) { |
| | | HCNetSDK.NET_DVR_ACS_EVENT_INFO_EXTEND_V20 strAcsInfoExV20 = new HCNetSDK.NET_DVR_ACS_EVENT_INFO_EXTEND_V20(); |
| | | strAcsInfoExV20.write(); |
| | | Pointer pAcsInfoExV20 = strAcsInfoExV20.getPointer(); |
| | | pAcsInfoExV20.write(0, strACSInfo.pAcsEventInfoExtendV20.getByteArray(0, strAcsInfoExV20.size()), 0, strAcsInfoExV20.size()); |
| | | strAcsInfoExV20.read(); |
| | | System.out.println("宿¶æ¸©åº¦å¼ï¼" + strAcsInfoExV20.fCurrTemperature); |
| | | } |
| | | //èå¤ç¶æ |
| | | if (strACSInfo.byAcsEventInfoExtend == 1) { |
| | | HCNetSDK.NET_DVR_ACS_EVENT_INFO_EXTEND strAcsInfoEx = new HCNetSDK.NET_DVR_ACS_EVENT_INFO_EXTEND(); |
| | | strAcsInfoEx.write(); |
| | | Pointer pAcsInfoEx = strAcsInfoEx.getPointer(); |
| | | pAcsInfoEx.write(0, strACSInfo.pAcsEventInfoExtend.getByteArray(0, strAcsInfoEx.size()), 0, strAcsInfoEx.size()); |
| | | strAcsInfoEx.read(); |
| | | System.out.println("èå¤ç¶æï¼" + strAcsInfoEx.byAttendanceStatus); |
| | | System.out.println("å·¥å·2ï¼" + new String(strAcsInfoEx.byEmployeeNo).trim()); |
| | | } |
| | | |
| | | /** |
| | | * æ¥è¦æ¶é´ |
| | | */ |
| | | String year = Integer.toString(strACSInfo.struTime.dwYear); |
| | | String SwipeTime = year + strACSInfo.struTime.dwMonth + strACSInfo.struTime.dwDay + strACSInfo.struTime.dwHour + strACSInfo.struTime.dwMinute + |
| | | strACSInfo.struTime.dwSecond; |
| | | if (strACSInfo.dwPicDataLen > 0) { |
| | | // SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | // String newName = sf.format(new Date()); |
| | | FileOutputStream fout; |
| | | try { |
| | | /** |
| | | * 人è¸ä¿åè·¯å¾ |
| | | */ |
| | | String filename = "../pic/" + SwipeTime + "_ACS_Event_" + new String(strACSInfo.struAcsEventInfo.byCardNo).trim() + ".jpg"; |
| | | fout = new FileOutputStream(filename); |
| | | //å°åèåå
¥æä»¶ |
| | | long offset = 0; |
| | | ByteBuffer buffers = strACSInfo.pPicData.getByteBuffer(offset, strACSInfo.dwPicDataLen); |
| | | byte[] bytes = new byte[strACSInfo.dwPicDataLen]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | fout.write(bytes); |
| | | fout.close(); |
| | | } catch (FileNotFoundException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | break; |
| | | case HCNetSDK.COMM_ID_INFO_ALARM: //身份è¯ä¿¡æ¯ |
| | | HCNetSDK.NET_DVR_ID_CARD_INFO_ALARM strIDCardInfo = new HCNetSDK.NET_DVR_ID_CARD_INFO_ALARM(); |
| | | strIDCardInfo.write(); |
| | | Pointer pIDCardInfo = strIDCardInfo.getPointer(); |
| | | pIDCardInfo.write(0, pAlarmInfo.getByteArray(0, strIDCardInfo.size()), 0, strIDCardInfo.size()); |
| | | strIDCardInfo.read(); |
| | | System.out.println("æ¥è¦ä¸»ç±»åï¼" + Integer.toHexString(strIDCardInfo.dwMajor) + "ï¼æ¥è¦æ¬¡ç±»åï¼" + Integer.toHexString(strIDCardInfo.dwMinor)); |
| | | /** |
| | | * 身份è¯ä¿¡æ¯ |
| | | */ |
| | | String IDnum = new String(strIDCardInfo.struIDCardCfg.byIDNum).trim(); |
| | | System.out.println("ã身份è¯ä¿¡æ¯ãï¼èº«ä»½è¯å·ç ï¼" + IDnum + "ï¼å§åï¼" + |
| | | new String(strIDCardInfo.struIDCardCfg.byName).trim() + "ï¼ä½åï¼" + new String(strIDCardInfo.struIDCardCfg.byAddr)); |
| | | |
| | | /** |
| | | * æ¥è¦æ¶é´ |
| | | */ |
| | | String year1 = Integer.toString(strIDCardInfo.struSwipeTime.wYear); |
| | | String SwipeTime1 = year1 + strIDCardInfo.struSwipeTime.byMonth + strIDCardInfo.struSwipeTime.byDay + strIDCardInfo.struSwipeTime.byHour + strIDCardInfo.struSwipeTime.byMinute + |
| | | strIDCardInfo.struSwipeTime.bySecond; |
| | | /** |
| | | * ä¿åå¾ç |
| | | */ |
| | | //身份è¯å¾ç |
| | | if (strIDCardInfo.dwPicDataLen > 0 || strIDCardInfo.pPicData != null) { |
| | | // SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | // String nowtime = sf.format(new Date()); |
| | | FileOutputStream fout; |
| | | try { |
| | | String filename = "../pic/" + SwipeTime1 + "_" + IDnum + ".jpg"; |
| | | fout = new FileOutputStream(filename); |
| | | //å°åèåå
¥æä»¶ |
| | | long offset = 0; |
| | | ByteBuffer buffers = strIDCardInfo.pPicData.getByteBuffer(offset, strIDCardInfo.dwPicDataLen); |
| | | byte[] bytes = new byte[strIDCardInfo.dwPicDataLen]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | fout.write(bytes); |
| | | fout.close(); |
| | | } catch (FileNotFoundException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | if (strIDCardInfo.dwCapturePicDataLen > 0 || strIDCardInfo.pCapturePicData != null) { |
| | | // SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | // String nowtime = sf.format(new Date()); |
| | | FileOutputStream fout; |
| | | try { |
| | | /** |
| | | * 人è¸å¾çä¿åè·¯å¾ |
| | | */ |
| | | String filename = "../pic/" + SwipeTime1 + "_CapturePic_" + ".jpg"; |
| | | fout = new FileOutputStream(filename); |
| | | //å°åèåå
¥æä»¶ |
| | | long offset = 0; |
| | | ByteBuffer buffers = strIDCardInfo.pCapturePicData.getByteBuffer(offset, strIDCardInfo.dwCapturePicDataLen); |
| | | byte[] bytes = new byte[strIDCardInfo.dwCapturePicDataLen]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | fout.write(bytes); |
| | | fout.close(); |
| | | } catch (FileNotFoundException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | break; |
| | | |
| | | case HCNetSDK.COMM_ALARM_VIDEO_INTERCOM: //å¯è§å¯¹è®²æ¥è¦ä¿¡æ¯ |
| | | System.out.println("å¯è§å¯¹è®²æ¥è¦è§¦å"); |
| | | |
| | | |
| | | break; |
| | | case HCNetSDK.COMM_UPLOAD_VIDEO_INTERCOM_EVENT: //å¯è§å¯¹è®²äºä»¶è®°å½ä¿¡æ¯ |
| | | System.out.println("å¯è§å¯¹è®²äºä»¶è®°å½æ¥è¦è§¦å"); |
| | | |
| | | |
| | | break; |
| | | |
| | | case HCNetSDK.COMM_UPLOAD_FACESNAP_RESULT: //宿¶äººè¸ææä¸ä¼ |
| | | System.out.println("UPLOAD_FACESNAP_Alarm"); |
| | | HCNetSDK.NET_VCA_FACESNAP_RESULT strFaceSnapInfo = new HCNetSDK.NET_VCA_FACESNAP_RESULT(); |
| | | strFaceSnapInfo.write(); |
| | | Pointer pFaceSnapInfo = strFaceSnapInfo.getPointer(); |
| | | pFaceSnapInfo.write(0, pAlarmInfo.getByteArray(0, strFaceSnapInfo.size()), 0, strFaceSnapInfo.size()); |
| | | strFaceSnapInfo.read(); |
| | | |
| | | //äºä»¶æ¶é´ |
| | | int dwYear = (strFaceSnapInfo.dwAbsTime >> 26) + 2000; |
| | | int dwMonth = (strFaceSnapInfo.dwAbsTime >> 22) & 15; |
| | | int dwDay = (strFaceSnapInfo.dwAbsTime >> 17) & 31; |
| | | int dwHour = (strFaceSnapInfo.dwAbsTime >> 12) & 31; |
| | | int dwMinute = (strFaceSnapInfo.dwAbsTime >> 6) & 63; |
| | | int dwSecond = (strFaceSnapInfo.dwAbsTime >> 0) & 63; |
| | | |
| | | String strAbsTime = "" + String.format("%04d", dwYear) + |
| | | String.format("%02d", dwMonth) + |
| | | String.format("%02d", dwDay) + |
| | | String.format("%02d", dwHour) + |
| | | String.format("%02d", dwMinute) + |
| | | String.format("%02d", dwSecond); |
| | | |
| | | //人è¸å±æ§ä¿¡æ¯ |
| | | String sFaceAlarmInfo = "Absæ¶é´:" + strAbsTime + ",å¹´é¾:" + strFaceSnapInfo.struFeature.byAge + |
| | | ",æ§å«ï¼" + strFaceSnapInfo.struFeature.bySex + ",æ¯å¦æ´å£ç½©ï¼" + |
| | | strFaceSnapInfo.struFeature.byMask + ",æ¯å¦å¾®ç¬ï¼" + strFaceSnapInfo.struFeature.bySmile; |
| | | System.out.println("人è¸ä¿¡æ¯ï¼" + sFaceAlarmInfo); |
| | | |
| | | //äººè¸æµæ¸©ä¿¡æ¯ |
| | | if (strFaceSnapInfo.byAddInfo == 1) { |
| | | HCNetSDK.NET_VCA_FACESNAP_ADDINFO strAddInfo = new HCNetSDK.NET_VCA_FACESNAP_ADDINFO(); |
| | | strAddInfo.write(); |
| | | Pointer pAddInfo = strAddInfo.getPointer(); |
| | | pAddInfo.write(0, strFaceSnapInfo.pAddInfoBuffer.getByteArray(0, strAddInfo.size()), 0, strAddInfo.size()); |
| | | strAddInfo.read(); |
| | | |
| | | String sTemperatureInfo = "æµæ¸©æ¯å¦å¼å¯ï¼" + strAddInfo.byFaceSnapThermometryEnabled + "äººè¸æ¸©åº¦ï¼" + strAddInfo.fFaceTemperature + "温度æ¯å¦å¼å¸¸" |
| | | + strAddInfo.byIsAbnomalTemperature + "æ¥è¦æ¸©åº¦éå¼ï¼" + strAddInfo.fAlarmTemperature; |
| | | System.out.println("äººè¸æ¸©åº¦ä¿¡æ¯:" + sTemperatureInfo); |
| | | |
| | | } |
| | | |
| | | try { |
| | | SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");//è®¾ç½®æ¥ææ ¼å¼ |
| | | String time = df.format(new Date());// new Date()为è·åå½åç³»ç»æ¶é´ |
| | | |
| | | //人è¸å¾çåæä»¶ |
| | | FileOutputStream small = new FileOutputStream("../pic/" + time + "small.jpg"); |
| | | FileOutputStream big = new FileOutputStream("../pic/" + time + "big.jpg"); |
| | | try { |
| | | small.write(strFaceSnapInfo.pBuffer1.getByteArray(0, strFaceSnapInfo.dwFacePicLen), 0, strFaceSnapInfo.dwFacePicLen); |
| | | small.close(); |
| | | } catch (IOException ex) { |
| | | ex.printStackTrace(); |
| | | } |
| | | try { |
| | | big.write(strFaceSnapInfo.pBuffer2.getByteArray(0, strFaceSnapInfo.dwBackgroundPicLen), 0, strFaceSnapInfo.dwBackgroundPicLen); |
| | | big.close(); |
| | | } catch (IOException ex) { |
| | | ex.printStackTrace(); |
| | | } |
| | | |
| | | } catch (FileNotFoundException ex) { |
| | | ex.printStackTrace(); |
| | | } |
| | | break; |
| | | |
| | | case HCNetSDK.COMM_SNAP_MATCH_ALARM: //人è¸é»å忝坹æ¥è¦ |
| | | HCNetSDK.NET_VCA_FACESNAP_MATCH_ALARM strFaceSnapMatch = new HCNetSDK.NET_VCA_FACESNAP_MATCH_ALARM(); |
| | | strFaceSnapMatch.write(); |
| | | Pointer pFaceSnapMatch = strFaceSnapMatch.getPointer(); |
| | | pFaceSnapMatch.write(0, pAlarmInfo.getByteArray(0, strFaceSnapMatch.size()), 0, strFaceSnapMatch.size()); |
| | | strFaceSnapMatch.read(); |
| | | //æ¯å¯¹ç»æï¼0-ä¿çï¼1-æ¯å¯¹æåï¼2-æ¯å¯¹å¤±è´¥ |
| | | String sFaceSnapMatchInfo = "æ¯å¯¹ç»æï¼" + strFaceSnapMatch.byContrastStatus + ",ç¸ä¼¼åº¦ï¼" + strFaceSnapMatch.fSimilarity; |
| | | System.out.println(sFaceSnapMatchInfo); |
| | | if (strFaceSnapMatch.struBlockListInfo.dwFDIDLen > 0) { |
| | | long offset1 = 0; |
| | | ByteBuffer buffers1 = strFaceSnapMatch.struBlockListInfo.pFDID.getByteBuffer(offset1, strFaceSnapMatch.struBlockListInfo.dwFDIDLen); |
| | | byte[] bytes1 = new byte[strFaceSnapMatch.struBlockListInfo.dwFDIDLen]; |
| | | buffers1.get(bytes1); |
| | | System.out.println("人è¸åºID:" + new String(bytes1)); |
| | | } |
| | | if (strFaceSnapMatch.struBlockListInfo.dwPIDLen > 0) { |
| | | long offset2 = 0; |
| | | ByteBuffer buffers2 = strFaceSnapMatch.struBlockListInfo.pPID.getByteBuffer(offset2, strFaceSnapMatch.struBlockListInfo.dwPIDLen); |
| | | byte[] bytes2 = new byte[strFaceSnapMatch.struBlockListInfo.dwPIDLen]; |
| | | buffers2.get(bytes2); |
| | | System.out.println("å¾çIDï¼" + new String(bytes2)); |
| | | } |
| | | //ææåºéå ä¿¡æ¯è§£æï¼è§£æäººè¸æµæ¸©æ¸©åº¦,äººè¸æ¸©åº¦åæ¾å¨éä»¶ä¿¡æ¯çXMLæ¥æä¸ï¼èç¹ï¼ <currTemperature> ï¼ |
| | | SimpleDateFormat sf2 = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | String curTime2 = sf2.format(new Date()); |
| | | FileOutputStream AddtionData; |
| | | String AddtionFile = "../pic" + new String(pAlarmer.sDeviceIP).trim() + curTime2 + "_FCAdditionInfo_" + ".xml"; |
| | | try { |
| | | Data = new FileOutputStream(AddtionFile); |
| | | //å°åèåå
¥æä»¶ |
| | | ByteBuffer dataBuffer = strFaceSnapMatch.struBlockListInfo.struBlockListInfo.pFCAdditionInfoBuffer.getByteBuffer(0, strFaceSnapMatch.struBlockListInfo.struBlockListInfo.dwFCAdditionInfoLen); |
| | | byte[] dataByte = new byte[dwBufLen]; |
| | | dataBuffer.rewind(); |
| | | dataBuffer.get(dataByte); |
| | | Data.write(dataByte); |
| | | Data.close(); |
| | | } catch (FileNotFoundException e) { |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | //äººè¸æ¯å¯¹æ¥è¦å¾çä¿åï¼å¾çæ ¼å¼äºè¿å¶ |
| | | if ((strFaceSnapMatch.dwSnapPicLen > 0) && (strFaceSnapMatch.byPicTransType == 0)) { |
| | | SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | String newName = sf.format(new Date()); |
| | | FileOutputStream fout; |
| | | try { |
| | | String filename = "../pic/" + newName + "_pSnapPicBuffer" + ".jpg"; |
| | | fout = new FileOutputStream(filename); |
| | | //å°åèåå
¥æä»¶ |
| | | long offset = 0; |
| | | ByteBuffer buffers = strFaceSnapMatch.pSnapPicBuffer.getByteBuffer(offset, strFaceSnapMatch.dwSnapPicLen); |
| | | byte[] bytes = new byte[strFaceSnapMatch.dwSnapPicLen]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | fout.write(bytes); |
| | | fout.close(); |
| | | } catch (FileNotFoundException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | if ((strFaceSnapMatch.struSnapInfo.dwSnapFacePicLen > 0) && (strFaceSnapMatch.byPicTransType == 0)) { |
| | | SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | String newName = sf.format(new Date()); |
| | | FileOutputStream fout; |
| | | try { |
| | | String filename = "../pic/" + newName + "_struSnapInfo_pBuffer1" + ".jpg"; |
| | | fout = new FileOutputStream(filename); |
| | | //å°åèåå
¥æä»¶ |
| | | long offset = 0; |
| | | ByteBuffer buffers = strFaceSnapMatch.struSnapInfo.pBuffer1.getByteBuffer(offset, strFaceSnapMatch.struSnapInfo.dwSnapFacePicLen); |
| | | byte[] bytes = new byte[strFaceSnapMatch.struSnapInfo.dwSnapFacePicLen]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | fout.write(bytes); |
| | | fout.close(); |
| | | } catch (FileNotFoundException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | if ((strFaceSnapMatch.struBlockListInfo.dwBlockListPicLen > 0) && (strFaceSnapMatch.byPicTransType == 0)) { |
| | | SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | String newName = sf.format(new Date()); |
| | | FileOutputStream fout; |
| | | try { |
| | | String filename = "../pic/" + newName + "_fSimilarity_" + strFaceSnapMatch.fSimilarity + "_struBlackListInfo_pBuffer1" + ".jpg"; |
| | | fout = new FileOutputStream(filename); |
| | | //å°åèåå
¥æä»¶ |
| | | long offset = 0; |
| | | ByteBuffer buffers = strFaceSnapMatch.struBlockListInfo.pBuffer1.getByteBuffer(offset, strFaceSnapMatch.struBlockListInfo.dwBlockListPicLen); |
| | | byte[] bytes = new byte[strFaceSnapMatch.struBlockListInfo.dwBlockListPicLen]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | fout.write(bytes); |
| | | fout.close(); |
| | | } catch (FileNotFoundException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | //äººè¸æ¯å¯¹æ¥è¦å¾çä¿åï¼å¾çæ ¼å¼URLæ ¼å¼ |
| | | if ((strFaceSnapMatch.dwSnapPicLen > 0) && (strFaceSnapMatch.byPicTransType == 1)) { |
| | | |
| | | long offset = 0; |
| | | ByteBuffer buffers = strFaceSnapMatch.pSnapPicBuffer.getByteBuffer(offset, strFaceSnapMatch.dwSnapPicLen); |
| | | byte[] bytes = new byte[strFaceSnapMatch.dwSnapPicLen]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | String SnapPicUrl = new String(bytes); |
| | | System.out.println("ææå¾URLï¼" + SnapPicUrl); |
| | | } |
| | | if ((strFaceSnapMatch.struSnapInfo.dwSnapFacePicLen > 0) && (strFaceSnapMatch.byPicTransType == 1)) { |
| | | |
| | | long offset = 0; |
| | | ByteBuffer buffers = strFaceSnapMatch.struSnapInfo.pBuffer1.getByteBuffer(offset, strFaceSnapMatch.struSnapInfo.dwSnapFacePicLen); |
| | | byte[] bytes = new byte[strFaceSnapMatch.struSnapInfo.dwSnapFacePicLen]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | String SnapPicUrl = new String(bytes); |
| | | System.out.println("ææäººè¸åå¾URLï¼" + SnapPicUrl); |
| | | } |
| | | if ((strFaceSnapMatch.struBlockListInfo.dwBlockListPicLen > 0) && (strFaceSnapMatch.byPicTransType == 1)) { |
| | | |
| | | long offset = 0; |
| | | ByteBuffer buffers = strFaceSnapMatch.struBlockListInfo.pBuffer1.getByteBuffer(offset, strFaceSnapMatch.struBlockListInfo.dwBlockListPicLen); |
| | | byte[] bytes = new byte[strFaceSnapMatch.struBlockListInfo.dwBlockListPicLen]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | String SnapPicUrl = new String(bytes); |
| | | System.out.println("人è¸åºäººè¸å¾çURLï¼" + SnapPicUrl); |
| | | } |
| | | |
| | | |
| | | break; |
| | | // 客æµéæ¥è¦ä¿¡æ¯ |
| | | case HCNetSDK.COMM_ALARM_PDC: |
| | | HCNetSDK.NET_DVR_PDC_ALRAM_INFO strPDCResult = new HCNetSDK.NET_DVR_PDC_ALRAM_INFO(); |
| | | strPDCResult.write(); |
| | | Pointer pPDCInfo = strPDCResult.getPointer(); |
| | | pPDCInfo.write(0, pAlarmInfo.getByteArray(0, strPDCResult.size()), 0, strPDCResult.size()); |
| | | strPDCResult.read(); |
| | | // byMode=0-宿¶ç»è®¡ç»æ(èåä½ä¸struStatFrameææ)ï¼ |
| | | if (strPDCResult.byMode == 0) { |
| | | strPDCResult.uStatModeParam.setType(HCNetSDK.NET_DVR_STATFRAME.class); |
| | | String sAlarmPDC0Info = "宿¶å®¢æµéç»è®¡ï¼è¿å
¥äººæ°ï¼" + strPDCResult.dwEnterNum + "ï¼ç¦»å¼äººæ°ï¼" + strPDCResult.dwLeaveNum + |
| | | ", byMode:" + strPDCResult.byMode + ", dwRelativeTime:" + strPDCResult.uStatModeParam.struStatFrame.dwRelativeTime + |
| | | ", dwAbsTime:" + strPDCResult.uStatModeParam.struStatFrame.dwAbsTime; |
| | | } |
| | | // byMode=1-卿ç»è®¡ç»æ(èåä½ä¸struStatTimeææ)ï¼ |
| | | if (strPDCResult.byMode == 1) { |
| | | strPDCResult.uStatModeParam.setType(HCNetSDK.NET_DVR_STATTIME.class); |
| | | String strtmStart = "" + String.format("%04d", strPDCResult.uStatModeParam.struStatTime.tmStart.dwYear) + |
| | | String.format("%02d", strPDCResult.uStatModeParam.struStatTime.tmStart.dwMonth) + |
| | | String.format("%02d", strPDCResult.uStatModeParam.struStatTime.tmStart.dwDay) + |
| | | String.format("%02d", strPDCResult.uStatModeParam.struStatTime.tmStart.dwHour) + |
| | | String.format("%02d", strPDCResult.uStatModeParam.struStatTime.tmStart.dwMinute) + |
| | | String.format("%02d", strPDCResult.uStatModeParam.struStatTime.tmStart.dwSecond); |
| | | String strtmEnd = "" + String.format("%04d", strPDCResult.uStatModeParam.struStatTime.tmEnd.dwYear) + |
| | | String.format("%02d", strPDCResult.uStatModeParam.struStatTime.tmEnd.dwMonth) + |
| | | String.format("%02d", strPDCResult.uStatModeParam.struStatTime.tmEnd.dwDay) + |
| | | String.format("%02d", strPDCResult.uStatModeParam.struStatTime.tmEnd.dwHour) + |
| | | String.format("%02d", strPDCResult.uStatModeParam.struStatTime.tmEnd.dwMinute) + |
| | | String.format("%02d", strPDCResult.uStatModeParam.struStatTime.tmEnd.dwSecond); |
| | | String sAlarmPDC1Info = "卿æ§å®¢æµéç»è®¡ï¼è¿å
¥äººæ°ï¼" + strPDCResult.dwEnterNum + "ï¼ç¦»å¼äººæ°ï¼" + strPDCResult.dwLeaveNum + |
| | | ", byMode:" + strPDCResult.byMode + ", tmStart:" + strtmStart + ",tmEnd :" + strtmEnd; |
| | | } |
| | | break; |
| | | case HCNetSDK.COMM_ALARM_V30: //ç§»å¨ä¾¦æµãè§é¢ä¸¢å¤±ã鮿¡ãIOä¿¡å·éçæ¥è¦ä¿¡æ¯(V3.0以ä¸çæ¬æ¯æç设å¤) |
| | | HCNetSDK.NET_DVR_ALARMINFO_V30 struAlarmInfo = new HCNetSDK.NET_DVR_ALARMINFO_V30(); |
| | | struAlarmInfo.write(); |
| | | Pointer pAlarmInfo_V30 = struAlarmInfo.getPointer(); |
| | | pAlarmInfo_V30.write(0, pAlarmInfo.getByteArray(0, struAlarmInfo.size()), 0, struAlarmInfo.size()); |
| | | struAlarmInfo.read(); |
| | | System.out.println("æ¥è¦ç±»åï¼" + struAlarmInfo.dwAlarmType); // 3-ç§»å¨ä¾¦æµ |
| | | break; |
| | | case HCNetSDK.COMM_ALARM_V40: //ç§»å¨ä¾¦æµãè§é¢ä¸¢å¤±ã鮿¡ãIOä¿¡å·éçæ¥è¦ä¿¡æ¯ï¼æ¥è¦æ°æ®ä¸ºå¯åé¿ |
| | | HCNetSDK.NET_DVR_ALARMINFO_V40 struAlarmInfoV40 = new HCNetSDK.NET_DVR_ALARMINFO_V40(); |
| | | struAlarmInfoV40.write(); |
| | | Pointer pAlarmInfoV40 = struAlarmInfoV40.getPointer(); |
| | | pAlarmInfoV40.write(0, pAlarmInfo.getByteArray(0, struAlarmInfoV40.size()), 0, struAlarmInfoV40.size()); |
| | | struAlarmInfoV40.read(); |
| | | System.out.println("æ¥è¦ç±»å:" + struAlarmInfoV40.struAlarmFixedHeader.dwAlarmType); //3-ç§»å¨ä¾¦æµ |
| | | break; |
| | | case HCNetSDK.COMM_THERMOMETRY_ALARM: //温度æ¥è¦ä¿¡æ¯ |
| | | HCNetSDK.NET_DVR_THERMOMETRY_ALARM struTemInfo = new HCNetSDK.NET_DVR_THERMOMETRY_ALARM(); |
| | | struTemInfo.write(); |
| | | Pointer pTemInfo = struTemInfo.getPointer(); |
| | | pTemInfo.write(0, pAlarmInfo.getByteArray(0, struTemInfo.size()), 0, struTemInfo.size()); |
| | | struTemInfo.read(); |
| | | String sThermAlarmInfo = "è§åID:" + struTemInfo.byRuleID + "é¢ç½®ç¹å·ï¼" + struTemInfo.wPresetNo + "æ¥è¦ç级ï¼" + struTemInfo.byAlarmLevel + "æ¥è¦ç±»åï¼" + |
| | | struTemInfo.byAlarmType + "å½å温度ï¼" + struTemInfo.fCurrTemperature; |
| | | System.out.println(sThermAlarmInfo); |
| | | //å¯è§å
å¾çä¿å |
| | | if ((struTemInfo.dwPicLen > 0) && (struTemInfo.byPicTransType == 0)) { |
| | | SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | String newName = sf.format(new Date()); |
| | | FileOutputStream fout; |
| | | |
| | | try { |
| | | String filename = "../pic/" + newName + "_" + struTemInfo.fCurrTemperature + ".jpg"; |
| | | fout = new FileOutputStream(filename); |
| | | //å°åèåå
¥æä»¶ |
| | | long offset = 0; |
| | | ByteBuffer buffers = struTemInfo.pPicBuff.getByteBuffer(offset, struTemInfo.dwPicLen); |
| | | byte[] bytes = new byte[struTemInfo.dwPicLen]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | fout.write(bytes); |
| | | fout.close(); |
| | | } catch (FileNotFoundException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | if ((struTemInfo.dwThermalPicLen > 0) && (struTemInfo.byPicTransType == 0)) { |
| | | SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | String newName = sf.format(new Date()); |
| | | FileOutputStream fout; |
| | | |
| | | try { |
| | | String filename = "../pic/" + newName + "_" + "_ThermalPiC" + ".jpg"; |
| | | fout = new FileOutputStream(filename); |
| | | //å°åèåå
¥æä»¶ |
| | | long offset = 0; |
| | | ByteBuffer buffers = struTemInfo.pThermalPicBuff.getByteBuffer(offset, struTemInfo.dwThermalPicLen); |
| | | byte[] bytes = new byte[struTemInfo.dwThermalPicLen]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | fout.write(bytes); |
| | | fout.close(); |
| | | } catch (FileNotFoundException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | } |
| | | break; |
| | | case HCNetSDK.COMM_THERMOMETRY_DIFF_ALARM: //æ¸©å·®æ£æµæ¥è¦ |
| | | HCNetSDK.NET_DVR_THERMOMETRY_DIFF_ALARM strThermDiffAlarm = new HCNetSDK.NET_DVR_THERMOMETRY_DIFF_ALARM(); |
| | | strThermDiffAlarm.write(); |
| | | Pointer pTemDiffInfo = strThermDiffAlarm.getPointer(); |
| | | pTemDiffInfo.write(0, pAlarmInfo.getByteArray(0, strThermDiffAlarm.size()), 0, strThermDiffAlarm.size()); |
| | | strThermDiffAlarm.read(); |
| | | String sThremDiffInfo = "ééå·ï¼" + strThermDiffAlarm.dwChannel + ",æ¥è¦è§åï¼" + strThermDiffAlarm.byAlarmRule + "ï¼å½å温差ï¼" + strThermDiffAlarm.fCurTemperatureDiff; |
| | | System.out.println(sThremDiffInfo); |
| | | //å¯è§å
å¾çä¿å |
| | | if ((strThermDiffAlarm.dwPicLen > 0) && (strThermDiffAlarm.byPicTransType == 0)) { |
| | | SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | String newName = sf.format(new Date()); |
| | | FileOutputStream fout; |
| | | |
| | | try { |
| | | String filename = "../pic/" + newName + "_" + strThermDiffAlarm.fCurTemperatureDiff + ".jpg"; |
| | | fout = new FileOutputStream(filename); |
| | | //å°åèåå
¥æä»¶ |
| | | long offset = 0; |
| | | ByteBuffer buffers = strThermDiffAlarm.pPicBuff.getByteBuffer(offset, strThermDiffAlarm.dwPicLen); |
| | | byte[] bytes = new byte[strThermDiffAlarm.dwPicLen]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | fout.write(bytes); |
| | | fout.close(); |
| | | } catch (FileNotFoundException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | //çæåå¾çä¿å |
| | | if ((strThermDiffAlarm.dwThermalPicLen > 0) && (strThermDiffAlarm.byPicTransType == 0)) { |
| | | SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | String newName = sf.format(new Date()); |
| | | FileOutputStream fout; |
| | | |
| | | try { |
| | | String filename = "../pic/" + newName + "_" + "_ThermalDiffPiC" + ".jpg"; |
| | | fout = new FileOutputStream(filename); |
| | | //å°åèåå
¥æä»¶ |
| | | long offset = 0; |
| | | ByteBuffer buffers = strThermDiffAlarm.pThermalPicBuff.getByteBuffer(offset, strThermDiffAlarm.dwThermalPicLen); |
| | | byte[] bytes = new byte[strThermDiffAlarm.dwThermalPicLen]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | fout.write(bytes); |
| | | fout.close(); |
| | | } catch (FileNotFoundException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | } |
| | | break; |
| | | case HCNetSDK.COMM_ALARM_SHIPSDETECTION: //è¹åªæ£æµæ¥è¦ |
| | | HCNetSDK.NET_DVR_SHIPSDETECTION_ALARM struShipAlarm = new HCNetSDK.NET_DVR_SHIPSDETECTION_ALARM(); |
| | | struShipAlarm.write(); |
| | | Pointer pShipAlarm = struShipAlarm.getPointer(); |
| | | pShipAlarm.write(0, pAlarmInfo.getByteArray(0, struShipAlarm.size()), 0, struShipAlarm.size()); |
| | | struShipAlarm.read(); |
| | | String sShipAlarm = "ç»å¯¹æ¶é´ï¼" + struShipAlarm.dwAbsTime + ",æ£è·¨è¶æ£æµçº¿çè¹åªæ°:" + struShipAlarm.byShipsNum + ",è¹å¤´æ£æµçè¹åªæ° :" + struShipAlarm.byShipsNumHead |
| | | + ", è¹å°¾æ£æµçè¹åªæ° :" + struShipAlarm.byShipsNumEnd; |
| | | System.out.println(sShipAlarm); |
| | | //å¯è§å
å¾çä¿å |
| | | if ((struShipAlarm.dwPicLen > 0) && (struShipAlarm.byPicTransType == 0)) { |
| | | SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | String newName = sf.format(new Date()); |
| | | FileOutputStream fout; |
| | | |
| | | try { |
| | | String filename = "../pic/" + newName + "_ShipAlarm" + ".jpg"; |
| | | fout = new FileOutputStream(filename); |
| | | //å°åèåå
¥æä»¶ |
| | | long offset = 0; |
| | | ByteBuffer buffers = struShipAlarm.pPicBuffer.getByteBuffer(offset, struShipAlarm.dwPicLen); |
| | | byte[] bytes = new byte[struShipAlarm.dwPicLen]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | fout.write(bytes); |
| | | fout.close(); |
| | | } catch (FileNotFoundException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | //çæåå¾çä¿å |
| | | if ((struShipAlarm.dwThermalPicLen > 0) && (struShipAlarm.byPicTransType == 0)) { |
| | | SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | String newName = sf.format(new Date()); |
| | | FileOutputStream fout; |
| | | |
| | | try { |
| | | String filename = "../pic/" + newName + "_" + "_ThermalShipAlarm" + ".jpg"; |
| | | fout = new FileOutputStream(filename); |
| | | //å°åèåå
¥æä»¶ |
| | | long offset = 0; |
| | | ByteBuffer buffers = struShipAlarm.pThermalPicBuffer.getByteBuffer(offset, struShipAlarm.dwThermalPicLen); |
| | | byte[] bytes = new byte[struShipAlarm.dwThermalPicLen]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | fout.write(bytes); |
| | | fout.close(); |
| | | } catch (FileNotFoundException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | } |
| | | break; |
| | | |
| | | case HCNetSDK.COMM_FIREDETECTION_ALARM://çç«æ£æµ |
| | | HCNetSDK.NET_DVR_FIREDETECTION_ALARM struFireDecAlarm = new HCNetSDK.NET_DVR_FIREDETECTION_ALARM(); |
| | | struFireDecAlarm.write(); |
| | | Pointer pFireDecAlarm = struFireDecAlarm.getPointer(); |
| | | pFireDecAlarm.write(0, pAlarmInfo.getByteArray(0, struFireDecAlarm.size()), 0, struFireDecAlarm.size()); |
| | | struFireDecAlarm.read(); |
| | | String sFireDecAlarmInfo = "ç»å¯¹æ¶é´ï¼" + struFireDecAlarm.dwAbsTime + ",æ¥è¦åç±»åï¼" + struFireDecAlarm.byAlarmSubType + ",ç«ç¹æé«æ¸©åº¦ :" + |
| | | struFireDecAlarm.wFireMaxTemperature + ",ç«ç¹ç®æ è·ç¦»ï¼" + struFireDecAlarm.wTargetDistance; |
| | | System.out.println(sFireDecAlarmInfo); |
| | | //å¯è§å
å¾çä¿å |
| | | if ((struFireDecAlarm.dwVisiblePicLen > 0) && (struFireDecAlarm.byPicTransType == 0)) { |
| | | SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | String newName = sf.format(new Date()); |
| | | FileOutputStream fout; |
| | | |
| | | try { |
| | | String filename = "../pic/" + newName + "_FireDecAlarm" + ".jpg"; |
| | | fout = new FileOutputStream(filename); |
| | | //å°åèåå
¥æä»¶ |
| | | long offset = 0; |
| | | ByteBuffer buffers = struFireDecAlarm.pVisiblePicBuf.getByteBuffer(offset, struFireDecAlarm.dwVisiblePicLen); |
| | | byte[] bytes = new byte[struFireDecAlarm.dwVisiblePicLen]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | fout.write(bytes); |
| | | fout.close(); |
| | | } catch (FileNotFoundException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | //çæåå¾çä¿å |
| | | if ((struFireDecAlarm.dwPicDataLen > 0) && (struFireDecAlarm.byPicTransType == 0)) { |
| | | SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | String newName = sf.format(new Date()); |
| | | FileOutputStream fout; |
| | | |
| | | try { |
| | | String filename = "../pic/" + newName + "_" + "_ThermalFireAlarm" + ".jpg"; |
| | | fout = new FileOutputStream(filename); |
| | | //å°åèåå
¥æä»¶ |
| | | long offset = 0; |
| | | ByteBuffer buffers = struFireDecAlarm.pBuffer.getByteBuffer(offset, struFireDecAlarm.dwPicDataLen); |
| | | byte[] bytes = new byte[struFireDecAlarm.dwPicDataLen]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | fout.write(bytes); |
| | | fout.close(); |
| | | } catch (FileNotFoundException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | } |
| | | break; |
| | | case HCNetSDK.COMM_UPLOAD_AIOP_VIDEO: //AI弿¾å¹³å°æ¥å
¥è§é¢æ£æµæ¥è¦ä¿¡æ¯ |
| | | System.out.println("AI弿¾å¹³å°æ¥å
¥è§é¢æ£æµæ¥è¦ä¸ä¼ "); |
| | | HCNetSDK.NET_AIOP_VIDEO_HEAD struAIOPVideo = new HCNetSDK.NET_AIOP_VIDEO_HEAD(); |
| | | struAIOPVideo.write(); |
| | | Pointer pAIOPVideo = struAIOPVideo.getPointer(); |
| | | pAIOPVideo.write(0, pAlarmInfo.getByteArray(0, struAIOPVideo.size()), 0, struAIOPVideo.size()); |
| | | struAIOPVideo.read(); |
| | | System.out.println("è§é¢ä»»å¡ID" + new String(struAIOPVideo.szTaskID)); |
| | | System.out.println("ééå·ï¼" + struAIOPVideo.dwChannel); |
| | | System.out.println("æ£æµæ¨¡åå
ID" + new String(struAIOPVideo.szMPID)); |
| | | String strTime = String.format("%04d", struAIOPVideo.struTime.wYear) + |
| | | String.format("%02d", struAIOPVideo.struTime.wMonth) + |
| | | String.format("%02d", struAIOPVideo.struTime.wDay) + |
| | | String.format("%02d", struAIOPVideo.struTime.wHour) + |
| | | String.format("%02d", struAIOPVideo.struTime.wMinute) + |
| | | String.format("%02d", struAIOPVideo.struTime.wSecond) + |
| | | String.format("%03d", struAIOPVideo.struTime.wMilliSec); |
| | | //AIOPDataæ°æ® |
| | | if (struAIOPVideo.dwAIOPDataSize > 0) { |
| | | FileOutputStream fout; |
| | | try { |
| | | String filename = "../pic/" + new String(pAlarmer.sDeviceIP).trim() + |
| | | "_" + strTime + "_VideoData.json"; |
| | | fout = new FileOutputStream(filename); |
| | | //å°åèåå
¥æä»¶ |
| | | long offset = 0; |
| | | ByteBuffer buffers = struAIOPVideo.pBufferAIOPData.getByteBuffer(offset, struAIOPVideo.dwAIOPDataSize); |
| | | byte[] bytes = new byte[struAIOPVideo.dwAIOPDataSize]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | fout.write(bytes); |
| | | fout.close(); |
| | | } catch (FileNotFoundException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | //å¾çæ°æ®ä¿å |
| | | if (struAIOPVideo.dwPictureSize > 0) { |
| | | FileOutputStream fout; |
| | | try { |
| | | String filename = "../pic/" + new String(pAlarmer.sDeviceIP).trim() + |
| | | "_" + strTime + "_VideoPic.jpg"; |
| | | fout = new FileOutputStream(filename); |
| | | //å°åèåå
¥æä»¶ |
| | | long offset = 0; |
| | | ByteBuffer buffers = struAIOPVideo.pBufferPicture.getByteBuffer(offset, struAIOPVideo.dwPictureSize); |
| | | byte[] bytes = new byte[struAIOPVideo.dwPictureSize]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | fout.write(bytes); |
| | | fout.close(); |
| | | } catch (FileNotFoundException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | break; |
| | | case HCNetSDK.COMM_UPLOAD_AIOP_PICTURE: //AI弿¾å¹³å°æ¥å
¥å¾çæ£æµæ¥è¦ä¿¡æ¯ |
| | | System.out.println("AI弿¾å¹³å°æ¥å
¥å¾çæ£æµæ¥è¦ä¸ä¼ "); |
| | | HCNetSDK.NET_AIOP_PICTURE_HEAD struAIOPPic = new HCNetSDK.NET_AIOP_PICTURE_HEAD(); |
| | | struAIOPPic.write(); |
| | | Pointer pAIOPPic = struAIOPPic.getPointer(); |
| | | pAIOPPic.write(0, pAlarmInfo.getByteArray(0, struAIOPPic.size()), 0, struAIOPPic.size()); |
| | | struAIOPPic.read(); |
| | | System.out.println("å¾çIDï¼" + new String(struAIOPPic.szPID)); |
| | | System.out.println("æ£æµæ¨¡åå
IDï¼" + new String(struAIOPPic.szMPID)); |
| | | String strPicTime = "" + String.format("%04d", struAIOPPic.struTime.wYear) + |
| | | String.format("%02d", struAIOPPic.struTime.wMonth) + |
| | | String.format("%02d", struAIOPPic.struTime.wDay) + |
| | | String.format("%02d", struAIOPPic.struTime.wHour) + |
| | | String.format("%02d", struAIOPPic.struTime.wMinute) + |
| | | String.format("%02d", struAIOPPic.struTime.wSecond) + |
| | | String.format("%03d", struAIOPPic.struTime.wMilliSec); |
| | | //AIOPDataæ°æ® |
| | | if (struAIOPPic.dwAIOPDataSize > 0) { |
| | | FileOutputStream fout; |
| | | try { |
| | | String filename = "../pic/" + new String(pAlarmer.sDeviceIP).trim() + |
| | | "_" + strPicTime + "_AIO_PicData.json"; |
| | | fout = new FileOutputStream(filename); |
| | | //å°åèåå
¥æä»¶ |
| | | long offset = 0; |
| | | ByteBuffer buffers = struAIOPPic.pBufferAIOPData.getByteBuffer(offset, struAIOPPic.dwAIOPDataSize); |
| | | byte[] bytes = new byte[struAIOPPic.dwAIOPDataSize]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | fout.write(bytes); |
| | | fout.close(); |
| | | } catch (FileNotFoundException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | break; |
| | | |
| | | //AI弿¾å¹³å°æ¥å
¥è½®è¯¢æå¾æ£æµæ¥è¦ä¿¡æ¯ |
| | | case HCNetSDK.COMM_UPLOAD_AIOP_POLLING_SNAP: |
| | | System.out.println("AI弿¾å¹³å°æ¥å
¥è½®è¯¢æå¾æ£æµæ¥è¦äºä»¶ä¸ä¼ "); |
| | | HCNetSDK.NET_AIOP_POLLING_SNAP_HEAD strAiopPollingPic = new HCNetSDK.NET_AIOP_POLLING_SNAP_HEAD(); |
| | | strAiopPollingPic.write(); |
| | | Pointer pAiopPollingPic = strAiopPollingPic.getPointer(); |
| | | pAiopPollingPic.write(0, pAlarmInfo.getByteArray(0, strAiopPollingPic.size()), 0, strAiopPollingPic.size()); |
| | | strAiopPollingPic.read(); |
| | | System.out.println("ééå·ï¼" + strAiopPollingPic.dwChannel); |
| | | System.out.println("轮询æå¾ä»»å¡IDï¼" + new String(strAiopPollingPic.szTaskID)); |
| | | String strPollingPicTime = "" + String.format("%04d", strAiopPollingPic.struTime.wYear) + |
| | | String.format("%02d", strAiopPollingPic.struTime.wMonth) + |
| | | String.format("%02d", strAiopPollingPic.struTime.wDay) + |
| | | String.format("%02d", strAiopPollingPic.struTime.wHour) + |
| | | String.format("%02d", strAiopPollingPic.struTime.wMinute) + |
| | | String.format("%02d", strAiopPollingPic.struTime.wSecond) + |
| | | String.format("%03d", strAiopPollingPic.struTime.wMilliSec); |
| | | //AIOPDataæ°æ®ä¿å |
| | | if (strAiopPollingPic.dwAIOPDataSize > 0) { |
| | | FileOutputStream fout; |
| | | try { |
| | | String filename = "../pic/" + new String(pAlarmer.sDeviceIP).trim() + |
| | | "_" + strPollingPicTime + "_PollingPicData.json"; |
| | | fout = new FileOutputStream(filename); |
| | | //å°åèåå
¥æä»¶ |
| | | long offset = 0; |
| | | ByteBuffer buffers = strAiopPollingPic.pBufferAIOPData.getByteBuffer(offset, strAiopPollingPic.dwAIOPDataSize); |
| | | byte[] bytes = new byte[strAiopPollingPic.dwAIOPDataSize]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | fout.write(bytes); |
| | | fout.close(); |
| | | } catch (FileNotFoundException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | //轮询æå¾å¾çä¿å |
| | | if (strAiopPollingPic.dwPictureSize > 0) { |
| | | FileOutputStream fout; |
| | | try { |
| | | String filename = "../pic/" + new String(pAlarmer.sDeviceIP).trim() + |
| | | "_" + strPollingPicTime + "_PollingPic.jpg"; |
| | | fout = new FileOutputStream(filename); |
| | | //å°åèåå
¥æä»¶ |
| | | long offset = 0; |
| | | ByteBuffer buffers = strAiopPollingPic.pBufferPicture.getByteBuffer(offset, strAiopPollingPic.dwPictureSize); |
| | | byte[] bytes = new byte[strAiopPollingPic.dwPictureSize]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | fout.write(bytes); |
| | | fout.close(); |
| | | } catch (FileNotFoundException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | break; |
| | | //AI弿¾å¹³å°æ¥å
¥è½®è¯¢è§é¢æ£æµæ¥è¦ä¿¡æ¯ |
| | | case HCNetSDK.COMM_UPLOAD_AIOP_POLLING_VIDEO: |
| | | System.out.println("AI弿¾å¹³å°æ¥å
¥è½®è¯¢è§é¢æ£æµæ¥è¦äºä»¶ä¸ä¼ "); |
| | | HCNetSDK.NET_AIOP_POLLING_VIDEO_HEAD strAiopPollingVideo = new HCNetSDK.NET_AIOP_POLLING_VIDEO_HEAD(); |
| | | strAiopPollingVideo.write(); |
| | | Pointer pAiopPollingVideo = strAiopPollingVideo.getPointer(); |
| | | pAiopPollingVideo.write(0, pAlarmInfo.getByteArray(0, strAiopPollingVideo.size()), 0, strAiopPollingVideo.size()); |
| | | strAiopPollingVideo.read(); |
| | | System.out.println("ééå·ï¼" + strAiopPollingVideo.dwChannel); |
| | | System.out.println("轮询è§é¢ä»»å¡IDï¼" + new String(strAiopPollingVideo.szTaskID)); |
| | | String AiopPollingVideoTime = "" + String.format("%04d", strAiopPollingVideo.struTime.wYear) + |
| | | String.format("%02d", strAiopPollingVideo.struTime.wMonth) + |
| | | String.format("%02d", strAiopPollingVideo.struTime.wDay) + |
| | | String.format("%02d", strAiopPollingVideo.struTime.wHour) + |
| | | String.format("%02d", strAiopPollingVideo.struTime.wMinute) + |
| | | String.format("%02d", strAiopPollingVideo.struTime.wSecond) + |
| | | String.format("%03d", strAiopPollingVideo.struTime.wMilliSec); |
| | | //AIOPDataæ°æ®ä¿å |
| | | if (strAiopPollingVideo.dwAIOPDataSize > 0) { |
| | | FileOutputStream fout; |
| | | try { |
| | | String filename = "../pic/" + new String(pAlarmer.sDeviceIP).trim() + |
| | | "_" + AiopPollingVideoTime + "_PollingVideoData.json"; |
| | | fout = new FileOutputStream(filename); |
| | | //å°åèåå
¥æä»¶ |
| | | long offset = 0; |
| | | ByteBuffer buffers = strAiopPollingVideo.pBufferAIOPData.getByteBuffer(offset, strAiopPollingVideo.dwAIOPDataSize); |
| | | byte[] bytes = new byte[strAiopPollingVideo.dwAIOPDataSize]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | fout.write(bytes); |
| | | fout.close(); |
| | | } catch (FileNotFoundException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | //对åºåæå¾çæ°æ® |
| | | if (strAiopPollingVideo.dwPictureSize > 0) { |
| | | FileOutputStream fout; |
| | | try { |
| | | String filename = "../pic/" + new String(pAlarmer.sDeviceIP).trim() + |
| | | "_" + AiopPollingVideoTime + "_PollingVideo.jpg"; |
| | | fout = new FileOutputStream(filename); |
| | | //å°åèåå
¥æä»¶ |
| | | long offset = 0; |
| | | ByteBuffer buffers = strAiopPollingVideo.pBufferPicture.getByteBuffer(offset, strAiopPollingVideo.dwPictureSize); |
| | | byte[] bytes = new byte[strAiopPollingVideo.dwPictureSize]; |
| | | buffers.rewind(); |
| | | buffers.get(bytes); |
| | | fout.write(bytes); |
| | | fout.close(); |
| | | } catch (FileNotFoundException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | break; |
| | | default: |
| | | System.out.println("æ¥è¦ç±»å" + Integer.toHexString(lCommand)); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |