131 lines
3.1 KiB
C
131 lines
3.1 KiB
C
|
#pragma once
|
|||
|
#include "messagebasic.h"
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
struct MESSAGEBASIC_EXPORT NavigateWithRoute : public AbstractMessage {
|
|||
|
QString _route_name;
|
|||
|
|
|||
|
NavigateWithRoute();
|
|||
|
|
|||
|
// Serializable
|
|||
|
void recoveryFrom(const QJsonObject& obj) override;
|
|||
|
void saveTo(QJsonObject& obj) const override;
|
|||
|
};
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
enum MotionType {
|
|||
|
None, // û<><C3BB>
|
|||
|
StraightLine,// ֱ<><EFBFBD><DFBB><EFBFBD>
|
|||
|
StandardArc, // <20><>Բ<D7BC><D4B2>
|
|||
|
ParabolaLine,// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
Bezier2tArc, // <20><><EFBFBD>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
Bezier3tArc, // <20><><EFBFBD>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
};
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD>Ƕȷ<C7B6><C8B7><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
enum class MotionRotate {
|
|||
|
Horizontal, Vertical
|
|||
|
};
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
/// </summary>
|
|||
|
struct OrthogonalMotionCommand : public Serializable {
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD>ƽ<EFBFBD>淽<EFBFBD><E6B7BD>
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
virtual MotionRotate rotateType() const = 0;
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
virtual MotionType motionType() const = 0;
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>ٷֱ<D9B7>λ<EFBFBD><CEBB>
|
|||
|
/// </summary>
|
|||
|
/// <param name="percent"></param>
|
|||
|
/// <returns></returns>
|
|||
|
virtual LonLatAltPos posAtPercent(double percent) = 0;
|
|||
|
/// <summary>
|
|||
|
/// ָ<><D6B8><EFBFBD>ٷֱ<D9B7>λ<EFBFBD>õ<EFBFBD><C3B5>ٶ<EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <param name="percent"></param>
|
|||
|
/// <returns></returns>
|
|||
|
virtual double speedAtPercent(double percent) = 0;
|
|||
|
/// <summary>
|
|||
|
/// ָ<><D6B8><EFBFBD>ٷֱ<D9B7>λ<EFBFBD><CEBB><EFBFBD>ٶȷ<D9B6><C8B7><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <param name="percent"></param>
|
|||
|
/// <returns></returns>
|
|||
|
virtual QVector2D speedVectorAtPercent(double percent) = 0;
|
|||
|
};
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
struct PlatformMotionCommand : public AbstractMessage {
|
|||
|
QHash<MotionRotate, std::shared_ptr<OrthogonalMotionCommand>> _motion_set; //<2F>ϳɻ<CFB3><C9BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
double _arrived_time = 0; // <20>ִ<EFBFBD><D6B4>յ<EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
double _start_time = 0;
|
|||
|
|
|||
|
PlatformMotionCommand();
|
|||
|
|
|||
|
// Serializable
|
|||
|
void recoveryFrom(const QJsonObject& obj) override;
|
|||
|
void saveTo(QJsonObject& obj) const override;
|
|||
|
};
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// <20>鿴ָ<E9BFB4><D6B8>Ŀ<EFBFBD><C4BF>ʵ<EFBFBD><CAB5><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
struct MESSAGEBASIC_EXPORT MotionSequencePreviewGet : public AbstractMessage {
|
|||
|
MotionSequencePreviewGet();
|
|||
|
};
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
struct MESSAGEBASIC_EXPORT PlatformMotionSequence : public AbstractMessage {
|
|||
|
QList<std::shared_ptr<PlatformMotionCommand>> _cmd_sequence;
|
|||
|
|
|||
|
PlatformMotionSequence();
|
|||
|
|
|||
|
// Serializable
|
|||
|
void recoveryFrom(const QJsonObject& obj) override;
|
|||
|
void saveTo(QJsonObject& obj) const override;
|
|||
|
};
|
|||
|
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5> =======================================================
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// ˮƽֱ<C6BD><EFBFBD><DFBB><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
struct MESSAGEBASIC_EXPORT HorizontalLineMotionCmd : public OrthogonalMotionCommand {
|
|||
|
LonLatPos _lonlat_anchor;// <20><>ʼ<EFBFBD><CABC>
|
|||
|
double _azimuth_deg = 0; // <20><>ʼ<EFBFBD><CABC>λ<EFBFBD><CEBB>
|
|||
|
double _speed_value = 0;// <20><>ʼ<EFBFBD>ٶ<EFBFBD>
|
|||
|
double _accerlate_rate = 0;// <20><><EFBFBD>ٶ<EFBFBD>
|
|||
|
|
|||
|
HorizontalLineMotionCmd();
|
|||
|
|
|||
|
// Serializable
|
|||
|
void recoveryFrom(const QJsonObject& obj) override;
|
|||
|
void saveTo(QJsonObject& obj) const override;
|
|||
|
|
|||
|
MotionRotate rotateType() const override;
|
|||
|
MotionType motionType() const override;
|
|||
|
LonLatAltPos posAtPercent(double percent) override;
|
|||
|
|
|||
|
};
|
|||
|
|
|||
|
struct MESSAGEBASIC_EXPORT VerticalLineMotionCmd : public OrthogonalMotionCommand {
|
|||
|
|
|||
|
};
|