Example #1
0
        void QueryTagEventNotifty(AW_API_NET.rfTagEvent_t tagEvent)
        {
            lock (myLock)
            {
                if (tagEvent.tag.id == srchTagID)
                {
                    tagSrchStruct tagSrchObj = new tagSrchStruct();
                    tagSrchObj.host   = tagEvent.host;
                    tagSrchObj.reader = tagEvent.reader;
                    tagSrchObj.fGen   = tagEvent.fGenerator;
                    tagSrchObj.rssi   = tagEvent.RSSI;
                    tagSrchList.Add(tagSrchObj);

                    //if rdr exits in the rdrStatusList remove it and replace it otherwise add it.
                    readerStatStruct readerObj = new readerStatStruct(tagEvent.reader);
                    if (utility.GetRdrFromList(tagEvent.reader, ref readerObj, rdrStatusList))
                    {
                        //make the timer to start processing
                        startSearch = false;
                        srchIndex   = 0;
                        counter     = 0;

                        readerStatStruct rdrStat = new readerStatStruct(tagEvent.reader);
                        readerObj.Copy(ref rdrStat);
                        rdrStatusList.Remove(readerObj);
                        rdrStat.SetSrchStatus(true);
                        rdrStatusList.Add(rdrStat);

                        Console.WriteLine("QueryTagNotify(TagSearchClass) ProcessSrchList time:" + DateTime.Now.ToString());
                        ProcessSrchList();
                    }
                }        //if (tagEvent.tag.id == srchTagID)
            }            //lock
        }
Example #2
0
        void ReaderIsOnlineEventNotify(AW_API_NET.rfTagEvent_t tagEvent)
        {
            //lock(myLock)
            {
                //if polling rdr is switched on
                readerStatStruct readerObj = new readerStatStruct(tagEvent.reader);
                if (GetRdrFromList(tagEvent.reader, ref readerObj))
                {
                    if (readerObj.GetStatus() == 0)
                    {
                        Byte[] ip  = new Byte[20];
                        char[] cIP = new char[20];

                        string ipStr = readerObj.GetIP();
                        if (ipStr.Length == 0)
                        {
                            Console.WriteLine("NetRdrConn  ERROR bad ip = ");
                            rdrIndexPoll += 1;
                            return;
                        }
                        cIP = ipStr.ToCharArray(0, ipStr.Length);
                        for (int i = 0; i < ipStr.Length; i++)
                        {
                            ip[i] = Convert.ToByte(cIP[i]);
                        }

                        AW_API_NET.rfReaderEvent_t readerEvent = new rfReaderEvent_t();
                        readerEvent.ip = new Byte[20];
                        for (int i = 0; i < 20; i++)
                        {
                            readerEvent.ip[i] = 0x00;
                        }
                        readerEvent.reader     = readerObj.rdrID;
                        readerEvent.host       = readerObj.hostID;
                        readerEvent.fGenerator = 0;
                        readerEvent.eventType  = AW_API_NET.APIConsts.RF_READER_ENABLE;
                        int n = 0;
                        for (n = 0; n < readerEvent.ip.Length; n++)
                        {
                            readerEvent.ip[n] = ip[n];
                        }

                        if (ReaderOnlineEventHandler != null)
                        {
                            ReaderOnlineEventHandler(readerEvent);
                        }

                        //if ip exits in the rdrStatusList remove it and replace it otherwise add it.
                        readerStatStruct rdrStat = new readerStatStruct(tagEvent.reader);
                        rdrStat.hostID = tagEvent.host;
                        //need to fix api to send valid ip with enable rdr
                        //rdrStat.SetIP(GetStringIP(readerEvent.ip));
                        rdrStat.SetIP(readerObj.GetIP());
                        rdrStat.SetStatus(1);                         //online
                        rdrStat.SetCounter(0);
                        rdrStat.online = true;
                        rdrStat.SetProcessing(false);
                        rdrStat.SetStartTimeSec(DateTime.Now);

                        rdrStatusList.Remove(readerObj);

                        rdrStatusList.Add(rdrStat);                          //polling rdr list

                        if (GetAllRdrsStat())
                        {
                            if (AllReadersOnlineEventHandler != null)
                            {
                                AllReadersOnlineEventHandler(true);
                            }
                        }
                        else
                        {
                            if (AllReadersOnlineEventHandler != null)
                            {
                                AllReadersOnlineEventHandler(false);
                            }
                        }
                    }
                }
            }            //lock
        }