Profilo di fabio75

Nome fabio75
Indirizzo email n/a
Messaggi27
  • Re: Problema a salvare un file di interi
    Forum >> Programmazione Python >> GUI
    Risolto il problema riguardo values: ti allego prova.py.

    Una volta risolto il problema nn mi da errori ma nn mi setta gli sliders una volta caricato un file "corretto".

    Non capisco perchè, dai un'occhiata al sorgente.
    Fai alcune prove pure te se hai il tempo.




    --- Ultima modifica di fabio75 in data 2025-10-28 13:06:37 ---

    --- Ultima modifica di fabio75 in data 2025-10-28 13:07:12 ---
  • Re: Problema a salvare un file di interi
    Forum >> Programmazione Python >> GUI
    Ora però mi succede una cosa strana con il codice allegato:

    Se carico con open() modello1 funziona e mi setta gli sliders,

    mentre se carico modello2 mi da il seguente errore:

    Exception in Tkinter callback
    Traceback (most recent call last):
      File "/usr/lib/python3.10/tkinter/__init__.py", line 1921, in __call__
        return self.func(*args)
      File "/media/fabio/6CA2E3C5A2E3923E/Progetti con eagle/SINTHETIZER/SOFTWARE/PC/prova.py", line 292, in _on_open
        self._scalesk.set(app.values)
      File "/usr/lib/python3.10/tkinter/__init__.py", line 3507, in set
        self.tk.call(self._w, 'set', value)
    _tkinter.TclError: expected floating-point number but got "1500 1500 1500 1500 1500"
    
    
    infine se carico modello3 mi funziona lo stesso e mi mette gli sliders tutti a 0 come previsto dal file modello3.

    Carico i tre modelli più il sorgente.

    Fammi sapere.









  • Re: Problema a salvare un file di interi
    Forum >> Programmazione Python >> GUI
    Mi da errore quì:

    def _on_open(self):
    sets = []
    model = select_model(self, self._cache)
    if not model: return
    self._model = os.path.join(self._cache, model + '.json')
    try:
    with open(self._model) as f:
    app.values = json.load(f)
    except OSError as e:
    msg = 'Errore salvataggio dati mixer:\n\n' + repr(e)
    messagebox.showerror('Errore I/O', msg, parent=self)
    return
    for k in self._scales.keys():
    for i in range(len(self._scalesk)):
    print(app.values)
    self._scalesk.set(app.values) #mi da errore quì





    Aiutami a capire che cosa c' è che non va, errore:

    1500
    Exception in Tkinter callback
    Traceback (most recent call last):
      File "/usr/lib/python3.10/tkinter/__init__.py", line 1921, in __call__
        return self.func(*args)
      File "/media/fabio/6CA2E3C5A2E3923E/Progetti con eagle/SINTHETIZER/SOFTWARE/PC/prova.py", line 294, in _on_open
        self._scalesk.set(app.values)
    AttributeError: 'list' object has no attribute 'set'
    
    




    RISOLTO

      self._scalesk.set(app.values)






    Era un problema di indici.








    --- Ultima modifica di fabio75 in data 2025-10-26 08:25:28 ---

    --- Ultima modifica di fabio75 in data 2025-10-26 08:26:13 ---
  • Re: Problema a salvare un file di interi
    Forum >> Programmazione Python >> GUI
    Daniele aka Palmux said @ 2025-10-24 11:01:08:
    import json
    
    open("test.json","w").write(json.dumps([1,2,3]))
    Il test ha funzionato quindi è un problema di chiavi ma non capisco dove.


    Ti invio il sorgente completo così capisci.

    get() è su lista a quanto pare.



    Sono riuscito a mettere a posto il comando save:

     def _on_save(self):
            app.values = app.freqa + app.mixa + app.freqb + app.mixb
            print(app.values)
            if not self._model:
                name = simpledialog.askstring('Nome modello', 'inserire il nome da assegnare', parent=self)
                if not name:
                    return
                self._model = os.path.join(self._cache, name + '.json')
            if os.path.exists(self._model):
                msg = 'Nome modello già in uso'
                messagebox.showerror('Duplicazione', msg, parent=self)
                return
            for k in self._scales.keys():
                sets = []
                for i in range(len(self._scalesk)):
                    sets.append(self._scalesk.get())
                #app.valuesk = sets
            try:
                with open(self._model, 'w') as f:
                    json.dump(app.values, f)
            except OSError as e:
                msg = 'Errore salvataggio dati mixer:\n\n' + repr(e)
                messagebox.showerror('Errore I/O', msg, parent=self)
                return

    Dimmi che te ne pare.
    Ho tolto
    #app.valuesk = sets
    e mi salva il modello su file.

    --- Ultima modifica di fabio75 in data 2025-10-24 21:18:06 ---

    --- Ultima modifica di fabio75 in data 2025-10-24 21:18:50 ---

    --- Ultima modifica di fabio75 in data 2025-10-26 06:50:49 ---

    --- Ultima modifica di fabio75 in data 2025-10-26 06:51:04 ---

    --- Ultima modifica di fabio75 in data 2025-10-26 06:51:51 ---

    --- Ultima modifica di fabio75 in data 2025-10-26 06:52:14 ---

    --- Ultima modifica di fabio75 in data 2025-10-26 06:52:34 ---

    --- Ultima modifica di fabio75 in data 2025-10-26 06:53:09 ---
  • Re: Problema con ser.write()
    Forum >> Programmazione Python >> GUI
    OK! Grazie, funziona! :ok:
  • Problema a salvare un file di interi
    Forum >> Programmazione Python >> GUI
    Salve ho il seguente problema: non riesco a creare un file che salvi una lista

    di interi.

    app.values = app.freqa + app.mixa + app.freqb + app.mixb
            if not self._model:
                name = simpledialog.askstring('Nome modello', 'inserire il nome da assegnare', parent=self)
                if not name:
                    return
                self._model = os.path.join(self._cache, name + '.json')
            if os.path.exists(self._model):
                msg = 'Nome modello già in uso'
                messagebox.showerror('Duplicazione', msg, parent=self)
                return
            for k in self._scales.keys():
                sets = []
                for i in range(len(self._scalesk)):
                    sets.append(self._scalesk.get())
                app.valuesk = sets
            try:
                with open(self._model, 'w') as f:
                    json.dump(app.values, f)
            except OSError as e:
                msg = 'Errore salvataggio dati mixer:\n\n' + repr(e)
                messagebox.showerror('Errore I/O', msg, parent=self)
    Aiutatemi a capire cos' è andato storto per favore. :angry:
  • Re: Problema con ser.write()
    Forum >> Programmazione Python >> GUI
    Il problema è che devo inviare char superiori a 256

    potri avere valori con un massimo di 1500 o 100000.

    Come posso fare? :angry:

    --- Ultima modifica di fabio75 in data 2025-10-23 19:57:26 ---
  • Re: Problema con ser.write()
    Forum >> Programmazione Python >> GUI
    Ok quindi devo ciclare con for su ser.write():

    ecco il codice.

    values = app.freqa + app.mixa + app.freqb + app.mixb
    print(app.values)
    #invia modello
    try:
    # Apri la porta seriale
    ser = serial.Serial('/dev/ttyACM0', 9600, timeout=1)
    print(f"Porta seriale /dev/ttyACM0 aperta con successo.")
    time.sleep(2) # Attendi un momento per la connessione
    val = [ [e.encode('UTF-8') for e in values]]
    print(val)
    # Invia i dati
    for char in range(len(val)):
    ser.write(valchar)
    print("Dati inviati!")
    # Chiudi la porta seriale
    ser.close()
    print("Porta seriale chiusa.")

    except serial.SerialException as e:
    print(f"Errore durante l'apertura o la comunicazione della porta seriale: /dev/ttyACM0")

    e mi da ancorar errore:

    {0}
    Porta seriale /dev/ttyACM0 aperta con successo.
    Exception in Tkinter callback
    Traceback (most recent call last):
      File "/usr/lib/python3.10/tkinter/__init__.py", line 1921, in __call__
        return self.func(*args)
      File "/media/fabio/6CA2E3C5A2E3923E/Progetti con eagle/SINTHETIZER/SOFTWARE/PC/prova.py", line 197, in invia
        val = [ [e.encode('UTF-8') for e in values]]
      File "/media/fabio/6CA2E3C5A2E3923E/Progetti con eagle/SINTHETIZER/SOFTWARE/PC/prova.py", line 197, in <listcomp>
        val = [ [e.encode('UTF-8') for e in values]]
    AttributeError: 'int' object has no attribute 'encode'
    
    
    Scusami la modalità ad indice su ser.write() ma provengo dal C.






  • Problema con ser.write()
    Forum >> Programmazione Python >> GUI
    Ho un problema con questo pezzo di codice:

    try:
    # Apri la porta seriale
    ser = serial.Serial('/dev/ttyACM0', 9600, timeout=1)
    print(f"Porta seriale /dev/ttyACM0 aperta con successo.")
    time.sleep(2) # Attendi un momento per la connessione
    values=['1000','1000','0','0','0','0','0']
    values = [ [e.encode('UTF-8') for e in values]]
    print(values)
    # Invia i dati
    ser.write(values)
    #print("Dati inviati!")
    # Chiudi la porta seriale
    ser.close()
    print("Porta seriale chiusa.")

    except serial.SerialException as e:
    print(f"Errore durante l'apertura o la comunicazione della porta seriale: /dev/ttyACM0")

    se tento di inviare la stringa values mi da il seguente errore:

    TypeError: 'list' object cannot be interpreted as an integer
    
    

    Sto cercando di inviare lungo la USB verso un Arduinodue valori superiori a 256.

    Nessuno mi puo' aiutare a capire che tipo di dati vuole ser.write() ?





    --- Ultima modifica di fabio75 in data 2025-10-22 19:42:15 ---
  • Re: Problema con lista values[] in programma con GUI
    Forum >> Programmazione Python >> GUI
    Ho corretto gli indici e mi rimangono i due errori sui metodi di aggiornamento di values[].





    --- Ultima modifica di fabio75 in data 2025-10-19 13:54:04 ---