diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 88ee08a..577094a 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -16,6 +16,7 @@ DEVICE_REGISTER_FAILED(2500, "设备注册失败"), RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), RUN_TIME_FAILED(2502, "此段时间都小于当前时间无法开启"), + CRUISE_POINTS_OVERFLOW(2507, "预置点设置溢出"), CRUISE_NAME_DUPLICATE(2503, "巡航路径名称重复"), CRUISE_DELETE_FAIL(2506, "该巡航线在任务中正在启用状态,无法删除"), CRUISE_DELETE_ERROR(2504, "巡航路径删除过程中对设备操作异常"), diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 88ee08a..577094a 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -16,6 +16,7 @@ DEVICE_REGISTER_FAILED(2500, "设备注册失败"), RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), RUN_TIME_FAILED(2502, "此段时间都小于当前时间无法开启"), + CRUISE_POINTS_OVERFLOW(2507, "预置点设置溢出"), CRUISE_NAME_DUPLICATE(2503, "巡航路径名称重复"), CRUISE_DELETE_FAIL(2506, "该巡航线在任务中正在启用状态,无法删除"), CRUISE_DELETE_ERROR(2504, "巡航路径删除过程中对设备操作异常"), diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java index 729c35c..2c57df5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java @@ -351,28 +351,6 @@ return ihcNetService.setPresetCommand(userId, command); } - /** - * 转到指定角度 - * @param deviceIp 设备ip - * @param horizontalAngle 水平角度 - * @param verticalAngle 垂直角度 - * @return 向设备发送旋转指令 - */ -// @RequestMapping("/toPosition") -// @ResponseBody -// public Object angle(String deviceIp,String horizontalAngle, String verticalAngle){ -// Long userId = getUserIdByIp(deviceIp); -// if(ObjectUtil.isEmpty(userId) || userId < 0){ -// return ResponseData.error("设备注册失败"); -// } -// boolean res = ihcNetService.setPosition(userId,Double.valueOf(horizontalAngle),Double.valueOf(verticalAngle)); -// if(res){ -// return ResponseData.success(); -// }else{ -// return ResponseData.error("请求失败"); -// } -// } - /** * 设备升级特殊定制指令 @@ -385,10 +363,6 @@ @RequestMapping("/specialControl") @ResponseBody public Object specialControl(String deviceIp, String command, Integer value, Integer speed, Integer stopTime, Integer alarmValue) { - - -// DoorShortUtil.remoteControl("192.168.1.99", 253219003, 2, 2); -// return ResponseData.success(); Long userId = getUserIdByIp(deviceIp); if (ObjectUtil.isEmpty(userId) || userId < 0) { return ResponseData.error("设备注册失败"); diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 88ee08a..577094a 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -16,6 +16,7 @@ DEVICE_REGISTER_FAILED(2500, "设备注册失败"), RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), RUN_TIME_FAILED(2502, "此段时间都小于当前时间无法开启"), + CRUISE_POINTS_OVERFLOW(2507, "预置点设置溢出"), CRUISE_NAME_DUPLICATE(2503, "巡航路径名称重复"), CRUISE_DELETE_FAIL(2506, "该巡航线在任务中正在启用状态,无法删除"), CRUISE_DELETE_ERROR(2504, "巡航路径删除过程中对设备操作异常"), diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java index 729c35c..2c57df5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java @@ -351,28 +351,6 @@ return ihcNetService.setPresetCommand(userId, command); } - /** - * 转到指定角度 - * @param deviceIp 设备ip - * @param horizontalAngle 水平角度 - * @param verticalAngle 垂直角度 - * @return 向设备发送旋转指令 - */ -// @RequestMapping("/toPosition") -// @ResponseBody -// public Object angle(String deviceIp,String horizontalAngle, String verticalAngle){ -// Long userId = getUserIdByIp(deviceIp); -// if(ObjectUtil.isEmpty(userId) || userId < 0){ -// return ResponseData.error("设备注册失败"); -// } -// boolean res = ihcNetService.setPosition(userId,Double.valueOf(horizontalAngle),Double.valueOf(verticalAngle)); -// if(res){ -// return ResponseData.success(); -// }else{ -// return ResponseData.error("请求失败"); -// } -// } - /** * 设备升级特殊定制指令 @@ -385,10 +363,6 @@ @RequestMapping("/specialControl") @ResponseBody public Object specialControl(String deviceIp, String command, Integer value, Integer speed, Integer stopTime, Integer alarmValue) { - - -// DoorShortUtil.remoteControl("192.168.1.99", 253219003, 2, 2); -// return ResponseData.success(); Long userId = getUserIdByIp(deviceIp); if (ObjectUtil.isEmpty(userId) || userId < 0) { return ResponseData.error("设备注册失败"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/job/StartTaskJob.java b/casic-server/src/main/java/com/casic/missiles/modular/system/job/StartTaskJob.java index 0332421..039dead 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/job/StartTaskJob.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/job/StartTaskJob.java @@ -39,8 +39,7 @@ private void getJobDelay(String id) { - System.out.println("开始执行了------"); - + logger.info("StartTaskJob开始执行了------"); //更新任务执行状态 planService.updateStatus(Long.valueOf(id),StatusEnum.TASK_RUNNING); } diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 88ee08a..577094a 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -16,6 +16,7 @@ DEVICE_REGISTER_FAILED(2500, "设备注册失败"), RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), RUN_TIME_FAILED(2502, "此段时间都小于当前时间无法开启"), + CRUISE_POINTS_OVERFLOW(2507, "预置点设置溢出"), CRUISE_NAME_DUPLICATE(2503, "巡航路径名称重复"), CRUISE_DELETE_FAIL(2506, "该巡航线在任务中正在启用状态,无法删除"), CRUISE_DELETE_ERROR(2504, "巡航路径删除过程中对设备操作异常"), diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java index 729c35c..2c57df5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java @@ -351,28 +351,6 @@ return ihcNetService.setPresetCommand(userId, command); } - /** - * 转到指定角度 - * @param deviceIp 设备ip - * @param horizontalAngle 水平角度 - * @param verticalAngle 垂直角度 - * @return 向设备发送旋转指令 - */ -// @RequestMapping("/toPosition") -// @ResponseBody -// public Object angle(String deviceIp,String horizontalAngle, String verticalAngle){ -// Long userId = getUserIdByIp(deviceIp); -// if(ObjectUtil.isEmpty(userId) || userId < 0){ -// return ResponseData.error("设备注册失败"); -// } -// boolean res = ihcNetService.setPosition(userId,Double.valueOf(horizontalAngle),Double.valueOf(verticalAngle)); -// if(res){ -// return ResponseData.success(); -// }else{ -// return ResponseData.error("请求失败"); -// } -// } - /** * 设备升级特殊定制指令 @@ -385,10 +363,6 @@ @RequestMapping("/specialControl") @ResponseBody public Object specialControl(String deviceIp, String command, Integer value, Integer speed, Integer stopTime, Integer alarmValue) { - - -// DoorShortUtil.remoteControl("192.168.1.99", 253219003, 2, 2); -// return ResponseData.success(); Long userId = getUserIdByIp(deviceIp); if (ObjectUtil.isEmpty(userId) || userId < 0) { return ResponseData.error("设备注册失败"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/job/StartTaskJob.java b/casic-server/src/main/java/com/casic/missiles/modular/system/job/StartTaskJob.java index 0332421..039dead 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/job/StartTaskJob.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/job/StartTaskJob.java @@ -39,8 +39,7 @@ private void getJobDelay(String id) { - System.out.println("开始执行了------"); - + logger.info("StartTaskJob开始执行了------"); //更新任务执行状态 planService.updateStatus(Long.valueOf(id),StatusEnum.TASK_RUNNING); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/job/StopTaskJob.java b/casic-server/src/main/java/com/casic/missiles/modular/system/job/StopTaskJob.java index d6f1f11..7c12d2a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/job/StopTaskJob.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/job/StopTaskJob.java @@ -38,9 +38,7 @@ } private void getJobDelay(String id) { - - System.out.println("停止执行了------"); - + logger.info("StopTaskJob开始执行了------"); //更新任务执行状态 planService.updateStatus(Long.valueOf(id), StatusEnum.TASK_COMPLETE); } diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 88ee08a..577094a 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -16,6 +16,7 @@ DEVICE_REGISTER_FAILED(2500, "设备注册失败"), RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), RUN_TIME_FAILED(2502, "此段时间都小于当前时间无法开启"), + CRUISE_POINTS_OVERFLOW(2507, "预置点设置溢出"), CRUISE_NAME_DUPLICATE(2503, "巡航路径名称重复"), CRUISE_DELETE_FAIL(2506, "该巡航线在任务中正在启用状态,无法删除"), CRUISE_DELETE_ERROR(2504, "巡航路径删除过程中对设备操作异常"), diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java index 729c35c..2c57df5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java @@ -351,28 +351,6 @@ return ihcNetService.setPresetCommand(userId, command); } - /** - * 转到指定角度 - * @param deviceIp 设备ip - * @param horizontalAngle 水平角度 - * @param verticalAngle 垂直角度 - * @return 向设备发送旋转指令 - */ -// @RequestMapping("/toPosition") -// @ResponseBody -// public Object angle(String deviceIp,String horizontalAngle, String verticalAngle){ -// Long userId = getUserIdByIp(deviceIp); -// if(ObjectUtil.isEmpty(userId) || userId < 0){ -// return ResponseData.error("设备注册失败"); -// } -// boolean res = ihcNetService.setPosition(userId,Double.valueOf(horizontalAngle),Double.valueOf(verticalAngle)); -// if(res){ -// return ResponseData.success(); -// }else{ -// return ResponseData.error("请求失败"); -// } -// } - /** * 设备升级特殊定制指令 @@ -385,10 +363,6 @@ @RequestMapping("/specialControl") @ResponseBody public Object specialControl(String deviceIp, String command, Integer value, Integer speed, Integer stopTime, Integer alarmValue) { - - -// DoorShortUtil.remoteControl("192.168.1.99", 253219003, 2, 2); -// return ResponseData.success(); Long userId = getUserIdByIp(deviceIp); if (ObjectUtil.isEmpty(userId) || userId < 0) { return ResponseData.error("设备注册失败"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/job/StartTaskJob.java b/casic-server/src/main/java/com/casic/missiles/modular/system/job/StartTaskJob.java index 0332421..039dead 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/job/StartTaskJob.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/job/StartTaskJob.java @@ -39,8 +39,7 @@ private void getJobDelay(String id) { - System.out.println("开始执行了------"); - + logger.info("StartTaskJob开始执行了------"); //更新任务执行状态 planService.updateStatus(Long.valueOf(id),StatusEnum.TASK_RUNNING); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/job/StopTaskJob.java b/casic-server/src/main/java/com/casic/missiles/modular/system/job/StopTaskJob.java index d6f1f11..7c12d2a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/job/StopTaskJob.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/job/StopTaskJob.java @@ -38,9 +38,7 @@ } private void getJobDelay(String id) { - - System.out.println("停止执行了------"); - + logger.info("StopTaskJob开始执行了------"); //更新任务执行状态 planService.updateStatus(Long.valueOf(id), StatusEnum.TASK_COMPLETE); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusPlanServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusPlanServiceImpl.java index 870559a..4da723f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusPlanServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusPlanServiceImpl.java @@ -67,7 +67,7 @@ } //先保存数据 if (this.saveOrUpdate(busPlan)) { - //toDo:若已启动任务,则创建启动job任务 缺消息提示 、和修改时间的 + //若已启动任务,则创建启动job任务 if (StatusEnum.STATUS_OPEN.equals(busPlan.getStatus())) { startOrStop(new PlanRequest(busPlan.getId(), StatusEnum.STATUS_OPEN)); } diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 88ee08a..577094a 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -16,6 +16,7 @@ DEVICE_REGISTER_FAILED(2500, "设备注册失败"), RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), RUN_TIME_FAILED(2502, "此段时间都小于当前时间无法开启"), + CRUISE_POINTS_OVERFLOW(2507, "预置点设置溢出"), CRUISE_NAME_DUPLICATE(2503, "巡航路径名称重复"), CRUISE_DELETE_FAIL(2506, "该巡航线在任务中正在启用状态,无法删除"), CRUISE_DELETE_ERROR(2504, "巡航路径删除过程中对设备操作异常"), diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java index 729c35c..2c57df5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java @@ -351,28 +351,6 @@ return ihcNetService.setPresetCommand(userId, command); } - /** - * 转到指定角度 - * @param deviceIp 设备ip - * @param horizontalAngle 水平角度 - * @param verticalAngle 垂直角度 - * @return 向设备发送旋转指令 - */ -// @RequestMapping("/toPosition") -// @ResponseBody -// public Object angle(String deviceIp,String horizontalAngle, String verticalAngle){ -// Long userId = getUserIdByIp(deviceIp); -// if(ObjectUtil.isEmpty(userId) || userId < 0){ -// return ResponseData.error("设备注册失败"); -// } -// boolean res = ihcNetService.setPosition(userId,Double.valueOf(horizontalAngle),Double.valueOf(verticalAngle)); -// if(res){ -// return ResponseData.success(); -// }else{ -// return ResponseData.error("请求失败"); -// } -// } - /** * 设备升级特殊定制指令 @@ -385,10 +363,6 @@ @RequestMapping("/specialControl") @ResponseBody public Object specialControl(String deviceIp, String command, Integer value, Integer speed, Integer stopTime, Integer alarmValue) { - - -// DoorShortUtil.remoteControl("192.168.1.99", 253219003, 2, 2); -// return ResponseData.success(); Long userId = getUserIdByIp(deviceIp); if (ObjectUtil.isEmpty(userId) || userId < 0) { return ResponseData.error("设备注册失败"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/job/StartTaskJob.java b/casic-server/src/main/java/com/casic/missiles/modular/system/job/StartTaskJob.java index 0332421..039dead 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/job/StartTaskJob.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/job/StartTaskJob.java @@ -39,8 +39,7 @@ private void getJobDelay(String id) { - System.out.println("开始执行了------"); - + logger.info("StartTaskJob开始执行了------"); //更新任务执行状态 planService.updateStatus(Long.valueOf(id),StatusEnum.TASK_RUNNING); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/job/StopTaskJob.java b/casic-server/src/main/java/com/casic/missiles/modular/system/job/StopTaskJob.java index d6f1f11..7c12d2a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/job/StopTaskJob.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/job/StopTaskJob.java @@ -38,9 +38,7 @@ } private void getJobDelay(String id) { - - System.out.println("停止执行了------"); - + logger.info("StopTaskJob开始执行了------"); //更新任务执行状态 planService.updateStatus(Long.valueOf(id), StatusEnum.TASK_COMPLETE); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusPlanServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusPlanServiceImpl.java index 870559a..4da723f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusPlanServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusPlanServiceImpl.java @@ -67,7 +67,7 @@ } //先保存数据 if (this.saveOrUpdate(busPlan)) { - //toDo:若已启动任务,则创建启动job任务 缺消息提示 、和修改时间的 + //若已启动任务,则创建启动job任务 if (StatusEnum.STATUS_OPEN.equals(busPlan.getStatus())) { startOrStop(new PlanRequest(busPlan.getId(), StatusEnum.STATUS_OPEN)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java index 7c248cd..3bf0eef 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java @@ -313,6 +313,14 @@ return serialSend(serialHandle, pointer, (int) ((Memory) pointer).getSize()); } + //插入预置位 + private boolean insertPreset(Long serialHandle, int index) { + int sum = (0x01 + 0x80 + 0x03 + index / 256 + index % 256) % 0x100; + int[] command = {0xff, 0x01, 0x08, 0x03, index / 256, index % 256, sum}; + Pointer pointer = intArrayToPointer(command); + return serialSend(serialHandle, pointer, (int) ((Memory) pointer).getSize()); + } + //调用预置位 private boolean sendPreset(Long serialHandle, int index) { int sum = (0x01 + 0x00 + 0x07 + index / 256 + index % 256) % 0x100; @@ -738,22 +746,20 @@ } //先停止巡航 if (DeviceTypeEnum.XST_TYPE.getCode().equals(busMonipoiInfo.getDeviceType())) { - sendStopCommand(serialHandle); + if (sendStopCommand(serialHandle)) { + nonull.forEach(busObserpoiInfo -> { + try { + //先删除解码板上的预置点 + Thread.sleep(300); + deletePreset(serialHandle, busObserpoiInfo.getSerialNum()); + } catch (InterruptedException e) { + e.printStackTrace(); + } + }); + } } else { stopCruise(userId.intValue()); } - - if (ObjectUtil.isNotEmpty(busObserpoiInfoList)) { - busObserpoiInfoList.forEach(busObserpoiInfo -> { - try { - //先删除解码板上的预置点 - Thread.sleep(300); - deletePreset(serialHandle, busObserpoiInfo.getSerialNum()); - } catch (InterruptedException e) { - e.printStackTrace(); - } - }); - } //若有巡航任务,先删除任务 busPlanService.deleteTaskByMonitorIdAndLine(busMonipoiInfo.getId(), cruiseValue); return obserpoiInfoService.deleteCruise(deviceIp, cruiseName, cruiseValue); @@ -788,7 +794,8 @@ if (presetIndex.equals(presets[0])) { presetIndex = presets[presets.length - 1] + 1; } - if (presetIndex > cruiseRoute * 200) return false; + if (presetIndex > cruiseRoute * 200) + throw new BusinessException(BusinessExceptionEnum.CRUISE_POINTS_OVERFLOW); try { //给解码板设置预置位 Long serialHandle = serialHandle(Long.valueOf(userId)); @@ -848,18 +855,14 @@ List busObserpoiInfoList = obserpoiInfoService.selectBeforesBySerialNum(deviceInfo.getDeviceIp(), cruiseRoute, presetIndex); if (ObjectUtil.isNotEmpty(busObserpoiInfoList)) { - //先删除云台预置点,所有的预置点往后推移 + BusObserpoiInfo last = busObserpoiInfoList.get(busObserpoiInfoList.size() - 1); + //判断若每条巡航线预置点满了,则提示无法插入 + if (last.getSerialNum() == cruiseRoute * 200) { + throw new BusinessException(BusinessExceptionEnum.CRUISE_POINTS_OVERFLOW); + } if (DeviceTypeEnum.XST_TYPE.getCode().equals(baseInfo.getType())) { //先停止 sendStopCommand(serialHandle); - busObserpoiInfoList.forEach(busObserpoiInfo -> { - try { - Thread.sleep(300); - } catch (InterruptedException e) { - e.printStackTrace(); - } - deletePreset(serialHandle, busObserpoiInfo.getSerialNum()); - }); } else { //天讯通和奥瑞德停止巡航 stopCruise(userId); @@ -871,43 +874,25 @@ //过滤掉特殊预置点号 int preset = (busObserpoiInfo.getSerialNum() + 1) == presets[0] ? presets[presets.length - 1] + 1 : busObserpoiInfo.getSerialNum() + 1; //然后添加云台预置点 - if (DeviceTypeEnum.XST_TYPE.getCode().equals(baseInfo.getType())) { - if (setPreset(serialHandle, preset)) { - try { - Thread.sleep(300); - stopTimeSet(serialHandle, preset, busObserpoiInfo.getStopTime(), - busObserpoiInfo.getSpeed(), busObserpoiInfo.getAlarmValue()); - Thread.sleep(300); - } catch (InterruptedException e) { - e.printStackTrace(); - } - obserpoiInfoService.addPresetByIp(deviceInfo.getDeviceIp(), preset, - busObserpoiInfo.getLineNum(), busObserpoiInfo.getDirection(), busObserpoiInfo.getPitch(), - busObserpoiInfo.getStopTime(), busObserpoiInfo.getAlarmValue(), busObserpoiInfo.getSpeed(), - busObserpoiInfo.getSerialName(), busObserpoiInfo.getLineName()); - } - } else { - obserpoiInfoService.addPresetByIp(deviceInfo.getDeviceIp(), preset, - busObserpoiInfo.getLineNum(), busObserpoiInfo.getDirection(), busObserpoiInfo.getPitch(), - busObserpoiInfo.getStopTime(), busObserpoiInfo.getAlarmValue(), busObserpoiInfo.getSpeed(), - busObserpoiInfo.getSerialName(), busObserpoiInfo.getLineName()); - } + obserpoiInfoService.addPresetByIp(deviceInfo.getDeviceIp(), preset, + busObserpoiInfo.getLineNum(), busObserpoiInfo.getDirection(), busObserpoiInfo.getPitch(), + busObserpoiInfo.getStopTime(), busObserpoiInfo.getAlarmValue(), busObserpoiInfo.getSpeed(), + busObserpoiInfo.getSerialName(), busObserpoiInfo.getLineName()); }); } //插入新建的预置点 - int preset = (presetIndex + 1) == presets[0] ? presets[presets.length - 1] + 1 : presetIndex + 1; if (DeviceTypeEnum.XST_TYPE.getCode().equals(baseInfo.getType())) { - if (setPreset(serialHandle, preset)) { + if (insertPreset(serialHandle, presetIndex)) { try { - Thread.sleep(300); - paramsSet(userId, serialHandle, preset, stopTime, speed, alarmValue); + Thread.sleep(500); + paramsSet(userId, serialHandle, presetIndex, stopTime, speed, alarmValue); Thread.sleep(300); } catch (InterruptedException e) { e.printStackTrace(); } } } - flag = obserpoiInfoService.addPresetByIp(deviceInfo.getDeviceIp(), preset, + flag = obserpoiInfoService.addPresetByIp(deviceInfo.getDeviceIp(), presetIndex, cruiseRoute, direction, pitch, stopTime, alarmValue, speed, presetName, cruiseName); return flag; } @@ -1011,6 +996,7 @@ return false; } } + /** * 开启或停止自动巡航 */ @@ -1100,6 +1086,7 @@ } return true; } + /** * 停止自动巡航,将对应task的退出标记设为true,退出线程 */ @@ -1196,6 +1183,7 @@ boolean vres = serialSend(serialHandle, verticalPointer, (int) ((Memory) verticalPointer).getSize()); return hres & vres; } + /** * 指令格式:FF 01 00 4C DATA1 DATA2 DATA3 DATA4 SUM * 其中DATA1(高字节)DATA2(低字节)表示水平角度的100倍 @@ -1233,6 +1221,7 @@ } return pointer; } + /** * 透明通道数据回调函数 */ @@ -1269,6 +1258,7 @@ } } } + private void handlegasDataFromGasData(DeviceInfo deviceInfo, Double gas, Double direction, Double pitch) { System.out.println(new Date() + ":" + deviceInfo.getDeviceIp().concat(" get vertical angle-->").concat(String.valueOf(pitch)).concat("+ get horizontal angle-->").concat(String.valueOf(direction)).concat("+ get gas data-->").concat(String.valueOf(gas))); JSONObject msg = new JSONObject(); @@ -1310,12 +1300,7 @@ double pitch = Integer.parseInt(data[4]) / 100.0; int alarmFlag = Integer.parseInt(data[5]); double alarmThreshold = Double.valueOf(data[6]); - if (pitch > 180) { - pitch = 360 - pitch; - } else if (pitch < 180) { - pitch = 0 - pitch; - } - + pitch = pitch > 180 ? (360 - pitch) : (0 - pitch); direction = new BigDecimal(direction).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue(); pitch = new BigDecimal(pitch).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue(); try { @@ -1388,7 +1373,9 @@ // 判断报警、消警 if (alarmFlag) { // 消除同一角度已有报警 - alarmRecordService.clearByMonitor(dataGas.getMonitorId(), Double.valueOf(dataGas.getDirection()), Double.valueOf(dataGas.getPitch())); + alarmRecordService.clearByMonitor(dataGas.getMonitorId(), + Double.valueOf(dataGas.getDirection()), + Double.valueOf(dataGas.getPitch())); // 插入新报警 AlarmRecord alarmRecord = new AlarmRecord(dataGas.getMonitorId(), StatusEnum.GAS_ALARM, StatusEnum.GAS_ALARM_CONTENT, dataGas.getConcentration(), @@ -1417,7 +1404,7 @@ this.sendDeviceStatusData(monitorBaseInfo.getDeviceIp(), "onLine"); } // 自动消警(同一角度) - if ( alarmRecordService.clearByMonitor(dataGas.getMonitorId(), Double.valueOf(dataGas.getDirection()), Double.valueOf(dataGas.getPitch()))>0) { + if (alarmRecordService.clearByMonitor(dataGas.getMonitorId(), Double.valueOf(dataGas.getDirection()), Double.valueOf(dataGas.getPitch())) > 0) { JSONObject msg = new JSONObject(); msg.put("type", "cancelAlarm"); msg.put("monitorId", dataGas.getMonitorId()); @@ -1427,6 +1414,7 @@ } } } + /** * 生成报警(自动消警) */ @@ -1453,7 +1441,8 @@ if (!resumeFlag) { // 消除同一角度已有报警 - alarmRecordService.clearByMonitor(dataGas.getMonitorId(), Double.valueOf(dataGas.getDirection()), Double.valueOf(dataGas.getPitch())); + alarmRecordService.clearByMonitor(dataGas.getMonitorId(), Double.valueOf(dataGas.getDirection()), + Double.valueOf(dataGas.getPitch())); // 插入新报警 AlarmRecord alarmRecord = new AlarmRecord(dataGas.getMonitorId(), StatusEnum.GAS_ALARM, StatusEnum.GAS_ALARM_CONTENT, dataGas.getConcentration(), @@ -1503,8 +1492,13 @@ } }); } + //更新和推送设备在线 + if (monipoiInfoService.updateStatus(monitorBaseInfo.getDeviceIp(), StatusEnum.STATUS_ONLINE)) { + this.sendDeviceStatusData(monitorBaseInfo.getDeviceIp(), "onLine"); + } } } + /** * 查询云台预置点(从设备sdk查询) */ @@ -1515,6 +1509,7 @@ HCNetSDK.NET_DVR_CRUISE_POINT[] points = ret.struCruisePoint; return points.length; } + /** * 查询云台预置点(从数据库查询) */ @@ -1615,6 +1610,7 @@ e.printStackTrace(); } } + /** * 外协设备自检复位 * 调用65预置位,再调用92预置位,是强制重启功能; @@ -1641,6 +1637,7 @@ } return flag; } + /** * 甲烷浓度全局阈值设置 * 先调用68号预置位,value预置位 设置浓度等于这个预置位数值乘以100,比如设置浓度阈值为5000则先调用68号预置位,再调用50号预置位; @@ -1787,6 +1784,7 @@ } return false; } + //实现全部有效预置位一起巡航,需要调用一次快捷预置位命令组合“65+126”,然后调用“70+1”便可以将所有有效预置位从小到大依次循环巡航 public boolean allCruise(Long serialHandle) { boolean flag = false; @@ -1814,6 +1812,7 @@ } return flag; } + @Override public boolean preset(String deviceIp, Integer lineNum, String type) { Long userId = getUserIdByIp(deviceIp); @@ -1867,6 +1866,7 @@ } return userId; } + @Override public void globalSet(GlobalParamsDTO globalParamsDTO) { BusMonipoiInfo monipoiInfo = monipoiInfoService.getById(globalParamsDTO.getId()); diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 88ee08a..577094a 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -16,6 +16,7 @@ DEVICE_REGISTER_FAILED(2500, "设备注册失败"), RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), RUN_TIME_FAILED(2502, "此段时间都小于当前时间无法开启"), + CRUISE_POINTS_OVERFLOW(2507, "预置点设置溢出"), CRUISE_NAME_DUPLICATE(2503, "巡航路径名称重复"), CRUISE_DELETE_FAIL(2506, "该巡航线在任务中正在启用状态,无法删除"), CRUISE_DELETE_ERROR(2504, "巡航路径删除过程中对设备操作异常"), diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java index 729c35c..2c57df5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java @@ -351,28 +351,6 @@ return ihcNetService.setPresetCommand(userId, command); } - /** - * 转到指定角度 - * @param deviceIp 设备ip - * @param horizontalAngle 水平角度 - * @param verticalAngle 垂直角度 - * @return 向设备发送旋转指令 - */ -// @RequestMapping("/toPosition") -// @ResponseBody -// public Object angle(String deviceIp,String horizontalAngle, String verticalAngle){ -// Long userId = getUserIdByIp(deviceIp); -// if(ObjectUtil.isEmpty(userId) || userId < 0){ -// return ResponseData.error("设备注册失败"); -// } -// boolean res = ihcNetService.setPosition(userId,Double.valueOf(horizontalAngle),Double.valueOf(verticalAngle)); -// if(res){ -// return ResponseData.success(); -// }else{ -// return ResponseData.error("请求失败"); -// } -// } - /** * 设备升级特殊定制指令 @@ -385,10 +363,6 @@ @RequestMapping("/specialControl") @ResponseBody public Object specialControl(String deviceIp, String command, Integer value, Integer speed, Integer stopTime, Integer alarmValue) { - - -// DoorShortUtil.remoteControl("192.168.1.99", 253219003, 2, 2); -// return ResponseData.success(); Long userId = getUserIdByIp(deviceIp); if (ObjectUtil.isEmpty(userId) || userId < 0) { return ResponseData.error("设备注册失败"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/job/StartTaskJob.java b/casic-server/src/main/java/com/casic/missiles/modular/system/job/StartTaskJob.java index 0332421..039dead 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/job/StartTaskJob.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/job/StartTaskJob.java @@ -39,8 +39,7 @@ private void getJobDelay(String id) { - System.out.println("开始执行了------"); - + logger.info("StartTaskJob开始执行了------"); //更新任务执行状态 planService.updateStatus(Long.valueOf(id),StatusEnum.TASK_RUNNING); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/job/StopTaskJob.java b/casic-server/src/main/java/com/casic/missiles/modular/system/job/StopTaskJob.java index d6f1f11..7c12d2a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/job/StopTaskJob.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/job/StopTaskJob.java @@ -38,9 +38,7 @@ } private void getJobDelay(String id) { - - System.out.println("停止执行了------"); - + logger.info("StopTaskJob开始执行了------"); //更新任务执行状态 planService.updateStatus(Long.valueOf(id), StatusEnum.TASK_COMPLETE); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusPlanServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusPlanServiceImpl.java index 870559a..4da723f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusPlanServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusPlanServiceImpl.java @@ -67,7 +67,7 @@ } //先保存数据 if (this.saveOrUpdate(busPlan)) { - //toDo:若已启动任务,则创建启动job任务 缺消息提示 、和修改时间的 + //若已启动任务,则创建启动job任务 if (StatusEnum.STATUS_OPEN.equals(busPlan.getStatus())) { startOrStop(new PlanRequest(busPlan.getId(), StatusEnum.STATUS_OPEN)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java index 7c248cd..3bf0eef 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java @@ -313,6 +313,14 @@ return serialSend(serialHandle, pointer, (int) ((Memory) pointer).getSize()); } + //插入预置位 + private boolean insertPreset(Long serialHandle, int index) { + int sum = (0x01 + 0x80 + 0x03 + index / 256 + index % 256) % 0x100; + int[] command = {0xff, 0x01, 0x08, 0x03, index / 256, index % 256, sum}; + Pointer pointer = intArrayToPointer(command); + return serialSend(serialHandle, pointer, (int) ((Memory) pointer).getSize()); + } + //调用预置位 private boolean sendPreset(Long serialHandle, int index) { int sum = (0x01 + 0x00 + 0x07 + index / 256 + index % 256) % 0x100; @@ -738,22 +746,20 @@ } //先停止巡航 if (DeviceTypeEnum.XST_TYPE.getCode().equals(busMonipoiInfo.getDeviceType())) { - sendStopCommand(serialHandle); + if (sendStopCommand(serialHandle)) { + nonull.forEach(busObserpoiInfo -> { + try { + //先删除解码板上的预置点 + Thread.sleep(300); + deletePreset(serialHandle, busObserpoiInfo.getSerialNum()); + } catch (InterruptedException e) { + e.printStackTrace(); + } + }); + } } else { stopCruise(userId.intValue()); } - - if (ObjectUtil.isNotEmpty(busObserpoiInfoList)) { - busObserpoiInfoList.forEach(busObserpoiInfo -> { - try { - //先删除解码板上的预置点 - Thread.sleep(300); - deletePreset(serialHandle, busObserpoiInfo.getSerialNum()); - } catch (InterruptedException e) { - e.printStackTrace(); - } - }); - } //若有巡航任务,先删除任务 busPlanService.deleteTaskByMonitorIdAndLine(busMonipoiInfo.getId(), cruiseValue); return obserpoiInfoService.deleteCruise(deviceIp, cruiseName, cruiseValue); @@ -788,7 +794,8 @@ if (presetIndex.equals(presets[0])) { presetIndex = presets[presets.length - 1] + 1; } - if (presetIndex > cruiseRoute * 200) return false; + if (presetIndex > cruiseRoute * 200) + throw new BusinessException(BusinessExceptionEnum.CRUISE_POINTS_OVERFLOW); try { //给解码板设置预置位 Long serialHandle = serialHandle(Long.valueOf(userId)); @@ -848,18 +855,14 @@ List busObserpoiInfoList = obserpoiInfoService.selectBeforesBySerialNum(deviceInfo.getDeviceIp(), cruiseRoute, presetIndex); if (ObjectUtil.isNotEmpty(busObserpoiInfoList)) { - //先删除云台预置点,所有的预置点往后推移 + BusObserpoiInfo last = busObserpoiInfoList.get(busObserpoiInfoList.size() - 1); + //判断若每条巡航线预置点满了,则提示无法插入 + if (last.getSerialNum() == cruiseRoute * 200) { + throw new BusinessException(BusinessExceptionEnum.CRUISE_POINTS_OVERFLOW); + } if (DeviceTypeEnum.XST_TYPE.getCode().equals(baseInfo.getType())) { //先停止 sendStopCommand(serialHandle); - busObserpoiInfoList.forEach(busObserpoiInfo -> { - try { - Thread.sleep(300); - } catch (InterruptedException e) { - e.printStackTrace(); - } - deletePreset(serialHandle, busObserpoiInfo.getSerialNum()); - }); } else { //天讯通和奥瑞德停止巡航 stopCruise(userId); @@ -871,43 +874,25 @@ //过滤掉特殊预置点号 int preset = (busObserpoiInfo.getSerialNum() + 1) == presets[0] ? presets[presets.length - 1] + 1 : busObserpoiInfo.getSerialNum() + 1; //然后添加云台预置点 - if (DeviceTypeEnum.XST_TYPE.getCode().equals(baseInfo.getType())) { - if (setPreset(serialHandle, preset)) { - try { - Thread.sleep(300); - stopTimeSet(serialHandle, preset, busObserpoiInfo.getStopTime(), - busObserpoiInfo.getSpeed(), busObserpoiInfo.getAlarmValue()); - Thread.sleep(300); - } catch (InterruptedException e) { - e.printStackTrace(); - } - obserpoiInfoService.addPresetByIp(deviceInfo.getDeviceIp(), preset, - busObserpoiInfo.getLineNum(), busObserpoiInfo.getDirection(), busObserpoiInfo.getPitch(), - busObserpoiInfo.getStopTime(), busObserpoiInfo.getAlarmValue(), busObserpoiInfo.getSpeed(), - busObserpoiInfo.getSerialName(), busObserpoiInfo.getLineName()); - } - } else { - obserpoiInfoService.addPresetByIp(deviceInfo.getDeviceIp(), preset, - busObserpoiInfo.getLineNum(), busObserpoiInfo.getDirection(), busObserpoiInfo.getPitch(), - busObserpoiInfo.getStopTime(), busObserpoiInfo.getAlarmValue(), busObserpoiInfo.getSpeed(), - busObserpoiInfo.getSerialName(), busObserpoiInfo.getLineName()); - } + obserpoiInfoService.addPresetByIp(deviceInfo.getDeviceIp(), preset, + busObserpoiInfo.getLineNum(), busObserpoiInfo.getDirection(), busObserpoiInfo.getPitch(), + busObserpoiInfo.getStopTime(), busObserpoiInfo.getAlarmValue(), busObserpoiInfo.getSpeed(), + busObserpoiInfo.getSerialName(), busObserpoiInfo.getLineName()); }); } //插入新建的预置点 - int preset = (presetIndex + 1) == presets[0] ? presets[presets.length - 1] + 1 : presetIndex + 1; if (DeviceTypeEnum.XST_TYPE.getCode().equals(baseInfo.getType())) { - if (setPreset(serialHandle, preset)) { + if (insertPreset(serialHandle, presetIndex)) { try { - Thread.sleep(300); - paramsSet(userId, serialHandle, preset, stopTime, speed, alarmValue); + Thread.sleep(500); + paramsSet(userId, serialHandle, presetIndex, stopTime, speed, alarmValue); Thread.sleep(300); } catch (InterruptedException e) { e.printStackTrace(); } } } - flag = obserpoiInfoService.addPresetByIp(deviceInfo.getDeviceIp(), preset, + flag = obserpoiInfoService.addPresetByIp(deviceInfo.getDeviceIp(), presetIndex, cruiseRoute, direction, pitch, stopTime, alarmValue, speed, presetName, cruiseName); return flag; } @@ -1011,6 +996,7 @@ return false; } } + /** * 开启或停止自动巡航 */ @@ -1100,6 +1086,7 @@ } return true; } + /** * 停止自动巡航,将对应task的退出标记设为true,退出线程 */ @@ -1196,6 +1183,7 @@ boolean vres = serialSend(serialHandle, verticalPointer, (int) ((Memory) verticalPointer).getSize()); return hres & vres; } + /** * 指令格式:FF 01 00 4C DATA1 DATA2 DATA3 DATA4 SUM * 其中DATA1(高字节)DATA2(低字节)表示水平角度的100倍 @@ -1233,6 +1221,7 @@ } return pointer; } + /** * 透明通道数据回调函数 */ @@ -1269,6 +1258,7 @@ } } } + private void handlegasDataFromGasData(DeviceInfo deviceInfo, Double gas, Double direction, Double pitch) { System.out.println(new Date() + ":" + deviceInfo.getDeviceIp().concat(" get vertical angle-->").concat(String.valueOf(pitch)).concat("+ get horizontal angle-->").concat(String.valueOf(direction)).concat("+ get gas data-->").concat(String.valueOf(gas))); JSONObject msg = new JSONObject(); @@ -1310,12 +1300,7 @@ double pitch = Integer.parseInt(data[4]) / 100.0; int alarmFlag = Integer.parseInt(data[5]); double alarmThreshold = Double.valueOf(data[6]); - if (pitch > 180) { - pitch = 360 - pitch; - } else if (pitch < 180) { - pitch = 0 - pitch; - } - + pitch = pitch > 180 ? (360 - pitch) : (0 - pitch); direction = new BigDecimal(direction).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue(); pitch = new BigDecimal(pitch).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue(); try { @@ -1388,7 +1373,9 @@ // 判断报警、消警 if (alarmFlag) { // 消除同一角度已有报警 - alarmRecordService.clearByMonitor(dataGas.getMonitorId(), Double.valueOf(dataGas.getDirection()), Double.valueOf(dataGas.getPitch())); + alarmRecordService.clearByMonitor(dataGas.getMonitorId(), + Double.valueOf(dataGas.getDirection()), + Double.valueOf(dataGas.getPitch())); // 插入新报警 AlarmRecord alarmRecord = new AlarmRecord(dataGas.getMonitorId(), StatusEnum.GAS_ALARM, StatusEnum.GAS_ALARM_CONTENT, dataGas.getConcentration(), @@ -1417,7 +1404,7 @@ this.sendDeviceStatusData(monitorBaseInfo.getDeviceIp(), "onLine"); } // 自动消警(同一角度) - if ( alarmRecordService.clearByMonitor(dataGas.getMonitorId(), Double.valueOf(dataGas.getDirection()), Double.valueOf(dataGas.getPitch()))>0) { + if (alarmRecordService.clearByMonitor(dataGas.getMonitorId(), Double.valueOf(dataGas.getDirection()), Double.valueOf(dataGas.getPitch())) > 0) { JSONObject msg = new JSONObject(); msg.put("type", "cancelAlarm"); msg.put("monitorId", dataGas.getMonitorId()); @@ -1427,6 +1414,7 @@ } } } + /** * 生成报警(自动消警) */ @@ -1453,7 +1441,8 @@ if (!resumeFlag) { // 消除同一角度已有报警 - alarmRecordService.clearByMonitor(dataGas.getMonitorId(), Double.valueOf(dataGas.getDirection()), Double.valueOf(dataGas.getPitch())); + alarmRecordService.clearByMonitor(dataGas.getMonitorId(), Double.valueOf(dataGas.getDirection()), + Double.valueOf(dataGas.getPitch())); // 插入新报警 AlarmRecord alarmRecord = new AlarmRecord(dataGas.getMonitorId(), StatusEnum.GAS_ALARM, StatusEnum.GAS_ALARM_CONTENT, dataGas.getConcentration(), @@ -1503,8 +1492,13 @@ } }); } + //更新和推送设备在线 + if (monipoiInfoService.updateStatus(monitorBaseInfo.getDeviceIp(), StatusEnum.STATUS_ONLINE)) { + this.sendDeviceStatusData(monitorBaseInfo.getDeviceIp(), "onLine"); + } } } + /** * 查询云台预置点(从设备sdk查询) */ @@ -1515,6 +1509,7 @@ HCNetSDK.NET_DVR_CRUISE_POINT[] points = ret.struCruisePoint; return points.length; } + /** * 查询云台预置点(从数据库查询) */ @@ -1615,6 +1610,7 @@ e.printStackTrace(); } } + /** * 外协设备自检复位 * 调用65预置位,再调用92预置位,是强制重启功能; @@ -1641,6 +1637,7 @@ } return flag; } + /** * 甲烷浓度全局阈值设置 * 先调用68号预置位,value预置位 设置浓度等于这个预置位数值乘以100,比如设置浓度阈值为5000则先调用68号预置位,再调用50号预置位; @@ -1787,6 +1784,7 @@ } return false; } + //实现全部有效预置位一起巡航,需要调用一次快捷预置位命令组合“65+126”,然后调用“70+1”便可以将所有有效预置位从小到大依次循环巡航 public boolean allCruise(Long serialHandle) { boolean flag = false; @@ -1814,6 +1812,7 @@ } return flag; } + @Override public boolean preset(String deviceIp, Integer lineNum, String type) { Long userId = getUserIdByIp(deviceIp); @@ -1867,6 +1866,7 @@ } return userId; } + @Override public void globalSet(GlobalParamsDTO globalParamsDTO) { BusMonipoiInfo monipoiInfo = monipoiInfoService.getById(globalParamsDTO.getId()); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/task/CollectGasDataTask.java b/casic-server/src/main/java/com/casic/missiles/modular/system/task/CollectGasDataTask.java index a40a0f9..30fc8bc 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/task/CollectGasDataTask.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/task/CollectGasDataTask.java @@ -2,7 +2,6 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.casic.missiles.enums.DictEnum; import com.casic.missiles.enums.StatusEnum; import com.casic.missiles.modular.system.dto.DeviceCommom; import com.casic.missiles.modular.system.dto.DeviceInfo; @@ -91,11 +90,7 @@ private boolean registerAndStartSerial() { this.userId = ihcNetService.register(this.deviceUser, this.devicePassword, this.deviceIp); this.serialHandle = ihcNetService.serialHandle(userId); - if (this.userId >= 0 && this.serialHandle >= 0) { - return true; - } else { - return false; - } + return this.userId >= 0 && this.serialHandle >= 0 ? true : false; } private Map map = new HashMap<>(); @@ -106,33 +101,27 @@ if (deviceInfo.getSerialHandle() < 0) { return; } - // FF 01 00 90 01 00 92 int[] command = {0xff, 0x01, 0x00, 0x90, 0x01, 0x00, 0x92}; -// int[] command = {0xff,0x01,0x00,0x53,0x00,0x00,0x54}; Pointer pointer = new Memory(command.length); for (int i = 0; i < command.length; i++) { pointer.setByte(i, (byte) command[i]); } int size = (int) ((Memory) pointer).getSize(); - //用于与控制指令错开下发 +// //用于与控制指令错开下发 hcNetService.setTimestampCollcect(System.currentTimeMillis()); boolean res = ihcNetService.serialSend(serial, pointer, size); - if (!res) { //判断是否掉线,断电重启规则 若同一云台300次(5分钟)获取不到甲烷浓度值,则重启设备 - //是否配置重启 - if (isOpen == 1) { - if (map.get(this.deviceIp) != null) { - map.put(this.deviceIp, map.get(this.deviceIp) + 1); - if (map.get(this.deviceIp) % 300L == 0) { - //若在线,更新设备离线 - - if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_OFFLINE)) { - ihcNetService.sendDeviceStatusData(this.deviceIp, "offLine"); -// deviceStatus = false; - } - + if (map.get(this.deviceIp) != null) { + map.put(this.deviceIp, map.get(this.deviceIp) + 1); + if (map.get(this.deviceIp) % 300L == 0) { + //更新设备离线 + if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_OFFLINE)) { + ihcNetService.sendDeviceStatusData(this.deviceIp, "offLine"); + } + //是否配置重启 + if (isOpen == 1) { logger.error(deviceIp.concat("door is opening! ********************* ")); if (ihcNetService.interruptStart(this.deviceIp)) { map.remove(this.deviceIp); @@ -146,14 +135,6 @@ } } logger.error(deviceIp.concat("fetch gas data error, error code: ").concat(String.valueOf(ihcNetService.getLastError()))); - } else { - //若离线, 更新成在线 -// if (!deviceStatus) { -// if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_ONLINE)) { -// ihcNetService.sendDeviceStatusData(this.deviceIp, "onLine"); -// deviceStatus = true; -// } -// } } } diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 88ee08a..577094a 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -16,6 +16,7 @@ DEVICE_REGISTER_FAILED(2500, "设备注册失败"), RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), RUN_TIME_FAILED(2502, "此段时间都小于当前时间无法开启"), + CRUISE_POINTS_OVERFLOW(2507, "预置点设置溢出"), CRUISE_NAME_DUPLICATE(2503, "巡航路径名称重复"), CRUISE_DELETE_FAIL(2506, "该巡航线在任务中正在启用状态,无法删除"), CRUISE_DELETE_ERROR(2504, "巡航路径删除过程中对设备操作异常"), diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java index 729c35c..2c57df5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java @@ -351,28 +351,6 @@ return ihcNetService.setPresetCommand(userId, command); } - /** - * 转到指定角度 - * @param deviceIp 设备ip - * @param horizontalAngle 水平角度 - * @param verticalAngle 垂直角度 - * @return 向设备发送旋转指令 - */ -// @RequestMapping("/toPosition") -// @ResponseBody -// public Object angle(String deviceIp,String horizontalAngle, String verticalAngle){ -// Long userId = getUserIdByIp(deviceIp); -// if(ObjectUtil.isEmpty(userId) || userId < 0){ -// return ResponseData.error("设备注册失败"); -// } -// boolean res = ihcNetService.setPosition(userId,Double.valueOf(horizontalAngle),Double.valueOf(verticalAngle)); -// if(res){ -// return ResponseData.success(); -// }else{ -// return ResponseData.error("请求失败"); -// } -// } - /** * 设备升级特殊定制指令 @@ -385,10 +363,6 @@ @RequestMapping("/specialControl") @ResponseBody public Object specialControl(String deviceIp, String command, Integer value, Integer speed, Integer stopTime, Integer alarmValue) { - - -// DoorShortUtil.remoteControl("192.168.1.99", 253219003, 2, 2); -// return ResponseData.success(); Long userId = getUserIdByIp(deviceIp); if (ObjectUtil.isEmpty(userId) || userId < 0) { return ResponseData.error("设备注册失败"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/job/StartTaskJob.java b/casic-server/src/main/java/com/casic/missiles/modular/system/job/StartTaskJob.java index 0332421..039dead 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/job/StartTaskJob.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/job/StartTaskJob.java @@ -39,8 +39,7 @@ private void getJobDelay(String id) { - System.out.println("开始执行了------"); - + logger.info("StartTaskJob开始执行了------"); //更新任务执行状态 planService.updateStatus(Long.valueOf(id),StatusEnum.TASK_RUNNING); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/job/StopTaskJob.java b/casic-server/src/main/java/com/casic/missiles/modular/system/job/StopTaskJob.java index d6f1f11..7c12d2a 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/job/StopTaskJob.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/job/StopTaskJob.java @@ -38,9 +38,7 @@ } private void getJobDelay(String id) { - - System.out.println("停止执行了------"); - + logger.info("StopTaskJob开始执行了------"); //更新任务执行状态 planService.updateStatus(Long.valueOf(id), StatusEnum.TASK_COMPLETE); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusPlanServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusPlanServiceImpl.java index 870559a..4da723f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusPlanServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusPlanServiceImpl.java @@ -67,7 +67,7 @@ } //先保存数据 if (this.saveOrUpdate(busPlan)) { - //toDo:若已启动任务,则创建启动job任务 缺消息提示 、和修改时间的 + //若已启动任务,则创建启动job任务 if (StatusEnum.STATUS_OPEN.equals(busPlan.getStatus())) { startOrStop(new PlanRequest(busPlan.getId(), StatusEnum.STATUS_OPEN)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java index 7c248cd..3bf0eef 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java @@ -313,6 +313,14 @@ return serialSend(serialHandle, pointer, (int) ((Memory) pointer).getSize()); } + //插入预置位 + private boolean insertPreset(Long serialHandle, int index) { + int sum = (0x01 + 0x80 + 0x03 + index / 256 + index % 256) % 0x100; + int[] command = {0xff, 0x01, 0x08, 0x03, index / 256, index % 256, sum}; + Pointer pointer = intArrayToPointer(command); + return serialSend(serialHandle, pointer, (int) ((Memory) pointer).getSize()); + } + //调用预置位 private boolean sendPreset(Long serialHandle, int index) { int sum = (0x01 + 0x00 + 0x07 + index / 256 + index % 256) % 0x100; @@ -738,22 +746,20 @@ } //先停止巡航 if (DeviceTypeEnum.XST_TYPE.getCode().equals(busMonipoiInfo.getDeviceType())) { - sendStopCommand(serialHandle); + if (sendStopCommand(serialHandle)) { + nonull.forEach(busObserpoiInfo -> { + try { + //先删除解码板上的预置点 + Thread.sleep(300); + deletePreset(serialHandle, busObserpoiInfo.getSerialNum()); + } catch (InterruptedException e) { + e.printStackTrace(); + } + }); + } } else { stopCruise(userId.intValue()); } - - if (ObjectUtil.isNotEmpty(busObserpoiInfoList)) { - busObserpoiInfoList.forEach(busObserpoiInfo -> { - try { - //先删除解码板上的预置点 - Thread.sleep(300); - deletePreset(serialHandle, busObserpoiInfo.getSerialNum()); - } catch (InterruptedException e) { - e.printStackTrace(); - } - }); - } //若有巡航任务,先删除任务 busPlanService.deleteTaskByMonitorIdAndLine(busMonipoiInfo.getId(), cruiseValue); return obserpoiInfoService.deleteCruise(deviceIp, cruiseName, cruiseValue); @@ -788,7 +794,8 @@ if (presetIndex.equals(presets[0])) { presetIndex = presets[presets.length - 1] + 1; } - if (presetIndex > cruiseRoute * 200) return false; + if (presetIndex > cruiseRoute * 200) + throw new BusinessException(BusinessExceptionEnum.CRUISE_POINTS_OVERFLOW); try { //给解码板设置预置位 Long serialHandle = serialHandle(Long.valueOf(userId)); @@ -848,18 +855,14 @@ List busObserpoiInfoList = obserpoiInfoService.selectBeforesBySerialNum(deviceInfo.getDeviceIp(), cruiseRoute, presetIndex); if (ObjectUtil.isNotEmpty(busObserpoiInfoList)) { - //先删除云台预置点,所有的预置点往后推移 + BusObserpoiInfo last = busObserpoiInfoList.get(busObserpoiInfoList.size() - 1); + //判断若每条巡航线预置点满了,则提示无法插入 + if (last.getSerialNum() == cruiseRoute * 200) { + throw new BusinessException(BusinessExceptionEnum.CRUISE_POINTS_OVERFLOW); + } if (DeviceTypeEnum.XST_TYPE.getCode().equals(baseInfo.getType())) { //先停止 sendStopCommand(serialHandle); - busObserpoiInfoList.forEach(busObserpoiInfo -> { - try { - Thread.sleep(300); - } catch (InterruptedException e) { - e.printStackTrace(); - } - deletePreset(serialHandle, busObserpoiInfo.getSerialNum()); - }); } else { //天讯通和奥瑞德停止巡航 stopCruise(userId); @@ -871,43 +874,25 @@ //过滤掉特殊预置点号 int preset = (busObserpoiInfo.getSerialNum() + 1) == presets[0] ? presets[presets.length - 1] + 1 : busObserpoiInfo.getSerialNum() + 1; //然后添加云台预置点 - if (DeviceTypeEnum.XST_TYPE.getCode().equals(baseInfo.getType())) { - if (setPreset(serialHandle, preset)) { - try { - Thread.sleep(300); - stopTimeSet(serialHandle, preset, busObserpoiInfo.getStopTime(), - busObserpoiInfo.getSpeed(), busObserpoiInfo.getAlarmValue()); - Thread.sleep(300); - } catch (InterruptedException e) { - e.printStackTrace(); - } - obserpoiInfoService.addPresetByIp(deviceInfo.getDeviceIp(), preset, - busObserpoiInfo.getLineNum(), busObserpoiInfo.getDirection(), busObserpoiInfo.getPitch(), - busObserpoiInfo.getStopTime(), busObserpoiInfo.getAlarmValue(), busObserpoiInfo.getSpeed(), - busObserpoiInfo.getSerialName(), busObserpoiInfo.getLineName()); - } - } else { - obserpoiInfoService.addPresetByIp(deviceInfo.getDeviceIp(), preset, - busObserpoiInfo.getLineNum(), busObserpoiInfo.getDirection(), busObserpoiInfo.getPitch(), - busObserpoiInfo.getStopTime(), busObserpoiInfo.getAlarmValue(), busObserpoiInfo.getSpeed(), - busObserpoiInfo.getSerialName(), busObserpoiInfo.getLineName()); - } + obserpoiInfoService.addPresetByIp(deviceInfo.getDeviceIp(), preset, + busObserpoiInfo.getLineNum(), busObserpoiInfo.getDirection(), busObserpoiInfo.getPitch(), + busObserpoiInfo.getStopTime(), busObserpoiInfo.getAlarmValue(), busObserpoiInfo.getSpeed(), + busObserpoiInfo.getSerialName(), busObserpoiInfo.getLineName()); }); } //插入新建的预置点 - int preset = (presetIndex + 1) == presets[0] ? presets[presets.length - 1] + 1 : presetIndex + 1; if (DeviceTypeEnum.XST_TYPE.getCode().equals(baseInfo.getType())) { - if (setPreset(serialHandle, preset)) { + if (insertPreset(serialHandle, presetIndex)) { try { - Thread.sleep(300); - paramsSet(userId, serialHandle, preset, stopTime, speed, alarmValue); + Thread.sleep(500); + paramsSet(userId, serialHandle, presetIndex, stopTime, speed, alarmValue); Thread.sleep(300); } catch (InterruptedException e) { e.printStackTrace(); } } } - flag = obserpoiInfoService.addPresetByIp(deviceInfo.getDeviceIp(), preset, + flag = obserpoiInfoService.addPresetByIp(deviceInfo.getDeviceIp(), presetIndex, cruiseRoute, direction, pitch, stopTime, alarmValue, speed, presetName, cruiseName); return flag; } @@ -1011,6 +996,7 @@ return false; } } + /** * 开启或停止自动巡航 */ @@ -1100,6 +1086,7 @@ } return true; } + /** * 停止自动巡航,将对应task的退出标记设为true,退出线程 */ @@ -1196,6 +1183,7 @@ boolean vres = serialSend(serialHandle, verticalPointer, (int) ((Memory) verticalPointer).getSize()); return hres & vres; } + /** * 指令格式:FF 01 00 4C DATA1 DATA2 DATA3 DATA4 SUM * 其中DATA1(高字节)DATA2(低字节)表示水平角度的100倍 @@ -1233,6 +1221,7 @@ } return pointer; } + /** * 透明通道数据回调函数 */ @@ -1269,6 +1258,7 @@ } } } + private void handlegasDataFromGasData(DeviceInfo deviceInfo, Double gas, Double direction, Double pitch) { System.out.println(new Date() + ":" + deviceInfo.getDeviceIp().concat(" get vertical angle-->").concat(String.valueOf(pitch)).concat("+ get horizontal angle-->").concat(String.valueOf(direction)).concat("+ get gas data-->").concat(String.valueOf(gas))); JSONObject msg = new JSONObject(); @@ -1310,12 +1300,7 @@ double pitch = Integer.parseInt(data[4]) / 100.0; int alarmFlag = Integer.parseInt(data[5]); double alarmThreshold = Double.valueOf(data[6]); - if (pitch > 180) { - pitch = 360 - pitch; - } else if (pitch < 180) { - pitch = 0 - pitch; - } - + pitch = pitch > 180 ? (360 - pitch) : (0 - pitch); direction = new BigDecimal(direction).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue(); pitch = new BigDecimal(pitch).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue(); try { @@ -1388,7 +1373,9 @@ // 判断报警、消警 if (alarmFlag) { // 消除同一角度已有报警 - alarmRecordService.clearByMonitor(dataGas.getMonitorId(), Double.valueOf(dataGas.getDirection()), Double.valueOf(dataGas.getPitch())); + alarmRecordService.clearByMonitor(dataGas.getMonitorId(), + Double.valueOf(dataGas.getDirection()), + Double.valueOf(dataGas.getPitch())); // 插入新报警 AlarmRecord alarmRecord = new AlarmRecord(dataGas.getMonitorId(), StatusEnum.GAS_ALARM, StatusEnum.GAS_ALARM_CONTENT, dataGas.getConcentration(), @@ -1417,7 +1404,7 @@ this.sendDeviceStatusData(monitorBaseInfo.getDeviceIp(), "onLine"); } // 自动消警(同一角度) - if ( alarmRecordService.clearByMonitor(dataGas.getMonitorId(), Double.valueOf(dataGas.getDirection()), Double.valueOf(dataGas.getPitch()))>0) { + if (alarmRecordService.clearByMonitor(dataGas.getMonitorId(), Double.valueOf(dataGas.getDirection()), Double.valueOf(dataGas.getPitch())) > 0) { JSONObject msg = new JSONObject(); msg.put("type", "cancelAlarm"); msg.put("monitorId", dataGas.getMonitorId()); @@ -1427,6 +1414,7 @@ } } } + /** * 生成报警(自动消警) */ @@ -1453,7 +1441,8 @@ if (!resumeFlag) { // 消除同一角度已有报警 - alarmRecordService.clearByMonitor(dataGas.getMonitorId(), Double.valueOf(dataGas.getDirection()), Double.valueOf(dataGas.getPitch())); + alarmRecordService.clearByMonitor(dataGas.getMonitorId(), Double.valueOf(dataGas.getDirection()), + Double.valueOf(dataGas.getPitch())); // 插入新报警 AlarmRecord alarmRecord = new AlarmRecord(dataGas.getMonitorId(), StatusEnum.GAS_ALARM, StatusEnum.GAS_ALARM_CONTENT, dataGas.getConcentration(), @@ -1503,8 +1492,13 @@ } }); } + //更新和推送设备在线 + if (monipoiInfoService.updateStatus(monitorBaseInfo.getDeviceIp(), StatusEnum.STATUS_ONLINE)) { + this.sendDeviceStatusData(monitorBaseInfo.getDeviceIp(), "onLine"); + } } } + /** * 查询云台预置点(从设备sdk查询) */ @@ -1515,6 +1509,7 @@ HCNetSDK.NET_DVR_CRUISE_POINT[] points = ret.struCruisePoint; return points.length; } + /** * 查询云台预置点(从数据库查询) */ @@ -1615,6 +1610,7 @@ e.printStackTrace(); } } + /** * 外协设备自检复位 * 调用65预置位,再调用92预置位,是强制重启功能; @@ -1641,6 +1637,7 @@ } return flag; } + /** * 甲烷浓度全局阈值设置 * 先调用68号预置位,value预置位 设置浓度等于这个预置位数值乘以100,比如设置浓度阈值为5000则先调用68号预置位,再调用50号预置位; @@ -1787,6 +1784,7 @@ } return false; } + //实现全部有效预置位一起巡航,需要调用一次快捷预置位命令组合“65+126”,然后调用“70+1”便可以将所有有效预置位从小到大依次循环巡航 public boolean allCruise(Long serialHandle) { boolean flag = false; @@ -1814,6 +1812,7 @@ } return flag; } + @Override public boolean preset(String deviceIp, Integer lineNum, String type) { Long userId = getUserIdByIp(deviceIp); @@ -1867,6 +1866,7 @@ } return userId; } + @Override public void globalSet(GlobalParamsDTO globalParamsDTO) { BusMonipoiInfo monipoiInfo = monipoiInfoService.getById(globalParamsDTO.getId()); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/task/CollectGasDataTask.java b/casic-server/src/main/java/com/casic/missiles/modular/system/task/CollectGasDataTask.java index a40a0f9..30fc8bc 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/task/CollectGasDataTask.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/task/CollectGasDataTask.java @@ -2,7 +2,6 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.casic.missiles.enums.DictEnum; import com.casic.missiles.enums.StatusEnum; import com.casic.missiles.modular.system.dto.DeviceCommom; import com.casic.missiles.modular.system.dto.DeviceInfo; @@ -91,11 +90,7 @@ private boolean registerAndStartSerial() { this.userId = ihcNetService.register(this.deviceUser, this.devicePassword, this.deviceIp); this.serialHandle = ihcNetService.serialHandle(userId); - if (this.userId >= 0 && this.serialHandle >= 0) { - return true; - } else { - return false; - } + return this.userId >= 0 && this.serialHandle >= 0 ? true : false; } private Map map = new HashMap<>(); @@ -106,33 +101,27 @@ if (deviceInfo.getSerialHandle() < 0) { return; } - // FF 01 00 90 01 00 92 int[] command = {0xff, 0x01, 0x00, 0x90, 0x01, 0x00, 0x92}; -// int[] command = {0xff,0x01,0x00,0x53,0x00,0x00,0x54}; Pointer pointer = new Memory(command.length); for (int i = 0; i < command.length; i++) { pointer.setByte(i, (byte) command[i]); } int size = (int) ((Memory) pointer).getSize(); - //用于与控制指令错开下发 +// //用于与控制指令错开下发 hcNetService.setTimestampCollcect(System.currentTimeMillis()); boolean res = ihcNetService.serialSend(serial, pointer, size); - if (!res) { //判断是否掉线,断电重启规则 若同一云台300次(5分钟)获取不到甲烷浓度值,则重启设备 - //是否配置重启 - if (isOpen == 1) { - if (map.get(this.deviceIp) != null) { - map.put(this.deviceIp, map.get(this.deviceIp) + 1); - if (map.get(this.deviceIp) % 300L == 0) { - //若在线,更新设备离线 - - if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_OFFLINE)) { - ihcNetService.sendDeviceStatusData(this.deviceIp, "offLine"); -// deviceStatus = false; - } - + if (map.get(this.deviceIp) != null) { + map.put(this.deviceIp, map.get(this.deviceIp) + 1); + if (map.get(this.deviceIp) % 300L == 0) { + //更新设备离线 + if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_OFFLINE)) { + ihcNetService.sendDeviceStatusData(this.deviceIp, "offLine"); + } + //是否配置重启 + if (isOpen == 1) { logger.error(deviceIp.concat("door is opening! ********************* ")); if (ihcNetService.interruptStart(this.deviceIp)) { map.remove(this.deviceIp); @@ -146,14 +135,6 @@ } } logger.error(deviceIp.concat("fetch gas data error, error code: ").concat(String.valueOf(ihcNetService.getLastError()))); - } else { - //若离线, 更新成在线 -// if (!deviceStatus) { -// if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_ONLINE)) { -// ihcNetService.sendDeviceStatusData(this.deviceIp, "onLine"); -// deviceStatus = true; -// } -// } } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusObserpoiInfoServiceImpl.java b/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusObserpoiInfoServiceImpl.java index b6474e1..dec9aa9 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusObserpoiInfoServiceImpl.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusObserpoiInfoServiceImpl.java @@ -101,7 +101,7 @@ QueryWrapper query = new QueryWrapper<>(); query.eq("MONITOR_ID", baseInfo.getMonitorId()); query.eq("LINE_NUM", linNum); - query.gt("SERIAL_NUM", serialNum); + query.ge("SERIAL_NUM", serialNum); query.orderByAsc("SERIAL_NUM"); return this.list(query); } @@ -182,7 +182,7 @@ if (ObjectUtil.isNotEmpty(baseInfo)) { QueryWrapper ew = new QueryWrapper<>(); ew.eq("MONITOR_ID", baseInfo.getMonitorId()); - ew.gt("SERIAL_NUM", presetIndex); + ew.ge("SERIAL_NUM", presetIndex); ew.eq("LINE_NUM", lineNum); return this.remove(ew); }