示例#1
0
 int IComparable.CompareTo(object obj)
 {
     EPC_data temp = (EPC_data)obj;
     {
         return(string.Compare(this.epc, temp.epc));
     }
 }
示例#2
0
        public static void HandleTagData(byte cmdID, IntPtr pData, int length)
        {
            string tmpEPC = "";

            if (length <= 4)
            {
                return;
            }
            byte[] data = new byte[32];
            Marshal.Copy(pData, data, 0, length);
            for (int j = 0; j < length - 4; ++j)
            {
                tmpEPC += string.Format("{0:X2} ", data[j]);
            }
            lock (rfidUpdataMutex)
            {
                int i;
                for (i = 0; i < rfids.Count; ++i)
                {
                    if (tmpEPC == rfids[i].epc)
                    {
                        rfids[i].count++;
                        rfids[i].antNo   = data[length - 1];
                        rfids[i].devNo   = 0;
                        rfids[i].timeOut = 0;
                        break;
                    }
                }
                //发现新标签
                if (i >= rfids.Count)
                {
                    EPC_data epcdata = new EPC_data();
                    epcdata.epc   = tmpEPC;
                    epcdata.antNo = data[length - 1];
                    epcdata.devNo = 0;
                    epcdata.count = 1;
                    //清空标记
                    epcdata.timeOut = 0;
                    rfids.Add(epcdata);
                }
            }
        }