class ADSB::Database
Attributes
icon_url[RW]
Public Class Methods
new(name = "ADSB")
click to toggle source
# File lib/adsb2kml/database.rb, line 8 def initialize name = "ADSB" @name = name @airplanes = {} @icon_url = "/plane_icon.png" end
Public Instance Methods
expire_after(time = 120)
click to toggle source
# File lib/adsb2kml/database.rb, line 56 def expire_after time = 120 @time_expire = time spawn_thread :watch_expire end
to_cons()
click to toggle source
# File lib/adsb2kml/database.rb, line 44 def to_cons to_return = sprintf $STRING_FORMAT, "Address", "Latitude", "Longitude", "Altitude", "Speed", "Last Heard", "Time Diff", "Track" @airplanes.each do |address, air| to_return += air.to_cons end return to_return end
to_kml()
click to toggle source
# File lib/adsb2kml/database.rb, line 30 def to_kml kml = KMLFile.new folder = KML::Folder.new( :name => @name ) @airplanes.each do |address, airplane| folder.features << airplane.icon(@icon_url) folder.features << airplane.placemark end kml.objects << folder return kml end
update(airplane)
click to toggle source
# File lib/adsb2kml/database.rb, line 15 def update airplane if ( @airplanes.has_key? airplane.address ) then @airplanes[airplane.address].merge_with airplane else @airplanes[airplane.address] = airplane end end
update_t(airplane)
click to toggle source
# File lib/adsb2kml/database.rb, line 23 def update_t airplane Thread.new do update airplane end end
Private Instance Methods
spawn_thread(sym)
click to toggle source
# File lib/adsb2kml/database.rb, line 62 def spawn_thread sym Thread.new do loop do send sym end end end
watch_expire()
click to toggle source
# File lib/adsb2kml/database.rb, line 70 def watch_expire expired = [] @airplanes.each do |addr, air| if air.time_diff >= @time_expire then expired.push addr end end expired.each do |exp| @airplanes.delete exp end sleep 10 end