Seite 7 von 46

Re: Projekt piTelex - Vorstellung

Verfasst: Mo 17. Jan 2022, 21:37
von BjoernS
Moin,
FredSonnenrein hat geschrieben: Mo 17. Jan 2022, 08:23 An einer Stelle gibt es noch Verbesserungsbedarf: Bei abgehenden Verbindungen verlangt das piTelex, dass die Gegenstelle die ersten Daten sendet. Dies ist bei den meisten i-Telex-Installationen auch der Fall, weil diese das Datum unmittelbar nach Verbindungsaufnahme senden. Das ist aber optional und abschaltbar. Wenn das Datum abgeschaltet ist, dann sendet das angerufene i-Telex als einzige "Einschaltbestätigung" nur ein Ack-Telegramm mit Datenwert 0. Dieses nimmt das piTelex aber nicht als "Bestätgung" und schaltet somit den sendenden Fernschreiber nicht ein.
Danke für den Hinweis ... aktuell starten nur Direct Dial und Baudot Data den Motor (abgesehen vom ASCII-Modus). Ich sehe den Fehler: Werde ich angerufen, bekomme ich nach Spec immer ein Direct Dial, welches einer Aufforderung zum Starten gleichkommt. Rufe ich selber an, habe ich in diesem Fall immer auf Baudot Data vertraut ... :schwitz: Kommt in die "Pipeline" :D

(Habe das vermutlich damals überlesen in der Spec.)

Grüße


Björn

Re: Projekt piTelex - Vorstellung

Verfasst: Di 18. Jan 2022, 13:43
von FredSonnenrein
Es gibt noch ein zweites Problem, das zu merkwürdigen Effekten führt:
Das Ack-Telegramm, das vom piTelex kommt, scheint nicht die wirkliche Geschwindigkeit des angeschlossenen Fernschreibers zu berücksichtigen. Bei Probeverbindungen war es meist so, dass nach einem Datenpaket mit mehreren Zeichen sofort eine Rückmeldung (ACK-Paket) kam, das alle Zeichen als bereits gedruckt gemeldet hat. Das passt irgendwie nicht (jedenfalls wenn ein echter Fernschreiber angeschlossen ist).

Re: Projekt piTelex - Vorstellung

Verfasst: Di 18. Jan 2022, 14:20
von BjoernS
Fred, danke für deine Rückmeldung. Hier wäre wichtig zu wissen, welchen Datums die betreffende Installation ist. Die "richtige" Acknowledge-Behandlung ist seit Ende 2020 implementiert (da kam sie in den master-Zweig).

Gegen den letzten Stand kannst du gerne bei mir testen (844767 twtr d, aktuell nur bis 21 Uhr erreichbar), bisher habe ich keine Probleme bemerkt. Bei mir läuft auch tshark 24/7 mit, im Zweifel kann man da auch was nachvollziehen. Nur bitte nicht mein Papier leermachen ;)

Wenn jemand Hilfe beim piTelex-Upgrade braucht, bitte gerne bei mir oder Jochen melden. Die Standardsysteme lassen sich per SSH fernwarten (natürlich nur, wenn der Eigentümer den Port ins Internet freigibt :D).

Grüße


Björn

Re: Projekt piTelex - Vorstellung

Verfasst: Mi 19. Jan 2022, 00:12
von BjoernS
Hallo nochmal zusammen,

der "master" wurde vorgespult auf den o.g., de facto stabilen Stand. Die aktuelle Entwicklung findet im ExperimentalFeatures-2022-01 statt.

Grüße


Björn

Re: Projekt piTelex - Vorstellung

Verfasst: Sa 9. Apr 2022, 22:07
von Baderbahn
Damit das drüben nicht untergeht und auch anderen Nutzern hilft, "crosposte" ich meine piTelex-Fragen mal hier im Faden:

In Ermangelung eines RaspberryPi würde ich gerne piTelex auf meinem Rechner mit Fedora 35 nutzen.
Installiert habe ich nach der Anleitung im piTelex-Wiki, Abschnitt "PC-Linux". Nachinstalliert werden mußte das "commentjson"-Paket (evtl. kann das noch ins Wiki aufgenommen werden).
Leider bekomme ich nach Aufruf der telex.py über

Code: Alles auswählen

