...
|
...
|
@@ -7,6 +7,7 @@ |
|
|
|
|
|
#include "JZsdk_Uart_Send/JZsdk_Uart_Send.h"
|
|
|
#include "JZsdk_Uart_Output.h"
|
|
|
#include "JZsdk_Uart_Input.h"
|
|
|
|
|
|
#include "version_choose.h"
|
|
|
|
...
|
...
|
@@ -15,7 +16,8 @@ int UART_4G_Receive_mode = 0; |
|
|
static char TTS_Recv_buffer[1009]; //TTS接收数据缓冲区 1000中文 + 3个字中文的防溢出区
|
|
|
static int TTS_Recv_buffer_length = 0;
|
|
|
|
|
|
int JZsdk_Uart_RecvDeal_Set_UART_4G_Receive_mode(int value);
|
|
|
int JZsdk_Uart_RecvDeal_Set_UART_4G_ReceiveMode(int value);
|
|
|
static T_JZsdkReturnCode JZsdk_Uart_RecvDeal_UART_4G_TransmodeDecide();
|
|
|
|
|
|
/********************************************************************************************************
|
|
|
********* ********|
|
...
|
...
|
@@ -39,7 +41,7 @@ int JZsdk_Uart_RecvDeal_Set_UART_4G_Receive_mode(int value); |
|
|
**********/
|
|
|
static int Uart_4G_RecvDeal_AskForConnect(char *getbuf)
|
|
|
{
|
|
|
JZSDK_LOG_INFO("串口设备4g,连接成功");
|
|
|
JZSDK_LOG_INFO("串口设备4G,连接成功");
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
...
|
...
|
@@ -50,7 +52,7 @@ static int Uart_4G_RecvDeal_AskForConnect(char *getbuf) |
|
|
JZsdk_Uart_SendDeal_Send_Connect(UART_4G, Device_name);
|
|
|
|
|
|
//1、将串口程序设置为连接模式
|
|
|
//JZsdk_Uart_SetMainWorkMode(JZ_FLAGCODE_ON);s
|
|
|
//JZsdk_Uart_SetMainWorkMode(JZ_FLAGCODE_ON);
|
|
|
}
|
|
|
|
|
|
/*******************************************************************************************************************************
|
...
|
...
|
@@ -65,7 +67,7 @@ static int Uart_4G_RecvDeal_AskForConnect(char *getbuf) |
|
|
*
|
|
|
*
|
|
|
**********/
|
|
|
static int Uart_4G_RecvDeal_RealTimeMP2_start(char *getbuf)
|
|
|
static T_JZsdkReturnCode Uart_4G_RecvDeal_RealTimeMP2_start(char *getbuf)
|
|
|
{
|
|
|
JZSDK_LOG_INFO("开启MP2实时喊话功能\n");
|
|
|
T_JZsdkReturnCode ret;
|
...
|
...
|
@@ -73,8 +75,18 @@ static int Uart_4G_RecvDeal_RealTimeMP2_start(char *getbuf) |
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
ret = JZsdk_Uart_RecvDeal_UART_4G_TransmodeDecide();
|
|
|
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
//回复操作失败
|
|
|
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
|
|
|
JZSDK_LOG_ERROR("开启MP2实时喊话功能失败\n");
|
|
|
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
//1、修改接收模式
|
|
|
JZsdk_Uart_RecvDeal_Set_UART_4G_Receive_mode(JZ_INSCODE_5AFRAME_REALTIMEMP2_TRANSMISSION);
|
|
|
JZsdk_Uart_RecvDeal_Set_UART_4G_ReceiveMode(JZ_INSCODE_5AFRAME_REALTIMEMP2_TRANSMISSION);
|
|
|
|
|
|
//2、获取码率倍率 默认8k
|
|
|
int RateMagnification = (int)getbuf[9];
|
...
|
...
|
@@ -124,7 +136,7 @@ static int Uart_4G_RecvDeal_RealTimeMP2_transmission(char *getdata, int len) |
|
|
*
|
|
|
*
|
|
|
**********/
|
|
|
static int Uart_4G_RecvDeal_RealTimeMP2_stop(char *getbuf)
|
|
|
static T_JZsdkReturnCode Uart_4G_RecvDeal_RealTimeMP2_stop(char *getbuf)
|
|
|
{
|
|
|
JZSDK_LOG_INFO("关闭MP2实时喊话功能\n");
|
|
|
T_JZsdkReturnCode ret;
|
...
|
...
|
@@ -132,8 +144,17 @@ static int Uart_4G_RecvDeal_RealTimeMP2_stop(char *getbuf) |
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
if (UART_4G_Receive_mode != JZ_INSCODE_5AFRAME_REALTIMEMP2_TRANSMISSION)
|
|
|
{
|
|
|
//回复操作失败
|
|
|
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
|
|
|
JZSDK_LOG_ERROR("操作失败,mp2传输未开始,无法关闭");
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
}
|
|
|
|
|
|
|
|
|
//1、修改接收模式
|
|
|
JZsdk_Uart_RecvDeal_Set_UART_4G_Receive_mode(JZ_INSCODE_5AFRAME_REALTIMEMP2_STOP);
|
|
|
JZsdk_Uart_RecvDeal_Set_UART_4G_ReceiveMode(JZ_INSCODE_5AFRAME_REALTIMEMP2_STOP);
|
|
|
|
|
|
//2、关闭实时MP2模式
|
|
|
ret = JZsdk_Uart_RealTimeMP2_Close();
|
...
|
...
|
@@ -155,12 +176,21 @@ static int Uart_4G_RecvDeal_RealTimeMP2_stop(char *getbuf) |
|
|
*
|
|
|
*
|
|
|
**********/
|
|
|
static int Uart_4G_RecvDeal_SaveAudioFileTrans_start(char *getbuf, int len)
|
|
|
static T_JZsdkReturnCode Uart_4G_RecvDeal_SaveAudioFileTrans_start(char *getbuf, int len)
|
|
|
{
|
|
|
JZSDK_LOG_INFO("开始传输的音频文件保存\n");
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
T_JZsdkReturnCode ret = JZsdk_Uart_RecvDeal_UART_4G_TransmodeDecide();
|
|
|
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
//回复操作失败
|
|
|
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
|
|
|
JZSDK_LOG_ERROR("开始传输的音频文件保存失败");
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
//1、处理帧长度,获取文件名长度
|
|
|
int FileNameLen = ((int)getbuf[3] << 8) + (int)getbuf[4] - 2 - 9;
|
|
|
|
...
|
...
|
@@ -170,7 +200,7 @@ static int Uart_4G_RecvDeal_SaveAudioFileTrans_start(char *getbuf, int len) |
|
|
memcpy(FileName, &getbuf[9], FileNameLen);
|
|
|
JZSDK_LOG_INFO("保存的文件名为%s",FileName);
|
|
|
|
|
|
T_JZsdkReturnCode ret = JZsdk_Uart_SaveAudioFileStart(FileName);
|
|
|
ret = JZsdk_Uart_SaveAudioFileStart(FileName);
|
|
|
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
|
...
|
...
|
@@ -178,7 +208,7 @@ static int Uart_4G_RecvDeal_SaveAudioFileTrans_start(char *getbuf, int len) |
|
|
}
|
|
|
|
|
|
//3、调整接收模式为音频文件传输
|
|
|
JZsdk_Uart_RecvDeal_Set_UART_4G_Receive_mode(JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_TRANSMISSION);
|
|
|
JZsdk_Uart_RecvDeal_Set_UART_4G_ReceiveMode(JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_TRANSMISSION);
|
|
|
|
|
|
//4、回复操作成功
|
|
|
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
|
...
|
...
|
@@ -207,9 +237,20 @@ static int Uart_4G_RecvDeal_SaveAudioFileTrans_stop(char *getbuf) |
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
if (UART_4G_Receive_mode != JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_TRANSMISSION)
|
|
|
{
|
|
|
//回复操作失败
|
|
|
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
|
|
|
JZSDK_LOG_ERROR("关闭音频文件上传失败,音频文件上传未开始,无法关闭");
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
}
|
|
|
|
|
|
//1、保存音频数据
|
|
|
JZsdk_Uart_SaveAudioFileStop();
|
|
|
|
|
|
//3、调整接收模式为音频文件传输
|
|
|
JZsdk_Uart_RecvDeal_Set_UART_4G_ReceiveMode(JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_STOP);
|
|
|
|
|
|
//2、回复操作成功
|
|
|
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
|
|
|
}
|
...
|
...
|
@@ -849,12 +890,21 @@ static int Uart_4G_RecvDeal_TTS_SetSpeed(char *getbuf) |
|
|
// 0x5A 0x5A 0x77 0x00 0x0c 0x00 0x00 0x57 0x03 0x00 0x00 0x23 开始TTS发送
|
|
|
// 0xXX 0xXX 0xXX 0xXX 0xXX 0xXX 0xXX 0xXX 0xXX TTS数据
|
|
|
// 0x5A 0x5A 0x77 0x00 0x0c 0x00 0x00 0x57 0x04 0x00 0x00 0x23 结束TTS发送
|
|
|
static int Uart_4G_RecvDeal_TTS_Trans_start(char *getbuf)
|
|
|
static T_JZsdkReturnCode Uart_4G_RecvDeal_TTS_Trans_start(char *getbuf)
|
|
|
{
|
|
|
JZSDK_LOG_INFO("tts开始传输");
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
T_JZsdkReturnCode ret = JZsdk_Uart_RecvDeal_UART_4G_TransmodeDecide();
|
|
|
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
//回复操作失败
|
|
|
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
|
|
|
JZSDK_LOG_ERROR("tts开始传输失败");
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
//1、重置缓冲区
|
|
|
memset(TTS_Recv_buffer, 0, 1009);
|
|
|
|
...
|
...
|
@@ -862,7 +912,7 @@ static int Uart_4G_RecvDeal_TTS_Trans_start(char *getbuf) |
|
|
TTS_Recv_buffer_length = 0;
|
|
|
|
|
|
//3、将接收模式设置为接收TTS数据模式
|
|
|
JZsdk_Uart_RecvDeal_Set_UART_4G_Receive_mode(JZ_INSCODE_5AFRAME_TTS_TRANS_TRANSMISSION);
|
|
|
JZsdk_Uart_RecvDeal_Set_UART_4G_ReceiveMode(JZ_INSCODE_5AFRAME_TTS_TRANS_TRANSMISSION);
|
|
|
|
|
|
//回复操作成功
|
|
|
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
|
...
|
...
|
@@ -897,17 +947,32 @@ static int Uart_4G_RecvDeal_TTS_Trans_transmission(char *getdata, int len) |
|
|
*
|
|
|
*
|
|
|
**********/
|
|
|
static int Uart_4G_RecvDeal_TTS_Trans_stop(char *getbuf)
|
|
|
static T_JZsdkReturnCode Uart_4G_RecvDeal_TTS_Trans_stop(char *getbuf)
|
|
|
{
|
|
|
JZSDK_LOG_INFO("tts传输结束");
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
if (UART_4G_Receive_mode != JZ_INSCODE_5AFRAME_TTS_TRANS_TRANSMISSION)
|
|
|
{
|
|
|
JZSDK_LOG_INFO("未刷新文本,TTS播放%s",TTS_Recv_buffer);
|
|
|
|
|
|
//3、播放TTS
|
|
|
JZsdk_Uart_TTS_Play(UART_4G, TTS_Recv_buffer, TTS_Recv_buffer_length);
|
|
|
|
|
|
//回复操作成功
|
|
|
JZsdk_Uart_SendDeal_Reply_Sucesss(UART_4G, FrameSequence);
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
}
|
|
|
|
|
|
//1、打印一次TTS文本
|
|
|
JZSDK_LOG_INFO("TTS播放%s",TTS_Recv_buffer);
|
|
|
|
|
|
//2、播放TTS
|
|
|
//2、将接收模式设置为关闭接收TTS
|
|
|
JZsdk_Uart_RecvDeal_Set_UART_4G_ReceiveMode(JZ_INSCODE_5AFRAME_TTS_TRANS_STOP);
|
|
|
|
|
|
//3、播放TTS
|
|
|
JZsdk_Uart_TTS_Play(UART_4G, TTS_Recv_buffer, TTS_Recv_buffer_length);
|
|
|
|
|
|
//回复操作成功
|
...
|
...
|
@@ -921,12 +986,21 @@ static int Uart_4G_RecvDeal_TTS_Trans_stop(char *getbuf) |
|
|
*
|
|
|
*
|
|
|
**********/
|
|
|
static int Uart_4G_RecvDeal_OpusTrans_start(char *getbuf)
|
|
|
static T_JZsdkReturnCode Uart_4G_RecvDeal_OpusTrans_start(char *getbuf)
|
|
|
{
|
|
|
JZSDK_LOG_INFO("打开opus传输\n");
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
T_JZsdkReturnCode ret = JZsdk_Uart_RecvDeal_UART_4G_TransmodeDecide();
|
|
|
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
//回复操作失败
|
|
|
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
|
|
|
JZSDK_LOG_ERROR("打开opus传输失败");
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
//1、获取解码比特率
|
|
|
int decode_rate = getbuf[9] * 8000;
|
|
|
if(decode_rate == 0)
|
...
|
...
|
@@ -938,7 +1012,7 @@ static int Uart_4G_RecvDeal_OpusTrans_start(char *getbuf) |
|
|
JZsdk_Uart_SaveOpusStart(decode_rate);
|
|
|
|
|
|
//3、修改接收模式为传输opus
|
|
|
JZsdk_Uart_RecvDeal_Set_UART_4G_Receive_mode(JZ_INSCODE_5AFRAME_OPUS_TRANS_TRANSMISSION);
|
|
|
JZsdk_Uart_RecvDeal_Set_UART_4G_ReceiveMode(JZ_INSCODE_5AFRAME_OPUS_TRANS_TRANSMISSION);
|
|
|
|
|
|
JZSDK_LOG_INFO("已完成打开opus传输处理\n");
|
|
|
|
...
|
...
|
@@ -959,7 +1033,7 @@ static int Uart_4G_RecvDeal_OpusTrans_transmission(char *SaveData, int size) |
|
|
}
|
|
|
/*********
|
|
|
*
|
|
|
* opus传输
|
|
|
* opus结束传输
|
|
|
*
|
|
|
*
|
|
|
**********/
|
...
|
...
|
@@ -969,8 +1043,19 @@ static int Uart_4G_RecvDeal_OpusTrans_stop(char *getbuf) |
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
if (UART_4G_Receive_mode != JZ_INSCODE_5AFRAME_OPUS_TRANS_TRANSMISSION)
|
|
|
{
|
|
|
//回复操作失败
|
|
|
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
|
|
|
JZSDK_LOG_ERROR("关闭opus结束传输失败,opus结束传输未开始,无法关闭");
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
}
|
|
|
|
|
|
|
|
|
JZsdk_Uart_SaveOpusStop();
|
|
|
|
|
|
JZsdk_Uart_RecvDeal_Set_UART_4G_ReceiveMode(JZ_INSCODE_5AFRAME_OPUS_TRANS_STOP);
|
|
|
|
|
|
JZSDK_LOG_INFO("结束opus传输处理\n");
|
|
|
|
|
|
//回复操作成功
|
...
|
...
|
@@ -988,6 +1073,15 @@ static int Uart_4G_RecvDeal_OpusPlay(char *getbuf) |
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
T_JZsdkReturnCode ret = JZsdk_Uart_RecvDeal_UART_4G_TransmodeDecide();
|
|
|
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
//回复操作失败
|
|
|
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
|
|
|
JZSDK_LOG_ERROR("opus播放失败,存在传输模式打开中");
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
JZsdk_Uart_Opus_PlayFixedFile(UART_4G);
|
|
|
|
|
|
//回复操作成功
|
...
|
...
|
@@ -1002,14 +1096,23 @@ static int Uart_4G_RecvDeal_OpusPlay(char *getbuf) |
|
|
*
|
|
|
*
|
|
|
**********/
|
|
|
static int Uart_4G_RecvDeal_Opus_RealTimeVoice_start(char *getbuf)
|
|
|
static T_JZsdkReturnCode Uart_4G_RecvDeal_Opus_RealTimeVoice_start(char *getbuf)
|
|
|
{
|
|
|
JZSDK_LOG_INFO("开启opus实时喊话功能\n");
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
T_JZsdkReturnCode ret = JZsdk_Uart_RecvDeal_UART_4G_TransmodeDecide();
|
|
|
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
|
|
|
{
|
|
|
//回复操作失败
|
|
|
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
|
|
|
JZSDK_LOG_ERROR("开启opus实时喊话失败");
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
//1、修改接收模式
|
|
|
JZsdk_Uart_RecvDeal_Set_UART_4G_Receive_mode(JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_TRANSMISSION);
|
|
|
JZsdk_Uart_RecvDeal_Set_UART_4G_ReceiveMode(JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_TRANSMISSION);
|
|
|
|
|
|
//2、获取码率倍率 默认8k*1倍
|
|
|
int RateMagnification = (int)getbuf[9];
|
...
|
...
|
@@ -1055,8 +1158,16 @@ static int Uart_4G_RecvDeal_Opus_RealTimeVoice_stop(char *getbuf) |
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
if (UART_4G_Receive_mode != JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_TRANSMISSION)
|
|
|
{
|
|
|
//回复操作失败
|
|
|
JZsdk_Uart_SendDeal_Reply_Failure(UART_4G, FrameSequence);
|
|
|
JZSDK_LOG_ERROR("关闭opus实时语音发送功能失败,opus实时语音发送功能未开始,无法关闭");
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
}
|
|
|
|
|
|
//1、修改接收模式
|
|
|
JZsdk_Uart_RecvDeal_Set_UART_4G_Receive_mode(JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_STOP);
|
|
|
JZsdk_Uart_RecvDeal_Set_UART_4G_ReceiveMode(JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_STOP);
|
|
|
|
|
|
//2、关闭实时语音模式
|
|
|
JZsdk_Uart_RealTimeVoiceClose();
|
...
|
...
|
@@ -1319,7 +1430,7 @@ static int Uart_4G_RecvDeal_SearchLight_SubscriptionControl(char *getbuf) |
|
|
**********/
|
|
|
static int Uart_4G_RecvDeal_CheckStatus_SerialNumber(char *getbuf)
|
|
|
{
|
|
|
JZSDK_LOG_INFO("消息订阅控制\n");
|
|
|
JZSDK_LOG_INFO("查询产品序列号\n");
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
...
|
...
|
@@ -1794,7 +1905,7 @@ static int Uart_4G_RecvDeal_GimbalLinkageControl(char *getbuf) |
|
|
**********/
|
|
|
static int Uart_4G_RecvDeal_Checkstatus_GimbalLinkage(char *getbuf)
|
|
|
{
|
|
|
JZSDK_LOG_INFO("收到查询是否开启云台联动\n");
|
|
|
JZSDK_LOG_INFO("收到查询是否开启云台联动");
|
|
|
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
...
|
...
|
@@ -1803,6 +1914,47 @@ static int Uart_4G_RecvDeal_Checkstatus_GimbalLinkage(char *getbuf) |
|
|
JZsdk_Uart_Checkstatus_GimbalLinkage(UART_4G, FrameSequence);
|
|
|
}
|
|
|
|
|
|
static int Uart_4G_RecvDeal_UartBitrateChange(char *getbuf)
|
|
|
{
|
|
|
JZSDK_LOG_INFO("收到串口比特率修改");
|
|
|
|
|
|
//获取帧的序列号
|
|
|
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
|
|
|
|
|
|
//修改比特率
|
|
|
int BitRateChoose = getbuf[10];
|
|
|
int BitRate;
|
|
|
|
|
|
switch (BitRateChoose)
|
|
|
{
|
|
|
case 1:
|
|
|
BitRate = 115200;
|
|
|
break;
|
|
|
|
|
|
case 2:
|
|
|
BitRate = 230400;
|
|
|
break;
|
|
|
|
|
|
case 3:
|
|
|
BitRate = 460800;
|
|
|
break;
|
|
|
|
|
|
case 4:
|
|
|
BitRate = 921600;
|
|
|
break;
|
|
|
|
|
|
case 5:
|
|
|
BitRate = 1000000;
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
BitRate = 115200;
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
JZsdk_Uart_BitRateChange(UART_4G, BitRate);
|
|
|
}
|
|
|
|
|
|
/********************************************************************************************************
|
|
|
********* ********|
|
|
|
********* ********|
|
...
|
...
|
@@ -1938,7 +2090,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)
|
|
|
{
|
|
|
/*******************************************************************************************************************************
|
...
|
...
|
@@ -2345,6 +2497,12 @@ int Uart_4G_RecvDeal_RecvDeal(int Receive_mode, unsigned char *getdata, int len) |
|
|
return 0;
|
|
|
break;
|
|
|
|
|
|
//串口比特率修改
|
|
|
case JZ_INSCODE_6AFRAME_UART_BITRATE_CHANGE:
|
|
|
Uart_4G_RecvDeal_UartBitrateChange(getdata);
|
|
|
return 0;
|
|
|
break;
|
|
|
|
|
|
/*******************************************************************************************************************************
|
|
|
*
|
|
|
* 6B类部分
|
...
|
...
|
@@ -2408,182 +2566,6 @@ int Uart_4G_RecvDeal_RecvDeal(int Receive_mode, unsigned char *getdata, int len) |
|
|
********* ********|
|
|
|
********* ********|
|
|
|
*********************************************************************************************************/
|
|
|
static int Uart_4G_RecvDeal_RecvTransmission_CharmDeal(char* getbuf, int len, int flag)
|
|
|
{
|
|
|
int data_len = 0; //剩余数据长度
|
|
|
|
|
|
/******************************
|
|
|
*
|
|
|
* 如果当前为传输opus文件的状态
|
|
|
*
|
|
|
* ***************************/
|
|
|
if (UART_4G_Receive_mode == JZ_INSCODE_5AFRAME_OPUS_TRANS_TRANSMISSION)
|
|
|
{
|
|
|
//如果 传过来的帧为关闭传输opus
|
|
|
if (flag == JZ_INSCODE_5AFRAME_OPUS_TRANS_STOP)
|
|
|
{
|
|
|
//返回 关闭传输opus帧
|
|
|
return JZ_INSCODE_5AFRAME_OPUS_TRANS_STOP;
|
|
|
}
|
|
|
|
|
|
//要是回来的帧最后藏着结束帧
|
|
|
if ( JZsdk_FrameComparsion(getbuf + len - 12, 12) == JZ_INSCODE_5AFRAME_OPUS_TRANS_STOP)
|
|
|
{
|
|
|
//把前面的还有剩的数据处理掉
|
|
|
data_len = len - 12;
|
|
|
Uart_4G_RecvDeal_RecvDeal(UART_4G_Receive_mode, getbuf, data_len);
|
|
|
|
|
|
//返回 关闭传输opus帧
|
|
|
return JZ_INSCODE_5AFRAME_OPUS_TRANS_STOP;
|
|
|
}
|
|
|
|
|
|
//要是回来的帧最后藏着播放帧
|
|
|
if ( JZsdk_FrameComparsion(getbuf + len - 12, 12) == JZ_INSCODE_5AFRAME_OPUS_PLAY)
|
|
|
{
|
|
|
//说明 还藏着结束帧
|
|
|
|
|
|
//先把前面的还有剩的数据处理掉
|
|
|
data_len = len - 24;
|
|
|
Uart_4G_RecvDeal_RecvDeal(UART_4G_Receive_mode, getbuf, data_len);
|
|
|
|
|
|
//处理结束帧
|
|
|
if (JZsdk_FrameComparsion(getbuf + len - 24, 12) == JZ_INSCODE_5AFRAME_OPUS_TRANS_STOP)
|
|
|
{
|
|
|
UART_4G_Receive_mode = JZ_INSCODE_5AFRAME_OPUS_TRANS_STOP;
|
|
|
Uart_4G_RecvDeal_RecvDeal(UART_4G_Receive_mode, getbuf, len);
|
|
|
}
|
|
|
|
|
|
//返回播放帧
|
|
|
return JZ_INSCODE_5AFRAME_OPUS_PLAY;
|
|
|
}
|
|
|
|
|
|
//都没有 继续传输状态
|
|
|
return JZ_INSCODE_5AFRAME_OPUS_TRANS_TRANSMISSION;
|
|
|
}
|
|
|
|
|
|
/******************************
|
|
|
*
|
|
|
* 如果当前为传输opus实时语音的状态
|
|
|
*
|
|
|
* ***************************/
|
|
|
//如果 如果处于传输实时语音模式 且 传过来的关闭语音帧
|
|
|
if (UART_4G_Receive_mode == JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_TRANSMISSION)
|
|
|
{
|
|
|
//如果 传过来的帧为关闭实时语音
|
|
|
if (flag == JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_STOP)
|
|
|
{
|
|
|
//返回 关闭实时语音
|
|
|
return JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_STOP;
|
|
|
}
|
|
|
|
|
|
//要是回来的帧最后藏着结束帧
|
|
|
if ( JZsdk_FrameComparsion(getbuf + len - 12, 12) == JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_STOP)
|
|
|
{
|
|
|
//把前面的还有剩的数据处理掉
|
|
|
data_len = len - 12;
|
|
|
Uart_4G_RecvDeal_RecvDeal(UART_4G_Receive_mode, getbuf, data_len);
|
|
|
|
|
|
//返回 关闭实时语音
|
|
|
return JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_STOP;
|
|
|
}
|
|
|
|
|
|
//都没有 继续传输状态
|
|
|
return JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_TRANSMISSION;
|
|
|
}
|
|
|
|
|
|
/******************************
|
|
|
*
|
|
|
* 如果当前为传输mp2实时语音的状态
|
|
|
*
|
|
|
* ***************************/
|
|
|
//如果 如果处于传输实时语音模式 且 传过来的关闭语音帧
|
|
|
if (UART_4G_Receive_mode == JZ_INSCODE_5AFRAME_REALTIMEMP2_TRANSMISSION)
|
|
|
{
|
|
|
//如果 传过来的帧为关闭实时语音
|
|
|
if (flag == JZ_INSCODE_5AFRAME_REALTIMEMP2_STOP)
|
|
|
{
|
|
|
//返回 关闭实时语音
|
|
|
return JZ_INSCODE_5AFRAME_REALTIMEMP2_STOP;
|
|
|
}
|
|
|
|
|
|
//要是回来的帧最后藏着结束帧
|
|
|
if ( JZsdk_FrameComparsion(getbuf + len - 12, 12) == JZ_INSCODE_5AFRAME_REALTIMEMP2_STOP)
|
|
|
{
|
|
|
//把前面的还有剩的数据处理掉
|
|
|
data_len = len - 12;
|
|
|
Uart_4G_RecvDeal_RecvDeal(UART_4G_Receive_mode, getbuf, data_len);
|
|
|
|
|
|
//返回 关闭实时语音
|
|
|
return JZ_INSCODE_5AFRAME_REALTIMEMP2_STOP;
|
|
|
}
|
|
|
|
|
|
//都没有 继续传输状态
|
|
|
return JZ_INSCODE_5AFRAME_REALTIMEMP2_TRANSMISSION;
|
|
|
}
|
|
|
|
|
|
/******************************
|
|
|
*
|
|
|
* 如果当前为传输音频文件的状态
|
|
|
*
|
|
|
* ***************************/
|
|
|
//如果 如果处于传输实时语音模式 且 传过来的关闭语音帧
|
|
|
if (UART_4G_Receive_mode == JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_TRANSMISSION)
|
|
|
{
|
|
|
//如果 传过来的帧为关闭实时语音
|
|
|
if (flag == JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_STOP)
|
|
|
{
|
|
|
//返回 关闭实时语音
|
|
|
return JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_STOP;
|
|
|
}
|
|
|
|
|
|
//要是回来的帧最后藏着结束帧
|
|
|
if ( JZsdk_FrameComparsion(getbuf + len - 12, 12) == JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_STOP)
|
|
|
{
|
|
|
//把前面的还有剩的数据处理掉
|
|
|
data_len = len - 12;
|
|
|
Uart_4G_RecvDeal_RecvDeal(UART_4G_Receive_mode, getbuf, data_len);
|
|
|
|
|
|
//返回 关闭实时语音
|
|
|
return JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_STOP;
|
|
|
}
|
|
|
|
|
|
//都没有 继续传输状态
|
|
|
return JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_TRANSMISSION;
|
|
|
}
|
|
|
|
|
|
/******************************
|
|
|
*
|
|
|
* 如果当前为传输TTS的状态
|
|
|
*
|
|
|
* ***************************/
|
|
|
//如果 如果处于传输TTS模式 且 传过来的关闭TTS帧
|
|
|
if (UART_4G_Receive_mode == JZ_INSCODE_5AFRAME_TTS_TRANS_TRANSMISSION)
|
|
|
{
|
|
|
//如果 传过来的帧为关闭TTS
|
|
|
if (flag == JZ_INSCODE_5AFRAME_TTS_TRANS_STOP)
|
|
|
{
|
|
|
//返回 关闭TTS
|
|
|
return JZ_INSCODE_5AFRAME_TTS_TRANS_STOP;
|
|
|
}
|
|
|
|
|
|
//要是回来的帧最后藏着结束帧
|
|
|
if ( JZsdk_FrameComparsion(getbuf + len - 12, 12) == JZ_INSCODE_5AFRAME_TTS_TRANS_STOP)
|
|
|
{
|
|
|
//把前面的还有剩的数据处理掉
|
|
|
data_len = len - 12;
|
|
|
Uart_4G_RecvDeal_RecvDeal(UART_4G_Receive_mode, getbuf, data_len);
|
|
|
|
|
|
//返回 关闭TTS
|
|
|
return JZ_INSCODE_5AFRAME_TTS_TRANS_STOP;
|
|
|
}
|
|
|
|
|
|
//都没有 继续传输状态
|
|
|
return JZ_INSCODE_5AFRAME_TTS_TRANS_TRANSMISSION;
|
|
|
}
|
|
|
|
|
|
// 以上的帧都不是
|
|
|
return JZ_ERROR_SYSTEM_FRAME_ERROR;
|
|
|
}
|
|
|
|
|
|
|
|
|
/********************************************************************************************************
|
...
|
...
|
@@ -2602,42 +2584,41 @@ static int Uart_4G_RecvDeal_RecvTransmission_CharmDeal(char* getbuf, int len, in |
|
|
|
|
|
int JZsdk_Uart_RecvDeal_CharmDeal_Uart_4G(unsigned char *getbuf, int len)
|
|
|
{
|
|
|
//1、不进行切割处理
|
|
|
|
|
|
//2、进行指令帧对比,确认该帧的功能
|
|
|
//已经进行了切割预处理
|
|
|
|
|
|
//1、进行指令帧对比,确认该帧的功能
|
|
|
int flag = JZsdk_FrameComparsion(getbuf, len);
|
|
|
|
|
|
//3、进行回复帧对比,确认该帧的功能
|
|
|
|
|
|
//4、如果传过来的是正常帧 且不处于传输过程,接收模式改变
|
|
|
if ((flag != JZ_ERROR_SYSTEM_FRAME_ERROR )
|
|
|
&& (UART_4G_Receive_mode != JZ_INSCODE_5AFRAME_REALTIMEMP2_TRANSMISSION ) //语音传输模式
|
|
|
//2、如果传过来的是正常帧
|
|
|
if (flag != JZ_ERROR_SYSTEM_FRAME_ERROR )
|
|
|
{
|
|
|
Uart_4G_RecvDeal_RecvDeal(flag, getbuf, len);
|
|
|
//如果不处于5大传输模式
|
|
|
if ((UART_4G_Receive_mode != JZ_INSCODE_5AFRAME_REALTIMEMP2_TRANSMISSION ) //语音传输模式
|
|
|
&& (UART_4G_Receive_mode != JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_TRANSMISSION) //音频文件传输模式
|
|
|
&& (UART_4G_Receive_mode != JZ_INSCODE_5AFRAME_OPUS_TRANS_TRANSMISSION) //opus传输模式
|
|
|
&& (UART_4G_Receive_mode != JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_TRANSMISSION) //opus实时语音传输模式
|
|
|
&& (UART_4G_Receive_mode != JZ_INSCODE_5AFRAME_TTS_TRANS_TRANSMISSION)) //TTS传输模式
|
|
|
{
|
|
|
UART_4G_Receive_mode = flag;
|
|
|
}
|
|
|
//否则进入 传输过程 处理模式
|
|
|
else
|
|
|
{
|
|
|
flag = Uart_4G_RecvDeal_RecvTransmission_CharmDeal(getbuf, len, flag);
|
|
|
if (flag != JZ_ERROR_SYSTEM_FRAME_ERROR)
|
|
|
&& (UART_4G_Receive_mode != JZ_INSCODE_5AFRAME_TTS_TRANS_TRANSMISSION)) //TTS传输模式)
|
|
|
{
|
|
|
//刷新模式
|
|
|
UART_4G_Receive_mode = flag;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
//两次判断 flag的值都是JZ_ERROR_SYSTEM_FRAME_ERROR 说明真的不是帧
|
|
|
if (flag == JZ_ERROR_SYSTEM_FRAME_ERROR)
|
|
|
//否则 如果处于传输传输过程 处理模式 正常录入数据
|
|
|
else if (flag == JZ_ERROR_SYSTEM_FRAME_ERROR
|
|
|
&& ((UART_4G_Receive_mode == JZ_INSCODE_5AFRAME_REALTIMEMP2_TRANSMISSION ) //语音传输模式
|
|
|
|| (UART_4G_Receive_mode == JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_TRANSMISSION) //音频文件传输模式
|
|
|
|| (UART_4G_Receive_mode == JZ_INSCODE_5AFRAME_OPUS_TRANS_TRANSMISSION) //opus传输模式
|
|
|
|| (UART_4G_Receive_mode == JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_TRANSMISSION) //opus实时语音传输模式
|
|
|
|| (UART_4G_Receive_mode == JZ_INSCODE_5AFRAME_TTS_TRANS_TRANSMISSION))) //TTS传输模式)
|
|
|
{
|
|
|
UART_4G_Receive_mode = JZ_ERROR_SYSTEM_FRAME_ERROR;
|
|
|
Uart_4G_RecvDeal_RecvDeal(UART_4G_Receive_mode, getbuf, len);
|
|
|
}
|
|
|
|
|
|
//4、根据2 放入接收处理函数
|
|
|
Uart_4G_RecvDeal_RecvDeal(UART_4G_Receive_mode, getbuf, len);
|
|
|
|
|
|
//否则直接丢弃
|
|
|
return -1;
|
|
|
}
|
|
|
|
|
|
/*******************
|
...
|
...
|
@@ -2646,9 +2627,28 @@ int JZsdk_Uart_RecvDeal_CharmDeal_Uart_4G(unsigned char *getbuf, int len) |
|
|
* ps : 仅在开启语音传送和 文件传输时会启用该函数
|
|
|
*
|
|
|
* ****************/
|
|
|
int JZsdk_Uart_RecvDeal_Set_UART_4G_Receive_mode(int value)
|
|
|
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;
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
static T_JZsdkReturnCode JZsdk_Uart_RecvDeal_UART_4G_TransmodeDecide()
|
|
|
{
|
|
|
if ((UART_4G_Receive_mode == JZ_INSCODE_5AFRAME_REALTIMEMP2_TRANSMISSION ) //语音传输模式
|
|
|
|| (UART_4G_Receive_mode == JZ_INSCODE_5AFRAME_AUDIOFILE_TRANS_TRANSMISSION) //音频文件传输模式
|
|
|
|| (UART_4G_Receive_mode == JZ_INSCODE_5AFRAME_OPUS_TRANS_TRANSMISSION) //opus传输模式
|
|
|
|| (UART_4G_Receive_mode == JZ_INSCODE_5AFRAME_OPUS_REALTIMEVOICE_TRANSMISSION) //opus实时语音传输模式
|
|
|
|| (UART_4G_Receive_mode == JZ_INSCODE_5AFRAME_TTS_TRANS_TRANSMISSION)) //TTS传输模式)
|
|
|
{
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
|
|
|
}
|
|
|
|
|
|
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
} |
|
|
\ No newline at end of file |
...
|
...
|
|