JZsdk_Hal.c 3.2 KB
#include <stdio.h>

#include "JZsdkLib.h"
#include "Hal_Recv/HalRecv.h"
#include "Hal_Send/HalSend.h"
#include "JZsdk_Hal.h"
#include "BaseConfig.h"

#include "JZsdk_uart/JZsdk_Uart.h"

/******************
 * 
 *  用来记录端口使用情况的结构体
 *  JZ_FLAGCODE_OFF 关闭
 *  JZ_FLAGCODE_ON  开启
 * ********************/
typedef struct s_JZsdk_Hal_PortUseFlag
{
    int UartDev_DEV1 ;
    int UartDev_DEV2 ;  
    int UartDev_DEV3 ;
    int UartDev_DEV4 ;
    int UartDev_4G   ;
    int Data_Dransmisson;
}s_JZsdk_Hal_PortUseFlag;

static s_JZsdk_Hal_PortUseFlag g_PortUseFlag = {JZ_FLAGCODE_OFF};

/**************
 * 
 *  jzsdk hal的端口使用标志位
 * 
 * 
 * *********************/
int JZsdk_HalPort_UseFlag(int PortName)
{
    if (PortName == UART_DEV_1)
    {
        return g_PortUseFlag.UartDev_DEV1;
    }
    else if (PortName  == UART_DEV_2)
    {
        return g_PortUseFlag.UartDev_DEV2;
    }
    else if (PortName  == UART_DEV_3)
    {
        return g_PortUseFlag.UartDev_DEV3;
    }
    else if (PortName  == UART_DEV_4)
    {
        return g_PortUseFlag.UartDev_DEV4;
    }
    else if (PortName  == UART_4G)
    {
        return g_PortUseFlag.UartDev_4G;
    }
    else if (PortName  == HAL_DATA_TRANSMISSION)
    {
        return g_PortUseFlag.Data_Dransmisson;
    }
}

T_JZsdkReturnCode JZsdk_HalPort_SetUseFlag(int PortName,int UseFlag)
{
    if (PortName == UART_DEV_1)
    {
        g_PortUseFlag.UartDev_DEV1 = UseFlag;
    }
    else if (PortName  == UART_DEV_2)
    {
        g_PortUseFlag.UartDev_DEV2 = UseFlag;
    }
    else if (PortName  == UART_DEV_3)
    {
        g_PortUseFlag.UartDev_DEV3 = UseFlag;
    }
    else if (PortName  == UART_DEV_4)
    {
        g_PortUseFlag.UartDev_DEV4 = UseFlag;
    }
    else if (PortName  == UART_4G)
    {
        g_PortUseFlag.UartDev_4G = UseFlag;
    }
    else if (PortName  == HAL_DATA_TRANSMISSION)
    {
        g_PortUseFlag.Data_Dransmisson = UseFlag;
    }
    else
    {
        return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
    }

    return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}

/**********************
 * 
 *    hal端口 重初始化函数
 *  
 * 
 * ******************/
T_JZsdkReturnCode JZsdk_HalPort_ReInit(int PortName, int Value[])
{
    switch (PortName)
    {
        case UART_DEV_1:
            JZsdk_Uart_ReInit(PortName, Value[0]);
        break;

        case UART_DEV_2:
            JZsdk_Uart_ReInit(PortName, Value[0]);
        break;

        case UART_DEV_3:
            JZsdk_Uart_ReInit(PortName, Value[0]);
        break;

        case UART_DEV_4:
            JZsdk_Uart_ReInit(PortName, Value[0]);
        break;

        case UART_4G:
            JZsdk_Uart_ReInit(PortName, Value[0]);
        break;
        
        default:
            break;
    }
}

/**********************
 * 
 *    hal端口 使用默认参数初始化函数
 * 
 * ******************/
T_JZsdkReturnCode JZsdk_HalPort_Init_WithDefault(int PortName)
{
    int value[5] = {0, 0, 0, 0, 0};

    if (PortName == UART_DEV_1)
    {
        value[0] = UART_DEV1_BITRATE;
    }
    else if (PortName  == UART_DEV_2)
    {
        value[0] = UART_DEV2_BITRATE;
    }
    else if (PortName  == UART_4G)
    {
        value[0] = COMM_4G_UART_BITRATE;
    }

    return JZsdk_HalPort_ReInit(PortName, value);
}