update
This commit is contained in:
parent
1f04de258a
commit
30739ba3c3
|
@ -2,44 +2,36 @@
|
|||
|
||||
|
||||
// ͨ¹ý ProcList ¼Ì³Ð
|
||||
std::shared_ptr<Box3DDesc> Visible3DPlugin::execute(std::shared_ptr<const Get3DBox> in) {
|
||||
auto ins = std::make_shared<Box3DDesc>();
|
||||
ins->setPosition(_self_lla);
|
||||
ins->setPosture(_self_posture);
|
||||
ins->setTarget(_bind_entity, in->sourceEntity());
|
||||
ins->setVolume(_self_d3);
|
||||
return ins;
|
||||
}
|
||||
|
||||
void Visible3DPlugin::recoveryFrom(const QJsonObject& obj) {
|
||||
this->_bind_entity = obj["_bind_entity"].toVariant().toULongLong();
|
||||
DBL_PEAK(_self_d3._length_m);
|
||||
DBL_PEAK(_self_d3._width_m);
|
||||
DBL_PEAK(_self_d3._height_m);
|
||||
DOUOBLE_PEAK(_self_d3._length_m);
|
||||
DOUOBLE_PEAK(_self_d3._width_m);
|
||||
DOUOBLE_PEAK(_self_d3._height_m);
|
||||
|
||||
DBL_PEAK(_self_lla._lon_deg);
|
||||
DBL_PEAK(_self_lla._lat_deg);
|
||||
DBL_PEAK(_self_lla._alt_m);
|
||||
DOUOBLE_PEAK(_self_lla._lon_deg);
|
||||
DOUOBLE_PEAK(_self_lla._lat_deg);
|
||||
DOUOBLE_PEAK(_self_lla._alt_m);
|
||||
|
||||
DBL_PEAK(_self_posture._azimuth_deg);
|
||||
DBL_PEAK(_self_posture._pitch_deg);
|
||||
DBL_PEAK(_self_posture._roll_deg);
|
||||
DOUOBLE_PEAK(_self_posture._azimuth_deg);
|
||||
DOUOBLE_PEAK(_self_posture._pitch_deg);
|
||||
DOUOBLE_PEAK(_self_posture._roll_deg);
|
||||
}
|
||||
|
||||
void Visible3DPlugin::saveTo(QJsonObject& obj) const {
|
||||
obj["_bind_entity"] = QJsonValue::fromVariant(QVariant::fromValue(this->_bind_entity));
|
||||
|
||||
DBL_SAVE(_self_d3._length_m);
|
||||
DBL_SAVE(_self_d3._width_m);
|
||||
DBL_SAVE(_self_d3._height_m);
|
||||
DOUBLE_SAVE(_self_d3._length_m);
|
||||
DOUBLE_SAVE(_self_d3._width_m);
|
||||
DOUBLE_SAVE(_self_d3._height_m);
|
||||
|
||||
DBL_SAVE(_self_lla._lon_deg);
|
||||
DBL_SAVE(_self_lla._lat_deg);
|
||||
DBL_SAVE(_self_lla._alt_m);
|
||||
DOUBLE_SAVE(_self_lla._lon_deg);
|
||||
DOUBLE_SAVE(_self_lla._lat_deg);
|
||||
DOUBLE_SAVE(_self_lla._alt_m);
|
||||
|
||||
DBL_SAVE(_self_posture._azimuth_deg);
|
||||
DBL_SAVE(_self_posture._pitch_deg);
|
||||
DBL_SAVE(_self_posture._roll_deg);
|
||||
DOUBLE_SAVE(_self_posture._azimuth_deg);
|
||||
DOUBLE_SAVE(_self_posture._pitch_deg);
|
||||
DOUBLE_SAVE(_self_posture._roll_deg);
|
||||
}
|
||||
|
||||
std::shared_ptr<WsComponent> Visible3DPlugin::defaultNew() const {
|
||||
|
@ -58,3 +50,13 @@ void Visible3DPlugin::bindEntity(uint64_t entity_id) {
|
|||
QString Visible3DPlugin::name() const {
|
||||
return NAME(Visible3DPlugin);
|
||||
}
|
||||
|
||||
void Visible3DPlugin::execute(std::shared_ptr<const Get3DBox> in, std::shared_ptr<Box3DDesc>& out)
|
||||
{
|
||||
auto ins = std::make_shared<Box3DDesc>();
|
||||
ins->setPosition(_self_lla);
|
||||
ins->setPosture(_self_posture);
|
||||
ins->setTarget(_bind_entity, in->sourceEntity());
|
||||
ins->setVolume(_self_d3);
|
||||
out = ins;
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ public:
|
|||
void bindEntity(uint64_t entity_id) override;
|
||||
QString name() const override;
|
||||
|
||||
std::shared_ptr<Box3DDesc> execute(std::shared_ptr<const Get3DBox> in) override;
|
||||
void execute(std::shared_ptr<const Get3DBox> in, std::shared_ptr<Box3DDesc>& out) override;
|
||||
|
||||
std::shared_ptr<WsComponent> defaultNew() const override;
|
||||
void recoveryFrom(const QJsonObject& obj) override;
|
||||
|
|
|
@ -27,15 +27,17 @@ public:
|
|||
/// 子类中实际处理函数
|
||||
/// </summary>
|
||||
/// <param name="in"></param>
|
||||
/// <returns></returns>
|
||||
virtual std::shared_ptr<MsgB> execute(std::shared_ptr<const MsgA> in) = 0;
|
||||
/// <param name="out"></param>
|
||||
virtual void execute(std::shared_ptr<const MsgA> in, std::shared_ptr<MsgB>& out) = 0;
|
||||
/// <summary>
|
||||
/// WsRespond构造函数
|
||||
/// </summary>
|
||||
/// <param name="map">注册函数</param>
|
||||
explicit WsRespond(QHash<WsRespondSignatureType, WsRespondEntry>& map) {
|
||||
WsRespondEntry ins = [=](std::shared_ptr<const WsMessage> in) -> std::shared_ptr<WsMessage> {
|
||||
return this->execute(std::static_pointer_cast<const MsgA>(in));
|
||||
WsRespondEntry ins = [=](std::shared_ptr<const WsMessage> in, std::shared_ptr<WsMessage>& out) {
|
||||
std::shared_ptr<MsgB> o_ptr;
|
||||
this->execute(std::static_pointer_cast<const MsgA>(in), o_ptr);
|
||||
out = o_ptr;
|
||||
};
|
||||
map[SelfType::signature()] = ins;
|
||||
}
|
||||
|
@ -71,12 +73,14 @@ struct ProcList : public _ProcRoute_<Procs...>, public WsComponent
|
|||
}
|
||||
return list;
|
||||
}
|
||||
WsRespondEntry getEntryWithSignature(const WsRespondSignatureType& t) const override
|
||||
QList<WsRespondEntry> getEntryWithSignature(const WsRespondSignatureType& t) const override
|
||||
{
|
||||
QList<WsRespondEntry> list;
|
||||
for (auto key : _ProcRoute_<>::_execute_map.keys()) {
|
||||
if (key == t)
|
||||
return _ProcRoute_<>::_execute_map[key];
|
||||
list.append(_ProcRoute_<>::_execute_map[key]);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
QList<WsRespondEntry> getEntrysWithInType(const QString& msg_type) const override
|
||||
{
|
||||
|
|
|
@ -184,34 +184,34 @@ LLAPos Box3DDesc::position() const { return this->_lla_pos; }
|
|||
void Box3DDesc::recoveryFrom(const QJsonObject& obj)
|
||||
{
|
||||
from_to_recovery(_from_id, _to_id, obj);
|
||||
DBL_PEAK(this->_d3_data._height_m);
|
||||
DBL_PEAK(this->_d3_data._length_m);
|
||||
DBL_PEAK(this->_d3_data._width_m);
|
||||
DOUOBLE_PEAK(this->_d3_data._height_m);
|
||||
DOUOBLE_PEAK(this->_d3_data._length_m);
|
||||
DOUOBLE_PEAK(this->_d3_data._width_m);
|
||||
|
||||
DBL_PEAK(this->_lla_pos._lon_deg);
|
||||
DBL_PEAK(this->_lla_pos._lat_deg);
|
||||
DBL_PEAK(this->_lla_pos._alt_m);
|
||||
DOUOBLE_PEAK(this->_lla_pos._lon_deg);
|
||||
DOUOBLE_PEAK(this->_lla_pos._lat_deg);
|
||||
DOUOBLE_PEAK(this->_lla_pos._alt_m);
|
||||
|
||||
DBL_PEAK(this->_posture_d3._azimuth_deg);
|
||||
DBL_PEAK(this->_posture_d3._pitch_deg);
|
||||
DBL_PEAK(this->_posture_d3._roll_deg);
|
||||
DOUOBLE_PEAK(this->_posture_d3._azimuth_deg);
|
||||
DOUOBLE_PEAK(this->_posture_d3._pitch_deg);
|
||||
DOUOBLE_PEAK(this->_posture_d3._roll_deg);
|
||||
}
|
||||
|
||||
void Box3DDesc::saveTo(QJsonObject& obj) const
|
||||
{
|
||||
from_to_save(_from_id, _to_id, obj);
|
||||
|
||||
DBL_SAVE(this->_d3_data._height_m);
|
||||
DBL_SAVE(this->_d3_data._length_m);
|
||||
DBL_SAVE(this->_d3_data._width_m);
|
||||
DOUBLE_SAVE(this->_d3_data._height_m);
|
||||
DOUBLE_SAVE(this->_d3_data._length_m);
|
||||
DOUBLE_SAVE(this->_d3_data._width_m);
|
||||
|
||||
DBL_SAVE(this->_lla_pos._lon_deg);
|
||||
DBL_SAVE(this->_lla_pos._lat_deg);
|
||||
DBL_SAVE(this->_lla_pos._alt_m);
|
||||
DOUBLE_SAVE(this->_lla_pos._lon_deg);
|
||||
DOUBLE_SAVE(this->_lla_pos._lat_deg);
|
||||
DOUBLE_SAVE(this->_lla_pos._alt_m);
|
||||
|
||||
DBL_SAVE(this->_posture_d3._azimuth_deg);
|
||||
DBL_SAVE(this->_posture_d3._pitch_deg);
|
||||
DBL_SAVE(this->_posture_d3._roll_deg);
|
||||
DOUBLE_SAVE(this->_posture_d3._azimuth_deg);
|
||||
DOUBLE_SAVE(this->_posture_d3._pitch_deg);
|
||||
DOUBLE_SAVE(this->_posture_d3._roll_deg);
|
||||
}
|
||||
|
||||
QString Box3DDesc::topicString() const
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
#include "simsbasic.h"
|
||||
|
||||
#define NAME(v) #v
|
||||
#define DBL_SAVE(u) obj[NAME(u)] = u
|
||||
#define DBL_PEAK(u) u = obj[NAME(u)].toDouble()
|
||||
#define DOUBLE_SAVE(u) obj[NAME(u)] = u
|
||||
#define DOUOBLE_PEAK(u) u = obj[NAME(u)].toDouble()
|
||||
|
||||
/// <summary>
|
||||
/// ÍÆÑÝÇëÇó
|
||||
|
|
|
@ -63,7 +63,7 @@ public:
|
|||
/// <summary>
|
||||
/// 所有消息处理单元通用接口
|
||||
/// </summary>
|
||||
using WsRespondEntry = std::function<std::shared_ptr<WsMessage>(std::shared_ptr<const WsMessage>)>;
|
||||
using WsRespondEntry = std::function<void(std::shared_ptr<const WsMessage>, std::shared_ptr<WsMessage>&)>;
|
||||
/// <summary>
|
||||
/// Respond签名类型
|
||||
/// </summary>
|
||||
|
@ -103,7 +103,7 @@ public:
|
|||
/// </summary>
|
||||
/// <param name="t">处理签名</param>
|
||||
/// <returns>处理接口</returns>
|
||||
virtual WsRespondEntry getEntryWithSignature(const WsRespondSignatureType& t) const = 0;
|
||||
virtual QList<WsRespondEntry> getEntryWithSignature(const WsRespondSignatureType& t) const = 0;
|
||||
/// <summary>
|
||||
/// 通过输入消息类型获取处理入口
|
||||
/// </summary>
|
||||
|
|
|
@ -1,15 +1,22 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.13.35825.156 d17.13
|
||||
VisualStudioVersion = 17.13.35825.156
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SimsWorld", "SimsWorld\SimsWorld.vcxproj", "{46E3FBA5-6775-4638-AE2E-935675D3B9CE}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SimsBasic", "SimsBasic\SimsBasic.vcxproj", "{DF15B899-B9AE-4EBE-8FCC-436C9DB6CEF0}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ComponentBasic", "ComponentBasic\ComponentBasic.vcxproj", "{20CFC220-4F5B-4D39-97FA-74C70768F1A7}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{DF15B899-B9AE-4EBE-8FCC-436C9DB6CEF0} = {DF15B899-B9AE-4EBE-8FCC-436C9DB6CEF0}
|
||||
{E1104048-F35B-40B7-995C-0320E689BF09} = {E1104048-F35B-40B7-995C-0320E689BF09}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MessageBasic", "MessageBasic\MessageBasic.vcxproj", "{E1104048-F35B-40B7-995C-0320E689BF09}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{DF15B899-B9AE-4EBE-8FCC-436C9DB6CEF0} = {DF15B899-B9AE-4EBE-8FCC-436C9DB6CEF0}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
|
|
Loading…
Reference in New Issue