广西企业网站有哪些,wordpress 调用文章分类,织梦网站系统,新建网站怎么做关键词前面我们介绍了关于使用vector XCP License后#xff0c;通过CAPL对XCP协议进行连接、断开和获取当前XCP连接状态的函数#xff0c;本篇文章不做过多的其他赘述#xff0c;我们继续介绍CAPL控制XCP相关的其他函数。
目录
xcpActivate
代码示例 xcpDeactivate
xcpActiva… 前面我们介绍了关于使用vector XCP License后通过CAPL对XCP协议进行连接、断开和获取当前XCP连接状态的函数本篇文章不做过多的其他赘述我们继续介绍CAPL控制XCP相关的其他函数。
目录
xcpActivate
代码示例 xcpDeactivate
xcpActivateMeasurementGroup
xcpDeactivateAll
xcpUserCommand OnXcpUserCommand
代码示例 xcpActivate 功能激活用于上传或者DAQ相关测量的A2L参数。
namespace系统变量的命名空间。
variable对应的系统变量的名称。
sysVar系统比那里的完全限定名称包括所在的名称空间以“::”分隔并且需要在最前面带有“sysVar::”。
返回值 0成功激活 -1系统变量没有找到 -2操作不允许
注意
A、使用系统变量的结构体时该函数必须对整个结构体内的变量都有效不能只对结构体内的某个变量有效。
B、xcpActivate函数不可用在on preStart中只能在xcpConnect或者xcpDisconnenct成功之后。
代码示例 on start
{if(0 XcpActivate(sysvar::XCP::XcpSim::ampl)){write(Parameter ampl activated for measurement);}
} xcpDeactivate 功能停用用于上传或者DAQ相关测量的A2L参数。
namespace系统变量的命名空间。
variable对应的系统变量的名称。
sysVar系统比那里的完全限定名称包括所在的名称空间以“::”分隔并且需要在最前面带有“sysVar::”。
返回值 0成功停用 -1系统变量没有找到 -2操作不允许
注意使用系统变量的结构体时该函数必须对整个结构体内的变量都有效不能只对结构体内的某个变量有效。
xcpActivateMeasurementGroup 功能名更改下次连接XCP设备时使用的测量组。
ecuQualifier设备名称 – 在 CANoeXCP/CCP 窗口中配置。
groupName测量组的名称。
返回值 0函数执行成功 -1名称为ecuQualifier的设备不存在 -2操作不允许连接已成功建立 -5groupName不存在
xcpDeactivateAll 功能禁用自动读取活动测量组的所有配置参数。
ecuQualifier设备名称 – 在 CANoeXCP/CCP 窗口中配置。
返回值 0函数执行成功 -1名称为ecuQualifier的设备不存在
xcpUserCommand OnXcpUserCommand 功能将用户定义的数据发送到XCP slave。
ecuQualifier设备名称 – 在 CANoeXCP/CCP 窗口中配置。
dataTester定义的byte类型数据
datasizedata的数据长度
返回值 0函数执行成功 -1名称为ecuQualifier的设备不存在
代码示例
variables
{long mMode;long mSegmentNr;byte mUsrCmdResponse 0;
}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);ProcessUserCmd();
}void ProcessUserCmd()
{byte adata[12] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C };XCPUserCommand(XcpSim, adata, 12);
}void OnXcpUserCommand(char ecu[],byte data[], long dataSize)
{mUsrCmdResponse data[0];Write(OnXcpUserCommandResponse callback! ECU: %s. Data: %d. Data size: %d, ecu, data[0], dataSize);
}