Class: ONVIF::Action

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_onvif_client/action.rb

Direct Known Subclasses

DeviceManagementAction::GetCapabilities, DeviceManagementAction::GetDeviceInformation, DeviceManagementAction::GetNetworkInterfaces, DeviceManagementAction::GetNetworkProtocols, DeviceManagementAction::GetSystemDateAndTime, DeviceManagementAction::GetUsers, DeviceManagementAction::SetNetworkInterfaces, DeviceManagementAction::SetSystemDateAndTime, DeviceManagementAction::SetSystemFactoryDefault, DeviceManagementAction::SystemReboot, EventAction::CreatePullPointSubscription, EventAction::GetEventProperties, EventAction::PullMessages, EventAction::Renew, EventAction::SetSynchronizationPoint, EventAction::Subscribe, EventAction::Unsubscribe, MediaAction::GetAudioEncoderConfiguration, MediaAction::GetAudioEncoderConfigurationOptions, MediaAction::GetAudioEncoderConfigurations, MediaAction::GetAudioSourceConfigurations, MediaAction::GetProfile, MediaAction::GetProfiles, MediaAction::GetStreamUri, MediaAction::GetVideoEncoderConfiguration, MediaAction::GetVideoEncoderConfigurationOptions, MediaAction::GetVideoEncoderConfigurations, MediaAction::GetVideoSourceConfiguration, MediaAction::GetVideoSourceConfigurations, MediaAction::SetVideoEncoderConfiguration, PtzAction::AbsoluteMove, PtzAction::ContinuousMove, PtzAction::GetConfiguration, PtzAction::GetConfigurationOptions, PtzAction::GetConfigurations, PtzAction::GetNode, PtzAction::GetNodes, PtzAction::GetPresets, PtzAction::GotoHomePosition, PtzAction::GotoPreset, PtzAction::RelativeMove, PtzAction::RemovePreset, PtzAction::SetPreset, PtzAction::Stop

Instance Method Summary collapse

Constructor Details

#initialize(client, username, password) ⇒ Action

Returns a new instance of Action.



5
6
7
8
9
# File 'lib/ruby_onvif_client/action.rb', line 5

def initialize client, username, password
    @client = client
    @username = username
    @password = password
end

Instance Method Details

#attribute(xml_doc, xpath) ⇒ Object



30
31
32
33
34
35
# File 'lib/ruby_onvif_client/action.rb', line 30

def attribute xml_doc, xpath
    return '' if xml_doc.nil?
    node = xml_doc[xpath]
    return node unless node.nil?
    ''
end

#callback(cb, *args) ⇒ Object



19
20
21
22
# File 'lib/ruby_onvif_client/action.rb', line 19

def callback cb, *args
    return if cb.class != Proc
    cb.call *args
end

#create_event_onvif_message(options = {}) ⇒ Object



53
54
55
56
57
58
59
# File 'lib/ruby_onvif_client/action.rb', line 53

def create_event_onvif_message options = {}
    namespaces = {
        :'xmlns:wsdl' => "http://www.onvif.org/ver10/events/wsdl"
    }.merge(options[:namespaces] || {})
    options[:namespaces] = namespaces
    Message.new options
end

#create_media_onvif_message(options = {}) ⇒ Object



37
38
39
40
41
42
43
# File 'lib/ruby_onvif_client/action.rb', line 37

def create_media_onvif_message options = {}
    namespaces = {
        :'xmlns:wsdl' => "http://www.onvif.org/ver10/media/wsdl"
    }.merge(options[:namespaces] || {})
    options[:namespaces] = namespaces
    Message.new options
end

#create_ptz_onvif_message(options = {}) ⇒ Object



45
46
47
48
49
50
51
# File 'lib/ruby_onvif_client/action.rb', line 45

def create_ptz_onvif_message options = {}
    namespaces = {
        :'xmlns:wsdl' => "http://www.onvif.org/ver20/ptz/wsdl"
    }.merge(options[:namespaces] || {})
    options[:namespaces] = namespaces
    Message.new options
end

#send_message(message) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/ruby_onvif_client/action.rb', line 11

def send_message message
    message.username = @username
    message.password = @password
    @client.send message.to_s do |success, result|
        yield success, result
    end
end

#value(xml_doc, xpath) ⇒ Object



24
25
26
27
28
29
# File 'lib/ruby_onvif_client/action.rb', line 24

def value xml_doc, xpath
    return '' if xml_doc.nil?
    node = xml_doc.at_xpath(xpath)
    return node.content unless node.nil?
    ''
end