增加异步能力

物流展会算法
LAPTOP-S9HJSOEB\昊天 1 month ago
parent 05ba1395f1
commit 0eaf361577

File diff suppressed because it is too large Load Diff

@ -1,12 +0,0 @@
2026-03-20 14:53:51.530 [main] INFO [c.e.l.s.I.camera.lx.LxPointCloudSaveImage] - 开始初始化设备: SN=10.141.128.205, Type=1
2026-03-20 14:53:52.182 [main] INFO [c.e.l.s.I.camera.lx.LxPointCloudSaveImage] - 设备 10.141.128.205 打开失败,第 1 次重试,错误码: -15
2026-03-20 14:53:53.203 [main] INFO [c.e.l.s.I.camera.lx.LxPointCloudSaveImage] - 设备 10.141.128.205 打开失败,第 2 次重试,错误码: -15
2026-03-20 14:53:54.225 [main] INFO [c.e.l.s.I.camera.lx.LxPointCloudSaveImage] - 设备 10.141.128.205 打开失败,第 3 次重试,错误码: -15
2026-03-20 14:53:55.250 [main] ERROR [c.e.l.s.I.camera.lx.LxPointCloudSaveImage] - 设备 10.141.128.205 重试 3 次后仍然失败
2026-03-20 14:53:55.251 [main] ERROR [c.e.l.s.I.camera.lx.LxPointCloudSaveImage] - 设备 10.141.128.205 初始化失败,错误码: -15
2026-03-20 15:05:48.152 [main] INFO [c.e.l.s.I.camera.lx.LxPointCloudSaveImage] - 开始初始化设备: SN=10.141.128.205, Type=1
2026-03-20 15:05:48.787 [main] INFO [c.e.l.s.I.camera.lx.LxPointCloudSaveImage] - 设备 10.141.128.205 打开失败,第 1 次重试,错误码: -15
2026-03-20 15:05:49.836 [main] INFO [c.e.l.s.I.camera.lx.LxPointCloudSaveImage] - 设备 10.141.128.205 打开失败,第 2 次重试,错误码: -15
2026-03-20 15:05:50.860 [main] INFO [c.e.l.s.I.camera.lx.LxPointCloudSaveImage] - 设备 10.141.128.205 打开失败,第 3 次重试,错误码: -15
2026-03-20 15:05:51.882 [main] ERROR [c.e.l.s.I.camera.lx.LxPointCloudSaveImage] - 设备 10.141.128.205 重试 3 次后仍然失败
2026-03-20 15:05:51.882 [main] ERROR [c.e.l.s.I.camera.lx.LxPointCloudSaveImage] - 设备 10.141.128.205 初始化失败,错误码: -15

