diff --git a/ruoyi-code/src/main/java/com/ruoyi/code/camera/controller/CameraController.java b/ruoyi-code/src/main/java/com/ruoyi/code/camera/controller/CameraController.java index ceafda8..18e5695 100644 --- a/ruoyi-code/src/main/java/com/ruoyi/code/camera/controller/CameraController.java +++ b/ruoyi-code/src/main/java/com/ruoyi/code/camera/controller/CameraController.java @@ -119,7 +119,7 @@ public class CameraController extends BaseController } @RequestMapping("reboot/{id}") - public R reboot(@PathVariable Long id){ + public R reboot(@PathVariable("id") Long id){ Camera c = cameraService.getById(id); if(StringUtils.isNotBlank(c.getLoginId())) { System.out.println("reboot loginID:"+c.getLoginId()); @@ -137,7 +137,7 @@ public class CameraController extends BaseController @RequestMapping("showVideo/{id}") - public R showVideo(HttpServletRequest request,@PathVariable Long id){ + public R showVideo(HttpServletRequest request,@PathVariable("id") Long id){ //解析ip地址,非服务器ip禁止打开视频 String ip = IPUtils.getIpAddr(request); List ipArr = Arrays.asList(serverIp,"127.0.0.1"); @@ -169,4 +169,18 @@ public class CameraController extends BaseController return R.ok().put("data",cameraService.getCameraBySid(sid)); } + /** + * 刷新4G信号强度 + */ + @RequestMapping("/refreshRssi/{id}") + public R refreshRssiLevel(@PathVariable("id") Long id){ + Camera c = cameraService.getById(id); + if(c.getStatus() == 0 || StringUtils.isBlank(c.getLoginId())){ + return R.error("设备未在线"); + } + int level = CameraUtil.get4gRssiLevel(new NativeLong(Long.parseLong(c.getLoginId()))); + c.setRssiLevel(level); + cameraService.updateById(c); + return R.ok(); + } } diff --git a/ruoyi-code/src/main/java/com/ruoyi/code/camera/controller/CameraNetFtpController.java b/ruoyi-code/src/main/java/com/ruoyi/code/camera/controller/CameraNetFtpController.java index ba0e2ab..276b51d 100644 --- a/ruoyi-code/src/main/java/com/ruoyi/code/camera/controller/CameraNetFtpController.java +++ b/ruoyi-code/src/main/java/com/ruoyi/code/camera/controller/CameraNetFtpController.java @@ -54,6 +54,9 @@ public class CameraNetFtpController extends BaseController @RequestMapping("/getNetCfg") public R getNetCfg(Long cameraId){ Camera camera = cameraService.getById(cameraId); + if(camera.getStatus() == 0){ + return R.error("设备未在线"); + } CameraNetFtp cfg = cameraNetFtpService.getNetCfg(camera); return R.ok().put("data",cfg); } diff --git a/ruoyi-code/src/main/java/com/ruoyi/code/camera/domain/Camera.java b/ruoyi-code/src/main/java/com/ruoyi/code/camera/domain/Camera.java index 8646198..3250949 100644 --- a/ruoyi-code/src/main/java/com/ruoyi/code/camera/domain/Camera.java +++ b/ruoyi-code/src/main/java/com/ruoyi/code/camera/domain/Camera.java @@ -48,6 +48,9 @@ public class Camera implements Serializable /** 状态 */ private Integer status; + /** 4g信号强度 */ + private Integer rssiLevel; + private String loginId; /** 首次注册时间 */ diff --git a/ruoyi-code/src/main/java/utils/CameraUtil.java b/ruoyi-code/src/main/java/utils/CameraUtil.java index dc87f2b..c87fcee 100644 --- a/ruoyi-code/src/main/java/utils/CameraUtil.java +++ b/ruoyi-code/src/main/java/utils/CameraUtil.java @@ -1,5 +1,6 @@ package utils; +import com.alibaba.fastjson.JSON; import com.ruoyi.common.utils.DateUtils; import com.sun.jna.NativeLong; import com.sun.jna.ptr.IntByReference; @@ -12,13 +13,23 @@ import java.util.Date; public class CameraUtil { public static void main(String[] args) { -// NetLib.instance.Net_Init(null, null); + NetLib.instance.Net_Init(null, null); - run_device_cfg cfg = new run_device_cfg(); - cfg.startCfg(); + String strIp="192.168.1.64"; + int nPort= 27778; + String strUsername="admin"; + String strPassword="admin123"; + String strDevSN="8R23R300003"; + IntByReference nError = new IntByReference(0); + + NativeLong loginID = NetLib.instance.Net_LoginDevice(strIp, nPort, strUsername, strPassword, null, nError); + System.out.println("loginID = "+loginID); } + /** + * 重启设备 + */ public static boolean deal(NativeLong loginID){ boolean res = NetLib.instance.Net_RebootDevice(loginID); int error = NetLib.instance.Net_LastError(); @@ -26,6 +37,22 @@ public class CameraUtil { return res; } + /** + * 获取4G信号强度 + */ + public static int get4gRssiLevel(NativeLong loginID){ + NetStructs.STU_GET_4G_RSSI_IN_PARAM.ByReference pstInParam = new NetStructs.STU_GET_4G_RSSI_IN_PARAM.ByReference(); + NetStructs.STU_GET_4G_RSSI_OUT_PARAM.ByReference pstOutParam = new NetStructs.STU_GET_4G_RSSI_OUT_PARAM.ByReference(); + boolean res = NetLib.instance.Net_GetDevice4GRSSI(loginID,pstInParam, pstOutParam,6000); + int level = 0; + if(res){ +// System.out.println(JSON.toJSONString(pstOutParam)); +// System.out.println("4G信号强度:"+pstOutParam.nRssiLevel); + level = pstOutParam.nRssiLevel; + } + return level; + } + private static void sleep(int nTime) { try { diff --git a/ruoyi-code/src/main/resources/mapper/camera/WaterPhotoInfoMapper.xml b/ruoyi-code/src/main/resources/mapper/camera/WaterPhotoInfoMapper.xml index c1657b6..fa343d9 100644 --- a/ruoyi-code/src/main/resources/mapper/camera/WaterPhotoInfoMapper.xml +++ b/ruoyi-code/src/main/resources/mapper/camera/WaterPhotoInfoMapper.xml @@ -18,7 +18,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and w.tm >= #{params.startTime } and w.tm <= #{params.endTime} - + order by w.tm desc