123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- package com.gzlh.device.face.hkutils;
- import com.gzlh.config.hksdk.HCNetSDK;
- /**
- * @create 2021-04-13-15:23
- * 功能:透传接口实现,透传ISAPI命令
- */
- public final class transIsapi {
- public static String get_isapi(int lUserID, String url,HCNetSDK hcNetSDK) {
- HCNetSDK.NET_DVR_XML_CONFIG_INPUT struXMLInput = new HCNetSDK.NET_DVR_XML_CONFIG_INPUT();
- struXMLInput.read();
- HCNetSDK.BYTE_ARRAY stringRequest = new HCNetSDK.BYTE_ARRAY(1024);
- stringRequest.read();
- //输入ISAPI协议命令
- System.arraycopy(url.getBytes(), 0, stringRequest.byValue, 0, url.length());
- stringRequest.write();
- struXMLInput.dwSize = struXMLInput.size();
- struXMLInput.lpRequestUrl = stringRequest.getPointer();
- struXMLInput.dwRequestUrlLen = url.length();
- struXMLInput.lpInBuffer = null;
- struXMLInput.dwInBufferSize = 0;
- struXMLInput.write();
- HCNetSDK.BYTE_ARRAY stringXMLOut = new HCNetSDK.BYTE_ARRAY(8 * 1024);
- stringXMLOut.read();
- HCNetSDK.BYTE_ARRAY struXMLStatus = new HCNetSDK.BYTE_ARRAY(1024);
- struXMLStatus.read();
- HCNetSDK.NET_DVR_XML_CONFIG_OUTPUT struXMLOutput = new HCNetSDK.NET_DVR_XML_CONFIG_OUTPUT();
- struXMLOutput.read();
- struXMLOutput.dwSize = struXMLOutput.size();
- struXMLOutput.lpOutBuffer = stringXMLOut.getPointer();
- struXMLOutput.dwOutBufferSize = stringXMLOut.size();
- struXMLOutput.lpStatusBuffer = struXMLStatus.getPointer();
- struXMLOutput.dwStatusSize = struXMLStatus.size();
- struXMLOutput.write();
- if (!hcNetSDK.NET_DVR_STDXMLConfig(lUserID, struXMLInput, struXMLOutput)) {
- int iErr = hcNetSDK.NET_DVR_GetLastError();
- System.err.println("NET_DVR_STDXMLConfig失败,错误号" + iErr+"----URL:"+url);
- return null;
- } else {
- stringXMLOut.read();
- System.out.println("输出文本大小:" + struXMLOutput.dwReturnedXMLSize);
- //打印输出XML文本
- String strOutXML = new String(stringXMLOut.byValue).trim();
- System.out.println(strOutXML);
- struXMLStatus.read();
- String strStatus = new String(struXMLStatus.byValue).trim();
- System.out.println(strStatus);
- return strOutXML;
- }
- }
- public static String put_isapi(int lUserID, String url, String inputXml,HCNetSDK hcNetSDK) {
- HCNetSDK.NET_DVR_XML_CONFIG_INPUT struXMLInput = new HCNetSDK.NET_DVR_XML_CONFIG_INPUT();
- struXMLInput.read();
- HCNetSDK.BYTE_ARRAY stringRequest = new HCNetSDK.BYTE_ARRAY(1024);
- stringRequest.read();
- //输入ISAPI协议命令
- System.arraycopy(url.getBytes(), 0, stringRequest.byValue, 0, url.length());
- stringRequest.write();
- struXMLInput.dwSize = struXMLInput.size();
- struXMLInput.lpRequestUrl = stringRequest.getPointer();
- struXMLInput.dwRequestUrlLen = url.length();
- HCNetSDK.BYTE_ARRAY ptrInBuffer = new HCNetSDK.BYTE_ARRAY(inputXml.length());
- ptrInBuffer.read();
- System.arraycopy(inputXml.getBytes(), 0, ptrInBuffer.byValue, 0, inputXml.length());
- ptrInBuffer.write();
- struXMLInput.lpInBuffer = ptrInBuffer.getPointer();
- struXMLInput.dwInBufferSize = inputXml.length();
- struXMLInput.write();
- HCNetSDK.BYTE_ARRAY stringXMLOut = new HCNetSDK.BYTE_ARRAY(8 * 1024);
- stringXMLOut.read();
- HCNetSDK.BYTE_ARRAY struXMLStatus = new HCNetSDK.BYTE_ARRAY(1024);
- struXMLStatus.read();
- HCNetSDK.NET_DVR_XML_CONFIG_OUTPUT struXMLOutput = new HCNetSDK.NET_DVR_XML_CONFIG_OUTPUT();
- struXMLOutput.read();
- struXMLOutput.dwSize = struXMLOutput.size();
- struXMLOutput.lpOutBuffer = stringXMLOut.getPointer();
- struXMLOutput.dwOutBufferSize = stringXMLOut.size();
- struXMLOutput.lpStatusBuffer = struXMLStatus.getPointer();
- struXMLOutput.dwStatusSize = struXMLStatus.size();
- struXMLOutput.write();
- if (!hcNetSDK.NET_DVR_STDXMLConfig(lUserID, struXMLInput, struXMLOutput)){
- int iErr = hcNetSDK.NET_DVR_GetLastError();
- System.err.println("NET_DVR_STDXMLConfig失败,错误号" + iErr+"----URL:"+url);
- return null;
- } else {
- stringXMLOut.read();
- System.out.println("输出文本大小:" + struXMLOutput.dwReturnedXMLSize);
- //打印输出XML文本
- String strOutXML = new String(stringXMLOut.byValue).trim();
- struXMLStatus.read();
- String strStatus = new String(struXMLStatus.byValue).trim();
- return strOutXML;
- }
- }
- }
|