消息TopicData化

This commit is contained in:
codeboss 2025-06-24 00:37:10 +08:00
parent db7dd35586
commit 3347f1c1e7
16 changed files with 531 additions and 208 deletions

View File

@ -104,13 +104,21 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="componentinfo_access.cpp" />
<ClCompile Include="entity_operate.cpp" />
<ClCompile Include="MessageLoader.cpp" />
<ClCompile Include="motion_access.cpp" />
<ClCompile Include="route_access.cpp" />
<ClCompile Include="visiblecube_access.cpp" />
<ClInclude Include="componentinfo_access.h" />
<ClInclude Include="entity_operate.h" />
<ClInclude Include="messagebasic_global.h" />
<ClInclude Include="messagebasic.h" />
<ClCompile Include="messagebasic.cpp" />
<ClInclude Include="MessageLoader.h" />
<ClInclude Include="motion_access.h" />
<ClInclude Include="route_access.h" />
<ClInclude Include="visiblecube_access.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Condition="Exists('$(QtMsBuild)\qt.targets')">

View File

@ -38,6 +38,18 @@
<ClInclude Include="motion_access.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="MessageLoader.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="visiblecube_access.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="entity_operate.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="componentinfo_access.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="route_access.cpp">
@ -46,5 +58,17 @@
<ClCompile Include="motion_access.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="MessageLoader.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="componentinfo_access.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="entity_operate.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="visiblecube_access.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@ -0,0 +1,52 @@
#include "MessageLoader.h"
#include "componentinfo_access.h"
#include "entity_operate.h"
#include "motion_access.h"
#include "route_access.h"
#include "visiblecube_access.h"
MessageLoader::MessageLoader()
{
_message_types << std::make_shared<DeduceRequest>();
_message_types << std::make_shared<RespondDefault>();
_message_types << std::make_shared<SyncRequest>();
_message_types << std::make_shared<Get3DBox>();
_message_types << std::make_shared<Box3DDesc>();
_message_types << std::make_shared<Set3DBoxD3Data>();
_message_types << std::make_shared<Set3DBoxPosture>();
_message_types << std::make_shared<Set3DBoxLLAPos>();
_message_types << std::make_shared<TypesQuery>();
_message_types << std::make_shared<TypesQueryResult>();
_message_types << std::make_shared<TempletOperate>();
_message_types << std::make_shared<EntityOperate>();
_message_types << std::make_shared<ComponentOperate>();
_message_types << std::make_shared<EntityTotalGet>();
_message_types << std::make_shared<EntityTotalList>();
_message_types << std::make_shared<ComponentDatasQuery>();
_message_types << std::make_shared<ComponentDatasQueryResult>();
_message_types << std::make_shared<ProcedureSignatureQuery>();
_message_types << std::make_shared<ProcedureSignatureQueryResult>();
_message_types << std::make_shared<NavigateWithRoute>();
_message_types << std::make_shared<StrightLineMotion>();
_message_types << std::make_shared<HorizontalArcMotion>();
_message_types << std::make_shared<VerticalArcMotion>();
_message_types << std::make_shared<MotionDeduceRequest>();
_message_types << std::make_shared<MotionSequencePreviewGet>();
_message_types << std::make_shared<PlatformMotionSequence>();
_message_types << std::make_shared<NewPlainRoute>();
_message_types << std::make_shared<RemovePlainRoute>();
_message_types << std::make_shared<PlainRouteQuery>();
_message_types << std::make_shared<PlainRouteInfo>();
_message_types << std::make_shared<PlainRouteReset>();
}
QList<std::shared_ptr<WsMessage>> MessageLoader::allType() const
{
return _message_types;
}

View File

@ -0,0 +1,14 @@
#pragma once
#include "messagebasic.h"
class MESSAGEBASIC_EXPORT MessageLoader
{
private:
QList<std::shared_ptr<WsMessage>> _message_types;
public:
MessageLoader();
QList<std::shared_ptr<WsMessage>> allType() const;
};

View File

