📄 j1939ext.h
字号:
/******************************************************************************
*
* File Name: J1939EXT.H
*
* Description: Extern variable and function declarations
*
*
* Comments:
*
*
* Version Date Author Comments
* ------- ---------- -------------- ------------------------------
* 0.9 18.12.98 Ft Create
* 1.0 02.03.99 Ft Add user specific PGNs
* 1.1 31.05.2001 Ma merge Stack with CANopen driver
* changed data types, functions and user
* PG's
* 2.0 18.06.2001 Ma new buffer concept and documentation
* for doxygen
* 2.1 10.08.2001 Ma added gOnlineMarker to handle post online states
* 2.2 10.08.2001 Ma changed # of RX and TX PG's
* 2.3 31.01.2002 Ma changed interface of fct. J1939AddressClaiming()
* 2.4 24.06.2004 Ma changed demo application
*
* Copyright (c) 1998 - 2004 Vector Informatik GmbH
*****************************************************************************/
#ifndef _J1939EXT_H_
#define _J1939EXT_H_
#ifdef NOEXTERNALS
#define EXTERNAL
#undef NOEXTERNALS
#else
#define EXTERNAL extern
#endif
/*! \brief Global data for the J1939 stack
*/
EXTERNAL unsigned char gAddressClaimed; /*!< Flag to start communication */
EXTERNAL unsigned char gOnlineMarker; /*!< Flag remembers the the online state */
EXTERNAL unsigned char gDeviceAddress; /*!< Own device address */
EXTERNAL unsigned char gCANOverrun; /*!< CAN rx/tx overrun flag */
EXTERNAL unsigned char gCANBusOff; /*!< CAN bus off indicator */
EXTERNAL struct VJ1939DeviceName gDeviceName; /*!< Own unique device name */
EXTERNAL unsigned short gAddressClaimTimer; /*!< Timer for internal use */
/*! \brief Transport protocol structure */
EXTERNAL struct VJ1939Transport gTPTxCnxn; /*!< Transmit BAM and CMDT */
EXTERNAL struct VJ1939Transport gTPRxCnxn[NR_OF_TP_CH]; /*!< Receive BAM and CMDT */
/*! \brief All PGs (system and user) Located in RAM */
EXTERNAL VJ1939PGN gTxPGTable[NR_OF_TX_PG]; /*!< Transmit buffer */
EXTERNAL VJ1939PGN gRxPGTable[NR_OF_RX_PG]; /*!< Receive buffer */
/*! \brief Data fields for the system PGs Located in RAM
*/
EXTERNAL struct VJ1939PGN_DATA_EC00 gPGN_DATA_EC00[2]; /*!< TPCM (receive, send) */
EXTERNAL struct VJ1939PGN_DATA_EB00 gPGN_DATA_EB00[2]; /*!< TPDT (receive, send) */
EXTERNAL struct VJ1939PGN_DATA_EA00 gPGN_DATA_EA00[2]; /*!< Request PG (receive, send) */
EXTERNAL struct VJ1939PGN_DATA_EE00 gPGN_DATA_EE00[2]; /*!< Address claimed (receive, send) */
EXTERNAL struct VJ1939PGN_DATA_FED8 gPGN_DATA_FED8; /*!< Commanded address (receive) */
EXTERNAL struct VJ1939PGN_DATA_E800 gPGN_DATA_E800; /*!< Acknowledgement */
/* [USER MODIFIED] */
/*! \brief Data fields for the user PGs Located in RAM
*/
EXTERNAL struct VJ1939PGN_DATA_FE10 gPGN_DATA_FE10[2]; /*!< propriatory PG */
EXTERNAL struct VJ1939PGN_DATA_FE30 gPGN_DATA_FE30[2]; /*!< propriatory PG */
EXTERNAL struct VJ1939PGN_DATA_FF17 gPGN_DATA_FF17[2]; /*!< propriatory PG */
EXTERNAL struct VJ1939PGN_DATA_A800 gPGN_DATA_A800[2]; /*!< propriatory PG */
EXTERNAL struct VJ1939PGN_DATA_CC00 gPGN_DATA_CC00[2]; /*!< propriatory PG transmit and receive */
EXTERNAL struct VJ1939PGN_DATA_CB00 gPGN_DATA_CB00[2]; /*!< propriatory PG transmit and receive */
EXTERNAL VJ1939PGN_DATA_F004 gPGN_DATA_F004; //< propriatory PG receive
#define EngTrqMode_st gPGN_DATA_F004.DATE.BIT0TO3_BYTE0
#define Reserved0_F004 gPGN_DATA_F004.DATE.BIT4TO7_BYTE0
#define EngTrqDem_fac gPGN_DATA_F004.DATE.BYTE1
#define EngTrqActl_fac gPGN_DATA_F004.DATE.BYTE2
#define EngSpeed gPGN_DATA_F004.DATE.BYTE3TO4
#define DevForEngCtl_ad gPGN_DATA_F004.DATE.BYTE5
#define Reserved1_F004 gPGN_DATA_F004.DATE.BYTE6TO7
EXTERNAL VJ1939PGN_DATA_FEC0 gPGN_DATA_FEC0; //< propriatory PG receive
#define SerCompID gPGN_DATA_FEC0.DATE.BYTE3
#define SerTimBase gPGN_DATA_FEC0.DATE.BYTE4
EXTERNAL VJ1939PGN_DATA_FEEF gPGN_DATA_FEEF; /*!< propriatory PG receive*/
#define FlDlvPres_p gPGN_DATA_FEEF.DATE.BYTE0
#define ExtdCrCBlwByPres_p gPGN_DATA_FEEF.DATE.BYTE1
#define EngOilLvl_fac gPGN_DATA_FEEF.DATE.BYTE2
#define EngOilPres_p gPGN_DATA_FEEF.DATE.BYTE3
#define CrCPres_p gPGN_DATA_FEEF.DATE.BYTE4TO5
#define ClntPres_p gPGN_DATA_FEEF.DATE.BYTE6
#define ClntLvl_fac gPGN_DATA_FEEF.DATE.BYTE7
EXTERNAL VJ1939PGN_DATA_FEEE gPGN_DATA_FEEE; /*!< propriatory PG receive*/
#define EngCoolant_t gPGN_DATA_FEEE.DATE.BYTE0
#define Fl_t gPGN_DATA_FEEE.DATE.BYTE1
#define EngOil_t gPGN_DATA_FEEE.DATE.BYTE2TO3
#define TrbOil_t gPGN_DATA_FEEE.DATE.BYTE4TO5
#define EngIntClr_t gPGN_DATA_FEEE.DATE.BYTE6
#define EngIntThermStOpn_fac gPGN_DATA_FEEE.DATE.BYTE7
EXTERNAL VJ1939PGN_DATA_FE6C gPGN_DATA_FE6C; /*!< propriatory PG receive*/
#define Drvr1WrkSt_st gPGN_DATA_FE6C.DATE.BIT0TO2_BYTE0
#define Drvr2WrkSt_st gPGN_DATA_FE6C.DATE.BIT3TO5_BYTE0
#define DrvRecg_st gPGN_DATA_FE6C.DATE.BIT6TO7_BYTE0
#define Drvr1Time_stRel gPGN_DATA_FE6C.DATE.BIT0TO3_BYTE1
#define Drvr1Card_st gPGN_DATA_FE6C.DATE.BIT4TO5_BYTE1
#define OvrSpd_st gPGN_DATA_FE6C.DATE.BIT6TO7_BYTE1
#define Drvr2Time_stRel gPGN_DATA_FE6C.DATE.BIT0TO3_BYTE2
#define Drvr2Card_st gPGN_DATA_FE6C.DATE.BIT4TO5_BYTE2
#define Reserved0_FE6C gPGN_DATA_FE6C.DATE.BIT6TO7_BYTE2
#define SysEvt_st gPGN_DATA_FE6C.DATE.BIT0TO1_BYTE3
#define HdlInf_st gPGN_DATA_FE6C.DATE.BIT2TO3_BYTE3
#define TachPerf_st gPGN_DATA_FE6C.DATE.BIT4TO5_BYTE3
#define DirInd gPGN_DATA_FE6C.DATE.BIT6TO7_BYTE3
#define TachOutShaft_n gPGN_DATA_FE6C.DATE.BYTE4TO5
#define Drvr1Veh_n gPGN_DATA_FE6C.DATE.BYTE6TO7
EXTERNAL VJ1939PGN_DATA_FEE6 gPGN_DATA_FEE6; /*!< propriatory PG receive*/
#define Scnd_ti gPGN_DATA_FEE6.DATE.BYTE0
#define Mnt_ti gPGN_DATA_FEE6.DATE.BYTE1
#define Hour_ti gPGN_DATA_FEE6.DATE.BYTE2
#define Mnth_ti gPGN_DATA_FEE6.DATE.BYTE3
#define Day_ti gPGN_DATA_FEE6.DATE.BYTE4
#define Year_ti gPGN_DATA_FEE6.DATE.BYTE5
#define LclMntOfs_ti gPGN_DATA_FEE6.DATE.BYTE6
#define LclHourOfs_ti gPGN_DATA_FEE6.DATE.BYTE7
EXTERNAL VJ1939PGN_DATA_FEC1 gPGN_DATA_FEC1; /*!< propriatory PG receive*/
#define HiReslTotVehDst_l gPGN_DATA_FEC1.DATE.BYTE0TOBYTE3
#define HiReslTripVehDst_l gPGN_DATA_FEC1.DATE.BYTE4TOBYTE7
/******************************************************************************/
/* defination for MyCAN */
/* */
/******************************************************************************/
/*! \brief All PGs Located in RAM for MyCAN*/
EXTERNAL VJ1939PGN gTxMyPG; /*!< Transmit buffer */
EXTERNAL VJ1939PGN gRxMyPG; /*!< Receive buffer */
/*Application MyPGN SENDED and Received*/
EXTERNAL VMyPGN_DATA_FF09 gPGN_DATA_FF09; /*!< propriatory PG receive*/
#define Veh_n gPGN_DATA_FF09.DATE.BYTE0TOBYTE1
#define Brk_st gPGN_DATA_FF09.DATE.BIT0TO1BYTE2
#define Reserved0_FF09 gPGN_DATA_FF09.DATE.BIT2TO7BYTE2
#define Reserved1_FF09 gPGN_DATA_FF09.DATE.BYTE3
#define Reserved2_FF09 gPGN_DATA_FF09.DATE.BYTE4TOBYTE7
/*Application MyPGN SENDED and Received*/
EXTERNAL VMyPGN_DATA_FF08 gPGN_DATA_FF08; /*!< propriatory PG receive*/
#define DrOpnAlm_st gPGN_DATA_FF08.DATE.BIT0TO1BYTE0
#define WtrLoLvlHiTempAlm_st gPGN_DATA_FF08.DATE.BIT2TO3BYTE0
#define OilLoPresAlm_st gPGN_DATA_FF08.DATE.BIT4TO5BYTE0
#define AirFltJam_st gPGN_DATA_FF08.DATE.BIT6TO7BYTE0
#define TurningLeft_st gPGN_DATA_FF08.DATE.BIT0TO1BYTE1
#define TurningRight_st gPGN_DATA_FF08.DATE.BIT2TO3BYTE1
#define LghtFar_st gPGN_DATA_FF08.DATE.BIT4TO5BYTE1
#define LghtNear_st gPGN_DATA_FF08.DATE.BIT6TO7BYTE1
#define RearFogLght_st gPGN_DATA_FF08.DATE.BIT0TO1BYTE2
#define AirerIndr_st gPGN_DATA_FF08.DATE.BIT2TO3BYTE2
#define RearLghtDet_st gPGN_DATA_FF08.DATE.BIT4TO5BYTE2
#define CabLght_st gPGN_DATA_FF08.DATE.BIT6TO7BYTE2
#define VehRevIndr_st gPGN_DATA_FF08.DATE.BIT0TO1BYTE3
#define Reserved0_FF08 gPGN_DATA_FF08.DATE.BIT2TO7BYTE3
#define Reserved1_FF08 gPGN_DATA_FF08.DATE.BYTE4TOBYTE7
/*! \brief All public external functions of Module J1939.c */
extern void J1939Stack(void); /*!< main function - stack handler */
extern void J1939StartupInit(void); /*!< startup init function */
extern void J1939Reset(void); /*!< resetting datastructures */
extern void J1939AppRxIndication(VJ1939PGN*); /*!< Callback user-function */
extern void J1939AppRxTimeoutIndication(VJ1939PGN*); /*!< Callback user-function */
extern unsigned char J1939AppRequestIndication(VJ1939PGN*); /*!< Callback user-function */
extern void J1939AppCmdAddrIndication(VJ1939PGN*); /*!< Callback user-function */
/*! \brief All public external functions of Module JTransp.c */
extern void HandleRxTransportCmdPG(void); /*!< CMDT RX transport handler */
extern void HandleRxTransportDataPG(void); /*!< DT RX transport handler */
extern void OpenTxCMDTTransport(unsigned char index); /*!< CMDT transport opener */
extern void OpenTxBAMTransport(unsigned char index); /*!< BAM transport opener */
/*! \brief All public external functions of Module JAdrClai.c */
extern void CheckRxAddressClaimed(void); /*!< Checks the received AC PG */
extern unsigned char J1939AddressClaiming(unsigned char *address); /*!< handle the AC sequence */
extern unsigned char J1939AppGetAddress(void); /*!< Callback user-function to get the default address */
extern void SendCannotClaimAddress(void); /*!< sends the Cannot Claim Address PG */
extern void SendAddressClaimed(void); /*!< sends the Address Claim PG */
extern signed char CompareJ1939Name(struct VJ1939DeviceName*); /*!< compares the own name with the received name in a PG */
/*! \brief All public external functions of Module Timer.c */
//extern unsigned short Tim_GetCurrentTime(void); /*!< get the current system time */
BOOLEAN Tim_CheckTimeOut(WORD wTimeStart, WORD wTimeNow, WORD wTimeOut);
//void Tim_InitTimer(unsigned short wTime); /*!< timer initialisation */
extern unsigned char Tim_StartTimer(void); /*!< starts the system timer */
extern unsigned char Tim_StopTimer(void); /*!< stop the system timer */
/*! \brief All public external functions of Module JBUFFER.c */
extern unsigned char gCB_SendUserPG(VJ1939PGN*); /*!< sends a user defined PG */
extern unsigned char gCB_SendSysPG(VJ1939PGN*); /*!< sends a system PG */
extern unsigned char gCB_AllocBuffer(VJ1939PGN*, unsigned char); /*!< enters a PG into the buffer */
extern unsigned char gCB_ReleaseBuffer(VJ1939PGN*,unsigned char); /*!< removes a PG form buffer */
extern void gCB_Init(void);
extern unsigned char gCB_DequeueElm(void); /*!< dequeue a RX system PG from the sys PG Queue */
/*! \brief All public external functions of Module Module JInit.c */
extern void InitUserPGs(void);
/******************************************************************************/
/* Functions for MyCAn */
/* */
/******************************************************************************/
extern void InitMyCANPGs(void);
#endif /* _J1939EXT_H_ */
/*!
\file
\brief Header to export all external functions and variables
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -