#!/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