我正在尝试使用CANalyzer的COM接口强制CAN信号到给定值 . 由于没有COM方法发送CAN消息,我正在使用CAPL实现一种解决方法:
void SendMySignal(int value) {
message MyMessage msg;
msg.MySignal = value;
output(msg);
}
这工作正常,但是由于 MyMessage
和 MySignal
在这里被静态引用(按名称),我将必须实现N个函数以便能够发送N个信号(或N路开关语句等) . 有没有办法通过字符串避免消息中的麻烦和访问信号?像这样的东西:
void SendSignal(int MessageID, char SignalName, int value)
如果我错过了COM界面中的某些内容,我也会接受替代解决方案 . 如果有一个只适用于CANoe的解决方案,我可以向我的老板索取许可证,但我当然不愿意这样做 .
1 回答
有这样的功能,但它被限制使用 only in test nodes
你可以在以下网址找到
并注意不要为每个信号发送新消息以避免总线过度泛滥 . 在我看来,为整个消息设置所有信号并将其发送到更改 only when it is not cyclic 是一种更好的方式 . 循环消息中的信号更新 mostly 必须在下一个周期发送 .