NEW: release DJI Payload-SDK version 3.10.0
This commit is contained in:
@ -907,15 +907,7 @@ static T_DjiReturnCode DjiTest_CameraRotationGimbal(T_TestCameraGimbalRotationAr
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
if (aircraftBaseInfo.djiAdapterType == DJI_SDK_ADAPTER_TYPE_SKYPORT_V2 ||
|
||||
aircraftBaseInfo.djiAdapterType == DJI_SDK_ADAPTER_TYPE_NONE) {
|
||||
returnCode = DjiTest_GimbalRotate(gimbalRotationArgument.rotationMode, gimbalRotationArgument.rotationProperty,
|
||||
gimbalRotationArgument.rotationValue);
|
||||
if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
|
||||
USER_LOG_ERROR("rotate gimbal error: 0x%08llX.", returnCode);
|
||||
return returnCode;
|
||||
}
|
||||
} else if (aircraftBaseInfo.djiAdapterType == DJI_SDK_ADAPTER_TYPE_XPORT) {
|
||||
if (aircraftBaseInfo.djiAdapterType == DJI_SDK_ADAPTER_TYPE_XPORT) {
|
||||
returnCode = DjiXPort_RotateSync(gimbalRotationArgument.rotationMode, gimbalRotationArgument.rotationProperty,
|
||||
gimbalRotationArgument.rotationValue);
|
||||
if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
|
||||
|
||||
@ -23,6 +23,7 @@
|
||||
*/
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdlib.h>
|
||||
#include "dji_logger.h"
|
||||
@ -726,7 +727,7 @@ static T_DjiReturnCode DjiPlayback_GetFrameRateOfVideoFile(const char *path, flo
|
||||
|
||||
ret = fscanf(fpCommand, "r_frame_rate=%d/%d", &frameRateMolecule, &frameRateDenominator);
|
||||
if (ret <= 0) {
|
||||
USER_LOG_ERROR("can not find frame rate.");
|
||||
USER_LOG_ERROR("can not find frame rate form \"%s\".", path);
|
||||
returnCode = DJI_ERROR_SYSTEM_MODULE_CODE_NOT_FOUND;
|
||||
goto out;
|
||||
}
|
||||
@ -1196,7 +1197,7 @@ static void *UserCameraMedia_SendVideoTask(void *arg)
|
||||
exit(1);
|
||||
}
|
||||
if (s_isMediaFileDirPathConfigured == true) {
|
||||
snprintf(tempPath, DJI_FILE_PATH_SIZE_MAX, "%sPSDK_0005.h264", s_mediaFileDirPath);
|
||||
snprintf(tempPath, DJI_FILE_PATH_SIZE_MAX, "%smedia_file/PSDK_0005.h264", s_mediaFileDirPath);
|
||||
} else {
|
||||
snprintf(tempPath, DJI_FILE_PATH_SIZE_MAX, "%smedia_file/PSDK_0005.h264", curFileDirPath);
|
||||
}
|
||||
@ -1309,7 +1310,7 @@ static void *UserCameraMedia_SendVideoTask(void *arg)
|
||||
|
||||
fpFile = fopen(transcodedFilePath, "rb+");
|
||||
if (fpFile == NULL) {
|
||||
USER_LOG_ERROR("open video file fail.");
|
||||
USER_LOG_ERROR("open video file:\"%s\" fail:%d.", transcodedFilePath, errno);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@ -74,6 +74,8 @@ static const T_DjiTestCameraTypeStr s_cameraTypeStrList[] = {
|
||||
{DJI_CAMERA_TYPE_M3TD, "M3TD Camera"},
|
||||
{DJI_CAMERA_TYPE_H30, "H30 Camera"},
|
||||
{DJI_CAMERA_TYPE_H30T, "H30T Camera"},
|
||||
{DJI_CAMERA_TYPE_M4T, "M4T Camera"},
|
||||
{DJI_CAMERA_TYPE_M4E, "M4E Camera"},
|
||||
};
|
||||
|
||||
static FILE *s_downloadMediaFile = NULL;
|
||||
@ -846,12 +848,14 @@ T_DjiReturnCode DjiTest_CameraManagerRunSample(E_DjiMountPosition mountPosition,
|
||||
case E_DJI_TEST_CAMERA_MANAGER_SAMPLE_SELECT_SET_CAMERA_SHUTTER_SPEED: {
|
||||
USER_LOG_INFO("--> Function a: Set camera shutter speed to 1/100 s");
|
||||
DjiTest_WidgetLogAppend("--> Function a: Set camera shutter speed to 1/100 s");
|
||||
if (cameraType == DJI_CAMERA_TYPE_H20 || cameraType == DJI_CAMERA_TYPE_H20T ||
|
||||
cameraType == DJI_CAMERA_TYPE_H20N || cameraType == DJI_CAMERA_TYPE_M30 ||
|
||||
cameraType == DJI_CAMERA_TYPE_M30T || cameraType == DJI_CAMERA_TYPE_M3E ||
|
||||
cameraType == DJI_CAMERA_TYPE_M3T || cameraType == DJI_CAMERA_TYPE_M3D ||
|
||||
cameraType == DJI_CAMERA_TYPE_M3TD || cameraType == DJI_CAMERA_TYPE_H30 ||
|
||||
cameraType == DJI_CAMERA_TYPE_H30T) {
|
||||
if (DJI_CAMERA_TYPE_H20 == cameraType || DJI_CAMERA_TYPE_H20T == cameraType
|
||||
|| DJI_CAMERA_TYPE_H20N == cameraType
|
||||
|| DJI_CAMERA_TYPE_M30 == cameraType || DJI_CAMERA_TYPE_M30T == cameraType
|
||||
|| DJI_CAMERA_TYPE_M3E == cameraType || DJI_CAMERA_TYPE_M3T == cameraType
|
||||
|| DJI_CAMERA_TYPE_M3D == cameraType || DJI_CAMERA_TYPE_M3TD == cameraType
|
||||
|| DJI_CAMERA_TYPE_M4T == cameraType || DJI_CAMERA_TYPE_M4E == cameraType
|
||||
|| DJI_CAMERA_TYPE_H30 == cameraType || DJI_CAMERA_TYPE_H30T == cameraType
|
||||
) {
|
||||
USER_LOG_INFO("Set mounted position %d camera's exposure mode to manual mode.",
|
||||
mountPosition);
|
||||
returnCode = DjiTest_CameraManagerSetExposureMode(mountPosition,
|
||||
@ -887,12 +891,14 @@ T_DjiReturnCode DjiTest_CameraManagerRunSample(E_DjiMountPosition mountPosition,
|
||||
case E_DJI_TEST_CAMERA_MANAGER_SAMPLE_SELECT_SET_CAMERA_APERTURE: {
|
||||
USER_LOG_INFO("--> Function b: Set camera aperture to 400(F/4)");
|
||||
DjiTest_WidgetLogAppend("--> Function b: Set camera aperture to 400(F/4)");
|
||||
if (cameraType == DJI_CAMERA_TYPE_H20 || cameraType == DJI_CAMERA_TYPE_H20N
|
||||
|| cameraType == DJI_CAMERA_TYPE_H20T || cameraType == DJI_CAMERA_TYPE_M30
|
||||
|| cameraType == DJI_CAMERA_TYPE_M30T || cameraType == DJI_CAMERA_TYPE_M3E
|
||||
|| cameraType == DJI_CAMERA_TYPE_M3T || cameraType == DJI_CAMERA_TYPE_M3D
|
||||
|| cameraType == DJI_CAMERA_TYPE_M3TD || cameraType == DJI_CAMERA_TYPE_H30
|
||||
|| cameraType == DJI_CAMERA_TYPE_H30T) {
|
||||
if (DJI_CAMERA_TYPE_H20 == cameraType || DJI_CAMERA_TYPE_H20T == cameraType
|
||||
|| DJI_CAMERA_TYPE_H20N == cameraType
|
||||
|| DJI_CAMERA_TYPE_M30 == cameraType || DJI_CAMERA_TYPE_M30T == cameraType
|
||||
|| DJI_CAMERA_TYPE_M3E == cameraType || DJI_CAMERA_TYPE_M3T == cameraType
|
||||
|| DJI_CAMERA_TYPE_M3D == cameraType || DJI_CAMERA_TYPE_M3TD == cameraType
|
||||
|| DJI_CAMERA_TYPE_M4T == cameraType || DJI_CAMERA_TYPE_M4E == cameraType
|
||||
|| DJI_CAMERA_TYPE_H30 == cameraType || DJI_CAMERA_TYPE_H30T == cameraType
|
||||
) {
|
||||
USER_LOG_INFO("Set mounted position %d camera's exposure mode to manual mode.",
|
||||
mountPosition);
|
||||
returnCode = DjiTest_CameraManagerSetExposureMode(mountPosition,
|
||||
@ -1185,11 +1191,14 @@ T_DjiReturnCode DjiTest_CameraManagerRunSample(E_DjiMountPosition mountPosition,
|
||||
E_DjiCameraManagerNightSceneMode nightSceneMode;
|
||||
T_DjiCameraManagerRangeList nightSceneModeRange;
|
||||
|
||||
if (cameraType == DJI_CAMERA_TYPE_XT2 || cameraType == DJI_CAMERA_TYPE_XTS ||
|
||||
cameraType == DJI_CAMERA_TYPE_H20 || cameraType == DJI_CAMERA_TYPE_P1 ||
|
||||
cameraType == DJI_CAMERA_TYPE_L1 || cameraType == DJI_CAMERA_TYPE_L2 ||
|
||||
cameraType == DJI_CAMERA_TYPE_M3E || cameraType == DJI_CAMERA_TYPE_M3T ||
|
||||
cameraType == DJI_CAMERA_TYPE_M3D || cameraType == DJI_CAMERA_TYPE_M3TD) {
|
||||
if (DJI_CAMERA_TYPE_XT2 == cameraType || DJI_CAMERA_TYPE_XTS == cameraType
|
||||
|| DJI_CAMERA_TYPE_H20 == cameraType
|
||||
|| DJI_CAMERA_TYPE_P1 == cameraType
|
||||
|| DJI_CAMERA_TYPE_L1 == cameraType || DJI_CAMERA_TYPE_L2 == cameraType
|
||||
|| DJI_CAMERA_TYPE_M3E == cameraType || DJI_CAMERA_TYPE_M3T == cameraType
|
||||
|| DJI_CAMERA_TYPE_M3D == cameraType || DJI_CAMERA_TYPE_M3TD == cameraType
|
||||
|| DJI_CAMERA_TYPE_M4T == cameraType || DJI_CAMERA_TYPE_M4E == cameraType
|
||||
) {
|
||||
USER_LOG_INFO("Camera type %s does not support night scene mode!",
|
||||
s_cameraTypeStrList[DjiTest_CameraManagerGetCameraTypeIndex(cameraType)].cameraTypeStr);
|
||||
goto exitCameraModule;
|
||||
@ -1923,7 +1932,8 @@ T_DjiReturnCode DjiTest_CameraManagerRunSample(E_DjiMountPosition mountPosition,
|
||||
cameraType == DJI_CAMERA_TYPE_H20 || cameraType == DJI_CAMERA_TYPE_P1 ||
|
||||
cameraType == DJI_CAMERA_TYPE_L1 || cameraType == DJI_CAMERA_TYPE_M30 ||
|
||||
cameraType == DJI_CAMERA_TYPE_M3E || cameraType == DJI_CAMERA_TYPE_M3D ||
|
||||
cameraType == DJI_CAMERA_TYPE_L2 || cameraType == DJI_CAMERA_TYPE_H30) {
|
||||
cameraType == DJI_CAMERA_TYPE_L2 || cameraType == DJI_CAMERA_TYPE_H30 ||
|
||||
cameraType == DJI_CAMERA_TYPE_M4T) {
|
||||
USER_LOG_WARN("Camera type %s don't support FFC function.",
|
||||
s_cameraTypeStrList[DjiTest_CameraManagerGetCameraTypeIndex(cameraType)].cameraTypeStr);
|
||||
goto exitCameraModule;
|
||||
@ -1969,7 +1979,8 @@ T_DjiReturnCode DjiTest_CameraManagerRunSample(E_DjiMountPosition mountPosition,
|
||||
cameraType == DJI_CAMERA_TYPE_H20 || cameraType == DJI_CAMERA_TYPE_P1 ||
|
||||
cameraType == DJI_CAMERA_TYPE_L1 || cameraType == DJI_CAMERA_TYPE_M30 ||
|
||||
cameraType == DJI_CAMERA_TYPE_M3E || cameraType == DJI_CAMERA_TYPE_M3D ||
|
||||
cameraType == DJI_CAMERA_TYPE_L2 || cameraType == DJI_CAMERA_TYPE_H30) {
|
||||
cameraType == DJI_CAMERA_TYPE_L2 || cameraType == DJI_CAMERA_TYPE_H30 ||
|
||||
cameraType == DJI_CAMERA_TYPE_M4T) {
|
||||
USER_LOG_WARN("Camera type %s don't support infrared function.",
|
||||
s_cameraTypeStrList[DjiTest_CameraManagerGetCameraTypeIndex(cameraType)].cameraTypeStr);
|
||||
goto exitCameraModule;
|
||||
|
||||
@ -262,8 +262,7 @@ static void *UserDataTransmission_Task(void *arg)
|
||||
}
|
||||
#endif
|
||||
}
|
||||
} else if (s_aircraftInfoBaseInfo.mountPosition == DJI_MOUNT_POSITION_EXTENSION_PORT
|
||||
|| DJI_MOUNT_POSITION_EXTENSION_LITE_PORT == s_aircraftInfoBaseInfo.mountPosition) {
|
||||
} else if (s_aircraftInfoBaseInfo.mountPosition == DJI_MOUNT_POSITION_EXTENSION_PORT) {
|
||||
channelAddress = DJI_CHANNEL_ADDRESS_PAYLOAD_PORT_NO1;
|
||||
djiStat = DjiLowSpeedDataChannel_SendData(channelAddress, dataToBeSent, sizeof(dataToBeSent));
|
||||
if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
||||
|
||||
@ -173,8 +173,8 @@ T_DjiReturnCode DjiTest_FcSubscriptionRunSample(void)
|
||||
USER_LOG_INFO("gps position: x = %d y = %d z = %d.", gpsPosition.x, gpsPosition.y, gpsPosition.z);
|
||||
}
|
||||
|
||||
//Attention: if you want to subscribe the single battery info on M300 RTK, you need connect USB cable to
|
||||
//OSDK device or use topic DJI_FC_SUBSCRIPTION_TOPIC_BATTERY_INFO instead.
|
||||
// Attention: if you want to subscribe the single battery info on M300 RTK, you need connect USB cable to
|
||||
// OSDK device or use topic DJI_FC_SUBSCRIPTION_TOPIC_BATTERY_INFO instead.
|
||||
djiStat = DjiFcSubscription_GetLatestValueOfTopic(DJI_FC_SUBSCRIPTION_TOPIC_BATTERY_SINGLE_INFO_INDEX1,
|
||||
(uint8_t *) &singleBatteryInfo,
|
||||
sizeof(T_DjiFcSubscriptionSingleBatteryInfo),
|
||||
|
||||
@ -899,8 +899,6 @@ T_DjiReturnCode DjiTest_TriggerFtsEventCallback(void)
|
||||
USER_LOG_WARN("Note: This is an empty implementation, and the FTS signal needs to be triggered by the PWM signal.");
|
||||
return DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
||||
}
|
||||
|
||||
return DJI_ERROR_SYSTEM_MODULE_CODE_SYSTEM_ERROR;
|
||||
}
|
||||
|
||||
void DjiTest_FlightControlPassiveTriggerFtsSample(void)
|
||||
@ -1304,10 +1302,11 @@ bool DjiTest_FlightControlGoHomeAndConfirmLanding(void)
|
||||
DjiTest_FlightControlGetValueOfFlightStatus() == DJI_FC_SUBSCRIPTION_FLIGHT_STATUS_IN_AIR) {
|
||||
T_DjiFcSubscriptionHeightFusion heightFusion = DjiTest_FlightControlGetValueOfHeightFusion();
|
||||
s_osalHandler->TaskSleepMs(1000);
|
||||
if (aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M3E ||
|
||||
aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M3T ||
|
||||
aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M3D ||
|
||||
aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M3TD) {
|
||||
if (DJI_AIRCRAFT_TYPE_M3E == aircraftInfoBaseInfo.aircraftType || DJI_AIRCRAFT_TYPE_M3T == aircraftInfoBaseInfo.aircraftType
|
||||
|| DJI_AIRCRAFT_TYPE_M3D == aircraftInfoBaseInfo.aircraftType || DJI_AIRCRAFT_TYPE_M3TD == aircraftInfoBaseInfo.aircraftType
|
||||
|| DJI_AIRCRAFT_TYPE_M4T == aircraftInfoBaseInfo.aircraftType
|
||||
|| DJI_AIRCRAFT_TYPE_M4E == aircraftInfoBaseInfo.aircraftType
|
||||
) {
|
||||
if ((dji_f64_t) 0.45 < heightFusion && heightFusion < (dji_f64_t) 0.55) {
|
||||
break;
|
||||
}
|
||||
|
||||
@ -140,8 +140,11 @@ T_DjiReturnCode DjiTest_GimbalManagerRunSample(E_DjiMountPosition mountPosition,
|
||||
|
||||
rotation = s_rotationActionList[i].rotation;
|
||||
|
||||
if (aircraftSeries == DJI_AIRCRAFT_SERIES_M3 || aircraftSeries == DJI_AIRCRAFT_SERIES_M30
|
||||
|| aircraftSeries == DJI_AIRCRAFT_SERIES_M3D) {
|
||||
if (DJI_AIRCRAFT_SERIES_M30 == aircraftSeries
|
||||
|| DJI_AIRCRAFT_SERIES_M3 == aircraftSeries
|
||||
|| DJI_AIRCRAFT_SERIES_M3D == aircraftSeries
|
||||
|| DJI_AIRCRAFT_SERIES_M4 == aircraftSeries
|
||||
) {
|
||||
if (s_rotationActionList[i].rotation.rotationMode == DJI_GIMBAL_ROTATION_MODE_ABSOLUTE_ANGLE) {
|
||||
T_DjiFcSubscriptionGimbalAngles gimbalAngles = {0};
|
||||
T_DjiDataTimestamp timestamp = {0};
|
||||
|
||||
@ -51,11 +51,14 @@
|
||||
static const char *oldReplaceAlarmIdStr = "%alarmid";
|
||||
static const char *oldReplaceIndexStr = "%index";
|
||||
static const char *oldReplaceComponentIndexStr = "%component_index";
|
||||
static bool isHmsManagerInit = false;
|
||||
static T_DjiHmsFileBinaryArray s_EnHmsTextConfigFileBinaryArrayList[] = {
|
||||
{hms_text_config_json_fileName, hms_text_config_json_fileSize, hms_text_config_json_fileBinaryArray},
|
||||
};
|
||||
static uint8_t *s_hmsJsonData = NULL;
|
||||
static E_DjiMobileAppLanguage s_hmsLanguage = DJI_MOBILE_APP_LANGUAGE_ENGLISH;
|
||||
static bool s_isHmsConfigFileDirPathConfigured = false;
|
||||
static char s_hmsConfigFileDirPath[DJI_FILE_PATH_SIZE_MAX] = {0};
|
||||
|
||||
/* Private functions declaration ---------------------------------------------*/
|
||||
static T_DjiReturnCode DjiTest_HmsManagerInit(void);
|
||||
@ -132,7 +135,11 @@ T_DjiReturnCode DjiTest_HmsCustomizationStartService(void)
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
snprintf(tempPath, HMS_DIR_PATH_LEN_MAX, "%shms_text/en", curFileDirPath);
|
||||
if (s_isHmsConfigFileDirPathConfigured == true) {
|
||||
snprintf(tempPath, HMS_DIR_PATH_LEN_MAX, "%shms_text/en", s_hmsConfigFileDirPath);
|
||||
} else {
|
||||
snprintf(tempPath, HMS_DIR_PATH_LEN_MAX, "%shms_text/en", curFileDirPath);
|
||||
}
|
||||
|
||||
//set default hms text config path
|
||||
returnCode = DjiHmsCustomization_RegDefaultHmsTextConfigByDirPath(tempPath);
|
||||
@ -150,7 +157,12 @@ T_DjiReturnCode DjiTest_HmsCustomizationStartService(void)
|
||||
}
|
||||
|
||||
//set hms text config for Chinese language
|
||||
snprintf(tempPath, HMS_DIR_PATH_LEN_MAX, "%shms_text/cn", curFileDirPath);
|
||||
if (s_isHmsConfigFileDirPathConfigured == true) {
|
||||
snprintf(tempPath, HMS_DIR_PATH_LEN_MAX, "%shms_text/cn", s_hmsConfigFileDirPath);
|
||||
} else {
|
||||
snprintf(tempPath, HMS_DIR_PATH_LEN_MAX, "%shms_text/cn", curFileDirPath);
|
||||
}
|
||||
|
||||
returnCode = DjiHmsCustomization_RegHmsTextConfigByDirPath(DJI_MOBILE_APP_LANGUAGE_CHINESE,
|
||||
tempPath);
|
||||
if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
|
||||
@ -174,11 +186,22 @@ T_DjiReturnCode DjiTest_HmsCustomizationStartService(void)
|
||||
|
||||
#if DJI_CUSTOM_HMS_CODE_INJECT_ON
|
||||
DjiHmsCustomization_InjectHmsErrorCode(0x1E020000, DJI_HMS_ERROR_LEVEL_FATAL);
|
||||
DjiHmsCustomization_InjectHmsErrorCode(0x1E020001, DJI_HMS_ERROR_LEVEL_CRITICAL);
|
||||
DjiHmsCustomization_InjectHmsErrorCode(0x1E020002, DJI_HMS_ERROR_LEVEL_WARN);
|
||||
DjiHmsCustomization_InjectHmsErrorCode(0x1E020003, DJI_HMS_ERROR_LEVEL_HINT);
|
||||
#endif
|
||||
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
T_DjiReturnCode DjiTest_HmsCustomizationSetConfigFilePath(const char *path)
|
||||
{
|
||||
memset(s_hmsConfigFileDirPath, 0, sizeof(s_hmsConfigFileDirPath));
|
||||
memcpy(s_hmsConfigFileDirPath, path, USER_UTIL_MIN(strlen(path), sizeof(s_hmsConfigFileDirPath) - 1));
|
||||
s_isHmsConfigFileDirPathConfigured = true;
|
||||
|
||||
return DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
||||
}
|
||||
/* Private functions definition-----------------------------------------------*/
|
||||
static T_DjiReturnCode DjiTest_HmsManagerInit(void)
|
||||
{
|
||||
@ -199,13 +222,13 @@ static T_DjiReturnCode DjiTest_HmsManagerInit(void)
|
||||
returnCode = DjiFcSubscription_SubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_STATUS_FLIGHT,
|
||||
DJI_DATA_SUBSCRIPTION_TOPIC_10_HZ,
|
||||
NULL);
|
||||
|
||||
if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
|
||||
USER_LOG_ERROR("HMS sample subscribe topic flight status error, error code:0x%08llX", returnCode);
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
#ifdef SYSTEM_ARCH_LINUX
|
||||
|
||||
returnCode = DjiUserUtil_GetCurrentFileDirPath(__FILE__, HMS_DIR_PATH_LEN_MAX, curFileDirPath);
|
||||
if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
|
||||
USER_LOG_ERROR("Get file current path error, stat = 0x%08llX", returnCode);
|
||||
@ -230,6 +253,8 @@ static T_DjiReturnCode DjiTest_HmsManagerInit(void)
|
||||
UtilFile_GetFileDataByPath(tempFileDirPath, 0, fileSize, s_hmsJsonData, &readRealSize);
|
||||
#endif
|
||||
|
||||
isHmsManagerInit = true;
|
||||
|
||||
return DjiHmsManager_Init();
|
||||
}
|
||||
|
||||
@ -249,6 +274,8 @@ static T_DjiReturnCode DjiTest_HmsManagerDeInit(void)
|
||||
osalHandler->Free(s_hmsJsonData);
|
||||
#endif
|
||||
|
||||
isHmsManagerInit = false;
|
||||
|
||||
return DjiHmsManager_DeInit();
|
||||
}
|
||||
|
||||
@ -258,6 +285,10 @@ static T_DjiFcSubscriptionFlightStatus DjiTest_GetValueOfFlightStatus(void)
|
||||
T_DjiFcSubscriptionFlightStatus flightStatus;
|
||||
T_DjiDataTimestamp flightStatusTimestamp = {0};
|
||||
|
||||
if (isHmsManagerInit == false) {
|
||||
return DJI_FC_SUBSCRIPTION_FLIGHT_STATUS_ON_GROUND;
|
||||
}
|
||||
|
||||
returnCode = DjiFcSubscription_GetLatestValueOfTopic(DJI_FC_SUBSCRIPTION_TOPIC_STATUS_FLIGHT,
|
||||
(uint8_t *) &flightStatus,
|
||||
sizeof(T_DjiFcSubscriptionFlightStatus),
|
||||
|
||||
@ -41,6 +41,7 @@ extern "C" {
|
||||
/* Exported functions --------------------------------------------------------*/
|
||||
T_DjiReturnCode DjiTest_HmsManagerRunSample(E_DjiMobileAppLanguage language);
|
||||
T_DjiReturnCode DjiTest_HmsCustomizationStartService(void);
|
||||
T_DjiReturnCode DjiTest_HmsCustomizationSetConfigFilePath(const char *path);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@ -146,8 +146,10 @@ T_DjiReturnCode DjiTest_LiveviewRunSample(E_DjiMountPosition mountPosition)
|
||||
USER_LOG_INFO("Fpv stream is saved to file: %s", s_fpvCameraStreamFilePath);
|
||||
USER_LOG_INFO("Payload%d stream is saved to file: %s\r\n", mountPosition, s_payloadCameraStreamFilePath);
|
||||
|
||||
if (aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M3T ||
|
||||
aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M3TD) {
|
||||
if (DJI_AIRCRAFT_TYPE_M3T == aircraftInfoBaseInfo.aircraftType
|
||||
|| DJI_AIRCRAFT_TYPE_M3TD == aircraftInfoBaseInfo.aircraftType
|
||||
|| DJI_AIRCRAFT_TYPE_M4T == aircraftInfoBaseInfo.aircraftType
|
||||
) {
|
||||
USER_LOG_INFO("--> Start h264 stream of the fpv and selected payload\r\n");
|
||||
|
||||
localTime = localtime(¤tTime);
|
||||
|
||||
@ -180,7 +180,7 @@ REWAIT:
|
||||
}
|
||||
|
||||
sendDataCount++;
|
||||
memset(sendBuf, sendDataCount, TEST_MOP_CHANNEL_NORMAL_TRANSFOR_SEND_BUFFER);
|
||||
memset(sendBuf, 'A' - 1 + (sendDataCount % 26), TEST_MOP_CHANNEL_NORMAL_TRANSFOR_SEND_BUFFER);
|
||||
returnCode = DjiMopChannel_SendData(s_testMopChannelNormalOutHandle, sendBuf,
|
||||
TEST_MOP_CHANNEL_NORMAL_TRANSFOR_SEND_BUFFER, &realLen);
|
||||
if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
|
||||
|
||||
@ -87,9 +87,9 @@ T_DjiReturnCode DjiTest_PowerManagementStartService(void)
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
if (((baseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M300_RTK || baseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M350_RTK) &&
|
||||
(baseInfo.djiAdapterType == DJI_SDK_ADAPTER_TYPE_SKYPORT_V2 || baseInfo.djiAdapterType == DJI_SDK_ADAPTER_TYPE_XPORT)) ||
|
||||
baseInfo.aircraftType == DJI_AIRCRAFT_TYPE_FC30) {
|
||||
if (baseInfo.djiAdapterType == DJI_SDK_ADAPTER_TYPE_SKYPORT_V2 ||
|
||||
baseInfo.djiAdapterType == DJI_SDK_ADAPTER_TYPE_XPORT ||
|
||||
baseInfo.aircraftType == DJI_AIRCRAFT_TYPE_FC30) {
|
||||
// apply high power
|
||||
if (s_applyHighPowerHandler.pinInit == NULL) {
|
||||
USER_LOG_ERROR("apply high power pin init interface is NULL error");
|
||||
@ -113,11 +113,15 @@ T_DjiReturnCode DjiTest_PowerManagementStartService(void)
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
USER_LOG_INFO("Start to apply high power.");
|
||||
|
||||
returnCode = DjiPowerManagement_ApplyHighPowerSync();
|
||||
if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
|
||||
USER_LOG_ERROR("apply high power error");
|
||||
return returnCode;
|
||||
}
|
||||
USER_LOG_INFO("Success to apply high power.");
|
||||
}
|
||||
|
||||
// register power off notification callback function
|
||||
|
||||
@ -71,6 +71,7 @@ typedef struct {
|
||||
uint8_t usbBulk2InterfaceNum;
|
||||
uint8_t usbBulk2EndpointIn;
|
||||
uint8_t usbBulk2EndpointOut;
|
||||
|
||||
} usbBulkConfig;
|
||||
} T_DjiUserLinkConfig;
|
||||
|
||||
|
||||
@ -88,7 +88,7 @@ T_DjiReturnCode DjiTest_WaypointV3RunSample(void)
|
||||
/*! Attention: suggest use the exported kmz file by DJI pilot. If use this test file, you need set the longitude as
|
||||
* 113.94255, latitude as 22.57765 on DJI Assistant 2 simulator */
|
||||
snprintf(tempPath, DJI_TEST_WAYPOINT_V3_KMZ_FILE_PATH_LEN_MAX, "%s/waypoint_file/waypoint_v3_test_file.kmz",
|
||||
curFileDirPath);
|
||||
curFileDirPath);
|
||||
|
||||
kmzFile = fopen(tempPath, "r");
|
||||
if (kmzFile == NULL) {
|
||||
|
||||
@ -321,10 +321,11 @@ static T_DjiReturnCode DjiTest_PlayTtsData(void)
|
||||
return DJI_ERROR_SYSTEM_MODULE_CODE_SYSTEM_ERROR;
|
||||
}
|
||||
|
||||
if (aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M3E ||
|
||||
aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M3T ||
|
||||
aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M3D ||
|
||||
aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M3TD) {
|
||||
if (DJI_AIRCRAFT_TYPE_M3E == aircraftInfoBaseInfo.aircraftType || DJI_AIRCRAFT_TYPE_M3T == aircraftInfoBaseInfo.aircraftType
|
||||
|| DJI_AIRCRAFT_TYPE_M3D == aircraftInfoBaseInfo.aircraftType || DJI_AIRCRAFT_TYPE_M3TD == aircraftInfoBaseInfo.aircraftType
|
||||
|| DJI_AIRCRAFT_TYPE_M4T == aircraftInfoBaseInfo.aircraftType
|
||||
|| DJI_AIRCRAFT_TYPE_M4E == aircraftInfoBaseInfo.aircraftType
|
||||
) {
|
||||
return DjiTest_PlayAudioData();
|
||||
} else {
|
||||
txtFile = fopen(WIDGET_SPEAKER_TTS_FILE_NAME, "r");
|
||||
|
||||
@ -211,10 +211,11 @@ T_DjiReturnCode DjiTest_WidgetInteractionStartService(void)
|
||||
return djiStat;
|
||||
}
|
||||
|
||||
#ifdef SYSTEM_ARCH_LINUX_DISABLEED
|
||||
#ifdef SYSTEM_ARCH_LINUX_DISABLE
|
||||
//Step 2 : Set UI Config (Linux environment)
|
||||
char curFileDirPath[WIDGET_DIR_PATH_LEN_MAX];
|
||||
char tempPath[WIDGET_DIR_PATH_LEN_MAX];
|
||||
|
||||
djiStat = DjiUserUtil_GetCurrentFileDirPath(__FILE__, WIDGET_DIR_PATH_LEN_MAX, curFileDirPath);
|
||||
if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
|
||||
USER_LOG_ERROR("Get file current path error, stat = 0x%08llX", djiStat);
|
||||
@ -461,8 +462,8 @@ static void *DjiTest_WidgetInteractionTask(void *arg)
|
||||
USER_LOG_INFO("--------------------------------------------------------------------------------------------->");
|
||||
DjiTest_WidgetLogAppend("-> Sample Start");
|
||||
|
||||
if (s_aircraftInfoBaseInfo.mountPosition == DJI_MOUNT_POSITION_EXTENSION_PORT
|
||||
|| DJI_MOUNT_POSITION_EXTENSION_LITE_PORT == s_aircraftInfoBaseInfo.mountPosition) {
|
||||
if (s_aircraftInfoBaseInfo.mountPositionType == DJI_MOUNT_POSITION_TYPE_EXTENSION_PORT ||
|
||||
s_aircraftInfoBaseInfo.mountPositionType == DJI_MOUNT_POSITION_TYPE_EXTENSION_LITE_PORT) {
|
||||
switch (s_extensionPortSampleIndex) {
|
||||
case E_DJI_SAMPLE_INDEX_WAYPOINT_V2:
|
||||
if (s_isallowRunFlightControlSample == true) {
|
||||
|
||||
@ -88,6 +88,7 @@ T_DjiReturnCode DjiTest_XPortStartService(void)
|
||||
|
||||
limitAngle.upperLimit = 300;
|
||||
limitAngle.lowerLimit = -1000;
|
||||
USER_LOG_INFO("Set joint angle limit of pitch axis, upperLimit %d, lowerLimit %d", limitAngle.upperLimit, limitAngle.lowerLimit);
|
||||
djiStat = DjiXPort_SetLimitAngleSync(DJI_XPORT_LIMIT_ANGLE_CATEGORY_PITCH_JOINT_ANGLE, limitAngle);
|
||||
if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
|
||||
USER_LOG_ERROR("set pitch joint angle limit angle for XPort error: 0x%08llX.", djiStat);
|
||||
@ -96,6 +97,7 @@ T_DjiReturnCode DjiTest_XPortStartService(void)
|
||||
|
||||
limitAngle.upperLimit = 300;
|
||||
limitAngle.lowerLimit = -800;
|
||||
USER_LOG_INFO("Set euler angle limit of pitch axis, upperLimit %d, lowerLimit %d", limitAngle.upperLimit, limitAngle.lowerLimit);
|
||||
djiStat = DjiXPort_SetLimitAngleSync(DJI_XPORT_LIMIT_ANGLE_CATEGORY_PITCH_EULER_ANGLE, limitAngle);
|
||||
if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
|
||||
USER_LOG_ERROR("set pitch euler angle limit angle for XPort error: 0x%08llX.", djiStat);
|
||||
@ -104,6 +106,7 @@ T_DjiReturnCode DjiTest_XPortStartService(void)
|
||||
|
||||
limitAngle.upperLimit = 300;
|
||||
limitAngle.lowerLimit = -1000;
|
||||
USER_LOG_INFO("Set extended euler angle limit of pitch axis, upperLimit %d, lowerLimit %d", limitAngle.upperLimit, limitAngle.lowerLimit);
|
||||
djiStat = DjiXPort_SetLimitAngleSync(DJI_XPORT_LIMIT_ANGLE_CATEGORY_PITCH_EULER_ANGLE_EXTENSION, limitAngle);
|
||||
if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
|
||||
USER_LOG_ERROR("set pitch extension euler angle limit angle for XPort error: 0x%08llX.", djiStat);
|
||||
@ -126,10 +129,12 @@ T_DjiReturnCode DjiTest_XPortStartService(void)
|
||||
limitAngle.upperLimit = 1500;
|
||||
limitAngle.lowerLimit = -1500;
|
||||
} else {
|
||||
USER_LOG_WARN("payload mount position is unknown.");
|
||||
return DJI_ERROR_SYSTEM_MODULE_CODE_SYSTEM_ERROR;
|
||||
USER_LOG_WARN("unknown mounposition.");
|
||||
limitAngle.upperLimit = 300;
|
||||
limitAngle.lowerLimit = -1500;
|
||||
}
|
||||
|
||||
USER_LOG_INFO("Set joint angle limit of yaw axis, upperLimit %d, lowerLimit %d", limitAngle.upperLimit, limitAngle.lowerLimit);
|
||||
djiStat = DjiXPort_SetLimitAngleSync(DJI_XPORT_LIMIT_ANGLE_CATEGORY_YAW_JOINT_ANGLE, limitAngle);
|
||||
if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
|
||||
USER_LOG_ERROR("set yaw joint angle limit angle for XPort error: 0x%08llX.", djiStat);
|
||||
|
||||
Reference in New Issue
Block a user