作者 ookk303

修改h150a滤波 修改了hal层逻辑 增加的hal层配置文件

正在显示 29 个修改的文件 包含 640 行增加189 行删除
# 编译链的配置
#1、编译链与设备类型的选择
set(DEVICE_NAME JZ_T40S)
set(DEVICE_NAME JZ_H150A)
#上一行为禁止修改行
message("**************************JZSDK构建编译开始***************************\n")
... ...
#include <stdio.h>
#include <stdio.h>
#include "./JZsdk_FileSystm.h"
#include <stdlib.h>
#include <stdbool.h>
... ... @@ -396,7 +396,7 @@ T_JZsdkReturnCode JZsdk_create_file(const char* file_path)
if (file != NULL)
{
fclose(file);
fsync(file);
fsync(fileno(file));
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
... ...
#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <string.h> // Include this for strncpy
#include "./JZsdk_Task.h"
T_JZsdkReturnCode JZsdk_Osal_TaskCreate(const char *name, void *(*taskFunc)(void *), unsigned int stackSize, void *arg,
T_JZTaskHandle *task)
{
... ...
#include "JZsdkLib.h"
#include "JZsdkLib.h"
#include "BaseConfig.h"
#include <pthread.h>
... ... @@ -33,12 +33,15 @@ T_JZsdkReturnCode JZ_h10_init(int mode)
if (mode == APP_UART)
{
//串口设备1初始化
s_JZ_SerialPortHalRegInfo SerialInfo = {
.BitRate = UART_DEV1_BITRATE,
.ConnectType = PORT_CONNECT_TYPE_AS_SUB
T_JZsdk_UartInfo UartInfo = {
.Base.PortId = UART_DEV_1,
.DevicePath = UART_DEV1_NUM,
.Baudrate = UART_DEV1_BITRATE,
.Base.HalStatus.ConnectType = PORT_CONNECT_TYPE_AS_SUB,
};
JZsdk_HalPort_Init(UART_DEV_1, (void *)&SerialInfo);
//串口设备1初始化
JZsdk_HalUartInit(&UartInfo);
}
if (mode == APP_PSDK)
... ...
#include "JZsdkLib.h"
#include "JZsdkLib.h"
#include "BaseConfig.h"
#include <pthread.h>
... ... @@ -39,12 +39,15 @@ T_JZsdkReturnCode JZ_h10t_init(int mode)
if (mode == APP_UART)
{
//串口设备1初始化
s_JZ_SerialPortHalRegInfo SerialInfo = {
.BitRate = UART_DEV1_BITRATE,
.ConnectType = PORT_CONNECT_TYPE_AS_SUB
T_JZsdk_UartInfo UartInfo = {
.Base.PortId = UART_DEV_1,
.DevicePath = UART_DEV1_NUM,
.Baudrate = UART_DEV1_BITRATE,
.Base.HalStatus.ConnectType = PORT_CONNECT_TYPE_AS_SUB,
};
JZsdk_HalPort_Init(UART_DEV_1, (void *)&SerialInfo);
//串口设备1初始化
JZsdk_HalUartInit(&UartInfo);
}
if (mode == APP_PSDK)
... ... @@ -53,13 +56,14 @@ T_JZsdkReturnCode JZ_h10t_init(int mode)
JZsdk_data_transmisson_Receive_Init();
}
//4g设备初始化
s_JZ_SerialPortHalRegInfo Serial_4G_Info = {
.BitRate = COMM_4G_UART_BITRATE,
.ConnectType = PORT_CONNECT_TYPE_AS_SUB
//4G初始化
T_JZsdk_UartInfo Uart4GInfo = {
.Base.PortId = UART_4G,
.DevicePath = COMM_4G_UART_NUM,
.Baudrate = COMM_4G_UART_BITRATE,
.Base.HalStatus.ConnectType = PORT_CONNECT_TYPE_AS_SUB,
};
JZsdk_HalPort_Init(UART_4G, (void *)&Serial_4G_Info);
JZsdk_HalUartInit(&Uart4GInfo);
//音频库初始化
AudioDeal_Init();
... ...
... ... @@ -74,12 +74,22 @@ T_JZsdkReturnCode JZ_H150A_init(int mode)
if (mode == APP_UART)
{
//串口设备1初始化
s_JZ_SerialPortHalRegInfo SerialInfo = {
.BitRate = UART_DEV1_BITRATE,
.ConnectType = PORT_CONNECT_TYPE_AS_SUB
};
T_JZsdk_UartInfo UartInfo = {
.Base.PortId = UART_DEV_1,
.DevicePath = UART_DEV1_NUM,
.Baudrate = UART_DEV1_BITRATE,
.Base.HalStatus.ConnectType = PORT_CONNECT_TYPE_AS_SUB,
};
//去检查有没有额外输入串口号
const char* devicepath = JZsdk_ParamterParsing_GetUart1Device();
if (devicepath != NULL)
{
memcpy(UartInfo.DevicePath, devicepath, sizeof(UartInfo.DevicePath));
}
JZsdk_HalUartInit(&UartInfo);
JZsdk_HalPort_Init(UART_DEV_1, (void *)&SerialInfo);
}
if (mode == APP_PSDK)
... ... @@ -88,12 +98,14 @@ T_JZsdkReturnCode JZ_H150A_init(int mode)
JZsdk_data_transmisson_Receive_Init();
}
//4G串口初始化
s_JZ_SerialPortHalRegInfo SerialInfo3 = {
.BitRate = COMM_4G_UART_BITRATE,
.ConnectType = PORT_CONNECT_TYPE_AS_MAIN,
//4g设备初始化
T_JZsdk_UartInfo Uart4GInfo = {
.Base.PortId = UART_4G,
.DevicePath = COMM_4G_UART_NUM,
.Baudrate = COMM_4G_UART_BITRATE,
.Base.HalStatus.ConnectType = PORT_CONNECT_TYPE_AS_SUB,
};
JZsdk_HalPort_Init(UART_4G, (void *)&SerialInfo3);
JZsdk_HalUartInit(&Uart4GInfo);
//音频库初始化
AudioDeal_Init();
... ...
#include "JZsdkLib.h"
#include "JZsdkLib.h"
#include "BaseConfig.h"
#include <pthread.h>
... ... @@ -82,13 +82,15 @@ T_JZsdkReturnCode JZ_h150s_h150t_init(int mode)
if (mode == APP_UART)
{
//串口设备1初始化
s_JZ_SerialPortHalRegInfo SerialInfo = {
.BitRate = UART_DEV1_BITRATE,
.ConnectType = PORT_CONNECT_TYPE_AS_SUB
T_JZsdk_UartInfo UartInfo = {
.Base.PortId = UART_DEV_1,
.DevicePath = UART_DEV1_NUM,
.Baudrate = UART_DEV1_BITRATE,
.Base.HalStatus.ConnectType = PORT_CONNECT_TYPE_AS_SUB,
};
JZsdk_HalPort_Init(UART_DEV_1, (void *)&SerialInfo);
//串口设备1初始化
JZsdk_HalUartInit(&UartInfo);
}
if (mode == APP_PSDK)
... ... @@ -100,13 +102,14 @@ T_JZsdkReturnCode JZ_h150s_h150t_init(int mode)
//h150t额外开启4g
if (DEVICE_VERSION == JZ_H150T)
{
//串口设备4g初始化
s_JZ_SerialPortHalRegInfo Serial_4G_Info = {
.BitRate = COMM_4G_UART_BITRATE,
.ConnectType = PORT_CONNECT_TYPE_AS_SUB
//4G初始化
T_JZsdk_UartInfo Uart4GInfo = {
.Base.PortId = UART_4G,
.DevicePath = COMM_4G_UART_NUM,
.Baudrate = COMM_4G_UART_BITRATE,
.Base.HalStatus.ConnectType = PORT_CONNECT_TYPE_AS_SUB,
};
JZsdk_HalPort_Init(UART_4G, (void *)&Serial_4G_Info);
JZsdk_HalUartInit(&Uart4GInfo);
}
if (mode == APP_UART)
... ...
#include "JZsdkLib.h"
#include "JZsdkLib.h"
#include "BaseConfig.h"
#include <pthread.h>
... ... @@ -47,12 +47,13 @@ T_JZsdkReturnCode JZ_h1e_init(int mode)
if (mode == APP_UART)
{
//串口设备1初始化
s_JZ_SerialPortHalRegInfo SerialInfo = {
.BitRate = UART_DEV1_BITRATE,
.ConnectType = PORT_CONNECT_TYPE_AS_SUB
T_JZsdk_UartInfo UartInfo = {
.Base.PortId = UART_DEV_1,
.DevicePath = UART_DEV1_NUM,
.Baudrate = UART_DEV1_BITRATE,
.Base.HalStatus.ConnectType = PORT_CONNECT_TYPE_AS_SUB,
};
JZsdk_HalPort_Init(UART_DEV_1, (void *)&SerialInfo);
JZsdk_HalUartInit(&UartInfo);
}
if (mode == APP_PSDK)
... ...
#include "JZsdkLib.h"
#include "JZsdkLib.h"
#include "BaseConfig.h"
#include <pthread.h>
... ... @@ -45,13 +45,16 @@ T_JZsdkReturnCode JZ_h1t_init(int mode)
if (mode == APP_UART)
{
//串口设备1初始化
s_JZ_SerialPortHalRegInfo SerialInfo = {
.BitRate = UART_DEV1_BITRATE,
.ConnectType = PORT_CONNECT_TYPE_AS_SUB
};
T_JZsdk_UartInfo UartInfo = {
.Base.PortId = UART_DEV_1,
.DevicePath = UART_DEV1_NUM,
.Baudrate = UART_DEV1_BITRATE,
.Base.HalStatus.ConnectType = PORT_CONNECT_TYPE_AS_SUB,
};
JZsdk_HalUartInit(&UartInfo);
JZsdk_HalPort_Init(UART_DEV_1, (void *)&SerialInfo);
}
if (mode == APP_PSDK)
{
... ... @@ -60,11 +63,13 @@ T_JZsdkReturnCode JZ_h1t_init(int mode)
}
//4g设备初始化
s_JZ_SerialPortHalRegInfo Serial_4G_Info = {
.BitRate = COMM_4G_UART_BITRATE,
.ConnectType = PORT_CONNECT_TYPE_AS_SUB
};
JZsdk_HalPort_Init(UART_4G, (void *)&Serial_4G_Info);
T_JZsdk_UartInfo Uart4GInfo = {
.Base.PortId = UART_4G,
.DevicePath = COMM_4G_UART_NUM,
.Baudrate = COMM_4G_UART_BITRATE,
.Base.HalStatus.ConnectType = PORT_CONNECT_TYPE_AS_SUB,
};
JZsdk_HalUartInit(&Uart4GInfo);
//音频库初始化
AudioDeal_Init();
... ...
... ... @@ -19,6 +19,8 @@
#include "UI_control/Psdk_ui_value_menu.h"
#include "UI_control/UI_control.h"
#include "../../ParamterParsing.h"
static int LeftDeviceId = 0; //t40专用分别左右id,用于判断是不是强激光
static int RightDeviceId = 0;
static int DeviceType = 0; //两边装的设备类型
... ... @@ -341,7 +343,6 @@ void *JZ_T40_CheckLightTemperatureTask(void *arg)
HalSend_type1Send_CheckStatus_SearchLight_Temperture(UART_DEV_2, 0x21);
}
delayMs(10);
//检查右灯温度
... ... @@ -763,12 +764,16 @@ T_JZsdkReturnCode JZ_T40_init_DT(int mode)
//子设备连接
JZ_T40_SubDevice_Init();
#if DEVICE_VERSION == JZ_T40S
//音频库初始化
AudioDeal_Init();
//喊话器初始化
Megaphone_Init();
#endif
//云台初始化
Gimbal_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT);
... ...
#include "JZsdkLib.h"
#include "JZsdkLib.h"
#include "BaseConfig.h"
#include <pthread.h>
... ... @@ -44,13 +44,15 @@ T_JZsdkReturnCode JZ_u3_init(int mode)
if (mode == APP_UART)
{
//串口设备1初始化
s_JZ_SerialPortHalRegInfo SerialInfo = {
.BitRate = UART_DEV1_BITRATE,
.ConnectType = PORT_CONNECT_TYPE_AS_SUB
};
T_JZsdk_UartInfo UartInfo = {
.Base.PortId = UART_DEV_1,
.DevicePath = UART_DEV1_NUM,
.Baudrate = UART_DEV1_BITRATE,
.Base.HalStatus.ConnectType = PORT_CONNECT_TYPE_AS_SUB,
};
JZsdk_HalPort_Init(UART_DEV_1, (void *)&SerialInfo);
//串口设备1初始化
JZsdk_HalUartInit(&UartInfo);
}
if (mode == APP_PSDK)
... ... @@ -60,12 +62,14 @@ T_JZsdkReturnCode JZ_u3_init(int mode)
}
//串口设备2初始化
s_JZ_SerialPortHalRegInfo SerialInfo2 = {
.BitRate = UART_DEV2_BITRATE,
.ConnectType = PORT_CONNECT_TYPE_AS_SUB
};
T_JZsdk_UartInfo Uart2Info = {
.Base.PortId = UART_DEV_2,
.DevicePath = UART_DEV2_NUM,
.Baudrate = UART_DEV2_BITRATE,
.Base.HalStatus.ConnectType = PORT_CONNECT_TYPE_AS_SUB,
};
JZsdk_HalUartInit(&Uart2Info);
JZsdk_HalPort_Init(UART_DEV_2, (void *)&SerialInfo2);
//音频库初始化
AudioDeal_Init();
... ...
#include "JZsdkLib.h"
#include "JZsdkLib.h"
#include "BaseConfig.h"
#include <pthread.h>
... ... @@ -31,16 +31,17 @@ T_JZsdkReturnCode JZ_u30_init(int mode)
if (mode == APP_UART)
{
//串口设备1初始化
s_JZ_SerialPortHalRegInfo SerialInfo = {
.BitRate = UART_DEV1_BITRATE,
.ConnectType = PORT_CONNECT_TYPE_AS_SUB
};
T_JZsdk_UartInfo UartInfo = {
.Base.PortId = UART_DEV_1,
.DevicePath = UART_DEV1_NUM,
.Baudrate = UART_DEV1_BITRATE,
.Base.HalStatus.ConnectType = PORT_CONNECT_TYPE_AS_SUB,
};
JZsdk_HalPort_Init(UART_DEV_1, (void *)&SerialInfo);
//串口设备1初始化
JZsdk_HalUartInit(&UartInfo);
}
if (mode == APP_PSDK)
{
//外接传输模块,用于与飞机的数据通信
... ... @@ -48,12 +49,13 @@ T_JZsdkReturnCode JZ_u30_init(int mode)
}
//串口设备2初始化
s_JZ_SerialPortHalRegInfo SerialInfo2 = {
.BitRate = UART_DEV2_BITRATE,
.ConnectType = PORT_CONNECT_TYPE_AS_SUB
};
JZsdk_HalPort_Init(UART_DEV_2, (void *)&SerialInfo2);
T_JZsdk_UartInfo Uart2Info = {
.Base.PortId = UART_DEV_2,
.DevicePath = UART_DEV2_NUM,
.Baudrate = UART_DEV2_BITRATE,
.Base.HalStatus.ConnectType = PORT_CONNECT_TYPE_AS_SUB,
};
JZsdk_HalUartInit(&Uart2Info);
//音频库初始化
AudioDeal_Init();
... ...
#include "JZsdkLib.h"
#include "JZsdkLib.h"
#include "BaseConfig.h"
#include <pthread.h>
... ... @@ -30,13 +30,15 @@ T_JZsdkReturnCode JZ_u3d_init(int mode)
if (mode == APP_UART)
{
//串口设备1初始化
s_JZ_SerialPortHalRegInfo SerialInfo = {
.BitRate = UART_DEV1_BITRATE,
.ConnectType = PORT_CONNECT_TYPE_AS_SUB
};
T_JZsdk_UartInfo UartInfo = {
.Base.PortId = UART_DEV_1,
.DevicePath = UART_DEV1_NUM,
.Baudrate = UART_DEV1_BITRATE,
.Base.HalStatus.ConnectType = PORT_CONNECT_TYPE_AS_SUB,
};
JZsdk_HalPort_Init(UART_DEV_1, (void *)&SerialInfo);
//串口设备1初始化
JZsdk_HalUartInit(&UartInfo);
}
if (mode == APP_PSDK)
... ... @@ -46,12 +48,13 @@ T_JZsdkReturnCode JZ_u3d_init(int mode)
}
//串口设备2初始化
s_JZ_SerialPortHalRegInfo SerialInfo2 = {
.BitRate = UART_DEV2_BITRATE,
.ConnectType = PORT_CONNECT_TYPE_AS_SUB
};
JZsdk_HalPort_Init(UART_DEV_2, (void *)&SerialInfo2);
T_JZsdk_UartInfo Uart2Info = {
.Base.PortId = UART_DEV_2,
.DevicePath = UART_DEV2_NUM,
.Baudrate = UART_DEV2_BITRATE,
.Base.HalStatus.ConnectType = PORT_CONNECT_TYPE_AS_SUB,
};
JZsdk_HalUartInit(&Uart2Info);
//音频库初始化
AudioDeal_Init();
... ...
#include "JZsdkLib.h"
#include "JZsdkLib.h"
#include "BaseConfig.h"
#include <pthread.h>
... ... @@ -62,13 +62,15 @@ T_JZsdkReturnCode JZ_u3s_init(int mode)
if (mode == APP_UART)
{
//串口设备1初始化
s_JZ_SerialPortHalRegInfo SerialInfo = {
.BitRate = UART_DEV1_BITRATE,
.ConnectType = PORT_CONNECT_TYPE_AS_SUB
};
T_JZsdk_UartInfo UartInfo = {
.Base.PortId = UART_DEV_1,
.DevicePath = UART_DEV1_NUM,
.Baudrate = UART_DEV1_BITRATE,
.Base.HalStatus.ConnectType = PORT_CONNECT_TYPE_AS_SUB,
};
JZsdk_HalPort_Init(UART_DEV_1, (void *)&SerialInfo);
//串口设备1初始化
JZsdk_HalUartInit(&UartInfo);
}
if (mode == APP_PSDK)
... ... @@ -78,12 +80,13 @@ T_JZsdkReturnCode JZ_u3s_init(int mode)
}
//串口设备2初始化
s_JZ_SerialPortHalRegInfo SerialInfo2 = {
.BitRate = UART_DEV2_BITRATE,
.ConnectType = PORT_CONNECT_TYPE_AS_SUB
};
JZsdk_HalPort_Init(UART_DEV_2, (void *)&SerialInfo2);
T_JZsdk_UartInfo Uart2Info = {
.Base.PortId = UART_DEV_2,
.DevicePath = UART_DEV2_NUM,
.Baudrate = UART_DEV2_BITRATE,
.Base.HalStatus.ConnectType = PORT_CONNECT_TYPE_AS_SUB,
};
JZsdk_HalUartInit(&Uart2Info);
//音频库初始化
AudioDeal_Init();
... ...
#include "JZsdkLib.h"
#include "JZsdkLib.h"
#include "BaseConfig.h"
#include <pthread.h>
... ... @@ -29,16 +29,17 @@ T_JZsdkReturnCode TF_a1_init(int mode)
Ircut_Init(ircut_info);
//hal层初始化
if (mode == APP_UART)
{
//串口设备1初始化
s_JZ_SerialPortHalRegInfo SerialInfo = {
.BitRate = UART_DEV1_BITRATE,
.ConnectType = PORT_CONNECT_TYPE_AS_SUB
};
T_JZsdk_UartInfo UartInfo = {
.Base.PortId = UART_DEV_1,
.DevicePath = UART_DEV1_NUM,
.Baudrate = UART_DEV1_BITRATE,
.Base.HalStatus.ConnectType = PORT_CONNECT_TYPE_AS_SUB,
};
JZsdk_HalPort_Init(UART_DEV_1, (void *)&SerialInfo);
//串口设备1初始化
JZsdk_HalUartInit(&UartInfo);
}
if (mode == APP_PSDK)
... ... @@ -46,14 +47,15 @@ T_JZsdkReturnCode TF_a1_init(int mode)
//外接传输模块,用于与飞机的数据通信
JZsdk_data_transmisson_Receive_Init();
}
//串口设备2初始化
s_JZ_SerialPortHalRegInfo SerialInfo2 = {
.BitRate = UART_DEV2_BITRATE,
.ConnectType = PORT_CONNECT_TYPE_AS_SUB
};
JZsdk_HalPort_Init(UART_DEV_2, (void *)&SerialInfo2);
//串口设备2初始化
T_JZsdk_UartInfo Uart2Info = {
.Base.PortId = UART_DEV_2,
.DevicePath = UART_DEV2_NUM,
.Baudrate = UART_DEV2_BITRATE,
.Base.HalStatus.ConnectType = PORT_CONNECT_TYPE_AS_SUB,
};
JZsdk_HalUartInit(&Uart2Info);
//音频库初始化
AudioDeal_Init();
... ...
#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
... ... @@ -36,6 +36,7 @@ typedef enum parameter{
PARAMETER_OUT_TIMEFLAG = 0x1010, //备用超时标志位
PARAMETER_OUT_TIMEOUT = 0x1011, //备用超时时间
PARAMETER_PLAY_PROMPT_TTS = 0x1012, //播放提示音
PARAMETER_UART1 = 0x1013, //修改串口1
}parameter;
static const struct option storage_opts[] = {
... ... @@ -43,6 +44,7 @@ static const struct option storage_opts[] = {
{ "OutTime", required_argument, 0, PARAMETER_OUT_TIMEOUT }, //超时时间
{ "play_prompt_tts", required_argument, NULL, PARAMETER_PLAY_PROMPT_TTS }, //提示选项
{ "uart1", required_argument, NULL, PARAMETER_UART1 }, //连接的串口1
{ 0, 0, 0, 0 }
};
... ... @@ -50,6 +52,7 @@ static const struct option storage_opts[] = {
static int Timeout_flag = JZ_FLAGCODE_OFF; //超时标记位,默认关闭
static int Timeout_time = 60; //超时时间
unsigned char *g_JZsdkParam_PlayPromptTTS = NULL; //播放提示音
static char* g_extern_uart1_device = NULL; //额外输入的串口1
int JZsdk_ParamterParsing_GetTimeOutFlag()
{
... ... @@ -61,6 +64,12 @@ int JZsdk_ParamterParsing_GetTimeOutTime()
return Timeout_time;
}
// getter 函数
const char* JZsdk_ParamterParsing_GetUart1Device(void)
{
return g_extern_uart1_device;
}
/*************************************
*
* * 程序参数解析
... ... @@ -105,6 +114,12 @@ T_JZsdkReturnCode JZsdk_ParamterParsing(int argc, char *argv[], unsigned int *mo
*mode = 1;
break;
//uart1选项
case PARAMETER_UART1:
printf("uart1 device: %s\n", optarg);
g_extern_uart1_device = optarg;
break;
case 'f': //超时标记位
Timeout_flag = atoi(optarg);
break;
... ...
/**
/**
********************************************************************
* @file ParamterParsing.h
* 用于文件系统操作
... ... @@ -27,6 +27,7 @@ extern "C" {
T_JZsdkReturnCode JZsdk_ParamterParsing(int argc, char *argv[], unsigned int *mode);
int JZsdk_ParamterParsing_GetTimeOutFlag();
int JZsdk_ParamterParsing_GetTimeOutTime();
const char* JZsdk_ParamterParsing_GetUart1Device(void);
#ifdef __cplusplus
}
... ...
/* ********************************************************************
*
* 用于确认对应设备的选择
*
***********************************************/
#ifndef VERSION_CHOOSE_H
#define VERSION_CHOOSE_H
#include "JZsdk_Base/JZsdk_Code/JZsdk_DeviceCode.h"
//1~10行 除了D可以修改版本选择 禁止动任何东西
#define DEVICE_VERSION JZ_T40
//禁止修改行 选择是串口程序 还是 psdk程序
#define APP_VERSION APP_PSDK
//禁止修改行 板子型号
#define PLATFORM_VERSION PLATFORM_V3S
//禁止修改行 串口连接程序的软件版本号
#define MAJOR_VERSION_TEN_POSITION 0
#define MAJOR_VERSION_ONE_POSITION 0
... ... @@ -7,28 +7,28 @@
#define VERSION_CHOOSE_H
#include "JZsdk_Base/JZsdk_Code/JZsdk_DeviceCode.h"
//1~10行 除了D可以修改版本选择 禁止动任何东西
#define DEVICE_VERSION JZ_T40S
#define DEVICE_VERSION JZ_H150A
//禁止修改行 选择是串口程序 还是 psdk程序
#define APP_VERSION APP_UART
#define APP_VERSION APP_PSDK
//禁止修改行 板子型号
#define PLATFORM_VERSION PLATFORM_V3S
//禁止修改行 串口连接程序的软件版本号
#define MAJOR_VERSION_TEN_POSITION 0
#define MAJOR_VERSION_ONE_POSITION 0
#define MAJOR_VERSION_ONE_POSITION 1
#define MINOR_VERSION_TEN_POSITION 0
#define MINOR_VERSION_ONE_POSITION 0
#define MODIFY_VERSION_TEN_POSITION 0
#define MODIFY_VERSION_ONE_POSITION 2
#define DEBUG_VERSION_TEN_POSITION 2
#define DEBUG_VERSION_ONE_POSITION 8
#define MINOR_VERSION_ONE_POSITION 3
#define MODIFY_VERSION_TEN_POSITION 1
#define MODIFY_VERSION_ONE_POSITION 5
#define DEBUG_VERSION_TEN_POSITION 0
#define DEBUG_VERSION_ONE_POSITION 2
#define FIRMWARE_ORIGIN DOMESTIC_VERSION
//禁止修改行31 特殊版本号
#define SPECIAL_VERSION SPECIAL_DAOTONG
#define SPECIAL_VERSION SPECIAL_NORMAL
//版本号
#define MAJOR_VERSION (MAJOR_VERSION_TEN_POSITION*10+MAJOR_VERSION_ONE_POSITION)
... ...
... ... @@ -88,6 +88,9 @@ static T_JZsdkReturnCode RecvDeal_AskForConnect(int Port, char *getbuf)
if (Port == UART_DEV_1)
{
Main_WorkModeSet(JZ_FLAGCODE_ON);
//设置
JZsdk_Hal_config_use_uart1(3);
}
//5、打开连接状态
... ...
#include "JZsdkLib.h"
#include <string.h> // 确保包含头文件
#include "./JZsdk_Hal.h"
#include "BaseConfig.h"
#define JZSDK_HAL_CONFIG_FILE "/root/sdcard/config.ini"
/**
* 读取INI配置文件中的指定键值对
* @param config_file 配置文件路径
* @param section 配置段名称
* @param key 键名称
* @return 成功返回动态分配的字符串(需调用者 free),失败返回 NULL
*/
char* JZsdk_HalConfig_Read(const char* config_file, const char* section, const char* key) {
FILE* fp = fopen(config_file, "r");
if (!fp) return NULL;
char line[1024];
char section_buf[256];
int in_target_section = 0;
char* result = NULL;
while (fgets(line, sizeof(line), fp)) {
// 去除行尾换行符
size_t len = strlen(line);
while (len > 0 && (line[len - 1] == '\n' || line[len - 1] == '\r')) {
line[--len] = '\0';
}
if (line[0] == '[') {
if (sscanf(line, "[%[^]]]", section_buf) == 1) {
// 去除空格
char* start = section_buf;
char* end = section_buf + strlen(section_buf) - 1;
while (start <= end && (*start == ' ' || *start == '\t')) start++;
while (end >= start && (*end == ' ' || *end == '\t')) end--;
if (start <= end) {
*(end + 1) = '\0';
in_target_section = (strcmp(start, section) == 0);
}
}
continue;
}
if (in_target_section) {
char current_key[256], current_value[256];
if (sscanf(line, "%[^=]=%[^\n]", current_key, current_value) == 2) {
// 去除key两端空格
char* k_start = current_key;
char* k_end = current_key + strlen(current_key) - 1;
while (k_start <= k_end && (*k_start == ' ' || *k_start == '\t')) k_start++;
while (k_end >= k_start && (*k_end == ' ' || *k_end == '\t')) k_end--;
if (k_start <= k_end) {
*(k_end + 1) = '\0';
if (strcmp(k_start, key) == 0) {
// 去除value两端空格和行尾注释
char* v_start = current_value;
char* v_end = current_value + strlen(current_value) - 1;
while (v_start <= v_end && (*v_start == ' ' || *v_start == '\t')) v_start++;
while (v_end >= v_start) {
if (*v_end == ' ' || *v_end == '\t' || *v_end == '#') {
v_end--;
}
else {
break;
}
}
if (v_start <= v_end) {
size_t val_len = v_end - v_start + 1;
result = (char*)malloc(val_len + 1);
if (result) {
strncpy(result, v_start, val_len);
result[val_len] = '\0';
}
}
break;
}
}
}
}
}
fclose(fp);
return result;
}
/**
* 修改INI配置文件中的指定键值对
* @param config_file 配置文件路径
* @param section 配置段名称(如 "APP_RUN_TYPE")
* @param key 键名称(如 "appmode")
* @param new_value 新的值(字符串形式)
* @return 0成功,-1失败
*/
T_JZsdkReturnCode JZsdk_HalConfig_Write(const char* config_file, const char* section,
const char* key, const char* new_value)
{
FILE* fp, * fp_temp;
char temp_file[512];
char line[1024];
char section_buf[256];
int in_target_section = 0;
int key_found = 0;
int ret = 0;
// 参数检查
if (!config_file || !section || !key || !new_value) {
printf("错误:参数不能为空\n");
return -1;
}
// 检查原文件是否存在
fp = fopen(config_file, "r");
if (!fp) {
JZSDK_LOG_ERROR("错误:无法打开配置文件 %s\n", config_file);
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
// 创建临时文件
snprintf(temp_file, sizeof(temp_file), "%s.tmp", config_file);
fp_temp = fopen(temp_file, "w");
if (!fp_temp) {
JZSDK_LOG_ERROR("错误:无法创建临时文件\n");
fclose(fp);
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
// 逐行读取原文件并处理
while (fgets(line, sizeof(line), fp)) {
// 去除行尾的换行符(保留用于写入)
size_t len = strlen(line);
if (len > 0 && (line[len - 1] == '\n' || line[len - 1] == '\r')) {
line[len - 1] = '\0';
len--;
}
if (len > 0 && line[len - 1] == '\r') {
line[len - 1] = '\0';
}
// 检查是否是section行
if (line[0] == '[') {
// 解析section名称
if (sscanf(line, "[%[^]]]", section_buf) == 1) {
// 去除section名称两端的空格
char* start = section_buf;
char* end = section_buf + strlen(section_buf) - 1;
while (start <= end && (*start == ' ' || *start == '\t')) start++;
while (end >= start && (*end == ' ' || *end == '\t')) end--;
if (start <= end) {
*(end + 1) = '\0';
// 判断是否是目标section
if (strcmp(start, section) == 0) {
in_target_section = 1;
printf("进入目标段: [%s]\n", section);
}
else {
in_target_section = 0;
}
}
}
// 写入原section行
fprintf(fp_temp, "%s\n", line);
continue;
}
// 如果在目标section内,查找key
if (in_target_section && !key_found) {
char current_key[256];
char current_value[256];
// 尝试解析key=value格式
if (sscanf(line, "%[^=]=%[^\n]", current_key, current_value) == 2) {
// 去除key两端的空格
char* key_start = current_key;
char* key_end = current_key + strlen(current_key) - 1;
while (key_start <= key_end && (*key_start == ' ' || *key_start == '\t')) key_start++;
while (key_end >= key_start && (*key_end == ' ' || *key_end == '\t')) key_end--;
if (key_start <= key_end) {
*(key_end + 1) = '\0';
// 检查是否是目标key
if (strcmp(key_start, key) == 0) {
printf("找到目标键: %s,原值: %s,修改为新值: %s\n",
key, current_value, new_value);
// 保留原行的缩进和格式
// 找到等号的位置
char* eq_pos = strchr(line, '=');
if (eq_pos) {
// 计算等号前的部分(包括空格)
int prefix_len = eq_pos - line + 1;
// 写入key部分(保持原格式)
fprintf(fp_temp, "%.*s%s\n", prefix_len, line, new_value);
}
else {
// 如果找不到等号(不应该发生),简单写入
fprintf(fp_temp, "%s=%s\n", key, new_value);
}
key_found = 1;
continue;
}
}
}
}
// 如果不是目标key,写入原行
fprintf(fp_temp, "%s\n", line);
}
// 如果在目标section内没有找到目标key,则在section末尾添加
if (in_target_section && !key_found) {
printf("未找到键 %s,在段末添加: %s=%s\n", key, key, new_value);
fprintf(fp_temp, "%s=%s\n", key, new_value);
}
// 关闭文件
fclose(fp);
fclose(fp_temp);
// 用临时文件替换原文件
if (remove(config_file) != 0) {
printf("警告:无法删除原文件 %s\n", config_file);
ret = -1;
}
if (rename(temp_file, config_file) != 0) {
printf("错误:无法重命名临时文件为 %s\n", config_file);
ret = -1;
}
if (ret == 0) {
printf("成功修改配置文件: %s\n", config_file);
}
return ret;
}
T_JZsdkReturnCode JZsdk_Hal_config_use_uart1(int num)
{
// const char* config_file = JZSDK_HAL_CONFIG_FILE;
// const char* target_value = NULL;
// char* current_value = NULL;
// int need_write = 0;
//
// // 确定目标值
// if (num == 0) {
// target_value = "0";
// }
// else if (num == 1) {
// target_value = "1";
// }
// else if (num == 3) {
//#if DEVICE_VERSION == JZ_H150A
// T_JZsdkHalHandle* handle = JZsdk_Platform_GetHalHandle();
// if (handle != NULL) {
// T_JZsdk_HalInfo HalInfo;
// handle->GetHalInfo(&HalInfo);
// for (int i = 0; i < HalInfo.UartNum; i++) {
// if (strcmp(HalInfo.UartInfo[i].DevicePath, "/dev/ttyS2") == 0) {
// target_value = "0";
// break;
// }
// else if (strcmp(HalInfo.UartInfo[i].DevicePath, "/dev/ttyGS0") == 0) {
// target_value = "1";
// break;
// }
// }
// }
//#endif
// if (!target_value) {
// JZSDK_LOG_ERROR("无法确定目标设备类型");
// return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
// }
// }
// else {
// return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; // 其他num不处理
// }
//
// // 读取当前配置值
// current_value = JZsdk_HalConfig_Read(config_file, "UART1", "device");
// if (current_value) {
// if (strcmp(current_value, target_value) != 0) {
// need_write = 1;
// }
// free(current_value);
// }
// else {
// // 读取失败(如文件不存在或键不存在),需要写入
// need_write = 1;
// }
//
// if (need_write) {
// if (JZsdk_HalConfig_Write(config_file, "UART1", "device", target_value) == 0) {
// JZSDK_LOG_INFO("成功修改device为 %s\n", target_value);
// }
// else {
// JZSDK_LOG_ERROR("修改device失败");
// return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
// }
// }
// else {
// JZSDK_LOG_INFO("device已经是 %s,无需修改\n", target_value);
// }
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
T_JZsdkReturnCode JZsdk_HalConfigInit()
{
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
... ...
... ... @@ -165,6 +165,8 @@ T_JZsdkReturnCode JZsdk_HalDirectDataInit(T_JZsdk_DirectDataInfo* pDirectDataInf
int JZsdk_HalPort_UseFlag(int PortName);
T_JZsdkReturnCode JZsdk_Hal_config_use_uart1(int num);
#ifdef __cplusplus
}
#endif
... ...
#include <stdio.h>
#include <stdio.h>
#include <string.h>
#include <pthread.h>
#include <stdlib.h>
... ... @@ -531,7 +531,7 @@ T_JZsdkReturnCode JZsdk_Uart_UartSend_NotTask(int Uart_Name, unsigned char *str,
//printf("向串口1号设备发送\n");
write(Uart_DEV1_fd, str, str_lenth);
}
else if (Uart_Name = UART_DEV_2)
else if (Uart_Name == UART_DEV_2)
{
//printf("向串口2号设备发送\n");
write(Uart_DEV2_fd, str, str_lenth);
... ... @@ -650,7 +650,7 @@ static T_JZsdkReturnCode JZsdk_Uart_CloseUartFd(int UartPort)
else if (UartPort == UART_DEV_2)
{
JZSDK_LOG_INFO("关闭串口2识别符\n");
close(Uart_DEV1_fd);
close(Uart_DEV2_fd);
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
}
... ...
... ... @@ -393,7 +393,7 @@ T_JZsdkReturnCode FF_Filter_Init(struct AudioDealInfo *AD_Info, int AudioType)
break;
case FILTER_FORMAL_H150A:
ret = FF_Filter_ParamInit(AD_Info, FILTER_PARAM_NORMAL_AUDIO);
ret = FF_Filter_ParamInit(AD_Info, FILTER_FORMAL_15_H150A);
break;
default:
... ...
/**
/**
********************************************************************
* @file FF_FilterParam.h
* FF_FilterParam.h
... ... @@ -350,6 +350,7 @@ extern "C" {
lowpass=f=6000:width_type=q:w=1.8, \
volume=0.98"
//测试 34~35度 26.3.18
#define FILTER_FORMAL_11_H150A "equalizer=f=250:t=q:w=2.0:g=-14, \
equalizer=f=500:t=q:w=2.0:g=-6, \
equalizer=f=1000:t=q:w=2.0:g=+0, \
... ... @@ -368,10 +369,28 @@ extern "C" {
highpass=f=80:width_type=q:w=1.2, \
volume=0.98"
#define FILTER_FORMAL_12_H150A "equalizer=f=250:t=q:w=2.0:g=-16, \
equalizer=f=500:t=q:w=2.0:g=-8, \
equalizer=f=1000:t=q:w=2.0:g=-4, \
equalizer=f=2000:t=q:w=2.0:g=-2, \
//温度过高,半小时61度,可能是aphaser带来的频谱位移导致
#define FILTER_MUSIC_13_H150A "equalizer=f=31:t=q:w=2.0:g=-12, \
equalizer=f=62:t=q:w=2.0:g=-3, \
equalizer=f=125:t=q:w=2.0:g=0, \
equalizer=f=250:t=q:w=2.0:g=-3, \
equalizer=f=500:t=q:w=2.0:g=0, \
equalizer=f=1000:t=q:w=2.0:g=+1, \
equalizer=f=2000:t=q:w=2.0:g=+1, \
equalizer=f=4000:t=q:w=2.0:g=+1, \
equalizer=f=8000:t=q:w=2.0:g=+2, \
equalizer=f=16000:t=q:w=2.0:g=+2, \
lowpass=f=18000:width_type=q:w=1.0, \
highpass=f=60:width_type=q:w=1.2, \
compand=attacks=0:decays=0.3:points=-60/-60|-30/-24|-20/-18|-10/-12|0/-6:gain=2, \
aphaser=delay=1:decay=0.1:speed=0.5, \
volume=1.0"
//比11补偿点中低频, 温度34,音量126-127
#define FILTER_FORMAL_14_H150A "equalizer=f=250:t=q:w=2.0:g=-14, \
equalizer=f=500:t=q:w=2.0:g=-6, \
equalizer=f=1000:t=q:w=2.0:g=+0, \
equalizer=f=2000:t=q:w=2.0:g=+0, \
equalizer=f=4000:t=q:w=2.0:g=+0, \
equalizer=f=8000:t=q:w=2.0:g=-8, \
equalizer=f=16000:t=q:w=2.0:g=-2, \
... ... @@ -384,14 +403,38 @@ extern "C" {
equalizer=f=125:t=q:w=2.0:g=-48, \
lowpass=f=6000:width_type=q:w=1.8, \
highpass=f=80:width_type=q:w=1.2, \
aphaser=delay=1:decay=0.1:speed=0.5, \
volume=0.98"
#define FILTER_FORMAL_13_H150A "equalizer=f=250:t=q:w=2.0:g=-24, \
equalizer=f=500:t=q:w=2.0:g=-16, \
equalizer=f=1000:t=q:w=2.0:g=-8, \
equalizer=f=2000:t=q:w=2.0:g=-4, \
//温度33,音量126
#define FILTER_FORMAL_15_H150A "equalizer=f=250:t=q:w=2.0:g=-10, \
equalizer=f=500:t=q:w=2.0:g=-3, \
equalizer=f=1000:t=q:w=2.0:g=+0, \
equalizer=f=2000:t=q:w=2.0:g=+0, \
equalizer=f=4000:t=q:w=2.0:g=+0, \
equalizer=f=8000:t=q:w=2.0:g=-8, \
equalizer=f=8000:t=q:w=2.0:g=-6, \
equalizer=f=16000:t=q:w=2.0:g=-2, \
compand=attacks=0:decays=0.3:points=-60/-60|-30/-20|-20/-15|-10/-10|0/-5:gain=3, \
equalizer=f=4:t=q:w=2.0:g=-96, \
equalizer=f=8:t=q:w=2.0:g=-96, \
equalizer=f=15:t=q:w=2.0:g=-96, \
equalizer=f=31:t=q:w=2.0:g=-72, \
equalizer=f=62:t=q:w=2.0:g=-48, \
equalizer=f=125:t=q:w=2.0:g=-48, \
lowpass=f=6000:width_type=q:w=1.8, \
highpass=f=80:width_type=q:w=1.2, \
aphaser=delay=1:decay=0.1:speed=0.5, \
volume=0.98"
//温度37,音量125-126 温度高了
#define FILTER_FORMAL_16_H150A "equalizer=f=250:t=q:w=2.0:g=-10, \
equalizer=f=500:t=q:w=2.0:g=-3, \
equalizer=f=1000:t=q:w=2.0:g=+0, \
equalizer=f=2000:t=q:w=2.0:g=+0, \
equalizer=f=4000:t=q:w=2.0:g=+0, \
equalizer=f=8000:t=q:w=2.0:g=-4, \
equalizer=f=16000:t=q:w=2.0:g=-2, \
compand=attacks=0:decays=0.3:points=-60/-60|-30/-20|-20/-15|-10/-10|0/-5:gain=3, \
equalizer=f=4:t=q:w=2.0:g=-96, \
... ... @@ -402,6 +445,7 @@ extern "C" {
equalizer=f=125:t=q:w=2.0:g=-48, \
lowpass=f=6000:width_type=q:w=1.8, \
highpass=f=80:width_type=q:w=1.2, \
aphaser=delay=1:decay=0.1:speed=0.5, \
volume=0.98"
... ...
/**
/**
********************************************************************
* @file VolumeLimit.h
* VolumeLimit.h 的头文件
... ... @@ -114,12 +114,12 @@ extern "C" {
// #define MAX_VOLUME (80)
// #define MAX_TTS_VOLUME (75)
//2.1~2.2欧姆的振膜 默认参数87 88 11号参数 73 73
//#define MAX_VOLUME (71)
//#define MAX_TTS_VOLUME (71)
#define MAX_VOLUME (85)
#define MAX_TTS_VOLUME (85)
#define MAX_VOLUME (73)
#define MAX_TTS_VOLUME (73)
//旧滤波 和 11参
//#define MAX_VOLUME (73)
//#define MAX_TTS_VOLUME (73)
#else
#define MAX_VOLUME (75)
#define MAX_TTS_VOLUME (75)
... ...
... ... @@ -62,6 +62,13 @@ extern "C" {
#define USER_DEVELOPER_ACCOUNT "jizhisdk@163.com"
#define USER_BAUD_RATE "921600"
//#define USER_APP_NAME "ID0570"
//#define USER_APP_ID "177576"
//#define USER_APP_KEY "5ce1ab19916613ec389a17c99670176"
//#define USER_APP_LICENSE "tSm/nAFGayFQ1WZ4WwR+OfHzopYB978IMd87NYb4zeXe/7rZHFVm8RIFZHi2MGZXx9VJJDovigWm6oGjiiRShshD8TmRC8mO4wcQKmZOaAuae915caKzsvFeMb0ekYyeYpzRB43cWH+Rvri3Sb6SMeAdxHI+i7FA/uGre0nNGhv6A+UXBUreufKMq9Rf9Y9qccQqGY8YtgldNlDJHapRuqKJsdZejkCEccNFv1O5AVZO63A7r/UfF49EkljCAhlAaSu1Z7qHHqBb9NbovuTf4d+omlL/ys+2ug7RPxhAdTKAbvvP49k8ObMze9FZTF4vBSuXzuveKCg/XMgWWP3dSw=="
//#define USER_DEVELOPER_ACCOUNT "acme20251208@163.com"
//#define USER_BAUD_RATE "921600"
//#define USER_APP_NAME "H150A"
//#define USER_APP_ID "180445"
//#define USER_APP_KEY "0164ed60d70b438c5ff26fde60c6609"
... ...
... ... @@ -68,6 +68,8 @@
#include "CommonMod/PowerManger/PowerManger.h"
#include "DJI_Expansion.h"
#include "JZsdk_Hal.h"
#ifdef AUDIODEAL_CONFIG_STATUS_ON
#include "AudioDeal/AudioDeal.h"
#endif
... ... @@ -1250,4 +1252,24 @@ void *getworkmodeTask(void *arg)
int flag = 0x01;
Main_StartupPriority(&flag);
#if DEVICE_VERSION == JZ_H150A
//h150a新增,如果是h150a,增加一个新的识别
//如果是m400,输入1 如果是m350输入0
T_DjiAircraftInfoBaseInfo aircraftInfoBaseInfo;
DjiAircraftInfo_GetBaseInfo(&aircraftInfoBaseInfo);
if (aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_SERIES_M350)
{
//在hal层中写入uart口
JZsdk_Hal_config_use_uart1(0);
}
else if (aircraftInfoBaseInfo.aircraftType == DJI_AIRCRAFT_TYPE_M400)
{
//在hal层中写入uart口
JZsdk_Hal_config_use_uart1(1);
}
#endif // DEVICE_VERSION == JZ_H150A
}
\ No newline at end of file
... ...
/**
/**
********************************************************************
* @file hal_uart.c
* @brief
... ... @@ -25,7 +25,7 @@
/* Includes ------------------------------------------------------------------*/
#include <dji_logger.h>
#include "hal_uart.h"
#include "version_choose.h"
#include "BaseConfig.h"
/* Private constants ---------------------------------------------------------*/
#define UART_DEV_NAME_STR_SIZE (128)
... ... @@ -59,14 +59,25 @@ T_DjiReturnCode HalUart_Init(E_DjiHalUartNum uartNum, uint32_t baudRate, T_DjiUa
return DJI_ERROR_SYSTEM_MODULE_CODE_MEMORY_ALLOC_FAILED;
}
if (uartNum == DJI_HAL_UART_NUM_0) {
strcpy(uartName, LINUX_UART_DEV1);
} else if (uartNum == DJI_HAL_UART_NUM_1) {
strcpy(uartName, LINUX_UART_DEV2);
} else {
goto free_uart_handle;
//获取 输入参数是否存在串口
if (JZsdk_ParamterParsing_GetUart1Device() == NULL)
{
if (uartNum == DJI_HAL_UART_NUM_0) {
strcpy(uartName, LINUX_UART_DEV1);
}
else if (uartNum == DJI_HAL_UART_NUM_1) {
strcpy(uartName, LINUX_UART_DEV2);
}
else {
goto free_uart_handle;
}
}
else
{
strcpy(uartName, JZsdk_ParamterParsing_GetUart1Device());
}
#ifdef USE_CLION_DEBUG
sprintf(systemCmd, "ls -l %s", uartName);
fp = popen(systemCmd, "r");
... ...