我正在尝试使用 CANalyzer 的 COM 接口将 CAN 信号强制为给定值。由于没有发送 CAN 消息的 COM 方法,我正在使用 CAPL 实现一种解决方法:
void SendMySignal(int value) {
message MyMessage msg;
msg.MySignal = value;
output(msg);
}
这很好用,但是由于MyMessage
这里MySignal
是静态引用(按名称),我必须实现 N 个函数才能发送 N 个信号(或 N 路 switch 语句等)。有没有办法避免麻烦并通过字符串访问消息中的信号?像这样的东西:
void SendSignal(int MessageID, char SignalName, int value)
如果我错过了 COM 接口中的某些内容,我也愿意接受替代解决方案。如果有一个只适用于 CANoe 的解决方案,我可以向我的老板索要许可证,但我当然更愿意没有。