praegune kellaaeg 18.06.2025 02:05:30
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
Stemugram
HV kasutaja
liitunud: 02.12.2001
|
10.10.2015 15:52:43
Pythonis abi vaja |
|
|
RaspberryPi mõõdab mul toas temperatuuri, nüüd panin mõned andurid juurde aga tekkis probleem kuna uute andurite ID on natuke erinevad ja nüüd oleks vaja koodi natuke muuta.
Vanade andurite ID algasid "10-", uued aga "28-".
Rida 59. oleks vaja muuta nii, et oleks '10-*' VÕI '28-*'.
Aga kuidas seda teha?
Variant '*-*' ei sobi kuna vahest tuleb millegi pärast täiesti vale IDga kaustad, siis annab kood errori ja jääb seisma.
python:
|
## ---------------------- ## Lecture temperature ## ---------------------- import os import glob import time import datetime ## Normalement pas besoin ## chargement au boot os.system('modprobe w1-gpio') os.system('modprobe w1-therm') def read_temp_raw(device_file): f = open(device_file, 'r') lines = f.readlines() f.close() return lines ## Lecture de la temperature def read_temp(file): nb = 0 while True: lines = read_temp_raw(file) if lines: ## Si le CRC est bon if lines[0].find('YES'): nb = 0 ## La on a tout bon ## Normalement ya 2 lignes if len(lines) == 2: eq = lines[1].find('t=') temp_string = lines[1][eq+2:] temp_c = float(temp_string) / 1000.0 if temp_c != -1.25: return temp_c else: continue else: return ERROR else: ## On incremente et on recommande nb += 1 time.sleep(1) if nb > MAX_READ: return ERROR else: ## Probleme on arrive pas a lire ## ON sort avec une valeur return ERROR ## ------------------- ## Boucle principale ## ------------------- ## Les peripheriques se trouvent ici base_dir = '/sys/bus/w1/devices/' devices = glob.glob(base_dir + '10-*') TPS_DEV = 0.5 TPS_LOOP = 300 MAX_READ = 6 ERROR = -99 while True: now = time.strftime('%Y-%m-%d %H:%M:%S') for dev in devices: message="%s %s %s\n"%(now,dev[31:],read_temp(dev+'/w1_slave')) print(message) with open ('temp.txt', 'a') as f: f.write(message) f.close() ## Attente entre les lectures ## des peripheriques time.sleep(TPS_LOOP)
|
|
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
troglodyte
Kreisi kasutaja

liitunud: 09.08.2002
|
10.10.2015 16:09:33
|
|
|
glob() tagastab listi ja liste saab kokkuliita - lihtne variant oleks kaks korda glob() funktsiooni välja kutsuda ja tulemused kokku liita üheks listiks:
python:
|
devices = glob.glob(base_dir + '10-*') + glob.glob(base_dir + '28-*')
|
_________________ ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn |
|
Kommentaarid: 34 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
34 |
|
tagasi üles |
|
 |
Stemugram
HV kasutaja
liitunud: 02.12.2001
|
10.10.2015 16:36:29
|
|
|
Tänud,
see kood täitsa töötabki.
|
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|
Hinnavaatlus ei vastuta foorumis tehtud postituste eest.
|