Hi,
I experimented around a bit and had to look into the source to find out what's going on. Looks like the ubasic commands set_av96 and set_av96_direct (probably set_av too but I can't seem to find it now... where in the source tree are ubasic command strings tied to functions?) pass "SET_LATER" in the function calls, while bracketing features use "SET_NOW".
I'm assuming this has something to do with the camera resetting the propcases back the where it thinks they belong when shooting starts? However, that SET_NOW seems to effectively stop these commands from having any effect on the resulting image if the commands are given while shoot_half is pressed.
What I wanted to do (and looks like achieved using get_prop and set_prop instead of the set_?v* commands) was to fool the camera to use an overexposed LCD view during fast react motion detect (correct me if I'm wrong, but there is direct way to do this?) by
1) press "shoot_half", let the camera calculate exposure and store av, tv, sv in variables
2) release "shoot_half"
3) increase exposure compensation by 2 Ev
4) press "shoot_half", let the camera calculate exposure
5) set av, tv, sv to the original values and reset exposure compensation to its original value.
Now, I have an overexposed view on the LCD but the image will be correctly exposed.
This works if I use (Digic III example)
get_prop 23 A
get_prop 262 T
get_prop 247 S
and similar set_prop's for storing and setting the exposure.
If I use get_?v96 and set_?v96, the resulting image is overexposed.
If I use get_?v96 and set_?v96_direct, the camera crashes. This was a part of a large script which did have other crashing problems too, possibly due to goto choking on it's size (see
http://chdk.setepontos.com/index.php/topic,1413.0.html).
Now, the question is... should we have another set of set_av/tv/sv commands which pass SET_NOW instead of SET_LATER, or should we modify those ubasic commands a bit so that they'll pass SET_NOW if shoot_half or shoot_full is currently pressed and SET_LATER if it isn't?