增加视觉盘点功能

merge-requests/3/head
qiushui 4 years ago
parent 1b14f41e6f
commit 7e528d4037

@ -1,17 +1,21 @@
package com.zhehekeji.web.lib; package com.aijiao.test;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import java.lang.reflect.Field; import java.lang.reflect.Field;
@Slf4j @Slf4j
public class BarCodeScan { public class JNIDemo {
public static native String detectBestBarCode(String filePath); public static native String detectBestBarCode(String filePath);
static static
{ {
try{ try{
//BarCodeScan barCodeScan = Native.load(".\\libs\\code_scan\\TestJNI", BarCodeScan.class);
String path = System.getProperty("user.dir")+"\\libs\\code_scan"; String path = System.getProperty("user.dir")+"\\libs\\code_scan";
System.setProperty("java.library.path", path); System.setProperty("java.library.path", path);
Field fieldSysPath = ClassLoader.class.getDeclaredField("sys_paths"); Field fieldSysPath = ClassLoader.class.getDeclaredField("sys_paths");
@ -30,4 +34,10 @@ public class BarCodeScan {
} }
} }
public static void main(String[] args) {
JNIDemo barCodeScan = new JNIDemo();
String code = barCodeScan.detectBestBarCode("d:\\data\\media\\2022\\01\\12\\10\\camera25\\1324-hfhaegaaag.jpg");
System.out.println(code);
}
} }

@ -0,0 +1,21 @@
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_aijiao_test_JNIDemo */
#ifndef _Included_com_aijiao_test_JNIDemo
#define _Included_com_aijiao_test_JNIDemo
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: com_aijiao_test_JNIDemo
* Method: detectBestBarCode
* Signature: (Ljava/lang/String;)Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_com_aijiao_test_JNIDemo_detectBestBarCode
(JNIEnv *, jobject, jstring);
#ifdef __cplusplus
}
#endif
#endif

