rfid采用tcp模拟
parent
2293fb5f70
commit
f5803e276f
@ -1,9 +1,18 @@
|
||||
package com.zhehekeji.web.entity;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Set;
|
||||
|
||||
@Data
|
||||
public class CheckInfo {
|
||||
private String trayCode;
|
||||
private String wmsTrayCode;
|
||||
private String[] wmsTrayCodes;
|
||||
private String orderNum;
|
||||
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime exportTime;
|
||||
private int checkRlt;
|
||||
}
|
||||
|
||||
@ -0,0 +1,19 @@
|
||||
package com.zhehekeji.web.service.RFID;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class RFIDData {
|
||||
|
||||
private String pc;
|
||||
private String epc;
|
||||
private String crc;
|
||||
private String tid;
|
||||
|
||||
public RFIDData(String pc, String epc, String crc, String tid) {
|
||||
this.pc = pc;
|
||||
this.epc = epc;
|
||||
this.crc = crc;
|
||||
this.tid = tid;
|
||||
}
|
||||
}
|
||||
@ -1,186 +0,0 @@
|
||||
package com.zhehekeji.web.service.RFID;
|
||||
|
||||
import com.payne.connect.net.NetworkHandle;
|
||||
import com.payne.reader.Reader;
|
||||
import com.payne.reader.base.Consumer;
|
||||
import com.payne.reader.bean.config.AntennaCount;
|
||||
import com.payne.reader.bean.receive.*;
|
||||
import com.payne.reader.bean.send.FastSwitchFourAntennaInventory;
|
||||
import com.payne.reader.bean.send.InventoryConfig;
|
||||
import com.payne.reader.process.ReaderImpl;
|
||||
import com.payne.reader.util.ArrayUtils;
|
||||
|
||||
import com.zhehekeji.web.util.ToolUtil;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
public class RFIDSocket {
|
||||
private String ip;
|
||||
private int port;
|
||||
private boolean running;
|
||||
Reader mReader;
|
||||
|
||||
private Set<String> tags = new HashSet<>();
|
||||
|
||||
private Map<String, Integer> tagsCount = new ConcurrentHashMap<>();
|
||||
|
||||
public static void main(String[] args) {
|
||||
String tagStr = "363000145224505289907900";
|
||||
if(tagStr.startsWith("363000") &&tagStr.endsWith("00")){
|
||||
tagStr = tagStr.substring(0, tagStr.length() - 2);
|
||||
}
|
||||
System.out.println(tagStr);
|
||||
}
|
||||
public Set<String> getTags() {
|
||||
return tags;
|
||||
}
|
||||
public RFIDSocket(String ip, Integer port) {
|
||||
this.ip = ip;
|
||||
this.port = port;
|
||||
|
||||
NetworkHandle handle = new NetworkHandle(ip, (port));
|
||||
mReader = ReaderImpl.create(AntennaCount.FOUR_CHANNELS);
|
||||
|
||||
boolean linkSuccess =false;
|
||||
try {
|
||||
linkSuccess = mReader.connect(handle);
|
||||
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (linkSuccess) {
|
||||
System.out.println("reader1 connect success");
|
||||
} else {
|
||||
throw new RuntimeException("reader1 connect fail");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**识别
|
||||
*
|
||||
* @param direction 左右
|
||||
* @param foreach 是否循环切换天线
|
||||
*/
|
||||
public void startCheck(Integer direction,boolean foreach) {
|
||||
// Reader mReader = ReaderImpl.create(AntennaCount.SIXTEEN_CHANNELS);
|
||||
// Reader mReader = ReaderImpl.create(AntennaCount.EIGHT_CHANNELS);
|
||||
running = true;
|
||||
Thread thread = new Thread(new Runnable() {
|
||||
public void run() {
|
||||
mReader.setOriginalDataCallback(
|
||||
new Consumer<byte[]>() {
|
||||
@Override
|
||||
public void accept(byte[] onSend) throws Exception {
|
||||
//System.out.println("---reader 1 send :" + ArrayUtils.bytesToHexString(onSend, 0, onSend.length));
|
||||
}
|
||||
},
|
||||
new Consumer<byte[]>() {
|
||||
@Override
|
||||
public void accept(byte[] onReceive) throws Exception {
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
FastSwitchFourAntennaInventory inventory = new FastSwitchFourAntennaInventory.Builder().build();
|
||||
InventoryConfig config = new InventoryConfig.Builder()
|
||||
.setInventory(inventory)
|
||||
.setOnInventoryTagSuccess(new Consumer<InventoryTag>() {
|
||||
|
||||
@Override
|
||||
public void accept(InventoryTag tag) throws Exception {
|
||||
System.out.println("reader1 inventory tag :" + tag.getEpc());
|
||||
String tagStr = tag.getEpc().replace(" ","");
|
||||
tagStr = tagStr.substring(tagStr.length() - 8);
|
||||
tags.add(tagStr);
|
||||
if (ToolUtil.isNotEmpty(tagsCount.get(tagStr))) {
|
||||
tagsCount.put(tagStr, tagsCount.get(tagStr) + 1);
|
||||
} else {
|
||||
tagsCount.put(tagStr, 1);
|
||||
}
|
||||
}
|
||||
})
|
||||
.setOnInventoryTagEndSuccess(new Consumer<InventoryTagEnd>() {
|
||||
|
||||
@Override
|
||||
public void accept(InventoryTagEnd arg0) throws Exception {
|
||||
// System.out.println("reader1 InventoryTagEnd");
|
||||
}
|
||||
})
|
||||
.setOnFailure(new Consumer<InventoryFailure>() {
|
||||
|
||||
@Override
|
||||
public void accept(InventoryFailure failure) throws Exception {
|
||||
System.out.println("reader1 inventory fail :" + (failure.getErrorCode() & 0xFF));
|
||||
}
|
||||
})
|
||||
.build();
|
||||
mReader.setInventoryConfig(config);
|
||||
mReader.startInventory(true);
|
||||
|
||||
mReader.setWorkAntenna(direction,
|
||||
new Consumer<Success>() {
|
||||
@Override
|
||||
public void accept(Success success) throws Exception {
|
||||
//切换天线
|
||||
//处理成功
|
||||
}
|
||||
}, new Consumer<Failure>() {
|
||||
@Override
|
||||
public void accept(Failure failure) throws Exception {
|
||||
//处理失败情况
|
||||
}
|
||||
}
|
||||
);
|
||||
byte[] bytes = new byte[1];
|
||||
bytes[0] = 0x01;
|
||||
while (running) {
|
||||
try {
|
||||
bytes[0] = (byte) (bytes[0] == 0x01 ? 0x00 : 0x01);
|
||||
Thread.sleep(1000);
|
||||
if(foreach){
|
||||
mReader.setWorkAntenna(bytes[0],(v)->{
|
||||
System.out.println("reader1 setWorkAntenna success");
|
||||
},(v)->{
|
||||
System.out.println("reader1 setWorkAntenna fail");
|
||||
});
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
stopCheck();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
thread.start();
|
||||
|
||||
}
|
||||
|
||||
public void stopCheck() {
|
||||
running = false;
|
||||
System.out.println("reader1 stop");
|
||||
if (mReader != null) {
|
||||
mReader.stopInventory();
|
||||
mReader.disconnect();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public String getTag() {
|
||||
if (ToolUtil.isNotEmpty(tagsCount)) {
|
||||
int i = 0;
|
||||
String tag = "";
|
||||
for (String t : tagsCount.keySet()) {
|
||||
if (i < tagsCount.get(t)) {
|
||||
tag = t;
|
||||
i = tagsCount.get(t);
|
||||
}
|
||||
}
|
||||
return tag;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue