作者 ookk303

预设任务更新

正在显示 39 个修改的文件 包含 551 行增加126 行删除
@@ -111,7 +111,10 @@ @@ -111,7 +111,10 @@
111 "jzsdk_framecomparsion_6aframe.h": "c", 111 "jzsdk_framecomparsion_6aframe.h": "c",
112 "jzsdk_uart.h": "c", 112 "jzsdk_uart.h": "c",
113 "audiomange.h": "c", 113 "audiomange.h": "c",
114 - "pcmaudiofile.h": "c" 114 + "pcmaudiofile.h": "c",
  115 + "megaphone_playback.h": "c",
  116 + "audiomange_param.h": "c",
  117 + "jzsdk_platform.h": "c"
115 }, 118 },
116 "Codegeex.GenerationPreference": "automatic", 119 "Codegeex.GenerationPreference": "automatic",
117 "C_Cpp.dimInactiveRegions": false 120 "C_Cpp.dimInactiveRegions": false
1 # 编译链的配置 1 # 编译链的配置
2 2
3 #1、编译链与设备类型的选择 3 #1、编译链与设备类型的选择
4 -set(DEVICE_NAME JZ_H1T) 4 +set(DEVICE_NAME JZ_H10T)
5 #上一行为禁止修改行 5 #上一行为禁止修改行
6 6
7 message("**************************JZSDK构建编译开始***************************\n") 7 message("**************************JZSDK构建编译开始***************************\n")
@@ -56,6 +56,8 @@ typedef void *T_JZsdkMutexHandle; @@ -56,6 +56,8 @@ typedef void *T_JZsdkMutexHandle;
56 typedef void *T_JZsdkSemaHandle; 56 typedef void *T_JZsdkSemaHandle;
57 //文件权柄 57 //文件权柄
58 typedef void *T_JZsdkFileHandle; 58 typedef void *T_JZsdkFileHandle;
  59 +//目录权柄
  60 +typedef void *T_JZsdkDirHandle;
