java如何的rfid阅读器和rfid 多标签同时读取,并把读取到的信息展现在web界面,有没有案

当前位置: &
& 查看源码
mainframe.java
mainframe.java:源码内容
import&java.awt.D
import&java.awt.T
import&java.io.BufferedW
import&java.io.F
import&java.io.FileW
import&java.io.IOE
import&java.text.SimpleDateF
import&java.util.D
import&java.util.HashM
import&java.util.M
import&java.util.P
import&mons.logging.L
import&mons.logging.LogF
import&org.eclipse.jface.viewers.TableV
import&org.eclipse.swt.SWT;
import&org.eclipse.swt.custom.CL
import&org.eclipse.swt.events.MouseA
import&org.eclipse.swt.events.MouseE
import&org.eclipse.swt.events.SelectionA
import&org.eclipse.swt.events.SelectionE
import&org.eclipse.swt.events.ShellA
import&org.eclipse.swt.events.ShellE
import&org.eclipse.swt.graphics.I
import&org.eclipse.swt.graphics.P
import&org.eclipse.swt.widgets.B
import&org.eclipse.
import&org.eclipse.
import&org.eclipse.swt.widgets.D
import&org.eclipse.swt.widgets.E
import&org.eclipse.swt.widgets.G
import&org.eclipse.swt.widgets.L
import&org.eclipse.swt.widgets.L
import&org.eclipse.swt.widgets.L
import&org.eclipse.swt.widgets.M
import&org.eclipse.swt.widgets.MenuI
import&org.eclipse.swt.widgets.S
import&org.eclipse.swt.widgets.TabF
import&org.eclipse.swt.widgets.TabI
import&org.eclipse.swt.widgets.T
import&org.eclipse.swt.widgets.TableC
import&org.eclipse.swt.widgets.TableI
import&org.eclipse.swt.widgets.T
import&com.sensevision.reader.DataC
import&com.sensevision.reader.InputBlockD
import&com.sensevision.reader.OperateC
import&com.sensevision.reader.U
import&com.sensevision.reader.VersionI
import&com.swtdesigner.SWTResourceM
public&class&MainFrame&{
private&static&Text&blkCntT
private&static&Text&staBlkAddrT
private&static&Composite&getMultiBlockSecurityStateC
private&static&Text&text_20;
private&static&Text&text_19;
private&static&Text&writeDSFIDT
private&static&Composite&writeDSFIDC
private&static&Combo&portC
private&static&Text&curBlockDataT
private&static&Text&noOfBlocksT
private&static&Text&firstBlkAddrT
private&static&Text&writeSingleText8;
private&static&Text&writeSingleText7;
private&static&Text&writeSingleText6;
private&static&Text&writeSingleText5;
private&static&Text&writeSingleText4;
private&static&Text&writeSingleText3;
private&static&Text&writeSingleText2;
private&static&Text&writeSingleText1;
private&static&List&tagDetailL
private&static&List&operateInfoL
private&static&List&tagInfoL
private&static&Combo&noOfTagC
private&static&Combo&tagOfStateC
private&static&Combo&modulationC
private&static&Text&countAddrT
private&static&Text&keyAddrT
private&static&Text&pageBlkAddrT
private&static&Text&byteAddrT
private&static&Text&aFIT
private&static&Text&flagT
private&static&String&currentTagID&=&&&;
private&static&byte[]&byteArrayTag=
//&private&static&String&flag&=&&23&;
private&static&Properties&props&=&new&Properties();
private&static&String&portName&=&&&;
private&final&static&Log&logger&=&LogFactory.getLog(MainFrame.class);
private&static&final&Map&tagList&=&new&HashMap();
private&static&final&Map&tagReadCount&=&new&HashMap();
private&static&Button&flagB
private&static&Button&aFIB
private&static&Button&bAB
private&static&Button&pBAB
private&static&Button&kAB
private&static&Button&cAB
private&static&Composite&writeSingleC//&单块写入
private&static&Composite&readMultiDataC//&多块读
private&static&Table&commandT
//&private&static&static&boolean&autoRun&=&
private&static&Display&
private&static&Shell&
private&static&String&defaultManufactturer&=&&04&;
protected&List&inputBlockD
private&static&boolean&isOpen&=&
public&MainFrame()&{
//&FileInputStream&in&=&new&FileInputStream(&rfdump.properties&);
//&this.props.load(in);
//&this.portName&=&this.props.getProperty(&port&);
//&in.close();
//&}&catch&(Exception&e)&{
//&e.printStackTrace();
//&System.err
//&.println(&Error&reading&properties&file&rfdump.properties.&);
//&throw&new&RuntimeException(e);
//&currentTagID&=&&&;
&*&Launch&the&application
&*&@param&args
public&static&void&main(String[]&args)&{
final&MainFrame&frame&=&new&MainFrame();
display&=&Display.getDefault();
//&shell=&new&Shell(display,SWT.SHELL_TRIM);display,SWT.CLOSE&|
//&SWT.SYSTEM_MODAL
shell&=&new&Shell(display,&SWT.CLOSE&|&SWT.SYSTEM_MODAL);
//&shell.setBounds(100,&50,&);
shell.setSize(804,&565);
shell.setText(&Reader&);
Dimension&screenSize&=&Toolkit.getDefaultToolkit().getScreenSize();
Point&shellSize&=&shell.getSize();
if&(shellSize.y&&&screenSize.height)&{
shellSize.y&=&screenSize.
if&(shellSize.x&&&screenSize.width)&{
shellSize.x&=&screenSize.
shell.setLocation((screenSize.width&-&shellSize.x)&/&2,&(screenSize.height&-&shellSize.y)&/&2);
shell.open();
class&ParentShellListener&extends&ShellAdapter&{
&&&&&&&&public&void&shellClosed(ShellEvent&e)&{
&&&&&&&&&&&&&&&&System.exit(1);
&&&&&&&&&&&&&&&&&&&&&&&&//shell.close();
shell.addShellListener(new&ParentShellListener());
final&TabFolder&tabFolder&=&new&TabFolder(shell,&SWT.NONE);
tabFolder.setBounds(4,&28,&793,&397);
TabItem&tagOperateTabItem&=&new&TabItem(tabFolder,&SWT.NONE);
tagOperateTabItem.setText(&Tag&Operate&);
TabItem&readerOperateTabItem&=&new&TabItem(tabFolder,&SWT.NONE);
readerOperateTabItem.setText(&Reader&Operate&);
TabItem&readerInfoTabItem&=&new&TabItem(tabFolder,&SWT.NONE);
readerInfoTabItem.setText(&Reader&Info&);
TabItem&highLevelCommandTabItem&=&new&TabItem(tabFolder,&SWT.NONE);
highLevelCommandTabItem.setText(&High&Level&Command&);
final&Composite&mainComposite&=&new&Composite(tabFolder,&SWT.NONE);
tagOperateTabItem.setControl(mainComposite);
final&Composite&readerOperateComposite&=&new&Composite(tabFolder,&SWT.NONE);
readerOperateTabItem.setControl(readerOperateComposite);
final&Composite&readerInfoComposite&=&new&Composite(tabFolder,&SWT.NONE);
readerInfoTabItem.setControl(readerInfoComposite);
final&Composite&highLevelCommandComposite&=&new&Composite(tabFolder,&SWT.NONE);
highLevelCommandTabItem.setControl(highLevelCommandComposite);
final&Group&runButtonGroup&=&new&Group(mainComposite,&SWT.NONE);
runButtonGroup.setBounds(253,&252,&330,&120);
//&final&ComboViewer&comboViewer&=&new&ComboViewer(shell,&SWT.BORDER);
final&Group&commandListGroup&=&new&Group(mainComposite,&SWT.NONE);
commandListGroup.setText(&命令列表&);
commandListGroup.setBounds(5,&10,&241,&362);
final&TableViewer&commandTableViewer&=&new&TableViewer(commandListGroup,&SWT.FULL_SELECTION);
commandTable&=&commandTableViewer.getTable();
//&commandTable.setFont(SWTResourceManager.getFont(&&,&14,&SWT.BOLD));
commandTable.setLinesVisible(true);
commandTable.setHeaderVisible(true);
commandTable.setBounds(20,&15,&204,&215);
commandTable.setData(0x01);
final&TableColumn&newColumnTableColumn&=&new&TableColumn(commandTable,&SWT.CENTER);
//&newColumnTableColumn.addDisposeListener(new&DisposeListener()&{
//&public&void&widgetDisposed(final&DisposeEvent&e)&{
newColumnTableColumn.setWidth(100);
newColumnTableColumn.setText(&Code&);
newColumnTableColumn.setWidth(60);
final&TableColumn&newColumnTableColumn_1&=&new&TableColumn(commandTable,&SWT.NONE);
newColumnTableColumn_1.setWidth(100);
newColumnTableColumn_1.setText(&Command&Name&);
newColumnTableColumn_1.setWidth(300);
final&TableItem&item&=&new&TableItem(commandTable,&SWT.NULL);
item.setText(0,&&01&);
item.setText(1,&&Inventory&);
item.setData(0x01);
//&item.addSelectionListener(new&SelectionAdapter()&{
//&public&void&widgetSelected(final&SelectionEvent&e)&{
//&System.out.println(&123&);
//&item.addListener(1,&new&KeyDownFilter&()&{
//&public&void&widgetDefaultSelected(final&SelectionEvent&e)&{
//&System.out.println(&123&);
//&}&public&void&widgetSelected(final&SelectionEvent&e)&{
//&System.out.println(&123&);
//&FontData&newFontData&=&commandTable.getFont().getFontData()[0];
//&newFontData.setStyle(SWT.BOLD);
//&newFontData.setHeight(100);
TableItem&item2&=&new&TableItem(commandTable,&SWT.NULL);
item2.setText(0,&&02&);
item2.setData(0x02);
item2.setText(1,&&Stay&Quiet&);
TableItem&item3&=&new&TableItem(commandTable,&SWT.NULL);
item3.setText(0,&&03&);
item3.setText(1,&&Select&);
item3.setData(0x03);
TableItem&item4&=&new&TableItem(commandTable,&SWT.NULL);
item4.setText(0,&&04&);
item4.setText(1,&&Reset&to&Ready&);
item4.setData(0x04);
TableItem&item5&=&new&TableItem(commandTable,&SWT.NULL);
item5.setText(0,&&05&);
item5.setText(1,&&Write&AFI&);
item5.setData(0x05);
TableItem&item6&=&new&TableItem(commandTable,&SWT.NULL);
item6.setText(0,&&06&);
item6.setText(1,&&Lock&AFI&);
item6.setData(0x06);
TableItem&item7&=&new&TableItem(commandTable,&SWT.NULL);
item7.setText(0,&&07&);
item7.setText(1,&&Read&Single&Block&);
item7.setData(0x07);
TableItem&item8&=&new&TableItem(commandTable,&SWT.NULL);
item8.setText(0,&&08&);
item8.setText(1,&&Write&Single&Block&);
item8.setData(0x08);
TableItem&item9&=&new&TableItem(commandTable,&SWT.NULL);
item9.setText(0,&&09&);
item9.setText(1,&&Lock&Block&);
item9.setData(0x09);
TableItem&item10&=&new&TableItem(commandTable,&SWT.NULL);
item10.setText(0,&&0A&);
item10.setText(1,&&Read&Multi&Block&);
item10.setData(0x0A);
TableItem&item11&=&new&TableItem(commandTable,&SWT.NULL);
item11.setText(0,&&0B&);
item11.setText(1,&&Write&Multi&Block&);
item11.setData(0x0B);
TableItem&item12&=&new&TableItem(commandTable,&SWT.NULL);
item12.setText(0,&&0C&);
item12.setText(1,&&Write&DSFID&);
item12.setData(0x0C);
TableItem&item13&=&new&TableItem(commandTable,&SWT.NULL);
item13.setText(0,&&0D&);
item13.setText(1,&&Lock&DSFID&);
item13.setData(0x0D);
TableItem&item14&=&new&TableItem(commandTable,&SWT.NULL);
item14.setText(0,&&0E&);
item14.setText(1,&&Get&System&Info&);
item14.setData(0x0E);
TableItem&item15&=&new&TableItem(commandTable,&SWT.NULL);
item15.setText(0,&&0F&);
item15.setText(1,&&Get&Multi&Block&Secirotu&Status&);
item15.setData(0x0F);
final&Button&runButton&=&new&Button(runButtonGroup,&SWT.BORDER);
runButton.addMouseListener(new&MouseAdapter()&{
public&void&mouseDown(final&MouseEvent&arg0)&{
frame.run(frame);
//&runButton.setFont(SWTResourceManager.getFont(&&,&15,&SWT.BOLD));
runButton.setText(&Run&);
runButton.setBounds(242,&10,&70,&30);
final&Button&stopButton&=&new&Button(runButtonGroup,&SWT.BORDER);
final&Task&task&=&new&Task();
stopButton.addMouseListener(new&MouseAdapter()&{
public&void&mouseDown(final&MouseEvent&e)&{
//&System.exit(1);
&task.close();
stopButton.setBounds(242,&82,&70,&30);
//&stopButton.setFont(SWTResourceManager.getFont(&&,&15,&SWT.BOLD));
stopButton.setText(&Stop&);
modulationCombo&=&new&Combo(runButtonGroup,&SWT.READ_ONLY);
modulationCombo.addSelectionListener(new&SelectionAdapter()&{
public&void&widgetSelected(final&SelectionEvent&e)&{
if&(tagOfStateCombo.getSelectionIndex()&==&1)&{
if&(modulationCombo.getSelectionIndex()&==&0)&{
if&(noOfTagCombo.getSelectionIndex()&==&0)&{
flagText.setText(&27&);
if&(noOfTagCombo.getSelectionIndex()&==&1)&{
flagText.setText(&07&);
}&else&if&(modulationCombo.getSelectionIndex()&==&1)&{
if&(noOfTagCombo.getSelectionIndex()&==&0)&{
flagText.setText(&26&);
if&(noOfTagCombo.getSelectionIndex()&==&1)&{
flagText.setText(&06&);
modulationCombo.setBounds(91,&16,&124,&20);
modulationCombo.add(&FSK&);
modulationCombo.add(&ASK&);
modulationCombo.select(0);
//&Dimension&srcd&=&Toolkit.getDefaultToolkit().getScreenSize();
//&configurer.setInitialSize(new&Point(srcd.width,srcd.height));
final&CLabel&modulationLabel&=&new&CLabel(runButtonGroup,&SWT.NONE);
modulationLabel.setBounds(-25,&16,&94,&18);
modulationLabel.setAlignment(SWT.RIGHT);
modulationLabel.setText(&Modulation&);
final&CLabel&tagofstateLabel&=&new&CLabel(runButtonGroup,&SWT.NONE);
tagofstateLabel.setBounds(-25,&51,&94,&18);
tagofstateLabel.setAlignment(SWT.RIGHT);
tagofstateLabel.setText(&TagOfState&);
tagOfStateCombo&=&new&Combo(runButtonGroup,&SWT.READ_ONLY);
tagOfStateCombo.addSelectionListener(new&SelectionAdapter()&{
public&void&widgetSelected(final&SelectionEvent&e)&{
if&(tagOfStateCombo.getSelectionIndex()&==&1)&{
//&flag&=&&23&;
flagText.setText(&23&);
if&(tagOfStateCombo.getSelectionIndex()&==&0)&{
if&(modulationCombo.getSelectionIndex()&==&0)&{
if&(noOfTagCombo.getSelectionIndex()&==&0)&{
//&flag&=&&07&;
flagText.setText(&27&);
}&else&if&(noOfTagCombo.getSelectionIndex()&==&1)&{
//&flag&=&&06&;
flagText.setText(&07&);
}&else&if&(modulationCombo.getSelectionIndex()&==&1)&{
if&(noOfTagCombo.getSelectionIndex()&==&0)&{
//&flag&=&&26&;
flagText.setText(&26&);
}&else&if&(noOfTagCombo.getSelectionIndex()&==&1)&{
//&flag&=&&27&;
flagText.setText(&06&);
tagOfStateCombo.setBounds(91,&51,&124,&20);
tagOfStateCombo.add(&NotSelected&);
tagOfStateCombo.add(&Selected&);
tagOfStateCombo.select(0);
final&CLabel&noOftagLabel&=&new&CLabel(runButtonGroup,&SWT.NONE);
noOftagLabel.setBounds(-25,&88,&89,&18);
noOftagLabel.setAlignment(SWT.RIGHT);
noOftagLabel.setText(&NoOfTag&);
noOfTagCombo&=&new&Combo(runButtonGroup,&SWT.READ_ONLY);
noOfTagCombo.addSelectionListener(new&SelectionAdapter()&{
public&void&widgetSelected(final&SelectionEvent&e)&{
if&(tagOfStateCombo.getSelectionIndex()&==&1)&{
if&(noOfTagCombo.getSelectionIndex()&==&0)&{
if&(modulationCombo.getSelectionIndex()&==&0)&{
flagText.setText(&27&);
if&(modulationCombo.getSelectionIndex()&==&1)&{
flagText.setText(&26&);
}&else&if&(noOfTagCombo.getSelectionIndex()&==&1)&{
if&(modulationCombo.getSelectionIndex()&==&0)&{
flagText.setText(&07&);
if&(modulationCombo.getSelectionIndex()&==&1)&{
flagText.setText(&06&);
noOfTagCombo.setBounds(91,&88,&124,&20);
noOfTagCombo.add(&Single&);
noOfTagCombo.add(&Mutiple&);
noOfTagCombo.select(0);
final&Button&autoRunButton&=&new&Button(runButtonGroup,&SWT.BORDER);
autoRunButton.addMouseListener(new&MouseAdapter()&{
public&void&mouseDown(final&MouseEvent&e)&{
//autoRun&=&!autoR
new&Thread(){
public&void&run(){
if(!task.IsRun()){
task.start(frame);
}.start();
(&************start************************&);
autoRunButton.setText(&Auto&Run&);
autoRunButton.setBounds(242,&46,&70,&30);
final&Group&tagInfoGroup&=&new&Group(mainComposite,&SWT.NONE);
tagInfoGroup.setText(&Tag&Info&);
tagInfoGroup.setBounds(589,&10,&190,&212);
tagInfoList&=&new&List(tagInfoGroup,&SWT.BORDER&|&SWT.V_SCROLL&|&SWT.H_SCROLL);
tagInfoList.setForeground(SWTResourceManager.getColor(255,&0,&255));
tagInfoList.setBounds(10,&22,&170,&179);
//&final&Group&tagDetailGroup&=&new&Group(mainComposite,&SWT.NONE);
//&tagDetailGroup.setBounds(769,&38,&195,&234);
//&tagDetailGroup.setText(&detail&);
final&Group&tagDetailGroup&=&new&Group(mainComposite,&SWT.NONE);
tagDetailGroup.setBounds(589,&228,&190,&144);
tagDetailGroup.setText(&Tag&Detail&);
tagDetailList&=&new&List(tagDetailGroup,&SWT.BORDER&|&SWT.V_SCROLL&|&SWT.H_SCROLL);
tagDetailList.setBounds(9,&21,&171,&113);
final&Menu&menu&=&new&Menu(shell,&SWT.BAR);
shell.setMenuBar(menu);
final&MenuItem&fileMenu&=&new&MenuItem(menu,&SWT.CASCADE);
fileMenu.setText(&File&);
//&下面加一个item到menu&bar:
//&MenuItem&file&=&new&MenuItem(menu,&SWT.CASCADE);
//&//&style必须是SWT.CASCADE,否则就不能跟file加drop-down&menu
//&file.setText(&file&);
//&现在给file加个menu:
Menu&filemenu&=&new&Menu(shell,&SWT.DROP_DOWN);
//&style必须是SWT.DROP_DOWN
fileMenu.setMenu(filemenu);
//&最后,可以在filemenu上加MenuItem:
MenuItem&saveLogActionItem&=&new&MenuItem(filemenu,&SWT.PUSH);
saveLogActionItem.setText(&save&log&);
//&这样就在File&menu上建立一个最简单的可以选择的menu&item.
//&如果要加listener,这样:
saveLogActionItem.addListener(SWT.Selection,&new&Listener()&{
public&void&handleEvent(Event&e)&{
if&(operateInfoList&==&null)&{
Date&date&=&new&Date();
SimpleDateFormat&format&=&new&SimpleDateFormat(&yyyyMMDD&);
File&file&=&new&File(&log&&+&format.format(date)&+&&.txt&);
FileWriter&fw&=&
fw&=&new&FileWriter(file,&false);
}&catch&(IOException&e2)&{
//&TODO&Auto-generated&catch&block
e2.printStackTrace();
BufferedWriter&bw&=&new&BufferedWriter(fw);
if&(!file.canRead())&{
logger.error(&日志文件已存在,并不可读&);
file.delete();
file.deleteOnExit();
if&(!file.exists())&{
file.createNewFile();
}&catch&(IOException&e1)&{
//&TODO&Auto-generated&catch&block
e1.printStackTrace();
for&(int&i&=&0;&i&&&operateInfoList.getItemCount();&i++)&{
System.out.println(operateInfoList.getItem(i));
bw.write(operateInfoList.getItem(i));
bw.newLine();
}&catch&(IOException&e1)&{
//&TODO&Auto-generated&catch&block
e1.printStackTrace();
if&(!file.exists())&{
System.out.println(&file&not&success&);
(file.getPath());
bw.flush();
bw.close();
}&catch&(IOException&e1)&{
//&TODO&Auto-generated&catch&block
e1.printStackTrace();
operateInfoList.add(&save&success!!&);
final&MenuItem&editMenuItem&=&new&MenuItem(menu,&SWT.CASCADE);
editMenuItem.setText(&Edit&);
final&MenuItem&helpMenuItem&=&new&MenuItem(menu,&SWT.CASCADE);
helpMenuItem.setText(&Help&);
//&现在给file加个menu:
Menu&editMenu&=&new&Menu(shell,&SWT.DROP_DOWN);
//&style必须是SWT.DROP_DOWN
editMenuItem.setMenu(editMenu);
//&最后,可以在filemenu上加MenuItem:
MenuItem&clearTagInfoActionItem&=&new&MenuItem(editMenu,&SWT.PUSH);
clearTagInfoActionItem.addSelectionListener(new&SelectionAdapter()&{
public&void&widgetSelected(final&SelectionEvent&e)&{
tagInfoList.removeAll();
tagList.clear();
tagReadCount.clear();
clearTagInfoActionItem.setText(&clear&tag&Info&);
MenuItem&clearTagDetailActionItem&=&new&MenuItem(editMenu,&SWT.PUSH);
clearTagDetailActionItem.addSelectionListener(new&SelectionAdapter()&{
public&void&widgetSelected(final&SelectionEvent&e)&{
tagDetailList.removeAll();
clearTagDetailActionItem.setText(&clear&tag&detail&);
MenuItem&clearMessageActionItem&=&new&MenuItem(editMenu,&SWT.PUSH);
clearMessageActionItem.addSelectionListener(new&SelectionAdapter()&{
public&void&widgetSelected(final&SelectionEvent&e)&{
operateInfoList.removeAll();
clearMessageActionItem.setText(&clear&message&);
fileMenu.setText(&File&);
//&现在给file加个menu:
Menu&helpMenu&=&new&Menu(shell,&SWT.DROP_DOWN);
//&style必须是SWT.DROP_DOWN
helpMenuItem.setMenu(helpMenu);
//&最后,可以在filemenu上加MenuItem:
MenuItem&helpActionItem&=&new&MenuItem(helpMenu,&SWT.PUSH);
helpActionItem.setText(&version&);
helpActionItem.addSelectionListener(new&SelectionAdapter()&{
public&void&widgetSelected(final&SelectionEvent&e)&{
VersionInfo&aa&=&new&VersionInfo(shell,&SWT.CENTER);
aa.open();
commandTable.addListener(SWT.MouseDown,&new&Listener()&{
public&void&handleEvent(Event&e)&{
TableItem&gitem&=&commandTable.getItem(new&Point(e.x,&e.y));
if&(gitem&!=&null)&{
//&item.setText(&checked&);
commandTable.setData(gitem.getData());
//&logger.error(commandTable.getData().equals(PortConnection.Read_Multi_Block));
if&(!commandTable.getData().equals(OperateCommand.Write_Single_Block))&{
writeSingleComposite.setVisible(false);
if&(!commandTable.getData().equals(OperateCommand.Read_Multi_Block))&{
readMultiDataComposite.setVisible(false);
if&(!commandTable.getData().equals(OperateCommand.Write_DSFID))&{
writeDSFIDComposite.setVisible(false);
if&(!commandTable.getData().equals(OperateCommand.Get_Multi_Block_Secirotu_Status))&{
getMultiBlockSecurityStateComposite.setVisible(false);
if&(gitem.getData().equals(OperateCommand.Inventory)&||&gitem.getData().equals(OperateCommand.Select)
||&gitem.getData().equals(OperateCommand.Reset_to_Ready))&{
flagText.setText(&27&);
//&flag&=&&07&;
//&flagButton.setEnabled(true);
flagButton.setSelection(true);
aFIButton.setSelection(false);
}&else&if&(gitem.getData().equals(OperateCommand.Stay_Quiet))&{
flagText.setText(&23&);
//&flag&=&&23&;
//&flagButton.setSelection(false);
aFIButton.setSelection(false);
aFIButton.setEnabled(false);
pBAButton.setSelection(false);
}&else&if&(gitem.getData().equals(OperateCommand.Get_Multi_Block_Secirotu_Status))&{
//&flag&=&&23&;
//&flagButton.setSelection(false);
getMultiBlockSecurityStateComposite.setVisible(true);
flagText.setText(&23&);
}&else&if&(gitem.getData().equals(OperateCommand.Write_DSFID))&{
writeDSFIDComposite.setVisible(true);
flagButton.setSelection(true);
aFIButton.setSelection(false);
}&else&if&(gitem.getData().equals(OperateCommand.Write_AFI)&||&gitem.getData().equals(OperateCommand.Lock_AFI))&{
flagButton.setSelection(true);
aFIButton.setSelection(true);
aFIButton.setEnabled(false);
pBAButton.setSelection(false);
if&(gitem.getData().equals(OperateCommand.Lock_AFI))&{
aFIButton.setSelection(false);
}&else&if&(gitem.getData().equals(OperateCommand.Write_Single_Block)&||&gitem.getData().equals(OperateCommand.Read_Single_Block)
||&gitem.getData().equals(OperateCommand.Read_Multi_Block)&||&gitem.getData().equals(OperateCommand.Lock_Block)
||&gitem.getData().equals(OperateCommand.Write_DSFID)&||&gitem.getData().equals(OperateCommand.Lock_DSFID)
||&gitem.getData().equals(OperateCommand.Get_System_Info)&||&gitem.getData().equals(OperateCommand.Get_Multi_Block_Secirotu_Status)
||&gitem.getData().equals(OperateCommand.Write_Multi_Block))&{
if&(commandTable.getData().equals(OperateCommand.Write_Single_Block))&{
pBAButton.setSelection(true);
writeSingleComposite.setVisible(true);
}&else&if&(commandTable.getData().equals(OperateCommand.Write_Multi_Block))&{
pBAButton.setSelection(false);
}&else&if&(commandTable.getData().equals(OperateCommand.Read_Single_Block))&{
pBAButton.setSelection(true);
}&else&if&(commandTable.getData().equals(OperateCommand.Read_Multi_Block))&{
readMultiDataComposite.setVisible(true);
pBAButton.setSelection(false);
}&else&if&(commandTable.getData().equals(OperateCommand.Write_Multi_Block))&{
pBAButton.setSelection(false);
flagButton.setSelection(true);
flagText.setText(&23&);
aFIButton.setSelection(false);
aFIButton.setEnabled(false);
//&flagText.setText(&23&);
//&flag&=&&23&;
aFIButton.setSelection(false);
aFIButton.setEnabled(false);
pBAButton.setSelection(false);
flagButton.setSelection(false);
final&Group&commandSetGroup&=&new&Group(mainComposite,&SWT.NONE);
commandSetGroup.setBounds(252,&10,&330,&236);
writeSingleComposite&=&new&Composite(commandSetGroup,&SWT.NONE);
writeSingleComposite.setBounds(54,&170,&246,&28);
writeSingleComposite.setVisible(false);
final&Label&writeSingleDataLabel&=&new&Label(writeSingleComposite,&SWT.NONE);
writeSingleDataLabel.setBounds(10,&8,&30,&12);
writeSingleDataLabel.setText(&Data&);
writeSingleText1&=&new&Text(writeSingleComposite,&SWT.BORDER);
writeSingleText1.setBounds(46,&4,&25,&20);
writeSingleText1.setTextLimit(2);
writeSingleText1.setText(&00&);
writeSingleText2&=&new&Text(writeSingleComposite,&SWT.BORDER);
writeSingleText2.setBounds(70,&4,&25,&20);
writeSingleText2.setTextLimit(2);
writeSingleText2.setText(&00&);
writeSingleText3&=&new&Text(writeSingleComposite,&SWT.BORDER);
writeSingleText3.setBounds(94,&4,&25,&20);
writeSingleText3.setTextLimit(2);
writeSingleText3.setText(&00&);
writeSingleText4&=&new&Text(writeSingleComposite,&SWT.BORDER);
writeSingleText4.setBounds(118,&4,&25,&20);
writeSingleText4.setTextLimit(2);
writeSingleText4.setText(&00&);
writeSingleText5&=&new&Text(writeSingleComposite,&SWT.BORDER);
writeSingleText5.setBounds(142,&4,&25,&20);
writeSingleText5.setTextLimit(2);
writeSingleText5.setEnabled(false);
writeSingleText5.setText(&00&);
writeSingleText6&=&new&Text(writeSingleComposite,&SWT.BORDER);
writeSingleText6.setBounds(166,&4,&25,&20);
writeSingleText6.setTextLimit(2);
writeSingleText6.setEnabled(false);
writeSingleText6.setText(&00&);
writeSingleText7&=&new&Text(writeSingleComposite,&SWT.BORDER);
writeSingleText7.setBounds(190,&4,&25,&20);
writeSingleText7.setTextLimit(2);
writeSingleText7.setEnabled(false);
writeSingleText7.setText(&00&);
writeSingleText8&=&new&Text(writeSingleComposite,&SWT.BORDER);
writeSingleText8.setBounds(214,&4,&25,&20);
writeSingleText8.setTextLimit(2);
writeSingleText8.setEnabled(false);
writeSingleText8.setText(&00&);
readMultiDataComposite&=&new&Composite(commandSetGroup,&SWT.NONE);
readMultiDataComposite.setBounds(54,&170,&266,&50);
readMultiDataComposite.setVisible(false);
firstBlkAddrText&=&new&Text(readMultiDataComposite,&SWT.BORDER);
firstBlkAddrText.setBounds(42,&21,&28,&20);
firstBlkAddrText.setTextLimit(2);
firstBlkAddrText.setText(&00&);
noOfBlocksText&=&new&Text(readMultiDataComposite,&SWT.BORDER);
noOfBlocksText.setBounds(116,&21,&28,&20);
noOfBlocksText.setTextLimit(2);
noOfBlocksText.setText(&00&);
curBlockDataText&=&new&Text(readMultiDataComposite,&SWT.BORDER);
curBlockDataText.setBounds(206,&21,&28,&20);
curBlockDataText.setTextLimit(2);
curBlockDataText.setText(&00&);
final&Label&firstBlkAddrLabel&=&new&Label(readMultiDataComposite,&SWT.NONE);
firstBlkAddrLabel.setText(&1st&block&addr&);
firstBlkAddrLabel.setBounds(6,&3,&90,&12);
final&Label&noOfBlocksLabel&=&new&Label(readMultiDataComposite,&SWT.NONE);
noOfBlocksLabel.setBounds(102,&3,&72,&12);
noOfBlocksLabel.setText(&No&of&blocks&);
final&Label&curBlockDataTextLabel&=&new&Label(readMultiDataComposite,&SWT.NONE);
curBlockDataTextLabel.setBounds(180,&3,&86,&12);
curBlockDataTextLabel.setText(&Cur&Page/Block&Data&);
writeDSFIDComposite&=&new&Composite(commandSetGroup,&SWT.NONE);
writeDSFIDComposite.setBounds(54,&170,&266,&39);
writeDSFIDComposite.setVisible(false);
writeDSFIDText&=&new&Text(writeDSFIDComposite,&SWT.BORDER);
writeDSFIDText.setTextLimit(2);
writeDSFIDText.setText(&00&);
writeDSFIDText.setBounds(117,&10,&28,&20);
final&Label&dsfidLabel&=&new&Label(writeDSFIDComposite,&SWT.NONE);
dsfidLabel.setBounds(55,&13,&90,&12);
dsfidLabel.setText(&DSFID&);
flagButton&=&new&Button(commandSetGroup,&SWT.CHECK);
flagButton.setBounds(90,&25,&95,&16);
flagButton.setText(&Flag&);
flagButton.setEnabled(false);
flagText&=&new&Text(commandSetGroup,&SWT.BORDER);
flagText.setBounds(214,&23,&28,&20);
flagText.setTextLimit(2);
flagText.setText(&27&);
aFIButton&=&new&Button(commandSetGroup,&SWT.CHECK);
aFIButton.setBounds(90,&48,&95,&16);
aFIButton.setText(&AFI&);
aFIButton.setEnabled(false);
aFIText&=&new&Text(commandSetGroup,&SWT.BORDER);
aFIText.setBounds(214,&45,&28,&20);
aFIText.setTextLimit(2);
aFIText.setText(&00&);
bAButton&=&new&Button(commandSetGroup,&SWT.CHECK);
bAButton.setBounds(90,&70,&95,&16);
bAButton.setText(&Byte&Addr&);
bAButton.setEnabled(false);
byteAddrText&=&new&Text(commandSetGroup,&SWT.BORDER);
byteAddrText.setBounds(214,&67,&28,&20);
byteAddrText.setTextLimit(2);
byteAddrText.setText(&03&);
pBAButton&=&new&Button(commandSetGroup,&SWT.CHECK);
pBAButton.setBounds(90,&92,&95,&16);
pBAButton.setText(&Page/Blk&Addr&);
pBAButton.setEnabled(false);
pageBlkAddrText&=&new&Text(commandSetGroup,&SWT.BORDER);
pageBlkAddrText.setBounds(214,&89,&28,&20);
pageBlkAddrText.setTextLimit(2);
pageBlkAddrText.setText(&03&);
kAButton&=&new&Button(commandSetGroup,&SWT.CHECK);
kAButton.setBounds(90,&114,&95,&16);
kAButton.setText(&Key&Addr&);
kAButton.setEnabled(false);
keyAddrText&=&new&Text(commandSetGroup,&SWT.BORDER);
keyAddrText.setBounds(214,&111,&28,&20);
keyAddrText.setTextLimit(2);
keyAddrText.setText(&04&);
cAButton&=&new&Button(commandSetGroup,&SWT.CHECK);
cAButton.setBounds(90,&136,&95,&16);
cAButton.setText(&Count&Addr&);
cAButton.setEnabled(false);
countAddrText&=&new&Text(commandSetGroup,&SWT.BORDER);
countAddrText.setBounds(214,&133,&28,&20);
countAddrText.setTextLimit(2);
countAddrText.setText(&03&);
getMultiBlockSecurityStateComposite&=&new&Composite(commandSetGroup,&SWT.NONE);
getMultiBlockSecurityStateComposite.setBounds(54,&170,&266,&39);
getMultiBlockSecurityStateComposite.setVisible(false);
staBlkAddrText&=&new&Text(getMultiBlockSecurityStateComposite,&SWT.BORDER);
staBlkAddrText.setTextLimit(2);
staBlkAddrText.setText(&00&);
staBlkAddrText.setBounds(89,&10,&28,&20);
final&Label&dsfidLabel_1&=&new&Label(getMultiBlockSecurityStateComposite,&SWT.NONE);
dsfidLabel_1.setBounds(10,&13,&90,&12);
dsfidLabel_1.setText(&1st&Blk&Addr&);
final&Label&dsfidLabel_1_1&=&new&Label(getMultiBlockSecurityStateComposite,&SWT.NONE);
dsfidLabel_1_1.setBounds(160,&13,&42,&12);
dsfidLabel_1_1.setText(&Blk&Cnt&);
blkCntText&=&new&Text(getMultiBlockSecurityStateComposite,&SWT.BORDER);
blkCntText.setBounds(208,&10,&28,&20);
blkCntText.setTextLimit(2);
blkCntText.setText(&00&);
//&shell.setSize(100,&100);
//&shell.setMaximized(true);
//&shell.setBounds(201,&91,&64,&64);
portCombo&=&new&Combo(shell,&SWT.NONE);
portCombo.setBounds(10,&2,&80,&20);
portCombo.add(&COM1&);
portCombo.add(&COM2&);
portCombo.add(&COM3&);
portCombo.add(&COM4&);
portCombo.add(&COM5&);
portCombo.add(&COM6&);
portCombo.add(&COM7&);
portCombo.add(&COM8&);
portCombo.add(&USB&);
portCombo.add(&BlueTooth&);
portCombo.add(&Ethernet&);
portCombo.add(&IRDA&);
portCombo.select(0);
final&Button&openButton&=&new&Button(shell,&SWT.NONE);
openButton.addMouseListener(new&MouseAdapter()&{
public&void&mouseDown(final&MouseEvent&e)&{
int&returnNo&=&-1;
if&(!isOpen)&{
returnNo&=&JISO15693.SetCom(portCombo.getText(),&,&&None&,&&1&);
//&sc.openPort(portCombo.getText());
//&sc.write(&:fdskfsdfn&);
//&if&(sc.readNextLine()&==&null)&{
//&message&=&&not&found&reader&in&&
//&+&portCombo.getItem(portCombo
//&.getSelectionIndex());
//&returnNo=JISO15693.CloseCom();
//&operateInfoList.add(message);
//&operateInfoList.setSelection(operateInfoList
//&.getItemCount()&-&1);
if&(returnNo&==&1)&{
showOperateInfo(&port&&&+&portCombo.getText()&+&&&open&fiald!&);
byte[]&sendval&=&new&byte[200];
byte[]&retval&=&new&byte[200];
long&nBytestoRead=0;
returnNo&=JISO15693.Inventory(sendval,&retval,&aFIButton.getSelection(),&0x23,&0x23,&nBytestoRead);
//returnNo&=&JISO15693.Select(sendval,&retval,&UID,&23,&nBytestoRead);
if(getCommandStr(retval).equals(&&)){
showOperateInfo(&port&&&+&portCombo.getText()&+&&&not&found&Reader!&);
returnNo&=&JISO15693.CloseCom();
openButton.setText(&Close&);
showOperateInfo(&port&&&+&portCombo.getText()&+&&&open&success!&);
//&将第一个命令设为默认
commandTable.setData(0x01);
flagText.setText(&27&);
noOfTagCombo.select(0);
tagOfStateCombo.select(0);
modulationCombo.select(0);
//&flag&=&&07&;
//&flagButton.setEnabled(true);
flagButton.setSelection(true);
aFIButton.setSelection(false);
aFIButton.setEnabled(true);
pBAButton.setSelection(false);
//&commandTableV
commandTable.select(0);
//&item.setChecked(true);
if&(task&!=&null)&{
//&task.close();
returnNo&=&JISO15693.CloseCom();
openButton.setText(&Open&);
showOperateInfo(&port&&&+&portCombo.getText()&+&&&close&success!&);
//&operateInfoList.add(message);
//&operateInfoList
//&.setSelection(operateInfoList.getItemCount()&-&1);
//&}&catch&(NoSuchPortException&ex)&{
//&message&=&&port&&&+&portCombo.getText()&+&&&not&found!&;
//&operateInfoList.add(message);
//&logger.error(message,&ex);
//&operateInfoList
//&.setSelection(operateInfoList.getItemCount()&-&1);
//&}&catch&(PortInUseException&ex)&{
//&message&=&&port&&&+&portCombo.getText()&+&&&in&used&;
//&operateInfoList.add(message);
//&operateInfoList
//&.setSelection(operateInfoList.getItemCount()&-&1);
//&logger.error(message,&ex);
//&}&catch&(UnsupportedCommOperationException&ex)&{
//&message&=&ex.getMessage();
//&if&(message&==&null)&{
//&message&=&&set&serial&port&params&error&;
//&//&operateInfoList.add(message);
//&logger.error(message,&ex);
openButton.setText(&Open&);
openButton.setBounds(94,&0,&48,&22);
final&Menu&tagDetailClearMenu&=&new&Menu(shell,&SWT.POP_UP);
final&MenuItem&tagDetailClearMenuItem&=&new&MenuItem(tagDetailClearMenu,&SWT.PUSH);
tagDetailClearMenuItem.addSelectionListener(new&SelectionAdapter()&{
public&void&widgetSelected(final&SelectionEvent&e)&{
//&tagDetailList.get(new&Point(e.x,&e.y));
tagInfoList.removeAll();
tagList.clear();
tagReadCount.clear();
final&Menu&tagInfoClearMenu&=&new&Menu(shell,&SWT.POP_UP);
final&MenuItem&tagInfoClearMenuItem&=&new&MenuItem(tagInfoClearMenu,&SWT.PUSH);
tagInfoClearMenuItem.addSelectionListener(new&SelectionAdapter()&{
public&void&widgetSelected(final&SelectionEvent&e)&{
//&tagDetailList.get(new&Point(e.x,&e.y));
tagDetailList.removeAll();
tagDetailClearMenuItem.setText(&clear&);
tagInfoClearMenuItem.setText(&clear&);
tagInfoList.setMenu(tagDetailClearMenu);
tagDetailList.setMenu(tagInfoClearMenu);
//&Image&image2&=&new&Image(display,&&e:\267_306.tx&);
Image&image2&=&new&Image(display,&&logo.png&);
final&Group&logoGroup&=&new&Group(commandListGroup,&SWT.NONE);
logoGroup.setBounds(5,&230,&231,&126);
logoGroup.setBackgroundImage(image2);
final&Group&messageGroup&=&new&Group(shell,&SWT.NONE);
messageGroup.setBounds(10,&420,&786,&89);
messageGroup.setText(&Message&);
operateInfoList&=&new&List(messageGroup,&SWT.BORDER&|&SWT.V_SCROLL&|&SWT.H_SCROLL);
operateInfoList.setBounds(10,&15,&766,&68);
//&final&Combo&portCombo&=&comboViewer.getCombo();
//&portCombo.setBounds(317,&80,&129,&286);
final&Menu&messageClearMenu&=&new&Menu(shell,&SWT.POP_UP);
final&MenuItem&messageClearMenuItem&=&new&MenuItem(messageClearMenu,&SWT.PUSH);
messageClearMenuItem.addSelectionListener(new&SelectionAdapter()&{
public&void&widgetSelected(final&SelectionEvent&e)&{
//&tagDetailList.get(new&Point(e.x,&e.y));
operateInfoList.removeAll();
messageClearMenuItem.setText(&clear&);
operateInfoList.setMenu(messageClearMenu);
messageClearMenuItem.addListener(SWT.MenuDetect,&new&Listener()&{
public&void&handleEvent(Event&event)&{
System.out.println(&右键菜单&);
menu.setLocation(display.getCursorLocation());
menu.setVisible(true);
//&final&Button&button_1&=&new&Button(mainComposite,&SWT.NONE);
//&button_1.addMouseListener(new&MouseAdapter()&{
//&public&void&mouseDown(final&MouseEvent&e)&{
//&StringBuffer&sendMessage=new&StringBuffer();
//&sendMessage.append(&15x&);
//&byte[]&values=&山西&.getBytes();
//&sendMessage.append(Utils.toUnicode(&山西&));
//&(Utils.toUnicode(&山&));
//&//for(int&i=0;i&values.i++)
//&//sendMessage.append((char)values[i]);
//&//sendMessage.append(&0B&);
//&sendMessage.append(Utils.toBack(currentTagID,&2));
//&//&String&Utils&=&Utils.getStrCRC16C(Utils.toUniteStr(
//&//&sendMessage.toString(),&2).toCharArray());//&CRC校验
//&//sendMessage.append(Utils);
//&//&Utils=Utils.getCRC16((unicodeValue.toString()).getBytes());//CRC校验
//&//&(Utils);
//&//&sc.write(&0A&);
//&//&sendMessage.append(Utils.toBack(Utils,&2));//&添加crc校验
//&sendMessage.append('n');
//&sendMessage.insert(0,&:&);
//&frame.run(sendMessage.toString());
//&(&send:&&+sendMessage.toString());
//&button_1.setText(&runButton&);
//&button_1.setBounds(398,&352,&48,&22);
shell.layout();
while&(!shell.isDisposed())&{
if&(!display.readAndDispatch())
display.sleep();
//&MessageDialog.openWarning(shell.getDisplay().getShells()[0],&&提示信息&&,
//&&fdf&);
public&void&run(MainFrame&frame)&{
byte[]&sendval&=&new&byte[200];
byte[]&retval&=&new&byte[2000];
String&send&=&new&String(sendval);
String&rev&=&new&String(retval);
long&nBytesRead&=&0;
int&aFIVal&=&0;
int&flagVal&=&0;
int&returnNo&=&-1;//&返回码
int&nblock&=&0;
int&count&=&0;
StringBuffer&revBlockVal&=&new&StringBuffer();
byte&[]sendBlockVal&=&
if&(currentTagID.length()&&&16&&&&!commandTable.getData().equals(0x01))&{
showOperateInfo(&Not&Inventory&);
switch&((Integer)&commandTable.getData())&{
if&(flagText.getText().length()&==&1)&{//&flag补0
flagText.setText(&0&&+&flagText.getText());
if&(aFIButton.getSelection())&{//&AFI补0
if&(aFIText.getText().length()&==&1)&{
aFIText.setText(&0&&+&aFIText.getText());
aFIVal&=&Integer.valueOf(aFIText.getText(),&16);
flagVal&=&Integer.valueOf(flagText.getText(),&16);
returnNo&=&JISO15693.Inventory(sendval,&retval,&aFIButton.getSelection(),&aFIVal,&flagVal,&nBytesRead);
send&=&getCommandStr(sendval);
rev&=&getCommandStr(retval);
//&System.out.println(&读卡返回值:&&+returnNo&+send+&:&+rev);
showOperateInfo(send);
if&(rev.equals(&&))&{
showOperateInfo(&No&Reply&);
showOperateInfo(rev);
//&temp1=&677E5E08000
String[]&tagArray&=&toTagArray(Utils.toBack(rev.substring(9,&rev.length()&-&5),&2));
if&(tagArray&==&null)&{//&未查询到标签或发生异常
for&(int&i&=&0;&i&&&tagArray.&i++)&{
currentTagID&=&tagArray[i];
byteArrayTag=new&byte[16];
for(int&j=0;j&16;j++){
byteArrayTag[j]=retval[13+j+i*16];
//showOperateInfo(new&String(byteArrayTag));
StringBuffer&displayInfo&=&new&StringBuffer();
String&returnFrameNo&=&send.substring(1,&3);
displayInfo.append(returnFrameNo);
displayInfo.append(&&&);
displayInfo.append(currentTagID);
(&tag:&&+&currentTagID);
count&=&1;
if&(tagReadCount.containsKey(currentTagID))&{
count&=&Integer.parseInt(tagReadCount.get(currentTagID).toString())&+&1;
tagReadCount.put(currentTagID,&count);
String&currentDate&=&new&SimpleDateFormat(&yyyy-MM-dd&HH:mm:ss&).format(new&Date());
if&(!tagList.containsKey(currentTagID))&{
tagList.put(currentTagID,&tagList.size()&+&1);
displayInfo.append(&&count:&&+&count);
if&(tagInfoList.getItemCount()&==&0)&{
showTagInfo(&Time:&&+&currentDate);
clearTagInfo(0);
showTagInfo(&Time:&&+&currentDate,&0);
showTagInfo(displayInfo.toString());
clearTagInfo(0);
showTagInfo(&Time:&&+&currentDate,&0);
int&index&=&Integer.parseInt(tagList.get(currentTagID).toString());
tagInfoList.remove(index);
displayInfo.append(&&count:&&+&count);
showTagInfo(displayInfo.toString(),&index);
if&(flagText.getText().length()&==&1)&{//&flag补0
flagText.setText(&0&&+&flagText.getText());
flagVal&=&Integer.valueOf(flagText.getText(),&16);
//&StayQuite(sendval,retval,flag,CurrUID.c_str(),nBytesRead);
showOperateInfo(new&String(byteArrayTag));
returnNo&=&JISO15693.StayQuite(sendval,&retval,&flagVal,&byteArrayTag,&nBytesRead);
send&=&getCommandStr(sendval);
rev&=&getCommandStr(retval);
//&System.out.println(&读卡返回值:&&+returnNo&+send+&:&+rev);
showOperateInfo(send);
if&(rev&==&&&)&{
showOperateInfo(&No&Reply&);
showOperateInfo(rev);
if&(flagText.getText().length()&==&1)&{//&flag补0
flagText.setText(&0&&+&flagText.getText());
flagVal&=&Integer.valueOf(flagText.getText(),&16);
//&StayQuite(sendval,retval,flag,CurrUID.c_str(),nBytesRead);
returnNo&=&JISO15693.Select(sendval,&retval,&byteArrayTag,&flagVal,&nBytesRead);
send&=&getCommandStr(sendval);
rev&=&getCommandStr(retval);
//&System.out.println(&读卡返回值:&&+returnNo&+send+&:&+rev);
showOperateInfo(send);
if&(rev&==&&&)&{
showOperateInfo(&No&Reply&);
&&&&&&&clearTagDetailInfo();
&&&&&&&if(rev.substring(rev.length()-7,rev.length()-5)==&00&){
&&&&&&&&&&&showTagDetail(&Select&Success!&);
&&&&&&&}else{
&&&&&&&showTagDetail(&Select&Faild!&);
showOperateInfo(rev);
if&(flagText.getText().length()&==&1)&{//&flag补0
flagText.setText(&0&&+&flagText.getText());
flagVal&=&Integer.valueOf(flagText.getText(),&16);
//&StayQuite(sendval,retval,flag,CurrUID.c_str(),nBytesRead);
returnNo&=&JISO15693.ResetToReady(sendval,&retval,&byteArrayTag,&flagVal,&nBytesRead);
send&=&getCommandStr(sendval);
rev&=&getCommandStr(retval);
//&System.out.println(&读卡返回值:&&+returnNo&+send+&:&+rev);
showOperateInfo(send);
if&(rev&==&&&)&{
showOperateInfo(&No&Reply&);
&&&&&&&clearTagDetailInfo();
&&&&&&&if(rev.substring(rev.length()-7,rev.length()-5)==&00&){
&&&&&&&&&&&showTagDetail(&Reset&Success!&);
&&&&&&&}else{
&&&&&&&showTagDetail(&Reset&Faild!&);
showOperateInfo(rev);
if&(flagText.getText().length()&==&1)&{//&flag补0
flagText.setText(&0&&+&flagText.getText());
flagVal&=&Integer.valueOf(flagText.getText(),&16);
if&(aFIText.getText().length()&==&1)&{//&AFI补0
aFIText.setText(&0&&+&aFIText.getText());
aFIVal&=&Integer.valueOf(aFIText.getText(),&16);
//&StayQuite(sendval,retval,flag,CurrUID.c_str(),nBytesRead);
returnNo&=&JISO15693.WriteAFI(sendval,&retval,&aFIVal,&flagVal,&byteArrayTag,&nBytesRead);
send&=&getCommandStr(sendval);
rev&=&getCommandStr(retval);
//&System.out.println(&读卡返回值:&&+returnNo&+send+&:&+rev);
showOperateInfo(send);
if&(rev&==&&&)&{
showOperateInfo(&No&Reply&);
&&&&&&&clearTagDetailInfo();
&&&&&&&if(rev.substring(rev.length()-7,rev.length()-5)==&00&){
&&&&&&&&&&&showTagDetail(&Write&AFI&Success!&);
&&&&&&&}else{
&&&&&&&showTagDetail(&Write&AFI&Faild!&);
showOperateInfo(rev);
if&(flagText.getText().length()&==&1)&{//&flag补0
flagText.setText(&0&&+&flagText.getText());
flagVal&=&Integer.valueOf(flagText.getText(),&16);
//&StayQuite(sendval,retval,flag,CurrUID.c_str(),nBytesRead);
returnNo&=&JISO15693.LockAFI(sendval,&retval,&flagVal,&byteArrayTag,&nBytesRead);
send&=&getCommandStr(sendval);
rev&=&getCommandStr(retval);
//&System.out.println(&读卡返回值:&&+returnNo&+send+&:&+rev);
showOperateInfo(send);
if&(rev&==&&&)&{
showOperateInfo(&No&Reply&);
&&&&&&&clearTagDetailInfo();
&&&&&&&if(rev.substring(rev.length()-7,rev.length()-5)==&00&){
&&&&&&&&&&&showTagDetail(&Lock&AFI&Success!&);
&&&&&&&}else{
&&&&&&&showTagDetail(&Lock&AFI&Faild!&);
showOperateInfo(rev);
clearTagDetailInfo();
if&(flagText.getText().length()&==&1)&{//&flag补0
flagText.setText(&0&&+&flagText.getText());
flagVal&=&Integer.valueOf(flagText.getText(),&16);
if&(pageBlkAddrText.getText().length()&==&1)&{//&AFI补0
pageBlkAddrText.setText(&0&&+&pageBlkAddrText.getText());
nblock&=&Integer.valueOf(pageBlkAddrText.getText(),&16);
//&int&_stdcall&ReadSingleBlock(BYTE&sendval[],BYTE&retval[],int
//&writeSingleText1
returnNo&=&JISO15693.ReadSingleBlock(sendval,&retval,&nblock,&flagVal,&byteArrayTag,&nBytesRead);
send&=&getCommandStr(sendval);
rev&=&getCommandStr(retval);
//&System.out.println(&读卡返回值:&&+returnNo&+send+&:&+rev);
showOperateInfo(send);
if&(rev&==&&&)&{
showOperateInfo(&No&Reply&);
showOperateInfo(rev);
if(rev.length()&23){
showTagDetail(&Read&Single&Block&Error!&);
for&(int&i&=&0;&i&&&8;&i&+=&2)&{
revBlockVal.append((char)retval[11&+&i]);
revBlockVal.append((char)retval[11&+&i&+&1]);
revBlockVal.append('&');
showTagDetail(revBlockVal.toString());
clearTagDetailInfo();
if&(flagText.getText().length()&==&1)&{//&flag补0
flagText.setText(&0&&+&flagText.getText());
flagVal&=&Integer.valueOf(flagText.getText(),&16);
if&(pageBlkAddrText.getText().length()&==&1)&{//&blkAddr补0
pageBlkAddrText.setText(&0&&+&pageBlkAddrText.getText());
nblock&=&Integer.valueOf(pageBlkAddrText.getText(),&16);
if&(writeSingleText1.getText().length()&==&1)&{//&writeSingleText1补0
writeSingleText1.setText(&0&&+&writeSingleText1.getText());
if&(writeSingleText2.getText().length()&==&1)&{//&writeSingleText2补0
writeSingleText2.setText(&0&&+&writeSingleText2.getText());
if&(writeSingleText3.getText().length()&==&1)&{//&writeSingleText3补0
writeSingleText3.setText(&0&&+&writeSingleText3.getText());
if&(writeSingleText4.getText().length()&==&1)&{//&writeSingleText4补0
writeSingleText4.setText(&0&&+&writeSingleText4.getText());
sendBlockVal=new&byte[4];
sendBlockVal[0]=(byte)Integer.parseInt(writeSingleText1.getText(),16);
sendBlockVal[1]=(byte)Integer.parseInt(writeSingleText2.getText(),16);
sendBlockVal[2]=(byte)Integer.parseInt(writeSingleText3.getText(),16);
sendBlockVal[3]=(byte)Integer.parseInt(writeSingleText4.getText(),16);
//&IntToHex(1,1);
//&HexToInt(1);
returnNo&=&JISO15693.WriteSingleBlock(sendval,&retval,&nblock,&sendBlockVal,&byteArrayTag,&flagVal,&nBytesRead);
send&=&getCommandStr(sendval);
rev&=&getCommandStr(retval);
showOperateInfo(send);
if&(rev&==&&&)&{
showOperateInfo(&No&Reply&);
showOperateInfo(rev);
//&查询是否写入成功
//&BYTE&send[200];//发送命令字符串
//&BYTE&ret[2000];//返回值
returnNo&=&JISO15693.ReadSingleBlock(sendval,&retval,&nblock,&35,&byteArrayTag,&nBytesRead);
while&(++count&&=&3)&{
rev&=&getCommandStr(retval);
if&(rev.length()&==&27&||&rev.length()&==&25)&{
returnNo&=&JISO15693.ReadSingleBlock(sendval,&retval,&nblock,&35,&byteArrayTag,&nBytesRead);
//&if(temp3.Length()!=27){showOperateInfo(temp3.Length());}
StringBuffer&sendStr=new&StringBuffer();
sendStr.append(writeSingleText1.getText());
sendStr.append(writeSingleText2.getText());
sendStr.append(writeSingleText3.getText());
sendStr.append(writeSingleText4.getText());
for&(int&i&=&0;&i&&&8;&i&+=&2)&{
revBlockVal.append((char)retval[11&+&i]);
revBlockVal.append((char)retval[11&+&i&+&1]);
if&(revBlockVal.toString().equals(sendStr.toString()))&{
showTagDetail(&write&success&);
//&showOperateInfo(temp1);
//&showOperateInfo(temp3);
//&showOperateInfo(temp1==temp3?&true&:&false&);
showTagDetail(&write&error&);
if&(flagText.getText().length()&==&1)&{//&flag补0
flagText.setText(&0&&+&flagText.getText());
flagVal&=&Integer.valueOf(flagText.getText(),&16);
if&(pageBlkAddrText.getText().length()&==&1)&{//&AFI补0
pageBlkAddrText.setText(&0&&+&pageBlkAddrText.getText());
nblock&=&Integer.valueOf(pageBlkAddrText.getText(),&16);
returnNo&=&JISO15693.LockBlock(sendval,&retval,&flagVal,&nblock,&byteArrayTag,&nBytesRead);
send&=&getCommandStr(sendval);
rev&=&getCommandStr(retval);
//&System.out.println(&读卡返回值:&&+returnNo&+send+&:&+rev);
showOperateInfo(send);
if&(rev&==&&&)&{
showOperateInfo(&No&Reply&);
&&&&&&&clearTagDetailInfo();
&&&&&&&if(rev.substring(rev.length()-7,rev.length()-5)==&00&){
&&&&&&&&&&&showTagDetail(&Lock&Block&Success!&);
&&&&&&&}else{
&&&&&&&showTagDetail(&Lock&Block&Faild!&);
showOperateInfo(rev);
if&(flagText.getText().length()&==&1)&{//&flag补0
flagText.setText(&0&&+&flagText.getText());
flagVal&=&Integer.valueOf(flagText.getText(),&16);
if&(firstBlkAddrText.getText().length()&==&1)&{//&firstBlkAddrText补0
firstBlkAddrText.setText(&0&&+&firstBlkAddrText.getText());
if&(noOfBlocksText.getText().length()&==&1)&{//&noOfBlocksText补0
noOfBlocksText.setText(&0&&+&noOfBlocksText.getText());
//&if&(curBlockDataText.getText().length()&==&1)&{//
//&curBlockDataText补0
//&curBlockDataText.setText(&0&&+&curBlockDataText.getText());
clearTagDetailInfo();
returnNo&=&JISO15693.ReadMultiBlock(sendval,&retval,&byteArrayTag,&Integer.parseInt(firstBlkAddrText.getText(),&16),&Integer
.parseInt(noOfBlocksText.getText(),&16),&flagVal,&nBytesRead);
send&=&getCommandStr(sendval);
rev&=&getCommandStr(retval);
showOperateInfo(send);
if&(rev&==&&&)&{
showOperateInfo(&No&Reply&);
showOperateInfo(rev);
if(rev.length()&23){
showTagDetail(&Read&Multi&Block&Error!&);
for&(int&i&=&0;&i&&&8&*&(Integer.parseInt(noOfBlocksText.getText(),&16)+1);&i&+=&2)&{
revBlockVal.append((char)retval[11&+&i]);
revBlockVal.append((char)retval[11&+&i&+&1]);
revBlockVal.append('&');
//showOperateInfo(revBlockVal.toString());
//showOperateInfo(&revBlockVal.length()+&&);
for&(int&i&=&0;&i&&&revBlockVal.length();&i&+=&12)&{
showTagDetail(revBlockVal.substring(i,&12&+&i));
InputBlockData&aa&=&new&InputBlockData(shell,&SWT.LEFT);
aa.open(currentTagID);
if&(InputBlockData.cancel)&{
InputBlockData.cancel&=&
java.util.List&DataCollection&&blockData&=&aa.getBlockData();
if&(blockData&==&null&||&blockData.isEmpty())&{
if&(flagText.getText().length()&==&1)&{//&flag补0
flagText.setText(&0&&+&flagText.getText());
flagVal&=&Integer.valueOf(flagText.getText(),&16);
//&添加起始块
int&firstBlock&=&Integer.parseInt(blockData.get(0).getHeadName().substring(5,&blockData.get(0).getHeadName().length()),&16);
//&if(firstBlock.length()==1){
//&defaultValue.append(&0&);
//&sendBlockVal.append(firstBlock);
//&//添加块数量
//String&blockCount&=&Integer.toHexString(blockData.size());
//&if(blockCount.length()==1){
//&sendBlockVal.append(&0&);
//&sendBlockVal.append(blockCount);
//&length+=2;
//&添加写入数据
sendBlockVal=new&byte[4*&blockData.size()];
for&(int&i&=&0;&i&&&blockData.size();&i+=4)&{
DataCollection&data&=&blockData.get(i);
sendBlockVal[i]=(byte)Integer.parseInt(data.getBlock1(),16);
sendBlockVal[i+1]=(byte)Integer.parseInt(data.getBlock2(),16);
sendBlockVal[i+2]=(byte)Integer.parseInt(data.getBlock3(),16);
sendBlockVal[i+3]=(byte)Integer.parseInt(data.getBlock4(),16);
returnNo&=&JISO15693.WriteMultiBlock(sendval,&retval,&byteArrayTag,&sendBlockVal,&firstBlock,&blockData.size(),
flagVal,&nBytesRead);
send&=&getCommandStr(sendval);
rev&=&getCommandStr(retval);
showOperateInfo(send);
if&(rev&==&&&)&{
showOperateInfo(&No&Reply&);
&&&&&&&clearTagDetailInfo();
&&&&&&&if(rev.substring(rev.length()-7,rev.length()-5)==&00&){
&&&&&&&&&&&showTagDetail(&Write&Multi&Block&Success!&);
&&&&&&&}else{
&&&&&&&showTagDetail(&Write&Multi&Block&Faild!&);
showOperateInfo(rev);
//showOperateInfo(blockData.size()+&&);
//showOperateInfo(new&String(sendBlockVal));
if&(flagText.getText().length()&==&1)&{//&flag补0
flagText.setText(&0&&+&flagText.getText());
flagVal&=&Integer.valueOf(flagText.getText(),&16);
if&(writeDSFIDText.getText().length()&==&1)&{//&AFI补0
writeDSFIDText.setText(&0&&+&writeDSFIDText.getText());
int&dSFIDVal&=&Integer.valueOf(writeDSFIDText.getText(),&16);
//&StayQuite(sendval,retval,flag,CurrUID.c_str(),nBytesRead);
returnNo&=&JISO15693.WriteDSFID(sendval,&retval,flagVal,&dSFIDVal,&&byteArrayTag,&nBytesRead);
send&=&getCommandStr(sendval);
rev&=&getCommandStr(retval);
//&System.out.println(&读卡返回值:&&+returnNo&+send+&:&+rev);
showOperateInfo(send);
if&(rev&==&&&)&{
showOperateInfo(&No&Reply&);
&&&&&&&clearTagDetailInfo();
&&&&&&&if(rev.substring(rev.length()-7,rev.length()-5)==&00&){
&&&&&&&&&&&showTagDetail(&Write&DSFID&Success!&);
&&&&&&&}else{
&&&&&&&showTagDetail(&Write&DSFID&Faild!&);
showOperateInfo(rev);
//int&_stdcall&LockDSFID(BYTE&sendval[],BYTE&retval[],int&flag,BYTE&UID[],DWORD&&nBytestoRead)
if&(flagText.getText().length()&==&1)&{//&flag补0
flagText.setText(&0&&+&flagText.getText());
flagVal&=&Integer.valueOf(flagText.getText(),&16);
returnNo&=&JISO15693.LockDSFID(sendval,&retval,&flagVal,&byteArrayTag,&nBytesRead);
send&=&getCommandStr(sendval);
rev&=&getCommandStr(retval);
showOperateInfo(send);
if&(rev&==&&&)&{
showOperateInfo(&No&Reply&);
&&&&&&&clearTagDetailInfo();
&&&&&&&if(rev.substring(rev.length()-7,rev.length()-5)==&00&){
&&&&&&&&&&&showTagDetail(&Lock&DSFID&Success!&);
&&&&&&&}else{
&&&&&&&showTagDetail(&Lock&DSFID&Faild!&);
showOperateInfo(rev);
&clearTagDetailInfo();
if&(flagText.getText().length()&==&1)&{//&flag补0
flagText.setText(&0&&+&flagText.getText());
flagVal&=&Integer.valueOf(flagText.getText(),&16);
returnNo&=&JISO15693.GetSysInfo(sendval,retval,flagVal,byteArrayTag,nBytesRead);
send&=&getCommandStr(sendval);
rev&=&getCommandStr(retval);
showOperateInfo(send);
if&(rev&==&&&)&{
showOperateInfo(&No&Reply&);
showOperateInfo(rev);
&if(retval[44]!='n'){
&showTagDetail(&error&);
&for(int&i=29;i&29+10;i+=2){
&revBlockVal.append((char)retval[i]);
&revBlockVal.append((char)retval[i+1]);
&revBlockVal.append('&');
&showTagDetail(&DSFID:&+revBlockVal.substring(0,3)+&AFI:&+revBlockVal.substring(3,6));
&showTagDetail(&VICC&Memory&Size:&+revBlockVal.substring(6,12));
&showTagDetail(&IC&Refrence:&+revBlockVal.substring(12,15));
&clearTagDetailInfo();
if&(flagText.getText().length()&==&1)&{//&flag补0
flagText.setText(&0&&+&flagText.getText());
flagVal&=&Integer.valueOf(flagText.getText(),&16);
&//int&_stdcall&GetMultiBlockSecirotuStatus(BYTE&sendval[],BYTEretval[],intflag,int&nStartBlock,int&nLength,BYTE&UID[],DWORD&&nBytestoRead)
&returnNo&=&JISO15693.GetMultiBlockSecirotuStatus(sendval,retval,flagVal,Integer.parseInt(staBlkAddrText.getText(),16),Integer.parseInt(blkCntText.getText(),16),byteArrayTag,nBytesRead);
&for(int&i=0;i&2*(2+Integer.parseInt(blkCntText.getText(),16));i+=2){
&revBlockVal.append((char)retval[7+i]);
&revBlockVal.append((char)retval[7+i+1]);
&revBlockVal.append('&');
&send&=&getCommandStr(sendval);
rev&=&getCommandStr(retval);
showOperateInfo(send);
if&(rev&==&&&)&{
showOperateInfo(&No&Reply&);
showOperateInfo(rev);
&showTagDetail(revBlockVal.toString());
}}catch(Exception&e){
logger.error(e);
public&static&String[]&toTagArray(String&tags)&{
if&(tags&==&null&||&tags.trim().equals(&&)&||&tags.length()&%&20&!=&0)&{
String[]&tagList&=&new&String[tags.length()&/&20];
for&(int&i&=&0,&j&=&0;&i&&&tags.length();&i&+=&20,&j++)&{
tagList[j]&=&tags.substring(i,&i&+&16);
return&tagL
public&static&String[]&toBlockArray(String&blocks)&{
if&(blocks&==&null&||&blocks.trim().equals(&&)&||&(blocks.length()&-&2)&%&8&!=&0)&{
String[]&blockList&=&new&String[(blocks.length()&-&2)&/&8];
for&(int&i&=&0,&j&=&0;&i&&&blocks.length()&-&2;&i&+=&8,&j++)&{
blockList[j]&=&addSpace(blocks.substring(i,&i&+&8));
return&blockL
public&static&String&addSpace(String&str)&{
StringBuffer&newStr&=&new&StringBuffer();
char[]&charValues&=&str.toCharArray();
for&(int&i&=&0;&i&&&str.length();&i&+=&2)&{
newStr.append(charValues[i]);
newStr.append(charValues[i&+&1]);
newStr.append('&');
return&newStr.toString();
//&*&create&a&new&Thread&class
//&private&static&final&class&AutoRunThread&extends&Thread&{
//&public&void&run(MainFrame&frame)&{
//&*&call&Swt&controls&must&use&Dispaly.syncExec&or&Display.asyncExec
//&if&(!Maindisplay.isDisposed())&{
//&Maindisplay.syncExec(new&Runnable()&{//&这段代码很重要
//&public&void&run()&{
//&while&(autoRun)&{
//&&&&&&&&&&&&&&&&&&&&
//&new&MainFrame().run();
//&Sleep.toSleep(1500);
//&}&catch&(InterruptedException&e)&{
//&logger.error(&while&wait&return&value&faild...&
//&+&e.getMessage());
//&public&void&run(String&str)&{
//&sc.write(str);
//&String&get&=&sc.readNextLine();
//&operateInfoList.add(get);
//&(&get:&&&+&get);
public&String&getError(int&value)&{
switch&(value)&{
case&0x00:
return&&Error&free&;
case&0x01:
return&&CRC&error&;
//&case&0x02:&return&&Data&Length&error&;
//&case&0x03:&return&&No&end&of&frame&;
//&case&0x04:&return&&No&start&of&frame&;
//&case&0x05:&return&&Collision&;
case&0X0A:
return&&Authentication&step&1&failed&;
case&0x0B:
return&&Authentication&step&2&failed&;
case&0x0C:
return&&Error&reading&multiple&pages&;
case&0x0D:
return&&Error&writing&multiple&pages&;
case&0x0F:
return&&Unknown&error&;
case&0x10:
return&&Block&not&available&;
case&0x12:
return&&Block&already&locked&;
case&0x16:
return&&Block&not&successfully&put&;
case&0x18:
return&&Block&not&successfully&locked&;
case&0x1F:
return&&Command&not&allowed&;
case&0x20:
return&&Command&not&supported&by&Reader&;
case&0x21:
return&&Error&R/W&multiple&pages.&Too&many&pages&;
case&0x26:
return&&RTC&setting&failure&;
case&0x27:
return&&Index&setting&failure&;
case&0x30:
return&&Invalid&key&;
case&0x41:
return&&No&start&of&frame&;
case&0x42:
return&&CRC&error&;
case&0x43:
return&&Collision&;
case&0x44:
return&&No&end&of&frame&;
case&0x53:
return&&Serial&Number&already&locked&;
case&0x54:
return&&Serial&Number&not&successfully&locked&;
case&0x55:
return&&Serial&Number&write&failure&;
case&0xA1:
return&&Wrong&address&;
case&0xA2:
return&&Block(s)&is&locked&;
case&0xA3:
return&&Hardware&type&is&not&compatible&;
case&0xA4:
return&&Boot&loader&ready.&Please&run&download&again&;
return&&&;
&*&显示操作信息
&*&@param&message
public&static&void&showOperateInfo(String&message)&{
operateInfoList.add(message);
operateInfoList.setSelection(operateInfoList.getItemCount()-1);
&*&显示读到的标签信息
&*&@param&message
public&static&void&showTagInfo(String&message)&{
tagInfoList.add(message);
&*&显示读到的标签信息到指定行
&*&@param&message
&*&@param&row
public&static&void&showTagInfo(String&message,&int&row)&{
tagInfoList.add(message,&row);
&*&显示标签相关的详细信息
&*&@param&message
public&static&void&showTagDetail(String&message)&{
tagDetailList.add(message);
&*&清除操作信息
public&static&void&clearOperateInfo()&{
operateInfoList.removeAll();
&*&清除读到的标签信息
public&static&void&clearTagInfo()&{
tagInfoList.removeAll();
&*&清除指定行的标签信息
&*&@param&row
&*&&&&&&&&&&&&指定行
public&static&void&clearTagInfo(int&row)&{
tagInfoList.remove(row);
&*&清除标签相关的详细信息
public&static&void&clearTagDetailInfo()&{
tagDetailList.removeAll();
&*&从完成的字符串中提取命令字符串,(除去原始串中包含乱码什么的)
&*&@param&fulCmdStr
&*&@return
public&static&String&getCommandStr(byte[]&fulCmdStr)&{
String&cmdStr&=&new&String(fulCmdStr);
if&(cmdStr.indexOf(':')==0&&cmdStr.indexOf('n')&!=&-1)&{//&n命令结束符,取命令字符串到n前为止
cmdStr&=&cmdStr.substring(0,&cmdStr.indexOf('n'));
//showOperateInfo(&2&+cmdStr);
cmdStr&=&&&;
return&cmdS
CopyRight & 2008- All Rights reserved. 苏ICP备
号 京公网安备:95}

我要回帖

更多关于 多个rfid标签同时读取 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信