Как использовать аппаратные кнопки СПК? Не нашел нужной библиотеки или инструкции...
Вид для печати
Как использовать аппаратные кнопки СПК? Не нашел нужной библиотеки или инструкции...
Один добрый человек раскрыл мне эту страшную тайну, но почему-то в ЛС.
Аппаратные клавиши работают как встроенная клавиатура:
SYS==0;
F1==1;
F2==2 и т.д.
Их можно использовать как горячие клавиши, например в свойствах графического элемента.
П.С. А можно ли использовать светодиоды, рядом с этими клавишами, как дискретные выходы?
Если актуально: нужна библиотека http://www.kipshop.ru/CoDeSys3.0/bibl/sysexec.zip
Добавить код:
Для включения:
SysExecute('echo "1" > /sys/class/leds/sv1/brightness'); (*индикатор кнопки SYS*)
SysExecute('echo "1" > /sys/class/leds/sv2/brightness'); (*индикатор кнопки F1*)
...
SysExecute('echo "1" > /sys/class/leds/buzzer/brightness'); (*пищалка*)
Для выключения:
SysExecute('echo "0" > /sys/class/leds/sv1/brightness'); (*индикатор кнопки SYS*)
SysExecute('echo "0" > /sys/class/leds/sv2/brightness'); (*индикатор кнопки F1*)
....
SysExecute('echo "0" > /sys/class/leds/buzzer/brightness'); (*пищалка*)
Проверено на СПК207
Уже не актуально, но весьма полезно. Спасибо.
Извините, а можно подробнее, как использовать аппаратные кнопки в ST? Приведите, пожалуйста, пример опроса аппаратных кнопок.
Аппаратные кнопки - это способ ввода текста (в нашем случае чисел от 0 до 5?). Соответственно, для ввода текста, Вам нужна визуализация. Рисуете кнопки (или области скрытого ввода), и задаете для них горячие клавиши, это проще всего. А уж дальше, хоть присваивайте переменные, хоть выполняйте код.
Солнечный Заяц отвечал на этот вопрос - спасибо ему. Но, всё таки хотелось бы получить более подробную информацию по этому актуальному вопросу. Пример на ST, может быть ещё какая тема есть на форуме, господа модераторы могли бы чем-нибудь помочь начинающим? А то как-то странно: кнопки есть, а как ими пользоваться не видно информации. Будьте добры!
И ещё про светодиоды не видно официальной информации в ближайшем доступе. Такие вещи едва ли не в инструкции по эксплуатации должны быть прописаны, хотя бы какие-то ссылки...
Извините за тупость, но не пойму, где искать сей документ. На форуме тема "СПК - Примеры программ, инструкции, полезные советы, FAQ", например, пост 14 нет ничего...
Может быть поможет ссылка ?
Здравствуйте. Подскажите пожалуйста, как опросить переключатель на задней панели СПК207.
Воспользуйтесь библиотекой GPIO library.
http://www.owen.ru/catalog/codesys_v3/80224381
Огромное спасибо!
Если в проекте несколько экранов, то для нормальной работы аппаратных кнопок СПК207 нужно делать привязку к элементам на каждом экране (п.14.3 SPK_FAQ_v.1.1.pdf) или использовать фрейм. Может быть, есть более простой способ описания аппаратных кнопок в программе для их работы на всех экранах?
Доброго времени суток
Попробовал применить ФБ Keys из библиотеки SPK_TOOLS для переключения экрана:
Не работает. Переменная numClickSysKey не меняется.Код:spkHardKeys(
xSys=> key_sys,
xF1=> key_f1,
xF2=> ,
xF3=> ,
xF4=> ,
xF5=> ,
xSwitch=> );
//spkHardKeys();
//key_sys := spkHardKeys.xSys;
srKey(SET1:= key_sys, RESET:= , Q1=> sys_clicked);
rtrClkSysKey(CLK:= key_sys, Q=> );
numClickSysKey := numClickSysKey + BOOL_TO_INT(rtrClkSysKey.Q);
IF DINT_TO_BOOL(SysStrCmp(sString1:= 'vis_08rtc_setup', visuelems.CURRENTVISU)) THEN //Запоминание экрана на котором была выключена подсветка
tempString := visuelems.CURRENTVISU;
END_IF
IF key_sys THEN
visuelems.CURRENTVISU := 'vis_08rtc_setup';
END_IF
IF key_f1 THEN
visuelems.CURRENTVISU := tempString;
END_IF
Какая версия SPK tools используется?
Версия 1.3.12
Свяжитесь со мной по skype, пожалуйста.