1.队列使用

2.点位文件获取
3.行高获取
4.下一个修改
赣州-富士康-rfid
LAPTOP-S9HJSOEB\昊天 2 years ago
parent 61001ab6b7
commit ae5b180b65

@ -88,6 +88,7 @@ public class Stock {
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime exportTime;
private String pcd;//点位文件路径
@TableField(exist=false)
private String topPic1;

@ -662,12 +662,13 @@ public class PlcService {
//取货完成进行拍照
try {
Thread.sleep(50L);
if (lock.tryLock()) {
//队列中没有任务,发送取图指令
ClientChanel.get(dataInfo.getSRMNumber()).writeAndFlush(transmissionPojo.toString(TransmissionType.GPS));
Thread.sleep(50L);
} else {
//将取图指令放入队列等待上条取图结束,或队列超时调用
if (GetPhotoDelayExecutor.cameraDelayTasks.size() ==0) {
ClientChanel.get(dataInfo.getSRMNumber()).writeAndFlush(transmissionPojo.toString(TransmissionType.GPS));
}
//放置到队列中,等待取图返回后删除
GetPhotoDelayExecutor.addCameraDelayTask(street.getPlcId(), transmissionPojo.toString(TransmissionType.GPS), configProperties.getQueueSpanTime());
}
} catch (InterruptedException e) {
@ -693,6 +694,8 @@ public class PlcService {
stock.setCount(transmissionPojo.getCount());
stock.setCategory(transmissionPojo.getCategory());
}
stock.setPcd("http://" + street.getPlcIp() + ":8007" + transmissionPojo.getPcd());
if (transmissionPojo.getPicsPath() != null && transmissionPojo.getPicsPath().length > 0) {
String pics = Arrays.stream(transmissionPojo.getPicsPath()).map(v -> {

@ -427,7 +427,7 @@ public class StockService {
public Stock nextOne(Long id) {
QueryWrapper<Stock> stockQueryWrapper = new QueryWrapper<>();
stockQueryWrapper.eq("status","0")
stockQueryWrapper.eq("status","0").or().eq("status","1")
.ne(id != null,"id",id)
.orderByDesc("export_time").last("limit 1");
Stock stock =stockMapper.selectOne(stockQueryWrapper);
@ -443,24 +443,5 @@ public class StockService {
return list;
}
// public void init(String shelveId, Integer row, Integer column){
// Map<String,Object> map = new HashMap<>();
// map.put("shelve_id",shelveId);
// stockMapper.deleteByMap(map);
// for(int i = 1;i<=row;i++){
// List<Stock> stocks = new ArrayList<>(column);
// for(int j = 1;j<=column;j++){
// Stock stock = new Stock();
// stock.setShelveId(shelveId);
// stock.setRow(i);
// stock.setColumn(j);
// stock.setStatus(0);
// stocks.add(stock);
// }
// stockMapper.batchInsert(stocks);
// }
// }
}

@ -105,6 +105,8 @@ public class Decoder extends DelimiterBasedFrameDecoder {
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//删除队列的拍照数据
GetPhotoDelayExecutor.remove(transmissionPojo.getStreetNumber(),transmissionPojo.toString(TransmissionType.GPS));
//发送给上位机
CameraDelayTask cameraDelayTask = GetPhotoDelayExecutor.getNext(transmissionPojo.getStreetNumber());

@ -60,13 +60,15 @@ public class GetPhotoDelayExecutor {
try {
PlcService plcService = SpringContextUtil.getBean(PlcService.class);
CameraDelayTask cameraDelayTask = cameraDelayTasks.take();
TransmissionPojo transmissionPojo = new TransmissionPojo(cameraDelayTask.getCommand());
//发送给上位机
KsecInfo ksecInfo = plcService.getKsecDataInfo(transmissionPojo,"E");
ksecInfo.getData().setTypeNum(transmissionPojo.getCategory());
ksecInfo.getData().setQuantity(transmissionPojo.getCount());
ksecInfo.getData().setCheckRlt(0);
KsecNettyClient.write(ksecInfo);
if(cameraDelayTask != null) {
TransmissionPojo transmissionPojo = new TransmissionPojo(cameraDelayTask.getCommand());
//发送给上位机
KsecInfo ksecInfo = plcService.getKsecDataInfo(transmissionPojo, "E");
ksecInfo.getData().setTypeNum(transmissionPojo.getCategory());
ksecInfo.getData().setQuantity(transmissionPojo.getCount());
ksecInfo.getData().setCheckRlt(0);
KsecNettyClient.write(ksecInfo);
}
} catch (InterruptedException e) {
e.printStackTrace();
}

@ -3,6 +3,7 @@ package com.zhehekeji.web.service.client;
import com.zhehekeji.web.entity.CheckLog;
import com.zhehekeji.web.entity.Street;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
@ -14,6 +15,10 @@ public class TransmissionPojo {
private String[] dataArray;
private String header;
private String streetNumber;//巷道标识符
private Integer row;//行
private String pcd;//点位文件路径
private String taskId;
private Integer checkId;
private Integer direction;//左右
@ -27,6 +32,7 @@ public class TransmissionPojo {
this.checkId = checkLog.getId();
this.streetNumber = street.getPlcId();
this.taskId = checkLog.getLotnum();
this.row = checkLog.getRow();
this.direction = checkLog.getDirection();
this.count = checkLog.getCount();
this.category = checkLog.getCategory().split("/")[0];
@ -49,7 +55,13 @@ public class TransmissionPojo {
data = data.replace(">", "");
this.dataArray = data.split("&");
this.header = dataArray[0];
this.streetNumber = dataArray[1];
if(dataArray[1].contains("/")) {
String[] dataArr = dataArray[1].split("/");
this.streetNumber = dataArr[0];
this.row = Integer.valueOf(dataArr[1]);
}else {
this.streetNumber = dataArray[1];
}
if (dataArray.length > 2) {
this.checkId = Integer.valueOf(dataArray[2]);
this.taskId = (dataArray[3]);
@ -65,11 +77,14 @@ public class TransmissionPojo {
this.picsPath = dataArray[8].split(";");
}
if (dataArray.length > 9) {
this.pcd = dataArray[9];
}
}
public static void main(String[] args) {
TransmissionPojo transmissionPojo = new TransmissionPojo("RT&6&2121&1&S001&25&1&1.jpg;2.jpg>");
TransmissionPojo transmissionPojo = new TransmissionPojo("RTE&6/3&562493&2121&1&S001&25&1&1.jpg;2.jpg&1.pcd>");
System.out.println(transmissionPojo);
}
}

@ -68,7 +68,7 @@ ksec:
# 服务端IP
IP: 127.0.0.1
# 服务端TCP端口
serverPort: 3001
serverPort: 8056
# 服务端队列时间间隔(单位ms)
queueSpanTime: 10000
# ------------ 实时视频流 全部页面的格式 行列数量

Loading…
Cancel
Save