作者 潘浩彬

合并分支 'dev_00.00.02.29' 到 'dev'

Dev 00.00.02.29



查看合并请求 !3
1 # 编译链的配置 1 # 编译链的配置
2 2
3 #1、编译链与设备类型的选择 3 #1、编译链与设备类型的选择
4 -set(DEVICE_NAME JZ_H150A) 4 +set(DEVICE_NAME JZ_T40S)
5 #上一行为禁止修改行 5 #上一行为禁止修改行
6 6
7 message("**************************JZSDK构建编译开始***************************\n") 7 message("**************************JZSDK构建编译开始***************************\n")
1 -#include <stdio.h> 1 +#include <stdio.h>
2 #include "../JZsdk_Code/JZsdk_Code.h" 2 #include "../JZsdk_Code/JZsdk_Code.h"
3 3
4 4
@@ -328,7 +328,7 @@ static int Comparison_5BFRAME_FirstLevelCode_0x66(char *getdata) @@ -328,7 +328,7 @@ static int Comparison_5BFRAME_FirstLevelCode_0x66(char *getdata)
328 328
329 //回复警灯控制2类 329 //回复警灯控制2类
330 case 0xA2: 330 case 0xA2:
331 - return JZ_INSCODE_5AFRAME_CHECKSTATUS_WARNINGLIGHT_CONTROL_2; 331 + return JZ_INSCODE_5BFRAME_CHECKSTATUS_WARNINGLIGHT_CONTROL_2;
332 break; 332 break;
333 333
334 default: 334 default:
@@ -62,14 +62,17 @@ static T_JZsdkReturnCode JzUser_LocalWrite(const JZ_U8* data, JZ_U16 dataLen) @@ -62,14 +62,17 @@ static T_JZsdkReturnCode JzUser_LocalWrite(const JZ_U8* data, JZ_U16 dataLen)
62 return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER; 62 return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER;
63 63
64 realLen = fwrite(data, 1, dataLen, logFile); 64 realLen = fwrite(data, 1, dataLen, logFile);
  65 + fflush(logFile);
65 if (realLen != dataLen) 66 if (realLen != dataLen)
66 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; 67 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
67 68
68 - if (fflush(logFile) != 0)  
69 - return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; 69 + //这里后续考虑加入保存fileno
  70 + //if (fflush(logFile) != 0)
  71 + // return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  72 +
  73 + //if (fsync(fileno(logFile)) != 0)
  74 + // return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
70 75
71 - if (fsync(fileno(logFile)) != 0)  
72 - return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;  
73 76
74 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 77 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
75 } 78 }
@@ -144,17 +147,17 @@ static T_JZsdkReturnCode JzUser_LocalWriteFsInit(const JZ_U8 *path) @@ -144,17 +147,17 @@ static T_JZsdkReturnCode JzUser_LocalWriteFsInit(const JZ_U8 *path)
144 147
145 fclose(logFileCnt); 148 fclose(logFileCnt);
146 149
147 - //移除sd卡的计数文件  
148 - memset(systemCmd, 0, sizeof(systemCmd));  
149 - sprintf(systemCmd, "rm -f %sthelast", JZSDK_LOG_PATH);  
150 - ret = system(systemCmd);  
151 - if (ret != 0) {  
152 - JZSDK_LOG_ERROR("Remove file error, ret:%d.\r\n", ret);  
153 - } 150 + ////移除sd卡的计数文件
  151 + //memset(systemCmd, 0, sizeof(systemCmd));
  152 + //sprintf(systemCmd, "rm -f %sthelast", JZSDK_LOG_PATH);
  153 + //ret = system(systemCmd);
  154 + //if (ret != 0) {
  155 + // JZSDK_LOG_ERROR("Remove file error, ret:%d.\r\n", ret);
  156 + //}
154 157
155 //复制日志计数文件到sd卡 158 //复制日志计数文件到sd卡
156 memset(systemCmd, 0, sizeof(systemCmd)); 159 memset(systemCmd, 0, sizeof(systemCmd));
157 - sprintf(systemCmd, "cp %s %s", JZSDK_LOG_INDEX_FILE_NAME, JZSDK_LOG_PATH); 160 + sprintf(systemCmd, "cp %s %s/thelast", JZSDK_LOG_INDEX_FILE_NAME, JZSDK_LOG_PATH);
158 ret = system(systemCmd); 161 ret = system(systemCmd);
159 if (ret != 0) { 162 if (ret != 0) {
160 JZSDK_LOG_ERROR("Copy file error, ret:%d.\r\n", ret); 163 JZSDK_LOG_ERROR("Copy file error, ret:%d.\r\n", ret);
1 -/****************************** 1 +/******************************
2 * 2 *
3 * JZsdk的任务管理模块 3 * JZsdk的任务管理模块
4 * 4 *
@@ -42,6 +42,8 @@ T_JZsdkReturnCode TaskManagement_Init() @@ -42,6 +42,8 @@ T_JZsdkReturnCode TaskManagement_Init()
42 pthread_cond_init(&TaskPool[i].condition, NULL); 42 pthread_cond_init(&TaskPool[i].condition, NULL);
43 pthread_create(&TaskPool[i].thread, NULL, TaskManagement_ThreadFunction, &TaskPool[i]); 43 pthread_create(&TaskPool[i].thread, NULL, TaskManagement_ThreadFunction, &TaskPool[i]);
44 } 44 }
  45 +
  46 +
45 } 47 }
46 48
47 /************** 49 /**************
@@ -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_H150A 10 +#define DEVICE_VERSION JZ_T40S
11 11
12 //禁止修改行 选择是串口程序 还是 psdk程序 12 //禁止修改行 选择是串口程序 还是 psdk程序
13 #define APP_VERSION APP_PSDK 13 #define APP_VERSION APP_PSDK
@@ -23,7 +23,7 @@ @@ -23,7 +23,7 @@
23 #define MODIFY_VERSION_TEN_POSITION 1 23 #define MODIFY_VERSION_TEN_POSITION 1
24 #define MODIFY_VERSION_ONE_POSITION 5 24 #define MODIFY_VERSION_ONE_POSITION 5
25 #define DEBUG_VERSION_TEN_POSITION 0 25 #define DEBUG_VERSION_TEN_POSITION 0
26 -#define DEBUG_VERSION_ONE_POSITION 2 26 +#define DEBUG_VERSION_ONE_POSITION 4
27 27
28 #define FIRMWARE_ORIGIN DOMESTIC_VERSION 28 #define FIRMWARE_ORIGIN DOMESTIC_VERSION
29 29
@@ -3483,6 +3483,8 @@ static T_JZsdkReturnCode RecvDeal_CheckStatus_LaserStatus(int Port, char *getbuf @@ -3483,6 +3483,8 @@ static T_JZsdkReturnCode RecvDeal_CheckStatus_LaserStatus(int Port, char *getbuf
3483 //2、查询激光状态 3483 //2、查询激光状态
3484 int LaserControl = JZ_FLAGCODE_OFF; 3484 int LaserControl = JZ_FLAGCODE_OFF;
3485 int LaserMode = 0; 3485 int LaserMode = 0;
  3486 + int LaserLumen = 0;
  3487 + int LaserColor = 0;
3486 T_JZsdkReturnCode ReturnCode = JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 3488 T_JZsdkReturnCode ReturnCode = JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
3487 3489
3488 #ifdef SIDE_LASER_STATUS_ON 3490 #ifdef SIDE_LASER_STATUS_ON
@@ -3494,6 +3496,15 @@ static T_JZsdkReturnCode RecvDeal_CheckStatus_LaserStatus(int Port, char *getbuf @@ -3494,6 +3496,15 @@ static T_JZsdkReturnCode RecvDeal_CheckStatus_LaserStatus(int Port, char *getbuf
3494 LaserControl = LaserInfo.attribute.status; 3496 LaserControl = LaserInfo.attribute.status;
3495 LaserMode = LaserInfo.attribute.mode; 3497 LaserMode = LaserInfo.attribute.mode;
3496 3498
  3499 + if(LaserInfo.PowerAttribute.flag == JZ_FLAGCODE_ON )
  3500 + {
  3501 + LaserLumen = LaserInfo.PowerAttribute.lumen;
  3502 + LaserColor = LaserInfo.PowerAttribute.color;
  3503 +
  3504 + HalSend_type1Send_LaserLumen(Port, 0x00, LaserLumen);
  3505 + HalSend_type1Send_LaserColor(Port, 0x00, LaserColor);
  3506 + }
  3507 +
3497 #else 3508 #else
3498 3509
3499 JZSDK_LOG_ERROR("没有加载侧边激光模块"); 3510 JZSDK_LOG_ERROR("没有加载侧边激光模块");
@@ -1915,6 +1915,55 @@ T_JZsdkReturnCode HalSend_type1Send_LaserMode(int Uartport, int frameSequence, i @@ -1915,6 +1915,55 @@ T_JZsdkReturnCode HalSend_type1Send_LaserMode(int Uartport, int frameSequence, i
1915 } 1915 }
1916 1916
1917 1917
  1918 +/********************
  1919 + *
  1920 + * 发送侧面激光亮度
  1921 + *
  1922 + * *************/
  1923 +T_JZsdkReturnCode HalSend_type1Send_LaserLumen(int Uartport, int frameSequence, int Lumen)
  1924 +{
  1925 + JZSDK_LOG_INFO("发送侧面激光亮度值帧\n");
  1926 +
  1927 + unsigned char sendbuf[256];
  1928 + int send_buf_len;
  1929 +
  1930 + //1、获取帧样板
  1931 + JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_CHECKSTATUS_LASER_STATUS_LUMEN, sendbuf, &send_buf_len);
  1932 +
  1933 + //2、写入数据
  1934 + sendbuf[6] = frameSequence;
  1935 + sendbuf[9] = Lumen;
  1936 +
  1937 + //3、发送帧
  1938 + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND);
  1939 +}
  1940 +
  1941 +
  1942 +/********************
  1943 + *
  1944 + * 发送侧面激光颜色
  1945 + *
  1946 + * *************/
  1947 +T_JZsdkReturnCode HalSend_type1Send_LaserColor(int Uartport, int frameSequence, int Color)
  1948 +{
  1949 + JZSDK_LOG_INFO("发送侧面激光颜色帧\n");
  1950 +
  1951 + unsigned char sendbuf[256];
  1952 + int send_buf_len;
  1953 +
  1954 + //1、获取帧样板
  1955 + JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_CHECKSTATUS_LASER_STATUS_COLOR, sendbuf, &send_buf_len);
  1956 +
  1957 + //2、写入数据
  1958 + sendbuf[6] = frameSequence;
  1959 + sendbuf[9] = Color;
  1960 +
  1961 + //3、发送帧
  1962 + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND);
  1963 +}
  1964 +
  1965 +
  1966 +
