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 }
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 }