Добрый день!
Несколько лет назад я, возможно с Вашей помощью, написал скрипт который выключает линию V_OUT для перезагрузки подвисших устройств на RS485 шинах.
Скрипт удобно применять если по какой-то причине выключатель исчез с веб-интерфейса.
Скрипт успешно работает на контроллерах WB6. Пользовались им редко.
Но тут заметили что на контроллере WB7 этот скприт выводит из строя флеш-память. Она отключатеся, консоль виснет и перезагрузка не всегда спасает.
Можно ли понять почему и как-то исправить этот скрипт? Может сменился порт gpio ?
#!/bin/sh
### Временно отключает GPIO 73 для сброса внешнего питания в шинах модбас каналов V_OUT
GPIO=73 ### VOUT pin number 2 bank 9 offset
systemctl stop wb-mqtt-gpio
echo "Gpio list..."
ls -1 /sys/class/gpio/
echo "Exporting 73 number"
echo $GPIO > /sys/class/gpio/export
echo "Gpio list..."
ls -1 /sys/class/gpio/
echo "Set gpio $GPIO to mode : out"
echo out > /sys/class/gpio/gpio$GPIO/direction
echo "Turn off and sleep 5 sec"
echo 0 > /sys/class/gpio/gpio73/value
sleep 5
echo "Turn on"
echo 1 > /sys/class/gpio/gpio73/value
#echo $GPIO > /sys/class/gpio/unexport
systemctl start wb-mqtt-gpio
Прошу уточнить подробнее, что именно исчезает и при каких условиях. Такое поведение не является нормой и не должно возникать при корректной работе шины.
Для диагностики проблемы пришлите, пожалуйста, архив с диагностической информацией контроллера. Создание архива описано в документации.
В логах нет критических ошибок, которые могли бы указать на причину проблемы. Обычно, если возникает множество ошибок, контроллер автоматически отключает шину и фиксирует это в логах с соответствующим сообщением.
Да, есть. У вас возникли трудности с выполнением указанного выше скрипта? Если да, опишите подробнее, что именно не работает или какие ошибки возникают.
Не надо использовать прямое управление gpio. На разных версиях даже в одной мажорной могут быть аппаратные отличия. И да, номера отличаются. Используйте драйвер как советует коллега.
Мы просто не используем wb rules, и даже выпиливаем его для освобождения ресурсов под другие задачи. Скрипт на bash был неплохим решением если веб-интерфейс недоступен или по какой-то причине не отображал выключатель родной.
Принципиально нет. Пока на WB7 не будем пользоваться своим скриптом. Если возникунут вопросы как отключить линию V_OUT а mqtt и веб-интерфейс в этом не помогут, то обращусь снова с конкретным контроллером. Согласен что дергать gpio напрямую плохая идея.