1.5wuling_zhuanjietou/UDS/tp_15765_2.h

128 lines
3.6 KiB
C
Raw Normal View History

2024-10-17 01:06:51 +00:00
#ifndef TP_15765_2_H
#define TP_15765_2_H
/*!
* @file tp_15765_2.h
* @brief TP layer file according to the 15765-2.
*
*/
#include "uds_types.h"
#define FRAME_TYPE_MASK 0xF0 /*!< FRAME TYPE MASK */
#define FLOW_STATUS_MASK 0x0F /*!< FLOW STATUS MASK */
#define SEQUENCE_NUMBER_MASK 0x0F /*!< SEQUENCE NUMBER MASK */
#define SINGLE_FRAME_DATA_LENGTH_MASK 0x0F /*!< SINGLE FRAME DATA LENGTH MASK */
#define FIRST_FRAME_DATA_LENGTH_MSB_NIBBLE_MASK 0x0F /*!< FIRST FRAME DATA LENGTH MSB NIBBLE MASK */
#define SEQUENCE_NUMBER_MAX 0x10 /*!< SEQUENCE NUMBER MAX */
#define CAN_FRAME_BYTES_UPPER_RANGE 7 /*!< CAN FRAME BYTES UPPER RANGEK */
#define ZERO_LOOP_COUNT 0 /*!< SEQUENCE NUMBER MASK */
#define ONE_LOOP_COUNT 1 /*!< SEQUENCE NUMBER MASK */
#define TWO_LOOP_COUNT 2 /*!< SEQUENCE NUMBER MASK */
#ifdef RX_MULTI_BUFFER_SUPPORT
#define RECEIVE_MULTI_BUFFER_SUPPORT TRUE
#else
#define RECEIVE_MULTI_BUFFER_SUPPORT FALSE
#endif
/*!
* Enum Type. TP Layer State
*/
typedef enum TPState_Tag
{
TP_Idle_State = 0, /*!< Idle State */
TP_Wait_For_SFORFF_TxConf_State, /*!< Wait for TXConf State */
TP_Wait_For_FCFrame_Rx_State, /*!< Wait for Flow Control State */
TP_Transmit_CF_State, /*!< Transmit CF State */
TP_Wait_For_CF_TxConf_State, /*!< Wait For CF TxConf State */
TP_Wait_For_STmin_State, /*!< Wait For STmin State */
TP_Wait_For_FC_TXconf_State, /*!< Wait For FC_TXconf State */
TP_Rx_CF_State, /*!< Receive CF State */
TP_Wait_For_DataRead_State /*!< Wait For DataRead State */
}TPState_T;
/*!
* Enum Type. Parameters
*/
typedef enum TPParameters_Tag
{
N_BLOCKSIZE = 0,
N_SEPERATIONTIME
}TPParameters_T;
/*!
* Enum Type. Result for change parameter
*/
typedef enum TPResultChangePara_Tag
{
N_OK_R = 0,
N_RX_ON,
N_WRONG_PARAMETER,
N_WRONG_VALUE
}TPResultChangePara_T;
/*!
* Enum Type. Transmit sub state
*/
typedef enum TPTransmitSubState_Tag
{
TP_TX_LOAD_CF_DATA = 0,
TP_TX_LOAD_REMAINING_BYTES_OF_CF,
TP_TX_LOAD_REMAINING_BYTES_OF_LAST_CF
}TPTransmitSubState_T;
/*!
* Enum Type. Receive sub state
*/
typedef enum TPReceiveSubState_Tag
{
TP_RX_UNLOAD_CF_DATA = 0,
TP_RX_UNLOAD_REMAINING_BYTES_OF_CF,
TP_RX_UNLOAD_REMAINING_BYTES_OF_LAST_CF
}TPReceiveSubState_T;
/*!
* Enum Type. Transmit Status
*/
typedef enum TPTransmitStatus_Tag
{
TP_TRANSMIT_IDLE = 0,
TP_TRANSMIT_START,
WAITINGFORFLOWCONTROL
}TPTransmitStatus_T;
/*!
* Enum Type. Receive Status
*/
typedef enum TPReceiveStatus_Tag
{
TP_RECEIVE_IDLE = 0,
TP_RECEIVE_START
}TPReceiveStatus_T;
/*!
* Enum Type. Timer control
*/
typedef enum TPTimerControl_Tag
{
TIMER_STOP = 0,
TIMER_RUN
}TPTimerControl_T;
/*!
* Enum Type. Flow control
*/
typedef enum TPFlowControlStatus_Tag
{
CLEAR_TO_SEND = 0,
WAIT,
OVERFLOW,
RESERVED
}TPFlowControlStatus_T;
/*!
* Enum Type. Buffer Status
*/
typedef enum TPBufferStatus_Tag
{
EMPTY = 0,
FILLED
}TPBufferStatus_T;
#endif