球机旋转360度

camera_merge
王一鸣 5 years ago
parent 3463857f65
commit b93089367b

28
.gitignore vendored

@ -0,0 +1,28 @@
# Created by .ignore support plugin (hsz.mobi)
### Java template
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.gitignore
.idea/workspace.xml

@ -114,8 +114,16 @@ public class StockController {
@ApiOperation(value = "slow")
@RequestMapping(value = "/slow", method = RequestMethod.GET)
public Result slow(Integer ptzId, Integer cameraId) {
PtzControlModule.toPtzSlow(ptzId, cameraId);
public Result slow(Integer cameraId,Integer x) {
PtzControlModule.toPtzSlow(cameraId,x);
return Result.success();
}
@ApiOperation(value = "currentPosition")
@RequestMapping(value = "/currentPosition", method = RequestMethod.GET)
public Result currentPosition(Integer cameraId) {
PtzControlModule.turn360(cameraId);
return Result.success();
}
}

@ -1,16 +0,0 @@
package com.zhehekeji.web.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("`lychee`")
public class Lychee {
@TableId
private Integer id;
private String ip;
}

@ -77,19 +77,6 @@ public class CallBack {
}
}
// System.out.println("-------------时间:"+new Date()+"--------------");
// System.out.println("通道号:" + PTZInfo.nChannelID);
// System.out.println("云台水平运动位置:" + PTZInfo.nPTZPan);
// System.out.println("云台垂直运动位置:" + PTZInfo.nPTZTilt);
// System.out.println("云台光圈变动位置:" + PTZInfo.nPTZZoom);
// System.out.println("云台运动状态:" + PTZInfo.bState);
// System.out.println("云台动作:" + PTZInfo.bAction);
// System.out.println("云台聚焦状态:" + PTZInfo.bFocusState);
// System.out.println("在时间段内预置点状态是否有效:" + PTZInfo.bEffectiveInTimeSection);
// System.out.println("聚焦位置:" + PTZInfo.fFocusPosition);
// System.out.println("云台水平运动位置:" + PTZInfo.nPTZPan);
// System.out.println("云台垂直运动位置:" + PTZInfo.nPTZTilt);
// System.out.println("当前倍率:" + (PTZInfo.nZoomValue * 100)); // 真实变倍值 当前倍率扩大100倍表示
}
}

@ -16317,8 +16317,8 @@ public interface NetSDKLib extends Library {
// 第一个元素为水平角度0-36000
// 第二个元素为垂直角度,(-18000-18000
// 第三个元素为显示放大倍数0-MaxZoom*100
public int nFocusMapValue; // 聚焦映射值
public int[] reserved=new int[176]; // 保留字段
//public int nFocusMapValue; // 聚焦映射值
public int[] reserved=new int[180]; // 保留字段
}
// 云台定位中非归一化坐标和变倍