@ -0,0 +1,21 @@
#include "componentinfo_access.h"
std::shared_ptr<TopicData> ComponentDatasQuery::newDefault() const
{
return std::make_shared<ComponentDatasQuery>();
}
std::shared_ptr<TopicData> ComponentDatasQueryResult::newDefault() const
{
return std::make_shared<ComponentDatasQueryResult>();
}
std::shared_ptr<TopicData> ProcedureSignatureQuery::newDefault() const
{
return std::make_shared<ProcedureSignatureQuery>();
}
std::shared_ptr<TopicData> ProcedureSignatureQueryResult::newDefault() const
{
return std::make_shared< ProcedureSignatureQueryResult>();
}

View File

@ -0,0 +1,49 @@
#pragma once
#include "messagebasic.h"
/// <summary>
/// 获取指定实体的所有组件数据
/// </summary>
struct MESSAGEBASIC_EXPORT ComponentDatasQuery : public AbstractMessage {
ComponentDatasQuery();
std::shared_ptr<TopicData> newDefault() const override;
};
/// <summary>
/// 组件数据查询结果
/// </summary>
struct MESSAGEBASIC_EXPORT ComponentDatasQueryResult : public AbstractMessage {
QJsonObject _entity_json;
ComponentDatasQueryResult();
// 通过 WsMessage 继承
std::shared_ptr<TopicData> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
/// <summary>
/// 处理过程签名查询
/// </summary>
struct MESSAGEBASIC_EXPORT ProcedureSignatureQuery : public AbstractMessage {
ProcedureSignatureQuery();
std::shared_ptr<TopicData> newDefault() const override;
};
/// <summary>
/// 处理过程签名查询结果
/// </summary>
struct MESSAGEBASIC_EXPORT ProcedureSignatureQueryResult : public AbstractMessage
{
QList<WsRespondSignatureType> _signature_list;
ProcedureSignatureQueryResult();
// 通过 WsMessage 继承
std::shared_ptr<TopicData> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};

View File

@ -0,0 +1,37 @@
#include "entity_operate.h"
std::shared_ptr<TopicData> TypesQuery::newDefault() const
{
return std::make_shared<TypesQuery>();
}
std::shared_ptr<TopicData> TypesQueryResult::newDefault() const
{
return std::make_shared<TypesQueryResult>();
}
std::shared_ptr<TopicData> TempletOperate::newDefault() const
{
return std::make_shared<TempletOperate>();
}
std::shared_ptr<TopicData> EntityOperate::newDefault() const
{
return std::make_shared<EntityOperate>();
}
std::shared_ptr<TopicData> ComponentOperate::newDefault() const
{
return std::make_shared<ComponentOperate>();
}
std::shared_ptr<TopicData> EntityTotalGet::newDefault() const
{
return std::make_shared<EntityTotalGet>();
}
std::shared_ptr<TopicData> EntityTotalList::newDefault() const
{
return std::make_shared<EntityTotalList>();
}

View File

@ -0,0 +1,102 @@
#pragma once
#include "messagebasic.h"
/// <summary>
/// 查询系统中的组件类型和实体类型
/// </summary>
struct MESSAGEBASIC_EXPORT TypesQuery : public AbstractMessage {
TypesQuery();
std::shared_ptr<TopicData> newDefault() const override;
};
/// <summary>
/// 返回系统内所有的组件类型和实体模板类型
/// </summary>
struct MESSAGEBASIC_EXPORT TypesQueryResult : public AbstractMessage {
QStringList _component_types;
QHash<QString, uint64_t> _entity_templets;
TypesQueryResult();
// 通过 WsMessage 继承
std::shared_ptr<TopicData> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
/// <summary>
/// 操作类型
/// </summary>
enum class EntityOperateType {
NEW, DELETE, MODIFY
};
/// <summary>
/// 模板操作支持增、删、改
/// </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();
// 通过 WsMessage 继承
std::shared_ptr<TopicData> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
/// <summary>
/// 实体构造操作
/// </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();
// 通过 WsMessage 继承
std::shared_ptr<TopicData> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
/// <summary>
/// 对指定实体的组件进行操作
/// </summary>
struct MESSAGEBASIC_EXPORT ComponentOperate : public AbstractMessage {
uint64_t _entity_id_within_0x2ff_0xffffffffffffffff = 0x2ff;
QStringList _component_types;
ComponentOperate();
// 通过 WsMessage 继承
std::shared_ptr<TopicData> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
/// <summary>
/// 获取所有实体句柄
/// </summary>
struct MESSAGEBASIC_EXPORT EntityTotalGet : public AbstractMessage {
EntityTotalGet();
std::shared_ptr<TopicData> newDefault() const override;
};
/// <summary>
/// 所有实体列表
/// </summary>
struct MESSAGEBASIC_EXPORT EntityTotalList : public AbstractMessage {
QList<uint64_t> _entities_list;
EntityTotalList();
// 通过 WsMessage 继承
std::shared_ptr<TopicData> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};

View File

@ -1,4 +1,7 @@
#include "messagebasic.h"
#include "visiblecube_access.h"
#include "entity_operate.h"
#include "componentinfo_access.h"
#include <QVariant>
void from_to_save(uint64_t f, uint64_t t, QJsonObject& o) {
@ -14,11 +17,21 @@ DeduceRequest::DeduceRequest()
:AbstractMessage(NAME(DeduceRequest)) {
}
std::shared_ptr<TopicData> DeduceRequest::newDefault() const
{
return std::make_shared<DeduceRequest>();
}
SyncRequest::SyncRequest()
:AbstractMessage(NAME(SyncRequest)),
_time_current(0) {
}
std::shared_ptr<TopicData> SyncRequest::newDefault() const
{
return std::make_shared<SyncRequest>();
}
void SyncRequest::recoveryFrom(const QJsonObject& obj)
{
AbstractMessage::recoveryFrom(obj);
@ -36,6 +49,11 @@ RespondDefault::RespondDefault()
_time_consume(0) {
}
std::shared_ptr<TopicData> RespondDefault::newDefault() const
{
return std::make_shared<RespondDefault>();
}
void RespondDefault::recoveryFrom(const QJsonObject& obj)
{
AbstractMessage::recoveryFrom(obj);

View File

@ -39,11 +39,26 @@ public:
uint64_t sourceEntity() const override;
};
/// <summary>
/// 时间同步消息
/// </summary>
struct MESSAGEBASIC_EXPORT SyncRequest : public AbstractMessage {
double _time_current;
SyncRequest();
// 通过 WsMessage 继承
std::shared_ptr<TopicData> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
/// <summary>
/// 推演请求
/// </summary>
struct MESSAGEBASIC_EXPORT DeduceRequest : public AbstractMessage {
DeduceRequest();
std::shared_ptr<TopicData> newDefault() const override;
};
/// <summary>
@ -57,214 +72,7 @@ struct MESSAGEBASIC_EXPORT RespondDefault : public AbstractMessage {
RespondDefault();
// 通过 WsMessage 继承
std::shared_ptr<TopicData> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
/// <summary>
/// 时间同步消息
/// </summary>
struct MESSAGEBASIC_EXPORT SyncRequest : public AbstractMessage {
double _time_current;
SyncRequest();
// 通过 WsMessage 继承
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
// 体积盒可视化插件定义消息 =======================================================
/// <summary>
/// 获取体积盒详细数据
/// </summary>
struct MESSAGEBASIC_EXPORT Get3DBox : public AbstractMessage {
Get3DBox();
};
/// <summary>
/// 姿态数据结构定义
/// </summary>
struct Posture {
double _azimuth_deg = 0;
double _pitch_deg = 0;
double _roll_deg = 0;
};
/// <summary>
/// 三维数据结构定义
/// </summary>
struct VolumeData {
double _length_m = 0;
double _width_m = 0;
double _height_m = 0;
};
/// <summary>
/// 体积盒详细数据定义
/// </summary>
struct MESSAGEBASIC_EXPORT Box3DDesc : public AbstractMessage {
VolumeData _d3_data;
Posture _posture_d3;
LonLatAlt _lla_pos;
Box3DDesc();
// 通过 WsMessage 继承
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
struct MESSAGEBASIC_EXPORT Set3DBoxD3Data : public AbstractMessage {
VolumeData _d3_data;
Set3DBoxD3Data();
// 通过 WsMessage 继承
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
struct MESSAGEBASIC_EXPORT Set3DBoxPosture : public AbstractMessage
{
Posture _posture_d3;
Set3DBoxPosture();
// 通过 WsMessage 继承
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
struct MESSAGEBASIC_EXPORT Set3DBoxLLAPos : public AbstractMessage
{
LonLatAlt _lla_pos;
Set3DBoxLLAPos();
// 通过 WsMessage 继承
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
// 实体构造消息定义 ==========================================
/// <summary>
/// 查询系统重的组件类型和实体类型
/// </summary>
struct MESSAGEBASIC_EXPORT TypesQuery : public AbstractMessage {
TypesQuery();
};
/// <summary>
/// 返回系统内所有的组件类型和实体模板类型
/// </summary>
struct MESSAGEBASIC_EXPORT TypesQueryResult : public AbstractMessage {
QStringList _component_types;
QHash<QString, uint64_t> _entity_templets;
TypesQueryResult();
// 通过 WsMessage 继承
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
/// <summary>
/// 操作类型
/// </summary>
enum class EntityOperateType {
NEW, DELETE, MODIFY
};
/// <summary>
/// 模板操作支持增、删、改
/// </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();
// 通过 WsMessage 继承
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
/// <summary>
/// 实体构造操作
/// </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();
// 通过 WsMessage 继承
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();
// 通过 WsMessage 继承
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
/// <summary>
/// 获取所有实体句柄
/// </summary>
struct MESSAGEBASIC_EXPORT EntityTotalGet : public AbstractMessage {
EntityTotalGet();
};
/// <summary>
/// 所有实体列表
/// </summary>
struct MESSAGEBASIC_EXPORT EntityTotalList : public AbstractMessage {
QList<uint64_t> _entities_list;
EntityTotalList();
// 通过 WsMessage 继承
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
// componoents_desc ===================================
/// <summary>
/// 获取指定实体的所有组件数据
/// </summary>
struct MESSAGEBASIC_EXPORT ComponentDatasQuery : public AbstractMessage {
ComponentDatasQuery();
};
struct MESSAGEBASIC_EXPORT ComponentDatasQueryResult : public AbstractMessage {
QJsonObject _entity_json;
ComponentDatasQueryResult();
// 通过 WsMessage 继承
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
struct MESSAGEBASIC_EXPORT ProcedureSignatureQuery : public AbstractMessage {
ProcedureSignatureQuery();
};
struct MESSAGEBASIC_EXPORT ProcedureSignatureQueryResult : public AbstractMessage
{
QList<WsRespondSignatureType> _signature_list;
ProcedureSignatureQueryResult();
// 通过 WsMessage 继承
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};

View File

@ -24,6 +24,11 @@ void NavigateWithRoute::saveTo(QJsonObject& obj) const
UINT64_SAVE(_drive_mode);
}
std::shared_ptr<TopicData> NavigateWithRoute::newDefault() const
{
return std::make_shared<NavigateWithRoute>();
}
#include <QJsonArray>
#include <QJsonObject>
MotionSequencePreviewGet::MotionSequencePreviewGet()
@ -31,12 +36,22 @@ MotionSequencePreviewGet::MotionSequencePreviewGet()
}
std::shared_ptr<TopicData> MotionSequencePreviewGet::newDefault() const
{
return std::make_shared<MotionSequencePreviewGet>();
}
PlatformMotionSequence::PlatformMotionSequence()
:AbstractMessage(NAME(PlatformMotionSequence))
{
}
std::shared_ptr<TopicData> PlatformMotionSequence::newDefault() const
{
return std::shared_ptr<PlatformMotionSequence>();
}
void PlatformMotionSequence::recoveryFrom(const QJsonObject& obj)
{
throw - 1;
@ -87,6 +102,11 @@ QVector3D StrightLineMotion::speedAtTimeSpan(double time) const
return QVector3D(0, vspeed, 0);
}
std::shared_ptr<TopicData> StrightLineMotion::newDefault() const
{
return std::make_shared<StrightLineMotion>();
}
void StrightLineMotion::recoveryFrom(const QJsonObject& obj)
{
AbstractMessage::recoveryFrom(obj);
@ -139,6 +159,11 @@ QVector3D HorizontalArcMotion::speedAtTimeSpan(double time) const
return speed_nv.normalized() * _speed_motion;
}
std::shared_ptr<TopicData> HorizontalArcMotion::newDefault() const
{
return std::make_shared<HorizontalArcMotion>();
}
void HorizontalArcMotion::recoveryFrom(const QJsonObject& obj)
{
AbstractMessage::recoveryFrom(obj);
@ -203,6 +228,11 @@ QVector3D VerticalArcMotion::speedAtTimeSpan(double time) const
return speed_nv.normalized() * _speed_motion;
}
std::shared_ptr<TopicData> VerticalArcMotion::newDefault() const
{
return std::make_shared<VerticalArcMotion>();
}
void VerticalArcMotion::recoveryFrom(const QJsonObject& obj)
{
AbstractMessage::recoveryFrom(obj);
@ -233,6 +263,11 @@ MotionDeduceRequest::MotionDeduceRequest()
: AbstractMessage(NAME(MotionDeduceRequest)) {
}
std::shared_ptr<TopicData> MotionDeduceRequest::newDefault() const
{
return std::make_shared<MotionDeduceRequest>();
}
void MotionDeduceRequest::recoveryFrom(const QJsonObject& obj)
{
AbstractMessage::recoveryFrom(obj);

View File

@ -19,6 +19,7 @@ struct MESSAGEBASIC_EXPORT NavigateWithRoute : public AbstractMessage {
NavigateWithRoute();
// Serializable
std::shared_ptr<TopicData> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
@ -61,6 +62,7 @@ struct MESSAGEBASIC_EXPORT MotionDeduceRequest : public AbstractMessage {
MotionDeduceRequest();
// Serializable
std::shared_ptr<TopicData> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
@ -70,6 +72,7 @@ struct MESSAGEBASIC_EXPORT MotionDeduceRequest : public AbstractMessage {
/// </summary>
struct MESSAGEBASIC_EXPORT MotionSequencePreviewGet : public AbstractMessage {
MotionSequencePreviewGet();
std::shared_ptr<TopicData> newDefault() const override;
};
/// <summary>
@ -81,6 +84,7 @@ struct MESSAGEBASIC_EXPORT PlatformMotionSequence : public AbstractMessage {
PlatformMotionSequence();
// Serializable
std::shared_ptr<TopicData> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
@ -116,6 +120,7 @@ struct MESSAGEBASIC_EXPORT StrightLineMotion : public PlatformMotionCommand {
QVector3D posAtTimeSpan(double time) const override;
QVector3D speedAtTimeSpan(double time) const override;
std::shared_ptr<TopicData> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
@ -149,6 +154,7 @@ struct MESSAGEBASIC_EXPORT HorizontalArcMotion : public PlatformMotionCommand {
QVector3D posAtTimeSpan(double time) const override;
QVector3D speedAtTimeSpan(double time) const override;
std::shared_ptr<TopicData> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
@ -181,6 +187,7 @@ struct MESSAGEBASIC_EXPORT VerticalArcMotion : public PlatformMotionCommand {
QVector3D posAtTimeSpan(double time) const override;
QVector3D speedAtTimeSpan(double time) const override;
std::shared_ptr<TopicData> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};

View File

@ -4,6 +4,11 @@ PlainRouteReset::PlainRouteReset()
:AbstractMessage(NAME(PlainRouteReset)) {
}
std::shared_ptr<TopicData> PlainRouteReset::newDefault() const
{
return std::make_shared<PlainRouteReset>();
}
void PlainRouteReset::recoveryFrom(const QJsonObject& obj)
{
AbstractMessage::recoveryFrom(obj);
@ -37,6 +42,11 @@ NewPlainRoute::NewPlainRoute()
:AbstractMessage(NAME(NewPlainRoute)) {
}
std::shared_ptr<TopicData> NewPlainRoute::newDefault() const
{
return std::make_shared<NewPlainRoute>();
}
void NewPlainRoute::recoveryFrom(const QJsonObject& obj)
{
AbstractMessage::recoveryFrom(obj);
@ -55,6 +65,11 @@ RemovePlainRoute::RemovePlainRoute()
}
std::shared_ptr<TopicData> RemovePlainRoute::newDefault() const
{
return std::make_shared<RemovePlainRoute>();
}
void RemovePlainRoute::recoveryFrom(const QJsonObject& obj)
{
AbstractMessage::recoveryFrom(obj);
@ -73,6 +88,11 @@ PlainRouteQuery::PlainRouteQuery()
}
std::shared_ptr<TopicData> PlainRouteQuery::newDefault() const
{
return std::make_shared<PlainRouteQuery>();
}
void PlainRouteQuery::recoveryFrom(const QJsonObject& obj)
{
AbstractMessage::recoveryFrom(obj);
@ -91,6 +111,11 @@ PlainRouteInfo::PlainRouteInfo()
}
std::shared_ptr<TopicData> PlainRouteInfo::newDefault() const
{
return std::make_shared<PlainRouteInfo>();
}
void PlainRouteInfo::recoveryFrom(const QJsonObject& obj)
{
RespondDefault::recoveryFrom(obj);

View File

@ -11,6 +11,7 @@ struct MESSAGEBASIC_EXPORT NewPlainRoute : public AbstractMessage {
NewPlainRoute();
// Serializable
std::shared_ptr<TopicData> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
@ -24,6 +25,7 @@ struct MESSAGEBASIC_EXPORT RemovePlainRoute : public AbstractMessage {
RemovePlainRoute();
// Serializable
std::shared_ptr<TopicData> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
@ -38,6 +40,7 @@ struct MESSAGEBASIC_EXPORT PlainRouteReset : public AbstractMessage {
PlainRouteReset();
// Serializable
std::shared_ptr<TopicData> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
@ -51,6 +54,7 @@ struct MESSAGEBASIC_EXPORT PlainRouteQuery : public AbstractMessage {
PlainRouteQuery();
// Serializable
std::shared_ptr<TopicData> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
@ -65,6 +69,7 @@ struct MESSAGEBASIC_EXPORT PlainRouteInfo : public RespondDefault {
PlainRouteInfo();
// Serializable
std::shared_ptr<TopicData> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};

View File

@ -0,0 +1,28 @@
#include "visiblecube_access.h"
std::shared_ptr<TopicData> Get3DBox::newDefault() const
{
return std::make_shared<Get3DBox>();
}
std::shared_ptr<TopicData> Box3DDesc::newDefault() const
{
return std::make_shared<Box3DDesc>();
}
std::shared_ptr<TopicData> Set3DBoxD3Data::newDefault() const
{
return std::make_shared<Set3DBoxD3Data>();
}
std::shared_ptr<TopicData> Set3DBoxPosture::newDefault() const
{
return std::make_shared<Set3DBoxPosture>();
}
std::shared_ptr<TopicData> Set3DBoxLLAPos::newDefault() const
{
return std::make_shared<Set3DBoxLLAPos>();
}

View File

@ -0,0 +1,90 @@
#pragma once
#include "messagebasic.h"
// 体积盒可视化插件定义消息 =======================================================
/// <summary>
/// 获取体积盒详细数据
/// </summary>
struct MESSAGEBASIC_EXPORT Get3DBox : public AbstractMessage {
Get3DBox();
std::shared_ptr<TopicData> newDefault() const override;
};
/// <summary>
/// 姿态数据结构定义
/// </summary>
struct Posture {
double _azimuth_deg = 0;
double _pitch_deg = 0;
double _roll_deg = 0;
};
/// <summary>
/// 三维数据结构定义
/// </summary>
struct VolumeData {
double _length_m = 0;
double _width_m = 0;
double _height_m = 0;
};
/// <summary>
/// 体积盒详细数据定义
/// </summary>
struct MESSAGEBASIC_EXPORT Box3DDesc : public AbstractMessage {
VolumeData _d3_data;
Posture _posture_d3;
LonLatAlt _lla_pos;
Box3DDesc();
// 通过 WsMessage 继承
std::shared_ptr<TopicData> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
/// <summary>
/// 设置三维数据
/// </summary>
struct MESSAGEBASIC_EXPORT Set3DBoxD3Data : public AbstractMessage {
VolumeData _d3_data;
Set3DBoxD3Data();
// 通过 WsMessage 继承
std::shared_ptr<TopicData> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
/// <summary>
/// 设置姿态数据
/// </summary>
struct MESSAGEBASIC_EXPORT Set3DBoxPosture : public AbstractMessage
{
Posture _posture_d3;
Set3DBoxPosture();
// 通过 WsMessage 继承
std::shared_ptr<TopicData> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
/// <summary>
/// 设置地理定位
/// </summary>
struct MESSAGEBASIC_EXPORT Set3DBoxLLAPos : public AbstractMessage
{
LonLatAlt _lla_pos;
Set3DBoxLLAPos();
// 通过 WsMessage 继承
std::shared_ptr<TopicData> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};