38 lines
1.4 KiB
C++
38 lines
1.4 KiB
C++
#pragma once
|
|
#include <motion_access.h>
|
|
#include "componentbasic.h"
|
|
|
|
/// <summary>
|
|
/// 水面平台机动组件
|
|
/// </summary>
|
|
class COMPONENTBASIC_EXPORT SurfaceMotionControlPlugin : public ProcList<
|
|
WsRespond<HorizontalArcMotion, RespondDefault>,
|
|
WsRespond<StrightLineMotion, RespondDefault>,
|
|
WsRespond<MotionDeduceRequest, RespondDefault>,
|
|
WsRespond<SyncRequest, RespondDefault>
|
|
>{
|
|
private:
|
|
std::weak_ptr<WsEntity> _bind_entity;
|
|
std::shared_ptr<const PlatformMotionCommand> _current_cmd = nullptr;
|
|
LonLatAlt _start_lla;
|
|
Posture _start_posture;
|
|
|
|
public:
|
|
SurfaceMotionControlPlugin();
|
|
|
|
// 通过 ProcList 继承
|
|
void execute(std::shared_ptr<Immediate> map, std::shared_ptr<const HorizontalArcMotion> in, QList<std::shared_ptr<RespondDefault>>& out) override;
|
|
void execute(std::shared_ptr<Immediate> map, std::shared_ptr<const StrightLineMotion> in, QList<std::shared_ptr<RespondDefault>>& out) override;
|
|
void execute(std::shared_ptr<Immediate> map, std::shared_ptr<const MotionDeduceRequest> in, QList<std::shared_ptr<RespondDefault>>& out) override;
|
|
void execute(std::shared_ptr<Immediate> map, std::shared_ptr<const SyncRequest> in, QList<std::shared_ptr<RespondDefault>>& out) override;
|
|
|
|
std::shared_ptr<WsComponent> defaultNew() const override;
|
|
void bindEntity(std::weak_ptr<WsEntity> host) override;
|
|
QString name() const override;
|
|
|
|
void recoveryFrom(const QJsonObject& obj) override;
|
|
void saveTo(QJsonObject& obj) const override;
|
|
|
|
};
|
|
|