Subversion Repositories Projects

Compare Revisions

Ignore whitespace Rev 1688 → Rev 1689

/dongfang_FC_rewrite_tool/src/dongfang/mkt/configuration/MotorMixer.java
1,6 → 1,5
package dongfang.mkt.configuration;
 
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
 
17,10 → 16,8
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
 
import dongfang.mkt.frames.WriteParamSetRequestFrame;
 
public class MotorMixer {
public static final int EEPROMVERSION = 11;
public static final int EEPROMVERSION = 1;
public static final int MAX_MOTORS = 12;
public static final int MIX_PITCH = 0;
28,15 → 25,13
public static final int MIX_THROTTLE = 2;
public static final int MIX_YAW = 3;
public static final int MIX_OPPOSITE_MOTOR = 4;
 
private int getByteCount() {
return MAX_MOTORS * 4 + MAX_MOTORS;
}
void rowToXML(int[] row, StringBuilder out) {
out.append("<motor throttlePart=\"" + row[MIX_THROTTLE] + "\" pitchPart=\"" + row[MIX_PITCH] + "\" rollPart=\"" + row[MIX_ROLL] + "\" yawPart=\"" + row[MIX_YAW] + "\" oppositeMotor=\"" + row[MIX_OPPOSITE_MOTOR] + "\"/>");
out.append("<motor throttlePart=\"" + row[MIX_THROTTLE] + "\" pitchPart=\"" + row[MIX_PITCH] + "\" rollPart=\"" + row[MIX_ROLL] + "\" yawPart=\"" + row[MIX_YAW] + "\" oppositeMotor=\"" + row[MIX_OPPOSITE_MOTOR] + "\" />");
}
 
private String name;
private int[][] matrix = new int[MAX_MOTORS][];
 
public void setMatrix(int[][] matrix) {
43,6 → 38,14
this.matrix = matrix;
}
 
public String getName() {
return name;
}
 
public void setName(String name) {
this.name = name;
}
 
public int[][] toBinary() {
return matrix;
}
49,7 → 52,7
public String toXML() {
StringBuilder result = new StringBuilder();
result.append("<motorMixer eepromVersion=\"" + EEPROMVERSION + "\" length=\"" + getByteCount() + "\">\n");
result.append("<motorMixer eepromVersion=\"" + EEPROMVERSION + "\" name=\"" + name + "\">\n");
for (int i = 0; i < MAX_MOTORS; i++) {
int[] row = matrix[i];
result.append(" ");
60,7 → 63,7
return result.toString();
}
private void parseXMLParameterSet(InputStream input) throws IOException {
public void parseXML(InputStream input) throws IOException {
DocumentBuilderFactory saxfac = DocumentBuilderFactory.newInstance();
saxfac.setValidating(false);
try {
79,6 → 82,8
System.exit(-1);
}
 
this.name = xpath.evaluate("/motorMixer/@name", doc);
NodeList rowNodes = (NodeList) xpath.evaluate(
"/motorMixer/motor", doc, XPathConstants.NODESET);
 
86,16 → 91,16
Element e = (Element) rowNodes.item(i);
int[] row = new int[5];
String s_value = e.getAttribute("throttle");
String s_value = e.getAttribute("throttlePart");
row[MIX_THROTTLE] = Integer.parseInt(s_value);
 
s_value = e.getAttribute("pitch");
s_value = e.getAttribute("pitchPart");
row[MIX_PITCH] = Integer.parseInt(s_value);
 
s_value = e.getAttribute("roll");
s_value = e.getAttribute("rollPart");
row[MIX_ROLL] = Integer.parseInt(s_value);
 
s_value = e.getAttribute("yaw");
s_value = e.getAttribute("yawPart");
row[MIX_YAW] = Integer.parseInt(s_value);
 
s_value = e.getAttribute("oppositeMotor");