目录
xcpGetCalPage & OnXcpGetCalPage
xcpUpload & OnXcpUoad
代码示例
xcpSendRaw & OnXcpSendRaw
代码示例
xcpGetCalPage & OnXcpGetCalPage
功能:如果XCP从设备支持校准数据页面切换,则该命令获取当前页面和访问模式。
回调返回ECU切换标定数据页。
ecuQualifier:设备名称,可以在CANoe中进行设置。
mode:当前活动页面的访问模式。 这些值可能是 0x01(ECU 访问)或 0x02(XCP 访问)。 所有其他值均无效。
segmentNr:逻辑数据段号。
pageNr:逻辑数据页码。 通常 0 标识 RAM 中的页面,1 标识 FLASH 存储器中的页面。
xcpUpload & OnXcpUoad
功能:启动从 ECU 上传 XCP 参数并更新专用系统变量。上传完成后,将调用回调函数 OnXcpUpload 来指示上传状态。使用 xcpUpload 的返回值检查上传启动期间是否发生错误。
使用 OnXcpUpload 回调函数的 errorIndication 参数检查上传期间是否发生错误,如果在调用 xcpUpload 期间发生错误,则不会调用 OnXcpUpload。
namespace:相应系统变量的命名空间。
variable:相应系统变量的名称。
sysvar:系统变量的完全限定名称,包括所有名称空间,以“::”分隔。名称前面必须有“sysvar::”
errorIndication:
0:OK
-4:设备没有连接
返回值:
-1:OK
-2:操作不允许
-3:参数的系统变量无效
-4:设备未连接
代码示例
testcase TC_SignalInactive ()
{
xcpUpload("XCP::ECU","testword0");
....
}
//回调函数:
void OnXcpUpload (char namespace[], char variable[], long returnValue)
{
if (returnValue==0)
write("Systemvariable updated: %s %s", namespace,variable);
}
xcpSendRaw & OnXcpSendRaw
功能:将任何数据作为控制命令发送到 XCP/CCP 设备。 第一个数据字节定义控制命令代码。
该回调是通过响应 xcpSendRaw 发送的原始 XCP 命令来调用的。
ecuQualifier:设备名称,可以在CANoe中进行设置。
data:要发送的数据的字节数组。
dataSize:要发送的数据的字节数组的长度。
expectResponse:
0:XCP从机不会响应该命令
1:XCP从机预计响应该命令并调用回调
代码示例
//此示例显示当用户按下“t”键时,从 XCP 从设备“XCPsim”的地址 0x21A1B4 上传 4 个字节。
//请注意,该设备是PC应用程序,因此地址以Intel格式给出。
on key 't'
{
byte data[8] = {0xF4, 4, 0, 0, 0xB4, 0xA1, 0x21, 0};
xcpSendRaw("XcpSim", data, 8, 1);
}
OnXcpSendRaw(char ecuQualifier[], byte data[], long dataSize)
{
char buffer[200];
long i;
buffer[0] = 0;
for (i = 0; i < dataSize; i++)
{
snprintf(buffer, elcount(buffer), "%s 0x%2X", buffer, data[i]);
}
write("Raw response: %d bytes:%s", dataSize, buffer);
}