程序简介:点击运行后,程序自动获取卡中所存数据并停止读卡,写卡之后程序继续5s后自动读卡。
using System;
using System.Collections.Generic;using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using ReaderB;
using System.Threading;
namespace kapian
{
public partial class ReadWrite : Form
{
private bool fAppClosed; //在测试模式下响应关闭应用程序
private byte fComAdr = 0xff; //当前操作的ComAdr
private int ferrorcode;
private byte fBaud;
private double fdminfre;
private double fdmaxfre;
private byte Maskadr;
private byte MaskLen;
private byte MaskFlag;
private int fCmdRet = 30; //所有执行指令的返回值
private int fOpenComIndex; //打开的串口索引号
private bool fIsInventoryScan;
private bool fisinventoryscan_6B;
private byte[] fOperEPC = new byte[36];
private byte[] fPassWord = new byte[4];
private byte[] fOperID_6B = new byte[8];
private int CardNum1 = 0;
ArrayList list = new ArrayList();
private bool fTimer_6B_ReadWrite;
private string fInventory_EPC_List; //存贮询查列表(如果读取的数据没有变化,则不进行刷新)
private int frmcomportindex;
private bool ComOpen = false;
private bool breakflag = false;
private double x_z;
private double y_f;
private string epc = "";//读数据、写数据、块擦除 原ComboBox_EPC2存放数据
private Thread th_read;
private Thread th_write;
public ReadWrite()
{
InitializeComponent();
}
private void btn_run_Click(object sender, EventArgs e)
{
int port = 0;
int openresult, i;
openresult = 30;
string temp;
Cursor = Cursors.WaitCursor;
fComAdr = Convert.ToByte("FF", 16);//读写器地址
try
{
if (true)//Auto自动选择COM口
{
fBaud = Convert.ToByte(3);//9600bps19200bps38400bps57600bps115200bps
if (fBaud > 2)
fBaud = Convert.ToByte(fBaud + 2);
openresult = StaticClassReaderB.AutoOpenComPort(ref port, ref fComAdr, fBaud, ref frmcomportindex);
fOpenComIndex = frmcomportindex;
if (openresult == 0)
{
ComOpen = true;
if ((fCmdRet == 0x35) | (fCmdRet == 0x30))
{
MessageBox.Show("串口通讯错误", "信息提示");
StaticClassReaderB.CloseSpecComPort(frmcomportindex);
ComOpen = false;
}
}
}