CANalyzer の COM インターフェイスを使用して、CAN 信号を特定の値に強制しようとしています。CAN メッセージを送信する COM メソッドがないため、CAPL を使用して回避策を実装しています。
void SendMySignal(int value) {
message MyMessage msg;
msg.MySignal = value;
output(msg);
}
これは問題なく動作しますが、ここではMyMessage
とMySignal
が静的に (名前で) 参照されているため、N 個のシグナル (または N-way switch ステートメントなど) を送信できるように N 個の関数を実装する必要があります。メッセージ内のシグナルに文字列でアクセスする手間を省く方法はありますか? このようなもの:
void SendSignal(int MessageID, char SignalName, int value)
また、COM インターフェイスで何かを見逃した場合に備えて、代替ソリューションを受け入れます。CANoe でのみ機能するソリューションがあれば、上司にライセンスを依頼することもできますが、もちろん、ライセンスを取得しない方がよいと思います。