[Python] Variabile non letta

Mr.Dob linux a is0gup.com
Gio 16 Apr 2020 17:22:48 CEST


Raspberry con linux installato.
Ho un display seriale, collegato con un convertitore usb/seriale 
collegato tramite porta usb del raspberry.
Nel display ho realizzato un firmware tramite il tool Nextion editor ad 
oggetti.
Ho inserito un oggetto text nominato t55.txt dove, via seriale gli passo 
ser.write(b't55.txt="CIAO"')
Sul display mi visualizzerà la scritta CIAO.
Se voglio utilizzare una variabile al posto del CIAO questa non viene 
passata.
Spero di essere stato esaustivo.


Il 16/04/2020 17:07, Marco De Paoli ha scritto:
> ciao,
> fammi capire...
>
> Il giorno gio 16 apr 2020 alle ore 16:41 Mr.Dob <linux a is0gup.com 
> <mailto:linux a is0gup.com>> ha scritto:
>
>     Saluto a tutti,
>
>     ho un Raspberry dove ho collegato via seriale un display Nextion.
>
>     ho realizzato questo script in Python
>
>     ************************
>
>       #!/usr/bin/env python
>
>     import time
>     import serial
>     import os
>     import subprocess
>
>     ser = serial.Serial(
>
>       port='/dev/ttyUSB0',
>       baudrate = 9600,
>       parity=serial.PARITY_NONE,
>       stopbits=serial.STOPBITS_ONE,
>       bytesize=serial.EIGHTBITS,
>       timeout=1)
>     counter=0
>     hmi=b'\xFF\xFF\xFF'
>
>
> il tuo problema è questa riga qui?
>
>     #cpufreq=subprocess.check_output("cat
>     /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq", shell=True)
>
>
> ossia non riesci a leggere la frequenza della CPU?
>
>     cpufreq="CIAO"
>
>
> oppure questa parte?
>
>     #buffer=(b't55.txt= + str(cpufreq).encode()')
>     buffer=(b't55.txt=cpufreq')
>
>
> che però ad occhio non mi pare vada bene
> visto che nel buffer non viene messo il *valore* della variabile, 
> bensì il suo nome
>
>     ser.write(buffer)
>     ser.write(hmi)
>
>     *************************
>
>     Il problema che la variabile "cpufreq" non viene letta.
>
>     buffer=(b't55.txt=cpufreq') t55.txt è un oggetto che risiede nel
>     display
>     Nextion a cui devo passare il valore della variabile "cpufreq"
>
>     Altresì se passo buffer=(b't55.txt="CIAO"') funziona!!!!
>
>     Ho letto tante di quelle info senza trovare la soluzione.
>
>
> ad occhio mi pare che tu abbia due problemi:
> a. la lettura della frequenza della cpu
> b. la scrittura nel buffer della seriale
>
> Ti do due spunti:
> a. fai in modo di leggere il 
> file  /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq con il 
> comando open di python (non con "cat")
> b. crea il buffer a partire dal valore della variabile, esempio:
> >>> cpufreq = 10
> >>> ("t55.txt={}".format(cpufreq)).encode()
> b't55.txt=10'
>
> bye,
> Marco
>
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> https://lists.python.it/mailman/listinfo/python


-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20200416/a873972c/attachment-0001.html>


Maggiori informazioni sulla lista Python