From 6ac131bcf6ec034ffc9e5813c68c56c6e5c32b70 Mon Sep 17 00:00:00 2001 From: xiaoxie <hotcoffie@163.com> Date: 星期三, 01 十二月 2021 22:45:51 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/wvp-28181-2.0' into wvp-28181-2.0 --- src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 56 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..f914313 --- /dev/null +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java @@ -0,0 +1,56 @@ +package com.genersoft.iot.vmp.service.impl; + +import com.genersoft.iot.vmp.conf.DynamicTask; +import com.genersoft.iot.vmp.gb28181.bean.Device; +import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommander; +import com.genersoft.iot.vmp.service.IDeviceService; +import com.genersoft.iot.vmp.service.bean.CatalogSubscribeTask; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * 璁惧涓氬姟锛堢洰褰曡闃咃級 + */ +@Service +public class DeviceServiceImpl implements IDeviceService { + + private final static Logger logger = LoggerFactory.getLogger(DeviceServiceImpl.class); + + @Autowired + private DynamicTask dynamicTask; +; + + @Autowired + private ISIPCommander sipCommander; + + @Override + public boolean addCatalogSubscribe(Device device) { + if (device == null || device.getSubscribeCycleForCatalog() < 0) { + return false; + } + // 娣诲姞鐩綍璁㈤槄 + CatalogSubscribeTask catalogSubscribeTask = new CatalogSubscribeTask(device, sipCommander); + catalogSubscribeTask.run(); + // 鎻愬墠寮�濮嬪埛鏂拌闃� + // TODO 浣跨敤jain sip鐨勫綋鏃跺埛鏂拌闃� + int subscribeCycleForCatalog = device.getSubscribeCycleForCatalog(); + // 璁剧疆鏈�灏忓�间负30 + subscribeCycleForCatalog = Math.max(subscribeCycleForCatalog, 30); + dynamicTask.startCron(device.getDeviceId(), catalogSubscribeTask, subscribeCycleForCatalog - 5); + return true; + } + + @Override + public boolean removeCatalogSubscribe(Device device) { + if (device == null || device.getSubscribeCycleForCatalog() < 0) { + return false; + } + logger.info("绉婚櫎鐩綍璁㈤槄: {}", device.getDeviceId()); + dynamicTask.stopCron(device.getDeviceId()); + device.setSubscribeCycleForCatalog(0); + sipCommander.catalogSubscribe(device, null, null); + return true; + } +} -- Gitblit v1.8.0