/dongfang_FC_rewrite_tool/src/dongfang/mkt/RequestFrameVisitor.java |
---|
14,15 → 14,13 |
import dongfang.mkt.frames.OSDDataRequestFrame; |
import dongfang.mkt.frames.ReadExternalControlRequestFrame; |
import dongfang.mkt.frames.ReadIMUConfigurationRequestFrame; |
import dongfang.mkt.frames.ReadMotorMixerRequestFrame; |
import dongfang.mkt.frames.ReadParamSetRequestFrame; |
import dongfang.mkt.frames.ReadVariablesRequestFrame; |
import dongfang.mkt.frames.ResetRequestFrame; |
import dongfang.mkt.frames.SetCompassHeadingRequestFrame; |
import dongfang.mkt.frames.SingleDisplayRequestFrame; |
import dongfang.mkt.frames.VariablesRequestFrame; |
import dongfang.mkt.frames.VersionRequestFrame; |
import dongfang.mkt.frames.WriteIMUConfigurationRequestFrame; |
import dongfang.mkt.frames.WriteMotorMixerRequestFrame; |
import dongfang.mkt.frames.WriteParamSetRequestFrame; |
public interface RequestFrameVisitor { |
35,18 → 33,16 |
void visit(AttitudeDataRequestFrame f) throws IOException; |
void visit(SingleDisplayRequestFrame f) throws IOException; |
void visit(AllDisplaysRequestFrame f) throws IOException; |
void visit(ReadVariablesRequestFrame f) throws IOException; |
void visit(VariablesRequestFrame f) throws IOException; |
void visit(ExternalControlRequestFrame f) throws IOException; |
void visit(ResetRequestFrame f) throws IOException; |
void visit(ChangeParameterSetRequestFrame f) throws IOException; |
void visit(ReadParamSetRequestFrame f) throws IOException; |
void visit(ReadIMUConfigurationRequestFrame f) throws IOException; |
void visit(ReadMotorMixerRequestFrame f) throws IOException; |
void visit(WriteParamSetRequestFrame f) throws IOException; |
void visit(SetCompassHeadingRequestFrame f) throws IOException; |
void visit(ReadExternalControlRequestFrame f) throws IOException; |
void visit(OSDDataRequestFrame f) throws IOException; |
void visit(CompassHeadingRequestFrame f) throws IOException; |
void visit(WriteMotorMixerRequestFrame f) throws IOException; |
void visit(ReadIMUConfigurationRequestFrame f) throws IOException; |
void visit(WriteIMUConfigurationRequestFrame f) throws IOException; |
} |
/dongfang_FC_rewrite_tool/src/dongfang/mkt/comm/MKInputStream.java |
---|
17,14 → 17,12 |
import dongfang.mkt.frames.OSDDataResponseFrame; |
import dongfang.mkt.frames.ReadExternalControlResponseFrame; |
import dongfang.mkt.frames.ReadIMUConfigurationResponseFrame; |
import dongfang.mkt.frames.ReadMotorMixerResponseFrame; |
import dongfang.mkt.frames.ResponseFrame; |
import dongfang.mkt.frames.SetCompassHeadingResponseFrame; |
import dongfang.mkt.frames.ReadParamSetResponseFrame; |
import dongfang.mkt.frames.WriteIMUConfigurationResponseFrame; |
import dongfang.mkt.frames.WriteMotorMixerResponseFrame; |
import dongfang.mkt.frames.WriteParamSetResponseFrame; |
import dongfang.mkt.frames.ReadVariablesResponseFrame; |
import dongfang.mkt.frames.VariablesResponseFrame; |
import dongfang.mkt.frames.VersionResponseFrame; |
public class MKInputStream extends InputStream { |
261,39 → 259,6 |
result = f; |
break; |
} |
case 'M': { |
WriteMotorMixerResponseFrame f = new WriteMotorMixerResponseFrame(address); |
f.setWasAccepted(base64InputStream.readByte() != 0); |
} |
case 'N': { |
int numMotors = 12; |
ReadMotorMixerResponseFrame f = new ReadMotorMixerResponseFrame(); |
f.setConfigurationVersion(base64InputStream.readByte()); |
int length = base64InputStream.readByte(); |
f.setDataLength(length); |
int testLength = 0; |
int[][] matrix = new int[numMotors][]; |
for(int i=0; i<numMotors; i++) { |
int[] row = new int[4]; |
for(int j=0; j<4; j++) { |
matrix[i][j] = base64InputStream.readByte(); |
testLength++; |
} |
} |
if (length != testLength) |
throw new IOException("Length of motor mixer data was not as expected."); |
/* |
int[] opposite = new int[numMotors]; |
for(int i=0; i<numMotors; i++) { |
opposite[i] = base64InputStream.readByte(); |
} |
*/ |
f.setMatrix(matrix); |
result = f; |
} |
case 'O': { |
OSDDataResponseFrame f = new OSDDataResponseFrame(address); |
f.setVersion(base64InputStream.readByte()); |
401,7 → 366,7 |
// This is my own creation. The ID collides with the waypoint one of FC. |
case 'X': { |
ReadVariablesResponseFrame f = new ReadVariablesResponseFrame(address); |
VariablesResponseFrame f = new VariablesResponseFrame(address); |
f.setVariables(base64InputStream.readSignedWords(8)); |
result = f; |
break; |
/dongfang_FC_rewrite_tool/src/dongfang/mkt/comm/MKOutputStream.java |
---|
16,16 → 16,14 |
import dongfang.mkt.frames.OSDDataRequestFrame; |
import dongfang.mkt.frames.ReadExternalControlRequestFrame; |
import dongfang.mkt.frames.ReadIMUConfigurationRequestFrame; |
import dongfang.mkt.frames.ReadMotorMixerRequestFrame; |
import dongfang.mkt.frames.ReadParamSetRequestFrame; |
import dongfang.mkt.frames.ReadVariablesRequestFrame; |
import dongfang.mkt.frames.RequestFrame; |
import dongfang.mkt.frames.ResetRequestFrame; |
import dongfang.mkt.frames.SetCompassHeadingRequestFrame; |
import dongfang.mkt.frames.SingleDisplayRequestFrame; |
import dongfang.mkt.frames.VariablesRequestFrame; |
import dongfang.mkt.frames.VersionRequestFrame; |
import dongfang.mkt.frames.WriteIMUConfigurationRequestFrame; |
import dongfang.mkt.frames.WriteMotorMixerRequestFrame; |
import dongfang.mkt.frames.WriteParamSetRequestFrame; |
public class MKOutputStream extends OutputStream implements RequestFrameVisitor { |
164,29 → 162,8 |
base64OutputStream.writeByte(f.getPageOrder().getRemoteKeys()); |
// mdo.writeByte(f.getAutoSendInterval()); |
} |
public void visit(ReadMotorMixerRequestFrame f) throws IOException { |
writeByte('n'); |
} |
public void visit(WriteMotorMixerRequestFrame f) throws IOException { |
writeByte('m'); |
writeByte(f.getConfigurationVersion()); |
writeByte(f.getDataLength()); |
for(int i=0; i<f.getMatrix().length; i++) { |
int[] row = f.getMatrix()[i]; |
for(int j=0; j<row.length; j++) { |
base64OutputStream.writeByte(row[j]); |
} |
} |
/* |
for(int i=0; i<f.getOppositeMotors().length; i++) { |
base64OutputStream.writeByte(f.getOppositeMotors()[i]); |
} |
*/ |
} |
public void visit(ReadVariablesRequestFrame f) throws IOException { |
public void visit(VariablesRequestFrame f) throws IOException { |
writeByte('x'); |
} |
/dongfang_FC_rewrite_tool/src/dongfang/mkt/configuration/MotorMixer.java |
---|
File deleted |
\ No newline at end of file |
/dongfang_FC_rewrite_tool/src/dongfang/mkt/frames/ReadVariablesResponseFrame.java |
---|
File deleted |
/dongfang_FC_rewrite_tool/src/dongfang/mkt/frames/WriteMotorMixerResponseFrame.java |
---|
File deleted |
/dongfang_FC_rewrite_tool/src/dongfang/mkt/frames/WriteMotorMixerRequestFrame.java |
---|
File deleted |
/dongfang_FC_rewrite_tool/src/dongfang/mkt/frames/ReadVariablesRequestFrame.java |
---|
File deleted |
/dongfang_FC_rewrite_tool/src/dongfang/mkt/frames/ReadMotorMixerRequestFrame.java |
---|
File deleted |
/dongfang_FC_rewrite_tool/src/dongfang/mkt/frames/ReadMotorMixerResponseFrame.java |
---|
File deleted |
/dongfang_FC_rewrite_tool/src/dongfang/mkt/frames/FrameFactory.java |
---|
15,7 → 15,7 |
ReadParamSetRequestFrame createReadParamSetRequestFrame(int address); |
ResetRequestFrame createResetRequestFrame(int address); |
SingleDisplayRequestFrame createSingleDisplayRequestFrame(int address); |
ReadVariablesRequestFrame createVariablesRequestFrame(int address); |
VariablesRequestFrame createVariablesRequestFrame(int address); |
VersionRequestFrame createVersionRequestFrame(int address); |
// WriteParamSetRequestFrame createWriteParamSetRequestFrame(ParamSet paramSet); |
} |
/dongfang_FC_rewrite_tool/src/dongfang/mkt/frames/RequestFrameVisitor.java |
---|
2,7 → 2,7 |
import java.io.IOException; |
/* |
public interface RequestFrameVisitor { |
// void visit(RequestFrame f) throws IOException; |
void visit(AnalogDebugLabelRequestFrame f) throws IOException; |
13,7 → 13,7 |
void visit(AttitudeDataRequestFrame f) throws IOException; |
void visit(SingleDisplayRequestFrame f) throws IOException; |
void visit(AllDisplaysRequestFrame f) throws IOException; |
void visit(ReadVariablesRequestFrame f) throws IOException; |
void visit(VariablesRequestFrame f) throws IOException; |
void visit(ExternalControlRequestFrame f) throws IOException; |
void visit(ResetRequestFrame f) throws IOException; |
void visit(ChangeParameterSetRequestFrame f) throws IOException; |
23,5 → 23,4 |
void visit(ReadExternalControlRequestFrame f) throws IOException; |
void visit(OSDDataRequestFrame f) throws IOException; |
void visit(CompassHeadingRequestFrame f) throws IOException; |
} |
*/ |
} |
/dongfang_FC_rewrite_tool/src/dongfang/mkt/frames/VariablesRequestFrame.java |
---|
0,0 → 1,17 |
package dongfang.mkt.frames; |
import java.io.IOException; |
import dongfang.mkt.RequestFrameVisitor; |
public class VariablesRequestFrame extends RequestFrame { |
public VariablesRequestFrame(int address) { |
super(address); |
} |
@Override |
public void accept(RequestFrameVisitor o) throws IOException { |
o.visit(this); |
} |
} |
/dongfang_FC_rewrite_tool/src/dongfang/mkt/frames/VariablesResponseFrame.java |
---|
0,0 → 1,34 |
package dongfang.mkt.frames; |
public class VariablesResponseFrame extends ResponseFrame { |
private int[] variables; |
public VariablesResponseFrame(int address) { |
super(address); |
} |
@Override |
public boolean isResponseTo(RequestFrame r) { |
return r instanceof VariablesRequestFrame; |
} |
public int[] getVariables() { |
return variables; |
} |
public void setVariables(int[] variables) { |
this.variables = variables; |
} |
public String toString() { |
String result = getClass().getSimpleName() + ": "; |
if (variables != null) { |
for (int i=0; i<variables.length; i++) { |
result += i + "->" + variables[i]; |
if (i<variables.length-1) |
result += ", "; |
} |
} |
return result; |
} |
} |
/dongfang_FC_rewrite_tool/src/dongfang/mkt/main/MotorMixerConfigurator.java |
---|
File deleted |
\ No newline at end of file |
/dongfang_FC_rewrite_tool/src/dongfang/mkt/main/CodeGenerator.java |
---|
7,7 → 7,7 |
public class CodeGenerator { |
static void generateDynamicSubstitutionCode(int paramSetVersion) throws IOException { |
ConfigurationSet cs = ParameterSet.parseXMLParameterSet(paramSetVersion); |
ConfigurationSet cs = ParameterSet.parseXMLConfigSet(paramSetVersion); |
System.out.println(cs.generateDynamicSubstitutionCode()); |
} |
/dongfang_FC_rewrite_tool/src/dongfang/mkt/main/VariablesReader.java |
---|
6,8 → 6,8 |
import dongfang.mkt.comm.MKConnection; |
import dongfang.mkt.comm.serial.RXTXSerialPort; |
import dongfang.mkt.frames.RequestFrame; |
import dongfang.mkt.frames.ReadVariablesRequestFrame; |
import dongfang.mkt.frames.ReadVariablesResponseFrame; |
import dongfang.mkt.frames.VariablesRequestFrame; |
import dongfang.mkt.frames.VariablesResponseFrame; |
public class VariablesReader { |
private static int[] readVariables(String portIdentifier) throws IOException { |
16,9 → 16,9 |
FrameQueue q = new FrameQueue(port); |
int[] variables = null; |
ReadVariablesRequestFrame frame = new ReadVariablesRequestFrame(RequestFrame.FC_ADDRESS); |
VariablesRequestFrame frame = new VariablesRequestFrame(RequestFrame.FC_ADDRESS); |
q.sendRequest(frame); |
ReadVariablesResponseFrame r = (ReadVariablesResponseFrame) q.getResponseFor(frame, 5000); |
VariablesResponseFrame r = (VariablesResponseFrame) q.getResponseFor(frame, 5000); |
if (r == null) { |
System.err.println("ERROR. Timeout waiting for response."); |
} else { |