示例
非数据库消息传输:
STCAN_MSG sMsg;
// Initialise message structuresMsg.id = 0x100; // Message IDsMsg.isExtended = false; // Standard Message typesMsg.isRtr = false; // Not RTR typesMsg.dlc = 8; // Length is 8 BytessMsg.data[0] = 10; // Byte DatasMsg.data[1] = 20;sMsg.wordAt(1, 30); // Word datasMsg.cluster = 1; // First CAN channel
// Send the messageSendMsg(sMsg);```**数据库消息传输:**
// Message Declaration CAN_Request sMsgStruct; // CAN_Request is a database message // Use signal member // Sig1 sMsgStruct.Sig_1 = 10; // for setting signal raw value // Sig2 sMsgStruct.Sig_2 = 20; // Sig3 sMsgStruct.Sig_3 = 30; // Send the message now SendMsg(sMsgStruct));
**访问信号值:**// Message Declaration CAN_Request sMsgStruct; // Use signal member // Sig1 int sig1Value = sMsgStruct..Sig_1; // Type 'int' to be changed as per signal type // Sig2 int sig2Value = sMsgStruct.Sig_2; // Sig3 int sig3Value = sMsgStruct.Sig_3; (OR) int sig1Rawvalue = sMsgStruct.sig1.rawvalue(); (OR) double sig1PhyValue = sMsgStruct.sig1.physicalvalue();
**更新数据库消息信号值:**
数据库消息结构可以被有意义地解释。数据库消息结构将具有数据库中定义的信号成员。可以通过使用数据库消息结构的成员和信号名称来直接赋值信号原始值。
CAN_Request是一个包含信号Sig1、Sig2和Sig3的数据库消息。每个信号的长度为2个字节。要赋值信号的原始值,请使用消息名称结构和信号名称作为成员。
```text// Message DeclarationCAN_Request sMsgStruct;
// Use signal member// Sig1sMsgStruct.Sig_1 = 10;// Sig2sMsgStruct.Sig_2 = 20;// Sig3sMsgStruct.Sig_3 = 30;
(OR)
sMsgStruct.sig1.rawvalue(10);
(OR)
sMsgStruct.sig1.physicalvalue(12.4);```**更新消息数据字节:**
STCAN_MSG sMsg; // Initialise message structure here sMsg.id = 0x100; // Message ID sMsg.isExtended = false; // Standard Message type sMsg.isRtr = false; // Not RTR type sMsg.dlc = 8; // Length is 8 Bytes sMsg.cluster = 1; // First CAN channel sMsg.data[0] = 10; // Byte Data sMsg.data[1] = 20; (OR) sMsg.byteAt(0, 10); sMsg.byteAt(1, 20); // Send the message SendMsg(sMsg);
> **注意**:在函数编辑器的编辑区域右键单击。选择“插入消息”或“插入信号”选项以插入消息结构或信号结构。在“消息和信号列表”中选择“是的,我想声明选定的消息结构变量”选项,以使用其结构定义初始化消息。如果在BusMaster中关联/导入了数据库,则可以在节点仿真中使用数据库的消息和信号。
---
**权威来源**: BUSMASTER DITA help source `CAN_Node_Simulation_Examples.dita`, compiled into `BUSMASTER.CHM` with the application.