33 lines
869 B
Ruby
33 lines
869 B
Ruby
#!/usr/bin/env ruby
|
|
|
|
require 'open-uri'
|
|
require 'json'
|
|
require 'distance'
|
|
|
|
HOSTNAME = IO::readlines("/proc/sys/kernel/hostname").join.chomp
|
|
INTERVAL = 1
|
|
POS = [ 51.08102, 13.72806 ]
|
|
|
|
loop do
|
|
planes = JSON.parse URI.open("http://localhost:8080/data.json").read
|
|
|
|
planes.each do |plane|
|
|
flight = plane["flight"].strip
|
|
next if flight.empty?
|
|
|
|
alt = plane["altitude"].to_i
|
|
speed = plane["speed"].to_i
|
|
dist = GIS::Distance::new(POS[0], POS[1], plane["lat"].to_f, plane["lon"].to_f).distance
|
|
puts "PUTVAL \"#{HOSTNAME}/dump1090-altitude/current-#{flight}\" interval=#{INTERVAL} N:#{alt}"
|
|
puts "PUTVAL \"#{HOSTNAME}/dump1090-speed/current-#{flight}\" interval=#{INTERVAL} N:#{speed}"
|
|
puts "PUTVAL \"#{HOSTNAME}/dump1090-distance/current-#{flight}\" interval=#{INTERVAL} N:#{dist}"
|
|
end
|
|
|
|
rescue
|
|
STDERR.puts $!
|
|
|
|
ensure
|
|
sleep INTERVAL
|
|
|
|
end
|