diff --git a/web/pom.xml b/web/pom.xml index 899155c..2c465f2 100644 --- a/web/pom.xml +++ b/web/pom.xml @@ -75,7 +75,13 @@ system ${project.basedir}/src/main/resources/libs/jna.jar - + + com + javaRFID-helloworld + 1.0 + system + ${project.basedir}/src/main/resources/libs/javaRFID-helloworld.jar + com.sun.jna.examples test diff --git a/web/src/main/java/com/zhehekeji/web/config/ConfigProperties.java b/web/src/main/java/com/zhehekeji/web/config/ConfigProperties.java index f410fba..4a68610 100644 --- a/web/src/main/java/com/zhehekeji/web/config/ConfigProperties.java +++ b/web/src/main/java/com/zhehekeji/web/config/ConfigProperties.java @@ -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; diff --git a/web/src/main/java/com/zhehekeji/web/entity/CheckLog.java b/web/src/main/java/com/zhehekeji/web/entity/CheckLog.java index b72a074..5f5d276 100644 --- a/web/src/main/java/com/zhehekeji/web/entity/CheckLog.java +++ b/web/src/main/java/com/zhehekeji/web/entity/CheckLog.java @@ -15,6 +15,10 @@ public class CheckLog { private Integer streetId; + + @TableField(exist = false) + private String streetName; + private Integer direction; private Integer side; diff --git a/web/src/main/java/com/zhehekeji/web/service/CheckLogService.java b/web/src/main/java/com/zhehekeji/web/service/CheckLogService.java index 82819f9..7f92e40 100644 --- a/web/src/main/java/com/zhehekeji/web/service/CheckLogService.java +++ b/web/src/main/java/com/zhehekeji/web/service/CheckLogService.java @@ -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 list(CheckLogSearch search){ @@ -46,7 +50,15 @@ public class CheckLogService { } wrapper.orderByDesc("create_time"); ListstockChecks = checkLogMapper.selectList(wrapper); - + List 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); } } diff --git a/web/src/main/java/com/zhehekeji/web/service/OrderService.java b/web/src/main/java/com/zhehekeji/web/service/OrderService.java index 9d4c336..77443c9 100644 --- a/web/src/main/java/com/zhehekeji/web/service/OrderService.java +++ b/web/src/main/java/com/zhehekeji/web/service/OrderService.java @@ -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; diff --git a/web/src/main/java/com/zhehekeji/web/service/PlcService.java b/web/src/main/java/com/zhehekeji/web/service/PlcService.java index b4874d0..0487f10 100644 --- a/web/src/main/java/com/zhehekeji/web/service/PlcService.java +++ b/web/src/main/java/com/zhehekeji/web/service/PlcService.java @@ -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); } } - rfidLiveService.rfidOrderStock(plcCmdInfo, times, code); + 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 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() .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; diff --git a/web/src/main/java/com/zhehekeji/web/service/RFID/RFIDSocket.java b/web/src/main/java/com/zhehekeji/web/service/RFID/RFIDSocket.java index a2db1a5..6c84d7b 100644 --- a/web/src/main/java/com/zhehekeji/web/service/RFID/RFIDSocket.java +++ b/web/src/main/java/com/zhehekeji/web/service/RFID/RFIDSocket.java @@ -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 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 tags = new HashSet<>(); - private Map countMap = new HashMap(); - - private List byteList = new ArrayList<>(30); - + private Map tagsCount = new ConcurrentHashMap<>(); public Set getTags(){ return tags; } - /** - * 获取rfid扫描最多的tag,不保证准确性 - * @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(); + private Observer mObserver = new RXObserver() { + @Override + protected void onInventoryTag(RXInventoryTag tag) { + System.out.println("EPC data:" + tag.strEPC); } - } - - public void readData(){ - running = true; - buffer = new LinkedList(); - - Thread thread = new Thread(new Runnable() { - - @SneakyThrows - @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); - } - } - } - } - }); - 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; + @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)); } - 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 8){ + for (int i = 0; i < aryDataLength; ++i){ + sb.append(java.lang.String.format("%02X",messageTran.getAryData()[i])); + } + 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); } - tag = sb.toString(); } } - 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){ - 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; - } - 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; + + if (mReaderHelper != null) { + System.out.println("Connect success!"); try { - os.write(bytes); - Thread.sleep(70); - } catch (InterruptedException | IOException e) { - log.warn("send rfid cmd error:{}",e); + 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; + } + if (direction == 1) { + //切换天线 0x00:天线1;0x01:天线2 + ((RFIDReaderHelper) mReaderHelper).setWorkAntenna((byte) 0xFF, (byte) 0x00); + } else { + ((RFIDReaderHelper) mReaderHelper).setWorkAntenna((byte) 0xFF, (byte) 0x01); + } + //开始盘存 + ((RFIDReaderHelper) mReaderHelper).iso180006BInventory((byte) 0xFF); +// i++; + Thread.sleep(70); + } + } 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 implements RfidLiveService { @Resource @@ -42,7 +45,6 @@ public class RfidLiveServiceImpl extends ServiceImpl 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 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 i remove(new QueryWrapper() .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().isNull("direction")); rfidLog.setRfidId(rfid.getId()); rfidLog.setStreet_id(street.getId()); diff --git a/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDecoder.java b/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDecoder.java index cfb9fa2..e2d6e6c 100644 --- a/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDecoder.java +++ b/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDecoder.java @@ -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 diff --git a/web/src/main/resources/application-test.yml b/web/src/main/resources/application-test.yml index 2b90dca..f29365b 100644 --- a/web/src/main/resources/application-test.yml +++ b/web/src/main/resources/application-test.yml @@ -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: # ------------服务端类型 0:TCP(罗伯泰克) 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:球机扫码 2:sick扫码枪 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 diff --git a/web/src/main/resources/libs/RXTXcomm.jar b/web/src/main/resources/libs/RXTXcomm.jar index 84e5f01..e1e7503 100644 Binary files a/web/src/main/resources/libs/RXTXcomm.jar and b/web/src/main/resources/libs/RXTXcomm.jar differ diff --git a/web/src/main/resources/libs/javaRFID-helloworld.jar b/web/src/main/resources/libs/javaRFID-helloworld.jar new file mode 100644 index 0000000..0e90d9f Binary files /dev/null and b/web/src/main/resources/libs/javaRFID-helloworld.jar differ