wb_editors
480
правок
Adtest (обсуждение | вклад) м (Отмена правки 55989, сделанной Adtest (обсуждение)) Метка: отмена |
(Добавил информацию про сервисы) |
||
Строка 5: | Строка 5: | ||
Специализированное ПО в основном представляет | Специализированное ПО в основном представляет набор специальных программ и драйверов выполняющих в фоновом режиме отдельную задачу управления, диагностики или контроля. Эти программы и драйверы в основном зарегистрированы с ОС Linux в виде сервисов (служб) - программ, которые работают в фоновом режиме, запускаются автоматически при старте системы и контролируются операционной системой. Имена собственных сервисов контроллера Wirenboard обычно имеют префикс "wb-". Каждый сервис выполняет отдельную задачу. Если функции, которые обеспечивает сервис не используются, то сервис можно временно остановить или даже отключить совсем для освобождение ресурса процессора контроллера. | ||
Список всех запущенных сервисов и статус их работы можно посмотреть с помощью команды | Список всех запущенных сервисов и статус их работы можно посмотреть с помощью команды | ||
Строка 12: | Строка 12: | ||
Основная концепция работы контроллера - обмен информацией по протоколу [[MQTT | MQTT ]] через брокер (сервис) Mosquitto. Драйверы получают данные с устройств и публикуют их в виде MQTT-топиков в определенном формате. Другие службы читают эти данные и производят дальнейшие действия с ними: выводят в веб-интерфейс, запускают правила и т.д. Схематично взаимодействие сервисом можно представить в виде следующей схемы: | Основная концепция работы контроллера - обмен информацией по протоколу [[MQTT | MQTT ]] через брокер (сервис) Mosquitto. Драйверы получают данные с устройств и публикуют их в виде MQTT-топиков в определенном формате. Другие службы читают эти данные и производят дальнейшие действия с ними: выводят в веб-интерфейс, запускают правила и т.д. Схематично взаимодействие сервисом можно представить в виде следующей схемы: | ||
[[Файл:sw-services-architecture.png|800px|right| Архитектура ПО контроллера Wirenboard]] | |||
Работу каждого сервиса можно продиагностировать командой | |||
systemctl status имя_сервиса | |||
Например, чтобы узнать, работает ли драйвер serial-устройств, нужно выполнить команду: | |||
systemctl status wb-mqtt-serial | |||
В обычном режиме, когда идет опрос устройств статус сервиса должен быть running, а полный вывод команды такой: | |||
<pre> | |||
● wb-mqtt-serial.service - MQTT Driver for serial devices | |||
Loaded: loaded (/lib/systemd/system/wb-mqtt-serial.service; enabled; vendor preset: enabled) | |||
Active: active (running) since Sun 2021-11-21 11:25:41 MSK; 24min ago | |||
Main PID: 2315 (wb-mqtt-serial) | |||
CGroup: /system.slice/wb-mqtt-serial.service | |||
└─2315 /usr/bin/wb-mqtt-serial | |||
</pre> | |||
Однако нужно иметь в виду, что не все сервисы работают постоянно, некоторые из них (например, <code>wb-hwconf-manager</code>) вызываются только при необходимости. Поэтому при работе контроллера в основном этот сервис имеет статус <code>exited</code>. | |||
Если требуется остановить сервис (например, остановить сервис <code>wb-mqtt-serial</code> для опроса устройств вручную с помощью утилиты <code>modbus_client</code>), то сервисы можно принудительно останавливать: | |||
systemctl stop имя_сервиса | |||
Запускать | |||
systemctl start имя_сервиса | |||
И перезапускать | |||
systemctl restart имя_сервиса | |||
Однако нужно понимать, что такое ручное вмешательство может нарушить нормальную работу контроллера, а процесс управления может быть остановлен. Поэтому не следует выполнять данные действия, если вы не до конца понимаете, что вы делаете, или если контроллер управляет ответственным оборудованием или непрерывным процессом! | |||