作者 ookk303

相机更新

正在显示 39 个修改的文件 包含 506 行增加181 行删除
... ... @@ -87,7 +87,19 @@
"gimbal.h": "c",
"jzsdk_uart_uartdeal.h": "c",
"powermanager_inandout.h": "c",
"jzsdk_definecode.h": "c"
"jzsdk_definecode.h": "c",
"jzsdk_devicecode.h": "c",
"opus.h": "c",
"jzsdk_hal.h": "c",
"commonmod.h": "c",
"gimbal_specialuart.h": "c",
"megaphone_opus.h": "c",
"megaphone_audiofile.h": "c",
"dji_typedef.h": "c",
"jzsdk_flagcode.h": "c",
"jzsdk_typedef.h": "c",
"jzsdk_errorcode.h": "c",
"jzsdk_portcode.h": "c"
},
"Codegeex.GenerationPreference": "automatic",
"C_Cpp.dimInactiveRegions": false
... ...
# 编译链的配置
#1、编译链与设备类型的选择
set(DEVICE_NAME JZ_H1T)
set(DEVICE_NAME JZ_C1)
#上一行为禁止修改行
message("**************************JZSDK构建编译开始***************************\n")
... ...
... ... @@ -27,10 +27,6 @@ file(GLOB_RECURSE JZSDK_HAL_SRC ${ROOT_DIRS}JZsdk_hal/*.c)
list(APPEND ALL_SRC_FILES ${JZSDK_HAL_SRC})
list(APPEND ALL_INC_FILES ${ROOT_DIRS}JZsdk_hal)
file(GLOB_RECURSE JZSDK_OSAL_SRC ${ROOT_DIRS}JZsdk_osal/*.c)
list(APPEND ALL_SRC_FILES ${JZSDK_OSAL_SRC})
list(APPEND ALL_INC_FILES ${ROOT_DIRS}JZsdk_osal)
message("\nJZSDK基础代码加载完毕\n")
#如果要加载设备信息模块,需要加载以下附属内容
... ... @@ -104,6 +100,7 @@ if(${MEDIA_PROC_MODULE} STREQUAL "VERSION_SWITCH_ON")
set(LIB_USB VERSION_SWITCH_ON)
if(${IRC_MODULE} STREQUAL "VERSION_SWITCH_ON")
message("加载昆腾红外相机模块")
set(LIB_KT_IRC VERSION_SWITCH_ON)
endif()
... ...
... ... @@ -177,13 +177,16 @@ endif()
#kt_IRC库
if(${LIB_KT_IRC} STREQUAL "VERSION_SWITCH_ON")
add_definitions(-DMACRO_KTIRC_MODULE)
message("ktIRC库已加载\n")
include_directories(${ROOT_DIRS}/ThirdParty/KT_IRC/include)
target_link_libraries(
${PROJECT_NAME}
${ROOT_DIRS}/ThirdParty/KT_IRC/aarch64-none-linux-gnu/lib/libktlib.so
${ROOT_DIRS}/ThirdParty/KT_IRC/aarch64-none-linux-gnu/lib/libm330aarchx64.so
)
add_definitions(-DMACRO_KTIRC_MODULE)
endif()
message("**************************动态库加载完毕***************************\n")
\ No newline at end of file
... ...
... ... @@ -24,8 +24,8 @@ extern "C" {
#include "./JZsdk_ReturnCode.h"
#include "./JZsdk_FileType.h"
#include "./JZsdk_WidgetCode.h"
#include "./JZsdk_DefineCode.h"
#include "./JZsdk_DeviceCode.h"
#include "./JZsdk_DefineCode.h"
/* Exported types ------------------------------------------------------------*/
... ...
... ... @@ -10,6 +10,4 @@
unsigned char *JZsdk_GetDeviceName()
{
return
}
... ...
... ... @@ -36,31 +36,51 @@ typedef enum FirmwarePlace
}FirmwarePlace;
//加载开关
typedef enum VersionLoadSwitch
{
VERSION_SWITCH_ON = 0x0001, //加载
VERSION_SWITCH_OFF = 0x0000, //不加载
}VersionLoadSwitch;
// typedef enum VersionLoadSwitch
// {
// VERSION_SWITCH_ON = 0x0001, //加载
// VERSION_SWITCH_OFF = 0x0000, //不加载
// }VersionLoadSwitch;
//设备名
typedef enum DeviceName
{
JZ_H1E = 0x0011, //H1E
JZ_H1T = 0x0016, //H1T
JZ_U3 = 0x0017, //U3
JZ_U3S = 0x0018, //U3S
JZ_U3D = 0x0019, //U3D
JZ_U30 = 0x001A, //U30
JZ_H150S = 0x0013, //H150S
JZ_H150T = 0x0015, //H150T
JZ_H10 = 0x0012, //H10
JZ_H10T = 0x0014, //H10T
TF_A1 = 0x1010, //TF-A1
JZ_C1 = 0x1011, //C1
}DeviceName;
#define VERSION_SWITCH_ON 0x0001 //加载
#define VERSION_SWITCH_OFF 0x0000 //不加载
// //设备名
// typedef enum DeviceName
// {
// JZ_H1E = 0x0011, //H1E
// JZ_H1T = 0x0016, //H1T
// JZ_U3 = 0x0017, //U3
// JZ_U3S = 0x0018, //U3S
// JZ_U3D = 0x0019, //U3D
// JZ_U30 = 0x001A, //U30
// JZ_H150S = 0x0013, //H150S
// JZ_H150T = 0x0015, //H150T
// JZ_H10 = 0x0012, //H10
// JZ_H10T = 0x0014, //H10T
// TF_A1 = 0x1010, //TF-A1
// JZ_C1 = 0x1011, //C1
// }DeviceName;
//设备选择
#define JZ_H1E 0x0011
#define JZ_H1T 0x0016
#define JZ_U3 0x0017
#define JZ_U3S 0x0018
#define JZ_U3D 0x0019
#define JZ_U30 0x001A
#define JZ_H150S 0x0013
#define JZ_H150T 0x0015
#define JZ_H10 0x0012
#define JZ_H10T 0x0014
#define TF_A1 0x1010
#define JZ_C1 0x1011
/***********************************
... ...
// #include "../JZsdk_Code/JZsdk_Code.h"
// #include "./JZsdk_Osal.h"
// T_JZsdkReturnCode JZsdk_Osal_TaskCreate(const char *name, void *(*taskFunc)(void *), uint32_t stackSize, void *arg,
// T_JzTaskHandle *task)
... ...
/**
********************************************************************
* @file JZsdk_Osal.h
* JZsdk_Osal.c 的头文件
*
*********************************************************************
*/
/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef JZSDK_OSAL_H
#define JZSDK_OSAL_H
/* Includes ------------------------------------------------------------------*/
#include "../JZsdk_Code/JZsdk_Code.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/
typedef void *T_JzTaskHandle;
/* Exported types ------------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
#ifdef __cplusplus
}
#endif
#endif
/************************ (C) COPYRIGHT DJI Innovations *******END OF FILE******/
... ...
... ... @@ -32,6 +32,7 @@
#ifdef MEGAPHONE_CONFIG_STATUS_ON
#include "AudioDeal/AudioDeal.h"
#include "Megaphone/Megaphone.h"
extern int MegaphoneStatusFlag;
#endif
#ifdef SIDE_LASER_STATUS_ON
... ... @@ -42,7 +43,7 @@ static int Main_WorkMode();
static void *Main_WorkModeTask(void *arg);
static int WorkMode = JZ_FLAGCODE_OFF;
extern int MegaphoneStatusFlag;
static int g_All_filter_Mode = JZ_FLAGCODE_OFF; //用于m30的滤波开关
static int StartupPriorityNum = JZ_FLAGCODE_OFF; //优先启动项值
... ... @@ -728,12 +729,13 @@ static void *Main_WorkModeTask(void *arg)
delayMs(1000);//延迟一秒钟
printf("计数%d\n",i);
#ifdef MEGAPHONE_CONFIG_STATUS_ON
if (start_voice_flag == JZ_FLAGCODE_OFF && MegaphoneStatusFlag == JZ_FLAGCODE_ON)
{
start_voice_flag = JZ_FLAGCODE_ON;
Start_voice();
}
#endif
if (WorkMode == JZ_FLAGCODE_ON)
{
printf("串口连接成功,进入串口模式\n");
... ...
... ... @@ -14,6 +14,7 @@
#include "version_choose.h"
#include "JZsdkLib.h"
#include "./ParamterParsing.h"
#include "JZsdk_Base/JZsdk_Code/JZsdk_DeviceCode.h"
#ifdef __cplusplus
extern "C" {
... ...
... ... @@ -5,23 +5,24 @@
***********************************************/
#ifndef VERSION_CHOOSE_H
#define VERSION_CHOOSE_H
#include "JZsdk_Base/JZsdk_Code/JZsdk_DeviceNameCode.h"
#include "JZsdk_Base/JZsdk_Code/JZsdk_DeviceCode.h"
//1~10行 除了D可以修改版本选择 禁止动任何东西
#define DEVICE_VERSION JZ_H1T
#define DEVICE_VERSION JZ_C1
//禁止修改行 选择是串口程序 还是 psdk程序
#define APP_VERSION APP_UART
#define APP_VERSION APP_PSDK
//禁止修改行 板子型号
#define PLATFORM_VERSION PLATFORM_V3S
//禁止修改行 串口连接程序的软件版本号
#define MAJOR_VERSION 0x00
#define MINOR_VERSION 0x00
#define MODIFY_VERSION 0x02
#define DEBUG_VERSION 0x12
#define MAJOR_VERSION 0x01
#define MINOR_VERSION 0x03
#define MODIFY_VERSION 0x09
#define DEBUG_VERSION 0x07
//禁止修改行 滤波方式
#define FILTERING_TYPE HIGH_PASS_FILTERING
//禁止修改行固件属地 目前 国内版/海外版
#define FIRMWARE_ORIGIN DOMESTIC_VERSION
... ... @@ -53,7 +54,7 @@
#endif
//是否加载ktirclib
#ifdef DMACRO_KTIRC_MODULE
#ifdef MACRO_KTIRC_MODULE
#define KTIRC_LIB_STATUS_ON
#endif
... ...
... ... @@ -18,9 +18,9 @@
#include "Hal_Send/HalSend.h"
#include "JZsdk_Hal.h"
#if (MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON)
#ifdef MEGAPHONE_CONFIG_STATUS_ON
#include "Megaphone/Megaphone.h"
#include "Megaphone/AudioFile/Megaphone_AudioFile.h"
#include "Megaphone/Music/AudioFile/Megaphone_AudioFile.h"
#endif
static int HalRecvMode = JZ_FLAGCODE_OFF;
... ... @@ -332,7 +332,7 @@ static T_JZsdkReturnCode RecvDeal_RealTimeMP2_start(int Port, char *getbuf)
}
//3、打开实时MP2模式
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
ret = Megaphone_RealTimeMP2_start();
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
... ... @@ -387,7 +387,7 @@ static T_JZsdkReturnCode RecvDeal_RealTimeMP2_Limit_transmission(int Port, char
JZSDK_LOG_DEBUG("%s,MP2实时喊话定长制传输中 长度:%d 总长度:%d",JZsdk_DefineCode_GetPortName(Port), DataLen, HalRecvDataLen);
//传输数据接口
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
ret = Megaphone_RealTimeMP2_trans(getbuf+9, DataLen);
#endif
... ... @@ -424,7 +424,7 @@ static T_JZsdkReturnCode RecvDeal_RealTimeMP2_stop(int Port, char *getbuf)
//2、关闭实时MP2模式
ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
ret = Megaphone_RealTimeMP2_stop();
#endif
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
... ... @@ -472,7 +472,7 @@ static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_start(int Port, char *getbu
memcpy(FileName, &getbuf[9], FileNameLen);
JZSDK_LOG_INFO("保存的文件名为%s",FileName);
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
ret = Megaphone_SaveAudioFileStart(FileName);
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
... ... @@ -526,7 +526,7 @@ static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_LimitTransmission(int Port,
//JZSDK_LOG_DEBUG("%s,传输定长音频文件中 ,一共传输了%d字节",JZsdk_DefineCode_GetPortName(Port), HalRecvDataLen);
//传输数据接口
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
Megaphone_SaveAudioFileTrans(getbuf+9, DataLen);
#endif
... ... @@ -555,7 +555,7 @@ static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_stop(int Port, char *getbuf
}
//1、保存音频数据
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
Megaphone_SaveAudioFileStop(JZ_FLAGCODE_OFF, NULL);
#endif
... ... @@ -625,7 +625,7 @@ static T_JZsdkReturnCode RecvDeal_SaveAudioFileTrans_stop_and_check(int Port, ch
}
//1、保存音频数据
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
ret = Megaphone_SaveAudioFileStop(checkType, checkCode);
if (ret == JZ_ERROR_CHECKCODE_CHECK_ERROR)
{
... ... @@ -821,7 +821,7 @@ static T_JZsdkReturnCode RecvDeal_audio_GetMusicList(int Port, char *getbuf)
//获取帧的序列号
int FrameSequence = JZsdk_Get_FrameSequence(getbuf);
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
//刷新歌曲列表
Megaphone_Flush_MusicList();
... ... @@ -978,7 +978,7 @@ static T_JZsdkReturnCode RecvDeal_CheckStatus_AudioDetailMessage(int Port, char
JZSDK_LOG_INFO("解析%s",AudioName);
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
if (ListBelong == 0)
{
... ... @@ -1083,7 +1083,7 @@ static T_JZsdkReturnCode RecvDeal_Amplifier_stop(int Port, char *getbuf)
int status = JZ_FLAGCODE_OFF;
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
//先关闭播放
ret = UIcontrol_StopPlayAudio(NO_SPECIFIED);
... ... @@ -1118,7 +1118,7 @@ static T_JZsdkReturnCode RecvDeal_Amplifier_open(int Port, char *getbuf)
int status = JZ_FLAGCODE_ON;
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
//先关闭播放
ret = UIcontrol_StopPlayAudio(NO_SPECIFIED);
... ... @@ -1197,7 +1197,7 @@ static T_JZsdkReturnCode RecvDeal_CheckStatus_volume(int Port, char *getbuf)
//1、获取本地的音量
int volume;
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
Megaphone_param(JZ_FLAGCODE_GET, MEGAPHONE_VOLUME, &volume);
#endif
... ... @@ -1225,7 +1225,7 @@ static T_JZsdkReturnCode RecvDeal_CheckStatus_play(int Port, char *getbuf)
//1、获取播放状态
int status;
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
Megaphone_param(JZ_FLAGCODE_GET, MEGAPHONE_PLAY_STATUS, &status);
#endif
... ... @@ -1311,7 +1311,7 @@ static T_JZsdkReturnCode RecvDeal_CheckStatus_PLayFileName(int Port, char *getbu
//1、获取名字与长度
char MusicName[128];
int MusicName_Len = 0;
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
Megaphone_get_play_FileName(MusicName, &MusicName_Len);
#endif
... ... @@ -1381,7 +1381,7 @@ static T_JZsdkReturnCode RecvDeal_CheckStatus_LoopPlay(int Port, char *getbuf)
//1、获取循环状态
int LoopStatus = 0;
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
Megaphone_param(JZ_FLAGCODE_GET, MEGAPHONE_LOOP, &LoopStatus);
#endif
... ... @@ -1418,7 +1418,7 @@ static T_JZsdkReturnCode RecvDeal_CheckStatus_TTS_tone(int Port, char *getbuf)
//1、获取音色
int TTS_tone = 0;
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
Megaphone_TTS_param(JZ_FLAGCODE_GET, MEGAPHONE_TTS_TONE, &TTS_tone);
#endif
... ... @@ -1458,7 +1458,7 @@ static T_JZsdkReturnCode RecvDeal_CheckStatus_TTS_speed(int Port, char *getbuf)
//1、获取语速
int TTS_speed = 0;
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
Megaphone_TTS_param(JZ_FLAGCODE_GET, MEGAPHONE_TTS_SPEED, &TTS_speed);
#endif
... ... @@ -1569,7 +1569,7 @@ static T_JZsdkReturnCode RecvDeal_Delete_Audio(int Port, char *getbuf)
JZsdk_RunSystemCmd(cmd);
//4、刷新歌曲列表
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
Megaphone_Flush_MusicList();
#endif
... ... @@ -1608,7 +1608,7 @@ static T_JZsdkReturnCode RecvDeal_Delete_VoiceRecord(int Port, char *getbuf)
JZsdk_RunSystemCmd(cmd);
//4、刷新歌曲列表
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
Megaphone_Flush_MusicList();
#endif
... ... @@ -1870,7 +1870,7 @@ static T_JZsdkReturnCode RecvDeal_OpusTrans_start(int Port, char *getbuf)
}
//2、创建存储文件
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
Megaphone_SaveOpusStart(decode_rate);
#endif
... ... @@ -1916,7 +1916,7 @@ static T_JZsdkReturnCode RecvDeal_OpusTrans_LimitTransmission(int Port, char *ge
JZSDK_LOG_DEBUG("%s,传输opus定长音频文件中 一共传输了%d字节",JZsdk_DefineCode_GetPortName(Port),HalRecvDataLen);
//传输数据接口
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
Megaphone_SaveOpusTrans(getbuf+9, DataLen);
#endif
... ... @@ -1946,7 +1946,7 @@ static T_JZsdkReturnCode RecvDeal_OpusTrans_stop(int Port, char *getbuf)
}
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
Megaphone_SaveOpusStop(JZ_FLAGCODE_OFF, NULL);
#endif
... ... @@ -2015,7 +2015,7 @@ static T_JZsdkReturnCode RecvDeal_OpusTrans_stop_and_check(int Port, char *getbu
}
//1、保存音频数据
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
ret = Megaphone_SaveOpusStop(checkType, checkCode);
if (ret == JZ_ERROR_CHECKCODE_CHECK_ERROR)
{
... ... @@ -2119,7 +2119,7 @@ static T_JZsdkReturnCode RecvDeal_Opus_RealTimeVoice_start(int Port, char *getbu
}
//3、打开实时语音模式
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
Megaphone_RealTimeVoice_Start(Rate);
#endif
... ... @@ -2165,7 +2165,7 @@ static T_JZsdkReturnCode RecvDeal_Opus_RealTimeVoice_LimitTransmission(int Port,
JZSDK_LOG_DEBUG("%s,传输opus定长语音传输中 长度:%d,总长度:%d",JZsdk_DefineCode_GetPortName(Port), DataLen, HalRecvDataLen);
//传输数据接口
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
ret = Megaphone_RealTimeVoice_Trans(getbuf+9, DataLen);
#endif
... ... @@ -2202,7 +2202,7 @@ static T_JZsdkReturnCode RecvDeal_Opus_RealTimeVoice_stop(int Port, char *getbuf
HalRecvDataLen = 0;
//2、关闭实时语音模式
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
ret = Megaphone_RealTimeVoice_Close();
#endif
if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
... ...
... ... @@ -25,7 +25,7 @@
*
*
* **************************/
static T_JZsdkReturnCode JZsdk_Uart_UartEnabled(unsigned char *UartDev, unsigned int BitRate, int *UartFd)
T_JZsdkReturnCode JZsdk_Uart_UartEnabled(unsigned char *UartDev, unsigned int BitRate, int *UartFd)
{
if (UartFd == NULL)
{
... ...
... ... @@ -25,6 +25,7 @@ extern "C" {
/* Exported functions --------------------------------------------------------*/
T_JZsdkReturnCode JZsdk_Uart_ReInit(int UART_DEV_NAME, int BitRate);
T_JZsdkReturnCode JZsdk_Uart_UartEnabled(unsigned char *UartDev, unsigned int BitRate, int *UartFd);
#ifdef __cplusplus
}
... ...
... ... @@ -14,6 +14,8 @@
/* Includes ------------------------------------------------------------------*/
#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
#include "CommonMod/PowerManger/PowerManger.h"
#ifdef __cplusplus
extern "C" {
#endif
... ...
... ... @@ -4,10 +4,10 @@
#include "JZsdkLib.h"
#include "JZsdk_Hal.h"
T_JZsdkReturnCode HeartBeat_Uart1Check()
T_JZsdkReturnCode HeartBeat_HalCheck()
{
//1、获取hal的使用状态
int JZsdk_HalPort_UseFlag(UART_DEV_1);
int temp = JZsdk_HalPort_UseFlag(UART_DEV_1);
}
... ...
#include <stdio.h>
#include "JZsdkLib.h"
#include <string.h>
#include "BaseConfig.h"
... ... @@ -31,7 +32,7 @@ T_JZsdkReturnCode Upgrade_PackageParse()
}
//分解升级包
memseyt(cmd, 0, sizeof(cmd));
memset(cmd, 0, sizeof(cmd));
sprintf(cmd, "tar -xvf %s -C %s", REMOTE_UPGRADE_FILE_DIR, UPGRADE_FILE_DIR);
ret = JZsdk_RunSystemCmd(cmd);
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
... ...
... ... @@ -74,7 +74,7 @@ static const unsigned char FRAME_HEADER[FRAME_HEADER_SIZE] = {0xaa, 0xbb, 0xcc,
static unsigned char FrameBuffer[FIRST_HEIGHT * FIRST_WIDTH *2]; //用于存储帧数据的缓冲区
static unsigned int FrameBufferLen = 0; //用于存储帧数据的长度
static FrameBuffer_UseFlag = JZ_FLAGCODE_OFF;
static int FrameBuffer_UseFlag = JZ_FLAGCODE_OFF;
#ifdef RTK_RGA_STATUS_ON
static T_JZsdkReturnCode JZC1_RgaDeal(C1_RgaInfo *rga_info, int resize, unsigned char *image, unsigned int *imgage_size);
... ...
... ... @@ -10,8 +10,9 @@
#include "../Gimbal_Param.h"
#include "Hal_Send/HalSend.h"
#include "JZsdk_uart/JZsdk_Uart.h"
#if WIRINGPI_STATUS == VERSION_SWITCH_ON
#ifdef WIRINGPI_STATUS_ON
#include <wiringPi.h>
#endif
... ... @@ -36,7 +37,7 @@ T_JZsdkReturnCode Gimbal_DataDeal_init()
int Uart_fd = 0;
//1、串口初始化
Uart_fd = UartConnection_UartEnabled(GIMBAL_UART_NUM, GIMBAL_UART_BITRATE);
JZsdk_Uart_UartEnabled(GIMBAL_UART_NUM, GIMBAL_UART_BITRATE, &Uart_fd);
//2、串口接收初始化
Gimbal_SpecialUart_UartReceive_Init(Uart_fd);
... ...
... ... @@ -185,7 +185,8 @@ T_JZsdkReturnCode JZsdk_FrameCatch_Single(T_JZsdkReturnCode (*task_function)(uns
return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER;
}
task->task_function = task_function;
//task->task_function = task_function;
task->task_function = (void (*)(unsigned char *, unsigned int))task_function;
int opus_Protection = pthread_create(&ReadDataTask,&task_attribute,JZsdk_Catch_SingleThread2,(void *)task); //线程
if(opus_Protection != 0)
... ...
... ... @@ -133,6 +133,8 @@ typedef enum TEMP_CHOOSE
HIGH_DGCE_THRESHOLD = 5,
LOW_DGCE_THRESHOLD = 6,
HIGH_TEMP_DATA = 7, //高温数据
LOW_TEMP_DATA = 8, //低温数据
FACTORY_HIGH_TEMP = 10, //出厂高温数据
FACTORY_LOW_TEMP = 11, //出厂低温数据
... ...
... ... @@ -22,6 +22,8 @@ int g_temp_GasValueMin = 30;
struct IRC_param *g_IRC_Param = NULL;
static T_JZsdkReturnCode IRC_param_Init(struct IRC_param **index, int height, int width, int frameRate);
static FILE *temp_fp = NULL;
/*
功能:初始化IRC参数
... ... @@ -36,9 +38,15 @@ T_JZsdkReturnCode IRC_ParamInit(int height, int width, int frameRate)
ret = IRC_param_Init(&g_IRC_Param, height, width, frameRate);
if (g_IRC_Param->DealWay ==IRC_DEALMODE_KTLIB)
if (g_IRC_Param->DealWay == IRC_DEALMODE_KTLIB)
{
KtLib_Init();
KtLib_Init(g_IRC_Param);
}
temp_fp = fopen("IRC_temp.raw", "w");
if (temp_fp == NULL)
{
JZSDK_LOG_ERROR("IRC_temp.raw文件打开失败");
}
return ret;
... ... @@ -151,7 +159,6 @@ static T_JZsdkReturnCode IRC_data_PreliminaryDeal(U16_t *rawData ,unsigned int *
dealInfo->HighT_flag = JZ_FLAGCODE_ON;
}
/********读取低温数据**********************************************************/
switch (dealInfo->TPC_mode)
{
... ... @@ -198,10 +205,22 @@ static T_JZsdkReturnCode IRC_data_PreliminaryDeal(U16_t *rawData ,unsigned int *
dealInfo->LowT_flag = JZ_FLAGCODE_ON;
}
//***********重新计算两点校正的斜率**************************************/
//如果开启开启的昆腾库,则载入昆腾数据
if (g_IRC_Param->DealWay == IRC_DEALMODE_KTLIB)
{
KtLib_writeMarkData(HIGH_TEMP_DATA ,dealInfo->HighT_NineFrame_Avg, dealInfo->PixelNum);
KtLib_writeMarkData(LOW_TEMP_DATA ,dealInfo->LowT_NineFrame_Avg, dealInfo->PixelNum);
}
else
{
//使用本地库计算斜率
JZIrcLib_TPC_Slope_Calculation2(dealInfo);
}
}
//如果开启了低温循环标定,计算低温循环数据
if (dealInfo->LowT_flag != JZ_FLAGCODE_OFF)
... ... @@ -247,8 +266,17 @@ static T_JZsdkReturnCode IRC_data_PreliminaryDeal(U16_t *rawData ,unsigned int *
}
//***********重新计算两点校正的斜率**************************************/
//如果开启开启的昆腾库,则载入昆腾数据
if (g_IRC_Param->DealWay == IRC_DEALMODE_KTLIB)
{
KtLib_writeMarkData(LOW_TEMP_DATA ,dealInfo->LowT_NineFrame_Avg, dealInfo->PixelNum);
}
else
{
//使用本地库计算斜率
JZIrcLib_TPC_Slope_Calculation2(dealInfo);
}
}
//如果开启了高温循环标定,计算高温循环数据
if (dealInfo->HighT_flag != JZ_FLAGCODE_OFF)
... ... @@ -293,8 +321,17 @@ static T_JZsdkReturnCode IRC_data_PreliminaryDeal(U16_t *rawData ,unsigned int *
}
//***********重新计算两点校正的斜率**************************************/
//如果开启开启的昆腾库,则载入昆腾数据
if (g_IRC_Param->DealWay == IRC_DEALMODE_KTLIB)
{
KtLib_writeMarkData(HIGH_TEMP_DATA ,dealInfo->HighT_NineFrame_Avg, dealInfo->PixelNum);
}
else
{
//使用本地库计算斜率
JZIrcLib_TPC_Slope_Calculation2(dealInfo);
}
}
//两点校正模式
dealInfo->TPC_LastTPCMode = dealInfo->TPC_mode;
... ... @@ -336,6 +373,12 @@ static T_JZsdkReturnCode IRC_data_PreliminaryDeal(U16_t *rawData ,unsigned int *
//保存spc标定点
IRC_LocalFrame_DataWrite(SPC_MARK_DATA, dealInfo, (U16_t *)dealInfo->SPC_Mark_Data, dealInfo->PixelNum);
//如果开启开启的昆腾库,则载入昆腾数据
if (g_IRC_Param->DealWay == IRC_DEALMODE_KTLIB)
{
KtLib_writeMarkData(SPC_MARK_DATA ,dealInfo->SPC_Mark_Data, dealInfo->PixelNum);
}
dealInfo->SPC_ResetFlag = JZ_FLAGCODE_OFF;
}
... ... @@ -375,6 +418,11 @@ static T_JZsdkReturnCode IRC_Postdeal(unsigned char *rgb_data, struct IRC_param
{
//将rgb图形镜像
int MirrorImageFlag = JZ_FLAGCODE_ON;
if (dealInfo->DealWay == IRC_DEALMODE_KTLIB)
{
MirrorImageFlag = JZ_FLAGCODE_OFF;
}
if (MirrorImageFlag == JZ_FLAGCODE_ON)
{
... ... @@ -570,6 +618,14 @@ T_JZsdkReturnCode IRC_FrameDeal(U16_t *rawData ,unsigned int dataSize, unsigned
//JZSDK_LOG_DEBUG("数据预处理完成");
if (temp_fp != NULL)
{
fwrite(rawData, sizeof(U16_t), dataSize, temp_fp);
fflush(temp_fp);
}
//2、数据前处理,将原始数据和16位数据 合成为rgb数据
U8_t *RGB_data = NULL;
unsigned int RGB_dataSize = 0;
... ... @@ -590,6 +646,8 @@ T_JZsdkReturnCode IRC_FrameDeal(U16_t *rawData ,unsigned int dataSize, unsigned
break;
}
//JZSDK_LOG_DEBUG("数据抽查 1000:%d %d %d 10000:%d %d %d 20000:%d %d %d",RGB_data[1000*3],RGB_data[1000*3+1],RGB_data[1000*3+2],RGB_data[10000*3],RGB_data[10000*3+1],RGB_data[10000*3+2],RGB_data[20000*3],RGB_data[20000*3+1],RGB_data[20000*3+2]);
//JZSDK_LOG_DEBUG("数据前处理完成");
//3、数据后处理,在rgb数据上,进行图像处理
... ... @@ -1133,7 +1191,9 @@ static T_JZsdkReturnCode IRC_param_Init(struct IRC_param **index, int height, in
return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER;
}
IrcDealCfg->DealWay = IRC_DEALMODE_JZSDK;
//IrcDealCfg->DealWay = IRC_DEALMODE_JZSDK;
IrcDealCfg->DealWay = IRC_DEALMODE_KTLIB;
IrcDealCfg->ImgDataBits = 14; //图像为14位图像
IrcDealCfg->Height = height;
IrcDealCfg->Width = width;
... ...
... ... @@ -8,132 +8,212 @@
#include "../IRC_data_deal/IRC_data_deal.h"
#include <vector>
#include <mutex>
#ifdef KTIRC_LIB_STATUS_ON
#include "KTv330_CPP.h"
#include "M330Interface.h"
#endif
#include "MediaProc/MediaProc_Param.h"
#include "KtLibProc.h"
#include "MediaProc/ImageProc/PseudoColor/PseudoColor.h"
#include "../IRC_Param.h"
// 创建一个 ClassKT 类对象
// 定义互斥锁
static std::mutex ktLibMutex;
T_JZsdkReturnCode KtLib_Init(struct IRC_param *dealInfo)
{
#ifdef KTIRC_LIB_STATUS_ON
KTv330Space::ClassKT* KtObject = new KTv330Space::ClassKT();
#endif
InitM330();
KtLib_writeMarkData(HIGH_TEMP_DATA,dealInfo->HighT_NineFrame_Avg ,dealInfo->PixelNum);
KtLib_writeMarkData(LOW_TEMP_DATA, dealInfo->LowT_NineFrame_Avg ,dealInfo->PixelNum);
KtLib_writeMarkData(SPC_MARK_DATA, dealInfo->SPC_Mark_Data ,dealInfo->PixelNum);
JZSDK_LOG_INFO("KtLib_Init success");
#endif
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
T_JZsdkReturnCode KtLib_DataDeal(U16_t* U16_data, unsigned int U16_dataSize,
U8_t **RGB_data, unsigned int *RGB_dataSize,
struct IRC_param *dealInfo)
{
T_JZsdkReturnCode ret;
#ifdef KTIRC_LIB_STATUS_ON
// 创建一个存储转换后数据的 vector<int>
std::vector<int> inputDataVector(U16_data, U16_data + U16_dataSize);
// 创建一个用于保存校正数据的
std::vector<int> currentDataVector = inputDataVector;
/**********************************************
*
*
*
*
*
* **********************************************/
T_JZsdkReturnCode KtLib_writeMarkData(int type, U16_t* in ,int size)
{
bool bool_ret;
//JZSDK_LOG_INFO("校正前1:%d 2:%d 3:%d 4:%d",currentDataVector[5000],currentDataVector[15000],currentDataVector[30000],currentDataVector[45000]);
// 加锁
std::lock_guard<std::mutex> lock(ktLibMutex);
// 如果打开了单点校正
if (dealInfo->FrameCorrectMode == IRC_CORRCTION_SPC)
#ifdef KTIRC_LIB_STATUS_ON
switch (type)
{
// 创建一个用于放置spc的数据
U16_t *dataPtr = NULL;
if (dealInfo->SPC_mode == 0 && dealInfo->LowT_NineFrame_Avg != NULL) // 低温打档
//高温标记数据
case HIGH_TEMP_DATA:
bool_ret = LoadMarkData((int *)in ,size,HIGH_MARK_DATA);
if (bool_ret == false)
{
//JZSDK_LOG_INFO("正在用低温数据");
dataPtr = (U16_t *)dealInfo->LowT_NineFrame_Avg;
JZSDK_LOG_ERROR("LoadMarkData HIGH_TEMP_DATA error");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
else
{
//JZSDK_LOG_INFO("正在用标记数据");
dataPtr = (U16_t *)dealInfo->SPC_Mark_Data;
JZSDK_LOG_INFO("LoadMarkData HIGH_TEMP_DATA success");
}
// 使用 std::span 来避免不必要的拷贝
std::vector<int> spcMarkDataVector(dataPtr, dataPtr + dealInfo->PixelNum);
//JZSDK_LOG_INFO("dataPtr 1:%d 2:%d 3:%d 4:%d",dataPtr[5000],dataPtr[15000],dataPtr[30000],dataPtr[45000]);
break;
bool retSPC = KtObject->KT_V330_CPP_supportFun_SPC(currentDataVector, inputDataVector, spcMarkDataVector, dealInfo->ImgDataBits);
if (retSPC == false)
//低温标记数据
case LOW_TEMP_DATA:
bool_ret = LoadMarkData((int *)in ,size,LOW_MARK_DATA);
if (bool_ret == false)
{
printf("SPC失败\n");
JZSDK_LOG_ERROR("LoadMarkData LOW_TEMP_DATA error");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
else
{
JZSDK_LOG_INFO("LoadMarkData LOW_TEMP_DATA success");
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
//JZSDK_LOG_INFO("校正后1:%d 2:%d 3:%d 4:%d",currentDataVector[5000],currentDataVector[15000],currentDataVector[30000],currentDataVector[45000]);
break;
// 如果打开了两点校正
if (dealInfo->FrameCorrectMode == IRC_CORRCTION_TPC)
//单点标记数据
case SPC_MARK_DATA:
bool_ret = LoadMarkData((int *)in ,size, SINGLE_MARK_DATA);
if (bool_ret == false)
{
std::vector<int> highDataVector(dealInfo->HighT_NineFrame_Avg, dealInfo->HighT_NineFrame_Avg + dealInfo->PixelNum);
std::vector<int> lowDataVector(dealInfo->LowT_NineFrame_Avg, dealInfo->LowT_NineFrame_Avg + dealInfo->PixelNum);
JZSDK_LOG_ERROR("LoadMarkData SPC_MARK_DATA error");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
currentDataVector = KtObject->ifTPC(inputDataVector, lowDataVector, highDataVector, (unsigned short)dealInfo->ImgDataBits);
else
{
JZSDK_LOG_INFO("LoadMarkData SPC_MARK_DATA success");
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
std::vector<unsigned char> outVector;
break;
// 调用 KT_V330_CPP_supportFun_Histogram_vKT 进行直方图均衡化处理 得到灰度图
KtObject->KT_V330_CPP_supportFun_Histogram_vKT(outVector, currentDataVector, dealInfo->ImgDataBits, dealInfo->Gain, dealInfo->LeftDrop, dealInfo->RightDrop);
default:
break;
}
// 将vector灰度图转换为 数组灰度图
U8_t *GrayImage = (U8_t *)malloc(sizeof(U8_t) * dealInfo->PixelNum);
std::copy(outVector.begin(), outVector.end(), GrayImage);
#endif
}
// 图像输出模式
switch (dealInfo->OutputPixelColorMode)
static int lastCorrectMode = JZ_FLAGCODE_OFF;
T_JZsdkReturnCode KtLib_DataDeal(U16_t* U16_data, unsigned int U16_dataSize,
U8_t **RGB_data, unsigned int *RGB_dataSize,
struct IRC_param *dealInfo)
{
// 加锁
std::lock_guard<std::mutex> lock(ktLibMutex);
T_JZsdkReturnCode ret;
bool bool_ret;
#ifdef KTIRC_LIB_STATUS_ON
// 如果打开了单点校正
if (dealInfo->FrameCorrectMode == IRC_CORRCTION_SPC && lastCorrectMode != IRC_CORRCTION_SPC)
{
case 0: // 默认输出模式
JZSDK_LOG_INFO("sdk开启单点校正");
//关闭两点校正
CloseDoubleNuc();
//打开单点校正
OpenSingleNuc();
lastCorrectMode = IRC_CORRCTION_SPC;
}
// 如果打开了两点校正
if (dealInfo->FrameCorrectMode == IRC_CORRCTION_TPC && lastCorrectMode != IRC_CORRCTION_TPC)
{
// 灰度图转rgb888
IRC_GrayTo_RGB(GrayImage, RGB_data, RGB_dataSize, dealInfo);
JZSDK_LOG_INFO("sdk开启两点校正");
//关闭单点校正
CloseSingleNuc();
//打开两点校正
OpenDoubleNuc();
lastCorrectMode = IRC_CORRCTION_TPC;
}
break;
case 1: // 伪彩输出模式
// 如果关闭了校正
if (dealInfo->FrameCorrectMode == JZ_FLAGCODE_OFF && lastCorrectMode != JZ_FLAGCODE_OFF)
{
// 灰度图转伪彩rgb888
ret = PseudoColor_Gray2Rgb(GrayImage, RGB_data, RGB_dataSize, dealInfo->PixelNum);
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
JZSDK_LOG_INFO("sdk无校正");
//关闭单点校正
CloseSingleNuc();
//关闭两点校正
CloseDoubleNuc();
lastCorrectMode = JZ_FLAGCODE_OFF;
}
//将u16数据转为char 数据 以用于输入库
char* inputDataChar = new char[U16_dataSize*2];
int inputDataSize = U16_dataSize*2;
for (int i = 0; i < U16_dataSize; i++)
{
IRC_GrayTo_RGB(GrayImage, RGB_data, RGB_dataSize, dealInfo);
inputDataChar[i*2+1] = (U16_data[i] & 0xFF00) >> 8;
inputDataChar[i*2] = (U16_data[i] & 0x00FF);
}
//注册一个输出数组
*RGB_data = new U8_t[dealInfo->PixelNum*3];
*RGB_dataSize = 0;
// 图像输出模式
switch (dealInfo->OutputPixelColorMode)
{
case 0: // 默认输出模式
case 2: // 气体色彩增强输出模式
{
bool_ret = GetImageSynchronous(inputDataChar, inputDataSize, (char *)*RGB_data, dealInfo->PixelNum*3, (int *)RGB_dataSize); //同步处理数据
}
break;
case 2: // 气体色彩增强输出模式
case 1: // 伪彩输出模式
{
// 转为rgb
IRC_GrayTo_RGB(GrayImage, RGB_data, RGB_dataSize, dealInfo);
bool_ret = GetImageSynchronous(inputDataChar, inputDataSize, (char *)*RGB_data, dealInfo->PixelNum*3, (int *)RGB_dataSize); //同步处理数据
// 灰度图转气体增强rgb888
IRC_DynamicGasesColorEnhance(*RGB_data, U16_data, dealInfo);
//将rgb888数据反转为灰度数据并进行颜色映射
}
break;
default:
delete[] inputDataChar;
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
break;
}
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
#endif
}
if (bool_ret == false)
{
JZSDK_LOG_ERROR("sdk处理错误");
}
//JZSDK_LOG_DEBUG("ktlib pixnum*3:%d rgbsize:%d",dealInfo->PixelNum*3 ,*RGB_dataSize);
delete[] inputDataChar;
T_JZsdkReturnCode KtLib_Init()
{
#ifdef KTIRC_LIB_STATUS_ON
KtObject->KT_M330_InfraredLogin("192.168.1.3", 6666, "192.168.1.2", 6666, 320, 256, 14, NULL, 0, 0);
#endif
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
#endif
}
\ No newline at end of file
... ...
... ... @@ -16,7 +16,8 @@ extern "C" {
T_JZsdkReturnCode KtLib_DataDeal(U16_t* U16_data, unsigned int U16_dataSize,
U8_t **RGB_data, unsigned int *RGB_dataSize,
struct IRC_param *dealInfo);
T_JZsdkReturnCode KtLib_Init();
T_JZsdkReturnCode KtLib_Init(struct IRC_param *dealInfo);
T_JZsdkReturnCode KtLib_writeMarkData(int type, U16_t* in ,int size);
#ifdef __cplusplus
... ...
... ... @@ -21,8 +21,8 @@
#include "../AudioDeal/AudioDeal.h"
#include "./TTS/Megaphone_TTS.h"
#include "./TTS/cnTTS/cnTTS.h"
#include "./AudioFile/Megaphone_AudioFile.h"
#include "Megaphone/RealTimeMP2/Megaphone_RealTimeMP2.h"
#include "Megaphone/Music/AudioFile/Megaphone_AudioFile.h"
#include "Megaphone/Music/RealTimeMP2/Megaphone_RealTimeMP2.h"
#include "Megaphone/opus/Megaphone_Opus.h"
int MegPlayStatusUnChange_flag = JZ_FLAGCODE_OFF;
... ...
... ... @@ -11,7 +11,7 @@
#include "AudioDeal/AudioDealThread/AudioDealThread.h"
#include "./AudioFile_PlayDeal.h"
#include "Megaohone/AudioMange/AudioMange.h"
#include "Megaphone/AudioMange/AudioMange.h"
#include "Megaphone/Megaphone.h"
#define AUDIO_DIR "/root/sdcard/audio"
... ...
... ... @@ -12,7 +12,7 @@
/* Includes ------------------------------------------------------------------*/
#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
#include "./AudioFile_Param.h"
#include "Megaphone/AudioMange/AudioMange_Param.h"
#ifdef __cplusplus
extern "C" {
... ...
... ... @@ -6,7 +6,7 @@
#include "JZsdkLib.h"
#include "../Megaphone.h"
#include "Megaphone/Megaphone.h"
#include "AudioDeal/AudioDeal.h"
static int RealTimeMp2_StatusFlag = JZ_FLAGCODE_OFF;
... ...
... ... @@ -2,7 +2,7 @@
#include <stdlib.h>
#include <string.h>
#include "Megaphone/AudioFile/Megaphone_AudioFile.h"
#include "Megaphone/Music/AudioFile/Megaphone_AudioFile.h"
#include "Megaphone/TTS/Megaphone_TTS.h"
#include "Intl_interface.h"
... ...
... ... @@ -9,6 +9,30 @@ static int g_OpusFile_SaveFlag = JZ_FLAGCODE_OFF;
#define OPUS_TEMP_SAVE_DIR "/root/opusFileTemp.opus"
static unsigned char opus_SaveFile[128];
static int OpusFile_SaveThread_Flag = JZ_FLAGCODE_OFF;
/******************
*
*
* opus文件 存储显示线程
*
*
* **********************/
static T_JZsdkReturnCode OpusFile_SaveOpusFileShowLen(void)
{
if (OpusFile_SaveThread_Flag != JZ_FLAGCODE_OFF)
{
JZSDK_LOG_ERROR("存储显示线程已经启动,请先关闭");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
OpusFile_SaveThread_Flag = JZ_FLAGCODE_ON;
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
/******************
*
*
... ... @@ -72,6 +96,7 @@ T_JZsdkReturnCode OpusFile_SaveOpusFileStream(unsigned char *Stream, int StreamL
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
fflush(g_OpusFile_SaveFp);
g_OpusFile_SaveLen += StreamLen;
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
... ... @@ -84,4 +109,75 @@ T_JZsdkReturnCode OpusFile_SaveOpusFileStream(unsigned char *Stream, int StreamL
*
*
* **********************/
T_JZsdkReturnCode OpusFile_SaveOpusFileEnd()
\ No newline at end of file
T_JZsdkReturnCode OpusFile_SaveOpusFileEnd(int CheckFlag, unsigned char *CheckCode)
{
T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
unsigned char cmd[128];
//标志位判定
if (g_OpusFile_SaveFlag == JZ_FLAGCODE_OFF)
{
JZSDK_LOG_ERROR("没有打开opus文件保存功能");
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
//文件指针判定
if (g_OpusFile_SaveFp == NULL)
{
JZSDK_LOG_ERROR("要保存的opus文件未打开");
g_OpusFile_SaveFlag = JZ_FLAGCODE_OFF;
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
//关闭存储的文件
fflush(g_OpusFile_SaveFp);
fclose(g_OpusFile_SaveFp);
g_OpusFile_SaveFp = NULL;
JZSDK_LOG_INFO("已存储opus文件, 其长度为:%d", g_OpusFile_SaveLen);
switch (CheckFlag)
{
case JZ_FLAGCODE_OFF:
{
JZSDK_LOG_INFO("opus保存无需校验码");
ret = JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
break;
case JZSDK_CHECK_SUM_TYPE_MD5:
{
JZSDK_LOG_INFO("opus保存使用md5校验码");
//1、获取文件的md5校验码
ret = JZsdk_CheckSum(JZSDK_CHECK_SUM_TYPE_MD5, OPUS_TEMP_SAVE_DIR, CheckCode, 32);
}
break;
case JZSDK_CHECK_SUM_TYPE_SRC32:
{
JZSDK_LOG_INFO("opus保存使用src32校验码");
//1、获取文件的src32校验码
ret = JZsdk_CheckSum(JZSDK_CHECK_SUM_TYPE_SRC32, OPUS_TEMP_SAVE_DIR, CheckCode, 4);
}
default:
{
JZSDK_LOG_ERROR("opus保存校验码类型错误");
ret = JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
break;
}
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
JZSDK_LOG_ERROR("opus保存校验失败");
memset(cmd, 0, sizeof(cmd));
sprintf(cmd, "rm -rf %s", OPUS_TEMP_SAVE_DIR);
JZsdk_RunSystemCmd(cmd);
g_OpusFile_SaveFlag = JZ_FLAGCODE_OFF;
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
}
\ No newline at end of file
... ...
... ... @@ -8,12 +8,15 @@
#include "Gimbal/Gimbal.h"
#include "Psdk_UI_io.h"
#include "ircut.h"
#include "PowerManager_InAndOut.h"
#include "DeviceInfo/DeviceInfo.h"
#include "MediaProc/VideoMgmt/VideoMgmt.h"
#include "MediaProc/Camera/Camera.h"
#include "./UI_control.h"
#include "CommonMod/CommonMod.h"
#include "JZsdk_Hal.h"
#include "Hal_Send/HalSend.h"
... ...
... ... @@ -8,7 +8,7 @@
#include "UI_control/UI_control.h"
#include "DeviceInfo/DeviceInfo.h"
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
#include "Megaphone/Megaphone.h"
#endif
... ... @@ -16,7 +16,7 @@ T_JZsdkReturnCode Megphone_Attention()
{
//如果是喊话器设备
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
//引脚初始化
Ircut_Init();
... ...
... ... @@ -82,7 +82,7 @@ static T_DjiReturnCode DjiTestWidget_GetWidgetValue(E_DjiWidgetType widgetType,
void *userData);
int get_num(char *str);//获取序列号
#if IRC_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef IRC_CONFIG_STATUS_ON
#include "MediaProc/IRC_funtion/IRC_funtion.h"
#endif
... ... @@ -103,7 +103,7 @@ static const char *s_widgetTypeNameArray[] = {
// 按键编号 按键类型 发送数据 接收数据
//喊话器控件
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
static const T_DjiWidgetHandlerListItem s_widgetHandlerList[] = {
//喊话器部分
{0, DJI_WIDGET_TYPE_BUTTON, DjiTestWidget_SetWidgetValue, DjiTestWidget_GetWidgetValue, NULL},//上一曲
... ... @@ -154,7 +154,7 @@ int32_t s_widgetValueList[29] = { OFF, OFF, PLAY_PAUSE, 30, 30, PLAY_SPEED_
#endif
//红外控件
#if IRC_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef IRC_CONFIG_STATUS_ON
static const T_DjiWidgetHandlerListItem s_widgetHandlerList[] = {
//设备功能
{0, DJI_WIDGET_TYPE_LIST, DjiTestWidget_SetWidgetValue, DjiTestWidget_GetWidgetValue, NULL},//相机流切换
... ... @@ -460,7 +460,7 @@ static void *DjiTest_WidgetTask(void *arg)
//喊话器控件
static T_JZsdkReturnCode Megphone_Widget(unsigned int index, unsigned int value)
{
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
switch(index){
//喊话器部分
case 0://上一曲
... ... @@ -724,7 +724,7 @@ static T_JZsdkReturnCode Megphone_Widget(unsigned int index, unsigned int value)
static int EnlargeScreen = JZ_FLAGCODE_OFF; //画面放大系数
static T_JZsdkReturnCode Irc_Widget(unsigned int index, unsigned int value)
{
#if IRC_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef IRC_CONFIG_STATUS_ON
switch(index)
{
case 0://码流切换
... ...
... ... @@ -46,7 +46,7 @@
#include "version_choose.h"
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
#include "opus.h"
#include "Megaphone/Megaphone.h"
#endif
... ... @@ -217,7 +217,7 @@ static uint32_t DjiTest_KillVoicePlayProcess(uint32_t pid)
//--------------------------------------------修改为线程----------------------------------------------------
static void *DecodeAudioData_task(void *arg)
{
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
FILE *fin;
FILE *fout;
OpusDecoder *decoder;
... ... @@ -320,7 +320,7 @@ DecodeFinsh:
static T_DjiReturnCode DjiTest_PlayAudioData(void)
{
USER_LOG_INFO("播放固定位置的录音DjiTest_PlayAudioData ");
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
do
{
delayMs(100);
... ... @@ -390,7 +390,7 @@ static T_DjiReturnCode DjiTest_PlayTtsData(void)
JZsdk_Psdk_UI_io_Set_TTS_Play( data, readLen);
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
//增加一个标志位,确认播放完成
while (Megaphone_GetMegaphoneStatus() == 0x20) //如果仍然在播放opus录音
... ...
... ... @@ -32,7 +32,7 @@
extern "C" {
#endif
#include "./version_choose.h"
#include "version_choose.h"
/* Exported constants --------------------------------------------------------*/
// ATTENTION: User must goto https://developer.dji.com/user/apps/#all to create your own dji sdk application, get dji sdk application
... ...
... ... @@ -28,7 +28,7 @@
#define DJI_SDK_CONFIG_H
/* Includes ------------------------------------------------------------------*/
#include "./version_choose.h"
#include "version_choose.h"
#ifdef __cplusplus
extern "C" {
... ...
... ... @@ -10,7 +10,7 @@
* to DJI and may be covered by U.S. and foreign patents, patents in process,
* and protected by trade secret or copyright law. Dissemination of this
* information, including but not limited to data and other proprietary
* material(s) incorporated within the information, in any form, is strictly
* material(s) incorporated within the information, in any form, is strictly0
* prohibited without the express written consent of DJI.
*
* If you receive this source code without DJI’s authorization, you may not
... ... @@ -60,8 +60,8 @@
#include <string.h>
#include "JZsdkLib.h"
#include "./BaseConfig.h"
#include "./version_choose.h"
#include "BaseConfig.h"
#include "version_choose.h"
#include "Psdk_UI_io.h"
#include "DeviceInfo/DeviceInfo.h"
... ... @@ -486,7 +486,7 @@ int main(int argc, char *argv[])
// #endif
//注册喊话器回调函数-------------------------------------------------------------------------------START
#if MEGAPHONE_CONFIG_STATUS == VERSION_SWITCH_ON
#ifdef MEGAPHONE_CONFIG_STATUS_ON
returnCode = DjiTest_WidgetSpeakerStartService();
if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
USER_LOG_ERROR("widget speaker test init error");
... ... @@ -835,6 +835,8 @@ static T_DjiReturnCode DjiUser_FillInUserInfo(T_DjiUserInfo *userInfo)
memcpy(userInfo->baudRate, USER_BAUD_RATE, USER_UTIL_MIN(sizeof(userInfo->baudRate), strlen(USER_BAUD_RATE)));
strncpy(userInfo->developerAccount, USER_DEVELOPER_ACCOUNT, sizeof(userInfo->developerAccount) - 1);
USER_LOG_INFO("填充信息完毕");
return DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
... ...