Browse Source

视频集成

master
刘力 2 years ago
parent
commit
0f2ca674fd
  1. 102
      common/src/main/java/com/storeroom/utils/DateUtils.java
  2. 38
      storeroom/src/main/java/com/storeroom/modules/device/controller/DeviceController.java
  3. 9
      storeroom/src/main/java/com/storeroom/modules/device/domain/AlarmDeseCaBinetLog.java
  4. 4
      storeroom/src/main/java/com/storeroom/modules/device/domain/DeviceCamerBind.java
  5. 5
      storeroom/src/main/java/com/storeroom/modules/device/domain/DeviceInfo.java
  6. 14
      storeroom/src/main/java/com/storeroom/modules/device/repository/DeviceCamerBindRepository.java
  7. 13
      storeroom/src/main/java/com/storeroom/modules/device/service/DeviceCamerBindService.java
  8. 5
      storeroom/src/main/java/com/storeroom/modules/device/service/VideoMonitoringService.java
  9. 21
      storeroom/src/main/java/com/storeroom/modules/device/service/dto/CameraInfoDto.java
  10. 49
      storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceCamerBindImpl.java
  11. 12
      storeroom/src/main/java/com/storeroom/modules/device/service/impl/VideoMonitoringImpl.java
  12. 1
      storeroom/src/main/java/com/storeroom/modules/storeroom3d/config/common/NVSSDK.java
  13. 64
      storeroom/src/main/java/com/storeroom/modules/storeroom3d/config/common/VideoClient.java
  14. 4
      storeroom/src/main/java/com/storeroom/modules/storeroom3d/controller/VideosTestController.java
  15. 39
      storeroom/src/test/java/test.java
  16. 11
      storeroom/src/test/java/videoTest.java

102
common/src/main/java/com/storeroom/utils/DateUtils.java

@ -1,5 +1,8 @@
package com.storeroom.utils;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.time.*;
import java.time.format.DateTimeFormatter;
@ -144,6 +147,16 @@ public class DateUtils {
return LocalDateTime.from(DFY_MD_HMS.parse(localDateTime));
}
/**
* 获取当前时间戳
*/
public static String getNowTimeInMillis() {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = df.format(System.currentTimeMillis());
LocalDateTime lTime = parseLocalDateTimeFormatyMdHms(time);
return String.valueOf(getTimeStamp(lTime));
}
/**
* 获取当前年
*
@ -176,14 +189,101 @@ public class DateUtils {
/**
* 生成表获取当前时间和时间戳
*
* @return
*/
public static String getNowDateTime(){
public static String getNowDateTime() {
Calendar d = Calendar.getInstance();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy_MM_dd_");
return formatter.format(d.getTime()) + d.getTimeInMillis();
}
public static String convertDate2String(Date date, String pattern) {
if (date == null)
return null;
DateFormat dateFormat = new SimpleDateFormat(pattern);
return dateFormat.format(date);
}
/**
* 根据字符串获取年
*
* @param timeString
* @return
*/
public static short getYear(String timeString) {
String timeStr = convertDate2String(parseTimeString2Date(timeString), "yyyy-MM-dd HH:mm:ss");
return Short.parseShort(timeStr.substring(0, 4));
}
/**
* 根据字符串获取月
*
* @param timeString /
* @return /
*/
public static short getMonth(String timeString) {
String timeStr = convertDate2String(parseTimeString2Date(timeString), "yyyy-MM-dd HH:mm:ss");
return Short.parseShort(timeStr.substring(5, 7));
}
/**
* 根据字符串获取日
*
* @param timeString /
* @return /
*/
public static short getDay(String timeString) {
String timeStr = convertDate2String(parseTimeString2Date(timeString), "yyyy-MM-dd HH:mm:ss");
return Short.parseShort(timeStr.substring(8, 10));
}
/**
* 获取小时
*
* @param timeString /
* @return /
*/
public static short getHour(String timeString) {
String timeStr = convertDate2String(parseTimeString2Date(timeString), "yyyy-MM-dd HH:mm:ss");
return Short.parseShort(timeStr.substring(11, 13));
}
/**
* 根据字符串获取分
*
* @param timeString /
* @return /
*/
public static short getMinute(String timeString) {
String timeStr = convertDate2String(parseTimeString2Date(timeString), "yyyy-MM-dd HH:mm:ss");
return Short.parseShort(timeStr.substring(14, 16));
}
/**
* 根据字符串获取秒
*
* @param timeString /
* @return /
*/
public static short getSecond(String timeString) {
String timeStr = convertDate2String(parseTimeString2Date(timeString), "yyyy-MM-dd HH:mm:ss");
return Short.parseShort(timeStr.substring(17, 19));
}
public static Date parseTimeString2Date(String timeString) {
if ((timeString == null) || (timeString.equals(""))) {
return null;
}
Date date = null;
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
date = new Date(dateFormat.parse(timeString).getTime());
} catch (Exception e) {
e.printStackTrace();
}
return date;
}
}

