uart底层优化,opus优化,心跳帧优化,升级模块增加
osal层增加,hal层增加,日志层修改逻辑
正在显示
47 个修改的文件
包含
2570 行增加
和
608 行删除
@@ -106,7 +106,10 @@ | @@ -106,7 +106,10 @@ | ||
106 | "jzsdk_semaphore.h": "c", | 106 | "jzsdk_semaphore.h": "c", |
107 | "jzsdk_filesystm.h": "c", | 107 | "jzsdk_filesystm.h": "c", |
108 | "jzsdk_memoryadapter.h": "c", | 108 | "jzsdk_memoryadapter.h": "c", |
109 | - "jzsdk_errorcodedef.h": "c" | 109 | + "jzsdk_errorcodedef.h": "c", |
110 | + "jzsdk_timer.h": "c", | ||
111 | + "jzsdk_framecomparsion_6aframe.h": "c", | ||
112 | + "jzsdk_uart.h": "c" | ||
110 | }, | 113 | }, |
111 | "Codegeex.GenerationPreference": "automatic", | 114 | "Codegeex.GenerationPreference": "automatic", |
112 | "C_Cpp.dimInactiveRegions": false | 115 | "C_Cpp.dimInactiveRegions": false |
1 | # 编译链的配置 | 1 | # 编译链的配置 |
2 | 2 | ||
3 | #1、编译链与设备类型的选择 | 3 | #1、编译链与设备类型的选择 |
4 | -set(DEVICE_NAME JZ_H10) | 4 | +set(DEVICE_NAME JZ_H1T) |
5 | #上一行为禁止修改行 | 5 | #上一行为禁止修改行 |
6 | 6 | ||
7 | message("**************************JZSDK构建编译开始***************************\n") | 7 | message("**************************JZSDK构建编译开始***************************\n") |
@@ -21,7 +21,7 @@ extern "C" { | @@ -21,7 +21,7 @@ extern "C" { | ||
21 | 21 | ||
22 | #include "./JZsdk_typedef/JZsdk_typedef.h" | 22 | #include "./JZsdk_typedef/JZsdk_typedef.h" |
23 | #include "./JZsdk_ReturnCode/JZsdk_ReturnCode.h" | 23 | #include "./JZsdk_ReturnCode/JZsdk_ReturnCode.h" |
24 | - | 24 | +#include "./JZsdk_Platform/JZsdk_Platform.h" |
25 | 25 | ||
26 | #include "./JZsdk_InsCode.h" | 26 | #include "./JZsdk_InsCode.h" |
27 | #include "./JZsdk_FLagCode.h" | 27 | #include "./JZsdk_FLagCode.h" |
@@ -23,21 +23,28 @@ extern "C" | @@ -23,21 +23,28 @@ extern "C" | ||
23 | /* Exported types ------------------------------------------------------------*/ | 23 | /* Exported types ------------------------------------------------------------*/ |
24 | typedef enum JZ_DEVICE_PORT_TYPE | 24 | typedef enum JZ_DEVICE_PORT_TYPE |
25 | { | 25 | { |
26 | - DEVICE_PSDK = 0x1000, // psdk功能 | ||
27 | - UART_4G = 0x1001, // 4G功能 | ||
28 | - UART_DEV_1 = 0x1002, // 1号设备功能 | ||
29 | - UART_DEV_2 = 0x1003, // 2号设备功能 | ||
30 | - UART_DEV_3 = 0x1004, // 3号设备功能 | ||
31 | - UART_DEV_4 = 0x1005, // 4号设备功能 | ||
32 | - UART_DEV_5 = 0x1006, // 5号设备功能 | ||
33 | - | ||
34 | - UART_USB_1 = 0x1100, // usb设备 | ||
35 | - UART_USB_2 = 0x1101, // usb设备 | ||
36 | - UART_USB_3 = 0x1102, // usb设备 | ||
37 | - UART_USB_4 = 0x1103, // usb设备 | ||
38 | - UART_USB_5 = 0x1104, // usb设备 | ||
39 | - | ||
40 | - HAL_DATA_TRANSMISSION = 0x1200, // hal定制的特殊数据传播 | 26 | + DEVICE_PSDK = 0x0000, // psdk功能 |
27 | + | ||
28 | + UART_4G = 0x0010, // 4G功能 | ||
29 | + UART_DEV_1 = 0x0011, // 1号设备功能 | ||
30 | + UART_DEV_2 = 0x0012, // 2号设备功能 | ||
31 | + UART_DEV_3 = 0x0013, // 3号设备功能 | ||
32 | + UART_DEV_4 = 0x0014, // 4号设备功能 | ||
33 | + UART_DEV_5 = 0x0015, // 5号设备功能 | ||
34 | + | ||
35 | + USB_DEV_1 = 0x0020, // usb设备 | ||
36 | + USB_DEV_2 = 0x0021, // usb设备 | ||
37 | + USB_DEV_3 = 0x0022, // usb设备 | ||
38 | + USB_DEV_4 = 0x0023, // usb设备 | ||
39 | + USB_DEV_5 = 0x0024, // usb设备 | ||
40 | + | ||
41 | + NET_DEV_1 = 0x0030, // 网络设备 | ||
42 | + NET_DEV_2 = 0x0031, // 网络设备 | ||
43 | + NET_DEV_3 = 0x0032, // 网络设备 | ||
44 | + | ||
45 | + HAL_DATA_TRANSMISSION = 0x0040, // hal定制的特殊数据传播 | ||
46 | + | ||
47 | + HAL_MAX = 0x0050, // hal最大值 | ||
41 | 48 | ||
42 | COMBINE_DEVICE = 0x1998, // 组合设备 | 49 | COMBINE_DEVICE = 0x1998, // 组合设备 |
43 | NO_SPECIFIED = 0x1999, // 无制定设备 | 50 | NO_SPECIFIED = 0x1999, // 无制定设备 |
@@ -72,6 +72,8 @@ typedef enum { | @@ -72,6 +72,8 @@ typedef enum { | ||
72 | JZ_INSCODE_5AFRAME_CHECKSTATUS_SOFTWAREVERSION = 0x10000625, //查询软件版本号 | 72 | JZ_INSCODE_5AFRAME_CHECKSTATUS_SOFTWAREVERSION = 0x10000625, //查询软件版本号 |
73 | JZ_INSCODE_5AFRAME_CHECKSTATUS_LOOPPLAY = 0x10000626, //查询是否打开循环 | 73 | JZ_INSCODE_5AFRAME_CHECKSTATUS_LOOPPLAY = 0x10000626, //查询是否打开循环 |
74 | JZ_INSCODE_5AFRAME_CHECKSTATUS_ADUIO_LOOP_INTERVAL = 0x10000639, //查询音频循环间隔 | 74 | JZ_INSCODE_5AFRAME_CHECKSTATUS_ADUIO_LOOP_INTERVAL = 0x10000639, //查询音频循环间隔 |
75 | + JZ_INSCODE_5AFRAME_CHECKSTATUS_CURRENT_PLAYTIME = 0x10000640, //查询当前播放时间回调是否打开 | ||
76 | + | ||
75 | 77 | ||
76 | JZ_INSCODE_5AFRAME_CHECKSTATUS_TTSTONE = 0x10000627, //查询音色 | 78 | JZ_INSCODE_5AFRAME_CHECKSTATUS_TTSTONE = 0x10000627, //查询音色 |
77 | JZ_INSCODE_5AFRAME_CHECKSTATUS_TTSSPEED = 0x10000628, //查询语速 | 79 | JZ_INSCODE_5AFRAME_CHECKSTATUS_TTSSPEED = 0x10000628, //查询语速 |
@@ -94,6 +96,9 @@ typedef enum { | @@ -94,6 +96,9 @@ typedef enum { | ||
94 | JZ_INSCODE_5AFRAME_DELETE_AUDIO = 0x10000700, //删除音频 | 96 | JZ_INSCODE_5AFRAME_DELETE_AUDIO = 0x10000700, //删除音频 |
95 | JZ_INSCODE_5AFRAME_DELETE_VOICE_RECORD = 0x10000710, //删除录音 | 97 | JZ_INSCODE_5AFRAME_DELETE_VOICE_RECORD = 0x10000710, //删除录音 |
96 | JZ_INSCODE_5AFRAME_DELETE_VIDEO_RECORD = 0x10000720, //删除视频 | 98 | JZ_INSCODE_5AFRAME_DELETE_VIDEO_RECORD = 0x10000720, //删除视频 |
99 | + JZ_INSCODE_5AFRAME_RENAME_AUDIO = 0x10000730, //重命名音频 | ||
100 | + JZ_INSCODE_5AFRAME_RENAME_VOICE_RECORD = 0x10000740, //重命名录音 | ||
101 | + JZ_INSCODE_5AFRAME_RENAME_VIDEO_RECORD = 0x10000750, //重命名视频 | ||
97 | 102 | ||
98 | 103 | ||
99 | JZ_INSCODE_5AFRAME_TTS_SET_TONE = 0x10000801, //TTS设置音色 | 104 | JZ_INSCODE_5AFRAME_TTS_SET_TONE = 0x10000801, //TTS设置音色 |
@@ -103,15 +108,22 @@ typedef enum { | @@ -103,15 +108,22 @@ typedef enum { | ||
103 | JZ_INSCODE_5AFRAME_TTS_TRANS_STOP = 0x10000805, //TTS发送完毕 | 108 | JZ_INSCODE_5AFRAME_TTS_TRANS_STOP = 0x10000805, //TTS发送完毕 |
104 | JZ_INSCODE_5AFRAME_TTS_TRANS_LIMIT_TRANSMISSION = 0x10000806, //TTS正在定长接收 | 109 | JZ_INSCODE_5AFRAME_TTS_TRANS_LIMIT_TRANSMISSION = 0x10000806, //TTS正在定长接收 |
105 | 110 | ||
106 | - JZ_INSCODE_5AFRAME_OPUS_TRANS_START = 0x10000900, //opus传输开始 | ||
107 | - JZ_INSCODE_5AFRAME_OPUS_TRAN_UNLIMIT_TRANSMISSION = 0x10000901, //opus 无限制传输中 | 111 | + JZ_INSCODE_5AFRAME_CURRENT_PLAY_TIME = 0x10004406, //设置播放回传 |
112 | + | ||
113 | + | ||
114 | + JZ_INSCODE_5AFRAME_OPUS_TRANS_START_1 = 0x10000900, //opus传输开始1型 | ||
115 | + JZ_INSCODE_5AFRAME_OPUS_TRANS_START_2 = 0x10000901, //opus传输开始2型 | ||
116 | + //JZ_INSCODE_5AFRAME_OPUS_TRAN_UNLIMIT_TRANSMISSION = 0x10000901, //opus 无限制传输中 | ||
108 | JZ_INSCODE_5AFRAME_OPUS_TRANS_LIMIT_TRANSMISSION = 0x10000903, //opus传输中 | 117 | JZ_INSCODE_5AFRAME_OPUS_TRANS_LIMIT_TRANSMISSION = 0x10000903, //opus传输中 |
109 | 118 | ||
110 | JZ_INSCODE_5AFRAME_OPUS_TRANS_STOP = 0x10000902, //opus传输结束 | 119 | JZ_INSCODE_5AFRAME_OPUS_TRANS_STOP = 0x10000902, //opus传输结束 |
111 | JZ_INSCODE_5AFRAME_OPUS_TRANS_STOP_AND_CHECK = 0x10000904, //opus传输结束并校验 | 120 | JZ_INSCODE_5AFRAME_OPUS_TRANS_STOP_AND_CHECK = 0x10000904, //opus传输结束并校验 |
112 | 121 | ||
122 | + | ||
113 | JZ_INSCODE_5AFRAME_OPUS_PLAY = 0x10000910, //opus播放 | 123 | JZ_INSCODE_5AFRAME_OPUS_PLAY = 0x10000910, //opus播放 |
114 | 124 | ||
125 | + JZ_INSCODE_5AFRAME_OPUS_GETOPUSLIST = 0x10000911, //获取opus列表 | ||
126 | + | ||
115 | JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_START = 0x10000A00, //开启opus实时语音 | 127 | JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_START = 0x10000A00, //开启opus实时语音 |
116 | JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_UNLIMIT_TRANSMISSION = 0x10000A01, //无限制传输opus实时语音 | 128 | JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_UNLIMIT_TRANSMISSION = 0x10000A01, //无限制传输opus实时语音 |
117 | JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_STOP = 0x10000A02, //结束opus实时语音 | 129 | JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_STOP = 0x10000A02, //结束opus实时语音 |
@@ -138,6 +150,12 @@ typedef enum { | @@ -138,6 +150,12 @@ typedef enum { | ||
138 | JZ_INSCODE_5AFRAME_OUTPUTPOWER_CONTROL = 0x10001000, //对外供电开关 | 150 | JZ_INSCODE_5AFRAME_OUTPUTPOWER_CONTROL = 0x10001000, //对外供电开关 |
139 | JZ_INSCODE_5AFRAME_CHECKSTATUS_OUTPUTPOWER = 0x10001001, //对外供电查询 | 151 | JZ_INSCODE_5AFRAME_CHECKSTATUS_OUTPUTPOWER = 0x10001001, //对外供电查询 |
140 | 152 | ||
153 | + JZ_INSCODE_5AFRAME_UPGRADE_PERPARE = 0x10001100, //升级准备 | ||
154 | + JZ_INSCODE_5AFRAME_UPGRADE_SEND_CHECKCODE = 0x10001101, //升级发送校验码 | ||
155 | + JZ_INSCODE_5AFRAME_UPGRADE_STRAT = 0x10001102, //升级传输开始 | ||
156 | + JZ_INSCODE_5AFRAME_UPGRADE_TRANS = 0x10001103, //升级传输数据 | ||
157 | + JZ_INSCODE_5AFRAME_UPGRADE_END = 0x10001104, //升级传输结束 | ||
158 | + | ||
141 | //5B类帧 | 159 | //5B类帧 |
142 | JZ_INSCODE_5BFRAME_FRAME = 0x10004000, //发送帧 | 160 | JZ_INSCODE_5BFRAME_FRAME = 0x10004000, //发送帧 |
143 | 161 | ||
@@ -168,7 +186,8 @@ typedef enum { | @@ -168,7 +186,8 @@ typedef enum { | ||
168 | JZ_INSCODE_5BFRAME_TTS_SPEED = 0x10004403, //发送tts语速 | 186 | JZ_INSCODE_5BFRAME_TTS_SPEED = 0x10004403, //发送tts语速 |
169 | JZ_INSCODE_5BFRAME_AUDIO_PLAYFILENAME = 0x10004404, //当前播放的音频名字 | 187 | JZ_INSCODE_5BFRAME_AUDIO_PLAYFILENAME = 0x10004404, //当前播放的音频名字 |
170 | JZ_INSCODE_5BFRAME_CHECKSTATUS_AUDIO_DETAIL_MESSAGE = 0x10004405, //查询音频详细信息 | 188 | JZ_INSCODE_5BFRAME_CHECKSTATUS_AUDIO_DETAIL_MESSAGE = 0x10004405, //查询音频详细信息 |
171 | - | 189 | + JZ_INSCODE_5BFRAME_CURRENT_PLAY_TIME = 0x10004406, //当前播放时间 |
190 | + JZ_INSCODE_5BFRAME_CHECKSTATUS_CURRENT_PLAYTIME = 0x10004407, //查询当前播放时间回调是否打开 | ||
172 | 191 | ||
173 | 192 | ||
174 | JZ_INSCODE_5BFRAME_GIMBAL_PITCH = 0x10004500, //云台俯仰角度 | 193 | JZ_INSCODE_5BFRAME_GIMBAL_PITCH = 0x10004500, //云台俯仰角度 |
@@ -195,8 +214,18 @@ typedef enum { | @@ -195,8 +214,18 @@ typedef enum { | ||
195 | JZ_INSCODE_5BFRAME_CHECKSTATUS_OUTPUTPOWER = 0x10004900, //对外供电查询 | 214 | JZ_INSCODE_5BFRAME_CHECKSTATUS_OUTPUTPOWER = 0x10004900, //对外供电查询 |
196 | 215 | ||
197 | JZ_INSCODE_5BFRAME_OPUS_DECODE_STATUS = 0x10005000, //opus解码状态 | 216 | JZ_INSCODE_5BFRAME_OPUS_DECODE_STATUS = 0x10005000, //opus解码状态 |
198 | - JZ_INSCODE_5BFRAME_OPUS_TRANS_STOP_AND_CHECK = 0x10000904, //opus传输结束并校验 | ||
199 | - | 217 | + JZ_INSCODE_5BFRAME_OPUS_TRANS_STOP_AND_CHECK = 0x10005904, //opus传输结束并校验 |
218 | + | ||
219 | + JZ_INSCODE_5BFRAME_OPUSLIST_START = 0x10005910, //开启发送opus列表帧 | ||
220 | + JZ_INSCODE_5BFRAME_OPUSLIST_TRANS = 0x10005911, //传输opus列表帧 | ||
221 | + JZ_INSCODE_5BFRAME_OPUSLIST_END = 0x10005912, //传输opus列表帧 | ||
222 | + | ||
223 | + JZ_INSCODE_5BFRAME_UPGRADE_PERPARE = 0x10001100, //升级准备 | ||
224 | + JZ_INSCODE_5BFRAME_UPGRADE_SEND_CHECKCODE = 0x10001101, //升级发送校验码 | ||
225 | + JZ_INSCODE_5BFRAME_UPGRADE_STRAT = 0x10001102, //升级传输开始 | ||
226 | + JZ_INSCODE_5BFRAME_UPGRADE_TRANS = 0x10001103, //升级传输数据 | ||
227 | + JZ_INSCODE_5BFRAME_UPGRADE_END = 0x10001104, //升级传输结束 | ||
228 | + JZ_INSCODE_5BFRAME_UPGRADE_CHECKRESULT = 0x10001105, //升级校验结果 | ||
200 | 229 | ||
201 | //6A类 | 230 | //6A类 |
202 | JZ_INSCODE_6AFRAME_FRAME = 0x10008000, //发送帧 | 231 | JZ_INSCODE_6AFRAME_FRAME = 0x10008000, //发送帧 |
1 | /** | 1 | /** |
2 | ******************************************************************** | 2 | ******************************************************************** |
3 | - * @file JZsdk_typedef.h | 3 | + * @file JZsdk_Platform.h |
4 | * 用于记录各类码的表 | 4 | * 用于记录各类码的表 |
5 | * | 5 | * |
6 | ********************************************************************* | 6 | ********************************************************************* |
7 | */ | 7 | */ |
8 | 8 | ||
9 | /* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/ | 9 | /* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/ |
10 | -#ifndef JZSDK_TYPEDEF_H | ||
11 | -#define JZSDK_TYPEDEF_H | 10 | +#ifndef JZSDK_PLATFORM_H |
11 | +#define JZSDK_PLATFORM_H | ||
12 | 12 | ||
13 | /* Includes ------------------------------------------------------------------*/ | 13 | /* Includes ------------------------------------------------------------------*/ |
14 | #include "../JZsdk_typedef/JZsdk_typedef.h" | 14 | #include "../JZsdk_typedef/JZsdk_typedef.h" |
@@ -21,6 +21,29 @@ extern "C" { | @@ -21,6 +21,29 @@ extern "C" { | ||
21 | /* Exported constants --------------------------------------------------------*/ | 21 | /* Exported constants --------------------------------------------------------*/ |
22 | /* 常亮定义*/ | 22 | /* 常亮定义*/ |
23 | 23 | ||
24 | +#define JZSDK_FILE_NAME_SIZE_MAX (128) //文件名最大长度128 | ||
25 | +#define JZSDK_FILE_PATH_SIZE_MAX (256) //文件路径最大长度256 | ||
26 | +#define JZSDK_CMD_SIZE (256) //cmd指令最大长度 | ||
27 | +#define JZSDK_DIR_SIZE (256) //目录名最大长度 | ||
28 | + | ||
29 | +typedef struct { | ||
30 | + U16_t year; | ||
31 | + U8_t month; | ||
32 | + U8_t day; | ||
33 | + U8_t hour; | ||
34 | + U8_t minute; | ||
35 | + U8_t second; | ||
36 | +} T_JZsdkTime; | ||
37 | + | ||
38 | +typedef struct T_JZsdkFileInfo{ | ||
39 | + U32_t size; | ||
40 | + T_JZsdkTime createTime; | ||
41 | + T_JZsdkTime modifyTime; | ||
42 | + char path[JZSDK_FILE_PATH_SIZE_MAX]; | ||
43 | + bool isDir; | ||
44 | +} T_JZsdkFileInfo; | ||
45 | + | ||
46 | + | ||
24 | /* Exported macro ------------------------------------------------------------*/ | 47 | /* Exported macro ------------------------------------------------------------*/ |
25 | 48 | ||
26 | 49 |
@@ -27,6 +27,8 @@ typedef enum { | @@ -27,6 +27,8 @@ typedef enum { | ||
27 | JZ_ERROR_SYSTEM_MODULE_CODE_HARDLY_FAILURE = 0x0003, //严重错误 | 27 | JZ_ERROR_SYSTEM_MODULE_CODE_HARDLY_FAILURE = 0x0003, //严重错误 |
28 | JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER = 0x0002, //文件指针错误 | 28 | JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER = 0x0002, //文件指针错误 |
29 | JZ_ERROR_SYSTEM_MODULE_CODE_MEMORY_ALLOC_FAILED = 0x0004, //内存分配失败 | 29 | JZ_ERROR_SYSTEM_MODULE_CODE_MEMORY_ALLOC_FAILED = 0x0004, //内存分配失败 |
30 | + JZ_ERROR_SYSTEM_MODULE_CODE_IS_BUSY = 0x0005, //忙错误 | ||
31 | + JZ_ERROR_SYSTEM_MODULE_CODE_CHECK_CODE_ERROR = 0x0006, //校验码错误 | ||
30 | } JZ_SYSTEM_Code; | 32 | } JZ_SYSTEM_Code; |
31 | 33 | ||
32 | typedef enum { | 34 | typedef enum { |
@@ -54,6 +54,9 @@ typedef void *T_JZTaskHandle; | @@ -54,6 +54,9 @@ typedef void *T_JZTaskHandle; | ||
54 | typedef void *T_JZsdkMutexHandle; | 54 | typedef void *T_JZsdkMutexHandle; |
55 | //信号量权柄 | 55 | //信号量权柄 |
56 | typedef void *T_JZsdkSemaHandle; | 56 | typedef void *T_JZsdkSemaHandle; |
57 | +//文件权柄 | ||
58 | +typedef void *T_JZsdkFileHandle; | ||
59 | + | ||
57 | 60 | ||
58 | /* Exported types ------------------------------------------------------------*/ | 61 | /* Exported types ------------------------------------------------------------*/ |
59 | 62 |
@@ -12,6 +12,16 @@ int JZsdk_Get_FrameSequence(char *DealBuf) | @@ -12,6 +12,16 @@ int JZsdk_Get_FrameSequence(char *DealBuf) | ||
12 | return DealBuf[6]; | 12 | return DealBuf[6]; |
13 | } | 13 | } |
14 | 14 | ||
15 | +/************************* | ||
16 | + * | ||
17 | + * 获取帧的长度 | ||
18 | + * | ||
19 | + * ***************************/ | ||
20 | +int JZsdk_Get_FrameLength(char *DealBuf) | ||
21 | +{ | ||
22 | + return ((int)DealBuf[3]) << 8 + DealBuf[4]; | ||
23 | +} | ||
24 | + | ||
15 | /*************************** | 25 | /*************************** |
16 | * 、 | 26 | * 、 |
17 | * | 27 | * |
@@ -29,6 +29,8 @@ extern "C" { | @@ -29,6 +29,8 @@ extern "C" { | ||
29 | 29 | ||
30 | /* Exported functions --------------------------------------------------------*/ | 30 | /* Exported functions --------------------------------------------------------*/ |
31 | int JZsdk_Get_FrameSequence(char *DealBuf); | 31 | int JZsdk_Get_FrameSequence(char *DealBuf); |
32 | +int JZsdk_Get_FrameLength(char *DealBuf); | ||
33 | + | ||
32 | int JZsdk_FrameComparsion(char *getdata, int len); | 34 | int JZsdk_FrameComparsion(char *getdata, int len); |
33 | 35 | ||
34 | #ifdef __cplusplus | 36 | #ifdef __cplusplus |
@@ -205,6 +205,11 @@ static int Comparison_5AFRAME_FirstLevelCode_0x53(char *getdata) | @@ -205,6 +205,11 @@ static int Comparison_5AFRAME_FirstLevelCode_0x53(char *getdata) | ||
205 | return JZ_INSCODE_5AFRAME_CHECKSTATUS_TTSSPEED; | 205 | return JZ_INSCODE_5AFRAME_CHECKSTATUS_TTSSPEED; |
206 | break; | 206 | break; |
207 | 207 | ||
208 | + //查询是否打开了播放时间回传 | ||
209 | + case 0x08: | ||
210 | + return JZ_INSCODE_5AFRAME_CHECKSTATUS_CURRENT_PLAYTIME; | ||
211 | + break; | ||
212 | + | ||
208 | //查询软件版本号 | 213 | //查询软件版本号 |
209 | case 0xf1: | 214 | case 0xf1: |
210 | return JZ_INSCODE_5AFRAME_CHECKSTATUS_SOFTWAREVERSION; | 215 | return JZ_INSCODE_5AFRAME_CHECKSTATUS_SOFTWAREVERSION; |
@@ -304,6 +309,10 @@ static int Comparison_5AFRAME_FirstLevelCode_0x57(char *getdata) | @@ -304,6 +309,10 @@ static int Comparison_5AFRAME_FirstLevelCode_0x57(char *getdata) | ||
304 | return JZ_INSCODE_5AFRAME_TTS_TRANS_LIMIT_TRANSMISSION; | 309 | return JZ_INSCODE_5AFRAME_TTS_TRANS_LIMIT_TRANSMISSION; |
305 | break; | 310 | break; |
306 | 311 | ||
312 | + case 0x07: | ||
313 | + return JZ_INSCODE_5AFRAME_CURRENT_PLAY_TIME; | ||
314 | + break; | ||
315 | + | ||
307 | default: | 316 | default: |
308 | break; | 317 | break; |
309 | } | 318 | } |
@@ -314,7 +323,7 @@ static int Comparison_5AFRAME_FirstLevelCode_0x58(char *getdata) | @@ -314,7 +323,7 @@ static int Comparison_5AFRAME_FirstLevelCode_0x58(char *getdata) | ||
314 | //二级功能位 | 323 | //二级功能位 |
315 | switch (getdata[8]) | 324 | switch (getdata[8]) |
316 | { | 325 | { |
317 | - //设置音色 | 326 | + //获取音乐列表 |
318 | case 0x01: | 327 | case 0x01: |
319 | return JZ_INSCODE_5AFRAME_AUDIO_GETMUSICLIST; | 328 | return JZ_INSCODE_5AFRAME_AUDIO_GETMUSICLIST; |
320 | break; | 329 | break; |
@@ -324,6 +333,11 @@ static int Comparison_5AFRAME_FirstLevelCode_0x58(char *getdata) | @@ -324,6 +333,11 @@ static int Comparison_5AFRAME_FirstLevelCode_0x58(char *getdata) | ||
324 | return JZ_INSCODE_5AFRAME_CHECKSTATUS_AUDIO_DETAIL_MESSAGE; | 333 | return JZ_INSCODE_5AFRAME_CHECKSTATUS_AUDIO_DETAIL_MESSAGE; |
325 | break; | 334 | break; |
326 | 335 | ||
336 | + //获取opus列表 | ||
337 | + case 0x10: | ||
338 | + return JZ_INSCODE_5AFRAME_OPUS_GETOPUSLIST; | ||
339 | + break; | ||
340 | + | ||
327 | default: | 341 | default: |
328 | break; | 342 | break; |
329 | } | 343 | } |
@@ -337,7 +351,12 @@ static int Comparison_5AFRAME_FirstLevelCode_0x59(char *getdata) | @@ -337,7 +351,12 @@ static int Comparison_5AFRAME_FirstLevelCode_0x59(char *getdata) | ||
337 | //opus录音传输 | 351 | //opus录音传输 |
338 | //opus传输开始 | 352 | //opus传输开始 |
339 | case 0xF1: | 353 | case 0xF1: |
340 | - return JZ_INSCODE_5AFRAME_OPUS_TRANS_START; | 354 | + return JZ_INSCODE_5AFRAME_OPUS_TRANS_START_1; |
355 | + break; | ||
356 | + | ||
357 | + //opus传输二型 | ||
358 | + case 0xF5: | ||
359 | + return JZ_INSCODE_5AFRAME_OPUS_TRANS_START_2; | ||
341 | break; | 360 | break; |
342 | 361 | ||
343 | //opus传输结束 | 362 | //opus传输结束 |
@@ -604,6 +623,45 @@ static int Comparison_5AFRAME_FirstLevelCode_0x6F(char *getdata) | @@ -604,6 +623,45 @@ static int Comparison_5AFRAME_FirstLevelCode_0x6F(char *getdata) | ||
604 | } | 623 | } |
605 | } | 624 | } |
606 | 625 | ||
626 | + | ||
627 | +//一级功能码 升级帧 | ||
628 | +static int Comparison_5AFRAME_FirstLevelCode_0xA1(char *getdata) | ||
629 | +{ | ||
630 | + //二级功能位 | ||
631 | + switch (getdata[8]) | ||
632 | + { | ||
633 | + //升级准备 | ||
634 | + case 0x01: | ||
635 | + return JZ_INSCODE_5AFRAME_UPGRADE_PERPARE; | ||
636 | + break; | ||
637 | + | ||
638 | + //升级校验码 | ||
639 | + case 0x02: | ||
640 | + return JZ_INSCODE_5AFRAME_UPGRADE_SEND_CHECKCODE; | ||
641 | + break; | ||
642 | + | ||
643 | + //升级数据发送开始 | ||
644 | + case 0x03: | ||
645 | + return JZ_INSCODE_5AFRAME_UPGRADE_STRAT; | ||
646 | + break; | ||
647 | + | ||
648 | + //升级数据发送结束 | ||
649 | + case 0x04: | ||
650 | + return JZ_INSCODE_5AFRAME_UPGRADE_END; | ||
651 | + break; | ||
652 | + | ||
653 | + //升级发送数据 | ||
654 | + case 0xF1: | ||
655 | + return JZ_INSCODE_5AFRAME_UPGRADE_TRANS; | ||
656 | + break; | ||
657 | + | ||
658 | + default: | ||
659 | + return JZ_ERROR_SYSTEM_FRAME_ERROR; | ||
660 | + break; | ||
661 | + } | ||
662 | +} | ||
663 | + | ||
664 | + | ||
607 | /****************************************************************** | 665 | /****************************************************************** |
608 | 666 | ||
609 | 回复帧对比 | 667 | 回复帧对比 |
@@ -745,7 +803,9 @@ int JZsdk_5AFrameComparsion(char *getdata, int len) | @@ -745,7 +803,9 @@ int JZsdk_5AFrameComparsion(char *getdata, int len) | ||
745 | return Comparison_5AFRAME_FirstLevelCode_0x6F(getdata); | 803 | return Comparison_5AFRAME_FirstLevelCode_0x6F(getdata); |
746 | break; | 804 | break; |
747 | 805 | ||
748 | - | 806 | + //一级功能码 升级功能 |
807 | + case 0xA1: | ||
808 | + return Comparison_5AFRAME_FirstLevelCode_0xA1(getdata); | ||
749 | break; | 809 | break; |
750 | 810 | ||
751 | //一级功能码 | 811 | //一级功能码 |
@@ -310,7 +310,9 @@ static int Comparison_5BFRAME_FirstLevelCode_0x66(char *getdata) | @@ -310,7 +310,9 @@ static int Comparison_5BFRAME_FirstLevelCode_0x66(char *getdata) | ||
310 | return JZ_ERROR_SYSTEM_FRAME_ERROR; | 310 | return JZ_ERROR_SYSTEM_FRAME_ERROR; |
311 | break; | 311 | break; |
312 | } | 312 | } |
313 | -}//一级功能码是回复警灯颜色 | 313 | +} |
314 | + | ||
315 | +//一级功能码是回复警灯颜色 | ||
314 | static int Comparison_5BFRAME_FirstLevelCode_0x67(char *getdata) | 316 | static int Comparison_5BFRAME_FirstLevelCode_0x67(char *getdata) |
315 | { | 317 | { |
316 | //二级功能位 | 318 | //二级功能位 |
@@ -326,7 +328,9 @@ static int Comparison_5BFRAME_FirstLevelCode_0x67(char *getdata) | @@ -326,7 +328,9 @@ static int Comparison_5BFRAME_FirstLevelCode_0x67(char *getdata) | ||
326 | return JZ_ERROR_SYSTEM_FRAME_ERROR; | 328 | return JZ_ERROR_SYSTEM_FRAME_ERROR; |
327 | break; | 329 | break; |
328 | } | 330 | } |
329 | -}//一级功能码是回复温度/序列号查询 | 331 | +} |
332 | + | ||
333 | +//一级功能码是回复温度/序列号查询 | ||
330 | static int Comparison_5BFRAME_FirstLevelCode_0x69(char *getdata) | 334 | static int Comparison_5BFRAME_FirstLevelCode_0x69(char *getdata) |
331 | { | 335 | { |
332 | //二级功能位 | 336 | //二级功能位 |
@@ -347,6 +351,50 @@ static int Comparison_5BFRAME_FirstLevelCode_0x69(char *getdata) | @@ -347,6 +351,50 @@ static int Comparison_5BFRAME_FirstLevelCode_0x69(char *getdata) | ||
347 | break; | 351 | break; |
348 | } | 352 | } |
349 | } | 353 | } |
354 | + | ||
355 | + | ||
356 | +//一级功能码 升级帧 | ||
357 | +static int Comparison_5AFRAME_FirstLevelCode_0xA1(char *getdata) | ||
358 | +{ | ||
359 | + //二级功能位 | ||
360 | + switch (getdata[8]) | ||
361 | + { | ||
362 | + //升级准备 | ||
363 | + case 0x01: | ||
364 | + return JZ_INSCODE_5BFRAME_UPGRADE_PERPARE; | ||
365 | + break; | ||
366 | + | ||
367 | + //升级校验码 | ||
368 | + case 0x02: | ||
369 | + return JZ_INSCODE_5BFRAME_UPGRADE_SEND_CHECKCODE; | ||
370 | + break; | ||
371 | + | ||
372 | + //升级数据发送开始 | ||
373 | + case 0x03: | ||
374 | + return JZ_INSCODE_5BFRAME_UPGRADE_STRAT; | ||
375 | + break; | ||
376 | + | ||
377 | + //升级数据发送结束 | ||
378 | + case 0x04: | ||
379 | + return JZ_INSCODE_5BFRAME_UPGRADE_END; | ||
380 | + break; | ||
381 | + | ||
382 | + //升级数据校验结果 | ||
383 | + case 0x05: | ||
384 | + return JZ_INSCODE_5BFRAME_UPGRADE_CHECKRESULT; | ||
385 | + break; | ||
386 | + | ||
387 | + //升级发送数据 | ||
388 | + case 0xF1: | ||
389 | + return JZ_INSCODE_5BFRAME_UPGRADE_TRANS; | ||
390 | + break; | ||
391 | + | ||
392 | + default: | ||
393 | + return JZ_ERROR_SYSTEM_FRAME_ERROR; | ||
394 | + break; | ||
395 | + } | ||
396 | +} | ||
397 | + | ||
350 | /****************************************************************** | 398 | /****************************************************************** |
351 | 399 | ||
352 | 回复帧对比 | 400 | 回复帧对比 |
@@ -428,6 +476,9 @@ int JZsdk_5BFrameComparsion(char *getdata, int len) | @@ -428,6 +476,9 @@ int JZsdk_5BFrameComparsion(char *getdata, int len) | ||
428 | return Comparison_5BFRAME_FirstLevelCode_0x69(getdata); | 476 | return Comparison_5BFRAME_FirstLevelCode_0x69(getdata); |
429 | break; | 477 | break; |
430 | 478 | ||
479 | + case 0xA1: | ||
480 | + return Comparison_5AFRAME_FirstLevelCode_0xA1(getdata); | ||
481 | + break; | ||
431 | 482 | ||
432 | default: | 483 | default: |
433 | return JZ_ERROR_SYSTEM_FRAME_ERROR; | 484 | return JZ_ERROR_SYSTEM_FRAME_ERROR; |
@@ -375,6 +375,22 @@ int JZsdk_GetFrameTemplate(int InsCode ,char *str, int *str_len) | @@ -375,6 +375,22 @@ int JZsdk_GetFrameTemplate(int InsCode ,char *str, int *str_len) | ||
375 | } | 375 | } |
376 | break; | 376 | break; |
377 | 377 | ||
378 | + case JZ_INSCODE_5BFRAME_CHECKSTATUS_CURRENT_PLAYTIME: | ||
379 | + { | ||
380 | + char sendbuf[12] = { 0x5b, 0x5b, 0x77, 0x00, 0x0c, 0x00, 0x00, 0x53, 0x08, 0x00, 0x00, 0x23}; | ||
381 | + memcpy(str, sendbuf, 12); | ||
382 | + *str_len = 12; | ||
383 | + } | ||
384 | + break; | ||
385 | + | ||
386 | + | ||
387 | + case JZ_INSCODE_5BFRAME_CURRENT_PLAY_TIME: | ||
388 | + { | ||
389 | + char sendbuf[13] = { 0x5b, 0x5b, 0x77, 0x00, 0x0d, 0x00, 0x00, 0x57, 0x07, 0x00, 0x00, 0x23}; | ||
390 | + memcpy(str, sendbuf, 12); | ||
391 | + *str_len = 13; | ||
392 | + } | ||
393 | + | ||
378 | case JZ_INSCODE_5BFRAME_MUSICLIST_START: | 394 | case JZ_INSCODE_5BFRAME_MUSICLIST_START: |
379 | { | 395 | { |
380 | char sendbuf[12] = { 0x5b, 0x5b, 0x77, 0x00, 0x0c, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x23}; | 396 | char sendbuf[12] = { 0x5b, 0x5b, 0x77, 0x00, 0x0c, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x23}; |
@@ -416,6 +432,28 @@ int JZsdk_GetFrameTemplate(int InsCode ,char *str, int *str_len) | @@ -416,6 +432,28 @@ int JZsdk_GetFrameTemplate(int InsCode ,char *str, int *str_len) | ||
416 | } | 432 | } |
417 | break; | 433 | break; |
418 | 434 | ||
435 | + case JZ_INSCODE_5BFRAME_OPUSLIST_START: | ||
436 | + { | ||
437 | + char sendbuf[12] = { 0x5b, 0x5b, 0x77, 0x00, 0x0c, 0x00, 0x00, 0x58, 0x11, 0x00, 0x00, 0x23}; | ||
438 | + memcpy(str, sendbuf, 12); | ||
439 | + *str_len = 12; | ||
440 | + } | ||
441 | + break; | ||
442 | + | ||
443 | + case JZ_INSCODE_5BFRAME_OPUSLIST_TRANS: | ||
444 | + { | ||
445 | + char sendbuf[12] = { 0x5b, 0x5b, 0x77, 0x00, 0x0c, 0x00, 0x00, 0x58, 0x12, 0x00, 0x00, 0x23}; | ||
446 | + memcpy(str, sendbuf, 12); | ||
447 | + *str_len = 12; | ||
448 | + } | ||
449 | + break; | ||
450 | + | ||
451 | + case JZ_INSCODE_5BFRAME_OPUSLIST_END: | ||
452 | + { | ||
453 | + char sendbuf[12] = { 0x5b, 0x5b, 0x77, 0x00, 0x0c, 0x00, 0x00, 0x58, 0x13, 0x00, 0x00, 0x23}; | ||
454 | + memcpy(str, sendbuf, 12); | ||
455 | + *str_len = 12; | ||
456 | + } | ||
419 | break; | 457 | break; |
420 | 458 | ||
421 | case JZ_INSCODE_5BFRAME_OPUS_DECODE_STATUS: | 459 | case JZ_INSCODE_5BFRAME_OPUS_DECODE_STATUS: |
@@ -514,7 +552,45 @@ int JZsdk_GetFrameTemplate(int InsCode ,char *str, int *str_len) | @@ -514,7 +552,45 @@ int JZsdk_GetFrameTemplate(int InsCode ,char *str, int *str_len) | ||
514 | } | 552 | } |
515 | break; | 553 | break; |
516 | 554 | ||
555 | + case JZ_INSCODE_5BFRAME_UPGRADE_PERPARE: | ||
556 | + { | ||
557 | + char sendbuf[12] = { 0x5b, 0x5b, 0x77, 0x00, 0x0D, 0x00, 0x00, 0xA1, 0x01, 0x00, 0x00, 0x23}; | ||
558 | + memcpy(str, sendbuf, 12); | ||
559 | + *str_len = 12; | ||
560 | + } | ||
561 | + break; | ||
562 | + | ||
563 | + case JZ_INSCODE_5BFRAME_UPGRADE_SEND_CHECKCODE: | ||
564 | + { | ||
565 | + char sendbuf[12] = { 0x5b, 0x5b, 0x77, 0x00, 0x0D, 0x00, 0x00, 0xA1, 0x02, 0x00, 0x00, 0x23}; | ||
566 | + memcpy(str, sendbuf, 12); | ||
567 | + *str_len = 12; | ||
568 | + } | ||
569 | + break; | ||
570 | + | ||
571 | + case JZ_INSCODE_5BFRAME_UPGRADE_STRAT: | ||
572 | + { | ||
573 | + char sendbuf[12] = { 0x5b, 0x5b, 0x77, 0x00, 0x0D, 0x00, 0x00, 0xA1, 0x03, 0x00, 0x00, 0x23}; | ||
574 | + memcpy(str, sendbuf, 12); | ||
575 | + *str_len = 12; | ||
576 | + } | ||
577 | + break; | ||
578 | + | ||
579 | + case JZ_INSCODE_5BFRAME_UPGRADE_END: | ||
580 | + { | ||
581 | + char sendbuf[12] = { 0x5b, 0x5b, 0x77, 0x00, 0x0D, 0x00, 0x00, 0xA1, 0x04, 0x00, 0x00, 0x23}; | ||
582 | + memcpy(str, sendbuf, 12); | ||
583 | + *str_len = 12; | ||
584 | + } | ||
585 | + break; | ||
517 | 586 | ||
587 | + case JZ_INSCODE_5BFRAME_UPGRADE_CHECKRESULT: | ||
588 | + { | ||
589 | + char sendbuf[12] = { 0x5b, 0x5b, 0x77, 0x00, 0x0D, 0x00, 0x00, 0xA1, 0x05, 0x00, 0x00, 0x23}; | ||
590 | + memcpy(str, sendbuf, 12); | ||
591 | + *str_len = 12; | ||
592 | + } | ||
593 | + break; | ||
518 | 594 | ||
519 | /******************************************************************************************************************************************************** | 595 | /******************************************************************************************************************************************************** |
520 | * | 596 | * |
@@ -14,16 +14,18 @@ | @@ -14,16 +14,18 @@ | ||
14 | #include <unistd.h> | 14 | #include <unistd.h> |
15 | #include <sys/types.h> | 15 | #include <sys/types.h> |
16 | 16 | ||
17 | +#define JZSDK_LOG_NAME "JZLOG" | ||
18 | +#define JZSDK_LOG_INDEX_FILE_NAME "/root/sdcard/JZLOG/thelast" | ||
19 | +#define JZSDK_LOG_PATH "/root/sdcard/JZLOG/" | ||
20 | +#define JZSDK_LOG_MAX_COUNT 20 | ||
21 | +static char logFilePath[128]; | ||
17 | 22 | ||
18 | #define LOG_GRADE JZSDK_LOGGER_CONSOLE_LOG_LEVEL_INFO | 23 | #define LOG_GRADE JZSDK_LOGGER_CONSOLE_LOG_LEVEL_INFO |
19 | 24 | ||
20 | -// 定义全局互斥锁 | ||
21 | -static pthread_mutex_t LogWriteMutex = PTHREAD_MUTEX_INITIALIZER; | ||
22 | - | ||
23 | /* 全局变量 ------------------------------------------------------------------*/ | 25 | /* 全局变量 ------------------------------------------------------------------*/ |
24 | static struct timeval g_start_time; | 26 | static struct timeval g_start_time; |
25 | static FILE *logFile = NULL; | 27 | static FILE *logFile = NULL; |
26 | -static char LogFileName[JZSDK_FILENAME_SIZE]; | 28 | +static FILE *logFileCnt = NULL; |
27 | static int Logger_init_flag = JZ_FLAGCODE_OFF; | 29 | static int Logger_init_flag = JZ_FLAGCODE_OFF; |
28 | 30 | ||
29 | /* 函数声明 ------------------------------------------------------------------*/ | 31 | /* 函数声明 ------------------------------------------------------------------*/ |
@@ -142,7 +144,7 @@ T_JZsdkReturnCode createJZLOGFolder() | @@ -142,7 +144,7 @@ T_JZsdkReturnCode createJZLOGFolder() | ||
142 | 144 | ||
143 | int ReadLogNumFromFile() | 145 | int ReadLogNumFromFile() |
144 | { | 146 | { |
145 | - const char *path = "/root/sdcard/JZLOG/thelast"; | 147 | + const char *path = JZSDK_LOG_INDEX_FILE_NAME; |
146 | int logNum = 0; | 148 | int logNum = 0; |
147 | 149 | ||
148 | FILE *file = fopen(path, "r"); | 150 | FILE *file = fopen(path, "r"); |
@@ -170,44 +172,102 @@ int ReadLogNumFromFile() | @@ -170,44 +172,102 @@ int ReadLogNumFromFile() | ||
170 | 172 | ||
171 | T_JZsdkReturnCode JZsdk_LoggerInit() | 173 | T_JZsdkReturnCode JZsdk_LoggerInit() |
172 | { | 174 | { |
173 | - //1、记录启动时间 | ||
174 | - gettimeofday(&g_start_time, 0); | ||
175 | - | ||
176 | - //2、检查是否存在log文件,不在则创建 | ||
177 | - createJZLOGFolder(); | ||
178 | - | ||
179 | - //3、获取本地log个数 | ||
180 | - int LogNum = ReadLogNumFromFile(); | ||
181 | - | ||
182 | - //4、获取本地时间,拼接出log文件名 | ||
183 | - time_t current_time; | ||
184 | - struct tm *info; | ||
185 | - char timeString[80]; | ||
186 | - time(¤t_time); | ||
187 | - info = localtime(¤t_time); | ||
188 | - strftime(timeString, sizeof(timeString), "%Y%m%d_%H-%M-%S", info); | ||
189 | - snprintf(LogFileName, sizeof(LogFileName), "/root/sdcard/JZLOG/%d_%s", LogNum, timeString); | ||
190 | - | ||
191 | - printf("LogFileName:%s\n",LogFileName); | ||
192 | - | ||
193 | - // 在主函数或初始化阶段初始化互斥锁 | ||
194 | - pthread_mutex_init(&LogWriteMutex, NULL); | ||
195 | - | ||
196 | - //5、打开记录文件 | ||
197 | - logFile = fopen(LogFileName, "w"); | ||
198 | - if (logFile == NULL) { | ||
199 | - // 文件打开失败,输出错误消息 | ||
200 | - printf("Failed to open file: %s", LogFileName); | 175 | + int ret; |
176 | + unsigned int logFileIndex = 0; | ||
177 | + unsigned int currentLogFileIndex; | ||
178 | + | ||
179 | + JZsdk_Osal_Mkdir(JZSDK_LOG_PATH); | ||
180 | + | ||
181 | + char systemCmd[64]; // 用于存储系统命令 | ||
182 | + | ||
183 | + char folderName[JZSDK_FILE_NAME_SIZE_MAX]; | ||
184 | + | ||
185 | + time_t currentTime = time(NULL); | ||
186 | + struct tm *localTime = localtime(¤tTime); | ||
187 | + | ||
188 | + if (localTime == NULL) { | ||
189 | + printf("Get local time error.\r\n"); | ||
201 | return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | 190 | return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; |
202 | } | 191 | } |
203 | 192 | ||
204 | - //6、写入开始时间 | ||
205 | - char logMessage[256]; | ||
206 | - snprintf(logMessage,256,"LOG_FILE:%s\n",LogFileName); | ||
207 | - fprintf(logFile, "%s", logMessage); | ||
208 | - fflush(logFile); | 193 | + if (access(JZSDK_LOG_NAME, F_OK) != 0) { |
194 | + sprintf(folderName, "mkdir %s", JZSDK_LOG_NAME); | ||
195 | + ret = system(folderName); | ||
196 | + if (ret != 0) { | ||
197 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
198 | + } | ||
199 | + } | ||
200 | + | ||
201 | + logFileCnt = fopen(JZSDK_LOG_INDEX_FILE_NAME, "rb+"); | ||
202 | + if (logFileCnt == NULL) | ||
203 | + { | ||
204 | + logFileCnt = fopen(JZSDK_LOG_INDEX_FILE_NAME, "wb+"); | ||
205 | + if (logFileCnt == NULL) | ||
206 | + { | ||
207 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
208 | + } | ||
209 | + } | ||
210 | + else | ||
211 | + { | ||
212 | + ret = fseek(logFileCnt, 0, SEEK_SET); | ||
213 | + if (ret != 0) | ||
214 | + { | ||
215 | + printf("Seek log count file error, ret: %d\r\n", ret); | ||
216 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
217 | + } | ||
218 | + | ||
219 | + ret = fread((uint16_t *) &logFileIndex, 1, sizeof(uint16_t), logFileCnt); | ||
220 | + if (ret != sizeof(uint16_t)) | ||
221 | + { | ||
222 | + printf("Read log file index error.\r\n"); | ||
223 | + } | ||
224 | + } | ||
225 | + | ||
226 | + currentLogFileIndex = logFileIndex; | ||
227 | + logFileIndex++; | ||
228 | + | ||
229 | + ret = fseek(logFileCnt, 0, SEEK_SET); | ||
230 | + if (ret != 0) | ||
231 | + { | ||
232 | + printf("Seek log file error, ret: %d\r\n", ret); | ||
233 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
234 | + } | ||
235 | + | ||
236 | + ret = fwrite((unsigned int *) &logFileIndex, 1, sizeof(unsigned int), logFileCnt); | ||
237 | + if (ret != sizeof(unsigned int)) | ||
238 | + { | ||
239 | + printf("Write log file index error.\r\n"); | ||
240 | + fclose(logFileCnt); | ||
241 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
242 | + } | ||
243 | + | ||
244 | + fclose(logFileCnt); | ||
245 | + | ||
246 | + //filePath : /root/sdcard/Logs/_%04d_%04d%02d%02d_%02d-%02d-%02d.log | ||
247 | + sprintf(logFilePath, "%s%04d_%04d%02d%02d_%02d-%02d-%02d.log", JZSDK_LOG_PATH, currentLogFileIndex, | ||
248 | + localTime->tm_year + 1900, localTime->tm_mon + 1, localTime->tm_mday, | ||
249 | + localTime->tm_hour, localTime->tm_min, localTime->tm_sec); | ||
250 | + | ||
251 | + logFile = fopen(logFilePath, "wb+"); | ||
252 | + if (logFile == NULL) | ||
253 | + { | ||
254 | + printf("Open filepath time error."); | ||
255 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
256 | + } | ||
257 | + | ||
258 | + if (logFileIndex >= JZSDK_LOG_MAX_COUNT) | ||
259 | + { | ||
260 | + sprintf(systemCmd, "rm -rf %s_%04d*.log", JZSDK_LOG_PATH, currentLogFileIndex - JZSDK_LOG_MAX_COUNT); | ||
261 | + ret = system(systemCmd); | ||
262 | + if (ret != 0) { | ||
263 | + printf("Remove file error, ret:%d.\r\n", ret); | ||
264 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
265 | + } | ||
266 | + } | ||
267 | + | ||
268 | + sprintf(systemCmd, "ln -sfrv %s " JZSDK_LOG_NAME "/latest.log", logFilePath); | ||
269 | + system(systemCmd); | ||
209 | 270 | ||
210 | - //dfclose(logFile); | ||
211 | 271 | ||
212 | //打开初始化完成的flag | 272 | //打开初始化完成的flag |
213 | Logger_init_flag = JZ_FLAGCODE_ON; | 273 | Logger_init_flag = JZ_FLAGCODE_ON; |
@@ -215,7 +275,11 @@ T_JZsdkReturnCode JZsdk_LoggerInit() | @@ -215,7 +275,11 @@ T_JZsdkReturnCode JZsdk_LoggerInit() | ||
215 | //设立监控 | 275 | //设立监控 |
216 | Log_Monitor(); | 276 | Log_Monitor(); |
217 | 277 | ||
278 | + JZSDK_LOG_INFO("%s", logFilePath); | ||
279 | + | ||
218 | JZSDK_LOG_INFO("log初始化完成"); | 280 | JZSDK_LOG_INFO("log初始化完成"); |
281 | + | ||
282 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
219 | } | 283 | } |
220 | 284 | ||
221 | T_JZsdkReturnCode JZsdk_LoggerDeInit() | 285 | T_JZsdkReturnCode JZsdk_LoggerDeInit() |
@@ -228,64 +292,24 @@ T_JZsdkReturnCode JZsdk_LoggerDeInit() | @@ -228,64 +292,24 @@ T_JZsdkReturnCode JZsdk_LoggerDeInit() | ||
228 | 292 | ||
229 | T_JZsdkReturnCode writeToLogFile(const char *data) | 293 | T_JZsdkReturnCode writeToLogFile(const char *data) |
230 | { | 294 | { |
231 | - // 加锁 | ||
232 | - pthread_mutex_lock(&LogWriteMutex); | ||
233 | - | ||
234 | - //logFile = fopen(LogFileName, "a"); // 使用"a"模式打开文件,以在末尾追加数据 | ||
235 | - | ||
236 | - // if (logFile == NULL) { | ||
237 | - // // 文件打开失败,输出错误消息 | ||
238 | - // printf("Failed to open file: %s", LogFileName); | ||
239 | - // pthread_mutex_unlock(&LogWriteMutex); | ||
240 | - | ||
241 | - // return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
242 | - // } | ||
243 | - | ||
244 | if (logFile == NULL) | 295 | if (logFile == NULL) |
245 | { | 296 | { |
246 | - printf("Failed to open file: %s", LogFileName); | ||
247 | - pthread_mutex_unlock(&LogWriteMutex); | ||
248 | return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | 297 | return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; |
249 | } | 298 | } |
250 | 299 | ||
251 | fprintf(logFile, "%s", data); // 写入新的数据 | 300 | fprintf(logFile, "%s", data); // 写入新的数据 |
252 | fflush(logFile); | 301 | fflush(logFile); |
253 | - //fclose(logFile); | ||
254 | - | ||
255 | - // 解锁 | ||
256 | - pthread_mutex_unlock(&LogWriteMutex); | ||
257 | - | ||
258 | } | 302 | } |
259 | 303 | ||
260 | T_JZsdkReturnCode HexToLogFile(const char *data) | 304 | T_JZsdkReturnCode HexToLogFile(const char *data) |
261 | { | 305 | { |
262 | - // 加锁 | ||
263 | - pthread_mutex_lock(&LogWriteMutex); | ||
264 | - | ||
265 | - // logFile = fopen(LogFileName, "a"); // 使用"a"模式打开文件,以在末尾追加数据 | ||
266 | - | ||
267 | - // if (logFile == NULL) { | ||
268 | - // // 文件打开失败,输出错误消息 | ||
269 | - // printf("Failed to open file: %s", LogFileName); | ||
270 | - // pthread_mutex_unlock(&LogWriteMutex); | ||
271 | - | ||
272 | - // return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
273 | - // } | ||
274 | - | ||
275 | if (logFile == NULL) | 306 | if (logFile == NULL) |
276 | { | 307 | { |
277 | - printf("Failed to open file: %s", LogFileName); | ||
278 | - pthread_mutex_unlock(&LogWriteMutex); | ||
279 | return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | 308 | return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; |
280 | } | 309 | } |
281 | 310 | ||
282 | fprintf(logFile, "%x ", data[0]); // 写入新的数据 | 311 | fprintf(logFile, "%x ", data[0]); // 写入新的数据 |
283 | fflush(logFile); | 312 | fflush(logFile); |
284 | - | ||
285 | - //fclose(logFile); | ||
286 | - | ||
287 | - // 解锁 | ||
288 | - pthread_mutex_unlock(&LogWriteMutex); | ||
289 | } | 313 | } |
290 | 314 | ||
291 | 315 |
@@ -55,7 +55,7 @@ static T_JZsdkReturnCode JZsdk_Check_Src32(unsigned char *DIR, unsigned char *ch | @@ -55,7 +55,7 @@ static T_JZsdkReturnCode JZsdk_Check_Src32(unsigned char *DIR, unsigned char *ch | ||
55 | if (SRC_CheckSum != LocalCheckSum) | 55 | if (SRC_CheckSum != LocalCheckSum) |
56 | { | 56 | { |
57 | JZSDK_LOG_ERROR("checksum error local:%x src:%x", LocalCheckSum, SRC_CheckSum); | 57 | JZSDK_LOG_ERROR("checksum error local:%x src:%x", LocalCheckSum, SRC_CheckSum); |
58 | - ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | 58 | + ret = JZ_ERROR_SYSTEM_MODULE_CODE_CHECK_CODE_ERROR; |
59 | } | 59 | } |
60 | else | 60 | else |
61 | { | 61 | { |
@@ -83,7 +83,7 @@ static T_JZsdkReturnCode JZsdk_Check_Md5(unsigned char *DIR, unsigned char *chec | @@ -83,7 +83,7 @@ static T_JZsdkReturnCode JZsdk_Check_Md5(unsigned char *DIR, unsigned char *chec | ||
83 | if (memcmp(md5, checksum, 21) != 0) | 83 | if (memcmp(md5, checksum, 21) != 0) |
84 | { | 84 | { |
85 | JZSDK_LOG_ERROR("checksum error\n"); | 85 | JZSDK_LOG_ERROR("checksum error\n"); |
86 | - return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | 86 | + return JZ_ERROR_SYSTEM_MODULE_CODE_CHECK_CODE_ERROR; |
87 | } | 87 | } |
88 | 88 | ||
89 | return ret; | 89 | return ret; |
1 | -/** | ||
2 | - ******************************************************************** | ||
3 | - * @file JZsdk_FS_Standards.h | ||
4 | - * 用于规范文件名及长度 | ||
5 | - * | ||
6 | - ********************************************************************* | ||
7 | - */ | ||
8 | - | ||
9 | -/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/ | ||
10 | -#ifndef JZSDK_FS_STANDARDS_H | ||
11 | -#define JZSDK_FS_STANDARDS_H | ||
12 | - | ||
13 | -#define JZSDK_FILENAME_SIZE (128) //文件名最大长度128 | ||
14 | -#define JZSDK_CMD_SIZE (256) //cmd指令最大长度 | ||
15 | -#define JZSDK_DIR_SIZE (256) //目录名最大长度 | ||
16 | - | ||
17 | - | ||
18 | -#endif |
@@ -10,6 +10,7 @@ | @@ -10,6 +10,7 @@ | ||
10 | #include "JZsdkLib.h" | 10 | #include "JZsdkLib.h" |
11 | #include <dirent.h> | 11 | #include <dirent.h> |
12 | #include <errno.h> | 12 | #include <errno.h> |
13 | +#include <time.h> | ||
13 | 14 | ||
14 | /* | 15 | /* |
15 | * 用于运行指令 | 16 | * 用于运行指令 |
@@ -105,6 +106,203 @@ T_JZsdkReturnCode JZsdk_RunSystemCmd_ReturnResult_Str(char *systemCmd, unsigned | @@ -105,6 +106,203 @@ T_JZsdkReturnCode JZsdk_RunSystemCmd_ReturnResult_Str(char *systemCmd, unsigned | ||
105 | 106 | ||
106 | /********************************** | 107 | /********************************** |
107 | * | 108 | * |
109 | + * 打开一个文件 | ||
110 | + 函数名:JZsdk_Osal_FileOpen | ||
111 | + 参数:文件名,文件打开模式,文件句柄 | ||
112 | + 返回值:JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS表示打开成功, | ||
113 | + JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE表示打开失败 | ||
114 | + * *******************************/ | ||
115 | +T_JZsdkReturnCode JZsdk_Osal_FileOpen(const char *fileName, const char *fileMode, T_JZsdkFileHandle *fileObj) | ||
116 | +{ | ||
117 | + if (fileName == NULL || fileMode == NULL || fileObj == NULL) { | ||
118 | + return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER; | ||
119 | + } | ||
120 | + | ||
121 | + *fileObj = fopen(fileName, fileMode); | ||
122 | + if (*fileObj == NULL) | ||
123 | + { | ||
124 | + goto out; | ||
125 | + } | ||
126 | + | ||
127 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
128 | + | ||
129 | +out: | ||
130 | + free(*fileObj); | ||
131 | + | ||
132 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
133 | +} | ||
134 | + | ||
135 | + | ||
136 | +/********************************** | ||
137 | + * | ||
138 | + * 关闭一个文件 | ||
139 | + 函数名:JZsdk_Osal_FileClose | ||
140 | + 参数:文件句柄 | ||
141 | + 返回值:JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS表示关闭成功, | ||
142 | + JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE表示关闭失败 | ||
143 | + * *******************************/ | ||
144 | +T_JZsdkReturnCode JZsdk_Osal_FileClose(T_JZsdkFileHandle fileObj) | ||
145 | +{ | ||
146 | + int32_t ret; | ||
147 | + | ||
148 | + if (fileObj == NULL) { | ||
149 | + return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER; | ||
150 | + } | ||
151 | + | ||
152 | + ret = fclose(fileObj); | ||
153 | + if (ret < 0) { | ||
154 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
155 | + } | ||
156 | + | ||
157 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
158 | +} | ||
159 | + | ||
160 | + | ||
161 | +/*********************************** | ||
162 | + * | ||
163 | + * 写入一个文件 | ||
164 | + 函数名:JZsdk_Osal_FileWrite | ||
165 | + 参数:文件句柄,写入数据,写入长度,实际写入长度 | ||
166 | + 返回值:JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS表示写入成功, | ||
167 | + JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE表示写入失败 | ||
168 | + * *******************************/ | ||
169 | +T_JZsdkReturnCode JZsdk_Osal_FileWrite(T_JZsdkFileHandle fileObj, const U8_t *buf, U32_t len, U32_t *realLen) | ||
170 | +{ | ||
171 | + int32_t ret; | ||
172 | + | ||
173 | + if (fileObj == NULL || buf == NULL || len == 0 || realLen == NULL) { | ||
174 | + return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER; | ||
175 | + } | ||
176 | + | ||
177 | + ret = fwrite(buf, 1, len, fileObj); | ||
178 | + if (ret >= 0) { | ||
179 | + *realLen = ret; | ||
180 | + } else { | ||
181 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
182 | + } | ||
183 | + | ||
184 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
185 | +} | ||
186 | + | ||
187 | +/*********************************** | ||
188 | + * | ||
189 | + * 读取一个文件 | ||
190 | + 函数名:JZsdk_Osal_FileRead | ||
191 | + 参数:文件句柄,读取数据,读取长度,实际读取长度 | ||
192 | + 返回值:JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS表示读取成功, | ||
193 | + JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE表示读取失败 | ||
194 | + * *******************************/ | ||
195 | +T_JZsdkReturnCode JZsdk_Osal_FileRead(T_JZsdkFileHandle fileObj, U8_t *buf, U32_t len, U32_t *realLen) | ||
196 | +{ | ||
197 | + int32_t ret; | ||
198 | + | ||
199 | + if (fileObj == NULL || buf == NULL || len == 0 || realLen == NULL) { | ||
200 | + return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER; | ||
201 | + } | ||
202 | + | ||
203 | + ret = fread(buf, 1, len, fileObj); | ||
204 | + if (ret >= 0) { | ||
205 | + *realLen = ret; | ||
206 | + } else { | ||
207 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
208 | + } | ||
209 | + | ||
210 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
211 | +} | ||
212 | + | ||
213 | +/*********************************** | ||
214 | + * | ||
215 | + * 文件定位 | ||
216 | + 函数名:JZsdk_Osal_FileSeek | ||
217 | + 参数:文件句柄,偏移量 | ||
218 | + 返回值:JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS表示定位成功, | ||
219 | + JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE表示定位失败 | ||
220 | + * *******************************/ | ||
221 | +T_JZsdkReturnCode JZsdk_Osal_FileSeek(T_JZsdkFileHandle fileObj, U32_t offset) | ||
222 | +{ | ||
223 | + int32_t ret; | ||
224 | + | ||
225 | + if (fileObj == NULL) { | ||
226 | + return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER; | ||
227 | + } | ||
228 | + | ||
229 | + ret = fseek(fileObj, offset, SEEK_SET); | ||
230 | + if (ret < 0) { | ||
231 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
232 | + } | ||
233 | + | ||
234 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
235 | +} | ||
236 | + | ||
237 | +/*********************************** | ||
238 | + * | ||
239 | + * 文件同步 | ||
240 | + 函数名:JZsdk_Osal_FileSync | ||
241 | + 参数:文件句柄 | ||
242 | + 返回值:JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS表示同步成功, | ||
243 | + JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE表示同步失败 | ||
244 | + * *******************************/ | ||
245 | +T_JZsdkReturnCode JZsdk_Osal_FileSync(T_JZsdkFileHandle fileObj) | ||
246 | +{ | ||
247 | + int32_t ret; | ||
248 | + | ||
249 | + if (fileObj == NULL) { | ||
250 | + return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER; | ||
251 | + } | ||
252 | + | ||
253 | + ret = fflush(fileObj); | ||
254 | + if (ret < 0) { | ||
255 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
256 | + } | ||
257 | + | ||
258 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
259 | +} | ||
260 | + | ||
261 | + | ||
262 | +/********************************** | ||
263 | + * | ||
264 | + * 获取文件信息 | ||
265 | + 函数名:JZsdk_Osal_FileStat | ||
266 | + 参数:文件路径,文件信息 | ||
267 | + 返回值:JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS表示获取成功, | ||
268 | + JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE表示获取失败 | ||
269 | + * *******************************/ | ||
270 | +T_JZsdkReturnCode JZsdk_Osal_Stat(const char *filePath, T_JZsdkFileInfo *fileInfo) | ||
271 | +{ | ||
272 | + struct stat st; | ||
273 | + int32_t ret; | ||
274 | + struct tm *fileTm; | ||
275 | + | ||
276 | + if (filePath == NULL || fileInfo == NULL) { | ||
277 | + return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER; | ||
278 | + } | ||
279 | + | ||
280 | + ret = stat(filePath, &st); | ||
281 | + if (ret < 0) { | ||
282 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
283 | + } | ||
284 | + | ||
285 | + fileTm = localtime((const time_t *) &(st.st_mtim)); | ||
286 | + if (fileTm == NULL) { | ||
287 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
288 | + } | ||
289 | + | ||
290 | + fileInfo->size = st.st_size; | ||
291 | + | ||
292 | + fileInfo->createTime.year = fileTm->tm_year + 1900 - 1980; | ||
293 | + fileInfo->createTime.month = fileTm->tm_mon + 1; | ||
294 | + fileInfo->createTime.day = fileTm->tm_mday; | ||
295 | + fileInfo->createTime.hour = fileTm->tm_hour; | ||
296 | + fileInfo->createTime.minute = fileTm->tm_min; | ||
297 | + fileInfo->createTime.second = fileTm->tm_sec; | ||
298 | + | ||
299 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
300 | +} | ||
301 | + | ||
302 | + | ||
303 | + | ||
304 | +/********************************** | ||
305 | + * | ||
108 | * 创建一个文件夹 | 306 | * 创建一个文件夹 |
109 | 函数名:JZsdk_check_file_exists | 307 | 函数名:JZsdk_check_file_exists |
110 | 参数:文件路径 | 308 | 参数:文件路径 |
@@ -208,13 +406,37 @@ T_JZsdkReturnCode JZsdk_create_file(const char* file_path) | @@ -208,13 +406,37 @@ T_JZsdkReturnCode JZsdk_create_file(const char* file_path) | ||
208 | 406 | ||
209 | /********************************** | 407 | /********************************** |
210 | * | 408 | * |
409 | + * 重命名文件 | ||
410 | + 函数名:JZsdk_check_file_exists | ||
411 | + 参数:文件路径 | ||
412 | + 返回值:JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS表示文件存在, | ||
413 | + JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE表示文件不存在 | ||
414 | + * *******************************/ | ||
415 | +T_JZsdkReturnCode JZsdk_Osal_Rename(const char *oldFilePath, const char *newFilePath) | ||
416 | +{ | ||
417 | + int32_t ret; | ||
418 | + | ||
419 | + if (oldFilePath == NULL || newFilePath == NULL) { | ||
420 | + return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER; | ||
421 | + } | ||
422 | + | ||
423 | + ret = rename(oldFilePath, newFilePath); | ||
424 | + if (ret < 0) { | ||
425 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
426 | + } | ||
427 | + | ||
428 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
429 | +} | ||
430 | + | ||
431 | +/********************************** | ||
432 | + * | ||
211 | * 删除文件 | 433 | * 删除文件 |
212 | - 函数名:JZsdk_delete_file | 434 | + 函数名:JZsdk_Osal_delete |
213 | 参数:文件路径 | 435 | 参数:文件路径 |
214 | 返回值:JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS表示文件已经不存在 | 436 | 返回值:JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS表示文件已经不存在 |
215 | JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE表示文件仍然存在 | 437 | JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE表示文件仍然存在 |
216 | * *******************************/ | 438 | * *******************************/ |
217 | -T_JZsdkReturnCode JZsdk_delete_file(const char* file_path) | 439 | +T_JZsdkReturnCode JZsdk_Osal_delete(const char* file_path) |
218 | { | 440 | { |
219 | int remove_result = remove(file_path); | 441 | int remove_result = remove(file_path); |
220 | if (remove_result != 0) { | 442 | if (remove_result != 0) { |
@@ -12,7 +12,8 @@ | @@ -12,7 +12,8 @@ | ||
12 | 12 | ||
13 | /* Includes ------------------------------------------------------------------*/ | 13 | /* Includes ------------------------------------------------------------------*/ |
14 | #include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h" | 14 | #include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h" |
15 | -#include "./JZsdk_FS_Standards.h" | 15 | +#include "JZsdk_Base/JZsdk_Code/JZsdk_Platform/JZsdk_Platform.h" |
16 | +#include "JZsdk_Base/JZsdk_Code/JZsdk_typedef/JZsdk_typedef.h" | ||
16 | 17 | ||
17 | #ifdef __cplusplus | 18 | #ifdef __cplusplus |
18 | extern "C" { | 19 | extern "C" { |
@@ -28,7 +29,7 @@ extern "C" { | @@ -28,7 +29,7 @@ extern "C" { | ||
28 | T_JZsdkReturnCode JZsdk_RunSystemCmd(char *systemCmd); | 29 | T_JZsdkReturnCode JZsdk_RunSystemCmd(char *systemCmd); |
29 | T_JZsdkReturnCode JZsdk_check_file_exists(const char* file_path) ; | 30 | T_JZsdkReturnCode JZsdk_check_file_exists(const char* file_path) ; |
30 | T_JZsdkReturnCode JZsdk_create_file(const char* file_path) ; | 31 | T_JZsdkReturnCode JZsdk_create_file(const char* file_path) ; |
31 | -T_JZsdkReturnCode JZsdk_delete_file(const char* file_path) ; | 32 | +T_JZsdkReturnCode JZsdk_Osal_delete(const char* file_path); |
32 | T_JZsdkReturnCode JZsdk_strings_suffix_comparison_onlyStr(const unsigned char* Strings, const unsigned char *suffix) ; | 33 | T_JZsdkReturnCode JZsdk_strings_suffix_comparison_onlyStr(const unsigned char* Strings, const unsigned char *suffix) ; |
33 | T_JZsdkReturnCode JZsdk_strings_suffix_comparison_withLen(const unsigned char* Strings, int Strings_len, const unsigned char *suffix) ; | 34 | T_JZsdkReturnCode JZsdk_strings_suffix_comparison_withLen(const unsigned char* Strings, int Strings_len, const unsigned char *suffix) ; |
34 | T_JZsdkReturnCode JZsdk_Osal_Mkdir(const char *filePath); | 35 | T_JZsdkReturnCode JZsdk_Osal_Mkdir(const char *filePath); |
@@ -40,6 +41,17 @@ T_JZsdkReturnCode JZsdk_copy_file_byC(const char* source_path, const char* dest_ | @@ -40,6 +41,17 @@ T_JZsdkReturnCode JZsdk_copy_file_byC(const char* source_path, const char* dest_ | ||
40 | T_JZsdkReturnCode JZsdk_RunSystemCmd_ReturnResult(char *systemCmd, unsigned int *result); | 41 | T_JZsdkReturnCode JZsdk_RunSystemCmd_ReturnResult(char *systemCmd, unsigned int *result); |
41 | T_JZsdkReturnCode JZsdk_RunSystemCmd_ReturnResult_Str(char *systemCmd, unsigned char *str); | 42 | T_JZsdkReturnCode JZsdk_RunSystemCmd_ReturnResult_Str(char *systemCmd, unsigned char *str); |
42 | T_JZsdkReturnCode JZsdk_Sync(); | 43 | T_JZsdkReturnCode JZsdk_Sync(); |
44 | +T_JZsdkReturnCode JZsdk_Osal_Stat(const char *filePath, T_JZsdkFileInfo *fileInfo); | ||
45 | +T_JZsdkReturnCode JZsdk_Osal_Rename(const char *oldFilePath, const char *newFilePath); | ||
46 | + | ||
47 | + | ||
48 | +T_JZsdkReturnCode JZsdk_Osal_FileOpen(const char *fileName, const char *fileMode, T_JZsdkFileHandle *fileObj); | ||
49 | +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); | ||
52 | +T_JZsdkReturnCode JZsdk_Osal_FileSeek(T_JZsdkFileHandle fileObj, U32_t offset); | ||
53 | +T_JZsdkReturnCode JZsdk_Osal_FileSync(T_JZsdkFileHandle fileObj); | ||
54 | + | ||
43 | 55 | ||
44 | #ifdef __cplusplus | 56 | #ifdef __cplusplus |
45 | } | 57 | } |
@@ -8,7 +8,12 @@ static T_JZsdkOsalHandler* g_osalHandler = NULL; | @@ -8,7 +8,12 @@ static T_JZsdkOsalHandler* g_osalHandler = NULL; | ||
8 | 8 | ||
9 | static T_JZsdkReturnCode JZsdk_Platform_RegOsalHandler(const T_JZsdkOsalHandler *osalHandler) | 9 | static T_JZsdkReturnCode JZsdk_Platform_RegOsalHandler(const T_JZsdkOsalHandler *osalHandler) |
10 | { | 10 | { |
11 | - g_osalHandler = (T_JZsdkOsalHandler*)osalHandler; // 存储传入的 OSAL 处理器 | 11 | + g_osalHandler = malloc(sizeof(T_JZsdkOsalHandler)); |
12 | + if (osalHandler == NULL) { | ||
13 | + return JZ_ERROR_SYSTEM_MODULE_CODE_MEMORY_ALLOC_FAILED; // 处理内存分配失败的情况 | ||
14 | + } | ||
15 | + | ||
16 | + memcpy(g_osalHandler, osalHandler, sizeof(T_JZsdkOsalHandler)); | ||
12 | 17 | ||
13 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 18 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
14 | } | 19 | } |
@@ -35,6 +35,7 @@ extern "C" { | @@ -35,6 +35,7 @@ extern "C" { | ||
35 | * | 35 | * |
36 | * ******************/ | 36 | * ******************/ |
37 | typedef struct { | 37 | typedef struct { |
38 | + //任务名 任务函数 任务栈大小 任务参数 任务句柄 | ||
38 | T_JZsdkReturnCode (*TaskCreate)(const char *name, void *(*taskFunc)(void *), | 39 | T_JZsdkReturnCode (*TaskCreate)(const char *name, void *(*taskFunc)(void *), |
39 | unsigned int stackSize, void *arg, T_JZTaskHandle *task); | 40 | unsigned int stackSize, void *arg, T_JZTaskHandle *task); |
40 | 41 |
1 | #include <stdio.h> | 1 | #include <stdio.h> |
2 | #include <stdlib.h> | 2 | #include <stdlib.h> |
3 | #include <pthread.h> | 3 | #include <pthread.h> |
4 | +#include <string.h> // Include this for strncpy | ||
4 | 5 | ||
5 | #include "./JZsdk_Task.h" | 6 | #include "./JZsdk_Task.h" |
6 | 7 | ||
@@ -12,13 +13,15 @@ T_JZsdkReturnCode JZsdk_Osal_TaskCreate(const char *name, void *(*taskFunc)(void | @@ -12,13 +13,15 @@ T_JZsdkReturnCode JZsdk_Osal_TaskCreate(const char *name, void *(*taskFunc)(void | ||
12 | 13 | ||
13 | //为任务句柄分配内存空间,大小为sizeof(pthread_t)。如果内存分配失败,则返回一个错误代码 | 14 | //为任务句柄分配内存空间,大小为sizeof(pthread_t)。如果内存分配失败,则返回一个错误代码 |
14 | *task = malloc(sizeof(pthread_t)); | 15 | *task = malloc(sizeof(pthread_t)); |
15 | - if (*task == NULL) { | 16 | + if (*task == NULL) |
17 | + { | ||
16 | return JZ_ERROR_SYSTEM_MODULE_CODE_MEMORY_ALLOC_FAILED; | 18 | return JZ_ERROR_SYSTEM_MODULE_CODE_MEMORY_ALLOC_FAILED; |
17 | } | 19 | } |
18 | 20 | ||
19 | //使用pthread_create函数创建一个新的线程,传递给它任务函数指针taskFunc和参数arg。如果创建线程失败,则返回一个错误代码 | 21 | //使用pthread_create函数创建一个新的线程,传递给它任务函数指针taskFunc和参数arg。如果创建线程失败,则返回一个错误代码 |
20 | result = pthread_create(*task, NULL, taskFunc, arg); | 22 | result = pthread_create(*task, NULL, taskFunc, arg); |
21 | - if (result != 0) { | 23 | + if (result != 0) |
24 | + { | ||
22 | return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | 25 | return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; |
23 | } | 26 | } |
24 | 27 | ||
@@ -28,8 +31,9 @@ T_JZsdkReturnCode JZsdk_Osal_TaskCreate(const char *name, void *(*taskFunc)(void | @@ -28,8 +31,9 @@ T_JZsdkReturnCode JZsdk_Osal_TaskCreate(const char *name, void *(*taskFunc)(void | ||
28 | strncpy(nameDealed, name, sizeof(nameDealed) - 1); | 31 | strncpy(nameDealed, name, sizeof(nameDealed) - 1); |
29 | 32 | ||
30 | //使用pthread_setname_np函数将任务线程的名称设置为nameDealed。如果设置线程名称失败,则返回一个错误代码 | 33 | //使用pthread_setname_np函数将任务线程的名称设置为nameDealed。如果设置线程名称失败,则返回一个错误代码 |
31 | - result = pthread_setname_np(*(pthread_t *) *task, nameDealed); | ||
32 | - if (result != 0) { | 34 | + result = pthread_setname_np( *(pthread_t *) *task, nameDealed); |
35 | + if (result != 0) | ||
36 | + { | ||
33 | return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | 37 | return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; |
34 | } | 38 | } |
35 | 39 |
@@ -91,6 +91,9 @@ T_JZsdkReturnCode TaskManagement_SubmitTask(void (*task_function)(void*), void* | @@ -91,6 +91,9 @@ T_JZsdkReturnCode TaskManagement_SubmitTask(void (*task_function)(void*), void* | ||
91 | static void* TaskManagement_ThreadFunction(void* arg) | 91 | static void* TaskManagement_ThreadFunction(void* arg) |
92 | { | 92 | { |
93 | t_ThreadPool* pool = (t_ThreadPool*)arg; | 93 | t_ThreadPool* pool = (t_ThreadPool*)arg; |
94 | + | ||
95 | + JZSDK_LOG_DEBUG("TaskManagement_Thread Have Create"); | ||
96 | + | ||
94 | while (1) | 97 | while (1) |
95 | { | 98 | { |
96 | pthread_mutex_lock(&pool->lock); | 99 | pthread_mutex_lock(&pool->lock); |
@@ -543,7 +543,7 @@ int Main_APP_Uart() | @@ -543,7 +543,7 @@ int Main_APP_Uart() | ||
543 | delayMs(1000); | 543 | delayMs(1000); |
544 | 544 | ||
545 | //消息订阅初始化 | 545 | //消息订阅初始化 |
546 | - HalSend_type1Send_MessageSubcription_Control(UART_DEV_2, JZ_FLAGCODE_ON); | 546 | + HalSend_type1Send_MessageSubcription_Control(UART_DEV_2, JZ_FLAGCODE_OFF); |
547 | 547 | ||
548 | // //测试需要开启亮度 | 548 | // //测试需要开启亮度 |
549 | // JZsdk_Uart_SearchLight_Control(UART_DEV_1, 1); | 549 | // JZsdk_Uart_SearchLight_Control(UART_DEV_1, 1); |
@@ -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_H1E | 10 | +#define DEVICE_VERSION JZ_H1T |
11 | 11 | ||
12 | //禁止修改行 选择是串口程序 还是 psdk程序 | 12 | //禁止修改行 选择是串口程序 还是 psdk程序 |
13 | #define APP_VERSION APP_UART | 13 | #define APP_VERSION APP_UART |
@@ -37,7 +37,7 @@ | @@ -37,7 +37,7 @@ | ||
37 | * 帧尾两位 0x00 0x23 | 祖册了实际的帧尾 | 37 | * 帧尾两位 0x00 0x23 | 祖册了实际的帧尾 |
38 | * | 38 | * |
39 | * ********************/ | 39 | * ********************/ |
40 | -int HalRecv_type1_PreliminaryScreeningOfData(unsigned char *Data, unsigned int DataLen, int Port) | 40 | +int HalRecv_type1_PreliminaryScreeningOfData(unsigned char *Data, int DataLen, int Port) |
41 | { | 41 | { |
42 | int ResidualLength = 0; // 剩余数据长度 | 42 | int ResidualLength = 0; // 剩余数据长度 |
43 | 43 |
@@ -23,7 +23,7 @@ extern "C" { | @@ -23,7 +23,7 @@ extern "C" { | ||
23 | 23 | ||
24 | /* Exported functions --------------------------------------------------------*/ | 24 | /* Exported functions --------------------------------------------------------*/ |
25 | 25 | ||
26 | -int HalRecv_type1_PreliminaryScreeningOfData(unsigned char *Data, unsigned int DataLen, int Port); | 26 | +int HalRecv_type1_PreliminaryScreeningOfData(unsigned char *Data, int DataLen, int Port); |
27 | 27 | ||
28 | 28 | ||
29 | #ifdef __cplusplus | 29 | #ifdef __cplusplus |
@@ -14,6 +14,8 @@ | @@ -14,6 +14,8 @@ | ||
14 | #include "Megaphone/Megaphone.h" | 14 | #include "Megaphone/Megaphone.h" |
15 | #include "DeviceInfo/DeviceInfo.h" | 15 | #include "DeviceInfo/DeviceInfo.h" |
16 | 16 | ||
17 | +#include "CommonMod/CommonMod.h" | ||
18 | + | ||
17 | #include "Hal_Send/HalSend_type1/HalSend_type1.h" | 19 | #include "Hal_Send/HalSend_type1/HalSend_type1.h" |
18 | #include "Hal_Send/HalSend.h" | 20 | #include "Hal_Send/HalSend.h" |
19 | #include "JZsdk_Hal.h" | 21 | #include "JZsdk_Hal.h" |
@@ -21,9 +23,10 @@ | @@ -21,9 +23,10 @@ | ||
21 | #ifdef MEGAPHONE_CONFIG_STATUS_ON | 23 | #ifdef MEGAPHONE_CONFIG_STATUS_ON |
22 | #include "Megaphone/Megaphone.h" | 24 | #include "Megaphone/Megaphone.h" |
23 | #include "Megaphone/Music/AudioFile/Megaphone_AudioFile.h" | 25 | #include "Megaphone/Music/AudioFile/Megaphone_AudioFile.h" |
26 | + #include "Megaphone/Opus/Megaphone_Opus.h" | ||
24 | #endif | 27 | #endif |
25 | 28 | ||
26 | -static int HalRecvMode = JZ_FLAGCODE_OFF; | 29 | +static int HalRecvMode = JZ_FLAGCODE_OFF; //接收模式,主要是为了限制不同设备同时要求hal层做出 同一个数据接收相关功能 ,目前做法是只限定一个hal设备使用一种数据接收模式 |
27 | static int HalRecvDataLen = 0; //用于计算接收数据长度 | 30 | static int HalRecvDataLen = 0; //用于计算接收数据长度 |
28 | 31 | ||
29 | static int SecondaryDeviceName = 0x00; // 从设备名,用于多设备相连时通知控制端 从机设备名 | 32 | static int SecondaryDeviceName = 0x00; // 从设备名,用于多设备相连时通知控制端 从机设备名 |
@@ -74,6 +77,10 @@ static T_JZsdkReturnCode RecvDeal_AskForConnect(int Port, char *getbuf) | @@ -74,6 +77,10 @@ static T_JZsdkReturnCode RecvDeal_AskForConnect(int Port, char *getbuf) | ||
74 | Main_WorkModeSet(JZ_FLAGCODE_ON); | 77 | Main_WorkModeSet(JZ_FLAGCODE_ON); |
75 | } | 78 | } |
76 | 79 | ||
80 | + //5、打开连接状态 | ||
81 | + s_JZsdk_Hal_Info *halInfo = JZsdk_Hal_GetHalInfo(); | ||
82 | + halInfo->HalPort[Port].ConnectStatus = JZ_FLAGCODE_ON; | ||
83 | + | ||
77 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 84 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
78 | } | 85 | } |
79 | 86 | ||
@@ -90,10 +97,28 @@ static T_JZsdkReturnCode RecvDeal_HeartBeat(int Port, char *getbuf) | @@ -90,10 +97,28 @@ static T_JZsdkReturnCode RecvDeal_HeartBeat(int Port, char *getbuf) | ||
90 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); | 97 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); |
91 | 98 | ||
92 | //1、获取连接情况 | 99 | //1、获取连接情况 |
93 | - int status = Main_WorkModeSet(JZ_FLAGCODE_GET); | 100 | + s_JZsdk_Hal_Info *halInfo = JZsdk_Hal_GetHalInfo(); |
94 | 101 | ||
102 | + //分析模式 | ||
103 | + int mode = getbuf[9]; | ||
104 | + if (mode == 0x00) | ||
105 | + { | ||
95 | //2、回复心跳帧 | 106 | //2、回复心跳帧 |
96 | - HalSend_type1Send_Send_HeartBeatStatus(Port, FrameSequence, status); | 107 | + HalSend_type1Send_Send_HeartBeatStatus(Port, FrameSequence, halInfo->HalPort[Port].ConnectStatus); |
108 | + } | ||
109 | + else if (mode == 0x01 || mode == 0x02) | ||
110 | + { | ||
111 | + if(mode == 0x01) | ||
112 | + { | ||
113 | + halInfo->HalPort[Port].HeartBeatStatusSend = JZ_FLAGCODE_ON; | ||
114 | + } | ||
115 | + else if (mode == 0x02) | ||
116 | + { | ||
117 | + halInfo->HalPort[Port].HeartBeatStatusSend = JZ_FLAGCODE_OFF; | ||
118 | + } | ||
119 | + | ||
120 | + HalSend_type1Send_Reply_Success(Port, FrameSequence); | ||
121 | + } | ||
97 | 122 | ||
98 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 123 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
99 | } | 124 | } |
@@ -449,20 +474,13 @@ static T_JZsdkReturnCode RecvDeal_RealTimeMP2_stop(int Port, char *getbuf) | @@ -449,20 +474,13 @@ static T_JZsdkReturnCode RecvDeal_RealTimeMP2_stop(int Port, char *getbuf) | ||
449 | **********/ | 474 | **********/ |
450 | static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_start(int Port, char *getbuf, int len) | 475 | static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_start(int Port, char *getbuf, int len) |
451 | { | 476 | { |
477 | + T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
478 | + | ||
452 | JZSDK_LOG_INFO("%s,开始传输的音频文件保存",JZsdk_DefineCode_GetPortName(Port)); | 479 | JZSDK_LOG_INFO("%s,开始传输的音频文件保存",JZsdk_DefineCode_GetPortName(Port)); |
453 | 480 | ||
454 | //获取帧的序列号 | 481 | //获取帧的序列号 |
455 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); | 482 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); |
456 | 483 | ||
457 | - T_JZsdkReturnCode ret = HalRecv_tpye1_RecvDeal_UartTransmodeDecide(); | ||
458 | - if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
459 | - { | ||
460 | - //回复操作失败 | ||
461 | - HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
462 | - JZSDK_LOG_ERROR("开始传输的音频文件保存失败"); | ||
463 | - return ret; | ||
464 | - } | ||
465 | - | ||
466 | //1、处理帧长度,获取文件名长度 | 484 | //1、处理帧长度,获取文件名长度 |
467 | int FileNameLen = ((int)getbuf[3] << 8) + (int)getbuf[4] - 2 - 9; | 485 | int FileNameLen = ((int)getbuf[3] << 8) + (int)getbuf[4] - 2 - 9; |
468 | 486 | ||
@@ -475,21 +493,16 @@ static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_start(int Port, char *getbu | @@ -475,21 +493,16 @@ static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_start(int Port, char *getbu | ||
475 | #ifdef MEGAPHONE_CONFIG_STATUS_ON | 493 | #ifdef MEGAPHONE_CONFIG_STATUS_ON |
476 | 494 | ||
477 | ret = Megaphone_SaveAudioFileStart(FileName); | 495 | ret = Megaphone_SaveAudioFileStart(FileName); |
478 | - if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
479 | - { | ||
480 | - HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
481 | - return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
482 | - } | ||
483 | 496 | ||
484 | - //3、调整接收模式为音频文件传输 | ||
485 | - HalRecv_tpye1_RecvDeal_Set_UartReceiveMode(Port, JZ_DATA_TRANS_TYPE_AUDIO_FILE); | ||
486 | - HalRecvDataLen = 0; | ||
487 | - | ||
488 | - //4、回复操作成功 | 497 | +#endif |
498 | + if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
499 | + { | ||
489 | HalSend_type1Send_Reply_Success(Port, FrameSequence); | 500 | HalSend_type1Send_Reply_Success(Port, FrameSequence); |
490 | -#else | 501 | + } |
502 | + else | ||
503 | + { | ||
491 | HalSend_type1Send_Reply_Failure(Port, FrameSequence); | 504 | HalSend_type1Send_Reply_Failure(Port, FrameSequence); |
492 | -#endif | 505 | + } |
493 | 506 | ||
494 | return ret; | 507 | return ret; |
495 | } | 508 | } |
@@ -502,7 +515,7 @@ static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_start(int Port, char *getbu | @@ -502,7 +515,7 @@ static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_start(int Port, char *getbu | ||
502 | **********/ | 515 | **********/ |
503 | static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_LimitTransmission(int Port, char *getbuf, int len) | 516 | static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_LimitTransmission(int Port, char *getbuf, int len) |
504 | { | 517 | { |
505 | - T_JZsdkReturnCode ret; | 518 | + T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; |
506 | 519 | ||
507 | //获取帧的序列号 | 520 | //获取帧的序列号 |
508 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); | 521 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); |
@@ -515,21 +528,21 @@ static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_LimitTransmission(int Port, | @@ -515,21 +528,21 @@ static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_LimitTransmission(int Port, | ||
515 | return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | 528 | return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; |
516 | } | 529 | } |
517 | 530 | ||
518 | - if (HalRecvMode != JZ_DATA_TRANS_TYPE_AUDIO_FILE) | ||
519 | - { | ||
520 | - JZSDK_LOG_ERROR("%s, 传输mp2文件未开始,无法传输", JZsdk_DefineCode_GetPortName(Port)); | ||
521 | - HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
522 | - return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
523 | - } | ||
524 | - | ||
525 | - HalRecvDataLen += DataLen; | ||
526 | - //JZSDK_LOG_DEBUG("%s,传输定长音频文件中 ,一共传输了%d字节",JZsdk_DefineCode_GetPortName(Port), HalRecvDataLen); | ||
527 | - | ||
528 | //传输数据接口 | 531 | //传输数据接口 |
529 | #ifdef MEGAPHONE_CONFIG_STATUS_ON | 532 | #ifdef MEGAPHONE_CONFIG_STATUS_ON |
530 | - Megaphone_SaveAudioFileTrans(getbuf+9, DataLen); | 533 | + ret = Megaphone_SaveAudioFileTrans(getbuf+9, DataLen); |
531 | #endif | 534 | #endif |
532 | 535 | ||
536 | + if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
537 | + { | ||
538 | + //无操作 | ||
539 | + } | ||
540 | + else | ||
541 | + { | ||
542 | + //回复操作失败 | ||
543 | + HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
544 | + } | ||
545 | + | ||
533 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 546 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
534 | } | 547 | } |
535 | 548 | ||
@@ -541,31 +554,28 @@ static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_LimitTransmission(int Port, | @@ -541,31 +554,28 @@ static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_LimitTransmission(int Port, | ||
541 | **********/ | 554 | **********/ |
542 | static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_stop(int Port, char *getbuf) | 555 | static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_stop(int Port, char *getbuf) |
543 | { | 556 | { |
557 | + T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
558 | + | ||
544 | JZSDK_LOG_INFO("%s,传输的音频文件保存",JZsdk_DefineCode_GetPortName(Port)); | 559 | JZSDK_LOG_INFO("%s,传输的音频文件保存",JZsdk_DefineCode_GetPortName(Port)); |
545 | 560 | ||
546 | //获取帧的序列号 | 561 | //获取帧的序列号 |
547 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); | 562 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); |
548 | 563 | ||
549 | - if (HalRecvMode != JZ_DATA_TRANS_TYPE_AUDIO_FILE) | ||
550 | - { | ||
551 | - //回复操作失败 | ||
552 | - HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
553 | - JZSDK_LOG_ERROR("关闭音频文件上传失败,音频文件上传未开始,无法关闭"); | ||
554 | - return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
555 | - } | ||
556 | - | ||
557 | //1、保存音频数据 | 564 | //1、保存音频数据 |
558 | #ifdef MEGAPHONE_CONFIG_STATUS_ON | 565 | #ifdef MEGAPHONE_CONFIG_STATUS_ON |
559 | - Megaphone_SaveAudioFileStop(JZ_FLAGCODE_OFF, NULL); | 566 | + ret = Megaphone_SaveAudioFileStop(JZ_FLAGCODE_OFF, NULL); |
560 | #endif | 567 | #endif |
561 | 568 | ||
562 | - //3、调整接收模式为音频文件传输 | ||
563 | - HalRecv_tpye1_RecvDeal_Set_UartReceiveMode(Port, JZ_FLAGCODE_OFF); | ||
564 | - JZSDK_LOG_INFO("一共传输了%d字节", HalRecvDataLen); | ||
565 | - HalRecvDataLen = 0; | ||
566 | - | ||
567 | - //2、回复操作成功 | 569 | + if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) |
570 | + { | ||
571 | + //4、回复操作成功 | ||
568 | HalSend_type1Send_Reply_Success(Port, FrameSequence); | 572 | HalSend_type1Send_Reply_Success(Port, FrameSequence); |
573 | + } | ||
574 | + else | ||
575 | + { | ||
576 | + //4、回复操作失败 | ||
577 | + HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
578 | + } | ||
569 | 579 | ||
570 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 580 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
571 | } | 581 | } |
@@ -585,14 +595,6 @@ static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_stop_and_check(int Port, ch | @@ -585,14 +595,6 @@ static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_stop_and_check(int Port, ch | ||
585 | //获取帧的序列号 | 595 | //获取帧的序列号 |
586 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); | 596 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); |
587 | 597 | ||
588 | - if (HalRecvMode != JZ_DATA_TRANS_TYPE_AUDIO_FILE) | ||
589 | - { | ||
590 | - //回复操作失败 | ||
591 | - HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
592 | - JZSDK_LOG_ERROR("关闭音频文件上传失败,音频文件上传未开始,无法关闭"); | ||
593 | - return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
594 | - } | ||
595 | - | ||
596 | unsigned char checkCode[128]; | 598 | unsigned char checkCode[128]; |
597 | int frameLenth = ((int)getbuf[3]) << 8 | (int)getbuf[4]; | 599 | int frameLenth = ((int)getbuf[3]) << 8 | (int)getbuf[4]; |
598 | int CodeLenth = frameLenth - 10 - 2; | 600 | int CodeLenth = frameLenth - 10 - 2; |
@@ -649,11 +651,6 @@ static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_stop_and_check(int Port, ch | @@ -649,11 +651,6 @@ static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_stop_and_check(int Port, ch | ||
649 | } | 651 | } |
650 | #endif | 652 | #endif |
651 | 653 | ||
652 | - //调整接收模式为音频文件传输 | ||
653 | - HalRecv_tpye1_RecvDeal_Set_UartReceiveMode(Port, JZ_FLAGCODE_OFF); | ||
654 | - JZSDK_LOG_INFO("一共传输了%d字节", HalRecvDataLen); | ||
655 | - HalRecvDataLen = 0; | ||
656 | - | ||
657 | return ret; | 654 | return ret; |
658 | } | 655 | } |
659 | 656 | ||
@@ -1563,10 +1560,13 @@ static T_JZsdkReturnCode RecvDeal_Delete_Audio(int Port, char *getbuf) | @@ -1563,10 +1560,13 @@ static T_JZsdkReturnCode RecvDeal_Delete_Audio(int Port, char *getbuf) | ||
1563 | FileName[FileName_Length] = '\0'; // 确保文件名以null结尾 | 1560 | FileName[FileName_Length] = '\0'; // 确保文件名以null结尾 |
1564 | 1561 | ||
1565 | //3、拼接指令 | 1562 | //3、拼接指令 |
1566 | - char cmd[512]; | ||
1567 | - snprintf(cmd, 512 ,"rm /root/sdcard/audio/%s", FileName); | 1563 | + char FilePath[512]; |
1564 | + snprintf(FilePath, 512 ,"/root/sdcard/audio/%s", FileName); | ||
1565 | + | ||
1566 | + //4、删除文件 | ||
1567 | + JZsdk_Osal_delete(FilePath); | ||
1568 | 1568 | ||
1569 | - JZsdk_RunSystemCmd(cmd); | 1569 | + JZsdk_Sync(); |
1570 | 1570 | ||
1571 | //4、刷新歌曲列表 | 1571 | //4、刷新歌曲列表 |
1572 | #ifdef MEGAPHONE_CONFIG_STATUS_ON | 1572 | #ifdef MEGAPHONE_CONFIG_STATUS_ON |
@@ -1587,7 +1587,7 @@ static T_JZsdkReturnCode RecvDeal_Delete_Audio(int Port, char *getbuf) | @@ -1587,7 +1587,7 @@ static T_JZsdkReturnCode RecvDeal_Delete_Audio(int Port, char *getbuf) | ||
1587 | **********/ | 1587 | **********/ |
1588 | static T_JZsdkReturnCode RecvDeal_Delete_VoiceRecord(int Port, char *getbuf) | 1588 | static T_JZsdkReturnCode RecvDeal_Delete_VoiceRecord(int Port, char *getbuf) |
1589 | { | 1589 | { |
1590 | - JZSDK_LOG_INFO("%s,删除录音操作",JZsdk_DefineCode_GetPortName(Port)); | 1590 | + JZSDK_LOG_INFO("%s,删除opus录音操作",JZsdk_DefineCode_GetPortName(Port)); |
1591 | 1591 | ||
1592 | //获取帧的序列号 | 1592 | //获取帧的序列号 |
1593 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); | 1593 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); |
@@ -1597,19 +1597,22 @@ static T_JZsdkReturnCode RecvDeal_Delete_VoiceRecord(int Port, char *getbuf) | @@ -1597,19 +1597,22 @@ static T_JZsdkReturnCode RecvDeal_Delete_VoiceRecord(int Port, char *getbuf) | ||
1597 | FileName_Length = ((int)getbuf[3] << 8) + (int)getbuf[4] - 2 - 9; | 1597 | FileName_Length = ((int)getbuf[3] << 8) + (int)getbuf[4] - 2 - 9; |
1598 | 1598 | ||
1599 | //2、获取名字 | 1599 | //2、获取名字 |
1600 | - char FileName[256]; | 1600 | + char FileName[JZSDK_FILE_NAME_SIZE_MAX]; |
1601 | memcpy(FileName, &getbuf[9], FileName_Length); | 1601 | memcpy(FileName, &getbuf[9], FileName_Length); |
1602 | FileName[FileName_Length] = '\0'; // 确保文件名以null结尾 | 1602 | FileName[FileName_Length] = '\0'; // 确保文件名以null结尾 |
1603 | 1603 | ||
1604 | //3、拼接指令 | 1604 | //3、拼接指令 |
1605 | - char cmd[512]; | ||
1606 | - snprintf(cmd, 512 ,"rm /root/sdcard/audio/%s", FileName); | 1605 | + char FilePath[512]; |
1606 | + snprintf(FilePath, 512 ,"/root/sdcard/opus/%s", FileName); | ||
1607 | 1607 | ||
1608 | - JZsdk_RunSystemCmd(cmd); | 1608 | + //4、删除文件 |
1609 | + JZsdk_Osal_delete(FilePath); | ||
1610 | + | ||
1611 | + JZsdk_Sync(); | ||
1609 | 1612 | ||
1610 | //4、刷新歌曲列表 | 1613 | //4、刷新歌曲列表 |
1611 | #ifdef MEGAPHONE_CONFIG_STATUS_ON | 1614 | #ifdef MEGAPHONE_CONFIG_STATUS_ON |
1612 | - Megaphone_Flush_MusicList(); | 1615 | + OpusFile_FlushList(); |
1613 | #endif | 1616 | #endif |
1614 | 1617 | ||
1615 | //回复操作成功 | 1618 | //回复操作成功 |
@@ -1629,6 +1632,128 @@ static T_JZsdkReturnCode RecvDeal_Delete_VideoRecord() | @@ -1629,6 +1632,128 @@ static T_JZsdkReturnCode RecvDeal_Delete_VideoRecord() | ||
1629 | 1632 | ||
1630 | } | 1633 | } |
1631 | 1634 | ||
1635 | + | ||
1636 | + | ||
1637 | +/********* | ||
1638 | + * | ||
1639 | + * 音频重命名 | ||
1640 | + * | ||
1641 | + * | ||
1642 | +**********/ | ||
1643 | +static T_JZsdkReturnCode RecvDeal_Rename_Audio(int Port, char *getbuf) | ||
1644 | +{ | ||
1645 | + JZSDK_LOG_INFO("%s,音频重命名",JZsdk_DefineCode_GetPortName(Port)); | ||
1646 | + | ||
1647 | + //获取帧的序列号 | ||
1648 | + int FrameSequence = JZsdk_Get_FrameSequence(getbuf); | ||
1649 | + | ||
1650 | + //获取总帧长度 | ||
1651 | + int FrameLength = JZsdk_Get_FrameLength(getbuf); | ||
1652 | + | ||
1653 | + //获取原文件长度 | ||
1654 | + int OldFileName_Length = getbuf[9]; | ||
1655 | + | ||
1656 | + //获取新文件长度 | ||
1657 | + int NewFileName_Length = getbuf[10 + OldFileName_Length]; | ||
1658 | + | ||
1659 | + //获取原文件名字 | ||
1660 | + unsigned char OldFileName[128]; | ||
1661 | + memcpy(OldFileName, &getbuf[9], OldFileName_Length); | ||
1662 | + OldFileName[OldFileName_Length] = '\0'; // 确保文件名以null结尾 | ||
1663 | + | ||
1664 | + //获取新文件名字 | ||
1665 | + unsigned char NewFileName[128]; | ||
1666 | + memcpy(NewFileName, &getbuf[10 + OldFileName_Length], NewFileName_Length); | ||
1667 | + NewFileName[NewFileName_Length] = '\0'; // 确保文件名以null结尾 | ||
1668 | + | ||
1669 | + //3、拼接出地址 | ||
1670 | + char OldFilePath[JZSDK_FILE_PATH_SIZE_MAX]; | ||
1671 | + snprintf(OldFilePath, JZSDK_FILE_PATH_SIZE_MAX ,"/root/sdcard/audio/%s", OldFileName); | ||
1672 | + | ||
1673 | + char NewFilePath[JZSDK_FILE_PATH_SIZE_MAX]; | ||
1674 | + snprintf(NewFilePath, JZSDK_FILE_PATH_SIZE_MAX ,"/root/sdcard/audio/%s", NewFileName); | ||
1675 | + | ||
1676 | + JZsdk_Osal_Rename(OldFilePath, NewFilePath); | ||
1677 | + | ||
1678 | + JZsdk_Sync(); | ||
1679 | + | ||
1680 | + //4、刷新歌曲列表 | ||
1681 | +#ifdef MEGAPHONE_CONFIG_STATUS_ON | ||
1682 | + Megaphone_Flush_MusicList(); | ||
1683 | +#endif | ||
1684 | + | ||
1685 | + //回复操作成功 | ||
1686 | + HalSend_type1Send_Reply_Success(Port, FrameSequence); | ||
1687 | + | ||
1688 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
1689 | +} | ||
1690 | + | ||
1691 | +/********* | ||
1692 | + * | ||
1693 | + * 录音重命名 | ||
1694 | + * | ||
1695 | + * | ||
1696 | +**********/ | ||
1697 | +static T_JZsdkReturnCode RecvDeal_Rename_VoiceRecord(int Port, char *getbuf) | ||
1698 | +{ | ||
1699 | + JZSDK_LOG_INFO("%s,音频重命名",JZsdk_DefineCode_GetPortName(Port)); | ||
1700 | + | ||
1701 | + //获取帧的序列号 | ||
1702 | + int FrameSequence = JZsdk_Get_FrameSequence(getbuf); | ||
1703 | + | ||
1704 | + //获取总帧长度 | ||
1705 | + int FrameLength = JZsdk_Get_FrameLength(getbuf); | ||
1706 | + | ||
1707 | + //获取原文件长度 | ||
1708 | + int OldFileName_Length = getbuf[9]; | ||
1709 | + | ||
1710 | + //获取新文件长度 | ||
1711 | + int NewFileName_Length = getbuf[10 + OldFileName_Length]; | ||
1712 | + | ||
1713 | + //获取原文件名字 | ||
1714 | + unsigned char OldFileName[128]; | ||
1715 | + memcpy(OldFileName, &getbuf[9], OldFileName_Length); | ||
1716 | + OldFileName[OldFileName_Length] = '\0'; // 确保文件名以null结尾 | ||
1717 | + | ||
1718 | + //获取新文件名字 | ||
1719 | + unsigned char NewFileName[128]; | ||
1720 | + memcpy(NewFileName, &getbuf[10 + OldFileName_Length], NewFileName_Length); | ||
1721 | + NewFileName[NewFileName_Length] = '\0'; // 确保文件名以null结尾 | ||
1722 | + | ||
1723 | + //3、拼接出地址 | ||
1724 | + char OldFilePath[JZSDK_FILE_PATH_SIZE_MAX]; | ||
1725 | + snprintf(OldFilePath, JZSDK_FILE_PATH_SIZE_MAX ,"/root/sdcard/opus/%s", OldFileName); | ||
1726 | + | ||
1727 | + char NewFilePath[JZSDK_FILE_PATH_SIZE_MAX]; | ||
1728 | + snprintf(NewFilePath, JZSDK_FILE_PATH_SIZE_MAX ,"/root/sdcard/opus/%s", NewFileName); | ||
1729 | + | ||
1730 | + JZsdk_Osal_Rename(OldFilePath, NewFilePath); | ||
1731 | + | ||
1732 | + JZsdk_Sync(); | ||
1733 | + | ||
1734 | + //4、刷新歌曲列表 | ||
1735 | +#ifdef MEGAPHONE_CONFIG_STATUS_ON | ||
1736 | + OpusFile_FlushList(); | ||
1737 | +#endif | ||
1738 | + | ||
1739 | + //回复操作成功 | ||
1740 | + HalSend_type1Send_Reply_Success(Port, FrameSequence); | ||
1741 | + | ||
1742 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
1743 | +} | ||
1744 | + | ||
1745 | +/********* | ||
1746 | + * | ||
1747 | + * 删除视频 | ||
1748 | + * | ||
1749 | + * | ||
1750 | +**********/ | ||
1751 | +static T_JZsdkReturnCode RecvDeal_Rename_VideoRecord() | ||
1752 | +{ | ||
1753 | + | ||
1754 | +} | ||
1755 | + | ||
1756 | + | ||
1632 | /********* | 1757 | /********* |
1633 | * | 1758 | * |
1634 | * tts设置音色 | 1759 | * tts设置音色 |
@@ -1840,28 +1965,101 @@ static T_JZsdkReturnCode RecvDeal_TTS_Trans_stop(int Port, char *getbuf) | @@ -1840,28 +1965,101 @@ static T_JZsdkReturnCode RecvDeal_TTS_Trans_stop(int Port, char *getbuf) | ||
1840 | } | 1965 | } |
1841 | 1966 | ||
1842 | 1967 | ||
1968 | + | ||
1843 | /********* | 1969 | /********* |
1844 | * | 1970 | * |
1845 | - * 打开opus传输 | 1971 | + * 播放时间回传 |
1846 | * | 1972 | * |
1847 | * | 1973 | * |
1848 | **********/ | 1974 | **********/ |
1849 | -static T_JZsdkReturnCode RecvDeal_OpusTrans_start(int Port, char *getbuf) | 1975 | +static T_JZsdkReturnCode RecvDeal_Current_Play_Time(int Port, char *getbuf) |
1850 | { | 1976 | { |
1851 | - JZSDK_LOG_INFO("%s,打开opus传输",JZsdk_DefineCode_GetPortName(Port)); | 1977 | + T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; |
1978 | + | ||
1979 | + JZSDK_LOG_INFO("%s,设置播放时间回传",JZsdk_DefineCode_GetPortName(Port)); | ||
1852 | 1980 | ||
1853 | //获取帧的序列号 | 1981 | //获取帧的序列号 |
1854 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); | 1982 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); |
1855 | 1983 | ||
1856 | - T_JZsdkReturnCode ret = HalRecv_tpye1_RecvDeal_UartTransmodeDecide(); | ||
1857 | - if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | 1984 | + //获取帧操作 |
1985 | + int Mode = getbuf[9]; | ||
1986 | + | ||
1987 | + JZSDK_LOG_INFO("设置播放回传模式:%d", Mode); | ||
1988 | + | ||
1989 | +#ifdef MEGAPHONE_CONFIG_STATUS_ON | ||
1990 | + | ||
1991 | + //如果是0 或者 1 是关闭或打开回传模式 | ||
1992 | + if (Mode == JZ_FLAGCODE_OFF || Mode == JZ_FLAGCODE_ON) | ||
1993 | + { | ||
1994 | + ret = Megaphone_PlayBackSet(Port, Mode); | ||
1995 | + if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
1996 | + { | ||
1997 | + //回复操作成功 | ||
1998 | + HalSend_type1Send_Reply_Success(Port, FrameSequence); | ||
1999 | + | ||
2000 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
2001 | + } | ||
2002 | + else | ||
1858 | { | 2003 | { |
1859 | //回复操作失败 | 2004 | //回复操作失败 |
1860 | HalSend_type1Send_Reply_Failure(Port, FrameSequence); | 2005 | HalSend_type1Send_Reply_Failure(Port, FrameSequence); |
1861 | - JZSDK_LOG_ERROR("打开opus传输失败, 已开启其他传输模式"); | ||
1862 | - return ret; | 2006 | + |
2007 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
2008 | + } | ||
2009 | + } | ||
2010 | + | ||
2011 | + //如果是2,则主动索取 | ||
2012 | + if (Mode == 2) | ||
2013 | + { | ||
2014 | + ret = Megaphone_PlayBackTimeGet(Port); | ||
1863 | } | 2015 | } |
1864 | 2016 | ||
2017 | +#endif | ||
2018 | + | ||
2019 | + return ret; | ||
2020 | +} | ||
2021 | + | ||
2022 | + | ||
2023 | +/********* | ||
2024 | + * | ||
2025 | + * 获取播放时间回传模式 | ||
2026 | + * | ||
2027 | + * | ||
2028 | +**********/ | ||
2029 | +static T_JZsdkReturnCode RecvDeal_CheckStatus_CurrentPlayTime(int Port, char *getbuf) | ||
2030 | +{ | ||
2031 | + T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
2032 | + | ||
2033 | + JZSDK_LOG_INFO("%s,获取播放时间回传模式",JZsdk_DefineCode_GetPortName(Port)); | ||
2034 | + | ||
2035 | + //获取帧的序列号 | ||
2036 | + int FrameSequence = JZsdk_Get_FrameSequence(getbuf); | ||
2037 | + | ||
2038 | +#ifdef MEGAPHONE_CONFIG_STATUS_ON | ||
2039 | + | ||
2040 | + int mode = Megaphone_PlayBackGetMode(Port); | ||
2041 | + HalSend_type1Send_Reply_CurrentPlayTimeStatus(Port, mode); | ||
2042 | + | ||
2043 | +#endif | ||
2044 | + | ||
2045 | + return ret; | ||
2046 | +} | ||
2047 | + | ||
2048 | +/********* | ||
2049 | + * | ||
2050 | + * 打开opus传输 | ||
2051 | + * | ||
2052 | + * | ||
2053 | +**********/ | ||
2054 | +static T_JZsdkReturnCode RecvDeal_OpusTrans_start(int Port, char *getbuf) | ||
2055 | +{ | ||
2056 | + T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
2057 | + | ||
2058 | + JZSDK_LOG_INFO("%s,打开opus传输1型",JZsdk_DefineCode_GetPortName(Port)); | ||
2059 | + | ||
2060 | + //获取帧的序列号 | ||
2061 | + int FrameSequence = JZsdk_Get_FrameSequence(getbuf); | ||
2062 | + | ||
1865 | //1、获取解码比特率 | 2063 | //1、获取解码比特率 |
1866 | int decode_rate = getbuf[9] * 8000; | 2064 | int decode_rate = getbuf[9] * 8000; |
1867 | if(decode_rate == 0) | 2065 | if(decode_rate == 0) |
@@ -1871,19 +2069,140 @@ static T_JZsdkReturnCode RecvDeal_OpusTrans_start(int Port, char *getbuf) | @@ -1871,19 +2069,140 @@ static T_JZsdkReturnCode RecvDeal_OpusTrans_start(int Port, char *getbuf) | ||
1871 | 2069 | ||
1872 | //2、创建存储文件 | 2070 | //2、创建存储文件 |
1873 | #ifdef MEGAPHONE_CONFIG_STATUS_ON | 2071 | #ifdef MEGAPHONE_CONFIG_STATUS_ON |
1874 | - Megaphone_SaveOpusStart(decode_rate); | 2072 | + ret = Megaphone_SaveOpusStart(NULL, decode_rate, 16000, 1); |
2073 | + if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
2074 | + { | ||
2075 | + //回复操作成功 | ||
2076 | + HalSend_type1Send_Reply_Success(Port, FrameSequence); | ||
2077 | + | ||
2078 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
2079 | + } | ||
2080 | + if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_IS_BUSY) | ||
2081 | + { | ||
2082 | + JZSDK_LOG_ERROR("opus忙碌中"); | ||
2083 | + } | ||
2084 | + if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE) | ||
2085 | + { | ||
2086 | + JZSDK_LOG_ERROR("opus创建失败"); | ||
2087 | + } | ||
2088 | + | ||
2089 | + HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
2090 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
2091 | + | ||
2092 | +#else | ||
2093 | + JZSDK_LOG_ERROR("非喊话器不支持opus传输"); | ||
2094 | + HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
2095 | + | ||
2096 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
1875 | #endif | 2097 | #endif |
2098 | +} | ||
1876 | 2099 | ||
1877 | - //3、修改接收模式为传输opus | ||
1878 | - HalRecv_tpye1_RecvDeal_Set_UartReceiveMode(Port, JZ_DATA_TRANS_TYPE_OPUS_FILE); | ||
1879 | - HalRecvDataLen = 0; | ||
1880 | 2100 | ||
2101 | + | ||
2102 | +/********* | ||
2103 | + * | ||
2104 | + * 打开opus传输Ⅱ型 | ||
2105 | + * | ||
2106 | + * | ||
2107 | +**********/ | ||
2108 | +static T_JZsdkReturnCode RecvDeal_OpusTrans_start_2(int Port, char *getbuf) | ||
2109 | +{ | ||
2110 | + T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
2111 | + | ||
2112 | + JZSDK_LOG_INFO("%s,打开opus传输1型",JZsdk_DefineCode_GetPortName(Port)); | ||
2113 | + | ||
2114 | + //获取帧的序列号 | ||
2115 | + int FrameSequence = JZsdk_Get_FrameSequence(getbuf); | ||
2116 | + | ||
2117 | + //获取帧的长度 | ||
2118 | + int FrameLen = JZsdk_Get_FrameLength(getbuf); | ||
2119 | + | ||
2120 | + //获取存储模式 | ||
2121 | + int SaveMode = getbuf[9]; | ||
2122 | + | ||
2123 | + //获取比特率 | ||
2124 | + int BitChoose = getbuf[10]; | ||
2125 | + int decode_rate = 16000; | ||
2126 | + // if (BitChoose == 0) | ||
2127 | + // { | ||
2128 | + // decode_rate = 16000; | ||
2129 | + // } | ||
2130 | + | ||
2131 | + //获取采样率 | ||
2132 | + int SampleChoose = getbuf[11]; | ||
2133 | + int SampleRate = 16000; | ||
2134 | + // if (SampleChoose == 0) | ||
2135 | + // { | ||
2136 | + // SampleRate = 16000; | ||
2137 | + // } | ||
2138 | + | ||
2139 | + //获取频道数 | ||
2140 | + int ChannelChoose = getbuf[12]; | ||
2141 | + int ChannelNum = 1; | ||
2142 | + // if (ChannelChoose == 0) | ||
2143 | + // { | ||
2144 | + // ChannelNum = 1; | ||
2145 | + // } | ||
2146 | + | ||
2147 | + //获取文件名长度 | ||
2148 | + int FileNameLen = getbuf[13]; | ||
2149 | + if(FileNameLen != FrameLen - 14 - 2) | ||
2150 | + { | ||
2151 | + JZSDK_LOG_ERROR("文件名长度错误"); | ||
2152 | + FileNameLen = FrameLen - 14 - 2; | ||
2153 | + } | ||
2154 | + | ||
2155 | + if (FileNameLen > 128) | ||
2156 | + { | ||
2157 | + JZSDK_LOG_ERROR("文件名长度过长"); | ||
2158 | + FileNameLen = 128; | ||
2159 | + } | ||
2160 | + | ||
2161 | + //获取文件名 | ||
2162 | + unsigned char FileName[128] = {0}; | ||
2163 | + memcpy(FileName, getbuf + 14, FileNameLen); | ||
2164 | + | ||
2165 | + //2、创建存储文件 | ||
2166 | +#ifdef MEGAPHONE_CONFIG_STATUS_ON | ||
2167 | + | ||
2168 | + if (SaveMode == JZ_FLAGCODE_OFF) | ||
2169 | + { | ||
2170 | + ret = Megaphone_SaveOpusStart(NULL, decode_rate, SampleRate, ChannelNum); | ||
2171 | + } | ||
2172 | + else | ||
2173 | + { | ||
2174 | + ret = Megaphone_SaveOpusStart(FileName, decode_rate, SampleRate, ChannelNum); | ||
2175 | + } | ||
2176 | + | ||
2177 | + | ||
2178 | + if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
2179 | + { | ||
1881 | //回复操作成功 | 2180 | //回复操作成功 |
1882 | HalSend_type1Send_Reply_Success(Port, FrameSequence); | 2181 | HalSend_type1Send_Reply_Success(Port, FrameSequence); |
1883 | 2182 | ||
1884 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 2183 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
2184 | + } | ||
2185 | + if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_IS_BUSY) | ||
2186 | + { | ||
2187 | + JZSDK_LOG_ERROR("opus忙碌中"); | ||
2188 | + } | ||
2189 | + if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE) | ||
2190 | + { | ||
2191 | + JZSDK_LOG_ERROR("opus创建失败"); | ||
2192 | + } | ||
2193 | + | ||
2194 | + HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
2195 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
2196 | + | ||
2197 | +#else | ||
2198 | + JZSDK_LOG_ERROR("非喊话器不支持opus传输"); | ||
2199 | + HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
2200 | + | ||
2201 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
2202 | +#endif | ||
1885 | } | 2203 | } |
1886 | 2204 | ||
2205 | + | ||
1887 | /********* | 2206 | /********* |
1888 | * | 2207 | * |
1889 | * opus定长传输文件 | 2208 | * opus定长传输文件 |
@@ -1897,13 +2216,6 @@ static T_JZsdkReturnCode RecvDeal_OpusTrans_LimitTransmission(int Port, char *ge | @@ -1897,13 +2216,6 @@ static T_JZsdkReturnCode RecvDeal_OpusTrans_LimitTransmission(int Port, char *ge | ||
1897 | //获取帧的序列号 | 2216 | //获取帧的序列号 |
1898 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); | 2217 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); |
1899 | 2218 | ||
1900 | - if (HalRecvMode != JZ_DATA_TRANS_TYPE_OPUS_FILE) | ||
1901 | - { | ||
1902 | - JZSDK_LOG_ERROR("%s,不处于opus传输模式,无法接收opus定长音频文件",JZsdk_DefineCode_GetPortName(Port)); | ||
1903 | - HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
1904 | - return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
1905 | - } | ||
1906 | - | ||
1907 | //提取出数据 | 2219 | //提取出数据 |
1908 | int DataLen = ((int)getbuf[3] << 8 ) + (int)getbuf[4] - 2 - 9; | 2220 | int DataLen = ((int)getbuf[3] << 8 ) + (int)getbuf[4] - 2 - 9; |
1909 | if (DataLen > 1024) | 2221 | if (DataLen > 1024) |
@@ -1912,12 +2224,20 @@ static T_JZsdkReturnCode RecvDeal_OpusTrans_LimitTransmission(int Port, char *ge | @@ -1912,12 +2224,20 @@ static T_JZsdkReturnCode RecvDeal_OpusTrans_LimitTransmission(int Port, char *ge | ||
1912 | return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | 2224 | return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; |
1913 | } | 2225 | } |
1914 | 2226 | ||
1915 | - HalRecvDataLen += DataLen; | ||
1916 | - JZSDK_LOG_DEBUG("%s,传输opus定长音频文件中 一共传输了%d字节",JZsdk_DefineCode_GetPortName(Port),HalRecvDataLen); | ||
1917 | - | ||
1918 | //传输数据接口 | 2227 | //传输数据接口 |
1919 | #ifdef MEGAPHONE_CONFIG_STATUS_ON | 2228 | #ifdef MEGAPHONE_CONFIG_STATUS_ON |
1920 | - Megaphone_SaveOpusTrans(getbuf+9, DataLen); | 2229 | + ret = Megaphone_SaveOpusTrans(getbuf+9, DataLen); |
2230 | + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
2231 | + { | ||
2232 | + HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
2233 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
2234 | + } | ||
2235 | + | ||
2236 | +#else | ||
2237 | + JZSDK_LOG_ERROR("非喊话器不支持opus传输"); | ||
2238 | + HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
2239 | + | ||
2240 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
1921 | #endif | 2241 | #endif |
1922 | 2242 | ||
1923 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 2243 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
@@ -1932,30 +2252,35 @@ static T_JZsdkReturnCode RecvDeal_OpusTrans_LimitTransmission(int Port, char *ge | @@ -1932,30 +2252,35 @@ static T_JZsdkReturnCode RecvDeal_OpusTrans_LimitTransmission(int Port, char *ge | ||
1932 | **********/ | 2252 | **********/ |
1933 | static T_JZsdkReturnCode RecvDeal_OpusTrans_stop(int Port, char *getbuf) | 2253 | static T_JZsdkReturnCode RecvDeal_OpusTrans_stop(int Port, char *getbuf) |
1934 | { | 2254 | { |
2255 | + T_JZsdkReturnCode ret; | ||
2256 | + | ||
1935 | JZSDK_LOG_INFO("%s,结束opus传输",JZsdk_DefineCode_GetPortName(Port)); | 2257 | JZSDK_LOG_INFO("%s,结束opus传输",JZsdk_DefineCode_GetPortName(Port)); |
1936 | 2258 | ||
1937 | //获取帧的序列号 | 2259 | //获取帧的序列号 |
1938 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); | 2260 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); |
1939 | 2261 | ||
1940 | - if (HalRecvMode != JZ_DATA_TRANS_TYPE_OPUS_FILE) | 2262 | +#ifdef MEGAPHONE_CONFIG_STATUS_ON |
2263 | + ret = Megaphone_SaveOpusStop(JZ_FLAGCODE_OFF, NULL); | ||
2264 | + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
1941 | { | 2265 | { |
1942 | - //回复操作失败 | ||
1943 | HalSend_type1Send_Reply_Failure(Port, FrameSequence); | 2266 | HalSend_type1Send_Reply_Failure(Port, FrameSequence); |
1944 | - JZSDK_LOG_ERROR("关闭opus结束传输失败,opus结束传输未开始,无法关闭"); | 2267 | + |
1945 | return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | 2268 | return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; |
1946 | } | 2269 | } |
2270 | + else | ||
2271 | + { | ||
2272 | + //回复操作成功 | ||
2273 | + HalSend_type1Send_Reply_Success(Port, FrameSequence); | ||
1947 | 2274 | ||
2275 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
2276 | + } | ||
1948 | 2277 | ||
1949 | -#ifdef MEGAPHONE_CONFIG_STATUS_ON | ||
1950 | - Megaphone_SaveOpusStop(JZ_FLAGCODE_OFF, NULL); | ||
1951 | -#endif | ||
1952 | - | ||
1953 | - HalRecv_tpye1_RecvDeal_Set_UartReceiveMode(Port, JZ_FLAGCODE_OFF); | ||
1954 | - JZSDK_LOG_INFO("一共传输了 %d字节\n",HalRecvDataLen); | ||
1955 | - HalRecvDataLen = 0; | 2278 | +#else |
2279 | + JZSDK_LOG_ERROR("非喊话器不支持opus传输"); | ||
2280 | + HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
1956 | 2281 | ||
1957 | - //回复操作成功 | ||
1958 | - HalSend_type1Send_Reply_Success(Port, FrameSequence); | 2282 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; |
2283 | +#endif | ||
1959 | 2284 | ||
1960 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 2285 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
1961 | } | 2286 | } |
@@ -1976,13 +2301,6 @@ static T_JZsdkReturnCode RecvDeal_OpusTrans_stop_and_check(int Port, char *getbu | @@ -1976,13 +2301,6 @@ static T_JZsdkReturnCode RecvDeal_OpusTrans_stop_and_check(int Port, char *getbu | ||
1976 | //获取帧的序列号 | 2301 | //获取帧的序列号 |
1977 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); | 2302 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); |
1978 | 2303 | ||
1979 | - if (HalRecvMode != JZ_DATA_TRANS_TYPE_OPUS_FILE) | ||
1980 | - { | ||
1981 | - //回复操作失败 | ||
1982 | - HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
1983 | - JZSDK_LOG_ERROR("关闭音频文件上传失败,音频文件上传未开始,无法关闭"); | ||
1984 | - return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
1985 | - } | ||
1986 | 2304 | ||
1987 | unsigned char checkCode[128]; | 2305 | unsigned char checkCode[128]; |
1988 | int frameLenth = ((int)getbuf[3]) << 8 | (int)getbuf[4]; | 2306 | int frameLenth = ((int)getbuf[3]) << 8 | (int)getbuf[4]; |
@@ -2036,17 +2354,15 @@ static T_JZsdkReturnCode RecvDeal_OpusTrans_stop_and_check(int Port, char *getbu | @@ -2036,17 +2354,15 @@ static T_JZsdkReturnCode RecvDeal_OpusTrans_stop_and_check(int Port, char *getbu | ||
2036 | HalSend_type1Send_Reply_Failure(Port, FrameSequence); | 2354 | HalSend_type1Send_Reply_Failure(Port, FrameSequence); |
2037 | } | 2355 | } |
2038 | 2356 | ||
2357 | +#else | ||
2358 | + ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
2359 | + JZSDK_LOG_ERROR("非喊话器不支持opus传输"); | ||
2360 | + HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
2039 | #endif | 2361 | #endif |
2040 | 2362 | ||
2041 | - //3、调整接收模式为音频文件传输 | ||
2042 | - HalRecv_tpye1_RecvDeal_Set_UartReceiveMode(Port, JZ_FLAGCODE_OFF); | ||
2043 | - JZSDK_LOG_INFO("一共传输了 %d字节\n",HalRecvDataLen); | ||
2044 | - HalRecvDataLen = 0; | ||
2045 | - | ||
2046 | return ret; | 2363 | return ret; |
2047 | } | 2364 | } |
2048 | 2365 | ||
2049 | - | ||
2050 | /********* | 2366 | /********* |
2051 | * | 2367 | * |
2052 | * opus播放 | 2368 | * opus播放 |
@@ -2060,24 +2376,147 @@ static T_JZsdkReturnCode RecvDeal_OpusPlay(int Port, char *getbuf) | @@ -2060,24 +2376,147 @@ static T_JZsdkReturnCode RecvDeal_OpusPlay(int Port, char *getbuf) | ||
2060 | //获取帧的序列号 | 2376 | //获取帧的序列号 |
2061 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); | 2377 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); |
2062 | 2378 | ||
2063 | - T_JZsdkReturnCode ret = HalRecv_tpye1_RecvDeal_UartTransmodeDecide(); | 2379 | + //获取是否处于opus传输中的模式 |
2380 | + if (OpusFile_GetSaveFlag() == JZ_FLAGCODE_ON) | ||
2381 | + { | ||
2382 | + JZSDK_LOG_ERROR("禁止播放opus,当前正处于录入中"); | ||
2383 | + //回复操作失败 | ||
2384 | + HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
2385 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
2386 | + } | ||
2387 | + | ||
2388 | + //获取命令 | ||
2389 | + int Mode = getbuf[9]; | ||
2390 | + if (Mode == 0) | ||
2391 | + { | ||
2392 | + UIcontrol_Opus_PlayFixedFile(Port); | ||
2393 | + | ||
2394 | + //回复操作成功 | ||
2395 | + HalSend_type1Send_Reply_Success(Port, FrameSequence); | ||
2396 | + } | ||
2397 | + else if (Mode == 1) | ||
2398 | + { | ||
2399 | + | ||
2400 | + } | ||
2401 | + | ||
2402 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
2403 | +} | ||
2404 | + | ||
2405 | +/********************************** | ||
2406 | + * | ||
2407 | + * opus列表查询 | ||
2408 | + * | ||
2409 | + * | ||
2410 | + * **********************************/ | ||
2411 | +static T_JZsdkReturnCode RecvDeal_Get_OpusList(int Port, char *getbuf) | ||
2412 | +{ | ||
2413 | + T_JZsdkReturnCode ret; | ||
2414 | + | ||
2415 | + JZSDK_LOG_INFO("%s,opus列表查询",JZsdk_DefineCode_GetPortName(Port)); | ||
2416 | + | ||
2417 | + //获取帧的序列号 | ||
2418 | + int FrameSequence = JZsdk_Get_FrameSequence(getbuf); | ||
2419 | + | ||
2420 | +#ifdef MEGAPHONE_CONFIG_STATUS_ON | ||
2421 | + | ||
2422 | + //刷新opus列表 | ||
2423 | + OpusFile_FlushList(); | ||
2424 | + | ||
2425 | + //获取opus总数 | ||
2426 | + int OpusFileCount = OpusFile_GetListNum(); | ||
2427 | + | ||
2428 | + //注册一个opus数组 | ||
2429 | + unsigned char **MusicName = (unsigned char **)malloc(OpusFileCount * sizeof(unsigned char*)); | ||
2430 | + if (MusicName == NULL) | ||
2431 | + { | ||
2432 | + //回复操作失败 | ||
2433 | + HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
2434 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
2435 | + } | ||
2436 | + | ||
2437 | + //注册一个歌曲名字长度的数组 | ||
2438 | + int *MusicNameLength = (int *)malloc(OpusFileCount * sizeof(int)); | ||
2439 | + if (MusicNameLength == NULL) | ||
2440 | + { | ||
2441 | + free(MusicName); | ||
2442 | + //回复操作失败 | ||
2443 | + HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
2444 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
2445 | + } | ||
2446 | + | ||
2447 | + //为每一首opus分配内存 | ||
2448 | + for (int i = 0; i < OpusFileCount; i++) | ||
2449 | + { | ||
2450 | + MusicName[i] = (unsigned char*)malloc(128 * sizeof(unsigned char)); | ||
2451 | + if (MusicName[i] == NULL) | ||
2452 | + { | ||
2453 | + // 内存分配失败,需要释放之前分配的内存 | ||
2454 | + for (int j = 0; j < i; j++) | ||
2455 | + { | ||
2456 | + free(MusicName[j]); | ||
2457 | + } | ||
2458 | + free(MusicNameLength); | ||
2459 | + free(MusicName); | ||
2460 | + | ||
2461 | + //回复操作失败 | ||
2462 | + HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
2463 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
2464 | + } | ||
2465 | + | ||
2466 | + memset(MusicName[i], 0, 128 * sizeof(unsigned char)); | ||
2467 | + | ||
2468 | + //如果成功分配内存,则写入名字 | ||
2469 | + Megaphone_OpusFile_GetAudioNameByIndex(i, MusicName[i], &MusicNameLength[i]); | ||
2470 | + } | ||
2471 | + | ||
2472 | + JZSDK_LOG_DEBUG("opus列表取出完成"); | ||
2473 | + | ||
2474 | + //发送开始帧 | ||
2475 | + ret = HalSend_type1Send_Send_OpusList_Start(Port, FrameSequence, OpusFileCount); | ||
2476 | + | ||
2477 | + for (int i = 0; i < OpusFileCount; i++) | ||
2478 | + { | ||
2479 | + //获取歌曲详细信息 | ||
2480 | + struct AudioMange_audio_struct AudioDetailMessage; | ||
2481 | + memset(&AudioDetailMessage, 0, sizeof(struct AudioMange_audio_struct)); | ||
2482 | + ret = OpusFile_GetAudioInfo(MusicName[i], MusicNameLength[i],&AudioDetailMessage); | ||
2064 | if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | 2483 | if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) |
2065 | { | 2484 | { |
2066 | //回复操作失败 | 2485 | //回复操作失败 |
2067 | HalSend_type1Send_Reply_Failure(Port, FrameSequence); | 2486 | HalSend_type1Send_Reply_Failure(Port, FrameSequence); |
2068 | - JZSDK_LOG_ERROR("opus播放失败,存在传输模式打开中"); | ||
2069 | - return ret; | 2487 | + |
2488 | + continue; | ||
2070 | } | 2489 | } |
2071 | 2490 | ||
2072 | - UIcontrol_Opus_PlayFixedFile(Port); | 2491 | + //发送opus列表 |
2492 | + ret = HalSend_type1Send_Send_OpusList_Trans(Port, FrameSequence, AudioDetailMessage.FileName, AudioDetailMessage.FileNameLen, AudioDetailMessage.FileSize, AudioDetailMessage.Time); | ||
2493 | + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
2494 | + { | ||
2495 | + //回复操作失败 | ||
2496 | + HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
2073 | 2497 | ||
2074 | - //回复操作成功 | ||
2075 | - HalSend_type1Send_Reply_Success(Port, FrameSequence); | 2498 | + continue; |
2499 | + } | ||
2500 | + } | ||
2076 | 2501 | ||
2077 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
2078 | -} | 2502 | + //释放存储的数据 |
2503 | + for (int i = 0; i < OpusFileCount; i++) | ||
2504 | + { | ||
2505 | + free(MusicName[i]); | ||
2506 | + } | ||
2507 | + | ||
2508 | + free(MusicNameLength); | ||
2509 | + free(MusicName); | ||
2079 | 2510 | ||
2511 | + //发送结束帧 | ||
2512 | + ret = HalSend_type1Send_Send_OpusList_Stop(Port, FrameSequence); | ||
2080 | 2513 | ||
2514 | +#else | ||
2515 | + JZSDK_LOG_ERROR("非喊话器不支持opus列表"); | ||
2516 | + //回复操作失败 | ||
2517 | + HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
2518 | +#endif | ||
2519 | +} | ||
2081 | 2520 | ||
2082 | /********* | 2521 | /********* |
2083 | * | 2522 | * |
@@ -2087,24 +2526,13 @@ static T_JZsdkReturnCode RecvDeal_OpusPlay(int Port, char *getbuf) | @@ -2087,24 +2526,13 @@ static T_JZsdkReturnCode RecvDeal_OpusPlay(int Port, char *getbuf) | ||
2087 | **********/ | 2526 | **********/ |
2088 | static T_JZsdkReturnCode RecvDeal_Opus_RealTimeVoice_start(int Port, char *getbuf) | 2527 | static T_JZsdkReturnCode RecvDeal_Opus_RealTimeVoice_start(int Port, char *getbuf) |
2089 | { | 2528 | { |
2529 | + T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
2530 | + | ||
2090 | JZSDK_LOG_INFO("%s,开启opus实时喊话功能",JZsdk_DefineCode_GetPortName(Port)); | 2531 | JZSDK_LOG_INFO("%s,开启opus实时喊话功能",JZsdk_DefineCode_GetPortName(Port)); |
2091 | 2532 | ||
2092 | //获取帧的序列号 | 2533 | //获取帧的序列号 |
2093 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); | 2534 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); |
2094 | 2535 | ||
2095 | - T_JZsdkReturnCode ret = HalRecv_tpye1_RecvDeal_UartTransmodeDecide(); | ||
2096 | - if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
2097 | - { | ||
2098 | - //回复操作失败 | ||
2099 | - HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
2100 | - JZSDK_LOG_ERROR("开启opus实时喊话失败"); | ||
2101 | - return ret; | ||
2102 | - } | ||
2103 | - | ||
2104 | - //1、修改接收模式 | ||
2105 | - HalRecv_tpye1_RecvDeal_Set_UartReceiveMode(Port, JZ_DATA_TRANS_TYPE_REAL_TIME_OPUS); | ||
2106 | - HalRecvDataLen = 0; | ||
2107 | - | ||
2108 | //2、获取码率倍率 默认8k*1倍 | 2536 | //2、获取码率倍率 默认8k*1倍 |
2109 | int RateMagnification = (int)getbuf[9]; | 2537 | int RateMagnification = (int)getbuf[9]; |
2110 | int Rate; | 2538 | int Rate; |
@@ -2120,11 +2548,17 @@ static T_JZsdkReturnCode RecvDeal_Opus_RealTimeVoice_start(int Port, char *getbu | @@ -2120,11 +2548,17 @@ static T_JZsdkReturnCode RecvDeal_Opus_RealTimeVoice_start(int Port, char *getbu | ||
2120 | 2548 | ||
2121 | //3、打开实时语音模式 | 2549 | //3、打开实时语音模式 |
2122 | #ifdef MEGAPHONE_CONFIG_STATUS_ON | 2550 | #ifdef MEGAPHONE_CONFIG_STATUS_ON |
2123 | - Megaphone_RealTimeVoice_Start(Rate); | 2551 | + ret = Megaphone_RealTimeVoice_Start(Rate); |
2124 | #endif | 2552 | #endif |
2125 | 2553 | ||
2126 | - //4、通知成功打开语音发送模式 | 2554 | + if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) |
2555 | + { | ||
2127 | HalSend_type1Send_Reply_Success(Port, FrameSequence); | 2556 | HalSend_type1Send_Reply_Success(Port, FrameSequence); |
2557 | + } | ||
2558 | + else | ||
2559 | + { | ||
2560 | + HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
2561 | + } | ||
2128 | 2562 | ||
2129 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 2563 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
2130 | } | 2564 | } |
@@ -2138,7 +2572,7 @@ static T_JZsdkReturnCode RecvDeal_Opus_RealTimeVoice_start(int Port, char *getbu | @@ -2138,7 +2572,7 @@ static T_JZsdkReturnCode RecvDeal_Opus_RealTimeVoice_start(int Port, char *getbu | ||
2138 | static T_JZsdkReturnCode RecvDeal_Opus_RealTimeVoice_LimitTransmission(int Port, char *getbuf, int len) | 2572 | static T_JZsdkReturnCode RecvDeal_Opus_RealTimeVoice_LimitTransmission(int Port, char *getbuf, int len) |
2139 | { | 2573 | { |
2140 | 2574 | ||
2141 | - T_JZsdkReturnCode ret; | 2575 | + T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; |
2142 | 2576 | ||
2143 | //获取帧的序列号 | 2577 | //获取帧的序列号 |
2144 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); | 2578 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); |
@@ -2152,23 +2586,18 @@ static T_JZsdkReturnCode RecvDeal_Opus_RealTimeVoice_LimitTransmission(int Port, | @@ -2152,23 +2586,18 @@ static T_JZsdkReturnCode RecvDeal_Opus_RealTimeVoice_LimitTransmission(int Port, | ||
2152 | return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | 2586 | return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; |
2153 | } | 2587 | } |
2154 | 2588 | ||
2155 | - //判断是否是opus实时语音传输模式 | ||
2156 | - if (HalRecvMode != JZ_DATA_TRANS_TYPE_REAL_TIME_OPUS) | ||
2157 | - { | ||
2158 | - //回复操作失败 | ||
2159 | - JZSDK_LOG_ERROR("%s,opus实时语音定长传输失败,未开启实时opus传输模式", JZsdk_DefineCode_GetPortName(Port)); | ||
2160 | - HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
2161 | - return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
2162 | - } | ||
2163 | - | ||
2164 | - HalRecvDataLen += DataLen; | ||
2165 | - JZSDK_LOG_DEBUG("%s,传输opus定长语音传输中 长度:%d,总长度:%d",JZsdk_DefineCode_GetPortName(Port), DataLen, HalRecvDataLen); | 2589 | + JZSDK_LOG_DEBUG("%s,传输opus定长语音传输中 长度:%d",JZsdk_DefineCode_GetPortName(Port), DataLen); |
2166 | 2590 | ||
2167 | //传输数据接口 | 2591 | //传输数据接口 |
2168 | #ifdef MEGAPHONE_CONFIG_STATUS_ON | 2592 | #ifdef MEGAPHONE_CONFIG_STATUS_ON |
2169 | ret = Megaphone_RealTimeVoice_Trans(getbuf+9, DataLen); | 2593 | ret = Megaphone_RealTimeVoice_Trans(getbuf+9, DataLen); |
2170 | #endif | 2594 | #endif |
2171 | 2595 | ||
2596 | + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
2597 | + { | ||
2598 | + HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
2599 | + } | ||
2600 | + | ||
2172 | return ret; | 2601 | return ret; |
2173 | } | 2602 | } |
2174 | 2603 | ||
@@ -2188,19 +2617,6 @@ static T_JZsdkReturnCode RecvDeal_Opus_RealTimeVoice_stop(int Port, char *getbuf | @@ -2188,19 +2617,6 @@ static T_JZsdkReturnCode RecvDeal_Opus_RealTimeVoice_stop(int Port, char *getbuf | ||
2188 | //获取帧的序列号 | 2617 | //获取帧的序列号 |
2189 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); | 2618 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); |
2190 | 2619 | ||
2191 | - if (HalRecvMode != JZ_DATA_TRANS_TYPE_REAL_TIME_OPUS) | ||
2192 | - { | ||
2193 | - //回复操作失败 | ||
2194 | - HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
2195 | - JZSDK_LOG_ERROR("关闭opus实时语音发送功能失败,opus实时语音发送功能未开始,无法关闭"); | ||
2196 | - return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
2197 | - } | ||
2198 | - | ||
2199 | - //1、修改接收模式 | ||
2200 | - HalRecv_tpye1_RecvDeal_Set_UartReceiveMode(Port, JZ_FLAGCODE_OFF); | ||
2201 | - JZSDK_LOG_INFO("一共播放了:%d的内容", HalRecvDataLen); | ||
2202 | - HalRecvDataLen = 0; | ||
2203 | - | ||
2204 | //2、关闭实时语音模式 | 2620 | //2、关闭实时语音模式 |
2205 | #ifdef MEGAPHONE_CONFIG_STATUS_ON | 2621 | #ifdef MEGAPHONE_CONFIG_STATUS_ON |
2206 | ret = Megaphone_RealTimeVoice_Close(); | 2622 | ret = Megaphone_RealTimeVoice_Close(); |
@@ -2604,6 +3020,185 @@ static T_JZsdkReturnCode RecvDeal_Checkstatus_OutPutPower(int Port, char *getbuf | @@ -2604,6 +3020,185 @@ static T_JZsdkReturnCode RecvDeal_Checkstatus_OutPutPower(int Port, char *getbuf | ||
2604 | return ret; | 3020 | return ret; |
2605 | } | 3021 | } |
2606 | 3022 | ||
3023 | + | ||
3024 | + | ||
3025 | + | ||
3026 | + | ||
3027 | + | ||
3028 | + | ||
3029 | + | ||
3030 | + | ||
3031 | +/******************************************************************************************************************************* | ||
3032 | + * | ||
3033 | + * 升级部分 | ||
3034 | + * | ||
3035 | + * *******************************************************************************************************************************/ | ||
3036 | + | ||
3037 | +/********* | ||
3038 | + * | ||
3039 | + * 准备升级 | ||
3040 | + * | ||
3041 | +**********/ | ||
3042 | +static T_JZsdkReturnCode RecvDeal_Upgrade_Prepare(int Port, char *getbuf) | ||
3043 | +{ | ||
3044 | + T_JZsdkReturnCode ret; | ||
3045 | + | ||
3046 | + JZSDK_LOG_INFO("%s,准备升级",JZsdk_DefineCode_GetPortName(Port)); | ||
3047 | + | ||
3048 | + //获取帧的序列号 | ||
3049 | + int FrameSequence = JZsdk_Get_FrameSequence(getbuf); | ||
3050 | + | ||
3051 | + int status = 0; | ||
3052 | + Upgrade_GetStatus(&status); | ||
3053 | + | ||
3054 | + //回复升级的准备状态 | ||
3055 | + HalSend_type1Send_Reply_ReadyForUpdate(Port, FrameSequence); | ||
3056 | + | ||
3057 | + return ret; | ||
3058 | +} | ||
3059 | + | ||
3060 | + | ||
3061 | +/********* | ||
3062 | + * | ||
3063 | + * 升级校验码 | ||
3064 | + * | ||
3065 | +**********/ | ||
3066 | +static T_JZsdkReturnCode RecvDeal_Upgrade_SendCheckCode(int Port, char *getbuf) | ||
3067 | +{ | ||
3068 | + T_JZsdkReturnCode ret; | ||
3069 | + | ||
3070 | + JZSDK_LOG_INFO("%s,升级校验码",JZsdk_DefineCode_GetPortName(Port)); | ||
3071 | + | ||
3072 | + //获取帧的序列号 | ||
3073 | + int FrameSequence = JZsdk_Get_FrameSequence(getbuf); | ||
3074 | + | ||
3075 | + //解析出校验码 | ||
3076 | + unsigned char CheckCode[32]; | ||
3077 | + memcpy(CheckCode, getbuf + 9, 32); | ||
3078 | + | ||
3079 | + //将校验码放置到升级模块 | ||
3080 | + ret = Upgrade_PackageCheckCodeSave(CheckCode, JZSDK_CHECK_SUM_TYPE_MD5, 32); | ||
3081 | + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
3082 | + { | ||
3083 | + //回复校验码已收到 | ||
3084 | + HalSend_type1Send_Reply_UpgradeHaveRecvCheckCode(Port, 1); | ||
3085 | + } | ||
3086 | + else | ||
3087 | + { | ||
3088 | + //回复校验码已收到 | ||
3089 | + HalSend_type1Send_Reply_UpgradeHaveRecvCheckCode(Port, 0); | ||
3090 | + } | ||
3091 | + | ||
3092 | + return ret; | ||
3093 | +} | ||
3094 | + | ||
3095 | + | ||
3096 | +/********* | ||
3097 | + * | ||
3098 | + * 数据传输开始 | ||
3099 | + * | ||
3100 | +**********/ | ||
3101 | +static T_JZsdkReturnCode RecvDeal_Upgrade_Start(int Port, char *getbuf) | ||
3102 | +{ | ||
3103 | + T_JZsdkReturnCode ret; | ||
3104 | + | ||
3105 | + JZSDK_LOG_INFO("%s,数据传输开始",JZsdk_DefineCode_GetPortName(Port)); | ||
3106 | + | ||
3107 | + //获取帧的序列号 | ||
3108 | + int FrameSequence = JZsdk_Get_FrameSequence(getbuf); | ||
3109 | + | ||
3110 | + ret = Upgrade_PackageDownload_Start(); | ||
3111 | + if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
3112 | + { | ||
3113 | + //回复开始文件发送 | ||
3114 | + HalSend_type1Send_Reply_UpgradeStart(Port); | ||
3115 | + } | ||
3116 | + else | ||
3117 | + { | ||
3118 | + //回复开始文件发送失败 | ||
3119 | + HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
3120 | + } | ||
3121 | + | ||
3122 | + return ret; | ||
3123 | +} | ||
3124 | + | ||
3125 | + | ||
3126 | +/********* | ||
3127 | + * | ||
3128 | + * 数据传输中 | ||
3129 | + * | ||
3130 | +**********/ | ||
3131 | +static T_JZsdkReturnCode RecvDeal_Upgrade_Trans(int Port, char *getbuf) | ||
3132 | +{ | ||
3133 | + T_JZsdkReturnCode ret; | ||
3134 | + | ||
3135 | + JZSDK_LOG_INFO("%s,数据传输中",JZsdk_DefineCode_GetPortName(Port)); | ||
3136 | + | ||
3137 | + //获取帧的序列号 | ||
3138 | + int FrameSequence = JZsdk_Get_FrameSequence(getbuf); | ||
3139 | + | ||
3140 | + //解析数据长度 | ||
3141 | + int FrameLength = JZsdk_Get_FrameLength(getbuf); | ||
3142 | + int BufLen = FrameLength - 8 -2; | ||
3143 | + | ||
3144 | + ret = Upgrade_PackageDownload_Trans(&getbuf[9], BufLen); | ||
3145 | + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
3146 | + { | ||
3147 | + //回复数据传输失败 | ||
3148 | + HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
3149 | + } | ||
3150 | + | ||
3151 | + return ret; | ||
3152 | +} | ||
3153 | + | ||
3154 | + | ||
3155 | +/********* | ||
3156 | + * | ||
3157 | + * 数据传输结束 | ||
3158 | + * | ||
3159 | +**********/ | ||
3160 | +static T_JZsdkReturnCode RecvDeal_Upgrade_End(int Port, char *getbuf) | ||
3161 | +{ | ||
3162 | + T_JZsdkReturnCode ret; | ||
3163 | + | ||
3164 | + JZSDK_LOG_INFO("%s,数据传输结束",JZsdk_DefineCode_GetPortName(Port)); | ||
3165 | + | ||
3166 | + //获取帧的序列号 | ||
3167 | + int FrameSequence = JZsdk_Get_FrameSequence(getbuf); | ||
3168 | + | ||
3169 | + ret = Upgrade_PackageDownload_Stop(); | ||
3170 | + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
3171 | + { | ||
3172 | + //回复数据传输失败 | ||
3173 | + HalSend_type1Send_Reply_Failure(Port, FrameSequence); | ||
3174 | + return ret; | ||
3175 | + } | ||
3176 | + else | ||
3177 | + { | ||
3178 | + //回复结束文件传输 | ||
3179 | + HalSend_type1Send_Reply_UpgradeEnd(Port); | ||
3180 | + } | ||
3181 | + | ||
3182 | + //回复完成后,开始校验 | ||
3183 | + ret = Upgrade_PackageCheck(); | ||
3184 | + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
3185 | + { | ||
3186 | + HalSend_type1Send_Reply_UpgradeCheckResult(Port, 1); | ||
3187 | + return ret; | ||
3188 | + } | ||
3189 | + | ||
3190 | + //回复校验成功 | ||
3191 | + HalSend_type1Send_Reply_UpgradeCheckResult(Port, 0); | ||
3192 | + | ||
3193 | + //开始升级 | ||
3194 | + Upgrade_PackageUpgrade(); | ||
3195 | + | ||
3196 | + return ret; | ||
3197 | +} | ||
3198 | + | ||
3199 | + | ||
3200 | + | ||
3201 | + | ||
2607 | /******************************************************************************************************************************* | 3202 | /******************************************************************************************************************************* |
2608 | * | 3203 | * |
2609 | * 警灯部分 | 3204 | * 警灯部分 |
@@ -3311,8 +3906,31 @@ static T_JZsdkReturnCode RecvDeal_Checkstatus_GimbalLinkage(int Port, char *getb | @@ -3311,8 +3906,31 @@ static T_JZsdkReturnCode RecvDeal_Checkstatus_GimbalLinkage(int Port, char *getb | ||
3311 | return ret; | 3906 | return ret; |
3312 | } | 3907 | } |
3313 | 3908 | ||
3909 | + | ||
3910 | +static T_JZTaskHandle g_UartReinit_task = NULL; | ||
3911 | + | ||
3912 | +static void *UartReinit_thread(void *arg) | ||
3913 | +{ | ||
3914 | + int *arg_value = (int *)arg; | ||
3915 | + | ||
3916 | + int Port = arg_value[0]; | ||
3917 | + | ||
3918 | + int Value[1]; | ||
3919 | + Value[0]= arg_value[1]; | ||
3920 | + | ||
3921 | + | ||
3922 | + JZsdk_HalPort_ReInit(Port, Value); | ||
3923 | + | ||
3924 | + JZSDK_LOG_INFO("串口重置完毕"); | ||
3925 | + | ||
3926 | + free(arg); | ||
3927 | +} | ||
3928 | + | ||
3929 | + | ||
3314 | static T_JZsdkReturnCode RecvDeal_UartBitrateChange(int Port, char *getbuf) | 3930 | static T_JZsdkReturnCode RecvDeal_UartBitrateChange(int Port, char *getbuf) |
3315 | { | 3931 | { |
3932 | + T_JZsdkOsalHandler *osalHandler = JZsdk_Platform_GetOsalHandler(); | ||
3933 | + | ||
3316 | JZSDK_LOG_INFO("%s,收到串口比特率修改",JZsdk_DefineCode_GetPortName(Port)); | 3934 | JZSDK_LOG_INFO("%s,收到串口比特率修改",JZsdk_DefineCode_GetPortName(Port)); |
3317 | 3935 | ||
3318 | //获取帧的序列号 | 3936 | //获取帧的序列号 |
@@ -3349,8 +3967,14 @@ static T_JZsdkReturnCode RecvDeal_UartBitrateChange(int Port, char *getbuf) | @@ -3349,8 +3967,14 @@ static T_JZsdkReturnCode RecvDeal_UartBitrateChange(int Port, char *getbuf) | ||
3349 | break; | 3967 | break; |
3350 | } | 3968 | } |
3351 | 3969 | ||
3352 | - int Value[1] = {BitRate}; | ||
3353 | - JZsdk_HalPort_ReInit(Port, Value); | 3970 | + int *arg = (int *)malloc(sizeof(int) * 2); |
3971 | + arg[0] = Port; | ||
3972 | + arg[1] = BitRate; | ||
3973 | + | ||
3974 | + //使用一个线程用于修改比特率 | ||
3975 | + osalHandler->TaskCreate("UartReinit_task", UartReinit_thread, 8192, arg, &g_UartReinit_task); | ||
3976 | + | ||
3977 | + JZSDK_LOG_INFO("已创建串口重置线程"); | ||
3354 | 3978 | ||
3355 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 3979 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
3356 | } | 3980 | } |
@@ -3832,13 +4456,37 @@ static T_JZsdkReturnCode RecvDeal_InstructInput(int Port, int Receive_mode, unsi | @@ -3832,13 +4456,37 @@ static T_JZsdkReturnCode RecvDeal_InstructInput(int Port, int Receive_mode, unsi | ||
3832 | return 0; | 4456 | return 0; |
3833 | break; | 4457 | break; |
3834 | 4458 | ||
4459 | + //音频重命名 | ||
4460 | + case JZ_INSCODE_5AFRAME_RENAME_AUDIO: | ||
4461 | + RecvDeal_Rename_Audio(Port,getbuf); | ||
4462 | + return 0; | ||
4463 | + break; | ||
4464 | + | ||
4465 | + //录音重命名 | ||
4466 | + case JZ_INSCODE_5AFRAME_RENAME_VOICE_RECORD: | ||
4467 | + RecvDeal_Rename_VoiceRecord(Port,getbuf); | ||
4468 | + return 0; | ||
4469 | + break; | ||
4470 | + | ||
4471 | + //视频重命名 | ||
4472 | + case JZ_INSCODE_5AFRAME_RENAME_VIDEO_RECORD: | ||
4473 | + RecvDeal_Rename_VideoRecord(Port,getbuf); | ||
4474 | + return 0; | ||
4475 | + break; | ||
3835 | 4476 | ||
3836 | //打开opus传输 | 4477 | //打开opus传输 |
3837 | - case JZ_INSCODE_5AFRAME_OPUS_TRANS_START: | 4478 | + case JZ_INSCODE_5AFRAME_OPUS_TRANS_START_1: |
3838 | RecvDeal_OpusTrans_start(Port,getbuf); | 4479 | RecvDeal_OpusTrans_start(Port,getbuf); |
3839 | return 0; | 4480 | return 0; |
3840 | break; | 4481 | break; |
3841 | 4482 | ||
4483 | + | ||
4484 | + //传输opus文件数据2型 | ||
4485 | + case JZ_INSCODE_5AFRAME_OPUS_TRANS_START_2: | ||
4486 | + RecvDeal_OpusTrans_start_2(Port,getbuf); | ||
4487 | + return 0; | ||
4488 | + break; | ||
4489 | + | ||
3842 | //传输定长opus文件数据 | 4490 | //传输定长opus文件数据 |
3843 | case JZ_INSCODE_5AFRAME_OPUS_TRANS_LIMIT_TRANSMISSION: | 4491 | case JZ_INSCODE_5AFRAME_OPUS_TRANS_LIMIT_TRANSMISSION: |
3844 | RecvDeal_OpusTrans_LimitTransmission(Port,getbuf, len); | 4492 | RecvDeal_OpusTrans_LimitTransmission(Port,getbuf, len); |
@@ -3863,6 +4511,11 @@ static T_JZsdkReturnCode RecvDeal_InstructInput(int Port, int Receive_mode, unsi | @@ -3863,6 +4511,11 @@ static T_JZsdkReturnCode RecvDeal_InstructInput(int Port, int Receive_mode, unsi | ||
3863 | return 0; | 4511 | return 0; |
3864 | break; | 4512 | break; |
3865 | 4513 | ||
4514 | + //获取opus列表 | ||
4515 | + case JZ_INSCODE_5AFRAME_OPUS_GETOPUSLIST: | ||
4516 | + RecvDeal_Get_OpusList(Port,getbuf); | ||
4517 | + return 0; | ||
4518 | + break; | ||
3866 | 4519 | ||
3867 | //开启opus实时喊话 | 4520 | //开启opus实时喊话 |
3868 | case JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_START: | 4521 | case JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_START: |
@@ -3922,6 +4575,17 @@ static T_JZsdkReturnCode RecvDeal_InstructInput(int Port, int Receive_mode, unsi | @@ -3922,6 +4575,17 @@ static T_JZsdkReturnCode RecvDeal_InstructInput(int Port, int Receive_mode, unsi | ||
3922 | return 0; | 4575 | return 0; |
3923 | break; | 4576 | break; |
3924 | 4577 | ||
4578 | + //开关播放时间回传 | ||
4579 | + case JZ_INSCODE_5AFRAME_CURRENT_PLAY_TIME: | ||
4580 | + RecvDeal_Current_Play_Time(Port,getbuf); | ||
4581 | + return 0; | ||
4582 | + break; | ||
4583 | + | ||
4584 | + //检查是否开启播放时间回传 | ||
4585 | + case JZ_INSCODE_5AFRAME_CHECKSTATUS_CURRENT_PLAYTIME: | ||
4586 | + RecvDeal_CheckStatus_CurrentPlayTime(Port,getbuf); | ||
4587 | + return 0; | ||
4588 | + break; | ||
3925 | 4589 | ||
3926 | //音频列表获取 | 4590 | //音频列表获取 |
3927 | case JZ_INSCODE_5AFRAME_AUDIO_GETMUSICLIST: | 4591 | case JZ_INSCODE_5AFRAME_AUDIO_GETMUSICLIST: |
@@ -3998,6 +4662,34 @@ static T_JZsdkReturnCode RecvDeal_InstructInput(int Port, int Receive_mode, unsi | @@ -3998,6 +4662,34 @@ static T_JZsdkReturnCode RecvDeal_InstructInput(int Port, int Receive_mode, unsi | ||
3998 | 4662 | ||
3999 | 4663 | ||
4000 | 4664 | ||
4665 | + //升级部分 | ||
4666 | + | ||
4667 | + //准备升级 | ||
4668 | + case JZ_INSCODE_5AFRAME_UPGRADE_PERPARE: | ||
4669 | + RecvDeal_Upgrade_Prepare(Port,getbuf); | ||
4670 | + break; | ||
4671 | + | ||
4672 | + //升级校验码 | ||
4673 | + case JZ_INSCODE_5AFRAME_UPGRADE_SEND_CHECKCODE: | ||
4674 | + RecvDeal_Upgrade_SendCheckCode(Port,getbuf); | ||
4675 | + break; | ||
4676 | + | ||
4677 | + //数据传输开始 | ||
4678 | + case JZ_INSCODE_5AFRAME_UPGRADE_STRAT: | ||
4679 | + RecvDeal_Upgrade_Start(Port,getbuf); | ||
4680 | + break; | ||
4681 | + | ||
4682 | + //数据传输中 | ||
4683 | + case JZ_INSCODE_5AFRAME_UPGRADE_TRANS: | ||
4684 | + RecvDeal_Upgrade_Trans(Port,getbuf); | ||
4685 | + break; | ||
4686 | + | ||
4687 | + //数据传输结束 | ||
4688 | + case JZ_INSCODE_5AFRAME_UPGRADE_END: | ||
4689 | + RecvDeal_Upgrade_End(Port,getbuf); | ||
4690 | + break; | ||
4691 | + | ||
4692 | + | ||
4001 | /******************************************************************************************************************************* | 4693 | /******************************************************************************************************************************* |
4002 | * | 4694 | * |
4003 | * 5B类部分 | 4695 | * 5B类部分 |
@@ -4293,9 +4985,6 @@ static T_JZsdkReturnCode HalRecv_tpye1_RecvDeal_Set_UartReceiveMode(int Port, in | @@ -4293,9 +4985,6 @@ static T_JZsdkReturnCode HalRecv_tpye1_RecvDeal_Set_UartReceiveMode(int Port, in | ||
4293 | static T_JZsdkReturnCode HalRecv_tpye1_RecvDeal_UartTransmodeDecide() | 4985 | static T_JZsdkReturnCode HalRecv_tpye1_RecvDeal_UartTransmodeDecide() |
4294 | { | 4986 | { |
4295 | if ((HalRecvMode == JZ_DATA_TRANS_TYPE_REAL_TIME_MP2 ) //mp2实时语音传输模式 | 4987 | if ((HalRecvMode == JZ_DATA_TRANS_TYPE_REAL_TIME_MP2 ) //mp2实时语音传输模式 |
4296 | - || (HalRecvMode == JZ_DATA_TRANS_TYPE_AUDIO_FILE) //音频文件传输模式 | ||
4297 | - || (HalRecvMode == JZ_DATA_TRANS_TYPE_OPUS_FILE) //opus无限制传输模式 | ||
4298 | - || (HalRecvMode == JZ_DATA_TRANS_TYPE_REAL_TIME_OPUS) //opus实时语音无限制传输模式 | ||
4299 | || (HalRecvMode == JZ_DATA_TRANS_TYPE_TTS)) //TTS无限制传输模式) | 4988 | || (HalRecvMode == JZ_DATA_TRANS_TYPE_TTS)) //TTS无限制传输模式) |
4300 | { | 4989 | { |
4301 | return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | 4990 | return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; |
@@ -3,9 +3,8 @@ | @@ -3,9 +3,8 @@ | ||
3 | 3 | ||
4 | #include "JZsdk_uart/JZsdk_Uart_UartDeal.h" | 4 | #include "JZsdk_uart/JZsdk_Uart_UartDeal.h" |
5 | 5 | ||
6 | +#include "Hal_Send/HalSend.h" | ||
6 | 7 | ||
7 | -#define SINGLE_THREAD_SEND 0 | ||
8 | -#define MULTI_THREAD_SEND 1 | ||
9 | 8 | ||
10 | /***************************** | 9 | /***************************** |
11 | * | 10 | * |
@@ -33,11 +32,11 @@ T_JZsdkReturnCode HalSend_SendData(unsigned int Port, unsigned char *Data, unsig | @@ -33,11 +32,11 @@ T_JZsdkReturnCode HalSend_SendData(unsigned int Port, unsigned char *Data, unsig | ||
33 | case UART_DEV_3: | 32 | case UART_DEV_3: |
34 | case UART_DEV_4: | 33 | case UART_DEV_4: |
35 | case UART_DEV_5: | 34 | case UART_DEV_5: |
36 | - if (SendType == SINGLE_THREAD_SEND) | 35 | + if (SendType == MULTI_THREAD_SEND) |
37 | { | 36 | { |
38 | JZsdk_Uart_UartSend(Port, Data, DataLen); | 37 | JZsdk_Uart_UartSend(Port, Data, DataLen); |
39 | } | 38 | } |
40 | - else if (SendType == MULTI_THREAD_SEND) | 39 | + else if (SendType == SINGLE_THREAD_SEND) |
41 | { | 40 | { |
42 | JZsdk_Uart_UartSend_NotTask(Port, Data, DataLen); | 41 | JZsdk_Uart_UartSend_NotTask(Port, Data, DataLen); |
43 | } | 42 | } |
@@ -20,11 +20,13 @@ extern "C" { | @@ -20,11 +20,13 @@ extern "C" { | ||
20 | 20 | ||
21 | /* Exported constants --------------------------------------------------------*/ | 21 | /* Exported constants --------------------------------------------------------*/ |
22 | /* 常亮定义*/ | 22 | /* 常亮定义*/ |
23 | - | 23 | +#define SINGLE_THREAD_SEND 0 |
24 | +#define MULTI_THREAD_SEND 1 | ||
24 | 25 | ||
25 | /* Exported types ------------------------------------------------------------*/ | 26 | /* Exported types ------------------------------------------------------------*/ |
26 | 27 | ||
27 | /* Exported functions --------------------------------------------------------*/ | 28 | /* Exported functions --------------------------------------------------------*/ |
29 | + | ||
28 | T_JZsdkReturnCode HalSend_SendData(unsigned int Port, unsigned char *Data, unsigned int DataLen, unsigned int SendType); | 30 | T_JZsdkReturnCode HalSend_SendData(unsigned int Port, unsigned char *Data, unsigned int DataLen, unsigned int SendType); |
29 | 31 | ||
30 | 32 |
@@ -41,7 +41,7 @@ T_JZsdkReturnCode HalSend_type1Send_Send_Connect(int Uartport , int FrameSequenc | @@ -41,7 +41,7 @@ T_JZsdkReturnCode HalSend_type1Send_Send_Connect(int Uartport , int FrameSequenc | ||
41 | sendbuf[6] = FrameSequence; //帧序列 | 41 | sendbuf[6] = FrameSequence; //帧序列 |
42 | 42 | ||
43 | //3、发送帧 | 43 | //3、发送帧 |
44 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 44 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
45 | 45 | ||
46 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 46 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
47 | } | 47 | } |
@@ -62,7 +62,7 @@ T_JZsdkReturnCode HalSend_type1Send_Send_HeartBeatStatus(int Uartport , int Fram | @@ -62,7 +62,7 @@ T_JZsdkReturnCode HalSend_type1Send_Send_HeartBeatStatus(int Uartport , int Fram | ||
62 | sendbuf[6] = FrameSequence; //帧序列 | 62 | sendbuf[6] = FrameSequence; //帧序列 |
63 | 63 | ||
64 | //3、发送帧 | 64 | //3、发送帧 |
65 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 65 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
66 | 66 | ||
67 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 67 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
68 | } | 68 | } |
@@ -82,7 +82,7 @@ T_JZsdkReturnCode HalSend_type1Send_Set_PowerStatus(int Uartport, int FrameSeque | @@ -82,7 +82,7 @@ T_JZsdkReturnCode HalSend_type1Send_Set_PowerStatus(int Uartport, int FrameSeque | ||
82 | sendbuf[6] = FrameSequence; //帧序列 | 82 | sendbuf[6] = FrameSequence; //帧序列 |
83 | 83 | ||
84 | //2、发送帧 | 84 | //2、发送帧 |
85 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 85 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
86 | 86 | ||
87 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 87 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
88 | } | 88 | } |
@@ -102,7 +102,7 @@ T_JZsdkReturnCode HalSend_type1Send_Ask_HeartBeatStatus(int Uartport , int Frame | @@ -102,7 +102,7 @@ T_JZsdkReturnCode HalSend_type1Send_Ask_HeartBeatStatus(int Uartport , int Frame | ||
102 | sendbuf[6] = FrameSequence; //帧序列 | 102 | sendbuf[6] = FrameSequence; //帧序列 |
103 | 103 | ||
104 | //2、发送帧 | 104 | //2、发送帧 |
105 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 105 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
106 | 106 | ||
107 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 107 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
108 | } | 108 | } |
@@ -121,7 +121,7 @@ T_JZsdkReturnCode HalSend_type1Send_Ask_TimeStamp(int Uartport , int FrameSequen | @@ -121,7 +121,7 @@ T_JZsdkReturnCode HalSend_type1Send_Ask_TimeStamp(int Uartport , int FrameSequen | ||
121 | sendbuf[6] = FrameSequence; //帧序列 | 121 | sendbuf[6] = FrameSequence; //帧序列 |
122 | 122 | ||
123 | //2、发送帧 | 123 | //2、发送帧 |
124 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 124 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
125 | 125 | ||
126 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 126 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
127 | } | 127 | } |
@@ -145,7 +145,7 @@ T_JZsdkReturnCode HalSend_type1Send_SendAllVersion(int Uartport, int FrameSequen | @@ -145,7 +145,7 @@ T_JZsdkReturnCode HalSend_type1Send_SendAllVersion(int Uartport, int FrameSequen | ||
145 | sendbuf[13] = DebugVersion; | 145 | sendbuf[13] = DebugVersion; |
146 | 146 | ||
147 | //2、发送帧 | 147 | //2、发送帧 |
148 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 148 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
149 | 149 | ||
150 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 150 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
151 | } | 151 | } |
@@ -172,7 +172,7 @@ T_JZsdkReturnCode HalSend_type1Send_SendAllSerialNumber(int Uartport, int FrameS | @@ -172,7 +172,7 @@ T_JZsdkReturnCode HalSend_type1Send_SendAllSerialNumber(int Uartport, int FrameS | ||
172 | sendbuf[4] = (send_buf_len & 0xff); | 172 | sendbuf[4] = (send_buf_len & 0xff); |
173 | 173 | ||
174 | //2、发送帧 | 174 | //2、发送帧 |
175 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 175 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
176 | 176 | ||
177 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 177 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
178 | } | 178 | } |
@@ -190,7 +190,7 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_Success(int Uartport ,int FrameSequenc | @@ -190,7 +190,7 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_Success(int Uartport ,int FrameSequenc | ||
190 | sendbuf[6] = FrameSequence; //帧序列 | 190 | sendbuf[6] = FrameSequence; //帧序列 |
191 | 191 | ||
192 | //3、发送帧 | 192 | //3、发送帧 |
193 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 193 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
194 | 194 | ||
195 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 195 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
196 | } | 196 | } |
@@ -208,7 +208,7 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_Failure(int Uartport ,int FrameSequenc | @@ -208,7 +208,7 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_Failure(int Uartport ,int FrameSequenc | ||
208 | sendbuf[6] = FrameSequence; //帧序列 | 208 | sendbuf[6] = FrameSequence; //帧序列 |
209 | 209 | ||
210 | //3、发送帧 | 210 | //3、发送帧 |
211 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 211 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
212 | } | 212 | } |
213 | 213 | ||
214 | //发送校验失败帧 | 214 | //发送校验失败帧 |
@@ -224,7 +224,7 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_CheckError(int Uartport ,int FrameSequ | @@ -224,7 +224,7 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_CheckError(int Uartport ,int FrameSequ | ||
224 | sendbuf[6] = FrameSequence; //帧序列 | 224 | sendbuf[6] = FrameSequence; //帧序列 |
225 | 225 | ||
226 | //3、发送帧 | 226 | //3、发送帧 |
227 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 227 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
228 | } | 228 | } |
229 | 229 | ||
230 | //发送解码失败帧 | 230 | //发送解码失败帧 |
@@ -240,7 +240,7 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_DecodeError(int Uartport ,int FrameSeq | @@ -240,7 +240,7 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_DecodeError(int Uartport ,int FrameSeq | ||
240 | sendbuf[6] = FrameSequence; //帧序列 | 240 | sendbuf[6] = FrameSequence; //帧序列 |
241 | 241 | ||
242 | //3、发送帧 | 242 | //3、发送帧 |
243 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 243 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
244 | } | 244 | } |
245 | 245 | ||
246 | //发送当前从设备名 | 246 | //发送当前从设备名 |
@@ -257,7 +257,7 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_SecondaryDeviceName(int Uartport , int | @@ -257,7 +257,7 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_SecondaryDeviceName(int Uartport , int | ||
257 | sendbuf[10] = device_name; | 257 | sendbuf[10] = device_name; |
258 | 258 | ||
259 | //3、发送帧 | 259 | //3、发送帧 |
260 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 260 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
261 | } | 261 | } |
262 | 262 | ||
263 | 263 | ||
@@ -274,7 +274,7 @@ T_JZsdkReturnCode HalSend_type1Send_QuerySecondaryDeviceName(int Uartport ,int F | @@ -274,7 +274,7 @@ T_JZsdkReturnCode HalSend_type1Send_QuerySecondaryDeviceName(int Uartport ,int F | ||
274 | sendbuf[6] = FrameSequence; //帧序列 | 274 | sendbuf[6] = FrameSequence; //帧序列 |
275 | 275 | ||
276 | //3、发送帧 | 276 | //3、发送帧 |
277 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 277 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
278 | } | 278 | } |
279 | 279 | ||
280 | //发送当前设备序列号 | 280 | //发送当前设备序列号 |
@@ -301,7 +301,7 @@ T_JZsdkReturnCode HalSend_type1Send_SerialNumber(int UartPort, int FrameSequence | @@ -301,7 +301,7 @@ T_JZsdkReturnCode HalSend_type1Send_SerialNumber(int UartPort, int FrameSequence | ||
301 | sendbuf[4] = send_buf_len; | 301 | sendbuf[4] = send_buf_len; |
302 | 302 | ||
303 | //3、发送帧 | 303 | //3、发送帧 |
304 | - HalSend_SendData(UartPort ,sendbuf, send_buf_len, 1); | 304 | + HalSend_SendData(UartPort ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
305 | } | 305 | } |
306 | 306 | ||
307 | /********* | 307 | /********* |
@@ -326,7 +326,7 @@ T_JZsdkReturnCode HalSend_type1Send_DeviceMessage(int UartPort, int FrameSequenc | @@ -326,7 +326,7 @@ T_JZsdkReturnCode HalSend_type1Send_DeviceMessage(int UartPort, int FrameSequenc | ||
326 | sendbuf[9+messageLen + 1] = 0x23; | 326 | sendbuf[9+messageLen + 1] = 0x23; |
327 | 327 | ||
328 | //3、发送帧 | 328 | //3、发送帧 |
329 | - HalSend_SendData(UartPort ,sendbuf, send_buf_len, 1); | 329 | + HalSend_SendData(UartPort ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
330 | } | 330 | } |
331 | 331 | ||
332 | 332 | ||
@@ -457,7 +457,7 @@ T_JZsdkReturnCode HalSend_type1Send_Send_AudioList_Start(int Uartport, int Frame | @@ -457,7 +457,7 @@ T_JZsdkReturnCode HalSend_type1Send_Send_AudioList_Start(int Uartport, int Frame | ||
457 | sendbuf[9] = music_sum; | 457 | sendbuf[9] = music_sum; |
458 | 458 | ||
459 | //发送帧 | 459 | //发送帧 |
460 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 0); | 460 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, SINGLE_THREAD_SEND); |
461 | 461 | ||
462 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 462 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
463 | } | 463 | } |
@@ -476,7 +476,7 @@ T_JZsdkReturnCode HalSend_type1Send_Send_AudioList_Stop(int Uartport, int FrameS | @@ -476,7 +476,7 @@ T_JZsdkReturnCode HalSend_type1Send_Send_AudioList_Stop(int Uartport, int FrameS | ||
476 | //写入数据 | 476 | //写入数据 |
477 | sendbuf[6] = FrameSequence; //帧序列 | 477 | sendbuf[6] = FrameSequence; //帧序列 |
478 | 478 | ||
479 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 0); | 479 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, SINGLE_THREAD_SEND); |
480 | } | 480 | } |
481 | 481 | ||
482 | //发送歌曲列表Ⅱ型 | 482 | //发送歌曲列表Ⅱ型 |
@@ -514,7 +514,7 @@ T_JZsdkReturnCode HalSend_type1Send_Send_AudioList_2(int Uartport, int FrameSequ | @@ -514,7 +514,7 @@ T_JZsdkReturnCode HalSend_type1Send_Send_AudioList_2(int Uartport, int FrameSequ | ||
514 | sendbuf[send_buf_len-1] = 0x23; | 514 | sendbuf[send_buf_len-1] = 0x23; |
515 | 515 | ||
516 | //3、发送帧 | 516 | //3、发送帧 |
517 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 0); | 517 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, SINGLE_THREAD_SEND); |
518 | 518 | ||
519 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 519 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
520 | } | 520 | } |
@@ -542,7 +542,7 @@ T_JZsdkReturnCode HalSend_type1Send_Send_AudioDetailMessage(int Uartport, int Fr | @@ -542,7 +542,7 @@ T_JZsdkReturnCode HalSend_type1Send_Send_AudioDetailMessage(int Uartport, int Fr | ||
542 | sendbuf[send_buf_len-1] = 0x23; | 542 | sendbuf[send_buf_len-1] = 0x23; |
543 | 543 | ||
544 | //3、发送帧 | 544 | //3、发送帧 |
545 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 545 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
546 | 546 | ||
547 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 547 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
548 | } | 548 | } |
@@ -560,7 +560,7 @@ T_JZsdkReturnCode HalSend_type1Send_Send_PlayStatus_end(int Uartport) | @@ -560,7 +560,7 @@ T_JZsdkReturnCode HalSend_type1Send_Send_PlayStatus_end(int Uartport) | ||
560 | //2、写入数据 | 560 | //2、写入数据 |
561 | 561 | ||
562 | //3、发送帧 | 562 | //3、发送帧 |
563 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 563 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
564 | } | 564 | } |
565 | 565 | ||
566 | //发送播放状态帧 | 566 | //发送播放状态帧 |
@@ -593,7 +593,7 @@ T_JZsdkReturnCode HalSend_type1Send_Send_PlayStatus(int Uartport ,int num) | @@ -593,7 +593,7 @@ T_JZsdkReturnCode HalSend_type1Send_Send_PlayStatus(int Uartport ,int num) | ||
593 | sendbuf[9] = (char)num; | 593 | sendbuf[9] = (char)num; |
594 | 594 | ||
595 | //3、发送帧 | 595 | //3、发送帧 |
596 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 596 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
597 | } | 597 | } |
598 | 598 | ||
599 | //回复当前播放的歌曲名字 | 599 | //回复当前播放的歌曲名字 |
@@ -634,7 +634,7 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_Volume(int Uartport ,int num) | @@ -634,7 +634,7 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_Volume(int Uartport ,int num) | ||
634 | sendbuf[9] = (char)num; | 634 | sendbuf[9] = (char)num; |
635 | 635 | ||
636 | //3、发送帧 | 636 | //3、发送帧 |
637 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 637 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
638 | 638 | ||
639 | } | 639 | } |
640 | 640 | ||
@@ -657,7 +657,7 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_SoftVersion(int Uartport ,char majorVe | @@ -657,7 +657,7 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_SoftVersion(int Uartport ,char majorVe | ||
657 | sendbuf[12] = debugVersion; | 657 | sendbuf[12] = debugVersion; |
658 | 658 | ||
659 | //3、发送帧 | 659 | //3、发送帧 |
660 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 660 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
661 | } | 661 | } |
662 | 662 | ||
663 | //发送循环状态 | 663 | //发送循环状态 |
@@ -675,7 +675,7 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_LoopPlayStatus(int Uartport ,int statu | @@ -675,7 +675,7 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_LoopPlayStatus(int Uartport ,int statu | ||
675 | sendbuf[9] = status; | 675 | sendbuf[9] = status; |
676 | 676 | ||
677 | //3、发送帧 | 677 | //3、发送帧 |
678 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 678 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
679 | 679 | ||
680 | } | 680 | } |
681 | 681 | ||
@@ -694,7 +694,7 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_TTS_tone(int Uartport ,int tone) | @@ -694,7 +694,7 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_TTS_tone(int Uartport ,int tone) | ||
694 | sendbuf[9] = tone; | 694 | sendbuf[9] = tone; |
695 | 695 | ||
696 | //3、发送帧 | 696 | //3、发送帧 |
697 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 697 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
698 | } | 698 | } |
699 | 699 | ||
700 | //发送语速 | 700 | //发送语速 |
@@ -712,7 +712,44 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_TTS_speed(int Uartport ,int speed) | @@ -712,7 +712,44 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_TTS_speed(int Uartport ,int speed) | ||
712 | sendbuf[9] = speed; | 712 | sendbuf[9] = speed; |
713 | 713 | ||
714 | //3、发送帧 | 714 | //3、发送帧 |
715 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 715 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
716 | +} | ||
717 | + | ||
718 | +//发送当前播放时间状态 | ||
719 | +T_JZsdkReturnCode HalSend_type1Send_Reply_CurrentPlayTimeStatus(int Uartport ,int mode) | ||
720 | +{ | ||
721 | + printf("发送当前播放时间状态帧\n"); | ||
722 | + | ||
723 | + unsigned char sendbuf[256]; | ||
724 | + int send_buf_len; | ||
725 | + | ||
726 | + //1、获取帧样板 | ||
727 | + JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_CHECKSTATUS_CURRENT_PLAYTIME, sendbuf, &send_buf_len); | ||
728 | + | ||
729 | + //2、写入数据 | ||
730 | + sendbuf[9] = mode; | ||
731 | + | ||
732 | + //3、发送帧 | ||
733 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); | ||
734 | +} | ||
735 | + | ||
736 | +//发送当前播放时间 | ||
737 | +T_JZsdkReturnCode HalSend_type1Send_Reply_CurrentPlayTime(int Uartport ,int time) | ||
738 | +{ | ||
739 | + printf("发送当前播放时间\n"); | ||
740 | + | ||
741 | + unsigned char sendbuf[256]; | ||
742 | + int send_buf_len; | ||
743 | + | ||
744 | + //1、获取帧样板 | ||
745 | + JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_CURRENT_PLAY_TIME, sendbuf, &send_buf_len); | ||
746 | + | ||
747 | + //2、写入数据 | ||
748 | + sendbuf[9] = time >> 8; | ||
749 | + sendbuf[10] = time & 0xff; | ||
750 | + | ||
751 | + //3、发送帧 | ||
752 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); | ||
716 | } | 753 | } |
717 | 754 | ||
718 | /************* | 755 | /************* |
@@ -734,7 +771,87 @@ T_JZsdkReturnCode HalSend_type1Send_OpusDecodeStatus(int Uartport,int value) | @@ -734,7 +771,87 @@ T_JZsdkReturnCode HalSend_type1Send_OpusDecodeStatus(int Uartport,int value) | ||
734 | sendbuf[9] = value; | 771 | sendbuf[9] = value; |
735 | 772 | ||
736 | //3、发送帧 | 773 | //3、发送帧 |
737 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 774 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
775 | +} | ||
776 | + | ||
777 | + | ||
778 | +//发送opus列表开始帧 | ||
779 | +T_JZsdkReturnCode HalSend_type1Send_Send_OpusList_Start(int Uartport, int FrameSequence, int music_sum) | ||
780 | +{ | ||
781 | + printf("发送opus开始列表帧\n"); | ||
782 | + | ||
783 | + unsigned char sendbuf[128]; | ||
784 | + int send_buf_len; | ||
785 | + | ||
786 | + //获取帧样板 | ||
787 | + memset(sendbuf,0,sizeof(sendbuf)); | ||
788 | + JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_OPUSLIST_START , sendbuf, &send_buf_len); | ||
789 | + //写入数据 | ||
790 | + sendbuf[6] = FrameSequence; //帧序列 | ||
791 | + sendbuf[9] = music_sum; | ||
792 | + | ||
793 | + //发送帧 | ||
794 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, SINGLE_THREAD_SEND); | ||
795 | + | ||
796 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
797 | +} | ||
798 | + | ||
799 | + | ||
800 | +//发送opus列表 | ||
801 | +T_JZsdkReturnCode HalSend_type1Send_Send_OpusList_Trans(int Uartport, int FrameSequence, unsigned char *name, unsigned int namelen, unsigned int Filesize, unsigned int Time) | ||
802 | +{ | ||
803 | + printf("发送opus列表 %s %d %d %d\n",name, namelen, Filesize, Time); | ||
804 | + unsigned char sendbuf[400]; | ||
805 | + int send_buf_len; | ||
806 | + | ||
807 | + //1、获取帧样板 | ||
808 | + JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_OPUSLIST_TRANS , sendbuf, &send_buf_len); | ||
809 | + | ||
810 | + //写入文件名 | ||
811 | + sendbuf[9] = namelen; | ||
812 | + memcpy(&sendbuf[10], name, namelen); | ||
813 | + | ||
814 | + //文件大小 | ||
815 | + sendbuf[10+namelen] = (Filesize >> 24) & 0xFF; | ||
816 | + sendbuf[10+namelen+1] = (Filesize >> 16) & 0xFF; | ||
817 | + sendbuf[10+namelen+2] = (Filesize >> 8) & 0xFF; | ||
818 | + sendbuf[10+namelen+3] = Filesize & 0xFF; | ||
819 | + | ||
820 | + //播放时间 | ||
821 | + sendbuf[10+namelen+4] = (Time >> 8) & 0xFF; | ||
822 | + sendbuf[10+namelen+5] = Time & 0xFF; | ||
823 | + | ||
824 | + //2、写入数据 | ||
825 | + send_buf_len = 9 + 1 + namelen + 4 + 2 + 2; | ||
826 | + | ||
827 | + sendbuf[3] = (unsigned char)( (send_buf_len >> 8) & 0xFF); //帧长度 | ||
828 | + sendbuf[4] = (unsigned char)(send_buf_len & 0xFF); //帧长度 | ||
829 | + sendbuf[6] = FrameSequence; //帧序列 | ||
830 | + | ||
831 | + sendbuf[send_buf_len-2] = 0x00; | ||
832 | + sendbuf[send_buf_len-1] = 0x23; | ||
833 | + | ||
834 | + //3、发送帧 | ||
835 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, SINGLE_THREAD_SEND); | ||
836 | + | ||
837 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
838 | +} | ||
839 | + | ||
840 | +//发送opus列表结束帧 | ||
841 | +T_JZsdkReturnCode HalSend_type1Send_Send_OpusList_Stop(int Uartport, int FrameSequence) | ||
842 | +{ | ||
843 | + printf("发送opus结束列表帧\n"); | ||
844 | + | ||
845 | + unsigned char sendbuf[128]; | ||
846 | + int send_buf_len; | ||
847 | + | ||
848 | + //获取帧样板 | ||
849 | + memset(sendbuf,0,sizeof(sendbuf)); | ||
850 | + JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_OPUSLIST_END , sendbuf, &send_buf_len); | ||
851 | + //写入数据 | ||
852 | + sendbuf[6] = FrameSequence; //帧序列 | ||
853 | + | ||
854 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, SINGLE_THREAD_SEND); | ||
738 | } | 855 | } |
739 | 856 | ||
740 | /**************************************************************************************************************************************************** | 857 | /**************************************************************************************************************************************************** |
@@ -766,7 +883,7 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_GimbalPitchAngle(int Uartport ,int ang | @@ -766,7 +883,7 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_GimbalPitchAngle(int Uartport ,int ang | ||
766 | sendbuf[11] = (char)(angle & 255); | 883 | sendbuf[11] = (char)(angle & 255); |
767 | 884 | ||
768 | //3、发送帧 | 885 | //3、发送帧 |
769 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 886 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
770 | } | 887 | } |
771 | 888 | ||
772 | //设置当前云台角度 | 889 | //设置当前云台角度 |
@@ -794,7 +911,7 @@ T_JZsdkReturnCode HalSend_type1Send_Set_GimbalPitchAngle(int Uartport ,int angle | @@ -794,7 +911,7 @@ T_JZsdkReturnCode HalSend_type1Send_Set_GimbalPitchAngle(int Uartport ,int angle | ||
794 | sendbuf[11] = (angle & 0xff); | 911 | sendbuf[11] = (angle & 0xff); |
795 | 912 | ||
796 | //3、发送帧 | 913 | //3、发送帧 |
797 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 914 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
798 | } | 915 | } |
799 | 916 | ||
800 | //查询云台角度 | 917 | //查询云台角度 |
@@ -811,7 +928,7 @@ T_JZsdkReturnCode HalSend_type1Send_CheckStatus_GimbalAngle(int Uartport ,int Fr | @@ -811,7 +928,7 @@ T_JZsdkReturnCode HalSend_type1Send_CheckStatus_GimbalAngle(int Uartport ,int Fr | ||
811 | sendbuf[6] = FrameSequence; | 928 | sendbuf[6] = FrameSequence; |
812 | 929 | ||
813 | //3、发送帧 | 930 | //3、发送帧 |
814 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 931 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
815 | } | 932 | } |
816 | 933 | ||
817 | //微调云台pitch | 934 | //微调云台pitch |
@@ -839,7 +956,7 @@ T_JZsdkReturnCode HalSend_type1Send_Set_GimbalFineTuningPitch(int Uartport, int | @@ -839,7 +956,7 @@ T_JZsdkReturnCode HalSend_type1Send_Set_GimbalFineTuningPitch(int Uartport, int | ||
839 | sendbuf[11] = (PitchFineTuning & 0xff); | 956 | sendbuf[11] = (PitchFineTuning & 0xff); |
840 | 957 | ||
841 | //3、发送帧 | 958 | //3、发送帧 |
842 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 959 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
843 | } | 960 | } |
844 | 961 | ||
845 | //查询云台角度微调值 | 962 | //查询云台角度微调值 |
@@ -856,7 +973,7 @@ T_JZsdkReturnCode HalSend_type1Send_CheckStatus_GimbalFineTuningPitch(int Uartpo | @@ -856,7 +973,7 @@ T_JZsdkReturnCode HalSend_type1Send_CheckStatus_GimbalFineTuningPitch(int Uartpo | ||
856 | sendbuf[6] = FrameSequence; //帧序列 | 973 | sendbuf[6] = FrameSequence; //帧序列 |
857 | 974 | ||
858 | //3、发送帧 | 975 | //3、发送帧 |
859 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 976 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
860 | } | 977 | } |
861 | 978 | ||
862 | //回复云台pitch微调值 | 979 | //回复云台pitch微调值 |
@@ -884,7 +1001,7 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_GimbalFineTuningPitch(int Uartport, in | @@ -884,7 +1001,7 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_GimbalFineTuningPitch(int Uartport, in | ||
884 | sendbuf[11] = (FineTunigPitch & 0xff); | 1001 | sendbuf[11] = (FineTunigPitch & 0xff); |
885 | 1002 | ||
886 | //3、发送帧 | 1003 | //3、发送帧 |
887 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 1004 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
888 | } | 1005 | } |
889 | 1006 | ||
890 | //设置云台联动 | 1007 | //设置云台联动 |
@@ -902,7 +1019,7 @@ T_JZsdkReturnCode HalSend_type1Send_Set_GimbalLinkageControl(int Uartport,int Fr | @@ -902,7 +1019,7 @@ T_JZsdkReturnCode HalSend_type1Send_Set_GimbalLinkageControl(int Uartport,int Fr | ||
902 | sendbuf[10] = value; | 1019 | sendbuf[10] = value; |
903 | 1020 | ||
904 | //3、发送帧 | 1021 | //3、发送帧 |
905 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 1022 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
906 | } | 1023 | } |
907 | 1024 | ||
908 | //查询云台联动值 | 1025 | //查询云台联动值 |
@@ -919,7 +1036,7 @@ T_JZsdkReturnCode HalSend_type1Send_CheckStatus_GimbalLinkage(int Uartport,int F | @@ -919,7 +1036,7 @@ T_JZsdkReturnCode HalSend_type1Send_CheckStatus_GimbalLinkage(int Uartport,int F | ||
919 | sendbuf[6] = FrameSequence; //帧序列 | 1036 | sendbuf[6] = FrameSequence; //帧序列 |
920 | 1037 | ||
921 | //3、发送帧 | 1038 | //3、发送帧 |
922 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 1039 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
923 | } | 1040 | } |
924 | 1041 | ||
925 | //发送云台联动值 | 1042 | //发送云台联动值 |
@@ -937,7 +1054,7 @@ T_JZsdkReturnCode HalSend_type1Send_GimbalLinkageControl(int Uartport,int FrameS | @@ -937,7 +1054,7 @@ T_JZsdkReturnCode HalSend_type1Send_GimbalLinkageControl(int Uartport,int FrameS | ||
937 | sendbuf[10] = value; | 1054 | sendbuf[10] = value; |
938 | 1055 | ||
939 | //3、发送帧 | 1056 | //3、发送帧 |
940 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 1057 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
941 | } | 1058 | } |
942 | 1059 | ||
943 | //发送云台最大最小值帧 | 1060 | //发送云台最大最小值帧 |
@@ -955,7 +1072,7 @@ T_JZsdkReturnCode HalSend_type1Send_SetGimbalRange(int Uartport,int FrameSequenc | @@ -955,7 +1072,7 @@ T_JZsdkReturnCode HalSend_type1Send_SetGimbalRange(int Uartport,int FrameSequenc | ||
955 | sendbuf[10] = value; | 1072 | sendbuf[10] = value; |
956 | 1073 | ||
957 | //3、发送帧 | 1074 | //3、发送帧 |
958 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 1075 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
959 | } | 1076 | } |
960 | 1077 | ||
961 | /**************************************************************************************************************************************************** | 1078 | /**************************************************************************************************************************************************** |
@@ -979,7 +1096,7 @@ T_JZsdkReturnCode HalSend_type1Send_Set_SearchLightFrequency(int Uartport ,int F | @@ -979,7 +1096,7 @@ T_JZsdkReturnCode HalSend_type1Send_Set_SearchLightFrequency(int Uartport ,int F | ||
979 | sendbuf[10] = Frequency; | 1096 | sendbuf[10] = Frequency; |
980 | 1097 | ||
981 | //3、发送帧 | 1098 | //3、发送帧 |
982 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 1099 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
983 | } | 1100 | } |
984 | 1101 | ||
985 | //设置探照灯控制 | 1102 | //设置探照灯控制 |
@@ -997,7 +1114,7 @@ T_JZsdkReturnCode HalSend_type1Send_SearchLight_Control(int Uartport,int mode) | @@ -997,7 +1114,7 @@ T_JZsdkReturnCode HalSend_type1Send_SearchLight_Control(int Uartport,int mode) | ||
997 | sendbuf[10] = mode; | 1114 | sendbuf[10] = mode; |
998 | 1115 | ||
999 | //3、发送帧 | 1116 | //3、发送帧 |
1000 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 1117 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
1001 | } | 1118 | } |
1002 | 1119 | ||
1003 | //设置探照灯亮度 | 1120 | //设置探照灯亮度 |
@@ -1016,7 +1133,7 @@ T_JZsdkReturnCode HalSend_type1Send_SearchLight_SetLumen(int Uartport, int Left | @@ -1016,7 +1133,7 @@ T_JZsdkReturnCode HalSend_type1Send_SearchLight_SetLumen(int Uartport, int Left | ||
1016 | sendbuf[10] = RightLumen; | 1133 | sendbuf[10] = RightLumen; |
1017 | 1134 | ||
1018 | //3、发送帧 | 1135 | //3、发送帧 |
1019 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 1136 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
1020 | } | 1137 | } |
1021 | 1138 | ||
1022 | //发送 | 1139 | //发送 |
@@ -1033,7 +1150,7 @@ T_JZsdkReturnCode HalSend_type1Send_CheckStatus_SearchLight_Frequency(int Uartpo | @@ -1033,7 +1150,7 @@ T_JZsdkReturnCode HalSend_type1Send_CheckStatus_SearchLight_Frequency(int Uartpo | ||
1033 | JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_CHECKSTATUS_SEARCHLIGHT_FREQUENCY, sendbuf, &send_buf_len); | 1150 | JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_CHECKSTATUS_SEARCHLIGHT_FREQUENCY, sendbuf, &send_buf_len); |
1034 | 1151 | ||
1035 | //2、发送帧 | 1152 | //2、发送帧 |
1036 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 1153 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
1037 | } | 1154 | } |
1038 | 1155 | ||
1039 | //查询探照灯亮度 | 1156 | //查询探照灯亮度 |
@@ -1048,7 +1165,7 @@ T_JZsdkReturnCode HalSend_type1Send_CheckStatus_SearchLight_Lumen(int Uartport) | @@ -1048,7 +1165,7 @@ T_JZsdkReturnCode HalSend_type1Send_CheckStatus_SearchLight_Lumen(int Uartport) | ||
1048 | JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_CHECKSTATUS_SEARCHLIGHT_LUMEN, sendbuf, &send_buf_len); | 1165 | JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_CHECKSTATUS_SEARCHLIGHT_LUMEN, sendbuf, &send_buf_len); |
1049 | 1166 | ||
1050 | //2、发送帧 | 1167 | //2、发送帧 |
1051 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 1168 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
1052 | } | 1169 | } |
1053 | 1170 | ||
1054 | //查询探照灯模式 | 1171 | //查询探照灯模式 |
@@ -1063,7 +1180,7 @@ T_JZsdkReturnCode HalSend_type1Send_CheckStatus_SearchLight_Mode(int Uartport) | @@ -1063,7 +1180,7 @@ T_JZsdkReturnCode HalSend_type1Send_CheckStatus_SearchLight_Mode(int Uartport) | ||
1063 | JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_CHECKSTATUS_SEARCHLIGHT_MODE, sendbuf, &send_buf_len); | 1180 | JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_CHECKSTATUS_SEARCHLIGHT_MODE, sendbuf, &send_buf_len); |
1064 | 1181 | ||
1065 | //2、发送帧 | 1182 | //2、发送帧 |
1066 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 1183 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
1067 | } | 1184 | } |
1068 | 1185 | ||
1069 | //查询探照灯属性 | 1186 | //查询探照灯属性 |
@@ -1078,7 +1195,7 @@ T_JZsdkReturnCode HalSend_type1Send_CheckStatus_SearchLight_Attribute(int Uartpo | @@ -1078,7 +1195,7 @@ T_JZsdkReturnCode HalSend_type1Send_CheckStatus_SearchLight_Attribute(int Uartpo | ||
1078 | JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_CHECKSTATUS_SEARCHLIGHT_LIGHTATTRIBUTE, sendbuf, &send_buf_len); | 1195 | JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_CHECKSTATUS_SEARCHLIGHT_LIGHTATTRIBUTE, sendbuf, &send_buf_len); |
1079 | 1196 | ||
1080 | //2、发送帧 | 1197 | //2、发送帧 |
1081 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 1198 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
1082 | } | 1199 | } |
1083 | 1200 | ||
1084 | //查询探照灯温度 | 1201 | //查询探照灯温度 |
@@ -1093,7 +1210,7 @@ T_JZsdkReturnCode HalSend_type1Send_CheckStatus_SearchLight_Temperture(int Uartp | @@ -1093,7 +1210,7 @@ T_JZsdkReturnCode HalSend_type1Send_CheckStatus_SearchLight_Temperture(int Uartp | ||
1093 | JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_CHECKSTATUS_SEARCHLIGHT_TEMPERATURE, sendbuf, &send_buf_len); | 1210 | JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_CHECKSTATUS_SEARCHLIGHT_TEMPERATURE, sendbuf, &send_buf_len); |
1094 | 1211 | ||
1095 | //2、发送帧 | 1212 | //2、发送帧 |
1096 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 1213 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
1097 | } | 1214 | } |
1098 | 1215 | ||
1099 | //开启消息订阅 | 1216 | //开启消息订阅 |
@@ -1111,7 +1228,114 @@ T_JZsdkReturnCode HalSend_type1Send_MessageSubcription_Control(int Uartport, int | @@ -1111,7 +1228,114 @@ T_JZsdkReturnCode HalSend_type1Send_MessageSubcription_Control(int Uartport, int | ||
1111 | sendbuf[10] = value; | 1228 | sendbuf[10] = value; |
1112 | 1229 | ||
1113 | //3、发送帧 | 1230 | //3、发送帧 |
1114 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 1231 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
1232 | +} | ||
1233 | + | ||
1234 | +/************************************************************************************************************************************************************ | ||
1235 | + * | ||
1236 | + * 升级部分 | ||
1237 | + * | ||
1238 | + * | ||
1239 | +*******************************************************************************************************************/ | ||
1240 | +/************* | ||
1241 | + * | ||
1242 | + * 回复准备升级 | ||
1243 | + * | ||
1244 | + * **************/ | ||
1245 | +T_JZsdkReturnCode HalSend_type1Send_Reply_ReadyForUpdate(int Uartport, int Mode) | ||
1246 | +{ | ||
1247 | + printf("发送回复准备升级\n"); | ||
1248 | + | ||
1249 | + unsigned char sendbuf[256]; | ||
1250 | + int send_buf_len; | ||
1251 | + | ||
1252 | + //1、获取帧样板 | ||
1253 | + JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_UPGRADE_PERPARE, sendbuf, &send_buf_len); | ||
1254 | + | ||
1255 | + sendbuf[9] = Mode; | ||
1256 | + | ||
1257 | + //2、发送帧 | ||
1258 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, SINGLE_THREAD_SEND); | ||
1259 | +} | ||
1260 | + | ||
1261 | +/************* | ||
1262 | + * | ||
1263 | + * 回复校验激活码已收到 | ||
1264 | + * | ||
1265 | + * **************/ | ||
1266 | +T_JZsdkReturnCode HalSend_type1Send_Reply_UpgradeHaveRecvCheckCode(int Uartport, int Mode) | ||
1267 | +{ | ||
1268 | + printf("回复校验激活码已收到\n"); | ||
1269 | + | ||
1270 | + unsigned char sendbuf[256]; | ||
1271 | + int send_buf_len; | ||
1272 | + | ||
1273 | + //1、获取帧样板 | ||
1274 | + JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_UPGRADE_SEND_CHECKCODE, sendbuf, &send_buf_len); | ||
1275 | + | ||
1276 | + sendbuf[9] = Mode; | ||
1277 | + | ||
1278 | + //2、发送帧 | ||
1279 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, SINGLE_THREAD_SEND); | ||
1280 | +} | ||
1281 | + | ||
1282 | +/************* | ||
1283 | + * | ||
1284 | + * 回复升级传输已开启 | ||
1285 | + * | ||
1286 | + * **************/ | ||
1287 | +T_JZsdkReturnCode HalSend_type1Send_Reply_UpgradeStart(int Uartport) | ||
1288 | +{ | ||
1289 | + printf("回复升级传输已开启\n"); | ||
1290 | + | ||
1291 | + unsigned char sendbuf[256]; | ||
1292 | + int send_buf_len; | ||
1293 | + | ||
1294 | + //1、获取帧样板 | ||
1295 | + JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_UPGRADE_STRAT, sendbuf, &send_buf_len); | ||
1296 | + | ||
1297 | + //2、发送帧 | ||
1298 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, SINGLE_THREAD_SEND); | ||
1299 | +} | ||
1300 | + | ||
1301 | +/************* | ||
1302 | + * | ||
1303 | + * 回复升级传输已结束 | ||
1304 | + * | ||
1305 | + * **************/ | ||
1306 | +T_JZsdkReturnCode HalSend_type1Send_Reply_UpgradeEnd(int Uartport) | ||
1307 | +{ | ||
1308 | + printf("回复升级传输已结束\n"); | ||
1309 | + | ||
1310 | + unsigned char sendbuf[256]; | ||
1311 | + int send_buf_len; | ||
1312 | + | ||
1313 | + //1、获取帧样板 | ||
1314 | + JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_UPGRADE_END, sendbuf, &send_buf_len); | ||
1315 | + | ||
1316 | + //2、发送帧 | ||
1317 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, SINGLE_THREAD_SEND); | ||
1318 | +} | ||
1319 | + | ||
1320 | +/************* | ||
1321 | + * | ||
1322 | + * 回复升级校验结果 | ||
1323 | + * | ||
1324 | + * **************/ | ||
1325 | +T_JZsdkReturnCode HalSend_type1Send_Reply_UpgradeCheckResult(int Uartport, int status) | ||
1326 | +{ | ||
1327 | + printf("回复升级校验结果\n"); | ||
1328 | + | ||
1329 | + unsigned char sendbuf[256]; | ||
1330 | + int send_buf_len; | ||
1331 | + | ||
1332 | + //1、获取帧样板 | ||
1333 | + JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_UPGRADE_CHECKRESULT, sendbuf, &send_buf_len); | ||
1334 | + | ||
1335 | + sendbuf[9] = status; | ||
1336 | + | ||
1337 | + //2、发送帧 | ||
1338 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, SINGLE_THREAD_SEND); | ||
1115 | } | 1339 | } |
1116 | 1340 | ||
1117 | /**************************************************************************************************************************************************** | 1341 | /**************************************************************************************************************************************************** |
@@ -1139,7 +1363,7 @@ T_JZsdkReturnCode HalSend_type1Send_Set_WarningLight_Status(int Uartport,int sta | @@ -1139,7 +1363,7 @@ T_JZsdkReturnCode HalSend_type1Send_Set_WarningLight_Status(int Uartport,int sta | ||
1139 | sendbuf[10] = mode; | 1363 | sendbuf[10] = mode; |
1140 | 1364 | ||
1141 | //3、发送帧 | 1365 | //3、发送帧 |
1142 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 1366 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
1143 | } | 1367 | } |
1144 | 1368 | ||
1145 | /************* | 1369 | /************* |
@@ -1162,7 +1386,7 @@ T_JZsdkReturnCode HalSend_type1Send_Set_WarningLight_Color(int Uartport,int colo | @@ -1162,7 +1386,7 @@ T_JZsdkReturnCode HalSend_type1Send_Set_WarningLight_Color(int Uartport,int colo | ||
1162 | sendbuf[10] = color2; | 1386 | sendbuf[10] = color2; |
1163 | 1387 | ||
1164 | //3、发送帧 | 1388 | //3、发送帧 |
1165 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 1389 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
1166 | } | 1390 | } |
1167 | 1391 | ||
1168 | //查询警灯状态 | 1392 | //查询警灯状态 |
@@ -1177,7 +1401,7 @@ T_JZsdkReturnCode HalSend_type1Send_CheckStatus_WarningLightStatus(int Uartport) | @@ -1177,7 +1401,7 @@ T_JZsdkReturnCode HalSend_type1Send_CheckStatus_WarningLightStatus(int Uartport) | ||
1177 | JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_CHECKSTATUS_WARNINGLIGHT_STATUS, sendbuf, &send_buf_len); | 1401 | JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_CHECKSTATUS_WARNINGLIGHT_STATUS, sendbuf, &send_buf_len); |
1178 | 1402 | ||
1179 | //2、发送帧 | 1403 | //2、发送帧 |
1180 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 1404 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
1181 | } | 1405 | } |
1182 | 1406 | ||
1183 | //查询警灯颜色 | 1407 | //查询警灯颜色 |
@@ -1192,7 +1416,7 @@ T_JZsdkReturnCode HalSend_type1Send_CheckStatus_WarningLightColor(int Uartport) | @@ -1192,7 +1416,7 @@ T_JZsdkReturnCode HalSend_type1Send_CheckStatus_WarningLightColor(int Uartport) | ||
1192 | JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_CHECKSTATUS_WARNINGLIGHT_COLOR, sendbuf, &send_buf_len); | 1416 | JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_CHECKSTATUS_WARNINGLIGHT_COLOR, sendbuf, &send_buf_len); |
1193 | 1417 | ||
1194 | //2、发送帧 | 1418 | //2、发送帧 |
1195 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 1419 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
1196 | } | 1420 | } |
1197 | 1421 | ||
1198 | /**************************************************************************************************************************************************** | 1422 | /**************************************************************************************************************************************************** |
@@ -1220,7 +1444,7 @@ T_JZsdkReturnCode HalSend_type1Send_SearchLight_Frequency(int Uartport, int Freq | @@ -1220,7 +1444,7 @@ T_JZsdkReturnCode HalSend_type1Send_SearchLight_Frequency(int Uartport, int Freq | ||
1220 | sendbuf[10] = Frequency; | 1444 | sendbuf[10] = Frequency; |
1221 | 1445 | ||
1222 | //3、发送帧 | 1446 | //3、发送帧 |
1223 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 1447 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
1224 | } | 1448 | } |
1225 | 1449 | ||
1226 | /************* | 1450 | /************* |
@@ -1242,7 +1466,7 @@ T_JZsdkReturnCode HalSend_type1Send_SearchLight_Mode(int Uartport, int mode) | @@ -1242,7 +1466,7 @@ T_JZsdkReturnCode HalSend_type1Send_SearchLight_Mode(int Uartport, int mode) | ||
1242 | sendbuf[10] = mode; | 1466 | sendbuf[10] = mode; |
1243 | 1467 | ||
1244 | //3、发送帧 | 1468 | //3、发送帧 |
1245 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 1469 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
1246 | } | 1470 | } |
1247 | 1471 | ||
1248 | /************* | 1472 | /************* |
@@ -1265,7 +1489,7 @@ T_JZsdkReturnCode HalSend_type1Send_SearchLight_Lumen(int Uartport,int LeftLumen | @@ -1265,7 +1489,7 @@ T_JZsdkReturnCode HalSend_type1Send_SearchLight_Lumen(int Uartport,int LeftLumen | ||
1265 | sendbuf[10] = RightLumen; | 1489 | sendbuf[10] = RightLumen; |
1266 | 1490 | ||
1267 | //3、发送帧 | 1491 | //3、发送帧 |
1268 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 1492 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
1269 | } | 1493 | } |
1270 | 1494 | ||
1271 | /************* | 1495 | /************* |
@@ -1288,7 +1512,7 @@ T_JZsdkReturnCode HalSend_type1Send_SearchLight_Temperature(int Uartport, int Le | @@ -1288,7 +1512,7 @@ T_JZsdkReturnCode HalSend_type1Send_SearchLight_Temperature(int Uartport, int Le | ||
1288 | sendbuf[10] = RightTemperature; | 1512 | sendbuf[10] = RightTemperature; |
1289 | 1513 | ||
1290 | //3、发送帧 | 1514 | //3、发送帧 |
1291 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 1515 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
1292 | } | 1516 | } |
1293 | 1517 | ||
1294 | 1518 | ||
@@ -1312,7 +1536,7 @@ T_JZsdkReturnCode HalSend_type1Send_WarningLight_Status(int Uartport, int status | @@ -1312,7 +1536,7 @@ T_JZsdkReturnCode HalSend_type1Send_WarningLight_Status(int Uartport, int status | ||
1312 | sendbuf[10] = mode; | 1536 | sendbuf[10] = mode; |
1313 | 1537 | ||
1314 | //3、发送帧 | 1538 | //3、发送帧 |
1315 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1);} | 1539 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND);} |
1316 | 1540 | ||
1317 | /************* | 1541 | /************* |
1318 | * | 1542 | * |
@@ -1334,7 +1558,7 @@ T_JZsdkReturnCode HalSend_type1Send_WarningLight_Color(int Uartport, int color1, | @@ -1334,7 +1558,7 @@ T_JZsdkReturnCode HalSend_type1Send_WarningLight_Color(int Uartport, int color1, | ||
1334 | sendbuf[10] = color2; | 1558 | sendbuf[10] = color2; |
1335 | 1559 | ||
1336 | //3、发送帧 | 1560 | //3、发送帧 |
1337 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 1561 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
1338 | } | 1562 | } |
1339 | 1563 | ||
1340 | /************* | 1564 | /************* |
@@ -1356,7 +1580,7 @@ T_JZsdkReturnCode HalSend_type1Send_OutputPowerStatus(int Uartport, int FrameSeq | @@ -1356,7 +1580,7 @@ T_JZsdkReturnCode HalSend_type1Send_OutputPowerStatus(int Uartport, int FrameSeq | ||
1356 | sendbuf[9] = status; | 1580 | sendbuf[9] = status; |
1357 | 1581 | ||
1358 | //3、发送帧 | 1582 | //3、发送帧 |
1359 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 1583 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
1360 | } | 1584 | } |
1361 | 1585 | ||
1362 | /**************************************************************************************************************************************************** | 1586 | /**************************************************************************************************************************************************** |
@@ -1380,5 +1604,5 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_CheckSpecialParameters(int Uartport,in | @@ -1380,5 +1604,5 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_CheckSpecialParameters(int Uartport,in | ||
1380 | sendbuf[10] = value; | 1604 | sendbuf[10] = value; |
1381 | 1605 | ||
1382 | //3、发送帧 | 1606 | //3、发送帧 |
1383 | - HalSend_SendData(Uartport ,sendbuf, send_buf_len, 1); | 1607 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
1384 | } | 1608 | } |
@@ -60,6 +60,11 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_MusicName(int Uartport ,char *music_na | @@ -60,6 +60,11 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_MusicName(int Uartport ,char *music_na | ||
60 | T_JZsdkReturnCode HalSend_type1Send_Reply_Volume(int Uartport ,int num); | 60 | T_JZsdkReturnCode HalSend_type1Send_Reply_Volume(int Uartport ,int num); |
61 | T_JZsdkReturnCode HalSend_type1Send_OpusDecodeStatus(int Uartport,int value); | 61 | T_JZsdkReturnCode HalSend_type1Send_OpusDecodeStatus(int Uartport,int value); |
62 | 62 | ||
63 | +T_JZsdkReturnCode HalSend_type1Send_Send_OpusList_Start(int Uartport, int FrameSequence, int music_sum); | ||
64 | +T_JZsdkReturnCode HalSend_type1Send_Send_OpusList_Trans(int Uartport, int FrameSequence, unsigned char *name, unsigned int namelen, unsigned int Filesize, unsigned int Time); | ||
65 | +T_JZsdkReturnCode HalSend_type1Send_Send_OpusList_Stop(int Uartport, int FrameSequence); | ||
66 | + | ||
67 | + | ||
63 | T_JZsdkReturnCode HalSend_type1Send_Reply_GimbalPitchAngle(int Uartport ,int angle); | 68 | T_JZsdkReturnCode HalSend_type1Send_Reply_GimbalPitchAngle(int Uartport ,int angle); |
64 | T_JZsdkReturnCode HalSend_type1Send_Set_GimbalPitchAngle(int Uartport ,int angle); | 69 | T_JZsdkReturnCode HalSend_type1Send_Set_GimbalPitchAngle(int Uartport ,int angle); |
65 | T_JZsdkReturnCode HalSend_type1Send_Reply_GimbalFineTuningPitch(int Uartport, int FrameSequence, int FineTunigPitch); | 70 | T_JZsdkReturnCode HalSend_type1Send_Reply_GimbalFineTuningPitch(int Uartport, int FrameSequence, int FineTunigPitch); |
@@ -76,6 +81,9 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_SoftVersion(int Uartport ,char majorVe | @@ -76,6 +81,9 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_SoftVersion(int Uartport ,char majorVe | ||
76 | T_JZsdkReturnCode HalSend_type1Send_Reply_LoopPlayStatus(int Uartport ,int status); | 81 | T_JZsdkReturnCode HalSend_type1Send_Reply_LoopPlayStatus(int Uartport ,int status); |
77 | T_JZsdkReturnCode HalSend_type1Send_Reply_TTS_tone(int Uartport ,int tone); | 82 | T_JZsdkReturnCode HalSend_type1Send_Reply_TTS_tone(int Uartport ,int tone); |
78 | T_JZsdkReturnCode HalSend_type1Send_Reply_TTS_speed(int Uartport ,int speed); | 83 | T_JZsdkReturnCode HalSend_type1Send_Reply_TTS_speed(int Uartport ,int speed); |
84 | +T_JZsdkReturnCode HalSend_type1Send_Reply_CurrentPlayTime(int Uartport ,int time); | ||
85 | +T_JZsdkReturnCode HalSend_type1Send_Reply_CurrentPlayTimeStatus(int Uartport ,int mode); | ||
86 | + | ||
79 | 87 | ||
80 | T_JZsdkReturnCode HalSend_type1Send_Set_SearchLightFrequency(int Uartport ,int Frequency); | 88 | T_JZsdkReturnCode HalSend_type1Send_Set_SearchLightFrequency(int Uartport ,int Frequency); |
81 | T_JZsdkReturnCode HalSend_type1Send_SearchLight_Control(int Uartport,int mode); | 89 | T_JZsdkReturnCode HalSend_type1Send_SearchLight_Control(int Uartport,int mode); |
@@ -115,6 +123,15 @@ T_JZsdkReturnCode HalSend_type1Send_CheckStatus_WarningLightColor(int Uartport); | @@ -115,6 +123,15 @@ T_JZsdkReturnCode HalSend_type1Send_CheckStatus_WarningLightColor(int Uartport); | ||
115 | T_JZsdkReturnCode HalSend_type1Send_OutputPowerStatus(int Uartport, int FrameSequence, int status); | 123 | T_JZsdkReturnCode HalSend_type1Send_OutputPowerStatus(int Uartport, int FrameSequence, int status); |
116 | 124 | ||
117 | 125 | ||
126 | +T_JZsdkReturnCode HalSend_type1Send_Reply_ReadyForUpdate(int Uartport, int Mode); | ||
127 | +T_JZsdkReturnCode HalSend_type1Send_Reply_UpgradeHaveRecvCheckCode(int Uartport, int Mode); | ||
128 | +T_JZsdkReturnCode HalSend_type1Send_Reply_UpgradeStart(int Uartport); | ||
129 | +T_JZsdkReturnCode HalSend_type1Send_Reply_UpgradeEnd(int Uartport); | ||
130 | +T_JZsdkReturnCode HalSend_type1Send_Reply_UpgradeCheckResult(int Uartport, int status); | ||
131 | + | ||
132 | + | ||
133 | + | ||
134 | + | ||
118 | /* Exported functions --------------------------------------------------------*/ | 135 | /* Exported functions --------------------------------------------------------*/ |
119 | 136 | ||
120 | #ifdef __cplusplus | 137 | #ifdef __cplusplus |
@@ -8,148 +8,218 @@ | @@ -8,148 +8,218 @@ | ||
8 | 8 | ||
9 | #include "JZsdk_uart/JZsdk_Uart.h" | 9 | #include "JZsdk_uart/JZsdk_Uart.h" |
10 | 10 | ||
11 | -/****************** | ||
12 | - * | ||
13 | - * 用来记录端口使用情况的结构体 | ||
14 | - * JZ_FLAGCODE_OFF 关闭 | ||
15 | - * JZ_FLAGCODE_ON 开启 | ||
16 | - * ********************/ | ||
17 | -typedef struct s_JZsdk_Hal_PortUseFlag | ||
18 | -{ | ||
19 | - int UartDev_DEV1 ; | ||
20 | - int UartDev_DEV2 ; | ||
21 | - int UartDev_DEV3 ; | ||
22 | - int UartDev_DEV4 ; | ||
23 | - int UartDev_4G ; | ||
24 | - int Data_Dransmisson; | ||
25 | -}s_JZsdk_Hal_PortUseFlag; | 11 | +static s_JZsdk_Hal_Info *g_HalInfo = NULL; |
26 | 12 | ||
27 | -static s_JZsdk_Hal_PortUseFlag g_PortUseFlag = {JZ_FLAGCODE_OFF}; | 13 | +s_JZsdk_Hal_Info *JZsdk_Hal_GetHalInfo() |
14 | +{ | ||
15 | + return g_HalInfo; | ||
16 | +} | ||
28 | 17 | ||
29 | -/************** | ||
30 | - * | ||
31 | - * jzsdk hal的端口使用标志位 | ||
32 | - * | ||
33 | - * | ||
34 | - * *********************/ | ||
35 | -int JZsdk_HalPort_UseFlag(int PortName) | 18 | +T_JZsdkReturnCode JZsdk_Hal_Init() |
36 | { | 19 | { |
37 | - if (PortName == UART_DEV_1) | 20 | + T_JZsdkOsalHandler *pOsalHandler = JZsdk_Platform_GetOsalHandler(); |
21 | + | ||
22 | + if (g_HalInfo == NULL) | ||
38 | { | 23 | { |
39 | - return g_PortUseFlag.UartDev_DEV1; | 24 | + g_HalInfo = pOsalHandler->Malloc(sizeof(s_JZsdk_Hal_Info)); |
40 | } | 25 | } |
41 | - else if (PortName == UART_DEV_2) | 26 | + |
27 | + //PSDK系列初始化 | ||
28 | + for (int i = DEVICE_PSDK; i < UART_4G; i++) | ||
42 | { | 29 | { |
43 | - return g_PortUseFlag.UartDev_DEV2; | 30 | + g_HalInfo->HalPort[i].UseFlag = JZ_FLAGCODE_OFF; |
31 | + g_HalInfo->HalPort[i].ConnectStatus = JZ_FLAGCODE_OFF; | ||
32 | + g_HalInfo->HalPort[i].HeartBeatStatusSend = JZ_FLAGCODE_OFF; | ||
33 | + g_HalInfo->HalPort[i].PortType = PORT_TYPE_PSDK; | ||
44 | } | 34 | } |
45 | - else if (PortName == UART_DEV_3) | 35 | + |
36 | + //UART系列初始化 | ||
37 | + for (int i = UART_4G; i < USB_DEV_1; i++) | ||
46 | { | 38 | { |
47 | - return g_PortUseFlag.UartDev_DEV3; | 39 | + g_HalInfo->HalPort[i].UseFlag = JZ_FLAGCODE_OFF; |
40 | + g_HalInfo->HalPort[i].ConnectStatus = JZ_FLAGCODE_OFF; | ||
41 | + g_HalInfo->HalPort[i].HeartBeatStatusSend = JZ_FLAGCODE_OFF; | ||
42 | + g_HalInfo->HalPort[i].PortType = PORT_TYPE_UART; | ||
48 | } | 43 | } |
49 | - else if (PortName == UART_DEV_4) | 44 | + |
45 | + //USB系列初始化 | ||
46 | + for (int i = USB_DEV_1; i < NET_DEV_1; i++) | ||
50 | { | 47 | { |
51 | - return g_PortUseFlag.UartDev_DEV4; | 48 | + g_HalInfo->HalPort[i].UseFlag = JZ_FLAGCODE_OFF; |
49 | + g_HalInfo->HalPort[i].ConnectStatus = JZ_FLAGCODE_OFF; | ||
50 | + g_HalInfo->HalPort[i].HeartBeatStatusSend = JZ_FLAGCODE_OFF; | ||
51 | + g_HalInfo->HalPort[i].PortType = PORT_TYPE_USB; | ||
52 | } | 52 | } |
53 | - else if (PortName == UART_4G) | 53 | + |
54 | + //网口系列初始化 | ||
55 | + for (int i = NET_DEV_1; i < HAL_DATA_TRANSMISSION; i++) | ||
54 | { | 56 | { |
55 | - return g_PortUseFlag.UartDev_4G; | 57 | + g_HalInfo->HalPort[i].UseFlag = JZ_FLAGCODE_OFF; |
58 | + g_HalInfo->HalPort[i].ConnectStatus = JZ_FLAGCODE_OFF; | ||
59 | + g_HalInfo->HalPort[i].HeartBeatStatusSend = JZ_FLAGCODE_OFF; | ||
60 | + g_HalInfo->HalPort[i].PortType = PORT_TYPE_NET; | ||
56 | } | 61 | } |
57 | - else if (PortName == HAL_DATA_TRANSMISSION) | 62 | + |
63 | + //特殊数据层 | ||
64 | + for (int i = HAL_DATA_TRANSMISSION; i < HAL_MAX; i++) | ||
58 | { | 65 | { |
59 | - return g_PortUseFlag.Data_Dransmisson; | 66 | + g_HalInfo->HalPort[i].UseFlag = JZ_FLAGCODE_OFF; |
67 | + g_HalInfo->HalPort[i].ConnectStatus = JZ_FLAGCODE_OFF; | ||
68 | + g_HalInfo->HalPort[i].HeartBeatStatusSend = JZ_FLAGCODE_OFF; | ||
69 | + g_HalInfo->HalPort[i].PortType = PORT_TYPE_TRANS_DATA; | ||
60 | } | 70 | } |
71 | + | ||
72 | + JZSDK_LOG_INFO("JZsdk_Hal_Init Success"); | ||
73 | + | ||
74 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
75 | +} | ||
76 | + | ||
77 | + | ||
78 | +/************** | ||
79 | + * | ||
80 | + * jzsdk 获取hal的端口使用标志位 | ||
81 | + * | ||
82 | + * *********************/ | ||
83 | +int JZsdk_HalPort_UseFlag(int PortName) | ||
84 | +{ | ||
85 | + return g_HalInfo->HalPort[PortName].UseFlag; | ||
61 | } | 86 | } |
62 | 87 | ||
88 | + | ||
63 | T_JZsdkReturnCode JZsdk_HalPort_SetUseFlag(int PortName,int UseFlag) | 89 | T_JZsdkReturnCode JZsdk_HalPort_SetUseFlag(int PortName,int UseFlag) |
64 | { | 90 | { |
65 | - if (PortName == UART_DEV_1) | 91 | + g_HalInfo->HalPort[PortName].UseFlag = UseFlag; |
92 | + | ||
93 | + //将端口添加到已使用端口列表中 或从端口中移除 | ||
94 | + | ||
95 | + //如果是要添加进列表中 | ||
96 | + if (UseFlag == JZ_FLAGCODE_ON) | ||
66 | { | 97 | { |
67 | - g_PortUseFlag.UartDev_DEV1 = UseFlag; | ||
68 | - } | ||
69 | - else if (PortName == UART_DEV_2) | 98 | + //先检查列表中是否已经存在 |
99 | + for (int i = 0; i < g_HalInfo->HaveUsePortNum; i++) | ||
70 | { | 100 | { |
71 | - g_PortUseFlag.UartDev_DEV2 = UseFlag; | ||
72 | - } | ||
73 | - else if (PortName == UART_DEV_3) | 101 | + if (g_HalInfo->HaveUsePort[i] == PortName) |
74 | { | 102 | { |
75 | - g_PortUseFlag.UartDev_DEV3 = UseFlag; | 103 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
76 | } | 104 | } |
77 | - else if (PortName == UART_DEV_4) | ||
78 | - { | ||
79 | - g_PortUseFlag.UartDev_DEV4 = UseFlag; | ||
80 | } | 105 | } |
81 | - else if (PortName == UART_4G) | ||
82 | - { | ||
83 | - g_PortUseFlag.UartDev_4G = UseFlag; | 106 | + |
107 | + //如果不存在,则添加 | ||
108 | + g_HalInfo->HaveUsePort[g_HalInfo->HaveUsePortNum] = PortName; | ||
109 | + g_HalInfo->HaveUsePortNum++; | ||
110 | + g_HalInfo->HalPort[PortName].UseFlag = JZ_FLAGCODE_ON; | ||
84 | } | 111 | } |
85 | - else if (PortName == HAL_DATA_TRANSMISSION) | 112 | + |
113 | + //如果是要从列表中移除 | ||
114 | + else if (UseFlag == JZ_FLAGCODE_OFF) | ||
86 | { | 115 | { |
87 | - g_PortUseFlag.Data_Dransmisson = UseFlag; | ||
88 | - } | ||
89 | - else | 116 | + //先检查列表中是否已经存在 |
117 | + for (int i = 0; i < g_HalInfo->HaveUsePortNum; i++) | ||
118 | + { | ||
119 | + if (g_HalInfo->HaveUsePort[i] == PortName) | ||
90 | { | 120 | { |
91 | - return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | 121 | + g_HalInfo->HaveUsePort[i] = g_HalInfo->HaveUsePort[g_HalInfo->HaveUsePortNum - 1]; |
122 | + g_HalInfo->HaveUsePortNum--; | ||
123 | + g_HalInfo->HalPort[PortName].UseFlag = JZ_FLAGCODE_OFF; | ||
124 | + g_HalInfo->HalPort[PortName].ConnectStatus = JZ_FLAGCODE_OFF; | ||
125 | + g_HalInfo->HalPort[PortName].HeartBeatStatusSend = JZ_FLAGCODE_OFF; | ||
126 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
127 | + } | ||
128 | + } | ||
129 | + | ||
130 | + //如果本来就不存在,则直接返回 | ||
131 | + JZSDK_LOG_INFO("hal口:%s,本来就未使用,无需移除", JZsdk_DefineCode_GetPortName(PortName)); | ||
132 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
92 | } | 133 | } |
93 | 134 | ||
94 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 135 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
95 | } | 136 | } |
96 | 137 | ||
138 | +//用于给初始化函数调用 | ||
139 | +static T_JZsdkReturnCode JZsdK_HalPort_Init_Info(int PortName, int UseFlag | ||
140 | + , int ConnectStatus, int HeartBeatStatusSend, int PortType) | ||
141 | +{ | ||
142 | + g_HalInfo->HalPort[PortName].UseFlag = UseFlag; | ||
143 | + g_HalInfo->HalPort[PortName].ConnectStatus = ConnectStatus; | ||
144 | + g_HalInfo->HalPort[PortName].HeartBeatStatusSend = HeartBeatStatusSend; | ||
145 | + g_HalInfo->HalPort[PortName].PortType = PortType; | ||
146 | + | ||
147 | + //记录端口 | ||
148 | + JZsdk_HalPort_SetUseFlag(PortName, JZ_FLAGCODE_ON); | ||
149 | + | ||
150 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
151 | +} | ||
152 | + | ||
97 | /********************** | 153 | /********************** |
98 | * | 154 | * |
99 | - * hal端口 重初始化函数 | ||
100 | - * | 155 | + * hal端口 初始化函数 |
156 | + * psdk初始化 value为NULL | ||
157 | + * uart初始化 value[0]为波特率 | ||
101 | * | 158 | * |
102 | * ******************/ | 159 | * ******************/ |
103 | -T_JZsdkReturnCode JZsdk_HalPort_ReInit(int PortName, int Value[]) | 160 | +T_JZsdkReturnCode JZsdk_HalPort_Init(int PortName, int Value[]) |
104 | { | 161 | { |
105 | - switch (PortName) | ||
106 | - { | ||
107 | - case UART_DEV_1: | ||
108 | - JZsdk_Uart_ReInit(PortName, Value[0]); | ||
109 | - break; | 162 | + T_JZsdkReturnCode ret; |
110 | 163 | ||
111 | - case UART_DEV_2: | ||
112 | - JZsdk_Uart_ReInit(PortName, Value[0]); | ||
113 | - break; | 164 | + //psdk初始化 |
165 | + if (PortName >= DEVICE_PSDK && PortName < UART_4G) | ||
166 | + { | ||
167 | + JZsdK_HalPort_Init_Info(PortName, JZ_FLAGCODE_ON, JZ_FLAGCODE_OFF, JZ_FLAGCODE_OFF, PORT_TYPE_PSDK); | ||
114 | 168 | ||
115 | - case UART_DEV_3: | ||
116 | - JZsdk_Uart_ReInit(PortName, Value[0]); | ||
117 | - break; | 169 | + JZSDK_LOG_INFO("hal%s 初始化",JZsdk_DefineCode_GetPortName(PortName)); |
118 | 170 | ||
119 | - case UART_DEV_4: | ||
120 | - JZsdk_Uart_ReInit(PortName, Value[0]); | ||
121 | - break; | 171 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
172 | + } | ||
122 | 173 | ||
123 | - case UART_4G: | ||
124 | - JZsdk_Uart_ReInit(PortName, Value[0]); | ||
125 | - break; | 174 | + //uart初始化 |
175 | + if (PortName >= UART_4G && PortName < USB_DEV_1) | ||
176 | + { | ||
177 | + JZSDK_LOG_INFO("hal%s 初始化",JZsdk_DefineCode_GetPortName(PortName)); | ||
126 | 178 | ||
127 | - default: | ||
128 | - break; | 179 | + ret = JZsdk_Uart_ReInit(PortName, Value[0]); |
180 | + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
181 | + { | ||
182 | + JZSDK_LOG_ERROR("hal%s 初始化失败",JZsdk_DefineCode_GetPortName(PortName)); | ||
183 | + return ret; | ||
129 | } | 184 | } |
130 | -} | ||
131 | 185 | ||
132 | -/********************** | ||
133 | - * | ||
134 | - * hal端口 使用默认参数初始化函数 | ||
135 | - * | ||
136 | - * ******************/ | ||
137 | -T_JZsdkReturnCode JZsdk_HalPort_Init_WithDefault(int PortName) | ||
138 | -{ | ||
139 | - int value[5] = {0, 0, 0, 0, 0}; | 186 | + JZsdK_HalPort_Init_Info(PortName, JZ_FLAGCODE_ON, JZ_FLAGCODE_OFF, JZ_FLAGCODE_OFF, PORT_TYPE_UART); |
140 | 187 | ||
141 | - if (PortName == UART_DEV_1) | 188 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
189 | + } | ||
190 | + | ||
191 | + //usb初始化 | ||
192 | + if (PortName >= USB_DEV_1 && PortName < NET_DEV_1) | ||
142 | { | 193 | { |
143 | - value[0] = UART_DEV1_BITRATE; | 194 | + //还没做 |
144 | } | 195 | } |
145 | - else if (PortName == UART_DEV_2) | 196 | + |
197 | + //net初始化 | ||
198 | + if (PortName >= NET_DEV_1 && PortName < HAL_DATA_TRANSMISSION) | ||
146 | { | 199 | { |
147 | - value[0] = UART_DEV2_BITRATE; | 200 | + //还没做 |
148 | } | 201 | } |
149 | - else if (PortName == UART_4G) | 202 | + |
203 | + //数据传输初始化 | ||
204 | + if (PortName == HAL_DATA_TRANSMISSION) | ||
150 | { | 205 | { |
151 | - value[0] = COMM_4G_UART_BITRATE; | 206 | + JZsdK_HalPort_Init_Info(PortName, JZ_FLAGCODE_ON, JZ_FLAGCODE_OFF, JZ_FLAGCODE_OFF, PORT_TYPE_TRANS_DATA); |
207 | + | ||
208 | + JZSDK_LOG_INFO("hal%s 初始化",JZsdk_DefineCode_GetPortName(PortName)); | ||
152 | } | 209 | } |
153 | 210 | ||
154 | - return JZsdk_HalPort_ReInit(PortName, value); | 211 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
212 | +} | ||
213 | + | ||
214 | + | ||
215 | +/************************ | ||
216 | + * | ||
217 | + * HalRort Reinit | ||
218 | + * 专门用于已经初始化完毕端口 | ||
219 | + * 与init的区别是, Reinit 是要调用多线程来重初始化的 | ||
220 | + * | ||
221 | + * ***************************/ | ||
222 | +T_JZsdkReturnCode JZsdk_HalPort_ReInit(int PortName, int Value[]) | ||
223 | +{ | ||
224 | + return JZsdk_HalPort_Init(PortName, Value); | ||
155 | } | 225 | } |
@@ -25,14 +25,52 @@ extern "C" { | @@ -25,14 +25,52 @@ extern "C" { | ||
25 | /* Exported constants --------------------------------------------------------*/ | 25 | /* Exported constants --------------------------------------------------------*/ |
26 | /* 常亮定义*/ | 26 | /* 常亮定义*/ |
27 | 27 | ||
28 | +typedef enum E_HAL_PORT_TYPE | ||
29 | +{ | ||
30 | + PORT_TYPE_PSDK = 0, | ||
31 | + PORT_TYPE_UART = 1, | ||
32 | + PORT_TYPE_USB = 2, | ||
33 | + PORT_TYPE_NET = 3, | ||
34 | + | ||
35 | + PORT_TYPE_TRANS_DATA = 4, | ||
36 | +}E_HAL_PORT_TYPE; | ||
37 | + | ||
38 | +/****************** | ||
39 | + * | ||
40 | + * hal使用状态 | ||
41 | + * | ||
42 | + * | ||
43 | + * | ||
44 | + * ********/ | ||
45 | +typedef struct s_JZsdk_HalStatus | ||
46 | +{ | ||
47 | + int UseFlag; //hal使用标志位 //初始化时开关关闭 | ||
48 | + int ConnectStatus; //接收过连接帧后打开 | ||
49 | + int HeartBeatStatusSend; //心跳帧的发送开关 | ||
50 | + int PortType; | ||
51 | + | ||
52 | +}s_JZsdk_HalStatus; | ||
53 | + | ||
54 | +typedef struct s_JZsdk_Hal_Info | ||
55 | +{ | ||
56 | + s_JZsdk_HalStatus HalPort[255]; //记录hal使用的端口状态 | ||
57 | + int HaveUsePort[255]; //记录已经使用的端口 | ||
58 | + int HaveUsePortNum; //记录已经使用的端口数量 | ||
59 | + | ||
60 | +}s_JZsdk_Hal_Info; | ||
61 | + | ||
28 | /* Exported types ------------------------------------------------------------*/ | 62 | /* Exported types ------------------------------------------------------------*/ |
29 | 63 | ||
30 | /* Exported functions --------------------------------------------------------*/ | 64 | /* Exported functions --------------------------------------------------------*/ |
31 | int JZsdk_HalPort_UseFlag(int PortName); | 65 | int JZsdk_HalPort_UseFlag(int PortName); |
32 | T_JZsdkReturnCode JZsdk_HalPort_SetUseFlag(int PortName,int UseFlag); | 66 | T_JZsdkReturnCode JZsdk_HalPort_SetUseFlag(int PortName,int UseFlag); |
67 | + | ||
68 | +T_JZsdkReturnCode JZsdk_HalPort_Init(int PortName, int Value[]); | ||
33 | T_JZsdkReturnCode JZsdk_HalPort_ReInit(int PortName, int Value[]); | 69 | T_JZsdkReturnCode JZsdk_HalPort_ReInit(int PortName, int Value[]); |
34 | -T_JZsdkReturnCode JZsdk_HalPort_Init_WithDefault(int PortName); | ||
35 | 70 | ||
71 | +T_JZsdkReturnCode JZsdk_Hal_Init(); | ||
72 | + | ||
73 | +s_JZsdk_Hal_Info *JZsdk_Hal_GetHalInfo(); | ||
36 | 74 | ||
37 | #ifdef __cplusplus | 75 | #ifdef __cplusplus |
38 | } | 76 | } |
@@ -13,6 +13,28 @@ | @@ -13,6 +13,28 @@ | ||
13 | #include "JZsdk_uart/JZsdk_Uart_UartDeal.h" | 13 | #include "JZsdk_uart/JZsdk_Uart_UartDeal.h" |
14 | #include "JZsdk_Hal.h" | 14 | #include "JZsdk_Hal.h" |
15 | 15 | ||
16 | +static unsigned char *Get_UartDevPath(int UartDev) | ||
17 | +{ | ||
18 | + switch (UartDev) | ||
19 | + { | ||
20 | + case UART_4G: | ||
21 | + return COMM_4G_UART_NUM; | ||
22 | + break; | ||
23 | + | ||
24 | + case UART_DEV_1: | ||
25 | + return UART_DEV1_NUM; | ||
26 | + break; | ||
27 | + | ||
28 | + case UART_DEV_2: | ||
29 | + return UART_DEV2_NUM; | ||
30 | + break; | ||
31 | + | ||
32 | + default: | ||
33 | + return NULL; | ||
34 | + break; | ||
35 | + } | ||
36 | +} | ||
37 | + | ||
16 | /******************** | 38 | /******************** |
17 | * | 39 | * |
18 | * | 40 | * |
@@ -110,12 +132,8 @@ T_JZsdkReturnCode JZsdk_Uart_UartEnabled(unsigned char *UartDev, unsigned int Bi | @@ -110,12 +132,8 @@ T_JZsdkReturnCode JZsdk_Uart_UartEnabled(unsigned char *UartDev, unsigned int Bi | ||
110 | 132 | ||
111 | /**************** | 133 | /**************** |
112 | * | 134 | * |
113 | - * | ||
114 | - * | ||
115 | * 串口重初始化 | 135 | * 串口重初始化 |
116 | - * | ||
117 | - * | ||
118 | - * | 136 | + * 该函数仅能被JZsdk_HalPort_Init调用,请勿直接使用 |
119 | * | 137 | * |
120 | * ************************/ | 138 | * ************************/ |
121 | T_JZsdkReturnCode JZsdk_Uart_ReInit(int UART_DEV_NAME, int BitRate) | 139 | T_JZsdkReturnCode JZsdk_Uart_ReInit(int UART_DEV_NAME, int BitRate) |
@@ -123,88 +141,30 @@ T_JZsdkReturnCode JZsdk_Uart_ReInit(int UART_DEV_NAME, int BitRate) | @@ -123,88 +141,30 @@ T_JZsdkReturnCode JZsdk_Uart_ReInit(int UART_DEV_NAME, int BitRate) | ||
123 | T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 141 | T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
124 | int UartFd = 0; | 142 | int UartFd = 0; |
125 | 143 | ||
126 | - JZSDK_LOG_INFO("初始化串口 0x%x", UART_DEV_NAME); | 144 | + //JZSDK_LOG_INFO("初始化串口 0x%x", UART_DEV_NAME); |
127 | 145 | ||
128 | - //初始化的是一号设备 | ||
129 | - if (UART_DEV_NAME == UART_DEV_1) | ||
130 | - { | ||
131 | - //1、检查串口是否已经初始化 | ||
132 | - if(JZsdk_HalPort_UseFlag(UART_DEV_1) == JZ_FLAGCODE_ON) | 146 | + //检查是否已经初始化 |
147 | + if(JZsdk_HalPort_UseFlag(UART_DEV_NAME) == JZ_FLAGCODE_ON) | ||
133 | { | 148 | { |
134 | //先注释掉原来的串口 | 149 | //先注释掉原来的串口 |
135 | - JZsdk_HalPort_SetUseFlag(UART_DEV_1, JZ_FLAGCODE_OFF); | 150 | + JZsdk_HalPort_SetUseFlag(UART_DEV_NAME, JZ_FLAGCODE_OFF); |
136 | 151 | ||
137 | //然后关闭串口 注:该函数有延时 | 152 | //然后关闭串口 注:该函数有延时 |
138 | - JZsdk_Uart_CloseUartThead(UART_DEV_1); | 153 | + JZsdk_Uart_CloseUartThead(UART_DEV_NAME); |
139 | } | 154 | } |
140 | 155 | ||
141 | //2、串口初始化 | 156 | //2、串口初始化 |
142 | - ret = JZsdk_Uart_UartEnabled(UART_DEV1_NUM, BitRate, &UartFd); | 157 | + ret = JZsdk_Uart_UartEnabled(Get_UartDevPath(UART_DEV_NAME), BitRate, &UartFd); |
143 | if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | 158 | if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) |
144 | { | 159 | { |
145 | return ret; | 160 | return ret; |
146 | } | 161 | } |
147 | 162 | ||
148 | //3、串口接收初始化 | 163 | //3、串口接收初始化 |
149 | - JZsdk_Uart_UartDeal_Receive(UartFd, UART_DEV_1); | ||
150 | - | ||
151 | - //4、将串口的标志位打开 | ||
152 | - JZsdk_HalPort_SetUseFlag(UART_DEV_1, JZ_FLAGCODE_ON); | ||
153 | - } | 164 | + JZsdk_Uart_UartDeal_Receive(UartFd, UART_DEV_NAME); |
154 | 165 | ||
155 | - //初始化的是二号设备 | ||
156 | - if (UART_DEV_NAME == UART_DEV_2) | ||
157 | - { | ||
158 | - //1、检查串口是否已经初始化 | ||
159 | - if(JZsdk_HalPort_UseFlag(UART_DEV_2) == JZ_FLAGCODE_ON) | ||
160 | - { | ||
161 | - //先注释掉原来的串口 | ||
162 | - JZsdk_HalPort_SetUseFlag(UART_DEV_2, JZ_FLAGCODE_OFF); | 166 | + JZSDK_LOG_INFO("init %s sucess", JZsdk_DefineCode_GetPortName(UART_DEV_NAME)); |
163 | 167 | ||
164 | - //然后关闭串口 注:该函数有延时 | ||
165 | - JZsdk_Uart_CloseUartThead(UART_DEV_2); | ||
166 | - } | ||
167 | - | ||
168 | - //2、串口初始化 | ||
169 | - ret = JZsdk_Uart_UartEnabled(UART_DEV2_NUM, BitRate, &UartFd); | ||
170 | - if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
171 | - { | ||
172 | return ret; | 168 | return ret; |
173 | - } | ||
174 | - | ||
175 | - //3、串口接收初始化 | ||
176 | - JZsdk_Uart_UartDeal_Receive(UartFd, UART_DEV_2); | ||
177 | - | ||
178 | - //4、将串口的标志位打开 | ||
179 | - JZsdk_HalPort_SetUseFlag(UART_DEV_2, JZ_FLAGCODE_ON); | ||
180 | - } | ||
181 | - | ||
182 | - //初始化的是4g设备 | ||
183 | - if (UART_DEV_NAME == UART_4G) | ||
184 | - { | ||
185 | - //1、检查串口是否已经初始化 | ||
186 | - if(JZsdk_HalPort_UseFlag(UART_4G) == JZ_FLAGCODE_ON) | ||
187 | - { | ||
188 | - //先注释掉原来的串口 | ||
189 | - JZsdk_HalPort_SetUseFlag(UART_4G, JZ_FLAGCODE_OFF); | ||
190 | - | ||
191 | - //然后关闭串口 注:该函数有延时 | ||
192 | - JZsdk_Uart_CloseUartThead(UART_4G); | ||
193 | - } | ||
194 | - | ||
195 | - //2、串口初始化 | ||
196 | - ret = JZsdk_Uart_UartEnabled(COMM_4G_UART_NUM, BitRate, &UartFd); | ||
197 | - if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
198 | - { | ||
199 | - return ret; | ||
200 | - } | ||
201 | - | ||
202 | - //3、串口接收初始化 | ||
203 | - JZsdk_Uart_UartDeal_Receive(UartFd, UART_4G); | ||
204 | - | ||
205 | - //4、将串口的标志位打开 | ||
206 | - JZsdk_HalPort_SetUseFlag(UART_4G, JZ_FLAGCODE_ON); | ||
207 | - } | ||
208 | - | ||
209 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
210 | } | 169 | } |
170 | + |
@@ -56,6 +56,7 @@ static int Deal_Thread = JZ_FLAGCODE_OFF; //用于判断处理线程是否成功 | @@ -56,6 +56,7 @@ static int Deal_Thread = JZ_FLAGCODE_OFF; //用于判断处理线程是否成功 | ||
56 | 56 | ||
57 | static void *UartDeal_rece(void *arg); | 57 | static void *UartDeal_rece(void *arg); |
58 | static void *UartDeal_deal(void *arg); | 58 | static void *UartDeal_deal(void *arg); |
59 | +static void *Uart_Recv_deal(void *arg); | ||
59 | 60 | ||
60 | 61 | ||
61 | /****************************************************************** | 62 | /****************************************************************** |
@@ -67,11 +68,6 @@ static void *UartDeal_deal(void *arg); | @@ -67,11 +68,6 @@ static void *UartDeal_deal(void *arg); | ||
67 | int JZsdk_Uart_UartDeal_Receive(int Uart_fd, int Uart_Dev_name) | 68 | int JZsdk_Uart_UartDeal_Receive(int Uart_fd, int Uart_Dev_name) |
68 | { | 69 | { |
69 | int ret = 0; | 70 | int ret = 0; |
70 | - pthread_t Uart_rece_task; | ||
71 | - | ||
72 | - pthread_attr_t task_attribute; // 线程属性 | ||
73 | - pthread_attr_init(&task_attribute); // 初始化线程属性 | ||
74 | - pthread_attr_setdetachstate(&task_attribute, PTHREAD_CREATE_DETACHED); // 设置线程属性 | ||
75 | 71 | ||
76 | //根据串口名,将串口描述符赋值给对应的串口,并打开对应的线程开关 | 72 | //根据串口名,将串口描述符赋值给对应的串口,并打开对应的线程开关 |
77 | if (Uart_Dev_name == UART_DEV_1) | 73 | if (Uart_Dev_name == UART_DEV_1) |
@@ -130,7 +126,22 @@ int JZsdk_Uart_UartDeal_Receive(int Uart_fd, int Uart_Dev_name) | @@ -130,7 +126,22 @@ int JZsdk_Uart_UartDeal_Receive(int Uart_fd, int Uart_Dev_name) | ||
130 | JZSDK_LOG_ERROR("Failed to create receive thread"); | 126 | JZSDK_LOG_ERROR("Failed to create receive thread"); |
131 | return 1; | 127 | return 1; |
132 | } | 128 | } |
129 | + | ||
130 | + // //创建一个串口处理线程 | ||
131 | + // pthread_t RecvThread; | ||
132 | + // pthread_attr_t task_attribute; | ||
133 | + // pthread_attr_setdetachstate(&task_attribute, PTHREAD_CREATE_DETACHED); // 设置线程分离属性 | ||
134 | + // pthread_attr_init(&task_attribute); | ||
135 | + | ||
136 | + // if (pthread_create(&RecvThread, &task_attribute, Uart_Recv_deal, parameter) != 0) | ||
137 | + // { | ||
138 | + // JZSDK_LOG_ERROR("Failed to create receive thread"); | ||
139 | + // return 1; | ||
140 | + // } | ||
141 | + | ||
142 | + return 0; | ||
133 | } | 143 | } |
144 | + | ||
134 | /*** | 145 | /*** |
135 | * | 146 | * |
136 | * 串口接收线程 | 147 | * 串口接收线程 |
@@ -187,6 +198,7 @@ static void *UartDeal_rece(void *arg) | @@ -187,6 +198,7 @@ static void *UartDeal_rece(void *arg) | ||
187 | args->MessageLength = 0; | 198 | args->MessageLength = 0; |
188 | args->ResLen = 0; | 199 | args->ResLen = 0; |
189 | memset(&(args->Message[0]), 0, sizeof(args->Message)); | 200 | memset(&(args->Message[0]), 0, sizeof(args->Message)); |
201 | + delayMs(100); | ||
190 | continue; | 202 | continue; |
191 | } | 203 | } |
192 | // 超时 | 204 | // 超时 |
@@ -252,7 +264,7 @@ static void *UartDeal_rece(void *arg) | @@ -252,7 +264,7 @@ static void *UartDeal_rece(void *arg) | ||
252 | 264 | ||
253 | // 通知线程 | 265 | // 通知线程 |
254 | //pthread_cond_signal(&args->cond); | 266 | //pthread_cond_signal(&args->cond); |
255 | - pthread_mutex_unlock(&args->WriteMutex); // 解锁 | 267 | + pthread_mutex_unlock(&args->ReadMutex); // 解锁 |
256 | 268 | ||
257 | JZSDK_LOG_WARN("串口接收线程被关闭"); | 269 | JZSDK_LOG_WARN("串口接收线程被关闭"); |
258 | } | 270 | } |
@@ -288,7 +300,6 @@ static void *UartDeal_deal(void *arg) | @@ -288,7 +300,6 @@ static void *UartDeal_deal(void *arg) | ||
288 | 300 | ||
289 | while (*TheadSwtch) | 301 | while (*TheadSwtch) |
290 | { | 302 | { |
291 | - | ||
292 | // 加锁 | 303 | // 加锁 |
293 | pthread_mutex_lock(&args->ReadMutex); | 304 | pthread_mutex_lock(&args->ReadMutex); |
294 | 305 | ||
@@ -341,8 +352,155 @@ static void *UartDeal_deal(void *arg) | @@ -341,8 +352,155 @@ static void *UartDeal_deal(void *arg) | ||
341 | 352 | ||
342 | 353 | ||
343 | 354 | ||
355 | +/*** | ||
356 | + * | ||
357 | + * 串口处理线程 | ||
358 | + * | ||
359 | + * ***/ | ||
360 | +// 串口数据处理线程函数 | ||
361 | +static void *Uart_Recv_deal(void *arg) | ||
362 | +{ | ||
363 | + s_SerialArgs *args = (s_SerialArgs *)arg; | ||
364 | + struct timeval timeout; // 超时时间 | ||
365 | + fd_set fs_read; | ||
366 | + static int ResidualLength = 0; // 未处理数据长度 | ||
367 | + | ||
368 | + //获取串口描述符 | ||
369 | + int Uart_fd = args->UartFd; | ||
370 | + | ||
371 | + //清空接收数组与初始化配置 | ||
372 | + memset(args->Message, 0, sizeof(args->Message)); | ||
373 | + args->ResLen = 0; | ||
374 | + args->MessageLength = 0; | ||
375 | + | ||
376 | + // 根据设备名称设置相应的线程开关 | ||
377 | + int *TheadSwtch = NULL; //线程开关 | ||
378 | + switch(args->UartDevName) | ||
379 | + { | ||
380 | + case UART_4G: | ||
381 | + TheadSwtch = &Uart_4G_Switch; | ||
382 | + break; | ||
383 | + case UART_DEV_1: | ||
384 | + TheadSwtch = &Uart_DEV1_Switch; | ||
385 | + break; | ||
386 | + case UART_DEV_2: | ||
387 | + TheadSwtch = &Uart_DEV2_Switch; | ||
388 | + break; | ||
389 | + default: | ||
390 | + return NULL; // 或者处理未知设备的情况 | ||
391 | + } | ||
392 | + | ||
393 | + | ||
394 | + while (*TheadSwtch) | ||
395 | + { | ||
396 | + //重置处理时间 | ||
397 | + FD_ZERO(&fs_read); | ||
398 | + FD_SET(Uart_fd, &fs_read); | ||
344 | 399 | ||
400 | + timeout.tv_sec = 0; | ||
401 | + timeout.tv_usec = 100000; // 设置为可变的超时时间(100毫秒) | ||
345 | 402 | ||
403 | + // 检查fs_read套接字是否有数据 | ||
404 | + int ret = select(Uart_fd + 1, &fs_read, NULL, NULL, &timeout); | ||
405 | + | ||
406 | + // 发生错误 | ||
407 | + if (ret < 0) | ||
408 | + { | ||
409 | + //清空缓冲区 | ||
410 | + JZSDK_LOG_ERROR("uart select error"); | ||
411 | + args->MessageLength = 0; | ||
412 | + args->ResLen = 0; | ||
413 | + memset(&(args->Message[0]), 0, sizeof(args->Message)); | ||
414 | + continue; | ||
415 | + } | ||
416 | + // 超时 | ||
417 | + else if (ret == 0) | ||
418 | + { | ||
419 | + continue; | ||
420 | + } | ||
421 | + | ||
422 | + // 读取串口内容 | ||
423 | + int bytesRead = read(Uart_fd, &(args->Message[args->ResLen]), (sizeof(args->Message) - args->ResLen)); | ||
424 | + | ||
425 | + //正常读取到数据 | ||
426 | + if (bytesRead > 0) | ||
427 | + { | ||
428 | + //计算当前的数据长度 | ||
429 | + args->MessageLength = args->ResLen + bytesRead; | ||
430 | + | ||
431 | + // data_len+=bytesRead; | ||
432 | + // data_len2+=args->MessageLength; | ||
433 | + // printf("当前接收长度%d bytesRead%d bmessage%d reslen%d\n",data_len,bytesRead,data_len2,args->ResLen); | ||
434 | + | ||
435 | + // JZSDK_LOG_INFO("从串口读取到,长度%d",(args->MessageLength-args->ResLen)); | ||
436 | + | ||
437 | + // for (int i = 0; i < (args->MessageLength-args->ResLen); i++) | ||
438 | + // { | ||
439 | + // JZSDK_LOG_OUTPUTHEX("%s",&args->Message[i+args->ResLen]); | ||
440 | + // } | ||
441 | + | ||
442 | + // 更新剩余长度 | ||
443 | + args->ResLen = 0; | ||
444 | + } | ||
445 | + //读取到数据为空 | ||
446 | + else if (bytesRead == 0) | ||
447 | + { | ||
448 | + // 串口关闭或者无数据可读 | ||
449 | + JZSDK_LOG_ERROR("Error reading from serial port is empty"); | ||
450 | + args->MessageLength = 0; | ||
451 | + args->ResLen = 0; | ||
452 | + memset(&(args->Message[0]), 0, sizeof(args->Message)); | ||
453 | + } | ||
454 | + else | ||
455 | + { | ||
456 | + // 读取错误发生 | ||
457 | + JZSDK_LOG_ERROR("Error reading from serial port"); | ||
458 | + args->MessageLength = 0; | ||
459 | + args->ResLen = 0; | ||
460 | + memset(&(args->Message[0]), 0, sizeof(args->Message)); | ||
461 | + } | ||
462 | + | ||
463 | + //如果当前存在数据 | ||
464 | + if (args->MessageLength > 0) | ||
465 | + { | ||
466 | + //处理数据 | ||
467 | + ResidualLength = HalRecv_type1_PreliminaryScreeningOfData(args->Message, args->MessageLength, args->UartDevName); | ||
468 | + //JZSDK_LOG_DEBUG("回归%d",ResidualLength); | ||
469 | + | ||
470 | + //如果还有剩余的长度 | ||
471 | + if (ResidualLength != 0) //将其返还到缓冲区 | ||
472 | + { | ||
473 | + memcpy(args->Message, &(args->Message[args->MessageLength - ResidualLength]), ResidualLength); | ||
474 | + memset(&(args->Message[ResidualLength]), 0, (sizeof(args->Message) - ResidualLength)); | ||
475 | + args->MessageLength = 0; | ||
476 | + args->ResLen = ResidualLength; | ||
477 | + } | ||
478 | + | ||
479 | + else //清空一次缓冲区 | ||
480 | + { | ||
481 | + memset(args->Message, 0, sizeof(args->Message)); | ||
482 | + args->MessageLength = 0; | ||
483 | + args->ResLen = 0; | ||
484 | + } | ||
485 | + } | ||
486 | + | ||
487 | + //如果不存在数据 或 存在异常 ,则顺便清空一次缓冲区 | ||
488 | + else | ||
489 | + { | ||
490 | + memset(args->Message, 0, sizeof(args->Message)); | ||
491 | + args->MessageLength = 0; | ||
492 | + args->ResLen = 0; | ||
493 | + } | ||
494 | + | ||
495 | + // 添加适当延时,确保接收缓冲区有足够的数据 | ||
496 | + delayMs(3); // 加多了可能导致实时播放难恢复,以及声音间隔 3ms32字节 会向上约1个3ms opus一帧80字节 | ||
497 | + } | ||
498 | + | ||
499 | + //注销相关 | ||
500 | + Recv_Thread = JZ_FLAGCODE_OFF; | ||
501 | + | ||
502 | + JZSDK_LOG_WARN("串口接收处理线程被关闭"); | ||
503 | +} | ||
346 | 504 | ||
347 | 505 | ||
348 | 506 | ||
@@ -498,9 +656,6 @@ static T_JZsdkReturnCode JZsdk_Uart_CloseUartFd(int UartPort) | @@ -498,9 +656,6 @@ static T_JZsdkReturnCode JZsdk_Uart_CloseUartFd(int UartPort) | ||
498 | 656 | ||
499 | T_JZsdkReturnCode JZsdk_Uart_CloseUartThead(int UartPort) | 657 | T_JZsdkReturnCode JZsdk_Uart_CloseUartThead(int UartPort) |
500 | { | 658 | { |
501 | - //将串口描述符关闭 | ||
502 | - JZsdk_Uart_CloseUartFd(UartPort); | ||
503 | - | ||
504 | //关闭对应的线程 | 659 | //关闭对应的线程 |
505 | Deal_Thread = JZ_FLAGCODE_ON; //将处理标志位打开 | 660 | Deal_Thread = JZ_FLAGCODE_ON; //将处理标志位打开 |
506 | Recv_Thread = JZ_FLAGCODE_ON; //将存储标志位打开 | 661 | Recv_Thread = JZ_FLAGCODE_ON; //将存储标志位打开 |
@@ -526,13 +681,29 @@ T_JZsdkReturnCode JZsdk_Uart_CloseUartThead(int UartPort) | @@ -526,13 +681,29 @@ T_JZsdkReturnCode JZsdk_Uart_CloseUartThead(int UartPort) | ||
526 | } | 681 | } |
527 | 682 | ||
528 | //直到某个串口达成了关闭,这里不能明确到判断哪个串口关闭,但是识别第一个关闭的串口 | 683 | //直到某个串口达成了关闭,这里不能明确到判断哪个串口关闭,但是识别第一个关闭的串口 |
529 | - while ( (Recv_Thread != JZ_FLAGCODE_OFF) && (Deal_Thread != JZ_FLAGCODE_OFF)) | 684 | + while ( (Deal_Thread == JZ_FLAGCODE_ON) || (Recv_Thread == JZ_FLAGCODE_ON)) |
530 | { | 685 | { |
531 | delayUs(500); | 686 | delayUs(500); |
532 | } | 687 | } |
533 | 688 | ||
689 | + // while (Recv_Thread == JZ_FLAGCODE_ON) | ||
690 | + // { | ||
691 | + // delayUs(500); | ||
692 | + // } | ||
693 | + | ||
694 | + //将串口描述符关闭 | ||
695 | + JZsdk_Uart_CloseUartFd(UartPort); | ||
696 | + | ||
697 | + | ||
534 | //保证全部注销后 | 698 | //保证全部注销后 |
535 | - JZSDK_LOG_INFO("0x%x 串口注销完毕", UartPort); | 699 | + JZSDK_LOG_INFO("%s 串口注销完毕", JZsdk_DefineCode_GetPortName(UartPort)); |
536 | 700 | ||
537 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 701 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
538 | } | 702 | } |
703 | + | ||
704 | + | ||
705 | + | ||
706 | + | ||
707 | + | ||
708 | + | ||
709 | + |
@@ -2,6 +2,8 @@ | @@ -2,6 +2,8 @@ | ||
2 | #include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h" | 2 | #include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h" |
3 | #include "JZsdkLib.h" | 3 | #include "JZsdkLib.h" |
4 | 4 | ||
5 | +#include "HeartBeat/HeartBeat.h" | ||
6 | + | ||
5 | /*************** | 7 | /*************** |
6 | * | 8 | * |
7 | * * 通用模块初始化 | 9 | * * 通用模块初始化 |
@@ -13,6 +15,7 @@ T_JZsdkReturnCode CommonMod_Init() | @@ -13,6 +15,7 @@ T_JZsdkReturnCode CommonMod_Init() | ||
13 | //初始化升级模块 | 15 | //初始化升级模块 |
14 | 16 | ||
15 | //初始化心跳模块 | 17 | //初始化心跳模块 |
18 | + HeartBeat_Init(); | ||
16 | 19 | ||
17 | //初始化电源模块 | 20 | //初始化电源模块 |
18 | } | 21 | } |
@@ -16,6 +16,8 @@ | @@ -16,6 +16,8 @@ | ||
16 | 16 | ||
17 | #include "CommonMod/PowerManger/PowerManger.h" | 17 | #include "CommonMod/PowerManger/PowerManger.h" |
18 | 18 | ||
19 | +#include "Upgrade/Upgrade.h" | ||
20 | + | ||
19 | #ifdef __cplusplus | 21 | #ifdef __cplusplus |
20 | extern "C" { | 22 | extern "C" { |
21 | #endif | 23 | #endif |
@@ -26,6 +28,7 @@ extern "C" { | @@ -26,6 +28,7 @@ extern "C" { | ||
26 | /* Exported types ------------------------------------------------------------*/ | 28 | /* Exported types ------------------------------------------------------------*/ |
27 | 29 | ||
28 | /* Exported functions --------------------------------------------------------*/ | 30 | /* Exported functions --------------------------------------------------------*/ |
31 | +T_JZsdkReturnCode CommonMod_Init(); | ||
29 | 32 | ||
30 | 33 | ||
31 | #ifdef __cplusplus | 34 | #ifdef __cplusplus |
@@ -3,12 +3,20 @@ | @@ -3,12 +3,20 @@ | ||
3 | 3 | ||
4 | #include "JZsdkLib.h" | 4 | #include "JZsdkLib.h" |
5 | #include "JZsdk_Hal.h" | 5 | #include "JZsdk_Hal.h" |
6 | +#include "Hal_Send/HalSend_type1/HalSend_type1.h" | ||
6 | 7 | ||
7 | T_JZsdkReturnCode HeartBeat_HalCheck() | 8 | T_JZsdkReturnCode HeartBeat_HalCheck() |
8 | { | 9 | { |
9 | - //1、获取hal的使用状态 | ||
10 | - int temp = JZsdk_HalPort_UseFlag(UART_DEV_1); | 10 | + s_JZsdk_Hal_Info *HalInfo = JZsdk_Hal_GetHalInfo(); |
11 | 11 | ||
12 | + //1、获取心跳帧的开启情况 发送心跳帧 | ||
13 | + for (int i = 0; i < HalInfo->HaveUsePortNum; i++) | ||
14 | + { | ||
15 | + if (HalInfo->HalPort[HalInfo->HaveUsePort[i]].HeartBeatStatusSend == JZ_FLAGCODE_ON) | ||
16 | + { | ||
17 | + HalSend_type1Send_Ask_HeartBeatStatus(HalInfo->HaveUsePort[i], 0x00, HalInfo->HalPort[HalInfo->HaveUsePort[i]].ConnectStatus); | ||
18 | + } | ||
19 | + } | ||
12 | 20 | ||
13 | } | 21 | } |
14 | 22 |
1 | /** | 1 | /** |
2 | ******************************************************************** | 2 | ******************************************************************** |
3 | - * @file Megaphone_RecordVoice.h | ||
4 | - * Megaphone_RecordVoice的头文件 | 3 | + * @file HeartBeat.h |
4 | + * HeartBeat.c的头文件 | ||
5 | + * | ||
5 | * | 6 | * |
6 | ********************************************************************* | 7 | ********************************************************************* |
7 | */ | 8 | */ |
8 | 9 | ||
9 | /* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/ | 10 | /* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/ |
10 | -#ifndef MEGSPHONE_RECORDVOICE_H | ||
11 | -#define MEGSPHONE_RECORDVOICE_H | 11 | +#ifndef HEART_BEAT_H |
12 | +#define HEART_BEAT_H | ||
12 | 13 | ||
13 | /* Includes ------------------------------------------------------------------*/ | 14 | /* Includes ------------------------------------------------------------------*/ |
14 | #include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h" | 15 | #include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h" |
@@ -23,10 +24,9 @@ extern "C" { | @@ -23,10 +24,9 @@ extern "C" { | ||
23 | /* Exported types ------------------------------------------------------------*/ | 24 | /* Exported types ------------------------------------------------------------*/ |
24 | 25 | ||
25 | /* Exported functions --------------------------------------------------------*/ | 26 | /* Exported functions --------------------------------------------------------*/ |
26 | -T_JZsdkReturnCode Opus_RecordVoice_PlayFixedFile(); | ||
27 | -T_JZsdkReturnCode Opus_RecordVoice_SaveOpusStart(int decode_rate); | ||
28 | -T_JZsdkReturnCode Opus_RecordVoice_SaveOpusTrans(unsigned char *SaveData, int size); | ||
29 | -T_JZsdkReturnCode Opus_RecordVoice_SaveOpusStop(int checkFlag, unsigned char *CheckCode); | 27 | +T_JZsdkReturnCode HeartBeat_Init(); |
28 | + | ||
29 | + | ||
30 | 30 | ||
31 | #ifdef __cplusplus | 31 | #ifdef __cplusplus |
32 | } | 32 | } |
@@ -11,7 +11,204 @@ | @@ -11,7 +11,204 @@ | ||
11 | 11 | ||
12 | #define REMOTE_UPGRADE_FILE_DIR "/root/ugradeFile/remote_ugradeFile.tar" | 12 | #define REMOTE_UPGRADE_FILE_DIR "/root/ugradeFile/remote_ugradeFile.tar" |
13 | 13 | ||
14 | -static int Upgrade_status = JZ_FLAGCODE_OFF; | 14 | +static int Upgrade_DownLoadFlag = JZ_FLAGCODE_OFF; |
15 | + | ||
16 | +T_JZsdkFileHandle Upgrade_FileHandle = NULL; | ||
17 | +static unsigned char g_CheckCode[128] = {0}; | ||
18 | +static int g_CheckCodeFlag =JZ_FLAGCODE_OFF; | ||
19 | +static int g_UpgradeCheckFlag = JZ_FLAGCODE_OFF; | ||
20 | + | ||
21 | +typedef enum T_UpgradeType | ||
22 | +{ | ||
23 | + UPGRADE_ONLY_HOST = 0, //仅本机进行升级 | ||
24 | + UPGRADE_ONLY_SLAVE = 1, //仅从机进行升级 | ||
25 | + UPGRADE_BOTH_HOST_SLAVE = 2, //主机和从机都进行升级 | ||
26 | +} T_UpgradeType; | ||
27 | + | ||
28 | +/***************** | ||
29 | + * | ||
30 | + * 获取升级状态 | ||
31 | + * | ||
32 | + * | ||
33 | + * ***************/ | ||
34 | +T_JZsdkReturnCode Upgrade_GetStatus(int *status) | ||
35 | +{ | ||
36 | + *status = Upgrade_DownLoadFlag; | ||
37 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
38 | +} | ||
39 | + | ||
40 | +/************************************ | ||
41 | + * | ||
42 | + * 升级包下载 | ||
43 | + * | ||
44 | + * | ||
45 | + * **********************************/ | ||
46 | +T_JZsdkReturnCode Upgrade_PackageDownload_Start() | ||
47 | +{ | ||
48 | + T_JZsdkReturnCode ret; | ||
49 | + | ||
50 | + if (Upgrade_DownLoadFlag == JZ_FLAGCODE_ON) | ||
51 | + { | ||
52 | + JZSDK_LOG_ERROR("Upgrade_PackageDownload_Start: upgrade package is downloading"); | ||
53 | + return JZ_ERROR_SYSTEM_MODULE_CODE_IS_BUSY; | ||
54 | + } | ||
55 | + | ||
56 | + ret = JZsdk_Osal_FileOpen(REMOTE_UPGRADE_FILE_DIR, "wb", &Upgrade_FileHandle); | ||
57 | + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
58 | + { | ||
59 | + JZSDK_LOG_ERROR("Upgrade_PackageDownload_Start: JZsdk_Osal_FileOpen failed"); | ||
60 | + return ret; | ||
61 | + } | ||
62 | + | ||
63 | + Upgrade_DownLoadFlag = JZ_FLAGCODE_ON; | ||
64 | + | ||
65 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
66 | +} | ||
67 | + | ||
68 | +/************************************ | ||
69 | + * | ||
70 | + * 升级包下载中 | ||
71 | + * | ||
72 | + * | ||
73 | + * **********************************/ | ||
74 | +T_JZsdkReturnCode Upgrade_PackageDownload_Trans(unsigned char *buf, unsigned int len) | ||
75 | +{ | ||
76 | + T_JZsdkReturnCode ret; | ||
77 | + | ||
78 | + if (Upgrade_DownLoadFlag == JZ_FLAGCODE_OFF) | ||
79 | + { | ||
80 | + JZSDK_LOG_ERROR("Upgrade_PackageDownload_Trans: upgrade package is not downloading"); | ||
81 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
82 | + } | ||
83 | + | ||
84 | + //下载升级包 | ||
85 | + int realLen = 0; | ||
86 | + ret = JZsdk_Osal_FileWrite(Upgrade_FileHandle, buf, len, &realLen); | ||
87 | + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
88 | + { | ||
89 | + JZSDK_LOG_ERROR("Upgrade_PackageDownload_Trans: JZsdk_Osal_FileWrite failed"); | ||
90 | + return ret; | ||
91 | + } | ||
92 | + | ||
93 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
94 | +} | ||
95 | + | ||
96 | +/************************************ | ||
97 | + * | ||
98 | + * 升级包下载结束 | ||
99 | + * | ||
100 | + * | ||
101 | + * **********************************/ | ||
102 | +T_JZsdkReturnCode Upgrade_PackageDownload_Stop() | ||
103 | +{ | ||
104 | + T_JZsdkReturnCode ret; | ||
105 | + | ||
106 | + if (Upgrade_DownLoadFlag == JZ_FLAGCODE_OFF) | ||
107 | + { | ||
108 | + JZSDK_LOG_ERROR("Upgrade_PackageDownload_Stop: upgrade package is not downloading"); | ||
109 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
110 | + } | ||
111 | + | ||
112 | + JZsdk_Osal_FileSync(Upgrade_FileHandle); | ||
113 | + | ||
114 | + ret = JZsdk_Osal_FileClose(Upgrade_FileHandle); | ||
115 | + | ||
116 | + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
117 | + { | ||
118 | + JZSDK_LOG_ERROR("Upgrade_PackageDownload_Stop: JZsdk_Osal_FileClose failed"); | ||
119 | + return ret; | ||
120 | + } | ||
121 | + | ||
122 | + Upgrade_FileHandle = NULL; | ||
123 | + | ||
124 | + Upgrade_DownLoadFlag = JZ_FLAGCODE_OFF; | ||
125 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
126 | +} | ||
127 | + | ||
128 | +/******************* | ||
129 | + * | ||
130 | + * 升级包校验码录入 | ||
131 | + * | ||
132 | + * | ||
133 | + * ********************/ | ||
134 | +T_JZsdkReturnCode Upgrade_PackageCheckCodeSave(unsigned char *CheckCode, int CheckFlag, int len) | ||
135 | +{ | ||
136 | + memcpy(g_CheckCode, CheckCode, len); | ||
137 | + g_CheckCodeFlag = CheckFlag; | ||
138 | + | ||
139 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
140 | +} | ||
141 | + | ||
142 | +/************************************ | ||
143 | + * | ||
144 | + * 升级包校验 | ||
145 | + * | ||
146 | + * | ||
147 | + * **********************************/ | ||
148 | +T_JZsdkReturnCode Upgrade_PackageCheck() | ||
149 | +{ | ||
150 | + T_JZsdkReturnCode ret; | ||
151 | + | ||
152 | + switch (g_CheckCodeFlag) | ||
153 | + { | ||
154 | + case JZSDK_CHECK_SUM_TYPE_MD5: | ||
155 | + { | ||
156 | + JZSDK_LOG_INFO("升级文件使用md5校验码"); | ||
157 | + //1、获取文件的md5校验码 | ||
158 | + ret = JZsdk_CheckSum(JZSDK_CHECK_SUM_TYPE_MD5, REMOTE_UPGRADE_FILE_DIR, g_CheckCode, 32); | ||
159 | + } | ||
160 | + break; | ||
161 | + | ||
162 | + case JZSDK_CHECK_SUM_TYPE_SRC32: | ||
163 | + { | ||
164 | + JZSDK_LOG_INFO("升级文件使用src32校验码"); | ||
165 | + //1、获取文件的src32校验码 | ||
166 | + ret = JZsdk_CheckSum(JZSDK_CHECK_SUM_TYPE_SRC32, REMOTE_UPGRADE_FILE_DIR, g_CheckCode, 4); | ||
167 | + } | ||
168 | + break; | ||
169 | + | ||
170 | + default: | ||
171 | + { | ||
172 | + JZSDK_LOG_ERROR("opus保存校验码类型错误"); | ||
173 | + ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
174 | + } | ||
175 | + break; | ||
176 | + } | ||
177 | + | ||
178 | + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
179 | + { | ||
180 | + JZSDK_LOG_ERROR("升级文件校验失败"); | ||
181 | + JZsdk_Osal_delete(REMOTE_UPGRADE_FILE_DIR); | ||
182 | + Upgrade_DownLoadFlag = JZ_FLAGCODE_OFF; | ||
183 | + | ||
184 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
185 | + } | ||
186 | + | ||
187 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
188 | +} | ||
189 | + | ||
190 | +static T_JZsdkReturnCode Ugrade_Way1() | ||
191 | +{ | ||
192 | + //往t60s发送升级固件 | ||
193 | + | ||
194 | + //1、发送准备升级指令 | ||
195 | + | ||
196 | + //2、发送校验码 | ||
197 | + | ||
198 | + //3、上传文件 | ||
199 | + | ||
200 | + //4、传输文件 | ||
201 | + | ||
202 | + //5、关闭上传 | ||
203 | + | ||
204 | + //6、等候校验结果 | ||
205 | + | ||
206 | + //开始自身升级 | ||
207 | + | ||
208 | + //调用升级脚本 | ||
209 | + | ||
210 | + //------------重启-------------- | ||
211 | +} | ||
15 | 212 | ||
16 | /************************************ | 213 | /************************************ |
17 | * | 214 | * |
@@ -40,47 +237,56 @@ T_JZsdkReturnCode Upgrade_PackageParse() | @@ -40,47 +237,56 @@ T_JZsdkReturnCode Upgrade_PackageParse() | ||
40 | JZSDK_LOG_ERROR("Upgrade_PackageParse: RunSystemCmd failed"); | 237 | JZSDK_LOG_ERROR("Upgrade_PackageParse: RunSystemCmd failed"); |
41 | return ret; | 238 | return ret; |
42 | } | 239 | } |
43 | - | ||
44 | - //解析升级包 | ||
45 | - //首先分析本机的升级包 | ||
46 | - unsigned char upgrade_file_name[128] = {0}; | ||
47 | - | ||
48 | - | ||
49 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
50 | } | 240 | } |
51 | 241 | ||
52 | -/******************************** | 242 | + |
243 | +/**************************** | ||
53 | * | 244 | * |
54 | - * 升级模块初始化 | 245 | + * 升级 |
55 | * | 246 | * |
56 | * | 247 | * |
57 | - * ************************************/ | ||
58 | -T_JZsdkReturnCode Upgrade_Init() | 248 | + * ******************************/ |
249 | +T_JZsdkReturnCode Upgrade_PackageUpgrade() | ||
59 | { | 250 | { |
60 | T_JZsdkReturnCode ret; | 251 | T_JZsdkReturnCode ret; |
61 | 252 | ||
62 | - //检查是否存在升级失败文件 | ||
63 | - ret = JZsdk_check_file_exists(UPGRADE_FILE_STATUS_B); | ||
64 | - if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | 253 | + //校验成功的情况,则开始解析升级包 |
254 | + ret = Upgrade_PackageParse(); | ||
255 | + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
65 | { | 256 | { |
66 | - //这种属于是喊话器自身升级失败了 | ||
67 | - JZSDK_LOG_ERROR("Upgrade_Init: upgrade failed file exists STATUS B"); | 257 | + JZSDK_LOG_ERROR("解析升级包失败"); |
258 | + return ret; | ||
259 | + } | ||
68 | 260 | ||
261 | + //退出当前进程,并通知设备升级 | ||
262 | + FILE *logFile = fopen("/root/JZ_UpgradeLog.txt", "w"); | ||
263 | + if (logFile == NULL) | ||
264 | + { | ||
265 | + JZSDK_LOG_ERROR("JZ_UpgradeLog error"); | ||
266 | + return 1; | ||
267 | + } | ||
69 | 268 | ||
70 | - //失败处理 | 269 | + fprintf(logFile, "UPGRADE_NEEDED\n"); |
270 | + fflush(logFile); | ||
271 | + fclose(logFile); | ||
71 | 272 | ||
72 | - } | 273 | + JZSDK_LOG_INFO("执行升级脚本"); |
73 | 274 | ||
74 | - //检查是否存在A文件 | ||
75 | - ret = JZsdk_check_file_exists(UPGRADE_FILE_STATUS_A); | ||
76 | - if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
77 | - { | ||
78 | - //正处于升级状态 | 275 | + //退出程序 |
276 | + exit(0); | ||
79 | 277 | ||
80 | - //检查是否还存在升级包 | 278 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
279 | +} | ||
81 | 280 | ||
82 | - // | ||
83 | - } | ||
84 | 281 | ||
282 | +/******************************** | ||
283 | + * | ||
284 | + * 升级模块初始化 | ||
285 | + * | ||
286 | + * | ||
287 | + * ************************************/ | ||
288 | +T_JZsdkReturnCode Upgrade_Init() | ||
289 | +{ | ||
290 | + T_JZsdkReturnCode ret; | ||
85 | 291 | ||
86 | } | 292 | } |
Module/CommonMod/Upgrade/Upgrade.h
0 → 100644
1 | +/** | ||
2 | + ******************************************************************** | ||
3 | + * @file Upgrade.h | ||
4 | + * Upgrade.c的头文件 | ||
5 | + * | ||
6 | + * | ||
7 | + ********************************************************************* | ||
8 | + */ | ||
9 | + | ||
10 | +/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/ | ||
11 | +#ifndef UPGRADE_H | ||
12 | +#define UPGRADE_H | ||
13 | + | ||
14 | +/* Includes ------------------------------------------------------------------*/ | ||
15 | +#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h" | ||
16 | + | ||
17 | +#ifdef __cplusplus | ||
18 | +extern "C" { | ||
19 | +#endif | ||
20 | + | ||
21 | +/* Exported constants --------------------------------------------------------*/ | ||
22 | +/* 常亮定义*/ | ||
23 | + | ||
24 | +/* Exported types ------------------------------------------------------------*/ | ||
25 | + | ||
26 | +/* Exported functions --------------------------------------------------------*/ | ||
27 | +T_JZsdkReturnCode Upgrade_GetStatus(int *status); | ||
28 | +T_JZsdkReturnCode Upgrade_PackageDownload_Start(); | ||
29 | +T_JZsdkReturnCode Upgrade_PackageDownload_Trans(unsigned char *buf, unsigned int len); | ||
30 | +T_JZsdkReturnCode Upgrade_PackageDownload_Stop(); | ||
31 | +T_JZsdkReturnCode Upgrade_PackageCheckCodeSave(unsigned char *CheckCode, int CheckFlag, int len); | ||
32 | +T_JZsdkReturnCode Upgrade_PackageCheck(); | ||
33 | +T_JZsdkReturnCode Upgrade_PackageParse(); | ||
34 | +T_JZsdkReturnCode Upgrade_PackageUpgrade(); | ||
35 | +T_JZsdkReturnCode Upgrade_Init(); | ||
36 | + | ||
37 | + | ||
38 | +#ifdef __cplusplus | ||
39 | +} | ||
40 | +#endif | ||
41 | + | ||
42 | +#endif |
@@ -271,7 +271,7 @@ static T_JZsdkReturnCode ActivateMAT_create_SN_LOCK_file() | @@ -271,7 +271,7 @@ static T_JZsdkReturnCode ActivateMAT_create_SN_LOCK_file() | ||
271 | // 参数:文件路径 | 271 | // 参数:文件路径 |
272 | static T_JZsdkReturnCode ActivateMAT_delete_SN_LOCK_file() | 272 | static T_JZsdkReturnCode ActivateMAT_delete_SN_LOCK_file() |
273 | { | 273 | { |
274 | - return JZsdk_delete_file(SN_LOCL_FILE_PATH); | 274 | + return JZsdk_Osal_delete(SN_LOCL_FILE_PATH); |
275 | } | 275 | } |
276 | 276 | ||
277 | /********************************** | 277 | /********************************** |
@@ -26,7 +26,7 @@ extern "C" { | @@ -26,7 +26,7 @@ extern "C" { | ||
26 | //音频信息结构体 | 26 | //音频信息结构体 |
27 | struct AudioMange_audio_struct | 27 | struct AudioMange_audio_struct |
28 | { | 28 | { |
29 | - unsigned char FileName[JZSDK_FILENAME_SIZE+1]; //音频名字 | 29 | + unsigned char FileName[JZSDK_FILE_NAME_SIZE_MAX+1]; //音频名字 |
30 | unsigned int FileNameLen; //音频名字长度 | 30 | unsigned int FileNameLen; //音频名字长度 |
31 | 31 | ||
32 | unsigned int FileType; //音频的文件类型 | 32 | unsigned int FileType; //音频的文件类型 |
@@ -196,7 +196,7 @@ static T_JZsdkReturnCode Megaphone_Play(struct MegaphoneInfo *IndexInfo, enum Me | @@ -196,7 +196,7 @@ static T_JZsdkReturnCode Megaphone_Play(struct MegaphoneInfo *IndexInfo, enum Me | ||
196 | JZSDK_LOG_INFO("opus录音喊话"); | 196 | JZSDK_LOG_INFO("opus录音喊话"); |
197 | 197 | ||
198 | //opus播放 | 198 | //opus播放 |
199 | - ret = Opus_RecordVoice_PlayFixedFile(); | 199 | + ret = OpusFile_PlayFixedFile(); |
200 | } | 200 | } |
201 | 201 | ||
202 | default: | 202 | default: |
@@ -562,9 +562,9 @@ T_JZsdkReturnCode Megaphone_SaveAudioFileStart(char *FileName) | @@ -562,9 +562,9 @@ T_JZsdkReturnCode Megaphone_SaveAudioFileStart(char *FileName) | ||
562 | * 2、存储音频文件中 | 562 | * 2、存储音频文件中 |
563 | * | 563 | * |
564 | */ | 564 | */ |
565 | -int Megaphone_SaveAudioFileTrans(char *SaveData, int size) | 565 | +T_JZsdkReturnCode Megaphone_SaveAudioFileTrans(char *SaveData, int size) |
566 | { | 566 | { |
567 | - AudioFile_SaveAudioFileTrans(SaveData, size); | 567 | + return AudioFile_SaveAudioFileTrans(SaveData, size); |
568 | } | 568 | } |
569 | 569 | ||
570 | /* | 570 | /* |
@@ -614,9 +614,9 @@ T_JZsdkReturnCode Megaphone_Opus_PlayFixedFile() | @@ -614,9 +614,9 @@ T_JZsdkReturnCode Megaphone_Opus_PlayFixedFile() | ||
614 | * 2、存储opus文件开始 | 614 | * 2、存储opus文件开始 |
615 | * | 615 | * |
616 | */ | 616 | */ |
617 | -T_JZsdkReturnCode Megaphone_SaveOpusStart(int decode_rate) | 617 | +T_JZsdkReturnCode Megaphone_SaveOpusStart(unsigned char *FileName, int decode_rate, int SampleRate, int Channels) |
618 | { | 618 | { |
619 | - return Opus_RecordVoice_SaveOpusStart(decode_rate); | 619 | + return OpusFile_SaveOpusFileStart(FileName , decode_rate, SampleRate, Channels); |
620 | } | 620 | } |
621 | 621 | ||
622 | /* | 622 | /* |
@@ -626,7 +626,7 @@ T_JZsdkReturnCode Megaphone_SaveOpusStart(int decode_rate) | @@ -626,7 +626,7 @@ T_JZsdkReturnCode Megaphone_SaveOpusStart(int decode_rate) | ||
626 | */ | 626 | */ |
627 | T_JZsdkReturnCode Megaphone_SaveOpusTrans(char *SaveData, int size) | 627 | T_JZsdkReturnCode Megaphone_SaveOpusTrans(char *SaveData, int size) |
628 | { | 628 | { |
629 | - return Opus_RecordVoice_SaveOpusTrans(SaveData, size); | 629 | + return OpusFile_SaveOpusFileStream(SaveData, size); |
630 | } | 630 | } |
631 | 631 | ||
632 | /* | 632 | /* |
@@ -636,7 +636,7 @@ T_JZsdkReturnCode Megaphone_SaveOpusTrans(char *SaveData, int size) | @@ -636,7 +636,7 @@ T_JZsdkReturnCode Megaphone_SaveOpusTrans(char *SaveData, int size) | ||
636 | */ | 636 | */ |
637 | T_JZsdkReturnCode Megaphone_SaveOpusStop(int checkFlag, unsigned char *CheckCode) | 637 | T_JZsdkReturnCode Megaphone_SaveOpusStop(int checkFlag, unsigned char *CheckCode) |
638 | { | 638 | { |
639 | - return Opus_RecordVoice_SaveOpusStop(checkFlag, CheckCode); | 639 | + return OpusFile_SaveOpusFileEnd(checkFlag, CheckCode); |
640 | } | 640 | } |
641 | 641 | ||
642 | 642 | ||
@@ -658,7 +658,7 @@ T_JZsdkReturnCode Megaphone_RealTimeVoice_Start(int decode_rate) | @@ -658,7 +658,7 @@ T_JZsdkReturnCode Megaphone_RealTimeVoice_Start(int decode_rate) | ||
658 | if ( Megaphone_RealTimeVoice_GetStatusFlag() == JZ_FLAGCODE_ON) | 658 | if ( Megaphone_RealTimeVoice_GetStatusFlag() == JZ_FLAGCODE_ON) |
659 | { | 659 | { |
660 | //是的话,无法进行操作 | 660 | //是的话,无法进行操作 |
661 | - return JZ_ERRORCODE_REALTIMEVOICE_HAS_BEEN_ON; | 661 | + return JZ_ERROR_SYSTEM_MODULE_CODE_IS_BUSY; |
662 | } | 662 | } |
663 | 663 | ||
664 | //把暂停音乐的标志关了 | 664 | //把暂停音乐的标志关了 |
@@ -670,7 +670,7 @@ T_JZsdkReturnCode Megaphone_RealTimeVoice_Start(int decode_rate) | @@ -670,7 +670,7 @@ T_JZsdkReturnCode Megaphone_RealTimeVoice_Start(int decode_rate) | ||
670 | T_JZsdkReturnCode ret = Opus_RealTimeVoice_Start(decode_rate); | 670 | T_JZsdkReturnCode ret = Opus_RealTimeVoice_Start(decode_rate); |
671 | if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | 671 | if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) |
672 | { | 672 | { |
673 | - //广播关闭 | 673 | + //广播实时状态 |
674 | Megaphone_status_Broadcast(AUDIO_PLAY_STATUS_OPUS_REAL_TIME); | 674 | Megaphone_status_Broadcast(AUDIO_PLAY_STATUS_OPUS_REAL_TIME); |
675 | } | 675 | } |
676 | 676 | ||
@@ -860,6 +860,9 @@ T_JZsdkReturnCode Megaphone_Init() | @@ -860,6 +860,9 @@ T_JZsdkReturnCode Megaphone_Init() | ||
860 | //音频文件管理功能初始化 | 860 | //音频文件管理功能初始化 |
861 | Megaphone_AudioFile_Init(); | 861 | Megaphone_AudioFile_Init(); |
862 | 862 | ||
863 | + //opus列表初始化 | ||
864 | + Megaphone_OpusFile_Init(); | ||
865 | + | ||
863 | //设置音量 | 866 | //设置音量 |
864 | Megaphone_SetVolume(30, 0); | 867 | Megaphone_SetVolume(30, 0); |
865 | 868 | ||
@@ -1415,7 +1418,7 @@ T_JZsdkReturnCode Megaphone_PrintVolume(int Value, int flag) | @@ -1415,7 +1418,7 @@ T_JZsdkReturnCode Megaphone_PrintVolume(int Value, int flag) | ||
1415 | HalSend_type1Send_Reply_Volume(UART_DEV_2, g_Megaphone_Volume); | 1418 | HalSend_type1Send_Reply_Volume(UART_DEV_2, g_Megaphone_Volume); |
1416 | } | 1419 | } |
1417 | //如果psdk接口已经使用 | 1420 | //如果psdk接口已经使用 |
1418 | - if ( (JZsdk_Get_Psdk_UIcontrol_UseFlag() == JZ_FLAGCODE_ON)) | 1421 | + if ( (JZsdk_HalPort_UseFlag(DEVICE_PSDK) == JZ_FLAGCODE_ON)) |
1419 | { | 1422 | { |
1420 | JZsdk_Psdk_UI_io_Reply_Volume(g_Megaphone_Volume); | 1423 | JZsdk_Psdk_UI_io_Reply_Volume(g_Megaphone_Volume); |
1421 | } | 1424 | } |
@@ -12,6 +12,7 @@ | @@ -12,6 +12,7 @@ | ||
12 | 12 | ||
13 | /* Includes ------------------------------------------------------------------*/ | 13 | /* Includes ------------------------------------------------------------------*/ |
14 | #include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h" | 14 | #include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h" |
15 | +#include "Megaphone/PlayBack/Megaphone_PlayBack.h" | ||
15 | 16 | ||
16 | #ifdef __cplusplus | 17 | #ifdef __cplusplus |
17 | extern "C" { | 18 | extern "C" { |
@@ -109,7 +110,7 @@ T_JZsdkReturnCode Megaphone_GetMusicListMessage(unsigned char *message); | @@ -109,7 +110,7 @@ T_JZsdkReturnCode Megaphone_GetMusicListMessage(unsigned char *message); | ||
109 | * | 110 | * |
110 | * ********/ | 111 | * ********/ |
111 | 112 | ||
112 | -T_JZsdkReturnCode Megaphone_SaveOpusStart(int decode_rate); | 113 | +T_JZsdkReturnCode Megaphone_SaveOpusStart(unsigned char *FileName, int decode_rate, int SampleRate, int Channels); |
113 | T_JZsdkReturnCode Megaphone_SaveOpusTrans(char *SaveData, int size); | 114 | T_JZsdkReturnCode Megaphone_SaveOpusTrans(char *SaveData, int size); |
114 | T_JZsdkReturnCode Megaphone_SaveOpusStop(int checkFlag, unsigned char *CheckCode); | 115 | T_JZsdkReturnCode Megaphone_SaveOpusStop(int checkFlag, unsigned char *CheckCode); |
115 | 116 | ||
@@ -123,7 +124,7 @@ T_JZsdkReturnCode Megaphone_RealTimeMP2_trans(unsigned char *getdata, int len); | @@ -123,7 +124,7 @@ T_JZsdkReturnCode Megaphone_RealTimeMP2_trans(unsigned char *getdata, int len); | ||
123 | T_JZsdkReturnCode Megaphone_RealTimeMP2_stop(); | 124 | T_JZsdkReturnCode Megaphone_RealTimeMP2_stop(); |
124 | 125 | ||
125 | T_JZsdkReturnCode Megaphone_SaveAudioFileStart(char *FileName); | 126 | T_JZsdkReturnCode Megaphone_SaveAudioFileStart(char *FileName); |
126 | -int Megaphone_SaveAudioFileTrans(char *SaveData, int size); | 127 | +T_JZsdkReturnCode Megaphone_SaveAudioFileTrans(char *SaveData, int size); |
127 | T_JZsdkReturnCode Megaphone_Broadcast_OpusDecodeStatus(int status); | 128 | T_JZsdkReturnCode Megaphone_Broadcast_OpusDecodeStatus(int status); |
128 | T_JZsdkReturnCode Megaphone_SaveAudioFileStop(int checkFlag, unsigned char *CheckCode); | 129 | T_JZsdkReturnCode Megaphone_SaveAudioFileStop(int checkFlag, unsigned char *CheckCode); |
129 | T_JZsdkReturnCode Megaphone_Opus_PlayFixedFile(); | 130 | T_JZsdkReturnCode Megaphone_Opus_PlayFixedFile(); |
@@ -17,6 +17,8 @@ | @@ -17,6 +17,8 @@ | ||
17 | #include "./AudioFile_PlayDeal.h" | 17 | #include "./AudioFile_PlayDeal.h" |
18 | #include "AudioDeal/FF_Statement.h" | 18 | #include "AudioDeal/FF_Statement.h" |
19 | 19 | ||
20 | +#include "Megaphone/PlayBack/Megaphone_PlayBack.h" | ||
21 | + | ||
20 | //音频文件直接播放 | 22 | //音频文件直接播放 |
21 | T_JZsdkReturnCode AudioFile_StartPlay_Interface(unsigned char* FilePath) | 23 | T_JZsdkReturnCode AudioFile_StartPlay_Interface(unsigned char* FilePath) |
22 | { | 24 | { |
@@ -165,6 +167,10 @@ T_JZsdkReturnCode AudioFile_StartPlay_Interface(unsigned char* FilePath) | @@ -165,6 +167,10 @@ T_JZsdkReturnCode AudioFile_StartPlay_Interface(unsigned char* FilePath) | ||
165 | if (current_second > last_printed_second) | 167 | if (current_second > last_printed_second) |
166 | { | 168 | { |
167 | printf("nb:%d rate:%d duration:%f total_duration:%f\n", frame->nb_samples, codec_ctx->sample_rate, frame_duration, current_second); | 169 | printf("nb:%d rate:%d duration:%f total_duration:%f\n", frame->nb_samples, codec_ctx->sample_rate, frame_duration, current_second); |
170 | + | ||
171 | + //回传播放时间 | ||
172 | + Megaphone_PlayBackTime(current_second); | ||
173 | + | ||
168 | last_printed_second = current_second; // 更新上次打印的秒数 | 174 | last_printed_second = current_second; // 更新上次打印的秒数 |
169 | } | 175 | } |
170 | 176 |
-
请 注册 或 登录 后发表评论