Hi zusammen,
momentan bin ich am Basteln einer Steuerung für eine meiner alten DSLRs zum Aufnehmen von Astrofotos.
Dazu habe ich einen alten RPi 1 reaktiviert, auf dem Raspberry Pi OS lite und ein WebIOPi Server, sowie gphoto2 läuft.
Der WebIOPi baut mir eine relativ leichtgewichtige Web-Oberfläche auf, die Zugriff auf die Pi-Hardware und Python Skripte bietet.
Die Python Skripte können dann über USB die Kamera mit gphoto2 fernsteuern.
Soweit funktioniert das auch schon "manuell". Also sprich: Klick auf nen Button im Webbrowser und die Kamera macht eine Aufnahme.
Nun möchte ich mit ein paar weiteren Python Skripten eine komplette Fernsteuerung der Kamera über "gphoto2" aufbauen.
Dazu müssen ein paar Daten von verschiedenen Python Modulen hin und her geschoben werden. Und da hängt es bei mir momentan.
Ich habe also gerade 2 Module:
helper.py (zum Testen, wie ich aus einem anderen Python Modul Funktionen aufrufen und Variablen übergeben bekomme)
import sys
sys.path.append("get_current_settings")
import get_current_settings
from get_current_settings import *
if __name__ == '__main__':
get_current_settings.list_all_config()
print(get_current_settings.batterylevel)
Alles anzeigen
get_current_settings.py (liest später aus einer Textdatei die relevanten Infos der Kamera aus, die momentan hart codiert sind)
import os
import sys
# Variable initialisieren
batterylevel = int(0)
def list_all_config():
get_config_batterylevel()
def get_config_batterylevel():
print("Getting battery level...")
batterylevel = int(123)
if __name__ == '__main__':
sys.exit(0)
Alles anzeigen
Im ersten Schritt versuche ich den Batterieladestand der Kamera aus dem einen Skript ins andere zu bringen. Dazu solle in der helper.py entweder die Funktion list_all_config() (listet später alles auf) oder die Funktion get_config_batterylevel() aus der get_current_settings.py aufgerufen und Variablen zurück an die helper-py übergeben werden.
Das Aufrufen der Funktionen klappt super. Aber ich bekomme den Wert der Variable batterylevel nicht mit 123 rückgemeldet, sondern stets mit dem Initialwert 0 - egal, ob ich aus dem Helfer-Skript die Funktion get_config_batterylevel direkt aufrufe, oder sie über die Funktion list_all_config aufrufen lasse.
Die Ausgabe ist immer:
pi@raspberrypi:~/Astro/WebIOPi-Astro/python $ python3 helper.py
Getting battery level...
0
pi@raspberrypi:~/Astro/WebIOPi-Astro/python $
Wird hier die Variable verschattet? Und wie bekomme ich den von mir erwarteten (und ja auch in der Funktion get_config_batterylevel zugewiesenen) Wert 123 in mein Helfer-Skript gelesen?
Danke euch schonmal für etwas Erhellung hier.
Gruß!