private void ParseTag(MyTag tag)
{
bool foundTag = false;
int id = -1;
int count;
int rowIdx;
string idstr = "";
// Look for the tag
for (rowIdx = 0; rowIdx < tagStatsDataGridView.Rows.Count; rowIdx++)
{
idstr = (string)(tagStatsDataGridView.Rows[rowIdx].Cells[(int)StatColumnIdx.SERIAL_NUM].Value);
try
{
id = Convert.ToInt32(idstr);
}
catch(Exception e)
{
Trace.WriteLine("exception: " + e.ToString());
}
if (tag != null && id == tag.GetSerialNumber())
{
foundTag = true;
break;
}
}
// Update the info
if (foundTag)
{
// Update Count
count = Convert.ToInt32(tagStatsDataGridView.Rows[rowIdx].Cells[(int)StatColumnIdx.COUNT].Value);
count += tag.GetCount();
tagStatsDataGridView.Rows[rowIdx].Cells[(int)StatColumnIdx.COUNT].Value = count;
tagStatsDataGridView.Rows[rowIdx].Cells[(int)StatColumnIdx.SENSOR_TYPE].Value = tag.GetTagTypeName();
tagStatsDataGridView.Rows[rowIdx].Cells[(int)StatColumnIdx.LAST_SEEN].Value = System.DateTime.Now.ToString();
tagStatsDataGridView.Rows[rowIdx].Cells[(int)StatColumnIdx.TX_COUNTER].Value = tag.GetPacketCounter().ToString();
tagStatsDataGridView.Rows[rowIdx].Cells[(int)StatColumnIdx.EPC].Value = tag.GetEpcID().ToString();
tagStatsDataGridView.Rows[rowIdx].Cells[(int)StatColumnIdx.DATA].Value = tag.GetAccessResultData();
}
else // add tag
{
string[] newRow = new string[(int)StatColumnIdx.ENUM_MAX_IDX];
newRow[(int)StatColumnIdx.SERIAL_NUM] = tag.GetSerialNumber().ToString();
newRow[(int)StatColumnIdx.HW_REV] = tag.GetHardwareRev();
newRow[(int)StatColumnIdx.SENSOR_TYPE] = tag.GetTagTypeName();
newRow[(int)StatColumnIdx.COUNT] = tag.GetCount().ToString();
newRow[(int)StatColumnIdx.LAST_SEEN] = System.DateTime.Now.ToString();
newRow[(int)StatColumnIdx.TX_COUNTER] = tag.GetPacketCounter().ToString();
newRow[(int)StatColumnIdx.EPC] = tag.GetEpcID().ToString();
newRow[(int)StatColumnIdx.DATA] = tag.GetAccessResultData().ToString();
tagStatsDataGridView.Rows.Add(newRow);
Trace.WriteLine("Stats Added New Tag: " + tag.GetSerialNumber().ToString());
}
// resize columns - this kills performance :(
// button added instead.
// tagStatsDataGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
}