package com.doumee.core.haikang.sdk;
|
|
//import com.sun.javafx.scene.paint.GradientUtils.Point;
|
import com.sun.jna.Native;
|
import com.sun.jna.Pointer;
|
import com.sun.jna.Structure;
|
import com.sun.jna.win32.StdCallLibrary;
|
|
public interface HCUsbSDK extends StdCallLibrary{
|
|
HCUsbSDK INSTANCE = (HCUsbSDK) Native.loadLibrary("D:\\work\\安防平台对接\\HCUSBSDKV2.4.0.3_build20230418_win64_ZH\\library\\win64\\HCUSBSDK",HCUsbSDK.class);
|
|
public static final int MAX_MANUFACTURE_LEN = 32; //制造商名称最大长度
|
public static final int MAX_DEVICE_NAME_LEN = 32; //设备名称最大长度
|
public static final int MAX_SERIAL_NUM_LEN = 48; //序列号最大长度
|
public static final int MAX_USB_DEV_LEN = 64;
|
public static final int ERR_LEVEL = 1;
|
public static final int DBG_LEVEL = 2;
|
public static final int INF_LEVEL = 3;
|
public static final int MAX_USERNAME_NAME = 32; //用户名最大长度
|
public static final int MAX_PASSWORD_LEN = 16; //密码最大长度
|
public static final int INVALID_USER_ID = -1; //登录返回ID,登录失败为-1,有效ID 0-128
|
public static final int USB_ERROR_BASE = 0;
|
public static final int USB_SUCCESS = (HCUsbSDK.USB_ERROR_BASE + 0);
|
public static final int USB_GET_ACTIVATE_CARD = 1004;
|
public static final int USB_GET_CERTIFICATE_INFO = 1020;
|
public static final int MAX_SERIAL_NUMBER_LEN = 48;
|
public static final int MAX_PATH_LEN = 260;
|
public static final int MAX_USERNAME_LEN = 32;
|
public enum LOG_LEVEL_ENUM
|
{
|
NONE, //填补0这个位置,后面1,2,3
|
ENUM_ERROR_LEVEL,
|
ENUM_DEBUG_LEVEL,
|
ENUM_INFO_LEVEL
|
};
|
|
public static class USB_DEVICE_INFO extends Structure
|
{
|
public int dwSize; //结构体大小
|
public int dwIndex; // 设备索引
|
public int dwVID; //设备VID
|
public int dwPID; //设备PID
|
public byte[] szManufacturer = new byte[MAX_MANUFACTURE_LEN/*32*/];//制造商(来自描述符)
|
public byte[] szDeviceName = new byte[MAX_DEVICE_NAME_LEN/*32*/];//设备名称(来自描述符)
|
public byte[] szSerialNumber = new byte[MAX_SERIAL_NUMBER_LEN/*48*/];//设备序列号(来自描述符)
|
public byte byHaveAudio; // 是否具有音频
|
public byte iColorType; // 1.RGB路, 2.IR路
|
public byte[] szDevicePath = new byte[MAX_PATH_LEN];
|
public byte[] byRes = new byte[254];
|
}
|
|
public static class USB_USER_LOGIN_INFO extends Structure
|
{
|
public int dwSize; //结构体大小
|
public int dwTimeout; //登录超时时间(单位:毫秒)
|
public int dwDevIndex; //设备下标
|
public int dwVID; //设备VID,枚举设备时得到
|
public int dwPID; //设备PID,枚举设备时得到
|
public byte[] szUserName = new byte [MAX_USERNAME_LEN/*32*/]; //用户名,获取激活状态时无需填
|
public byte[] szPassword = new byte[MAX_PASSWORD_LEN/*16*/]; //密码,获取激活状态时无需填
|
public byte[] szSerialNumber = new byte[MAX_SERIAL_NUMBER_LEN/*48*/]; //设备序列号,枚举设备时得到
|
public byte byLoginMode; //0-认证登陆 1-默认账号登陆(不关心用户名密码)(权限不同,部分功能需认证登陆才支持)
|
public byte[] byRes2 = new byte[3];
|
public int dwFd; //设备描述符fd (android下没有root权限登录时使用)
|
public byte[] byRes = new byte[248];
|
}
|
|
|
public static class USB_DEVICE_REG_RES extends Structure
|
{
|
public int dwSize; //结构体大小
|
public byte[] szDeviceName = new byte[MAX_DEVICE_NAME_LEN /*32*/]; //设备名称
|
public byte[] szSerialNumber = new byte[MAX_SERIAL_NUMBER_LEN /*48*/]; //设备序列号
|
public int dwSoftwareVersion; //软件版本号,高16位是主版本,低16位是次版本
|
public short wYear;
|
public byte byMonth;
|
public byte byDay;
|
public byte byRetryLoginTimes; //剩余可尝试登陆的次数
|
public byte[] byRes1 = new byte[3]; //保留
|
public int dwSurplusLockTime; //剩余时间,单位秒 用户锁定时,此参数有效
|
public byte[] byRes = new byte[256];
|
}
|
|
|
public static class USB_ACTIVATE_CARD_RES extends Structure
|
{
|
public int dwSize;
|
public byte byCardType; // 卡类型(0-TypeA m1卡,1-TypeA cpu卡,2-TypeB,3-125kHz Id卡,4-Felica Card 5-Desfire Card)
|
public byte bySerialLen; //卡物理序列号字节长度
|
public byte[] bySerial = new byte[10]; //卡物理序列号
|
public byte bySelectVerifyLen; //选择确认长度
|
public byte[] bySelectVerify = new byte[3]; //选择确认(3字节)
|
public byte[] byRes = new byte[12];
|
}
|
|
public static class USB_WAIT_SECOND extends Structure
|
{
|
public int dwSize; //结构体大小
|
public byte byWait; //1Byte操作等待时间(0-一直执行直到有卡响应,其他对应1S单位)
|
public byte[] byRes = new byte[27];
|
}//32字节
|
|
public static class USB_CONFIG_INPUT_INFO extends Structure
|
{
|
public Pointer lpCondBuffer; //指向条件缓冲区
|
public int dwCondBufferSize; //条件缓冲区大小
|
public Pointer lpInBuffer; //指向输出缓冲区
|
public int dwInBufferSize; //输入缓冲区大小
|
public byte[] byRes = new byte[48];
|
}//64字节
|
|
public static class USB_CONFIG_OUTPUT_INFO extends Structure
|
{
|
public Pointer lpOutBuffer; //指向输出缓冲区
|
public int dwOutBufferSize; //输出缓冲区大小
|
public byte[] byRes = new byte[56];
|
}//64字节
|
|
public static class USB_CERTIFICATE_INFO extends Structure
|
{
|
public int dwSize; //结构体大小
|
public short wWorldInfoSize; //文字信息长度
|
public short wPicInfoSize; //相片信息长度
|
public short wFingerPrintInfoSize; //指纹信息长度
|
public byte byCertificateType; //证件类型:0-身份证,1-中国绿卡
|
public byte byRes2;
|
public byte[] byWordInfo = new byte[256]; //文字信息
|
public byte[] byPicInfo = new byte[1024]; //相片信息
|
public byte[] byFingerPrintInfo = new byte[1024]; //指纹信息
|
public byte[] byRes = new byte[40];
|
}
|
|
public static class OUT_USB_DEVICE_INFO extends Structure
|
{
|
public USB_DEVICE_INFO[] struDeviceArr;
|
public void init(int devCount)
|
{
|
struDeviceArr = new USB_DEVICE_INFO[devCount];
|
}
|
}
|
|
boolean USB_Init();
|
boolean USB_Cleanup();
|
int USB_GetLastError();
|
|
int USB_GetDeviceCount();
|
//新增获取设备列表信息接口,替换原有回调的方式去获取设备信息
|
boolean USB_EnumDevices(int dwCount, Pointer pDevInfoList);
|
Pointer USB_GetErrorMsg(int dwErrorCode);
|
boolean USB_SetLogToFile(int dwLogLevel, String strLogDir, boolean bAutoDel);
|
int USB_GetSDKVersion();
|
int USB_Login(USB_USER_LOGIN_INFO pUsbLoginInfo, USB_DEVICE_REG_RES pDevRegRes);
|
boolean USB_Logout(int lUserID);
|
boolean USB_GetDeviceConfig(int lUserID, int dwCommand, USB_CONFIG_INPUT_INFO InputInfo, USB_CONFIG_OUTPUT_INFO OutputInfo);
|
}
|