@ -25,6 +25,7 @@ public class PtzControlModule {
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_UP_CONTROL,
lParam1, lParam2, 0, 0);
}
public static boolean ptzControlUpEnd(Integer cameraId, int nChannelID) {
return LoginModule.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_UP_CONTROL,
@ -39,6 +40,7 @@ public class PtzControlModule {
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_DOWN_CONTROL,
lParam1, lParam2, 0, 0);
}
public static boolean ptzControlDownEnd(Integer cameraId, int nChannelID) {
return LoginModule.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_DOWN_CONTROL,
@ -53,6 +55,7 @@ public class PtzControlModule {
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_LEFT_CONTROL,
lParam1, lParam2, 0, 0);
}
public static boolean ptzControlLeftEnd(Integer cameraId, int nChannelID) {
return LoginModule.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_LEFT_CONTROL,
@ -67,6 +70,7 @@ public class PtzControlModule {
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_RIGHT_CONTROL,
lParam1, lParam2, 0, 0);
}
public static boolean ptzControlRightEnd(Integer cameraId, int nChannelID) {
return LoginModule.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_RIGHT_CONTROL,
@ -81,6 +85,7 @@ public class PtzControlModule {
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTTOP,
lParam1, lParam2, 0, 0);
}
public static boolean ptzControlLeftUpEnd(Integer cameraId, int nChannelID) {
return LoginModule.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTTOP,
@ -95,6 +100,7 @@ public class PtzControlModule {
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTTOP,
lParam1, lParam2, 0, 0);
}
public static boolean ptzControlRightUpEnd(Integer cameraId, int nChannelID) {
return LoginModule.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTTOP,
@ -109,6 +115,7 @@ public class PtzControlModule {
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTDOWN,
lParam1, lParam2, 0, 0);
}
public static boolean ptzControlLeftDownEnd(Integer cameraId, int nChannelID) {
return LoginModule.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTDOWN,
@ -123,6 +130,7 @@ public class PtzControlModule {
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTDOWN,
lParam1, lParam2, 0, 0);
}
public static boolean ptzControlRightDownEnd(Integer cameraId, int nChannelID) {
return LoginModule.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTDOWN,
@ -137,6 +145,7 @@ public class PtzControlModule {
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_ZOOM_ADD_CONTROL,
0, lParam2, 0, 0);
}
public static boolean ptzControlZoomAddEnd(Integer cameraId, int nChannelID) {
return LoginModule.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_ZOOM_ADD_CONTROL,
@ -151,6 +160,7 @@ public class PtzControlModule {
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_ZOOM_DEC_CONTROL,
0, lParam2, 0, 0);
}
public static boolean ptzControlZoomDecEnd(Integer cameraId, int nChannelID) {
return LoginModule.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_ZOOM_DEC_CONTROL,
@ -165,6 +175,7 @@ public class PtzControlModule {
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_FOCUS_ADD_CONTROL,
0, lParam2, 0, 0);
}
public static boolean ptzControlFocusAddEnd(Integer cameraId, int nChannelID) {
return LoginModule.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_FOCUS_ADD_CONTROL,
@ -179,6 +190,7 @@ public class PtzControlModule {
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_FOCUS_DEC_CONTROL,
0, lParam2, 0, 0);
}
public static boolean ptzControlFocusDecEnd(Integer cameraId, int nChannelID) {
return LoginModule.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_FOCUS_DEC_CONTROL,
@ -193,6 +205,7 @@ public class PtzControlModule {
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_APERTURE_ADD_CONTROL,
0, lParam2, 0, 0);
}
public static boolean ptzControlIrisAddEnd(Integer cameraId, int nChannelID) {
return LoginModule.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_APERTURE_ADD_CONTROL,
@ -207,6 +220,7 @@ public class PtzControlModule {
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_APERTURE_DEC_CONTROL,
0, lParam2, 0, 0);
}
public static boolean ptzControlIrisDecEnd(Integer cameraId, int nChannelID) {
return LoginModule.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_APERTURE_DEC_CONTROL,
@ -256,26 +270,25 @@ public class PtzControlModule {
/**
*
*
* @param ptzId ID
* @param name
* @param cameraId ID,
*/
public static void ptz(Integer ptzId, String name, Integer cameraId) {
int dwzCommand = NetSDKLib.NET_PTZ_ControlType.NET_PTZ_POINT_SET_CONTROL;
int nPressetIndex = ptzId;
Boolean ok = LoginModule.netsdk.CLIENT_DHPTZControlEx2(CameraConnMap.getConnId(cameraId), 0, dwzCommand, 0, ptzId, 0, 0, ToolKits.GetGBKStringToPointer(name));
Assert.isTrue(ok, "设置失败");
}
/**
*
*
* @param ptzId
* @param cameraId
*/
public static void toPtz(Integer ptzId, Integer cameraId) {
int dwPTZCommand = NetSDKLib.NET_PTZ_ControlType.NET_PTZ_POINT_MOVE_CONTROL;
int nPresetIndex = ptzId;
Boolean ok = LoginModule.netsdk.CLIENT_DHPTZControlEx2(CameraConnMap.getConnId(cameraId), 0, dwPTZCommand, 0, ptzId, 0, 0, null);
if (!ok) {
log.error("转至预置点 失败 cameraId:{},ptzId:{}", cameraId, ptzId);
@ -284,13 +297,14 @@ public class PtzControlModule {
/**
*
* @param ptzId
*
* @param cameraId
*/
public static void toPtzSlow(Integer ptzId,Integer cameraId){
public static void toPtzSlow(Integer cameraId,Integer x) {
int dwPTZCommand = NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_MOVE_ABSOLUTELY;
NetSDKLib.PTZ_CONTROL_ABSOLUTELY absolutely = new NetSDKLib.PTZ_CONTROL_ABSOLUTELY();
absolutely.stuPosition.nPositionX = 3600;
absolutely.stuPosition.nPositionX = x;
absolutely.stuPosition.nPositionY = 0;
absolutely.stuSpeed.fPositionX = 0.2f;
absolutely.stuSpeed.fPositionY = 0.2f;
@ -299,13 +313,52 @@ public class PtzControlModule {
Boolean ok = LoginModule.netsdk.CLIENT_DHPTZControlEx2(CameraConnMap.getConnId(cameraId), 0, dwPTZCommand,
0, 0, 0, 0, absolutely.getPointer());
if (!ok) {
log.error("失败 cameraId:{},ptzId:{}",cameraId,ptzId);
log.error("失败 cameraId:{}", cameraId);
}
}
/**
* 360
* @param cameraId
*/
public static void turn360(Integer cameraId){
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
int nType = NetSDKLib.NET_DEVSTATE_PTZ_LOCATION;
NetSDKLib.NET_PTZ_LOCATION_INFO ptzLocationInfo = new NetSDKLib.NET_PTZ_LOCATION_INFO();
IntByReference intRetLen = new IntByReference();
ptzLocationInfo.write();
System.out.println("size:"+ptzLocationInfo.size());
boolean bRet = LoginModule.netsdk.CLIENT_QueryDevState(CameraConnMap.getConnId(cameraId), nType, ptzLocationInfo.getPointer(), ptzLocationInfo.size(), intRetLen, 3000);
ptzLocationInfo.read();
if (bRet) {
System.out.println("xParam:" + ptzLocationInfo.nPTZPan); // 云台水平运动位置,有效范围:[0,3600]
System.out.println("yParam:" + ptzLocationInfo.nPTZTilt); // 云台垂直运动位置,有效范围:[-1800,1800]
System.out.println("zoomParam:" + ptzLocationInfo.nPTZZoom);
int qq = (ptzLocationInfo.nPTZPan + 1799) % 3600;
System.out.println(qq);
toPtzSlow(cameraId,qq);
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
qq = (qq + 1799) % 3600;
System.out.println(qq);
toPtzSlow(cameraId,qq);
} else {
System.err.println( " { error code: ( 0x80000000|" + (LoginModule.netsdk.CLIENT_GetLastError() & 0x7fffffff) +" ). 参考 LastError.java }");
}
}
});
thread.start();
}
}

@ -1,7 +0,0 @@
package com.zhehekeji.web.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhehekeji.web.entity.Lychee;
public interface LycheeMapper extends BaseMapper<Lychee> {
}

@ -5,7 +5,6 @@ import com.zhehekeji.web.entity.Stock;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.net.Socket;
import java.util.List;
public interface StockMapper extends BaseMapper<Stock> {
@ -15,7 +14,7 @@ public interface StockMapper extends BaseMapper<Stock> {
void insertOrUpdate(@Param("req") Stock stock);
@Select("select * from stock where shelve_id = #{shelveId} and `row` = #{row} and `column` = #{column} limit 1")
Stock getByShelveIdAndRowColumn(String shelveId,Integer row,Integer column);
Stock getByShelveIdAndRowColumn(@Param("shelveId") String shelveId,@Param("row") Integer row,@Param("column") Integer column);
Integer updateStock(Stock stock);
}

@ -6,7 +6,6 @@ import io.netty.handler.codec.FixedLengthFrameDecoder;
import lombok.extern.slf4j.Slf4j;
import java.nio.charset.Charset;
import java.util.concurrent.ThreadPoolExecutor;
@Slf4j
@ -96,6 +95,7 @@ public class MyProtocolDecoder extends FixedLengthFrameDecoder {
//执行动作
plcService.action(plcOrderInfo, plcId, times, code);
}else {
// if(){}
plcService.action(plcOrderInfo, plcId, 1, code);
}
} else if (type.equals(WARN)) {

@ -1,11 +1,8 @@
package com.zhehekeji.web.service;
import com.zhehekeji.core.util.Assert;
import com.zhehekeji.web.entity.Camera;
import com.zhehekeji.web.entity.Lychee;
import com.zhehekeji.web.entity.Street;
import com.zhehekeji.web.mapper.CameraMapper;
import com.zhehekeji.web.mapper.LycheeMapper;
import com.zhehekeji.web.mapper.StreetMapper;
import com.zhehekeji.web.pojo.realTime.RealTime;
import org.springframework.stereotype.Service;
@ -15,7 +12,6 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
public class RealTimeService {
@ -24,14 +20,6 @@ public class RealTimeService {
private StreetMapper streetMapper;
@Resource
private CameraMapper cameraMapper;
@Resource
private LycheeMapper lycheeMapper;
// public String lychee(){
// Lychee lychee = lycheeMapper.selectById(1);
// Assert.notNull(lychee,"未配置荔枝转码服务");
// return lychee.getIp();
// }
public List<RealTime> realTimes(){
List<Street> streets = streetMapper.selectByMap(new HashMap<>(0));

@ -122,7 +122,14 @@ public class StockService {
* @return
*/
public Stock stockInfo(StockCheck stockCheck) {
System.out.println(stockCheck.toString());
Stock stock = stockMapper.getByShelveIdAndRowColumn(stockCheck.getShelveId(), stockCheck.getRow(), stockCheck.getColumn());
if(stock == null){
stock = new Stock();
stock.setColumn(stockCheck.getColumn());
stock.setRow(stockCheck.getRow());
stock.setShelveId(stockCheck.getShelveId());
}
return stock;
}
@ -135,7 +142,7 @@ public class StockService {
public Stock checkCorrect(StockCheck stockCheck) {
log.debug("check stock correct, shelveID:{},row:{},column:{}", stockCheck.getShelveId(), stockCheck.getRow(), stockCheck.getColumn());
Stock stock = stockInfo(stockCheck);
Assert.notNull(stock, "该货位暂时没有记录");
Assert.isTrue(stock != null && stock.getId() != null, "该货位暂时没有记录");
Integer oldStatus = stock.getStatus();
stock.setStatus(StockStatus.SUCCESS.getStatus());
stockMapper.updateById(stock);

@ -1,9 +1,7 @@
package com.zhehekeji.web.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zhehekeji.web.entity.Warn;
import com.zhehekeji.web.mapper.WarnMapper;
import com.zhehekeji.web.pojo.warn.WarnSearch;
import com.zhehekeji.web.pojo.warn.WarnVO;

Loading…
Cancel
Save