@ -1,794 +0,0 @@
2026-04-02 11:46:21.726 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化所有Lx相机数量: 1
2026-04-02 11:46:21.729 [main] WARN [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - DLL文件已存在跳过复制: D:\git\测试\lxCameraApi\libs\plc\LxCameraApi-1.dll
2026-04-02 11:46:21.901 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化设备: SN=192.168.100.82, Type=1
2026-04-02 11:46:22.549 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 打开失败,第 1 次重试,错误码: -9
2026-04-02 11:46:23.061 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 打开失败,第 2 次重试,错误码: -9
2026-04-02 11:46:23.577 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 打开失败,第 3 次重试,错误码: -9
2026-04-02 11:46:24.094 [main] ERROR [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 重试 3 次后仍然失败
2026-04-02 11:46:24.094 [main] ERROR [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 初始化失败,错误码: -9
2026-04-02 11:46:24.094 [main] ERROR [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 初始化失败
2026-04-02 11:46:24.094 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 所有Lx相机初始化完成成功: 1
2026-04-02 11:48:06.431 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化所有Lx相机数量: 1
2026-04-02 11:48:06.432 [main] WARN [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - DLL文件已存在跳过复制: D:\git\测试\lxCameraApi\libs\plc\LxCameraApi-1.dll
2026-04-02 11:48:06.473 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化设备: SN=192.168.100.82, Type=1
2026-04-02 11:48:07.335 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 初始化成功
2026-04-02 11:48:07.335 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备详细信息:
2026-04-02 11:48:07.335 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备类型: 1005
2026-04-02 11:48:07.336 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - ID: F83B51129860
2026-04-02 11:48:07.336 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - IP: 192.168.100.82:3956
2026-04-02 11:48:07.336 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - SN: 04C8BF8A094B12F3
2026-04-02 11:48:07.336 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - MAC: fa:7e:64:c8:27:97
2026-04-02 11:48:07.336 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 固件版本: V1.1.26_231031
2026-04-02 11:48:07.336 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 算法版本: 1.1.5,20231025
2026-04-02 11:48:07.336 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备名称: camera_M4_192.168.100.82_3956
2026-04-02 11:48:08.270 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 流启动成功
2026-04-02 11:48:08.285 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 命令码设置成功5001
2026-04-02 11:48:08.285 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 初始化成功
2026-04-02 11:48:08.285 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 所有Lx相机初始化完成成功: 1
2026-04-02 11:52:26.816 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化所有Lx相机数量: 1
2026-04-02 11:52:26.817 [main] WARN [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - DLL文件已存在跳过复制: D:\git\测试\lxCameraApi\libs\plc\LxCameraApi-1.dll
2026-04-02 11:52:26.855 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化设备: SN=192.168.100.82, Type=1
2026-04-02 11:52:27.666 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 初始化成功
2026-04-02 11:52:27.666 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备详细信息:
2026-04-02 11:52:27.666 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备类型: 1005
2026-04-02 11:52:27.667 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - ID: F83B51129860
2026-04-02 11:52:27.667 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - IP: 192.168.100.82:3956
2026-04-02 11:52:27.667 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - SN: 04C8BF8A094B12F3
2026-04-02 11:52:27.667 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - MAC: fa:7e:64:c8:27:97
2026-04-02 11:52:27.667 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 固件版本: V1.1.26_231031
2026-04-02 11:52:27.667 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 算法版本: 1.1.5,20231025
2026-04-02 11:52:27.667 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备名称: camera_M4_192.168.100.82_3956
2026-04-02 11:52:28.603 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 流启动成功
2026-04-02 11:52:28.696 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 命令码设置成功5001
2026-04-02 11:52:28.696 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 初始化成功
2026-04-02 11:52:28.696 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 所有Lx相机初始化完成成功: 1
2026-04-02 11:56:28.834 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化所有Lx相机数量: 1
2026-04-02 11:56:28.836 [main] WARN [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - DLL文件已存在跳过复制: D:\git\测试\lxCameraApi\libs\plc\LxCameraApi-1.dll
2026-04-02 11:56:28.872 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化设备: SN=192.168.100.82, Type=1
2026-04-02 11:56:29.695 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 初始化成功
2026-04-02 11:56:29.695 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备详细信息:
2026-04-02 11:56:29.695 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备类型: 1005
2026-04-02 11:56:29.695 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - ID: F83B51129860
2026-04-02 11:56:29.695 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - IP: 192.168.100.82:3956
2026-04-02 11:56:29.695 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - SN: 04C8BF8A094B12F3
2026-04-02 11:56:29.695 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - MAC: fa:7e:64:c8:27:97
2026-04-02 11:56:29.695 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 固件版本: V1.1.26_231031
2026-04-02 11:56:29.695 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 算法版本: 1.1.5,20231025
2026-04-02 11:56:29.695 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备名称: camera_M4_192.168.100.82_3956
2026-04-02 11:56:30.619 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 流启动成功
2026-04-02 11:56:30.634 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 命令码设置成功5001
2026-04-02 11:56:30.635 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 初始化成功
2026-04-02 11:56:30.635 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 所有Lx相机初始化完成成功: 1
2026-04-02 12:02:25.871 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化所有Lx相机数量: 1
2026-04-02 12:02:25.873 [main] WARN [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - DLL文件已存在跳过复制: D:\git\测试\lxCameraApi\libs\plc\LxCameraApi-1.dll
2026-04-02 12:02:25.913 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化设备: SN=192.168.100.82, Type=1
2026-04-02 12:02:26.737 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 初始化成功
2026-04-02 12:02:26.737 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备详细信息:
2026-04-02 12:02:26.737 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备类型: 1005
2026-04-02 12:02:26.737 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - ID: F83B51129860
2026-04-02 12:02:26.737 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - IP: 192.168.100.82:3956
2026-04-02 12:02:26.737 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - SN: 04C8BF8A094B12F3
2026-04-02 12:02:26.737 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - MAC: fa:7e:64:c8:27:97
2026-04-02 12:02:26.737 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 固件版本: V1.1.26_231031
2026-04-02 12:02:26.737 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 算法版本: 1.1.5,20231025
2026-04-02 12:02:26.737 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备名称: camera_M4_192.168.100.82_3956
2026-04-02 12:02:27.667 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 流启动成功
2026-04-02 12:02:27.683 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 命令码设置成功5001
2026-04-02 12:02:27.683 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 初始化成功
2026-04-02 12:02:27.683 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 所有Lx相机初始化完成成功: 1
2026-04-02 12:02:27.956 [main] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageCropper] - ImageCropper 初始化完成
2026-04-02 14:10:02.728 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化所有Lx相机数量: 1
2026-04-02 14:10:02.730 [main] WARN [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - DLL文件已存在跳过复制: D:\git\测试\lxCameraApi\libs\plc\LxCameraApi-1.dll
2026-04-02 14:10:02.772 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化设备: SN=192.168.100.82, Type=1
2026-04-02 14:10:03.413 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 打开失败,第 1 次重试,错误码: -15
2026-04-02 14:10:04.635 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 第 1 次重试成功
2026-04-02 14:10:04.635 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 初始化成功
2026-04-02 14:10:04.636 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备详细信息:
2026-04-02 14:10:04.636 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备类型: 1005
2026-04-02 14:10:04.636 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - ID: F83B51129860
2026-04-02 14:10:04.636 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - IP: 192.168.100.82:3956
2026-04-02 14:10:04.636 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - SN: 04C8BF8A094B12F3
2026-04-02 14:10:04.636 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - MAC: fa:7e:64:c8:27:97
2026-04-02 14:10:04.636 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 固件版本: V1.1.26_231031
2026-04-02 14:10:04.636 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 算法版本: 1.1.5,20231025
2026-04-02 14:10:04.636 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备名称: camera_M4_192.168.100.82_3956
2026-04-02 14:10:05.584 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 流启动成功
2026-04-02 14:10:05.664 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 命令码设置成功5001
2026-04-02 14:10:05.665 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 初始化成功
2026-04-02 14:10:05.666 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 所有Lx相机初始化完成成功: 1
2026-04-02 14:10:06.229 [main] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageCropper] - ImageCropper 初始化完成
2026-04-02 15:26:12.787 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化所有Lx相机数量: 1
2026-04-02 15:26:12.791 [main] WARN [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - DLL文件已存在跳过复制: D:\git\测试\lxCameraApi\libs\plc\LxCameraApi-1.dll
2026-04-02 15:26:12.848 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化设备: SN=192.168.100.82, Type=1
2026-04-02 15:26:13.716 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 初始化成功
2026-04-02 15:26:13.716 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备详细信息:
2026-04-02 15:26:13.716 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备类型: 1005
2026-04-02 15:26:13.716 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - ID: F83B51129860
2026-04-02 15:26:13.716 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - IP: 192.168.100.82:3956
2026-04-02 15:26:13.716 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - SN: 04C8BF8A094B12F3
2026-04-02 15:26:13.716 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - MAC: fa:7e:64:c8:27:97
2026-04-02 15:26:13.716 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 固件版本: V1.1.26_231031
2026-04-02 15:26:13.716 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 算法版本: 1.1.5,20231025
2026-04-02 15:26:13.717 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备名称: camera_M4_192.168.100.82_3956
2026-04-02 15:26:14.641 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 流启动成功
2026-04-02 15:26:14.673 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 命令码设置成功5001
2026-04-02 15:26:14.673 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 初始化成功
2026-04-02 15:26:14.673 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 所有Lx相机初始化完成成功: 1
2026-04-02 15:26:15.042 [main] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageCropper] - ImageCropper 初始化完成
2026-04-02 15:38:56.198 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 开始拍照,配置: CaptureConfig(captureAmplitude=false, captureRgb=false, captureDepth=false, captureDepthColor=false, capturePointCloud=true, maxConnectRetries=3, maxCaptureRetries=3, retryInterval=500, maxDepthValue=1000.0, colormapType=0)
2026-04-02 15:38:56.204 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照尝试
2026-04-02 15:38:56.205 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 设置命令码结果: 25
2026-04-02 15:38:57.030 [http-nio-8097-exec-1] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageSaver] - 点云保存: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_153856.pcd, 结果: 0
2026-04-02 15:38:57.031 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 点云保存成功: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_153856.pcd
2026-04-02 15:38:57.031 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照成功,保存文件数: 1
2026-04-02 15:38:57.031 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 收到计算箱子数量请求: pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_153856.pcd, floorHeight=null, boxSize=37.0x37.0x54.0
2026-04-02 15:38:57.031 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 开始计算箱子数量: BoxCountRequest(cameraId=null, cameraCalibratePath=E://pz.json, pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_153856.pcd, floorHeight=null, boxLength=37.0, boxWidth=37.0, boxHeight=54.0, stackType=null, maxBoxesPerLayer=8, baseTolerance=null, additionalTolerancePerLevel=null, minBounds=null, maxBounds=null)
2026-04-02 15:38:57.656 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 成功读取PCD文件点数: 255872
2026-04-02 15:39:05.281 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 过滤后的点云层数: 0
2026-04-02 15:39:05.281 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 每层最大箱子数: 8
2026-04-02 15:39:05.281 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 计算完成,总箱子数: 0, 用时: 8250ms
2026-04-02 15:39:05.282 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 箱子数量计算完成: 成功 - 总箱子数: 0, 层数: 0, 最高层: 0, 用时: 8250ms
2026-04-02 15:43:25.647 [http-nio-8097-exec-8] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 开始拍照,配置: CaptureConfig(captureAmplitude=false, captureRgb=false, captureDepth=false, captureDepthColor=false, capturePointCloud=true, maxConnectRetries=3, maxCaptureRetries=3, retryInterval=500, maxDepthValue=1000.0, colormapType=0)
2026-04-02 15:43:25.648 [http-nio-8097-exec-8] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照尝试
2026-04-02 15:43:25.650 [http-nio-8097-exec-8] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 设置命令码结果: 25
2026-04-02 15:43:26.475 [http-nio-8097-exec-8] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageSaver] - 点云保存: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_154325.pcd, 结果: 0
2026-04-02 15:43:26.475 [http-nio-8097-exec-8] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 点云保存成功: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_154325.pcd
2026-04-02 15:43:26.475 [http-nio-8097-exec-8] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照成功,保存文件数: 1
2026-04-02 15:43:26.475 [http-nio-8097-exec-8] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 收到计算箱子数量请求: pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_154325.pcd, floorHeight=null, boxSize=37.0x37.0x54.0
2026-04-02 15:43:26.475 [http-nio-8097-exec-8] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 开始计算箱子数量: BoxCountRequest(cameraId=null, cameraCalibratePath=E://pz.json, pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_154325.pcd, floorHeight=null, boxLength=37.0, boxWidth=37.0, boxHeight=54.0, stackType=null, maxBoxesPerLayer=8, baseTolerance=null, additionalTolerancePerLevel=null, minBounds=null, maxBounds=null)
2026-04-02 15:43:27.011 [http-nio-8097-exec-8] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 成功读取PCD文件点数: 256989
2026-04-02 15:43:54.274 [http-nio-8097-exec-8] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 过滤后的点云层数: 0
2026-04-02 15:43:54.275 [http-nio-8097-exec-8] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 每层最大箱子数: 8
2026-04-02 15:43:54.275 [http-nio-8097-exec-8] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 计算完成,总箱子数: 0, 用时: 27800ms
2026-04-02 15:43:54.275 [http-nio-8097-exec-8] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 箱子数量计算完成: 成功 - 总箱子数: 0, 层数: 0, 最高层: 0, 用时: 27800ms
2026-04-02 15:45:45.111 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化所有Lx相机数量: 1
2026-04-02 15:45:45.113 [main] WARN [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - DLL文件已存在跳过复制: D:\git\测试\lxCameraApi\libs\plc\LxCameraApi-1.dll
2026-04-02 15:45:45.156 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化设备: SN=192.168.100.82, Type=1
2026-04-02 15:45:46.014 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 初始化成功
2026-04-02 15:45:46.015 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备详细信息:
2026-04-02 15:45:46.015 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备类型: 1005
2026-04-02 15:45:46.015 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - ID: F83B51129860
2026-04-02 15:45:46.015 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - IP: 192.168.100.82:3956
2026-04-02 15:45:46.015 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - SN: 04C8BF8A094B12F3
2026-04-02 15:45:46.015 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - MAC: fa:7e:64:c8:27:97
2026-04-02 15:45:46.015 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 固件版本: V1.1.26_231031
2026-04-02 15:45:46.015 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 算法版本: 1.1.5,20231025
2026-04-02 15:45:46.015 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备名称: camera_M4_192.168.100.82_3956
2026-04-02 15:45:46.954 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 流启动成功
2026-04-02 15:45:47.034 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 命令码设置成功5001
2026-04-02 15:45:47.034 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 初始化成功
2026-04-02 15:45:47.034 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 所有Lx相机初始化完成成功: 1
2026-04-02 15:45:47.335 [main] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageCropper] - ImageCropper 初始化完成
2026-04-02 15:45:58.033 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 开始拍照,配置: CaptureConfig(captureAmplitude=false, captureRgb=false, captureDepth=false, captureDepthColor=false, capturePointCloud=true, maxConnectRetries=3, maxCaptureRetries=3, retryInterval=500, maxDepthValue=1000.0, colormapType=0)
2026-04-02 15:45:58.039 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照尝试
2026-04-02 15:45:58.041 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 设置命令码结果: 25
2026-04-02 15:45:58.800 [http-nio-8097-exec-1] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageSaver] - 点云保存: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_154558.pcd, 结果: 0
2026-04-02 15:45:58.801 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 点云保存成功: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_154558.pcd
2026-04-02 15:45:58.801 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照成功,保存文件数: 1
2026-04-02 15:45:58.801 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 收到计算箱子数量请求: pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_154558.pcd, floorHeight=null, boxSize=37.0x37.0x54.0
2026-04-02 15:45:58.801 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 开始计算箱子数量: BoxCountRequest(cameraId=null, cameraCalibratePath=D://cj.json, pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_154558.pcd, floorHeight=null, boxLength=37.0, boxWidth=37.0, boxHeight=54.0, stackType=null, maxBoxesPerLayer=8, baseTolerance=null, additionalTolerancePerLevel=null, minBounds=null, maxBounds=null)
2026-04-02 15:45:59.201 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 成功读取PCD文件点数: 256452
2026-04-02 15:45:59.202 [http-nio-8097-exec-1] ERROR [c.e.l.s.I.camera.lx.BoxCountCalculator] - 计算箱子数量失败
java.lang.RuntimeException: java.io.FileNotFoundException: D:\cj.json (系统找不到指定的文件。)
at com.example.lxcameraapi.service.IndustrialCamera.camera.lx.BoxCountCalculator.createPcdPojo(BoxCountCalculator.java:398)
at com.example.lxcameraapi.service.IndustrialCamera.camera.lx.BoxCountCalculator.countBoxes(BoxCountCalculator.java:261)
at com.example.lxcameraapi.service.IndustrialCamera.camera.lx.LxCameraServiceImpl.countBoxes(LxCameraServiceImpl.java:562)
at com.example.lxcameraapi.controller.BoxCountController.countBoxes(BoxCountController.java:46)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)
at com.example.lxcameraapi.aspect.LogAspect.logApiCall(LogAspect.java:64)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:637)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:627)
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)
at com.example.lxcameraapi.controller.BoxCountController$$SpringCGLIB$$0.countBoxes(<generated>)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:254)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.io.FileNotFoundException: D:\cj.json (系统找不到指定的文件。)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(FileInputStream.java:213)
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:152)
at com.fasterxml.jackson.core.TokenStreamFactory._fileInputStream(TokenStreamFactory.java:278)
at com.fasterxml.jackson.core.JsonFactory.createParser(JsonFactory.java:1089)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3677)
at com.example.lxcameraapi.service.IndustrialCamera.camera.lx.BoxCountCalculator.createPcdPojo(BoxCountCalculator.java:395)
... 71 common frames omitted
2026-04-02 15:45:59.207 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 箱子数量计算完成: 失败: 计算失败: java.io.FileNotFoundException: D:\cj.json (系统找不到指定的文件。)
2026-04-02 15:46:36.422 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化所有Lx相机数量: 1
2026-04-02 15:46:36.423 [main] WARN [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - DLL文件已存在跳过复制: D:\git\测试\lxCameraApi\libs\plc\LxCameraApi-1.dll
2026-04-02 15:46:36.467 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化设备: SN=192.168.100.82, Type=1
2026-04-02 15:46:37.143 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 打开失败,第 1 次重试,错误码: -15
2026-04-02 15:46:38.444 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 第 1 次重试成功
2026-04-02 15:46:38.446 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 初始化成功
2026-04-02 15:46:38.446 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备详细信息:
2026-04-02 15:46:38.446 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备类型: 1005
2026-04-02 15:46:38.446 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - ID: F83B51129860
2026-04-02 15:46:38.446 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - IP: 192.168.100.82:3956
2026-04-02 15:46:38.446 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - SN: 04C8BF8A094B12F3
2026-04-02 15:46:38.447 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - MAC: fa:7e:64:c8:27:97
2026-04-02 15:46:38.447 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 固件版本: V1.1.26_231031
2026-04-02 15:46:38.447 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 算法版本: 1.1.5,20231025
2026-04-02 15:46:38.447 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备名称: camera_M4_192.168.100.82_3956
2026-04-02 15:46:39.381 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 流启动成功
2026-04-02 15:46:39.398 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 命令码设置成功5001
2026-04-02 15:46:39.398 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 初始化成功
2026-04-02 15:46:39.398 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 所有Lx相机初始化完成成功: 1
2026-04-02 15:46:39.851 [main] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageCropper] - ImageCropper 初始化完成
2026-04-02 15:47:17.414 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 开始拍照,配置: CaptureConfig(captureAmplitude=false, captureRgb=false, captureDepth=false, captureDepthColor=false, capturePointCloud=true, maxConnectRetries=3, maxCaptureRetries=3, retryInterval=500, maxDepthValue=1000.0, colormapType=0)
2026-04-02 15:47:17.420 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照尝试
2026-04-02 15:47:17.421 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 设置命令码结果: 25
2026-04-02 15:47:18.174 [http-nio-8097-exec-1] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageSaver] - 点云保存: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_154717.pcd, 结果: 0
2026-04-02 15:47:18.174 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 点云保存成功: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_154717.pcd
2026-04-02 15:47:18.174 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照成功,保存文件数: 1
2026-04-02 15:47:18.174 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 收到计算箱子数量请求: pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_154717.pcd, floorHeight=null, boxSize=37.0x37.0x54.0
2026-04-02 15:47:18.174 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 开始计算箱子数量: BoxCountRequest(cameraId=null, cameraCalibratePath=D://data/cj.json, pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_154717.pcd, floorHeight=null, boxLength=37.0, boxWidth=37.0, boxHeight=54.0, stackType=null, maxBoxesPerLayer=8, baseTolerance=null, additionalTolerancePerLevel=null, minBounds=null, maxBounds=null)
2026-04-02 15:47:18.537 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 成功读取PCD文件点数: 256249
2026-04-02 15:47:24.024 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 过滤后的点云层数: 6
2026-04-02 15:47:24.024 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 每层最大箱子数: 8
2026-04-02 15:47:24.136 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 第 8 层面积: 977.012810046166 mm², 点数: 1281
2026-04-02 15:47:24.137 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 第 8 层箱子数: 1
2026-04-02 15:47:24.192 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 第 7 层面积: 1470.2311659756897 mm², 点数: 1917
2026-04-02 15:47:24.192 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 第 7 层箱子数: 1
2026-04-02 15:47:24.240 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 计算完成,总箱子数: 2, 用时: 6066ms
2026-04-02 15:47:24.242 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 箱子数量计算完成: 成功 - 总箱子数: 2, 层数: 2, 最高层: 8, 用时: 6066ms
2026-04-02 15:49:09.405 [http-nio-8097-exec-6] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 开始拍照,配置: CaptureConfig(captureAmplitude=false, captureRgb=false, captureDepth=false, captureDepthColor=false, capturePointCloud=true, maxConnectRetries=3, maxCaptureRetries=3, retryInterval=500, maxDepthValue=1000.0, colormapType=0)
2026-04-02 15:49:09.406 [http-nio-8097-exec-6] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照尝试
2026-04-02 15:49:09.407 [http-nio-8097-exec-6] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 设置命令码结果: 25
2026-04-02 15:49:10.239 [http-nio-8097-exec-6] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageSaver] - 点云保存: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_154909.pcd, 结果: 0
2026-04-02 15:49:10.240 [http-nio-8097-exec-6] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 点云保存成功: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_154909.pcd
2026-04-02 15:49:10.240 [http-nio-8097-exec-6] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照成功,保存文件数: 1
2026-04-02 15:49:10.240 [http-nio-8097-exec-6] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 收到计算箱子数量请求: pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_154909.pcd, floorHeight=null, boxSize=37.0x37.0x54.0
2026-04-02 15:49:10.240 [http-nio-8097-exec-6] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 开始计算箱子数量: BoxCountRequest(cameraId=null, cameraCalibratePath=D://data/cj.json, pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_154909.pcd, floorHeight=null, boxLength=37.0, boxWidth=37.0, boxHeight=54.0, stackType=null, maxBoxesPerLayer=8, baseTolerance=null, additionalTolerancePerLevel=null, minBounds=null, maxBounds=null)
2026-04-02 15:49:10.636 [http-nio-8097-exec-6] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 成功读取PCD文件点数: 256840
2026-04-02 15:54:38.184 [http-nio-8097-exec-6] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 过滤后的点云层数: 6
2026-04-02 15:54:38.184 [http-nio-8097-exec-6] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 每层最大箱子数: 8
2026-04-02 15:54:38.186 [http-nio-8097-exec-4] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 开始拍照,配置: CaptureConfig(captureAmplitude=false, captureRgb=false, captureDepth=false, captureDepthColor=false, capturePointCloud=true, maxConnectRetries=3, maxCaptureRetries=3, retryInterval=500, maxDepthValue=1000.0, colormapType=0)
2026-04-02 15:54:38.186 [http-nio-8097-exec-4] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照尝试
2026-04-02 15:54:38.186 [http-nio-8097-exec-4] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 设置命令码结果: 25
2026-04-02 15:54:38.241 [http-nio-8097-exec-6] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 第 8 层面积: 796.8441524577944 mm², 点数: 1110
2026-04-02 15:54:38.241 [http-nio-8097-exec-6] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 第 8 层箱子数: 1
2026-04-02 15:54:38.284 [http-nio-8097-exec-6] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 第 7 层面积: 1624.5461849276462 mm², 点数: 2040
2026-04-02 15:54:38.284 [http-nio-8097-exec-6] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 第 7 层箱子数: 1
2026-04-02 15:54:38.328 [http-nio-8097-exec-6] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 计算完成,总箱子数: 2, 用时: 328088ms
2026-04-02 15:54:38.328 [http-nio-8097-exec-6] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 箱子数量计算完成: 成功 - 总箱子数: 2, 层数: 2, 最高层: 8, 用时: 328088ms
2026-04-02 15:54:38.604 [http-nio-8097-exec-4] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageSaver] - 点云保存: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_155438.pcd, 结果: 0
2026-04-02 15:54:38.604 [http-nio-8097-exec-4] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 点云保存成功: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_155438.pcd
2026-04-02 15:54:38.604 [http-nio-8097-exec-4] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照成功,保存文件数: 1
2026-04-02 15:54:38.604 [http-nio-8097-exec-4] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 收到计算箱子数量请求: pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_155438.pcd, floorHeight=null, boxSize=370.0x370.0x540.0
2026-04-02 15:54:38.604 [http-nio-8097-exec-4] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 开始计算箱子数量: BoxCountRequest(cameraId=null, cameraCalibratePath=D://data/cj.json, pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_155438.pcd, floorHeight=null, boxLength=370.0, boxWidth=370.0, boxHeight=540.0, stackType=null, maxBoxesPerLayer=8, baseTolerance=null, additionalTolerancePerLevel=null, minBounds=null, maxBounds=null)
2026-04-02 15:54:38.872 [http-nio-8097-exec-4] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 成功读取PCD文件点数: 256431
2026-04-02 15:54:40.194 [http-nio-8097-exec-4] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 过滤后的点云层数: 0
2026-04-02 15:54:40.194 [http-nio-8097-exec-4] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 每层最大箱子数: 8
2026-04-02 15:54:40.195 [http-nio-8097-exec-4] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 计算完成,总箱子数: 0, 用时: 1591ms
2026-04-02 15:54:40.195 [http-nio-8097-exec-4] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 箱子数量计算完成: 成功 - 总箱子数: 0, 层数: 0, 最高层: 0, 用时: 1591ms
2026-04-02 16:15:03.798 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化所有Lx相机数量: 1
2026-04-02 16:15:03.801 [main] WARN [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - DLL文件已存在跳过复制: D:\git\测试\lxCameraApi\libs\plc\LxCameraApi-1.dll
2026-04-02 16:15:03.868 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化设备: SN=192.168.100.82, Type=1
2026-04-02 16:15:04.851 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 初始化成功
2026-04-02 16:15:04.851 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备详细信息:
2026-04-02 16:15:04.851 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备类型: 1005
2026-04-02 16:15:04.852 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - ID: F83B51129860
2026-04-02 16:15:04.852 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - IP: 192.168.100.82:3956
2026-04-02 16:15:04.852 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - SN: 04C8BF8A094B12F3
2026-04-02 16:15:04.852 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - MAC: fa:7e:64:c8:27:97
2026-04-02 16:15:04.852 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 固件版本: V1.1.26_231031
2026-04-02 16:15:04.852 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 算法版本: 1.1.5,20231025
2026-04-02 16:15:04.852 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备名称: camera_M4_192.168.100.82_3956
2026-04-02 16:15:05.786 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 流启动成功
2026-04-02 16:15:05.831 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 命令码设置成功5001
2026-04-02 16:15:05.832 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 初始化成功
2026-04-02 16:15:05.832 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 所有Lx相机初始化完成成功: 1
2026-04-02 16:15:06.339 [main] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageCropper] - ImageCropper 初始化完成
2026-04-02 16:15:12.712 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 开始拍照,配置: CaptureConfig(captureAmplitude=false, captureRgb=false, captureDepth=false, captureDepthColor=false, capturePointCloud=true, maxConnectRetries=3, maxCaptureRetries=3, retryInterval=500, maxDepthValue=1000.0, colormapType=0)
2026-04-02 16:15:12.722 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照尝试
2026-04-02 16:15:12.725 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 设置命令码结果: 25
2026-04-02 16:15:13.419 [http-nio-8097-exec-2] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageSaver] - 点云保存: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_161512.pcd, 结果: 0
2026-04-02 16:15:13.419 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 点云保存成功: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_161512.pcd
2026-04-02 16:15:13.419 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照成功,保存文件数: 1
2026-04-02 16:15:13.419 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 收到计算箱子数量请求: pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_161512.pcd, floorHeight=null, boxSize=137.0x137.0x250.0
2026-04-02 16:15:13.420 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 开始计算箱子数量: BoxCountRequest(cameraId=null, cameraCalibratePath=D://data/cj.json, pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_161512.pcd, floorHeight=null, boxLength=137.0, boxWidth=137.0, boxHeight=250.0, stackType=null, maxBoxesPerLayer=8, baseTolerance=null, additionalTolerancePerLevel=null, minBounds=null, maxBounds=null)
2026-04-02 16:15:13.927 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 成功读取PCD文件点数: 258848
2026-04-02 16:15:26.353 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 过滤后的点云层数: 2
2026-04-02 16:15:26.355 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 每层最大箱子数: 8
2026-04-02 16:15:26.603 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 计算完成,总箱子数: 0, 用时: 13183ms
2026-04-02 16:15:26.604 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 箱子数量计算完成: 成功 - 总箱子数: 0, 层数: 0, 最高层: 0, 用时: 13183ms
2026-04-02 16:16:15.088 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 开始拍照,配置: CaptureConfig(captureAmplitude=false, captureRgb=false, captureDepth=false, captureDepthColor=false, capturePointCloud=true, maxConnectRetries=3, maxCaptureRetries=3, retryInterval=500, maxDepthValue=1000.0, colormapType=0)
2026-04-02 16:16:15.089 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照尝试
2026-04-02 16:16:15.093 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 设置命令码结果: 25
2026-04-02 16:16:16.254 [http-nio-8097-exec-3] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageSaver] - 点云保存: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_161615.pcd, 结果: 0
2026-04-02 16:16:16.254 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 点云保存成功: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_161615.pcd
2026-04-02 16:16:16.254 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照成功,保存文件数: 1
2026-04-02 16:16:16.254 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 收到计算箱子数量请求: pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_161615.pcd, floorHeight=null, boxSize=137.0x137.0x250.0
2026-04-02 16:16:16.255 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 开始计算箱子数量: BoxCountRequest(cameraId=null, cameraCalibratePath=D://data/cj.json, pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_161615.pcd, floorHeight=null, boxLength=137.0, boxWidth=137.0, boxHeight=250.0, stackType=null, maxBoxesPerLayer=8, baseTolerance=null, additionalTolerancePerLevel=null, minBounds=null, maxBounds=null)
2026-04-02 16:16:16.812 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 成功读取PCD文件点数: 257105
2026-04-02 16:26:43.079 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 过滤后的点云层数: 2
2026-04-02 16:26:43.080 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 每层最大箱子数: 8
2026-04-02 16:26:43.173 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 计算完成,总箱子数: 0, 用时: 626918ms
2026-04-02 16:26:43.174 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 箱子数量计算完成: 成功 - 总箱子数: 0, 层数: 0, 最高层: 0, 用时: 626918ms
2026-04-02 16:27:11.891 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化所有Lx相机数量: 1
2026-04-02 16:27:11.895 [main] WARN [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - DLL文件已存在跳过复制: D:\git\测试\lxCameraApi\libs\plc\LxCameraApi-1.dll
2026-04-02 16:27:11.981 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化设备: SN=192.168.100.82, Type=1
2026-04-02 16:27:13.056 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 初始化成功
2026-04-02 16:27:13.057 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备详细信息:
2026-04-02 16:27:13.057 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备类型: 1005
2026-04-02 16:27:13.058 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - ID: F83B51129860
2026-04-02 16:27:13.058 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - IP: 192.168.100.82:3956
2026-04-02 16:27:13.058 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - SN: 04C8BF8A094B12F3
2026-04-02 16:27:13.058 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - MAC: fa:7e:64:c8:27:97
2026-04-02 16:27:13.058 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 固件版本: V1.1.26_231031
2026-04-02 16:27:13.058 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 算法版本: 1.1.5,20231025
2026-04-02 16:27:13.059 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备名称: camera_M4_192.168.100.82_3956
2026-04-02 16:27:13.989 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 流启动成功
2026-04-02 16:27:14.037 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 命令码设置成功5001
2026-04-02 16:27:14.037 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 初始化成功
2026-04-02 16:27:14.037 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 所有Lx相机初始化完成成功: 1
2026-04-02 16:27:14.619 [main] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageCropper] - ImageCropper 初始化完成
2026-04-02 16:27:47.300 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 开始拍照,配置: CaptureConfig(captureAmplitude=false, captureRgb=false, captureDepth=false, captureDepthColor=false, capturePointCloud=true, maxConnectRetries=3, maxCaptureRetries=3, retryInterval=500, maxDepthValue=1000.0, colormapType=0)
2026-04-02 16:27:47.306 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照尝试
2026-04-02 16:27:47.308 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 设置命令码结果: 25
2026-04-02 16:27:47.986 [http-nio-8097-exec-1] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageSaver] - 点云保存: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_162747.pcd, 结果: 0
2026-04-02 16:27:47.987 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 点云保存成功: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_162747.pcd
2026-04-02 16:27:47.987 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照成功,保存文件数: 1
2026-04-02 16:27:47.987 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 收到计算箱子数量请求: pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_162747.pcd, floorHeight=null, boxSize=137.0x137.0x250.0
2026-04-02 16:27:47.987 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 开始计算箱子数量: BoxCountRequest(cameraId=null, cameraCalibratePath=D://data/cj.json, pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_162747.pcd, floorHeight=null, boxLength=137.0, boxWidth=137.0, boxHeight=250.0, stackType=null, maxBoxesPerLayer=8, baseTolerance=null, additionalTolerancePerLevel=null, minBounds=null, maxBounds=null)
2026-04-02 16:27:48.534 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 成功读取PCD文件点数: 258305
2026-04-02 16:27:53.602 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 过滤后的点云层数: 2
2026-04-02 16:29:41.616 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 每层最大箱子数: 8
2026-04-02 16:29:43.801 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 计算完成,总箱子数: 0, 用时: 115814ms
2026-04-02 16:29:43.802 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 箱子数量计算完成: 成功 - 总箱子数: 0, 层数: 0, 最高层: 0, 用时: 115814ms
2026-04-02 16:29:48.253 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化所有Lx相机数量: 1
2026-04-02 16:29:48.255 [main] WARN [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - DLL文件已存在跳过复制: D:\git\测试\lxCameraApi\libs\plc\LxCameraApi-1.dll
2026-04-02 16:29:48.294 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化设备: SN=192.168.100.82, Type=1
2026-04-02 16:29:49.125 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 初始化成功
2026-04-02 16:29:49.125 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备详细信息:
2026-04-02 16:29:49.125 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备类型: 1005
2026-04-02 16:29:49.125 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - ID: F83B51129860
2026-04-02 16:29:49.125 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - IP: 192.168.100.82:3956
2026-04-02 16:29:49.125 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - SN: 04C8BF8A094B12F3
2026-04-02 16:29:49.125 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - MAC: fa:7e:64:c8:27:97
2026-04-02 16:29:49.125 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 固件版本: V1.1.26_231031
2026-04-02 16:29:49.125 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 算法版本: 1.1.5,20231025
2026-04-02 16:29:49.125 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备名称: camera_M4_192.168.100.82_3956
2026-04-02 16:29:50.055 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 流启动成功
2026-04-02 16:29:50.149 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 命令码设置成功5001
2026-04-02 16:29:50.149 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 初始化成功
2026-04-02 16:29:50.149 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 所有Lx相机初始化完成成功: 1
2026-04-02 16:29:50.407 [main] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageCropper] - ImageCropper 初始化完成
2026-04-02 16:30:26.584 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 开始拍照,配置: CaptureConfig(captureAmplitude=false, captureRgb=false, captureDepth=false, captureDepthColor=false, capturePointCloud=true, maxConnectRetries=3, maxCaptureRetries=3, retryInterval=500, maxDepthValue=1000.0, colormapType=0)
2026-04-02 16:30:26.591 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照尝试
2026-04-02 16:30:26.593 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 设置命令码结果: 25
2026-04-02 16:30:27.611 [http-nio-8097-exec-1] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageSaver] - 点云保存: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_163026.pcd, 结果: 0
2026-04-02 16:30:27.611 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 点云保存成功: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_163026.pcd
2026-04-02 16:30:27.611 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照成功,保存文件数: 1
2026-04-02 16:30:27.611 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 收到计算箱子数量请求: pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_163026.pcd, floorHeight=null, boxSize=137.0x137.0x250.0
2026-04-02 16:30:27.611 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 开始计算箱子数量: BoxCountRequest(cameraId=null, cameraCalibratePath=D://data/cj.json, pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_163026.pcd, floorHeight=null, boxLength=137.0, boxWidth=137.0, boxHeight=250.0, stackType=null, maxBoxesPerLayer=8, baseTolerance=null, additionalTolerancePerLevel=null, minBounds=null, maxBounds=null)
2026-04-02 16:30:27.963 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 成功读取PCD文件点数: 257840
2026-04-02 16:30:31.824 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 过滤后的点云层数: 2
2026-04-02 16:32:23.078 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 每层最大箱子数: 8
2026-04-02 16:32:25.339 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 计算完成,总箱子数: 0, 用时: 117728ms
2026-04-02 16:32:25.341 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 箱子数量计算完成: 成功 - 总箱子数: 0, 层数: 0, 最高层: 0, 用时: 117728ms
2026-04-02 16:32:29.929 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 开始拍照,配置: CaptureConfig(captureAmplitude=false, captureRgb=false, captureDepth=false, captureDepthColor=false, capturePointCloud=true, maxConnectRetries=3, maxCaptureRetries=3, retryInterval=500, maxDepthValue=1000.0, colormapType=0)
2026-04-02 16:32:29.929 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照尝试
2026-04-02 16:32:29.931 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 设置命令码结果: 25
2026-04-02 16:32:30.755 [http-nio-8097-exec-2] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageSaver] - 点云保存: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_163229.pcd, 结果: 0
2026-04-02 16:32:30.755 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 点云保存成功: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_163229.pcd
2026-04-02 16:32:30.755 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照成功,保存文件数: 1
2026-04-02 16:32:30.755 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 收到计算箱子数量请求: pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_163229.pcd, floorHeight=null, boxSize=137.0x137.0x250.0
2026-04-02 16:32:30.756 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 开始计算箱子数量: BoxCountRequest(cameraId=null, cameraCalibratePath=D://data/cj.json, pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_163229.pcd, floorHeight=null, boxLength=137.0, boxWidth=137.0, boxHeight=250.0, stackType=null, maxBoxesPerLayer=8, baseTolerance=null, additionalTolerancePerLevel=null, minBounds=null, maxBounds=null)
2026-04-02 16:32:31.105 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 成功读取PCD文件点数: 257338
2026-04-02 17:19:15.046 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 过滤后的点云层数: 2
2026-04-02 17:19:15.048 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 每层最大箱子数: 8
2026-04-02 17:19:15.100 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 计算完成,总箱子数: 0, 用时: 2804344ms
2026-04-02 17:19:15.100 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 箱子数量计算完成: 成功 - 总箱子数: 0, 层数: 0, 最高层: 0, 用时: 2804344ms
2026-04-02 17:19:32.052 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 开始拍照,配置: CaptureConfig(captureAmplitude=false, captureRgb=false, captureDepth=false, captureDepthColor=false, capturePointCloud=true, maxConnectRetries=3, maxCaptureRetries=3, retryInterval=500, maxDepthValue=1000.0, colormapType=0)
2026-04-02 17:19:32.053 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照尝试
2026-04-02 17:19:32.057 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 设置命令码结果: 25
2026-04-02 17:19:32.793 [http-nio-8097-exec-3] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageSaver] - 点云保存: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_171932.pcd, 结果: 0
2026-04-02 17:19:32.793 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 点云保存成功: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_171932.pcd
2026-04-02 17:19:32.793 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照成功,保存文件数: 1
2026-04-02 17:19:32.793 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 收到计算箱子数量请求: pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_171932.pcd, floorHeight=null, boxSize=137.0x137.0x250.0
2026-04-02 17:19:32.793 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 开始计算箱子数量: BoxCountRequest(cameraId=null, cameraCalibratePath=D://data/cj.json, pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_171932.pcd, floorHeight=null, boxLength=137.0, boxWidth=137.0, boxHeight=250.0, stackType=null, maxBoxesPerLayer=8, baseTolerance=null, additionalTolerancePerLevel=null, minBounds=null, maxBounds=null)
2026-04-02 17:19:33.280 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 成功读取PCD文件点数: 256464
2026-04-02 17:28:18.544 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 过滤后的点云层数: 4
2026-04-02 17:28:18.544 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 每层最大箱子数: 8
2026-04-02 17:28:18.586 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 第 4 层面积: 43820.381172192654 mm², 点数: 8043
2026-04-02 17:28:18.586 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 第 4 层箱子数: 2
2026-04-02 17:28:18.636 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 计算完成,总箱子数: 2, 用时: 525843ms
2026-04-02 17:28:18.636 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 箱子数量计算完成: 成功 - 总箱子数: 2, 层数: 1, 最高层: 4, 用时: 525843ms
2026-04-02 17:35:35.032 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化所有Lx相机数量: 1
2026-04-02 17:35:35.034 [main] WARN [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - DLL文件已存在跳过复制: D:\git\测试\lxCameraApi\libs\plc\LxCameraApi-1.dll
2026-04-02 17:35:35.084 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化设备: SN=192.168.100.82, Type=1
2026-04-02 17:35:35.868 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 初始化成功
2026-04-02 17:35:35.869 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备详细信息:
2026-04-02 17:35:35.869 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备类型: 1005
2026-04-02 17:35:35.869 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - ID: F83B51129860
2026-04-02 17:35:35.869 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - IP: 192.168.100.82:3956
2026-04-02 17:35:35.869 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - SN: 04C8BF8A094B12F3
2026-04-02 17:35:35.869 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - MAC: fa:7e:64:c8:27:97
2026-04-02 17:35:35.869 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 固件版本: V1.1.26_231031
2026-04-02 17:35:35.869 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 算法版本: 1.1.5,20231025
2026-04-02 17:35:35.869 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备名称: camera_M4_192.168.100.82_3956
2026-04-02 17:35:36.789 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 流启动成功
2026-04-02 17:35:36.867 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 命令码设置成功5001
2026-04-02 17:35:36.868 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 初始化成功
2026-04-02 17:35:36.868 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 所有Lx相机初始化完成成功: 1
2026-04-02 17:35:37.201 [main] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageCropper] - ImageCropper 初始化完成
2026-04-02 17:37:31.662 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 开始拍照,配置: CaptureConfig(captureAmplitude=false, captureRgb=false, captureDepth=false, captureDepthColor=false, capturePointCloud=true, maxConnectRetries=3, maxCaptureRetries=3, retryInterval=500, maxDepthValue=1000.0, colormapType=0)
2026-04-02 17:37:31.667 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照尝试
2026-04-02 17:37:31.670 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 设置命令码结果: 25
2026-04-02 17:37:32.446 [http-nio-8097-exec-1] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageSaver] - 点云保存: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_173731.pcd, 结果: 0
2026-04-02 17:37:32.446 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 点云保存成功: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_173731.pcd
2026-04-02 17:37:32.446 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照成功,保存文件数: 1
2026-04-02 17:37:32.447 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 收到计算箱子数量请求: pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_173731.pcd, floorHeight=null, boxSize=155.0x155.0x250.0
2026-04-02 17:37:32.447 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 开始计算箱子数量: BoxCountRequest(cameraId=null, cameraCalibratePath=D://data/cj.json, pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_173731.pcd, floorHeight=null, boxLength=155.0, boxWidth=155.0, boxHeight=250.0, stackType=null, maxBoxesPerLayer=8, baseTolerance=null, additionalTolerancePerLevel=null, minBounds=null, maxBounds=null)
2026-04-02 17:37:33.056 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 成功读取PCD文件点数: 255691
2026-04-02 17:41:48.826 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 过滤后的点云层数: 2
2026-04-02 17:41:48.827 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 每层最大箱子数: 8
2026-04-02 17:41:48.961 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 计算完成,总箱子数: 0, 用时: 256514ms
2026-04-02 17:41:48.962 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 箱子数量计算完成: 成功 - 总箱子数: 0, 层数: 0, 最高层: 0, 用时: 256514ms
2026-04-02 17:41:59.230 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化所有Lx相机数量: 1
2026-04-02 17:41:59.232 [main] WARN [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - DLL文件已存在跳过复制: D:\git\测试\lxCameraApi\libs\plc\LxCameraApi-1.dll
2026-04-02 17:41:59.273 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化设备: SN=192.168.100.82, Type=1
2026-04-02 17:42:00.133 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 初始化成功
2026-04-02 17:42:00.133 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备详细信息:
2026-04-02 17:42:00.133 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备类型: 1005
2026-04-02 17:42:00.133 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - ID: F83B51129860
2026-04-02 17:42:00.133 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - IP: 192.168.100.82:3956
2026-04-02 17:42:00.133 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - SN: 04C8BF8A094B12F3
2026-04-02 17:42:00.133 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - MAC: fa:7e:64:c8:27:97
2026-04-02 17:42:00.133 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 固件版本: V1.1.26_231031
2026-04-02 17:42:00.133 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 算法版本: 1.1.5,20231025
2026-04-02 17:42:00.133 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备名称: camera_M4_192.168.100.82_3956
2026-04-02 17:42:01.056 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 流启动成功
2026-04-02 17:42:01.089 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 命令码设置成功5001
2026-04-02 17:42:01.090 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 初始化成功
2026-04-02 17:42:01.090 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 所有Lx相机初始化完成成功: 1
2026-04-02 17:42:01.348 [main] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageCropper] - ImageCropper 初始化完成
2026-04-02 17:42:18.764 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 开始拍照,配置: CaptureConfig(captureAmplitude=false, captureRgb=false, captureDepth=false, captureDepthColor=false, capturePointCloud=true, maxConnectRetries=3, maxCaptureRetries=3, retryInterval=500, maxDepthValue=1000.0, colormapType=0)
2026-04-02 17:42:18.768 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照尝试
2026-04-02 17:42:18.771 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 设置命令码结果: 25
2026-04-02 17:42:19.554 [http-nio-8097-exec-1] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageSaver] - 点云保存: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_174218.pcd, 结果: 0
2026-04-02 17:42:19.554 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 点云保存成功: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_174218.pcd
2026-04-02 17:42:19.554 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照成功,保存文件数: 1
2026-04-02 17:42:19.554 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 收到计算箱子数量请求: pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_174218.pcd, floorHeight=null, boxSize=155.0x155.0x250.0
2026-04-02 17:42:19.554 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 开始计算箱子数量: BoxCountRequest(cameraId=null, cameraCalibratePath=D://data/cj.json, pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_174218.pcd, floorHeight=null, boxLength=155.0, boxWidth=155.0, boxHeight=250.0, stackType=null, maxBoxesPerLayer=8, baseTolerance=null, additionalTolerancePerLevel=null, minBounds=null, maxBounds=null)
2026-04-02 17:42:19.904 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 成功读取PCD文件点数: 256833
2026-04-02 17:42:23.764 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 过滤后的点云层数: 2
2026-04-02 17:42:23.764 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 每层最大箱子数: 8
2026-04-02 17:42:23.851 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 计算完成,总箱子数: 0, 用时: 4297ms
2026-04-02 17:42:23.852 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 箱子数量计算完成: 成功 - 总箱子数: 0, 层数: 0, 最高层: 0, 用时: 4297ms
2026-04-02 17:45:12.634 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化所有Lx相机数量: 1
2026-04-02 17:45:12.636 [main] WARN [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - DLL文件已存在跳过复制: D:\git\测试\lxCameraApi\libs\plc\LxCameraApi-1.dll
2026-04-02 17:45:12.677 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化设备: SN=192.168.100.82, Type=1
2026-04-02 17:45:13.501 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 初始化成功
2026-04-02 17:45:13.501 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备详细信息:
2026-04-02 17:45:13.501 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备类型: 1005
2026-04-02 17:45:13.501 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - ID: F83B51129860
2026-04-02 17:45:13.501 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - IP: 192.168.100.82:3956
2026-04-02 17:45:13.501 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - SN: 04C8BF8A094B12F3
2026-04-02 17:45:13.501 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - MAC: fa:7e:64:c8:27:97
2026-04-02 17:45:13.502 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 固件版本: V1.1.26_231031
2026-04-02 17:45:13.502 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 算法版本: 1.1.5,20231025
2026-04-02 17:45:13.502 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备名称: camera_M4_192.168.100.82_3956
2026-04-02 17:45:14.424 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 流启动成功
2026-04-02 17:45:14.456 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 命令码设置成功5001
2026-04-02 17:45:14.456 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 初始化成功
2026-04-02 17:45:14.456 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 所有Lx相机初始化完成成功: 1
2026-04-02 17:45:14.703 [main] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageCropper] - ImageCropper 初始化完成
2026-04-02 17:45:30.219 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 开始拍照,配置: CaptureConfig(captureAmplitude=false, captureRgb=false, captureDepth=false, captureDepthColor=false, capturePointCloud=true, maxConnectRetries=3, maxCaptureRetries=3, retryInterval=500, maxDepthValue=1000.0, colormapType=0)
2026-04-02 17:45:30.225 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照尝试
2026-04-02 17:45:30.227 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 设置命令码结果: 25
2026-04-02 17:45:30.931 [http-nio-8097-exec-1] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageSaver] - 点云保存: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_174530.pcd, 结果: 0
2026-04-02 17:45:30.932 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 点云保存成功: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_174530.pcd
2026-04-02 17:45:30.932 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照成功,保存文件数: 1
2026-04-02 17:45:30.932 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 收到计算箱子数量请求: pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_174530.pcd, floorHeight=null, boxSize=155.0x155.0x250.0
2026-04-02 17:45:30.932 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 开始计算箱子数量: BoxCountRequest(cameraId=null, cameraCalibratePath=D://data/cj.json, pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_174530.pcd, floorHeight=null, boxLength=155.0, boxWidth=155.0, boxHeight=250.0, stackType=null, maxBoxesPerLayer=8, baseTolerance=null, additionalTolerancePerLevel=null, minBounds=null, maxBounds=null)
2026-04-02 17:45:31.530 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 成功读取PCD文件点数: 256190
2026-04-02 17:45:42.510 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 过滤后的点云层数: 2
2026-04-02 17:45:42.510 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 每层最大箱子数: 8
2026-04-02 17:45:42.598 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 计算完成,总箱子数: 0, 用时: 11666ms
2026-04-02 17:45:42.598 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 箱子数量计算完成: 成功 - 总箱子数: 0, 层数: 0, 最高层: 0, 用时: 11666ms
2026-04-02 17:48:23.425 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 开始拍照,配置: CaptureConfig(captureAmplitude=false, captureRgb=false, captureDepth=false, captureDepthColor=false, capturePointCloud=true, maxConnectRetries=3, maxCaptureRetries=3, retryInterval=500, maxDepthValue=1000.0, colormapType=0)
2026-04-02 17:48:23.425 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照尝试
2026-04-02 17:48:23.427 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 设置命令码结果: 25
2026-04-02 17:48:24.183 [http-nio-8097-exec-3] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageSaver] - 点云保存: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_174823.pcd, 结果: 0
2026-04-02 17:48:24.184 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 点云保存成功: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_174823.pcd
2026-04-02 17:48:24.184 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照成功,保存文件数: 1
2026-04-02 17:48:24.184 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 收到计算箱子数量请求: pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_174823.pcd, floorHeight=null, boxSize=155.0x155.0x250.0
2026-04-02 17:48:24.184 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 开始计算箱子数量: BoxCountRequest(cameraId=null, cameraCalibratePath=D://data/cj.json, pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_174823.pcd, floorHeight=null, boxLength=155.0, boxWidth=155.0, boxHeight=250.0, stackType=null, maxBoxesPerLayer=8, baseTolerance=null, additionalTolerancePerLevel=null, minBounds=null, maxBounds=null)
2026-04-02 17:48:24.535 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 成功读取PCD文件点数: 256676
2026-04-02 17:51:05.442 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 过滤后的点云层数: 2
2026-04-02 17:51:05.442 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 每层最大箱子数: 8
2026-04-02 17:51:05.497 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 计算完成,总箱子数: 0, 用时: 161313ms
2026-04-02 17:51:05.497 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 箱子数量计算完成: 成功 - 总箱子数: 0, 层数: 0, 最高层: 0, 用时: 161313ms
2026-04-02 17:51:15.621 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化所有Lx相机数量: 1
2026-04-02 17:51:15.624 [main] WARN [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - DLL文件已存在跳过复制: D:\git\测试\lxCameraApi\libs\plc\LxCameraApi-1.dll
2026-04-02 17:51:15.667 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化设备: SN=192.168.100.82, Type=1
2026-04-02 17:51:16.487 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 初始化成功
2026-04-02 17:51:16.487 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备详细信息:
2026-04-02 17:51:16.487 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备类型: 1005
2026-04-02 17:51:16.487 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - ID: F83B51129860
2026-04-02 17:51:16.487 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - IP: 192.168.100.82:3956
2026-04-02 17:51:16.487 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - SN: 04C8BF8A094B12F3
2026-04-02 17:51:16.487 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - MAC: fa:7e:64:c8:27:97
2026-04-02 17:51:16.487 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 固件版本: V1.1.26_231031
2026-04-02 17:51:16.487 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 算法版本: 1.1.5,20231025
2026-04-02 17:51:16.487 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备名称: camera_M4_192.168.100.82_3956
2026-04-02 17:51:17.416 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 流启动成功
2026-04-02 17:51:17.463 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 命令码设置成功5001
2026-04-02 17:51:17.463 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 初始化成功
2026-04-02 17:51:17.463 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 所有Lx相机初始化完成成功: 1
2026-04-02 17:51:17.795 [main] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageCropper] - ImageCropper 初始化完成
2026-04-02 17:51:20.237 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 开始拍照,配置: CaptureConfig(captureAmplitude=false, captureRgb=false, captureDepth=false, captureDepthColor=false, capturePointCloud=true, maxConnectRetries=3, maxCaptureRetries=3, retryInterval=500, maxDepthValue=1000.0, colormapType=0)
2026-04-02 17:51:20.243 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照尝试
2026-04-02 17:51:20.246 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 设置命令码结果: 25
2026-04-02 17:51:20.956 [http-nio-8097-exec-1] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageSaver] - 点云保存: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_175120.pcd, 结果: 0
2026-04-02 17:51:20.957 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 点云保存成功: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_175120.pcd
2026-04-02 17:51:20.957 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照成功,保存文件数: 1
2026-04-02 17:51:20.957 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 收到计算箱子数量请求: pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_175120.pcd, floorHeight=null, boxSize=155.0x155.0x250.0
2026-04-02 17:51:20.958 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 开始计算箱子数量: BoxCountRequest(cameraId=null, cameraCalibratePath=D://data/cj.json, pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_175120.pcd, floorHeight=null, boxLength=155.0, boxWidth=155.0, boxHeight=250.0, stackType=null, maxBoxesPerLayer=8, baseTolerance=null, additionalTolerancePerLevel=null, minBounds=null, maxBounds=null)
2026-04-02 17:51:21.348 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 成功读取PCD文件点数: 256866
2026-04-02 17:53:04.761 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 过滤后的点云层数: 2
2026-04-02 17:53:04.761 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 每层最大箱子数: 8
2026-04-02 17:53:04.861 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 计算完成,总箱子数: 0, 用时: 103903ms
2026-04-02 17:53:04.862 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 箱子数量计算完成: 成功 - 总箱子数: 0, 层数: 0, 最高层: 0, 用时: 103903ms
2026-04-02 17:53:11.872 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化所有Lx相机数量: 1
2026-04-02 17:53:11.873 [main] WARN [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - DLL文件已存在跳过复制: D:\git\测试\lxCameraApi\libs\plc\LxCameraApi-1.dll
2026-04-02 17:53:11.907 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化设备: SN=192.168.100.82, Type=1
2026-04-02 17:53:12.694 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 初始化成功
2026-04-02 17:53:12.694 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备详细信息:
2026-04-02 17:53:12.694 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备类型: 1005
2026-04-02 17:53:12.694 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - ID: F83B51129860
2026-04-02 17:53:12.694 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - IP: 192.168.100.82:3956
2026-04-02 17:53:12.694 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - SN: 04C8BF8A094B12F3
2026-04-02 17:53:12.694 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - MAC: fa:7e:64:c8:27:97
2026-04-02 17:53:12.694 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 固件版本: V1.1.26_231031
2026-04-02 17:53:12.694 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 算法版本: 1.1.5,20231025
2026-04-02 17:53:12.694 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备名称: camera_M4_192.168.100.82_3956
2026-04-02 17:53:13.628 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 流启动成功
2026-04-02 17:53:13.674 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 命令码设置成功5001
2026-04-02 17:53:13.674 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 初始化成功
2026-04-02 17:53:13.674 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 所有Lx相机初始化完成成功: 1
2026-04-02 17:53:13.908 [main] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageCropper] - ImageCropper 初始化完成
2026-04-02 17:53:24.095 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 开始拍照,配置: CaptureConfig(captureAmplitude=false, captureRgb=false, captureDepth=false, captureDepthColor=false, capturePointCloud=true, maxConnectRetries=3, maxCaptureRetries=3, retryInterval=500, maxDepthValue=1000.0, colormapType=0)
2026-04-02 17:53:24.101 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照尝试
2026-04-02 17:53:24.104 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 设置命令码结果: 25
2026-04-02 17:53:24.775 [http-nio-8097-exec-1] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageSaver] - 点云保存: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_175324.pcd, 结果: 0
2026-04-02 17:53:24.776 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 点云保存成功: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_175324.pcd
2026-04-02 17:53:24.776 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照成功,保存文件数: 1
2026-04-02 17:53:24.776 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 收到计算箱子数量请求: pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_175324.pcd, floorHeight=null, boxSize=155.0x155.0x250.0
2026-04-02 17:53:24.776 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 开始计算箱子数量: BoxCountRequest(cameraId=null, cameraCalibratePath=D://data/cj.json, pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_175324.pcd, floorHeight=null, boxLength=155.0, boxWidth=155.0, boxHeight=250.0, stackType=null, maxBoxesPerLayer=8, baseTolerance=null, additionalTolerancePerLevel=null, minBounds=null, maxBounds=null)
2026-04-02 17:53:25.110 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 成功读取PCD文件点数: 256887
2026-04-02 17:53:33.584 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 过滤后的点云层数: 2
2026-04-02 17:53:33.584 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 每层最大箱子数: 8
2026-04-02 17:53:33.672 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 第 1 层面积: 139086.9098094039 mm², 点数: 21583
2026-04-02 17:53:33.672 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 第 1 层箱子数: 6
2026-04-02 17:53:33.718 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 第 0 层面积: 127549.18534573267 mm², 点数: 12053
2026-04-02 17:53:33.719 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 第 0 层箱子数: 5
2026-04-02 17:53:33.719 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 计算完成,总箱子数: 11, 用时: 8943ms
2026-04-02 17:53:33.719 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 箱子数量计算完成: 成功 - 总箱子数: 11, 层数: 2, 最高层: 1, 用时: 8943ms
2026-04-02 17:55:43.796 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化所有Lx相机数量: 1
2026-04-02 17:55:43.797 [main] WARN [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - DLL文件已存在跳过复制: D:\git\测试\lxCameraApi\libs\plc\LxCameraApi-1.dll
2026-04-02 17:55:43.835 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化设备: SN=192.168.100.82, Type=1
2026-04-02 17:55:44.638 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 初始化成功
2026-04-02 17:55:44.638 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备详细信息:
2026-04-02 17:55:44.638 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备类型: 1005
2026-04-02 17:55:44.638 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - ID: F83B51129860
2026-04-02 17:55:44.638 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - IP: 192.168.100.82:3956
2026-04-02 17:55:44.639 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - SN: 04C8BF8A094B12F3
2026-04-02 17:55:44.639 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - MAC: fa:7e:64:c8:27:97
2026-04-02 17:55:44.639 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 固件版本: V1.1.26_231031
2026-04-02 17:55:44.639 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 算法版本: 1.1.5,20231025
2026-04-02 17:55:44.639 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备名称: camera_M4_192.168.100.82_3956
2026-04-02 17:55:45.564 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 流启动成功
2026-04-02 17:55:45.612 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 命令码设置成功5001
2026-04-02 17:55:45.612 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 初始化成功
2026-04-02 17:55:45.612 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 所有Lx相机初始化完成成功: 1
2026-04-02 17:55:45.852 [main] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageCropper] - ImageCropper 初始化完成
2026-04-02 17:55:50.864 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 开始拍照,配置: CaptureConfig(captureAmplitude=false, captureRgb=false, captureDepth=false, captureDepthColor=false, capturePointCloud=true, maxConnectRetries=3, maxCaptureRetries=3, retryInterval=500, maxDepthValue=1000.0, colormapType=0)
2026-04-02 17:55:50.870 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照尝试
2026-04-02 17:55:50.872 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 设置命令码结果: 25
2026-04-02 17:55:51.669 [http-nio-8097-exec-1] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageSaver] - 点云保存: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_175550.pcd, 结果: 0
2026-04-02 17:55:51.669 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 点云保存成功: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_175550.pcd
2026-04-02 17:55:51.669 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照成功,保存文件数: 1
2026-04-02 17:55:51.669 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 收到计算箱子数量请求: pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_175550.pcd, floorHeight=null, boxSize=155.0x155.0x250.0
2026-04-02 17:55:51.669 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 开始计算箱子数量: BoxCountRequest(cameraId=null, cameraCalibratePath=D://data/cj.json, pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_175550.pcd, floorHeight=null, boxLength=155.0, boxWidth=155.0, boxHeight=250.0, stackType=null, maxBoxesPerLayer=8, baseTolerance=null, additionalTolerancePerLevel=null, minBounds=null, maxBounds=null)
2026-04-02 17:55:51.992 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 成功读取PCD文件点数: 257139
2026-04-02 17:55:52.032 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 过滤后的点云层数: 2
2026-04-02 17:55:52.032 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 每层最大箱子数: 8
2026-04-02 17:55:52.120 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 第 1 层面积: 140139.42094244948 mm², 点数: 21600
2026-04-02 17:55:52.120 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 第 1 层箱子数: 6
2026-04-02 17:55:52.120 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 计算完成,总箱子数: 6, 用时: 451ms
2026-04-02 17:55:52.121 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 箱子数量计算完成: 成功 - 总箱子数: 6, 层数: 1, 最高层: 1, 用时: 451ms
2026-04-02 18:03:44.509 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化所有Lx相机数量: 1
2026-04-02 18:03:44.510 [main] WARN [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - DLL文件已存在跳过复制: D:\git\测试\lxCameraApi\libs\plc\LxCameraApi-1.dll
2026-04-02 18:03:44.548 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化设备: SN=192.168.100.82, Type=1
2026-04-02 18:03:45.341 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 初始化成功
2026-04-02 18:03:45.341 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备详细信息:
2026-04-02 18:03:45.341 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备类型: 1005
2026-04-02 18:03:45.341 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - ID: F83B51129860
2026-04-02 18:03:45.341 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - IP: 192.168.100.82:3956
2026-04-02 18:03:45.341 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - SN: 04C8BF8A094B12F3
2026-04-02 18:03:45.341 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - MAC: fa:7e:64:c8:27:97
2026-04-02 18:03:45.341 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 固件版本: V1.1.26_231031
2026-04-02 18:03:45.342 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 算法版本: 1.1.5,20231025
2026-04-02 18:03:45.342 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备名称: camera_M4_192.168.100.82_3956
2026-04-02 18:03:46.266 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 流启动成功
2026-04-02 18:03:46.297 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 命令码设置成功5001
2026-04-02 18:03:46.297 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 初始化成功
2026-04-02 18:03:46.297 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 所有Lx相机初始化完成成功: 1
2026-04-02 18:03:46.548 [main] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageCropper] - ImageCropper 初始化完成
2026-04-02 18:03:56.328 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 开始拍照,配置: CaptureConfig(captureAmplitude=false, captureRgb=false, captureDepth=false, captureDepthColor=false, capturePointCloud=true, maxConnectRetries=3, maxCaptureRetries=3, retryInterval=500, maxDepthValue=1000.0, colormapType=0)
2026-04-02 18:03:56.333 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照尝试
2026-04-02 18:03:56.336 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 设置命令码结果: 25
2026-04-02 18:03:57.196 [http-nio-8097-exec-1] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageSaver] - 点云保存: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_180356.pcd, 结果: 0
2026-04-02 18:03:57.197 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 点云保存成功: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_180356.pcd
2026-04-02 18:03:57.197 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照成功,保存文件数: 1
2026-04-02 18:03:57.197 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 收到计算箱子数量请求: pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_180356.pcd, floorHeight=null, boxSize=155.0x155.0x250.0
2026-04-02 18:03:57.198 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 开始计算箱子数量: BoxCountRequest(cameraId=null, cameraCalibratePath=D://data/cj.json, pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_180356.pcd, floorHeight=null, boxLength=155.0, boxWidth=155.0, boxHeight=250.0, stackType=null, maxBoxesPerLayer=8, baseTolerance=null, additionalTolerancePerLevel=null, minBounds=null, maxBounds=null)
2026-04-02 18:03:57.549 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 成功读取PCD文件点数: 256502
2026-04-02 18:03:57.561 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 过滤后的点云层数: 2
2026-04-02 18:03:57.561 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 每层最大箱子数: 8
2026-04-02 18:03:57.883 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 计算完成,总箱子数: 0, 用时: 685ms
2026-04-02 18:03:57.884 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 箱子数量计算完成: 成功 - 总箱子数: 0, 层数: 0, 最高层: 0, 用时: 685ms
2026-04-02 18:04:41.343 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 开始拍照,配置: CaptureConfig(captureAmplitude=false, captureRgb=false, captureDepth=false, captureDepthColor=false, capturePointCloud=true, maxConnectRetries=3, maxCaptureRetries=3, retryInterval=500, maxDepthValue=1000.0, colormapType=0)
2026-04-02 18:04:41.343 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照尝试
2026-04-02 18:04:41.344 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 设置命令码结果: 25
2026-04-02 18:04:42.215 [http-nio-8097-exec-2] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageSaver] - 点云保存: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_180441.pcd, 结果: 0
2026-04-02 18:04:42.217 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 点云保存成功: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_180441.pcd
2026-04-02 18:04:42.217 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照成功,保存文件数: 1
2026-04-02 18:04:42.217 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 收到计算箱子数量请求: pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_180441.pcd, floorHeight=null, boxSize=155.0x155.0x250.0
2026-04-02 18:04:42.217 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 开始计算箱子数量: BoxCountRequest(cameraId=null, cameraCalibratePath=D://data/cj.json, pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_180441.pcd, floorHeight=null, boxLength=155.0, boxWidth=155.0, boxHeight=250.0, stackType=null, maxBoxesPerLayer=8, baseTolerance=null, additionalTolerancePerLevel=null, minBounds=null, maxBounds=null)
2026-04-02 18:04:42.509 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 成功读取PCD文件点数: 257144
2026-04-02 18:04:42.516 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 过滤后的点云层数: 2
2026-04-02 18:04:42.516 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 每层最大箱子数: 8
2026-04-02 18:05:03.124 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 计算完成,总箱子数: 0, 用时: 20907ms
2026-04-02 18:05:03.125 [http-nio-8097-exec-2] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 箱子数量计算完成: 成功 - 总箱子数: 0, 层数: 0, 最高层: 0, 用时: 20907ms
2026-04-02 18:05:34.425 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 开始拍照,配置: CaptureConfig(captureAmplitude=false, captureRgb=false, captureDepth=false, captureDepthColor=false, capturePointCloud=true, maxConnectRetries=3, maxCaptureRetries=3, retryInterval=500, maxDepthValue=1000.0, colormapType=0)
2026-04-02 18:05:34.425 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照尝试
2026-04-02 18:05:34.426 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 设置命令码结果: 25
2026-04-02 18:05:35.171 [http-nio-8097-exec-3] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageSaver] - 点云保存: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_180534.pcd, 结果: 0
2026-04-02 18:05:35.171 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 点云保存成功: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_180534.pcd
2026-04-02 18:05:35.171 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照成功,保存文件数: 1
2026-04-02 18:05:35.171 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 收到计算箱子数量请求: pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_180534.pcd, floorHeight=null, boxSize=155.0x155.0x250.0
2026-04-02 18:05:35.171 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 开始计算箱子数量: BoxCountRequest(cameraId=null, cameraCalibratePath=D://data/cj.json, pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_180534.pcd, floorHeight=null, boxLength=155.0, boxWidth=155.0, boxHeight=250.0, stackType=null, maxBoxesPerLayer=8, baseTolerance=null, additionalTolerancePerLevel=null, minBounds=null, maxBounds=null)
2026-04-02 18:05:35.441 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 成功读取PCD文件点数: 257155
2026-04-02 18:05:35.447 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 过滤后的点云层数: 2
2026-04-02 18:05:35.448 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 每层最大箱子数: 8
2026-04-02 18:06:57.411 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 计算完成,总箱子数: 0, 用时: 82240ms
2026-04-02 18:06:57.411 [http-nio-8097-exec-3] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 箱子数量计算完成: 成功 - 总箱子数: 0, 层数: 0, 最高层: 0, 用时: 82240ms
2026-04-02 18:07:02.107 [http-nio-8097-exec-4] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 开始拍照,配置: CaptureConfig(captureAmplitude=false, captureRgb=false, captureDepth=false, captureDepthColor=false, capturePointCloud=true, maxConnectRetries=3, maxCaptureRetries=3, retryInterval=500, maxDepthValue=1000.0, colormapType=0)
2026-04-02 18:07:02.107 [http-nio-8097-exec-4] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照尝试
2026-04-02 18:07:02.109 [http-nio-8097-exec-4] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 设置命令码结果: 25
2026-04-02 18:07:02.870 [http-nio-8097-exec-4] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageSaver] - 点云保存: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_180702.pcd, 结果: 0
2026-04-02 18:07:02.870 [http-nio-8097-exec-4] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 点云保存成功: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_180702.pcd
2026-04-02 18:07:02.871 [http-nio-8097-exec-4] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照成功,保存文件数: 1
2026-04-02 18:07:02.871 [http-nio-8097-exec-4] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 收到计算箱子数量请求: pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_180702.pcd, floorHeight=null, boxSize=155.0x155.0x250.0
2026-04-02 18:07:02.871 [http-nio-8097-exec-4] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 开始计算箱子数量: BoxCountRequest(cameraId=null, cameraCalibratePath=D://data/cj.json, pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_180702.pcd, floorHeight=null, boxLength=155.0, boxWidth=155.0, boxHeight=250.0, stackType=null, maxBoxesPerLayer=8, baseTolerance=null, additionalTolerancePerLevel=null, minBounds=null, maxBounds=null)
2026-04-02 18:07:03.136 [http-nio-8097-exec-4] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 成功读取PCD文件点数: 257069
2026-04-02 18:07:03.143 [http-nio-8097-exec-4] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 过滤后的点云层数: 2
2026-04-02 18:07:03.144 [http-nio-8097-exec-4] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 每层最大箱子数: 8
2026-04-02 18:08:13.086 [http-nio-8097-exec-4] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 计算完成,总箱子数: 0, 用时: 70215ms
2026-04-02 18:08:13.086 [http-nio-8097-exec-4] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 箱子数量计算完成: 成功 - 总箱子数: 0, 层数: 0, 最高层: 0, 用时: 70215ms
2026-04-02 18:08:21.303 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化所有Lx相机数量: 1
2026-04-02 18:08:21.304 [main] WARN [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - DLL文件已存在跳过复制: D:\git\测试\lxCameraApi\libs\plc\LxCameraApi-1.dll
2026-04-02 18:08:21.339 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化设备: SN=192.168.100.82, Type=1
2026-04-02 18:08:22.150 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 初始化成功
2026-04-02 18:08:22.150 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备详细信息:
2026-04-02 18:08:22.150 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备类型: 1005
2026-04-02 18:08:22.150 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - ID: F83B51129860
2026-04-02 18:08:22.150 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - IP: 192.168.100.82:3956
2026-04-02 18:08:22.150 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - SN: 04C8BF8A094B12F3
2026-04-02 18:08:22.150 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - MAC: fa:7e:64:c8:27:97
2026-04-02 18:08:22.150 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 固件版本: V1.1.26_231031
2026-04-02 18:08:22.150 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 算法版本: 1.1.5,20231025
2026-04-02 18:08:22.150 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备名称: camera_M4_192.168.100.82_3956
2026-04-02 18:08:23.074 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 流启动成功
2026-04-02 18:08:23.105 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 命令码设置成功5001
2026-04-02 18:08:23.106 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 初始化成功
2026-04-02 18:08:23.106 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 所有Lx相机初始化完成成功: 1
2026-04-02 18:08:23.341 [main] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageCropper] - ImageCropper 初始化完成
2026-04-02 18:08:27.856 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 开始拍照,配置: CaptureConfig(captureAmplitude=false, captureRgb=false, captureDepth=false, captureDepthColor=false, capturePointCloud=true, maxConnectRetries=3, maxCaptureRetries=3, retryInterval=500, maxDepthValue=1000.0, colormapType=0)
2026-04-02 18:08:27.864 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照尝试
2026-04-02 18:08:27.866 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 设置命令码结果: 25
2026-04-02 18:08:28.561 [http-nio-8097-exec-1] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageSaver] - 点云保存: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_180827.pcd, 结果: 0
2026-04-02 18:08:28.561 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 点云保存成功: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_180827.pcd
2026-04-02 18:08:28.561 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照成功,保存文件数: 1
2026-04-02 18:08:28.561 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 收到计算箱子数量请求: pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_180827.pcd, floorHeight=null, boxSize=155.0x155.0x250.0
2026-04-02 18:08:28.561 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 开始计算箱子数量: BoxCountRequest(cameraId=null, cameraCalibratePath=D://data/cj.json, pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_180827.pcd, floorHeight=null, boxLength=155.0, boxWidth=155.0, boxHeight=250.0, stackType=null, maxBoxesPerLayer=8, baseTolerance=null, additionalTolerancePerLevel=null, minBounds=null, maxBounds=null)
2026-04-02 18:08:28.982 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 成功读取PCD文件点数: 256362
2026-04-02 18:08:28.994 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 过滤后的点云层数: 2
2026-04-02 18:08:28.994 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 每层最大箱子数: 8
2026-04-02 18:09:28.044 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 计算完成,总箱子数: 0, 用时: 59483ms
2026-04-02 18:09:28.045 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 箱子数量计算完成: 成功 - 总箱子数: 0, 层数: 0, 最高层: 0, 用时: 59483ms
2026-04-02 18:11:57.560 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化所有Lx相机数量: 1
2026-04-02 18:11:57.561 [main] WARN [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - DLL文件已存在跳过复制: D:\git\测试\lxCameraApi\libs\plc\LxCameraApi-1.dll
2026-04-02 18:11:57.600 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 开始初始化设备: SN=192.168.100.82, Type=1
2026-04-02 18:11:58.396 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 初始化成功
2026-04-02 18:11:58.396 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备详细信息:
2026-04-02 18:11:58.396 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备类型: 1005
2026-04-02 18:11:58.396 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - ID: F83B51129860
2026-04-02 18:11:58.396 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - IP: 192.168.100.82:3956
2026-04-02 18:11:58.396 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - SN: 04C8BF8A094B12F3
2026-04-02 18:11:58.396 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - MAC: fa:7e:64:c8:27:97
2026-04-02 18:11:58.396 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 固件版本: V1.1.26_231031
2026-04-02 18:11:58.396 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 算法版本: 1.1.5,20231025
2026-04-02 18:11:58.396 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备名称: camera_M4_192.168.100.82_3956
2026-04-02 18:11:59.331 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 流启动成功
2026-04-02 18:11:59.346 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 设备 192.168.100.82 命令码设置成功5001
2026-04-02 18:11:59.347 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 初始化成功
2026-04-02 18:11:59.347 [main] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 所有Lx相机初始化完成成功: 1
2026-04-02 18:11:59.626 [main] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageCropper] - ImageCropper 初始化完成
2026-04-02 18:12:03.736 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 开始拍照,配置: CaptureConfig(captureAmplitude=false, captureRgb=false, captureDepth=false, captureDepthColor=false, capturePointCloud=true, maxConnectRetries=3, maxCaptureRetries=3, retryInterval=500, maxDepthValue=1000.0, colormapType=0)
2026-04-02 18:12:03.742 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照尝试
2026-04-02 18:12:03.744 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 设置命令码结果: 25
2026-04-02 18:12:04.434 [http-nio-8097-exec-1] INFO [c.e.l.s.IndustrialCamera.camera.lx.ImageSaver] - 点云保存: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_181203.pcd, 结果: 0
2026-04-02 18:12:04.434 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 点云保存成功: D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_181203.pcd
2026-04-02 18:12:04.434 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 相机 192.168.100.82 第 1 次拍照成功,保存文件数: 1
2026-04-02 18:12:04.434 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 收到计算箱子数量请求: pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_181203.pcd, floorHeight=null, boxSize=155.0x155.0x250.0
2026-04-02 18:12:04.435 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 开始计算箱子数量: BoxCountRequest(cameraId=null, cameraCalibratePath=D://data/cj.json, pcdFilePath=D:\data\/20260402/pointCloud/192.168.100.82_pointcloud_20260402_181203.pcd, floorHeight=null, boxLength=155.0, boxWidth=155.0, boxHeight=250.0, stackType=null, maxBoxesPerLayer=8, baseTolerance=null, additionalTolerancePerLevel=null, minBounds=null, maxBounds=null)
2026-04-02 18:12:04.803 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 成功读取PCD文件点数: 257068
2026-04-02 18:12:04.815 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 过滤后的点云层数: 2
2026-04-02 18:12:04.816 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 每层最大箱子数: 8
2026-04-02 18:12:04.980 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 第 1 层面积: 10216.0 mm², 点数: 21627
2026-04-02 18:12:05.049 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 第 0 层面积: 6545.0 mm², 点数: 7892
2026-04-02 18:12:05.049 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.BoxCountCalculator] - 计算完成,总箱子数: 0, 用时: 614ms
2026-04-02 18:12:05.050 [http-nio-8097-exec-1] INFO [c.e.l.s.I.camera.lx.LxCameraServiceImpl] - 箱子数量计算完成: 成功 - 总箱子数: 0, 层数: 0, 最高层: 0, 用时: 614ms

File diff suppressed because it is too large Load Diff

@ -1,2 +1,2 @@
2026-04-24 00:10:00.602 [scheduling-1] INFO [com.example.lxcameraapi.service.cron.CronTab] - corn delete file
2026-04-24 00:10:00.610 [scheduling-1] INFO [com.example.lxcameraapi.service.cron.CronTab] - free space :0
2026-05-12 00:10:00.167 [scheduling-1] INFO [com.example.lxcameraapi.service.cron.CronTab] - corn delete file
2026-05-12 00:10:00.173 [scheduling-1] INFO [com.example.lxcameraapi.service.cron.CronTab] - free space :0

@ -1,100 +0,0 @@
2026-03-20 14:46:26.727 [main] ERROR [org.springframework.boot.SpringApplication] - Application run failed
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file [D:\git\测试\lxCameraApi\target\classes\com\example\lxcameraapi\LxCameraApiApplication.class]; nested exception is org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet: file [D:\git\测试\lxCameraApi\target\classes\com\example\lxcameraapi\LxCameraApiApplication.class]; nested exception is java.lang.IllegalArgumentException: Unsupported class file major version 65
at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.scanCandidateComponents(ClassPathScanningCandidateComponentProvider.java:452)
at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:315)
at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:276)
at org.springframework.context.annotation.ComponentScanAnnotationParser.parse(ComponentScanAnnotationParser.java:132)
at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:295)
at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:249)
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:206)
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:174)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:319)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:236)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:280)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:96)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:707)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:533)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226)
at com.example.lxcameraapi.LxCameraApiApplication.main(LxCameraApiApplication.java:18)
Caused by: org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet: file [D:\git\测试\lxCameraApi\target\classes\com\example\lxcameraapi\LxCameraApiApplication.class]; nested exception is java.lang.IllegalArgumentException: Unsupported class file major version 65
at org.springframework.core.type.classreading.SimpleMetadataReader.getClassReader(SimpleMetadataReader.java:60)
at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:49)
at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:103)
at org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader(CachingMetadataReaderFactory.java:123)
at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.scanCandidateComponents(ClassPathScanningCandidateComponentProvider.java:429)
... 21 common frames omitted
Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 65
at org.springframework.asm.ClassReader.<init>(ClassReader.java:196)
at org.springframework.asm.ClassReader.<init>(ClassReader.java:177)
at org.springframework.asm.ClassReader.<init>(ClassReader.java:163)
at org.springframework.asm.ClassReader.<init>(ClassReader.java:284)
at org.springframework.core.type.classreading.SimpleMetadataReader.getClassReader(SimpleMetadataReader.java:57)
... 25 common frames omitted
2026-03-20 14:51:17.986 [main] ERROR [org.springframework.boot.SpringApplication] - Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'init': Invocation of init method failed
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:222)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:421)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1767)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:973)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:946)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:323)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1342)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1331)
at com.example.lxcameraapi.LxCameraApiApplication.main(LxCameraApiApplication.java:18)
Caused by: java.lang.NumberFormatException: For input string: "{"
at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054)
at java.base/jdk.internal.math.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.base/java.lang.Double.parseDouble(Double.java:792)
at com.example.lxcameraapi.service.IndustrialCamera.distinguish.Calibration.init(Calibration.java:102)
at com.example.lxcameraapi.conf.Init.hikInit(Init.java:24)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMethod.invoke(InitDestroyAnnotationBeanPostProcessor.java:457)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:401)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:219)
... 18 common frames omitted
2026-03-20 14:53:55.298 [main] ERROR [org.springframework.boot.SpringApplication] - Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'init': Invocation of init method failed
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:222)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:421)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1767)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:973)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:946)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:323)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1342)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1331)
at com.example.lxcameraapi.LxCameraApiApplication.main(LxCameraApiApplication.java:18)
Caused by: java.lang.NullPointerException: Cannot invoke "java.util.List.size()" because the return value of "com.example.lxcameraapi.conf.AppConfig.getHikCamera()" is null
at com.example.lxcameraapi.conf.Init.hikInit(Init.java:26)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMethod.invoke(InitDestroyAnnotationBeanPostProcessor.java:457)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:401)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:219)
... 18 common frames omitted