1918 /************* 1967 /*************
1919 * 1968 *
1920 * 发送探照灯温度 1969 * 发送探照灯温度
1 -/** 1 +/**
2 ******************************************************************** 2 ********************************************************************
3 * @file JZsdk_Uart_SendDeal.h 3 * @file JZsdk_Uart_SendDeal.h
4 * 4 *
@@ -131,6 +131,8 @@ T_JZsdkReturnCode HalSend_type1Send_CheckStatus_SearchLight_Temperture(int Uartp @@ -131,6 +131,8 @@ T_JZsdkReturnCode HalSend_type1Send_CheckStatus_SearchLight_Temperture(int Uartp
131 131
132 132
133 T_JZsdkReturnCode HalSend_type1Send_WarningLight_Status(int Uartport, int status, int mode); 133 T_JZsdkReturnCode HalSend_type1Send_WarningLight_Status(int Uartport, int status, int mode);
  134 +T_JZsdkReturnCode HalSend_type1Send_WarningLight_WarningLightMode2(int Uartport, int mode);
  135 +
134 T_JZsdkReturnCode HalSend_type1Send_WarningLight_Color(int Uartport, int color1, int color2); 136 T_JZsdkReturnCode HalSend_type1Send_WarningLight_Color(int Uartport, int color1, int color2);
135 T_JZsdkReturnCode HalSend_type1Send_CheckStatus_WarningLightStatus(int Uartport); 137 T_JZsdkReturnCode HalSend_type1Send_CheckStatus_WarningLightStatus(int Uartport);
136 T_JZsdkReturnCode HalSend_type1Send_CheckStatus_WarningLightColor(int Uartport); 138 T_JZsdkReturnCode HalSend_type1Send_CheckStatus_WarningLightColor(int Uartport);
@@ -149,6 +151,8 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_UpgradeStatus(int Uartport, int status @@ -149,6 +151,8 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_UpgradeStatus(int Uartport, int status
149 151
150 T_JZsdkReturnCode HalSend_type1Send_LaserControl(int Uartport, int frameSequence, int Control); 152 T_JZsdkReturnCode HalSend_type1Send_LaserControl(int Uartport, int frameSequence, int Control);
151 T_JZsdkReturnCode HalSend_type1Send_LaserMode(int Uartport, int frameSequence, int mode); 153 T_JZsdkReturnCode HalSend_type1Send_LaserMode(int Uartport, int frameSequence, int mode);
  154 +T_JZsdkReturnCode HalSend_type1Send_LaserLumen(int Uartport, int frameSequence, int Lumen);
  155 +T_JZsdkReturnCode HalSend_type1Send_LaserColor(int Uartport, int frameSequence, int Color);
152 156
153 157
154 T_JZsdkReturnCode HalSend_type1Send_SetLaserControl(int Uartport, int frameSequence, int Control); 158 T_JZsdkReturnCode HalSend_type1Send_SetLaserControl(int Uartport, int frameSequence, int Control);
@@ -155,7 +155,7 @@ T_JZsdkReturnCode JZsdk_HalUartInit(T_JZsdk_UartInfo* pUartInfo) @@ -155,7 +155,7 @@ T_JZsdkReturnCode JZsdk_HalUartInit(T_JZsdk_UartInfo* pUartInfo)
155 g_pHalInfo->HaveUsePortId[g_pHalInfo->HaveUsePortNum] = pUartInfo->Base.PortId; 155 g_pHalInfo->HaveUsePortId[g_pHalInfo->HaveUsePortNum] = pUartInfo->Base.PortId;
156 g_pHalInfo->HaveUsePortNum++; 156 g_pHalInfo->HaveUsePortNum++;
157 157
158 - JZSDK_LOG_INFO("UART端口 0x%x 初始化成功", pUartInfo->Base.PortId); 158 + JZSDK_LOG_INFO("UART端口 第:%d 0x%x 初始化成功", (g_pHalInfo->HaveUsePortNum - 1), g_pHalInfo->HaveUsePortId[g_pHalInfo->HaveUsePortNum - 1]);
159 ret = JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 159 ret = JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
160 160
161 unlock: 161 unlock:
@@ -296,16 +296,16 @@ T_JZsdkReturnCode JZsdk_HalDirectDataInit(T_JZsdk_DirectDataInfo* pDirectDataInf @@ -296,16 +296,16 @@ T_JZsdkReturnCode JZsdk_HalDirectDataInit(T_JZsdk_DirectDataInfo* pDirectDataInf
296 // 4 初始化直通 296 // 4 初始化直通
297 //(只是把id打开) 297 //(只是把id打开)
298 298
299 - // 5. 保存UART信息到UART数组(使用UartNum作为索引) 299 +
300 int Index = g_pHalInfo->DirectNum; 300 int Index = g_pHalInfo->DirectNum;
301 - memcpy(&g_pHalInfo->DirectDataInfo[Index], pDirectDataInfo, sizeof(T_JZsdk_UartInfo));  
302 - g_pHalInfo->UartNum++; 301 + memcpy(&g_pHalInfo->DirectDataInfo[Index], pDirectDataInfo, sizeof(T_JZsdk_DirectDataInfo));
  302 + g_pHalInfo->DirectNum++;
303 303
304 // 6. 记录端口ID到全局已使用表 304 // 6. 记录端口ID到全局已使用表
305 g_pHalInfo->HaveUsePortId[g_pHalInfo->HaveUsePortNum] = g_pHalInfo->DirectDataInfo->Base.PortId; 305 g_pHalInfo->HaveUsePortId[g_pHalInfo->HaveUsePortNum] = g_pHalInfo->DirectDataInfo->Base.PortId;
306 - g_pHalInfo->HaveUsePortNum++; 306 + (g_pHalInfo->HaveUsePortNum)++;
307 307
308 - JZSDK_LOG_INFO("DIRECT端口 0x%x 初始化成功", pDirectDataInfo->Base.PortId); 308 + JZSDK_LOG_INFO("DIRECT端口 num:%d 0x%x 初始化成功", (g_pHalInfo->HaveUsePortNum - 1 ),pDirectDataInfo->Base.PortId);
309 ret = JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 309 ret = JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
310 310
311 unlock: 311 unlock:
@@ -27,7 +27,7 @@ T_JZsdkReturnCode HeartBeat_HalCheck(void) @@ -27,7 +27,7 @@ T_JZsdkReturnCode HeartBeat_HalCheck(void)
27 T_JZsdk_PortBase* portBase = JZsdk_FindPortBase(portId); 27 T_JZsdk_PortBase* portBase = JZsdk_FindPortBase(portId);
28 if (portBase == NULL) 28 if (portBase == NULL)
29 { 29 {
30 - JZSDK_LOG_WARN("端口 %d 在已使用列表中但未找到对应结构", portId); 30 + JZSDK_LOG_WARN("第 %d 端口 %d 在已使用列表中但未找到对应结构",i ,portId);
31 continue; 31 continue;
32 } 32 }
33 33
@@ -280,7 +280,7 @@ T_JZsdkReturnCode Gimbal_SetGimbalRange(int flag, int FrameSequence,int value) @@ -280,7 +280,7 @@ T_JZsdkReturnCode Gimbal_SetGimbalRange(int flag, int FrameSequence,int value)
280 * ************************************/ 280 * ************************************/
281 T_JZsdkReturnCode Gimbal_Set_GimbalSingleCalibration(E_JZ_GimbalSingleCalibrationMode Mode) 281 T_JZsdkReturnCode Gimbal_Set_GimbalSingleCalibration(E_JZ_GimbalSingleCalibrationMode Mode)
282 { 282 {
283 - JZSDK_LOG_INFO("单边云台校准选择 Mode:%d 0x%x", Mode); 283 + JZSDK_LOG_INFO("单边云台校准选择 Mode:%d", Mode);
284 284
285 switch (Mode) 285 switch (Mode)
286 { 286 {
@@ -299,6 +299,8 @@ T_JZsdkReturnCode Megaphone_TTS_Play(unsigned char *str, unsigned int str_len, i @@ -299,6 +299,8 @@ T_JZsdkReturnCode Megaphone_TTS_Play(unsigned char *str, unsigned int str_len, i
299 { 299 {
300 T_JZsdkReturnCode ret; 300 T_JZsdkReturnCode ret;
301 301
  302 + JZSDK_LOG_INFO("TTS_PLAY:%s",str);
  303 +
302 memset(g_MegaphoneInfo, 0, sizeof(struct MegaphoneInfo)); 304 memset(g_MegaphoneInfo, 0, sizeof(struct MegaphoneInfo));
303 memcpy(g_MegaphoneInfo->str,str,str_len); 305 memcpy(g_MegaphoneInfo->str,str,str_len);
304 g_MegaphoneInfo->str_len = str_len; 306 g_MegaphoneInfo->str_len = str_len;
@@ -1168,15 +1170,19 @@ T_JZsdkReturnCode Megaphone_Init() @@ -1168,15 +1170,19 @@ T_JZsdkReturnCode Megaphone_Init()
1168 1170
1169 //TTS功能初始化 1171 //TTS功能初始化
1170 Megaphone_TTS_Init(); 1172 Megaphone_TTS_Init();
  1173 + JZSDK_LOG_INFO("TTS_INIT_SUCESS");
1171 1174
1172 //音频文件管理功能初始化 1175 //音频文件管理功能初始化
1173 Megaphone_AudioFile_Init(); 1176 Megaphone_AudioFile_Init();
  1177 + JZSDK_LOG_INFO("AUDIO_FILE_INIT_SUCESS");
1174 1178
1175 //pcm列表初始化 1179 //pcm列表初始化
1176 Megaphone_PcmFile_Init(); 1180 Megaphone_PcmFile_Init();
  1181 + JZSDK_LOG_INFO("PCM_FILE_INIT_SUCESS");
1177 1182
1178 //温控初始化 1183 //温控初始化
1179 MegTempControl_Init(); 1184 MegTempControl_Init();
  1185 + JZSDK_LOG_INFO("MEG_TEMP_INIT_SUCESS");
1180 1186
1181 //根据语言信息设置默认语言 1187 //根据语言信息设置默认语言
1182 E_LanguageInfo LanguageInfo = LanguageInfo_Get_LanguageInfo(); 1188 E_LanguageInfo LanguageInfo = LanguageInfo_Get_LanguageInfo();
@@ -60,6 +60,7 @@ T_JZsdkReturnCode OpusInfo_GetList(T_JZ_opusInfo** list, int* count); @@ -60,6 +60,7 @@ T_JZsdkReturnCode OpusInfo_GetList(T_JZ_opusInfo** list, int* count);
60 T_JZsdkReturnCode OpusInfo_DeleteAllByName(const char* fileName); 60 T_JZsdkReturnCode OpusInfo_DeleteAllByName(const char* fileName);
61 T_JZsdkReturnCode OpusInfo_FlushList(); 61 T_JZsdkReturnCode OpusInfo_FlushList();
62 62
  63 +T_JZsdkReturnCode JZsdk_OpusFileSave_Get_g_TempOpus(T_OpusSaveParam* Param);
63 64
64 65
65 T_JZsdkReturnCode OpusInfo_Init(); 66 T_JZsdkReturnCode OpusInfo_Init();
@@ -363,6 +363,8 @@ DecodeFinsh: @@ -363,6 +363,8 @@ DecodeFinsh:
363 /******************* 363 /*******************
364 * 364 *
365 * opus解码线程 365 * opus解码线程
  366 +* 注意,这里只会第一上传的opus调用
  367 +* 如果是opus列表播放,是不会用到这里的
366 * 368 *
367 *******************/ 369 *******************/
368 static void *DecodeOpus_task(void *arg) 370 static void *DecodeOpus_task(void *arg)
@@ -374,6 +376,16 @@ static void *DecodeOpus_task(void *arg) @@ -374,6 +376,16 @@ static void *DecodeOpus_task(void *arg)
374 { 376 {
375 //广播解码失败 377 //广播解码失败
376 Megaphone_Broadcast_OpusDecodeStatus(1); 378 Megaphone_Broadcast_OpusDecodeStatus(1);
  379 +
  380 + //如果开启了opus保存,则把opus列表里的也移除
  381 + //从opusfilesave.c 里获取第一次上传后,是否开启保存,以及保存的地址
  382 + T_OpusSaveParam Param = { 0 };
  383 +
  384 + JZsdk_OpusFileSave_Get_g_TempOpus(&Param);
  385 + if (Param.saveflag == JZ_FLAGCODE_ON && Param.FileName != NULL)
  386 + {
  387 + OpusInfo_DeleteAllByName(Param.FileName);
  388 + }
377 } 389 }
378 else 390 else
379 { 391 {
@@ -6,7 +6,13 @@ @@ -6,7 +6,13 @@
6 #define OPUS_TEMP_SAVE_DIR "/root/test_audio.opus" 6 #define OPUS_TEMP_SAVE_DIR "/root/test_audio.opus"
7 7
8 8
9 -static T_OpusSaveParam g_TempOpus = {0}; 9 +static T_OpusSaveParam g_TempOpus = {
  10 + .BitRate = 0,
  11 + .Channels = 0,
  12 + .FileName = {0},
  13 + .SampleRate = 0,
  14 + .saveflag = JZ_FLAGCODE_OFF
  15 +};
10 static int g_OpusFile_SaveFlag = JZ_FLAGCODE_OFF; //判断是否开启保存中的标志位 16 static int g_OpusFile_SaveFlag = JZ_FLAGCODE_OFF; //判断是否开启保存中的标志位
11 static int g_OpusFile_SaveLen = 0; //当前文件已存储的长度 17 static int g_OpusFile_SaveLen = 0; //当前文件已存储的长度
12 static T_JZTaskHandle s_OpusSaveThread = NULL; 18 static T_JZTaskHandle s_OpusSaveThread = NULL;
@@ -19,6 +25,13 @@ int OpusFile_GetSaveFlag() @@ -19,6 +25,13 @@ int OpusFile_GetSaveFlag()
19 return g_OpusFile_SaveFlag; 25 return g_OpusFile_SaveFlag;
20 } 26 }
21 27
  28 +T_JZsdkReturnCode JZsdk_OpusFileSave_Get_g_TempOpus(T_OpusSaveParam *Param)
  29 +{
  30 + memcpy(Param, &g_TempOpus, sizeof(T_OpusSaveParam));
  31 +
  32 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  33 +}
  34 +
22 /****************** 35 /******************
23 * 36 *
24 * 37 *
@@ -72,6 +85,7 @@ T_JZsdkReturnCode OpusFile_SaveOpusFileStart(T_OpusSaveParam TempOpus) @@ -72,6 +85,7 @@ T_JZsdkReturnCode OpusFile_SaveOpusFileStart(T_OpusSaveParam TempOpus)
72 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; 85 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
73 } 86 }
74 87
  88 + g_OpusFile_SaveLen = 0;
75 g_OpusFile_SaveFlag = JZ_FLAGCODE_ON; 89 g_OpusFile_SaveFlag = JZ_FLAGCODE_ON;
76 90
77 //创建存储显示线程 91 //创建存储显示线程
@@ -18,6 +18,8 @@ @@ -18,6 +18,8 @@
18 18
19 #include "iflytek_tts.h" 19 #include "iflytek_tts.h"
20 20
  21 +static int ttsFlag = JZ_FLAGCODE_OFF; //避免同时2个tts线程
  22 +
21 static T_JZsdkReturnCode IflyTek_2_Tts_Input(int language, char *Text, int speed, int volume) 23 static T_JZsdkReturnCode IflyTek_2_Tts_Input(int language, char *Text, int speed, int volume)
22 { 24 {
23 //1、将JZSDK的Language索引值转换为 IFLTEK2的语言索引值 25 //1、将JZSDK的Language索引值转换为 IFLTEK2的语言索引值
@@ -157,6 +159,8 @@ static T_JZsdkReturnCode TTS_FILE_play(struct t_Megaphone_tts_param *Megaphone_t @@ -157,6 +159,8 @@ static T_JZsdkReturnCode TTS_FILE_play(struct t_Megaphone_tts_param *Megaphone_t
157 //TTS合成线程 159 //TTS合成线程
158 static void *Play_cntts_pthread(void *arg) 160 static void *Play_cntts_pthread(void *arg)
159 { 161 {
  162 + ttsFlag = JZ_FLAGCODE_ON;
  163 +
160 struct t_Megaphone_tts_param *Megaphone_tts_param = (struct t_Megaphone_tts_param *) arg; 164 struct t_Megaphone_tts_param *Megaphone_tts_param = (struct t_Megaphone_tts_param *) arg;
161 165
162 int ReplyFlag = Megaphone_tts_param->ReplyFlag; 166 int ReplyFlag = Megaphone_tts_param->ReplyFlag;
@@ -199,6 +203,7 @@ static void *Play_cntts_pthread(void *arg) @@ -199,6 +203,7 @@ static void *Play_cntts_pthread(void *arg)
199 Megaphone_status_Broadcast(JZ_FLAGCODE_OFF); 203 Megaphone_status_Broadcast(JZ_FLAGCODE_OFF);
200 } 204 }
201 205
  206 + ttsFlag = JZ_FLAGCODE_OFF;
202 } 207 }
203 208
204 /********* 209 /*********
@@ -208,6 +213,12 @@ static void *Play_cntts_pthread(void *arg) @@ -208,6 +213,12 @@ static void *Play_cntts_pthread(void *arg)
208 **********/ 213 **********/
209 T_JZsdkReturnCode Iflytek_2_Play(unsigned char *str, unsigned int str_len, int ReplyFlag) 214 T_JZsdkReturnCode Iflytek_2_Play(unsigned char *str, unsigned int str_len, int ReplyFlag)
210 { 215 {
  216 + //保证一次只有一个文本线程在运行
  217 + while (ttsFlag == JZ_FLAGCODE_ON)
  218 + {
  219 + delayMs(1);
  220 + }
  221 +
211 //1、制造一个数据产生函数 222 //1、制造一个数据产生函数
212 pthread_t TTS_flie_task; 223 pthread_t TTS_flie_task;
213 pthread_attr_t task_attribute; //线程属性 224 pthread_attr_t task_attribute; //线程属性
1 -#include "JZsdkLib.h" 1 +#include "JZsdkLib.h"
2 #include "Megaphone.h" 2 #include "Megaphone.h"
3 #include "./VolumeLimit.h" 3 #include "./VolumeLimit.h"
4 #include "DeviceInfo/DeviceInfo.h" 4 #include "DeviceInfo/DeviceInfo.h"
@@ -124,7 +124,7 @@ static T_JZsdkReturnCode Megaphone_SetTTSvolume() @@ -124,7 +124,7 @@ static T_JZsdkReturnCode Megaphone_SetTTSvolume()
124 //v3s自设系统 要提高10初始音量 124 //v3s自设系统 要提高10初始音量
125 if (DEVICE_VERSION == JZ_H10T || DEVICE_VERSION == JZ_U3 || 125 if (DEVICE_VERSION == JZ_H10T || DEVICE_VERSION == JZ_U3 ||
126 DEVICE_VERSION == JZ_U3S || DEVICE_VERSION == JZ_U3D || 126 DEVICE_VERSION == JZ_U3S || DEVICE_VERSION == JZ_U3D ||
127 - DEVICE_VERSION == JZ_U30 || DEVICE_VERSION == JZ_T40 || DEVICE_VERSION == JZ_T40S) 127 + DEVICE_VERSION == JZ_U30 || DEVICE_VERSION == JZ_T40S || DEVICE_VERSION == JZ_H150A)
128 { 128 {
129 if (value > 0) 129 if (value > 0)
130 { 130 {
@@ -104,6 +104,7 @@ static T_JZsdkReturnCode UI_control_SecondaryWidgetArraySet(int type, int value) @@ -104,6 +104,7 @@ static T_JZsdkReturnCode UI_control_SecondaryWidgetArraySet(int type, int value)
104 T_JZsdkToPsdkHandler *handle = ExpansionApi_JZsdkToPsdk_GetHandler(); 104 T_JZsdkToPsdkHandler *handle = ExpansionApi_JZsdkToPsdk_GetHandler();
105 if (handle == NULL) 105 if (handle == NULL)
106 { 106 {
  107 + JZSDK_LOG_ERROR("api handle is null");
107 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; 108 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
108 } 109 }
109 110
@@ -129,6 +130,10 @@ static T_JZsdkReturnCode UI_control_SecondaryWidgetArraySet(int type, int value) @@ -129,6 +130,10 @@ static T_JZsdkReturnCode UI_control_SecondaryWidgetArraySet(int type, int value)
129 { 130 {
130 return handle->Set_UI_SpeakerWidget_Volume(value); 131 return handle->Set_UI_SpeakerWidget_Volume(value);
131 } 132 }
  133 + else
  134 + {
  135 + JZSDK_LOG_ERROR("音量表格错误");
  136 + }
132 break; 137 break;
133 138
134 139
1 -#include "Psdk_ui_value_menu.h" 1 +#include "Psdk_ui_value_menu.h"
2 #include "JZsdkLib.h" 2 #include "JZsdkLib.h"
3 #include "DeviceInfo/DeviceInfo.h" 3 #include "DeviceInfo/DeviceInfo.h"
4 4
@@ -322,14 +322,14 @@ static T_JZsdkReturnCode JZsdk_UI_DJIpsdk_Widget_set(JZsdk_Widget_Control index, @@ -322,14 +322,14 @@ static T_JZsdkReturnCode JZsdk_UI_DJIpsdk_Widget_set(JZsdk_Widget_Control index,
322 case JZSDK_WIDGET_SIDE_LASER_LUMEN: 322 case JZSDK_WIDGET_SIDE_LASER_LUMEN:
323 { 323 {
324 temp = value; 324 temp = value;
325 - UI_control_WidgetArraySet(34, temp); 325 + UI_control_WidgetArraySet(30, temp);
326 } 326 }
327 break; 327 break;
328 328
329 case JZSDK_WIDGET_SIDE_LASER_COLOR: 329 case JZSDK_WIDGET_SIDE_LASER_COLOR:
330 { 330 {
331 temp = value; 331 temp = value;
332 - UI_control_WidgetArraySet(35, temp); 332 + UI_control_WidgetArraySet(31, temp);
333 } 333 }
334 break; 334 break;
335 335
@@ -1927,6 +1927,10 @@ T_JZsdkReturnCode UIcontrol_ObtainWarningLight_Status(int DeviceName, int status @@ -1927,6 +1927,10 @@ T_JZsdkReturnCode UIcontrol_ObtainWarningLight_Status(int DeviceName, int status
1927 //1、设置本地存储值 1927 //1、设置本地存储值
1928 WarnLight_Obatin_StatusAndMode(status, mode); 1928 WarnLight_Obatin_StatusAndMode(status, mode);
1929 1929
  1930 + //获取当前警灯属性
  1931 + T_JzWarnLightAttribute LightAttribute;
  1932 + WarnLight_Get_Attribute(&LightAttribute);
  1933 +
1930 //2、通知其他设备变化 1934 //2、通知其他设备变化
1931 if ((JZsdk_HalPort_UseFlag(UART_4G) == JZ_FLAGCODE_ON) && (DeviceName != UART_4G) ) 1935 if ((JZsdk_HalPort_UseFlag(UART_4G) == JZ_FLAGCODE_ON) && (DeviceName != UART_4G) )
1932 { 1936 {
@@ -1945,7 +1949,18 @@ T_JZsdkReturnCode UIcontrol_ObtainWarningLight_Status(int DeviceName, int status @@ -1945,7 +1949,18 @@ T_JZsdkReturnCode UIcontrol_ObtainWarningLight_Status(int DeviceName, int status
1945 //如果psdk接口已经使用 1949 //如果psdk接口已经使用
1946 if ( (JZsdk_HalPort_UseFlag(DEVICE_PSDK) == JZ_FLAGCODE_ON) && DeviceName != DEVICE_PSDK ) 1950 if ( (JZsdk_HalPort_UseFlag(DEVICE_PSDK) == JZ_FLAGCODE_ON) && DeviceName != DEVICE_PSDK )
1947 { 1951 {
  1952 + int index;
  1953 +
  1954 + if (LightAttribute.status == JZ_FLAGCODE_OFF)
  1955 + {
  1956 + index = 0;
  1957 + }
  1958 + else
  1959 + {
  1960 + index = LightAttribute.mode;
  1961 + }
1948 1962
  1963 + JZsdk_Psdk_UI_io_Set_WarningLightMode(JZ_FLAGCODE_OFF, index);
1949 } 1964 }
1950 1965
1951 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 1966 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
@@ -2802,14 +2817,17 @@ T_JZsdkReturnCode UIcontrol_SideLaser_SetLumen(int DeviceName, int WeatherFlush, @@ -2802,14 +2817,17 @@ T_JZsdkReturnCode UIcontrol_SideLaser_SetLumen(int DeviceName, int WeatherFlush,
2802 //2、通知其他设备变化 2817 //2、通知其他设备变化
2803 if ((JZsdk_HalPort_UseFlag(UART_4G) == JZ_FLAGCODE_ON) && (DeviceName != UART_4G)) 2818 if ((JZsdk_HalPort_UseFlag(UART_4G) == JZ_FLAGCODE_ON) && (DeviceName != UART_4G))
2804 { 2819 {
  2820 + HalSend_type1Send_LaserLumen(UART_4G, 0x00, Info.PowerAttribute.lumen);
2805 } 2821 }
2806 //如果设备1有启动 2822 //如果设备1有启动
2807 if ((JZsdk_HalPort_UseFlag(UART_DEV_1) == JZ_FLAGCODE_ON) && (DeviceName != UART_DEV_1)) 2823 if ((JZsdk_HalPort_UseFlag(UART_DEV_1) == JZ_FLAGCODE_ON) && (DeviceName != UART_DEV_1))
2808 { 2824 {
  2825 + HalSend_type1Send_LaserLumen(UART_DEV_1, 0x00, Info.PowerAttribute.lumen);
2809 } 2826 }
2810 //如果设备2有启动 2827 //如果设备2有启动
2811 if ((JZsdk_HalPort_UseFlag(UART_DEV_2) == JZ_FLAGCODE_ON) && (DeviceName != UART_DEV_2)) 2828 if ((JZsdk_HalPort_UseFlag(UART_DEV_2) == JZ_FLAGCODE_ON) && (DeviceName != UART_DEV_2))
2812 { 2829 {
  2830 + HalSend_type1Send_LaserLumen(UART_DEV_2, 0x00, Info.PowerAttribute.lumen);
2813 } 2831 }
2814 //如果psdk接口已经使用 2832 //如果psdk接口已经使用
2815 if ((JZsdk_HalPort_UseFlag(DEVICE_PSDK) == JZ_FLAGCODE_ON) && DeviceName != DEVICE_PSDK) 2833 if ((JZsdk_HalPort_UseFlag(DEVICE_PSDK) == JZ_FLAGCODE_ON) && DeviceName != DEVICE_PSDK)
@@ -2844,14 +2862,17 @@ T_JZsdkReturnCode UIcontrol_SideLaser_SetColor(int DeviceName, int value) @@ -2844,14 +2862,17 @@ T_JZsdkReturnCode UIcontrol_SideLaser_SetColor(int DeviceName, int value)
2844 //2、通知其他设备变化 2862 //2、通知其他设备变化
2845 if ((JZsdk_HalPort_UseFlag(UART_4G) == JZ_FLAGCODE_ON) && (DeviceName != UART_4G)) 2863 if ((JZsdk_HalPort_UseFlag(UART_4G) == JZ_FLAGCODE_ON) && (DeviceName != UART_4G))
2846 { 2864 {
  2865 + HalSend_type1Send_LaserColor(UART_4G, 0x00, Info.PowerAttribute.color);
2847 } 2866 }
2848 //如果设备1有启动 2867 //如果设备1有启动
2849 if ((JZsdk_HalPort_UseFlag(UART_DEV_1) == JZ_FLAGCODE_ON) && (DeviceName != UART_DEV_1)) 2868 if ((JZsdk_HalPort_UseFlag(UART_DEV_1) == JZ_FLAGCODE_ON) && (DeviceName != UART_DEV_1))
2850 { 2869 {
  2870 + HalSend_type1Send_LaserColor(UART_DEV_1, 0x00, Info.PowerAttribute.color);
2851 } 2871 }
2852 //如果设备2有启动 2872 //如果设备2有启动
2853 if ((JZsdk_HalPort_UseFlag(UART_DEV_2) == JZ_FLAGCODE_ON) && (DeviceName != UART_DEV_2)) 2873 if ((JZsdk_HalPort_UseFlag(UART_DEV_2) == JZ_FLAGCODE_ON) && (DeviceName != UART_DEV_2))
2854 { 2874 {
  2875 + HalSend_type1Send_LaserColor(UART_DEV_2, 0x00, Info.PowerAttribute.color);
2855 } 2876 }
2856 //如果psdk接口已经使用 2877 //如果psdk接口已经使用
2857 if ((JZsdk_HalPort_UseFlag(DEVICE_PSDK) == JZ_FLAGCODE_ON) && DeviceName != DEVICE_PSDK) 2878 if ((JZsdk_HalPort_UseFlag(DEVICE_PSDK) == JZ_FLAGCODE_ON) && DeviceName != DEVICE_PSDK)
@@ -2908,7 +2929,6 @@ T_JZsdkReturnCode UIcontrol_Broadcast_PlayStatus_end() @@ -2908,7 +2929,6 @@ T_JZsdkReturnCode UIcontrol_Broadcast_PlayStatus_end()
2908 } 2929 }
2909 2930
2910 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 2931 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
2911 -  
2912 } 2932 }
2913 2933
2914 2934
1 -#include "JZsdkLib.h" 1 +#include "JZsdkLib.h"
2 2
3 #include "version_choose.h" 3 #include "version_choose.h"
4 #include "Hal_Send/HalSend.h" 4 #include "Hal_Send/HalSend.h"
@@ -148,14 +148,15 @@ T_JZsdkReturnCode WarnLight_Get_Attribute(T_JzWarnLightAttribute *Attribute) @@ -148,14 +148,15 @@ T_JZsdkReturnCode WarnLight_Get_Attribute(T_JzWarnLightAttribute *Attribute)
148 148
149 T_JZsdkReturnCode WarnLight_SendStatus(T_JzWarnLightAttribute LightAttribute, int UartPort) 149 T_JZsdkReturnCode WarnLight_SendStatus(T_JzWarnLightAttribute LightAttribute, int UartPort)
150 { 150 {
  151 + //Ⅰ型控制
151 if (g_WarnLightInfo.mode_version == 0) 152 if (g_WarnLightInfo.mode_version == 0)
152 { 153 {
153 - HalSend_type1Send_WarningLight_Status(UartPort, LightAttribute.status, LightAttribute.mode); 154 + HalSend_type1Send_WarningLight_Status(UartPort, LightAttribute.status, (LightAttribute.mode - 1));
  155 + }
  156 + else
  157 + {
  158 + HalSend_type1Send_WarningLight_WarningLightMode2(UartPort, LightAttribute.mode);
154 } 159 }
155 - // else  
156 - // {  
157 - // HalSend_type1Send_WarningLight_Status_2(UartPort, LightAttribute.mode);  
158 - // }  
159 160
160 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 161 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
161 } 162 }
@@ -171,10 +171,10 @@ static const T_DjiWidgetHandlerListItem s_widgetHandlerList[] = { @@ -171,10 +171,10 @@ static const T_DjiWidgetHandlerListItem s_widgetHandlerList[] = {
171 {28, DJI_WIDGET_TYPE_LIST, DjiTestWidget_SetWidgetValue, DjiTestWidget_GetWidgetValue, NULL}, //云台补偿模式 171 {28, DJI_WIDGET_TYPE_LIST, DjiTestWidget_SetWidgetValue, DjiTestWidget_GetWidgetValue, NULL}, //云台补偿模式
172 {29, DJI_WIDGET_TYPE_BUTTON, DjiTestWidget_SetWidgetValue, DjiTestWidget_GetWidgetValue, NULL}, //设置云台补偿值 172 {29, DJI_WIDGET_TYPE_BUTTON, DjiTestWidget_SetWidgetValue, DjiTestWidget_GetWidgetValue, NULL}, //设置云台补偿值
173 173
  174 + {30, DJI_WIDGET_TYPE_SCALE, DjiTestWidget_SetWidgetValue, DjiTestWidget_GetWidgetValue, NULL},//占坑
  175 + {31, DJI_WIDGET_TYPE_LIST, DjiTestWidget_SetWidgetValue, DjiTestWidget_GetWidgetValue, NULL},//占坑
  176 +
174 //占坑 后续加载方法肯定要换,这种手写方式太不好了 177 //占坑 后续加载方法肯定要换,这种手写方式太不好了
175 - {29, DJI_WIDGET_TYPE_BUTTON, DjiTestWidget_SetWidgetValue, DjiTestWidget_GetWidgetValue, NULL},//占坑  
176 - {30, DJI_WIDGET_TYPE_BUTTON, DjiTestWidget_SetWidgetValue, DjiTestWidget_GetWidgetValue, NULL},//占坑  
177 - {31, DJI_WIDGET_TYPE_BUTTON, DjiTestWidget_SetWidgetValue, DjiTestWidget_GetWidgetValue, NULL},//占坑  
178 {32, DJI_WIDGET_TYPE_BUTTON, DjiTestWidget_SetWidgetValue, DjiTestWidget_GetWidgetValue, NULL},//占坑 178 {32, DJI_WIDGET_TYPE_BUTTON, DjiTestWidget_SetWidgetValue, DjiTestWidget_GetWidgetValue, NULL},//占坑
179 {33, DJI_WIDGET_TYPE_BUTTON, DjiTestWidget_SetWidgetValue, DjiTestWidget_GetWidgetValue, NULL},//占坑 179 {33, DJI_WIDGET_TYPE_BUTTON, DjiTestWidget_SetWidgetValue, DjiTestWidget_GetWidgetValue, NULL},//占坑
180 {34, DJI_WIDGET_TYPE_BUTTON, DjiTestWidget_SetWidgetValue, DjiTestWidget_GetWidgetValue, NULL},//占坑 180 {34, DJI_WIDGET_TYPE_BUTTON, DjiTestWidget_SetWidgetValue, DjiTestWidget_GetWidgetValue, NULL},//占坑
@@ -639,14 +639,14 @@ static T_JZsdkReturnCode Megphone_Widget(unsigned int index, unsigned int value) @@ -639,14 +639,14 @@ static T_JZsdkReturnCode Megphone_Widget(unsigned int index, unsigned int value)
639 639
640 case 3://内显示音量 scale 640 case 3://内显示音量 scale
641 { 641 {
642 - delayMs(50);//避免拉滑动条设置太多次 642 + delayMs(100);//避免拉滑动条设置太多次
643 JZsdk_Psdk_UI_io_LumenAndVolume_PowerLimitation(1, value); 643 JZsdk_Psdk_UI_io_LumenAndVolume_PowerLimitation(1, value);
644 JZsdk_Psdk_UI_io_SetVolume(1,value); 644 JZsdk_Psdk_UI_io_SetVolume(1,value);
645 break; 645 break;
646 } 646 }
647 case 4://外显示音量 scale 647 case 4://外显示音量 scale
648 { 648 {
649 - delayMs(50);//避免拉滑动条设置太多次 649 + delayMs(100);//避免拉滑动条设置太多次
650 JZsdk_Psdk_UI_io_LumenAndVolume_PowerLimitation(1, value); 650 JZsdk_Psdk_UI_io_LumenAndVolume_PowerLimitation(1, value);
651 JZsdk_Psdk_UI_io_SetVolume(1,value); 651 JZsdk_Psdk_UI_io_SetVolume(1,value);
652 break; 652 break;
@@ -751,14 +751,14 @@ static T_JZsdkReturnCode Megphone_Widget(unsigned int index, unsigned int value) @@ -751,14 +751,14 @@ static T_JZsdkReturnCode Megphone_Widget(unsigned int index, unsigned int value)
751 break; 751 break;
752 } 752 }
753 753
754 - case 34://激光亮度 754 + case 30://激光亮度
755 { 755 {
756 int lumen = value; 756 int lumen = value;
757 JZSDK_WidgetMgMT_ConrtrolInputTask(JZSDK_WIDGET_SIDE_LASER_LUMEN, lumen); 757 JZSDK_WidgetMgMT_ConrtrolInputTask(JZSDK_WIDGET_SIDE_LASER_LUMEN, lumen);
758 break; 758 break;
759 } 759 }
760 760
761 - case 35://激光颜色 761 + case 31://激光颜色
762 { 762 {
763 int color = value; 763 int color = value;
764 JZSDK_WidgetMgMT_ConrtrolInputTask(JZSDK_WIDGET_SIDE_LASER_COLOR, color); 764 JZSDK_WidgetMgMT_ConrtrolInputTask(JZSDK_WIDGET_SIDE_LASER_COLOR, color);
@@ -927,6 +927,7 @@ static T_JZsdkReturnCode Megphone_Widget(unsigned int index, unsigned int value) @@ -927,6 +927,7 @@ static T_JZsdkReturnCode Megphone_Widget(unsigned int index, unsigned int value)
927 927
928 case 42://设置云台补偿 928 case 42://设置云台补偿
929 { 929 {
  930 + JZSDK_LOG_INFO("设置云台补充:%d", Temp_GimbalCompensation_Flag);
930 Temp_GimbalCalibration_Flag = value; 931 Temp_GimbalCalibration_Flag = value;
931 break; 932 break;
932 } 933 }
1 -/** 1 +/**
2 ******************************************************************** 2 ********************************************************************
3 * @file test_widget_speaker.c 3 * @file test_widget_speaker.c
4 * @brief 4 * @brief
@@ -320,7 +320,7 @@ DecodeFinsh: @@ -320,7 +320,7 @@ DecodeFinsh:
320 320
321 static T_DjiReturnCode DjiTest_PlayAudioData(void) 321 static T_DjiReturnCode DjiTest_PlayAudioData(void)
322 { 322 {
323 - USER_LOG_INFO("播放固定位置的录音DjiTest_PlayAudioData "); 323 + JZSDK_LOG_INFO("播放固定位置的录音DjiTest_PlayAudioData ");
324 #ifdef MEGAPHONE_CONFIG_STATUS_ON 324 #ifdef MEGAPHONE_CONFIG_STATUS_ON
325 do 325 do
326 { 326 {
@@ -350,6 +350,7 @@ static T_DjiReturnCode DjiTest_PlayTtsData(void) @@ -350,6 +350,7 @@ static T_DjiReturnCode DjiTest_PlayTtsData(void)
350 T_DjiReturnCode returnCode; 350 T_DjiReturnCode returnCode;
351 351
352 USER_LOG_INFO("DjiTest_PlayTtsData"); 352 USER_LOG_INFO("DjiTest_PlayTtsData");
  353 + JZSDK_LOG_INFO("DjiTest_PlayTtsData");
353 354
354 returnCode = DjiAircraftInfo_GetBaseInfo(&aircraftInfoBaseInfo); 355 returnCode = DjiAircraftInfo_GetBaseInfo(&aircraftInfoBaseInfo);
355 if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { 356 if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
@@ -398,7 +399,7 @@ static T_DjiReturnCode DjiTest_PlayTtsData(void) @@ -398,7 +399,7 @@ static T_DjiReturnCode DjiTest_PlayTtsData(void)
398 #ifdef MEGAPHONE_CONFIG_STATUS_ON 399 #ifdef MEGAPHONE_CONFIG_STATUS_ON
399 400
400 //增加一个标志位,确认播放完成 401 //增加一个标志位,确认播放完成
401 - while (Megaphone_GetMegaphoneStatus() == 0x20) //如果仍然在播放opus录音 402 + while (Megaphone_GetMegaphoneStatus() == 0x20) //如果仍然在播放tts
402 { 403 {
403 delayMs(100); 404 delayMs(100);
404 } 405 }
@@ -645,7 +646,7 @@ static T_DjiReturnCode ReceiveTtsData(E_DjiWidgetTransmitDataEvent event, @@ -645,7 +646,7 @@ static T_DjiReturnCode ReceiveTtsData(E_DjiWidgetTransmitDataEvent event,
645 T_DjiReturnCode returnCode; 646 T_DjiReturnCode returnCode;
646 647
647 tts_Or_audio_flag = 1; 648 tts_Or_audio_flag = 1;
648 - JZSDK_LOG_INFO("TTS接收"); 649 + JZSDK_LOG_INFO("TTS接收 :%d size:%d", event, size);
649 650
650 if (event == DJI_WIDGET_TRANSMIT_DATA_EVENT_START) { 651 if (event == DJI_WIDGET_TRANSMIT_DATA_EVENT_START) {
651 USER_LOG_INFO("Create tts file."); 652 USER_LOG_INFO("Create tts file.");
@@ -703,7 +704,9 @@ static T_DjiReturnCode ReceiveAudioData(E_DjiWidgetTransmitDataEvent event, @@ -703,7 +704,9 @@ static T_DjiReturnCode ReceiveAudioData(E_DjiWidgetTransmitDataEvent event,
703 int RealTime_PlayMode_Switch = Get_Opus_PlayMode(); 704 int RealTime_PlayMode_Switch = Get_Opus_PlayMode();
704 705
705 tts_Or_audio_flag = 2; 706 tts_Or_audio_flag = 2;
706 - JZSDK_LOG_INFO("audio接收"); 707 + //JZSDK_LOG_INFO("audio接收");
  708 +
  709 + JZSDK_LOG_INFO("AUDIO接收 :%d size:%d", event, size);
707 710
708 if(RealTime_PlayMode_Switch == 0) 711 if(RealTime_PlayMode_Switch == 0)
709 { 712 {
@@ -844,7 +847,7 @@ static T_DjiReturnCode ReceiveAudioData(E_DjiWidgetTransmitDataEvent event, @@ -844,7 +847,7 @@ static T_DjiReturnCode ReceiveAudioData(E_DjiWidgetTransmitDataEvent event,
844 } 847 }
845 } 848 }
846 849
847 - JZSDK_LOG_INFO("audio接受完毕"); 850 + //JZSDK_LOG_INFO("audio接受完毕");
848 851
849 return DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 852 return DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
850 } 853 }
@@ -872,29 +875,29 @@ static void *DjiTest_WidgetSpeakerTask(void *arg) @@ -872,29 +875,29 @@ static void *DjiTest_WidgetSpeakerTask(void *arg)
872 } 875 }
873 876
874 if (s_speakerState.state == DJI_WIDGET_SPEAKER_STATE_PLAYING) { 877 if (s_speakerState.state == DJI_WIDGET_SPEAKER_STATE_PLAYING) {
875 - //如果处于回放模式  
876 - if (s_speakerState.playMode == DJI_WIDGET_SPEAKER_PLAY_MODE_LOOP_PLAYBACK)  
877 - {  
878 - if (s_speakerState.workMode == DJI_WIDGET_SPEAKER_WORK_MODE_VOICE) {  
879 - USER_LOG_DEBUG("Waiting opus decoder finished...");  
880 - while (s_isDecodeFinished == false) {  
881 - osalHandler->TaskSleepMs(1);  
882 - }  
883 - djiReturnCode = DjiTest_PlayAudioData();  
884 - if (djiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {  
885 - USER_LOG_ERROR("Play audio data failed, error: 0x%08llX.", djiReturnCode);  
886 - }  
887 - } else {  
888 - djiReturnCode = DjiTest_PlayTtsData();  
889 - if (djiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {  
890 - USER_LOG_ERROR("Play tts data failed, error: 0x%08llX.", djiReturnCode);  
891 - }  
892 - }  
893 - osalHandler->TaskSleepMs(1000);  
894 - }  
895 -  
896 - //单放模式  
897 - else { 878 + ////如果处于回放模式
  879 + //if (s_speakerState.playMode == DJI_WIDGET_SPEAKER_PLAY_MODE_LOOP_PLAYBACK)
  880 + //{
  881 + // if (s_speakerState.workMode == DJI_WIDGET_SPEAKER_WORK_MODE_VOICE) {
  882 + // USER_LOG_DEBUG("Waiting opus decoder finished...");
  883 + // while (s_isDecodeFinished == false) {
  884 + // osalHandler->TaskSleepMs(1);
  885 + // }
  886 + // djiReturnCode = DjiTest_PlayAudioData();
  887 + // if (djiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
  888 + // USER_LOG_ERROR("Play audio data failed, error: 0x%08llX.", djiReturnCode);
  889 + // }
  890 + // } else {
  891 + // djiReturnCode = DjiTest_PlayTtsData();
  892 + // if (djiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
  893 + // USER_LOG_ERROR("Play tts data failed, error: 0x%08llX.", djiReturnCode);
  894 + // }
  895 + // }
  896 + // osalHandler->TaskSleepMs(1000);
  897 + //}
  898 + //
  899 + ////单放模式
  900 + //else {
898 //如果工作模式为语音 901 //如果工作模式为语音
899 if (s_speakerState.workMode == DJI_WIDGET_SPEAKER_WORK_MODE_VOICE) 902 if (s_speakerState.workMode == DJI_WIDGET_SPEAKER_WORK_MODE_VOICE)
900 { 903 {
@@ -920,16 +923,16 @@ static void *DjiTest_WidgetSpeakerTask(void *arg) @@ -920,16 +923,16 @@ static void *DjiTest_WidgetSpeakerTask(void *arg)
920 USER_LOG_ERROR("lock mutex error: 0x%08llX.", djiReturnCode); 923 USER_LOG_ERROR("lock mutex error: 0x%08llX.", djiReturnCode);
921 } 924 }
922 925
923 - if (s_speakerState.playMode == DJI_WIDGET_SPEAKER_PLAY_MODE_SINGLE_PLAY)  
924 - { 926 + //if (s_speakerState.playMode == DJI_WIDGET_SPEAKER_PLAY_MODE_SINGLE_PLAY)
  927 + //{
925 s_speakerState.state = DJI_WIDGET_SPEAKER_STATE_IDEL; 928 s_speakerState.state = DJI_WIDGET_SPEAKER_STATE_IDEL;
926 - } 929 + //}
927 930
928 djiReturnCode = osalHandler->MutexUnlock(s_speakerMutex); 931 djiReturnCode = osalHandler->MutexUnlock(s_speakerMutex);
929 if (djiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { 932 if (djiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
930 USER_LOG_ERROR("unlock mutex error: 0x%08llX.", djiReturnCode); 933 USER_LOG_ERROR("unlock mutex error: 0x%08llX.", djiReturnCode);
931 } 934 }
932 - } 935 + //}
933 } 936 }
934 } 937 }
935 } 938 }
@@ -948,7 +951,7 @@ T_JZsdkReturnCode Speaker_Set_SpeakerState_state(int value) @@ -948,7 +951,7 @@ T_JZsdkReturnCode Speaker_Set_SpeakerState_state(int value)
948 s_speakerState.state = value; 951 s_speakerState.state = value;
949 } 952 }
950 953
951 -//循环模式 954 +//循环模式90
952 T_JZsdkReturnCode Speaker_Set_SpeakerPlaymode(int value) 955 T_JZsdkReturnCode Speaker_Set_SpeakerPlaymode(int value)
953 { 956 {
954 s_speakerState.playMode = value; 957 s_speakerState.playMode = value;
@@ -957,6 +960,7 @@ T_JZsdkReturnCode Speaker_Set_SpeakerPlaymode(int value) @@ -957,6 +960,7 @@ T_JZsdkReturnCode Speaker_Set_SpeakerPlaymode(int value)
957 //音量 960 //音量
958 T_JZsdkReturnCode Speaker_Set_SpeakerVolume(int value) 961 T_JZsdkReturnCode Speaker_Set_SpeakerVolume(int value)
959 { 962 {
  963 + //JZSDK_LOG_DEBUG("set speaker_volume :%d ",value);
960 s_speakerState.volume = value; 964 s_speakerState.volume = value;
961 } 965 }
962 966
1 # cmake 最低版本要求 第三行名字不能动 1 # cmake 最低版本要求 第三行名字不能动
2 cmake_minimum_required(VERSION 2.8) 2 cmake_minimum_required(VERSION 2.8)
3 -project(JZ_H150A) 3 +project(JZ_T40S)
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线程库,以支持多线程程序。
1 -/** 1 +/**
2 ******************************************************************** 2 ********************************************************************
3 * @file hal_uart.h 3 * @file hal_uart.h
4 * @brief This is the header file for "hal_uart.c", defining the structure and 4 * @brief This is the header file for "hal_uart.c", defining the structure and
@@ -51,8 +51,8 @@ extern "C" { @@ -51,8 +51,8 @@ extern "C" {
51 //User can config dev based on there environmental conditions 51 //User can config dev based on there environmental conditions
52 #define LINUX_UART_DEV1 UART_DEV1_NUM 52 #define LINUX_UART_DEV1 UART_DEV1_NUM
53 #define LINUX_UART_DEV2 "/dev/ttyACM0" 53 #define LINUX_UART_DEV2 "/dev/ttyACM0"
54 -#define USB_UART_CONNECTED_TO_UAV_VID (0x2CA3)  
55 -#define USB_UART_CONNECTED_TO_UAV_PID (0xF002) 54 +#define USB_UART_CONNECTED_TO_UAV_VID (0x10c4)
  55 +#define USB_UART_CONNECTED_TO_UAV_PID (0xea60)
56 /* Exported types ------------------------------------------------------------*/ 56 /* Exported types ------------------------------------------------------------*/
57 57
58 /* Exported functions --------------------------------------------------------*/ 58 /* Exported functions --------------------------------------------------------*/