Приветствую, коллеги,
я новичок в работе с Wirenboard.
Есть небольшая учебная задача, необходимо научиться получать обратку от устройства и разбирать её, управляю дисплеем LG через интерфейс 232.
В базе установлена плата WBE2-I-RS232 в MOD1.
Включить и выключить дисплей могу через раздел с устройствами. Но как получить обратку и разобрать её пока не могу понять, точнее небольшое понимание есть, но не работает).
Во вложении файлы с правилом, bash и диаг. лог.
screen.sh (601 байт)
screen.js (738 байтов)
Что уже сделал:
- Нашёл и адаптировал под свою задачу bash скрипт, положил в корень.
- Создал правило wb-rules:
#!/bin/bash
#Инициализируем порт /dev/ttyWBE0
stty -F /dev/ttyWBE0 ospeed 9600 ispeed 9600 raw clocal -parenb -echo cs8
CR="$(echo -e '\r')"
exec 4<> /dev/ttyWBE0
cat <&4 | while :
do
IFS="$CR" read -r line
case "$line" in
quit*)
break
;;
*)
if [[ -n "$line" ]]; then
echo $line
#Полученные строки шлём в MQTT
mosquitto_pub -t /devices/screen/controls/raw/meta/type -r -m text
mosquitto_pub -t /devices/screen/controls/raw/on -r -m "$line"
fi
;;
esac
done
defineVirtualDevice("screen", { // создаем виртуальный девайс
title: "nextion screen",
cells: {
raw: {
type: "text",
value: ""
},
enabled: {
type: "switch",
value: false
},
}
});
//ka 01 01\r
defineRule("_rs485_switch_on", {
asSoonAs: function () {
return dev.screen.enabled;
},
then: function() {
runShellCommand("/usr/bin/printf 'ka 01 01\\x0d' > /dev/ttyWBE0");
}
});
//ka 01 00\r
defineRule("_rs485_switch_off", {
asSoonAs: function () {
return !dev.screen.enabled;
},
then: function() {
runShellCommand("/usr/bin/printf 'ka 01 00\\x0d' >/dev/ttyWBE0");
}
});
Данные по контроллеру:
WB 8.5
Номер партии 8.5.3A/4G1 1.3.3C-4G
Версия DTS 851
Версия контроллера 8.5.3
Название релиза wb-2507
Тип релиза stable