作者 ookk303

更新

... ... @@ -141,7 +141,11 @@
"jzsdk_monitor.h": "c",
"*.bak": "c",
"ziyan_sdk_config.h": "c",
"test_payload_cam_emu_base.h": "c"
"test_payload_cam_emu_base.h": "c",
"jzsdk_expansion.h": "c",
"jzsdk_expansionapi.h": "c",
"test_widget_speaker.h": "c",
"dji_expansion.h": "c"
},
"Codegeex.GenerationPreference": "automatic",
"C_Cpp.dimInactiveRegions": false,
... ...
# 编译链的配置
#1、编译链与设备类型的选择
set(DEVICE_NAME JZ_U3D)
set(DEVICE_NAME JZ_H200)
#上一行为禁止修改行
message("**************************JZSDK构建编译开始***************************\n")
... ... @@ -32,6 +32,8 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_C1")
set(MAKE_COMPILER ARM_X86_64_ARRCH64)
elseif("${DEVICE_NAME}" STREQUAL "JZ_ST")
set(MAKE_COMPILER ARM_X86_64_ARRCH64)
elseif("${DEVICE_NAME}" STREQUAL "JZ_H200")
set(MAKE_COMPILER ARM_CORTEX_LINUX)
endif()
if(${MAKE_COMPILER} STREQUAL "ARM_CORTEXA9_LINUX")
... ... @@ -42,8 +44,8 @@ if(${MAKE_COMPILER} STREQUAL "ARM_CORTEXA9_LINUX")
elseif(${MAKE_COMPILER} STREQUAL "ARM_CORTEX_LINUX")
set(TOOLCHAIN_NAME arm-linux-gnueabihf-gcc)
set(CMAKE_C_COMPILER "/usr/local/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc")
set(CMAKE_CXX_COMPILER "/usr/local/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++")
set(CMAKE_C_COMPILER "/usr/local/arm/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc")
set(CMAKE_CXX_COMPILER "/usr/local/arm/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++")
message("使用ARM_CORTEX_LINUX编译链")
elseif(${MAKE_COMPILER} STREQUAL "ARM_X86_64_ARRCH64")
... ...
... ... @@ -47,6 +47,9 @@ if(${GIMBAL_MODULE} STREQUAL "VERSION_SWITCH_ON")
file(GLOB_RECURSE GIMBAL_SRC ${ROOT_DIRS}Module/Gimbal/*.c)
list(APPEND ALL_SRC_FILES ${GIMBAL_SRC})
#打开云台的代码编译部分
add_definitions(-DMACRO_GIMBAL_MODULE)
endif()
#如果要加载引脚模块,需要加载以下附属内容
... ... @@ -154,6 +157,14 @@ if(${COMMON_MODULE} STREQUAL "VERSION_SWITCH_ON")
endif()
#如果要加载拓展接口模块,需要加载以下附属内容
if(${EXTENSION_API_MODULE} STREQUAL "VERSION_SWITCH_ON")
message("\n拓展接口模块加载中")
file(GLOB_RECURSE EXTENSION_API_MODULE_SRC ${ROOT_DIRS}Module/ExtensionAPI/*.c)
list(APPEND ALL_SRC_FILES ${EXTENSION_API_MODULE_SRC})
endif()
#如果要加载侧面激光模块,需要加载以下附属内容
if(${SIDE_LASER_MODULE} STREQUAL "VERSION_SWITCH_ON")
message("\n侧面激光模块加载中")
... ... @@ -210,6 +221,7 @@ list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/COMMONManager)
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/TestAPP)
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/ImageProcessing)
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/SerialManagement)
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/ExtensionAPI)
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module)
message("**************************库构建完毕***************************\n")
\ No newline at end of file
... ...
... ... @@ -25,6 +25,9 @@ set(MEGAPHONE_MODULE VERSION_SWITCH_OFF)
# 电源管理模块
set(COMMON_MODULE VERSION_SWITCH_OFF)
#拓展接口模块
set(EXTENSION_API_MODULE VERSION_SWITCH_OFF)
# UI管理模块
set(UI_CONTROL_MODULE VERSION_SWITCH_OFF)
... ... @@ -69,6 +72,13 @@ set(UI_CONTROL_MODULE VERSION_SWITCH_ON)
# 添加通用模块
set(COMMON_MODULE VERSION_SWITCH_ON)
# 添加IRCUT 引脚处理模块
set(IRCUT_MODULE VERSION_SWITCH_ON)
# 添加拓展接口模块
set(EXTENSION_API_MODULE VERSION_SWITCH_ON)
message("通用库加载完成")
... ... @@ -82,9 +92,6 @@ if("${DEVICE_NAME}" STREQUAL "JZ_H1E")
# 添加Gimbal 云台处理模块
set(GIMBAL_MODULE VERSION_SWITCH_ON)
# 添加IRCUT 引脚处理模块
set(IRCUT_MODULE VERSION_SWITCH_ON)
# 添加LIGHTING 光源处理模块
set(LIGHTING_MODULE VERSION_SWITCH_ON)
... ... @@ -108,9 +115,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_H1T")
# 添加Gimbal 云台处理模块
set(GIMBAL_MODULE VERSION_SWITCH_ON)
# 添加IRCUT 引脚处理模块
set(IRCUT_MODULE VERSION_SWITCH_ON)
# 添加LIGHTING 光源处理模块
set(LIGHTING_MODULE VERSION_SWITCH_ON)
... ... @@ -134,9 +138,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_U3")
# 添加Gimbal 云台处理模块
set(GIMBAL_MODULE VERSION_SWITCH_ON)
# 添加IRCUT 引脚处理模块
set(IRCUT_MODULE VERSION_SWITCH_ON)
# 添加LIGHTING 光源处理模块
set(LIGHTING_MODULE VERSION_SWITCH_ON)
... ... @@ -160,9 +161,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_U3S")
# 添加Gimbal 云台处理模块
set(GIMBAL_MODULE VERSION_SWITCH_ON)
# 添加IRCUT 引脚处理模块
set(IRCUT_MODULE VERSION_SWITCH_ON)
# 添加LIGHTING 光源处理模块
set(LIGHTING_MODULE VERSION_SWITCH_ON)
... ... @@ -189,9 +187,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_U3D")
# 添加Gimbal 云台处理模块
set(GIMBAL_MODULE VERSION_SWITCH_ON)
# 添加IRCUT 引脚处理模块
set(IRCUT_MODULE VERSION_SWITCH_ON)
# 添加LIGHTING 光源处理模块
set(LIGHTING_MODULE VERSION_SWITCH_ON)
... ... @@ -215,9 +210,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_U30")
# 添加Gimbal 云台处理模块
set(GIMBAL_MODULE VERSION_SWITCH_ON)
# 添加IRCUT 引脚处理模块
set(IRCUT_MODULE VERSION_SWITCH_ON)
# 添加LIGHTING 光源处理模块
set(LIGHTING_MODULE VERSION_SWITCH_ON)
... ... @@ -239,9 +231,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_H10")
# 添加Gimbal 云台处理模块
set(GIMBAL_MODULE VERSION_SWITCH_ON)
# 添加IRCUT 引脚处理模块
set(IRCUT_MODULE VERSION_SWITCH_ON)
# 添加喊话器模块
set(MEGAPHONE_MODULE VERSION_SWITCH_ON)
... ... @@ -266,9 +255,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_H10T")
# 添加Gimbal 云台处理模块
set(GIMBAL_MODULE VERSION_SWITCH_ON)
# 添加IRCUT 引脚处理模块
set(IRCUT_MODULE VERSION_SWITCH_ON)
# 添加喊话器模块
set(MEGAPHONE_MODULE VERSION_SWITCH_ON)
... ... @@ -287,9 +273,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_H150S")
# 添加Gimbal 云台处理模块
set(GIMBAL_MODULE VERSION_SWITCH_ON)
# 添加IRCUT 引脚处理模块
set(IRCUT_MODULE VERSION_SWITCH_ON)
# 添加喊话器模块
set(MEGAPHONE_MODULE VERSION_SWITCH_ON)
... ... @@ -317,9 +300,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_H150T")
# 添加Gimbal 云台处理模块
set(GIMBAL_MODULE VERSION_SWITCH_ON)
# 添加IRCUT 引脚处理模块
set(IRCUT_MODULE VERSION_SWITCH_ON)
# 添加喊话器模块
set(MEGAPHONE_MODULE VERSION_SWITCH_ON)
... ... @@ -343,9 +323,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_C1")
# 添加Gimbal 云台处理模块
set(GIMBAL_MODULE VERSION_SWITCH_ON)
# 添加IRCUT 引脚处理模块
set(IRCUT_MODULE VERSION_SWITCH_ON)
# 添加LIGHTING 光源处理模块
set(LIGHTING_MODULE VERSION_SWITCH_ON)
... ... @@ -369,9 +346,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_ST")
# 添加Gimbal 云台处理模块
set(GIMBAL_MODULE VERSION_SWITCH_ON)
# 添加IRCUT 引脚处理模块
set(IRCUT_MODULE VERSION_SWITCH_ON)
# 添加MediaProc 媒体管理模块
set(MEDIA_PROC_MODULE VERSION_SWITCH_ON)
... ... @@ -386,7 +360,10 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_ST")
list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})
message("ST基础配置完毕\n")
elseif("${DEVICE_NAME}" STREQUAL "JZ_H200")
message("JZ_H200基础配置完毕\n")
endif()
message("***********************模组模块配置完毕*********************************\n")
\ No newline at end of file
... ...
... ... @@ -37,6 +37,7 @@
#define JZ_U3S 0x0018
#define JZ_U3D 0x0019
#define JZ_U30 0x001A
#define JZ_H200 0x001B
#define JZ_H150S 0x0013
#define JZ_H150T 0x0015
... ...
... ... @@ -7,7 +7,7 @@
#define VERSION_CHOOSE_H
#include "JZsdk_Base/JZsdk_Code/JZsdk_DeviceCode.h"
//1~10行 除了D可以修改版本选择 禁止动任何东西
#define DEVICE_VERSION JZ_U3D
#define DEVICE_VERSION JZ_H200
//禁止修改行 选择是串口程序 还是 psdk程序
#define APP_VERSION APP_PSDK
... ... @@ -99,6 +99,10 @@
#define LIGHTING_STATUS_ON
#endif
//是否加载云台模块
#ifdef MACRO_GIMBAL_MODULE
#define GIMBAL_STATUS_ON
#endif
#else //这里用于方便调试使用,不是实际加载的模组
... ... @@ -137,6 +141,9 @@
//默认开启光源模块
#define LIGHTING_STATUS_ON
//默认开启云台模块
#define GIMBAL_STATUS_ON
#endif
#endif
\ No newline at end of file
... ...
... ... @@ -16,9 +16,7 @@
#include "Hal_Recv/HalRecv.h"
#if APP_VERSION == APP_PSDK
#include "data_transmission/test_data_transmission.h"
#endif
#include "ExtensionAPI/JZsdk_ExpansionApi.h"
// 串口参数结构体
typedef struct
... ... @@ -574,9 +572,11 @@ static void JZsdk_Uart_UartSend_Task(void *data)
}
else if (taskData->Uart_name == HAL_DATA_TRANSMISSION)
{
#if APP_VERSION == APP_PSDK
DJI_Low_Data_Trans(taskData->str, taskData->str_lenth);
#endif
T_JZsdkToPsdkHandler *JZsdkToPsdkHandle = ExpansionApi_JZsdkToPsdk_GetHandler();
if (JZsdkToPsdkHandle != NULL && JZsdkToPsdkHandle->low_data_tran != NULL)
{
JZsdkToPsdkHandle->low_data_tran(taskData->str, taskData->str_lenth);
}
}
free(taskData->str);
... ...
... ... @@ -327,6 +327,7 @@ static T_JZsdkReturnCode DeviceMessage_Enter_Debug(unsigned char *message)
snprintf(old_message,MESSAGE_MAX_LEN,"%s",message);
snprintf(message,MESSAGE_MAX_LEN,"%s%s",old_message,new_message);
#ifdef GIMBAL_STATUS_ON
//如果拥有云台,将会显示云台微调值
if (Get_JZsdk_GimbalStatusFlag() == 1)
{
... ... @@ -339,6 +340,7 @@ static T_JZsdkReturnCode DeviceMessage_Enter_Debug(unsigned char *message)
snprintf(old_message,MESSAGE_MAX_LEN,"%s",message);
snprintf(message,MESSAGE_MAX_LEN,"%s%s",old_message,new_message);
}
#endif
#ifdef MEGAPHONE_CONFIG_STATUS_ON
memset(new_message,0,sizeof(new_message));
... ...
#include "JZsdkLib.h"
#include "ExtensionAPI/JZsdk_ExpansionApi.h"
static T_JZsdkToPsdkHandler *g_JZsdkToPsdkHandle = NULL;
/**********************
*
* 拓展接口:
* Psdk拓展接口初始化
*
*
* ********************/
T_JZsdkReturnCode ExpansionApi_JZsdkToPsdk_Init(T_JZsdkToPsdkHandler JZsdkToPsdkHandle)
{
if (g_JZsdkToPsdkHandle != NULL)
{
JZSDK_LOG_INFO("Expansion_PsdkExpansion_Init: Psdk拓展接口已经初始化");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
//注册JZsdkToPsdkHandle
g_JZsdkToPsdkHandle = (T_JZsdkToPsdkHandler *)malloc(sizeof(T_JZsdkToPsdkHandler));
memcpy(g_JZsdkToPsdkHandle, &JZsdkToPsdkHandle, sizeof(T_JZsdkToPsdkHandler));
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
/*******************
*
* 拓展接口:
* 获取Psdk拓展接口
*
* ******************/
T_JZsdkToPsdkHandler *ExpansionApi_JZsdkToPsdk_GetHandler()
{
return g_JZsdkToPsdkHandle;
}
\ No newline at end of file
... ...
/**
********************************************************************
* @file JZsdk_ExpansionApi.h
* JZsdk_ExpansionApi.c 的头文件
*
*
*
*
*********************************************************************
*/
/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef JZSDK_EXPANSION_API_H
#define JZSDK_EXPANSION_API_H
/* Includes ------------------------------------------------------------------*/
#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/
/****************************************************
* PSDK_Expansion
* JZsdkToPsdkHandler
* 这里记录JZSDK调用各家飞机psdk的拓展接口, 比较特殊,
* 是 JZSDK去往各家psdk之间的中间层
*
* 请在各家的psdk中的mian.c中注册该模块,而不是在JZSDK中注册
********************************************************/
typedef struct {
T_JZsdkReturnCode (*low_data_tran)(unsigned char *data ,int len); //低层数据传输接口
T_JZsdkReturnCode (*push_DJIH264Frame_to_plane)(unsigned char* h264_data, uint32_t data_len); //推送DJIH264数据到飞机,这里指的视频为djih264,但并不知在dji用
T_JZsdkReturnCode (*Set_UI_CameraTransStatus)(int status); //设置UI的摄像头传输状态
T_JZsdkReturnCode (*Set_UI_Widget_Value)(int index, int value); //设置UI的控件值
//特殊控件-喊话器
T_JZsdkReturnCode (*Set_UI_SpeakerWidget_PlayState)(int value); //喊话器控件-播放状态
T_JZsdkReturnCode (*Set_UI_SpeakerWidget_LoopMode)(int value); //喊话器控件-循环状态
T_JZsdkReturnCode (*Set_UI_SpeakerWidget_Volume)(int value); //喊话器控件-音量
T_JZsdkReturnCode (*Get_UI_SpeakerWidget_RealTimeVoiceMode)(int *mode); //喊话器控件-获取实时语音模式
} T_JZsdkToPsdkHandler;
/* Exported macro ------------------------------------------------------------*/
/* Exported types ------------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
T_JZsdkReturnCode ExpansionApi_JZsdkToPsdk_Init(T_JZsdkToPsdkHandler JZsdkToPsdkHandle);
T_JZsdkToPsdkHandler *ExpansionApi_JZsdkToPsdk_GetHandler();
#ifdef __cplusplus
}
#endif
#endif
/************************ (C) COPYRIGHT DJI Innovations *******END OF FILE******/
... ...
... ... @@ -12,7 +12,7 @@
#include "JZsdk_network/JZsdk_network.h"
#if APP_VERSION == APP_PSDK
#include "Dji_Control/DJI_VideoDeal.h"
#include "JZsdk_PsdkExpansion/JZsdk_PsdkExpansion.h"
#endif
//推流入口
... ... @@ -38,7 +38,7 @@ T_JZsdkReturnCode VideoStream_PushFrame(unsigned char* h264_data, unsigned int d
//放入到对应的传输函数
#if APP_VERSION == APP_PSDK
//大疆模式,往大疆入口推流
DJI_VideoDeal_Push_DJIH264Frame(h264_data, data_len);
JZsdk_Expansion_Push_DJIH264Frame(h264_data, data_len);
#elif APP_VERSION == APP_UART
JZsdk_NetWork_SentData(h264_data, data_len);
... ...
... ... @@ -13,18 +13,28 @@
#include "Gimbal/Gimbal.h"
#include "DeviceInfo/DeviceInfo.h"
#include "ExtensionAPI/JZsdk_ExpansionApi.h"
#if APP_VERSION == APP_PSDK
#include "widget/test_widget.h"
#include "widget/test_widget_speaker.h"
#include "./Dji_Control/DJI_VideoDeal.h"
#elif APP_VERSION == APP_UART || APP_VERSION == APP_TEST
int Get_Opus_PlayMode()
/********************
*
* 获取UI控件里,opus实时是否有打开
*
*
* *********************/
int Get_UI_Widget_OpusRealTimeMode()
{
return JZ_FLAGCODE_OFF;
}
#endif
int mode = 0;
T_JZsdkToPsdkHandler *handle = ExpansionApi_JZsdkToPsdk_GetHandler();
if (handle == NULL || handle->Get_UI_SpeakerWidget_RealTimeVoiceMode == NULL)
{
return JZ_FLAGCODE_OFF;
}
handle->Get_UI_SpeakerWidget_RealTimeVoiceMode(&mode);
return mode;
}
#define AUTO_CONTROL 0x02
... ... @@ -67,20 +77,18 @@ typedef enum Psdk_Ui_define
PSDK_UI_SECONDARY_WIDGET_LOOPPLAY = 0x11008001, // 二级控件界面的音频循环开关
}Psdk_Ui_define;
/****************
*
* 控件设置
*
* *************/
int UI_control_WidgetArraySet(int index, int value)
static T_JZsdkReturnCode UI_control_WidgetArraySet(int index, int value)
{
#if APP_VERSION == APP_PSDK
set_wideget_value(index, value);
#elif APP_VERSION == APP_UART
#endif
T_JZsdkToPsdkHandler *handle = ExpansionApi_JZsdkToPsdk_GetHandler();
if (handle != NULL && handle->Set_UI_Widget_Value != NULL)
{
handle->Set_UI_Widget_Value(index, value);
}
}
/****************
... ... @@ -88,25 +96,37 @@ int UI_control_WidgetArraySet(int index, int value)
* 二级控件设置
*
* *************/
int UI_control_SecondaryWidgetArraySet(int type, int value)
static T_JZsdkReturnCode UI_control_SecondaryWidgetArraySet(int type, int value)
{
T_JZsdkToPsdkHandler *handle = ExpansionApi_JZsdkToPsdk_GetHandler();
if (handle != NULL)
{
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
switch (type)
{
#if APP_VERSION == APP_PSDK
case PSDK_UI_SECONDARY_WIDGET_PLAYSTATUS:
Speaker_Set_SpeakerState_state(value);
if (handle->Set_UI_SpeakerWidget_PlayState != NULL)
{
return handle->Set_UI_SpeakerWidget_PlayState(value);
}
break;
case PSDK_UI_SECONDARY_WIDGET_LOOPPLAY:
Speaker_Set_SpeakerPlaymode(value);
if (handle->Set_UI_SpeakerWidget_LoopMode != NULL)
{
return handle->Set_UI_SpeakerWidget_LoopMode(value);
}
break;
case PSDK_UI_WIDGET_VOLUME://音量
Speaker_Set_SpeakerVolume(value);
if (handle->Set_UI_SpeakerWidget_Volume != NULL)
{
return handle->Set_UI_SpeakerWidget_Volume(value);
}
break;
#elif APP_VERSION == APP_UART
#endif
default:
... ... @@ -304,7 +324,7 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_LastSong(int wheather_control)
T_JZsdkReturnCode ret;
// 开启实时喊话时,锁定该功能
if (Get_Opus_PlayMode() == 1)
if (Get_UI_Widget_OpusRealTimeMode() == JZ_FLAGCODE_ON)
{
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
... ... @@ -328,7 +348,7 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_NextSong(int wheather_control)
T_JZsdkReturnCode ret;
// 开启实时喊话时,锁定该功能
if (Get_Opus_PlayMode() == 1)
if (Get_UI_Widget_OpusRealTimeMode() == JZ_FLAGCODE_ON)
{
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
... ... @@ -353,7 +373,7 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_PlaySong(int wheather_control)
T_JZsdkReturnCode ret;
// 开启实时喊话时,锁定该功能
if (Get_Opus_PlayMode() == 1)
if (Get_UI_Widget_OpusRealTimeMode() == JZ_FLAGCODE_ON)
{
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
... ... @@ -385,7 +405,7 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_PlaySong(int wheather_control)
T_JZsdkReturnCode JZsdk_Psdk_UI_io_Audio_PauseAndPlayContinue(int wheather_control, int value)
{
// 开启实时喊话时,锁定该功能
if (Get_Opus_PlayMode() == 1)
if (Get_UI_Widget_OpusRealTimeMode() == JZ_FLAGCODE_ON)
{
UI_control_WidgetSet(PSDK_UI_WIDGET_PLAYSTATUS, value);
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
... ... @@ -427,7 +447,7 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_Audio_PauseAndPlayContinue(int wheather_contr
T_JZsdkReturnCode JZsdk_Psdk_UI_io_StopPlayAudio()
{
// 开启实时喊话时,锁定该功能
if (Get_Opus_PlayMode() == 1)
if (Get_UI_Widget_OpusRealTimeMode() == JZ_FLAGCODE_ON)
{
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
... ... @@ -1088,7 +1108,7 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_Set_MINGimbalRangen(int value)
T_JZsdkReturnCode JZsdk_Psdk_UI_io_Set_TTS_Play(char *data, int len)
{
// 开启实时喊话时,锁定该功能
if (Get_Opus_PlayMode() == 1)
if (Get_UI_Widget_OpusRealTimeMode() == JZ_FLAGCODE_ON)
{
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
... ... @@ -1199,9 +1219,11 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_OpusRealTimeVoice_Close()
* *************/
T_JZsdkReturnCode JZsdk_Psdk_UI_io_Reply_Camera_Status(int status)
{
#if APP_VERSION == APP_PSDK
DJI_Set_CameraTransStatus(status);
#endif
T_JZsdkToPsdkHandler *handler = ExpansionApi_JZsdkToPsdk_GetHandler();
if (handler != NULL && handler->Set_UI_CameraTransStatus != NULL)
{
handler->Set_UI_CameraTransStatus(status);
}
}
/***************
... ...
... ... @@ -176,6 +176,10 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_SetPowerStatus(int value);
T_JZsdkReturnCode JZsdk_Psdk_UI_io_SideLaserMode(int wheather_ChangeWidget, int wheather_control, int value);
//获取控件的实时opus模式是否开启
int Get_UI_Widget_OpusRealTimeMode();
#ifdef __cplusplus
}
#endif
... ...
... ... @@ -9,7 +9,7 @@ project(JZ_U3D)
#"-ldl":指定在编译时链接动态库加载库,以使用动态加载。
#"-lstdc++":指定在编译时链接C++标准库,以使用C++的一些特性和函数。
set(CMAKE_EXE_LINKER_FLAGS "-pthread")
set(CMAKE_EXE_LINKER_FLAGS "-pthread") # 设置可执行文件链接选项:启用线程支持
# 设置设备类型以加载主要功能模块
#预留行
... ... @@ -29,7 +29,7 @@ set(ROOT_DIRS "${CMAKE_CURRENT_LIST_DIR}/../../../../../../../")
include(${ROOT_DIRS}CmakeConfig/Compiler.cmake)
include(${ROOT_DIRS}CmakeConfig/module_config.cmake)
include(${ROOT_DIRS}CmakeConfig/module_build.cmake)
#PSDK态库
#PSDK态库
link_libraries(${CMAKE_CURRENT_LIST_DIR}/../../../../../psdk_lib/lib/${TOOLCHAIN_NAME}/libpayloadsdk.a)
if (NOT USE_SYSTEM_ARCH)
... ... @@ -56,12 +56,15 @@ file(GLOB_RECURSE MODULE_COMMON_SRC ../common/*.c) #系统文件 MODULE_COMM
file(GLOB_RECURSE MODULE_HAL_SRC hal/*.c) #网络串口usb文件 MODULE_HAL_SRC
file(GLOB_RECURSE MODULE_APP_SRC application/*.c) #main MODULE_APP_SRC
file(GLOB_RECURSE MODULE_SAMPLE_SRC ../../../module_sample/*.c) #基础功能文件 MODULE_SAMPLE_SRC
file(GLOB_RECURSE MODULE_JZSDK_PSDK_EXPANSION_SRC JZsdk_PsdkExpansion/*.c) #接口文件
# psdk额外加载的.h文件
include_directories(./application)
include_directories(../../../module_sample)
include_directories(../common)
include_directories(../../../../../psdk_lib/include) #PSDK头文件
include_directories(./JZsdk_PsdkExpansion)
# 加载jzsdk的头文件  *****************************************************
... ... @@ -81,6 +84,7 @@ add_executable(
${MODULE_APP_SRC}
${MODULE_HAL_SRC}
${MODULE_SAMPLE_SRC}
${MODULE_JZSDK_PSDK_EXPANSION_SRC}
${ALL_SRC_FILES} #加载jzsdk的源文件 *****************************************************
)
... ...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "JZsdkLib.h"
#include "version_choose.h"
#if APP_VERSION == APP_PSDK
#include "data_transmission/test_data_transmission.h"
#include "ExtensionAPI/JZsdk_ExpansionApi.h"
#include "DJI_Expansion/DJI_Expansion.h"
#include "widget/test_widget.h"
#include "widget/test_widget_speaker.h"
#include "dji_typedef.h"
#include "dji_payload_camera.h"
... ... @@ -13,6 +12,7 @@
#include "dji_error.h"
#include "utils/util_misc.h"
#include "MediaProc/MediaProc.h"
#include "camera_emu/test_payload_cam_emu_base.h"
... ... @@ -25,6 +25,7 @@
static const uint8_t s_frameAudInfo[VIDEO_FRAME_AUD_LEN] = {0x00, 0x00, 0x00, 0x01, 0x09, 0x10};
#define Temp_H264 "/root/sdcard/DCIM/Videos/out.h264" //临时h264的存放地址
struct FrameInfo
{
float DurationTime ;
... ... @@ -40,8 +41,39 @@ int PlayFrameNumber = 0; //当前播放的帧数
int transcode_flag = JZ_FLAGCODE_OFF;
unsigned int old_command_timeMS = 0;
//大疆推流函数,将输入的视频帧,输入到DjiPayloadCamera_SendVideoStream
int DJI_VideoDeal_Push_DJIH264Frame(unsigned char* h264_data, uint32_t data_len)
/**************************
*
* 拓展接口: 低速数据传输接口
*
* *************************/
T_JZsdkReturnCode JZsdk_Expansion_low_data_tran(unsigned char *data ,int len)
{
if(DJI_Low_Data_Trans(data,len) == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
/*********************************************************************************************
*
* 拓展接口 : 视频流相关
*
*************************************************************************************************/
/**************************
*
* 拓展接口: 视频数据数据传输接口
*
* *************************/
T_JZsdkReturnCode JZsdk_PsdkExpansion_Push_DJIH264Frame(unsigned char* h264_data, uint32_t data_len)
{
//USER_LOG_INFO("推流%d",data_len);
... ... @@ -91,6 +123,7 @@ int DJI_VideoDeal_Push_DJIH264Frame(unsigned char* h264_data, uint32_t data_len)
USER_LOG_ERROR("get video stream state error.");
}
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
//视频添加帧头,并推送给飞机
... ... @@ -98,9 +131,10 @@ static int DJI_VideoDeal_H264_TO_PUSH_DJIH264Frame(char* h264_data, uint32_t dat
{
memcpy(h264_data + data_len, s_frameAudInfo, VIDEO_FRAME_AUD_LEN);
data_len += VIDEO_FRAME_AUD_LEN;
DJI_VideoDeal_Push_DJIH264Frame(h264_data, data_len);
JZsdk_PsdkExpansion_Push_DJIH264Frame(h264_data, data_len);
}
//继续播放录像
static int VideoReplay_ContinuePlay()
{
... ... @@ -397,11 +431,67 @@ int DJI_VideoReplay_input(int command, unsigned int Command_timeMS, char* path)
}
}
//大疆psdk下,设置转码状态
int DJI_Set_CameraTransStatus(int status)
/*********************************************************************************************
*
* 拓展接口 : 控件相关
*
*************************************************************************************************/
T_DjiReturnCode Get_RealTimeVoiceMode(int *mode)
{
DJI_CamEmu_base_CameraTransLock(status);
if ( Get_Opus_PlayMode()==1 )//播放模式 为实时育英中
{
*mode = JZ_FLAGCODE_ON;
}
else
{
*mode = JZ_FLAGCODE_OFF;
}
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
#endif
\ No newline at end of file
T_JZsdkReturnCode DJI_JZsdkToPsdk_ExpnasionInit()
{
T_JZsdkToPsdkHandler handler = {
.low_data_tran = JZsdk_Expansion_low_data_tran,
.push_DJIH264Frame_to_plane = JZsdk_PsdkExpansion_Push_DJIH264Frame,
.Set_UI_Widget_Value = set_wideget_value,
.Set_UI_SpeaakerWidget_PlayState = Speaker_Set_SpeakerState_state,
.Set_UI_SpeaakerWidget_LoopMode = Speaker_Set_SpeakerPlaymode,
.Set_UI_SpeaakerWidget_Volume = Speaker_Set_SpeakerVolume,
.Get_UI_SpeakerWidget_RealTimeVoiceMode = Get_RealTimeVoiceMode,
};
if(Expansion_PsdkExpansion_Init(handler) != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
JZSDK_LOG_ERROR("Expansion_PsdkExpansion_Init error");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
\ No newline at end of file
... ...
/**
********************************************************************
* @file JZsdk_PsdkExpansion.h
* JZsdk_PsdkExpansion.c 的头文件
*
*********************************************************************
*/
/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef JZSDK_PSDK_EXPANSION_H
#define JZSDK_PSDK_EXPANSION_H
/* Includes ------------------------------------------------------------------*/
#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/
/* Exported types ------------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
T_JZsdkReturnCode JZsdk_Expansion_low_data_tran(unsigned char *data ,int len);
T_JZsdkReturnCode DJI_JZsdkToPsdk_ExpnasionInit();
#ifdef __cplusplus
}
#endif
#endif
... ...
... ... @@ -65,6 +65,7 @@
#include "Psdk_UI_io.h"
#include "DeviceInfo/DeviceInfo.h"
#include "CommonMod/PowerManger/PowerManger.h"
#include "DJI_Expansion/DJI_Expansion.h"
#ifdef AUDIODEAL_CONFIG_STATUS_ON
#include "AudioDeal/AudioDeal.h"
... ... @@ -557,6 +558,9 @@ int main(int argc, char *argv[])
Psdk_UI_io_Set_DJI_SkyPort_SerialNumber(Jz_SerialNumber);
}
//配置拓展接口
DJI_JZsdkToPsdk_ExpnasionInit();
//自己配置
Main_APP_Psdk();
... ...
... ... @@ -17,8 +17,8 @@ set(CMAKE_EXE_LINKER_FLAGS "-pthread")
# 修改增添
set(TOOLCHAIN_NAME arm-linux-gnueabihf)
set(CMAKE_C_COMPILER "/usr/local/arm/4.9.3/bin/arm-cortexa9-linux-gnueabihf-gcc")
set(CMAKE_CXX_COMPILER "/usr/local/arm/4.9.3/bin/arm-cortexa9-linux-gnueabihf-g++")
set(CMAKE_C_COMPILER "/usr/local/arm/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc")
set(CMAKE_CXX_COMPILER "/usr/local/arm/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++")
add_definitions(-DPLATFORM_ARCH_arm=1) # 定义ARM平台宏
set(ROOT_DIRS "${CMAKE_CURRENT_LIST_DIR}/../../../../../../../")
... ... @@ -41,7 +41,7 @@ endif ()
set(COMMON_CXX_FLAGS "-std=c++11 -pthread")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
set(CMAKE_C_FLAGS "-pthread -std=gnu99 -lm -ldl -lstdc++ -fprofile-arcs -ftest-coverage")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage -lgcov")
... ...
# 指定CMake最低版本要求为3.5
cmake_minimum_required(VERSION 3.5)
# 定义项目名称和编程语言(C语言)
project(ziyan_sdk_demo_on_jetson C)
# 设置C编译器选项:启用POSIX线程,使用GNU99标准
set(CMAKE_C_FLAGS "-pthread -std=gnu99")
# 设置C++编译器选项:使用C++11标准,启用POSIX线程
set(CMAKE_CXX_FLAGS "-std=c++11 -pthread")
# 设置可执行文件链接选项:启用线程支持
set(CMAKE_EXE_LINKER_FLAGS "-pthread")
# 指定C编译器为gcc
#set(CMAKE_C_COMPILER "gcc")
# 指定C++编译器为g++
#set(CMAKE_CXX_COMPILER "g++")
# 修改增添
set(TOOLCHAIN_NAME arm-linux-gnueabihf)
set(CMAKE_C_COMPILER "/usr/local/arm/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc")
set(CMAKE_CXX_COMPILER "/usr/local/arm/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++")
add_definitions(-DPLATFORM_ARCH_arm=1) # 定义ARM平台宏
# cmake 最低版本要求 第三行名字不能动
cmake_minimum_required(VERSION 2.8)
project(JZ_H200)
#set(CMAKE_C_FLAGS "-pthread -std=gnu99 -lm -ldl -lstdc++")
#"-pthread":指定在编译时链接POSIX线程库,以支持多线程程序。
#"-std=gnu99":指定C语言标准为GNU C99(也就是C99加上GNU的扩展特性),该标准对于一些特性和库的使用是必须的。
#"-lm":指定在编译时链接数学库,以使用一些数学函数。
#"-ldl":指定在编译时链接动态库加载库,以使用动态加载。
#"-lstdc++":指定在编译时链接C++标准库,以使用C++的一些特性和函数。
set(CMAKE_EXE_LINKER_FLAGS "-pthread") # 设置可执行文件链接选项:启用线程支持
# 设置设备类型以加载主要功能模块
#预留行
#预留行
#预留行
#预留行
#预留行
#预留行
#预留行
#预留行
#预留行
#预留行
#预留行
set(ROOT_DIRS "${CMAKE_CURRENT_LIST_DIR}/../../../../../../../")
message("ROOT_DIRS: ${ROOT_DIRS}")
# 定义GNU扩展源特性宏
add_definitions(-D_GNU_SOURCE)
# 包含模块配置
include(${ROOT_DIRS}CmakeConfig/Compiler.cmake)
include(${ROOT_DIRS}CmakeConfig/module_config.cmake)
include(${ROOT_DIRS}CmakeConfig/module_build.cmake)
#PSDK静态库
link_libraries(${CMAKE_CURRENT_LIST_DIR}/../../../../../psdk_lib/lib/${TOOLCHAIN_NAME}/libpayloadsdk.a)
# 如果未使用系统架构定义,则添加Linux系统架构宏
if (NOT USE_SYSTEM_ARCH)
add_definitions(-DSYSTEM_ARCH_LINUX)
endif ()
# 如果开启测试用例构建,添加代码覆盖率相关编译选项
# if (BUILD_TEST_CASES_ON MATCHES TRUE)
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
# set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage -lgcov")
# endif ()
set(COMMON_CXX_FLAGS "-std=c++11 -pthread")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
set(CMAKE_C_FLAGS "-pthread -std=gnu99 -lm -ldl -lstdc++ -fprofile-arcs -ftest-coverage")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage -lgcov")
# 定义软件包名称为payloadsdk
set(PACKAGE_NAME payloadsdk)
## "uname -m" to auto distinguish Manifold2-G or Manifold2-C
## 通过执行uname -m命令自动区分硬件平台类型
# execute_process(COMMAND uname -m
# OUTPUT_VARIABLE DEVICE_SYSTEM_ID)
execute_process(COMMAND uname -m
OUTPUT_VARIABLE DEVICE_SYSTEM_ID)
# 定义GNU扩展源特性宏
add_definitions(-D_GNU_SOURCE)
add_definitions(-DPLATFORM_ARCH_arm=1) # 定义ARM平台宏
# 根据系统架构设置工具链和平台定义
# if (DEVICE_SYSTEM_ID MATCHES x86_64)
# set(TOOLCHAIN_NAME x86_64-linux-gnu) # x86_64架构工具链
... ... @@ -69,40 +65,151 @@ set(PACKAGE_NAME payloadsdk)
# message(FATAL_ERROR "FATAL: Please confirm your platform. SYSTEM_ID:${DEVICE_SYSTEM_ID}")
# endif ()
# 递归收集源代码文件
file(GLOB_RECURSE MODULE_COMMON_SRC ../common/*.c) # 公共模块C文件
file(GLOB_RECURSE MODULE_HAL_SRC hal/*.c) # HAL硬件抽象层C文件
file(GLOB_RECURSE MODULE_APP_SRC application/*.c) # 应用层C文件
file(GLOB_RECURSE MODULE_SAMPLE_SRC ../../../module_sample/*.c) # 示例模块C文件
file(GLOB_RECURSE MODULE_JZSDK_PSDK_EXPANSION_SRC JZsdk_PsdkExpansion/*.c) #接口文件
# 添加包含目录
include_directories(../../../module_sample) # 示例模块头文件目录
include_directories(../common) # 公共头文件目录
include_directories(./JZsdk_PsdkExpansion)
# 添加PSDK库的包含目录和链接设置
include_directories(../../../../../psdk_lib/include) # PSDK头文件目录
link_directories(../../../../../psdk_lib/lib/${TOOLCHAIN_NAME}) # PSDK库目录
# 链接静态库文件
link_libraries(${CMAKE_CURRENT_LIST_DIR}/../../../../../psdk_lib/lib/${TOOLCHAIN_NAME}/lib${PACKAGE_NAME}.a)
# 加载jzsdk的头文件  *****************************************************
include_directories(${ALL_INC_FILES})
# 设置可执行文件输出路径(默认到构建目录的bin子目录)
if (NOT EXECUTABLE_OUTPUT_PATH)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
endif ()
# 创建可执行目标,包含所有收集的源代码
add_executable(${PROJECT_NAME}
${MODULE_APP_SRC}
${MODULE_SAMPLE_SRC}
${MODULE_COMMON_SRC}
${MODULE_HAL_SRC})
${MODULE_HAL_SRC}
${MODULE_SAMPLE_SRC}
${MODULE_JZSDK_PSDK_EXPANSION_SRC}
${ALL_SRC_FILES} #加载jzsdk的源文件 *****************************************************
)
message("USB库已加载\n")
include_directories(${ROOT_DIRS}/ThirdParty/libusb/arm-cortexa9-linux-gnueabihf/include)
target_link_libraries(
${PROJECT_NAME}
${ROOT_DIRS}/ThirdParty/libusb/arm-cortexa9-linux-gnueabihf/lib/libusb-1.0.so.0
)
include(${ROOT_DIRS}CmakeConfig/module_lib_loading.cmake)
# 添加预链接自定义命令:在链接前执行cmake ..
add_custom_command(TARGET ${PROJECT_NAME}
PRE_LINK COMMAND cmake ..
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
message("USB库已加载\n")
include_directories(${ROOT_DIRS}/ThirdParty/libusb/arm-cortexa9-linux-gnueabihf/include)
target_link_libraries(
${PROJECT_NAME}
${ROOT_DIRS}/ThirdParty/libusb/arm-cortexa9-linux-gnueabihf/lib/libusb-1.0.so.0
)
# 如果开启测试用例构建,添加代码覆盖率相关编译选项
# if (BUILD_TEST_CASES_ON MATCHES TRUE)
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
# set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage -lgcov")
# endif ()
# 定义软件包名称为payloadsdk
# 链接静态库文件
# 设置第三方库查找路径
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../common/3rdparty)
# set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../common/3rdparty)
# message("USB库已加载\n")
# include_directories(${ROOT_DIRS}/ThirdParty/libusb/arm-cortexa9-linux-gnueabihf/include)
# target_link_libraries(
# ${PROJECT_NAME}
# ${ROOT_DIRS}/ThirdParty/libusb/arm-cortexa9-linux-gnueabihf/lib/libusb-1.0.so.0
# )
# # 链接数学库
# target_link_libraries(${PROJECT_NAME} m)
# # 链接C++标准库
# target_link_libraries(${PROJECT_NAME} stdc++)
# # 使用pkg-config查找FFmpeg相关库
# find_package(PkgConfig REQUIRED)
# pkg_check_modules(AVFORMAT REQUIRED libavformat) # 查找avformat模块
# pkg_check_modules(AVCODEC REQUIRED libavcodec) # 查找avcodec模块
# pkg_check_modules(AVUTIL REQUIRED libavutil) # 查找avutil模块
# # 添加FFmpeg头文件目录
# include_directories(${AVFORMAT_INCLUDE_DIRS})
# include_directories(${AVCODEC_INCLUDE_DIRS})
# include_directories(${AVUTIL_INCLUDE_DIRS})
# # 链接FFmpeg相关库
# target_link_libraries(${PROJECT_NAME} ${AVFORMAT_LIBRARIES} ${AVCODEC_LIBRARIES} ${AVUTIL_LIBRARIES})
# message("\nffmpeg模块加载\n")
# set(FFMPEG_6_0_DIRS "${ROOT_DIRS}ThirdParty/ffmpeg_6_0/lib/arm-cortexa9-linux-gnueabihf")
# include_directories(${ROOT_DIRS}ThirdParty/ffmpeg_6_0/include)
# target_link_libraries(
# ${PROJECT_NAME}
# ${FFMPEG_6_0_DIRS}/libavcodec.so.60
# ${FFMPEG_6_0_DIRS}/libavdevice.so.60
# ${FFMPEG_6_0_DIRS}/libavfilter.so.9
# ${FFMPEG_6_0_DIRS}/libavformat.so.60
# ${FFMPEG_6_0_DIRS}/libavutil.so.58
# ${FFMPEG_6_0_DIRS}/libpostproc.so.57
# ${FFMPEG_6_0_DIRS}/libswresample.so.4
# ${FFMPEG_6_0_DIRS}/libswscale.so.7
# )
# # 查找OPUS音频编解码库
# #find_package(OPUS REQUIRED)
... ... @@ -163,49 +270,3 @@ set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../common/3rdparty)
# message(STATUS "Cannot Find LIBUSB")
# endif (LIBUSB_FOUND)
# 读取本地的libusb
message("USB库已加载\n")
include_directories(${ROOT_DIRS}/ThirdParty/libusb/arm-cortexa9-linux-gnueabihf/include)
target_link_libraries(
${PROJECT_NAME}
${ROOT_DIRS}/ThirdParty/libusb/arm-cortexa9-linux-gnueabihf/lib/libusb-1.0.so.0
)
# # 使用pkg-config查找FFmpeg相关库
# find_package(PkgConfig REQUIRED)
# pkg_check_modules(AVFORMAT REQUIRED libavformat) # 查找avformat模块
# pkg_check_modules(AVCODEC REQUIRED libavcodec) # 查找avcodec模块
# pkg_check_modules(AVUTIL REQUIRED libavutil) # 查找avutil模块
# # 添加FFmpeg头文件目录
# include_directories(${AVFORMAT_INCLUDE_DIRS})
# include_directories(${AVCODEC_INCLUDE_DIRS})
# include_directories(${AVUTIL_INCLUDE_DIRS})
# # 链接FFmpeg相关库
# target_link_libraries(${PROJECT_NAME} ${AVFORMAT_LIBRARIES} ${AVCODEC_LIBRARIES} ${AVUTIL_LIBRARIES})
# message("\nffmpeg模块加载\n")
# set(FFMPEG_6_0_DIRS "${ROOT_DIRS}ThirdParty/ffmpeg_6_0/lib/arm-cortexa9-linux-gnueabihf")
# include_directories(${ROOT_DIRS}ThirdParty/ffmpeg_6_0/include)
# target_link_libraries(
# ${PROJECT_NAME}
# ${FFMPEG_6_0_DIRS}/libavcodec.so.60
# ${FFMPEG_6_0_DIRS}/libavdevice.so.60
# ${FFMPEG_6_0_DIRS}/libavfilter.so.9
# ${FFMPEG_6_0_DIRS}/libavformat.so.60
# ${FFMPEG_6_0_DIRS}/libavutil.so.58
# ${FFMPEG_6_0_DIRS}/libpostproc.so.57
# ${FFMPEG_6_0_DIRS}/libswresample.so.4
# ${FFMPEG_6_0_DIRS}/libswscale.so.7
# )
# 链接数学库
target_link_libraries(${PROJECT_NAME} m)
# 链接C++标准库
target_link_libraries(${PROJECT_NAME} stdc++)
# 添加预链接自定义命令:在链接前执行cmake ..
add_custom_command(TARGET ${PROJECT_NAME}
PRE_LINK COMMAND cmake ..
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
\ No newline at end of file
... ...
#include "JZsdkLib.h"
#include "data_transmission/test_data_transmission.h"
#include "./JZsdk_Expansion.h"
T_JZsdkReturnCode JZsdk_Expansion_low_data_tran(unsigned char *data ,int len)
{
if(DJI_Low_Data_Trans(data,len) == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
\ No newline at end of file
... ...
/**
********************************************************************
* @file DJI_VideoDeal.h
* DJI_VideoDeal的头文件
* @file JZsdk_Expansion.h
* JZsdk_Expansion.c 的头文件
*
*********************************************************************
*/
/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef DJI_VIDEODEAL_H
#define DJI_VIDEODEAL_H
#ifndef JZSDK_EXPANSION_H
#define JZSDK_EXPANSION_H
/* Includes ------------------------------------------------------------------*/
#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
... ... @@ -17,17 +17,14 @@
extern "C" {
#endif
/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/
/* Exported types ------------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
int DJI_VideoDeal_Push_DJIH264Frame(unsigned char* h264_data, uint32_t data_len);
int DJI_VideoReplay_input(int command, unsigned int Command_timeMS, char* path);
int DJI_VideoRecordStart();
int DJI_VideoRecordClose();
int DJI_Set_CameraTransStatus(int status);
T_JZsdkReturnCode JZsdk_Expansion_low_data_tran(unsigned char *data ,int len);
#ifdef __cplusplus
... ...