⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 j1939ext.h

📁 在Freescale16位单片机MC9s12dp256上移植了J1939源码和操作系统(ucOSII)。
💻 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 + -