JZ_H150A.c 3.3 KB
#include "JZsdkLib.h"
#include "BaseConfig.h"
#include <pthread.h>


#include "JZsdk_Hal.h"
#include "Megaphone/Megaphone.h"
#include "AudioDeal/AudioDeal.h"
#include "JZsdk_haldata_deal/JZsdk_data_transmisson.h"

#include "WarnLight/WarnLight.h"

#include "IRCUT/ircut.h"
#include "Hal_Send/HalSend.h"

/******************
 * 
 * 
 *  引脚初始化
 * 
 * *****************/
T_JZsdkReturnCode JZ_H150A_Ircut_Init()
{
    //引脚初始化
    IrcutInfo ircut_info;
    ircut_info.type = JZ_IRC_TYPE_LINUX_V3S;
    //ircut_info.type = JZ_IRC_TYPE_LINUX_V3S_2;

    ircut_info.Amplifiter_Pin.Enable = JZ_FLAGCODE_ON;
    ircut_info.Amplifiter_Pin.Port = JZ_IRC_PORT_PG;
    ircut_info.Amplifiter_Pin.index = 5;
    ircut_info.Amplifiter_Pin.Group = 0;
    ircut_info.Amplifiter_Pin.mode = JZ_IRC_PIN_MODE_OUT;

    Ircut_Init(ircut_info);
}

/********************
 * 
 * 
 *  基础参数设置
 * 
 * 
 * ****************/
static T_JZsdkReturnCode BaseParamSet(void)
{

    //设置警灯颜色

    //设置警灯模式

    //设置喊话器音量
    
    return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}

/****************************
 * 
 *  H150 初始化
 *  
 *  mode psdk为psdk模式 uart为串口模式
 * 
 * ****************************/
T_JZsdkReturnCode JZ_H150A_init(int mode)
{        
    //引脚初始化
    JZ_H150A_Ircut_Init();

    if (mode == APP_ATTENTION)
    {
        return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
    }

    if (mode == APP_UART)
    {
        //串口设备1初始化
        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);

    }

    if (mode == APP_PSDK)
    {
        //外接传输模块,用于与飞机的数据通信
        JZsdk_data_transmisson_Receive_Init();
    }
    
    //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_HalUartInit(&Uart4GInfo);

    //音频库初始化
    AudioDeal_Init();

    //喊话器初始化
    Megaphone_Init();

    //设置h150a滤波模式
    AudioDeal_SetFilterMode(2);

    //警灯初始化
    T_JzWarnLightInfo WarnLightInfo = {
        .Attribute.Color1 = E_JZ_WARNLIGHT_COLOR_RED,
        .Attribute.Color2 = E_JZ_WARNLIGHT_COLOR_BLUE,
        .Attribute.mode = JZ_FLAGCODE_OFF,
        .Attribute.status = JZ_FLAGCODE_OFF,

        .ControlMode = JZ_MODULE_CONTROL_WAY_INDEPENDENT,
        .Device = UART_4G,
        .FrameSequence = 0x00,
        .mode_version = 1,
    };
    WarnLight_Init(WarnLightInfo);

    //基础参数设置
    BaseParamSet();

    JZSDK_LOG_INFO("H150A Init Success");

    return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}