Разработка программ для Omega с использованием командной строки - практичный вариант с мощными инструментами, который поначалу может показаться нетривиальным. Это пособие поможет начать разработку кода в командной строке Omega.
Напишем скрипт, который заставит мигать светодиодом Omega по азбуке Морзе на основе ввода пользователя.
Чтобы разрабатывать программы в командной строке, потребуется доступ к терминалу, поэтому нужно установить SSH-соединение либо подключение через serial-порт.
Чтобы узнать больше о том, как подключиться к командной строке Omega, можете прочитать руководство по подключению к Omega.
Откройте терминал и войдите под своими учетными данными. Значения по умолчанию:
имя пользователя: root
пароль: onioneer
Omega поставляется с ядром, способным переводить текст в азбуку Морзе и мигать светодиодами, но нужно сообщить ядру, какой светодиод должен мигать. Ядро предоставляет множество аппаратных состояний и параметров конфигурации через виртуальную файловую систему в /sys.
> Файлы в каталоге /sys на самом деле не являются файлами, но они выглядят и действуют как файлы, что упрощает доступ к ним из командной строки, в скриптах или программах.
Чтобы сообщить ядру, что вы собираетесь использовать модуль азбуки Морзе, установите условие запуска светодиодов morse с помощью команды echo для записи настройки в виртуальный файл:
echo morse > /sys/class/leds/omega2:amber:system/trigger
Если вы используете Omega2+, светодиод будет называться omega2p:amber:system, а не omega2:amber:system, поэтому перепишите команду: /sys/class/leds/omega2p:amber:system/trigger
В зависимости от того, какой терминал вы используете, комбинация клавиш для вставки может быть не Ctrl + v или Cmd + v на Mac. Некоторые терминальные программы Windows используют Ctrl + Shift + v для вставки.
Можете убедиться, что это сработало, используя cat для просмотра виртуального файла:
root@Omega-2757:~# cat /sys/class/leds/omega2:amber:system/trigger
none mmc0 timer default-on netdev transient gpio heartbeat [morse] oneshot
Квадратные скобки указывают, что выбран триггер morse. Текст в этом файле показывает и другие доступные опции.
Во всяком случае, теперь все настроено. Нужно просто сообщить ядру, какое сообщение будет мигать светодиод. Когда выбран вариант Морзе, ядро создает новый виртуальный файл message. Можно использовать echo, чтобы поместить туда текст:
echo Hello, Onion > /sys/class/leds/omega2:amber:system/message
Проследите за светодиодом. Если он слишком быстрый или слишком медленный, можно изменить скорость с помощью delay файла:
root@Omega-12D9:~# cat /sys/class/leds/omega2:amber:system/delay
50
Чтобы немного замедлить, введите:
root@Omega-12D9:~# echo 100 > /sys/class/leds/omega2:amber:system/delay
Сообщение будет повторяться до тех пор, пока вы это не измените. Чтобы остановить, можно очистить сообщение:
echo > /sys/class/leds/omega2:amber:system/message
или замените светодиодный триггер:
echo default-on > /sys/class/leds/omega2:amber:system/trigger
Unix Shell - это интерпретатор, который считывает команды из командной строки и выполняет их. Shell Script - это способ написания более сложных программ с помощью этих базовых команд. По сути, мы собираемся использовать те же команды из предыдущего раздела, чтобы создать программу, которая будет читать сообщение, а затем мигать этим сообщением азбукой Морзе.
Создайте файл с morse.sh в корневом каталоге, используя команду:
vi /root/morse.sh
Откройте пустой файл.
Скопируйте приведенный ниже код в терминал.
#!/bin/sh
# find the name of the board, to be used in the name of the LED
. /lib/ramips.sh
board=$(ramips_board_name)
# define the function that will set the LED to blink the arguments in morse code
_MorseMain () {
echo morse > /sys/class/leds/$board:amber:system/trigger
echo 120 > /sys/class/leds/$board:amber:system/delay
echo $* > /sys/class/leds/$board:amber:system/message
}
##### Main Program #####
# run the function and pass in all of the arguments
_MorseMain $*
exit
Эта блок-схема показывает шаги, которые выполняет функция _MorseMain:
Основная часть программы вызовет функцию и передаст все аргументы командной строки.
Теперь, чтобы сохранить файл, вам нужно войти в командный режим (Command Mode), нажав кнопку ESC на клавиатуре.
Командный режим vi позволяет вводить ключи для выполнения таких команд как сохранение и выход, выход без сохранения или удаление строк.
Введите :wq и нажмите Enter, чтобы сохранить и выйти из файла.
Теперь можно конвертировать текст в азбуку Морзе.
Чтобы запустить скрипт, введите:
sh /root/morse.sh
Введите сообщение, которое хотите показать азбукой Морзе:
root@Omega-2757:~# sh /root/morse.sh Hello Onion
Когда закончите, можете установить мигание по умолчанию (default-on) с помощью команды:
echo default-on > /sys/class/leds/omega2:amber:system/trigger
Помните, что в Omega2+ светодиод будет называться omega2p:amber:system (а не omega2:amber:system), поэтому вам придется переписать команду: /sys/class/leds/omega2p:amber:system/trigger
г. Москва, Пятницкое ш. д. 18, пав. 566
zakaz@compacttool.ru
8-495-752-55-22
Информация представленная на данном информационном ресурсе преследует исключительно рекламные цели и не является договором-офертой !
© Все права защищены 2015 - 2024г https://compacttool.ru