目录
getFirstCANdbFilename -- 获取数据库的文件名
代码示例
getFirstCANdbName -- 获取数据库的名称
代码示例
getSignalName -- 获取报文的信号名称
getMessageAttrInt -- 获取信号属性值
代码示例
getFirstCANdbFilename -- 获取数据库的文件名
功能:找出第一个被分配的数据库的文件名。
buffer:写入数据库文件名的缓冲区。
size:以字节为单位的缓冲区大小。
返回值:
!= 0:成功获取dbc名称
0:获取dbc名称失败
代码示例
on start
{
char buffer[256];
dword pos;
pos = GetFirstCANdbFilename( buffer, elcount( buffer));
//查找第一个数据库的文件名。
//如果找到数据库,“pos”包含值 1。
//如果没有找到 "pos" 包含 0。
while ( 0 != pos)
{
write( "CANdb: %s", buffer);
pos = GetNextCANdbFilename( pos, buffer, elcount( buffer));
//查找其他数据库的文件名。
//如果找到其他数据库
//"pos" 包含值 2、3 等
//如果没有找到更多的数据库
//"pos" 包含 0 并退出循环
}
}
getFirstCANdbName -- 获取数据库的名称
功能:找出第一个分配的数据库的名称。
buffer:写入数据库文件的缓冲区。
size:以字节为单位的缓冲区大小。
返回值:
!= 0:成功获取dbc名称
0:获取dbc名称失败
代码示例
on start
{
char buffer[256];
dword pos;
pos = GetFirstCANdbName( buffer, elcount( buffer));
//查找第一个数据库的名称。
//如果找到数据库,“pos”包含值1
//如果没有找到 "pos" 包含 0
while ( 0 != pos)
{
write( "CANdb: %s", buffer);
pos = GetNextCANdbName( pos, buffer, elcount( buffer));
//查找其他数据库的名称。
//如果找到其他数据库
//"pos" 包含值 2、3 等
//如果没有找到更多的数据库
//"pos" 包含 0 并退出循环
}
}
getSignalName -- 获取报文的信号名称
功能:返回 CAN 网络 CAN 消息负载中索引位置(起始位)的信号名称。
返回 CAN 网络 PDU 索引位置(起始位)的信号名称。
caplCanMessage:CAN网络中的CAN报文
caplAutosarPDU:Autosar中的PDU报文
startBit:信号在报文中的起始位置
返回值:
返回 CAN 消息中给定起始索引处的信号名称。 起始索引在 DBC 编辑器中定义
返回 PDU 内给定起始索引处的信号名称。 起始索引是用 Autosar Explorer 定义的。
getMessageAttrInt -- 获取信号属性值
功能:从数据库中获取消息属性的值;必须在数据库中定义具有参数中指定的名称且类型为 Integer 的用户定义属性。 如果没有定义这样的属性,则该函数返回 0。如果没有为数据库中的消息分配属性值,则返回属性定义的默认值。
说明:每次调用时,此函数都会再次在数据库中查找消息属性的值。 如果消息在编写 CAPL 程序时已知,则应通过其选择器语法直接找到该属性(<消息变量>.<属性名称>,例如 absData.msgCycleTime)。
canMessage:CAN报文
attributeName:目标名称
返回值:来自数据库的属性值(或默认值)
代码示例
此示例在收到消息时在 Write Window 中输出消息属性 GenMsgCycleTime 的值。
属性名必须按照数据库中的定义来写。 您可以在数据库的属性窗口中找到属性名称。
on message *
{
long cycleTimeValue1;
long cycleTimeValue2;
cycleTimeValue1 = getMessageAttrInt(this, "GenMsgCycleTime");
write("CycleTime of message id %x = %d", this.id, cycleTimeValue1);
message EngineData gMsgEngineData;
cycleTimeValue2 = getMessageAttrInt(gMsgEngineData, "GenMsgCycleTime");
write("CycleTime of message id %x = %d", this.id, cycleTimeValue2);
}