User manual
53
try:
while True :
s = os.statvfs('/')
f = s.f_bsize * s.f_bavail / 1000000
if f < g1:
x = "100"
elif f < g2:
x = "110"
elif f < g3:
x = "010"
elif f < g4:
x = "011"
else:
x = "001"
for i in range(3):
GPIO.output(LED[i], int(x[i]))
time.sleep(1.0)
except KeyboardInterrupt:
GPIO.cleanup()
Ko pustite, da program deluje, LED ves čas prikazujejo nezaseden pomnilniški prostor na
spominski kartici. Preizkusite, kako deluje, tako da prek omrežja kopirate velike datoteke na
spominsko kartico in jih spet izbrišete. Prikaz se samodejno posodablja.
7.1.1 Tako deluje
Za izračun nezasedenega pomnilniškega prostora program uporablja modul Python os, ki
nudi osnovne funkcije operacijskega sistema.
import os
Modul os je treba tako kot vse druge module uvoziti na začetku programa.
g1 = 1; g2 = 10; g3 = 100; g4 = 500
Te vrstice definirajo meje območij za nezaseden pomnilniški prostor, na katerih naj prikaz
preklopi. Zaradi enostavnosti program uporaba megabajte in ne bajte, saj si je možno ta
števila bolje predstavljati. Meje lahko kadarkoli drugače določite, vse štiri vrednosti morajo
biti samo razporejene v naraščajoči velikosti.
GPIO.setmode(GPIO.BCM)
LED = [4,18,23]
for i in range(3):
GPIO.setup(LED[i], GPIO.OUT, initial=False)
Seznam definira številke GPIO-vrat treh LED. Nato zanka inicializira tri GPIO-vrata kot
izhode in vse LED preklopi v izklopljeno stanje.
Tudi v tem preizkusu bomo uporabili konstrukt try...except in neskončno zanko, da
program samodejno vedno znova deluje, dokler ga uporabnik ne prekine s[Ctrl]+[C].
Nato sledijo dejanske zanimive funkcije, ki dostopajo do operacijskega sistema in
poizvedujejo o nezasedenem pomnilniškem prostoru.
s = os.statvfs('/')