@ -1,55 +1,240 @@
2026-04-23 09:40:31.138 [main] ERROR [org.springframework.boot.SpringApplication] - Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'categoryController': Injection of resource dependencies failed
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:323)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1420)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:973)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:946)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:323)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1342)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1331)
at com.example.lxcameraapi.LxCameraApiApplication.main(LxCameraApiApplication.java:18)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ONNXServiceNew': Invocation of init method failed
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:222)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:421)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1767)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1441)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:530)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:508)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:659)
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:270)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:320)
... 17 common frames omitted
Caused by: java.lang.RuntimeException: ai.onnxruntime.OrtException: Error code - ORT_NO_SUCHFILE - message: Load model from E:/10/qrcode.onnx failed:Load model E:/10/qrcode.onnx failed. File doesn't exist
at com.example.lxcameraapi.service.IndustrialCamera.algorithm.ONNXServiceNew.initSession(ONNXServiceNew.java:429)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMethod.invoke(InitDestroyAnnotationBeanPostProcessor.java:457)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:401)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:219)
... 34 common frames omitted
Caused by: ai.onnxruntime.OrtException: Error code - ORT_NO_SUCHFILE - message: Load model from E:/10/qrcode.onnx failed:Load model E:/10/qrcode.onnx failed. File doesn't exist
at ai.onnxruntime.OrtSession.createSession(Native Method)
at ai.onnxruntime.OrtSession.<init>(OrtSession.java:74)
at ai.onnxruntime.OrtEnvironment.createSession(OrtEnvironment.java:236)
at ai.onnxruntime.OrtEnvironment.createSession(OrtEnvironment.java:221)
at com.example.lxcameraapi.service.IndustrialCamera.algorithm.ONNXServiceNew.initSession(ONNXServiceNew.java:371)
... 39 common frames omitted
2026-05-12 01:30:15.285 [task-2363] ERROR [c.e.lxcameraapi.service.AsyncProcessingService] - 异步任务执行异常
java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 1
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:55)
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:52)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:213)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:210)
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:98)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromToIndex(Preconditions.java:112)
at java.base/jdk.internal.util.Preconditions.checkFromToIndex(Preconditions.java:349)
at java.base/java.lang.String.checkBoundsBeginEnd(String.java:4849)
at java.base/java.lang.String.substring(String.java:2823)
at com.example.lxcameraapi.service.AsyncProcessingService.processQrCodeAsync(AsyncProcessingService.java:168)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)
at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115)
at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
2026-05-12 01:31:24.493 [task-2369] ERROR [c.e.lxcameraapi.service.AsyncProcessingService] - 异步任务执行异常
java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 1
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:55)
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:52)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:213)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:210)
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:98)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromToIndex(Preconditions.java:112)
at java.base/jdk.internal.util.Preconditions.checkFromToIndex(Preconditions.java:349)
at java.base/java.lang.String.checkBoundsBeginEnd(String.java:4849)
at java.base/java.lang.String.substring(String.java:2823)
at com.example.lxcameraapi.service.AsyncProcessingService.processQrCodeAsync(AsyncProcessingService.java:168)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)
at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115)
at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
2026-05-12 01:32:31.568 [task-2375] ERROR [c.e.lxcameraapi.service.AsyncProcessingService] - 异步任务执行异常
java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 1
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:55)
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:52)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:213)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:210)
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:98)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromToIndex(Preconditions.java:112)
at java.base/jdk.internal.util.Preconditions.checkFromToIndex(Preconditions.java:349)
at java.base/java.lang.String.checkBoundsBeginEnd(String.java:4849)
at java.base/java.lang.String.substring(String.java:2823)
at com.example.lxcameraapi.service.AsyncProcessingService.processQrCodeAsync(AsyncProcessingService.java:168)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)
at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115)
at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
2026-05-12 01:33:06.711 [task-2378] ERROR [c.e.lxcameraapi.service.AsyncProcessingService] - 异步任务执行异常
java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 1
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:55)
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:52)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:213)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:210)
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:98)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromToIndex(Preconditions.java:112)
at java.base/jdk.internal.util.Preconditions.checkFromToIndex(Preconditions.java:349)
at java.base/java.lang.String.checkBoundsBeginEnd(String.java:4849)
at java.base/java.lang.String.substring(String.java:2823)
at com.example.lxcameraapi.service.AsyncProcessingService.processQrCodeAsync(AsyncProcessingService.java:168)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)
at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115)
at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
2026-05-12 02:21:53.398 [task-2636] ERROR [c.e.lxcameraapi.service.AsyncProcessingService] - 异步任务执行异常
java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 1
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:55)
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:52)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:213)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:210)
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:98)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromToIndex(Preconditions.java:112)
at java.base/jdk.internal.util.Preconditions.checkFromToIndex(Preconditions.java:349)
at java.base/java.lang.String.checkBoundsBeginEnd(String.java:4849)
at java.base/java.lang.String.substring(String.java:2823)
at com.example.lxcameraapi.service.AsyncProcessingService.processQrCodeAsync(AsyncProcessingService.java:168)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)
at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115)
at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
2026-05-12 02:22:59.645 [task-2642] ERROR [c.e.lxcameraapi.service.AsyncProcessingService] - 异步任务执行异常
java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 1
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:55)
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:52)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:213)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:210)
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:98)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromToIndex(Preconditions.java:112)
at java.base/jdk.internal.util.Preconditions.checkFromToIndex(Preconditions.java:349)
at java.base/java.lang.String.checkBoundsBeginEnd(String.java:4849)
at java.base/java.lang.String.substring(String.java:2823)
at com.example.lxcameraapi.service.AsyncProcessingService.processQrCodeAsync(AsyncProcessingService.java:168)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)
at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115)
at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
2026-05-12 02:24:09.161 [task-2648] ERROR [c.e.lxcameraapi.service.AsyncProcessingService] - 异步任务执行异常
java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 1
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:55)
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:52)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:213)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:210)
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:98)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromToIndex(Preconditions.java:112)
at java.base/jdk.internal.util.Preconditions.checkFromToIndex(Preconditions.java:349)
at java.base/java.lang.String.checkBoundsBeginEnd(String.java:4849)
at java.base/java.lang.String.substring(String.java:2823)
at com.example.lxcameraapi.service.AsyncProcessingService.processQrCodeAsync(AsyncProcessingService.java:168)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)
at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115)
at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
2026-05-12 04:03:44.191 [task-3176] ERROR [c.e.lxcameraapi.service.AsyncProcessingService] - 异步任务执行异常
java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 1
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:55)
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:52)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:213)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:210)
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:98)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromToIndex(Preconditions.java:112)
at java.base/jdk.internal.util.Preconditions.checkFromToIndex(Preconditions.java:349)
at java.base/java.lang.String.checkBoundsBeginEnd(String.java:4849)
at java.base/java.lang.String.substring(String.java:2823)
at com.example.lxcameraapi.service.AsyncProcessingService.processQrCodeAsync(AsyncProcessingService.java:168)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)
at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115)
at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
2026-05-12 04:04:17.137 [task-3179] ERROR [c.e.lxcameraapi.service.AsyncProcessingService] - 异步任务执行异常
java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 1
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:55)
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:52)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:213)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:210)
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:98)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromToIndex(Preconditions.java:112)
at java.base/jdk.internal.util.Preconditions.checkFromToIndex(Preconditions.java:349)
at java.base/java.lang.String.checkBoundsBeginEnd(String.java:4849)
at java.base/java.lang.String.substring(String.java:2823)
at com.example.lxcameraapi.service.AsyncProcessingService.processQrCodeAsync(AsyncProcessingService.java:168)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)
at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115)
at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
2026-05-12 04:04:50.974 [task-3182] ERROR [c.e.lxcameraapi.service.AsyncProcessingService] - 异步任务执行异常
java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 1
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:55)
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:52)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:213)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:210)
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:98)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromToIndex(Preconditions.java:112)
at java.base/jdk.internal.util.Preconditions.checkFromToIndex(Preconditions.java:349)
at java.base/java.lang.String.checkBoundsBeginEnd(String.java:4849)
at java.base/java.lang.String.substring(String.java:2823)
at com.example.lxcameraapi.service.AsyncProcessingService.processQrCodeAsync(AsyncProcessingService.java:168)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)
at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115)
at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)

