72 lines
2.2 KiB
C
Raw Normal View History

#ifndef PROTOCOLCOMMON_H
#define PROTOCOLCOMMON_H
#include <functional>
#include <vector>
#include <cstdint>
/**
* @brief
*/
struct RobotCoordinate {
float x; // X坐标
float y; // Y坐标
float z; // Z坐标
float rx; // X轴旋转
float ry; // Y轴旋转
float rz; // Z轴旋转
};
/**
* @brief x,y,z,rz
*/
struct TargetPosition {
float x; // X坐标
float y; // Y坐标
float z; // Z坐标
float rz; // Z轴旋转yaw角
uint16_t cameraId; // 相机ID从1开始编号
};
/**
* @brief
*/
struct MultiTargetData {
uint16_t count; // 目标数量
uint16_t cameraId; // 当前检测的相机ID从1开始编号
std::vector<TargetPosition> targets; // 目标位置列表
MultiTargetData() : count(0), cameraId(1) {} // 默认相机ID为1
};
/**
* @brief
*/
enum ConnectionStatus {
STATUS_DISCONNECTED = 0, // 断开连接
STATUS_CONNECTED = 1, // 已连接
STATUS_IDLE = 2, // 空闲状态
STATUS_WORKING = 3, // 工作中
STATUS_ERROR = 4 // 错误状态
};
/**
* @brief
* @param connected true-false-
*/
using ConnectionCallback = std::function<void(bool connected)>;
/**
* @brief
* @param startWork true-false-
* @param cameraId ID112...
*/
using WorkSignalCallback = std::function<bool(bool startWork, int cameraId)>;
// 工作状态定义(公共常量)
static const uint16_t WORK_STATUS_IDLE = 0; // 空闲
static const uint16_t WORK_STATUS_CAMERA1_DONE = 1; // 相机1工作完成
static const uint16_t WORK_STATUS_CAMERA2_DONE = 2; // 相机2工作完成
static const uint16_t WORK_STATUS_BUSY = 3; // 忙碌
#endif // PROTOCOLCOMMON_H