rfid新款扫描方式

nanjing-yancao-rfid-wht
LAPTOP-S9HJSOEB\昊天 3 years ago
parent a5af53f601
commit 2e67f1e5df

@ -75,7 +75,13 @@
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/libs/jna.jar</systemPath>
</dependency>
<dependency>
<groupId>com</groupId>
<artifactId>javaRFID-helloworld</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/libs/javaRFID-helloworld.jar</systemPath>
</dependency>
<dependency>
<groupId>com.sun.jna.examples</groupId>
<artifactId>test</artifactId>

@ -123,6 +123,7 @@ public class ConfigProperties {
@Data
public static class ScanCodeMode{
private Integer tray;
private Integer test = 1;
private Integer goods;
private int [] goodsCodeTypes;
private int [] trayCodeTypes;

@ -15,6 +15,10 @@ public class CheckLog {
private Integer streetId;
@TableField(exist = false)
private String streetName;
private Integer direction;
private Integer side;

@ -6,6 +6,7 @@ import com.github.pagehelper.PageInfo;
import com.zhehekeji.web.entity.CheckLog;
import com.zhehekeji.web.mapper.CheckLogMapper;
import com.zhehekeji.web.pojo.stock.CheckLogSearch;
import com.zhehekeji.web.pojo.street.StreetVO;
import com.zhehekeji.web.util.ToolUtil;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
@ -18,6 +19,9 @@ public class CheckLogService {
@Resource
private CheckLogMapper checkLogMapper;
@Resource
private StreetService streetService;
public PageInfo<CheckLog> list(CheckLogSearch search){
@ -46,7 +50,15 @@ public class CheckLogService {
}
wrapper.orderByDesc("create_time");
List<CheckLog>stockChecks = checkLogMapper.selectList(wrapper);
List<StreetVO> streetVOS = streetService.list();
for (CheckLog checkLog : stockChecks){
for (StreetVO streetVO : streetVOS){
if(streetVO.getId().equals(checkLog.getStreetId())){
checkLog.setStreetName(streetVO.getName());
break;
}
}
}
return new PageInfo<>(stockChecks);
}
}

@ -122,9 +122,10 @@ public class OrderService {
}
String leftRightS = leftRight == 1 ? "左" : "右";
//里外 现在无法判断 这个项目全是 里
String location = "%s-里-%s列%s行";
return String.format(location, leftRightS, column, row);
String inOut = 2 == orderVO.getInOut2() ?"深":"浅";
//
String location = "%s-%s-%s列%s行";
return String.format(location, leftRightS, inOut,column, row);
}
}
return null;

@ -56,6 +56,10 @@ public class PlcService {
@Resource
private OrderMapper orderMapper;
@Resource
private CameraMapper cameraMapper;
@Resource
private StockMapper stockMapper;
@Resource
@ -234,7 +238,7 @@ public class PlcService {
public void action(PlcCmdInfo plcCmdInfo, Integer times, String code) throws InterruptedException {
Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId());
if (street == null) {
log.error("street not found ,plcId :{}", plcCmdInfo.getPlcId());
log.error("street not found ,plcId :{},taskId:{}", plcCmdInfo.getPlcId(), plcCmdInfo.getOrderNum());
return;
}
OrderInfo orderInfo = new OrderInfo(street, plcCmdInfo, times, code);
@ -248,8 +252,8 @@ public class PlcService {
* camera2
*
*/
Integer cameraId = getCameraByPlcCmd(plcCmdInfo, orderInfo.getLeftRight());
gyrateCameraByCode(cameraId, orderInfo.getCmdCode());
Integer cameraId = getCameraByPlcCmdAction(plcCmdInfo, orderInfo.getCmdCode());
gyrateCameraByCode(cameraId, orderInfo.getCmdCode(), orderInfo.getOrderNum());
if (needCapture) {
Boolean delay = true;
Integer row = 0;
@ -303,7 +307,19 @@ public class PlcService {
gyrateCameraByCodeTimeLater(street.getCamera1Id(), "C5", configProperties.getCameraConfig().getC2OutDelayCaptureTime() + 500);
}
}
threadPoolExecutor.execute(()->{
rfidLiveService.rfidOrderStock(plcCmdInfo, times, code);
});
}
private Integer getCameraByPlcCmdAction(PlcCmdInfo plcCmdInfo, String code) {
Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId());
//只进行相机方向判断左边
if (code.contains("L")) {
return street.getCamera1Id();
} else {
return street.getCamera2Id();
}
}
public void gyrateCamera(PlcCmdInfo plcCmdInfo, String code) {
@ -370,6 +386,16 @@ public class PlcService {
if (ptzId != null && ptzId >= 0) {
log.info("gyrate camera by code, code{},cameraId:{},ptId:{}", code, cameraId, ptzId);
cameraControlModule.toPtz(ptzId, cameraId);
} else {
log.info("ptz not found , code{},cameraId:{},ptId:{}", code, cameraId, ptzId);
log.error("ptz not found ,code{},cameraId:{}", code, cameraId);
}
}
public void gyrateCameraByCode(Integer cameraId, String code,String taskId) {
Integer ptzId = cameraService.getPtzIdByCodeAndCameraId(code, cameraId);
if (ptzId != null && ptzId >= 0) {
log.info("gyrate camera by code, code{},cameraId:{},ptId:{},taskId:{}", code, cameraId, ptzId,taskId);
cameraControlModule.toPtz(ptzId, cameraId);
} else {
log.error("ptz not found ,code{},cameraId:{}", code, cameraId);
}
@ -563,15 +589,13 @@ public class PlcService {
Integer cameraId = street.getCamera1Id() != null && street.getCamera1Id() != 0 ? street.getCamera1Id() : street.getCamera2Id();
return cameraId;
}
}
}
public Integer getCameraByPlcCmdE(PlcCmdInfo plcCmdInfo, Integer leftRight) {
Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId());
//判断单双伸 type=0 单伸 1为双伸
Integer type;
if (plcCmdInfo.getFromSeparation() == 1) {
//只进行相机方向判断左边
if (plcCmdInfo.getFromDirection() == 1) {
return street.getCamera1Id();
} else {
return street.getCamera2Id();
@ -625,6 +649,7 @@ public class PlcService {
Boolean trayCheck = Boolean.TRUE;
//如果是用扫码枪 扫 托盘码,就直接扫
//if(configProperties.getScanCodeMode().getTray() == 2){
log.info("扫码类型:"+configProperties.getScanCodeMode().getTray());
if (plcCmdInfo.getSeparation1() == 1 && configProperties.getScanCodeMode().getTray() == 2) {
//托盘使用sick扫码枪
SensorGun sensorGun = sensorService.getSensorByPlc(street.getId(), plcCmdInfo.getLeftRight1());
@ -658,7 +683,7 @@ public class PlcService {
}
} else if (configProperties.getScanCodeMode().getTray() == 3) {
} else if (configProperties.getScanCodeMode().getTray() == 3 ) {
// //RFID
// RFID rfid = rfidService.getRFIDByPlc(street.getId(),plcCmdInfo.getLeftRight1());
Set<String> tags = new HashSet<>();
@ -669,6 +694,7 @@ public class PlcService {
e.printStackTrace();
} finally {
tags = RFIDStop(plcCmdInfo);
log.info("盘点rfid扫描结果"+tags);
}
if (tags != null && tags.size() > 0 && tags.contains(wmsTrayCode)) {
@ -686,10 +712,10 @@ public class PlcService {
RfidLive rfidLive = rfidLiveService.getOne(new QueryWrapper<RfidLive>()
.eq("street_Id", street.getId())
.eq("direction", plcCmdInfo.getFromDirection())
.eq("side", plcCmdInfo.getSide1())
.eq("side", plcCmdInfo.getFromSeparation())
.eq("rfid_row", plcCmdInfo.getRow1())
.eq("rfid_column", plcCmdInfo.getRow1()));
if (ToolUtil.isNotEmpty(rfidLive) && ToolUtil.isNotEmpty(rfidLive.getRfidTrayCode()) && rfidLive.getRfidTrayCode().equals(wmsTrayCode)) {
.eq("rfid_column", plcCmdInfo.getColumn1()));
if (ToolUtil.isNotEmpty(rfidLive) && ToolUtil.isNotEmpty(rfidLive.getRfidTrayCode()) && rfidLive.getRfidTrayCode().contains(wmsTrayCode)) {
trayCode = wmsTrayCode;
trayCheck = Boolean.TRUE;
log.info("数据库查询rfid", trayCode);
@ -820,6 +846,7 @@ public class PlcService {
* @param fromOrTo
*/
public void RFIDCheck(PlcCmdInfo plcCmdInfo, boolean fromOrTo) {
log.info("开启rfid");
Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId());
if (street != null) {
//rfid不分左右rfid使用同一ip和端口依靠传递字符调整方向
@ -837,7 +864,6 @@ public class PlcService {
RFIDSocket rfidSocket = new RFIDSocket(ip, port);
log.info("rfid调用ip"+ip+";port:"+port);
rfidSocket.startCheck(direction);
rfidSocket.readData();
RFIDMap.put(streetId, rfidSocket);
}
@ -848,7 +874,7 @@ public class PlcService {
if (rfidSocket != null) {
tags = rfidSocket.getTags();
log.info("tags:{}", tags);
rfidSocket.close();
rfidSocket.stopCheck();
RFIDMap.remove(street.getId());
}
return tags;
@ -861,9 +887,9 @@ public class PlcService {
RFIDSocket rfidSocket = RFIDMap.get(street.getId());
String tags = "";
if (rfidSocket != null) {
tags = rfidSocket.getTag();
log.info("tag:{}", tags);
rfidSocket.close();
rfidSocket.stopCheck();
tags = rfidSocket.getTag();
RFIDMap.remove(street.getId());
}
return tags;

@ -1,291 +1,168 @@
package com.zhehekeji.web.service.RFID;
import com.module.interaction.RXTXListener;
import com.module.interaction.ReaderHelper;
import com.rfid.RFIDReaderHelper;
import com.rfid.ReaderConnector;
import com.rfid.rxobserver.RXObserver;
import com.rfid.rxobserver.ReaderSetting;
import com.rfid.rxobserver.bean.RXInventoryTag;
import com.rfid.bean.MessageTran;
import com.util.StringTool;
import com.zhehekeji.web.util.ToolUtil;
import io.swagger.models.auth.In;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import java.io.*;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
/**
* sick
*/
@Slf4j
public class RFIDSocket {
private Socket socket;
private OutputStream os;
private InputStream is;
private Queue<Byte> buffer;
private boolean running;
private int step;
private int length;
private String ip;
private int port;
private ReaderHelper mReaderHelper;
private ReaderConnector mReaderConnector;
private boolean running;
private int index;
private static File file;
private static FileWriter fw;
/**
* code
*/
private Set<String> tags = new HashSet<>();
private Map<String, Integer> countMap = new HashMap();
private List<Byte> byteList = new ArrayList<>(30);
private Map<String,Integer> tagsCount = new ConcurrentHashMap<>();
public Set<String> getTags(){
return tags;
}
/**
* rfidtag
* @return
*/
public String getTag(){
if(ToolUtil.isNotEmpty(countMap)){
int count = 0;
String t = "";
for (String tag : countMap.keySet()){
if(countMap.get(tag)>count){
count = countMap.get(tag);
t = tag;
}
}
return t;
}else return "";
}
public RFIDSocket(String ip,int port){
this.ip = ip;
this.port = port;
socket = new Socket();
os = null;
is = null;
try {
socket.connect(new InetSocketAddress(ip,port),3000);
os = socket.getOutputStream();
is = socket.getInputStream();
} catch (IOException e) {
log.error("RFIDSocket time out,ip:{},info:{}",ip,e);
close();
}
}
public void readData(){
running = true;
buffer = new LinkedList();
Thread thread = new Thread(new Runnable() {
@SneakyThrows
private Observer mObserver = new RXObserver() {
@Override
public void run() {
while (true){
if(!running){
System.out.println("stop");
break;
}
int i = 0;
try {
//读不到会阻塞 返回-1表示连接已断开
i = is.read();
} catch (IOException e) {
log.error("disconnect");
}
if(i == -1){
break;
}
int count = 0;
try {
count = is.available();
if(count > 0){
//把之前read的字节嫁过来
byte[]readBytes = new byte[count+1];
readBytes[0] = (byte)i;
is.read(readBytes,1,count);
for(byte b:readBytes){
buffer.offer(b);
}
}
} catch (IOException e) {
log.error("");
}
while (buffer.size()> 0){
String code = readTag();
if(code != null){
// 写入log
/*if(!tags.contains(code))
{
fw.write(code+"\n");
fw.flush();
}*/
System.out.println(code);
tags.add(code);
if(ToolUtil.isEmpty(countMap.get(code))){
countMap.put(code,1);
}else countMap.put(code,countMap.get(code) + 1);
}
}
protected void onInventoryTag(RXInventoryTag tag) {
System.out.println("EPC data:" + tag.strEPC);
}
}
});
thread.start();
@Override
protected void onInventoryTagEnd(RXInventoryTag.RXInventoryTagEnd endTag) {
System.out.println("inventory end:" + endTag.mTotalRead);
((RFIDReaderHelper) mReaderHelper).realTimeInventory((byte) 0xff,(byte)0x01);
}
private String readTag(){
String tag = null;
Byte b = buffer.poll();
if(b == null){
return tag;
}
if(step == 0){
//判断是否表示头
if(b == HEAD.HEAD){
step++;
byteList.add(b);
}
}else if(step == 1){
//读长度
length = b & 0xff;
step++;
byteList.add(b);
}else if(step == 2){
byteList.add(b);
index++;
if(index == length-1){
step++;
}
}else if(step == 3){
byteList.add(b);
byte[]bytes = new byte[byteList.size()];
for(int i = 0;i<byteList.size();i++){
bytes[i] = byteList.get(i);
@Override
protected void onExeCMDStatus(byte cmd,byte status) {
System.out.format("CDM:%s Execute status:%S\n",
String.format("%02X",cmd),String.format("%02x", status));
}
MessageTran messageTran = new MessageTran(bytes);
if(messageTran != null){
if(messageTran.getAryData().length == 9){
//只能根据长度判断返回的包是标签内容还是其他
//9个字节第一个字节是指哪个天线暂时不用管只需关注什么标签
};
private RXTXListener mListener = new RXTXListener() {
@Override
//获取接收器返回的数据
public void reciveData(byte[] btAryReceiveData) {
// TODO Auto-generated method stub
System.out.println("reciveData: " + StringTool.byteArrayToString(btAryReceiveData, 0, btAryReceiveData.length));
MessageTran messageTran = new MessageTran(btAryReceiveData);
if (messageTran != null){
System.out.println("ary data length: " + messageTran.getAryData().length);
System.out.println("artData: " + StringTool.byteArrayToString(messageTran.getAryData(), 0, messageTran.getAryData().length));
StringBuffer sb = new StringBuffer();
log.debug("antId:{}",String.format("%02X",messageTran.getAryData()[0]));
for(int i = 1;i<messageTran.getAryData().length;i++){
sb.append(String.format("%02X",messageTran.getAryData()[i]));
int aryDataLength = messageTran.getAryData().length;
if (aryDataLength > 8){
for (int i = 0; i < aryDataLength; ++i){
sb.append(java.lang.String.format("%02X",messageTran.getAryData()[i]));
}
tag = sb.toString();
String st = sb.toString();
int index = st.indexOf("E");
String tag = st.substring(index, index+16);
System.out.println("tag: "+tag);
tags.add(tag);
if(ToolUtil.isNotEmpty(tagsCount.get(tag))){
tagsCount.put(tag, tagsCount.get(tag)+1);
}else{
tagsCount.put(tag, 1);
}
}
clear();
}
return tag;
}
private void clear(){
byteList.clear();
step = 0;
length = 0;
index = 0;
@Override
public void sendData(byte[] btArySendData) {
// TODO Auto-generated method stub
System.out.println("sendData: " + StringTool.byteArrayToString(btArySendData, 0, btArySendData.length));
}
public void close() {
running = false;
try {
is.close();
socket.close();
os.close();
} catch (IOException e) {
e.printStackTrace();
log.error("warn rfid close:{}",e);
@Override
public void onLostConnect() {
// TODO Auto-generated method stub
}
};
public RFIDSocket(String ip, Integer port){
mReaderConnector = new ReaderConnector();
mReaderHelper = mReaderConnector.connectNet(ip, port);
}
public void startCheck(Integer direction){
running = true;
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
while (true){
if(!running){
if (mReaderHelper != null) {
System.out.println("Connect success!");
try {
mReaderHelper.registerObserver(mObserver);
mReaderHelper.setRXTXListener(mListener);
Thread.sleep(500);
//start to find the tags
// ((RFIDReaderHelper) mReaderHelper).realTimeInventory((byte) 0xff,(byte)0x01);
while (true) {
// if (i%2==0){
if (!running){
break;
}
byte []antChanges = new byte[6];
antChanges[0] = (byte)0xa0;
antChanges[1] = (byte)0x04;
antChanges[2] = (byte)0x01;
antChanges[3] = (byte)0x74;
if(1 == direction ){
//切换天线 使用天线
log.info("rfid左 ip:"+ip);
antChanges[4] = (byte)0x00;
antChanges[5] = (byte)0xe7;
}else {
log.info("rfid右 ip:"+ip);
//切换天线 使用天线1
antChanges[4] = (byte)0x01;
antChanges[5] = (byte)0xe6;
if (direction == 1) {
//切换天线 0x00天线10x01天线2
((RFIDReaderHelper) mReaderHelper).setWorkAntenna((byte) 0xFF, (byte) 0x00);
} else {
((RFIDReaderHelper) mReaderHelper).setWorkAntenna((byte) 0xFF, (byte) 0x01);
}
try {
os.write(antChanges);
Thread.sleep(10);
} catch (InterruptedException | IOException e) {
log.error("send cmd error:{}",e);
}
byte[]bytes = new byte[5];
bytes[0] = (byte)0xa0;
bytes[1] = (byte)0x03;
bytes[2] = (byte)0x01;
bytes[3] = (byte)0xb0;
bytes[4] = (byte)0xac;
try {
os.write(bytes);
//开始盘存
((RFIDReaderHelper) mReaderHelper).iso180006BInventory((byte) 0xFF);
// i++;
Thread.sleep(70);
} catch (InterruptedException | IOException e) {
log.warn("send rfid cmd error:{}",e);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {
System.out.println("Connect faild!");
mReaderConnector.disConnect();
}
}
});
thread.start();
}
public void stopCheck(){
running = false;
if (mReaderConnector.isConnected()){
mReaderConnector.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 "";
}
public static void main(String[] args) throws IOException, InterruptedException {
RFIDSocket rfid = new RFIDSocket("10.43.26.128",4001);
file = new File("D:\\code.txt");
file.createNewFile();
fw = new FileWriter(file, true);
fw.write("\n");
rfid.startCheck(1);
rfid.readData();
Thread.sleep(1000*30000);
rfid.close();
System.out.println(rfid.getTags());
// fw.write("\n");
// fw.flush();
// for(String tag : rfid.getTags())
// {
// fw.write(tag+"\n");
// fw.flush();
// }
fw.close();
public static void main(String[] args) throws InterruptedException {
RFIDSocket rfidSocket = new RFIDSocket("10.43.26.132", 4001);
rfidSocket.startCheck(1);
Thread.sleep(1000*10);
rfidSocket.stopCheck();
System.out.println(rfidSocket.getTags());
}
}

@ -16,14 +16,17 @@ import com.zhehekeji.web.service.StreetService;
import com.zhehekeji.web.service.interfaces.RfidLiveService;
import com.zhehekeji.web.service.interfaces.RfidLogService;
import com.zhehekeji.web.util.ToolUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.Set;
import java.util.stream.Collectors;
@Service
@Slf4j
public class RfidLiveServiceImpl extends ServiceImpl<RfidLiveMapper, RfidLive> implements RfidLiveService {
@Resource
@ -42,7 +45,6 @@ public class RfidLiveServiceImpl extends ServiceImpl<RfidLiveMapper, RfidLive> i
@Override
@Async("threadPoolTaskExecutor")
public void rfidOrderStock(PlcCmdInfo plcCmdInfo, Integer times, String trayCode) {
Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId());
@ -55,7 +57,8 @@ public class RfidLiveServiceImpl extends ServiceImpl<RfidLiveMapper, RfidLive> i
} catch (InterruptedException e) {
throw new RuntimeException(e);
} finally {
tags = plcService.RFIDStopGetRFID(plcCmdInfo);
tags = String.join(",", plcService.RFIDStop(plcCmdInfo));
log.info("随行rfid扫描结果"+tags);
}
rfidRemoveLive(plcCmdInfo,street,rfid);
rfidSave( plcCmdInfo,tags,street,rfid);
@ -72,9 +75,10 @@ public class RfidLiveServiceImpl extends ServiceImpl<RfidLiveMapper, RfidLive> i
remove(new QueryWrapper<RfidLive>()
.eq("street_Id", street.getId())
.eq("direction", plcCmdInfo.getFromDirection())
.eq("side", plcCmdInfo.getFromSide())
.eq("side", plcCmdInfo.getFromSeparation())
.eq("rfid_row", plcCmdInfo.getFromRow())
.eq("rfid_column", plcCmdInfo.getFromColumn()));
remove(new QueryWrapper<RfidLive>().isNull("direction"));
rfidLog.setRfidId(rfid.getId());
rfidLog.setStreet_id(street.getId());

@ -99,6 +99,8 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
plcCmdInfo.setFromRow(dataInfo.getFromRow());
plcCmdInfo.setFromColumn(dataInfo.getFromColumn());
plcCmdInfo.setFromSide(dataInfo.getFromSide());
plcCmdInfo.setFromSeparation(dataInfo.getFromSeparation());
plcCmdInfo.setToSeparation(dataInfo.getToSeparation());
plcCmdInfo.setToSide(dataInfo.getToSide());
//左右不换过来
if(dataInfo.getFromDirection() == 1){
@ -121,8 +123,7 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
if (Cmd.A.name().equals(ksecInfo.getType())) {
//心跳
log.debug("receieve heart ");
} else if (Cmd.B.name().equals(ksecInfo.getType())) {
} else if (Cmd.B.name().equals(ksecInfo.getType()) ||(Cmd.E.name().equals(ksecInfo.getType()) && !dataInfo.getTrayCode().startsWith("E"))) {
//任务
if (Cmd.B1.name().equals(cmdName)) {
//昆船盘点模式下也会发B1 ,但是不会发送B2

@ -27,24 +27,28 @@ userUrl: http://115.236.65.98:11001
# ----默认摄像头的连接信息
cameraConfig:
# ------------球機選擇--- 0:利珀 1海康
cameraType: 0
cameraType: 1
cameraPassword: a1234567
cameraUser: admin
cameraPort: 8000
videoServer: 127.0.0.1:8083
#相机抓图延迟 毫秒,这个延迟是等待球机球机转动到位,然后拍照的
delayCaptureTime: 3500
#随行模式下的相机抓图延迟 毫秒,这个延迟是等待球机球机转动到位,然后拍照的
# 发了C1之后多久拍照
C1DelayCaptureTime: 2500
C1DelayCaptureTime: 3500
# 内侧货架 发了C2 之后多久拍照
C2DelayCaptureTime: 1500
C2DelayCaptureTime: 3500
# 外侧货架 发了C2 之后多久拍照
C2OutDelayCaptureTime: 4500
# 发了C3之后多久拍照
C3DelayCaptureTime: 2500
C4DelayCaptureTime: 1500
C4OutDelayCaptureTime: 1500
#相机抓图延迟 毫秒,这个延迟是等待球机球机转动到位,然后拍照的
delayCaptureTime: 3500
C3DelayCaptureTime: 3500
C4DelayCaptureTime: 3500
C4OutDelayCaptureTime: 3500
# 发了B2之后多久转原点位
B2DelayTime: 2000
# 外侧货架发了B2多久转原点位
B2OutDelayTime: 3000
# 下载mp4延迟 海康的下载mp4需要2分钟
# 利珀延迟10s就可
# 单位毫秒
@ -57,22 +61,23 @@ savePath:
# ------------服务端类型 0TCP(罗伯泰克) 1:KSEC(JSON)(昆船)
serverMode: 1
ksec:
# ip: 10.43.1.144
ip: 127.0.0.1
port: 3000
port: 9000
#重连次数 默认10次
reconnectNum: -1
#重连间隔 默认10s
reconnectInterval: 10
# ------------ 实时视频流 全部页面的格式 行列数量
videoStyleConfig:
videoStyleRow: 2
videoStyleColumn: 2
videoStyleRow: 3
videoStyleColumn: 3
# ------------光源---
# -------------type 0:没有光源 1利珀光源控制器JYDam 2利珀视觉控制器
# ----------- num:总共多少个光源端口 index:需要控制的是哪个
# ------------ 利珀视觉控制器id从1开始光源控制器从0开始
lightSource:
type: 2
type: 1
num: 4
index: 1
# -----tray 托盘
@ -80,18 +85,19 @@ lightSource:
# 扫码模式 0:此处不盘点 1球机扫码 2sick扫码枪 3:南北达RFID
scanCodeMode:
tray: 3
goods: 1
goods: 0
goodsCodeTypes:
- 14
trayCodeTypes:
- 14
# 照片 視頻保存多久
deleteFileDays: 365
deleteFileDays: 60
#rfid
rfid:
#rfid连续扫描时间默认5s 单位s
scanTime: 1
scanTime: 20
asyncExecutorThread:
corePoolSize: 5

Loading…
Cancel
Save