Pietro Bruno Lancerotto
Profilo di
Nome | Pietro Bruno Lancerotto |
---|---|
Indirizzo email | bruno@lancerotto.it |
Avatar | |
Messaggi | 46 |
Firma forum | |
--
Bruno L. |
-
- 2024-03-04 16:26:19
- Re: Utilizzo Socket
- Forum >> Principianti
- nuzzopippo said @ 2024-02-28 10:34:30:Veniamo ora ai punti di cui Ti volevo avvertire :
1 - in utility.Delivery vi sono diverse istruzioni "raise RuntimeError ...." esse stanno li perché dovrebbero essere intercettate e gestite, altrimenti emetteranno un traceback in una eventuale shell di avvio, ovviamente quando lo ho manipolato non ho "gonfiato" il codice con la gestione degli errori, pensaci ... al minimo trasforma i "raise" in "return"Torno a farmi vivo; sono stato un po' occupato ( visite, esami, i 75 si fanno sentire )
La parte 2 ho sistemato tutto come suggerito
Per quanto riguarda la parte 1 che riporto nel quoting, sono andato a leggere un po'.
In primis ho cercato una traduzione del vocabolo; trovato una mezza enciclopedia sui suoi possibili significati in lingua italiana.
Decidero se tenere aperta la console; sicuramente lo farò in fase iniziale giusto per vedere se ogni tanto appare qualcosa.
Ho fatto alcune aggiunte.
f = open("Terminale.ini", "r")
serverName = (f.readline()).strip("\n")
serverPort = int(f.readline())
f.close()
Ho aggiunto un file minimalista per poter cambiare IP; mi serve provare da remoto perchè non sempre ho qualcuno che mi faccia da sponda e quindi metto in funzione il tutto sull'IP settato nel router come da mie messaggi precedenti.
Ho poi intercettato i caratteri "strani" che inceppavano il sistema.
# Sostituzione caratteri accentati
TDT = TDT.replace("ò", "o'")
TDT = TDT.replace("à", "a'")
TDT = TDT.replace("ù", "u'")
TDT = TDT.replace("ì", "i'")
characters = "éè"
for x in range(2):
TDT = TDT.replace(charactersx, "e'")
characters = "£ç°§"
for x in range(4):
TDT = TDT.replace(charactersx, "_")
Perché l'abitudine è di scrivere in una certa maniera ed anche se ti dicono di evitare poi scappa lo stesso
Il sistema funziona; abbiamo provato per un paio d'ore in condizioni reali e la "banda bassotti" si è dichiarata più che contenta ed invia i ringraziamenti per il fondamentale aiuto
nuzzopippo said @ 2024-02-28 10:34:30:Comunque, thread e socket sono bestioline complicate ed approfondite, così come la strutturazione del codice ... hai ricevuto la mia email di risposta? Se ritieni posso inviarti una maccheronica traduzione (fatta da me e non pubblicabile) di un tutorial sui thread che ho trovato "buono" come spunto per approfondire l'argomento.
Si si ricevuta
Ti rispondo di là
Grazie ancora
--
Bruno L.
-
- 2024-02-28 16:22:52
- Re: Utilizzo Socket
- Forum >> Principianti
- nuzzopippo said @ 2024-02-28 10:34:30:L'intestazione con il FROM TO LEN a livello pratico delle nostre necessità non riveste alcuna importanza
... C'è quel "nostre" che mi preoccupa un po' ...Il nostre era riferito alla mia combriccola che utilizzerà il Terminale
nuzzopippo said @ 2024-02-28 10:34:30:La finestra rispetterà i ritorni a capo solo (e soltanto) se riceverà una stringa codificata quale utf-8, i singoli caratteri"\" e "n", passati come tali non verranno interpretati come new-line ... in pratica, dovresti decodificare l'insieme di bytes da passare alla finestra come 'utf-8'
msg = ['RECEIVED', data[86:-3].decode(encoding="UTF-8", errors="ignore")]
Questo è quello che c'è scritto
nuzzopippo said @ 2024-02-28 10:34:30:Veniamo ora ai punti di cui Ti volevo avvertire :
Dammi il tempo di leggere e tentare di capire
Comunque lo ho fatto "girare" per più di 10 ore continuative in ricezione sull'APRS
E lì viene giù di tutto in quanto a stramberie di caratteri; è lì che mi sono accorto di qualche problema ed ho aggiunto l'ignore di cui sopra
Ciao e grazie
PS : IO ho problema dei ritorni a capo; l'editor di questo Forum ne aggiunge a manetta
--- Ultima modifica di Pietro Bruno Lancerotto in data 2024-02-28 16:25:15 -----
Bruno L.
-
- 2024-02-27 18:24:51
- Re: Utilizzo Socket
- Forum >> Principianti
- nuzzopippo said @ 2024-02-26 18:43:47:Ho cercato di spiegarne il funzionamento in questo post, su di un sito di cui sono l'howner, c'è anche il codice di una finestra di test e potrebbe mostrarTi altri tipi di approccio.
Se mi dirai che ne pensi sarà gradito.Cosa pensare ??
Eccezzionale !!!
Ho fatto qualche adattamento
Abbassato il bordo superiore perché la finestra andava sotto la Label "RICEZIONE"
Poi leggendo l'ottimo post di cui sopra, ho messo il wrap = word
Di conseguenza ho commentato le tre righe della scrolbar orizzontale
Almeno quello che arriva si vede per intero senza doversi spostare in orizzontale
E poi messo 100 nel numero di righe
Poi, cosa che non c'entra nulla con Python, ho eliminato molti più caratteri
L'intestazione con il FROM TO LEN a livello pratico delle nostre necessità non riveste alcuna importanza
Poi
leggendo le API consigliate dall'amico Andrej ho modificato il FROM con
il Testo + chr(0) *10 e "tagliando" poi tutto a 10 caratteri
In
realtà il FROM ha i caratteri del nominativo ma potrebbe avere un -1 o
altro in aggiunta per indicare se sei fisso, in movimento o altro
Se
il nominativo fosse 5 caratteri verrebbero aggiunti NUL nei "buchi"
vuoti. Non sono 6 + 4 NULL ma bensi 10 con i NULL nelle posizioni
mancanti
Teniamo presente che il COSO è per i radioamatori
Tornando a noi volevo chiederTi qualcosa sui ritorni a capo
Ne file di LOG che io salvo ci sono per cui in quel text nel obs ci sono
self.TESTO_RX.add_text(txt + '\n')
in coda ho aggiunto
pkt_gui_rcs_support.Salvataggio(txt + "\n")
E' possibile che quella finestra Rispetti i ritorni a capo ??
Ovviamente sarà come scrivi nell'articolo che le righe impostate a 100 saranno in realtà di più
Mi defisci collega, troppo onore. Mi reputo uno smanettone ignorante.
Ciao e grazie ancora--
Bruno L.
-
- 2024-02-27 18:24:42
- Re: Utilizzo Socket
- Forum >> Principianti
- nuzzopippo said @ 2024-02-26 18:43:47:Ho cercato di spiegarne il funzionamento in questo post, su di un sito di cui sono l'howner, c'è anche il codice di una finestra di test e potrebbe mostrarTi altri tipi di approccio.
Se mi dirai che ne pensi sarà gradito.Cosa pensare ??
Eccezzionale !!!
Ho fatto qualche adattamento
Abbassato il bordo superiore perché la finestra andava sotto la Label "RICEZIONE"
Poi leggendo l'ottimo post di cui sopra, ho messo il wrap = word
Di conseguenza ho commentato le tre righe della scrolbar orizzontale
Almeno quello che arriva si vede per intero senza doversi spostare in orizzontale
E poi messo 100 nel numero di righe
Poi, cosa che non c'entra nulla con Python, ho eliminato molti più caratteri
L'intestazione con il FROM TO LEN a livello pratico delle nostre necessità non riveste alcuna importanza
Poi
leggendo le API consigliate dall'amico Andrej ho modificato il FROM con
il Testo + chr(0) *10 e "tagliando" poi tutto a 10 caratteri
In
realtà il FROM ha i caratteri del nominativo ma potrebbe avere un -1 o
altro in aggiunta per indicare se sei fisso, in movimento o altro
Se
il nominativo fosse 5 caratteri verrebbero aggiunti NUL nei "buchi"
vuoti. Non sono 6 + 4 NULL ma bensi 10 con i NULL nelle posizioni
mancanti
Teniamo presente che il COSO è per i radioamatori
Tornando a noi volevo chiederTi qualcosa sui ritorni a capo
Ne file di LOG che io salvo ci sono per cui in quel text nel obs ci sono
self.TESTO_RX.add_text(txt + '\n')
in coda ho aggiunto
pkt_gui_rcs_support.Salvataggio(txt + "\n")
E' possibile che quella finestra Rispetti i ritorni a capo ??
Ovviamente sarà come scrivi nell'articolo che le righe impostate a 100 saranno in realtà di più
Mi defisci collega, troppo onore. Mi reputo uno smanettone ignorante.
Ciao e grazie ancora--
Bruno L.
-
- 2024-02-27 18:24:27
- Re: Utilizzo Socket
- Forum >> Principianti
- nuzzopippo said @ 2024-02-26 18:43:47:Ho cercato di spiegarne il funzionamento in questo post, su di un sito di cui sono l'howner, c'è anche il codice di una finestra di test e potrebbe mostrarTi altri tipi di approccio.
Se mi dirai che ne pensi sarà gradito.Cosa pensare ??
Eccezzionale !!!
Ho fatto qualche adattamento
Abbassato il bordo superiore perché la finestra andava sotto la Label "RICEZIONE"
Poi leggendo l'ottimo post di cui sopra, ho messo il wrap = word
Di conseguenza ho commentato le tre righe della scrolbar orizzontale
Almeno quello che arriva si vede per intero senza doversi spostare in orizzontale
E poi messo 100 nel numero di righe
Poi, cosa che non c'entra nulla con Python, ho eliminato molti più caratteri
L'intestazione con il FROM TO LEN a livello pratico delle nostre necessità non riveste alcuna importanza
Poi leggendo le API consigliate dall'amico Andrej ho modificato il FROM con il Testo + chr(0) *10 e "tagliando" poi tutto a 10 caratteri
In realtà il FROM ha i caratteri del nominativo ma potrebbe avere un -1 o altro in aggiunta per indicare se sei fisso, in movimento o altro
Se il nominativo fosse 5 caratteri verrebbero aggiunti NUL nei "buchi" vuoti. Non sono 6 + 4 NULL ma bensi 10 con i NULL nelle posizioni mancanti
Teniamo presente che il COSO è per i radioamatori
Tornando a noi volevo chiederTi qualcosa sui ritorni a capo
Ne file di LOG che io salvo ci sono per cui in quel text nel obs ci sono
self.TESTO_RX.add_text(txt + '\n')
in coda ho aggiunto
pkt_gui_rcs_support.Salvataggio(txt + "\n")
E' possibile che quella finestra Rispetti i ritorni a capo ??
Ovviamente sarà come scrivi nell'articolo che le righe impostate a 100 saranno in realtà di più
Mi defisci collega, troppo onore. Mi reputo uno smanettone ignorante.
Ciao e grazie ancora
--
Bruno L.
-
- 2024-02-25 19:43:17
- Virus ???
- Forum >> Principianti
- Ciao a Tutti
Portato a livello di funzionamento il progetto discusso nei post "Utilizzo Socket" grazie al notevole aiuto da parte di nuzzopippo mi trovo a fare i conti con chi utizzerà il terminale realizzato.
Unica via creare un eseguibile ovviamente Windows perchè tutti i portatili sono così
Per facilitare la vita faccio un file.bat con tutto scritto
pyinstaller D:\......\pkt_gui_rcs.py --noconsole --onefile
Tutto OK
Sui miei PC nessun problema
Carico il file su un altro portatile e parte una raffica di avvisi che il file è un trojan e si conclude con la cancellazione del file
Metto la cartella preposta nelle eccezzioni e ricarico il file.... tutto OK
Nei miei PC è installato ESET Endpoint Antivirus o Internet Security
Negli altri NULLA o meglio è il sistema di sicurezza di windows a gestire la cosa
Nessuno ha mai generato un eseguibile ??
Devo comunque precisare che ho compilato anche il server scritto per le prove da nuzzopippo e non da nessun problema
Mistero misterioso ????
--- Ultima modifica di Pietro Bruno Lancerotto in data 2024-02-25 19:44:12 -----
Bruno L.
-
- 2024-02-25 18:26:49
- Re: Utilizzo Socket
- Forum >> Principianti
- nuzzopippo said @ 2024-02-25 10:48:59:EDIT : No, lascia perdere, non funziona
meglio la Tua soluzione di ignorare gli errori.
Con la soluzione di ignorare gli errori sta andando da una decina di ore senza perdere un colpo; quasi 3000 righe di log.
Io sto provando connesso agli APRS che mandano un casino di caratteri strani
Mi domando come il SM faccia passare certi pacchetti.
Quando sarà usato per lo scopo per cui è nato ci saranno solo caratteri corretti e comunque le postazioni sono qualche decina di Km dalla prima all'ultima
Il segnale è sempre molto forte per cui non c'è pericolo di invii farlocchi.
Adesso dovrò ridimensionare un po' perchè è troppo grande.Nella parte TX vengono inviate 2 3 righe alla volta per cui và accorciata
Grazie al tuo supporto sono arrivato in fondo
--
Bruno L.
-
- 2024-02-25 08:47:26
- Re: Utilizzo Socket
- Forum >> Principianti
- Sto facendo qualche prova per togliere i caratteri da 128 a 255
string = "AAAÇüé°BBB"
characters = "Ç°üé"
for x in range(len(characters)):
string = string.replace(charactersx, "") # ma perchè toglie le parentesi quadre ai lati di x
print(string)
In ogni caso io ho byte
vedo cosa succede
Ho modificato così
msg = ['RECEIVED', data[36:-3].decode(encoding="UTF-8", errors="ignore")]
--- Ultima modifica di Pietro Bruno Lancerotto in data 2024-02-25 10:21:58 -----
Bruno L.
-
- 2024-02-24 20:05:53
- Re: Utilizzo Socket
- Forum >> Principianti
- Oggi ho messo sotto torchio il terminale
Diciamo che nell'ambito di utilizzo suo proprio non dovrebbe accadere mai .... però
L'ho lasciato in ascolto sul canale APRS dei radioamatori e li arriva un po' di tutto ed è arrivato questo
`''yl!rr/r7a & ru12a sysop IR3BT*,WIDE2-1 <UI pid=F0 Len=26 >[16:45:18]
`''yl!rr/r7a & ru12a sysop IR3BT*,IK3SVW-11*,WIDE2* <UI pid=F0 Len=26 >[16:45:20]
Che finché il decode ha "tenuto" ha dato questo
1:Fm IN3RIY To 4V0P20 Via IR3BT*,WIDE2-1 <UI pid=F0 Len=26 >[16:45:18]
`''yl!rr/r7a & ru12a sysop
1:Fm IN3RIY To 4V0P20 Via IR3BT*,IK3SVW-11*,WIDE2* <UI pid=F0 Len=26 >[16:45:20]
`''yl!rr/r7a & ru12a sysop
Poi alla ricezione successiva è andato in errore
Exception in thread Thread-1 (listen):
Traceback (most recent call last):
File "C:\Program Files\Python312\Lib\threading.py", line 1073, in _bootstrap_inner
self.run()
File "C:\Program Files\Python312\Lib\threading.py", line 1010, in run
self._target(*self._args, **self._kwargs)
File "D:\DRIVE-BRUNO\PYTHON\PROVE\PKT_GUI_RCS\utility.py", line 86, in listen
msg = ['RECEIVED', data[36:-3].decode()]
^^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf8 in position 144: invalid start byte
Argghhh vale 248 decimale / è °
In un primo momento avevo pensavo alla lunghezza ma poi leggendo bene ...
Un famigerato carattere oltre il 127
Secondo il mio punto di vista bisognerebbe prima tagliare il data e poi vedere se nella parte estrapolata ci sia un carattere > di 127 e saltare la decodifica
Trovare UN carattere è una cosa ma in questo caso bisogna "ciclare" tutti i caratteri e se uno è sballato saltare il decode
Questa la mia teoria ma metterla in pratica ....
Mi è capitato di muovere il disco di una "bollinatrice" con 36 caratteri ( 1 ogni 10° ) posizionandola dopo aver interpretato il codice ASCII del testo, lettera per lettera.
Ma in quel caso il linguaggio era un altro e non era Python
Si puo' fare ??
--- Ultima modifica di Pietro Bruno Lancerotto in data 2024-02-24 20:19:24 -----
Bruno L.
-
- 2024-02-24 13:39:59
- Re: Utilizzo Socket
- Forum >> Principianti
- nuzzopippo said @ 2024-02-23 16:38:57:beh ... Sembra che, finalmente la cosa comincia a "muoversi",Ho eliminato parti disattivate ed fatto qulache accorciamento sul tipo chr(0)*7 anziche una fila di ++++
Ti chiedo se sia il caso di postare i file nella loro versione "quasi" definitiva a beneficio di quanti dovessero cimentarsi con un colloquio TCP/IP fra applicazioni
E come già chiesto ti chiedo di orientarmi su cosa mettere al posto della Label nel riquadro ricezione
Io poi faccio un po' di prove "fuori campo" e capito come deve essere, rifaccio la parte
Ciao ed ancora grazie
--
Bruno L.