An updated script for playing with exposure settings and detecting the presence of the ND filter :
--[[
@title ND2 Filter
--]]
tv_ref = {
-576, -544, -512, -480, -448, -416, -384, -352, -320, -288,
-256, -224, -192, -160, -128, -96, -64, -32, 0, 32,
64, 96, 128, 160, 192, 224, 256, 288, 320, 352,
384, 416, 448, 480, 512, 544, 576, 608, 640, 672,
704, 736, 768, 800, 832, 864, 896, 928, 960, 992,
1021, 1053, 1080 }
av_ref = {176,208,240,272,304,336,368,400,432,464,496,512,528,560,592,624,656,688,720,752}
sv_ref = {378,420,440,462,486,531,576,612,645,678,709,739,772,805}
function print_tv(val)
local i = 1
local tv_str = {
">64",
"64", "50", "40", "32", "25", "20", "16", "12", "10", "8.0",
"6.0", "5.0", "4.0", "3.2", "2.5", "2.0", "1.6", "1.3", "1.0", "0.8",
"0.6", "0.5", "0.4", "0.3", "1/4", "1/5", "1/6", "1/8", "1/10", "1/13",
"1/15", "1/20", "1/25", "1/30", "1/40", "1/50", "1/60", "1/80", "1/100", "1/125",
"1/160", "1/200", "1/250","1/320","1/400","1/500","1/640","1/800","1/1000","1/1250",
"1/1600","1/2000","off" }
while (i <= #tv_ref) and (val > tv_ref[i]-1) do i=i+1 end
return tv_str[i]
end
function print_av(val)
local i = 1
local av_str = {"n/a","2.0","2.2","2.5","2.8","3.2","3.5","4.0","4.5","5.0",
"5.6","5.9","6.3","7.1","8.0","9.0","10.0","11.0","13.0","14.0","16.0"}
while (i <= #av_ref) and (val > av_ref[i]-1) do i=i+1 end
return av_str[i]
end
function print_sv(val)
local i = 1
local sv_str = {"n/a","80","100","125","160","200","250","320","400","500","640","800","1250","1600"}
while (i <= #sv_ref) and (val > sv_ref[i]-1) do i=i+1 end
return sv_str[i]
end
--setup
set_console_layout(1, 0, 45, 12)
props=require("propcase")
-- switch to shooting mode
print("test started...")
if ( get_mode() == false ) then
sleep(1000)
set_record(1)
while ( get_mode() == false) do
sleep(100)
end
end
sleep(100)
sleep(1000)
print("checking exposure")
press("shoot_half")
repeat
sleep(50)
until get_shooting() == true
release("shoot_half")
repeat
sleep(50)
until get_shooting() == false
bv=get_bv96()
av=get_av96()
sv=get_sv96()
tv=get_tv96()
print("meter bv:"..bv.." tv:"..tv.." sv:"..sv.." av:"..av)
min_av96 = get_prop(props.MIN_AV)
if av ~= min_av96 then
print(" ND in", min_av96, av)
else
print(" ND out", min_av96, av)
end
print(" Tv: "..print_tv(tv).."ISO "..print_sv(sv).." f"..print_av(av))
sleep(100)
print("shoot")
shoot()
sleep(200)
bv=get_bv96()
av=get_av96()
sv=get_sv96()
tv=get_tv96()
print("shoot bv:"..bv.." tv:"..tv.." sv:"..sv.." av:"..av)
min_av96 = get_prop(props.MIN_AV)
if av ~= min_av96 then
print(" ND in", min_av96, av)
else
print(" ND out", min_av96, av)
end
print(" Tv: "..print_tv(tv).."ISO "..print_sv(sv).." f"..print_av(av))
Seems to work best doing this outdoors where you can switch between really bright and normal lighting just by pointing the camera appropriately.
Update : script cleanup