diff --git a/src/main/java/com/example/lxcameraapi/service/IndustrialCamera/camera/hik/HikSaveImage.java b/src/main/java/com/example/lxcameraapi/service/IndustrialCamera/camera/hik/HikSaveImage.java index 0605099..1795693 100644 --- a/src/main/java/com/example/lxcameraapi/service/IndustrialCamera/camera/hik/HikSaveImage.java +++ b/src/main/java/com/example/lxcameraapi/service/IndustrialCamera/camera/hik/HikSaveImage.java @@ -12,6 +12,7 @@ package com.example.lxcameraapi.service.IndustrialCamera.camera.hik; /********** import MvCameraControlWrapper.*; import com.example.lxcameraapi.conf.AppConfig; import com.example.lxcameraapi.service.IndustrialCamera.camera.CameraSaveUtil; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.PreDestroy; @@ -32,6 +33,7 @@ import MvCameraControlWrapper.*; import static MvCameraControlWrapper.MvCameraControl.MV_CC_EnumDevices; import static MvCameraControlWrapper.MvCameraControlDefines.*; @Service +@Slf4j public class HikSaveImage implements CameraSaveUtil { // 设备句柄保存 @@ -39,33 +41,33 @@ public class HikSaveImage implements CameraSaveUtil { private static void printDeviceInfo(MV_CC_DEVICE_INFO stDeviceInfo) { if (null == stDeviceInfo) { - System.out.println("stDeviceInfo is null"); + log.info("stDeviceInfo is null"); return; } if (stDeviceInfo.transportLayerType == MV_GIGE_DEVICE) { - System.out.println("\tCurrentIp: " + stDeviceInfo.gigEInfo.currentIp); - System.out.println("\tserialNumber: " + stDeviceInfo.gigEInfo.serialNumber); - System.out.println("\tModel: " + stDeviceInfo.gigEInfo.modelName); - System.out.println("\tUserDefinedName: " + stDeviceInfo.gigEInfo.userDefinedName); + log.info("\tCurrentIp: " + stDeviceInfo.gigEInfo.currentIp); + log.info("\tserialNumber: " + stDeviceInfo.gigEInfo.serialNumber); + log.info("\tModel: " + stDeviceInfo.gigEInfo.modelName); + log.info("\tUserDefinedName: " + stDeviceInfo.gigEInfo.userDefinedName); } else if (stDeviceInfo.transportLayerType == MV_USB_DEVICE) { - System.out.println("\tUserDefinedName: " + stDeviceInfo.usb3VInfo.userDefinedName); - System.out.println("\tSerial Number: " + stDeviceInfo.usb3VInfo.serialNumber); - System.out.println("\tDevice Number: " + stDeviceInfo.usb3VInfo.deviceNumber); + log.info("\tUserDefinedName: " + stDeviceInfo.usb3VInfo.userDefinedName); + log.info("\tSerial Number: " + stDeviceInfo.usb3VInfo.serialNumber); + log.info("\tDevice Number: " + stDeviceInfo.usb3VInfo.deviceNumber); } else { System.err.print("Device is not supported! \n"); } - System.out.println("\tAccessible: " + log.info("\tAccessible: " + MvCameraControl.MV_CC_IsDeviceAccessible(stDeviceInfo, MV_ACCESS_Exclusive)); - System.out.println(""); + log.info(""); } private static void printFrameInfo(MV_FRAME_OUT_INFO stFrameInfo) { if (null == stFrameInfo) { - System.err.println("stFrameInfo is null"); + log.info("stFrameInfo is null"); return; } @@ -75,7 +77,7 @@ public class HikSaveImage implements CameraSaveUtil { frameInfo.append("\tHeight[" + stFrameInfo.height + "]"); frameInfo.append(String.format("\tPixelType[%#x]", stFrameInfo.pixelType.getnValue())); - System.out.println(frameInfo.toString()); + log.info(frameInfo.toString()); } public static void saveDataToFile(byte[] dataToSave, int dataSize, String fileName) @@ -94,16 +96,16 @@ public class HikSaveImage implements CameraSaveUtil { } catch (IOException e) { - System.err.println("Failed to create file: " + e.getMessage()); + log.info("Failed to create file: " + e.getMessage()); } } else { - System.out.println("File already exists: " + path); + log.info("File already exists: " + path); } // 创建文件 os = new FileOutputStream( fileName); os.write(dataToSave, 0, dataSize); - System.out.println("SaveImage succeed."); + log.info("SaveImage succeed."); // Create directory } @@ -171,7 +173,7 @@ public class HikSaveImage implements CameraSaveUtil { do { - System.out.println("SDK Version " + MvCameraControl.MV_CC_GetSDKVersion()); + log.info("SDK Version " + MvCameraControl.MV_CC_GetSDKVersion()); // Enuerate GigE and USB devices try @@ -179,13 +181,13 @@ public class HikSaveImage implements CameraSaveUtil { stDeviceList = MV_CC_EnumDevices(MV_GIGE_DEVICE | MV_USB_DEVICE); if (0 >= stDeviceList.size()) { - System.out.println("No devices found!"); + log.info("No devices found!"); break; } } catch (CameraControlException e) { - System.err.println("Enumrate devices failed!" + e.toString()); + log.info("Enumrate devices failed!" + e.toString()); e.printStackTrace(); break; } @@ -224,7 +226,7 @@ public class HikSaveImage implements CameraSaveUtil { break; } - System.out.println("GetOneFrame: "); + log.info("GetOneFrame: "); printFrameInfo(stImageInfo); int imageLen = stImageInfo.width * stImageInfo.height * 3; // Every RGB pixel takes 3 bytes byte[] imageBuffer = new byte[imageLen]; @@ -276,7 +278,7 @@ public class HikSaveImage implements CameraSaveUtil { nRet = MvCameraControl.MV_CC_SaveImage(hCamera, stSaveParam); -// System.out.println("ceshi"); +// log.info("ceshi"); if (MV_OK != nRet) { System.err.printf("SaveImage fail, errcode: [%#x]\n", nRet); @@ -302,11 +304,11 @@ public class HikSaveImage implements CameraSaveUtil { //已经获得句柄 hCamera = handleMap.get(sn); }else { - System.out.println("创建句柄"); + log.info("创建句柄"); camIndex = chooseCamera(stDeviceList,sn,type); if (camIndex == -1) { - System.out.println("未找到摄像头"); + log.info("未找到摄像头"); return null; } //未获得句柄并初始化 @@ -345,20 +347,20 @@ public class HikSaveImage implements CameraSaveUtil { } catch (CameraControlException e) { - System.err.println("Create handle failed!" + e.toString()); + log.info("Create handle failed!" + e.toString()); e.printStackTrace(); return null; } - System.out.println(hCamera); + log.info(hCamera.toString()); return hCamera; } public static void forInit(List cameras){ ArrayList stDeviceList = null; - System.out.println("SDK Version " + MvCameraControl.MV_CC_GetSDKVersion()); + log.info("SDK Version " + MvCameraControl.MV_CC_GetSDKVersion()); // Enuerate GigE and USB devices try @@ -366,13 +368,13 @@ public class HikSaveImage implements CameraSaveUtil { stDeviceList = MV_CC_EnumDevices(MV_GIGE_DEVICE ); if (0 >= stDeviceList.size()) { - System.out.println("No devices found!"); + log.info("No devices found!"); } } catch (CameraControlException e) { - System.err.println("Enumrate devices failed!" + e.toString()); + log.info("Enumrate devices failed!" + e.toString()); e.printStackTrace(); } diff --git a/src/main/java/com/example/lxcameraapi/service/cron/CronTab.java b/src/main/java/com/example/lxcameraapi/service/cron/CronTab.java index 37588e5..64d7505 100644 --- a/src/main/java/com/example/lxcameraapi/service/cron/CronTab.java +++ b/src/main/java/com/example/lxcameraapi/service/cron/CronTab.java @@ -1,6 +1,7 @@ package com.example.lxcameraapi.service.cron; import com.example.lxcameraapi.conf.AppConfig; +import com.example.lxcameraapi.service.IndustrialCamera.camera.hik.HikSaveImage; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; @@ -37,6 +38,14 @@ public class CronTab { deleteOldFiles(dir,30); } + + @Scheduled(cron = "0 0/5 * * * ?") + public void getHikInit(){ + if (appConfig.getHikCamera().size() > 0){ + HikSaveImage.forInit(appConfig.getHikCamera()); + } + } + public static void deleteOldFiles( File folder,int days) { if (!folder.exists() || !folder.isDirectory()) { System.out.println("指定的路径不是一个有效的文件夹: " + folder.getName());