@ -55,6 +55,7 @@ public class ConfigProperties {
public static class SavePath{ public static class SavePath{
private String mediaPath; private String mediaPath;
private String mp4Path; private String mp4Path;
private String checkPath;
} }
@Data @Data

@ -293,7 +293,7 @@ public class CameraControlController {
public Result pic(@PathVariable Integer id) { public Result pic(@PathVariable Integer id) {
checkLogin(id); checkLogin(id);
String path = "D:\\work\\qqq.jpeg"; String path = "D:\\work\\qqq.jpeg";
OrderInfo orderInfo = new OrderInfo(0L,"SRM123","AAA",1,1,"C5",true,1,1);
cameraControlModule.pic(id,0,path); cameraControlModule.pic(id,0,path);
return Result.success(); return Result.success();
} }

@ -19,6 +19,8 @@ public class Stock {
private String orderNum; private String orderNum;
private String checkNum;
@ApiModelProperty("条码") @ApiModelProperty("条码")
private String code; private String code;
@ -56,6 +58,8 @@ public class Stock {
@ApiModelProperty("操作后的图片") @ApiModelProperty("操作后的图片")
private String overoperationPic; private String overoperationPic;
private String checkPic;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime exportTime; private LocalDateTime exportTime;

@ -36,6 +36,8 @@ public class OrderInfo {
*/ */
private Integer separation; private Integer separation;
private String cmdCode;
public OrderInfo(Street street, PlcCmdInfo plcCmdInfo, Integer times, String c) { public OrderInfo(Street street, PlcCmdInfo plcCmdInfo, Integer times, String c) {
if (street == null) { if (street == null) {
return; return;
@ -87,6 +89,7 @@ public class OrderInfo {
orderId = 0L; orderId = 0L;
orderNum = plcCmdInfo.getOrderNum(); orderNum = plcCmdInfo.getOrderNum();
code = c; code = c;
cmdCode = c + ((leftRight == 1) ? "-L":"-R") + ((separation == 1) ? "":"-out");
} }

@ -113,9 +113,13 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
* *
*/ */
public boolean ptzControlLeftDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) { public boolean ptzControlLeftDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID, Boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTDOWN, NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTDOWN,
lParam1, lParam2, 0, 0); lParam1, lParam2, 0, 0);
if(!ok){
log.error("ptzControlLeftDownStart error :{},cameraId:{}", ToolKits.getErrorCodePrint(),cameraId);
}
return ok;
} }
public boolean ptzControlLeftDownEnd(Integer cameraId, int nChannelID) { public boolean ptzControlLeftDownEnd(Integer cameraId, int nChannelID) {

@ -1,7 +1,9 @@
package com.zhehekeji.web.service; package com.zhehekeji.web.service;
import com.aijiao.test.JNIDemo;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zhehekeji.common.util.PathUtil; import com.zhehekeji.common.util.PathUtil;
import com.zhehekeji.core.util.Assert;
import com.zhehekeji.web.config.ConfigProperties; import com.zhehekeji.web.config.ConfigProperties;
import com.zhehekeji.web.entity.*; import com.zhehekeji.web.entity.*;
import com.zhehekeji.web.lib.*; import com.zhehekeji.web.lib.*;
@ -54,6 +56,8 @@ public class PlcService {
private CameraControlModule cameraControlModule; private CameraControlModule cameraControlModule;
private static JNIDemo barCodeScan = new JNIDemo();
public void setCameraControlModule(CameraControlModule cameraControlModule){ public void setCameraControlModule(CameraControlModule cameraControlModule){
this.cameraControlModule = cameraControlModule; this.cameraControlModule = cameraControlModule;
} }
@ -80,7 +84,19 @@ public class PlcService {
*/ */
public void orderStart(PlcCmdInfo plcCmdInfo) { public void orderStart(PlcCmdInfo plcCmdInfo) {
Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId()); Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId());
if (street != null) { if (street != null) {
if(plcCmdInfo.getLeftRight1() == 1){
if(plcCmdInfo.getRow1()>street.getLeftRow() && plcCmdInfo.getColumn1() > street.getLeftColumn()){
log.error("row:{},column:{},error in streetId:{} left",plcCmdInfo.getRow1(),plcCmdInfo.getColumn1(),street.getId());
return;
}
}else {
if(plcCmdInfo.getRow1()>street.getRightRow() && plcCmdInfo.getColumn1() > street.getRightColumn()){
log.error("row:{},column:{},error in streetId:{} right",plcCmdInfo.getRow1(),plcCmdInfo.getColumn1(),street.getId());
return;
}
}
Order order = new Order(); Order order = new Order();
order.setOrderNum(plcCmdInfo.getOrderNum()); order.setOrderNum(plcCmdInfo.getOrderNum());
order.setStatus(0); order.setStatus(0);
@ -186,45 +202,23 @@ public class PlcService {
* camera2 * camera2
* *
*/ */
if (street.getCamera1Id() != null && street.getCamera2Id() != null && street.getCamera1Id() != 0 && street.getCamera2Id() != 0) { Integer cameraId = getCameraByPlcCmd(plcCmdInfo,orderInfo.getLeftRight());
if (orderInfo.getLeftRight() == 1) { gyrateCameraByCode(cameraId,code);
gyrateCameraByCode(street.getCamera1Id(), code); if(needCapture){
if (needCapture) { if(code.startsWith("C1") || code.startsWith("C3")){
if(code.startsWith("C1") || code.startsWith("C3")){ try {
try { Thread.sleep(1200);
Thread.sleep(1200); } catch (InterruptedException e) {
} catch (InterruptedException e) { e.printStackTrace();
e.printStackTrace();
}
}
path = cameraCapture(street.getCamera1Id());
}
} else {
gyrateCameraByCode(street.getCamera2Id(), code);
if (needCapture) {
if(code.startsWith("C1") || code.startsWith("C3")){
try {
Thread.sleep(1200);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
path = cameraCapture(street.getCamera2Id());
}
}
} else {
Integer cameraId = street.getCamera1Id() != null && street.getCamera1Id() != 0 ? street.getCamera1Id() : street.getCamera2Id();
if (cameraId != null && cameraId != 0) {
gyrateCameraByCode(cameraId, code);
if (needCapture) {
path = cameraCapture(cameraId);
} }
} }
path = cameraCapture(cameraId);
} }
//update order info after capture //update order info after capture
if (path != null && needCapture) { if (path != null && needCapture) {
captureUpdateOrderAndStock(orderInfo, path); captureUpdateOrderAndStock(orderInfo, path);
} }
//转向原点位
if(times == 2){ if(times == 2){
if(street.getCamera2Id() != null){ if(street.getCamera2Id() != null){
gyrateCameraByCode(street.getCamera2Id(),"C5"); gyrateCameraByCode(street.getCamera2Id(),"C5");
@ -232,7 +226,6 @@ public class PlcService {
if(street.getCamera1Id() != null){ if(street.getCamera1Id() != null){
gyrateCameraByCode(street.getCamera1Id(),"C5"); gyrateCameraByCode(street.getCamera1Id(),"C5");
} }
} }
} }
@ -432,78 +425,73 @@ public class PlcService {
} }
} }
public Integer getCameraByPlcCmd(PlcCmdInfo plcCmdInfo,Integer leftRight){
Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId());
if (street.getCamera1Id() != null && street.getCamera2Id() != null && street.getCamera1Id() != 0 && street.getCamera2Id() != 0) {
if (leftRight == 1) {
return street.getCamera1Id();
// /** } else {
// * 执行动作 旋转360,然后执行C8动作 return street.getCamera2Id();
// * }
// * @param plcId } else {
// * @Param ptzId 旋转360之后再转到这个预置点 Integer cameraId = street.getCamera1Id() != null && street.getCamera1Id() != 0 ? street.getCamera1Id() : street.getCamera2Id();
// */ return cameraId;
// public void turn360AndC8(String plcId) { }
// Street street = streetMapper.getStreetByPlcId(plcId); }
// if (street == null) {
// return;
// }
//
// if (street.getCamera1Id() != null) {
// List<CameraIO> ioConfigs = ioMapper.selectList(new QueryWrapper<CameraIO>().eq("code", "C8").eq("camera_id", street.getCamera1Id()));
// Integer ptzId = null;
// if (ioConfigs.size() > 0) {
// ptzId = ioConfigs.get(0).getPtzId();
// }
// JoywarePtzControlModule.turn360C8(street.getCamera1Id(), ptzId);
// }
// if (street.getCamera2Id() != null) {
// List<CameraIO> ioConfigs = ioMapper.selectList(new QueryWrapper<CameraIO>().eq("code", "C8").eq("camera_id", street.getCamera2Id()));
// Integer ptzId = null;
// if (ioConfigs.size() > 0) {
// ptzId = ioConfigs.get(0).getPtzId();
// }
// JoywarePtzControlModule.turn360C8(street.getCamera2Id(), ptzId);
// }
// }
/** public void check(PlcCmdInfo plcCmdInfo,String cmdCode,String wmsCode){
*
*
* @param plcCmdInfo
* @param barCodeSys
* @param boxNumSys
* @param boxNumAlgo
*/
public void recordStock(PlcCmdInfo plcCmdInfo, String barCodeSys, int boxNumSys, int boxNumAlgo) {
Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId()); Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId());
if (street == null) { Integer cameraId = getCameraByPlcCmd(plcCmdInfo,1);
return; gyrateCameraByCode(cameraId, cmdCode);
//暂停2500ms再抓图
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
} }
//判断左右 行列号 String path = cameraCapture(cameraId);
Integer leftRight = plcCmdInfo.getLeftRight2(); OrderInfo orderInfo = new OrderInfo(street,plcCmdInfo,1,cmdCode);
String shelveId; Stock stock = stockMapper.getByShelveIdAndRowColumn(orderInfo.getShelveId(),orderInfo.getRow(),orderInfo.getColumn());
if (leftRight == 1) {
shelveId = street.getLeftShelveId(); System.out.println(configProperties.getSavePath().getMediaPath()+path);
} else { try {
shelveId = street.getRightShelveId(); Thread.sleep(800);
} catch (InterruptedException e) {
e.printStackTrace();
} }
Stock stock = stockMapper.getByShelveIdAndRowColumn(shelveId, plcCmdInfo.getRow2(), plcCmdInfo.getColumn2()); String scanCode = barCodeScan.detectBestBarCode(configProperties.getSavePath().getMediaPath()+path);
if (stock != null) { if(StringUtils.isEmpty(scanCode)){
stock.setCategory(barCodeSys); scanCode = "识别异常";
stock.setCount(boxNumSys); }
String prevFile = configProperties.getSavePath().getMediaPath() + stock.getPreoperationPic(); System.out.println(scanCode);
String overFile = configProperties.getSavePath().getMediaPath() + stock.getOveroperationPic(); //核对正确
String code = BarCodeScan.detectBestBarCode(overFile); Integer status = 2;
if (boxNumSys == boxNumAlgo && code.equals(barCodeSys)) { if(!wmsCode.equals(scanCode)){
stock.setStatus(StockStatus.SUCCESS.getStatus()); status = 1;
log.info("核对正确"); }
stockMapper.updateById(stock); if(stock == null){
} else { stock = new Stock();
log.info("核对失败"); stock.setStatus(status);
stock.setStatus(StockStatus.ERROR.getStatus()); stock.setCheckNum(plcCmdInfo.getOrderNum());
stockMapper.updateById(stock); stock.setShelveId(orderInfo.getShelveId());
} stock.setRow(orderInfo.getRow());
//核对记录 todo stock.setColumn(orderInfo.getColumn());
// StockLog stockLog = new StockLog(); stock.setExportTime(LocalDateTime.now());
// stockLog.set stock.setCheckPic(path);
stock.setCode(scanCode);
stock.setWmsCode(wmsCode);
stockMapper.insert(stock);
}else {
stock.setStatus(status);
stock.setExportTime(LocalDateTime.now());
stock.setCheckPic(path);
stock.setCheckNum(plcCmdInfo.getOrderNum());
stock.setCode(scanCode);
stock.setWmsCode(wmsCode);
stockMapper.updateById(stock);
} }
} }
} }

@ -28,8 +28,6 @@ public class RealTimeService {
@Resource @Resource
private CameraMapper cameraMapper; private CameraMapper cameraMapper;
@Value("${mediaServer}")
private String mediaServer;
@Autowired @Autowired
private ConfigProperties configProperties; private ConfigProperties configProperties;
@ -38,10 +36,6 @@ public class RealTimeService {
List<Camera> cameras = cameraMapper.selectByMap(new HashMap<>(0)); List<Camera> cameras = cameraMapper.selectByMap(new HashMap<>(0));
Map<Integer,Camera> cameraMap = new HashMap<>(cameras.size()); Map<Integer,Camera> cameraMap = new HashMap<>(cameras.size());
cameras.forEach(camera -> { cameras.forEach(camera -> {
if(StringUtils.isEmpty(camera.getM3u8())){
String m3u8 = String.format(mediaServer,camera.getId());
camera.setM3u8(m3u8);
}
cameraMap.put(camera.getId(),camera); cameraMap.put(camera.getId(),camera);
}); });
List<RealTime> realTimes = new ArrayList<>(); List<RealTime> realTimes = new ArrayList<>();

@ -15,6 +15,7 @@ import com.zhehekeji.web.mapper.StockMapper;
import com.zhehekeji.web.pojo.category.PageSearch; import com.zhehekeji.web.pojo.category.PageSearch;
import com.zhehekeji.web.pojo.stock.*; import com.zhehekeji.web.pojo.stock.*;
import com.zhehekeji.web.pojo.street.StreetType; import com.zhehekeji.web.pojo.street.StreetType;
import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -98,10 +99,7 @@ public class StockService {
checkStatus.setRowEnd(rowColumnStatus.getRowEnd()); checkStatus.setRowEnd(rowColumnStatus.getRowEnd());
checkStatus.setShelveId(rowColumnStatus.getShelveId()); checkStatus.setShelveId(rowColumnStatus.getShelveId());
List<Stock> stocks = stockMapper.selectList(new QueryWrapper<Stock>().select("status","`row`","`column`","`shelve_id`").eq("`shelve_id`",rowColumnStatus.getShelveId()));
if(CollectionUtils.isEmpty(stocks)){
return checkStatus;
}
List<Stock>stockList = new ArrayList<>(); List<Stock>stockList = new ArrayList<>();
Map<String,Integer> rowTabStatus = new LinkedHashMap<>(); Map<String,Integer> rowTabStatus = new LinkedHashMap<>();
for(String rowTab: rowColumnStatus.getRowTabs()){ for(String rowTab: rowColumnStatus.getRowTabs()){
@ -111,12 +109,19 @@ public class StockService {
for(String column:rowColumnStatus.getColumnTabs()){ for(String column:rowColumnStatus.getColumnTabs()){
columnTabStatus.put(column,0); columnTabStatus.put(column,0);
} }
List<Stock> stocks = stockMapper.selectList(new QueryWrapper<Stock>().select("status","`row`","`column`","`shelve_id`").eq("`shelve_id`",rowColumnStatus.getShelveId()));
if(CollectionUtils.isEmpty(stocks)){
stockInit(rowColumnStatus.getRowStart(), rowColumnStatus.getRowEnd(), rowColumnStatus.getColumnStart(), rowColumnStatus.getColumnEnd(), rowColumnStatus.getShelveId(),stocks);
checkStatus.setStocks(stocks);
checkStatus.setRowTabStatus(rowTabStatus);
checkStatus.setColumnTabStatus(columnTabStatus);
return checkStatus;
}
for(Stock stock: stocks){ for(Stock stock: stocks){
if(stock.getStatus() == null){ if(stock.getStatus() == null){
continue; continue;
} }
if(stock.getRow()>= rowColumnStatus.getColumnStart() && stock.getRow()<= rowColumnStatus.getColumnEnd() && stock.getColumn() >= rowColumnStatus.getColumnStart() && stock.getColumn()<= rowColumnStatus.getColumnEnd()){ if(stock.getColumn()>= rowColumnStatus.getColumnStart() && stock.getColumn()<= rowColumnStatus.getColumnEnd() && stock.getRow() >= rowColumnStatus.getRowStart() && stock.getRow()<= rowColumnStatus.getRowEnd()){
stockList.add(stock); stockList.add(stock);
} }
if(!CollectionUtils.isEmpty(rowColumnStatus.getRowTabs())){ if(!CollectionUtils.isEmpty(rowColumnStatus.getRowTabs())){
@ -136,10 +141,77 @@ public class StockService {
} }
checkStatus.setColumnTabStatus(columnTabStatus); checkStatus.setColumnTabStatus(columnTabStatus);
checkStatus.setRowTabStatus(rowTabStatus); checkStatus.setRowTabStatus(rowTabStatus);
checkStatus.setStocks(stockList); checkStatus.setStocks(stockInit(rowColumnStatus.getRowStart(), rowColumnStatus.getRowEnd(), rowColumnStatus.getColumnStart(), rowColumnStatus.getColumnEnd(), rowColumnStatus.getShelveId(),stockList));
return checkStatus; return checkStatus;
} }
private List<Stock> stockInit(Integer rowStart, Integer rowEnd,Integer columnStart,Integer columnEnd,String shelveId,List<Stock> readyList){
Map<Integer,Map<Integer,Boolean>> map = new HashMap<>();
readyList.forEach(stock -> {
if(map.get(stock.getRow()) == null){
Map<Integer,Boolean> columnMap = new HashMap<>();
columnMap.put(stock.getColumn(),true);
map.put(stock.getRow(),columnMap);
}else {
Map<Integer,Boolean> columnMap = map.get(stock.getRow());
if(columnMap.get(stock.getColumn()) == null){
columnMap.put(stock.getColumn(),true);
}
map.put(stock.getRow(),columnMap);
}
});
for(int i = rowStart;i<=rowEnd;i++){
Map<Integer,Boolean> columnMap = map.get(i);
for(int j = columnStart;j<=columnEnd;j++){
if(columnMap == null || columnMap.get(j) == null){
Stock stock = new Stock();
stock.setColumn(j);
stock.setRow(i);
stock.setStatus(0);
stock.setShelveId(shelveId);
readyList.add(stock);
}
}
}
return readyList;
}
public static void main(String[] args) {
List<Stock> readyList = new ArrayList<>();
Stock stock = new Stock();
stock.setRow(1);
stock.setColumn(1);
readyList.add(stock);
Stock stock2 = new Stock();
stock2.setRow(2);
stock2.setColumn(4);
readyList.add(stock2);
Map<Integer,Map<Integer,Boolean>> map = new HashMap<>();
Map<Integer,Boolean> rowMap = new HashMap<>();
readyList.forEach(stockw -> {
if(map.get(stockw.getRow()) == null){
Map<Integer,Boolean> columnMap = new HashMap<>();
columnMap.put(stockw.getColumn(),true);
map.put(stockw.getRow(),columnMap);
}else {
Map<Integer,Boolean> columnMap = map.get(stockw.getRow());
if(columnMap.get(stockw.getColumn()) == null){
columnMap.put(stockw.getColumn(),true);
}
map.put(stockw.getRow(),columnMap);
}
});
System.out.println(map);
}
//0 : 未盘点 1盘点异常 2盘点正确 //0 : 未盘点 1盘点异常 2盘点正确
private void tabStatus(Stock stock,Map<String,Integer> tabStatus,String tab){ private void tabStatus(Stock stock,Map<String,Integer> tabStatus,String tab){
@ -158,10 +230,7 @@ public class StockService {
} }
} }
public static void main(String[] args) {
Map<String,Integer> ss = new HashMap<>();
}
private Boolean isRowColumnInTab(Stock stock,String tab,Boolean isRow){ private Boolean isRowColumnInTab(Stock stock,String tab,Boolean isRow){
String [] strings = tab.split(" - "); String [] strings = tab.split(" - ");

@ -99,8 +99,10 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
} else if (Cmd.E.name().equals(ksecInfo.getType())) { } else if (Cmd.E.name().equals(ksecInfo.getType())) {
tcpLogger.info("info:{}",body); tcpLogger.info("info:{}",body);
//盘点 //盘点
//转球机到盘点位 然后拍照
plcService.check(plcCmdInfo,Cmd.E1.name(), dataInfo.getCode());
//找到该货位的最后一张照片与现在的照片比照 //找到该货位的最后一张照片与现在的照片比照
plcService.recordStock(plcCmdInfo, dataInfo.getCode(), 0, 0); //plcService.recordStock(plcCmdInfo, dataInfo.getCode(), 0, 0);
} }
} }
in.release(); in.release();

@ -114,7 +114,7 @@ public class ProtocolDecoder extends FixedLengthFrameDecoder {
} else { } else {
log.info("盘点模式"); log.info("盘点模式");
log.info("Verification mode. Code er(algorithm):{}", barCodeSys, boxNumSys, boxNumAlgo); log.info("Verification mode. Code er(algorithm):{}", barCodeSys, boxNumSys, boxNumAlgo);
plcService.recordStock(plcCmdInfo,barCodeSys,boxNumSys,boxNumAlgo); //plcService.recordStock(plcCmdInfo,barCodeSys,boxNumSys,boxNumAlgo);
} }
} }

@ -31,13 +31,14 @@ cameraConfig:
cameraPassword: a1234567 cameraPassword: a1234567
cameraUser: admin cameraUser: admin
cameraPort: 37777 cameraPort: 37777
videoServer: 127.0.0.1:8083 videoServer: 192.168.8.140:8083
# ------------ # ------------
# -----图片 mp4下载地址 # -----图片 mp4下载地址
savePath: savePath:
mediaPath: d:\\data\media\ mediaPath: d:\\data\media\
mp4Path: d:\\data\mp4\ mp4Path: d:\\data\mp4\
checkPath: d:\\data\check\
# ------------服务端类型 0TCP(罗伯泰克) 1:KSEC(JSON)(昆船) # ------------服务端类型 0TCP(罗伯泰克) 1:KSEC(JSON)(昆船)
serverMode: 1 serverMode: 1
ksec: ksec:
@ -48,8 +49,3 @@ ksec:
videoStyleConfig: videoStyleConfig:
videoStyleRow: 1 videoStyleRow: 1
videoStyleColumn: 2 videoStyleColumn: 2
# ------------球机m3u8默认地址 %d是球机数据库id如果数据库没有就使用此默认值
mediaServer: http://127.0.0.1:9080/hls/camera%d.m3u8
rtcServer:
rtcServerIp: 127.0.0.1
rtcServerPort: 8083

Loading…
Cancel
Save