sudo ./telex.py -E
immer folgende Fehlermeldung:

Code: Alles auswählen

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Can't connect to pigpio at None(8888)

Did you start the pigpio daemon? E.g. sudo pigpiod

Did you specify the correct Pi host/port in the environment
variables PIGPIO_ADDR/PIGPIO_PORT?
E.g. export PIGPIO_ADDR=soft, export PIGPIO_PORT=8888

Did you specify the correct Pi host/port in the
pigpio.pi() function? E.g. pigpio.pi('soft', 8888)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Traceback (most recent call last):
  File "/home/sbader/piTelex/./telex.py", line 372, in <module>
    main()
  File "/home/sbader/piTelex/./telex.py", line 322, in main
    init()
  File "/home/sbader/piTelex/./telex.py", line 186, in init
    import txDevRPiTTY
  File "/home/sbader/piTelex/txDevRPiTTY.py", line 27, in <module>
    from RPiIO import NumberSwitch, Observer, pi, pi_exit
  File "/home/sbader/piTelex/RPiIO.py", line 29, in <module>
    raise Exception('no connection to remote RPi')
Exception: no connection to remote RPi

ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
Nach einigen erfolglosen Versuchen, pigpio unter Fedora als Daemon zu starten, MEINE ich, daß das nun laufen SOLLTE - die Fehlermeldung bleibt auch nach Reboot die Gleiche.

In meiner Verzweiflung habe ich versucht, das Ganze auf Windows (64 und 32 Bit, je die aktuelle Version Windows 10Pro) mit Anaconda ans Laufen zu bringen - Fehlanzeige. Auf der 64Bit Maschine bekomme ich nicht einmal pyaudio sauber installiert, auf der 32Bit ARM-Maschine klappt das wenigstens, die Abbruchfehlermeldung ist jedoch (bis auf den ALSA-Teil, dafür mit ettlichen "divide by zero"-Fehlern) die Selbe wie unter Fedora.
Probiert habe ich das Ganze je mit und ohne angesteckter USB-Soundkarte.

Nun die Frage: Muß ich irgend etwas umkonfigurieren, daß das auf einem "normalen Rechner" läuft? Vielleicht bin ich auch einfach zu doof :hehe: :whack:...Leider spart sich die Installationsanweisung da etwas aus...

Ansonsten bin ich versucht, mir einen "Raspberry Pi Zero-W 512MB" (neu und verlockend klein - passt evtl. sogar in die ADo8) oder "Raspberry Pi modell B" (alt, aber günstig) zu besorgen - die Software sollte darauf laufen, oder?

Vielen Dank und viele Grüße,
Simon

P.S. Die "commentjson" mußte unter beiden Windowssystemen ebenfalls nachinstalliert werden - daher auch die Anfrage auf die Wiki-Erweiterung

Re: Projekt piTelex - Vorstellung

Verfasst: So 10. Apr 2022, 16:58
von BjoernS
Moin Simon,

danke für den Crosspost, ich hänge mit dem Forumlesen derzeit sehr hinterher, wie Jochen auch. :(
Baderbahn hat geschrieben: Sa 9. Apr 2022, 22:07 In Ermangelung eines RaspberryPi würde ich gerne piTelex auf meinem Rechner mit Fedora 35 nutzen.
[...]
immer folgende Fehlermeldung:

Code: Alles auswählen

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Can't connect to pigpio at None(8888)

[...]
Nun die Frage: Muß ich irgend etwas umkonfigurieren, daß das auf einem "normalen Rechner" läuft?
Ja ;) Bzw. du müsstest überhaupt erst konfigurieren. Leider ist die Doku weiterhin ein kleiner Schwachpunkt.

Ursache ist, dass in deiner aktuellen telex.json (die Konfigurationsdatei) das Modul txDevRPiTTY aktiviert ist, welches des Raspberry-Pi-GPIO-Daemon benötigt. Das ergibt auf deinem PC keinen Sinn, außer du willst einen emulierten Pi testen.

