Re: Projekt piTelex - BONTelex und andere artfremde Empfangsgeräte
Verfasst: Sa 29. Jul 2023, 15:17
Da bin ich mit meinem nicht vorhandenen Python-Wissen am Ende. 

Telex over Internet
https://telexforum.de/
Code: Alles auswählen
"tns_pin": xxxxx,
Code: Alles auswählen
"tns_pin": 12345,
Hier hab ich halt ne für mich typische pin eingesetzt um das aufm Schirm zu haben. Halt nur 'ausge-X-t'. Ich setz aber nochmal die 12345 ein.obrecht hat geschrieben: ↑Sa 29. Jul 2023, 15:28 Aaalso: Ersten Forschungs(vermutungs)ergebnisse:
1.) Das Komma hinter der [EA] Zeile ist zuviel,
2.) Zeileersetzen durchCode: Alles auswählen
"tns_pin": xxxxx,
piTelex erwartet hier eine Zahl, woher in der Vorlage hier das "xxxxx" kommt ist mir schleierhaft, früher stand da auch immer 12345Code: Alles auswählen
"tns_pin": 12345,
Ändert aber auch nix.
Code: Alles auswählen
File "/home/obrecht/piTelex/txDevTerminal.py", line 164, in _write_ascii
self.char_count += 1
AttributeError: 'TelexTerminal' object has no attribute 'char_count'
Code: Alles auswählen
156 def _write_ascii(self, text:str):
157 if not text:
158 return
159 self.char_count = 0 <<===== wenn ich das ergänze, läufts :-)
160
161 bb = text.encode('ASCII')
162
163 if self._auto_CRLF:
164 for b in bb:
165 self.char_count += 1
166 if b == b'\r':
167 self.char_count = 0
168 self._write_raw(b)
169 if self.char_count >= self._auto_CRLF:
170 self._write_raw(b'\r\n')
171 self.char_count = 0
172
173 else:
174 self._write_raw(bb)
Änderungen halt wie hier besprochen.MCMLXXV hat geschrieben: ↑Sa 29. Jul 2023, 15:01 OK, das seh ich ein, macht Sinn. Direkt geändert - dann kommt beim Aufruf von telex.py das da:
Code: Alles auswählen
Traceback (most recent call last): File "/home/pi/piTelex/./telex.py", line 418, in <module> main() File "/home/pi/piTelex/./telex.py", line 371, in main init() File "/home/pi/piTelex/./telex.py", line 180, in init serial = txDevTerminal.TelexTerminal(**dev_param) File "/home/pi/piTelex/txDevTerminal.py", line 82, in __init__ self._write_hextext(text) File "/home/pi/piTelex/txDevTerminal.py", line 200, in _write_hextext self._write_ascii(c) File "/home/pi/piTelex/txDevTerminal.py", line 164, in _write_ascii self.char_count += 1 AttributeError: 'TelexTerminal' object has no attribute 'char_count'
Ohje. Also was was mich komplett überfordert.obrecht hat geschrieben: ↑Sa 29. Jul 2023, 16:27 EDIT: Habe mal in txDevTerminal.py reingeguckt. da wird in der Class TelexTerminal ein Zähler self.char_count definiert, der in der Funktion "write_ascii" verwendet wird, um Zeilenlängen zu begrenzen, wenn auto_CRLF gesetzt ist. Und da steigt er aus, weil in dieser Funktion der Zähler nicht bekannt ist. Wenn ich testhalber die Funktion um eine Neudefinition des Zählers ergänze, läufts auch mit auto_CRLF; aber auf die Schnelle weiß ich nicht, ob das dann von der Funktionalität so korrekt ist. Aber da liegt der Punkt zum Suchen ....
Code: Alles auswählen
156 def _write_ascii(self, text:str): 157 if not text: 158 return 159 self.char_count = 0 <<===== wenn ich das ergänze, läufts :-) 160 161 bb = text.encode('ASCII') 162 163 if self._auto_CRLF: 164 for b in bb: 165 self.char_count += 1 166 if b == b'\r': 167 self.char_count = 0 168 self._write_raw(b) 169 if self.char_count >= self._auto_CRLF: 170 self._write_raw(b'\r\n') 171 self.char_count = 0 172 173 else: 174 self._write_raw(bb)
Viel Erfolg!