diff --git a/MessageBasic/MessageBasic.vcxproj b/MessageBasic/MessageBasic.vcxproj index 34b5807..60cb910 100644 --- a/MessageBasic/MessageBasic.vcxproj +++ b/MessageBasic/MessageBasic.vcxproj @@ -104,13 +104,21 @@ + + + + + + + + diff --git a/MessageBasic/MessageBasic.vcxproj.filters b/MessageBasic/MessageBasic.vcxproj.filters index ba7057e..2e76644 100644 --- a/MessageBasic/MessageBasic.vcxproj.filters +++ b/MessageBasic/MessageBasic.vcxproj.filters @@ -38,6 +38,18 @@ Header Files + + Header Files + + + Header Files + + + Header Files + + + Header Files + @@ -46,5 +58,17 @@ Source Files + + Source Files + + + Source Files + + + Source Files + + + Source Files + \ No newline at end of file diff --git a/MessageBasic/MessageLoader.cpp b/MessageBasic/MessageLoader.cpp new file mode 100644 index 0000000..5363b4a --- /dev/null +++ b/MessageBasic/MessageLoader.cpp @@ -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(); + _message_types << std::make_shared(); + _message_types << std::make_shared(); + + _message_types << std::make_shared(); + _message_types << std::make_shared(); + _message_types << std::make_shared(); + _message_types << std::make_shared(); + _message_types << std::make_shared(); + + _message_types << std::make_shared(); + _message_types << std::make_shared(); + _message_types << std::make_shared(); + _message_types << std::make_shared(); + _message_types << std::make_shared(); + _message_types << std::make_shared(); + _message_types << std::make_shared(); + + _message_types << std::make_shared(); + _message_types << std::make_shared(); + _message_types << std::make_shared(); + _message_types << std::make_shared(); + + _message_types << std::make_shared(); + _message_types << std::make_shared(); + _message_types << std::make_shared(); + _message_types << std::make_shared(); + _message_types << std::make_shared(); + _message_types << std::make_shared(); + _message_types << std::make_shared(); + + _message_types << std::make_shared(); + _message_types << std::make_shared(); + _message_types << std::make_shared(); + _message_types << std::make_shared(); + _message_types << std::make_shared(); +} + +QList> MessageLoader::allType() const +{ + return _message_types; +} diff --git a/MessageBasic/MessageLoader.h b/MessageBasic/MessageLoader.h new file mode 100644 index 0000000..ceee94d --- /dev/null +++ b/MessageBasic/MessageLoader.h @@ -0,0 +1,14 @@ +#pragma once +#include "messagebasic.h" + +class MESSAGEBASIC_EXPORT MessageLoader +{ +private: + QList> _message_types; + +public: + MessageLoader(); + + QList> allType() const; +}; + diff --git a/MessageBasic/componentinfo_access.cpp b/MessageBasic/componentinfo_access.cpp new file mode 100644 index 0000000..f68b3e6 --- /dev/null +++ b/MessageBasic/componentinfo_access.cpp @@ -0,0 +1,21 @@ +#include "componentinfo_access.h" + +std::shared_ptr ComponentDatasQuery::newDefault() const +{ + return std::make_shared(); +} + +std::shared_ptr ComponentDatasQueryResult::newDefault() const +{ + return std::make_shared(); +} + +std::shared_ptr ProcedureSignatureQuery::newDefault() const +{ + return std::make_shared(); +} + +std::shared_ptr ProcedureSignatureQueryResult::newDefault() const +{ + return std::make_shared< ProcedureSignatureQueryResult>(); +} diff --git a/MessageBasic/componentinfo_access.h b/MessageBasic/componentinfo_access.h new file mode 100644 index 0000000..9f01ce6 --- /dev/null +++ b/MessageBasic/componentinfo_access.h @@ -0,0 +1,49 @@ +#pragma once +#include "messagebasic.h" + +/// +/// 获取指定实体的所有组件数据 +/// +struct MESSAGEBASIC_EXPORT ComponentDatasQuery : public AbstractMessage { + ComponentDatasQuery(); + + std::shared_ptr newDefault() const override; +}; + +/// +/// 组件数据查询结果 +/// +struct MESSAGEBASIC_EXPORT ComponentDatasQueryResult : public AbstractMessage { + QJsonObject _entity_json; + + ComponentDatasQueryResult(); + + // 通过 WsMessage 继承 + std::shared_ptr newDefault() const override; + void recoveryFrom(const QJsonObject& obj) override; + void saveTo(QJsonObject& obj) const override; +}; + +/// +/// 处理过程签名查询 +/// +struct MESSAGEBASIC_EXPORT ProcedureSignatureQuery : public AbstractMessage { + ProcedureSignatureQuery(); + + std::shared_ptr newDefault() const override; +}; + +/// +/// 处理过程签名查询结果 +/// +struct MESSAGEBASIC_EXPORT ProcedureSignatureQueryResult : public AbstractMessage +{ + QList _signature_list; + + ProcedureSignatureQueryResult(); + + // 通过 WsMessage 继承 + std::shared_ptr newDefault() const override; + void recoveryFrom(const QJsonObject& obj) override; + void saveTo(QJsonObject& obj) const override; +}; \ No newline at end of file diff --git a/MessageBasic/entity_operate.cpp b/MessageBasic/entity_operate.cpp new file mode 100644 index 0000000..636baaf --- /dev/null +++ b/MessageBasic/entity_operate.cpp @@ -0,0 +1,37 @@ +#include "entity_operate.h" + + +std::shared_ptr TypesQuery::newDefault() const +{ + return std::make_shared(); +} + +std::shared_ptr TypesQueryResult::newDefault() const +{ + return std::make_shared(); +} + +std::shared_ptr TempletOperate::newDefault() const +{ + return std::make_shared(); +} + +std::shared_ptr EntityOperate::newDefault() const +{ + return std::make_shared(); +} + +std::shared_ptr ComponentOperate::newDefault() const +{ + return std::make_shared(); +} + +std::shared_ptr EntityTotalGet::newDefault() const +{ + return std::make_shared(); +} + +std::shared_ptr EntityTotalList::newDefault() const +{ + return std::make_shared(); +} diff --git a/MessageBasic/entity_operate.h b/MessageBasic/entity_operate.h new file mode 100644 index 0000000..4e10538 --- /dev/null +++ b/MessageBasic/entity_operate.h @@ -0,0 +1,102 @@ +#pragma once +#include "messagebasic.h" + + +/// +/// 查询系统中的组件类型和实体类型 +/// +struct MESSAGEBASIC_EXPORT TypesQuery : public AbstractMessage { + TypesQuery(); + std::shared_ptr newDefault() const override; +}; + +/// +/// 返回系统内所有的组件类型和实体模板类型 +/// +struct MESSAGEBASIC_EXPORT TypesQueryResult : public AbstractMessage { + QStringList _component_types; + QHash _entity_templets; + + TypesQueryResult(); + // 通过 WsMessage 继承 + std::shared_ptr newDefault() const override; + void recoveryFrom(const QJsonObject& obj) override; + void saveTo(QJsonObject& obj) const override; +}; + + +/// +/// 操作类型 +/// +enum class EntityOperateType { + NEW, DELETE, MODIFY +}; +/// +/// 模板操作支持增、删、改 +/// +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 newDefault() const override; + void recoveryFrom(const QJsonObject& obj) override; + void saveTo(QJsonObject& obj) const override; +}; + +/// +/// 实体构造操作 +/// +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 newDefault() const override; + 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 继承 + std::shared_ptr newDefault() const override; + void recoveryFrom(const QJsonObject& obj) override; + void saveTo(QJsonObject& obj) const override; +}; + +/// +/// 获取所有实体句柄 +/// +struct MESSAGEBASIC_EXPORT EntityTotalGet : public AbstractMessage { + EntityTotalGet(); + std::shared_ptr newDefault() const override; +}; + +/// +/// 所有实体列表 +/// +struct MESSAGEBASIC_EXPORT EntityTotalList : public AbstractMessage { + QList _entities_list; + + EntityTotalList(); + + // 通过 WsMessage 继承 + std::shared_ptr newDefault() const override; + void recoveryFrom(const QJsonObject& obj) override; + void saveTo(QJsonObject& obj) const override; +}; \ No newline at end of file diff --git a/MessageBasic/messagebasic.cpp b/MessageBasic/messagebasic.cpp index 8371e24..940a9db 100644 --- a/MessageBasic/messagebasic.cpp +++ b/MessageBasic/messagebasic.cpp @@ -1,4 +1,7 @@ #include "messagebasic.h" +#include "visiblecube_access.h" +#include "entity_operate.h" +#include "componentinfo_access.h" #include void from_to_save(uint64_t f, uint64_t t, QJsonObject& o) { @@ -14,11 +17,21 @@ DeduceRequest::DeduceRequest() :AbstractMessage(NAME(DeduceRequest)) { } +std::shared_ptr DeduceRequest::newDefault() const +{ + return std::make_shared(); +} + SyncRequest::SyncRequest() :AbstractMessage(NAME(SyncRequest)), _time_current(0) { } +std::shared_ptr SyncRequest::newDefault() const +{ +return std::make_shared(); +} + void SyncRequest::recoveryFrom(const QJsonObject& obj) { AbstractMessage::recoveryFrom(obj); @@ -36,6 +49,11 @@ RespondDefault::RespondDefault() _time_consume(0) { } +std::shared_ptr RespondDefault::newDefault() const +{ +return std::make_shared(); +} + void RespondDefault::recoveryFrom(const QJsonObject& obj) { AbstractMessage::recoveryFrom(obj); diff --git a/MessageBasic/messagebasic.h b/MessageBasic/messagebasic.h index 9488ded..e5ad3fd 100644 --- a/MessageBasic/messagebasic.h +++ b/MessageBasic/messagebasic.h @@ -39,11 +39,26 @@ public: uint64_t sourceEntity() const override; }; +/// +/// 时间同步消息 +/// +struct MESSAGEBASIC_EXPORT SyncRequest : public AbstractMessage { + double _time_current; + + SyncRequest(); + + // 通过 WsMessage 继承 + std::shared_ptr newDefault() const override; + void recoveryFrom(const QJsonObject& obj) override; + void saveTo(QJsonObject& obj) const override; +}; + /// /// 推演请求 /// struct MESSAGEBASIC_EXPORT DeduceRequest : public AbstractMessage { DeduceRequest(); + std::shared_ptr newDefault() const override; }; /// @@ -57,214 +72,7 @@ struct MESSAGEBASIC_EXPORT RespondDefault : public AbstractMessage { RespondDefault(); // 通过 WsMessage 继承 + std::shared_ptr newDefault() const override; void recoveryFrom(const QJsonObject& obj) override; void saveTo(QJsonObject& obj) const override; }; - -/// -/// 时间同步消息 -/// -struct MESSAGEBASIC_EXPORT SyncRequest : public AbstractMessage { - double _time_current; - - SyncRequest(); - - // 通过 WsMessage 继承 - void recoveryFrom(const QJsonObject& obj) override; - void saveTo(QJsonObject& obj) const override; -}; - -// 体积盒可视化插件定义消息 ======================================================= -/// -/// 获取体积盒详细数据 -/// -struct MESSAGEBASIC_EXPORT Get3DBox : public AbstractMessage { - Get3DBox(); -}; - -/// -/// 姿态数据结构定义 -/// -struct Posture { - double _azimuth_deg = 0; - double _pitch_deg = 0; - double _roll_deg = 0; -}; -/// -/// 三维数据结构定义 -/// -struct VolumeData { - double _length_m = 0; - double _width_m = 0; - double _height_m = 0; -}; - -/// -/// 体积盒详细数据定义 -/// -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; -}; - -// 实体构造消息定义 ========================================== - -/// -/// 查询系统重的组件类型和实体类型 -/// -struct MESSAGEBASIC_EXPORT TypesQuery : public AbstractMessage { - TypesQuery(); -}; -/// -/// 返回系统内所有的组件类型和实体模板类型 -/// -struct MESSAGEBASIC_EXPORT TypesQueryResult : public AbstractMessage { - QStringList _component_types; - QHash _entity_templets; - - TypesQueryResult(); - // 通过 WsMessage 继承 - void recoveryFrom(const QJsonObject& obj) override; - void saveTo(QJsonObject& obj) const override; -}; - - -/// -/// 操作类型 -/// -enum class EntityOperateType { - NEW, DELETE, MODIFY -}; -/// -/// 模板操作支持增、删、改 -/// -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; -}; - -/// -/// 实体构造操作 -/// -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; -}; - -/// -/// 获取所有实体句柄 -/// -struct MESSAGEBASIC_EXPORT EntityTotalGet : public AbstractMessage { - EntityTotalGet(); -}; -/// -/// 所有实体列表 -/// -struct MESSAGEBASIC_EXPORT EntityTotalList : public AbstractMessage { - QList _entities_list; - - EntityTotalList(); - - // 通过 WsMessage 继承 - void recoveryFrom(const QJsonObject& obj) override; - void saveTo(QJsonObject& obj) const override; -}; - -// componoents_desc =================================== - -/// -/// 获取指定实体的所有组件数据 -/// -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 _signature_list; - - ProcedureSignatureQueryResult(); - - // 通过 WsMessage 继承 - void recoveryFrom(const QJsonObject& obj) override; - void saveTo(QJsonObject& obj) const override; -}; \ No newline at end of file diff --git a/MessageBasic/motion_access.cpp b/MessageBasic/motion_access.cpp index 6bdecea..9ca2683 100644 --- a/MessageBasic/motion_access.cpp +++ b/MessageBasic/motion_access.cpp @@ -24,6 +24,11 @@ void NavigateWithRoute::saveTo(QJsonObject& obj) const UINT64_SAVE(_drive_mode); } +std::shared_ptr NavigateWithRoute::newDefault() const +{ + return std::make_shared(); +} + #include #include MotionSequencePreviewGet::MotionSequencePreviewGet() @@ -31,12 +36,22 @@ MotionSequencePreviewGet::MotionSequencePreviewGet() } +std::shared_ptr MotionSequencePreviewGet::newDefault() const +{ + return std::make_shared(); +} + PlatformMotionSequence::PlatformMotionSequence() :AbstractMessage(NAME(PlatformMotionSequence)) { } +std::shared_ptr PlatformMotionSequence::newDefault() const +{ + return std::shared_ptr(); +} + 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 StrightLineMotion::newDefault() const +{ + return std::make_shared(); +} + 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 HorizontalArcMotion::newDefault() const +{ + return std::make_shared(); +} + 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 VerticalArcMotion::newDefault() const +{ + return std::make_shared(); +} + void VerticalArcMotion::recoveryFrom(const QJsonObject& obj) { AbstractMessage::recoveryFrom(obj); @@ -233,6 +263,11 @@ MotionDeduceRequest::MotionDeduceRequest() : AbstractMessage(NAME(MotionDeduceRequest)) { } +std::shared_ptr MotionDeduceRequest::newDefault() const +{ + return std::make_shared(); +} + void MotionDeduceRequest::recoveryFrom(const QJsonObject& obj) { AbstractMessage::recoveryFrom(obj); diff --git a/MessageBasic/motion_access.h b/MessageBasic/motion_access.h index 0977672..0b7e687 100644 --- a/MessageBasic/motion_access.h +++ b/MessageBasic/motion_access.h @@ -19,6 +19,7 @@ struct MESSAGEBASIC_EXPORT NavigateWithRoute : public AbstractMessage { NavigateWithRoute(); // Serializable + std::shared_ptr 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 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 { /// struct MESSAGEBASIC_EXPORT MotionSequencePreviewGet : public AbstractMessage { MotionSequencePreviewGet(); + std::shared_ptr newDefault() const override; }; /// @@ -81,6 +84,7 @@ struct MESSAGEBASIC_EXPORT PlatformMotionSequence : public AbstractMessage { PlatformMotionSequence(); // Serializable + std::shared_ptr 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 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 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 newDefault() const override; void recoveryFrom(const QJsonObject& obj) override; void saveTo(QJsonObject& obj) const override; }; \ No newline at end of file diff --git a/MessageBasic/route_access.cpp b/MessageBasic/route_access.cpp index 478791a..91928c7 100644 --- a/MessageBasic/route_access.cpp +++ b/MessageBasic/route_access.cpp @@ -4,6 +4,11 @@ PlainRouteReset::PlainRouteReset() :AbstractMessage(NAME(PlainRouteReset)) { } +std::shared_ptr PlainRouteReset::newDefault() const +{ + return std::make_shared(); +} + void PlainRouteReset::recoveryFrom(const QJsonObject& obj) { AbstractMessage::recoveryFrom(obj); @@ -37,6 +42,11 @@ NewPlainRoute::NewPlainRoute() :AbstractMessage(NAME(NewPlainRoute)) { } +std::shared_ptr NewPlainRoute::newDefault() const +{ + return std::make_shared(); +} + void NewPlainRoute::recoveryFrom(const QJsonObject& obj) { AbstractMessage::recoveryFrom(obj); @@ -55,6 +65,11 @@ RemovePlainRoute::RemovePlainRoute() } +std::shared_ptr RemovePlainRoute::newDefault() const +{ + return std::make_shared(); +} + void RemovePlainRoute::recoveryFrom(const QJsonObject& obj) { AbstractMessage::recoveryFrom(obj); @@ -73,6 +88,11 @@ PlainRouteQuery::PlainRouteQuery() } +std::shared_ptr PlainRouteQuery::newDefault() const +{ + return std::make_shared(); +} + void PlainRouteQuery::recoveryFrom(const QJsonObject& obj) { AbstractMessage::recoveryFrom(obj); @@ -91,6 +111,11 @@ PlainRouteInfo::PlainRouteInfo() } +std::shared_ptr PlainRouteInfo::newDefault() const +{ + return std::make_shared(); +} + void PlainRouteInfo::recoveryFrom(const QJsonObject& obj) { RespondDefault::recoveryFrom(obj); diff --git a/MessageBasic/route_access.h b/MessageBasic/route_access.h index 7fa7087..520a456 100644 --- a/MessageBasic/route_access.h +++ b/MessageBasic/route_access.h @@ -11,6 +11,7 @@ struct MESSAGEBASIC_EXPORT NewPlainRoute : public AbstractMessage { NewPlainRoute(); // Serializable + std::shared_ptr 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 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 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 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 newDefault() const override; void recoveryFrom(const QJsonObject& obj) override; void saveTo(QJsonObject& obj) const override; }; \ No newline at end of file diff --git a/MessageBasic/visiblecube_access.cpp b/MessageBasic/visiblecube_access.cpp new file mode 100644 index 0000000..7f4973c --- /dev/null +++ b/MessageBasic/visiblecube_access.cpp @@ -0,0 +1,28 @@ +#include "visiblecube_access.h" + + + +std::shared_ptr Get3DBox::newDefault() const +{ + return std::make_shared(); +} + +std::shared_ptr Box3DDesc::newDefault() const +{ + return std::make_shared(); +} + +std::shared_ptr Set3DBoxD3Data::newDefault() const +{ + return std::make_shared(); +} + +std::shared_ptr Set3DBoxPosture::newDefault() const +{ + return std::make_shared(); +} + +std::shared_ptr Set3DBoxLLAPos::newDefault() const +{ + return std::make_shared(); +} diff --git a/MessageBasic/visiblecube_access.h b/MessageBasic/visiblecube_access.h new file mode 100644 index 0000000..652bb99 --- /dev/null +++ b/MessageBasic/visiblecube_access.h @@ -0,0 +1,90 @@ +#pragma once + +#include "messagebasic.h" + + +// 体积盒可视化插件定义消息 ======================================================= +/// +/// 获取体积盒详细数据 +/// +struct MESSAGEBASIC_EXPORT Get3DBox : public AbstractMessage { + Get3DBox(); + std::shared_ptr newDefault() const override; +}; + +/// +/// 姿态数据结构定义 +/// +struct Posture { + double _azimuth_deg = 0; + double _pitch_deg = 0; + double _roll_deg = 0; +}; +/// +/// 三维数据结构定义 +/// +struct VolumeData { + double _length_m = 0; + double _width_m = 0; + double _height_m = 0; +}; + +/// +/// 体积盒详细数据定义 +/// +struct MESSAGEBASIC_EXPORT Box3DDesc : public AbstractMessage { + VolumeData _d3_data; + Posture _posture_d3; + LonLatAlt _lla_pos; + + Box3DDesc(); + + // 通过 WsMessage 继承 + std::shared_ptr newDefault() const override; + void recoveryFrom(const QJsonObject& obj) override; + void saveTo(QJsonObject& obj) const override; +}; + +/// +/// 设置三维数据 +/// +struct MESSAGEBASIC_EXPORT Set3DBoxD3Data : public AbstractMessage { + VolumeData _d3_data; + + Set3DBoxD3Data(); + + // 通过 WsMessage 继承 + std::shared_ptr newDefault() const override; + void recoveryFrom(const QJsonObject& obj) override; + void saveTo(QJsonObject& obj) const override; +}; + +/// +/// 设置姿态数据 +/// +struct MESSAGEBASIC_EXPORT Set3DBoxPosture : public AbstractMessage +{ + Posture _posture_d3; + + Set3DBoxPosture(); + + // 通过 WsMessage 继承 + std::shared_ptr newDefault() const override; + void recoveryFrom(const QJsonObject& obj) override; + void saveTo(QJsonObject& obj) const override; +}; + +/// +/// 设置地理定位 +/// +struct MESSAGEBASIC_EXPORT Set3DBoxLLAPos : public AbstractMessage +{ + LonLatAlt _lla_pos; + + Set3DBoxLLAPos(); + + // 通过 WsMessage 继承 + std::shared_ptr newDefault() const override; + void recoveryFrom(const QJsonObject& obj) override; + void saveTo(QJsonObject& obj) const override; +};