src/main/java/com/ard/alarm/apponekey/service/impl/ArdAlarmApponekeyServiceImpl.java
@@ -4,7 +4,7 @@ import com.alibaba.fastjson2.JSON; import com.ard.utils.mqtt.MqttProducer; import com.ard.utils.uuid.IdUtils; import com.ard.utils.util.IdUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import com.ard.alarm.apponekey.domain.ArdAlarmApponekey; src/main/java/com/ard/alarm/camera/service/impl/ArdCamerasServiceImpl.java
@@ -9,9 +9,7 @@ import com.ard.alarm.camera.domain.ArdCameras; import com.ard.alarm.camera.mapper.ArdCamerasMapper; import com.ard.alarm.camera.service.IArdCamerasService; import com.ard.alarm.external.domain.ArdEquipExternal; import com.ard.alarm.external.mapper.ArdEquipExternalMapper; import com.ard.utils.hiksdk.service.impl.HikClientUtil; import com.ard.utils.sdk.hiksdk.service.impl.HikClientUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.extern.slf4j.Slf4j; @@ -20,7 +18,6 @@ import org.springframework.core.annotation.Order; import org.springframework.stereotype.Service; import javax.annotation.PostConstruct; import javax.annotation.Resource; /** src/main/java/com/ard/alarm/digitization/config/Digit3Configuration.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,20 @@ package com.ard.alarm.digitization.config; import lombok.Data; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; /** * @Description: * @ClassName: Digit3Configuration * @Author: åèä¹ * @Date: 2023å¹´12æ05æ¥8:58:02 **/ @Data @Configuration @ConfigurationProperties("digitization3") public class Digit3Configuration { private Boolean enabled; } src/main/java/com/ard/alarm/digitization/service/impl/DataBridgeServiceImpl.java
@@ -1,6 +1,7 @@ package com.ard.alarm.digitization.service.impl; import com.alibaba.fastjson2.JSON; import com.ard.alarm.digitization.config.Digit3Configuration; import com.ard.alarm.digitization.model.DataBridge; import com.ard.alarm.digitization.service.DataBridgeService; import com.ard.utils.jdbc.Query; @@ -10,6 +11,7 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; import java.util.List; @@ -25,14 +27,14 @@ public class DataBridgeServiceImpl implements DataBridgeService { public static Date lastTime; @Value("${spring.digitization3.enabled}") private Boolean enabled; @Resource Digit3Configuration digit3Config; @Scheduled(cron = "0/5 * * * * ?") public void alarmHandler() { List<DataBridge> dataBridgeList; try { if(!enabled) if(!digit3Config.getEnabled()) { return; } src/main/java/com/ard/alarm/external/service/impl/ArdEquipExternalServiceImpl.java
@@ -6,14 +6,12 @@ import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import com.ard.alarm.camera.domain.ArdCameras; import com.ard.alarm.external.domain.ArdEquipExternal; import com.ard.alarm.external.mapper.ArdEquipExternalMapper; import com.ard.alarm.external.service.IArdEquipExternalService; import com.ard.utils.hiksdk.service.impl.HikClientUtil; import com.ard.utils.sdk.hiksdk.service.impl.HikClientUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.core.annotation.Order; src/main/java/com/ard/alarm/radar/controller/RadarController.java
@@ -4,9 +4,9 @@ import com.ard.alarm.radar.domain.GuideInfo; import com.ard.alarm.radar.service.IArdEquipRadarService; import com.ard.utils.http.AjaxResult; import com.ard.utils.other.ByteUtils; import com.ard.utils.other.GisUtils; import com.ard.utils.tcp.ClientInitialize; import com.ard.utils.util.ByteUtils; import com.ard.utils.util.GisUtils; import com.ard.utils.netty.tcp.ClientInitialize; import io.netty.buffer.ByteBuf; import io.netty.channel.Channel; import lombok.extern.slf4j.Slf4j; @@ -16,8 +16,6 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import static jdk.nashorn.internal.runtime.regexp.joni.Config.log; /** * @Description: é·è¾¾æ¥å£ src/main/java/com/ard/alarm/stealelec/config/StealElecConfiguration.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,21 @@ package com.ard.alarm.stealelec.config; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; /** * @Description: * @ClassName: StealElecConfiguration * @Author: åèä¹ * @Date: 2023å¹´12æ05æ¥9:00:33 **/ @Configuration @Data @ConfigurationProperties(prefix = "stealelec") public class StealElecConfiguration { private String url; private Boolean enabled; } src/main/java/com/ard/alarm/stealelec/service/StealElecAlarmService.java
@@ -2,6 +2,7 @@ import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.ard.alarm.stealelec.config.StealElecConfiguration; import com.ard.alarm.stealelec.domain.ArdAlarmStealelec; import com.ard.utils.http.HttpUtils; import com.ard.utils.mqtt.MqttProducer; @@ -11,6 +12,7 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -26,10 +28,8 @@ @Service public class StealElecAlarmService { @Value("${spring.stealelec.url}") private String stealElecUrl; @Value("${spring.stealelec.enabled}") private Boolean enabled; @Resource StealElecConfiguration stealElecConfig; List<String> tempList = new ArrayList<>(); /** @@ -44,10 +44,10 @@ @Scheduled(cron = "0/5 * * * * ?") public void alarmHandler() { try { if (!enabled) { if (!stealElecConfig.getEnabled()) { return; } String allAlarmData = HttpUtils.sendGet(stealElecUrl); String allAlarmData = HttpUtils.sendGet(stealElecConfig.getUrl()); //å餿æ\ç¬¦å· String message = allAlarmData.replaceAll("\\\\", ""); //å餿´ä¸ªå符串é¦å°¾åå¼å· src/main/java/com/ard/alarm/tube/service/TubeAlarmService.java
@@ -1,15 +1,19 @@ package com.ard.alarm.tube.service; import com.alibaba.fastjson2.JSON; import com.ard.utils.other.DateUtils; import com.ard.utils.netty.config.NettyUdpConfiguration; import com.ard.utils.util.DateUtils; import com.ard.utils.mqtt.MqttProducer; import com.ard.utils.udp.NettyUdpServer; import io.netty.bootstrap.Bootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelOption; import io.netty.channel.EventLoopGroup; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.nio.NioDatagramChannel; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.annotation.Order; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import javax.annotation.PostConstruct; import javax.annotation.Resource; import java.util.HashMap; @@ -24,25 +28,7 @@ **/ @Service @Slf4j(topic = "tube") @Order(3) public class TubeAlarmService { @Resource NettyUdpServer nettyUdpServer; @Value("${spring.netty.udp.port}") private Integer udpPort; @Value("${spring.netty.udp.enabled}") private String UdpServerEnable; @PostConstruct public void init() { if (UdpServerEnable.equals("false")) { return; } nettyUdpServer.init(udpPort); log.debug("管线æ³é²UDPæå¡å·²å¯å¨"); } @Async("alarm") public void alarmHandler(String message) { @@ -81,6 +67,5 @@ log.error("tubeæ¥è¦æ°æ®æ¨éå¼å¸¸ï¼" + ex.getMessage()); } } } src/main/java/com/ard/utils/constants/Constants.java
ÎļþÃû´Ó src/main/java/com/ard/utils/Constants.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.ard.utils; package com.ard.utils.constants; /** * @Description: éç¨å¸¸éä¿¡æ¯ src/main/java/com/ard/utils/http/HttpUtils.java
@@ -18,11 +18,9 @@ import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import com.ard.utils.Constants; import com.ard.utils.constants.Constants; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * éç¨httpåéæ¹æ³ src/main/java/com/ard/utils/minio/MinioConfig.java
@@ -1,7 +1,9 @@ package com.ard.utils.minio; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -14,13 +16,12 @@ @Configuration @Slf4j(topic = "minio") @ConfigurationProperties("minio") @Data public class MinioConfig { @Value("${spring.minio.endpoint}") private String endpoint; @Value("${spring.minio.accessKey}") private String accessKey; @Value("${spring.minio.secretKey}") private String secretKey; @Bean @@ -29,4 +30,4 @@ log.info("åå§åminioé ç½®"+"ã"+endpoint+"("+accessKey+"/"+secretKey+")ã"); return new MinioUtil(endpoint,accessKey,secretKey); } } } src/main/java/com/ard/utils/minio/MinioUtil.java
@@ -1,7 +1,7 @@ package com.ard.utils.minio; import com.ard.utils.other.StringUtils; import com.ard.utils.uuid.IdUtils; import com.ard.utils.util.StringUtils; import com.ard.utils.util.IdUtils; import io.minio.*; import io.minio.http.Method; import io.minio.messages.*; src/main/java/com/ard/utils/mqtt/MqttConfiguration.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,32 @@ package com.ard.utils.mqtt; import lombok.Data; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; /** * @Description: * @ClassName: MqttConfiguration * @Author: åèä¹ * @Date: 2023å¹´12æ05æ¥8:51:24 **/ @Data @Configuration @ConfigurationProperties("mqtt") public class MqttConfiguration { private Boolean enabled; private String host; private String clientId; private String username; private String password; private int timeout; private int keepalive; } src/main/java/com/ard/utils/mqtt/MqttProducer.java
@@ -9,6 +9,7 @@ import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.io.UnsupportedEncodingException; /** @@ -22,27 +23,15 @@ @Slf4j(topic = "mqtt") @Order(1) public class MqttProducer implements ApplicationRunner { @Value("${spring.mqtt.enabled}") private Boolean MQTT_ENABLED; @Value("${spring.mqtt.host}") private String MQTT_HOST; @Value("${spring.mqtt.clientId}") private String MQTT_CLIENT_ID; @Value("${spring.mqtt.username}") private String MQTT_USER_NAME; @Value("${spring.mqtt.password}") private String MQTT_PASSWORD; @Value("${spring.mqtt.timeout}") private int MQTT_TIMEOUT; @Value("${spring.mqtt.keepalive}") private int MQTT_KEEP_ALIVE; @Resource MqttConfiguration mqttConfig; private static MqttClient client; @Override public void run(ApplicationArguments args) { log.debug("åå§åå¹¶å¯å¨mqtt......"); if (MQTT_ENABLED) { if (mqttConfig.getEnabled()) { this.connect(); } } @@ -70,7 +59,7 @@ public void getClient() { try { if (null == client) { client = new MqttClient(MQTT_HOST, MQTT_CLIENT_ID, new MemoryPersistence()); client = new MqttClient(mqttConfig.getHost(), mqttConfig.getClientId(), new MemoryPersistence()); } log.debug("--å建mqtt客æ·ç«¯"); } catch (Exception e) { @@ -84,12 +73,12 @@ public MqttConnectOptions getOptions() { MqttConnectOptions options = new MqttConnectOptions(); //è®¾ç½®ç¨æ·åå¯ç options.setUserName(MQTT_USER_NAME); options.setPassword(MQTT_PASSWORD.toCharArray()); options.setUserName(mqttConfig.getUsername()); options.setPassword(mqttConfig.getPassword().toCharArray()); // è®¾ç½®è¶ æ¶æ¶é´ options.setConnectionTimeout(MQTT_TIMEOUT); options.setConnectionTimeout(mqttConfig.getTimeout()); // 设置ä¼è¯å¿è·³æ¶é´ options.setKeepAliveInterval(MQTT_KEEP_ALIVE); options.setKeepAliveInterval(mqttConfig.getKeepalive()); // æ¯å¦æ¸ é¤session options.setCleanSession(false); log.debug("--çæmqtté 置对象"); src/main/java/com/ard/utils/netty/config/NettyTcpConfiguration.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,18 @@ package com.ard.utils.netty.config; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; /** * @Description: * @ClassName: NettyTcpConfiguration * @Author: åèä¹ * @Date: 2023å¹´12æ05æ¥9:14:16 **/ @Configuration @Data @ConfigurationProperties(prefix = "netty.tcp") public class NettyTcpConfiguration { Boolean enabled; } src/main/java/com/ard/utils/netty/config/NettyUdpConfiguration.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,21 @@ package com.ard.utils.netty.config; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; /** * @Description: * @ClassName: NettyConfiguration * @Author: åèä¹ * @Date: 2023å¹´12æ05æ¥9:07:18 **/ @Configuration @Data @ConfigurationProperties(prefix = "netty.udp") public class NettyUdpConfiguration { private Integer port; private Boolean enabled; } src/main/java/com/ard/utils/netty/tcp/ClientHandler.java
ÎļþÃû´Ó src/main/java/com/ard/utils/tcp/ClientHandler.java ÐÞ¸Ä @@ -1,11 +1,11 @@ package com.ard.utils.tcp; package com.ard.utils.netty.tcp; import com.alibaba.fastjson2.JSON; import com.ard.alarm.radar.domain.ArdAlarmRadar; import com.ard.alarm.radar.domain.ArdEquipRadar; import com.ard.alarm.radar.domain.RadarAlarmData; import com.ard.utils.other.ByteUtils; import com.ard.utils.other.GisUtils; import com.ard.utils.util.ByteUtils; import com.ard.utils.util.GisUtils; import com.ard.utils.mqtt.MqttProducer; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; @@ -13,7 +13,6 @@ import io.netty.channel.SimpleChannelInboundHandler; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import javax.xml.bind.DatatypeConverter; import java.net.InetSocketAddress; @@ -22,7 +21,7 @@ import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import static com.ard.utils.other.ByteUtils.toLittleEndian; import static com.ard.utils.util.ByteUtils.toLittleEndian; /** * @Description: 客æ·ç«¯å¤çå¨ src/main/java/com/ard/utils/netty/tcp/ClientInitialize.java
ÎļþÃû´Ó src/main/java/com/ard/utils/tcp/ClientInitialize.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.ard.utils.tcp; package com.ard.utils.netty.tcp; /** * @Description: @@ -10,19 +10,18 @@ import com.ard.alarm.radar.domain.ArdEquipRadar; import com.ard.alarm.radar.service.IArdEquipRadarService; import com.ard.utils.netty.config.NettyTcpConfiguration; import io.netty.bootstrap.Bootstrap; import io.netty.channel.*; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.SocketChannel; import io.netty.channel.socket.nio.NioSocketChannel; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; import javax.annotation.Resource; import java.util.*; import java.util.concurrent.CompletableFuture; @@ -39,12 +38,10 @@ @Slf4j(topic = "netty") @Order(2) public class ClientInitialize implements ApplicationRunner { @Resource NettyTcpConfiguration nettyTcpConfig; @Resource IArdEquipRadarService ardEquipRadarService; @Value("${spring.netty.tcp.enabled}") private Boolean tcpClientEnable; private Bootstrap bootstrap; public static CopyOnWriteArraySet<ArdEquipRadar> falseConnectSet = new CopyOnWriteArraySet(); @@ -127,7 +124,7 @@ */ @Override public void run(ApplicationArguments args) { if (!tcpClientEnable) { if (!nettyTcpConfig.getEnabled()) { return; } initNettyTcp();//åå§ånettyTcp @@ -135,7 +132,7 @@ for (ArdEquipRadar ardEquipRadar : ardEquipRadars) { String host = ardEquipRadar.getIp(); Integer port = Integer.valueOf(ardEquipRadar.getPort()); log.debug("TCP client try to connect radarãï¼" + host + ":" + port+"ã"); log.debug("TCP client try to connect radarã" + host + ":" + port+"ã"); connectServer(ardEquipRadar);//è¿æ¥æ¯ä¸ä¸ªé·è¾¾æå¡ } } src/main/java/com/ard/utils/netty/tcp/DynamicClient.java
ÎļþÃû´Ó src/main/java/com/ard/utils/tcp/DynamicClient.java ÐÞ¸Ä @@ -1,13 +1,13 @@ package com.ard.utils.tcp; package com.ard.utils.netty.tcp; import com.ard.alarm.radar.domain.ArdEquipRadar; import com.ard.alarm.radar.service.IArdEquipRadarService; import com.ard.utils.netty.config.NettyTcpConfiguration; import io.netty.bootstrap.Bootstrap; import io.netty.channel.*; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.nio.NioSocketChannel; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.ApplicationArguments; import org.springframework.stereotype.Component; import javax.annotation.Resource; @@ -28,9 +28,8 @@ public class DynamicClient { @Resource IArdEquipRadarService ardEquipRadarService; @Value("${spring.netty.tcp.enabled}") private Boolean tcpClientEnable; @Resource NettyTcpConfiguration nettyTcpConfig; private static List<Channel> serverChannels = new ArrayList<>(); public static ConcurrentHashMap<Channel, ArdEquipRadar> ConnectMap = new ConcurrentHashMap(); @@ -128,7 +127,7 @@ */ //@Override public void run(ApplicationArguments args) { if (!tcpClientEnable) { if (!nettyTcpConfig.getEnabled()) { return; } EventLoopGroup group = new NioEventLoopGroup(); src/main/java/com/ard/utils/netty/tcp/DynamicClientHandler.java
ÎļþÃû´Ó src/main/java/com/ard/utils/tcp/DynamicClientHandler.java ÐÞ¸Ä @@ -1,12 +1,12 @@ package com.ard.utils.tcp; package com.ard.utils.netty.tcp; import com.alibaba.fastjson2.JSON; import com.ard.alarm.radar.domain.ArdAlarmRadar; import com.ard.alarm.radar.domain.ArdEquipRadar; import com.ard.alarm.radar.domain.RadarAlarmData; import com.ard.utils.mqtt.MqttProducer; import com.ard.utils.other.ByteUtils; import com.ard.utils.other.GisUtils; import com.ard.utils.util.ByteUtils; import com.ard.utils.util.GisUtils; import io.netty.buffer.ByteBuf; import io.netty.channel.Channel; import io.netty.channel.ChannelHandlerContext; @@ -18,8 +18,8 @@ import java.util.*; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import static com.ard.utils.other.ByteUtils.byteToBitString; import static com.ard.utils.other.ByteUtils.toLittleEndian; import static com.ard.utils.util.ByteUtils.byteToBitString; import static com.ard.utils.util.ByteUtils.toLittleEndian; /** * @Description: 客æ·ç«¯æ°æ®å¤çå¨ï¼å¤ç¨ï¼ src/main/java/com/ard/utils/netty/tcp/DynamicClientInitializer.java
ÎļþÃû´Ó src/main/java/com/ard/utils/tcp/DynamicClientInitializer.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.ard.utils.tcp; package com.ard.utils.netty.tcp; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelPipeline; src/main/java/com/ard/utils/netty/tcp/MessageParsing.java
ÎļþÃû´Ó src/main/java/com/ard/utils/tcp/MessageParsing.java ÐÞ¸Ä @@ -1,6 +1,6 @@ package com.ard.utils.tcp; package com.ard.utils.netty.tcp; import com.ard.utils.other.ByteUtils; import com.ard.utils.util.ByteUtils; import javax.xml.bind.DatatypeConverter; import java.util.ArrayList; src/main/java/com/ard/utils/netty/udp/InitUdpServer.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,29 @@ package com.ard.utils.netty.udp; import com.ard.utils.netty.config.NettyUdpConfiguration; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; import javax.annotation.Resource; /** * @Description: åå§åå¯å¨nettyUdpæå¡ * @ClassName: InitUdpServer * @Author: åèä¹ * @Date: 2023å¹´12æ05æ¥9:59:50 **/ @Component public class InitUdpServer { @Resource NettyUdpServer nettyUdpServer; @Resource NettyUdpConfiguration nettyUdpConfig; @PostConstruct void start() { if(nettyUdpConfig.getEnabled()) { nettyUdpServer.start(nettyUdpConfig.getPort()); } } } src/main/java/com/ard/utils/netty/udp/NettyUdpHandler.java
ÎļþÃû´Ó src/main/java/com/ard/utils/udp/NettyUdpHandler.java ÐÞ¸Ä @@ -1,7 +1,7 @@ package com.ard.utils.udp; package com.ard.utils.netty.udp; import com.ard.alarm.tube.service.TubeAlarmService; import com.ard.utils.spring.SpringUtils; import com.ard.utils.util.SpringUtils; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.channel.ChannelHandlerContext; @@ -11,7 +11,7 @@ import java.nio.charset.Charset; @Slf4j(topic = "tube") @Slf4j(topic = "netty") public class NettyUdpHandler extends SimpleChannelInboundHandler<DatagramPacket> { @Override src/main/java/com/ard/utils/netty/udp/NettyUdpServer.java
ÎļþÃû´Ó src/main/java/com/ard/utils/udp/NettyUdpServer.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.ard.utils.udp; package com.ard.utils.netty.udp; import io.netty.bootstrap.Bootstrap; import io.netty.channel.ChannelFuture; @@ -11,15 +11,20 @@ import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.stereotype.Component; /** * nettyæå¡å¼æ¥åå§å * åèä¹ * 2023/12/5 10:04:51 */ @EnableAsync @Component @Slf4j(topic = "tube") @Slf4j(topic = "netty") public class NettyUdpServer { /** * å¯å¨æå¡ */ @Async("alarm") public void init(int port) { public void start(int port) { //表示æå¡å¨è¿æ¥çå¬çº¿ç¨ç»ï¼ä¸é¨æ¥å accept æ°ç客æ·ç«¯client è¿æ¥ EventLoopGroup bossLoopGroup = new NioEventLoopGroup(); try { src/main/java/com/ard/utils/sdk/hiksdk/common/GlobalVariable.java
ÎļþÃû´Ó src/main/java/com/ard/utils/hiksdk/common/GlobalVariable.java ÐÞ¸Ä @@ -1,7 +1,6 @@ package com.ard.utils.hiksdk.common; package com.ard.utils.sdk.hiksdk.common; import com.ard.alarm.camera.domain.ArdCameras; import com.ard.alarm.external.domain.ArdEquipExternal; import lombok.Data; import java.util.HashMap; import java.util.Map; src/main/java/com/ard/utils/sdk/hiksdk/domain/AccessControlHostEventInfo.java
ÎļþÃû´Ó src/main/java/com/ard/utils/hiksdk/domain/AccessControlHostEventInfo.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.ard.utils.hiksdk.domain; package com.ard.utils.sdk.hiksdk.domain; import lombok.Data; src/main/java/com/ard/utils/sdk/hiksdk/domain/CameraEventInfo.java
ÎļþÃû´Ó src/main/java/com/ard/utils/hiksdk/domain/CameraEventInfo.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.ard.utils.hiksdk.domain; package com.ard.utils.sdk.hiksdk.domain; import lombok.Data; src/main/java/com/ard/utils/sdk/hiksdk/domain/DeviceInfo.java
ÎļþÃû´Ó src/main/java/com/ard/utils/hiksdk/domain/DeviceInfo.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.ard.utils.hiksdk.domain; package com.ard.utils.sdk.hiksdk.domain; import lombok.Data; src/main/java/com/ard/utils/sdk/hiksdk/domain/ExternalAlarmEventInfo.java
ÎļþÃû´Ó src/main/java/com/ard/utils/hiksdk/domain/ExternalAlarmEventInfo.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.ard.utils.hiksdk.domain; package com.ard.utils.sdk.hiksdk.domain; import lombok.Data; src/main/java/com/ard/utils/sdk/hiksdk/domain/FaceMatchEventInfo.java
ÎļþÃû´Ó src/main/java/com/ard/utils/hiksdk/domain/FaceMatchEventInfo.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.ard.utils.hiksdk.domain; package com.ard.utils.sdk.hiksdk.domain; import lombok.Data; src/main/java/com/ard/utils/sdk/hiksdk/domain/FaceSnapEventInfo.java
ÎļþÃû´Ó src/main/java/com/ard/utils/hiksdk/domain/FaceSnapEventInfo.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.ard.utils.hiksdk.domain; package com.ard.utils.sdk.hiksdk.domain; import lombok.Data; src/main/java/com/ard/utils/sdk/hiksdk/domain/recordInfo.java
ÎļþÃû´Ó src/main/java/com/ard/utils/hiksdk/domain/recordInfo.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.ard.utils.hiksdk.domain; package com.ard.utils.sdk.hiksdk.domain; import lombok.AllArgsConstructor; import lombok.Data; src/main/java/com/ard/utils/sdk/hiksdk/service/impl/FMSGCallBack.java
ÎļþÃû´Ó src/main/java/com/ard/utils/hiksdk/service/impl/FMSGCallBack.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.ard.utils.hiksdk.service.impl; package com.ard.utils.sdk.hiksdk.service.impl; import com.alibaba.fastjson2.JSON; import com.ard.alarm.camera.domain.ArdCameras; @@ -6,14 +6,14 @@ import com.ard.alarm.camera.service.impl.ArdCamerasServiceImpl; import com.ard.alarm.external.domain.ArdEquipExternal; import com.ard.alarm.external.service.impl.ArdEquipExternalServiceImpl; import com.ard.utils.hiksdk.domain.*; import com.ard.utils.sdk.hiksdk.domain.*; import com.ard.utils.minio.MinioUtil; import com.ard.utils.other.ByteUtils; import com.ard.utils.hiksdk.common.GlobalVariable; import com.ard.utils.hiksdk.util.hikSdkUtil.HCNetSDK; import com.ard.utils.other.DateUtils; import com.ard.utils.util.ByteUtils; import com.ard.utils.sdk.hiksdk.common.GlobalVariable; import com.ard.utils.sdk.hiksdk.util.hikSdkUtil.HCNetSDK; import com.ard.utils.util.DateUtils; import com.ard.utils.mqtt.MqttProducer; import com.ard.utils.uuid.IdUtils; import com.ard.utils.util.IdUtils; import com.sun.jna.Pointer; import lombok.extern.slf4j.Slf4j; @@ -23,7 +23,7 @@ import java.util.Date; import java.util.Optional; import static com.ard.utils.hiksdk.util.hikSdkUtil.HCNetSDK.*; import static com.ard.utils.sdk.hiksdk.util.hikSdkUtil.HCNetSDK.*; /** * @ClassName: FMSGCallBack src/main/java/com/ard/utils/sdk/hiksdk/service/impl/HikClientUtil.java
ÎļþÃû´Ó src/main/java/com/ard/utils/hiksdk/service/impl/HikClientUtil.java ÐÞ¸Ä @@ -1,532 +1,530 @@ package com.ard.utils.hiksdk.service.impl; import com.ard.alarm.camera.domain.ArdCameras; import com.ard.alarm.camera.domain.CameraCmd; import com.ard.alarm.external.domain.ArdEquipExternal; import com.ard.utils.minio.MinioUtil; import com.ard.utils.other.ByteUtils; import com.ard.utils.hiksdk.common.GlobalVariable; import com.ard.utils.hiksdk.domain.DeviceInfo; import com.ard.utils.hiksdk.util.hikSdkUtil.HCNetSDK; import com.ard.utils.spring.SpringUtils; import com.sun.jna.Native; import com.sun.jna.Platform; import com.sun.jna.Pointer; import com.sun.jna.ptr.IntByReference; import lombok.extern.slf4j.Slf4j; import java.io.*; import java.nio.ByteBuffer; import java.util.*; /** * @ClassName: hikClientServiceImpl * @Description: 海康æä½å®¢æ·ç«¯å®ç°ç±» * @Author: Administrator * @Date: 2023å¹´01æ17æ¥ 11:25 * @Version: 1.2 **/ @Slf4j(topic = "hikSdk") public class HikClientUtil { public static HCNetSDK hCNetSDK = HCNetSDK.hCNetSDK; // æ¥è¦åè°å½æ°å®ç° public static HCNetSDK.FMSGCallBack_V31 fMSFCallBack_V31; /** * @æè¿° 注åç»å½ åªæ¯æåæ¥ç»éï¼ä¸å®æ¹ä¸å»ºè®®ç´æ¥å¨æ¤æ¥å£ä¸åèæ¶æä½ * @åæ° [dvrLogin] * @è¿åå¼ java.lang.Integer * @å建人 åèä¹ * @å建æ¶é´ 2023/1/17 16:12 * @ä¿®æ¹äººåå ¶å®ä¿¡æ¯ */ public ArdCameras login1(ArdCameras camera) { // åå§å if (!hCNetSDK.NET_DVR_Init()) { log.error("SDKåå§å失败"); } //æå°æµ·åº·sdkæ¥å¿ if (Platform.isWindows()) { String WIN_PATH = System.getProperty("user.dir") + File.separator + "ardLog" + File.separator + "logs" + File.separator; hCNetSDK.NET_DVR_SetLogToFile(3, WIN_PATH, true); } else { hCNetSDK.NET_DVR_SetLogToFile(3, "/home/ardLog/hiklog", true); } String m_sDeviceIP = camera.getIp(); String m_sUsername = camera.getUsername(); String m_sPassword = camera.getPassword(); short m_sPort = camera.getPort().shortValue(); //è®¾ç½®è¿æ¥æ¶é´ä¸éè¿æ¶é´ hCNetSDK.NET_DVR_SetConnectTime(2000, 1); hCNetSDK.NET_DVR_SetReconnect(100000, true); //设å¤ä¿¡æ¯, è¾åºåæ° HCNetSDK.NET_DVR_DEVICEINFO_V30 m_strDeviceInfo = new HCNetSDK.NET_DVR_DEVICEINFO_V30(); int lUserID = hCNetSDK.NET_DVR_Login_V30(m_sDeviceIP, m_sPort, m_sUsername, m_sPassword, m_strDeviceInfo); if (lUserID < 0) { //éæ¾SDKèµæº hCNetSDK.NET_DVR_Cleanup(); camera.setLoginId(-1); } if (GlobalVariable.loginMap.containsKey(camera.getId())) { GlobalVariable.loginMap.remove(camera.getId()); } GlobalVariable.loginMap.put(camera.getId(), lUserID); camera.setLoginId(lUserID); camera.setChannel((int) m_strDeviceInfo.byStartChan); return camera; } /** * @æè¿° 注åç»å½ éæäºNET_DVR_Login_V30ï¼æ¯æåæ¥å弿¥ç»å½ * @å建人 åèä¹ * @å建æ¶é´ 2023/1/17 16:12 */ public static void login(DeviceInfo deviceInfo) { // åå§å if (!hCNetSDK.NET_DVR_Init()) { log.error("SDKåå§å失败"); } //æå°æµ·åº·sdkæ¥å¿ if (Platform.isWindows()) { String WIN_PATH = System.getProperty("user.dir") + File.separator + "ardLog" + File.separator + "logs" + File.separator; hCNetSDK.NET_DVR_SetLogToFile(3, WIN_PATH, true); } else { hCNetSDK.NET_DVR_SetLogToFile(3, "/home/ardLog/hiklog", true); } String m_sDeviceIP = deviceInfo.getIp(); String m_sUsername = deviceInfo.getUsername(); String m_sPassword = deviceInfo.getPassword(); short m_sPort = deviceInfo.getPort().shortValue(); //è®¾ç½®è¿æ¥æ¶é´ä¸éè¿æ¶é´ hCNetSDK.NET_DVR_SetConnectTime(2000, 1); hCNetSDK.NET_DVR_SetReconnect(100000, true); //设å¤ä¿¡æ¯, è¾åºåæ° HCNetSDK.NET_DVR_DEVICEINFO_V40 m_strDeviceInfo = new HCNetSDK.NET_DVR_DEVICEINFO_V40(); HCNetSDK.NET_DVR_USER_LOGIN_INFO m_strLoginInfo = new HCNetSDK.NET_DVR_USER_LOGIN_INFO(); // 注å设å¤-ç»å½åæ°ï¼å æ¬è®¾å¤å°åãç»å½ç¨æ·ãå¯ç ç m_strLoginInfo.sDeviceAddress = new byte[HCNetSDK.NET_DVR_DEV_ADDRESS_MAX_LEN]; System.arraycopy(m_sDeviceIP.getBytes(), 0, m_strLoginInfo.sDeviceAddress, 0, m_sDeviceIP.length()); m_strLoginInfo.sUserName = new byte[HCNetSDK.NET_DVR_LOGIN_USERNAME_MAX_LEN]; System.arraycopy(m_sUsername.getBytes(), 0, m_strLoginInfo.sUserName, 0, m_sUsername.length()); m_strLoginInfo.sPassword = new byte[HCNetSDK.NET_DVR_LOGIN_PASSWD_MAX_LEN]; System.arraycopy(m_sPassword.getBytes(), 0, m_strLoginInfo.sPassword, 0, m_sPassword.length()); m_strLoginInfo.wPort = m_sPort; m_strLoginInfo.byVerifyMode = 0; m_strLoginInfo.byLoginMode = 0; //æ¯å¦å¼æ¥ç»å½ï¼0- å¦ï¼1- æ¯ windowsSDK鿝trueåfalse m_strLoginInfo.bUseAsynLogin = true; //弿¥ç»å½åè° m_strLoginInfo.cbLoginResult = new LoginResultCallBack(deviceInfo); m_strLoginInfo.write(); int i = hCNetSDK.NET_DVR_Login_V40(m_strLoginInfo, m_strDeviceInfo); if (i < 0) { int errorCode = hCNetSDK.NET_DVR_GetLastError(); log.error("ç»å½å¼å¸¸ï¼" + errorCode); } } /** * @æè¿° ç¨æ·æ³¨é * @å建人 åèä¹ * @å建æ¶é´ 2023/1/17 16:12 */ public static void logout(DeviceInfo deviceInfo) { String deviceIpPort = deviceInfo.getIp() + ":" + deviceInfo.getPort(); //æ¤é² if (GlobalVariable.alarmMap.containsKey(deviceInfo.getDeviceId())) { Integer lAlarmHandle = GlobalVariable.alarmMap.get(deviceInfo.getDeviceId()); boolean b = hCNetSDK.NET_DVR_CloseAlarmChan_V30(lAlarmHandle); if (b) { log.debug("设å¤ã" + deviceIpPort + "ãæ¤é²æå"); } } //ç»åº if (GlobalVariable.loginMap.containsKey(deviceInfo.getDeviceId())) { Integer lUserID = GlobalVariable.loginMap.get(deviceInfo.getDeviceId()); boolean b = hCNetSDK.NET_DVR_Logout(lUserID); if (b) { log.debug("设å¤ã" + deviceIpPort + "ãæ³¨éæå"); } } } /** * @æè¿° ç»å½ææç¸æº * @å建人 åèä¹ * @å建æ¶é´ 2023/2/3 10:10 */ public static void loginAllCamera(List<ArdCameras> ardCameras) { try { for (ArdCameras camera : ardCameras) { Thread.sleep(100); DeviceInfo info = new DeviceInfo(); info.setDeviceId(camera.getId()); info.setIp(camera.getIp()); info.setPort(camera.getPort()); info.setUsername(camera.getUsername()); info.setPassword(camera.getPassword()); login(info); String key = camera.getIp() + ":" + camera.getPort(); GlobalVariable.cameraMap.put(key, camera); } } catch (Exception ex) { log.error("åå§åç»å½ç¸æºå¼å¸¸ï¼" + ex.getMessage()); } } /** * @æè¿° ç»åºææç¸æº * @å建人 åèä¹ * @å建æ¶é´ 2023/2/3 10:10 */ public static void logoutAllCamera(List<ArdCameras> ardCameras) { try { for (ArdCameras camera : ardCameras) { Thread.sleep(100); DeviceInfo info = new DeviceInfo(); info.setDeviceId(camera.getId()); info.setIp(camera.getIp()); info.setPort(camera.getPort()); info.setUsername(camera.getUsername()); info.setPassword(camera.getPassword()); logout(info); String key = camera.getIp() + ":" + camera.getPort(); GlobalVariable.cameraMap.remove(key); } } catch (Exception ex) { log.error("åå§åç»å½ç¸æºå¼å¸¸ï¼" + ex.getMessage()); } } /** * @æè¿° ç»å½æææ¥è¦ä¸»æº * @å建人 åèä¹ * @å建æ¶é´ 2023/2/3 10:10 */ public static void loginAllAlarmHost(List<ArdEquipExternal> ardEquipExternals) { try { for (ArdEquipExternal alarmHost : ardEquipExternals) { Thread.sleep(100); DeviceInfo info = new DeviceInfo(); info.setDeviceId(alarmHost.getId()); info.setIp(alarmHost.getIp()); info.setPort(alarmHost.getPort()); info.setUsername(alarmHost.getUsername()); info.setPassword(alarmHost.getPassword()); login(info); // String key=alarmHost.getIp()+":"+alarmHost.getPort(); // GlobalVariable.alarmHostMap.put(key, alarmHost); } } catch (Exception ex) { log.error("ç»å½æææ¥è¦ä¸»æºå¼å¸¸ï¼" + ex.getMessage()); } } /** * @æè¿° ç»åºæææ¥è¦ä¸»æº * @å建人 åèä¹ * @å建æ¶é´ 2023/2/3 10:10 */ public static void logoutAllAlarmHost(List<ArdEquipExternal> ardEquipExternals) { try { for (ArdEquipExternal alarmHost : ardEquipExternals) { Thread.sleep(100); DeviceInfo info = new DeviceInfo(); info.setDeviceId(alarmHost.getId()); info.setIp(alarmHost.getIp()); info.setPort(alarmHost.getPort()); info.setUsername(alarmHost.getUsername()); info.setPassword(alarmHost.getPassword()); logout(info); // String key=alarmHost.getIp()+":"+alarmHost.getPort(); // GlobalVariable.alarmHostMap.remove(key); } } catch (Exception ex) { log.error("ç»åºæææ¥è¦ä¸»æºå¼å¸¸ï¼" + ex.getMessage()); } } /** * @æè¿° ç»å½ææé¨ç¦ä¸»æº * @å建人 åèä¹ * @å建æ¶é´ 2023/2/3 10:10 */ public static void loginAllAccessControlHost(List<ArdEquipExternal> ardEquipExternals) { try { for (ArdEquipExternal accessControlHost : ardEquipExternals) { Thread.sleep(100); DeviceInfo info = new DeviceInfo(); info.setDeviceId(accessControlHost.getId()); info.setIp(accessControlHost.getIp()); info.setPort(accessControlHost.getPort()); info.setUsername(accessControlHost.getUsername()); info.setPassword(accessControlHost.getPassword()); login(info); } } catch (Exception ex) { log.error("ç»å½ææé¨ç¦ä¸»æºå¼å¸¸ï¼" + ex.getMessage()); } } /** * @æè¿° ç»åºææé¨ç¦ä¸»æº * @å建人 åèä¹ * @å建æ¶é´ 2023/2/3 10:10 */ public static void logoutAllAccessControlHost(List<ArdEquipExternal> ardEquipExternals) { try { for (ArdEquipExternal accessControlHost : ardEquipExternals) { Thread.sleep(100); DeviceInfo info = new DeviceInfo(); info.setDeviceId(accessControlHost.getId()); info.setIp(accessControlHost.getIp()); info.setPort(accessControlHost.getPort()); info.setUsername(accessControlHost.getUsername()); info.setPassword(accessControlHost.getPassword()); logout(info); } } catch (Exception ex) { log.error("ç»åºææé¨ç¦ä¸»æºå¼å¸¸ï¼" + ex.getMessage()); } } /** * @æè¿° ç»å½ææè¶ è * @å建人 åèä¹ * @å建æ¶é´ 2023/2/3 10:10 */ public static void loginAllSuperBrainHost(List<ArdEquipExternal> ardEquipExternals) { try { for (ArdEquipExternal superBrainHost : ardEquipExternals) { Thread.sleep(100); DeviceInfo info = new DeviceInfo(); info.setDeviceId(superBrainHost.getId()); info.setIp(superBrainHost.getIp()); info.setPort(superBrainHost.getPort()); info.setUsername(superBrainHost.getUsername()); info.setPassword(superBrainHost.getPassword()); login(info); } } catch (Exception ex) { log.error("ç»å½ææè¶ èå¼å¸¸ï¼" + ex.getMessage()); } } /** * @æè¿° ç»åºææè¶ è * @å建人 åèä¹ * @å建æ¶é´ 2023/2/3 10:10 */ public static void logoutAllSuperBrainHost(List<ArdEquipExternal> ardEquipExternals) { try { for (ArdEquipExternal superBrainHost : ardEquipExternals) { Thread.sleep(100); DeviceInfo info = new DeviceInfo(); info.setDeviceId(superBrainHost.getId()); info.setIp(superBrainHost.getIp()); info.setPort(superBrainHost.getPort()); info.setUsername(superBrainHost.getUsername()); info.setPassword(superBrainHost.getPassword()); logout(info); // String key=accessControlHost.getIp()+":"+accessControlHost.getPort(); // GlobalVariable.accessHostMap.remove(key); } } catch (Exception ex) { log.error("ç»åºææè¶ èå¼å¸¸ï¼" + ex.getMessage()); } } /** * @æè¿° ç»å½ææå¤èè®¾å¤ * @å建人 åèä¹ * @å建æ¶é´ 2023/2/3 10:10 */ public static void loginAllArdEquipExternals(List<ArdEquipExternal> ardEquipExternals) { try { for (ArdEquipExternal ardEquipExternal : ardEquipExternals) { Thread.sleep(100); DeviceInfo info = new DeviceInfo(); info.setDeviceId(ardEquipExternal.getId()); info.setIp(ardEquipExternal.getIp()); info.setPort(ardEquipExternal.getPort()); info.setUsername(ardEquipExternal.getUsername()); info.setPassword(ardEquipExternal.getPassword()); login(info); } } catch (Exception ex) { log.error("ç»å½ææå¤è设å¤å¼å¸¸ï¼" + ex.getMessage()); } } /** * @æè¿° ç»åºææå¤èè®¾å¤ * @å建人 åèä¹ * @å建æ¶é´ 2023/2/3 10:10 */ public static void logoutAllArdEquipExternals(List<ArdEquipExternal> ardEquipExternals) { try { for (ArdEquipExternal ardEquipExternal : ardEquipExternals) { Thread.sleep(100); DeviceInfo info = new DeviceInfo(); info.setDeviceId(ardEquipExternal.getId()); info.setIp(ardEquipExternal.getIp()); info.setPort(ardEquipExternal.getPort()); info.setUsername(ardEquipExternal.getUsername()); info.setPassword(ardEquipExternal.getPassword()); logout(info); } } catch (Exception ex) { log.error("ç»åºææè¶ èå¼å¸¸ï¼" + ex.getMessage()); } } /** * 建ç«å¸é²ä¸ä¼ ééï¼ç¨äºä¼ è¾æ°æ® * * @param lUserID å¯ä¸æ è¯ç¬¦ * @param lAlarmHandle æ¥è¦å¤çå¨ */ public static int setupAlarmChan(String deviceIpPort, int lUserID, int lAlarmHandle) { // æ ¹æ®è®¾å¤æ³¨åçæçlUserID建ç«å¸é²çä¸ä¼ ééï¼å³æ°æ®çä¸ä¼ éé if (lUserID == -1) { log.error("è¯·å æ³¨å"); return lUserID; } if (lAlarmHandle < 0) { // 设å¤å°æªå¸é²,éè¦å è¿è¡å¸é² if (fMSFCallBack_V31 == null) { fMSFCallBack_V31 = new FMSGCallBack(); if (!hCNetSDK.NET_DVR_SetDVRMessageCallBack_V50(0, fMSFCallBack_V31, null)) { log.error("设置åè°å½æ°å¤±è´¥!é误ç ==========ã" + hCNetSDK.NET_DVR_GetLastError()); } } // è¿ééè¦å¯¹è®¾å¤è¿è¡ç¸åºçåæ°è®¾ç½®ï¼ä¸è®¾ç½®æè®¾ç½®é误é½ä¼å¯¼è´è®¾å¤æ³¨å失败 HCNetSDK.NET_DVR_SETUPALARM_PARAM m_strAlarmInfo = new HCNetSDK.NET_DVR_SETUPALARM_PARAM(); m_strAlarmInfo.dwSize = m_strAlarmInfo.size(); // æºè½äº¤éå¸é²ä¼å 级ï¼0 - ä¸ç级ï¼é«ï¼ï¼1 - äºç级ï¼ä¸ï¼ï¼2 - ä¸ç级ï¼ä½ï¼ m_strAlarmInfo.byLevel = 0; // æºè½äº¤éæ¥è¦ä¿¡æ¯ä¸ä¼ ç±»åï¼0 - èæ¥è¦ä¿¡æ¯ï¼NET_DVR_PLATE_RESULTï¼, 1 - æ°æ¥è¦ä¿¡æ¯(NET_ITS_PLATE_RESULT) m_strAlarmInfo.byAlarmInfoType = 1; // å¸é²ç±»å(ä» é对é¨ç¦ä¸»æºã人è¯è®¾å¤)ï¼0 - 客æ·ç«¯å¸é²(伿ç½ç»ä¼ )ï¼1 - 宿¶å¸é²(åªä¸ä¼ 宿¶æ°æ®) m_strAlarmInfo.byDeployType = 1; //äººè¸æ¥è¦ä¿¡æ¯ç±»åï¼1- 人è¸ä¾¦æµæ¥è¦ 0- äººè¸æææ¥è¦ m_strAlarmInfo.byFaceAlarmDetection = 0; m_strAlarmInfo.write(); // å¸é²æåï¼è¿åå¸é²æåçæ°æ®ä¼ è¾ééå· lAlarmHandle = hCNetSDK.NET_DVR_SetupAlarmChan_V41(lUserID, m_strAlarmInfo); if (lAlarmHandle == -1) { log.error("设å¤ã" + deviceIpPort + "ãå¸é²å¤±è´¥ï¼é误ç ==========ã" + hCNetSDK.NET_DVR_GetLastError()); } else { log.debug("设å¤ã" + deviceIpPort + "ãå¸é²æå"); } } return lAlarmHandle; } /** * 注é * * @param lUserID è®¾å¤æ³¨åæåå¯ä¸æ è¯ç¬¦ */ public static void logout(int lUserID) { // 注é hCNetSDK.NET_DVR_Logout(lUserID); // éæ¾sdkèµæº hCNetSDK.NET_DVR_Cleanup(); } /** * æå¾ * * @param cmd æå¾å½ä»¤ */ public static String picCutCate(CameraCmd cmd) { String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getChannelNum(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return ""; } Integer userId = GlobalVariable.loginMap.get(cameraId); //å¾çä¿¡æ¯ HCNetSDK.NET_DVR_JPEGPARA jpeg = new HCNetSDK.NET_DVR_JPEGPARA(); //设置å¾çå辨ç //å¾ç尺寸ï¼0-CIF(352*288/352*240)ï¼1-QCIF(176*144/176*120)ï¼2-4CIF(704*576/704*480)æD1(720*576/720*486)ï¼3-UXGA(1600*1200)ï¼ // 4-SVGA(800*600)ï¼5-HD720P(1280*720)ï¼6-VGA(640*480)ï¼7-XVGA(1280*960)ï¼8-HD900P(1600*900)ï¼9-HD1080P(1920*1080)ï¼10-2560*1920ï¼ // 11-1600*304ï¼12-2048*1536ï¼13-2448*2048ï¼14-2448*1200ï¼15-2448*800ï¼16-XGA(1024*768)ï¼17-SXGA(1280*1024)ï¼18-WD1(960*576/960*480), // 19-1080I(1920*1080)ï¼20-576*576ï¼21-1536*1536ï¼22-1920*1920ï¼23-320*240ï¼24-720*720ï¼25-1024*768ï¼26-1280*1280ï¼27-1600*600ï¼ // 28-2048*768ï¼29-160*120ï¼75-336*256ï¼78-384*256ï¼79-384*216ï¼80-320*256ï¼82-320*192ï¼83-512*384ï¼127-480*272ï¼128-512*272ï¼ 161-288*320ï¼ // 162-144*176ï¼163-480*640ï¼164-240*320ï¼165-120*160ï¼166-576*720ï¼167-720*1280ï¼168-576*960ï¼180-180*240, 181-360*480, 182-540*720, // 183-720*960, 184-960*1280, 185-1080*1440, 500-384*288, 0xff-Auto(使ç¨å½åç æµå辨ç) jpeg.wPicSize = 0; //设置å¾çè´¨éï¼0-æå¥½ï¼1-è¾å¥½ï¼2-ä¸è¬ jpeg.wPicQuality = 0; IntByReference a = new IntByReference(); //设置å¾çå¤§å° ByteBuffer jpegBuffer = ByteBuffer.allocate(1024 * 1024); // æå¾å°å åï¼åå¸§æ°æ®æè·å¹¶ä¿åæJPEG忾卿å®çå å空é´ä¸ // log.debug("-----------è¿éå¼å§å°è£ NET_DVR_CaptureJPEGPicture_NEW---------"); boolean is = hCNetSDK.NET_DVR_CaptureJPEGPicture_NEW(userId, channelNum, jpeg, jpegBuffer, 1024 * 1024, a); //log.debug("-----------è¿éå¼å§å¾çåå ¥å å----------" + is); if (is) { // log.debug("hksdk(æå¾)-ç»æç¶æå¼(0表示æå):" + hCNetSDK.NET_DVR_GetLastError()); byte[] array = jpegBuffer.array(); //åå¨å°minio String ContentType = "image/JPEG"; InputStream input = new ByteArrayInputStream(array); String url = ""; try { boolean b = MinioUtil.uploadObject(cmd.getBucketName(), cmd.getObjectName(), input, input.available(), ContentType); if (b) { url = MinioUtil.getBucketObjectUrl(cmd.getBucketName(), cmd.getObjectName()); // log.debug("ä¸ä¼ æä»¶æå!" + url); } } catch (Exception ex) { log.error("ä¸ä¼ æä»¶å¼å¸¸ï¼" + ex.getMessage()); } return url; } else { int code = hCNetSDK.NET_DVR_GetLastError(); log.debug("æå¾å¤±è´¥,请ç¨åéè¯" + code); return ""; } } /** * è·åé²åºåç§° * ééå·==é²åºå· ä»0å¼å§ * åèä¹ * 2023/7/6 10:48 */ public static String getDefenseZoneName(CameraCmd cmd) { String name = ""; try { String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getWZoneIndex();//ééå·==é²åºå· if (!GlobalVariable.loginMap.containsKey(cameraId)) { return name; } Integer userId = GlobalVariable.loginMap.get(cameraId); HCNetSDK.NET_DVR_ALARMIN_PARAM netDvrAlarminParam = new HCNetSDK.NET_DVR_ALARMIN_PARAM(); Pointer point = netDvrAlarminParam.getPointer(); IntByReference ibrBytesReturned = new IntByReference(); netDvrAlarminParam.write(); boolean b = hCNetSDK.NET_DVR_GetDVRConfig(userId, HCNetSDK.NET_DVR_GET_ALARMIN_PARAM, channelNum, point, netDvrAlarminParam.size(), ibrBytesReturned); if (b) { netDvrAlarminParam.read(); name = ByteUtils.bytesToStringZh(netDvrAlarminParam.byName); } else { int error = hCNetSDK.NET_DVR_GetLastError(); log.info("è·åé²åºå称失败:" + error); } } catch (Exception ex) { log.error("è·åé²åºåç§°å¼å¸¸:" + ex.getMessage()); } return name; } package com.ard.utils.sdk.hiksdk.service.impl; import com.ard.alarm.camera.domain.ArdCameras; import com.ard.alarm.camera.domain.CameraCmd; import com.ard.alarm.external.domain.ArdEquipExternal; import com.ard.utils.minio.MinioUtil; import com.ard.utils.util.ByteUtils; import com.ard.utils.sdk.hiksdk.common.GlobalVariable; import com.ard.utils.sdk.hiksdk.domain.DeviceInfo; import com.ard.utils.sdk.hiksdk.util.hikSdkUtil.HCNetSDK; import com.sun.jna.Platform; import com.sun.jna.Pointer; import com.sun.jna.ptr.IntByReference; import lombok.extern.slf4j.Slf4j; import java.io.*; import java.nio.ByteBuffer; import java.util.*; /** * @ClassName: hikClientServiceImpl * @Description: 海康æä½å®¢æ·ç«¯å®ç°ç±» * @Author: Administrator * @Date: 2023å¹´01æ17æ¥ 11:25 * @Version: 1.2 **/ @Slf4j(topic = "hikSdk") public class HikClientUtil { public static HCNetSDK hCNetSDK = HCNetSDK.hCNetSDK; // æ¥è¦åè°å½æ°å®ç° public static HCNetSDK.FMSGCallBack_V31 fMSFCallBack_V31; /** * @æè¿° 注åç»å½ åªæ¯æåæ¥ç»éï¼ä¸å®æ¹ä¸å»ºè®®ç´æ¥å¨æ¤æ¥å£ä¸åèæ¶æä½ * @åæ° [dvrLogin] * @è¿åå¼ java.lang.Integer * @å建人 åèä¹ * @å建æ¶é´ 2023/1/17 16:12 * @ä¿®æ¹äººåå ¶å®ä¿¡æ¯ */ public ArdCameras login1(ArdCameras camera) { // åå§å if (!hCNetSDK.NET_DVR_Init()) { log.error("SDKåå§å失败"); } //æå°æµ·åº·sdkæ¥å¿ if (Platform.isWindows()) { String WIN_PATH = System.getProperty("user.dir") + File.separator + "ardLog" + File.separator + "logs" + File.separator; hCNetSDK.NET_DVR_SetLogToFile(3, WIN_PATH, true); } else { hCNetSDK.NET_DVR_SetLogToFile(3, "/home/ardLog/hiklog", true); } String m_sDeviceIP = camera.getIp(); String m_sUsername = camera.getUsername(); String m_sPassword = camera.getPassword(); short m_sPort = camera.getPort().shortValue(); //è®¾ç½®è¿æ¥æ¶é´ä¸éè¿æ¶é´ hCNetSDK.NET_DVR_SetConnectTime(2000, 1); hCNetSDK.NET_DVR_SetReconnect(100000, true); //设å¤ä¿¡æ¯, è¾åºåæ° HCNetSDK.NET_DVR_DEVICEINFO_V30 m_strDeviceInfo = new HCNetSDK.NET_DVR_DEVICEINFO_V30(); int lUserID = hCNetSDK.NET_DVR_Login_V30(m_sDeviceIP, m_sPort, m_sUsername, m_sPassword, m_strDeviceInfo); if (lUserID < 0) { //éæ¾SDKèµæº hCNetSDK.NET_DVR_Cleanup(); camera.setLoginId(-1); } if (GlobalVariable.loginMap.containsKey(camera.getId())) { GlobalVariable.loginMap.remove(camera.getId()); } GlobalVariable.loginMap.put(camera.getId(), lUserID); camera.setLoginId(lUserID); camera.setChannel((int) m_strDeviceInfo.byStartChan); return camera; } /** * @æè¿° 注åç»å½ éæäºNET_DVR_Login_V30ï¼æ¯æåæ¥å弿¥ç»å½ * @å建人 åèä¹ * @å建æ¶é´ 2023/1/17 16:12 */ public static void login(DeviceInfo deviceInfo) { // åå§å if (!hCNetSDK.NET_DVR_Init()) { log.error("SDKåå§å失败"); } //æå°æµ·åº·sdkæ¥å¿ if (Platform.isWindows()) { String WIN_PATH = System.getProperty("user.dir") + File.separator + "ardLog" + File.separator + "logs" + File.separator; hCNetSDK.NET_DVR_SetLogToFile(3, WIN_PATH, true); } else { hCNetSDK.NET_DVR_SetLogToFile(3, "/home/ardLog/hiklog", true); } String m_sDeviceIP = deviceInfo.getIp(); String m_sUsername = deviceInfo.getUsername(); String m_sPassword = deviceInfo.getPassword(); short m_sPort = deviceInfo.getPort().shortValue(); //è®¾ç½®è¿æ¥æ¶é´ä¸éè¿æ¶é´ hCNetSDK.NET_DVR_SetConnectTime(2000, 1); hCNetSDK.NET_DVR_SetReconnect(100000, true); //设å¤ä¿¡æ¯, è¾åºåæ° HCNetSDK.NET_DVR_DEVICEINFO_V40 m_strDeviceInfo = new HCNetSDK.NET_DVR_DEVICEINFO_V40(); HCNetSDK.NET_DVR_USER_LOGIN_INFO m_strLoginInfo = new HCNetSDK.NET_DVR_USER_LOGIN_INFO(); // 注å设å¤-ç»å½åæ°ï¼å æ¬è®¾å¤å°åãç»å½ç¨æ·ãå¯ç ç m_strLoginInfo.sDeviceAddress = new byte[HCNetSDK.NET_DVR_DEV_ADDRESS_MAX_LEN]; System.arraycopy(m_sDeviceIP.getBytes(), 0, m_strLoginInfo.sDeviceAddress, 0, m_sDeviceIP.length()); m_strLoginInfo.sUserName = new byte[HCNetSDK.NET_DVR_LOGIN_USERNAME_MAX_LEN]; System.arraycopy(m_sUsername.getBytes(), 0, m_strLoginInfo.sUserName, 0, m_sUsername.length()); m_strLoginInfo.sPassword = new byte[HCNetSDK.NET_DVR_LOGIN_PASSWD_MAX_LEN]; System.arraycopy(m_sPassword.getBytes(), 0, m_strLoginInfo.sPassword, 0, m_sPassword.length()); m_strLoginInfo.wPort = m_sPort; m_strLoginInfo.byVerifyMode = 0; m_strLoginInfo.byLoginMode = 0; //æ¯å¦å¼æ¥ç»å½ï¼0- å¦ï¼1- æ¯ windowsSDK鿝trueåfalse m_strLoginInfo.bUseAsynLogin = true; //弿¥ç»å½åè° m_strLoginInfo.cbLoginResult = new LoginResultCallBack(deviceInfo); m_strLoginInfo.write(); int i = hCNetSDK.NET_DVR_Login_V40(m_strLoginInfo, m_strDeviceInfo); if (i < 0) { int errorCode = hCNetSDK.NET_DVR_GetLastError(); log.error("ç»å½å¼å¸¸ï¼" + errorCode); } } /** * @æè¿° ç¨æ·æ³¨é * @å建人 åèä¹ * @å建æ¶é´ 2023/1/17 16:12 */ public static void logout(DeviceInfo deviceInfo) { String deviceIpPort = deviceInfo.getIp() + ":" + deviceInfo.getPort(); //æ¤é² if (GlobalVariable.alarmMap.containsKey(deviceInfo.getDeviceId())) { Integer lAlarmHandle = GlobalVariable.alarmMap.get(deviceInfo.getDeviceId()); boolean b = hCNetSDK.NET_DVR_CloseAlarmChan_V30(lAlarmHandle); if (b) { log.debug("设å¤ã" + deviceIpPort + "ãæ¤é²æå"); } } //ç»åº if (GlobalVariable.loginMap.containsKey(deviceInfo.getDeviceId())) { Integer lUserID = GlobalVariable.loginMap.get(deviceInfo.getDeviceId()); boolean b = hCNetSDK.NET_DVR_Logout(lUserID); if (b) { log.debug("设å¤ã" + deviceIpPort + "ãæ³¨éæå"); } } } /** * @æè¿° ç»å½ææç¸æº * @å建人 åèä¹ * @å建æ¶é´ 2023/2/3 10:10 */ public static void loginAllCamera(List<ArdCameras> ardCameras) { try { for (ArdCameras camera : ardCameras) { Thread.sleep(100); DeviceInfo info = new DeviceInfo(); info.setDeviceId(camera.getId()); info.setIp(camera.getIp()); info.setPort(camera.getPort()); info.setUsername(camera.getUsername()); info.setPassword(camera.getPassword()); login(info); String key = camera.getIp() + ":" + camera.getPort(); GlobalVariable.cameraMap.put(key, camera); } } catch (Exception ex) { log.error("åå§åç»å½ç¸æºå¼å¸¸ï¼" + ex.getMessage()); } } /** * @æè¿° ç»åºææç¸æº * @å建人 åèä¹ * @å建æ¶é´ 2023/2/3 10:10 */ public static void logoutAllCamera(List<ArdCameras> ardCameras) { try { for (ArdCameras camera : ardCameras) { Thread.sleep(100); DeviceInfo info = new DeviceInfo(); info.setDeviceId(camera.getId()); info.setIp(camera.getIp()); info.setPort(camera.getPort()); info.setUsername(camera.getUsername()); info.setPassword(camera.getPassword()); logout(info); String key = camera.getIp() + ":" + camera.getPort(); GlobalVariable.cameraMap.remove(key); } } catch (Exception ex) { log.error("åå§åç»å½ç¸æºå¼å¸¸ï¼" + ex.getMessage()); } } /** * @æè¿° ç»å½æææ¥è¦ä¸»æº * @å建人 åèä¹ * @å建æ¶é´ 2023/2/3 10:10 */ public static void loginAllAlarmHost(List<ArdEquipExternal> ardEquipExternals) { try { for (ArdEquipExternal alarmHost : ardEquipExternals) { Thread.sleep(100); DeviceInfo info = new DeviceInfo(); info.setDeviceId(alarmHost.getId()); info.setIp(alarmHost.getIp()); info.setPort(alarmHost.getPort()); info.setUsername(alarmHost.getUsername()); info.setPassword(alarmHost.getPassword()); login(info); // String key=alarmHost.getIp()+":"+alarmHost.getPort(); // GlobalVariable.alarmHostMap.put(key, alarmHost); } } catch (Exception ex) { log.error("ç»å½æææ¥è¦ä¸»æºå¼å¸¸ï¼" + ex.getMessage()); } } /** * @æè¿° ç»åºæææ¥è¦ä¸»æº * @å建人 åèä¹ * @å建æ¶é´ 2023/2/3 10:10 */ public static void logoutAllAlarmHost(List<ArdEquipExternal> ardEquipExternals) { try { for (ArdEquipExternal alarmHost : ardEquipExternals) { Thread.sleep(100); DeviceInfo info = new DeviceInfo(); info.setDeviceId(alarmHost.getId()); info.setIp(alarmHost.getIp()); info.setPort(alarmHost.getPort()); info.setUsername(alarmHost.getUsername()); info.setPassword(alarmHost.getPassword()); logout(info); // String key=alarmHost.getIp()+":"+alarmHost.getPort(); // GlobalVariable.alarmHostMap.remove(key); } } catch (Exception ex) { log.error("ç»åºæææ¥è¦ä¸»æºå¼å¸¸ï¼" + ex.getMessage()); } } /** * @æè¿° ç»å½ææé¨ç¦ä¸»æº * @å建人 åèä¹ * @å建æ¶é´ 2023/2/3 10:10 */ public static void loginAllAccessControlHost(List<ArdEquipExternal> ardEquipExternals) { try { for (ArdEquipExternal accessControlHost : ardEquipExternals) { Thread.sleep(100); DeviceInfo info = new DeviceInfo(); info.setDeviceId(accessControlHost.getId()); info.setIp(accessControlHost.getIp()); info.setPort(accessControlHost.getPort()); info.setUsername(accessControlHost.getUsername()); info.setPassword(accessControlHost.getPassword()); login(info); } } catch (Exception ex) { log.error("ç»å½ææé¨ç¦ä¸»æºå¼å¸¸ï¼" + ex.getMessage()); } } /** * @æè¿° ç»åºææé¨ç¦ä¸»æº * @å建人 åèä¹ * @å建æ¶é´ 2023/2/3 10:10 */ public static void logoutAllAccessControlHost(List<ArdEquipExternal> ardEquipExternals) { try { for (ArdEquipExternal accessControlHost : ardEquipExternals) { Thread.sleep(100); DeviceInfo info = new DeviceInfo(); info.setDeviceId(accessControlHost.getId()); info.setIp(accessControlHost.getIp()); info.setPort(accessControlHost.getPort()); info.setUsername(accessControlHost.getUsername()); info.setPassword(accessControlHost.getPassword()); logout(info); } } catch (Exception ex) { log.error("ç»åºææé¨ç¦ä¸»æºå¼å¸¸ï¼" + ex.getMessage()); } } /** * @æè¿° ç»å½ææè¶ è * @å建人 åèä¹ * @å建æ¶é´ 2023/2/3 10:10 */ public static void loginAllSuperBrainHost(List<ArdEquipExternal> ardEquipExternals) { try { for (ArdEquipExternal superBrainHost : ardEquipExternals) { Thread.sleep(100); DeviceInfo info = new DeviceInfo(); info.setDeviceId(superBrainHost.getId()); info.setIp(superBrainHost.getIp()); info.setPort(superBrainHost.getPort()); info.setUsername(superBrainHost.getUsername()); info.setPassword(superBrainHost.getPassword()); login(info); } } catch (Exception ex) { log.error("ç»å½ææè¶ èå¼å¸¸ï¼" + ex.getMessage()); } } /** * @æè¿° ç»åºææè¶ è * @å建人 åèä¹ * @å建æ¶é´ 2023/2/3 10:10 */ public static void logoutAllSuperBrainHost(List<ArdEquipExternal> ardEquipExternals) { try { for (ArdEquipExternal superBrainHost : ardEquipExternals) { Thread.sleep(100); DeviceInfo info = new DeviceInfo(); info.setDeviceId(superBrainHost.getId()); info.setIp(superBrainHost.getIp()); info.setPort(superBrainHost.getPort()); info.setUsername(superBrainHost.getUsername()); info.setPassword(superBrainHost.getPassword()); logout(info); // String key=accessControlHost.getIp()+":"+accessControlHost.getPort(); // GlobalVariable.accessHostMap.remove(key); } } catch (Exception ex) { log.error("ç»åºææè¶ èå¼å¸¸ï¼" + ex.getMessage()); } } /** * @æè¿° ç»å½ææå¤èè®¾å¤ * @å建人 åèä¹ * @å建æ¶é´ 2023/2/3 10:10 */ public static void loginAllArdEquipExternals(List<ArdEquipExternal> ardEquipExternals) { try { for (ArdEquipExternal ardEquipExternal : ardEquipExternals) { Thread.sleep(100); DeviceInfo info = new DeviceInfo(); info.setDeviceId(ardEquipExternal.getId()); info.setIp(ardEquipExternal.getIp()); info.setPort(ardEquipExternal.getPort()); info.setUsername(ardEquipExternal.getUsername()); info.setPassword(ardEquipExternal.getPassword()); login(info); } } catch (Exception ex) { log.error("ç»å½ææå¤è设å¤å¼å¸¸ï¼" + ex.getMessage()); } } /** * @æè¿° ç»åºææå¤èè®¾å¤ * @å建人 åèä¹ * @å建æ¶é´ 2023/2/3 10:10 */ public static void logoutAllArdEquipExternals(List<ArdEquipExternal> ardEquipExternals) { try { for (ArdEquipExternal ardEquipExternal : ardEquipExternals) { Thread.sleep(100); DeviceInfo info = new DeviceInfo(); info.setDeviceId(ardEquipExternal.getId()); info.setIp(ardEquipExternal.getIp()); info.setPort(ardEquipExternal.getPort()); info.setUsername(ardEquipExternal.getUsername()); info.setPassword(ardEquipExternal.getPassword()); logout(info); } } catch (Exception ex) { log.error("ç»åºææè¶ èå¼å¸¸ï¼" + ex.getMessage()); } } /** * 建ç«å¸é²ä¸ä¼ ééï¼ç¨äºä¼ è¾æ°æ® * * @param lUserID å¯ä¸æ è¯ç¬¦ * @param lAlarmHandle æ¥è¦å¤çå¨ */ public static int setupAlarmChan(String deviceIpPort, int lUserID, int lAlarmHandle) { // æ ¹æ®è®¾å¤æ³¨åçæçlUserID建ç«å¸é²çä¸ä¼ ééï¼å³æ°æ®çä¸ä¼ éé if (lUserID == -1) { log.error("è¯·å æ³¨å"); return lUserID; } if (lAlarmHandle < 0) { // 设å¤å°æªå¸é²,éè¦å è¿è¡å¸é² if (fMSFCallBack_V31 == null) { fMSFCallBack_V31 = new FMSGCallBack(); if (!hCNetSDK.NET_DVR_SetDVRMessageCallBack_V50(0, fMSFCallBack_V31, null)) { log.error("设置åè°å½æ°å¤±è´¥!é误ç ==========ã" + hCNetSDK.NET_DVR_GetLastError()); } } // è¿ééè¦å¯¹è®¾å¤è¿è¡ç¸åºçåæ°è®¾ç½®ï¼ä¸è®¾ç½®æè®¾ç½®é误é½ä¼å¯¼è´è®¾å¤æ³¨å失败 HCNetSDK.NET_DVR_SETUPALARM_PARAM m_strAlarmInfo = new HCNetSDK.NET_DVR_SETUPALARM_PARAM(); m_strAlarmInfo.dwSize = m_strAlarmInfo.size(); // æºè½äº¤éå¸é²ä¼å 级ï¼0 - ä¸ç级ï¼é«ï¼ï¼1 - äºç级ï¼ä¸ï¼ï¼2 - ä¸ç级ï¼ä½ï¼ m_strAlarmInfo.byLevel = 0; // æºè½äº¤éæ¥è¦ä¿¡æ¯ä¸ä¼ ç±»åï¼0 - èæ¥è¦ä¿¡æ¯ï¼NET_DVR_PLATE_RESULTï¼, 1 - æ°æ¥è¦ä¿¡æ¯(NET_ITS_PLATE_RESULT) m_strAlarmInfo.byAlarmInfoType = 1; // å¸é²ç±»å(ä» é对é¨ç¦ä¸»æºã人è¯è®¾å¤)ï¼0 - 客æ·ç«¯å¸é²(伿ç½ç»ä¼ )ï¼1 - 宿¶å¸é²(åªä¸ä¼ 宿¶æ°æ®) m_strAlarmInfo.byDeployType = 1; //äººè¸æ¥è¦ä¿¡æ¯ç±»åï¼1- 人è¸ä¾¦æµæ¥è¦ 0- äººè¸æææ¥è¦ m_strAlarmInfo.byFaceAlarmDetection = 0; m_strAlarmInfo.write(); // å¸é²æåï¼è¿åå¸é²æåçæ°æ®ä¼ è¾ééå· lAlarmHandle = hCNetSDK.NET_DVR_SetupAlarmChan_V41(lUserID, m_strAlarmInfo); if (lAlarmHandle == -1) { log.error("设å¤ã" + deviceIpPort + "ãå¸é²å¤±è´¥ï¼é误ç ==========ã" + hCNetSDK.NET_DVR_GetLastError()); } else { log.debug("设å¤ã" + deviceIpPort + "ãå¸é²æå"); } } return lAlarmHandle; } /** * 注é * * @param lUserID è®¾å¤æ³¨åæåå¯ä¸æ è¯ç¬¦ */ public static void logout(int lUserID) { // 注é hCNetSDK.NET_DVR_Logout(lUserID); // éæ¾sdkèµæº hCNetSDK.NET_DVR_Cleanup(); } /** * æå¾ * * @param cmd æå¾å½ä»¤ */ public static String picCutCate(CameraCmd cmd) { String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getChannelNum(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return ""; } Integer userId = GlobalVariable.loginMap.get(cameraId); //å¾çä¿¡æ¯ HCNetSDK.NET_DVR_JPEGPARA jpeg = new HCNetSDK.NET_DVR_JPEGPARA(); //设置å¾çå辨ç //å¾ç尺寸ï¼0-CIF(352*288/352*240)ï¼1-QCIF(176*144/176*120)ï¼2-4CIF(704*576/704*480)æD1(720*576/720*486)ï¼3-UXGA(1600*1200)ï¼ // 4-SVGA(800*600)ï¼5-HD720P(1280*720)ï¼6-VGA(640*480)ï¼7-XVGA(1280*960)ï¼8-HD900P(1600*900)ï¼9-HD1080P(1920*1080)ï¼10-2560*1920ï¼ // 11-1600*304ï¼12-2048*1536ï¼13-2448*2048ï¼14-2448*1200ï¼15-2448*800ï¼16-XGA(1024*768)ï¼17-SXGA(1280*1024)ï¼18-WD1(960*576/960*480), // 19-1080I(1920*1080)ï¼20-576*576ï¼21-1536*1536ï¼22-1920*1920ï¼23-320*240ï¼24-720*720ï¼25-1024*768ï¼26-1280*1280ï¼27-1600*600ï¼ // 28-2048*768ï¼29-160*120ï¼75-336*256ï¼78-384*256ï¼79-384*216ï¼80-320*256ï¼82-320*192ï¼83-512*384ï¼127-480*272ï¼128-512*272ï¼ 161-288*320ï¼ // 162-144*176ï¼163-480*640ï¼164-240*320ï¼165-120*160ï¼166-576*720ï¼167-720*1280ï¼168-576*960ï¼180-180*240, 181-360*480, 182-540*720, // 183-720*960, 184-960*1280, 185-1080*1440, 500-384*288, 0xff-Auto(使ç¨å½åç æµå辨ç) jpeg.wPicSize = 0; //设置å¾çè´¨éï¼0-æå¥½ï¼1-è¾å¥½ï¼2-ä¸è¬ jpeg.wPicQuality = 0; IntByReference a = new IntByReference(); //设置å¾çå¤§å° ByteBuffer jpegBuffer = ByteBuffer.allocate(1024 * 1024); // æå¾å°å åï¼åå¸§æ°æ®æè·å¹¶ä¿åæJPEG忾卿å®çå å空é´ä¸ // log.debug("-----------è¿éå¼å§å°è£ NET_DVR_CaptureJPEGPicture_NEW---------"); boolean is = hCNetSDK.NET_DVR_CaptureJPEGPicture_NEW(userId, channelNum, jpeg, jpegBuffer, 1024 * 1024, a); //log.debug("-----------è¿éå¼å§å¾çåå ¥å å----------" + is); if (is) { // log.debug("hksdk(æå¾)-ç»æç¶æå¼(0表示æå):" + hCNetSDK.NET_DVR_GetLastError()); byte[] array = jpegBuffer.array(); //åå¨å°minio String ContentType = "image/JPEG"; InputStream input = new ByteArrayInputStream(array); String url = ""; try { boolean b = MinioUtil.uploadObject(cmd.getBucketName(), cmd.getObjectName(), input, input.available(), ContentType); if (b) { url = MinioUtil.getBucketObjectUrl(cmd.getBucketName(), cmd.getObjectName()); // log.debug("ä¸ä¼ æä»¶æå!" + url); } } catch (Exception ex) { log.error("ä¸ä¼ æä»¶å¼å¸¸ï¼" + ex.getMessage()); } return url; } else { int code = hCNetSDK.NET_DVR_GetLastError(); log.debug("æå¾å¤±è´¥,请ç¨åéè¯" + code); return ""; } } /** * è·åé²åºåç§° * ééå·==é²åºå· ä»0å¼å§ * åèä¹ * 2023/7/6 10:48 */ public static String getDefenseZoneName(CameraCmd cmd) { String name = ""; try { String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getWZoneIndex();//ééå·==é²åºå· if (!GlobalVariable.loginMap.containsKey(cameraId)) { return name; } Integer userId = GlobalVariable.loginMap.get(cameraId); HCNetSDK.NET_DVR_ALARMIN_PARAM netDvrAlarminParam = new HCNetSDK.NET_DVR_ALARMIN_PARAM(); Pointer point = netDvrAlarminParam.getPointer(); IntByReference ibrBytesReturned = new IntByReference(); netDvrAlarminParam.write(); boolean b = hCNetSDK.NET_DVR_GetDVRConfig(userId, HCNetSDK.NET_DVR_GET_ALARMIN_PARAM, channelNum, point, netDvrAlarminParam.size(), ibrBytesReturned); if (b) { netDvrAlarminParam.read(); name = ByteUtils.bytesToStringZh(netDvrAlarminParam.byName); } else { int error = hCNetSDK.NET_DVR_GetLastError(); log.info("è·åé²åºå称失败:" + error); } } catch (Exception ex) { log.error("è·åé²åºåç§°å¼å¸¸:" + ex.getMessage()); } return name; } } src/main/java/com/ard/utils/sdk/hiksdk/service/impl/LoginResultCallBack.java
ÎļþÃû´Ó src/main/java/com/ard/utils/hiksdk/service/impl/LoginResultCallBack.java ÐÞ¸Ä @@ -1,8 +1,8 @@ package com.ard.utils.hiksdk.service.impl; package com.ard.utils.sdk.hiksdk.service.impl; import com.ard.utils.hiksdk.common.GlobalVariable; import com.ard.utils.hiksdk.domain.DeviceInfo; import com.ard.utils.hiksdk.util.hikSdkUtil.HCNetSDK; import com.ard.utils.sdk.hiksdk.common.GlobalVariable; import com.ard.utils.sdk.hiksdk.domain.DeviceInfo; import com.ard.utils.sdk.hiksdk.util.hikSdkUtil.HCNetSDK; import com.sun.jna.Pointer; import lombok.extern.slf4j.Slf4j; src/main/java/com/ard/utils/sdk/hiksdk/util/hikSdkUtil/HCNetSDK.java
ÎļþÃû´Ó src/main/java/com/ard/utils/hiksdk/util/hikSdkUtil/HCNetSDK.java ÐÞ¸Ä ÎļþÌ«´ó src/main/java/com/ard/utils/sdk/hiksdk/util/hikSdkUtil/HIKSDKStructure.java
ÎļþÃû´Ó src/main/java/com/ard/utils/hiksdk/util/hikSdkUtil/HIKSDKStructure.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.ard.utils.hiksdk.util.hikSdkUtil; package com.ard.utils.sdk.hiksdk.util.hikSdkUtil; import com.sun.jna.Structure; src/main/java/com/ard/utils/sdk/hiksdk/util/imageUtil/waterMarkUtil.java
ÎļþÃû´Ó src/main/java/com/ard/utils/hiksdk/util/imageUtil/waterMarkUtil.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.ard.utils.hiksdk.util.imageUtil; package com.ard.utils.sdk.hiksdk.util.imageUtil; /** * @ClassName WaterMarkUtil src/main/java/com/ard/utils/util/ByteUtils.java
ÎļþÃû´Ó src/main/java/com/ard/utils/other/ByteUtils.java ÐÞ¸Ä @@ -1,14 +1,11 @@ package com.ard.utils.other; package com.ard.utils.util; import javax.xml.bind.DatatypeConverter; import java.io.ByteArrayOutputStream; import java.io.UnsupportedEncodingException; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.nio.charset.StandardCharsets; import java.util.zip.CRC32; import static oracle.security.pki.util.SignatureAlgorithms.i; /** * @Description: åèå·¥å ·ç±» src/main/java/com/ard/utils/util/CodeGeneration.java
ÎļþÃû´Ó src/main/java/com/ard/utils/other/CodeGeneration.java ÐÞ¸Ä @@ -1,11 +1,9 @@ package com.ard.utils.other; package com.ard.utils.util; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.extension.plugins.pagination.dialects.Oracle12cDialect; import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.config.*; import com.baomidou.mybatisplus.generator.config.querys.OracleQuery; import com.baomidou.mybatisplus.generator.config.querys.PostgreSqlQuery; import com.baomidou.mybatisplus.generator.config.rules.DateType; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; import java.util.Collections; src/main/java/com/ard/utils/util/DateUtils.java
ÎļþÃû´Ó src/main/java/com/ard/utils/other/DateUtils.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.ard.utils.other; package com.ard.utils.util; import org.apache.commons.lang3.time.DateFormatUtils; import java.lang.management.ManagementFactory; src/main/java/com/ard/utils/util/GisUtils.java
ÎļþÃû´Ó src/main/java/com/ard/utils/other/GisUtils.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.ard.utils.other; package com.ard.utils.util; import org.gavaghan.geodesy.Ellipsoid; import org.gavaghan.geodesy.GeodeticCalculator; src/main/java/com/ard/utils/util/IdUtils.java
ÎļþÃû´Ó src/main/java/com/ard/utils/uuid/IdUtils.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.ard.utils.uuid; package com.ard.utils.util; /** src/main/java/com/ard/utils/util/LonlatConver.java
ÎļþÃû´Ó src/main/java/com/ard/utils/other/LonlatConver.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.ard.utils.other; package com.ard.utils.util; /** * ç»çº¬åº¦è½¬æ¢å·¥å · * åèä¹ src/main/java/com/ard/utils/util/SpringUtils.java
ÎļþÃû´Ó src/main/java/com/ard/utils/spring/SpringUtils.java ÐÞ¸Ä @@ -1,6 +1,5 @@ package com.ard.utils.spring; package com.ard.utils.util; import com.ard.utils.other.StringUtils; import org.springframework.aop.framework.AopContext; import org.springframework.beans.BeansException; import org.springframework.beans.factory.NoSuchBeanDefinitionException; src/main/java/com/ard/utils/util/StringUtils.java
ÎļþÃû´Ó src/main/java/com/ard/utils/other/StringUtils.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.ard.utils.other; package com.ard.utils.util; import java.util.ArrayList; import java.util.Collection; src/main/java/com/ard/utils/util/UUID.java
ÎļþÃû´Ó src/main/java/com/ard/utils/uuid/UUID.java ÐÞ¸Ä @@ -1,6 +1,4 @@ package com.ard.utils.uuid; import com.ard.utils.exception.UtilException; package com.ard.utils.util; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; src/main/java/com/ard/utils/util/UtilException.java
ÎļþÃû´Ó src/main/java/com/ard/utils/exception/UtilException.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.ard.utils.exception; package com.ard.utils.util; /** * @Description: src/main/resources/application-dev.yml
@@ -29,34 +29,35 @@ timeBetweenEvictionRunsMillis: 60000 #空é²è¿æ¥æå°ç©ºé²æ¶é´ minEvictableIdleTimeMillis: 300000 # nettyé ç½® netty: udp: port: 40000 enabled: true tcp: enabled: true # mqtté ç½® mqtt: host: tcp://192.168.2.15:1883 clientId: client-2272 username: admin password: admin timeout: 100 keepalive: 60 # nettyé ç½® netty: udp: port: 40000 enabled: false tcp: enabled: true # ççµæ¥å£å°å stealelec: enabled: true url: http://iot.zhdk.net:8090/Warning/GetWarning?userName=cy4oil # mqtté ç½® mqtt: host: tcp://192.168.2.15:1883 clientId: client-2272 username: admin password: admin timeout: 100 keepalive: 60 enabled: true # ççµæ¥å£å°å stealelec: enabled: false url: http://iot.zhdk.net:8090/Warning/GetWarning?userName=cy4oil # ä¸åæ°ååå°å digitization3: enabled: true # minioé ç½® minio: endpoint: http://192.168.2.15:9001 accessKey: admin secretKey: xzx12345 # ä¸åºæ°åå digitization3: enabled: false # minioé ç½® minio: endpoint: http://192.168.2.15:9001 accessKey: admin secretKey: xzx12345 # mybatis-plusé ç½® mybatis-plus: type-aliases-package: com.ard.alarm.**.domain @@ -64,11 +65,11 @@ # æ¥å¿ç级é ç½® logging: level: hikSdk: debug mqtt: info netty: info hikSdk: info mqtt: debug netty: debug external: info camera: debug camera: info tube: info digitization3: info stealAlarm: info stealAlarm: info src/main/resources/application-prod.yml
@@ -1,4 +1,7 @@ #ç产ç¯å¢ # å¼åç¯å¢ server: port: 8088 # springé ç½® spring: servlet: multipart: @@ -6,15 +9,14 @@ max-file-size: 30MB max-request-size: 30MB datasource: # 使ç¨druidæ°æ®åºè¿æ¥æ± druid: #å¼å¯druidçæ§web #å¼å¯druidçæ§web stat-view-servlet: enabled: true driver-class-name: org.postgresql.Driver url: jdbc:postgresql://112.98.126.2:35432/ry-vue?stringtype=unspecified url: jdbc:postgresql://192.168.2.15:5432/ry-vue username: postgres password: Yykj.2017 password: postgres #æå¤§è¿æ¥æ° maxActive: 30 #æå°è¿æ¥æ° @@ -27,46 +29,47 @@ timeBetweenEvictionRunsMillis: 60000 #空é²è¿æ¥æå°ç©ºé²æ¶é´ minEvictableIdleTimeMillis: 300000 # nettyé ç½® netty: udp: port: 40000 enabled: true tcp: enabled: true # minioé ç½® minio: endpoint: http://127.0.0.1:9001 accessKey: admin secretKey: xzx12345 # mqtté ç½® mqtt: host: tcp://192.168.1.15:1883 clientId: cc3 username: admin password: xzx12345 topic: tube timeout: 100 keepalive: 60 # nettyé ç½® netty: udp: port: 40000 enabled: true # ççµæ¥å£å°å stealelec: enabled: false url: http://iot.zhdk.net:8090/Warning/GetWarning?userName=cy4oil tcp: enabled: true # mqtté ç½® mqtt: host: tcp://192.168.2.15:1883 clientId: client-2272 username: admin password: admin timeout: 100 keepalive: 60 enabled: true # ççµæ¥å£å°å stealelec: enabled: false url: http://iot.zhdk.net:8090/Warning/GetWarning?userName=cy4oil # ä¸åæ°ååå°å digitization3: enabled: false # ä¸åºæ°åå digitization3: enabled: false # minioé ç½® minio: endpoint: http://192.168.2.15:9001 accessKey: admin secretKey: xzx12345 # mybatis-plusé ç½® mybatis-plus: type-aliases-package: com.ard.alarm.**.domain mapper-locations: classpath:/mapper/*.xml server: port: 8088 # æ¥å¿ç级é ç½® logging: level: hikSdk: debug hikSdk: info mqtt: debug netty: info external: info camera: info tube: info tube: info digitization3: info stealAlarm: info