@ -1,32 +0,0 @@
2026-03-20 14:46:26.545 [main] INFO [com.example.lxcameraapi.LxCameraApiApplication] - Starting LxCameraApiApplication on LAPTOP-S9HJSOEB with PID 37900 (D:\git\测试\lxCameraApi\target\classes started by 昊天 in D:\git\测试\lxCameraApi)
2026-03-20 14:46:26.556 [main] INFO [com.example.lxcameraapi.LxCameraApiApplication] - No active profile set, falling back to default profiles: default
2026-03-20 14:51:16.668 [main] INFO [com.example.lxcameraapi.LxCameraApiApplication] - Starting LxCameraApiApplication using Java 21.0.10 with PID 44700 (D:\git\测试\lxCameraApi\target\classes started by 昊天 in D:\git\测试\lxCameraApi)
2026-03-20 14:51:16.671 [main] INFO [com.example.lxcameraapi.LxCameraApiApplication] - No active profile set, falling back to 1 default profile: "default"
2026-03-20 14:51:17.797 [main] INFO [org.apache.coyote.http11.Http11NioProtocol] - Initializing ProtocolHandler ["http-nio-8097"]
2026-03-20 14:51:17.799 [main] INFO [org.apache.catalina.core.StandardService] - Starting service [Tomcat]
2026-03-20 14:51:17.799 [main] INFO [org.apache.catalina.core.StandardEngine] - Starting Servlet engine: [Apache Tomcat/10.1.16]
2026-03-20 14:51:17.864 [main] INFO [o.a.c.core.ContainerBase.[Tomcat].[localhost].[/]] - Initializing Spring embedded WebApplicationContext
2026-03-20 14:51:17.953 [main] INFO [org.apache.catalina.core.StandardService] - Stopping service [Tomcat]
2026-03-20 14:53:50.282 [main] INFO [com.example.lxcameraapi.LxCameraApiApplication] - Starting LxCameraApiApplication using Java 21.0.10 with PID 49980 (D:\git\测试\lxCameraApi\target\classes started by 昊天 in D:\git\测试\lxCameraApi)
2026-03-20 14:53:50.284 [main] INFO [com.example.lxcameraapi.LxCameraApiApplication] - No active profile set, falling back to 1 default profile: "default"
2026-03-20 14:53:51.219 [main] INFO [org.apache.coyote.http11.Http11NioProtocol] - Initializing ProtocolHandler ["http-nio-8097"]
2026-03-20 14:53:51.220 [main] INFO [org.apache.catalina.core.StandardService] - Starting service [Tomcat]
2026-03-20 14:53:51.220 [main] INFO [org.apache.catalina.core.StandardEngine] - Starting Servlet engine: [Apache Tomcat/10.1.16]
2026-03-20 14:53:51.286 [main] INFO [o.a.c.core.ContainerBase.[Tomcat].[localhost].[/]] - Initializing Spring embedded WebApplicationContext
2026-03-20 14:53:55.274 [main] INFO [org.apache.catalina.core.StandardService] - Stopping service [Tomcat]
2026-03-20 15:05:46.979 [main] INFO [com.example.lxcameraapi.LxCameraApiApplication] - Starting LxCameraApiApplication using Java 21.0.10 with PID 6644 (D:\git\测试\lxCameraApi\target\classes started by 昊天 in D:\git\测试\lxCameraApi)
2026-03-20 15:05:46.981 [main] INFO [com.example.lxcameraapi.LxCameraApiApplication] - No active profile set, falling back to 1 default profile: "default"
2026-03-20 15:05:47.928 [main] INFO [org.apache.coyote.http11.Http11NioProtocol] - Initializing ProtocolHandler ["http-nio-8097"]
2026-03-20 15:05:47.929 [main] INFO [org.apache.catalina.core.StandardService] - Starting service [Tomcat]
2026-03-20 15:05:47.929 [main] INFO [org.apache.catalina.core.StandardEngine] - Starting Servlet engine: [Apache Tomcat/10.1.16]
2026-03-20 15:05:47.997 [main] INFO [o.a.c.core.ContainerBase.[Tomcat].[localhost].[/]] - Initializing Spring embedded WebApplicationContext
2026-03-20 15:05:52.686 [main] INFO [org.apache.coyote.http11.Http11NioProtocol] - Starting ProtocolHandler ["http-nio-8097"]
2026-03-20 15:05:52.714 [main] INFO [com.example.lxcameraapi.LxCameraApiApplication] - Started LxCameraApiApplication in 6.262 seconds (process running for 6.998)
2026-03-20 15:05:55.016 [scheduling-1] INFO [com.example.lxcameraapi.util.LogUtil] - 定时任务执行 - Task: 删除过期文件夹任务, Status: START, Message: 开始执行删除过期文件夹任务, Time: 1773990355016
2026-03-20 15:05:55.016 [scheduling-1] INFO [com.example.lxcameraapi.util.LogUtil] - 业务日志 - Module: CronConfig, Message: 开始处理路径: D://go/deleteFile, Time: 1773990355016
2026-03-20 15:05:55.023 [scheduling-1] INFO [com.example.lxcameraapi.util.LogUtil] - 业务日志 - Module: CronConfig, Message: 路径D://go/deleteFile处理完成删除了0个文件夹, Time: 1773990355023
2026-03-20 15:05:55.023 [scheduling-1] INFO [com.example.lxcameraapi.util.LogUtil] - 定时任务执行 - Task: 删除过期文件夹任务, Status: SUCCESS, Message: 删除过期文件夹任务执行完成共删除0个文件夹错误0个, Time: 1773990355023
2026-03-20 15:06:00.004 [scheduling-1] INFO [com.example.lxcameraapi.util.LogUtil] - 定时任务执行 - Task: 删除过期文件夹任务, Status: START, Message: 开始执行删除过期文件夹任务, Time: 1773990360004
2026-03-20 15:06:00.005 [scheduling-1] INFO [com.example.lxcameraapi.util.LogUtil] - 业务日志 - Module: CronConfig, Message: 开始处理路径: D://go/deleteFile, Time: 1773990360004
2026-03-20 15:06:00.006 [scheduling-1] INFO [com.example.lxcameraapi.util.LogUtil] - 业务日志 - Module: CronConfig, Message: 路径D://go/deleteFile处理完成删除了0个文件夹, Time: 1773990360006
2026-03-20 15:06:00.006 [scheduling-1] INFO [com.example.lxcameraapi.util.LogUtil] - 定时任务执行 - Task: 删除过期文件夹任务, Status: SUCCESS, Message: 删除过期文件夹任务执行完成共删除0个文件夹错误0个, Time: 1773990360006

