My goal is to press a keyboard key, which activates a function which should update a variable within a while loop which is in a broader while loop. I am using Python and some features of Sikuli (Automation Program). My script is meant to keep a camera monitor open, press continue watching every 1-5 minutes and to facilitate switching between cameras with the FKeys. It does that, it would seem except for when one of the while loops in a function is active. When the while loop is active, the variable that determines which camera is meant to be active is not responding to updates which are meant to go global on press of programed Fkey strokes. Again, the program already does almost everything as intended. With the exception of variables like isCamera won't update if I hit a programed key when the while loop within the isNotPaused function is looping. If the script is running code outside of said loop, anywhere else in the app driver loop the variable updates just fine.
import thread
import org.sikuli.basics.Settings;
Settings.MinSimilarity = 0.7;
def runCam1key(event):
global isCamera
isCamera = 1
isScriptPaused = 2
def runCam2key(event):
global isCamera
isCamera = 2
isScriptPaused = 2
def isNotPaused():
global isCamera
if isCamera == 1:
while exists(SOME PICTURE):
###LOTS OF IRRELEVANT CODE REDACTED
if isCamera == 2:
while exists(SOME PICTURE):
###LOTS OF IRRELEVANT CODE REDACTED
###And So On Redacted around 800 lines total
switcher = {
1: isPaused,
2: isNotPaused,
3: isSetupPaused,
4: isStarting,
5: isTesting
}
def switch(thePauseSwitch):
return switcher.get(thePauseSwitch, default)()
### App Driver ->
Env.addHotkey(Key.F1, 0, runPausekey)
Env.addHotkey(Key.F2, 0, runSetupkey)
Env.addHotkey(Key.F3, 0, runResumekey)
Env.addHotkey(Key.F4, 0, runCam1key)
Env.addHotkey(Key.F5, 0, runCam3key)
Env.addHotkey(Key.F6, 0, runCam4key)
Env.addHotkey(Key.F7, 0, runCam5key)
Env.addHotkey(Key.F8, 0, runCam6key)
Env.addHotkey(Key.F9, 0, runCam7key)
Env.addHotkey(Key.F10, 0, runCam8key)
isScriptRunning = True
isScriptPaused = 2
isCamera = 2
###A BUNCH OF IRRELEVANT SETTINGS
while isScriptRunning == True:
switch(isScriptPaused)