import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.net.SocketException; import java.util.Arrays; import javax.swing.BorderFactory; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.OverlayLayout; import javax.swing.SwingConstants; import javax.swing.border.Border; import ModelFiles.*; import ModelFiles.Action; import ModelFiles.ActionType; import ModelFiles.Delay; import ModelFiles.MindQueue; import ModelFiles.Model; import ModelFiles.Vision; import ModelFiles.XPlaneConnect; public class Main { public static void main(String[] args) { //Encapsulation (or lack thereof) Test Model m = new Model(); MindQueue q = m.getQueue(); Action a = new Vision(); System.out.println(q.pop()); q.push(a); MindQueue q2 = m.getQueue(); System.out.println(q2.pop()); //Using actions try(XPlaneConnect xpc = new XPlaneConnect()) { Action b = new Vision(10,"sim/cockpit2/gauges/indicators/airspeed_kts_pilot"); Action d = new Delay(20); // Ensure connection established. m = new Model(xpc); m.activateModel(); m.createAction(ActionType.VISION, 0, "sim/cockpit2/gauges/indicators/airspeed_kts_pilot"); m.createAction(ActionType.MOTOR, 0, null); // m.push(b); // m.push(d); m.printModelQueue(); // m.deactivateModel(); while(m.isActive() && !m.isEmpty()) { float[] array = m.next(); if(array != null) { System.out.println(array[0]); if(array[0] > 80.0f) { m.push(d); } } else { // System.out.println("no dice"); // System.out.println(xpc.getDREF(null)"); } // m.createAction(ActionType.MOTOR, 0, null); m.printModelQueue(); } } catch (SocketException ex) { System.out.println("Unable to set up the connection. (Error message was '" + ex.getMessage() + "'.)"); } catch (IOException ex) { System.out.println("Something went wrong with one of the commands. (Error message was '" + ex.getMessage() + "'.)"); } System.out.println("Exiting"); } }