GPSHowTo¶
On the node with the car we need to install gpsd daemon with a simple atp-get install gpsd.
Then on the node you start the daemon with:
gpsd -F /root/pipe_out_gpsd /dev/ttyUSB0
then on Norbit you run the following script
require 'net/http'
require 'rexml/document'
require 'oml'
require 'socket'
include REXML
require 'optparse'
op = OptionParser.new
op.banner = "Simple web server \n\n" +
"Usage: #{ARGV} experiment_id\n"
o_opts = {:port => 3000, :exp_id => 'bt', :app_name => 'gpsd_client'}
opts = {:port => 2947, :address => '10.40.55.22'}
op.on_tail("-h", "--help", "Show this message") { puts opts; exit }
op.on('--oml-exp-id ID', "OML experiment id [#{o_opts[:exp_id]}]") { |v|
o_opts[:exp_id] = v
}
op.on('--oml-node-id ID', 'OML node identifier') { |v| o_opts[:node_id] = v }
op.on('--oml-file FILE', 'OML local file to store measurements') { |v|
o_opts[:file] = v
}
op.on('--oml-server IP', 'OML measurement server address') { |v| o_opts[:server_name] = v }
op.on('--oml-port PORT', 'OML measurement server port [#{o_opts[:server_port]}]') {
|v| o_opts[:server_port] = v
}
op.on('--gpsd-server SERVER', "GPSD server IP address [#{opts[:address]}]"){ |v| opts[:address] = v}
op.on('--gpsd-server-port PORT', "GPSD server port number #{opts[:port]}]"){ |v| opts[:port] = v.to_i}
db_name = op.parse(ARGV)
class GPSD < OML::MPBase
name "test"
param :lat, :type => :double
param :long, :type => :double
end
#puts "OOPT: #{o_opts.inspect}"
#OML::init(o_opts)
#while 1
puts opts[:address]
puts opts[:port]
#ml = run(opts[:address], opts[:port])
# sleep 1
#end
s = TCPSocket.open(opts[:address], opts[:port])
i = 0
while true
s.print("p \n" )
response = s.gets
puts response
left, right = response.split('=')
puts right.length
if right.length == 3
sleep 1
else
lat, long = right.split
#puts long
#puts "inject"
Net::HTTP.post_form(URI.parse('http://203.143.174.96/gpsorbit/path.cgi'),
{'time'=>i, 'lat'=>lat, 'lng'=>long})
#GPSD.inject(lat.to_f, long.to_f)
sleep 1
i = i + 1
end
end
Furthermore to restart the visualisation, we can clean the server at http://ireel.npc.nicta.com.au/gpsorbit/path.cgi