示例#1
0
        //对解出的帧,分命令进行处理
        private void CmdProcess(Package resp)
        {
            switch (resp.CMD)
            {
            case CmdEnum.CMD_INVENTORY:
                if ((InvReqFlg == false) && (AntiReqFlg == false) && (AutoReadHandler != null) && (resp.DataLen == UIDLEN))
                {
                    AutoReadEventArgs args = new AutoReadEventArgs();
                    args.comm.ReaderID = resp.ReaderID;
                    args.comm.addr     = AddrStr;
                    args.comm.port     = port_baud;
                    args.ant           = resp.Ant;
                    for (int i = 0; i < UIDLEN; i++)
                    {
                        args.UID[i] = resp.Datas[i];
                    }
                    AutoReadHandler.BeginInvoke(this, args, null, null);
                    return;
                }
                else if ((AntiReqFlg == true) && (resp.DataLen == UIDLEN))
                {
                    AntiResult.add(resp.Datas, resp.Ant);
                    return;
                }
                break;

            case CmdEnum.CMD_GPI_TRRIGER:
                if (GPITriggerHandler != null)
                {
                    GPITriggerEventArgs args = new GPITriggerEventArgs();
                    args.comm.ReaderID = resp.ReaderID;
                    args.comm.addr     = AddrStr;
                    args.comm.port     = port_baud;
                    if (resp.DataLen == 0)    //兼容前期未返回端口号的读写器软件
                    {
                        args.Gpi = GpiEnum.GPI_1;
                    }
                    else
                    {
                        args.Gpi = (GpiEnum)resp.Datas[0];
                    }
                    GPITriggerHandler.BeginInvoke(this, args, null, null);
                }
                return;

            default:
                break;
            }
            lock (Resp)
            {
                if (!WaitHeartBeatCmdResp || resp.CMD != HeartBeatCmd)
                {
                    Resp.copy(resp);
                }
                else
                {
                    HeartBeatResp.copy(resp);
                }
            }
        }
 internal AutoReadInitializer(bool readInEventLoop)
 {
     this.AutoReadHandler = new AutoReadHandler(readInEventLoop);
 }
示例#3
0
 public AutoReadInitializer(bool readInEventLoop)
 {
     _autoReadHandler = new AutoReadHandler(readInEventLoop);
 }