/dongfang_FC_rewrite_tool/configsets/ADXRS610/config.xml |
---|
1,10 → 1,10 |
<parameterset eepromVersion="3" length="79"> |
<parameterset eepromVersion="3" length="78" name="hundeprut"> |
<parameter name="bitConfig"> |
<bit name="CFG_SIMPLE_HEIGHT_CONTROL" value="0" /> |
<bit name="CFG_SIMPLE_HC_HOLD_SWITCH" value="0" /> |
<bit name="CFG_HEADING_HOLD" value="0" /> |
<bit name="CFG_COMPASS_ACTIVE" value="0" /> |
<bit name="CFG_COMPASS_FIX" value="0" /> |
<bit name="CFG_COMPASS_ACTIVE" value="1" /> |
<bit name="CFG_UNUSED" value="0" /> |
<bit name="CFG_GPS_ACTIVE" value="0" /> |
<bit name="CFG_AXIS_COUPLING_ACTIVE" value="0" /> |
<bit name="CFG_GYRO_SATURATION_PREVENTION" value="1" /> |
34,10 → 34,6 |
<parameter name="driftCompDivider" value="2" /> |
<parameter name="driftCompLimit" value="0" /> |
<parameter name="axisCoupling1" value="90" /> |
<parameter name="axisCoupling2" value="67" /> |
<parameter name="axisCouplingYawCorrection" value="0" /> |
<parameter name="levelCorrectionPitch" value="128" /> |
<parameter name="levelCorrectionRoll" value="128" /> |
44,19 → 40,27 |
<parameter name="gyroP" value="70" /> |
<parameter name="gyroI" value="40" /> |
<parameter name="gyroD" value="40" /> |
<parameter name="attitudeControl" value="0" /> |
<parameter name="stickP" value="8" /> |
<parameter name="stickD" value="2" /> |
<parameter name="stickYawP" value="8" /> |
<parameter name="stickThrottleD" value="8" /> |
<parameter name="minThrottle" value="4" /> |
<parameter name="maxThrottle" value="230" /> |
<parameter name="externalControl" value="0" /> |
<parameter name="motorSmoothing" value="0" /> |
<parameter name="dynamicStability" value="50" /> |
<parameter name="IFactor" value="32" /> |
<parameter name="yawIFactor" value="40" /> |
<parameter name="compassYawEffect" value="128" /> |
<parameter name="compassYawCorrection" value="1" /> |
<parameter name="compassFixedHeading" value="0" /> |
<parameter name="batteryVoltageWarning" value="100" /> |
<parameter name="emergencyThrottle" value="40" /> |
<parameter name="emergencyFlightDuration" value="30" /> |
67,7 → 71,7 |
<parameter name="heightP" value="var1" /> |
<parameter name="heightI" value="var2" /> |
<parameter name="heightD" value="100" /> |
<parameter name="heightSetting" value="var0" /> |
<parameter name="heightSetting" value="var1" /> |
<parameter name="heightControlMaxIntegral" value="40" /> |
<parameter name="heightMaxThrottleChange" value="40" /> |
<parameter name="heightSlewRate" value="200" /> |
127,10 → 131,10 |
<parameter name="output1Timing" value="14" /> |
<parameter name="outputDebugMask"> |
<bit name="DEBUG_MAINLOOP_TIMER" value="0" /> |
<bit name="DEBUG_HEIGHT_DIFF" value="1" /> |
<bit name="DEBUG_HEIGHT_DIFF" value="0" /> |
<bit name="DEBUG_HOVERTHROTTLE" value="0" /> |
<bit name="DEBUG_ACC0THORDER" value="0" /> |
<bit name="DEBUG_SIGNAL" value="0" /> |
<bit name="DEBUG_COMPASS" value="1" /> |
<bit name="DEBUG_PRESSURERANGE" value="0" /> |
<bit name="DEBUG_CLIP" value="0" /> |
<bit name="DEBUG_SENSORLIMIT" value="0" /> |
138,8 → 142,8 |
<parameter name="outputFlags"> |
<bit name="INVERT_OUTPUT0" value="0" /> |
<bit name="INVERT_OUTPUT1" value="0" /> |
<bit name="FLASH_OUTPUT0_BEEPING" value="0" /> |
<bit name="FLASH_OUTPUT1_BEEPING" value="0" /> |
<bit name="FLASH_OUTPUT0_BEEPING" value="1" /> |
<bit name="FLASH_OUTPUT1_BEEPING" value="1" /> |
<bit name="USE_ONBOARD_LEDS" value="1" /> |
<bit name="TEST_OFF" value="0" /> |
<bit name="TEST_ON" value="0" /> |
147,7 → 151,8 |
</parameter> |
<parameter name="naviMode" value="var0" /> |
<parameter name="naviStickThreshold" value="10" /> |
<parameter name="naviStickThreshold" value="2" /> |
<parameter name="naviStickLimit" value="50" /> |
<parameter name="GPSMinimumSatellites" value="6" /> |
<parameter name="naviP" value="50" /> |
<parameter name="naviI" value="0" /> |
/dongfang_FC_rewrite_tool/configsets/ENC-03/config.xml |
---|
130,7 → 130,7 |
<bit name="DEBUG_HEIGHT_DIFF" value="0" /> |
<bit name="DEBUG_HOVERTHROTTLE" value="0" /> |
<bit name="DEBUG_ACC0THORDER" value="1" /> |
<bit name="DEBUG_SIGNAL" value="0" /> |
<bit name="DEBUG_COMPASS" value="0" /> |
<bit name="DEBUG_PRESSURERANGE" value="0" /> |
<bit name="DEBUG_CLIP" value="0" /> |
<bit name="DEBUG_SENSORLIMIT" value="0" /> |
145,7 → 145,7 |
<bit name="TEST_ON" value="0" /> |
<bit name="UNUSED" value="0" /> |
</parameter> |
<parameter name="naviMode" value="var0" /> |
<parameter name="naviStickThreshold" value="10" /> |
<parameter name="GPSMinimumSatellites" value="6" /> |
152,7 → 152,7 |
<parameter name="naviP" value="50" /> |
<parameter name="naviI" value="0" /> |
<parameter name="naviD" value="50" /> |
<parameter name="userparam0" value="0" /> |
<parameter name="userparam1" value="0" /> |
<parameter name="userparam2" value="0" /> |
/dongfang_FC_rewrite_tool/configsets/templates/v3.xml |
---|
1,4 → 1,4 |
<parametertemplate eepromVersion="3" length="73"> |
<parametertemplate eepromVersion="3" length="78"> |
<section name="config" title="Configuration"> |
<parameter name="bitConfig" type="bitset"> |
<bit name="CFG_SIMPLE_HEIGHT_CONTROL" /> |
5,7 → 5,7 |
<bit name="CFG_SIMPLE_HC_HOLD_SWITCH" /> |
<bit name="CFG_HEADING_HOLD" /> |
<bit name="CFG_COMPASS_ACTIVE" /> |
<bit name="CFG_COMPASS_FIX" /> |
<bit name="CFG_UNUSED" /> |
<bit name="CFG_GPS_ACTIVE" /> |
<bit name="CFG_AXIS_COUPLING_ACTIVE" /> |
<bit name="CFG_GYRO_SATURATION_PREVENTION" /> |
37,10 → 37,6 |
<parameter name="driftCompDivider" /> |
<parameter name="driftCompLimit" /> |
<parameter name="axisCoupling1" /> |
<parameter name="axisCoupling2" /> |
<parameter name="axisCouplingYawCorrection" /> |
<parameter name="levelCorrectionPitch" type="dynamic"/> |
<parameter name="levelCorrectionRoll" type="dynamic"/> |
</section> |
66,7 → 62,10 |
<parameter name="dynamicStability" type="dynamic" /> |
<parameter name="IFactor" /> |
<parameter name="yawIFactor" /> |
<parameter name="compassYawEffect" type="dynamic" /> |
<parameter name="compassYawCorrection" /> |
<parameter name="compassFixedHeading" type="dynamic"/> |
<parameter name="batteryVoltageWarning" /> |
<parameter name="emergencyThrottle" /> |
<parameter name="emergencyFlightDuration" /> |
167,6 → 166,7 |
<section name="navigation" title="Navigation"> |
<parameter name="naviMode" type="dynamic"/> |
<parameter name="naviStickThreshold" /> |
<parameter name="naviStickLimit" /> |
<parameter name="GPSMinimumSatellites" /> |
<parameter name="naviP" /> |
<parameter name="naviI" /> |
/dongfang_FC_rewrite_tool/src/dongfang/mkt/serial/FrameQueue.java |
---|
File deleted |
/dongfang_FC_rewrite_tool/src/dongfang/mkt/serial/MKInputStream.java |
---|
File deleted |
\ No newline at end of file |
/dongfang_FC_rewrite_tool/src/dongfang/mkt/serial/MKOutputStream.java |
---|
File deleted |
\ No newline at end of file |
/dongfang_FC_rewrite_tool/src/dongfang/mkt/comm/MKInputStream.java |
---|
378,9 → 378,8 |
result = f; |
break; |
default: |
int b; |
int count = 0; |
while((b=read()) != '\r') { |
while(read() != '\r') { |
count++; |
} |
System.err.println("Unknown frame " + (char)iid + " received from " + address); |
/dongfang_FC_rewrite_tool/src/dongfang/mkt/comm/MKOutputStream.java |
---|
200,8 → 200,9 |
writeByte('s'); |
base64OutputStream.writeByte(f.getConfigurationSetNumber()); |
base64OutputStream.writeByte(f.getConfigurationVersionNumber()); |
// base64OutputStream.writeByte(f.getDataLength()); |
base64OutputStream.writeByte(f.getDataLength() + 12); |
base64OutputStream.writeBytes(f.getData()); |
base64OutputStream.writeChars(f.getName()); |
} |
public void visit(SetCompassHeadingRequestFrame f) throws IOException { |
/dongfang_FC_rewrite_tool/src/dongfang/mkt/frames/UniversalWriteParamSetRequestFrame.java |
---|
6,13 → 6,15 |
public class UniversalWriteParamSetRequestFrame extends RequestFrame { |
private char[] name; |
private int[] data; |
private int configurationSetNumber; |
private int configurationVersionNumber; |
public UniversalWriteParamSetRequestFrame(int configurationVersionNumber, int[] data) { |
public UniversalWriteParamSetRequestFrame(int configurationVersionNumber, char[] name, int[] data) { |
super(FC_ADDRESS); |
this.configurationVersionNumber = configurationVersionNumber; |
this.name = name; |
this.data = data; |
} |
36,8 → 38,12 |
public int getDataLength() { |
return data.length; |
} |
public int[] getData() { |
return data; |
} |
public char[] getName() { |
return name; |
} |
} |
/dongfang_FC_rewrite_tool/src/dongfang/mkt/main/UniversalConfigurator.java |
---|
21,7 → 21,6 |
import dongfang.mkt.comm.FrameQueue; |
import dongfang.mkt.comm.MKConnection; |
import dongfang.mkt.comm.serial.RXTXSerialPort; |
import dongfang.mkt.comm.tcp.MKTCPConnection; |
import dongfang.mkt.configuration.ConfigSet; |
import dongfang.mkt.frames.UniversalReadParamSetRequestFrame; |
import dongfang.mkt.frames.UniversalReadParamSetResponseFrame; |
38,8 → 37,7 |
frame.setConfigurationSetNumber(parameterSetNumber); |
q.sendRequest(frame); |
UniversalWriteParamSetResponseFrame r = (UniversalWriteParamSetResponseFrame) q |
.getResponseFor(frame, 5000); |
UniversalWriteParamSetResponseFrame r = (UniversalWriteParamSetResponseFrame) q.getResponseFor(frame, 5000); |
if (r == null) { |
System.err.println("ERROR. Timeout waiting for response."); |
} else if (!r.wasAccepted()) { |
62,11 → 60,12 |
configure(portIdentifier, frame, parameterSetNumber); |
} |
private static ConfigSet readConfiguration(String portIdentifier, int parameterSetNumber) throws IOException { |
private static ConfigSet readConfiguration(String portIdentifier, String s_parameterSetNumber) throws IOException { |
MKConnection port = new RXTXSerialPort(); |
port.init(portIdentifier); |
FrameQueue q = new FrameQueue(port); |
ConfigSet cs = null; |
int parameterSetNumber = Integer.parseInt(s_parameterSetNumber); |
UniversalReadParamSetRequestFrame frame = new UniversalReadParamSetRequestFrame(); |
frame.setConfigurationSetNumber(parameterSetNumber); |
112,8 → 111,7 |
*/ |
private static void readConfiguration(String portIdentifier, String s_parameterSetNumber, String fileName) throws IOException { |
int parameterSetNumber = Integer.parseInt(s_parameterSetNumber); |
ConfigSet cs = readConfiguration(portIdentifier, parameterSetNumber); |
ConfigSet cs = readConfiguration(portIdentifier, s_parameterSetNumber); |
if (cs != null) { |
FileWriter fw = new FileWriter(fileName); |
fw.write(cs.toXML()); |
179,6 → 177,14 |
"/parameterset/parameter", doc, XPathConstants.NODESET); |
int[] parameters = new int[parameterNodes.getLength()]; |
NodeList allChildNodes = (NodeList) xpath.evaluate( |
"/parameterset/*", doc, XPathConstants.NODESET); |
if (parameterNodes.getLength() != allChildNodes.getLength()) { |
System.err.println("There seems to be a child element of parameterset whose name is not \"parameter\"."); |
// System.exit(-1); |
} |
if (s_length >=0 && s_length != parameterNodes.getLength()) { |
System.err.println("The number of parameters ("+parameterNodes.getLength()+") does not match the number in the length attribute of the parameterset element ("+s_length+")."); |
// System.exit(-1); |
216,8 → 222,7 |
parameters[i] = value; |
} |
input.close(); |
return new UniversalWriteParamSetRequestFrame(eepromVersion, |
parameters); |
return new UniversalWriteParamSetRequestFrame(eepromVersion, "01234567890ab".toCharArray(), parameters); |
} catch (ParserConfigurationException ex) { |
// Should never happen. |
throw new RuntimeException(ex); |
248,7 → 253,7 |
String portIdentifier = null; |
if ("r".equals(args[0])) { |
readConfiguration(portIdentifier, Integer.parseInt(args[1])); |
readConfiguration(portIdentifier, args[1]); |
} else { |
writeConfiguration(portIdentifier, args[1], args[2]); |
} |