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
}
}