using System; using System.Collections.Generic; using System.Text; using System.IO; using System.IO.Ports; using System.Threading; using System.Net; using System.Net.Sockets; using System.Windows.Forms; using UHF; namespace ThreadDEMO { public class Reader { public int FrmHandle = -1; public byte ComAddr=255; public int fCmdRet = -1; public int nPort = 0; public string ipAddr = ""; public Reader() { } public static void updatelist(ListView mylist,string uid) { ListView list = mylist; bool inlis = false; for (int i = 0; i < list.Items.Count; i++) { if (list.Items[i].SubItems[1].Text == uid) { inlis = true; int ntimes = Convert.ToInt32(list.Items[i].SubItems[2].Text, 10); list.Items[i].SubItems[2].Text = (ntimes + 1).ToString(); break; } } if (!inlis) { string[] btArr = new string[3]; btArr[0] = (list.Items.Count + 1).ToString(); btArr[1] = uid; btArr[2] = "1"; ListViewItem aListItem = new ListViewItem(btArr); list.Items.Add(aListItem); } } /// /// 16进制数组字符串转换 /// /// /// #region public byte[] HexStringToByteArray(string s) { s = s.Replace(" ", ""); byte[] buffer = new byte[s.Length / 2]; for (int i = 0; i < s.Length; i += 2) buffer[i / 2] = (byte)Convert.ToByte(s.Substring(i, 2), 16); return buffer; } public string ByteArrayToHexString(byte[] data) { StringBuilder sb = new StringBuilder(data.Length * 3); foreach (byte b in data) sb.Append(Convert.ToString(b, 16).PadLeft(2, '0')); return sb.ToString().ToUpper(); } #endregion /// /// OpenByTcp /// /// /// /// /// #region public int OpenByTcp(int Port, string Addr, ref byte fComAddr) { fCmdRet = RWDev.OpenNetPort(Port, Addr, ref ComAddr, ref FrmHandle); if (fCmdRet==0) { fComAddr = ComAddr; ipAddr = Addr; nPort = Port; } return fCmdRet; } #endregion /// /// CloseByTcp /// /// #region public int CloseByTcp() { int fCmdRet = RWDev.CloseNetPort(FrmHandle); FrmHandle=-1; return fCmdRet; } #endregion public void Init_CallBack(RFIDCallBack pback,bool uidback) { if (FrmHandle>0) RWDev.InitRFIDCallBack(pback, uidback,FrmHandle); } public int OpenByCom() { int fCmdRet = RWDev.OpenComPort(1,ref ComAddr,0,ref FrmHandle); return fCmdRet; } public int CloseByCom() { int fCmdRet =RWDev.CloseSpecComPort(FrmHandle); FrmHandle = -1; return fCmdRet; } #region public int Inventory() { byte Ant = 0; int TagNum = 0; int Totallen = 0; int EPClen, m; byte[] EPC = new byte[50000]; int CardIndex; string temps, temp; temp = ""; string sEPC; byte MaskMem = 0; byte[] MaskAdr = new byte[2]; byte MaskLen = 0; byte[] MaskData = new byte[100]; byte MaskFlag = 0; byte AdrTID = 0; byte LenTID = 0; AdrTID = 0; LenTID = 6; MaskFlag = 0; int cbtime = System.Environment.TickCount; int CardNum = 0; fCmdRet = RWDev.Inventory_G2(ref ComAddr, 4, 255, MaskMem, MaskAdr, MaskLen, MaskData, MaskFlag, AdrTID, LenTID, 0, 0, 0x81, 0, 0, EPC, ref Ant, ref Totallen, ref TagNum, FrmHandle); return fCmdRet; } #endregion } }