Exemplo n.º 1
0
        public void StartListen()
        {
            int returnCode;

            returnCode = ZRIntf.ZR_Initialize(ZPIntf.ZP_IF_NO_MSG_LOOP);
            if (returnCode < 0)
            {
                throw new Exception("ZLib initialization error");
            }

            ZR_RD_OPEN_PARAMS openParams = new ZR_RD_OPEN_PARAMS(this.portType, this.portName);
            ZR_RD_INFO        readerInfo = new ZR_RD_INFO();

            returnCode = ZRIntf.ZR_Rd_Open(ref reader, ref openParams, readerInfo);
            if (returnCode < 0)
            {
                throw new Exception("Reader open error");
            }

            ZR_RD_NOTIFY_SETTINGS notifySettings = new ZR_RD_NOTIFY_SETTINGS(ZRIntf.ZR_RNF_PLACE_CARD, this.placeCardCallback);

            returnCode = ZRIntf.ZR_Rd_SetNotification(reader, notifySettings);

            if (returnCode < 0)
            {
                throw new Exception("Callback setup error");
            }
        }
Exemplo n.º 2
0
 public void StopListen()
 {
     if (reader != IntPtr.Zero)
     {
         ZRIntf.ZR_CloseHandle(reader);
     }
     ZRIntf.ZR_Finalyze();
 }
Exemplo n.º 3
0
        bool CardDetectCallback(UInt32 nMsg, IntPtr nMsgParam, IntPtr pUserData)
        {
            if (nMsg == ZRIntf.ZR_RN_CARD_INSERT)
            {
                ZR_CARD_INFO pInfo   = (ZR_CARD_INFO)Marshal.PtrToStructure(nMsgParam, typeof(ZR_CARD_INFO));
                string       cardNum = ZRIntf.CardNumToStr(pInfo.nNum, pInfo.nType);

                Log.Write("Card was readed: " + cardNum);
                foreach (UserContext client in this.clientsPool.Values)
                {
                    client.Send(cardNum);
                }
            }
            return(true);
        }