Как смоделировать подчиненный узел LIN в CANoe - PullRequest
0 голосов
/ 23 апреля 2020

Я не могу найти исчерпывающее руководство по , как построить Syntheti c LIN Slave в конфигурации CANoe , поэтому я хотел бы создать его здесь.

Сценарий : ECU действует как ведущее устройство LIN и связывается с n ведомыми устройствами LIN. Цель состоит в том, чтобы иметь возможность добавить синтетического раба c в симуляцию CANoe, выступающего в качестве заменителя одного из физических рабов. Поскольку нет способа динамически активировать или деактивировать узел LIN , наша настройка будет состоять из n-1 физических рабов и 1 syntheti c раб, плюс мастер. Здесь мастер тестируется, и, в частности, мы хотим оценить его способность реагировать на определенные реакции подчиненного, издеваясь над подчиненным и вызывая любой необходимый кадр. Давайте предположим, что будет GUI или что-то для этого, это не входит в сферу охвата вопроса.

Я могу добавить новый узел в настройку моделирования, назначить его сети LIN и, если он активен, он соединяется с красной линией, обозначающей моделируемую шину. LDF был создан и добавлен в конфигурацию, и я знаю идентификатор linFrame, который должен сообщать узел.

Узел должен быть смоделирован с помощью сценария CAPL. Я застрял на передающей части:

on ???
{
    // This is my call: as LIN slave I should output something.
    output(myLinFrame);
}

Куда мне добавить мои логи c, чтобы обновить и передать сообщение?

Основа c, которую я пытался набрать, привязать его, но вывод будет на следующем связанном слоте LDF, плюс он связан с ключом.

on key 'A'
{
    // prepare new content...
    output(myLinFrame);
}

Этот вопрос относится к моему более старому вопросу относительно цензуры LIN .

Последнее замечание: у меня очень ограниченное количество слотов для лицензий CANoe для тестирования любого кода, который я придумаю, поэтому мне нужно заранее подготовиться и исследовать.

В этом сценарии я должен использовать linUpdateResponse()

1 Ответ

0 голосов
/ 30 апреля 2020

Вы должны создать on linFrame ... обработчики событий.

Эти обработчики событий будут вызваны после того, как на шину будет помещен кадр. Внутри обработчика событий вы можете использовать linUpdateResponse (или также output), чтобы изменить фрейм, который будет отправлен в следующий раз, т.е. вызов модификации не отправляет немедленный ответ, а скорее изменяет внутреннее состояние ведомого устройства, так что другой кадр отправляется в следующий раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...