[Python] R: Registri modbus
Vinny Mautone
vinny74man a gmail.com
Ven 18 Feb 2022 14:02:57 CET
Scusa potresti spiegarmelo ho visto che hai usato le operazioni sui bit su
questo sono un po scarso o se puoi indicarmi una guida abbastanza semplice
per capire questo tipo di operazioni ho letto qualcosa ma mi risulta sempre
complicato
Grazie
Il Gio 17 Feb 2022, 17:32 Alessandro T. <tagliare3 a yahoo.it> ha scritto:
> On 17/02/22 07:34, Vinny Mautone wrote:
> > Studiando un pò sono riuscito a scrivere questa funzione che fa il suo
> > dovere, ma volevo capire se era la strada giusta o si potesse
> > velocizzare un po, comunque questa è la funzione
> >
> > def reg_to_string(reg):
> > s = ''
> > for ele in reg:
> > if ele:
> > b = format(ele, '016b') # converto il registro da decimale in binario
> > ch = chr(int(b[:8], 2)) # prendo i primi 8 bit e li converto in char
> > if ch.isalnum(): # controllo che sia un numero o una lettera
> > s += ch # lo aggiungo alla stringa
> > ch = chr(int(b[8:], 2)) # faccio la stessa cosa con gli altri 8 bit
> > if ch.isalnum():
> > s += ch
> > return s # ritorno la stringa
> >
> > Grazie per eventuali correzioni o miglioramenti
> >
>
>
> reg = [21070, 12601, 12340, 12593, 12593, 13312]
>
> versione compatta:
> s = ''.join(c for r in reg for i in (1,0) if (c:=chr(r >> 8*i &
> 0xff)).isalnum())
>
>
> versione estesa:
> s = []
> for r in reg:
> for i in (1,0):
> c = chr(r >> 8*i & 0xff)
> if c.isalnum():
> s.append(c)
> s = ''.join(s)
>
> --
> Alessandro T.
>
> R: Perché leggiamo dall'alto al basso e da sinistra a destra.
> D: Perché dovrei iniziare la risposta all'e-mail dopo il testo citato?
>
> _______________________________________________
> 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/20220218/a5565076/attachment.html>
Maggiori informazioni sulla lista
Python