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)
typedef struct GimbalSingleData {
dji_f32_t pitch;
dji_f32_t roll;
dji_f32_t pitch;
dji_f32_t yaw;
uint32_t status;
uint8_t mode;
} GimbalSingleData;
} GimbalAnglesData;
/**
* @brief Struct for the topic DJI_FC_SUBSCRIPTION_TOPIC_THREE_GIMBAL_DATA. Used in M300
*/
typedef struct GimbalThreeData {
GimbalSingleData gbData[3];
GimbalAnglesData anglesData[3];
} T_DjiFcSubscriptionThreeGimbalData;
#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_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_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 ------------------------------------------------------------*/

View File

@ -68,7 +68,7 @@ static const T_DjiTestFlightControlDisplayModeStr s_flightControlDisplayModeStr[
static uint8_t DjiTest_FlightControlGetDisplayModeIndex(E_DjiFcSubscriptionDisplayMode displayMode);
static T_DjiFcSubscriptionFlightStatus DjiTest_FlightControlGetValueOfFlightStatus(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_DjiFcSubscriptionPositionFused DjiTest_FlightControlGetValueOfPositionFused(void);
static dji_f32_t DjiTest_FlightControlGetValueOfRelativeHeight(void);
@ -92,12 +92,11 @@ static void DjiTest_FlightControlHorizCommandLimit(dji_f32_t speedFactor, dji_f3
static dji_f32_t DjiTest_FlightControlVectorNorm(T_DjiTestFlightControlVector3f v);
static T_DjiReturnCode
DjiTest_FlightControlJoystickCtrlAuthSwitchEventCallback(T_DjiFlightControllerJoystickCtrlAuthorityEventInfo eventData);
static bool
DjiTest_FlightControlMoveByPositionOffset(T_DjiTestFlightControlVector3f offsetDesired, float yawDesiredInDeg,
static bool DjiTest_FlightControlMoveByPositionOffset(T_DjiTestFlightControlVector3f offsetDesired,
float yawDesiredInDeg,
float posThresholdInM,
float yawThresholdInDeg);
static void
DjiTest_FlightControlVelocityAndYawRateCtrl(T_DjiTestFlightControlVector3f offsetDesired, float yawRate,
static void DjiTest_FlightControlVelocityAndYawRateCtrl(T_DjiTestFlightControlVector3f offsetDesired, float yawRate,
uint32_t timeMs);
static T_DjiReturnCode DjiTest_FlightControlInit(void);
static T_DjiReturnCode DjiTest_FlightControlDeInit(void);
@ -174,7 +173,7 @@ T_DjiReturnCode DjiTest_FlightControlInit(void)
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,
NULL);
@ -965,26 +964,25 @@ T_DjiFcSubscriptionDisplaymode DjiTest_FlightControlGetValueOfDisplayMode(void)
return displayMode;
}
T_DjiFcSubscriptionAvoidData DjiTest_FlightControlGetValueOfAvoidData(void)
T_DjiFcSubscriptionHeightFusion DjiTest_FlightControlGetValueOfHeightFusion(void)
{
T_DjiReturnCode djiStat;
T_DjiFcSubscriptionAvoidData avoidData = {0};
T_DjiDataTimestamp avoidDataTimestamp = {0};
T_DjiFcSubscriptionHeightFusion heightFusion = {0};
T_DjiDataTimestamp timestamp = {0};
djiStat = DjiFcSubscription_GetLatestValueOfTopic(DJI_FC_SUBSCRIPTION_TOPIC_AVOID_DATA,
(uint8_t *) &avoidData,
sizeof(T_DjiFcSubscriptionAvoidData),
&avoidDataTimestamp);
djiStat = DjiFcSubscription_GetLatestValueOfTopic(DJI_FC_SUBSCRIPTION_TOPIC_HEIGHT_FUSION,
(uint8_t *) &heightFusion,
sizeof(T_DjiFcSubscriptionHeightFusion),
&timestamp);
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 {
USER_LOG_DEBUG("Timestamp: millisecond %u microsecond %u.", avoidDataTimestamp.millisecond,
avoidDataTimestamp.microsecond);
USER_LOG_DEBUG("Avoid downwards distance is %f m", avoidData.down);
USER_LOG_DEBUG("Timestamp: millisecond %u microsecond %u.", timestamp.millisecond, timestamp.microsecond);
USER_LOG_DEBUG("Relative height fusion is %f m", heightFusion);
}
return avoidData;
return heightFusion;
}
T_DjiFcSubscriptionQuaternion DjiTest_FlightControlGetValueOfQuaternion(void)
@ -1211,6 +1209,12 @@ bool DjiTest_FlightControlMonitoredLanding(void)
bool DjiTest_FlightControlGoHomeAndConfirmLanding(void)
{
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 */
USER_LOG_INFO("Start go home action");
@ -1237,12 +1241,18 @@ bool DjiTest_FlightControlGoHomeAndConfirmLanding(void)
} else {
while (DjiTest_FlightControlGetValueOfDisplayMode() == DJI_FC_SUBSCRIPTION_DISPLAY_MODE_AUTO_LANDING &&
DjiTest_FlightControlGetValueOfFlightStatus() == DJI_FC_SUBSCRIPTION_FLIGHT_STATUS_IN_AIR) {
T_DjiFcSubscriptionAvoidData avoidData = DjiTest_FlightControlGetValueOfAvoidData();
T_DjiFcSubscriptionHeightFusion heightFusion = DjiTest_FlightControlGetValueOfHeightFusion();
s_osalHandler->TaskSleepMs(1000);
if (((dji_f64_t) 0.65 < avoidData.down && avoidData.down < (dji_f64_t) 0.75) &&
avoidData.downHealth == 1) {
if (aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M3E ||
aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M3T) {
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,8 +1319,7 @@ DjiTest_FlightControlLocalOffsetFromGpsAndFusedHeightOffset(const T_DjiFcSubscri
return deltaNed;
}
T_DjiTestFlightControlVector3f
DjiTest_FlightControlVector3FSub(const T_DjiTestFlightControlVector3f vectorA,
T_DjiTestFlightControlVector3f DjiTest_FlightControlVector3FSub(const T_DjiTestFlightControlVector3f vectorA,
const T_DjiTestFlightControlVector3f vectorB)
{
T_DjiTestFlightControlVector3f result;

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,
NULL);
if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
USER_LOG_ERROR("Subscribe topic quaternion error.");
if (djiStat == DJI_ERROR_SUBSCRIPTION_MODULE_CODE_TOPIC_DUPLICATE) {
USER_LOG_DEBUG("Subscribe topic quaternion duplicate.");
} else {
USER_LOG_DEBUG("Subscribe topic quaternion success.");
USER_LOG_ERROR("Subscribe topic quaternion error.");
}
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);
}
} 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
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_FC_SUBSCRIPTION_ON
/*!< Attention: This function needs to be used together with mobile sdk mop sample.
* */
//#define CONFIG_MODULE_SAMPLE_MOP_CHANNEL_ON