JZsdk_Hal.h 2.5 KB
/**
 ********************************************************************
 * @file   JZsdk_Hal.h
 *         JZsdk_Hal.c 的头文件
 * @version V0.1.0
 * @date   
 * @brief   This is the JZsdk_Hal.h file
 *
 * @attention
 *
 *
 *********************************************************************

/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef JZSDK_HAL_H
#define JZSDK_HAL_H

/* Includes ------------------------------------------------------------------*/

#ifdef __cplusplus
extern "C" {
#endif


/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/

#define JZ_MAX_SUB_ID_NUM 10

typedef enum E_HAL_PORT_TYPE
{
    PORT_TYPE_PSDK   = 0,
    PORT_TYPE_UART = 1,
    PORT_TYPE_USB  = 2,
    PORT_TYPE_NET  = 3,
    
    PORT_TYPE_TRANS_DATA = 4,
}E_HAL_PORT_TYPE;

typedef enum E_HAL_CONNECT_TYPE
{
    PORT_CONNECT_TYPE_AS_SUB = 0, //作为副设备
    PORT_CONNECT_TYPE_AS_MAIN = 1, //作为主设备
    
}E_HAL_CONNECT_TYPE;


/******************
 * 
 *  hal使用状态
 * 
 * ********/
typedef struct s_JZ_SerialPortHalRegInfo
{
    int BitRate; //波特率
    E_HAL_CONNECT_TYPE ConnectType; //连接类型
}s_JZ_SerialPortHalRegInfo;


/******************
 * 
 *  hal使用状态
 * 
 * 
 * 
 * ********/
typedef struct s_JZsdk_HalStatus
{
    int UseFlag; //hal使用标志位    //初始化时开关关闭
    int PortType; //hal的端口类型
    int ConnectType;//主副设备类型

//作为主设备专有
    int SubId[JZ_MAX_SUB_ID_NUM]; //副设备ID
    int SubNum; //副设备数量

//作为副设备专有
    int HeartBeatStatusSend; //对主设备发送心跳帧的发送开关
    int ConnectStatus; //连接状态,接收过连接帧后打开

}s_JZsdk_HalStatus;

typedef struct s_JZsdk_Hal_Info
{
    s_JZsdk_HalStatus HalPort[0x50]; //记录hal使用的端口状态
    int HaveUsePort[0x50]; //记录已经使用的端口
    int HaveUsePortNum;   //记录已经使用的端口数量

}s_JZsdk_Hal_Info;

/* Exported types ------------------------------------------------------------*/

/* Exported functions --------------------------------------------------------*/
int JZsdk_HalPort_UseFlag(int PortName);
T_JZsdkReturnCode JZsdk_HalPort_SetUseFlag(int PortName,int UseFlag);

T_JZsdkReturnCode JZsdk_HalPort_Init(int PortName, void *Value);
T_JZsdkReturnCode JZsdk_HalPort_ReInit(int PortName,  void *Value);

T_JZsdkReturnCode JZsdk_Hal_Init();

s_JZsdk_Hal_Info *JZsdk_Hal_GetHalInfo();

#ifdef __cplusplus
}
#endif

#endif