ソースを参照

add catalog 和 deviceInfo

18339543638 3 年 前
コミット
d47e1e34ce

+ 60 - 0
Californium.properties

@@ -0,0 +1,60 @@
+#Californium CoAP Properties file
+#Tue Feb 08 10:20:46 CST 2022
+HTTP_SERVER_SOCKET_BUFFER_SIZE=8192
+UDP_CONNECTOR_OUT_CAPACITY=2147483647
+CONGESTION_CONTROL_ALGORITHM=Cocoa
+USE_CONGESTION_CONTROL=false
+ACK_TIMEOUT=2000
+MAX_ACTIVE_PEERS=150000
+TCP_CONNECT_TIMEOUT=10000
+NOTIFICATION_CHECK_INTERVAL_COUNT=100
+MAX_MESSAGE_SIZE=1024
+MID_TRACKER_GROUPS=16
+DEDUPLICATOR=DEDUPLICATOR_MARK_AND_SWEEP
+TCP_CONNECTION_IDLE_TIMEOUT=10
+COAP_PORT=5683
+ACK_TIMEOUT_SCALE=2.0
+PREFERRED_BLOCK_SIZE=512
+NETWORK_STAGE_RECEIVER_THREAD_COUNT=6
+DTLS_AUTO_RESUME_TIMEOUT=30000
+MAX_LATENCY=100000
+MAX_SERVER_RESPONSE_DELAY=250000
+DTLS_CONNECTION_ID_LENGTH=
+PROTOCOL_STAGE_THREAD_COUNT=6
+MAX_TRANSMIT_WAIT=93000
+MULTICAST_BASE_MID=65000
+DEDUPLICATOR_AUTO_REPLACE=true
+UDP_CONNECTOR_RECEIVE_BUFFER=0
+EXCHANGE_LIFETIME=247000
+HTTP_SERVER_SOCKET_TIMEOUT=100000
+CROP_ROTATION_PERIOD=247000
+UDP_CONNECTOR_DATAGRAM_SIZE=2048
+MAX_RETRANSMIT=4
+MAX_PEER_INACTIVITY_PERIOD=600
+MAX_RESOURCE_BODY_SIZE=8192
+NOTIFICATION_CHECK_INTERVAL=86400000
+LEISURE=5000
+HTTP_CACHE_RESPONSE_MAX_AGE=86400
+BLOCKWISE_STATUS_LIFETIME=300000
+RESPONSE_MATCHING=STRICT
+UDP_CONNECTOR_SEND_BUFFER=0
+MID_TACKER=GROUPED
+TCP_WORKER_THREADS=1
+NETWORK_STAGE_SENDER_THREAD_COUNT=6
+NON_LIFETIME=145000
+TOKEN_SIZE_LIMIT=8
+HTTP_PORT=8080
+MARK_AND_SWEEP_INTERVAL=10000
+HEALTH_STATUS_INTERVAL=0
+ACK_RANDOM_FACTOR=1.5
+SECURE_SESSION_TIMEOUT=86400
+NSTART=1
+USE_RANDOM_MID_START=true
+HTTP_CACHE_SIZE=32
+TLS_HANDSHAKE_TIMEOUT=10000
+DTLS_CONNECTION_ID_NODE_ID=
+PROBING_RATE=1.0
+BLOCKWISE_STRICT_BLOCK2_OPTION=false
+USE_MESSAGE_OFFLOADING=false
+NOTIFICATION_REREGISTRATION_BACKOFF=2000
+COAP_SECURE_PORT=5684

+ 7 - 5
jetlinks-manager/media-manager/src/main/java/org/jetlinks/community/media/controller/MediaDeviceChannelController.java

@@ -8,6 +8,8 @@ import org.hswebframework.web.authorization.annotation.Resource;
 import org.hswebframework.web.crud.service.ReactiveCrudService;
 import org.hswebframework.web.crud.web.reactive.ReactiveServiceQueryController;
 import org.jetlinks.community.media.entity.MediaDevice;
+import org.jetlinks.community.media.entity.MediaDeviceChannel;
+import org.jetlinks.community.media.service.LocalMediaDeviceChannelService;
 import org.jetlinks.community.media.service.LocalMediaDeviceService;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -23,13 +25,13 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/media/channel")
 @Slf4j
 @Authorize
