@a1ex
I've played around with lots of ideas on the above, and I have been successful in some areas, eg
repeat -- hang around until ETTL value has stabilised
check_tv = camera.shutter.apex
msleep (scriptmenu.submenu["Settings"].submenu["ETTR Set Time?"].value*1000) -- adjust this for your camera. The time delay allows the ML ETTR process to settle down
until check_tv == camera.shutter.apex
But I can't get the above approach to work when I'm wanting to pause the script until the camera has stopped taking images, especially when I don't know how many images it is going to take, eg when advanced bracketing.
Generically I was looking to use the above this way:
repeat -- hang around until something has happened that you are tracking
-- put stuff here that you want to do or do nothing
sleep(1)
until {thing you are watching} == {true state}
The problem I have is, I cant't find a 'thing to watch' to detect the end of advanced bracketing, and I don't want my pause to negatively interact with advanced bracketing.
Do you have any ideas how I might approach this scripting challenge, ie pause a script (allowing other tasks (Canon and ML) to compete) and detect the restart condition, eg image taking using advanced bracketing has stopped.
Cheers
Garry
@a1ex
I worked out a 'solution'. A bit clunky maybe, but it works.
I exploited the fact that the advanced bracketing, with a Canon 2 sec delay, returns to the ML LV after completing.
Thus all I need to do is detect this, ie lv.overlays == 2, together with the first bit of the code having started. I can then continue running the script to completion, even with an advanced bracketing in 'the middle'.
My experimental script thus does the following:
1. captures some brackets under my control
2. carries out an ETTL (sic)
3. captures some more brackets under advanced bracketing control
4. captures some more images
:-)