erniX Dokuwiki

no place like 127.0.0.1

Benutzer-Werkzeuge

Webseiten-Werkzeuge


hamradio:digitalradio:mmdvm_touchdisplay

MMDVM: Touchdisplay schaltet Reflektoren und mehr …

Auf einem OV-Abend des N18 wurde die Idee geboren, das Nextion-Display am MMDVM auch für Eingaben zu nutzen, um z.B. Reflektoren zu schalten oder das System herunterzufahren. Florian (DF2ET) hatte in kürzester Zeit die ersten Zeichen als Rückmeldung vom Display auf dem Laptop. Etwas später erreichte mich dann ein weitaus ausgefeilteres Skript1), welches ich als Grundlage zu folgendem Shellskript verwendet habe. Das Skript erwartet eine entsprechende Konfiguration auf dem Display, die ich (mit Stand vom 03.05.2016) an diesen Post anhänge2).

Funktionsweise: Wird im Betrieb auf der MMDVM-Statusseite im unteren Bereich gedrückt, so öffnet sich eine weitere Seite mit Auswahlmöglichkeiten für Reflektoren (D-Star) bzw. mit der Möglichkeit den RasPi zu rebooten oder herunter zu fahren.

#!/bin/bash

PORT=/dev/ttyUSB0
# Serial port the Nextion display is connected to

stty ispeed 9600 cs8 -crtscts < ${PORT}

while [ 1 ];
do
    # Key press gives:   65 00 04 01 ffffff
    # Key release gives: 65 00 04 00 ffffff
    #                       |  |   | |
    #                       |  |   | +- EOT 3x 0xFF
    #                       |  |   +--- Key press or release
    #                       |  |        01 = press
    #                       |  |        00 = release
    #                       |  +------- Component ID
    #                       +---------- Page ID

    READ=`dd status=none if=${PORT} ibs=1 count=7 | xxd -ps`
    if [ ${#READ} -eq 14 ]; then
      if [ ${READ:7:1} == "1" ]; then
        echo "Button pressed. Page ID: ${READ:2:2} Component ID: ${READ:4:2}"

        if [ "${READ:2:2}" == "05" ]; then
  	    case "${READ:4:2}" in
	 	"01")
             	remotecontrold "DL5BQ  B" link never "XRF311 B"
		;;
		"02")
             	remotecontrold "DL5BQ  B" link never "XRF311 C"
		;;
		"03")
             	remotecontrold "DL5BQ  B" link never "XRF311 D"
		;;
		"04")
             	remotecontrold "DL5BQ  B" link never "XRF518 B"
		;;
		"05")
             	remotecontrold "DL5BQ  B" link never "XRF456 C"
		;;
		"06")
             	remotecontrold "DL5BQ  B" link never "DCS001 C"
		;;
		"07")
             	remotecontrold "DL5BQ  B" link never "DCS001 I"
		;;
		"08")
             	remotecontrold "DL5BQ  B" link never "DCS001 N"
		;;
		"09")
             	remotecontrold "DL5BQ  B" link never "DCS001 Z"
		;;
		"0a")
             	remotecontrold "DL5BQ  B" link never "REF006 C"
		;;
		"0b")
             	sudo shutdown -h now
		;;
		"0c")
             	sudo reboot
		;;
              esac
         fi
       fi
     fi
done

Ein paar Dinge sollten beachtet werden - entsprechende Fehler habe ich auch gemacht:
es handelt sich um ein BASH-Skript und sollte auch als solches aufgerufen werden:

chmod +x skript.sh
./skript.sh

Für die Fernsteuerung des ircddbgateway ist das Tool remotecontrold zuständig, welches Bestandteil von ircddbgateway ist. Diese Tool benötigt eine Konfigurationsdatei in /etc:

vi /etc/Remote\ Control.conf

Der Backslash im Dateinamen darf nicht vergessen werden, da das Tool wohl seine Wurzeln in der Wind**ws-Welt hat. Der Backslash maskiert das folgende Leerzeichen.

Die Datei sollte mit folgendem Inhalt gefüllt werden (an eigene Gegebenheiten anpassen):

address=127.0.0.1
port=10022
password=sachichnich

Vorausgesetzt wird, dass die Fernsteuerung entsprechend im ircddbgateway aktiviert wurde:

remote Enabled=1
remotePassword=sachichnich
remotePort=10022

display.zip (Dateien für das Nextion-Display
skript.zip (Das Shellskript)
(Stand 3.5.16)



Diskussion

Geben Sie Ihren Kommentar ein. Wiki-Syntax ist zugelassen:
112 -4 = ?
 
hamradio/digitalradio/mmdvm_touchdisplay.txt · Zuletzt geändert: 15.07.2016 12:20 von Gerd Ernstmeier