Merge branch 'master' into release-2-6-0

pull/1163/head
Paweł Spychalski 4 years ago committed by GitHub
commit 94d3d2d2b4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -698,8 +698,8 @@
"configurationThrottleMinimumCommand": {
"message": "Minimum Command"
},
"configurationBatteryVoltage": {
"message": "Battery Voltage"
"configurationVoltageCurrentSensor": {
"message": "Voltage and Current Sensors"
},
"configurationBatteryCurrent": {
"message": "Battery Current"
@ -734,10 +734,13 @@
"configurationBatteryScale": {
"message": "Voltage Scale"
},
"configurationCurrent": {
"message": "Current Sensor"
"configurationBatteryVoltage": {
"message": "Battery Voltage"
},
"configurationCurrentScale": {
"message": "Current Meter Scale"
},
"configurationCurrentScaleHelp": {
"message": "Scale the output voltage to milliamps [1/10th mV/A]"
},
"configurationCurrentOffset": {
@ -746,8 +749,11 @@
"configurationBatteryMultiwiiCurrent": {
"message": "Enable support for legacy Multiwii MSP current output"
},
"configurationBatteryCapacity": {
"message": "Battery Capacity"
"configurationBatterySettings": {
"message": "Battery Settings"
},
"configurationBatterySettingsHelp": {
"message": "These settings apply to the currently selected battery profile "
},
"configurationBatteryCapacityValue": {
"message": "Capacity"
@ -1053,7 +1059,7 @@
"message": "FeedForward"
},
"pidTuningControlDerivative": {
"message": "Constrol Derivative"
"message": "Control Derivative"
},
"pidTuningRollPitchRate": {
"message": "ROLL & PITCH rate"
@ -2554,6 +2560,18 @@
"pitchToThrottleHelp": {
"message": "In navigation modes, each degree of climb will add this many units to the cruise throttle. Conversely, each degree of diving will substract from it."
},
"pitchToThrottleSmoothing": {
"message": "Throttle smoothing"
},
"pitchToThrottleSmoothingHelp": {
"message": "How smoothly the autopilot adjusts the throttle level in response to pitch angle changes [0-9]."
},
"pitchToThrottleThreshold": {
"message": "Instantaneous throttle adjustment threshold [centidegrees]"
},
"pitchToThrottleThresholdHelp": {
"message": "The autopilot will instantly adjust the throttle level without smoothing according to pitch to throttle if the pitch angle is more this many centidegrees from the filtered value."
},
"loiterRadius": {
"message": "Loiter radius [cm]"
},
@ -2567,7 +2585,7 @@
"message": "Control Smoothness"
},
"controlSmoothnessHelp": {
"message": "How smoothly the autopilot controls the airplane to correct the navigation error [0-9]"
"message": "How smoothly the autopilot controls the airplane to correct the navigation error [0-9]."
},
"waypointConfiguration": {
"message": "Waypoint Navigation Settings"
@ -2579,7 +2597,7 @@
"message": "This sets the distance away from a waypoint that triggers the waypoint as reached."
},
"waypointSafeDistance": {
"message": "Waypoint safe distance [cm]"
"message": "Waypoint safe distance [cm]."
},
"waypointSafeDistanceHelp": {
"message": "The maximum distance between the home point and the first waypoint."
@ -3052,6 +3070,12 @@
"osdSettingMainVoltageDecimals": {
"message": "Main voltage decimals"
},
"osdSettingPLUS_CODE_DIGITS_HELP": {
"message": "Precision at the equator: 10=13.9x13.9m; 11=2.8x3.5m; 12=56x87cm; 13=11x22cm."
},
"osdSettingPLUS_CODE_SHORT_HELP": {
"message": "Removing 2, 4 and 6 leading digits requires a reference location within, respectively, ~800km, ~40km and ~2km to recover the original coordinates."
},
"osdSettingCRSF_LQ_FORMAT_HELP": {
"message": "TYPE1 shows LQ% as used by TBS hardware. TYPE2 shows RF Profile Modes (2=150Hz, 1=50Hz, 0=4Hz update rates) and LQ % [0..100%]. Tracer shows RFMode 1 (1=250Hz) and LQ % [0..100%]."
},

@ -106,6 +106,8 @@ sources.js = [
'./js/logicConditionsCollection.js',
'./js/logicConditionsStatus.js',
'./js/globalVariablesStatus.js',
'./js/programmingPid.js',
'./js/programmingPidCollection.js',
'./js/vtx.js',
'./main.js',
'./js/tabs.js',

@ -2,8 +2,8 @@
var CONFIGURATOR = {
// all versions are specified and compared using semantic versioning http://semver.org/
'minfirmwareVersionAccepted': '2.5.0',
'maxFirmwareVersionAccepted': '2.7.0', // Condition is < (lt) so we accept all in 2.2 branch, not 2.3 actualy
'minfirmwareVersionAccepted': '2.6.0',
'maxFirmwareVersionAccepted': '2.8.0', // Condition is < (lt) so we accept all in 2.2 branch, not 2.3 actualy
'connectionValid': false,
'connectionValidCliOnly': false,
'cliActive': false,

@ -61,10 +61,6 @@ helper.defaultsDialog = (function() {
key: "dterm_lpf2_type",
value: "PT1"
},
{
key: "use_dterm_fir_filter",
value: "OFF"
},
{
key: "dynamic_gyro_notch_enabled",
value: "ON"
@ -92,14 +88,6 @@ helper.defaultsDialog = (function() {
key: "mc_airmode_type",
value: "THROTTLE_THRESHOLD"
},
{
key: "dterm_setpoint_weight",
value: 0.75
},
{
key: "mc_iterm_relax_type",
value: "SETPOINT"
},
{
key: "mc_iterm_relax",
value: "RP"
@ -201,6 +189,30 @@ helper.defaultsDialog = (function() {
"id": 3,
"reboot": true,
"settings": [
{
key: "gyro_hardware_lpf",
value: "256HZ"
},
{
key: "gyro_lpf_hz",
value: 25
},
{
key: "gyro_lpf_type",
value: "BIQUAD"
},
{
key: "dynamic_gyro_notch_enabled",
value: "ON"
},
{
key: "dynamic_gyro_notch_q",
value: 250
},
{
key: "dynamic_gyro_notch_min_hz",
value: 30
},
{
key: "motor_pwm_protocol",
value: "STANDARD"
@ -256,6 +268,10 @@ helper.defaultsDialog = (function() {
{
key: "applied_defaults",
value: 3
},
{
key: "imu_acc_ignore_rate",
value: 10
}
],
"features":[
@ -270,6 +286,18 @@ helper.defaultsDialog = (function() {
"notRecommended": false,
"reboot": true,
"settings": [
{
key: "gyro_hardware_lpf",
value: "256HZ"
},
{
key: "gyro_lpf_hz",
value: 10
},
{
key: "gyro_lpf_type",
value: "BIQUAD"
},
{
key: "motor_pwm_protocol",
value: "STANDARD"

@ -23,6 +23,7 @@ var CONFIG,
LOGIC_CONDITIONS_STATUS,
GLOBAL_FUNCTIONS,
GLOBAL_VARIABLES_STATUS,
PROGRAMMING_PID,
SERIAL_CONFIG,
SENSOR_DATA,
MOTOR_DATA,
@ -177,6 +178,7 @@ var FC = {
LOGIC_CONDITIONS = new LogicConditionsCollection();
LOGIC_CONDITIONS_STATUS = new LogicConditionsStatus();
GLOBAL_VARIABLES_STATUS = new GlobalVariablesStatus();
PROGRAMMING_PID = new ProgrammingPidCollection();
MIXER_CONFIG = {
yawMotorDirection: 0,
@ -1307,7 +1309,7 @@ var FC = {
4: {
name: "Logic Condition",
type: "range",
range: [0, 15],
range: [0, 31],
default: 0
},
5: {
@ -1315,6 +1317,12 @@ var FC = {
type: "range",
range: [0, 7],
default: 0
},
6: {
name: "Programming PID",
type: "range",
range: [0, 3],
default: 0
}
}
}

@ -211,6 +211,8 @@ var MSPCodes = {
MSP2_INAV_SET_GLOBAL_FUNCTIONS: 0x2025,
MSP2_INAV_LOGIC_CONDITIONS_STATUS: 0x2026,
MSP2_INAV_GVAR_STATUS: 0x2027,
MSP2_INAV_PROGRAMMING_PID: 0x2028,
MSP2_INAV_SET_PROGRAMMING_PID: 0x2029,
MSP2_PID: 0x2030,
MSP2_SET_PID: 0x2031,

@ -537,6 +537,29 @@ var mspHelper = (function (gui) {
console.log("Logic conditions saved");
break;
case MSPCodes.MSP2_INAV_PROGRAMMING_PID:
PROGRAMMING_PID.flush();
if (data.byteLength % 19 === 0) {
for (i = 0; i < data.byteLength; i += 19) {
PROGRAMMING_PID.put(new ProgrammingPid(
data.getInt8(i), // enabled
data.getInt8(i + 1), // setpointType
data.getInt32(i + 2, true), // setpointValue
data.getInt8(i + 6), // measurementType
data.getInt32(i + 7, true), // measurementValue
data.getInt16(i + 11, true), // gainP
data.getInt16(i + 13, true), // gainI
data.getInt16(i + 15, true), // gainD
data.getInt16(i + 17, true) // gainFF
));
}
}
break;
case MSPCodes.MSP2_INAV_SET_PROGRAMMING_PID:
console.log("Programming PID saved");
break;
case MSPCodes.MSP2_COMMON_MOTOR_MIXER:
MOTOR_RULES.flush();
@ -2363,6 +2386,58 @@ var mspHelper = (function (gui) {
}
};
self.loadProgrammingPid = function (callback) {
MSP.send_message(MSPCodes.MSP2_INAV_PROGRAMMING_PID, false, false, callback);
}
self.sendProgrammingPid = function (onCompleteCallback) {
let nextFunction = sendPid,
pidIndex = 0;
if (PROGRAMMING_PID.getCount() == 0) {
onCompleteCallback();
} else {
nextFunction();
}
function sendPid() {
let buffer = [];
// send one at a time, with index, 20 bytes per one condition
let pid = PROGRAMMING_PID.get()[pidIndex];
buffer.push(pidIndex);
buffer.push(pid.getEnabled());
buffer.push(pid.getSetpointType());
buffer.push(specificByte(pid.getSetpointValue(), 0));
buffer.push(specificByte(pid.getSetpointValue(), 1));
buffer.push(specificByte(pid.getSetpointValue(), 2));
buffer.push(specificByte(pid.getSetpointValue(), 3));
buffer.push(pid.getMeasurementType());
buffer.push(specificByte(pid.getMeasurementValue(), 0));
buffer.push(specificByte(pid.getMeasurementValue(), 1));
buffer.push(specificByte(pid.getMeasurementValue(), 2));
buffer.push(specificByte(pid.getMeasurementValue(), 3));
buffer.push(specificByte(pid.getGainP(), 0));
buffer.push(specificByte(pid.getGainP(), 1));
buffer.push(specificByte(pid.getGainI(), 0));
buffer.push(specificByte(pid.getGainI(), 1));
buffer.push(specificByte(pid.getGainD(), 0));
buffer.push(specificByte(pid.getGainD(), 1));
buffer.push(specificByte(pid.getGainFF(), 0));
buffer.push(specificByte(pid.getGainFF(), 1));
// prepare for next iteration
pidIndex++;
if (pidIndex == PROGRAMMING_PID.getCount()) { //This is the last rule. Not pretty, but we have to send all rules
nextFunction = onCompleteCallback;
}
MSP.send_message(MSPCodes.MSP2_INAV_SET_PROGRAMMING_PID, buffer, false, nextFunction);
}
};
self.sendModeRanges = function (onCompleteCallback) {
var nextFunction = send_next_mode_range;

@ -97,14 +97,6 @@ presets.presets = [
key: "dterm_lpf2_type",
value: "PT1"
},
{
key: "use_dterm_fir_filter",
value: "OFF"
},
{
key: "mc_iterm_relax_type",
value: "SETPOINT"
},
{
key: "mc_iterm_relax",
value: "RP"
@ -204,10 +196,6 @@ presets.presets = [
{
key: "throttle_idle",
value: 12
},
{
key: "dterm_setpoint_weight",
value: 0.500
}
],
type: 'multirotor'
@ -259,14 +247,6 @@ presets.presets = [
key: "dterm_lpf_type",
value: "PT1"
},
{
key: "use_dterm_fir_filter",
value: "OFF"
},
{
key: "mc_iterm_relax_type",
value: "SETPOINT"
},
{
key: "mc_iterm_relax",
value: "RP"
@ -366,10 +346,6 @@ presets.presets = [
{
key: "throttle_idle",
value: 12
},
{
key: "dterm_setpoint_weight",
value: 0.850
}
],
type: 'multirotor'
@ -429,14 +405,6 @@ presets.presets = [
key: "dterm_lpf2_type",
value: "PT1"
},
{
key: "use_dterm_fir_filter",
value: "OFF"
},
{
key: "mc_iterm_relax_type",
value: "SETPOINT"
},
{
key: "mc_iterm_relax",
value: "RPY"
@ -536,10 +504,6 @@ presets.presets = [
{
key: "throttle_idle",
value: 12
},
{
key: "dterm_setpoint_weight",
value: 0.800
}
],
type: 'multirotor'
@ -604,14 +568,6 @@ presets.presets = [
key: "dterm_lpf2_type",
value: "PT1"
},
{
key: "use_dterm_fir_filter",
value: "OFF"
},
{
key: "mc_iterm_relax_type",
value: "SETPOINT"
},
{
key: "mc_iterm_relax",
value: "RPY"
@ -712,10 +668,6 @@ presets.presets = [
key: "throttle_idle",
value: 12
},
{
key: "dterm_setpoint_weight",
value: 0.300
},
{
key: "heading_hold_rate_limit",
value: 30
@ -786,14 +738,6 @@ presets.presets = [
key: "dterm_lpf2_type",
value: "PT1"
},
{
key: "use_dterm_fir_filter",
value: "OFF"
},
{
key: "mc_iterm_relax_type",
value: "GYRO"
},
{
key: "mc_iterm_relax",
value: "RP"
@ -893,10 +837,6 @@ presets.presets = [
{
key: "throttle_idle",
value: 12
},
{
key: "dterm_setpoint_weight",
value: 0.400
}
],
type: 'multirotor'
@ -956,14 +896,6 @@ presets.presets = [
key: "dterm_lpf2_type",
value: "PT1"
},
{
key: "use_dterm_fir_filter",
value: "OFF"
},
{
key: "mc_iterm_relax_type",
value: "SETPOINT"
},
{
key: "mc_iterm_relax",
value: "RP"
@ -1063,10 +995,6 @@ presets.presets = [
{
key: "throttle_idle",
value: 12
},
{
key: "dterm_setpoint_weight",
value: 0.850
}
],
type: 'multirotor'
@ -1126,14 +1054,6 @@ presets.presets = [
key: "dterm_lpf2_type",
value: "PT1"
},
{
key: "use_dterm_fir_filter",
value: "OFF"
},
{
key: "mc_iterm_relax_type",
value: "SETPOINT"
},
{
key: "mc_iterm_relax",
value: "RP"
@ -1233,10 +1153,6 @@ presets.presets = [
{
key: "throttle_idle",
value: 12
},
{
key: "dterm_setpoint_weight",
value: 0.700
}
],
type: 'multirotor'
@ -1257,6 +1173,30 @@ presets.presets = [
presets.elementHelper("INAV_PID_CONFIG", "gyroscopeLpf", 1)
],
settings: [
{
key: "gyro_hardware_lpf",
value: "256HZ"
},
{
key: "gyro_lpf_hz",
value: 25
},
{
key: "dynamic_gyro_notch_enabled",
value: "ON"
},
{
key: "dynamic_gyro_notch_q",
value: 250
},
{
key: "dynamic_gyro_notch_min_hz",
value: 30
},
{
key: "gyro_lpf_type",
value: "BIQUAD"
},
{
key: "platform_type",
value: "AIRPLANE"
@ -1268,6 +1208,10 @@ presets.presets = [
{
key: "manual_rc_expo",
value: 30
},
{
key: "imu_acc_ignore_rate",
value: 10
}
],
type: 'airplane'
@ -1289,6 +1233,30 @@ presets.presets = [
presets.elementHelper("INAV_PID_CONFIG", "gyroscopeLpf", 4)
],
settings: [
{
key: "gyro_hardware_lpf",
value: "256HZ"
},
{
key: "gyro_lpf_hz",
value: 25
},
{
key: "dynamic_gyro_notch_enabled",
value: "ON"
},
{
key: "dynamic_gyro_notch_q",
value: 250
},
{
key: "dynamic_gyro_notch_min_hz",
value: 30
},
{
key: "gyro_lpf_type",
value: "BIQUAD"
},
{
key: "platform_type",
value: "AIRPLANE"
@ -1324,6 +1292,10 @@ presets.presets = [
{
key: "manual_rc_expo",
value: 30
},
{
key: "imu_acc_ignore_rate",
value: 10
}
],
type: 'flyingwing'
@ -1346,6 +1318,30 @@ presets.presets = [
presets.elementHelper("RC_tuning", "dynamic_THR_breakpoint", 1600)
],
settings: [
{
key: "gyro_hardware_lpf",
value: "256HZ"
},
{
key: "gyro_lpf_hz",
value: 25
},
{
key: "dynamic_gyro_notch_enabled",
value: "ON"
},
{
key: "dynamic_gyro_notch_q",
value: 250
},
{
key: "dynamic_gyro_notch_min_hz",
value: 30
},
{
key: "gyro_lpf_type",
value: "BIQUAD"
},
{
key: "platform_type",
value: "AIRPLANE"
@ -1381,6 +1377,10 @@ presets.presets = [
{
key: "manual_rc_expo",
value: 30
},
{
key: "imu_acc_ignore_rate",
value: 10
}
],
type: 'flyingwing'
@ -1403,6 +1403,30 @@ presets.presets = [
presets.elementHelper("RC_tuning", "dynamic_THR_breakpoint", 1550)
],
settings: [
{
key: "gyro_hardware_lpf",
value: "256HZ"
},
{
key: "gyro_lpf_hz",
value: 25
},
{
key: "dynamic_gyro_notch_enabled",
value: "ON"
},
{
key: "dynamic_gyro_notch_q",
value: 250
},
{
key: "dynamic_gyro_notch_min_hz",
value: 30
},
{
key: "gyro_lpf_type",
value: "BIQUAD"
},
{
key: "platform_type",
value: "AIRPLANE"
@ -1438,6 +1462,10 @@ presets.presets = [
{
key: "manual_rc_expo",
value: 30
},
{
key: "imu_acc_ignore_rate",
value: 10
}
],
type: 'flyingwing'
@ -1460,6 +1488,30 @@ presets.presets = [
presets.elementHelper("RC_tuning", "dynamic_THR_breakpoint", 1500)
],
settings: [
{
key: "gyro_hardware_lpf",
value: "256HZ"
},
{
key: "gyro_lpf_hz",
value: 25
},
{
key: "dynamic_gyro_notch_enabled",
value: "ON"
},
{
key: "dynamic_gyro_notch_q",
value: 250
},
{
key: "dynamic_gyro_notch_min_hz",
value: 30
},
{
key: "gyro_lpf_type",
value: "BIQUAD"
},
{
key: "platform_type",
value: "AIRPLANE"
@ -1499,6 +1551,10 @@ presets.presets = [
{
key: "rc_yaw_expo",
value: 20
},
{
key: "imu_acc_ignore_rate",
value: 10
}
],
type: 'flyingwing'
@ -1519,6 +1575,30 @@ presets.presets = [
presets.elementHelper("RC_tuning", "pitch_rate", 120)
],
settings: [
{
key: "gyro_hardware_lpf",
value: "256HZ"
},
{
key: "gyro_lpf_hz",
value: 25
},
{
key: "dynamic_gyro_notch_enabled",
value: "ON"
},
{
key: "dynamic_gyro_notch_q",
value: 250
},
{
key: "dynamic_gyro_notch_min_hz",
value: 30
},
{
key: "gyro_lpf_type",
value: "BIQUAD"
},
{
key: "platform_type",
value: "AIRPLANE"
@ -1554,6 +1634,10 @@ presets.presets = [
{
key: "manual_rc_expo",
value: 30
},
{
key: "imu_acc_ignore_rate",
value: 10
}
],
type: 'flyingwing'

@ -0,0 +1,80 @@
/*global $,FC*/
'use strict';
let ProgrammingPid = function (enabled, setpointType, setpointValue, measurementType, measurementValue, gainP, gainI, gainD, gainFF) {
let self = {};
self.getEnabled = function () {
return !!enabled;
};
self.setEnabled = function (data) {
enabled = !!data;
};
self.getSetpointType = function () {
return setpointType;
};
self.setSetpointType = function (data) {
setpointType = data;
};
self.getSetpointValue = function () {
return setpointValue;
};
self.setSetpointValue = function (data) {
setpointValue = data;
};
self.getMeasurementType = function () {
return measurementType;
};
self.setMeasurementType = function (data) {
measurementType = data;
};
self.getMeasurementValue = function () {
return measurementValue;
};
self.setMeasurementValue = function (data) {
measurementValue = data;
};
self.getGainP = function () {
return gainP;
};
self.setGainP = function (data) {
gainP = data;
};
self.getGainI = function () {
return gainI;
};
self.setGainI = function (data) {
gainI = data;
};
self.getGainD = function () {
return gainD;
};
self.setGainD = function (data) {
gainD = data;
};
self.getGainFF = function () {
return gainFF;
};
self.setGainFF = function (data) {
gainFF = data;
};
return self;
};

@ -0,0 +1,33 @@
'use strict';
let ProgrammingPidCollection = function () {
let self = {},
data = [],
$container;
self.put = function (element) {
data.push(element);
};
self.get = function () {
return data;
};
self.flush = function () {
data = [];
};
self.getCount = function () {
return data.length
};
self.open = function () {
self.render();
$container.show();
};
return self;
};

@ -1,7 +1,7 @@
{
"manifest_version": 2,
"minimum_chrome_version": "38",
"version": "2.6.1",
"version": "2.7.0",
"author": "Several",
"name": "INAV - Configurator",
"short_name": "INAV",

50
package-lock.json generated

@ -1,6 +1,6 @@
{
"name": "inav-configurator",
"version": "2.6.0",
"version": "2.7.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@ -44,7 +44,6 @@
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
"integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
"optional": true,
"requires": {
"kind-of": "^3.0.2",
"longest": "^1.0.1",
@ -55,7 +54,6 @@
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"optional": true,
"requires": {
"is-buffer": "^1.1.5"
}
@ -2199,8 +2197,7 @@
},
"ansi-regex": {
"version": "2.1.1",
"bundled": true,
"optional": true
"bundled": true
},
"aproba": {
"version": "1.2.0",
@ -2218,13 +2215,11 @@
},
"balanced-match": {
"version": "1.0.0",
"bundled": true,
"optional": true
"bundled": true
},
"brace-expansion": {
"version": "1.1.11",
"bundled": true,
"optional": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@ -2237,18 +2232,15 @@
},
"code-point-at": {
"version": "1.1.0",
"bundled": true,
"optional": true
"bundled": true
},
"concat-map": {
"version": "0.0.1",
"bundled": true,
"optional": true
"bundled": true
},
"console-control-strings": {
"version": "1.1.0",
"bundled": true,
"optional": true
"bundled": true
},
"core-util-is": {
"version": "1.0.2",
@ -2351,8 +2343,7 @@
},
"inherits": {
"version": "2.0.3",
"bundled": true,
"optional": true
"bundled": true
},
"ini": {
"version": "1.3.5",
@ -2362,7 +2353,6 @@
"is-fullwidth-code-point": {
"version": "1.0.0",
"bundled": true,
"optional": true,
"requires": {
"number-is-nan": "^1.0.0"
}
@ -2375,20 +2365,17 @@
"minimatch": {
"version": "3.0.4",
"bundled": true,
"optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
},
"minimist": {
"version": "0.0.8",
"bundled": true,
"optional": true
"bundled": true
},
"minipass": {
"version": "2.3.5",
"bundled": true,
"optional": true,
"requires": {
"safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
@ -2405,7 +2392,6 @@
"mkdirp": {
"version": "0.5.1",
"bundled": true,
"optional": true,
"requires": {
"minimist": "0.0.8"
}
@ -2478,8 +2464,7 @@
},
"number-is-nan": {
"version": "1.0.1",
"bundled": true,
"optional": true
"bundled": true
},
"object-assign": {
"version": "4.1.1",
@ -2489,7 +2474,6 @@
"once": {
"version": "1.4.0",
"bundled": true,
"optional": true,
"requires": {
"wrappy": "1"
}
@ -2565,8 +2549,7 @@
},
"safe-buffer": {
"version": "5.1.2",
"bundled": true,
"optional": true
"bundled": true
},
"safer-buffer": {
"version": "2.1.2",
@ -2596,7 +2579,6 @@
"string-width": {
"version": "1.0.2",
"bundled": true,
"optional": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
@ -2614,7 +2596,6 @@
"strip-ansi": {
"version": "3.0.1",
"bundled": true,
"optional": true,
"requires": {
"ansi-regex": "^2.0.0"
}
@ -2653,13 +2634,11 @@
},
"wrappy": {
"version": "1.0.2",
"bundled": true,
"optional": true
"bundled": true
},
"yallist": {
"version": "3.0.3",
"bundled": true,
"optional": true
"bundled": true
}
}
},
@ -3937,8 +3916,7 @@
"longest": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
"integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
"optional": true
"integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc="
},
"lowercase-keys": {
"version": "1.0.1",
@ -4403,7 +4381,7 @@
"semver": "^5.5.0",
"simple-glob": "~0.2.0",
"tar-fs": "^1.13.0",
"temp": "github:adam-lynch/node-temp#remove_tmpdir_dep",
"temp": "github:adam-lynch/node-temp#279c1350cb7e4f02515d91da9e35d39a40774016",
"thenify": "^3.3.0",
"update-notifier": "^2.4.0",
"winresourcer": "^0.9.0"

@ -1,7 +1,7 @@
{
"name": "inav-configurator",
"description": "INAV Configurator",
"version": "2.6.1",
"version": "2.7.0",
"main": "main.html",
"default_locale": "en",
"scripts": {

@ -387,6 +387,22 @@
<div class="helpicon cf_tip" data-i18n_title="pitchToThrottleHelp"></div>
</div>
<div class="number">
<input id="pitchToThrottleSmoothing" type="number" data-setting="nav_fw_pitch2thr_smoothing" data-setting-multiplier="1" step="0" min="0" max="9">
<label for="pitchToThrottleSmoothing">
<span data-i18n="pitchToThrottleSmoothing"></span>
</label>
<div class="helpicon cf_tip" data-i18n_title="pitchToThrottleSmoothingHelp"></div>
</div>
<div class="number">
<input id="pitchToThrottleThreshold" type="number" data-setting="nav_fw_pitch2thr_threshold" data-setting-multiplier="1" step="1" min="0" max="900">
<label for="pitchToThrottleThreshold">
<span data-i18n="pitchToThrottleThreshold"></span>
</label>
<div class="helpicon cf_tip" data-i18n_title="pitchToThrottleThresholdHelp"></div>
</div>
<div class="number">
<input id="loiterRadius" type="number" data-simple-bind="FW_CONFIG.loiterRadius" step="1" min="0" max="10000">
<label for="loiterRadius">

@ -54,15 +54,15 @@
<table class="cf_table acc">
<tr>
<td data-i18n="accZero"></td>
<td><label for="accZeroX"><span>X</span></label><input type="number" name="accZeroX" min="0" max="2000"></td>
<td><label for="accZeroY"><span>Y</span></label><input type="number" name="accZeroY" min="0" max="2000"></td>
<td><label for="accZeroZ"><span>Z</span></label><input type="number" name="accZeroZ" min="0" max="2000"></td>
<td><label for="accZeroX"><span>X</span></label><input type="number" name="accZeroX" min="-32768" max="32767"></td>
<td><label for="accZeroY"><span>Y</span></label><input type="number" name="accZeroY" min="-32768" max="32767"></td>
<td><label for="accZeroZ"><span>Z</span></label><input type="number" name="accZeroZ" min="-32768" max="32767"></td>
</tr>
<tr>
<td data-i18n="accGain"></td>
<td><label for="accGainX"><span>X</span></label><input type="number" name="accGainX" min="0" max="2000"></td>
<td><label for="accGainY"><span>Y</span></label><input type="number" name="accGainY" min="0" max="2000"></td>
<td><label for="accGainZ"><span>Z</span></label><input type="number" name="accGainZ" min="0" max="2000"></td>
<td><label for="accGainX"><span>X</span></label><input type="number" name="accGainX" min="1" max="8192"></td>
<td><label for="accGainY"><span>Y</span></label><input type="number" name="accGainY" min="1" max="8192"></td>
<td><label for="accGainZ"><span>Z</span></label><input type="number" name="accGainZ" min="1" max="8192"></td>
</tr>
</table>
</div>

@ -12,8 +12,8 @@
<div class="spacer_box_title" data-i18n="configurationSystem"></div>
</div>
<div class="spacer_box">
<div id="gyrolpf-info" class="info-box"></div>
<div class="select">
<div id="gyrolpf-info" class="info-box is-hidden"></div>
<div class="select is-hidden">
<select id="gyro-lpf"></select>
<label for="gyro-lpf"> <span data-i18n="configurationGyroLpfTitle"></span></label>
<div class="helpicon cf_tip" data-i18n_title="configurationGyroLpfHelp"></div>
@ -253,7 +253,7 @@
<div class="rightWrapper">
<div class="config-section gui_box grey">
<div class="gui_box_titlebar">
<div class="spacer_box_title" data-i18n="configurationBatteryVoltage"></div>
<div class="spacer_box_title" data-i18n="configurationVoltageCurrentSensor"></div>
</div>
<div class="spacer_box">
<div class="features batteryVoltage"></div>
@ -273,32 +273,7 @@
</label>
<div class="helpicon cf_tip" data-i18n_title="configurationVoltageSourceHelp"></div>
</div>
<div class="number">
<input type="number" id="cells" name="cells" step="1" min="0" max="8" />
<label for="cells"><span data-i18n="configurationBatteryCells"></span></label>
<div class="helpicon cf_tip" data-i18n_title="configurationBatteryCellsHelp"></div>
</div>
<div class="number">
<input type="number" id="celldetectvoltage" name="celldetectvoltage" step="0.01" min="1" max="5" />
<label for="celldetectvoltage"><span data-i18n="configurationBatteryCellDetectVoltage"></span></label>
<div class="helpicon cf_tip" data-i18n_title="configurationBatteryCellDetectVoltageHelp"></div>
</div>
<div class="number">
<input type="number" id="mincellvoltage" name="mincellvoltage" step="0.01" min="1" max="5" />
<label for="mincellvoltage"><span data-i18n="configurationBatteryMinimum"></span></label>
</div>
<div class="number">
<input type="number" id="maxcellvoltage" name="maxcellvoltage" step="0.01" min="1" max="5" />
<label for="maxcellvoltage">
<span data-i18n="configurationBatteryMaximum"></span>
</label>
</div>
<div class="number">
<input type="number" id="warningcellvoltage" name="warningcellvoltage" step="0.01" min="1" max="5" />
<label for="warningcellvoltage">
<span data-i18n="configurationBatteryWarning"></span>
</label>
</div>
<div class="number">
<input type="number" id="voltagescale" name="voltagescale" step="1" min="10" max="65535" />
<label for="voltagescale">
@ -311,13 +286,6 @@
<span data-i18n="configurationBatteryVoltage"></span>
</label>
</div>
</div>
</div>
<div class="config-section gui_box grey">
<div class="gui_box_titlebar">
<div class="spacer_box_title" data-i18n="configurationCurrent"></div>
</div>
<div class="spacer_box">
<div class="features batteryCurrent"></div>
<div class="select">
<select id="current_meter_type" data-setting="current_meter_type" />
@ -330,6 +298,7 @@
<label for="currentscale">
<span data-i18n="configurationCurrentScale"></span>
</label>
<div class="helpicon cf_tip" data-i18n_title="configurationCurrentScaleHelp"></div>
</div>
<div class="number">
<input type="number" id="currentoffset" name="currentoffset" step="0.1" min="-3276.8" max="3276.7" />
@ -347,14 +316,44 @@
</div>
<div class="config-section gui_box grey">
<div class="gui_box_titlebar">
<div class="spacer_box_title" data-i18n="configurationBatteryCapacity"></div>
<div class="spacer_box_title" data-i18n="configurationBatterySettings"></div>
<div class="helpicon cf_tip" data-i18n_title="configurationBatterySettingsHelp"></div>
</div>
<div class="spacer_box">
<div class="number">
<input type="number" id="cells" name="cells" step="1" min="0" max="8" />
<label for="cells"><span data-i18n="configurationBatteryCells"></span></label>
<div class="helpicon cf_tip" data-i18n_title="configurationBatteryCellsHelp"></div>
</div>
<div class="number">
<input type="number" id="celldetectvoltage" name="celldetectvoltage" step="0.01" min="1" max="5" />
<label for="celldetectvoltage"><span data-i18n="configurationBatteryCellDetectVoltage"></span></label>
<div class="helpicon cf_tip" data-i18n_title="configurationBatteryCellDetectVoltageHelp"></div>
</div>
<div class="number">
<input type="number" id="mincellvoltage" name="mincellvoltage" step="0.01" min="1" max="5" />
<label for="mincellvoltage"><span data-i18n="configurationBatteryMinimum"></span></label>
</div>
<div class="number">
<input type="number" id="maxcellvoltage" name="maxcellvoltage" step="0.01" min="1" max="5" />
<label for="maxcellvoltage">
<span data-i18n="configurationBatteryMaximum"></span>
</label>
</div>
<div class="number">
<input type="number" id="warningcellvoltage" name="warningcellvoltage" step="0.01" min="1" max="5" />
<label for="warningcellvoltage">
<span data-i18n="configurationBatteryWarning"></span>
</label>
</div>
<div class="select">
<select id="battery_capacity_unit">
<option value="mAh">mAh</option>
<option value="mWh">mWh</option>
</select>
<label for="warningcellvoltage">
<span data-i18n="configurationBatteryCapacityUnit"></span>
</label>
</div>
<div class="number">
<input type="number" id="battery_capacity" name="battery_capacity" step="1" min="0" max="4294967296" />

@ -86,7 +86,7 @@
<div class="spacer_box_title" data-i18n="gpsMapHead"></div>
</div>
<div id="loadmap">
<div id="gps-map">
<div style="height:100%" id="gps-map">
<button class="map-button" id="center_button" data-i18n="gps_map_center"></button>
</div>
</div>

@ -114,7 +114,7 @@
</div>
</div>
<div class="cf_column threefourth_left">
<div id="missionMap"></div>
<div style="height:100%" id="missionMap"></div>
<div id="notLoadMap" data-i18n="useOnlyStandalone" style="display: none;"></div>
</div>
</div>

@ -68,9 +68,14 @@
<label>
<select class="update_preview" data-setting="osd_coordinate_digits" data-live="true"></select> Coordinate Digits
</label>
<div class="helpicon cf_tip" data-i18n_title="osdSettingPLUS_CODE_DIGITS_HELP"></div>
<label>
<select class="update_preview" data-setting="osd_plus_code_digits" data-live="true"></select> Plus Code Digits
</label>
<div class="helpicon cf_tip" data-i18n_title="osdSettingPLUS_CODE_SHORT_HELP"></div>
<label>
<select class="update_preview" data-setting="osd_plus_code_short" data-live="true"></select> Plus Code Remove Leading Digits
</label>
<label>
<select class="update_preview" data-setting="osd_crosshairs_style" data-live="true"></select> Crosshairs Style
</label>
@ -87,6 +92,9 @@
<label>
<input type="checkbox" class="toggle update_preview" data-setting="osd_sidebar_scroll_arrows" data-live="true"> Sidebar Scroll Arrows
</label>
<label>
<input type="checkbox" class="toggle update_preview" data-setting="osd_home_position_arm_screen" data-live="true"> Home Position on Arming Screen
</label>
</div>
</div>
</div>

@ -772,6 +772,11 @@ OSD.constants = {
id: 106,
min_version: '2.3.0',
preview: FONT.symbol(SYM.RPM) + '983',
},
{
name: 'VERSION',
id: 119,
preview: 'INAV 2.7.0'
}
]
},
@ -1186,8 +1191,9 @@ OSD.constants = {
id: 97,
preview: function() {
let digits = parseInt(Settings.getInputValue('osd_plus_code_digits')) + 1;
let digitsRemoved = parseInt(Settings.getInputValue('osd_plus_code_short')) * 2;
console.log("DITIS", digits);
return '9547X6PM+VWCCC'.substr(0, digits);
return '9547X6PM+VWCCC'.substr(digitsRemoved, digits-digitsRemoved);
}
},
{

Loading…
Cancel
Save