From a6bf5deee8de1722d48212bb4fdf888fe72aec22 Mon Sep 17 00:00:00 2001 From: yiming Date: Wed, 13 Apr 2022 09:52:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=AB=E7=A0=81=E7=AE=97=E6=B3=95=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E9=94=90=E5=8C=96=E3=80=81=E6=97=8B=E8=BD=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libs/code_scan/BarcodeDetectorJNI.dll | Bin 24576 -> 30208 bytes libs/code_scan/BarcodeDetectorJNI_bak.dll | Bin 0 -> 24576 bytes libs/code_scan/TestJNI.dll | Bin 24064 -> 0 bytes .../web/controller/StreetController.java | 2 + .../hikLightSource/HikControlSocket.java | 91 ++++++++++++++++++ web/src/main/resources/application-prod.yml | 6 +- 6 files changed, 97 insertions(+), 2 deletions(-) create mode 100644 libs/code_scan/BarcodeDetectorJNI_bak.dll delete mode 100644 libs/code_scan/TestJNI.dll create mode 100644 web/src/main/java/com/zhehekeji/web/service/hikLightSource/HikControlSocket.java diff --git a/libs/code_scan/BarcodeDetectorJNI.dll b/libs/code_scan/BarcodeDetectorJNI.dll index 24507ffd80e76932bd00f8d39ea7ee3bbfa27342..360865b31c9d7287c6f9e8708b876e066ac9cbe5 100644 GIT binary patch literal 30208 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 Dvkg-6 diff --git a/web/src/main/java/com/zhehekeji/web/controller/StreetController.java b/web/src/main/java/com/zhehekeji/web/controller/StreetController.java index aa21a45..d4ea78e 100644 --- a/web/src/main/java/com/zhehekeji/web/controller/StreetController.java +++ b/web/src/main/java/com/zhehekeji/web/controller/StreetController.java @@ -91,6 +91,8 @@ public class StreetController { log.info("ip:{},status:{}",lightSource.getIp(),status); equip.DisConnect(); + }else if(configProperties.getLightSource().getType() == 2){ + } }); diff --git a/web/src/main/java/com/zhehekeji/web/service/hikLightSource/HikControlSocket.java b/web/src/main/java/com/zhehekeji/web/service/hikLightSource/HikControlSocket.java new file mode 100644 index 0000000..1b74241 --- /dev/null +++ b/web/src/main/java/com/zhehekeji/web/service/hikLightSource/HikControlSocket.java @@ -0,0 +1,91 @@ +package com.zhehekeji.web.service.hikLightSource; + +import lombok.extern.slf4j.Slf4j; + +import java.io.*; +import java.net.InetSocketAddress; +import java.net.Socket; +import java.nio.charset.StandardCharsets; + +/** + * 视觉控制器光源控制 + */ +@Slf4j +public class HikControlSocket { + + /** + * + * <${端口号},${开关状态(0:关 1:开)},${get\post}> + */ + public static void main(String[] args) { + String code = openLight("192.168.8.236", 2002,2,0); + System.out.println(code); + } + + public static String openLight(String ip,int port,int index,int bool){ + Socket socket = new Socket(); + String code = null; + OutputStream os = null; + InputStream is = null; + try { + socket.connect(new InetSocketAddress(ip,port),3000); + os = socket.getOutputStream(); + controlCmd(os,bool,index); + is = socket.getInputStream(); + code = read(is); + if(code!= null){ + code = code.replace("\\n",""); + } + } catch (IOException e) { + log.error("sick time out,ip:{},info:{}",ip,e); + }finally { + if(os != null){ + try { + os.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if(is != null){ + try { + is.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + try { + socket.close(); + } catch (IOException e) { + e.printStackTrace(); + } + + return code; + } + } + + /** + * num + * @param os + * + * @param bool 1:打开光源 0:关闭光源 + * @param index 第几个口 + * @throws IOException + */ + private static void controlCmd(OutputStream os,int bool,int index) throws IOException { + String startCmd = "<"+index+","+bool+","+"post>"; + byte [] bytes = startCmd.getBytes(StandardCharsets.UTF_8); + os.write(bytes); + } + + private static void getStatus(OutputStream os,int index) throws IOException { + String startCmd = "<"+index+","+0+","+"get>"; + byte [] bytes = startCmd.getBytes(StandardCharsets.UTF_8); + os.write(bytes); + } + + private static String read(InputStream inStream) throws IOException { + BufferedReader bd = new BufferedReader(new InputStreamReader(inStream)); + return bd.readLine(); + } + +} diff --git a/web/src/main/resources/application-prod.yml b/web/src/main/resources/application-prod.yml index 31ab46f..c6012db 100644 --- a/web/src/main/resources/application-prod.yml +++ b/web/src/main/resources/application-prod.yml @@ -49,11 +49,13 @@ videoStyleConfig: videoStyleRow: 2 videoStyleColumn: 2 # ------------光源--- -# -------------type 0:没有光源 1:JYDam -# -----------1:JYDam 配置num和index +# -------------type 0:没有光源 1:JYDam 2:视觉控制器 +# -----------1:JYDam 配置num和index num:总共多少个控制口 index:需要控制的是哪个 lightSource: type: 1 info: "{'num':2,'index':0}" + num: 2 + index: 0 # -----------扫码枪 # ------------type 1: sick sensor: