球机IO bug修改

camera_merge
王一鸣 5 years ago
parent 3b508284f0
commit 840fb4a2f3

@ -9,7 +9,6 @@ import com.zhehekeji.web.entity.CameraIOConfig;
import com.zhehekeji.web.lib.PtzControlModule;
import com.zhehekeji.web.pojo.camera.CameraConfigSearchReq;
import com.zhehekeji.web.pojo.camera.CameraIOPtz;
import com.zhehekeji.web.pojo.camera.CameraSearchReq;
import com.zhehekeji.web.pojo.street.StreetSearch;
import com.zhehekeji.web.service.CameraService;
import io.swagger.annotations.Api;
@ -96,13 +95,6 @@ public class CameraController {
return Result.success(cameraService.ioList(cameraId));
}
@PutMapping("/io")
@ApiOperation(value = "球机IO修改")
public Result editIO(@RequestBody CameraIO cameraIO){
cameraService.editIO(cameraIO);
return Result.success();
}
@PostMapping("/io/ptz")
@ApiOperation(value = "球机IO配置")
public Result<Integer> ptz(@RequestBody CameraIOPtz req) {

@ -3,6 +3,7 @@ package com.zhehekeji.web.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
@ -18,12 +19,16 @@ public class CameraIO {
private String name;
@ApiModelProperty("位置")
private String position;
@ApiModelProperty("对焦")
private String focusing;
@ApiModelProperty("光圈")
private String aperture;
@ApiModelProperty("倍率")
private String multiple;
private Integer ptzId;

@ -3,6 +3,9 @@ package com.zhehekeji.web.lib;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
/**
* sdk
*/
public class OrderCmdSerial {
public static ConcurrentHashMap<Integer, OrderInfo> orderCmdSerialMap = new ConcurrentHashMap<>(Short.MAX_VALUE * 4);

@ -0,0 +1,33 @@
package com.zhehekeji.web.lib;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
*
* sdk 使
*/
public class OrderRealtime {
/**
* key :streetId
* value:
*/
private static Map<Integer,String> orderMap = new ConcurrentHashMap<>();
public static void startOrder(Integer streetId,String orderNum){
synchronized (streetId.toString().intern()){
orderMap.put(streetId,orderNum);
}
}
public static String stopOrder(Integer streetId){
synchronized (streetId.toString().intern()){
String orderNum = orderMap.get(streetId);
orderMap.remove(streetId);
return orderNum;
}
}
}

@ -261,13 +261,13 @@ public class PtzControlModule {
/**
*
* @param ioId ID,ID,
* @param ptzId ID
* @param name
* @param cameraId ID,
*/
public static void ptz(Integer ioId,String name,Integer cameraId){
public static void ptz(Integer ptzId,String name,Integer cameraId){
int dwzCommand = NetSDKLib.NET_PTZ_ControlType.NET_PTZ_POINT_SET_CONTROL;
int nPressetIndex = ioId;
int nPressetIndex = ptzId;
Boolean ok = ptzControler(dwzCommand,0,nPressetIndex,0,0,ToolKits.GetGBKStringToPointer(name),CameraConnMap.getConnId(cameraId));
Assert.isTrue(ok,"设置失败");
}

@ -11,7 +11,7 @@ public interface CameraIOMapper extends BaseMapper<CameraIO> {
@Select("select t.name as name ,io.id ,io.aperture,io.camera_id,io.focusing,io.multiple,io.position,io.ptz_id,io.update_time\n" +
"from camera_io_config t \n" +
"left join (select * from camera_io where camera_id = #{cameraId}) io on io.name = t.name ")
"left join (select * from camera_io where camera_id = #{cameraId}) io on io.name = t.name order by t.id")
List<CameraIO> cameraIOs (@Param("cameraId") Integer cameraId);
}

@ -16,7 +16,7 @@ public class CameraIOPtz {
@ApiModelProperty("cameraIOId")
private Integer cameraIOId;
@NotEmpty(message = "O指令名称不能为空")
@NotEmpty(message = "IO指令名称不能为空")
@ApiModelProperty("PLC IO指令名称")
private String name;

@ -145,11 +145,6 @@ public class CameraService {
return list;
}
public void editIO(CameraIO cameraIO) {
cameraIO.setUpdateTime(LocalDateTime.now());
ioMapper.updateById(cameraIO);
}
/**
*
* synchronized ptzId
@ -161,7 +156,7 @@ public class CameraService {
Assert.notNull(camera, "球机不存在");
Integer cameraPtzId = camera.getPtzId() == null ? 0 : camera.getPtzId();
CameraIO cameraIO = null;
Integer ptzId = cameraPtzId++;
int ptzId = cameraPtzId + 1;
if (IOId == null || IOId == 0) {
//新增
cameraIO = new CameraIO();
@ -171,18 +166,20 @@ public class CameraService {
cameraIO.setPtzId(ptzId);
conver(cameraIO,type);
ioMapper.insert(cameraIO);
camera.setPtzId(ptzId);
cameraMapper.updateById(camera);
} else {
//修改
cameraIO = ioMapper.selectById(IOId);
Assert.notNull(cameraIO, "IO不存在");
cameraIO.setPtzId(ptzId);
//将ptzId赋值为旧的不能用新的负责SDK里面就是新增预置点
ptzId = cameraIO.getPtzId();
//cameraIO.setPtzId(ptzId);
cameraIO.setUpdateTime(LocalDateTime.now());
conver(cameraIO,type);
ioMapper.updateById(cameraIO);
}
camera.setPtzId(ptzId);
cameraMapper.updateById(camera);
PtzControlModule.ptz(IOId, cameraIO.getName(), cameraId);
PtzControlModule.ptz(ptzId, cameraIO.getName(), cameraId);
log.info("设置 预置点 球机ID:{},预置点ID:{}", cameraId, ptzId);
return cameraIO.getId();
}

Loading…
Cancel
Save