正在上传图片(0/1)

获得当前正在执行的WayPoint

 0
手机看帖 5 634
在OSDK3.9当中
哪位大神知道,如何获得正在执行的WayPointMission当中 正在被执行的目标WayPoint。下面是我找的源代码,但是还是看不出来哪个函数可以实现这个功能。
class WaypointMission : public MissionBase
{
public:
  WaypointMission(Vehicle* vehicle = 0);
  ~WaypointMission();

  const double RAD_2_DEGREE = 57.2957795;

  VehicleCallBackHandler wayPointEventCallback;
  VehicleCallBackHandler wayPointCallback;

  /*! @brief
   *
   *  init waypoint mission settings
   *
   *  @param Info action command from DJI_ControllerCMD.h
   *  @param callback callback function
   *  @param userData user data (void ptr)
   */
  void init(WayPointInitSettings* Info = 0, VehicleCallBack callback = 0,
            UserData userData = 0);
  /*! @brief
   *
   *  init waypoint mission settings
   *
   *  @param Info action command from DJI_ControllerCMD.h
   *  @param timeout timeout to wait for ACK
   */
  ACK::ErrorCode init(WayPointInitSettings* Info, int timer);
  /*! @brief
   *
   *  start the waypt mission
   *
   *  @param callback callback function
   *  @param userData user data (void ptr)
   */
  void start(VehicleCallBack callback = 0, UserData userData = 0);
  /*! @brief
   *
   *  start the waypt mission
   *
   *  @param timer timeout to wait for ACK
   */
  ACK::ErrorCode start(int timer);
  /*! @brief
   *
   *  stop the waypt mission
   *
   *  @param callback callback function
   *  @param userData user data (void ptr)
   */
  void stop(VehicleCallBack callback = 0, UserData userData = 0);
  /*! @brief
   *
   *  stop the waypt mission
   *
   *  @param timer timeout to wait for ACK
   */
  ACK::ErrorCode stop(int timer);
  /*! @brief
   *
   *  pause the waypt mission
   *
   *  @param callback callback function
   *  @param userData user data (void ptr)
   */
  void pause(VehicleCallBack callback = 0, UserData userData = 0);
  /*! @brief
   *
   *  pause the waypt mission
   *
   *  @param timer timeout to wait for ACK
   */
  ACK::ErrorCode pause(int timer);
  /*! @brief
   *
   *  resume the waypt mission
   *
   *  @param callback callback function
   *  @param userData user data (void ptr)
   */
  void resume(VehicleCallBack callback = 0, UserData userData = 0);
  /*! @brief
   *
   *  resume the waypt mission
   *
   *  @param timer timeout to wait for ACK
   */
  ACK::ErrorCode resume(int timer);
  /*! @brief
   *
   *  setting waypt init data
   *
   *  @param value user specified WayPointInitData
   */
  void setInfo(const WayPointInitSettings& value);
  /*!
   * @Brief Read WayPoint mission settings from the flight controller
   *
   * @Return Information about uploaded WayPoint mission, error if
   * mission settings not uploaded.
   *
   */
  ACK::WayPointInit getWaypointSettings(int timer);
  /*!
   * @brief Read WayPoint mission settings from the flight controller
   *
   * Information about uploaded WayPoint mission, error if
   * mission settings not uploaded will be handled in a user defined or
   * default callback.
   */
  void getWaypointSettings(VehicleCallBack callback, UserData userData);
  /*!
   * @brief Read WayPoint index settings from the flight controller
   *
   * @return Information about uploaded WayPoint index, error if
   * index not uploaded.
   */
  ACK::WayPointIndex getIndex(uint8_t index, int timer);
  /*!
   * @brief Read WayPoint index settings from the flight controller
   *
   * Information about uploaded WayPoint index, error if
   * index not uploaded will be handled in a user defined or
   * default callback.
   */
  void getIndex(uint8_t index, VehicleCallBack callback, UserData userData);
  /*! @brief
   *
   *  setting waypt data to the waypt container with specified idx
   *
   *  @param value user specified WayPointData
   *  @param pos the index of the waypt
   */
  void setIndex(WayPointSettings* value, size_t pos);
  /*! @brief
   *
   *  setting waypt init data
   *
   *  @param value user specified WayPointInitData
   */
  bool uploadIndexData(WayPointSettings* data, VehicleCallBack callback = 0,
                       UserData userData = 0);
  /*! @brief
   *
   *  setting waypt init data
   *
   *  @param value user specified WayPointInitData
   *  @param timer timeout to wait for ACK
   */
  ACK::WayPointIndex uploadIndexData(WayPointSettings* data, int timer);
  /*! @brief
   *
   *  getting waypt idle velocity
   *
   *  @param callback callback function
   *  @param userData user data (void ptr)
   */
  void readIdleVelocity(VehicleCallBack callback = 0, UserData userData = 0);
  /*! @brief
   *
   *  getting waypt idle velocity
   *
   *  @param timer timeout to wait for ACK
   */
  ACK::ErrorCode readIdleVelocity(int timeout);
  /*! @brief
   *
   *  setting waypt idle velocity
   *
   *  @param meterPreSecond specified velocity
   *  @param callback callback function
   *  @param userData user data (void ptr)
   */
  void updateIdleVelocity(float32_t       meterPreSecond,
                          VehicleCallBack callback = 0, UserData userData = 0);
  /*! @brief
   *
   *  setting waypt idle velocity
   *
   *  @param meterPreSecond specified velocity
   *  @param timer timeout to wait for ACK
   */
  ACK::WayPointVelocity updateIdleVelocity(float32_t meterPreSecond,
                                           int       timeout);
  /*! @brief
   *
   *  A callback function for setting idle velocity non-blocking calls
   *
   *  @param recvFrame the data comes with the callback function
   *  @param userData a void ptr that user can manipulate inside the callback
   */
  static void idleVelocityCallback(Vehicle* vehicle, RecvContainer recvFrame,
                                   UserData userData);
  /*! @brief
   *
   *  A callback function for reading initialization data non-blocking calls
   *
   *  @param recvFrame the data comes with the callback function
   *  @param userData a void ptr that user can manipulate inside the callback
   */
  static void getWaypointSettingsCallback(Vehicle*      vehicle,
                                          RecvContainer recvFrame,
                                          UserData      userData);
  /*! @brief
   *
   *  A callback function for getting waypoint information for a specified index
   * (non-blocking call)
   *
   *  @param recvFrame the data comes with the callback function
   *  @param userData a void ptr that user can manipulate inside the callback
   */
  static void getIndexCallback(Vehicle* vehicle, RecvContainer recvFrame,
                               UserData userData);
  /*! @brief
   *
   *  A callback function for uploading waypt index non-blocking calls
   *
   *  @param recvFrame the data comes with the callback function
   *  @param userData a void ptr that user can manipulate inside the callback
   */
  static void uploadIndexDataCallback(Vehicle* vehicle, RecvContainer recvFrame,
                                      UserData userData);
  /*! @brief
   *
   *  Set waypoint push data callback
   *
   *  @param callback callback function
   *  @param userData a void ptr that user can manipulate inside the callback
   */
  void setWaypointEventCallback(VehicleCallBack callback, UserData userData);
  /*! @brief
   *
   *  Set waypoint callback
   *
   *  @param callback callback function
   *  @param userData a void ptr that user can manipulate inside the callback
   */
  void setWaypointCallback(VehicleCallBack callback, UserData userData);



评论
上传
你需要登录之后才能回帖    登录 | 注册
懒猫吃鱼  DJI FPV认证用户 2020-10-30 3#
可以通过这个回调来获取相关任务点信息:
/*! @brief
   *
   *  Set waypoint push data callback
   *
   *  @param callback callback function
   *  @param userData a void ptr that user can manipulate inside the callback
   */
  void setWaypointEventCallback(VehicleCallBack callback, UserData userData);
  /*! @brief
   *
   *  Set waypoint callback
   *
   *  @param callback callback function
   *  @param userData a void ptr that user can manipulate inside the callback
   */
  void setWaypointCallback(VehicleCallBack callback, UserData userData);
楼主   2020-11-4 4#
懒猫吃鱼10-30 18:40
可以通过这个回调来获取相关任务点信息:
/*! @brief
   *
   *  Set waypoint push data callback
   *
   *  @param callback callback function
   *  @param userData a void ptr that user can manipulate inside the callback
   */
  void setWaypointEventCallback(VehicleCallBack callback, UserData userData);
  /*! @brief
   *
   *  Set waypoint callback
   *
   *  @param callback callback function
   *  @param userData a void ptr that user can manipulate inside the callback
   */
  void setWaypointCallback(VehicleCallBack callback, UserData userData);
多谢,大神。
大神能不能告知一下这两个Callback函数的调用时机(什么条件回触发这两个Callback函数的调用)
懒猫吃鱼  DJI FPV认证用户 2020-11-5 5#
nanodream11-4 13:06
多谢,大神。
大神能不能告知一下这两个Callback函数的调用时机(什么条件回触发这两个Callback函数的调用)
任务执行过程中会触发,你在回调中加打印可以看的更明显。通过解析回调的参数可以查看执行的任务点Index
楼主   2020-11-8 6#
懒猫吃鱼11-5 19:22
任务执行过程中会触发,你在回调中加打印可以看的更明显。通过解析回调的参数可以查看执行的任务点Index
多谢大神,另外我想问一下大神,我是A3Pro的飞控,运行OSDK3.9.0 自带的例子的时候,wpMission->start的时候报错。错误信息是MISSION_UNRECORDED_HOME。我一开始以为是没有连接模拟器,可是我连接模拟器之后报的错仍然还是这个。下图是我调试的A3Pro的环境(红框里面是我的连接设备,红框外面没有连接),是我传感器连接的不全造成的吗
kv886   2020-11-9 7#
nanodream11-8 13:41
多谢大神,另外我想问一下大神,我是A3Pro的飞控,运行OSDK3.9.0 自带的例子的时候,wpMission->start的时候报错。错误信息是MISSION_UNRECORDED_HOME。我一开始以为是没有连接模拟器,可是我连接模拟器之后报的错仍然还是这个。下图是我调试的A3Pro的环境(红框里面是我的连接设备,红框外面没有连接),是我传感器连接的不全造成的吗
[图片]
没有连任何GPS设备吗?好像至少要连一个
收藏 点赞 评论
分享至:
回复:
上传
取消 评论
快速回复 返回顶部 返回列表