Я пытаюсь отправить набор CAN-кадров на CAN-шину. Я использую CAPL для программирования и CANalyzer8.5 для моделирования и конструктора панелей для создания кнопки. Мое требование - сначала создать кнопку с помощью конструктора PANEL. Только при нажатии кнопки он должен начать отправку периодических кадров CAN на шину. Я немного не понимаю, как этого добиться. Пока мне удалось написать две отдельные программы с использованием CAPL. Первая программа периодически отправляет данные при запуске. Второй код отправляет данные только один раз при нажатии кнопки. Я хочу объединить оба кода, чтобы периодически начинать отправку при нажатии кнопки.
первый код
/*@!Encoding:1252*/
includes
{
}
variables
{
msTimer mytimer;
message 0x100 A={dlc=8};
message 0x200 B={dlc=8};
message 0x300 C={dlc=8};
message 0x400 D={dlc=8};
}
on start
{
setTimer(mytimer,50);
}
on timer mytimer
{
A.byte(0)=0x64;
B.byte(4)=0x32;
C.byte(6)=0x20;
D.byte(7)=0x80;
output(A);
output(B);
output(C);
output(D);
setTimer(mytimer,50);
}
Второй код
/*@!Encoding:1252*/
includes
{
}
variables
{
message 0x100 A={dlc=8};
message 0x200 B={dlc=8};
message 0x300 C={dlc=8};
message 0x400 D={dlc=8};
}
on sysvar test::myButton
{
A.byte(0)=0x64;
B.byte(4)=0x32;
C.byte(6)=0x20;
D.byte(7)=0x80;
output(A);
output(B);
output(C);
output(D);
}
Как уже упоминалось, когда я нажимаю кнопку, он должен периодически отправлять кадры CAN. Но проблема в том, что я не могу вызвать функцию внутри функции, как показано ниже:
on start
{
on sysvar test::myButton
{
....
}
}
пожалуйста, посоветуйте мне. Спасибо