Example #1
0
        /// <summary>
        /// 获取设备的产品序列号
        /// </summary>
        /// <param name="device"></param>
        /// <returns>返回读写卡器产品序列号,4 字节,高字节在前</returns>
        public byte GetSnr(INFCDevice device)
        {
            byte r = 0;

            HfrdApi.Sys_GetSnr(device.DeviceID, ref r);
            return(r);
        }
Example #2
0
        /// <summary>
        /// 打开HID设备
        /// </summary>
        /// <param name="device">设备标准</param>
        /// <param name="deviceIndex">设备索引</param>
        /// <param name="vendorID">Vendor ID</param>
        /// <param name="productID">Product ID</param>
        /// <returns></returns>
        public int Open(INFCDevice device, uint deviceIndex, ushort vendorID = 0x0416, ushort productID = 0x8020)
        {
            IntPtr deviceID = (IntPtr)(-1);
            int    or       = HfrdApi.Sys_Open(ref deviceID, device.DeviceIndex, device.VendorID, device.ProductID);

            device.DeviceID = deviceID;

            return(or);
        }
Example #3
0
        /// <summary>
        /// 设置读写器非接触工作方式。
        /// <para>只支持单一协议的读写器仅对部分方式有效</para>
        /// <para>
        /// type = 'A' -> 设置为ISO14443A方式,ISO14443A类别的函数使用此方式;
        /// type = 'B' -> 设置为ISO14443B方式,SGIDC(二代证)、ISO14443B-4类别的函数使用此方式;
        /// type = 'r' -> 设置为AT88RF020卡方式,AT88RF020类别的函数使用此方式;
        /// type = 's' -> 设置为ST卡方式,SR176、SRI4K类别的函数使用此方式;
        /// type = '1' -> 设置为ISO15693方式,ISO15693类别的函数使用此方式;
        /// </para>
        /// </summary>
        /// <param name="device"></param>
        /// <param name="type"></param>
        /// <returns>0成功,非0为错误代码</returns>
        public int SetInitType(INFCDevice device, char type)
        {
            var chr = Regex.IsMatch(type.ToString(), "(A|B|r|s|1){1}");

            if (!chr)
            {
                throw new ArgumentException("参数type只能为A、B、r、s、1,而接收到的参数是:" + type);
            }
            var r = HfrdApi.Sys_InitType(device.DeviceID, (byte)type);

            return(r);
        }
Example #4
0
        /// <summary>
        /// 读取读写卡器型号信息
        /// </summary>
        /// <param name="device"></param>
        /// <returns></returns>
        public string GetModel(INFCDevice device)
        {
            byte[] data   = new byte[0];
            byte   length = 0;

            HfrdApi.Sys_GetModel(device.DeviceID, data, ref length);

            data = new byte[length];
            var r = HfrdApi.Sys_GetModel(device.DeviceID, data, ref length);

            if (r != 0)
            {
                return(null);
            }

            var s = Encoding.ASCII.GetString(data);

            return(s);
        }
Example #5
0
        /// <summary>
        /// 复位
        /// </summary>
        /// <param name="device"></param>
        /// <param name="type"></param>
        /// <returns>0成功,非0为错误代码</returns>
        public int SetReset(INFCDevice device, DeviceResetType type)
        {
            var r = HfrdApi.Sys_InitType(device.DeviceID, (byte)type);

            return(r);
        }
Example #6
0
        /// <summary>
        /// 设置读写器天线状态,在不需要操作卡时可以将天线关闭,以降低读写器的功耗;通过关闭、打开天线可实现卡片重新上电、复位;
        /// </summary>
        /// <param name="device"></param>
        /// <param name="isOpen"></param>
        /// <returns></returns>
        public bool SetAntenna(INFCDevice device, bool isOpen)
        {
            var r = HfrdApi.Sys_SetAntenna(device.DeviceID, (byte)(isOpen ? 1 : 0));

            return(r == 0);
        }
Example #7
0
        /// <summary>
        /// 蜂鸣
        /// </summary>
        /// <param name="device"></param>
        /// <param name="milliseconds"></param>
        /// <returns></returns>
        public bool PlayBeep(INFCDevice device, uint milliseconds)
        {
            var r = HfrdApi.Sys_SetBuzzer(device.DeviceID, (byte)(milliseconds / 10));

            return(r == 0);
        }
Example #8
0
        /// <summary>
        /// 设置指示灯颜色
        /// </summary>
        /// <param name="device"></param>
        /// <param name="color"></param>
        /// <returns></returns>
        public bool SetLight(INFCDevice device, DeviceLightColor color)
        {
            var r = HfrdApi.Sys_SetLight(device.DeviceID, (byte)color);

            return(r == 0);
        }
Example #9
0
        /// <summary>
        /// 关闭设备
        /// </summary>
        /// <param name="device"></param>
        /// <returns></returns>
        public bool Close(INFCDevice device)
        {
            var or = HfrdApi.Sys_Close(device.DeviceID);

            return(or == 0);
        }
Example #10
0
 /// <summary>
 /// 设备是否打开
 /// ,“设备已经打开”并不代表设备与计算机处于正常连接状态,比如在设备打开成功后拔掉USB数据线,可以查询到设备仍然是“设备已经打开”状态,但实际上不是处于连接状态了,确认连接状态可通过调用GetDeviceInfo或GetDeviceAddress来判断
 /// </summary>
 /// <returns>
 /// true已打开,false未打开
 /// </returns>
 public bool IsOpen(INFCDevice device)
 {
     return(HfrdApi.Sys_IsOpen(device.DeviceID));
 }