• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
scheda problema rele

[Problema] Problema scheda rele
#1
Salve, ho acquistato questa scheda rele ad 8 canali funzionante con il protocollo 1wire: http://denkovi.com/1-wire-eight-channel-...automation

Su una shell se provo con i comandi per leggere:
dd if=/sys/bus/w1/devices/29-00000017b45d/output bs=1 count=1 | hexdump

e per scrivere:
echo -e '\xff'|dd of=/sys/bus/w1/devices/29-00000017b45d/output bs=1 count=1

funziona tutto, praticamente leggo il dump esadecimale del file output e mi restituisce un numero esadecimale che, tradotto in binario mi dice quali rele sono accesi o spenti, mentre in scrittura vado a scrivere sul dump un numero esadecimale che mi apre o chiude i vari relè, in questo caso ho messo FF...

Il problema sorge su python3

Con os.system credevo di poter farcela a passare tutto il comando ma gli apici mi creano parecchi problemi...

Avete qualche soluzione?

Grazie
Risposta
#2
E se usi Python 2.7?
Risposta
#3
Non posso, ho un monitor touch con le librerie per pithon3...

in pratica se faccio in questo modo:

output_file = open("/sys/bus/w1/devices/29-00000017b45d/output","wb")
output_file.write( b"\xff" )

Apro il file e riesco a scrivere ff, ma siccome il valore è contenuto in una variabile:
r = "ff"
pensavo di fare così: output_file.write( b"\x'+r+'" ) che di solito funziona!!

Boh, non so che pesci prendere....
Risposta
#4
Secondo me (che non riesco a usare Python 2.7 per mancanza di tempo, da troppo tempo, e che non ho mai usato Python 3) , ti stai perdendo in un bicchiere d'acqua.
Se devi "passare" le virgolette, racchiudi la frase negli apici, viceversa se ti servono gli apici, racchiudeva tra virgolette.
In Casi ostici, scrivi il comando in un file di testo e lo lanci come script
Risposta
#5
Ci sono riuscito!!!

Apro il file:
output_file = open("/sys/bus/w1/devices/29-00000017b45d/output","wb")

modifico la variabile "rele_" nel formato byte accettato dal comando:

r = struct.pack('B', int(rele_, 2))
output_file.write( r )

E funziona tutto!!!

Grazie!
Risposta
  


Vai al forum:


Navigazione: 4 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect