class NetworkManager::Modem
Attributes
bus_path[R]
dbus_path[R]
service[R]
Public Class Methods
fetch(paths_array, opts = {})
click to toggle source
# File lib/network_manager/modem.rb, line 141 def fetch(paths_array, opts = {}) devices = [] paths_array.compact.reject {|x| x && x.size <= 0 }.each do |path| begin devices << self.new(opts.merge({bus_path: path})) rescue NetworkManager::Modem::NotValid => e puts "Bus #{path} contains empty object, skipping" end end devices end
new(opts = {})
click to toggle source
# File lib/network_manager/modem.rb, line 10 def initialize(opts = {}) opts.each do |k,v| instance_variable_set("@#{k}", v) unless v.nil? end unless defined?(@service) @bus ||= DBus::SystemBus.instance @service = @bus.service(NetworkManager::MM_DBUS_SERVICE) 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 raise NetworkManager::Modem::NotValid unless valid? end
Public Instance Methods
device()
click to toggle source
# File lib/network_manager/modem.rb, line 105 def device { model: model, port: @properties[MM_DBUS_INTERFACE_MODEM]['Device'], unlock_required: @properties[MM_DBUS_INTERFACE_MODEM]['UnlockRequired'], master_device: @properties[MM_DBUS_INTERFACE_MODEM]['MasterDevice'], dbus_path: @bus_path } end
disable!()
click to toggle source
# File lib/network_manager/modem.rb, line 49 def disable! @modem.Enable(false) == [] if enabled? end
disabled?()
click to toggle source
# File lib/network_manager/modem.rb, line 45 def disabled? !enabled? end
enable!()
click to toggle source
# File lib/network_manager/modem.rb, line 41 def enable! @modem.Enable(true) == [] if disabled? end
imei()
click to toggle source
# File lib/network_manager/modem.rb, line 78 def imei @properties.GetImei[0] rescue nil end
imsi()
click to toggle source
# File lib/network_manager/modem.rb, line 82 def imsi @properties.GetImsi[0] rescue nil end
inspect()
click to toggle source
# File lib/network_manager/modem.rb, line 119 def inspect if enabled? "#<NetworkManager::Modem##{object_id} IMEI: #{imei} Device: #{vendor} #{model} #{version} USSD_STATE: #{ussd_state}>" else "#<NetworkManager::Modem##{object_id} DISABLED Device: #{vendor} #{model} #{version}" end end
model()
click to toggle source
# File lib/network_manager/modem.rb, line 53 def model @device_info[1] rescue nil end
operator_code()
click to toggle source
# File lib/network_manager/modem.rb, line 62 def operator_code status["operator_code"] rescue nil end
scan()
click to toggle source
# File lib/network_manager/modem.rb, line 86 def scan @network.Scan[0] rescue nil end
send_ussd(message)
click to toggle source
# File lib/network_manager/modem.rb, line 90 def send_ussd(message) rsp = case ussd_state when 'idle' @ussd.Initiate(message) when 'active' @ussd.Cancel rescue nil @ussd.Initiate(message) when 'user-response' @ussd.Respond(message) end # @ussd.Cancel rescue nil rsp[0] if rsp.is_a?(Array) end
signal()
click to toggle source
# File lib/network_manager/modem.rb, line 74 def signal @properties.GetSignalQuality[0] rescue 0 end
status()
click to toggle source
# File lib/network_manager/modem.rb, line 57 def status @properties['org.freedesktop.ModemManager.Modem']['Enabled'] rescue false end
Also aliased as: enabled?
to_h()
click to toggle source
# File lib/network_manager/modem.rb, line 127 def to_h { imei: imei, imsi: imsi, signal: signal, operator_code: operator_code, device: device, status: (enabled? ? :enabled : :disabled ) } end
ussd_state()
click to toggle source
# File lib/network_manager/modem.rb, line 115 def ussd_state @properties['org.freedesktop.ModemManager.Modem.Gsm.Ussd']['State'] end
valid?()
click to toggle source
# File lib/network_manager/modem.rb, line 37 def valid? @properties.interfaces.size > 0 end
vendor()
click to toggle source
# File lib/network_manager/modem.rb, line 66 def vendor @device_info[0] rescue nil end
version()
click to toggle source
# File lib/network_manager/modem.rb, line 70 def version @device_info[2] rescue nil end