You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

216 lines
9.7 KiB
Java

//package com.shxy.xyhkcamera.ascest;
//
//
//import com.shxy.xyhkcamera.hk.HCNetSDK;
//import com.sun.jna.ptr.IntByReference;
//
///**
// * 卡管理,以人为中心,要先下发工号,卡号要关联在人员工号上
// */
//public final class CardManage {
//
//
//// /**
//// * 下发卡号,
//// * @param userID 用户注册ID
//// * @param cardNo 卡号
//// */
//// public static void addCardInfo(int userID,String cardNo) {
//// HCNetSDK.BYTE_ARRAY ptrByteArray = new HCNetSDK.BYTE_ARRAY(1024); //数组
//// String strInBuffer = "POST /ISAPI/AccessControl/CardInfo/Record?format=json";
//// System.arraycopy(strInBuffer.getBytes(), 0, ptrByteArray.byValue, 0, strInBuffer.length());//字符串拷贝到数组中
//// ptrByteArray.write();
////
//// int lHandler = AcsMain.hCNetSDK.NET_DVR_StartRemoteConfig(userID, HCNetSDK.NET_DVR_JSON_CONFIG, ptrByteArray.getPointer(), strInBuffer.length(), null, null);
//// if (lHandler < 0)
//// {
//// System.out.println("AddCardInfo NET_DVR_StartRemoteConfig 失败,错误码为"+AcsMain.hCNetSDK.NET_DVR_GetLastError());
//// return;
//// }
//// else{
//// System.out.println("AddCardInfo NET_DVR_StartRemoteConfig 成功!");
//// HCNetSDK.BYTE_ARRAY lpInput = new HCNetSDK.BYTE_ARRAY(1024); //数组
//// String strJsonData = "{\n" +
//// " \"CardInfo\" : {\n" +
//// " \"employeeNo\":\"ceshi1\", \n" +
//// " \"cardNo\":\""+cardNo+"\", \n" +
//// " \"cardType\":\"normalCard\"\n" +
//// " } \n" +
//// "}";
//// System.arraycopy(strJsonData.getBytes(), 0, lpInput.byValue, 0, strJsonData.length());//字符串拷贝到数组中
//// lpInput.write();
//// HCNetSDK.BYTE_ARRAY ptrOutuff = new HCNetSDK.BYTE_ARRAY(1024);
//// IntByReference pInt = new IntByReference(0);
//// while(true){
//// /*
//// 如果需要批量下发循环调用NET_DVR_SendWithRecvRemoteConfig接口进行下发不同的卡号下发结束完成后关闭下发卡号长连接
//// */
//// int dwState = AcsMain.hCNetSDK.NET_DVR_SendWithRecvRemoteConfig(lHandler, lpInput.getPointer(), lpInput.byValue.length ,ptrOutuff.getPointer(), 1024, pInt);
//// //读取返回的json并解析
//// ptrOutuff.read();
//// String strResult = new String(ptrOutuff.byValue).trim();
//// System.out.println("dwState:" + dwState + ",strResult:" + strResult);
////
//// JSONObject jsonResult = new JSONObject(strResult);
//// int statusCode = jsonResult.getInt("statusCode");
//// String statusString = jsonResult.getString("statusString");
////
//// if(dwState == -1){
//// System.out.println("NET_DVR_SendWithRecvRemoteConfig接口调用失败错误码" + AcsMain.hCNetSDK.NET_DVR_GetLastError());
//// break;
//// }
//// else if(dwState == HCNetSDK.NET_SDK_CONFIG_STATUS_NEED_WAIT)
//// {
//// System.out.println("配置等待");
//// try {
//// Thread.sleep(10);
//// } catch (InterruptedException e) {
//// e.printStackTrace();
//// }
//// continue;
//// }
//// else if(dwState == HCNetSDK.NET_SDK_CONFIG_STATUS_FAILED)
//// {
//// System.out.println("下发卡号失败, json retun:" + jsonResult.toString());
//// break;
//// }
//// else if(dwState == HCNetSDK.NET_SDK_CONFIG_STATUS_EXCEPTION)
//// {
//// System.out.println("下发卡号异常, json retun:" + jsonResult.toString());
//// break;
//// }
//// else if(dwState == HCNetSDK.NET_SDK_CONFIG_STATUS_SUCCESS)
//// {
//// if (statusCode != 1){
//// System.out.println("下发卡号成功,但是有异常情况:" + jsonResult.toString());
//// }
//// else{
//// System.out.println("下发卡号成功, json retun:" + jsonResult.toString());
//// }
//// break;
//// }
//// else if(dwState == HCNetSDK.NET_SDK_CONFIG_STATUS_FINISH) {
////
//// System.out.println("下发卡号完成");
//// break;
//// }
//// }
//// if(!AcsMain.hCNetSDK.NET_DVR_StopRemoteConfig(lHandler)){
//// System.out.println("NET_DVR_StopRemoteConfig接口调用失败错误码" + AcsMain.hCNetSDK.NET_DVR_GetLastError());
//// }
//// else{
//// System.out.println("NET_DVR_StopRemoteConfig接口成功");
//// }
//// }
//// }
//
//
// /**
// * 按照人员工号查询卡号
// * @param userID
// * @param employeeNo
// */
// public static void searchCardInfo(int userID, String employeeNo)
// {
// String searchCardInfoUrl="POST /ISAPI/AccessControl/CardInfo/Search?format=json";
// String searchCardInfojson="{\n" +
// " \"CardInfoSearchCond\": {\n" +
// " \"searchID\": \"20201014001\",\n" +
// " \"searchResultPosition\": 0,\n" +
// " \"maxResults\": 30,\n" +
// " \"EmployeeNoList\" : [\n" +
// " {\n" +
// " \"employeeNo\": \""+employeeNo+"\"\n" +
// " }\n" +
// " ]\n" +
// " }\n" +
// "}";
// String result= TransIsapi.put_isapi(userID,searchCardInfoUrl,searchCardInfojson);
// System.out.println(result);
//
// }
//
// /**
// * 查询所有卡号
// * @param userID
// */
// public static void searchAllCardInfo(int userID)
// {
// String searchCardInfoUrl="POST /ISAPI/AccessControl/CardInfo/Search?format=json";
// /*
// "searchID": "", //必填,搜索记录唯一标识,用来确认上层客户端是否为同一个(倘若是同一个,设备记录内存,
// 下次搜索加快速度),string类型
// "searchResultPosition": 0, //必填,查询结果在结果列表中的起始位置,integer32类型;当记录条数很多时,
// 一次查询不能获取所有的记录,下一次查询时指定位置可以查询后面的记录
// "maxResults": 30, //必填,本次协议调用可获取的最大记录数,integer32类型如maxResults值大于设备能力集返回的范围
// 则设备按照能力集最大值返回,设备不进行报错
// */
// String searchCardInfojson="{\n" +
// " \"CardInfoSearchCond\": {\n" +
// " \"searchID\": \"20211129001\",\n" +
// " \"searchResultPosition\": 0,\n" +
// " \"maxResults\": 30\n" +
// " }\n" +
// "}";
// String result= com.shxy.xyhkcamera.asc.TransIsapi.put_isapi(userID,searchCardInfoUrl,searchCardInfojson);
// System.out.println(result);
// }
//
//
// /**
// * 根据工号删除卡号,
// * @param userID
// * @param employeeNo
// */
// public static void deleteCardInfo(int userID,String employeeNo )
// {
// String deleteCardInfoURL="PUT /ISAPI/AccessControl/CardInfo/Delete?format=json ";
// String deleteCardInfojson="{\n" +
// " \"CardInfoDelCond\" : {\n" +
// " \"EmployeeNoList\" : [ \n" +
// " {\n" +
// " \"employeeNo\": \""+employeeNo+"\" \n" +
// " }\n" +
// " ]\n" +
// " }\n" +
// "}\n";
// String result= com.shxy.xyhkcamera.asc.TransIsapi.put_isapi(userID,deleteCardInfoURL,deleteCardInfojson);
// System.out.println(result);
// }
//
//
// /**
// * 删除全部卡号信息,
// * @param userID
// */
// public static void deleteAllCardInfo(int userID)
// {
// String deleteAllCardInfoURL="PUT /ISAPI/AccessControl/CardInfo/Delete?format=json";
// String deleteAllCardInfoJson="{\"CardInfoDelCond\" : {}}";
// /*
// 如果涉及大批量卡号删除设备需要一定的时间去处理需要将超时时间设置成60sput_isapi中的NET_DVR_XML_CONFIG_INPUT中dwRecvTimeOut
// 参数设置成60000
// */
// String result= com.shxy.xyhkcamera.asc.TransIsapi.put_isapi(userID,deleteAllCardInfoURL,deleteAllCardInfoJson);
// System.out.println(result);
// }
////
////
//// /**
//// * 获取所有卡数量
//// * @param userID
//// * @return
//// */
//// public static int getAllCardNumber(int userID) {
//// String getAllCardNumberUrl="GET /ISAPI/AccessControl/CardInfo/Count?format=json";
//// String result= com.shxy.xyhkcamera.asc.TransIsapi.get_isapi(userID,getAllCardNumberUrl);
//// System.out.println(result);
//// JSONObject jsonObject=new JSONObject(result);
//// int num=jsonObject.optJSONObject("CardInfoCount").getInt("cardNumber");
//// return num;
//// }
//
//
//
//}