Я пытаюсь заставить сигналы CAN к заданным значениям использовать COM-интерфейс CANalyzer. Поскольку нет COM метода для отправки сообщений CAN, я реализую обходной путь с помощью CAPL:Как получить доступ к CAN-сигналам динамически (по строкам) в CAPL?
void SendMySignal(int value) {
message MyMessage msg;
msg.MySignal = value;
output(msg);
}
Это прекрасно работает, однако с MyMessage
и MySignal
ссылается статический (по имени) здесь, я должен буду реализовать N функций, чтобы иметь возможность посылать N сигналов (или оператор N-way switch и т. д.). Есть ли способ избежать проблем и доступа к сигналам внутри сообщения по строке? Что-то вроде этого:
void SendSignal(int MessageID, char SignalName, int value)
Я также открыт для альтернативных решений в случае, если я что-то пропустил в интерфейсе COM. Если есть решение, которое работает только для CANoe, я могу попросить у моего босса лицензию, но, конечно же, я бы предпочел обойтись.