Merge pull request #88 from dji-sdk/release/v3.3

FIX: fixed the following issues
This commit is contained in:
DJI
2023-03-08 20:08:44 +08:00
committed by GitHub
20 changed files with 47 additions and 38 deletions

View File

@ -1153,18 +1153,16 @@ typedef struct HomeLocationData {
} T_DjiFcSubscriptionHomePointInfo; // pack(1) } T_DjiFcSubscriptionHomePointInfo; // pack(1)
typedef struct GimbalSingleData { typedef struct GimbalSingleData {
dji_f32_t pitch;
dji_f32_t roll; dji_f32_t roll;
dji_f32_t pitch;
dji_f32_t yaw; dji_f32_t yaw;
uint32_t status; } GimbalAnglesData;
uint8_t mode;
} GimbalSingleData;
/** /**
* @brief Struct for the topic DJI_FC_SUBSCRIPTION_TOPIC_THREE_GIMBAL_DATA. Used in M300 * @brief Struct for the topic DJI_FC_SUBSCRIPTION_TOPIC_THREE_GIMBAL_DATA. Used in M300
*/ */
typedef struct GimbalThreeData { typedef struct GimbalThreeData {
GimbalSingleData gbData[3]; GimbalAnglesData anglesData[3];
} T_DjiFcSubscriptionThreeGimbalData; } T_DjiFcSubscriptionThreeGimbalData;
#pragma pack() #pragma pack()

View File

