Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  Abi vaja Pythoni koodis märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
Stemugram
HV kasutaja

liitunud: 02.12.2001




sõnum 28.01.2014 22:59:38 Abi vaja Pythoni koodis vasta tsitaadiga

Oleks vaja Pythoni kood õigesti tööle saada. See kood siis võtab siis RaspberryPi taga olevatelt temperatuuri anduritelt näite. Leitud kood oli ühe anduri jaoks aga mul on andureid kolm. Natuke ma seda koodi mudisin aga õigesti tööle ei saanud.

python:
  1.  
  2. import os
  3. import glob
  4. import time
  5. import datetime
  6.  
  7. os.system('modprobe w1-gpio')
  8. os.system('modprobe w1-therm')
  9.  
  10. def read_temp_raw(device_file):
  11.     f = open(device_file, 'r')
  12.     lines = f.readlines()
  13.     f.close()
  14.     return lines
  15.  
  16.  
  17. def read_temp(file):
  18.     nb = 0
  19.     while True:
  20.         lines = read_temp_raw(file)
  21.         if lines:
  22.             if lines[0].find('YES'):
  23.                 nb = 0
  24.                 if len(lines) == 2:
  25.                     eq = lines[1].find('t=')
  26.                     temp_string = lines[1][eq+2:]
  27.                     temp_c = float(temp_string) / 1000.0
  28.                     if temp_c != -1.25:
  29.                         return temp_c
  30.                     else:
  31.                         continue
  32.                 else:
  33.                     return ERROR
  34.             else:
  35.                 nb += 1
  36.                 time.sleep(1)
  37.                 if nb > MAX_READ:
  38.                     return ERROR
  39.         else:
  40.             return ERROR
  41.    
  42.  
  43. base_dir = '/sys/bus/w1/devices/'
  44. devices = glob.glob(base_dir + '10*')
  45.  
  46. TPS_DEV = 0.5
  47. TPS_LOOP = 0.5
  48. MAX_READ = 5
  49. ERROR = -99
  50.  
  51. while True:
  52.     nb = 0
  53.     now = time.strftime('%Y-%m-%d %H:%M:%S')
  54.     lines = []
  55.     for dev in devices:
  56.         nb += 1
  57.         lines.append("%s %s %s %s" % (nb,now, dev[31:],read_temp(dev + '/w1_slave')))
  58.         message = '\n'.join(lines) + '\n'
  59.         print(message)
  60.         time.sleep(TPS_DEV)
  61.  
  62.     time.sleep(TPS_LOOP)
  63.  


Kood kuvab esiteks:
2014-01-25 22:26:19 0ecf 19.687
teiseks:
2014-01-25 22:26:19 0ecf 19.687
2014-01-25 22:26:19 13ff 44.25
ja kolmandaks:
2014-01-25 22:26:19 0ecf 19.687
2014-01-25 22:26:19 13ff 44.25
2014-01-25 22:26:19 d4dd 17.75


Oleks vaja, et kuvaks korraga ainult kolm näitu:
2014-01-25 22:26:19 0ecf 19.687
2014-01-25 22:26:19 13ff 44.25
2014-01-25 22:26:19 d4dd 17.75
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
jannu
HV kasutaja

liitunud: 31.03.2004



Autoriseeritud ID-kaardiga

sõnum 28.01.2014 23:21:16 vasta tsitaadiga

Äkki kui 59-ndal real "print(message)" for-tsüklist välja tuua?
Kommentaarid: 28 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 28
tagasi üles
vaata kasutaja infot saada privaatsõnum
gynterk
HV kasutaja

liitunud: 17.01.2004




sõnum 29.01.2014 01:19:43 vasta tsitaadiga

Jah, kas print loop-ist välja liigutada või siis see list (lines) ära koristada ja iga rea kohta ainult print jätta. Ise eelistaksin viimast
Kommentaarid: 5 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 5
tagasi üles
vaata kasutaja infot saada privaatsõnum
RassK
HV Guru
RassK

liitunud: 17.01.2007



Autoriseeritud ID-kaardiga

sõnum 29.01.2014 02:49:34 vasta tsitaadiga

Tundub, et seda arrayd mujal ei kasutata, siis võib selle üldse vahelt ära visata ja nagu eelnevalt siin mainitud, siis see, mida sa appendid lihtsalt otse välja printida.
Kommentaarid: 116 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 101
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  Abi vaja Pythoni koodis
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
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.