# File lib/da_funk/connection_management.rb, line 69 def self.primary_try? if ! Device::Setting.media_primary.to_s.empty? && Device::Setting.media_primary != Device::Setting.media if self.primary_timeout.nil? self.schedule_primary_timeout else if Time.now > self.primary_timeout self.schedule_primary_timeout return true end end end false end
class DaFunk::ConnectionManagement
Constants
- DEFAULT_DROP_LIMIT
Attributes
drops[RW]
last_time_check[RW]
primary_timeout[RW]
Public Class Methods
check()
click to toggle source
# File lib/da_funk/connection_management.rb, line 9 def self.check if must_check? if Device::Network.connected? if primary_try? :primary_communication end else if fallback? :fallback_communication else :attach_registration_fail end end end end
conn_automatic_management?()
click to toggle source
# File lib/da_funk/connection_management.rb, line 37 def self.conn_automatic_management? DaFunk::ParamsDat.exists? && DaFunk::ParamsDat.file["connection_management"] != "0" end
conn_fallback_config()
click to toggle source
# File lib/da_funk/connection_management.rb, line 50 def self.conn_fallback_config value = DaFunk::ParamsDat.file["conn_fallback_config"] if value && !value.empty? value end end
Also aliased as: config
conn_fallback_drops_limit()
click to toggle source
# File lib/da_funk/connection_management.rb, line 41 def self.conn_fallback_drops_limit value = DaFunk::ParamsDat.file["conn_fallback_drops_limit"] if value && ! value.empty? value.to_i else DEFAULT_DROP_LIMIT end end
conn_fallback_timer()
click to toggle source
# File lib/da_funk/connection_management.rb, line 57 def self.conn_fallback_timer value = DaFunk::ParamsDat.file["conn_fallback_timer"] if value && ! value.empty? return value.to_i end 0 end
fallback?()
click to toggle source
# File lib/da_funk/connection_management.rb, line 25 def self.fallback? if ! Device::Network.connected? && self.fallback_valid? && self.conn_automatic_management? && Device::Setting.media_primary == Device::Setting.media self.drops += 1 if self.drops >= self.conn_fallback_drops_limit self.drops = 0 return true end end false end
fallback_valid?()
click to toggle source
# File lib/da_funk/connection_management.rb, line 83 def self.fallback_valid? self.conn_fallback_config && self.conn_fallback_timer && (self.config.include?("WIFI") || self.config.include?("GPRS")) end
primary_try?()
click to toggle source
recover_fallback()
click to toggle source
# File lib/da_funk/connection_management.rb, line 88 def self.recover_fallback if self.fallback_valid? self.schedule_primary_timeout media, parameters = self.conn_fallback_config.to_s.split("|", 2) if media == "WIFI" # WIFI|uclwifinetwork|uclwifisecurity|uclwifichannel|uclwifikey essid, authentication, channel, password = parameters.split("|") configuration = { :network_configured => "1", :authentication => authentication, :essid => essid, :wifi_password => password, :channel => channel, :cipher => Device::Network::PARE_CIPHERS_TKIP, :mode => Device::Network::MODE_STATION, :media => Device::Network::MEDIA_WIFI } # elsif TODO # ETHERNET|DHCP else # GPRS|APN|USER|PASSWORD apn, user, password = parameters.split("|") configuration = { :network_configured => "1", :apn => apn, :user => user, :apn_password => password, :media => Device::Network::MEDIA_GPRS } end Device::Setting.update_attributes(configuration) end end
recover_primary()
click to toggle source
# File lib/da_funk/connection_management.rb, line 122 def self.recover_primary Device::Setting.update_attributes({media: Device::Setting.media_primary}) end
Private Class Methods
must_check?()
click to toggle source
# File lib/da_funk/connection_management.rb, line 131 def self.must_check? if self.last_time_check if self.last_time_check < Time.now self.last_time_check = Time.now + @value true end else @value = DaFunk::ParamsDat.file['conn_check_timer'] @value = @value.nil? ? 300 : @value * 60 self.last_time_check = Time.now + @value true end end
schedule_primary_timeout()
click to toggle source
# File lib/da_funk/connection_management.rb, line 127 def self.schedule_primary_timeout self.primary_timeout = (Time.now + self.conn_fallback_timer) end