Commit 730a64be077b51add311b9d880bb23f5162253ec
1 parent
5ef229f0
优化录像查询,优化注释
Showing
4 changed files
with
40 additions
and
22 deletions
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
| @@ -188,19 +188,29 @@ public class SIPCommander implements ISIPCommander { | @@ -188,19 +188,29 @@ public class SIPCommander implements ISIPCommander { | ||
| 188 | * @param moveSpeed 镜头移动速度 默认 0XFF (0-255) | 188 | * @param moveSpeed 镜头移动速度 默认 0XFF (0-255) |
| 189 | * @param zoomSpeed 镜头缩放速度 默认 0X1 (0-255) | 189 | * @param zoomSpeed 镜头缩放速度 默认 0X1 (0-255) |
| 190 | */ | 190 | */ |
| 191 | - public static String frontEndCmdString(int cmdCode, int parameter1, int parameter2, int combineCode2) { | 191 | + |
| 192 | + /** | ||
| 193 | + * 云台指令码计算 | ||
| 194 | + * | ||
| 195 | + * @param cmdCode 指令码 | ||
| 196 | + * @param horizonSpeed 水平移动速度 | ||
| 197 | + * @param verticalSpeed 垂直移动速度 | ||
| 198 | + * @param zoomSpeed 缩放速度 | ||
| 199 | + * @return | ||
| 200 | + */ | ||
| 201 | + public static String frontEndCmdString(int cmdCode, int horizonSpeed, int verticalSpeed, int zoomSpeed) { | ||
| 192 | StringBuilder builder = new StringBuilder("A50F01"); | 202 | StringBuilder builder = new StringBuilder("A50F01"); |
| 193 | String strTmp; | 203 | String strTmp; |
| 194 | strTmp = String.format("%02X", cmdCode); | 204 | strTmp = String.format("%02X", cmdCode); |
| 195 | builder.append(strTmp, 0, 2); | 205 | builder.append(strTmp, 0, 2); |
| 196 | - strTmp = String.format("%02X", parameter1); | 206 | + strTmp = String.format("%02X", horizonSpeed); |
| 197 | builder.append(strTmp, 0, 2); | 207 | builder.append(strTmp, 0, 2); |
| 198 | - strTmp = String.format("%02X", parameter2); | 208 | + strTmp = String.format("%02X", verticalSpeed); |
| 199 | builder.append(strTmp, 0, 2); | 209 | builder.append(strTmp, 0, 2); |
| 200 | - strTmp = String.format("%X", combineCode2); | 210 | + strTmp = String.format("%X", zoomSpeed); |
| 201 | builder.append(strTmp, 0, 1).append("0"); | 211 | builder.append(strTmp, 0, 1).append("0"); |
| 202 | //计算校验码 | 212 | //计算校验码 |
| 203 | - int checkCode = (0XA5 + 0X0F + 0X01 + cmdCode + parameter1 + parameter2 + (combineCode2 & 0XF0)) % 0X100; | 213 | + int checkCode = (0XA5 + 0X0F + 0X01 + cmdCode + horizonSpeed + verticalSpeed + (zoomSpeed & 0XF0)) % 0X100; |
| 204 | strTmp = String.format("%02X", checkCode); | 214 | strTmp = String.format("%02X", checkCode); |
| 205 | builder.append(strTmp, 0, 2); | 215 | builder.append(strTmp, 0, 2); |
| 206 | return builder.toString(); | 216 | return builder.toString(); |
| @@ -249,14 +259,14 @@ public class SIPCommander implements ISIPCommander { | @@ -249,14 +259,14 @@ public class SIPCommander implements ISIPCommander { | ||
| 249 | * @param device 控制设备 | 259 | * @param device 控制设备 |
| 250 | * @param channelId 预览通道 | 260 | * @param channelId 预览通道 |
| 251 | * @param cmdCode 指令码 | 261 | * @param cmdCode 指令码 |
| 252 | - * @param parameter1 数据1 | ||
| 253 | - * @param parameter2 数据2 | ||
| 254 | - * @param combineCode2 组合码2 | 262 | + * @param horizonSpeed 水平移动速度 |
| 263 | + * @param verticalSpeed 垂直移动速度 | ||
| 264 | + * @param zoomSpeed 缩放速度 | ||
| 255 | */ | 265 | */ |
| 256 | @Override | 266 | @Override |
| 257 | - public boolean frontEndCmd(Device device, String channelId, int cmdCode, int parameter1, int parameter2, int combineCode2) { | 267 | + public boolean frontEndCmd(Device device, String channelId, int cmdCode, int horizonSpeed, int verticalSpeed, int zoomSpeed) { |
| 258 | try { | 268 | try { |
| 259 | - String cmdStr= frontEndCmdString(cmdCode, parameter1, parameter2, combineCode2); | 269 | + String cmdStr= frontEndCmdString(cmdCode, horizonSpeed, verticalSpeed, zoomSpeed); |
| 260 | System.out.println("控制字符串:" + cmdStr); | 270 | System.out.println("控制字符串:" + cmdStr); |
| 261 | StringBuffer ptzXml = new StringBuffer(200); | 271 | StringBuffer ptzXml = new StringBuffer(200); |
| 262 | ptzXml.append("<?xml version=\"1.0\" ?>\r\n"); | 272 | ptzXml.append("<?xml version=\"1.0\" ?>\r\n"); |
| @@ -701,7 +711,6 @@ public class SIPCommander implements ISIPCommander { | @@ -701,7 +711,6 @@ public class SIPCommander implements ISIPCommander { | ||
| 701 | 711 | ||
| 702 | Request request = headerProvider.createMessageRequest(device, recordInfoXml.toString(), "ViaRecordInfoBranch", "FromRecordInfoTag", null); | 712 | Request request = headerProvider.createMessageRequest(device, recordInfoXml.toString(), "ViaRecordInfoBranch", "FromRecordInfoTag", null); |
| 703 | 713 | ||
| 704 | - | ||
| 705 | transmitRequest(device, request); | 714 | transmitRequest(device, request); |
| 706 | } catch (SipException | ParseException | InvalidArgumentException e) { | 715 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| 707 | e.printStackTrace(); | 716 | e.printStackTrace(); |
src/main/java/com/genersoft/iot/vmp/vmanager/ptz/PtzController.java
| @@ -29,15 +29,14 @@ public class PtzController { | @@ -29,15 +29,14 @@ public class PtzController { | ||
| 29 | private IVideoManagerStorager storager; | 29 | private IVideoManagerStorager storager; |
| 30 | 30 | ||
| 31 | /*** | 31 | /*** |
| 32 | - * http://localhost:8080/api/ptz/34020000001320000002_34020000001320000008?leftRight=1&upDown=0&inOut=0&moveSpeed=50&zoomSpeed=0 | ||
| 33 | - * @param deviceId | ||
| 34 | - * @param channelId | ||
| 35 | - * @param leftRight | ||
| 36 | - * @param upDown | ||
| 37 | - * @param inOut | ||
| 38 | - * @param moveSpeed | ||
| 39 | - * @param zoomSpeed | ||
| 40 | - * @return | 32 | + * 云台控制 |
| 33 | + * @param deviceId 设备id | ||
| 34 | + * @param channelId 通道id | ||
| 35 | + * @param cmdCode 指令码 | ||
| 36 | + * @param horizonSpeed 水平移动速度 | ||
| 37 | + * @param verticalSpeed 垂直移动速度 | ||
| 38 | + * @param zoomSpeed 缩放速度 | ||
| 39 | + * @return String 控制结果 | ||
| 41 | */ | 40 | */ |
| 42 | @PostMapping("/ptz/{deviceId}/{channelId}") | 41 | @PostMapping("/ptz/{deviceId}/{channelId}") |
| 43 | public ResponseEntity<String> ptz(@PathVariable String deviceId,@PathVariable String channelId,int cmdCode, int horizonSpeed, int verticalSpeed, int zoomSpeed){ | 42 | public ResponseEntity<String> ptz(@PathVariable String deviceId,@PathVariable String channelId,int cmdCode, int horizonSpeed, int verticalSpeed, int zoomSpeed){ |
src/main/java/com/genersoft/iot/vmp/vmanager/record/RecordController.java
| 1 | package com.genersoft.iot.vmp.vmanager.record; | 1 | package com.genersoft.iot.vmp.vmanager.record; |
| 2 | 2 | ||
| 3 | +import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage; | ||
| 3 | import org.slf4j.Logger; | 4 | import org.slf4j.Logger; |
| 4 | import org.slf4j.LoggerFactory; | 5 | import org.slf4j.LoggerFactory; |
| 5 | import org.springframework.beans.factory.annotation.Autowired; | 6 | import org.springframework.beans.factory.annotation.Autowired; |
| @@ -32,7 +33,7 @@ public class RecordController { | @@ -32,7 +33,7 @@ public class RecordController { | ||
| 32 | 33 | ||
| 33 | @Autowired | 34 | @Autowired |
| 34 | private DeferredResultHolder resultHolder; | 35 | private DeferredResultHolder resultHolder; |
| 35 | - | 36 | + |
| 36 | @GetMapping("/record/{deviceId}/{channelId}") | 37 | @GetMapping("/record/{deviceId}/{channelId}") |
| 37 | public DeferredResult<ResponseEntity<RecordInfo>> recordinfo(@PathVariable String deviceId,@PathVariable String channelId, String startTime, String endTime){ | 38 | public DeferredResult<ResponseEntity<RecordInfo>> recordinfo(@PathVariable String deviceId,@PathVariable String channelId, String startTime, String endTime){ |
| 38 | 39 | ||
| @@ -42,9 +43,17 @@ public class RecordController { | @@ -42,9 +43,17 @@ public class RecordController { | ||
| 42 | 43 | ||
| 43 | Device device = storager.queryVideoDevice(deviceId); | 44 | Device device = storager.queryVideoDevice(deviceId); |
| 44 | cmder.recordInfoQuery(device, channelId, startTime, endTime); | 45 | cmder.recordInfoQuery(device, channelId, startTime, endTime); |
| 45 | - DeferredResult<ResponseEntity<RecordInfo>> result = new DeferredResult<ResponseEntity<RecordInfo>>(); | 46 | + // 指定超时时间 1分钟30秒 |
| 47 | + DeferredResult<ResponseEntity<RecordInfo>> result = new DeferredResult<ResponseEntity<RecordInfo>>(90*1000L); | ||
| 46 | // 录像查询以channelId作为deviceId查询 | 48 | // 录像查询以channelId作为deviceId查询 |
| 47 | resultHolder.put(DeferredResultHolder.CALLBACK_CMD_RECORDINFO+channelId, result); | 49 | resultHolder.put(DeferredResultHolder.CALLBACK_CMD_RECORDINFO+channelId, result); |
| 50 | + result.onTimeout(()->{ | ||
| 51 | + RequestMessage msg = new RequestMessage(); | ||
| 52 | + msg.setDeviceId(deviceId); | ||
| 53 | + msg.setType(DeferredResultHolder.CALLBACK_CMD_RECORDINFO); | ||
| 54 | + msg.setData("timeout"); | ||
| 55 | + resultHolder.invokeResult(msg); | ||
| 56 | + }); | ||
| 48 | return result; | 57 | return result; |
| 49 | } | 58 | } |
| 50 | } | 59 | } |
web_src/src/components/videoList.vue
| @@ -182,6 +182,7 @@ | @@ -182,6 +182,7 @@ | ||
| 182 | type: 'success' | 182 | type: 'success' |
| 183 | }); | 183 | }); |
| 184 | } | 184 | } |
| 185 | + that.initData() | ||
| 185 | that.$refs[itemData.deviceId + 'refbtn' ].loading = false; | 186 | that.$refs[itemData.deviceId + 'refbtn' ].loading = false; |
| 186 | }).catch(function(e) { | 187 | }).catch(function(e) { |
| 187 | console.error(e) | 188 | console.error(e) |