实例介绍
【实例简介】
【实例截图】
【核心代码】
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using System.Resources;
using System.Reflection;
using ReaderB;
using System.IO.Ports;
using System.IO;
namespace UHFReader18demomain
{
public partial class Form1 : 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;
public Form1()
{
InitializeComponent();
}
private void RefreshStatus()
{
if(!(ComboBox_AlreadyOpenCOM.Items.Count != 0))
StatusBar1.Panels[1].Text = "通讯关闭";
else
StatusBar1.Panels[1].Text = " COM" Convert.ToString(frmcomportindex);
StatusBar1.Panels[0].Text ="";
StatusBar1.Panels[2].Text ="";
}
private string GetReturnCodeDesc(int cmdRet)
{
switch (cmdRet)
{
case 0x00:
return "操作成功";
case 0x01:
return "询查时间结束前返回";
case 0x02:
return "指定的询查时间溢出";
case 0x03:
return "本条消息之后,还有消息";
case 0x04:
return "读写模块存储空间已满";
case 0x05:
return "访问密码错误";
case 0x09:
return "销毁密码错误";
case 0x0a:
return "销毁密码不能为全0";
case 0x0b:
return "电子标签不支持该命令";
case 0x0c:
return "对该命令,访问密码不能为全0";
case 0x0d:
return "电子标签已经被设置了读保护,不能再次设置";
case 0x0e:
return "电子标签没有被设置读保护,不需要解锁";
case 0x10:
return "有字节空间被锁定,写入失败";
case 0x11:
return "不能锁定";
case 0x12:
return "已经锁定,不能再次锁定";
case 0x13:
return "参数保存失败,但设置的值在读写模块断电前有效";
case 0x14:
return "无法调整";
case 0x15:
return "询查时间结束前返回";
case 0x16:
return "指定的询查时间溢出";
case 0x17:
return "本条消息之后,还有消息";
case 0x18:
return "读写模块存储空间已满";
case 0x19:
return "电子不支持该命令或者访问密码不能为0";
case 0xFA:
return "有电子标签,但通信不畅,无法操作";
case 0xFB:
return "无电子标签可操作";
case 0xFC:
return "电子标签返回错误代码";
case 0xFD:
return "命令长度错误";
case 0xFE:
return "不合法的命令";
case 0xFF:
return "参数错误";
case 0x30:
return "通讯错误";
case 0x31:
return "CRC校验错误";
case 0x32:
return "返回数据长度有错误";
case 0x33:
return "通讯繁忙,设备正在执行其他指令";
case 0x34:
return "繁忙,指令正在执行";
case 0x35:
return "端口已打开";
case 0x36:
return "端口已关闭";
case 0x37:
return "无效句柄";
case 0x38:
return "无效端口";
case 0xEE:
return "返回指令错误";
default:
return "";
}
}
private string GetErrorCodeDesc(int cmdRet)
{
switch (cmdRet)
{
case 0x00:
return "其它错误";
case 0x03:
return "存储器超限或不被支持的PC值";
case 0x04:
return "存储器锁定";
case 0x0b:
return "电源不足";
case 0x0f:
return "非特定错误";
default:
return "";
}
}
private 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;
}
private 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();
}
private void AddCmdLog(string CMD, string cmdStr, int cmdRet)
{
try
{
StatusBar1.Panels[0].Text = "";
StatusBar1.Panels[0].Text = DateTime.Now.ToLongTimeString() " "
cmdStr ": "
GetReturnCodeDesc(cmdRet);
}
finally
{
;
}
}
private void AddCmdLog(string CMD, string cmdStr, int cmdRet,int errocode)
{
try
{
StatusBar1.Panels[0].Text = "";
StatusBar1.Panels[0].Text = DateTime.Now.ToLongTimeString() " "
cmdStr ": "
GetReturnCodeDesc(cmdRet) " " "0x" Convert.ToString(errocode,16).PadLeft(2,'0');
}
finally
{
;
}
}
private void ClearLastInfo()
{
ComboBox_AlreadyOpenCOM.Refresh();
RefreshStatus();
Edit_Type.Text = "";
Edit_Version.Text = "";
ISO180006B.Checked=false;
EPCC1G2.Checked=false;
Edit_ComAdr.Text = "";
Edit_powerdBm.Text = "";
Edit_scantime.Text = "";
Edit_dminfre.Text = "";
Edit_dmaxfre.Text = "";
// PageControl1.TabIndex = 0;
}
private void InitComList()
{
int i = 0;
ComboBox_COM.Items.Clear();
ComboBox_COM.Items.Add(" AUTO");
for (i = 1; i < 13;i )
ComboBox_COM.Items.Add(" COM" Convert.ToString(i));
ComboBox_COM.SelectedIndex = 0;
RefreshStatus();
}
private void InitReaderList()
{
int i=0;
// ComboBox_PowerDbm.SelectedIndex = 0;
ComboBox_baud.SelectedIndex =3;
for (i=0 ;i< 63;i )
{
ComboBox_dminfre.Items.Add(Convert.ToString(902.6 i*0.4) " MHz");
ComboBox_dmaxfre.Items.Add(Convert.ToString(902.6 i * 0.4) " MHz");
}
ComboBox_dmaxfre.SelectedIndex = 62;
ComboBox_dminfre.SelectedIndex = 0;
for (i=0x03;i<=0xff;i )
ComboBox_scantime.Items.Add(Convert.ToString(i) "*100ms");
ComboBox_scantime.SelectedIndex = 7;
i=40;
while (i<=300)
{
ComboBox_IntervalTime.Items.Add(Convert.ToString(i) "ms");
i=i 10;
}
ComboBox_IntervalTime.SelectedIndex = 1;
for (i=0;i<7;i )
ComboBox_BlockNum.Items.Add(Convert.ToString(i * 2) " 和 " Convert.ToString(i * 2 1));
ComboBox_BlockNum.SelectedIndex = 0;
i=40;
while (i<=300 )
{
ComboBox_IntervalTime_6B.Items.Add(Convert.ToString(i) "ms");
i=i 10;
}
ComboBox_IntervalTime_6B.SelectedIndex = 1;
for (i = 0; i < 256; i )
{
comboBox1.Items.Add(Convert.ToString(i) "*10ms");
}
comboBox1.SelectedIndex = 30;
for (i = 1; i < 256; i )
{
comboBox3.Items.Add(Convert.ToString(i) "*10us");
}
comboBox3.SelectedIndex = 9;
for (i = 1; i < 256; i )
{
comboBox2.Items.Add(Convert.ToString(i) "*100us");
}
comboBox2.SelectedIndex = 14;
for (i = 0; i < 256; i )
{
comboBox6.Items.Add(Convert.ToString(i) "*1s");
}
comboBox6.SelectedIndex = 0;
for (i = 1; i < 33; i )
{
comboBox5.Items.Add(Convert.ToString(i));
}
comboBox5.SelectedIndex = 0;
comboBox4.SelectedIndex = 0;
ComboBox_PowerDbm.SelectedIndex = 30;
comboBox7.SelectedIndex = 8;
for (i = 0; i < 101; i )
{
comboBox_OffsetTime.Items.Add(Convert.ToString(i) "*1ms");
}
comboBox_OffsetTime.SelectedIndex = 5;
comboBox8.SelectedIndex = 0;
for (i=0;i< 255;i )
comboBox_tigtime.Items.Add(Convert.ToString(i) "*1s");
comboBox_tigtime .SelectedIndex= 0; //
}
private void Form1_Load(object sender, EventArgs e)
{
progressBar1.Visible = false;
fOpenComIndex = -1;
fComAdr = 0;
ferrorcode= -1;
fBaud =5;
InitComList();
InitReaderList();
NoAlarm_G2.Checked =true;
Byone_6B.Checked=true;
Different_6B.Checked=true;
P_EPC.Checked=true;
C_EPC.Checked=true;
DestroyCode.Checked=true;
NoProect.Checked=true;
NoProect2.Checked=true;
fAppClosed = false;
fIsInventoryScan = false;
fisinventoryscan_6B = false;
fTimer_6B_ReadWrite=false ;
Label_Alarm.Visible=false;
Timer_Test_.Enabled = false;
Timer_G2_Read.Enabled = false;
Timer_G2_Alarm.Enabled = false;
timer1.Enabled = false;
Button3.Enabled = false;
Button5.Enabled = false;
Button1.Enabled = false;
button2.Enabled = false;
Button_DestroyCard.Enabled = false;
Button_WriteEPC_G2.Enabled = false;
Button_SetReadProtect_G2.Enabled = false;
Button_SetMultiReadProtect_G2.Enabled = false;
Button_RemoveReadProtect_G2.Enabled = false;
Button_CheckReadProtected_G2.Enabled = false;
Button_SetEASAlarm_G2.Enabled = false;
button4.Enabled = false;
Button_LockUserBlock_G2.Enabled = false;
SpeedButton_Read_G2.Enabled = false;
Button_DataWrite.Enabled = false;
BlockWrite.Enabled = false;
Button_BlockErase.Enabled = false;
Button_SetProtectState.Enabled = false;
SpeedButton_Query_6B.Enabled = false;
SpeedButton_Read_6B.Enabled = false;
SpeedButton_Write_6B.Enabled = false;
Button14.Enabled = false;
Button15.Enabled = false;
DestroyCode.Enabled = false;
AccessCode.Enabled = false;
NoProect.Enabled = false;
Proect.Enabled = false;
Always.Enabled = false;
AlwaysNot.Enabled = false;
NoProect2.Enabled = false;
Proect2.Enabled = false;
Always2.Enabled = false;
AlwaysNot2.Enabled = false;
P_Reserve.Enabled = false;
P_EPC.Enabled = false;
P_TID.Enabled = false;
P_User.Enabled = false;
Same_6B.Enabled = false;
Different_6B.Enabled = false;
Less_6B.Enabled = false;
Greater_6B.Enabled = false;
radioButton1.Checked = true ;
radioButton4.Checked = true ;
radioButton5.Checked = true ;
radioButton7.Checked = true ;
radioButton10.Checked = true ;
radioButton14.Checked = true ;
button6.Enabled=false ;
button8.Enabled = false ;
button9.Enabled = false ;
button10.Enabled = false ;
button11.Enabled = false ;
comboBox5.Enabled = false ;
radioButton5.Enabled =false;
radioButton6.Enabled =false;
radioButton7.Enabled =false;
radioButton8.Enabled =false;
radioButton9.Enabled =false;
radioButton10.Enabled =false;
radioButton11.Enabled =false;
radioButton12.Enabled =false;
radioButton13.Enabled =false;
radioButton14.Enabled =false;
radioButton15.Enabled =false;
textBox3.Enabled = false;
radioButton_band1.Checked = true;
radioButton16.Enabled = false;
radioButton17.Enabled = false;
radioButton18.Enabled = false;
radioButton19.Enabled = false;
radioButton16.Checked=true;
ComboBox_baud2.SelectedIndex = 3;
button18.Enabled = false;
button19.Enabled = false;
button13.Enabled = false;
}
private void OpenPort_Click(object sender, EventArgs e)
{
int port=0;
int openresult,i;
openresult = 30;
string temp;
Cursor = Cursors.WaitCursor;
if (Edit_CmdComAddr.Text=="")
Edit_CmdComAddr.Text="FF";
fComAdr = Convert.ToByte(Edit_CmdComAddr.Text,16); // $FF;
try
{
if (ComboBox_COM.SelectedIndex == 0)//Auto
{
fBaud=Convert.ToByte(ComboBox_baud2.SelectedIndex);
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;
// Button3_Click(sender, e); //自动执行读取写卡器信息
if (fBaud > 3)
{
ComboBox_baud.SelectedIndex = Convert.ToInt32(fBaud - 2);
}
else
{
ComboBox_baud.SelectedIndex = Convert.ToInt32(fBaud);
}
Button3_Click(sender, e); //自动执行读取写卡器信息
if ((fCmdRet==0x35) |(fCmdRet==0x30))
{
MessageBox.Show("串口通讯错误", "信息提示");
StaticClassReaderB.CloseSpecComPort(frmcomportindex);
ComOpen = false;
}
}
}
else
{
temp = ComboBox_COM.SelectedItem.ToString();
temp = temp.Trim();
port = Convert.ToInt32(temp.Substring(3, temp.Length - 3));
for (i = 6; i >= 0; i--)
{
fBaud = Convert.ToByte(i);
if (fBaud == 3)
continue;
openresult = StaticClassReaderB.OpenComPort(port, ref fComAdr, fBaud, ref frmcomportindex);
fOpenComIndex = frmcomportindex;
if (openresult == 0x35)
{
MessageBox.Show("串口已打开", "信息提示");
return;
}
if (openresult == 0)
{
ComOpen = true;
Button3_Click(sender, e); //自动执行读取写卡器信息
if (fBaud > 3)
{
ComboBox_baud.SelectedIndex = Convert.ToInt32(fBaud - 2);
}
else
{
ComboBox_baud.SelectedIndex = Convert.ToInt32(fBaud);
}
if ((fCmdRet == 0x35) || (fCmdRet == 0x30))
{
ComOpen = false;
MessageBox.Show("串口通讯错误", "信息提示");
StaticClassReaderB.CloseSpecComPort(frmcomportindex);
return;
}
RefreshStatus();
break;
}
}
}
}
finally
{
Cursor = Cursors.Default;
}
if ((fOpenComIndex != -1) &(openresult != 0X35) &(openresult != 0X30))
{
ComboBox_AlreadyOpenCOM.Items.Add("COM" Convert.ToString(fOpenComIndex)) ;
ComboBox_AlreadyOpenCOM.SelectedIndex = ComboBox_AlreadyOpenCOM.SelectedIndex 1;
Button3.Enabled = true ;
Button5.Enabled = true;
Button1.Enabled = true;
button2.Enabled = true;
Button_WriteEPC_G2.Enabled = true;
Button_SetMultiReadProtect_G2.Enabled = true;
Button_RemoveReadProtect_G2.Enabled = true;
Button_CheckReadProtected_G2.Enabled = true;
button4.Enabled = true;
SpeedButton_Query_6B.Enabled = true ;
button6.Enabled = true;
button8.Enabled = true;
button9.Enabled = true;
button12.Enabled = true;
button_OffsetTime.Enabled = true;
button_settigtime.Enabled = true;
button_gettigtime.Enabled = true;
ComOpen = true;
}
if ((fOpenComIndex == -1) &&(openresult == 0x30))
MessageBox.Show("串口通讯错误", "信息提示");
// 下载于www.mycodes.net
if ((ComboBox_AlreadyOpenCOM.Items.Count != 0)&(fOpenComIndex != -1) & (openresult != 0X35) & (openresult != 0X30)&(fCmdRet==0))
{
fComAdr = Convert.ToByte(Edit_ComAdr.Text,16);
temp = ComboBox_AlreadyOpenCOM.SelectedItem.ToString();
frmcomportindex = Convert.ToInt32(temp.Substring(3, temp.Length - 3));
}
RefreshStatus();
}
private void ClosePort_Click(object sender, EventArgs e)
{
int port;
//string SelectCom ;
string temp;
ClearLastInfo();
try
{
if (ComboBox_AlreadyOpenCOM.SelectedIndex < 0 )
{
MessageBox.Show("请选择要关闭的端口", "信息提示");
}
else
{
temp = ComboBox_AlreadyOpenCOM.SelectedItem.ToString();
port = Convert.ToInt32(temp.Substring(3, temp.Length - 3));
fCmdRet = StaticClassReaderB.CloseSpecComPort(port);
if (fCmdRet == 0)
{
ComboBox_AlreadyOpenCOM.Items.RemoveAt(0);
if (ComboBox_AlreadyOpenCOM.Items.Count != 0)
{
temp = ComboBox_AlreadyOpenCOM.SelectedItem.ToString();
port = Convert.ToInt32(temp.Substring(3, temp.Length - 3));
StaticClassReaderB.CloseSpecComPort(port);
fComAdr = 0xFF;
StaticClassReaderB.OpenComPort(port,ref fComAdr, fBaud,ref frmcomportindex);
fOpenComIndex = frmcomportindex;
RefreshStatus();
Button3_Click(sender,e); //自动执行读取写卡器信息
}
}
else
MessageBox.Show("串口通讯错误", "信息提示");
}
}
finally
{
}
if (ComboBox_AlreadyOpenCOM.Items.Count != 0)
ComboBox_AlreadyOpenCOM.SelectedIndex = 0;
else
{
fOpenComIndex = -1;
ComboBox_AlreadyOpenCOM.Items.Clear();
ComboBox_AlreadyOpenCOM.Refresh();
RefreshStatus();
Button3.Enabled = false;
Button5.Enabled = false;
Button1.Enabled = false;
button2.Enabled = false;
Button_DestroyCard.Enabled = false;
Button_WriteEPC_G2.Enabled = false;
Button_SetReadProtect_G2.Enabled = false;
Button_SetMultiReadProtect_G2.Enabled = false;
Button_RemoveReadProtect_G2.Enabled = false;
Button_CheckReadProtected_G2.Enabled = false;
Button_SetEASAlarm_G2.Enabled = false;
button4.Enabled = false;
Button_LockUserBlock_G2.Enabled = false;
SpeedButton_Read_G2.Enabled = false;
Button_DataWrite.Enabled = false;
BlockWrite.Enabled = false;
Button_BlockErase.Enabled = false;
Button_SetProtectState.Enabled = false;
SpeedButton_Query_6B.Enabled = false;
SpeedButton_Read_6B.Enabled = false;
SpeedButton_Write_6B.Enabled = false;
Button14.Enabled = false;
Button15.Enabled = false;
DestroyCode.Enabled = false;
AccessCode.Enabled = false;
NoProect.Enabled = false;
Proect.Enabled = false;
Always.Enabled = false;
AlwaysNot.Enabled = false;
NoProect2.Enabled = false;
Proect2.Enabled = false;
Always2.Enabled = false;
AlwaysNot2.Enabled = false;
P_Reserve.Enabled = false;
P_EPC.Enabled = false;
P_TID.Enabled = false;
P_User.Enabled = false;
Alarm_G2.Enabled = false;
NoAlarm_G2.Enabled = false;
Same_6B.Enabled = false;
Different_6B.Enabled = false;
Less_6B.Enabled = false;
Greater_6B.Enabled = false;
button6.Enabled = false;
button8.Enabled = false;
button9.Enabled = false;
DestroyCode.Enabled = false;
AccessCode.Enabled = false;
NoProect.Enabled = false;
Proect.Enabled = false;
Always.Enabled = false;
AlwaysNot.Enabled = false;
NoProect2.Enabled = false;
Proect2.Enabled = false;
Always2.Enabled = false;
AlwaysNot2.Enabled = false;
P_Reserve.Enabled = false;
P_EPC.Enabled = false;
P_TID.Enabled = false;
P_User.Enabled = false;
Button_WriteEPC_G2.Enabled = false;
Button_SetMultiReadProtect_G2.Enabled = false;
Button_RemoveReadProtect_G2.Enabled = false;
Button_CheckReadProtected_G2.Enabled = false;
button4.Enabled = false;
Button_DestroyCard.Enabled = false;
Button_SetReadProtect_G2.Enabled = false;
Button_SetEASAlarm_G2.Enabled = false;
Alarm_G2.Enabled = false;
NoAlarm_G2.Enabled = false;
Button_LockUserBlock_G2.Enabled = false;
SpeedButton_Read_G2.Enabled = false;
Button_DataWrite.Enabled = false;
BlockWrite.Enabled = false;
Button_BlockErase.Enabled = false;
Button_SetProtectState.Enabled = false;
ListView1_EPC.Items.Clear();
ComboBox_EPC1.Items.Clear();
ComboBox_EPC2.Items.Clear();
ComboBox_EPC3.Items.Clear();
ComboBox_EPC4.Items.Clear();
ComboBox_EPC5.Items.Clear();
ComboBox_EPC6.Items.Clear();
button2.Text = "查询标签";
checkBox1.Enabled = false;
SpeedButton_Read_6B.Enabled = false;
SpeedButton_Write_6B.Enabled = false;
Button14.Enabled = false;
Button15.Enabled = false;
button12.Enabled = false;
button_OffsetTime.Enabled = false;
button_settigtime.Enabled = false;
button_gettigtime.Enabled = false;
ListView_ID_6B.Items.Clear();
ComOpen = false;
button10.Text = "获取";
timer1.Enabled = false;
button10.Enabled = false;
button11.Enabled = false;
}
}
private void Button3_Click(object sender, EventArgs e)
{
byte[] TrType=new byte[2];
byte[] VersionInfo=new byte[2];
byte ReaderType=0;
byte ScanTime=0;
byte dmaxfre=0;
byte dminfre = 0;
byte powerdBm=0;
byte FreBand = 0;
Edit_Version.Text = "";
Edit_ComAdr.Text = "";
Edit_scantime.Text = "";
Edit_Type.Text = "";
ISO180006B.Checked=false;
EPCC1G2.Checked=false;
Edit_powerdBm.Text = "";
Edit_dminfre.Text = "";
Edit_dmaxfre.Text = "";
ComboBox_PowerDbm.Items.Clear();
fCmdRet = StaticClassReaderB.GetReaderInformation(ref fComAdr, VersionInfo, ref ReaderType, TrType, ref dmaxfre, ref dminfre, ref powerdBm, ref ScanTime, frmcomportindex);
if (fCmdRet == 0)
{
Edit_Version.Text = Convert.ToString(VersionInfo[0], 10).PadLeft(2, '0') "." Convert.ToString(VersionInfo[1], 10).PadLeft(2, '0');
if (VersionInfo[1]>= 30)
{
for (int i=0;i< 31;i )
ComboBox_PowerDbm.Items.Add(Convert.ToString(i));
if(powerdBm>30)
ComboBox_PowerDbm.SelectedIndex=30;
else
ComboBox_PowerDbm.SelectedIndex=powerdBm;
}
else
{
for (int i=0;i< 19;i )
ComboBox_PowerDbm.Items.Add(Convert.ToString(i));
if (powerdBm > 18)
ComboBox_PowerDbm.SelectedIndex = 18;
else
ComboBox_PowerDbm.SelectedIndex = powerdBm;
}
Edit_ComAdr.Text = Convert.ToString(fComAdr, 16).PadLeft(2, '0');
Edit_NewComAdr.Text = Convert.ToString(fComAdr, 16).PadLeft(2, '0');
Edit_scantime.Text = Convert.ToString(ScanTime, 10).PadLeft(2, '0') "*100ms";
ComboBox_scantime.SelectedIndex = ScanTime - 3;
Edit_powerdBm.Text = Convert.ToString(powerdBm, 10).PadLeft(2, '0');
FreBand= Convert.ToByte(((dmaxfre & 0xc0)>> 4)|(dminfre >> 6)) ;
switch (FreBand)
{
case 0:
{
radioButton_band1.Checked = true;
fdminfre = 902.6 (dminfre & 0x3F) * 0.4;
fdmaxfre = 902.6 (dmaxfre & 0x3F) * 0.4;
}
break;
case 1:
{
radioButton_band2.Checked = true;
fdminfre = 920.125 (dminfre & 0x3F) * 0.25;
fdmaxfre = 920.125 (dmaxfre & 0x3F) * 0.25;
}
break;
case 2:
{
radioButton_band3.Checked = true;
fdminfre = 902.75 (dminfre & 0x3F) * 0.5;
fdmaxfre = 902.75 (dmaxfre & 0x3F) * 0.5;
}
break;
case 3:
{
radioButton_band4.Checked = true;
fdminfre = 917.1 (dminfre & 0x3F) * 0.2;
fdmaxfre = 917.1 (dmaxfre & 0x3F) * 0.2;
}
break;
case 4:
{
radioButton_band5.Checked = true;
fdminfre = 865.1 (dminfre & 0x3F) * 0.2;
fdmaxfre = 865.1 (dmaxfre & 0x3F) * 0.2;
}
break;
}
Edit_dminfre.Text = Convert.ToString(fdminfre) "MHz";
Edit_dmaxfre.Text = Convert.ToString(fdmaxfre) "MHz";
if (fdmaxfre != fdminfre)
CheckBox_SameFre.Checked = false;
ComboBox_dminfre.SelectedIndex = dminfre & 0x3F;
ComboBox_dmaxfre.SelectedIndex = dmaxfre & 0x3F;
if (ReaderType == 0x03)
Edit_Type.Text = "";
if (ReaderType == 0x06)
Edit_Type.Text = "";
if (ReaderType == 0x09)
Edit_Type.Text = "UHFReader18";
if ((TrType[0] & 0x02) == 0x02) //第二个字节低第四位代表支持的协议“ISO/IEC 15693”
{
ISO180006B.Checked = true;
EPCC1G2.Checked = true;
}
else
{
ISO180006B.Checked = false;
EPCC1G2.Checked = false;
}
}
AddCmdLog("GetReaderInformation", "获取读写器信息", fCmdRet);
}
private void Button5_Click(object sender, EventArgs e)
{
byte aNewComAdr, powerDbm, dminfre, dmaxfre, scantime, band=0;
string returninfo="";
string returninfoDlg="";
string setinfo;
if (radioButton_band1.Checked)
band = 0;
if (radioButton_band2.Checked)
band = 1;
if (radioButton_band3.Checked)
band = 2;
if (radioButton_band4.Checked)
band = 3;
if (radioButton_band5.Checked)
band = 4;
if (Edit_NewComAdr.Text == "")
return;
progressBar1.Visible = true;
progressBar1.Minimum = 0;
dminfre = Convert.ToByte(((band & 3) << 6) | (ComboBox_dminfre.SelectedIndex & 0x3F));
dmaxfre = Convert.ToByte(((band & 0x0c) << 4) | (ComboBox_dmaxfre.SelectedIndex & 0x3F));
aNewComAdr = Convert.ToByte(Edit_NewComAdr.Text);
powerDbm = Convert.ToByte(ComboBox_PowerDbm.SelectedIndex);
fBaud = Convert.ToByte(ComboBox_baud.SelectedIndex);
if (fBaud > 2)
fBaud = Convert.ToByte(fBaud 2);
scantime = Convert.ToByte(ComboBox_scantime.SelectedIndex 3);
setinfo = "写";
progressBar1.Value =10;
fCmdRet = StaticClassReaderB.WriteComAdr(ref fComAdr,ref aNewComAdr,frmcomportindex);
if (fCmdRet==0x13)
fComAdr = aNewComAdr;
if (fCmdRet == 0)
{
fComAdr = aNewComAdr;
returninfo = returninfo setinfo "读写器地址成功";
}
else if (fCmdRet==0xEE )
returninfo = returninfo setinfo "读写器地址返回指令错误";
else
{
returninfo = returninfo setinfo "读写器地址失败";
returninfoDlg = returninfoDlg setinfo "读写器地址失败指令返回=0x"
Convert.ToString(fCmdRet) "(" GetReturnCodeDesc(fCmdRet) ")";
}
progressBar1.Value =25;
fCmdRet = StaticClassReaderB.SetPowerDbm(ref fComAdr,powerDbm,frmcomportindex);
if (fCmdRet == 0)
returninfo = returninfo ",功率成功";
else if (fCmdRet==0xEE )
returninfo = returninfo ",功率返回指令错误";
else
{
returninfo = returninfo ",功率失败";
returninfoDlg = returninfoDlg " " setinfo "功率失败指令返回=0x"
Convert.ToString(fCmdRet) "(" GetReturnCodeDesc(fCmdRet) ")";
}
progressBar1.Value =40;
fCmdRet = StaticClassReaderB.Writedfre(ref fComAdr,ref dmaxfre,ref dminfre,frmcomportindex);
if (fCmdRet == 0 )
returninfo = returninfo ",频率成功";
else if (fCmdRet==0xEE)
returninfo = returninfo ",频率返回指令错误";
else
{
returninfo = returninfo ",频率失败";
returninfoDlg = returninfoDlg " " setinfo "频率失败指令返回=0x"
Convert.ToString(fCmdRet) "(" GetReturnCodeDesc(fCmdRet) ")";
}
progressBar1.Value =55;
fCmdRet = StaticClassReaderB.Writebaud(ref fComAdr,ref fBaud,frmcomportindex);
if (fCmdRet == 0)
returninfo = returninfo ",波特率成功";
else if (fCmdRet==0xEE)
returninfo = returninfo ",波特率返回指令错误";
else
{
returninfo = returninfo ",波特率失败";
returninfoDlg = returninfoDlg " " setinfo "波特率失败指令返回=0x"
Convert.ToString(fCmdRet) "(" GetReturnCodeDesc(fCmdRet) ")";
}
progressBar1.Value =70;
fCmdRet = StaticClassReaderB.WriteScanTime(ref fComAdr,ref scantime,frmcomportindex);
if (fCmdRet == 0 )
returninfo = returninfo ",询查时间成功";
else if (fCmdRet==0xEE)
returninfo = returninfo ",询查时间返回指令错误";
else
{
returninfo = returninfo ",询查时间失败";
returninfoDlg = returninfoDlg " " setinfo "询查时间失败指令返回=0x"
Convert.ToString(fCmdRet) "(" GetReturnCodeDesc(fCmdRet) ")";
}
progressBar1.Value =100;
Button3_Click(sender,e);
progressBar1.Visible=false;
StatusBar1.Panels[0].Text = DateTime.Now.ToLongTimeString() returninfo;
if (returninfoDlg!="")
MessageBox.Show(returninfoDlg, "提示");
}
private void Button1_Click(object sender, EventArgs e)
{
byte aNewComAdr, powerDbm, dminfre, dmaxfre, scantime;
string returninfo = "";
string returninfoDlg = "";
string setinfo;
progressBar1.Visible = true;
progressBar1.Minimum = 0;
dminfre = 0;
dmaxfre = 62;
aNewComAdr =0x00;
if (Convert.ToInt32(Edit_Version.Text.Substring(3, 2)) >= 30)
powerDbm = 30;
else
powerDbm=18;
fBaud=5;
scantime=10;
setinfo=" 恢复 ";
ComboBox_baud.SelectedIndex = 3;
progressBar1.Value = 10;
fCmdRet = StaticClassReaderB.WriteComAdr(ref fComAdr, ref aNewComAdr, frmcomportindex);
if (fCmdRet == 0x13)
fComAdr = aNewComAdr;
if (fCmdRet == 0)
{
fComAdr = aNewComAdr;
returninfo = returninfo setinfo "读写器地址成功";
}
else if (fCmdRet == 0xEE)
returninfo = returninfo setinfo "读写器地址返回指令错误";
else
{
returninfo = returninfo setinfo "读写器地址失败";
returninfoDlg = returninfoDlg setinfo "读写器地址失败指令返回=0x"
Convert.ToString(fCmdRet) "(" GetReturnCodeDesc(fCmdRet) ")";
}
progressBar1.Value = 25;
fCmdRet = StaticClassReaderB.SetPowerDbm(ref fComAdr, powerDbm, frmcomportindex);
if (fCmdRet == 0)
returninfo = returninfo ",功率成功";
else if (fCmdRet == 0xEE)
returninfo = returninfo ",功率返回指令错误";
else
{
returninfo = returninfo ",功率失败";
returninfoDlg = returninfoDlg " " setinfo "功率失败指令返回=0x"
Convert.ToString(fCmdRet) "(" GetReturnCodeDesc(fCmdRet) ")";
}
progressBar1.Value = 40;
fCmdRet = StaticClassReaderB.Writedfre(ref fComAdr, ref dmaxfre, ref dminfre, frmcomportindex);
if (fCmdRet == 0)
returninfo = returninfo ",频率成功";
else if (fCmdRet == 0xEE)
returninfo = returninfo ",频率返回指令错误";
else
{
returninfo = returninfo ",频率失败";
returninfoDlg = returninfoDlg " " setinfo "频率失败指令返回=0x"
Convert.ToString(fCmdRet) "(" GetReturnCodeDesc(fCmdRet) ")";
}
progressBar1.Value = 55;
fCmdRet = StaticClassReaderB.Writebaud(ref fComAdr, ref fBaud, frmcomportindex);
if (fCmdRet == 0)
returninfo = returninfo ",波特率成功";
else if (fCmdRet == 0xEE)
returninfo = returninfo ",波特率返回指令错误";
else
{
returninfo = returninfo ",波特率失败";
returninfoDlg = returninfoDlg " " setinfo "波特率失败指令返回=0x"
Convert.ToString(fCmdRet) "(" GetReturnCodeDesc(fCmdRet) ")";
}
progressBar1.Value = 70;
fCmdRet = StaticClassReaderB.WriteScanTime(ref fComAdr, ref scantime, frmcomportindex);
if (fCmdRet == 0)
returninfo = returninfo ",询查时间成功";
else if (fCmdRet == 0xEE)
returninfo = returninfo ",询查时间返回指令错误";
else
{
returninfo = returninfo ",询查时间失败";
returninfoDlg = returninfoDlg " " setinfo "询查时间失败指令返回=0x"
Convert.ToString(fCmdRet) "(" GetReturnCodeDesc(fCmdRet) ")";
}
progressBar1.Value = 100;
Button3_Click(sender, e);
progressBar1.Visible = false;
StatusBar1.Panels[0].Text = DateTime.Now.ToLongTimeString() returninfo;
if (returninfoDlg != "")
MessageBox.Show(returninfoDlg, "提示");
}
private void CheckBox_SameFre_CheckedChanged(object sender, EventArgs e)
{
if (CheckBox_SameFre.Checked)
ComboBox_dmaxfre.SelectedIndex = ComboBox_dminfre.SelectedIndex;
}
private void ComboBox_dfreSelect(object sender, EventArgs e)
{
if (CheckBox_SameFre.Checked )
{
ComboBox_dminfre.SelectedIndex =ComboBox_dmaxfre.SelectedIndex;
}
else if (ComboBox_dminfre.SelectedIndex> ComboBox_dmaxfre.SelectedIndex )
{
ComboBox_dminfre.SelectedIndex = ComboBox_dmaxfre.SelectedIndex;
MessageBox.Show("最低频率应小于或等于最高频率", "错误提示");
}
}
public void ChangeSubItem(ListViewItem ListItem, int subItemIndex, string ItemText)
{
if (subItemIndex == 1)
{
if (ItemText=="")
{
ListItem.SubItems[subItemIndex].Text = ItemText;
if (ListItem.SubItems[subItemIndex 2].Text == "")
{
ListItem.SubItems[subItemIndex 2].Text = "1";
}
else
{
ListItem.SubItems[subItemIndex 2].Text = Convert.ToString(Convert.ToInt32(ListItem.SubItems[subItemIndex 2].Text) 1);
}
}
else
if (ListItem.SubItems[subItemIndex].Text != ItemText)
{
ListItem.SubItems[subItemIndex].Text = ItemText;
ListItem.SubItems[subItemIndex 2].Text = "1";
}
else
{
ListItem.SubItems[subItemIndex 2].Text = Convert.ToString(Convert.ToInt32(ListItem.SubItems[subItemIndex 2].Text) 1);
if( (Convert.ToUInt32(ListItem.SubItems[subItemIndex 2].Text)>9999))
ListItem.SubItems[subItemIndex 2].Text="1";
}
}
if (subItemIndex == 2)
{
if (ListItem.SubItems[subItemIndex].Text != ItemText)
{
ListItem.SubItems[subItemIndex].Text = ItemText;
}
}
}
private void button2_Click(object sender, EventArgs e)
{
if (CheckBox_TID.Checked)
{
if ((textBox4.Text.Length) != 2 || ((textBox5.Text.Length) != 2))
{
StatusBar1.Panels[0].Text = "TID询查参数错误!";
return;
}
}
Timer_Test_.Enabled = !Timer_Test_.Enabled;
if (!Timer_Test_.Enabled)
{
textBox4.Enabled = true;
textBox5.Enabled = true;
CheckBox_TID.Enabled = true;
if (ListView1_EPC.Items.Count != 0)
{
DestroyCode.Enabled = false;
AccessCode.Enabled = false;
NoProect.Enabled = false;
Proect.Enabled = false;
Always.Enabled = false;
AlwaysNot.Enabled = false;
NoProect2.Enabled = true;
Proect2.Enabled = true;
Always2.Enabled = true;
AlwaysNot2.Enabled = true;
P_Reserve.Enabled = true;
P_EPC.Enabled = true;
P_TID.Enabled = true;
P_User.Enabled = true;
Button_DestroyCard.Enabled = true;
Button_SetReadProtect_G2.Enabled = true;
Button_SetEASAlarm_G2.Enabled = true;
Alarm_G2.Enabled = true;
NoAlarm_G2.Enabled = true;
Button_LockUserBlock_G2.Enabled = true;
Button_WriteEPC_G2.Enabled = true;
Button_SetMultiReadProtect_G2.Enabled = true;
Button_RemoveReadProtect_G2.Enabled = true;
Button_CheckReadProtected_G2.Enabled = true;
button4.Enabled = true;
SpeedButton_Read_G2.Enabled = true;
Button_SetProtectState.Enabled = true;
Button_DataWrite.Enabled = true;
BlockWrite.Enabled = true;
Button_BlockErase.Enabled = true;
checkBox1.Enabled=true;
}
if (ListView1_EPC.Items.Count == 0)
{
DestroyCode.Enabled = false;
AccessCode.Enabled = false;
NoProect.Enabled = false;
Proect.Enabled = false;
Always.Enabled = false;
AlwaysNot.Enabled = false;
NoProect2.Enabled = false ;
Proect2.Enabled = false ;
Always2.Enabled = false ;
AlwaysNot2.Enabled = false ;
P_Reserve.Enabled = false;
P_EPC.Enabled = false;
P_TID.Enabled = false;
P_User.Enabled = false;
Button_DestroyCard.Enabled = false;
Button_SetReadProtect_G2.Enabled = false;
Button_SetEASAlarm_G2.Enabled = false;
Alarm_G2.Enabled = false;
NoAlarm_G2.Enabled = false;
Button_LockUserBlock_G2.Enabled = false;
SpeedButton_Read_G2.Enabled = false;
Button_DataWrite.Enabled = false;
BlockWrite.Enabled = false;
Button_BlockErase.Enabled = false;
Button_WriteEPC_G2.Enabled = true;
Button_SetMultiReadProtect_G2.Enabled = true;
Button_RemoveReadProtect_G2.Enabled = true;
Button_CheckReadProtected_G2.Enabled = true;
button4.Enabled = true;
Button_SetProtectState.Enabled = false;
checkBox1.Enabled=false;
}
AddCmdLog("Inventory", "退出询查", 0);
button2.Text = "查询标签";
}
else
{
textBox4.Enabled = false;
textBox5.Enabled = false;
CheckBox_TID.Enabled = false;
DestroyCode.Enabled = false;
AccessCode.Enabled = false;
NoProect.Enabled = false;
Proect.Enabled = false;
Always.Enabled = false;
AlwaysNot.Enabled = false;
NoProect2.Enabled = false;
Proect2.Enabled = false;
Always2.Enabled = false;
AlwaysNot2.Enabled = false;
P_Reserve.Enabled = false;
P_EPC.Enabled = false;
P_TID.Enabled = false;
P_User.Enabled = false;
Button_WriteEPC_G2.Enabled = false ;
Button_SetMultiReadProtect_G2.Enabled = false;
Button_RemoveReadProtect_G2.Enabled = false;
Button_CheckReadProtected_G2.Enabled = false;
button4.Enabled = false;
Button_DestroyCard.Enabled = false;
Button_SetReadProtect_G2.Enabled = false;
Button_SetEASAlarm_G2.Enabled = false;
Alarm_G2.Enabled = false;
NoAlarm_G2.Enabled = false;
Button_LockUserBlock_G2.Enabled = false;
SpeedButton_Read_G2.Enabled = false;
Button_DataWrite.Enabled = false;
BlockWrite.Enabled = false;
Button_BlockErase.Enabled = false;
Button_SetProtectState.Enabled = false;
ListView1_EPC.Items.Clear();
ComboBox_EPC1.Items.Clear();
ComboBox_EPC2.Items.Clear();
ComboBox_EPC3.Items.Clear();
ComboBox_EPC4.Items.Clear();
ComboBox_EPC5.Items.Clear();
ComboBox_EPC6.Items.Clear();
button2.Text = "停止";
checkBox1.Enabled = false;
}
}
private void Inventory()
{
int i;
int CardNum=0;
int Totallen = 0;
int EPClen,m;
byte[] EPC=new byte[5000];
int CardIndex;
string temps;
string s, sEPC;
bool isonlistview;
fIsInventoryScan = true;
byte AdrTID=0;
byte LenTID = 0;
byte TIDFlag=0;
if(CheckBox_TID.Checked)
{
AdrTID=Convert.ToByte(textBox4.Text,16);
LenTID=Convert.ToByte(textBox5.Text,16);
TIDFlag=1;
}
else
{
AdrTID=0;
LenTID=0;
TIDFlag=0;
}
ListViewItem aListItem = new ListViewItem();
fCmdRet = StaticClassReaderB.Inventory_G2(ref fComAdr,AdrTID,LenTID,TIDFlag, EPC, ref Totallen, ref CardNum, frmcomportindex);
if ( (fCmdRet == 1)| (fCmdRet == 2)| (fCmdRet == 3)| (fCmdRet == 4)|(fCmdRet == 0xFB) )//代表已查找结束,
{
byte[] daw = new byte[Totallen];
Array.Copy(EPC, daw, Totallen);
temps = ByteArrayToHexString(daw);
fInventory_EPC_List = temps; //存贮记录
m=0;
/* while (ListView1_EPC.Items.Count < CardNum)
{
aListItem = ListView1_EPC.Items.Add((ListView1_EPC.Items.Count 1).ToString());
aListItem.SubItems.Add("");
aListItem.SubItems.Add("");
aListItem.SubItems.Add("");
*
}*/
if (CardNum==0)
{
fIsInventoryScan = false;
return;
}
for (CardIndex = 0;CardIndex<CardNum;CardIndex )
{
EPClen = daw[m];
sEPC = temps.Substring(m * 2 2, EPClen * 2);
m = m EPClen 1;
if (sEPC.Length != EPClen*2 )
return;
isonlistview = false;
for (i=0; i< ListView1_EPC.Items.Count;i ) //判断是否在Listview列表内
{
if (sEPC==ListView1_EPC.Items[i].SubItems[1].Text)
{
aListItem = ListView1_EPC.Items[i];
ChangeSubItem(aListItem, 1, sEPC);
isonlistview=true;
}
}
if (!isonlistview)
{
aListItem = ListView1_EPC.Items.Add((ListView1_EPC.Items.Count 1).ToString());
aListItem.SubItems.Add("");
aListItem.SubItems.Add("");
aListItem.SubItems.Add("");
s = sEPC;
ChangeSubItem(aListItem, 1, s);
s = (sEPC.Length / 2).ToString().PadLeft(2, '0');
ChangeSubItem(aListItem, 2, s);
if(! CheckBox_TID.Checked)
{
if (ComboBox_EPC1.Items.IndexOf(sEPC) == -1)
{
ComboBox_EPC1.Items.Add(sEPC);
ComboBox_EPC2.Items.Add(sEPC);
ComboBox_EPC3.Items.Add(sEPC);
ComboBox_EPC4.Items.Add(sEPC);
ComboBox_EPC5.Items.Add(sEPC);
ComboBox_EPC6.Items.Add(sEPC);
}
}
}
}
}
if (!CheckBox_TID.Checked)
{
if ((ComboBox_EPC1.Items.Count != 0))
{
ComboBox_EPC1.SelectedIndex = 0;
ComboBox_EPC2.SelectedIndex = 0;
ComboBox_EPC3.SelectedIndex = 0;
ComboBox_EPC4.SelectedIndex = 0;
ComboBox_EPC5.SelectedIndex = 0;
ComboBox_EPC6.SelectedIndex = 0;
}
}
fIsInventoryScan = false;
if (fAppClosed)
Close();
}
private void Timer_Test__Tick(object sender, EventArgs e)
{
if (fIsInventoryScan)
return;
Inventory();
}
private void SpeedButton_Read_G2_Click(object sender, EventArgs e)
{
if (Edit_WordPtr.Text == "")
{
MessageBox.Show("起始地址为空", "信息提示");
return;
}
if (textBox1.Text == "")
{
MessageBox.Show("读/块擦除长度", "信息提示");
return;
}
if (Edit_AccessCode2.Text == "")
{
MessageBox.Show("密码为空", "信息提示");
return;
}
if (Convert.ToInt32(Edit_WordPtr.Text,16) Convert.ToInt32(textBox1.Text) > 120)
return;
Timer_G2_Read.Enabled =!Timer_G2_Read.Enabled;
if (Timer_G2_Read.Enabled)
{
DestroyCode.Enabled = false;
AccessCode.Enabled = false;
NoProect.Enabled = false;
Proect.Enabled = false;
Always.Enabled = false;
AlwaysNot.Enabled = false;
NoProect2.Enabled = false;
Proect2.Enabled = false;
Always2.Enabled = false;
AlwaysNot2.Enabled = false;
P_Reserve.Enabled = false;
P_EPC.Enabled = false;
P_TID.Enabled = false;
P_User.Enabled = false;
Button_WriteEPC_G2.Enabled = false;
Button_SetMultiReadProtect_G2.Enabled = false;
Button_RemoveReadProtect_G2.Enabled = false;
Button_CheckReadProtected_G2.Enabled = false;
button4.Enabled = false;
Button_DestroyCard.Enabled = false;
Button_SetReadProtect_G2.Enabled = false;
Button_SetEASAlarm_G2.Enabled = false;
Alarm_G2.Enabled = false;
NoAlarm_G2.Enabled = false;
Button_LockUserBlock_G2.Enabled = false;
button2.Enabled = false;
Button_DataWrite.Enabled = false;
BlockWrite.Enabled = false;
Button_BlockErase.Enabled = false;
Button_SetProtectState.Enabled = false;
SpeedButton_Read_G2.Text = "停止";
}
else
{
if (ListView1_EPC.Items.Count != 0)
{
DestroyCode.Enabled = false;
AccessCode.Enabled = false;
NoProect.Enabled = false;
Proect.Enabled = false;
Always.Enabled = false;
AlwaysNot.Enabled = false;
NoProect2.Enabled = true;
Proect2.Enabled = true;
Always2.Enabled = true;
AlwaysNot2.Enabled = true;
P_Reserve.Enabled = true;
P_EPC.Enabled = true;
P_TID.Enabled = true;
P_User.Enabled = true;
Button_DestroyCard.Enabled = true;
Button_SetReadProtect_G2.Enabled = true;
Button_SetEASAlarm_G2.Enabled = true;
Alarm_G2.Enabled = true;
NoAlarm_G2.Enabled = true;
Button_LockUserBlock_G2.Enabled = true;
Button_WriteEPC_G2.Enabled = true;
Button_SetMultiReadProtect_G2.Enabled = true;
Button_RemoveReadProtect_G2.Enabled = true;
Button_CheckReadProtected_G2.Enabled = true;
button4.Enabled = true;
button2.Enabled = true;
Button_SetProtectState.Enabled = true;
Button_DataWrite.Enabled = true;
BlockWrite.Enabled = true;
Button_BlockErase.Enabled = true;
}
if (ListView1_EPC.Items.Count == 0)
{
DestroyCode.Enabled = false;
AccessCode.Enabled = false;
NoProect.Enabled = false;
Proect.Enabled = false;
Always.Enabled = false;
AlwaysNot.Enabled = false;
NoProect2.Enabled = false;
Proect2.Enabled = false;
Always2.Enabled = false;
AlwaysNot2.Enabled = false;
P_Reserve.Enabled = false;
P_EPC.Enabled = false;
P_TID.Enabled = false;
P_User.Enabled = false;
Button_DestroyCard.Enabled = false;
Button_SetReadProtect_G2.Enabled = false;
Button_SetEASAlarm_G2.Enabled = false;
Alarm_G2.Enabled = false;
NoAlarm_G2.Enabled = false;
Button_LockUserBlock_G2.Enabled = false;
Button_SetProtectState.Enabled = false;
button2.Enabled = true;
Button_DataWrite.Enabled = false;
BlockWrite.Enabled = false;
Button_BlockErase.Enabled = false;
Button_WriteEPC_G2.Enabled = true;
Button_SetMultiReadProtect_G2.Enabled = true;
Button_RemoveReadProtect_G2.Enabled = true;
Button_CheckReadProtected_G2.Enabled = true;
button4.Enabled = true;
}
SpeedButton_Read_G2.Text = "读";
}
}
private void Timer_G2_Read_Tick(object sender, EventArgs e)
{
if (fIsInventoryScan)
return;
fIsInventoryScan = true;
byte WordPtr, ENum;
byte Num = 0;
byte Mem = 0;
byte EPClength=0;
string str;
byte[] CardData=new byte[320];
if ((maskadr_textbox.Text=="")||(maskLen_textBox.Text=="") )
{
fIsInventoryScan = false;
return;
}
if (checkBox1.Checked)
MaskFlag=1;
else
MaskFlag = 0;
Maskadr = Convert.ToByte(maskadr_textbox.Text,16);
MaskLen = Convert.ToByte(maskLen_textBox.Text,16);
if (textBox1.Text == "")
{
fIsInventoryScan = false;
return;
}
if (ComboBox_EPC2.Items.Count == 0)
{
fIsInventoryScan = false;
return;
}
if (ComboBox_EPC2.SelectedItem == null)
{
fIsInventoryScan = false;
return;
}
str = ComboBox_EPC2.SelectedItem.ToString();
ENum = Convert.ToByte(str.Length / 4);
EPClength = Convert.ToByte(str.Length / 2);
byte[] EPC = new byte[ENum*2];
EPC = HexStringToByteArray(str);
if (C_Reserve.Checked)
Mem = 0;
if (C_EPC.Checked)
Mem = 1;
if (C_TID.Checked)
Mem = 2;
if (C_User.Checked)
Mem = 3;
if (Edit_AccessCode2.Text == "")
{
fIsInventoryScan = false;
return;
}
if (Edit_WordPtr.Text == "")
{
fIsInventoryScan = false;
return;
}
WordPtr = Convert.ToByte(Edit_WordPtr.Text, 16);
Num = Convert.ToByte(textBox1.Text);
if (Edit_AccessCode2.Text.Length != 8)
{
fIsInventoryScan = false;
return;
}
fPassWord = HexStringToByteArray(Edit_AccessCode2.Text);
fCmdRet = StaticClassReaderB.ReadCard_G2(ref fComAdr, EPC, Mem, WordPtr, Num, fPassWord,Maskadr,MaskLen,MaskFlag, CardData, EPClength, ref ferrorcode, frmcomportindex);
if (fCmdRet == 0)
{
byte[] daw = new byte[Num*2];
Array.Copy(CardData, daw, Num * 2);
listBox1.Items.Add(ByteArrayToHexString(daw));
listBox1.SelectedIndex = listBox1.Items.Count - 1;
AddCmdLog("ReadData", "读", fCmdRet);
}
if (ferrorcode != -1)
{
StatusBar1.Panels[0].Text = DateTime.Now.ToLongTimeString()
" '读' 返回错误=0x" Convert.ToString(ferrorcode, 2)
"(" GetErrorCodeDesc(ferrorcode) ")";
ferrorcode=-1;
}
fIsInventoryScan = false;
if (fAppClosed)
Close();
}
private void Button_DataWrite_Click(object sender, EventArgs e)
{
byte WordPtr, ENum;
byte Num = 0;
byte Mem = 0;
byte WNum = 0;
byte EPClength = 0;
byte Writedatalen = 0;
int WrittenDataNum = 0;
string s2, str;
byte[] CardData = new byte[320];
byte[] writedata = new byte[230];
if ((maskadr_textbox.Text == "") || (maskLen_textBox.Text == ""))
{
return;
}
if (checkBox1.Checked)
MaskFlag = 1;
else
MaskFlag = 0;
Maskadr = Convert.ToByte(maskadr_textbox.Text, 16);
MaskLen = Convert.ToByte(maskLen_textBox.Text, 16);
if (ComboBox_EPC2.Items.Count == 0)
return;
if (ComboBox_EPC2.SelectedItem == null)
return;
str = ComboBox_EPC2.SelectedItem.ToString();
ENum = Convert.ToByte(str.Length / 4);
EPClength = Convert.ToByte(ENum * 2);
byte[] EPC = new byte[ENum];
EPC = HexStringToByteArray(str);
if (C_Reserve.Checked)
Mem = 0;
if (C_EPC.Checked)
Mem = 1;
if (C_TID.Checked)
Mem = 2;
if (C_User.Checked)
Mem = 3;
if (Edit_WordPtr.Text == "")
{
MessageBox.Show("起始地址为空", "信息提示");
return;
}
if (textBox1.Text == "")
{
MessageBox.Show("读/块擦除长度", "信息提示");
return;
}
if (Convert.ToInt32(Edit_WordPtr.Text,16) Convert.ToInt32(textBox1.Text) > 120)
return;
if (Edit_AccessCode2.Text == "")
{
return;
}
WordPtr = Convert.ToByte(Edit_WordPtr.Text, 16);
Num = Convert.ToByte(textBox1.Text);
if (Edit_AccessCode2.Text.Length != 8)
{
return;
}
fPassWord = HexStringToByteArray(Edit_AccessCode2.Text);
if (Edit_WriteData.Text == "")
return;
s2 = Edit_WriteData.Text;
if (s2.Length % 4 != 0)
{
MessageBox.Show("以字为单位输入.", "写");
return;
}
WNum = Convert.ToByte(s2.Length / 4);
byte[] Writedata = new byte[WNum * 2];
Writedata = HexStringToByteArray(s2);
Writedatalen = Convert.ToByte(WNum * 2);
if((checkBox_pc.Checked)&&(C_EPC.Checked))
{
WordPtr =1;
Writedatalen =Convert.ToByte(Edit_WriteData.Text.Length /2 2);
Writedata = HexStringToByteArray(textBox_pc.Text Edit_WriteData.Text);
}
fCmdRet = StaticClassReaderB.WriteCard_G2(ref fComAdr, EPC, Mem, WordPtr, Writedatalen, Writedata, fPassWord,Maskadr,MaskLen,MaskFlag, WrittenDataNum, EPClength, ref ferrorcode, frmcomportindex);
AddCmdLog("Write data", "写", fCmdRet);
if (fCmdRet == 0)
{
StatusBar1.Panels[0].Text = DateTime.Now.ToLongTimeString() "‘写EPC”指令返回=0x00"
"(写EPC成功)";
}
}
private void Button_BlockErase_Click(object sender, EventArgs e)
{
byte WordPtr, ENum;
byte Num = 0;
byte Mem = 0;
byte EPClength = 0;
string str;
byte[] CardData = new byte[320];
if ((maskadr_textbox.Text == "") || (maskLen_textBox.Text == ""))
{
fIsInventoryScan = false;
return;
}
if (checkBox1.Checked)
MaskFlag = 1;
else
MaskFlag = 0;
Maskadr = Convert.ToByte(maskadr_textbox.Text,16);
MaskLen = Convert.ToByte(maskLen_textBox.Text,16);
if (ComboBox_EPC2.Items.Count == 0)
return;
if (ComboBox_EPC2.SelectedItem == null)
return;
str = ComboBox_EPC2.SelectedItem.ToString();
if (str == "")
return;
ENum = Convert.ToByte(str.Length / 4);
EPClength = Convert.ToByte(str.Length / 2);
byte[] EPC = new byte[ENum];
EPC = HexStringToByteArray(str);
if (C_Reserve.Checked)
Mem = 0;
if (C_EPC.Checked)
Mem = 1;
if (C_TID.Checked)
Mem = 2;
if (C_User.Checked)
Mem = 3;
if (Edit_WordPtr.Text == "")
{
MessageBox.Show("起始地址为空","信息提示");
return;
}
if (textBox1.Text == "")
{
MessageBox.Show("读/块擦除长度", "信息提示");
return;
}
if (Convert.ToInt32(Edit_WordPtr.Text,16) Convert.ToInt32(textBox1.Text) > 120)
return;
if (Edit_AccessCode2.Text == "")
return;
WordPtr = Convert.ToByte(Edit_WordPtr.Text, 16);
if ((Mem == 1) & (WordPtr < 2))
{
MessageBox.Show("擦除EPC区的起始地址长度必须大于等于0x01!请重新输入!", "信息提示");
return;
}
Num = Convert.ToByte(textBox1.Text);
if (Edit_AccessCode2.Text.Length != 8)
{
return;
}
fPassWord = HexStringToByteArray(Edit_AccessCode2.Text);
fCmdRet = StaticClassReaderB.EraseCard_G2(ref fComAdr, EPC, Mem, WordPtr, Num, fPassWord,Maskadr,MaskLen,MaskFlag,EPClength, ref ferrorcode, frmcomportindex);
AddCmdLog("EraseCard", "块擦除", fCmdRet);
if (fCmdRet == 0)
{
StatusBar1.Panels[0].Text = DateTime.Now.ToLongTimeString() "“擦除数据”指令返回=0x00"
"(擦除数据成功)";
}
}
private void button7_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
}
private void Button_SetProtectState_Click(object sender, EventArgs e)
{
byte select=0;
byte setprotect=0;
byte EPClength;
string str;
byte ENum;
if ((maskadr_textbox.Text == "") || (maskLen_textBox.Text == ""))
{
fIsInventoryScan = false;
return;
}
if (checkBox1.Checked)
MaskFlag = 1;
else
MaskFlag = 0;
Maskadr = Convert.ToByte(maskadr_textbox.Text,16);
MaskLen = Convert.ToByte(maskLen_textBox.Text,16);
if (ComboBox_EPC1.Items.Count == 0)
return;
if (ComboBox_EPC1.SelectedItem == null)
return;
str = ComboBox_EPC1.SelectedItem.ToString();
if (str == "")
return;
ENum = Convert.ToByte(str.Length / 4);
EPClength = Convert.ToByte(str.Length / 2);
byte[] EPC = new byte[ENum];
EPC = HexStringToByteArray(str);
if (textBox2.Text.Length != 8)
{
MessageBox.Show("访问密码小于8,重新输入!","信息提示");
return;
}
fPassWord = HexStringToByteArray(textBox2.Text);
if ((P_Reserve.Checked) & (DestroyCode.Checked))
select = 0x00;
else if ((P_Reserve.Checked) & (AccessCode.Checked))
select = 0x01;
else if (P_EPC.Checked)
select = 0x02;
else if (P_TID.Checked)
select = 0x03;
else if (P_User.Checked)
select = 0x04;
if (P_Reserve.Checked)
{
if (NoProect.Checked )
setprotect=0x00;
else if (Proect.Checked)
setprotect=0x02;
else if (Always.Checked )
{
setprotect=0x01;
if (MessageBox.Show(this, "确定要设置为永远可读可写吗?", "信息提示", MessageBoxButtons.OKCancel) == DialogResult.Cancel)
return;
}
else if (AlwaysNot.Checked )
{
setprotect=0x03;
if (MessageBox.Show(this, "确定要设置为永远不可读不可写吗", "信息提示", MessageBoxButtons.OKCancel) == DialogResult.Cancel)
return;
}
}
else
{
if (NoProect2.Checked)
setprotect=0x00;
else if (Proect2.Checked)
setprotect=0x02;
else if (Always2.Checked)
{
setprotect=0x01;
if (MessageBox.Show(this, "确定要设置为永远可写吗", "信息提示", MessageBoxButtons.OKCancel) == DialogResult.Cancel)
return;
}
else if (AlwaysNot2.Checked )
{
setprotect=0x03;
if (MessageBox.Show(this, "确定要设置为永远不可写吗?", "信息提示", MessageBoxButtons.OKCancel) == DialogResult.Cancel)
return;
}
}
fCmdRet = StaticClassReaderB.SetCardProtect_G2(ref fComAdr, EPC, select, setprotect, fPassWord,Maskadr,MaskLen,MaskFlag, EPClength, ref ferrorcode, frmcomportindex); ;
AddCmdLog("SetCardProtect", "设置保护", fCmdRet);
}
private void Button_DestroyCard_Click(object sender, EventArgs e)
{
byte EPClength;
string str;
byte ENum;
if ((maskadr_textbox.Text == "") || (maskLen_textBox.Text == ""))
{
fIsInventoryScan = false;
return;
}
if (checkBox1.Checked)
MaskFlag = 1;
else
MaskFlag = 0;
Maskadr = Convert.ToByte(maskadr_textbox.Text, 16);
MaskLen = Convert.ToByte(maskLen_textBox.Text, 16);
StatusBar1.Panels[0].Text = DateTime.Now.ToLongTimeString() "";
if (MessageBox.Show(this, "确定要销毁这张标签吗?", "信息提示", MessageBoxButtons.OKCancel) == DialogResult.Cancel)
return;
if (Edit_DestroyCode.Text.Length != 8)
{
MessageBox.Show("销毁密码小于8位!请重新输入!", "信息提示");
return;
}
if (ComboBox_EPC3.Items.Count == 0)
return;
if (ComboBox_EPC3.SelectedItem == null)
return;
str = ComboBox_EPC3.SelectedItem.ToString();
if (str == "")
return;
ENum = Convert.ToByte(str.Length / 4);
EPClength = Convert.ToByte(str.Length / 2);
byte[] EPC = new byte[ENum];
EPC = HexStringToByteArray(str);
fPassWord = HexStringToByteArray(Edit_DestroyCode.Text);
fCmdRet = StaticClassReaderB.DestroyCard_G2(ref fComAdr, EPC, fPassWord,Maskadr,MaskLen,MaskFlag, EPClength, ref ferrorcode, frmcomportindex);
AddCmdLog("DestroyCard", "销毁标签", fCmdRet);
if (fCmdRet == 0)
StatusBar1.Panels[0].Text = DateTime.Now.ToLongTimeString() " “销毁标签”指令返回=0x00"
"(销毁成功)";
}
private void Button_WriteEPC_G2_Click(object sender, EventArgs e)
{
byte[] WriteEPC =new byte[100];
byte WriteEPClen;
byte ENum;
if (Edit_AccessCode3.Text.Length < 8)
{
MessageBox.Show("访问密码小于8位!请重新输入!!", "信息提示");
return;
}
if ((Edit_WriteEPC.Text.Length%4) !=0)
{
MessageBox.Show("请输入以字为单位的16进制数!' #13 #10 '例如:1234、12345678!", "信息提示");
return;
}
WriteEPClen=Convert.ToByte(Edit_WriteEPC.Text.Length/ 2) ;
ENum = Convert.ToByte(Edit_WriteEPC.Text.Length / 4);
byte[] EPC = new byte[ENum];
EPC = HexStringToByteArray(Edit_WriteEPC.Text);
fPassWord = HexStringToByteArray(Edit_AccessCode3.Text);
fCmdRet = StaticClassReaderB.WriteEPC_G2(ref fComAdr, fPassWord, EPC, WriteEPClen, ref ferrorcode, frmcomportindex);
AddCmdLog("WriteEPC_G2", "写EPC", fCmdRet);
if (fCmdRet == 0)
StatusBar1.Panels[0].Text = DateTime.Now.ToLongTimeString() "“写EPC”指令返回=0x00"
"(写EPC成功)";
}
private void Button_SetReadProtect_G2_Click(object sender, EventArgs e)
{
byte EPClength;
byte ENum;
string str;
if ((maskadr_textbox.Text == "") || (maskLen_textBox.Text == ""))
{
fIsInventoryScan = false;
return;
}
if (checkBox1.Checked)
MaskFlag = 1;
else
MaskFlag = 0;
Maskadr = Convert.ToByte(maskadr_textbox.Text, 16);
MaskLen = Convert.ToByte(maskLen_textBox.Text, 16);
if (Edit_AccessCode4.Text.Length < 8)
{
MessageBox.Show("访问密码小于8位!请重新输入!", "信息提示");
return;
}
if (ComboBox_EPC4.Items.Count == 0)
return;
if (ComboBox_EPC4.SelectedItem == null)
return;
str = ComboBox_EPC4.SelectedItem.ToString();
if (str == "")
return;
ENum = Convert.ToByte(str.Length / 4);
EPClength = Convert.ToByte(str.Length / 2);
byte[] EPC = new byte[ENum];
EPC = HexStringToByteArray(str);
fPassWord = HexStringToByteArray(Edit_AccessCode4.Text);
fCmdRet = StaticClassReaderB.SetReadProtect_G2(ref fComAdr, EPC, fPassWord,Maskadr,MaskLen,MaskFlag, EPClength, ref ferrorcode, frmcomportindex);
AddCmdLog("SetReadProtect_G2", "设置单张读保护", fCmdRet);
if (fCmdRet==0)
{
StatusBar1.Panels[0].Text = DateTime.Now.ToLongTimeString() " '设置单张读保护'指令返回=0x00"
"设置单张读保护成功";
}
}
private void Button_SetMultiReadProtect_G2_Click(object sender, EventArgs e)
{
if (Edit_AccessCode4.Text.Length < 8)
{
MessageBox.Show("访问密码小于8位!请重新输入!", "信息提示");
return;
}
fPassWord = HexStringToByteArray(Edit_AccessCode4.Text);
fCmdRet=StaticClassReaderB.SetMultiReadProtect_G2(ref fComAdr,fPassWord,ref ferrorcode,frmcomportindex);
AddCmdLog("SetMultiReadProtect_G2", "设置单张读保护(不需EPC号)", fCmdRet);
if (fCmdRet==0)
StatusBar1.Panels[0].Text = DateTime.Now.ToLongTimeString() " '设置单张读保护(不需EPC号)'指令返回=0x00"
"(设置单张读保护(不需EPC号)成功)";
}
private void Button_RemoveReadProtect_G2_Click(object sender, EventArgs e)
{
if (Edit_AccessCode4.Text.Length < 8)
{
MessageBox.Show("访问密码小于8位!请重新输入!", "信息提示");
return;
}
fPassWord = HexStringToByteArray(Edit_AccessCode4.Text);
fCmdRet=StaticClassReaderB.RemoveReadProtect_G2(ref fComAdr,fPassWord,ref ferrorcode,frmcomportindex);
AddCmdLog("RemoveReadProtect_G2", "解除单张读保护(不需EPC号)", fCmdRet);
if (fCmdRet==0)
StatusBar1.Panels[0].Text = DateTime.Now.ToLongTimeString() " '解除单张读保护(不需EPC号)'指令返回=0x00"
"(解除单张读保护(不需EPC号)成功)";
}
private void Button_CheckReadProtected_G2_Click(object sender, EventArgs e)
{
byte readpro=2;
fCmdRet=StaticClassReaderB.CheckReadProtected_G2(ref fComAdr,ref readpro,ref ferrorcode,frmcomportindex);
AddCmdLog("CheckReadProtected_G2", "检测单张被读保护(不需要访问密码)", fCmdRet);
if (fCmdRet==0)
{
if (readpro==0)
StatusBar1.Panels[0].Text = DateTime.Now.ToLongTimeString() " '检测单张被读保护(不需要访问密码)'指令返回=0x00"
"(电子标签没有被设置为读保护";
if (readpro==1)
StatusBar1.Panels[0].Text = DateTime.Now.ToLongTimeString() " '检测单张被读保护(不需要访问密码)'指令返回=0x01"
"(电子标签被设置读保护锁定)";
}
}
private void Button_SetEASAlarm_G2_Click(object sender, EventArgs e)
{
byte EPClength=0;
byte EAS=0;
byte ENum;
string str;
if ((maskadr_textbox.Text == "") || (maskLen_textBox.Text == ""))
{
fIsInventoryScan = false;
return;
}
if (checkBox1.Checked)
MaskFlag = 1;
else
MaskFlag = 0;
Maskadr = Convert.ToByte(maskadr_textbox.Text, 16);
MaskLen = Convert.ToByte(maskLen_textBox.Text, 16);
if (Edit_AccessCode5.Text.Length < 8)
{
MessageBox.Show("访问密码小于8位!请重新输入!", "信息提示");
return;
}
if (ComboBox_EPC5.Items.Count == 0)
return;
if (ComboBox_EPC5.SelectedItem == null)
return;
str = ComboBox_EPC5.SelectedItem.ToString();
if (str == "")
return;
ENum = Convert.ToByte(str.Length / 4);
EPClength = Convert.ToByte(str.Length / 2);
byte[] EPC = new byte[ENum];
EPC = HexStringToByteArray(str);
fPassWord = HexStringToByteArray(Edit_AccessCode5.Text);
if (Alarm_G2.Checked)
EAS= 1;
else
EAS=0;
fCmdRet = StaticClassReaderB.SetEASAlarm_G2(ref fComAdr, EPC, fPassWord,Maskadr,MaskLen,MaskFlag, EAS, EPClength, ref ferrorcode, frmcomportindex);
AddCmdLog("SetEASAlarm_G2", "报警设置", fCmdRet); //v2.1 change
if (fCmdRet==0)
{
if (Alarm_G2.Checked) //v2.1 add
StatusBar1.Panels[0].Text = DateTime.Now.ToLongTimeString() " '报警设置'指令返回=0x00"
"设置EAS报警 成功)";
else
StatusBar1.Panels[0].Text = DateTime.Now.ToLongTimeString() " '报警设置'指令返回=0x00"
"(清除EAS报警成功)";
}
}
private void button4_Click(object sender, EventArgs e)
{
Timer_G2_Alarm.Enabled = !Timer_G2_Alarm.Enabled;
if (Timer_G2_Alarm.Enabled)
{
DestroyCode.Enabled = false;
AccessCode.Enabled = false;
NoProect.Enabled = false;
Proect.Enabled = false;
Always.Enabled = false;
AlwaysNot.Enabled = false;
NoProect2.Enabled = false;
Proect2.Enabled = false;
Always2.Enabled = false;
AlwaysNot2.Enabled = false;
P_Reserve.Enabled = false;
P_EPC.Enabled = false;
P_TID.Enabled = false;
P_User.Enabled = false;
Button_WriteEPC_G2.Enabled = false;
Button_SetMultiReadProtect_G2.Enabled = false;
Button_RemoveReadProtect_G2.Enabled = false;
Button_CheckReadProtected_G2.Enabled = false;
button2.Enabled = false;
Button_DestroyCard.Enabled = false;
Button_SetReadProtect_G2.Enabled = false;
Button_SetEASAlarm_G2.Enabled = false;
Alarm_G2.Enabled = false;
NoAlarm_G2.Enabled = false;
Button_LockUserBlock_G2.Enabled = false;
SpeedButton_Read_G2.Enabled = false;
Button_DataWrite.Enabled = false;
BlockWrite.Enabled = false;
Button_BlockErase.Enabled = false;
Button_SetProtectState.Enabled = false;
button4.Text = "停止";
}
else
{
if (ListView1_EPC.Items.Count != 0)
{
DestroyCode.Enabled = false;
AccessCode.Enabled = false;
NoProect.Enabled = false;
Proect.Enabled = false;
Always.Enabled = false;
AlwaysNot.Enabled = false;
NoProect2.Enabled = true;
Proect2.Enabled = true;
Always2.Enabled = true;
AlwaysNot2.Enabled = true;
P_Reserve.Enabled = true;
P_EPC.Enabled = true;
P_TID.Enabled = true;
P_User.Enabled = true;
Button_DestroyCard.Enabled = true;
Button_SetReadProtect_G2.Enabled = true;
Button_SetEASAlarm_G2.Enabled = true;
Alarm_G2.Enabled = true;
NoAlarm_G2.Enabled = true;
Button_LockUserBlock_G2.Enabled = true;
Button_WriteEPC_G2.Enabled = true;
Button_SetMultiReadProtect_G2.Enabled = true;
Button_RemoveReadProtect_G2.Enabled = true;
Button_CheckReadProtected_G2.Enabled = true;
button2.Enabled = true;
Button_SetProtectState.Enabled = true;
SpeedButton_Read_G2.Enabled = true;
Button_DataWrite.Enabled = true;
BlockWrite.Enabled = true;
Button_BlockErase.Enabled = true;
}
if (ListView1_EPC.Items.Count == 0)
{
DestroyCode.Enabled = false;
AccessCode.Enabled = false;
NoProect.Enabled = false;
Proect.Enabled = false;
Always.Enabled = false;
AlwaysNot.Enabled = false;
NoProect2.Enabled = false;
Proect2.Enabled = false;
Always2.Enabled = false;
AlwaysNot2.Enabled = false;
P_Reserve.Enabled = false;
P_EPC.Enabled = false;
P_TID.Enabled = false;
P_User.Enabled = false;
Button_DestroyCard.Enabled = false;
Button_SetReadProtect_G2.Enabled = false;
Button_SetEASAlarm_G2.Enabled = false;
Alarm_G2.Enabled = false;
NoAlarm_G2.Enabled = false;
Button_LockUserBlock_G2.Enabled = false;
SpeedButton_Read_G2.Enabled = false;
Button_DataWrite.Enabled = false;
BlockWrite.Enabled = false;
Button_BlockErase.Enabled = false;
Button_SetProtectState.Enabled = false;
Button_WriteEPC_G2.Enabled = true;
Button_SetMultiReadProtect_G2.Enabled = true;
Button_RemoveReadProtect_G2.Enabled = true;
Button_CheckReadProtected_G2.Enabled = true;
button2.Enabled = true;
}
button4.Text = "检测EAS报警";
Label_Alarm.Visible = false; //v2.1 add
StatusBar1.Panels[0].Text = DateTime.Now.ToLongTimeString() " “检测EAS报警”结束";
}
}
private void Timer_G2_Alarm_Tick(object sender, EventArgs e)
{
if (fIsInventoryScan)
return;
fIsInventoryScan = true;
fCmdRet=StaticClassReaderB.CheckEASAlarm_G2(ref fComAdr,ref ferrorcode,frmcomportindex);
if (fCmdRet==0)
{
StatusBar1.Panels[0].Text = DateTime.Now.ToLongTimeString() "“检测EAS报警”指令返回=0x00"
"(检测到EAS报警)";
Label_Alarm.Visible=true; //v2.1 add
}
else
{
Label_Alarm.Visible=false; //v2.1 add
AddCmdLog("CheckEASAlarm_G2", "检测EAS报警", fCmdRet);
}
fIsInventoryScan = false;
if (fAppClosed)
Close();
}
private void Button_LockUserBlock_G2_Click(object sender, EventArgs e)
{
byte EPClength = 0;
byte BlockNum = 0;
byte ENum;
string str;
if ((maskadr_textbox.Text == "") || (maskLen_textBox.Text == ""))
{
fIsInventoryScan = false;
return;
}
if (checkBox1.Checked)
MaskFlag = 1;
else
MaskFlag = 0;
Maskadr = Convert.ToByte(maskadr_textbox.Text, 16);
MaskLen = Convert.ToByte(maskLen_textBox.Text, 16);
if (Edit_AccessCode6.Text.Length < 8)
{
MessageBox.Show("访问密码小于8位!请重新输入!", "信息提示");
return;
}
if (ComboBox_EPC6.Items.Count == 0)
return;
if (ComboBox_EPC6.SelectedItem == null)
return;
str = ComboBox_EPC6.SelectedItem.ToString();
if (str == "")
return;
ENum = Convert.ToByte(str.Length / 4);
EPClength = Convert.ToByte(str.Length / 2);
byte[] EPC = new byte[ENum];
EPC = HexStringToByteArray(str);
fPassWord = HexStringToByteArray(Edit_AccessCode6.Text);
BlockNum=Convert.ToByte(ComboBox_BlockNum.SelectedIndex*2) ;
fCmdRet=StaticClassReaderB.LockUserBlock_G2(ref fComAdr,EPC,fPassWord,Maskadr,MaskLen,MaskFlag,BlockNum,EPClength,ref ferrorcode,frmcomportindex);
AddCmdLog("LockUserBlock_G2", "用户区数据块锁定", fCmdRet);
if (fCmdRet==0)
StatusBar1.Panels[0].Text = DateTime.Now.ToLongTimeString() " “用户区数据块锁定”指令返回=0x00"
"(锁定成功)";
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
Timer_Test_.Enabled = false;
Timer_G2_Read.Enabled = false;
Timer_G2_Alarm.Enabled = false;
fAppClosed = true;
StaticClassReaderB.CloseComPort();
}
private void ComboBox_IntervalTime_SelectedIndexChanged(object sender, EventArgs e)
{
if (ComboBox_IntervalTime.SelectedIndex <6)
Timer_Test_.Interval =100;
else
Timer_Test_.Interval =(ComboBox_IntervalTime.SelectedIndex 4)*10;
}
private void SpeedButton_Query_6B_Click(object sender, EventArgs e)
{
Timer_Test_6B.Enabled = !Timer_Test_6B.Enabled;
if (!Timer_Test_6B.Enabled)
{
if (ListView_ID_6B.Items.Count != 0)
{
SpeedButton_Read_6B.Enabled = true;
SpeedButton_Write_6B.Enabled = true;
Button14.Enabled = true;
Button15.Enabled = true;
if (Bycondition_6B.Checked)
{
Same_6B.Enabled = true;
Different_6B.Enabled = true;
Less_6B.Enabled = true;
Greater_6B.Enabled = true;
}
}
if (ListView_ID_6B.Items.Count == 0)
{
SpeedButton_Read_6B.Enabled = false;
SpeedButton_Write_6B.Enabled = false;
Button14.Enabled = false;
Button15.Enabled = false;
if (Bycondition_6B.Checked)
{
Same_6B.Enabled = true ;
Different_6B.Enabled = true;
Less_6B.Enabled = true;
Greater_6B.Enabled = true;
}
}
AddCmdLog("Inventory", "退出询查", 0);
SpeedButton_Query_6B.Text = "单张查询 ";
}
else
{
SpeedButton_Read_6B.Enabled = false;
SpeedButton_Write_6B.Enabled = false;
Button14.Enabled = false;
Button15.Enabled = false;
Same_6B.Enabled = false;
Different_6B.Enabled = false;
Less_6B.Enabled = false;
Greater_6B.Enabled = false;
ListView_ID_6B.Items.Clear();
ComboBox_ID1_6B.Items.Clear();
CardNum1 = 0;
list.Clear();
SpeedButton_Query_6B.Text = "停止";
}
}
public void ChangeSubItem1(ListViewItem ListItem, int subItemIndex, string ItemText)
{
if (subItemIndex == 1)
{
if (ListItem.SubItems[subItemIndex].Text != ItemText)
{
ListItem.SubItems[subItemIndex].Text = ItemText;
ListItem.SubItems[subItemIndex 1].Text = "1";
}
else
{
ListItem.SubItems[subItemIndex 1].Text = Convert.ToString(Convert.ToUInt32(ListItem.SubItems[subItemIndex 1].Text) 1);
if ((Convert.ToUInt32(ListItem.SubItems[subItemIndex 1].Text) > 9999))
ListItem.SubItems[subItemIndex 1].Text = "1";
}
}
}
private void Inventory_6B()
{
int CardNum = 0 ;
byte[] ID_6B=new byte[2000];
byte[] ID2_6B=new byte[5000] ;
bool isonlistview;
string temps;
string s,ss, sID;
ListViewItem aListItem = new ListViewItem();
int i, j;
byte Condition=0;
byte StartAddress;
byte mask = 0;
byte[] ConditionContent =new byte[300];
byte Contentlen;
if (Byone_6B.Checked)
{
fCmdRet = StaticClassReaderB.Inventory_6B(ref fComAdr, ID_6B, frmcomportindex);
if (fCmdRet == 0)
{
byte[] daw = new byte[8];
Array.Copy(ID_6B, daw, 8);
temps = ByteArrayToHexString(daw);
if (!list.Contains(temps))
{
CardNum1 = CardNum1 1;
list.Add(temps);
}
while (ListView_ID_6B.Items.Count < CardNum1)
{
aListItem = ListView_ID_6B.Items.Add((ListView_ID_6B.Items.Count 1).ToString());
aListItem.SubItems.Add("");
aListItem.SubItems.Add("");
aListItem.SubItems.Add("");
}
isonlistview = false;
for (i = 0; i < CardNum1; i ) //判断是否在Listview列表内
{
if (temps==ListView_ID_6B.Items[i].SubItems[1].Text)
{
aListItem = ListView_ID_6B.Items[i];
ChangeSubItem1(aListItem, 1, temps);
isonlistview=true;
}
}
if (!isonlistview)
{
// CardNum1 = Convert.ToByte(ListView_ID_6B.Items.Count 1);
aListItem = ListView_ID_6B.Items[CardNum1-1];
s = temps;
ChangeSubItem1(aListItem, 1, s);
if (ComboBox_EPC1.Items.IndexOf(s) == -1)
{
ComboBox_ID1_6B.Items.Add(temps);
}
}
}
if (ComboBox_ID1_6B.Items.Count != 0)
ComboBox_ID1_6B.SelectedIndex = 0;
}
if (Bycondition_6B.Checked)
{
if (Same_6B.Checked)
Condition = 0;
else if (Different_6B.Checked)
Condition = 1;
else if (Greater_6B.Checked)
Condition = 2;
else if (Less_6B.Checked)
Condition = 3;
if (Edit_ConditionContent_6B.Text == "")
return;
ss = Edit_ConditionContent_6B.Text;
Contentlen = Convert.ToByte((Edit_ConditionContent_6B.Text).Length);
for (i = 0; i < 16 - Contentlen; i )
ss = ss "0";
int Nlen = (ss.Length) / 2;
byte[] daw = new byte[Nlen];
daw = HexStringToByteArray(ss);
switch (Contentlen / 2)
{
case 1:
mask = 0x80;
break;
case 2:
mask = 0xC0;
break;
case 3:
mask = 0xE0;
break;
case 4:
mask = 0XF0;
break;
case 5:
mask = 0XF8;
break;
case 6:
mask = 0XFC;
break;
case 7:
mask = 0XFE;
break;
case 8:
mask = 0XFF;
break;
}
if (Edit_Query_StartAddress_6B.Text == "")
return;
StartAddress = Convert.ToByte(Edit_Query_StartAddress_6B.Text);
fCmdRet = StaticClassReaderB.inventory2_6B(ref fComAdr, Condition, StartAddress, mask, daw, ID2_6B, ref CardNum, frmcomportindex);
if ((fCmdRet == 0x15) | (fCmdRet == 0x16) | (fCmdRet == 0x17) | (fCmdRet == 0x18) | (fCmdRet == 0xFB))
{
byte[] daw1 = new byte[CardNum * 8];
Array.Copy(ID2_6B, daw1, CardNum * 8);
temps = ByteArrayToHexString(daw1);
for (i = 0; i < CardNum; i )
{
sID = temps.Substring(16*i,16);
if ((sID.Length) != 16)
return;
if (CardNum == 0)
return;
while (ListView_ID_6B.Items.Count < CardNum)
{
aListItem = ListView_ID_6B.Items.Add((ListView_ID_6B.Items.Count 1).ToString());
aListItem.SubItems.Add("");
aListItem.SubItems.Add("");
aListItem.SubItems.Add("");
}
isonlistview = false;
for (j = 0; j < ListView_ID_6B.Items.Count; j ) //判断是否在Listview列表内
{
if (sID == ListView_ID_6B.Items[j].SubItems[1].Text)
{
aListItem = ListView_ID_6B.Items[j];
ChangeSubItem1(aListItem, 1, sID);
isonlistview = true;
}
}
if (!isonlistview)
{
// CardNum1 = Convert.ToByte(ListView_ID_6B.Items.Count 1);
aListItem = ListView_ID_6B.Items[i];
s = sID;
ChangeSubItem1(aListItem, 1, s);
if (ComboBox_EPC1.Items.IndexOf(s) == -1)
{
ComboBox_ID1_6B.Items.Add(sID);
}
}
}
if (ComboBox_ID1_6B.Items.Count != 0)
ComboBox_ID1_6B.SelectedIndex = 0;
}
}
if (Timer_Test_6B.Enabled)
{
if (Bycondition_6B.Checked)
{
if (fCmdRet!=0 )
AddCmdLog("Inventory", "查询标签", fCmdRet);
}
else if (fCmdRet == 0XFB) //说明还未将所有卡读取完
{
StatusBar1.Panels[0].Text = DateTime.Now.ToLongTimeString() " “查询标签”指令返回=0xFB"
"(无电子标签可操作)";
}
else if (fCmdRet == 0)
StatusBar1.Panels[0].Text = DateTime.Now.ToLongTimeString() " “查询标签”指令返回=0x00"
"(找到一张电子标签)";
else
AddCmdLog("Inventory", "查询标签", fCmdRet);
if (fCmdRet==0xEE)
StatusBar1.Panels[0].Text = DateTime.Now.ToLongTimeString() "查询标签”指令返回=0xee"
"(返回指令错误)" ;
}
if (fAppClosed)
Close();
}
private void Timer_Test_6B_Tick(object sender, EventArgs e)
{
if (fisinventoryscan_6B)
return;
fisinventoryscan_6B = true;
Inventory_6B();
fisinventoryscan_6B = false;
}
private void SpeedButton_Read_6B_Click(object sender, EventArgs e)
{
if (( Edit_StartAddress_6B.Text=="" )|( Edit_Len_6B.Text==""))
{
MessageBox.Show("起始地址为空!", "信息提示");
return;
}
Timer_6B_Read.Enabled = !Timer_6B_Read.Enabled;
if (!Timer_6B_Read.Enabled)
{
AddCmdLog("Read", "退出", 0);
SpeedButton_Read_6B.Text = "读 ";
SpeedButton_Query_6B.Enabled = true;
SpeedButton_Write_6B.Enabled = true;
Button14.Enabled = true;
Button15.Enabled = true;
if (Bycondition_6B.Checked)
{
Same_6B.Enabled = true;
Different_6B.Enabled = true;
Less_6B.Enabled = true;
Greater_6B.Enabled = true;
}
}
else
{
SpeedButton_Query_6B.Enabled = false ;
SpeedButton_Write_6B.Enabled = false ;
Button14.Enabled = false;
Button15.Enabled = false;
if (Bycondition_6B.Checked)
{
Same_6B.Enabled = false;
Different_6B.Enabled = false;
Less_6B.Enabled = false;
Greater_6B.Enabled = false;
}
SpeedButton_Read_6B.Text = "停止";
}
}
private void Read_6B()
{
string temp, temps;
byte[] CardData = new byte[320];
byte[] ID_6B = new byte[8];
byte Num, StartAddress;
if (ComboBox_ID1_6B.Items.Count == 0)
return;
if (ComboBox_ID1_6B.SelectedItem == null)
return;
temp = ComboBox_ID1_6B.SelectedItem.ToString();
if (temp == "")
return;
ID_6B = HexStringToByteArray(temp);
if (Edit_StartAddress_6B.Text == "")
return;
StartAddress = Convert.ToByte(Edit_StartAddress_6B.Text,16);
if (Edit_Len_6B.Text == "")
return;
Num = Convert.ToByte(Edit_Len_6B.Text);
fCmdRet = StaticClassReaderB.ReadCard_6B(ref fComAdr, ID_6B, StartAddress, Num, CardData, ref ferrorcode, frmcomportindex);
if (fCmdRet == 0)
{
byte[] data = new byte[Num];
Array.Copy(CardData, data, Num);
temps = ByteArrayToHexString(data);
listBox2.Items.Add(temps);
}
if(fAppClosed )
Close();
}
private void Timer_6B_Read_Tick(object sender, EventArgs e)
{
if (fTimer_6B_ReadWrite)
return;
fTimer_6B_ReadWrite = true;
Read_6B();
fTimer_6B_ReadWrite = false;
}
private void SpeedButton_Write_6B_Click(object sender, EventArgs e)
{
if (( Edit_WriteData_6B.Text=="" )| ((Edit_WriteData_6B.Text.Length% 2)!=0))
{
MessageBox.Show("请输入16进制数据!", "信息提示");
return;
}
if ((Edit_StartAddress_6B.Text == "") | (Edit_Len_6B.Text == ""))
{
MessageBox.Show("起始地址为空", "信息提示");
return;
}
Timer_6B_Write.Enabled = !Timer_6B_Write.Enabled;
if (!Timer_6B_Write.Enabled)
{
AddCmdLog("Wtite", "退出", 0);
SpeedButton_Write_6B.Text = "写 ";
}
else
{
SpeedButton_Write_6B.Text = "停止";
}
}
private void Write_6B()
{
string temp;
byte[] CardData = new byte[320];
byte[] ID_6B = new byte[8];
byte StartAddress;
byte Writedatalen;
int writtenbyte=0;
if (ComboBox_ID1_6B.Items.Count == 0)
return;
if (ComboBox_ID1_6B.SelectedItem == null)
return;
temp = ComboBox_ID1_6B.SelectedItem.ToString();
if (temp == "")
return;
ID_6B = HexStringToByteArray(temp);
if (Edit_StartAddress_6B.Text == "")
return;
StartAddress = Convert.ToByte(Edit_StartAddress_6B.Text);
if ((Edit_WriteData_6B.Text == "") | (Edit_WriteData_6B.Text.Length%2)!=0)
return;
Writedatalen =Convert.ToByte(Edit_WriteData_6B.Text.Length / 2);
byte[] Writedata = new byte[Writedatalen];
Writedata = HexStringToByteArray(Edit_WriteData_6B.Text);
fCmdRet=StaticClassReaderB.WriteCard_6B(ref fComAdr,ID_6B,StartAddress,Writedata,Writedatalen,ref writtenbyte,ref ferrorcode,frmcomportindex);
AddCmdLog("WriteCard", "写", fCmdRet);
if (fAppClosed)
Close();
}
private void Timer_6B_Write_Tick(object sender, EventArgs e)
{
if (fTimer_6B_ReadWrite)
return;
fTimer_6B_ReadWrite = true;
Write_6B();
fTimer_6B_ReadWrite = false;
}
private void Button14_Click(object sender, EventArgs e)
{
byte Address;
string temps;
byte[] ID_6B = new byte[8];
if (ComboBox_ID1_6B.Items.Count == 0)
return;
if (ComboBox_ID1_6B.SelectedItem == null)
return;
temps = ComboBox_ID1_6B.SelectedItem.ToString();
if (temps == "")
return;
ID_6B = HexStringToByteArray(temps);
if (Edit_StartAddress_6B.Text == "")
return;
Address = Convert.ToByte(Edit_StartAddress_6B.Text);
if (MessageBox.Show(this, "确定要永久锁定该地址吗?", "信息提示", MessageBoxButtons.OKCancel) == DialogResult.Cancel)
return;
fCmdRet=StaticClassReaderB.LockByte_6B(ref fComAdr,ID_6B,Address,ref ferrorcode,frmcomportindex);
AddCmdLog("LockByte_6B", "锁定", fCmdRet);
}
private void Button15_Click(object sender, EventArgs e)
{
byte Address,ReLockState=2;
string temps;
byte[] ID_6B = new byte[8];
if (ComboBox_ID1_6B.Items.Count == 0)
return;
if (ComboBox_ID1_6B.SelectedItem == null)
return;
temps = ComboBox_ID1_6B.SelectedItem.ToString();
if (temps == "")
return;
ID_6B = HexStringToByteArray(temps);
if (Edit_StartAddress_6B.Text == "")
return;
Address = Convert.ToByte(Edit_StartAddress_6B.Text);
fCmdRet=StaticClassReaderB.CheckLock_6B(ref fComAdr,ID_6B,Address,ref ReLockState,ref ferrorcode,frmcomportindex);
AddCmdLog("CheckLock_6B", "检测锁定", fCmdRet);
if (fCmdRet==0)
{
if (ReLockState==0)
StatusBar1.Panels[0].Text = DateTime.Now.ToLongTimeString() " “检测锁定”指令返回=0x00"
"(该字节未被锁定)" ;
if (ReLockState==1)
StatusBar1.Panels[0].Text = DateTime.Now.ToLongTimeString() " “检测锁定”指令返回=0x01"
"(该字节已经被锁定)";
}
}
private void Button22_Click(object sender, EventArgs e)
{
listBox2.Items.Clear();
}
private void P_Reserve_CheckedChanged(object sender, EventArgs e)
{
if (ListView1_EPC.Items.Count != 0)
{
DestroyCode.Enabled = true;
AccessCode.Enabled = true;
NoProect.Enabled = true;
Proect.Enabled = true;
Always.Enabled = true;
AlwaysNot.Enabled = true;
NoProect2.Enabled = false;
Proect2.Enabled = false;
Always2.Enabled = false;
AlwaysNot2.Enabled = false;
}
}
private void P_EPC_CheckedChanged(object sender, EventArgs e)
{
if (ListView1_EPC.Items.Count != 0)
{
DestroyCode.Enabled = false;
AccessCode.Enabled = false;
NoProect.Enabled = false;
Proect.Enabled = false;
Always.Enabled = false;
AlwaysNot.Enabled = false;
NoProect2.Enabled = true;
Proect2.Enabled = true;
Always2.Enabled = true;
AlwaysNot2.Enabled = true;
}
}
private void P_TID_CheckedChanged(object sender, EventArgs e)
{
if (ListView1_EPC.Items.Count != 0)
{
DestroyCode.Enabled = false;
AccessCode.Enabled = false;
NoProect.Enabled = false;
Proect.Enabled = false;
Always.Enabled = false;
AlwaysNot.Enabled = false;
NoProect2.Enabled = true;
Proect2.Enabled = true;
Always2.Enabled = true;
AlwaysNot2.Enabled = true;
}
}
private void P_User_CheckedChanged(object sender, EventArgs e)
{
if (ListView1_EPC.Items.Count!=0)
{
DestroyCode.Enabled = false;
AccessCode.Enabled = false;
NoProect.Enabled = false;
Proect.Enabled = false;
Always.Enabled = false;
AlwaysNot.Enabled = false;
NoProect2.Enabled = true;
Proect2.Enabled = true;
Always2.Enabled = true;
AlwaysNot2.Enabled = true;
}
}
private void Byone_6B_CheckedChanged(object sender, EventArgs e)
{
if ((!Timer_6B_Read.Enabled) & (!Timer_6B_Write.Enabled) & (!Timer_Test_6B.Enabled))
{
Same_6B.Enabled = false;
Different_6B.Enabled = false;
Less_6B.Enabled = false;
Greater_6B.Enabled = false;
}
}
private void Bycondition_6B_CheckedChanged(object sender, EventArgs e)
{
if ((!Timer_6B_Read.Enabled) &(!Timer_6B_Write.Enabled)&(!Timer_Test_6B.Enabled))
{
Same_6B.Enabled = true;
Different_6B.Enabled = true;
Less_6B.Enabled = true;
Greater_6B.Enabled = true;
}
}
private void C_EPC_CheckedChanged(object sender, EventArgs e)
{
if ((!Timer_Test_.Enabled) & (!Timer_G2_Alarm.Enabled) &(!Timer_G2_Read.Enabled))
{
// Button_DataWrite.Enabled = false;
}
if (checkBox_pc.Checked)
{
Edit_WordPtr.Text = "02";
Edit_WordPtr.ReadOnly = true;
}
else
{
Edit_WordPtr.ReadOnly = false;
}
}
private void C_TID_CheckedChanged(object sender, EventArgs e)
{
if ((!Timer_Test_.Enabled) & (!Timer_G2_Alarm.Enabled) &(!Timer_G2_Read.Enabled))
{
if (ListView1_EPC.Items.Count != 0)
Button_DataWrite.Enabled = true;
}
Edit_WordPtr.ReadOnly = false;
}
private void C_User_CheckedChanged(object sender, EventArgs e)
{
if ((!Timer_Test_.Enabled) & (!Timer_G2_Alarm.Enabled) & (!Timer_G2_Read.Enabled))
{
if (ListView1_EPC.Items.Count != 0)
Button_DataWrite.Enabled = true;
}
Edit_WordPtr.ReadOnly = false;
}
private void C_Reserve_CheckedChanged(object sender, EventArgs e)
{
if ((!Timer_Test_.Enabled) & (!Timer_G2_Alarm.Enabled) &(!Timer_G2_Read.Enabled))
{
if (ListView1_EPC.Items.Count != 0)
Button_DataWrite.Enabled = true;
}
Edit_WordPtr.ReadOnly = false;
}
private void tabControl1_Selecting(object sender, TabControlCancelEventArgs e)
{
timer1.Enabled = false;
button10.Text = "获取";
Timer_G2_Alarm.Enabled = false;
Timer_G2_Read.Enabled = false;
Timer_Test_.Enabled = false;
SpeedButton_Read_G2.Text = "读";
button2.Text = "查询标签";
button4.Text = "检测报警";
if ((ListView1_EPC.Items.Count != 0)&&(ComOpen))
{
button2.Enabled = true;
DestroyCode.Enabled = false;
AccessCode.Enabled = false;
NoProect.Enabled = false;
Proect.Enabled = false;
Always.Enabled = false;
AlwaysNot.Enabled = false;
NoProect2.Enabled = true;
Proect2.Enabled = true;
Always2.Enabled = true;
AlwaysNot2.Enabled = true;
P_Reserve.Enabled = true;
P_EPC.Enabled = true;
P_TID.Enabled = true;
P_User.Enabled = true;
Button_DestroyCard.Enabled = true;
Button_SetReadProtect_G2.Enabled = true;
Button_SetEASAlarm_G2.Enabled = true;
Alarm_G2.Enabled = true;
NoAlarm_G2.Enabled = true;
Button_LockUserBlock_G2.Enabled = true;
Button_WriteEPC_G2.Enabled = true;
Button_SetMultiReadProtect_G2.Enabled = true;
Button_RemoveReadProtect_G2.Enabled = true;
Button_CheckReadProtected_G2.Enabled = true;
button4.Enabled = true;
SpeedButton_Read_G2.Enabled = true;
Button_SetProtectState.Enabled = true;
// if (C_EPC.Checked)
// Button_DataWrite.Enabled = false;
// else
Button_DataWrite.Enabled = true;
BlockWrite.Enabled = true;
Button_BlockErase.Enabled = true;
checkBox1.Enabled = true;
}
if ((ListView1_EPC.Items.Count == 0)&&(ComOpen))
{
button2.Enabled = true;
DestroyCode.Enabled = false;
AccessCode.Enabled = false;
NoProect.Enabled = false;
Proect.Enabled = false;
Always.Enabled = false;
AlwaysNot.Enabled = false;
NoProect2.Enabled = false;
Proect2.Enabled = false;
Always2.Enabled = false;
AlwaysNot2.Enabled = false;
P_Reserve.Enabled = false;
P_EPC.Enabled = false;
P_TID.Enabled = false;
P_User.Enabled = false;
Button_DestroyCard.Enabled = false;
Button_SetReadProtect_G2.Enabled = false;
Button_SetEASAlarm_G2.Enabled = false;
Alarm_G2.Enabled = false;
NoAlarm_G2.Enabled = false;
Button_LockUserBlock_G2.Enabled = false;
SpeedButton_Read_G2.Enabled = false;
Button_DataWrite.Enabled = false;
BlockWrite.Enabled = false;
Button_BlockErase.Enabled = false;
Button_WriteEPC_G2.Enabled = true;
Button_SetMultiReadProtect_G2.Enabled = true;
Button_RemoveReadProtect_G2.Enabled = true;
Button_CheckReadProtected_G2.Enabled = true;
button4.Enabled = true;
Button_SetProtectState.Enabled = false;
checkBox1.Enabled = false;
}
Timer_Test_6B.Enabled = false;
Timer_6B_Read.Enabled = false;
Timer_6B_Write.Enabled = false;
SpeedButton_Query_6B.Text = "单张查询";
SpeedButton_Read_6B.Text = "读";
SpeedButton_Write_6B.Text ="写";
if ((ListView_ID_6B.Items.Count != 0)&&(ComOpen))
{
SpeedButton_Query_6B.Enabled = true;
SpeedButton_Read_6B.Enabled = true;
SpeedButton_Write_6B.Enabled = true;
Button14.Enabled = true;
Button15.Enabled = true;
if (Bycondition_6B.Checked)
{
Same_6B.Enabled = true;
Different_6B.Enabled = true;
Less_6B.Enabled = true;
Greater_6B.Enabled = true;
}
}
if ((ListView_ID_6B.Items.Count == 0)&&(ComOpen))
{
SpeedButton_Query_6B.Enabled = true;
SpeedButton_Read_6B.Enabled = false;
SpeedButton_Write_6B.Enabled = false;
Button14.Enabled = false;
Button15.Enabled = false;
if (Bycondition_6B.Checked)
{
Same_6B.Enabled = true;
Different_6B.Enabled = true;
Less_6B.Enabled = true;
Greater_6B.Enabled = true;
}
}
breakflag = true;
button13.Enabled = ComOpen;
button16.Enabled = false;
button18.Enabled = ComOpen;
button19.Enabled = ComOpen;
}
private void Edit_CmdComAddr_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = ("0123456789ABCDEF".IndexOf(Char.ToUpper(e.KeyChar)) < 0);
}
private void Edit_Len_6B_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = ("0123456789".IndexOf(Char.ToUpper(e.KeyChar)) < 0);
}
private void comboBox4_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox4.SelectedIndex == 0)
{
radioButton5.Enabled = false;
radioButton6.Enabled = false;
radioButton7.Enabled = false;
radioButton8.Enabled = false;
radioButton9.Enabled = false;
radioButton10.Enabled = false;
radioButton11.Enabled = false;
radioButton12.Enabled = false;
radioButton13.Enabled = false;
radioButton14.Enabled = false;
radioButton15.Enabled = false;
radioButton16.Enabled = false;
radioButton17.Enabled = false;
radioButton18.Enabled = false;
radioButton19.Enabled = false;
radioButton20.Enabled = false;
textBox3.Enabled = false;
comboBox5.Enabled = false;
comboBox6.Enabled = false;
}
if ((comboBox4.SelectedIndex == 1) | (comboBox4.SelectedIndex == 2) | (comboBox4.SelectedIndex == 3))
{
radioButton5.Enabled = true;
radioButton6.Enabled = true;
radioButton7.Enabled = true;
radioButton8.Enabled = true;
radioButton20.Enabled = true;
comboBox5.Items.Clear();
if (radioButton20.Checked)
{
for (int i = 1; i < 5; i )
comboBox5.Items.Add(Convert.ToString(i));
comboBox5.SelectedIndex = 3;
label42.Text = "读取字节数:";
}
else
{
for (int i = 1; i < 33; i )
comboBox5.Items.Add(Convert.ToString(i));
comboBox5.SelectedIndex = 0;
label42.Text = "读取字数:";
}
if (radioButton7.Checked)
{
radioButton16.Enabled = true;
radioButton17.Enabled = true;
}
else
{
radioButton16.Enabled = false;
radioButton17.Enabled = false;
}
if (radioButton5.Checked)
{
radioButton9.Enabled = true;
radioButton10.Enabled = true;
radioButton11.Enabled = true;
radioButton12.Enabled = true;
radioButton18.Enabled = true;
if (radioButton20.Checked) //Syris485
{
radioButton13.Enabled = false;
radioButton19.Enabled = false;
}
else
{
radioButton13.Enabled = true;
radioButton19.Enabled = true;
}
if ((radioButton13.Checked) || (radioButton19.Checked))
comboBox6.Enabled = false;
else
comboBox6.Enabled = true;
}
else
comboBox6.Enabled = true;
radioButton14.Enabled = true;
radioButton15.Enabled = true;
textBox3.Enabled = true;
if (radioButton7.Checked)
comboBox5.Enabled = false;
else
comboBox5.Enabled =true;
}
}
private void radioButton5_CheckedChanged(object sender, EventArgs e)
{
if (radioButton5.Checked)
{
if ((comboBox4.SelectedIndex == 1) | (comboBox4.SelectedIndex == 2) | (comboBox4.SelectedIndex == 3))
{
radioButton9.Enabled = true;
radioButton10.Enabled = true;
radioButton11.Enabled = true;
radioButton12.Enabled = true;
radioButton13.Enabled = true;
radioButton18.Enabled = true;
if (radioButton16.Checked)
label41.Text = "起始字地址(Hex):";
else
label41.Text = "起始字节地址(Hex):";
if (radioButton20.Checked)
{
radioButton13.Enabled=false;
radioButton19.Enabled=false;
label41.Text="起始字节地址(Hex):";
}
else
{
radioButton13.Enabled=true;
radioButton19.Enabled=true;
}
if (radioButton7.Checked)
{
radioButton16.Enabled = true;
radioButton17.Enabled = true;
if ((radioButton13.Checked) || (radioButton19.Checked))
{
comboBox6.Enabled = false;
}
else
{
comboBox6.Enabled = true;
}
}
else
{
radioButton16.Enabled = false;
radioButton17.Enabled = false;
if ((radioButton13.Checked) || (radioButton19.Checked))
comboBox6.Enabled = false;
else
comboBox6.Enabled = true;
if (radioButton20.Checked)
label41.Text="起始字节地址(Hex):";
else
label41.Text="起始字地址(Hex):";
}
}
}
else
{
radioButton9.Enabled = false;
radioButton10.Enabled = false;
radioButton11.Enabled = false;
radioButton12.Enabled = false;
radioButton13.Enabled = false;
radioButton18.Enabled = false;
radioButton16.Enabled = false;
radioButton17.Enabled = false;
radioButton19.Enabled = false;
comboBox6.Enabled = true;
label41.Text = "起始字节地址(Hex)";
}
}
private void radioButton7_CheckedChanged(object sender, EventArgs e)
{
if((radioButton5.Checked)&&(comboBox4.SelectedIndex>0))
{
radioButton16.Enabled=true;
radioButton17.Enabled=true;
radioButton13.Enabled=true;
radioButton19.Enabled=true;
if(radioButton16.Checked)
label41.Text="起始字地址(Hex):";
else
label41.Text="起始字节地址(Hex):";
label42.Text="读取字数:";
}
comboBox5.Enabled=false;
}
private void radioButton8_CheckedChanged(object sender, EventArgs e)
{
if((comboBox4.SelectedIndex==1)||(comboBox4.SelectedIndex==2)||(comboBox4.SelectedIndex==3))
{
if(radioButton8.Checked)
comboBox5.Enabled=true;
comboBox5.Items.Clear();
if (radioButton20.Checked)
{
for(int i=1;i<5;i )
comboBox5.Items.Add(Convert.ToString(i));
comboBox5.SelectedIndex=3;
label42.Text="读取字节数:";
comboBox5.Enabled=true;
label41.Text="起始字节地址(Hex):";
}
else
{
for (int i=1;i<33;i )
comboBox5.Items.Add(Convert.ToString(i));
comboBox5.SelectedIndex=0;
label42.Text="读取字数:";
label41.Text="起始字地址(Hex):";
}
if(radioButton5.Checked)
{
radioButton16.Enabled=false;
radioButton17.Enabled=false;
if (radioButton20.Checked)
{
radioButton13.Enabled=false;
radioButton19.Enabled=false;
}
else
{
radioButton13.Enabled=true;
radioButton19.Enabled=true;
}
}
else
{
label41.Text="起始字节地址(Hex):";
radioButton13.Enabled=false;
radioButton19.Enabled=false;
}
}
}
private void button6_Click(object sender, EventArgs e)
{
byte Wg_mode=0;
byte Wg_Data_Inteval;
byte Wg_Pulse_Width;
byte Wg_Pulse_Inteval;
if(radioButton1.Checked)
{
if(radioButton3.Checked)
Wg_mode=2;
else
Wg_mode= 0;
}
if(radioButton2.Checked)
{
if(radioButton3.Checked)
Wg_mode=3;
else
Wg_mode= 1;
}
Wg_Data_Inteval=Convert.ToByte(comboBox1.SelectedIndex);
Wg_Pulse_Width=Convert.ToByte(comboBox3.SelectedIndex 1);
Wg_Pulse_Inteval = Convert.ToByte(comboBox2.SelectedIndex 1);
fCmdRet = StaticClassReaderB.SetWGParameter(ref fComAdr, Wg_mode, Wg_Data_Inteval, Wg_Pulse_Width, Wg_Pulse_Inteval,frmcomportindex);
AddCmdLog("SetWGParameter", "韦根设置", fCmdRet);
}
private void button8_Click(object sender, EventArgs e)
{
int Reader_bit0;
int Reader_bit1;
int Reader_bit2;
int Reader_bit3;
int Reader_bit4;
byte[] Parameter = new byte[6];
Parameter[0] = Convert.ToByte(comboBox4.SelectedIndex);
if (radioButton5.Checked)
Reader_bit0 = 0;
else
Reader_bit0 = 1;
if (radioButton7.Checked)
Reader_bit1 = 0;
else
Reader_bit1 = 1;
if (radioButton14.Checked)
Reader_bit2 = 0;
else
Reader_bit2 = 1;
if (radioButton16.Checked)
Reader_bit3 = 0;
else
Reader_bit3 = 1;
if (radioButton20.Checked)
Reader_bit4 = 1;
else
Reader_bit4 = 0 ;
Parameter[1] = Convert.ToByte(Reader_bit0 * 1 Reader_bit1 * 2 Reader_bit2 * 4 Reader_bit3 * 8 Reader_bit4 * 16);
if (radioButton9.Checked)
Parameter[2] = 0;
if (radioButton10.Checked)
Parameter[2] = 1;
if (radioButton11.Checked)
Parameter[2] = 2;
if (radioButton12.Checked)
Parameter[2] = 3;
if (radioButton13.Checked)
Parameter[2] = 4;
if (radioButton18.Checked)
Parameter[2] = 5;
if (radioButton19.Checked)
Parameter[2] = 6;
if (textBox3.Text == "")
{
MessageBox.Show("地址不能为空!", "提示");
return;
}
Parameter[3] = Convert.ToByte(textBox3.Text, 16);
Parameter[4] = Convert.ToByte(comboBox5.SelectedIndex 1);
Parameter[5] = Convert.ToByte(comboBox6.SelectedIndex); ;
fCmdRet = StaticClassReaderB.SetWorkMode(ref fComAdr, Parameter, frmcomportindex);
if (fCmdRet == 0)
{
if ((comboBox4.SelectedIndex == 1) | (comboBox4.SelectedIndex == 2) | (comboBox4.SelectedIndex == 3))
{
if(radioButton6.Checked)
{
radioButton13.Enabled=false;
radioButton19.Enabled=false;
}
else
{
if (radioButton20.Checked)
{
radioButton13.Enabled = false;
radioButton19.Enabled = false;
}
}
button10.Enabled = true;
button11.Enabled = true;
}
if (comboBox4.SelectedIndex == 0)
{
button10.Enabled = false;
button11.Enabled = false;
button10.Text = "获取";
timer1.Enabled = false;
}
}
AddCmdLog("SetWorkMode", "设置", fCmdRet);
}
private void button10_Click(object sender, EventArgs e)
{
timer1.Enabled = !timer1.Enabled;
if (!timer1.Enabled)
{
button10.Text = "获取";
}
else
{
button10.Text = "停止";
}
}
private void GetData()
{
byte[] ScanModeData = new byte[40960];
int ValidDatalength,i;
string temp, temps;
ValidDatalength = 0;
fCmdRet = StaticClassReaderB.ReadActiveModeData(ScanModeData, ref ValidDatalength, frmcomportindex);
if (fCmdRet == 0)
{
temp="";
temps=ByteArrayToHexString(ScanModeData);
for(i=0;i<ValidDatalength;i )
{
temp = temp temps.Substring(i * 2, 2) " ";
}
listBox3.Items.Add(temp);
listBox3.SelectedIndex = listBox3.Items.Count-1;
}
// AddCmdLog("Get", "获取", fCmdRet);
}
private void timer1_Tick(object sender, EventArgs e)
{
if (fIsInventoryScan)
fIsInventoryScan = true;
GetData();
if (fAppClosed)
Close();
fIsInventoryScan = false;
}
private void button11_Click(object sender, EventArgs e)
{
listBox3.Items.Clear();
}
private void radioButton_band1_CheckedChanged(object sender, EventArgs e)
{
int i;
ComboBox_dmaxfre.Items.Clear();
ComboBox_dminfre.Items.Clear();
for (i = 0; i < 63; i )
{
ComboBox_dminfre.Items.Add(Convert.ToString(902.6 i * 0.4) " MHz");
ComboBox_dmaxfre.Items.Add(Convert.ToString(902.6 i * 0.4) " MHz");
}
ComboBox_dmaxfre.SelectedIndex = 62;
ComboBox_dminfre.SelectedIndex = 0;
}
private void radioButton_band2_CheckedChanged(object sender, EventArgs e)
{
int i;
ComboBox_dmaxfre.Items.Clear();
ComboBox_dminfre.Items.Clear();
for (i = 0; i < 20; i )
{
ComboBox_dminfre.Items.Add(Convert.ToString(920.125 i * 0.25) " MHz");
ComboBox_dmaxfre.Items.Add(Convert.ToString(920.125 i * 0.25) " MHz");
}
ComboBox_dmaxfre.SelectedIndex = 19;
ComboBox_dminfre.SelectedIndex = 0;
}
private void radioButton_band3_CheckedChanged(object sender, EventArgs e)
{
int i;
ComboBox_dmaxfre.Items.Clear();
ComboBox_dminfre.Items.Clear();
for (i = 0; i < 50; i )
{
ComboBox_dminfre.Items.Add(Convert.ToString(902.75 i * 0.5) " MHz");
ComboBox_dmaxfre.Items.Add(Convert.ToString(902.75 i * 0.5) " MHz");
}
ComboBox_dmaxfre.SelectedIndex = 49;
ComboBox_dminfre.SelectedIndex = 0;
}
private void radioButton_band4_CheckedChanged(object sender, EventArgs e)
{
int i;
ComboBox_dmaxfre.Items.Clear();
ComboBox_dminfre.Items.Clear();
for (i = 0; i < 32; i )
{
ComboBox_dminfre.Items.Add(Convert.ToString(917.1 i * 0.2) " MHz");
ComboBox_dmaxfre.Items.Add(Convert.ToString(917.1 i * 0.2) " MHz");
}
ComboBox_dmaxfre.SelectedIndex = 31;
ComboBox_dminfre.SelectedIndex = 0;
}
private void maskLen_textBox_KeyPress(object sender, KeyPressEventArgs e)
{
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked)
{
maskadr_textbox.Enabled = true;
maskLen_textBox.Enabled = true;
}
else
{
maskadr_textbox.Enabled = false;
maskLen_textBox.Enabled = false;
}
}
private void groupBox30_Enter(object sender, EventArgs e)
{
}
private void radioButton16_CheckedChanged(object sender, EventArgs e)
{
label41.Text = "起始字地址(Hex):";
}
private void radioButton17_CheckedChanged(object sender, EventArgs e)
{
label41.Text = "起始字节地址(Hex):";
}
private void radioButton9_CheckedChanged(object sender, EventArgs e)
{
comboBox6.Enabled = true;
}
private void radioButton10_CheckedChanged(object sender, EventArgs e)
{
comboBox6.Enabled = true;
}
private void radioButton11_CheckedChanged(object sender, EventArgs e)
{
comboBox6.Enabled = true;
}
private void radioButton12_CheckedChanged(object sender, EventArgs e)
{
comboBox6.Enabled = true;
}
private void radioButton18_CheckedChanged(object sender, EventArgs e)
{
comboBox6.Enabled = true;
}
private void radioButton13_CheckedChanged(object sender, EventArgs e)
{
comboBox6.Enabled = false;
}
private void button9_Click(object sender, EventArgs e)
{
byte[] Parameter = new byte[12];
fCmdRet = StaticClassReaderB.GetWorkModeParameter(ref fComAdr, Parameter, frmcomportindex);
if (fCmdRet == 0)
{
if (Parameter[0] == 0)
{
radioButton1.Checked = true;
radioButton4.Checked = true;
}
if (Parameter[0] == 1)
{
radioButton2.Checked = true;
radioButton4.Checked = true;
}
if (Parameter[0] == 2)
{
radioButton1.Checked = true;
radioButton3.Checked = true;
}
if (Parameter[0] == 3)
{
radioButton2.Checked = true;
radioButton3.Checked = true;
}
comboBox1.SelectedIndex = Convert.ToInt32(Parameter[1]);
comboBox2.SelectedIndex = Convert.ToInt32(Parameter[3] - 1);
comboBox3.SelectedIndex = Convert.ToInt32(Parameter[2] - 1);
comboBox4.SelectedIndex = Convert.ToInt32(Parameter[4]);
if ((Parameter[4] == 1) || (Parameter[4] == 2) || (Parameter[4] == 3))
{
button10.Enabled = true;
button11.Enabled = true;
radioButton5.Enabled = true;
radioButton6.Enabled = true;
radioButton7.Enabled = true;
radioButton8.Enabled = true;
if (radioButton5.Checked)
{
if (radioButton7.Checked)
{
radioButton16.Enabled = true;
radioButton17.Enabled = true;
}
else
{
radioButton16.Enabled = false;
radioButton17.Enabled = false;
}
radioButton9.Enabled = true;
radioButton10.Enabled = true;
radioButton11.Enabled = true;
radioButton12.Enabled = true;
radioButton18.Enabled = true;
radioButton20.Enabled = true;
if (Convert.ToInt32((Parameter[5] & 0x10)) == 0x10)
{
radioButton13.Enabled =false;
radioButton19.Enabled =false;
}
else
{
radioButton13.Enabled = true;
radioButton19.Enabled = true;
}
if ((radioButton13.Checked) || (radioButton19.Checked))
comboBox6.Enabled = false;
else
comboBox6.Enabled = true;
}
else
comboBox6.Enabled = true;
radioButton14.Enabled = true;
radioButton15.Enabled = true;
textBox3.Enabled = true;
if ((radioButton8.Checked)||(radioButton20.Checked))
comboBox5.Enabled = true;
}
if (Parameter[4] == 0)
{
button10.Enabled = false;
button11.Enabled = false;
radioButton5.Enabled = false;
radioButton6.Enabled = false;
radioButton7.Enabled = false;
radioButton8.Enabled = false;
radioButton9.Enabled = false;
radioButton10.Enabled = false;
radioButton11.Enabled = false;
radioButton12.Enabled = false;
radioButton13.Enabled = false;
radioButton14.Enabled = false;
radioButton15.Enabled = false;
radioButton16.Enabled = false;
radioButton17.Enabled = false;
radioButton18.Enabled = false;
radioButton19.Enabled = false;
radioButton20.Enabled = false;
textBox3.Enabled = false;
comboBox5.Enabled = false;
comboBox6.Enabled = false;
}
if (Convert.ToInt32((Parameter[5]) & 0x01) == 0)
radioButton5.Checked = true;
else
radioButton6.Checked = true;
if (Convert.ToInt32((Parameter[5]) & 0x02) == 0)
radioButton7.Checked = true;
else
{
if (Convert.ToInt32((Parameter[5] & 0x10)) == 0)
radioButton8.Checked=true;
else
radioButton20.Checked=true;
}
if (Convert.ToInt32((Parameter[5]) & 0x04) == 0)
radioButton14.Checked = true;
else
radioButton15.Checked = true;
if (Convert.ToInt32((Parameter[5]) & 0x08) == 0)
radioButton16.Checked = true;
else
radioButton17.Checked = true;
switch (Parameter[6])
{
case 0:
radioButton9.Checked = true;
break;
case 1:
radioButton10.Checked = true;
break;
case 2:
radioButton11.Checked = true;
break;
case 3:
radioButton12.Checked = true;
break;
case 4:
radioButton13.Checked = true;
break;
case 5:
radioButton18.Checked = true;
break;
case 6:
radioButton19.Checked = true;
break;
default:
break;
}
textBox3.Text = Convert.ToString(Parameter[7], 16).PadLeft(2, '0');
comboBox5.SelectedIndex = Convert.ToInt32(Parameter[8] - 1);
comboBox6.SelectedIndex = Convert.ToInt32(Parameter[9]);
comboBox7.SelectedIndex = Convert.ToInt32(Parameter[10]);
comboBox_OffsetTime.SelectedIndex = Convert.ToInt32(Parameter[11]);
}
AddCmdLog("GetWorkModeParameter", "获取工作模式参数", fCmdRet);
}
private void radioButton19_CheckedChanged(object sender, EventArgs e)
{
comboBox6.Enabled = false;
}
private void button12_Click(object sender, EventArgs e)
{
byte Accuracy;
Accuracy = Convert.ToByte(comboBox7.SelectedIndex);
fCmdRet = StaticClassReaderB.SetAccuracy(ref fComAdr, Accuracy, frmcomportindex);
AddCmdLog("SetAccuracy", "设置EAS测试精度", fCmdRet);
}
private void ComboBox_COM_SelectedIndexChanged(object sender, EventArgs e)
{
ComboBox_baud2.Items.Clear();
if(ComboBox_COM.SelectedIndex==0)
{
ComboBox_baud2.Items.Add("9600bps");
ComboBox_baud2.Items.Add("19200bps");
ComboBox_baud2.Items.Add("38400bps");
ComboBox_baud2.Items.Add("57600bps");
ComboBox_baud2.Items.Add("115200bps");
ComboBox_baud2.SelectedIndex=3;
}
else
{
ComboBox_baud2.Items.Add("Auto");
ComboBox_baud2.SelectedIndex=0;
}
}
private void button13_Click(object sender, EventArgs e)
{
Byte dminfre, dmaxfre, Ffenpin;
int i, j, CardNum, Totallen, UID_index, n_index;
byte[] EPC = new byte[5000];
string temp1, temp2, temp3, temp4;
float ncount;
byte AdrTID = 0;
byte LenTID = 0;
byte TIDFlag = 0;
button13.Enabled = false;
button16.Enabled = true;
button18.Enabled = false;
button19.Enabled = false;
listBox4.Items.Clear();
breakflag = false;
for (Ffenpin = 0; Ffenpin < 63; Ffenpin )
{
if (breakflag == true)
{
breakflag = false;
if (fAppClosed)
Close();
return;
}
dmaxfre = Ffenpin;
dminfre = Ffenpin;
y_f = Convert.ToDouble(902.6 (Ffenpin & 0x3F) * 0.4);
temp4 = Convert.ToString(y_f);
temp3 = temp4.PadRight(5, ' ') "MHz" "(" Convert.ToString(Ffenpin).PadLeft(2, ' ') ")";
// ListBox1.Items.Add(Format('%-4d',[Ffenpin]));
listBox4.Items.Add(temp3);
for (i = 0; i < 4; i )
{
fCmdRet = StaticClassReaderB.Writedfre(ref fComAdr, ref dmaxfre, ref dminfre, frmcomportindex);
if (fCmdRet == 0)
break;
}
ncount = 0;
for (j = 0; j < 30; j )
{
Application.DoEvents();
if (breakflag)
{
breakflag = false;
if (fAppClosed)
{
Close();
}
return;
}
CardNum = 0;
Totallen = 0;
fCmdRet = StaticClassReaderB.Inventory_G2(ref fComAdr,AdrTID,LenTID,TIDFlag, EPC, ref Totallen, ref CardNum, frmcomportindex);
if ((fCmdRet == 1) || (fCmdRet == 2) || (fCmdRet == 3) || (fCmdRet == 4))
{
ncount = ncount 1;
if (ncount == 1)
UID_index = listBox4.Items.IndexOf(temp3);
else
UID_index = listBox4.Items.IndexOf(temp3 " " Convert.ToString(ncount - 1).PadLeft(2, ' ') "/30");
if (UID_index >= 0)
{
listBox4.Items[UID_index] = temp3 " " Convert.ToString(ncount).PadLeft(2, ' ') "/30";
}
}
}
if (ncount == 0)
{
UID_index = listBox4.Items.IndexOf(temp3);
if (UID_index >= 0)
listBox4.Items[UID_index] = temp3 " " Convert.ToString(ncount).PadLeft(2, ' ') "/30" " " "00.00%";
}
UID_index = listBox4.Items.IndexOf(temp3 " " Convert.ToString(ncount).PadLeft(2, ' ') "/30");
if (UID_index >= 0)
{
x_z = ((ncount / 30) * 100);
temp1 = Convert.ToString(x_z);
if (ncount == 30)
temp2 = "100.00%";
else
{
n_index = temp1.IndexOf('.');
//temp2:=Copy(temp1,1,2) '.' copy(temp1,3,2) '%';
if (n_index > 0)
temp2 = temp1.Substring(0, n_index) "." temp1.Substring(n_index 1, 2) "%";
else
temp2 = temp1 "." "00" "%";
// temp2:=Copy(temp1,1,2) '.' copy(temp1,3,2) '%';
}
listBox4.Items[UID_index] = temp3 " " Convert.ToString(ncount).PadLeft(2, ' ') "/30" " " temp2;
}
listBox4.SelectedIndex = listBox4.Items.Count - 1;
}
button13.Enabled = true;
button16.Enabled = false;
button18.Enabled = true;
button19.Enabled = true;
}
private void button16_Click(object sender, EventArgs e)
{
breakflag = true;
button13.Enabled = true;
button16.Enabled = false;
button18.Enabled = true;
button19.Enabled = true;
}
private void button17_Click(object sender, EventArgs e)
{
listBox4.Items.Clear();
}
private void button_OffsetTime_Click(object sender, EventArgs e)
{
byte OffsetTime;
OffsetTime = Convert.ToByte(comboBox_OffsetTime.SelectedIndex);
fCmdRet = StaticClassReaderB.SetOffsetTime(ref fComAdr, OffsetTime, frmcomportindex);
AddCmdLog("SetOffsetTime", "设置", fCmdRet);
}
private void BlockWrite_Click(object sender, EventArgs e)
{
byte WordPtr, ENum;
byte Num = 0;
byte Mem = 0;
byte WNum = 0;
byte EPClength = 0;
byte Writedatalen = 0;
int WrittenDataNum = 0;
string s2, str;
byte[] CardData = new byte[320];
byte[] writedata = new byte[230];
if ((maskadr_textbox.Text == "") || (maskLen_textBox.Text == ""))
{
fIsInventoryScan = false;
return;
}
if (checkBox1.Checked)
MaskFlag = 1;
else
MaskFlag = 0;
Maskadr = Convert.ToByte(maskadr_textbox.Text,16);
MaskLen = Convert.ToByte(maskLen_textBox.Text,16);
if (ComboBox_EPC2.Items.Count == 0)
return;
if (ComboBox_EPC2.SelectedItem == null)
return;
str = ComboBox_EPC2.SelectedItem.ToString();
if (str == "")
return;
ENum = Convert.ToByte(str.Length / 4);
EPClength = Convert.ToByte(ENum * 2);
byte[] EPC = new byte[ENum];
EPC = HexStringToByteArray(str);
if (C_Reserve.Checked)
Mem = 0;
if (C_EPC.Checked)
Mem = 1;
if (C_TID.Checked)
Mem = 2;
if (C_User.Checked)
Mem = 3;
if (Edit_WordPtr.Text == "")
{
MessageBox.Show("起始地址为空", "信息提示");
return;
}
if (textBox1.Text == "")
{
MessageBox.Show("读/块擦除长度", "信息提示");
return;
}
if (Convert.ToInt32(Edit_WordPtr.Text,16) Convert.ToInt32(textBox1.Text) > 120)
return;
if (Edit_AccessCode2.Text == "")
{
return;
}
WordPtr = Convert.ToByte(Edit_WordPtr.Text, 16);
Num = Convert.ToByte(textBox1.Text);
if (Edit_AccessCode2.Text.Length != 8)
{
return;
}
fPassWord = HexStringToByteArray(Edit_AccessCode2.Text);
if (Edit_WriteData.Text == "")
return;
s2 = Edit_WriteData.Text;
if (s2.Length % 4 != 0)
{
MessageBox.Show("以字为单位输入.", "块写");
return;
}
WNum = Convert.ToByte(s2.Length / 4);
byte[] Writedata = new byte[WNum * 2];
Writedata = HexStringToByteArray(s2);
Writedatalen = Convert.ToByte(WNum * 2);
if ((checkBox_pc.Checked) && (C_EPC.Checked))
{
WordPtr = 1;
Writedatalen = Convert.ToByte(Edit_WriteData.Text.Length / 2 2);
Writedata = HexStringToByteArray(textBox_pc.Text Edit_WriteData.Text);
}
fCmdRet = StaticClassReaderB.WriteBlock_G2(ref fComAdr, EPC, Mem, WordPtr, Writedatalen, Writedata, fPassWord, Maskadr, MaskLen, MaskFlag, WrittenDataNum, EPClength, ref ferrorcode, frmcomportindex);
AddCmdLog("Write Block", "块写", fCmdRet, ferrorcode);
if (fCmdRet == 0)
{
StatusBar1.Panels[0].Text = DateTime.Now.ToLongTimeString() "'块写'命令 返回=0x00"
"(块写成功)";
}
}
private void button18_Click(object sender, EventArgs e)
{
byte FlashMode;
FlashMode = Convert.ToByte(comboBox8.SelectedIndex);
fCmdRet = StaticClassReaderB.SetFhssMode(ref fComAdr, FlashMode, frmcomportindex);
AddCmdLog("SetFhssMode", "设置", fCmdRet);
}
private void button19_Click(object sender, EventArgs e)
{
byte FlashMode=0;
fCmdRet = StaticClassReaderB.GetFhssMode(ref fComAdr,ref FlashMode, frmcomportindex);
if (fCmdRet==0)
{
comboBox8.SelectedIndex = FlashMode;
}
AddCmdLog("GetFhssMode", "获取", fCmdRet);
}
private void radioButton21_CheckedChanged(object sender, EventArgs e)
{
int i;
ComboBox_dminfre.Items.Clear();
ComboBox_dmaxfre.Items.Clear();
for (i=0;i<15;i )
{
ComboBox_dminfre.Items.Add(Convert.ToString(865.1 i * 0.2) " MHz");
ComboBox_dmaxfre.Items.Add(Convert.ToString(865.1 i * 0.2) " MHz");
}
ComboBox_dmaxfre.SelectedIndex = 14;
ComboBox_dminfre.SelectedIndex=0;
}
private void button_settigtime_Click(object sender, EventArgs e)
{
byte TriggerTime;
TriggerTime = Convert.ToByte(comboBox_tigtime.SelectedIndex);
fCmdRet = StaticClassReaderB.SetTriggerTime(ref fComAdr, ref TriggerTime, frmcomportindex);
AddCmdLog("SetTriggerTime", "设置触发时间", fCmdRet);
}
private void button_gettigtime_Click(object sender, EventArgs e)
{
byte TriggerTime;
TriggerTime = 255;
fCmdRet = StaticClassReaderB.SetTriggerTime(ref fComAdr, ref TriggerTime, frmcomportindex);
if (fCmdRet==0)
{
comboBox_tigtime.SelectedIndex = TriggerTime;
}
AddCmdLog("SetTriggerTime", "读取触发时间", fCmdRet);
}
private void checkBox_pc_CheckedChanged(object sender, EventArgs e)
{
if (checkBox_pc.Checked)
{
Edit_WordPtr.Text = "02";
Edit_WordPtr.ReadOnly = true;
int m, n;
n = Edit_WriteData.Text.Length;
if ((checkBox_pc.Checked) && (n % 4 == 0) && (C_EPC.Checked))
{
m = n / 4;
m = (m & 0x3F) << 3;
textBox_pc.Text = Convert.ToString(m, 16).PadLeft(2, '0') "00";
}
}
else
{
Edit_WordPtr.ReadOnly = false;
}
}
private void Edit_WriteData_TextChanged(object sender, EventArgs e)
{
int m,n;
n= Edit_WriteData.Text.Length;
if((checkBox_pc.Checked)&&(n % 4==0)&&(C_EPC.Checked))
{
m = n / 4;
m = (m & 0x3F) << 3;
textBox_pc.Text = Convert.ToString(m, 16).PadLeft(2, '0') "00";
}
}
private void CheckBox_TID_CheckedChanged(object sender, EventArgs e)
{
if (CheckBox_TID.Checked)
{
groupBox33.Enabled = true;
textBox4.Enabled = true;
textBox4.Enabled = true;
}
else
{
groupBox33.Enabled = false;
textBox4.Enabled = false;
textBox4.Enabled = false;
}
}
}
}
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明


网友评论
我要评论