作者 潘浩彬
提交者 ookk303

00 00 01 06更新

要显示太多修改。

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

... ... @@ -27,6 +27,25 @@
"gimbal_v3s_tfa1.h": "c",
"searchlight_v3s_h1t.h": "c",
"megaphone_recordvoice.h": "c",
"gimbal_inandout.h": "c"
"gimbal_inandout.h": "c",
"jzsdk_uart_send.h": "c",
"jzsdk_framecomparsion.h": "c",
"jzsdk_deviceactivation.h": "c",
"jzsdkcommonfuntion.h": "c",
"jzsdkbase.h": "c",
"jzsdk_logger.h": "c",
"megaphone_opus.h": "c",
"memoryadapter.h": "c",
"vdecoder.h": "c",
"vencoder.h": "c",
"cedarx_vdec.h": "c",
"sc_interface.h": "c",
"veinterface.h": "c",
"camera_inandout.h": "c",
"jzsdk_returncode.h": "c",
"jzsdk_smt_code.h": "c",
"serialmat_inandout.h": "c",
"activatemat_usedfuntion.h": "c",
"activatemat.h": "c"
}
}
\ No newline at end of file
... ...
# cmake 最低版本要求
# cmake 最低版本要求 第三行名字不能动
cmake_minimum_required(VERSION 2.8)
project(JZ_UART_APP)
# 编译标志
set(CMAKE_C_FLAGS "-pthread -std=gnu99 -lm -ldl -lstdc++")
#"-pthread":指定在编译时链接POSIX线程库,以支持多线程程序。
#"-std=gnu99":指定C语言标准为GNU C99(也就是C99加上GNU的扩展特性),该标准对于一些特性和库的使用是必须的。
... ... @@ -9,35 +9,52 @@ set(CMAKE_C_FLAGS "-pthread -std=gnu99 -lm -ldl -lstdc++")
#"-ldl":指定在编译时链接动态库加载库,以使用动态加载。
#"-lstdc++":指定在编译时链接C++标准库,以使用C++的一些特性和函数。
# 配置编译器
# 交叉编译链①
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++")
set(CMAKE_EXE_LINKER_FLAGS "-pthread")
# 本地测试编译链
# set(CMAKE_C_COMPILER /usr/bin/gcc)
# set(CMAKE_CXX_COMPILER /usr/bin/g++)
#预留行
#预留行
#预留行
#预留行
#预留行
#预留行
#预留行
#预留行
# 工程名 JZ_UART_APP
project(JZ_UART_APP)
# 设置滤波方式 24行不能被改动,因为会被sh修改滤波方式
set(filtering_type high_pass_filtering)
# 海外版本 27行不能改动
set(firewarm_origin DOMESTIC_VERSION)
# 添加Cedar库 30行不能改动
set(CedarxLib VERSION_SWITCH_OFF)
if(${CedarxLib} STREQUAL "VERSION_SWITCH_ON")
set(CMAKE_C_COMPILER "/opt/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc")
set(CMAKE_CXX_COMPILER "/opt/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++")
else()
# 交叉编译链①
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++")
endif()
# 指定源文件
file(GLOB_RECURSE APPLICATION_SRC application/*.c)
file(GLOB_RECURSE APPLICATION_SRC application/*.c) #main MODULE_APP_SRC
file(GLOB_RECURSE JZSDK_SRC JZsdk/*.c)
file(GLOB_RECURSE JZSDK_UART_DEAL_SRC JZsdk_Uart/*.c)
file(GLOB_RECURSE GIMBAL_SRC Module/Gimbal/*.c)
file(GLOB_RECURSE MEGAPHONE_SRC Module/Megaphone/*.c)
file(GLOB_RECURSE LIGHTING_SRC Module/Lighting/*.c)
file(GLOB_RECURSE CAMERA_SRC Module/Camera/*.c)
file(GLOB_RECURSE POWERMANAGER_SRC Module/PowerManager/*.c)
file(GLOB_RECURSE TESTAPP_SRC Module/TestAPP/*.c)
file(GLOB_RECURSE SERIALMAT_SRC Module/SerialManagement/*.c)
file(GLOB_RECURSE MODULE_IRCUT_SRC Module/Ircut/*.c)
file(GLOB_RECURSE MODULE_UICONTROL_SRC Module/UI_control/*.c)
file(GLOB_RECURSE MODULE_IMAGEPROCESSING_SRC Module/ImageProcessing/*.c)
file(GLOB_RECURSE MODULE_IMAGEPROCESSING_cpp_SRC Module/ImageProcessing/*.cpp)
# 生成可执行文件
... ... @@ -51,6 +68,12 @@ add_executable(
${GIMBAL_SRC}
${MODULE_UICONTROL_SRC}
${LIGHTING_SRC}
${POWERMANAGER_SRC}
${CAMERA_SRC}
${TESTAPP_SRC}
${SERIALMAT_SRC}
${MODULE_IMAGEPROCESSING_SRC}
${MODULE_IMAGEPROCESSING_cpp_SRC}
)
# 头文件路径
... ... @@ -64,14 +87,25 @@ include_directories(./Module/Ircut/H3_ircut/wiringPi)
include_directories(./Module/Gimbal)
include_directories(./Module/Lighting)
include_directories(./Module/UI_control)
include_directories(./Module/PowerManager)
include_directories(./Module/Camera)
include_directories(./Module/TestAPP)
include_directories(./Module/ImageProcessing)
include_directories(./Module/SerialManagement)
# 库文件路径
if(${filtering_type} STREQUAL "directed_stopband_filtering")
message("\n滤波库:高通滤波\n")
message("\n滤波库:带阻滤波\n")
target_link_libraries(${PROJECT_NAME} ${CMAKE_CURRENT_LIST_DIR}/ModuleLib/music/directed_stopband_filtering/libAudioPlayer.so)
elseif(${filtering_type} STREQUAL "high_pass_filtering")
message("\n滤波库:带阻滤波\n")
target_link_libraries(${PROJECT_NAME} ${CMAKE_CURRENT_LIST_DIR}/ModuleLib/music/high_pass_filtering/libAudioPlayer.so)
message("\n滤波库:高通滤波\n")
if(${CedarxLib} STREQUAL "VERSION_SWITCH_ON")
target_link_libraries(${PROJECT_NAME} ${CMAKE_CURRENT_LIST_DIR}/ModuleLib/music/high_pass_filtering_gcclinaro/libAudioPlayer.so)
target_link_libraries(${PROJECT_NAME} ${CMAKE_CURRENT_LIST_DIR}/ModuleLib/music/high_pass_filtering_gcclinaro/libasound.so.2)
else()
target_link_libraries(${PROJECT_NAME} ${CMAKE_CURRENT_LIST_DIR}/ModuleLib/music/high_pass_filtering/libAudioPlayer.so)
endif()
else()
message(FATAL_ERROR "Invalid filtering type")
endif()
... ... @@ -85,9 +119,58 @@ else()
message("\n固件版本为国内版\n")
endif()
if(${CedarxLib} STREQUAL "VERSION_SWITCH_ON")
message("\nCedarX已加载\n")
target_link_libraries(${PROJECT_NAME}
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/Camera/CedarX/libawh264.so
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/Camera/CedarX/libMemAdapter.so
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/Camera/CedarX/libVE.so
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/Camera/CedarX/libvencoder.so
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/Camera/CedarX/libvideoengine.so
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/Camera/CedarX/libvdecoder.so
)
message("\n OpenCV已加载\n")
target_link_libraries(${PROJECT_NAME}
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/OpenCV/libopencv_calib3d.so #动态库
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/OpenCV/libopencv_core.so #动态库
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/OpenCV/libopencv_dnn.so #动态库
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/OpenCV/libopencv_features2d.so #动态库
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/OpenCV/libopencv_flann.so #动态库
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/OpenCV/libopencv_highgui.so #动态库
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/OpenCV/libopencv_imgcodecs.so #动态库
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/OpenCV/libopencv_imgproc.so #动态库
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/OpenCV/libopencv_ml.so #动态库
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/OpenCV/libopencv_objdetect.so #动态库
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/OpenCV/libopencv_photo.so #动态库
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/OpenCV/libopencv_shape.so #动态库
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/OpenCV/libopencv_stitching.so #动态库
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/OpenCV/libopencv_superres.so #动态库
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/OpenCV/libopencv_videoio.so #动态库
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/OpenCV/libopencv_video.so #动态库
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/OpenCV/libopencv_videostab.so #动态库
)
message("\n ffmpeg已加载\n")
target_link_libraries(${PROJECT_NAME}
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/ffmpeg/libavcodec.so
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/ffmpeg/libavdevice.so
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/ffmpeg/libavfilter.so
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/ffmpeg/libavformat.so
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/ffmpeg/libavutil.so
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/ffmpeg/libswresample.so
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/ffmpeg/libswscale.so
)
message("\n SearchLightCenter已加载\n")
target_link_libraries(${PROJECT_NAME}
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/SearchLightCenter/libcenter.so
)
endif()
target_link_libraries(${PROJECT_NAME}
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/TTS/libmsc.so
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/opus/libopus.so
)
... ...
... ... @@ -19,10 +19,9 @@ extern "C" {
/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/
#include "JZsdk_Base/JZsdkBase.h"
#include "JZsdk_CommonFuntion/JZsdkCommonFuntion.h"
//#include "JZsdk_Normal_Module/JZsdk_normal_module.h"
#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
#include "JZsdk_CommonFuntion/JZsdkCommonFuntion.h"
/* Exported types ------------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
... ...
... ... @@ -22,6 +22,7 @@ extern "C" {
#include "JZsdk_Osal/JZsdk_FileSystm.h"
#include "JZsdk_Delay/JZsdk_Delay.h"
#include "JZsdk_Code/JZsdk_FLagCode.h"
/* Exported types ------------------------------------------------------------*/
... ...
... ... @@ -26,6 +26,8 @@ typedef enum {
JZ_INSCODE_5AFRAME_ASKFORCONNECT = 0x10000100, //申请连接
JZ_INSCODE_5AFRAME_FRAME_POWER_STATUS = 0x10000110, //电源状态设置
JZ_INSCODE_5AFRAME_REALTIMEMP2_START = 0x10000200, //开启实时MP2
JZ_INSCODE_5AFRAME_REALTIMEMP2_UNLIMIT_TRANSMISSION = 0x10000201, //无限制传输实时MP2
JZ_INSCODE_5AFRAME_REALTIMEMP2_STOP = 0x10000202, //结束实时MP2
... ... @@ -91,9 +93,10 @@ typedef enum {
JZ_INSCODE_5AFRAME_OPUS_TRANS_START = 0x10000900, //opus传输开始
JZ_INSCODE_5AFRAME_OPUS_TRAN_UNLIMIT_TRANSMISSION = 0x10000901, //opus 无限制传输中
JZ_INSCODE_5AFRAME_OPUS_TRANS_STOP = 0x10000902, //opus传输结束
JZ_INSCODE_5AFRAME_OPUS_TRANS_LIMIT_TRANSMISSION = 0x10000903, //opus传输中
JZ_INSCODE_5AFRAME_OPUS_TRANS_STOP = 0x10000902, //opus传输结束
JZ_INSCODE_5AFRAME_OPUS_PLAY = 0x10000910, //opus播放
JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_START = 0x10000A00, //开启opus实时语音
... ... @@ -167,6 +170,9 @@ typedef enum {
JZ_INSCODE_5BFRAME_CHECKSTATUS_OUTPUTPOWER = 0x10004900, //对外供电查询
JZ_INSCODE_5BFRAME_OPUS_DECODE_STATUS = 0x10005000, //opus解码状态
//6A类
JZ_INSCODE_6AFRAME_FRAME = 0x10008000, //发送帧
... ...
/**
********************************************************************
* @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
... ...
... ... @@ -49,13 +49,6 @@ int JZsdk_FrameComparsion(char *getdata, int len)
return JZsdk_6BFrameComparsion(getdata, len);
}
//判断帧头帧尾
if (
( (getdata[0]!= 0x5a) && (getdata[1] != 0x5a) && (getdata[2]!=0x77) )
|| ( (getdata[len -2]!= 0x00) && (getdata[ len -1] != 0x23) )
)
{
printf("接受到的帧,没有帧头或者帧尾,退出recv帧判断函数\n");
return JZ_ERROR_SYSTEM_FRAME_ERROR;
}
printf("接受到的帧,没有帧头或者帧尾,退出recv帧判断函数\n");
return JZ_ERROR_SYSTEM_FRAME_ERROR;
}
\ No newline at end of file
... ...
... ... @@ -17,6 +17,11 @@ static int Comparison_5AFRAME_FirstLevelCode_0x50(char *getdata)
return JZ_INSCODE_5AFRAME_ASKFORCONNECT;
break;
//设备电源状态
case 0x52:
return JZ_INSCODE_5AFRAME_FRAME_POWER_STATUS;
break;
default:
return JZ_ERROR_SYSTEM_FRAME_ERROR;
break;
... ...
... ... @@ -124,6 +124,23 @@ static int Comparison_5BFRAME_FirstLevelCode_0x58(char *getdata)
}
}
//一级功能码是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)
{
... ... @@ -337,6 +354,10 @@ int JZsdk_5BFrameComparsion(char *getdata, int len)
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;
... ...
... ... @@ -17,6 +17,78 @@ int JZsdk_GetFrameTemplate(int InsCode ,char *str, int *str_len)
* 5A帧
*
********************************************************************************************************************************************************/
case JZ_INSCODE_5AFRAME_ASKFORCONNECT:
{
char sendbuf[12] = {0x5A ,0x5A ,0x77 ,0x00 ,0x0C ,0x00 ,0x00 ,0x50 ,0x51 ,0x00 ,0x00 ,0x23};
memcpy(str, sendbuf, 12);
*str_len = 12;
}
break;
case JZ_INSCODE_5AFRAME_AUDIO_STOP:
{
char sendbuf[12] = {0x5A ,0x5A ,0x77 ,0x00 ,0x0C ,0x00 ,0x00 ,0x52 ,0x06 ,0x00 ,0x00 ,0x23};
memcpy(str, sendbuf, 12);
*str_len = 12;
}
break;
case JZ_INSCODE_5AFRAME_AUDIO_LASTSONG:
{
char sendbuf[12] = {0x5A ,0x5A ,0x77 ,0x00 ,0x0C ,0x00 ,0x00 ,0x52 ,0x07 ,0x00 ,0x00 ,0x23};
memcpy(str, sendbuf, 12);
*str_len = 12;
}
break;
case JZ_INSCODE_5AFRAME_AUDIO_NEXTSONG:
{
char sendbuf[12] = {0x5A ,0x5A ,0x77 ,0x00 ,0x0C ,0x00 ,0x00 ,0x52 ,0x08 ,0x00 ,0x00 ,0x23};
memcpy(str, sendbuf, 12);
*str_len = 12;
}
break;
case JZ_INSCODE_5AFRAME_VOLUME:
{
char sendbuf[12] = {0x5A ,0x5A ,0x77 ,0x00 ,0x0C ,0x00 ,0x00 ,0x52 ,0x10 ,0x00 ,0x00 ,0x23};
memcpy(str, sendbuf, 12);
*str_len = 12;
}
break;
case JZ_INSCODE_5AFRAME_PLAY_LOOP:
{
char sendbuf[12] = {0x5A ,0x5A ,0x77 ,0x00 ,0x0C ,0x00 ,0x00 ,0x55 ,0x00 ,0x00 ,0x00 ,0x23};
memcpy(str, sendbuf, 12);
*str_len = 12;
}
break;
case JZ_INSCODE_5AFRAME_TTS_SET_TONE:
{
char sendbuf[12] = {0x5A ,0x5A ,0x77 ,0x00 ,0x0C ,0x00 ,0x00 ,0x57 ,0x01 ,0x00 ,0x00 ,0x23};
memcpy(str, sendbuf, 12);
*str_len = 12;
}
break;
case JZ_INSCODE_5AFRAME_TTS_TRANS_START:
{
char sendbuf[12] = {0x5A ,0x5A ,0x77 ,0x00 ,0x0C ,0x00 ,0x00 ,0x57 ,0x03 ,0x00 ,0x00 ,0x23};
memcpy(str, sendbuf, 12);
*str_len = 12;
}
break;
case JZ_INSCODE_5AFRAME_TTS_TRANS_STOP:
{
char sendbuf[12] = {0x5A ,0x5A ,0x77 ,0x00 ,0x0C ,0x00 ,0x00 ,0x57 ,0x04 ,0x00 ,0x00 ,0x23};
memcpy(str, sendbuf, 12);
*str_len = 12;
}
break;
case JZ_INSCODE_5AFRAME_SEARCHLIGHT_SET_FREQUENCY:
{
... ... @@ -257,6 +329,14 @@ int JZsdk_GetFrameTemplate(int InsCode ,char *str, int *str_len)
}
break;
case JZ_INSCODE_5BFRAME_OPUS_DECODE_STATUS:
{
char sendbuf[12] = { 0x5b, 0x5b, 0x77, 0x00, 0x0c, 0x00, 0x00, 0x59, 0xf2, 0x00, 0x00, 0x23};
memcpy(str, sendbuf, 12);
*str_len = 12;
}
break;
case JZ_INSCODE_5BFRAME_CHECKSTATUS_OUTPUTPOWER:
{
char sendbuf[12] = { 0x5b, 0x5b, 0x77, 0x00, 0x0C, 0x00, 0x00, 0x5A, 0x02, 0x00, 0x00, 0x23};
... ...
... ... @@ -4,6 +4,7 @@
#include <stdbool.h>
#include <string.h>
#include "JZsdkLib.h"
/*
* 用于运行指令
... ... @@ -86,18 +87,19 @@ T_JZsdkReturnCode GetSerialNumber(char *SerialNumber)
printf("Seek log count file error, ret: %d.\r\n", ret);
}
ret = fread((char *) &num_char,14, sizeof(char), num_file);
if (ret != sizeof(char))
ret = fread((char *) &num_char,1, 16, num_file);
if (ret == 0)
{
printf("Read num file error.\r\n");
JZSDK_LOG_ERROR("读取序列号失败");
//无序列号
memcpy(SerialNumber, "无", sizeof("无"));
fclose(num_file);
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
else{
printf("Read num file=%s\n",&num_char);
}
JZSDK_LOG_INFO("Read num file=%s\n",&num_char);
}
}
... ... @@ -109,4 +111,63 @@ T_JZsdkReturnCode GetSerialNumber(char *SerialNumber)
fclose(num_file);
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
\ No newline at end of file
}
/**********************************
*
* 文件是否存在判断函数
* 判断文件是否存在
函数名:JZsdk_check_file_exists
参数:文件路径
返回值:JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS表示文件存在,
JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE表示文件不存在
* *******************************/
T_JZsdkReturnCode JZsdk_check_file_exists(const char* file_path)
{
FILE* file = fopen(file_path, "r");
if (file != NULL)
{
fclose(file);
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
/**********************************
*
* 创建新的文件
函数名:JZsdk_check_file_exists
参数:文件路径
返回值:JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS表示文件存在,
JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE表示文件不存在
* *******************************/
T_JZsdkReturnCode JZsdk_create_file(const char* file_path)
{
FILE* file = fopen(file_path, "w");
if (file != NULL)
{
fclose(file);
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
/**********************************
*
* 删除文件
函数名:JZsdk_delete_file
参数:文件路径
返回值:JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS表示文件已经不存在
JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE表示文件仍然存在
* *******************************/
T_JZsdkReturnCode JZsdk_delete_file(const char* file_path)
{
remove(file_path);
T_JZsdkReturnCode ret = JZsdk_check_file_exists(file_path);
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
... ...
... ... @@ -28,6 +28,9 @@ extern "C" {
int JZsdk_RunSystemCmd(char *systemCmd);
//FILE* JZsdk_RunSystemCmd_ReturnFilePointer(char *systemCmd);
T_JZsdkReturnCode GetSerialNumber(char *SerialNumber);
T_JZsdkReturnCode JZsdk_check_file_exists(const char* file_path) ;
T_JZsdkReturnCode JZsdk_create_file(const char* file_path) ;
T_JZsdkReturnCode JZsdk_delete_file(const char* file_path) ;
#ifdef __cplusplus
}
... ...
#include <stdio.h>
#include "JZsdk_string.h"
#include "../../JZsdkLib.h"
/*
* 用于字符串转int型
... ... @@ -101,4 +102,20 @@ size_t JZsdk_String_longlong_to_str(char *s, long long value,int radix)
p--;
}
return l;
}
/****************
*
* 用于判断数组是否为空
* 不为空 JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE
* 空 JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS
* ***********/
T_JZsdkReturnCode JZsdk_Array_isEmpty(unsigned char array[], int size)
{
for (int i = 0; i < size; i++) {
if (array[i] != 0) {
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; // 数组不为空
}
}
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; // 数组为空
}
\ No newline at end of file
... ...
... ... @@ -11,6 +11,8 @@
#define JZSDK_STRING_H
/* Includes ------------------------------------------------------------------*/
#include <stddef.h>
#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
#ifdef __cplusplus
extern "C" {
... ... @@ -27,6 +29,7 @@ extern "C" {
int JZsdk_String_str_to_int(const char *str);
void JZsdk_String_int_to_str(int n, char *str);
size_t JZsdk_String_longlong_to_str(char *s, long long value,int radix);
T_JZsdkReturnCode JZsdk_Array_isEmpty(unsigned char array[], int size);
#ifdef __cplusplus
... ...
... ... @@ -119,7 +119,7 @@ int JZsdk_Uart_SecondInit(int UART_DEV_NAME, int BitRate)
{
int Uart_fd = 0;
printf("初始化串口%d\n",UART_DEV_NAME);
printf("初始化串口%x\n",UART_DEV_NAME);
//初始化的是一号设备
if (UART_DEV_NAME == UART_DEV_1)
... ... @@ -158,6 +158,27 @@ int JZsdk_Uart_SecondInit(int UART_DEV_NAME, int BitRate)
UartDevUseFlag.UartDev_4G = JZ_FLAGCODE_ON;
}
}
/*******************************
*
* 自由帧发送
*
* ******************/
int JZsdk_Uart_Send_CustomOrder(int UartPort, char *frame, int frame_len)
{
JZsdk_Uart_SendDeal_SendOreder(UartPort, frame, frame_len);
}
/*****************
*
* 发送主动连接帧
*
* ******************/
int JZsdk_Uart_Send_ConnectFrame(int PortNum)
{
JZsdk_Uart_SendDeal_ConnectFrame(PortNum);
}
/*
*
* 发送播放结束状态帧
... ... @@ -448,6 +469,17 @@ int JZsdk_Uart_Send_Set_WarningLight_Color(int Uartport,int color1, int color2)
* *******************************************************************************************************************************/
/*************
*
* 发送opus解码状态
*
* **************/
int JZsdk_Uart_Send_OpusDecodeStatus(int Uartport,int value)
{
JZsdk_Uart_SendDeal_OpusDecodeStatus(Uartport, value);
}
/*************
*
* 发送探照灯爆闪频率
*
* **************/
... ...
... ... @@ -32,7 +32,10 @@ int JZsdk_Uart_Reply_Volume(int Uartport,int volume);
int JZsdk_Uart_Reply_TTS_tone(int Uartport,int tone);
int JZsdk_Uart_Reply_TTS_speed(int Uartport,int speed);
int JZsdk_Uart_Reply_AudioPlayLoopStatus(int Uartport,int speed);
int JZsdk_Uart_Send_OpusDecodeStatus(int Uartport,int value);
int JZsdk_Uart_Send_CustomOrder(int UartPort, char *frame, int frame_len);
int JZsdk_Uart_Send_ConnectFrame(int PortNum);
int JZsdk_Uart_Reply_GimbalPitchAngle(int Uartport,int angle);
int JZsdk_Uart_Send_SetGimbalPitch(int Uartport,int angle);
... ...
... ... @@ -4,6 +4,7 @@
#include "UartConnection/UartConnection.h"
#include "Megaphone_InputAndOutput.h"
#include "TestAPP_InAndOut.h"
#include "BaseConfig.h"
#include "version_choose.h"
... ... @@ -17,6 +18,16 @@
static int SecondaryDeviceName = 0x00; // 从设备名,用于多设备相连时通知控制端 从机设备名
/**********
*
* 电源状态设置
*
* *********/
T_JZsdkReturnCode JZsdk_Uart_Set_PowerStatus(int DeviceName, int status)
{
UIcontrol_Set_PowerStatus(DeviceName,status);
}
/******
*
* 开关功放
... ... @@ -728,6 +739,21 @@ T_JZsdkReturnCode JZsdk_Uart_Checkstatus_OutPutPower(int DeviceName, int FrameSe
********* ********|
********* ********|
*********************************************************************************************************/
/*******************************************************************************************************************************
*
* 设备相关
*
* *******************************************************************************************************************************/
/*********
*
* 收到连接回复
*
**********/
T_JZsdkReturnCode JZsdl_Uart_ObtainConnectFrame(char *getbuf, int value)
{
TestAPP_Connect(value);
}
/*******************************************************************************************************************************
*
... ...
... ... @@ -29,6 +29,10 @@ extern "C" {
int JZsdk_Uart_Init(int UART_DEV_NAME);
int JZsdk_Get_UartDev_UseFlag(int UART_DEV_NAME);
T_JZsdkReturnCode JZsdk_Uart_Set_PowerStatus(int DeviceName, int status);
T_JZsdkReturnCode JZsdl_Uart_ObtainConnectFrame(char *getbuf, int value);
int JZsdk_Uart_Set_Amplifier(int status);
T_JZsdkReturnCode JZsdk_Uart_Set_Volume(int DeviceName, int value);
... ...
... ... @@ -41,7 +41,7 @@ static T_JZsdkReturnCode JZsdk_Uart_RecvDeal_UART_4G_TransmodeDecide();
**********/
static int Uart_4G_RecvDeal_AskForConnect(char *getbuf)
{
JZSDK_LOG_INFO("串口设备4g,连接成功");
JZSDK_LOG_INFO("串口设备4G,连接成功");
//获取帧的序列号
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
... ... @@ -49,10 +49,27 @@ static int Uart_4G_RecvDeal_AskForConnect(char *getbuf)
int Device_name = JZsdk_Uart_GetVersionReplay();
//3、回复连接成功
JZsdk_Uart_SendDeal_Send_Connect(UART_DEV_1, Device_name);
JZsdk_Uart_SendDeal_Send_Connect(UART_4G, Device_name);
}
/*********
*
* 电源状态设置
*
**********/
static int Uart_4G_RecvDeal_PowerStatus(char *getbuf)
{
JZSDK_LOG_INFO("电源状态设置");
//获取帧的序列号
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
int status = getbuf[9];
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
//1、将串口程序设置为连接模式
//JZsdk_Uart_SetMainWorkMode(JZ_FLAGCODE_ON);
//1、电源状态设置
JZsdk_Uart_Set_PowerStatus(UART_4G, status);
}
/*******************************************************************************************************************************
... ... @@ -79,7 +96,7 @@ static T_JZsdkReturnCode Uart_4G_RecvDeal_RealTimeMP2_start(char *getbuf)
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
JZSDK_LOG_ERROR("开启MP2实时喊话功能失败\n");
return ret;
... ... @@ -106,12 +123,12 @@ static T_JZsdkReturnCode Uart_4G_RecvDeal_RealTimeMP2_start(char *getbuf)
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//4、回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
else
{
//4、回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
}
}
... ... @@ -172,7 +189,7 @@ static T_JZsdkReturnCode Uart_4G_RecvDeal_RealTimeMP2_stop(char *getbuf)
if ((UART_4G_Receive_mode != JZ_INSCODE_5AFRAME_REALTIMEMP2_UNLIMIT_TRANSMISSION) )
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
JZSDK_LOG_ERROR("操作失败,mp2传输未开始,无法关闭");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
... ... @@ -186,12 +203,12 @@ static T_JZsdkReturnCode Uart_4G_RecvDeal_RealTimeMP2_stop(char *getbuf)
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//4、回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
else
{
//4、回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
}
}
... ... @@ -211,7 +228,7 @@ static T_JZsdkReturnCode Uart_4G_RecvDeal_SaveAudioFileTrans_start(char *getbuf,
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
JZSDK_LOG_ERROR("开始传输的音频文件保存失败");
return ret;
}
... ... @@ -228,7 +245,7 @@ static T_JZsdkReturnCode Uart_4G_RecvDeal_SaveAudioFileTrans_start(char *getbuf,
ret = JZsdk_Uart_SaveAudioFileStart(FileName);
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
return -1;
}
... ... @@ -236,7 +253,7 @@ static T_JZsdkReturnCode Uart_4G_RecvDeal_SaveAudioFileTrans_start(char *getbuf,
JZsdk_Uart_RecvDeal_Set_UART_4G_ReceiveMode(JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_UNLIMIT_TRANSMISSION);
//4、回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
/*********
... ... @@ -265,9 +282,9 @@ static T_JZsdkReturnCode Uart_4G_RecvDeal_SaveAudioFileTrans_LimitTransmission(c
//提取出数据
int DataLen = ((int)getdata[3] << 8 ) + (int)getdata[4] - 2 - 9;
if (DataLen > 128)
if (DataLen > 400)
{
JZSDK_LOG_ERROR("传输得到的定长音频文帧长度超出128上限");
JZSDK_LOG_ERROR("传输得到的定长音频文帧长度超出400上限");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
... ... @@ -290,7 +307,7 @@ static T_JZsdkReturnCode Uart_4G_RecvDeal_SaveAudioFileTrans_stop(char *getbuf)
if (UART_4G_Receive_mode != JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_UNLIMIT_TRANSMISSION)
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
JZSDK_LOG_ERROR("关闭音频文件上传失败,音频文件上传未开始,无法关闭");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
... ... @@ -302,7 +319,7 @@ static T_JZsdkReturnCode Uart_4G_RecvDeal_SaveAudioFileTrans_stop(char *getbuf)
JZsdk_Uart_RecvDeal_Set_UART_4G_ReceiveMode(JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_STOP);
//2、回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
/*********
... ... @@ -331,16 +348,16 @@ static int Uart_4G_RecvDeal_audio_PlayFile(char *getbuf)
JZSDK_LOG_INFO("播放指定音频:%s\n",music_name);
ret = JZsdk_Uart_PlayMusic(UART_DEV_1, music_name, datasize);
ret = JZsdk_Uart_PlayMusic(UART_4G, music_name, datasize);
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//4、回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
else
{
//4、回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
}
}
/*********
... ... @@ -355,10 +372,10 @@ static int Uart_4G_RecvDeal_audio_PlayContinue(char *getbuf)
//获取帧的序列号
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
JZsdk_Uart_audio_PlayContinue(UART_DEV_1);
JZsdk_Uart_audio_PlayContinue(UART_4G);
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
/*********
*
... ... @@ -372,10 +389,10 @@ static int Uart_4G_RecvDeal_audio_PlayPause(char *getbuf)
//获取帧的序列号
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
JZsdk_Uart_audio_PlayPause(UART_DEV_1);
JZsdk_Uart_audio_PlayPause(UART_4G);
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
/*********
*
... ... @@ -389,10 +406,10 @@ static int Uart_4G_RecvDeal_audio_PlayStop(char *getbuf)
//获取帧的序列号
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
JZsdk_Uart_audio_PlayStop(UART_DEV_1);
JZsdk_Uart_audio_PlayStop(UART_4G);
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
/*********
... ... @@ -407,10 +424,10 @@ static int Uart_4G_RecvDeal_audio_LastSong(char *getbuf)
//获取帧的序列号
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
JZsdk_Uart_audio_LastSong(UART_DEV_1);
JZsdk_Uart_audio_LastSong(UART_4G);
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
/*********
... ... @@ -425,10 +442,10 @@ static int Uart_4G_RecvDeal_audio_NextSong(char *getbuf)
//获取帧的序列号
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
JZsdk_Uart_audio_NextSong(UART_DEV_1);
JZsdk_Uart_audio_NextSong(UART_4G);
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
/*********
... ... @@ -444,7 +461,7 @@ static int Uart_4G_RecvDeal_audio_GetMusicList(char *getbuf)
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
//0、刷新歌曲列表
JZsdk_Uart_Flush_MusicList();
... ... @@ -461,16 +478,16 @@ static int Uart_4G_RecvDeal_audio_GetMusicList(char *getbuf)
}
//3、发送开始帧
JZsdk_Uart_SendDeal_Reply_Musiclist_start(UART_DEV_1, music_sum);
JZsdk_Uart_SendDeal_Reply_Musiclist_start(UART_4G, music_sum);
//4、逐一调用发送函数将歌曲名发出
for (int i = 0; i < music_sum; i++)
{
JZsdk_Uart_SendDeal_Reply_Musiclist(UART_DEV_1, MusicName[i], MusicNameLength[i]);
JZsdk_Uart_SendDeal_Reply_Musiclist(UART_4G, MusicName[i], MusicNameLength[i]);
}
//5、发送结束帧
JZsdk_Uart_SendDeal_Reply_Musiclist_end(UART_DEV_1);
JZsdk_Uart_SendDeal_Reply_Musiclist_end(UART_4G);
}
/*********
... ... @@ -488,7 +505,7 @@ static int Uart_4G_RecvDeal_Amplifier_stop(char *getbuf)
JZsdk_Uart_Set_Amplifier(JZ_FLAGCODE_OFF);
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
/*********
... ... @@ -506,7 +523,7 @@ static int Uart_4G_RecvDeal_Amplifier_open(char *getbuf)
JZsdk_Uart_Set_Amplifier(JZ_FLAGCODE_ON);
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
/*********
... ... @@ -533,10 +550,10 @@ static int Uart_4G_RecvDeal_SetVolume(char *getbuf)
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
int value = (int)getbuf[9];
JZsdk_Uart_Set_Volume(UART_DEV_1, value);
JZsdk_Uart_Set_Volume(UART_4G, value);
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
/*********
... ... @@ -555,10 +572,10 @@ static int Uart_4G_RecvDeal_CheckStatus_volume(char *getbuf)
int volume = JZsdk_Uart_CheckStatus_volume();
//回复操作成功
//JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
//JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
//2、发送音量
JZsdk_Uart_SendDeal_Reply_Volume(UART_DEV_1, volume);
JZsdk_Uart_SendDeal_Reply_Volume(UART_4G, volume);
}
/*********
... ... @@ -580,10 +597,10 @@ static int Uart_4G_RecvDeal_CheckStatus_play(char *getbuf)
ret = JZsdk_Uart_CheckStatus_play();
//回复操作成功
//JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
//JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
//2、发送播放状态
JZsdk_Uart_SendDeal_Send_PlayStatus(UART_DEV_1, ret);
JZsdk_Uart_SendDeal_Send_PlayStatus(UART_4G, ret);
}
/*********
... ... @@ -606,7 +623,7 @@ static int Uart_4G_RecvDeal_CheckStatus_gimbal(char *getbuf)
JZsdk_Uart_CheckStatus_gimbal(&PitchAngle, &YawAngle);
//2、发送本地云台值
JZsdk_Uart_SendDeal_Reply_GimbalPitchAngle(UART_DEV_1, PitchAngle);
JZsdk_Uart_SendDeal_Reply_GimbalPitchAngle(UART_4G, PitchAngle);
}
/*********
*
... ... @@ -619,7 +636,7 @@ static int Uart_4G_RecvDeal_CheckStatus_GimbalFineTuning(char *getbuf)
//获取帧的序列号
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
JZsdk_Uart_CheckStatus_GimbalFineTuning(UART_DEV_1, FrameSequence);
JZsdk_Uart_CheckStatus_GimbalFineTuning(UART_4G, FrameSequence);
}
/*********
... ... @@ -643,10 +660,10 @@ static int Uart_4G_RecvDeal_CheckStatus_PLayFileName(char *getbuf)
JZSDK_LOG_INFO("当前播放的是%s %d\n",MusicName, MusicName_Len);
//回复操作成功
//JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
//JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
//2、发送名字
JZsdk_Uart_SendDeal_Reply_MusicName(UART_DEV_1, MusicName,MusicName_Len);
JZsdk_Uart_SendDeal_Reply_MusicName(UART_4G, MusicName,MusicName_Len);
}
/*********
*
... ... @@ -671,10 +688,10 @@ static int Uart_4G_RecvDeal_CheckStatus_SoftwareVersion(char *getbuf)
JZSDK_LOG_INFO("当前的软件版本号为:%2x, %2x, %2x, %2x",majorVersion, minorVersion, modifyVersion, debugVersion);
//回复操作成功
//JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
//JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
//2、发送版本号
JZsdk_Uart_SendDeal_Reply_SoftVersion(UART_DEV_1, majorVersion, minorVersion, modifyVersion, debugVersion);
JZsdk_Uart_SendDeal_Reply_SoftVersion(UART_4G, majorVersion, minorVersion, modifyVersion, debugVersion);
}
/*********
*
... ... @@ -698,10 +715,10 @@ static int Uart_4G_RecvDeal_CheckStatus_LoopPlay(char *getbuf)
}
//回复操作成功
//JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
//JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
//2、发送循环状态
JZsdk_Uart_SendDeal_Reply_LoopPlayStatus(UART_DEV_1 ,LoopStatus);
JZsdk_Uart_SendDeal_Reply_LoopPlayStatus(UART_4G ,LoopStatus);
}
/*********
*
... ... @@ -725,10 +742,10 @@ static int Uart_4G_RecvDeal_CheckStatus_TTS_tone(char *getbuf)
}
//回复操作成功
//JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
//JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
//2、发送音色
JZsdk_Uart_SendDeal_Reply_TTS_tone(UART_DEV_1 ,TTS_tone);
JZsdk_Uart_SendDeal_Reply_TTS_tone(UART_4G ,TTS_tone);
}
/*********
... ... @@ -753,10 +770,10 @@ static int Uart_4G_RecvDeal_CheckStatus_TTS_speed(char *getbuf)
}
//回复操作成功
//JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
//JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
//2、发送语速
JZsdk_Uart_SendDeal_Reply_TTS_speed(UART_DEV_1 ,TTS_speed);
JZsdk_Uart_SendDeal_Reply_TTS_speed(UART_4G ,TTS_speed);
}
... ... @@ -784,10 +801,10 @@ static int Uart_4G_RecvDeal_PlayLoop(char *getbuf)
mode = JZ_FLAGCODE_OFF;
}
JZsdk_Uart_audio_PlayLoop(UART_DEV_1, mode);
JZsdk_Uart_audio_PlayLoop(UART_4G, mode);
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
... ... @@ -822,7 +839,7 @@ static int Uart_4G_RecvDeal_Delete_Audio(char *getbuf)
JZsdk_Uart_Flush_MusicList();
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
/*********
*
... ... @@ -855,7 +872,7 @@ static int Uart_4G_RecvDeal_Delete_VoiceRecord(char *getbuf)
JZsdk_Uart_Flush_MusicList();
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
/*********
*
... ... @@ -882,16 +899,16 @@ static int Uart_4G_RecvDeal_TTS_SetTone(char *getbuf)
int tone = (int)getbuf[9];
//2、设置音色
T_JZsdkReturnCode ret = JZsdk_Uart_TTS_SetTone(UART_DEV_1, tone);
T_JZsdkReturnCode ret = JZsdk_Uart_TTS_SetTone(UART_4G, tone);
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
else
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
}
}
/*********
... ... @@ -914,21 +931,21 @@ static int Uart_4G_RecvDeal_TTS_SetSpeed(char *getbuf)
JZSDK_LOG_INFO("语速超出范围\n");
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
return -1 ;
}
//2、设置语速
T_JZsdkReturnCode ret = JZsdk_Uart_TTS_SetSpeed(UART_DEV_1, speed);
T_JZsdkReturnCode ret = JZsdk_Uart_TTS_SetSpeed(UART_4G, speed);
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
else
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
}
}
/*********
... ... @@ -950,7 +967,7 @@ static T_JZsdkReturnCode Uart_4G_RecvDeal_TTS_Trans_start(char *getbuf)
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
JZSDK_LOG_ERROR("tts开始传输失败");
return ret;
}
... ... @@ -965,7 +982,7 @@ static T_JZsdkReturnCode Uart_4G_RecvDeal_TTS_Trans_start(char *getbuf)
JZsdk_Uart_RecvDeal_Set_UART_4G_ReceiveMode(JZ_INSCODE_5AFRAME_TTS_TRANS_UNLIMIT_TRANSMISSION);
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
/*********
*
... ... @@ -1003,9 +1020,9 @@ static T_JZsdkReturnCode Uart_4G_RecvDeal_TTS_Trans_LimitTransmission(char *getd
//提取出数据
int DataLen = ((int)getdata[3] << 8 ) + (int)getdata[4] - 2 - 9;
if (DataLen > 128)
if (DataLen > 400)
{
JZSDK_LOG_ERROR("tts定长帧,单帧数据长度超出128上限");
JZSDK_LOG_ERROR("tts定长帧,单帧数据长度超出400上限");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
... ... @@ -1040,10 +1057,10 @@ static T_JZsdkReturnCode Uart_4G_RecvDeal_TTS_Trans_stop(char *getbuf)
JZSDK_LOG_INFO("未刷新文本,TTS播放%s",TTS_Recv_buffer);
//3、播放TTS
JZsdk_Uart_TTS_Play(UART_DEV_1, TTS_Recv_buffer, TTS_Recv_buffer_length);
JZsdk_Uart_TTS_Play(UART_4G, TTS_Recv_buffer, TTS_Recv_buffer_length);
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
... ... @@ -1055,10 +1072,10 @@ static T_JZsdkReturnCode Uart_4G_RecvDeal_TTS_Trans_stop(char *getbuf)
JZsdk_Uart_RecvDeal_Set_UART_4G_ReceiveMode(JZ_INSCODE_5AFRAME_TTS_TRANS_STOP);
//3、播放TTS
JZsdk_Uart_TTS_Play(UART_DEV_1, TTS_Recv_buffer, TTS_Recv_buffer_length);
JZsdk_Uart_TTS_Play(UART_4G, TTS_Recv_buffer, TTS_Recv_buffer_length);
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
... ... @@ -1078,7 +1095,7 @@ static T_JZsdkReturnCode Uart_4G_RecvDeal_OpusTrans_start(char *getbuf)
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
JZSDK_LOG_ERROR("打开opus传输失败");
return ret;
}
... ... @@ -1099,7 +1116,7 @@ static T_JZsdkReturnCode Uart_4G_RecvDeal_OpusTrans_start(char *getbuf)
JZSDK_LOG_INFO("已完成打开opus传输处理\n");
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
/*********
*
... ... @@ -1128,9 +1145,9 @@ static T_JZsdkReturnCode Uart_4G_RecvDeal_OpusTrans_LimitTransmission(char *getd
//提取出数据
int DataLen = ((int)getdata[3] << 8 ) + (int)getdata[4] - 2 - 9;
if (DataLen > 128)
if (DataLen > 400)
{
JZSDK_LOG_ERROR("传输得到的opus定长音频文件帧长度超出128上限");
JZSDK_LOG_ERROR("传输得到的opus定长音频文件帧长度超出400上限");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
... ... @@ -1154,7 +1171,7 @@ static int Uart_4G_RecvDeal_OpusTrans_stop(char *getbuf)
if (UART_4G_Receive_mode != JZ_INSCODE_5AFRAME_OPUS_TRAN_UNLIMIT_TRANSMISSION)
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
JZSDK_LOG_ERROR("关闭opus结束传输失败,opus结束传输未开始,无法关闭");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
... ... @@ -1167,7 +1184,7 @@ static int Uart_4G_RecvDeal_OpusTrans_stop(char *getbuf)
JZSDK_LOG_INFO("结束opus传输处理\n");
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
/*********
*
... ... @@ -1185,15 +1202,15 @@ static int Uart_4G_RecvDeal_OpusPlay(char *getbuf)
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
JZSDK_LOG_ERROR("opus播放失败,存在传输模式打开中");
return ret;
}
JZsdk_Uart_Opus_PlayFixedFile(UART_DEV_1);
JZsdk_Uart_Opus_PlayFixedFile(UART_4G);
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
... ... @@ -1214,7 +1231,7 @@ static T_JZsdkReturnCode Uart_4G_RecvDeal_Opus_RealTimeVoice_start(char *getbuf)
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
JZSDK_LOG_ERROR("开启opus实时喊话失败");
return ret;
}
... ... @@ -1239,7 +1256,7 @@ static T_JZsdkReturnCode Uart_4G_RecvDeal_Opus_RealTimeVoice_start(char *getbuf)
JZsdk_Uart_RealTimeVoiceStart(Rate);
//4、通知成功打开语音发送模式
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
/*********
... ... @@ -1252,7 +1269,6 @@ static int Uart_4G_RecvDeal_Opus_RealTimeVoice_UnlimitTransmission(char *getdata
{
JZSDK_LOG_INFO("opus语音传输中\n");
JZsdk_Uart_RealTimeVoiceTrans(getdata, len);
}
/*********
... ... @@ -1269,9 +1285,9 @@ static T_JZsdkReturnCode Uart_4G_RecvDeal_Opus_RealTimeVoice_LimitTransmission(c
//提取出数据
int DataLen = ((int)getdata[3] << 8 ) + (int)getdata[4] - 2 - 9;
if (DataLen > 80)
if (DataLen > 400)
{
JZSDK_LOG_ERROR("opus实时语音定长传输帧数据长度超出80上限");
JZSDK_LOG_ERROR("opus实时语音定长传输帧数据长度超出400上限");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
... ... @@ -1295,7 +1311,7 @@ static int Uart_4G_RecvDeal_Opus_RealTimeVoice_stop(char *getbuf)
if (UART_4G_Receive_mode != JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_UNLIMIT_TRANSMISSION)
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
JZSDK_LOG_ERROR("关闭opus实时语音发送功能失败,opus实时语音发送功能未开始,无法关闭");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
... ... @@ -1307,7 +1323,7 @@ static int Uart_4G_RecvDeal_Opus_RealTimeVoice_stop(char *getbuf)
JZsdk_Uart_RealTimeVoiceClose();
//3、通知成功关闭语音发送模式
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
... ... @@ -1349,22 +1365,22 @@ static int Uart_4G_RecvDeal_Gimbal_PitchControl(char *getbuf)
{
JZSDK_LOG_INFO("云台输入角度符号错误,无法正常控制");
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
JZSDK_LOG_INFO("处理得到的角度是%d",Gimbal_angle);
T_JZsdkReturnCode ret = JZsdk_Uart_Gimbal_PitchControl(UART_DEV_1, Gimbal_angle);
T_JZsdkReturnCode ret = JZsdk_Uart_Gimbal_PitchControl(UART_4G, Gimbal_angle);
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
else
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
}
}
... ... @@ -1399,13 +1415,13 @@ static int Uart_4G_RecvDeal_Gimbal_PitchFineTuningControl(char *getbuf)
{
JZSDK_LOG_INFO("云台俯仰微调角度符号错误,无法正常控制");
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
JZSDK_LOG_INFO("处理得到云台俯仰微调角度是%d",Gimbal_angle);
JZsdk_Uart_Gimbal_PitchFineTuningControl(UART_DEV_1, FrameSequence ,Gimbal_angle);
JZsdk_Uart_Gimbal_PitchFineTuningControl(UART_4G, FrameSequence ,Gimbal_angle);
}
... ... @@ -1431,16 +1447,16 @@ static int Uart_4G_RecvDeal_SearchLight_SetFrequency(char *getbuf)
//1、通过数据帧2,获取爆闪频率
int Frequency = getbuf[10];
T_JZsdkReturnCode ret = JZsdk_Uart_Lighting_SetSearchLightFrequency(UART_DEV_1, Frequency);
T_JZsdkReturnCode ret = JZsdk_Uart_Lighting_SetSearchLightFrequency(UART_4G, Frequency);
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
else
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
}
}
... ... @@ -1458,16 +1474,16 @@ static int Uart_4G_RecvDeal_SearchLight_Control(char *getbuf)
//1、通过数据帧2,获取灯光控制模式
int value = getbuf[10];
T_JZsdkReturnCode ret = JZsdk_Uart_SearchLight_Control(UART_DEV_1, value);
T_JZsdkReturnCode ret = JZsdk_Uart_SearchLight_Control(UART_4G, value);
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
else
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
}
}
... ... @@ -1486,16 +1502,16 @@ static int Uart_4G_RecvDeal_SearchLight_Lumen(char *getbuf)
int LeftLumen = getbuf[9]; //左灯亮度
int RightLumen = getbuf[10]; //右灯亮度
T_JZsdkReturnCode ret = JZsdk_Uart_SearchLight_Lumen(UART_DEV_1, LeftLumen, RightLumen);
T_JZsdkReturnCode ret = JZsdk_Uart_SearchLight_Lumen(UART_4G, LeftLumen, RightLumen);
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
else
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
}
}
... ... @@ -1511,7 +1527,7 @@ static int Uart_4G_RecvDeal_CheckStatus_SearchLightLightAttribute(char *getbuf)
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
//2、查询灯光属性
T_JZsdkReturnCode ret = JZsdk_Uart_CheckStatus_SearchLightLightAttribute(UART_DEV_1, FrameSequence);
T_JZsdkReturnCode ret = JZsdk_Uart_CheckStatus_SearchLightLightAttribute(UART_4G, FrameSequence);
}
... ... @@ -1527,7 +1543,7 @@ static int Uart_4G_RecvDeal_CheckStatus_SearchLightTemperture(char *getbuf)
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
//2、查询探照灯温度
T_JZsdkReturnCode ret = JZsdk_Uart_CheckStatus_SearchLightTemperture(UART_DEV_1, FrameSequence);
T_JZsdkReturnCode ret = JZsdk_Uart_CheckStatus_SearchLightTemperture(UART_4G, FrameSequence);
}
/*********
... ... @@ -1544,16 +1560,16 @@ static int Uart_4G_RecvDeal_SearchLight_SubscriptionControl(char *getbuf)
//1、通过数据帧2,获取控制值
int value = getbuf[10];
T_JZsdkReturnCode ret = JZsdk_Uart_SearchLight_SubscriptionControl(UART_DEV_1, value);
T_JZsdkReturnCode ret = JZsdk_Uart_SearchLight_SubscriptionControl(UART_4G, value);
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
else
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
}
}
... ... @@ -1568,7 +1584,7 @@ static int Uart_4G_RecvDeal_CheckStatus_SerialNumber(char *getbuf)
//获取帧的序列号
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
JZsdk_Uart_CheckStatus_SerialNumber(UART_DEV_1, FrameSequence);
JZsdk_Uart_CheckStatus_SerialNumber(UART_4G, FrameSequence);
}
... ... @@ -1587,7 +1603,7 @@ static int Uart_4G_RecvDeal_OutPutPower_Control(char *getbuf)
int Value = getbuf[9];
//控制
JZsdk_Uart_OutPutPower_Control(UART_DEV_1, FrameSequence, Value);
JZsdk_Uart_OutPutPower_Control(UART_4G, FrameSequence, Value);
}
/*********
... ... @@ -1603,7 +1619,7 @@ static int Uart_4G_RecvDeal_Checkstatus_OutPutPower(char *getbuf)
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
//获取本地数值
JZsdk_Uart_Checkstatus_OutPutPower(UART_DEV_1, FrameSequence);
JZsdk_Uart_Checkstatus_OutPutPower(UART_4G, FrameSequence);
}
/*******************************************************************************************************************************
... ... @@ -1626,16 +1642,16 @@ static int Uart_4G_RecvDeal_WarningLight_ModeControl(char *getbuf)
int value1 = getbuf[9];
int value2 = getbuf[10];
T_JZsdkReturnCode ret = JZsdk_Uart_WarningLight_ModeControl(UART_DEV_1, value1, value2);
T_JZsdkReturnCode ret = JZsdk_Uart_WarningLight_ModeControl(UART_4G, value1, value2);
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
else
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
}
}
... ... @@ -1654,16 +1670,16 @@ static int Uart_4G_RecvDeal_WarningLight_SetColor(char *getbuf)
int value1 = getbuf[9];
int value2 = getbuf[10];
T_JZsdkReturnCode ret = JZsdk_Uart_WarningLight_SetColor(UART_DEV_1, value1, value2);
T_JZsdkReturnCode ret = JZsdk_Uart_WarningLight_SetColor(UART_4G, value1, value2);
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
else
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
}
}
... ... @@ -1679,7 +1695,7 @@ static int Uart_4G_RecvDeal_CheckStatus_WarningLightStatus(char *getbuf)
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
//2、查询灯光属性
T_JZsdkReturnCode ret = JZsdk_Uart_CheckStatus_WarningLightStatus(UART_DEV_1, FrameSequence);
T_JZsdkReturnCode ret = JZsdk_Uart_CheckStatus_WarningLightStatus(UART_4G, FrameSequence);
}
... ... @@ -1695,7 +1711,7 @@ static int Uart_4G_RecvDeal_CheckStatus_WarningLightColor(char *getbuf)
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
//2、查询灯光属性
T_JZsdkReturnCode ret = JZsdk_Uart_CheckStatus_WarningLightColor(UART_DEV_1, FrameSequence);
T_JZsdkReturnCode ret = JZsdk_Uart_CheckStatus_WarningLightColor(UART_4G, FrameSequence);
}
/********************************************************************************************************
... ... @@ -1737,7 +1753,7 @@ static int Uart_4G_RecvDeal_ObtainSearchLight_Frequency(char *getbuf)
int value = getbuf[10];
//2、发送到本地处理
JZsdl_Uart_ObtainSearchLight_Frequency(UART_DEV_1, value);
JZsdl_Uart_ObtainSearchLight_Frequency(UART_4G, value);
}
/*********
... ... @@ -1755,7 +1771,7 @@ static int Uart_4G_RecvDeal_ObtainSearchLight_Mode(char *getbuf)
int value = getbuf[10];
//2、发送到本地处理
JZsdl_Uart_ObtainSearchLight_Mode(UART_DEV_1, value);
JZsdl_Uart_ObtainSearchLight_Mode(UART_4G, value);
}
/*********
... ... @@ -1774,7 +1790,7 @@ static int Uart_4G_RecvDeal_ObtainSearchLight_Lumen(char *getbuf)
int value2 = getbuf[10];
//2、发送到本地处理
JZsdl_Uart_ObtainSearchLight_Lumen(UART_DEV_1, value1, value2);
JZsdl_Uart_ObtainSearchLight_Lumen(UART_4G, value1, value2);
}
/*********
... ... @@ -1793,7 +1809,7 @@ static int Uart_4G_RecvDeal_ObtainSearchLight_Temperature(char *getbuf)
int value2 = getbuf[10];
//2、发送到本地处理
JZsdl_Uart_ObtainSearchLight_Temperature(UART_DEV_1, value1, value2);
JZsdl_Uart_ObtainSearchLight_Temperature(UART_4G, value1, value2);
}
/*********
... ... @@ -1824,7 +1840,7 @@ static int Uart_4G_RecvDeal_ObtainGimbal_Pitch(char *getbuf)
}
//2、发送到本地处理
JZsdl_Uart_RecvDeal_ObtainGimbal_Pitch(UART_DEV_1, Gimbal_angle);
JZsdl_Uart_RecvDeal_ObtainGimbal_Pitch(UART_4G, Gimbal_angle);
}
/*********
... ... @@ -1855,7 +1871,7 @@ static int Uart_4G_RecvDeal_ObtainGimbal_Yaw(char *getbuf)
}
//2、发送到本地处理
JZsdl_Uart_RecvDeal_ObtainGimbal_Yaw(UART_DEV_1, Gimbal_angle);
JZsdl_Uart_RecvDeal_ObtainGimbal_Yaw(UART_4G, Gimbal_angle);
}
/*********
... ... @@ -1884,7 +1900,7 @@ static int Uart_4G_RecvDeal_ObtainGimbalPitchFineTuning(char *getbuf)
pitch = -pitch;
}
JZsdl_Uart_ObtainGimbalPitchFineTuning(UART_DEV_1, FrameSequence, pitch);
JZsdl_Uart_ObtainGimbalPitchFineTuning(UART_4G, FrameSequence, pitch);
}
/*********
... ... @@ -1903,7 +1919,7 @@ static int Uart_4G_RecvDeal_ObtainWaringlight_Status(char *getbuf)
int value2 = getbuf[10];
//2、发送到本地处理
JZsdl_Uart_RecvDeal_ObtainWaringlight_Status(UART_DEV_1, value1, value2);
JZsdl_Uart_RecvDeal_ObtainWaringlight_Status(UART_4G, value1, value2);
}
/*********
... ... @@ -1922,7 +1938,7 @@ static int Uart_4G_RecvDeal_ObtainWaringlight_Color(char *getbuf)
int value2 = getbuf[10];
//2、发送到本地处理
JZsdl_Uart_RecvDeal_ObtainWaringlight_Color(UART_DEV_1, value1, value2);
JZsdl_Uart_RecvDeal_ObtainWaringlight_Color(UART_4G, value1, value2);
}
/*********
... ... @@ -1977,7 +1993,7 @@ static int Uart_4G_RecvDeal_QuerySecondaryDeviceName(char *getbuf)
int SecondaryName = JZsdk_Uart_GetSecondaryDeviceName();
//3、回复当前从设备名
JZsdk_Uart_SendDeal_Reply_SecondaryDeviceName(UART_DEV_1 ,SecondaryName, FrameSequence);
JZsdk_Uart_SendDeal_Reply_SecondaryDeviceName(UART_4G ,SecondaryName, FrameSequence);
}
/*******************************************************************************************************************************
... ... @@ -1999,16 +2015,16 @@ static int Uart_4G_RecvDeal_SetGimbalRange(char *getbuf)
//1、通过数据帧2,获取设置的大小值
int value = getbuf[10] ;
T_JZsdkReturnCode ret = JZsdk_Uart_SetGimbalRange(UART_DEV_1, value);
T_JZsdkReturnCode ret = JZsdk_Uart_SetGimbalRange(UART_4G, value);
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
else
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
}
}
... ... @@ -2028,7 +2044,7 @@ static int Uart_4G_RecvDeal_GimbalLinkageControl(char *getbuf)
int value = getbuf[10] ;
//2、设置
JZsdk_Uart_GimbalLinkageControl(UART_DEV_1, FrameSequence, value);
JZsdk_Uart_GimbalLinkageControl(UART_4G, FrameSequence, value);
}
... ... @@ -2045,7 +2061,7 @@ static int Uart_4G_RecvDeal_Checkstatus_GimbalLinkage(char *getbuf)
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
//查询是否开启云台联动
JZsdk_Uart_Checkstatus_GimbalLinkage(UART_DEV_1, FrameSequence);
JZsdk_Uart_Checkstatus_GimbalLinkage(UART_4G, FrameSequence);
}
static int Uart_4G_RecvDeal_UartBitrateChange(char *getbuf)
... ... @@ -2086,7 +2102,7 @@ static int Uart_4G_RecvDeal_UartBitrateChange(char *getbuf)
break;
}
JZsdk_Uart_BitRateChange(UART_DEV_1, BitRate);
JZsdk_Uart_BitRateChange(UART_4G, BitRate);
}
/********************************************************************************************************
... ... @@ -2125,12 +2141,12 @@ static int Uart_4G_RecvDeal_ObtainSecondaryDeviceName(char *getbuf)
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
}
else
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
}
}
... ... @@ -2154,7 +2170,7 @@ static int Uart_4G_RecvDeal_ObtainGimbalLinkage(char *getbuf)
int value1 = getbuf[10];
//2、保存
JZsdk_Uart_ObtainGimbalLinkage(UART_DEV_1,FrameSequence,value1);
JZsdk_Uart_ObtainGimbalLinkage(UART_4G,FrameSequence,value1);
}
... ... @@ -2184,7 +2200,7 @@ static int Uart_4G_RecvDeal_FrameErrorReply(char *getbuf)
JZSDK_LOG_ERROR("帧指令错误:帧错误或者是帧无对应操作\n");
//无法正常获取帧的序列号
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, 0x00);
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, 0x00);
}
... ... @@ -2224,7 +2240,7 @@ static int Uart_4G_RecvDeal_OperationFailed(char *getbuf)
*********************************************************************************************************/
int Uart_4G_RecvDeal_RecvDeal(int Receive_mode, unsigned char *getdata, int len)
{
JZSDK_LOG_INFO("串口设备4g,接受到的模式为:%x",Receive_mode);
JZSDK_LOG_INFO("串口设备4G,接受到的模式为:%x",Receive_mode);
switch (Receive_mode)
{
/*******************************************************************************************************************************
... ... @@ -2238,6 +2254,12 @@ int Uart_4G_RecvDeal_RecvDeal(int Receive_mode, unsigned char *getdata, int len)
return 0;
break;
//电源状态设置
case JZ_INSCODE_5AFRAME_FRAME_POWER_STATUS:
Uart_4G_RecvDeal_PowerStatus(getdata);
return 0;
break;
//开启语音
case JZ_INSCODE_5AFRAME_REALTIMEMP2_START:
Uart_4G_RecvDeal_RealTimeMP2_start(getdata);
... ... @@ -2784,9 +2806,11 @@ int JZsdk_Uart_RecvDeal_CharmDeal_Uart_4G(unsigned char *getbuf, int len)
{
Uart_4G_RecvDeal_RecvDeal(UART_4G_Receive_mode, getbuf, len);
}
//否则直接丢弃
return -1;
else
{
//否则直接丢弃
Uart_4G_RecvDeal_RecvDeal(JZ_ERROR_SYSTEM_FRAME_ERROR, getbuf, len);
}
}
/*******************
... ... @@ -2797,7 +2821,7 @@ int JZsdk_Uart_RecvDeal_CharmDeal_Uart_4G(unsigned char *getbuf, int len)
* ****************/
int JZsdk_Uart_RecvDeal_Set_UART_4G_ReceiveMode(int value)
{
JZSDK_LOG_INFO("串口设备4g,二次修改接收模式%x\n",value);
JZSDK_LOG_INFO("串口设备4G,二次修改接收模式%x\n",value);
UART_4G_Receive_mode = value;
return 0;
}
... ...
... ... @@ -55,6 +55,26 @@ static int Uart_DEV1_RecvDeal_AskForConnect(char *getbuf)
JZsdk_Uart_SetMainWorkMode(JZ_FLAGCODE_ON);
}
/*********
*
* 电源状态设置
*
**********/
static int Uart_DEV1_RecvDeal_PowerStatus(char *getbuf)
{
JZSDK_LOG_INFO("电源状态设置");
//获取帧的序列号
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
int status = getbuf[9];
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
//1、电源状态设置
JZsdk_Uart_Set_PowerStatus(UART_DEV_1, status);
}
/*******************************************************************************************************************************
*
* MP2实时喊话
... ... @@ -134,13 +154,13 @@ static int Uart_DEV1_RecvDeal_RealTimeMP2_Unlimit_transmission(char *getdata, in
/*********
*
* 语音MP2实时喊话有限传输中
* 语音MP2实时喊话定长传输中
*
*
**********/
static int Uart_DEV1_RecvDeal_RealTimeMP2_Limit_transmission(char *getdata, int len)
{
JZSDK_LOG_INFO("MP2实时喊话有限制传输中\n");
JZSDK_LOG_INFO("MP2实时喊话定长制传输中\n");
T_JZsdkReturnCode ret;
//提取出数据
... ... @@ -265,9 +285,9 @@ static T_JZsdkReturnCode Uart_DEV1_RecvDeal_SaveAudioFileTrans_LimitTransmission
//提取出数据
int DataLen = ((int)getdata[3] << 8 ) + (int)getdata[4] - 2 - 9;
if (DataLen > 128)
if (DataLen > 400)
{
JZSDK_LOG_ERROR("传输得到的定长音频文帧长度超出128上限");
JZSDK_LOG_ERROR("传输得到的定长音频文帧长度超出400上限");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
... ... @@ -1003,9 +1023,9 @@ static T_JZsdkReturnCode Uart_DEV1_RecvDeal_TTS_Trans_LimitTransmission(char *ge
//提取出数据
int DataLen = ((int)getdata[3] << 8 ) + (int)getdata[4] - 2 - 9;
if (DataLen > 128)
if (DataLen > 400)
{
JZSDK_LOG_ERROR("tts定长帧,单帧数据长度超出128上限");
JZSDK_LOG_ERROR("tts定长帧,单帧数据长度超出400上限");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
... ... @@ -1101,6 +1121,7 @@ static T_JZsdkReturnCode Uart_DEV1_RecvDeal_OpusTrans_start(char *getbuf)
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
}
/*********
*
* opus不定长传输
... ... @@ -1252,7 +1273,6 @@ static int Uart_DEV1_RecvDeal_Opus_RealTimeVoice_UnlimitTransmission(char *getda
{
JZSDK_LOG_INFO("opus语音传输中\n");
JZsdk_Uart_RealTimeVoiceTrans(getdata, len);
}
/*********
... ... @@ -1269,9 +1289,9 @@ static T_JZsdkReturnCode Uart_DEV1_RecvDeal_Opus_RealTimeVoice_LimitTransmission
//提取出数据
int DataLen = ((int)getdata[3] << 8 ) + (int)getdata[4] - 2 - 9;
if (DataLen > 80)
if (DataLen > 400)
{
JZSDK_LOG_ERROR("opus实时语音定长传输帧数据长度超出80上限");
JZSDK_LOG_ERROR("opus实时语音定长传输帧数据长度超出400上限");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
... ... @@ -1716,6 +1736,18 @@ static int Uart_DEV1_RecvDeal_CheckStatus_WarningLightColor(char *getbuf)
* 设备相关
*
* *******************************************************************************************************************************/
static int Uart_DEV1_RecvDeal_ObtainConnectFrame(char *getbuf)
{
JZSDK_LOG_INFO("收到连接回复帧\n");
//获取帧的序列号
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
//1、通过数据帧2,获取值
int value = getbuf[10];
//2、发送到本地处理
JZsdl_Uart_ObtainConnectFrame(getbuf, value);
}
/*******************************************************************************************************************************
*
... ... @@ -2238,6 +2270,12 @@ int Uart_DEV1_RecvDeal_RecvDeal(int Receive_mode, unsigned char *getdata, int le
return 0;
break;
//电源状态设置
case JZ_INSCODE_5AFRAME_FRAME_POWER_STATUS:
Uart_DEV1_RecvDeal_PowerStatus(getdata);
return 0;
break;
//开启语音
case JZ_INSCODE_5AFRAME_REALTIMEMP2_START:
Uart_DEV1_RecvDeal_RealTimeMP2_start(getdata);
... ... @@ -2586,6 +2624,11 @@ int Uart_DEV1_RecvDeal_RecvDeal(int Receive_mode, unsigned char *getdata, int le
* 5B类部分
*
* *******************************************************************************************************************************/
//收到连接回复帧
case JZ_INSCODE_5BFRAME_INITIATECONNECT:
Uart_DEV1_RecvDeal_ObtainConnectFrame(getdata);
break;
//回复灯光频率
case JZ_INSCODE_5BFRAME_CHECKSTATUS_SEARCHLIGHT_FREQUENCY:
Uart_DEV1_RecvDeal_ObtainSearchLight_Frequency(getdata);
... ... @@ -2784,9 +2827,11 @@ int JZsdk_Uart_RecvDeal_CharmDeal_Uart_DEV1(unsigned char *getbuf, int len)
{
Uart_DEV1_RecvDeal_RecvDeal(UART_DEV1_Receive_mode, getbuf, len);
}
//否则直接丢弃
return -1;
else
{
//否则直接丢弃
Uart_DEV1_RecvDeal_RecvDeal(JZ_ERROR_SYSTEM_FRAME_ERROR, getbuf, len);
}
}
/*******************
... ...
... ... @@ -41,7 +41,7 @@ static T_JZsdkReturnCode JZsdk_Uart_RecvDeal_UART_DEV2_TransmodeDecide();
**********/
static int Uart_DEV2_RecvDeal_AskForConnect(char *getbuf)
{
JZSDK_LOG_INFO("串口设备4g,连接成功");
JZSDK_LOG_INFO("串口设备2号,连接成功");
//获取帧的序列号
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
... ... @@ -49,10 +49,27 @@ static int Uart_DEV2_RecvDeal_AskForConnect(char *getbuf)
int Device_name = JZsdk_Uart_GetVersionReplay();
//3、回复连接成功
JZsdk_Uart_SendDeal_Send_Connect(UART_DEV_1, Device_name);
JZsdk_Uart_SendDeal_Send_Connect(UART_DEV_2, Device_name);
}
/*********
*
* 电源状态设置
*
**********/
static int Uart_DEV2_RecvDeal_PowerStatus(char *getbuf)
{
JZSDK_LOG_INFO("电源状态设置");
//获取帧的序列号
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
int status = getbuf[9];
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
//1、将串口程序设置为连接模式
JZsdk_Uart_SetMainWorkMode(JZ_FLAGCODE_ON);
//1、电源状态设置
JZsdk_Uart_Set_PowerStatus(UART_DEV_2, status);
}
/*******************************************************************************************************************************
... ... @@ -79,7 +96,7 @@ static T_JZsdkReturnCode Uart_DEV2_RecvDeal_RealTimeMP2_start(char *getbuf)
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, FrameSequence);
JZSDK_LOG_ERROR("开启MP2实时喊话功能失败\n");
return ret;
... ... @@ -106,12 +123,12 @@ static T_JZsdkReturnCode Uart_DEV2_RecvDeal_RealTimeMP2_start(char *getbuf)
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//4、回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
else
{
//4、回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, FrameSequence);
}
}
... ... @@ -172,7 +189,7 @@ static T_JZsdkReturnCode Uart_DEV2_RecvDeal_RealTimeMP2_stop(char *getbuf)
if ((UART_DEV2_Receive_mode != JZ_INSCODE_5AFRAME_REALTIMEMP2_UNLIMIT_TRANSMISSION) )
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, FrameSequence);
JZSDK_LOG_ERROR("操作失败,mp2传输未开始,无法关闭");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
... ... @@ -186,12 +203,12 @@ static T_JZsdkReturnCode Uart_DEV2_RecvDeal_RealTimeMP2_stop(char *getbuf)
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//4、回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
else
{
//4、回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, FrameSequence);
}
}
... ... @@ -211,7 +228,7 @@ static T_JZsdkReturnCode Uart_DEV2_RecvDeal_SaveAudioFileTrans_start(char *getbu
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, FrameSequence);
JZSDK_LOG_ERROR("开始传输的音频文件保存失败");
return ret;
}
... ... @@ -228,7 +245,7 @@ static T_JZsdkReturnCode Uart_DEV2_RecvDeal_SaveAudioFileTrans_start(char *getbu
ret = JZsdk_Uart_SaveAudioFileStart(FileName);
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, FrameSequence);
return -1;
}
... ... @@ -236,7 +253,7 @@ static T_JZsdkReturnCode Uart_DEV2_RecvDeal_SaveAudioFileTrans_start(char *getbu
JZsdk_Uart_RecvDeal_Set_UART_DEV2_ReceiveMode(JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_UNLIMIT_TRANSMISSION);
//4、回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
/*********
... ... @@ -265,9 +282,9 @@ static T_JZsdkReturnCode Uart_DEV2_RecvDeal_SaveAudioFileTrans_LimitTransmission
//提取出数据
int DataLen = ((int)getdata[3] << 8 ) + (int)getdata[4] - 2 - 9;
if (DataLen > 128)
if (DataLen > 400)
{
JZSDK_LOG_ERROR("传输得到的定长音频文帧长度超出128上限");
JZSDK_LOG_ERROR("传输得到的定长音频文帧长度超出400上限");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
... ... @@ -290,7 +307,7 @@ static T_JZsdkReturnCode Uart_DEV2_RecvDeal_SaveAudioFileTrans_stop(char *getbuf
if (UART_DEV2_Receive_mode != JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_UNLIMIT_TRANSMISSION)
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, FrameSequence);
JZSDK_LOG_ERROR("关闭音频文件上传失败,音频文件上传未开始,无法关闭");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
... ... @@ -302,7 +319,7 @@ static T_JZsdkReturnCode Uart_DEV2_RecvDeal_SaveAudioFileTrans_stop(char *getbuf
JZsdk_Uart_RecvDeal_Set_UART_DEV2_ReceiveMode(JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_STOP);
//2、回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
/*********
... ... @@ -331,16 +348,16 @@ static int Uart_DEV2_RecvDeal_audio_PlayFile(char *getbuf)
JZSDK_LOG_INFO("播放指定音频:%s\n",music_name);
ret = JZsdk_Uart_PlayMusic(UART_DEV_1, music_name, datasize);
ret = JZsdk_Uart_PlayMusic(UART_DEV_2, music_name, datasize);
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//4、回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
else
{
//4、回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, FrameSequence);
}
}
/*********
... ... @@ -355,10 +372,10 @@ static int Uart_DEV2_RecvDeal_audio_PlayContinue(char *getbuf)
//获取帧的序列号
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
JZsdk_Uart_audio_PlayContinue(UART_DEV_1);
JZsdk_Uart_audio_PlayContinue(UART_DEV_2);
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
/*********
*
... ... @@ -372,10 +389,10 @@ static int Uart_DEV2_RecvDeal_audio_PlayPause(char *getbuf)
//获取帧的序列号
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
JZsdk_Uart_audio_PlayPause(UART_DEV_1);
JZsdk_Uart_audio_PlayPause(UART_DEV_2);
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
/*********
*
... ... @@ -389,10 +406,10 @@ static int Uart_DEV2_RecvDeal_audio_PlayStop(char *getbuf)
//获取帧的序列号
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
JZsdk_Uart_audio_PlayStop(UART_DEV_1);
JZsdk_Uart_audio_PlayStop(UART_DEV_2);
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
/*********
... ... @@ -407,10 +424,10 @@ static int Uart_DEV2_RecvDeal_audio_LastSong(char *getbuf)
//获取帧的序列号
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
JZsdk_Uart_audio_LastSong(UART_DEV_1);
JZsdk_Uart_audio_LastSong(UART_DEV_2);
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
/*********
... ... @@ -425,10 +442,10 @@ static int Uart_DEV2_RecvDeal_audio_NextSong(char *getbuf)
//获取帧的序列号
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
JZsdk_Uart_audio_NextSong(UART_DEV_1);
JZsdk_Uart_audio_NextSong(UART_DEV_2);
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
/*********
... ... @@ -444,7 +461,7 @@ static int Uart_DEV2_RecvDeal_audio_GetMusicList(char *getbuf)
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
//0、刷新歌曲列表
JZsdk_Uart_Flush_MusicList();
... ... @@ -461,16 +478,16 @@ static int Uart_DEV2_RecvDeal_audio_GetMusicList(char *getbuf)
}
//3、发送开始帧
JZsdk_Uart_SendDeal_Reply_Musiclist_start(UART_DEV_1, music_sum);
JZsdk_Uart_SendDeal_Reply_Musiclist_start(UART_DEV_2, music_sum);
//4、逐一调用发送函数将歌曲名发出
for (int i = 0; i < music_sum; i++)
{
JZsdk_Uart_SendDeal_Reply_Musiclist(UART_DEV_1, MusicName[i], MusicNameLength[i]);
JZsdk_Uart_SendDeal_Reply_Musiclist(UART_DEV_2, MusicName[i], MusicNameLength[i]);
}
//5、发送结束帧
JZsdk_Uart_SendDeal_Reply_Musiclist_end(UART_DEV_1);
JZsdk_Uart_SendDeal_Reply_Musiclist_end(UART_DEV_2);
}
/*********
... ... @@ -488,7 +505,7 @@ static int Uart_DEV2_RecvDeal_Amplifier_stop(char *getbuf)
JZsdk_Uart_Set_Amplifier(JZ_FLAGCODE_OFF);
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
/*********
... ... @@ -506,7 +523,7 @@ static int Uart_DEV2_RecvDeal_Amplifier_open(char *getbuf)
JZsdk_Uart_Set_Amplifier(JZ_FLAGCODE_ON);
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
/*********
... ... @@ -533,10 +550,10 @@ static int Uart_DEV2_RecvDeal_SetVolume(char *getbuf)
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
int value = (int)getbuf[9];
JZsdk_Uart_Set_Volume(UART_DEV_1, value);
JZsdk_Uart_Set_Volume(UART_DEV_2, value);
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
/*********
... ... @@ -555,10 +572,10 @@ static int Uart_DEV2_RecvDeal_CheckStatus_volume(char *getbuf)
int volume = JZsdk_Uart_CheckStatus_volume();
//回复操作成功
//JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
//JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
//2、发送音量
JZsdk_Uart_SendDeal_Reply_Volume(UART_DEV_1, volume);
JZsdk_Uart_SendDeal_Reply_Volume(UART_DEV_2, volume);
}
/*********
... ... @@ -580,10 +597,10 @@ static int Uart_DEV2_RecvDeal_CheckStatus_play(char *getbuf)
ret = JZsdk_Uart_CheckStatus_play();
//回复操作成功
//JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
//JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
//2、发送播放状态
JZsdk_Uart_SendDeal_Send_PlayStatus(UART_DEV_1, ret);
JZsdk_Uart_SendDeal_Send_PlayStatus(UART_DEV_2, ret);
}
/*********
... ... @@ -606,7 +623,7 @@ static int Uart_DEV2_RecvDeal_CheckStatus_gimbal(char *getbuf)
JZsdk_Uart_CheckStatus_gimbal(&PitchAngle, &YawAngle);
//2、发送本地云台值
JZsdk_Uart_SendDeal_Reply_GimbalPitchAngle(UART_DEV_1, PitchAngle);
JZsdk_Uart_SendDeal_Reply_GimbalPitchAngle(UART_DEV_2, PitchAngle);
}
/*********
*
... ... @@ -619,7 +636,7 @@ static int Uart_DEV2_RecvDeal_CheckStatus_GimbalFineTuning(char *getbuf)
//获取帧的序列号
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
JZsdk_Uart_CheckStatus_GimbalFineTuning(UART_DEV_1, FrameSequence);
JZsdk_Uart_CheckStatus_GimbalFineTuning(UART_DEV_2, FrameSequence);
}
/*********
... ... @@ -643,10 +660,10 @@ static int Uart_DEV2_RecvDeal_CheckStatus_PLayFileName(char *getbuf)
JZSDK_LOG_INFO("当前播放的是%s %d\n",MusicName, MusicName_Len);
//回复操作成功
//JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
//JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
//2、发送名字
JZsdk_Uart_SendDeal_Reply_MusicName(UART_DEV_1, MusicName,MusicName_Len);
JZsdk_Uart_SendDeal_Reply_MusicName(UART_DEV_2, MusicName,MusicName_Len);
}
/*********
*
... ... @@ -671,10 +688,10 @@ static int Uart_DEV2_RecvDeal_CheckStatus_SoftwareVersion(char *getbuf)
JZSDK_LOG_INFO("当前的软件版本号为:%2x, %2x, %2x, %2x",majorVersion, minorVersion, modifyVersion, debugVersion);
//回复操作成功
//JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
//JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
//2、发送版本号
JZsdk_Uart_SendDeal_Reply_SoftVersion(UART_DEV_1, majorVersion, minorVersion, modifyVersion, debugVersion);
JZsdk_Uart_SendDeal_Reply_SoftVersion(UART_DEV_2, majorVersion, minorVersion, modifyVersion, debugVersion);
}
/*********
*
... ... @@ -698,10 +715,10 @@ static int Uart_DEV2_RecvDeal_CheckStatus_LoopPlay(char *getbuf)
}
//回复操作成功
//JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
//JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
//2、发送循环状态
JZsdk_Uart_SendDeal_Reply_LoopPlayStatus(UART_DEV_1 ,LoopStatus);
JZsdk_Uart_SendDeal_Reply_LoopPlayStatus(UART_DEV_2 ,LoopStatus);
}
/*********
*
... ... @@ -725,10 +742,10 @@ static int Uart_DEV2_RecvDeal_CheckStatus_TTS_tone(char *getbuf)
}
//回复操作成功
//JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
//JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
//2、发送音色
JZsdk_Uart_SendDeal_Reply_TTS_tone(UART_DEV_1 ,TTS_tone);
JZsdk_Uart_SendDeal_Reply_TTS_tone(UART_DEV_2 ,TTS_tone);
}
/*********
... ... @@ -753,10 +770,10 @@ static int Uart_DEV2_RecvDeal_CheckStatus_TTS_speed(char *getbuf)
}
//回复操作成功
//JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
//JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
//2、发送语速
JZsdk_Uart_SendDeal_Reply_TTS_speed(UART_DEV_1 ,TTS_speed);
JZsdk_Uart_SendDeal_Reply_TTS_speed(UART_DEV_2 ,TTS_speed);
}
... ... @@ -784,10 +801,10 @@ static int Uart_DEV2_RecvDeal_PlayLoop(char *getbuf)
mode = JZ_FLAGCODE_OFF;
}
JZsdk_Uart_audio_PlayLoop(UART_DEV_1, mode);
JZsdk_Uart_audio_PlayLoop(UART_DEV_2, mode);
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
... ... @@ -822,7 +839,7 @@ static int Uart_DEV2_RecvDeal_Delete_Audio(char *getbuf)
JZsdk_Uart_Flush_MusicList();
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
/*********
*
... ... @@ -855,7 +872,7 @@ static int Uart_DEV2_RecvDeal_Delete_VoiceRecord(char *getbuf)
JZsdk_Uart_Flush_MusicList();
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
/*********
*
... ... @@ -882,16 +899,16 @@ static int Uart_DEV2_RecvDeal_TTS_SetTone(char *getbuf)
int tone = (int)getbuf[9];
//2、设置音色
T_JZsdkReturnCode ret = JZsdk_Uart_TTS_SetTone(UART_DEV_1, tone);
T_JZsdkReturnCode ret = JZsdk_Uart_TTS_SetTone(UART_DEV_2, tone);
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
else
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, FrameSequence);
}
}
/*********
... ... @@ -914,21 +931,21 @@ static int Uart_DEV2_RecvDeal_TTS_SetSpeed(char *getbuf)
JZSDK_LOG_INFO("语速超出范围\n");
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, FrameSequence);
return -1 ;
}
//2、设置语速
T_JZsdkReturnCode ret = JZsdk_Uart_TTS_SetSpeed(UART_DEV_1, speed);
T_JZsdkReturnCode ret = JZsdk_Uart_TTS_SetSpeed(UART_DEV_2, speed);
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
else
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, FrameSequence);
}
}
/*********
... ... @@ -950,7 +967,7 @@ static T_JZsdkReturnCode Uart_DEV2_RecvDeal_TTS_Trans_start(char *getbuf)
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, FrameSequence);
JZSDK_LOG_ERROR("tts开始传输失败");
return ret;
}
... ... @@ -965,7 +982,7 @@ static T_JZsdkReturnCode Uart_DEV2_RecvDeal_TTS_Trans_start(char *getbuf)
JZsdk_Uart_RecvDeal_Set_UART_DEV2_ReceiveMode(JZ_INSCODE_5AFRAME_TTS_TRANS_UNLIMIT_TRANSMISSION);
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
/*********
*
... ... @@ -1003,9 +1020,9 @@ static T_JZsdkReturnCode Uart_DEV2_RecvDeal_TTS_Trans_LimitTransmission(char *ge
//提取出数据
int DataLen = ((int)getdata[3] << 8 ) + (int)getdata[4] - 2 - 9;
if (DataLen > 128)
if (DataLen > 400)
{
JZSDK_LOG_ERROR("tts定长帧,单帧数据长度超出128上限");
JZSDK_LOG_ERROR("tts定长帧,单帧数据长度超出400上限");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
... ... @@ -1040,10 +1057,10 @@ static T_JZsdkReturnCode Uart_DEV2_RecvDeal_TTS_Trans_stop(char *getbuf)
JZSDK_LOG_INFO("未刷新文本,TTS播放%s",TTS_Recv_buffer);
//3、播放TTS
JZsdk_Uart_TTS_Play(UART_DEV_1, TTS_Recv_buffer, TTS_Recv_buffer_length);
JZsdk_Uart_TTS_Play(UART_DEV_2, TTS_Recv_buffer, TTS_Recv_buffer_length);
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
... ... @@ -1055,10 +1072,10 @@ static T_JZsdkReturnCode Uart_DEV2_RecvDeal_TTS_Trans_stop(char *getbuf)
JZsdk_Uart_RecvDeal_Set_UART_DEV2_ReceiveMode(JZ_INSCODE_5AFRAME_TTS_TRANS_STOP);
//3、播放TTS
JZsdk_Uart_TTS_Play(UART_DEV_1, TTS_Recv_buffer, TTS_Recv_buffer_length);
JZsdk_Uart_TTS_Play(UART_DEV_2, TTS_Recv_buffer, TTS_Recv_buffer_length);
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
... ... @@ -1078,7 +1095,7 @@ static T_JZsdkReturnCode Uart_DEV2_RecvDeal_OpusTrans_start(char *getbuf)
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, FrameSequence);
JZSDK_LOG_ERROR("打开opus传输失败");
return ret;
}
... ... @@ -1099,7 +1116,7 @@ static T_JZsdkReturnCode Uart_DEV2_RecvDeal_OpusTrans_start(char *getbuf)
JZSDK_LOG_INFO("已完成打开opus传输处理\n");
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
/*********
*
... ... @@ -1128,9 +1145,9 @@ static T_JZsdkReturnCode Uart_DEV2_RecvDeal_OpusTrans_LimitTransmission(char *ge
//提取出数据
int DataLen = ((int)getdata[3] << 8 ) + (int)getdata[4] - 2 - 9;
if (DataLen > 128)
if (DataLen > 400)
{
JZSDK_LOG_ERROR("传输得到的opus定长音频文件帧长度超出128上限");
JZSDK_LOG_ERROR("传输得到的opus定长音频文件帧长度超出400上限");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
... ... @@ -1154,7 +1171,7 @@ static int Uart_DEV2_RecvDeal_OpusTrans_stop(char *getbuf)
if (UART_DEV2_Receive_mode != JZ_INSCODE_5AFRAME_OPUS_TRAN_UNLIMIT_TRANSMISSION)
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, FrameSequence);
JZSDK_LOG_ERROR("关闭opus结束传输失败,opus结束传输未开始,无法关闭");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
... ... @@ -1167,7 +1184,7 @@ static int Uart_DEV2_RecvDeal_OpusTrans_stop(char *getbuf)
JZSDK_LOG_INFO("结束opus传输处理\n");
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
/*********
*
... ... @@ -1185,15 +1202,15 @@ static int Uart_DEV2_RecvDeal_OpusPlay(char *getbuf)
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, FrameSequence);
JZSDK_LOG_ERROR("opus播放失败,存在传输模式打开中");
return ret;
}
JZsdk_Uart_Opus_PlayFixedFile(UART_DEV_1);
JZsdk_Uart_Opus_PlayFixedFile(UART_DEV_2);
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
... ... @@ -1214,7 +1231,7 @@ static T_JZsdkReturnCode Uart_DEV2_RecvDeal_Opus_RealTimeVoice_start(char *getbu
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, FrameSequence);
JZSDK_LOG_ERROR("开启opus实时喊话失败");
return ret;
}
... ... @@ -1239,7 +1256,7 @@ static T_JZsdkReturnCode Uart_DEV2_RecvDeal_Opus_RealTimeVoice_start(char *getbu
JZsdk_Uart_RealTimeVoiceStart(Rate);
//4、通知成功打开语音发送模式
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
/*********
... ... @@ -1252,7 +1269,6 @@ static int Uart_DEV2_RecvDeal_Opus_RealTimeVoice_UnlimitTransmission(char *getda
{
JZSDK_LOG_INFO("opus语音传输中\n");
JZsdk_Uart_RealTimeVoiceTrans(getdata, len);
}
/*********
... ... @@ -1269,9 +1285,9 @@ static T_JZsdkReturnCode Uart_DEV2_RecvDeal_Opus_RealTimeVoice_LimitTransmission
//提取出数据
int DataLen = ((int)getdata[3] << 8 ) + (int)getdata[4] - 2 - 9;
if (DataLen > 80)
if (DataLen > 400)
{
JZSDK_LOG_ERROR("opus实时语音定长传输帧数据长度超出80上限");
JZSDK_LOG_ERROR("opus实时语音定长传输帧数据长度超出400上限");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
... ... @@ -1295,7 +1311,7 @@ static int Uart_DEV2_RecvDeal_Opus_RealTimeVoice_stop(char *getbuf)
if (UART_DEV2_Receive_mode != JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_UNLIMIT_TRANSMISSION)
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, FrameSequence);
JZSDK_LOG_ERROR("关闭opus实时语音发送功能失败,opus实时语音发送功能未开始,无法关闭");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
... ... @@ -1307,7 +1323,7 @@ static int Uart_DEV2_RecvDeal_Opus_RealTimeVoice_stop(char *getbuf)
JZsdk_Uart_RealTimeVoiceClose();
//3、通知成功关闭语音发送模式
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
... ... @@ -1349,22 +1365,22 @@ static int Uart_DEV2_RecvDeal_Gimbal_PitchControl(char *getbuf)
{
JZSDK_LOG_INFO("云台输入角度符号错误,无法正常控制");
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, FrameSequence);
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
JZSDK_LOG_INFO("处理得到的角度是%d",Gimbal_angle);
T_JZsdkReturnCode ret = JZsdk_Uart_Gimbal_PitchControl(UART_DEV_1, Gimbal_angle);
T_JZsdkReturnCode ret = JZsdk_Uart_Gimbal_PitchControl(UART_DEV_2, Gimbal_angle);
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
else
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, FrameSequence);
}
}
... ... @@ -1399,13 +1415,13 @@ static int Uart_DEV2_RecvDeal_Gimbal_PitchFineTuningControl(char *getbuf)
{
JZSDK_LOG_INFO("云台俯仰微调角度符号错误,无法正常控制");
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, FrameSequence);
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
JZSDK_LOG_INFO("处理得到云台俯仰微调角度是%d",Gimbal_angle);
JZsdk_Uart_Gimbal_PitchFineTuningControl(UART_DEV_1, FrameSequence ,Gimbal_angle);
JZsdk_Uart_Gimbal_PitchFineTuningControl(UART_DEV_2, FrameSequence ,Gimbal_angle);
}
... ... @@ -1431,16 +1447,16 @@ static int Uart_DEV2_RecvDeal_SearchLight_SetFrequency(char *getbuf)
//1、通过数据帧2,获取爆闪频率
int Frequency = getbuf[10];
T_JZsdkReturnCode ret = JZsdk_Uart_Lighting_SetSearchLightFrequency(UART_DEV_1, Frequency);
T_JZsdkReturnCode ret = JZsdk_Uart_Lighting_SetSearchLightFrequency(UART_DEV_2, Frequency);
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
else
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, FrameSequence);
}
}
... ... @@ -1458,16 +1474,16 @@ static int Uart_DEV2_RecvDeal_SearchLight_Control(char *getbuf)
//1、通过数据帧2,获取灯光控制模式
int value = getbuf[10];
T_JZsdkReturnCode ret = JZsdk_Uart_SearchLight_Control(UART_DEV_1, value);
T_JZsdkReturnCode ret = JZsdk_Uart_SearchLight_Control(UART_DEV_2, value);
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
else
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, FrameSequence);
}
}
... ... @@ -1486,16 +1502,16 @@ static int Uart_DEV2_RecvDeal_SearchLight_Lumen(char *getbuf)
int LeftLumen = getbuf[9]; //左灯亮度
int RightLumen = getbuf[10]; //右灯亮度
T_JZsdkReturnCode ret = JZsdk_Uart_SearchLight_Lumen(UART_DEV_1, LeftLumen, RightLumen);
T_JZsdkReturnCode ret = JZsdk_Uart_SearchLight_Lumen(UART_DEV_2, LeftLumen, RightLumen);
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
else
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, FrameSequence);
}
}
... ... @@ -1511,7 +1527,7 @@ static int Uart_DEV2_RecvDeal_CheckStatus_SearchLightLightAttribute(char *getbuf
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
//2、查询灯光属性
T_JZsdkReturnCode ret = JZsdk_Uart_CheckStatus_SearchLightLightAttribute(UART_DEV_1, FrameSequence);
T_JZsdkReturnCode ret = JZsdk_Uart_CheckStatus_SearchLightLightAttribute(UART_DEV_2, FrameSequence);
}
... ... @@ -1527,7 +1543,7 @@ static int Uart_DEV2_RecvDeal_CheckStatus_SearchLightTemperture(char *getbuf)
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
//2、查询探照灯温度
T_JZsdkReturnCode ret = JZsdk_Uart_CheckStatus_SearchLightTemperture(UART_DEV_1, FrameSequence);
T_JZsdkReturnCode ret = JZsdk_Uart_CheckStatus_SearchLightTemperture(UART_DEV_2, FrameSequence);
}
/*********
... ... @@ -1544,16 +1560,16 @@ static int Uart_DEV2_RecvDeal_SearchLight_SubscriptionControl(char *getbuf)
//1、通过数据帧2,获取控制值
int value = getbuf[10];
T_JZsdkReturnCode ret = JZsdk_Uart_SearchLight_SubscriptionControl(UART_DEV_1, value);
T_JZsdkReturnCode ret = JZsdk_Uart_SearchLight_SubscriptionControl(UART_DEV_2, value);
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
else
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, FrameSequence);
}
}
... ... @@ -1568,7 +1584,7 @@ static int Uart_DEV2_RecvDeal_CheckStatus_SerialNumber(char *getbuf)
//获取帧的序列号
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
JZsdk_Uart_CheckStatus_SerialNumber(UART_DEV_1, FrameSequence);
JZsdk_Uart_CheckStatus_SerialNumber(UART_DEV_2, FrameSequence);
}
... ... @@ -1587,7 +1603,7 @@ static int Uart_DEV2_RecvDeal_OutPutPower_Control(char *getbuf)
int Value = getbuf[9];
//控制
JZsdk_Uart_OutPutPower_Control(UART_DEV_1, FrameSequence, Value);
JZsdk_Uart_OutPutPower_Control(UART_DEV_2, FrameSequence, Value);
}
/*********
... ... @@ -1603,7 +1619,7 @@ static int Uart_DEV2_RecvDeal_Checkstatus_OutPutPower(char *getbuf)
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
//获取本地数值
JZsdk_Uart_Checkstatus_OutPutPower(UART_DEV_1, FrameSequence);
JZsdk_Uart_Checkstatus_OutPutPower(UART_DEV_2, FrameSequence);
}
/*******************************************************************************************************************************
... ... @@ -1626,16 +1642,16 @@ static int Uart_DEV2_RecvDeal_WarningLight_ModeControl(char *getbuf)
int value1 = getbuf[9];
int value2 = getbuf[10];
T_JZsdkReturnCode ret = JZsdk_Uart_WarningLight_ModeControl(UART_DEV_1, value1, value2);
T_JZsdkReturnCode ret = JZsdk_Uart_WarningLight_ModeControl(UART_DEV_2, value1, value2);
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
else
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, FrameSequence);
}
}
... ... @@ -1654,16 +1670,16 @@ static int Uart_DEV2_RecvDeal_WarningLight_SetColor(char *getbuf)
int value1 = getbuf[9];
int value2 = getbuf[10];
T_JZsdkReturnCode ret = JZsdk_Uart_WarningLight_SetColor(UART_DEV_1, value1, value2);
T_JZsdkReturnCode ret = JZsdk_Uart_WarningLight_SetColor(UART_DEV_2, value1, value2);
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
else
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, FrameSequence);
}
}
... ... @@ -1679,7 +1695,7 @@ static int Uart_DEV2_RecvDeal_CheckStatus_WarningLightStatus(char *getbuf)
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
//2、查询灯光属性
T_JZsdkReturnCode ret = JZsdk_Uart_CheckStatus_WarningLightStatus(UART_DEV_1, FrameSequence);
T_JZsdkReturnCode ret = JZsdk_Uart_CheckStatus_WarningLightStatus(UART_DEV_2, FrameSequence);
}
... ... @@ -1695,7 +1711,7 @@ static int Uart_DEV2_RecvDeal_CheckStatus_WarningLightColor(char *getbuf)
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
//2、查询灯光属性
T_JZsdkReturnCode ret = JZsdk_Uart_CheckStatus_WarningLightColor(UART_DEV_1, FrameSequence);
T_JZsdkReturnCode ret = JZsdk_Uart_CheckStatus_WarningLightColor(UART_DEV_2, FrameSequence);
}
/********************************************************************************************************
... ... @@ -1737,7 +1753,7 @@ static int Uart_DEV2_RecvDeal_ObtainSearchLight_Frequency(char *getbuf)
int value = getbuf[10];
//2、发送到本地处理
JZsdl_Uart_ObtainSearchLight_Frequency(UART_DEV_1, value);
JZsdl_Uart_ObtainSearchLight_Frequency(UART_DEV_2, value);
}
/*********
... ... @@ -1755,7 +1771,7 @@ static int Uart_DEV2_RecvDeal_ObtainSearchLight_Mode(char *getbuf)
int value = getbuf[10];
//2、发送到本地处理
JZsdl_Uart_ObtainSearchLight_Mode(UART_DEV_1, value);
JZsdl_Uart_ObtainSearchLight_Mode(UART_DEV_2, value);
}
/*********
... ... @@ -1774,7 +1790,7 @@ static int Uart_DEV2_RecvDeal_ObtainSearchLight_Lumen(char *getbuf)
int value2 = getbuf[10];
//2、发送到本地处理
JZsdl_Uart_ObtainSearchLight_Lumen(UART_DEV_1, value1, value2);
JZsdl_Uart_ObtainSearchLight_Lumen(UART_DEV_2, value1, value2);
}
/*********
... ... @@ -1793,7 +1809,7 @@ static int Uart_DEV2_RecvDeal_ObtainSearchLight_Temperature(char *getbuf)
int value2 = getbuf[10];
//2、发送到本地处理
JZsdl_Uart_ObtainSearchLight_Temperature(UART_DEV_1, value1, value2);
JZsdl_Uart_ObtainSearchLight_Temperature(UART_DEV_2, value1, value2);
}
/*********
... ... @@ -1824,7 +1840,7 @@ static int Uart_DEV2_RecvDeal_ObtainGimbal_Pitch(char *getbuf)
}
//2、发送到本地处理
JZsdl_Uart_RecvDeal_ObtainGimbal_Pitch(UART_DEV_1, Gimbal_angle);
JZsdl_Uart_RecvDeal_ObtainGimbal_Pitch(UART_DEV_2, Gimbal_angle);
}
/*********
... ... @@ -1855,7 +1871,7 @@ static int Uart_DEV2_RecvDeal_ObtainGimbal_Yaw(char *getbuf)
}
//2、发送到本地处理
JZsdl_Uart_RecvDeal_ObtainGimbal_Yaw(UART_DEV_1, Gimbal_angle);
JZsdl_Uart_RecvDeal_ObtainGimbal_Yaw(UART_DEV_2, Gimbal_angle);
}
/*********
... ... @@ -1884,7 +1900,7 @@ static int Uart_DEV2_RecvDeal_ObtainGimbalPitchFineTuning(char *getbuf)
pitch = -pitch;
}
JZsdl_Uart_ObtainGimbalPitchFineTuning(UART_DEV_1, FrameSequence, pitch);
JZsdl_Uart_ObtainGimbalPitchFineTuning(UART_DEV_2, FrameSequence, pitch);
}
/*********
... ... @@ -1903,7 +1919,7 @@ static int Uart_DEV2_RecvDeal_ObtainWaringlight_Status(char *getbuf)
int value2 = getbuf[10];
//2、发送到本地处理
JZsdl_Uart_RecvDeal_ObtainWaringlight_Status(UART_DEV_1, value1, value2);
JZsdl_Uart_RecvDeal_ObtainWaringlight_Status(UART_DEV_2, value1, value2);
}
/*********
... ... @@ -1922,7 +1938,7 @@ static int Uart_DEV2_RecvDeal_ObtainWaringlight_Color(char *getbuf)
int value2 = getbuf[10];
//2、发送到本地处理
JZsdl_Uart_RecvDeal_ObtainWaringlight_Color(UART_DEV_1, value1, value2);
JZsdl_Uart_RecvDeal_ObtainWaringlight_Color(UART_DEV_2, value1, value2);
}
/*********
... ... @@ -1977,7 +1993,7 @@ static int Uart_DEV2_RecvDeal_QuerySecondaryDeviceName(char *getbuf)
int SecondaryName = JZsdk_Uart_GetSecondaryDeviceName();
//3、回复当前从设备名
JZsdk_Uart_SendDeal_Reply_SecondaryDeviceName(UART_DEV_1 ,SecondaryName, FrameSequence);
JZsdk_Uart_SendDeal_Reply_SecondaryDeviceName(UART_DEV_2 ,SecondaryName, FrameSequence);
}
/*******************************************************************************************************************************
... ... @@ -1999,16 +2015,16 @@ static int Uart_DEV2_RecvDeal_SetGimbalRange(char *getbuf)
//1、通过数据帧2,获取设置的大小值
int value = getbuf[10] ;
T_JZsdkReturnCode ret = JZsdk_Uart_SetGimbalRange(UART_DEV_1, value);
T_JZsdkReturnCode ret = JZsdk_Uart_SetGimbalRange(UART_DEV_2, value);
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
else
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, FrameSequence);
}
}
... ... @@ -2028,7 +2044,7 @@ static int Uart_DEV2_RecvDeal_GimbalLinkageControl(char *getbuf)
int value = getbuf[10] ;
//2、设置
JZsdk_Uart_GimbalLinkageControl(UART_DEV_1, FrameSequence, value);
JZsdk_Uart_GimbalLinkageControl(UART_DEV_2, FrameSequence, value);
}
... ... @@ -2045,7 +2061,7 @@ static int Uart_DEV2_RecvDeal_Checkstatus_GimbalLinkage(char *getbuf)
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
//查询是否开启云台联动
JZsdk_Uart_Checkstatus_GimbalLinkage(UART_DEV_1, FrameSequence);
JZsdk_Uart_Checkstatus_GimbalLinkage(UART_DEV_2, FrameSequence);
}
static int Uart_DEV2_RecvDeal_UartBitrateChange(char *getbuf)
... ... @@ -2086,7 +2102,7 @@ static int Uart_DEV2_RecvDeal_UartBitrateChange(char *getbuf)
break;
}
JZsdk_Uart_BitRateChange(UART_DEV_1, BitRate);
JZsdk_Uart_BitRateChange(UART_DEV_2, BitRate);
}
/********************************************************************************************************
... ... @@ -2125,12 +2141,12 @@ static int Uart_DEV2_RecvDeal_ObtainSecondaryDeviceName(char *getbuf)
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
//回复操作成功
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_DEV_2, FrameSequence);
}
else
{
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, FrameSequence);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, FrameSequence);
}
}
... ... @@ -2154,7 +2170,7 @@ static int Uart_DEV2_RecvDeal_ObtainGimbalLinkage(char *getbuf)
int value1 = getbuf[10];
//2、保存
JZsdk_Uart_ObtainGimbalLinkage(UART_DEV_1,FrameSequence,value1);
JZsdk_Uart_ObtainGimbalLinkage(UART_DEV_2,FrameSequence,value1);
}
... ... @@ -2184,7 +2200,7 @@ static int Uart_DEV2_RecvDeal_FrameErrorReply(char *getbuf)
JZSDK_LOG_ERROR("帧指令错误:帧错误或者是帧无对应操作\n");
//无法正常获取帧的序列号
//回复操作失败
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_1, 0x00);
JZsdk_Uart_SendDeal_Reply_Failure(UART_DEV_2, 0x00);
}
... ... @@ -2224,7 +2240,7 @@ static int Uart_DEV2_RecvDeal_OperationFailed(char *getbuf)
*********************************************************************************************************/
int Uart_DEV2_RecvDeal_RecvDeal(int Receive_mode, unsigned char *getdata, int len)
{
JZSDK_LOG_INFO("串口设备4g,接受到的模式为:%x",Receive_mode);
JZSDK_LOG_INFO("串口设备2号,接受到的模式为:%x",Receive_mode);
switch (Receive_mode)
{
/*******************************************************************************************************************************
... ... @@ -2238,6 +2254,12 @@ int Uart_DEV2_RecvDeal_RecvDeal(int Receive_mode, unsigned char *getdata, int le
return 0;
break;
//电源状态设置
case JZ_INSCODE_5AFRAME_FRAME_POWER_STATUS:
Uart_DEV2_RecvDeal_PowerStatus(getdata);
return 0;
break;
//开启语音
case JZ_INSCODE_5AFRAME_REALTIMEMP2_START:
Uart_DEV2_RecvDeal_RealTimeMP2_start(getdata);
... ... @@ -2784,9 +2806,11 @@ int JZsdk_Uart_RecvDeal_CharmDeal_Uart_DEV2(unsigned char *getbuf, int len)
{
Uart_DEV2_RecvDeal_RecvDeal(UART_DEV2_Receive_mode, getbuf, len);
}
//否则直接丢弃
return -1;
else
{
//否则直接丢弃
Uart_DEV2_RecvDeal_RecvDeal(JZ_ERROR_SYSTEM_FRAME_ERROR, getbuf, len);
}
}
/*******************
... ... @@ -2797,7 +2821,7 @@ int JZsdk_Uart_RecvDeal_CharmDeal_Uart_DEV2(unsigned char *getbuf, int len)
* ****************/
int JZsdk_Uart_RecvDeal_Set_UART_DEV2_ReceiveMode(int value)
{
JZSDK_LOG_INFO("串口设备4g,二次修改接收模式%x\n",value);
JZSDK_LOG_INFO("串口设备2号,二次修改接收模式%x\n",value);
UART_DEV2_Receive_mode = value;
return 0;
}
... ...
... ... @@ -8,13 +8,25 @@
#include "Jzsdk_Base/JZsdk_FrameComparsion/JZsdk_FrameComparsion.h"
//发送任务
static int JZsdk_Uart_SendDeal_SendOreder(int UartPort ,char *sendbuf, int len)
int JZsdk_Uart_SendDeal_SendOreder(int UartPort ,char *sendbuf, int len)
{
JZsdk_Uart_UartSend(UartPort, sendbuf, len);
}
//发送主动连接帧
int JZsdk_Uart_SendDeal_ConnectFrame(int PortNum)
{
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_ASKFORCONNECT , sendbuf, &send_buf_len);
//2、发送帧
JZsdk_Uart_SendDeal_SendOreder(PortNum ,sendbuf, send_buf_len);
}
//发送连接帧
//回复连接帧
int JZsdk_Uart_SendDeal_Send_Connect(int Uartport ,int Version_flag)
{
char sendbuf[256];
... ... @@ -350,6 +362,28 @@ int JZsdk_Uart_SendDeal_Reply_TTS_speed(int Uartport ,int speed)
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
/*************
*
* 发送opus解码状态
*
* **************/
int JZsdk_Uart_SendDeal_OpusDecodeStatus(int Uartport,int value)
{
printf("发送opus解码状态帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_OPUS_DECODE_STATUS, sendbuf, &send_buf_len);
//2、写入数据
sendbuf[9] = value;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
/****************************************************************************************************************************************************
*
* 云台部分
... ... @@ -386,11 +420,14 @@ int JZsdk_Uart_SendDeal_Reply_GimbalPitchAngle(int Uartport ,int angle)
int JZsdk_Uart_SendDeal_Set_GimbalPitchAngle(int Uartport ,int angle)
{
printf("发送设置云台角度帧 %d\n",angle);
char sendbuf[256];
//char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_GIMBAL_PITCH_CONTROL, sendbuf, &send_buf_len);
//JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_GIMBAL_PITCH_CONTROL, sendbuf, &send_buf_len);
char sendbuf[14] = {0x5A ,0x5A ,0x77 ,0x00 ,0x0E ,0x00 ,0x00 ,0x64 ,0x51 ,0x00 ,0x00 ,0x00 ,0x00 ,0x23};
send_buf_len = 14;
//2、写入数据
if (angle < 0)
... ...
#include <stdio.h>
#include <string.h>
#include "JZsdk_Uart_UartDeal.h"
#include "Uart_Config.h"
#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
#include "Jzsdk_Base/JZsdk_FrameComparsion/JZsdk_FrameComparsion.h"
//发送任务
int JZsdk_Uart_SendDeal_SendOreder(int UartPort ,char *sendbuf, int len)
{
JZsdk_Uart_UartSend(UartPort, sendbuf, len);
}
//发送主动连接帧
int JZsdk_Uart_SendDeal_ConnectFrame(int PortNum)
{
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_ASKFORCONNECT , sendbuf, &send_buf_len);
//2、发送帧
JZsdk_Uart_SendDeal_SendOreder(PortNum ,sendbuf, send_buf_len);
}
//回复连接帧
int JZsdk_Uart_SendDeal_Send_Connect(int Uartport ,int Version_flag)
{
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_INITIATECONNECT , sendbuf, &send_buf_len);
//2、写入硬件码
sendbuf[9] = Version_flag;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//发送成功帧
int JZsdk_Uart_SendDeal_Reply_Sucesss(int Uartport ,int FrameSequence)
{
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_SUCESS , sendbuf, &send_buf_len);
//2、写入数据
sendbuf[6] = FrameSequence; //帧序列
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//发送失败帧
int JZsdk_Uart_SendDeal_Reply_Failure(int Uartport ,int FrameSequence)
{
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_DEFEAT , sendbuf, &send_buf_len);
//2、写入数据
sendbuf[6] = FrameSequence; //帧序列
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//发送当前从设备名
int JZsdk_Uart_SendDeal_Reply_SecondaryDeviceName(int Uartport , int device_name, int FrameSequence)
{
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_6BFRAME_CHECKSTATUS_SECONDARY_DEVICE_NAME , sendbuf, &send_buf_len);
//2、写入数据
sendbuf[6] = FrameSequence; //帧序列
sendbuf[10] = device_name;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//查询当前从设备名
int JZsdk_Uart_SendDeal_QuerySecondaryDeviceName(int Uartport ,int FrameSequence)
{
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_6AFRAME_CHECKSTATUS_SECONDARY_DEVICE_NAME , sendbuf, &send_buf_len);
//2、写入数据
sendbuf[6] = FrameSequence; //帧序列
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//发送当前设备序列号
int JZsdk_Uart_SendDeal_SerialNumber(int UartPort, int FrameSequence, char *SerialNumber)
{
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_CHECKSTATUS_SERIALNUMBER , sendbuf, &send_buf_len);
//2、写入数据
sendbuf[6] = FrameSequence; //帧序列
for (int i = 0; i < 14; i++)
{
sendbuf[9+i] = SerialNumber[i];
}
sendbuf[23] = 0x00;
sendbuf[24] = 0x23;
sendbuf[4] = 0x17;
send_buf_len = 25;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(UartPort ,sendbuf, send_buf_len);
}
//发送歌曲名字
int JZsdk_Uart_SendDeal_Reply_Musiclist(int Uartport ,char *music_name, int music_name_length)
{
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_MUSICLIST_TRANS , sendbuf, &send_buf_len);
//2、写入数据
memcpy(&sendbuf[9],music_name,music_name_length);
sendbuf[9+music_name_length]=0x00;
sendbuf[10+music_name_length]=0x23;
int len = send_buf_len -1 + music_name_length ;
sendbuf[3] = len >> 8;
sendbuf[4] = len & 0xff;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, len);
}
//发送歌曲列表开始帧
int JZsdk_Uart_SendDeal_Reply_Musiclist_start(int Uartport ,int num)
{
printf("发送列表开始帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_MUSICLIST_START , sendbuf, &send_buf_len);
//2、写入数据
sendbuf[9] = num;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//发送歌曲列表结束帧
int JZsdk_Uart_SendDeal_Reply_Musiclist_end(int Uartport)
{
printf("发送歌曲列表结束帧\n");
printf("发送歌曲列表结束帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_MUSICLIST_STOP , sendbuf, &send_buf_len);
//2、写入数据
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//发送播放状态结束帧
int JZsdk_Uart_SendDeal_Send_PlayStatus_end(int Uartport)
{
printf("发送播放状态结束帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_AUDIO_PLAYSTATUS_END , sendbuf, &send_buf_len);
//2、写入数据
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//发送播放状态帧
int JZsdk_Uart_SendDeal_Send_PlayStatus(int Uartport ,int num)
{
printf("向");
switch (Uartport)
{
case UART_4G:
printf("4G模块");
break;
case UART_DEV_1:
printf("串口1设备");
break;
case UART_DEV_2:
printf("串口2设备");
break;
default:
break;
}
printf("发送播放状态帧%x\n",num);
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_AUDIO_PLAYSTATUS , sendbuf, &send_buf_len);
//2、写入数据
sendbuf[9] = (char)num;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//回复当前播放的歌曲名字
int JZsdk_Uart_SendDeal_Reply_MusicName(int Uartport ,char *music_name, int music_name_len)
{
printf("发送当前歌曲名字帧");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_AUDIO_PLAYFILENAME , sendbuf, &send_buf_len);
//2、写入数据
memcpy(&sendbuf[9],music_name,music_name_len);
sendbuf[9+music_name_len]=0x00;
sendbuf[10+music_name_len]=0x23;
int len = send_buf_len -1 + music_name_len;
sendbuf[3] = len >> 8;
sendbuf[4] = len & 0xff;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, len);
}
//回复当前音量
int JZsdk_Uart_SendDeal_Reply_Volume(int Uartport ,int num)
{
printf("发送播放状态帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_VOLUME, sendbuf, &send_buf_len);
//2、写入数据
sendbuf[9] = (char)num;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//回复软件版本号
int JZsdk_Uart_SendDeal_Reply_SoftVersion(int Uartport ,char majorVersion, char minorVersion, char modifyVersion, char debugVersion)
{
printf("发送软件版本号帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_SORTWAREVERSION, sendbuf, &send_buf_len);
//2、写入数据
sendbuf[9] = majorVersion;
sendbuf[10] = minorVersion;
sendbuf[11] = modifyVersion;
sendbuf[12] = debugVersion;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//发送循环状态
int JZsdk_Uart_SendDeal_Reply_LoopPlayStatus(int Uartport ,int status)
{
printf("发送循环状态帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_AUDIO_PLAYLOOPSTATUS, sendbuf, &send_buf_len);
//2、写入数据
sendbuf[9] = status;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//发送音色
int JZsdk_Uart_SendDeal_Reply_TTS_tone(int Uartport ,int tone)
{
printf("发送音色帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_TTS_TONE, sendbuf, &send_buf_len);
//2、写入数据
sendbuf[9] = tone;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//发送语速
int JZsdk_Uart_SendDeal_Reply_TTS_speed(int Uartport ,int speed)
{
printf("发送音色帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_TTS_SPEED, sendbuf, &send_buf_len);
//2、写入数据
sendbuf[9] = speed;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
/*************
*
* 发送opus解码状态
*
* **************/
int JZsdk_Uart_SendDeal_OpusDecodeStatus(int Uartport,int value)
{
printf("发送opus解码状态帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_OPUS_DECODE_STATUS, sendbuf, &send_buf_len);
//2、写入数据
sendbuf[9] = value;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
/****************************************************************************************************************************************************
*
* 云台部分
*
****************************************************************************************************************************************************/
//回复当前云台角度
int JZsdk_Uart_SendDeal_Reply_GimbalPitchAngle(int Uartport ,int angle)
{
printf("发送当前云台角度帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_GIMBAL_PITCH, sendbuf, &send_buf_len);
//2、写入数据
char signal = 0x00;
if (angle < 0)
{
signal = 0xff;
angle = -angle;
}
sendbuf[9] = (char)signal;
sendbuf[10] = (char)(angle >> 8);
sendbuf[11] = (char)(angle & 255);
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//设置当前云台角度
int JZsdk_Uart_SendDeal_Set_GimbalPitchAngle(int Uartport ,int angle)
{
printf("发送设置云台角度帧 %d\n",angle);
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_GIMBAL_PITCH_CONTROL, sendbuf, &send_buf_len);
//2、写入数据
if (angle < 0)
{
angle = -angle;
sendbuf[9] = 0xff;
}
else
{
sendbuf[9] = 0x00;
}
sendbuf[10] = ((angle>>8) & 0xff);
sendbuf[11] = (angle & 0xff);
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//查询云台角度
int JZsdk_Uart_SendDeal_CheckStatus_GimbalAngle(int Uartport ,int FrameSequence)
{
printf("发送查询云台角度帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_CHECKSTATUS_GIMBAL, sendbuf, &send_buf_len);
//2、写入帧序列
sendbuf[6] = FrameSequence;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//微调云台pitch
int JZsdk_Uart_SendDeal_Set_GimbalFineTuningPitch(int Uartport, int PitchFineTuning)
{
printf("发送微调云台pitch帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_GIMBAL_PITCH_FINETUNING_CONTROL, sendbuf, &send_buf_len);
//2、写入数据
if (PitchFineTuning < 0)
{
PitchFineTuning = -PitchFineTuning;
sendbuf[9] = 0xff;
}
else
{
sendbuf[9] = 0x00;
}
sendbuf[10] = ((PitchFineTuning>>8) & 0xff);
sendbuf[11] = (PitchFineTuning & 0xff);
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//查询云台角度微调值
int JZsdk_Uart_SendDeal_CheckStatus_GimbalFineTuningPitch(int Uartport, int FrameSequence)
{
printf("发送查询云台角度微调值帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_CHECKSTATUS_GIMBAL_FINETUNING, sendbuf, &send_buf_len);
//2、写入数据
sendbuf[6] = FrameSequence; //帧序列
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//回复云台pitch微调值
int JZsdk_Uart_SendDeal_Reply_GimbalFineTuningPitch(int Uartport, int FrameSequence, int FineTunigPitch)
{
printf("发送云台pitch微调值\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_GIMBAL_PITCH_FINETUNING, sendbuf, &send_buf_len);
//2、写入数据
if (FineTunigPitch < 0)
{
FineTunigPitch = -FineTunigPitch;
sendbuf[9] = 0xff;
}
else
{
sendbuf[9] = 0x00;
}
sendbuf[10] = ((FineTunigPitch>>8) & 0xff);
sendbuf[11] = (FineTunigPitch & 0xff);
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//设置云台联动
int JZsdk_Uart_SendDeal_Set_GimbalLinkageControl(int Uartport,int FrameSequence, int value)
{
printf("发送设置云台联动帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_6AFRAME_GIMBAL_LINKAGE_CONTROL, sendbuf, &send_buf_len);
//2、写入数据
sendbuf[6] = FrameSequence; //帧序列
sendbuf[10] = value;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//查询云台联动值
int JZsdk_Uart_SendDeal_CheckStatus_GimbalLinkage(int Uartport,int FrameSequence)
{
printf("发送查询云台联动值帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_6AFRAME_CHECKSTATUS_GIMBAL_LINKAGE, sendbuf, &send_buf_len);
//2、写入数据
sendbuf[6] = FrameSequence; //帧序列
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//发送云台联动值
int JZsdk_Uart_SendDeal_GimbalLinkageControl(int Uartport,int FrameSequence,int value)
{
printf("发送云台联动值帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_6BFRAME_CHECKSTATUS_GIMBAL_LINKAGE, sendbuf, &send_buf_len);
//2、写入数据
sendbuf[6] = FrameSequence; //帧序列
sendbuf[10] = value;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//发送云台最大最小值帧
int JZsdk_Uart_SendDeal_SetGimbalRange(int Uartport,int FrameSequence,int value)
{
printf("发送云台最大最小值帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_6AFRAME_SET_GIMBAL_MAXMIN_RANGE, sendbuf, &send_buf_len);
//2、写入数据
sendbuf[6] = FrameSequence; //帧序列
sendbuf[10] = value;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
/****************************************************************************************************************************************************
*
* 探照灯部分
*
****************************************************************************************************************************************************/
//发送设置探照灯爆闪频率
int JZsdk_Uart_SendDeal_Set_SearchLightFrequency(int Uartport ,int Frequency)
{
printf("发送设置爆闪频率帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_SEARCHLIGHT_SET_FREQUENCY, sendbuf, &send_buf_len);
//2、写入数据
sendbuf[10] = Frequency;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//设置探照灯控制
int JZsdk_Uart_SendDeal_SearchLight_Control(int Uartport,int mode)
{
printf("发送探照灯控制\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_SEARCHLIGHT_CONTROL, sendbuf, &send_buf_len);
//2、写入数据
sendbuf[10] = mode;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//设置探照灯亮度
int JZsdk_Uart_SendDeal_SearchLight_SetLumen(int Uartport, int LeftLumen, int RightLumen)
{
printf("发送设置探照灯亮度\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_SEARCHLIGHT_SET_LUMEN, sendbuf, &send_buf_len);
//2、写入数据
sendbuf[9] = LeftLumen;
sendbuf[10] = RightLumen;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//发送
//查询探照灯频率
int JZsdk_Uart_SendDeal_Set_SearchLight_CheckStatus_Frequency(int Uartport)
{
printf("发送查询探照灯频率帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_CHECKSTATUS_SEARCHLIGHT_FREQUENCY, sendbuf, &send_buf_len);
//2、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//查询探照灯亮度
int JZsdk_Uart_SendDeal_Set_SearchLight_CheckStatus_Lumen(int Uartport)
{
printf("发送查询探照灯亮度帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_CHECKSTATUS_SEARCHLIGHT_LUMEN, sendbuf, &send_buf_len);
//2、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//查询探照灯模式
int JZsdk_Uart_SendDeal_Set_SearchLight_CheckStatus_Mode(int Uartport)
{
printf("发送查询探照灯模式帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_CHECKSTATUS_SEARCHLIGHT_MODE, sendbuf, &send_buf_len);
//2、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//查询探照灯属性
int JZsdk_Uart_SendDeal_CheckStatus_LightAttribute(int Uartport)
{
printf("发送查询探照灯属性帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_CHECKSTATUS_SEARCHLIGHT_LIGHTATTRIBUTE, sendbuf, &send_buf_len);
//2、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//查询探照灯温度
int JZsdk_Uart_SendDeal_CheckStatus_SearchLightTemperture(int Uartport)
{
printf("发送查询探照灯温度\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_CHECKSTATUS_SEARCHLIGHT_TEMPERATURE, sendbuf, &send_buf_len);
//2、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//开启消息订阅
int JZsdk_Uart_SendDeal_MessageSubcription_Control(int Uartport, int value)
{
printf("发送开启消息订阅%d\n",value);
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_SEARCHLIGHT_MESSAGE_SUBSCRIPTION_CONTROL, sendbuf, &send_buf_len);
//2、写入数据
sendbuf[10] = value;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
/****************************************************************************************************************************************************
*
* 警灯部分
*
****************************************************************************************************************************************************/
/*************
*
* 设置警灯状态
*
* **************/
int JZsdk_Uart_SendDeal_Set_WarningLight_Status(int Uartport,int status, int mode)
{
printf("发送设置警灯状态\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_WARNINGLIGHT_CONTROL, sendbuf, &send_buf_len);
//2、写入数据
sendbuf[9] = status;
sendbuf[10] = mode;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
/*************
*
* 设置警灯颜色
*
* **************/
int JZsdk_Uart_SendDeal_Set_WarningLight_Color(int Uartport,int color1, int color2)
{
printf("发送设置警灯颜色\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_WARNINGLIGHT_COLOUR, sendbuf, &send_buf_len);
//2、写入数据
sendbuf[9] = color1;
sendbuf[10] = color2;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//查询警灯状态
int JZsdk_Uart_SendDeal_CheckStatus_WarningLightStatus(int Uartport)
{
printf("发送查询警灯状态\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_CHECKSTATUS_WARNINGLIGHT_STATUS, sendbuf, &send_buf_len);
//2、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
//查询警灯颜色
int JZsdk_Uart_SendDeal_CheckStatus_WarningLightColor(int Uartport)
{
printf("发送查询警灯颜色\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5AFRAME_CHECKSTATUS_WARNINGLIGHT_COLOR, sendbuf, &send_buf_len);
//2、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
/****************************************************************************************************************************************************
*
* 5B类帧
*
****************************************************************************************************************************************************/
/*************
*
* 发送探照灯爆闪频率
*
* **************/
int JZsdk_Uart_SendDeal_SearchLight_Frequency(int Uartport, int Frequency)
{
printf("发送灯光频率帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_CHECKSTATUS_SEARCHLIGHT_FREQUENCY, sendbuf, &send_buf_len);
//2、写入数据
sendbuf[10] = Frequency;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
/*************
*
* 发送探照灯模式
*
* **************/
int JZsdk_Uart_SendDeal_SearchLight_Mode(int Uartport, int mode)
{
printf("发送探照灯模式帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_CHECKSTATUS_SEARCHLIGHT_MODE, sendbuf, &send_buf_len);
//2、写入数据
sendbuf[10] = mode;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
/*************
*
* 发送探照灯亮度
*
* **************/
int JZsdk_Uart_SendDeal_SearchLight_Lumen(int Uartport,int LeftLumen, int RightLumen)
{
printf("发送探照灯亮度帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_CHECKSTATUS_SEARCHLIGHT_LUMEN, sendbuf, &send_buf_len);
//2、写入数据
sendbuf[9] = LeftLumen;
sendbuf[10] = RightLumen;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
/*************
*
* 发送探照灯温度
*
* **************/
int JZsdk_Uart_SendDeal_SearchLight_Temperature(int Uartport, int LeftTemperature, int RightTemperature)
{
printf("发送探照灯温度帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_CHECKSTATUS_SEARCHLIGHT_TEMPERATURE, sendbuf, &send_buf_len);
//2、写入数据
sendbuf[9] = LeftTemperature;
sendbuf[10] = RightTemperature;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
/*************
*
* 发送警灯状态
*
* **************/
int JZsdk_Uart_SendDeal_WarningLight_Status(int Uartport, int status, int mode)
{
printf("发送警灯状态帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_CHECKSTATUS_WARNINGLIGHT_STATUS, sendbuf, &send_buf_len);
//2、写入数据
sendbuf[9] = status;
sendbuf[10] = mode;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len); }
/*************
*
* 发送警灯颜色
*
* **************/
int JZsdk_Uart_SendDeal_WarningLight_Color(int Uartport, int color1, int color2)
{
printf("发送警灯颜色帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_CHECKSTATUS_WARNINGLIGHT_COLOR, sendbuf, &send_buf_len);
//2、写入数据
sendbuf[9] = color1;
sendbuf[10] = color2;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
/*************
*
* 发送对外电源状态
*
* **************/
int JZsdk_Uart_SendDeal_OutputPowerStatus(int Uartport, int FrameSequence, int status)
{
printf("发送对外电源状态帧\n");
char sendbuf[256];
int send_buf_len;
//1、获取帧样板
JZsdk_GetFrameTemplate(JZ_INSCODE_5BFRAME_CHECKSTATUS_OUTPUTPOWER, sendbuf, &send_buf_len);
//2、写入数据
sendbuf[9] = status;
//3、发送帧
JZsdk_Uart_SendDeal_SendOreder(Uartport ,sendbuf, send_buf_len);
}
\ No newline at end of file
... ...
... ... @@ -22,6 +22,8 @@ extern "C" {
/* Exported types ------------------------------------------------------------*/
int JZsdk_Uart_SendDeal_Send_Connect(int Uartport ,int Version_flag);
int JZsdk_Uart_SendDeal_SendOreder(int UartPort ,char *sendbuf, int len);
int JZsdk_Uart_SendDeal_ConnectFrame(int PortNum);
int JZsdk_Uart_SendDeal_Reply_SecondaryDeviceName(int Uartport , int device_name, int FrameSequence);
int JZsdk_Uart_SendDeal_QuerySecondaryDeviceName(int Uartport ,int FrameSequence);
... ... @@ -37,6 +39,7 @@ int JZsdk_Uart_SendDeal_Send_PlayStatus_end(int Uartport);
int JZsdk_Uart_SendDeal_Send_PlayStatus(int Uartport ,int num);
int JZsdk_Uart_SendDeal_Reply_MusicName(int Uartport ,char *music_name, int music_name_len);
int JZsdk_Uart_SendDeal_Reply_Volume(int Uartport ,int num);
int JZsdk_Uart_SendDeal_OpusDecodeStatus(int Uartport,int value);
int JZsdk_Uart_SendDeal_Reply_GimbalPitchAngle(int Uartport ,int angle);
int JZsdk_Uart_SendDeal_Set_GimbalPitchAngle(int Uartport ,int angle);
... ...
... ... @@ -20,7 +20,8 @@ typedef struct
char Message[1024]; // 传递的字符串
int MessageLength; // 字符串的长度
int ResLen; //剩余长度
pthread_mutex_t mutex; // 互斥锁
pthread_mutex_t WriteMutex; // 互斥锁
pthread_mutex_t ReadMutex; // 互斥锁
pthread_cond_t cond; // 条件变量
} s_SerialArgs;
... ... @@ -86,7 +87,9 @@ int JZsdk_Uart_UartDeal_Receive(int Uart_fd, int Uart_Dev_name)
parameter->UartDevName = Uart_Dev_name;
parameter->MessageLength = 0;
memset(parameter->Message, 0, sizeof(parameter->Message));
pthread_mutex_init(&parameter->mutex, NULL);
pthread_mutex_init(&parameter->WriteMutex, NULL);
pthread_mutex_init(&parameter->ReadMutex, NULL);
pthread_cond_init(&parameter->cond, NULL);
// 创建串口数据接收线程
... ... @@ -124,7 +127,6 @@ static void *UartDeal_rece(void *arg)
s_SerialArgs *args = (s_SerialArgs *)arg;
struct timeval timeout; // 超时时间
fd_set fs_read;
static int ResidualLength = 0; // 未处理数据长度
int Uart_fd = args->UartFd;
... ... @@ -155,44 +157,71 @@ static void *UartDeal_rece(void *arg)
while (*TheadSwtch)
{
FD_ZERO(&fs_read);
FD_SET(Uart_fd,&fs_read);
FD_SET(Uart_fd, &fs_read);
timeout.tv_sec = 0; // 秒数设置为0
timeout.tv_usec = 100000; // 微秒数设置为100000(100毫秒)
// 检查fs_read套节字是否有数据
select(Uart_fd + 1, &fs_read, NULL, NULL, &timeout);
delayMs(3); // 加多了可能导致实时播放难恢复,以及声音间隔 3ms32字节 会向上约1个3ms opus一帧80字节
timeout.tv_sec = 0;
timeout.tv_usec = 100000; // 设置为可变的超时时间(100毫秒)
if (FD_ISSET(Uart_fd, &fs_read))
// 检查fs_read套接字是否有数据
int ret = select(Uart_fd + 1, &fs_read, NULL, NULL, &timeout);
if (ret == -1) {
// 发生错误
JZSDK_LOG_ERROR("串口select出错");
break;
} else if (ret == 0)
{
// 超时
continue;
}
// 如果有数据就加锁
pthread_mutex_lock(&args->mutex);
// 如果有数据就加锁
pthread_mutex_lock(&args->WriteMutex);
// 1、读取串口内容 ret 接收长度 getbuf 获取的字符
ResidualLength = args->MessageLength;
args->MessageLength = read(Uart_fd, &(args->Message[args->MessageLength]), (sizeof(args->Message) - ResidualLength)) + ResidualLength;
// 读取串口内容
int bytesRead = read(Uart_fd, &(args->Message[args->ResLen]), (sizeof(args->Message) - args->ResLen));
if (bytesRead > 0)
{
args->MessageLength = args->ResLen + bytesRead;
// JZSDK_LOG_INFO("从串口读取到,长度%d",(args->MessageLength-ResidualLength));
// data_len+=bytesRead;
// data_len2+=args->MessageLength;
// printf("当前接收长度%d bytesRead%d bmessage%d reslen%d\n",data_len,bytesRead,data_len2,args->ResLen);
// for (int i = 0; i < (args->MessageLength-ResidualLength); i++)
// {
// JZSDK_LOG_OUTPUTHEX("%s",&args->Message[i+ResidualLength]);
// }
args->ResLen = 0;
// 通知线程
pthread_cond_signal(&args->cond);
pthread_mutex_unlock(&args->mutex); // 解锁
// // JZSDK_LOG_INFO("从串口读取到,长度%d",(args->MessageLength-ResidualLength));
// // for (int i = 0; i < (args->MessageLength-ResidualLength); i++)
// // {
// // JZSDK_LOG_OUTPUTHEX("%s",&args->Message[i+ResidualLength]);
// // }
}
else if (bytesRead == 0)
{
// 串口关闭或者无数据可读
break;
}
else
{
// 读取错误发生
JZSDK_LOG_ERROR("Error reading from serial port");
break;
}
// 通知线程
//pthread_cond_signal(&args->cond);
pthread_mutex_unlock(&args->ReadMutex); // 解锁
// 添加适当延时,确保接收缓冲区完全填满
delayMs(3); // 加多了可能导致实时播放难恢复,以及声音间隔 3ms32字节 会向上约1个3ms opus一帧80字节
}
//注销相关
Recv_Thread = JZ_FLAGCODE_OFF;
// 通知线程
pthread_cond_signal(&args->cond);
pthread_mutex_unlock(&args->mutex); // 解锁
//pthread_cond_signal(&args->cond);
pthread_mutex_unlock(&args->WriteMutex); // 解锁
JZSDK_LOG_WARN("串口接收线程被关闭");
}
... ... @@ -225,22 +254,28 @@ static void *UartDeal_deal(void *arg)
Uart_DEV2_Switch = JZ_FLAGCODE_ON;
}
//int data_len = 0;
while (*TheadSwtch)
{
// 加锁
pthread_mutex_lock(&args->mutex);
pthread_mutex_lock(&args->ReadMutex);
// 等候接收线程的通知
pthread_cond_wait(&args->cond, &args->mutex);
//pthread_cond_wait(&args->cond, &args->mutex);
// data_len+=args->MessageLength;
// printf("当前处理长度%d\n",data_len);
if (args->MessageLength > 0)
{
//清除错误的多余半帧
//前面有帧的长度
if(args->ResLen != 0)
{
//第二轮开头是帧头,则清空前半段
//存在第一帧,同时第二轮的数据开头是帧头,则清空前半段第一
if ( (args->Message[args->ResLen ] == 0x5A)
&& (args->Message[args->ResLen + 1] == 0x5A)
&& (args->Message[args->ResLen + 2] == 0x77) )
... ... @@ -256,24 +291,37 @@ static void *UartDeal_deal(void *arg)
memset(&args->Message[temp_num], 0, (args->MessageLength - temp_num));
args->MessageLength = temp_num;
args->ResLen = 0;
JZSDK_LOG_ERROR("串口上一帧为不完全帧,舍弃该帧操作");
}
}
// 处理数据
ResidualLength = UartDeal_Recv_interface(args->UartFd, args->Message, args->MessageLength);
//如果还有剩余的长度
if (ResidualLength != 0)
{
memcpy(args->Message, &(args->Message[args->MessageLength - ResidualLength]), ResidualLength);
memset(&(args->Message[ResidualLength]), 0, (sizeof(args->Message) - ResidualLength));
args->MessageLength = 0;
args->ResLen = ResidualLength;
}
else
{
memset(args->Message, 0, sizeof(args->Message));
args->MessageLength = 0;
args->ResLen = 0;
}
memcpy(args->Message, &(args->Message[args->MessageLength - ResidualLength]), ResidualLength);
memset(&(args->Message[ResidualLength]), 0, (sizeof(args->Message) - ResidualLength));
args->MessageLength = ResidualLength;
args->ResLen = ResidualLength;
}
else
{
memset(args->Message, 0, sizeof(args->Message));
args->MessageLength = 0;
args->ResLen = 0;
}
pthread_mutex_unlock(&args->mutex); // 解锁
pthread_mutex_unlock(&args->WriteMutex); // 解锁
}
Deal_Thread = JZ_FLAGCODE_OFF;
... ... @@ -288,7 +336,7 @@ static void *UartDeal_deal(void *arg)
*/
static int UartDeal_Recv_Ouput(int Uart_fd, unsigned char *getbuf, int ReadLen)
{
//JZSDK_LOG_INFO("UartDeal_Recv_Ouput排出函数");
//JZSDK_LOG_INFO("UartDeal_Recv_Ouput排出函数%d",ReadLen);
if (Uart_fd == Uart_DEV1_fd)
{
... ... @@ -318,15 +366,15 @@ static int UartDeal_Recv_interface(int Uart_fd, unsigned char *getbuf, int getbu
{
if (Uart_fd == Uart_DEV1_fd)
{
JZSDK_LOG_INFO("串口-设备1号,接受到数据len: %d", getbufLen);
JZSDK_LOG_INFO("串口-设备1号,接受到数据+未处理数据的长度len: %d", getbufLen);
}
else if (Uart_fd == Uart_DEV2_fd)
{
JZSDK_LOG_INFO("串口-设备2号,接受到数据len: %d ", getbufLen);
JZSDK_LOG_INFO("串口-设备2号,接受到数据+未处理数据的长度len: %d", getbufLen);
}
else if (Uart_fd == Uart_4G_fd)
{
JZSDK_LOG_INFO("串口-设备4G,接受到数据len: %d ", getbufLen);
JZSDK_LOG_INFO("串口-设备4G,接受到数据+未处理数据的长度len: %d", getbufLen);
}
else
{
... ... @@ -350,89 +398,123 @@ static int UartDeal_Recv_interface(int Uart_fd, unsigned char *getbuf, int getbu
// 检索出帧数据
// 遍历数据找帧头,直到数据的倒数第4位,如果这里有帧,帧存在帧头3位+数据长度两位
for (HaveReadLen = 0; HaveReadLen < getbufLen - 4; HaveReadLen++)
//printf("遍历开始\n");
for (HaveReadLen = 0; HaveReadLen < (getbufLen - 4); )
{
// 1、如果找到 5A 5B 6A 6B 判断是否是帧
switch (getbuf[HaveReadLen])
{
case 0x5A:
if (getbuf[HaveReadLen + 1] == 0x5A || getbuf[HaveReadLen + 2] == 0x77)
if ( (getbuf[HaveReadLen + 1] == 0x5A) && (getbuf[HaveReadLen + 2] == 0x77))
{
//JZSDK_LOG_INFO("输入5A");
FrameFlag = 0x5A;
break;
}
else
{
FrameFlag = 0x00;
break;
}
break;
case 0x5B:
if (getbuf[HaveReadLen + 1] == 0x5B || getbuf[HaveReadLen + 2] == 0x77)
if ((getbuf[HaveReadLen + 1] == 0x5B) && (getbuf[HaveReadLen + 2] == 0x77))
{
//JZSDK_LOG_INFO("输入5B");
FrameFlag = 0x5B;
break;
}
else
{
FrameFlag = 0x00;
break;
}
break;
case 0x6A:
if (getbuf[HaveReadLen + 1] == 0x6A || getbuf[HaveReadLen + 2] == 0x77)
if ((getbuf[HaveReadLen + 1] == 0x6A) && (getbuf[HaveReadLen + 2] == 0x77))
{
//JZSDK_LOG_INFO("输入6A");
FrameFlag = 0x6A;
break;
}
else
{
FrameFlag = 0x00;
break;
}
break;
case 0x6B:
if (getbuf[HaveReadLen + 1] == 0x6B || getbuf[HaveReadLen + 2] == 0x77)
if ((getbuf[HaveReadLen + 1] == 0x6B) && (getbuf[HaveReadLen + 2] == 0x77))
{
//JZSDK_LOG_INFO("输入6B");
FrameFlag = 0x6B;
break;
}
else
{
FrameFlag = 0x00;
break;
}
break;
default:
FrameFlag = 0x00;
break;
}
// 2、如果没有帧头,直接continue
if (FrameFlag == 0)
{
if (HaveReadLen >= (getbufLen - 5))
{
//JZSDK_LOG_INFO("没有找到帧头");
}
HaveReadLen++;
continue;
}
// 3、如果有帧头,则先判断前面有没有多余的数据残留,并将其排出到处理线程
if ((HaveReadLen - HaveDealLen) > 0)
{
//JZSDK_LOG_INFO("多余处理");
//JZSDK_LOG_INFO("残余处理%d",(HaveReadLen - HaveDealLen));
UartDeal_Recv_Ouput(Uart_fd, &getbuf[HaveDealLen], (HaveReadLen - HaveDealLen));
HaveDealLen = HaveReadLen;
}
// 4、检查帧长度是否超过数组剩余内容
FrameLen = (getbuf[3] << 8) + getbuf[4];
FrameLen = (((int)getbuf[HaveReadLen+3]) << 8) + (int)getbuf[HaveReadLen+4];
if (FrameLen > (getbufLen - HaveReadLen))
{
JZSDK_LOG_INFO("当前帧长度位长度%d 超出剩余帧长度%d ",FrameLen,(getbufLen - HaveReadLen));
// 直接跳出for循环
break;
}
// 5、以上检查都没问题,则正常输出帧
//JZSDK_LOG_INFO("正常输出帧%d",FrameLen);
UartDeal_Recv_Ouput(Uart_fd, &getbuf[HaveReadLen], FrameLen);
HaveReadLen = HaveReadLen + FrameLen;
FrameLen = 0;
HaveReadLen = HaveReadLen + FrameLen;
HaveDealLen = HaveReadLen;
FrameFlag = 0;
//JZSDK_LOG_INFO("UartDeal_Recv_interface frame%d read%d deal%d get%d",FrameLen ,HaveReadLen ,HaveDealLen, getbufLen);
JZSDK_LOG_INFO("framelen%d read%d [read]:%x get%d",FrameLen ,HaveReadLen, getbuf[HaveReadLen], getbufLen);
FrameLen = 0;
FrameFlag = 0;
}
//JZSDK_LOG_INFO("UartDeal_Recv_Ouput%d %d",HaveDealLen, getbufLen);
//JZSDK_LOG_INFO("UartDeal_Recv_Ouput%d %d %d",HaveDealLen,HaveReadLen , getbufLen);
// 如果没有数据残留了
if (HaveDealLen >= getbufLen)
if (HaveDealLen >= getbufLen)
{
//printf("HaveReadLen:%d HaveDealLen%d getbufLen:%d\n",HaveReadLen,HaveDealLen,getbufLen);
return 0;
}
// 如果是有帧头的情况跳出的,说明是帧被切了,需要返回帧长度给接收线程
if (FrameFlag != 0)
if (FrameFlag != 0) //bu
{
// 1、判断帧的长度会不会不合理,帧的长度最大为文件名帧,其长度为9+2+400
if (FrameLen > (9 + 2 + 128))
if (FrameLen > (9 + 2 + 400))
{
// 将其排出不返回
UartDeal_Recv_Ouput(Uart_fd, &getbuf[HaveReadLen], (getbufLen - HaveReadLen));
... ... @@ -440,12 +522,15 @@ static int UartDeal_Recv_interface(int Uart_fd, unsigned char *getbuf, int getbu
return 0;
}
printf("切帧返回%d\n",(getbufLen - HaveDealLen));
// 2、如果合理,则返回剩余长度
return (getbufLen - HaveDealLen);
}
// 如果是没有帧头的情况下跳出的
// 1、先检查 未经检查最后 最后4 3位
//如果还有4 或者 3 位未处理
for (; HaveReadLen < getbufLen - 2; HaveReadLen++)
{
if ((getbuf[HaveReadLen] == 0x5A && getbuf[HaveReadLen + 1] == 0x5A && getbuf[HaveReadLen + 2] == 0x77) ||
... ... @@ -459,46 +544,58 @@ static int UartDeal_Recv_interface(int Uart_fd, unsigned char *getbuf, int getbu
HaveDealLen = HaveReadLen;
}
printf("检查最后3 4位%d\n",(getbufLen - HaveDealLen));
return (getbufLen - HaveDealLen);
}
}
// 2、检查最后两位
if ((getbuf[HaveReadLen] == 0x5A && getbuf[HaveReadLen + 1] == 0x5A) ||
// 如果还有两位未处理
for (; HaveReadLen < getbufLen - 1; HaveReadLen++)
{
if ((getbuf[HaveReadLen] == 0x5A && getbuf[HaveReadLen + 1] == 0x5A) ||
(getbuf[HaveReadLen] == 0x5B && getbuf[HaveReadLen + 1] == 0x5B) ||
(getbuf[HaveReadLen] == 0x6A && getbuf[HaveReadLen + 1] == 0x6A) ||
(getbuf[HaveReadLen] == 0x6B && getbuf[HaveReadLen + 1] == 0x6B))
{
if ((HaveReadLen - HaveDealLen) > 0)
{
UartDeal_Recv_Ouput(Uart_fd, &getbuf[HaveDealLen], (HaveReadLen - HaveDealLen));
HaveDealLen = HaveReadLen;
}
if ((HaveReadLen - HaveDealLen) > 0)
{
UartDeal_Recv_Ouput(Uart_fd, &getbuf[HaveDealLen], (HaveReadLen - HaveDealLen));
HaveDealLen = HaveReadLen;
}
return (getbufLen - HaveDealLen);
printf("检查最后两位%d\n",(getbufLen - HaveDealLen));
return (getbufLen - HaveDealLen);
}
}
HaveReadLen++;
// 1、检查最后一位
if (getbuf[HaveReadLen] == 0x5A ||
getbuf[HaveReadLen] == 0x5B ||
getbuf[HaveReadLen] == 0x6A ||
getbuf[HaveReadLen] == 0x6B)
// 2、检查最后一位
// 如果还有一位未处理
for (; HaveReadLen < getbufLen - 0; HaveReadLen++)
{
if ((HaveReadLen - HaveDealLen) > 0)
// 1、检查最后一位
if (getbuf[HaveReadLen] == 0x5A ||
getbuf[HaveReadLen] == 0x5B ||
getbuf[HaveReadLen] == 0x6A ||
getbuf[HaveReadLen] == 0x6B)
{
UartDeal_Recv_Ouput(Uart_fd, &getbuf[HaveDealLen], (HaveReadLen - HaveDealLen));
HaveDealLen = HaveReadLen;
}
if ((HaveReadLen - HaveDealLen) > 0)
{
UartDeal_Recv_Ouput(Uart_fd, &getbuf[HaveDealLen], (HaveReadLen - HaveDealLen));
HaveDealLen = HaveReadLen;
}
return (getbufLen - HaveDealLen);
printf("检查最后一位%d\n",(getbufLen - HaveDealLen));
return (getbufLen - HaveDealLen);
}
}
HaveReadLen++;
// 都检查完了,还是没有帧头在里面, 将剩余的所有数据排出
UartDeal_Recv_Ouput(Uart_fd, &getbuf[HaveDealLen], (HaveReadLen - HaveDealLen));
// printf("HaveReadLen:%d HaveDealLen%d getbufLen:%d\n",HaveReadLen,HaveDealLen,getbufLen);
printf("检查完毕,排出剩余数据HaveReadLen:%d HaveDealLen%d getbufLen:%d\n",HaveReadLen,HaveDealLen,getbufLen);
return 0;
}
... ...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
#include "../CameraParameter.h"
... ... @@ -23,8 +24,8 @@ extern int Camera_PushVideoInitFlag;
pthread_mutex_t FrameDealMutex;
static void FrameDeal_PsdkPushFrame(char* h264_data, uint32_t data_len, int AudLength)
//推流入口
static void CameraFeatures_PsdkPushFrame(char* h264_data, uint32_t data_len, int AudLength)
{
unsigned int FrameBufSize = 0;
... ... @@ -41,9 +42,10 @@ static void FrameDeal_PsdkPushFrame(char* h264_data, uint32_t data_len, int AudL
{
//printf("普通h264\n");
}
//放入到对应的传输函数
#if APP_VERSION == APP_PSDK
//放入到对应的传输函数
//大疆模式,往大疆入口推流
DJI_VideoDeal_Push_DJIH264Frame(h264_data, FrameBufSize);
#endif
... ... @@ -101,7 +103,7 @@ static void *JZsdk_CameraFrameDeal_thread(void *args)
//FrameDeal_ShootPhotoBurstDeal(FrameDealBuffer, FrameLength);
//推送一帧
FrameDeal_PsdkPushFrame(FrameDealBuffer, FrameLength, AudLength);
CameraFeatures_PsdkPushFrame(FrameDealBuffer, FrameLength, AudLength);
free(FrameDealBuffer);
}
... ... @@ -111,7 +113,7 @@ static void *JZsdk_CameraFrameDeal_thread(void *args)
pthread_exit(NULL);
}
int JZsdk_CameraFrameDeal_thread_Init()
T_JZsdkReturnCode CameraFeatures_FrameDeal_thread_Init()
{
pthread_mutex_init(&FrameDealMutex, NULL); // 创建互斥锁
... ... @@ -120,7 +122,7 @@ int JZsdk_CameraFrameDeal_thread_Init()
pthread_create(&FrameDeal_thread, NULL, JZsdk_CameraFrameDeal_thread, NULL);
}
int FrameDeal_FrameDealThread_UnlockFun()
T_JZsdkReturnCode CameraFeatures_FrameDealThread_UnlockFun()
{
//解锁帧处理线程
pthread_mutex_unlock(&FrameDealMutex);
... ...
... ... @@ -11,6 +11,7 @@
#define CAMERA_FEATURES_H
/* Includes ------------------------------------------------------------------*/
#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/
... ... @@ -21,8 +22,11 @@
/* Exported functions --------------------------------------------------------*/
T_JZsdkReturnCode V4L2_ShootPhotoDeal(char* h264_data, unsigned int data_len);
int FrameDeal_ShootPhoto_trans(int Count);
int V4L2_RecordVedioDeal(char *h264_data, int dataLen);
T_JZsdkReturnCode CameraFeatures_VideoRecord_SetMode(int mode);
T_JZsdkReturnCode CameraFeatures_FrameDealThread_UnlockFun();
T_JZsdkReturnCode CameraFeatures_FrameDeal_thread_Init();
// 单拍模式传递函数
T_JZsdkReturnCode FrameDeal_ShootPhoto_trans(int Count);
#endif
\ No newline at end of file
... ...
... ... @@ -3,61 +3,114 @@
#include "../CameraParameter.h"
#include "../V4L2/V4L2_Record.h"
#include "JZsdkLib.h"
#include "../VideoTranscode/VideoTranscode.h"
#include "../Camera_InAndOut.h"
FILE *FrameDeal_RecordVideo_fp = NULL;
static int FrameDeal_RecordVideo_mode = JZ_FLAGCODE_OFF;
extern int VideoTranscode_Flag ; //视频转码标志位,off为转码完毕,on为转码完成
extern int g_CameraStatus;
/*
录像部分
*/
// 录像函数
static void FrameDeal_RecordVideo(char* h264_data, uint32_t data_len)
{
fwrite(h264_data, data_len, 1, FrameDeal_RecordVideo_fp);
//JZSDK_LOG_INFO("写入一帧");
}
//录像模式传递函数
T_JZsdkReturnCode FrameDeal_RecordVideo_trans(int mode)
static T_JZsdkReturnCode FrameDeal_RecordVideo_trans(int mode)
{
JZSDK_LOG_INFO("录像传递函数被调用");
//如果传来一个开始录像的指令,且当前没有打开录像, 且没在进行转码
if( mode == JZ_FLAGCODE_ON && FrameDeal_RecordVideo_mode == JZ_FLAGCODE_OFF && VideoTranscode_Flag == JZ_FLAGCODE_OFF)
//如果传入的是录像开始
if (mode == JZ_FLAGCODE_ON)
{
FrameDeal_RecordVideo_fp = fopen("/root/sdcard/DCIM/Videos/temp.h264","wb");
if (FrameDeal_RecordVideo_fp == NULL)
//如果相机处于空闲状态
if (g_CameraStatus == CAMERA_IDLE)
{
//则为开启录像
FrameDeal_RecordVideo_fp = fopen("/root/sdcard/DCIM/Videos/temp.h264","wb");
if (FrameDeal_RecordVideo_fp == NULL)
{
JZSDK_LOG_ERROR("录像文件打开错误");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
g_CameraStatus = CAMERA_RECORD;
JZSDK_LOG_INFO("录像模式已开启");
}
//如果处于录像中
else if (g_CameraStatus == CAMERA_RECORD)
{
JZSDK_LOG_ERROR("录像文件打开错误");
JZSDK_LOG_ERROR("相机已经处于录像中,请勿重复打开录像功能");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
FrameDeal_RecordVideo_mode = JZ_FLAGCODE_ON;
JZSDK_LOG_INFO("录像文件已经打开");
}
else if(mode == JZ_FLAGCODE_OFF && FrameDeal_RecordVideo_mode == JZ_FLAGCODE_ON)
{
//关闭录像的文件
JZSDK_LOG_INFO("录像已保存");
fclose(FrameDeal_RecordVideo_fp);
//转码
//录像转码解锁函数
ffmpeg_H264_tanscodeto(2);
//关闭录像
FrameDeal_RecordVideo_mode = JZ_FLAGCODE_OFF;
//如果处于拍摄中
else if (g_CameraStatus == CAMERA_SHOOTPHOTO)
{
JZSDK_LOG_ERROR("相机已经处于单拍中,请勿重复打开录像功能");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
//如果处于拍摄中
else if (g_CameraStatus == CAMERA_BRUSTSHOORPHOTO)
{
JZSDK_LOG_ERROR("相机已经处于连拍中,请勿重复打开录像功能");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
//如果处于转码中
else if (g_CameraStatus == CAMERA_BRUSTSHOORPHOTO)
{
JZSDK_LOG_ERROR("相机已经处于转码中,请勿重复打开录像功能");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
}
//如果传入的是录像关闭
else if(mode == JZ_FLAGCODE_OFF)
{
//如果相机处于空闲状态
if (g_CameraStatus == CAMERA_IDLE)
{
JZSDK_LOG_ERROR("相机空闲中,无法关闭录像功能");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
//如果处于录像中
else if (g_CameraStatus == CAMERA_RECORD)
{
//关闭录像的文件
fclose(FrameDeal_RecordVideo_fp);
JZSDK_LOG_INFO("录像已保存");
//转码
//录像转码解锁函数
Video_TansCode_Trans(VIDEO_TRANSCODE, 0);
}
//如果处于拍摄中
else if (g_CameraStatus == CAMERA_SHOOTPHOTO)
{
JZSDK_LOG_ERROR("相机已经处于单拍中,无法关闭录像功能");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
//如果处于连拍中
else if (g_CameraStatus == CAMERA_BRUSTSHOORPHOTO)
{
JZSDK_LOG_ERROR("相机已经处于连拍中,无法关闭录像功能");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
//如果处于转码中
else if (g_CameraStatus == CAMERA_TRANSCODE)
{
JZSDK_LOG_ERROR("相机已经处于转码中,无法关闭录像功能");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
}
//传入的是其他参数
else
{
JZSDK_LOG_ERROR("错误的录像开关状态");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
... ... @@ -67,14 +120,26 @@ T_JZsdkReturnCode FrameDeal_RecordVideo_trans(int mode)
int V4L2_RecordVedioDeal(char *h264_data, int dataLen)
{
if(FrameDeal_RecordVideo_mode == JZ_FLAGCODE_OFF)
if(g_CameraStatus != CAMERA_RECORD)
{
return -1;
}
//如果录像模式被打开,存入数据进临时h264文件
//录像函数
FrameDeal_RecordVideo( h264_data, dataLen);
fwrite(h264_data, dataLen, 1, FrameDeal_RecordVideo_fp);
//JZSDK_LOG_INFO("录入一帧");
}
/**************
*
* 相机功能 录制功能传递函数
* 1开启录制 0关闭录制并进行转码
*
* ************/
T_JZsdkReturnCode CameraFeatures_VideoRecord_SetMode(int mode)
{
return FrameDeal_RecordVideo_trans(mode);
}
... ...