Profilo di Pietro Bruno Lancerotto

Nome Pietro Bruno Lancerotto
Indirizzo email bruno@lancerotto.it
AvatarAvatar utenti
Messaggi56
Firma forum
--
Bruno L.
  • Re: Variazione sintassi da vers. 3.4 a 3.12
    Forum >> Principianti
    msg = ['OUTCOME', ' Connessione con {0} stabilita'.format(self.svr)]
    
    Funziona ;)

    Devo dire che questo lo posso capire

    I := per risparmare una riga e qualche carattere proprio no

    Rende meno immediata la comprensione del codice

    Poi uno lo sa e va bene così




    Ti ringrazio per il supporto


    --
    Bruno L.
  • Re: Variazione sintassi da vers. 3.4 a 3.12
    Forum >> Principianti
    Pensando di aver capito che il tutto era dovuto ad una fantasiosa invenzione per risparmiare qualche carattere ho modificato così

    #if (instance := getattr(cls, inst_field, None)) is None:
    instance = getattr(cls, inst_field, None)
    if instance is None:




    Naturalmente oltrepassa il punto ma si ferma qui

    msg = ['OUTCOME', f' Connessione con {self.svr} stabilita']

    con questa indicazione

    msg = ['OUTCOME', f' Connessione con {self.svr} stabilita']
    ^
    SyntaxError: invalid syntax




    Il cappelletto è in corrispondenza dell'apice a fine parola " stabilita "

    Se avete qualche idea perchè non credo di riuscire ad arrivarci goooglando




    --
    Bruno L.
  • Re: Variazione sintassi da vers. 3.4 a 3.12
    Forum >> Principianti
    Hai valutato se non ti convenga avviare il pc con un dongle linux lite aggiornato?

    No, e neanche ci penso

    Se funziona così bene altrimenti non è di vitale importanza

    --
    Bruno L.
  • Re: Variazione sintassi da vers. 3.4 a 3.12
    Forum >> Principianti
    Pietro Bruno Lancerotto said @ 2024-08-30 15:36:58:
    Quel := che funziona su 3.12 non funziona su 3.4

    Walrus Operator.

    Trovato qui : https://www.programmareinpython.it/blog/python-38-le-novita-piu-importanti/




    Quindi io dovrei rappezzare a ritroso questo pezzo

    if (instance := getattr(cls, inst_field, None)) is None:
                instance = orig_new(cls)
                if hasattr(cls, "__init__"):
                    cls.__init__(instance, *args, **kwargs)
                    delattr(cls, "__init__")
                setattr(cls, inst_field, instance)
            return instance





    Poi speriamo che sia l'unico inghippo

    [NdCM: modificata formattazione]


    --- Ultima modifica di ㎝ in data 2024-08-30 17:13:23 ---
    --
    Bruno L.
  • Variazione sintassi da vers. 3.4 a 3.12
    Forum >> Principianti
    Dopo il lungo lavoro di cui a : http://www.python.it/forum/thread/6944/utilizzo-socket/?page=6#post-7078

    perfettamente funzionante grazie all'aiuto ricevuto mi ritrovo con un problema di portatilità.




    Per comodità di distribuzione il programma è stato "compilato" ed installato su vari PC

    Il programma è un terminale da usare in abbinamento ad una RiceTrasmittente e quindi si usano i portatili in avanzo visto le situazioni abbastanza precarie dei servizi.

    Sui vari 64 bit nessun problema.

    Poi su un vecchio W7 32 bit ho optato per l'installazione di PYTHON ed utilizzo dei sorgenti direttamente; anche qui tutto OK

    Ma siccome l'appetito vien mangiando ho riesumato un PC W-XP e vi ho installato PYTHON 3.4 che dalle mie ricerche sembra essere l'ultima versione utilizzabile su tale S.O.




    Problema che appare mandando in esecuzione il tutto tramite un file Batch


    ==================

    C:\PACKET\TERM_RCS\SOURCES>python.exe C:\PACKET\TERM_RCS\SOURCES\pkt_gui_rcs_support.py
    Traceback (most recent call last):
    File "C:\PACKET\TERM_RCS\SOURCES\pkt_gui_rcs_support.py", line 14, in <module> import pkt_gui_rcs
    File "C:\PACKET\TERM_RCS\SOURCES\pkt_gui_rcs.py", line 14, in <module>from utility import Delivery
    File "C:\PACKET\TERM_RCS\SOURCES\utility.py", line 14

    if (instance := getattr(cls, inst_field, None)) is None:
    ^
    SyntaxError: invalid syntax

    ============================

    Quel := che funziona su 3.12 non funziona su 3.4

    Nelle mie ricerche mi pare di aver capito che la sintassi sia camabiata dalla 3.8

    Non ho però trovato una tabellina comparativa per poter fare almeno una prova




    Grazie anticipato per ogni tipo di aiuto

    --
    Bruno L.
  • 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.
  • Re: Utilizzo Socket
    Forum >> Principianti
    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.
  • Re: Utilizzo Socket
    Forum >> Principianti
    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.
  • Re: Utilizzo Socket
    Forum >> Principianti
    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




    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

    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.
  • Re: Utilizzo Socket
    Forum >> Principianti
    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.