Class: Device::Network
- Inherits:
-
Object
- Object
- Device::Network
- Includes:
- DaFunk::Helper
- Defined in:
- lib/device/network.rb
Constant Summary collapse
- MEDIA_GPRS =
"gprs"- MEDIA_WIFI =
"wifi"- MEDIA_ETHERNET =
"ethernet"- AUTH_NONE_OPEN =
"open"- AUTH_NONE_WEP =
"wep"- AUTH_NONE_WEP_SHARED =
"wepshared"- AUTH_IEEE8021X =
"IEEE8021X"- AUTH_WPA_PSK =
"wpapsk"- AUTH_WPA_WPA2_PSK =
"wpawpa2psk"- AUTH_WPA2_PSK =
"wpa2psk"- PARE_CIPHERS_NONE =
"none"- PARE_CIPHERS_WEP64 =
"wep64"- PARE_CIPHERS_WEP128 =
"wep128"- PARE_CIPHERS_WEPX =
"wepx"- PARE_CIPHERS_CCMP =
"ccmp"- PARE_CIPHERS_TKIP =
"tkip"- MODE_IBSS =
"ibss"- MODE_STATION =
"station"- ERR_USER_CANCEL =
-1010
- TIMEOUT =
-3320
- NO_CONNECTION =
-1012
- SUCCESS =
0- PROCESSING =
1- POWER_OFF =
0- POWER_ON =
1
Class Attribute Summary collapse
-
.apn ⇒ Object
Returns the value of attribute apn.
-
.code ⇒ Object
Returns the value of attribute code.
-
.password ⇒ Object
Returns the value of attribute password.
-
.socket ⇒ Object
Returns the value of attribute socket.
-
.type ⇒ Object
Returns the value of attribute type.
-
.user ⇒ Object
Returns the value of attribute user.
Class Method Summary collapse
- .adapter ⇒ Object
- .attach(options = nil) ⇒ Object
- .attach_timeout ⇒ Object
- .config ⇒ Object
-
.config_media ⇒ Object
TODO should check if WIFI, ETHERNET and etc.
- .configured? ⇒ Boolean
- .connect ⇒ Object
- .connected? ⇒ Boolean
- .dhcp_client(timeout) ⇒ Object
- .disconnect ⇒ Object
- .ethernet? ⇒ Boolean
- .gprs? ⇒ Boolean
- .init(type, options) ⇒ Object
- .ping(host, port) ⇒ Object
- .power(command) ⇒ Object
-
.scan ⇒ Array
Scan for wifi aps available.
- .setup ⇒ Object
- .shutdown ⇒ Object
-
.signal ⇒ Fixnum
Check signal value.
- .sim_id ⇒ Object
- .wifi? ⇒ Boolean
Class Attribute Details
.apn ⇒ Object
Returns the value of attribute apn.
43 44 45 |
# File 'lib/device/network.rb', line 43 def apn @apn end |
.code ⇒ Object
Returns the value of attribute code.
43 44 45 |
# File 'lib/device/network.rb', line 43 def code @code end |
.password ⇒ Object
Returns the value of attribute password.
43 44 45 |
# File 'lib/device/network.rb', line 43 def password @password end |
.socket ⇒ Object
Returns the value of attribute socket.
43 44 45 |
# File 'lib/device/network.rb', line 43 def socket @socket end |
.type ⇒ Object
Returns the value of attribute type.
43 44 45 |
# File 'lib/device/network.rb', line 43 def type @type end |
.user ⇒ Object
Returns the value of attribute user.
43 44 45 |
# File 'lib/device/network.rb', line 43 def user @user end |
Class Method Details
.adapter ⇒ Object
53 54 55 |
# File 'lib/device/network.rb', line 53 def self.adapter Device.adapter::Network end |
.attach(options = nil) ⇒ Object
155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 |
# File 'lib/device/network.rb', line 155 def self.attach( = nil) Device::Network.connected? if self.code != SUCCESS self.code = Device::Network.init(*self.config) self.code = Device::Network.connect Device::Network.connected? if self.code != SUCCESS hash = try_user(self.attach_timeout, ) do |process| Device::Network.connected? process[:ret] = self.code # TODO develop an interface to keep waiting communication module dial # based on platform returns process[:ret] == PROCESSING || process[:ret] == 2 || process[:ret] == -3307 # if true keep trying end self.code = hash[:ret] if self.code == SUCCESS self.code = Device::Network.dhcp_client(20000) if (wifi? || ethernet?) else self.code = ERR_USER_CANCEL if hash[:key] == Device::IO::CANCEL Device::Network.shutdown end end self.code end |
.attach_timeout ⇒ Object
147 148 149 150 151 152 153 |
# File 'lib/device/network.rb', line 147 def self.attach_timeout if self.gprs? Device::Setting.attach_gprs_timeout || Device::IO.timeout else Device::IO.timeout end end |
.config ⇒ Object
188 189 190 191 |
# File 'lib/device/network.rb', line 188 def self.config # TODO raise some error if media was not set [Device::Setting.media, self.config_media] end |
.config_media ⇒ Object
TODO should check if WIFI, ETHERNET and etc
198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 |
# File 'lib/device/network.rb', line 198 def self.config_media if gprs? { apn: Device::Setting.apn, user: Device::Setting.user, password: Device::Setting.apn_password } elsif wifi? { authentication: Device::Setting.authentication, password: Device::Setting.wifi_password, essid: Device::Setting.essid, channel: Device::Setting.channel, cipher: Device::Setting.cipher, mode: Device::Setting.mode } elsif ethernet? Hash.new # TODO end end |
.configured? ⇒ Boolean
78 79 80 |
# File 'lib/device/network.rb', line 78 def self.configured? Device::Setting.network_configured == "1" && ! Device::Setting.media.to_s.empty? end |
.connect ⇒ Object
65 66 67 |
# File 'lib/device/network.rb', line 65 def self.connect adapter.connect end |
.connected? ⇒ Boolean
69 70 71 72 73 74 75 76 |
# File 'lib/device/network.rb', line 69 def self.connected? if self.adapter.started? || self.setup self.code = adapter.connected? return self.code == Device::Network::SUCCESS end self.code = NO_CONNECTION false end |
.dhcp_client(timeout) ⇒ Object
131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 |
# File 'lib/device/network.rb', line 131 def self.dhcp_client(timeout) ret = adapter.dhcp_client_start if (ret == SUCCESS) hash = try_user(timeout) do |processing| processing[:ret] = adapter.dhcp_client_check processing[:ret] == PROCESSING end ret = hash[:ret] unless ret == SUCCESS ret = ERR_USER_CANCEL if hash[:key] == Device::IO::CANCEL end end ret end |
.disconnect ⇒ Object
86 87 88 |
# File 'lib/device/network.rb', line 86 def self.disconnect adapter.disconnect end |
.ethernet? ⇒ Boolean
227 228 229 |
# File 'lib/device/network.rb', line 227 def self.ethernet? Device::Setting.media == "ethernet" end |
.gprs? ⇒ Boolean
219 220 221 |
# File 'lib/device/network.rb', line 219 def self.gprs? Device::Setting.media == "gprs" end |
.init(type, options) ⇒ Object
57 58 59 |
# File 'lib/device/network.rb', line 57 def self.init(type, ) adapter.init(type, ) end |
.ping(host, port) ⇒ Object
82 83 84 |
# File 'lib/device/network.rb', line 82 def self.ping(host, port) adapter.ping(host, port) end |
.power(command) ⇒ Object
61 62 63 |
# File 'lib/device/network.rb', line 61 def self.power(command) adapter.power(command) end |
.scan ⇒ Array
Scan for wifi aps available
125 126 127 128 129 |
# File 'lib/device/network.rb', line 125 def self.scan if wifi? adapter.scan if Device::Network.init(*self.config) end end |
.setup ⇒ Object
193 194 195 |
# File 'lib/device/network.rb', line 193 def self.setup self.configured? && Device::Network.init(*self.config) == SUCCESS end |
.shutdown ⇒ Object
181 182 183 184 185 186 |
# File 'lib/device/network.rb', line 181 def self.shutdown if self.adapter.started? Device::Network.disconnect Device::Network.power(0) end end |
.signal ⇒ Fixnum
Check signal value
99 100 101 102 103 |
# File 'lib/device/network.rb', line 99 def self.signal if self.connected? adapter.signal end end |
.sim_id ⇒ Object
90 91 92 93 94 |
# File 'lib/device/network.rb', line 90 def self.sim_id if self.adapter.started? adapter.sim_id end end |