Class: ONVIF::PtzAction::GetNodes
- Includes:
- ONVIF::PtzCommon
- Defined in:
- lib/ruby_onvif_client/ptz/get_nodes.rb
Instance Method Summary collapse
Methods included from ONVIF::PtzCommon
#get_configuration_optional_value, #get_min_max, #get_pan_tilt_limits, #get_space_muster, #get_spaces, #get_speed, #get_zoom_limits
Methods inherited from Action
#attribute, #callback, #create_event_onvif_message, #create_media_onvif_message, #create_ptz_onvif_message, #initialize, #send_message, #value
Constructor Details
This class inherits a constructor from ONVIF::Action
Instance Method Details
#run(cb) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/ruby_onvif_client/ptz/get_nodes.rb', line 8 def run cb = .body = ->(xml) do xml.wsdl(:GetNodes) end do |success, result| if success xml_doc = Nokogiri::XML(result[:content]) ptz_nodes = [] xml_doc.xpath('//tptz:PTZNode').each do |preset_token| ptz_node = { name: value(preset_token, "tt:Name"), token: attribute(preset_token, "token") } ptz_node = get_space_muster(preset_token, "SupportedPTZSpaces", ptz_node) ptz_node[:maximum_number_of_presets] = value(preset_token, "tt:MaximumNumberOfPresets") ptz_node[:home_supported] = value(preset_token, "tt:HomeSupported") unless preset_token.at_xpath("tt:AuxiliaryCommands").nil? ptz_node[:auxiliary_commands] = [] preset_token.xpath("tt:AuxiliaryCommands").each do |command| ptz_node[:auxiliary_commands] << command.content end end ptz_nodes << ptz_node end callback cb, success, ptz_nodes else callback cb, success, result end end end |