Node Simulation Examples
Node simulation supports both C and C++ compilation. Below are the examples in C++ for CAN and J1939.
/* This file is generated by BUSMASTER *//* VERSION [1.1] *//* BUSMASTER VERSION [1.7.0] *//* PROTOCOL [J1939] */
/* Start J1939 include header */#include <Windows.h>#include <J1939Includes.h>
/* End J1939 include header */
/* Start J1939 global variable */
/* End J1939 global variable */
/* Start J1939 Function Prototype */GCC_EXTERN void GCC_EXPORT OnTimer_Timer_1000( );GCC_EXTERN void GCC_EXPORT OnKey_q(unsigned char KeyValue);GCC_EXTERN void GCC_EXPORT OnPGN_All(STJ1939_MSG* RxMsg);GCC_EXTERN void GCC_EXPORT OnEvent_DataConf(UINT32 unPGN, BYTE bySrc, BYTE byDest, BOOL bSuccess);GCC_EXTERN void GCC_EXPORT OnEvent_AddressClaim(BYTE byAddress);int Utils_(int x,int y);GCC_EXTERN void GCC_EXPORT OnDLL_Load();GCC_EXTERN void GCC_EXPORT OnDLL_Unload();GCC_EXTERN void GCC_EXPORT OnTimer_dew_10( );GCC_EXTERN void GCC_EXPORT OnBus_Connect();GCC_EXTERN void GCC_EXPORT OnBus_Disconnect();GCC_EXTERN void GCC_EXPORT OnPGNID_100(STJ1939_MSG* RxMsg);/* End J1939 Function Prototype */
/* Start J1939 generated function - OnTimer_Timer_1000 */void OnTimer_Timer_1000( ){STJ1939_MSG msg;
msg.m_sMsgProperties.m_byChannel = 1;msg.m_sMsgProperties.m_eType = MSG_TYPE_DATA;msg.m_sMsgProperties.m_eDirection = DIR_TX;
msg.m_sMsgProperties.m_uExtendedID.m_s29BitId.m_bySrcAddress = 5;
msg.m_unDLC = 5;msg.m_pbyData = new BYTE[15];BYTE tmp[] = {12, 34, 45, 56, 78};memcpy(msg.m_pbyData, tmp, 5);Trace("J1939 Time Handler");SendMsg (&msg);}/* End J1939 generated function - OnTimer_Timer_1000 *//* Start J1939 generated function - OnKey_q */void OnKey_q(unsigned char KeyValue){STJ1939_MSG msg;
msg.m_sMsgProperties.m_byChannel = 1;msg.m_sMsgProperties.m_eType = MSG_TYPE_DATA;msg.m_sMsgProperties.m_eDirection = DIR_TX;
msg.m_sMsgProperties.m_uExtendedID.m_s29BitId.m_bySrcAddress = 5;
msg.m_unDLC = 5;msg.m_pbyData = new BYTE[15];BYTE tmp[] = {11, 22, 33, 44, 55};memcpy(msg.m_pbyData, tmp, 5);
SendMsg (&msg);}/* End J1939 generated function - OnKey_q *//* Start J1939 generated function - OnPGN_All */void OnPGN_All(STJ1939_MSG* RxMsg){/* TODO */Trace("MSG ALL");
STJ1939_MSG msg;
msg.m_sMsgProperties.m_byChannel = 1;msg.m_sMsgProperties.m_eType = MSG_TYPE_DATA;msg.m_sMsgProperties.m_eDirection = DIR_TX;
msg.m_sMsgProperties.m_uExtendedID.m_s29BitId.m_bySrcAddress = 5;
msg.m_unDLC = 8;msg.m_pbyData = new BYTE[15];BYTE tmp[] = {12, 34, 45, 56, 78};memcpy(msg.m_pbyData, tmp, 5);SendMsg (&msg);}/* End J1939 generated function - OnPGN_All *//* Start J1939 generated function - OnEvent_DataConf */void OnEvent_DataConf(UINT32 unPGN, BYTE bySrc, BYTE byDest, BOOL bSuccess){/* TODO */Trace("Data Handler");}/* End J1939 generated function - OnEvent_DataConf *//* Start J1939 generated function - OnEvent_AddressClaim */void OnEvent_AddressClaim(BYTE byAddress){/* TODO */Trace("Address Claim Event");}/* End J1939 generated function - OnEvent_AddressClaim *//* Start J1939 generated function - Utils_ */int Utils_(int x,int y){/* TODO */}/* End J1939 generated function - Utils_ *//* Start J1939 generated function - OnDLL_Load */void OnDLL_Load(){Trace("Dll has been loaded");/* TODO: Define and Initialise the following variables*/ UINT ReturnValue ;ReturnValue = EnableLogging();
}/* End J1939 generated function - OnDLL_Load *//* Start J1939 generated function - OnDLL_Unload */void OnDLL_Unload(){Trace("Dll is unloaded");/* TODO: Define and Initialise the following variables*/ UINT ReturnValue ;ReturnValue = DisableLogging();
}/* End J1939 generated function - OnDLL_Unload *//* Start J1939 generated function - OnTimer_dew_10 */void OnTimer_dew_10( ){STJ1939_MSG msg;
msg.m_sMsgProperties.m_byChannel = 1;msg.m_sMsgProperties.m_eType = MSG_TYPE_DATA;msg.m_sMsgProperties.m_eDirection = DIR_TX;
msg.m_sMsgProperties.m_uExtendedID.m_s29BitId.m_bySrcAddress = 5;
msg.m_unDLC = 5;msg.m_pbyData = new BYTE[15];BYTE tmp[] = {12, 34, 45, 56, 78};memcpy(msg.m_pbyData, tmp, 5);Trace("J1939 Time Handler");SendMsg (&msg);}/* End J1939 generated function - OnTimer_dew_10 *//* Start J1939 generated function - OnBus_Connect */void OnBus_Connect(){Trace("Bus Disconnected");}/* End J1939 generated function - OnBus_Connect *//* Start J1939 generated function - OnBus_Disconnect */void OnBus_Disconnect(){Trace("Bus Disconnected");}/* End J1939 generated function - OnBus_Disconnect *//* Start J1939 generated function - OnPGNID_100 */void OnPGNID_100(STJ1939_MSG* RxMsg){Trace("MSG ALL");
STJ1939_MSG msg;
msg.m_sMsgProperties.m_byChannel = 2;msg.m_sMsgProperties.m_eType = MSG_TYPE_DATA;msg.m_sMsgProperties.m_eDirection = DIR_TX;
msg.m_sMsgProperties.m_uExtendedID.m_s29BitId.m_bySrcAddress = 5;
msg.m_unDLC = 8;msg.m_pbyData = new BYTE[15];BYTE tmp[] = {18, 58, 45, 56, 11};memcpy(msg.m_pbyData, tmp, 5);SendMsg (&msg);}/* End J1939 generated function - OnPGNID_100 */```### CAN
```text/* This file is generated by BUSMASTER *//* VERSION [1.1] *//* BUSMASTER VERSION [1.7.0] *//* PROTOCOL [CAN] */
/* Start BUSMASTER include header */#include <Windows.h>#include <CANIncludes.h>
/* End BUSMASTER include header */
/* Start BUSMASTER global variable */
/* End BUSMASTER global variable */
/* Start BUSMASTER Function Prototype */GCC_EXTERN void GCC_EXPORT OnMsg_All(STCAN_MSG RxMsg);GCC_EXTERN void GCC_EXPORT OnKey_d(unsigned char KeyValue);GCC_EXTERN void GCC_EXPORT OnError_Warning_Limit(SCAN_ERR ErrorMsg);GCC_EXTERN void GCC_EXPORT OnDLL_Load();GCC_EXTERN void GCC_EXPORT OnDLL_Unload();GCC_EXTERN void GCC_EXPORT OnTimer_new_100( );GCC_EXTERN void GCC_EXPORT OnBus_Connect();GCC_EXTERN void GCC_EXPORT OnBus_Disconnect();/* End BUSMASTER Function Prototype */
/* Start BUSMASTER generated function - OnMsg_All */void OnMsg_All(STCAN_MSG RxMsg){// Initialise message structureRxMsg.m_unMsgID = 0x100; // Message IDRxMsg.m_ucEXTENDED = FALSE; // Standard Message typeRxMsg.m_ucRTR = FALSE; // Not RTR typeRxMsg.m_ucDLC = 8; // Length is 8 BytesRxMsg.m_sWhichBit.m_aulData[0] = 10; // Lower 4 BytesRxMsg.m_sWhichBit.m_aulData[1] = 20; // Upper 4 BytesRxMsg.m_ucChannel = 1;SendMsg(RxMsg);
}/* End BUSMASTER generated function - OnMsg_All *//* Start BUSMASTER generated function - OnKey_d */void OnKey_d(unsigned char KeyValue){ Connect();}/* End BUSMASTER generated function - OnKey_d *//* Start BUSMASTER generated function - OnError_Warning_Limit */void OnError_Warning_Limit(SCAN_ERR ErrorMsg){Trace("Warning Limit reached");}/* End BUSMASTER generated function - OnError_Warning_Limit *//* Start BUSMASTER generated function - OnDLL_Load */void OnDLL_Load(){/* TODO: Define and Initialise the following variables*/
EnableLogging();
}/* End BUSMASTER generated function - OnDLL_Load *//* Start BUSMASTER generated function - OnDLL_Unload */void OnDLL_Unload(){/* TODO: Define and Initialise the following variables*/ DisableLogging();
}/* End BUSMASTER generated function - OnDLL_Unload *//* Start BUSMASTER generated function - OnTimer_new_100 */void OnTimer_new_100( ){// Initialise message structureSTCAN_MSG sMsg;
sMsg.m_unMsgID = 0x20; // Message IDsMsg.m_ucEXTENDED = FALSE; // Standard Message typesMsg.m_ucRTR = FALSE; // Not RTR typesMsg.m_ucDLC = 8; // Length is 8 BytessMsg.m_sWhichBit.m_aulData[0] = 10; // Lower 4 BytessMsg.m_sWhichBit.m_aulData[1] = 20; // Upper 4 BytessMsg.m_sWhichBit.m_aulData[2] = 30; // Upper 4 BytessMsg.m_ucChannel = 1;SendMsg(sMsg);}/* End BUSMASTER generated function - OnTimer_new_100 *//* Start BUSMASTER generated function - OnBus_Connect */void OnBus_Connect(){Trace("Bus connected");}/* End BUSMASTER generated function - OnBus_Connect *//* Start BUSMASTER generated function - OnBus_Disconnect */void OnBus_Disconnect(){Trace("Bus Disconnected");}/* End BUSMASTER generated function - OnBus_Disconnect */Authoritative source: BUSMASTER DITA help source node_simulation_examples.dita, compiled into BUSMASTER.CHM with the application.