增加rtsp的限制

camera_merge
王一鸣 5 years ago
parent e80b72ec47
commit 02ace2769a

@ -10,6 +10,7 @@ import com.zhehekeji.web.lib.PtzControlModule;
import com.zhehekeji.web.mapper.CameraMapper; import com.zhehekeji.web.mapper.CameraMapper;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -17,6 +18,7 @@ import javax.annotation.Resource;
@Api(value = "CameraControl",tags = "球机控制管理") @Api(value = "CameraControl",tags = "球机控制管理")
@RestController @RestController
@RequestMapping("/camera/control") @RequestMapping("/camera/control")
@Slf4j
public class CameraControlController { public class CameraControlController {
@Resource @Resource
@ -36,6 +38,7 @@ public class CameraControlController {
@PostMapping("/up/{id}") @PostMapping("/up/{id}")
@ApiOperation(value = "球机控制向上") @ApiOperation(value = "球机控制向上")
public Result up(@PathVariable Integer id) { public Result up(@PathVariable Integer id) {
log.debug("球机控制向上");
checkLogin(id); checkLogin(id);
PtzControlModule.ptzControlUpStart(id,0,0,1); PtzControlModule.ptzControlUpStart(id,0,0,1);
return Result.success(); return Result.success();
@ -44,6 +47,7 @@ public class CameraControlController {
@PostMapping("/up/stop/{id}") @PostMapping("/up/stop/{id}")
@ApiOperation(value = "球机控制向上 停止") @ApiOperation(value = "球机控制向上 停止")
public Result upStop(@PathVariable Integer id) { public Result upStop(@PathVariable Integer id) {
log.debug("球机控制向上 停止");
checkLogin(id); checkLogin(id);
PtzControlModule.ptzControlUpEnd(id,0); PtzControlModule.ptzControlUpEnd(id,0);
return Result.success(); return Result.success();
@ -54,6 +58,7 @@ public class CameraControlController {
public Result down(@PathVariable Integer id) { public Result down(@PathVariable Integer id) {
checkLogin(id); checkLogin(id);
PtzControlModule.ptzControlDownStart(id,0,0,1); PtzControlModule.ptzControlDownStart(id,0,0,1);
log.debug("球机控制向下");
return Result.success(); return Result.success();
} }
@ -62,6 +67,7 @@ public class CameraControlController {
public Result downStop(@PathVariable Integer id) { public Result downStop(@PathVariable Integer id) {
checkLogin(id); checkLogin(id);
PtzControlModule.ptzControlDownEnd(id,0); PtzControlModule.ptzControlDownEnd(id,0);
log.debug("球机控制向下 停止");
return Result.success(); return Result.success();
} }
@ -70,6 +76,7 @@ public class CameraControlController {
public Result left(@PathVariable Integer id) { public Result left(@PathVariable Integer id) {
checkLogin(id); checkLogin(id);
PtzControlModule.ptzControlLeftStart(id,0,0,1); PtzControlModule.ptzControlLeftStart(id,0,0,1);
log.debug("球机控制向左");
return Result.success(); return Result.success();
} }
@ -78,6 +85,7 @@ public class CameraControlController {
public Result leftStop(@PathVariable Integer id) { public Result leftStop(@PathVariable Integer id) {
checkLogin(id); checkLogin(id);
PtzControlModule.ptzControlLeftEnd(id,0); PtzControlModule.ptzControlLeftEnd(id,0);
log.debug("球机控制向左 -停止");
return Result.success(); return Result.success();
} }
@ -87,6 +95,7 @@ public class CameraControlController {
public Result leftUp(@PathVariable Integer id) { public Result leftUp(@PathVariable Integer id) {
checkLogin(id); checkLogin(id);
PtzControlModule.ptzControlLeftUpStart(id,0,1,1); PtzControlModule.ptzControlLeftUpStart(id,0,1,1);
log.debug("球机控制向上");
return Result.success(); return Result.success();
} }
@ -95,6 +104,7 @@ public class CameraControlController {
public Result leftUpStop(@PathVariable Integer id) { public Result leftUpStop(@PathVariable Integer id) {
checkLogin(id); checkLogin(id);
PtzControlModule.ptzControlLeftUpEnd(id,0); PtzControlModule.ptzControlLeftUpEnd(id,0);
log.debug("球机控制向上 停止");
return Result.success(); return Result.success();
} }
@ -103,6 +113,7 @@ public class CameraControlController {
public Result leftDown(@PathVariable Integer id) { public Result leftDown(@PathVariable Integer id) {
checkLogin(id); checkLogin(id);
PtzControlModule.ptzControlLeftDownStart(id,0,1,1); PtzControlModule.ptzControlLeftDownStart(id,0,1,1);
log.debug("球机控制左下");
return Result.success(); return Result.success();
} }
@ -111,6 +122,7 @@ public class CameraControlController {
public Result leftDownStop(@PathVariable Integer id) { public Result leftDownStop(@PathVariable Integer id) {
checkLogin(id); checkLogin(id);
PtzControlModule.ptzControlLeftDownEnd(id,0); PtzControlModule.ptzControlLeftDownEnd(id,0);
log.debug("球机控制左下 停止");
return Result.success(); return Result.success();
} }
@ -119,6 +131,7 @@ public class CameraControlController {
public Result right(@PathVariable Integer id) { public Result right(@PathVariable Integer id) {
checkLogin(id); checkLogin(id);
PtzControlModule.ptzControlRightStart(id,0,0,1); PtzControlModule.ptzControlRightStart(id,0,0,1);
log.debug("球机控制右");
return Result.success(); return Result.success();
} }
@ -127,6 +140,7 @@ public class CameraControlController {
public Result rightStop(@PathVariable Integer id) { public Result rightStop(@PathVariable Integer id) {
checkLogin(id); checkLogin(id);
PtzControlModule.ptzControlRightEnd(id,0); PtzControlModule.ptzControlRightEnd(id,0);
log.debug("球机控制右 停止");
return Result.success(); return Result.success();
} }
@ -136,6 +150,7 @@ public class CameraControlController {
public Result rightUp(@PathVariable Integer id) { public Result rightUp(@PathVariable Integer id) {
checkLogin(id); checkLogin(id);
PtzControlModule.ptzControlRightUpStart(id,0,1,1); PtzControlModule.ptzControlRightUpStart(id,0,1,1);
log.debug("球机控制右上");
return Result.success(); return Result.success();
} }
@ -144,6 +159,7 @@ public class CameraControlController {
public Result rightUpStop(@PathVariable Integer id) { public Result rightUpStop(@PathVariable Integer id) {
checkLogin(id); checkLogin(id);
PtzControlModule.ptzControlRightUpEnd(id,0); PtzControlModule.ptzControlRightUpEnd(id,0);
log.debug("球机控制右上 -停止");
return Result.success(); return Result.success();
} }
@ -152,6 +168,7 @@ public class CameraControlController {
public Result rightDown(@PathVariable Integer id) { public Result rightDown(@PathVariable Integer id) {
checkLogin(id); checkLogin(id);
PtzControlModule.ptzControlRightDownStart(id,0,1,1); PtzControlModule.ptzControlRightDownStart(id,0,1,1);
log.debug("球机控制右下");
return Result.success(); return Result.success();
} }
@ -160,6 +177,7 @@ public class CameraControlController {
public Result rightDownStop(@PathVariable Integer id) { public Result rightDownStop(@PathVariable Integer id) {
checkLogin(id); checkLogin(id);
PtzControlModule.ptzControlRightDownEnd(id,0); PtzControlModule.ptzControlRightDownEnd(id,0);
log.debug("球机控制右下 -停止");
return Result.success(); return Result.success();
} }

@ -8,12 +8,17 @@ public class CameraConnMap{
public static Map<Integer, NetSDKLib.LLong> cameraMap = new HashMap<>(); public static Map<Integer, NetSDKLib.LLong> cameraMap = new HashMap<>();
public static void conn(Integer cameraId,NetSDKLib.LLong handlerId){ public static void conn(Integer cameraId,NetSDKLib.LLong handlerId){
synchronized (cameraId.toString().intern()){
cameraMap.put(cameraId,handlerId); cameraMap.put(cameraId,handlerId);
} }
}
public static void disConn(Integer cameraId){ public static void disConn(Integer cameraId){
synchronized (cameraId.toString().intern()){
cameraMap.remove(cameraId); cameraMap.remove(cameraId);
} }
}
public static NetSDKLib.LLong getConnId(Integer cameraId){ public static NetSDKLib.LLong getConnId(Integer cameraId){
return cameraMap.get(cameraId); return cameraMap.get(cameraId);

@ -48,21 +48,21 @@ public class LoginModule {
//Res res = Res.string(); //Res res = Res.string();
//打开日志,可选 //打开日志,可选
// NetSDKLib.LOG_SET_PRINT_INFO setLog = new NetSDKLib.LOG_SET_PRINT_INFO(); NetSDKLib.LOG_SET_PRINT_INFO setLog = new NetSDKLib.LOG_SET_PRINT_INFO();
// File path = new File("./sdklog/"); File path = new File("./sdklog/");
// if (!path.exists()) { if (!path.exists()) {
// path.mkdir(); path.mkdir();
// } }
// String logPath = path.getAbsoluteFile().getParent() + "\\sdklog\\" + ToolKits.getDate() + ".log"; String logPath = path.getAbsoluteFile().getParent() + "\\sdklog\\" + ToolKits.getDate() + ".log";
// setLog.nPrintStrategy = 0; setLog.nPrintStrategy = 0;
// setLog.bSetFilePath = 1; setLog.bSetFilePath = 1;
// System.arraycopy(logPath.getBytes(), 0, setLog.szLogFilePath, 0, logPath.getBytes().length); System.arraycopy(logPath.getBytes(), 0, setLog.szLogFilePath, 0, logPath.getBytes().length);
// System.out.println(logPath); System.out.println(logPath);
// setLog.bSetPrintStrategy = 1; setLog.bSetPrintStrategy = 1;
// bLogopen = netsdk.CLIENT_LogOpen(setLog); bLogopen = netsdk.CLIENT_LogOpen(setLog);
// if(!bLogopen ) { if(!bLogopen ) {
// System.err.println("Failed to open NetSDK log"); System.err.println("Failed to open NetSDK log");
// } }
// 设置断线重连回调接口设置过断线重连成功回调函数后当设备出现断线情况SDK内部会自动进行重连操作 // 设置断线重连回调接口设置过断线重连成功回调函数后当设备出现断线情况SDK内部会自动进行重连操作
// 此操作为可选操作,但建议用户进行设置 // 此操作为可选操作,但建议用户进行设置

@ -1,57 +1,16 @@
package com.zhehekeji.web.lib; package com.zhehekeji.web.lib;
import com.sun.jna.Pointer; import com.sun.jna.Pointer;
import com.zhehekeji.common.util.PathUtil;
import org.springframework.web.bind.annotation.PathVariable;
import javax.imageio.ImageIO;
import java.io.*;
public class Mp4ReceiveCB implements NetSDKLib.fTimeDownLoadPosCallBack { public class Mp4ReceiveCB implements NetSDKLib.fTimeDownLoadPosCallBack {
// @Override
// public int invoke(NetSDKLib.LLong lRealHandle, int dwDataType, Pointer pBuf, int RevLen, Pointer dwUser) {
// if(pBuf != null && RevLen > 0) {
// byte[] buf = pBuf.getByteArray(0, RevLen);
//
// File file = PathUtil.getFile("d://qq/recive/qqq.mp4");
// OutputStream os = null;
// try {
// os = new FileOutputStream(file);
// } catch (FileNotFoundException e) {
// e.printStackTrace();
// }
// for(int i = 0;i<buf.length;i++){
// try {
// os.write(buf[i]);
// } catch (IOException e) {
// e.printStackTrace();
// }
// }
//
// try {
// os.flush();
// } catch (IOException e) {
// e.printStackTrace();
// }
// try {
// os.close();
// } catch (IOException e) {
// e.printStackTrace();
// }
//
//
// }
//
// return 0;
// }
@Override @Override
public void invoke(NetSDKLib.LLong lPlayHandle, int dwTotalSize, int dwDownLoadSize, int index, NetSDKLib.NET_RECORDFILE_INFO.ByValue recordfileinfo, Pointer dwUser) { public void invoke(NetSDKLib.LLong lPlayHandle, int dwTotalSize, int dwDownLoadSize, int index, NetSDKLib.NET_RECORDFILE_INFO.ByValue recordfileinfo, Pointer dwUser) {
System.out.println("ing...."+dwDownLoadSize+" totalSize:"+dwTotalSize+"id:"+lPlayHandle.longValue()); System.out.println("ing.... dwDownLoadSize:"+dwDownLoadSize+" dwTotalSize:"+dwTotalSize+
" lPlayHandle:"+lPlayHandle.longValue()+" index:"+index);
if(dwDownLoadSize == -1) { if(dwDownLoadSize == -1) {
System.out.println("下载结束"); System.out.println("下载结束");
LoginModule.netsdk.CLIENT_StopDownload(lPlayHandle); LoginModule.netsdk.CLIENT_StopDownload(lPlayHandle);
} }
} }
} }

@ -230,67 +230,12 @@ public class PtzControlModule {
} }
public static void downloadMp4(Integer cameraId,int channelId){ public static void downloadMp4(Integer cameraId,int channelId){
// NetSDKLib.NET_IN_DOWNLOAD_BY_DATA_TYPE stIn = new NetSDKLib.NET_IN_DOWNLOAD_BY_DATA_TYPE();
//
//
//
// stIn.emDataType = NetSDKLib.EM_REAL_DATA_TYPE.EM_REAL_DATA_TYPE_MP4; // mp4
//
// stIn.emRecordType = NetSDKLib.EM_QUERY_RECORD_TYPE.EM_RECORD_TYPE_ALL; // 所有录像
//
// stIn.nChannelID = 0;
//
// LocalDateTime now = LocalDateTime.now();
// LocalDateTime start = now.minusMinutes(10);
// stIn.stStartTime.setTime(start.getYear(),start.getMonthValue(),start.getDayOfMonth(),start.getHour(),start.getMinute(),start.getSecond());
// NetSDKLib.NET_TIME endTime = new NetSDKLib.NET_TIME();
// LocalDateTime end = now.minusMinutes(8);
// stIn.stStopTime.setTime(end.getYear(),end.getMonthValue(),end.getDayOfMonth(),end.getHour(),end.getMinute(),end.getSecond());
//
// //stIn.cbDownLoadPos = DownloadPosCallBack.getInstance();
//
// stIn.dwPosUser = null;
//
//
// Mp4ReceiveCB mp4ReceiveCB = new Mp4ReceiveCB();
// stIn.fDownLoadDataCallBack = mp4ReceiveCB;
//
// stIn.dwDataUser = null;
//
//
//
// NetSDKLib.NET_OUT_DOWNLOAD_BY_DATA_TYPE stOut = new NetSDKLib.NET_OUT_DOWNLOAD_BY_DATA_TYPE();
// NetSDKLib.NET_IN_DOWNLOAD_BY_DATA_TYPE download_by_data_type = new NetSDKLib.NET_IN_DOWNLOAD_BY_DATA_TYPE();
// download_by_data_type.nChannelID = 0;
// download_by_data_type.stStartTime = startTime;
// download_by_data_type.stStopTime = endTime;
// download_by_data_type.szSavedFileName="/qq.mp4";
// download_by_data_type.emDataType = 3;
// download_by_data_type.emRecordType = 0;
// NetSDKLib.LLong lPlayHandle = LoginModule.netsdk.CLIENT_DownloadByDataType(CameraConnMap.getConnId(cameraId), stIn, stOut, 5000);
//
// if(lPlayHandle.longValue() != 0) {
//
// System.out.println("DownloadByDataType Succeed!");
//
// } else {
// System.err.printf("DownloadByDataType Failed!Last Error[0x%x]\n", LoginModule.netsdk.CLIENT_GetLastError());
// return;
// }
// try {
// Thread.sleep(30000);
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
// LoginModule.netsdk.CLIENT_StopDownload(lPlayHandle); //因为mp4格式需要在下载结束的时候回写头所以一定要调用停止接口否则下载的Mp4无法播放
NetSDKLib.NET_TIME startTime = new NetSDKLib.NET_TIME(); NetSDKLib.NET_TIME startTime = new NetSDKLib.NET_TIME();
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
LocalDateTime start = now.minusMinutes(10); LocalDateTime start = now.minusMinutes(80);
startTime.setTime(start.getYear(),start.getMonthValue(),start.getDayOfMonth(),start.getHour(),start.getMinute(),start.getSecond()); startTime.setTime(start.getYear(),start.getMonthValue(),start.getDayOfMonth(),start.getHour(),start.getMinute(),start.getSecond());
NetSDKLib.NET_TIME endTime = new NetSDKLib.NET_TIME(); NetSDKLib.NET_TIME endTime = new NetSDKLib.NET_TIME();
LocalDateTime end = now.minusMinutes(8); LocalDateTime end = now.minusMinutes(75);
endTime.setTime(end.getYear(),end.getMonthValue(),end.getDayOfMonth(),end.getHour(),end.getMinute(),end.getSecond()); endTime.setTime(end.getYear(),end.getMonthValue(),end.getDayOfMonth(),end.getHour(),end.getMinute(),end.getSecond());
NetSDKLib.NET_IN_DOWNLOAD_BY_DATA_TYPE download_by_data_type = new NetSDKLib.NET_IN_DOWNLOAD_BY_DATA_TYPE(); NetSDKLib.NET_IN_DOWNLOAD_BY_DATA_TYPE download_by_data_type = new NetSDKLib.NET_IN_DOWNLOAD_BY_DATA_TYPE();
download_by_data_type.nChannelID = 0; download_by_data_type.nChannelID = 0;
@ -300,17 +245,14 @@ public class PtzControlModule {
download_by_data_type.szSavedFileName="d:/qq/"+u+".mp4"; download_by_data_type.szSavedFileName="d:/qq/"+u+".mp4";
download_by_data_type.emDataType = 3; download_by_data_type.emDataType = 3;
download_by_data_type.emRecordType = 0; download_by_data_type.emRecordType = 0;
download_by_data_type.fDownLoadDataCallBack = new Mp4ReceiveCB(); download_by_data_type.cbDownLoadPos = new Mp4ReceiveCB();
NetSDKLib.NET_OUT_DOWNLOAD_BY_DATA_TYPE net_out_download_by_data_type = new NetSDKLib.NET_OUT_DOWNLOAD_BY_DATA_TYPE(); NetSDKLib.NET_OUT_DOWNLOAD_BY_DATA_TYPE net_out_download_by_data_type = new NetSDKLib.NET_OUT_DOWNLOAD_BY_DATA_TYPE();
//NetSDKLib.LLong l = LoginModule.netsdk.CLIENT_DownloadByTimeEx2(CameraConnMap.getConnId(cameraId),channelId,0,startTime,endTime,"./q2q.mp4",null,null,null,null,3,null); //NetSDKLib.LLong l = LoginModule.netsdk.CLIENT_DownloadByTimeEx2(CameraConnMap.getConnId(cameraId),channelId,0,startTime,endTime,"./q2q.mp4",null,null,null,null,3,null);
System.out.println("开始"); System.out.println("开始");
System.out.println("loginId"+CameraConnMap.getConnId(cameraId)); System.out.println("loginId"+CameraConnMap.getConnId(cameraId));
NetSDKLib.LLong l = LoginModule.netsdk.CLIENT_DownloadByDataType(CameraConnMap.getConnId(cameraId),download_by_data_type,net_out_download_by_data_type,2); NetSDKLib.LLong l = LoginModule.netsdk.CLIENT_DownloadByDataType(CameraConnMap.getConnId(cameraId),download_by_data_type,net_out_download_by_data_type,0);
System.out.println("l "+l.longValue()); System.out.println("下载句柄: "+l.longValue());
// NetSDKLib.LLong m_hDownLoadHandle = LoginModule.netsdk.CLIENT_DownloadByTimeEx(CameraConnMap.getConnId(cameraId), channelId, 0,
// startTime, endTime, "./qq.dav",
// null, null, null, null, null);
if(l.longValue() == 0){ if(l.longValue() == 0){
System.out.println(ToolKits.getErrorCodePrint()); System.out.println(ToolKits.getErrorCodePrint());
} }

@ -48,6 +48,7 @@ public class CameraService {
} }
public void edit(Camera camera){ public void edit(Camera camera){
camera.setUpdateTime(LocalDateTime.now());
try { try {
cameraMapper.updateById(camera); cameraMapper.updateById(camera);
}catch (DuplicateKeyException e){ }catch (DuplicateKeyException e){

@ -1,6 +1,7 @@
package com.zhehekeji.web.service; package com.zhehekeji.web.service;
import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcel;
import com.zhehekeji.web.entity.Stock;
import com.zhehekeji.web.mapper.StockMapper; import com.zhehekeji.web.mapper.StockMapper;
import com.zhehekeji.web.pojo.stock.StockExcel; import com.zhehekeji.web.pojo.stock.StockExcel;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -8,6 +9,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.IOException; import java.io.IOException;
import java.util.List;
import java.util.UUID; import java.util.UUID;
@Service @Service
@ -19,4 +21,8 @@ public class StockService {
public void importExcel(MultipartFile file) throws IOException { public void importExcel(MultipartFile file) throws IOException {
EasyExcel.read(file.getInputStream(), StockExcel.class, new StockImport(stockMapper)).sheet().doRead(); EasyExcel.read(file.getInputStream(), StockExcel.class, new StockImport(stockMapper)).sheet().doRead();
} }
public List<Stock> stocksByStreet(){
return null;
}
} }

Loading…
Cancel
Save