mirror of https://github.com/ArduPilot/ardupilot
AP_Scripting: viewpro driver uses focus type and value
This commit is contained in:
parent
edc2ea7bf6
commit
294eb1db5b
|
@ -159,8 +159,8 @@ local cam_pic_count = 0 -- last picture count. used to detect t
|
|||
local cam_rec_video = false -- last record video state. used to detect record video
|
||||
local cam_zoom_type = 0 -- last zoom type 1:Rate 2:Pct
|
||||
local cam_zoom_value = 0 -- last zoom value. If rate, zoom out = -1, hold = 0, zoom in = 1. If Pct then value from 0 to 100
|
||||
local cam_focus_step = 0 -- last focus step state. focus in = -1, focus hold = 0, focus out = 1
|
||||
local cam_autofocus = false -- last auto focus state
|
||||
local cam_focus_type = 0 -- last focus type 1:Rate, 2:Pct, 4:Auto
|
||||
local cam_focus_value = 0 -- last focus value. If Rate then focus in = -1, focus hold = 0, focus out = 1
|
||||
|
||||
-- parsing status reporting variables
|
||||
local last_print_ms = 0 -- system time that debug output was last printed
|
||||
|
@ -613,14 +613,20 @@ function check_camera_state()
|
|||
|
||||
-- check manual focus
|
||||
-- focus in = -1, focus hold = 0, focus out = 1
|
||||
if cam_state:focus_step() and cam_state:focus_step() ~= cam_focus_step then
|
||||
cam_focus_step = cam_state:focus_step()
|
||||
if cam_focus_step < 0 then
|
||||
local focus_type_changed = cam_state:focus_type() and (cam_state:focus_type() ~= cam_focus_type)
|
||||
local focus_value_changed = cam_state:focus_value() and (cam_state:focus_value() ~= cam_focus_value)
|
||||
if (focus_type_changed or focus_value_changed) then
|
||||
cam_focus_type = cam_state:focus_type()
|
||||
cam_focus_value = cam_state:focus_value()
|
||||
|
||||
-- focus rate
|
||||
if cam_focus_type == 1 then
|
||||
if cam_focus_value < 0 then
|
||||
send_camera_control(cam_choice, CAM_COMMAND_MANUAL_FOCUS)
|
||||
send_camera_control(cam_choice, CAM_COMMAND_FOCUS_MINUS)
|
||||
elseif cam_focus_step == 0 then
|
||||
elseif cam_focus_value == 0 then
|
||||
send_camera_control(cam_choice, CAM_COMMAND_STOP_FOCUS_AND_ZOOM)
|
||||
elseif cam_focus_step > 0 then
|
||||
elseif cam_focus_value > 0 then
|
||||
send_camera_control(cam_choice, CAM_COMMAND_MANUAL_FOCUS)
|
||||
send_camera_control(cam_choice, CAM_COMMAND_FOCUS_PLUS)
|
||||
end
|
||||
|
@ -630,15 +636,13 @@ function check_camera_state()
|
|||
end
|
||||
|
||||
-- check auto focus
|
||||
if cam_state:auto_focus() and cam_state:auto_focus() ~= cam_autofocus then
|
||||
cam_autofocus = cam_state:auto_focus()
|
||||
if cam_autofocus then
|
||||
if cam_focus_type == 4 then
|
||||
send_camera_control(cam_choice, CAM_COMMAND_AUTO_FOCUS)
|
||||
end
|
||||
if VIEP_DEBUG:get() > 0 then
|
||||
gcs:send_text(MAV_SEVERITY.INFO, "ViewPro: auto focus:" .. tostring(cam_autofocus))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- the main update function that performs a simplified version of RTL
|
||||
|
|
Loading…
Reference in New Issue