Files
XPlaneConnectCSP/Java/ProjectModels/Main.java
2024-11-24 15:05:33 -05:00

78 lines
2.4 KiB
Java

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");
}
}