Deshalb müsstest du in telex.json direkt die entsprechenden Module konfigurieren, dann benötigst du die Option -E für ED1000 auch nicht mehr. Im entsprechenden Abschnitt muss der Eintrag "enabled" auf "true" oder "false" gesetzt werden. Die wichtigsten Module:
  • RPiTTY: Hardwareanbindung TW39 mit GPIO-Pins des Pi (deaktivieren!)
  • CH340TTY: Hardwareanbindung TW39 mit CH340-USB-Adapter (deaktivieren!)
  • ED1000: Hardwareanbindung ED1000 (aktivieren! siehe unten!)
  • screen: Wenn du im Terminalfenster den Datenverkehr beobachten willst (zu empfehlen!)
  • i-Telex: Die Anbindung an i-Telex. Achtung, die Parameter tns-* nur benutzen, wenn du einen dynamischen Eintrag im Teilnehmerserver nutzt. Anderenfalls auf Standardwerten lassen.
  • log: Ein Datenlog, der alles mitschreibt. Für Fehlersuche sehr nützlich.
  • archive: Ein Archivmodul, das jedes FS als einzelne Datei ablegt.
  • Im Hauptabschnitt noch wichtig: wru_id/wru_fallback, die Kennungsgeber-Emulation. Nur benutzen, wenn du auch bei Fehlern mit der Hardware empfangsbereit sein möchtest (oder dein FS gar keinen Kennungsgeber hat). Ergibt nur Sinn mit laufender Konsole oder Archivmodul.
Bei ED1000 am PC muss ggf. noch die richtige Audioquelle ermittelt und konfiguriert werden. Dazu gibt es das Hilfsskript ED1000/audiotest.py, damit kannst du schnell ermitteln ob pyaudio funktioniert und du bekommst eine Liste aller für pyaudio sichtbaren Audiogeräte. Bei mir auf dem Pi z.B.:

Code: Alles auswählen

=== pyAudio device list ===
Device ID	outputs	inputs	name
0		8	0	bcm2835 Headphones: - (hw:0,0)
1		128	0	sysdefault
2		128	0	lavrate
3		128	0	samplerate
4		128	0	speexrate
5		8	0	upmix
6		6	0	vdownmix
7		2	0	dmix
Gerät "0" ist hier die Pi-Audiohardware. Ich benutze einen USB-Audioadapter für ED1000 -- hier nicht aufgeführt, da schon belegt durchs laufende piTelex -- und dessen ID sollte unter "devindex" in telex.json eingetragen werden. "null" bedeutet "Standard", und das ist das erste verfügbare Gerät, also nicht unbedingt immer dasselbe.

Weiterhin wichtig ist, dass das Gerät im Mixer laut genug eingestellt ist (z.B. mit alsamixer, F6 zum Auswählen des Geräts) und als Aufnahmequelle der entsprechende Kanal ausgewählt und laut genug ist. Automatischer Krimskrams wie "auto gain control" sollten aus sein. Meist funktioniert es dann direkt, falls nicht gibt es noch ein Hilfsskript, mit dem man gute Werte für die Rauschunterdrückung (recv_squelch) schätzen kann.

Dann gibt es noch unres_threshold -- das ist die Reaktionszeit der Hardware auf den Online-Befehl. Das muss typischerweise dann erhöht werden, wenn du eine "Sparschaltung" benutzt. Am PC wohl eher unwahrscheinlich.

Dann gibt's noch eine Möglichkeit, ALSA zum beidseitigen Mithören des Audiosignals bei laufendem piTelex aufzusetzen. Ggf. auch gut zur Fehlersuche.

Viel Erfolg und melde dich gerne, falls du noch Fragen hast. (Bin auch öfters in der Sonntagsrunde anzutreffen.)

Grüße


Björn

P.S.: Schick mir gerne ein Test-Telex.

Re: Projekt piTelex - Vorstellung

Verfasst: So 10. Apr 2022, 21:26
von Baderbahn
Hallo Björn,

vielen lieben Dank für Deine Mühe!

In der telex.json habe ich die Einstellung nach Deiner Anleitung geändert und diesem Post als *.txt angehängt.

Wenn ich die audiotest.py ausführe, um die DeviceID der Soundkarte herauszufinden, bekomme ich folgende Meldung:

