作者 ookk303

更新

@@ -141,7 +141,11 @@ @@ -141,7 +141,11 @@
141 "jzsdk_monitor.h": "c", 141 "jzsdk_monitor.h": "c",
142 "*.bak": "c", 142 "*.bak": "c",
143 "ziyan_sdk_config.h": "c", 143 "ziyan_sdk_config.h": "c",
144 - "test_payload_cam_emu_base.h": "c" 144 + "test_payload_cam_emu_base.h": "c",
  145 + "jzsdk_expansion.h": "c",
  146 + "jzsdk_expansionapi.h": "c",
  147 + "test_widget_speaker.h": "c",
  148 + "dji_expansion.h": "c"
145 }, 149 },
146 "Codegeex.GenerationPreference": "automatic", 150 "Codegeex.GenerationPreference": "automatic",
147 "C_Cpp.dimInactiveRegions": false, 151 "C_Cpp.dimInactiveRegions": false,
1 # 编译链的配置 1 # 编译链的配置
2 2
3 #1、编译链与设备类型的选择 3 #1、编译链与设备类型的选择
4 -set(DEVICE_NAME JZ_U3D) 4 +set(DEVICE_NAME JZ_H200)
5 #上一行为禁止修改行 5 #上一行为禁止修改行
6 6
7 message("**************************JZSDK构建编译开始***************************\n") 7 message("**************************JZSDK构建编译开始***************************\n")
@@ -32,6 +32,8 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_C1") @@ -32,6 +32,8 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_C1")
32 set(MAKE_COMPILER ARM_X86_64_ARRCH64) 32 set(MAKE_COMPILER ARM_X86_64_ARRCH64)
33 elseif("${DEVICE_NAME}" STREQUAL "JZ_ST") 33 elseif("${DEVICE_NAME}" STREQUAL "JZ_ST")
34 set(MAKE_COMPILER ARM_X86_64_ARRCH64) 34 set(MAKE_COMPILER ARM_X86_64_ARRCH64)
  35 +elseif("${DEVICE_NAME}" STREQUAL "JZ_H200")
  36 + set(MAKE_COMPILER ARM_CORTEX_LINUX)
35 endif() 37 endif()
36 38
37 if(${MAKE_COMPILER} STREQUAL "ARM_CORTEXA9_LINUX") 39 if(${MAKE_COMPILER} STREQUAL "ARM_CORTEXA9_LINUX")
@@ -42,8 +44,8 @@ if(${MAKE_COMPILER} STREQUAL "ARM_CORTEXA9_LINUX") @@ -42,8 +44,8 @@ if(${MAKE_COMPILER} STREQUAL "ARM_CORTEXA9_LINUX")
42 44
43 elseif(${MAKE_COMPILER} STREQUAL "ARM_CORTEX_LINUX") 45 elseif(${MAKE_COMPILER} STREQUAL "ARM_CORTEX_LINUX")
44 set(TOOLCHAIN_NAME arm-linux-gnueabihf-gcc) 46 set(TOOLCHAIN_NAME arm-linux-gnueabihf-gcc)
45 - set(CMAKE_C_COMPILER "/usr/local/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc")  
46 - set(CMAKE_CXX_COMPILER "/usr/local/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++") 47 + set(CMAKE_C_COMPILER "/usr/local/arm/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc")
  48 + set(CMAKE_CXX_COMPILER "/usr/local/arm/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++")