File diff suppressed because it is too large Load Diff

Binary file not shown.

@ -4,10 +4,12 @@ import com.example.lxcameraapi.service.IndustrialCamera.camera.lx.DcLibrary;
import com.sun.jna.Native;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableAsync;
import java.io.File;
@SpringBootApplication
@EnableAsync
public class LxCameraApiApplication {

@ -25,6 +25,15 @@ public class AppConfig {
public List<SpecialBox> specialBox;
public DeleteFile deleteFile;
public Serve serve;
@Data
public static class Serve{
String ip;
Integer port;
String singleInventoryReturnPath;
String singleInventoryQrCodeReturnPath;
}
@Data
public static class DeleteFile{

@ -1,17 +1,20 @@
package com.example.lxcameraapi.controller;
import com.example.lxcameraapi.conf.AppConfig;
import com.example.lxcameraapi.service.AsyncProcessingService;
import com.example.lxcameraapi.service.HttpNotifyService;
import com.example.lxcameraapi.service.IndustrialCamera.camera.lx.LxCameraService;
import com.example.lxcameraapi.service.IndustrialCamera.camera.lx.config.BoxCountRequest;
import com.example.lxcameraapi.service.IndustrialCamera.camera.lx.config.BoxCountResponse;
import com.example.lxcameraapi.service.IndustrialCamera.camera.lx.config.BoxCountResult;
import com.example.lxcameraapi.service.IndustrialCamera.camera.lx.config.CaptureResult;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.Map;
/**
*
@ -26,6 +29,11 @@ public class BoxCountController {
private LxCameraService lxCameraService;
@Autowired
private AppConfig appConfig;
@Resource
private HttpNotifyService httpNotifyService;
@Resource
private AsyncProcessingService asyncProcessingService;
/**
* POST
@ -58,6 +66,68 @@ public class BoxCountController {
}
}
/**
* - HTTP
*/
@PostMapping("/async")
public BoxCountResponse countBoxesAsync(@RequestBody BoxCountRequest request,
HttpServletRequest httpRequest) {
log.info("收到箱子数量异步计算请求: {}", request);
BoxCountResponse boxCountResponse = new BoxCountResponse();
try {
String pcdFilePath = appConfig.getPicPath();
String cameraIp = appConfig.getLxCamera().isEmpty() ? null : appConfig.getLxCamera().get(0).getIp();
String cameraCalibratePath = appConfig.getLxCamera().isEmpty() ? null : appConfig.getLxCamera().get(0).getCalibratePath();
request.setCameraCalibratePath(cameraCalibratePath);
// 同步拍照
CaptureResult captureResult = lxCameraService.capture(cameraIp, pcdFilePath);
String rgbPath = captureResult.getFilePath("rgb");
String imagePath = rgbPath.replace(appConfig.getPicPath(), appConfig.getPicUrl());
// 立即返回
boxCountResponse.setImagePath(imagePath);
boxCountResponse.setResult("Processing");
boxCountResponse.setSuccess(true);
boxCountResponse.setTaskId(request.getTaskId());
boxCountResponse.setScanType(request.getScanType());
// 获取目标服务器信息
String targetIp = appConfig.getServe().getIp();
Integer targetPort = appConfig.getServe().getPort();
String targetPath = appConfig.getServe().getSingleInventoryReturnPath();
// 异步执行计数
asyncProcessingService.processBoxCountAsync(request, captureResult, targetIp, targetPort, targetPath);
} catch (Exception e) {
log.error("拍照异常", e);
boxCountResponse.setResult("Error");
return boxCountResponse;
}
return boxCountResponse;
}
/**
* IP
*/
private String getClientIp(HttpServletRequest request) {
String ip = request.getHeader("X-Forwarded-For");
if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("X-Real-IP");
}
if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
if (ip != null && ip.contains(",")) {
ip = ip.split(",")[0].trim();
}
return ip;
}
/**
* GET
* GET /api/boxcount/calculate?pcdFilePath=xxx&floorHeight=xxx&boxLength=xxx&boxWidth=xxx&boxHeight=xxx&stackType=xxx

@ -1,26 +1,20 @@
package com.example.lxcameraapi.controller;
import ai.onnxruntime.OrtException;
import com.example.lxcameraapi.conf.AppConfig;
import com.example.lxcameraapi.service.AsyncProcessingService;
import com.example.lxcameraapi.service.HttpNotifyService;
import com.example.lxcameraapi.service.IndustrialCamera.algorithm.ONNXServiceNew;
import com.example.lxcameraapi.service.IndustrialCamera.algorithm.PointCloudProcessor;
import com.example.lxcameraapi.service.IndustrialCamera.camera.hik.CaptureImageResponse;
import com.example.lxcameraapi.service.IndustrialCamera.camera.hik.ImageCaptureService;
import com.example.lxcameraapi.service.IndustrialCamera.camera.lx.config.BoxCountRequest;
import com.example.lxcameraapi.service.IndustrialCamera.camera.lx.config.BoxCountResponse;
import com.example.lxcameraapi.service.IndustrialCamera.opencv.OpencvService;
import com.example.lxcameraapi.service.IndustrialCamera.pojo.Pojo;
import com.example.lxcameraapi.service.IndustrialCamera.yolo.BoundingBox;
import com.example.lxcameraapi.service.IndustrialCamera.yolo.ClassifyEntity;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Slf4j
@RestController
@ -36,23 +30,32 @@ public class CategoryController {
@Resource
private OpencvService opencvService;
@Resource
private HttpNotifyService httpNotifyService;
@Resource
private AsyncProcessingService asyncProcessingService;
/**
*
* - HTTP
*/
@PostMapping("/single")
public BoxCountResponse captureSingle(@RequestBody BoxCountRequest request) {
@PostMapping("/async")
public BoxCountResponse captureSingle(@RequestBody BoxCountRequest request,
HttpServletRequest httpRequest) {
BoxCountResponse boxCountResponse = new BoxCountResponse();
try {
try {
// 获取当前日期格式为 yyyy-MM-dd
LocalDateTime currentDate = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String formattedDate = currentDate.format(formatter);
DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd-HH-mm-ss-SSS");
String formattedTime = currentDate.format(timeFormatter);
String path = appConfig.getPicPath()+ formattedDate + "/" + request.getCameraId() + "/" + System.currentTimeMillis() + ".png";
String url = appConfig.getPicUrl() + formattedDate + "/" + request.getCameraId() + "/" + System.currentTimeMillis() + ".png";
String path = appConfig.getPicPath() + formattedDate + "/" + request.getCameraId() + "/" + formattedTime + ".png";
String url = appConfig.getPicUrl() + formattedDate + "/" + request.getCameraId() + "/" + formattedTime + ".png";
log.info("开始拍照IP: {}, 路径: {}", request.getCameraId(), path);
String ip = null;
for (AppConfig.Camera camera : appConfig.getHikCamera()) {
@ -61,47 +64,45 @@ public class CategoryController {
}
boolean success = imageCaptureService.captureImage(ip, path);
List<BoundingBox> detectResults = onnxServiceNew.detect26(path, null);
opencvService.drawBoundingBoxesOnImage(detectResults, path,path+"detect.jpg");
log.info("检测结果: {}", detectResults);
// 立即返回图片路径
boxCountResponse.setImagePath(url);
if (!detectResults.isEmpty()){
// 统计每个 index 出现的次数
Map<Integer, Long> indexCountMap = detectResults.stream()
.collect(Collectors.groupingBy(
BoundingBox::getIndex,
Collectors.counting()
));
// 找到出现次数最多的 index
Map.Entry<Integer, Long> maxIndexEntry = indexCountMap.entrySet().stream()
.max(Map.Entry.comparingByValue())
.orElse(null);
if (maxIndexEntry != null) {
// 根据最多的 index 找到对应的 name
String mostCommonName = detectResults.stream()
.filter(box -> box.getIndex().equals(maxIndexEntry.getKey()))
.findFirst()
.map(BoundingBox::getName)
.orElse("Unknown");
boxCountResponse.setResult(mostCommonName);
log.info("检测结果统计 - 最常见的类别: {}, 出现次数: {}", mostCommonName, maxIndexEntry.getValue());
} else {
boxCountResponse.setResult("Unknown");
}
boxCountResponse.setResult("Processing");
boxCountResponse.setSuccess(true);
boxCountResponse.setTaskId(request.getTaskId());
boxCountResponse.setScanType(request.getScanType());
// 获取目标服务器信息
String targetIp = appConfig.getServe().getIp();
Integer targetPort = appConfig.getServe().getPort();
String targetPath = appConfig.getServe().getSingleInventoryReturnPath();
// 异步执行识别
asyncProcessingService.processCategoryAsync(request, path, url, targetIp, targetPort, targetPath);
return boxCountResponse;
}
} catch (OrtException e) {
log.error("检测异常", e);
} catch (Exception e) {
log.error("拍照异常", e);
boxCountResponse.setResult("Error");
return boxCountResponse;
}
boxCountResponse.setResult("Unknown");
return boxCountResponse;
}
/**
* IP
*/
private String getClientIp(HttpServletRequest request) {
String ip = request.getHeader("X-Forwarded-For");
if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("X-Real-IP");
}
if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
if (ip != null && ip.contains(",")) {
ip = ip.split(",")[0].trim();
}
return ip;
}
}

@ -2,6 +2,8 @@ package com.example.lxcameraapi.controller;
import ai.onnxruntime.OrtException;
import com.example.lxcameraapi.conf.AppConfig;
import com.example.lxcameraapi.service.AsyncProcessingService;
import com.example.lxcameraapi.service.HttpNotifyService;
import com.example.lxcameraapi.service.IndustrialCamera.QrCode.WeChatDeCode;
import com.example.lxcameraapi.service.IndustrialCamera.algorithm.ONNXServiceNew;
import com.example.lxcameraapi.service.IndustrialCamera.camera.hik.ImageCaptureService;
@ -10,37 +12,33 @@ import com.example.lxcameraapi.service.IndustrialCamera.camera.lx.config.BoxCoun
import com.example.lxcameraapi.service.IndustrialCamera.opencv.OpencvService;
import com.example.lxcameraapi.service.IndustrialCamera.yolo.BoundingBox;
import com.google.zxing.*;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.common.HybridBinarizer;
import com.google.zxing.qrcode.QRCodeReader;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
import org.bytedeco.opencv.opencv_core.Mat;
import org.bytedeco.opencv.opencv_core.StringVector;
import org.bytedeco.opencv.opencv_wechat_qrcode.WeChatQRCode;
import org.opencv.imgcodecs.Imgcodecs;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.*;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import javax.imageio.ImageIO;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.common.HybridBinarizer;
import org.bytedeco.opencv.opencv_core.Mat;
import org.bytedeco.opencv.opencv_core.StringVector;
import org.bytedeco.opencv.opencv_wechat_qrcode.WeChatQRCode;
@Slf4j
@RestController
@RequestMapping("/api/qrcode")
public class QtCodeController {
@Resource
ONNXServiceNew onnxServiceNew;
@ -56,6 +54,12 @@ public class QtCodeController {
@Autowired
private OpencvService opencvService;
@Resource
private HttpNotifyService httpNotifyService;
@Resource
private AsyncProcessingService asyncProcessingService;
/**
*
*/
@ -136,6 +140,88 @@ public class QtCodeController {
return boxCountResponse;
}
/**
* - HTTP
*/
@PostMapping("/async")
public BoxCountResponse captureSingleAsync(@RequestBody BoxCountRequest request,
HttpServletRequest httpRequest) {
BoxCountResponse boxCountResponse = new BoxCountResponse();
// 获取当前日期格式为 yyyy-MM-dd
LocalDateTime currentDate = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String formattedDate = currentDate.format(formatter);
DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd-HH-mm-ss-SSS");
String formattedTime = currentDate.format(timeFormatter);
String path = appConfig.getPicPath() + formattedDate + "/" + request.getCameraId() + "/" + formattedTime + ".png";
String url = appConfig.getPicUrl() + formattedDate + "/" + request.getCameraId() + "/" + formattedTime + ".png";
try {
// 同步拍照
log.info("开始拍照IP: {}, 路径: {}", request.getCameraId(), path);
String ip = null;
for (AppConfig.Camera camera : appConfig.getHikCamera()) {
if (camera.getId().equals(request.getCameraId())) {
ip = camera.getIp();
}
}
boolean success = imageCaptureService.captureImage(ip, path);
if (!success) {
boxCountResponse.setResult("CaptureFailed");
return boxCountResponse;
}
// 立即返回图片路径
boxCountResponse.setImagePath(url + ".jpg");
boxCountResponse.setResult("Processing");
boxCountResponse.setSuccess(true);
boxCountResponse.setTaskId(request.getTaskId());
boxCountResponse.setScanType(request.getScanType());
} catch (Exception e) {
log.error("拍照异常", e);
boxCountResponse.setResult("Error");
return boxCountResponse;
}
// 自动获取调用方IP
String callerIp = getClientIp(httpRequest);
log.info("调用方IP: {}", callerIp);
// 获取目标服务器信息优先使用请求参数否则使用调用方IP
String targetIp = appConfig.getServe().getIp();
Integer targetPort = appConfig.getServe().getPort();
String targetPath = appConfig.getServe().getSingleInventoryQrCodeReturnPath();
// 异步执行识别和HTTP发送
asyncProcessingService.processQrCodeAsync(request.getCameraId(), request.getTaskId(), path, url, targetIp, targetPort, targetPath,request.getScanType());
return boxCountResponse;
}
/**
* IP
*/
private String getClientIp(HttpServletRequest request) {
String ip = request.getHeader("X-Forwarded-For");
if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("X-Real-IP");
}
if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
// 如果是代理可能有多个IP取第一个
if (ip != null && ip.contains(",")) {
ip = ip.split(",")[0].trim();
}
return ip;
}
/**
*

@ -0,0 +1,206 @@
package com.example.lxcameraapi.service;
import ai.onnxruntime.OrtException;
import com.example.lxcameraapi.conf.AppConfig;
import com.example.lxcameraapi.service.IndustrialCamera.algorithm.ONNXServiceNew;
import com.example.lxcameraapi.service.IndustrialCamera.camera.lx.LxCameraService;
import com.example.lxcameraapi.service.IndustrialCamera.camera.lx.config.BoxCountRequest;
import com.example.lxcameraapi.service.IndustrialCamera.camera.lx.config.BoxCountResult;
import com.example.lxcameraapi.service.IndustrialCamera.camera.lx.config.CaptureResult;
import com.example.lxcameraapi.service.IndustrialCamera.opencv.OpencvService;
import com.example.lxcameraapi.service.IndustrialCamera.yolo.BoundingBox;
import com.example.lxcameraapi.service.IndustrialCamera.QrCode.WeChatDeCode;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import jakarta.annotation.Resource;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import javax.imageio.ImageIO;
@Slf4j
@Service
public class AsyncProcessingService {
@Resource
private ONNXServiceNew onnxServiceNew;
@Resource
private OpencvService opencvService;
@Resource
private LxCameraService lxCameraService;
@Resource
private HttpNotifyService httpNotifyService;
@Resource
private AppConfig appConfig;
/**
*
*/
@Async
public void processCategoryAsync(BoxCountRequest request, String path, String url,
String targetIp, Integer targetPort, String targetPath) {
try {
log.info("异步品规识别任务开始");
List<BoundingBox> detectResults = onnxServiceNew.detect26(path, null);
opencvService.drawBoundingBoxesOnImage(detectResults, path, path + "detect.jpg");
log.info("检测结果: {}", detectResults);
String result = "Unknown";
if (!detectResults.isEmpty()) {
// 统计每个 index 出现的次数
Map<Integer, Long> indexCountMap = detectResults.stream()
.collect(Collectors.groupingBy(
BoundingBox::getIndex,
Collectors.counting()
));
// 找到出现次数最多的 index
Map.Entry<Integer, Long> maxIndexEntry = indexCountMap.entrySet().stream()
.max(Map.Entry.comparingByValue())
.orElse(null);
if (maxIndexEntry != null) {
// 根据最多的 index 找到对应的 name
result = detectResults.stream()
.filter(box -> box.getIndex().equals(maxIndexEntry.getKey()))
.findFirst()
.map(BoundingBox::getName)
.orElse("Unknown");
log.info("检测结果统计 - 最常见的类别: {}, 出现次数: {}", result, maxIndexEntry.getValue());
}
}
// 发送HTTP通知到 singleInventoryReturn
if (targetIp != null && targetPort != null && targetPath != null) {
httpNotifyService.sendBoxCountResult(targetIp, targetPort, targetPath,
request.getTaskId(), request.getScanType(), result, url, 0);
} else {
log.warn("异步任务完成,但未配置目标服务器信息");
}
} catch (OrtException e) {
log.error("异步品规识别异常", e);
} catch (Exception e) {
log.error("异步品规识别异常", e);
}
}
/**
*
*/
@Async
public void processBoxCountAsync(BoxCountRequest request, CaptureResult captureResult,
String targetIp, Integer targetPort, String targetPath) {
try {
log.info("异步箱子计数任务开始");
request.setPcdFilePath(captureResult.getFilePath("pointCloud"));
BoxCountResult result = lxCameraService.countBoxes(request);
log.info("箱子数量计算结果: {}", result.getSummary());
String imagePath = captureResult.getFilePath("rgb").replace(appConfig.getPicPath(), appConfig.getPicUrl());
String resultStr = String.valueOf(result.getTotalBoxCount());
// 发送HTTP通知到 singleInventoryReturn
if (targetIp != null && targetPort != null && targetPath != null) {
httpNotifyService.sendBoxCountResult(targetIp, targetPort, targetPath,
request.getTaskId(), request.getScanType(), resultStr, imagePath, result.getTotalBoxCount());
} else {
log.warn("异步任务完成,但未配置目标服务器信息");
}
} catch (Exception e) {
log.error("异步箱子计数异常", e);
}
}
/**
*
*/
@Async
public void processQrCodeAsync(Integer cameraId, String taskId, String path, String url,
String targetIp, Integer targetPort, String targetPath, String scanType) {
try {
log.info("异步识别任务开始,路径: {}", path);
List<BoundingBox> detectResults = onnxServiceNew.detect26(path, "qrCode");
opencvService.drawBoundingBoxesOnImage(detectResults, path, path + ".jpg");
log.info("异步检测结果: {}", detectResults);
// 读取原始图片
BufferedImage originalImage = ImageIO.read(new File(path));
if (originalImage == null) {
log.error("异步任务:无法读取图片: {}", path);
return;
}
// 存储解码结果
List<String> qrCodeResults = new ArrayList<>();
for (BoundingBox box : detectResults) {
try {
BufferedImage croppedImage = cropBoundingBox(originalImage, box, 30);
ImageIO.write(croppedImage, "jpg", new File(path + "_" + box.getIndex() + ".jpg"));
String qrCodeContent = WeChatDeCode.deCode(croppedImage);
qrCodeResults.add(qrCodeContent);
if (qrCodeContent != null) {
log.info("异步解码成功: {}, 置信度: {}", qrCodeContent, box.getConfidence());
} else {
log.warn("异步解码失败box: {}", box);
}
} catch (Exception e) {
log.error("异步解码二维码异常box: {}", box, e);
}
}
// 构建结果
String result = qrCodeResults.size() > 0 ? qrCodeResults.get(0).substring(0, 8) : "Unknown";
String imagePath = url + ".jpg";
// 发送HTTP通知到 singleInventoryQrCodeReturn
if (targetIp != null && targetPort != null && targetPath != null) {
httpNotifyService.sendQrCodeResult(targetIp, targetPort, targetPath, taskId, result, imagePath, qrCodeResults, scanType);
} else {
log.warn("异步任务完成,但未配置目标服务器信息");
}
} catch (Exception e) {
log.error("异步任务执行异常", e);
}
}
private BufferedImage cropBoundingBox(BufferedImage originalImage, BoundingBox box, int expandPixels) {
int imageWidth = originalImage.getWidth();
int imageHeight = originalImage.getHeight();
int x = (int) box.getX();
int y = (int) box.getY();
int width = (int) box.getW();
int height = (int) box.getH();
x = x - expandPixels;
y = y - expandPixels;
width = width + (expandPixels * 2);
height = height + (expandPixels * 2);
x = Math.max(0, Math.min(x, imageWidth - 1));
y = Math.max(0, Math.min(y, imageHeight - 1));
width = Math.min(width, imageWidth - x);
height = Math.min(height, imageHeight - y);
width = Math.max(1, width);
height = Math.max(1, height);
return originalImage.getSubimage(x, y, width, height);
}
}

@ -0,0 +1,239 @@
package com.example.lxcameraapi.service;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.stream.Collectors;
/**
* HTTP -
*/
@Slf4j
@Service
public class HttpNotifyService {
private static final int CONNECT_TIMEOUT = 5000;
private static final int READ_TIMEOUT = 10000;
/**
* singleInventoryReturn
*
* @param ip IP
* @param port
* @param path
* @param taskId ID
* @param scanType
* @param result
* @param imagePath
* @param totalBoxCount
* @return
*/
public boolean sendBoxCountResult(String ip, int port, String path, String taskId, String scanType, String result, String imagePath, int totalBoxCount) {
String targetUrl = String.format("http://%s:%d%s", ip, port, path);
log.info("发送箱子计数结果到: {}", targetUrl);
HttpURLConnection connection = null;
try {
URL url = new URL(targetUrl);
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/json");
connection.setDoOutput(true);
connection.setConnectTimeout(CONNECT_TIMEOUT);
connection.setReadTimeout(READ_TIMEOUT);
String jsonBody = String.format(
"{\"taskId\":\"%s\",\"result\":\"%s\",\"scanType\":\"%s\",\"imagePath\":\"%s\",\"totalBoxCount\":%d}",
escapeJson(taskId),
escapeJson(result),
escapeJson(scanType),
escapeJson(imagePath),
totalBoxCount
);
System.out.println(jsonBody);
try (OutputStream os = connection.getOutputStream()) {
byte[] input = jsonBody.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
os.flush();
}
int responseCode = connection.getResponseCode();
log.info("HTTP响应码: {}, 目标: {}", responseCode, targetUrl);
boolean success = responseCode >= 200 && responseCode < 300;
if (success) {
log.info("箱子计数结果发送成功: {}", targetUrl);
} else {
log.warn("箱子计数结果返回非成功状态码: {} - {}", responseCode, targetUrl);
}
return success;
} catch (Exception e) {
log.error("发送箱子计数结果失败: {}", targetUrl, e);
return false;
} finally {
if (connection != null) {
connection.disconnect();
}
}
}
/**
* singleInventoryQrCodeReturn
*
* @param ip IP
* @param port
* @param path
* @param taskId ID
* @param result
* @param imagePath
* @param qrCodeResults
* @return
*/
public boolean sendQrCodeResult(String ip, int port, String path, String taskId, String result, String imagePath, List<String> qrCodeResults,String scanType) {
String targetUrl = String.format("http://%s:%d%s", ip, port, path);
log.info("发送HTTP请求到: {}", targetUrl);
HttpURLConnection connection = null;
try {
URL url = new URL(targetUrl);
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/json");
connection.setDoOutput(true);
connection.setConnectTimeout(CONNECT_TIMEOUT);
connection.setReadTimeout(READ_TIMEOUT);
// 构建JSON请求体 - 适配 singleInventoryQrCodeReturn 接口
String qrResultsJson = (qrCodeResults != null && !qrCodeResults.isEmpty())
? qrCodeResults.stream()
.map(s -> "\"" + escapeJson(s) + "\"")
.collect(Collectors.joining(",", "[", "]"))
: "[]";
String jsonBody = String.format(
"{\"taskId\":\"%s\",\"result\":\"%s\",\"scanType\":\""+scanType+"\",\"imagePath\":\"%s\",\"qrCodeResults\":%s}",
escapeJson(taskId),
escapeJson(result),
escapeJson(imagePath),
qrResultsJson
);
try (OutputStream os = connection.getOutputStream()) {
byte[] input = jsonBody.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
os.flush();
}
int responseCode = connection.getResponseCode();
log.info("HTTP响应码: {}, 目标: {}", responseCode, targetUrl);
boolean success = responseCode >= 200 && responseCode < 300;
if (success) {
log.info("HTTP请求成功发送到: {}", targetUrl);
} else {
log.warn("HTTP请求返回非成功状态码: {} - {}", responseCode, targetUrl);
}
return success;
} catch (Exception e) {
log.error("发送HTTP请求失败: {}", targetUrl, e);
return false;
} finally {
if (connection != null) {
connection.disconnect();
}
}
}
/**
* POST
*
* @param ip IP
* @param port
* @param path
* @param result
* @param imagePath
* @param qrCodeResults
* @return
*/
public boolean sendNotify(String ip, int port, String path, String result, String imagePath, List<String> qrCodeResults) {
String targetUrl = String.format("http://%s:%d%s", ip, port, path);
log.info("发送HTTP请求到: {}", targetUrl);
HttpURLConnection connection = null;
try {
URL url = new URL(targetUrl);
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/json");
connection.setDoOutput(true);
connection.setConnectTimeout(CONNECT_TIMEOUT);
connection.setReadTimeout(READ_TIMEOUT);
// 构建JSON请求体
String jsonBody = buildJsonBody(result, imagePath, qrCodeResults);
try (OutputStream os = connection.getOutputStream()) {
byte[] input = jsonBody.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
os.flush();
}
int responseCode = connection.getResponseCode();
log.info("HTTP响应码: {}, 目标: {}", responseCode, targetUrl);
boolean success = responseCode >= 200 && responseCode < 300;
if (success) {
log.info("HTTP请求成功发送到: {}", targetUrl);
} else {
log.warn("HTTP请求返回非成功状态码: {} - {}", responseCode, targetUrl);
}
return success;
} catch (Exception e) {
log.error("发送HTTP请求失败: {}", targetUrl, e);
return false;
} finally {
if (connection != null) {
connection.disconnect();
}
}
}
/**
* JSON
*/
private String buildJsonBody(String result, String imagePath, List<String> qrCodeResults) {
String qrResultsJson = (qrCodeResults != null && !qrCodeResults.isEmpty())
? qrCodeResults.stream()
.map(s -> "\"" + escapeJson(s) + "\"")
.collect(Collectors.joining(",", "[", "]"))
: "[]";
return String.format(
"{\"result\":\"%s\",\"imagePath\":\"%s\",\"qrCodeResults\":%s}",
escapeJson(result),
escapeJson(imagePath),
qrResultsJson
);
}
/**
* JSON
*/
private String escapeJson(String str) {
if (str == null) return "";
return str.replace("\\", "\\\\")
.replace("\"", "\\\"")
.replace("\n", "\\n")
.replace("\r", "\\r")
.replace("\t", "\\t");
}
}

@ -1,6 +1,7 @@
package com.example.lxcameraapi.service.IndustrialCamera.camera.lx.config;
import lombok.Data;
import org.springframework.web.bind.annotation.RequestParam;
/**
*
@ -11,6 +12,15 @@ public class BoxCountRequest {
private String cameraCalibratePath;
/**
* ID
*/
private String taskId;
private String scanType;
String targetIp="127.0.0.1";
int targetPort=48080;
String targetPath="/admin-api/logistics/StockController/singleInventoryReturn";
/**
* PCD
*/

@ -84,6 +84,8 @@ public class BoxCountResponse {
private String imagePath;
private String result;
private String taskId;
private String scanType;
/**
*

@ -54,12 +54,19 @@ deleteFile:
picPath: "D:/data/media/"
picUrl: "http://127.0.0.1:9012/pic/"
serve:
ip: 127.0.0.1
port: 48080
singleInventoryReturnPath: "/admin-api/logistics/StockController/singleInventoryReturn"
singleInventoryQrCodeReturnPath: "/admin-api/logistics/StockController/singleInventoryQrCodeReturn"
yoloModelConfig:
# 模型地址
modelPath: "E:/10/best.onnx"
# 图片大小
imgSize: 640
imgSize: 1024
# 置信度
confThreshold: 0.5
names: ['0143','0153','0173','0177','0191','0253','0256','0266','0268','0286','0302','0304','0305','0307','0320','0326','0336','0339','0343','0352','0458','0461','0462','0473','0477','0486','0490','0492','0930','1101','1102','1104','1262','1269','1302','1308','1359','1366','1622','1625','1919','1976','20','2165','2188','2210','2224','2445','2476','2611','2730','2731','2910','2914','2943','3027','3028','3029','3212','3226','3344','3501','3509','3538','3725','3741','3751','3754','3763','3766','3808']

Loading…
Cancel
Save