Code: Alles auswählen

ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
=== pyAudio device list ===
Device ID	outputs	inputs	name
0		2	2	HDA Intel PCH: CX20724 Analog (hw:0,0)
1		8	0	HDA NVidia: HDMI 0 (hw:1,3)
2		8	0	HDA NVidia: HDMI 1 (hw:1,7)
3		8	0	HDA NVidia: HDMI 2 (hw:1,8)
4		8	0	HDA NVidia: HDMI 3 (hw:1,9)
5		8	0	HDA NVidia: HDMI 4 (hw:1,10)
6		8	0	HDA NVidia: HDMI 5 (hw:1,11)
7		8	0	HDA NVidia: HDMI 6 (hw:1,12)
8		0	1	USB PnP Sound Device: Audio (hw:2,0)
9		128	128	sysdefault
10		2	0	front
11		2	0	surround40
12		2	0	surround51
13		2	0	surround71
14		2	0	dmix
Also gehe ich davon aus, daß meine Soundkarte an DeviceID 8 hängt (wenn ich sie ausstecke und das Skript laufen lasse, fehlt sie also passt das Ü). Wieso da nur ein Input und keine Outputs angezeigt werden, ist mir erstmal ein Rätsel...
Was mich hier irritiert, sind die ganzen ALSA-Fehlermeldungen.

Wenn ich nun die telex.py (ohne Argumente) als sudo ausführe habe ich folgendes Bild:

Code: Alles auswählen

 -=TELEX=- 

ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
Expression 'parameters->channelCount <= maxChans' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1520
Expression 'ValidateParameters( outputParameters, hostApi, StreamDirection_Out )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2828
Traceback (most recent call last):
  File "/usr/lib64/python3.10/threading.py", line 1009, in _bootstrap_inner
    self.run()
  File "/usr/lib64/python3.10/threading.py", line 946, in run
    self._target(*self._args, **self._kwargs)
  File "/home/sbader/piTelex/txDevED1000SC.py", line 200, in thread_tx
    stream = audio.open(format=pyaudio.paInt16, channels=1, rate=sample_f, output=True, input=False, output_device_index=devindex, input_device_index=devindex)
  File "/usr/lib64/python3.10/site-packages/pyaudio.py", line 750, in open
    stream = Stream(self, *args, **kwargs)
  File "/usr/lib64/python3.10/site-packages/pyaudio.py", line 441, in __init__
    self._stream = pa.open(**arguments)
OSError: [Errno -9998] Invalid number of channels
Auch wieder lauter ALSA- Fehler... im Netz habe ich zwar viele Fragen jedoch wenig Antworten zu den besagten Fehlermeldungen gefunden...

i-telex habe ich testweise auf "false" und "true" gesetzt - bisher bin ich ja nicht offiziell eingetragen - erst mal soll die Kommunikation zwischen PC und Lo2001 klappen, also wäre "false" eigentlich richtig, oder?

Edit zur Info:
Habe gerade eben die telex.py laufen lassen und direkt im Anschluss ein ALSA-info - File erstellt - die USB-Soundkarte wird auch dort erkannt.

Edit 2:
Ich Depp ( :whistle: ) habe in den Einstellungen das Mikro der USB-Soundkarte nicht angewählt gehabt.
Lasse ich jetzt die telex.py als sudo laufen, bekomme ich wiederum "nur noch" ALSA-Fehler:

Code: Alles auswählen

 -=TELEX=- 

ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
So, das war's für Heute von meiner Seite - morgen ist auch noch ein guter Tag um piTelex ans Laufen zu bringen ;)
Vielleicht besorge ich mir doch einen kleinen Pi...

Re: Projekt piTelex - Vorstellung

Verfasst: Mo 11. Apr 2022, 04:01
von JoeyD
Greetings!

I have my piTelex operational! The setup instructions worked very well the first time.
I was able to make the TW39 connection to an old Soviet ST-35 and it worked for dialing
and motor power controls.

I am needing to now request my piTelex number!!
if you want to test my machine is jozefduszynski.com(99.121.75.9) port 2342.
The documentation for the terminal keyboard operation is however lacking.
A suggestion for the wiki...
Keyboard
@=WRU
#=HERE is
[ESCAPE KEY+AT] = prepare to dial (and of course what to do to dial from the keyboard)
And more...........
I would be willing to make this page, but it would be in English.

Auf Deutch
Gruesse freunde!
Mein piTelex funktioniert! Die anleitung war sehr gut, keine probleme, nur ein versuch!!
Ich konnte die FSG verbindung herstellen die FS strom funktionierte gut.

