diff --git a/Java/ProjectModels/CognitiveModel/ActionType.java b/Java/ProjectModels/CognitiveModel/ActionType.java deleted file mode 100644 index 22e9c44..0000000 --- a/Java/ProjectModels/CognitiveModel/ActionType.java +++ /dev/null @@ -1,7 +0,0 @@ -package ProjectModels.CognitiveModel; - -public enum ActionType{ - VISION, - MOTOR, - DELAY -} \ No newline at end of file diff --git a/Java/ProjectModels/CognitiveModel/Action.java b/Java/ProjectModels/CognitiveModel/ModelFiles/Action.java similarity index 94% rename from Java/ProjectModels/CognitiveModel/Action.java rename to Java/ProjectModels/CognitiveModel/ModelFiles/Action.java index 998b491..079c656 100644 --- a/Java/ProjectModels/CognitiveModel/Action.java +++ b/Java/ProjectModels/CognitiveModel/ModelFiles/Action.java @@ -1,4 +1,5 @@ -package ProjectModels.CognitiveModel; +package ModelFiles; + public abstract class Action { diff --git a/Java/ProjectModels/CognitiveModel/ModelFiles/ActionType.java b/Java/ProjectModels/CognitiveModel/ModelFiles/ActionType.java new file mode 100644 index 0000000..dfba7d2 --- /dev/null +++ b/Java/ProjectModels/CognitiveModel/ModelFiles/ActionType.java @@ -0,0 +1,9 @@ +package ModelFiles; + + +public enum ActionType{ + VISION, + MOTOR, + DELAY, +} + diff --git a/Java/ProjectModels/CognitiveModel/Delay.java b/Java/ProjectModels/CognitiveModel/ModelFiles/Delay.java similarity index 74% rename from Java/ProjectModels/CognitiveModel/Delay.java rename to Java/ProjectModels/CognitiveModel/ModelFiles/Delay.java index be349ef..37c5abc 100644 --- a/Java/ProjectModels/CognitiveModel/Delay.java +++ b/Java/ProjectModels/CognitiveModel/ModelFiles/Delay.java @@ -1,4 +1,5 @@ -package ProjectModels.CognitiveModel; +package ModelFiles; +// package ProjectModels.CognitiveModel; public class Delay extends Action { diff --git a/Java/ProjectModels/CognitiveModel/MindQueue.java b/Java/ProjectModels/CognitiveModel/ModelFiles/MindQueue.java similarity index 94% rename from Java/ProjectModels/CognitiveModel/MindQueue.java rename to Java/ProjectModels/CognitiveModel/ModelFiles/MindQueue.java index 793f900..daf4f46 100644 --- a/Java/ProjectModels/CognitiveModel/MindQueue.java +++ b/Java/ProjectModels/CognitiveModel/ModelFiles/MindQueue.java @@ -1,4 +1,5 @@ -package ProjectModels.CognitiveModel; +package ModelFiles; +// package ProjectModels.CognitiveModel; import java.util.LinkedList; diff --git a/Java/ProjectModels/CognitiveModel/Model.java b/Java/ProjectModels/CognitiveModel/ModelFiles/Model.java similarity index 67% rename from Java/ProjectModels/CognitiveModel/Model.java rename to Java/ProjectModels/CognitiveModel/ModelFiles/Model.java index 4a4360f..45fa179 100644 --- a/Java/ProjectModels/CognitiveModel/Model.java +++ b/Java/ProjectModels/CognitiveModel/ModelFiles/Model.java @@ -1,12 +1,15 @@ -package ProjectModels.CognitiveModel; +package ModelFiles; import java.io.IOException; +import ModelFiles.ActionType; +import ModelFiles.MotorType; + public class Model { private MindQueue q; //Queue for actions boolean modelActive; // On/Off Switch for the model execution XPlaneConnect xpc; //Allows connection to the simulator - + float[] storedVision; //Constructors public Model() { @@ -64,19 +67,22 @@ public class Model { return q.queueLength(); } - public void createAction(int actionType,int delay,String target) { + public void createAction(ActionType actionType,int delay,String target) { Action newAction = null; - switch(actionType){ - case 1: + switch(actionType) { + case VISION: newAction = new Vision(delay,target); this.push(newAction); - case 2: + break; + case MOTOR: newAction = new Motor(delay,target); this.push(newAction); + break; - case 3: + case DELAY: newAction = new Delay(delay); this.push(newAction); + break; } } @@ -112,14 +118,42 @@ public class Model { String dref = tempV.getTarget(); try { returnArray = xpc.getDREF(dref); + storedVision = returnArray.clone(); + // System.out.println(returnArray[0]); } catch (IOException e) { } } - private void handleMotorAction(Action temp){ + private void handleMotorAction(Action temp) { Motor tempM = (Motor) temp; - tempM.getDelay(); + MotorType motorType = tempM.getMotorType(); + float[] currentControls = null; + try { + + switch(motorType){ + case PITCHUP: + float[] pitchUp = {currentControls[0] + 0.01f}; + if(storedVision[0] > 90) { + if(currentControls[0] < 0.1f) { + xpc.sendCTRL(pitchUp); + } + } + System.out.println("Pitching Up"); + case PITCHDOWN: + float[] pitchDown = {currentControls[0] - 0.01f}; + if(storedVision[0] < 50) { + if(currentControls[0] > 0.1f) { + xpc.sendCTRL(pitchDown); + } + } + System.out.println("Pitching Down"); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } } private void handleDelayAction(Action temp){ diff --git a/Java/ProjectModels/CognitiveModel/Motor.java b/Java/ProjectModels/CognitiveModel/ModelFiles/Motor.java similarity index 87% rename from Java/ProjectModels/CognitiveModel/Motor.java rename to Java/ProjectModels/CognitiveModel/ModelFiles/Motor.java index 100954d..53345f9 100644 --- a/Java/ProjectModels/CognitiveModel/Motor.java +++ b/Java/ProjectModels/CognitiveModel/ModelFiles/Motor.java @@ -1,10 +1,11 @@ -package ProjectModels.CognitiveModel; +package ModelFiles; import java.io.IOException; public class Motor extends Action { float[] control; + MotorType motorType; public Motor() { super(ActionType.MOTOR,1000); @@ -24,6 +25,11 @@ public void createMotorControl(){ // TODO: Maybe takes in a formatted set of vis control = null; } + +public MotorType getMotorType(){ + return motorType; +} + public void sendMotorControl(XPlaneConnect xpc) { if(control != null) { @@ -36,4 +42,5 @@ public void sendMotorControl(XPlaneConnect xpc) { } } + } \ No newline at end of file diff --git a/Java/ProjectModels/CognitiveModel/ModelFiles/MotorType.java b/Java/ProjectModels/CognitiveModel/ModelFiles/MotorType.java new file mode 100644 index 0000000..7ec0604 --- /dev/null +++ b/Java/ProjectModels/CognitiveModel/ModelFiles/MotorType.java @@ -0,0 +1,6 @@ +package ModelFiles; + +public enum MotorType{ + PITCHUP, + PITCHDOWN +} diff --git a/Java/ProjectModels/CognitiveModel/Process.java b/Java/ProjectModels/CognitiveModel/ModelFiles/Process.java similarity index 62% rename from Java/ProjectModels/CognitiveModel/Process.java rename to Java/ProjectModels/CognitiveModel/ModelFiles/Process.java index 0db50c2..0b1fc77 100644 --- a/Java/ProjectModels/CognitiveModel/Process.java +++ b/Java/ProjectModels/CognitiveModel/ModelFiles/Process.java @@ -1,4 +1,4 @@ -package ProjectModels.CognitiveModel; +package ModelFiles; public class Process { diff --git a/Java/ProjectModels/CognitiveModel/Tests.java b/Java/ProjectModels/CognitiveModel/ModelFiles/Tests.java similarity index 88% rename from Java/ProjectModels/CognitiveModel/Tests.java rename to Java/ProjectModels/CognitiveModel/ModelFiles/Tests.java index a8b286e..6fd99ee 100644 --- a/Java/ProjectModels/CognitiveModel/Tests.java +++ b/Java/ProjectModels/CognitiveModel/ModelFiles/Tests.java @@ -1,4 +1,4 @@ -package ProjectModels.CognitiveModel; +package ModelFiles; import org.junit.Test; import static org.junit.Assert.assertEquals; diff --git a/Java/ProjectModels/CognitiveModel/ModelFiles/Vision.java b/Java/ProjectModels/CognitiveModel/ModelFiles/Vision.java new file mode 100644 index 0000000..88e40c2 --- /dev/null +++ b/Java/ProjectModels/CognitiveModel/ModelFiles/Vision.java @@ -0,0 +1,22 @@ +package ModelFiles; + +public class Vision extends Action { + + + public Vision(){ + super(ActionType.VISION,1000); + } + + public Vision(int delay){ + super(ActionType.VISION,delay); + } + + public Vision(String dref){ + super(ActionType.VISION,1000,dref); + } + + public Vision(int delay, String dref){ + super(ActionType.VISION,delay, dref); + } + +} \ No newline at end of file diff --git a/Java/ProjectModels/CognitiveModel/XPCdependencies/Beacon.java b/Java/ProjectModels/CognitiveModel/ModelFiles/XPCdependencies/Beacon.java similarity index 95% rename from Java/ProjectModels/CognitiveModel/XPCdependencies/Beacon.java rename to Java/ProjectModels/CognitiveModel/ModelFiles/XPCdependencies/Beacon.java index 620f719..291e5f1 100644 --- a/Java/ProjectModels/CognitiveModel/XPCdependencies/Beacon.java +++ b/Java/ProjectModels/CognitiveModel/ModelFiles/XPCdependencies/Beacon.java @@ -1,4 +1,4 @@ -package ProjectModels.CognitiveModel.XPCdependencies; +package ModelFiles.XPCdependencies; import java.net.InetAddress; diff --git a/Java/ProjectModels/CognitiveModel/XPCdependencies/BeaconParser.java b/Java/ProjectModels/CognitiveModel/ModelFiles/XPCdependencies/BeaconParser.java similarity index 97% rename from Java/ProjectModels/CognitiveModel/XPCdependencies/BeaconParser.java rename to Java/ProjectModels/CognitiveModel/ModelFiles/XPCdependencies/BeaconParser.java index 121f0d7..402d736 100644 --- a/Java/ProjectModels/CognitiveModel/XPCdependencies/BeaconParser.java +++ b/Java/ProjectModels/CognitiveModel/ModelFiles/XPCdependencies/BeaconParser.java @@ -1,4 +1,4 @@ -package ProjectModels.CognitiveModel.XPCdependencies; +package ModelFiles.XPCdependencies; import java.io.IOException; import java.net.DatagramPacket; diff --git a/Java/ProjectModels/CognitiveModel/XPCdependencies/BeaconReceivedListener.java b/Java/ProjectModels/CognitiveModel/ModelFiles/XPCdependencies/BeaconReceivedListener.java similarity index 78% rename from Java/ProjectModels/CognitiveModel/XPCdependencies/BeaconReceivedListener.java rename to Java/ProjectModels/CognitiveModel/ModelFiles/XPCdependencies/BeaconReceivedListener.java index 8c123cb..09c7940 100644 --- a/Java/ProjectModels/CognitiveModel/XPCdependencies/BeaconReceivedListener.java +++ b/Java/ProjectModels/CognitiveModel/ModelFiles/XPCdependencies/BeaconReceivedListener.java @@ -1,4 +1,4 @@ -package ProjectModels.CognitiveModel.XPCdependencies; +package ModelFiles.XPCdependencies; public interface BeaconReceivedListener { diff --git a/Java/ProjectModels/CognitiveModel/XPCdependencies/DiscoveryConnectionCallback.java b/Java/ProjectModels/CognitiveModel/ModelFiles/XPCdependencies/DiscoveryConnectionCallback.java similarity index 80% rename from Java/ProjectModels/CognitiveModel/XPCdependencies/DiscoveryConnectionCallback.java rename to Java/ProjectModels/CognitiveModel/ModelFiles/XPCdependencies/DiscoveryConnectionCallback.java index 3fffd48..eaa6a06 100644 --- a/Java/ProjectModels/CognitiveModel/XPCdependencies/DiscoveryConnectionCallback.java +++ b/Java/ProjectModels/CognitiveModel/ModelFiles/XPCdependencies/DiscoveryConnectionCallback.java @@ -1,6 +1,6 @@ -package ProjectModels.CognitiveModel.XPCdependencies; +package ModelFiles.XPCdependencies; -import ProjectModels.CognitiveModel.*; +import ModelFiles.*; public interface DiscoveryConnectionCallback { diff --git a/Java/ProjectModels/CognitiveModel/XPCdependencies/ViewType.java b/Java/ProjectModels/CognitiveModel/ModelFiles/XPCdependencies/ViewType.java similarity index 97% rename from Java/ProjectModels/CognitiveModel/XPCdependencies/ViewType.java rename to Java/ProjectModels/CognitiveModel/ModelFiles/XPCdependencies/ViewType.java index ad02ebb..f990adc 100644 --- a/Java/ProjectModels/CognitiveModel/XPCdependencies/ViewType.java +++ b/Java/ProjectModels/CognitiveModel/ModelFiles/XPCdependencies/ViewType.java @@ -22,7 +22,7 @@ // HARMLESS THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND SUBCONTRACTORS, AS WELL AS ANY // PRIOR RECIPIENT, TO THE EXTENT PERMITTED BY LAW. RECIPIENT'S SOLE REMEDY FOR ANY SUCH MATTER // SHALL BE THE IMMEDIATE, UNILATERAL TERMINATION OF THIS AGREEMENT. -package ProjectModels.CognitiveModel.XPCdependencies; +package ModelFiles.XPCdependencies; /** * Represents a camera view in X-Plane diff --git a/Java/ProjectModels/CognitiveModel/XPCdependencies/WaypointOp.java b/Java/ProjectModels/CognitiveModel/ModelFiles/XPCdependencies/WaypointOp.java similarity index 97% rename from Java/ProjectModels/CognitiveModel/XPCdependencies/WaypointOp.java rename to Java/ProjectModels/CognitiveModel/ModelFiles/XPCdependencies/WaypointOp.java index 956c268..29e3bbb 100644 --- a/Java/ProjectModels/CognitiveModel/XPCdependencies/WaypointOp.java +++ b/Java/ProjectModels/CognitiveModel/ModelFiles/XPCdependencies/WaypointOp.java @@ -22,7 +22,7 @@ // HARMLESS THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND SUBCONTRACTORS, AS WELL AS ANY // PRIOR RECIPIENT, TO THE EXTENT PERMITTED BY LAW. RECIPIENT'S SOLE REMEDY FOR ANY SUCH MATTER // SHALL BE THE IMMEDIATE, UNILATERAL TERMINATION OF THIS AGREEMENT. -package ProjectModels.CognitiveModel.XPCdependencies; +package ModelFiles.XPCdependencies; /** * Represents operations that can be performed by the WYPT command. diff --git a/Java/ProjectModels/CognitiveModel/XPCdependencies/XPlaneConnectDiscovery.java b/Java/ProjectModels/CognitiveModel/ModelFiles/XPCdependencies/XPlaneConnectDiscovery.java similarity index 96% rename from Java/ProjectModels/CognitiveModel/XPCdependencies/XPlaneConnectDiscovery.java rename to Java/ProjectModels/CognitiveModel/ModelFiles/XPCdependencies/XPlaneConnectDiscovery.java index 6344fb4..576cc98 100644 --- a/Java/ProjectModels/CognitiveModel/XPCdependencies/XPlaneConnectDiscovery.java +++ b/Java/ProjectModels/CognitiveModel/ModelFiles/XPCdependencies/XPlaneConnectDiscovery.java @@ -1,6 +1,6 @@ -package ProjectModels.CognitiveModel.XPCdependencies; +package ModelFiles.XPCdependencies; -import ProjectModels.CognitiveModel.*; +import ModelFiles.*; import java.io.IOException; import java.net.DatagramPacket; diff --git a/Java/ProjectModels/CognitiveModel/XPlaneConnect.java b/Java/ProjectModels/CognitiveModel/ModelFiles/XPlaneConnect.java similarity index 99% rename from Java/ProjectModels/CognitiveModel/XPlaneConnect.java rename to Java/ProjectModels/CognitiveModel/ModelFiles/XPlaneConnect.java index 70be915..c888332 100644 --- a/Java/ProjectModels/CognitiveModel/XPlaneConnect.java +++ b/Java/ProjectModels/CognitiveModel/ModelFiles/XPlaneConnect.java @@ -23,11 +23,7 @@ // PRIOR RECIPIENT, TO THE EXTENT PERMITTED BY LAW. RECIPIENT'S SOLE REMEDY FOR ANY SUCH MATTER // SHALL BE THE IMMEDIATE, UNILATERAL TERMINATION OF THIS AGREEMENT. -package ProjectModels.CognitiveModel; - -import ProjectModels.CognitiveModel.XPCdependencies.*; -import src.discovery.ViewType; -import src.discovery.WaypointOp; +package ModelFiles; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -38,6 +34,8 @@ import java.nio.ByteOrder; import java.nio.charset.StandardCharsets; import java.util.Arrays; +import ModelFiles.XPCdependencies.*; + /** * Represents a client that can connect to and interact with the X-Plane Connect plugin. * diff --git a/Java/ProjectModels/CognitiveModel/Vision.java b/Java/ProjectModels/CognitiveModel/Vision.java deleted file mode 100644 index 206f016..0000000 --- a/Java/ProjectModels/CognitiveModel/Vision.java +++ /dev/null @@ -1,22 +0,0 @@ -package ProjectModels.CognitiveModel; - -public class Vision extends Action { - - - public Vision(){ - super(ActionType.VISION,1000); - } - -public Vision(int delay){ - super(ActionType.VISION,delay); -} - -public Vision(String dref){ - super(ActionType.VISION,1000,dref); -} - -public Vision(int delay, String dref){ - super(ActionType.VISION,delay, dref); -} - -} \ No newline at end of file diff --git a/Java/ProjectModels/src/Main.java b/Java/ProjectModels/Main.java similarity index 59% rename from Java/ProjectModels/src/Main.java rename to Java/ProjectModels/Main.java index 3e5935b..559bfd4 100644 --- a/Java/ProjectModels/src/Main.java +++ b/Java/ProjectModels/Main.java @@ -1,4 +1,4 @@ -package ProjectModels.src; + import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; @@ -13,7 +13,14 @@ import javax.swing.OverlayLayout; import javax.swing.SwingConstants; import javax.swing.border.Border; -import ProjectModels.CognitiveModel.*; +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 { @@ -28,34 +35,33 @@ public class Main { System.out.println(q2.pop()); //Using actions - try(XPlaneConnect xpc = new XPlaneConnect()) - { - m.createAction(0, 0, null); + 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.push(b); - m.push(d); + 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); + 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)"); } - } else { - // System.out.println("no dice"); - // System.out.println(xpc.getDREF(null)"); + + // m.createAction(ActionType.MOTOR, 0, null); + m.printModelQueue(); } - if(m.getModelQueueLength() < 5){ - m.push(b); - } - m.printModelQueue(); - } } catch (SocketException ex) { diff --git a/Java/ProjectModels/lib/hamcrest-core-1.3.jar b/Java/ProjectModels/lib/hamcrest-core-1.3.jar new file mode 100644 index 0000000..9d5fe16 Binary files /dev/null and b/Java/ProjectModels/lib/hamcrest-core-1.3.jar differ diff --git a/Java/ProjectModels/lib/junit-4.13.2.jar b/Java/ProjectModels/lib/junit-4.13.2.jar new file mode 100644 index 0000000..6da55d8 Binary files /dev/null and b/Java/ProjectModels/lib/junit-4.13.2.jar differ