Aktywne Wpisy
kotka-a +413
BoroPrimorac +379
Pamiętacie tę żenadę jak uśmiechnięte fajnopolaki z warszawki oglądali obrady sejmu w kinie?
#polska #wybory #sejm #warszawa #nieruchomosci
#polska #wybory #sejm #warszawa #nieruchomosci
(wartosc_raw/4095)*5
Problem, jaki spotkałem polega na tym, że w każdym przypadku po działaniu w nawiasie mam wynik 0.0. Próbowałem zmienną wymuszać jako float i sprawdzałem to przez isinstance, dzieliłem przez 4095.0, ale wciąż dostaję to przeklęte 0.0 mimo, że wynik na pewno jest inny.
Co tu się dzieje takiego, że dostaję błędne wyniki prostego działania?
#python #programowanie #pytanie
...*5.0
@RobertMistrz: @AwizisieAkat:
batteryraw = subprocess.call("cat /sys/bus/iio/devices/iio\:device0/involtage0raw", shell=True)
print batteryraw # tu wiem ze =/=0
batteryvol = float((batteryraw/4095)*5) # po samym dzieleniu juz wypluwa 0.0
print isinstance(batteryvol, float) # true
print batteryvol # 0.0
Komentarz usunięty przez autora
Komentarz usunięty przez autora
Oprócz wymuszenia float() trzeba jeszcze wszędzie do liczb dorzucić .0. Niezbyt oczywiste.
Dzięki :)
Dla próby przemnożyłem battery_raw wynoszący teraz 2149 przez 1.0 i otrzymuję 0.0.
print type(battery_raw)
print battery_raw wypluwa po sobie dwie wartości oddzielone końcem linii. Jedną jest wartość >0, a druga to dokładnie 0. Nie wiem skąd to się bierze, bo zwykły cat na tej ścieżce wypluwa tylko 0-4095 z jakąś przewidywalnością co do wartości, jeśli podłączę coś >0 V.
Podejrzewam, że właśnie to 0 psuje wszystko i na nim muszę się skupić,
subprocess.call zwraca do zmiennej batteryraw returncode 1 lub 0
Run the command described by args. Wait for command to complete, then return the returncode attribute.
2151
0
@grlux: spróbuję uciąć ostatnie znaki.
Dokladnie. w dokumentacji:
0
1
https://docs.python.org/2/library/subprocess.html
wg mnie musisz zmienić koncepcję wczytywania wartości z pliku.
To co wyrzuca w terminalu, to nie jest wartość zwracana przez funkcje:
Wg. dokumentacji:
subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False)
Run the command described by args. Wait for command to complete, then return the returncode attribute.
The arguments shown above are merely the most common ones, described below in Frequently Used Arguments (hence the slightly odd notation in the abbreviated signature). The full function signature is the same as that