Wäre sowas nicht irgendwie mit TCP/IP möglich zu realisieren ?
Schnittstelle zu Python
-
DG7JG -
May 27, 2016 at 11:50 AM
-
-
Quote
Wäre sowas nicht irgendwie mit TCP/IP möglich zu realisieren ?
Kann man natürlich alles machen. Wenn das aber auf einer Maschine läuft oder der Atmel8 erst mit einer Ethernetschnittstelle nachgerüstet werden muß und sich möglicherweise in der gleichen Kiste befindet ist es ein bisschen wie mit dem Schinken nach der Wurst geworfen.
Interessant wird es erst, wenn man mehrere, über größere Entfernung abgesetzte Displays betreiben möchte. Dann ist ein kleines Android-Tablett mit 'nem Browser (was man bei eBay für ein paar Euros bekommt) eventuell auch wieder die bessere Wahl.vy 73s de Adi / DL1HRC
-
Hallo zusammen,
so, nun ist wieder Zeit sich dem Thema zu widmen. Viele Baustellen zurzeit

Zunächst einmal wäre es grundsätzlich zu wissen, wie man an Informationen kommt wie "wer spricht gerade", "wer ist eingeloggt", "wer (dis)connected sich gerade", "wie viele sind eingeloggt".
Also im Grunde, das was das Windows Echolink und auch weitgehend im QTel auch vorhanden ist. Diese gilt es eben verfügbar zu machen und dann kommt eben die (für mich) größte Hürde, diese Informationen abzugreifen.Mit meinen bescheidenen Erfahrungen hatte ich auf Python gesetzt. Dies könnte im Hintergrund in zyklischen Abständen diese Infos`"abholen" und per I2C an den Arduino senden. Dort wird es zur Anzeige gebracht. So wie auch Telemetrie des Gates, Temp, Spannungen Ströme etc........
Sollte es andere Wege geben, gerne. Allerdings bräuchten wir diese nachgeordnete I2C Anbindung aus o. g. Gründen.
Grüße vom Niederrhein
Stefan
-
Hallo Stefan,
möglicherweise ist es gut hier ein einfaches Protokoll zu bauen, damit man die Meldungen zur Anzeige wieder trennen kann, z.B: kann man folgende Meldungen ausgeben lassen:
DISC=DL1HRC
CON=DB0ABC
TX=DL1HRC,1
usw.Mit Deinem Python-Skript mußte dann die Daten sammeln und entsprechend aufbereiten, damit diese sinnvoll dargestellt werden können. Eventuell mußt Du auch zwei Files getrennt beschreiben (normale Logic und EchoLink) weil sich das etwas einfacher gestaltet. Ich will nur darauf hinweisen, dass es eventuell noch "schönere" Varainten gibt aber fang erst mal damit an. Achtung, ich habe jetzt aus den Prozeduren alle Ansagen beim Connect/Disconnect rausgenommen, da ich ja nicht weiß wie das bei dir läuft. Diese mußt Du natürlich noch nachtragen.
EchoLink: erstelle eine Datei /usr/share/svxlink/events.d/local/el-ausgaben.tcl mit folgendem Inhalt
Code
Display Morenamespace eval EchoLink { proc write_data {message} { set fp [open "/tmp/echolinkinfo" "w"]; puts $fp "$message"; close $fp; } proc is_receiving {rx call} { write_data "TX=$call,$rx"; } proc disconnected {call} { write_data "DISC=$call"; } proc remote_connected {call} { write_data "CON=$call"; } }Nach dem Neustart sollten über die Datei /tmp/echolinkinfo die Ausgaben kommen. Auf der "Python-Seite" ersetzt Du dann die Strings entsprechend: "TX=DL1HRC,1" in "DL1HRC spricht gerade" oder wie Du das eben haben möchtest.
vy 73s de Adi / DL1HRC
-
Hallo Adi,
danke schon mal für Deine Arbeit.
Heute morgen habe ich zunächst die TCL sowie die "echolinkinfo" wie von Dir beschrieben erstellt und Svxlink neu gestartet. Habe dann die "echolinkinfo" beobachtet mit folgendem Ergebnis
[root@Echolink stefan]# tail -100f /tmp/echolinkinfo
CON=Call1
tail: /tmp/echolinkinfo: Datei abgeschnitten
CON=Call2
tail: /tmp/echolinkinfo: Datei abgeschnitten
DISC=Call2usw.
Die Datei wir jedes mal neu geschrieben, wenn sich eine neue Station neu ein-, oder ausloggt. Das ist auch ok so.
Quote.....dann die Strings entsprechend: "TX=DL1HRC,1" in "DL1HRC spricht gerade"
Klappt leider nicht. Wenn ich das richtig interpretiere, müsste das doch in dem Zweig
auch ausgeleitet werden, oder?
Grüße
Stefan
-
mit tail geht das leider nicht, die Datei wird nicht größer sondern bei jedem Event neu erstellt. Du mußt also ständig pollen.
Das hier "CON=Call2" verstehe ich nicht, woher kommt Call2 ??
vy 73s de Adi / DL1HRC
-
Hallo Adi,
"Call1" und "Call2" steht natürlich symbolisch für irgendein Rufzeichen. Hmmm wenn das mit Tail nicht funktioniert...... Ok, werde mal sehen, wie ich dem auf die Spur komme.
Trotzdem Danke zunächst.
Grüße
Stefan
-
Hallo Adi,
muss mich leider noch einmal melden zu der /tmp/echolinkinfo
Hast geschrieben
Quotemit tail geht das leider nicht......
Habe das nun mal mit
gemacht und dabei wird ja alle 2 Sekunden der aktuelle Eintrag abgefragt. Soweit meine bescheidenden Kenntnisse
Wie zuvor schon beschrieben, kann ich erkennen wenn jemand sich connected oder disconnected. Aber leider noch nicht wer gerade aktuell spricht. Ist mein benutzter Befehl auch nicht der richtige um den Inhalt anzeigen zu lassen? Oder hat es damit zu tun, dass nur alle 2 Sekunden abgefragt wird? Aber ich denke, der Eintrag sollte ja eigentlich so lange erhalten bleiben, bis der Netzteilnehmer die Taste wieder losgelassen hat und somit auch sichtbar sein, oder?Dann direkt noch eine Frage. Du hast ja zum Test die Ansagen deaktiviert. Welchen "Schalter" haste denn da umgelegt?

Grüße
Der Niederrheiner
-
Moin zusammen,
Adi, habe soeben im laufenden Log folgenden Eintrag gefunden:
CodeSo 12 Mär 2017 10:13:01 CET: Tx1: Turning the transmitter OFF So 12 Mär 2017 10:13:03 CET: *** ERROR: Unable to handle event: EchoLink::is_receiving 1 in logic SimplexLogic (wrong # args: should be "EchoLink::is_receiving rx call") So 12 Mär 2017 10:13:03 CET: Tx1: Turning the transmitter ONPassiert immer dann, wenn ein netzseitiger Teilnehmer spricht.
Grüße
Stefan
-
Ich habe einen LiveMonitor mit PHP und JavaScript gebastelt ist zwar etwas umständlich von der Ausführung her aber es klappt.
-
Quote
So 12 Mär 2017 10:13:03 CET: *** ERROR: Unable to handle event: EchoLink::is_receiving 1 in logic SimplexLogic (wrong # args: should be "EchoLink::is_receiving rx call")
da stimmt irgendwie Deine Prozedur is_receiving nicht. Es sollten zwei Parameter übergeben werden, das Rufzeichen und als zweiter Parameter der TX-Status (1 oder 0).
Schau mal wie Deine is_receiving aussieht.73s de Adi
-
Hallo Adi,
hmmm ich habe den Code so übernommen, wie Du ihn hier gepostet hattest. Du weißt doch, ich kann sowas doch gar nicht selber :roll:


Grüße
Stefan
-