59 61
60 62
61 /* Exported types ------------------------------------------------------------*/ 63 /* Exported types ------------------------------------------------------------*/
@@ -166,7 +166,7 @@ T_JZsdkReturnCode JZsdk_Osal_FileClose(T_JZsdkFileHandle fileObj) @@ -166,7 +166,7 @@ T_JZsdkReturnCode JZsdk_Osal_FileClose(T_JZsdkFileHandle fileObj)
166 返回值:JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS表示写入成功, 166 返回值:JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS表示写入成功,
167 JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE表示写入失败 167 JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE表示写入失败
168 * *******************************/ 168 * *******************************/
169 -T_JZsdkReturnCode JZsdk_Osal_FileWrite(T_JZsdkFileHandle fileObj, const U8_t *buf, U32_t len, U32_t *realLen) 169 +T_JZsdkReturnCode JZsdk_Osal_FileWrite_U8(T_JZsdkFileHandle fileObj, const U8_t *buf, U32_t len, U32_t *realLen)
170 { 170 {
171 int32_t ret; 171 int32_t ret;
172 172
@@ -192,7 +192,7 @@ T_JZsdkReturnCode JZsdk_Osal_FileWrite(T_JZsdkFileHandle fileObj, const U8_t *bu @@ -192,7 +192,7 @@ T_JZsdkReturnCode JZsdk_Osal_FileWrite(T_JZsdkFileHandle fileObj, const U8_t *bu
192 返回值:JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS表示读取成功, 192 返回值:JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS表示读取成功,
193 JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE表示读取失败 193 JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE表示读取失败
194 * *******************************/ 194 * *******************************/
195 -T_JZsdkReturnCode JZsdk_Osal_FileRead(T_JZsdkFileHandle fileObj, U8_t *buf, U32_t len, U32_t *realLen) 195 +T_JZsdkReturnCode JZsdk_Osal_FileRead_U8(T_JZsdkFileHandle fileObj, U8_t *buf, U32_t len, U32_t *realLen)
196 { 196 {
197 int32_t ret; 197 int32_t ret;
198 198
@@ -680,4 +680,81 @@ T_JZsdkReturnCode JZsdk_Sync() @@ -680,4 +680,81 @@ T_JZsdkReturnCode JZsdk_Sync()
680 { 680 {
681 sync(); 681 sync();
682 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 682 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  683 +}
  684 +
  685 +T_JZsdkReturnCode JZsdk_Osal_DirOpen(const char *filePath, T_JZsdkDirHandle *dirObj)
  686 +{
  687 + if (filePath == NULL) {
  688 + return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER;
  689 + }
  690 +
  691 + *dirObj = opendir(filePath);
  692 + if (*dirObj == NULL) {
  693 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  694 + }
  695 +
  696 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  697 +}
  698 +
  699 +T_JZsdkReturnCode JZsdk_Osal_DirClose(T_JZsdkDirHandle dirObj)
  700 +{
  701 + int32_t ret;
  702 +
  703 + if (dirObj == NULL) {
  704 + return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER;
  705 + }
  706 +
  707 + ret = closedir((DIR *) dirObj);
  708 + if (ret < 0) {
  709 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  710 + }
  711 +
  712 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  713 +}
  714 +
  715 +T_JZsdkReturnCode JZsdk_Osal_DirRead(T_JZsdkDirHandle dirObj, T_JZsdkFileInfo *fileInfo)
  716 +{
  717 + struct dirent *dirent;
  718 +
  719 + if (dirObj == NULL || fileInfo == NULL) {
  720 + return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER;
  721 + }
  722 +
  723 + dirent = readdir((DIR *) dirObj);
  724 + if (!dirent) {
  725 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  726 + }
  727 +
  728 + if (dirent->d_type == DT_DIR) {
  729 + fileInfo->isDir = true;
  730 + } else {
  731 + fileInfo->isDir = false;
  732 + }
  733 + strcpy(fileInfo->path, dirent->d_name);
  734 +
  735 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  736 +}
  737 +
  738 +
  739 +T_JZsdkReturnCode JZsdk_Osal_Unlink(const char *filePath)
  740 +{
  741 + int32_t ret;
  742 +
  743 + if (filePath == NULL) {
  744 + return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER;
  745 + }
  746 +
  747 + if (filePath[strlen(filePath) - 1] == '/') {
  748 + ret = rmdir(filePath);
  749 + if (ret < 0) {
  750 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  751 + }
  752 + } else {
  753 + ret = unlink(filePath);
  754 + if (ret < 0) {
  755 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  756 + }
  757 + }
  758 +
  759 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
683 } 760 }
@@ -22,6 +22,59 @@ extern "C" { @@ -22,6 +22,59 @@ extern "C" {
22 /* Exported constants --------------------------------------------------------*/ 22 /* Exported constants --------------------------------------------------------*/
23 /* 常亮定义*/ 23 /* 常亮定义*/
24 24
  25 +/*
  26 + 用途:用于读取文件内容。
  27 + 权限:只允许读取文件,不允许写入或修改文件内容。
  28 + 文件存在性:如果文件不存在,打开操作会失败,并返回一个错误。
  29 + 文件指针位置:文件打开后,文件指针位于文件的开头。
  30 +*/
  31 +#define FS_ONLY_READ "rb"
  32 +
  33 +/*
  34 + 用途:用于读取和写入文件内容。
  35 + 权限:允许读取和写入文件内容。
  36 + 文件存在性:如果文件不存在,打开操作会失败,并返回一个错误。
  37 + 文件指针位置:文件打开后,文件指针位于文件的开头。
  38 + 注意事项:在写入文件时,会覆盖文件中对应位置的内容,但不会删除文件的其他内容。
  39 +*/
  40 +#define FS_READ_AND_WRITE "r+b"
  41 +
  42 +/*
  43 + 用途:用于写入文件内容。
  44 + 权限:只允许写入文件内容,不允许读取。
  45 + 文件存在性:如果文件存在,其内容会被清空;如果文件不存在,会创建一个新文件。
  46 + 文件指针位置:文件打开后,文件指针位于文件的开头,准备写入新内容。
  47 + 注意事项:使用w模式打开文件时,会丢失文件中的原有内容。
  48 +*/
  49 +#define FS_ONLT_WRITE "wb"
  50 +
  51 +/*
  52 + 用途:用于读取和写入文件内容,但会先清空文件。
  53 + 权限:允许读取和写入文件内容。
  54 + 文件存在性:如果文件存在,其内容会被清空;如果文件不存在,会创建一个新文件。
  55 + 文件指针位置:文件打开后,文件指针位于文件的开头,准备写入新内容。
  56 + 注意事项:使用w+模式打开文件时,会丢失文件中的原有内容。但在写入新内容后,仍然可以读取文件内容。
  57 +*/
  58 +#define FS_READ_AND_WRITE_CLEAR "w+b"
  59 +
  60 +/*
  61 + 用途:用于在文件末尾追加内容。
  62 + 权限:只允许写入文件内容,不允许读取。
  63 + 文件存在性:如果文件存在,写入操作会追加到文件末尾;如果文件不存在,会创建一个新文件。
  64 + 文件指针位置:文件打开后,文件指针位于文件末尾,准备追加新内容。
  65 +*/
  66 +#define FS_APPEND "ab"
  67 +
  68 +/*
  69 + 用途:用于读取和写入文件内容,但写入操作会追加到文件末尾。
  70 + 权限:允许读取和写入文件内容。
  71 + 文件存在性:如果文件存在,写入操作会追加到文件末尾;如果文件不存在,会创建一个新文件。
  72 + 文件指针位置:文件打开后,文件指针位于文件末尾,但可以通过fseek等函数移动到文件的其他位置进行读取或写入。
  73 +*/
  74 +#define FS_READ_AND_APPEND "a+b"
  75 +
  76 +
  77 +
25 /* Exported types ------------------------------------------------------------*/ 78 /* Exported types ------------------------------------------------------------*/
26 79
27 80
@@ -47,12 +100,18 @@ T_JZsdkReturnCode JZsdk_Osal_Rename(const char *oldFilePath, const char *newFile @@ -47,12 +100,18 @@ T_JZsdkReturnCode JZsdk_Osal_Rename(const char *oldFilePath, const char *newFile
47 100
48 T_JZsdkReturnCode JZsdk_Osal_FileOpen(const char *fileName, const char *fileMode, T_JZsdkFileHandle *fileObj); 101 T_JZsdkReturnCode JZsdk_Osal_FileOpen(const char *fileName, const char *fileMode, T_JZsdkFileHandle *fileObj);
49 T_JZsdkReturnCode JZsdk_Osal_FileClose(T_JZsdkFileHandle fileObj); 102 T_JZsdkReturnCode JZsdk_Osal_FileClose(T_JZsdkFileHandle fileObj);
50 -T_JZsdkReturnCode JZsdk_Osal_FileWrite(T_JZsdkFileHandle fileObj, const U8_t *buf, U32_t len, U32_t *realLen);  
51 -T_JZsdkReturnCode JZsdk_Osal_FileRead(T_JZsdkFileHandle fileObj, U8_t *buf, U32_t len, U32_t *realLen); 103 +T_JZsdkReturnCode JZsdk_Osal_FileWrite_U8(T_JZsdkFileHandle fileObj, const U8_t *buf, U32_t len, U32_t *realLen);
  104 +T_JZsdkReturnCode JZsdk_Osal_FileRead_U8(T_JZsdkFileHandle fileObj, U8_t *buf, U32_t len, U32_t *realLen);
52 T_JZsdkReturnCode JZsdk_Osal_FileSeek(T_JZsdkFileHandle fileObj, U32_t offset); 105 T_JZsdkReturnCode JZsdk_Osal_FileSeek(T_JZsdkFileHandle fileObj, U32_t offset);
53 T_JZsdkReturnCode JZsdk_Osal_FileSync(T_JZsdkFileHandle fileObj); 106 T_JZsdkReturnCode JZsdk_Osal_FileSync(T_JZsdkFileHandle fileObj);
54 107
55 108
  109 +T_JZsdkReturnCode JZsdk_Osal_DirOpen(const char *filePath, T_JZsdkDirHandle *dirObj);
  110 +T_JZsdkReturnCode JZsdk_Osal_DirClose(T_JZsdkDirHandle dirObj);
  111 +T_JZsdkReturnCode JZsdk_Osal_DirRead(T_JZsdkDirHandle dirObj, T_JZsdkFileInfo *fileInfo);
  112 +T_JZsdkReturnCode JZsdk_Osal_Unlink(const char *filePath);
  113 +
  114 +
56 #ifdef __cplusplus 115 #ifdef __cplusplus
57 } 116 }
58 #endif 117 #endif
@@ -4,7 +4,8 @@ @@ -4,7 +4,8 @@
4 4
5 5
6 6
7 -static T_JZsdkOsalHandler* g_osalHandler = NULL; 7 +static T_JZsdkOsalHandler *g_osalHandler = NULL;
  8 +static T_JZsdkFSHandler *g_FsHandler = NULL;
8 9
9 static T_JZsdkReturnCode JZsdk_Platform_RegOsalHandler(const T_JZsdkOsalHandler *osalHandler) 10 static T_JZsdkReturnCode JZsdk_Platform_RegOsalHandler(const T_JZsdkOsalHandler *osalHandler)
10 { 11 {
@@ -23,6 +24,25 @@ T_JZsdkOsalHandler *JZsdk_Platform_GetOsalHandler(void) @@ -23,6 +24,25 @@ T_JZsdkOsalHandler *JZsdk_Platform_GetOsalHandler(void)
23 return g_osalHandler; // 返回已注册的 OSAL 处理器 24 return g_osalHandler; // 返回已注册的 OSAL 处理器
24 } 25 }
25 26
  27 +
  28 +static T_JZsdkReturnCode JZsdk_RegFsHandler(const T_JZsdkFSHandler *FsHandler)
  29 +{
  30 + g_FsHandler = malloc(sizeof(T_JZsdkFSHandler));
  31 + if (g_FsHandler == NULL) {
  32 + return JZ_ERROR_SYSTEM_MODULE_CODE_MEMORY_ALLOC_FAILED; // 处理内存分配失败的情况
  33 + }
  34 +
  35 + memcpy(g_FsHandler, FsHandler, sizeof(T_JZsdkFSHandler));
  36 +
  37 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  38 +}
  39 +
  40 +T_JZsdkFSHandler *JZsdk_GetFsHandler(void)
  41 +{
  42 + return g_FsHandler; // 返回已注册的 FS 处理器
  43 +}
  44 +
  45 +
26 T_JZsdkReturnCode JZsdk_OsalInit() 46 T_JZsdkReturnCode JZsdk_OsalInit()
27 { 47 {
28 T_JZsdkOsalHandler osalHandler = { 48 T_JZsdkOsalHandler osalHandler = {
@@ -45,7 +65,27 @@ T_JZsdkReturnCode JZsdk_OsalInit() @@ -45,7 +65,27 @@ T_JZsdkReturnCode JZsdk_OsalInit()
45 .GetRandomNum = JZsdk_Osal_GetRandomNum, 65 .GetRandomNum = JZsdk_Osal_GetRandomNum,
46 }; 66 };
47 67
  68 + T_JZsdkFSHandler fileSystemHandler = {
  69 + .FileOpen = JZsdk_Osal_FileOpen,
  70 + .FileClose = JZsdk_Osal_FileClose,
  71 + .FileWrite_U8 = JZsdk_Osal_FileWrite_U8,
  72 + .FileRead_U8 = JZsdk_Osal_FileRead_U8,
  73 + .FileSync = JZsdk_Osal_FileSync,
  74 + .FileSeek = JZsdk_Osal_FileSeek,
  75 + .DirOpen = JZsdk_Osal_DirOpen,
  76 + .DirClose = JZsdk_Osal_DirClose,
  77 + .DirRead = JZsdk_Osal_DirRead,
  78 + .Mkdir = JZsdk_Osal_Mkdir,
  79 + .Unlink = JZsdk_Osal_Unlink,
  80 + .Rename = JZsdk_Osal_Rename,
  81 + .Stat = JZsdk_Osal_Stat,
  82 + };
  83 +
48 JZsdk_Platform_RegOsalHandler(&osalHandler); 84 JZsdk_Platform_RegOsalHandler(&osalHandler);
  85 + printf("JZsdk Osal handler registered\n");
  86 +
  87 + JZsdk_RegFsHandler(&fileSystemHandler);
  88 + printf("JZsdk File system handler registered\n");
49 89
50 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 90 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
51 } 91 }
@@ -73,6 +73,40 @@ typedef struct { @@ -73,6 +73,40 @@ typedef struct {
73 } T_JZsdkOsalHandler; 73 } T_JZsdkOsalHandler;
74 74
75 75
  76 +/****************
  77 + *
  78 + * filesysterm 文件系统权柄
  79 + *
  80 + *
  81 + * ******************/
  82 +typedef struct {
  83 + T_JZsdkReturnCode (*FileOpen)(const char *fileName, const char *fileMode, T_JZsdkFileHandle *fileObj);
  84 +
  85 + T_JZsdkReturnCode (*FileClose)(T_JZsdkFileHandle fileObj);
  86 +
  87 + T_JZsdkReturnCode (*FileWrite_U8)(T_JZsdkFileHandle fileObj, const U8_t *buf, U32_t len, U32_t *realLen);
  88 +
  89 + T_JZsdkReturnCode (*FileRead_U8)(T_JZsdkFileHandle fileObj, U8_t *buf, U32_t len, U32_t *realLen);
  90 +
  91 + T_JZsdkReturnCode (*FileSeek)(T_JZsdkFileHandle fileObj, U32_t offset);
  92 +
  93 + T_JZsdkReturnCode (*FileSync)(T_JZsdkFileHandle fileObj);
  94 +
  95 + T_JZsdkReturnCode (*DirOpen)(const char *filePath, T_JZsdkDirHandle *dirObj);
  96 +
  97 + T_JZsdkReturnCode (*DirClose)(T_JZsdkDirHandle dirObj);
  98 +
  99 + T_JZsdkReturnCode (*DirRead)(T_JZsdkDirHandle dirObj, T_JZsdkFileInfo *fileInfo);
  100 +
  101 + T_JZsdkReturnCode (*Mkdir)(const char *filePath);
  102 +
  103 + T_JZsdkReturnCode (*Unlink)(const char *filePath);
  104 +
  105 + T_JZsdkReturnCode (*Rename)(const char *oldFilePath, const char *newFilePath);
  106 +
  107 + T_JZsdkReturnCode (*Stat)(const char *filePath, T_JZsdkFileInfo *fileInfo);
  108 +} T_JZsdkFSHandler;
  109 +
76 110
77 /* Exported macro ------------------------------------------------------------*/ 111 /* Exported macro ------------------------------------------------------------*/
78 112
@@ -83,6 +117,7 @@ typedef struct { @@ -83,6 +117,7 @@ typedef struct {
83 /* Exported functions --------------------------------------------------------*/ 117 /* Exported functions --------------------------------------------------------*/
84 T_JZsdkReturnCode JZsdk_OsalInit(); 118 T_JZsdkReturnCode JZsdk_OsalInit();
85 T_JZsdkOsalHandler *JZsdk_Platform_GetOsalHandler(void); 119 T_JZsdkOsalHandler *JZsdk_Platform_GetOsalHandler(void);
  120 +T_JZsdkFSHandler *JZsdk_GetFsHandler(void);
86 121
87 122
88 #ifdef __cplusplus 123 #ifdef __cplusplus
@@ -21,6 +21,7 @@ @@ -21,6 +21,7 @@
21 #include "MediaProc/MediaProc.h" 21 #include "MediaProc/MediaProc.h"
22 #include "UI_control/WidegMgmt/JZsdk_Widget.h" 22 #include "UI_control/WidegMgmt/JZsdk_Widget.h"
23 #include "DeviceConfig/DeviceConfig.h" 23 #include "DeviceConfig/DeviceConfig.h"
  24 +#include "CommonMod/CommonMod.h"
24 25
25 #include "JZsdk_Hal.h" 26 #include "JZsdk_Hal.h"
26 27
@@ -210,7 +211,7 @@ T_JZsdkReturnCode Main_APP_Psdk() @@ -210,7 +211,7 @@ T_JZsdkReturnCode Main_APP_Psdk()
210 211
211 //4g设备初始化 212 //4g设备初始化
212 value[0] = COMM_4G_UART_BITRATE; 213 value[0] = COMM_4G_UART_BITRATE;
213 - JZsdk_HalPort_Init(UART_DEV_1, value); 214 + JZsdk_HalPort_Init(UART_4G, value);
214 215
215 //喊话器初始化 216 //喊话器初始化
216 Megaphone_Init(); 217 Megaphone_Init();
@@ -229,7 +230,7 @@ T_JZsdkReturnCode Main_APP_Psdk() @@ -229,7 +230,7 @@ T_JZsdkReturnCode Main_APP_Psdk()
229 { 230 {
230 //4g设备初始化 231 //4g设备初始化
231 value[0] = COMM_4G_UART_BITRATE; 232 value[0] = COMM_4G_UART_BITRATE;
232 - JZsdk_HalPort_Init(UART_DEV_1, value); 233 + JZsdk_HalPort_Init(UART_4G, value);
233 } 234 }
234 235
235 //喊话器初始化 236 //喊话器初始化
@@ -263,7 +264,7 @@ T_JZsdkReturnCode Main_APP_Psdk() @@ -263,7 +264,7 @@ T_JZsdkReturnCode Main_APP_Psdk()
263 264
264 //4g设备初始化 265 //4g设备初始化
265 value[0] = COMM_4G_UART_BITRATE; 266 value[0] = COMM_4G_UART_BITRATE;
266 - JZsdk_HalPort_Init(UART_DEV_1, value); 267 + JZsdk_HalPort_Init(UART_4G, value);
267 268
268 //喊话器初始化 269 //喊话器初始化
269 Megaphone_Init(); 270 Megaphone_Init();
@@ -672,7 +673,7 @@ int Main_TestAPP() @@ -672,7 +673,7 @@ int Main_TestAPP()
672 673
673 //串口设备1初始化 674 //串口设备1初始化
674 value[0] = UART_DEV1_BITRATE; 675 value[0] = UART_DEV1_BITRATE;
675 - JZsdk_HalPort_Init(UART_4G, value); 676 + JZsdk_HalPort_Init(UART_DEV_1, value);
676 } 677 }
677 678
678 //JZ_FLAGCODE_GET为返回工作值,其他值为设置 679 //JZ_FLAGCODE_GET为返回工作值,其他值为设置
@@ -77,7 +77,7 @@ T_JZsdkReturnCode JZsdk_ParamterParsing(int argc, char *argv[], unsigned int *mo @@ -77,7 +77,7 @@ T_JZsdkReturnCode JZsdk_ParamterParsing(int argc, char *argv[], unsigned int *mo
77 int insCode = 0; //指令码 77 int insCode = 0; //指令码
78 78
79 //获取短选项 79 //获取短选项
80 - static char *opt_storage = "t:f:"; 80 + static char *opt_storage = "t:f:d:b";
81 81
82 //解析参数 82 //解析参数
83 while (1) 83 while (1)
@@ -7,19 +7,19 @@ @@ -7,19 +7,19 @@
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_H1T 10 +#define DEVICE_VERSION JZ_H10T
11 11
12 //禁止修改行 选择是串口程序 还是 psdk程序 12 //禁止修改行 选择是串口程序 还是 psdk程序
13 -#define APP_VERSION APP_UART 13 +#define APP_VERSION APP_PSDK
14 14
15 //禁止修改行 板子型号 15 //禁止修改行 板子型号
16 #define PLATFORM_VERSION PLATFORM_V3S 16 #define PLATFORM_VERSION PLATFORM_V3S
17 17
18 //禁止修改行 串口连接程序的软件版本号 18 //禁止修改行 串口连接程序的软件版本号
19 -#define MAJOR_VERSION 0x00  
20 -#define MINOR_VERSION 0x00  
21 -#define MODIFY_VERSION 0x02  
22 -#define DEBUG_VERSION 0x13 19 +#define MAJOR_VERSION 0x01
  20 +#define MINOR_VERSION 0x03
  21 +#define MODIFY_VERSION 0x10
  22 +#define DEBUG_VERSION 0x00
23 23
24 //禁止修改行 滤波方式 24 //禁止修改行 滤波方式
25 #define FILTERING_TYPE HIGH_PASS_FILTERING 25 #define FILTERING_TYPE HIGH_PASS_FILTERING
@@ -82,6 +82,11 @@ T_JZsdkReturnCode JZsdk_Hal_Init() @@ -82,6 +82,11 @@ T_JZsdkReturnCode JZsdk_Hal_Init()
82 * *********************/ 82 * *********************/
83 int JZsdk_HalPort_UseFlag(int PortName) 83 int JZsdk_HalPort_UseFlag(int PortName)
84 { 84 {
  85 + if(g_HalInfo == NULL)
  86 + {
  87 + return JZ_FLAGCODE_OFF;
  88 + }
  89 +
85 return g_HalInfo->HalPort[PortName].UseFlag; 90 return g_HalInfo->HalPort[PortName].UseFlag;
86 } 91 }
87 92
  1 +#include "JZsdkLib.h"
  2 +
  3 +#include "BaseConfig.h"
  4 +
  5 +#define PRESET_TASK_FALG_PATH "/root/preset_task_flag"
  6 +
  7 +static U8_t g_PrsetTask_Flag = JZ_FLAGCODE_OFF; //预设任务的开启标志位
  8 +static U8_t g_PrsetTask_FinishFlag = JZ_FLAGCODE_OFF; //预设任务执行步骤
  9 +
  10 +/*******************
  11 + *
  12 + * 创建一个预设任务
  13 + *
  14 + *
  15 + * ***************/
  16 +T_JZsdkReturnCode PrsetTask_CreatePrsetTask()
  17 +{
  18 + T_JZsdkReturnCode ret;
  19 +
  20 +
  21 +
  22 +#ifdef MEGAPHONE_CONFIG_STATUS_ON
  23 +
  24 + JZSDK_LOG_INFO("喊话器配置已已打开,创建一个喊话器预设任务");
  25 +
  26 +#endif
  27 +
  28 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  29 +}
  30 +
  31 +/*******************
  32 + *
  33 + * 开启关闭预设任务
  34 + *
  35 + * ***************/
  36 +T_JZsdkReturnCode PrsetTask_SetPrsetTaskFlag(U8_t flag)
  37 +{
  38 + T_JZsdkReturnCode ret;
  39 + int realLen;
  40 +
  41 + T_JZsdkFSHandler *FSHandler = JZsdk_Platform_GetFSHandler();
  42 + T_JZsdkFileHandle FileHandle;
  43 +
  44 + ret = FSHandler->FileOpen(PRESET_TASK_FALG_PATH, FS_READ_AND_WRITE_CLEAR, &FileHandle);
  45 + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  46 + {
  47 + JZSDK_LOG_ERROR("预设任务标志位文件打开失败");
  48 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  49 + }
  50 +
  51 + ret = FSHandler->FileWrite_U8(FileHandle, &flag, 1, &realLen);
  52 + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  53 + {
  54 + JZSDK_LOG_ERROR("预设任务标志位写入失败");
  55 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  56 + }
  57 +
  58 + ret = FSHandler->FileClose(FileHandle);
  59 + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  60 + {
  61 + JZSDK_LOG_ERROR("预设任务标志位文件关闭失败");
  62 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  63 + }
  64 +
  65 + //将开启关闭放入
  66 + g_PrsetTask_Flag = flag;
  67 +
  68 + if ()
  69 + {
  70 + /* code */
  71 + }
  72 +
  73 +
  74 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  75 +}
  76 +
  77 +T_JZsdkReturnCode PrsetTask_Init()
  78 +{
  79 + T_JZsdkReturnCode ret;
  80 + int realLen;
  81 +
  82 + T_JZsdkOsalHandler *OsalHandler = JZsdk_Platform_GetOsalHandler();
  83 + T_JZsdkFSHandler *FSHandler = JZsdk_Platform_GetFSHandler();
  84 +
  85 + //1、读取本地的预设任务标志位
  86 + T_JZsdkFileHandle FileHandle;
  87 + ret = FSHandler->FileOpen(PRESET_TASK_FALG_PATH, FS_ONLY_READ, &FileHandle);
  88 + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  89 + {
  90 + JZSDK_LOG_ERROR("预设任务标志位获取失败,没有预设的任务");
  91 + ret = FSHandler->FileOpen(PRESET_TASK_FALG_PATH, FS_READ_AND_WRITE_CLEAR, &FileHandle);
  92 + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  93 + {
  94 + JZSDK_LOG_ERROR("预设任务标志位文件创建失败");
  95 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  96 + }
  97 +
  98 + ret = FSHandler->FileWrite_U8(FileHandle, &g_PrsetTask_Flag, 1, &realLen);
  99 + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  100 + {
  101 + JZSDK_LOG_ERROR("预设任务标志位写入失败");
  102 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  103 + }
  104 +
  105 + g_PrsetTask_Flag = JZ_FLAGCODE_OFF;
  106 + return ret;
  107 + }
  108 +
  109 + //2、读取标志位
  110 + ret = FSHandler->FileRead_U8(FileHandle, &g_PrsetTask_Flag, 1, &realLen);
  111 + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  112 + {
  113 + JZSDK_LOG_ERROR("预设任务标志位读取失败");
  114 + g_PrsetTask_Flag = JZ_FLAGCODE_OFF;
  115 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  116 + }
  117 +
  118 + //3、关闭文件
  119 + ret = FSHandler->FileClose(FileHandle);
  120 + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  121 + {
  122 + JZSDK_LOG_ERROR("预设任务标志位文件关闭失败");
  123 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  124 + }
  125 +
  126 + return ret;
  127 +}
@@ -852,7 +852,7 @@ static void *MixedVideo_Thread(void *args) @@ -852,7 +852,7 @@ static void *MixedVideo_Thread(void *args)
852 * 852 *
853 * 853 *
854 * ********************/ 854 * ********************/
855 -static JZC1_MixedVideo_Init() 855 +static T_JZsdkReturnCode JZC1_MixedVideo_Init()
856 { 856 {
857 g_MixedIrc_Buffer = (unsigned char *)malloc(JZ_ALIGN(FIRST_WIDTH, 16)*JZ_ALIGN(FIRST_HEIGHT, 16)*3/2); 857 g_MixedIrc_Buffer = (unsigned char *)malloc(JZ_ALIGN(FIRST_WIDTH, 16)*JZ_ALIGN(FIRST_HEIGHT, 16)*3/2);
858 g_MixedOpt_Buffer = (unsigned char *)malloc(JZ_ALIGN(SECOND_WIDTH, 16)*JZ_ALIGN(SECOND_HEIGHT, 16)*3/2); 858 g_MixedOpt_Buffer = (unsigned char *)malloc(JZ_ALIGN(SECOND_WIDTH, 16)*JZ_ALIGN(SECOND_HEIGHT, 16)*3/2);
@@ -838,12 +838,14 @@ static T_JZsdkReturnCode Gimbal_Init_IndependentControl() @@ -838,12 +838,14 @@ static T_JZsdkReturnCode Gimbal_Init_IndependentControl()
838 { 838 {
839 g_Gimbal_Mode = JZ_MODULE_CONTROL_WAY_INDEPENDENT; 839 g_Gimbal_Mode = JZ_MODULE_CONTROL_WAY_INDEPENDENT;
840 840
841 -  
842 //舵机初始化 841 //舵机初始化
843 Gimal_MotorInit(); 842 Gimal_MotorInit();
844 843
845 //云台微调初始化 844 //云台微调初始化
846 MotorFineTuning_Init(&g_MotorFineTuningPitch, &g_MotorFineTuningYaw, &g_MotorFineTuningRoll); 845 MotorFineTuning_Init(&g_MotorFineTuningPitch, &g_MotorFineTuningYaw, &g_MotorFineTuningRoll);
  846 +
  847 + //云台角度初始化
  848 + Gimbal_Flush_Pitch();
847 849
848 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 850 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
849 } 851 }
@@ -8,6 +8,7 @@ @@ -8,6 +8,7 @@
8 #include "JZsdk_TaskManagement/TaskManagement.h" 8 #include "JZsdk_TaskManagement/TaskManagement.h"
9 #include "Gimbal_SpecialUart/Gimbal_SpecialUart.h" 9 #include "Gimbal_SpecialUart/Gimbal_SpecialUart.h"
10 #include "../Gimbal_Param.h" 10 #include "../Gimbal_Param.h"
  11 +#include "Gimbal/Gimbal.h"
11 12
12 #include "Hal_Send/HalSend.h" 13 #include "Hal_Send/HalSend.h"
13 #include "JZsdk_uart/JZsdk_Uart.h" 14 #include "JZsdk_uart/JZsdk_Uart.h"
@@ -211,51 +212,69 @@ T_JZsdkReturnCode Gimbal_DataDeal_SetPitchRange(int Range) @@ -211,51 +212,69 @@ T_JZsdkReturnCode Gimbal_DataDeal_SetPitchRange(int Range)
211 212
212 //因为PWM写的时候是按90度写的,所以分母是900,不是设定的600 213 //因为PWM写的时候是按90度写的,所以分母是900,不是设定的600
213 int base_offset = g_Gimbal_Pitch_BaseOffset; 214 int base_offset = g_Gimbal_Pitch_BaseOffset;
214 - 215 +
215 //先通过角度 得出目前的PWM值 216 //先通过角度 得出目前的PWM值
216 int angle = Gimbal_Get_PitchRealPitchAngle(); 217 int angle = Gimbal_Get_PitchRealPitchAngle();
217 218
218 //在最大的角度弄的 219 //在最大的角度弄的
219 if (Range == 0xFF) 220 if (Range == 0xFF)
220 { 221 {
221 - //先得出目前pwm值  
222 - int angle_PWM = 820 + base_offset + (angle * (120)/(MAX_PITCH - MIN_PITCH)); //820是0度  
223 -  
224 - //通过最大值的计算方式 得出新的offset值  
225 - //g_Gimbal_Pitch_BaseOffset = angle_PWM - ((MAX_PITCH*195)/(MAX_PITCH - MIN_PITCH)) - base_offset;  
226 - g_Gimbal_Pitch_BaseOffset = angle_PWM - 820 - ((MAX_PITCH*120)/(MAX_PITCH - MIN_PITCH)) - base_offset;  
227 -  
228 - //下限600,上限830  
229 - if (g_Gimbal_Pitch_BaseOffset <= - 100)  
230 - {  
231 - g_Gimbal_Pitch_BaseOffset = - 100;  
232 - }  
233 - else if (g_Gimbal_Pitch_BaseOffset >= 20)  
234 - {  
235 - g_Gimbal_Pitch_BaseOffset = 20;  
236 - } 222 + g_Gimbal_Pitch_BaseOffset++;
237 } 223 }
238 -  
239 //在最小的角度弄的 224 //在最小的角度弄的
240 else if (Range == 0x00) 225 else if (Range == 0x00)
241 { 226 {
242 - //先通过角度 得出目前的PWM值  
243 - int angle = Gimbal_Get_PitchRealPitchAngle();  
244 - int angle_PWM = 820 + base_offset + (angle * (120)/(900)); //820是0度 227 + g_Gimbal_Pitch_BaseOffset--;
  228 + }
245 229
246 - //通过最小值的计算方式 得出offset值  
247 - g_Gimbal_Pitch_BaseOffset = angle_PWM - 820 - ((MAX_PITCH*120)/(MAX_PITCH - MIN_PITCH)) - base_offset;  
248 230
249 - //下限600,上限830  
250 - if (g_Gimbal_Pitch_BaseOffset <= - 100)  
251 - {  
252 - g_Gimbal_Pitch_BaseOffset = - 100;  
253 - }  
254 - else if (g_Gimbal_Pitch_BaseOffset >= 20)  
255 - {  
256 - g_Gimbal_Pitch_BaseOffset = 20;  
257 - }  
258 - } 231 + // //因为PWM写的时候是按90度写的,所以分母是900,不是设定的600
  232 + // int base_offset = g_Gimbal_Pitch_BaseOffset;
  233 +
  234 + // //先通过角度 得出目前的PWM值
  235 + // int angle = Gimbal_Get_PitchRealPitchAngle();
  236 +
  237 + // //在最大的角度弄的
  238 + // if (Range == 0xFF)
  239 + // {
  240 + // //先得出目前pwm值
  241 + // int angle_PWM = 820 + base_offset + (angle * (120)/(MAX_PITCH - MIN_PITCH)); //820是0度
  242 +
  243 + // //通过最大值的计算方式 得出新的offset值
  244 + // //g_Gimbal_Pitch_BaseOffset = angle_PWM - ((MAX_PITCH*195)/(MAX_PITCH - MIN_PITCH)) - base_offset;
  245 + // g_Gimbal_Pitch_BaseOffset = angle_PWM - 820 - ((MAX_PITCH*120)/(MAX_PITCH - MIN_PITCH)) - base_offset;
  246 +
  247 + // //下限600,上限830
  248 + // if (g_Gimbal_Pitch_BaseOffset <= - 100)
  249 + // {
  250 + // g_Gimbal_Pitch_BaseOffset = - 100;
  251 + // }
  252 + // else if (g_Gimbal_Pitch_BaseOffset >= 20)
  253 + // {
  254 + // g_Gimbal_Pitch_BaseOffset = 20;
  255 + // }
  256 + // }
  257 +
  258 + // //在最小的角度弄的
  259 + // else if (Range == 0x00)
  260 + // {
  261 + // //先通过角度 得出目前的PWM值
  262 + // int angle = Gimbal_Get_PitchRealPitchAngle();
  263 + // int angle_PWM = 820 + base_offset + (angle * (120)/(900)); //820是0度
  264 +
  265 + // //通过最小值的计算方式 得出offset值
  266 + // g_Gimbal_Pitch_BaseOffset = angle_PWM - 820 - ((MAX_PITCH*120)/(MAX_PITCH - MIN_PITCH)) - base_offset;
  267 +
  268 + // //下限600,上限830
  269 + // if (g_Gimbal_Pitch_BaseOffset <= - 100)
  270 + // {
  271 + // g_Gimbal_Pitch_BaseOffset = - 100;
  272 + // }
  273 + // else if (g_Gimbal_Pitch_BaseOffset >= 20)
  274 + // {
  275 + // g_Gimbal_Pitch_BaseOffset = 20;
  276 + // }
  277 + // }
259 278
260 JZSDK_LOG_INFO("设置pitch的offset值:%d",g_Gimbal_Pitch_BaseOffset); 279 JZSDK_LOG_INFO("设置pitch的offset值:%d",g_Gimbal_Pitch_BaseOffset);
261 280
@@ -292,10 +311,10 @@ static T_JZsdkReturnCode Gimbal_DataDeal_Read_PitchBaseOffset(int *offset) @@ -292,10 +311,10 @@ static T_JZsdkReturnCode Gimbal_DataDeal_Read_PitchBaseOffset(int *offset)
292 { 311 {
293 FILE *fp = NULL; 312 FILE *fp = NULL;
294 313
295 - fp = fopen(PITCH_OFFSET_FILE_PATH, "rb+"); 314 + fp = fopen(PITCH_OFFSET_FILE_PATH, "r+b");
296 if (fp == NULL) 315 if (fp == NULL)
297 { 316 {
298 - fp = fopen(PITCH_OFFSET_FILE_PATH, "wb+"); 317 + fp = fopen(PITCH_OFFSET_FILE_PATH, "w+b");
299 if (fp == NULL) 318 if (fp == NULL)
300 { 319 {
301 *offset = 0; 320 *offset = 0;
@@ -319,9 +338,8 @@ static T_JZsdkReturnCode Gimbal_DataDeal_Read_PitchBaseOffset(int *offset) @@ -319,9 +338,8 @@ static T_JZsdkReturnCode Gimbal_DataDeal_Read_PitchBaseOffset(int *offset)
319 } 338 }
320 else 339 else
321 { 340 {
322 - JZSDK_LOG_ERROR("Pitch BaseOffset=%d",*offset);  
323 - *offset = 0;  
324 - return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; 341 + JZSDK_LOG_INFO("Pitch BaseOffset=%d",*offset);
  342 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
325 } 343 }
326 } 344 }
327 345
@@ -337,7 +355,7 @@ static T_JZsdkReturnCode Gimbal_DataDeal_Write_PitchBaseOffset(int offset) @@ -337,7 +355,7 @@ static T_JZsdkReturnCode Gimbal_DataDeal_Write_PitchBaseOffset(int offset)
337 { 355 {
338 FILE *fp = NULL; 356 FILE *fp = NULL;
339 357
340 - fp = fopen(PITCH_OFFSET_FILE_PATH, "wb+"); 358 + fp = fopen(PITCH_OFFSET_FILE_PATH, "w+b");
341 if (fp == NULL) 359 if (fp == NULL)
342 { 360 {
343 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; 361 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
@@ -353,6 +371,8 @@ static T_JZsdkReturnCode Gimbal_DataDeal_Write_PitchBaseOffset(int offset) @@ -353,6 +371,8 @@ static T_JZsdkReturnCode Gimbal_DataDeal_Write_PitchBaseOffset(int offset)
353 JZSDK_LOG_DEBUG("Pitch BaseOffset=%d\n",offset); 371 JZSDK_LOG_DEBUG("Pitch BaseOffset=%d\n",offset);
354 } 372 }
355 373
  374 + fflush(fp);
  375 +
356 fclose(fp); 376 fclose(fp);
357 377
358 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 378 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
@@ -156,7 +156,7 @@ int V3s_PWM_contrl(int PWM_num) @@ -156,7 +156,7 @@ int V3s_PWM_contrl(int PWM_num)
156 (*pwm_base_map) &= ~((uint32_t)1 << 19); //先将第4位置0 ---> disable 156 (*pwm_base_map) &= ~((uint32_t)1 << 19); //先将第4位置0 ---> disable
157 (*pwm_base_map) |= (uint32_t)1 << 19; //将第4位置1 ---> enable pwm1 157 (*pwm_base_map) |= (uint32_t)1 << 19; //将第4位置1 ---> enable pwm1
158 158
159 - printf("V3s_Pwm_control:%d\n",PWM_num); 159 + //printf("V3s_Pwm_control:%d\n",PWM_num);
160 160
161 return 0; 161 return 0;
162 } 162 }
@@ -25,7 +25,7 @@ @@ -25,7 +25,7 @@
25 #include "Megaphone/Music/RealTimeMP2/Megaphone_RealTimeMP2.h" 25 #include "Megaphone/Music/RealTimeMP2/Megaphone_RealTimeMP2.h"
26 #include "Megaphone/opus/Megaphone_Opus.h" 26 #include "Megaphone/opus/Megaphone_Opus.h"
27 #include "Megaphone/PcmAudio/PcmAudioFile.h" 27 #include "Megaphone/PcmAudio/PcmAudioFile.h"
28 - 28 +#include "Megaphone/Megaphone.h"
29 29
30 int MegPlayStatusUnChange_flag = JZ_FLAGCODE_OFF; 30 int MegPlayStatusUnChange_flag = JZ_FLAGCODE_OFF;
31 static MegaphonePlayStatus g_Megaphone_Play_Status = AUDIO_PLAY_STATUS_IDLE; 31 static MegaphonePlayStatus g_Megaphone_Play_Status = AUDIO_PLAY_STATUS_IDLE;
@@ -200,6 +200,7 @@ static T_JZsdkReturnCode Megaphone_Play(struct MegaphoneInfo *IndexInfo, enum Me @@ -200,6 +200,7 @@ static T_JZsdkReturnCode Megaphone_Play(struct MegaphoneInfo *IndexInfo, enum Me
200 //opus播放 200 //opus播放
201 ret = OpusFile_PlayFixedFile(); 201 ret = OpusFile_PlayFixedFile();
202 } 202 }
  203 + break;
203 204
204 case AUDIO_PLAY_STATUS_PCM_LIST: 205 case AUDIO_PLAY_STATUS_PCM_LIST:
205 { 206 {
@@ -208,6 +209,7 @@ static T_JZsdkReturnCode Megaphone_Play(struct MegaphoneInfo *IndexInfo, enum Me @@ -208,6 +209,7 @@ static T_JZsdkReturnCode Megaphone_Play(struct MegaphoneInfo *IndexInfo, enum Me
208 //pcm播放 209 //pcm播放
209 ret = PcmAudioPlay_Play(IndexInfo->str, IndexInfo->str_len); 210 ret = PcmAudioPlay_Play(IndexInfo->str, IndexInfo->str_len);
210 } 211 }
  212 + break;
211 213
212 default: 214 default:
213 break; 215 break;
@@ -7,6 +7,7 @@ @@ -7,6 +7,7 @@
7 7
8 #include "JZsdkLib.h" 8 #include "JZsdkLib.h"
9 #include "Megaphone/AudioMange/AudioMange.h" 9 #include "Megaphone/AudioMange/AudioMange.h"
  10 +#include "Megaphone/PcmAudio/PcmAudioFile.h"
10 11
11 #define PCM_DIR "/root/sdcard/pcm" 12 #define PCM_DIR "/root/sdcard/pcm"
12 13
1 /** 1 /**
2 ******************************************************************** 2 ********************************************************************
3 - * @file OpusFile.h  
4 - * OpusFile.c OpusFileSave.c 的头文件 3 + * @file PcmAudioFile.h
  4 + * PcmAudioFile.c PcmAudioPlay.c 的头文件
5 * 5 *
6 ********************************************************************* 6 *********************************************************************
7 */ 7 */
8 8
9 /* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/ 9 /* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
10 -#ifndef OPUS_FILE_H  
11 -#define OPUS_FILE_H 10 +#ifndef PCM_AUDIO_FILE_H
  11 +#define PCM_AUDIO_FILE_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"
@@ -4,10 +4,12 @@ @@ -4,10 +4,12 @@
4 #include <pthread.h> 4 #include <pthread.h>
5 #include <dirent.h> 5 #include <dirent.h>
6 #include <sys/stat.h> 6 #include <sys/stat.h>
  7 +#include <math.h>
7 8
8 #include "JZsdkLib.h" 9 #include "JZsdkLib.h"
9 #include "Megaphone/PcmAudio/PcmAudioFile.h" 10 #include "Megaphone/PcmAudio/PcmAudioFile.h"
10 #include "Megaphone/Megaphone.h" 11 #include "Megaphone/Megaphone.h"
  12 +#include "AudioDeal/AudioDeal.h"
11 13
12 #define PCM_DIR "/root/sdcard/pcm" 14 #define PCM_DIR "/root/sdcard/pcm"
13 static int g_opus_sampleRate = 16000; //解码采样率 15 static int g_opus_sampleRate = 16000; //解码采样率
@@ -29,7 +31,10 @@ static T_JZsdkReturnCode PcmPlay_Interface(t_PcmParam *PcmParam) @@ -29,7 +31,10 @@ static T_JZsdkReturnCode PcmPlay_Interface(t_PcmParam *PcmParam)
29 double total_duration = 0; 31 double total_duration = 0;
30 int last_printed_second = -1; // 上次打印的秒数,初始化为-1表示还没有打印过 32 int last_printed_second = -1; // 上次打印的秒数,初始化为-1表示还没有打印过
31 33
32 - FILE *Pcm_fp = fopen("%s/%s", "rb", PCM_DIR, PcmParam->FileName); 34 + unsigned char PcmPath[JZSDK_FILE_PATH_SIZE_MAX];
  35 + snprintf(PcmPath, JZSDK_FILE_PATH_SIZE_MAX, "%s/%s", PCM_DIR, PcmParam->FileName);
  36 +
  37 + FILE *Pcm_fp = fopen(PcmPath, "rb");
33 if (Pcm_fp == NULL) 38 if (Pcm_fp == NULL)
34 { 39 {
35 JZSDK_LOG_ERROR("PcmPlay_Interface: fopen failed, file name = %s", PcmParam->FileName); 40 JZSDK_LOG_ERROR("PcmPlay_Interface: fopen failed, file name = %s", PcmParam->FileName);
@@ -234,7 +234,7 @@ T_JZsdkReturnCode OpusFile_SaveOpusFileEnd(int CheckFlag, unsigned char *CheckCo @@ -234,7 +234,7 @@ T_JZsdkReturnCode OpusFile_SaveOpusFileEnd(int CheckFlag, unsigned char *CheckCo
234 if (g_OpusSaveMode != JZ_FLAGCODE_OFF) 234 if (g_OpusSaveMode != JZ_FLAGCODE_OFF)
235 { 235 {
236 //将opus解码,并存储到指定目录 236 //将opus解码,并存储到指定目录
237 - ret = OpusFile_DecodeOpusAndSave(g_OpusSaveMode ,g_OpusSaveMode, opus_SaveFile); 237 + ret = OpusFile_DecodeOpusAndSave(g_OpusSaveMode ,OPUS_TEMP_SAVE_DIR, opus_SaveFile);
238 } 238 }
239 239
240 // if (g_OpusSaveMode != JZ_FLAGCODE_OFF) 240 // if (g_OpusSaveMode != JZ_FLAGCODE_OFF)
@@ -19,13 +19,11 @@ @@ -19,13 +19,11 @@
19 #include "widget/test_widget_speaker.h" 19 #include "widget/test_widget_speaker.h"
20 #include "./Dji_Control/DJI_VideoDeal.h" 20 #include "./Dji_Control/DJI_VideoDeal.h"
21 21
22 - extern int Firstsong_flag ;  
23 #elif APP_VERSION == APP_UART || APP_VERSION == APP_TEST 22 #elif APP_VERSION == APP_UART || APP_VERSION == APP_TEST
24 int Get_Opus_PlayMode() 23 int Get_Opus_PlayMode()
25 { 24 {
26 return JZ_FLAGCODE_OFF; 25 return JZ_FLAGCODE_OFF;
27 } 26 }
28 - int Firstsong_flag ;  
29 #endif 27 #endif
30 28
31 #define AUTO_CONTROL 0x02 29 #define AUTO_CONTROL 0x02
@@ -221,7 +219,6 @@ static T_JZsdkReturnCode UI_control_WidgetSet(int type, int value) @@ -221,7 +219,6 @@ static T_JZsdkReturnCode UI_control_WidgetSet(int type, int value)
221 T_JZsdkReturnCode JZsdk_Psdk_UI_io_Reply_PlayStatus_end() 219 T_JZsdkReturnCode JZsdk_Psdk_UI_io_Reply_PlayStatus_end()
222 { 220 {
223 UI_control_WidgetSet(PSDK_UI_WIDGET_PLAYSTATUS, 1); 221 UI_control_WidgetSet(PSDK_UI_WIDGET_PLAYSTATUS, 1);
224 - Firstsong_flag = 0;  
225 } 222 }
226 223
227 224
@@ -36,6 +36,7 @@ @@ -36,6 +36,7 @@
36 36
37 #include "Psdk_UI_io.h" 37 #include "Psdk_UI_io.h"
38 #include "BaseConfig.h" 38 #include "BaseConfig.h"
  39 +#include "UI_control/UI_control.h"
39 40
40 /* Private constants ---------------------------------------------------------*/ 41 /* Private constants ---------------------------------------------------------*/
41 #define PAYLOAD_CAMERA_EMU_TASK_FREQ (100) 42 #define PAYLOAD_CAMERA_EMU_TASK_FREQ (100)
@@ -962,15 +963,7 @@ static T_DjiReturnCode DjiTest_CameraRotationGimbal(T_TestCameraGimbalRotationAr @@ -962,15 +963,7 @@ static T_DjiReturnCode DjiTest_CameraRotationGimbal(T_TestCameraGimbalRotationAr
962 return returnCode; 963 return returnCode;
963 } 964 }
964 965
965 - if (aircraftBaseInfo.djiAdapterType == DJI_SDK_ADAPTER_TYPE_SKYPORT_V2 ||  
966 - aircraftBaseInfo.djiAdapterType == DJI_SDK_ADAPTER_TYPE_NONE) {  
967 - returnCode = DjiTest_GimbalRotate(gimbalRotationArgument.rotationMode, gimbalRotationArgument.rotationProperty,  
968 - gimbalRotationArgument.rotationValue);  
969 - if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {  
970 - USER_LOG_ERROR("rotate gimbal error: 0x%08llX.", returnCode);  
971 - return returnCode;  
972 - }  
973 - } else if (aircraftBaseInfo.djiAdapterType == DJI_SDK_ADAPTER_TYPE_XPORT) { 966 + if (aircraftBaseInfo.djiAdapterType == DJI_SDK_ADAPTER_TYPE_XPORT) {
974 returnCode = DjiXPort_RotateSync(gimbalRotationArgument.rotationMode, gimbalRotationArgument.rotationProperty, 967 returnCode = DjiXPort_RotateSync(gimbalRotationArgument.rotationMode, gimbalRotationArgument.rotationProperty,
975 gimbalRotationArgument.rotationValue); 968 gimbalRotationArgument.rotationValue);
976 if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { 969 if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
@@ -74,6 +74,8 @@ static const T_DjiTestCameraTypeStr s_cameraTypeStrList[] = { @@ -74,6 +74,8 @@ static const T_DjiTestCameraTypeStr s_cameraTypeStrList[] = {
74 {DJI_CAMERA_TYPE_M3TD, "M3TD Camera"}, 74 {DJI_CAMERA_TYPE_M3TD, "M3TD Camera"},
75 {DJI_CAMERA_TYPE_H30, "H30 Camera"}, 75 {DJI_CAMERA_TYPE_H30, "H30 Camera"},
76 {DJI_CAMERA_TYPE_H30T, "H30T Camera"}, 76 {DJI_CAMERA_TYPE_H30T, "H30T Camera"},
  77 + {DJI_CAMERA_TYPE_M4T, "M4T Camera"},
  78 + {DJI_CAMERA_TYPE_M4E, "M4E Camera"},
77 }; 79 };
78 80
79 static FILE *s_downloadMediaFile = NULL; 81 static FILE *s_downloadMediaFile = NULL;
@@ -846,12 +848,14 @@ T_DjiReturnCode DjiTest_CameraManagerRunSample(E_DjiMountPosition mountPosition, @@ -846,12 +848,14 @@ T_DjiReturnCode DjiTest_CameraManagerRunSample(E_DjiMountPosition mountPosition,
846 case E_DJI_TEST_CAMERA_MANAGER_SAMPLE_SELECT_SET_CAMERA_SHUTTER_SPEED: { 848 case E_DJI_TEST_CAMERA_MANAGER_SAMPLE_SELECT_SET_CAMERA_SHUTTER_SPEED: {
847 USER_LOG_INFO("--> Function a: Set camera shutter speed to 1/100 s"); 849 USER_LOG_INFO("--> Function a: Set camera shutter speed to 1/100 s");
848 DjiTest_WidgetLogAppend("--> Function a: Set camera shutter speed to 1/100 s"); 850 DjiTest_WidgetLogAppend("--> Function a: Set camera shutter speed to 1/100 s");
849 - if (cameraType == DJI_CAMERA_TYPE_H20 || cameraType == DJI_CAMERA_TYPE_H20T ||  
850 - cameraType == DJI_CAMERA_TYPE_H20N || cameraType == DJI_CAMERA_TYPE_M30 ||  
851 - cameraType == DJI_CAMERA_TYPE_M30T || cameraType == DJI_CAMERA_TYPE_M3E ||  
852 - cameraType == DJI_CAMERA_TYPE_M3T || cameraType == DJI_CAMERA_TYPE_M3D ||  
853 - cameraType == DJI_CAMERA_TYPE_M3TD || cameraType == DJI_CAMERA_TYPE_H30 ||  
854 - cameraType == DJI_CAMERA_TYPE_H30T) { 851 + if (DJI_CAMERA_TYPE_H20 == cameraType || DJI_CAMERA_TYPE_H20T == cameraType
  852 + || DJI_CAMERA_TYPE_H20N == cameraType
  853 + || DJI_CAMERA_TYPE_M30 == cameraType || DJI_CAMERA_TYPE_M30T == cameraType
  854 + || DJI_CAMERA_TYPE_M3E == cameraType || DJI_CAMERA_TYPE_M3T == cameraType
  855 + || DJI_CAMERA_TYPE_M3D == cameraType || DJI_CAMERA_TYPE_M3TD == cameraType
  856 + || DJI_CAMERA_TYPE_M4T == cameraType || DJI_CAMERA_TYPE_M4E == cameraType
  857 + || DJI_CAMERA_TYPE_H30 == cameraType || DJI_CAMERA_TYPE_H30T == cameraType
  858 + ) {
855 USER_LOG_INFO("Set mounted position %d camera's exposure mode to manual mode.", 859 USER_LOG_INFO("Set mounted position %d camera's exposure mode to manual mode.",
856 mountPosition); 860 mountPosition);
857 returnCode = DjiTest_CameraManagerSetExposureMode(mountPosition, 861 returnCode = DjiTest_CameraManagerSetExposureMode(mountPosition,
@@ -887,12 +891,14 @@ T_DjiReturnCode DjiTest_CameraManagerRunSample(E_DjiMountPosition mountPosition, @@ -887,12 +891,14 @@ T_DjiReturnCode DjiTest_CameraManagerRunSample(E_DjiMountPosition mountPosition,
887 case E_DJI_TEST_CAMERA_MANAGER_SAMPLE_SELECT_SET_CAMERA_APERTURE: { 891 case E_DJI_TEST_CAMERA_MANAGER_SAMPLE_SELECT_SET_CAMERA_APERTURE: {
888 USER_LOG_INFO("--> Function b: Set camera aperture to 400(F/4)"); 892 USER_LOG_INFO("--> Function b: Set camera aperture to 400(F/4)");
889 DjiTest_WidgetLogAppend("--> Function b: Set camera aperture to 400(F/4)"); 893 DjiTest_WidgetLogAppend("--> Function b: Set camera aperture to 400(F/4)");
890 - if (cameraType == DJI_CAMERA_TYPE_H20 || cameraType == DJI_CAMERA_TYPE_H20N  
891 - || cameraType == DJI_CAMERA_TYPE_H20T || cameraType == DJI_CAMERA_TYPE_M30  
892 - || cameraType == DJI_CAMERA_TYPE_M30T || cameraType == DJI_CAMERA_TYPE_M3E  
893 - || cameraType == DJI_CAMERA_TYPE_M3T || cameraType == DJI_CAMERA_TYPE_M3D  
894 - || cameraType == DJI_CAMERA_TYPE_M3TD || cameraType == DJI_CAMERA_TYPE_H30  
895 - || cameraType == DJI_CAMERA_TYPE_H30T) { 894 + if (DJI_CAMERA_TYPE_H20 == cameraType || DJI_CAMERA_TYPE_H20T == cameraType
  895 + || DJI_CAMERA_TYPE_H20N == cameraType
  896 + || DJI_CAMERA_TYPE_M30 == cameraType || DJI_CAMERA_TYPE_M30T == cameraType
  897 + || DJI_CAMERA_TYPE_M3E == cameraType || DJI_CAMERA_TYPE_M3T == cameraType
  898 + || DJI_CAMERA_TYPE_M3D == cameraType || DJI_CAMERA_TYPE_M3TD == cameraType
  899 + || DJI_CAMERA_TYPE_M4T == cameraType || DJI_CAMERA_TYPE_M4E == cameraType
  900 + || DJI_CAMERA_TYPE_H30 == cameraType || DJI_CAMERA_TYPE_H30T == cameraType
  901 + ) {
896 USER_LOG_INFO("Set mounted position %d camera's exposure mode to manual mode.", 902 USER_LOG_INFO("Set mounted position %d camera's exposure mode to manual mode.",
897 mountPosition); 903 mountPosition);
898 returnCode = DjiTest_CameraManagerSetExposureMode(mountPosition, 904 returnCode = DjiTest_CameraManagerSetExposureMode(mountPosition,
@@ -1185,11 +1191,14 @@ T_DjiReturnCode DjiTest_CameraManagerRunSample(E_DjiMountPosition mountPosition, @@ -1185,11 +1191,14 @@ T_DjiReturnCode DjiTest_CameraManagerRunSample(E_DjiMountPosition mountPosition,
1185 E_DjiCameraManagerNightSceneMode nightSceneMode; 1191 E_DjiCameraManagerNightSceneMode nightSceneMode;
1186 T_DjiCameraManagerRangeList nightSceneModeRange; 1192 T_DjiCameraManagerRangeList nightSceneModeRange;
1187 1193
1188 - if (cameraType == DJI_CAMERA_TYPE_XT2 || cameraType == DJI_CAMERA_TYPE_XTS ||  
1189 - cameraType == DJI_CAMERA_TYPE_H20 || cameraType == DJI_CAMERA_TYPE_P1 ||  
1190 - cameraType == DJI_CAMERA_TYPE_L1 || cameraType == DJI_CAMERA_TYPE_L2 ||  
1191 - cameraType == DJI_CAMERA_TYPE_M3E || cameraType == DJI_CAMERA_TYPE_M3T ||  
1192 - cameraType == DJI_CAMERA_TYPE_M3D || cameraType == DJI_CAMERA_TYPE_M3TD) { 1194 + if (DJI_CAMERA_TYPE_XT2 == cameraType || DJI_CAMERA_TYPE_XTS == cameraType
  1195 + || DJI_CAMERA_TYPE_H20 == cameraType
  1196 + || DJI_CAMERA_TYPE_P1 == cameraType
  1197 + || DJI_CAMERA_TYPE_L1 == cameraType || DJI_CAMERA_TYPE_L2 == cameraType
  1198 + || DJI_CAMERA_TYPE_M3E == cameraType || DJI_CAMERA_TYPE_M3T == cameraType
  1199 + || DJI_CAMERA_TYPE_M3D == cameraType || DJI_CAMERA_TYPE_M3TD == cameraType
  1200 + || DJI_CAMERA_TYPE_M4T == cameraType || DJI_CAMERA_TYPE_M4E == cameraType
  1201 + ) {
1193 USER_LOG_INFO("Camera type %s does not support night scene mode!", 1202 USER_LOG_INFO("Camera type %s does not support night scene mode!",
1194 s_cameraTypeStrList[DjiTest_CameraManagerGetCameraTypeIndex(cameraType)].cameraTypeStr); 1203 s_cameraTypeStrList[DjiTest_CameraManagerGetCameraTypeIndex(cameraType)].cameraTypeStr);
1195 goto exitCameraModule; 1204 goto exitCameraModule;
@@ -1923,7 +1932,8 @@ T_DjiReturnCode DjiTest_CameraManagerRunSample(E_DjiMountPosition mountPosition, @@ -1923,7 +1932,8 @@ T_DjiReturnCode DjiTest_CameraManagerRunSample(E_DjiMountPosition mountPosition,
1923 cameraType == DJI_CAMERA_TYPE_H20 || cameraType == DJI_CAMERA_TYPE_P1 || 1932 cameraType == DJI_CAMERA_TYPE_H20 || cameraType == DJI_CAMERA_TYPE_P1 ||
1924 cameraType == DJI_CAMERA_TYPE_L1 || cameraType == DJI_CAMERA_TYPE_M30 || 1933 cameraType == DJI_CAMERA_TYPE_L1 || cameraType == DJI_CAMERA_TYPE_M30 ||
1925 cameraType == DJI_CAMERA_TYPE_M3E || cameraType == DJI_CAMERA_TYPE_M3D || 1934 cameraType == DJI_CAMERA_TYPE_M3E || cameraType == DJI_CAMERA_TYPE_M3D ||
1926 - cameraType == DJI_CAMERA_TYPE_L2 || cameraType == DJI_CAMERA_TYPE_H30) { 1935 + cameraType == DJI_CAMERA_TYPE_L2 || cameraType == DJI_CAMERA_TYPE_H30 ||
  1936 + cameraType == DJI_CAMERA_TYPE_M4T) {
1927 USER_LOG_WARN("Camera type %s don't support FFC function.", 1937 USER_LOG_WARN("Camera type %s don't support FFC function.",
1928 s_cameraTypeStrList[DjiTest_CameraManagerGetCameraTypeIndex(cameraType)].cameraTypeStr); 1938 s_cameraTypeStrList[DjiTest_CameraManagerGetCameraTypeIndex(cameraType)].cameraTypeStr);
1929 goto exitCameraModule; 1939 goto exitCameraModule;
@@ -1969,7 +1979,8 @@ T_DjiReturnCode DjiTest_CameraManagerRunSample(E_DjiMountPosition mountPosition, @@ -1969,7 +1979,8 @@ T_DjiReturnCode DjiTest_CameraManagerRunSample(E_DjiMountPosition mountPosition,
1969 cameraType == DJI_CAMERA_TYPE_H20 || cameraType == DJI_CAMERA_TYPE_P1 || 1979 cameraType == DJI_CAMERA_TYPE_H20 || cameraType == DJI_CAMERA_TYPE_P1 ||
1970 cameraType == DJI_CAMERA_TYPE_L1 || cameraType == DJI_CAMERA_TYPE_M30 || 1980 cameraType == DJI_CAMERA_TYPE_L1 || cameraType == DJI_CAMERA_TYPE_M30 ||
1971 cameraType == DJI_CAMERA_TYPE_M3E || cameraType == DJI_CAMERA_TYPE_M3D || 1981 cameraType == DJI_CAMERA_TYPE_M3E || cameraType == DJI_CAMERA_TYPE_M3D ||
1972 - cameraType == DJI_CAMERA_TYPE_L2 || cameraType == DJI_CAMERA_TYPE_H30) { 1982 + cameraType == DJI_CAMERA_TYPE_L2 || cameraType == DJI_CAMERA_TYPE_H30 ||
  1983 + cameraType == DJI_CAMERA_TYPE_M4T) {
1973 USER_LOG_WARN("Camera type %s don't support infrared function.", 1984 USER_LOG_WARN("Camera type %s don't support infrared function.",
1974 s_cameraTypeStrList[DjiTest_CameraManagerGetCameraTypeIndex(cameraType)].cameraTypeStr); 1985 s_cameraTypeStrList[DjiTest_CameraManagerGetCameraTypeIndex(cameraType)].cameraTypeStr);
1975 goto exitCameraModule; 1986 goto exitCameraModule;
@@ -95,8 +95,10 @@ T_DjiReturnCode DjiTest_DataTransmissionStartService(void) @@ -95,8 +95,10 @@ T_DjiReturnCode DjiTest_DataTransmissionStartService(void)
95 return DJI_ERROR_SYSTEM_MODULE_CODE_UNKNOWN; 95 return DJI_ERROR_SYSTEM_MODULE_CODE_UNKNOWN;
96 } 96 }
97 97
98 - if (s_aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M30 ||  
99 - s_aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M30T) { 98 + if (s_aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M30 ||
  99 + s_aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M30T ||
  100 + s_aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M3D ||
  101 + s_aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M3TD) {
100 channelAddress = DJI_CHANNEL_ADDRESS_CLOUD_API; 102 channelAddress = DJI_CHANNEL_ADDRESS_CLOUD_API;
101 djiStat = DjiLowSpeedDataChannel_RegRecvDataCallback(channelAddress, ReceiveDataFromCloud); 103 djiStat = DjiLowSpeedDataChannel_RegRecvDataCallback(channelAddress, ReceiveDataFromCloud);
102 if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { 104 if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
@@ -208,8 +210,10 @@ static void *UserDataTransmission_Task(void *arg) @@ -208,8 +210,10 @@ static void *UserDataTransmission_Task(void *arg)
208 USER_LOG_ERROR("get send to mobile channel state error."); 210 USER_LOG_ERROR("get send to mobile channel state error.");
209 } 211 }
210 212
211 - if (s_aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M30 ||  
212 - s_aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M30T) { 213 + if (s_aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M30 ||
  214 + s_aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M30T ||
  215 + s_aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M3D ||
  216 + s_aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M3TD) {
213 channelAddress = DJI_CHANNEL_ADDRESS_CLOUD_API; 217 channelAddress = DJI_CHANNEL_ADDRESS_CLOUD_API;
214 djiStat = DjiLowSpeedDataChannel_SendData(channelAddress, dataToBeSent, sizeof(dataToBeSent)); 218 djiStat = DjiLowSpeedDataChannel_SendData(channelAddress, dataToBeSent, sizeof(dataToBeSent));
215 if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) 219 if (djiStat != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
@@ -459,7 +459,7 @@ static void *Subscription_GimbalAngels_task(void *arg) @@ -459,7 +459,7 @@ static void *Subscription_GimbalAngels_task(void *arg)
459 //printf("消息订阅联动\n"); 459 //printf("消息订阅联动\n");
460 JZsdk_Psdk_Ui_io_Gimbal_PitchAngleControlMode(NowGimbalPitch); 460 JZsdk_Psdk_Ui_io_Gimbal_PitchAngleControlMode(NowGimbalPitch);
461 LastGimbalPitch = NowGimbalPitch; 461 LastGimbalPitch = NowGimbalPitch;
462 - } 462 + }
463 463
464 } 464 }
465 } 465 }
@@ -899,8 +899,6 @@ T_DjiReturnCode DjiTest_TriggerFtsEventCallback(void) @@ -899,8 +899,6 @@ T_DjiReturnCode DjiTest_TriggerFtsEventCallback(void)
899 USER_LOG_WARN("Note: This is an empty implementation, and the FTS signal needs to be triggered by the PWM signal."); 899 USER_LOG_WARN("Note: This is an empty implementation, and the FTS signal needs to be triggered by the PWM signal.");
900 return DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 900 return DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
901 } 901 }
902 -  
903 - return DJI_ERROR_SYSTEM_MODULE_CODE_SYSTEM_ERROR;  
904 } 902 }
905 903
906 void DjiTest_FlightControlPassiveTriggerFtsSample(void) 904 void DjiTest_FlightControlPassiveTriggerFtsSample(void)
@@ -1304,10 +1302,11 @@ bool DjiTest_FlightControlGoHomeAndConfirmLanding(void) @@ -1304,10 +1302,11 @@ bool DjiTest_FlightControlGoHomeAndConfirmLanding(void)
1304 DjiTest_FlightControlGetValueOfFlightStatus() == DJI_FC_SUBSCRIPTION_FLIGHT_STATUS_IN_AIR) { 1302 DjiTest_FlightControlGetValueOfFlightStatus() == DJI_FC_SUBSCRIPTION_FLIGHT_STATUS_IN_AIR) {
1305 T_DjiFcSubscriptionHeightFusion heightFusion = DjiTest_FlightControlGetValueOfHeightFusion(); 1303 T_DjiFcSubscriptionHeightFusion heightFusion = DjiTest_FlightControlGetValueOfHeightFusion();
1306 s_osalHandler->TaskSleepMs(1000); 1304 s_osalHandler->TaskSleepMs(1000);
1307 - if (aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M3E ||  
1308 - aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M3T ||  
1309 - aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M3D ||  
1310 - aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M3TD) { 1305 + if (DJI_AIRCRAFT_TYPE_M3E == aircraftInfoBaseInfo.aircraftType || DJI_AIRCRAFT_TYPE_M3T == aircraftInfoBaseInfo.aircraftType
  1306 + || DJI_AIRCRAFT_TYPE_M3D == aircraftInfoBaseInfo.aircraftType || DJI_AIRCRAFT_TYPE_M3TD == aircraftInfoBaseInfo.aircraftType
  1307 + || DJI_AIRCRAFT_TYPE_M4T == aircraftInfoBaseInfo.aircraftType
  1308 + || DJI_AIRCRAFT_TYPE_M4E == aircraftInfoBaseInfo.aircraftType
  1309 + ) {
1311 if ((dji_f64_t) 0.45 < heightFusion && heightFusion < (dji_f64_t) 0.55) { 1310 if ((dji_f64_t) 0.45 < heightFusion && heightFusion < (dji_f64_t) 0.55) {
1312 break; 1311 break;
1313 } 1312 }
@@ -140,8 +140,11 @@ T_DjiReturnCode DjiTest_GimbalManagerRunSample(E_DjiMountPosition mountPosition, @@ -140,8 +140,11 @@ T_DjiReturnCode DjiTest_GimbalManagerRunSample(E_DjiMountPosition mountPosition,
140 140
141 rotation = s_rotationActionList[i].rotation; 141 rotation = s_rotationActionList[i].rotation;
142 142
143 - if (aircraftSeries == DJI_AIRCRAFT_SERIES_M3 || aircraftSeries == DJI_AIRCRAFT_SERIES_M30  
144 - || aircraftSeries == DJI_AIRCRAFT_SERIES_M3D) { 143 + if (DJI_AIRCRAFT_SERIES_M30 == aircraftSeries
  144 + || DJI_AIRCRAFT_SERIES_M3 == aircraftSeries
  145 + || DJI_AIRCRAFT_SERIES_M3D == aircraftSeries
  146 + || DJI_AIRCRAFT_SERIES_M4 == aircraftSeries
  147 + ) {
145 if (s_rotationActionList[i].rotation.rotationMode == DJI_GIMBAL_ROTATION_MODE_ABSOLUTE_ANGLE) { 148 if (s_rotationActionList[i].rotation.rotationMode == DJI_GIMBAL_ROTATION_MODE_ABSOLUTE_ANGLE) {
146 T_DjiFcSubscriptionGimbalAngles gimbalAngles = {0}; 149 T_DjiFcSubscriptionGimbalAngles gimbalAngles = {0};
147 T_DjiDataTimestamp timestamp = {0}; 150 T_DjiDataTimestamp timestamp = {0};
@@ -51,11 +51,14 @@ @@ -51,11 +51,14 @@
51 static const char *oldReplaceAlarmIdStr = "%alarmid"; 51 static const char *oldReplaceAlarmIdStr = "%alarmid";
52 static const char *oldReplaceIndexStr = "%index"; 52 static const char *oldReplaceIndexStr = "%index";
53 static const char *oldReplaceComponentIndexStr = "%component_index"; 53 static const char *oldReplaceComponentIndexStr = "%component_index";
  54 +static bool isHmsManagerInit = false;
54 static T_DjiHmsFileBinaryArray s_EnHmsTextConfigFileBinaryArrayList[] = { 55 static T_DjiHmsFileBinaryArray s_EnHmsTextConfigFileBinaryArrayList[] = {
55 {hms_text_config_json_fileName, hms_text_config_json_fileSize, hms_text_config_json_fileBinaryArray}, 56 {hms_text_config_json_fileName, hms_text_config_json_fileSize, hms_text_config_json_fileBinaryArray},
56 }; 57 };
57 static uint8_t *s_hmsJsonData = NULL; 58 static uint8_t *s_hmsJsonData = NULL;
58 static E_DjiMobileAppLanguage s_hmsLanguage = DJI_MOBILE_APP_LANGUAGE_ENGLISH; 59 static E_DjiMobileAppLanguage s_hmsLanguage = DJI_MOBILE_APP_LANGUAGE_ENGLISH;
  60 +static bool s_isHmsConfigFileDirPathConfigured = false;
  61 +static char s_hmsConfigFileDirPath[DJI_FILE_PATH_SIZE_MAX] = {0};
59 62
60 /* Private functions declaration ---------------------------------------------*/ 63 /* Private functions declaration ---------------------------------------------*/
61 static T_DjiReturnCode DjiTest_HmsManagerInit(void); 64 static T_DjiReturnCode DjiTest_HmsManagerInit(void);
@@ -132,7 +135,11 @@ T_DjiReturnCode DjiTest_HmsCustomizationStartService(void) @@ -132,7 +135,11 @@ T_DjiReturnCode DjiTest_HmsCustomizationStartService(void)
132 return returnCode; 135 return returnCode;
133 } 136 }
134 137
135 - snprintf(tempPath, HMS_DIR_PATH_LEN_MAX, "%shms_text/en", curFileDirPath); 138 + if (s_isHmsConfigFileDirPathConfigured == true) {
  139 + snprintf(tempPath, HMS_DIR_PATH_LEN_MAX, "%shms_text/en", s_hmsConfigFileDirPath);
  140 + } else {
  141 + snprintf(tempPath, HMS_DIR_PATH_LEN_MAX, "%shms_text/en", curFileDirPath);
  142 + }
136 143
137 //set default hms text config path 144 //set default hms text config path
138 returnCode = DjiHmsCustomization_RegDefaultHmsTextConfigByDirPath(tempPath); 145 returnCode = DjiHmsCustomization_RegDefaultHmsTextConfigByDirPath(tempPath);
@@ -150,7 +157,12 @@ T_DjiReturnCode DjiTest_HmsCustomizationStartService(void) @@ -150,7 +157,12 @@ T_DjiReturnCode DjiTest_HmsCustomizationStartService(void)
150 } 157 }
151 158
152 //set hms text config for Chinese language 159 //set hms text config for Chinese language
153 - snprintf(tempPath, HMS_DIR_PATH_LEN_MAX, "%shms_text/cn", curFileDirPath); 160 + if (s_isHmsConfigFileDirPathConfigured == true) {
  161 + snprintf(tempPath, HMS_DIR_PATH_LEN_MAX, "%shms_text/cn", s_hmsConfigFileDirPath);
  162 + } else {
  163 + snprintf(tempPath, HMS_DIR_PATH_LEN_MAX, "%shms_text/cn", curFileDirPath);
  164 + }
  165 +
154 returnCode = DjiHmsCustomization_RegHmsTextConfigByDirPath(DJI_MOBILE_APP_LANGUAGE_CHINESE, 166 returnCode = DjiHmsCustomization_RegHmsTextConfigByDirPath(DJI_MOBILE_APP_LANGUAGE_CHINESE,
155 tempPath); 167 tempPath);
156 if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { 168 if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
@@ -174,11 +186,22 @@ T_DjiReturnCode DjiTest_HmsCustomizationStartService(void) @@ -174,11 +186,22 @@ T_DjiReturnCode DjiTest_HmsCustomizationStartService(void)
174 186
175 #if DJI_CUSTOM_HMS_CODE_INJECT_ON 187 #if DJI_CUSTOM_HMS_CODE_INJECT_ON
176 DjiHmsCustomization_InjectHmsErrorCode(0x1E020000, DJI_HMS_ERROR_LEVEL_FATAL); 188 DjiHmsCustomization_InjectHmsErrorCode(0x1E020000, DJI_HMS_ERROR_LEVEL_FATAL);
  189 + DjiHmsCustomization_InjectHmsErrorCode(0x1E020001, DJI_HMS_ERROR_LEVEL_CRITICAL);
  190 + DjiHmsCustomization_InjectHmsErrorCode(0x1E020002, DJI_HMS_ERROR_LEVEL_WARN);
  191 + DjiHmsCustomization_InjectHmsErrorCode(0x1E020003, DJI_HMS_ERROR_LEVEL_HINT);
177 #endif 192 #endif
178 193
179 return returnCode; 194 return returnCode;
180 } 195 }
181 196
  197 +T_DjiReturnCode DjiTest_HmsCustomizationSetConfigFilePath(const char *path)
  198 +{
  199 + memset(s_hmsConfigFileDirPath, 0, sizeof(s_hmsConfigFileDirPath));
  200 + memcpy(s_hmsConfigFileDirPath, path, USER_UTIL_MIN(strlen(path), sizeof(s_hmsConfigFileDirPath) - 1));
  201 + s_isHmsConfigFileDirPathConfigured = true;
  202 +
  203 + return DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  204 +}
182 /* Private functions definition-----------------------------------------------*/ 205 /* Private functions definition-----------------------------------------------*/
183 static T_DjiReturnCode DjiTest_HmsManagerInit(void) 206 static T_DjiReturnCode DjiTest_HmsManagerInit(void)
184 { 207 {
@@ -199,13 +222,13 @@ static T_DjiReturnCode DjiTest_HmsManagerInit(void) @@ -199,13 +222,13 @@ static T_DjiReturnCode DjiTest_HmsManagerInit(void)
199 returnCode = DjiFcSubscription_SubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_STATUS_FLIGHT, 222 returnCode = DjiFcSubscription_SubscribeTopic(DJI_FC_SUBSCRIPTION_TOPIC_STATUS_FLIGHT,
200 DJI_DATA_SUBSCRIPTION_TOPIC_10_HZ, 223 DJI_DATA_SUBSCRIPTION_TOPIC_10_HZ,
201 NULL); 224 NULL);
202 -  
203 if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { 225 if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
204 USER_LOG_ERROR("HMS sample subscribe topic flight status error, error code:0x%08llX", returnCode); 226 USER_LOG_ERROR("HMS sample subscribe topic flight status error, error code:0x%08llX", returnCode);
205 return returnCode; 227 return returnCode;
206 } 228 }
207 229
208 #ifdef SYSTEM_ARCH_LINUX 230 #ifdef SYSTEM_ARCH_LINUX
  231 +
209 returnCode = DjiUserUtil_GetCurrentFileDirPath(__FILE__, HMS_DIR_PATH_LEN_MAX, curFileDirPath); 232 returnCode = DjiUserUtil_GetCurrentFileDirPath(__FILE__, HMS_DIR_PATH_LEN_MAX, curFileDirPath);
210 if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { 233 if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
211 USER_LOG_ERROR("Get file current path error, stat = 0x%08llX", returnCode); 234 USER_LOG_ERROR("Get file current path error, stat = 0x%08llX", returnCode);
@@ -230,6 +253,8 @@ static T_DjiReturnCode DjiTest_HmsManagerInit(void) @@ -230,6 +253,8 @@ static T_DjiReturnCode DjiTest_HmsManagerInit(void)
230 UtilFile_GetFileDataByPath(tempFileDirPath, 0, fileSize, s_hmsJsonData, &readRealSize); 253 UtilFile_GetFileDataByPath(tempFileDirPath, 0, fileSize, s_hmsJsonData, &readRealSize);
231 #endif 254 #endif
232 255
  256 + isHmsManagerInit = true;
  257 +
233 return DjiHmsManager_Init(); 258 return DjiHmsManager_Init();
234 } 259 }
235 260
@@ -249,6 +274,8 @@ static T_DjiReturnCode DjiTest_HmsManagerDeInit(void) @@ -249,6 +274,8 @@ static T_DjiReturnCode DjiTest_HmsManagerDeInit(void)
249 osalHandler->Free(s_hmsJsonData); 274 osalHandler->Free(s_hmsJsonData);
250 #endif 275 #endif
251 276
  277 + isHmsManagerInit = false;
  278 +
252 return DjiHmsManager_DeInit(); 279 return DjiHmsManager_DeInit();
253 } 280 }
254 281
@@ -258,6 +285,10 @@ static T_DjiFcSubscriptionFlightStatus DjiTest_GetValueOfFlightStatus(void) @@ -258,6 +285,10 @@ static T_DjiFcSubscriptionFlightStatus DjiTest_GetValueOfFlightStatus(void)
258 T_DjiFcSubscriptionFlightStatus flightStatus; 285 T_DjiFcSubscriptionFlightStatus flightStatus;
259 T_DjiDataTimestamp flightStatusTimestamp = {0}; 286 T_DjiDataTimestamp flightStatusTimestamp = {0};
260 287
  288 + if (isHmsManagerInit == false) {
  289 + return DJI_FC_SUBSCRIPTION_FLIGHT_STATUS_ON_GROUND;
  290 + }
  291 +
261 returnCode = DjiFcSubscription_GetLatestValueOfTopic(DJI_FC_SUBSCRIPTION_TOPIC_STATUS_FLIGHT, 292 returnCode = DjiFcSubscription_GetLatestValueOfTopic(DJI_FC_SUBSCRIPTION_TOPIC_STATUS_FLIGHT,
262 (uint8_t *) &flightStatus, 293 (uint8_t *) &flightStatus,
263 sizeof(T_DjiFcSubscriptionFlightStatus), 294 sizeof(T_DjiFcSubscriptionFlightStatus),
@@ -41,6 +41,7 @@ extern "C" { @@ -41,6 +41,7 @@ extern "C" {
41 /* Exported functions --------------------------------------------------------*/ 41 /* Exported functions --------------------------------------------------------*/
42 T_DjiReturnCode DjiTest_HmsManagerRunSample(E_DjiMobileAppLanguage language); 42 T_DjiReturnCode DjiTest_HmsManagerRunSample(E_DjiMobileAppLanguage language);
43 T_DjiReturnCode DjiTest_HmsCustomizationStartService(void); 43 T_DjiReturnCode DjiTest_HmsCustomizationStartService(void);
  44 +T_DjiReturnCode DjiTest_HmsCustomizationSetConfigFilePath(const char *path);
44 45
45 #ifdef __cplusplus 46 #ifdef __cplusplus
46 } 47 }
@@ -277,8 +277,10 @@ T_DjiReturnCode DjiTest_LiveviewRunSample(E_DjiMountPosition mountPosition) @@ -277,8 +277,10 @@ T_DjiReturnCode DjiTest_LiveviewRunSample(E_DjiMountPosition mountPosition)
277 USER_LOG_INFO("Fpv stream is saved to file: %s", s_fpvCameraStreamFilePath); 277 USER_LOG_INFO("Fpv stream is saved to file: %s", s_fpvCameraStreamFilePath);
278 USER_LOG_INFO("Payload%d stream is saved to file: %s\r\n", mountPosition, s_payloadCameraStreamFilePath); 278 USER_LOG_INFO("Payload%d stream is saved to file: %s\r\n", mountPosition, s_payloadCameraStreamFilePath);
279 279
280 - if (aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M3T ||  
281 - aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M3TD) { 280 + if (DJI_AIRCRAFT_TYPE_M3T == aircraftInfoBaseInfo.aircraftType
  281 + || DJI_AIRCRAFT_TYPE_M3TD == aircraftInfoBaseInfo.aircraftType
  282 + || DJI_AIRCRAFT_TYPE_M4T == aircraftInfoBaseInfo.aircraftType
  283 + ) {
282 USER_LOG_INFO("--> Start h264 stream of the fpv and selected payload\r\n"); 284 USER_LOG_INFO("--> Start h264 stream of the fpv and selected payload\r\n");
283 285
284 localTime = localtime(&currentTime); 286 localTime = localtime(&currentTime);
@@ -180,7 +180,7 @@ REWAIT: @@ -180,7 +180,7 @@ REWAIT:
180 } 180 }
181 181
182 sendDataCount++; 182 sendDataCount++;
183 - memset(sendBuf, sendDataCount, TEST_MOP_CHANNEL_NORMAL_TRANSFOR_SEND_BUFFER); 183 + memset(sendBuf, 'A' - 1 + (sendDataCount % 26), TEST_MOP_CHANNEL_NORMAL_TRANSFOR_SEND_BUFFER);
184 returnCode = DjiMopChannel_SendData(s_testMopChannelNormalOutHandle, sendBuf, 184 returnCode = DjiMopChannel_SendData(s_testMopChannelNormalOutHandle, sendBuf,
185 TEST_MOP_CHANNEL_NORMAL_TRANSFOR_SEND_BUFFER, &realLen); 185 TEST_MOP_CHANNEL_NORMAL_TRANSFOR_SEND_BUFFER, &realLen);
186 if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { 186 if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
@@ -89,9 +89,9 @@ T_DjiReturnCode DjiTest_PowerManagementStartService(void) @@ -89,9 +89,9 @@ T_DjiReturnCode DjiTest_PowerManagementStartService(void)
89 return returnCode; 89 return returnCode;
90 } 90 }
91 91
92 - if (((baseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M300_RTK || baseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M350_RTK) &&  
93 - (baseInfo.djiAdapterType == DJI_SDK_ADAPTER_TYPE_SKYPORT_V2 || baseInfo.djiAdapterType == DJI_SDK_ADAPTER_TYPE_XPORT)) ||  
94 - baseInfo.aircraftType == DJI_AIRCRAFT_TYPE_FC30) { 92 + if (baseInfo.djiAdapterType == DJI_SDK_ADAPTER_TYPE_SKYPORT_V2 ||
  93 + baseInfo.djiAdapterType == DJI_SDK_ADAPTER_TYPE_XPORT ||
  94 + baseInfo.aircraftType == DJI_AIRCRAFT_TYPE_FC30) {
95 // apply high power 95 // apply high power
96 if (s_applyHighPowerHandler.pinInit == NULL) { 96 if (s_applyHighPowerHandler.pinInit == NULL) {
97 USER_LOG_ERROR("apply high power pin init interface is NULL error"); 97 USER_LOG_ERROR("apply high power pin init interface is NULL error");
@@ -71,6 +71,7 @@ typedef struct { @@ -71,6 +71,7 @@ typedef struct {
71 uint8_t usbBulk2InterfaceNum; 71 uint8_t usbBulk2InterfaceNum;
72 uint8_t usbBulk2EndpointIn; 72 uint8_t usbBulk2EndpointIn;
73 uint8_t usbBulk2EndpointOut; 73 uint8_t usbBulk2EndpointOut;
  74 +
74 } usbBulkConfig; 75 } usbBulkConfig;
75 } T_DjiUserLinkConfig; 76 } T_DjiUserLinkConfig;
76 77
@@ -88,7 +88,7 @@ T_DjiReturnCode DjiTest_WaypointV3RunSample(void) @@ -88,7 +88,7 @@ T_DjiReturnCode DjiTest_WaypointV3RunSample(void)
88 /*! Attention: suggest use the exported kmz file by DJI pilot. If use this test file, you need set the longitude as 88 /*! Attention: suggest use the exported kmz file by DJI pilot. If use this test file, you need set the longitude as
89 * 113.94255, latitude as 22.57765 on DJI Assistant 2 simulator */ 89 * 113.94255, latitude as 22.57765 on DJI Assistant 2 simulator */
90 snprintf(tempPath, DJI_TEST_WAYPOINT_V3_KMZ_FILE_PATH_LEN_MAX, "%s/waypoint_file/waypoint_v3_test_file.kmz", 90 snprintf(tempPath, DJI_TEST_WAYPOINT_V3_KMZ_FILE_PATH_LEN_MAX, "%s/waypoint_file/waypoint_v3_test_file.kmz",
91 - curFileDirPath); 91 + curFileDirPath);
92 92
93 kmzFile = fopen(tempPath, "r"); 93 kmzFile = fopen(tempPath, "r");
94 if (kmzFile == NULL) { 94 if (kmzFile == NULL) {
@@ -44,7 +44,7 @@ @@ -44,7 +44,7 @@
44 44
45 #include "UI_control/WidegMgmt/JZsdk_Widget.h" 45 #include "UI_control/WidegMgmt/JZsdk_Widget.h"
46 #include "UI_control/UI_control.h" 46 #include "UI_control/UI_control.h"
47 - 47 +#include "JZsdkLib.h"
48 48
49 #include "MediaProc/MediaProc.h" 49 #include "MediaProc/MediaProc.h"
50 #include "DeviceInfo/DeviceInfo.h" 50 #include "DeviceInfo/DeviceInfo.h"
@@ -254,7 +254,7 @@ T_DjiReturnCode DjiTest_WidgetStartService(void) @@ -254,7 +254,7 @@ T_DjiReturnCode DjiTest_WidgetStartService(void)
254 if (JZsdk_check_file_exists("/root/ShakedownTest") == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) 254 if (JZsdk_check_file_exists("/root/ShakedownTest") == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
255 { 255 {
256 JZSDK_LOG_INFO("开启调试模式"); 256 JZSDK_LOG_INFO("开启调试模式");
257 - if(JZsdk_delete_file("/root/ShakedownTest") != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) 257 + if(JZsdk_Osal_delete("/root/ShakedownTest") != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
258 { 258 {
259 JZSDK_LOG_ERROR("关闭调试模式失败"); 259 JZSDK_LOG_ERROR("关闭调试模式失败");
260 } 260 }
@@ -461,8 +461,8 @@ static void *DjiTest_WidgetInteractionTask(void *arg) @@ -461,8 +461,8 @@ static void *DjiTest_WidgetInteractionTask(void *arg)
461 USER_LOG_INFO("--------------------------------------------------------------------------------------------->"); 461 USER_LOG_INFO("--------------------------------------------------------------------------------------------->");
462 DjiTest_WidgetLogAppend("-> Sample Start"); 462 DjiTest_WidgetLogAppend("-> Sample Start");
463 463
464 - if (s_aircraftInfoBaseInfo.mountPosition == DJI_MOUNT_POSITION_EXTENSION_PORT  
465 - || DJI_MOUNT_POSITION_EXTENSION_LITE_PORT == s_aircraftInfoBaseInfo.mountPosition) { 464 + if (s_aircraftInfoBaseInfo.mountPositionType == DJI_MOUNT_POSITION_TYPE_EXTENSION_PORT ||
  465 + s_aircraftInfoBaseInfo.mountPositionType == DJI_MOUNT_POSITION_TYPE_EXTENSION_LITE_PORT) {
466 switch (s_extensionPortSampleIndex) { 466 switch (s_extensionPortSampleIndex) {
467 case E_DJI_SAMPLE_INDEX_WAYPOINT_V2: 467 case E_DJI_SAMPLE_INDEX_WAYPOINT_V2:
468 if (s_isallowRunFlightControlSample == true) { 468 if (s_isallowRunFlightControlSample == true) {
1 # cmake 最低版本要求 第三行名字不能动 1 # cmake 最低版本要求 第三行名字不能动
2 cmake_minimum_required(VERSION 2.8) 2 cmake_minimum_required(VERSION 2.8)
3 -project(JZ_C1) 3 +project(JZ_H10T)
4 4
5 set(CMAKE_C_FLAGS "-pthread -std=gnu99 -lm -ldl -lstdc++") 5 set(CMAKE_C_FLAGS "-pthread -std=gnu99 -lm -ldl -lstdc++")
6 #"-pthread":指定在编译时链接POSIX线程库,以支持多线程程序。 6 #"-pthread":指定在编译时链接POSIX线程库,以支持多线程程序。
@@ -429,6 +429,10 @@ int main(int argc, char *argv[]) @@ -429,6 +429,10 @@ int main(int argc, char *argv[])
429 if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { 429 if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
430 USER_LOG_ERROR("data subscription sample init error\n"); 430 USER_LOG_ERROR("data subscription sample init error\n");
431 } 431 }
  432 + else
  433 + {
  434 + USER_LOG_INFO("DjiTest_FcSubscriptionStartService初始化");
  435 + }
432 #endif 436 #endif
433 437
434 #ifdef CONFIG_MODULE_SAMPLE_LIVEVIEW_ON 438 #ifdef CONFIG_MODULE_SAMPLE_LIVEVIEW_ON