2025-06-14 16:05:57 +00:00
|
|
|
|
#pragma once
|
|
|
|
|
#include "messagebasic.h"
|
|
|
|
|
|
2025-06-21 04:54:39 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// ָ<><D6B8><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>ģʽ
|
|
|
|
|
/// </summary>
|
|
|
|
|
enum class NavigateDriveMode {
|
|
|
|
|
Cruise, // Ѳ<><D1B2>ģʽ<C4A3><CABD><EFBFBD><EFBFBD>;<EFBFBD><CDBE>Ϯģʽ
|
|
|
|
|
FullSpeed,// ȫ<><C8AB>ģʽ<C4A3><CABD>ս<EFBFBD><D5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
ReachStop, // ͣפģʽ
|
|
|
|
|
};
|
2025-06-14 16:05:57 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
/// </summary>
|
|
|
|
|
struct MESSAGEBASIC_EXPORT NavigateWithRoute : public AbstractMessage {
|
2025-06-21 04:54:39 +00:00
|
|
|
|
QString _route_name; // <20>滮<EFBFBD><E6BBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
NavigateDriveMode _drive_mode; // <20><><EFBFBD><EFBFBD>ģʽ
|
2025-06-14 16:05:57 +00:00
|
|
|
|
|
|
|
|
|
NavigateWithRoute();
|
|
|
|
|
|
|
|
|
|
// Serializable
|
2025-06-23 16:37:10 +00:00
|
|
|
|
std::shared_ptr<TopicData> newDefault() const override;
|
2025-06-14 16:05:57 +00:00
|
|
|
|
void recoveryFrom(const QJsonObject& obj) override;
|
|
|
|
|
void saveTo(QJsonObject& obj) const override;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2025-06-21 04:54:39 +00:00
|
|
|
|
/// ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪY<CEAA><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪX<CEAA><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪZ
|
2025-06-14 16:05:57 +00:00
|
|
|
|
/// </summary>
|
2025-06-21 04:54:39 +00:00
|
|
|
|
struct MESSAGEBASIC_EXPORT PlatformMotionCommand : public AbstractMessage {
|
|
|
|
|
PlatformMotionCommand(const QString &nm);
|
2025-06-21 07:56:59 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼʱ<CABC><CAB1>
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
virtual double startTimepoint() const = 0;
|
2025-06-14 16:05:57 +00:00
|
|
|
|
/// <summary>
|
2025-06-21 04:54:39 +00:00
|
|
|
|
/// <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
2025-06-14 16:05:57 +00:00
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
2025-06-21 04:54:39 +00:00
|
|
|
|
virtual double timeExpend() const = 0;
|
2025-06-14 16:05:57 +00:00
|
|
|
|
/// <summary>
|
2025-06-21 04:54:39 +00:00
|
|
|
|
/// ָ<><D6B8>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
2025-06-14 16:05:57 +00:00
|
|
|
|
/// </summary>
|
2025-06-21 04:54:39 +00:00
|
|
|
|
/// <param name="time"></param>
|
|
|
|
|
/// <returns><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ</returns>
|
2025-06-22 02:34:20 +00:00
|
|
|
|
virtual QVector3D posAtTimeSpan(double time) const = 0;
|
2025-06-14 16:05:57 +00:00
|
|
|
|
/// <summary>
|
2025-06-21 04:54:39 +00:00
|
|
|
|
/// ָ<><D6B8>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>ʸ<EFBFBD><CAB8>
|
2025-06-14 16:05:57 +00:00
|
|
|
|
/// </summary>
|
2025-06-21 04:54:39 +00:00
|
|
|
|
/// <param name="time"></param>
|
|
|
|
|
/// <returns><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ</returns>
|
2025-06-22 02:34:20 +00:00
|
|
|
|
virtual QVector3D speedAtTimeSpan(double time) const = 0;
|
2025-06-21 07:56:59 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|
|
|
|
/// </summary>
|
|
|
|
|
struct MESSAGEBASIC_EXPORT MotionDeduceRequest : public AbstractMessage {
|
|
|
|
|
double _target_time = 0;
|
|
|
|
|
|
|
|
|
|
MotionDeduceRequest();
|
|
|
|
|
|
|
|
|
|
// Serializable
|
2025-06-23 16:37:10 +00:00
|
|
|
|
std::shared_ptr<TopicData> newDefault() const override;
|
2025-06-21 07:56:59 +00:00
|
|
|
|
void recoveryFrom(const QJsonObject& obj) override;
|
|
|
|
|
void saveTo(QJsonObject& obj) const override;
|
2025-06-14 16:05:57 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/// <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();
|
2025-06-23 16:37:10 +00:00
|
|
|
|
std::shared_ptr<TopicData> newDefault() const override;
|
2025-06-14 16:05:57 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/// <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
|
2025-06-23 16:37:10 +00:00
|
|
|
|
std::shared_ptr<TopicData> newDefault() const override;
|
2025-06-14 16:05:57 +00:00
|
|
|
|
void recoveryFrom(const QJsonObject& obj) override;
|
|
|
|
|
void saveTo(QJsonObject& obj) const override;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2025-06-21 07:56:59 +00:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5> =======================================================
|
2025-06-14 16:05:57 +00:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
2025-06-21 04:54:39 +00:00
|
|
|
|
/// ֱ<><EFBFBD><DFBB><EFBFBD>
|
2025-06-14 16:05:57 +00:00
|
|
|
|
/// </summary>
|
2025-06-21 04:54:39 +00:00
|
|
|
|
struct MESSAGEBASIC_EXPORT StrightLineMotion : public PlatformMotionCommand {
|
2025-06-21 07:56:59 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><>ʼʱ<CABC><CAB1>
|
|
|
|
|
/// </summary>
|
|
|
|
|
double _start_time = 0;
|
2025-06-21 04:54:39 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD>ٶȣ<D9B6>m/s
|
|
|
|
|
/// </summary>
|
|
|
|
|
double _speed_motion = 0;
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><><EFBFBD>ٶȣ<D9B6>m/s^2
|
|
|
|
|
/// </summary>
|
|
|
|
|
double _accerlate_rates = 0;
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// ·<><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
/// </summary>
|
|
|
|
|
double _length_total = 0;
|
2025-06-14 16:05:57 +00:00
|
|
|
|
|
2025-06-21 04:54:39 +00:00
|
|
|
|
StrightLineMotion();
|
|
|
|
|
|
2025-06-21 07:56:59 +00:00
|
|
|
|
double startTimepoint() const override;
|
2025-06-21 04:54:39 +00:00
|
|
|
|
double timeExpend() const override;
|
2025-06-22 02:34:20 +00:00
|
|
|
|
QVector3D posAtTimeSpan(double time) const override;
|
|
|
|
|
QVector3D speedAtTimeSpan(double time) const override;
|
2025-06-14 16:05:57 +00:00
|
|
|
|
|
2025-06-23 16:37:10 +00:00
|
|
|
|
std::shared_ptr<TopicData> newDefault() const override;
|
2025-06-14 16:05:57 +00:00
|
|
|
|
void recoveryFrom(const QJsonObject& obj) override;
|
|
|
|
|
void saveTo(QJsonObject& obj) const override;
|
2025-06-21 04:54:39 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#include <QVector3D>
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><><EFBFBD>ڻ<EFBFBD><DABB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>ˮƽ<CBAE><C6BD>Բ<D7BC><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
/// </summary>
|
|
|
|
|
struct MESSAGEBASIC_EXPORT HorizontalArcMotion : public PlatformMotionCommand {
|
2025-06-21 07:56:59 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><>ʼʱ<CABC><CAB1>
|
|
|
|
|
/// </summary>
|
|
|
|
|
double _start_time = 0;
|
2025-06-21 04:54:39 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// ת<><D7AA>Բ<EFBFBD><D4B2>,<xpos, ypos, 0>
|
|
|
|
|
/// </summary>
|
|
|
|
|
QVector3D _center_point;
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD>ת<EFBFBD>ǣ<EFBFBD><C7A3><EFBFBD>
|
|
|
|
|
/// </summary>
|
|
|
|
|
double _rotate_deg = 0;
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD>ٶȣ<D9B6>m/s
|
|
|
|
|
/// </summary>
|
|
|
|
|
double _speed_motion = 0;
|
2025-06-14 16:05:57 +00:00
|
|
|
|
|
2025-06-21 04:54:39 +00:00
|
|
|
|
HorizontalArcMotion();
|
2025-06-14 16:05:57 +00:00
|
|
|
|
|
2025-06-21 07:56:59 +00:00
|
|
|
|
double startTimepoint() const override;
|
2025-06-21 04:54:39 +00:00
|
|
|
|
double timeExpend() const override;
|
2025-06-22 02:34:20 +00:00
|
|
|
|
QVector3D posAtTimeSpan(double time) const override;
|
|
|
|
|
QVector3D speedAtTimeSpan(double time) const override;
|
2025-06-21 04:54:39 +00:00
|
|
|
|
|
2025-06-23 16:37:10 +00:00
|
|
|
|
std::shared_ptr<TopicData> newDefault() const override;
|
2025-06-21 04:54:39 +00:00
|
|
|
|
void recoveryFrom(const QJsonObject& obj) override;
|
|
|
|
|
void saveTo(QJsonObject& obj) const override;
|
2025-06-14 16:05:57 +00:00
|
|
|
|
};
|
|
|
|
|
|
2025-06-21 04:54:39 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><><EFBFBD>ڻ<EFBFBD><DABB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>Ĵ<EFBFBD>ֱ<EFBFBD><D6B1>Բ<D7BC><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
/// </summary>
|
|
|
|
|
struct MESSAGEBASIC_EXPORT VerticalArcMotion : public PlatformMotionCommand {
|
2025-06-21 07:56:59 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><>ʼʱ<CABC><CAB1>
|
|
|
|
|
/// </summary>
|
|
|
|
|
double _start_time = 0;
|
2025-06-21 04:54:39 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// ת<><D7AA>Բ<EFBFBD><D4B2>,<0, ypos, zpos>
|
|
|
|
|
/// </summary>
|
|
|
|
|
QVector3D _center_point;
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD>ת<EFBFBD>ǣ<EFBFBD><C7A3><EFBFBD>
|
|
|
|
|
/// </summary>
|
|
|
|
|
double _rotate_deg = 0;
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD>ٶȣ<D9B6>m/s
|
|
|
|
|
/// </summary>
|
|
|
|
|
double _speed_motion = 0;
|
|
|
|
|
|
|
|
|
|
VerticalArcMotion();
|
2025-06-14 16:05:57 +00:00
|
|
|
|
|
2025-06-21 07:56:59 +00:00
|
|
|
|
double startTimepoint() const override;
|
2025-06-21 04:54:39 +00:00
|
|
|
|
double timeExpend() const override;
|
2025-06-22 02:34:20 +00:00
|
|
|
|
QVector3D posAtTimeSpan(double time) const override;
|
|
|
|
|
QVector3D speedAtTimeSpan(double time) const override;
|
2025-06-21 04:54:39 +00:00
|
|
|
|
|
2025-06-23 16:37:10 +00:00
|
|
|
|
std::shared_ptr<TopicData> newDefault() const override;
|
2025-06-21 04:54:39 +00:00
|
|
|
|
void recoveryFrom(const QJsonObject& obj) override;
|
|
|
|
|
void saveTo(QJsonObject& obj) const override;
|
2025-06-14 16:05:57 +00:00
|
|
|
|
};
|