Subversion Repositories Projects

Compare Revisions

Ignore whitespace Rev 1688 → Rev 1687

/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 {