作者 Your Name

Initial commit (clean start)

正在显示 39 个修改的文件 包含 4774 行增加0 行删除

要显示太多修改。

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

root = true
[*.{c,h}]
charset = utf-8-bom
\ No newline at end of file
... ...
# Compiled class file
ThirdParty
ModuleLib
备份
linux_kernel
project_build/AUTEL_道通PSDK
project_build/GDU_普宙PSDK
project_build/DT
# project_build/Only_Serial/*
# !project_build/Only_Serial/application
# !project_build/Only_Serial/CMakeLists.txt
# project_build/DJI_大疆PSDK/*
# !project_build/DJI_大疆PSDK/samples
project_build/DJI_大疆PSDK/samples/sample_c++
# project_build/DJI_大疆PSDK/samples/sample_c/platform/*
# !project_build/DJI_大疆PSDK/samples/sample_c/platform/linux
# project_build/DJI_大疆PSDK/samples/sample_c/platform/linux/all/*
# !project_build/DJI_大疆PSDK/samples/sample_c/platform/linux/all/application
# !project_build/DJI_大疆PSDK/samples/sample_c/platform/linux/all/hal
# !project_build/DJI_大疆PSDK/samples/sample_c/platform/linux/all/CMakeLists.txt
project_build/Psdk312/*
project_build/特殊固件
project_build/DJI_Test
project_build/Psdk2257
project_build/zy_101
project_build/DJI_311
# project_build/Attention_提示程序
# Prerequisites
*.d
# Compiled Object files
*.slo
*.lo
*.o
*.obj
# Precompiled Headers
*.gch
*.pch
# Compiled Dynamic libraries
*.so
*.dylib
*.dll
*.so*
# Fortran module files
*.mod
*.smod
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
# 执行程序
*.exe
*.out
*.app
build
# 编译文件
bin/
obj/
*.bin
*.dir
*.exe
*.dll
*.pdb
Upgrade_Package
# 存档文件
*.png
*.jpg
*.mp4
*.h264
*.pdf
## 忽略其他常见临时文件
*.log
*.tmp
*.cache
Thumbs.db
EOF
**/.vs/
*.user
*.suo
*.userosscache
*.sln.docstates
**/.vscode/
\ No newline at end of file
... ...
# 编译链的配置
#1、编译链与设备类型的选择
set(DEVICE_NAME JZ_T40S)
#上一行为禁止修改行
message("**************************JZSDK构建编译开始***************************\n")
if("${DEVICE_NAME}" STREQUAL "JZ_H1E")
set(MAKE_COMPILER ARM_CORTEXA9_LINUX)
elseif("${DEVICE_NAME}" STREQUAL "JZ_H1T")
set(MAKE_COMPILER ARM_CORTEXA9_LINUX)
elseif("${DEVICE_NAME}" STREQUAL "JZ_H150S")
set(MAKE_COMPILER ARM_CORTEXA9_LINUX)
elseif("${DEVICE_NAME}" STREQUAL "JZ_H150T")
#set(MAKE_COMPILER ARM_CORTEXA9_LINUX)
set(MAKE_COMPILER LINARO_ARM_CORTEX_LINUX)
elseif("${DEVICE_NAME}" STREQUAL "JZ_H10")
set(MAKE_COMPILER ARM_CORTEXA9_LINUX)
elseif("${DEVICE_NAME}" STREQUAL "JZ_H10T")
set(MAKE_COMPILER ARM_CORTEXA9_LINUX)
elseif("${DEVICE_NAME}" STREQUAL "JZ_U3")
set(MAKE_COMPILER ARM_CORTEXA9_LINUX)
elseif("${DEVICE_NAME}" STREQUAL "JZ_U3S")
# set(MAKE_COMPILER ARM_CORTEXA9_LINUX)
set(MAKE_COMPILER LINARO_ARM_CORTEX_LINUX)
elseif("${DEVICE_NAME}" STREQUAL "JZ_U3D")
set(MAKE_COMPILER ARM_CORTEXA9_LINUX)
elseif("${DEVICE_NAME}" STREQUAL "JZ_U30")
set(MAKE_COMPILER ARM_CORTEXA9_LINUX)
elseif("${DEVICE_NAME}" STREQUAL "TF_A1")
set(MAKE_COMPILER ARM_CORTEXA9_LINUX)
elseif("${DEVICE_NAME}" STREQUAL "JZ_C1")
set(MAKE_COMPILER ARM_X86_64_ARRCH64)
elseif("${DEVICE_NAME}" STREQUAL "JZ_ST")
set(MAKE_COMPILER ARM_X86_64_ARRCH64)
elseif("${DEVICE_NAME}" STREQUAL "JZ_H150A")
set(MAKE_COMPILER LINARO_ARM_CORTEX_LINUX)
elseif("${DEVICE_NAME}" STREQUAL "JZ_T40")
set(MAKE_COMPILER LINARO_ARM_CORTEX_LINUX)
elseif("${DEVICE_NAME}" STREQUAL "JZ_T40S")
set(MAKE_COMPILER LINARO_ARM_CORTEX_LINUX)
endif()
if(${MAKE_COMPILER} STREQUAL "ARM_CORTEXA9_LINUX")
set(TOOLCHAIN_NAME arm-linux-gnueabihf-gcc)
set(CMAKE_C_COMPILER "/usr/local/arm/4.9.3/bin/arm-cortexa9-linux-gnueabihf-gcc")
set(CMAKE_CXX_COMPILER "/usr/local/arm/4.9.3/bin/arm-cortexa9-linux-gnueabihf-g++")
message("使用ARM_CORTEXA9_LINUX编译链")
elseif(${MAKE_COMPILER} STREQUAL "LINARO_ARM_CORTEX_LINUX")
set(TOOLCHAIN_NAME arm-linux-gnueabihf-gcc)
set(CMAKE_C_COMPILER "/usr/local/arm/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc")
set(CMAKE_CXX_COMPILER "/usr/local/arm/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++")
message("使用LINARO_ARM_CORTEX_LINUX编译链")
elseif(${MAKE_COMPILER} STREQUAL "ARM_X86_64_ARRCH64")
# 交叉编译链3
set(TOOLCHAIN_NAME aarch64-linux-gnu-gcc)
set(CMAKE_C_COMPILER "/usr/local/arm/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-gcc")
set(CMAKE_CXX_COMPILER "/usr/local/arm/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-g++")
message("使用ARM_X86_64_ARRCH64编译链")
elseif(${MAKE_COMPILER} STREQUAL "LOCAL")
# 本地测试编译链
set(CMAKE_C_COMPILER "/usr/bin/gcc")
set(CMAKE_CXX_COMPILER "/usr/bin/g++")
message("使用LOCAL编译链")
else()
message(FATAL_ERROR "不支持的编译链")
endif()
message("\n**************************编译链配置完毕***********************\n")
\ No newline at end of file
... ...
# 模组构建文件,用于加载源代码 与 配置代码中的开关
# ${ROOT_DIRS}为cmakelist文件提供的工程根目录
message("\n*************************开始模块构建***********************\n")
set(IFLAY_TTS_MODULE VERSION_SWITCH_OFF)
set(ESPEAK_TTS_MODULE VERSION_SWITCH_OFF)
set(ALSALIB_MODULE VERSION_SWITCH_OFF)
set(OPUS_MODULE VERSION_SWITCH_OFF)
set(LIB_RK_MMP VERSION_SWITCH_OFF)
set(LIB_RK_RGB VERSION_SWITCH_OFF)
set(LIB_USB VERSION_SWITCH_OFF)
set(LIB_KT_IRC VERSION_SWITCH_OFF)
set(LIB_SAT_IRC VERSION_SWITCH_OFF)
add_definitions(-D COMPILE_MODE_MODULE) #设置代码为编译模式
#加载基础库JZSDK库基础代码
file(GLOB_RECURSE JZSDK_COMMON_SRC ${ROOT_DIRS}JZsdk_Common/*.c)
list(APPEND ALL_SRC_FILES ${JZSDK_COMMON_SRC})
list(APPEND ALL_INC_FILES ${ROOT_DIRS}JZsdk_Common)
file(GLOB_RECURSE JZSDK_CONFIG_SRC_baseConfig ${ROOT_DIRS}JZsdk_Config/BaseConfig.c)
file(GLOB_RECURSE JZSDK_CONFIG_SRC_Paramterpar ${ROOT_DIRS}JZsdk_Config/ParamterParsing.c)
list(APPEND ALL_SRC_FILES ${JZSDK_CONFIG_SRC_baseConfig})
list(APPEND ALL_SRC_FILES ${JZSDK_CONFIG_SRC_Paramterpar})
list(APPEND ALL_INC_FILES ${ROOT_DIRS}JZsdk_Config)
file(GLOB_RECURSE JZSDK_HAL_SRC ${ROOT_DIRS}JZsdk_hal/*.c)
list(APPEND ALL_SRC_FILES ${JZSDK_HAL_SRC})
list(APPEND ALL_INC_FILES ${ROOT_DIRS}JZsdk_hal)
message("\nJZSDK基础代码加载完毕\n")
#如果要加载设备信息模块,需要加载以下附属内容
if(${DEVICE_INFO_MODULE} STREQUAL "VERSION_SWITCH_ON")
message("\n设备信息模块源码加载中")
file(GLOB_RECURSE DEVICE_MESSAGE_SRC ${ROOT_DIRS}Module/DeviceInfo/*.c)
list(APPEND ALL_SRC_FILES ${DEVICE_MESSAGE_SRC})
endif()
#如果要加载云台模块,需要加载以下附属内容
if(${GIMBAL_MODULE} STREQUAL "VERSION_SWITCH_ON")
message("\n云台模块源码加载中")
file(GLOB_RECURSE GIMBAL_SRC ${ROOT_DIRS}Module/Gimbal/*.c)
list(APPEND ALL_SRC_FILES ${GIMBAL_SRC})
#打开云台的代码编译部分
add_definitions(-DMACRO_GIMBAL_MODULE)
endif()
#如果要加载引脚模块,需要加载以下附属内容
if(${IRCUT_MODULE} STREQUAL "VERSION_SWITCH_ON")
message("\n引脚模块源码加载中")
file(GLOB_RECURSE MODULE_IRCUT_SRC ${ROOT_DIRS}Module/Ircut/*.c)
list(APPEND ALL_SRC_FILES ${MODULE_IRCUT_SRC})
endif()
#如果要加载探照灯模块,需要加载以下附属内容
if(${SEARCHLIGHT_MODULE} STREQUAL "VERSION_SWITCH_ON")
message("\n探照灯模块加载中")
#打开探照灯的代码编译部分
add_definitions(-DMACRO_SEARCHLIGHT_MODULE)
#将探照灯的源代码加入编译中
file(GLOB_RECURSE SEARCHLIGHT_SRC ${ROOT_DIRS}Module/SearchLight/*.c)
list(APPEND ALL_SRC_FILES ${SEARCHLIGHT_SRC})
endif()
#如果要加载警示灯模块,需要加载以下附属内容
if(${WARNLIGHT_MODULE} STREQUAL "VERSION_SWITCH_ON")
message("\n警示灯模块加载中")
#打开探照灯的代码编译部分
add_definitions(-DMACRO_WARNLIGHT_MODULE)
#将探照灯的源代码加入编译中
file(GLOB_RECURSE WARNLIGHT_SRC ${ROOT_DIRS}Module/WarnLight/*.c)
list(APPEND ALL_SRC_FILES ${WARNLIGHT_SRC})
endif()
#如果要加载侧面激光模块,需要加载以下附属内容
if(${SIDE_LASER_MODULE} STREQUAL "VERSION_SWITCH_ON")
message("\n侧面激光模块加载中")
#打开侧面激光的代码编译部分
add_definitions(-DMACRO_SIDE_LASER_MODULE)
file(GLOB_RECURSE MODULE_SIDE_LASER_SRC ${ROOT_DIRS}Module/SideLaser/*.c)
list(APPEND ALL_SRC_FILES ${MODULE_SIDE_LASER_SRC})
endif()
#如果要加载媒体管理模块,需要加载以下附属内容
if(${MEDIA_PROC_MODULE} STREQUAL "VERSION_SWITCH_ON")
message("\n媒体管理模块加载中")
#将媒体管理模块的源代码加入编译中
add_definitions(-DMACRO_MEDIA_PROC_MODULE)
file(GLOB_RECURSE MEDIA_PROC_SRC ${ROOT_DIRS}Module/MediaProc/*.c)
file(GLOB_RECURSE MEDIA_PROC_SRC_CPP ${ROOT_DIRS}Module/MediaProc/*.cpp)
list(APPEND ALL_SRC_FILES ${MEDIA_PROC_SRC})
list(APPEND ALL_SRC_FILES ${MEDIA_PROC_SRC_CPP})
#如果要加载红外相机模块,额外加载以下附属内容
if(${IRC_MODULE} STREQUAL "VERSION_SWITCH_ON")
message("加载红外相机模块")
add_definitions(-DMACRO_IRC_MODULE)
message("加载RK MMP模块")
set(LIB_RK_MMP VERSION_SWITCH_ON)
message("加载RK RGA模块")
set(LIB_RK_RGB VERSION_SWITCH_ON)
message("加载USB模块")
set(LIB_USB VERSION_SWITCH_ON)
if(${LIB_KT_MODULE} STREQUAL "VERSION_SWITCH_ON")
message("加载昆腾红外相机模块")
set(LIB_KT_IRC VERSION_SWITCH_ON)
endif()
if(${LIB_SATIRC_MODULE} STREQUAL "VERSION_SWITCH_ON")
message("加载飒特红外相机模块")
set(LIB_SAT_IRC VERSION_SWITCH_ON)
endif()
endif()
endif()
#如果要加载音频库模块,需要加载以下附属内容
if(${AUDIODEAL_MODULE} STREQUAL "VERSION_SWITCH_ON")
message("\n音频库模块加载中")
message("加载音频库")
add_definitions(-DMACRO_AUDIODEAL_MODULE)
file(GLOB_RECURSE AUDIODEAL_SRC ${ROOT_DIRS}Module/AudioDeal/*.c)
list(APPEND ALL_SRC_FILES ${AUDIODEAL_SRC})
endif()
#如果要加载喊话器模块,需要加载以下附属内容
if(${MEGAPHONE_MODULE} STREQUAL "VERSION_SWITCH_ON")
message("\n喊话器模块加载中")
message("加载喊话器")
add_definitions(-DMACRO_MEGAPHONE_MODULE) #加载喊话器模块
file(GLOB_RECURSE MEGAPHONE_SRC ${ROOT_DIRS}Module/Megaphone/*.c)
list(APPEND ALL_SRC_FILES ${MEGAPHONE_SRC})
#加载tts模块
if(TTS_MODULE STREQUAL "JZ_TTS_MODULE_1" )
message("加载讯飞一代TTS模块")
add_definitions(-DMACRO_IFLAY_TTS_1_MODULE)
message("加载espeak模块")
add_definitions(-DMACRO_ESPEAK_TTS_MODULE)
elseif(TTS_MODULE STREQUAL "JZ_TTS_MODULE_2" )
message("加载讯飞二代TTS模块")
add_definitions(-DMACRO_IFLAY_TTS_2_MODULE)
file(GLOB_RECURSE IFLTTEK_2_SRC ${ROOT_DIRS}Module/Megaphone/TTS/iflytek_2/*.cpp)
list(APPEND ALL_SRC_FILES ${IFLTTEK_2_SRC})
endif()
message("加载alsalib模块")
set(ALSALIB_MODULE VERSION_SWITCH_ON)
message("加载OPUS模块")
set(OPUS_MODULE VERSION_SWITCH_ON)
endif()
#如果要加载通用模块,需要加载以下附属内容
if(${COMMON_MODULE} STREQUAL "VERSION_SWITCH_ON")
message("\n通用模块加载中")
file(GLOB_RECURSE COMMON_MODULE_SRC ${ROOT_DIRS}Module/CommonMod/*.c)
list(APPEND ALL_SRC_FILES ${COMMON_MODULE_SRC})
endif()
#如果要加载拓展接口模块,需要加载以下附属内容
if(${EXTENSION_API_MODULE} STREQUAL "VERSION_SWITCH_ON")
message("\n拓展接口模块加载中")
file(GLOB_RECURSE EXTENSION_API_MODULE_SRC ${ROOT_DIRS}Module/ExtensionAPI/*.c)
list(APPEND ALL_SRC_FILES ${EXTENSION_API_MODULE_SRC})
endif()
#如果要加载UI模块,需要加载以下附属内容
if(${UI_CONTROL_MODULE} STREQUAL "VERSION_SWITCH_ON")
message("\nUI模块源码加载中")
file(GLOB_RECURSE MODULE_UICONTROL_SRC ${ROOT_DIRS}Module/UI_control/*.c)
list(APPEND ALL_SRC_FILES ${MODULE_UICONTROL_SRC})
endif()
# wiringPi
if(${WIRINGPI_MODULE} STREQUAL "VERSION_SWITCH_ON")
message("\nwiringPi模块加载中")
file(GLOB_RECURSE WIRINGPI_SRC ${ROOT_DIRS}ThirdParty/wiringPi/*.c)
list(APPEND ALL_SRC_FILES ${WIRINGPI_SRC})
list(APPEND ALL_INC_FILES ${ROOT_DIRS}ThirdParty/wiringPi)
#打开wiringPi的代码编译部分
add_definitions(-DMACRO_WIRINGPI_MODULE)
endif()
# 如果要加入特殊图像处理模块,需要加载以下附属内容
if(${IMAGEPROCESSING_MODULE} STREQUAL "VERSION_SWITCH_ON")
message("\n特殊图像处理模块加载中")
file(GLOB_RECURSE MODULE_IMAGEPROCESSING_SRC ${ROOT_DIRS}Module/ImageProcessing/*.c)
file(GLOB_RECURSE MODULE_IMAGEPROCESSING_cpp_SRC ${ROOT_DIRS}Module/ImageProcessing/*.cpp)
list(APPEND ALL_SRC_FILES ${MODULE_IMAGEPROCESSING_SRC})
list(APPEND ALL_SRC_FILES ${MODULE_IMAGEPROCESSING_cpp_SRC})
endif()
message("\n模组加载完毕\n")
# 头文件加载,后续再进行优化
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/Megaphone)
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/Ircut)
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/Gimbal)
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/Lighting)
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/UI_control)
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/Camera)
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/COMMONManager)
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/TestAPP)
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/ImageProcessing)
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/SerialManagement)
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module/ExtensionAPI)
list(APPEND ALL_INC_FILES ${ROOT_DIRS}Module)
message("**************************库构建完毕***************************\n")
\ No newline at end of file
... ...
# 设备类型的模块配置文件
# 主要用于根据设备类型
# 将对应的模块打开
###################### 自己的库 ##############################
# AudioDeal 音频处理模块
set(AUDIODEAL_MODULE VERSION_SWITCH_OFF)
# 信息模块
set(DEVICE_INFO_MODULE VERSION_SWITCH_OFF)
# Gimbal 云台处理模块
set(GIMBAL_MODULE VERSION_SWITCH_OFF)
# IRCUT 引脚处理模块
set(IRCUT_MODULE VERSION_SWITCH_OFF)
############### 光源模块 ##########################
# SEARCHLIGHT 探照灯处理模块
set(SEARCHLIGHT_MODULE VERSION_SWITCH_OFF)
# WARNLIGHT 警示灯处理模块
set(WARNLIGHT_MODULE VERSION_SWITCH_OFF)
################ 喊话器模块 #######################
# 喊话器模块
set(MEGAPHONE_MODULE VERSION_SWITCH_OFF)
# TTS模块
set(TTS_MODULE VERSION_SWITCH_OFF)
##################################################
# 电源管理模块
set(COMMON_MODULE VERSION_SWITCH_OFF)
#拓展接口模块
set(EXTENSION_API_MODULE VERSION_SWITCH_OFF)
# UI管理模块
set(UI_CONTROL_MODULE VERSION_SWITCH_OFF)
# MediaProc 媒体管理模块
set(MEDIA_PROC_MODULE VERSION_SWITCH_OFF)
# 红外相机模块
set(IRC_MODULE VERSION_SWITCH_OFF)
# 侧面激光模块
set(SIDE_LASER_MODULE VERSION_SWITCH_OFF)
###################### 第三方库 ##############################
# FFMPEG及其附属模块
set(FFMPEG_MODULE VERSION_SWITCH_OFF)
# cedarxLib
set(CedarxLib VERSION_SWITCH_OFF)
# wiringPi库
set(WIRINGPI_MODULE VERSION_SWITCH_OFF)
# OpenCV库
set(IMAGEPROCESSING_MODULE VERSION_SWITCH_OFF)
# 鲲腾库
set(LIB_KT_MODULE VERSION_SWITCH_OFF)
# 飒特库
set(LIB_SATIRC_MODULE VERSION_SWITCH_OFF)
# speex库
set(SPEEX_MODULE VERSION_SWITCH_OFF)
########################## 通用库加载 ###########################################
# 添加信息模块
set(DEVICE_INFO_MODULE VERSION_SWITCH_ON)
# 添加UI管理模块
set(UI_CONTROL_MODULE VERSION_SWITCH_ON)
# 添加通用模块
set(COMMON_MODULE VERSION_SWITCH_ON)
# 添加IRCUT 引脚处理模块
set(IRCUT_MODULE VERSION_SWITCH_ON)
# 添加拓展接口模块
set(EXTENSION_API_MODULE VERSION_SWITCH_ON)
message("通用库加载完成")
########################### 独立库加载 ##########################################
if("${DEVICE_NAME}" STREQUAL "JZ_H1E")
# 添加AudioDeal 音频处理模块
set(AUDIODEAL_MODULE VERSION_SWITCH_ON)
# 添加Gimbal 云台处理模块
set(GIMBAL_MODULE VERSION_SWITCH_ON)
# 添加喊话器模块
set(MEGAPHONE_MODULE VERSION_SWITCH_ON)
# 添加TTS模块
set(TTS_MODULE JZ_TTS_MODULE_1)
# 添加FFMPEG及其附属模块
set(FFMPEG_MODULE VERSION_SWITCH_ON)
#设备独立配置源文件
file(GLOB_RECURSE DEVICE_CONFOG_SRC ${ROOT_DIRS}JZsdk_Config/DeviceSample/JZ_H1_series/JZ_H1E/*.c)
list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})
message("h1e基础配置完毕\n")
elseif("${DEVICE_NAME}" STREQUAL "JZ_H1T")
# 添加AudioDeal 音频处理模块
set(AUDIODEAL_MODULE VERSION_SWITCH_ON)
# 添加TTS模块
set(TTS_MODULE JZ_TTS_MODULE_1)
# 添加Gimbal 云台处理模块
set(GIMBAL_MODULE VERSION_SWITCH_ON)
# 添加SEARCHLIGHT 探照灯处理模块
set(SEARCHLIGHT_MODULE VERSION_SWITCH_ON)
# 添加WARNLIGHT 警示灯处理模块
set(WARNLIGHT_MODULE VERSION_SWITCH_ON)
# 添加喊话器模块
set(MEGAPHONE_MODULE VERSION_SWITCH_ON)
# 添加TTS模块
set(TTS_MODULE JZ_TTS_MODULE_1)
# 添加FFMPEG及其附属模块
set(FFMPEG_MODULE VERSION_SWITCH_ON)
#设备独立配置源文件
file(GLOB_RECURSE DEVICE_CONFOG_SRC ${ROOT_DIRS}JZsdk_Config/DeviceSample/JZ_H1_series/JZ_H1T/*.c)
list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})
message("h1t基础配置完毕\n")
elseif("${DEVICE_NAME}" STREQUAL "JZ_U3")
# 添加AudioDeal 音频处理模块
set(AUDIODEAL_MODULE VERSION_SWITCH_ON)
# 添加Gimbal 云台处理模块
set(GIMBAL_MODULE VERSION_SWITCH_ON)
# 添加SEARCHLIGHT 探照灯处理模块
set(SEARCHLIGHT_MODULE VERSION_SWITCH_ON)
# 添加WARNLIGHT 警示灯处理模块
set(WARNLIGHT_MODULE VERSION_SWITCH_ON)
# 添加喊话器模块
set(MEGAPHONE_MODULE VERSION_SWITCH_ON)
# 添加TTS模块
set(TTS_MODULE JZ_TTS_MODULE_1)
# 添加FFMPEG及其附属模块
set(FFMPEG_MODULE VERSION_SWITCH_ON)
#设备独立配置源文件
file(GLOB_RECURSE DEVICE_CONFOG_SRC ${ROOT_DIRS}JZsdk_Config/DeviceSample/JZ_U3_series/JZ_U3/*.c)
list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})
message("u3基础配置完毕\n")
elseif("${DEVICE_NAME}" STREQUAL "JZ_U3S")
# 添加Gimbal 云台处理模块
set(GIMBAL_MODULE VERSION_SWITCH_ON)
# 添加WARNLIGHT 警示灯处理模块
set(WARNLIGHT_MODULE VERSION_SWITCH_ON)
# 添加探照灯模块
set(SEARCHLIGHT_MODULE VERSION_SWITCH_ON)
# 添加激光模块
set(SIDE_LASER_MODULE VERSION_SWITCH_ON)
# 添加AudioDeal 音频处理模块
set(AUDIODEAL_MODULE VERSION_SWITCH_ON)
# 添加speex音频处理模块
# set(SPEEX_MODULE VERSION_SWITCH_ON)
# 添加喊话器模块
set(MEGAPHONE_MODULE VERSION_SWITCH_ON)
# 添加TTS模块
set(TTS_MODULE JZ_TTS_MODULE_1)
# 添加FFMPEG及其附属模块
set(FFMPEG_MODULE VERSION_SWITCH_ON)
#设备独立配置源文件
file(GLOB_RECURSE DEVICE_CONFOG_SRC ${ROOT_DIRS}JZsdk_Config/DeviceSample/JZ_U3_series/JZ_U3S/*.c)
list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})
message("U3S PZ配置完毕\n")
elseif("${DEVICE_NAME}" STREQUAL "JZ_U3D")
# 添加AudioDeal 音频处理模块
set(AUDIODEAL_MODULE VERSION_SWITCH_ON)
# 添加Gimbal 云台处理模块
set(GIMBAL_MODULE VERSION_SWITCH_ON)
# 添加SEARCHLIGHT 探照灯处理模块
set(SEARCHLIGHT_MODULE VERSION_SWITCH_ON)
# 添加WARNLIGHT 警示灯处理模块
set(WARNLIGHT_MODULE VERSION_SWITCH_ON)
# 添加喊话器模块
set(MEGAPHONE_MODULE VERSION_SWITCH_ON)
# 添加TTS模块
set(TTS_MODULE JZ_TTS_MODULE_1)
# 添加FFMPEG及其附属模块
set(FFMPEG_MODULE VERSION_SWITCH_ON)
#设备独立配置源文件
file(GLOB_RECURSE DEVICE_CONFOG_SRC ${ROOT_DIRS}JZsdk_Config/DeviceSample/JZ_U3_series/JZ_U3D/*.c)
list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})
message("u3d基础配置完毕\n")
elseif("${DEVICE_NAME}" STREQUAL "JZ_U30")
# 添加AudioDeal 音频处理模块
set(AUDIODEAL_MODULE VERSION_SWITCH_ON)
# 添加Gimbal 云台处理模块
set(GIMBAL_MODULE VERSION_SWITCH_ON)
# 添加SEARCHLIGHT 探照灯处理模块
set(SEARCHLIGHT_MODULE VERSION_SWITCH_ON)
# 添加WARNLIGHT 警示灯处理模块
set(WARNLIGHT_MODULE VERSION_SWITCH_ON)
# 添加喊话器模块
set(MEGAPHONE_MODULE VERSION_SWITCH_ON)
# 添加TTS模块
set(TTS_MODULE JZ_TTS_MODULE_1)
# 添加FFMPEG及其附属模块
set(FFMPEG_MODULE VERSION_SWITCH_ON)
#设备独立配置源文件
file(GLOB_RECURSE DEVICE_CONFOG_SRC ${ROOT_DIRS}JZsdk_Config/DeviceSample/JZ_U3_series/JZ_U30/*.c)
list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})
message("u30基础配置完毕\n")
elseif("${DEVICE_NAME}" STREQUAL "JZ_H10")
# 添加AudioDeal 音频处理模块
set(AUDIODEAL_MODULE VERSION_SWITCH_ON)
# 添加Gimbal 云台处理模块
set(GIMBAL_MODULE VERSION_SWITCH_ON)
# 添加喊话器模块
set(MEGAPHONE_MODULE VERSION_SWITCH_ON)
# 添加TTS模块
set(TTS_MODULE JZ_TTS_MODULE_1)
# 添加wringpi
set(WIRINGPI_MODULE VERSION_SWITCH_ON)
# 添加FFMPEG及其附属模块
set(FFMPEG_MODULE VERSION_SWITCH_ON)
#设备独立配置源文件
file(GLOB_RECURSE DEVICE_CONFOG_SRC ${ROOT_DIRS}JZsdk_Config/DeviceSample/JZ_H10_series/JZ_H10/*.c)
list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})
message("h10基础配置完毕\n")
elseif("${DEVICE_NAME}" STREQUAL "JZ_H10T")
# 添加AudioDeal 音频处理模块
set(AUDIODEAL_MODULE VERSION_SWITCH_ON)
# 添加Gimbal 云台处理模块
set(GIMBAL_MODULE VERSION_SWITCH_ON)
# 添加喊话器模块
set(MEGAPHONE_MODULE VERSION_SWITCH_ON)
# 添加TTS模块
set(TTS_MODULE JZ_TTS_MODULE_1)
# 添加FFMPEG及其附属模块
set(FFMPEG_MODULE VERSION_SWITCH_ON)
#设备独立配置源文件
file(GLOB_RECURSE DEVICE_CONFOG_SRC ${ROOT_DIRS}JZsdk_Config/DeviceSample/JZ_H10_series/JZ_H10T/*.c)
list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})
message("h10t基础配置完毕\n")
elseif("${DEVICE_NAME}" STREQUAL "JZ_H150S")
# 添加AudioDeal 音频处理模块
set(AUDIODEAL_MODULE VERSION_SWITCH_ON)
# 添加Gimbal 云台处理模块
set(GIMBAL_MODULE VERSION_SWITCH_ON)
# 添加喊话器模块
set(MEGAPHONE_MODULE VERSION_SWITCH_ON)
# 添加TTS模块
set(TTS_MODULE JZ_TTS_MODULE_1)
# 添加MediaProc 媒体管理模块
set(MEDIA_PROC_MODULE VERSION_SWITCH_ON)
# 添加wringpi
set(WIRINGPI_MODULE VERSION_SWITCH_ON)
# 添加FFMPEG及其附属模块
set(FFMPEG_MODULE VERSION_SWITCH_ON)
#设备独立配置源文件
file(GLOB_RECURSE DEVICE_CONFOG_SRC ${ROOT_DIRS}JZsdk_Config/DeviceSample/JZ_H150S_H150T/*.c)
list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})
message("h150s基础配置完毕\n")
elseif("${DEVICE_NAME}" STREQUAL "JZ_H150T")
# 添加AudioDeal 音频处理模块
set(AUDIODEAL_MODULE VERSION_SWITCH_ON)
# 添加Gimbal 云台处理模块
set(GIMBAL_MODULE VERSION_SWITCH_ON)
# 添加喊话器模块
set(MEGAPHONE_MODULE VERSION_SWITCH_ON)
# 添加TTS模块
set(TTS_MODULE JZ_TTS_MODULE_1)
# 添加MediaProc 媒体管理模块
set(MEDIA_PROC_MODULE VERSION_SWITCH_ON)
# 添加wringpi
set(WIRINGPI_MODULE VERSION_SWITCH_ON)
# 添加FFMPEG及其附属模块
set(FFMPEG_MODULE VERSION_SWITCH_ON)
#设备独立配置源文件
file(GLOB_RECURSE DEVICE_CONFOG_SRC ${ROOT_DIRS}JZsdk_Config/DeviceSample/JZ_H150S_H150T/*.c)
list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})
message("h150t基础配置完毕\n")
elseif("${DEVICE_NAME}" STREQUAL "JZ_C1")
# 添加Gimbal 云台处理模块
set(GIMBAL_MODULE VERSION_SWITCH_ON)
# 添加MediaProc 媒体管理模块
set(MEDIA_PROC_MODULE VERSION_SWITCH_ON)
# 添加红外相机模块
set(IRC_MODULE VERSION_SWITCH_ON)
# 添加昆腾模块
set(LIB_KT_MODULE VERSION_SWITCH_ON)
#设备独立配置源文件
file(GLOB_RECURSE DEVICE_CONFOG_SRC ${ROOT_DIRS}JZsdk_Config/DeviceSample/JZC1/*.c)
list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})
message("C1基础配置完毕\n")
elseif("${DEVICE_NAME}" STREQUAL "JZ_ST")
# 添加Gimbal 云台处理模块
set(GIMBAL_MODULE VERSION_SWITCH_ON)
# 添加MediaProc 媒体管理模块
set(MEDIA_PROC_MODULE VERSION_SWITCH_ON)
# 添加红外相机模块
set(IRC_MODULE VERSION_SWITCH_ON)
# 添加飒特模块
set(LIB_SATIRC_MODULE VERSION_SWITCH_ON)
#设备独立配置源文件
file(GLOB_RECURSE DEVICE_CONFOG_SRC ${ROOT_DIRS}JZsdk_Config/DeviceSample/JZ_ST/*.c)
list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})
message("ST基础配置完毕\n")
elseif("${DEVICE_NAME}" STREQUAL "JZ_H150A")
# 添加WARNLIGHT 警示灯处理模块
set(WARNLIGHT_MODULE VERSION_SWITCH_ON)
# 添加AudioDeal 音频处理模块
set(AUDIODEAL_MODULE VERSION_SWITCH_ON)
# 添加喊话器模块
set(MEGAPHONE_MODULE VERSION_SWITCH_ON)
# 添加TTS模块
set(TTS_MODULE JZ_TTS_MODULE_2)
# 添加FFMPEG及其附属模块
set(FFMPEG_MODULE VERSION_SWITCH_ON)
#设备独立配置源文件
file(GLOB_RECURSE DEVICE_CONFOG_SRC ${ROOT_DIRS}JZsdk_Config/DeviceSample/JZ_H150A/*.c)
list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})
message("JZ_H150A基础配置完毕\n")
elseif("${DEVICE_NAME}" STREQUAL "JZ_T40S")
# 添加Gimbal 云台处理模块
set(GIMBAL_MODULE VERSION_SWITCH_ON)
# 添加WARNLIGHT 警示灯处理模块
set(WARNLIGHT_MODULE VERSION_SWITCH_ON)
# 添加探照灯模块
set(SEARCHLIGHT_MODULE VERSION_SWITCH_ON)
# 添加激光模块
set(SIDE_LASER_MODULE VERSION_SWITCH_ON)
# 添加AudioDeal 音频处理模块
set(AUDIODEAL_MODULE VERSION_SWITCH_ON)
# 添加speex音频处理模块
# set(SPEEX_MODULE VERSION_SWITCH_ON)
# 添加喊话器模块
set(MEGAPHONE_MODULE VERSION_SWITCH_ON)
# 添加TTS模块
set(TTS_MODULE JZ_TTS_MODULE_2)
# 添加FFMPEG及其附属模块
set(FFMPEG_MODULE VERSION_SWITCH_ON)
#设备独立配置源文件
file(GLOB_RECURSE DEVICE_CONFOG_SRC ${ROOT_DIRS}JZsdk_Config/DeviceSample/JZ_T40_T40S/*.c)
list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})
message("JZ_T40S基础配置完毕\n")
elseif("${DEVICE_NAME}" STREQUAL "JZ_T40")
# 添加Gimbal 云台处理模块
set(GIMBAL_MODULE VERSION_SWITCH_ON)
# 添加WARNLIGHT 警示灯处理模块
set(WARNLIGHT_MODULE VERSION_SWITCH_ON)
# 添加探照灯模块
set(SEARCHLIGHT_MODULE VERSION_SWITCH_ON)
# 添加激光模块
set(SIDE_LASER_MODULE VERSION_SWITCH_ON)
#设备独立配置源文件
file(GLOB_RECURSE DEVICE_CONFOG_SRC ${ROOT_DIRS}JZsdk_Config/DeviceSample/JZ_T40_T40S/*.c)
list(APPEND ALL_SRC_FILES ${DEVICE_CONFOG_SRC})
message("JZ_T40基础配置完毕\n")
endif()
message("***********************模组模块配置完毕*********************************\n")
\ No newline at end of file
... ...
# 第一方/第三方 模块加载文件
# 主要用于加载动态库给编译使用
# ${ROOT_DIRS}为cmakelist文件提供的工程根目录
if(${TTS_MODULE} STREQUAL "JZ_TTS_MODULE_1")
set(iFLYTEK_TTS_1_DIRS "${ROOT_DIRS}ThirdParty/iFLYTEK_TTS/lib/arm-cortexa9-linux-gnueabihf")
include_directories(${ROOT_DIRS}ThirdParty/iFLYTEK_TTS/include)
target_link_libraries(
${PROJECT_NAME}
${iFLYTEK_TTS_1_DIRS}/libmsc.so
)
message("讯飞一代TTS模块已加载\n")
endif()
if(${TTS_MODULE} STREQUAL "JZ_TTS_MODULE_1")
set(ESPEAK_TTS_DIRS "${ROOT_DIRS}ThirdParty/Espeak/lib/arm-cortexa9-linux-gnueabihf")
include_directories(${ROOT_DIRS}ThirdParty/Espeak/include)
target_link_libraries(
${PROJECT_NAME}
${ESPEAK_TTS_DIRS}/libportaudio.so.2
${ESPEAK_TTS_DIRS}/libTTS_Player.so
)
message("Espeak模块已加载\n")
endif()
if(${TTS_MODULE} STREQUAL "JZ_TTS_MODULE_2")
set(iFLYTEK_TTS_2_DIRS "${ROOT_DIRS}ThirdParty/iFLYTEK_TTS_2/lib/arm-cortexa9-linux-gnueabihf")
include_directories(${ROOT_DIRS}ThirdParty/iFLYTEK_TTS_2/include)
target_link_libraries(
${PROJECT_NAME}
aikit
rt
)
message("讯飞二代TTS模块已加载\n")
endif()
if(${ALSALIB_MODULE} STREQUAL "VERSION_SWITCH_ON")
set(ALSALIB_DIRS "${ROOT_DIRS}ThirdParty/AlsaLib/lib/arm-cortexa9-linux-gnueabihf")
include_directories(${ROOT_DIRS}ThirdParty/AlsaLib/include)
target_link_libraries(
${PROJECT_NAME}
${ALSALIB_DIRS}/libasound.so.2.0.0
)
message("alsalib已加载\n")
endif()
if(${OPUS_MODULE} STREQUAL "VERSION_SWITCH_ON")
set(OPUS_DIRS "${ROOT_DIRS}ThirdParty/opus/lib/arm-cortexa9-linux-gnueabihf")
include_directories(${ROOT_DIRS}ThirdParty/opus/include)
target_link_libraries(
${PROJECT_NAME}
${OPUS_DIRS}/libopus.so
)
message("OPUS模块已加载\n")
endif()
if(${SPEEX_MODULE} STREQUAL "VERSION_SWITCH_ON")
add_definitions(-DMACRO_SPEEX_MODULE) #加载模块
set(SPEEX_DIRS "${ROOT_DIRS}ThirdParty/Speex/lib/arm-cortexa9-linux-gnueabihf")
include_directories(${ROOT_DIRS}ThirdParty/Speex/include)
target_link_libraries(
${PROJECT_NAME}
${SPEEX_DIRS}/libspeexdsp.so
)
message("Speex模块已加载\n")
endif()
# if(${CedarxLib} STREQUAL "VERSION_SWITCH_ON")
# message("\nCedarX已加载\n")
# target_link_libraries(${PROJECT_NAME}
# ${ROOT_DIRS}ModuleLib/Camera/CedarX/libawh264.so
# ${ROOT_DIRS}ModuleLib/Camera/CedarX/libMemAdapter.so
# ${ROOT_DIRS}ModuleLib/Camera/CedarX/libVE.so
# ${ROOT_DIRS}ModuleLib/Camera/CedarX/libvencoder.so
# ${ROOT_DIRS}ModuleLib/Camera/CedarX/libvideoengine.so
# ${ROOT_DIRS}ModuleLib/Camera/CedarX/libvdecoder.so
# )
# message("\n OpenCV已加载\n")
# target_link_libraries(${PROJECT_NAME}
# ${ROOT_DIRS}ModuleLib/OpenCV/libopencv_calib3d.so
# ${ROOT_DIRS}ModuleLib/OpenCV/libopencv_core.so
# ${ROOT_DIRS}ModuleLib/OpenCV/libopencv_dnn.so
# ${ROOT_DIRS}ModuleLib/OpenCV/libopencv_features2d.so
# ${ROOT_DIRS}ModuleLib/OpenCV/libopencv_flann.so
# ${ROOT_DIRS}ModuleLib/OpenCV/libopencv_highgui.so
# ${ROOT_DIRS}ModuleLib/OpenCV/libopencv_imgcodecs.so
# ${ROOT_DIRS}ModuleLib/OpenCV/libopencv_imgproc.so
# ${ROOT_DIRS}ModuleLib/OpenCV/libopencv_ml.so
# ${ROOT_DIRS}ModuleLib/OpenCV/libopencv_objdetect.so
# ${ROOT_DIRS}ModuleLib/OpenCV/libopencv_photo.so
# ${ROOT_DIRS}ModuleLib/OpenCV/libopencv_shape.so
# ${ROOT_DIRS}ModuleLib/OpenCV/libopencv_stitching.so
# ${ROOT_DIRS}ModuleLib/OpenCV/libopencv_superres.so
# ${ROOT_DIRS}ModuleLib/OpenCV/libopencv_videoio.so
# ${ROOT_DIRS}ModuleLib/OpenCV/libopencv_video.so
# ${ROOT_DIRS}ModuleLib/OpenCV/libopencv_videostab.so
# )
# message("\n ffmpeg已加载\n")
# target_link_libraries(${PROJECT_NAME}
# ${ROOT_DIRS}ModuleLib/ffmpeg/libavcodec.so
# ${ROOT_DIRS}ModuleLib/ffmpeg/libavdevice.so
# ${ROOT_DIRS}ModuleLib/ffmpeg/libavfilter.so
# ${ROOT_DIRS}ModuleLib/ffmpeg/libavformat.so
# ${ROOT_DIRS}ModuleLib/ffmpeg/libavutil.so
# ${ROOT_DIRS}ModuleLib/ffmpeg/libswresample.so
# ${ROOT_DIRS}ModuleLib/ffmpeg/libswscale.so
# )
# message("\n SearchLightCenter已加载\n")
# target_link_libraries(${PROJECT_NAME}
# ${ROOT_DIRS}ModuleLib/SearchLightCenter/libcenter.so
# )
# endif()
# ffmpeg库加载
if(${FFMPEG_MODULE} STREQUAL "VERSION_SWITCH_ON")
message("\nffmpeg模块加载\n")
#根据编译链进行加载
if(${MAKE_COMPILER} STREQUAL "ARM_CORTEXA9_LINUX")
message("ARM_CORTEXA9_LINUX\n")
set(FFMPEG_6_0_DIRS "${ROOT_DIRS}ThirdParty/ffmpeg_6_0/lib/arm-cortexa9-linux-gnueabihf")
include_directories(${ROOT_DIRS}ThirdParty/ffmpeg_6_0/include)
target_link_libraries(
${PROJECT_NAME}
${FFMPEG_6_0_DIRS}/libavcodec.so.60
${FFMPEG_6_0_DIRS}/libavdevice.so.60
${FFMPEG_6_0_DIRS}/libavfilter.so.9
${FFMPEG_6_0_DIRS}/libavformat.so.60
${FFMPEG_6_0_DIRS}/libavutil.so.58
${FFMPEG_6_0_DIRS}/libpostproc.so.57
${FFMPEG_6_0_DIRS}/libswresample.so.4
${FFMPEG_6_0_DIRS}/libswscale.so.7
)
message("x264模块已加载\n")
set(X264_DIRS "${ROOT_DIRS}ThirdParty/x264_2245/lib/arm-cortexa9-linux-gnueabihf")
include_directories(${ROOT_DIRS}ThirdParty/x264_2245/include)
target_link_libraries(
${PROJECT_NAME}
${X264_DIRS}/libx264.so.157
)
message("FDK_AAC模块已加载\n")
set(FDK_AAC_DIRS "${ROOT_DIRS}ThirdParty/fdk_aac_2_0_3/lib/arm-cortexa9-linux-gnueabihf")
include_directories(${ROOT_DIRS}ThirdParty/fdk_aac_2_0_3/include)
target_link_libraries(
${PROJECT_NAME}
${FDK_AAC_DIRS}/libfdk-aac.so.2
)
endif()
#根据编译链进行加载
if(${MAKE_COMPILER} STREQUAL "LINARO_ARM_CORTEX_LINUX")
message("LINARO_ARM_CORTEX_LINUX\n")
set(FFMPEG_6_0_DIRS "${ROOT_DIRS}ThirdParty/ffmpeg_6_0/lib/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf")
include_directories(${ROOT_DIRS}ThirdParty/ffmpeg_6_0/include)
target_link_libraries(
${PROJECT_NAME}
${FFMPEG_6_0_DIRS}/libavcodec.so.60
${FFMPEG_6_0_DIRS}/libavdevice.so.60
${FFMPEG_6_0_DIRS}/libavfilter.so.9
${FFMPEG_6_0_DIRS}/libavformat.so.60
${FFMPEG_6_0_DIRS}/libavutil.so.58
${FFMPEG_6_0_DIRS}/libpostproc.so.57
${FFMPEG_6_0_DIRS}/libswresample.so.4
${FFMPEG_6_0_DIRS}/libswscale.so.7
)
message("x264模块已加载\n")
set(X264_DIRS "${ROOT_DIRS}ThirdParty/x264_2245/lib/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf")
include_directories(${ROOT_DIRS}ThirdParty/x264_2245/include)
target_link_libraries(
${PROJECT_NAME}
${X264_DIRS}/libx264.so.157
)
message("FDK_AAC模块已加载\n")
set(FDK_AAC_DIRS "${ROOT_DIRS}ThirdParty/fdk_aac_2_0_3/lib/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf")
include_directories(${ROOT_DIRS}ThirdParty/fdk_aac_2_0_3/include)
target_link_libraries(
${PROJECT_NAME}
${FDK_AAC_DIRS}/libfdk-aac.so.2
)
endif()
endif()
#RK_mmp库
if(${LIB_RK_MMP} STREQUAL "VERSION_SWITCH_ON")
message("RK_MMP库已加载\n")
add_definitions(-DMACRO_RK_MPP_MODULE) #加载模块
include_directories(${ROOT_DIRS}/ThirdParty/RK_mmp/aarch64-none-linux-gnu/include)
target_link_libraries(
${PROJECT_NAME}
${ROOT_DIRS}/ThirdParty/RK_mmp/aarch64-none-linux-gnu/lib/librockchip_mpp.so.0
${ROOT_DIRS}/ThirdParty/RK_mmp/aarch64-none-linux-gnu/lib/librockchip_vpu.so.0
)
endif()
#RK_rgb库
if(${LIB_RK_RGB} STREQUAL "VERSION_SWITCH_ON")
message("RK_RGB库已加载\n")
add_definitions(-DMACRO_RK_RGA_MODULE) #加载模块
include_directories(${ROOT_DIRS}/ThirdParty/RK_rga/aarch64-none-linux-gnu/include)
target_link_libraries(
${PROJECT_NAME}
${ROOT_DIRS}/ThirdParty/RK_rga/aarch64-none-linux-gnu/lib/librga.so
)
endif()
#usb库
if(${LIB_USB} STREQUAL "VERSION_SWITCH_ON")
add_definitions(-DMACRO_USB_MODULE) #加载usb模块
message("USB库已加载\n")
include_directories(${ROOT_DIRS}/ThirdParty/libusb/aarch64-none-linux-gnu/include)
target_link_libraries(
${PROJECT_NAME}
${ROOT_DIRS}/ThirdParty/libusb/aarch64-none-linux-gnu/lib/libusb-1.0.so.0.4.0
)
message("udev库已加载\n")
include_directories(${ROOT_DIRS}/ThirdParty/udev/aarch64-none-linux-gnu/include)
target_link_libraries(
${PROJECT_NAME}
${ROOT_DIRS}/ThirdParty/udev/aarch64-none-linux-gnu/lib/libudev.so.1.6.3
)
endif()
#kt_IRC库
if(${LIB_KT_IRC} STREQUAL "VERSION_SWITCH_ON")
add_definitions(-DMACRO_KTIRC_MODULE)
message("ktIRC库已加载\n")
include_directories(${ROOT_DIRS}/ThirdParty/KT_IRC/include)
target_link_libraries(
${PROJECT_NAME}
${ROOT_DIRS}/ThirdParty/KT_IRC/aarch64-none-linux-gnu/lib/libm330aarchx64.so
)
endif()
#飒特 IRC库
if(${LIB_SAT_IRC} STREQUAL "VERSION_SWITCH_ON")
add_definitions(-DMACRO_SATIRC_MODULE)
message("STIRC库已加载\n")
include_directories(${ROOT_DIRS}/ThirdParty/SatIrcLib/include)
target_link_libraries(
${PROJECT_NAME}
${ROOT_DIRS}/ThirdParty/SatIrcLib/aarch64-none-linux-gnu/lib/libsatir.so
)
endif()
message("**************************动态库加载完毕***************************\n")
\ No newline at end of file
... ...
message("开始库搜索")
if(${TTS_MODULE} STREQUAL "JZ_TTS_MODULE_2")
link_directories(${ROOT_DIRS}ThirdParty/iFLYTEK_TTS_2/lib/arm-cortexa9-linux-gnueabihf)
message("讯飞二代TTSLib已搜索\n")
endif()
\ No newline at end of file
... ...
{
"configurations": [
{
"inheritEnvironments": [
"msvc_x86"
],
"name": "x86-Debug",
"includePath": [
"${env.INCLUDE}",
"${workspaceRoot}\\**"
],
"defines": [
"WIN32",
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"intelliSenseMode": "windows-msvc-x86"
}
]
}
\ No newline at end of file
... ...
#include <stdio.h>
#include "JZsdkLib.h"
#include "./JZsdk_TaskManagement/TaskManagement.h"
static T_JZsdkReturnCode JZsdk_PrepareSystemEnvironment()
{
T_JZsdkReturnCode ret;
ret = JZsdk_OsalInit();
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
}
else
{
JZSDK_LOG_INFO("JZSDK_OSAL_INIT_SUCCESS");
}
return ret;
}
//初始化sdk
T_JZsdkReturnCode JZsdk_LibInit(int LogFlag)
{
//环境初始化
JZsdk_PrepareSystemEnvironment();
if (LogFlag == JZ_FLAGCODE_ON)
{
//1、初始化log
JZsdk_LoggerInit();
}
//2、任务管理系统初始化
TaskManagement_Init();
JZSDK_LOG_INFO("JZSDK_LIB_INIT_SUCCESS");
}
\ No newline at end of file
... ...
/**
********************************************************************
* @file JZsdkLib.h
* JZsdk的头文件
*
*********************************************************************
*/
/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef JZSDKLIB_H
#define JZSDKLIB_H
/* Includes ------------------------------------------------------------------*/
#ifdef __cplusplus
extern "C" {
#endif
/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/
#include "JZsdk_Base/JZsdkBase.h"
#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
#include "JZsdk_CommonFuntion/JZsdkCommonFuntion.h"
#include "JZsdk_TaskManagement/TaskManagement.h"
/* Exported types ------------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
T_JZsdkReturnCode JZsdk_LibInit(int LogFlag);
#ifdef __cplusplus
}
#endif
#endif
/************************ (C) COPYRIGHT DJI Innovations *******END OF FILE******/
... ...
#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
#include <string.h>
#include <pthread.h> // 添加线程互斥锁支持
#include "JZring.h"
typedef struct T_JZring
{
U8_t *buffer; // 缓冲区指针
U32_t size; // 缓冲区总容量
U32_t head; // 写入位置(下一个可写位置)
U32_t tail; // 读取位置(下一个可读位置)
U32_t count; // 当前数据量
pthread_mutex_t mutex; // 互斥锁保护共享资源
} T_JZring;
// 初始化环形缓冲区
T_JZsdkReturnCode JZring_Init(T_JZringHandle *ring, U8_t *buffer, U32_t size)
{
if (!ring || !buffer || size == 0)
{
return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER;
}
T_JZring *r = (T_JZring*)malloc(sizeof(T_JZring));
if (!r) {
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
// 初始化互斥锁
if (pthread_mutex_init(&r->mutex, NULL) != 0) {
free(r);
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
r->buffer = buffer;
r->size = size;
r->head = 0;
r->tail = 0;
r->count = 0;
*ring = (T_JZringHandle)r;
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
// 获取缓冲区总容量
T_JZsdkReturnCode JZring_GetSize(T_JZringHandle ring, U32_t *size)
{
if (!ring || !size) {
return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER;
}
T_JZring *r = (T_JZring*)ring;
pthread_mutex_lock(&r->mutex);
*size = r->size;
pthread_mutex_unlock(&r->mutex);
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
// 获取当前数据量
T_JZsdkReturnCode JZring_GetDataCount(T_JZringHandle ring, U32_t *count)
{
if (!ring || !count) {
return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER;
}
T_JZring *r = (T_JZring*)ring;
pthread_mutex_lock(&r->mutex);
*count = r->count;
pthread_mutex_unlock(&r->mutex);
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
// 从环形缓冲区读取数据
T_JZsdkReturnCode JZring_Read(T_JZringHandle ring, U8_t *data, U32_t size, U32_t *readSize)
{
if (!ring || !data || !readSize) {
return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER;
}
T_JZring *r = (T_JZring*)ring;
*readSize = 0;
pthread_mutex_lock(&r->mutex);
if (r->count == 0 || size == 0) {
pthread_mutex_unlock(&r->mutex);
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
// 计算实际可读数量
U32_t bytes_to_read = (size > r->count) ? r->count : size;
*readSize = bytes_to_read;
// 计算连续可读空间(可能被尾部分割)
U32_t contig = r->size - r->tail;
if (bytes_to_read <= contig) {
memcpy(data, r->buffer + r->tail, bytes_to_read);
} else {
memcpy(data, r->buffer + r->tail, contig);
memcpy(data + contig, r->buffer, bytes_to_read - contig);
}
// 更新读指针和数据计数
r->tail = (r->tail + bytes_to_read) % r->size;
r->count -= bytes_to_read;
pthread_mutex_unlock(&r->mutex);
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
// 写入数据到环形缓冲区
T_JZsdkReturnCode JZring_Write(T_JZringHandle ring, const U8_t *data, U32_t size)
{
if (!ring || !data) {
return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER;
}
if (size == 0) {
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
T_JZring *r = (T_JZring*)ring;
pthread_mutex_lock(&r->mutex);
// 直接检查可用空间
if (size > (r->size - r->count))
{
pthread_mutex_unlock(&r->mutex);
return JZ_ERROR_SYSTEM_MODULE_CODE_BUFFER_SIZE_NOT_ENOUGH;
}
// 计算连续可写空间(可能被尾部分割)
U32_t contig = r->size - r->head;
if (size <= contig) {
memcpy(r->buffer + r->head, data, size);
} else {
memcpy(r->buffer + r->head, data, contig);
memcpy(r->buffer, data + contig, size - contig);
}
// 更新写指针和数据计数
r->head = (r->head + size) % r->size;
r->count += size;
pthread_mutex_unlock(&r->mutex);
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
// 获取空闲空间
T_JZsdkReturnCode JZring_GetFreeSpace(T_JZringHandle ring, U32_t *size)
{
if (!ring || !size) {
return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER;
}
T_JZring *r = (T_JZring*)ring;
pthread_mutex_lock(&r->mutex);
*size = r->size - r->count;
pthread_mutex_unlock(&r->mutex);
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
// 检查缓冲区是否为空
T_JZsdkReturnCode JZring_IsEmpty(T_JZringHandle ring, bool *isEmpty)
{
if (!ring || !isEmpty) {
return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER;
}
T_JZring *r = (T_JZring*)ring;
pthread_mutex_lock(&r->mutex);
*isEmpty = (r->count == 0);
pthread_mutex_unlock(&r->mutex);
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
// 检查缓冲区是否已满
T_JZsdkReturnCode JZring_IsFull(T_JZringHandle ring, bool *isFull)
{
if (!ring || !isFull) {
return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER;
}
T_JZring *r = (T_JZring*)ring;
pthread_mutex_lock(&r->mutex);
*isFull = (r->count == r->size);
pthread_mutex_unlock(&r->mutex);
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
// 重置环形缓冲区
T_JZsdkReturnCode JZring_Reset(T_JZringHandle ring)
{
if (!ring) {
return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER;
}
T_JZring *r = (T_JZring*)ring;
pthread_mutex_lock(&r->mutex);
r->head = 0;
r->tail = 0;
r->count = 0;
pthread_mutex_unlock(&r->mutex);
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
// 反初始化环形缓冲区
T_JZsdkReturnCode JZring_DeInit(T_JZringHandle ring)
{
if (!ring) {
return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER;
}
T_JZring *r = (T_JZring*)ring;
// 销毁互斥锁
pthread_mutex_destroy(&r->mutex);
// 释放管理结构体
free(r);
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
\ No newline at end of file
... ...
/**
********************************************************************
* @file JZring.h
* 环形缓冲区
*
*********************************************************************
*/
/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef JZ_RING_H
#define JZ_RING_H
/* Includes ------------------------------------------------------------------*/
#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Exported constants --------------------------------------------------------*/
typedef void* T_JZringHandle;
/* Exported types ------------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
T_JZsdkReturnCode JZring_Init(T_JZringHandle *ring, U8_t *buffer, U32_t size);
T_JZsdkReturnCode JZring_Write(T_JZringHandle ring, const U8_t *data, U32_t size);
T_JZsdkReturnCode JZring_Read(T_JZringHandle ring, U8_t *data, U32_t size, U32_t *readSize);
T_JZsdkReturnCode JZring_GetDataCount(T_JZringHandle ring, U32_t *count);
T_JZsdkReturnCode JZring_Reset(T_JZringHandle ring);
T_JZsdkReturnCode JZring_DeInit(T_JZringHandle ring);
#ifdef __cplusplus
}
#endif
#endif
... ...
/**
********************************************************************
* @file JZsdkBase.h
* JZsdk基础部件的头文件
*
*********************************************************************
*/
/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef JZSDKBASE_H
#define JZSDKBASE_H
/* Includes ------------------------------------------------------------------*/
#ifdef __cplusplus
extern "C" {
#endif
/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/
#include "JZsdk_Logger/JZsdk_Logger.h"
#include "JZsdk_Code/JZsdk_FLagCode.h"
#include "JZsdk_Osal/JZsdk_Osal.h"
/* Exported types ------------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
#ifdef __cplusplus
}
#endif
#endif
... ...
/**
********************************************************************
* @file JZsdk_Code.h
* 用于记录各类码的表
*
*********************************************************************
*/
/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef JZSDK_CODE_H
#define JZSDK_CODE_H
/* Includes ------------------------------------------------------------------*/
#ifdef __cplusplus
extern "C" {
#endif
/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/
#include "./JZsdk_typedef/JZsdk_typedef.h"
#include "./JZsdk_typedef/JZsdk_AttributeDef.h"
#include "./JZsdk_ReturnCode/JZsdk_ReturnCode.h"
#include "./JZsdk_Platform/JZsdk_Platform.h"
#include "./JZsdk_InsCode.h"
#include "./JZsdk_FLagCode.h"
#include "./JZsdk_WidgetCode.h"
#include "./JZsdk_DeviceCode.h"
#include "./JZsdk_DefineCode.h"
/* Exported types ------------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
#ifdef __cplusplus
}
#endif
#endif
... ...
#include <stdio.h>
#include "./JZsdk_DefineCode.h"
unsigned char * JZsdk_DefineCode_GetPortName(int Port)
{
switch (Port)
{
case UART_4G:
return "设备4G";
break;
case UART_DEV_1:
return "设备UART1";
break;
case UART_DEV_2:
return "设备UART2";
break;
case HAL_DATA_TRANSMISSION:
return "HAL数据";
break;
case NET_DEV_1:
return "设备NET1";
break;
case NO_SPECIFIED:
return "无指定设备";
break;
default:
return "无指定设备";
break;
}
}
\ No newline at end of file
... ...
/**
********************************************************************
* @file JZsdk_DefiningCode.h
* 用于记录各种定义类型的表
*
*********************************************************************
*/
/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef JZSDK_DEFININGCODE_H
#define JZSDK_DEFININGCODE_H
/* Includes ------------------------------------------------------------------*/
#ifdef __cplusplus
extern "C"
{
#endif
/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/
/* Exported types ------------------------------------------------------------*/
typedef enum JZ_DEVICE_PORT_TYPE
{
DEVICE_PSDK = 0x0000, // psdk功能
UART_4G = 0x0010, // 4G功能
UART_DEV_1 = 0x0011, // 1号设备功能
UART_DEV_2 = 0x0012, // 2号设备功能
UART_DEV_3 = 0x0013, // 3号设备功能
UART_DEV_4 = 0x0014, // 4号设备功能
UART_DEV_5 = 0x0015, // 5号设备功能
USB_DEV_1 = 0x0020, // usb设备
USB_DEV_2 = 0x0021, // usb设备
USB_DEV_3 = 0x0022, // usb设备
USB_DEV_4 = 0x0023, // usb设备
USB_DEV_5 = 0x0024, // usb设备
NET_DEV_1 = 0x0030, // 网络设备
NET_DEV_2 = 0x0031, // 网络设备
NET_DEV_3 = 0x0032, // 网络设备
HAL_DATA_TRANSMISSION = 0x0040, // hal定制的特殊数据传播
HAL_MAX = 0x0050, // hal最大值
COMBINE_DEVICE = 0x1998, // 组合设备
NO_SPECIFIED = 0x1999, // 无制定设备
} JZ_DEVICE_PORT_TYPE;
typedef enum JZ_MODULE_CONTROL_WAY
{
JZ_MODULE_CONTROL_WAY_INDEPENDENT = 0x1000, // 独立控制
JZ_MODULE_CONTROL_WAY_TRANSPARENT = 0x1001, //透传控制
}JZ_MODULE_CONTROL_WAY; // 模块控制方式
typedef enum JZ_DATA_TRANS_TYPE
{
JZ_DATA_TRANS_TYPE_REAL_TIME_MP2 = 0x1000, // 实时mp2数据传输中
JZ_DATA_TRANS_TYPE_AUDIO_FILE = 0x1001, // 音频文件传输中
JZ_DATA_TRANS_TYPE_OPUS_FILE = 0x1002, // opus文件传输中
JZ_DATA_TRANS_TYPE_REAL_TIME_OPUS = 0x1003, // 实时opus传输中
JZ_DATA_TRANS_TYPE_TTS = 0x1004, //TTS传输模式
}JZ_DATA_TRANS_TYPE;
/* Exported functions --------------------------------------------------------*/
unsigned char * JZsdk_DefineCode_GetPortName(int Port);
#ifdef __cplusplus
}
#endif
#endif
... ...
#include <stdio.h>
#include "./JZsdk_DeviceCode.h"
/*************************
*
* 获取设备名称
*
*
* ************************/
unsigned char *JZsdk_GetDeviceName()
{
}
... ...
/* ********************************************************************
*
* 用来规范version_choose的参数
*
***********************************************/
#ifndef JZSDK_DEVICE_CODE_H
#define JZSDK_DEVICE_CODE_H
//特殊版本号
#define SPECIAL_NORMAL 0x01 //普通版本
#define SPECIAL_DAOTONG 0x02 //道通版本
#define SPECIAL_H10_M300 0x03 //h10 m300版本
//软件模式
#define APP_PSDK 0x01
#define APP_UART 0x02
#define APP_TEST 0x03
#define APP_ATTENTION 0x04
//平台选择
#define PLATFORM_H3 0x01
#define PLATFORM_V3S 0x02
//固件属地
#define OVERSEAS_VERSION 0x01
#define DOMESTIC_VERSION 0x02
//加载开关
#define VERSION_SWITCH_ON 0x0001 //加载
#define VERSION_SWITCH_OFF 0x0000 //不加载
//设备选择
#define JZ_H1E 0x11
#define JZ_H1T 0x16
#define JZ_U3 0x17
#define JZ_U3S 0x18
#define JZ_U3D 0x19
#define JZ_U30 0x1A
#define JZ_T40S 0x1C
#define JZ_T40_LEFT_GIMBAL 0x1C11
#define JZ_T40_RIGHT_GIMBAL 0x1C12
#define JZ_T40_LEFT_LIGHT 0x1C21
#define JZ_T40_RIGHT_LIGHT 0x1C22
#define JZ_T40 0x1D
#define JZ_H150S 0x13
#define JZ_H150T 0x15
#define JZ_H150A 0x1E
#define JZ_H10 0x12
#define JZ_H10T 0x14
#define TF_A1 0x1010
#define JZ_C1 0x1011
#define JZ_ST 0x1012
/***********************************
*
* 已退出历史舞台
*
* *********************************/
// //音频滤波的方式
// //目前只有和h10使用带阻滤波
// #define DIRECTED_STOPBAND_FILTERING 0x10001 //带阻滤波
// #define HIGH_PASS_FILTERING 0x10002 //高通滤波
// #define INTERGRATED_FILTERING_1 0x10003 //综合滤波1代
#endif
... ...
/**
********************************************************************
* @file JZsdk_FLagCode.h
* 用于标识码的表
*
*********************************************************************
*/
/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef JZSDK_FLAGCODE_H
#define JZSDK_FLAGCODE_H
/* Includes ------------------------------------------------------------------*/
#ifdef __cplusplus
extern "C" {
#endif
/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/
typedef enum JZ_Flag_Code{
JZ_FLAGCODE_OFF = 0x0000,
JZ_FLAGCODE_ON = 0x0001,
JZ_FLAGCODE_GET = 0x0010, //获取指令
JZ_FLAGCODE_SET = 0x0011, //设置指令
JZ_FLAGCODE_NORMAL = 0x00FF, //默认模式
} JZ_Flag_Code;
/* Exported types ------------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
#ifdef __cplusplus
}
#endif
#endif
... ...
/**
********************************************************************
* @file JZsdk_InsCode.h
* 用于错误码的表
*
*********************************************************************
*/
/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef JZSDK_INSCODE_H
#define JZSDK_INSCODE_H
/* Includes ------------------------------------------------------------------*/
#ifdef __cplusplus
extern "C" {
#endif
/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/
typedef enum {
//5A类帧
JZ_INSCODE_5AFRAME_FRAME = 0x10000000, //接收类帧
JZ_INSCODE_5AFRAME_ASKFORCONNECT = 0x10000100, //申请连接
JZ_INSCODE_5AFRAME_HEARTBEAT = 0x10000101, //心跳帧
JZ_INSCODE_5AFRAME_TIMESTAMP = 0x10000102, //时间戳帧
JZ_INSCODE_5AFRAME_ALL_VERSION = 0x10000103, //全版本查询
JZ_INSCODE_5AFRAME_ALL_SERIAL_NUMBER = 0x10000104, //全序列号查询
JZ_INSCODE_5AFRAME_LOG_MESSAGE_PRINTF = 0x10000105, //log信息打印
JZ_INSCODE_5AFRAME_DEVICE_MESSAGE = 0x10000106, //设备信息
JZ_INSCODE_5AFRAME_CHECKSTATUS_DEVICE_TYPE_VERSION = 0x5A5A5059, //查询设备类型版本号
JZ_INSCODE_5AFRAME_FRAME_POWER_STATUS = 0x10000110, //电源状态设置
JZ_INSCODE_5AFRAME_PRESET_TASK = 0x10000120, //预置任务
JZ_INSCODE_5AFRAME_SYNCHRONIZES_TASK_TIME = 0x10000121, //任务同步时间帧
JZ_INSCODE_5AFRAME_REALTIMEMP2_START = 0x10000200, //开启实时MP2
JZ_INSCODE_5AFRAME_REALTIMEMP2_UNLIMIT_TRANSMISSION = 0x10000201, //无限制传输实时MP2
JZ_INSCODE_5AFRAME_REALTIMEMP2_STOP = 0x10000202, //结束实时MP2
JZ_INSCODE_5AFRAME_REALTIMEMP2_LIMIT_TRANSMISSION = 0x10000203, //有限制传输MP2
JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_START = 0x10000300, //打开音频文件上传
JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_UNLIMIT_TRANSMISSION = 0x10000301, //无限制传输音频文件
JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_STOP = 0x10000302, //关闭音频文件上传
JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_LIMIT_TRANSMISSION = 0x10000303, //定长传输音频文件
JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_LIMIT_TRANSMISSION_2 = 0x5A5A5105, //定长传输音频文件2型
JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_STOP_AND_CHECK = 0x10000304, //关闭音频文件上传并校验
JZ_INSCODE_5AFRAME_AUDIO_PLAYFILE = 0x10000400, //播放指定音频
JZ_INSCODE_5AFRAME_AUDIO_CONTINUE = 0x10000401, //音频继续播放
JZ_INSCODE_5AFRAME_AUDIO_PAUSE = 0x10000402, //音频暂停播放
JZ_INSCODE_5AFRAME_AUDIO_STOP = 0x10000403, //音频停止播放
JZ_INSCODE_5AFRAME_AUDIO_LASTSONG = 0x10000410, //音频上一曲
JZ_INSCODE_5AFRAME_AUDIO_NEXTSONG = 0x10000411, //音频下一曲
JZ_INSCODE_5AFRAME_AUDIO_GETMUSICLIST = 0x10000420, //获取音频列表
JZ_INSCODE_5AFRAME_AMPLIFIER_STOP = 0x10000500, //强制关闭功放
JZ_INSCODE_5AFRAME_AMPLIFIER_OPEN = 0x10000501, //强制开启功放
JZ_INSCODE_5AFRAME_AMPLIFIER_AUTO = 0x10000502, //恢复自动功放
JZ_INSCODE_5AFRAME_VOLUME = 0x10000600, //调节音量
JZ_INSCODE_5AFRAME_CHECKSTATUS_VOLUME = 0x10000620, //查询音量
JZ_INSCODE_5AFRAME_CHECKSTATUS_PLAY = 0x10000621, //查询播放状态
JZ_INSCODE_5AFRAME_CHECKSTATUS_GIMBAL = 0x10000622, //查询云台角度
JZ_INSCODE_5AFRAME_CHECKSTATUS_GIMBAL_FINETUNING = 0x10000623, //查询云台微调角度
JZ_INSCODE_5AFRAME_CHECKSTATUS_PLAYFILENAME = 0x10000624, //查询播放文件名
JZ_INSCODE_5AFRAME_CHECKSTATUS_SOFTWAREVERSION = 0x10000625, //查询软件版本号
JZ_INSCODE_5AFRAME_CHECKSTATUS_LOOPPLAY = 0x10000626, //查询是否打开循环
JZ_INSCODE_5AFRAME_CHECKSTATUS_ADUIO_LOOP_INTERVAL = 0x10000639, //查询音频循环间隔
JZ_INSCODE_5AFRAME_CHECKSTATUS_CURRENT_PLAYTIME = 0x10000640, //查询当前播放时间回调是否打开
JZ_INSCODE_5AFRAME_CHECKSTATUS_TTSTONE = 0x10000627, //查询音色
JZ_INSCODE_5AFRAME_CHECKSTATUS_TTSSPEED = 0x10000628, //查询语速
JZ_INSCODE_5AFRAME_CHECKSTATUS_SEARCHLIGHT_LIGHTATTRIBUTE = 0x10000629, //查询探照灯 灯3个属性
JZ_INSCODE_5AFRAME_CHECKSTATUS_SEARCHLIGHT_LUMEN = 0x10000630, //查询探照灯流明
JZ_INSCODE_5AFRAME_CHECKSTATUS_SEARCHLIGHT_FREQUENCY = 0x10000631, //查询探照灯频率
JZ_INSCODE_5AFRAME_CHECKSTATUS_SEARCHLIGHT_MODE = 0x10000632, //查询探照灯模式
JZ_INSCODE_5AFRAME_CHECKSTATUS_SEARCHLIGHT_TEMPERATURE = 0x10000633, //查询探照灯温度
JZ_INSCODE_5AFRAME_CHECKSTATUS_LASER_STATUS = 0x10000634, //查询激光状态
JZ_INSCODE_5AFRAME_CHECKSTATUS_WARNINGLIGHT_STATUS = 0x10000635, //查询警灯状态
JZ_INSCODE_5AFRAME_CHECKSTATUS_WARNINGLIGHT_COLOR = 0x10000636, //查询警灯颜色
JZ_INSCODE_5AFRAME_CHECKSTATUS_SERIALNUMBER = 0x10000637, //查询序列号
JZ_INSCODE_5AFRAME_CHECKSTATUS_AUDIO_DETAIL_MESSAGE = 0x10000638, //查询音频详细信息
JZ_INSCODE_5AFRAME_CHECKSTATUS_WARNINGLIGHT_CONTROL_2 = 0x10000639, //查询警灯模式2
JZ_INSCODE_5AFRAME_PLAY_LOOP = 0x10000690, //开启关闭循环
JZ_INSCODE_5AFRAME_ADUIO_PLAY_LOOP_INTERVAL = 0x10000691, //设置音频循环间隔
JZ_INSCODE_5AFRAME_DELETE_AUDIO = 0x10000700, //删除音频
JZ_INSCODE_5AFRAME_DELETE_VOICE_RECORD = 0x10000710, //删除录音
JZ_INSCODE_5AFRAME_DELETE_VIDEO_RECORD = 0x10000720, //删除视频
JZ_INSCODE_5AFRAME_RENAME_AUDIO = 0x10000730, //重命名音频
JZ_INSCODE_5AFRAME_RENAME_VOICE_RECORD = 0x10000740, //重命名录音
JZ_INSCODE_5AFRAME_RENAME_VIDEO_RECORD = 0x10000750, //重命名视频
JZ_INSCODE_5AFRAME_TTS_SET_TONE = 0x10000801, //TTS设置音色
JZ_INSCODE_5AFRAME_TTS_SET_SPEED = 0x10000802, //TTS设置语速
JZ_INSCODE_5AFRAME_TTS_TRANS_START = 0x10000803, //TTS开始发送
JZ_INSCODE_5AFRAME_TTS_TRANS_UNLIMIT_TRANSMISSION = 0x10000804, //TTS正在无限制接收
JZ_INSCODE_5AFRAME_TTS_TRANS_STOP = 0x10000805, //TTS发送完毕
JZ_INSCODE_5AFRAME_TTS_TRANS_LIMIT_TRANSMISSION = 0x10000806, //TTS正在定长接收
JZ_INSCODE_5AFRAME_CURRENT_PLAY_TIME = 0x10004406, //设置播放回传
JZ_INSCODE_5AFRAME_OPUS_TRANS_START_1 = 0x10000900, //opus传输开始1型
JZ_INSCODE_5AFRAME_OPUS_TRANS_START_2 = 0x10000901, //opus传输开始2型
//JZ_INSCODE_5AFRAME_OPUS_TRAN_UNLIMIT_TRANSMISSION = 0x10000901, //opus 无限制传输中
JZ_INSCODE_5AFRAME_OPUS_TRANS_LIMIT_TRANSMISSION = 0x10000903, //opus传输中
JZ_INSCODE_5AFRAME_OPUS_TRANS_STOP = 0x10000902, //opus传输结束
JZ_INSCODE_5AFRAME_OPUS_TRANS_STOP_AND_CHECK = 0x10000904, //opus传输结束并校验
JZ_INSCODE_5AFRAME_OPUS_PLAY = 0x10000910, //opus播放
JZ_INSCODE_5AFRAME_PCM_PLAY = 0x10000920, //pcm播放
JZ_INSCODE_5AFRAME_PCM_GETPCMLIST = 0x10000930, //获pcm列表
JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_START = 0x10000A00, //开启opus实时语音
JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_UNLIMIT_TRANSMISSION = 0x10000A01, //无限制传输opus实时语音
JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_STOP = 0x10000A02, //结束opus实时语音
JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_LIMIT_TRANSMISSION = 0x10000A03, //定长传输opus实时语音
JZ_INSCODE_5AFRAME_GIMBAL_PITCH_CONTROL = 0x10000B00, //云台俯仰控制
JZ_INSCODE_5AFRAME_GIMBAL_YAW_CONTROL = 0x10000B01, //云台朝向控制
JZ_INSCODE_5AFRAME_GIMBAL_ROLL_CONTROL = 0x10000B02, //云台旋转控制
JZ_INSCODE_5AFRAME_GIMBAL_PITCH_FINETUNING_CONTROL = 0x10000B04, //云台俯仰微调
JZ_INSCODE_5AFRAME_GIMBAL_YAW_FINETUNING_CONTROL = 0x10000B05, //云台朝向微调
JZ_INSCODE_5AFRAME_GIMBAL_ROLL_FINETUNING_CONTROL = 0x10000B06, //云台旋转微调
JZ_INSCODE_5AFRAME_GIMBAL_PITCH_COMPENSATE = 0x10000B10, //云台俯仰补偿
JZ_INSCODE_5AFRAME_LASER_CONTROL = 0x5A5A6051, //激光控制
JZ_INSCODE_5AFRAME_LASER_MODE = 0x5A5A6052, //激光模式
JZ_INSCODE_5AFRAME_LASER_LUMEN = 0x5A5A6053, //激光模式
JZ_INSCODE_5AFRAME_LASER_COLOR = 0x5A5A6054, //激光模式
JZ_INSCODE_5AFRAME_LASER_POWER_LIMIT = 0x5A5A6055, //激光功率限制
JZ_INSCODE_5AFRAME_LASER_CHECKSTATUS = 0x5A5A6F53, //查询激光属性
JZ_INSCODE_5AFRAME_SEARCHLIGHT_CONTROL = 0x10000E00, //探照灯开光
JZ_INSCODE_5AFRAME_SEARCHLIGHT_SET_LUMEN = 0x10000E10, //设置探照灯亮度
JZ_INSCODE_5AFRAME_SEARCHLIGHT_SET_LUMENPOWERLIMIT = 0x10000E11, //设置探照灯亮度功率限制
JZ_INSCODE_5AFRAME_SEARCHLIGHT_SET_FREQUENCY = 0x10000E20, //设置把爆闪频率
JZ_INSCODE_5AFRAME_SEARCHLIGHT_MESSAGE_SUBSCRIPTION_CONTROL = 0x10000E21,//探照灯消息订阅控制
JZ_INSCODE_5AFRAME_WARNINGLIGHT_CONTROL = 0x10000F00, //警示灯模式控制
JZ_INSCODE_5AFRAME_WARNINGLIGHT_CONTROL_2 = 0x10000F01, //警示灯模式控制2
JZ_INSCODE_5AFRAME_WARNINGLIGHT_COLOUR = 0x10000F10, //警示灯颜色控制
JZ_INSCODE_5AFRAME_OUTPUTPOWER_CONTROL = 0x10001000, //对外供电开关
JZ_INSCODE_5AFRAME_CHECKSTATUS_OUTPUTPOWER = 0x10001001, //对外供电查询
JZ_INSCODE_5AFRAME_UPGRADE_PERPARE = 0x10001100, //升级准备
JZ_INSCODE_5AFRAME_UPGRADE_SEND_CHECKCODE = 0x10001101, //升级发送校验码
JZ_INSCODE_5AFRAME_UPGRADE_STRAT = 0x10001102, //升级传输开始
JZ_INSCODE_5AFRAME_UPGRADE_TRANS = 0x10001103, //升级传输数据
JZ_INSCODE_5AFRAME_UPGRADE_END = 0x10001104, //升级传输结束
JZ_INSCODE_5AFRAME_CHECKSTATUS_UPGRADE_STATUS = 0x5A5AA110, //升级状态查询
JZ_INSCODE_5AFRAME_CAMERA_VIDEO_PUSH_INDEX = 0x10001200, //设置视频推送索引
JZ_INSOCDE_5AFRAME_CAMERA_TAKE_PHOTO = 0x10001201, //拍照
JZ_INSCODE_5AFRAME_CAMERA_VIDEO_RECORD_START = 0x10001202, //录像开始
JZ_INSCODE_5AFRAME_CAMERA_VIDEO_RECORD_STOP = 0x10001203, //录像结束
JZ_INSCODE_5AFRAME_CAMERA_SHUTTER_CONTROL = 0x10001204, //快门控制
JZ_INSCODE_5AFRAME_CAMERA_FREEZE_CONTROL = 0x10001205, //冻结控制
JZ_INSOCDE_5AFRAME_IRC_CORRECT_WAY = 0x10001300, //红外校准方式
JZ_INSCODE_5AFRAME_IRC_SPC_PARAM = 0x10001301, //单点参数
JZ_INSCODE_5AFRAME_IRC_TPC_PARAM = 0x10001302, //两点参数
JZ_INSOCDE_5AFRAME_IRC_OUTPUT_COLOR_MODE = 0x10001400, //红外输出颜色模式
JZ_INSCODE_5AFRAME_IRC_PSEUDO_COLOR_PARAM = 0x10001401, //红外伪彩色
JZ_INSCODE_5AFRAME_IRC_GAS_ENHANCE_PARAM = 0x10001402, //红外气体增强
//5B类帧
JZ_INSCODE_5BFRAME_FRAME = 0x10004000, //发送帧
JZ_INSCODE_5BFRAME_INITIATECONNECT = 0x10004101, //主动连接
JZ_INSCODE_5BFRAME_HEARTBEAT = 0x10004102, //心跳帧回复
JZ_INSCODE_5BFRAME_TIMESTAMP = 0x10004103, //时间戳帧
JZ_INSCODE_5BFRAME_ALL_VERSION = 0x10004104, //全版本查询
JZ_INSCODE_5BFRAME_ALL_SERIAL_NUMBER = 0x10004105, //全序列号查询
JZ_INSCODE_5BFRAME_DEVICE_MESSAGE = 0x10004107, //设备信息
JZ_INSCODE_5BFRAME_CHECKSTATUS_DEVICE_TYPE_VERSION = 0x5B5B5059, //查询设备类型版本号;
JZ_INSCODE_5BFRAME_PRESET_TASK = 0x10004120, //预置任务
JZ_INSCODE_5BFRAME_SUCESS = 0x10004200, //操作成功
JZ_INSCODE_5BFRAME_FILE_CHECK_DEFEAT = 0x10004201, //校验失败
JZ_INSCODE_5BFRAME_FILE_DECODE_DEFEAT = 0x10004202, //解码失败
JZ_INSCODE_5BFRAME_DEFEAT = 0x100042FF, //操作失败
JZ_INSCODE_5BFRAME_MUSICLIST_START = 0x10004300, //开启发送音乐列表帧
JZ_INSCODE_5BFRAME_MUSICLIST_TRANS = 0x10004301, //发送音乐列表帧
JZ_INSCODE_5BFRAME_MUSICLIST_STOP = 0x10004302, //结束发送音乐列表帧
JZ_INSCODE_5BFRAME_MUSICLIST_TRANS_2 = 0x10004303, //查询音频详细信息2型
JZ_INSCODE_5BFRAME_AUDIO_PLAYSTATUS = 0x10004310, //音频播放状态返回帧
JZ_INSCODE_5BFRAME_AUDIO_PLAYSTATUS_END = 0x10004311, //音频播放状态结束帧
JZ_INSCODE_5BFRAME_VOLUME = 0x10004400, //音量返回帧
JZ_INSCODE_5BFRAME_AUDIO_PLAYLOOPSTATUS = 0x10004401, //发送音频循环播放状态
JZ_INSCODE_5BFRAME_TTS_TONE = 0x10004402, //发送tts音色
JZ_INSCODE_5BFRAME_TTS_SPEED = 0x10004403, //发送tts语速
JZ_INSCODE_5BFRAME_AUDIO_PLAYFILENAME = 0x10004404, //当前播放的音频名字
JZ_INSCODE_5BFRAME_CHECKSTATUS_AUDIO_DETAIL_MESSAGE = 0x10004405, //查询音频详细信息
JZ_INSCODE_5BFRAME_CURRENT_PLAY_TIME = 0x10004406, //当前播放时间
JZ_INSCODE_5BFRAME_CHECKSTATUS_CURRENT_PLAYTIME = 0x10004407, //查询当前播放时间回调是否打开
JZ_INSCODE_5BFRAME_GIMBAL_PITCH = 0x10004500, //云台俯仰角度
JZ_INSCODE_5BFRAME_GIMBAL_YAW = 0x10004501, //云台航向角度
JZ_INSCODE_5BFRAME_GIMBAL_ROLL = 0x10004502, //
JZ_INSCODE_5BFRAME_GIMBAL_PITCH_FINETUNING = 0x10004510, //云台俯仰微调值
JZ_INSCODE_5BFRAME_CHECKSTATUS_SEARCHLIGHT_TEMPERATURE = 0x10004600, //查询探照灯温度
JZ_INSCODE_5BFRAME_CHECKSTATUS_LASER_STATUS_CONTROL = 0x10004601, //查询激光状态_控制
JZ_INSCODE_5BFRAME_CHECKSTATUS_LASER_STATUS_MODE = 0x10004602, //查询激光状态_模式
JZ_INSCODE_5BFRAME_CHECKSTATUS_LASER_STATUS_LUMEN = 0x5B5B6053, //查询激光状态_亮度
JZ_INSCODE_5BFRAME_CHECKSTATUS_LASER_STATUS_COLOR = 0x5B5B6054, //查询激光状态_颜色
JZ_INSCODE_5BFRAME_CHECKSTATUS_LASER_STATUS_POWERLIMIT = 0x5B5B6055, //查询激光状态_功率
JZ_INSCODE_5BFRAME_CHECKSTATUS_SEARCHLIGHT_FREQUENCY = 0x10004610, //查询探照灯频率
JZ_INSCODE_5BFRAME_CHECKSTATUS_SEARCHLIGHT_MODE = 0x10004611, //查询探照灯模式
JZ_INSCODE_5BFRAME_CHECKSTATUS_SEARCHLIGHT_LUMEN = 0x10004612, //查询探照灯流明
JZ_INSCODE_5BFRAME_CHECKSTATUS_WARNINGLIGHT_STATUS = 0x10004700, //警示灯模式控制
JZ_INSCODE_5BFRAME_CHECKSTATUS_WARNINGLIGHT_COLOR = 0x10004701, //警示灯颜色控制
JZ_INSCODE_5BFRAME_CHECKSTATUS_WARNINGLIGHT_CONTROL_2 = 0x10004702, //查询警灯模式2
JZ_INSCODE_5BFRAME_SORTWAREVERSION = 0x10004800, //发送软件版本号
JZ_INSCODE_5BFRAME_HARDWAREVERSION = 0x10004801, //发送硬件版本号
JZ_INSCODE_5BFRAME_CHECKSTATUS_SERIALNUMBER = 0x10004802, //回复序列号
JZ_INSCODE_5BFRAME_CHECKSTATUS_OUTPUTPOWER = 0x10004900, //对外供电查询
JZ_INSCODE_5BFRAME_OPUS_DECODE_STATUS = 0x10005000, //opus解码状态
JZ_INSCODE_5BFRAME_OPUS_TRANS_STOP_AND_CHECK = 0x10005904, //opus传输结束并校验
JZ_INSCODE_5BFRAME_OPUSLIST_START = 0x10005910, //开启发送opus列表帧
JZ_INSCODE_5BFRAME_OPUSLIST_TRANS = 0x10005911, //传输opus列表帧
JZ_INSCODE_5BFRAME_OPUSLIST_END = 0x10005912, //传输opus列表帧
JZ_INSCODE_5BFRAME_UPGRADE_PERPARE = 0x10001100, //升级准备
JZ_INSCODE_5BFRAME_UPGRADE_SEND_CHECKCODE = 0x10001101, //升级发送校验码
JZ_INSCODE_5BFRAME_UPGRADE_STRAT = 0x10001102, //升级传输开始
JZ_INSCODE_5BFRAME_UPGRADE_TRANS = 0x10001103, //升级传输数据
JZ_INSCODE_5BFRAME_UPGRADE_END = 0x10001104, //升级传输结束
JZ_INSCODE_5BFRAME_UPGRADE_CHECKRESULT = 0x10001105, //升级校验结果
JZ_INSCODE_5BFRAME_CHECKSTATUS_UPGRADE_STATUS = 0x5B5BA110, //升级状态
//6A类
JZ_INSCODE_6AFRAME_FRAME = 0x10008000, //发送帧
JZ_INSCODE_6AFRAME_DEBUG_INS = 0x10008080, //调试指令
JZ_INSCODE_6AFRAME_SET_GIMBAL_ORIGIN = 0x10008101, //设置坐标0值
JZ_INSCODE_6AFRAME_SET_GIMBAL_MAXMIN_RANGE = 0x10008102, //设置云台范围最大最小值
JZ_INSCODE_6AFRAME_SET_LUMEN_MAXMIN_RANGE = 0x10008103, //设置灯光范围最大最小值
JZ_INSCODE_6AFRAME_SET_SERIALNUMBER = 0x10008104, //设置序列号
JZ_INSCODE_6AFRAME_SERVO_SELFCHECK = 0x10008105, //舵机自检
JZ_INSCODE_6AFRAME_GIMBAL_LINKAGE_CONTROL = 0x10008106, //开关云台联动
JZ_INSCODE_6AFRAME_WRITE_APP_NAME = 0x6A6A6940, //写入app名称
JZ_INSCODE_6AFRAME_WRITE_APP_ID = 0x6A6A6941, //写入app id
JZ_INSCODE_6AFRAME_WRITE_APP_KEY = 0x6A6A6942, //写入app key
JZ_INSCODE_6AFRAME_WRITE_APP_LICENSE = 0x6A6A6943, //写入app license
JZ_INSCODE_6AFRAME_WRITE_DEVELOPER_ACCOUNT = 0x6A6A6944, //写入开发者账号
JZ_INSCODE_6AFREAM_CHECKSTATUS_USERINFO = 0x6A6A694F, //查询用户信息
JZ_INSCODE_6AFRAME_CHECKSTATUS_SECONDARY_DEVICE_NAME = 0x10008400, //查询从设备设备名
JZ_INSCODE_6AFRAME_CHECKSTATUS_GIMBAL_LINKAGE = 0x10008401, //查询云台联动
JZ_INSCODE_6AFRAME_UART_BITRATE_CHANGE = 0x10008500, //串口比特率修改
JZ_INSCODE_6AFRAME_SPECIAL_PARAMETERS = 0x10008510, //设置特殊参数
JZ_INSCODE_6AFRAME_CHECK_SPECIAL_PARAMETERS = 0x10008511, //查询特殊参数
//6B类
JZ_INSCODE_6BFRAME_CHECKSTATUS_SECONDARY_DEVICE_NAME = 0x1000C400, //回复从设备名
JZ_INSCODE_6BFRAME_CHECKSTATUS_GIMBAL_LINKAGE = 0x1000C401, //回复云台联动
JZ_INSCODE_6BFRAME_CHECK_SPECIAL_PARAMETERS = 0x1000C511, //回复特殊参数
JZ_INSCODE_6BFRAME_WRITE_APP_NAME = 0x6B6B6940, //写入app名称
JZ_INSCODE_6BFRAME_WRITE_APP_ID = 0x6B6B6941, //写入app id
JZ_INSCODE_6BFRAME_WRITE_APP_KEY = 0x6B6B6942, //写入app key
JZ_INSCODE_6BFRAME_WRITE_APP_LICENSE = 0x6B6B6943, //写入app license
JZ_INSCODE_6BFRAME_WRITE_DEVELOPER_ACCOUNT = 0x6B6B6944, //写入开发者账号
} JZ_InsCode;
/* Exported types ------------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
#ifdef __cplusplus
}
#endif
#endif
... ...
/**
********************************************************************
* @file JZsdk_Platform.h
* 用于记录各类码的表
*
*********************************************************************
*/
/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef JZSDK_PLATFORM_H
#define JZSDK_PLATFORM_H
/* Includes ------------------------------------------------------------------*/
#include "../JZsdk_typedef/JZsdk_typedef.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/
#define JZSDK_FILE_NAME_SIZE_MAX (128) //文件名最大长度128
#define JZSDK_FILE_PATH_SIZE_MAX (256) //文件路径最大长度256
#define JZSDK_CMD_SIZE (256) //cmd指令最大长度
#define JZSDK_DIR_SIZE (256) //目录名最大长度
typedef struct {
U16_t year;
U8_t month;
U8_t day;
U8_t hour;
U8_t minute;
U8_t second;
} T_JZsdkTime;
typedef struct T_JZsdkFileInfo{
U32_t size;
T_JZsdkTime createTime;
T_JZsdkTime modifyTime;
char path[JZSDK_FILE_PATH_SIZE_MAX];
bool isDir;
} T_JZsdkFileInfo;
typedef struct T_JZsdkVersionInfo{
U8_t MajorVersion;
U8_t MinorVersion;
U8_t ModifyVersion;
U8_t DebugVersion;
}T_JZsdkVersionInfo;
/* Exported macro ------------------------------------------------------------*/
/* Exported types ------------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
#ifdef __cplusplus
}
#endif
#endif
... ...
#include "./JZsdk_ReturnCode.h"
//获取返回码的信息
const char* JZsdk_GetReturnCodeMessage(T_JZsdkReturnCode ReturnCode)
{
switch (ReturnCode) {
case JZ_ERRORCODE_REALTIMEVOICE_HAS_BEEN_ON:
return "实时语音被开启,该操作失败";
default:
return "未知错误:Unknown error.";
}
}
... ...
/**
********************************************************************
* @file JZsdk_ReturnCode.h
* 用于记录各类码的表
*
*********************************************************************
*/
/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef JZSDK_RETURNCODE_H
#define JZSDK_RETURNCODE_H
/* Includes ------------------------------------------------------------------*/
#include "../JZsdk_typedef/JZsdk_typedef.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/
/* Exported types ------------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
const char* JZsdk_GetReturnCodeMessage(T_JZsdkReturnCode ReturnCode);
#ifdef __cplusplus
}
#endif
#endif
... ...
/**
********************************************************************
* @file JZsdk_SMT_Code.h
* 用于序列号管理的表
*
*********************************************************************
*/
/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef JZSDK_SMT_CODE_H
#define JZSDK_SMT_CODE_H
/* Includes ------------------------------------------------------------------*/
#ifdef __cplusplus
extern "C" {
#endif
/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/
typedef enum
{
// 设备序列号类型
UNDEFINED_SNM = 0x0000, //未定义类型序列号
STANDARD_DJI_SNM = 0x0001, // 大疆转接环序列号类型
STANDARD_JZ_1_SNM = 0x0002, // JZ-1型序列号
STANDARD_JZ_2_SNM = 0x0003, // JZ-2型序列号 2023.12.14 制定
} JZSDK_SNM_TPYE;
typedef enum
{
// 设备激活码状态 0 未存在序列号 1 旧版序列号 2新版序列号未激活 3新版序列号已激活
SNM_NOT_EXISTS = 0x0000, // (未存在序列号)
SNM_HAVE_ACTIVATED = 0x0001, // 已激活
SNM_NOT_ACTIVATED = 0x0002, // 未激活
SNM_ERROR_ACTIVATED = 0x0003, //激活错误状态
} JZSDK_SNM_STATUS;
typedef enum
{
STANDARD_DJI_SNM_LENGTH = 14, //dji序列号默认长度14
STANDARD_JZ_1_SUM_LENGTH = 14, //极至标准1长度太多种拉 喊话器最长是14
STANDARD_JZ_2_SUM_LENGTH = 16, //极至标准2 16长度
}JZSDK_SNM_STANDARD_LENGTH;
typedef enum
{
STANDARD_JZ_2_CN = 0x0001, //极至标准2通用码
STANDARD_JZ_2_EN = 0x0002, //极至标准2海外码
}JZSDK_FIREWARM_CODE;
typedef enum
{
STANDARD_JZ_2_F1 = 0x0001, //通用版本固件
}JZSKD_SPECIAL_VERSION;
#ifdef __cplusplus
}
#endif
#endif
\ No newline at end of file
... ...
/**
********************************************************************
* @file JZsdk_WidgetCode.h
* 用于控件线程的的表
*
*********************************************************************
*/
/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef JZSDK_WIDGET_CODE_H
#define JZSDK_WIDGET_CODE_H
/* Includes ------------------------------------------------------------------*/
#ifdef __cplusplus
extern "C" {
#endif
/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/
typedef enum JZsdk_Widget_Control
{
// 控件类
JZSDK_WIDGET_LASTSONG = 0x0000, // 控件上一曲
JZSDK_WIDGET_NEXTSONG = 0x0001, // 控件下一曲
JZSDK_WIDGET_PLAYANDSTOP = 0x0002, // 控件播放暂停
JZSDK_WIDGET_VOLUME = 0x003, // 控件音量
JZSDK_WIDGET_TTS_SPEED = 0x0004, // 控件tts速度
JZSDK_WIDGET_TTS_TONE = 0x0005, // 控件tts音色
JZSDK_WIDGET_LOOP_PLAY = 0x0010, // 控件循环播放
JZSDK_WIDGET_VIDEOPUSH_INDEX = 0x0021, //切换视频流
JZSDK_WIDGET_TEMP_MEASUREMENT_MODE = 0x0022, //测温
JZSDK_WIDGET_SHUTTER_SWITCH = 0x0023, //快门开关
JZSDK_WIDGET_FREEZE_VIDEO = 0x0024, //冻结视频流
JZSDK_WIDGET_PSEUDO_MODE = 0x0025, //色彩输出模式
JZSDK_WIDGET_ZOOM_SIZE = 0x0026, //焦距
JZSDK_WIDGET_SPC_RESET = 0x0027, //spc重置
JZSDK_WIDGET_PSEUDO_COLOR = 0x0028, //伪彩颜色
JZSDK_WIDGET_CAMERA_CORRECT_MODE = 0x0029, //相机纠正模式
JZSDK_WIDGET_GAS_ENHANCEMENT_COLOR = 0x0030, //气体增强颜色
JZSDK_WIDGET_SPC_MODE = 0x0031, //单点纠正模式
JZSDK_WIDGET_SPC_AUTO_TIME = 0x0032, //自动单点纠正间隔
JZSDK_WIDGET_TPC_MODE = 0x0033, //tpc模式
JZSDK_WIDGET_BAD_PIXEL_CORRECT_MODE = 0x0034, //坏点纠正模式
JZSDK_WIDGET_BAD_PIXEL_CORRECT = 0x0035, //开启纠正
JZSDK_WIDGET_GAS_ENHANCEMENT_CORRECT = 0x0036, //气体增强纠正
JZSDK_WIDGET_IRC_MARK_LOW_AND_HIGH_DATA = 0x0037, //红外标记高低数据
JZSDK_WIDGET_GAS_ENHANCEMENT_CORRECT_HIGH_CALIBRATION = 0x0038, //气体增强纠正高温校准
JZSDK_WIDGET_GAS_ENHANCEMENT_CORRECT_LOW_CALIBRATION = 0x0039, //气体增强纠正低温校准
JZSDK_WIDGET_WARNLIGHT_COLOR_1 = 0x0040, //警告灯颜色1
JZSDK_WIDGET_WARNLIGHT_COLOR_2 = 0x0041, //警告灯颜色2
JZSDK_WIDGET_WARNLIGHT_MODE = 0x0042, //警告灯模式
JZSDK_WIDGET_SIDE_LASER_MODE = 0x0050, //侧射激光模式
JZSDK_WIDGET_SIDE_LASER_LUMEN = 0x0051, //侧面激光亮度
JZSDK_WIDGET_SIDE_LASER_COLOR = 0x0052, //侧面激光颜色
JZSDK_WIDGET_PRSET_TASK = 0x0053, //预设任务
JZSDK_WIDGET_GIMBAL_SINGLE_COMPENSATION_LEFT = 0x0060, //左云台单轴补偿
JZSDK_WIDGET_GIMBAL_SINGLE_COMPENSATION_RIGHT = 0x0061, //右云台单轴补偿
}JZsdk_Widget_Control;
/* Exported types ------------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
#ifdef __cplusplus
}
#endif
#endif
... ...
/**
********************************************************************
* @file JZsdk_AttributeDef.h
* 用于记录属性的表
*
*********************************************************************
*/
/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef JZSDK_ATTRIBUTEDEF_H
#define JZSDK_ATTRIBUTEDEF_H
/* Includes ------------------------------------------------------------------*/
#include "./JZsdk_typedef.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/
/* Exported types ------------------------------------------------------------*/
//时间结构体
typedef struct {
U16_t year;
U8_t month;
U8_t day;
U8_t hour;
U8_t minute;
U8_t second;
}t_JZdateTime;
//GPS时间
typedef U32_t T_JZsdkAttributeGpsTime;
//GPS日期
typedef U32_t T_JZsdkAttributeGpsDate;
//gps经度
typedef T_JZsdkVector3d T_JZsdkAttributeGpsPosition;
/* Exported functions --------------------------------------------------------*/
#ifdef __cplusplus
}
#endif
#endif
... ...
/**
********************************************************************
* @file JZsdk_ErrorCode.h
* 用于错误码的表
*
*********************************************************************
*/
/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef JZSDK_ERRORCODE_H
#define JZSDK_ERRORCODE_H
/* Includes ------------------------------------------------------------------*/
#ifdef __cplusplus
extern "C" {
#endif
/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/
/* Exported types ------------------------------------------------------------*/
typedef enum {
JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS = 0x0000,
JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE = 0x0001,
JZ_ERROR_SYSTEM_MODULE_CODE_HARDLY_FAILURE = 0x0003, //严重错误
JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER = 0x0002, //文件指针错误
JZ_ERROR_SYSTEM_MODULE_CODE_MEMORY_ALLOC_FAILED = 0x0004, //内存分配失败
JZ_ERROR_SYSTEM_MODULE_CODE_IS_BUSY = 0x0005, //忙错误
JZ_ERROR_SYSTEM_MODULE_CODE_CHECK_CODE_ERROR = 0x0006, //校验码错误
JZ_ERROR_SYSTEM_MODULE_CODE_BUFFER_SIZE_NOT_ENOUGH = 0x0007, //缓冲区大小不足
} JZ_SYSTEM_Code;
typedef enum {
JZ_ERROR_SYSTEM_FRAME_ERROR = 0x0100,
} JZ_Syetem_frame_ErrorCode;
typedef enum {
JZ_ERRORCODE_MUSIC_NOT_FOUND_IN_LIST = 0x1000
} JZ_Megaphone_music_ErrorCode;
typedef enum {
JZ_ERRORCODE_REALTIMEVOICE_HAS_BEEN_ON = 0x1201
} JZ_Megaphone_opus_ErrorCode;
typedef enum {
JZ_ERRORCODE_TTS_INVALID_TONE = 0x1300,
JZ_ERRORCODE_TTS_INVALID_SPEED = 0x1301,
JZ_ERRORCODE_TTS_INVALID_ADDTONE = 0x1302,
} JZ_Megaphone_TTS_ErrorCode;
typedef enum {
JZ_ERRORCODE_GIMBAL_INVALID_PITCH = 0x4000,
JZ_ERRORCODE_GIMBAL_INVALID_YAW = 0x4001,
JZ_ERRORCODE_GIMBAL_INVALID_ROLL = 0x4002,
} JZ_Gimbal_ErrorCode;
typedef enum {
JZ_ERROR_CHECKCODE_CHECK_ERROR = 0x5000, //校验码错误
JZ_ERROR_CHECKCODE_DECODE_ERROR = 0x5001, //解码错误
} JZ_CheckCode; //检查校验码
typedef enum {
JZ_ERROR_SYSTEM_MODULE_CODE_NO_UPGRADE_FILE = 0x6000, //没有升级文件
}JZ_Ugrade_ErrorCode;
/* Exported functions --------------------------------------------------------*/
#ifdef __cplusplus
}
#endif
#endif
... ...
/**
********************************************************************
* @file JZsdk_FileType.h
* 用于记录文件类型的表
*
*********************************************************************
*/
/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef JZSDK_FILE_TYPE_H
#define JZSDK_FILE_TYPE_H
/* Includes ------------------------------------------------------------------*/
#ifdef __cplusplus
extern "C" {
#endif
/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/
/* Exported types ------------------------------------------------------------*/
typedef enum {
AUDIO_TYPE_WAV = 0x00000001,
AUDIO_TYPE_MP3 = 0x00000002,
AUDIO_TYPE_OPUS = 0x00000003,
AUDIO_TYPE_PCM = 0x00000004,
} JZ_AUDIO_FILE_TYPE;
/* Exported functions --------------------------------------------------------*/
#ifdef __cplusplus
}
#endif
#endif
... ...
/**
********************************************************************
* @file JZsdk_typedef.h
* 用于记录各类码的表
*
*********************************************************************
*/
/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef JZSDK_TYPEDEF_H
#define JZSDK_TYPEDEF_H
/* Includes ------------------------------------------------------------------*/
#include <stdint.h>
#include <stdbool.h>
#include <stddef.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#ifdef __cplusplus
extern "C" {
#endif
#include "./JZsdk_ErrorCodeDef.h"
#include "./JZsdk_FileTypeDef.h"
/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/
/* Exported macro ------------------------------------------------------------*/
//重定义一个返回码
typedef uint64_t T_JZsdkReturnCode;
typedef uint8_t U8_t;
typedef uint16_t U16_t;
typedef uint32_t U32_t;
typedef uint64_t U64_t;
#define JZ_U8 U8_t
#define JZ_U16 U16_t
#define JZ_U32 U32_t
#define JZ_U64 U64_t
// typedef unsigned long T_JZsdkReturnCode;
// typedef unsigned char U8_t;
// typedef unsigned short U16_t;
// typedef unsigned int U32_t;
// typedef unsigned long U64_t;
typedef double F64_t;
typedef float F32_t;
#define JZ_F64 F64_t
#define JZ_F32 F32_t
#define JZSDK_SINGLE_THREAD 0 //jz单线程
#define JZSDK_MULTI_THREAD 1 //jz多线程
//线程权柄
typedef void *T_JZTaskHandle;
//互斥锁权柄
typedef void *T_JZsdkMutexHandle;
//信号量权柄
typedef void *T_JZsdkSemaHandle;
//文件权柄
typedef void *T_JZsdkFileHandle;
//目录权柄
typedef void *T_JZsdkDirHandle;
typedef struct T_JZsdkVector3d
{
int x;
int y;
int z;
}T_JZsdkVector3d;
typedef struct T_JZsdkVector3f
{
F32_t x;
F32_t y;
F32_t z;
}T_JZsdkVector3f;
typedef struct {
int pitch; /*!< Specifies int32 value of pitch for attitude. */
int roll; /*!< Specifies int32 value of roll for attitude */
int yaw; /*!< Specifies int32 value of yaw for attitude */
} T_JZsdkAttitude3d;
typedef struct {
F32_t pitch; /*!< Specifies float value of pitch for attitude. */
F32_t roll; /*!< Specifies float value of roll for attitude */
F32_t yaw; /*!< Specifies float value of yaw for attitude */
} T_JZsdkAttitude3f;
typedef enum E_JZ_SingleCompensationMode{
JZ_SINGLE_COMPENSATION_MODE_PITCH_LEFT = 0,
JZ_SINGLE_COMPENSATION_MODE_PITCH_RIGHT = 1,
}E_JZ_SingleCompensationMode;
typedef enum E_JZ_GimbalSingleCalibrationMode{
JZ_GIMBAL_SINGLE_CALIBRATION_MODE_LEFT_MAX = 0,
JZ_GIMBAL_SINGLE_CALIBRATION_MODE_LEFT_MIN = 1,
JZ_GIMBAL_SINGLE_CALIBRATION_MODE_LEFT_ZERO = 2,
JZ_GIMBAL_SINGLE_CALIBRATION_MODE_LEFT_RESET = 3,
JZ_GIMBAL_SINGLE_CALIBRATION_MODE_LEFT_DEBUG_ANGLE_RESET = 4,
JZ_GIMBAL_SINGLE_CALIBRATION_MODE_RIGHT_MAX = 5,
JZ_GIMBAL_SINGLE_CALIBRATION_MODE_RIGHT_MIN = 6,
JZ_GIMBAL_SINGLE_CALIBRATION_MODE_RIGHT_ZERO = 7,
JZ_GIMBAL_SINGLE_CALIBRATION_MODE_RIGHT_RESET = 8,
JZ_GIMBAL_SINGLE_CALIBRATION_MODE_RIGHT_DEBUG_ANGLE_RESET = 9,
}E_JZ_GimbalSingleCalibrationMode;
/* Exported types ------------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
#ifdef __cplusplus
}
#endif
#endif
... ...
#include <stdio.h>
#include "./JZsdk_FrameComparsion.h"
#include "../JZsdk_Code/JZsdk_Code.h"
/*************************
*
* 获取帧的序列号
*
* ***************************/
int JZsdk_Get_FrameSequence(char *DealBuf)
{
return DealBuf[6];
}
/*************************
*
* 获取帧的长度
*
* ***************************/
int JZsdk_Get_FrameLength(char *DealBuf)
{
// 转换为 unsigned char 避免符号扩展问题
unsigned char *buf = (unsigned char *)DealBuf;
// 正确计算:高位字节左移8位 + 低位字节
return (buf[3] << 8) | buf[4];
}
/***************************
* 、
*
* 帧校对 获取功能
*
*
* ***********************/
int JZsdk_FrameComparsion(char *getdata, int len)
{
//1、判断是否是5A帧
if (getdata[0] == 0x5A && getdata[1] == 0x5A && getdata[2] == 0x77)
{
//printf("JZsdk_FrameComparsion:5A帧\n");
return JZsdk_5AFrameComparsion(getdata, len);
}
//2、判断是否是5B帧
if (getdata[0] == 0x5b && getdata[1] == 0x5b && getdata[2] == 0x77)
{
//printf("JZsdk_FrameComparsion:5B帧\n");
return JZsdk_5BFrameComparsion(getdata, len);
}
//3、判断是否是6A帧
if (getdata[0] == 0x6A && getdata[1] == 0x6A && getdata[2] == 0x77)
{
//printf("JZsdk_FrameComparsion:6A帧\n");
return JZsdk_6AFrameComparsion(getdata, len);
}
//4、判断是否是6B帧
if (getdata[0] == 0x6b && getdata[1] == 0x6b && getdata[2] == 0x77)
{
//printf("JZsdk_FrameComparsion:6B帧\n");
return JZsdk_6BFrameComparsion(getdata, len);
}
printf("接受到的帧,没有帧头或者帧尾,退出recv帧判断函数\n");
return JZ_ERROR_SYSTEM_FRAME_ERROR;
}
\ No newline at end of file
... ...
/**
********************************************************************
* @file JZsdk_FrameComparsion.h
* 用于帧对比的头文件
*
*********************************************************************
*/
/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef JZSDK_FRAMECOMPARSION_H
#define JZSDK_FRAMECOMPARSION_H
/* Includes ------------------------------------------------------------------*/
#ifdef __cplusplus
extern "C" {
#endif
/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/
#include "JZsdk_FrameComparsion_5Aframe.h"
#include "JZsdk_FrameComparsion_5Bframe.h"
#include "JZsdk_FrameComparsion_6Aframe.h"
#include "JZsdk_FrameComparsion_6Bframe.h"
#include "JZsdk_GetFrameTemplate.h"
/* Exported types ------------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
int JZsdk_Get_FrameSequence(char *DealBuf);
int JZsdk_Get_FrameLength(char *DealBuf);
int JZsdk_FrameComparsion(char *getdata, int len);
#ifdef __cplusplus
}
#endif
#endif
... ...
#include <stdio.h>
#include "../JZsdk_Code/JZsdk_Code.h"
/******************************************************
接收一级功能码区
/******************************************************/
//一级功能码是连接功能
static int Comparison_5AFRAME_FirstLevelCode_0x50(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//开启连接
case 0x51:
return JZ_INSCODE_5AFRAME_ASKFORCONNECT;
break;
//设备电源状态
case 0x52:
return JZ_INSCODE_5AFRAME_FRAME_POWER_STATUS;
break;
//心跳帧
case 0x53:
return JZ_INSCODE_5AFRAME_HEARTBEAT;
break;
//时间戳帧
case 0x54:
return JZ_INSCODE_5AFRAME_TIMESTAMP;
break;
//所有版本号帧
case 0x55:
return JZ_INSCODE_5AFRAME_ALL_VERSION;
break;
//所有序列号帧
case 0x56:
return JZ_INSCODE_5AFRAME_ALL_SERIAL_NUMBER;
break;
//log信息打印
case 0x57:
return JZ_INSCODE_5AFRAME_LOG_MESSAGE_PRINTF;
break;
//获取设备信息帧
case 0x58:
return JZ_INSCODE_5AFRAME_DEVICE_MESSAGE;
break;
//设备类型版本查询
case 0x59:
return JZ_INSCODE_5AFRAME_CHECKSTATUS_DEVICE_TYPE_VERSION;
break;
//预设任务帧
case 0x60:
return JZ_INSCODE_5AFRAME_PRESET_TASK;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码是语音 或是 文件功能
static int Comparison_5AFRAME_FirstLevelCode_0x51(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//开启语音
case 0xb1:
return JZ_INSCODE_5AFRAME_REALTIMEMP2_START;
break;
//结束语音
case 0xb2:
return JZ_INSCODE_5AFRAME_REALTIMEMP2_STOP;
break;
//有限制传输mp2语言
case 0xb3:
return JZ_INSCODE_5AFRAME_REALTIMEMP2_LIMIT_TRANSMISSION;
break;
//打开音频文件上传
case 0x01:
return JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_START;
break;
//有限制传输音频文件
case 0x02:
return JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_LIMIT_TRANSMISSION;
break;
//带偏移量的传输音频文件
case 0x05:
return JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_LIMIT_TRANSMISSION_2;
break;
//关闭音频文件上传
case 0x03:
return JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_STOP;
break;
//关闭音频文件上传并校验
case 0x04:
return JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_STOP_AND_CHECK;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码是音频/功放/音量调节
static int Comparison_5AFRAME_FirstLevelCode_0x52(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//播放指定音频
case 0x02:
return JZ_INSCODE_5AFRAME_AUDIO_PLAYFILE;
break;
//音频继续播放
case 0x04:
return JZ_INSCODE_5AFRAME_AUDIO_CONTINUE;
break;
//音频暂停播放
case 0x05:
return JZ_INSCODE_5AFRAME_AUDIO_PAUSE;
break;
//音频停止播放
case 0x06:
return JZ_INSCODE_5AFRAME_AUDIO_STOP;
break;
//音频上一曲
case 0x07:
return JZ_INSCODE_5AFRAME_AUDIO_LASTSONG;
break;
//音频下一曲
case 0x08:
return JZ_INSCODE_5AFRAME_AUDIO_NEXTSONG;
break;
//强制关闭功放
case 0x20:
return JZ_INSCODE_5AFRAME_AMPLIFIER_STOP;
break;
//强制开启功放
case 0x21:
return JZ_INSCODE_5AFRAME_AMPLIFIER_OPEN;
break;
//恢复自动功放
case 0x22:
return JZ_INSCODE_5AFRAME_AMPLIFIER_AUTO;
break;
//设置回传时间
case 0x30:
return JZ_INSCODE_5AFRAME_CURRENT_PLAY_TIME;
break;
//调节音量
case 0x10:
return JZ_INSCODE_5AFRAME_VOLUME;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码是查询状态
static int Comparison_5AFRAME_FirstLevelCode_0x53(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//查询音量
case 0x01:
return JZ_INSCODE_5AFRAME_CHECKSTATUS_VOLUME;
break;
//查询播放状态
case 0x02:
return JZ_INSCODE_5AFRAME_CHECKSTATUS_PLAY;
break;
//查询云台角度(已舍弃)
case 0x03:
return JZ_INSCODE_5AFRAME_CHECKSTATUS_GIMBAL;
break;
//查询播放文件名
case 0x04:
return JZ_INSCODE_5AFRAME_CHECKSTATUS_PLAYFILENAME;
break;
//查询是否打开循环
case 0x05:
return JZ_INSCODE_5AFRAME_CHECKSTATUS_LOOPPLAY;
break;
//查询音色
case 0x06:
return JZ_INSCODE_5AFRAME_CHECKSTATUS_TTSTONE;
break;
//查询语速
case 0x07:
return JZ_INSCODE_5AFRAME_CHECKSTATUS_TTSSPEED;
break;
//查询是否打开了播放时间回传
case 0x08:
return JZ_INSCODE_5AFRAME_CHECKSTATUS_CURRENT_PLAYTIME;
break;
//查询软件版本号
case 0xf1:
return JZ_INSCODE_5AFRAME_CHECKSTATUS_SOFTWAREVERSION;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码是删除
static int Comparison_5AFRAME_FirstLevelCode_0x54(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//删除音频
case 0x02:
return JZ_INSCODE_5AFRAME_DELETE_AUDIO;
break;
//删除录音
case 0x03:
return JZ_INSCODE_5AFRAME_DELETE_VOICE_RECORD;
break;
// //删除视频
// case 0x02:
// return JZ_INSCODE_DELETE_VIDEO_RECORD;
// break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码开启关闭循环
static int Comparison_5AFRAME_FirstLevelCode_0x55(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//开启关闭循环
case 0x00:
return JZ_INSCODE_5AFRAME_PLAY_LOOP;
break;
//设置循环播放间隔
case 0x01:
return JZ_INSCODE_5AFRAME_ADUIO_PLAY_LOOP_INTERVAL;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码
static int Comparison_5AFRAME_FirstLevelCode_0x56(char *getdata)
{
//二级功能位
switch (getdata[8])
{
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码是 文本播放
static int Comparison_5AFRAME_FirstLevelCode_0x57(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//设置音色
case 0x01:
return JZ_INSCODE_5AFRAME_TTS_SET_TONE;
break;
//设置语速
case 0x02:
return JZ_INSCODE_5AFRAME_TTS_SET_SPEED;
break;
//开始发送TTS
case 0x03:
return JZ_INSCODE_5AFRAME_TTS_TRANS_START;
break;
case 0x04:
return JZ_INSCODE_5AFRAME_TTS_TRANS_STOP;
break;
//定长传输文本
case 0x05:
return JZ_INSCODE_5AFRAME_TTS_TRANS_LIMIT_TRANSMISSION;
break;
default:
break;
}
}
//一级功能 查询列表
static int Comparison_5AFRAME_FirstLevelCode_0x58(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//获取音乐列表
case 0x01:
return JZ_INSCODE_5AFRAME_AUDIO_GETMUSICLIST;
break;
//查询歌曲类音频详细信息
case 0x03:
return JZ_INSCODE_5AFRAME_CHECKSTATUS_AUDIO_DETAIL_MESSAGE;
break;
//获取pcm列表
case 0x10:
return JZ_INSCODE_5AFRAME_PCM_GETPCMLIST;
break;
default:
break;
}
}
//一级功能码opus功能
static int Comparison_5AFRAME_FirstLevelCode_0x59(char *getdata)
{
//二级功能位
switch (getdata[8])
{
case 0x10:
return JZ_INSCODE_5AFRAME_OPUS_PLAY;
break;
//opus录音传输
//opus传输开始
case 0xF1:
return JZ_INSCODE_5AFRAME_OPUS_TRANS_START_1;
break;
//opus传输二型
case 0xF5:
return JZ_INSCODE_5AFRAME_OPUS_TRANS_START_2;
break;
//opus传输结束
case 0xF2:
return JZ_INSCODE_5AFRAME_OPUS_TRANS_STOP;
break;
case 0xF4:
return JZ_INSCODE_5AFRAME_OPUS_TRANS_STOP_AND_CHECK;
break;
//opus定长传输
case 0xF3:
return JZ_INSCODE_5AFRAME_OPUS_TRANS_LIMIT_TRANSMISSION;
break;
//opus播放
case 0x01:
return JZ_INSCODE_5AFRAME_OPUS_PLAY;
break;
//opus实时语音开始
case 0xE1:
return JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_START;
break;
case 0xE2:
return JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_STOP;
break;
//opus定长传输文件
case 0xE3:
return JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_LIMIT_TRANSMISSION;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码,硬件引脚控制
static int Comparison_5AFRAME_FirstLevelCode_0x5A(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//对外供电开关
case 0x01:
return JZ_INSCODE_5AFRAME_OUTPUTPOWER_CONTROL;
break;
//对外供电查询
case 0x02:
return JZ_INSCODE_5AFRAME_CHECKSTATUS_OUTPUTPOWER;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码 激光控制
static int Comparison_5AFRAME_FirstLevelCode_0x60(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//激光控制
case 0x51:
return JZ_INSCODE_5AFRAME_LASER_CONTROL;
break;
case 0x52:
return JZ_INSCODE_5AFRAME_LASER_MODE;
break;
case 0x53:
return JZ_INSCODE_5AFRAME_LASER_LUMEN;
break;
case 0x54:
return JZ_INSCODE_5AFRAME_LASER_COLOR;
break;
case 0x55:
return JZ_INSCODE_5AFRAME_LASER_POWER_LIMIT;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码 爆闪频率
static int Comparison_5AFRAME_FirstLevelCode_0x61(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//爆闪频率
case 0x51:
return JZ_INSCODE_5AFRAME_SEARCHLIGHT_SET_FREQUENCY;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码 灯光控制
static int Comparison_5AFRAME_FirstLevelCode_0x62(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//灯光模式
case 0x51:
return JZ_INSCODE_5AFRAME_SEARCHLIGHT_CONTROL;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码 灯光亮度
static int Comparison_5AFRAME_FirstLevelCode_0x63(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//灯光亮度
case 0x51:
return JZ_INSCODE_5AFRAME_SEARCHLIGHT_SET_LUMEN;
break;
case 0x53:
return JZ_INSCODE_5AFRAME_SEARCHLIGHT_SET_LUMENPOWERLIMIT;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码云台功能
static int Comparison_5AFRAME_FirstLevelCode_0x64(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//云台俯仰控制
case 0x51:
return JZ_INSCODE_5AFRAME_GIMBAL_PITCH_CONTROL;
break;
//云台俯仰微调控制
case 0x52:
return JZ_INSCODE_5AFRAME_GIMBAL_PITCH_FINETUNING_CONTROL;
break;
//加减单边云台俯仰微调值(补偿)
case 0x53:
return JZ_INSCODE_5AFRAME_GIMBAL_PITCH_COMPENSATE;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码 云台航向
static int Comparison_5AFRAME_FirstLevelCode_0x65(char *getdata)
{
}
//一级功能码 警灯模式控制
static int Comparison_5AFRAME_FirstLevelCode_0x66(char *getdata)
{
switch (getdata[8])
{
//警灯模式控制
case 0x51:
return JZ_INSCODE_5AFRAME_WARNINGLIGHT_CONTROL;
break;
//警灯模式控制2
case 0x52:
return JZ_INSCODE_5AFRAME_WARNINGLIGHT_CONTROL_2;
break;
//警灯模式查询2
case 0xA2:
return JZ_INSCODE_5AFRAME_CHECKSTATUS_WARNINGLIGHT_CONTROL_2;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码 警灯眼色选择
static int Comparison_5AFRAME_FirstLevelCode_0x67(char *getdata)
{
switch (getdata[8])
{
//警灯颜色选择
case 0x51:
return JZ_INSCODE_5AFRAME_WARNINGLIGHT_COLOUR;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码 探照灯消息订阅
static int Comparison_5AFRAME_FirstLevelCode_0x68(char *getdata)
{
switch (getdata[8])
{
//探照灯消息订阅
case 0x51:
return JZ_INSCODE_5AFRAME_SEARCHLIGHT_MESSAGE_SUBSCRIPTION_CONTROL;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码 私有协议
static int Comparison_5AFRAME_FirstLevelCode_0x69(char *getdata)
{
}
//一级功能码 6F查询帧
static int Comparison_5AFRAME_FirstLevelCode_0x6F(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//灯光查询
case 0x51:
return JZ_INSCODE_5AFRAME_CHECKSTATUS_SEARCHLIGHT_LIGHTATTRIBUTE;
break;
//温度查询
case 0x52:
return JZ_INSCODE_5AFRAME_CHECKSTATUS_SEARCHLIGHT_TEMPERATURE;
break;
//激光查询
case 0x53:
return JZ_INSCODE_5AFRAME_CHECKSTATUS_LASER_STATUS;
break;
//云台角度查询
case 0x54:
return JZ_INSCODE_5AFRAME_CHECKSTATUS_GIMBAL;
break;
//警灯状态查询
case 0x55:
return JZ_INSCODE_5AFRAME_CHECKSTATUS_WARNINGLIGHT_STATUS;
break;
//警灯颜色查询
case 0x56:
return JZ_INSCODE_5AFRAME_CHECKSTATUS_WARNINGLIGHT_COLOR;
break;
//产品序列号查询
case 0x57:
return JZ_INSCODE_5AFRAME_CHECKSTATUS_SERIALNUMBER;
break;
//云台微调值查询
case 0x58:
return JZ_INSCODE_5AFRAME_CHECKSTATUS_GIMBAL_FINETUNING;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码 升级帧
static int Comparison_5AFRAME_FirstLevelCode_0xA1(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//升级准备
case 0x01:
return JZ_INSCODE_5AFRAME_UPGRADE_PERPARE;
break;
//升级校验码
case 0x02:
return JZ_INSCODE_5AFRAME_UPGRADE_SEND_CHECKCODE;
break;
//升级数据发送开始
case 0x03:
return JZ_INSCODE_5AFRAME_UPGRADE_STRAT;
break;
//升级数据发送结束
case 0x04:
return JZ_INSCODE_5AFRAME_UPGRADE_END;
break;
//升级发送数据
case 0xF1:
return JZ_INSCODE_5AFRAME_UPGRADE_TRANS;
break;
//升级状态查询
case 0x10:
return JZ_INSCODE_5AFRAME_CHECKSTATUS_UPGRADE_STATUS;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
static int Comparison_5AFRAME_FirstLevelCode_0x90(char *getdata)
{
switch (getdata[8])
{
case 0x00:
return JZ_INSCODE_5AFRAME_CAMERA_VIDEO_PUSH_INDEX;
break;
case 0x01:
return JZ_INSOCDE_5AFRAME_CAMERA_TAKE_PHOTO;
break;
case 0x02:
return JZ_INSCODE_5AFRAME_CAMERA_VIDEO_RECORD_START;
break;
case 0x03:
return JZ_INSCODE_5AFRAME_CAMERA_VIDEO_RECORD_STOP;
break;
case 0x04:
return JZ_INSCODE_5AFRAME_CAMERA_SHUTTER_CONTROL;
break;
case 0x05:
return JZ_INSCODE_5AFRAME_CAMERA_FREEZE_CONTROL;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
static int Comparison_5AFRAME_FirstLevelCode_0x93(char *getdata)
{
switch (getdata[8])
{
case 0x00:
return JZ_INSOCDE_5AFRAME_IRC_CORRECT_WAY;
break;
case 0x10:
return JZ_INSCODE_5AFRAME_IRC_SPC_PARAM;
break;
case 0x11:
return JZ_INSCODE_5AFRAME_IRC_TPC_PARAM;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
static int Comparison_5AFRAME_FirstLevelCode_0x94(char *getdata)
{
switch (getdata[8])
{
case 0x00:
return JZ_INSOCDE_5AFRAME_IRC_OUTPUT_COLOR_MODE;
break;
case 0x10:
return JZ_INSCODE_5AFRAME_IRC_PSEUDO_COLOR_PARAM;
break;
case 0x11:
return JZ_INSCODE_5AFRAME_IRC_GAS_ENHANCE_PARAM;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
/******************************************************************
回复帧对比
成功返回帧类型 无对比数据返回 JZ_ERROR_SYSTEM_FRAME_ERROR
******************************************************************/
int JZsdk_5AFrameComparsion(char *getdata, int len)
{
//1、判断帧头帧尾
if (
( (getdata[0]!= 0x5a) && (getdata[1] != 0x5a) && (getdata[2]!=0x77) )
|| ( (getdata[len -2]!= 0x00) && (getdata[ len -1] != 0x23) )
)
{
printf("接受到的帧,没有帧头或者帧尾,退出JZsdk_5AFrameComparsion函数\n");
return JZ_ERROR_SYSTEM_FRAME_ERROR;
}
//一级功能码
switch (getdata[7])
{
/*********************************************************************************************************************************************************
*
* 连接请求码
*
*********************************************************************************************************************************************************/
//一级功能码是连接请求
case 0x50:
return Comparison_5AFRAME_FirstLevelCode_0x50(getdata);
break;
/*********************************************************************************************************************************************************
*
* 喊话器功能码
*
*********************************************************************************************************************************************************/
//一级功能码 语音 / 音频文件功能
case 0x51:
return Comparison_5AFRAME_FirstLevelCode_0x51(getdata);
break;
//一级功能码 音频/ 功放/ 音量调节
case 0x52:
return Comparison_5AFRAME_FirstLevelCode_0x52(getdata);
break;
//一级功能码 查询状态
case 0x53:
return Comparison_5AFRAME_FirstLevelCode_0x53(getdata);
break;
//一级功能码 删除
case 0x54:
return Comparison_5AFRAME_FirstLevelCode_0x54(getdata);
break;
//一级功能码 开启关闭循环
case 0x55:
return Comparison_5AFRAME_FirstLevelCode_0x55(getdata);
break;
//一级功能码
case 0x56:
return Comparison_5AFRAME_FirstLevelCode_0x56(getdata);
break;
//一级功能码 TTS
case 0x57:
return Comparison_5AFRAME_FirstLevelCode_0x57(getdata);
break;
//一级功能码 查询列表功能
case 0x58:
return Comparison_5AFRAME_FirstLevelCode_0x58(getdata);
break;
//一级功能码 opus
case 0x59:
return Comparison_5AFRAME_FirstLevelCode_0x59(getdata);
break;
//一级功能码,硬件引脚控制
case 0x5A:
return Comparison_5AFRAME_FirstLevelCode_0x5A(getdata);
break;
//一级功能码 激光控制
case 0x60:
return Comparison_5AFRAME_FirstLevelCode_0x60(getdata);
break;
//一级功能码 爆闪控制
case 0x61:
return Comparison_5AFRAME_FirstLevelCode_0x61(getdata);
break;
//一级功能码 灯光控制
case 0x62:
return Comparison_5AFRAME_FirstLevelCode_0x62(getdata);
break;
//一级功能码 灯光亮度
case 0x63:
return Comparison_5AFRAME_FirstLevelCode_0x63(getdata);
break;
//一级功能码 云台俯仰
case 0x64:
return Comparison_5AFRAME_FirstLevelCode_0x64(getdata);
break;
//一级功能码 云台航向
case 0x65:
return Comparison_5AFRAME_FirstLevelCode_0x65(getdata);
break;
//一级功能码 警灯模式控制
case 0x66:
return Comparison_5AFRAME_FirstLevelCode_0x66(getdata);
break;
//一级功能码 警灯眼色选择
case 0x67:
return Comparison_5AFRAME_FirstLevelCode_0x67(getdata);
break;
//一级功能码 探照灯消息订阅
case 0x68:
return Comparison_5AFRAME_FirstLevelCode_0x68(getdata);
break;
//一级功能码 私有协议
case 0x69:
return Comparison_5AFRAME_FirstLevelCode_0x69(getdata);
break;
//一级功能码 6f查询帧
case 0x6F:
return Comparison_5AFRAME_FirstLevelCode_0x6F(getdata);
break;
//一级功能码 90
case 0x90:
return Comparison_5AFRAME_FirstLevelCode_0x90(getdata);
break;
//一级功能码 93
case 0x93:
return Comparison_5AFRAME_FirstLevelCode_0x93(getdata);
break;
//一级功能码 92
case 0x94:
return Comparison_5AFRAME_FirstLevelCode_0x94(getdata);
break;
//一级功能码 升级功能
case 0xA1:
return Comparison_5AFRAME_FirstLevelCode_0xA1(getdata);
break;
/*********************************************************************************************************************************************************
*
*
*
*********************************************************************************************************************************************************/
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
... ...
/**********************************************************************
* @file
*
*
*********************************************************************
*/
/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef JZSDK_FRAMECOMPARSION_5AFRAME_H
#define JZSDK_FRAMECOMPARSION_5AFRAME_H
/* Includes ------------------------------------------------------------------*/
#ifdef __cplusplus
extern "C" {
#endif
/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/
/* Exported types ------------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
int JZsdk_5AFrameComparsion(char *getdata, int len);
#ifdef __cplusplus
}
#endif
#endif
... ...
#include <stdio.h>
#include "../JZsdk_Code/JZsdk_Code.h"
/******************************************************
接收一级功能码区
/******************************************************/
//一级功能码是连接功能
static int Comparison_5BFRAME_FirstLevelCode_0x50(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//回复连接
case 0x51:
return JZ_INSCODE_5BFRAME_INITIATECONNECT;
break;
//心跳帧回复
case 0x53:
return JZ_INSCODE_5BFRAME_HEARTBEAT;
break;
//时间戳回复
case 0x54:
return JZ_INSCODE_5BFRAME_TIMESTAMP;
break;
//版本号回复
case 0x55:
return JZ_INSCODE_5BFRAME_ALL_VERSION;
break;
//序列号回复
case 0x56:
return JZ_INSCODE_5BFRAME_ALL_SERIAL_NUMBER;
break;
//log信息打印
case 0x58:
return JZ_INSCODE_5BFRAME_DEVICE_MESSAGE;
break;
//设备类型版本号返还
case 0x59:
return JZ_INSCODE_5BFRAME_CHECKSTATUS_DEVICE_TYPE_VERSION;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码是操作功能
static int Comparison_5BFRAME_FirstLevelCode_0x51(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//回复操作成功
case 0x01:
return JZ_INSCODE_5BFRAME_SUCESS;
break;
//回复操作失败
case 0xff:
return JZ_INSCODE_5BFRAME_DEFEAT;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码是音频列表功能
static int Comparison_5BFRAME_FirstLevelCode_0x53(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//音量返回
case 0x01:
return JZ_INSCODE_5BFRAME_VOLUME;
break;
//播放状态返回
case 0x02:
return JZ_INSCODE_5BFRAME_AUDIO_PLAYSTATUS;
break;
//当前播放文件名返回
case 0x04:
return JZ_INSCODE_5BFRAME_AUDIO_PLAYFILENAME;
break;
//查询是否开启循环
case 0x05:
return JZ_INSCODE_5BFRAME_AUDIO_PLAYLOOPSTATUS;
break;
//查询音色
case 0x06:
return JZ_INSCODE_5BFRAME_TTS_TONE;
break;
//查询语速
case 0x07:
return JZ_INSCODE_5BFRAME_TTS_SPEED;
break;
//版本返回
case 0xf1:
return JZ_INSCODE_5BFRAME_SORTWAREVERSION;
break;
//播放结束(主动返回)
case 0xff:
return JZ_INSCODE_5BFRAME_AUDIO_PLAYSTATUS_END;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码是音频列表功能
static int Comparison_5BFRAME_FirstLevelCode_0x58(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//查询列表开始
case 0x00:
return JZ_INSCODE_5BFRAME_MUSICLIST_START;
break;
//文件列表帧
case 0x02:
return JZ_INSCODE_5BFRAME_MUSICLIST_TRANS;
break;
//查询歌曲类音频详细信息
case 0x03:
return JZ_INSCODE_5BFRAME_CHECKSTATUS_AUDIO_DETAIL_MESSAGE;
break;
//结束列表返回
case 0xff:
return JZ_INSCODE_5BFRAME_MUSICLIST_STOP;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码是opus功能
static int Comparison_5BFRAME_FirstLevelCode_0x59(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//opus解码状态
case 0xF2:
return JZ_INSCODE_5BFRAME_OPUS_DECODE_STATUS;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码是硬件引脚控制
static int Comparison_5BFRAME_FirstLevelCode_0x5A(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//回复对供电开关状态返回
case 0x02:
return JZ_INSCODE_5BFRAME_CHECKSTATUS_OUTPUTPOWER;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码是激光
static int Comparison_5BFRAME_FirstLevelCode_0x60(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//回复激光查询
case 0x51:
return JZ_INSCODE_5BFRAME_CHECKSTATUS_LASER_STATUS_CONTROL;
break;
case 0x52:
return JZ_INSCODE_5BFRAME_CHECKSTATUS_LASER_STATUS_MODE;
break;
case 0x53:
return JZ_INSCODE_5BFRAME_CHECKSTATUS_LASER_STATUS_LUMEN;
break;
case 0x54:
return JZ_INSCODE_5BFRAME_CHECKSTATUS_LASER_STATUS_COLOR;
break;
case 0x55:
return JZ_INSCODE_5BFRAME_CHECKSTATUS_LASER_STATUS_POWERLIMIT;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码是回复灯光频率
static int Comparison_5BFRAME_FirstLevelCode_0x61(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//回复灯光频率
case 0x51:
return JZ_INSCODE_5BFRAME_CHECKSTATUS_SEARCHLIGHT_FREQUENCY;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码是回复灯光模式
static int Comparison_5BFRAME_FirstLevelCode_0x62(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//回复灯光模式
case 0x51:
return JZ_INSCODE_5BFRAME_CHECKSTATUS_SEARCHLIGHT_MODE;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码是回复灯光亮度
static int Comparison_5BFRAME_FirstLevelCode_0x63(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//回复灯光亮度
case 0x51:
return JZ_INSCODE_5BFRAME_CHECKSTATUS_SEARCHLIGHT_LUMEN;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码是云台俯仰
static int Comparison_5BFRAME_FirstLevelCode_0x64(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//回复云台俯仰
case 0x51:
return JZ_INSCODE_5BFRAME_GIMBAL_PITCH;
break;
//回复云台俯仰微调值
case 0x52:
return JZ_INSCODE_5BFRAME_GIMBAL_PITCH_FINETUNING;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码是云台航向
static int Comparison_5BFRAME_FirstLevelCode_0x65(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//回复云台航向
case 0x51:
return JZ_INSCODE_5BFRAME_GIMBAL_YAW;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码是回复警灯状态
static int Comparison_5BFRAME_FirstLevelCode_0x66(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//回复警灯状态
case 0x51:
return JZ_INSCODE_5BFRAME_CHECKSTATUS_WARNINGLIGHT_STATUS;
break;
//回复警灯控制2类
case 0xA2:
return JZ_INSCODE_5AFRAME_CHECKSTATUS_WARNINGLIGHT_CONTROL_2;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码是回复警灯颜色
static int Comparison_5BFRAME_FirstLevelCode_0x67(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//回复回复警灯颜色
case 0x51:
return JZ_INSCODE_5BFRAME_CHECKSTATUS_WARNINGLIGHT_COLOR;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码是回复温度/序列号查询
static int Comparison_5BFRAME_FirstLevelCode_0x69(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//回复温度查询
case 0x51:
return JZ_INSCODE_5BFRAME_CHECKSTATUS_SEARCHLIGHT_TEMPERATURE;
break;
//回复产品序列号
case 0x54:
return JZ_INSCODE_5BFRAME_CHECKSTATUS_SERIALNUMBER;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码 升级帧
static int Comparison_5AFRAME_FirstLevelCode_0xA1(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//升级准备
case 0x01:
return JZ_INSCODE_5BFRAME_UPGRADE_PERPARE;
break;
//升级校验码
case 0x02:
return JZ_INSCODE_5BFRAME_UPGRADE_SEND_CHECKCODE;
break;
//升级数据发送开始
case 0x03:
return JZ_INSCODE_5BFRAME_UPGRADE_STRAT;
break;
//升级数据发送结束
case 0x04:
return JZ_INSCODE_5BFRAME_UPGRADE_END;
break;
//升级数据校验结果
case 0x05:
return JZ_INSCODE_5BFRAME_UPGRADE_CHECKRESULT;
break;
//升级发送数据
case 0xF1:
return JZ_INSCODE_5BFRAME_UPGRADE_TRANS;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
/******************************************************************
回复帧对比
成功返回帧类型 无对比数据返回 JZ_ERROR_SYSTEM_FRAME_ERROR
******************************************************************/
int JZsdk_5BFrameComparsion(char *getdata, int len)
{
//1、判断帧头帧尾
if (
( (getdata[0]!= 0x5B) && (getdata[1] != 0x5B) && (getdata[2]!=0x77) )
|| ( (getdata[len -2]!= 0x00) && (getdata[ len -1] != 0x23) )
)
{
printf("接受到的帧,没有帧头或者帧尾,退出JZsdk_5BFrameComparsion函数\n");
return JZ_ERROR_SYSTEM_FRAME_ERROR;
}
//一级功能码
switch (getdata[7])
{
case 0x50:
return Comparison_5BFRAME_FirstLevelCode_0x50(getdata);
break;
case 0x51:
return Comparison_5BFRAME_FirstLevelCode_0x51(getdata);
break;
case 0x53:
return Comparison_5BFRAME_FirstLevelCode_0x53(getdata);
break;
case 0x58:
return Comparison_5BFRAME_FirstLevelCode_0x58(getdata);
break;
case 0x59:
return Comparison_5BFRAME_FirstLevelCode_0x58(getdata);
break;
case 0x5A:
return Comparison_5BFRAME_FirstLevelCode_0x5A(getdata);
break;
case 0x60:
return Comparison_5BFRAME_FirstLevelCode_0x60(getdata);
break;
case 0x61:
return Comparison_5BFRAME_FirstLevelCode_0x61(getdata);
break;
case 0x62:
return Comparison_5BFRAME_FirstLevelCode_0x62(getdata);
break;
case 0x63:
return Comparison_5BFRAME_FirstLevelCode_0x63(getdata);
break;
case 0x64:
return Comparison_5BFRAME_FirstLevelCode_0x64(getdata);
break;
case 0x65:
return Comparison_5BFRAME_FirstLevelCode_0x65(getdata);
break;
case 0x66:
return Comparison_5BFRAME_FirstLevelCode_0x66(getdata);
break;
case 0x67:
return Comparison_5BFRAME_FirstLevelCode_0x67(getdata);
break;
case 0x69:
return Comparison_5BFRAME_FirstLevelCode_0x69(getdata);
break;
case 0xA1:
return Comparison_5AFRAME_FirstLevelCode_0xA1(getdata);
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
\ No newline at end of file
... ...
/**
********************************************************************
* @file
*
*
*********************************************************************
*/
/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef JZSDK_FRAMECOMPARSION_5BFRAME_H
#define JZSDK_FRAMECOMPARSION_5BFRAME_H
/* Includes ------------------------------------------------------------------*/
#ifdef __cplusplus
extern "C" {
#endif
/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/
/* Exported types ------------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
int JZsdk_5BFrameComparsion(char *getdata, int len);
#ifdef __cplusplus
}
#endif
#endif
... ...
#include <stdio.h>
#include "../JZsdk_Code/JZsdk_Code.h"
//一级功能码是私有协议
static int Comparison_6AFRAME_FirstLevelCode_0x10(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//调试指令
case 0x00:
return JZ_INSCODE_6AFRAME_DEBUG_INS;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码是私有协议
static int Comparison_6AFRAME_FirstLevelCode_0x69(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//写入APP NAME
case 0x40:
return JZ_INSCODE_6AFRAME_WRITE_APP_NAME;
break;
//写入APP ID
case 0x41:
return JZ_INSCODE_6AFRAME_WRITE_APP_ID;
break;
//写入APP KEY
case 0x42:
return JZ_INSCODE_6AFRAME_WRITE_APP_KEY;
break;
//写入写入APP LICENSE
case 0x43:
return JZ_INSCODE_6AFRAME_WRITE_APP_LICENSE;
break;
//写入账号
case 0x44:
return JZ_INSCODE_6AFRAME_WRITE_DEVELOPER_ACCOUNT;
break;
//读取用户信息
case 0x4F:
return JZ_INSCODE_6AFREAM_CHECKSTATUS_USERINFO;
break;
//设置当前为云台零值
case 0x51:
return JZ_INSCODE_6AFRAME_SET_GIMBAL_ORIGIN;
break;
//设置云台当前为最大最小值
case 0x52:
return JZ_INSCODE_6AFRAME_SET_GIMBAL_MAXMIN_RANGE;
break;
//设置灯光当前亮度为最大最小值
case 0x53:
return JZ_INSCODE_6AFRAME_SET_LUMEN_MAXMIN_RANGE;
break;
//设置产品序列号
case 0x54:
return JZ_INSCODE_6AFRAME_SET_SERIALNUMBER;
break;
//舵机自检
case 0x55:
return JZ_INSCODE_6AFRAME_SERVO_SELFCHECK;
break;
//开启关闭云台联动
case 0x56:
return JZ_INSCODE_6AFRAME_GIMBAL_LINKAGE_CONTROL;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
//一级功能码是私有协议
static int Comparison_6AFRAME_FirstLevelCode_0x6F(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//设置当前为云台零值
case 0x50:
return JZ_INSCODE_6AFRAME_CHECKSTATUS_SECONDARY_DEVICE_NAME;
break;
//设置当前为云台零值
case 0x51:
return JZ_INSCODE_6AFRAME_CHECKSTATUS_GIMBAL_LINKAGE;
break;
//串口比特率修改
case 0x52:
return JZ_INSCODE_6AFRAME_UART_BITRATE_CHANGE;
break;
//设置特殊变量
case 0x53:
return JZ_INSCODE_6AFRAME_SPECIAL_PARAMETERS;
break;
//查询特殊变量
case 0x54:
return JZ_INSCODE_6AFRAME_CHECK_SPECIAL_PARAMETERS;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
/******************************************************************
回复帧对比
成功返回帧类型 无对比数据返回 JZ_ERROR_SYSTEM_FRAME_ERROR
******************************************************************/
int JZsdk_6AFrameComparsion(char *getdata, int len)
{
//1、判断帧头帧尾
if (
( (getdata[0]!= 0x6A) && (getdata[1] != 0x6A) && (getdata[2]!=0x77) )
|| ( (getdata[len -2]!= 0x00) && (getdata[ len -1] != 0x23) )
)
{
printf("接受到的帧,没有帧头或者帧尾,退出JZsdk_6AFrameComparsion函数\n");
return JZ_ERROR_SYSTEM_FRAME_ERROR;
}
//一级功能码
switch (getdata[7])
{
case 0x10:
return Comparison_6AFRAME_FirstLevelCode_0x10(getdata);
break;
case 0x69:
return Comparison_6AFRAME_FirstLevelCode_0x69(getdata);
break;
case 0x6F:
return Comparison_6AFRAME_FirstLevelCode_0x6F(getdata);
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
\ No newline at end of file
... ...
/**
********************************************************************
* @file
*
*
*********************************************************************
*/
/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef JZSDK_FRAMECOMPARSION_6AFRAME_H
#define JZSDK_FRAMECOMPARSION_6AFRAME_H
/* Includes ------------------------------------------------------------------*/
#ifdef __cplusplus
extern "C" {
#endif
/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/
/* Exported types ------------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
int JZsdk_6AFrameComparsion(char *getdata, int len);
#ifdef __cplusplus
}
#endif
#endif
... ...
#include <stdio.h>
#include "../JZsdk_Code/JZsdk_Code.h"
//一级功能码是私有协议
static int Comparison_6BFRAME_FirstLevelCode_0x6F(char *getdata)
{
//二级功能位
switch (getdata[8])
{
//从设备名返回
case 0x50:
return JZ_INSCODE_6BFRAME_CHECKSTATUS_SECONDARY_DEVICE_NAME;
break;
//查询云台联动返回
case 0x51:
return JZ_INSCODE_6BFRAME_CHECKSTATUS_GIMBAL_LINKAGE;
break;
//查询特殊变量
case 0x54:
return JZ_INSCODE_6BFRAME_CHECK_SPECIAL_PARAMETERS;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
/******************************************************************
回复帧对比
成功返回帧类型 无对比数据返回 JZ_ERROR_SYSTEM_FRAME_ERROR
******************************************************************/
int JZsdk_6BFrameComparsion(char *getdata, int len)
{
//1、判断帧头帧尾
if (
( (getdata[0]!= 0x6B) && (getdata[1] != 0x6B) && (getdata[2]!=0x77) )
|| ( (getdata[len -2]!= 0x00) && (getdata[ len -1] != 0x23) )
)
{
printf("接受到的帧,没有帧头或者帧尾,退出JZsdk_6BFrameComparsion函数\n");
return JZ_ERROR_SYSTEM_FRAME_ERROR;
}
//一级功能码
switch (getdata[7])
{
case 0x6F:
return Comparison_6BFRAME_FirstLevelCode_0x6F(getdata);
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
}
}
\ No newline at end of file
... ...
/**
********************************************************************
* @file
*
*
*********************************************************************
*/
/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef JZSDK_FRAMECOMPARSION_6BFRAME_H
#define JZSDK_FRAMECOMPARSION_6BFRAME_H
/* Includes ------------------------------------------------------------------*/
#ifdef __cplusplus
extern "C" {
#endif
/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/
/* Exported types ------------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
int JZsdk_6BFrameComparsion(char *getdata, int len);
#ifdef __cplusplus
}
#endif
#endif
... ...