diff options
Diffstat (limited to 'src/gps_test.rb')
-rwxr-xr-x | src/gps_test.rb | 49 |
1 files changed, 28 insertions, 21 deletions
diff --git a/src/gps_test.rb b/src/gps_test.rb index 4f35ec5..8f64112 100755 --- a/src/gps_test.rb +++ b/src/gps_test.rb @@ -4,40 +4,47 @@ require 'socket' GPS_SERVER_IP = "192.168.2.1" GPS_SERVER_PORT = 5445 -MODE = :client -PROTOCOL = :tcp +MODE = :tcp_server +#MODE = :tcp_client +#MODE = :udp_server +#MODE = :serial def tcp_read(sock) loop { - data = sock.readline() - puts data.inspect + begin + data = sock.readline() + p data + rescue Errno::EAGAIN, Errno::EWOULDBLOCK => e + puts "read error: #{e.class}: #{e}" + return + end } end -if PROTOCOL == :tcp - if MODE == :client - sock = TCPSocket.new(GPS_SERVER_IP, GPS_SERVER_PORT) - tcp_read(sock) - sock.close - else - serv = TCPServer.new(GPS_SERVER_PORT) - sock = serv.accept - tcp_read(sock) - sock.close - end -elsif PROTOCOL == :udp - sock = UDPSocket.new - sock.bind('0.0.0.0', GPS_SERVER_PORT) - +def udp_read(sock) loop { begin msg, sender = sock.recvfrom(1024) + p msg rescue Errno::EAGAIN, Errno::EWOULDBLOCK => e puts "recvfrom error: #{e.class}: #{e}" next end - puts msg.inspect } end - +if MODE == :tcp_client + sock = TCPSocket.new(GPS_SERVER_IP, GPS_SERVER_PORT) + tcp_read(sock) + sock.close +elsif MODE == :tcp_server + serv = TCPServer.new(GPS_SERVER_PORT) + sock = serv.accept + tcp_read(sock) + sock.close +elsif MODE == :udp_server + sock = UDPSocket.new + sock.bind('0.0.0.0', GPS_SERVER_PORT) + udp_read(sock) + sock.close +end |