Ich fordere jetzt die i-Telex-Nummer!!
Bitte testen! IP namen jozefduszynski.com (99.121.75.9) port 2342
Ich mache Vorschlaege fuer WIKI, aber fuer Englisch....
Hoffentlich war mein deutsch unterhaltsam!! LOL :D ;) :whack:

JD

Re: Projekt piTelex - Vorstellung

Verfasst: Mo 11. Apr 2022, 09:39
von BjoernS
Moin Simon,

zuerst eine Entwarnung: Die Fehlermeldungen sind normal, bei mir sind es sogar noch mehr. Habe mal eine Weile recherchiert -- sie hängen mit pyaudio bzw. der darunter liegenden Bibliothek portaudio zusammen, welche bei der Initialisierung alle einkompilierten Soundquellen abprüft. Diese Bibliothek ist in Python als Modul eingebunden und "spuckt" die Meldungen bei Initialisierung ohne Rücksprache mit Python auf die Konsole. Und bei ALSA wird auch jeder Kanal jedes Geräts getestet, bei einigen schlägt das routinemäßig fehl. Bin mir nicht sicher, ob portaudio da nicht etwas zu forsch vorgeht, und zusätzliche Kanäle sieht wo eigentlich keine sind. Funktionale Einschränkungen hatte ich jedenfalls nie -- wenn ein echtes Problem besteht, meldet Python sich mit einem Traceback.

Wie du schon selbst erkannt hast, muss es zumindest einen Eingangs- und einen Ausgangskanal geben. Du musst aber nicht zwingend einen USB-Audioadapter benutzen, für Tests geht auch der Onboard-Sound (hier der Conexant CX20724 aus deinem Intel-Chipsatz). Der Traceback passiert an der Stelle, wo versucht wird, einen Ausgangskanal zu öffnen.
Baderbahn hat geschrieben: So 10. Apr 2022, 21:26 i-telex habe ich testweise auf "false" und "true" gesetzt - bisher bin ich ja nicht offiziell eingetragen - erst mal soll die Kommunikation zwischen PC und Lo2001 klappen, also wäre "false" eigentlich richtig, oder?
Ich will dir die Entscheidung nicht abnehmen, ich liste einfach mal die "Ausbaustufen":
  1. Screen-Modul aktiv, i-Telex inaktiv: Du kannst schonmal in einer Art Lokalmodus mit dem PC kommunizieren.
  2. i-Telex-Modul aktiv, tns_*-Optionen auf Standard: Du kannst andere i-Telex-Nummern anrufen. Du kannst angerufen werden, sofern dein Port aus dem Internet erreichbar ist und jemand deine IP-Adresse kennt. (Zum Beispiel durch einen Festeintrag im Teilnehmerserver.)
  3. i-Telex-Modul aktiv, tns_*-Optionen gesetzt: (Nur nach Rücksprache mit einem Teilnehmerserver-Admin, du musst für einen dynamischen TNS-Eintrag freigeschaltet sein!) Du kannst andere i-Telex-Nummern anrufen, zusätzlich registriert sich dein piTelex im Teilnehmerserver und aktualisiert den dynamischen Eintrag, und testet die Selbsterreichbarkeit periodisch. Damit kannst du auch bei Einwahl mit wechselnder IP-Adresse erreicht werden.
Grüße


Björn

Re: Projekt piTelex - Vorstellung

Verfasst: Mo 11. Apr 2022, 10:18
von BjoernS
Hello Joey

Great to hear you're doing well with piTelex. :)

As mentioned before, the docs are lacking somewhat, unfortunately. Time is the main issue for us.

Quick keys for console operation:
  • Insert: AT (call out)
  • Del: ST (end)
  • Home: LT (local)
I could reach your machine successfully (hope I didn't wake you, the time zone issue clicked only when I read 3 AM :scratch:).

I couldn't trigger your answerback unit, does your machine have one? If not, you can simulate one using the telex.json option wru_id.

As for your "piTelex number", I need to elaborate on that a bit. Beside the original i-Telex hardware, piTelex is one possible client for the i-Telex network. So what you need is an i-Telex number, which you'll need to apply for with the i-Telex subscriber server (TNS) admins. :oldno:

Take care and enjoy your machine


Björn