Pietro Bruno Lancerotto
Profilo di
Nome | Pietro Bruno Lancerotto |
---|---|
Indirizzo email | bruno@lancerotto.it |
Avatar | ![]() |
Messaggi | 51 |
Firma forum | |
--
Bruno L. |
-
- 2024-05-13 17:53:40
- Re: Utilizzo Socket
- Forum >> Principianti
- Funziona
def update_controls(self): self.POSTAZIONE.configure(text=pkt_gui_rcs_support.PST)
La riga che riporto l'ho tolta perchè si riferisce al TITOLO della finestrella
Quello presente nel file ini riguarda questo
self.TEntryPostazione.configure(textvariable=self.PostName)
il PST contiene il nome della postazione
Avevo accrocchiato qualcosa inizialmente perchè al boot risultava vuoto e quindi dava errore nella generazione iniziale del file di log
Successivamente lo ho inserito nel file .ini cosi almeno un nome c'è.
Poi, anche se non c'è motivo, può essere modificato.
Funziona così come è per cui rimane così come è.
Quello che viene inserito in quella casella oltre ad apparire in tutti i messaggi è anche il nome del file di LOG
Anche stavolta ti "pago" con un grazie
--- Ultima modifica di Pietro Bruno Lancerotto in data 2024-05-13 17:56:12 -----
Bruno L.
-
- 2024-05-13 15:07:41
- Re: Utilizzo Socket
- Forum >> Principianti
- nuzzopippo said @ 2024-05-13 14:58:53:In ogni caso, il problema posto è stato superato?
No
Nel file pkt_gui_rcs.py ci sono queste 2 righe
textB1 = "Bottone 1"
textB2 = "Bottone 2"
Se le commento, alla riga
self.RadiobuttonNP.configure(text=textB1) #Radio Button n.1
anziche mostrare il testo letto dal file ini da errore
--- Ultima modifica di Pietro Bruno Lancerotto in data 2024-05-13 15:08:06 -----
Bruno L.
-
- 2024-05-13 13:28:32
- Re: Utilizzo Socket
- Forum >> Principianti
- nuzzopippo said @ 2024-05-13 08:40:33:Evitiamo per il momento di affrontare l'intera strutturazione (3 file? prima erano 2)
Il terzo è utility.py che hai realizzato Tu
C'è poi il quarto, e cioè Terminale.ini
Credo sia opportuno aggiornare il tutto allo status attuale per cui allego lo zip con tutto il malloppo
Nel file pkt_gui_rcs.py ho aggiunto questo per far funzionare il tutto
code <
textB1 = "Bottone 1"
textB2 = "Bottone 2" >
Se commentati si verifica errore perchè non "traslati" da ... support.py
Ho spostato la lettura del Terminale.ini s initialize come suggerito ma ho dovuto inserirci anche alcune parti che nel frattempo avevo aggiunto
per esempio :
code <
global serverName
global serverPort
>
Anche se non è presente il suondmodem il terminale si apre comunque riportando una serie di errori relativi al mancato collegamento
Ci leggiamo
--
Bruno L.
-
- 2024-05-12 14:13:29
- Re: Utilizzo Socket
- Forum >> Principianti
- nuzzopippo said @ 2024-05-12 11:46:18:Sinceramente, non ho ben capito cosa hai fatto, la natura del "problema" e "quando" il problema si presenta, leggere il traceback non sarebbe male.Se tento di eseguirla da IDE si ferma indicando un errore che casomai posso copiare enpostare
nuzzopippo said @ 2024-05-12 11:46:18:Comunque, riepiloghiamo il certo : hai bisogno di cambiare il testo del controllo ptk_gui_rcs.PAGINA.RadiobuttonNP
Dubbio corollario, essendo il target un radiobutton, che senso ha
cambiare il testo? è il "value" ciò che entrerebbe realmente in gioco
Esattamente per la riga sopra
Il motivo sulla domanda 2 è che se viene usato il terminale nella gara Maratona vanno bene i testi così come sono
Se usiamo il sistema in un altro tipo di gara ( SoapBox mi pare si chiamino; carretti lanciati in discesa ) i due testi andrebbero sostituiti con parole Partenza e Transito
nuzzopippo said @ 2024-05-12 11:46:18:Per poter cambiare il testo di un controllo, l'istanza alla classe PAGINA deve già essere inizializzata, così come devono già essere già caricate in memoria le variabili contenenti il testo, indipendentemente da dove siano collocate, domanda : la variazione del testo deve avvenire a oggetti già completamente inizializzati od in fase di caricamento?
Poi, c'è da considerare il contesto in cui avviene la modifica, è in ptk_gui_rcs o in ptk_gui_rcs_support?
Comincio dalla fine : i due testi da cambiare in ptk_gui_rcs, dove sono elencati tutti gli elementi dell'interfaccia
Le variabili sono inizializzate in fase si "boot" quando viene letto il file .ini
#**************************************
import tkinter as tk
import tkinter.ttk as ttk
from tkinter.constants import *
import os.path
import pkt_gui_rcs
from datetime import datetime
#import binascii
from utility import Chatterbox
terminale = None
def main(*args):
'''Main entry point for the application.'''
global root
root = tk.Tk()
# Creates a toplevel widget.
global _top1, _w1
_top1 = root
_w1 = pkt_gui_rcs.PAGINA(_top1)
global PST
global textB1
global textB2
global mexB1
global mexB2
f = open("Terminale.ini", "r")
serverName = (f.readline()).strip("\n")
serverPort = int(f.readline())
PST = (f.readline()).strip("\n")
textB1 = (f.readline()).strip("\n")
textB2 = (f.readline()).strip("\n")
mexB1 = (f.readline()).strip("\n")
mexB2 = (f.readline()).strip("\n")
f.close()
serverName = serverName.replace(" ", "")
PST = PST.replace(" ", "")
_w1.PostName.set(PST)
global oggi
Calendario()
Apertura = ("Avvio applicazione il " + oggi + "\n")
Salvataggio(Apertura)
_w1.TESTO_RX.add_text(Apertura)
global terminale
# create TCP socket
terminale = Chatterbox(serverName, serverPort)
# connect socket to remote server at (serverName, serverPort)
terminale.connect()
#*****************************
E qui termina la parte iniziale
Se pensi sia più semplice allego i 3 file + il file.ini
Grazie
--
Bruno L.
-
- 2024-05-12 10:49:53
- Re: Utilizzo Socket
- Forum >> Principianti
- nuzzopippo said @ 2024-03-04 19:27:38:Se mi è riuscito di essere utile ne sono contento ... comunque, testatelo bene il Vostro terminale.
Ciao
Eccomi ancora qui
In fase di test è emersa una richiesta circa la possibilità di modificare il messaggio dei Radiobutton con una variabile
Come scritto in precedenza ho aggiunto un file di configurazione che viene letto nella parte iniziale di pkt_gui_rcs_support
Ho aggiunto 4 righe che servivano ed ovviamente i testi utilizzati in pkt_gui_rcs_support funzionano
Le variabili sono global
Come previsto i 2 testi col nome dei bottoni in pkt_gui_rcs non funzionano
Il compilatore da errore e siferma
#self.RadiobuttonNP.configure(text=pkt_gui_rcs_support.textB1) #Radio Button n.1
self.RadiobuttonNP.configure(text='NON Partiti')
La prima riga è come "dovrebbe" essere nel mio immaginario
La seconda è quella originale
Ovviamente sono a chiederTi in che modo traslare le due variabili textB1 e textB2 da un modulo all'altro
I ringraziamenti sono scontati
--
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.