2025-05-25 04:43:37 +00:00
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "messagebasic_global.h"
|
2025-06-07 08:44:25 +00:00
|
|
|
|
#include <simsbasic.h>
|
|
|
|
|
#include <standardglobe.h>
|
2025-06-10 04:52:59 +00:00
|
|
|
|
#include <QStringList>
|
|
|
|
|
#include <QHash>
|
2025-05-25 04:43:37 +00:00
|
|
|
|
|
|
|
|
|
#define NAME(v) #v
|
2025-05-31 04:18:43 +00:00
|
|
|
|
#define DOUBLE_SAVE(u) obj[NAME(u)] = u
|
2025-06-14 04:52:05 +00:00
|
|
|
|
#define DOUBLE_PEAK(u) u = obj[NAME(u)].toDouble()
|
2025-05-25 04:43:37 +00:00
|
|
|
|
|
2025-06-08 12:17:02 +00:00
|
|
|
|
#define UINT64_SAVE(u) obj[NAME(u)] = QJsonValue::fromVariant(QVariant::fromValue(u))
|
|
|
|
|
#define UINT64_PEAK(u) u = obj[NAME(u)].toVariant().toULongLong()
|
|
|
|
|
|
2025-06-07 15:58:50 +00:00
|
|
|
|
#define STRING_SAVE(u) obj[NAME(u)] = u
|
|
|
|
|
#define STRING_PEAK(u) u = obj[NAME(u)].toString()
|
|
|
|
|
|
|
|
|
|
#define STRLIST_SAVE(u) obj[NAME(u)] = u.join(",")
|
|
|
|
|
#define STRLIST_PEAK(u) u = obj[NAME(u)].toString().split(",")
|
|
|
|
|
|
|
|
|
|
class MESSAGEBASIC_EXPORT AbstractMessage : public WsMessage {
|
2025-06-14 06:29:43 +00:00
|
|
|
|
protected:
|
2025-05-31 03:57:32 +00:00
|
|
|
|
uint64_t _from_id = 0, _to_id = 0;
|
2025-06-07 15:58:50 +00:00
|
|
|
|
QString _topic_string;
|
2025-05-25 04:43:37 +00:00
|
|
|
|
|
2025-06-07 15:58:50 +00:00
|
|
|
|
AbstractMessage(const QString& topic);
|
2025-06-10 05:18:13 +00:00
|
|
|
|
|
|
|
|
|
public:
|
2025-06-07 15:58:50 +00:00
|
|
|
|
virtual ~AbstractMessage() = default;
|
2025-05-25 04:43:37 +00:00
|
|
|
|
|
|
|
|
|
void reset(uint64_t from, uint64_t to);
|
|
|
|
|
|
|
|
|
|
// ͨ<><CDA8> WsMessage <20>̳<EFBFBD>
|
|
|
|
|
void recoveryFrom(const QJsonObject& obj) override;
|
|
|
|
|
void saveTo(QJsonObject& obj) const override;
|
|
|
|
|
QString topicString() const override;
|
|
|
|
|
uint64_t targetEntity() const override;
|
|
|
|
|
uint64_t sourceEntity() const override;
|
|
|
|
|
};
|
|
|
|
|
|
2025-06-07 15:58:50 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
/// </summary>
|
|
|
|
|
struct MESSAGEBASIC_EXPORT DeduceRequest : public AbstractMessage {
|
|
|
|
|
DeduceRequest();
|
|
|
|
|
};
|
|
|
|
|
|
2025-05-25 04:43:37 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Ĭ<>ϵ<EFBFBD><CFB5><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
/// </summary>
|
2025-06-07 15:58:50 +00:00
|
|
|
|
struct MESSAGEBASIC_EXPORT RespondDefault : public AbstractMessage {
|
2025-05-25 04:43:37 +00:00
|
|
|
|
double _time_consume;
|
2025-06-08 12:17:02 +00:00
|
|
|
|
bool _success_mark = false;
|
|
|
|
|
QString _reason_text = "";
|
2025-05-25 04:43:37 +00:00
|
|
|
|
|
|
|
|
|
RespondDefault();
|
|
|
|
|
|
|
|
|
|
// ͨ<><CDA8> WsMessage <20>̳<EFBFBD>
|
|
|
|
|
void recoveryFrom(const QJsonObject& obj) override;
|
|
|
|
|
void saveTo(QJsonObject& obj) const override;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// ʱ<><CAB1>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
/// </summary>
|
2025-06-07 15:58:50 +00:00
|
|
|
|
struct MESSAGEBASIC_EXPORT SyncRequest : public AbstractMessage {
|
2025-05-25 04:43:37 +00:00
|
|
|
|
double _time_current;
|
|
|
|
|
|
|
|
|
|
SyncRequest();
|
|
|
|
|
|
|
|
|
|
// ͨ<><CDA8> WsMessage <20>̳<EFBFBD>
|
|
|
|
|
void recoveryFrom(const QJsonObject& obj) override;
|
|
|
|
|
void saveTo(QJsonObject& obj) const override;
|
|
|
|
|
};
|
|
|
|
|
|
2025-05-31 03:57:32 +00:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>п<EFBFBD><D0BF>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ =======================================================
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD>
|
|
|
|
|
/// </summary>
|
2025-06-07 15:58:50 +00:00
|
|
|
|
struct MESSAGEBASIC_EXPORT Get3DBox : public AbstractMessage {
|
2025-05-31 03:57:32 +00:00
|
|
|
|
Get3DBox();
|
2025-05-25 04:43:37 +00:00
|
|
|
|
};
|
|
|
|
|
|
2025-05-31 03:57:32 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><>̬<EFBFBD><CCAC><EFBFBD>ݽṹ<DDBD><E1B9B9><EFBFBD><EFBFBD>
|
|
|
|
|
/// </summary>
|
|
|
|
|
struct Posture {
|
|
|
|
|
double _azimuth_deg = 0;
|
|
|
|
|
double _pitch_deg = 0;
|
|
|
|
|
double _roll_deg = 0;
|
|
|
|
|
};
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><>ά<EFBFBD><CEAC><EFBFBD>ݽṹ<DDBD><E1B9B9><EFBFBD><EFBFBD>
|
|
|
|
|
/// </summary>
|
2025-06-14 05:07:51 +00:00
|
|
|
|
struct VolumeData {
|
2025-05-31 03:57:32 +00:00
|
|
|
|
double _length_m = 0;
|
|
|
|
|
double _width_m = 0;
|
|
|
|
|
double _height_m = 0;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD>
|
|
|
|
|
/// </summary>
|
2025-06-07 15:58:50 +00:00
|
|
|
|
struct MESSAGEBASIC_EXPORT Box3DDesc : public AbstractMessage {
|
2025-06-14 05:07:51 +00:00
|
|
|
|
VolumeData _d3_data;
|
2025-05-31 03:57:32 +00:00
|
|
|
|
Posture _posture_d3;
|
2025-06-14 05:07:51 +00:00
|
|
|
|
LonLatAltPos _lla_pos;
|
2025-05-25 04:43:37 +00:00
|
|
|
|
|
2025-05-31 03:57:32 +00:00
|
|
|
|
Box3DDesc();
|
|
|
|
|
|
2025-06-07 15:58:50 +00:00
|
|
|
|
// ͨ<><CDA8> WsMessage <20>̳<EFBFBD>
|
|
|
|
|
void recoveryFrom(const QJsonObject& obj) override;
|
|
|
|
|
void saveTo(QJsonObject& obj) const override;
|
|
|
|
|
};
|
|
|
|
|
|
2025-06-14 04:52:05 +00:00
|
|
|
|
struct MESSAGEBASIC_EXPORT Set3DBoxD3Data : public AbstractMessage {
|
2025-06-14 05:07:51 +00:00
|
|
|
|
VolumeData _d3_data;
|
2025-06-14 04:52:05 +00:00
|
|
|
|
|
|
|
|
|
Set3DBoxD3Data();
|
|
|
|
|
|
|
|
|
|
// ͨ<><CDA8> WsMessage <20>̳<EFBFBD>
|
|
|
|
|
void recoveryFrom(const QJsonObject& obj) override;
|
|
|
|
|
void saveTo(QJsonObject& obj) const override;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct MESSAGEBASIC_EXPORT Set3DBoxPosture : public AbstractMessage
|
|
|
|
|
{
|
|
|
|
|
Posture _posture_d3;
|
|
|
|
|
|
|
|
|
|
Set3DBoxPosture();
|
|
|
|
|
|
|
|
|
|
// ͨ<><CDA8> WsMessage <20>̳<EFBFBD>
|
|
|
|
|
void recoveryFrom(const QJsonObject& obj) override;
|
|
|
|
|
void saveTo(QJsonObject& obj) const override;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct MESSAGEBASIC_EXPORT Set3DBoxLLAPos : public AbstractMessage
|
|
|
|
|
{
|
2025-06-14 05:07:51 +00:00
|
|
|
|
LonLatAltPos _lla_pos;
|
2025-06-14 04:52:05 +00:00
|
|
|
|
|
|
|
|
|
Set3DBoxLLAPos();
|
|
|
|
|
|
|
|
|
|
// ͨ<><CDA8> WsMessage <20>̳<EFBFBD>
|
|
|
|
|
void recoveryFrom(const QJsonObject& obj) override;
|
|
|
|
|
void saveTo(QJsonObject& obj) const override;
|
|
|
|
|
};
|
|
|
|
|
|
2025-06-07 15:58:50 +00:00
|
|
|
|
// ʵ<>幹<EFBFBD><E5B9B9><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD> ==========================================
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2025-06-08 12:17:02 +00:00
|
|
|
|
/// <20><>ѯϵͳ<CFB5>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
/// </summary>
|
|
|
|
|
struct MESSAGEBASIC_EXPORT TypesQuery : public AbstractMessage {
|
|
|
|
|
TypesQuery();
|
|
|
|
|
};
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD>ʵ<EFBFBD><CAB5>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2025-06-07 15:58:50 +00:00
|
|
|
|
/// </summary>
|
2025-06-08 12:17:02 +00:00
|
|
|
|
struct MESSAGEBASIC_EXPORT TypesQueryResult : public AbstractMessage {
|
|
|
|
|
QStringList _component_types;
|
|
|
|
|
QHash<QString, uint64_t> _entity_templets;
|
|
|
|
|
|
|
|
|
|
TypesQueryResult();
|
|
|
|
|
// ͨ<><CDA8> WsMessage <20>̳<EFBFBD>
|
|
|
|
|
void recoveryFrom(const QJsonObject& obj) override;
|
|
|
|
|
void saveTo(QJsonObject& obj) const override;
|
|
|
|
|
};
|
2025-05-25 04:43:37 +00:00
|
|
|
|
|
2025-06-08 12:17:02 +00:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
/// </summary>
|
|
|
|
|
enum class EntityOperateType {
|
|
|
|
|
NEW, DELETE, MODIFY
|
|
|
|
|
};
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>
|
|
|
|
|
/// </summary>
|
|
|
|
|
struct MESSAGEBASIC_EXPORT TempletOperate : public AbstractMessage {
|
|
|
|
|
uint64_t _operate_code = (uint64_t)EntityOperateType::NEW;
|
|
|
|
|
QString _template_name = "";
|
|
|
|
|
uint64_t _template_id_within_0x2ff_0xffff = 0x2ff;
|
|
|
|
|
|
|
|
|
|
TempletOperate();
|
|
|
|
|
|
|
|
|
|
// ͨ<><CDA8> WsMessage <20>̳<EFBFBD>
|
|
|
|
|
void recoveryFrom(const QJsonObject& obj) override;
|
|
|
|
|
void saveTo(QJsonObject& obj) const override;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// ʵ<>幹<EFBFBD><E5B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
/// </summary>
|
|
|
|
|
struct MESSAGEBASIC_EXPORT EntityOperate : public AbstractMessage {
|
|
|
|
|
uint64_t _operate_code = (uint64_t)EntityOperateType::NEW;
|
|
|
|
|
QString _template_name = "";
|
|
|
|
|
QString _entity_name = "";
|
|
|
|
|
uint64_t _entity_id_over_0xffff = 0xffff;
|
|
|
|
|
|
|
|
|
|
EntityOperate();
|
|
|
|
|
|
|
|
|
|
// ͨ<><CDA8> WsMessage <20>̳<EFBFBD>
|
|
|
|
|
void recoveryFrom(const QJsonObject& obj) override;
|
|
|
|
|
void saveTo(QJsonObject& obj) const override;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct MESSAGEBASIC_EXPORT ComponentOperate : public AbstractMessage {
|
|
|
|
|
uint64_t _entity_id_within_0x2ff_0xffffffffffffffff = 0x2ff;
|
|
|
|
|
QStringList _component_types;
|
|
|
|
|
|
|
|
|
|
ComponentOperate();
|
2025-05-25 04:43:37 +00:00
|
|
|
|
|
|
|
|
|
// ͨ<><CDA8> WsMessage <20>̳<EFBFBD>
|
|
|
|
|
void recoveryFrom(const QJsonObject& obj) override;
|
|
|
|
|
void saveTo(QJsonObject& obj) const override;
|
2025-05-31 03:57:32 +00:00
|
|
|
|
};
|
2025-06-07 15:58:50 +00:00
|
|
|
|
|
2025-06-08 04:12:15 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
/// </summary>
|
2025-06-07 15:58:50 +00:00
|
|
|
|
struct MESSAGEBASIC_EXPORT EntityTotalGet : public AbstractMessage {
|
|
|
|
|
EntityTotalGet();
|
|
|
|
|
};
|
2025-06-08 04:12:15 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>б<EFBFBD>
|
|
|
|
|
/// </summary>
|
2025-06-07 15:58:50 +00:00
|
|
|
|
struct MESSAGEBASIC_EXPORT EntityTotalList : public AbstractMessage {
|
|
|
|
|
QList<uint64_t> _entities_list;
|
|
|
|
|
|
2025-06-08 04:12:15 +00:00
|
|
|
|
EntityTotalList();
|
|
|
|
|
|
2025-06-08 12:17:02 +00:00
|
|
|
|
// ͨ<><CDA8> WsMessage <20>̳<EFBFBD>
|
|
|
|
|
void recoveryFrom(const QJsonObject& obj) override;
|
|
|
|
|
void saveTo(QJsonObject& obj) const override;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// componoents_desc ===================================
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><>ȡָ<C8A1><D6B8>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
/// </summary>
|
2025-06-10 06:21:55 +00:00
|
|
|
|
struct MESSAGEBASIC_EXPORT ComponentDatasQuery : public AbstractMessage {
|
|
|
|
|
ComponentDatasQuery();
|
2025-06-10 12:39:10 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct MESSAGEBASIC_EXPORT ComponentDatasQueryResult : public AbstractMessage {
|
|
|
|
|
QJsonObject _entity_json;
|
|
|
|
|
|
|
|
|
|
ComponentDatasQueryResult();
|
2025-06-08 12:17:02 +00:00
|
|
|
|
|
|
|
|
|
// ͨ<><CDA8> WsMessage <20>̳<EFBFBD>
|
|
|
|
|
void recoveryFrom(const QJsonObject& obj) override;
|
|
|
|
|
void saveTo(QJsonObject& obj) const override;
|
|
|
|
|
};
|
|
|
|
|
|
2025-06-10 12:39:10 +00:00
|
|
|
|
struct MESSAGEBASIC_EXPORT ProcedureSignatureQuery : public AbstractMessage {
|
|
|
|
|
ProcedureSignatureQuery();
|
|
|
|
|
};
|
2025-06-08 12:17:02 +00:00
|
|
|
|
|
2025-06-10 12:39:10 +00:00
|
|
|
|
struct MESSAGEBASIC_EXPORT ProcedureSignatureQueryResult : public AbstractMessage
|
|
|
|
|
{
|
|
|
|
|
QList<WsRespondSignatureType> _signature_list;
|
|
|
|
|
|
|
|
|
|
ProcedureSignatureQueryResult();
|
2025-06-08 12:17:02 +00:00
|
|
|
|
|
2025-06-07 15:58:50 +00:00
|
|
|
|
// ͨ<><CDA8> WsMessage <20>̳<EFBFBD>
|
|
|
|
|
void recoveryFrom(const QJsonObject& obj) override;
|
|
|
|
|
void saveTo(QJsonObject& obj) const override;
|
|
|
|
|
};
|