@ -37,7 +37,7 @@ extern "C" {
#define DJI_VERSION_MINOR 3 /*!< DJI SDK minor version num, when add functionality in a backwards compatible manner changes. Range from 0 to 99. */ #define DJI_VERSION_MINOR 3 /*!< DJI SDK minor version num, when add functionality in a backwards compatible manner changes. Range from 0 to 99. */
#define DJI_VERSION_MODIFY 0 /*!< DJI SDK modify version num, when have backwards compatible bug fixes changes. Range from 0 to 99. */ #define DJI_VERSION_MODIFY 0 /*!< DJI SDK modify version num, when have backwards compatible bug fixes changes. Range from 0 to 99. */
#define DJI_VERSION_BETA 0 /*!< DJI SDK version beta info, release version will be 0, when beta version release changes. Range from 0 to 255. */ #define DJI_VERSION_BETA 0 /*!< DJI SDK version beta info, release version will be 0, when beta version release changes. Range from 0 to 255. */
#define DJI_VERSION_BUILD 1695 /*!< DJI SDK version build info, when jenkins trigger build changes. Range from 0 to 65535. */ #define DJI_VERSION_BUILD 1697 /*!< DJI SDK version build info, when jenkins trigger build changes. Range from 0 to 65535. */
/* Exported types ------------------------------------------------------------*/ /* Exported types ------------------------------------------------------------*/

View File

@ -68,7 +68,7 @@ static const T_DjiTestFlightControlDisplayModeStr s_flightControlDisplayModeStr[
static uint8_t DjiTest_FlightControlGetDisplayModeIndex(E_DjiFcSubscriptionDisplayMode displayMode); static uint8_t DjiTest_FlightControlGetDisplayModeIndex(E_DjiFcSubscriptionDisplayMode displayMode);
static T_DjiFcSubscriptionFlightStatus DjiTest_FlightControlGetValueOfFlightStatus(void); static T_DjiFcSubscriptionFlightStatus DjiTest_FlightControlGetValueOfFlightStatus(void);
static T_DjiFcSubscriptionDisplaymode DjiTest_FlightControlGetValueOfDisplayMode(void); static T_DjiFcSubscriptionDisplaymode DjiTest_FlightControlGetValueOfDisplayMode(void);
static T_DjiFcSubscriptionAvoidData DjiTest_FlightControlGetValueOfAvoidData(void); static T_DjiFcSubscriptionHeightFusion DjiTest_FlightControlGetValueOfHeightFusion(void);
static T_DjiFcSubscriptionQuaternion DjiTest_FlightControlGetValueOfQuaternion(void); static T_DjiFcSubscriptionQuaternion DjiTest_FlightControlGetValueOfQuaternion(void);
static T_DjiFcSubscriptionPositionFused DjiTest_FlightControlGetValueOfPositionFused(void); static T_DjiFcSubscriptionPositionFused DjiTest_FlightControlGetValueOfPositionFused(void);
static dji_f32_t DjiTest_FlightControlGetValueOfRelativeHeight(void); static dji_f32_t DjiTest_FlightControlGetValueOfRelativeHeight(void);
@ -92,13 +92,12 @@ static void DjiTest_FlightControlHorizCommandLimit(dji_f32_t speedFactor, dji_f3
static dji_f32_t DjiTest_FlightControlVectorNorm(T_DjiTestFlightControlVector3f v); static dji_f32_t DjiTest_FlightControlVectorNorm(T_DjiTestFlightControlVector3f v);
static T_DjiReturnCode static T_DjiReturnCode
DjiTest_FlightControlJoystickCtrlAuthSwitchEventCallback(T_DjiFlightControllerJoystickCtrlAuthorityEventInfo eventData); DjiTest_FlightControlJoystickCtrlAuthSwitchEventCallback(T_DjiFlightControllerJoystickCtrlAuthorityEventInfo eventData);
static bool static bool DjiTest_FlightControlMoveByPositionOffset(T_DjiTestFlightControlVector3f offsetDesired,
DjiTest_FlightControlMoveByPositionOffset(T_DjiTestFlightControlVector3f offsetDesired, float yawDesiredInDeg, float yawDesiredInDeg,
float posThresholdInM, float posThresholdInM,
float yawThresholdInDeg); float yawThresholdInDeg);
static void static void DjiTest_FlightControlVelocityAndYawRateCtrl(T_DjiTestFlightControlVector3f offsetDesired, float yawRate,
DjiTest_FlightControlVelocityAndYawRateCtrl(T_DjiTestFlightControlVector3f offsetDesired, float yawRate, uint32_t timeMs);
uint32_t timeMs);
static T_DjiReturnCode DjiTest_FlightControlInit(void); static T_DjiReturnCode DjiTest_FlightControlInit(void);
static T_DjiReturnCode DjiTest_FlightControlDeInit(void); static T_DjiReturnCode DjiTest_FlightControlDeInit(void);
static void DjiTest_FlightControlTakeOffLandingSample(void); static void DjiTest_FlightControlTakeOffLandingSample(void);
@ -174,7 +173,7 @@ T_DjiReturnCode DjiTest_FlightControlInit(void)
return returnCode; return returnCode;
} }
returnCode = DjiFcSubscription_SubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_AVOID_DATA, returnCode = DjiFcSubscription_SubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_HEIGHT_FUSION,
DJI_DATA_SUBSCRIPTION_TOPIC_10_HZ, DJI_DATA_SUBSCRIPTION_TOPIC_10_HZ,
NULL); NULL);
@ -965,26 +964,25 @@ T_DjiFcSubscriptionDisplaymode DjiTest_FlightControlGetValueOfDisplayMode(void)
return displayMode; return displayMode;
} }
T_DjiFcSubscriptionAvoidData DjiTest_FlightControlGetValueOfAvoidData(void) T_DjiFcSubscriptionHeightFusion DjiTest_FlightControlGetValueOfHeightFusion(void)
{ {
T_DjiReturnCode djiStat; T_DjiReturnCode djiStat;
T_DjiFcSubscriptionAvoidData avoidData = {0}; T_DjiFcSubscriptionHeightFusion heightFusion = {0};
T_DjiDataTimestamp avoidDataTimestamp = {0}; T_DjiDataTimestamp timestamp = {0};
djiStat = DjiFcSubscription_GetLatestValueOfTopic(DJI_FC_SUBSCRIPTION_TOPIC_AVOID_DATA, djiStat = DjiFcSubscription_GetLatestValueOfTopic(DJI_FC_SUBSCRIPTION_TOPIC_HEIGHT_FUSION,
(uint8_t *) &avoidData, (uint8_t *) &heightFusion,
sizeof(T_DjiFcSubscriptionAvoidData), sizeof(T_DjiFcSubscriptionHeightFusion),
&avoidDataTimestamp); &timestamp);
if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
USER_LOG_ERROR("Get value of topic avoid data error, error code: 0x%08X", djiStat); USER_LOG_ERROR("Get value of topic height fusion error, error code: 0x%08X", djiStat);
} else { } else {
USER_LOG_DEBUG("Timestamp: millisecond %u microsecond %u.", avoidDataTimestamp.millisecond, USER_LOG_DEBUG("Timestamp: millisecond %u microsecond %u.", timestamp.millisecond, timestamp.microsecond);
avoidDataTimestamp.microsecond); USER_LOG_DEBUG("Relative height fusion is %f m", heightFusion);
USER_LOG_DEBUG("Avoid downwards distance is %f m", avoidData.down);
} }
return avoidData; return heightFusion;
} }
T_DjiFcSubscriptionQuaternion DjiTest_FlightControlGetValueOfQuaternion(void) T_DjiFcSubscriptionQuaternion DjiTest_FlightControlGetValueOfQuaternion(void)
@ -1211,6 +1209,12 @@ bool DjiTest_FlightControlMonitoredLanding(void)
bool DjiTest_FlightControlGoHomeAndConfirmLanding(void) bool DjiTest_FlightControlGoHomeAndConfirmLanding(void)
{ {
T_DjiReturnCode djiStat; T_DjiReturnCode djiStat;
T_DjiAircraftInfoBaseInfo aircraftInfoBaseInfo;
djiStat = DjiAircraftInfo_GetBaseInfo(&aircraftInfoBaseInfo);
if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
USER_LOG_ERROR("get aircraft base info error");
}
/*! Step 1: Start go home */ /*! Step 1: Start go home */
USER_LOG_INFO("Start go home action"); USER_LOG_INFO("Start go home action");
@ -1237,11 +1241,17 @@ bool DjiTest_FlightControlGoHomeAndConfirmLanding(void)
} else { } else {
while (DjiTest_FlightControlGetValueOfDisplayMode() == DJI_FC_SUBSCRIPTION_DISPLAY_MODE_AUTO_LANDING && while (DjiTest_FlightControlGetValueOfDisplayMode() == DJI_FC_SUBSCRIPTION_DISPLAY_MODE_AUTO_LANDING &&
DjiTest_FlightControlGetValueOfFlightStatus() == DJI_FC_SUBSCRIPTION_FLIGHT_STATUS_IN_AIR) { DjiTest_FlightControlGetValueOfFlightStatus() == DJI_FC_SUBSCRIPTION_FLIGHT_STATUS_IN_AIR) {
T_DjiFcSubscriptionAvoidData avoidData = DjiTest_FlightControlGetValueOfAvoidData(); T_DjiFcSubscriptionHeightFusion heightFusion = DjiTest_FlightControlGetValueOfHeightFusion();
s_osalHandler->TaskSleepMs(1000); s_osalHandler->TaskSleepMs(1000);
if (((dji_f64_t) 0.65 < avoidData.down && avoidData.down < (dji_f64_t) 0.75) && if (aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M3E ||
avoidData.downHealth == 1) { aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M3T) {
break; if ((dji_f64_t) 0.45 < heightFusion && heightFusion < (dji_f64_t) 0.55) {
break;
}
} else {
if ((dji_f64_t) 0.65 < heightFusion && heightFusion < (dji_f64_t) 0.75) {
break;
}
} }
} }
} }
@ -1309,9 +1319,8 @@ DjiTest_FlightControlLocalOffsetFromGpsAndFusedHeightOffset(const T_DjiFcSubscri
return deltaNed; return deltaNed;
} }
T_DjiTestFlightControlVector3f T_DjiTestFlightControlVector3f DjiTest_FlightControlVector3FSub(const T_DjiTestFlightControlVector3f vectorA,
DjiTest_FlightControlVector3FSub(const T_DjiTestFlightControlVector3f vectorA, const T_DjiTestFlightControlVector3f vectorB)
const T_DjiTestFlightControlVector3f vectorB)
{ {
T_DjiTestFlightControlVector3f result; T_DjiTestFlightControlVector3f result;
result.x = vectorA.x - vectorB.x; result.x = vectorA.x - vectorB.x;

View File

@ -389,10 +389,10 @@ static void *UserGimbal_Task(void *arg)
djiStat = DjiFcSubscription_SubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_QUATERNION, DJI_DATA_SUBSCRIPTION_TOPIC_10_HZ, djiStat = DjiFcSubscription_SubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_QUATERNION, DJI_DATA_SUBSCRIPTION_TOPIC_10_HZ,
NULL); NULL);
if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { if (djiStat == DJI_ERROR_SUBSCRIPTION_MODULE_CODE_TOPIC_DUPLICATE) {
USER_LOG_ERROR("Subscribe topic quaternion error."); USER_LOG_DEBUG("Subscribe topic quaternion duplicate.");
} else { } else {
USER_LOG_DEBUG("Subscribe topic quaternion success."); USER_LOG_ERROR("Subscribe topic quaternion error.");
} }
while (1) { while (1) {

View File

@ -565,7 +565,7 @@ static T_DjiReturnCode SetVolume(uint8_t volume)
USER_LOG_ERROR("Set widget speaker volume error: %d", ret); USER_LOG_ERROR("Set widget speaker volume error: %d", ret);
} }
} else { } else {
USER_LOG_WARN("No audio device found, please add audio device and init speaker volume here!!!"); USER_LOG_WARN("No audio device found, please add audio device and init speaker volume here.");
} }
#else #else
USER_LOG_WARN("No audio device found, please add audio device and init speaker volume here!!!"); USER_LOG_WARN("No audio device found, please add audio device and init speaker volume here!!!");

View File

@ -62,6 +62,8 @@ extern "C" {
#define CONFIG_MODULE_SAMPLE_UPGRADE_ON #define CONFIG_MODULE_SAMPLE_UPGRADE_ON
#define CONFIG_MODULE_SAMPLE_FC_SUBSCRIPTION_ON
/*!< Attention: This function needs to be used together with mobile sdk mop sample. /*!< Attention: This function needs to be used together with mobile sdk mop sample.
* */ * */
//#define CONFIG_MODULE_SAMPLE_MOP_CHANNEL_ON //#define CONFIG_MODULE_SAMPLE_MOP_CHANNEL_ON