作者 潘浩彬

合并分支 'dev' 到 'master'

Dev



查看合并请求 !18
正在显示 64 个修改的文件 包含 2637 行增加1041 行删除

要显示太多修改。

为保证性能只显示 64 of 64+ 个文件。

@@ -122,7 +122,17 @@ @@ -122,7 +122,17 @@
122 "hardwareinfo.h": "c", 122 "hardwareinfo.h": "c",
123 "jzsdk_attributedef.h": "c", 123 "jzsdk_attributedef.h": "c",
124 "msp_types.h": "c", 124 "msp_types.h": "c",
125 - "attribute.h": "c" 125 + "attribute.h": "c",
  126 + "rk_venc_rc.h": "c",
  127 + "rk_mpi.h": "c",
  128 + "cameradef.h": "c",
  129 + "cam_zoom.h": "c",
  130 + "videodev2.h": "c",
  131 + "jzsdk_widget.h": "c",
  132 + "dji_sdk_config.h": "c",
  133 + "hal_uart.h": "c",
  134 + "jzsdkbase.h": "c",
  135 + "dji_logger.h": "c"
126 }, 136 },
127 "Codegeex.GenerationPreference": "automatic", 137 "Codegeex.GenerationPreference": "automatic",
128 "C_Cpp.dimInactiveRegions": false 138 "C_Cpp.dimInactiveRegions": false
1 # 编译链的配置 1 # 编译链的配置
2 2
3 #1、编译链与设备类型的选择 3 #1、编译链与设备类型的选择
4 -set(DEVICE_NAME JZ_H1T) 4 +set(DEVICE_NAME JZ_U30)
5 #上一行为禁止修改行 5 #上一行为禁止修改行
6 6
7 message("**************************JZSDK构建编译开始***************************\n") 7 message("**************************JZSDK构建编译开始***************************\n")
8 8
9 if("${DEVICE_NAME}" STREQUAL "JZ_H1E") 9 if("${DEVICE_NAME}" STREQUAL "JZ_H1E")
10 set(MAKE_COMPILER ARM_CORTEXA9_LINUX) 10 set(MAKE_COMPILER ARM_CORTEXA9_LINUX)
11 - set(DEVICE_TYPE MEGAPHONE)  
12 elseif("${DEVICE_NAME}" STREQUAL "JZ_H1T") 11 elseif("${DEVICE_NAME}" STREQUAL "JZ_H1T")
13 set(MAKE_COMPILER ARM_CORTEXA9_LINUX) 12 set(MAKE_COMPILER ARM_CORTEXA9_LINUX)
14 - set(DEVICE_TYPE MEGAPHONE)  
15 elseif("${DEVICE_NAME}" STREQUAL "JZ_H150S") 13 elseif("${DEVICE_NAME}" STREQUAL "JZ_H150S")
16 set(MAKE_COMPILER ARM_CORTEXA9_LINUX) 14 set(MAKE_COMPILER ARM_CORTEXA9_LINUX)
17 - set(DEVICE_TYPE MEGAPHONE)  
18 elseif("${DEVICE_NAME}" STREQUAL "JZ_H150T") 15 elseif("${DEVICE_NAME}" STREQUAL "JZ_H150T")
19 set(MAKE_COMPILER ARM_CORTEXA9_LINUX) 16 set(MAKE_COMPILER ARM_CORTEXA9_LINUX)
20 - set(DEVICE_TYPE MEGAPHONE)  
21 elseif("${DEVICE_NAME}" STREQUAL "JZ_H10") 17 elseif("${DEVICE_NAME}" STREQUAL "JZ_H10")
22 set(MAKE_COMPILER ARM_CORTEXA9_LINUX) 18 set(MAKE_COMPILER ARM_CORTEXA9_LINUX)
23 - set(DEVICE_TYPE MEGAPHONE)  
24 elseif("${DEVICE_NAME}" STREQUAL "JZ_H10T") 19 elseif("${DEVICE_NAME}" STREQUAL "JZ_H10T")
25 set(MAKE_COMPILER ARM_CORTEXA9_LINUX) 20 set(MAKE_COMPILER ARM_CORTEXA9_LINUX)
26 - set(DEVICE_TYPE MEGAPHONE)  
27 elseif("${DEVICE_NAME}" STREQUAL "JZ_U3") 21 elseif("${DEVICE_NAME}" STREQUAL "JZ_U3")
28 set(MAKE_COMPILER ARM_CORTEXA9_LINUX) 22 set(MAKE_COMPILER ARM_CORTEXA9_LINUX)
29 - set(DEVICE_TYPE MEGAPHONE)  
30 elseif("${DEVICE_NAME}" STREQUAL "JZ_U3S") 23 elseif("${DEVICE_NAME}" STREQUAL "JZ_U3S")
31 set(MAKE_COMPILER ARM_CORTEXA9_LINUX) 24 set(MAKE_COMPILER ARM_CORTEXA9_LINUX)
32 - set(DEVICE_TYPE MEGAPHONE)  
33 elseif("${DEVICE_NAME}" STREQUAL "JZ_U3D") 25 elseif("${DEVICE_NAME}" STREQUAL "JZ_U3D")
34 set(MAKE_COMPILER ARM_CORTEXA9_LINUX) 26 set(MAKE_COMPILER ARM_CORTEXA9_LINUX)
35 - set(DEVICE_TYPE MEGAPHONE)  
36 elseif("${DEVICE_NAME}" STREQUAL "JZ_U30") 27 elseif("${DEVICE_NAME}" STREQUAL "JZ_U30")
37 set(MAKE_COMPILER ARM_CORTEXA9_LINUX) 28 set(MAKE_COMPILER ARM_CORTEXA9_LINUX)
38 - set(DEVICE_TYPE MEGAPHONE)  
39 elseif("${DEVICE_NAME}" STREQUAL "TF_A1") 29 elseif("${DEVICE_NAME}" STREQUAL "TF_A1")
40 set(MAKE_COMPILER ARM_CORTEXA9_LINUX) 30 set(MAKE_COMPILER ARM_CORTEXA9_LINUX)
41 - set(DEVICE_TYPE MEGAPHONE)  
42 elseif("${DEVICE_NAME}" STREQUAL "JZ_C1") 31 elseif("${DEVICE_NAME}" STREQUAL "JZ_C1")
43 set(MAKE_COMPILER ARM_X86_64_ARRCH64) 32 set(MAKE_COMPILER ARM_X86_64_ARRCH64)
44 endif() 33 endif()
@@ -19,8 +19,11 @@ file(GLOB_RECURSE JZSDK_COMMON_SRC ${ROOT_DIRS}JZsdk_Common/*.c) @@ -19,8 +19,11 @@ file(GLOB_RECURSE JZSDK_COMMON_SRC ${ROOT_DIRS}JZsdk_Common/*.c)
19 list(APPEND ALL_SRC_FILES ${JZSDK_COMMON_SRC}) 19 list(APPEND ALL_SRC_FILES ${JZSDK_COMMON_SRC})
20 list(APPEND ALL_INC_FILES ${ROOT_DIRS}JZsdk_Common) 20 list(APPEND ALL_INC_FILES ${ROOT_DIRS}JZsdk_Common)
21 21
22 -file(GLOB_RECURSE JZSDK_CONFIG_SRC ${ROOT_DIRS}JZsdk_Config/*.c)  
23 -list(APPEND ALL_SRC_FILES ${JZSDK_CONFIG_SRC}) 22 +file(GLOB_RECURSE JZSDK_CONFIG_SRC_baseConfig ${ROOT_DIRS}JZsdk_Config/BaseConfig.c)
  23 +file(GLOB_RECURSE JZSDK_CONFIG_SRC_Paramterpar ${ROOT_DIRS}JZsdk_Config/ParamterParsing.c)
  24 +
  25 +list(APPEND ALL_SRC_FILES ${JZSDK_CONFIG_SRC_baseConfig})
  26 +list(APPEND ALL_SRC_FILES ${JZSDK_CONFIG_SRC_Paramterpar})
24 list(APPEND ALL_INC_FILES ${ROOT_DIRS}JZsdk_Config) 27 list(APPEND ALL_INC_FILES ${ROOT_DIRS}JZsdk_Config)
25 28
26 file(GLOB_RECURSE JZSDK_HAL_SRC ${ROOT_DIRS}JZsdk_hal/*.c) 29 file(GLOB_RECURSE JZSDK_HAL_SRC ${ROOT_DIRS}JZsdk_hal/*.c)
@@ -37,13 +40,6 @@ if(${DEVICE_INFO_MODULE} STREQUAL "VERSION_SWITCH_ON") @@ -37,13 +40,6 @@ if(${DEVICE_INFO_MODULE} STREQUAL "VERSION_SWITCH_ON")
37 40
38 endif() 41 endif()
39 42
40 -#如果要加载设备配置  
41 -if(${DEVICE_CONFIG_MODULE} STREQUAL "VERSION_SWITCH_ON")  
42 - message("\n设备配置源码加载中")  
43 - file(GLOB_RECURSE DEVICE_CONFOG_SRC ${ROOT_DIRS}Module/DeviceConfig/*.c)  
44 - list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})  
45 -endif()  
46 -  
47 #如果要加载云台模块,需要加载以下附属内容 43 #如果要加载云台模块,需要加载以下附属内容
48 if(${GIMBAL_MODULE} STREQUAL "VERSION_SWITCH_ON") 44 if(${GIMBAL_MODULE} STREQUAL "VERSION_SWITCH_ON")
49 message("\n云台模块源码加载中") 45 message("\n云台模块源码加载中")
@@ -108,7 +104,16 @@ if(${MEDIA_PROC_MODULE} STREQUAL "VERSION_SWITCH_ON") @@ -108,7 +104,16 @@ if(${MEDIA_PROC_MODULE} STREQUAL "VERSION_SWITCH_ON")
108 104
109 endif() 105 endif()
110 106
  107 +#如果要加载音频库模块,需要加载以下附属内容
  108 +if(${AUDIODEAL_MODULE} STREQUAL "VERSION_SWITCH_ON")
  109 + message("\n音频库模块加载中")
111 110
  111 + message("加载音频库")
  112 + add_definitions(-DMACRO_AUDIODEAL_MODULE)
  113 + file(GLOB_RECURSE AUDIODEAL_SRC ${ROOT_DIRS}Module/AudioDeal/*.c)
  114 + list(APPEND ALL_SRC_FILES ${AUDIODEAL_SRC})
  115 +
  116 +endif()
112 117
113 #如果要加载喊话器模块,需要加载以下附属内容 118 #如果要加载喊话器模块,需要加载以下附属内容
114 if(${MEGAPHONE_MODULE} STREQUAL "VERSION_SWITCH_ON") 119 if(${MEGAPHONE_MODULE} STREQUAL "VERSION_SWITCH_ON")
@@ -119,10 +124,6 @@ if(${MEGAPHONE_MODULE} STREQUAL "VERSION_SWITCH_ON") @@ -119,10 +124,6 @@ if(${MEGAPHONE_MODULE} STREQUAL "VERSION_SWITCH_ON")
119 file(GLOB_RECURSE MEGAPHONE_SRC ${ROOT_DIRS}Module/Megaphone/*.c) 124 file(GLOB_RECURSE MEGAPHONE_SRC ${ROOT_DIRS}Module/Megaphone/*.c)
120 list(APPEND ALL_SRC_FILES ${MEGAPHONE_SRC}) 125 list(APPEND ALL_SRC_FILES ${MEGAPHONE_SRC})
121 126
122 - message("加载音频库")  
123 - file(GLOB_RECURSE AUDIODEAL_SRC ${ROOT_DIRS}Module/AudioDeal/*.c)  
124 - list(APPEND ALL_SRC_FILES ${AUDIODEAL_SRC})  
125 -  
126 message("加载讯飞TTS模块") 127 message("加载讯飞TTS模块")
127 set(IFLAY_TTS_MODULE VERSION_SWITCH_ON) 128 set(IFLAY_TTS_MODULE VERSION_SWITCH_ON)
128 129
@@ -188,7 +189,7 @@ if(${IMAGEPROCESSING_MODULE} STREQUAL "VERSION_SWITCH_ON") @@ -188,7 +189,7 @@ if(${IMAGEPROCESSING_MODULE} STREQUAL "VERSION_SWITCH_ON")
188 list(APPEND ALL_SRC_FILES ${MODULE_IMAGEPROCESSING_cpp_SRC}) 189 list(APPEND ALL_SRC_FILES ${MODULE_IMAGEPROCESSING_cpp_SRC})
189 endif() 190 endif()
190 191
191 - 192 +message("\n模组加载完毕\n")
192 193
193 # 头文件加载,后续再进行优化 194 # 头文件加载,后续再进行优化
194 list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/Megaphone) 195 list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/Megaphone)
@@ -9,9 +9,6 @@ set(AUDIODEAL_MODULE VERSION_SWITCH_OFF) @@ -9,9 +9,6 @@ set(AUDIODEAL_MODULE VERSION_SWITCH_OFF)
9 # 信息模块 9 # 信息模块
10 set(DEVICE_INFO_MODULE VERSION_SWITCH_OFF) 10 set(DEVICE_INFO_MODULE VERSION_SWITCH_OFF)
11 11
12 -# 设备配置模块  
13 -set(DEVICE_CONFIG_MODULE VERSION_SWITCH_OFF)  
14 -  
15 # Gimbal 云台处理模块 12 # Gimbal 云台处理模块
16 set(GIMBAL_MODULE VERSION_SWITCH_OFF) 13 set(GIMBAL_MODULE VERSION_SWITCH_OFF)
17 14
@@ -60,9 +57,6 @@ set(IMAGEPROCESSING_MODULE VERSION_SWITCH_OFF) @@ -60,9 +57,6 @@ set(IMAGEPROCESSING_MODULE VERSION_SWITCH_OFF)
60 # 添加信息模块 57 # 添加信息模块
61 set(DEVICE_INFO_MODULE VERSION_SWITCH_ON) 58 set(DEVICE_INFO_MODULE VERSION_SWITCH_ON)
62 59
63 -# 添加设备配置模块  
64 -set(DEVICE_CONFIG_MODULE VERSION_SWITCH_ON)  
65 -  
66 # 添加UI管理模块 60 # 添加UI管理模块
67 set(UI_CONTROL_MODULE VERSION_SWITCH_ON) 61 set(UI_CONTROL_MODULE VERSION_SWITCH_ON)
68 62
@@ -75,6 +69,7 @@ message("通用库加载完成") @@ -75,6 +69,7 @@ message("通用库加载完成")
75 ########################### 独立库加载 ########################################## 69 ########################### 独立库加载 ##########################################
76 70
77 if("${DEVICE_NAME}" STREQUAL "JZ_H1E") 71 if("${DEVICE_NAME}" STREQUAL "JZ_H1E")
  72 +
78 # 添加AudioDeal 音频处理模块 73 # 添加AudioDeal 音频处理模块
79 set(AUDIODEAL_MODULE VERSION_SWITCH_ON) 74 set(AUDIODEAL_MODULE VERSION_SWITCH_ON)
80 75
@@ -93,6 +88,12 @@ if("${DEVICE_NAME}" STREQUAL "JZ_H1E") @@ -93,6 +88,12 @@ if("${DEVICE_NAME}" STREQUAL "JZ_H1E")
93 # 添加FFMPEG及其附属模块 88 # 添加FFMPEG及其附属模块
94 set(FFMPEG_MODULE VERSION_SWITCH_ON) 89 set(FFMPEG_MODULE VERSION_SWITCH_ON)
95 90
  91 + #设备独立配置源文件
  92 + file(GLOB_RECURSE DEVICE_CONFOG_SRC ${ROOT_DIRS}JZsdk_Config/DeviceSample/JZ_H1_series/JZ_H1E/*.c)
  93 + list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})
  94 +
  95 + message("h1e基础配置完毕\n")
  96 +
96 elseif("${DEVICE_NAME}" STREQUAL "JZ_H1T") 97 elseif("${DEVICE_NAME}" STREQUAL "JZ_H1T")
97 98
98 # 添加AudioDeal 音频处理模块 99 # 添加AudioDeal 音频处理模块
@@ -113,6 +114,12 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_H1T") @@ -113,6 +114,12 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_H1T")
113 # 添加FFMPEG及其附属模块 114 # 添加FFMPEG及其附属模块
114 set(FFMPEG_MODULE VERSION_SWITCH_ON) 115 set(FFMPEG_MODULE VERSION_SWITCH_ON)
115 116
  117 + #设备独立配置源文件
  118 + file(GLOB_RECURSE DEVICE_CONFOG_SRC ${ROOT_DIRS}JZsdk_Config/DeviceSample/JZ_H1_series/JZ_H1T/*.c)
  119 + list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})
  120 +
  121 + message("h1t基础配置完毕\n")
  122 +
116 elseif("${DEVICE_NAME}" STREQUAL "JZ_U3") 123 elseif("${DEVICE_NAME}" STREQUAL "JZ_U3")
117 124
118 # 添加AudioDeal 音频处理模块 125 # 添加AudioDeal 音频处理模块
@@ -133,6 +140,12 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_U3") @@ -133,6 +140,12 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_U3")
133 # 添加FFMPEG及其附属模块 140 # 添加FFMPEG及其附属模块
134 set(FFMPEG_MODULE VERSION_SWITCH_ON) 141 set(FFMPEG_MODULE VERSION_SWITCH_ON)
135 142
  143 + #设备独立配置源文件
  144 + file(GLOB_RECURSE DEVICE_CONFOG_SRC ${ROOT_DIRS}JZsdk_Config/DeviceSample/JZ_U3_series/JZ_U3/*.c)
  145 + list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})
  146 +
  147 + message("u3基础配置完毕\n")
  148 +
136 elseif("${DEVICE_NAME}" STREQUAL "JZ_U3S") 149 elseif("${DEVICE_NAME}" STREQUAL "JZ_U3S")
137 150
138 # 添加AudioDeal 音频处理模块 151 # 添加AudioDeal 音频处理模块
@@ -156,6 +169,12 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_U3S") @@ -156,6 +169,12 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_U3S")
156 # 添加激光模块 169 # 添加激光模块
157 set(SIDE_LASER_MODULE VERSION_SWITCH_ON) 170 set(SIDE_LASER_MODULE VERSION_SWITCH_ON)
158 171
  172 + #设备独立配置源文件
  173 + file(GLOB_RECURSE DEVICE_CONFOG_SRC ${ROOT_DIRS}JZsdk_Config/DeviceSample/JZ_U3_series/JZ_U3S/*.c)
  174 + list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})
  175 +
  176 + message("u3s基础配置完毕\n")
  177 +
159 elseif("${DEVICE_NAME}" STREQUAL "JZ_U3D") 178 elseif("${DEVICE_NAME}" STREQUAL "JZ_U3D")
160 179
161 # 添加AudioDeal 音频处理模块 180 # 添加AudioDeal 音频处理模块
@@ -176,6 +195,12 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_U3D") @@ -176,6 +195,12 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_U3D")
176 # 添加FFMPEG及其附属模块 195 # 添加FFMPEG及其附属模块
177 set(FFMPEG_MODULE VERSION_SWITCH_ON) 196 set(FFMPEG_MODULE VERSION_SWITCH_ON)
178 197
  198 + #设备独立配置源文件
  199 + file(GLOB_RECURSE DEVICE_CONFOG_SRC ${ROOT_DIRS}JZsdk_Config/DeviceSample/JZ_U3_series/JZ_U3D/*.c)
  200 + list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})
  201 +
  202 + message("u3d基础配置完毕\n")
  203 +
179 elseif("${DEVICE_NAME}" STREQUAL "JZ_U30") 204 elseif("${DEVICE_NAME}" STREQUAL "JZ_U30")
180 205
181 # 添加AudioDeal 音频处理模块 206 # 添加AudioDeal 音频处理模块
@@ -196,6 +221,12 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_U30") @@ -196,6 +221,12 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_U30")
196 # 添加FFMPEG及其附属模块 221 # 添加FFMPEG及其附属模块
197 set(FFMPEG_MODULE VERSION_SWITCH_ON) 222 set(FFMPEG_MODULE VERSION_SWITCH_ON)
198 223
  224 + #设备独立配置源文件
  225 + file(GLOB_RECURSE DEVICE_CONFOG_SRC ${ROOT_DIRS}JZsdk_Config/DeviceSample/JZ_U3_series/JZ_U30/*.c)
  226 + list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})
  227 +
  228 + message("u30基础配置完毕\n")
  229 +
199 elseif("${DEVICE_NAME}" STREQUAL "JZ_H10") 230 elseif("${DEVICE_NAME}" STREQUAL "JZ_H10")
200 # 添加AudioDeal 音频处理模块 231 # 添加AudioDeal 音频处理模块
201 set(AUDIODEAL_MODULE VERSION_SWITCH_ON) 232 set(AUDIODEAL_MODULE VERSION_SWITCH_ON)
@@ -215,6 +246,12 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_H10") @@ -215,6 +246,12 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_H10")
215 # 添加FFMPEG及其附属模块 246 # 添加FFMPEG及其附属模块
216 set(FFMPEG_MODULE VERSION_SWITCH_ON) 247 set(FFMPEG_MODULE VERSION_SWITCH_ON)
217 248
  249 + #设备独立配置源文件
  250 + file(GLOB_RECURSE DEVICE_CONFOG_SRC ${ROOT_DIRS}JZsdk_Config/DeviceSample/JZ_H10_series/JZ_H10/*.c)
  251 + list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})
  252 +
  253 + message("h10基础配置完毕\n")
  254 +
218 elseif("${DEVICE_NAME}" STREQUAL "JZ_H10T") 255 elseif("${DEVICE_NAME}" STREQUAL "JZ_H10T")
219 256
220 # 添加AudioDeal 音频处理模块 257 # 添加AudioDeal 音频处理模块
@@ -232,6 +269,12 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_H10T") @@ -232,6 +269,12 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_H10T")
232 # 添加FFMPEG及其附属模块 269 # 添加FFMPEG及其附属模块
233 set(FFMPEG_MODULE VERSION_SWITCH_ON) 270 set(FFMPEG_MODULE VERSION_SWITCH_ON)
234 271
  272 + #设备独立配置源文件
  273 + file(GLOB_RECURSE DEVICE_CONFOG_SRC ${ROOT_DIRS}JZsdk_Config/DeviceSample/JZ_H10_series/JZ_H10T/*.c)
  274 + list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})
  275 +
  276 + message("h10t基础配置完毕\n")
  277 +
235 elseif("${DEVICE_NAME}" STREQUAL "JZ_H150S") 278 elseif("${DEVICE_NAME}" STREQUAL "JZ_H150S")
236 # 添加AudioDeal 音频处理模块 279 # 添加AudioDeal 音频处理模块
237 set(AUDIODEAL_MODULE VERSION_SWITCH_ON) 280 set(AUDIODEAL_MODULE VERSION_SWITCH_ON)
@@ -254,6 +297,12 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_H150S") @@ -254,6 +297,12 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_H150S")
254 # 添加FFMPEG及其附属模块 297 # 添加FFMPEG及其附属模块
255 set(FFMPEG_MODULE VERSION_SWITCH_ON) 298 set(FFMPEG_MODULE VERSION_SWITCH_ON)
256 299
  300 + #设备独立配置源文件
  301 + file(GLOB_RECURSE DEVICE_CONFOG_SRC ${ROOT_DIRS}JZsdk_Config/DeviceSample/JZ_H150S_H150T/*.c)
  302 + list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})
  303 +
  304 + message("h150s基础配置完毕\n")
  305 +
257 elseif("${DEVICE_NAME}" STREQUAL "JZ_H150T") 306 elseif("${DEVICE_NAME}" STREQUAL "JZ_H150T")
258 307
259 # 添加AudioDeal 音频处理模块 308 # 添加AudioDeal 音频处理模块
@@ -277,6 +326,12 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_H150T") @@ -277,6 +326,12 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_H150T")
277 # 添加FFMPEG及其附属模块 326 # 添加FFMPEG及其附属模块
278 set(FFMPEG_MODULE VERSION_SWITCH_ON) 327 set(FFMPEG_MODULE VERSION_SWITCH_ON)
279 328
  329 + #设备独立配置源文件
  330 + file(GLOB_RECURSE DEVICE_CONFOG_SRC ${ROOT_DIRS}JZsdk_Config/DeviceSample/JZ_H150S_H150T/*.c)
  331 + list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})
  332 +
  333 + message("h150t基础配置完毕\n")
  334 +
280 elseif("${DEVICE_NAME}" STREQUAL "JZ_C1") 335 elseif("${DEVICE_NAME}" STREQUAL "JZ_C1")
281 336
282 # 添加Gimbal 云台处理模块 337 # 添加Gimbal 云台处理模块
@@ -296,6 +351,13 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_C1") @@ -296,6 +351,13 @@ elseif("${DEVICE_NAME}" STREQUAL "JZ_C1")
296 351
297 # 添加昆腾模块 352 # 添加昆腾模块
298 set(LIB_KT_MODULE VERSION_SWITCH_ON) 353 set(LIB_KT_MODULE VERSION_SWITCH_ON)
  354 +
  355 + #设备独立配置源文件
  356 + file(GLOB_RECURSE DEVICE_CONFOG_SRC ${ROOT_DIRS}JZsdk_Config/DeviceSample/JZC1/*.c)
  357 + list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})
  358 +
  359 + message("C1基础配置完毕\n")
  360 +
299 endif() 361 endif()
300 362
301 message("***********************模组模块配置完毕*********************************\n") 363 message("***********************模组模块配置完毕*********************************\n")
@@ -22,13 +22,16 @@ static T_JZsdkReturnCode JZsdk_PrepareSystemEnvironment() @@ -22,13 +22,16 @@ static T_JZsdkReturnCode JZsdk_PrepareSystemEnvironment()
22 22
23 23
24 //初始化sdk 24 //初始化sdk
25 -T_JZsdkReturnCode JZsdk_LibInit() 25 +T_JZsdkReturnCode JZsdk_LibInit(int LogFlag)
26 { 26 {
27 //环境初始化 27 //环境初始化
28 JZsdk_PrepareSystemEnvironment(); 28 JZsdk_PrepareSystemEnvironment();
29 29
  30 + if (LogFlag == JZ_FLAGCODE_ON)
  31 + {
30 //1、初始化log 32 //1、初始化log
31 JZsdk_LoggerInit(); 33 JZsdk_LoggerInit();
  34 + }
32 35
33 //2、任务管理系统初始化 36 //2、任务管理系统初始化
34 TaskManagement_Init(); 37 TaskManagement_Init();
@@ -26,7 +26,7 @@ extern "C" { @@ -26,7 +26,7 @@ extern "C" {
26 /* Exported types ------------------------------------------------------------*/ 26 /* Exported types ------------------------------------------------------------*/
27 27
28 /* Exported functions --------------------------------------------------------*/ 28 /* Exported functions --------------------------------------------------------*/
29 -T_JZsdkReturnCode JZsdk_LibInit(); 29 +T_JZsdkReturnCode JZsdk_LibInit(int LogFlag);
30 30
31 31
32 #ifdef __cplusplus 32 #ifdef __cplusplus
@@ -21,6 +21,10 @@ unsigned char * JZsdk_DefineCode_GetPortName(int Port) @@ -21,6 +21,10 @@ unsigned char * JZsdk_DefineCode_GetPortName(int Port)
21 return "HAL数据"; 21 return "HAL数据";
22 break; 22 break;
23 23
  24 + case NET_DEV_1:
  25 + return "设备NET1";
  26 + break;
  27 +
24 case NO_SPECIFIED: 28 case NO_SPECIFIED:
25 return "无指定设备"; 29 return "无指定设备";
26 break; 30 break;
@@ -9,6 +9,7 @@ @@ -9,6 +9,7 @@
9 //特殊版本号 9 //特殊版本号
10 #define SPECIAL_NORMAL 0x01 //普通版本 10 #define SPECIAL_NORMAL 0x01 //普通版本
11 #define SPECIAL_DAOTONG 0x02 //道通版本 11 #define SPECIAL_DAOTONG 0x02 //道通版本
  12 +#define SPECIAL_H10_M300 0x03 //h10 m300版本
12 13
13 //软件模式 14 //软件模式
14 #define APP_PSDK 0x01 15 #define APP_PSDK 0x01
@@ -161,6 +161,22 @@ typedef enum { @@ -161,6 +161,22 @@ typedef enum {
161 JZ_INSCODE_5AFRAME_UPGRADE_TRANS = 0x10001103, //升级传输数据 161 JZ_INSCODE_5AFRAME_UPGRADE_TRANS = 0x10001103, //升级传输数据
162 JZ_INSCODE_5AFRAME_UPGRADE_END = 0x10001104, //升级传输结束 162 JZ_INSCODE_5AFRAME_UPGRADE_END = 0x10001104, //升级传输结束
163 163
  164 +
  165 + JZ_INSCODE_5AFRAME_CAMERA_VIDEO_PUSH_INDEX = 0x10001200, //设置视频推送索引
  166 + JZ_INSOCDE_5AFRAME_CAMERA_TAKE_PHOTO = 0x10001201, //拍照
  167 + JZ_INSCODE_5AFRAME_CAMERA_VIDEO_RECORD_START = 0x10001202, //录像开始
  168 + JZ_INSCODE_5AFRAME_CAMERA_VIDEO_RECORD_STOP = 0x10001203, //录像结束
  169 + JZ_INSCODE_5AFRAME_CAMERA_SHUTTER_CONTROL = 0x10001204, //快门控制
  170 + JZ_INSCODE_5AFRAME_CAMERA_FREEZE_CONTROL = 0x10001205, //冻结控制
  171 +
  172 + JZ_INSOCDE_5AFRAME_IRC_CORRECT_WAY = 0x10001300, //红外校准方式
  173 + JZ_INSCODE_5AFRAME_IRC_SPC_PARAM = 0x10001301, //单点参数
  174 + JZ_INSCODE_5AFRAME_IRC_TPC_PARAM = 0x10001302, //两点参数
  175 +
  176 + JZ_INSOCDE_5AFRAME_IRC_OUTPUT_COLOR_MODE = 0x10001400, //红外输出颜色模式
  177 + JZ_INSCODE_5AFRAME_IRC_PSEUDO_COLOR_PARAM = 0x10001401, //红外伪彩色
  178 + JZ_INSCODE_5AFRAME_IRC_GAS_ENHANCE_PARAM = 0x10001402, //红外气体增强
  179 +
164 //5B类帧 180 //5B类帧
165 JZ_INSCODE_5BFRAME_FRAME = 0x10004000, //发送帧 181 JZ_INSCODE_5BFRAME_FRAME = 0x10004000, //发送帧
166 182
@@ -48,9 +48,10 @@ typedef enum JZsdk_Widget_Control @@ -48,9 +48,10 @@ typedef enum JZsdk_Widget_Control
48 48
49 49
50 JZSDK_WIDGET_GAS_ENHANCEMENT_CORRECT = 0x0036, //气体增强纠正 50 JZSDK_WIDGET_GAS_ENHANCEMENT_CORRECT = 0x0036, //气体增强纠正
  51 + JZSDK_WIDGET_IRC_MARK_LOW_AND_HIGH_DATA = 0x0037, //红外标记高低数据
51 52
52 - JZSDK_WIDGET_GAS_ENHANCEMENT_CORRECT_HIGH_CALIBRATION = 0x0037, //气体增强纠正高温校准  
53 - JZSDK_WIDGET_GAS_ENHANCEMENT_CORRECT_LOW_CALIBRATION = 0x0038, //气体增强纠正低温校准 53 + JZSDK_WIDGET_GAS_ENHANCEMENT_CORRECT_HIGH_CALIBRATION = 0x0038, //气体增强纠正高温校准
  54 + JZSDK_WIDGET_GAS_ENHANCEMENT_CORRECT_LOW_CALIBRATION = 0x0039, //气体增强纠正低温校准
54 55
55 56
56 57
@@ -47,6 +47,8 @@ typedef uint64_t U64_t; @@ -47,6 +47,8 @@ typedef uint64_t U64_t;
47 typedef double F64_t; 47 typedef double F64_t;
48 typedef float F32_t; 48 typedef float F32_t;
49 49
  50 +#define JZSDK_SINGLE_THREAD 0 //jz单线程
  51 +#define JZSDK_MULTI_THREAD 1 //jz多线程
50 52
51 //线程权柄 53 //线程权柄
52 typedef void *T_JZTaskHandle; 54 typedef void *T_JZTaskHandle;
@@ -672,6 +672,85 @@ static int Comparison_5AFRAME_FirstLevelCode_0xA1(char *getdata) @@ -672,6 +672,85 @@ static int Comparison_5AFRAME_FirstLevelCode_0xA1(char *getdata)
672 } 672 }
673 673
674 674
  675 +static int Comparison_5AFRAME_FirstLevelCode_0x90(char *getdata)
  676 +{
  677 + switch (getdata[8])
  678 + {
  679 + case 0x00:
  680 + return JZ_INSCODE_5AFRAME_CAMERA_VIDEO_PUSH_INDEX;
  681 + break;
  682 +
  683 + case 0x01:
  684 + return JZ_INSOCDE_5AFRAME_CAMERA_TAKE_PHOTO;
  685 + break;
  686 +
  687 + case 0x02:
  688 + return JZ_INSCODE_5AFRAME_CAMERA_VIDEO_RECORD_START;
  689 + break;
  690 +
  691 + case 0x03:
  692 + return JZ_INSCODE_5AFRAME_CAMERA_VIDEO_RECORD_STOP;
  693 + break;
  694 +
  695 + case 0x04:
  696 + return JZ_INSCODE_5AFRAME_CAMERA_SHUTTER_CONTROL;
  697 + break;
  698 +
  699 + case 0x05:
  700 + return JZ_INSCODE_5AFRAME_CAMERA_FREEZE_CONTROL;
  701 + break;
  702 +
  703 + default:
  704 + return JZ_ERROR_SYSTEM_FRAME_ERROR;
  705 + break;
  706 + }
  707 +}
  708 +
  709 +static int Comparison_5AFRAME_FirstLevelCode_0x93(char *getdata)
  710 +{
  711 + switch (getdata[8])
  712 + {
  713 + case 0x00:
  714 + return JZ_INSOCDE_5AFRAME_IRC_CORRECT_WAY;
  715 + break;
  716 +
  717 + case 0x10:
  718 + return JZ_INSCODE_5AFRAME_IRC_SPC_PARAM;
  719 + break;
  720 +
  721 + case 0x11:
  722 + return JZ_INSCODE_5AFRAME_IRC_TPC_PARAM;
  723 + break;
  724 +
  725 + default:
  726 + return JZ_ERROR_SYSTEM_FRAME_ERROR;
  727 + break;
  728 + }
  729 +}
  730 +
  731 +static int Comparison_5AFRAME_FirstLevelCode_0x94(char *getdata)
  732 +{
  733 + switch (getdata[8])
  734 + {
  735 + case 0x00:
  736 + return JZ_INSOCDE_5AFRAME_IRC_OUTPUT_COLOR_MODE;
  737 + break;
  738 +
  739 + case 0x10:
  740 + return JZ_INSCODE_5AFRAME_IRC_PSEUDO_COLOR_PARAM;
  741 + break;
  742 +
  743 + case 0x11:
  744 + return JZ_INSCODE_5AFRAME_IRC_GAS_ENHANCE_PARAM;
  745 + break;
  746 +
  747 + default:
  748 + return JZ_ERROR_SYSTEM_FRAME_ERROR;
  749 + break;
  750 + }
  751 +}
  752 +
  753 +
675 /****************************************************************** 754 /******************************************************************
676 755
677 回复帧对比 756 回复帧对比
@@ -813,6 +892,21 @@ int JZsdk_5AFrameComparsion(char *getdata, int len) @@ -813,6 +892,21 @@ int JZsdk_5AFrameComparsion(char *getdata, int len)
813 return Comparison_5AFRAME_FirstLevelCode_0x6F(getdata); 892 return Comparison_5AFRAME_FirstLevelCode_0x6F(getdata);
814 break; 893 break;
815 894
  895 + //一级功能码 90
  896 + case 0x90:
  897 + return Comparison_5AFRAME_FirstLevelCode_0x90(getdata);
  898 + break;
  899 +
  900 + //一级功能码 93
  901 + case 0x93:
  902 + return Comparison_5AFRAME_FirstLevelCode_0x93(getdata);
  903 + break;
  904 +
  905 + //一级功能码 92
  906 + case 0x94:
  907 + return Comparison_5AFRAME_FirstLevelCode_0x94(getdata);
  908 + break;
  909 +
816 //一级功能码 升级功能 910 //一级功能码 升级功能
817 case 0xA1: 911 case 0xA1:
818 return Comparison_5AFRAME_FirstLevelCode_0xA1(getdata); 912 return Comparison_5AFRAME_FirstLevelCode_0xA1(getdata);
@@ -820,6 +914,7 @@ int JZsdk_5AFrameComparsion(char *getdata, int len) @@ -820,6 +914,7 @@ int JZsdk_5AFrameComparsion(char *getdata, int len)
820 914
821 //一级功能码 915 //一级功能码
822 916
  917 +
823 /********************************************************************************************************************************************************* 918 /*********************************************************************************************************************************************************
824 * 919 *
825 * 920 *
@@ -474,9 +474,9 @@ int JZsdk_GetFrameTemplate(int InsCode ,char *str, int *str_len) @@ -474,9 +474,9 @@ int JZsdk_GetFrameTemplate(int InsCode ,char *str, int *str_len)
474 474
475 case JZ_INSCODE_5BFRAME_OPUS_DECODE_STATUS: 475 case JZ_INSCODE_5BFRAME_OPUS_DECODE_STATUS:
476 { 476 {
477 - char sendbuf[13] = { 0x5b, 0x5b, 0x77, 0x00, 0x0D, 0x00, 0x00, 0x59, 0xf2, 0x00, 0x00, 0x00, 0x23};  
478 - memcpy(str, sendbuf, 13);  
479 - *str_len = 13; 477 + char sendbuf[12] = { 0x5b, 0x5b, 0x77, 0x00, 0x0c, 0x00, 0x00, 0x59, 0xf2, 0x00, 0x00, 0x23};
  478 + memcpy(str, sendbuf, 12);
  479 + *str_len = 12;
480 } 480 }
481 break; 481 break;
482 482
@@ -420,11 +420,18 @@ T_JZsdkReturnCode JZsdk_Osal_Rename(const char *oldFilePath, const char *newFile @@ -420,11 +420,18 @@ T_JZsdkReturnCode JZsdk_Osal_Rename(const char *oldFilePath, const char *newFile
420 return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER; 420 return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER;
421 } 421 }
422 422
423 - ret = rename(oldFilePath, newFilePath); 423 + unsigned char cmd[256] = {0};
  424 + sprintf((char *)cmd, "mv %s %s", oldFilePath, newFilePath);
  425 + ret = system((char *)cmd);
424 if (ret < 0) { 426 if (ret < 0) {
425 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; 427 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
426 } 428 }
427 429
  430 + // ret = rename(oldFilePath, newFilePath);
  431 + // if (ret < 0) {
  432 + // return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  433 + // }
  434 +
428 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 435 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
429 } 436 }
430 437
1 -#include <stdio.h>  
2 -#include <stdlib.h>  
3 #include <pthread.h> 1 #include <pthread.h>
4 -#include <string.h>  
5 -  
6 #include "JZsdkLib.h" 2 #include "JZsdkLib.h"
7 3
8 -#include "Hal_Send/HalSend.h"  
9 -  
10 #include "BaseConfig.h" 4 #include "BaseConfig.h"
11 5
12 -#include "ircut.h"  
13 -#include "Gimbal/Gimbal.h" 6 +#include "Hal_Send/HalSend.h"
  7 +#include "JZsdk_Hal.h"
14 8
  9 +#include "ircut.h"
15 #include "Psdk_UI_io.h" 10 #include "Psdk_UI_io.h"
16 -  
17 -#include "Lighting_InAndOut.h"  
18 -#include "JZsdk_network/JZsdk_network.h"  
19 -  
20 #include "JZsdk_haldata_deal/JZsdk_data_transmisson.h" 11 #include "JZsdk_haldata_deal/JZsdk_data_transmisson.h"
21 -#include "MediaProc/MediaProc.h"  
22 #include "UI_control/WidegMgmt/JZsdk_Widget.h" 12 #include "UI_control/WidegMgmt/JZsdk_Widget.h"
23 -#include "DeviceConfig/DeviceConfig.h" 13 +#include "DeviceSample/DeviceSample.h"
24 #include "CommonMod/CommonMod.h" 14 #include "CommonMod/CommonMod.h"
25 15
26 -#include "JZsdk_Hal.h"  
27 -  
28 #if APP_VERSION == APP_PSDK 16 #if APP_VERSION == APP_PSDK
29 -  
30 -#include "fc_subscription/test_fc_subscription.h"  
31 - 17 + #include "fc_subscription/test_fc_subscription.h"
32 #endif 18 #endif
33 19
34 #include "DeviceInfo/DeviceInfo.h" 20 #include "DeviceInfo/DeviceInfo.h"
35 21
36 #ifdef MEGAPHONE_CONFIG_STATUS_ON 22 #ifdef MEGAPHONE_CONFIG_STATUS_ON
37 - #include "AudioDeal/AudioDeal.h"  
38 #include "Megaphone/Megaphone.h" 23 #include "Megaphone/Megaphone.h"
39 extern int MegaphoneStatusFlag; 24 extern int MegaphoneStatusFlag;
40 #endif 25 #endif
41 26
42 -#ifdef SIDE_LASER_STATUS_ON  
43 - #include "SideLaser/SideLaser.h"  
44 -#endif  
45 -  
46 static int Main_WorkMode(); 27 static int Main_WorkMode();
47 static void *Main_WorkModeTask(void *arg); 28 static void *Main_WorkModeTask(void *arg);
48 static int WorkMode = JZ_FLAGCODE_OFF; 29 static int WorkMode = JZ_FLAGCODE_OFF;
49 30
50 31
51 -static int g_All_filter_Mode = JZ_FLAGCODE_OFF; //用于m30的滤波开关  
52 static int StartupPriorityNum = JZ_FLAGCODE_OFF; //优先启动项值 32 static int StartupPriorityNum = JZ_FLAGCODE_OFF; //优先启动项值
53 33
54 static int g_device_InitFlag = JZ_FLAGCODE_OFF; //基础配置初始化标志位,该标志位用于判断设备是否已经完成准备就绪,目前主要影响的是预设任务 34 static int g_device_InitFlag = JZ_FLAGCODE_OFF; //基础配置初始化标志位,该标志位用于判断设备是否已经完成准备就绪,目前主要影响的是预设任务
55 static int g_baseconfig_InitFlag = JZ_FLAGCODE_OFF; //基础配置初始化标志位,该标志位用于判断设备是否已经完成baseconfig 目前用处影响g_device_InitFlag 35 static int g_baseconfig_InitFlag = JZ_FLAGCODE_OFF; //基础配置初始化标志位,该标志位用于判断设备是否已经完成baseconfig 目前用处影响g_device_InitFlag
56 static int g_Main_WorkMode_InitFlag = JZ_FLAGCODE_OFF; //基础配置初始化标志位,该标志位用于判断设备是否已经完成连接与启动播放 目前用处影响g_device_InitFlag 36 static int g_Main_WorkMode_InitFlag = JZ_FLAGCODE_OFF; //基础配置初始化标志位,该标志位用于判断设备是否已经完成连接与启动播放 目前用处影响g_device_InitFlag
57 37
58 -/*******************  
59 - *  
60 - * mode get 是未获取 m30滤波开关  
61 - * 其他值为set+get  
62 - *  
63 - * ********************/  
64 -T_JZsdkReturnCode Main_M30_all_filter_mode(int *mode)  
65 -{  
66 -  
67 -//喊话器功能被打开时  
68 -#ifdef MEGAPHONE_CONFIG_STATUS_ON  
69 - if (*mode == JZ_FLAGCODE_GET)  
70 - {  
71 - *mode = g_All_filter_Mode;  
72 - printf("滤波模式获取%d\n",*mode);  
73 - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;  
74 - }  
75 - else if ( (*mode != JZ_FLAGCODE_ON) && (*mode != JZ_FLAGCODE_OFF) )  
76 - {  
77 - return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;  
78 - }  
79 - else  
80 - {  
81 - printf("滤波模式设置%d\n",*mode);  
82 - g_All_filter_Mode = *mode;  
83 - if (*mode == JZ_FLAGCODE_ON)  
84 - {  
85 - //先关闭播放  
86 - //Megaphone_StopPlay(JZ_FLAGCODE_OFF);  
87 -  
88 - //修改滤波  
89 - AudioDeal_SetFilterMode(0x01);  
90 - }  
91 - else  
92 - {  
93 - //先关闭播放  
94 - //Megaphone_StopPlay(JZ_FLAGCODE_OFF);  
95 -  
96 - //修改滤波  
97 - AudioDeal_SetFilterMode(0x00);  
98 - }  
99 -  
100 - }  
101 -#endif  
102 - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;  
103 -}  
104 38
105 /*** ************************* ************************* 39 /*** ************************* *************************
106 * 40 *
@@ -136,553 +70,6 @@ int Main_Device_Wheather_Use() @@ -136,553 +70,6 @@ int Main_Device_Wheather_Use()
136 } 70 }
137 71
138 72
139 -T_JZsdkReturnCode Main_APP_Psdk()  
140 -{  
141 - int value[5] = {0, 0, 0, 0, 0};  
142 -  
143 - //sdklib加载  
144 - JZsdk_LibInit();  
145 -  
146 - //hal加载  
147 - JZsdk_Hal_Init();  
148 -  
149 - JZSDK_LOG_INFO("%x,PsdkVersion%x.%x.%x.%x\n",DEVICE_VERSION,MAJOR_VERSION, MINOR_VERSION, MODIFY_VERSION, DEBUG_VERSION);  
150 -  
151 - //通用模块初始化  
152 - CommonMod_Init();  
153 -  
154 - //引脚初始化  
155 - Ircut_Init();  
156 -  
157 - //设备信息初始化  
158 - DeviceInfo_Init();  
159 -  
160 - //工作模式设置函数,用于超时,及播放启动语音等  
161 - Main_WorkMode();  
162 -  
163 - //外接传输模块  
164 - JZsdk_data_transmisson_Receive_Init();  
165 -  
166 - //喊话器功能被打开时  
167 -#ifdef MEGAPHONE_CONFIG_STATUS_ON  
168 -  
169 - //音频库初始化  
170 - AudioDeal_Init();  
171 -  
172 -#endif  
173 -  
174 - if (DEVICE_VERSION == TF_A1)  
175 - {  
176 - //串口设备1初始化  
177 - //value[0] = UART_DEV1_BITRATE;  
178 - //JZsdk_HalPort_Init(UART_DEV_1, value);  
179 -  
180 - //串口设备2初始化  
181 - value[0] = UART_DEV2_BITRATE;  
182 - JZsdk_HalPort_Init(UART_DEV_2, value);  
183 -  
184 - //喊话器初始化  
185 - Megaphone_Init();  
186 -  
187 - //云台初始化  
188 - Gimbal_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT);  
189 -  
190 - //灯类初始化  
191 - Lighting_Init();  
192 -  
193 - delayMs(1000);  
194 -  
195 - //消息订阅初始化  
196 - HalSend_type1Send_MessageSubcription_Control(UART_DEV_2, JZ_FLAGCODE_ON);  
197 - }  
198 -  
199 - else if (DEVICE_VERSION == JZ_H1E)  
200 - {  
201 - //串口设备1初始化  
202 - //value[0] = UART_DEV1_BITRATE;  
203 - //JZsdk_HalPort_Init(UART_DEV_1, value);  
204 -  
205 - //喊话器初始化  
206 - Megaphone_Init();  
207 - }  
208 -  
209 - else if (DEVICE_VERSION == JZ_H1T)  
210 - {  
211 - //串口设备1初始化  
212 - //value[0] = UART_DEV1_BITRATE;  
213 - //JZsdk_HalPort_Init(UART_DEV_1, value);  
214 -  
215 - //4g设备初始化  
216 - value[0] = COMM_4G_UART_BITRATE;  
217 - JZsdk_HalPort_Init(UART_4G, value);  
218 -  
219 - //喊话器初始化  
220 - Megaphone_Init();  
221 -  
222 - //云台初始化  
223 - Gimbal_Init(JZ_MODULE_CONTROL_WAY_TRANSPARENT);  
224 - }  
225 -  
226 - else if (DEVICE_VERSION == JZ_H150S || DEVICE_VERSION == JZ_H150T)  
227 - {  
228 - //串口设备1初始化  
229 - //value[0] = UART_DEV1_BITRATE;  
230 - //JZsdk_HalPort_Init(UART_DEV_1, value);  
231 -  
232 - if (DEVICE_VERSION == JZ_H150T)  
233 - {  
234 - //4g设备初始化  
235 - value[0] = COMM_4G_UART_BITRATE;  
236 - JZsdk_HalPort_Init(UART_4G, value);  
237 - }  
238 -  
239 - //喊话器初始化  
240 - Megaphone_Init();  
241 -  
242 - //云台初始化  
243 - Gimbal_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT);  
244 -  
245 - //相机初始化  
246 - MediaProc_Init();  
247 - }  
248 -  
249 - else if (DEVICE_VERSION == JZ_H10)  
250 - {  
251 - //串口设备1初始化  
252 - //value[0] = UART_DEV1_BITRATE;  
253 - //JZsdk_HalPort_Init(UART_DEV_1, value);  
254 -  
255 - //喊话器初始化  
256 - Megaphone_Init();  
257 -  
258 - //云台初始化  
259 - Gimbal_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT);  
260 - }  
261 -  
262 - else if (DEVICE_VERSION == JZ_H10T)  
263 - {  
264 - //串口设备1初始化  
265 - //value[0] = UART_DEV1_BITRATE;  
266 - //JZsdk_HalPort_Init(UART_DEV_1, value);  
267 -  
268 - //4g设备初始化  
269 - value[0] = COMM_4G_UART_BITRATE;  
270 - JZsdk_HalPort_Init(UART_4G, value);  
271 -  
272 - //喊话器初始化  
273 - Megaphone_Init();  
274 -  
275 - //云台初始化  
276 - Gimbal_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT);  
277 - }  
278 -  
279 - else if (DEVICE_VERSION == JZ_U3)  
280 - {  
281 - //串口设备1初始化  
282 - //value[0] = UART_DEV1_BITRATE;  
283 - //JZsdk_HalPort_Init(UART_DEV_1, value);  
284 -  
285 - //串口设备2初始化  
286 - value[0] = UART_DEV2_BITRATE;  
287 - JZsdk_HalPort_Init(UART_DEV_2, value);  
288 -  
289 - //喊话器初始化  
290 - Megaphone_Init();  
291 -  
292 - //云台初始化  
293 - Gimbal_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT);  
294 -  
295 - //灯类初始化  
296 - Lighting_Init();  
297 -  
298 - delayMs(1000);  
299 -  
300 - //消息订阅初始化  
301 - HalSend_type1Send_MessageSubcription_Control(UART_DEV_2, JZ_FLAGCODE_ON);  
302 - }  
303 -  
304 - else if (DEVICE_VERSION == JZ_U3S)  
305 - {  
306 - //串口设备1初始化  
307 - //value[0] = UART_DEV1_BITRATE;  
308 - //JZsdk_HalPort_Init(UART_DEV_1, value);  
309 -  
310 - //串口设备2初始化  
311 - value[0] = UART_DEV2_BITRATE;  
312 - JZsdk_HalPort_Init(UART_DEV_2, value);  
313 -  
314 - //喊话器初始化  
315 - Megaphone_Init();  
316 -  
317 - //云台初始化  
318 - Gimbal_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT);  
319 -  
320 - //灯类初始化  
321 - Lighting_Init();  
322 -#ifdef SIDE_LASER_STATUS_ON  
323 - //侧边激光初始化  
324 - SideLaser_Init();  
325 -#endif  
326 - delayMs(1000);  
327 -  
328 - //消息订阅初始化  
329 - HalSend_type1Send_MessageSubcription_Control(UART_DEV_2, JZ_FLAGCODE_ON);  
330 - }  
331 -  
332 - else if (DEVICE_VERSION == JZ_U3D)  
333 - {  
334 - //串口设备1初始化  
335 - //value[0] = UART_DEV1_BITRATE;  
336 - //JZsdk_HalPort_Init(UART_DEV_1, value);  
337 -  
338 - //串口设备2初始化  
339 - value[0] = UART_DEV2_BITRATE;  
340 - JZsdk_HalPort_Init(UART_DEV_2, value);  
341 -  
342 - //喊话器初始化  
343 - Megaphone_Init();  
344 -  
345 - //云台初始化  
346 - Gimbal_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT);  
347 -  
348 - //灯类初始化  
349 - Lighting_Init();  
350 -  
351 - delayMs(1000);  
352 -  
353 - //消息订阅初始化  
354 - HalSend_type1Send_MessageSubcription_Control(UART_DEV_2, JZ_FLAGCODE_ON);  
355 - }  
356 -  
357 - else if (DEVICE_VERSION == JZ_U30)  
358 - {  
359 - //串口设备1初始化  
360 - //value[0] = UART_DEV1_BITRATE;  
361 - //JZsdk_HalPort_Init(UART_DEV_1, value);  
362 -  
363 - //串口设备2初始化  
364 - value[0] = UART_DEV2_BITRATE;  
365 - JZsdk_HalPort_Init(UART_DEV_2, value);  
366 -  
367 - //喊话器初始化  
368 - Megaphone_Init();  
369 -  
370 - //云台初始化  
371 - Gimbal_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT);  
372 -  
373 - //灯类初始化  
374 - Lighting_Init();  
375 -  
376 - delayMs(1000);  
377 -  
378 - //消息订阅初始化  
379 - HalSend_type1Send_MessageSubcription_Control(UART_DEV_2, JZ_FLAGCODE_ON);  
380 - }  
381 -  
382 - else if (DEVICE_VERSION == JZ_C1)  
383 - {  
384 - //初始化C1  
385 - JZC1_Init();  
386 - }  
387 -  
388 -  
389 - //初始化控件  
390 - JZSDK_WidgetMgMT_Init();  
391 -  
392 - //初始化app模式  
393 - JZsdk_HalPort_SetUseFlag(DEVICE_PSDK ,JZ_FLAGCODE_ON);  
394 -  
395 - Main_WorkModeSet(JZ_FLAGCODE_ON);  
396 -  
397 - g_baseconfig_InitFlag = JZ_FLAGCODE_ON;  
398 -}  
399 -  
400 -  
401 -  
402 -int Main_APP_Uart()  
403 -{  
404 - int value[5] = {0, 0, 0, 0, 0};  
405 -  
406 - //lib库初始化  
407 - JZsdk_LibInit();  
408 -  
409 - JZsdk_Hal_Init();  
410 -  
411 - JZSDK_LOG_INFO("0x%x,UartVersion%x.%x.%x.%x\n",DEVICE_VERSION,MAJOR_VERSION, MINOR_VERSION, MODIFY_VERSION, DEBUG_VERSION);  
412 -  
413 - //通用模块  
414 - CommonMod_Init();  
415 -  
416 - //引脚初始化  
417 - Ircut_Init();  
418 -  
419 - //设备信息初始化  
420 - DeviceInfo_Init();  
421 -  
422 - //工作模式设置函数,用于超时,及播放启动语音等  
423 - Main_WorkMode();  
424 -  
425 - //喊话器功能被打开时  
426 -#ifdef MEGAPHONE_CONFIG_STATUS_ON  
427 - //音频库初始化  
428 - AudioDeal_Init();  
429 -#endif  
430 -  
431 - if (DEVICE_VERSION == JZ_H1E)  
432 - {  
433 - //串口设备1初始化  
434 - value[0] = UART_DEV1_BITRATE;  
435 - JZsdk_HalPort_Init(UART_DEV_1, value);  
436 -  
437 - //喊话器初始化  
438 - Megaphone_Init();  
439 - }  
440 -  
441 - if (DEVICE_VERSION == JZ_H1T)  
442 - {  
443 - //串口设备1初始化  
444 - value[0] = UART_DEV1_BITRATE;  
445 - JZsdk_HalPort_Init(UART_DEV_1, value);  
446 -  
447 - //4g设备初始化  
448 - value[0] = COMM_4G_UART_BITRATE;  
449 - JZsdk_HalPort_Init(UART_4G, value);  
450 -  
451 - //喊话器初始化  
452 - Megaphone_Init();  
453 -  
454 - //云台初始化  
455 - Gimbal_Init(JZ_MODULE_CONTROL_WAY_TRANSPARENT);  
456 -  
457 - // //测试增加选项  
458 - // //开启循环  
459 - // JZsdk_Uart_audio_PlayLoop(UART_DEV_1, 1);  
460 -  
461 - // //设置音量  
462 - // JZsdk_Uart_Set_Volume(UART_DEV_1, 50);  
463 - }  
464 -  
465 - if (DEVICE_VERSION == JZ_H150S || DEVICE_VERSION == JZ_H150T)  
466 - {  
467 - //串口设备1初始化  
468 - value[0] = UART_DEV1_BITRATE;  
469 - JZsdk_HalPort_Init(UART_DEV_1, value);  
470 -  
471 - //网口初始化  
472 - JZsdk_NetWork_Init();  
473 -  
474 - if (DEVICE_VERSION == JZ_H150T)  
475 - {  
476 - //4g设备初始化  
477 - value[0] = COMM_4G_UART_BITRATE;  
478 - JZsdk_HalPort_Init(UART_4G, value);  
479 - }  
480 -  
481 - //云台初始化  
482 - Gimbal_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT);  
483 -  
484 - //相机初始化  
485 - MediaProc_Init();  
486 -  
487 - //喊话器初始化  
488 - Megaphone_Init();  
489 - }  
490 -  
491 - if (DEVICE_VERSION == JZ_H10)  
492 - {  
493 - //串口设备1初始化  
494 - value[0] = UART_DEV1_BITRATE;  
495 - JZsdk_HalPort_Init(UART_DEV_1, value);  
496 -  
497 - //H10和10t固定打开滤波  
498 - int filter_mode = JZ_FLAGCODE_ON;  
499 - Main_M30_all_filter_mode(&filter_mode);  
500 -  
501 - //喊话器初始化  
502 - Megaphone_Init();  
503 -  
504 - //云台初始化  
505 - Gimbal_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT);  
506 - }  
507 -  
508 - if (DEVICE_VERSION == JZ_H10T)  
509 - {  
510 - //串口设备1初始化  
511 - value[0] = UART_DEV1_BITRATE;  
512 - JZsdk_HalPort_Init(UART_DEV_1, value);  
513 -  
514 - //4g设备初始化  
515 - value[0] = COMM_4G_UART_BITRATE;  
516 - JZsdk_HalPort_Init(UART_4G, value);  
517 -  
518 - //H10和10t固定打开滤波  
519 - int filter_mode = JZ_FLAGCODE_ON;  
520 - Main_M30_all_filter_mode(&filter_mode);  
521 -  
522 - //喊话器初始化  
523 - Megaphone_Init();  
524 -  
525 - //云台初始化  
526 - Gimbal_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT);  
527 - }  
528 -  
529 - if (DEVICE_VERSION == JZ_U3)  
530 - {  
531 - //串口设备1初始化  
532 - value[0] = UART_DEV1_BITRATE;  
533 - JZsdk_HalPort_Init(UART_DEV_1, value);  
534 -  
535 - //串口设备2初始化  
536 - value[0] = UART_DEV2_BITRATE;  
537 - JZsdk_HalPort_Init(UART_DEV_2, value);  
538 -  
539 - //喊话器初始化  
540 - Megaphone_Init();  
541 -  
542 - //云台初始化  
543 - Gimbal_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT);  
544 -  
545 - //灯类初始化  
546 - Lighting_Init();  
547 -  
548 - delayMs(1000);  
549 -  
550 - //消息订阅初始化  
551 - HalSend_type1Send_MessageSubcription_Control(UART_DEV_2, JZ_FLAGCODE_OFF);  
552 -  
553 - // //测试需要开启亮度  
554 - // JZsdk_Uart_SearchLight_Control(UART_DEV_1, 1);  
555 - // JZsdk_Uart_SearchLight_Lumen(UART_DEV_1, 20, 20);  
556 -  
557 - }  
558 -  
559 - else if (DEVICE_VERSION == JZ_U3S)  
560 - {  
561 - //串口设备1初始化  
562 - value[0] = UART_DEV1_BITRATE;  
563 - JZsdk_HalPort_Init(UART_DEV_1, value);  
564 -  
565 - //串口设备2初始化  
566 - value[0] = UART_DEV2_BITRATE;  
567 - JZsdk_HalPort_Init(UART_DEV_2, value);  
568 -  
569 - //喊话器初始化  
570 - Megaphone_Init();  
571 -  
572 - //云台初始化  
573 - Gimbal_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT);  
574 -  
575 - //灯类初始化  
576 - Lighting_Init();  
577 -#ifdef SIDE_LASER_STATUS_ON  
578 - //侧边激光初始化  
579 - SideLaser_Init();  
580 -#endif  
581 - delayMs(1000);  
582 -  
583 - //消息订阅初始化  
584 - HalSend_type1Send_MessageSubcription_Control(UART_DEV_2, JZ_FLAGCODE_ON);  
585 - }  
586 -  
587 - else if (DEVICE_VERSION == JZ_U3D)  
588 - {  
589 - //串口设备1初始化  
590 - value[0] = UART_DEV1_BITRATE;  
591 - JZsdk_HalPort_Init(UART_DEV_1, value);  
592 -  
593 - //串口设备2初始化  
594 - value[0] = UART_DEV2_BITRATE;  
595 - JZsdk_HalPort_Init(UART_DEV_2, value);  
596 -  
597 - //喊话器初始化  
598 - Megaphone_Init();  
599 -  
600 - //云台初始化  
601 - Gimbal_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT);  
602 -  
603 - //灯类初始化  
604 - Lighting_Init();  
605 -  
606 - delayMs(1000);  
607 -  
608 - //消息订阅初始化  
609 - HalSend_type1Send_MessageSubcription_Control(UART_DEV_2, JZ_FLAGCODE_ON);  
610 -  
611 - // delayS(3);  
612 -  
613 - // JZSDK_LOG_INFO("开起发光");  
614 -  
615 - // //开灯  
616 - // UIcontrol_SearchLightControl(UART_DEV_1, 0x02);  
617 - // UIcontrol_Set_SearchLightLumen(UART_DEV_1, 1, 100, 100);  
618 -  
619 - }  
620 -  
621 - else if (DEVICE_VERSION == JZ_U30)  
622 - {  
623 - //串口设备1初始化  
624 - value[0] = UART_DEV1_BITRATE;  
625 - JZsdk_HalPort_Init(UART_DEV_1, value);  
626 -  
627 - //串口设备2初始化  
628 - value[0] = UART_DEV2_BITRATE;  
629 - JZsdk_HalPort_Init(UART_DEV_2, value);  
630 -  
631 - //喊话器初始化  
632 - Megaphone_Init();  
633 -  
634 - //云台初始化  
635 - Gimbal_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT);  
636 -  
637 - //灯类初始化  
638 - Lighting_Init();  
639 -  
640 - delayMs(1000);  
641 -  
642 - //消息订阅初始化  
643 - HalSend_type1Send_MessageSubcription_Control(UART_DEV_2, JZ_FLAGCODE_ON);  
644 - }  
645 -  
646 - if (DEVICE_VERSION == TF_A1)  
647 - {  
648 - //串口设备1初始化  
649 - value[0] = UART_DEV1_BITRATE;  
650 - JZsdk_HalPort_Init(UART_DEV_1, value);  
651 -  
652 - //串口设备2初始化  
653 - value[0] = UART_DEV2_BITRATE;  
654 - JZsdk_HalPort_Init(UART_DEV_2, value);  
655 -  
656 - //喊话器初始化  
657 - Megaphone_Init();  
658 -  
659 - //云台初始化  
660 - Gimbal_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT);  
661 -  
662 - //消息订阅初始化  
663 - HalSend_type1Send_MessageSubcription_Control(UART_DEV_2, JZ_FLAGCODE_ON);  
664 - }  
665 -  
666 - g_baseconfig_InitFlag = JZ_FLAGCODE_ON;  
667 -  
668 - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;  
669 -}  
670 -  
671 -int Main_TestAPP()  
672 -{  
673 - int value[5] = {0, 0, 0, 0, 0};  
674 -  
675 - JZsdk_LibInit();  
676 -  
677 - JZsdk_Hal_Init();  
678 -  
679 - CommonMod_Init();  
680 -  
681 - //串口设备1初始化  
682 - value[0] = UART_DEV1_BITRATE;  
683 - JZsdk_HalPort_Init(UART_DEV_1, value);  
684 -}  
685 -  
686 //JZ_FLAGCODE_GET为返回工作值,其他值为设置 73 //JZ_FLAGCODE_GET为返回工作值,其他值为设置
687 int Main_WorkModeSet(int mode) 74 int Main_WorkModeSet(int mode)
688 { 75 {
@@ -856,6 +243,171 @@ static void *Main_WorkModeTask(void *arg) @@ -856,6 +243,171 @@ static void *Main_WorkModeTask(void *arg)
856 } 243 }
857 244
858 245
  246 +
  247 +
  248 +
  249 +/************************************************************************************************************************************************
  250 + *
  251 + *
  252 + *
  253 + *
  254 + *
  255 + * 初始化
  256 + *
  257 + *
  258 + *
  259 + *
  260 +************************************************************************************************************************************************/
  261 +static T_JZsdkReturnCode DeviceSample_init(int mode)
  262 +{
  263 + //a1加载
  264 + #if DEVICE_VERSION == JZ_A1
  265 + TF_a1_init(mode);
  266 + #endif
  267 +
  268 + //h1e加载
  269 + #if DEVICE_VERSION == JZ_H1E
  270 + JZ_h1e_init(mode);
  271 + #endif
  272 +
  273 + //h1t加载
  274 + #if DEVICE_VERSION == JZ_H1T
  275 + JZ_h1t_init(mode);
  276 + #endif
  277 +
  278 + //h10加载
  279 + #if DEVICE_VERSION == JZ_H10
  280 + JZ_h10_init(mode);
  281 + #endif
  282 +
  283 + //h10t加载
  284 + #if DEVICE_VERSION == JZ_H10T
  285 + JZ_h10t_init(mode);
  286 + #endif
  287 +
  288 + //h150s h150t加载
  289 + #if DEVICE_VERSION == JZ_H150S || DEVICE_VERSION == JZ_H150T
  290 + JZ_h150s_h150t_init(mode);
  291 + #endif
  292 +
  293 + //u3加载
  294 + #if DEVICE_VERSION == JZ_U3
  295 + JZ_u3_init(mode);
  296 + #endif
  297 +
  298 + //u3s加载
  299 + #if DEVICE_VERSION == JZ_U3S
  300 + JZ_u3s_init(mode);
  301 + #endif
  302 +
  303 + //u3d加载
  304 + #if DEVICE_VERSION == JZ_U3D
  305 + JZ_u3d_init(mode);
  306 + #endif
  307 +
  308 + //u30加载
  309 + #if DEVICE_VERSION == JZ_U30
  310 + JZ_u30_init(mode);
  311 + #endif
  312 +
  313 + //c1加载
  314 + #if DEVICE_VERSION == JZ_C1
  315 + JZC1_Init(mode);
  316 + #endif
  317 +
  318 +}
  319 +
  320 +
  321 +T_JZsdkReturnCode Main_APP_Psdk()
  322 +{
  323 + int value[5] = {0, 0, 0, 0, 0};
  324 +
  325 + //sdklib加载
  326 + JZsdk_LibInit(JZ_FLAGCODE_ON);
  327 +
  328 + //hal加载
  329 + JZsdk_Hal_Init();
  330 +
  331 + JZSDK_LOG_INFO("%x,PsdkVersion%x.%x.%x.%x\n",DEVICE_VERSION,MAJOR_VERSION, MINOR_VERSION, MODIFY_VERSION, DEBUG_VERSION);
  332 +
  333 + //通用模块初始化
  334 + CommonMod_Init();
  335 +
  336 + //引脚初始化
  337 + Ircut_Init();
  338 +
  339 + //设备信息初始化
  340 + DeviceInfo_Init();
  341 +
  342 + //工作模式设置函数,用于超时,及播放启动语音等
  343 + Main_WorkMode();
  344 +
  345 + //外接传输模块
  346 + JZsdk_data_transmisson_Receive_Init();
  347 +
  348 + //设备例程初始化
  349 + DeviceSample_init(APP_PSDK);
  350 +
  351 + //初始化控件
  352 + JZSDK_WidgetMgMT_Init();
  353 +
  354 + //初始化app模式
  355 + JZsdk_HalPort_SetUseFlag(DEVICE_PSDK ,JZ_FLAGCODE_ON);
  356 +
  357 + Main_WorkModeSet(JZ_FLAGCODE_ON);
  358 +
  359 + g_baseconfig_InitFlag = JZ_FLAGCODE_ON;
  360 +}
  361 +
  362 +
  363 +
  364 +int Main_APP_Uart()
  365 +{
  366 + int value[5] = {0, 0, 0, 0, 0};
  367 +
  368 + //lib库初始化
  369 + JZsdk_LibInit(JZ_FLAGCODE_ON);
  370 +
  371 + JZsdk_Hal_Init();
  372 +
  373 + JZSDK_LOG_INFO("0x%x,UartVersion%x.%x.%x.%x\n",DEVICE_VERSION,MAJOR_VERSION, MINOR_VERSION, MODIFY_VERSION, DEBUG_VERSION);
  374 +
  375 + //通用模块
  376 + CommonMod_Init();
  377 +
  378 + //引脚初始化
  379 + Ircut_Init();
  380 +
  381 + //设备信息初始化
  382 + DeviceInfo_Init();
  383 +
  384 + //工作模式设置函数,用于超时,及播放启动语音等
  385 + Main_WorkMode();
  386 +
  387 + //设备例程初始化
  388 + DeviceSample_init(APP_UART);
  389 +
  390 + g_baseconfig_InitFlag = JZ_FLAGCODE_ON;
  391 +
  392 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  393 +}
  394 +
  395 +int Main_TestAPP()
  396 +{
  397 + int value[5] = {0, 0, 0, 0, 0};
  398 +
  399 + JZsdk_LibInit(JZ_FLAGCODE_ON);
  400 +
  401 + JZsdk_Hal_Init();
  402 +
  403 + CommonMod_Init();
  404 +
  405 + //串口设备1初始化
  406 + value[0] = UART_DEV1_BITRATE;
  407 + JZsdk_HalPort_Init(UART_DEV_1, value);
  408 +}
  409 +
  410 +
859 /********************************** 411 /**********************************
860 * 412 *
861 * 获取设备初始化标志 413 * 获取设备初始化标志
@@ -207,9 +207,10 @@ extern "C" { @@ -207,9 +207,10 @@ extern "C" {
207 #define GIMBAL_UART_NUM NULL 207 #define GIMBAL_UART_NUM NULL
208 #define GIMBAL_UART_BITRATE (0) 208 #define GIMBAL_UART_BITRATE (0)
209 209
210 - #define NET_WORK_IPADDR NULL  
211 - #define NET_WORK_TARGET_IPADDR NULL  
212 - #define NET_WORK_NETMASK NULL 210 + #define NET_WORK_IPADDR "192.168.5.3"
  211 + #define NET_WORK_TARGET_IPADDR "192.168.5.10"
  212 + #define NET_WORK_NETMASK "255.255.255.0"
  213 +
213 214
214 #else 215 #else
215 #define UART_DEV1_NUM NULL 216 #define UART_DEV1_NUM NULL
@@ -239,7 +240,6 @@ int Main_APP_Uart(); @@ -239,7 +240,6 @@ int Main_APP_Uart();
239 T_JZsdkReturnCode Main_APP_Psdk(); 240 T_JZsdkReturnCode Main_APP_Psdk();
240 int Main_TestAPP(); 241 int Main_TestAPP();
241 int Main_Device_Wheather_Use(); 242 int Main_Device_Wheather_Use();
242 -T_JZsdkReturnCode Main_M30_all_filter_mode(int *mode);  
243 T_JZsdkReturnCode Main_StartupPriority(int *choose); 243 T_JZsdkReturnCode Main_StartupPriority(int *choose);
244 T_JZsdkReturnCode Main_SetDeviceName(unsigned int Port, int g_DeviceID); 244 T_JZsdkReturnCode Main_SetDeviceName(unsigned int Port, int g_DeviceID);
245 int BaseConfig_GetDeviceInitFlag(); 245 int BaseConfig_GetDeviceInitFlag();
  1 +/**
  2 + ********************************************************************
  3 + * @file DeviceSample.h
  4 + * DeviceSample.h的头文件
  5 + *
  6 + *********************************************************************
  7 + */
  8 +
  9 +/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
  10 +#ifndef DEVICE_SAMPLE_H
  11 +#define DEVICE_SAMPLE_H
  12 +
  13 +#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
  14 +
  15 +#include "DeviceSample/JZ_H1_series/JZ_H1E/JZ_h1e.h"
  16 +#include "DeviceSample/JZ_H1_series/JZ_H1T/JZ_h1t.h"
  17 +
  18 +#include "DeviceSample/JZ_H10_series/JZ_H10/JZ_h10.h"
  19 +#include "DeviceSample/JZ_H10_series/JZ_H10T/JZ_h10t.h"
  20 +
  21 +#include "DeviceSample/JZ_H150S_H150T/JZ_h150s_h150t.h"
  22 +
  23 +#include "DeviceSample/JZ_U3_series/JZ_U3/JZ_u3.h"
  24 +#include "DeviceSample/JZ_U3_series/JZ_U3S/JZ_u3s.h"
  25 +#include "DeviceSample/JZ_U3_series/JZ_U3D/JZ_u3d.h"
  26 +#include "DeviceSample/JZ_U3_series/JZ_U30/JZ_u30.h"
  27 +
  28 +#include "DeviceSample/JZC1/JZC1.h"
  29 +
  30 +#include "TF_A1/TF_a1.h"
  31 +
  32 +/* Includes ------------------------------------------------------------------*/
  33 +#ifdef __cplusplus
  34 +extern "C" {
  35 +#endif
  36 +
  37 +
  38 +
  39 +/* Exported constants --------------------------------------------------------*/
  40 +/* 常亮定义*/
  41 +
  42 +/* Exported types ------------------------------------------------------------*/
  43 +
  44 +
  45 +#ifdef __cplusplus
  46 +}
  47 +#endif
  48 +
  49 +#endif
1 -  
2 -#include <stdio.h>  
3 -#include <stdlib.h>  
4 -#include <string.h>  
5 -#include <pthread.h>  
6 -#include <time.h>  
7 -#include <unistd.h>  
8 -  
9 #include "JZsdkLib.h" 1 #include "JZsdkLib.h"
10 #include "BaseConfig.h" 2 #include "BaseConfig.h"
  3 +#include <pthread.h>
  4 +#include <stdatomic.h>
11 #include "JZsdk_usb_bulk/JZsdk_usb_bulk.h" 5 #include "JZsdk_usb_bulk/JZsdk_usb_bulk.h"
12 6
13 #include "IRCUT/ircut.h" 7 #include "IRCUT/ircut.h"
14 8
15 -  
16 #ifdef RTK_MPP_STATUS_ON 9 #ifdef RTK_MPP_STATUS_ON
17 #include "MediaProc/MultProc/RTK_mmp/RTK_mmp.h" 10 #include "MediaProc/MultProc/RTK_mmp/RTK_mmp.h"
18 #include "MediaProc/MultProc/RTK_mmp/Dec/RTK_mmp_dec.h" 11 #include "MediaProc/MultProc/RTK_mmp/Dec/RTK_mmp_dec.h"
19 #include "MediaProc/MultProc/RTK_mmp/Enc/RTK_mmp_enc.h" 12 #include "MediaProc/MultProc/RTK_mmp/Enc/RTK_mmp_enc.h"
20 #include "MediaProc/Camera/Camera.h" 13 #include "MediaProc/Camera/Camera.h"
21 14
22 -#endif  
23 -  
24 #ifdef RTK_RGA_STATUS_ON 15 #ifdef RTK_RGA_STATUS_ON
25 16
26 #include "MediaProc/RgaProc/RK_Rga/RK_Rga.h" 17 #include "MediaProc/RgaProc/RK_Rga/RK_Rga.h"
27 18
28 -//c1的rga结构体 19 +#endif
  20 +
  21 +
  22 +#include "MediaProc/MediaProc.h"
  23 +#include "UI_control/UI_control.h"
  24 +#include "CommonMod/PowerManger/PowerManger.h"
  25 +
29 typedef struct C1_RgaInfo 26 typedef struct C1_RgaInfo
30 { 27 {
31 //源图像 28 //源图像
@@ -42,27 +39,57 @@ typedef struct C1_RgaInfo @@ -42,27 +39,57 @@ typedef struct C1_RgaInfo
42 39
43 }C1_RgaInfo; 40 }C1_RgaInfo;
44 41
45 -static C1_RgaInfo *g_C1_RgaIrcInfo = NULL;  
46 -static C1_RgaInfo *g_C1_RgaOptInfo = NULL; 42 +typedef struct T_JZC1_info
  43 +{
  44 +/*************************************************************/
  45 + //红外相机的编码器信息
  46 + T_rtk_mmp_enc_info *IRC_enc_info;
47 47
48 -static unsigned char *g_MixedIrc_Buffer = NULL; 48 + //红外相机的rga信息
  49 + C1_RgaInfo *IRC_rga_info;
49 50
50 -static unsigned char *g_MixedOpt_Buffer = NULL;  
51 -static unsigned int g_MixedOptBuffer_UseFlag = JZ_FLAGCODE_OFF; 51 +/*************************************************************/
  52 + //光学相机的解码器信息
  53 + T_rtk_mmp_dec_info *Opt_dec_info;
  54 +
  55 + //光学相机的编码器信息
  56 + T_rtk_mmp_enc_info *Opt_enc_info;
  57 +
  58 + //光学相机的相机信息
  59 + JZsdk_CameraInfo *Opt_Camera_info;
  60 +
  61 + C1_RgaInfo *Opt_rga_info;
52 62
53 -#endif  
54 63
55 -#ifdef MEDIA_PROC_CONFIG_STATUS_ON 64 +/*************************************************************/
  65 + //融合相机的编码器信息
  66 + T_rtk_mmp_enc_info *Fuse_enc_info;
56 67
57 -#include "MediaProc/Camera/Cam_FrameCatch/Cam_FrameCatch.h"  
58 -#include "MediaProc/MediaParm.h"  
59 -#include "MediaProc/VideoMgmt/VideoStreamPush/VideoStream_Push.h"  
60 -#include "MediaProc/VideoMgmt/VideoMgmt.h"  
61 -#include "MediaProc/IRC_funtion/IRC_Param.h"  
62 -#include "MediaProc/IRC_funtion/IRC_funtion.h"  
63 -#include "MediaProc/MediaProc_Param.h" 68 +}T_JZC1_info;
64 69
  70 +#define JZ_C1_IRC_WIDTH 320
  71 +#define JZ_C1_IRC_HEIGHT 256
  72 +#define JZ_C1_IRC_FRAMERATE 30
  73 +#define JZ_C1_IRC_INDEX VIDEOMGMT_STREAMING_FLOW_INDEX_FIRST
65 74
  75 +#define JZ_C1_OPT_WIDTH 1920
  76 +#define JZ_C1_OPT_HEIGHT 1080
  77 +#define JZ_C1_OPT_FRAMERATE 30
  78 +#define JZ_C1_OPT_INDEX VIDEOMGMT_STREAMING_FLOW_INDEX_SECOND
  79 +#define JZ_C1_OPT_DEV_PATH ("/dev/video21")
  80 +#define JZ_C1_OPT_PIXEL V4L2_PIX_FMT_MJPEG
  81 +
  82 +#define JZ_C1_FUSE_WIDTH 1920
  83 +#define JZ_C1_FUSE_HEIGHT 1080
  84 +#define JZ_C1_FUSE_FRAMERATE 30
  85 +#define JZ_C1_FUSE_INDEX VIDEOMGMT_STREAMING_FLOW_INDEX_THIRD
  86 +
  87 +static unsigned char *g_MixedIrc_Buffer = NULL;
  88 +static unsigned char *g_MixedOpt_Buffer = NULL;
  89 +static unsigned int g_MixedOptBuffer_UseFlag = JZ_FLAGCODE_OFF;
  90 +
  91 +
  92 +static T_JZC1_info g_JZC1_info;
66 93
67 static void *g_usb_index = NULL; 94 static void *g_usb_index = NULL;
68 95
@@ -72,15 +99,15 @@ static const unsigned char FRAME_HEADER[FRAME_HEADER_SIZE] = {0xaa, 0xbb, 0xcc, @@ -72,15 +99,15 @@ static const unsigned char FRAME_HEADER[FRAME_HEADER_SIZE] = {0xaa, 0xbb, 0xcc,
72 #define NSEC_PER_SEC 1000000000L //1秒的纳秒数 99 #define NSEC_PER_SEC 1000000000L //1秒的纳秒数
73 #define TARGET_FPS 30 100 #define TARGET_FPS 30
74 101
75 -static unsigned char FrameBuffer[FIRST_HEIGHT * FIRST_WIDTH *2]; //用于存储帧数据的缓冲区 102 +static unsigned char FrameBuffer[JZ_C1_IRC_HEIGHT * JZ_C1_IRC_WIDTH *2]; //用于存储帧数据的缓冲区
76 static unsigned int FrameBufferLen = 0; //用于存储帧数据的长度 103 static unsigned int FrameBufferLen = 0; //用于存储帧数据的长度
77 static int FrameBuffer_UseFlag = JZ_FLAGCODE_OFF; 104 static int FrameBuffer_UseFlag = JZ_FLAGCODE_OFF;
78 105
79 #ifdef RTK_RGA_STATUS_ON 106 #ifdef RTK_RGA_STATUS_ON
80 static T_JZsdkReturnCode JZC1_RgaDeal(C1_RgaInfo *rga_info, int resize, unsigned char *image, unsigned int *imgage_size); 107 static T_JZsdkReturnCode JZC1_RgaDeal(C1_RgaInfo *rga_info, int resize, unsigned char *image, unsigned int *imgage_size);
81 -static T_JZsdkReturnCode JZC1_RgaInit(C1_RgaInfo **rgaInfo, int dst_width, int dst_height, int dst_format);  
82 #endif 108 #endif
83 109
  110 +
84 //数据推送函数 111 //数据推送函数
85 static T_JZsdkReturnCode JZC1_PushFrame(int CameraIndex, unsigned char* data, unsigned int data_len) 112 static T_JZsdkReturnCode JZC1_PushFrame(int CameraIndex, unsigned char* data, unsigned int data_len)
86 { 113 {
@@ -93,7 +120,7 @@ static T_JZsdkReturnCode JZC1_PushFrame(int CameraIndex, unsigned char* data, un @@ -93,7 +120,7 @@ static T_JZsdkReturnCode JZC1_PushFrame(int CameraIndex, unsigned char* data, un
93 } 120 }
94 121
95 //红外相机 122 //红外相机
96 - if (currentIndex == VIDEOMGMT_STREAMING_FLOW_INDEX_FIRST && CameraIndex == VIDEOMGMT_STREAMING_FLOW_INDEX_FIRST) 123 + if (currentIndex == JZ_C1_IRC_INDEX && CameraIndex == JZ_C1_IRC_INDEX)
97 { 124 {
98 125
99 //推送数据到流转模块 126 //推送数据到流转模块
@@ -101,14 +128,14 @@ static T_JZsdkReturnCode JZC1_PushFrame(int CameraIndex, unsigned char* data, un @@ -101,14 +128,14 @@ static T_JZsdkReturnCode JZC1_PushFrame(int CameraIndex, unsigned char* data, un
101 } 128 }
102 129
103 //光学相机 130 //光学相机
104 - if(CameraIndex == VIDEOMGMT_STREAMING_FLOW_INDEX_SECOND && currentIndex == VIDEOMGMT_STREAMING_FLOW_INDEX_SECOND) 131 + if(CameraIndex == JZ_C1_OPT_INDEX && currentIndex == JZ_C1_OPT_INDEX)
105 { 132 {
106 //推送数据到流转模块 133 //推送数据到流转模块
107 VideoMgmt_Single_FrameIn(data, data_len); 134 VideoMgmt_Single_FrameIn(data, data_len);
108 } 135 }
109 136
110 //组合视频流 137 //组合视频流
111 - if (currentIndex == VIDEOMGMT_STREAMING_FLOW_INDEX_THIRD && CameraIndex == VIDEOMGMT_STREAMING_FLOW_INDEX_THIRD) 138 + if (currentIndex == JZ_C1_FUSE_INDEX && CameraIndex == JZ_C1_FUSE_INDEX)
112 { 139 {
113 //推送数据到流转模块 140 //推送数据到流转模块
114 VideoMgmt_Single_FrameIn(data, data_len); 141 VideoMgmt_Single_FrameIn(data, data_len);
@@ -119,17 +146,13 @@ static T_JZsdkReturnCode JZC1_PushFrame(int CameraIndex, unsigned char* data, un @@ -119,17 +146,13 @@ static T_JZsdkReturnCode JZC1_PushFrame(int CameraIndex, unsigned char* data, un
119 146
120 static T_JZsdkReturnCode JZC1_OptDeal(unsigned char *data, unsigned int data_len) 147 static T_JZsdkReturnCode JZC1_OptDeal(unsigned char *data, unsigned int data_len)
121 { 148 {
122 -  
123 -  
124 -#ifdef RTK_MPP_STATUS_ON  
125 -  
126 //JZSDK_LOG_INFO("JZC1_OptDeal"); 149 //JZSDK_LOG_INFO("JZC1_OptDeal");
127 150
128 MppFrame yuv_data = NULL; //用于传递yuv数据的地址 151 MppFrame yuv_data = NULL; //用于传递yuv数据的地址
129 MppPacket Packet = NULL; 152 MppPacket Packet = NULL;
130 153
131 //输入数据进入解码器 154 //输入数据进入解码器
132 - RTK_mmp_dec_input(JZsdk_RtkMmpGetDecHandleAddr(1), data, data_len, &yuv_data); 155 + RTK_mmp_dec_input(g_JZC1_info.Opt_dec_info, data, data_len, &yuv_data);
133 156
134 // int width = mpp_frame_get_width(yuv_data); 157 // int width = mpp_frame_get_width(yuv_data);
135 // int height = mpp_frame_get_height(yuv_data); 158 // int height = mpp_frame_get_height(yuv_data);
@@ -180,7 +203,7 @@ static T_JZsdkReturnCode JZC1_OptDeal(unsigned char *data, unsigned int data_len @@ -180,7 +203,7 @@ static T_JZsdkReturnCode JZC1_OptDeal(unsigned char *data, unsigned int data_len
180 unsigned char *temp_data = (unsigned char *)malloc(size); 203 unsigned char *temp_data = (unsigned char *)malloc(size);
181 memcpy(temp_data, mpp_buffer_get_ptr(temp), size); 204 memcpy(temp_data, mpp_buffer_get_ptr(temp), size);
182 205
183 - JZC1_RgaDeal(g_C1_RgaOptInfo, ZoomRatio, temp_data, &size); 206 + JZC1_RgaDeal(g_JZC1_info.Opt_rga_info, ZoomRatio, temp_data, &size);
184 207
185 //重新将数据放回 208 //重新将数据放回
186 memcpy(mpp_buffer_get_ptr(temp), temp_data, size); 209 memcpy(mpp_buffer_get_ptr(temp), temp_data, size);
@@ -200,7 +223,7 @@ static T_JZsdkReturnCode JZC1_OptDeal(unsigned char *data, unsigned int data_len @@ -200,7 +223,7 @@ static T_JZsdkReturnCode JZC1_OptDeal(unsigned char *data, unsigned int data_len
200 223
201 224
202 //将返回的数据输入进编码器 225 //将返回的数据输入进编码器
203 - RTK_mmp_enc_yuv_to_h264_byFrame(JZsdk_RtkMmpGetEncHandleAddr(1), yuv_data, &Packet); 226 + RTK_mmp_enc_yuv_to_h264_byFrame(g_JZC1_info.Opt_enc_info, yuv_data, &Packet);
204 227
205 //获取数据指针与长度 228 //获取数据指针与长度
206 int packet_len = mpp_packet_get_length(Packet); 229 int packet_len = mpp_packet_get_length(Packet);
@@ -211,7 +234,6 @@ static T_JZsdkReturnCode JZC1_OptDeal(unsigned char *data, unsigned int data_len @@ -211,7 +234,6 @@ static T_JZsdkReturnCode JZC1_OptDeal(unsigned char *data, unsigned int data_len
211 234
212 //释放掉编码图像 235 //释放掉编码图像
213 mpp_packet_deinit(&Packet); 236 mpp_packet_deinit(&Packet);
214 -#endif  
215 237
216 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 238 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
217 } 239 }
@@ -230,7 +252,6 @@ static T_JZsdkReturnCode JZC1_Irc_DataCorrect(unsigned char *data) @@ -230,7 +252,6 @@ static T_JZsdkReturnCode JZC1_Irc_DataCorrect(unsigned char *data)
230 //在这里将灰度图数据转换成目标数据 252 //在这里将灰度图数据转换成目标数据
231 static T_JZsdkReturnCode JZC1_IrcDeal(unsigned char *data, unsigned int data_len) 253 static T_JZsdkReturnCode JZC1_IrcDeal(unsigned char *data, unsigned int data_len)
232 { 254 {
233 -#ifdef IRC_CONFIG_STATUS_ON  
234 //JZSDK_LOG_DEBUG("irc数据处理"); 255 //JZSDK_LOG_DEBUG("irc数据处理");
235 if (data_len == 0) 256 if (data_len == 0)
236 { 257 {
@@ -291,7 +312,7 @@ static T_JZsdkReturnCode JZC1_IrcDeal(unsigned char *data, unsigned int data_len @@ -291,7 +312,7 @@ static T_JZsdkReturnCode JZC1_IrcDeal(unsigned char *data, unsigned int data_len
291 312
292 if (ZoomRatio != JZ_FLAGCODE_OFF) 313 if (ZoomRatio != JZ_FLAGCODE_OFF)
293 { 314 {
294 - JZC1_RgaDeal(g_C1_RgaIrcInfo, ZoomRatio, raw_data, &raw_data_len); 315 + JZC1_RgaDeal(g_JZC1_info.IRC_rga_info, ZoomRatio, raw_data, &raw_data_len);
295 } 316 }
296 317
297 //将数据放入混合缓冲区 318 //将数据放入混合缓冲区
@@ -304,10 +325,9 @@ static T_JZsdkReturnCode JZC1_IrcDeal(unsigned char *data, unsigned int data_len @@ -304,10 +325,9 @@ static T_JZsdkReturnCode JZC1_IrcDeal(unsigned char *data, unsigned int data_len
304 unsigned char *h264Data = NULL; 325 unsigned char *h264Data = NULL;
305 unsigned int h264DataLen = 0; 326 unsigned int h264DataLen = 0;
306 327
307 -#ifdef RTK_MPP_STATUS_ON  
308 MppPacket Packet = NULL; 328 MppPacket Packet = NULL;
309 329
310 - RTK_mmp_enc_data_to_h264(JZsdk_RtkMmpGetEncHandleAddr(0), raw_data, raw_data_len, &Packet); 330 + RTK_mmp_enc_data_to_h264(g_JZC1_info.IRC_enc_info, raw_data, raw_data_len, &Packet);
311 331
312 h264DataLen = mpp_packet_get_length(Packet); 332 h264DataLen = mpp_packet_get_length(Packet);
313 h264Data = (unsigned char *)mpp_packet_get_pos(Packet); 333 h264Data = (unsigned char *)mpp_packet_get_pos(Packet);
@@ -316,7 +336,6 @@ static T_JZsdkReturnCode JZC1_IrcDeal(unsigned char *data, unsigned int data_len @@ -316,7 +336,6 @@ static T_JZsdkReturnCode JZC1_IrcDeal(unsigned char *data, unsigned int data_len
316 336
317 //释放掉packet 337 //释放掉packet
318 mpp_packet_deinit(&Packet); 338 mpp_packet_deinit(&Packet);
319 -#endif  
320 339
321 //将h264数据推送 340 //将h264数据推送
322 JZC1_PushFrame(1, h264Data, h264DataLen); 341 JZC1_PushFrame(1, h264Data, h264DataLen);
@@ -334,11 +353,10 @@ static T_JZsdkReturnCode JZC1_IrcDeal(unsigned char *data, unsigned int data_len @@ -334,11 +353,10 @@ static T_JZsdkReturnCode JZC1_IrcDeal(unsigned char *data, unsigned int data_len
334 u16Data = NULL; 353 u16Data = NULL;
335 } 354 }
336 355
337 -#endif  
338 -  
339 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 356 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
340 } 357 }
341 358
  359 +
342 static void *JZC1_IrcDataBuffer_Thread(void *args) 360 static void *JZC1_IrcDataBuffer_Thread(void *args)
343 { 361 {
344 362
@@ -350,12 +368,12 @@ static void *JZC1_IrcDataBuffer_Thread(void *args) @@ -350,12 +368,12 @@ static void *JZC1_IrcDataBuffer_Thread(void *args)
350 long long prev_time = start_time.tv_sec * NSEC_PER_SEC + start_time.tv_nsec; 368 long long prev_time = start_time.tv_sec * NSEC_PER_SEC + start_time.tv_nsec;
351 369
352 //设置间隔时间 370 //设置间隔时间
353 - long long period = NSEC_PER_SEC / TARGET_FPS; 371 + long long period = NSEC_PER_SEC / JZ_C1_IRC_FRAMERATE;
354 372
355 unsigned char *TempBuffer = (unsigned char *)malloc(163840); 373 unsigned char *TempBuffer = (unsigned char *)malloc(163840);
356 unsigned int TempBufferLen = 0; 374 unsigned int TempBufferLen = 0;
357 375
358 - 376 + int num = 0;
359 377
360 while (1) 378 while (1)
361 { 379 {
@@ -386,16 +404,47 @@ static void *JZC1_IrcDataBuffer_Thread(void *args) @@ -386,16 +404,47 @@ static void *JZC1_IrcDataBuffer_Thread(void *args)
386 JZC1_IrcDeal(TempBuffer, TempBufferLen); 404 JZC1_IrcDeal(TempBuffer, TempBufferLen);
387 405
388 prev_time = current_time; 406 prev_time = current_time;
  407 +
389 } 408 }
390 409
391 - // 为了防止过于频繁地调用 clock_gettime,可以添加一个小的睡眠时间  
392 - // 例如,休眠1毫秒(100000000纳秒),以减少CPU占用  
393 - struct timespec req = { .tv_sec = 0, .tv_nsec = 1000000 };  
394 - nanosleep(&req, NULL); 410 + // // 为了防止过于频繁地调用 clock_gettime,可以添加一个小的睡眠时间
  411 + // // 例如,休眠1毫秒(100000000纳秒),以减少CPU占用
  412 + // struct timespec req = { .tv_sec = 0, .tv_nsec = 1000000 };
  413 + // nanosleep(&req, NULL);
395 } 414 }
  415 +}
396 416
  417 +// static void *JZC1_IrcDataBuffer_Thread(void *args)
  418 +// {
  419 +// unsigned char *TempBuffer = (unsigned char *)malloc(163840);
  420 +// unsigned int TempBufferLen = 0;
397 421
398 -} 422 +// const long long period = NSEC_PER_SEC / TARGET_FPS; // 33,333,333 ns
  423 +// struct timespec next;
  424 +// clock_gettime(CLOCK_MONOTONIC, &next);
  425 +
  426 +// while(1) {
  427 +// // 精确周期控制
  428 +// next.tv_nsec += period;
  429 +// if (next.tv_nsec >= NSEC_PER_SEC) {
  430 +// next.tv_sec++;
  431 +// next.tv_nsec -= NSEC_PER_SEC;
  432 +// }
  433 +
  434 +// // 无锁化改造
  435 +// if(atomic_exchange(&FrameBuffer_UseFlag, JZ_FLAGCODE_ON) == JZ_FLAGCODE_OFF) {
  436 +// memcpy(TempBuffer, FrameBuffer, FrameBufferLen); // 零拷贝优化见方案2
  437 +// atomic_store(&FrameBuffer_UseFlag, JZ_FLAGCODE_OFF);
  438 +
  439 +// JZC1_IrcDeal(TempBuffer, FrameBufferLen);
  440 +
  441 +// JZSDK_LOG_INFO("deal");
  442 +// }
  443 +
  444 +// // 高精度休眠
  445 +// clock_nanosleep(CLOCK_MONOTONIC, TIMER_ABSTIME, &next, NULL);
  446 +// }
  447 +// }
399 448
400 static T_JZsdkReturnCode JZC1_IrcDataSave(unsigned char *data, unsigned int data_len) 449 static T_JZsdkReturnCode JZC1_IrcDataSave(unsigned char *data, unsigned int data_len)
401 { 450 {
@@ -419,7 +468,7 @@ static T_JZsdkReturnCode JZC1_IrcDataSave(unsigned char *data, unsigned int data @@ -419,7 +468,7 @@ static T_JZsdkReturnCode JZC1_IrcDataSave(unsigned char *data, unsigned int data
419 //红外数据接收线程 468 //红外数据接收线程
420 static void *JZC1_IrcDataRecv_Thread(void *args) 469 static void *JZC1_IrcDataRecv_Thread(void *args)
421 { 470 {
422 - int frame_len = FIRST_WIDTH *2* FIRST_HEIGHT; //163840 471 + int frame_len = g_JZC1_info.IRC_enc_info->width * g_JZC1_info.IRC_enc_info->height *2; //163840
423 unsigned char buf[frame_len]; //usb数据缓冲区需要为512的倍数 472 unsigned char buf[frame_len]; //usb数据缓冲区需要为512的倍数
424 unsigned char frameData[frame_len]; // 存储整帧数据的画面缓冲区 473 unsigned char frameData[frame_len]; // 存储整帧数据的画面缓冲区
425 unsigned int lineNum = 0; 474 unsigned int lineNum = 0;
@@ -547,14 +596,13 @@ static void *JZC1_IrcDataRecv_Thread(void *args) @@ -547,14 +596,13 @@ static void *JZC1_IrcDataRecv_Thread(void *args)
547 } 596 }
548 } 597 }
549 598
550 -  
551 //C1 红外相机数据的初始化 599 //C1 红外相机数据的初始化
552 static T_JZsdkReturnCode JZsdk_JZC1_Irc_Data_Init() 600 static T_JZsdkReturnCode JZsdk_JZC1_Irc_Data_Init()
553 { 601 {
554 T_JZsdkReturnCode ret; 602 T_JZsdkReturnCode ret;
555 603
556 //初始化接收的usb口 604 //初始化接收的usb口
557 - ret = JZsdk_HalUsbBulk_Init(&g_usb_index, 0, 0, LINUX_USB_PID, LINUX_USB_VID, USB_IN_POINT, USB_OUT_POINT); 605 + ret = JZsdk_HalUsbBulk_Init(&g_usb_index, 0, 0, JZSDK_USB_PID, JZSDK_USB_VID, USB_IN_POINT, USB_OUT_POINT);
558 if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) 606 if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
559 { 607 {
560 return ret; 608 return ret;
@@ -584,44 +632,68 @@ static T_JZsdkReturnCode JZsdk_JZC1_Irc_Data_Init() @@ -584,44 +632,68 @@ static T_JZsdkReturnCode JZsdk_JZC1_Irc_Data_Init()
584 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; 632 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
585 } 633 }
586 634
  635 + JZSDK_LOG_INFO("JZsdk_JZC1_Irc_Data_Init sucess");
  636 +
587 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 637 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
588 } 638 }
589 639
590 640
  641 +// /********************
  642 +// *
  643 +// * 混合视频说明
  644 +// *
  645 +// * 1920*1088 做处理 并输出为 1920*1080
  646 +// * __________________________________________________________________
  647 +// * |_________________________________ |
  648 +// * | |________________________________|
  649 +// * | | |
  650 +// * | | 1920*1088 /2 960* 544 |
  651 +// * | | |
  652 +// * | 320*256 拉伸4到 1280*1024 | |
  653 +// * | 裁剪出 3/4 到 960 * 768 | |
  654 +// * | | |
  655 +// * | |________________________________|
  656 +// * |_________________________________| |
  657 +// * |__________________________________________________________________|
  658 +// *
  659 +// * ******************/
  660 +
  661 +
  662 +static T_JZsdkReturnCode JZC1_RgaInit(C1_RgaInfo *rgaInfo, int dst_width, int dst_height, int dst_format)
  663 +{
  664 + int width = dst_width;
  665 + int height = dst_height;
  666 + int rect_x = 0;
  667 + int rect_y = 0;
  668 + int rect_w = dst_width;
  669 + int rect_h = dst_height;
  670 +
  671 + rgaInfo->src_img = NULL;
591 672
592 -/********************  
593 - *  
594 - * 混合视频说明  
595 - *  
596 - * 1920*1088 做处理 并输出为 1920*1080  
597 - * __________________________________________________________________  
598 - * |_________________________________ |  
599 - * | |________________________________|  
600 - * | | |  
601 - * | | 1920*1088 /2 960* 544 |  
602 - * | | |  
603 - * | 320*256 拉伸4到 1280*1024 | |  
604 - * | 裁剪出 3/4 到 960 * 768 | |  
605 - * | | |  
606 - * | |________________________________|  
607 - * |_________________________________| |  
608 - * |__________________________________________________________________|  
609 - *  
610 - * ******************/ 673 + RK_Rga_ImageInit(&(rgaInfo->src_img), width, height, dst_format, rect_x, rect_y, rect_w, rect_h); //初始化输入模块
611 674
  675 + rgaInfo->corp_img = NULL;
  676 + RK_Rga_ImageInit(&(rgaInfo->corp_img), width, height, dst_format, rect_x, rect_y, rect_w, rect_h); //初始化裁剪模块
612 677
613 -/******************  
614 - *  
615 - * 混合视频处理  
616 - *  
617 - *  
618 - * ********************/  
619 -static void JZC1_MixedVideo_Deal()  
620 -{ 678 + rgaInfo->dst_img = NULL;
  679 + RK_Rga_ImageInit(&(rgaInfo->dst_img), width, height, dst_format, rect_x, rect_y, rect_w, rect_h); //初始化输出模块
621 680
  681 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
622 } 682 }
623 683
624 684
  685 +// /******************
  686 +// *
  687 +// * 混合视频处理
  688 +// *
  689 +// *
  690 +// * ********************/
  691 +// static void JZC1_MixedVideo_Deal()
  692 +// {
  693 +
  694 +// }
  695 +
  696 +
625 static void *MixedVideo_Thread(void *args) 697 static void *MixedVideo_Thread(void *args)
626 { 698 {
627 #ifdef RTK_RGA_STATUS_ON 699 #ifdef RTK_RGA_STATUS_ON
@@ -642,16 +714,16 @@ static void *MixedVideo_Thread(void *args) @@ -642,16 +714,16 @@ static void *MixedVideo_Thread(void *args)
642 im_rect Irc_Rect; 714 im_rect Irc_Rect;
643 Irc_Rect.x = 0; 715 Irc_Rect.x = 0;
644 Irc_Rect.y = 0; 716 Irc_Rect.y = 0;
645 - Irc_Rect.width = JZ_ALIGN(FIRST_WIDTH, 16);  
646 - Irc_Rect.height = JZ_ALIGN(FIRST_HEIGHT, 16); 717 + Irc_Rect.width = g_JZC1_info.IRC_enc_info->hor_stride;
  718 + Irc_Rect.height = g_JZC1_info.IRC_enc_info->ver_stride;
647 int IRc_Format = RK_FORMAT_YCbCr_420_SP; 719 int IRc_Format = RK_FORMAT_YCbCr_420_SP;
648 720
649 //红外放大图像 721 //红外放大图像
650 im_rect Irc_ResizeRect; 722 im_rect Irc_ResizeRect;
651 Irc_ResizeRect.x = 0; 723 Irc_ResizeRect.x = 0;
652 Irc_ResizeRect.y = 0; 724 Irc_ResizeRect.y = 0;
653 - Irc_ResizeRect.width = JZ_ALIGN(FIRST_WIDTH, 16) * 4;  
654 - Irc_ResizeRect.height = JZ_ALIGN(FIRST_HEIGHT, 16) * 4; 725 + Irc_ResizeRect.width = g_JZC1_info.IRC_enc_info->hor_stride * 4;
  726 + Irc_ResizeRect.height = g_JZC1_info.IRC_enc_info->ver_stride * 4;
655 727
656 //红外裁剪区域 728 //红外裁剪区域
657 im_rect Irc_CropRect; 729 im_rect Irc_CropRect;
@@ -678,16 +750,16 @@ static void *MixedVideo_Thread(void *args) @@ -678,16 +750,16 @@ static void *MixedVideo_Thread(void *args)
678 im_rect Opt_Rect; 750 im_rect Opt_Rect;
679 Opt_Rect.x = 0; 751 Opt_Rect.x = 0;
680 Opt_Rect.y = 0; 752 Opt_Rect.y = 0;
681 - Opt_Rect.width = JZ_ALIGN(SECOND_WIDTH, 16);  
682 - Opt_Rect.height = JZ_ALIGN(SECOND_HEIGHT, 16); 753 + Opt_Rect.width = g_JZC1_info.Opt_enc_info->hor_stride;
  754 + Opt_Rect.height = g_JZC1_info.Opt_enc_info->ver_stride;
683 int Opt_Format = RK_FORMAT_YCbCr_420_SP; 755 int Opt_Format = RK_FORMAT_YCbCr_420_SP;
684 756
685 //光学源缩小图像 757 //光学源缩小图像
686 im_rect Opt_ResizeRect; 758 im_rect Opt_ResizeRect;
687 Opt_ResizeRect.x = 0; 759 Opt_ResizeRect.x = 0;
688 Opt_ResizeRect.y = 0; 760 Opt_ResizeRect.y = 0;
689 - Opt_ResizeRect.width = JZ_ALIGN(SECOND_WIDTH, 16) / 2;  
690 - Opt_ResizeRect.height = JZ_ALIGN(SECOND_HEIGHT, 16) / 2; 761 + Opt_ResizeRect.width = g_JZC1_info.Opt_enc_info->hor_stride / 2;
  762 + Opt_ResizeRect.height = g_JZC1_info.Opt_enc_info->ver_stride / 2;
691 763
692 //光学源图像 764 //光学源图像
693 RK_RgaImage *Opt_SrcImg = NULL; 765 RK_RgaImage *Opt_SrcImg = NULL;
@@ -704,8 +776,8 @@ static void *MixedVideo_Thread(void *args) @@ -704,8 +776,8 @@ static void *MixedVideo_Thread(void *args)
704 im_rect Dst_Rect; 776 im_rect Dst_Rect;
705 Dst_Rect.x = 0; 777 Dst_Rect.x = 0;
706 Dst_Rect.y = 0; 778 Dst_Rect.y = 0;
707 - Dst_Rect.width = JZ_ALIGN(SECOND_WIDTH, 16);  
708 - Dst_Rect.height = JZ_ALIGN(SECOND_HEIGHT, 16); 779 + Dst_Rect.width = g_JZC1_info.Opt_enc_info->hor_stride;
  780 + Dst_Rect.height = g_JZC1_info.Opt_enc_info->ver_stride;
709 int Dst_Format = RK_FORMAT_YCbCr_420_SP; 781 int Dst_Format = RK_FORMAT_YCbCr_420_SP;
710 782
711 //目标图像中光学图像的矩形 783 //目标图像中光学图像的矩形
@@ -765,8 +837,8 @@ static void *MixedVideo_Thread(void *args) @@ -765,8 +837,8 @@ static void *MixedVideo_Thread(void *args)
765 memset(Opt_SrcImg->buf, 0, Opt_SrcImg->buf_size); 837 memset(Opt_SrcImg->buf, 0, Opt_SrcImg->buf_size);
766 838
767 //将数据放入缓冲区 839 //将数据放入缓冲区
768 - memcpy(Irc_SrcImg->buf, g_MixedIrc_Buffer, (JZ_ALIGN(FIRST_WIDTH, 16)) * (JZ_ALIGN(FIRST_HEIGHT, 16)) * 3 / 2);  
769 - memcpy(Opt_SrcImg->buf, g_MixedOpt_Buffer, JZ_ALIGN(SECOND_WIDTH, 16) * JZ_ALIGN(SECOND_HEIGHT, 16) * 3 / 2); 840 + memcpy(Irc_SrcImg->buf, g_MixedIrc_Buffer, (g_JZC1_info.IRC_enc_info->hor_stride) * (g_JZC1_info.IRC_enc_info->ver_stride) * 3 / 2);
  841 + memcpy(Opt_SrcImg->buf, g_MixedOpt_Buffer, g_JZC1_info.Opt_enc_info->hor_stride * g_JZC1_info.Opt_enc_info->ver_stride * 3 / 2);
770 842
771 g_MixedOptBuffer_UseFlag = JZ_FLAGCODE_OFF; 843 g_MixedOptBuffer_UseFlag = JZ_FLAGCODE_OFF;
772 844
@@ -817,10 +889,9 @@ static void *MixedVideo_Thread(void *args) @@ -817,10 +889,9 @@ static void *MixedVideo_Thread(void *args)
817 889
818 //JZSDK_LOG_DEBUG("DstImg->buf_size:%d", DstImg->buf_size); 890 //JZSDK_LOG_DEBUG("DstImg->buf_size:%d", DstImg->buf_size);
819 891
820 -#ifdef RTK_MPP_STATUS_ON  
821 MppPacket Packet = NULL; 892 MppPacket Packet = NULL;
822 893
823 - RTK_mmp_enc_data_to_h264(JZsdk_RtkMmpGetEncHandleAddr(2), DstImg->buf, DstImg->buf_size, &Packet); 894 + RTK_mmp_enc_data_to_h264(g_JZC1_info.Fuse_enc_info, DstImg->buf, DstImg->buf_size, &Packet);
824 895
825 h264DataLen = mpp_packet_get_length(Packet); 896 h264DataLen = mpp_packet_get_length(Packet);
826 h264Data = (unsigned char *)mpp_packet_get_pos(Packet); 897 h264Data = (unsigned char *)mpp_packet_get_pos(Packet);
@@ -829,7 +900,6 @@ static void *MixedVideo_Thread(void *args) @@ -829,7 +900,6 @@ static void *MixedVideo_Thread(void *args)
829 900
830 //释放掉packet 901 //释放掉packet
831 mpp_packet_deinit(&Packet); 902 mpp_packet_deinit(&Packet);
832 -#endif  
833 903
834 //推送视频流 904 //推送视频流
835 JZC1_PushFrame(VIDEOMGMT_STREAMING_FLOW_INDEX_THIRD, h264Data, h264DataLen); 905 JZC1_PushFrame(VIDEOMGMT_STREAMING_FLOW_INDEX_THIRD, h264Data, h264DataLen);
@@ -858,8 +928,9 @@ static void *MixedVideo_Thread(void *args) @@ -858,8 +928,9 @@ static void *MixedVideo_Thread(void *args)
858 static T_JZsdkReturnCode JZC1_MixedVideo_Init() 928 static T_JZsdkReturnCode JZC1_MixedVideo_Init()
859 { 929 {
860 #ifdef IRC_CONFIG_STATUS_ON 930 #ifdef IRC_CONFIG_STATUS_ON
861 - g_MixedIrc_Buffer = (unsigned char *)malloc(JZ_ALIGN(FIRST_WIDTH, 16)*JZ_ALIGN(FIRST_HEIGHT, 16)*3/2);  
862 - g_MixedOpt_Buffer = (unsigned char *)malloc(JZ_ALIGN(SECOND_WIDTH, 16)*JZ_ALIGN(SECOND_HEIGHT, 16)*3/2); 931 +
  932 + g_MixedIrc_Buffer = (unsigned char *)malloc(g_JZC1_info.IRC_enc_info->hor_stride * g_JZC1_info.IRC_enc_info->ver_stride * 3/2);
  933 + g_MixedOpt_Buffer = (unsigned char *)malloc(g_JZC1_info.Opt_enc_info->hor_stride * g_JZC1_info.Opt_enc_info->ver_stride * 3/2);
863 934
864 //混合视频初始化 935 //混合视频初始化
865 pthread_t Task; 936 pthread_t Task;
@@ -880,150 +951,13 @@ static T_JZsdkReturnCode JZC1_MixedVideo_Init() @@ -880,150 +951,13 @@ static T_JZsdkReturnCode JZC1_MixedVideo_Init()
880 } 951 }
881 952
882 953
883 -#endif  
884 -  
885 -//JZ_C1 的媒体初始化  
886 -static T_JZsdkReturnCode JZC1_MediaInit()  
887 -{  
888 - T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;  
889 -  
890 -  
891 -//初始化媒体模块  
892 -#ifdef MEDIA_PROC_CONFIG_STATUS_ON  
893 -  
894 - //初始化videoMgmt模块  
895 - VideoMgmt_Init();  
896 -  
897 - //初始化Mulit模块  
898 - #ifdef RTK_MPP_STATUS_ON  
899 - //初始化红外的编解码器  
900 - RTK_mmp_enc_Init(JZsdk_RtkMmpGetEncHandleAddr(0), MPP_VIDEO_CodingAVC, MPP_FMT_YUV420SP, FIRST_WIDTH, FIRST_HEIGHT, 30, 5);  
901 -  
902 - //初始化光学的编解码器  
903 - RTK_mmp_dec_Init(JZsdk_RtkMmpGetDecHandleAddr(1), MPP_VIDEO_CodingMJPEG, MPP_FMT_YUV420SP, SECOND_WIDTH, SECOND_HEIGHT);  
904 - RTK_mmp_enc_Init(JZsdk_RtkMmpGetEncHandleAddr(1), MPP_VIDEO_CodingAVC, MPP_FMT_YUV420SP, SECOND_WIDTH, SECOND_HEIGHT, 30, 15);  
905 -  
906 - // RTK_mmp_dec_Init(JZsdk_RtkMmpGetDecHandleAddr(1), MPP_VIDEO_CodingMJPEG, MPP_FMT_YUV420SP, SECOND_WIDTH, SECOND_HEIGHT);  
907 - // RTK_mmp_enc_Init(JZsdk_RtkMmpGetEncHandleAddr(1), MPP_VIDEO_CodingAVC, MPP_FMT_YUV420SP, SECOND_WIDTH, SECOND_HEIGHT, 30, 15);  
908 -  
909 - //初始化混合视频流的编码器  
910 - RTK_mmp_enc_Init(JZsdk_RtkMmpGetEncHandleAddr(2), MPP_VIDEO_CodingAVC, MPP_FMT_YUV420SP, SECOND_WIDTH, SECOND_HEIGHT, 30, 15);  
911 -  
912 - #endif  
913 -  
914 - //初始化Camera模块  
915 - int CameraFd = -1;  
916 - ret = V4l2_Camarainit2(&CameraFd, SECOND_WIDTH, SECOND_HEIGHT, 30);  
917 - if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)  
918 - {  
919 - JZSDK_LOG_ERROR("光学相机启动失败");  
920 - }  
921 - else  
922 - {  
923 -  
924 - //光学相机的抓取  
925 - ret = JZsdk_FrameCatch_Single(JZC1_OptDeal);  
926 - }  
927 -  
928 - //初始化IRC_funtion模块  
929 - ret = IRC_ParamInit(FIRST_HEIGHT, FIRST_WIDTH, 25);  
930 - if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)  
931 - {  
932 - JZSDK_LOG_ERROR("初始化红外的数据处理失败");  
933 - }  
934 - else  
935 - {  
936 - //初始化红外的数据输入  
937 - ret = JZsdk_JZC1_Irc_Data_Init();  
938 - if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)  
939 - {  
940 - JZSDK_LOG_ERROR("红外相机初始化失败");  
941 - }  
942 - }  
943 -  
944 - //设置默认参数  
945 -  
946 - //默认推送红外摄像头 后续改成 红外+光学 的组合画面  
947 - VideoMgmt_VideoStreamFlowIndex(VIDEOMGMT_STREAMING_FLOW_INDEX_THIRD);  
948 -  
949 - //设置快门为开  
950 - JZsdk_Camera_ShutterSwitch(JZ_FLAGCODE_ON);  
951 -  
952 - //设置伪彩颜色为hot  
953 - int value = 8;  
954 - Camera_param(JZ_FLAGCODE_SET, CAMERA_PSEUDO_COLOR, &value);  
955 -  
956 - //设置为默认输出模式  
957 - value = 0;  
958 - Camera_param(JZ_FLAGCODE_SET, CAMERA_PIXEL_PSEUDO_COLOR_MODE, &value);  
959 -  
960 - //设置默认打开自动校正  
961 - value = JZ_FLAGCODE_ON;  
962 - Proc_IRC_param(JZ_FLAGCODE_SET, JZSDK_WIDGET_BAD_PIXEL_CORRECT_MODE, &value);  
963 -  
964 - //初始化变焦模块  
965 - Cam_Zoom_Init();  
966 -  
967 - //初始化RGA模块  
968 -#ifdef RTK_RGA_STATUS_ON  
969 - ret = JZC1_RgaInit(&g_C1_RgaIrcInfo, JZ_ALIGN(FIRST_WIDTH, 16), JZ_ALIGN(FIRST_HEIGHT, 16), RK_FORMAT_YCbCr_420_SP);  
970 - ret = JZC1_RgaInit(&g_C1_RgaOptInfo, JZ_ALIGN(SECOND_WIDTH, 16), JZ_ALIGN(SECOND_HEIGHT, 16), RK_FORMAT_YCbCr_420_SP);  
971 -  
972 - //混合视频初始化  
973 - JZC1_MixedVideo_Init();  
974 -#endif  
975 -  
976 -#endif  
977 -  
978 -  
979 - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;  
980 -}  
981 -  
982 -#ifdef RTK_RGA_STATUS_ON  
983 -  
984 -static T_JZsdkReturnCode JZC1_RgaInit(C1_RgaInfo **rgaInfo, int dst_width, int dst_height, int dst_format)  
985 -{  
986 -  
987 -  
988 - //初始化rga结构体  
989 - (*rgaInfo) = (C1_RgaInfo *)malloc(sizeof(C1_RgaInfo));  
990 - if ((*rgaInfo) == NULL)  
991 - {  
992 - JZSDK_LOG_ERROR("RGA初始化失败");  
993 - return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;  
994 - }  
995 -  
996 - int width = dst_width;  
997 - int height = dst_height;  
998 - int rect_x = 0;  
999 - int rect_y = 0;  
1000 - int rect_w = dst_width;  
1001 - int rect_h = dst_height;  
1002 -  
1003 -  
1004 - (*rgaInfo)->src_img = NULL;  
1005 - RK_Rga_ImageInit(&(*rgaInfo)->src_img, width, height, dst_format, rect_x, rect_y, rect_w, rect_h); //初始化输入模块  
1006 -  
1007 - (*rgaInfo)->corp_img = NULL;  
1008 - RK_Rga_ImageInit(&(*rgaInfo)->corp_img, width, height, dst_format, rect_x, rect_y, rect_w, rect_h); //初始化裁剪模块  
1009 -  
1010 - (*rgaInfo)->dst_img = NULL;  
1011 - RK_Rga_ImageInit(&(*rgaInfo)->dst_img, width, height, dst_format, rect_x, rect_y, rect_w, rect_h); //初始化输出模块  
1012 -  
1013 -  
1014 -  
1015 -}  
1016 -  
1017 -#endif  
1018 -  
1019 //rga处理 954 //rga处理
1020 -#ifdef RTK_RGA_STATUS_ON  
1021 static T_JZsdkReturnCode JZC1_RgaDeal(C1_RgaInfo *rga_info, int resize, unsigned char *image, unsigned int *imgage_size) 955 static T_JZsdkReturnCode JZC1_RgaDeal(C1_RgaInfo *rga_info, int resize, unsigned char *image, unsigned int *imgage_size)
1022 { 956 {
1023 int d_ret; 957 int d_ret;
1024 958
1025 959
1026 - if (g_C1_RgaIrcInfo == NULL || *imgage_size != rga_info->src_img->buf_size) 960 + if (g_JZC1_info.IRC_rga_info == NULL || *imgage_size != rga_info->src_img->buf_size)
1027 { 961 {
1028 printf("C1_Rga_Deal failed imagesize:%d bufsize:%d\n", *imgage_size, rga_info->src_img->buf_size); 962 printf("C1_Rga_Deal failed imagesize:%d bufsize:%d\n", *imgage_size, rga_info->src_img->buf_size);
1029 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; 963 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
@@ -1089,33 +1023,306 @@ static T_JZsdkReturnCode JZC1_RgaDeal(C1_RgaInfo *rga_info, int resize, unsigned @@ -1089,33 +1023,306 @@ static T_JZsdkReturnCode JZC1_RgaDeal(C1_RgaInfo *rga_info, int resize, unsigned
1089 1023
1090 } 1024 }
1091 1025
  1026 +T_JZsdkReturnCode JZC1_SetNextFrame_IDR(unsigned int index)
  1027 +{
  1028 + if (index == JZ_C1_IRC_INDEX)
  1029 + {
  1030 + RTK_mmp_enc_SetNextFrame_IDR(g_JZC1_info.IRC_enc_info);
  1031 + }
  1032 + else if (index == JZ_C1_OPT_INDEX)
  1033 + {
  1034 + RTK_mmp_enc_SetNextFrame_IDR(g_JZC1_info.Opt_enc_info);
  1035 + }
  1036 + else if (index == JZ_C1_FUSE_INDEX)
  1037 + {
  1038 + RTK_mmp_enc_SetNextFrame_IDR(g_JZC1_info.Fuse_enc_info);
  1039 + }
  1040 +
  1041 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  1042 +
  1043 +}
  1044 +
  1045 +
1092 #endif 1046 #endif
1093 1047
1094 -T_JZsdkReturnCode JZC1_Init() 1048 +
  1049 +static int save_int_to_file(const char* filename, int value)
1095 { 1050 {
1096 - T_JZsdkReturnCode ret; 1051 + FILE* file = fopen(filename, "wb");
  1052 + if (!file) {
  1053 + perror("fopen failed");
  1054 + return -1;
  1055 + }
1097 1056
1098 - //初始化引脚  
1099 - Ircut_Init(); 1057 + size_t written = fwrite(&value, sizeof(int), 1, file);
  1058 + fclose(file);
1100 1059
1101 - //初始化媒体模块  
1102 - ret = JZC1_MediaInit(); 1060 + if (written != 1) {
  1061 + fprintf(stderr, "Failed to write integer\n");
  1062 + return -1;
  1063 + }
  1064 + return 0;
  1065 +}
1103 1066
1104 - JZSDK_LOG_INFO("JZ_C1 INIT COMPLETED\n"); 1067 +static int read_int_from_file(const char* filename) {
  1068 + FILE* file = fopen(filename, "rb");
  1069 + if (!file) {
  1070 + perror("fopen failed");
  1071 + return 0;
  1072 + }
1105 1073
1106 - return ret; 1074 + int value = 0;
  1075 + size_t read = fread(&value, sizeof(int), 1, file);
  1076 + fclose(file);
  1077 +
  1078 + if (read != 1) {
  1079 + fprintf(stderr, "Failed to read integer\n");
  1080 + return 0;
  1081 + }
  1082 + return value;
  1083 +}
  1084 +
  1085 +
  1086 +
  1087 +T_JZsdkReturnCode JZC1_PowerOff_Save()
  1088 +{
  1089 +
  1090 + JZSDK_LOG_INFO("开始关机保存");
  1091 +
  1092 + JZsdk_Osal_Mkdir("/root/ValueSave");
  1093 +
  1094 + //获取校正类型
  1095 + int correction_type;
  1096 + Camera_param(JZ_FLAGCODE_GET, CAMERA_CORRCTION_MODE, &correction_type);
  1097 + //保存
  1098 + save_int_to_file("/root/ValueSave/correction_type", correction_type);
  1099 + JZSDK_LOG_INFO("已存储校正类型:%d", correction_type);
  1100 +
  1101 + //保存单点校正模式
  1102 + int single_point_correction_mode;
  1103 + Proc_IRC_param(JZ_FLAGCODE_GET, JZSDK_WIDGET_SPC_MODE, &single_point_correction_mode);
  1104 + //保存
  1105 + save_int_to_file("/root/ValueSave/single_point_correction_mode", single_point_correction_mode);
  1106 + JZSDK_LOG_INFO("已存储单点校正模式:%d", single_point_correction_mode);
  1107 +
  1108 + //保存两点校正模式
  1109 + int double_point_correction_mode;
  1110 + Proc_IRC_param(JZ_FLAGCODE_GET, JZSDK_WIDGET_TPC_MODE, &double_point_correction_mode);
  1111 + //保存
  1112 + save_int_to_file("/root/ValueSave/double_point_correction_mode", double_point_correction_mode);
  1113 + JZSDK_LOG_INFO("已存储两点校正模式:%d", double_point_correction_mode);
  1114 +
  1115 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
1107 } 1116 }
1108 1117
  1118 +static T_JZsdkReturnCode JZC1_PowerOn_Read()
  1119 +{
  1120 + //读取校正类型
  1121 + int correction_type = read_int_from_file("/root/ValueSave/correction_type");
  1122 + //设置校正类型
  1123 + UIcontrol_CameraCorrectionMode(NO_SPECIFIED ,correction_type);
  1124 +
  1125 + //读取单点校正模式
  1126 + int single_point_correction_mode = read_int_from_file("/root/ValueSave/single_point_correction_mode");
  1127 + //设置单点校正模式
  1128 + UIcontrol_Set_SPCmode(NO_SPECIFIED, single_point_correction_mode);
  1129 +
  1130 + //读取两点校正模式
  1131 + int double_point_correction_mode = read_int_from_file("/root/ValueSave/double_point_correction_mode");
  1132 + //设置两点校正模式
  1133 + UIcontrol_Set_TpcMode(NO_SPECIFIED, double_point_correction_mode);
  1134 +
  1135 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  1136 +}
  1137 +
  1138 +//c1的实际初始化函数
  1139 +T_JZsdkReturnCode JZC1_Init(int mode)
  1140 +{
  1141 + //网口初始化
  1142 + if (mode == APP_UART)
  1143 + {
  1144 + //网口初始化
  1145 + JZsdk_NetWork_Init();
  1146 + }
  1147 +
  1148 +
  1149 +#ifdef RTK_MPP_STATUS_ON
  1150 +
  1151 + T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  1152 +
  1153 + T_JZsdkVideoMgmtHandler VideoMgmtHandler = {
  1154 + .SetNextFrame_IDR = JZC1_SetNextFrame_IDR,
  1155 + };
  1156 + VideoMgmt_Init(VideoMgmtHandler);
  1157 +
  1158 + //初始化红外的编码器
  1159 + g_JZC1_info.IRC_enc_info = (T_rtk_mmp_enc_info *)malloc(sizeof(T_rtk_mmp_enc_info));
  1160 + if (g_JZC1_info.IRC_enc_info == NULL)
  1161 + {
  1162 + JZSDK_LOG_ERROR("malloc enc_info failed");
  1163 + }
  1164 +
  1165 + g_JZC1_info.IRC_enc_info->Input_fmt = MPP_FMT_YUV420SP;
  1166 + g_JZC1_info.IRC_enc_info->encType = MPP_VIDEO_CodingAVC;
  1167 + g_JZC1_info.IRC_enc_info->width = JZ_C1_IRC_WIDTH;
  1168 + g_JZC1_info.IRC_enc_info->height = JZ_C1_IRC_HEIGHT;
  1169 + g_JZC1_info.IRC_enc_info->FrameNum = JZ_C1_IRC_FRAMERATE;
  1170 + g_JZC1_info.IRC_enc_info->IDR_gop = 5;
  1171 +
  1172 + g_JZC1_info.IRC_enc_info->hor_stride = JZ_ALIGN(g_JZC1_info.IRC_enc_info->width, 16);
  1173 + g_JZC1_info.IRC_enc_info->ver_stride = JZ_ALIGN(g_JZC1_info.IRC_enc_info->height, 16);
  1174 +
  1175 + RTK_mmp_enc_Init(g_JZC1_info.IRC_enc_info);
  1176 +
  1177 + //初始化光学摄像头的解码器
  1178 + g_JZC1_info.Opt_dec_info = (T_rtk_mmp_dec_info *)malloc(sizeof(T_rtk_mmp_dec_info));
  1179 + if (g_JZC1_info.Opt_dec_info == NULL)
  1180 + {
  1181 + JZSDK_LOG_ERROR("malloc dec_info failed");
  1182 + }
  1183 +
  1184 + g_JZC1_info.Opt_dec_info->Dec_type = MPP_VIDEO_CodingMJPEG;
  1185 + g_JZC1_info.Opt_dec_info->out_format = MPP_FMT_YUV420SP;
  1186 + g_JZC1_info.Opt_dec_info->width = JZ_C1_OPT_WIDTH;
  1187 + g_JZC1_info.Opt_dec_info->height = JZ_C1_OPT_HEIGHT;
  1188 +
  1189 + g_JZC1_info.Opt_dec_info->hor_stride = JZ_ALIGN(g_JZC1_info.Opt_dec_info->width, 16);
  1190 + g_JZC1_info.Opt_dec_info->ver_stride = JZ_ALIGN(g_JZC1_info.Opt_dec_info->height, 16);
  1191 +
  1192 + RTK_mmp_dec_Init(g_JZC1_info.Opt_dec_info);
  1193 +
  1194 + //初始化光学的编码器
  1195 + g_JZC1_info.Opt_enc_info = (T_rtk_mmp_enc_info *)malloc(sizeof(T_rtk_mmp_enc_info));
  1196 + if (g_JZC1_info.Opt_enc_info == NULL)
  1197 + {
  1198 + JZSDK_LOG_ERROR("malloc enc_info failed");
  1199 + }
  1200 +
  1201 + g_JZC1_info.Opt_enc_info->Input_fmt = MPP_FMT_YUV420SP;
  1202 + g_JZC1_info.Opt_enc_info->encType = MPP_VIDEO_CodingAVC;
  1203 + g_JZC1_info.Opt_enc_info->width = JZ_C1_OPT_WIDTH;
  1204 + g_JZC1_info.Opt_enc_info->height = JZ_C1_OPT_HEIGHT;
  1205 + g_JZC1_info.Opt_enc_info->FrameNum = JZ_C1_OPT_FRAMERATE;
  1206 + g_JZC1_info.Opt_enc_info->IDR_gop = 15;
  1207 +
  1208 + g_JZC1_info.Opt_enc_info->hor_stride = JZ_ALIGN(g_JZC1_info.Opt_enc_info->width, 16);
  1209 + g_JZC1_info.Opt_enc_info->ver_stride = JZ_ALIGN(g_JZC1_info.Opt_enc_info->height, 16);
  1210 +
  1211 + RTK_mmp_enc_Init(g_JZC1_info.Opt_enc_info);
  1212 +
  1213 + //初始化融合的编码器
  1214 + g_JZC1_info.Fuse_enc_info = (T_rtk_mmp_enc_info *)malloc(sizeof(T_rtk_mmp_enc_info));
  1215 + if (g_JZC1_info.Fuse_enc_info == NULL)
  1216 + {
  1217 + JZSDK_LOG_ERROR("malloc enc_info failed");
  1218 + }
  1219 +
  1220 + g_JZC1_info.Fuse_enc_info->Input_fmt = MPP_FMT_YUV420SP;
  1221 + g_JZC1_info.Fuse_enc_info->encType = MPP_VIDEO_CodingAVC;
  1222 + g_JZC1_info.Fuse_enc_info->width = JZ_C1_FUSE_WIDTH;
  1223 + g_JZC1_info.Fuse_enc_info->height = JZ_C1_FUSE_HEIGHT;
  1224 + g_JZC1_info.Fuse_enc_info->FrameNum = JZ_C1_FUSE_FRAMERATE;
  1225 + g_JZC1_info.Fuse_enc_info->IDR_gop = 15;
  1226 +
  1227 + g_JZC1_info.Fuse_enc_info->hor_stride = JZ_ALIGN(g_JZC1_info.Fuse_enc_info->width, 16);
  1228 + g_JZC1_info.Fuse_enc_info->ver_stride = JZ_ALIGN(g_JZC1_info.Fuse_enc_info->height, 16);
  1229 +
  1230 + RTK_mmp_enc_Init(g_JZC1_info.Fuse_enc_info);
  1231 +
  1232 + //初始化光学相机
  1233 + g_JZC1_info.Opt_Camera_info = (JZsdk_CameraInfo *)malloc(sizeof(JZsdk_CameraInfo));
  1234 + if (g_JZC1_info.Opt_Camera_info == NULL)
  1235 + {
  1236 + JZSDK_LOG_ERROR("malloc camera_info failed");
  1237 + }
  1238 +
  1239 + g_JZC1_info.Opt_Camera_info->width = JZ_C1_OPT_WIDTH;
  1240 + g_JZC1_info.Opt_Camera_info->height = JZ_C1_OPT_HEIGHT;
  1241 + g_JZC1_info.Opt_Camera_info->FrameNum = JZ_C1_OPT_FRAMERATE;
  1242 + g_JZC1_info.Opt_Camera_info->CameraFormat = JZ_C1_OPT_PIXEL;
  1243 + g_JZC1_info.Opt_Camera_info->ThreadMode = JZSDK_SINGLE_THREAD;
  1244 + memset(&(g_JZC1_info.Opt_Camera_info->CameraParam), 0, sizeof(JZsdk_CameraParam));
  1245 + memset(g_JZC1_info.Opt_Camera_info->CmeraDevPath, 0, sizeof(g_JZC1_info.Opt_Camera_info->CmeraDevPath));
  1246 + memcpy(g_JZC1_info.Opt_Camera_info->CmeraDevPath, JZ_C1_OPT_DEV_PATH, strlen(JZ_C1_OPT_DEV_PATH));
  1247 + g_JZC1_info.Opt_Camera_info->SingleDataOutput = JZC1_OptDeal;
  1248 +
  1249 +
  1250 + ret = Camera_Init(g_JZC1_info.Opt_Camera_info);
  1251 + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  1252 + {
  1253 + JZSDK_LOG_ERROR("光学相机启动失败");
  1254 + }
  1255 +
  1256 + //初始化IRC_funtion模块
  1257 + ret = IRC_ParamInit(JZ_C1_IRC_HEIGHT, JZ_C1_IRC_WIDTH, 25);
  1258 + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  1259 + {
  1260 + JZSDK_LOG_ERROR("初始化红外的数据处理失败");
  1261 + }
  1262 + else
  1263 + {
  1264 + //初始化红外的数据输入
  1265 + ret = JZsdk_JZC1_Irc_Data_Init();
  1266 + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  1267 + {
  1268 + JZSDK_LOG_ERROR("红外相机初始化失败");
  1269 + }
  1270 + }
  1271 +
  1272 + //默认推送红外摄像头 后续改成 红外+光学 的组合画面
  1273 + VideoMgmt_VideoStreamFlowIndex(JZ_C1_FUSE_INDEX);
  1274 +
  1275 + //设置快门为开
  1276 + JZsdk_Camera_ShutterSwitch(JZ_FLAGCODE_ON);
  1277 +
  1278 + //设置伪彩颜色为hot
  1279 + int value = 8;
  1280 + Camera_param(JZ_FLAGCODE_SET, CAMERA_PSEUDO_COLOR, &value);
  1281 +
  1282 + //设置为默认输出模式
  1283 + value = 0;
  1284 + Camera_param(JZ_FLAGCODE_SET, CAMERA_PIXEL_PSEUDO_COLOR_MODE, &value);
  1285 +
  1286 + //设置默认打开自动校正
  1287 + value = JZ_FLAGCODE_ON;
  1288 + Proc_IRC_param(JZ_FLAGCODE_SET, JZSDK_WIDGET_BAD_PIXEL_CORRECT_MODE, &value);
1109 1289
  1290 + //初始化变焦模块
  1291 + Cam_Zoom_Init();
1110 1292
  1293 + //初始化C1的RGA模块
  1294 +#ifdef RTK_RGA_STATUS_ON
1111 1295
  1296 + g_JZC1_info.IRC_rga_info = (C1_RgaInfo *)malloc(sizeof(C1_RgaInfo));
  1297 + if (g_JZC1_info.IRC_rga_info == NULL)
  1298 + {
  1299 + JZSDK_LOG_ERROR("malloc IRC_rga_info failed");
  1300 + }
1112 1301
  1302 + ret = JZC1_RgaInit(g_JZC1_info.IRC_rga_info, g_JZC1_info.IRC_enc_info->hor_stride, g_JZC1_info.IRC_enc_info->ver_stride, RK_FORMAT_YCbCr_420_SP);
1113 1303
  1304 + g_JZC1_info.Opt_rga_info = (C1_RgaInfo *)malloc(sizeof(C1_RgaInfo));
  1305 + if (g_JZC1_info.Opt_rga_info == NULL)
  1306 + {
  1307 + JZSDK_LOG_ERROR("malloc Opt_rga_info failed");
  1308 + }
1114 1309
  1310 + ret = JZC1_RgaInit(g_JZC1_info.Opt_rga_info, g_JZC1_info.Opt_enc_info->hor_stride, g_JZC1_info.Opt_enc_info->ver_stride, RK_FORMAT_YCbCr_420_SP);
1115 1311
  1312 + //混合视频初始化
  1313 + JZC1_MixedVideo_Init();
  1314 +#endif
1116 1315
1117 1316
  1317 +#endif
1118 1318
  1319 + //注册保存的回调函数
  1320 + PowerManager_RegisterPowerOffCallback(JZC1_PowerOff_Save);
1119 1321
  1322 + //注册读取保存的回调函数
  1323 + PowerManager_RegisterPowerOnCallback(JZC1_PowerOn_Read);
1120 1324
  1325 + JZSDK_LOG_INFO("JZC1_Init success");
1121 1326
  1327 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  1328 +}
@@ -25,7 +25,7 @@ extern "C" { @@ -25,7 +25,7 @@ extern "C" {
25 25
26 /* Exported types ------------------------------------------------------------*/ 26 /* Exported types ------------------------------------------------------------*/
27 27
28 -T_JZsdkReturnCode JZC1_Init(); 28 +T_JZsdkReturnCode JZC1_Init(int mode);
29 29
30 30
31 #ifdef __cplusplus 31 #ifdef __cplusplus
  1 +#include "JZsdkLib.h"
  2 +#include "BaseConfig.h"
  3 +#include <pthread.h>
  4 +
  5 +#include "JZsdk_Hal.h"
  6 +#include "Megaphone/Megaphone.h"
  7 +#include "AudioDeal/AudioDeal.h"
  8 +#include "Gimbal/Gimbal.h"
  9 +
  10 +/****************************
  11 + *
  12 + * h10 h10t 初始化
  13 + *
  14 + * mode psdk为psdk模式 uart为串口模式
  15 + *
  16 + * ****************************/
  17 +T_JZsdkReturnCode JZ_h10_init(int mode)
  18 +{
  19 + //音频库初始化
  20 + AudioDeal_Init();
  21 +
  22 + int value[5] = {0};
  23 + if (mode == APP_UART)
  24 + {
  25 + //串口设备1初始化
  26 + value[0] = UART_DEV1_BITRATE;
  27 + JZsdk_HalPort_Init(UART_DEV_1, value);
  28 +
  29 + }
  30 +
  31 + //喊话器初始化
  32 + Megaphone_Init();
  33 +
  34 + //云台初始化
  35 + Gimbal_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT);
  36 +}
1 /** 1 /**
2 ******************************************************************** 2 ********************************************************************
3 - * @file DeviceConfig.h  
4 - * DeviceConfig.h的头文件 3 + * @file JZ_h10.h
  4 + * JZ_h10.h的头文件
5 * 5 *
6 ********************************************************************* 6 *********************************************************************
7 */ 7 */
8 8
9 /* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/ 9 /* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
10 -#ifndef DEVICE_CONFIG_H  
11 -#define DEVICE_CONFIG_H 10 +#ifndef JZ_h10_H
  11 +#define JZ_h10_H
12 12
13 #include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h" 13 #include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
14 14
15 -#include "DeviceConfig/JZC1/JZC1.h"  
16 -  
17 15
18 /* Includes ------------------------------------------------------------------*/ 16 /* Includes ------------------------------------------------------------------*/
19 #ifdef __cplusplus 17 #ifdef __cplusplus
@@ -27,6 +25,8 @@ extern "C" { @@ -27,6 +25,8 @@ extern "C" {
27 25
28 /* Exported types ------------------------------------------------------------*/ 26 /* Exported types ------------------------------------------------------------*/
29 27
  28 +T_JZsdkReturnCode JZ_h10_init(int mode);
  29 +
30 30
31 #ifdef __cplusplus 31 #ifdef __cplusplus
32 } 32 }
  1 +#include "JZsdkLib.h"
  2 +#include "BaseConfig.h"
  3 +#include <pthread.h>
  4 +
  5 +
  6 +#include "JZsdk_Hal.h"
  7 +#include "Megaphone/Megaphone.h"
  8 +#include "AudioDeal/AudioDeal.h"
  9 +#include "Gimbal/Gimbal.h"
  10 +
  11 +/****************************
  12 + *
  13 + * h10 h10t 初始化
  14 + *
  15 + * mode psdk为psdk模式 uart为串口模式
  16 + *
  17 + * ****************************/
  18 +T_JZsdkReturnCode JZ_h10t_init(int mode)
  19 +{
  20 + //音频库初始化
  21 + AudioDeal_Init();
  22 +
  23 + int value[5] = {0};
  24 + if (mode == APP_UART)
  25 + {
  26 + //串口设备1初始化
  27 + value[0] = UART_DEV1_BITRATE;
  28 + JZsdk_HalPort_Init(UART_DEV_1, value);
  29 +
  30 + }
  31 +
  32 + //4g设备初始化
  33 + value[0] = COMM_4G_UART_BITRATE;
  34 + JZsdk_HalPort_Init(UART_4G, value);
  35 +
  36 + //喊话器初始化
  37 + Megaphone_Init();
  38 +
  39 + //云台初始化
  40 + Gimbal_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT);
  41 +}
  1 +/**
  2 + ********************************************************************
  3 + * @file JZ_h10.h
  4 + * JZ_h10.h的头文件
  5 + *
  6 + *********************************************************************
  7 + */
  8 +
  9 +/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
  10 +#ifndef JZ_h10_H
  11 +#define JZ_h10_H
  12 +
  13 +#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
  14 +
  15 +
  16 +/* Includes ------------------------------------------------------------------*/
  17 +#ifdef __cplusplus
  18 +extern "C" {
  19 +#endif
  20 +
  21 +
  22 +
  23 +/* Exported constants --------------------------------------------------------*/
  24 +/* 常亮定义*/
  25 +
  26 +/* Exported types ------------------------------------------------------------*/
  27 +
  28 +T_JZsdkReturnCode JZ_h10_init(int mode);
  29 +
  30 +
  31 +#ifdef __cplusplus
  32 +}
  33 +#endif
  34 +
  35 +#endif
  1 +#include "JZsdkLib.h"
  2 +#include "BaseConfig.h"
  3 +#include <pthread.h>
  4 +
  5 +
  6 +#include "JZsdk_Hal.h"
  7 +#include "Megaphone/Megaphone.h"
  8 +#include "AudioDeal/AudioDeal.h"
  9 +#include "Gimbal/Gimbal.h"
  10 +#include "MediaProc/MediaProc.h"
  11 +
  12 +
  13 +
  14 +
  15 +typedef struct T_H150S_Info
  16 +{
  17 + JZsdk_CameraInfo *CamereInfo;
  18 +}T_H150S_Info;
  19 +
  20 +static T_H150S_Info g_H150S_Info;
  21 +
  22 +#define JZ_H150S_OPT_WIDTH 1920
  23 +#define JZ_H150S_OPT_HEIGHT 1080
  24 +#define JZ_H150S_OPT_FRAMERATE 25
  25 +#define JZ_H150S_OPT_INDEX VIDEOMGMT_STREAMING_FLOW_INDEX_FIRST
  26 +#define JZ_H150S_OPT_DEV_PATH ("/dev/video0")
  27 +#define JZ_H150S_OPT_PIXEL V4L2_PIX_FMT_H264
  28 +
  29 +#define JZ_H150S_OPT_BRIGHTNESS (80) //亮度,该摄像头亮度范围为 1-255 默认128
  30 +#define JZ_H150S_OPT_CONTRAST (155) //对比度,摄像头对比度范围为 1-255 默认128
  31 +#define JZ_H150S_OPT_SATURATION (128) //饱和度 摄像头饱和度范围为 1-255 默认128
  32 +
  33 +static T_JZsdkReturnCode JZ_h150s_h150t_PushFrame(int CameraIndex,unsigned char *data, int data_len)
  34 +{
  35 + int currentIndex = VideoMgmt_GetVideoStreamFlowIndexNum(); //获取当前视频流索引
  36 + //无视频流
  37 + if (currentIndex == 0)
  38 + {
  39 + //不推送视频
  40 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  41 + }
  42 +
  43 + //相机
  44 + if (currentIndex == JZ_H150S_OPT_INDEX && CameraIndex == JZ_H150S_OPT_INDEX)
  45 + {
  46 + //推送数据到流转模块
  47 + VideoMgmt_Single_FrameIn(data, data_len);
  48 + }
  49 +
  50 +}
  51 +
  52 +static T_JZsdkReturnCode JZ_h150s_h150t_Opt_deal(unsigned char *buf, int len)
  53 +{
  54 + JZ_h150s_h150t_PushFrame(VIDEOMGMT_STREAMING_FLOW_INDEX_FIRST, buf, len);
  55 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  56 +}
  57 +
  58 +
  59 +/****************************
  60 + *
  61 + * h150s h150t 初始化
  62 + *
  63 + * mode psdk为psdk模式 uart为串口模式
  64 + *
  65 + * ****************************/
  66 +T_JZsdkReturnCode JZ_h150s_h150t_init(int mode)
  67 +{
  68 + T_JZsdkReturnCode ret;
  69 +
  70 + //音频库初始化
  71 + AudioDeal_Init();
  72 +
  73 + if (mode == APP_UART)
  74 + {
  75 + //串口设备1初始化
  76 + int value[1];
  77 + value[0] = UART_DEV1_BITRATE;
  78 + JZsdk_HalPort_Init(UART_DEV_1, value);
  79 + }
  80 +
  81 + //h150t额外开启4g
  82 + if (DEVICE_VERSION == JZ_H150T)
  83 + {
  84 + //4g设备初始化
  85 + int value[1];
  86 + value[0] = COMM_4G_UART_BITRATE;
  87 + JZsdk_HalPort_Init(UART_4G, value);
  88 + }
  89 +
  90 + if (mode == APP_UART)
  91 + {
  92 + //网口初始化
  93 + JZsdk_NetWork_Init();
  94 + }
  95 +
  96 + //喊话器初始化
  97 + Megaphone_Init();
  98 +
  99 + //云台初始化
  100 + Gimbal_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT);
  101 +
  102 + //视频流模块初始化
  103 + T_JZsdkVideoMgmtHandler VideoMgmtHandler = {
  104 + .SetNextFrame_IDR = NULL,
  105 + };
  106 + VideoMgmt_Init(VideoMgmtHandler);
  107 +
  108 + //相机初始化
  109 + g_H150S_Info.CamereInfo = (JZsdk_CameraInfo *)malloc(sizeof(JZsdk_CameraInfo));
  110 + if (g_H150S_Info.CamereInfo == NULL)
  111 + {
  112 + JZSDK_LOG_ERROR("malloc error");
  113 + }
  114 +
  115 + memset(g_H150S_Info.CamereInfo, 0, sizeof(JZsdk_CameraInfo));
  116 + g_H150S_Info.CamereInfo->width = JZ_H150S_OPT_WIDTH;
  117 + g_H150S_Info.CamereInfo->height = JZ_H150S_OPT_HEIGHT;
  118 + g_H150S_Info.CamereInfo->FrameNum = JZ_H150S_OPT_FRAMERATE;
  119 + g_H150S_Info.CamereInfo->CameraFormat = JZ_H150S_OPT_PIXEL;
  120 + memcpy(g_H150S_Info.CamereInfo->CmeraDevPath, JZ_H150S_OPT_DEV_PATH, strlen(JZ_H150S_OPT_DEV_PATH));
  121 + g_H150S_Info.CamereInfo->ThreadMode = JZSDK_SINGLE_THREAD;
  122 + g_H150S_Info.CamereInfo->SingleDataOutput = JZ_h150s_h150t_Opt_deal;
  123 + g_H150S_Info.CamereInfo->CameraParam.Brightness = JZ_H150S_OPT_BRIGHTNESS;
  124 + g_H150S_Info.CamereInfo->CameraParam.Contrast = JZ_H150S_OPT_CONTRAST;
  125 + g_H150S_Info.CamereInfo->CameraParam.Saturation = JZ_H150S_OPT_SATURATION;
  126 +
  127 + ret = Camera_Init(g_H150S_Info.CamereInfo);
  128 + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  129 + {
  130 + JZSDK_LOG_ERROR("光学相机启动失败");
  131 + }
  132 +
  133 + VideoMgmt_VideoStreamFlowIndex(JZ_H150S_OPT_INDEX);
  134 +
  135 + JZSDK_LOG_INFO("Module Init success");
  136 +
  137 +}
  1 +/**
  2 + ********************************************************************
  3 + * @file JZ_h150s_h150t.h
  4 + * JZ_h150s_h150t.h的头文件
  5 + *
  6 + *********************************************************************
  7 + */
  8 +
  9 +/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
  10 +#ifndef JZ_H150S_H150T_H
  11 +#define JZ_H150S_H150T_H
  12 +
  13 +#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
  14 +
  15 +
  16 +/* Includes ------------------------------------------------------------------*/
  17 +#ifdef __cplusplus
  18 +extern "C" {
  19 +#endif
  20 +
  21 +
  22 +
  23 +/* Exported constants --------------------------------------------------------*/
  24 +/* 常亮定义*/
  25 +
  26 +/* Exported types ------------------------------------------------------------*/
  27 +
  28 +T_JZsdkReturnCode JZ_h150s_h150t_init(int mode);
  29 +
  30 +
  31 +#ifdef __cplusplus
  32 +}
  33 +#endif
  34 +
  35 +#endif
  1 +#include "JZsdkLib.h"
  2 +#include "BaseConfig.h"
  3 +#include <pthread.h>
  4 +
  5 +#include "JZsdk_Hal.h"
  6 +#include "Megaphone/Megaphone.h"
  7 +#include "AudioDeal/AudioDeal.h"
  8 +
  9 +/****************************
  10 + *
  11 + * h1e 初始化
  12 + *
  13 + * mode psdk为psdk模式 uart为串口模式
  14 + *
  15 + * ****************************/
  16 +T_JZsdkReturnCode JZ_h1e_init(int mode)
  17 +{
  18 + int value[5] = {0};
  19 + //音频库初始化
  20 + AudioDeal_Init();
  21 +
  22 + if (mode == APP_UART)
  23 + {
  24 + //串口设备1初始化
  25 + value[0] = UART_DEV1_BITRATE;
  26 + JZsdk_HalPort_Init(UART_DEV_1, value);
  27 + }
  28 +
  29 + //喊话器初始化
  30 + Megaphone_Init();
  31 +
  32 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  33 +}
  1 +/**
  2 + ********************************************************************
  3 + * @file JZ_h1e.h
  4 + * JZ_h1e.h的头文件
  5 + *
  6 + *********************************************************************
  7 + */
  8 +
  9 +/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
  10 +#ifndef JZ_H1E_H
  11 +#define JZ_H1E_H
  12 +
  13 +#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
  14 +
  15 +
  16 +/* Includes ------------------------------------------------------------------*/
  17 +#ifdef __cplusplus
  18 +extern "C" {
  19 +#endif
  20 +
  21 +
  22 +
  23 +/* Exported constants --------------------------------------------------------*/
  24 +/* 常亮定义*/
  25 +
  26 +/* Exported types ------------------------------------------------------------*/
  27 +
  28 +T_JZsdkReturnCode JZ_h1e_init(int mode);
  29 +
  30 +
  31 +#ifdef __cplusplus
  32 +}
  33 +#endif
  34 +
  35 +#endif
  1 +#include "JZsdkLib.h"
  2 +#include "BaseConfig.h"
  3 +#include <pthread.h>
  4 +
  5 +#include "JZsdk_Hal.h"
  6 +#include "Megaphone/Megaphone.h"
  7 +#include "AudioDeal/AudioDeal.h"
  8 +#include "Gimbal/Gimbal.h"
  9 +
  10 +/****************************
  11 + *
  12 + * h15tt 初始化
  13 + *
  14 + * mode psdk为psdk模式 uart为串口模式
  15 + *
  16 + * ****************************/
  17 +T_JZsdkReturnCode JZ_h1t_init(int mode)
  18 +{
  19 + int value[5] = {0};
  20 +
  21 + //音频库初始化
  22 + AudioDeal_Init();
  23 +
  24 + if (mode == APP_UART)
  25 + {
  26 + //串口设备1初始化
  27 + value[0] = UART_DEV1_BITRATE;
  28 + JZsdk_HalPort_Init(UART_DEV_1, value);
  29 + }
  30 +
  31 + //4g设备初始化
  32 + value[0] = COMM_4G_UART_BITRATE;
  33 + JZsdk_HalPort_Init(UART_4G, value);
  34 +
  35 + //喊话器初始化
  36 + Megaphone_Init();
  37 +
  38 + //云台初始化
  39 + Gimbal_Init(JZ_MODULE_CONTROL_WAY_TRANSPARENT);
  40 +
  41 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  42 +}
  1 +/**
  2 + ********************************************************************
  3 + * @file JZ_h1t.h
  4 + * JZ_h1t.h的头文件
  5 + *
  6 + *********************************************************************
  7 + */
  8 +
  9 +/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
  10 +#ifndef JZ_H1T_H
  11 +#define JZ_H1T_H
  12 +
  13 +#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
  14 +
  15 +
  16 +/* Includes ------------------------------------------------------------------*/
  17 +#ifdef __cplusplus
  18 +extern "C" {
  19 +#endif
  20 +
  21 +
  22 +
  23 +/* Exported constants --------------------------------------------------------*/
  24 +/* 常亮定义*/
  25 +
  26 +/* Exported types ------------------------------------------------------------*/
  27 +
  28 +T_JZsdkReturnCode JZ_h1t_init(int mode);
  29 +
  30 +
  31 +#ifdef __cplusplus
  32 +}
  33 +#endif
  34 +
  35 +#endif
  1 +#include "JZsdkLib.h"
  2 +#include "BaseConfig.h"
  3 +#include <pthread.h>
  4 +
  5 +
  6 +#include "JZsdk_Hal.h"
  7 +#include "Megaphone/Megaphone.h"
  8 +#include "AudioDeal/AudioDeal.h"
  9 +#include "Gimbal/Gimbal.h"
  10 +
  11 +/****************************
  12 + *
  13 + * u3 初始化
  14 + *
  15 + * mode psdk为psdk模式 uart为串口模式
  16 + *
  17 + * ****************************/
  18 +T_JZsdkReturnCode JZ_u3_init(int mode)
  19 +{
  20 + //音频库初始化
  21 + AudioDeal_Init();
  22 +
  23 + int value[5] = {0};
  24 + if (mode == APP_UART)
  25 + {
  26 + //串口设备1初始化
  27 + value[0] = UART_DEV1_BITRATE;
  28 + JZsdk_HalPort_Init(UART_DEV_1, value);
  29 +
  30 + }
  31 +
  32 + //串口设备2初始化
  33 + value[0] = UART_DEV2_BITRATE;
  34 + JZsdk_HalPort_Init(UART_DEV_2, value);
  35 +
  36 + //喊话器初始化
  37 + Megaphone_Init();
  38 +
  39 + //云台初始化
  40 + Gimbal_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT);
  41 +
  42 + //灯类初始化
  43 + Lighting_Init();
  44 +
  45 + delayMs(1000);
  46 +
  47 + //消息订阅初始化
  48 + HalSend_type1Send_MessageSubcription_Control(UART_DEV_2, JZ_FLAGCODE_ON);
  49 +
  50 +}
  1 +/**
  2 + ********************************************************************
  3 + * @file JZ_u3.h
  4 + * JZ_u3.h的头文件
  5 + *
  6 + *********************************************************************
  7 + */
  8 +
  9 +/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
  10 +#ifndef JZ_u3_H
  11 +#define JZ_u3_H
  12 +
  13 +#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
  14 +
  15 +
  16 +/* Includes ------------------------------------------------------------------*/
  17 +#ifdef __cplusplus
  18 +extern "C" {
  19 +#endif
  20 +
  21 +
  22 +
  23 +/* Exported constants --------------------------------------------------------*/
  24 +/* 常亮定义*/
  25 +
  26 +/* Exported types ------------------------------------------------------------*/
  27 +
  28 +T_JZsdkReturnCode JZ_u3_init(int mode);
  29 +
  30 +
  31 +#ifdef __cplusplus
  32 +}
  33 +#endif
  34 +
  35 +#endif
  1 +#include "JZsdkLib.h"
  2 +#include "BaseConfig.h"
  3 +#include <pthread.h>
  4 +
  5 +
  6 +#include "JZsdk_Hal.h"
  7 +#include "Megaphone/Megaphone.h"
  8 +#include "AudioDeal/AudioDeal.h"
  9 +#include "Gimbal/Gimbal.h"
  10 +
  11 +/****************************
  12 + *
  13 + * u30 初始化
  14 + *
  15 + * mode psdk为psdk模式 uart为串口模式
  16 + *
  17 + * ****************************/
  18 +T_JZsdkReturnCode JZ_u30_init(int mode)
  19 +{
  20 + //音频库初始化
  21 + AudioDeal_Init();
  22 +
  23 + int value[5] = {0};
  24 + if (mode == APP_UART)
  25 + {
  26 + //串口设备1初始化
  27 + value[0] = UART_DEV1_BITRATE;
  28 + JZsdk_HalPort_Init(UART_DEV_1, value);
  29 +
  30 + }
  31 +
  32 + //串口设备2初始化
  33 + value[0] = UART_DEV2_BITRATE;
  34 + JZsdk_HalPort_Init(UART_DEV_2, value);
  35 +
  36 + //喊话器初始化
  37 + Megaphone_Init();
  38 +
  39 + //云台初始化
  40 + Gimbal_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT);
  41 +
  42 + //灯类初始化
  43 + Lighting_Init();
  44 +
  45 + delayMs(1000);
  46 +
  47 + //消息订阅初始化
  48 + HalSend_type1Send_MessageSubcription_Control(UART_DEV_2, JZ_FLAGCODE_ON);
  49 +
  50 +}
  1 +/**
  2 + ********************************************************************
  3 + * @file JZ_u30.h
  4 + * JZ_u30.h的头文件
  5 + *
  6 + *********************************************************************
  7 + */
  8 +
  9 +/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
  10 +#ifndef JZ_u30_H
  11 +#define JZ_u30_H
  12 +
  13 +#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
  14 +
  15 +
  16 +/* Includes ------------------------------------------------------------------*/
  17 +#ifdef __cplusplus
  18 +extern "C" {
  19 +#endif
  20 +
  21 +
  22 +
  23 +/* Exported constants --------------------------------------------------------*/
  24 +/* 常亮定义*/
  25 +
  26 +/* Exported types ------------------------------------------------------------*/
  27 +
  28 +T_JZsdkReturnCode JZ_u30_init(int mode);
  29 +
  30 +
  31 +#ifdef __cplusplus
  32 +}
  33 +#endif
  34 +
  35 +#endif
  1 +#include "JZsdkLib.h"
  2 +#include "BaseConfig.h"
  3 +#include <pthread.h>
  4 +
  5 +
  6 +#include "JZsdk_Hal.h"
  7 +#include "Megaphone/Megaphone.h"
  8 +#include "AudioDeal/AudioDeal.h"
  9 +#include "Gimbal/Gimbal.h"
  10 +
  11 +/****************************
  12 + *
  13 + * u3d 初始化
  14 + *
  15 + * mode psdk为psdk模式 uart为串口模式
  16 + *
  17 + * ****************************/
  18 +T_JZsdkReturnCode JZ_u3d_init(int mode)
  19 +{
  20 + //音频库初始化
  21 + AudioDeal_Init();
  22 +
  23 + int value[5] = {0};
  24 + if (mode == APP_UART)
  25 + {
  26 + //串口设备1初始化
  27 + value[0] = UART_DEV1_BITRATE;
  28 + JZsdk_HalPort_Init(UART_DEV_1, value);
  29 +
  30 + }
  31 +
  32 + //串口设备2初始化
  33 + value[0] = UART_DEV2_BITRATE;
  34 + JZsdk_HalPort_Init(UART_DEV_2, value);
  35 +
  36 + //喊话器初始化
  37 + Megaphone_Init();
  38 +
  39 + //云台初始化
  40 + Gimbal_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT);
  41 +
  42 + //灯类初始化
  43 + Lighting_Init();
  44 +
  45 + delayMs(1000);
  46 +
  47 + //消息订阅初始化
  48 + HalSend_type1Send_MessageSubcription_Control(UART_DEV_2, JZ_FLAGCODE_ON);
  49 +
  50 +}
  1 +/**
  2 + ********************************************************************
  3 + * @file JZ_u3d.h
  4 + * JZ_u3d.h的头文件
  5 + *
  6 + *********************************************************************
  7 + */
  8 +
  9 +/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
  10 +#ifndef JZ_u3d_H
  11 +#define JZ_u3d_H
  12 +
  13 +#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
  14 +
  15 +
  16 +/* Includes ------------------------------------------------------------------*/
  17 +#ifdef __cplusplus
  18 +extern "C" {
  19 +#endif
  20 +
  21 +
  22 +
  23 +/* Exported constants --------------------------------------------------------*/
  24 +/* 常亮定义*/
  25 +
  26 +/* Exported types ------------------------------------------------------------*/
  27 +
  28 +T_JZsdkReturnCode JZ_u3d_init(int mode);
  29 +
  30 +
  31 +#ifdef __cplusplus
  32 +}
  33 +#endif
  34 +
  35 +#endif
  1 +#include "JZsdkLib.h"
  2 +#include "BaseConfig.h"
  3 +#include <pthread.h>
  4 +
  5 +#include "JZsdk_Hal.h"
  6 +#include "Megaphone/Megaphone.h"
  7 +#include "AudioDeal/AudioDeal.h"
  8 +#include "Gimbal/Gimbal.h"
  9 +#include "SideLaser/SideLaser.h"
  10 +
  11 +/****************************
  12 + *
  13 + * u3s 初始化
  14 + *
  15 + * mode psdk为psdk模式 uart为串口模式
  16 + *
  17 + * ****************************/
  18 +T_JZsdkReturnCode JZ_u3s_init(int mode)
  19 +{
  20 + //音频库初始化
  21 + AudioDeal_Init();
  22 +
  23 + int value[5] = {0};
  24 + if (mode == APP_UART)
  25 + {
  26 + //串口设备1初始化
  27 + value[0] = UART_DEV1_BITRATE;
  28 + JZsdk_HalPort_Init(UART_DEV_1, value);
  29 +
  30 + }
  31 +
  32 + //串口设备2初始化
  33 + value[0] = UART_DEV2_BITRATE;
  34 + JZsdk_HalPort_Init(UART_DEV_2, value);
  35 +
  36 + //喊话器初始化
  37 + Megaphone_Init();
  38 +
  39 + //云台初始化
  40 + Gimbal_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT);
  41 +
  42 + //灯类初始化
  43 + Lighting_Init();
  44 +#ifdef SIDE_LASER_STATUS_ON
  45 + //侧边激光初始化
  46 + SideLaser_Init();
  47 +#endif
  48 + delayMs(1000);
  49 +
  50 + //消息订阅初始化
  51 + HalSend_type1Send_MessageSubcription_Control(UART_DEV_2, JZ_FLAGCODE_ON);
  52 +
  53 +}
  1 +/**
  2 + ********************************************************************
  3 + * @file JZ_u3s.h
  4 + * JZ_u3s.h的头文件
  5 + *
  6 + *********************************************************************
  7 + */
  8 +
  9 +/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
  10 +#ifndef JZ_u3s_H
  11 +#define JZ_u3s_H
  12 +
  13 +#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
  14 +
  15 +
  16 +/* Includes ------------------------------------------------------------------*/
  17 +#ifdef __cplusplus
  18 +extern "C" {
  19 +#endif
  20 +
  21 +
  22 +
  23 +/* Exported constants --------------------------------------------------------*/
  24 +/* 常亮定义*/
  25 +
  26 +/* Exported types ------------------------------------------------------------*/
  27 +
  28 +T_JZsdkReturnCode JZ_u3s_init(int mode);
  29 +
  30 +
  31 +#ifdef __cplusplus
  32 +}
  33 +#endif
  34 +
  35 +#endif
  1 +#include "JZsdkLib.h"
  2 +#include "BaseConfig.h"
  3 +#include <pthread.h>
  4 +
  5 +
  6 +#include "JZsdk_Hal.h"
  7 +#include "Megaphone/Megaphone.h"
  8 +#include "AudioDeal/AudioDeal.h"
  9 +#include "Gimbal/Gimbal.h"
  10 +
  11 +/****************************
  12 + *
  13 + * a1 初始化
  14 + *
  15 + * mode psdk为psdk模式 uart为串口模式
  16 + *
  17 + * ****************************/
  18 +T_JZsdkReturnCode TF_a1_init(int mode)
  19 +{
  20 + //音频库初始化
  21 + AudioDeal_Init();
  22 +
  23 + int value[5] = {0};
  24 + if (mode == APP_UART)
  25 + {
  26 + //串口设备1初始化
  27 + value[0] = UART_DEV1_BITRATE;
  28 + JZsdk_HalPort_Init(UART_DEV_1, value);
  29 + }
  30 +
  31 + //串口设备2初始化
  32 + value[0] = UART_DEV2_BITRATE;
  33 + JZsdk_HalPort_Init(UART_DEV_2, value);
  34 +
  35 + //喊话器初始化
  36 + Megaphone_Init();
  37 +
  38 + //云台初始化
  39 + Gimbal_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT);
  40 +
  41 + //灯类初始化
  42 + Lighting_Init();
  43 +
  44 + delayMs(1000);
  45 +
  46 + //消息订阅初始化
  47 + HalSend_type1Send_MessageSubcription_Control(UART_DEV_2, JZ_FLAGCODE_ON);
  48 +}
  1 +/**
  2 + ********************************************************************
  3 + * @file tf_a1.h
  4 + * tf_a1.h的头文件
  5 + *
  6 + *********************************************************************
  7 + */
  8 +
  9 +/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
  10 +#ifndef TF_A1_H
  11 +#define TF_A1_H
  12 +
  13 +#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
  14 +
  15 +
  16 +/* Includes ------------------------------------------------------------------*/
  17 +#ifdef __cplusplus
  18 +extern "C" {
  19 +#endif
  20 +
  21 +
  22 +
  23 +/* Exported constants --------------------------------------------------------*/
  24 +/* 常亮定义*/
  25 +
  26 +/* Exported types ------------------------------------------------------------*/
  27 +
  28 +T_JZsdkReturnCode TF_a1_init(int mode);
  29 +
  30 +
  31 +#ifdef __cplusplus
  32 +}
  33 +#endif
  34 +
  35 +#endif
@@ -7,19 +7,19 @@ @@ -7,19 +7,19 @@
7 #define VERSION_CHOOSE_H 7 #define VERSION_CHOOSE_H
8 #include "JZsdk_Base/JZsdk_Code/JZsdk_DeviceCode.h" 8 #include "JZsdk_Base/JZsdk_Code/JZsdk_DeviceCode.h"
9 //1~10行 除了D可以修改版本选择 禁止动任何东西 9 //1~10行 除了D可以修改版本选择 禁止动任何东西
10 -#define DEVICE_VERSION JZ_H1T 10 +#define DEVICE_VERSION JZ_U30
11 11
12 //禁止修改行 选择是串口程序 还是 psdk程序 12 //禁止修改行 选择是串口程序 还是 psdk程序
13 -#define APP_VERSION APP_UART 13 +#define APP_VERSION APP_PSDK
14 14
15 //禁止修改行 板子型号 15 //禁止修改行 板子型号
16 #define PLATFORM_VERSION PLATFORM_V3S 16 #define PLATFORM_VERSION PLATFORM_V3S
17 17
18 //禁止修改行 串口连接程序的软件版本号 18 //禁止修改行 串口连接程序的软件版本号
19 -#define MAJOR_VERSION 0x00  
20 -#define MINOR_VERSION 0x00  
21 -#define MODIFY_VERSION 0x02  
22 -#define DEBUG_VERSION 0x13 19 +#define MAJOR_VERSION 0x01
  20 +#define MINOR_VERSION 0x03
  21 +#define MODIFY_VERSION 0x10
  22 +#define DEBUG_VERSION 0x00
23 23
24 //禁止修改行 滤波方式 24 //禁止修改行 滤波方式
25 #define FILTERING_TYPE HIGH_PASS_FILTERING 25 #define FILTERING_TYPE HIGH_PASS_FILTERING
@@ -38,6 +38,11 @@ @@ -38,6 +38,11 @@
38 38
39 //这个开关可以方便日常代码编写的跳转功能 39 //这个开关可以方便日常代码编写的跳转功能
40 #ifdef COMPILE_MODE_MODULE 40 #ifdef COMPILE_MODE_MODULE
  41 + //是否开启音频库功能
  42 + #ifdef MACRO_AUDIODEAL_MODULE
  43 + #define AUDIODEAL_CONFIG_STATUS_ON
  44 + #endif
  45 +
41 //是否开启喊话器功能 46 //是否开启喊话器功能
42 #ifdef MACRO_MEGAPHONE_MODULE 47 #ifdef MACRO_MEGAPHONE_MODULE
43 #define MEGAPHONE_CONFIG_STATUS_ON 48 #define MEGAPHONE_CONFIG_STATUS_ON
@@ -89,6 +94,10 @@ @@ -89,6 +94,10 @@
89 #endif 94 #endif
90 95
91 #else //这里用于方便调试使用,不是实际加载的模组 96 #else //这里用于方便调试使用,不是实际加载的模组
  97 +
  98 + //是否开启音频库功能
  99 + #define AUDIODEAL_CONFIG_STATUS_ON
  100 +
92 //是否开启喊话器功能 101 //是否开启喊话器功能
93 #define MEGAPHONE_CONFIG_STATUS_ON 102 #define MEGAPHONE_CONFIG_STATUS_ON
94 103
@@ -60,6 +60,10 @@ int HalRecv_type1_PreliminaryScreeningOfData(unsigned char *Data, int DataLen, i @@ -60,6 +60,10 @@ int HalRecv_type1_PreliminaryScreeningOfData(unsigned char *Data, int DataLen, i
60 //JZSDK_LOG_INFO("hal-数据传输,接受到数据+未处理数据的长度len: %d", DataLen); 60 //JZSDK_LOG_INFO("hal-数据传输,接受到数据+未处理数据的长度len: %d", DataLen);
61 break; 61 break;
62 62
  63 + case NET_DEV_1:
  64 + //JZSDK_LOG_INFO("网络-设备1号,接受到数据+未处理数据的长度len: %d", DataLen);
  65 + break;
  66 +
63 /********** 未报备的接口 ************/ 67 /********** 未报备的接口 ************/
64 default: 68 default:
65 ResidualLength = 0; 69 ResidualLength = 0;
@@ -25,9 +25,13 @@ @@ -25,9 +25,13 @@
25 #include "Megaphone/Music/AudioFile/Megaphone_AudioFile.h" 25 #include "Megaphone/Music/AudioFile/Megaphone_AudioFile.h"
26 #include "Megaphone/Opus/Megaphone_Opus.h" 26 #include "Megaphone/Opus/Megaphone_Opus.h"
27 #include "Megaphone/PcmAudio/PcmAudioFile.h" 27 #include "Megaphone/PcmAudio/PcmAudioFile.h"
  28 +#endif
28 29
  30 +#ifdef AUDIODEAL_CONFIG_STATUS_ON
  31 + #include "AudioDeal/AudioDeal.h"
29 #endif 32 #endif
30 33
  34 +
31 static int HalRecvMode = JZ_FLAGCODE_OFF; //接收模式,主要是为了限制不同设备同时要求hal层做出 同一个数据接收相关功能 ,目前做法是只限定一个hal设备使用一种数据接收模式 35 static int HalRecvMode = JZ_FLAGCODE_OFF; //接收模式,主要是为了限制不同设备同时要求hal层做出 同一个数据接收相关功能 ,目前做法是只限定一个hal设备使用一种数据接收模式
32 static int HalRecvDataLen = 0; //用于计算接收数据长度 36 static int HalRecvDataLen = 0; //用于计算接收数据长度
33 37
@@ -1640,6 +1644,8 @@ static T_JZsdkReturnCode RecvDeal_Delete_Audio(int Port, char *getbuf) @@ -1640,6 +1644,8 @@ static T_JZsdkReturnCode RecvDeal_Delete_Audio(int Port, char *getbuf)
1640 memcpy(FileName, &getbuf[9], FileName_Length); 1644 memcpy(FileName, &getbuf[9], FileName_Length);
1641 FileName[FileName_Length] = '\0'; // 确保文件名以null结尾 1645 FileName[FileName_Length] = '\0'; // 确保文件名以null结尾
1642 1646
  1647 + JZSDK_LOG_INFO("删除音频:%s", FileName);
  1648 +
1643 //3、拼接指令 1649 //3、拼接指令
1644 char FilePath[512]; 1650 char FilePath[512];
1645 snprintf(FilePath, 512 ,"/root/sdcard/audio/%s", FileName); 1651 snprintf(FilePath, 512 ,"/root/sdcard/audio/%s", FileName);
@@ -3063,6 +3069,8 @@ static T_JZsdkReturnCode RecvDeal_SearchLight_SubscriptionControl(int Port, char @@ -3063,6 +3069,8 @@ static T_JZsdkReturnCode RecvDeal_SearchLight_SubscriptionControl(int Port, char
3063 HalSend_type1Send_Reply_Failure(Port, FrameSequence); 3069 HalSend_type1Send_Reply_Failure(Port, FrameSequence);
3064 } 3070 }
3065 3071
  3072 + UIcontrol_Set_SearchLight_MessageSubscribe(Port, value);
  3073 +
3066 //回复操作成功 3074 //回复操作成功
3067 HalSend_type1Send_Reply_Success(Port, FrameSequence); 3075 HalSend_type1Send_Reply_Success(Port, FrameSequence);
3068 3076
@@ -3332,8 +3340,305 @@ static T_JZsdkReturnCode RecvDeal_Upgrade_End(int Port, char *getbuf) @@ -3332,8 +3340,305 @@ static T_JZsdkReturnCode RecvDeal_Upgrade_End(int Port, char *getbuf)
3332 return ret; 3340 return ret;
3333 } 3341 }
3334 3342
  3343 +/*******************************************************************************************************************************
  3344 + *
  3345 + * 视频流部分
  3346 + *
  3347 + * *******************************************************************************************************************************/
  3348 +T_JZsdkReturnCode RecvDeal_Set_VideoPushIndex(int Port, char *getbuf)
  3349 +{
  3350 + JZSDK_LOG_INFO("%s,视频推送索引",JZsdk_DefineCode_GetPortName(Port));
  3351 +
  3352 + //获取帧的序列号
  3353 + int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
  3354 +
  3355 + //1、通过数据帧,获取控制值
  3356 + int value = getbuf[9];
  3357 +
  3358 + T_JZsdkReturnCode ret = UIcontrol_Set_VideoMgmtPushIndex(Port, value);
  3359 + if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  3360 + {
  3361 + //回复操作成功
  3362 + HalSend_type1Send_Reply_Success(Port, FrameSequence);
  3363 + }
  3364 + else
  3365 + {
  3366 + //回复操作失败
  3367 + HalSend_type1Send_Reply_Failure(Port, FrameSequence);
  3368 + }
  3369 +
  3370 + return ret;
  3371 +}
  3372 +
  3373 +T_JZsdkReturnCode RecvDeal_Set_ShutterControl(int Port, char *getbuf)
  3374 +{
  3375 + JZSDK_LOG_INFO("%s,快门控制",JZsdk_DefineCode_GetPortName(Port));
  3376 +
  3377 + //获取帧的序列号
  3378 + int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
  3379 +
  3380 + //1、通过数据帧,获取控制值
  3381 + int value = getbuf[9];
  3382 +
  3383 + T_JZsdkReturnCode ret = UIcontrol_Set_ShutterSwitch(Port, value);
  3384 + if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  3385 + {
  3386 + //回复操作成功
  3387 + HalSend_type1Send_Reply_Success(Port, FrameSequence);
  3388 + }
  3389 + else
  3390 + {
  3391 + //回复操作失败
  3392 + HalSend_type1Send_Reply_Failure(Port, FrameSequence);
  3393 + }
  3394 +
  3395 + return ret;
  3396 +}
  3397 +
  3398 +T_JZsdkReturnCode RecvDeal_Set_FreezeControl(int Port, char *getbuf)
  3399 +{
  3400 + JZSDK_LOG_INFO("%s,冻结控制",JZsdk_DefineCode_GetPortName(Port));
  3401 +
  3402 + //获取帧的序列号
  3403 + int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
  3404 +
  3405 + //1、通过数据帧,获取控制值
  3406 + int value = getbuf[9];
  3407 +
  3408 + T_JZsdkReturnCode ret = UIcontrol_FreezeVideo(Port, value);
  3409 + if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  3410 + {
  3411 + //回复操作成功
  3412 + HalSend_type1Send_Reply_Success(Port, FrameSequence);
  3413 + }
  3414 + else
  3415 + {
  3416 + //回复操作失败
  3417 + HalSend_type1Send_Reply_Failure(Port, FrameSequence);
  3418 + }
  3419 +
  3420 + return ret;
  3421 +}
  3422 +
  3423 +T_JZsdkReturnCode RecvDeal_Set_IRCCorrectWay(int Port, char *getbuf)
  3424 +{
  3425 + JZSDK_LOG_INFO("%s,红外校正方式",JZsdk_DefineCode_GetPortName(Port));
  3426 +
  3427 + //获取帧的序列号
  3428 + int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
  3429 +
  3430 + //1、通过数据帧,获取控制值
  3431 + int value = getbuf[10];
  3432 +
  3433 + T_JZsdkReturnCode ret = UIcontrol_CameraCorrectionMode(Port, value);
  3434 + if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  3435 + {
  3436 + //回复操作成功
  3437 + HalSend_type1Send_Reply_Success(Port, FrameSequence);
  3438 + }
  3439 + else
  3440 + {
  3441 + //回复操作失败
  3442 + HalSend_type1Send_Reply_Failure(Port, FrameSequence);
  3443 + }
  3444 +
  3445 + return ret;
  3446 +}
  3447 +
  3448 +T_JZsdkReturnCode RecvDeal_Set_IRCCorrectSPCParam(int Port, char *getbuf)
  3449 +{
  3450 + JZSDK_LOG_INFO("%s,红外spc控制",JZsdk_DefineCode_GetPortName(Port));
  3451 +
  3452 + T_JZsdkReturnCode ret;
  3453 +
  3454 + //获取帧的序列号
  3455 + int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
  3456 +
  3457 + //1、通过数据帧,获取控制值
  3458 + int mode = getbuf[9];
  3459 + int value = getbuf[10];
  3460 +
  3461 + //单点档位
  3462 + if (mode == 0x00)
  3463 + {
  3464 + ret = UIcontrol_Set_SPCmode(Port, value);
  3465 + }
  3466 + //单点校正模式
  3467 + else if (mode == 0x01)
  3468 + {
  3469 + ret = UIcontrol_Camera_SPC_ResetSwitch(Port, value);
  3470 + }
  3471 + //修改自动校正时间
  3472 + else if (mode == 0x02)
  3473 + {
  3474 + ret = UIcontrol_Set_SpcAutoTime(Port, value);
  3475 + }
  3476 + else
  3477 + {
  3478 + ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  3479 + }
  3480 +
  3481 + if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  3482 + {
  3483 + //回复操作成功
  3484 + HalSend_type1Send_Reply_Success(Port, FrameSequence);
  3485 + }
  3486 + else
  3487 + {
  3488 + //回复操作失败
  3489 + HalSend_type1Send_Reply_Failure(Port, FrameSequence);
  3490 + }
  3491 +
  3492 + return ret;
  3493 +}
  3494 +
  3495 +
  3496 +T_JZsdkReturnCode RecvDeal_Set_IRCCorrectTPCParam(int Port, char *getbuf)
  3497 +{
  3498 + JZSDK_LOG_INFO("%s,红外tpc控制",JZsdk_DefineCode_GetPortName(Port));
  3499 +
  3500 + T_JZsdkReturnCode ret;
  3501 +
  3502 + //获取帧的序列号
  3503 + int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
  3504 +
  3505 + //1、通过数据帧,获取控制值
  3506 + int mode = getbuf[9];
  3507 + int value = getbuf[10];
  3508 +
  3509 + //单点档位
  3510 + if (mode == 0x00)
  3511 + {
  3512 + ret = UIcontrol_Set_TpcMode(Port, value);
  3513 + }
  3514 + //修改两点校正数据组
  3515 + else if (mode == 0x01)
  3516 + {
  3517 + ret = UI_control_IrcMarkLowAndHighTemp(Port, value);
  3518 + }
  3519 + else
  3520 + {
  3521 + ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  3522 + }
  3523 +
  3524 + if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  3525 + {
  3526 + //回复操作成功
  3527 + HalSend_type1Send_Reply_Success(Port, FrameSequence);
  3528 + }
  3529 + else
  3530 + {
  3531 + //回复操作失败
  3532 + HalSend_type1Send_Reply_Failure(Port, FrameSequence);
  3533 + }
  3534 +
  3535 + return ret;
  3536 +}
  3537 +
  3538 +T_JZsdkReturnCode RecvDeal_Set_IRCCorrectColorOutputMode(int Port, char *getbuf)
  3539 +{
  3540 + JZSDK_LOG_INFO("%s,红外校正颜色输出模式",JZsdk_DefineCode_GetPortName(Port));
  3541 +
  3542 + //获取帧的序列号
  3543 + int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
  3544 +
  3545 + //1、通过数据帧,获取控制值
  3546 + int value = getbuf[10];
  3547 +
  3548 + T_JZsdkReturnCode ret = UIcontrol_Set_PixelColorMode(Port, value);
  3549 + if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  3550 + {
  3551 + //回复操作成功
  3552 + HalSend_type1Send_Reply_Success(Port, FrameSequence);
  3553 + }
  3554 + else
  3555 + {
  3556 + //回复操作失败
  3557 + HalSend_type1Send_Reply_Failure(Port, FrameSequence);
  3558 + }
  3559 +
  3560 + return ret;
  3561 +}
  3562 +
  3563 +T_JZsdkReturnCode RecvDeal_Set_IRCCorrectPseudoColorParam(int Port, char *getbuf)
  3564 +{
  3565 + JZSDK_LOG_INFO("%s,红外伪彩参数",JZsdk_DefineCode_GetPortName(Port));
  3566 +
  3567 + T_JZsdkReturnCode ret;
  3568 +
  3569 + //获取帧的序列号
  3570 + int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
  3571 +
  3572 + //1、通过数据帧,获取控制值
  3573 + int mode = getbuf[9];
  3574 + int value = getbuf[10];
  3575 +
  3576 + //修改伪彩颜色
  3577 + if(mode == 0x00)
  3578 + {
  3579 + ret = UIcontrol_Set_PseudoColor(Port, value);
  3580 + }
  3581 + else
  3582 + {
  3583 + ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  3584 + }
  3585 +
  3586 + if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  3587 + {
  3588 + //回复操作成功
  3589 + HalSend_type1Send_Reply_Success(Port, FrameSequence);
  3590 + }
  3591 + else
  3592 + {
  3593 + //回复操作失败
  3594 + HalSend_type1Send_Reply_Failure(Port, FrameSequence);
  3595 + }
  3596 +
  3597 + return ret;
  3598 +}
  3599 +
  3600 +
  3601 +
  3602 +T_JZsdkReturnCode RecvDeal_Set_IRCCorrectGasEnhanceParam(int Port, char *getbuf)
  3603 +{
  3604 + JZSDK_LOG_INFO("%s,红外气体增强参数",JZsdk_DefineCode_GetPortName(Port));
  3605 +
  3606 + T_JZsdkReturnCode ret;
  3607 +
  3608 + //获取帧的序列号
  3609 + int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
  3610 +
  3611 + //1、通过数据帧,获取控制值
  3612 + int mode = getbuf[9];
  3613 + int value = getbuf[10];
3335 3614
  3615 + //修改气体增强颜色
  3616 + if(mode == 0x00)
  3617 + {
  3618 + ret = UIcontrol_Set_GasEnhancementColor(Port, value);
  3619 + }
  3620 + else if (mode == 0x01)
  3621 + {
  3622 + ret = UIcontrol_GasEnhancementCorrect(Port, value);
  3623 + }
  3624 + else
  3625 + {
  3626 + ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  3627 + }
  3628 +
  3629 + if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  3630 + {
  3631 + //回复操作成功
  3632 + HalSend_type1Send_Reply_Success(Port, FrameSequence);
  3633 + }
  3634 + else
  3635 + {
  3636 + //回复操作失败
  3637 + HalSend_type1Send_Reply_Failure(Port, FrameSequence);
  3638 + }
3336 3639
  3640 + return ret;
  3641 +}
3337 3642
3338 /******************************************************************************************************************************* 3643 /*******************************************************************************************************************************
3339 * 3644 *
@@ -4152,11 +4457,15 @@ static T_JZsdkReturnCode RecvDeal_SetSpecialParameters(int Port, char *getbuf) @@ -4152,11 +4457,15 @@ static T_JZsdkReturnCode RecvDeal_SetSpecialParameters(int Port, char *getbuf)
4152 //0x01设置滤波 4457 //0x01设置滤波
4153 case 0x01: 4458 case 0x01:
4154 { 4459 {
4155 - ret = Main_M30_all_filter_mode(&value); 4460 +#ifdef MEGAPHONE_CONFIG_STATUS_ON
  4461 +
  4462 + ret = AudioDeal_SetFilterMode(value);
4156 if(ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) 4463 if(ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
4157 { 4464 {
4158 JZSDK_LOG_ERROR("特参一失败"); 4465 JZSDK_LOG_ERROR("特参一失败");
4159 } 4466 }
  4467 +
  4468 +#endif
4160 } 4469 }
4161 break; 4470 break;
4162 4471
@@ -4209,11 +4518,11 @@ static T_JZsdkReturnCode RecvDeal_CheckSpecialParameters(int Port, char *getbuf) @@ -4209,11 +4518,11 @@ static T_JZsdkReturnCode RecvDeal_CheckSpecialParameters(int Port, char *getbuf)
4209 //0x01设置滤波 4518 //0x01设置滤波
4210 case 0x01: 4519 case 0x01:
4211 { 4520 {
4212 - ret = Main_M30_all_filter_mode(&value);  
4213 - if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)  
4214 - {  
4215 - JZSDK_LOG_ERROR("特参一获取失败");  
4216 - } 4521 +#ifdef MEGAPHONE_CONFIG_STATUS_ON
  4522 +
  4523 + value = AudioDeal_GetFilterMode();
  4524 + ret = JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  4525 +#endif
4217 } 4526 }
4218 break; 4527 break;
4219 4528
@@ -4853,6 +5162,50 @@ static T_JZsdkReturnCode RecvDeal_InstructInput(int Port, int Receive_mode, unsi @@ -4853,6 +5162,50 @@ static T_JZsdkReturnCode RecvDeal_InstructInput(int Port, int Receive_mode, unsi
4853 RecvDeal_Upgrade_End(Port,getbuf); 5162 RecvDeal_Upgrade_End(Port,getbuf);
4854 break; 5163 break;
4855 5164
  5165 + //设置推流索引值
  5166 + case JZ_INSCODE_5AFRAME_CAMERA_VIDEO_PUSH_INDEX:
  5167 + RecvDeal_Set_VideoPushIndex(Port,getbuf);
  5168 + break;
  5169 +
  5170 + //设置快门控制
  5171 + case JZ_INSCODE_5AFRAME_CAMERA_SHUTTER_CONTROL:
  5172 + RecvDeal_Set_ShutterControl(Port,getbuf);
  5173 + break;
  5174 +
  5175 + //冻结控制
  5176 + case JZ_INSCODE_5AFRAME_CAMERA_FREEZE_CONTROL:
  5177 + RecvDeal_Set_FreezeControl(Port,getbuf);
  5178 + break;
  5179 +
  5180 + //红外校正方式
  5181 + case JZ_INSOCDE_5AFRAME_IRC_CORRECT_WAY:
  5182 + RecvDeal_Set_IRCCorrectWay(Port,getbuf);
  5183 + break;
  5184 +
  5185 + //红外单点参数
  5186 + case JZ_INSCODE_5AFRAME_IRC_SPC_PARAM:
  5187 + RecvDeal_Set_IRCCorrectSPCParam(Port,getbuf);
  5188 + break;
  5189 +
  5190 + //红外两点参数
  5191 + case JZ_INSCODE_5AFRAME_IRC_TPC_PARAM:
  5192 + RecvDeal_Set_IRCCorrectTPCParam(Port,getbuf);
  5193 + break;
  5194 +
  5195 + //红外色彩输出模式
  5196 + case JZ_INSOCDE_5AFRAME_IRC_OUTPUT_COLOR_MODE:
  5197 + RecvDeal_Set_IRCCorrectColorOutputMode(Port,getbuf);
  5198 + break;
  5199 +
  5200 + //红外伪彩输出控制
  5201 + case JZ_INSCODE_5AFRAME_IRC_PSEUDO_COLOR_PARAM:
  5202 + RecvDeal_Set_IRCCorrectPseudoColorParam(Port,getbuf);
  5203 + break;
  5204 +
  5205 + //红外气体增强控制
  5206 + case JZ_INSCODE_5AFRAME_IRC_GAS_ENHANCE_PARAM:
  5207 + RecvDeal_Set_IRCCorrectGasEnhanceParam(Port,getbuf);
  5208 + break;
4856 5209
4857 /******************************************************************************************************************************* 5210 /*******************************************************************************************************************************
4858 * 5211 *
@@ -20,8 +20,8 @@ extern "C" { @@ -20,8 +20,8 @@ extern "C" {
20 20
21 /* Exported constants --------------------------------------------------------*/ 21 /* Exported constants --------------------------------------------------------*/
22 /* 常亮定义*/ 22 /* 常亮定义*/
23 -#define SINGLE_THREAD_SEND 0  
24 -#define MULTI_THREAD_SEND 1 23 +#define SINGLE_THREAD_SEND JZSDK_SINGLE_THREAD
  24 +#define MULTI_THREAD_SEND JZSDK_MULTI_THREAD
25 25
26 /* Exported types ------------------------------------------------------------*/ 26 /* Exported types ------------------------------------------------------------*/
27 27
1 #include <stdio.h> 1 #include <stdio.h>
2 #include <string.h> 2 #include <string.h>
3 #include <stdlib.h> 3 #include <stdlib.h>
4 -#include <termios.h> 4 +#include <unistd.h>
  5 +
5 #include <sys/socket.h> 6 #include <sys/socket.h>
6 #include <netinet/in.h> 7 #include <netinet/in.h>
7 #include <arpa/inet.h> 8 #include <arpa/inet.h>
8 9
  10 +#include <termios.h>
  11 +
9 #include "BaseConfig.h" 12 #include "BaseConfig.h"
10 #include "version_choose.h" 13 #include "version_choose.h"
11 14
12 #include "JZsdkLib.h" 15 #include "JZsdkLib.h"
13 #include "./JZsdk_network.h" 16 #include "./JZsdk_network.h"
14 17
  18 +#include "../Hal_Recv/HalRecv.h"
  19 +
15 #define LINUX_CMD_STR_MAX_SIZE (128) 20 #define LINUX_CMD_STR_MAX_SIZE (128)
16 #define LINUX_NETWORK_DEV "eth0" 21 #define LINUX_NETWORK_DEV "eth0"
  22 +
17 #define UDP_SERVER_PORT (23003) 23 #define UDP_SERVER_PORT (23003)
  24 +#define TCP_SERVER_PORT (23004)
  25 +#define MAX_LISTEN_NUM (5)
18 26
19 #define MAX_SEND_FRAME_LENTH (60000) 27 #define MAX_SEND_FRAME_LENTH (60000)
20 28
21 #define JZSDK_UTIL_MIN(a, b) (((a) < (b)) ? (a) : (b)) 29 #define JZSDK_UTIL_MIN(a, b) (((a) < (b)) ? (a) : (b))
22 30
23 -static int udp_socket = 0;  
24 -static struct sockaddr_in udp_server_addr; 31 +typedef struct T_JZsdk_network_Info
  32 +{
  33 + //udp套接字
  34 + int udp_socket;
  35 +
  36 + //udp服务器地址
  37 + struct sockaddr_in udp_server_addr;
  38 +
  39 + //udp端口
  40 + int udp_port;
  41 +
  42 + //tcp套接字
  43 + int tcp_socket;
  44 +
  45 + //tcp服务器地址
  46 + struct sockaddr_in tcp_server_addr;
  47 +
  48 + //tcp端口
  49 + int tcp_port;
  50 +}T_JZsdk_network_Info;
  51 +
  52 +T_JZsdk_network_Info g_JZsdk_network_Info;
  53 +
  54 +
25 static int NetworkMode = JZ_FLAGCODE_OFF; //网络模式 55 static int NetworkMode = JZ_FLAGCODE_OFF; //网络模式
26 56
  57 +static T_JZsdkReturnCode JZsdk_NetWork_UdpInit()
  58 +{
  59 + //创建UDP socket 套接字
  60 + g_JZsdk_network_Info.udp_socket = socket(AF_INET, SOCK_DGRAM, 0);
  61 + if (g_JZsdk_network_Info.udp_socket == -1) {
  62 + JZSDK_LOG_ERROR("网口套接字注册失败");
  63 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  64 + }
  65 +
  66 + //配置udp服务器地址
  67 + memset(&g_JZsdk_network_Info.udp_server_addr, 0, sizeof(g_JZsdk_network_Info.udp_server_addr));
  68 + g_JZsdk_network_Info.udp_server_addr.sin_family = AF_INET;
  69 + g_JZsdk_network_Info.udp_server_addr.sin_port = htons(g_JZsdk_network_Info.udp_port);
  70 + if(inet_aton(NET_WORK_TARGET_IPADDR, &g_JZsdk_network_Info.udp_server_addr.sin_addr) == 0)
  71 + {
  72 + JZSDK_LOG_ERROR("udp服务器配置失败");
  73 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  74 + }
  75 +}
  76 +
  77 +static T_JZsdkReturnCode handle_client(int client_socket, int port)
  78 +{
  79 + char buffer[4096] = {0}; // 初始化接收缓冲区
  80 + ssize_t bytes_read;
  81 +
  82 + // 读取客户端发送的数据
  83 + bytes_read = read(client_socket, buffer, 4096 - 1);
  84 + if (bytes_read > 0)
  85 + {
  86 + //printf("%s\n", buffer);
  87 +
  88 + // 检查是否是 OPTIONS 请求
  89 + if (strstr(buffer, "OPTIONS / HTTP/1.1") != NULL) {
  90 + // 返回允许跨域的响应头
  91 + const char *options_response =
  92 + "HTTP/1.1 200 OK\r\n"
  93 + "Access-Control-Allow-Origin: *\r\n"
  94 + "Access-Control-Allow-Methods: POST, OPTIONS\r\n"
  95 + "Access-Control-Allow-Headers: Content-Type\r\n"
  96 + "Content-Length: 0\r\n"
  97 + "\r\n";
  98 + write(client_socket, options_response, strlen(options_response));
  99 + close(client_socket);
  100 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  101 + }
  102 +
  103 + // 解析 HTTP 请求头中的 Content-Length
  104 + char *content_length = strstr(buffer, "Content-Length: ");
  105 + if (content_length) {
  106 + int len = atoi(content_length + 16); // 跳过 "Content-Length: " 的16个字符
  107 + unsigned char *body = strstr(buffer, "\r\n\r\n") + 4; // 定位消息体起始位置
  108 + //JZSDK_LOG_INFO("[Port %d] Received: %d%s\n", port, len, body); // 打印消息体内容
  109 +
  110 + HalRecv_type1_PreliminaryScreeningOfData(body, len, NET_DEV_1);
  111 + }
  112 + }
  113 +
  114 + // 发送固定 HTTP 响应
  115 + const char *response =
  116 + "HTTP/1.1 200 OK\r\n"
  117 + "Access-Control-Allow-Origin: *\r\n"
  118 + "Content-Length: 19\r\n"
  119 + "\r\n"
  120 + "Data received successfully";
  121 + write(client_socket, response, strlen(response));
  122 + close(client_socket); // 关闭客户端连接
  123 +
  124 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  125 +}
  126 +
  127 +static void *JZsdk_Tcp_RecvThread(void *arg)
  128 +{
  129 + while (1)
  130 + {
  131 + struct sockaddr_in client_addr;
  132 + socklen_t client_addr_len = sizeof(client_addr);
  133 + int client_socket = accept(g_JZsdk_network_Info.tcp_socket, (struct sockaddr *)&client_addr, &client_addr_len);
  134 + if(client_socket == -1)
  135 + {
  136 + JZSDK_LOG_ERROR("tcp服务器接收失败");
  137 + continue;
  138 + }
  139 +
  140 + handle_client(client_socket, g_JZsdk_network_Info.tcp_port); // 处理客户端请求
  141 + }
  142 +}
  143 +
  144 +static T_JZsdkReturnCode JZsdk_NetWork_TcpInit()
  145 +{
  146 + T_JZsdkOsalHandler *osal_handler = JZsdk_Platform_GetOsalHandler();
  147 + if(osal_handler == NULL)
  148 + {
  149 + JZSDK_LOG_ERROR("osal_handler is NULL");
  150 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  151 + }
  152 +
  153 + //创建tcp socket套接字
  154 + g_JZsdk_network_Info.tcp_socket = socket(AF_INET, SOCK_STREAM, 0);
  155 + if (g_JZsdk_network_Info.tcp_socket == -1)
  156 + {
  157 + JZSDK_LOG_ERROR("网口套接字注册失败");
  158 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  159 + }
  160 +
  161 + //配置tcp服务器
  162 + memset(&g_JZsdk_network_Info.tcp_server_addr, 0, sizeof(g_JZsdk_network_Info.tcp_server_addr));
  163 + g_JZsdk_network_Info.tcp_server_addr.sin_family = AF_INET;
  164 + g_JZsdk_network_Info.tcp_server_addr.sin_port = htons(g_JZsdk_network_Info.tcp_port);
  165 + g_JZsdk_network_Info.tcp_server_addr.sin_addr.s_addr = inet_addr("192.168.5.3");
  166 +
  167 + //把tcp套接字绑定到指定地址
  168 + if(bind(g_JZsdk_network_Info.tcp_socket, (struct sockaddr *)&g_JZsdk_network_Info.tcp_server_addr, sizeof(g_JZsdk_network_Info.tcp_server_addr)) == -1)
  169 + {
  170 + JZSDK_LOG_ERROR("tcp服务器配置失败");
  171 + close(g_JZsdk_network_Info.tcp_socket);
  172 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  173 + }
  174 +
  175 + //进入监听状态
  176 + if(listen(g_JZsdk_network_Info.tcp_socket, MAX_LISTEN_NUM) == -1)
  177 + {
  178 + JZSDK_LOG_ERROR("tcp服务器监听失败");
  179 + close(g_JZsdk_network_Info.tcp_socket);
  180 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  181 + }
  182 +
  183 +
  184 + T_JZTaskHandle g_tcp_server_task = NULL;
  185 +
  186 + //创建监听线程
  187 + osal_handler->TaskCreate("tcp_server", JZsdk_Tcp_RecvThread, 8192, NULL, &g_tcp_server_task);
  188 +
  189 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  190 +}
  191 +
  192 +
27 T_JZsdkReturnCode JZsdk_NetWork_Init() 193 T_JZsdkReturnCode JZsdk_NetWork_Init()
28 { 194 {
29 T_JZsdkReturnCode ret; 195 T_JZsdkReturnCode ret;
@@ -35,6 +201,9 @@ T_JZsdkReturnCode JZsdk_NetWork_Init() @@ -35,6 +201,9 @@ T_JZsdkReturnCode JZsdk_NetWork_Init()
35 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; 201 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
36 } 202 }
37 203
  204 + g_JZsdk_network_Info.udp_port = UDP_SERVER_PORT;
  205 + g_JZsdk_network_Info.tcp_port = TCP_SERVER_PORT;
  206 +
38 //1、打开网卡设备 207 //1、打开网卡设备
39 memset(cmdStr, 0, sizeof(cmdStr)); 208 memset(cmdStr, 0, sizeof(cmdStr));
40 snprintf(cmdStr, sizeof(cmdStr), "ifconfig %s up", LINUX_NETWORK_DEV); 209 snprintf(cmdStr, sizeof(cmdStr), "ifconfig %s up", LINUX_NETWORK_DEV);
@@ -46,7 +215,7 @@ T_JZsdkReturnCode JZsdk_NetWork_Init() @@ -46,7 +215,7 @@ T_JZsdkReturnCode JZsdk_NetWork_Init()
46 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; 215 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
47 } 216 }
48 217
49 - //2、打开网络 218 + //2、配置IP地址
50 memset(cmdStr, 0, sizeof(cmdStr)); 219 memset(cmdStr, 0, sizeof(cmdStr));
51 snprintf(cmdStr, sizeof(cmdStr), "ifconfig %s %s netmask %s", LINUX_NETWORK_DEV, NET_WORK_IPADDR, NET_WORK_NETMASK); 220 snprintf(cmdStr, sizeof(cmdStr), "ifconfig %s %s netmask %s", LINUX_NETWORK_DEV, NET_WORK_IPADDR, NET_WORK_NETMASK);
52 ret = system(cmdStr); 221 ret = system(cmdStr);
@@ -57,22 +226,11 @@ T_JZsdkReturnCode JZsdk_NetWork_Init() @@ -57,22 +226,11 @@ T_JZsdkReturnCode JZsdk_NetWork_Init()
57 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; 226 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
58 } 227 }
59 228
60 - //3、创建UDP socket 套接字  
61 - udp_socket = socket(AF_INET, SOCK_DGRAM, 0);  
62 - if (udp_socket == -1) {  
63 - JZSDK_LOG_ERROR("网口套接字注册失败");  
64 - return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;  
65 - } 229 + //udp初始化
  230 + JZsdk_NetWork_UdpInit();
66 231
67 - //4、配置udp服务器地址  
68 - memset(&udp_server_addr, 0, sizeof(udp_server_addr));  
69 - udp_server_addr.sin_family = AF_INET;  
70 - udp_server_addr.sin_port = htons(UDP_SERVER_PORT);  
71 - if(inet_aton(NET_WORK_TARGET_IPADDR, &udp_server_addr.sin_addr) == 0)  
72 - {  
73 - JZSDK_LOG_ERROR("udp服务器配置失败");  
74 - return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;  
75 - } 232 + //tcp初始化
  233 + JZsdk_NetWork_TcpInit();
76 234
77 NetworkMode = JZ_FLAGCODE_ON; 235 NetworkMode = JZ_FLAGCODE_ON;
78 236
@@ -87,8 +245,8 @@ T_JZsdkReturnCode JZsdk_NetWork_DeInit() @@ -87,8 +245,8 @@ T_JZsdkReturnCode JZsdk_NetWork_DeInit()
87 245
88 static T_JZsdkReturnCode JZsdk_NetWork_Sent(const unsigned char *data, const int data_len) 246 static T_JZsdkReturnCode JZsdk_NetWork_Sent(const unsigned char *data, const int data_len)
89 { 247 {
90 - int bytes_sent = sendto(udp_socket, data, data_len, 0,  
91 - (struct sockaddr *) &udp_server_addr, sizeof(udp_server_addr)); 248 + int bytes_sent = sendto(g_JZsdk_network_Info.udp_socket, data, data_len, 0,
  249 + (struct sockaddr *) &g_JZsdk_network_Info.udp_server_addr, sizeof(g_JZsdk_network_Info.udp_server_addr));
92 250
93 if (bytes_sent == -1) 251 if (bytes_sent == -1)
94 { 252 {
@@ -17,8 +17,8 @@ @@ -17,8 +17,8 @@
17 extern "C" { 17 extern "C" {
18 #endif 18 #endif
19 19
20 -#define LINUX_USB_VID (0x04b4)  
21 -#define LINUX_USB_PID (0x00f1) 20 +#define JZSDK_USB_VID (0x04b4)
  21 +#define JZSDK_USB_PID (0x00f1)
22 #define USB_OUT_POINT (0x02) 22 #define USB_OUT_POINT (0x02)
23 #define USB_IN_POINT (0x86) 23 #define USB_IN_POINT (0x86)
24 24
@@ -89,6 +89,14 @@ T_JZsdkReturnCode AudioDeal_SetFilterMode(int mode) @@ -89,6 +89,14 @@ T_JZsdkReturnCode AudioDeal_SetFilterMode(int mode)
89 FF_Filter_Set_FilterMode(mode); 89 FF_Filter_Set_FilterMode(mode);
90 } 90 }
91 91
  92 +/*
  93 + 获取音频库的滤波模式
  94 + 0x00 默认滤波 0x01 M30滤波
  95 +*/
  96 +T_JZsdkReturnCode AudioDeal_GetFilterMode()
  97 +{
  98 + return FF_Filter_Get_FilterMode();
  99 +}
92 100
93 101
94 /****************************** 102 /******************************
@@ -102,6 +102,8 @@ int AudioDeal_GetPauseAndContinuePlayStatus(); @@ -102,6 +102,8 @@ int AudioDeal_GetPauseAndContinuePlayStatus();
102 102
103 T_JZsdkReturnCode Get_AudioDealStatus(); 103 T_JZsdkReturnCode Get_AudioDealStatus();
104 T_JZsdkReturnCode AudioDeal_SetFilterMode(int mode); 104 T_JZsdkReturnCode AudioDeal_SetFilterMode(int mode);
  105 +T_JZsdkReturnCode AudioDeal_GetFilterMode();
  106 +
105 T_JZsdkReturnCode AudioDeal_Mp3DataStop(); 107 T_JZsdkReturnCode AudioDeal_Mp3DataStop();
106 108
107 #ifdef __cplusplus 109 #ifdef __cplusplus
@@ -440,3 +440,8 @@ T_JZsdkReturnCode FF_Filter_Set_FilterMode(int mode) @@ -440,3 +440,8 @@ T_JZsdkReturnCode FF_Filter_Set_FilterMode(int mode)
440 g_FilterMode = mode; 440 g_FilterMode = mode;
441 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 441 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
442 } 442 }
  443 +
  444 +T_JZsdkReturnCode FF_Filter_Get_FilterMode()
  445 +{
  446 + return g_FilterMode;
  447 +}
@@ -21,6 +21,7 @@ T_JZsdkReturnCode FF_Filter_Init(struct AudioDealInfo *AD_Info, int AudioType); @@ -21,6 +21,7 @@ T_JZsdkReturnCode FF_Filter_Init(struct AudioDealInfo *AD_Info, int AudioType);
21 T_JZsdkReturnCode FF_Filter_push_frame_to_fliter(struct AudioDealInfo *AD_Info ,AVFrame* in_frame); 21 T_JZsdkReturnCode FF_Filter_push_frame_to_fliter(struct AudioDealInfo *AD_Info ,AVFrame* in_frame);
22 T_JZsdkReturnCode FF_Filter_get_frame_from_filter(struct AudioDealInfo *AD_Info ,AVFrame* out_frame); 22 T_JZsdkReturnCode FF_Filter_get_frame_from_filter(struct AudioDealInfo *AD_Info ,AVFrame* out_frame);
23 T_JZsdkReturnCode FF_Filter_Set_FilterMode(int mode); 23 T_JZsdkReturnCode FF_Filter_Set_FilterMode(int mode);
  24 +T_JZsdkReturnCode FF_Filter_Get_FilterMode();
24 25
25 /* Exported constants --------------------------------------------------------*/ 26 /* Exported constants --------------------------------------------------------*/
26 /* 常亮定义*/ 27 /* 常亮定义*/
@@ -4,21 +4,76 @@ @@ -4,21 +4,76 @@
4 #define POWER_STATUS_OFF 0 4 #define POWER_STATUS_OFF 0
5 #define POWER_STATUS_REBOOT 1 5 #define POWER_STATUS_REBOOT 1
6 6
7 -//电源管理初始化  
8 -T_JZsdkReturnCode PowerManger_Init() 7 +// 使用static限制全局变量可见范围
  8 +static T_JZsdkReturnCode (*g_PoweroffCallback)(void) = NULL;
  9 +static T_JZsdkReturnCode (*g_PoweronCallback)(void) = NULL;
  10 +
  11 +T_JZsdkReturnCode PowerManager_RegisterPowerOffCallback(T_JZsdkReturnCode (*callback)(void))
  12 +{
  13 + if (!callback)
  14 + {
  15 + JZSDK_LOG_ERROR("Invalid NULL callback");
  16 + return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER;
  17 + }
  18 +
  19 + g_PoweroffCallback = callback;
  20 +
  21 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  22 +}
  23 +
  24 +T_JZsdkReturnCode PowerManager_RegisterPowerOnCallback(T_JZsdkReturnCode (*callback)(void))
9 { 25 {
  26 + if (!callback)
  27 + {
  28 + JZSDK_LOG_ERROR("Invalid NULL callback");
  29 + return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER;
  30 + }
  31 +
  32 + g_PoweronCallback = callback;
10 33
  34 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
11 } 35 }
12 36
  37 +
13 //电源开关 38 //电源开关
14 T_JZsdkReturnCode PowerManger_PowerOff() 39 T_JZsdkReturnCode PowerManger_PowerOff()
15 { 40 {
16 JZSDK_LOG_INFO("执行关闭电源"); 41 JZSDK_LOG_INFO("执行关闭电源");
  42 +
  43 + if (g_PoweroffCallback) {
  44 + T_JZsdkReturnCode callbackRet = g_PoweroffCallback();
  45 + if (callbackRet != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  46 + {
  47 + JZSDK_LOG_ERROR("关机任务未正常执行");
  48 + }
  49 + }
  50 +
17 JZsdk_RunSystemCmd("poweroff"); 51 JZsdk_RunSystemCmd("poweroff");
18 52
19 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 53 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
20 } 54 }
21 55
  56 +//电源开机时的任务 //这意味着已经完成所有初始化
  57 +T_JZsdkReturnCode PowerManger_PowerOn()
  58 +{
  59 + JZSDK_LOG_INFO("执行开机任务");
  60 +
  61 + if (g_PoweronCallback) {
  62 + T_JZsdkReturnCode callbackRet = g_PoweronCallback();
  63 + if (callbackRet != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  64 + {
  65 + JZSDK_LOG_ERROR("开机任务未正常执行");
  66 + }
  67 + }
  68 +
  69 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  70 +}
  71 +
  72 +//电源管理初始化
  73 +T_JZsdkReturnCode PowerManger_Init()
  74 +{
  75 +
  76 +}
22 77
23 //电源重启 78 //电源重启
24 T_JZsdkReturnCode PowerManger_PowerReboot() 79 T_JZsdkReturnCode PowerManger_PowerReboot()
@@ -25,6 +25,9 @@ extern "C" { @@ -25,6 +25,9 @@ extern "C" {
25 25
26 /* Exported functions --------------------------------------------------------*/ 26 /* Exported functions --------------------------------------------------------*/
27 T_JZsdkReturnCode PowerManger_SetPowerStatus(int status); 27 T_JZsdkReturnCode PowerManger_SetPowerStatus(int status);
  28 +T_JZsdkReturnCode PowerManager_RegisterPowerOffCallback(T_JZsdkReturnCode (*callback)(void));
  29 +T_JZsdkReturnCode PowerManager_RegisterPowerOnCallback(T_JZsdkReturnCode (*callback)(void));
  30 +T_JZsdkReturnCode PowerManger_PowerOn();
28 31
29 32
30 #ifdef __cplusplus 33 #ifdef __cplusplus
@@ -293,7 +293,14 @@ static T_JZsdkReturnCode DeviceMessage_Enter_Debug(unsigned char *message) @@ -293,7 +293,14 @@ static T_JZsdkReturnCode DeviceMessage_Enter_Debug(unsigned char *message)
293 memset(old_message, 0, MESSAGE_MAX_LEN); 293 memset(old_message, 0, MESSAGE_MAX_LEN);
294 memset(new_message, 0, MESSAGE_MAX_LEN); 294 memset(new_message, 0, MESSAGE_MAX_LEN);
295 295
  296 + if (g_MessageLanguage == DEVICE_MESSAGE_CHINESE)
  297 + {
296 snprintf(new_message,MESSAGE_MAX_LEN,"调试界面\n"); 298 snprintf(new_message,MESSAGE_MAX_LEN,"调试界面\n");
  299 + }
  300 + else
  301 + {
  302 + snprintf(new_message,MESSAGE_MAX_LEN,"Debug-Perspective\n");
  303 + }
297 snprintf(old_message,MESSAGE_MAX_LEN,"%s",message); 304 snprintf(old_message,MESSAGE_MAX_LEN,"%s",message);
298 snprintf(message,MESSAGE_MAX_LEN,"%s%s",old_message,new_message); 305 snprintf(message,MESSAGE_MAX_LEN,"%s%s",old_message,new_message);
299 306
@@ -83,6 +83,14 @@ T_JZsdkReturnCode FOMAT_FirewareOriginRegion_Init(int SerialType, unsigned char @@ -83,6 +83,14 @@ T_JZsdkReturnCode FOMAT_FirewareOriginRegion_Init(int SerialType, unsigned char
83 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 83 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
84 } 84 }
85 85
  86 + //检测是否是欧洲定制区域固件
  87 + if ((SerialNumber[4] == 'E' || SerialNumber[4] == 'e')
  88 + && (SerialNumber[5] == 'U' || SerialNumber[5] == 'u'))
  89 + {
  90 + g_OriginRegionNum = ORIGIN_EU;
  91 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  92 + }
  93 +
86 //无匹配序列号 94 //无匹配序列号
87 if (FIRMWARE_ORIGIN == DOMESTIC_VERSION) 95 if (FIRMWARE_ORIGIN == DOMESTIC_VERSION)
88 { 96 {
@@ -26,6 +26,8 @@ static int WarningLight_Mode; //警灯模式 @@ -26,6 +26,8 @@ static int WarningLight_Mode; //警灯模式
26 static int WarningLight_Color1; //警灯颜色1 26 static int WarningLight_Color1; //警灯颜色1
27 static int WarningLight_Color2; //警灯颜色2 27 static int WarningLight_Color2; //警灯颜色2
28 28
  29 +static int g_SearchLight_Subscription_Flag = JZ_FLAGCODE_ON; //消息订阅状态
  30 +
29 #define MAX(a,b) ( (a>b) ?a:b ) 31 #define MAX(a,b) ( (a>b) ?a:b )
30 32
31 T_JZsdkReturnCode Lighting_Init() 33 T_JZsdkReturnCode Lighting_Init()
@@ -421,3 +423,26 @@ T_JZsdkReturnCode JZsdk_SearchLight_FlushLumen(int InputLumen) @@ -421,3 +423,26 @@ T_JZsdkReturnCode JZsdk_SearchLight_FlushLumen(int InputLumen)
421 { 423 {
422 JZsdk_SearchLightTemControl_FlushLumen(InputLumen); 424 JZsdk_SearchLightTemControl_FlushLumen(InputLumen);
423 } 425 }
  426 +
  427 +/****************
  428 + *
  429 + * 获取消息订阅状态
  430 + *
  431 + * *************/
  432 +int JZsdk_SearchLight_GetMessageSubFlag(void)
  433 +{
  434 + return g_SearchLight_Subscription_Flag;
  435 +}
  436 +
  437 +/***************************
  438 + *
  439 + * 设置消息订阅状态
  440 + *
  441 + *
  442 +************************/
  443 +T_JZsdkReturnCode JZsdk_SearchLight_SetMessageSubFlag(int InputFlag)
  444 +{
  445 + g_SearchLight_Subscription_Flag = InputFlag;
  446 +
  447 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  448 +}
@@ -55,6 +55,11 @@ T_JZsdkReturnCode Lighting_CheckStatus_WarningLightColor(int *ValueColor1, int * @@ -55,6 +55,11 @@ T_JZsdkReturnCode Lighting_CheckStatus_WarningLightColor(int *ValueColor1, int *
55 55
56 T_JZsdkReturnCode JZsdk_SearchLight_FlushLumen(int InputLumen); 56 T_JZsdkReturnCode JZsdk_SearchLight_FlushLumen(int InputLumen);
57 57
  58 +
  59 +int JZsdk_SearchLight_GetMessageSubFlag(void);
  60 +T_JZsdkReturnCode JZsdk_SearchLight_SetMessageSubFlag(int InputFlag);
  61 +
  62 +
58 #ifdef __cplusplus 63 #ifdef __cplusplus
59 } 64 }
60 #endif 65 #endif
@@ -94,39 +94,11 @@ T_JZsdkReturnCode JZsdk_FrameCatch_Init(int ThreadMode) @@ -94,39 +94,11 @@ T_JZsdkReturnCode JZsdk_FrameCatch_Init(int ThreadMode)
94 94
95 /*******************************************************************************************************************************************/ 95 /*******************************************************************************************************************************************/
96 96
97 -//多线程抓取数据线程  
98 -static void *JZsdk_Catch_MultiThread2(void *args)  
99 -{  
100 - while (1)  
101 - {  
102 - unsigned int buf_size = 0;  
103 - unsigned char *buf = NULL;  
104 -  
105 - //从相机中读取一张照片  
106 - V4L2_CameraFrameRecord_OnlyGetFrame(&buf, &buf_size);  
107 -  
108 - //printf("read: len:%d data[3]:%x data[4]:%x\n", buf_size, buf[3], buf[4]);  
109 -  
110 - if (buf == NULL)  
111 - {  
112 - JZSDK_LOG_ERROR("相机数据读取失败");  
113 - continue;  
114 - }  
115 -  
116 - //放入缓冲池 //将数据放入缓冲池,从而被其他线程使用  
117 - VideoMgmt_write_data(&args, buf, buf_size);  
118 -  
119 - //归还图片  
120 - V4L2_CameraFrameRecord_OnlyReturnFrame();  
121 - }  
122 -}  
123 -  
124 97
125 //单线程抓取数据线程 98 //单线程抓取数据线程
126 -static void *JZsdk_Catch_SingleThread2(void *args) 99 +static void *JZsdk_Catch_SingleThread(void *args)
127 { 100 {
128 - t_FrameCatch_TaskFuntionInput *task = (t_FrameCatch_TaskFuntionInput *)args;  
129 - 101 + JZsdk_CameraInfo *CameraInfo = (JZsdk_CameraInfo *)args;
130 while (1) 102 while (1)
131 { 103 {
132 104
@@ -134,7 +106,7 @@ static void *JZsdk_Catch_SingleThread2(void *args) @@ -134,7 +106,7 @@ static void *JZsdk_Catch_SingleThread2(void *args)
134 unsigned char *buf = NULL; 106 unsigned char *buf = NULL;
135 107
136 //从相机中读取一张照片 108 //从相机中读取一张照片
137 - V4L2_CameraFrameRecord_OnlyGetFrame(&buf, &buf_size); 109 + V4L2_CameraFrameRecord_OnlyGetFrame2(CameraInfo ,&buf, &buf_size);
138 110
139 //JZSDK_LOG_INFO("read: len:%d data[3]:%x data[4]:%x\n", buf_size, buf[3], buf[4]); 111 //JZSDK_LOG_INFO("read: len:%d data[3]:%x data[4]:%x\n", buf_size, buf[3], buf[4]);
140 112
@@ -145,10 +117,10 @@ static void *JZsdk_Catch_SingleThread2(void *args) @@ -145,10 +117,10 @@ static void *JZsdk_Catch_SingleThread2(void *args)
145 } 117 }
146 118
147 //进行数据处理 119 //进行数据处理
148 - task->task_function(buf, buf_size); 120 + CameraInfo->SingleDataOutput(buf, buf_size);
149 121
150 //归还图片 122 //归还图片
151 - V4L2_CameraFrameRecord_OnlyReturnFrame(); 123 + V4L2_CameraFrameRecord_OnlyReturnFrame2(CameraInfo);
152 } 124 }
153 } 125 }
154 126
@@ -161,43 +133,79 @@ static void *JZsdk_Catch_SingleThread2(void *args) @@ -161,43 +133,79 @@ static void *JZsdk_Catch_SingleThread2(void *args)
161 * 传入线程的处理函数 task_function 133 * 传入线程的处理函数 task_function
162 * 134 *
163 * *****************************************/ 135 * *****************************************/
164 -T_JZsdkReturnCode JZsdk_FrameCatch_Single(T_JZsdkReturnCode (*task_function)(unsigned char*, unsigned int)) 136 +T_JZsdkReturnCode JZsdk_FrameCatch_Single(JZsdk_CameraInfo *CameraInfo)
165 { 137 {
166 T_JZsdkReturnCode ret; 138 T_JZsdkReturnCode ret;
167 139
168 - //初始化数据接收线程  
169 - pthread_t ReadDataTask;  
170 - pthread_attr_t task_attribute; //线程属性  
171 - pthread_attr_init(&task_attribute); //初始化线程属性  
172 - pthread_attr_setdetachstate(&task_attribute, PTHREAD_CREATE_DETACHED); //设置线程分离属性  
173 - 140 + T_JZTaskHandle single_task = NULL;
  141 + T_JZsdkOsalHandler *osal_handler = JZsdk_Platform_GetOsalHandler();
  142 + osal_handler->TaskCreate("framecatch_single",JZsdk_Catch_SingleThread, 8192, (void *)CameraInfo, &single_task);
174 143
175 - //单线程模式  
176 - if (task_function == NULL) 144 + if (single_task == NULL)
177 { 145 {
178 - return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER; 146 + JZSDK_LOG_ERROR("创建相机抓取并处理初始化线程失败!");
  147 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
179 } 148 }
180 149
181 - t_FrameCatch_TaskFuntionInput *task = (t_FrameCatch_TaskFuntionInput*)malloc(sizeof(t_FrameCatch_TaskFuntionInput));  
182 - if (task == NULL) 150 + JZSDK_LOG_INFO("创建相机抓取并处理初始化线程成功!");
  151 +
  152 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  153 +}
  154 +
  155 +
  156 +
  157 +
  158 +
  159 +
  160 +
  161 +
  162 +
  163 +
  164 +
  165 +
  166 +
  167 +
  168 +
  169 +
  170 +
  171 +
  172 +
  173 +
  174 +
  175 +
  176 +
  177 +
  178 +
  179 +//多线程抓取数据线程
  180 +static void *JZsdk_Catch_MultiThread2(void *args)
  181 +{
  182 + while (1)
183 { 183 {
184 - // 处理内存分配失败的情况  
185 - return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER;  
186 - } 184 + unsigned int buf_size = 0;
  185 + unsigned char *buf = NULL;
187 186
188 - //task->task_function = task_function;  
189 - task->task_function = (void (*)(unsigned char *, unsigned int))task_function; 187 + //从相机中读取一张照片
  188 + V4L2_CameraFrameRecord_OnlyGetFrame(&buf, &buf_size);
190 189
191 - int opus_Protection = pthread_create(&ReadDataTask,&task_attribute,JZsdk_Catch_SingleThread2,(void *)task); //线程  
192 - if(opus_Protection != 0) 190 + //printf("read: len:%d data[3]:%x data[4]:%x\n", buf_size, buf[3], buf[4]);
  191 +
  192 + if (buf == NULL)
193 { 193 {
194 - JZSDK_LOG_ERROR("创建相机抓取并处理初始化线程失败!");  
195 - return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; 194 + JZSDK_LOG_ERROR("相机数据读取失败");
  195 + continue;
196 } 196 }
197 197
198 - return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 198 + //放入缓冲池 //将数据放入缓冲池,从而被其他线程使用
  199 + VideoMgmt_write_data(&args, buf, buf_size);
  200 +
  201 + //归还图片
  202 + V4L2_CameraFrameRecord_OnlyReturnFrame();
  203 + }
199 } 204 }
200 205
  206 +
  207 +
  208 +
201 /************************* 209 /*************************
202 * 210 *
203 * 211 *
@@ -24,10 +24,10 @@ extern "C" { @@ -24,10 +24,10 @@ extern "C" {
24 /* Exported types ------------------------------------------------------------*/ 24 /* Exported types ------------------------------------------------------------*/
25 25
26 /* Exported functions --------------------------------------------------------*/ 26 /* Exported functions --------------------------------------------------------*/
27 -T_JZsdkReturnCode JZsdk_FrameCatch_Init(int ThreadMode);  
28 -T_JZsdkReturnCode JZsdk_FrameCatch_Single(T_JZsdkReturnCode (*task_function)(unsigned char*, unsigned int)); 27 +T_JZsdkReturnCode JZsdk_FrameCatch_Single(JZsdk_CameraInfo *CameraInfo);
29 T_JZsdkReturnCode JZsdk_FrameCatch_Multi(void *FrameIndex); 28 T_JZsdkReturnCode JZsdk_FrameCatch_Multi(void *FrameIndex);
30 29
  30 +T_JZsdkReturnCode JZsdk_FrameCatch_Init(int ThreadMode);
31 31
32 #ifdef __cplusplus 32 #ifdef __cplusplus
33 } 33 }
@@ -97,6 +97,7 @@ T_JZsdkReturnCode Cam_Zoom_Init() @@ -97,6 +97,7 @@ T_JZsdkReturnCode Cam_Zoom_Init()
97 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; 97 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
98 } 98 }
99 99
  100 + JZSDK_LOG_INFO("变焦模块初始化成功!");
100 101
101 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 102 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
102 } 103 }
@@ -31,41 +31,41 @@ int g_CameraRegionBox_FirstPixel[2] = {0, 0}; // 初始化第一点坐标(x, y) @@ -31,41 +31,41 @@ int g_CameraRegionBox_FirstPixel[2] = {0, 0}; // 初始化第一点坐标(x, y)
31 int g_CameraRegionBox_SecondPixel[2] = {0, 0}; // 初始化第二点坐标(x, y)为(0, 0) 31 int g_CameraRegionBox_SecondPixel[2] = {0, 0}; // 初始化第二点坐标(x, y)为(0, 0)
32 int g_CameraRegionBox_ClickTime = 0; 32 int g_CameraRegionBox_ClickTime = 0;
33 33
34 -/******************************  
35 - *  
36 - * 相机初始化  
37 - * ThreadMode: 0为单线程 1为多线程  
38 - * width: 宽  
39 - * height: 高  
40 - * frame_num: 帧数  
41 - *  
42 - * ******************************/  
43 -T_JZsdkReturnCode Camera_Init(int ThreadMode, int width, int height, int frame_num) 34 +
  35 +T_JZsdkReturnCode Camera_Init(JZsdk_CameraInfo *CameraInfo)
44 { 36 {
45 T_JZsdkReturnCode ret; 37 T_JZsdkReturnCode ret;
46 38
47 //初始化摄像头 39 //初始化摄像头
48 - ret = V4l2_Camarainit2(&g_CameraFd,width,height,frame_num); 40 + ret = V4L2_CameraInit_2(CameraInfo);
49 if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) 41 if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
50 { 42 {
51 return ret; 43 return ret;
52 } 44 }
53 45
54 -#if DEVICE_VERSION == JZ_H150S || DEVICE_VERSION == JZ_H150T  
55 //初始化摄像头参数 46 //初始化摄像头参数
56 - ret = V4L2_Parameter_Setting(g_CameraFd); 47 + ret = V4L2_Parameter_Setting(CameraInfo);
57 if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) 48 if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
58 { 49 {
59 JZSDK_LOG_ERROR("摄像头参数调整失败"); 50 JZSDK_LOG_ERROR("摄像头参数调整失败");
60 return ret; 51 return ret;
61 } 52 }
62 -#endif  
63 53
64 - //根据线程模式初始化抓取和初步处理的线程  
65 - JZsdk_FrameCatch_Init(ThreadMode); 54 + if (CameraInfo->ThreadMode == JZSDK_SINGLE_THREAD && CameraInfo->SingleDataOutput != NULL)
  55 + {
  56 + JZsdk_FrameCatch_Single(CameraInfo);
  57 + }
  58 + else if(CameraInfo->ThreadMode == JZSDK_MULTI_THREAD)
  59 + {
  60 + //JZsdk_FrameCatch_Init(ThreadMode);
  61 + }
  62 + else
  63 + {
  64 + JZSDK_LOG_ERROR("线程模式错误");
  65 + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
  66 + }
66 67
67 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 68 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
68 -  
69 } 69 }
70 70
71 71
@@ -136,6 +136,7 @@ T_JZsdkReturnCode JZsdk_CameraSPC_ResetSwitch() @@ -136,6 +136,7 @@ T_JZsdkReturnCode JZsdk_CameraSPC_ResetSwitch()
136 * **************************/ 136 * **************************/
137 T_JZsdkReturnCode JZsdk_Camera_GasEnhancementCorrectSwitch() 137 T_JZsdkReturnCode JZsdk_Camera_GasEnhancementCorrectSwitch()
138 { 138 {
  139 + JZSDK_LOG_INFO("气体增强打档");
139 IRC_SetDGCE_ResetFlag(); 140 IRC_SetDGCE_ResetFlag();
140 } 141 }
141 142
@@ -206,17 +207,21 @@ static T_JZsdkReturnCode Camera_CorrectionMode(int mode) @@ -206,17 +207,21 @@ static T_JZsdkReturnCode Camera_CorrectionMode(int mode)
206 { 207 {
207 case 0: 208 case 0:
208 RealMode = JZ_FLAGCODE_OFF; 209 RealMode = JZ_FLAGCODE_OFF;
  210 + JZSDK_LOG_INFO("无校正");
209 break; 211 break;
210 212
211 case 1: 213 case 1:
212 RealMode = IRC_CORRCTION_SPC; 214 RealMode = IRC_CORRCTION_SPC;
  215 + JZSDK_LOG_INFO("单点校正");
213 break; 216 break;
214 217
215 case 2: 218 case 2:
216 RealMode = IRC_CORRCTION_TPC; 219 RealMode = IRC_CORRCTION_TPC;
  220 + JZSDK_LOG_INFO("两点校正");
217 break; 221 break;
218 222
219 default: 223 default:
  224 + JZSDK_LOG_INFO("模式错误:%d",mode);
220 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; 225 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
221 break; 226 break;
222 } 227 }
@@ -242,18 +247,22 @@ static T_JZsdkReturnCode Camera_GasEnhancementColor(int mode) @@ -242,18 +247,22 @@ static T_JZsdkReturnCode Camera_GasEnhancementColor(int mode)
242 switch (mode) 247 switch (mode)
243 { 248 {
244 case 0: 249 case 0:
  250 + JZSDK_LOG_INFO("气体增强红色");
245 RealMode = IRC_GAS_ENHANCEMENT_RED; 251 RealMode = IRC_GAS_ENHANCEMENT_RED;
246 break; 252 break;
247 253
248 case 1: 254 case 1:
  255 + JZSDK_LOG_INFO("气体增强绿色");
249 RealMode = IRC_GAS_ENHANCEMENT_GREEN; 256 RealMode = IRC_GAS_ENHANCEMENT_GREEN;
250 break; 257 break;
251 258
252 case 2: 259 case 2:
  260 + JZSDK_LOG_INFO("气体增强蓝色");
253 RealMode = IRC_GAS_ENHANCEMENT_BLUE; 261 RealMode = IRC_GAS_ENHANCEMENT_BLUE;
254 break; 262 break;
255 263
256 default: 264 default:
  265 + JZSDK_LOG_ERROR("气体增强错误:%d",mode);
257 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; 266 return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
258 break; 267 break;
259 } 268 }
@@ -13,6 +13,7 @@ @@ -13,6 +13,7 @@
13 /* Includes ------------------------------------------------------------------*/ 13 /* Includes ------------------------------------------------------------------*/
14 #include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h" 14 #include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
15 #include "MediaProc/MediaProc_Param.h" 15 #include "MediaProc/MediaProc_Param.h"
  16 +#include "MediaProc/Camera/CameraDef.h"
16 17
17 #include "MediaProc/Camera/Cam_FrameCatch/Cam_FrameCatch.h" 18 #include "MediaProc/Camera/Cam_FrameCatch/Cam_FrameCatch.h"
18 #include "MediaProc/Camera/V4L2_camera/V4L2_CameraParameterSetting.h" 19 #include "MediaProc/Camera/V4L2_camera/V4L2_CameraParameterSetting.h"
@@ -37,7 +38,7 @@ T_JZsdkReturnCode JZsdk_Camera_BadPixelSwitch(); @@ -37,7 +38,7 @@ T_JZsdkReturnCode JZsdk_Camera_BadPixelSwitch();
37 T_JZsdkReturnCode JZsdk_CameraSPC_ResetSwitch(); 38 T_JZsdkReturnCode JZsdk_CameraSPC_ResetSwitch();
38 T_JZsdkReturnCode JZsdk_Camera_GasEnhancementCorrectSwitch(); 39 T_JZsdkReturnCode JZsdk_Camera_GasEnhancementCorrectSwitch();
39 40
40 -T_JZsdkReturnCode Camera_Init(int ThreadMode, int width, int height, int frame_num); 41 +T_JZsdkReturnCode Camera_Init(JZsdk_CameraInfo *CameraInfo);
41 42
42 43
43 #ifdef __cplusplus 44 #ifdef __cplusplus
  1 +/**
  2 + ********************************************************************
  3 + * @file CameraDef.h
  4 + * Camera的头文件
  5 + *
  6 + *********************************************************************
  7 + */
  8 +
  9 +/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
  10 +#ifndef CMAERA_DEF_H
  11 +#define CMAERA_DEF_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 +typedef struct JZsdk_CameraParam
  23 +{
  24 + unsigned int Brightness; //亮度,该摄像头亮度范围为 1-255 默认128
  25 + unsigned int Contrast; //对比度,该摄像头对比度范围为 1-255 默认128
  26 + unsigned int Saturation; //饱和度,该摄像头饱和度范围为 1-255 默认128
  27 + unsigned int expsure; //曝光,该摄像头曝光范围为 1-255 默认128
  28 +}JZsdk_CameraParam;
  29 +
  30 +
  31 +typedef struct JZsdk_CameraInfo
  32 +{
  33 + /***************** 摄像头基础配置 ******************/
  34 +
  35 + int CameraFd; //摄像头文件描述符
  36 + unsigned char CmeraDevPath[JZSDK_FILE_PATH_SIZE_MAX]; //摄像头设备路径
  37 + int width;
  38 + int height;
  39 + int FrameNum;
  40 + int CameraFormat;
  41 +
  42 + /***************** 摄像头参数配置 ******************/
  43 + JZsdk_CameraParam CameraParam;
  44 +
  45 + /***************** 设置画面数据的输出配置 ******************/
  46 +
  47 + //相机拍摄的画面流的输出模式 分为单线程和多线程
  48 + int ThreadMode;
  49 +
  50 + //单线程时,需要提供一个数据输出的函数
  51 + T_JZsdkReturnCode (*SingleDataOutput)(unsigned char *data, unsigned int len);
  52 +
  53 + //多线程时,输出的缓冲区索引值
  54 + int VideoMgmt_index;
  55 +}JZsdk_CameraInfo;
  56 +
  57 +/* Exported types ------------------------------------------------------------*/
  58 +
  59 +
  60 +/* Exported functions --------------------------------------------------------*/
  61 +
  62 +#ifdef __cplusplus
  63 +}
  64 +#endif
  65 +
  66 +#endif
@@ -16,36 +16,48 @@ @@ -16,36 +16,48 @@
16 #include <linux/videodev2.h> 16 #include <linux/videodev2.h>
17 #include "./V4L2_CameraParameterSetting.h" 17 #include "./V4L2_CameraParameterSetting.h"
18 #include "JZsdkLib.h" 18 #include "JZsdkLib.h"
  19 +#include "../Camera.h"
19 20
20 #include "MediaProc/MediaParm.h" 21 #include "MediaProc/MediaParm.h"
21 22
22 -T_JZsdkReturnCode V4L2_Parameter_Setting(int cam_fd) 23 +T_JZsdkReturnCode V4L2_Parameter_Setting(JZsdk_CameraInfo *CameraInfo)
23 { 24 {
24 struct v4l2_control ctrl; 25 struct v4l2_control ctrl;
25 26
26 //设置亮度* 27 //设置亮度*
  28 + if (CameraInfo->CameraParam.Brightness != 0)
  29 + {
27 ctrl.id= V4L2_CID_BRIGHTNESS; 30 ctrl.id= V4L2_CID_BRIGHTNESS;
28 - ctrl.value = BRIGHTNESS;  
29 - if(ioctl(cam_fd,VIDIOC_S_CTRL,&ctrl)==-1) 31 + ctrl.value = CameraInfo->CameraParam.Brightness;
  32 + if(ioctl(CameraInfo->CameraFd,VIDIOC_S_CTRL,&ctrl)==-1)
30 { 33 {
31 JZSDK_LOG_INFO("相机亮度设置失败"); 34 JZSDK_LOG_INFO("相机亮度设置失败");
32 } 35 }
  36 + }
33 37
34 //设置对比度 38 //设置对比度
  39 + if (CameraInfo->CameraParam.Contrast != 0)
  40 + {
35 ctrl.id = V4L2_CID_CONTRAST; 41 ctrl.id = V4L2_CID_CONTRAST;
36 - ctrl.value= CONTRAST;  
37 - if(ioctl(cam_fd,VIDIOC_S_CTRL,&ctrl)==-1) 42 + ctrl.value= CameraInfo->CameraParam.Contrast;
  43 + if(ioctl(CameraInfo->CameraFd,VIDIOC_S_CTRL,&ctrl)==-1)
38 { 44 {
39 JZSDK_LOG_INFO("相机对比度设置失败"); 45 JZSDK_LOG_INFO("相机对比度设置失败");
40 } 46 }
  47 + }
41 48
42 //设置饱和度 49 //设置饱和度
  50 + if (CameraInfo->CameraParam.Saturation != 0)
  51 + {
43 ctrl.id = V4L2_CID_SATURATION; 52 ctrl.id = V4L2_CID_SATURATION;
44 - ctrl.value= SATURATION;  
45 - if(ioctl(cam_fd,VIDIOC_S_CTRL,&ctrl)==-1) 53 + ctrl.value= CameraInfo->CameraParam.Saturation;
  54 + if(ioctl(CameraInfo->CameraFd,VIDIOC_S_CTRL,&ctrl)==-1)
46 { 55 {
47 perror("相机饱和度设置失败"); 56 perror("相机饱和度设置失败");
48 } 57 }
  58 + }
  59 +
  60 +
49 /* 61 /*
50 //设置色度 62 //设置色度
51 ctrl.id = V4L2_CID_HUE; 63 ctrl.id = V4L2_CID_HUE;
@@ -104,6 +116,7 @@ T_JZsdkReturnCode V4L2_Parameter_Setting(int cam_fd) @@ -104,6 +116,7 @@ T_JZsdkReturnCode V4L2_Parameter_Setting(int cam_fd)
104 exit(EXIT_FAILURE); 116 exit(EXIT_FAILURE);
105 } 117 }
106 */ 118 */
  119 + JZSDK_LOG_INFO("V4L2_Parameter_Setting success");
107 120
108 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 121 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
109 } 122 }
@@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@
12 12
13 /* Includes ------------------------------------------------------------------*/ 13 /* Includes ------------------------------------------------------------------*/
14 #include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h" 14 #include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
15 - 15 +#include "../CameraDef.h"
16 16
17 #ifdef __cplusplus 17 #ifdef __cplusplus
18 extern "C" { 18 extern "C" {
@@ -26,7 +26,7 @@ extern "C" { @@ -26,7 +26,7 @@ extern "C" {
26 26
27 27
28 /* Exported functions --------------------------------------------------------*/ 28 /* Exported functions --------------------------------------------------------*/
29 -T_JZsdkReturnCode V4L2_Parameter_Setting(int cam_fd); 29 +T_JZsdkReturnCode V4L2_Parameter_Setting(JZsdk_CameraInfo *CameraInfo);
30 30
31 31
32 #ifdef __cplusplus 32 #ifdef __cplusplus
@@ -275,7 +275,7 @@ static int open_device() @@ -275,7 +275,7 @@ static int open_device()
275 return 0; 275 return 0;
276 } 276 }
277 277
278 -T_JZsdkReturnCode V4l2_Camarainit2(int *dev_fd, int width, int height, int frame_num) 278 +T_JZsdkReturnCode V4l2_Camarainit(int *dev_fd, int width, int height, int frame_num)
279 { 279 {
280 int ret; 280 int ret;
281 281
@@ -314,7 +314,8 @@ T_JZsdkReturnCode V4l2_Camarainit2(int *dev_fd, int width, int height, int frame @@ -314,7 +314,8 @@ T_JZsdkReturnCode V4l2_Camarainit2(int *dev_fd, int width, int height, int frame
314 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; 314 return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
315 } 315 }
316 316
317 -int V4L2_CamaraUninit2() 317 +
  318 +int V4L2_CamaraUninit()
318 { 319 {
319 320
320 //停止采集 321 //停止采集