目录
xcpSetCalPage & OnXcpSetCalPage
OnXcpError
功能:每当 XCP 从机回答否定响应(即不是 0xFF)时,就会调用 OnXCPError 回调函数。
ecuQualifier:设备名称,可以在CANoe中进行设置。
xcpCmd:CANoe发送的XCP命令。
xcpErrorCode:XCP从站返回的错误码。
xcpSetCalPage & OnXcpSetCalPage
功能:如果XCP从设备支持校准数据页面切换,则该命令设置当前页面和访问模式。
回调返回ECU切换标定数据页。
ecuQualifier:设备名称,可以在CANoe中进行设置。
mode:XCP 规范中定义的位字段。
Bit 7 | 用于所有段,即忽略参数segmentNr。 |
Bit 1 | 从设备 XCP 驱动程序将访问给定页面。 |
Bit 0 | 给定页面将由从设备应用程序使用。 |
segmentNr:逻辑数据段号。
pageNr:逻辑数据页码。 通常 0 标识 RAM 中的页面,1 标识 FLASH 存储器中的页面。
注意:CANoe.XCP 只能处理存储在 RAM 中的参数。
代码示例
variables
{
long mMode;
long mSegmentNr;
}
void OnXcpConnect(char ecuName[])
{
mMode = 255;
mSegmentNr = 0;
write("Connect callback! ECU: %s", ecuName);
XcpGetCalPage(ecuName, mMode, mSegmentNr);
}
void OnXcpGetCalPage(char ecu[], long reserved1, long reserved2, long pageNumber)
{
Write("OnXcpGetCalPage callback! ECU: %s. Current PageNumber: %d", ecu, pageNumber);
if (pageNumber == 0)
{
pageNumber = 1;
}
else
{
pageNumber = 0;
}
XcpSetCalPage(ecu, mMode, mSegmentNr, pageNumber);
}
void OnXcpSetCalPage(char ecu[])
{
Write("OnXcpSetCalPage callback! ECU: %s", ecu);
}
xcpGetPollingCycle
功能:如果参数的读取模式设置为轮询,则返回参数的循环时间。
namespace:相应系统变量的命名空间。
variable:相应系统变量的名称。
sysvar:系统变量的完全限定名称,包括所有名称空间,以“::”分隔。名称前面必须有“sysvar::”
返回值:
> 0:循环时间
-1:未在系统变量中找到参数
-2:操作不被允许
xcpSetPollingCycle
功能:如果参数的读取模式设置为轮询,则返回参数的循环时间。
如果参数的读取模式设置为轮询,则设置参数的循环时间。
namespace:相应系统变量的命名空间。
variable:相应系统变量的名称。
sysvar:系统变量的完全限定名称,包括所有名称空间,以“::”分隔。名称前面必须有“sysvar::”
cycleTime:测量参数的周期时间。
返回值:
0:OK
-1:未在系统变量中找到参数
-2:操作不被允许