module SonyCameraRemoteAPI::SSDP

Module providing SSDP function to discover camera (Device discovery)

Constants

SSDP_RETRY_INTERVAL

Retrying interval for SSDP search

SSDP_SEARCH_RETRY

Retrying limit for SSDP search

SSDP_SEARCH_TARGET

The search target for Sony camera (fixed)

Public Instance Methods

parse_device_description(dd) click to toggle source

Parse device description and get endpoint URLs

# File lib/sony_camera_remote_api/ssdp.rb, line 51
def parse_device_description(dd)
  dd_xml = Nokogiri::XML(dd)
  raise DeviceDescriptionInvalid if dd_xml.nil?
  dd_xml.remove_namespaces!
  camera_name = dd_xml.css('device friendlyName').inner_text
  services = dd_xml.css('device X_ScalarWebAPI_Service')
  endpoints = {}
  services.each do |sv|
    service_type = sv.css('X_ScalarWebAPI_ServiceType').inner_text
    endpoints[service_type] = File.join(sv.css('X_ScalarWebAPI_ActionList_URL').inner_text, service_type)
  end
  # endpoints['liveview'] = dd_xml.css('device X_ScalarWebAPI_LiveView_URL').inner_text
  # endpoints.delete_if { |k, v| v.blank? }
  log.info "model-name: #{camera_name}"
  log.debug 'endpoints:'
  endpoints.each do |e|
    log.debug "  #{e}"
  end
  endpoints
end