//Calculate total tag reads and unique tag reads. public void UpdateTagCount(Dictionary <string, TagReadRecord> EpcIndex) { UniqueTagCounts += EpcIndex.Count; TagReadRecord[] dataRecord = new TagReadRecord[EpcIndex.Count]; EpcIndex.Values.CopyTo(dataRecord, 0); TotalTagCounts = 0; for (int i = 0; i < dataRecord.Length; i++) { TotalTagCounts += dataRecord[i].ReadCount; } }
public void Add(RxdTagData addData) { lock (new Object()) { string key = null; if (IsUniqueByteTID == false) { key = ByteFormat.ToHex(addData.EPC, "", " "); //if only keying on EPCID } else { key = string.Format("epc={0}, tid={1}", ByteFormat.ToHex(addData.EPC, "", " "), ByteFormat.ToHex(addData.TID, "", " ")); } UniqueTagCounts = 0; TotalTagCounts = 0; if (!EpcIndex.ContainsKey(key)) { logUtils.Log(string.Format("Add {0}", key)); TagReadRecord value = new TagReadRecord(addData); value.SerialNumber = (uint)EpcIndex.Count + 1; value.TimeStamp = DateTime.Now.ToLocalTime(); value.ReadCount = 1; _tagList.Add(value); EpcIndex.Add(key, value); UpdateTagCount(EpcIndex); } else { EpcIndex[key].Update(addData); UpdateTagCount(EpcIndex); } } }