Skip to content

Commit 713e64c

Browse files
committed
Fix gps rescue throttle pid gains
Add heading, velocity and tracking
1 parent ad79fbc commit 713e64c

File tree

3 files changed

+199
-1
lines changed

3 files changed

+199
-1
lines changed

js/flightlog_fielddefs.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,10 @@ var
339339
"TIMING_ACCURACY",
340340
"RX_EXPRESSLRS_SPI",
341341
"RX_EXPRESSLRS_PHASELOCK",
342+
"DEBUG_RX_STATE_TIME",
343+
"GPS_RESCUE_VELOCITY",
344+
"GPS_RESCUE_HEADING",
345+
"GPS_RESCUE_TRACKING"
342346
]),
343347

344348
SUPER_EXPO_YAW = makeReadOnly([

js/flightlog_fields_presenter.js

Lines changed: 72 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -626,6 +626,27 @@ function FlightLogFieldPresenter() {
626626
'debug[2]':'Frequency Offset',
627627
'debug[3]':'Phase Shift',
628628
},
629+
'GPS_RESCUE_VELOCITY' : {
630+
'debug[all]':'GPS Rescue Velocity',
631+
'debug[0]':'Velocity P',
632+
'debug[1]':'Velocity D',
633+
'debug[2]':'Velocity to Home',
634+
'debug[3]':'Target Velocity',
635+
},
636+
'GPS_RESCUE_HEADING' : {
637+
'debug[all]':'GPS Rescue Heading',
638+
'debug[0]':'Rescue Yaw',
639+
'debug[1]':'Rescue Roll',
640+
'debug[2]':'Attitude',
641+
'debug[3]':'Angle to home',
642+
},
643+
'GPS_RESCUE_TRACKING' : {
644+
'debug[all]':'GPS Rescue Tracking',
645+
'debug[0]':'Velocity to home',
646+
'debug[1]':'Target velocity',
647+
'debug[2]':'Altitude',
648+
'debug[3]':'Target altitude',
649+
},
629650
};
630651

631652
let DEBUG_FRIENDLY_FIELD_NAMES = null;
@@ -678,6 +699,13 @@ function FlightLogFieldPresenter() {
678699
'debug[2]':'Notch 3 Center Freq [dbg-axis]',
679700
'debug[3]':'Gyro Pre Dyn Notch [dbg-axis]',
680701
};
702+
DEBUG_FRIENDLY_FIELD_NAMES.GPS_RESCUE_THROTTLE_PID = {
703+
'debug[all]':'GPS Rescue Altitude',
704+
'debug[0]':'Throttle P',
705+
'debug[1]':'Throttle D',
706+
'debug[2]':'Altitude',
707+
'debug[3]':'Target Altitude',
708+
};
681709
} else if (semver.gte(firmwareVersion, '4.2.0')) {
682710
DEBUG_FRIENDLY_FIELD_NAMES.FF_INTERPOLATED = {
683711
'debug[all]':'Feedforward [roll]',
@@ -999,8 +1027,12 @@ function FlightLogFieldPresenter() {
9991027
}
10001028
case 'RTH':
10011029
switch(fieldName) {
1030+
case 'debug[0]':
1031+
return value.toFixed(0) + 'us';
10021032
case 'debug[1]':
10031033
return (value / 100).toFixed(1) + 'deg';
1034+
case 'debug[2]':
1035+
return value.toFixed(0) + 'us';
10041036
default:
10051037
return value.toFixed(0);
10061038
}
@@ -1056,7 +1088,16 @@ function FlightLogFieldPresenter() {
10561088
return value.toFixed(0) + "Hz";
10571089
}
10581090
case 'GPS_RESCUE_THROTTLE_PID':
1059-
return value.toFixed(0);
1091+
switch (fieldName) {
1092+
case 'debug[0]': // Throttle P added uS
1093+
case 'debug[1]': // Throttle D added * uS
1094+
return value.toFixed(0) + 'uS';
1095+
case 'debug[2]': // current altitude in m
1096+
case 'debug[3]': // TARGET altitude in m
1097+
return (value / 100).toFixed(1) + 'm';
1098+
default:
1099+
return value.toFixed(0);
1100+
}
10601101
case 'DYN_IDLE':
10611102
switch (fieldName) {
10621103
case 'debug[3]': // minRPS
@@ -1125,6 +1166,36 @@ function FlightLogFieldPresenter() {
11251166
default:
11261167
return value.toFixed(0) + 'us';
11271168
}
1169+
case 'GPS_RESCUE_VELOCITY':
1170+
switch (fieldName) {
1171+
case 'debug[0]': // Pitch P degrees * 100
1172+
case 'debug[1]': // Pitch D degrees * 100
1173+
return (value / 100).toFixed(1) + 'deg';
1174+
case 'debug[2]': // velocity to home cm/s
1175+
case 'debug[3]': // velocity target cm/s
1176+
return (value / 100).toFixed(1) + 'm/s';
1177+
}
1178+
case 'GPS_RESCUE_HEADING':
1179+
switch (fieldName) {
1180+
case 'debug[0]': // Rescue yaw rate deg/s * 10 up to +/- 90
1181+
return (value / 10).toFixed(1) + 'deg/s';
1182+
case 'debug[1]': // Rescue roll deg * 100 up to +/- 20 deg
1183+
return (value / 100).toFixed(1) + 'deg';
1184+
case 'debug[2]': // Attitude in degrees * 10
1185+
case 'debug[3]': // Angle to home in degrees * 10
1186+
return (value / 10).toFixed(1) + 'deg';
1187+
}
1188+
case 'GPS_RESCUE_TRACKING':
1189+
switch (fieldName) {
1190+
case 'debug[0]': // velocity to home cm/s
1191+
case 'debug[1]': // velocity target cm/s
1192+
return (value / 100).toFixed(1) + 'm/s';
1193+
case 'debug[2]': // altitude cm
1194+
case 'debug[3]': // altitude target cm
1195+
return (value / 100).toFixed(1) + 'm';
1196+
default:
1197+
return value.toFixed(0);
1198+
}
11281199
}
11291200
return value.toFixed(0);
11301201
}

js/graph_config.js

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -736,6 +736,129 @@ GraphConfig.load = function(config) {
736736
default:
737737
return getCurveForMinMaxFields(fieldName);
738738
}
739+
case 'GPS_RESCUE_THROTTLE_PID':
740+
switch (fieldName) {
741+
case 'debug[0]': // Throttle P uS added
742+
case 'debug[1]': // Throttle D uS added
743+
return {
744+
offset: 0,
745+
power: 1.0,
746+
inputRange: 300,
747+
outputRange: 1.0,
748+
};
749+
case 'debug[2]': // Altitude
750+
case 'debug[3]': // Target Altitude
751+
return {
752+
offset: 0,
753+
power: 1.0,
754+
inputRange: 5000,
755+
outputRange: 1.0,
756+
};
757+
default:
758+
return getCurveForMinMaxFields(fieldName);
759+
}
760+
case 'GPS_RESCUE_VELOCITY':
761+
switch (fieldName) {
762+
case 'debug[0]': // Pitch P deg * 100
763+
case 'debug[1]': // Pitch D deg * 100
764+
return {
765+
offset: 0,
766+
power: 1.0,
767+
inputRange: 2000,
768+
outputRange: 1.0,
769+
};
770+
case 'debug[2]': // Velocity in cm/s
771+
case 'debug[3]': // Velocity to home in cm/s
772+
return {
773+
offset: 0,
774+
power: 1.0,
775+
inputRange: 500,
776+
outputRange: 1.0,
777+
};
778+
default:
779+
return getCurveForMinMaxFields(fieldName);
780+
}
781+
case 'GPS_RESCUE_HEADING':
782+
switch (fieldName) {
783+
case 'debug[0]': // Rescue yaw rate deg/s * 10 up to +/- 90
784+
return {
785+
offset: 0,
786+
power: 1.0,
787+
inputRange: 1000,
788+
outputRange: 1.0,
789+
};
790+
case 'debug[1]': // Rescue roll deg * 10 up to +/- 20 deg
791+
return {
792+
offset: 0,
793+
power: 1.0,
794+
inputRange: 10000,
795+
outputRange: 1.0,
796+
};
797+
case 'debug[2]': // Yaw attitude * 10
798+
case 'debug[3]': // Angle to home * 10
799+
return {
800+
offset: -1800,
801+
power: 1.0,
802+
inputRange: 1800,
803+
outputRange: 1.0,
804+
};
805+
default:
806+
return getCurveForMinMaxFields(fieldName);
807+
}
808+
case 'RTH':
809+
switch (fieldName) {
810+
case 'debug[0]': // FailureState
811+
return {
812+
offset: -5,
813+
power: 1.0,
814+
inputRange: 5,
815+
outputRange: 1.0,
816+
};
817+
case 'debug[1]': // Rescue throttle us
818+
return {
819+
offset: -1500,
820+
power: 1.0,
821+
inputRange: 500,
822+
outputRange: 1.0,
823+
};
824+
case 'debug[2]': // Rescue angle decidegrees
825+
return {
826+
offset: 0,
827+
power: 1.0,
828+
inputRange: 450,
829+
outputRange: 1.0,
830+
};
831+
case 'debug[3]': // Throttle adjustment us
832+
return {
833+
offset: 0,
834+
power: 1.0,
835+
inputRange: 500,
836+
outputRange: 1.0,
837+
};
838+
default:
839+
return getCurveForMinMaxFields(fieldName);
840+
}
841+
case 'GPS_RESCUE_TRACKING':
842+
switch (fieldName) {
843+
case 'debug[0]': // velocity to home cm/s
844+
case 'debug[1]': // target velocity cm/s
845+
return {
846+
offset: 0,
847+
power: 1.0,
848+
inputRange: 500,
849+
outputRange: 1.0,
850+
};
851+
case 'debug[2]': // altitude m
852+
case 'debug[3]': // Target altitude m
853+
return {
854+
offset: 0,
855+
power: 1.0,
856+
inputRange: 5000,
857+
outputRange: 1.0,
858+
};
859+
default:
860+
return getCurveForMinMaxFields(fieldName);
861+
}
739862
}
740863
}
741864
// if not found above then

0 commit comments

Comments
 (0)