| @ -1,31 +1,4 @@ | |||||
| [2025-07-03 15:40:54.545][ERR] CCoreGlobalCtrlBase::LoadDSo, HPR_LoadDSo Failed, Path[E:/PersonalProject/inspect-infrared/lib/zlib1.dll] syserror[126] | |||||
| [2025-07-03 15:40:54.545][ERR] Load zlib failed[syserr: 126] | |||||
| [2025-07-03 15:40:54.545][INF] The COM:HCCoreBase ver is 6.1.4.15, 2020_03_05. Async:1. | |||||
| [2025-07-03 15:40:54.545][INF] The COM:Core ver is 6.1.9.47, 2022_11_11. Async:1. | |||||
| [2025-07-03 15:40:54.545][INF] This HCNetSDK ver is 6.1.9.47 Ver 2022_11_11. | |||||
| [2025-07-03 15:41:19.099][INF] Login dev 192.168.1.250:8000. | |||||
| [2025-07-03 15:41:19.099][INF] dwTotalNum[2048] | |||||
| [2025-07-03 15:41:19.100][INF] Private connect 192.168.1.250:8000 sock=5552 this=0x1283b114 cmd=0x10000 port=57665 | |||||
| [2025-07-03 15:41:19.100][INF] LogonDev1 in[192.168.1.250:8000] | |||||
| [2025-07-03 15:41:19.101][DBG] CCoreGlobalCtrlBase::LoadDSo, HPR_LoadDSo Succ, Path[E:/PersonalProject/inspect-infrared/lib/libcrypto-1_1-x64.dll], hHandleRet[-1425145856] | |||||
| [2025-07-03 15:41:19.101][DBG] Load [libcrypto-1_1-x64.dll] SUCC, Real Path[E:\PersonalProject\inspect-infrared\lib\libcrypto-1_1-x64.dll] | |||||
| [2025-07-03 15:41:19.102][DBG] CCoreGlobalCtrlBase::LoadDSo, HPR_LoadDSo Succ, Path[E:/PersonalProject/inspect-infrared/lib/libssl-1_1-x64.dll], hHandleRet[-1247739904] | |||||
| [2025-07-03 15:41:19.102][DBG] Load [libssl-1_1-x64.dll] SUCC, Real Path[E:\PersonalProject\inspect-infrared\lib\libssl-1_1-x64.dll] | |||||
| [2025-07-03 15:41:19.102][INF] SSLTRANSAPI::IsAllAPILoaded, SSL_library_init Unload | |||||
| [2025-07-03 15:41:19.102][INF] OpenSSL, Not All Function Loaded! | |||||
| [2025-07-03 15:41:19.102][INF] SSLTRANSAPI::PrintVersion, OpenSSL version info [OpenSSL 1.1.1l 24 Aug 2021] | |||||
| [2025-07-03 15:41:19.102][INF] CSSLTrans::SSLCtxInit, dwSSLVersion[6], m_fnTLSServerMethod | |||||
| [2025-07-03 15:41:19.103][ERR] CSSLTrans::SSLTrans_CTX_Load_CA, invalid path[E:/PersonalProject/inspect-infrared/lib/cert/\] | |||||
| [2025-07-03 15:41:20.053][DBG] CComBase::Load, Load szDllPath[E:/PersonalProject/inspect-infrared/lib/HCNetSDKCom/HCPreview.dll] SUCC | |||||
| [2025-07-03 15:41:20.053][INF] AbilityAnalyze---Init-- start | |||||
| [2025-07-03 15:41:20.053][ERR] AbilityAnalyze---open zip package error, package path E:/PersonalProject/inspect-infrared/lib/LocalXml.zip | |||||
| [2025-07-03 15:41:20.053][INF] The COM:Preview ver is 6.1.9.47, 2022_11_11. | |||||
| [2025-07-03 15:41:20.059][INF] Private connect 192.168.1.250:8000 sock=5388 this=0x1283b880 cmd=0x30200 port=57667 | |||||
| [2025-07-03 15:41:20.074][INF] Private connect 192.168.1.250:8000 sock=5672 this=0x1283b114 cmd=0x30001 port=57666 | |||||
| [2025-07-03 15:41:20.085][INF] Private connect 192.168.1.250:8262 sock=5392 this=0x1283b880 cmd=0x30001 port=63103 | |||||
| [2025-07-03 15:41:51.921][INF] Login dev 192.168.1.250:8000. | |||||
| [2025-07-03 15:41:51.921][INF] Private connect 192.168.1.250:8000 sock=1728 this=0x1283bfec cmd=0x10000 port=57679 | |||||
| [2025-07-03 15:41:51.921][INF] LogonDev1 in[192.168.1.250:8000] | |||||
| [2025-07-03 15:41:52.014][INF] Private connect 192.168.1.250:8000 sock=5452 this=0x1283bfec cmd=0x30200 port=57680 | |||||
| [2025-07-03 15:41:52.014][INF] Private connect 192.168.1.250:8000 sock=5696 this=0x1283c758 cmd=0x30001 port=57681 | |||||
| [2025-07-03 15:41:52.020][INF] Private connect 192.168.1.250:8264 sock=5692 this=0x1283bfec cmd=0x30001 port=52977 | |||||
| [2025-07-11 15:04:10.150][DBG] CCoreGlobalCtrlBase::LoadDSo, HPR_LoadDSo Succ, Path[E:/qinyl/intellij/src/inspect-nvr/lib/zlib1.dll], hHandleRet[1493237760] | |||||
| [2025-07-11 15:04:10.150][INF] The COM:HCCoreBase ver is 6.1.4.15, 2020_03_05. Async:1. | |||||
| [2025-07-11 15:04:10.150][INF] The COM:Core ver is 6.1.9.47, 2022_11_11. Async:1. | |||||
| [2025-07-11 15:04:10.150][INF] This HCNetSDK ver is 6.1.9.47 Ver 2022_11_11. | |||||
| @ -0,0 +1,31 @@ | |||||
| package com.inspect.nvr; | |||||
| import okhttp3.Interceptor; | |||||
| import okhttp3.OkHttpClient; | |||||
| import okhttp3.Request; | |||||
| import org.slf4j.Logger; | |||||
| import org.slf4j.LoggerFactory; | |||||
| import org.springframework.beans.factory.annotation.Value; | |||||
| import org.springframework.boot.SpringApplication; | |||||
| import org.springframework.boot.autoconfigure.SpringBootApplication; | |||||
| import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; | |||||
| import org.springframework.context.annotation.Bean; | |||||
| import org.springframework.scheduling.annotation.EnableScheduling; | |||||
| import retrofit2.Retrofit; | |||||
| import retrofit2.converter.jackson.JacksonConverterFactory; | |||||
| import retrofit2.converter.scalars.ScalarsConverterFactory; | |||||
| import java.util.Date; | |||||
| @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) | |||||
| @EnableScheduling | |||||
| public class InspectNvrApplication { | |||||
| private final static Logger log = LoggerFactory.getLogger(InspectNvrApplication.class); | |||||
| public static void main(String[] args) { | |||||
| SpringApplication.run(InspectNvrApplication.class, args); | |||||
| log.info("\n<=====☆ NVR MODULE ☆ =====> \n .-------. ____ __ \n | _ _ \\ \\ \\ / / \n | ( ' ) | \\ _. / ' \n |(_ o _) / _( )_ .' \n | (_,_).' __ ___(_ o _)' \n | |\\ \\ | || |(_,_)' \n | | \\ `' /| `-' / \n | | \\ / \\ / \n ''-' `'-' `-..-' "); | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,56 @@ | |||||
| package com.inspect.nvr.controller; | |||||
| import com.inspect.nvr.domain.device.*; | |||||
| import com.inspect.nvr.service.IvsCameraService; | |||||
| import org.slf4j.Logger; | |||||
| import org.slf4j.LoggerFactory; | |||||
| import org.springframework.core.io.InputStreamResource; | |||||
| import org.springframework.http.ResponseEntity; | |||||
| import org.springframework.web.bind.annotation.*; | |||||
| import javax.annotation.Resource; | |||||
| import java.io.*; | |||||
| @RestController | |||||
| public class IvsCameraController implements Serializable { | |||||
| private final Logger log = LoggerFactory.getLogger(this.getClass()); | |||||
| @Resource | |||||
| private IvsCameraService ivsCameraService; | |||||
| @PostMapping({"/device/ptzcontrol"}) | |||||
| public ResponseEntity<PtzControlResult> ptzControl(@RequestBody PtzControlParam param) { | |||||
| log.info("Ptz control request param: {}", param); | |||||
| return ResponseEntity | |||||
| .ok() | |||||
| .body(ivsCameraService.ptzControl(param)); | |||||
| } | |||||
| @GetMapping({"/platform/platformSnapshot/{cameraCode}/{domainCode}"}) | |||||
| public ResponseEntity<SnapshotCommandResult> platformSnapshot( | |||||
| @PathVariable("cameraCode") String cameraCode, | |||||
| @PathVariable("domainCode") String domainCode, | |||||
| SnapshotCommandParam param) { | |||||
| log.info("Platform Snapshot cameraCode: {}, domainCode: {}, param: {}", cameraCode, domainCode, param); | |||||
| return ResponseEntity | |||||
| .ok() | |||||
| .body(ivsCameraService.platformSnapshot(cameraCode, domainCode, param)); | |||||
| } | |||||
| @PostMapping({"/platform/snapshotList"}) | |||||
| public ResponseEntity<SnapshotInfoListResult> retrieveSnapshotList(@RequestBody SnapshotInfoListParam param) { | |||||
| log.info("Snapshot list request param: {}", param); | |||||
| return ResponseEntity | |||||
| .ok() | |||||
| .body(ivsCameraService.getSnapshotList(param)); | |||||
| } | |||||
| @GetMapping("/downloadfile") | |||||
| public ResponseEntity<InputStreamResource> downloadFile(@RequestParam("filesessionid") String fileSessionId) { | |||||
| log.info("[GAB] get stream, fileSessionId: {}", fileSessionId); | |||||
| return ResponseEntity | |||||
| .ok() | |||||
| .body(new InputStreamResource(ivsCameraService.downloadFile(fileSessionId))); | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,13 @@ | |||||
| package com.inspect.nvr.domain.device; | |||||
| import lombok.Builder; | |||||
| import lombok.Getter; | |||||
| import lombok.Setter; | |||||
| @Getter | |||||
| @Setter | |||||
| @Builder | |||||
| public class IndexRange { | |||||
| private int fromIndex; | |||||
| private int toIndex; | |||||
| } | |||||
| @ -0,0 +1,23 @@ | |||||
| package com.inspect.nvr.domain.device; | |||||
| import lombok.Getter; | |||||
| import lombok.Setter; | |||||
| @Getter | |||||
| @Setter | |||||
| public class PtzControlParam { | |||||
| private String cameraCode; | |||||
| private String controlCode; | |||||
| private String controlPara1; | |||||
| private String controlPara2; | |||||
| @Override | |||||
| public String toString() { | |||||
| return "PtzControlParam{" + | |||||
| "cameraCode='" + cameraCode + '\'' + | |||||
| ", controlCode='" + controlCode + '\'' + | |||||
| ", controlPara1='" + controlPara1 + '\'' + | |||||
| ", controlPara2='" + controlPara2 + '\'' + | |||||
| '}'; | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,15 @@ | |||||
| package com.inspect.nvr.domain.device; | |||||
| import lombok.Builder; | |||||
| import lombok.Getter; | |||||
| import lombok.Setter; | |||||
| import java.io.Serializable; | |||||
| @Getter | |||||
| @Setter | |||||
| @Builder | |||||
| public class PtzControlResult implements Serializable { | |||||
| private static final long serialVersionUID = -3783773379518253182L; | |||||
| private String resultCode; | |||||
| } | |||||
| @ -0,0 +1,35 @@ | |||||
| package com.inspect.nvr.domain.device; | |||||
| import lombok.Builder; | |||||
| import lombok.Getter; | |||||
| import lombok.Setter; | |||||
| import java.io.Serializable; | |||||
| @Getter | |||||
| @Setter | |||||
| @Builder | |||||
| public class SnapshotCommandParam implements Serializable { | |||||
| private String code; | |||||
| private String cameraCode; | |||||
| private String domainCode; | |||||
| private String serial; | |||||
| private String channel; | |||||
| private boolean realtime; | |||||
| private boolean checkOutputs; | |||||
| private boolean timeout; | |||||
| @Override | |||||
| public String toString() { | |||||
| return "SnapshotCommandParam{" + | |||||
| "code='" + code + '\'' + | |||||
| ", cameraCode='" + cameraCode + '\'' + | |||||
| ", domainCode='" + domainCode + '\'' + | |||||
| ", serial='" + serial + '\'' + | |||||
| ", channel='" + channel + '\'' + | |||||
| ", realtime=" + realtime + | |||||
| ", checkOutputs=" + checkOutputs + | |||||
| ", timeout=" + timeout + | |||||
| '}'; | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,14 @@ | |||||
| package com.inspect.nvr.domain.device; | |||||
| import lombok.Builder; | |||||
| import lombok.Getter; | |||||
| import lombok.Setter; | |||||
| import java.io.Serializable; | |||||
| @Getter | |||||
| @Setter | |||||
| @Builder | |||||
| public class SnapshotCommandResult implements Serializable { | |||||
| private String taskID; | |||||
| } | |||||
| @ -0,0 +1,27 @@ | |||||
| package com.inspect.nvr.domain.device; | |||||
| import lombok.Builder; | |||||
| import lombok.Getter; | |||||
| import lombok.Setter; | |||||
| import java.io.Serializable; | |||||
| @Getter | |||||
| @Setter | |||||
| @Builder | |||||
| public class SnapshotInfoListParam implements Serializable { | |||||
| private String taskID; | |||||
| private String code; | |||||
| private String cameraCode; | |||||
| private String domainCode; | |||||
| @Override | |||||
| public String toString() { | |||||
| return "SnapshotInfoListParam{" + | |||||
| "taskID='" + taskID + '\'' + | |||||
| ", code='" + code + '\'' + | |||||
| ", cameraCode='" + cameraCode + '\'' + | |||||
| ", domainCode='" + domainCode + '\'' + | |||||
| '}'; | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,39 @@ | |||||
| package com.inspect.nvr.domain.device; | |||||
| import lombok.Builder; | |||||
| import lombok.Getter; | |||||
| import lombok.Setter; | |||||
| import java.io.Serializable; | |||||
| import java.util.List; | |||||
| @Getter | |||||
| @Setter | |||||
| @Builder | |||||
| public class SnapshotInfoListResult implements Serializable { | |||||
| private SnapshotInfoList snapshotInfoList; | |||||
| @Setter | |||||
| @Getter | |||||
| @Builder | |||||
| public static class SnapshotInfo { | |||||
| private String cameraCode; | |||||
| private String snapTime; | |||||
| private String snapType; | |||||
| private String pictureName; | |||||
| private String pictureSize; | |||||
| private String previewUrl; | |||||
| private String pictureUrl; | |||||
| private String reserve; | |||||
| } | |||||
| @Setter | |||||
| @Getter | |||||
| public static class SnapshotInfoList { | |||||
| private int total; | |||||
| private IndexRange indexRange; | |||||
| private List<SnapshotInfo> snapshotInfos; | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,18 @@ | |||||
| package com.inspect.nvr.service; | |||||
| import com.inspect.nvr.domain.device.*; | |||||
| import java.io.ByteArrayInputStream; | |||||
| public interface IvsCameraService { | |||||
| PtzControlResult ptzControl(final PtzControlParam param); | |||||
| SnapshotCommandResult platformSnapshot( | |||||
| String cameraCode, | |||||
| String domainCode, | |||||
| SnapshotCommandParam param); | |||||
| SnapshotInfoListResult getSnapshotList(SnapshotInfoListParam param); | |||||
| ByteArrayInputStream downloadFile(String fileSessionId); | |||||
| } | |||||
| @ -0,0 +1,77 @@ | |||||
| package com.inspect.nvr.service.impl; | |||||
| import com.inspect.nvr.domain.device.*; | |||||
| import com.inspect.nvr.service.IvsCameraService; | |||||
| import org.slf4j.Logger; | |||||
| import org.slf4j.LoggerFactory; | |||||
| import org.springframework.beans.factory.annotation.Value; | |||||
| import org.springframework.core.io.ClassPathResource; | |||||
| import org.springframework.stereotype.Service; | |||||
| import org.springframework.util.StreamUtils; | |||||
| import java.io.ByteArrayInputStream; | |||||
| import java.io.IOException; | |||||
| import java.util.ArrayList; | |||||
| import java.util.List; | |||||
| @Service | |||||
| public class IvsCameraServiceImpl implements IvsCameraService { | |||||
| private final Logger log = LoggerFactory.getLogger(this.getClass()); | |||||
| @Value("${test-mode:false}") | |||||
| private boolean testMode; | |||||
| @Override | |||||
| public PtzControlResult ptzControl(PtzControlParam param) { | |||||
| PtzControlResult ptzControlResult = PtzControlResult.builder() | |||||
| .resultCode("0") | |||||
| .build(); | |||||
| return ptzControlResult; | |||||
| } | |||||
| @Override | |||||
| public SnapshotCommandResult platformSnapshot(String cameraCode, String domainCode, SnapshotCommandParam param) { | |||||
| SnapshotCommandResult snapshotCommandResult = | |||||
| SnapshotCommandResult.builder() | |||||
| .taskID("0123456789") | |||||
| .build(); | |||||
| return snapshotCommandResult; | |||||
| } | |||||
| @Override | |||||
| public SnapshotInfoListResult getSnapshotList(SnapshotInfoListParam param) { | |||||
| SnapshotInfoListResult.SnapshotInfoList snapshotInfoList = new SnapshotInfoListResult.SnapshotInfoList(); | |||||
| List<SnapshotInfoListResult.SnapshotInfo> infoList = new ArrayList<>(); | |||||
| infoList.add( | |||||
| SnapshotInfoListResult.SnapshotInfo.builder() | |||||
| .pictureUrl("http://192.168.1.172:18539/downloadfile?filesessionid=HQ3HLF98QI6T645DSNVO4S066S00") | |||||
| .cameraCode("01969538357008970118") | |||||
| .build()); | |||||
| snapshotInfoList.setTotal(1); | |||||
| snapshotInfoList.setSnapshotInfos(infoList); | |||||
| SnapshotInfoListResult snapshotInfoListResult = | |||||
| SnapshotInfoListResult.builder() | |||||
| .snapshotInfoList(snapshotInfoList) | |||||
| .build(); | |||||
| return snapshotInfoListResult; | |||||
| } | |||||
| @Override | |||||
| public ByteArrayInputStream downloadFile(String fileSessionId) { | |||||
| if (testMode) { | |||||
| try { | |||||
| return new ByteArrayInputStream(loadDefaultImage()); | |||||
| } catch (IOException e) { | |||||
| throw new RuntimeException("测试环境生成错误图片失败", e); | |||||
| } | |||||
| } | |||||
| // 从nvr或者camera下载图片, 开发中 | |||||
| return null; | |||||
| } | |||||
| public byte[] loadDefaultImage() throws IOException { | |||||
| ClassPathResource imgFile = new ClassPathResource("images/infrared_default.jpg"); | |||||
| return StreamUtils.copyToByteArray(imgFile.getInputStream()); | |||||
| } | |||||
| } | |||||
| @ -1,87 +0,0 @@ | |||||
| package com.inspect.simulator; | |||||
| import okhttp3.Interceptor; | |||||
| import okhttp3.OkHttpClient; | |||||
| import okhttp3.Request; | |||||
| import org.slf4j.Logger; | |||||
| import org.slf4j.LoggerFactory; | |||||
| import org.springframework.beans.factory.annotation.Value; | |||||
| import org.springframework.boot.SpringApplication; | |||||
| import org.springframework.boot.autoconfigure.SpringBootApplication; | |||||
| import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; | |||||
| import org.springframework.context.annotation.Bean; | |||||
| import org.springframework.scheduling.annotation.EnableScheduling; | |||||
| import retrofit2.Retrofit; | |||||
| import retrofit2.converter.jackson.JacksonConverterFactory; | |||||
| import retrofit2.converter.scalars.ScalarsConverterFactory; | |||||
| import java.util.Date; | |||||
| @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) | |||||
| @EnableScheduling | |||||
| public class InspectSimulatorApplication { | |||||
| private final static Logger log = LoggerFactory.getLogger(InspectSimulatorApplication.class); | |||||
| @Value("${analysis.api.url}") | |||||
| private String apiUrlOfAnalysis; | |||||
| @Value("${analysis.api.token}") | |||||
| private String apiTokenOfAnalysis; | |||||
| @Value("${upper.api.url}") | |||||
| private String apiUrlOfUpper; | |||||
| // @Value("${upper.api.token}") | |||||
| // private String apiTokenOfUpper; | |||||
| OkHttpClient.Builder clientBuilderOfAnalysis = new OkHttpClient.Builder(); | |||||
| Interceptor interceptorOfAnalysis = chain -> { | |||||
| Request request = chain.request() | |||||
| .newBuilder() | |||||
| // .addHeader("Authorization", "token " + token) | |||||
| // .addHeader("content-type", "application/json") | |||||
| .build(); | |||||
| return chain.proceed(request); | |||||
| }; | |||||
| @Bean(name = "RetrofitOfAnalysis") | |||||
| public Retrofit retrofitOfAnalysis() { | |||||
| clientBuilderOfAnalysis.interceptors().add(interceptorOfAnalysis); | |||||
| return new Retrofit.Builder() | |||||
| .baseUrl(apiUrlOfAnalysis) | |||||
| .client(clientBuilderOfAnalysis.build()) | |||||
| .addConverterFactory(ScalarsConverterFactory.create()) | |||||
| // //.addConverterFactory(GsonConverterFactory.create()) | |||||
| .addConverterFactory(JacksonConverterFactory.create()) | |||||
| .build(); | |||||
| } | |||||
| OkHttpClient.Builder clientBuilderOfUpper = new OkHttpClient.Builder(); | |||||
| Interceptor interceptorOfUpper = chain -> { | |||||
| Request request = chain.request() | |||||
| .newBuilder() | |||||
| // .addHeader("Authorization", "token " + token) | |||||
| // .addHeader("content-type", "application/json") | |||||
| .build(); | |||||
| return chain.proceed(request); | |||||
| }; | |||||
| @Bean(name = "RetrofitOfUpper") | |||||
| public Retrofit retrofitOfUpper() { | |||||
| clientBuilderOfUpper.interceptors().add(interceptorOfUpper); | |||||
| return new Retrofit.Builder() | |||||
| .baseUrl(apiUrlOfUpper) | |||||
| .client(clientBuilderOfAnalysis.build()) | |||||
| .addConverterFactory(ScalarsConverterFactory.create()) | |||||
| // //.addConverterFactory(GsonConverterFactory.create()) | |||||
| .addConverterFactory(JacksonConverterFactory.create()) | |||||
| .build(); | |||||
| } | |||||
| public static void main(String[] args) { | |||||
| SpringApplication.run(InspectSimulatorApplication.class, args); | |||||
| log.info("\n<=====☆ SIMULATOR MODULE ☆ =====> \n .-------. ____ __ \n | _ _ \\ \\ \\ / / \n | ( ' ) | \\ _. / ' \n |(_ o _) / _( )_ .' \n | (_,_).' __ ___(_ o _)' \n | |\\ \\ | || |(_,_)' \n | | \\ `' /| `-' / \n | | \\ / \\ / \n ''-' `'-' `-..-' "); | |||||
| log.info("-----------------------------------------------"); | |||||
| log.info("时间"+new Date()); | |||||
| } | |||||
| } | |||||
| @ -1,134 +0,0 @@ | |||||
| package com.inspect.simulator.controller; | |||||
| import com.google.gson.Gson; | |||||
| import com.inspect.simulator.domain.algorithm.in.AnalyseRequest; | |||||
| import com.inspect.simulator.domain.algorithm.out.AnalyseResItem; | |||||
| import com.inspect.simulator.domain.algorithm.out.AnalyseResPoint; | |||||
| import com.inspect.simulator.domain.algorithm.out.AnalyseResult; | |||||
| import com.inspect.simulator.service.AlgorithmService; | |||||
| import com.inspect.simulator.service.remote.AnalysisRemoteService; | |||||
| import com.inspect.simulator.utils.HttpClientUtils; | |||||
| import org.apache.commons.lang3.StringUtils; | |||||
| import org.slf4j.Logger; | |||||
| import org.slf4j.LoggerFactory; | |||||
| import org.springframework.beans.factory.annotation.Value; | |||||
| import org.springframework.http.ResponseEntity; | |||||
| import org.springframework.web.bind.annotation.PostMapping; | |||||
| import org.springframework.web.bind.annotation.RequestBody; | |||||
| import org.springframework.web.bind.annotation.RestController; | |||||
| import retrofit2.Call; | |||||
| import retrofit2.Response; | |||||
| import javax.annotation.Resource; | |||||
| import java.util.ArrayList; | |||||
| import java.util.List; | |||||
| @RestController | |||||
| public class AlgorithmController { | |||||
| private final Logger log = LoggerFactory.getLogger(this.getClass()); | |||||
| @Resource | |||||
| private AlgorithmService algorithmService; | |||||
| @PostMapping("/simu/filter/picAnalyse") | |||||
| public ResponseEntity<String> filterPicAnalyse(@RequestBody final String analyseRequestStr) { | |||||
| // log.info("[FILTER] filterPicAnalyse: analyseRequestStr={}", analyseRequestStr); | |||||
| // AnalyseRequest analyseRequest = new Gson().fromJson(analyseRequestStr, AnalyseRequest.class); | |||||
| // log.info("[FILTER] filterPicAnalyse: analyseRequest={}", new Gson().toJson(analyseRequest)); | |||||
| // | |||||
| // AnalyseResult analyseResult = new AnalyseResult(); | |||||
| // analyseResult.setRequestId(analyseRequest.getRequestId()); | |||||
| // AnalyseResPoint analyseResPoint = new AnalyseResPoint(); | |||||
| // analyseResPoint.setValue("0"); | |||||
| // analyseResPoint.setConf("0.85"); | |||||
| // analyseResPoint.setCode("2000"); | |||||
| // analyseResPoint.setResImageUrl(analyseRequest.getObjectList().get(0).getImageUrlList()[0]); | |||||
| // List<AnalyseResPoint> analyseResPoints = new ArrayList<>(); | |||||
| // analyseResPoints.add(analyseResPoint); | |||||
| // AnalyseResItem analyseResItem = new AnalyseResItem(); | |||||
| // analyseResItem.setObjectId(analyseRequest.getObjectList().get(0).getObjectId()); | |||||
| // analyseResItem.setAlgFactory("yd"); | |||||
| // analyseResItem.setResults(analyseResPoints); | |||||
| // List<AnalyseResItem> analyseResItems = new ArrayList<>(); | |||||
| // analyseResItems.add(analyseResItem); | |||||
| // analyseResult.setResultList(analyseResItems); | |||||
| // | |||||
| // log.info("[FILTER] filterPicAnalyse: analyseResult={}", new Gson().toJson(analyseResult)); | |||||
| // try { | |||||
| // Call<Object> call = analysisRemoteService.picAnalyseRetNotify(analyseResult); | |||||
| // Response<Object> response = call.execute(); | |||||
| // Object result = response.body(); | |||||
| // System.out.println("result: " + result); | |||||
| // } catch (Exception e) { | |||||
| // e.printStackTrace(); | |||||
| // } | |||||
| // | |||||
| // return ResponseEntity.ok().body("{\"code\":\"200\"}"); | |||||
| return ResponseEntity.ok().body(algorithmService.filterPicAnalyse(analyseRequestStr)); | |||||
| } | |||||
| @PostMapping("/simu/bigModel/picAnalyse") | |||||
| public ResponseEntity<String> bigModelPicAnalyse(@RequestBody final String analyseRequestStr) { | |||||
| // log.info("[FILTER] bigModelPicAnalyse: analyseRequestStr={}", analyseRequestStr); | |||||
| // AnalyseRequest analyseRequest = new Gson().fromJson(analyseRequestStr, AnalyseRequest.class); | |||||
| // log.info("[FILTER] bigModelPicAnalyse: analyseRequest={}", new Gson().toJson(analyseRequest)); | |||||
| // | |||||
| // AnalyseResult analyseResult = new AnalyseResult(); | |||||
| // analyseResult.setRequestId(analyseRequest.getRequestId()); | |||||
| // AnalyseResPoint analyseResPoint = new AnalyseResPoint(); | |||||
| // analyseResPoint.setValue("1"); | |||||
| // analyseResPoint.setConf("0.95"); | |||||
| // analyseResPoint.setCode("2000"); | |||||
| // analyseResPoint.setResImageUrl(analyseRequest.getObjectList().get(0).getImageUrlList()[0]); | |||||
| // List<AnalyseResPoint> analyseResPoints = new ArrayList<>(); | |||||
| // analyseResPoints.add(analyseResPoint); | |||||
| // AnalyseResItem analyseResItem = new AnalyseResItem(); | |||||
| // analyseResItem.setObjectId(analyseRequest.getObjectList().get(0).getObjectId()); | |||||
| // analyseResItem.setAlgFactory("yd"); | |||||
| // analyseResItem.setResults(analyseResPoints); | |||||
| // List<AnalyseResItem> analyseResItems = new ArrayList<>(); | |||||
| // analyseResItems.add(analyseResItem); | |||||
| // analyseResult.setResultList(analyseResItems); | |||||
| // | |||||
| // | |||||
| // if(infraredPath.equals("null")) { | |||||
| // // 如果nacos中没有配置红外路径,则将结果返回调用方 | |||||
| // try { | |||||
| // log.info("[BIG MODEL] filterPicAnalyse: nacos file.infraredPath not config, feedback to caller, analyseResult={}", new Gson().toJson(analyseResult)); | |||||
| // Call<Object> call = analysisRemoteService.picAnalyseRetNotify(analyseResult); | |||||
| // Response<Object> response = call.execute(); | |||||
| // Object result = response.body(); | |||||
| // System.out.println("result: " + result); | |||||
| // } catch (Exception e) { | |||||
| // e.printStackTrace(); | |||||
| // } | |||||
| // } else { | |||||
| // // 如果nacos中配置了红外路径,则继续调用红外模块 | |||||
| // try { | |||||
| // log.info("[BIG MODEL] filterPicAnalyse: continue to call infrared, infraredPath: {}, analyseRequestStr={}", infraredPath, analyseRequestStr); | |||||
| // String result = HttpClientUtils.sendPostAgain(infraredPath, analyseRequestStr); | |||||
| // log.info("[BIG MODEL] continue to call infrared RESULT: {}", result); | |||||
| // } catch (Exception e) { | |||||
| // log.info("[BIG MODEL] continue to call infrared EXCEPTION: {}", e.getMessage()); | |||||
| // } | |||||
| // } | |||||
| // return ResponseEntity | |||||
| // .ok() | |||||
| // .body("{\"code\":\"200\"}"); | |||||
| return ResponseEntity.ok().body(algorithmService.bigModelPicAnalyse(analyseRequestStr)); | |||||
| } | |||||
| @PostMapping("/simu/infrared/picAnalyse") | |||||
| public ResponseEntity<String> infraredPicAnalyse(@RequestBody final String analyseRequestStr) { | |||||
| return ResponseEntity | |||||
| .ok() | |||||
| .body(algorithmService.infraredPicAnalyse(analyseRequestStr)); | |||||
| } | |||||
| @PostMapping("/simu/bigModel/picAnalyseRetNotify") | |||||
| public ResponseEntity<String> bigModelPicAnalyseRetNotify(@RequestBody String picAnalyseResult) { | |||||
| return ResponseEntity | |||||
| .ok() | |||||
| .body(algorithmService.bigModelPicAnalyseRetNotify(picAnalyseResult)); | |||||
| } | |||||
| } | |||||
| @ -1,69 +0,0 @@ | |||||
| package com.inspect.simulator.controller; | |||||
| import com.inspect.simulator.domain.result.upper.MessageBody; | |||||
| import com.inspect.simulator.domain.result.upper.MessageResult; | |||||
| import com.inspect.simulator.domain.result.upper.TokenParam; | |||||
| import com.inspect.simulator.domain.result.upper.TokenResult; | |||||
| import com.inspect.simulator.service.PatrolResultService; | |||||
| import com.inspect.simulator.utils.DateUtils; | |||||
| import org.slf4j.Logger; | |||||
| import org.slf4j.LoggerFactory; | |||||
| import org.springframework.http.ResponseEntity; | |||||
| import org.springframework.web.bind.annotation.*; | |||||
| import java.util.Date; | |||||
| @RestController | |||||
| public class PatrolResultController { | |||||
| private final Logger log = LoggerFactory.getLogger(this.getClass()); | |||||
| private final PatrolResultService patrolResultService; | |||||
| public PatrolResultController(PatrolResultService patrolResultService) { | |||||
| this.patrolResultService = patrolResultService; | |||||
| } | |||||
| @GetMapping("/patrol/result/upper/getToken") | |||||
| public ResponseEntity<TokenResult> getUpperToken(TokenParam tokenParam) { | |||||
| TokenResult tokenResult = patrolResultService.getUpperToken(tokenParam); | |||||
| return ResponseEntity | |||||
| .ok() | |||||
| .body(tokenResult); | |||||
| } | |||||
| @PostMapping("/patrol/result/upper/messageNotify") | |||||
| public ResponseEntity<MessageResult> messageNotify( | |||||
| @RequestHeader(value = "token") String token, | |||||
| @RequestBody MessageBody messageBody) { | |||||
| log.info("messageNotify: token={}, messageBody={}", token, messageBody); | |||||
| MessageResult messageResult = patrolResultService.messageNotify(token, messageBody); | |||||
| return ResponseEntity | |||||
| .ok() | |||||
| .body(messageResult); | |||||
| } | |||||
| @PostMapping("/patrol/result/upper/send") | |||||
| public void sendPatrolResultToUpperSystem() { | |||||
| patrolResultService.sendPatrolResultToUpperSystem(); | |||||
| } | |||||
| //@Scheduled(cron = "*/6 * * * * ?") | |||||
| public void sayHello() { | |||||
| final long threadId = Thread.currentThread().getId(); | |||||
| final String execTime = DateUtils.format(DateUtils.yyyyMMddHHmmss2, new Date()); | |||||
| log.info("[{}] {} --------------hello------------------", threadId, execTime); | |||||
| int i = 0; | |||||
| while (i < 10000) { | |||||
| i++; | |||||
| try { | |||||
| Thread.sleep(1); | |||||
| } catch (InterruptedException e) { | |||||
| e.printStackTrace(); | |||||
| } | |||||
| } | |||||
| log.info("[{}] {} --------------hello------------------ i: {}", threadId, execTime, i); | |||||
| } | |||||
| } | |||||
| @ -1,19 +0,0 @@ | |||||
| package com.inspect.simulator.domain.analysis.vi; | |||||
| import lombok.AllArgsConstructor; | |||||
| import lombok.Data; | |||||
| import lombok.NoArgsConstructor; | |||||
| import lombok.experimental.SuperBuilder; | |||||
| import java.util.List; | |||||
| @Data | |||||
| @SuperBuilder | |||||
| @NoArgsConstructor | |||||
| @AllArgsConstructor | |||||
| public class AnalysisObject { | |||||
| private String objectId; | |||||
| private String imageNormalUrlPath; | |||||
| private List<String> typeList; | |||||
| private List<String> imageUrlList; | |||||
| } | |||||
| @ -1,20 +0,0 @@ | |||||
| package com.inspect.simulator.domain.analysis.vi; | |||||
| import lombok.AllArgsConstructor; | |||||
| import lombok.Data; | |||||
| import lombok.NoArgsConstructor; | |||||
| import lombok.experimental.SuperBuilder; | |||||
| import java.util.List; | |||||
| @Data | |||||
| @SuperBuilder | |||||
| @NoArgsConstructor | |||||
| @AllArgsConstructor | |||||
| public class AnalysisRequest { | |||||
| private String requestId; | |||||
| private String taskPatrolId; | |||||
| private String requestHostIp; | |||||
| private String requestHostPort; | |||||
| private List<AnalysisObject> objectList; | |||||
| } | |||||
| @ -1,23 +0,0 @@ | |||||
| package com.inspect.simulator.domain.analysis.vo; | |||||
| import lombok.AllArgsConstructor; | |||||
| import lombok.Data; | |||||
| import lombok.NoArgsConstructor; | |||||
| import lombok.experimental.SuperBuilder; | |||||
| import java.io.Serializable; | |||||
| import java.util.List; | |||||
| @Data | |||||
| @SuperBuilder | |||||
| @NoArgsConstructor | |||||
| @AllArgsConstructor | |||||
| public class AnalysisResult implements Serializable { | |||||
| private String code; | |||||
| private List<String> pos; | |||||
| private String resImageUrl; | |||||
| private Double conf; | |||||
| private String type; | |||||
| private String value; | |||||
| private String desc; | |||||
| } | |||||
| @ -1,18 +0,0 @@ | |||||
| package com.inspect.simulator.domain.analysis.vo; | |||||
| import lombok.AllArgsConstructor; | |||||
| import lombok.Data; | |||||
| import lombok.NoArgsConstructor; | |||||
| import lombok.experimental.SuperBuilder; | |||||
| import java.io.Serializable; | |||||
| import java.util.List; | |||||
| @Data | |||||
| @SuperBuilder | |||||
| @NoArgsConstructor | |||||
| @AllArgsConstructor | |||||
| public class AnalysisResultEntity implements Serializable { | |||||
| private String requestId; | |||||
| private List<AnalysisResultList> resultList; | |||||
| } | |||||
| @ -1,19 +0,0 @@ | |||||
| package com.inspect.simulator.domain.analysis.vo; | |||||
| import lombok.AllArgsConstructor; | |||||
| import lombok.Data; | |||||
| import lombok.NoArgsConstructor; | |||||
| import lombok.experimental.SuperBuilder; | |||||
| import java.io.Serializable; | |||||
| import java.util.List; | |||||
| @Data | |||||
| @SuperBuilder | |||||
| @NoArgsConstructor | |||||
| @AllArgsConstructor | |||||
| public class AnalysisResultList implements Serializable { | |||||
| private String algFactory; | |||||
| private String objectId; | |||||
| private List<AnalysisResult> results; | |||||
| } | |||||