正在显示
67 个修改的文件
包含
2356 行增加
和
1182 行删除
| @@ -154,7 +154,16 @@ | @@ -154,7 +154,16 @@ | ||
| 154 | "msp_cmn.h": "c", | 154 | "msp_cmn.h": "c", |
| 155 | "ctype.h": "c", | 155 | "ctype.h": "c", |
| 156 | "intl_interface.h": "c", | 156 | "intl_interface.h": "c", |
| 157 | - "iflytek_1.h": "c" | 157 | + "iflytek_1.h": "c", |
| 158 | + "warnlight.h": "c", | ||
| 159 | + "searchlight.h": "c", | ||
| 160 | + "speex_preprocess.h": "c", | ||
| 161 | + "ff_filter.h": "c", | ||
| 162 | + "motorfinetuning.h": "c", | ||
| 163 | + "debuginfo.h": "c", | ||
| 164 | + "h3_ircut.h": "c", | ||
| 165 | + "dji_high_speed_data_channel.h": "c", | ||
| 166 | + "psdk_ui.h": "c" | ||
| 158 | }, | 167 | }, |
| 159 | "Codegeex.GenerationPreference": "automatic", | 168 | "Codegeex.GenerationPreference": "automatic", |
| 160 | "C_Cpp.dimInactiveRegions": false, | 169 | "C_Cpp.dimInactiveRegions": false, |
| 1 | # 编译链的配置 | 1 | # 编译链的配置 |
| 2 | 2 | ||
| 3 | #1、编译链与设备类型的选择 | 3 | #1、编译链与设备类型的选择 |
| 4 | -set(DEVICE_NAME JZ_H150S) | 4 | +set(DEVICE_NAME JZ_T40) |
| 5 | #上一行为禁止修改行 | 5 | #上一行为禁止修改行 |
| 6 | 6 | ||
| 7 | message("**************************JZSDK构建编译开始***************************\n") | 7 | message("**************************JZSDK构建编译开始***************************\n") |
| @@ -60,19 +60,6 @@ if(${IRCUT_MODULE} STREQUAL "VERSION_SWITCH_ON") | @@ -60,19 +60,6 @@ if(${IRCUT_MODULE} STREQUAL "VERSION_SWITCH_ON") | ||
| 60 | 60 | ||
| 61 | endif() | 61 | endif() |
| 62 | 62 | ||
| 63 | -#如果要加载光源模块,需要加载以下附属内容 | ||
| 64 | -if(${LIGHTING_MODULE} STREQUAL "VERSION_SWITCH_ON") | ||
| 65 | - message("\n光源模块加载中") | ||
| 66 | - | ||
| 67 | - #打开光源的代码编译部分 | ||
| 68 | - add_definitions(-DMACRO_LIGHTING_MODULE) | ||
| 69 | - | ||
| 70 | - #将光源的源代码加入编译中 | ||
| 71 | - file(GLOB_RECURSE LIGHTING_SRC ${ROOT_DIRS}Module/Lighting/*.c) | ||
| 72 | - list(APPEND ALL_SRC_FILES ${LIGHTING_SRC}) | ||
| 73 | - | ||
| 74 | -endif() | ||
| 75 | - | ||
| 76 | #如果要加载探照灯模块,需要加载以下附属内容 | 63 | #如果要加载探照灯模块,需要加载以下附属内容 |
| 77 | if(${SEARCHLIGHT_MODULE} STREQUAL "VERSION_SWITCH_ON") | 64 | if(${SEARCHLIGHT_MODULE} STREQUAL "VERSION_SWITCH_ON") |
| 78 | message("\n探照灯模块加载中") | 65 | message("\n探照灯模块加载中") |
| @@ -86,6 +73,19 @@ if(${SEARCHLIGHT_MODULE} STREQUAL "VERSION_SWITCH_ON") | @@ -86,6 +73,19 @@ if(${SEARCHLIGHT_MODULE} STREQUAL "VERSION_SWITCH_ON") | ||
| 86 | 73 | ||
| 87 | endif() | 74 | endif() |
| 88 | 75 | ||
| 76 | +#如果要加载警示灯模块,需要加载以下附属内容 | ||
| 77 | +if(${WARNLIGHT_MODULE} STREQUAL "VERSION_SWITCH_ON") | ||
| 78 | + message("\n警示灯模块加载中") | ||
| 79 | + | ||
| 80 | + #打开探照灯的代码编译部分 | ||
| 81 | + add_definitions(-DMACRO_WARNLIGHT_MODULE) | ||
| 82 | + | ||
| 83 | + #将探照灯的源代码加入编译中 | ||
| 84 | + file(GLOB_RECURSE WARNLIGHT_SRC ${ROOT_DIRS}Module/WarnLight/*.c) | ||
| 85 | + list(APPEND ALL_SRC_FILES ${WARNLIGHT_SRC}) | ||
| 86 | + | ||
| 87 | +endif() | ||
| 88 | + | ||
| 89 | #如果要加载侧面激光模块,需要加载以下附属内容 | 89 | #如果要加载侧面激光模块,需要加载以下附属内容 |
| 90 | if(${SIDE_LASER_MODULE} STREQUAL "VERSION_SWITCH_ON") | 90 | if(${SIDE_LASER_MODULE} STREQUAL "VERSION_SWITCH_ON") |
| 91 | message("\n侧面激光模块加载中") | 91 | message("\n侧面激光模块加载中") |
| @@ -17,12 +17,12 @@ set(IRCUT_MODULE VERSION_SWITCH_OFF) | @@ -17,12 +17,12 @@ set(IRCUT_MODULE VERSION_SWITCH_OFF) | ||
| 17 | 17 | ||
| 18 | ############### 光源模块 ########################## | 18 | ############### 光源模块 ########################## |
| 19 | 19 | ||
| 20 | -# LIGHTING 光源处理模块 | ||
| 21 | -set(LIGHTING_MODULE VERSION_SWITCH_OFF) | ||
| 22 | - | ||
| 23 | # SEARCHLIGHT 探照灯处理模块 | 20 | # SEARCHLIGHT 探照灯处理模块 |
| 24 | set(SEARCHLIGHT_MODULE VERSION_SWITCH_OFF) | 21 | set(SEARCHLIGHT_MODULE VERSION_SWITCH_OFF) |
| 25 | 22 | ||
| 23 | +# WARNLIGHT 警示灯处理模块 | ||
| 24 | +set(WARNLIGHT_MODULE VERSION_SWITCH_OFF) | ||
| 25 | + | ||
| 26 | ################ 喊话器模块 ####################### | 26 | ################ 喊话器模块 ####################### |
| 27 | 27 | ||
| 28 | # 喊话器模块 | 28 | # 喊话器模块 |
| @@ -74,6 +74,9 @@ set(LIB_KT_MODULE VERSION_SWITCH_OFF) | @@ -74,6 +74,9 @@ set(LIB_KT_MODULE VERSION_SWITCH_OFF) | ||
| 74 | # 飒特库 | 74 | # 飒特库 |
| 75 | set(LIB_SATIRC_MODULE VERSION_SWITCH_OFF) | 75 | set(LIB_SATIRC_MODULE VERSION_SWITCH_OFF) |
| 76 | 76 | ||
| 77 | +# speex库 | ||
| 78 | +set(SPEEX_MODULE VERSION_SWITCH_OFF) | ||
| 79 | + | ||
| 77 | ########################## 通用库加载 ########################################### | 80 | ########################## 通用库加载 ########################################### |
| 78 | 81 | ||
| 79 | # 添加信息模块 | 82 | # 添加信息模块 |
| @@ -105,9 +108,6 @@ if("${DEVICE_NAME}" STREQUAL "JZ_H1E") | @@ -105,9 +108,6 @@ if("${DEVICE_NAME}" STREQUAL "JZ_H1E") | ||
| 105 | # 添加Gimbal 云台处理模块 | 108 | # 添加Gimbal 云台处理模块 |
| 106 | set(GIMBAL_MODULE VERSION_SWITCH_ON) | 109 | set(GIMBAL_MODULE VERSION_SWITCH_ON) |
| 107 | 110 | ||
| 108 | - # 添加LIGHTING 光源处理模块 | ||
| 109 | - set(LIGHTING_MODULE VERSION_SWITCH_ON) | ||
| 110 | - | ||
| 111 | # 添加喊话器模块 | 111 | # 添加喊话器模块 |
| 112 | set(MEGAPHONE_MODULE VERSION_SWITCH_ON) | 112 | set(MEGAPHONE_MODULE VERSION_SWITCH_ON) |
| 113 | 113 | ||
| @@ -128,8 +128,11 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_H1T") | @@ -128,8 +128,11 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_H1T") | ||
| 128 | # 添加Gimbal 云台处理模块 | 128 | # 添加Gimbal 云台处理模块 |
| 129 | set(GIMBAL_MODULE VERSION_SWITCH_ON) | 129 | set(GIMBAL_MODULE VERSION_SWITCH_ON) |
| 130 | 130 | ||
| 131 | - # 添加LIGHTING 光源处理模块 | ||
| 132 | - set(LIGHTING_MODULE VERSION_SWITCH_ON) | 131 | + # 添加SEARCHLIGHT 探照灯处理模块 |
| 132 | + set(SEARCHLIGHT_MODULE VERSION_SWITCH_ON) | ||
| 133 | + | ||
| 134 | + # 添加WARNLIGHT 警示灯处理模块 | ||
| 135 | + set(WARNLIGHT_MODULE VERSION_SWITCH_ON) | ||
| 133 | 136 | ||
| 134 | # 添加喊话器模块 | 137 | # 添加喊话器模块 |
| 135 | set(MEGAPHONE_MODULE VERSION_SWITCH_ON) | 138 | set(MEGAPHONE_MODULE VERSION_SWITCH_ON) |
| @@ -151,8 +154,11 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_U3") | @@ -151,8 +154,11 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_U3") | ||
| 151 | # 添加Gimbal 云台处理模块 | 154 | # 添加Gimbal 云台处理模块 |
| 152 | set(GIMBAL_MODULE VERSION_SWITCH_ON) | 155 | set(GIMBAL_MODULE VERSION_SWITCH_ON) |
| 153 | 156 | ||
| 154 | - # 添加LIGHTING 光源处理模块 | ||
| 155 | - set(LIGHTING_MODULE VERSION_SWITCH_ON) | 157 | + # 添加SEARCHLIGHT 探照灯处理模块 |
| 158 | + set(SEARCHLIGHT_MODULE VERSION_SWITCH_ON) | ||
| 159 | + | ||
| 160 | + # 添加WARNLIGHT 警示灯处理模块 | ||
| 161 | + set(WARNLIGHT_MODULE VERSION_SWITCH_ON) | ||
| 156 | 162 | ||
| 157 | # 添加喊话器模块 | 163 | # 添加喊话器模块 |
| 158 | set(MEGAPHONE_MODULE VERSION_SWITCH_ON) | 164 | set(MEGAPHONE_MODULE VERSION_SWITCH_ON) |
| @@ -174,8 +180,11 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_U3S") | @@ -174,8 +180,11 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_U3S") | ||
| 174 | # 添加Gimbal 云台处理模块 | 180 | # 添加Gimbal 云台处理模块 |
| 175 | set(GIMBAL_MODULE VERSION_SWITCH_ON) | 181 | set(GIMBAL_MODULE VERSION_SWITCH_ON) |
| 176 | 182 | ||
| 177 | - # 添加LIGHTING 光源处理模块 | ||
| 178 | - set(LIGHTING_MODULE VERSION_SWITCH_ON) | 183 | + # 添加SEARCHLIGHT 探照灯处理模块 |
| 184 | + set(SEARCHLIGHT_MODULE VERSION_SWITCH_ON) | ||
| 185 | + | ||
| 186 | + # 添加WARNLIGHT 警示灯处理模块 | ||
| 187 | + set(WARNLIGHT_MODULE VERSION_SWITCH_ON) | ||
| 179 | 188 | ||
| 180 | # 添加喊话器模块 | 189 | # 添加喊话器模块 |
| 181 | set(MEGAPHONE_MODULE VERSION_SWITCH_ON) | 190 | set(MEGAPHONE_MODULE VERSION_SWITCH_ON) |
| @@ -200,8 +209,11 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_U3D") | @@ -200,8 +209,11 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_U3D") | ||
| 200 | # 添加Gimbal 云台处理模块 | 209 | # 添加Gimbal 云台处理模块 |
| 201 | set(GIMBAL_MODULE VERSION_SWITCH_ON) | 210 | set(GIMBAL_MODULE VERSION_SWITCH_ON) |
| 202 | 211 | ||
| 203 | - # 添加LIGHTING 光源处理模块 | ||
| 204 | - set(LIGHTING_MODULE VERSION_SWITCH_ON) | 212 | + # 添加SEARCHLIGHT 探照灯处理模块 |
| 213 | + set(SEARCHLIGHT_MODULE VERSION_SWITCH_ON) | ||
| 214 | + | ||
| 215 | + # 添加WARNLIGHT 警示灯处理模块 | ||
| 216 | + set(WARNLIGHT_MODULE VERSION_SWITCH_ON) | ||
| 205 | 217 | ||
| 206 | # 添加喊话器模块 | 218 | # 添加喊话器模块 |
| 207 | set(MEGAPHONE_MODULE VERSION_SWITCH_ON) | 219 | set(MEGAPHONE_MODULE VERSION_SWITCH_ON) |
| @@ -223,8 +235,11 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_U30") | @@ -223,8 +235,11 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_U30") | ||
| 223 | # 添加Gimbal 云台处理模块 | 235 | # 添加Gimbal 云台处理模块 |
| 224 | set(GIMBAL_MODULE VERSION_SWITCH_ON) | 236 | set(GIMBAL_MODULE VERSION_SWITCH_ON) |
| 225 | 237 | ||
| 226 | - # 添加LIGHTING 光源处理模块 | ||
| 227 | - set(LIGHTING_MODULE VERSION_SWITCH_ON) | 238 | + # 添加SEARCHLIGHT 探照灯处理模块 |
| 239 | + set(SEARCHLIGHT_MODULE VERSION_SWITCH_ON) | ||
| 240 | + | ||
| 241 | + # 添加WARNLIGHT 警示灯处理模块 | ||
| 242 | + set(WARNLIGHT_MODULE VERSION_SWITCH_ON) | ||
| 228 | 243 | ||
| 229 | # 添加喊话器模块 | 244 | # 添加喊话器模块 |
| 230 | set(MEGAPHONE_MODULE VERSION_SWITCH_ON) | 245 | set(MEGAPHONE_MODULE VERSION_SWITCH_ON) |
| @@ -336,9 +351,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_C1") | @@ -336,9 +351,6 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_C1") | ||
| 336 | # 添加Gimbal 云台处理模块 | 351 | # 添加Gimbal 云台处理模块 |
| 337 | set(GIMBAL_MODULE VERSION_SWITCH_ON) | 352 | set(GIMBAL_MODULE VERSION_SWITCH_ON) |
| 338 | 353 | ||
| 339 | - # 添加LIGHTING 光源处理模块 | ||
| 340 | - set(LIGHTING_MODULE VERSION_SWITCH_ON) | ||
| 341 | - | ||
| 342 | # 添加MediaProc 媒体管理模块 | 354 | # 添加MediaProc 媒体管理模块 |
| 343 | set(MEDIA_PROC_MODULE VERSION_SWITCH_ON) | 355 | set(MEDIA_PROC_MODULE VERSION_SWITCH_ON) |
| 344 | 356 | ||
| @@ -395,9 +407,9 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_T40") | @@ -395,9 +407,9 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_T40") | ||
| 395 | 407 | ||
| 396 | # 添加Gimbal 云台处理模块 | 408 | # 添加Gimbal 云台处理模块 |
| 397 | set(GIMBAL_MODULE VERSION_SWITCH_ON) | 409 | set(GIMBAL_MODULE VERSION_SWITCH_ON) |
| 398 | - | ||
| 399 | - # 添加LIGHTING 光源处理模块 | ||
| 400 | - set(LIGHTING_MODULE VERSION_SWITCH_ON) | 410 | + |
| 411 | + # 添加WARNLIGHT 警示灯处理模块 | ||
| 412 | + set(WARNLIGHT_MODULE VERSION_SWITCH_ON) | ||
| 401 | 413 | ||
| 402 | # 添加探照灯模块 | 414 | # 添加探照灯模块 |
| 403 | set(SEARCHLIGHT_MODULE VERSION_SWITCH_ON) | 415 | set(SEARCHLIGHT_MODULE VERSION_SWITCH_ON) |
| @@ -405,6 +417,12 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_T40") | @@ -405,6 +417,12 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_T40") | ||
| 405 | # 添加AudioDeal 音频处理模块 | 417 | # 添加AudioDeal 音频处理模块 |
| 406 | set(AUDIODEAL_MODULE VERSION_SWITCH_ON) | 418 | set(AUDIODEAL_MODULE VERSION_SWITCH_ON) |
| 407 | 419 | ||
| 420 | + # 添加speex音频处理模块 | ||
| 421 | + # set(SPEEX_MODULE VERSION_SWITCH_ON) | ||
| 422 | + | ||
| 423 | + # 添加激光模块 | ||
| 424 | + set(SIDE_LASER_MODULE VERSION_SWITCH_ON) | ||
| 425 | + | ||
| 408 | # 添加喊话器模块 | 426 | # 添加喊话器模块 |
| 409 | set(MEGAPHONE_MODULE VERSION_SWITCH_ON) | 427 | set(MEGAPHONE_MODULE VERSION_SWITCH_ON) |
| 410 | 428 |
| @@ -56,6 +56,19 @@ if(${OPUS_MODULE} STREQUAL "VERSION_SWITCH_ON") | @@ -56,6 +56,19 @@ if(${OPUS_MODULE} STREQUAL "VERSION_SWITCH_ON") | ||
| 56 | message("OPUS模块已加载\n") | 56 | message("OPUS模块已加载\n") |
| 57 | endif() | 57 | endif() |
| 58 | 58 | ||
| 59 | +if(${SPEEX_MODULE} STREQUAL "VERSION_SWITCH_ON") | ||
| 60 | + | ||
| 61 | + add_definitions(-DMACRO_SPEEX_MODULE) #加载模块 | ||
| 62 | + | ||
| 63 | + set(SPEEX_DIRS "${ROOT_DIRS}ThirdParty/Speex/lib/arm-cortexa9-linux-gnueabihf") | ||
| 64 | + include_directories(${ROOT_DIRS}ThirdParty/Speex/include) | ||
| 65 | + target_link_libraries( | ||
| 66 | + ${PROJECT_NAME} | ||
| 67 | + ${SPEEX_DIRS}/libspeexdsp.so | ||
| 68 | + ) | ||
| 69 | + message("Speex模块已加载\n") | ||
| 70 | +endif() | ||
| 71 | + | ||
| 59 | # if(${CedarxLib} STREQUAL "VERSION_SWITCH_ON") | 72 | # if(${CedarxLib} STREQUAL "VERSION_SWITCH_ON") |
| 60 | # message("\nCedarX已加载\n") | 73 | # message("\nCedarX已加载\n") |
| 61 | # target_link_libraries(${PROJECT_NAME} | 74 | # target_link_libraries(${PROJECT_NAME} |
| @@ -180,7 +193,6 @@ endif() | @@ -180,7 +193,6 @@ endif() | ||
| 180 | 193 | ||
| 181 | endif() | 194 | endif() |
| 182 | 195 | ||
| 183 | - | ||
| 184 | #RK_mmp库 | 196 | #RK_mmp库 |
| 185 | if(${LIB_RK_MMP} STREQUAL "VERSION_SWITCH_ON") | 197 | if(${LIB_RK_MMP} STREQUAL "VERSION_SWITCH_ON") |
| 186 | message("RK_MMP库已加载\n") | 198 | message("RK_MMP库已加载\n") |
JZsdk_Common/JZsdk_Base/JZring/JZring.c
0 → 100644
| 1 | +#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h" | ||
| 2 | +#include <string.h> // 添加memcpy函数支持 | ||
| 3 | +#include "JZring.h" | ||
| 4 | + | ||
| 5 | +typedef struct T_JZring | ||
| 6 | +{ | ||
| 7 | + U8_t *buffer; // 缓冲区指针 | ||
| 8 | + U32_t size; // 缓冲区总容量 | ||
| 9 | + U32_t head; // 写入位置(下一个可写位置) | ||
| 10 | + U32_t tail; // 读取位置(下一个可读位置) | ||
| 11 | + U32_t count; // 当前数据量(可选改进) | ||
| 12 | +} T_JZring; | ||
| 13 | + | ||
| 14 | + | ||
| 15 | +// 初始化环形缓冲区 | ||
| 16 | +T_JZsdkReturnCode JZring_Init(T_JZringHandle *ring, U8_t *buffer, U32_t size) | ||
| 17 | +{ | ||
| 18 | + if (!buffer || size == 0) | ||
| 19 | + { | ||
| 20 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
| 21 | + } | ||
| 22 | + | ||
| 23 | + //注册ring | ||
| 24 | + T_JZring *r = (T_JZring*)malloc(sizeof(T_JZring)); | ||
| 25 | + if (!r) { | ||
| 26 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
| 27 | + } | ||
| 28 | + | ||
| 29 | + r->buffer = buffer; | ||
| 30 | + r->size = size; | ||
| 31 | + r->head = 0; | ||
| 32 | + r->tail = 0; | ||
| 33 | + r->count = 0; // 初始化数据计数 | ||
| 34 | + | ||
| 35 | + *ring = (T_JZringHandle)r; | ||
| 36 | + | ||
| 37 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 38 | +} | ||
| 39 | + | ||
| 40 | +// 写入数据到环形缓冲区 | ||
| 41 | +T_JZsdkReturnCode JZring_Write(T_JZringHandle ring, const U8_t *data, U32_t size) | ||
| 42 | +{ | ||
| 43 | + if (!ring || !data) { | ||
| 44 | + return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER; | ||
| 45 | + } | ||
| 46 | + if (size == 0) { | ||
| 47 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 48 | + } | ||
| 49 | + | ||
| 50 | + T_JZring *r = (T_JZring*)ring; | ||
| 51 | + | ||
| 52 | + // 检查可用空间 | ||
| 53 | + U32_t free_space = r->size - r->count; | ||
| 54 | + if (size > free_space) { | ||
| 55 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
| 56 | + } | ||
| 57 | + | ||
| 58 | + // 分两段复制数据(处理回绕) | ||
| 59 | + U32_t first_chunk = r->size - r->head; | ||
| 60 | + if (first_chunk >= size) { | ||
| 61 | + memcpy(r->buffer + r->head, data, size); | ||
| 62 | + r->head = (r->head + size) % r->size; | ||
| 63 | + } else { | ||
| 64 | + memcpy(r->buffer + r->head, data, first_chunk); | ||
| 65 | + memcpy(r->buffer, data + first_chunk, size - first_chunk); | ||
| 66 | + r->head = size - first_chunk; | ||
| 67 | + } | ||
| 68 | + | ||
| 69 | + r->count += size; // 更新数据计数 | ||
| 70 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 71 | +} | ||
| 72 | + | ||
| 73 | +// 从环形缓冲区读取数据 | ||
| 74 | +T_JZsdkReturnCode JZring_Read(T_JZringHandle ring, U8_t *data, U32_t size, U32_t *readSize) | ||
| 75 | +{ | ||
| 76 | + if (!ring || !data || !readSize) { | ||
| 77 | + return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER; | ||
| 78 | + } | ||
| 79 | + | ||
| 80 | + T_JZring *r = (T_JZring*)ring; | ||
| 81 | + *readSize = 0; | ||
| 82 | + | ||
| 83 | + if (r->count == 0 || size == 0) { | ||
| 84 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 85 | + } | ||
| 86 | + | ||
| 87 | + // 计算实际可读数量 | ||
| 88 | + U32_t bytes_to_read = (size > r->count) ? r->count : size; | ||
| 89 | + | ||
| 90 | + // 分两段复制数据(处理回绕) | ||
| 91 | + U32_t first_chunk = r->size - r->tail; | ||
| 92 | + if (first_chunk >= bytes_to_read) { | ||
| 93 | + memcpy(data, r->buffer + r->tail, bytes_to_read); | ||
| 94 | + r->tail = (r->tail + bytes_to_read) % r->size; | ||
| 95 | + } else { | ||
| 96 | + memcpy(data, r->buffer + r->tail, first_chunk); | ||
| 97 | + memcpy(data + first_chunk, r->buffer, bytes_to_read - first_chunk); | ||
| 98 | + r->tail = bytes_to_read - first_chunk; | ||
| 99 | + } | ||
| 100 | + | ||
| 101 | + r->count -= bytes_to_read; // 更新数据计数 | ||
| 102 | + *readSize = bytes_to_read; | ||
| 103 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 104 | +} | ||
| 105 | + | ||
| 106 | +T_JZsdkReturnCode JZring_GetSize(T_JZringHandle ring, U32_t *size) | ||
| 107 | +{ | ||
| 108 | + T_JZring *ringHandle = (T_JZring*)ring; | ||
| 109 | + | ||
| 110 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 111 | +} | ||
| 112 | + | ||
| 113 | +T_JZsdkReturnCode JZring_GetFreeSize(T_JZringHandle ring, U32_t *size) | ||
| 114 | +{ | ||
| 115 | + T_JZring *ringHandle = (T_JZring*)ring; | ||
| 116 | + | ||
| 117 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 118 | +} | ||
| 119 | + | ||
| 120 | +T_JZsdkReturnCode JZring_Reset(T_JZringHandle ring) | ||
| 121 | +{ | ||
| 122 | + T_JZring *ringHandle = (T_JZring*)ring; | ||
| 123 | + | ||
| 124 | + ringHandle->head = 0; | ||
| 125 | + ringHandle->tail = 0; | ||
| 126 | + | ||
| 127 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 128 | +} | ||
| 129 | + | ||
| 130 | +T_JZsdkReturnCode JZring_DeInit(T_JZringHandle ring) | ||
| 131 | +{ | ||
| 132 | + T_JZring *ringHandle = (T_JZring*)ring; | ||
| 133 | + | ||
| 134 | + ringHandle->buffer = NULL; | ||
| 135 | + ringHandle->size = 0; | ||
| 136 | + ringHandle->head = 0; | ||
| 137 | + ringHandle->tail = 0; | ||
| 138 | + | ||
| 139 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 140 | +} |
| 1 | /** | 1 | /** |
| 2 | ******************************************************************** | 2 | ******************************************************************** |
| 3 | - * @file WarningLight_V3S_H1T.h | ||
| 4 | - * WarningLight_V3S_H1T的头文件 | 3 | + * @file JZring.h |
| 4 | + * 环形缓冲区 | ||
| 5 | * | 5 | * |
| 6 | ********************************************************************* | 6 | ********************************************************************* |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | /* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/ | 9 | /* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/ |
| 10 | -#ifndef WARNINGLIGHT_V3S_H1T_H | ||
| 11 | -#define WARNINGLIGHT_V3S_H1T_H | 10 | +#ifndef JZ_RING_H |
| 11 | +#define JZ_RING_H | ||
| 12 | 12 | ||
| 13 | /* Includes ------------------------------------------------------------------*/ | 13 | /* Includes ------------------------------------------------------------------*/ |
| 14 | #include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h" | 14 | #include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h" |
| @@ -18,16 +18,15 @@ extern "C" { | @@ -18,16 +18,15 @@ extern "C" { | ||
| 18 | #endif | 18 | #endif |
| 19 | 19 | ||
| 20 | /* Exported constants --------------------------------------------------------*/ | 20 | /* Exported constants --------------------------------------------------------*/ |
| 21 | -/* 常亮定义*/ | ||
| 22 | - | 21 | +typedef void* T_JZringHandle; |
| 23 | 22 | ||
| 24 | /* Exported types ------------------------------------------------------------*/ | 23 | /* Exported types ------------------------------------------------------------*/ |
| 25 | 24 | ||
| 25 | + | ||
| 26 | /* Exported functions --------------------------------------------------------*/ | 26 | /* Exported functions --------------------------------------------------------*/ |
| 27 | -T_JZsdkReturnCode WarningLight_V3S_H1T_Set_WarningLight_Status(int status, int mode); | ||
| 28 | -T_JZsdkReturnCode WarningLight_V3S_H1T_Set_WarningLight_Color(int color1, int color2); | ||
| 29 | -T_JZsdkReturnCode WarningLight_V3S_H1T_CheckStatus_WarningLightStatus(); | ||
| 30 | -T_JZsdkReturnCode WarningLight_V3S_H1T_CheckStatus_WarningLightColor(); | 27 | +T_JZsdkReturnCode JZring_Init(T_JZringHandle *ring, U8_t *buffer, U32_t size); |
| 28 | +T_JZsdkReturnCode JZring_Write(T_JZringHandle ring, const U8_t *data, U32_t size); | ||
| 29 | +T_JZsdkReturnCode JZring_Read(T_JZringHandle ring, U8_t *data, U32_t size, U32_t *readSize); | ||
| 31 | 30 | ||
| 32 | #ifdef __cplusplus | 31 | #ifdef __cplusplus |
| 33 | } | 32 | } |
| @@ -147,6 +147,8 @@ typedef enum { | @@ -147,6 +147,8 @@ typedef enum { | ||
| 147 | 147 | ||
| 148 | JZ_INSCODE_5AFRAME_SEARCHLIGHT_CONTROL = 0x10000E00, //探照灯开光 | 148 | JZ_INSCODE_5AFRAME_SEARCHLIGHT_CONTROL = 0x10000E00, //探照灯开光 |
| 149 | JZ_INSCODE_5AFRAME_SEARCHLIGHT_SET_LUMEN = 0x10000E10, //设置探照灯亮度 | 149 | JZ_INSCODE_5AFRAME_SEARCHLIGHT_SET_LUMEN = 0x10000E10, //设置探照灯亮度 |
| 150 | + JZ_INSCODE_5AFRAME_SEARCHLIGHT_SET_LUMENPOWERLIMIT = 0x10000E11, //设置探照灯亮度功率限制 | ||
| 151 | + | ||
| 150 | JZ_INSCODE_5AFRAME_SEARCHLIGHT_SET_FREQUENCY = 0x10000E20, //设置把爆闪频率 | 152 | JZ_INSCODE_5AFRAME_SEARCHLIGHT_SET_FREQUENCY = 0x10000E20, //设置把爆闪频率 |
| 151 | JZ_INSCODE_5AFRAME_SEARCHLIGHT_MESSAGE_SUBSCRIPTION_CONTROL = 0x10000E21,//探照灯消息订阅控制 | 153 | JZ_INSCODE_5AFRAME_SEARCHLIGHT_MESSAGE_SUBSCRIPTION_CONTROL = 0x10000E21,//探照灯消息订阅控制 |
| 152 | 154 |
| @@ -24,6 +24,7 @@ typedef enum JZsdk_Widget_Control | @@ -24,6 +24,7 @@ typedef enum JZsdk_Widget_Control | ||
| 24 | JZSDK_WIDGET_LASTSONG = 0x0000, // 控件上一曲 | 24 | JZSDK_WIDGET_LASTSONG = 0x0000, // 控件上一曲 |
| 25 | JZSDK_WIDGET_NEXTSONG = 0x0001, // 控件下一曲 | 25 | JZSDK_WIDGET_NEXTSONG = 0x0001, // 控件下一曲 |
| 26 | JZSDK_WIDGET_PLAYANDSTOP = 0x0002, // 控件播放暂停 | 26 | JZSDK_WIDGET_PLAYANDSTOP = 0x0002, // 控件播放暂停 |
| 27 | + JZSDK_WIDGET_VOLUME = 0x0003, // 控件音量 | ||
| 27 | 28 | ||
| 28 | JZSDK_WIDGET_SIDE_LASER_MODE = 0x0020, | 29 | JZSDK_WIDGET_SIDE_LASER_MODE = 0x0020, |
| 29 | 30 |
| @@ -102,6 +102,19 @@ typedef enum E_JZ_SingleCompensationMode{ | @@ -102,6 +102,19 @@ typedef enum E_JZ_SingleCompensationMode{ | ||
| 102 | JZ_SINGLE_COMPENSATION_MODE_PITCH_RIGHT = 1, | 102 | JZ_SINGLE_COMPENSATION_MODE_PITCH_RIGHT = 1, |
| 103 | }E_JZ_SingleCompensationMode; | 103 | }E_JZ_SingleCompensationMode; |
| 104 | 104 | ||
| 105 | +typedef enum E_JZ_GimbalSingleCalibrationMode{ | ||
| 106 | + JZ_GIMBAL_SINGLE_CALIBRATION_MODE_LEFT_MAX = 0, | ||
| 107 | + JZ_GIMBAL_SINGLE_CALIBRATION_MODE_LEFT_MIN = 1, | ||
| 108 | + JZ_GIMBAL_SINGLE_CALIBRATION_MODE_LEFT_ZERO = 2, | ||
| 109 | + JZ_GIMBAL_SINGLE_CALIBRATION_MODE_LEFT_RESET = 3, | ||
| 110 | + JZ_GIMBAL_SINGLE_CALIBRATION_MODE_LEFT_DEBUG_ANGLE_RESET = 4, | ||
| 111 | + JZ_GIMBAL_SINGLE_CALIBRATION_MODE_RIGHT_MAX = 5, | ||
| 112 | + JZ_GIMBAL_SINGLE_CALIBRATION_MODE_RIGHT_MIN = 6, | ||
| 113 | + JZ_GIMBAL_SINGLE_CALIBRATION_MODE_RIGHT_ZERO = 7, | ||
| 114 | + JZ_GIMBAL_SINGLE_CALIBRATION_MODE_RIGHT_RESET = 8, | ||
| 115 | + JZ_GIMBAL_SINGLE_CALIBRATION_MODE_RIGHT_DEBUG_ANGLE_RESET = 9, | ||
| 116 | + | ||
| 117 | +}E_JZ_GimbalSingleCalibrationMode; | ||
| 105 | 118 | ||
| 106 | /* Exported types ------------------------------------------------------------*/ | 119 | /* Exported types ------------------------------------------------------------*/ |
| 107 | 120 |
| @@ -496,6 +496,10 @@ static int Comparison_5AFRAME_FirstLevelCode_0x63(char *getdata) | @@ -496,6 +496,10 @@ static int Comparison_5AFRAME_FirstLevelCode_0x63(char *getdata) | ||
| 496 | return JZ_INSCODE_5AFRAME_SEARCHLIGHT_SET_LUMEN; | 496 | return JZ_INSCODE_5AFRAME_SEARCHLIGHT_SET_LUMEN; |
| 497 | break; | 497 | break; |
| 498 | 498 | ||
| 499 | + case 0x53: | ||
| 500 | + return JZ_INSCODE_5AFRAME_SEARCHLIGHT_SET_LUMENPOWERLIMIT; | ||
| 501 | + break; | ||
| 502 | + | ||
| 499 | default: | 503 | default: |
| 500 | return JZ_ERROR_SYSTEM_FRAME_ERROR; | 504 | return JZ_ERROR_SYSTEM_FRAME_ERROR; |
| 501 | break; | 505 | break; |
| @@ -121,6 +121,22 @@ int JZsdk_GetFrameTemplate(int InsCode ,char *str, int *str_len) | @@ -121,6 +121,22 @@ int JZsdk_GetFrameTemplate(int InsCode ,char *str, int *str_len) | ||
| 121 | } | 121 | } |
| 122 | break; | 122 | break; |
| 123 | 123 | ||
| 124 | + case JZ_INSCODE_5AFRAME_LASER_CONTROL: | ||
| 125 | + { | ||
| 126 | + char sendbuf[13] = {0x5A ,0x5A ,0x77 ,0x00 ,0x0D ,0x00 ,0x00 ,0x60 ,0x51 ,0x00, 0x00 , 0x00 ,0x23}; | ||
| 127 | + memcpy(str, sendbuf, 13); | ||
| 128 | + *str_len = 13; | ||
| 129 | + } | ||
| 130 | + break; | ||
| 131 | + | ||
| 132 | + case JZ_INSCODE_5AFRAME_LASER_MODE: | ||
| 133 | + { | ||
| 134 | + char sendbuf[13] = {0x5A ,0x5A ,0x77 ,0x00 ,0x0D ,0x00 ,0x00 ,0x60 ,0x52 ,0x00, 0x00 , 0x00 ,0x23}; | ||
| 135 | + memcpy(str, sendbuf, 13); | ||
| 136 | + *str_len = 13; | ||
| 137 | + } | ||
| 138 | + break; | ||
| 139 | + | ||
| 124 | case JZ_INSCODE_5AFRAME_SEARCHLIGHT_SET_FREQUENCY: | 140 | case JZ_INSCODE_5AFRAME_SEARCHLIGHT_SET_FREQUENCY: |
| 125 | { | 141 | { |
| 126 | char sendbuf[13] = {0x5A ,0x5A ,0x77 ,0x00 ,0x0D ,0x00 ,0x00 ,0x61 ,0x51 ,0x00 ,0x00 ,0x00 ,0x23}; | 142 | char sendbuf[13] = {0x5A ,0x5A ,0x77 ,0x00 ,0x0D ,0x00 ,0x00 ,0x61 ,0x51 ,0x00 ,0x00 ,0x00 ,0x23}; |
| @@ -145,6 +161,14 @@ int JZsdk_GetFrameTemplate(int InsCode ,char *str, int *str_len) | @@ -145,6 +161,14 @@ int JZsdk_GetFrameTemplate(int InsCode ,char *str, int *str_len) | ||
| 145 | } | 161 | } |
| 146 | break; | 162 | break; |
| 147 | 163 | ||
| 164 | + case JZ_INSCODE_5AFRAME_SEARCHLIGHT_SET_LUMENPOWERLIMIT: | ||
| 165 | + { | ||
| 166 | + char sendbuf[13] = {0x5A ,0x5A ,0x77 ,0x00 ,0x0D ,0x00 ,0x00 ,0x63 ,0x53 ,0x00 ,0x00 ,0x00 ,0x23}; | ||
| 167 | + memcpy(str, sendbuf, 13); | ||
| 168 | + *str_len = 13; | ||
| 169 | + } | ||
| 170 | + break; | ||
| 171 | + | ||
| 148 | case JZ_INSCODE_5AFRAME_GIMBAL_PITCH_CONTROL: | 172 | case JZ_INSCODE_5AFRAME_GIMBAL_PITCH_CONTROL: |
| 149 | { | 173 | { |
| 150 | char sendbuf[14] = {0x5A ,0x5A ,0x77 ,0x00 ,0x0E ,0x00 ,0x00 ,0x64 ,0x51 ,0x00 ,0x00 ,0x00 ,0x00 ,0x23}; | 174 | char sendbuf[14] = {0x5A ,0x5A ,0x77 ,0x00 ,0x0E ,0x00 ,0x00 ,0x64 ,0x51 ,0x00 ,0x00 ,0x00 ,0x00 ,0x23}; |
| @@ -7,9 +7,11 @@ | @@ -7,9 +7,11 @@ | ||
| 7 | #include "Megaphone/Megaphone.h" | 7 | #include "Megaphone/Megaphone.h" |
| 8 | #include "AudioDeal/AudioDeal.h" | 8 | #include "AudioDeal/AudioDeal.h" |
| 9 | #include "Gimbal/Gimbal.h" | 9 | #include "Gimbal/Gimbal.h" |
| 10 | -#include "Lighting/Lighting_InAndOut.h" | ||
| 11 | #include "JZsdk_haldata_deal/JZsdk_data_transmisson.h" | 10 | #include "JZsdk_haldata_deal/JZsdk_data_transmisson.h" |
| 12 | 11 | ||
| 12 | +#include "SearchLight/SearchLight.h" | ||
| 13 | +#include "WarnLight/WarnLight.h" | ||
| 14 | + | ||
| 13 | #include "IRCUT/ircut.h" | 15 | #include "IRCUT/ircut.h" |
| 14 | #include "Hal_Send/HalSend.h" | 16 | #include "Hal_Send/HalSend.h" |
| 15 | 17 | ||
| @@ -25,11 +27,12 @@ void *JZ_T40_SubConnectTask(void *arg) | @@ -25,11 +27,12 @@ void *JZ_T40_SubConnectTask(void *arg) | ||
| 25 | 27 | ||
| 26 | static int DelayTime = 0; //最多尝试连接设备30s | 28 | static int DelayTime = 0; //最多尝试连接设备30s |
| 27 | 29 | ||
| 28 | - while (RightGimbalConnectFlag == JZ_FLAGCODE_OFF || | 30 | + while ( |
| 31 | + (RightGimbalConnectFlag == JZ_FLAGCODE_OFF || | ||
| 29 | LeftGimbalConnectFlag == JZ_FLAGCODE_OFF || | 32 | LeftGimbalConnectFlag == JZ_FLAGCODE_OFF || |
| 30 | RightLightConnectFlag == JZ_FLAGCODE_OFF || | 33 | RightLightConnectFlag == JZ_FLAGCODE_OFF || |
| 31 | - LeftLightConnectFlag == JZ_FLAGCODE_OFF || | ||
| 32 | - DelayTime < 30000) | 34 | + LeftLightConnectFlag == JZ_FLAGCODE_OFF ) && |
| 35 | + DelayTime < 20000) | ||
| 33 | { | 36 | { |
| 34 | s_JZsdk_Hal_Info *HalInfo = JZsdk_Hal_GetHalInfo(); | 37 | s_JZsdk_Hal_Info *HalInfo = JZsdk_Hal_GetHalInfo(); |
| 35 | 38 | ||
| @@ -146,7 +149,6 @@ void *JZ_T40_CheckLightTemperatureTask(void *arg) | @@ -146,7 +149,6 @@ void *JZ_T40_CheckLightTemperatureTask(void *arg) | ||
| 146 | delayMs(100); | 149 | delayMs(100); |
| 147 | } | 150 | } |
| 148 | 151 | ||
| 149 | - JZSDK_LOG_INFO("开始检查灯温度"); | ||
| 150 | 152 | ||
| 151 | while (1) | 153 | while (1) |
| 152 | { | 154 | { |
| @@ -202,6 +204,13 @@ static T_JZsdkReturnCode JZ_T40_BaseParamSet(void) | @@ -202,6 +204,13 @@ static T_JZsdkReturnCode JZ_T40_BaseParamSet(void) | ||
| 202 | 204 | ||
| 203 | //设置喊话器音量 | 205 | //设置喊话器音量 |
| 204 | 206 | ||
| 207 | + | ||
| 208 | + | ||
| 209 | + //测试部分 | ||
| 210 | + | ||
| 211 | + //1、将总功率设置为无限制 | ||
| 212 | + //HalSend_type1Send_SearchLight_SetLumenPowerLimit(UART_DEV_2, 0x00, 0x64, 0x20, 0x00); | ||
| 213 | + | ||
| 205 | } | 214 | } |
| 206 | 215 | ||
| 207 | /**************************** | 216 | /**************************** |
| @@ -241,9 +250,9 @@ T_JZsdkReturnCode JZ_T40_init(int mode) | @@ -241,9 +250,9 @@ T_JZsdkReturnCode JZ_T40_init(int mode) | ||
| 241 | 250 | ||
| 242 | JZsdk_HalPort_Init(UART_DEV_2, (void *)&SerialInfo2); | 251 | JZsdk_HalPort_Init(UART_DEV_2, (void *)&SerialInfo2); |
| 243 | 252 | ||
| 244 | - // //4G初始化 | ||
| 245 | - // value[0] = COMM_4G_UART_BITRATE; | ||
| 246 | - // JZsdk_HalPort_Init(UART_4G, value); | 253 | + //4G初始化 |
| 254 | + int value[1] = {COMM_4G_UART_BITRATE}; | ||
| 255 | + JZsdk_HalPort_Init(UART_4G, value); | ||
| 247 | 256 | ||
| 248 | //子设备连接 | 257 | //子设备连接 |
| 249 | JZ_T40_SubDevice_Init(); | 258 | JZ_T40_SubDevice_Init(); |
| @@ -257,11 +266,17 @@ T_JZsdkReturnCode JZ_T40_init(int mode) | @@ -257,11 +266,17 @@ T_JZsdkReturnCode JZ_T40_init(int mode) | ||
| 257 | //云台初始化 | 266 | //云台初始化 |
| 258 | Gimbal_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT); | 267 | Gimbal_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT); |
| 259 | 268 | ||
| 260 | - //灯类初始化 | ||
| 261 | - Lighting_Init(); | 269 | + //探照灯初始化 |
| 270 | + SearchLight_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT); | ||
| 271 | + | ||
| 272 | + //警灯初始化 | ||
| 273 | + WarnLight_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT); | ||
| 274 | + | ||
| 275 | + //激光初始化 | ||
| 276 | + SideLaser_Init(); | ||
| 262 | 277 | ||
| 263 | - //制造一个定时查询温度的线程 | ||
| 264 | - //JZ_T40_CheckLightTemperature(); | 278 | + //温度检测 |
| 279 | + JZ_T40_CheckLightTemperature(); | ||
| 265 | 280 | ||
| 266 | //基础参数设置 | 281 | //基础参数设置 |
| 267 | JZ_T40_BaseParamSet(); | 282 | JZ_T40_BaseParamSet(); |
| @@ -7,23 +7,23 @@ | @@ -7,23 +7,23 @@ | ||
| 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_H150S | 10 | +#define DEVICE_VERSION JZ_T40 |
| 11 | 11 | ||
| 12 | //禁止修改行 选择是串口程序 还是 psdk程序 | 12 | //禁止修改行 选择是串口程序 还是 psdk程序 |
| 13 | -#define APP_VERSION APP_PSDK | 13 | +#define APP_VERSION APP_UART |
| 14 | 14 | ||
| 15 | //禁止修改行 板子型号 | 15 | //禁止修改行 板子型号 |
| 16 | #define PLATFORM_VERSION PLATFORM_V3S | 16 | #define PLATFORM_VERSION PLATFORM_V3S |
| 17 | 17 | ||
| 18 | //禁止修改行 串口连接程序的软件版本号 | 18 | //禁止修改行 串口连接程序的软件版本号 |
| 19 | #define MAJOR_VERSION_TEN_POSITION 0 | 19 | #define MAJOR_VERSION_TEN_POSITION 0 |
| 20 | -#define MAJOR_VERSION_ONE_POSITION 1 | 20 | +#define MAJOR_VERSION_ONE_POSITION 0 |
| 21 | #define MINOR_VERSION_TEN_POSITION 0 | 21 | #define MINOR_VERSION_TEN_POSITION 0 |
| 22 | -#define MINOR_VERSION_ONE_POSITION 3 | ||
| 23 | -#define MODIFY_VERSION_TEN_POSITION 1 | 22 | +#define MINOR_VERSION_ONE_POSITION 0 |
| 23 | +#define MODIFY_VERSION_TEN_POSITION 0 | ||
| 24 | #define MODIFY_VERSION_ONE_POSITION 2 | 24 | #define MODIFY_VERSION_ONE_POSITION 2 |
| 25 | -#define DEBUG_VERSION_TEN_POSITION 0 | ||
| 26 | -#define DEBUG_VERSION_ONE_POSITION 0 | 25 | +#define DEBUG_VERSION_TEN_POSITION 2 |
| 26 | +#define DEBUG_VERSION_ONE_POSITION 2 | ||
| 27 | 27 | ||
| 28 | 28 | ||
| 29 | 29 | ||
| @@ -44,6 +44,11 @@ | @@ -44,6 +44,11 @@ | ||
| 44 | #define AUDIODEAL_CONFIG_STATUS_ON | 44 | #define AUDIODEAL_CONFIG_STATUS_ON |
| 45 | #endif | 45 | #endif |
| 46 | 46 | ||
| 47 | + //是否开启回声抑制功能 | ||
| 48 | + #ifdef MACRO_SPEEX_MODULE | ||
| 49 | + #define SPEEX_STATUS_ON | ||
| 50 | + #endif | ||
| 51 | + | ||
| 47 | //是否开启喊话器功能 | 52 | //是否开启喊话器功能 |
| 48 | #ifdef MACRO_MEGAPHONE_MODULE | 53 | #ifdef MACRO_MEGAPHONE_MODULE |
| 49 | #define MEGAPHONE_CONFIG_STATUS_ON | 54 | #define MEGAPHONE_CONFIG_STATUS_ON |
| @@ -106,16 +111,16 @@ | @@ -106,16 +111,16 @@ | ||
| 106 | #define SIDE_LASER_STATUS_ON | 111 | #define SIDE_LASER_STATUS_ON |
| 107 | #endif | 112 | #endif |
| 108 | 113 | ||
| 109 | - //是否加载光源模块 | ||
| 110 | - #ifdef MACRO_LIGHTING_MODULE | ||
| 111 | - #define LIGHTING_STATUS_ON | ||
| 112 | - #endif | ||
| 113 | - | ||
| 114 | //是否加载探照灯模块 | 114 | //是否加载探照灯模块 |
| 115 | #ifdef MACRO_SEARCHLIGHT_MODULE | 115 | #ifdef MACRO_SEARCHLIGHT_MODULE |
| 116 | #define SEARCHLIGHT_STATUS_ON | 116 | #define SEARCHLIGHT_STATUS_ON |
| 117 | #endif | 117 | #endif |
| 118 | 118 | ||
| 119 | + //是否加载警灯模块 | ||
| 120 | + #ifdef MACRO_WARNLIGHT_MODULE | ||
| 121 | + #define WARNLIGHT_STATUS_ON | ||
| 122 | + #endif | ||
| 123 | + | ||
| 119 | //是否加载云台模块 | 124 | //是否加载云台模块 |
| 120 | #ifdef MACRO_GIMBAL_MODULE | 125 | #ifdef MACRO_GIMBAL_MODULE |
| 121 | #define GIMBAL_STATUS_ON | 126 | #define GIMBAL_STATUS_ON |
| @@ -125,6 +130,7 @@ | @@ -125,6 +130,7 @@ | ||
| 125 | 130 | ||
| 126 | //是否开启音频库功能 | 131 | //是否开启音频库功能 |
| 127 | #define AUDIODEAL_CONFIG_STATUS_ON | 132 | #define AUDIODEAL_CONFIG_STATUS_ON |
| 133 | + #define SPEEX_STATUS_ON //回声抑制库 | ||
| 128 | 134 | ||
| 129 | //是否开启喊话器功能 | 135 | //是否开启喊话器功能 |
| 130 | #define MEGAPHONE_CONFIG_STATUS_ON | 136 | #define MEGAPHONE_CONFIG_STATUS_ON |
| @@ -159,12 +165,12 @@ | @@ -159,12 +165,12 @@ | ||
| 159 | //默认开启satlib | 165 | //默认开启satlib |
| 160 | #define SATIRC_LIB_STATUS_ON | 166 | #define SATIRC_LIB_STATUS_ON |
| 161 | 167 | ||
| 162 | - //默认开启光源模块 | ||
| 163 | - #define LIGHTING_STATUS_ON | ||
| 164 | - | ||
| 165 | //默认开启探照灯模块 | 168 | //默认开启探照灯模块 |
| 166 | #define SEARCHLIGHT_STATUS_ON | 169 | #define SEARCHLIGHT_STATUS_ON |
| 167 | 170 | ||
| 171 | + //默认开启警灯模块 | ||
| 172 | + #define WARNLIGHT_STATUS_ON | ||
| 173 | + | ||
| 168 | //默认开启云台模块 | 174 | //默认开启云台模块 |
| 169 | #define GIMBAL_STATUS_ON | 175 | #define GIMBAL_STATUS_ON |
| 170 | #endif | 176 | #endif |
| @@ -3008,23 +3008,21 @@ static T_JZsdkReturnCode RecvDeal_CheckStatus_SearchLightLightAttribute(int Port | @@ -3008,23 +3008,21 @@ static T_JZsdkReturnCode RecvDeal_CheckStatus_SearchLightLightAttribute(int Port | ||
| 3008 | 3008 | ||
| 3009 | T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 3009 | T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
| 3010 | 3010 | ||
| 3011 | -#ifdef SEARCHLIGHT_STATUS_ON | ||
| 3012 | //1、获取帧的序列号 | 3011 | //1、获取帧的序列号 |
| 3013 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); | 3012 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); |
| 3014 | 3013 | ||
| 3015 | //2、查询灯光属性 | 3014 | //2、查询灯光属性 |
| 3016 | - ret = UIcontrol_FlushSearchLightLightAttribute(); | ||
| 3017 | - | ||
| 3018 | - T_JzSearchLightAttribute LightAttribute; | ||
| 3019 | - ret = SearchLight_Get_SearchLightAttribute(&LightAttribute); | 3015 | + int Frequency; |
| 3016 | + int Mode; | ||
| 3017 | + int LeftBrightness; | ||
| 3018 | + int RightBrightness; | ||
| 3020 | 3019 | ||
| 3020 | + ret = UIcontrol_CheckStatus_SearchLightLightAttribute(&LeftBrightness, &RightBrightness, &Mode, &Frequency); | ||
| 3021 | 3021 | ||
| 3022 | // 2、回复灯光属性 | 3022 | // 2、回复灯光属性 |
| 3023 | - HalSend_type1Send_SearchLight_Frequency(Port, LightAttribute.Frequency); | ||
| 3024 | - HalSend_type1Send_SearchLight_Mode(Port, LightAttribute.Mode); | ||
| 3025 | - HalSend_type1Send_SearchLight_Lumen(Port, LightAttribute.LeftBrightness, LightAttribute.RightBrightness); | ||
| 3026 | - | ||
| 3027 | -#endif | 3023 | + HalSend_type1Send_SearchLight_Frequency(Port, Frequency); |
| 3024 | + HalSend_type1Send_SearchLight_Mode(Port, Mode); | ||
| 3025 | + HalSend_type1Send_SearchLight_Lumen(Port, LeftBrightness, RightBrightness); | ||
| 3028 | 3026 | ||
| 3029 | return ret; | 3027 | return ret; |
| 3030 | } | 3028 | } |
| @@ -3140,8 +3138,8 @@ static T_JZsdkReturnCode RecvDeal_CheckStatus_LaserStatus(int Port, char *getbuf | @@ -3140,8 +3138,8 @@ static T_JZsdkReturnCode RecvDeal_CheckStatus_LaserStatus(int Port, char *getbuf | ||
| 3140 | #endif | 3138 | #endif |
| 3141 | 3139 | ||
| 3142 | // 2、回复激光状态 | 3140 | // 2、回复激光状态 |
| 3143 | - HalSend_type1Send_LaserControl(Port, LaserControl); | ||
| 3144 | - HalSend_type1Send_LaserMode(Port, LaserMode); | 3141 | + HalSend_type1Send_LaserControl(Port, 0x00, LaserControl); |
| 3142 | + HalSend_type1Send_LaserMode(Port, 0x00, LaserMode); | ||
| 3145 | 3143 | ||
| 3146 | return ReturnCode; | 3144 | return ReturnCode; |
| 3147 | } | 3145 | } |
| @@ -4143,17 +4141,35 @@ static T_JZsdkReturnCode RecvDeal_ObtainSearchLight_Lumen(int Port, char *getbuf | @@ -4143,17 +4141,35 @@ static T_JZsdkReturnCode RecvDeal_ObtainSearchLight_Lumen(int Port, char *getbuf | ||
| 4143 | **********/ | 4141 | **********/ |
| 4144 | static T_JZsdkReturnCode RecvDeal_ObtainSearchLight_Temperature(int Port, char *getbuf) | 4142 | static T_JZsdkReturnCode RecvDeal_ObtainSearchLight_Temperature(int Port, char *getbuf) |
| 4145 | { | 4143 | { |
| 4146 | - //JZSDK_LOG_INFO("%s,收到探照灯温度",JZsdk_DefineCode_GetPortName(Port)); | 4144 | + |
| 4147 | 4145 | ||
| 4148 | //获取帧的序列号 | 4146 | //获取帧的序列号 |
| 4149 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); | 4147 | int FrameSequence = JZsdk_Get_FrameSequence(getbuf); |
| 4150 | 4148 | ||
| 4151 | - //1、通过数据帧2,获取值 | ||
| 4152 | - int value1 = getbuf[9]; | ||
| 4153 | - int value2 = getbuf[10]; | 4149 | + //判断数据位长度 |
| 4150 | + int FrameLenth = JZsdk_Get_FrameLength(getbuf); | ||
| 4151 | + int DataLength = FrameLenth - 11; | ||
| 4154 | 4152 | ||
| 4155 | - //2、发送到本地处理 | ||
| 4156 | - UIcontrol_ObtainSearchLight_Temperature(Port, value1, value2); | 4153 | + if (DataLength == 2) |
| 4154 | + { | ||
| 4155 | + //1、通过数据帧2,获取值 | ||
| 4156 | + int value1 = getbuf[9]; | ||
| 4157 | + int value2 = getbuf[10]; | ||
| 4158 | + | ||
| 4159 | + //JZSDK_LOG_DEBUG("%s,收到探照灯温度 %d %d",JZsdk_DefineCode_GetPortName(Port), value1, value2); | ||
| 4160 | + | ||
| 4161 | + //2、发送到本地处理 | ||
| 4162 | + UIcontrol_ObtainSearchLight_Temperature(Port, value1, value2); | ||
| 4163 | + } | ||
| 4164 | + if (DataLength == 1) | ||
| 4165 | + { | ||
| 4166 | + int value = getbuf[9]; | ||
| 4167 | + | ||
| 4168 | + //JZSDK_LOG_DEBUG("%s, %x 收到探照灯温度 %d",JZsdk_DefineCode_GetPortName(Port), FrameSequence,value); | ||
| 4169 | + | ||
| 4170 | + //2、发送到本地处理 | ||
| 4171 | + UIcontrol_ObtainSearchLight_SingleTemperature(Port, FrameSequence, value); | ||
| 4172 | + } | ||
| 4157 | 4173 | ||
| 4158 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 4174 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
| 4159 | } | 4175 | } |
| @@ -1200,6 +1200,27 @@ T_JZsdkReturnCode HalSend_type1Send_SearchLight_SetSingleLumem(int Uartport, in | @@ -1200,6 +1200,27 @@ T_JZsdkReturnCode HalSend_type1Send_SearchLight_SetSingleLumem(int Uartport, in | ||
| 1200 | HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); | 1200 | HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
| 1201 | } | 1201 | } |
| 1202 | 1202 | ||
| 1203 | +//设置亮度功率上限 | ||
| 1204 | +T_JZsdkReturnCode HalSend_type1Send_SearchLight_SetLumenPowerLimit(int Uartport,int dire, int value, int FrameSequence, int ReplyFlag) | ||
| 1205 | +{ | ||
| 1206 | + printf("发送设置亮度功率上限\n"); | ||
| 1207 | + | ||
| 1208 | + unsigned char sendbuf[256]; | ||
| 1209 | + int send_buf_len; | ||
| 1210 | + | ||
| 1211 | + //1、获取帧样板 | ||
| 1212 | + JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_SEARCHLIGHT_SET_LUMENPOWERLIMIT, sendbuf, &send_buf_len); | ||
| 1213 | + | ||
| 1214 | + //2、写入数据 | ||
| 1215 | + sendbuf[5] = ReplyFlag; | ||
| 1216 | + sendbuf[6] = FrameSequence; //帧序列 | ||
| 1217 | + sendbuf[9] = dire; | ||
| 1218 | + sendbuf[10] = value; | ||
| 1219 | + | ||
| 1220 | + //3、发送帧 | ||
| 1221 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); | ||
| 1222 | +} | ||
| 1223 | + | ||
| 1203 | 1224 | ||
| 1204 | //查询探照灯频率 | 1225 | //查询探照灯频率 |
| 1205 | T_JZsdkReturnCode HalSend_type1Send_CheckStatus_SearchLight_Frequency(int Uartport) | 1226 | T_JZsdkReturnCode HalSend_type1Send_CheckStatus_SearchLight_Frequency(int Uartport) |
| @@ -1264,7 +1285,7 @@ T_JZsdkReturnCode HalSend_type1Send_CheckStatus_SearchLight_Attribute(int Uartpo | @@ -1264,7 +1285,7 @@ T_JZsdkReturnCode HalSend_type1Send_CheckStatus_SearchLight_Attribute(int Uartpo | ||
| 1264 | //查询探照灯温度 | 1285 | //查询探照灯温度 |
| 1265 | T_JZsdkReturnCode HalSend_type1Send_CheckStatus_SearchLight_Temperture(int Uartport, int FrameSequence) | 1286 | T_JZsdkReturnCode HalSend_type1Send_CheckStatus_SearchLight_Temperture(int Uartport, int FrameSequence) |
| 1266 | { | 1287 | { |
| 1267 | - printf("发送查询探照灯温度\n"); | 1288 | + //printf("发送查询探照灯温度\n"); |
| 1268 | 1289 | ||
| 1269 | unsigned char sendbuf[256]; | 1290 | unsigned char sendbuf[256]; |
| 1270 | int send_buf_len; | 1291 | int send_buf_len; |
| @@ -1272,6 +1293,7 @@ T_JZsdkReturnCode HalSend_type1Send_CheckStatus_SearchLight_Temperture(int Uartp | @@ -1272,6 +1293,7 @@ T_JZsdkReturnCode HalSend_type1Send_CheckStatus_SearchLight_Temperture(int Uartp | ||
| 1272 | //1、获取帧样板 | 1293 | //1、获取帧样板 |
| 1273 | JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_CHECKSTATUS_SEARCHLIGHT_TEMPERATURE, sendbuf, &send_buf_len); | 1294 | JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_CHECKSTATUS_SEARCHLIGHT_TEMPERATURE, sendbuf, &send_buf_len); |
| 1274 | 1295 | ||
| 1296 | + sendbuf[5] = 0x01; | ||
| 1275 | sendbuf[6] = FrameSequence; | 1297 | sendbuf[6] = FrameSequence; |
| 1276 | 1298 | ||
| 1277 | //2、发送帧 | 1299 | //2、发送帧 |
| @@ -1413,7 +1435,7 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_UpgradeCheckResult(int Uartport, int s | @@ -1413,7 +1435,7 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_UpgradeCheckResult(int Uartport, int s | ||
| 1413 | * 设置警灯状态 | 1435 | * 设置警灯状态 |
| 1414 | * | 1436 | * |
| 1415 | * **************/ | 1437 | * **************/ |
| 1416 | -T_JZsdkReturnCode HalSend_type1Send_Set_WarningLight_Status(int Uartport,int status, int mode) | 1438 | +T_JZsdkReturnCode HalSend_type1Send_Set_WarningLight_Status(int Uartport, int frameSequence,int status, int mode) |
| 1417 | { | 1439 | { |
| 1418 | printf("发送设置警灯状态\n"); | 1440 | printf("发送设置警灯状态\n"); |
| 1419 | 1441 | ||
| @@ -1424,6 +1446,7 @@ T_JZsdkReturnCode HalSend_type1Send_Set_WarningLight_Status(int Uartport,int sta | @@ -1424,6 +1446,7 @@ T_JZsdkReturnCode HalSend_type1Send_Set_WarningLight_Status(int Uartport,int sta | ||
| 1424 | JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_WARNINGLIGHT_CONTROL, sendbuf, &send_buf_len); | 1446 | JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_WARNINGLIGHT_CONTROL, sendbuf, &send_buf_len); |
| 1425 | 1447 | ||
| 1426 | //2、写入数据 | 1448 | //2、写入数据 |
| 1449 | + sendbuf[6] = frameSequence; | ||
| 1427 | sendbuf[9] = status; | 1450 | sendbuf[9] = status; |
| 1428 | sendbuf[10] = mode; | 1451 | sendbuf[10] = mode; |
| 1429 | 1452 | ||
| @@ -1436,7 +1459,7 @@ T_JZsdkReturnCode HalSend_type1Send_Set_WarningLight_Status(int Uartport,int sta | @@ -1436,7 +1459,7 @@ T_JZsdkReturnCode HalSend_type1Send_Set_WarningLight_Status(int Uartport,int sta | ||
| 1436 | * 设置警灯颜色 | 1459 | * 设置警灯颜色 |
| 1437 | * | 1460 | * |
| 1438 | * **************/ | 1461 | * **************/ |
| 1439 | -T_JZsdkReturnCode HalSend_type1Send_Set_WarningLight_Color(int Uartport,int color1, int color2) | 1462 | +T_JZsdkReturnCode HalSend_type1Send_Set_WarningLight_Color(int Uartport, int frameSequence, int color1, int color2) |
| 1440 | { | 1463 | { |
| 1441 | printf("发送设置警灯颜色\n"); | 1464 | printf("发送设置警灯颜色\n"); |
| 1442 | 1465 | ||
| @@ -1449,6 +1472,7 @@ T_JZsdkReturnCode HalSend_type1Send_Set_WarningLight_Color(int Uartport,int colo | @@ -1449,6 +1472,7 @@ T_JZsdkReturnCode HalSend_type1Send_Set_WarningLight_Color(int Uartport,int colo | ||
| 1449 | //2、写入数据 | 1472 | //2、写入数据 |
| 1450 | sendbuf[9] = color1; | 1473 | sendbuf[9] = color1; |
| 1451 | sendbuf[10] = color2; | 1474 | sendbuf[10] = color2; |
| 1475 | + sendbuf[6] = frameSequence; | ||
| 1452 | 1476 | ||
| 1453 | //3、发送帧 | 1477 | //3、发送帧 |
| 1454 | HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); | 1478 | HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
| @@ -1557,12 +1581,60 @@ T_JZsdkReturnCode HalSend_type1Send_SearchLight_Lumen(int Uartport,int LeftLumen | @@ -1557,12 +1581,60 @@ T_JZsdkReturnCode HalSend_type1Send_SearchLight_Lumen(int Uartport,int LeftLumen | ||
| 1557 | HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); | 1581 | HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); |
| 1558 | } | 1582 | } |
| 1559 | 1583 | ||
| 1584 | + | ||
| 1585 | +/*********** | ||
| 1586 | + * | ||
| 1587 | + * 控制侧面激光 | ||
| 1588 | + * | ||
| 1589 | + * *************/ | ||
| 1590 | +T_JZsdkReturnCode HalSend_type1Send_SetLaserControl(int Uartport, int frameSequence, int Control) | ||
| 1591 | +{ | ||
| 1592 | + printf("发送 控制侧面激光\n"); | ||
| 1593 | + | ||
| 1594 | + unsigned char sendbuf[256]; | ||
| 1595 | + int send_buf_len; | ||
| 1596 | + | ||
| 1597 | + //1、获取帧样板 | ||
| 1598 | + JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_LASER_CONTROL, sendbuf, &send_buf_len); | ||
| 1599 | + | ||
| 1600 | + //2、写入数据 | ||
| 1601 | + sendbuf[6] = frameSequence; | ||
| 1602 | + sendbuf[10] = Control; | ||
| 1603 | + | ||
| 1604 | + //3、发送帧 | ||
| 1605 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); | ||
| 1606 | +} | ||
| 1607 | + | ||
| 1608 | +/*********** | ||
| 1609 | + * | ||
| 1610 | + * 控制侧面模式 | ||
| 1611 | + * | ||
| 1612 | + * *************/ | ||
| 1613 | +T_JZsdkReturnCode HalSend_type1Send_SetLaserMode(int Uartport, int frameSequence, int mode) | ||
| 1614 | +{ | ||
| 1615 | + printf("发送 控制侧面激光模式\n"); | ||
| 1616 | + | ||
| 1617 | + unsigned char sendbuf[256]; | ||
| 1618 | + int send_buf_len; | ||
| 1619 | + | ||
| 1620 | + //1、获取帧样板 | ||
| 1621 | + JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_LASER_MODE, sendbuf, &send_buf_len); | ||
| 1622 | + | ||
| 1623 | + //2、写入数据 | ||
| 1624 | + sendbuf[6] = frameSequence; | ||
| 1625 | + sendbuf[10] = mode; | ||
| 1626 | + | ||
| 1627 | + //3、发送帧 | ||
| 1628 | + HalSend_SendData(Uartport ,sendbuf, send_buf_len, MULTI_THREAD_SEND); | ||
| 1629 | +} | ||
| 1630 | + | ||
| 1631 | + | ||
| 1560 | /******************** | 1632 | /******************** |
| 1561 | * | 1633 | * |
| 1562 | * 发送侧面激光控制值 | 1634 | * 发送侧面激光控制值 |
| 1563 | * | 1635 | * |
| 1564 | * *************/ | 1636 | * *************/ |
| 1565 | -T_JZsdkReturnCode HalSend_type1Send_LaserControl(int Uartport, int Control) | 1637 | +T_JZsdkReturnCode HalSend_type1Send_LaserControl(int Uartport, int frameSequence, int Control) |
| 1566 | { | 1638 | { |
| 1567 | printf("发送侧面激光控制值帧\n"); | 1639 | printf("发送侧面激光控制值帧\n"); |
| 1568 | 1640 | ||
| @@ -1573,6 +1645,7 @@ T_JZsdkReturnCode HalSend_type1Send_LaserControl(int Uartport, int Control) | @@ -1573,6 +1645,7 @@ T_JZsdkReturnCode HalSend_type1Send_LaserControl(int Uartport, int Control) | ||
| 1573 | JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_CHECKSTATUS_LASER_STATUS_CONTROL, sendbuf, &send_buf_len); | 1645 | JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_CHECKSTATUS_LASER_STATUS_CONTROL, sendbuf, &send_buf_len); |
| 1574 | 1646 | ||
| 1575 | //2、写入数据 | 1647 | //2、写入数据 |
| 1648 | + sendbuf[6] = frameSequence; | ||
| 1576 | sendbuf[10] = Control; | 1649 | sendbuf[10] = Control; |
| 1577 | 1650 | ||
| 1578 | //3、发送帧 | 1651 | //3、发送帧 |
| @@ -1584,7 +1657,7 @@ T_JZsdkReturnCode HalSend_type1Send_LaserControl(int Uartport, int Control) | @@ -1584,7 +1657,7 @@ T_JZsdkReturnCode HalSend_type1Send_LaserControl(int Uartport, int Control) | ||
| 1584 | * 发送侧面激光模式 | 1657 | * 发送侧面激光模式 |
| 1585 | * | 1658 | * |
| 1586 | * *************/ | 1659 | * *************/ |
| 1587 | -T_JZsdkReturnCode HalSend_type1Send_LaserMode(int Uartport, int mode) | 1660 | +T_JZsdkReturnCode HalSend_type1Send_LaserMode(int Uartport, int frameSequence, int mode) |
| 1588 | { | 1661 | { |
| 1589 | printf("发送侧面激光模式值帧\n"); | 1662 | printf("发送侧面激光模式值帧\n"); |
| 1590 | 1663 | ||
| @@ -1595,6 +1668,7 @@ T_JZsdkReturnCode HalSend_type1Send_LaserMode(int Uartport, int mode) | @@ -1595,6 +1668,7 @@ T_JZsdkReturnCode HalSend_type1Send_LaserMode(int Uartport, int mode) | ||
| 1595 | JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_CHECKSTATUS_LASER_STATUS_MODE, sendbuf, &send_buf_len); | 1668 | JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_CHECKSTATUS_LASER_STATUS_MODE, sendbuf, &send_buf_len); |
| 1596 | 1669 | ||
| 1597 | //2、写入数据 | 1670 | //2、写入数据 |
| 1671 | + sendbuf[6] = frameSequence; | ||
| 1598 | sendbuf[10] = mode; | 1672 | sendbuf[10] = mode; |
| 1599 | 1673 | ||
| 1600 | //3、发送帧 | 1674 | //3、发送帧 |
| @@ -91,12 +91,14 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_CurrentPlayTimeStatus(int Uartport, in | @@ -91,12 +91,14 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_CurrentPlayTimeStatus(int Uartport, in | ||
| 91 | T_JZsdkReturnCode HalSend_type1Send_Set_SearchLightFrequency(int Uartport ,int Frequency, int FrameSequence); | 91 | T_JZsdkReturnCode HalSend_type1Send_Set_SearchLightFrequency(int Uartport ,int Frequency, int FrameSequence); |
| 92 | T_JZsdkReturnCode HalSend_type1Send_SearchLight_Control(int Uartport,int mode, int FrameSequence); | 92 | T_JZsdkReturnCode HalSend_type1Send_SearchLight_Control(int Uartport,int mode, int FrameSequence); |
| 93 | T_JZsdkReturnCode HalSend_type1Send_SearchLight_SetLumen(int Uartport, int LeftLumen, int RightLumen, int FrameSequence); | 93 | T_JZsdkReturnCode HalSend_type1Send_SearchLight_SetLumen(int Uartport, int LeftLumen, int RightLumen, int FrameSequence); |
| 94 | +T_JZsdkReturnCode HalSend_type1Send_SearchLight_SetLumenPowerLimit(int Uartport,int dire, int value, int FrameSequence, int ReplyFlag); | ||
| 95 | + | ||
| 94 | T_JZsdkReturnCode HalSend_type1Send_SearchLight_SetSingleLumem(int Uartport, int Lumen, int FrameSequence); | 96 | T_JZsdkReturnCode HalSend_type1Send_SearchLight_SetSingleLumem(int Uartport, int Lumen, int FrameSequence); |
| 95 | 97 | ||
| 96 | T_JZsdkReturnCode HalSend_type1Send_MessageSubcription_Control(int Uartport, int value); | 98 | T_JZsdkReturnCode HalSend_type1Send_MessageSubcription_Control(int Uartport, int value); |
| 97 | 99 | ||
| 98 | -T_JZsdkReturnCode HalSend_type1Send_Set_WarningLight_Status(int Uartport,int status, int mode); | ||
| 99 | -T_JZsdkReturnCode HalSend_type1Send_Set_WarningLight_Color(int Uartport,int color1, int color2); | 100 | +T_JZsdkReturnCode HalSend_type1Send_Set_WarningLight_Status(int Uartport, int frameSequence,int status, int mode); |
| 101 | +T_JZsdkReturnCode HalSend_type1Send_Set_WarningLight_Color(int Uartport, int frameSequence, int color1, int color2); | ||
| 100 | 102 | ||
| 101 | T_JZsdkReturnCode HalSend_type1Send_SerialNumber(int UartPort, int FrameSequence, char *SerialNumber, int SerialNumberLenth); | 103 | T_JZsdkReturnCode HalSend_type1Send_SerialNumber(int UartPort, int FrameSequence, char *SerialNumber, int SerialNumberLenth); |
| 102 | T_JZsdkReturnCode HalSend_type1Send_Reply_CheckSpecialParameters(int Uartport,int FrameSequence,int type, int value); | 104 | T_JZsdkReturnCode HalSend_type1Send_Reply_CheckSpecialParameters(int Uartport,int FrameSequence,int type, int value); |
| @@ -109,6 +111,7 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_CheckSpecialParameters(int Uartport,in | @@ -109,6 +111,7 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_CheckSpecialParameters(int Uartport,in | ||
| 109 | T_JZsdkReturnCode HalSend_type1Send_SearchLight_Frequency(int Uartport, int Frequency); | 111 | T_JZsdkReturnCode HalSend_type1Send_SearchLight_Frequency(int Uartport, int Frequency); |
| 110 | T_JZsdkReturnCode HalSend_type1Send_SearchLight_Mode(int Uartport, int mode); | 112 | T_JZsdkReturnCode HalSend_type1Send_SearchLight_Mode(int Uartport, int mode); |
| 111 | T_JZsdkReturnCode HalSend_type1Send_SearchLight_Lumen(int Uartport,int LeftLumen, int RightLumen); | 113 | T_JZsdkReturnCode HalSend_type1Send_SearchLight_Lumen(int Uartport,int LeftLumen, int RightLumen); |
| 114 | + | ||
| 112 | T_JZsdkReturnCode HalSend_type1Send_SearchLight_Temperature(int Uartport, int LeftTemperature, int RightTemperature); | 115 | T_JZsdkReturnCode HalSend_type1Send_SearchLight_Temperature(int Uartport, int LeftTemperature, int RightTemperature); |
| 113 | 116 | ||
| 114 | 117 | ||
| @@ -134,9 +137,11 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_UpgradeStart(int Uartport); | @@ -134,9 +137,11 @@ T_JZsdkReturnCode HalSend_type1Send_Reply_UpgradeStart(int Uartport); | ||
| 134 | T_JZsdkReturnCode HalSend_type1Send_Reply_UpgradeEnd(int Uartport); | 137 | T_JZsdkReturnCode HalSend_type1Send_Reply_UpgradeEnd(int Uartport); |
| 135 | T_JZsdkReturnCode HalSend_type1Send_Reply_UpgradeCheckResult(int Uartport, int status); | 138 | T_JZsdkReturnCode HalSend_type1Send_Reply_UpgradeCheckResult(int Uartport, int status); |
| 136 | 139 | ||
| 137 | -T_JZsdkReturnCode HalSend_type1Send_LaserControl(int Uartport, int Control); | ||
| 138 | -T_JZsdkReturnCode HalSend_type1Send_LaserMode(int Uartport, int mode); | 140 | +T_JZsdkReturnCode HalSend_type1Send_LaserControl(int Uartport, int frameSequence, int Control); |
| 141 | +T_JZsdkReturnCode HalSend_type1Send_LaserMode(int Uartport, int frameSequence, int mode); | ||
| 139 | 142 | ||
| 143 | +T_JZsdkReturnCode HalSend_type1Send_SetLaserControl(int Uartport, int frameSequence, int Control); | ||
| 144 | +T_JZsdkReturnCode HalSend_type1Send_SetLaserMode(int Uartport, int frameSequence, int mode); | ||
| 140 | 145 | ||
| 141 | 146 | ||
| 142 | /* Exported functions --------------------------------------------------------*/ | 147 | /* Exported functions --------------------------------------------------------*/ |
| @@ -221,7 +221,7 @@ static void *UartDeal_rece(void *arg) | @@ -221,7 +221,7 @@ static void *UartDeal_rece(void *arg) | ||
| 221 | // data_len2+=args->MessageLength; | 221 | // data_len2+=args->MessageLength; |
| 222 | // printf("当前接收长度%d bytesRead%d bmessage%d reslen%d\n",data_len,bytesRead,data_len2,args->ResLen); | 222 | // printf("当前接收长度%d bytesRead%d bmessage%d reslen%d\n",data_len,bytesRead,data_len2,args->ResLen); |
| 223 | 223 | ||
| 224 | -#if 1 | 224 | +#if 0 |
| 225 | JZSDK_LOG_INFO("从串口读取到,长度%d",(args->MessageLength-args->ResLen)); | 225 | JZSDK_LOG_INFO("从串口读取到,长度%d",(args->MessageLength-args->ResLen)); |
| 226 | 226 | ||
| 227 | for (int i = 0; i < (args->MessageLength-args->ResLen); i++) | 227 | for (int i = 0; i < (args->MessageLength-args->ResLen); i++) |
| @@ -523,17 +523,17 @@ T_JZsdkReturnCode JZsdk_Uart_UartSend_NotTask(int Uart_Name, unsigned char *str, | @@ -523,17 +523,17 @@ T_JZsdkReturnCode JZsdk_Uart_UartSend_NotTask(int Uart_Name, unsigned char *str, | ||
| 523 | { | 523 | { |
| 524 | if (Uart_Name == UART_4G) | 524 | if (Uart_Name == UART_4G) |
| 525 | { | 525 | { |
| 526 | - printf("向4G设备发送\n"); | 526 | + //printf("向4G设备发送\n"); |
| 527 | write(Uart_4G_fd, str, str_lenth); | 527 | write(Uart_4G_fd, str, str_lenth); |
| 528 | } | 528 | } |
| 529 | else if (Uart_Name == UART_DEV_1) | 529 | else if (Uart_Name == UART_DEV_1) |
| 530 | { | 530 | { |
| 531 | - printf("向串口1号设备发送\n"); | 531 | + //printf("向串口1号设备发送\n"); |
| 532 | write(Uart_DEV1_fd, str, str_lenth); | 532 | write(Uart_DEV1_fd, str, str_lenth); |
| 533 | } | 533 | } |
| 534 | else if (Uart_Name = UART_DEV_2) | 534 | else if (Uart_Name = UART_DEV_2) |
| 535 | { | 535 | { |
| 536 | - printf("向串口2号设备发送\n"); | 536 | + //printf("向串口2号设备发送\n"); |
| 537 | write(Uart_DEV2_fd, str, str_lenth); | 537 | write(Uart_DEV2_fd, str, str_lenth); |
| 538 | } | 538 | } |
| 539 | 539 | ||
| @@ -558,17 +558,17 @@ static void JZsdk_Uart_UartSend_Task(void *data) | @@ -558,17 +558,17 @@ static void JZsdk_Uart_UartSend_Task(void *data) | ||
| 558 | 558 | ||
| 559 | if (taskData->Uart_name == UART_4G) | 559 | if (taskData->Uart_name == UART_4G) |
| 560 | { | 560 | { |
| 561 | - printf("task4G设备发送\n"); | 561 | + //printf("task4G设备发送\n"); |
| 562 | write(Uart_4G_fd, taskData->str, taskData->str_lenth); | 562 | write(Uart_4G_fd, taskData->str, taskData->str_lenth); |
| 563 | } | 563 | } |
| 564 | else if (taskData->Uart_name == UART_DEV_1) | 564 | else if (taskData->Uart_name == UART_DEV_1) |
| 565 | { | 565 | { |
| 566 | - printf("task串口1号设备发送\n"); | 566 | + //printf("task串口1号设备发送\n"); |
| 567 | write(Uart_DEV1_fd, taskData->str, taskData->str_lenth); | 567 | write(Uart_DEV1_fd, taskData->str, taskData->str_lenth); |
| 568 | } | 568 | } |
| 569 | else if (taskData->Uart_name == UART_DEV_2) | 569 | else if (taskData->Uart_name == UART_DEV_2) |
| 570 | { | 570 | { |
| 571 | - printf("task串口2号设备发送\n"); | 571 | + //printf("task串口2号设备发送\n"); |
| 572 | write(Uart_DEV2_fd, taskData->str, taskData->str_lenth); | 572 | write(Uart_DEV2_fd, taskData->str, taskData->str_lenth); |
| 573 | } | 573 | } |
| 574 | else if (taskData->Uart_name == HAL_DATA_TRANSMISSION) | 574 | else if (taskData->Uart_name == HAL_DATA_TRANSMISSION) |
| @@ -8,7 +8,7 @@ | @@ -8,7 +8,7 @@ | ||
| 8 | #include "FF_Statement.h" | 8 | #include "FF_Statement.h" |
| 9 | #include "./AudioDeal.h" | 9 | #include "./AudioDeal.h" |
| 10 | #include "JZsdkLib.h" | 10 | #include "JZsdkLib.h" |
| 11 | - | 11 | +#include "version_choose.h" |
| 12 | 12 | ||
| 13 | 13 | ||
| 14 | #include "./AudioDealThread/AudioDealThread.h" | 14 | #include "./AudioDealThread/AudioDealThread.h" |
| @@ -18,6 +18,10 @@ | @@ -18,6 +18,10 @@ | ||
| 18 | #include "AudioStreamDeal/AudioStreamDeal.h" | 18 | #include "AudioStreamDeal/AudioStreamDeal.h" |
| 19 | #include "Filter/FF_Filter.h" | 19 | #include "Filter/FF_Filter.h" |
| 20 | 20 | ||
| 21 | +#ifdef SPEEX_STATUS_ON | ||
| 22 | + #include "Speex/Speex.h" | ||
| 23 | +#endif | ||
| 24 | + | ||
| 21 | #define MP3_DIR "/root/sdcard/1.mp3" | 25 | #define MP3_DIR "/root/sdcard/1.mp3" |
| 22 | #define PCM_16000_DIR "/root/sdcard/16000_test.pcm" | 26 | #define PCM_16000_DIR "/root/sdcard/16000_test.pcm" |
| 23 | #define READ_SIZE (2000) | 27 | #define READ_SIZE (2000) |
| @@ -119,15 +123,49 @@ T_JZsdkReturnCode AudioDeal_ResampleRest(unsigned int in_sampleRate, AVChannelLa | @@ -119,15 +123,49 @@ T_JZsdkReturnCode AudioDeal_ResampleRest(unsigned int in_sampleRate, AVChannelLa | ||
| 119 | * | 123 | * |
| 120 | * ***************************************************************************************************************************************************/ | 124 | * ***************************************************************************************************************************************************/ |
| 121 | 125 | ||
| 122 | -/*************************** | 126 | +/************* |
| 127 | + * | ||
| 128 | + * 文本类型的pcm数据导入接口 | ||
| 129 | + * | ||
| 130 | + * 区别 | ||
| 131 | + * a 使用文本专用的滤波 | ||
| 123 | * | 132 | * |
| 124 | - * pcm数据接入接口 | 133 | + * **********************/ |
| 134 | +T_JZsdkReturnCode AudioDeal_PcmDataInput_TextSteam(int In_Bitrate, unsigned char *buffer, int bytesRead) | ||
| 135 | +{ | ||
| 136 | + if (AudioDeakInfo_index == NULL) | ||
| 137 | + { | ||
| 138 | + JZSDK_LOG_ERROR("音频处理器未注册"); | ||
| 139 | + return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER; | ||
| 140 | + } | ||
| 141 | + | ||
| 142 | + while (Audiodeal_status != JZ_FLAGCODE_ON) | ||
| 143 | + { | ||
| 144 | + delayMs(1); | ||
| 145 | + } | ||
| 146 | + | ||
| 147 | + int DateType = 0x00; | ||
| 148 | + | ||
| 149 | + //1、打开音频库的处理标志位,该标志可以重复打开,只有强制关闭音频时,需要关闭该标志 | ||
| 150 | + AudioDeakInfo_index->AudioDeal_ResampleAndFilter_Execute_Flag = JZ_FLAGCODE_ON; | ||
| 151 | + | ||
| 152 | + //默认数据pcm接入口都是 单声道,16位 | ||
| 153 | + PCM_PooL_Interface_PcmData(AudioDeakInfo_index, In_Bitrate, (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO, AV_SAMPLE_FMT_S16, buffer, bytesRead, DateType); | ||
| 154 | + //printf("Read %zu bytes from the PCM file.\n", bytesRead); | ||
| 155 | + | ||
| 156 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 157 | +} | ||
| 158 | + | ||
| 159 | + | ||
| 160 | +/************* | ||
| 125 | * | 161 | * |
| 126 | - * Data Type = 0 为文本pcm | ||
| 127 | - * Date Type = 1 为语音流pcm | 162 | + * 录音语音类型的pcm数据导入接口 |
| 163 | + * | ||
| 164 | + * 区别 | ||
| 165 | + * a 使用语音专用的滤波 | ||
| 128 | * | 166 | * |
| 129 | - * ************/ | ||
| 130 | -T_JZsdkReturnCode AudioDeal_PcmDataInput(int In_Bitrate, unsigned char *buffer, int bytesRead, int DataType) | 167 | + * **********************/ |
| 168 | +T_JZsdkReturnCode AudioDeal_PcmDataInput_RecordSteam(int In_Bitrate, unsigned char *buffer, int bytesRead) | ||
| 131 | { | 169 | { |
| 132 | if (AudioDeakInfo_index == NULL) | 170 | if (AudioDeakInfo_index == NULL) |
| 133 | { | 171 | { |
| @@ -139,23 +177,79 @@ T_JZsdkReturnCode AudioDeal_PcmDataInput(int In_Bitrate, unsigned char *buffer, | @@ -139,23 +177,79 @@ T_JZsdkReturnCode AudioDeal_PcmDataInput(int In_Bitrate, unsigned char *buffer, | ||
| 139 | { | 177 | { |
| 140 | delayMs(1); | 178 | delayMs(1); |
| 141 | } | 179 | } |
| 180 | + | ||
| 181 | + int DateType = 0x01; | ||
| 182 | + | ||
| 183 | + //1、打开音频库的处理标志位,该标志可以重复打开,只有强制关闭音频时,需要关闭该标志 | ||
| 184 | + AudioDeakInfo_index->AudioDeal_ResampleAndFilter_Execute_Flag = JZ_FLAGCODE_ON; | ||
| 185 | + | ||
| 186 | + //默认数据pcm接入口都是 单声道,16位 | ||
| 187 | + PCM_PooL_Interface_PcmData(AudioDeakInfo_index, In_Bitrate, (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO, AV_SAMPLE_FMT_S16, buffer, bytesRead, DateType); | ||
| 142 | 188 | ||
| 189 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 190 | +} | ||
| 191 | + | ||
| 192 | +/************* | ||
| 193 | + * | ||
| 194 | + * 实时语音语音类型的pcm数据导入接口 | ||
| 195 | + * | ||
| 196 | + * 区别 | ||
| 197 | + * a 使用语音专用的滤波 | ||
| 198 | + * b 需要进行回音消除 | ||
| 199 | + * | ||
| 200 | + * **********************/ | ||
| 201 | +T_JZsdkReturnCode AudioDeal_PcmDataInput_RealTimeSteam(int In_Bitrate, unsigned char *buffer, int bytesRead) | ||
| 202 | +{ | ||
| 203 | + if (AudioDeakInfo_index == NULL) | ||
| 204 | + { | ||
| 205 | + JZSDK_LOG_ERROR("音频处理器未注册"); | ||
| 206 | + return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER; | ||
| 207 | + } | ||
| 208 | + | ||
| 209 | + while (Audiodeal_status != JZ_FLAGCODE_ON) | ||
| 210 | + { | ||
| 211 | + delayMs(1); | ||
| 212 | + } | ||
| 213 | + | ||
| 214 | + int DateType = 0x02; | ||
| 143 | 215 | ||
| 144 | //1、打开音频库的处理标志位,该标志可以重复打开,只有强制关闭音频时,需要关闭该标志 | 216 | //1、打开音频库的处理标志位,该标志可以重复打开,只有强制关闭音频时,需要关闭该标志 |
| 145 | AudioDeakInfo_index->AudioDeal_ResampleAndFilter_Execute_Flag = JZ_FLAGCODE_ON; | 217 | AudioDeakInfo_index->AudioDeal_ResampleAndFilter_Execute_Flag = JZ_FLAGCODE_ON; |
| 146 | 218 | ||
| 147 | - //Set_AudioDeal_ResampleAndFilterAndPlay_Flag(AudioDeakInfo_index, JZ_FLAGCODE_ON); | 219 | + //将数据拿去进行回音消除 |
| 220 | + //将数据合并为u16型 | ||
| 148 | 221 | ||
| 149 | - //默认数据pcm接入口都是 单声道,16位 | ||
| 150 | - PCM_PooL_Interface_PcmData(AudioDeakInfo_index, In_Bitrate, (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO, AV_SAMPLE_FMT_S16, buffer, bytesRead, DataType); | ||
| 151 | - //printf("Read %zu bytes from the PCM file.\n", bytesRead); | 222 | +#ifdef SPEEX_STATUS_ON |
| 152 | 223 | ||
| 153 | - //标志音频库已经结束,不过alsa库内有10组缓存,该标志位结束,只能认为重采样和滤波结束 | ||
| 154 | - //Set_AudioDeal_ResampleAndFilterAndPlay_Flag(AudioDeakInfo_index, JZ_FLAGCODE_OFF); | 224 | + short TempPcm[bytesRead / 2]; |
| 225 | + short OutPcm[bytesRead / 2]; | ||
| 226 | + for (int i = 0; i < bytesRead / 2; i++) | ||
| 227 | + { | ||
| 228 | + TempPcm[i] = (buffer[2*i] & 0xFF) | (((short)buffer[2*i + 1]) << 8); | ||
| 229 | + } | ||
| 230 | + | ||
| 231 | + //送去回音消除 | ||
| 232 | + T_JZsdkReturnCode ret = Speex_DealData(TempPcm, OutPcm, bytesRead / 2); | ||
| 233 | + // if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
| 234 | + // { | ||
| 235 | + // //将输出的pcm还原回u8型到数据缓冲区 | ||
| 236 | + // for (int i = 0; i < bytesRead / 2; i++) | ||
| 237 | + // { | ||
| 238 | + // buffer[2*i] = (OutPcm[i] & 0xFF); | ||
| 239 | + // buffer[2*i + 1] = ((OutPcm[i] >> 8) & 0xFF); | ||
| 240 | + // } | ||
| 241 | + // } | ||
| 242 | + | ||
| 243 | +#endif | ||
| 244 | + | ||
| 245 | + //默认数据pcm接入口都是 单声道,16位 | ||
| 246 | + PCM_PooL_Interface_PcmData(AudioDeakInfo_index, In_Bitrate, (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO, AV_SAMPLE_FMT_S16, buffer, bytesRead, DateType); | ||
| 155 | 247 | ||
| 156 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 248 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
| 157 | } | 249 | } |
| 158 | 250 | ||
| 251 | + | ||
| 252 | + | ||
| 159 | // /*************************** | 253 | // /*************************** |
| 160 | // * | 254 | // * |
| 161 | // * 无回复接口 | 255 | // * 无回复接口 |
| @@ -360,3 +454,18 @@ T_JZsdkReturnCode Get_AudioDealStatus() | @@ -360,3 +454,18 @@ T_JZsdkReturnCode Get_AudioDealStatus() | ||
| 360 | { | 454 | { |
| 361 | return Get_AudioDealThreadStatus(); | 455 | return Get_AudioDealThreadStatus(); |
| 362 | } | 456 | } |
| 457 | + | ||
| 458 | +/************** | ||
| 459 | + * | ||
| 460 | + * 回音抑制初始化 | ||
| 461 | + * | ||
| 462 | + * ***********/ | ||
| 463 | +T_JZsdkReturnCode AudioDeal_EchoCancellation_Init(int SampleRate) | ||
| 464 | +{ | ||
| 465 | +#ifdef SPEEX_STATUS_ON | ||
| 466 | + | ||
| 467 | + Speex_Init(SampleRate); | ||
| 468 | +#endif | ||
| 469 | + | ||
| 470 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 471 | +} |
| @@ -89,7 +89,13 @@ enum AudioDealPlayType | @@ -89,7 +89,13 @@ enum AudioDealPlayType | ||
| 89 | 89 | ||
| 90 | /* Exported functions --------------------------------------------------------*/ | 90 | /* Exported functions --------------------------------------------------------*/ |
| 91 | T_JZsdkReturnCode AudioDeal_Init(); | 91 | T_JZsdkReturnCode AudioDeal_Init(); |
| 92 | -T_JZsdkReturnCode AudioDeal_PcmDataInput(int In_Bitrate, unsigned char *buffer, int bytesRead, int DataType); | 92 | + |
| 93 | +T_JZsdkReturnCode AudioDeal_PcmDataInput_TextSteam(int In_Bitrate, unsigned char *buffer, int bytesRead); | ||
| 94 | +T_JZsdkReturnCode AudioDeal_PcmDataInput_RecordSteam(int In_Bitrate, unsigned char *buffer, int bytesRead); | ||
| 95 | +T_JZsdkReturnCode AudioDeal_PcmDataInput_RealTimeSteam(int In_Bitrate, unsigned char *buffer, int bytesRead); | ||
| 96 | + | ||
| 97 | +T_JZsdkReturnCode AudioDeal_EchoCancellation_Init(int SampleRate); | ||
| 98 | + | ||
| 93 | T_JZsdkReturnCode AudioDeal_StopDeal(); | 99 | T_JZsdkReturnCode AudioDeal_StopDeal(); |
| 94 | 100 | ||
| 95 | T_JZsdkReturnCode AudioDeal_FilePlayInput(unsigned char *FilePath); | 101 | T_JZsdkReturnCode AudioDeal_FilePlayInput(unsigned char *FilePath); |
Module/AudioDeal/Speex/Speex.c
0 → 100644
| 1 | +#include "JZsdkLib.h" | ||
| 2 | +#include "version_choose.h" | ||
| 3 | + | ||
| 4 | +//main函数参数一是原始pcm文件名,参数二是去噪后的pcm文件名 | ||
| 5 | + | ||
| 6 | + | ||
| 7 | +#ifdef SPEEX_STATUS_ON | ||
| 8 | + | ||
| 9 | +#include <stdio.h> | ||
| 10 | +#include <string.h> | ||
| 11 | +#include "speex/speex_echo.h" // Speex 回声消除头文件 | ||
| 12 | +#include "speex/speex_preprocess.h" // Speex 预处理头文件 | ||
| 13 | + | ||
| 14 | +/* | ||
| 15 | +graph LR | ||
| 16 | + | ||
| 17 | +A[原始语音信号] --> B[预处理] | ||
| 18 | +B --> C[语言检测] | ||
| 19 | +C -->|英语| D[英语参数配置] | ||
| 20 | +C -->|汉语| E[汉语参数配置] | ||
| 21 | +C -->|法语| F[法语参数配置] | ||
| 22 | +D --> G[Speex编码器] | ||
| 23 | +E --> H[Speex编码器] | ||
| 24 | +F --> I[Speex编码器] | ||
| 25 | +G --> J[输出编码数据] | ||
| 26 | +H --> J | ||
| 27 | +I --> J | ||
| 28 | +*/ | ||
| 29 | + | ||
| 30 | +#define TAIL_TIME 500 //回声尾长,单位毫秒 | ||
| 31 | + | ||
| 32 | +typedef struct JZ_SpeexInfo{ | ||
| 33 | + | ||
| 34 | + //处理的音频样本长度, 一般对应10~20ms的音频数据,太小会增加计算开销,太大会增加处理延迟 | ||
| 35 | + int DealSampleLen; | ||
| 36 | + | ||
| 37 | + /* | ||
| 38 | + 回声尾长 表示需要消除的回声持续时间(以样本数计) 建议值对应100-500毫秒的音频数据 | ||
| 39 | + 对于8kHz采样率:800-4000个样本 | ||
| 40 | + 对于16kHz采样率:1600-8000个样本 | ||
| 41 | + */ | ||
| 42 | + int TailLen; | ||
| 43 | + | ||
| 44 | + //音频采样率 | ||
| 45 | + int SampleRate; | ||
| 46 | + | ||
| 47 | + // Speex回声消除状态 | ||
| 48 | + SpeexEchoState *EchoState; | ||
| 49 | + | ||
| 50 | + // Speex预处理状态 | ||
| 51 | + SpeexPreprocessState *PreprocessState; | ||
| 52 | + | ||
| 53 | + // 存储回声消除的样本 | ||
| 54 | + short *EchoBuf; | ||
| 55 | + int EchoBufLen; | ||
| 56 | + | ||
| 57 | + //标志位 | ||
| 58 | + int Flag; | ||
| 59 | + | ||
| 60 | +}JZ_SpeexInfo; | ||
| 61 | + | ||
| 62 | +static JZ_SpeexInfo g_SpeexInfo = {0}; | ||
| 63 | + | ||
| 64 | +T_JZsdkReturnCode Speex_Deinit() | ||
| 65 | +{ | ||
| 66 | + if (g_SpeexInfo.Flag == JZ_FLAGCODE_ON) | ||
| 67 | + { | ||
| 68 | + speex_echo_state_destroy(g_SpeexInfo.EchoState); // 释放回声消除状态 | ||
| 69 | + speex_preprocess_state_destroy(g_SpeexInfo.PreprocessState); // 释放预处理状态 | ||
| 70 | + | ||
| 71 | + memset(&(g_SpeexInfo.EchoBuf), 0, sizeof(g_SpeexInfo.EchoBuf)); | ||
| 72 | + g_SpeexInfo.EchoBufLen = 0; | ||
| 73 | + | ||
| 74 | + if (g_SpeexInfo.EchoBuf != NULL) | ||
| 75 | + { | ||
| 76 | + free(g_SpeexInfo.EchoBuf); | ||
| 77 | + g_SpeexInfo.EchoBuf = NULL; | ||
| 78 | + } | ||
| 79 | + | ||
| 80 | + g_SpeexInfo.Flag = JZ_FLAGCODE_OFF; | ||
| 81 | + } | ||
| 82 | + | ||
| 83 | + JZSDK_LOG_DEBUG("Speex_Deinit success\n"); | ||
| 84 | + | ||
| 85 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 86 | +} | ||
| 87 | + | ||
| 88 | +T_JZsdkReturnCode Speex_Init(int SampleRate) | ||
| 89 | +{ | ||
| 90 | + //检查speex的参数 | ||
| 91 | + if (g_SpeexInfo.Flag == JZ_FLAGCODE_ON) | ||
| 92 | + { | ||
| 93 | + Speex_Deinit(); | ||
| 94 | + } | ||
| 95 | + | ||
| 96 | + g_SpeexInfo.SampleRate = SampleRate; | ||
| 97 | + | ||
| 98 | + //计算长度 | ||
| 99 | + g_SpeexInfo.TailLen = SampleRate * TAIL_TIME / 1000 ; //可以×1.2作为余量 | ||
| 100 | + g_SpeexInfo.DealSampleLen = 640; //16000 * time / 1000 //目前是因为程序写死了80 后面可以改 | ||
| 101 | + | ||
| 102 | + // 初始化回声消除状态 | ||
| 103 | + g_SpeexInfo.EchoState = speex_echo_state_init(g_SpeexInfo.DealSampleLen, g_SpeexInfo.TailLen); | ||
| 104 | + g_SpeexInfo.PreprocessState = speex_preprocess_state_init(g_SpeexInfo.DealSampleLen, g_SpeexInfo.SampleRate); // 初始化预处理状态 | ||
| 105 | + | ||
| 106 | + //设置采样率 | ||
| 107 | + speex_echo_ctl(g_SpeexInfo.EchoState, SPEEX_ECHO_SET_SAMPLING_RATE, &(g_SpeexInfo.SampleRate)); | ||
| 108 | + | ||
| 109 | + //将预处理状态与回声消除状态关联 | ||
| 110 | + speex_preprocess_ctl(g_SpeexInfo.PreprocessState, SPEEX_PREPROCESS_SET_ECHO_STATE, g_SpeexInfo.EchoState); | ||
| 111 | + | ||
| 112 | + //注册预处理数据数组 | ||
| 113 | + g_SpeexInfo.EchoBuf = (short *)malloc(g_SpeexInfo.TailLen * sizeof(short)); | ||
| 114 | + | ||
| 115 | + g_SpeexInfo.Flag = JZ_FLAGCODE_ON; | ||
| 116 | + | ||
| 117 | + JZSDK_LOG_DEBUG("Speex_Init success\n"); | ||
| 118 | + | ||
| 119 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 120 | +} | ||
| 121 | + | ||
| 122 | +T_JZsdkReturnCode Speex_DealData(short *InData, short *OutData, int frame_size) | ||
| 123 | +{ | ||
| 124 | + if (g_SpeexInfo.Flag == JZ_FLAGCODE_OFF) | ||
| 125 | + { | ||
| 126 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
| 127 | + } | ||
| 128 | + | ||
| 129 | + //填充回声消除的样本 | ||
| 130 | + if (g_SpeexInfo.EchoBufLen < g_SpeexInfo.TailLen) | ||
| 131 | + { | ||
| 132 | + memcpy(&(g_SpeexInfo.EchoBuf[g_SpeexInfo.EchoBufLen]), InData, frame_size * sizeof(short)); | ||
| 133 | + g_SpeexInfo.EchoBufLen += frame_size; | ||
| 134 | + } | ||
| 135 | + //如果里面有完整数据 | ||
| 136 | + else if (g_SpeexInfo.EchoBufLen == g_SpeexInfo.DealSampleLen) | ||
| 137 | + { | ||
| 138 | + //对数据进行位移 | ||
| 139 | + memmove(g_SpeexInfo.EchoBuf, &(g_SpeexInfo.EchoBuf[frame_size]), (g_SpeexInfo.EchoBufLen - frame_size) * sizeof(short)); | ||
| 140 | + | ||
| 141 | + //将新的数据填充到回声消除的样本中 | ||
| 142 | + memcpy(&(g_SpeexInfo.EchoBuf[g_SpeexInfo.EchoBufLen - frame_size]), InData, frame_size * sizeof(short)); | ||
| 143 | + } | ||
| 144 | + //如果里面的数据超了 | ||
| 145 | + else if (g_SpeexInfo.EchoBufLen > g_SpeexInfo.TailLen) | ||
| 146 | + { | ||
| 147 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
| 148 | + } | ||
| 149 | + | ||
| 150 | + //如果没有填充完回声数组 | ||
| 151 | + if (g_SpeexInfo.EchoBufLen < g_SpeexInfo.TailLen) | ||
| 152 | + { | ||
| 153 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
| 154 | + } | ||
| 155 | + | ||
| 156 | + // // 执行回声消除 | ||
| 157 | + // speex_echo_cancellation(g_SpeexInfo.EchoState, InData, g_SpeexInfo.EchoBuf, OutData); | ||
| 158 | + | ||
| 159 | + // // 执行预处理(如噪声抑制等) | ||
| 160 | + // speex_preprocess_run(g_SpeexInfo.PreprocessState, OutData); | ||
| 161 | + | ||
| 162 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 163 | +} | ||
| 164 | + | ||
| 165 | +#endif // SPEEX_STATUS_ON |
| 1 | /** | 1 | /** |
| 2 | ******************************************************************** | 2 | ******************************************************************** |
| 3 | - * @file SearchLight_V3S_TFA1.h | ||
| 4 | - * SearchLight_V3S_TFA1的头文件 | 3 | + * @file speex.h |
| 4 | + * speex的头文件 | ||
| 5 | * | 5 | * |
| 6 | ********************************************************************* | 6 | ********************************************************************* |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | /* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/ | 9 | /* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/ |
| 10 | -#ifndef SEARCHLIGHT_V3S_TFA1_H | ||
| 11 | -#define SEARCHLIGHT_V3S_TFA1_H | 10 | +#ifndef SPEEX_H |
| 11 | +#define SPEEX_H | ||
| 12 | 12 | ||
| 13 | /* Includes ------------------------------------------------------------------*/ | 13 | /* Includes ------------------------------------------------------------------*/ |
| 14 | #include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h" | 14 | #include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h" |
| @@ -20,14 +20,12 @@ extern "C" { | @@ -20,14 +20,12 @@ extern "C" { | ||
| 20 | /* Exported constants --------------------------------------------------------*/ | 20 | /* Exported constants --------------------------------------------------------*/ |
| 21 | /* 常亮定义*/ | 21 | /* 常亮定义*/ |
| 22 | 22 | ||
| 23 | - | ||
| 24 | /* Exported types ------------------------------------------------------------*/ | 23 | /* Exported types ------------------------------------------------------------*/ |
| 25 | 24 | ||
| 26 | -/* Exported functions --------------------------------------------------------*/ | ||
| 27 | -T_JZsdkReturnCode SearchLight_V3S_TFA1_Set_SearchLightFrequency(int value); | ||
| 28 | -T_JZsdkReturnCode SearchLight_V3S_TFA1_SearchLightControl(int mode); | ||
| 29 | -T_JZsdkReturnCode SearchLight_V3S_TFA1_Set_SearchLightLumen(int LeftLumen, int RightLumen); | ||
| 30 | 25 | ||
| 26 | +/* Exported functions --------------------------------------------------------*/ | ||
| 27 | +T_JZsdkReturnCode Speex_DealData(short *InData, short *OutData, int frame_size); | ||
| 28 | +T_JZsdkReturnCode Speex_Init(int SampleRate); | ||
| 31 | 29 | ||
| 32 | #ifdef __cplusplus | 30 | #ifdef __cplusplus |
| 33 | } | 31 | } |
Module/DeviceInfo/DebugInfo/DebugInfo.c
0 → 100644
| 1 | +#include "JZsdkLib.h" | ||
| 2 | + | ||
| 3 | +#include "version_choose.h" | ||
| 4 | +#include "DebugInfo.h" | ||
| 5 | + | ||
| 6 | + | ||
| 7 | +static int DebugMode_Flag = JZ_FLAGCODE_OFF; | ||
| 8 | + | ||
| 9 | +T_JZsdkReturnCode DebugInfo_Init() | ||
| 10 | +{ | ||
| 11 | + | ||
| 12 | +//强制打开调试模式 | ||
| 13 | +#if 1 | ||
| 14 | + JZsdk_create_file("/root/ShakedownTest"); | ||
| 15 | + | ||
| 16 | + DebugMode_Flag = JZ_FLAGCODE_ON; | ||
| 17 | + | ||
| 18 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 19 | + | ||
| 20 | +#endif | ||
| 21 | + | ||
| 22 | + //目前仅psdk支持debug模式 | ||
| 23 | +#if APP_VERSION != APP_PSDK | ||
| 24 | + | ||
| 25 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 26 | + | ||
| 27 | +#endif | ||
| 28 | + if (JZsdk_check_file_exists("/root/ShakedownTest") != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
| 29 | + { | ||
| 30 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 31 | + } | ||
| 32 | + | ||
| 33 | + JZSDK_LOG_INFO("打开调试模式"); | ||
| 34 | + DebugMode_Flag = JZ_FLAGCODE_ON; | ||
| 35 | + | ||
| 36 | + if(JZsdk_Osal_delete("/root/ShakedownTest") != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
| 37 | + { | ||
| 38 | + JZSDK_LOG_ERROR("移除调试模式失败"); | ||
| 39 | + } | ||
| 40 | + | ||
| 41 | + | ||
| 42 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 43 | +} | ||
| 44 | + | ||
| 45 | + | ||
| 46 | +T_JZsdkReturnCode DebugInfo_ModeSet(int mode) | ||
| 47 | +{ | ||
| 48 | + if (mode == JZ_FLAGCODE_ON) | ||
| 49 | + { | ||
| 50 | + if(JZsdk_create_file("/root/ShakedownTest") == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
| 51 | + { | ||
| 52 | + JZSDK_LOG_INFO("已开启shakedownTest调试模式"); | ||
| 53 | + } | ||
| 54 | + | ||
| 55 | + DebugMode_Flag = JZ_FLAGCODE_ON; | ||
| 56 | + | ||
| 57 | + | ||
| 58 | + JZSDK_LOG_DEBUG("DebugMode_Flag = %d", DebugMode_Flag); | ||
| 59 | + | ||
| 60 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 61 | + } | ||
| 62 | + | ||
| 63 | + if (mode == JZ_FLAGCODE_OFF) | ||
| 64 | + { | ||
| 65 | + if(JZsdk_Osal_delete("/root/ShakedownTest") == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
| 66 | + { | ||
| 67 | + JZSDK_LOG_INFO("已关闭shakedownTest调试模式"); | ||
| 68 | + } | ||
| 69 | + | ||
| 70 | + DebugMode_Flag = JZ_FLAGCODE_OFF; | ||
| 71 | + | ||
| 72 | + JZSDK_LOG_DEBUG("DebugMode_Flag = %d", DebugMode_Flag); | ||
| 73 | + | ||
| 74 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 75 | + } | ||
| 76 | + | ||
| 77 | + return JZ_ERROR_SYSTEM_MODULE_CODE_HARDLY_FAILURE; | ||
| 78 | +} | ||
| 79 | + | ||
| 80 | +int DebugInfo_ModeGet() | ||
| 81 | +{ | ||
| 82 | + return DebugMode_Flag; | ||
| 83 | +} |
| 1 | /** | 1 | /** |
| 2 | ******************************************************************** | 2 | ******************************************************************** |
| 3 | - * @file SearchLight_V3S.h | ||
| 4 | - * SearchLight_V3S的头文件 | 3 | + * @file DebugInfo.h |
| 4 | + * DebugInfo.h 的头文件 | ||
| 5 | * | 5 | * |
| 6 | ********************************************************************* | 6 | ********************************************************************* |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | /* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/ | 9 | /* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/ |
| 10 | -#ifndef SEARCHLIGHT_V3S_H | ||
| 11 | -#define SEARCHLIGHT_V3S_H | 10 | +#ifndef DEBUG_INFO_H |
| 11 | +#define DEBUG_INFO_H | ||
| 12 | 12 | ||
| 13 | /* Includes ------------------------------------------------------------------*/ | 13 | /* Includes ------------------------------------------------------------------*/ |
| 14 | -#include "./SearchLight_V3S_U3/SearchLight_V3S_U3.h" | ||
| 15 | -#include "./SearchLight_V3S_H1T/SearchLight_V3S_H1T.h" | ||
| 16 | -#include "./SearchLight_V3S_TFA1/SearchLight_V3S_TFA1.h" | ||
| 17 | - | 14 | +#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h" |
| 18 | 15 | ||
| 19 | #ifdef __cplusplus | 16 | #ifdef __cplusplus |
| 20 | extern "C" { | 17 | extern "C" { |
| @@ -23,11 +20,12 @@ extern "C" { | @@ -23,11 +20,12 @@ extern "C" { | ||
| 23 | /* Exported constants --------------------------------------------------------*/ | 20 | /* Exported constants --------------------------------------------------------*/ |
| 24 | /* 常亮定义*/ | 21 | /* 常亮定义*/ |
| 25 | 22 | ||
| 26 | - | ||
| 27 | /* Exported types ------------------------------------------------------------*/ | 23 | /* Exported types ------------------------------------------------------------*/ |
| 28 | 24 | ||
| 29 | /* Exported functions --------------------------------------------------------*/ | 25 | /* Exported functions --------------------------------------------------------*/ |
| 30 | - | 26 | +T_JZsdkReturnCode DebugInfo_ModeSet(int mode); |
| 27 | +T_JZsdkReturnCode DebugInfo_Init(); | ||
| 28 | +int DebugInfo_ModeGet(); | ||
| 31 | 29 | ||
| 32 | #ifdef __cplusplus | 30 | #ifdef __cplusplus |
| 33 | } | 31 | } |
| @@ -57,6 +57,9 @@ T_JZsdkReturnCode DeviceInfo_Init() | @@ -57,6 +57,9 @@ T_JZsdkReturnCode DeviceInfo_Init() | ||
| 57 | //设备属性初始化 | 57 | //设备属性初始化 |
| 58 | Attribute_Init(); | 58 | Attribute_Init(); |
| 59 | 59 | ||
| 60 | + //debug模式 | ||
| 61 | + DebugInfo_Init(); | ||
| 62 | + | ||
| 60 | JZSDK_LOG_INFO("MODULE_DEVICE_INFO_INIT_COMPLETE"); | 63 | JZSDK_LOG_INFO("MODULE_DEVICE_INFO_INIT_COMPLETE"); |
| 61 | } | 64 | } |
| 62 | 65 |
| @@ -15,6 +15,7 @@ | @@ -15,6 +15,7 @@ | ||
| 15 | #include "DeviceInfo/HardwareInfo/HardwareInfo.h" | 15 | #include "DeviceInfo/HardwareInfo/HardwareInfo.h" |
| 16 | #include "DeviceInfo/Attribute/Attribute.h" | 16 | #include "DeviceInfo/Attribute/Attribute.h" |
| 17 | #include "LanguageInfo/LanguageInfo.h" | 17 | #include "LanguageInfo/LanguageInfo.h" |
| 18 | +#include "DebugInfo/DebugInfo.h" | ||
| 18 | 19 | ||
| 19 | /* Includes ------------------------------------------------------------------*/ | 20 | /* Includes ------------------------------------------------------------------*/ |
| 20 | #ifdef __cplusplus | 21 | #ifdef __cplusplus |
| @@ -16,7 +16,9 @@ | @@ -16,7 +16,9 @@ | ||
| 16 | #include "Megaphone/MegTempControl/MegTempControl.h" | 16 | #include "Megaphone/MegTempControl/MegTempControl.h" |
| 17 | #endif | 17 | #endif |
| 18 | 18 | ||
| 19 | -#include "Lighting/Lighting_InAndOut.h" | 19 | +#ifdef SEARCHLIGHT_STATUS_ON |
| 20 | + #include "Searchlight/Searchlight.h" | ||
| 21 | +#endif | ||
| 20 | 22 | ||
| 21 | #define MESSAGE_MAX_LEN 1024 | 23 | #define MESSAGE_MAX_LEN 1024 |
| 22 | 24 | ||
| @@ -258,7 +260,9 @@ static T_JZsdkReturnCode DeviceMessage_Enter_Default(unsigned char *message) | @@ -258,7 +260,9 @@ static T_JZsdkReturnCode DeviceMessage_Enter_Default(unsigned char *message) | ||
| 258 | #endif | 260 | #endif |
| 259 | 261 | ||
| 260 | //如果为组合版 | 262 | //如果为组合版 |
| 261 | -#if (DEVICE_VERSION == TF_A1 || DEVICE_VERSION == JZ_U3 || DEVICE_VERSION == JZ_U3S ||DEVICE_VERSION == JZ_U3D || DEVICE_VERSION == JZ_U30) | 263 | +#if (DEVICE_VERSION == TF_A1 || DEVICE_VERSION == JZ_U3 || \ |
| 264 | + DEVICE_VERSION == JZ_U3S ||DEVICE_VERSION == JZ_U3D \ | ||
| 265 | + || DEVICE_VERSION == JZ_U30 || DEVICE_VERSION == JZ_T40) | ||
| 262 | 266 | ||
| 263 | // //组合板写入 | 267 | // //组合板写入 |
| 264 | // snprintf(new_message,128,"光斑y值%d\n",Widget_GetCenter_ValueY()); | 268 | // snprintf(new_message,128,"光斑y值%d\n",Widget_GetCenter_ValueY()); |
| @@ -269,7 +273,11 @@ static T_JZsdkReturnCode DeviceMessage_Enter_Default(unsigned char *message) | @@ -269,7 +273,11 @@ static T_JZsdkReturnCode DeviceMessage_Enter_Default(unsigned char *message) | ||
| 269 | static int SearchLight_RightTemperature = 0; | 273 | static int SearchLight_RightTemperature = 0; |
| 270 | 274 | ||
| 271 | //获取温度 | 275 | //获取温度 |
| 272 | - Lighting_Get_SearchLightTemperature(&SearchLight_LeftTemperature, &SearchLight_RightTemperature); | 276 | + T_JzSearchLightAttribute searchLightInfo; |
| 277 | + SearchLight_Get_SearchLightAttribute(&searchLightInfo); | ||
| 278 | + | ||
| 279 | + SearchLight_LeftTemperature = searchLightInfo.LeftTemperature; | ||
| 280 | + SearchLight_RightTemperature = searchLightInfo.RightTemperature; | ||
| 273 | 281 | ||
| 274 | memset(new_message,0,sizeof(new_message)); | 282 | memset(new_message,0,sizeof(new_message)); |
| 275 | memset(old_message,0,sizeof(old_message)); | 283 | memset(old_message,0,sizeof(old_message)); |
| @@ -20,6 +20,16 @@ | @@ -20,6 +20,16 @@ | ||
| 20 | 20 | ||
| 21 | #include "BaseConfig.h" | 21 | #include "BaseConfig.h" |
| 22 | #include "Hal_Send/HalSend.h" | 22 | #include "Hal_Send/HalSend.h" |
| 23 | +#include "DeviceInfo/DebugInfo/DebugInfo.h" | ||
| 24 | + | ||
| 25 | + | ||
| 26 | + | ||
| 27 | +static T_GimbalInfo g_GimbalInfo = { | ||
| 28 | + .PitchLimitMax = MAX_PITCH, | ||
| 29 | + .PitchLimitMin = MIN_PITCH, | ||
| 30 | + .DebugPitch_Left = 0, | ||
| 31 | + .DebugPitch_Right = 0, | ||
| 32 | +}; | ||
| 23 | 33 | ||
| 24 | //云台使用的模式, 当前有透传模式和独立模式 | 34 | //云台使用的模式, 当前有透传模式和独立模式 |
| 25 | static int g_Gimbal_Mode = JZ_FLAGCODE_OFF; | 35 | static int g_Gimbal_Mode = JZ_FLAGCODE_OFF; |
| @@ -52,9 +62,25 @@ static int g_JZsdk_GimbalStatusFlag = JZ_FLAGCODE_OFF; //云台状态,用于 | @@ -52,9 +62,25 @@ static int g_JZsdk_GimbalStatusFlag = JZ_FLAGCODE_OFF; //云台状态,用于 | ||
| 52 | 62 | ||
| 53 | static T_JZsdkReturnCode Gimbal_Set_RealPitchAngle(int pitch, int FineTuningP, int UAV_pitch); | 63 | static T_JZsdkReturnCode Gimbal_Set_RealPitchAngle(int pitch, int FineTuningP, int UAV_pitch); |
| 54 | 64 | ||
| 65 | + | ||
| 66 | + | ||
| 55 | //手动刷新角度标志位 | 67 | //手动刷新角度标志位 |
| 56 | static int g_Flush_Pitch = JZ_FLAGCODE_OFF; | 68 | static int g_Flush_Pitch = JZ_FLAGCODE_OFF; |
| 57 | 69 | ||
| 70 | +/**************** | ||
| 71 | + * | ||
| 72 | + * 软件云台限位刷新 | ||
| 73 | + * | ||
| 74 | + * | ||
| 75 | + * *****************/ | ||
| 76 | +T_JZsdkReturnCode Gimbal_LimitAngleFlush() | ||
| 77 | +{ | ||
| 78 | + g_GimbalInfo.PitchLimitMax = MAX_PITCH; | ||
| 79 | + g_GimbalInfo.PitchLimitMin = MIN_PITCH; | ||
| 80 | + | ||
| 81 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 82 | +} | ||
| 83 | + | ||
| 58 | /************************** | 84 | /************************** |
| 59 | * | 85 | * |
| 60 | * | 86 | * |
| @@ -67,6 +93,8 @@ static void *Gimbal_SendAngleTask(void *arg) | @@ -67,6 +93,8 @@ static void *Gimbal_SendAngleTask(void *arg) | ||
| 67 | int Old_angle = 0; //上一次变化的角度 | 93 | int Old_angle = 0; //上一次变化的角度 |
| 68 | int Old_UAV_self_angle; //上一次飞机的角度 | 94 | int Old_UAV_self_angle; //上一次飞机的角度 |
| 69 | int Old_PitchFineTuning; //上一次微调的角度 | 95 | int Old_PitchFineTuning; //上一次微调的角度 |
| 96 | + int Old_DebugPitchLeft = 0; //上一次调试角度 | ||
| 97 | + int Old_DebugPitchRight = 0; //上一次调试角度 | ||
| 70 | 98 | ||
| 71 | JZSDK_LOG_INFO("云台角度发送初始化完成"); | 99 | JZSDK_LOG_INFO("云台角度发送初始化完成"); |
| 72 | 100 | ||
| @@ -78,11 +106,15 @@ static void *Gimbal_SendAngleTask(void *arg) | @@ -78,11 +106,15 @@ static void *Gimbal_SendAngleTask(void *arg) | ||
| 78 | || Gimbal_UavSelfPitch != Old_UAV_self_angle //飞机自身角度发生了变化 | 106 | || Gimbal_UavSelfPitch != Old_UAV_self_angle //飞机自身角度发生了变化 |
| 79 | || g_MotorFineTuningPitch != Old_PitchFineTuning //微调角度发生了变化 | 107 | || g_MotorFineTuningPitch != Old_PitchFineTuning //微调角度发生了变化 |
| 80 | || g_Flush_Pitch == JZ_FLAGCODE_ON | 108 | || g_Flush_Pitch == JZ_FLAGCODE_ON |
| 109 | + || g_GimbalInfo.DebugPitch_Left != Old_DebugPitchLeft | ||
| 110 | + || g_GimbalInfo.DebugPitch_Right != Old_DebugPitchRight | ||
| 81 | ) | 111 | ) |
| 82 | { | 112 | { |
| 83 | Old_angle = Gimbal_PitchAngle; | 113 | Old_angle = Gimbal_PitchAngle; |
| 84 | Old_UAV_self_angle = Gimbal_UavSelfPitch; | 114 | Old_UAV_self_angle = Gimbal_UavSelfPitch; |
| 85 | Old_PitchFineTuning = g_MotorFineTuningPitch; | 115 | Old_PitchFineTuning = g_MotorFineTuningPitch; |
| 116 | + Old_DebugPitchLeft = g_GimbalInfo.DebugPitch_Left; | ||
| 117 | + Old_DebugPitchRight = g_GimbalInfo.DebugPitch_Right; | ||
| 86 | g_Flush_Pitch = JZ_FLAGCODE_OFF; | 118 | g_Flush_Pitch = JZ_FLAGCODE_OFF; |
| 87 | Gimbal_Set_RealPitchAngle(Old_angle, Old_PitchFineTuning, Old_UAV_self_angle); | 119 | Gimbal_Set_RealPitchAngle(Old_angle, Old_PitchFineTuning, Old_UAV_self_angle); |
| 88 | } | 120 | } |
| @@ -142,7 +174,7 @@ T_JZsdkReturnCode Gimbal_Set_PitchAngle(int angle) | @@ -142,7 +174,7 @@ T_JZsdkReturnCode Gimbal_Set_PitchAngle(int angle) | ||
| 142 | //独立模式 | 174 | //独立模式 |
| 143 | case JZ_MODULE_CONTROL_WAY_INDEPENDENT: | 175 | case JZ_MODULE_CONTROL_WAY_INDEPENDENT: |
| 144 | { | 176 | { |
| 145 | - if (angle < MIN_PITCH || angle > MAX_PITCH || (MIN_PITCH == MAX_PITCH)) | 177 | + if (angle < g_GimbalInfo.PitchLimitMin || angle > g_GimbalInfo.PitchLimitMax || (g_GimbalInfo.PitchLimitMin == g_GimbalInfo.PitchLimitMax)) |
| 146 | { | 178 | { |
| 147 | printf("云台俯仰输入值范围出错:%d\n", angle); | 179 | printf("云台俯仰输入值范围出错:%d\n", angle); |
| 148 | return JZ_ERRORCODE_GIMBAL_INVALID_PITCH; | 180 | return JZ_ERRORCODE_GIMBAL_INVALID_PITCH; |
| @@ -239,6 +271,89 @@ T_JZsdkReturnCode Gimbal_SetGimbalRange(int flag, int value) | @@ -239,6 +271,89 @@ T_JZsdkReturnCode Gimbal_SetGimbalRange(int flag, int value) | ||
| 239 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 271 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
| 240 | } | 272 | } |
| 241 | 273 | ||
| 274 | + | ||
| 275 | +/******************************** | ||
| 276 | + * | ||
| 277 | + * | ||
| 278 | + * 单边云台校准选择 | ||
| 279 | + * | ||
| 280 | + * | ||
| 281 | + * ************************************/ | ||
| 282 | +T_JZsdkReturnCode Gimbal_Set_GimbalSingleCalibration(E_JZ_GimbalSingleCalibrationMode Mode) | ||
| 283 | +{ | ||
| 284 | + JZSDK_LOG_INFO("单边云台校准选择 Mode:%d 0x%x", Mode); | ||
| 285 | + | ||
| 286 | + switch (Mode) | ||
| 287 | + { | ||
| 288 | + case JZ_GIMBAL_SINGLE_CALIBRATION_MODE_LEFT_MAX: | ||
| 289 | + { | ||
| 290 | +#if DEVICE_VERSION == JZ_T40 | ||
| 291 | + HalSend_type1Send_SetGimbalRange(UART_DEV_2, 0x11, 0xFF); | ||
| 292 | +#endif | ||
| 293 | + | ||
| 294 | + } | ||
| 295 | + break; | ||
| 296 | + | ||
| 297 | + case JZ_GIMBAL_SINGLE_CALIBRATION_MODE_LEFT_MIN: | ||
| 298 | + { | ||
| 299 | +#if DEVICE_VERSION == JZ_T40 | ||
| 300 | + HalSend_type1Send_SetGimbalRange(UART_DEV_2, 0x11, 0x00); | ||
| 301 | +#endif | ||
| 302 | + } | ||
| 303 | + break; | ||
| 304 | + | ||
| 305 | + case JZ_GIMBAL_SINGLE_CALIBRATION_MODE_LEFT_ZERO: | ||
| 306 | + { | ||
| 307 | +#if DEVICE_VERSION == JZ_T40 | ||
| 308 | + HalSend_type1Send_SetGimbalRange(UART_DEV_2, 0x11, 0x02); | ||
| 309 | +#endif | ||
| 310 | + } | ||
| 311 | + break; | ||
| 312 | + | ||
| 313 | + case JZ_GIMBAL_SINGLE_CALIBRATION_MODE_LEFT_RESET: | ||
| 314 | + { | ||
| 315 | +#if DEVICE_VERSION == JZ_T40 | ||
| 316 | + HalSend_type1Send_SetGimbalRange(UART_DEV_2, 0x11, 0x01); | ||
| 317 | +#endif | ||
| 318 | + } | ||
| 319 | + break; | ||
| 320 | + | ||
| 321 | + case JZ_GIMBAL_SINGLE_CALIBRATION_MODE_RIGHT_MAX: | ||
| 322 | + { | ||
| 323 | +#if DEVICE_VERSION == JZ_T40 | ||
| 324 | + HalSend_type1Send_SetGimbalRange(UART_DEV_2, 0x12, 0xFF); | ||
| 325 | +#endif | ||
| 326 | + } | ||
| 327 | + break; | ||
| 328 | + | ||
| 329 | + case JZ_GIMBAL_SINGLE_CALIBRATION_MODE_RIGHT_MIN: | ||
| 330 | + { | ||
| 331 | +#if DEVICE_VERSION == JZ_T40 | ||
| 332 | + HalSend_type1Send_SetGimbalRange(UART_DEV_2, 0x12, 0x00); | ||
| 333 | +#endif | ||
| 334 | + } | ||
| 335 | + break; | ||
| 336 | + | ||
| 337 | + case JZ_GIMBAL_SINGLE_CALIBRATION_MODE_RIGHT_ZERO: | ||
| 338 | + { | ||
| 339 | +#if DEVICE_VERSION == JZ_T40 | ||
| 340 | + HalSend_type1Send_SetGimbalRange(UART_DEV_2, 0x12, 0x02); | ||
| 341 | +#endif | ||
| 342 | + } | ||
| 343 | + break; | ||
| 344 | + | ||
| 345 | + case JZ_GIMBAL_SINGLE_CALIBRATION_MODE_RIGHT_RESET: | ||
| 346 | + { | ||
| 347 | +#if DEVICE_VERSION == JZ_T40 | ||
| 348 | + HalSend_type1Send_SetGimbalRange(UART_DEV_2, 0x12, 0x01); | ||
| 349 | +#endif | ||
| 350 | + } | ||
| 351 | + break; | ||
| 352 | + } | ||
| 353 | + | ||
| 354 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 355 | +} | ||
| 356 | + | ||
| 242 | //查询云台微调值 | 357 | //查询云台微调值 |
| 243 | T_JZsdkReturnCode Gimbal_CheckStatus_GimbalFineTuning(int *FineTuningPitch, int *FineTuningYaw, int *FineTuningRoll) | 358 | T_JZsdkReturnCode Gimbal_CheckStatus_GimbalFineTuning(int *FineTuningPitch, int *FineTuningYaw, int *FineTuningRoll) |
| 244 | { | 359 | { |
| @@ -717,11 +832,11 @@ T_JZsdkReturnCode Gimbal_PitchSelfangleMode(int Pitch) | @@ -717,11 +832,11 @@ T_JZsdkReturnCode Gimbal_PitchSelfangleMode(int Pitch) | ||
| 717 | //2、滑动条 换算 云台角度 | 832 | //2、滑动条 换算 云台角度 |
| 718 | int Gimbal_PitchScaleMode(int value) | 833 | int Gimbal_PitchScaleMode(int value) |
| 719 | { | 834 | { |
| 720 | - int step = (abs(MAX_PITCH) + abs(MIN_PITCH)) / 100; | 835 | + int step = (abs(g_GimbalInfo.PitchLimitMax) + abs(g_GimbalInfo.PitchLimitMin)) / 100; |
| 721 | 836 | ||
| 722 | int angle = 0; | 837 | int angle = 0; |
| 723 | 838 | ||
| 724 | - angle = value * step + MIN_PITCH; | 839 | + angle = value * step + g_GimbalInfo.PitchLimitMin; |
| 725 | 840 | ||
| 726 | return angle; | 841 | return angle; |
| 727 | } | 842 | } |
| @@ -732,20 +847,20 @@ T_JZsdkReturnCode Gimbal_PitchRotationMode(int value) | @@ -732,20 +847,20 @@ T_JZsdkReturnCode Gimbal_PitchRotationMode(int value) | ||
| 732 | int angle; | 847 | int angle; |
| 733 | 848 | ||
| 734 | //JZSDK_LOG_DEBUG("拨轮控制"); | 849 | //JZSDK_LOG_DEBUG("拨轮控制"); |
| 735 | - if (MAX_PITCH == MIN_PITCH) | 850 | + if (g_GimbalInfo.PitchLimitMax == g_GimbalInfo.PitchLimitMin) |
| 736 | { | 851 | { |
| 737 | return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | 852 | return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; |
| 738 | } | 853 | } |
| 739 | 854 | ||
| 740 | 855 | ||
| 741 | angle = Gimbal_PitchAngle + value; | 856 | angle = Gimbal_PitchAngle + value; |
| 742 | - if (angle > MAX_PITCH) | 857 | + if (angle > g_GimbalInfo.PitchLimitMax) |
| 743 | { | 858 | { |
| 744 | - angle = MAX_PITCH; | 859 | + angle = g_GimbalInfo.PitchLimitMax; |
| 745 | } | 860 | } |
| 746 | - else if (angle < MIN_PITCH) | 861 | + else if (angle < g_GimbalInfo.PitchLimitMin) |
| 747 | { | 862 | { |
| 748 | - angle = MIN_PITCH; | 863 | + angle = g_GimbalInfo.PitchLimitMin; |
| 749 | } | 864 | } |
| 750 | 865 | ||
| 751 | if (angle == Gimbal_PitchAngle) | 866 | if (angle == Gimbal_PitchAngle) |
| @@ -764,8 +879,8 @@ int Gimbal_ReplyPitchToUAVScale(int angle) | @@ -764,8 +879,8 @@ int Gimbal_ReplyPitchToUAVScale(int angle) | ||
| 764 | { | 879 | { |
| 765 | int value; | 880 | int value; |
| 766 | 881 | ||
| 767 | - int step = (abs(MAX_PITCH) + abs(MIN_PITCH)) / 100; | ||
| 768 | - value = (angle - MIN_PITCH)/step; | 882 | + int step = (abs(g_GimbalInfo.PitchLimitMax) + abs(g_GimbalInfo.PitchLimitMin)) / 100; |
| 883 | + value = (angle - g_GimbalInfo.PitchLimitMin)/step; | ||
| 769 | 884 | ||
| 770 | return value; | 885 | return value; |
| 771 | } | 886 | } |
| @@ -783,14 +898,14 @@ static T_JZsdkReturnCode Gimbal_Set_RealPitchAngle(int pitch, int FineTuningP, i | @@ -783,14 +898,14 @@ static T_JZsdkReturnCode Gimbal_Set_RealPitchAngle(int pitch, int FineTuningP, i | ||
| 783 | //叠加飞机角度和微调角度 | 898 | //叠加飞机角度和微调角度 |
| 784 | temp_angle = pitch - UAV_pitch + FineTuningP; | 899 | temp_angle = pitch - UAV_pitch + FineTuningP; |
| 785 | 900 | ||
| 786 | - if (temp_angle < MIN_PITCH) | 901 | + if (temp_angle < g_GimbalInfo.PitchLimitMin) |
| 787 | { | 902 | { |
| 788 | - temp_angle = MIN_PITCH; | 903 | + temp_angle = g_GimbalInfo.PitchLimitMin; |
| 789 | } | 904 | } |
| 790 | 905 | ||
| 791 | - if (temp_angle > MAX_PITCH) | 906 | + if (temp_angle > g_GimbalInfo.PitchLimitMax) |
| 792 | { | 907 | { |
| 793 | - temp_angle = MAX_PITCH; | 908 | + temp_angle = g_GimbalInfo.PitchLimitMax; |
| 794 | } | 909 | } |
| 795 | 910 | ||
| 796 | Gimbal_RealPitchAngle = temp_angle; | 911 | Gimbal_RealPitchAngle = temp_angle; |
| @@ -830,8 +945,45 @@ static T_JZsdkReturnCode Gimbal_Set_RealPitchAngle(int pitch, int FineTuningP, i | @@ -830,8 +945,45 @@ static T_JZsdkReturnCode Gimbal_Set_RealPitchAngle(int pitch, int FineTuningP, i | ||
| 830 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 945 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
| 831 | } | 946 | } |
| 832 | 947 | ||
| 948 | +/* | ||
| 949 | + 输入调试角度 | ||
| 950 | + pitch加减的值 | ||
| 951 | + flag标志位 =on时 重置调试角度 | ||
| 952 | + direction = 0 左调试角度 | ||
| 953 | + direction = 1 右调试角度 | ||
| 954 | +*/ | ||
| 955 | +T_JZsdkReturnCode Gimbal_Set_DebugPitch(int pitch, int flag, int direction) | ||
| 956 | +{ | ||
| 957 | + //如果重置标志位开启 | ||
| 958 | + if (flag == JZ_FLAGCODE_ON) | ||
| 959 | + { | ||
| 960 | + if (direction == 0) | ||
| 961 | + { | ||
| 962 | + g_GimbalInfo.DebugPitch_Left = 0; | ||
| 963 | + } | ||
| 964 | + | ||
| 965 | + else if (direction == 1) | ||
| 966 | + { | ||
| 967 | + g_GimbalInfo.DebugPitch_Right = 0; | ||
| 968 | + } | ||
| 969 | + | ||
| 970 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 971 | + } | ||
| 833 | 972 | ||
| 834 | 973 | ||
| 974 | + if (direction == 0) | ||
| 975 | + { | ||
| 976 | + g_GimbalInfo.DebugPitch_Left += pitch; | ||
| 977 | + } | ||
| 978 | + | ||
| 979 | + else if (direction == 1) | ||
| 980 | + { | ||
| 981 | + g_GimbalInfo.DebugPitch_Right += pitch; | ||
| 982 | + } | ||
| 983 | + | ||
| 984 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 985 | +} | ||
| 986 | + | ||
| 835 | 987 | ||
| 836 | 988 | ||
| 837 | 989 | ||
| @@ -867,6 +1019,12 @@ T_JZsdkReturnCode Gimbal_Flush_Pitch() | @@ -867,6 +1019,12 @@ T_JZsdkReturnCode Gimbal_Flush_Pitch() | ||
| 867 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 1019 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
| 868 | } | 1020 | } |
| 869 | 1021 | ||
| 1022 | +T_JZsdkReturnCode Gimbal_Get_GimbalInfo(T_GimbalInfo *GimbalInfo) | ||
| 1023 | +{ | ||
| 1024 | + memcpy(GimbalInfo, &g_GimbalInfo, sizeof(T_GimbalInfo)); | ||
| 1025 | + | ||
| 1026 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 1027 | +} | ||
| 870 | 1028 | ||
| 871 | 1029 | ||
| 872 | 1030 | ||
| @@ -964,6 +1122,9 @@ static T_JZsdkReturnCode Gimbal_Init_IndependentControl() | @@ -964,6 +1122,9 @@ static T_JZsdkReturnCode Gimbal_Init_IndependentControl() | ||
| 964 | * ******************************/ | 1122 | * ******************************/ |
| 965 | T_JZsdkReturnCode Gimbal_Init(enum JZ_MODULE_CONTROL_WAY Mode) | 1123 | T_JZsdkReturnCode Gimbal_Init(enum JZ_MODULE_CONTROL_WAY Mode) |
| 966 | { | 1124 | { |
| 1125 | + //限位初始化 | ||
| 1126 | + Gimbal_LimitAngleFlush(); | ||
| 1127 | + | ||
| 967 | switch (Mode) | 1128 | switch (Mode) |
| 968 | { | 1129 | { |
| 969 | //独立控制模式 | 1130 | //独立控制模式 |
| @@ -19,6 +19,12 @@ extern "C" { | @@ -19,6 +19,12 @@ extern "C" { | ||
| 19 | 19 | ||
| 20 | /* Exported constants --------------------------------------------------------*/ | 20 | /* Exported constants --------------------------------------------------------*/ |
| 21 | /* 常亮定义*/ | 21 | /* 常亮定义*/ |
| 22 | +typedef struct T_GimbalInfo{ | ||
| 23 | + int PitchLimitMax; | ||
| 24 | + int PitchLimitMin; | ||
| 25 | + int DebugPitch_Left; | ||
| 26 | + int DebugPitch_Right; | ||
| 27 | +}T_GimbalInfo; | ||
| 22 | 28 | ||
| 23 | /* Exported types ------------------------------------------------------------*/ | 29 | /* Exported types ------------------------------------------------------------*/ |
| 24 | 30 | ||
| @@ -39,6 +45,8 @@ T_JZsdkReturnCode Gimbal_Set_PitchFineTuning(int pitch); | @@ -39,6 +45,8 @@ T_JZsdkReturnCode Gimbal_Set_PitchFineTuning(int pitch); | ||
| 39 | T_JZsdkReturnCode Gimbal_Set_YawFineTuning(int yaw); | 45 | T_JZsdkReturnCode Gimbal_Set_YawFineTuning(int yaw); |
| 40 | T_JZsdkReturnCode Gimbal_Set_RollFineTuning(int pitch, int yaw, int roll); | 46 | T_JZsdkReturnCode Gimbal_Set_RollFineTuning(int pitch, int yaw, int roll); |
| 41 | T_JZsdkReturnCode Gimbal_Set_GimbalLinkageControl(int value); | 47 | T_JZsdkReturnCode Gimbal_Set_GimbalLinkageControl(int value); |
| 48 | +T_JZsdkReturnCode Gimbal_Set_DebugPitch(int pitch, int flag, int direction); | ||
| 49 | + | ||
| 42 | T_JZsdkReturnCode Gimbal_CheckStatus_GimbalLinkage(int *value); | 50 | T_JZsdkReturnCode Gimbal_CheckStatus_GimbalLinkage(int *value); |
| 43 | T_JZsdkReturnCode Gimbal_Obtain_GimbalLinkage(int GimbalLinkage); | 51 | T_JZsdkReturnCode Gimbal_Obtain_GimbalLinkage(int GimbalLinkage); |
| 44 | T_JZsdkReturnCode Gimbal_CheckStatus_Angle(int *PitchAngle, int *YawAngle, int *RollAngle); | 52 | T_JZsdkReturnCode Gimbal_CheckStatus_Angle(int *PitchAngle, int *YawAngle, int *RollAngle); |
| @@ -52,11 +60,16 @@ int Gimbal_PitchScaleMode(int value); | @@ -52,11 +60,16 @@ int Gimbal_PitchScaleMode(int value); | ||
| 52 | T_JZsdkReturnCode Gimbal_PitchRotationMode(int value); | 60 | T_JZsdkReturnCode Gimbal_PitchRotationMode(int value); |
| 53 | int Gimbal_ReplyPitchToUAVScale(int angle); | 61 | int Gimbal_ReplyPitchToUAVScale(int angle); |
| 54 | 62 | ||
| 63 | +T_JZsdkReturnCode Gimbal_Set_GimbalSingleCalibration(E_JZ_GimbalSingleCalibrationMode Mode); | ||
| 55 | 64 | ||
| 56 | int Gimbal_Get_PitchAngle(); | 65 | int Gimbal_Get_PitchAngle(); |
| 57 | int Gimbal_Get_PitchFineTuning(); | 66 | int Gimbal_Get_PitchFineTuning(); |
| 58 | int Gimbal_Get_PitchRealPitchAngle(); | 67 | int Gimbal_Get_PitchRealPitchAngle(); |
| 68 | +T_JZsdkReturnCode Gimbal_Get_GimbalInfo(T_GimbalInfo *GimbalInfo); | ||
| 69 | + | ||
| 59 | T_JZsdkReturnCode Gimbal_Flush_Pitch(); | 70 | T_JZsdkReturnCode Gimbal_Flush_Pitch(); |
| 71 | +T_JZsdkReturnCode Gimbal_LimitAngleFlush(); | ||
| 72 | + | ||
| 60 | 73 | ||
| 61 | #ifdef __cplusplus | 74 | #ifdef __cplusplus |
| 62 | } | 75 | } |
| @@ -13,6 +13,7 @@ | @@ -13,6 +13,7 @@ | ||
| 13 | #include "Hal_Send/HalSend.h" | 13 | #include "Hal_Send/HalSend.h" |
| 14 | #include "JZsdk_uart/JZsdk_Uart.h" | 14 | #include "JZsdk_uart/JZsdk_Uart.h" |
| 15 | #include "Ircut/H3_ircut/H3_ircut.h" | 15 | #include "Ircut/H3_ircut/H3_ircut.h" |
| 16 | +#include "DeviceInfo/DebugInfo/DebugInfo.h" | ||
| 16 | 17 | ||
| 17 | #ifdef WIRINGPI_STATUS_ON | 18 | #ifdef WIRINGPI_STATUS_ON |
| 18 | #include <wiringPi.h> | 19 | #include <wiringPi.h> |
| @@ -127,6 +128,23 @@ T_JZsdkReturnCode Gimbal_DataDeal_SetRealAngle(int angle) | @@ -127,6 +128,23 @@ T_JZsdkReturnCode Gimbal_DataDeal_SetRealAngle(int angle) | ||
| 127 | //T40很特殊,需要控制两个子设备,所以要准备帧序列 | 128 | //T40很特殊,需要控制两个子设备,所以要准备帧序列 |
| 128 | HalSend_type1Send_Set_GimbalPitchAngle(UART_DEV_2, angle, 0x10, JZ_FLAGCODE_OFF); | 129 | HalSend_type1Send_Set_GimbalPitchAngle(UART_DEV_2, angle, 0x10, JZ_FLAGCODE_OFF); |
| 129 | 130 | ||
| 131 | + //如果处于调试模式 | ||
| 132 | + if(DebugInfo_ModeGet() == JZ_FLAGCODE_ON) | ||
| 133 | + { | ||
| 134 | + //获取云台的debug角度 | ||
| 135 | + T_GimbalInfo gimbalinfo; | ||
| 136 | + Gimbal_Get_GimbalInfo(&gimbalinfo); | ||
| 137 | + if (gimbalinfo.DebugPitch_Left != 0) | ||
| 138 | + { | ||
| 139 | + HalSend_type1Send_Set_GimbalPitchAngle(UART_DEV_2, (angle+gimbalinfo.DebugPitch_Left), 0x11, JZ_FLAGCODE_OFF); | ||
| 140 | + } | ||
| 141 | + if (gimbalinfo.DebugPitch_Right != 0) | ||
| 142 | + { | ||
| 143 | + HalSend_type1Send_Set_GimbalPitchAngle(UART_DEV_2, (angle+gimbalinfo.DebugPitch_Right), 0x12, JZ_FLAGCODE_OFF); | ||
| 144 | + } | ||
| 145 | + } | ||
| 146 | + | ||
| 147 | + | ||
| 130 | #else | 148 | #else |
| 131 | return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | 149 | return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; |
| 132 | #endif | 150 | #endif |
| @@ -393,3 +411,4 @@ static T_JZsdkReturnCode Gimbal_DataDeal_Write_PitchBaseOffset(int offset) | @@ -393,3 +411,4 @@ static T_JZsdkReturnCode Gimbal_DataDeal_Write_PitchBaseOffset(int offset) | ||
| 393 | 411 | ||
| 394 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 412 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
| 395 | } | 413 | } |
| 414 | + |
Module/Lighting/Lighting_InAndOut.c
已删除
100644 → 0
| 1 | -#include <stdio.h> | ||
| 2 | -#include <string.h> | ||
| 3 | - | ||
| 4 | -#include "version_choose.h" | ||
| 5 | -#include "Lighting_InAndOut.h" | ||
| 6 | -#include "./SearchLight/SearchLight_V3S/SearchLight_V3S.h" | ||
| 7 | -#include "./WarningLight/WarningLight_V3S/WarningLight_V3S.h" | ||
| 8 | -#include "SearchLight/SearchLightTemControl/SearchLightTemControl.h" | ||
| 9 | -#include "UI_control.h" | ||
| 10 | -#include "BaseConfig.h" | ||
| 11 | -#include "Hal_Send/HalSend.h" | ||
| 12 | - | ||
| 13 | -static int SearchLight_Frequency; //探照灯频率 | ||
| 14 | -static int SearchLight_Mode; //探照灯模式 | ||
| 15 | - | ||
| 16 | - | ||
| 17 | -static int SearchLight_LeftLumen; //探照灯设置左灯亮度 | ||
| 18 | -static int SearchLight_RightLumen; //探照灯设置右灯亮度 | ||
| 19 | - | ||
| 20 | -static int SearchLight_LeftTemperature; //探照灯左边温度 | ||
| 21 | -static int SearchLight_RightTemperature; //探照灯右边温度 | ||
| 22 | - | ||
| 23 | -static int WarningLight_Status; //警灯状态 | ||
| 24 | -static int WarningLight_Mode; //警灯模式 | ||
| 25 | - | ||
| 26 | -static int WarningLight_Color1; //警灯颜色1 | ||
| 27 | -static int WarningLight_Color2; //警灯颜色2 | ||
| 28 | - | ||
| 29 | -static int g_SearchLight_Subscription_Flag = JZ_FLAGCODE_ON; //消息订阅状态 | ||
| 30 | - | ||
| 31 | -#define MAX(a,b) ( (a>b) ?a:b ) | ||
| 32 | - | ||
| 33 | -T_JZsdkReturnCode Lighting_Init() | ||
| 34 | -{ | ||
| 35 | - //温控初始化 | ||
| 36 | - JZsdk_SearchLightTemControl_Init(); | ||
| 37 | -} | ||
| 38 | - | ||
| 39 | -/******************************************************************************************************************************** | ||
| 40 | - * | ||
| 41 | - * 探照灯 灯光属性 | ||
| 42 | - * | ||
| 43 | -********************************************************************************************************************************/ | ||
| 44 | -// //查询灯光属性 | ||
| 45 | -// T_JZsdkReturnCode Lighting_CheckStatus_SearchLightLightAttribute(int *ValueFrequency, int *ValueMode, int *ValueLeftLumen, int *ValueRightLumen) | ||
| 46 | -// { | ||
| 47 | -// //1、刷新查询灯光属性 | ||
| 48 | -// if (DEVICE_VERSION == JZ_H1T) | ||
| 49 | -// { | ||
| 50 | -// SearchLight_V3S_H1T_CheckStatus_LightAttribute(); | ||
| 51 | -// } | ||
| 52 | - | ||
| 53 | -// //2、获取一次本地灯光属性 | ||
| 54 | -// Lighting_Get_SearchLightMode(ValueMode); | ||
| 55 | -// Lighting_Get_SearchLightLumen(ValueLeftLumen, ValueRightLumen); | ||
| 56 | -// Lighting_Get_SearchLightFrequency(ValueFrequency); | ||
| 57 | - | ||
| 58 | - | ||
| 59 | -// return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 60 | -// } | ||
| 61 | - | ||
| 62 | -/******************************************************************************************************************************** | ||
| 63 | - * | ||
| 64 | - * 探照灯 模式相关 | ||
| 65 | - * | ||
| 66 | -********************************************************************************************************************************/ | ||
| 67 | - | ||
| 68 | -// //设置探照灯模式 | ||
| 69 | -// T_JZsdkReturnCode Lighting_SearchLightControl(int mode) | ||
| 70 | -// { | ||
| 71 | -// printf("设置%x探照灯模式\n",DEVICE_VERSION); | ||
| 72 | - | ||
| 73 | -// SearchLight_Mode = mode; | ||
| 74 | - | ||
| 75 | -// if (DEVICE_VERSION == JZ_U3 || DEVICE_VERSION == JZ_U3S || DEVICE_VERSION == JZ_U3D || DEVICE_VERSION == JZ_U30) | ||
| 76 | -// { | ||
| 77 | -// return SearchLight_V3S_U3_SearchLightControl(mode); | ||
| 78 | -// } | ||
| 79 | -// else if (DEVICE_VERSION == JZ_T40) | ||
| 80 | -// { | ||
| 81 | -// return SearchLight_V3S_T40_SearchLightControl(mode); | ||
| 82 | -// } | ||
| 83 | -// else if (DEVICE_VERSION == JZ_H1T) | ||
| 84 | -// { | ||
| 85 | -// return SearchLight_V3S_H1T_SearchLightControl(mode); | ||
| 86 | -// } | ||
| 87 | -// else if (DEVICE_VERSION == TF_A1) | ||
| 88 | -// { | ||
| 89 | -// return SearchLight_V3S_TFA1_SearchLightControl(mode); | ||
| 90 | -// } | ||
| 91 | - | ||
| 92 | -// return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
| 93 | -// } | ||
| 94 | - | ||
| 95 | -// //收到并修改探照灯模式(中继修改) | ||
| 96 | -// T_JZsdkReturnCode Lighting_Obtain_SearchLightMode(int mode) | ||
| 97 | -// { | ||
| 98 | -// printf("%x探照灯模式改变%d\n",DEVICE_VERSION, mode); | ||
| 99 | - | ||
| 100 | -// SearchLight_Mode = mode; | ||
| 101 | - | ||
| 102 | -// return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 103 | -// } | ||
| 104 | - | ||
| 105 | -// //获取探照灯的灯光模式 | ||
| 106 | -// T_JZsdkReturnCode Lighting_Get_SearchLightMode(int *mode) | ||
| 107 | -// { | ||
| 108 | -// *mode = SearchLight_Mode; | ||
| 109 | - | ||
| 110 | -// return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 111 | -// } | ||
| 112 | - | ||
| 113 | -// //查询探照灯灯光模式 | ||
| 114 | -// T_JZsdkReturnCode Lighting_CheckStatus_SearchLightMode() | ||
| 115 | -// { | ||
| 116 | - | ||
| 117 | -// return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
| 118 | -// } | ||
| 119 | - | ||
| 120 | - | ||
| 121 | -/******************************************************************************************************************************** | ||
| 122 | - * | ||
| 123 | - * 探照灯 灯光亮度相关 | ||
| 124 | - * | ||
| 125 | -********************************************************************************************************************************/ | ||
| 126 | - | ||
| 127 | -// //设置探照灯的灯光亮度 | ||
| 128 | -// T_JZsdkReturnCode Lighting_Set_SearchLightLumen(int LeftLumen, int RightLumen) | ||
| 129 | -// { | ||
| 130 | -// printf("设置%x探照灯灯光亮度\n",DEVICE_VERSION); | ||
| 131 | - | ||
| 132 | -// if (DEVICE_VERSION == JZ_U3 || DEVICE_VERSION == JZ_U3S || DEVICE_VERSION == JZ_U3D || DEVICE_VERSION == JZ_U30) | ||
| 133 | -// { | ||
| 134 | -// SearchLight_RightLumen = RightLumen; | ||
| 135 | -// SearchLight_LeftLumen = LeftLumen; | ||
| 136 | -// return SearchLight_V3S_U3_Set_SearchLightLumen(LeftLumen, RightLumen); | ||
| 137 | -// } | ||
| 138 | -// else if (DEVICE_VERSION == JZ_T40) | ||
| 139 | -// { | ||
| 140 | -// SearchLight_RightLumen = RightLumen; | ||
| 141 | -// SearchLight_LeftLumen = LeftLumen; | ||
| 142 | -// return SearchLight_V3S_T40_Set_SearchLightLumen(LeftLumen, RightLumen); | ||
| 143 | -// } | ||
| 144 | -// else if (DEVICE_VERSION == JZ_H1T) | ||
| 145 | -// { | ||
| 146 | -// return SearchLight_V3S_H1T_Set_SearchLightLumen(LeftLumen, RightLumen); | ||
| 147 | -// } | ||
| 148 | -// else if (DEVICE_VERSION == TF_A1) | ||
| 149 | -// { | ||
| 150 | -// SearchLight_RightLumen = RightLumen; | ||
| 151 | -// SearchLight_LeftLumen = LeftLumen; | ||
| 152 | -// return SearchLight_V3S_TFA1_Set_SearchLightLumen(LeftLumen, RightLumen); | ||
| 153 | -// } | ||
| 154 | - | ||
| 155 | -// return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
| 156 | -// } | ||
| 157 | - | ||
| 158 | -// //收到并修改探照灯的灯光亮度(中继修改) | ||
| 159 | -// T_JZsdkReturnCode Lighting_Obtain_SearchLightLumen(int LeftLumen, int RightLumen) | ||
| 160 | -// { | ||
| 161 | -// printf("接收到%x探照灯灯光亮度 左灯%d 右灯%d\n",DEVICE_VERSION, LeftLumen, RightLumen); | ||
| 162 | - | ||
| 163 | -// //如果是主喊话器副灯的单一设备 | ||
| 164 | -// if (DEVICE_VERSION == TF_A1 || DEVICE_VERSION == JZ_U3 || DEVICE_VERSION == JZ_U3S || DEVICE_VERSION == JZ_U3D || DEVICE_VERSION == JZ_U30) | ||
| 165 | -// { | ||
| 166 | - | ||
| 167 | -// } | ||
| 168 | - | ||
| 169 | -// else | ||
| 170 | -// { | ||
| 171 | -// SearchLight_RightLumen = RightLumen; | ||
| 172 | -// SearchLight_LeftLumen = LeftLumen; | ||
| 173 | -// } | ||
| 174 | - | ||
| 175 | - | ||
| 176 | -// return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 177 | -// } | ||
| 178 | - | ||
| 179 | -// //获取探照灯设置的灯光亮度 | ||
| 180 | -// T_JZsdkReturnCode Lighting_Get_SearchLightLumen(int *LeftLumen, int *RightLumen) | ||
| 181 | -// { | ||
| 182 | -// *LeftLumen = SearchLight_LeftLumen; | ||
| 183 | -// *RightLumen = SearchLight_RightLumen; | ||
| 184 | -// return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 185 | -// } | ||
| 186 | - | ||
| 187 | -// //查询探照灯灯光亮度 | ||
| 188 | -// T_JZsdkReturnCode Lighting_CheckStatus_SearchLightLumen() | ||
| 189 | -// { | ||
| 190 | -// return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
| 191 | -// } | ||
| 192 | - | ||
| 193 | - | ||
| 194 | - | ||
| 195 | -/******************************************************************************************************************************** | ||
| 196 | - * | ||
| 197 | - * 探照灯 灯光频率相关 | ||
| 198 | - * | ||
| 199 | -********************************************************************************************************************************/ | ||
| 200 | - | ||
| 201 | -// //设置爆闪灯频率 | ||
| 202 | -// T_JZsdkReturnCode Lighting_Set_SearchLightFrequency(int value) | ||
| 203 | -// { | ||
| 204 | -// printf("设置0x%x:探照灯爆闪频率\n",DEVICE_VERSION); | ||
| 205 | - | ||
| 206 | -// if (DEVICE_VERSION == JZ_U3 || DEVICE_VERSION == JZ_U3S || DEVICE_VERSION == JZ_U3D || DEVICE_VERSION == JZ_U30) | ||
| 207 | -// { | ||
| 208 | -// SearchLight_Frequency = value; | ||
| 209 | -// return SearchLight_V3S_U3_Set_SearchLightFrequency(value); | ||
| 210 | -// } | ||
| 211 | -// else if (DEVICE_VERSION == JZ_T40) | ||
| 212 | -// { | ||
| 213 | -// return SearchLight_V3S_T40_Set_SearchLightFrequency(value); | ||
| 214 | -// } | ||
| 215 | -// else if (DEVICE_VERSION == JZ_H1T) | ||
| 216 | -// { | ||
| 217 | -// return SearchLight_V3S_H1T_Set_SearchLightFrequency(value); | ||
| 218 | -// } | ||
| 219 | -// else if (DEVICE_VERSION == TF_A1) | ||
| 220 | -// { | ||
| 221 | -// return SearchLight_V3S_TFA1_Set_SearchLightFrequency(value); | ||
| 222 | -// } | ||
| 223 | - | ||
| 224 | -// return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
| 225 | -// } | ||
| 226 | - | ||
| 227 | -// //收到并修改探照灯的灯光频率(中继修改) | ||
| 228 | -// T_JZsdkReturnCode Lighting_Obtain_SearchLightFrequency(int Frequency) | ||
| 229 | -// { | ||
| 230 | -// printf("%x探照灯爆闪频率改变%d\n",DEVICE_VERSION, Frequency); | ||
| 231 | - | ||
| 232 | -// SearchLight_Frequency = Frequency; | ||
| 233 | - | ||
| 234 | -// return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 235 | -// } | ||
| 236 | - | ||
| 237 | -// //获取探照灯的灯光频率 | ||
| 238 | -// T_JZsdkReturnCode Lighting_Get_SearchLightFrequency(int *Frequency) | ||
| 239 | -// { | ||
| 240 | -// *Frequency = SearchLight_Frequency; | ||
| 241 | -// return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 242 | -// } | ||
| 243 | - | ||
| 244 | -// //查询探照灯灯光频率 | ||
| 245 | -// T_JZsdkReturnCode Lighting_CheckStatus_SearchLightFrequency() | ||
| 246 | -// { | ||
| 247 | -// return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
| 248 | -// } | ||
| 249 | - | ||
| 250 | -// //收到并修改探照灯的温度(中继修改) | ||
| 251 | -// T_JZsdkReturnCode Lighting_Obtain_SearchLightTemperature(int LeftTemperature, int RightTemperature) | ||
| 252 | -// { | ||
| 253 | -// printf("设备0x1010%x探照灯温度改变左灯%d 右灯%d\n",DEVICE_VERSION, LeftTemperature ,RightTemperature); | ||
| 254 | - | ||
| 255 | -// SearchLight_LeftTemperature = LeftTemperature; | ||
| 256 | -// SearchLight_RightTemperature = RightTemperature; | ||
| 257 | - | ||
| 258 | -// int Max_tmeperature; //最大温度值 | ||
| 259 | - | ||
| 260 | -// Max_tmeperature = MAX(LeftTemperature, RightTemperature); | ||
| 261 | - | ||
| 262 | -// //判断探照灯是否有打开 | ||
| 263 | -// if (SearchLight_Mode == JZ_FLAGCODE_OFF) | ||
| 264 | -// { | ||
| 265 | -// return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 266 | -// } | ||
| 267 | - | ||
| 268 | -// if (DEVICE_VERSION == JZ_U3 || | ||
| 269 | -// DEVICE_VERSION == JZ_U3S || | ||
| 270 | -// DEVICE_VERSION == JZ_U3D || | ||
| 271 | -// DEVICE_VERSION == JZ_U30 || | ||
| 272 | -// DEVICE_VERSION == TF_A1 || | ||
| 273 | -// DEVICE_VERSION == JZ_T40 | ||
| 274 | -// ) | ||
| 275 | -// { | ||
| 276 | -// //输入温度进温度控制线程 | ||
| 277 | -// SearchLightTemControl_Set_g_InputTemp(Max_tmeperature); | ||
| 278 | -// } | ||
| 279 | - | ||
| 280 | -// return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 281 | -// } | ||
| 282 | - | ||
| 283 | -// //获取探照灯的灯光温度 | ||
| 284 | -// T_JZsdkReturnCode Lighting_Get_SearchLightTemperature(int *LeftTemperature, int *RightTemperature) | ||
| 285 | -// { | ||
| 286 | -// *LeftTemperature = SearchLight_LeftTemperature; | ||
| 287 | -// *RightTemperature = SearchLight_RightTemperature; | ||
| 288 | - | ||
| 289 | -// return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 290 | -// } | ||
| 291 | - | ||
| 292 | -// //查询灯光温度 | ||
| 293 | -// T_JZsdkReturnCode Lighting_CheckStatus_SearchLightTemperture(int *ValueLeftTemperature, int *ValueRightTemperaturen) | ||
| 294 | -// { | ||
| 295 | -// //1、刷新查询灯光温度 | ||
| 296 | -// if (DEVICE_VERSION == JZ_H1T) | ||
| 297 | -// { | ||
| 298 | -// SearchLight_V3S_H1T_CheckStatus_SearchLightTemperture(); | ||
| 299 | -// } | ||
| 300 | - | ||
| 301 | -// //2、获取一次本地灯光温度 | ||
| 302 | -// Lighting_Get_SearchLightTemperature(ValueLeftTemperature, ValueRightTemperaturen); | ||
| 303 | - | ||
| 304 | -// return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 305 | -// } | ||
| 306 | - | ||
| 307 | -/******************************************************************************************************************************** | ||
| 308 | - * | ||
| 309 | - * 探照灯 警灯状态 | ||
| 310 | - * | ||
| 311 | -********************************************************************************************************************************/ | ||
| 312 | -//设置警灯状态 | ||
| 313 | -T_JZsdkReturnCode Lighting_Set_WarningLight_Status(int status, int mode) | ||
| 314 | -{ | ||
| 315 | - printf("设置0x%x:警灯状态\n",DEVICE_VERSION); | ||
| 316 | - | ||
| 317 | - | ||
| 318 | -#if DEVICE_VERSION == JZ_H1T | ||
| 319 | - return WarningLight_V3S_H1T_Set_WarningLight_Status(status, mode); | ||
| 320 | - | ||
| 321 | -#elif DEVICE_VERSION == TF_A1 | ||
| 322 | - return WarningLight_V3S_TFA1_Set_WarningLight_Status(status, mode); | ||
| 323 | -#elif DEVICE_VERSION == JZ_U3S || DEVICE_VERSION == JZ_U3D || DEVICE_VERSION == JZ_U30 | ||
| 324 | - WarningLight_Status = status; | ||
| 325 | - WarningLight_Mode = mode; | ||
| 326 | - return HalSend_type1Send_Set_WarningLight_Status(UART_DEV_2, status, mode); | ||
| 327 | -#else | ||
| 328 | - return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
| 329 | -#endif | ||
| 330 | -} | ||
| 331 | - | ||
| 332 | -//收到并修改警灯状态 | ||
| 333 | -T_JZsdkReturnCode Lighting_Obtain_WarningLight_Status(int status, int mode) | ||
| 334 | -{ | ||
| 335 | - printf("%x警灯状态改变 状态%d 模式%d\n",DEVICE_VERSION, status ,mode); | ||
| 336 | - | ||
| 337 | - WarningLight_Status = status; | ||
| 338 | - WarningLight_Mode = mode; | ||
| 339 | - | ||
| 340 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 341 | -} | ||
| 342 | - | ||
| 343 | -//获取探警灯状态 | ||
| 344 | -T_JZsdkReturnCode Lighting_Get_WarningLight_Status(int *status, int *mode) | ||
| 345 | -{ | ||
| 346 | - *status = WarningLight_Status; | ||
| 347 | - *mode = WarningLight_Mode; | ||
| 348 | - | ||
| 349 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 350 | -} | ||
| 351 | - | ||
| 352 | -/********* | ||
| 353 | - * | ||
| 354 | - * 查询警灯状态 | ||
| 355 | - * | ||
| 356 | -**********/ | ||
| 357 | -T_JZsdkReturnCode Lighting_CheckStatus_WarningLightStatus(int *ValueSwitch, int *ValueMode) | ||
| 358 | -{ | ||
| 359 | - //1、刷新查询警灯状态 | ||
| 360 | - if (DEVICE_VERSION == JZ_H1T) | ||
| 361 | - { | ||
| 362 | - WarningLight_V3S_H1T_CheckStatus_WarningLightStatus(); | ||
| 363 | - } | ||
| 364 | - else if (DEVICE_VERSION == JZ_U3S || DEVICE_VERSION == JZ_U3D || DEVICE_VERSION == JZ_U30) | ||
| 365 | - { | ||
| 366 | - HalSend_type1Send_CheckStatus_WarningLightStatus(UART_DEV_2); | ||
| 367 | - } | ||
| 368 | - | ||
| 369 | - //2、获取一次本地警灯状态 | ||
| 370 | - Lighting_Get_WarningLight_Status(ValueSwitch, ValueMode); | ||
| 371 | - | ||
| 372 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 373 | -} | ||
| 374 | - | ||
| 375 | -/******************************************************************************************************************************** | ||
| 376 | - * | ||
| 377 | - * 探照灯 警灯颜色 | ||
| 378 | - * | ||
| 379 | -********************************************************************************************************************************/ | ||
| 380 | -//设置警灯颜色 | ||
| 381 | -T_JZsdkReturnCode Lighting_Set_WarningLight_Color(int color1, int color2) | ||
| 382 | -{ | ||
| 383 | - printf("设置0x%x:警灯颜色\n",DEVICE_VERSION); | ||
| 384 | - | ||
| 385 | -#if DEVICE_VERSION == JZ_H1T | ||
| 386 | - return WarningLight_V3S_H1T_Set_WarningLight_Color(color1, color2); | ||
| 387 | - | ||
| 388 | -#elif DEVICE_VERSION == TF_A1 | ||
| 389 | - return WarningLight_V3S_TFA1_Set_WarningLight_Color(color1, color2); | ||
| 390 | -#elif DEVICE_VERSION == JZ_U3S || DEVICE_VERSION == JZ_U3D || DEVICE_VERSION == JZ_U30 | ||
| 391 | - | ||
| 392 | - //临时方案,u3s查不到警灯颜色 | ||
| 393 | - #if DEVICE_VERSION == JZ_U3S | ||
| 394 | - WarningLight_Color1 = color1; | ||
| 395 | - WarningLight_Color2 = color2; | ||
| 396 | - #endif | ||
| 397 | - | ||
| 398 | - return HalSend_type1Send_Set_WarningLight_Color(UART_DEV_2, color1, color2); | ||
| 399 | -#else | ||
| 400 | - return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
| 401 | -#endif | ||
| 402 | - | ||
| 403 | - return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
| 404 | -} | ||
| 405 | - | ||
| 406 | -//收到并修改警灯颜色 | ||
| 407 | -T_JZsdkReturnCode Lighting_Obtain_WarningLight_Color(int color1, int color2) | ||
| 408 | -{ | ||
| 409 | - printf("%x警灯颜色改变 颜色1:%d 颜色2:%d\n",DEVICE_VERSION, color1 ,color2); | ||
| 410 | - | ||
| 411 | - WarningLight_Color1 = color1; | ||
| 412 | - WarningLight_Color2 = color2; | ||
| 413 | - | ||
| 414 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 415 | -} | ||
| 416 | - | ||
| 417 | -//获取探警灯颜色 | ||
| 418 | -T_JZsdkReturnCode Lighting_Get_WarningLight_Color(int *color1, int *color2) | ||
| 419 | -{ | ||
| 420 | - *color1 = WarningLight_Color1; | ||
| 421 | - *color2 = WarningLight_Color2; | ||
| 422 | - | ||
| 423 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 424 | -} | ||
| 425 | - | ||
| 426 | -/********* | ||
| 427 | - * | ||
| 428 | - * 查询探警灯颜色 | ||
| 429 | - * | ||
| 430 | -**********/ | ||
| 431 | -T_JZsdkReturnCode Lighting_CheckStatus_WarningLightColor(int *ValueColor1, int *ValueColor2) | ||
| 432 | -{ | ||
| 433 | - //1、刷新查询探警灯颜色 | ||
| 434 | - if (DEVICE_VERSION == JZ_H1T) | ||
| 435 | - { | ||
| 436 | - WarningLight_V3S_H1T_CheckStatus_WarningLightColor(); | ||
| 437 | - } | ||
| 438 | - | ||
| 439 | - //2、获取一次本地探警灯颜色 | ||
| 440 | - Lighting_Get_WarningLight_Color(ValueColor1, ValueColor2); | ||
| 441 | - | ||
| 442 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 443 | -} | ||
| 444 | - | ||
| 445 | -// /********* | ||
| 446 | -// * | ||
| 447 | -// *刷新亮度函数 | ||
| 448 | -// * | ||
| 449 | -// **********/ | ||
| 450 | -// T_JZsdkReturnCode JZsdk_SearchLight_FlushLumen(int InputLumen) | ||
| 451 | -// { | ||
| 452 | -// JZsdk_SearchLightTemControl_FlushLumen(InputLumen); | ||
| 453 | -// } | ||
| 454 | - | ||
| 455 | -// /**************** | ||
| 456 | -// * | ||
| 457 | -// * 获取消息订阅状态 | ||
| 458 | -// * | ||
| 459 | -// * *************/ | ||
| 460 | -// int JZsdk_SearchLight_GetMessageSubFlag(void) | ||
| 461 | -// { | ||
| 462 | -// return g_SearchLight_Subscription_Flag; | ||
| 463 | -// } | ||
| 464 | - | ||
| 465 | -// /*************************** | ||
| 466 | -// * | ||
| 467 | -// * 设置消息订阅状态 | ||
| 468 | -// * | ||
| 469 | -// * | ||
| 470 | -// ************************/ | ||
| 471 | -// T_JZsdkReturnCode JZsdk_SearchLight_SetMessageSubFlag(int InputFlag) | ||
| 472 | -// { | ||
| 473 | -// g_SearchLight_Subscription_Flag = InputFlag; | ||
| 474 | - | ||
| 475 | -// return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 476 | -// } |
Module/Lighting/Lighting_InAndOut.h
已删除
100644 → 0
| 1 | -/** | ||
| 2 | - ******************************************************************** | ||
| 3 | - * @file Lighting_InAndOut.h | ||
| 4 | - * Lighting_InAndOut的头文件 | ||
| 5 | - * | ||
| 6 | - ********************************************************************* | ||
| 7 | - */ | ||
| 8 | - | ||
| 9 | -/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/ | ||
| 10 | -#ifndef LIGHTING_INANDOUT_H | ||
| 11 | -#define LIGHTING_INANDOUT_H | ||
| 12 | - | ||
| 13 | -/* Includes ------------------------------------------------------------------*/ | ||
| 14 | -#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h" | ||
| 15 | - | ||
| 16 | -#ifdef __cplusplus | ||
| 17 | -extern "C" { | ||
| 18 | -#endif | ||
| 19 | - | ||
| 20 | -/* Exported constants --------------------------------------------------------*/ | ||
| 21 | -/* 常亮定义*/ | ||
| 22 | - | ||
| 23 | -/* Exported types ------------------------------------------------------------*/ | ||
| 24 | - | ||
| 25 | -/* Exported functions --------------------------------------------------------*/ | ||
| 26 | -T_JZsdkReturnCode Lighting_Init(); | ||
| 27 | - | ||
| 28 | -T_JZsdkReturnCode Lighting_CheckStatus_SearchLightLightAttribute(int *ValueFrequency, int *ValueMode, int *ValueLeftLumen, int *ValueRightLumen); | ||
| 29 | - | ||
| 30 | -T_JZsdkReturnCode Lighting_SearchLightControl(int mode); | ||
| 31 | -T_JZsdkReturnCode Lighting_Obtain_SearchLightMode(int mode); | ||
| 32 | -T_JZsdkReturnCode Lighting_Get_SearchLightMode(int *mode); | ||
| 33 | - | ||
| 34 | -T_JZsdkReturnCode Lighting_Set_SearchLightLumen(int LeftLumen, int RightLumen); | ||
| 35 | -T_JZsdkReturnCode Lighting_Obtain_SearchLightLumen(int LeftLumen, int RightLumen); | ||
| 36 | -T_JZsdkReturnCode Lighting_Get_SearchLightLumen(int *LeftLumen, int *RightLumen); | ||
| 37 | - | ||
| 38 | -T_JZsdkReturnCode Lighting_Set_SearchLightFrequency(int value); | ||
| 39 | -T_JZsdkReturnCode Lighting_Obtain_SearchLightFrequency(int Frequency); | ||
| 40 | -T_JZsdkReturnCode Lighting_Get_SearchLightFrequency(int *Frequency); | ||
| 41 | - | ||
| 42 | -T_JZsdkReturnCode Lighting_Obtain_SearchLightTemperature(int LeftTemperature, int RightTemperature); | ||
| 43 | -T_JZsdkReturnCode Lighting_Get_SearchLightTemperature(int *LeftTemperature, int *RightTemperature); | ||
| 44 | -T_JZsdkReturnCode Lighting_CheckStatus_SearchLightTemperture(int *ValueLeftTemperature, int *ValueRightTemperaturen); | ||
| 45 | - | ||
| 46 | -T_JZsdkReturnCode Lighting_Set_WarningLight_Status(int status, int mode); | ||
| 47 | -T_JZsdkReturnCode Lighting_Obtain_WarningLight_Status(int status, int mode); | ||
| 48 | -T_JZsdkReturnCode Lighting_Get_WarningLight_Status(int *status, int *mode); | ||
| 49 | -T_JZsdkReturnCode Lighting_CheckStatus_WarningLightStatus(int *ValueSwitch, int *ValueMode); | ||
| 50 | - | ||
| 51 | -T_JZsdkReturnCode Lighting_Set_WarningLight_Color(int color1, int color2); | ||
| 52 | -T_JZsdkReturnCode Lighting_Obtain_WarningLight_Color(int color1, int color2); | ||
| 53 | -T_JZsdkReturnCode Lighting_Get_WarningLight_Color(int *color1, int *color2); | ||
| 54 | -T_JZsdkReturnCode Lighting_CheckStatus_WarningLightColor(int *ValueColor1, int *ValueColor2); | ||
| 55 | - | ||
| 56 | -T_JZsdkReturnCode JZsdk_SearchLight_FlushLumen(int InputLumen); | ||
| 57 | - | ||
| 58 | - | ||
| 59 | -int JZsdk_SearchLight_GetMessageSubFlag(void); | ||
| 60 | -T_JZsdkReturnCode JZsdk_SearchLight_SetMessageSubFlag(int InputFlag); | ||
| 61 | - | ||
| 62 | - | ||
| 63 | -#ifdef __cplusplus | ||
| 64 | -} | ||
| 65 | -#endif | ||
| 66 | - | ||
| 67 | -#endif |
Module/Lighting/SearchLight/SearchLight_V3S/SearchLight_V3S_H1T/SearchLight_V3S_H1T.c
已删除
100644 → 0
| 1 | -#include <stdio.h> | ||
| 2 | -#include "./SearchLight_V3S_H1T.h" | ||
| 3 | -#include "BaseConfig.h" | ||
| 4 | - | ||
| 5 | -#include "Hal_Send/HalSend.h" | ||
| 6 | - | ||
| 7 | -//设置探照灯频率 | ||
| 8 | -T_JZsdkReturnCode SearchLight_V3S_H1T_Set_SearchLightFrequency(int value) | ||
| 9 | -{ | ||
| 10 | - //向H1T的单片机发送调节频率帧 | ||
| 11 | - HalSend_type1Send_Set_SearchLightFrequency(UART_DEV_1, value, 0x00); | ||
| 12 | - | ||
| 13 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 14 | -} | ||
| 15 | - | ||
| 16 | -//设置探照灯控制模式 | ||
| 17 | -T_JZsdkReturnCode SearchLight_V3S_H1T_SearchLightControl(int mode) | ||
| 18 | -{ | ||
| 19 | - //向H1T的单片机发送探照灯控制帧 | ||
| 20 | - HalSend_type1Send_SearchLight_Control(UART_DEV_1, mode, 0x00); | ||
| 21 | - | ||
| 22 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 23 | -} | ||
| 24 | - | ||
| 25 | -//设置灯亮度 | ||
| 26 | -T_JZsdkReturnCode SearchLight_V3S_H1T_Set_SearchLightLumen(int LeftLumen, int RightLumen) | ||
| 27 | -{ | ||
| 28 | - //向H1T的单片机发送探照灯控制帧 | ||
| 29 | - HalSend_type1Send_SearchLight_SetLumen(UART_DEV_1, LeftLumen, RightLumen, 0x00); | ||
| 30 | - | ||
| 31 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 32 | -} | ||
| 33 | - | ||
| 34 | -//查询探照灯模式 | ||
| 35 | -T_JZsdkReturnCode SearchLight_V3S_H1T_CheckStatus_LightMode() | ||
| 36 | -{ | ||
| 37 | - //向H1T的单片机发送探照灯灯光模式查询帧 | ||
| 38 | - HalSend_type1Send_CheckStatus_SearchLight_Mode(UART_DEV_1); | ||
| 39 | - | ||
| 40 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 41 | -} | ||
| 42 | - | ||
| 43 | -//查询探照灯亮度 | ||
| 44 | -T_JZsdkReturnCode SearchLight_V3S_H1T_CheckStatus_LightLumen() | ||
| 45 | -{ | ||
| 46 | - //向H1T的单片机发送探照灯灯光模式查询帧 | ||
| 47 | - HalSend_type1Send_CheckStatus_SearchLight_Lumen(UART_DEV_1); | ||
| 48 | - | ||
| 49 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 50 | -} | ||
| 51 | - | ||
| 52 | -//查询探照灯频率 | ||
| 53 | -T_JZsdkReturnCode SearchLight_V3S_H1T_CheckStatus_LightFrequency() | ||
| 54 | -{ | ||
| 55 | - //向H1T的单片机发送探照灯灯光模式查询帧 | ||
| 56 | - HalSend_type1Send_CheckStatus_SearchLight_Frequency(UART_DEV_1); | ||
| 57 | - | ||
| 58 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 59 | -} | ||
| 60 | - | ||
| 61 | - | ||
| 62 | -//查询探照灯灯光属性 | ||
| 63 | -T_JZsdkReturnCode SearchLight_V3S_H1T_CheckStatus_LightAttribute() | ||
| 64 | -{ | ||
| 65 | - //向H1T的单片机发送探照灯灯光模式查询帧 | ||
| 66 | - HalSend_type1Send_CheckStatus_SearchLight_Attribute(UART_DEV_1); | ||
| 67 | - | ||
| 68 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 69 | -} | ||
| 70 | - | ||
| 71 | -//查询探照灯灯光温度 | ||
| 72 | -T_JZsdkReturnCode SearchLight_V3S_H1T_CheckStatus_SearchLightTemperture() | ||
| 73 | -{ | ||
| 74 | - //向H1T的单片机发送探照灯灯光模式查询帧 | ||
| 75 | - HalSend_type1Send_CheckStatus_SearchLight_Temperture(UART_DEV_1, 0x00); | ||
| 76 | - | ||
| 77 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 78 | -} |
Module/Lighting/SearchLight/SearchLight_V3S/SearchLight_V3S_H1T/SearchLight_V3S_H1T.h
已删除
100644 → 0
| 1 | -/** | ||
| 2 | - ******************************************************************** | ||
| 3 | - * @file SearchLight_V3S_H1T.h | ||
| 4 | - * SearchLight_V3S_H1T的头文件 | ||
| 5 | - * | ||
| 6 | - ********************************************************************* | ||
| 7 | - */ | ||
| 8 | - | ||
| 9 | -/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/ | ||
| 10 | -#ifndef SEARCHLIGHT_V3S_H1T_H | ||
| 11 | -#define SEARCHLIGHT_V3S_H1T_H | ||
| 12 | - | ||
| 13 | -/* Includes ------------------------------------------------------------------*/ | ||
| 14 | -#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h" | ||
| 15 | - | ||
| 16 | -#ifdef __cplusplus | ||
| 17 | -extern "C" { | ||
| 18 | -#endif | ||
| 19 | - | ||
| 20 | -/* Exported constants --------------------------------------------------------*/ | ||
| 21 | -/* 常亮定义*/ | ||
| 22 | - | ||
| 23 | - | ||
| 24 | -/* Exported types ------------------------------------------------------------*/ | ||
| 25 | - | ||
| 26 | -/* Exported functions --------------------------------------------------------*/ | ||
| 27 | -T_JZsdkReturnCode SearchLight_V3S_H1T_Set_SearchLightFrequency(int value); | ||
| 28 | -T_JZsdkReturnCode SearchLight_V3S_H1T_SearchLightControl(int mode); | ||
| 29 | -T_JZsdkReturnCode SearchLight_V3S_H1T_Set_SearchLightLumen(int LeftLumen, int RightLumen); | ||
| 30 | -T_JZsdkReturnCode SearchLight_V3S_H1T_CheckStatus_LightAttribute(); | ||
| 31 | -T_JZsdkReturnCode SearchLight_V3S_H1T_CheckStatus_LightMode(); | ||
| 32 | -T_JZsdkReturnCode SearchLight_V3S_H1T_CheckStatus_LightLumen(); | ||
| 33 | -T_JZsdkReturnCode SearchLight_V3S_H1T_CheckStatus_LightFrequency(); | ||
| 34 | -T_JZsdkReturnCode SearchLight_V3S_H1T_CheckStatus_LightAttribute(); | ||
| 35 | -T_JZsdkReturnCode SearchLight_V3S_H1T_CheckStatus_SearchLightTemperture(); | ||
| 36 | - | ||
| 37 | -#ifdef __cplusplus | ||
| 38 | -} | ||
| 39 | -#endif | ||
| 40 | - | ||
| 41 | -#endif |
Module/Lighting/SearchLight/SearchLight_V3S/SearchLight_V3S_TFA1/SearchLight_V3S_TFA1.c
已删除
100644 → 0
| 1 | -#include <stdio.h> | ||
| 2 | -#include "./SearchLight_V3S_TFA1.h" | ||
| 3 | - | ||
| 4 | -#include "BaseConfig.h" | ||
| 5 | -#include "Hal_Send/HalSend.h" | ||
| 6 | - | ||
| 7 | - | ||
| 8 | -T_JZsdkReturnCode SearchLight_V3S_TFA1_Set_SearchLightFrequency(int value) | ||
| 9 | -{ | ||
| 10 | - //向u3的单片机发送调节频率帧 | ||
| 11 | - HalSend_type1Send_Set_SearchLightFrequency(UART_DEV_2, value, 0x00); | ||
| 12 | - | ||
| 13 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 14 | -} | ||
| 15 | - | ||
| 16 | -T_JZsdkReturnCode SearchLight_V3S_TFA1_SearchLightControl(int mode) | ||
| 17 | -{ | ||
| 18 | - //向u3的单片机发送探照灯控制帧 | ||
| 19 | - HalSend_type1Send_SearchLight_Control(UART_DEV_2, mode, 0x00); | ||
| 20 | - | ||
| 21 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 22 | -} | ||
| 23 | - | ||
| 24 | - | ||
| 25 | -T_JZsdkReturnCode SearchLight_V3S_TFA1_Set_SearchLightLumen(int LeftLumen, int RightLumen) | ||
| 26 | -{ | ||
| 27 | - //向tfa1的单片机发送探照灯控制帧 | ||
| 28 | - HalSend_type1Send_SearchLight_SetLumen(UART_DEV_2, LeftLumen, RightLumen, 0x00); | ||
| 29 | - | ||
| 30 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 31 | -} |
| 1 | -#include <stdio.h> | ||
| 2 | -#include "./SearchLight_V3S_U3.h" | ||
| 3 | - | ||
| 4 | -#include "BaseConfig.h" | ||
| 5 | -#include "Hal_Send/HalSend.h" | ||
| 6 | - | ||
| 7 | - | ||
| 8 | -T_JZsdkReturnCode SearchLight_V3S_U3_Set_SearchLightFrequency(int value) | ||
| 9 | -{ | ||
| 10 | - //向u3的单片机发送调节频率帧 | ||
| 11 | - HalSend_type1Send_Set_SearchLightFrequency(UART_DEV_2, value, 0x00); | ||
| 12 | - | ||
| 13 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 14 | -} | ||
| 15 | - | ||
| 16 | -T_JZsdkReturnCode SearchLight_V3S_U3_SearchLightControl(int mode) | ||
| 17 | -{ | ||
| 18 | - //向u3的单片机发送探照灯控制帧 | ||
| 19 | - HalSend_type1Send_SearchLight_Control(UART_DEV_2, mode, 0x00); | ||
| 20 | - | ||
| 21 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 22 | -} | ||
| 23 | - | ||
| 24 | -T_JZsdkReturnCode SearchLight_V3S_U3_Set_SearchLightLumen(int LeftLumen, int RightLumen) | ||
| 25 | -{ | ||
| 26 | - //向u3的单片机发送探照灯控制帧 | ||
| 27 | - HalSend_type1Send_SearchLight_SetLumen(UART_DEV_2, LeftLumen, RightLumen, 0x00); | ||
| 28 | - | ||
| 29 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 30 | -} | ||
| 31 | - | ||
| 32 | - | ||
| 33 | - | ||
| 34 | - | ||
| 35 | - | ||
| 36 | - | ||
| 37 | - | ||
| 38 | -/*********************************** | ||
| 39 | - * | ||
| 40 | - * 以下为T40的临时存放 | ||
| 41 | - * | ||
| 42 | - * | ||
| 43 | - * ********************************/ | ||
| 44 | - | ||
| 45 | - | ||
| 46 | -T_JZsdkReturnCode SearchLight_V3S_T40_Set_SearchLightFrequency(int value) | ||
| 47 | -{ | ||
| 48 | - //向u3的单片机发送调节频率帧 | ||
| 49 | - HalSend_type1Send_Set_SearchLightFrequency(UART_DEV_2, value, 0x20); | ||
| 50 | - | ||
| 51 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 52 | -} | ||
| 53 | - | ||
| 54 | -T_JZsdkReturnCode SearchLight_V3S_T40_SearchLightControl(int mode) | ||
| 55 | -{ | ||
| 56 | - //向u3的单片机发送探照灯控制帧 | ||
| 57 | - HalSend_type1Send_SearchLight_Control(UART_DEV_2, mode, 0x20); | ||
| 58 | - | ||
| 59 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 60 | -} | ||
| 61 | - | ||
| 62 | -T_JZsdkReturnCode SearchLight_V3S_T40_Set_SearchLightLumen(int LeftLumen, int RightLumen) | ||
| 63 | -{ | ||
| 64 | - //向单片机发送探照灯控制帧 | ||
| 65 | - HalSend_type1Send_SearchLight_SetSingleLumem(UART_DEV_2, LeftLumen, 0x20); | ||
| 66 | - | ||
| 67 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 68 | -} |
| 1 | -/** | ||
| 2 | - ******************************************************************** | ||
| 3 | - * @file SearchLight_V3S_U3.h | ||
| 4 | - * SearchLight_V3S_U3的头文件 | ||
| 5 | - * | ||
| 6 | - ********************************************************************* | ||
| 7 | - */ | ||
| 8 | - | ||
| 9 | -/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/ | ||
| 10 | -#ifndef SEARCHLIGHT_V3S_U3_H | ||
| 11 | -#define SEARCHLIGHT_V3S_U3_H | ||
| 12 | - | ||
| 13 | -/* Includes ------------------------------------------------------------------*/ | ||
| 14 | -#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h" | ||
| 15 | - | ||
| 16 | -#ifdef __cplusplus | ||
| 17 | -extern "C" { | ||
| 18 | -#endif | ||
| 19 | - | ||
| 20 | -/* Exported constants --------------------------------------------------------*/ | ||
| 21 | -/* 常亮定义*/ | ||
| 22 | - | ||
| 23 | - | ||
| 24 | -/* Exported types ------------------------------------------------------------*/ | ||
| 25 | - | ||
| 26 | -/* Exported functions --------------------------------------------------------*/ | ||
| 27 | -T_JZsdkReturnCode SearchLight_V3S_U3_Set_SearchLightFrequency(int value); | ||
| 28 | -T_JZsdkReturnCode SearchLight_V3S_U3_SearchLightControl(int mode); | ||
| 29 | -T_JZsdkReturnCode SearchLight_V3S_U3_Set_SearchLightLumen(int LeftLumen, int RightLumen); | ||
| 30 | - | ||
| 31 | - | ||
| 32 | -T_JZsdkReturnCode SearchLight_V3S_T40_Set_SearchLightFrequency(int value); | ||
| 33 | -T_JZsdkReturnCode SearchLight_V3S_T40_SearchLightControl(int mode); | ||
| 34 | -T_JZsdkReturnCode SearchLight_V3S_T40_Set_SearchLightLumen(int LeftLumen, int RightLumen); | ||
| 35 | - | ||
| 36 | -#ifdef __cplusplus | ||
| 37 | -} | ||
| 38 | -#endif | ||
| 39 | - | ||
| 40 | -#endif |
Module/Lighting/WarningLight/WarningLight_V3S/WarningLight_V3S_H1T/WarningLight_V3S_H1T.c
已删除
100644 → 0
| 1 | -#include <stdio.h> | ||
| 2 | -#include "./WarningLight_V3S_H1T.h" | ||
| 3 | -#include "BaseConfig.h" | ||
| 4 | - | ||
| 5 | -#include "Hal_Send/HalSend.h" | ||
| 6 | - | ||
| 7 | -//设置警灯状态 | ||
| 8 | -T_JZsdkReturnCode WarningLight_V3S_H1T_Set_WarningLight_Status(int status, int mode) | ||
| 9 | -{ | ||
| 10 | - //向底座T60s发送警灯状态 | ||
| 11 | - HalSend_type1Send_Set_WarningLight_Status(UART_DEV_1, status, mode); | ||
| 12 | - | ||
| 13 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 14 | -} | ||
| 15 | - | ||
| 16 | -//设置警灯颜色 | ||
| 17 | -T_JZsdkReturnCode WarningLight_V3S_H1T_Set_WarningLight_Color(int color1, int color2) | ||
| 18 | -{ | ||
| 19 | - HalSend_type1Send_Set_WarningLight_Color(UART_DEV_1, color1, color2); | ||
| 20 | - | ||
| 21 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 22 | -} | ||
| 23 | - | ||
| 24 | -/********* | ||
| 25 | - * | ||
| 26 | - * 查询警灯状态 | ||
| 27 | - * | ||
| 28 | -**********/ | ||
| 29 | -T_JZsdkReturnCode WarningLight_V3S_H1T_CheckStatus_WarningLightStatus() | ||
| 30 | -{ | ||
| 31 | - HalSend_type1Send_CheckStatus_WarningLightStatus(UART_DEV_1); | ||
| 32 | - | ||
| 33 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 34 | -} | ||
| 35 | - | ||
| 36 | -/********* | ||
| 37 | - * | ||
| 38 | - * 查询警灯颜色 | ||
| 39 | - * | ||
| 40 | -**********/ | ||
| 41 | -T_JZsdkReturnCode WarningLight_V3S_H1T_CheckStatus_WarningLightColor() | ||
| 42 | -{ | ||
| 43 | - HalSend_type1Send_CheckStatus_WarningLightColor(UART_DEV_1); | ||
| 44 | - | ||
| 45 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 46 | -} |
Module/Lighting/WarningLight/WarningLight_V3S/WarningLight_V3S_TFA1/WarningLight_V3S_TFA1.c
已删除
100644 → 0
| 1 | -#include <stdio.h> | ||
| 2 | -#include "./WarningLight_V3S_TFA1.h" | ||
| 3 | -#include "BaseConfig.h" | ||
| 4 | - | ||
| 5 | -#include "Hal_Send/HalSend.h" | ||
| 6 | - | ||
| 7 | -//设置警灯状态 | ||
| 8 | -T_JZsdkReturnCode WarningLight_V3S_TFA1_Set_WarningLight_Status(int status, int mode) | ||
| 9 | -{ | ||
| 10 | - //向单片机发送警灯状态 | ||
| 11 | - HalSend_type1Send_Set_WarningLight_Status(UART_DEV_2, status, mode); | ||
| 12 | - | ||
| 13 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 14 | -} | ||
| 15 | - | ||
| 16 | -//设置警灯颜色 | ||
| 17 | -T_JZsdkReturnCode WarningLight_V3S_TFA1_Set_WarningLight_Color(int color1, int color2) | ||
| 18 | -{ | ||
| 19 | - HalSend_type1Send_Set_WarningLight_Color(UART_DEV_2, color1, color2); | ||
| 20 | - | ||
| 21 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 22 | -} | ||
| 23 | - | ||
| 24 | -/********* | ||
| 25 | - * | ||
| 26 | - * 查询警灯状态 | ||
| 27 | - * | ||
| 28 | -**********/ | ||
| 29 | -T_JZsdkReturnCode WarningLight_V3S_TFA1_CheckStatus_WarningLightStatus() | ||
| 30 | -{ | ||
| 31 | - HalSend_type1Send_CheckStatus_WarningLightStatus(UART_DEV_2); | ||
| 32 | - | ||
| 33 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 34 | -} | ||
| 35 | - | ||
| 36 | -/********* | ||
| 37 | - * | ||
| 38 | - * 查询警灯颜色 | ||
| 39 | - * | ||
| 40 | -**********/ | ||
| 41 | -T_JZsdkReturnCode WarningLight_V3S_TFA1_CheckStatus_WarningLightColor() | ||
| 42 | -{ | ||
| 43 | - HalSend_type1Send_CheckStatus_WarningLightColor(UART_DEV_2); | ||
| 44 | - | ||
| 45 | - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 46 | -} |
Module/Lighting/WarningLight/WarningLight_V3S/WarningLight_V3S_TFA1/WarningLight_V3S_TFA1.h
已删除
100644 → 0
| 1 | -/** | ||
| 2 | - ******************************************************************** | ||
| 3 | - * @file WarningLight_V3S_TFA1.h | ||
| 4 | - * WarningLight_V3S_TFA1的头文件 | ||
| 5 | - * | ||
| 6 | - ********************************************************************* | ||
| 7 | - */ | ||
| 8 | - | ||
| 9 | -/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/ | ||
| 10 | -#ifndef WARNINGLIGHT_V3S_TFA1_H | ||
| 11 | -#define WARNINGLIGHT_V3S_TFA1_H | ||
| 12 | - | ||
| 13 | -/* Includes ------------------------------------------------------------------*/ | ||
| 14 | -#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h" | ||
| 15 | - | ||
| 16 | -#ifdef __cplusplus | ||
| 17 | -extern "C" { | ||
| 18 | -#endif | ||
| 19 | - | ||
| 20 | -/* Exported constants --------------------------------------------------------*/ | ||
| 21 | -/* 常亮定义*/ | ||
| 22 | - | ||
| 23 | - | ||
| 24 | -/* Exported types ------------------------------------------------------------*/ | ||
| 25 | - | ||
| 26 | -/* Exported functions --------------------------------------------------------*/ | ||
| 27 | -T_JZsdkReturnCode WarningLight_V3S_TFA1_Set_WarningLight_Status(int status, int mode); | ||
| 28 | -T_JZsdkReturnCode WarningLight_V3S_TFA1_Set_WarningLight_Color(int color1, int color2); | ||
| 29 | -T_JZsdkReturnCode WarningLight_V3S_TFA1_CheckStatus_WarningLightStatus(); | ||
| 30 | -T_JZsdkReturnCode WarningLight_V3S_TFA1_CheckStatus_WarningLightColor(); | ||
| 31 | - | ||
| 32 | -#ifdef __cplusplus | ||
| 33 | -} | ||
| 34 | -#endif | ||
| 35 | - | ||
| 36 | -#endif |
| @@ -31,7 +31,7 @@ T_JZsdkReturnCode VideoStream_PushFrame(unsigned char* h264_data, unsigned int d | @@ -31,7 +31,7 @@ T_JZsdkReturnCode VideoStream_PushFrame(unsigned char* h264_data, unsigned int d | ||
| 31 | return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | 31 | return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; |
| 32 | } | 32 | } |
| 33 | 33 | ||
| 34 | - //JZSDK_LOG_INFO("推送帧"); | 34 | + //JZSDK_LOG_DEBUG("相机推流帧%d",data_len); |
| 35 | 35 | ||
| 36 | //放入到对应的传输函数 | 36 | //放入到对应的传输函数 |
| 37 | #if APP_VERSION == APP_PSDK | 37 | #if APP_VERSION == APP_PSDK |
| @@ -46,7 +46,7 @@ static T_JZsdkReturnCode PcmPlay_Interface(t_PcmParam *PcmParam) | @@ -46,7 +46,7 @@ static T_JZsdkReturnCode PcmPlay_Interface(t_PcmParam *PcmParam) | ||
| 46 | nbBytes = fread(cbits, 1, 3 * 1276, Pcm_fp); | 46 | nbBytes = fread(cbits, 1, 3 * 1276, Pcm_fp); |
| 47 | if(nbBytes > 0) | 47 | if(nbBytes > 0) |
| 48 | { | 48 | { |
| 49 | - AudioDeal_PcmDataInput(g_opus_sampleRate, (unsigned char *)cbits, nbBytes, 1); | 49 | + AudioDeal_PcmDataInput_RecordSteam(g_opus_sampleRate, (unsigned char *)cbits, nbBytes); |
| 50 | } | 50 | } |
| 51 | 51 | ||
| 52 | int totalSamples = nbBytes / (2); | 52 | int totalSamples = nbBytes / (2); |
| @@ -73,7 +73,7 @@ T_JZsdkReturnCode Megaphone_Tts_Play(unsigned char *str, unsigned int str_len, i | @@ -73,7 +73,7 @@ T_JZsdkReturnCode Megaphone_Tts_Play(unsigned char *str, unsigned int str_len, i | ||
| 73 | int tone = TTS_Get_tone(); | 73 | int tone = TTS_Get_tone(); |
| 74 | if (tone >= 0x00 && tone <= 0x36) | 74 | if (tone >= 0x00 && tone <= 0x36) |
| 75 | { | 75 | { |
| 76 | - return Ifytek_1_Play(str, str_len, ReplyFlag); | 76 | + return Iflytek_1_Play(str, str_len, ReplyFlag); |
| 77 | } | 77 | } |
| 78 | else | 78 | else |
| 79 | { | 79 | { |
| @@ -84,7 +84,7 @@ T_JZsdkReturnCode Megaphone_Tts_Play(unsigned char *str, unsigned int str_len, i | @@ -84,7 +84,7 @@ T_JZsdkReturnCode Megaphone_Tts_Play(unsigned char *str, unsigned int str_len, i | ||
| 84 | 84 | ||
| 85 | #ifdef IFLAY_TTS_2_CONFIG_STATUS_ON | 85 | #ifdef IFLAY_TTS_2_CONFIG_STATUS_ON |
| 86 | 86 | ||
| 87 | - return Ifytek_2_Play(str, str_len, ReplyFlag); | 87 | + return Iflytek_2_Play(str, str_len, ReplyFlag); |
| 88 | 88 | ||
| 89 | #endif | 89 | #endif |
| 90 | 90 |
| @@ -98,7 +98,7 @@ static T_JZsdkReturnCode TTS_Synthesis(const char* src_text, const char* params) | @@ -98,7 +98,7 @@ static T_JZsdkReturnCode TTS_Synthesis(const char* src_text, const char* params) | ||
| 98 | 98 | ||
| 99 | //没将数据放入PCM通道 | 99 | //没将数据放入PCM通道 |
| 100 | //printf("产生了%d 的数据\n",audio_len); | 100 | //printf("产生了%d 的数据\n",audio_len); |
| 101 | - AudioDeal_PcmDataInput(16000, (unsigned char *)data, audio_len, 0); | 101 | + AudioDeal_PcmDataInput_TextSteam(16000, (unsigned char *)data, audio_len); |
| 102 | } | 102 | } |
| 103 | 103 | ||
| 104 | if (synth_status == MSP_TTS_FLAG_DATA_END) | 104 | if (synth_status == MSP_TTS_FLAG_DATA_END) |
| @@ -408,7 +408,7 @@ T_JZsdkReturnCode Iflytek_1_Init() | @@ -408,7 +408,7 @@ T_JZsdkReturnCode Iflytek_1_Init() | ||
| 408 | * 讯飞TTS_播放函数 | 408 | * 讯飞TTS_播放函数 |
| 409 | * | 409 | * |
| 410 | **********/ | 410 | **********/ |
| 411 | -T_JZsdkReturnCode Ifytek_1_Play(unsigned char *str, unsigned int str_len, int ReplyFlag) | 411 | +T_JZsdkReturnCode Iflytek_1_Play(unsigned char *str, unsigned int str_len, int ReplyFlag) |
| 412 | { | 412 | { |
| 413 | //1、制造一个数据产生函数 | 413 | //1、制造一个数据产生函数 |
| 414 | pthread_t TTS_flie_task; | 414 | pthread_t TTS_flie_task; |
| @@ -27,7 +27,7 @@ extern "C" { | @@ -27,7 +27,7 @@ extern "C" { | ||
| 27 | 27 | ||
| 28 | 28 | ||
| 29 | T_JZsdkReturnCode Iflytek_1_Init(); | 29 | T_JZsdkReturnCode Iflytek_1_Init(); |
| 30 | -T_JZsdkReturnCode Ifytek_1_Play(unsigned char *str, unsigned int str_len, int ReplyFlag); | 30 | +T_JZsdkReturnCode Iflytek_1_Play(unsigned char *str, unsigned int str_len, int ReplyFlag); |
| 31 | 31 | ||
| 32 | 32 | ||
| 33 | #ifdef __cplusplus | 33 | #ifdef __cplusplus |
Module/Megaphone/TTS/iflytek_2/iflybak
0 → 100644
| 1 | +#include <fstream> | ||
| 2 | +#include <assert.h> | ||
| 3 | +#include <cstring> | ||
| 4 | +#include <atomic> | ||
| 5 | +#include <unistd.h> | ||
| 6 | +#include <string> | ||
| 7 | + | ||
| 8 | +#include "JZsdkLib.h" | ||
| 9 | +#include "version_choose.h" | ||
| 10 | + | ||
| 11 | +#ifdef IFLAY_TTS_2_CONFIG_STATUS_ON | ||
| 12 | + | ||
| 13 | +#include "aikit_biz_api.h" | ||
| 14 | +#include "aikit_constant.h" | ||
| 15 | +#include "aikit_biz_config.h" | ||
| 16 | +#include "iflytek_tts.h" | ||
| 17 | +#include "AudioDeal/AudioDeal.h" | ||
| 18 | +#include "../../Megaphone.h" | ||
| 19 | +#include "iflytek_tts.h" | ||
| 20 | + | ||
| 21 | + | ||
| 22 | +using namespace std; | ||
| 23 | +using namespace AIKIT; | ||
| 24 | + | ||
| 25 | +static std::atomic_bool ttsFinished(false); | ||
| 26 | +static const char *ABILITY = "e2e44feff"; | ||
| 27 | +static AIKIT_HANDLE *g_AikitHandle = nullptr; //合成句柄 | ||
| 28 | + | ||
| 29 | +static int IflytekLib_2_StopTts(); | ||
| 30 | + | ||
| 31 | + | ||
| 32 | + | ||
| 33 | +void OnOutput(AIKIT_HANDLE* handle, const AIKIT_OutputData* output) | ||
| 34 | +{ | ||
| 35 | + //检测数据生成标志位是否有关闭,如果有关闭,则主动关闭合成,并退出该事件 | ||
| 36 | + if (Megaphone_MegDataGenFlag(JZ_FLAGCODE_GET, 0) == JZ_FLAGCODE_OFF) | ||
| 37 | + { | ||
| 38 | + IflytekLib_2_StopTts(); | ||
| 39 | + return; | ||
| 40 | + } | ||
| 41 | + | ||
| 42 | + //如果存在数据,则播放 | ||
| 43 | + if (output->node->value) | ||
| 44 | + { | ||
| 45 | + //生产的文本数据 output->node->value | ||
| 46 | + //生产的数据长度 output->node->len | ||
| 47 | + //char类型 | ||
| 48 | + | ||
| 49 | + //JZSDK_LOG_DEBUG("生产了数据%d", output->node->len); | ||
| 50 | + printf("生产了数据%d\n", output->node->len); | ||
| 51 | + | ||
| 52 | + //将该数据发送到alsa播放器 | ||
| 53 | + AudioDeal_PcmDataInput_TextSteam(16000, (unsigned char *)output->node->value, output->node->len); | ||
| 54 | + } | ||
| 55 | + | ||
| 56 | + | ||
| 57 | +} | ||
| 58 | + | ||
| 59 | +void OnEvent(AIKIT_HANDLE* handle, AIKIT_EVENT eventType, const AIKIT_OutputEvent* eventValue) { | ||
| 60 | + if (eventType == AIKIT_Event_End) { | ||
| 61 | + ttsFinished = true; | ||
| 62 | + | ||
| 63 | + JZSDK_LOG_INFO("合成完成"); | ||
| 64 | + } | ||
| 65 | +} | ||
| 66 | + | ||
| 67 | +void OnError(AIKIT_HANDLE* handle, int32_t err, const char* desc) { | ||
| 68 | + printf("OnError:%d\n", err); | ||
| 69 | + | ||
| 70 | + //报错 | ||
| 71 | +} | ||
| 72 | + | ||
| 73 | +int IflytekLib_2_TextToTts(int language, | ||
| 74 | + const char *TtsRole, | ||
| 75 | + const char *text, int speed, int volume) | ||
| 76 | +{ | ||
| 77 | + | ||
| 78 | + AIKIT_ParamBuilder* paramBuilder = nullptr; | ||
| 79 | + AIKIT_DataBuilder* dataBuilder = nullptr; | ||
| 80 | + AiText* aiText_raw = nullptr; | ||
| 81 | + | ||
| 82 | + | ||
| 83 | + // 重置完成标志 | ||
| 84 | + ttsFinished = false; | ||
| 85 | + | ||
| 86 | + paramBuilder = AIKIT_ParamBuilder::create(); | ||
| 87 | + paramBuilder->clear(); | ||
| 88 | + // 设置发音人 | ||
| 89 | + paramBuilder->param("vcn", TtsRole, strlen(TtsRole)); | ||
| 90 | + paramBuilder->param("vcnModel", TtsRole, strlen(TtsRole)); | ||
| 91 | + // 设置语种 | ||
| 92 | + paramBuilder->param("language", language); | ||
| 93 | + // 设置文本编码 | ||
| 94 | + paramBuilder->param("textEncoding", "UTF-8", strlen("UTF-8")); | ||
| 95 | + | ||
| 96 | + //语速 | ||
| 97 | + //paramBuilder->param("speed",speed); //可选参数,默认为0 | ||
| 98 | + | ||
| 99 | + //音调 | ||
| 100 | + //paramBuilder->param("pitch",100); //可选参数,默认为0 | ||
| 101 | + | ||
| 102 | + //声音 | ||
| 103 | + //paramBuilder->param("volume",100);//可选参数,默认为0 | ||
| 104 | + | ||
| 105 | + //JZSDK_LOG_DEBUG("TTS Role:%s Len:%d, Text:%s Len:%d, language:%d", TtsRole, strlen(TtsRole), text, strlen(text), language); | ||
| 106 | + | ||
| 107 | + int ret = AIKIT_Start(ABILITY, AIKIT_Builder::build(paramBuilder), nullptr, &g_AikitHandle); | ||
| 108 | + if(ret != 0) { | ||
| 109 | + printf("AIKIT_Start failed: %d\n", ret); | ||
| 110 | + goto exit; | ||
| 111 | + } | ||
| 112 | + | ||
| 113 | + dataBuilder = AIKIT_DataBuilder::create(); | ||
| 114 | + dataBuilder->clear(); | ||
| 115 | + //aiText_raw = AiText::get("text")->data(text.c_str(), text.length())->once()->valid(); | ||
| 116 | + aiText_raw = AiText::get("text")->data(text, strlen(text) )->once()->valid(); | ||
| 117 | + dataBuilder->payload(aiText_raw); | ||
| 118 | + | ||
| 119 | + ret = AIKIT_Write(g_AikitHandle, AIKIT_Builder::build(dataBuilder)); | ||
| 120 | + if(ret != 0) { | ||
| 121 | + printf("AIKIT_Write failed: %d\n", ret); | ||
| 122 | + goto exit; | ||
| 123 | + } | ||
| 124 | + | ||
| 125 | + // 等待合成完成 | ||
| 126 | + while(!ttsFinished) { | ||
| 127 | + usleep(1000); | ||
| 128 | + } | ||
| 129 | + | ||
| 130 | + //JZSDK_LOG_INFO("合成完成"); | ||
| 131 | + | ||
| 132 | + ret = AIKIT_End(g_AikitHandle); | ||
| 133 | + | ||
| 134 | +exit: | ||
| 135 | + if(paramBuilder != nullptr) { | ||
| 136 | + delete paramBuilder; | ||
| 137 | + } | ||
| 138 | + if(dataBuilder != nullptr) { | ||
| 139 | + delete dataBuilder; | ||
| 140 | + } | ||
| 141 | +} | ||
| 142 | + | ||
| 143 | + | ||
| 144 | + | ||
| 145 | + | ||
| 146 | + | ||
| 147 | + | ||
| 148 | + | ||
| 149 | + | ||
| 150 | + | ||
| 151 | + | ||
| 152 | + | ||
| 153 | +int IflytekLib_2_Init() | ||
| 154 | +{ | ||
| 155 | + AIKIT_Configurator::builder() | ||
| 156 | + .app() | ||
| 157 | + .appID("03857dfd") | ||
| 158 | + .apiSecret("OTA2OTEzMTVlOGYwMjllMmJkYzEwZGY5") | ||
| 159 | + .apiKey("2b2c60f8a80b8cdfe45ae1058a25149a") | ||
| 160 | + .workDir("/root/Iflytek_2") | ||
| 161 | + .auth() | ||
| 162 | + .authType(0) | ||
| 163 | + .log() | ||
| 164 | + .logLevel(LOG_LVL_OFF) //关闭日志打印 | ||
| 165 | + .logMode(LOG_STDOUT); //日志输出为控制台 | ||
| 166 | + | ||
| 167 | + int ret = AIKIT_Init(); | ||
| 168 | + if(ret != 0) { | ||
| 169 | + printf("AIKIT_Init failed: %d\n", ret); | ||
| 170 | + return -1; | ||
| 171 | + } | ||
| 172 | + | ||
| 173 | + AIKIT_Callbacks cbs = {OnOutput, OnEvent, OnError}; | ||
| 174 | + AIKIT_RegisterAbilityCallback(ABILITY, cbs); | ||
| 175 | + | ||
| 176 | + return 0; | ||
| 177 | +} | ||
| 178 | + | ||
| 179 | +int IflytekLib_2_UnInit() | ||
| 180 | +{ | ||
| 181 | + AIKIT_UnInit(); | ||
| 182 | + return 0; | ||
| 183 | +} | ||
| 184 | + | ||
| 185 | +static int IflytekLib_2_StopTts() | ||
| 186 | +{ | ||
| 187 | + AIKIT_OutputEvent eventData = {}; | ||
| 188 | + if (g_AikitHandle != nullptr) | ||
| 189 | + { | ||
| 190 | + OnEvent(g_AikitHandle,AIKIT_Event_End,&eventData); | ||
| 191 | + } | ||
| 192 | + | ||
| 193 | + return 0; | ||
| 194 | +} | ||
| 195 | + | ||
| 196 | +#endif |
Module/Megaphone/TTS/iflytek_2/iflybak2
0 → 100644
| 1 | +#include <fstream> | ||
| 2 | +#include <assert.h> | ||
| 3 | +#include <cstring> | ||
| 4 | +#include <atomic> | ||
| 5 | +#include <unistd.h> | ||
| 6 | +#include <string> | ||
| 7 | + | ||
| 8 | +#include "JZsdkLib.h" | ||
| 9 | +#include "version_choose.h" | ||
| 10 | + | ||
| 11 | +#ifdef IFLAY_TTS_2_CONFIG_STATUS_ON | ||
| 12 | + | ||
| 13 | +#include "aikit_biz_api.h" | ||
| 14 | +#include "aikit_constant.h" | ||
| 15 | +#include "aikit_biz_config.h" | ||
| 16 | +#include "iflytek_tts.h" | ||
| 17 | +#include "AudioDeal/AudioDeal.h" | ||
| 18 | +#include "../../Megaphone.h" | ||
| 19 | +#include "iflytek_tts.h" | ||
| 20 | + | ||
| 21 | + | ||
| 22 | +using namespace std; | ||
| 23 | +using namespace AIKIT; | ||
| 24 | + | ||
| 25 | +static std::atomic_bool ttsFinished(false); | ||
| 26 | +static const char *ABILITY = "e2e44feff"; | ||
| 27 | +static AIKIT_HANDLE *g_AikitHandle = nullptr; //合成句柄 | ||
| 28 | + | ||
| 29 | +static int IflytekLib_2_StopTts(); | ||
| 30 | + | ||
| 31 | +static FILE *iflytts_fp = NULL; | ||
| 32 | +#define IFLYTTS_FP_NAME "/root/tmp_tts_file.pcm" | ||
| 33 | + | ||
| 34 | + | ||
| 35 | +void OnOutput(AIKIT_HANDLE* handle, const AIKIT_OutputData* output) | ||
| 36 | +{ | ||
| 37 | + //检测数据生成标志位是否有关闭,如果有关闭,则主动关闭合成,并退出该事件 | ||
| 38 | + if (Megaphone_MegDataGenFlag(JZ_FLAGCODE_GET, 0) == JZ_FLAGCODE_OFF) | ||
| 39 | + { | ||
| 40 | + IflytekLib_2_StopTts(); | ||
| 41 | + return; | ||
| 42 | + } | ||
| 43 | + | ||
| 44 | + //如果存在数据,则播放 | ||
| 45 | + if (output->node->value) | ||
| 46 | + { | ||
| 47 | + //生产的文本数据 output->node->value | ||
| 48 | + //生产的数据长度 output->node->len | ||
| 49 | + //char类型 | ||
| 50 | + | ||
| 51 | + //JZSDK_LOG_DEBUG("生产了数据%d", output->node->len); | ||
| 52 | + printf("生产了数据%d\n", output->node->len); | ||
| 53 | + | ||
| 54 | + //将该数据发送到alsa播放器 | ||
| 55 | + //AudioDeal_PcmDataInput_TextSteam(16000, (unsigned char *)output->node->value, output->node->len); | ||
| 56 | + | ||
| 57 | + if (iflytts_fp != NULL) | ||
| 58 | + { | ||
| 59 | + fwrite(output->node->value, sizeof(char), output->node->len, iflytts_fp); | ||
| 60 | + fflush(iflytts_fp); | ||
| 61 | + } | ||
| 62 | + | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + | ||
| 66 | +} | ||
| 67 | + | ||
| 68 | +void OnEvent(AIKIT_HANDLE* handle, AIKIT_EVENT eventType, const AIKIT_OutputEvent* eventValue) { | ||
| 69 | + if (eventType == AIKIT_Event_End) { | ||
| 70 | + ttsFinished = true; | ||
| 71 | + | ||
| 72 | + JZSDK_LOG_INFO("合成完成"); | ||
| 73 | + } | ||
| 74 | +} | ||
| 75 | + | ||
| 76 | +void OnError(AIKIT_HANDLE* handle, int32_t err, const char* desc) { | ||
| 77 | + printf("OnError:%d\n", err); | ||
| 78 | + | ||
| 79 | + //报错 | ||
| 80 | +} | ||
| 81 | + | ||
| 82 | +int IflytekLib_2_TextToTts(int language, | ||
| 83 | + const char *TtsRole, | ||
| 84 | + const char *text, int speed, int volume) | ||
| 85 | +{ | ||
| 86 | + | ||
| 87 | + if (iflytts_fp != NULL) | ||
| 88 | + { | ||
| 89 | + JZSDK_LOG_ERROR("file %s is not closed\n", IFLYTTS_FP_NAME); | ||
| 90 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
| 91 | + } | ||
| 92 | + | ||
| 93 | + | ||
| 94 | + AIKIT_ParamBuilder* paramBuilder = nullptr; | ||
| 95 | + AIKIT_DataBuilder* dataBuilder = nullptr; | ||
| 96 | + AiText* aiText_raw = nullptr; | ||
| 97 | + | ||
| 98 | + | ||
| 99 | + // 重置完成标志 | ||
| 100 | + ttsFinished = false; | ||
| 101 | + | ||
| 102 | + paramBuilder = AIKIT_ParamBuilder::create(); | ||
| 103 | + paramBuilder->clear(); | ||
| 104 | + // 设置发音人 | ||
| 105 | + paramBuilder->param("vcn", TtsRole, strlen(TtsRole)); | ||
| 106 | + paramBuilder->param("vcnModel", TtsRole, strlen(TtsRole)); | ||
| 107 | + // 设置语种 | ||
| 108 | + paramBuilder->param("language", language); | ||
| 109 | + // 设置文本编码 | ||
| 110 | + paramBuilder->param("textEncoding", "UTF-8", strlen("UTF-8")); | ||
| 111 | + | ||
| 112 | + //语速 | ||
| 113 | + //paramBuilder->param("speed",speed); //可选参数,默认为0 | ||
| 114 | + | ||
| 115 | + //音调 | ||
| 116 | + //paramBuilder->param("pitch",100); //可选参数,默认为0 | ||
| 117 | + | ||
| 118 | + //声音 | ||
| 119 | + //paramBuilder->param("volume",100);//可选参数,默认为0 | ||
| 120 | + | ||
| 121 | + //打开临存文件 | ||
| 122 | + iflytts_fp = fopen(IFLYTTS_FP_NAME, "w+b"); | ||
| 123 | + if (iflytts_fp == NULL) | ||
| 124 | + { | ||
| 125 | + JZSDK_LOG_ERROR("open file %s failed\n", IFLYTTS_FP_NAME); | ||
| 126 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
| 127 | + } | ||
| 128 | + | ||
| 129 | + //JZSDK_LOG_DEBUG("TTS Role:%s Len:%d, Text:%s Len:%d, language:%d", TtsRole, strlen(TtsRole), text, strlen(text), language); | ||
| 130 | + | ||
| 131 | + int ret = AIKIT_Start(ABILITY, AIKIT_Builder::build(paramBuilder), nullptr, &g_AikitHandle); | ||
| 132 | + if(ret != 0) { | ||
| 133 | + printf("AIKIT_Start failed: %d\n", ret); | ||
| 134 | + goto exit; | ||
| 135 | + } | ||
| 136 | + | ||
| 137 | + dataBuilder = AIKIT_DataBuilder::create(); | ||
| 138 | + dataBuilder->clear(); | ||
| 139 | + //aiText_raw = AiText::get("text")->data(text.c_str(), text.length())->once()->valid(); | ||
| 140 | + aiText_raw = AiText::get("text")->data(text, strlen(text) )->once()->valid(); | ||
| 141 | + dataBuilder->payload(aiText_raw); | ||
| 142 | + | ||
| 143 | + ret = AIKIT_Write(g_AikitHandle, AIKIT_Builder::build(dataBuilder)); | ||
| 144 | + if(ret != 0) { | ||
| 145 | + printf("AIKIT_Write failed: %d\n", ret); | ||
| 146 | + goto exit; | ||
| 147 | + } | ||
| 148 | + | ||
| 149 | + // 等待合成完成 | ||
| 150 | + while(!ttsFinished) { | ||
| 151 | + usleep(1000); | ||
| 152 | + } | ||
| 153 | + | ||
| 154 | + JZSDK_LOG_DEBUG("合成完成,开始播放"); | ||
| 155 | + | ||
| 156 | + //将fp指针移到文件开头 | ||
| 157 | + fseek(iflytts_fp, 0, SEEK_SET); | ||
| 158 | + | ||
| 159 | + //将数据导入播放器 | ||
| 160 | + unsigned char buffer[1024]; | ||
| 161 | + int len; | ||
| 162 | + while (Megaphone_MegDataGenFlag(JZ_FLAGCODE_GET, 0) != JZ_FLAGCODE_OFF) | ||
| 163 | + { | ||
| 164 | + len = fread(buffer, sizeof(char), 1024, iflytts_fp); | ||
| 165 | + if (len <= 0) | ||
| 166 | + { | ||
| 167 | + JZSDK_LOG_DEBUG("已读取完毕\n"); | ||
| 168 | + break; | ||
| 169 | + } | ||
| 170 | + | ||
| 171 | + AudioDeal_PcmDataInput_TextSteam(16000, buffer, len); | ||
| 172 | + } | ||
| 173 | + | ||
| 174 | + JZSDK_LOG_INFO("播放完成"); | ||
| 175 | + | ||
| 176 | + ret = AIKIT_End(g_AikitHandle); | ||
| 177 | + | ||
| 178 | +exit: | ||
| 179 | + if(paramBuilder != nullptr) { | ||
| 180 | + delete paramBuilder; | ||
| 181 | + } | ||
| 182 | + if(dataBuilder != nullptr) { | ||
| 183 | + delete dataBuilder; | ||
| 184 | + } | ||
| 185 | + | ||
| 186 | + if (iflytts_fp != NULL) | ||
| 187 | + { | ||
| 188 | + fclose(iflytts_fp); | ||
| 189 | + iflytts_fp = NULL; | ||
| 190 | + } | ||
| 191 | + | ||
| 192 | + return 0; | ||
| 193 | +} | ||
| 194 | + | ||
| 195 | + | ||
| 196 | + | ||
| 197 | + | ||
| 198 | + | ||
| 199 | + | ||
| 200 | + | ||
| 201 | + | ||
| 202 | + | ||
| 203 | + | ||
| 204 | + | ||
| 205 | +int IflytekLib_2_Init() | ||
| 206 | +{ | ||
| 207 | + AIKIT_Configurator::builder() | ||
| 208 | + .app() | ||
| 209 | + .appID("03857dfd") | ||
| 210 | + .apiSecret("OTA2OTEzMTVlOGYwMjllMmJkYzEwZGY5") | ||
| 211 | + .apiKey("2b2c60f8a80b8cdfe45ae1058a25149a") | ||
| 212 | + .workDir("/root/Iflytek_2") | ||
| 213 | + .auth() | ||
| 214 | + .authType(0) | ||
| 215 | + .log() | ||
| 216 | + .logLevel(LOG_LVL_OFF) //关闭日志打印 | ||
| 217 | + .logMode(LOG_STDOUT); //日志输出为控制台 | ||
| 218 | + | ||
| 219 | + int ret = AIKIT_Init(); | ||
| 220 | + if(ret != 0) { | ||
| 221 | + printf("AIKIT_Init failed: %d\n", ret); | ||
| 222 | + return -1; | ||
| 223 | + } | ||
| 224 | + | ||
| 225 | + AIKIT_Callbacks cbs = {OnOutput, OnEvent, OnError}; | ||
| 226 | + AIKIT_RegisterAbilityCallback(ABILITY, cbs); | ||
| 227 | + | ||
| 228 | + return 0; | ||
| 229 | +} | ||
| 230 | + | ||
| 231 | +int IflytekLib_2_UnInit() | ||
| 232 | +{ | ||
| 233 | + AIKIT_UnInit(); | ||
| 234 | + return 0; | ||
| 235 | +} | ||
| 236 | + | ||
| 237 | +static int IflytekLib_2_StopTts() | ||
| 238 | +{ | ||
| 239 | + AIKIT_OutputEvent eventData = {}; | ||
| 240 | + if (g_AikitHandle != nullptr) | ||
| 241 | + { | ||
| 242 | + OnEvent(g_AikitHandle,AIKIT_Event_End,&eventData); | ||
| 243 | + } | ||
| 244 | + | ||
| 245 | + return 0; | ||
| 246 | +} | ||
| 247 | + | ||
| 248 | +#endif |
| @@ -22,47 +22,47 @@ static T_JZsdkReturnCode IflyTek_2_Tts_Input(int language, char *Text, int speed | @@ -22,47 +22,47 @@ static T_JZsdkReturnCode IflyTek_2_Tts_Input(int language, char *Text, int speed | ||
| 22 | { | 22 | { |
| 23 | //1、将JZSDK的Language索引值转换为 IFLTEK2的语言索引值 | 23 | //1、将JZSDK的Language索引值转换为 IFLTEK2的语言索引值 |
| 24 | //2、将language转换为音色文件 | 24 | //2、将language转换为音色文件 |
| 25 | - int IfyTek_language = 0; | 25 | + int IflyTek_language = 0; |
| 26 | char role[20] = {0}; | 26 | char role[20] = {0}; |
| 27 | 27 | ||
| 28 | switch (language) | 28 | switch (language) |
| 29 | { | 29 | { |
| 30 | case 0x01: // 中文女生 | 30 | case 0x01: // 中文女生 |
| 31 | - IfyTek_language = 1; | 31 | + IflyTek_language = 1; |
| 32 | strcpy(role, "xiaoyan"); | 32 | strcpy(role, "xiaoyan"); |
| 33 | break; | 33 | break; |
| 34 | 34 | ||
| 35 | case 0x02: // 中文男生 | 35 | case 0x02: // 中文男生 |
| 36 | - IfyTek_language = 1; | 36 | + IflyTek_language = 1; |
| 37 | strcpy(role, "xiaofeng"); | 37 | strcpy(role, "xiaofeng"); |
| 38 | break; | 38 | break; |
| 39 | 39 | ||
| 40 | case 0x11: // 英文女生 | 40 | case 0x11: // 英文女生 |
| 41 | - IfyTek_language = 2; | 41 | + IflyTek_language = 2; |
| 42 | strcpy(role, "catherine"); | 42 | strcpy(role, "catherine"); |
| 43 | break; | 43 | break; |
| 44 | 44 | ||
| 45 | case 0x12: // 英文男生 | 45 | case 0x12: // 英文男生 |
| 46 | - IfyTek_language = 2; | 46 | + IflyTek_language = 2; |
| 47 | strcpy(role, "john"); | 47 | strcpy(role, "john"); |
| 48 | break; | 48 | break; |
| 49 | 49 | ||
| 50 | case 0x31: // 东北 | 50 | case 0x31: // 东北 |
| 51 | - IfyTek_language = 1; | 51 | + IflyTek_language = 1; |
| 52 | strcpy(role, "xiaoqian"); | 52 | strcpy(role, "xiaoqian"); |
| 53 | break; | 53 | break; |
| 54 | 54 | ||
| 55 | case 0x32: // 四川 | 55 | case 0x32: // 四川 |
| 56 | - IfyTek_language = 1; | 56 | + IflyTek_language = 1; |
| 57 | strcpy(role, "yezi"); | 57 | strcpy(role, "yezi"); |
| 58 | break; | 58 | break; |
| 59 | 59 | ||
| 60 | case 0x33: // 河南 | 60 | case 0x33: // 河南 |
| 61 | - IfyTek_language = 1; | 61 | + IflyTek_language = 1; |
| 62 | strcpy(role, "xiaokun"); | 62 | strcpy(role, "xiaokun"); |
| 63 | break; | 63 | break; |
| 64 | case 0x34: // 湖南 | 64 | case 0x34: // 湖南 |
| 65 | - IfyTek_language = 1; | 65 | + IflyTek_language = 1; |
| 66 | strcpy(role, "xiaoqiang"); | 66 | strcpy(role, "xiaoqiang"); |
| 67 | break; | 67 | break; |
| 68 | 68 | ||
| @@ -72,12 +72,12 @@ static T_JZsdkReturnCode IflyTek_2_Tts_Input(int language, char *Text, int speed | @@ -72,12 +72,12 @@ static T_JZsdkReturnCode IflyTek_2_Tts_Input(int language, char *Text, int speed | ||
| 72 | */ | 72 | */ |
| 73 | 73 | ||
| 74 | case 0x36: // 广东 | 74 | case 0x36: // 广东 |
| 75 | - IfyTek_language = 12; // 粤语 | 75 | + IflyTek_language = 12; // 粤语 |
| 76 | strcpy(role, "xiaomei"); | 76 | strcpy(role, "xiaomei"); |
| 77 | break; | 77 | break; |
| 78 | 78 | ||
| 79 | case 0x37: // 湖北 | 79 | case 0x37: // 湖北 |
| 80 | - IfyTek_language = 1; | 80 | + IflyTek_language = 1; |
| 81 | strcpy(role, "xiaowang"); | 81 | strcpy(role, "xiaowang"); |
| 82 | break; | 82 | break; |
| 83 | 83 | ||
| @@ -87,12 +87,12 @@ static T_JZsdkReturnCode IflyTek_2_Tts_Input(int language, char *Text, int speed | @@ -87,12 +87,12 @@ static T_JZsdkReturnCode IflyTek_2_Tts_Input(int language, char *Text, int speed | ||
| 87 | */ | 87 | */ |
| 88 | 88 | ||
| 89 | default: // 默认中文女生 | 89 | default: // 默认中文女生 |
| 90 | - IfyTek_language = 1; | 90 | + IflyTek_language = 1; |
| 91 | strcpy(role, "xiaoyan"); | 91 | strcpy(role, "xiaoyan"); |
| 92 | break; | 92 | break; |
| 93 | } | 93 | } |
| 94 | 94 | ||
| 95 | - IflytekLib_2_TextToTts(IfyTek_language, role, Text, speed, volume); | 95 | + IflytekLib_2_TextToTts(IflyTek_language, role, Text, speed, volume); |
| 96 | 96 | ||
| 97 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 97 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
| 98 | } | 98 | } |
| @@ -187,7 +187,7 @@ static void *Play_cntts_pthread(void *arg) | @@ -187,7 +187,7 @@ static void *Play_cntts_pthread(void *arg) | ||
| 187 | * 讯飞TTS_播放函数 | 187 | * 讯飞TTS_播放函数 |
| 188 | * | 188 | * |
| 189 | **********/ | 189 | **********/ |
| 190 | -T_JZsdkReturnCode Ifytek_2_Play(unsigned char *str, unsigned int str_len, int ReplyFlag) | 190 | +T_JZsdkReturnCode Iflytek_2_Play(unsigned char *str, unsigned int str_len, int ReplyFlag) |
| 191 | { | 191 | { |
| 192 | //1、制造一个数据产生函数 | 192 | //1、制造一个数据产生函数 |
| 193 | pthread_t TTS_flie_task; | 193 | pthread_t TTS_flie_task; |
| @@ -26,9 +26,9 @@ extern "C" { | @@ -26,9 +26,9 @@ extern "C" { | ||
| 26 | 26 | ||
| 27 | 27 | ||
| 28 | 28 | ||
| 29 | -T_JZsdkReturnCode Ifytek_2_Init(); | 29 | +T_JZsdkReturnCode Iflytek_2_Init(); |
| 30 | T_JZsdkReturnCode Iflytek_2_DeInit(); | 30 | T_JZsdkReturnCode Iflytek_2_DeInit(); |
| 31 | -T_JZsdkReturnCode Ifytek_2_Play(unsigned char *str, unsigned int str_len, int ReplyFlag); | 31 | +T_JZsdkReturnCode Iflytek_2_Play(unsigned char *str, unsigned int str_len, int ReplyFlag); |
| 32 | 32 | ||
| 33 | 33 | ||
| 34 | 34 |
| @@ -28,6 +28,8 @@ static AIKIT_HANDLE *g_AikitHandle = nullptr; //合成句柄 | @@ -28,6 +28,8 @@ static AIKIT_HANDLE *g_AikitHandle = nullptr; //合成句柄 | ||
| 28 | 28 | ||
| 29 | static int IflytekLib_2_StopTts(); | 29 | static int IflytekLib_2_StopTts(); |
| 30 | 30 | ||
| 31 | +static FILE *iflytts_fp = NULL; | ||
| 32 | +#define IFLYTTS_FP_NAME "/root/tmp_tts_file.pcm" | ||
| 31 | 33 | ||
| 32 | 34 | ||
| 33 | void OnOutput(AIKIT_HANDLE* handle, const AIKIT_OutputData* output) | 35 | void OnOutput(AIKIT_HANDLE* handle, const AIKIT_OutputData* output) |
| @@ -46,10 +48,18 @@ void OnOutput(AIKIT_HANDLE* handle, const AIKIT_OutputData* output) | @@ -46,10 +48,18 @@ void OnOutput(AIKIT_HANDLE* handle, const AIKIT_OutputData* output) | ||
| 46 | //生产的数据长度 output->node->len | 48 | //生产的数据长度 output->node->len |
| 47 | //char类型 | 49 | //char类型 |
| 48 | 50 | ||
| 49 | - JZSDK_LOG_DEBUG("生产了数据%d", output->node->len); | 51 | + //JZSDK_LOG_DEBUG("生产了数据%d", output->node->len); |
| 52 | + printf("生产了数据%d\n", output->node->len); | ||
| 50 | 53 | ||
| 51 | //将该数据发送到alsa播放器 | 54 | //将该数据发送到alsa播放器 |
| 52 | - AudioDeal_PcmDataInput(16000, (unsigned char *)output->node->value, output->node->len, 0); | 55 | + //AudioDeal_PcmDataInput_TextSteam(16000, (unsigned char *)output->node->value, output->node->len); |
| 56 | + | ||
| 57 | + if (iflytts_fp != NULL) | ||
| 58 | + { | ||
| 59 | + fwrite(output->node->value, sizeof(char), output->node->len, iflytts_fp); | ||
| 60 | + fflush(iflytts_fp); | ||
| 61 | + } | ||
| 62 | + | ||
| 53 | } | 63 | } |
| 54 | 64 | ||
| 55 | 65 | ||
| @@ -74,6 +84,13 @@ int IflytekLib_2_TextToTts(int language, | @@ -74,6 +84,13 @@ int IflytekLib_2_TextToTts(int language, | ||
| 74 | const char *text, int speed, int volume) | 84 | const char *text, int speed, int volume) |
| 75 | { | 85 | { |
| 76 | 86 | ||
| 87 | + if (iflytts_fp != NULL) | ||
| 88 | + { | ||
| 89 | + JZSDK_LOG_ERROR("file %s is not closed\n", IFLYTTS_FP_NAME); | ||
| 90 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
| 91 | + } | ||
| 92 | + | ||
| 93 | + | ||
| 77 | AIKIT_ParamBuilder* paramBuilder = nullptr; | 94 | AIKIT_ParamBuilder* paramBuilder = nullptr; |
| 78 | AIKIT_DataBuilder* dataBuilder = nullptr; | 95 | AIKIT_DataBuilder* dataBuilder = nullptr; |
| 79 | AiText* aiText_raw = nullptr; | 96 | AiText* aiText_raw = nullptr; |
| @@ -101,6 +118,14 @@ int IflytekLib_2_TextToTts(int language, | @@ -101,6 +118,14 @@ int IflytekLib_2_TextToTts(int language, | ||
| 101 | //声音 | 118 | //声音 |
| 102 | //paramBuilder->param("volume",100);//可选参数,默认为0 | 119 | //paramBuilder->param("volume",100);//可选参数,默认为0 |
| 103 | 120 | ||
| 121 | + //打开临存文件 | ||
| 122 | + iflytts_fp = fopen(IFLYTTS_FP_NAME, "w+b"); | ||
| 123 | + if (iflytts_fp == NULL) | ||
| 124 | + { | ||
| 125 | + JZSDK_LOG_ERROR("open file %s failed\n", IFLYTTS_FP_NAME); | ||
| 126 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
| 127 | + } | ||
| 128 | + | ||
| 104 | //JZSDK_LOG_DEBUG("TTS Role:%s Len:%d, Text:%s Len:%d, language:%d", TtsRole, strlen(TtsRole), text, strlen(text), language); | 129 | //JZSDK_LOG_DEBUG("TTS Role:%s Len:%d, Text:%s Len:%d, language:%d", TtsRole, strlen(TtsRole), text, strlen(text), language); |
| 105 | 130 | ||
| 106 | int ret = AIKIT_Start(ABILITY, AIKIT_Builder::build(paramBuilder), nullptr, &g_AikitHandle); | 131 | int ret = AIKIT_Start(ABILITY, AIKIT_Builder::build(paramBuilder), nullptr, &g_AikitHandle); |
| @@ -126,7 +151,27 @@ int IflytekLib_2_TextToTts(int language, | @@ -126,7 +151,27 @@ int IflytekLib_2_TextToTts(int language, | ||
| 126 | usleep(1000); | 151 | usleep(1000); |
| 127 | } | 152 | } |
| 128 | 153 | ||
| 129 | - //JZSDK_LOG_INFO("合成完成"); | 154 | + JZSDK_LOG_DEBUG("合成完成,开始播放"); |
| 155 | + | ||
| 156 | + //将fp指针移到文件开头 | ||
| 157 | + fseek(iflytts_fp, 0, SEEK_SET); | ||
| 158 | + | ||
| 159 | + //将数据导入播放器 | ||
| 160 | + unsigned char buffer[1024]; | ||
| 161 | + int len; | ||
| 162 | + while (Megaphone_MegDataGenFlag(JZ_FLAGCODE_GET, 0) != JZ_FLAGCODE_OFF) | ||
| 163 | + { | ||
| 164 | + len = fread(buffer, sizeof(char), 1024, iflytts_fp); | ||
| 165 | + if (len <= 0) | ||
| 166 | + { | ||
| 167 | + JZSDK_LOG_DEBUG("已读取完毕\n"); | ||
| 168 | + break; | ||
| 169 | + } | ||
| 170 | + | ||
| 171 | + AudioDeal_PcmDataInput_TextSteam(16000, buffer, len); | ||
| 172 | + } | ||
| 173 | + | ||
| 174 | + JZSDK_LOG_INFO("播放完成"); | ||
| 130 | 175 | ||
| 131 | ret = AIKIT_End(g_AikitHandle); | 176 | ret = AIKIT_End(g_AikitHandle); |
| 132 | 177 | ||
| @@ -137,6 +182,14 @@ exit: | @@ -137,6 +182,14 @@ exit: | ||
| 137 | if(dataBuilder != nullptr) { | 182 | if(dataBuilder != nullptr) { |
| 138 | delete dataBuilder; | 183 | delete dataBuilder; |
| 139 | } | 184 | } |
| 185 | + | ||
| 186 | + if (iflytts_fp != NULL) | ||
| 187 | + { | ||
| 188 | + fclose(iflytts_fp); | ||
| 189 | + iflytts_fp = NULL; | ||
| 190 | + } | ||
| 191 | + | ||
| 192 | + return 0; | ||
| 140 | } | 193 | } |
| 141 | 194 | ||
| 142 | 195 |
Module/Megaphone/TTS/iflytek_2/ifybak3
0 → 100644
| 1 | +#include <fstream> | ||
| 2 | +#include <assert.h> | ||
| 3 | +#include <cstring> | ||
| 4 | +#include <atomic> | ||
| 5 | +#include <unistd.h> | ||
| 6 | +#include <string> | ||
| 7 | + | ||
| 8 | +#include "JZsdkLib.h" | ||
| 9 | +#include "version_choose.h" | ||
| 10 | +#include "JZsdk_base/JZring/JZring.h" | ||
| 11 | + | ||
| 12 | +#ifdef IFLAY_TTS_2_CONFIG_STATUS_ON | ||
| 13 | + | ||
| 14 | +#include "aikit_biz_api.h" | ||
| 15 | +#include "aikit_constant.h" | ||
| 16 | +#include "aikit_biz_config.h" | ||
| 17 | +#include "iflytek_tts.h" | ||
| 18 | +#include "AudioDeal/AudioDeal.h" | ||
| 19 | +#include "../../Megaphone.h" | ||
| 20 | +#include "iflytek_tts.h" | ||
| 21 | + | ||
| 22 | + | ||
| 23 | +using namespace std; | ||
| 24 | +using namespace AIKIT; | ||
| 25 | + | ||
| 26 | +static std::atomic_bool ttsFinished(false); | ||
| 27 | +static const char *ABILITY = "e2e44feff"; | ||
| 28 | +static AIKIT_HANDLE *g_AikitHandle = nullptr; //合成句柄 | ||
| 29 | + | ||
| 30 | +static int IflytekLib_2_StopTts(); | ||
| 31 | + | ||
| 32 | +#define IFLYTEK_RING_BUF_SIZE 1024*100 | ||
| 33 | +static T_JZringHandle g_ringHandle; | ||
| 34 | +static char *g_ringBuf = NULL; | ||
| 35 | + | ||
| 36 | +void OnOutput(AIKIT_HANDLE* handle, const AIKIT_OutputData* output) | ||
| 37 | +{ | ||
| 38 | + T_JZsdkReturnCode ret; | ||
| 39 | + | ||
| 40 | + //检测数据生成标志位是否有关闭,如果有关闭,则主动关闭合成,并退出该事件 | ||
| 41 | + if (Megaphone_MegDataGenFlag(JZ_FLAGCODE_GET, 0) == JZ_FLAGCODE_OFF) | ||
| 42 | + { | ||
| 43 | + IflytekLib_2_StopTts(); | ||
| 44 | + return; | ||
| 45 | + } | ||
| 46 | + | ||
| 47 | + //如果存在数据,则播放 | ||
| 48 | + if (output->node->value) | ||
| 49 | + { | ||
| 50 | + //生产的文本数据 output->node->value | ||
| 51 | + //生产的数据长度 output->node->len | ||
| 52 | + //char类型 | ||
| 53 | + | ||
| 54 | + //JZSDK_LOG_DEBUG("生产了数据%d", output->node->len); | ||
| 55 | + printf("生产了数据%d\n", output->node->len); | ||
| 56 | + | ||
| 57 | + //将该数据发送到alsa播放器 | ||
| 58 | + //AudioDeal_PcmDataInput_TextSteam(16000, (unsigned char *)output->node->value, output->node->len); | ||
| 59 | + | ||
| 60 | + | ||
| 61 | + while (1) | ||
| 62 | + { | ||
| 63 | + ret = JZring_Write(g_ringHandle, (U8_t *)output->node->value, (U32_t)output->node->len); | ||
| 64 | + if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
| 65 | + { | ||
| 66 | + break; | ||
| 67 | + } | ||
| 68 | + } | ||
| 69 | + } | ||
| 70 | + | ||
| 71 | +} | ||
| 72 | + | ||
| 73 | +void OnEvent(AIKIT_HANDLE* handle, AIKIT_EVENT eventType, const AIKIT_OutputEvent* eventValue) { | ||
| 74 | + if (eventType == AIKIT_Event_End) { | ||
| 75 | + ttsFinished = true; | ||
| 76 | + | ||
| 77 | + JZSDK_LOG_INFO("合成完成"); | ||
| 78 | + } | ||
| 79 | +} | ||
| 80 | + | ||
| 81 | +void OnError(AIKIT_HANDLE* handle, int32_t err, const char* desc) { | ||
| 82 | + printf("OnError:%d\n", err); | ||
| 83 | + | ||
| 84 | + //报错 | ||
| 85 | +} | ||
| 86 | + | ||
| 87 | +int IflytekLib_2_TextToTts(int language, | ||
| 88 | + const char *TtsRole, | ||
| 89 | + const char *text, int speed, int volume) | ||
| 90 | +{ | ||
| 91 | + | ||
| 92 | + AIKIT_ParamBuilder* paramBuilder = nullptr; | ||
| 93 | + AIKIT_DataBuilder* dataBuilder = nullptr; | ||
| 94 | + AiText* aiText_raw = nullptr; | ||
| 95 | + | ||
| 96 | + | ||
| 97 | + // 重置完成标志 | ||
| 98 | + ttsFinished = false; | ||
| 99 | + | ||
| 100 | + paramBuilder = AIKIT_ParamBuilder::create(); | ||
| 101 | + paramBuilder->clear(); | ||
| 102 | + // 设置发音人 | ||
| 103 | + paramBuilder->param("vcn", TtsRole, strlen(TtsRole)); | ||
| 104 | + paramBuilder->param("vcnModel", TtsRole, strlen(TtsRole)); | ||
| 105 | + // 设置语种 | ||
| 106 | + paramBuilder->param("language", language); | ||
| 107 | + // 设置文本编码 | ||
| 108 | + paramBuilder->param("textEncoding", "UTF-8", strlen("UTF-8")); | ||
| 109 | + | ||
| 110 | + //语速 | ||
| 111 | + //paramBuilder->param("speed",speed); //可选参数,默认为0 | ||
| 112 | + | ||
| 113 | + //音调 | ||
| 114 | + //paramBuilder->param("pitch",100); //可选参数,默认为0 | ||
| 115 | + | ||
| 116 | + //声音 | ||
| 117 | + //paramBuilder->param("volume",100);//可选参数,默认为0 | ||
| 118 | + | ||
| 119 | + //JZSDK_LOG_DEBUG("TTS Role:%s Len:%d, Text:%s Len:%d, language:%d", TtsRole, strlen(TtsRole), text, strlen(text), language); | ||
| 120 | + | ||
| 121 | + int ret = AIKIT_Start(ABILITY, AIKIT_Builder::build(paramBuilder), nullptr, &g_AikitHandle); | ||
| 122 | + if(ret != 0) { | ||
| 123 | + printf("AIKIT_Start failed: %d\n", ret); | ||
| 124 | + goto exit; | ||
| 125 | + } | ||
| 126 | + | ||
| 127 | + dataBuilder = AIKIT_DataBuilder::create(); | ||
| 128 | + dataBuilder->clear(); | ||
| 129 | + //aiText_raw = AiText::get("text")->data(text.c_str(), text.length())->once()->valid(); | ||
| 130 | + aiText_raw = AiText::get("text")->data(text, strlen(text) )->once()->valid(); | ||
| 131 | + dataBuilder->payload(aiText_raw); | ||
| 132 | + | ||
| 133 | + ret = AIKIT_Write(g_AikitHandle, AIKIT_Builder::build(dataBuilder)); | ||
| 134 | + if(ret != 0) { | ||
| 135 | + printf("AIKIT_Write failed: %d\n", ret); | ||
| 136 | + goto exit; | ||
| 137 | + } | ||
| 138 | + | ||
| 139 | + // 等待合成完成 | ||
| 140 | + while(!ttsFinished) { | ||
| 141 | + usleep(1000); | ||
| 142 | + } | ||
| 143 | + | ||
| 144 | + //JZSDK_LOG_INFO("合成完成"); | ||
| 145 | + | ||
| 146 | + ret = AIKIT_End(g_AikitHandle); | ||
| 147 | + | ||
| 148 | +exit: | ||
| 149 | + if(paramBuilder != nullptr) { | ||
| 150 | + delete paramBuilder; | ||
| 151 | + } | ||
| 152 | + if(dataBuilder != nullptr) { | ||
| 153 | + delete dataBuilder; | ||
| 154 | + } | ||
| 155 | +} | ||
| 156 | + | ||
| 157 | + | ||
| 158 | + | ||
| 159 | + | ||
| 160 | + | ||
| 161 | + | ||
| 162 | + | ||
| 163 | + | ||
| 164 | + | ||
| 165 | + | ||
| 166 | + | ||
| 167 | +int IflytekLib_2_Init() | ||
| 168 | +{ | ||
| 169 | + //初始化环形缓冲区数组 | ||
| 170 | + g_ringBuf = (char *)malloc(IFLYTEK_RING_BUF_SIZE * sizeof(char)); | ||
| 171 | + JZring_Init(&g_ringHandle, g_ringBuf, IFLYTEK_RING_BUF_SIZE); | ||
| 172 | + | ||
| 173 | + AIKIT_Configurator::builder() | ||
| 174 | + .app() | ||
| 175 | + .appID("03857dfd") | ||
| 176 | + .apiSecret("OTA2OTEzMTVlOGYwMjllMmJkYzEwZGY5") | ||
| 177 | + .apiKey("2b2c60f8a80b8cdfe45ae1058a25149a") | ||
| 178 | + .workDir("/root/Iflytek_2") | ||
| 179 | + .auth() | ||
| 180 | + .authType(0) | ||
| 181 | + .log() | ||
| 182 | + .logLevel(LOG_LVL_OFF) //关闭日志打印 | ||
| 183 | + .logMode(LOG_STDOUT); //日志输出为控制台 | ||
| 184 | + | ||
| 185 | + int ret = AIKIT_Init(); | ||
| 186 | + if(ret != 0) { | ||
| 187 | + printf("AIKIT_Init failed: %d\n", ret); | ||
| 188 | + return -1; | ||
| 189 | + } | ||
| 190 | + | ||
| 191 | + AIKIT_Callbacks cbs = {OnOutput, OnEvent, OnError}; | ||
| 192 | + AIKIT_RegisterAbilityCallback(ABILITY, cbs); | ||
| 193 | + | ||
| 194 | + return 0; | ||
| 195 | +} | ||
| 196 | + | ||
| 197 | +int IflytekLib_2_UnInit() | ||
| 198 | +{ | ||
| 199 | + AIKIT_UnInit(); | ||
| 200 | + return 0; | ||
| 201 | +} | ||
| 202 | + | ||
| 203 | +static int IflytekLib_2_StopTts() | ||
| 204 | +{ | ||
| 205 | + AIKIT_OutputEvent eventData = {}; | ||
| 206 | + if (g_AikitHandle != nullptr) | ||
| 207 | + { | ||
| 208 | + OnEvent(g_AikitHandle,AIKIT_Event_End,&eventData); | ||
| 209 | + } | ||
| 210 | + | ||
| 211 | + return 0; | ||
| 212 | +} | ||
| 213 | + | ||
| 214 | +#endif |
| @@ -104,8 +104,8 @@ extern "C" { | @@ -104,8 +104,8 @@ extern "C" { | ||
| 104 | #define MAX_TTS_VOLUME (82) | 104 | #define MAX_TTS_VOLUME (82) |
| 105 | 105 | ||
| 106 | #elif DEVICE_VERSION == JZ_T40 | 106 | #elif DEVICE_VERSION == JZ_T40 |
| 107 | - #define MAX_VOLUME (100) | ||
| 108 | - #define MAX_TTS_VOLUME (100) | 107 | + #define MAX_VOLUME (63) |
| 108 | + #define MAX_TTS_VOLUME (70) | ||
| 109 | 109 | ||
| 110 | #else | 110 | #else |
| 111 | #define MAX_VOLUME (75) | 111 | #define MAX_VOLUME (75) |
| @@ -100,7 +100,7 @@ static T_JZsdkReturnCode FixedFilePlay() | @@ -100,7 +100,7 @@ static T_JZsdkReturnCode FixedFilePlay() | ||
| 100 | nbBytes = fread(cbits, 1, 3 * 1276, PlayFixedFile_pcm_fp); | 100 | nbBytes = fread(cbits, 1, 3 * 1276, PlayFixedFile_pcm_fp); |
| 101 | if(nbBytes > 0) | 101 | if(nbBytes > 0) |
| 102 | { | 102 | { |
| 103 | - AudioDeal_PcmDataInput(g_opus_sampleRate, (unsigned char *)cbits, nbBytes, 1); | 103 | + AudioDeal_PcmDataInput_RecordSteam(g_opus_sampleRate, (unsigned char *)cbits, nbBytes); |
| 104 | } | 104 | } |
| 105 | 105 | ||
| 106 | int totalSamples = nbBytes / (2); | 106 | int totalSamples = nbBytes / (2); |
| @@ -68,6 +68,9 @@ static T_JZsdkReturnCode Opus_RealTimeVoiceInit(int decode_rate) | @@ -68,6 +68,9 @@ static T_JZsdkReturnCode Opus_RealTimeVoiceInit(int decode_rate) | ||
| 68 | ReadTimeVoice_StatusFlag = JZ_FLAGCODE_ON; | 68 | ReadTimeVoice_StatusFlag = JZ_FLAGCODE_ON; |
| 69 | RealTimeDecodeRate = decode_rate; | 69 | RealTimeDecodeRate = decode_rate; |
| 70 | 70 | ||
| 71 | + //将音频库里的回音抑制开了 | ||
| 72 | + AudioDeal_EchoCancellation_Init(decode_rate); | ||
| 73 | + | ||
| 71 | //2、创建线程输入缓冲池线程 | 74 | //2、创建线程输入缓冲池线程 |
| 72 | ret = Opus_RealTimeVoice_WriteData_init(); | 75 | ret = Opus_RealTimeVoice_WriteData_init(); |
| 73 | if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | 76 | if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) |
| @@ -225,7 +228,7 @@ static T_JZsdkReturnCode Opus_RealTimeVoice_PlayData(unsigned char *data,int len | @@ -225,7 +228,7 @@ static T_JZsdkReturnCode Opus_RealTimeVoice_PlayData(unsigned char *data,int len | ||
| 225 | pcm_bytes[2 * i + 1] = (TempPcm[i] >> 8) & 0xFF; | 228 | pcm_bytes[2 * i + 1] = (TempPcm[i] >> 8) & 0xFF; |
| 226 | } | 229 | } |
| 227 | 230 | ||
| 228 | - AudioDeal_PcmDataInput(RealTimeDecodeRate, pcm_bytes, frame_size*2, 1); | 231 | + AudioDeal_PcmDataInput_RealTimeSteam(RealTimeDecodeRate, pcm_bytes, frame_size*2); |
| 229 | 232 | ||
| 230 | if (decodeErrorFlag == JZ_FLAGCODE_ON) | 233 | if (decodeErrorFlag == JZ_FLAGCODE_ON) |
| 231 | { | 234 | { |
| @@ -119,7 +119,8 @@ T_JZsdkReturnCode SearchLight_SetBrightness(int left, int right, int FlushTempLu | @@ -119,7 +119,8 @@ T_JZsdkReturnCode SearchLight_SetBrightness(int left, int right, int FlushTempLu | ||
| 119 | 119 | ||
| 120 | #elif (DEVICE_VERSION == JZ_T40) | 120 | #elif (DEVICE_VERSION == JZ_T40) |
| 121 | 121 | ||
| 122 | - HalSend_type1Send_SearchLight_SetLumen(UART_DEV_2, left, right, 0x20); | 122 | + int lumen = MAX(left, right); |
| 123 | + HalSend_type1Send_SearchLight_SetSingleLumem(UART_DEV_2, lumen, 0x20); | ||
| 123 | 124 | ||
| 124 | #elif (DEVICE_VERSION == JZ_H1T) | 125 | #elif (DEVICE_VERSION == JZ_H1T) |
| 125 | 126 | ||
| @@ -237,7 +238,7 @@ T_JZsdkReturnCode SearchLight_Get_SearchLightAttribute(T_JzSearchLightAttribute | @@ -237,7 +238,7 @@ T_JZsdkReturnCode SearchLight_Get_SearchLightAttribute(T_JzSearchLightAttribute | ||
| 237 | * ********************/ | 238 | * ********************/ |
| 238 | T_JZsdkReturnCode SearchLight_Flush_SearchLightAttribute() | 239 | T_JZsdkReturnCode SearchLight_Flush_SearchLightAttribute() |
| 239 | { | 240 | { |
| 240 | -#if DEVISE_VERSION == JZ_H1T | 241 | +#if DEVICE_VERSION == JZ_H1T |
| 241 | 242 | ||
| 242 | HalSend_type1Send_CheckStatus_SearchLight_Attribute(UART_DEV_1); | 243 | HalSend_type1Send_CheckStatus_SearchLight_Attribute(UART_DEV_1); |
| 243 | #endif | 244 | #endif |
| @@ -252,7 +253,7 @@ T_JZsdkReturnCode SearchLight_Flush_SearchLightAttribute() | @@ -252,7 +253,7 @@ T_JZsdkReturnCode SearchLight_Flush_SearchLightAttribute() | ||
| 252 | * *************/ | 253 | * *************/ |
| 253 | T_JZsdkReturnCode SearchLight_Flush_SearchLightTemerature() | 254 | T_JZsdkReturnCode SearchLight_Flush_SearchLightTemerature() |
| 254 | { | 255 | { |
| 255 | -#if DEVISE_VERSION == JZ_H1T | 256 | +#if DEVICE_VERSION == JZ_H1T |
| 256 | 257 | ||
| 257 | HalSend_type1Send_CheckStatus_SearchLight_Temperture(UART_DEV_1); | 258 | HalSend_type1Send_CheckStatus_SearchLight_Temperture(UART_DEV_1); |
| 258 | #endif | 259 | #endif |
| @@ -48,4 +48,9 @@ T_JZsdkReturnCode SearchLight_Obtain_Frequency(int Frequency); | @@ -48,4 +48,9 @@ T_JZsdkReturnCode SearchLight_Obtain_Frequency(int Frequency); | ||
| 48 | T_JZsdkReturnCode SearchLight_Obtain_Brightness(int left, int right); | 48 | T_JZsdkReturnCode SearchLight_Obtain_Brightness(int left, int right); |
| 49 | T_JZsdkReturnCode SearchLight_Obtain_Mode(E_JzSearchLightMode mode); | 49 | T_JZsdkReturnCode SearchLight_Obtain_Mode(E_JzSearchLightMode mode); |
| 50 | 50 | ||
| 51 | +T_JZsdkReturnCode JZsdk_SearchLight_SetMessageSubFlag(int InputFlag); | ||
| 52 | +int JZsdk_SearchLight_GetMessageSubFlag(void); | ||
| 53 | + | ||
| 54 | +T_JZsdkReturnCode SearchLight_Init(enum JZ_MODULE_CONTROL_WAY Mode); | ||
| 55 | + | ||
| 51 | #endif | 56 | #endif |
| @@ -13,8 +13,6 @@ | @@ -13,8 +13,6 @@ | ||
| 13 | #include "./SearchLightTemControl.h" | 13 | #include "./SearchLightTemControl.h" |
| 14 | #include "../SearchLight.h" | 14 | #include "../SearchLight.h" |
| 15 | 15 | ||
| 16 | -#include "Lighting_InAndOut.h" | ||
| 17 | - | ||
| 18 | static int g_InputTemp = 0; //全局输入温度 | 16 | static int g_InputTemp = 0; //全局输入温度 |
| 19 | static int g_InputLumen = 0; //全局输入亮度 | 17 | static int g_InputLumen = 0; //全局输入亮度 |
| 20 | static int g_OutputLumen = 0; //温控线程返回来的亮度 | 18 | static int g_OutputLumen = 0; //温控线程返回来的亮度 |
| @@ -124,7 +122,7 @@ static void *TempControl_TempTask(void *arg) | @@ -124,7 +122,7 @@ static void *TempControl_TempTask(void *arg) | ||
| 124 | if (light_mode != JZ_FLAGCODE_OFF) | 122 | if (light_mode != JZ_FLAGCODE_OFF) |
| 125 | { | 123 | { |
| 126 | //重设亮度 | 124 | //重设亮度 |
| 127 | - UIcontrol_Set_SearchLightLumen(NO_SPECIFIED, 0, Lumen, Lumen); | 125 | + UIcontrol_Set_SearchLightLumen(NO_SPECIFIED, JZ_FLAGCODE_OFF, Lumen, Lumen); |
| 128 | } | 126 | } |
| 129 | 127 | ||
| 130 | } | 128 | } |
| @@ -7,6 +7,7 @@ | @@ -7,6 +7,7 @@ | ||
| 7 | #include "Ircut/ircut.h" | 7 | #include "Ircut/ircut.h" |
| 8 | #include "SideLaser/SideLaser.h" | 8 | #include "SideLaser/SideLaser.h" |
| 9 | 9 | ||
| 10 | +#include "Hal_Send/HalSend.h" | ||
| 10 | 11 | ||
| 11 | static T_JZsdkReturnCode SideLaser_RealCotrol(int LaserNum, int status); | 12 | static T_JZsdkReturnCode SideLaser_RealCotrol(int LaserNum, int status); |
| 12 | 13 | ||
| @@ -20,13 +21,18 @@ static int g_SideLaserControl = JZ_FLAGCODE_OFF; | @@ -20,13 +21,18 @@ static int g_SideLaserControl = JZ_FLAGCODE_OFF; | ||
| 20 | static int SideLaser_Frequency = 50; //1~100 | 21 | static int SideLaser_Frequency = 50; //1~100 |
| 21 | 22 | ||
| 22 | 23 | ||
| 24 | + | ||
| 25 | + | ||
| 23 | static void *SideLaserControl_task(void *arg) | 26 | static void *SideLaserControl_task(void *arg) |
| 24 | { | 27 | { |
| 25 | int status = JZ_FLAGCODE_OFF; | 28 | int status = JZ_FLAGCODE_OFF; |
| 26 | static T_SideLaserMode Last_LaserMode = SIDE_LASER_OFF; | 29 | static T_SideLaserMode Last_LaserMode = SIDE_LASER_OFF; |
| 27 | 30 | ||
| 31 | + | ||
| 32 | +#if DEVICE_VERSION == JZ_U3S | ||
| 28 | while (1) | 33 | while (1) |
| 29 | { | 34 | { |
| 35 | + | ||
| 30 | switch (g_SideLaser_RealMode) | 36 | switch (g_SideLaser_RealMode) |
| 31 | { | 37 | { |
| 32 | case SIDE_LASER_OFF: | 38 | case SIDE_LASER_OFF: |
| @@ -149,8 +155,34 @@ static void *SideLaserControl_task(void *arg) | @@ -149,8 +155,34 @@ static void *SideLaserControl_task(void *arg) | ||
| 149 | } | 155 | } |
| 150 | 156 | ||
| 151 | delayMs(10); | 157 | delayMs(10); |
| 158 | + | ||
| 159 | + | ||
| 152 | } | 160 | } |
| 153 | - | 161 | +#endif |
| 162 | + | ||
| 163 | +#if DEVICE_VERSION == JZ_T40 | ||
| 164 | + while(1) | ||
| 165 | + { | ||
| 166 | + if (Last_LaserMode != g_SideLaser_RealMode) | ||
| 167 | + { | ||
| 168 | + Last_LaserMode = g_SideLaser_RealMode; | ||
| 169 | + | ||
| 170 | + if (g_SideLaser_RealMode == SIDE_LASER_OFF) | ||
| 171 | + { | ||
| 172 | + HalSend_type1Send_SetLaserControl(UART_DEV_2, 0x20 ,JZ_FLAGCODE_OFF); | ||
| 173 | + } | ||
| 174 | + else | ||
| 175 | + { | ||
| 176 | + int mode = g_SideLaser_RealMode - 1; | ||
| 177 | + HalSend_type1Send_SetLaserControl(UART_DEV_2, 0x20 ,JZ_FLAGCODE_ON); | ||
| 178 | + HalSend_type1Send_SetLaserMode(UART_DEV_2, 0x20, mode); | ||
| 179 | + } | ||
| 180 | + | ||
| 181 | + } | ||
| 182 | + | ||
| 183 | + } | ||
| 184 | + | ||
| 185 | +#endif | ||
| 154 | } | 186 | } |
| 155 | 187 | ||
| 156 | /************************************ | 188 | /************************************ |
Module/UI_control/Psdk_To_UI.c
0 → 100644
| 1 | +#include "Psdk_To_UI.h" | ||
| 2 | +#include "JZsdkLib.h" | ||
| 3 | +#include "UI_control/Psdk_Ui.h" | ||
| 4 | +#include "UI_control/UI_control.h" | ||
| 5 | + | ||
| 6 | +#include "version_choose.h" | ||
| 7 | + | ||
| 8 | +T_JZsdkReturnCode JZsdk_PsdkToUi_PlayLastSong() | ||
| 9 | +{ | ||
| 10 | + //1、将播放上一首歌曲的命令发送到UIcontrol | ||
| 11 | + UIcontrol_LastSong(DEVICE_PSDK); | ||
| 12 | + | ||
| 13 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 14 | +} | ||
| 15 | + | ||
| 16 | +T_JZsdkReturnCode JZsdk_PsdkToUi_PlayNextSong() | ||
| 17 | +{ | ||
| 18 | + //1、将播放下一首歌曲的命令发送到UIcontrol | ||
| 19 | + UIcontrol_NextSong(DEVICE_PSDK); | ||
| 20 | + | ||
| 21 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 22 | +} | ||
| 23 | + | ||
| 24 | +T_JZsdkReturnCode JZsdk_PsdkToUi_SetVolume(int volume) | ||
| 25 | +{ | ||
| 26 | + //1、将volume传递到所有的psdk ui (因为psdk有两个音量ui) | ||
| 27 | + JZsdk_UI_value_set(JZSDK_WIDGET_VOLUME, volume); | ||
| 28 | + | ||
| 29 | + //2、将音量控制值发送到UIcontrol 用于控制设备 | ||
| 30 | + UIcontrol_SetVolume(DEVICE_PSDK, volume, JZ_FLAGCODE_ON); | ||
| 31 | + | ||
| 32 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 33 | +} |
| @@ -87,6 +87,7 @@ static T_JZsdkReturnCode UI_control_WidgetArraySet(int index, int value) | @@ -87,6 +87,7 @@ static T_JZsdkReturnCode UI_control_WidgetArraySet(int index, int value) | ||
| 87 | T_JZsdkToPsdkHandler *handle = ExpansionApi_JZsdkToPsdk_GetHandler(); | 87 | T_JZsdkToPsdkHandler *handle = ExpansionApi_JZsdkToPsdk_GetHandler(); |
| 88 | if (handle != NULL && handle->Set_UI_Widget_Value != NULL) | 88 | if (handle != NULL && handle->Set_UI_Widget_Value != NULL) |
| 89 | { | 89 | { |
| 90 | + //将控件值设置到psdk的ui控件 | ||
| 90 | handle->Set_UI_Widget_Value(index, value); | 91 | handle->Set_UI_Widget_Value(index, value); |
| 91 | } | 92 | } |
| 92 | } | 93 | } |
Module/UI_control/Psdk_Ui.c
0 → 100644
| 1 | +#include "Psdk_Ui.h" | ||
| 2 | +#include "JZsdkLib.h" | ||
| 3 | +#include "ExtensionAPI/JZsdk_ExpansionApi.h" | ||
| 4 | + | ||
| 5 | + | ||
| 6 | +/**************** | ||
| 7 | + * | ||
| 8 | + * 控件设置 | ||
| 9 | + * | ||
| 10 | + * *************/ | ||
| 11 | +static T_JZsdkReturnCode UI_control_WidgetArraySet(int index, int value) | ||
| 12 | +{ | ||
| 13 | + T_JZsdkToPsdkHandler *handle = ExpansionApi_JZsdkToPsdk_GetHandler(); | ||
| 14 | + if (handle != NULL && handle->Set_UI_Widget_Value != NULL) | ||
| 15 | + { | ||
| 16 | + //将控件值设置到psdk的ui控件 | ||
| 17 | + handle->Set_UI_Widget_Value(index, value); | ||
| 18 | + } | ||
| 19 | +} | ||
| 20 | + | ||
| 21 | + | ||
| 22 | +/**************** | ||
| 23 | + * | ||
| 24 | + * 二级控件设置 | ||
| 25 | + * | ||
| 26 | + * *************/ | ||
| 27 | +static T_JZsdkReturnCode UI_control_SecondaryWidgetArraySet(int type, int value) | ||
| 28 | +{ | ||
| 29 | + T_JZsdkToPsdkHandler *handle = ExpansionApi_JZsdkToPsdk_GetHandler(); | ||
| 30 | + if (handle == NULL) | ||
| 31 | + { | ||
| 32 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
| 33 | + } | ||
| 34 | + | ||
| 35 | + switch (type) | ||
| 36 | + { | ||
| 37 | + | ||
| 38 | + case PSDK_UI_SECONDARY_WIDGET_PLAYSTATUS: | ||
| 39 | + if (handle->Set_UI_SpeakerWidget_PlayState != NULL) | ||
| 40 | + { | ||
| 41 | + return handle->Set_UI_SpeakerWidget_PlayState(value); | ||
| 42 | + } | ||
| 43 | + break; | ||
| 44 | + | ||
| 45 | + case PSDK_UI_SECONDARY_WIDGET_LOOPPLAY: | ||
| 46 | + if (handle->Set_UI_SpeakerWidget_LoopMode != NULL) | ||
| 47 | + { | ||
| 48 | + return handle->Set_UI_SpeakerWidget_LoopMode(value); | ||
| 49 | + } | ||
| 50 | + break; | ||
| 51 | + | ||
| 52 | + case JZSDK_WIDGET_VOLUME://音量 | ||
| 53 | + if (handle->Set_UI_SpeakerWidget_Volume != NULL) | ||
| 54 | + { | ||
| 55 | + return handle->Set_UI_SpeakerWidget_Volume(value); | ||
| 56 | + } | ||
| 57 | + break; | ||
| 58 | + | ||
| 59 | + | ||
| 60 | + default: | ||
| 61 | + break; | ||
| 62 | + } | ||
| 63 | +} | ||
| 64 | + | ||
| 65 | +static T_JZsdkReturnCode JZsdk_UI_DJIpsdk_Widget_set(JZsdk_Widget_Control index, int value) | ||
| 66 | +{ | ||
| 67 | + switch (index) | ||
| 68 | + { | ||
| 69 | + case JZSDK_WIDGET_VOLUME: | ||
| 70 | + { | ||
| 71 | + //1、大疆音量控件需要去设置喊话器控件内的音量 | ||
| 72 | + UI_control_WidgetArraySet(3, value); | ||
| 73 | + UI_control_WidgetArraySet(4, value); | ||
| 74 | + | ||
| 75 | + //2、大疆音量控件需要去设置悬浮窗的音量 | ||
| 76 | + UI_control_SecondaryWidgetArraySet(JZSDK_WIDGET_VOLUME, value); | ||
| 77 | + } | ||
| 78 | + break; | ||
| 79 | + | ||
| 80 | + default: | ||
| 81 | + break; | ||
| 82 | + } | ||
| 83 | +} | ||
| 84 | +T_JZsdkReturnCode JZsdk_UI_value_set(JZsdk_Widget_Control index, int value) | ||
| 85 | +{ | ||
| 86 | + JZsdk_UI_DJIpsdk_Widget_set(index, value); | ||
| 87 | +} |
| 1 | /** | 1 | /** |
| 2 | ******************************************************************** | 2 | ******************************************************************** |
| 3 | - * @file WarningLight_V3S.h | ||
| 4 | - * WarningLight_V3S的头文件 | 3 | + * @file Psdk_Ui.h |
| 4 | + * Psdk_Ui的头文件 | ||
| 5 | * | 5 | * |
| 6 | ********************************************************************* | 6 | ********************************************************************* |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | /* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/ | 9 | /* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/ |
| 10 | -#ifndef WARNINGLIGHT_V3S_H | ||
| 11 | -#define WARNINGLIGHT_V3S_H | 10 | +#ifndef PSDK_UI_H |
| 11 | +#define PSDK_UI_H | ||
| 12 | 12 | ||
| 13 | /* Includes ------------------------------------------------------------------*/ | 13 | /* Includes ------------------------------------------------------------------*/ |
| 14 | -#include "./WarningLight_V3S_H1T/WarningLight_V3S_H1T.h" | ||
| 15 | -#include "./WarningLight_V3S_TFA1/WarningLight_V3S_TFA1.h" | ||
| 16 | - | 14 | +#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h" |
| 15 | +#include "UI_control/WidegMgmt/JZsdk_WidgetIndex.h" | ||
| 17 | 16 | ||
| 18 | #ifdef __cplusplus | 17 | #ifdef __cplusplus |
| 19 | extern "C" { | 18 | extern "C" { |
| 20 | #endif | 19 | #endif |
| 21 | 20 | ||
| 22 | /* Exported constants --------------------------------------------------------*/ | 21 | /* Exported constants --------------------------------------------------------*/ |
| 23 | -/* 常亮定义*/ | ||
| 24 | 22 | ||
| 23 | +/* 常亮定义*/ | ||
| 25 | 24 | ||
| 26 | /* Exported types ------------------------------------------------------------*/ | 25 | /* Exported types ------------------------------------------------------------*/ |
| 27 | 26 | ||
| 28 | /* Exported functions --------------------------------------------------------*/ | 27 | /* Exported functions --------------------------------------------------------*/ |
| 28 | +T_JZsdkReturnCode JZsdk_UI_value_set(JZsdk_Widget_Control index, int value); | ||
| 29 | 29 | ||
| 30 | 30 | ||
| 31 | #ifdef __cplusplus | 31 | #ifdef __cplusplus |
| @@ -4,7 +4,6 @@ | @@ -4,7 +4,6 @@ | ||
| 4 | #include "BaseConfig.h" | 4 | #include "BaseConfig.h" |
| 5 | 5 | ||
| 6 | #include "Megaphone/Megaphone.h" | 6 | #include "Megaphone/Megaphone.h" |
| 7 | -#include "Lighting_InAndOut.h" | ||
| 8 | #include "Gimbal/Gimbal.h" | 7 | #include "Gimbal/Gimbal.h" |
| 9 | #include "Psdk_UI_io.h" | 8 | #include "Psdk_UI_io.h" |
| 10 | #include "ircut.h" | 9 | #include "ircut.h" |
| @@ -33,6 +32,10 @@ | @@ -33,6 +32,10 @@ | ||
| 33 | #include "SearchLight/SearchLight.h" | 32 | #include "SearchLight/SearchLight.h" |
| 34 | #endif | 33 | #endif |
| 35 | 34 | ||
| 35 | +#ifdef WARNLIGHT_STATUS_ON | ||
| 36 | + #include "WarnLight/WarnLight.h" | ||
| 37 | +#endif | ||
| 38 | + | ||
| 36 | static char *UI_CONTROL_ERROR = "ui_control处错误"; | 39 | static char *UI_CONTROL_ERROR = "ui_control处错误"; |
| 37 | 40 | ||
| 38 | /******************************************************************************************************** | 41 | /******************************************************************************************************** |
| @@ -1138,7 +1141,7 @@ T_JZsdkReturnCode UIcontrol_Obtain_GimbalLinkage(int DeviceName, int GimbalLinka | @@ -1138,7 +1141,7 @@ T_JZsdkReturnCode UIcontrol_Obtain_GimbalLinkage(int DeviceName, int GimbalLinka | ||
| 1138 | **********/ | 1141 | **********/ |
| 1139 | T_JZsdkReturnCode UIcontrol_Set_SearchLightFrequency(int DeviceName,int value) | 1142 | T_JZsdkReturnCode UIcontrol_Set_SearchLightFrequency(int DeviceName,int value) |
| 1140 | { | 1143 | { |
| 1141 | -#ifdef LIGHTING_STATUS_ON | 1144 | +#ifdef SEARCHLIGHT_STATUS_ON |
| 1142 | //调用探照灯的接口 | 1145 | //调用探照灯的接口 |
| 1143 | T_JZsdkReturnCode ret = SearchLight_SetFrequency(value); | 1146 | T_JZsdkReturnCode ret = SearchLight_SetFrequency(value); |
| 1144 | if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | 1147 | if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) |
| @@ -1188,7 +1191,7 @@ T_JZsdkReturnCode UIcontrol_Set_SearchLightFrequency(int DeviceName,int value) | @@ -1188,7 +1191,7 @@ T_JZsdkReturnCode UIcontrol_Set_SearchLightFrequency(int DeviceName,int value) | ||
| 1188 | **********/ | 1191 | **********/ |
| 1189 | T_JZsdkReturnCode UIcontrol_SearchLightControl(int DeviceName, int value) | 1192 | T_JZsdkReturnCode UIcontrol_SearchLightControl(int DeviceName, int value) |
| 1190 | { | 1193 | { |
| 1191 | -#ifdef LIGHTING_STATUS_ON | 1194 | +#ifdef SEARCHLIGHT_STATUS_ON |
| 1192 | //调用探照灯的灯光模式接口 | 1195 | //调用探照灯的灯光模式接口 |
| 1193 | T_JZsdkReturnCode ret = SearchLight_SetMode(value); | 1196 | T_JZsdkReturnCode ret = SearchLight_SetMode(value); |
| 1194 | if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | 1197 | if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) |
| @@ -1238,7 +1241,7 @@ T_JZsdkReturnCode UIcontrol_SearchLightControl(int DeviceName, int value) | @@ -1238,7 +1241,7 @@ T_JZsdkReturnCode UIcontrol_SearchLightControl(int DeviceName, int value) | ||
| 1238 | **********/ | 1241 | **********/ |
| 1239 | T_JZsdkReturnCode UIcontrol_Set_SearchLightLumen(int DeviceName, int WeatherFlush, int value1, int value2) | 1242 | T_JZsdkReturnCode UIcontrol_Set_SearchLightLumen(int DeviceName, int WeatherFlush, int value1, int value2) |
| 1240 | { | 1243 | { |
| 1241 | -#ifdef LIGHTING_STATUS_ON | 1244 | +#ifdef SEARCHLIGHT_STATUS_ON |
| 1242 | //检查是否合法 | 1245 | //检查是否合法 |
| 1243 | if (value1 >= 100) | 1246 | if (value1 >= 100) |
| 1244 | { | 1247 | { |
| @@ -1271,24 +1274,24 @@ T_JZsdkReturnCode UIcontrol_Set_SearchLightLumen(int DeviceName, int WeatherFlus | @@ -1271,24 +1274,24 @@ T_JZsdkReturnCode UIcontrol_Set_SearchLightLumen(int DeviceName, int WeatherFlus | ||
| 1271 | //获取探照灯属性 | 1274 | //获取探照灯属性 |
| 1272 | T_JzSearchLightAttribute LightAttribute; | 1275 | T_JzSearchLightAttribute LightAttribute; |
| 1273 | SearchLight_Get_SearchLightAttribute(&LightAttribute); | 1276 | SearchLight_Get_SearchLightAttribute(&LightAttribute); |
| 1274 | - int LeftLumen = LightAttribute.LeftBrightness; | ||
| 1275 | - int RightLumen = LightAttribute.RightBrightness; | 1277 | + int LeftTemp = LightAttribute.LeftTemperature; |
| 1278 | + int RightTemp = LightAttribute.RightTemperature; | ||
| 1276 | 1279 | ||
| 1277 | //通知其他设备的ui界面变化 | 1280 | //通知其他设备的ui界面变化 |
| 1278 | //如果4G模块有启动 | 1281 | //如果4G模块有启动 |
| 1279 | if ((JZsdk_HalPort_UseFlag(UART_4G) == JZ_FLAGCODE_ON) && (DeviceName != UART_4G) ) | 1282 | if ((JZsdk_HalPort_UseFlag(UART_4G) == JZ_FLAGCODE_ON) && (DeviceName != UART_4G) ) |
| 1280 | { | 1283 | { |
| 1281 | - HalSend_type1Send_SearchLight_Lumen(UART_4G, LeftLumen, RightLumen); | 1284 | + HalSend_type1Send_SearchLight_Lumen(UART_4G, LeftTemp, RightTemp); |
| 1282 | } | 1285 | } |
| 1283 | //如果设备1有启动 | 1286 | //如果设备1有启动 |
| 1284 | if ( (JZsdk_HalPort_UseFlag(UART_DEV_1) == JZ_FLAGCODE_ON) && (DeviceName != UART_DEV_1) ) | 1287 | if ( (JZsdk_HalPort_UseFlag(UART_DEV_1) == JZ_FLAGCODE_ON) && (DeviceName != UART_DEV_1) ) |
| 1285 | { | 1288 | { |
| 1286 | - HalSend_type1Send_SearchLight_Lumen(UART_DEV_1, LeftLumen, RightLumen); | 1289 | + HalSend_type1Send_SearchLight_Lumen(UART_DEV_1, LeftTemp, RightTemp); |
| 1287 | } | 1290 | } |
| 1288 | //如果设备2有启动 | 1291 | //如果设备2有启动 |
| 1289 | if ( (JZsdk_HalPort_UseFlag(UART_DEV_2) == JZ_FLAGCODE_ON) && (DeviceName != UART_DEV_2) ) | 1292 | if ( (JZsdk_HalPort_UseFlag(UART_DEV_2) == JZ_FLAGCODE_ON) && (DeviceName != UART_DEV_2) ) |
| 1290 | { | 1293 | { |
| 1291 | - HalSend_type1Send_SearchLight_Lumen(UART_DEV_2, LeftLumen, RightLumen); | 1294 | + HalSend_type1Send_SearchLight_Lumen(UART_DEV_2, LeftTemp, RightTemp); |
| 1292 | } | 1295 | } |
| 1293 | //如果psdk接口已经使用 | 1296 | //如果psdk接口已经使用 |
| 1294 | if ( (JZsdk_HalPort_UseFlag(DEVICE_PSDK) == JZ_FLAGCODE_ON) && DeviceName != DEVICE_PSDK ) | 1297 | if ( (JZsdk_HalPort_UseFlag(DEVICE_PSDK) == JZ_FLAGCODE_ON) && DeviceName != DEVICE_PSDK ) |
| @@ -1305,12 +1308,26 @@ T_JZsdkReturnCode UIcontrol_Set_SearchLightLumen(int DeviceName, int WeatherFlus | @@ -1305,12 +1308,26 @@ T_JZsdkReturnCode UIcontrol_Set_SearchLightLumen(int DeviceName, int WeatherFlus | ||
| 1305 | * 查询灯光属性 | 1308 | * 查询灯光属性 |
| 1306 | * | 1309 | * |
| 1307 | **********/ | 1310 | **********/ |
| 1308 | -T_JZsdkReturnCode UIcontrol_FlushSearchLightLightAttribute() | 1311 | +T_JZsdkReturnCode UIcontrol_CheckStatus_SearchLightLightAttribute(int *ValueLeftLumen, int *ValueRightLumen, int *ValueMode, int *ValueFrequency) |
| 1309 | { | 1312 | { |
| 1310 | #ifdef SEARCHLIGHT_STATUS_ON | 1313 | #ifdef SEARCHLIGHT_STATUS_ON |
| 1311 | 1314 | ||
| 1315 | + //刷新探照灯属性 | ||
| 1312 | SearchLight_Flush_SearchLightAttribute(); | 1316 | SearchLight_Flush_SearchLightAttribute(); |
| 1313 | 1317 | ||
| 1318 | + T_JzSearchLightAttribute LightAttribute; | ||
| 1319 | + T_JZsdkReturnCode ret = SearchLight_Get_SearchLightAttribute(&LightAttribute); | ||
| 1320 | + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
| 1321 | + { | ||
| 1322 | + printf("%s:%s\n",UI_CONTROL_ERROR,JZsdk_GetReturnCodeMessage(ret)); | ||
| 1323 | + return ret; | ||
| 1324 | + } | ||
| 1325 | + | ||
| 1326 | + *ValueLeftLumen = LightAttribute.LeftBrightness; | ||
| 1327 | + *ValueRightLumen = LightAttribute.RightBrightness; | ||
| 1328 | + *ValueMode = LightAttribute.Mode; | ||
| 1329 | + *ValueFrequency = LightAttribute.Frequency; | ||
| 1330 | + | ||
| 1314 | #endif | 1331 | #endif |
| 1315 | } | 1332 | } |
| 1316 | 1333 | ||
| @@ -1346,7 +1363,7 @@ T_JZsdkReturnCode UIcontrol_CheckStatus_SearchLightTemperture(int *ValueLeftTemp | @@ -1346,7 +1363,7 @@ T_JZsdkReturnCode UIcontrol_CheckStatus_SearchLightTemperture(int *ValueLeftTemp | ||
| 1346 | ******************/ | 1363 | ******************/ |
| 1347 | T_JZsdkReturnCode UIcontrol_Set_SearchLight_MessageSubscribe(int DeviceName, int value) | 1364 | T_JZsdkReturnCode UIcontrol_Set_SearchLight_MessageSubscribe(int DeviceName, int value) |
| 1348 | { | 1365 | { |
| 1349 | -#ifdef LIGHTING_STATUS_ON | 1366 | +#ifdef SEARCHLIGHT_STATUS_ON |
| 1350 | 1367 | ||
| 1351 | //调用探照灯的接口 | 1368 | //调用探照灯的接口 |
| 1352 | T_JZsdkReturnCode ret = JZsdk_SearchLight_SetMessageSubFlag(value); | 1369 | T_JZsdkReturnCode ret = JZsdk_SearchLight_SetMessageSubFlag(value); |
| @@ -1362,9 +1379,9 @@ T_JZsdkReturnCode UIcontrol_Set_SearchLight_MessageSubscribe(int DeviceName, int | @@ -1362,9 +1379,9 @@ T_JZsdkReturnCode UIcontrol_Set_SearchLight_MessageSubscribe(int DeviceName, int | ||
| 1362 | //设置警灯状态 | 1379 | //设置警灯状态 |
| 1363 | T_JZsdkReturnCode UIcontrol_Set_WarningLight_ModeControl(int DeviceName, int value1, int value2) | 1380 | T_JZsdkReturnCode UIcontrol_Set_WarningLight_ModeControl(int DeviceName, int value1, int value2) |
| 1364 | { | 1381 | { |
| 1365 | -#ifdef LIGHTING_STATUS_ON | 1382 | +#ifdef WARNLIGHT_STATUS_ON |
| 1366 | //调用探照灯的接口 | 1383 | //调用探照灯的接口 |
| 1367 | - T_JZsdkReturnCode ret = Lighting_Set_WarningLight_Status(value1, value2); | 1384 | + T_JZsdkReturnCode ret = WarnLight_Set_StatusAndMode(value1, value2); |
| 1368 | if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | 1385 | if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) |
| 1369 | { | 1386 | { |
| 1370 | printf("%s:%s\n",UI_CONTROL_ERROR,JZsdk_GetReturnCodeMessage(ret)); | 1387 | printf("%s:%s\n",UI_CONTROL_ERROR,JZsdk_GetReturnCodeMessage(ret)); |
| @@ -1373,25 +1390,25 @@ T_JZsdkReturnCode UIcontrol_Set_WarningLight_ModeControl(int DeviceName, int val | @@ -1373,25 +1390,25 @@ T_JZsdkReturnCode UIcontrol_Set_WarningLight_ModeControl(int DeviceName, int val | ||
| 1373 | 1390 | ||
| 1374 | delayMs(10); | 1391 | delayMs(10); |
| 1375 | 1392 | ||
| 1376 | - //获取当前警灯状态 | ||
| 1377 | - int status, mode; | ||
| 1378 | - Lighting_Get_WarningLight_Status(&status, &mode); | 1393 | + //获取当前警灯属性 |
| 1394 | + T_JzWarnLightAttribute LightAttribute; | ||
| 1395 | + WarnLight_Get_Attribute(&LightAttribute); | ||
| 1379 | 1396 | ||
| 1380 | //通知其他设备的ui界面变化 | 1397 | //通知其他设备的ui界面变化 |
| 1381 | //如果4G模块有启动 | 1398 | //如果4G模块有启动 |
| 1382 | if ((JZsdk_HalPort_UseFlag(UART_4G) == JZ_FLAGCODE_ON) && (DeviceName != UART_4G) ) | 1399 | if ((JZsdk_HalPort_UseFlag(UART_4G) == JZ_FLAGCODE_ON) && (DeviceName != UART_4G) ) |
| 1383 | { | 1400 | { |
| 1384 | - HalSend_type1Send_WarningLight_Status(UART_4G, status, mode); | 1401 | + HalSend_type1Send_WarningLight_Status(UART_4G, LightAttribute.status, LightAttribute.mode); |
| 1385 | } | 1402 | } |
| 1386 | //如果设备1有启动 | 1403 | //如果设备1有启动 |
| 1387 | if ( (JZsdk_HalPort_UseFlag(UART_DEV_1) == JZ_FLAGCODE_ON) && (DeviceName != UART_DEV_1) ) | 1404 | if ( (JZsdk_HalPort_UseFlag(UART_DEV_1) == JZ_FLAGCODE_ON) && (DeviceName != UART_DEV_1) ) |
| 1388 | { | 1405 | { |
| 1389 | - HalSend_type1Send_WarningLight_Status(UART_DEV_1, status, mode); | 1406 | + HalSend_type1Send_WarningLight_Status(UART_DEV_1, LightAttribute.status, LightAttribute.mode); |
| 1390 | } | 1407 | } |
| 1391 | //如果设备2有启动 | 1408 | //如果设备2有启动 |
| 1392 | if ( (JZsdk_HalPort_UseFlag(UART_DEV_2) == JZ_FLAGCODE_ON) && (DeviceName != UART_DEV_2) ) | 1409 | if ( (JZsdk_HalPort_UseFlag(UART_DEV_2) == JZ_FLAGCODE_ON) && (DeviceName != UART_DEV_2) ) |
| 1393 | { | 1410 | { |
| 1394 | - HalSend_type1Send_WarningLight_Status(UART_DEV_2, status, mode); | 1411 | + HalSend_type1Send_WarningLight_Status(UART_DEV_2, LightAttribute.status, LightAttribute.mode); |
| 1395 | } | 1412 | } |
| 1396 | //如果psdk接口已经使用 | 1413 | //如果psdk接口已经使用 |
| 1397 | if ( (JZsdk_HalPort_UseFlag(DEVICE_PSDK) == JZ_FLAGCODE_ON) && DeviceName != DEVICE_PSDK ) | 1414 | if ( (JZsdk_HalPort_UseFlag(DEVICE_PSDK) == JZ_FLAGCODE_ON) && DeviceName != DEVICE_PSDK ) |
| @@ -1407,9 +1424,9 @@ T_JZsdkReturnCode UIcontrol_Set_WarningLight_ModeControl(int DeviceName, int val | @@ -1407,9 +1424,9 @@ T_JZsdkReturnCode UIcontrol_Set_WarningLight_ModeControl(int DeviceName, int val | ||
| 1407 | //设置警灯颜色 | 1424 | //设置警灯颜色 |
| 1408 | T_JZsdkReturnCode UIcontrol_Set_WarningLight_Color(int DeviceName, int value1, int value2) | 1425 | T_JZsdkReturnCode UIcontrol_Set_WarningLight_Color(int DeviceName, int value1, int value2) |
| 1409 | { | 1426 | { |
| 1410 | -#ifdef LIGHTING_STATUS_ON | 1427 | +#ifdef WARNLIGHT_STATUS_ON |
| 1411 | //调用探照灯的接口 | 1428 | //调用探照灯的接口 |
| 1412 | - T_JZsdkReturnCode ret = Lighting_Set_WarningLight_Color(value1, value2); | 1429 | + T_JZsdkReturnCode ret = WarnLight_Set_Color(value1, value2); |
| 1413 | if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | 1430 | if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) |
| 1414 | { | 1431 | { |
| 1415 | printf("%s:%s\n",UI_CONTROL_ERROR,JZsdk_GetReturnCodeMessage(ret)); | 1432 | printf("%s:%s\n",UI_CONTROL_ERROR,JZsdk_GetReturnCodeMessage(ret)); |
| @@ -1418,25 +1435,25 @@ T_JZsdkReturnCode UIcontrol_Set_WarningLight_Color(int DeviceName, int value1, i | @@ -1418,25 +1435,25 @@ T_JZsdkReturnCode UIcontrol_Set_WarningLight_Color(int DeviceName, int value1, i | ||
| 1418 | 1435 | ||
| 1419 | delayMs(10); | 1436 | delayMs(10); |
| 1420 | 1437 | ||
| 1421 | - //获取当前警灯颜色 | ||
| 1422 | - int color1, color2; | ||
| 1423 | - Lighting_Get_WarningLight_Color(&color1, &color2); | 1438 | + //获取当前警灯属性 |
| 1439 | + T_JzWarnLightAttribute LightAttribute; | ||
| 1440 | + WarnLight_Get_Attribute(&LightAttribute); | ||
| 1424 | 1441 | ||
| 1425 | //通知其他设备的ui界面变化 | 1442 | //通知其他设备的ui界面变化 |
| 1426 | //如果4G模块有启动 | 1443 | //如果4G模块有启动 |
| 1427 | if ((JZsdk_HalPort_UseFlag(UART_4G) == JZ_FLAGCODE_ON) && (DeviceName != UART_4G) ) | 1444 | if ((JZsdk_HalPort_UseFlag(UART_4G) == JZ_FLAGCODE_ON) && (DeviceName != UART_4G) ) |
| 1428 | { | 1445 | { |
| 1429 | - HalSend_type1Send_WarningLight_Color(UART_4G, color1, color2); | 1446 | + HalSend_type1Send_WarningLight_Color(UART_4G, LightAttribute.Color1, LightAttribute.Color2); |
| 1430 | } | 1447 | } |
| 1431 | //如果设备1有启动 | 1448 | //如果设备1有启动 |
| 1432 | if ( (JZsdk_HalPort_UseFlag(UART_DEV_1) == JZ_FLAGCODE_ON) && (DeviceName != UART_DEV_1) ) | 1449 | if ( (JZsdk_HalPort_UseFlag(UART_DEV_1) == JZ_FLAGCODE_ON) && (DeviceName != UART_DEV_1) ) |
| 1433 | { | 1450 | { |
| 1434 | - HalSend_type1Send_WarningLight_Color(UART_DEV_1, color1, color2); | 1451 | + HalSend_type1Send_WarningLight_Color(UART_DEV_1, LightAttribute.Color1, LightAttribute.Color2); |
| 1435 | } | 1452 | } |
| 1436 | //如果设备2有启动 | 1453 | //如果设备2有启动 |
| 1437 | if ( (JZsdk_HalPort_UseFlag(UART_DEV_2) == JZ_FLAGCODE_ON) && (DeviceName != UART_DEV_2) ) | 1454 | if ( (JZsdk_HalPort_UseFlag(UART_DEV_2) == JZ_FLAGCODE_ON) && (DeviceName != UART_DEV_2) ) |
| 1438 | { | 1455 | { |
| 1439 | - HalSend_type1Send_WarningLight_Color(UART_DEV_2, color1, color2); | 1456 | + HalSend_type1Send_WarningLight_Color(UART_DEV_2, LightAttribute.Color1, LightAttribute.Color2); |
| 1440 | } | 1457 | } |
| 1441 | //如果psdk接口已经使用 | 1458 | //如果psdk接口已经使用 |
| 1442 | if ( (JZsdk_HalPort_UseFlag(DEVICE_PSDK) == JZ_FLAGCODE_ON) && DeviceName != DEVICE_PSDK ) | 1459 | if ( (JZsdk_HalPort_UseFlag(DEVICE_PSDK) == JZ_FLAGCODE_ON) && DeviceName != DEVICE_PSDK ) |
| @@ -1456,9 +1473,19 @@ T_JZsdkReturnCode UIcontrol_Set_WarningLight_Color(int DeviceName, int value1, i | @@ -1456,9 +1473,19 @@ T_JZsdkReturnCode UIcontrol_Set_WarningLight_Color(int DeviceName, int value1, i | ||
| 1456 | **********/ | 1473 | **********/ |
| 1457 | T_JZsdkReturnCode UIcontrol_CheckStatus_WarningLightStatus(int *ValueSwitch, int *ValueMode) | 1474 | T_JZsdkReturnCode UIcontrol_CheckStatus_WarningLightStatus(int *ValueSwitch, int *ValueMode) |
| 1458 | { | 1475 | { |
| 1459 | -#ifdef LIGHTING_STATUS_ON | ||
| 1460 | - //获取本地的警灯状态,并主动刷新一次警灯状态 | ||
| 1461 | - Lighting_CheckStatus_WarningLightStatus(ValueSwitch, ValueMode); | 1476 | +#ifdef WARNLIGHT_STATUS_ON |
| 1477 | + | ||
| 1478 | + //去刷新一次警灯状态 | ||
| 1479 | + WarnLight_Flush_StatusAndMode(); | ||
| 1480 | + | ||
| 1481 | + //获取警灯属性 | ||
| 1482 | + T_JzWarnLightAttribute LightAttribute; | ||
| 1483 | + WarnLight_Get_Attribute(&LightAttribute); | ||
| 1484 | + | ||
| 1485 | + *ValueSwitch = LightAttribute.status; | ||
| 1486 | + *ValueMode = LightAttribute.mode; | ||
| 1487 | + | ||
| 1488 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 1462 | #endif | 1489 | #endif |
| 1463 | } | 1490 | } |
| 1464 | 1491 | ||
| @@ -1469,9 +1496,20 @@ T_JZsdkReturnCode UIcontrol_CheckStatus_WarningLightStatus(int *ValueSwitch, int | @@ -1469,9 +1496,20 @@ T_JZsdkReturnCode UIcontrol_CheckStatus_WarningLightStatus(int *ValueSwitch, int | ||
| 1469 | **********/ | 1496 | **********/ |
| 1470 | T_JZsdkReturnCode UIcontrol_CheckStatus_WarningLightColor(int *ValueColor1, int *ValueColor2) | 1497 | T_JZsdkReturnCode UIcontrol_CheckStatus_WarningLightColor(int *ValueColor1, int *ValueColor2) |
| 1471 | { | 1498 | { |
| 1472 | -#ifdef LIGHTING_STATUS_ON | ||
| 1473 | - //获取本地的警灯颜色,并主动刷新一次警灯颜色 | ||
| 1474 | - Lighting_CheckStatus_WarningLightColor(ValueColor1, ValueColor2); | 1499 | +#ifdef WARNLIGHT_STATUS_ON |
| 1500 | + | ||
| 1501 | + //去刷新一次警灯颜色 | ||
| 1502 | + WarnLight_Flush_StatusAndMode(); | ||
| 1503 | + | ||
| 1504 | + //获取警灯属性 | ||
| 1505 | + T_JzWarnLightAttribute LightAttribute; | ||
| 1506 | + WarnLight_Get_Attribute(&LightAttribute); | ||
| 1507 | + | ||
| 1508 | + *ValueColor1 = LightAttribute.Color1; | ||
| 1509 | + *ValueColor2 = LightAttribute.Color2; | ||
| 1510 | + | ||
| 1511 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 1512 | + | ||
| 1475 | #endif | 1513 | #endif |
| 1476 | } | 1514 | } |
| 1477 | 1515 | ||
| @@ -1603,7 +1641,7 @@ T_JZsdkReturnCode UIcontrol_CheckStatus_OutPutPowerValue(int *Value) | @@ -1603,7 +1641,7 @@ T_JZsdkReturnCode UIcontrol_CheckStatus_OutPutPowerValue(int *Value) | ||
| 1603 | **********/ | 1641 | **********/ |
| 1604 | T_JZsdkReturnCode UIcontrol_ObtainSearchLight_Frequency(int DeviceName, int Frequency) | 1642 | T_JZsdkReturnCode UIcontrol_ObtainSearchLight_Frequency(int DeviceName, int Frequency) |
| 1605 | { | 1643 | { |
| 1606 | -#ifdef LIGHTING_STATUS_ON | 1644 | +#ifdef SEARCHLIGHT_STATUS_ON |
| 1607 | //1、设置本地存储值 | 1645 | //1、设置本地存储值 |
| 1608 | SearchLight_Obtain_Frequency(Frequency); | 1646 | SearchLight_Obtain_Frequency(Frequency); |
| 1609 | 1647 | ||
| @@ -1639,7 +1677,7 @@ T_JZsdkReturnCode UIcontrol_ObtainSearchLight_Frequency(int DeviceName, int Freq | @@ -1639,7 +1677,7 @@ T_JZsdkReturnCode UIcontrol_ObtainSearchLight_Frequency(int DeviceName, int Freq | ||
| 1639 | **********/ | 1677 | **********/ |
| 1640 | T_JZsdkReturnCode UIcontrol_ObtainSearchLight_Mode(int DeviceName, int mode) | 1678 | T_JZsdkReturnCode UIcontrol_ObtainSearchLight_Mode(int DeviceName, int mode) |
| 1641 | { | 1679 | { |
| 1642 | -#ifdef LIGHTING_STATUS_ON | 1680 | +#ifdef SEARCHLIGHT_STATUS_ON |
| 1643 | //1、设置本地存储值 | 1681 | //1、设置本地存储值 |
| 1644 | SearchLight_Obtain_Mode(mode); | 1682 | SearchLight_Obtain_Mode(mode); |
| 1645 | 1683 | ||
| @@ -1675,7 +1713,7 @@ T_JZsdkReturnCode UIcontrol_ObtainSearchLight_Mode(int DeviceName, int mode) | @@ -1675,7 +1713,7 @@ T_JZsdkReturnCode UIcontrol_ObtainSearchLight_Mode(int DeviceName, int mode) | ||
| 1675 | **********/ | 1713 | **********/ |
| 1676 | T_JZsdkReturnCode UIcontrol_ObtainSearchLight_Lumen(int DeviceName, int LeftLumen, int RightLumen) | 1714 | T_JZsdkReturnCode UIcontrol_ObtainSearchLight_Lumen(int DeviceName, int LeftLumen, int RightLumen) |
| 1677 | { | 1715 | { |
| 1678 | -#ifdef LIGHTING_STATUS_ON | 1716 | +#ifdef SEARCHLIGHT_STATUS_ON |
| 1679 | //1、设置本地存储值 | 1717 | //1、设置本地存储值 |
| 1680 | SearchLight_Obtain_Brightness(LeftLumen, RightLumen); | 1718 | SearchLight_Obtain_Brightness(LeftLumen, RightLumen); |
| 1681 | 1719 | ||
| @@ -1715,7 +1753,7 @@ T_JZsdkReturnCode UIcontrol_ObtainSearchLight_Lumen(int DeviceName, int LeftLume | @@ -1715,7 +1753,7 @@ T_JZsdkReturnCode UIcontrol_ObtainSearchLight_Lumen(int DeviceName, int LeftLume | ||
| 1715 | **********/ | 1753 | **********/ |
| 1716 | T_JZsdkReturnCode UIcontrol_ObtainSearchLight_Temperature(int DeviceName, int LeftTemperature, int RightTemperature) | 1754 | T_JZsdkReturnCode UIcontrol_ObtainSearchLight_Temperature(int DeviceName, int LeftTemperature, int RightTemperature) |
| 1717 | { | 1755 | { |
| 1718 | -#ifdef LIGHTING_STATUS_ON | 1756 | +#ifdef SEARCHLIGHT_STATUS_ON |
| 1719 | //1、设置本地存储值 | 1757 | //1、设置本地存储值 |
| 1720 | SearchLight_Obtain_Temperature(LeftTemperature, RightTemperature); | 1758 | SearchLight_Obtain_Temperature(LeftTemperature, RightTemperature); |
| 1721 | 1759 | ||
| @@ -1728,15 +1766,10 @@ T_JZsdkReturnCode UIcontrol_ObtainSearchLight_Temperature(int DeviceName, int Le | @@ -1728,15 +1766,10 @@ T_JZsdkReturnCode UIcontrol_ObtainSearchLight_Temperature(int DeviceName, int Le | ||
| 1728 | //如果设备1有启动 | 1766 | //如果设备1有启动 |
| 1729 | if ( (JZsdk_HalPort_UseFlag(UART_DEV_1) == JZ_FLAGCODE_ON) && (DeviceName != UART_DEV_1) ) | 1767 | if ( (JZsdk_HalPort_UseFlag(UART_DEV_1) == JZ_FLAGCODE_ON) && (DeviceName != UART_DEV_1) ) |
| 1730 | { | 1768 | { |
| 1731 | -#ifdef LIGHTING_STATUS_ON | ||
| 1732 | if (JZsdk_SearchLight_GetMessageSubFlag() == JZ_FLAGCODE_ON) | 1769 | if (JZsdk_SearchLight_GetMessageSubFlag() == JZ_FLAGCODE_ON) |
| 1733 | { | 1770 | { |
| 1734 | HalSend_type1Send_SearchLight_Temperature(UART_DEV_1, LeftTemperature, RightTemperature); | 1771 | HalSend_type1Send_SearchLight_Temperature(UART_DEV_1, LeftTemperature, RightTemperature); |
| 1735 | - } | ||
| 1736 | -#else | ||
| 1737 | - HalSend_type1Send_SearchLight_Temperature(UART_DEV_1, LeftTemperature, RightTemperature); | ||
| 1738 | -#endif | ||
| 1739 | - | 1772 | + } |
| 1740 | } | 1773 | } |
| 1741 | //如果设备2有启动 | 1774 | //如果设备2有启动 |
| 1742 | if ( (JZsdk_HalPort_UseFlag(UART_DEV_2) == JZ_FLAGCODE_ON) && (DeviceName != UART_DEV_2) ) | 1775 | if ( (JZsdk_HalPort_UseFlag(UART_DEV_2) == JZ_FLAGCODE_ON) && (DeviceName != UART_DEV_2) ) |
| @@ -1751,8 +1784,81 @@ T_JZsdkReturnCode UIcontrol_ObtainSearchLight_Temperature(int DeviceName, int Le | @@ -1751,8 +1784,81 @@ T_JZsdkReturnCode UIcontrol_ObtainSearchLight_Temperature(int DeviceName, int Le | ||
| 1751 | 1784 | ||
| 1752 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 1785 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
| 1753 | #endif | 1786 | #endif |
| 1787 | + | ||
| 1788 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
| 1754 | } | 1789 | } |
| 1755 | 1790 | ||
| 1791 | + | ||
| 1792 | +/********* | ||
| 1793 | + * | ||
| 1794 | + * 收到单边灯光温度 | ||
| 1795 | + * | ||
| 1796 | +**********/ | ||
| 1797 | +T_JZsdkReturnCode UIcontrol_ObtainSearchLight_SingleTemperature(int DeviceName, int FrameSequence, int Temperature) | ||
| 1798 | +{ | ||
| 1799 | + | ||
| 1800 | +//目前只有T40用 | ||
| 1801 | +#ifdef SEARCHLIGHT_STATUS_ON | ||
| 1802 | + | ||
| 1803 | + int Brocastflag = JZ_FLAGCODE_OFF; | ||
| 1804 | + | ||
| 1805 | + #if DEVICE_VERSION == JZ_T40 | ||
| 1806 | + | ||
| 1807 | + //先读取本地探照灯属性 | ||
| 1808 | + T_JzSearchLightAttribute SearchLightAttribute; | ||
| 1809 | + SearchLight_Get_SearchLightAttribute(&SearchLightAttribute); | ||
| 1810 | + | ||
| 1811 | + //分析出左右 | ||
| 1812 | + if (FrameSequence == 0x21) //左 | ||
| 1813 | + { | ||
| 1814 | + SearchLight_Obtain_Temperature(Temperature, SearchLightAttribute.RightTemperature); | ||
| 1815 | + Brocastflag = JZ_FLAGCODE_ON; | ||
| 1816 | + } | ||
| 1817 | + | ||
| 1818 | + if (FrameSequence == 0x22) //右 | ||
| 1819 | + { | ||
| 1820 | + SearchLight_Obtain_Temperature(SearchLightAttribute.LeftTemperature, Temperature); | ||
| 1821 | + Brocastflag = JZ_FLAGCODE_ON; | ||
| 1822 | + } | ||
| 1823 | + | ||
| 1824 | + #endif | ||
| 1825 | + | ||
| 1826 | + T_JzSearchLightAttribute Attribute; | ||
| 1827 | + SearchLight_Get_SearchLightAttribute(&Attribute); | ||
| 1828 | + | ||
| 1829 | + if(Brocastflag == JZ_FLAGCODE_ON && FrameSequence == 0x21) | ||
| 1830 | + { | ||
| 1831 | + //通知其他设备的ui界面变化 | ||
| 1832 | + //如果4G模块有启动 | ||
| 1833 | + if ((JZsdk_HalPort_UseFlag(UART_4G) == JZ_FLAGCODE_ON) && (DeviceName != UART_4G) ) | ||
| 1834 | + { | ||
| 1835 | + HalSend_type1Send_SearchLight_Temperature(UART_4G, Attribute.LeftTemperature, Attribute.RightTemperature); | ||
| 1836 | + } | ||
| 1837 | + //如果设备1有启动 | ||
| 1838 | + if ( (JZsdk_HalPort_UseFlag(UART_DEV_1) == JZ_FLAGCODE_ON) && (DeviceName != UART_DEV_1) ) | ||
| 1839 | + { | ||
| 1840 | + if (JZsdk_SearchLight_GetMessageSubFlag() == JZ_FLAGCODE_ON) | ||
| 1841 | + { | ||
| 1842 | + HalSend_type1Send_SearchLight_Temperature(UART_DEV_1, Attribute.LeftTemperature, Attribute.RightTemperature); | ||
| 1843 | + } | ||
| 1844 | + } | ||
| 1845 | + //如果设备2有启动 | ||
| 1846 | + if ( (JZsdk_HalPort_UseFlag(UART_DEV_2) == JZ_FLAGCODE_ON) && (DeviceName != UART_DEV_2) ) | ||
| 1847 | + { | ||
| 1848 | + HalSend_type1Send_SearchLight_Temperature(UART_DEV_1, Attribute.LeftTemperature, Attribute.RightTemperature); | ||
| 1849 | + } | ||
| 1850 | + //如果psdk接口已经使用 | ||
| 1851 | + if ( (JZsdk_HalPort_UseFlag(DEVICE_PSDK) == JZ_FLAGCODE_ON) && DeviceName != DEVICE_PSDK ) | ||
| 1852 | + { | ||
| 1853 | + HalSend_type1Send_SearchLight_Temperature(UART_DEV_1, Attribute.LeftTemperature, Attribute.RightTemperature); | ||
| 1854 | + } | ||
| 1855 | + } | ||
| 1856 | + | ||
| 1857 | +#endif | ||
| 1858 | + | ||
| 1859 | +} | ||
| 1860 | + | ||
| 1861 | + | ||
| 1756 | /**************************************************************************************************************************************** | 1862 | /**************************************************************************************************************************************** |
| 1757 | * | 1863 | * |
| 1758 | * 警灯相关 | 1864 | * 警灯相关 |
| @@ -1765,9 +1871,10 @@ T_JZsdkReturnCode UIcontrol_ObtainSearchLight_Temperature(int DeviceName, int Le | @@ -1765,9 +1871,10 @@ T_JZsdkReturnCode UIcontrol_ObtainSearchLight_Temperature(int DeviceName, int Le | ||
| 1765 | **********/ | 1871 | **********/ |
| 1766 | T_JZsdkReturnCode UIcontrol_ObtainWarningLight_Status(int DeviceName, int status, int mode) | 1872 | T_JZsdkReturnCode UIcontrol_ObtainWarningLight_Status(int DeviceName, int status, int mode) |
| 1767 | { | 1873 | { |
| 1768 | -#ifdef LIGHTING_STATUS_ON | 1874 | +#ifdef WARNLIGHT_STATUS_ON |
| 1875 | + | ||
| 1769 | //1、设置本地存储值 | 1876 | //1、设置本地存储值 |
| 1770 | - Lighting_Obtain_WarningLight_Status(status, mode); | 1877 | + WarnLight_Obatin_StatusAndMode(status, mode); |
| 1771 | 1878 | ||
| 1772 | //2、通知其他设备变化 | 1879 | //2、通知其他设备变化 |
| 1773 | if ((JZsdk_HalPort_UseFlag(UART_4G) == JZ_FLAGCODE_ON) && (DeviceName != UART_4G) ) | 1880 | if ((JZsdk_HalPort_UseFlag(UART_4G) == JZ_FLAGCODE_ON) && (DeviceName != UART_4G) ) |
| @@ -1801,9 +1908,9 @@ T_JZsdkReturnCode UIcontrol_ObtainWarningLight_Status(int DeviceName, int status | @@ -1801,9 +1908,9 @@ T_JZsdkReturnCode UIcontrol_ObtainWarningLight_Status(int DeviceName, int status | ||
| 1801 | **********/ | 1908 | **********/ |
| 1802 | T_JZsdkReturnCode UIcontrol_ObtainWarningLight_Color(int DeviceName, int color1, int color2) | 1909 | T_JZsdkReturnCode UIcontrol_ObtainWarningLight_Color(int DeviceName, int color1, int color2) |
| 1803 | { | 1910 | { |
| 1804 | -#ifdef LIGHTING_STATUS_ON | 1911 | +#ifdef WARNLIGHT_STATUS_ON |
| 1805 | //1、设置本地存储值 | 1912 | //1、设置本地存储值 |
| 1806 | - Lighting_Obtain_WarningLight_Color(color1, color2); | 1913 | + WarnLight_Obatin_Color(color1, color2); |
| 1807 | 1914 | ||
| 1808 | //2、通知其他设备变化 | 1915 | //2、通知其他设备变化 |
| 1809 | if ((JZsdk_HalPort_UseFlag(UART_4G) == JZ_FLAGCODE_ON) && (DeviceName != UART_4G) ) | 1916 | if ((JZsdk_HalPort_UseFlag(UART_4G) == JZ_FLAGCODE_ON) && (DeviceName != UART_4G) ) |
| @@ -75,8 +75,10 @@ T_JZsdkReturnCode UIcontrol_CheckStatus_GimbalAngle(int *PitchValue, int *YawVal | @@ -75,8 +75,10 @@ T_JZsdkReturnCode UIcontrol_CheckStatus_GimbalAngle(int *PitchValue, int *YawVal | ||
| 75 | T_JZsdkReturnCode UIcontrol_Set_SearchLightFrequency(int DeviceName,int value); | 75 | T_JZsdkReturnCode UIcontrol_Set_SearchLightFrequency(int DeviceName,int value); |
| 76 | T_JZsdkReturnCode UIcontrol_SearchLightControl(int DeviceName, int mode); | 76 | T_JZsdkReturnCode UIcontrol_SearchLightControl(int DeviceName, int mode); |
| 77 | T_JZsdkReturnCode UIcontrol_Set_SearchLightLumen(int DeviceName, int WeatherFlush, int value1, int value2); | 77 | T_JZsdkReturnCode UIcontrol_Set_SearchLightLumen(int DeviceName, int WeatherFlush, int value1, int value2); |
| 78 | -T_JZsdkReturnCode UIcontrol_FlushSearchLightLightAttribute(); | 78 | +T_JZsdkReturnCode UIcontrol_CheckStatus_SearchLightLightAttribute(int *ValueLeftLumen, int *ValueRightLumen, int *ValueMode, int *ValueFrequency); |
| 79 | T_JZsdkReturnCode UIcontrol_CheckStatus_SearchLightTemperture(int *ValueLeftTemperature, int *ValueRightTemperaturen); | 79 | T_JZsdkReturnCode UIcontrol_CheckStatus_SearchLightTemperture(int *ValueLeftTemperature, int *ValueRightTemperaturen); |
| 80 | +T_JZsdkReturnCode UIcontrol_ObtainSearchLight_SingleTemperature(int DeviceName, int FrameSequence, int Temperature); | ||
| 81 | + | ||
| 80 | T_JZsdkReturnCode UIcontrol_Set_SearchLight_MessageSubscribe(int DeviceName, int value); | 82 | T_JZsdkReturnCode UIcontrol_Set_SearchLight_MessageSubscribe(int DeviceName, int value); |
| 81 | 83 | ||
| 82 | //警灯类 | 84 | //警灯类 |
Module/WarnLight/WarnLight.c
0 → 100644
| 1 | +#include "JZsdkLib.h" | ||
| 2 | + | ||
| 3 | +#include "version_choose.h" | ||
| 4 | +#include "Hal_Send/HalSend.h" | ||
| 5 | +#include "WarnLight/WarnLight.h" | ||
| 6 | + | ||
| 7 | + | ||
| 8 | +typedef struct T_JzWarnLightInfo{ | ||
| 9 | + T_JzWarnLightAttribute Attribute; | ||
| 10 | + JZ_MODULE_CONTROL_WAY ControlMode; //控制模式 | ||
| 11 | +}T_JzWarnLightInfo; | ||
| 12 | + | ||
| 13 | +static T_JzWarnLightInfo g_WarnLightInfo; | ||
| 14 | + | ||
| 15 | +T_JZsdkReturnCode WarnLight_Init(enum JZ_MODULE_CONTROL_WAY Mode) | ||
| 16 | +{ | ||
| 17 | + //初始化参数 | ||
| 18 | + static T_JzWarnLightAttribute Attribute = { | ||
| 19 | + .Color1 = E_JZ_WARNLIGHT_COLOR_RED, | ||
| 20 | + .Color2 = E_JZ_WARNLIGHT_COLOR_BLUE, | ||
| 21 | + .mode = E_JZ_WARNLIGHT_MODE_ALTERATING_FAST_FALSHING, | ||
| 22 | + .status = JZ_FLAGCODE_OFF, | ||
| 23 | + }; | ||
| 24 | + | ||
| 25 | + memcpy(&g_WarnLightInfo.Attribute, &Attribute, sizeof(T_JzWarnLightAttribute)); | ||
| 26 | + | ||
| 27 | + g_WarnLightInfo.ControlMode = Mode; | ||
| 28 | + | ||
| 29 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 30 | +} | ||
| 31 | + | ||
| 32 | +T_JZsdkReturnCode WarnLight_Set_StatusAndMode(int status, int mode) | ||
| 33 | +{ | ||
| 34 | + JZSDK_LOG_DEBUG("WarnLight_Set_StatusAndMode: status = %d, mode = %d", status, mode); | ||
| 35 | + | ||
| 36 | +#if DEVICE_VERSION == JZ_H1T | ||
| 37 | + | ||
| 38 | + HalSend_type1Send_Set_WarningLight_Status(UART_DEV_1, 0x00, status, mode); | ||
| 39 | + | ||
| 40 | +#elif DEVICE_VERSION == TF_A1 || \ | ||
| 41 | + DEVICE_VERSION == JZ_U3S || \ | ||
| 42 | + DEVICE_VERSION == JZ_U3D || \ | ||
| 43 | + DEVICE_VERSION == JZ_U30 | ||
| 44 | + | ||
| 45 | + HalSend_type1Send_Set_WarningLight_Status(UART_DEV_2, 0x00, status, mode); | ||
| 46 | + | ||
| 47 | +#elif DEVICE_VERSION == JZ_T40 | ||
| 48 | + | ||
| 49 | + HalSend_type1Send_Set_WarningLight_Status(UART_DEV_2, 0x20, status, mode); | ||
| 50 | + | ||
| 51 | +#endif | ||
| 52 | + | ||
| 53 | + g_WarnLightInfo.Attribute.mode = mode; | ||
| 54 | + g_WarnLightInfo.Attribute.status = status; | ||
| 55 | + | ||
| 56 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 57 | +} | ||
| 58 | + | ||
| 59 | +//收到警灯状态 | ||
| 60 | +T_JZsdkReturnCode WarnLight_Obatin_StatusAndMode(int status, int mode) | ||
| 61 | +{ | ||
| 62 | + JZSDK_LOG_DEBUG("%x警灯状态改变 状态%d 模式%d",DEVICE_VERSION, status ,mode); | ||
| 63 | + | ||
| 64 | + g_WarnLightInfo.Attribute.mode = mode; | ||
| 65 | + g_WarnLightInfo.Attribute.status = status; | ||
| 66 | + | ||
| 67 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 68 | +} | ||
| 69 | + | ||
| 70 | +/********* | ||
| 71 | + * | ||
| 72 | + * 刷新警灯状态 | ||
| 73 | + * | ||
| 74 | +**********/ | ||
| 75 | +T_JZsdkReturnCode WarnLight_Flush_StatusAndMode() | ||
| 76 | +{ | ||
| 77 | + //如果是中继设备,则进行一次灯光属性查询 | ||
| 78 | + if(g_WarnLightInfo.ControlMode == JZ_MODULE_CONTROL_WAY_TRANSPARENT) | ||
| 79 | + { | ||
| 80 | + //查询灯光属性 | ||
| 81 | + HalSend_type1Send_CheckStatus_WarningLightStatus(UART_DEV_1); | ||
| 82 | + } | ||
| 83 | + | ||
| 84 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 85 | +} | ||
| 86 | + | ||
| 87 | + | ||
| 88 | + | ||
| 89 | +//设置警灯颜色 | ||
| 90 | +T_JZsdkReturnCode WarnLight_Set_Color(int Color1, int Color2) | ||
| 91 | +{ | ||
| 92 | + JZSDK_LOG_DEBUG("设置0x%x:警灯颜色 Color1:0x%x, color:0x%x",DEVICE_VERSION, Color1, Color2); | ||
| 93 | + | ||
| 94 | +#if DEVICE_VERSION == JZ_H1T | ||
| 95 | + HalSend_type1Send_Set_WarningLight_Color(UART_DEV_1, 0x00, Color1, Color2); | ||
| 96 | + | ||
| 97 | +#elif DEVICE_VERSION == TF_A1 || \ | ||
| 98 | + DEVICE_VERSION == JZ_U3S || \ | ||
| 99 | + DEVICE_VERSION == JZ_U3D || \ | ||
| 100 | + DEVICE_VERSION == JZ_U30 | ||
| 101 | + | ||
| 102 | + | ||
| 103 | + HalSend_type1Send_Set_WarningLight_Color(UART_DEV_2, 0x00, Color1, Color2); | ||
| 104 | + | ||
| 105 | +#elif DEVICE_VERSION == JZ_T40 | ||
| 106 | + | ||
| 107 | + HalSend_type1Send_Set_WarningLight_Color(UART_DEV_2, 0x20, Color1, Color2); | ||
| 108 | + | ||
| 109 | +#endif | ||
| 110 | + | ||
| 111 | + g_WarnLightInfo.Attribute.Color1 = Color1; | ||
| 112 | + g_WarnLightInfo.Attribute.Color2 = Color2; | ||
| 113 | + | ||
| 114 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 115 | +} | ||
| 116 | + | ||
| 117 | +//收到警灯颜色 | ||
| 118 | +T_JZsdkReturnCode WarnLight_Obatin_Color(int Color1, int Color2) | ||
| 119 | +{ | ||
| 120 | + JZSDK_LOG_DEBUG("收到0x%x:警灯颜色 Color1:0x%x, color:0x%x",DEVICE_VERSION, Color1, Color2); | ||
| 121 | + | ||
| 122 | + g_WarnLightInfo.Attribute.Color1 = Color1; | ||
| 123 | + g_WarnLightInfo.Attribute.Color2 = Color2; | ||
| 124 | + | ||
| 125 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 126 | +} | ||
| 127 | + | ||
| 128 | +//刷新警灯颜色 | ||
| 129 | +T_JZsdkReturnCode WarnLight_Flush_Color() | ||
| 130 | +{ | ||
| 131 | + //如果是中继设备,则进行一次灯光属性查询 | ||
| 132 | + if(g_WarnLightInfo.ControlMode == JZ_MODULE_CONTROL_WAY_TRANSPARENT) | ||
| 133 | + { | ||
| 134 | + //查询灯光属性 | ||
| 135 | + HalSend_type1Send_CheckStatus_WarningLightColor(UART_DEV_1); | ||
| 136 | + } | ||
| 137 | + | ||
| 138 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 139 | +} | ||
| 140 | + | ||
| 141 | +//获取警灯属性 | ||
| 142 | +T_JZsdkReturnCode WarnLight_Get_Attribute(T_JzWarnLightAttribute *Attribute) | ||
| 143 | +{ | ||
| 144 | + if(Attribute == NULL) | ||
| 145 | + { | ||
| 146 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
| 147 | + } | ||
| 148 | + | ||
| 149 | + memcpy(Attribute, &g_WarnLightInfo.Attribute, sizeof(T_JzWarnLightAttribute)); | ||
| 150 | + | ||
| 151 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 152 | +} | ||
| 153 | + | ||
| 154 | + |
Module/WarnLight/WarnLight.h
0 → 100644
| 1 | +/** | ||
| 2 | + ******************************************************************** | ||
| 3 | + * @file WarnLight.h | ||
| 4 | + * WarnLight的头文件 | ||
| 5 | + * | ||
| 6 | + ********************************************************************* | ||
| 7 | + */ | ||
| 8 | + | ||
| 9 | +/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/ | ||
| 10 | +#ifndef WARNLIGHT_H | ||
| 11 | +#define WARNLIGHT_H | ||
| 12 | + | ||
| 13 | +/* Includes ------------------------------------------------------------------*/ | ||
| 14 | +#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h" | ||
| 15 | + | ||
| 16 | +#ifdef __cplusplus | ||
| 17 | +extern "C" { | ||
| 18 | +#endif | ||
| 19 | + | ||
| 20 | +/* Exported constants --------------------------------------------------------*/ | ||
| 21 | +/* 常亮定义*/ | ||
| 22 | + | ||
| 23 | +/* Exported types ------------------------------------------------------------*/ | ||
| 24 | +typedef struct T_JzWarnLightAttribute{ | ||
| 25 | + int mode; //模式 | ||
| 26 | + int status; //状态 | ||
| 27 | + int Color1; //颜色1 | ||
| 28 | + int Color2; //颜色2 | ||
| 29 | +}T_JzWarnLightAttribute; | ||
| 30 | + | ||
| 31 | + | ||
| 32 | +typedef enum E_JzWarnLightColor{ | ||
| 33 | + E_JZ_WARNLIGHT_COLOR_RED = 1, | ||
| 34 | + E_JZ_WARNLIGHT_COLOR_GREEN = 2, | ||
| 35 | + E_JZ_WARNLIGHT_COLOR_BLUE = 3, | ||
| 36 | + E_JZ_WARNLIGHT_COLOR_YELLOW = 4, | ||
| 37 | + E_JZ_WARNLIGHT_COLOR_WHITE = 5, | ||
| 38 | +}E_JzWarnLightColor; | ||
| 39 | + | ||
| 40 | +typedef enum E_JzWarnLightMode{ | ||
| 41 | + E_JZ_WARNLIGHT_MODE_ALTERATING_FAST_FALSHING = 0, //交替快速闪烁 | ||
| 42 | + E_JZ_WARNLIGHT_MODE_ALTERATING_SLOW_FALSHING = 1, //交替慢速闪烁 | ||
| 43 | + E_JZ_WARNLIGHT_MODE_ALTERATING_UNISONG_FALSHING = 2, //交替单色闪烁 | ||
| 44 | + E_JZ_WARNLIGHT_MODE_SIMULTANEOUS_FAST_FALSHING = 3, //同时快速闪烁 | ||
| 45 | + E_JZ_WARNLIGHT_MODE_SIMULTANEOUS_SLOW_FALSHING = 4, //同时慢速闪烁 | ||
| 46 | +}E_JzWarnLightMode; | ||
| 47 | + | ||
| 48 | +/* Exported functions --------------------------------------------------------*/ | ||
| 49 | +T_JZsdkReturnCode WarnLight_Set_StatusAndMode(int status, int mode); | ||
| 50 | +T_JZsdkReturnCode WarnLight_Set_Color(int Color1, int Color2); | ||
| 51 | + | ||
| 52 | +T_JZsdkReturnCode WarnLight_Get_Attribute(T_JzWarnLightAttribute *Attribute); | ||
| 53 | + | ||
| 54 | +T_JZsdkReturnCode WarnLight_Flush_StatusAndMode(); | ||
| 55 | +T_JZsdkReturnCode WarnLight_Flush_Color(); | ||
| 56 | + | ||
| 57 | +T_JZsdkReturnCode WarnLight_Obatin_StatusAndMode(int status, int mode); | ||
| 58 | +T_JZsdkReturnCode WarnLight_Obatin_Color(int Color1, int Color2); | ||
| 59 | + | ||
| 60 | +T_JZsdkReturnCode WarnLight_Init(enum JZ_MODULE_CONTROL_WAY Mode); | ||
| 61 | + | ||
| 62 | + | ||
| 63 | +#ifdef __cplusplus | ||
| 64 | +} | ||
| 65 | +#endif | ||
| 66 | + | ||
| 67 | +#endif |
-
请 注册 或 登录 后发表评论