Compare commits

..

2 Commits

Author SHA1 Message Date
yiyi
11c615d0c9 编译ARM应用 & 调整撕裂协议文档 2026-02-21 16:34:38 +08:00
yiyi
a88e30cb76 撕裂增加实时上传功能 2026-02-21 13:53:33 +08:00
7 changed files with 2616 additions and 2577 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,29 +1,29 @@
#ifndef VERSION_H #ifndef VERSION_H
#define VERSION_H #define VERSION_H
#define BELT_TEARING_SERVER_VERSION_STRING "2.0.6" #define BELT_TEARING_SERVER_VERSION_STRING "2.0.7"
#define BELT_TEARING_SERVER_VERSION_BUILD "1" #define BELT_TEARING_SERVER_VERSION_BUILD "1"
#define BELT_TEARING_SERVER_PRODUCT_NAME "BeltTearingServer" #define BELT_TEARING_SERVER_PRODUCT_NAME "BeltTearingServer"
#define BELT_TEARING_SERVER_COMPANY_NAME "VisionRobot" #define BELT_TEARING_SERVER_COMPANY_NAME "VisionRobot"
#define BELT_TEARING_SERVER_COPYRIGHT "Copyright (C) 2024-2025 VisionRobot. All rights reserved." #define BELT_TEARING_SERVER_COPYRIGHT "Copyright (C) 2024-2025 VisionRobot. All rights reserved."
#define BELT_TEARING_SERVER_DESCRIPTION "Belt Tearing Detection Server with Camera Integration" #define BELT_TEARING_SERVER_DESCRIPTION "Belt Tearing Detection Server with Camera Integration"
// 构建信息 // 构建信息
#define BELT_TEARING_SERVER_BUILD_DATE __DATE__ #define BELT_TEARING_SERVER_BUILD_DATE __DATE__
#define BELT_TEARING_SERVER_BUILD_TIME __TIME__ #define BELT_TEARING_SERVER_BUILD_TIME __TIME__
#ifdef _WIN32 #ifdef _WIN32
#define BELT_TEARING_SERVER_PLATFORM "Windows" #define BELT_TEARING_SERVER_PLATFORM "Windows"
#elif __linux__ #elif __linux__
#define BELT_TEARING_SERVER_PLATFORM "Linux" #define BELT_TEARING_SERVER_PLATFORM "Linux"
#else #else
#define BELT_TEARING_SERVER_PLATFORM "Unknown" #define BELT_TEARING_SERVER_PLATFORM "Unknown"
#endif #endif
#ifdef _DEBUG #ifdef _DEBUG
#define BELT_TEARING_SERVER_BUILD_TYPE "Debug" #define BELT_TEARING_SERVER_BUILD_TYPE "Debug"
#else #else
#define BELT_TEARING_SERVER_BUILD_TYPE "Release" #define BELT_TEARING_SERVER_BUILD_TYPE "Release"
#endif #endif
#endif // VERSION_H #endif // VERSION_H

View File

@ -1,3 +1,7 @@
# 2.0.7
## build_1 2026-02-21
1. 增加实时传输功能
# 2.0.6 # 2.0.6
## build_1 2026-02-03 ## build_1 2026-02-03
1. 增加授权 1. 增加授权

View File

