bool ParseMulReadFrameDataProcess() { string epc_tmp = ""; string tid_tmp = ""; byte[] byte_epc = new byte[64]; byte[] byte_tid = new byte[64]; byte[] byte_rssi = new byte[2]; Int16 rssi; int antid; DateTime nowTime = DateTime.Now; TagInfo tmp = new TagInfo("", 0, 0, 1, nowTime); int length = 0; int rlength = 0; int i; length = (g_Revbuf[5] >> 3) * 2; rlength = (g_Revbuf[2] << 8) + g_Revbuf[3]; System.Array.Copy(g_Revbuf, 7, byte_epc, 0, length); for (i = 0; i < length; i++) { epc_tmp += byte_epc[i].ToString("X2"); if (i < length - 1) { epc_tmp += "-"; } } if (rlength > (length + 8 + 5)) { System.Array.Copy(g_Revbuf, (7 + length), byte_tid, 0, length); for (i = 0; i < (rlength - length - 8 - 5); i++) { tid_tmp += byte_tid[i].ToString("X2"); if (i < length - 1) { tid_tmp += "-"; } } } rssi = (Int16)(g_Revbuf[rlength - 6] << 8); rssi += (Int16)(g_Revbuf[rlength - 5]); antid = g_Revbuf[rlength - 4]; tmp.epcid = epc_tmp; tmp.tid = tid_tmp; tmp.rxrssi = (Int16)(rssi / 10); tmp.readcnt = 1; tmp.antID = antid; AddTagToBuf(tmp); //MyInvoke mi = new MyInvoke(UpdataListViewDisp); //this.BeginInvoke(mi, new Object[] { m_Tags[tmp.epcid] }); Thread thread = new Thread(() => UpdataListViewDisp(m_Tags[tmp.epcid])); thread.Start(); return true; }
void AddTagToBuf(TagInfo tag) { string keystr = tag.epcid; if (m_Tags.ContainsKey(keystr)) { m_Tags[keystr].readcnt += 1; //m_Tags[keystr].epcid = tag.; m_Tags[keystr].rxrssi = tag.rxrssi; m_Tags[keystr].antID = tag.antID; m_Tags[keystr].times = tag.times; m_Tags[keystr].tid = tag.tid; } else { m_Tags.Add(keystr, tag); } }
public void UpdataListViewDisp(TagInfo tag) { //strResult += tag.epcid + " | " + tag.rxrssi + '\n'; int flag = 0; if (strResult != null) { if (strResult.Contains(tag.epcid.Replace("-", "")) == true) { flag = 1; } } if (flag == 0) { strResult += tag.epcid.Replace("-", "") + '\n'; DIP_RFID.DAL.Common.Utilities.Func.InsertModuleTemp("1", tag.epcid.Replace("-", "").Substring(0,10)); } //foreach (DataRow Dr in dtResult.Rows) //{ // try // { // if (Dr["TagID"].ToString().ToLower() == Convert.ToString(tag.epcid).ToLower()) // { // Dr["RSSI"] = tag.rxrssi.ToString(); // Dr["AntID"] = tag.antID.ToString(); // Dr["Time"] = tag.times.ToString(); // Dr.AcceptChanges(); // flag = 1; // } // } // catch (Exception e) { } // if (flag == 0) // { // DataRow newCustomersRow = dtResult.NewRow(); // //ListViewItem item = new ListViewItem((listView_Disp.Items.Count + 1).ToString()); // newCustomersRow["TagID"] = tag.epcid; // newCustomersRow["AntID"] = tag.antID; // newCustomersRow["RSSI"] = tag.rxrssi; // newCustomersRow["Time"] = tag.times; // dtResult.Rows.Add(newCustomersRow); // } //} }
public void UpdataListViewDisp(TagInfo tag) { int flag = 0; foreach (DataRow Dr in dtResult.Rows) { try { if (Dr["TagID"].ToString().ToLower() == Convert.ToString(tag.epcid).ToLower()) { Dr["RSSI"] = tag.rxrssi.ToString(); Dr["AntID"] = tag.antID.ToString(); Dr["Time"] = tag.times.ToString(); Dr.AcceptChanges(); flag = 1; } } catch (Exception e) { } //***------ If want to clear data every x time -----******** //if (cB_OutLineClear.Checked == true) //{ // /* 计算离线时间 */ // TimeSpan span = DateTime.Now - DateTime.Parse(viewitem.SubItems[6].Text); // if ((span.Seconds >= 4) && (span.Seconds < 8)) // { // viewitem.BackColor = Color.Silver; // } // else if (span.Seconds >= 8) // { // RemovedTagNums += int.Parse(viewitem.SubItems[3].Text); // string keystr = tag.epcid; // m_Tags.Remove(keystr); // viewitem.Remove(); // } // else // { // viewitem.BackColor = Color.White; // } //} //***------ If want to clear data every x time -----******** if (flag == 0) { DataRow newCustomersRow = dtResult.NewRow(); //ListViewItem item = new ListViewItem((listView_Disp.Items.Count + 1).ToString()); newCustomersRow["TagID"] = tag.epcid; newCustomersRow["AntID"] = tag.antID; newCustomersRow["RSSI"] = tag.rxrssi; newCustomersRow["Time"] = tag.times; dtResult.Rows.Add(newCustomersRow); } } }