documents reformatted

This commit is contained in:
cs-powell
2024-11-25 13:49:01 -05:00
parent cc17797319
commit 88967419c6
12 changed files with 490 additions and 542 deletions

View File

@@ -1,41 +1,36 @@
package ModelFiles;
public abstract class Action {
Integer priority; // Priority of the Task
Integer delay; // Potential Delay before starting the task
String targetDREF;
Integer taskTime; // How long should the task take
boolean taskComplete; // Is the task completed?
ActionType actionType;
Integer priority; //Priority of the Task
Integer delay; //Potential Delay before starting the task
String targetDREF;
Integer taskTime; //How long should the task take
boolean taskComplete; //Is the task completed?
ActionType actionType;
public Action(ActionType actionType, int delay){
public Action(ActionType actionType, int delay) {
this.actionType = actionType;
this.delay = delay;
this.targetDREF = null;
}
}
public Action(ActionType actionType, int delay, String target){
public Action(ActionType actionType, int delay, String target) {
this.actionType = actionType;
this.delay = delay;
targetDREF = target;
}
public ActionType getType(){
public ActionType getType() {
return actionType;
}
}
public Integer getDelay(){
public Integer getDelay() {
return delay;
}
}
public String getTarget(){
public String getTarget() {
return targetDREF;
}
}
}

View File

@@ -1,9 +1,7 @@
package ModelFiles;
public enum ActionType{
public enum ActionType {
VISION,
MOTOR,
DELAY,
}

View File

@@ -1,15 +1,14 @@
package ModelFiles;
// package ProjectModels.CognitiveModel;
public class Delay extends Action {
public Delay(){
super(ActionType.DELAY,1000);
public Delay() {
super(ActionType.DELAY, 1000);
}
public Delay(int delay){
super(ActionType.DELAY,delay);
public Delay(int delay) {
super(ActionType.DELAY, delay);
}
}

View File

@@ -7,16 +7,15 @@ public class MindQueue {
LinkedList<Action> q;
public MindQueue () {
public MindQueue() {
q = new LinkedList<Action>();
}
public void push(Action e){
public void push(Action e) {
q.add(e);
}
public Action removeEvent(Action e){
public Action removeEvent(Action e) {
Action temp = e;
q.remove(e);
return temp;
@@ -24,36 +23,35 @@ public class MindQueue {
public Action pop() {
Vision v = new Vision();
if(q.isEmpty()) {
if (q.isEmpty()) {
return v;
}
return q.remove();
}
public boolean isEmpty(){
public boolean isEmpty() {
return q.isEmpty();
}
public String printQueue(){
public String printQueue() {
String queueTrace = "Next to Execute ==> ";
for (Action action : q) {
if(action.getType() == ActionType.VISION){
if (action.getType() == ActionType.VISION) {
queueTrace += "[V]";
}
if(action.getType() == ActionType.MOTOR){
if (action.getType() == ActionType.MOTOR) {
queueTrace += "[M]";
}
if(action.getType() == ActionType.DELAY){
if (action.getType() == ActionType.DELAY) {
queueTrace += "[D]";
}
}
return queueTrace;
}
public int queueLength(){
public int queueLength() {
return q.size();
}
}

View File

@@ -1,4 +1,5 @@
package ModelFiles;
import java.io.IOException;
// import ModelFiles.ActionType;
@@ -6,12 +7,12 @@ import java.io.IOException;
public class Model {
private MindQueue q; //Queue for actions
private MindQueue q; // Queue for actions
boolean modelActive; // On/Off Switch for the model execution
XPlaneConnect xpc; //Allows connection to the simulator
XPlaneConnect xpc; // Allows connection to the simulator
float[] storedVision;
//Constructors
// Constructors
public Model() {
q = new MindQueue();
modelActive = false;
@@ -23,13 +24,12 @@ public class Model {
this.xpc = xpc;
}
/*Getters*/
/* Getters */
public MindQueue getQueue() {
return q;
}
/*Setters*/
/* Setters */
/*
* Setup Methods
@@ -39,43 +39,43 @@ public class Model {
modelActive = true;
}
public void establishConnection(XPlaneConnect newXPC){
public void establishConnection(XPlaneConnect newXPC) {
this.xpc = newXPC;
}
public void deactivateModel(){
public void deactivateModel() {
modelActive = false;
}
public boolean isEmpty(){
public boolean isEmpty() {
return q.isEmpty();
}
public void push(Action a){
public void push(Action a) {
q.push(a);
}
public boolean isActive(){
public boolean isActive() {
return modelActive;
}
public void printModelQueue(){
public void printModelQueue() {
System.out.println(q.printQueue());
}
public int getModelQueueLength(){
public int getModelQueueLength() {
return q.queueLength();
}
public void createAction(ActionType actionType, MotorType motorType, int delay,String target) {
public void createAction(ActionType actionType, MotorType motorType, int delay, String target) {
Action newAction = null;
switch(actionType) {
switch (actionType) {
case VISION:
newAction = new Vision(delay,target);
newAction = new Vision(delay, target);
this.push(newAction);
break;
case MOTOR:
newAction = new Motor(motorType,delay,target);
newAction = new Motor(motorType, delay, target);
this.push(newAction);
break;
@@ -99,11 +99,11 @@ public class Model {
Action temp = q.pop();
// System.out.println("Type of Action: " + temp.getType());
if(temp.getType() == ActionType.VISION){ // Vision Action (Get Data)
if (temp.getType() == ActionType.VISION) { // Vision Action (Get Data)
handelVisionAction(temp, returnArray);
} else if (temp.getType() == ActionType.MOTOR){ //Motor Action (Act Upon Data)
} else if (temp.getType() == ActionType.MOTOR) { // Motor Action (Act Upon Data)
handleMotorAction(temp);
} else if (temp.getType() == ActionType.DELAY){//Pure Delays (Do nothing)
} else if (temp.getType() == ActionType.DELAY) {// Pure Delays (Do nothing)
handleDelayAction(temp);
}
// q.push(temp);
@@ -135,13 +135,14 @@ public class Model {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
switch(motorType){
switch (motorType) {
case PITCHUP:
float[] pitchUp = {currentControls[0] + 0.01f};
if(storedVision[0] > 80) {
if(currentControls[0] < 0.2f) {
float[] pitchUp = { currentControls[0] + 0.01f };
if (storedVision[0] > 80) {
if (currentControls[0] < 0.2f) {
System.out.println("Pitching Up");
xpc.sendCTRL(pitchUp);
}
@@ -149,9 +150,9 @@ public class Model {
break;
case PITCHDOWN:
float[] pitchDown = {currentControls[0] - 0.01f};
if(storedVision[0] < 80) {
if(currentControls[0] > -0.2f) {
float[] pitchDown = { currentControls[0] - 0.01f };
if (storedVision[0] < 80) {
if (currentControls[0] > -0.2f) {
// System.out.println("Sending Pitch Down");
System.out.println("Pitching Down");
xpc.sendCTRL(pitchDown);
@@ -167,12 +168,12 @@ public class Model {
}
}
private void handleDelayAction(Action temp){
private void handleDelayAction(Action temp) {
Delay tempD = (Delay) temp;
initiateDelay(tempD.getDelay());
}
public static void initiateDelay(int delay){
public static void initiateDelay(int delay) {
try {
Thread.sleep(delay); // Using the action's Built in Delay
} catch (InterruptedException e) {

View File

@@ -1,6 +1,6 @@
package ModelFiles;
import java.io.IOException;
import java.io.IOException;
public class Motor extends Action {
@@ -8,33 +8,30 @@ public class Motor extends Action {
MotorType motorType;
public Motor(MotorType motorType) {
super(ActionType.MOTOR,1000);
super(ActionType.MOTOR, 1000);
this.motorType = motorType;
}
// public Motor(int delay) {
// super(ActionType.MOTOR,delay);
// }
// public Motor(int delay) {
// super(ActionType.MOTOR,delay);
// }
public Motor(MotorType motorType,int delay, String target) {
super(ActionType.MOTOR,delay,target);
public Motor(MotorType motorType, int delay, String target) {
super(ActionType.MOTOR, delay, target);
this.motorType = motorType;
}
}
public void createMotorControl(){ // TODO: Maybe takes in a formatted set of vision inputs?
public void createMotorControl() { // TODO: Maybe takes in a formatted set of vision inputs?
control = null;
}
}
public MotorType getMotorType(){
public MotorType getMotorType() {
return motorType;
}
}
public void sendMotorControl(XPlaneConnect xpc) {
public void sendMotorControl(XPlaneConnect xpc) {
if(control != null) {
if (control != null) {
try {
xpc.sendCTRL(control);
} catch (IOException e) {
@@ -42,7 +39,6 @@ public void sendMotorControl(XPlaneConnect xpc) {
System.out.println("Control failed to send");
}
}
}
}
}

View File

@@ -1,6 +1,6 @@
package ModelFiles;
public enum MotorType{
public enum MotorType {
PITCHUP,
PITCHDOWN
}

View File

@@ -1,10 +1,9 @@
package ModelFiles;
public class Process {
public Process(){
public Process() {
}
}

View File

@@ -1,4 +1,5 @@
package ModelFiles;
import org.junit.Test;
import static org.junit.Assert.assertEquals;

View File

@@ -2,21 +2,20 @@ package ModelFiles;
public class Vision extends Action {
public Vision(){
super(ActionType.VISION,1000);
public Vision() {
super(ActionType.VISION, 1000);
}
public Vision(int delay){
super(ActionType.VISION,delay);
public Vision(int delay) {
super(ActionType.VISION, delay);
}
public Vision(String dref){
super(ActionType.VISION,1000,dref);
public Vision(String dref) {
super(ActionType.VISION, 1000, dref);
}
public Vision(int delay, String dref){
super(ActionType.VISION,delay, dref);
public Vision(int delay, String dref) {
super(ActionType.VISION, delay, dref);
}
}

View File

@@ -25,7 +25,7 @@ import ModelFiles.XPlaneConnect;
public class Main {
public static void main(String[] args) {
//Encapsulation (or lack thereof) Test
// Encapsulation (or lack thereof) Test
Model m = new Model();
MindQueue q = m.getQueue();
Action a = new Vision();
@@ -34,9 +34,9 @@ public class Main {
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");
// 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);
@@ -47,9 +47,9 @@ public class Main {
// m.push(d);
m.printModelQueue();
// m.deactivateModel();
while(m.isActive() && !m.isEmpty()) {
while (m.isActive() && !m.isEmpty()) {
float[] array = m.next();
if(array != null) {
if (array != null) {
// System.out.println(array[0]);
// if(array[0] > 80.0f) {
// m.push(d);
@@ -58,7 +58,7 @@ public class Main {
// System.out.println("no dice");
// System.out.println(xpc.getDREF(null)");
}
if(m.getModelQueueLength() < 5){
if (m.getModelQueueLength() < 5) {
m.createAction(ActionType.VISION, null, 0, "sim/cockpit2/gauges/indicators/airspeed_kts_pilot");
m.createAction(ActionType.MOTOR, MotorType.PITCHUP, 0, null);
m.createAction(ActionType.MOTOR, MotorType.PITCHDOWN, 0, null);
@@ -66,14 +66,11 @@ public class Main {
// m.printModelQueue();
}
}
catch (SocketException ex)
{
} 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() + "'.)");
} catch (IOException ex) {
System.out.println(
"Something went wrong with one of the commands. (Error message was '" + ex.getMessage() + "'.)");
}
System.out.println("Exiting");
}