@ -1,18 +1,19 @@
# 皮带撕裂检测系统 TCP 通信协议 # 皮带撕裂检测系统 TCP 通信协议
## 版本 ## 版本
版本: 1.3 版本: 1.4
日期: 2026-02-12 日期: 2026-02-21
--- ---
### 版本历史 ### 版本历史
| 版本 | 日期 | 修改内容 | 作者 | | 版本 | 日期 | 修改内容 |
|------|------------|------------------|-------| |------|------------|------------------|
| 1.3 | 2026-02-12 | 增加实时传输检测结果功能(SET_REALTIME/REALTIME_RESULT) | | | 1.4 | 2026-02-21 | 开启实时上报时不再发送DETECT_RESULT避免重复输出<br/>增加CMD汇总表格 |
| 1.2 | 2025-11-30 | 增加最大撕裂ID字段(maxId) | | | 1.3 | 2026-02-12 | 增加实时传输检测结果功能(SET_REALTIME/REALTIME_RESULT) |
| 1.1 | 2025-11-16 | 修改协议长度的格式 | | | 1.2 | 2025-11-30 | 增加最大撕裂ID字段(maxId) |
| 1.0 | 2025-11-11 | 初始版本 | | | 1.1 | 2025-11-16 | 修改协议长度的格式 |
| 1.0 | 2025-11-11 | 初始版本 |
--- ---
@ -36,6 +37,19 @@
- 支持命令应答机制 - 支持命令应答机制
- UTF-8编码 - UTF-8编码
### 1.3 CMD 汇总表
| msgType | 方向 | 说明 | 详细章节 |
|---------|------|------|----------|
| `DETECT_RESULT` | 服务器 → 客户端 | 撕裂检测结果上报(历史最大值),<br/>仅发送给**未开启**实时传输的客户端 | 4.1 |
| `REALTIME_RESULT` | 服务器 → 客户端 | 实时检测结果上报(所有撕裂详细数据),<br/>仅发送给**已开启**实时传输的客户端 | 4.2 |
| `SET_SPEED` | 客户端 → 服务器 | 设置皮带速度mm/s | 5.1 |
| `SET_CONTROL` | 客户端 → 服务器 | 启动/停止检测 | 5.2 |
| `SET_REALTIME` | 客户端 → 服务器 | 开启/关闭实时传输 | 5.3 |
| `CMD_RESPONSE` | 服务器 → 客户端 | 控制命令的统一应答 | 6.1 |
| `HEARTBEAT` | 客户端 → 服务器 | 心跳消息 | 9.1 |
| `HEARTBEAT_ACK` | 服务器 → 客户端 | 心跳应答 | 9.1 |
--- ---
## 2. 数据帧格式 ## 2. 数据帧格式
@ -89,7 +103,6 @@
### 4.1 撕裂检测结果上报 ### 4.1 撕裂检测结果上报
**消息类型**: `DETECT_RESULT` **消息类型**: `DETECT_RESULT`
**JSON格式**: **JSON格式**:
```json ```json
{ {
@ -124,15 +137,12 @@
"visimg": "/9j/4AAQSkZJRgABAQEAYABgAAD..." "visimg": "/9j/4AAQSkZJRgABAQEAYABgAAD..."
} }
``` ```
--- ---
### 4.2 实时检测结果上报 ### 4.2 实时检测结果上报
当客户端开启实时传输功能后,服务器在每次检测完成时主动上报检测结果,包含所有撕裂的详细数据。 当客户端开启实时传输功能后,服务器在每次检测完成时主动上报检测结果,包含所有撕裂的详细数据。
**消息类型**: `REALTIME_RESULT` **消息类型**: `REALTIME_RESULT`
**JSON格式**: **JSON格式**:
```json ```json
{ {
@ -153,13 +163,6 @@
"length": 85, "length": 85,
"width": 20, "width": 20,
"depth": 5 "depth": 5
},
{
"id": 10003,
"status": 1,
"length": 42,
"width": 15,
"depth": 3
} }
], ],
"visimg": "iVBORw0KGgoAAAANSUhEUgAAAAUA..." "visimg": "iVBORw0KGgoAAAANSUhEUgAAAAUA..."
@ -200,7 +203,7 @@
- 实时传输功能需要客户端通过 `SET_REALTIME` 命令开启 - 实时传输功能需要客户端通过 `SET_REALTIME` 命令开启
- 开启后,服务器每次完成一帧检测即上报一次结果 - 开启后,服务器每次完成一帧检测即上报一次结果
- 关闭实时传输后,服务器停止上报 `REALTIME_RESULT` 消息 - 关闭实时传输后,服务器停止上报 `REALTIME_RESULT` 消息
- `REALTIME_RESULT``DETECT_RESULT` 独立,互不影响 - `REALTIME_RESULT``DETECT_RESULT` 互斥:开启实时传输的客户端只收到 `REALTIME_RESULT`,未开启的客户端只收到 `DETECT_RESULT`
- 当 count 为 0 时tears 为空数组 `[]` - 当 count 为 0 时tears 为空数组 `[]`
**示例**(无撕裂时): **示例**(无撕裂时):

