NEW: add the network cable connect status check to avoid error log

Signed-off-by: DJI-Martin <DJI-Martin@dji.com>
This commit is contained in:
DJI-Martin
2022-01-18 20:25:40 +08:00
parent 0860591f0f
commit 096b6a0d40
25 changed files with 73 additions and 31 deletions

View File

@ -39,7 +39,7 @@ extern "C" {
#define DJI_VERSION_MINOR 0 /*!< DJI SDK minor version num, when add functionality in a backwards compatible manner changes. Range from 0 to 99. */ #define DJI_VERSION_MINOR 0 /*!< 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 1459 /*!< DJI SDK version build info, when jenkins trigger build changes. Range from 0 to 65535. */ #define DJI_VERSION_BUILD 1461 /*!< DJI SDK version build info, when jenkins trigger build changes. Range from 0 to 65535. */
/* Exported types ------------------------------------------------------------*/ /* Exported types ------------------------------------------------------------*/

View File

@ -41,7 +41,7 @@
#define DJI_LOG_FOLDER_NAME "Logs" #define DJI_LOG_FOLDER_NAME "Logs"
#define DJI_LOG_PATH_MAX_SIZE (128) #define DJI_LOG_PATH_MAX_SIZE (128)
#define DJI_LOG_FOLDER_NAME_MAX_SIZE (32) #define DJI_LOG_FOLDER_NAME_MAX_SIZE (32)
#define DJI_LOG_SYSTEM_CMD_MAX_SIZE (64) #define DJI_SYSTEM_CMD_STR_MAX_SIZE (64)
#define DJI_LOG_MAX_COUNT (10) #define DJI_LOG_MAX_COUNT (10)
#define USER_UTIL_UNUSED(x) ((x) = (x)) #define USER_UTIL_UNUSED(x) ((x) = (x))
@ -272,7 +272,7 @@ T_DjiReturnCode Application::DjiUser_LocalWriteFsInit(const char *path)
{ {
T_DjiReturnCode djiReturnCode = DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS; T_DjiReturnCode djiReturnCode = DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
char filePath[DJI_LOG_PATH_MAX_SIZE]; char filePath[DJI_LOG_PATH_MAX_SIZE];
char systemCmd[DJI_LOG_SYSTEM_CMD_MAX_SIZE]; char systemCmd[DJI_SYSTEM_CMD_STR_MAX_SIZE];
char folderName[DJI_LOG_FOLDER_NAME_MAX_SIZE]; char folderName[DJI_LOG_FOLDER_NAME_MAX_SIZE];
time_t currentTime = time(nullptr); time_t currentTime = time(nullptr);
struct tm *localTime = localtime(&currentTime); struct tm *localTime = localtime(&currentTime);

View File

@ -28,7 +28,7 @@
/* Private constants ---------------------------------------------------------*/ /* Private constants ---------------------------------------------------------*/
#define UART_DEV_NAME_STR_SIZE (128) #define UART_DEV_NAME_STR_SIZE (128)
#define DJI_SYSTEM_CMD_MAX_SIZE (64) #define DJI_SYSTEM_CMD_STR_MAX_SIZE (64)
#define DJI_SYSTEM_RESULT_STR_MAX_SIZE (128) #define DJI_SYSTEM_RESULT_STR_MAX_SIZE (128)
/* Private types -------------------------------------------------------------*/ /* Private types -------------------------------------------------------------*/
@ -48,7 +48,7 @@ T_DjiReturnCode HalUart_Init(E_DjiHalUartNum uartNum, uint32_t baudRate, T_DjiUa
struct flock lock; struct flock lock;
T_DjiReturnCode returnCode = DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS; T_DjiReturnCode returnCode = DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
char uartName[UART_DEV_NAME_STR_SIZE]; char uartName[UART_DEV_NAME_STR_SIZE];
char systemCmd[DJI_SYSTEM_CMD_MAX_SIZE]; char systemCmd[DJI_SYSTEM_CMD_STR_MAX_SIZE];
char *ret = NULL; char *ret = NULL;
char lineBuf[DJI_SYSTEM_RESULT_STR_MAX_SIZE] = {0}; char lineBuf[DJI_SYSTEM_RESULT_STR_MAX_SIZE] = {0};
FILE *fp; FILE *fp;

View File

@ -48,9 +48,10 @@ static T_DjiReturnCode ReceiveDataFromPayload(const uint8_t *data, uint16_t len)
/* Private variables ---------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/
static T_DjiTaskHandle s_userDataTransmissionThread; static T_DjiTaskHandle s_userDataTransmissionThread;
static T_DjiAircraftInfoBaseInfo s_aircraftInfoBaseInfo; static T_DjiAircraftInfoBaseInfo s_aircraftInfoBaseInfo;
static DjiTestDataTransmissionConfig s_dataTransmissionConfig = {0};
/* Exported functions definition ---------------------------------------------*/ /* Exported functions definition ---------------------------------------------*/
T_DjiReturnCode DjiTest_DataTransmissionStartService(void) T_DjiReturnCode DjiTest_DataTransmissionStartService(DjiTestDataTransmissionConfig config)
{ {
T_DjiReturnCode djiStat; T_DjiReturnCode djiStat;
T_DjiOsalHandler *osalHandler = DjiPlatform_GetOsalHandler(); T_DjiOsalHandler *osalHandler = DjiPlatform_GetOsalHandler();
@ -60,6 +61,8 @@ T_DjiReturnCode DjiTest_DataTransmissionStartService(void)
char ipAddr[DJI_IP_ADDR_STR_SIZE_MAX]; char ipAddr[DJI_IP_ADDR_STR_SIZE_MAX];
uint16_t port; uint16_t port;
memcpy(&s_dataTransmissionConfig, &config, sizeof(DjiTestDataTransmissionConfig));
djiStat = DjiLowSpeedDataChannel_Init(); djiStat = DjiLowSpeedDataChannel_Init();
if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
USER_LOG_ERROR("init data transmission module error."); USER_LOG_ERROR("init data transmission module error.");
@ -176,7 +179,7 @@ static void *UserDataTransmission_Task(void *arg)
USER_LOG_ERROR("get send to onboard computer channel state error."); USER_LOG_ERROR("get send to onboard computer channel state error.");
} }
#ifdef SYSTEM_ARCH_LINUX if (s_dataTransmissionConfig.isEnableHighSpeedDataChannel == true) {
djiStat = DjiHighSpeedDataChannel_SendDataStreamData(dataToBeSent, sizeof(dataToBeSent)); djiStat = DjiHighSpeedDataChannel_SendDataStreamData(dataToBeSent, sizeof(dataToBeSent));
if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
USER_LOG_ERROR("send data to data stream error."); USER_LOG_ERROR("send data to data stream error.");
@ -189,7 +192,7 @@ static void *UserDataTransmission_Task(void *arg)
} else { } else {
USER_LOG_ERROR("get data stream state error."); USER_LOG_ERROR("get data stream state error.");
} }
#endif }
} else if (s_aircraftInfoBaseInfo.mountPosition == DJI_MOUNT_POSITION_EXTENSION_PORT) { } else if (s_aircraftInfoBaseInfo.mountPosition == DJI_MOUNT_POSITION_EXTENSION_PORT) {
channelAddress = DJI_CHANNEL_ADDRESS_PAYLOAD_PORT_NO1; channelAddress = DJI_CHANNEL_ADDRESS_PAYLOAD_PORT_NO1;
djiStat = DjiLowSpeedDataChannel_SendData(channelAddress, dataToBeSent, sizeof(dataToBeSent)); djiStat = DjiLowSpeedDataChannel_SendData(channelAddress, dataToBeSent, sizeof(dataToBeSent));

View File

@ -38,10 +38,13 @@ extern "C" {
/* Exported types ------------------------------------------------------------*/ /* Exported types ------------------------------------------------------------*/
typedef struct {
bool isEnableLowSpeedDataChannel;
bool isEnableHighSpeedDataChannel;
} DjiTestDataTransmissionConfig;
/* Exported functions --------------------------------------------------------*/ /* Exported functions --------------------------------------------------------*/
T_DjiReturnCode DjiTest_DataTransmissionStartService(void); T_DjiReturnCode DjiTest_DataTransmissionStartService(DjiTestDataTransmissionConfig config);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -47,6 +47,7 @@ extern "C" {
/* Exported functions --------------------------------------------------------*/ /* Exported functions --------------------------------------------------------*/
T_DjiReturnCode DjiUserUtil_GetCurrentFileDirPath(const char *filePath, uint32_t pathBufferSize, char *dirPath); T_DjiReturnCode DjiUserUtil_GetCurrentFileDirPath(const char *filePath, uint32_t pathBufferSize, char *dirPath);
void DjiUserUtil_PrintProgressBar(uint16_t currentProgress, uint16_t totalProgress, char *userData); void DjiUserUtil_PrintProgressBar(uint16_t currentProgress, uint16_t totalProgress, char *userData);
T_DjiReturnCode DjiUserUtil_RunSystemCmd(const char *systemCmdStr);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -124,7 +124,7 @@ T_DjiReturnCode Osal_UdpSendData(T_DjiSocketHandle socketHandle, const char *ipA
addr.sin_port = htons(port); addr.sin_port = htons(port);
addr.sin_addr.s_addr = inet_addr(ipAddr); addr.sin_addr.s_addr = inet_addr(ipAddr);
ret = sendto(socketHandleStruct->socketFd, buf, len, 0, (struct sockaddr *) &addr, sizeof(struct sockaddr_in)); ret = sendto(socketHandleStruct->socketFd, buf, len, MSG_DONTWAIT, (struct sockaddr *) &addr, sizeof(struct sockaddr_in));
if (ret >= 0) { if (ret >= 0) {
*realLen = ret; *realLen = ret;
} else { } else {

View File

@ -59,8 +59,9 @@
#define DJI_LOG_FOLDER_NAME "Logs" #define DJI_LOG_FOLDER_NAME "Logs"
#define DJI_LOG_PATH_MAX_SIZE (128) #define DJI_LOG_PATH_MAX_SIZE (128)
#define DJI_LOG_FOLDER_NAME_MAX_SIZE (32) #define DJI_LOG_FOLDER_NAME_MAX_SIZE (32)
#define DJI_LOG_SYSTEM_CMD_MAX_SIZE (64)
#define DJI_LOG_MAX_COUNT (10) #define DJI_LOG_MAX_COUNT (10)
#define DJI_SYSTEM_CMD_STR_MAX_SIZE (64)
#define DJI_SYSTEM_RESULT_STR_MAX_SIZE (128)
#define DJI_USE_WIDGET_INTERACTION 0 #define DJI_USE_WIDGET_INTERACTION 0
@ -84,6 +85,7 @@ static T_DjiReturnCode DjiUser_LocalWriteFsInit(const char *path);
static void *DjiUser_MonitorTask(void *argument); static void *DjiUser_MonitorTask(void *argument);
static T_DjiReturnCode DjiTest_HighPowerApplyPinInit(); static T_DjiReturnCode DjiTest_HighPowerApplyPinInit();
static T_DjiReturnCode DjiTest_WriteHighPowerApplyPin(E_DjiPowerManagementPinState pinState); static T_DjiReturnCode DjiTest_WriteHighPowerApplyPin(E_DjiPowerManagementPinState pinState);
static bool DjiUser_CheckNetCableConnectStatus(void);
/* Exported functions definition ---------------------------------------------*/ /* Exported functions definition ---------------------------------------------*/
int main(int argc, char **argv) int main(int argc, char **argv)
@ -91,6 +93,7 @@ int main(int argc, char **argv)
T_DjiReturnCode returnCode; T_DjiReturnCode returnCode;
T_DjiUserInfo userInfo; T_DjiUserInfo userInfo;
T_DjiAircraftInfoBaseInfo aircraftInfoBaseInfo; T_DjiAircraftInfoBaseInfo aircraftInfoBaseInfo;
DjiTestDataTransmissionConfig dataTransmissionConfig;
T_DjiOsalHandler osalHandler = { T_DjiOsalHandler osalHandler = {
.TaskCreate = Osal_TaskCreate, .TaskCreate = Osal_TaskCreate,
.TaskDestroy = Osal_TaskDestroy, .TaskDestroy = Osal_TaskDestroy,
@ -250,7 +253,10 @@ int main(int argc, char **argv)
} }
if (aircraftInfoBaseInfo.mountPosition == DJI_MOUNT_POSITION_EXTENSION_PORT) { if (aircraftInfoBaseInfo.mountPosition == DJI_MOUNT_POSITION_EXTENSION_PORT) {
returnCode = DjiTest_DataTransmissionStartService(); dataTransmissionConfig.isEnableLowSpeedDataChannel = true;
dataTransmissionConfig.isEnableHighSpeedDataChannel = false;
returnCode = DjiTest_DataTransmissionStartService(dataTransmissionConfig);
if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
USER_LOG_ERROR("data transmission init error"); USER_LOG_ERROR("data transmission init error");
} }
@ -285,10 +291,12 @@ int main(int argc, char **argv)
#endif #endif
#ifdef CONFIG_MODULE_SAMPLE_CAMERA_MEDIA_ON #ifdef CONFIG_MODULE_SAMPLE_CAMERA_MEDIA_ON
if (DjiUser_CheckNetCableConnectStatus() == true) {
returnCode = DjiTest_CameraEmuMediaStartService(); returnCode = DjiTest_CameraEmuMediaStartService();
if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
USER_LOG_ERROR("camera emu media init error"); USER_LOG_ERROR("camera emu media init error");
} }
}
#endif #endif
#ifdef CONFIG_MODULE_SAMPLE_FC_SUBSCRIPTION_ON #ifdef CONFIG_MODULE_SAMPLE_FC_SUBSCRIPTION_ON
@ -330,7 +338,9 @@ int main(int argc, char **argv)
#endif #endif
#ifdef CONFIG_MODULE_SAMPLE_DATA_TRANSMISSION_ON #ifdef CONFIG_MODULE_SAMPLE_DATA_TRANSMISSION_ON
returnCode = DjiTest_DataTransmissionStartService(); dataTransmissionConfig.isEnableLowSpeedDataChannel = true;
dataTransmissionConfig.isEnableHighSpeedDataChannel = DjiUser_CheckNetCableConnectStatus();
returnCode = DjiTest_DataTransmissionStartService(dataTransmissionConfig);
if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
USER_LOG_ERROR("widget sample init error"); USER_LOG_ERROR("widget sample init error");
} }
@ -465,7 +475,7 @@ static T_DjiReturnCode DjiUser_LocalWriteFsInit(const char *path)
{ {
T_DjiReturnCode djiReturnCode = DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS; T_DjiReturnCode djiReturnCode = DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
char filePath[DJI_LOG_PATH_MAX_SIZE]; char filePath[DJI_LOG_PATH_MAX_SIZE];
char systemCmd[DJI_LOG_SYSTEM_CMD_MAX_SIZE]; char systemCmd[DJI_SYSTEM_CMD_STR_MAX_SIZE];
char folderName[DJI_LOG_FOLDER_NAME_MAX_SIZE]; char folderName[DJI_LOG_FOLDER_NAME_MAX_SIZE];
time_t currentTime = time(NULL); time_t currentTime = time(NULL);
struct tm *localTime = localtime(&currentTime); struct tm *localTime = localtime(&currentTime);
@ -611,4 +621,25 @@ static T_DjiReturnCode DjiTest_WriteHighPowerApplyPin(E_DjiPowerManagementPinSta
#pragma GCC diagnostic pop #pragma GCC diagnostic pop
static bool DjiUser_CheckNetCableConnectStatus(void)
{
FILE *fp;
char *ret = NULL;
char systemCmd[DJI_SYSTEM_CMD_STR_MAX_SIZE] = {0};
char lineBuf[DJI_SYSTEM_RESULT_STR_MAX_SIZE] = {0};
sprintf(systemCmd, "ifconfig %s | grep RUNNING", LINUX_NETWORK_DEV);
fp = popen(systemCmd, "r");
if (fp == NULL) {
return false;
}
ret = fgets(lineBuf, sizeof(lineBuf), fp);
if (ret == NULL) {
return false;
}
return true;
}
/****************** (C) COPYRIGHT DJI Innovations *****END OF FILE****/ /****************** (C) COPYRIGHT DJI Innovations *****END OF FILE****/

View File

@ -28,7 +28,7 @@
/* Private constants ---------------------------------------------------------*/ /* Private constants ---------------------------------------------------------*/
#define UART_DEV_NAME_STR_SIZE (128) #define UART_DEV_NAME_STR_SIZE (128)
#define DJI_SYSTEM_CMD_MAX_SIZE (64) #define DJI_SYSTEM_CMD_STR_MAX_SIZE (64)
#define DJI_SYSTEM_RESULT_STR_MAX_SIZE (128) #define DJI_SYSTEM_RESULT_STR_MAX_SIZE (128)
/* Private types -------------------------------------------------------------*/ /* Private types -------------------------------------------------------------*/
@ -48,7 +48,7 @@ T_DjiReturnCode HalUart_Init(E_DjiHalUartNum uartNum, uint32_t baudRate, T_DjiUa
struct flock lock; struct flock lock;
T_DjiReturnCode returnCode = DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS; T_DjiReturnCode returnCode = DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
char uartName[UART_DEV_NAME_STR_SIZE]; char uartName[UART_DEV_NAME_STR_SIZE];
char systemCmd[DJI_SYSTEM_CMD_MAX_SIZE]; char systemCmd[DJI_SYSTEM_CMD_STR_MAX_SIZE];
char *ret = NULL; char *ret = NULL;
char lineBuf[DJI_SYSTEM_RESULT_STR_MAX_SIZE] = {0}; char lineBuf[DJI_SYSTEM_RESULT_STR_MAX_SIZE] = {0};
FILE *fp; FILE *fp;

View File

@ -78,6 +78,10 @@ void DjiUser_StartTask(void const *argument)
T_DjiReturnCode returnCode; T_DjiReturnCode returnCode;
T_DjiUserInfo userInfo; T_DjiUserInfo userInfo;
T_DjiAircraftInfoBaseInfo aircraftInfoBaseInfo; T_DjiAircraftInfoBaseInfo aircraftInfoBaseInfo;
DjiTestDataTransmissionConfig dataTransmissionConfig = {
.isEnableHighSpeedDataChannel = false,
.isEnableLowSpeedDataChannel = true,
};
T_DjiOsalHandler osalHandler = { T_DjiOsalHandler osalHandler = {
.TaskCreate = Osal_TaskCreate, .TaskCreate = Osal_TaskCreate,
.TaskDestroy = Osal_TaskDestroy, .TaskDestroy = Osal_TaskDestroy,
@ -214,7 +218,7 @@ void DjiUser_StartTask(void const *argument)
#endif #endif
#ifdef CONFIG_MODULE_SAMPLE_DATA_TRANSMISSION_ON #ifdef CONFIG_MODULE_SAMPLE_DATA_TRANSMISSION_ON
returnCode = DjiTest_DataTransmissionStartService(); returnCode = DjiTest_DataTransmissionStartService(dataTransmissionConfig);
if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
USER_LOG_ERROR("widget sample init error"); USER_LOG_ERROR("widget sample init error");
} }