package com.aerodynelabs.habtk.connectors.tests;
import javax.swing.JFrame;
import com.aerodynelabs.habtk.connectors.APRSIS;
import com.aerodynelabs.habtk.connectors.parsers.APRSPacket;
import com.aerodynelabs.map.MapOverlay;
import com.aerodynelabs.map.MapPath;
import com.aerodynelabs.map.MapPoint;
import com.aerodynelabs.map.MappingPanel;
public class APRSIS_Map_Test {
public static void main(String args[]) {
APRSIS server = new APRSIS("midwest.aprs2.net", 14580, "NV1K", "3327");
JFrame frame = new JFrame("APRSIS Map Test");
MappingPanel map = new MappingPanel();
frame.getContentPane().add(map);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
server.setFilter("r/42.0/-93.6/100");
MapOverlay overlay = new MapOverlay("APRS");
map.addOverlay(overlay);
while(true) {
if(server.isReady()) {
String line = server.readLine();
if(line.startsWith("#")) continue;
System.out.println(">> " + line);
APRSPacket packet = new APRSPacket(line);
if(!packet.isPosition()) continue;
if(overlay.hasPath(packet.getFrom())) {
System.out.println("Updating " + packet.getFrom() + " @ " + packet.getLatitude() + "," + packet.getLongitude());
overlay.appendPath(packet.getFrom(), new MapPoint(packet.getLatitude(), packet.getLongitude()));
} else {
System.out.println("Adding " + packet.getFrom() + " @ " + packet.getLatitude() + "," + packet.getLongitude());
MapPath path = new MapPath(packet.getFrom());
path.add(packet.getLatitude(), packet.getLongitude());
overlay.addPath(packet.getFrom(), path);
}
map.repaint();
}
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}