Class: NetworkManager::Modem

Inherits:
Object
  • Object
show all
Defined in:
lib/network_manager/modem.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(opts = {}) ⇒ Modem

Returns a new instance of Modem.



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/network_manager/modem.rb', line 6

def initialize(opts = {})
  opts.each do |k,v|
    instance_variable_set("@#{k}", v) unless v.nil?
  end

  # Set DBUS proxy
  @proxy = @service.object(@bus_path)
  @proxy.introspect

  @properties = @proxy.dup
  @properties.default_iface = NetworkManager::DBUS_PROPERTIES
  @properties.introspect

  @s_modem = @proxy[NetworkManager::MM_DBUS_INTERFACE_MODEM_SIMPLE]
  @modem   = @proxy[NetworkManager::MM_DBUS_INTERFACE_MODEM]
  @network = @proxy[NetworkManager::MM_DBUS_INTERFACE_MODEM_GSM_NETWORK]
  @ussd    = @proxy[NetworkManager::MM_DBUS_INTERFACE_MODEM_GSM_USSD]

  @device_info = @properties.GetInfo[0] rescue nil
end

Instance Attribute Details

#bus_pathObject (readonly)

Returns the value of attribute bus_path.



4
5
6
# File 'lib/network_manager/modem.rb', line 4

def bus_path
  @bus_path
end

#serviceObject (readonly)

Returns the value of attribute service.



4
5
6
# File 'lib/network_manager/modem.rb', line 4

def service
  @service
end

Class Method Details

.fetch(paths_array, opts = {}) ⇒ Object



95
96
97
98
99
100
101
# File 'lib/network_manager/modem.rb', line 95

def fetch(paths_array, opts = {})
  devices = []
  paths_array.compact.reject {|x| x && x.size <= 0 }.each do |path|
    devices << self.new(opts.merge({bus_path: path}))
  end
  devices
end

Instance Method Details

#disable!Object



45
46
47
# File 'lib/network_manager/modem.rb', line 45

def disable!
  @modem.Enable(false) == [] if enabled?
end

#disabled?Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/network_manager/modem.rb', line 41

def disabled?
  !enabled?
end

#enable!Object



37
38
39
# File 'lib/network_manager/modem.rb', line 37

def enable!
  @modem.Enable(true) == [] if disabled?
end

#enabled?Boolean

Returns:

  • (Boolean)


27
28
29
30
31
32
33
34
35
# File 'lib/network_manager/modem.rb', line 27

def enabled?
  begin
    status
    return true
  rescue => e
    return !e.message.include?('device is not enabled')
  end
  nil
end

#imeiObject



73
74
75
# File 'lib/network_manager/modem.rb', line 73

def imei
  @properties.GetImei[0] rescue nil
end

#imsiObject



77
78
79
# File 'lib/network_manager/modem.rb', line 77

def imsi
  @properties.GetImsi[0] rescue nil
end

#inspectObject



90
91
92
# File 'lib/network_manager/modem.rb', line 90

def inspect
  "#<NetworkManager::Modem##{object_id} IMEI: #{imei} Device: #{vendor} #{model} #{version} >"
end

#modelObject



49
50
51
# File 'lib/network_manager/modem.rb', line 49

def model
  @device_info[1] rescue nil
end

#operator_codeObject



57
58
59
# File 'lib/network_manager/modem.rb', line 57

def operator_code
  status["operator_code"] rescue nil
end

#scanObject



81
82
83
# File 'lib/network_manager/modem.rb', line 81

def scan
  @network.Scan[0] rescue nil
end

#send_ussd(message) ⇒ Object



85
86
87
88
# File 'lib/network_manager/modem.rb', line 85

def send_ussd(message)
  @ussd.Cancel
  @ussd.Initiate(message)
end

#signalObject



69
70
71
# File 'lib/network_manager/modem.rb', line 69

def signal
  @properties.GetSignalQuality[0] rescue 0
end

#statusObject



53
54
55
# File 'lib/network_manager/modem.rb', line 53

def status
  @s_modem.GetStatus[0]
end

#vendorObject



61
62
63
# File 'lib/network_manager/modem.rb', line 61

def vendor
  @device_info[0] rescue nil
end

#versionObject



65
66
67
# File 'lib/network_manager/modem.rb', line 65

def version
  @device_info[2] rescue nil
end