View File

@ -1,47 +1,47 @@
TEMPLATE = lib TEMPLATE = lib
CONFIG += staticlib c++11 CONFIG += staticlib c++11
DEFINES += CHESSBOARDDETECTOR_LIBRARY DEFINES += CHESSBOARDDETECTOR_LIBRARY
# 包含路径 # 包含路径
INCLUDEPATH += ./Inc INCLUDEPATH += ./Inc
INCLUDEPATH += ./_Inc INCLUDEPATH += ./_Inc
INCLUDEPATH += ../../Utils/VrCommon/Inc INCLUDEPATH += ../../Utils/VrCommon/Inc
# 头文件 # 头文件
HEADERS += \ HEADERS += \
Inc/IChessboardDetector.h \ Inc/IChessboardDetector.h \
_Inc/ChessboardDetector.h _Inc/ChessboardDetector.h
# 源文件 # 源文件
SOURCES += \ SOURCES += \
Src/ChessboardDetector.cpp Src/ChessboardDetector.cpp
# OpenCV 配置 # OpenCV 配置
win32 { win32 {
# Windows 平台使用 OpenCV 3.2.0 # Windows 平台使用 OpenCV 3.2.0
INCLUDEPATH += $$PWD/../../SDK/OpenCV320/include INCLUDEPATH += $$PWD/../../SDK/OpenCV320/include
CONFIG(release, debug|release): { CONFIG(release, debug|release): {
LIBS += -L$$PWD/../../SDK/OpenCV320/x64/vc14/lib LIBS += -L$$PWD/../../SDK/OpenCV320/x64/vc14/lib
LIBS += -lopencv_world320 LIBS += -lopencv_world320
} }
else:CONFIG(debug, debug|release): { else:CONFIG(debug, debug|release): {
LIBS += -L$$PWD/../../SDK/OpenCV320/x64/vc14/lib LIBS += -L$$PWD/../../SDK/OpenCV320/x64/vc14/lib
LIBS += -lopencv_world320d LIBS += -lopencv_world320d
} }
QMAKE_CXXFLAGS += /utf-8 QMAKE_CXXFLAGS += /utf-8
TARGET = ChessboardDetector TARGET = ChessboardDetector
} }
unix { unix {
# Unix/Linux 平台使用 OpenCV 3.2.0 ARM # Unix/Linux 平台使用 OpenCV 3.2.0 ARM
INCLUDEPATH += $$PWD/../../SDK/OpenCV320/Arm/aarch64/include INCLUDEPATH += $$PWD/../../SDK/OpenCV320/include
LIBS += -L$$PWD/../../SDK/OpenCV320/Arm/aarch64 LIBS += -L$$PWD/../../SDK/OpenCV320/Arm/aarch64
LIBS += -lopencv_core -lopencv_imgproc -lopencv_calib3d -lopencv_features2d LIBS += -lopencv_core -lopencv_imgproc -lopencv_calib3d -lopencv_features2d
QMAKE_CXXFLAGS += -fPIC QMAKE_CXXFLAGS += -fPIC
target.path = /usr/lib target.path = /usr/lib
} }
!isEmpty(target.path): INSTALLS += target !isEmpty(target.path): INSTALLS += target

2
Utils

@ -1 +1 @@
Subproject commit ed67ff85ff3bfdd54fb4b85899086a703853128b Subproject commit 7071da62403ea703981ffe77fff948266b66fdf3