-@Resource(id="media-deivce-channel",name = "媒体流设备通道")
+@Resource(id="media-channel",name = "媒体流设备通道")
 @AllArgsConstructor
 @Tag(name = "媒体视频设备")
-public class MediaDeviceChannelController implements ReactiveServiceQueryController<MediaDevice, String> {
-    private LocalMediaDeviceService mediaDeviceService;
+public class MediaDeviceChannelController implements ReactiveServiceQueryController<MediaDeviceChannel, String> {
+    private LocalMediaDeviceChannelService mediaDeviceChannelService;
     @Override
-    public ReactiveCrudService<MediaDevice, String> getService() {
-        return mediaDeviceService;
+    public ReactiveCrudService<MediaDeviceChannel, String> getService() {
+        return mediaDeviceChannelService;
     }
 }

+ 12 - 3
jetlinks-manager/media-manager/src/main/java/org/jetlinks/community/media/entity/MediaDeviceChannel.java

@@ -3,7 +3,11 @@ package org.jetlinks.community.media.entity;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import org.hswebframework.ezorm.rdb.mapping.annotation.ColumnType;
+import org.hswebframework.ezorm.rdb.mapping.annotation.DefaultValue;
+import org.hswebframework.ezorm.rdb.mapping.annotation.EnumCodec;
 import org.hswebframework.web.api.crud.entity.GenericEntity;
+import org.jetlinks.community.media.enums.DeviceState;
 
 import javax.persistence.Column;
 import javax.persistence.Table;
@@ -250,11 +254,16 @@ public class MediaDeviceChannel extends GenericEntity<String> {
 	 * <Status>OFF</Status>
 	 * 遇到过NVR下的IPC下发信令可以推流, 但是 Status 响应 OFF
 	 */
-    @Column(name = "status")
+    @Column(name = "state",length = 16)
+    @EnumCodec
+    @ColumnType(javaType = String.class)
+    @DefaultValue("offline")
     @Schema(
-        description = "在线/离线"
+        description = "状态(只读)"
+        ,accessMode = Schema.AccessMode.READ_ONLY
+        , defaultValue = "offline"
     )
-	private int status;
+	private DeviceState status;
 
 	/**
 	 * 经度

+ 1 - 1
jetlinks-manager/media-manager/src/main/java/org/jetlinks/community/media/sip/request/message/notify/CatalogResponseMessageProcessor.java

@@ -2,7 +2,6 @@ package org.jetlinks.community.media.sip.request.message.notify;
 
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.dom4j.DocumentException;
 import org.dom4j.Element;
 import org.jetlinks.community.media.bean.ParentPlatform;
 import org.jetlinks.community.media.contanst.CmdType;
@@ -21,6 +20,7 @@ import java.util.*;
 
 /**
  * @description: 处理设备目录响应,获取设备目录响应
+ *              ,当设备为下级平台时,即可获取所有设备信息
  * @author: panlinlin
  * @date: 2021年11月5日 16:40
  */

+ 3 - 2
jetlinks-manager/media-manager/src/main/java/org/jetlinks/community/utils/XmlUtil.java

@@ -8,6 +8,7 @@ import org.dom4j.DocumentException;
 import org.dom4j.Element;
 import org.dom4j.io.SAXReader;
 import org.jetlinks.community.media.entity.MediaDeviceChannel;
+import org.jetlinks.community.media.enums.DeviceState;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.util.StringUtils;
@@ -192,10 +193,10 @@ public class XmlUtil {
         deviceChannel.setChannelId(channelId);
         // ONLINE OFFLINE HIKVISION DS-7716N-E4 NVR的兼容性处理
         if (status.equals("ON") || status.equals("On") || status.equals("ONLINE")) {
-            deviceChannel.setStatus(1);
+            deviceChannel.setStatus(DeviceState.online);
         }
         if (status.equals("OFF") || status.equals("Off") || status.equals("OFFLINE")) {
-            deviceChannel.setStatus(0);
+            deviceChannel.setStatus(DeviceState.offline);
         }
 
         deviceChannel.setManufacture(XmlUtil.getText(itemDevice, "Manufacturer"));