47 message("使用ARM_CORTEX_LINUX编译链") 49 message("使用ARM_CORTEX_LINUX编译链")
48 50
49 elseif(${MAKE_COMPILER} STREQUAL "ARM_X86_64_ARRCH64") 51 elseif(${MAKE_COMPILER} STREQUAL "ARM_X86_64_ARRCH64")
@@ -47,6 +47,9 @@ if(${GIMBAL_MODULE} STREQUAL "VERSION_SWITCH_ON") @@ -47,6 +47,9 @@ if(${GIMBAL_MODULE} STREQUAL "VERSION_SWITCH_ON")
47 file(GLOB_RECURSE GIMBAL_SRC ${ROOT_DIRS}Module/Gimbal/*.c) 47 file(GLOB_RECURSE GIMBAL_SRC ${ROOT_DIRS}Module/Gimbal/*.c)
48 list(APPEND ALL_SRC_FILES ${GIMBAL_SRC}) 48 list(APPEND ALL_SRC_FILES ${GIMBAL_SRC})
49 49
  50 + #打开云台的代码编译部分
  51 + add_definitions(-DMACRO_GIMBAL_MODULE)
  52 +
50 endif() 53 endif()
51 54
52 #如果要加载引脚模块,需要加载以下附属内容 55 #如果要加载引脚模块,需要加载以下附属内容
@@ -154,6 +157,14 @@ if(${COMMON_MODULE} STREQUAL "VERSION_SWITCH_ON") @@ -154,6 +157,14 @@ if(${COMMON_MODULE} STREQUAL "VERSION_SWITCH_ON")
154 157
155 endif() 158 endif()
156 159
  160 +#如果要加载拓展接口模块,需要加载以下附属内容
  161 +if(${EXTENSION_API_MODULE} STREQUAL "VERSION_SWITCH_ON")
  162 + message("\n拓展接口模块加载中")
  163 +
  164 + file(GLOB_RECURSE EXTENSION_API_MODULE_SRC ${ROOT_DIRS}Module/ExtensionAPI/*.c)
  165 + list(APPEND ALL_SRC_FILES ${EXTENSION_API_MODULE_SRC})
  166 +endif()
  167 +
157 #如果要加载侧面激光模块,需要加载以下附属内容 168 #如果要加载侧面激光模块,需要加载以下附属内容
158 if(${SIDE_LASER_MODULE} STREQUAL "VERSION_SWITCH_ON") 169 if(${SIDE_LASER_MODULE} STREQUAL "VERSION_SWITCH_ON")
159 message("\n侧面激光模块加载中") 170 message("\n侧面激光模块加载中")
@@ -210,6 +221,7 @@ list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/COMMONManager) @@ -210,6 +221,7 @@ list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/COMMONManager)
210 list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/TestAPP) 221 list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/TestAPP)
211 list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/ImageProcessing) 222 list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/ImageProcessing)
212 list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/SerialManagement) 223 list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/SerialManagement)
  224 +list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/ExtensionAPI)
213 list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module) 225 list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module)
214 226
215 message("**************************库构建完毕***************************\n") 227 message("**************************库构建完毕***************************\n")
@@ -25,6 +25,9 @@ set(MEGAPHONE_MODULE VERSION_SWITCH_OFF) @@ -25,6 +25,9 @@ set(MEGAPHONE_MODULE VERSION_SWITCH_OFF)
25 # 电源管理模块 25 # 电源管理模块
26 set(COMMON_MODULE VERSION_SWITCH_OFF) 26 set(COMMON_MODULE VERSION_SWITCH_OFF)
27 27
  28 +#拓展接口模块
  29 +set(EXTENSION_API_MODULE VERSION_SWITCH_OFF)
  30 +
28 # UI管理模块 31 # UI管理模块
29 set(UI_CONTROL_MODULE VERSION_SWITCH_OFF) 32 set(UI_CONTROL_MODULE VERSION_SWITCH_OFF)
30 33
@@ -69,6 +72,13 @@ set(UI_CONTROL_MODULE VERSION_SWITCH_ON) @@ -69,6 +72,13 @@ set(UI_CONTROL_MODULE VERSION_SWITCH_ON)
69 # 添加通用模块 72 # 添加通用模块
70 set(COMMON_MODULE VERSION_SWITCH_ON) 73 set(COMMON_MODULE VERSION_SWITCH_ON)
71 74
  75 +# 添加IRCUT 引脚处理模块
  76 +set(IRCUT_MODULE VERSION_SWITCH_ON)
  77 +
  78 +# 添加拓展接口模块
  79 +set(EXTENSION_API_MODULE VERSION_SWITCH_ON)
  80 +
  81 +
72 82
73 message("通用库加载完成") 83 message("通用库加载完成")
74 84
@@ -82,9 +92,6 @@ if("${DEVICE_NAME}" STREQUAL "JZ_H1E") @@ -82,9 +92,6 @@ if("${DEVICE_NAME}" STREQUAL "JZ_H1E")
82 # 添加Gimbal 云台处理模块 92 # 添加Gimbal 云台处理模块
83 set(GIMBAL_MODULE VERSION_SWITCH_ON) 93 set(GIMBAL_MODULE VERSION_SWITCH_ON)
84 94
85 - # 添加IRCUT 引脚处理模块  
86 - set(IRCUT_MODULE VERSION_SWITCH_ON)  
87 -  
88 # 添加LIGHTING 光源处理模块 95 # 添加LIGHTING 光源处理模块
89 set(LIGHTING_MODULE VERSION_SWITCH_ON) 96 set(LIGHTING_MODULE VERSION_SWITCH_ON)
90 97
@@ -108,9 +115,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_H1T") @@ -108,9 +115,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_H1T")
108 # 添加Gimbal 云台处理模块 115 # 添加Gimbal 云台处理模块
109 set(GIMBAL_MODULE VERSION_SWITCH_ON) 116 set(GIMBAL_MODULE VERSION_SWITCH_ON)
110 117
111 - # 添加IRCUT 引脚处理模块  
112 - set(IRCUT_MODULE VERSION_SWITCH_ON)  
113 -  
114 # 添加LIGHTING 光源处理模块 118 # 添加LIGHTING 光源处理模块
115 set(LIGHTING_MODULE VERSION_SWITCH_ON) 119 set(LIGHTING_MODULE VERSION_SWITCH_ON)
116 120
@@ -134,9 +138,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_U3") @@ -134,9 +138,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_U3")
134 # 添加Gimbal 云台处理模块 138 # 添加Gimbal 云台处理模块
135 set(GIMBAL_MODULE VERSION_SWITCH_ON) 139 set(GIMBAL_MODULE VERSION_SWITCH_ON)
136 140
137 - # 添加IRCUT 引脚处理模块  
138 - set(IRCUT_MODULE VERSION_SWITCH_ON)  
139 -  
140 # 添加LIGHTING 光源处理模块 141 # 添加LIGHTING 光源处理模块
141 set(LIGHTING_MODULE VERSION_SWITCH_ON) 142 set(LIGHTING_MODULE VERSION_SWITCH_ON)
142 143
@@ -160,9 +161,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_U3S") @@ -160,9 +161,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_U3S")
160 # 添加Gimbal 云台处理模块 161 # 添加Gimbal 云台处理模块
161 set(GIMBAL_MODULE VERSION_SWITCH_ON) 162 set(GIMBAL_MODULE VERSION_SWITCH_ON)
162 163
163 - # 添加IRCUT 引脚处理模块  
164 - set(IRCUT_MODULE VERSION_SWITCH_ON)  
165 -  
166 # 添加LIGHTING 光源处理模块 164 # 添加LIGHTING 光源处理模块
167 set(LIGHTING_MODULE VERSION_SWITCH_ON) 165 set(LIGHTING_MODULE VERSION_SWITCH_ON)
168 166
@@ -189,9 +187,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_U3D") @@ -189,9 +187,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_U3D")
189 # 添加Gimbal 云台处理模块 187 # 添加Gimbal 云台处理模块
190 set(GIMBAL_MODULE VERSION_SWITCH_ON) 188 set(GIMBAL_MODULE VERSION_SWITCH_ON)
191 189
192 - # 添加IRCUT 引脚处理模块  
193 - set(IRCUT_MODULE VERSION_SWITCH_ON)  
194 -  
195 # 添加LIGHTING 光源处理模块 190 # 添加LIGHTING 光源处理模块
196 set(LIGHTING_MODULE VERSION_SWITCH_ON) 191 set(LIGHTING_MODULE VERSION_SWITCH_ON)
197 192
@@ -215,9 +210,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_U30") @@ -215,9 +210,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_U30")
215 # 添加Gimbal 云台处理模块 210 # 添加Gimbal 云台处理模块
216 set(GIMBAL_MODULE VERSION_SWITCH_ON) 211 set(GIMBAL_MODULE VERSION_SWITCH_ON)
217 212
218 - # 添加IRCUT 引脚处理模块  
219 - set(IRCUT_MODULE VERSION_SWITCH_ON)  
220 -  
221 # 添加LIGHTING 光源处理模块 213 # 添加LIGHTING 光源处理模块
222 set(LIGHTING_MODULE VERSION_SWITCH_ON) 214 set(LIGHTING_MODULE VERSION_SWITCH_ON)
223 215
@@ -239,9 +231,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_H10") @@ -239,9 +231,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_H10")
239 231
240 # 添加Gimbal 云台处理模块 232 # 添加Gimbal 云台处理模块
241 set(GIMBAL_MODULE VERSION_SWITCH_ON) 233 set(GIMBAL_MODULE VERSION_SWITCH_ON)
242 -  
243 - # 添加IRCUT 引脚处理模块  
244 - set(IRCUT_MODULE VERSION_SWITCH_ON)  
245 234
246 # 添加喊话器模块 235 # 添加喊话器模块
247 set(MEGAPHONE_MODULE VERSION_SWITCH_ON) 236 set(MEGAPHONE_MODULE VERSION_SWITCH_ON)
@@ -266,9 +255,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_H10T") @@ -266,9 +255,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_H10T")
266 # 添加Gimbal 云台处理模块 255 # 添加Gimbal 云台处理模块
267 set(GIMBAL_MODULE VERSION_SWITCH_ON) 256 set(GIMBAL_MODULE VERSION_SWITCH_ON)
268 257
269 - # 添加IRCUT 引脚处理模块  
270 - set(IRCUT_MODULE VERSION_SWITCH_ON)  
271 -  
272 # 添加喊话器模块 258 # 添加喊话器模块
273 set(MEGAPHONE_MODULE VERSION_SWITCH_ON) 259 set(MEGAPHONE_MODULE VERSION_SWITCH_ON)
274 260
@@ -287,9 +273,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_H150S") @@ -287,9 +273,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_H150S")
287 273
288 # 添加Gimbal 云台处理模块 274 # 添加Gimbal 云台处理模块
289 set(GIMBAL_MODULE VERSION_SWITCH_ON) 275 set(GIMBAL_MODULE VERSION_SWITCH_ON)
290 -  
291 - # 添加IRCUT 引脚处理模块  
292 - set(IRCUT_MODULE VERSION_SWITCH_ON)  
293 276
294 # 添加喊话器模块 277 # 添加喊话器模块
295 set(MEGAPHONE_MODULE VERSION_SWITCH_ON) 278 set(MEGAPHONE_MODULE VERSION_SWITCH_ON)
@@ -317,9 +300,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_H150T") @@ -317,9 +300,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_H150T")
317 # 添加Gimbal 云台处理模块 300 # 添加Gimbal 云台处理模块
318 set(GIMBAL_MODULE VERSION_SWITCH_ON) 301 set(GIMBAL_MODULE VERSION_SWITCH_ON)
319 302
320 - # 添加IRCUT 引脚处理模块  
321 - set(IRCUT_MODULE VERSION_SWITCH_ON)  
322 -  
323 # 添加喊话器模块 303 # 添加喊话器模块
324 set(MEGAPHONE_MODULE VERSION_SWITCH_ON) 304 set(MEGAPHONE_MODULE VERSION_SWITCH_ON)
325 305
@@ -343,9 +323,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_C1") @@ -343,9 +323,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_C1")
343 # 添加Gimbal 云台处理模块 323 # 添加Gimbal 云台处理模块
344 set(GIMBAL_MODULE VERSION_SWITCH_ON) 324 set(GIMBAL_MODULE VERSION_SWITCH_ON)
345 325
346 - # 添加IRCUT 引脚处理模块  
347 - set(IRCUT_MODULE VERSION_SWITCH_ON)  
348 -  
349 # 添加LIGHTING 光源处理模块 326 # 添加LIGHTING 光源处理模块
350 set(LIGHTING_MODULE VERSION_SWITCH_ON) 327 set(LIGHTING_MODULE VERSION_SWITCH_ON)
351 328
@@ -369,9 +346,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_ST") @@ -369,9 +346,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_ST")
369 # 添加Gimbal 云台处理模块 346 # 添加Gimbal 云台处理模块
370 set(GIMBAL_MODULE VERSION_SWITCH_ON) 347 set(GIMBAL_MODULE VERSION_SWITCH_ON)
371 348
372 - # 添加IRCUT 引脚处理模块  
373 - set(IRCUT_MODULE VERSION_SWITCH_ON)  
374 -  
375 # 添加MediaProc 媒体管理模块 349 # 添加MediaProc 媒体管理模块
376 set(MEDIA_PROC_MODULE VERSION_SWITCH_ON) 350 set(MEDIA_PROC_MODULE VERSION_SWITCH_ON)
377 351
@@ -386,7 +360,10 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_ST") @@ -386,7 +360,10 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_ST")
386 list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC}) 360 list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})
387 361
388 message("ST基础配置完毕\n") 362 message("ST基础配置完毕\n")
389 - 363 +
  364 +elseif("${DEVICE_NAME}" STREQUAL "JZ_H200")
  365 +
  366 + message("JZ_H200基础配置完毕\n")
390 endif() 367 endif()
391 368
392 message("***********************模组模块配置完毕*********************************\n") 369 message("***********************模组模块配置完毕*********************************\n")
@@ -37,6 +37,7 @@ @@ -37,6 +37,7 @@
37 #define JZ_U3S 0x0018 37 #define JZ_U3S 0x0018
38 #define JZ_U3D 0x0019 38 #define JZ_U3D 0x0019
39 #define JZ_U30 0x001A 39 #define JZ_U30 0x001A
  40 +#define JZ_H200 0x001B
40 41
41 #define JZ_H150S 0x0013 42 #define JZ_H150S 0x0013
42 #define JZ_H150T 0x0015 43 #define JZ_H150T 0x0015
@@ -7,7 +7,7 @@ @@ -7,7 +7,7 @@
7 #define VERSION_CHOOSE_H 7 #define VERSION_CHOOSE_H
8 #include "JZsdk_Base/JZsdk_Code/JZsdk_DeviceCode.h" 8 #include "JZsdk_Base/JZsdk_Code/JZsdk_DeviceCode.h"
9 //1~10行 除了D可以修改版本选择 禁止动任何东西 9 //1~10行 除了D可以修改版本选择 禁止动任何东西
10 -#define DEVICE_VERSION JZ_U3D 10 +#define DEVICE_VERSION JZ_H200
11 11
12 //禁止修改行 选择是串口程序 还是 psdk程序 12 //禁止修改行 选择是串口程序 还是 psdk程序
13 #define APP_VERSION APP_PSDK 13 #define APP_VERSION APP_PSDK
@@ -99,6 +99,10 @@ @@ -99,6 +99,10 @@
99 #define LIGHTING_STATUS_ON 99 #define LIGHTING_STATUS_ON
100 #endif 100 #endif
101 101
  102 + //是否加载云台模块
  103 + #ifdef MACRO_GIMBAL_MODULE
  104 + #define GIMBAL_STATUS_ON
  105 + #endif
102 106
103 #else //这里用于方便调试使用,不是实际加载的模组 107 #else //这里用于方便调试使用,不是实际加载的模组
104 108
@@ -137,6 +141,9 @@ @@ -137,6 +141,9 @@
137 141
138 //默认开启光源模块 142 //默认开启光源模块
139 #define LIGHTING_STATUS_ON 143 #define LIGHTING_STATUS_ON
  144 +
  145 + //默认开启云台模块
  146 + #define GIMBAL_STATUS_ON
140 #endif 147 #endif
141 148
142 #endif 149 #endif
@@ -16,9 +16,7 @@ @@ -16,9 +16,7 @@
16 16
17 #include "Hal_Recv/HalRecv.h" 17 #include "Hal_Recv/HalRecv.h"
18 18
19 -#if APP_VERSION == APP_PSDK  
20 - #include "data_transmission/test_data_transmission.h"  
21 -#endif 19 +#include "ExtensionAPI/JZsdk_ExpansionApi.h"
22 20
23 // 串口参数结构体 21 // 串口参数结构体
24 typedef struct 22 typedef struct
@@ -574,9 +572,11 @@ static void JZsdk_Uart_UartSend_Task(void *data) @@ -574,9 +572,11 @@ static void JZsdk_Uart_UartSend_Task(void *data)
574 } 572 }
575 else if (taskData->Uart_name == HAL_DATA_TRANSMISSION) 573 else if (taskData->Uart_name == HAL_DATA_TRANSMISSION)
576 { 574 {
577 -#if APP_VERSION == APP_PSDK  
578 - DJI_Low_Data_Trans(taskData->str, taskData->str_lenth);  
579 -#endif 575 + T_JZsdkToPsdkHandler *JZsdkToPsdkHandle = ExpansionApi_JZsdkToPsdk_GetHandler();
  576 + if (JZsdkToPsdkHandle != NULL && JZsdkToPsdkHandle->low_data_tran != NULL)
  577 + {
  578 + JZsdkToPsdkHandle->low_data_tran(taskData->str, taskData->str_lenth);
  579 + }
580 } 580 }
581 581
582 free(taskData->str); 582 free(taskData->str);
@@ -327,6 +327,7 @@ static T_JZsdkReturnCode DeviceMessage_Enter_Debug(unsigned char *message) @@ -327,6 +327,7 @@ static T_JZsdkReturnCode DeviceMessage_Enter_Debug(unsigned char *message)
327 snprintf(old_message,MESSAGE_MAX_LEN,"%s",message); 327 snprintf(old_message,MESSAGE_MAX_LEN,"%s",message);
328 snprintf(message,MESSAGE_MAX_LEN,"%s%s",old_message,new_message); 328 snprintf(message,MESSAGE_MAX_LEN,"%s%s",old_message,new_message);
329 329
  330 +#ifdef GIMBAL_STATUS_ON
330 //如果拥有云台,将会显示云台微调值 331 //如果拥有云台,将会显示云台微调值
331 if (Get_JZsdk_GimbalStatusFlag() == 1) 332 if (Get_JZsdk_GimbalStatusFlag() == 1)
332 { 333 {
@@ -339,6 +340,7 @@ static T_JZsdkReturnCode DeviceMessage_Enter_Debug(unsigned char *message) @@ -339,6 +340,7 @@ static T_JZsdkReturnCode DeviceMessage_Enter_Debug(unsigned char *message)
339 snprintf(old_message,MESSAGE_MAX_LEN,"%s",message); 340 snprintf(old_message,MESSAGE_MAX_LEN,"%s",message);
340 snprintf(message,MESSAGE_MAX_LEN,"%s%s",old_message,new_message); 341 snprintf(message,MESSAGE_MAX_LEN,"%s%s",old_message,new_message);
341 } 342 }
  343 +#endif
342 344
343 #ifdef MEGAPHONE_CONFIG_STATUS_ON 345 #ifdef MEGAPHONE_CONFIG_STATUS_ON
344 memset(new_message,0,sizeof(new_message)); 346 memset(new_message,0,sizeof(new_message));
  1 +#include "JZsdkLib.h"
  2 +#include "ExtensionAPI/JZsdk_ExpansionApi.h"
  3 +
  4 +
  5 +static T_JZsdkToPsdkHandler *g_JZsdkToPsdkHandle = NULL;
  6 +
  7 +
  8 +/**********************
  9 + *
  10 + * 拓展接口:
  11 + * Psdk拓展接口初始化
  12 + *
  13 + *
  14 + * ********************/
  15 +T_JZsdkReturnCode ExpansionApi_JZsdkToPsdk_Init(T_JZsdkToPsdkHandler JZsdkToPsdkHandle)
  16 +{
  17 + if (g_JZsdkToPsdkHandle != NULL)
  18 + {
  19 + JZSDK_LOG_INFO("Expansion_PsdkExpansion_Init: Psdk拓展接口已经初始化");
  20 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  21 + }
  22 +
  23 + //注册JZsdkToPsdkHandle
  24 + g_JZsdkToPsdkHandle = (T_JZsdkToPsdkHandler *)malloc(sizeof(T_JZsdkToPsdkHandler));
  25 + memcpy(g_JZsdkToPsdkHandle, &JZsdkToPsdkHandle, sizeof(T_JZsdkToPsdkHandler));
  26 +
  27 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  28 +}
  29 +
  30 +/*******************
  31 + *
  32 + * 拓展接口:
  33 + * 获取Psdk拓展接口
  34 + *
  35 + * ******************/
  36 +T_JZsdkToPsdkHandler *ExpansionApi_JZsdkToPsdk_GetHandler()
  37 +{
  38 + return g_JZsdkToPsdkHandle;
  39 +}
  1 +/**
  2 + ********************************************************************
  3 + * @file JZsdk_ExpansionApi.h
  4 + * JZsdk_ExpansionApi.c 的头文件
  5 + *
  6 + *
  7 +
  8 + *
  9 + *
  10 + *********************************************************************
  11 + */
  12 +
  13 +/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
  14 +#ifndef JZSDK_EXPANSION_API_H
  15 +#define JZSDK_EXPANSION_API_H
  16 +
  17 +/* Includes ------------------------------------------------------------------*/
  18 +#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
  19 +
  20 +#ifdef __cplusplus
  21 +extern "C" {
  22 +#endif
  23 +
  24 +/* Exported constants --------------------------------------------------------*/
  25 +/* 常亮定义*/
  26 +
  27 +/****************************************************
  28 + * PSDK_Expansion
  29 + * JZsdkToPsdkHandler
  30 + * 这里记录JZSDK调用各家飞机psdk的拓展接口, 比较特殊,
  31 + * 是 JZSDK去往各家psdk之间的中间层
  32 + *
  33 + * 请在各家的psdk中的mian.c中注册该模块,而不是在JZSDK中注册
  34 +********************************************************/
  35 +typedef struct {
  36 + T_JZsdkReturnCode (*low_data_tran)(unsigned char *data ,int len); //低层数据传输接口
  37 + T_JZsdkReturnCode (*push_DJIH264Frame_to_plane)(unsigned char* h264_data, uint32_t data_len); //推送DJIH264数据到飞机,这里指的视频为djih264,但并不知在dji用
  38 + T_JZsdkReturnCode (*Set_UI_CameraTransStatus)(int status); //设置UI的摄像头传输状态
  39 + T_JZsdkReturnCode (*Set_UI_Widget_Value)(int index, int value); //设置UI的控件值
  40 +
  41 + //特殊控件-喊话器
  42 + T_JZsdkReturnCode (*Set_UI_SpeakerWidget_PlayState)(int value); //喊话器控件-播放状态
  43 + T_JZsdkReturnCode (*Set_UI_SpeakerWidget_LoopMode)(int value); //喊话器控件-循环状态
  44 + T_JZsdkReturnCode (*Set_UI_SpeakerWidget_Volume)(int value); //喊话器控件-音量
  45 + T_JZsdkReturnCode (*Get_UI_SpeakerWidget_RealTimeVoiceMode)(int *mode); //喊话器控件-获取实时语音模式
  46 +
  47 +
  48 +} T_JZsdkToPsdkHandler;
  49 +
  50 +/* Exported macro ------------------------------------------------------------*/
  51 +
  52 +
  53 +/* Exported types ------------------------------------------------------------*/
  54 +
  55 +
  56 +/* Exported functions --------------------------------------------------------*/
  57 +T_JZsdkReturnCode ExpansionApi_JZsdkToPsdk_Init(T_JZsdkToPsdkHandler JZsdkToPsdkHandle);
  58 +T_JZsdkToPsdkHandler *ExpansionApi_JZsdkToPsdk_GetHandler();
  59 +
  60 +
  61 +
  62 +#ifdef __cplusplus
  63 +}
  64 +#endif
  65 +
  66 +#endif
  67 +/************************ (C) COPYRIGHT DJI Innovations *******END OF FILE******/
@@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@
12 #include "JZsdk_network/JZsdk_network.h" 12 #include "JZsdk_network/JZsdk_network.h"
13 13
14 #if APP_VERSION == APP_PSDK 14 #if APP_VERSION == APP_PSDK
15 - #include "Dji_Control/DJI_VideoDeal.h" 15 + #include "JZsdk_PsdkExpansion/JZsdk_PsdkExpansion.h"
16 #endif 16 #endif
17 17
18 //推流入口 18 //推流入口
@@ -38,7 +38,7 @@ T_JZsdkReturnCode VideoStream_PushFrame(unsigned char* h264_data, unsigned int d @@ -38,7 +38,7 @@ T_JZsdkReturnCode VideoStream_PushFrame(unsigned char* h264_data, unsigned int d
38 //放入到对应的传输函数 38 //放入到对应的传输函数
39 #if APP_VERSION == APP_PSDK 39 #if APP_VERSION == APP_PSDK
40 //大疆模式,往大疆入口推流 40 //大疆模式,往大疆入口推流
41 - DJI_VideoDeal_Push_DJIH264Frame(h264_data, data_len); 41 + JZsdk_Expansion_Push_DJIH264Frame(h264_data, data_len);
42 42
43 #elif APP_VERSION == APP_UART 43 #elif APP_VERSION == APP_UART
44 JZsdk_NetWork_SentData(h264_data, data_len); 44 JZsdk_NetWork_SentData(h264_data, data_len);
@@ -13,18 +13,28 @@ @@ -13,18 +13,28 @@
13 13
14 #include "Gimbal/Gimbal.h" 14 #include "Gimbal/Gimbal.h"
15 #include "DeviceInfo/DeviceInfo.h" 15 #include "DeviceInfo/DeviceInfo.h"
  16 +#include "ExtensionAPI/JZsdk_ExpansionApi.h"
16 17
17 -#if APP_VERSION == APP_PSDK  
18 - #include "widget/test_widget.h"  
19 - #include "widget/test_widget_speaker.h"  
20 - #include "./Dji_Control/DJI_VideoDeal.h"  
21 -  
22 -#elif APP_VERSION == APP_UART || APP_VERSION == APP_TEST  
23 -int Get_Opus_PlayMode() 18 +/********************
  19 + *
  20 + * 获取UI控件里,opus实时是否有打开
  21 + *
  22 + *
  23 + * *********************/
  24 +int Get_UI_Widget_OpusRealTimeMode()
24 { 25 {
25 - return JZ_FLAGCODE_OFF;  
26 -}  
27 -#endif 26 + int mode = 0;
  27 +
  28 + T_JZsdkToPsdkHandler *handle = ExpansionApi_JZsdkToPsdk_GetHandler();
  29 + if (handle == NULL || handle->Get_UI_SpeakerWidget_RealTimeVoiceMode == NULL)
  30 + {
  31 + return JZ_FLAGCODE_OFF;
  32 + }
  33 +
  34 + handle->Get_UI_SpeakerWidget_RealTimeVoiceMode(&mode);
  35 +
  36 + return mode;
  37 +}
28 38
29 #define AUTO_CONTROL 0x02 39 #define AUTO_CONTROL 0x02
30 40
@@ -67,20 +77,18 @@ typedef enum Psdk_Ui_define @@ -67,20 +77,18 @@ typedef enum Psdk_Ui_define
67 PSDK_UI_SECONDARY_WIDGET_LOOPPLAY = 0x11008001, // 二级控件界面的音频循环开关 77 PSDK_UI_SECONDARY_WIDGET_LOOPPLAY = 0x11008001, // 二级控件界面的音频循环开关
68 }Psdk_Ui_define; 78 }Psdk_Ui_define;
69 79
70 -  
71 /**************** 80 /****************
72 * 81 *
73 * 控件设置 82 * 控件设置
74 * 83 *
75 * *************/ 84 * *************/
76 -int UI_control_WidgetArraySet(int index, int value) 85 +static T_JZsdkReturnCode UI_control_WidgetArraySet(int index, int value)
77 { 86 {
78 -  
79 -#if APP_VERSION == APP_PSDK  
80 - set_wideget_value(index, value);  
81 -#elif APP_VERSION == APP_UART  
82 -  
83 -#endif 87 + T_JZsdkToPsdkHandler *handle = ExpansionApi_JZsdkToPsdk_GetHandler();
  88 + if (handle != NULL && handle->Set_UI_Widget_Value != NULL)
  89 + {
  90 + handle->Set_UI_Widget_Value(index, value);
  91 + }
84 } 92 }
85 93
86 /**************** 94 /****************
@@ -88,25 +96,37 @@ int UI_control_WidgetArraySet(int index, int value) @@ -88,25 +96,37 @@ int UI_control_WidgetArraySet(int index, int value)
88 * 二级控件设置 96 * 二级控件设置
89 * 97 *
90 * *************/ 98 * *************/
91 -int UI_control_SecondaryWidgetArraySet(int type, int value) 99 +static T_JZsdkReturnCode UI_control_SecondaryWidgetArraySet(int type, int value)
92 { 100 {
  101 + T_JZsdkToPsdkHandler *handle = ExpansionApi_JZsdkToPsdk_GetHandler();
  102 + if (handle != NULL)
  103 + {
  104 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  105 + }
  106 +
93 switch (type) 107 switch (type)
94 { 108 {
95 -#if APP_VERSION == APP_PSDK 109 +
96 case PSDK_UI_SECONDARY_WIDGET_PLAYSTATUS: 110 case PSDK_UI_SECONDARY_WIDGET_PLAYSTATUS:
97 - Speaker_Set_SpeakerState_state(value); 111 + if (handle->Set_UI_SpeakerWidget_PlayState != NULL)
  112 + {
  113 + return handle->Set_UI_SpeakerWidget_PlayState(value);
  114 + }
98 break; 115 break;
99 116
100 case PSDK_UI_SECONDARY_WIDGET_LOOPPLAY: 117 case PSDK_UI_SECONDARY_WIDGET_LOOPPLAY:
101 - Speaker_Set_SpeakerPlaymode(value); 118 + if (handle->Set_UI_SpeakerWidget_LoopMode != NULL)
  119 + {
  120 + return handle->Set_UI_SpeakerWidget_LoopMode(value);
  121 + }
102 break; 122 break;
103 123
104 case PSDK_UI_WIDGET_VOLUME://音量 124 case PSDK_UI_WIDGET_VOLUME://音量
105 - Speaker_Set_SpeakerVolume(value); 125 + if (handle->Set_UI_SpeakerWidget_Volume != NULL)
  126 + {
  127 + return handle->Set_UI_SpeakerWidget_Volume(value);
  128 + }
106 break; 129 break;
107 -#elif APP_VERSION == APP_UART  
108 -  
109 -#endif  
110 130
111 131
112 default: 132 default:
@@ -304,7 +324,7 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_LastSong(int wheather_control) @@ -304,7 +324,7 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_LastSong(int wheather_control)
304 T_JZsdkReturnCode ret; 324 T_JZsdkReturnCode ret;
305 325
306 // 开启实时喊话时,锁定该功能 326 // 开启实时喊话时,锁定该功能
307 - if (Get_Opus_PlayMode() == 1) 327 + if (Get_UI_Widget_OpusRealTimeMode() == JZ_FLAGCODE_ON)
308 { 328 {
309 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; 329 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
310 } 330 }
@@ -328,7 +348,7 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_NextSong(int wheather_control) @@ -328,7 +348,7 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_NextSong(int wheather_control)
328 T_JZsdkReturnCode ret; 348 T_JZsdkReturnCode ret;
329 349
330 // 开启实时喊话时,锁定该功能 350 // 开启实时喊话时,锁定该功能
331 - if (Get_Opus_PlayMode() == 1) 351 + if (Get_UI_Widget_OpusRealTimeMode() == JZ_FLAGCODE_ON)
332 { 352 {
333 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; 353 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
334 } 354 }
@@ -353,7 +373,7 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_PlaySong(int wheather_control) @@ -353,7 +373,7 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_PlaySong(int wheather_control)
353 T_JZsdkReturnCode ret; 373 T_JZsdkReturnCode ret;
354 374
355 // 开启实时喊话时,锁定该功能 375 // 开启实时喊话时,锁定该功能
356 - if (Get_Opus_PlayMode() == 1) 376 + if (Get_UI_Widget_OpusRealTimeMode() == JZ_FLAGCODE_ON)
357 { 377 {
358 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; 378 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
359 } 379 }
@@ -385,7 +405,7 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_PlaySong(int wheather_control) @@ -385,7 +405,7 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_PlaySong(int wheather_control)
385 T_JZsdkReturnCode JZsdk_Psdk_UI_io_Audio_PauseAndPlayContinue(int wheather_control, int value) 405 T_JZsdkReturnCode JZsdk_Psdk_UI_io_Audio_PauseAndPlayContinue(int wheather_control, int value)
386 { 406 {
387 // 开启实时喊话时,锁定该功能 407 // 开启实时喊话时,锁定该功能
388 - if (Get_Opus_PlayMode() == 1) 408 + if (Get_UI_Widget_OpusRealTimeMode() == JZ_FLAGCODE_ON)
389 { 409 {
390 UI_control_WidgetSet(PSDK_UI_WIDGET_PLAYSTATUS, value); 410 UI_control_WidgetSet(PSDK_UI_WIDGET_PLAYSTATUS, value);
391 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; 411 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
@@ -427,7 +447,7 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_Audio_PauseAndPlayContinue(int wheather_contr @@ -427,7 +447,7 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_Audio_PauseAndPlayContinue(int wheather_contr
427 T_JZsdkReturnCode JZsdk_Psdk_UI_io_StopPlayAudio() 447 T_JZsdkReturnCode JZsdk_Psdk_UI_io_StopPlayAudio()
428 { 448 {
429 // 开启实时喊话时,锁定该功能 449 // 开启实时喊话时,锁定该功能
430 - if (Get_Opus_PlayMode() == 1) 450 + if (Get_UI_Widget_OpusRealTimeMode() == JZ_FLAGCODE_ON)
431 { 451 {
432 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; 452 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
433 } 453 }
@@ -1088,7 +1108,7 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_Set_MINGimbalRangen(int value) @@ -1088,7 +1108,7 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_Set_MINGimbalRangen(int value)
1088 T_JZsdkReturnCode JZsdk_Psdk_UI_io_Set_TTS_Play(char *data, int len) 1108 T_JZsdkReturnCode JZsdk_Psdk_UI_io_Set_TTS_Play(char *data, int len)
1089 { 1109 {
1090 // 开启实时喊话时,锁定该功能 1110 // 开启实时喊话时,锁定该功能
1091 - if (Get_Opus_PlayMode() == 1) 1111 + if (Get_UI_Widget_OpusRealTimeMode() == JZ_FLAGCODE_ON)
1092 { 1112 {
1093 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; 1113 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
1094 } 1114 }
@@ -1199,9 +1219,11 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_OpusRealTimeVoice_Close() @@ -1199,9 +1219,11 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_OpusRealTimeVoice_Close()
1199 * *************/ 1219 * *************/
1200 T_JZsdkReturnCode JZsdk_Psdk_UI_io_Reply_Camera_Status(int status) 1220 T_JZsdkReturnCode JZsdk_Psdk_UI_io_Reply_Camera_Status(int status)
1201 { 1221 {
1202 -#if APP_VERSION == APP_PSDK  
1203 - DJI_Set_CameraTransStatus(status);  
1204 -#endif 1222 + T_JZsdkToPsdkHandler *handler = ExpansionApi_JZsdkToPsdk_GetHandler();
  1223 + if (handler != NULL && handler->Set_UI_CameraTransStatus != NULL)
  1224 + {
  1225 + handler->Set_UI_CameraTransStatus(status);
  1226 + }
1205 } 1227 }
1206 1228
1207 /*************** 1229 /***************
@@ -176,6 +176,10 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_SetPowerStatus(int value); @@ -176,6 +176,10 @@ T_JZsdkReturnCode JZsdk_Psdk_UI_io_SetPowerStatus(int value);
176 T_JZsdkReturnCode JZsdk_Psdk_UI_io_SideLaserMode(int wheather_ChangeWidget, int wheather_control, int value); 176 T_JZsdkReturnCode JZsdk_Psdk_UI_io_SideLaserMode(int wheather_ChangeWidget, int wheather_control, int value);
177 177
178 178
  179 +//获取控件的实时opus模式是否开启
  180 +int Get_UI_Widget_OpusRealTimeMode();
  181 +
  182 +
179 #ifdef __cplusplus 183 #ifdef __cplusplus
180 } 184 }
181 #endif 185 #endif
@@ -9,7 +9,7 @@ project(JZ_U3D) @@ -9,7 +9,7 @@ project(JZ_U3D)
9 #"-ldl":指定在编译时链接动态库加载库,以使用动态加载。 9 #"-ldl":指定在编译时链接动态库加载库,以使用动态加载。
10 #"-lstdc++":指定在编译时链接C++标准库,以使用C++的一些特性和函数。 10 #"-lstdc++":指定在编译时链接C++标准库,以使用C++的一些特性和函数。
11 11
12 -set(CMAKE_EXE_LINKER_FLAGS "-pthread") 12 +set(CMAKE_EXE_LINKER_FLAGS "-pthread") # 设置可执行文件链接选项:启用线程支持
13 13
14 # 设置设备类型以加载主要功能模块 14 # 设置设备类型以加载主要功能模块
15 #预留行 15 #预留行
@@ -29,7 +29,7 @@ set(ROOT_DIRS "${CMAKE_CURRENT_LIST_DIR}/../../../../../../../") @@ -29,7 +29,7 @@ set(ROOT_DIRS "${CMAKE_CURRENT_LIST_DIR}/../../../../../../../")
29 include(${ROOT_DIRS}CmakeConfig/Compiler.cmake) 29 include(${ROOT_DIRS}CmakeConfig/Compiler.cmake)
30 include(${ROOT_DIRS}CmakeConfig/module_config.cmake) 30 include(${ROOT_DIRS}CmakeConfig/module_config.cmake)
31 include(${ROOT_DIRS}CmakeConfig/module_build.cmake) 31 include(${ROOT_DIRS}CmakeConfig/module_build.cmake)
32 -#PSDK态库 32 +#PSDK态库
33 link_libraries(${CMAKE_CURRENT_LIST_DIR}/../../../../../psdk_lib/lib/${TOOLCHAIN_NAME}/libpayloadsdk.a) 33 link_libraries(${CMAKE_CURRENT_LIST_DIR}/../../../../../psdk_lib/lib/${TOOLCHAIN_NAME}/libpayloadsdk.a)
34 34
35 if (NOT USE_SYSTEM_ARCH) 35 if (NOT USE_SYSTEM_ARCH)
@@ -56,12 +56,15 @@ file(GLOB_RECURSE MODULE_COMMON_SRC ../common/*.c) #系统文件 MODULE_COMM @@ -56,12 +56,15 @@ file(GLOB_RECURSE MODULE_COMMON_SRC ../common/*.c) #系统文件 MODULE_COMM
56 file(GLOB_RECURSE MODULE_HAL_SRC hal/*.c) #网络串口usb文件 MODULE_HAL_SRC 56 file(GLOB_RECURSE MODULE_HAL_SRC hal/*.c) #网络串口usb文件 MODULE_HAL_SRC
57 file(GLOB_RECURSE MODULE_APP_SRC application/*.c) #main MODULE_APP_SRC 57 file(GLOB_RECURSE MODULE_APP_SRC application/*.c) #main MODULE_APP_SRC
58 file(GLOB_RECURSE MODULE_SAMPLE_SRC ../../../module_sample/*.c) #基础功能文件 MODULE_SAMPLE_SRC 58 file(GLOB_RECURSE MODULE_SAMPLE_SRC ../../../module_sample/*.c) #基础功能文件 MODULE_SAMPLE_SRC
  59 +file(GLOB_RECURSE MODULE_JZSDK_PSDK_EXPANSION_SRC JZsdk_PsdkExpansion/*.c) #接口文件
  60 +
59 61
60 # psdk额外加载的.h文件 62 # psdk额外加载的.h文件
61 include_directories(./application) 63 include_directories(./application)
62 include_directories(../../../module_sample) 64 include_directories(../../../module_sample)
63 include_directories(../common) 65 include_directories(../common)
64 include_directories(../../../../../psdk_lib/include) #PSDK头文件 66 include_directories(../../../../../psdk_lib/include) #PSDK头文件
  67 +include_directories(./JZsdk_PsdkExpansion)
65 68
66 69
67 # 加载jzsdk的头文件  ***************************************************** 70 # 加载jzsdk的头文件  *****************************************************
@@ -81,6 +84,7 @@ add_executable( @@ -81,6 +84,7 @@ add_executable(
81 ${MODULE_APP_SRC} 84 ${MODULE_APP_SRC}
82 ${MODULE_HAL_SRC} 85 ${MODULE_HAL_SRC}
83 ${MODULE_SAMPLE_SRC} 86 ${MODULE_SAMPLE_SRC}
  87 + ${MODULE_JZSDK_PSDK_EXPANSION_SRC}
84 88
85 ${ALL_SRC_FILES} #加载jzsdk的源文件 ***************************************************** 89 ${ALL_SRC_FILES} #加载jzsdk的源文件 *****************************************************
86 ) 90 )
1 -#include <stdio.h>  
2 -#include <stdlib.h>  
3 -#include <string.h>  
4 #include "JZsdkLib.h" 1 #include "JZsdkLib.h"
5 -#include "version_choose.h"  
6 -  
7 -#if APP_VERSION == APP_PSDK 2 +#include "data_transmission/test_data_transmission.h"
  3 +#include "ExtensionAPI/JZsdk_ExpansionApi.h"
  4 +#include "DJI_Expansion/DJI_Expansion.h"
8 5
  6 +#include "widget/test_widget.h"
  7 +#include "widget/test_widget_speaker.h"
9 8
10 #include "dji_typedef.h" 9 #include "dji_typedef.h"
11 #include "dji_payload_camera.h" 10 #include "dji_payload_camera.h"
@@ -13,6 +12,7 @@ @@ -13,6 +12,7 @@
13 #include "dji_error.h" 12 #include "dji_error.h"
14 #include "utils/util_misc.h" 13 #include "utils/util_misc.h"
15 14
  15 +
16 #include "MediaProc/MediaProc.h" 16 #include "MediaProc/MediaProc.h"
17 #include "camera_emu/test_payload_cam_emu_base.h" 17 #include "camera_emu/test_payload_cam_emu_base.h"
18 18
@@ -25,6 +25,7 @@ @@ -25,6 +25,7 @@
25 static const uint8_t s_frameAudInfo[VIDEO_FRAME_AUD_LEN] = {0x00, 0x00, 0x00, 0x01, 0x09, 0x10}; 25 static const uint8_t s_frameAudInfo[VIDEO_FRAME_AUD_LEN] = {0x00, 0x00, 0x00, 0x01, 0x09, 0x10};
26 #define Temp_H264 "/root/sdcard/DCIM/Videos/out.h264" //临时h264的存放地址 26 #define Temp_H264 "/root/sdcard/DCIM/Videos/out.h264" //临时h264的存放地址
27 27
  28 +
28 struct FrameInfo 29 struct FrameInfo
29 { 30 {
30 float DurationTime ; 31 float DurationTime ;
@@ -40,8 +41,39 @@ int PlayFrameNumber = 0; //当前播放的帧数 @@ -40,8 +41,39 @@ int PlayFrameNumber = 0; //当前播放的帧数
40 int transcode_flag = JZ_FLAGCODE_OFF; 41 int transcode_flag = JZ_FLAGCODE_OFF;
41 unsigned int old_command_timeMS = 0; 42 unsigned int old_command_timeMS = 0;
42 43
43 -//大疆推流函数,将输入的视频帧,输入到DjiPayloadCamera_SendVideoStream  
44 -int DJI_VideoDeal_Push_DJIH264Frame(unsigned char* h264_data, uint32_t data_len) 44 +/**************************
  45 + *
  46 + * 拓展接口: 低速数据传输接口
  47 + *
  48 + * *************************/
  49 +T_JZsdkReturnCode JZsdk_Expansion_low_data_tran(unsigned char *data ,int len)
  50 +{
  51 + if(DJI_Low_Data_Trans(data,len) == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  52 + {
  53 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  54 + }
  55 +
  56 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  57 +}
  58 +
  59 +
  60 +
  61 +
  62 +
  63 +
  64 +/*********************************************************************************************
  65 + *
  66 + * 拓展接口 : 视频流相关
  67 + *
  68 +*************************************************************************************************/
  69 +
  70 +
  71 +/**************************
  72 + *
  73 + * 拓展接口: 视频数据数据传输接口
  74 + *
  75 + * *************************/
  76 +T_JZsdkReturnCode JZsdk_PsdkExpansion_Push_DJIH264Frame(unsigned char* h264_data, uint32_t data_len)
45 { 77 {
46 //USER_LOG_INFO("推流%d",data_len); 78 //USER_LOG_INFO("推流%d",data_len);
47 79
@@ -91,6 +123,7 @@ int DJI_VideoDeal_Push_DJIH264Frame(unsigned char* h264_data, uint32_t data_len) @@ -91,6 +123,7 @@ int DJI_VideoDeal_Push_DJIH264Frame(unsigned char* h264_data, uint32_t data_len)
91 USER_LOG_ERROR("get video stream state error."); 123 USER_LOG_ERROR("get video stream state error.");
92 } 124 }
93 125
  126 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
94 } 127 }
95 128
96 //视频添加帧头,并推送给飞机 129 //视频添加帧头,并推送给飞机
@@ -98,9 +131,10 @@ static int DJI_VideoDeal_H264_TO_PUSH_DJIH264Frame(char* h264_data, uint32_t dat @@ -98,9 +131,10 @@ static int DJI_VideoDeal_H264_TO_PUSH_DJIH264Frame(char* h264_data, uint32_t dat
98 { 131 {
99 memcpy(h264_data + data_len, s_frameAudInfo, VIDEO_FRAME_AUD_LEN); 132 memcpy(h264_data + data_len, s_frameAudInfo, VIDEO_FRAME_AUD_LEN);
100 data_len += VIDEO_FRAME_AUD_LEN; 133 data_len += VIDEO_FRAME_AUD_LEN;
101 - DJI_VideoDeal_Push_DJIH264Frame(h264_data, data_len); 134 + JZsdk_PsdkExpansion_Push_DJIH264Frame(h264_data, data_len);
102 } 135 }
103 136
  137 +
104 //继续播放录像 138 //继续播放录像
105 static int VideoReplay_ContinuePlay() 139 static int VideoReplay_ContinuePlay()
106 { 140 {
@@ -397,11 +431,67 @@ int DJI_VideoReplay_input(int command, unsigned int Command_timeMS, char* path) @@ -397,11 +431,67 @@ int DJI_VideoReplay_input(int command, unsigned int Command_timeMS, char* path)
397 } 431 }
398 } 432 }
399 433
400 -//大疆psdk下,设置转码状态  
401 -int DJI_Set_CameraTransStatus(int status) 434 +
  435 +
  436 +
  437 +
  438 +
  439 +
  440 +
  441 +
  442 +
  443 +
  444 +
  445 +/*********************************************************************************************
  446 + *
  447 + * 拓展接口 : 控件相关
  448 + *
  449 +*************************************************************************************************/
  450 +T_DjiReturnCode Get_RealTimeVoiceMode(int *mode)
402 { 451 {
403 - DJI_CamEmu_base_CameraTransLock(status); 452 + if ( Get_Opus_PlayMode()==1 )//播放模式 为实时育英中
  453 + {
  454 + *mode = JZ_FLAGCODE_ON;
  455 + }
  456 + else
  457 + {
  458 + *mode = JZ_FLAGCODE_OFF;
  459 + }
  460 +
  461 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
404 } 462 }
405 463
406 464
407 -#endif  
  465 +
  466 +
  467 +
  468 +
  469 +
  470 +
  471 +
  472 +
  473 +
  474 +
  475 +
  476 +
  477 +
  478 +T_JZsdkReturnCode DJI_JZsdkToPsdk_ExpnasionInit()
  479 +{
  480 + T_JZsdkToPsdkHandler handler = {
  481 + .low_data_tran = JZsdk_Expansion_low_data_tran,
  482 + .push_DJIH264Frame_to_plane = JZsdk_PsdkExpansion_Push_DJIH264Frame,
  483 + .Set_UI_Widget_Value = set_wideget_value,
  484 + .Set_UI_SpeaakerWidget_PlayState = Speaker_Set_SpeakerState_state,
  485 + .Set_UI_SpeaakerWidget_LoopMode = Speaker_Set_SpeakerPlaymode,
  486 + .Set_UI_SpeaakerWidget_Volume = Speaker_Set_SpeakerVolume,
  487 + .Get_UI_SpeakerWidget_RealTimeVoiceMode = Get_RealTimeVoiceMode,
  488 + };
  489 +
  490 + if(Expansion_PsdkExpansion_Init(handler) != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  491 + {
  492 + JZSDK_LOG_ERROR("Expansion_PsdkExpansion_Init error");
  493 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  494 + }
  495 +
  496 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  497 +}
  1 +/**
  2 + ********************************************************************
  3 + * @file JZsdk_PsdkExpansion.h
  4 + * JZsdk_PsdkExpansion.c 的头文件
  5 + *
  6 + *********************************************************************
  7 + */
  8 +
  9 +/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
  10 +#ifndef JZSDK_PSDK_EXPANSION_H
  11 +#define JZSDK_PSDK_EXPANSION_H
  12 +
  13 +/* Includes ------------------------------------------------------------------*/
  14 +#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
  15 +
  16 +#ifdef __cplusplus
  17 +extern "C" {
  18 +#endif
  19 +
  20 +
  21 +/* Exported constants --------------------------------------------------------*/
  22 +/* 常亮定义*/
  23 +
  24 +/* Exported types ------------------------------------------------------------*/
  25 +
  26 +/* Exported functions --------------------------------------------------------*/
  27 +T_JZsdkReturnCode JZsdk_Expansion_low_data_tran(unsigned char *data ,int len);
  28 +T_JZsdkReturnCode DJI_JZsdkToPsdk_ExpnasionInit();
  29 +
  30 +#ifdef __cplusplus
  31 +}
  32 +#endif
  33 +
  34 +#endif
@@ -65,6 +65,7 @@ @@ -65,6 +65,7 @@
65 #include "Psdk_UI_io.h" 65 #include "Psdk_UI_io.h"
66 #include "DeviceInfo/DeviceInfo.h" 66 #include "DeviceInfo/DeviceInfo.h"
67 #include "CommonMod/PowerManger/PowerManger.h" 67 #include "CommonMod/PowerManger/PowerManger.h"
  68 +#include "DJI_Expansion/DJI_Expansion.h"
68 69
69 #ifdef AUDIODEAL_CONFIG_STATUS_ON 70 #ifdef AUDIODEAL_CONFIG_STATUS_ON
70 #include "AudioDeal/AudioDeal.h" 71 #include "AudioDeal/AudioDeal.h"
@@ -557,6 +558,9 @@ int main(int argc, char *argv[]) @@ -557,6 +558,9 @@ int main(int argc, char *argv[])
557 Psdk_UI_io_Set_DJI_SkyPort_SerialNumber(Jz_SerialNumber); 558 Psdk_UI_io_Set_DJI_SkyPort_SerialNumber(Jz_SerialNumber);
558 } 559 }
559 560
  561 + //配置拓展接口
  562 + DJI_JZsdkToPsdk_ExpnasionInit();
  563 +
560 //自己配置 564 //自己配置
561 Main_APP_Psdk(); 565 Main_APP_Psdk();
562 566
@@ -17,8 +17,8 @@ set(CMAKE_EXE_LINKER_FLAGS "-pthread") @@ -17,8 +17,8 @@ set(CMAKE_EXE_LINKER_FLAGS "-pthread")
17 17
18 # 修改增添 18 # 修改增添
19 set(TOOLCHAIN_NAME arm-linux-gnueabihf) 19 set(TOOLCHAIN_NAME arm-linux-gnueabihf)
20 -set(CMAKE_C_COMPILER "/usr/local/arm/4.9.3/bin/arm-cortexa9-linux-gnueabihf-gcc")  
21 -set(CMAKE_CXX_COMPILER "/usr/local/arm/4.9.3/bin/arm-cortexa9-linux-gnueabihf-g++") 20 +set(CMAKE_C_COMPILER "/usr/local/arm/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc")
  21 +set(CMAKE_CXX_COMPILER "/usr/local/arm/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++")
22 add_definitions(-DPLATFORM_ARCH_arm=1) # 定义ARM平台宏 22 add_definitions(-DPLATFORM_ARCH_arm=1) # 定义ARM平台宏
23 23
24 set(ROOT_DIRS "${CMAKE_CURRENT_LIST_DIR}/../../../../../../../") 24 set(ROOT_DIRS "${CMAKE_CURRENT_LIST_DIR}/../../../../../../../")
@@ -41,7 +41,7 @@ endif () @@ -41,7 +41,7 @@ endif ()
41 41
42 set(COMMON_CXX_FLAGS "-std=c++11 -pthread") 42 set(COMMON_CXX_FLAGS "-std=c++11 -pthread")
43 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage") 43 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
44 -set(CMAKE_C_FLAGS "-pthread -std=gnu99 -lm -ldl -lstdc++ -fprofile-arcs -ftest-coverage") 44 +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
45 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage -lgcov") 45 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage -lgcov")
46 46
47 47
1 -# 指定CMake最低版本要求为3.5  
2 -cmake_minimum_required(VERSION 3.5)  
3 -# 定义项目名称和编程语言(C语言)  
4 -project(ziyan_sdk_demo_on_jetson C)  
5 -  
6 -# 设置C编译器选项:启用POSIX线程,使用GNU99标准  
7 -set(CMAKE_C_FLAGS "-pthread -std=gnu99")  
8 -# 设置C++编译器选项:使用C++11标准,启用POSIX线程  
9 -set(CMAKE_CXX_FLAGS "-std=c++11 -pthread")  
10 -# 设置可执行文件链接选项:启用线程支持  
11 -set(CMAKE_EXE_LINKER_FLAGS "-pthread")  
12 -# 指定C编译器为gcc  
13 -#set(CMAKE_C_COMPILER "gcc")  
14 -  
15 -# 指定C++编译器为g++  
16 -#set(CMAKE_CXX_COMPILER "g++")  
17 -  
18 -# 修改增添  
19 -set(TOOLCHAIN_NAME arm-linux-gnueabihf)  
20 -set(CMAKE_C_COMPILER "/usr/local/arm/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc")  
21 -set(CMAKE_CXX_COMPILER "/usr/local/arm/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++")  
22 -add_definitions(-DPLATFORM_ARCH_arm=1) # 定义ARM平台宏  
23 - 1 +# cmake 最低版本要求 第三行名字不能动
  2 +cmake_minimum_required(VERSION 2.8)
  3 +project(JZ_H200)
  4 +
  5 +#set(CMAKE_C_FLAGS "-pthread -std=gnu99 -lm -ldl -lstdc++")
  6 +#"-pthread":指定在编译时链接POSIX线程库,以支持多线程程序。
  7 +#"-std=gnu99":指定C语言标准为GNU C99(也就是C99加上GNU的扩展特性),该标准对于一些特性和库的使用是必须的。
  8 +#"-lm":指定在编译时链接数学库,以使用一些数学函数。
  9 +#"-ldl":指定在编译时链接动态库加载库,以使用动态加载。
  10 +#"-lstdc++":指定在编译时链接C++标准库,以使用C++的一些特性和函数。
  11 +
  12 +set(CMAKE_EXE_LINKER_FLAGS "-pthread") # 设置可执行文件链接选项:启用线程支持
  13 +
  14 +# 设置设备类型以加载主要功能模块
  15 +#预留行
  16 +#预留行
  17 +#预留行
  18 +#预留行
  19 +#预留行
  20 +#预留行
  21 +#预留行
  22 +#预留行
  23 +#预留行
  24 +#预留行
  25 +#预留行
24 set(ROOT_DIRS "${CMAKE_CURRENT_LIST_DIR}/../../../../../../../") 26 set(ROOT_DIRS "${CMAKE_CURRENT_LIST_DIR}/../../../../../../../")
25 -message("ROOT_DIRS: ${ROOT_DIRS}")  
26 27
27 -# 定义GNU扩展源特性宏  
28 -add_definitions(-D_GNU_SOURCE) 28 +# 包含模块配置
  29 +include(${ROOT_DIRS}CmakeConfig/Compiler.cmake)
  30 +include(${ROOT_DIRS}CmakeConfig/module_config.cmake)
  31 +include(${ROOT_DIRS}CmakeConfig/module_build.cmake)
  32 +#PSDK静态库
  33 +link_libraries(${CMAKE_CURRENT_LIST_DIR}/../../../../../psdk_lib/lib/${TOOLCHAIN_NAME}/libpayloadsdk.a)
29 34
30 # 如果未使用系统架构定义,则添加Linux系统架构宏 35 # 如果未使用系统架构定义,则添加Linux系统架构宏
31 if (NOT USE_SYSTEM_ARCH) 36 if (NOT USE_SYSTEM_ARCH)
32 add_definitions(-DSYSTEM_ARCH_LINUX) 37 add_definitions(-DSYSTEM_ARCH_LINUX)
33 endif () 38 endif ()
34 39
35 -# 如果开启测试用例构建,添加代码覆盖率相关编译选项  
36 -# if (BUILD_TEST_CASES_ON MATCHES TRUE)  
37 -# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")  
38 -# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")  
39 -# set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage -lgcov")  
40 -# endif ()  
41 -  
42 set(COMMON_CXX_FLAGS "-std=c++11 -pthread") 40 set(COMMON_CXX_FLAGS "-std=c++11 -pthread")
43 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage") 41 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
44 -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage") 42 +set(CMAKE_C_FLAGS "-pthread -std=gnu99 -lm -ldl -lstdc++ -fprofile-arcs -ftest-coverage")
45 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage -lgcov") 43 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage -lgcov")
46 44
47 -  
48 -# 定义软件包名称为payloadsdk  
49 -set(PACKAGE_NAME payloadsdk)  
50 -  
51 ## "uname -m" to auto distinguish Manifold2-G or Manifold2-C 45 ## "uname -m" to auto distinguish Manifold2-G or Manifold2-C
52 ## 通过执行uname -m命令自动区分硬件平台类型 46 ## 通过执行uname -m命令自动区分硬件平台类型
53 -# execute_process(COMMAND uname -m  
54 -# OUTPUT_VARIABLE DEVICE_SYSTEM_ID)  
55 - 47 +execute_process(COMMAND uname -m
  48 + OUTPUT_VARIABLE DEVICE_SYSTEM_ID)
56 49
  50 +# 定义GNU扩展源特性宏
  51 +add_definitions(-D_GNU_SOURCE)
  52 +add_definitions(-DPLATFORM_ARCH_arm=1) # 定义ARM平台宏
57 # 根据系统架构设置工具链和平台定义 53 # 根据系统架构设置工具链和平台定义
58 # if (DEVICE_SYSTEM_ID MATCHES x86_64) 54 # if (DEVICE_SYSTEM_ID MATCHES x86_64)
59 # set(TOOLCHAIN_NAME x86_64-linux-gnu) # x86_64架构工具链 55 # set(TOOLCHAIN_NAME x86_64-linux-gnu) # x86_64架构工具链
@@ -69,40 +65,151 @@ set(PACKAGE_NAME payloadsdk) @@ -69,40 +65,151 @@ set(PACKAGE_NAME payloadsdk)
69 # message(FATAL_ERROR "FATAL: Please confirm your platform. SYSTEM_ID:${DEVICE_SYSTEM_ID}") 65 # message(FATAL_ERROR "FATAL: Please confirm your platform. SYSTEM_ID:${DEVICE_SYSTEM_ID}")
70 # endif () 66 # endif ()
71 67
72 -  
73 -  
74 # 递归收集源代码文件 68 # 递归收集源代码文件
75 file(GLOB_RECURSE MODULE_COMMON_SRC ../common/*.c) # 公共模块C文件 69 file(GLOB_RECURSE MODULE_COMMON_SRC ../common/*.c) # 公共模块C文件
76 file(GLOB_RECURSE MODULE_HAL_SRC hal/*.c) # HAL硬件抽象层C文件 70 file(GLOB_RECURSE MODULE_HAL_SRC hal/*.c) # HAL硬件抽象层C文件
77 file(GLOB_RECURSE MODULE_APP_SRC application/*.c) # 应用层C文件 71 file(GLOB_RECURSE MODULE_APP_SRC application/*.c) # 应用层C文件
78 file(GLOB_RECURSE MODULE_SAMPLE_SRC ../../../module_sample/*.c) # 示例模块C文件 72 file(GLOB_RECURSE MODULE_SAMPLE_SRC ../../../module_sample/*.c) # 示例模块C文件
  73 +file(GLOB_RECURSE MODULE_JZSDK_PSDK_EXPANSION_SRC JZsdk_PsdkExpansion/*.c) #接口文件
79 74
80 # 添加包含目录 75 # 添加包含目录
81 include_directories(../../../module_sample) # 示例模块头文件目录 76 include_directories(../../../module_sample) # 示例模块头文件目录
82 include_directories(../common) # 公共头文件目录 77 include_directories(../common) # 公共头文件目录
  78 +include_directories(./JZsdk_PsdkExpansion)
83 79
84 # 添加PSDK库的包含目录和链接设置 80 # 添加PSDK库的包含目录和链接设置
85 include_directories(../../../../../psdk_lib/include) # PSDK头文件目录 81 include_directories(../../../../../psdk_lib/include) # PSDK头文件目录
86 link_directories(../../../../../psdk_lib/lib/${TOOLCHAIN_NAME}) # PSDK库目录 82 link_directories(../../../../../psdk_lib/lib/${TOOLCHAIN_NAME}) # PSDK库目录
87 -# 链接静态库文件  
88 -link_libraries(${CMAKE_CURRENT_LIST_DIR}/../../../../../psdk_lib/lib/${TOOLCHAIN_NAME}/lib${PACKAGE_NAME}.a) 83 +
  84 +
  85 +# 加载jzsdk的头文件  *****************************************************
  86 +include_directories(${ALL_INC_FILES})
  87 +
  88 +
89 89
90 # 设置可执行文件输出路径(默认到构建目录的bin子目录) 90 # 设置可执行文件输出路径(默认到构建目录的bin子目录)
91 if (NOT EXECUTABLE_OUTPUT_PATH) 91 if (NOT EXECUTABLE_OUTPUT_PATH)
92 set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin) 92 set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
93 endif () 93 endif ()
94 94
95 -  
96 # 创建可执行目标,包含所有收集的源代码 95 # 创建可执行目标,包含所有收集的源代码
97 add_executable(${PROJECT_NAME} 96 add_executable(${PROJECT_NAME}
98 ${MODULE_APP_SRC} 97 ${MODULE_APP_SRC}
99 ${MODULE_SAMPLE_SRC} 98 ${MODULE_SAMPLE_SRC}
100 ${MODULE_COMMON_SRC} 99 ${MODULE_COMMON_SRC}
101 - ${MODULE_HAL_SRC}) 100 + ${MODULE_HAL_SRC}
  101 + ${MODULE_SAMPLE_SRC}
  102 + ${MODULE_JZSDK_PSDK_EXPANSION_SRC}
  103 +
  104 + ${ALL_SRC_FILES} #加载jzsdk的源文件 *****************************************************
  105 +)
  106 +
  107 +
  108 +message("USB库已加载\n")
  109 +include_directories(${ROOT_DIRS}/ThirdParty/libusb/arm-cortexa9-linux-gnueabihf/include)
  110 +target_link_libraries(
  111 + ${PROJECT_NAME}
  112 + ${ROOT_DIRS}/ThirdParty/libusb/arm-cortexa9-linux-gnueabihf/lib/libusb-1.0.so.0
  113 +)
  114 +
  115 +include(${ROOT_DIRS}CmakeConfig/module_lib_loading.cmake)
  116 +
  117 +# 添加预链接自定义命令:在链接前执行cmake ..
  118 +add_custom_command(TARGET ${PROJECT_NAME}
  119 + PRE_LINK COMMAND cmake ..
  120 + WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
  121 +
  122 +
  123 +message("USB库已加载\n")
  124 +include_directories(${ROOT_DIRS}/ThirdParty/libusb/arm-cortexa9-linux-gnueabihf/include)
  125 +target_link_libraries(
  126 + ${PROJECT_NAME}
  127 + ${ROOT_DIRS}/ThirdParty/libusb/arm-cortexa9-linux-gnueabihf/lib/libusb-1.0.so.0
  128 +)
  129 +
  130 +
  131 +
  132 +
  133 +
  134 +
  135 +
  136 +
  137 +
  138 +
  139 +
  140 +# 如果开启测试用例构建,添加代码覆盖率相关编译选项
  141 +# if (BUILD_TEST_CASES_ON MATCHES TRUE)
  142 +# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
  143 +# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
  144 +# set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage -lgcov")
  145 +# endif ()
  146 +
  147 +
  148 +# 定义软件包名称为payloadsdk
  149 +
  150 +
  151 +
  152 +
  153 +
  154 +
  155 +
  156 +
  157 +
  158 +
  159 +# 链接静态库文件
  160 +
  161 +
  162 +
102 163
103 164
104 # 设置第三方库查找路径 165 # 设置第三方库查找路径
105 -set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../common/3rdparty) 166 +# set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../common/3rdparty)
  167 +
  168 +
  169 +# message("USB库已加载\n")
  170 +# include_directories(${ROOT_DIRS}/ThirdParty/libusb/arm-cortexa9-linux-gnueabihf/include)
  171 +# target_link_libraries(
  172 +# ${PROJECT_NAME}
  173 +# ${ROOT_DIRS}/ThirdParty/libusb/arm-cortexa9-linux-gnueabihf/lib/libusb-1.0.so.0
  174 +# )
  175 +
  176 +
  177 +
  178 +# # 链接数学库
  179 +# target_link_libraries(${PROJECT_NAME} m)
  180 +# # 链接C++标准库
  181 +# target_link_libraries(${PROJECT_NAME} stdc++)
  182 +
  183 +
  184 +
  185 +
  186 +# # 使用pkg-config查找FFmpeg相关库
  187 +# find_package(PkgConfig REQUIRED)
  188 +# pkg_check_modules(AVFORMAT REQUIRED libavformat) # 查找avformat模块
  189 +# pkg_check_modules(AVCODEC REQUIRED libavcodec) # 查找avcodec模块
  190 +# pkg_check_modules(AVUTIL REQUIRED libavutil) # 查找avutil模块
  191 +
  192 +# # 添加FFmpeg头文件目录
  193 +# include_directories(${AVFORMAT_INCLUDE_DIRS})
  194 +# include_directories(${AVCODEC_INCLUDE_DIRS})
  195 +# include_directories(${AVUTIL_INCLUDE_DIRS})
  196 +
  197 +# # 链接FFmpeg相关库
  198 +# target_link_libraries(${PROJECT_NAME} ${AVFORMAT_LIBRARIES} ${AVCODEC_LIBRARIES} ${AVUTIL_LIBRARIES})
  199 +# message("\nffmpeg模块加载\n")
  200 +# set(FFMPEG_6_0_DIRS "${ROOT_DIRS}ThirdParty/ffmpeg_6_0/lib/arm-cortexa9-linux-gnueabihf")
  201 +# include_directories(${ROOT_DIRS}ThirdParty/ffmpeg_6_0/include)
  202 +# target_link_libraries(
  203 +# ${PROJECT_NAME}
  204 +# ${FFMPEG_6_0_DIRS}/libavcodec.so.60
  205 +# ${FFMPEG_6_0_DIRS}/libavdevice.so.60
  206 +# ${FFMPEG_6_0_DIRS}/libavfilter.so.9
  207 +# ${FFMPEG_6_0_DIRS}/libavformat.so.60
  208 +# ${FFMPEG_6_0_DIRS}/libavutil.so.58
  209 +# ${FFMPEG_6_0_DIRS}/libpostproc.so.57
  210 +# ${FFMPEG_6_0_DIRS}/libswresample.so.4
  211 +# ${FFMPEG_6_0_DIRS}/libswscale.so.7
  212 +# )
106 213
107 # # 查找OPUS音频编解码库 214 # # 查找OPUS音频编解码库
108 # #find_package(OPUS REQUIRED) 215 # #find_package(OPUS REQUIRED)
@@ -163,49 +270,3 @@ set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../common/3rdparty) @@ -163,49 +270,3 @@ set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../common/3rdparty)
163 # message(STATUS "Cannot Find LIBUSB") 270 # message(STATUS "Cannot Find LIBUSB")
164 # endif (LIBUSB_FOUND) 271 # endif (LIBUSB_FOUND)
165 # 读取本地的libusb 272 # 读取本地的libusb
166 -message("USB库已加载\n")  
167 -include_directories(${ROOT_DIRS}/ThirdParty/libusb/arm-cortexa9-linux-gnueabihf/include)  
168 -target_link_libraries(  
169 - ${PROJECT_NAME}  
170 - ${ROOT_DIRS}/ThirdParty/libusb/arm-cortexa9-linux-gnueabihf/lib/libusb-1.0.so.0  
171 -)  
172 -  
173 -  
174 -# # 使用pkg-config查找FFmpeg相关库  
175 -# find_package(PkgConfig REQUIRED)  
176 -# pkg_check_modules(AVFORMAT REQUIRED libavformat) # 查找avformat模块  
177 -# pkg_check_modules(AVCODEC REQUIRED libavcodec) # 查找avcodec模块  
178 -# pkg_check_modules(AVUTIL REQUIRED libavutil) # 查找avutil模块  
179 -  
180 -# # 添加FFmpeg头文件目录  
181 -# include_directories(${AVFORMAT_INCLUDE_DIRS})  
182 -# include_directories(${AVCODEC_INCLUDE_DIRS})  
183 -# include_directories(${AVUTIL_INCLUDE_DIRS})  
184 -  
185 -# # 链接FFmpeg相关库  
186 -# target_link_libraries(${PROJECT_NAME} ${AVFORMAT_LIBRARIES} ${AVCODEC_LIBRARIES} ${AVUTIL_LIBRARIES})  
187 -# message("\nffmpeg模块加载\n")  
188 -# set(FFMPEG_6_0_DIRS "${ROOT_DIRS}ThirdParty/ffmpeg_6_0/lib/arm-cortexa9-linux-gnueabihf")  
189 -# include_directories(${ROOT_DIRS}ThirdParty/ffmpeg_6_0/include)  
190 -# target_link_libraries(  
191 -# ${PROJECT_NAME}  
192 -# ${FFMPEG_6_0_DIRS}/libavcodec.so.60  
193 -# ${FFMPEG_6_0_DIRS}/libavdevice.so.60  
194 -# ${FFMPEG_6_0_DIRS}/libavfilter.so.9  
195 -# ${FFMPEG_6_0_DIRS}/libavformat.so.60  
196 -# ${FFMPEG_6_0_DIRS}/libavutil.so.58  
197 -# ${FFMPEG_6_0_DIRS}/libpostproc.so.57  
198 -# ${FFMPEG_6_0_DIRS}/libswresample.so.4  
199 -# ${FFMPEG_6_0_DIRS}/libswscale.so.7  
200 -# )  
201 -  
202 -  
203 -# 链接数学库  
204 -target_link_libraries(${PROJECT_NAME} m)  
205 -# 链接C++标准库  
206 -target_link_libraries(${PROJECT_NAME} stdc++)  
207 -  
208 -# 添加预链接自定义命令:在链接前执行cmake ..  
209 -add_custom_command(TARGET ${PROJECT_NAME}  
210 - PRE_LINK COMMAND cmake ..  
211 - WORKING_DIRECTORY ${CMAKE_BINARY_DIR})  
  1 +#include "JZsdkLib.h"
  2 +#include "data_transmission/test_data_transmission.h"
  3 +#include "./JZsdk_Expansion.h"
  4 +
  5 +T_JZsdkReturnCode JZsdk_Expansion_low_data_tran(unsigned char *data ,int len)
  6 +{
  7 + if(DJI_Low_Data_Trans(data,len) == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  8 + {
  9 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  10 + }
  11 +
  12 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  13 +}
1 /** 1 /**
2 ******************************************************************** 2 ********************************************************************
3 - * @file DJI_VideoDeal.h  
4 - * DJI_VideoDeal的头文件 3 + * @file JZsdk_Expansion.h
  4 + * JZsdk_Expansion.c 的头文件
5 * 5 *
6 ********************************************************************* 6 *********************************************************************
7 */ 7 */
8 8
9 /* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/ 9 /* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
10 -#ifndef DJI_VIDEODEAL_H  
11 -#define DJI_VIDEODEAL_H 10 +#ifndef JZSDK_EXPANSION_H
  11 +#define JZSDK_EXPANSION_H
12 12
13 /* Includes ------------------------------------------------------------------*/ 13 /* Includes ------------------------------------------------------------------*/
14 #include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h" 14 #include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
@@ -17,17 +17,14 @@ @@ -17,17 +17,14 @@
17 extern "C" { 17 extern "C" {
18 #endif 18 #endif
19 19
  20 +
20 /* Exported constants --------------------------------------------------------*/ 21 /* Exported constants --------------------------------------------------------*/
21 /* 常亮定义*/ 22 /* 常亮定义*/
22 23
23 /* Exported types ------------------------------------------------------------*/ 24 /* Exported types ------------------------------------------------------------*/
24 25
25 /* Exported functions --------------------------------------------------------*/ 26 /* Exported functions --------------------------------------------------------*/
26 -int DJI_VideoDeal_Push_DJIH264Frame(unsigned char* h264_data, uint32_t data_len);  
27 -int DJI_VideoReplay_input(int command, unsigned int Command_timeMS, char* path);  
28 -int DJI_VideoRecordStart();  
29 -int DJI_VideoRecordClose();  
30 -int DJI_Set_CameraTransStatus(int status); 27 +T_JZsdkReturnCode JZsdk_Expansion_low_data_tran(unsigned char *data ,int len);
31 28
32 29
33 #ifdef __cplusplus 30 #ifdef __cplusplus