38
storeroom/src/main/java/com/storeroom/modules/device/controller/DeviceController.java

@ -7,13 +7,16 @@ import com.storeroom.annotaion.rest.AnonymousGetMapping;
import com.storeroom.annotaion.rest.AnonymousPostMapping;
import com.storeroom.exception.BaseException;
import com.storeroom.modules.device.domain.AlarmDeseCaBinetLog;
import com.storeroom.modules.device.domain.CameraInfo;
import com.storeroom.modules.device.domain.DeviceCamerBind;
import com.storeroom.modules.device.domain.DeviceInfo;
import com.storeroom.modules.device.service.ArchivesCasesService;
import com.storeroom.modules.device.service.DeviceService;
import com.storeroom.modules.device.service.OperatingStateService;
import com.storeroom.modules.device.service.*;
import com.storeroom.modules.device.service.dto.CameraInfoDto;
import com.storeroom.modules.storeroom3d.service.AlarmInfoService;
import com.storeroom.modules.storeroom3d.service.ThirdApiService;
import com.storeroom.utils.ApiResponse;
import com.storeroom.utils.DateUtils;
import com.storeroom.utils.NanoIdUtils;
import com.storeroom.utils.StringUtils;
import com.storeroom.utils.enums.ResponseStatus;
import io.swagger.annotations.Api;
@ -26,10 +29,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
@RestController
@RequiredArgsConstructor
@ -42,6 +42,9 @@ public class DeviceController {
private final ArchivesCasesService archivesCaseService;
private final AlarmInfoService alarmInfoService;
private final ThirdApiService thirdApiService;
private final CameraInfoService cameraInfoService;
private final DeviceCamerBindService deviceCamerBindService;
@ApiOperation("获取所有设备")
@AnonymousGetMapping("all")
@ -149,8 +152,27 @@ public class DeviceController {
@ApiOperation("第三方对接-上传密集架报警信息")
@AnonymousPostMapping("log")
public Object deseCabinetAlarmLog(@RequestBody AlarmDeseCaBinetLog alarmDeseCaBinetLog) {
if (StringUtils.isEmpty(alarmDeseCaBinetLog.getI64Ts())) {
alarmDeseCaBinetLog.setI64Ts(DateUtils.getNowTimeInMillis());
}
deviceService.upLoadAlarmLog(alarmDeseCaBinetLog);
//只记录报警日志下载视频操作开架视频下载由自己接口提供
if (alarmDeseCaBinetLog.getUsLevel() == 1) {
List<CameraInfo> cameraInfoDto = new ArrayList<>();
List<DeviceCamerBind> list = deviceCamerBindService.queryStoreroomCode(alarmDeseCaBinetLog.getStoreCode());
list.forEach(item -> {
CameraInfo cameraInfo = new CameraInfo();
cameraInfo.setId(NanoIdUtils.randomNanoId());
cameraInfo.setDeviceCamerBindId(item);
cameraInfo.setDescription(alarmDeseCaBinetLog.getCContext());
cameraInfo.setEvent("密集架报警");
cameraInfo.setDownloadLink("");
deviceCamerBindService.downloadVideo(alarmDeseCaBinetLog.getI64Ts(), item.getDeviceInfoId(), item.getId());
});
}
Map<String, Object> objectMap = new HashMap<>();
objectMap.put("code", "");
objectMap.put("errorinfo", "");

9
storeroom/src/main/java/com/storeroom/modules/device/domain/AlarmDeseCaBinetLog.java

@ -1,6 +1,7 @@
package com.storeroom.modules.device.domain;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.storeroom.base.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
@ -30,27 +31,29 @@ public class AlarmDeseCaBinetLog implements Serializable {
private String storeCode;
@Column(name = "qu_No")
@JsonProperty("QuNo")
@ApiModelProperty(value = "区号")
private String QuNo;
@Column(name = "ui_log_id")
@ApiModelProperty(value = "0")
private String uiLogID;
private Integer uiLogID;
@Column(name = "us_log_type")
@ApiModelProperty(value = "1")
private String usLogType;
private Integer usLogType;
@Column(name = "us_level")
@ApiModelProperty(value = "等级:0为操作 1 为报警")
private String usLevel;
private Integer usLevel;
@Column(name = "i64Ts")
@ApiModelProperty(value = "时间戳")
private String i64Ts;
@Column(name = "c_context")
@JsonProperty("cContext")
@ApiModelProperty(value = "日志信息")
private String cContext;

4
storeroom/src/main/java/com/storeroom/modules/device/domain/DeviceCamerBind.java

@ -32,6 +32,10 @@ public class DeviceCamerBind extends BaseEntity implements Serializable {
@ApiModelProperty(value = "库房名称")
private String storeroomName;
@Column(name = "storeroom_code")
@ApiModelProperty(value = "库房代码")
private String storeroomCode;
@Column(name = "device_name")
@ApiModelProperty(value = "设备名称")
private String deviceName;

5
storeroom/src/main/java/com/storeroom/modules/device/domain/DeviceInfo.java

@ -136,10 +136,7 @@ public class DeviceInfo extends BaseEntity implements Serializable {
@ApiModelProperty(value = "是否回调")
private OperatingState isCallback;
// @JSONField(serialize = false)
// @ManyToMany(mappedBy = "deviceInfo")
// @ApiModelProperty(value = "3D库房显示配置")
// private Set<DisplayConfig> displayConfig;
@Override
public boolean equals(Object o) {

14
storeroom/src/main/java/com/storeroom/modules/device/repository/DeviceCamerBindRepository.java

@ -4,10 +4,13 @@ import com.storeroom.modules.device.domain.DeviceCamerBind;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
public interface DeviceCamerBindRepository extends JpaRepository<DeviceCamerBind,String>, JpaSpecificationExecutor<DeviceCamerBind> {
import java.util.List;
public interface DeviceCamerBindRepository extends JpaRepository<DeviceCamerBind, String>, JpaSpecificationExecutor<DeviceCamerBind> {
/**
* 获取绑定数量
*
* @param deviceInfoId 获取设备id
* @return /
*/
@ -16,8 +19,17 @@ public interface DeviceCamerBindRepository extends JpaRepository<DeviceCamerBind
/**
* 根据设备id 查询绑定情况
*
* @param deviceInfoId
* @return
*/
DeviceCamerBind findByDeviceInfoId(String deviceInfoId);
/**
* 查询库房代码
* @param storeroomCode
* @return
*/
List<DeviceCamerBind> findByStoreroomCode(String storeroomCode);
}

13
storeroom/src/main/java/com/storeroom/modules/device/service/DeviceCamerBindService.java

@ -36,4 +36,17 @@ public interface DeviceCamerBindService {
* @param id
*/
void deleteBind(Set<String> id);
/**
* 通过库房名称查询
* @return
*/
List<DeviceCamerBind> queryStoreroomCode(String StoreroomCode);
/**
* 根据时间下载
* @param time 时间戳
* @return
*/
String downloadVideo(String time,String deviceInfoId,String deviceCamerBindId);
}

5
storeroom/src/main/java/com/storeroom/modules/device/service/VideoMonitoringService.java

@ -4,11 +4,14 @@ package com.storeroom.modules.device.service;
import com.storeroom.modules.device.service.dto.VideoMonitoringCrieria;
import org.springframework.data.domain.Pageable;
import java.sql.Timestamp;
public interface VideoMonitoringService {
/**
* 获取视频监控列表
*
* @param crieria
* @param pageable
* @return
@ -16,4 +19,6 @@ public interface VideoMonitoringService {
Object queryAll(VideoMonitoringCrieria crieria, Pageable pageable);
}

21
storeroom/src/main/java/com/storeroom/modules/device/service/dto/CameraInfoDto.java

@ -1,5 +1,24 @@
package com.storeroom.modules.device.service.dto;
public class CameraInfoDto {
import com.storeroom.base.BaseDTO;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
@Getter
@Setter
public class CameraInfoDto extends BaseDTO implements Serializable {
private String id;
private String deviceCamerBindId;
private String description;
private String event;
private String downloadLink;
}

49
storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceCamerBindImpl.java

@ -7,16 +7,17 @@ import com.storeroom.modules.device.repository.DeviceCamerBindRepository;
import com.storeroom.modules.device.repository.DeviceInfoRepository;
import com.storeroom.modules.device.service.DeviceCamerBindService;
import com.storeroom.modules.device.service.dto.DeviceCamerBindCrieria;
import com.storeroom.utils.NanoIdUtils;
import com.storeroom.utils.PageUtil;
import com.storeroom.utils.QueryHelp;
import com.storeroom.modules.storeroom3d.config.common.VideoClient;
import com.storeroom.utils.*;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Set;
@ -68,4 +69,46 @@ public class DeviceCamerBindImpl implements DeviceCamerBindService {
public void deleteBind(Set<String> id) {
deviceCamerBindRepository.deleteAllById(id);
}
@Override
public List<DeviceCamerBind> queryStoreroomCode(String storeroomCode) {
return deviceCamerBindRepository.findByStoreroomCode(storeroomCode);
}
@Override
public String downloadVideo(String time, String deviceInfoId, String deviceCamerBindId) {
Long times = Long.valueOf(time);
LocalDateTime timestamp = DateUtils.fromTimeStamp(times);
//查询设备获取设备ip 端口号账号密码
DeviceInfo deviceInfo = deviceInfoRepository.findById(deviceInfoId).orElseGet(DeviceInfo::new);
//判断不为空
if (!ObjectUtils.isEmpty(deviceInfo) && !StringUtils.isEmpty(deviceInfo.getDeviceIp()) && !ObjectUtils.isEmpty(deviceInfo.getDevicePort()) && !StringUtils.isEmpty(deviceInfo.getDeviceAccount()) && !StringUtils.isEmpty(deviceInfo.getDevicePassword())) {
//查询绑定设备设定的视频时间
DeviceCamerBind deviceCamerBind = deviceCamerBindRepository.findById(deviceCamerBindId).orElseGet(DeviceCamerBind::new);
//时间转换
Long timeSize = Long.valueOf(deviceCamerBind.getTimeSize());
//开始时间 减时间为开始时间
LocalDateTime startTime = timestamp.minusSeconds(timeSize);
String strStartTime = DateUtils.localDateTimeFormatyMdHms(startTime);
//结束时间 加时间为结束时间
LocalDateTime endTime = timestamp.plusSeconds(timeSize);
String strEndTime = DateUtils.localDateTimeFormatyMdHms(endTime);
VideoClient videoClient = new VideoClient();
int result = videoClient.LogonDevice(deviceInfo.getDeviceIp(), deviceInfo.getDevicePort(), deviceInfo.getDeviceAccount(), deviceInfo.getDevicePassword());
if (result == 0) {
String i = deviceInfo.getVideoRoute();
videoClient.PlaybackByTimespanMode(strStartTime, strEndTime, Integer.parseInt(deviceInfo.getVideoRoute()));
return "成功";
}
throw new BaseException("无法连接该设备");
}
return "失败";
}
}

12
storeroom/src/main/java/com/storeroom/modules/device/service/impl/VideoMonitoringImpl.java

@ -1,9 +1,14 @@
package com.storeroom.modules.device.service.impl;
import com.storeroom.modules.device.domain.DeviceCamerBind;
import com.storeroom.modules.device.domain.DeviceInfo;
import com.storeroom.modules.device.domain.VideoMonitoring;
import com.storeroom.modules.device.repository.DeviceInfoRepository;
import com.storeroom.modules.device.repository.VideoMonitoringRepository;
import com.storeroom.modules.device.service.VideoMonitoringService;
import com.storeroom.modules.device.service.dto.VideoMonitoringCrieria;
import com.storeroom.modules.storeroom3d.config.common.VideoClient;
import com.storeroom.utils.DateUtils;
import com.storeroom.utils.PageUtil;
import com.storeroom.utils.QueryHelp;
import lombok.RequiredArgsConstructor;
@ -11,6 +16,8 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
@Service
@RequiredArgsConstructor
@ -19,9 +26,14 @@ public class VideoMonitoringImpl implements VideoMonitoringService {
private final VideoMonitoringRepository videoMonitoringRepository;
@Override
public Object queryAll(VideoMonitoringCrieria crieria, Pageable pageable) {
Page<VideoMonitoring> page = videoMonitoringRepository.findAll((root, query, criteriaBuilder) -> QueryHelp.getPredicate(root, crieria, criteriaBuilder), pageable);
return PageUtil.toPage(page);
}
}

1
storeroom/src/main/java/com/storeroom/modules/storeroom3d/config/common/NVSSDK.java

@ -8,7 +8,6 @@ import com.sun.jna.ptr.IntByReference;
import com.sun.jna.win32.StdCallLibrary;
import com.sun.jna.Structure.ByValue;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

64
storeroom/src/main/java/com/storeroom/modules/storeroom3d/config/common/VideoClient.java

@ -1,9 +1,11 @@
package com.storeroom.modules.storeroom3d.config.common;
import com.storeroom.exception.BaseException;
import com.storeroom.modules.storeroom3d.config.common.NVSSDK.DOWNLOAD_TIMESPAN;
import com.storeroom.modules.storeroom3d.config.common.NVSSDK.RAWFRAME_INFO;
import com.storeroom.modules.storeroom3d.config.common.NVSSDK.*;
import com.storeroom.utils.DateUtils;
import com.sun.jna.Pointer;
import com.sun.jna.ptr.IntByReference;
@ -17,7 +19,7 @@ public class VideoClient {
int m_iConnectID = -1;
int m_iTotalCount = 0;
int m_iCurrentCount = 0;
String[] suffix = {".sdv", ".mp4", "", ".ps", "", "", ".ts"};
String[] suffix = {".sdv", "", "", ".ps", "", "", ".ts"};
public void LogonNotify(String strIP, String strID, int iLogonID, int iLogonState) {
String strMsg = new String();
@ -55,7 +57,6 @@ public class VideoClient {
}
NVSSDK.ALARM_NOTIFY cbkAlarm = new NVSSDK.ALARM_NOTIFY() {
public void AlarmNotify(int _iLogonID, int _iChannel,
int _iAlarmState, int _iAlarmType, Pointer _pUserData) {
@ -123,24 +124,25 @@ public class VideoClient {
break;
}
case NVSSDK.WCM_DWONLOAD_FAULT: {
System.out.println("MainNotify:WCM_DWONLOAD_FAULT!下载失败!");
// System.out.println("MainNotify:WCM_DWONLOAD_FAULT!下载失败!");
if (null == lParam) {
m_iConnectID = 0;
} else {
m_iConnectID = (int) lParam.nativeValue(lParam);
}
NetClient.NetFileStopDownloadFile(m_iConnectID);
break;
throw new BaseException("MainNotify:WCM_DWONLOAD_FAULT!下载失败!");
}
case NVSSDK.WCM_DOWNLOAD_INTERRUPT: {
System.out.println("MainNotify:WCM_DOWNLOAD_INTERRUPT!下载中断!");
if (null == lParam) {
m_iConnectID = 0;
} else {
m_iConnectID = (int) lParam.nativeValue(lParam);
}
NetClient.NetFileStopDownloadFile(m_iConnectID);
break;
throw new BaseException("MainNotify:WCM_DOWNLOAD_INTERRUPT!下载中断!");
}
default:
break;
@ -177,7 +179,6 @@ public class VideoClient {
VideoClient tPlayback = new VideoClient();
tPlayback.SDKInit(); //初始化SDK
// Scanner scanInput = new Scanner(System.in);
System.out.println("Logon" + strIP + ":" + iPort + "-" + strUserName + "-" + strUserPwd);
while (true) {
m_iLogonID = NetClient.Logon("", strIP, strUserName, strUserPwd, "", iPort);
@ -185,15 +186,15 @@ public class VideoClient {
if (iLogonStatus == NVSSDK.LOGON_SUCCESS) {
break;
}
tPlayback.PlaybackByTimespanMode();
// tPlayback.PlaybackByTimespanMode(startTime, endTime);
try {
Thread.currentThread();
Thread.sleep(1000);
} catch (InterruptedException e) {
System.err.println("Interrupted");
}
}
}
return 0;
}
@ -270,33 +271,39 @@ public class VideoClient {
}
public int PlaybackByTimespanMode() {
public int PlaybackByTimespanMode(String startTime, String endTime, int iChannelNO) {
DOWNLOAD_TIMESPAN tDownloadTimeSpan = new DOWNLOAD_TIMESPAN();
tDownloadTimeSpan.m_iSize = tDownloadTimeSpan.size();
//Scanner scanInput = new Scanner(System.in);
System.out.print("请输入录像文件类型(sdv=0;PS=3;TS=6):");
int iSaveFileType = 1; //scanInput.nextInt();
//System.out.print("请输入录像文件类型(sdv=0;PS=3;TS=6):");
int iSaveFileType = 6;
tDownloadTimeSpan.m_iSaveFileType = iSaveFileType;
tDownloadTimeSpan.m_iFileFlag = 0; //0:Download multiple files 1:Download into a single file
String strLocalSaveFileName = new String("myTimespanDownload" + suffix[iSaveFileType]);
//判断文件夹是否存在
File file = new File("videos/");
if (!file.exists() && !file.isDirectory()) {
file.mkdirs();
}
String strLocalSaveFileName = new String(file + "/" + DateUtils.getNowTimeInMillis() + "" + suffix[iSaveFileType]);
tDownloadTimeSpan.m_cLocalFilename = strLocalSaveFileName.getBytes();
tDownloadTimeSpan.m_iChannelNO = 0; //通道号按实际下载的设备通道号赋值
tDownloadTimeSpan.m_iChannelNO = iChannelNO; //通道号按实际下载的设备通道号赋值
tDownloadTimeSpan.m_iStreamNo = 0; //码流号0-主码流1-副码流
//按时间段下载开始时间
tDownloadTimeSpan.m_tTimeBegin.iYear = 2022;
tDownloadTimeSpan.m_tTimeBegin.iMonth = 8;
tDownloadTimeSpan.m_tTimeBegin.iDay = 24;
tDownloadTimeSpan.m_tTimeBegin.iHour = 0;
tDownloadTimeSpan.m_tTimeBegin.iMinute = 0;
tDownloadTimeSpan.m_tTimeBegin.iSecond = 0;
tDownloadTimeSpan.m_tTimeBegin.iYear = DateUtils.getYear(startTime);
tDownloadTimeSpan.m_tTimeBegin.iMonth = DateUtils.getMonth(startTime);
tDownloadTimeSpan.m_tTimeBegin.iDay = DateUtils.getDay(startTime);
tDownloadTimeSpan.m_tTimeBegin.iHour = DateUtils.getHour(startTime);
tDownloadTimeSpan.m_tTimeBegin.iMinute = DateUtils.getMinute(startTime);
tDownloadTimeSpan.m_tTimeBegin.iSecond = DateUtils.getSecond(startTime);
//按时间段下载结束时间
tDownloadTimeSpan.m_tTimeEnd.iYear = 2022;
tDownloadTimeSpan.m_tTimeEnd.iMonth = 8;
tDownloadTimeSpan.m_tTimeEnd.iDay = 24;
tDownloadTimeSpan.m_tTimeEnd.iHour = 0;
tDownloadTimeSpan.m_tTimeEnd.iMinute = 5;
tDownloadTimeSpan.m_tTimeEnd.iSecond = 0;
tDownloadTimeSpan.m_tTimeEnd.iYear = DateUtils.getYear(endTime);
tDownloadTimeSpan.m_tTimeEnd.iMonth = DateUtils.getMonth(endTime);
tDownloadTimeSpan.m_tTimeEnd.iDay = DateUtils.getDay(endTime);
tDownloadTimeSpan.m_tTimeEnd.iHour = DateUtils.getHour(endTime);
tDownloadTimeSpan.m_tTimeEnd.iMinute = DateUtils.getMinute(endTime);
tDownloadTimeSpan.m_tTimeEnd.iSecond = DateUtils.getSecond(endTime);
tDownloadTimeSpan.m_iPosition = -1; //定位功能使用
tDownloadTimeSpan.m_iSpeed = 32; //下载速度最大32老设备按最大速度下载容易出现中断因此下载成功后可将速度调成16倍速
@ -307,7 +314,8 @@ public class VideoClient {
if (0 == iRet) {
//设置裸流回调在回调里接收音视频裸流数据
m_iConnectID = iConnID.getValue();
NetClient.SetRawFrameCallBack(m_iConnectID, cbkRawFrame, null);
//屏蔽下载无损格式视频
//NetClient.SetRawFrameCallBack(m_iConnectID, cbkRawFrame, null);
//调整速度
NVSSDK.DOWNLOAD_CONTROL tControl = new NVSSDK.DOWNLOAD_CONTROL();
tControl.m_iSize = tControl.size();

4
storeroom/src/main/java/com/storeroom/modules/storeroom3d/controller/VideosTestController.java

@ -21,8 +21,8 @@ public class VideosTestController {
@ApiOperation("测试")
@AnonymousGetMapping("ok")
public ApiResponse<Object> ok() {
VideoClient videoClient = new VideoClient();
videoClient.LogonDevice("192.168.99.21", 3000, "admin", "yxk63603325");
// VideoClient videoClient = new VideoClient();
//videoClient.LogonDevice("192.168.99.21", 3000, "admin", "yxk63603325");
return ApiResponse.success(ResponseStatus.SUCCESS);
}
}

39
storeroom/src/test/java/test.java

@ -1,8 +1,9 @@
import com.storeroom.utils.DateUtils;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.*;
public class test {
@ -28,11 +29,11 @@ public class test {
}
@Test
public void testArrayList(){
public void testArrayList() {
Integer[] array1 = {1, 2, 3};
Integer[] array2 = {1, 2, 3, 4,44};
Integer[] array2 = {1, 2, 3, 4, 44};
List<Integer> list = compare(array1,array2);
List<Integer> list = compare(array1, array2);
for (Integer integer : list) {
System.out.println(integer);
}
@ -48,4 +49,30 @@ public class test {
}
return list2;
}
@Test
public void timesTest() {
long time = 1661914260;
LocalDateTime s = DateUtils.fromTimeStamp(time);
String times = DateUtils.localDateTimeFormatyMdHms(s);
Short yeard = DateUtils.getYear(times);
System.out.println(yeard);
}
@Test
public void timesAdd() {
long time = 1661914260;
LocalDateTime s = DateUtils.fromTimeStamp(time);
Calendar now = Calendar.getInstance();
Long a = now.getTimeInMillis();
String times = DateUtils.localDateTimeFormatyMdHms(s);
System.out.println(times);
System.out.println(s.plusSeconds(20));
System.out.println(a);
System.out.println(now.getTimeInMillis());
}
}

11
storeroom/src/test/java/videoTest.java

@ -1,4 +1,5 @@
import com.storeroom.modules.storeroom3d.config.common.VideoClient;
import com.storeroom.utils.DateUtils;
import org.junit.jupiter.api.Test;
public class videoTest {
@ -6,7 +7,13 @@ public class videoTest {
@Test
public void loginVideo() {
VideoClient videoClient = new VideoClient();
videoClient.LogonDevice("192.168.99.21",3000,"admin","yxk63603325");
// VideoClient videoClient = new VideoClient();
//videoClient.LogonDevice("192.168.99.21",3000,"admin","yxk63603325");
}
@Test
public void getTime() {
String time = DateUtils.getNowTimeInMillis();
System.out.println(time);
}
}
Loading…
Cancel
Save