📄 jinit.c
字号:
/*gRxPGTable[RX_PGN_COMMAND_ADDRESS].mSource*/ /* DeviceAddress */
gRxPGTable[RX_PGN_COMMAND_ADDRESS].mPriority = 0x06; /* 3Bit Priority */
gRxPGTable[RX_PGN_COMMAND_ADDRESS].mTransType = TT_ASYNC; /* TT_CYCLIC, TT_ASYNC */
gRxPGTable[RX_PGN_COMMAND_ADDRESS].mTransRate = 0; /* Trans. rate in ms, only for cyclic */
gRxPGTable[RX_PGN_COMMAND_ADDRESS].mData = &gPGN_DATA_FED8; /* Pointer to specific data struct */
#ifdef _TSK_C166_
gRxPGTable[RX_PGN_COMMAND_ADDRESS].mDataLength = 9; /* number of databytes */
#else
gRxPGTable[RX_PGN_COMMAND_ADDRESS].mDataLength = sizeof(struct VJ1939PGN_DATA_FED8); /* number of databytes */
#endif /* _TSK_C166_ */
gTxPGTable[TX_PGN_ADDRESS_CLAIMED].mEnable = TRUE; /* Enable PG */
gTxPGTable[TX_PGN_ADDRESS_CLAIMED].mPGState = PG_TX_FREE; /* Object used */
gTxPGTable[TX_PGN_ADDRESS_CLAIMED].mTimer = 0; /* Timer in ms */
gTxPGTable[TX_PGN_ADDRESS_CLAIMED].mPDUS = 0x00; /* PG Number */
gTxPGTable[TX_PGN_ADDRESS_CLAIMED].mPDUF = 0xEE; /* PDU Format */
/*gTxPGTable[TX_PGN_ADDRESS_CLAIMED].mPage*/ /* Page, always 0 */
/*gTxPGTable[TX_PGN_ADDRESS_CLAIMED].mSource*/ /* DeviceAddress */
gTxPGTable[TX_PGN_ADDRESS_CLAIMED].mPriority = 0x06; /* 3Bit Priority */
gTxPGTable[TX_PGN_ADDRESS_CLAIMED].mTransType = TT_ASYNC; /* TT_CYCLIC, TT_ASYNC */
gTxPGTable[TX_PGN_ADDRESS_CLAIMED].mTransRate = 0; /* Trans. rate in ms, only for cyclic */
gTxPGTable[TX_PGN_ADDRESS_CLAIMED].mData = &gPGN_DATA_EE00[1]; /* Pointer to specific data struct */
#ifdef _TSK_C166_
gTxPGTable[TX_PGN_ADDRESS_CLAIMED].mDataLength = 8; /* number of databytes */
#else
gTxPGTable[TX_PGN_ADDRESS_CLAIMED].mDataLength = sizeof(struct VJ1939PGN_DATA_EE00); /* number of databytes */
#endif /* _TSK_C166_ */
gTxPGTable[TX_PGN_ACK].mEnable = TRUE; /* Enable PG */
gTxPGTable[TX_PGN_ACK].mPGState = PG_TX_FREE; /* Object used */
gTxPGTable[TX_PGN_ACK].mTimer = 0; /* Timer in ms */
gTxPGTable[TX_PGN_ACK].mPDUS = 0xFF; /* PG Number */
gTxPGTable[TX_PGN_ACK].mPDUF = 0xE8; /* PDU Format */
/*gTxPGTable[TX_PGN_ACK].mPage*/ /* Page, always 0 */
/*gTxPGTable[TX_PGN_ACK].mSource*/ /* DeviceAddress */
gTxPGTable[TX_PGN_ACK].mPriority = 0x06; /* 3Bit Priority */
gTxPGTable[TX_PGN_ACK].mTransType = TT_ASYNC; /* TT_CYCLIC, TT_ASYNC */
gTxPGTable[TX_PGN_ACK].mTransRate = 0; /* Trans. rate in ms, only for cyclic */
gTxPGTable[TX_PGN_ACK].mData = &gPGN_DATA_E800; /* Pointer to specific data struct */
#ifdef _TSK_C166_
gTxPGTable[TX_PGN_ACK].mDataLength = 8; /* number of databytes */
#else
gTxPGTable[TX_PGN_ACK].mDataLength = sizeof(struct VJ1939PGN_DATA_E800); /* number of databytes */
#endif /* _TSK_C166_ */
#if 0
gTxPGTable[TX_PGN_REQ].mEnable = TRUE; /* Enable PG */
gTxPGTable[TX_PGN_REQ].mPGState = PG_TX_FREE; /* Object used */
gTxPGTable[TX_PGN_REQ].mTimer = 0; /* Timer in ms */
gTxPGTable[TX_PGN_REQ].mPDUS = 0x00; /* PG Number */
gTxPGTable[TX_PGN_REQ].mPDUF = 0xEA; /* PDU Format */
/*gTxPGTable[TX_PGN_REQ].mPage*/ /* Page, always 0 */
/*gTxPGTable[TX_PGN_REQ].mSource*/ /* DeviceAddress */
gTxPGTable[TX_PGN_REQ].mPriority = 0x06; /* 3Bit Priority */
gTxPGTable[TX_PGN_REQ].mTransType = TT_ASYNC; /* TT_CYCLIC, TT_ASYNC */
gTxPGTable[TX_PGN_REQ].mTransRate = 0; /* Trans. rate in ms, only for cyclic */
gTxPGTable[TX_PGN_REQ].mData = &gPGN_DATA_EA00[1]; /* Pointer to specific data struct */
#ifdef _TSK_C166_
gTxPGTable[TX_PGN_REQ].mDataLength = 3; /* number of databytes */
#else
gTxPGTable[TX_PGN_REQ].mDataLength = sizeof(struct VJ1939PGN_DATA_EA00); /* number of databytes */
#endif /* _TSK_C166_ */
#endif /* if 0 */
gTxPGTable[TX_PGN_TPCM].mEnable = TRUE; /* Enable PG */
gTxPGTable[TX_PGN_TPCM].mPGState = PG_TX_FREE; /* Object used */
gTxPGTable[TX_PGN_TPCM].mTimer = 0; /* Timer in ms */
gTxPGTable[TX_PGN_TPCM].mPDUS = 0x00; /* PG Number */
gTxPGTable[TX_PGN_TPCM].mPDUF = 0xEC; /* PDU Format */
/*gTxPGTable[TX_PGN_TPCM].mPage*/ /* Page, always 0 */
/*gTxPGTable[TX_PGN_TPCM].mSource*/ /* DeviceAddress */
gTxPGTable[TX_PGN_TPCM].mPriority = 0x06; /* 3Bit Priority */
gTxPGTable[TX_PGN_TPCM].mTransType = TT_ASYNC; /* TT_CYCLIC, TT_ASYNC */
gTxPGTable[TX_PGN_TPCM].mTransRate = 0; /* Trans. rate in ms, only for cyclic */
gTxPGTable[TX_PGN_TPCM].mData = &gPGN_DATA_EC00[1]; /* Pointer to specific data struct */
#ifdef _TSK_C166_
gTxPGTable[TX_PGN_TPCM].mDataLength = 8; /* number of databytes */
#else
gTxPGTable[TX_PGN_TPCM].mDataLength = sizeof(struct VJ1939PGN_DATA_EC00); /* number of databytes */
#endif /* _TSK_C166_ */
gTxPGTable[TX_PGN_TPDT].mEnable = TRUE; /* Enable PG */
gTxPGTable[TX_PGN_TPDT].mPGState = PG_TX_FREE; /* Object used */
gTxPGTable[TX_PGN_TPDT].mTimer = 0; /* Timer in ms */
gTxPGTable[TX_PGN_TPDT].mPDUS = 0x00; /* PG Number */
gTxPGTable[TX_PGN_TPDT].mPDUF = 0xEB; /* PDU Format */
/*gTxPGTable[TX_PGN_TPDT].mPage*/ /* Page, always 0 */
/*gTxPGTable[TX_PGN_TPDT].mSource*/ /* DeviceAddress */
gTxPGTable[TX_PGN_TPDT].mPriority = 0x06; /* 3Bit Priority */
gTxPGTable[TX_PGN_TPDT].mTransType = TT_ASYNC; /* TT_CYCLIC, TT_ASYNC */
gTxPGTable[TX_PGN_TPDT].mTransRate = 0; /* Trans. rate in ms, only for cyclic */
gTxPGTable[TX_PGN_TPDT].mData = &gPGN_DATA_EB00[1]; /* Pointer to specific data struct */
#ifdef _TSK_C166_
gTxPGTable[TX_PGN_TPDT].mDataLength = 8; /* number of databytes */
#else
gTxPGTable[TX_PGN_TPDT].mDataLength = sizeof(struct VJ1939PGN_DATA_EB00); /* number of databytes */
#endif /* _TSK_C166_ */
}
void J1939Reset(void)
{
unsigned char i;
/* Clear Rx transport protocol structures */
for (i=0; i<NR_OF_TP_CH; i++)
{
gTPRxCnxn[i].mState = BAM_STATE_CLOSE;
}
/* Clear Tx transport protocol structure */
gTPTxCnxn.mState = BAM_STATE_CLOSE;
/* reset the online marker to sign a online state */
gOnlineMarker = 0;
InitSystemPGs(); /* Initialize the PG used by the protocol stack */
}
/******************************************************************************/
/* Function: J1939Startup */
/* Input: - */
/* Output: - */
/* Description: */
/* Has to be called only at boot up of the node */
/******************************************************************************/
void J1939StartupInit(void)
{
gAddressClaimed = FALSE; /* Device has no valid address claimed */
gDeviceAddress = J1939GLOBALADDRESS; /* Global address */
/* Initialize the DeviceName */
gDeviceName.Name[0] = 0x05;/*IDENTITY_NUMBER_LSB & 0xFF;*/
gDeviceName.Name[1] = 0x00;/*IDENTITY_NUMBER_2SB & 0xFF;*/
gDeviceName.Name[2] = 0xA0;/*(IDENTITY_NUMBER_MSB & 0x1F)*/
/*| ((MANUFACT_CODE_LSB & 0x07) << 5);*/
gDeviceName.Name[3] = 0x00;/*MANUFACT_CODE_MSB & 0xFF;*/
gDeviceName.Name[4] = 0x2E;/*(ECU_INSTANCE & 0x07) */
/*| ((FUNCTION_INSTANCE & 0x1F) << 3);*/
gDeviceName.Name[5] = 0x04;/*FUNCTION & 0xFF;*/
gDeviceName.Name[6] = 0x00;/*(VEHICLE_SYSTEM & 0x7F) << 1;*/
gDeviceName.Name[7] = 0x03;/*(BYTE)(VEHICLE_SYSTEM_INSTANCE & 0x0F)
| ((BYTE)(INDUSTRY_GROUP & 0x07) << 4)
| ((BYTE)(ARBITRARY_ADDRESS_CAPABLE & 0x01) << 7);*/
J1939Reset();
}
/******************************************************************************/
/* Functions for MyCAn */
/* */
/******************************************************************************/
void InitMyCANPGs(void)
{
/* Initialize the user PGs PG_FF09*/
gTxMyPG.mEnable = TRUE; /*!< Enable/Disable PG */
gTxMyPG.mPGState = PG_TX_FREE; /*!< Object used */
gTxMyPG.mTimer = 100; /*!< Timer in ms */
gTxMyPG.mPDUF = 0xFF; /*!< PDU Format */
gTxMyPG.mPDUS =0x09; /*!< PG Number */
/*gTxMyPG.mPage*/ /*!< Page, always 0 */
gTxMyPG.mSource = 0x31; /* DeviceAddress */
gTxMyPG.mPriority = 0x06; /*!< 3Bit Priority */
gTxMyPG.mTransType = TT_CYCLIC; /*!< TT_CYCLIC, TT_ASYNC */
gTxMyPG.mTransRate = 100; /*!< Trans. rate in ms, only for cyclic */
gTxMyPG.mData = &gPGN_DATA_FF09; /*!< Pointer to specific data struct */
gTxMyPG.mDataLength = PG_FF09_DATALEN; /*!< number of databytes */
/* Initialize the user PGs PG_FF08*/
gRxMyPG.mEnable = TRUE; /*!< Enable/Disable PG */
gRxMyPG.mPGState = PG_RX_FREE; /*!< Object used */
gRxMyPG.mTimer = 1000; /*!< Timer in ms */
gRxMyPG.mPDUF = 0xFF; /*!< PDU Format */
gRxMyPG.mPDUS =0x08; /*!< PG Number */
/*gRxMyPG.mPage*/ /*!< Page, always 0 */
gRxMyPG.mSource = 0x20; /* DeviceAddress */
gRxMyPG.mPriority = 0x06; /*!< 3Bit Priority */
gRxMyPG.mTransType = TT_CYCLIC; /*!< TT_CYCLIC, TT_ASYNC */
gRxMyPG.mTransRate = 1000; /*!< Trans. rate in ms, only for cyclic */
gRxMyPG.mData = &gPGN_DATA_FF08; /*!< Pointer to specific data struct */
gRxMyPG.mDataLength = PG_FF08_DATALEN; /*!< number of databytes */
}
/*!
\file
\brief This module contains the init routines of the J1939 dependent structures
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -