增加http连接超时时间

修改2d识别的逻辑,改为直接读取文件夹下文件
匹配阈值改为0.6
如果巷道标识符存在问题,则直接放置00
滁州-烟草
LAPTOP-S9HJSOEB\昊天 2 years ago
parent c783678de8
commit 9504a620d0

@ -12,6 +12,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import java.time.Duration;
@EnableAsync
@EnableScheduling
@ -23,6 +24,8 @@ public class FusionDesignApplication {
// 使用RestTemplateBuilder来实例化RestTemplate对象spring默认已经注入了RestTemplateBuilder实例
@Bean
public RestTemplate restTemplate() {
return builder.build();
return builder.setConnectTimeout(Duration.ofSeconds(10)) // 设置连接超时时间,单位毫秒
.setReadTimeout(Duration.ofSeconds(10)) // 设置读取超时时间,单位毫秒
.build();
}
}

@ -60,34 +60,25 @@ public class IndustrialCameraController {
String srcImg = configProperties.getSavePath().getMediaPath() + industrialCameraVo.getPicImg();
String srcImgRest = configProperties.getSavePath().getMediaPath() + industrialCameraVo.getPicImg();
//识别结果
boolean macthBoolean = false;
for (ImgFile imgFile : industrialCameraVo.getFileList()){
Mat template = null;
try {
template = base642Mat(imgFile.getThumbUrl().replace("data:image/jpeg;base64,","").replace("data:image/png;base64,",""));
} catch (IOException e) {
throw new RuntimeException(e);
}
if(FeatureMatchingExample.matchTemplate( template, Imgcodecs.imread(srcImgRest), srcImg+".jpg")){
//识别成功后之后识别根据结果图识别
if(!macthBoolean){
srcImgRest = srcImg+".jpg";
}
macthBoolean = true;
}else {
macthBoolean = false;
break;
}
}
if (macthBoolean){
boolean re = FeatureMatchingExample.matchTemplate(
InventoryService.readImagesInFolder(configProperties.getSavePath().getMediaPath() + "template/" + industrialCameraVo.getTypeMacth()),
srcImg);
if (re){
return new Result<>(srcImg+".jpg");
return new Result<>(industrialCameraVo.getPicImg()+".jpg");
}else {
return new Result<>("");
}
}
@ApiOperation("识别3D")
@PostMapping("Macth3D")
public Result<String> Macth3D(@RequestBody IndustrialCameraVO industrialCameraVo){
return null;
}
@Resource
InventoryService inventoryService;

@ -25,6 +25,7 @@ import com.zhehekeji.web.service.ksec.KsecNettyClient;
import com.zhehekeji.web.service.sick.SickSocket;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.http.*;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
@ -1072,34 +1073,51 @@ public class PlcService {
// 创建 HttpEntity 对象
HttpEntity<TransmissionPojo> entity = new HttpEntity<>(scTransmission, headers);
// 发送 POST 请求
ResponseEntity<Boolean> response = restTemplate.exchange(
"http://" + street.getPlcIp() + ":8099" + "/api/industrialCamera/matchFeatures",
HttpMethod.POST,
entity,
Boolean.class
);
if (response.getStatusCode() == HttpStatus.OK) {
// 请求成功
Boolean responseBody = response.getBody();
System.out.println("获得的返回:" + responseBody);
if (Boolean.TRUE.equals(responseBody)) {
scTransmission.setResult(1);
try {
// 发送 POST 请求
ResponseEntity<Boolean> response = restTemplate.exchange(
"http://" + street.getPlcIp() + ":8099" + "/api/industrialCamera/matchFeatures",
HttpMethod.POST,
entity,
Boolean.class
);
if (response.getStatusCode() == HttpStatus.OK) {
// 请求成功
Boolean responseBody = response.getBody();
System.out.println("获得的返回:" + responseBody);
if (Boolean.TRUE.equals(responseBody)) {
scTransmission.setResult(1);
} else {
scTransmission.setResult(0);
}
} else {
scTransmission.setResult(0);
// 请求失败
System.out.println("请求失败,状态码:" + response.getStatusCode());
}
} else {
// 请求失败
System.out.println("请求失败,状态码:" + response.getStatusCode());
} catch (Exception e) {
scTransmission.setResult(0);
log.info("请求异常");
}
}
return scTransmission;
}
public static void main(String[] args) {
RestTemplate restTemplate = new RestTemplateBuilder()
.setConnectTimeout(Duration.ofSeconds(2)) // 设置连接超时时间,单位毫秒
.setReadTimeout(Duration.ofSeconds(2)) // 设置读取超时时间,单位毫秒
.build();
// 使用restTemplate发起请求
String response = restTemplate.getForObject("http://127.0.0.1:6000/example.com/api/data", String.class);
System.out.println(response);
}
public void visualInventory(SCTransmission scTransmission) {
String[] location = scTransmission.getGoodsLocation().split("_");
Stock stock = stockMapper.getByStreetAndDirectionAndSideAndRowColumn(

@ -413,8 +413,19 @@ public class StockService {
stock.setOveroperationPic(stockLogs.get(0).getPic());
} else if (stockLogs.size() == 2) {
stock.setOveroperationPic(stockLogs.get(0).getPic());
stock.setPreoperationPic(stockLogs.get(1).getPic());
}
String path2D = "http://" + street.getPlcIp() + ":8099/api/"
+ "industrialCamera/"
+ street.getPlcId() + "/"
+ stock.getLotnum() + "/"
+ stock.getId() + "/"
+ stock.getRow() + "/"
+ stock.getColumn() + "/"
+ stock.getDirection().toString() + "/";
//结果
String filePath = path2D + street.getIndustrialCamera() + ".jpeg";
stock.setPreoperationPic(filePath);
StockStatus[] stockStatuses = StockStatus.values();
for (StockStatus stockStatus : stockStatuses){
if (stockStatus.getStatus() == stock.getStatusVision()){

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -85,6 +85,9 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
// 去掉首尾标识符
body = body.substring(1, body.length());
KsecInfo ksecInfo = JSONObject.parseObject(body, KsecInfo.class);
if(ksecInfo.getData()!=null && ksecInfo.getData().getSRMNumber()!=null&& ksecInfo.getData().getSRMNumber().length() ==1){
ksecInfo.getData().setSRMNumber("00"+ksecInfo.getData().getSRMNumber());
}
if (Cmd.A.name().equals(ksecInfo.getType())) {
in.release();
return ;

Loading…
Cancel
Save